Intel QuickPath Interconnect - Intel QuickPath Interconnect

Interconnect Intel QuickPath ( QPI ) este un punct-la-punct procesor de interconectare dezvoltat de Intel , care a înlocuit front-side bus (FSB) în Xeon , Itanium , și anumite platforme desktop începând din 2008. Acesta a crescut scalabilitate și lățimea de bandă disponibilă. Înainte de anunțarea numelui, Intel se referea la aceasta ca Interfață de sistem comună ( CSI ). Încarnările anterioare erau cunoscute sub numele de încă un alt protocol (YAP) și YAP +.

QPI 1.1 este o versiune semnificativ renovată introdusă cu Sandy Bridge-EP ( platforma Romley ).

QPI a fost înlocuit de Intel Ultra Path Interconnect (UPI) în procesoarele Skylake -SP Xeon bazate pe socketul LGA 3647 .

fundal

Deși uneori se numește „autobuz”, QPI este o interconectare punct-la-punct. A fost conceput pentru a concura cu HyperTransport, care fusese folosit de Advanced Micro Devices (AMD) încă din 2003. Intel a dezvoltat QPI la Massachusetts Microprocessor Design Center (MMDC) de către membrii a ceea ce fusese Alpha Development Group, pe care Intel îl dobândise de la Compaq și HP și, la rândul lor, provin inițial de la Digital Equipment Corporation (DEC). Dezvoltarea sa fusese raportată încă din 2004.

Intel l-a livrat pentru prima dată pentru procesoarele desktop în noiembrie 2008 pe chipset- ul Intel Core i7-9xx și X58 . A fost lansat în procesoarele Xeon numite cod Nehalem în martie 2009 și procesoare Itanium în februarie 2010 (cod numit Tukwila).

Implementare

Image
QPI este o componentă necorezătoare în microarhitectura Intel Nehalem

QPI este un element al unei arhitecturi de sistem pe care Intel o numește arhitectura QuickPath care implementează ceea ce Intel numește tehnologia QuickPath . În cea mai simplă formă pe o placă de bază cu un singur procesor, se utilizează un singur QPI pentru a conecta procesorul la IO Hub (de exemplu, pentru a conecta un Intel Core i7 la un X58 ). În cazuri mai complexe ale arhitecturii, perechile de legături QPI separate conectează unul sau mai multe procesoare și unul sau mai multe hub-uri IO sau hub-uri de rutare într-o rețea de pe placa de bază, permițând tuturor componentelor să acceseze alte componente prin rețea. Ca și în cazul HyperTransport, QuickPath Architecture presupune că procesoarele vor avea controlere de memorie integrate și permite o arhitectură de acces la memorie neuniformă (NUMA).

Fiecare QPI cuprinde două legături de date punct-la-punct cu 20 de benzi, una în fiecare direcție ( full duplex ), cu o pereche de ceas separată în fiecare direcție, pentru un total de 42 de semnale. Fiecare semnal este o pereche diferențială , deci numărul total de pini este de 84. Cele 20 de benzi de date sunt împărțite pe patru „cadrane” a câte 5 benzi fiecare. Unitatea de bază de transfer este flit -ul de 80 de biți , care are 8 biți pentru detectarea erorilor, 8 biți pentru „antetul link-layer” și 64 de biți pentru date. Un flit de 80 de biți este transferat în două cicluri de ceas (patru transferuri de 20 de biți, două pe bifă de ceas.) Lățimile de bandă QPI sunt publicate prin calculul transferului a 64 de biți (8 octeți) de date la fiecare două cicluri de ceas în fiecare direcție.

Deși implementările inițiale utilizează legături simple cu patru cadrane, specificația QPI permite alte implementări. Fiecare cadran poate fi utilizat independent. Pe serverele de înaltă fiabilitate, o legătură QPI poate funcționa într-un mod degradat. Dacă unul sau mai multe dintre semnalele 20 + 1 eșuează, interfața va funcționa folosind 10 + 1 sau chiar 5 + 1 semnale rămase, chiar reasignând ceasul la un semnal de date dacă ceasul eșuează. Implementarea inițială Nehalem a folosit o interfață completă cu patru cadrane pentru a atinge 25,6 GB / s, care oferă exact dublul lățimii de bandă teoretică a FSB Intel 1600 MHz utilizat în chipset-ul X48.

Deși unele procesoare Core i7 de ultimă generație expun QPI, alte procesoare Nehalem pentru desktop și mobile „mainstream” destinate plăcilor cu un singur soclu (de exemplu, LGA 1156 Core i3, Core i5 și alte procesoare Core i7 din familiile Lynnfield / Clarksfield și succesori) nu expuneți QPI extern, deoarece aceste procesoare nu sunt destinate să participe la sisteme cu mai multe socketuri.

Cu toate acestea, QPI este utilizat intern pe aceste cipuri pentru a comunica cu „ uncore ”, care face parte din cipul care conține controlere de memorie, PCI Express și GPU în partea CPU , dacă există; uncore poate fi sau nu pe aceeași matriță ca nucleul procesorului, de exemplu, este pe o matriță separată în Clarkdale / Arrandale, bazată pe Westmere .

În cipurile cu un singur soclu post-2009 începând cu Lynnfield, Clarksfield, Clarkdale și Arrandale, funcțiile tradiționale northbridge sunt integrate în aceste procesoare, care, prin urmare, comunică extern prin intermediul interfețelor DMI și PCI Express mai lente .

Astfel, nu este nevoie să suportați cheltuielile expunerii (fostei) interfețe a magistralei din față prin priza procesorului.

Deși legătura QPI core-uncore nu este prezentă în procesoarele desktop și mobile Sandy Bridge (așa cum a fost pe Clarkdale, de exemplu), interconectarea inelului intern între nucleele on-die se bazează, de asemenea, pe principiile din spatele QPI, cel puțin până în prezent în ceea ce privește coerența cache-ului .

Specificații de frecvență

QPI funcționează la o rată de ceas de 2,4 GHz, 2,93 GHz, 3,2 GHz, 3,6 GHz, 4,0 GHz sau 4,8 GHz (frecvențele 3,6 GHz și 4,0 GHz au fost introduse cu platforma Sandy Bridge-E / EP și 4,8 GHz cu Haswell-E / Platforma EP). Rata de ceas pentru o anumită legătură depinde de capacitățile componentelor de la fiecare capăt al legăturii și de caracteristicile semnalului căii de semnal de pe placa de circuit imprimat. Procesoarele Core i7 9xx non-extreme sunt limitate la o frecvență de 2,4 GHz la ceasurile de referință stoc.

Transferurile de biți au loc atât pe marginile crescătoare, cât și pe cele descendente ale ceasului, astfel încât rata de transfer este dublă față de rata ceasului.

Intel descrie fluxul de date (în GB / s) numărând doar sarcina utilă de date pe 64 de biți în fiecare flit de 80 de biți. Cu toate acestea, Intel dublează rezultatul, deoarece perechea de legături unidirecționale de trimitere și primire poate fi activă simultan. Astfel, Intel descrie o pereche de legături QPI cu 20 de benzi (trimitere și recepție) cu un ceas de 3,2 GHz ca având o rată de date de 25,6 GB / s. O rată de ceas de 2,4 GHz produce o rată de date de 19,2 GB / s. Mai general, prin această definiție, un QPI cu două benzi pe 20 de benzi transferă opt octeți pe ciclu de ceas, patru în fiecare direcție.

Rata se calculează după cum urmează:

3,2 GHz
× 2 biți / Hz (rata de date dublă)
× 16 (20) (biți de date / lățime de legătură QPI)
× 2 (trimiterea și recepția unidirecțională funcționează simultan)
÷ 8 (biți / octet)
= 25,6 GB / s

Straturi de protocol

QPI este specificat ca o arhitectură cu cinci straturi , cu straturi fizice, de legătură, de rutare, de transport și de protocol separate. În dispozitivele destinate numai utilizării QPI punct-la-punct fără redirecționare, cum ar fi procesoarele Core i7-9xx și Xeon DP, stratul de transport nu este prezent, iar stratul de rutare este minim.

Strat fizic
Stratul fizic cuprinde cablajul real și emițătoarele și receptoarele diferențiale, plus logica de cel mai mic nivel care transmite și primește unitatea de strat fizic. Unitatea de strat fizic este „phit” pe 20 de biți. Stratul fizic transmite un „phit” de 20 de biți folosind o singură margine de ceas pe 20 de benzi atunci când toate cele 20 de benzi sunt disponibile sau pe 10 sau 5 benzi când QPI este reconfigurat din cauza unei defecțiuni. Rețineți că, pe lângă semnalele de date, un semnal de ceas este transmis de la transmițător la receptor (ceea ce simplifică recuperarea ceasului în detrimentul pinilor suplimentari).
Strat de legătură
Stratul de legătură este responsabil pentru trimiterea și primirea de flituri pe 80 de biți. Fiecare flit este trimis la stratul fizic ca patru fit-uri de 20 de biți. Fiecare flit conține un CRC de 8 biți generat de transmițătorul de strat de legătură și o sarcină utilă de 72 de biți. Dacă receptorul stratului de legătură detectează o eroare CRC, receptorul notifică emițătorul printr-un flit pe legătura de retur a perechii, iar emițătorul retrimite flit-ul. Stratul de legătură implementează controlul fluxului utilizând o schemă de credit / debit pentru a împiedica revărsarea bufferului receptorului. Stratul de legătură acceptă șase clase diferite de mesaje pentru a permite straturilor superioare să distingă fluxurile de date de mesajele care nu sunt date, în principal pentru menținerea coerenței cache-ului. În implementările complexe ale arhitecturii QuickPath, stratul de legătură poate fi configurat pentru a menține fluxuri separate și controlul fluxului pentru diferitele clase. Nu este clar dacă acest lucru este necesar sau implementat pentru implementările cu un singur procesor și cu două procesoare.
Strat de rutare
Stratul de rutare trimite o unitate de 72 de biți constând dintr-un antet de 8 biți și o încărcare utilă pe 64 de biți. Antetul conține destinația și tipul mesajului. Când stratul de rutare primește o unitate, acesta își examinează tabelele de rutare pentru a determina dacă unitatea și-a atins destinația. Dacă da, este livrat la următorul strat superior. Dacă nu, este trimis pe QPI-ul corect de ieșire. Pe un dispozitiv cu un singur QPI, stratul de rutare este minim. Pentru implementări mai complexe, tabelele de rutare ale stratului de rutare sunt mai complexe și sunt modificate dinamic pentru a evita legăturile QPI eșuate.
Stratul de transport
Stratul de transport nu este necesar și nu este prezent în dispozitivele destinate numai conexiunilor punct-la-punct. Aceasta include Core i7. Stratul de transport trimite și primește date prin rețeaua QPI de la colegii săi pe alte dispozitive care pot să nu fie conectate direct (de exemplu, datele ar putea fi direcționate printr-un dispozitiv intermediar.) Stratul de transport verifică dacă datele sunt complete și dacă nu, solicită retransmisia de la colegul său.
Strat protocol
Stratul de protocol trimite și primește pachete în numele dispozitivului. Un pachet tipic este un rând de memorie cache. Stratul de protocol participă, de asemenea, la menținerea coerenței cache-ului prin trimiterea și primirea de mesaje de coerență cache.

Vezi si

Referințe

linkuri externe