PCI Express , prescurtată PCI-E sau PCIe (fostă 3GIO, 3 -a generație de intrare / ieșire ) este un standard dezvoltat de Intel și introdus în 2004. Acesta prevede un autobuz serial local ( "PCI Express de autobuz") și un conector care este utilizat la conectarea cardurilor de expansiune la placa de bază a unui computer. Este destinat să înlocuiască toate sloturile de expansiune de pe un PC, inclusiv PCI și AGP .
Specificația 4.0 a fost lansată în 2017, iar versiunea 5.0 este programată pentru 2019.
Un avantaj notabil al magistralei PCIe este că două plăci PCIe pot comunica între ele fără a trece prin procesor.
Un avantaj al PCI Express este că este derivat din standardul PCI ( Peripheral Component Interconnect ), care permite producătorilor să-și adapteze pur și simplu cardurile de expansiune existente, deoarece doar stratul hardware trebuie schimbat. Pe de altă parte, este suficient de rapid pentru a înlocui nu numai PCI convențional, ci și AGP, un port rapid pentru plăci grafice.
Spre deosebire de PCI care este conectat la podul de sud al plăcii de bază, PCI Express este adesea disponibil atât la podul de nord, cât și la podul de sud , a fost chiar integrat îndecembrie 2015la unele microprocesoare .
În timp ce PCI utilizează o singură magistrală alternativă bidirecțională ( semi-duplex ) de 32 de biți pentru toate perifericele, PCI Express utilizează o interfață serială (de 1 biți lată) bazată pe linii bidirecționale distribuite pe 8 pini. Putem vorbi astfel de o placă de bază cu 20 de benzi PCIe. O linie permite teoretic schimburi full duplex la 250 MB / s pentru versiunea 1.1 a protocolului. Diferitele periferice comunică apoi schimbând pachete și arbitrajul PCI este înlocuit cu un comutator. Principiul de funcționare este similar cu comutarea pachetelor conform unui model cu patru straturi:
Vorbim de porturi PCIe × 1, × 2, × 4, × 8, × 16 și × 32 pentru a diferenția porturile în funcție de numărul de conectori de linie pe care îi au (respectiv 1, 2, 4, 8, 16 sau 32 de linii maxime ). Un port × 32 poate atinge teoretic o viteză de 8 Gb / s , sau de 4 ori viteza porturilor AGP .
Un port × 16, de exemplu, poate fi conectat doar la 8 benzi PCIe; trebuie să aibă în continuare o sursă de energie electrică necesară pentru plăcile × 16 . O placă de expansiune × 16 va funcționa pe acest port (dar probabil cu performanțe suboptimale), deoarece protocolul PCIe prevede negocierea reciprocă a numărului maxim de linii acceptate de cele două entități conexe. La fel, un card (exemplu: × 1) poate fi conectat și va funcționa corect pe un port mai mare (exemplu: × 2, ..., × 32) ....
În 2007, a apărut a doua generație de PCIe (gen 2.0), permițând, printre altele, creșterea vitezei de la 250 la 500 MB / s pe direcție per legătură (viteza primei generații gen 1.0 este dublată). În luna februarie a aceluiași an, a fost publicat standardul „ External PCI Express 1.0 ” ( ePCIe 1.0 , Cabled PCIe 1.0 ), care permite conectarea perifericelor externe la magistrala PCIe, folosind o placă care permite redirecționarea acestuia către un conector. extern. Viteza fiecărei linii este limitată la 250 MB / s. Există conectori și cabluri pentru versiunile 1x, 4x, 8x și 16x ale autobuzului. Este planificată o evoluție către linii la 500 MB / s (cum ar fi PCIe 2.0), dar nu se anunță nicio dată.
În 2010, PCI-SIG a publicat specificațiile pentru PCIe (gen 3.0), a căror viteză este dublată cu 1000 MB / s datorită creșterii cu 60% a frecvenței, care merge la 5 până la 8 GHz pentru gen 2.0, dar și cu 128- codare bit / 130 biți. În loc să consume 20% din bitrate pentru gen 2.0, această codificare pierde doar 1,6% din lățimea de bandă totală. Primele periferice PCIe 3.0 au sosit la mijlocul anului 2011, dar plăcile grafice care folosesc această interfață nu au sosit decât la începutul anului 2012.
Specificația PCIe 4.0 a fost lansată în octombrie 2017. Dublează lățimea de bandă. Prima placă grafică care folosește pe deplin această nouă specificație este placa AMD Radeon RX 5700 XT în 2019.
Specificația PCIe 5.0 a fost lansată în Mai 2019 cu o dublare suplimentară a lățimii de bandă.
Sloturile PCI Express permit conectarea unui card x8 (8 benzi) la un slot x16 (16 benzi), reversul nu este adevărat; idem pentru celelalte variante. Dimensiunea conectorului limitează numărul maxim de benzi PCIe utilizate de card, dar nu o garantează. Dimensiunea unui conector de pe o placă de bază specifică viteza maximă, dar nu neapărat viteza cu care va funcționa cardul care este introdus în ea. Numărul de linii utilizate este negociat automat între dispozitive.
Pentru un dispozitiv x16 într-un slot x16 „fizic”, modul său de funcționare va depinde de cablajul electric al plăcii de bază, de numărul de carduri X16 utilizate, precum și de procesor, de frecvența acestuia și de chipset-ul (procesorul de comunicații) utilizat. Celelalte carduri PCIe de pe autobuz pot, în funcție de caz, să limiteze numărul de linii care pot fi utilizate pe acest autobuz în modul x16.
DimensiuniTip PCI | Dimensiuni (mm) |
Card PCI integral | 106,68 mm (înălțime) X 312 mm (lungime) |
Card PCI pe jumătate | 106,68 mm (înălțime) X 175,26 mm (lungime) |
Card PCI cu profil redus / subțire | 64,41 mm (înălțime) X
de la 119,91 mm la 167,64 mm (lungime) |
Linii | Broșe | Lungime | ||
---|---|---|---|---|
Total | Variabil | Total | Variabil | |
0× 1 | 2 × 18 = 036 | 2 × 07 = 014 | 25 mm | 07,65 mm |
0× 4 | 2 × 32 = 064 | 2 × 21 = 042 | 39 mm | 21,65 mm |
0× 8 | 2 × 49 = 098 | 2 × 38 = 076 | 56 mm | 38,65 mm |
× 16 | 2 × 82 = 164 | 2 × 71 = 142 | 89 mm | 71,65 mm |
Lățimea de bandă variază în funcție de generația PCI Express și de numărul de benzi utilizate, fiecare generație PCIe poate dubla aproximativ lățimea de bandă a celei anterioare:
Generaţie | x1 | x4 | x8 | x16 |
---|---|---|---|---|
PCIe 1.1 | 250 MB / s | 1 GB / s | 2 Gb / s | 4 GB / s |
PCIe 2.0 | 500 MB / s | 2 Gb / s | 4 GB / s | 8 GB / s |
PCIe 3.0 | 1 GB / s | 4 GB / s | 8 GB / s | 16 GB / s |
PCIe 4.0 | 2 Gb / s | 8 GB / s | 16 GB / s | 32 GB / s |
PCIe 5.0 | 4 GB / s | 16 GB / s | 32 GB / s | 64 GB / s |
Următorul tabel prezintă conductorii de pe fiecare parte a unui slot pentru card PCI Express:
Broşă | Partea B | Partea A | Descriere | Broşă | Partea B | Partea A | Descriere | |
---|---|---|---|---|---|---|---|---|
1 | +12 V | PRSNT1 # | Trebuie să vă conectați la cel mai îndepărtat pin PRSNT2 # | 50 | HSOp (8) | Rezervat | Canalul 8 trimite date, + și - | |
2 | +12 V | +12 V | Pinii principali de alimentare | 51 | HSOn (8) | Sol | ||
3 | +12 V | +12 V | 52 | Sol | HSIp (8) | Recepție date canal 8, + și - | ||
4 | Sol | Sol | 53 | Sol | HSIn (8) | |||
5 | SMCLK | TCK | pini pentru porturile SMBus și JTAG | 54 | HSOp (9) | Sol | Canalul 9 trimite date, + și - | |
6 | SMDAT | TDI | 55 | HSOn (9) | Sol | |||
7 | Sol | TDO | 56 | Sol | HSIp (9) | Recepție date canal 9, + și - | ||
8 | +3,3 V | TMS | 57 | Sol | HSIn (9) | |||
9 | TRST # | +3,3 V | 58 | HSOp (10) | Sol | Canalul 10 trimite date, + și - | ||
10 | +3,3 V aux | +3,3 V | Puterea de așteptare | 59 | HSOn (10) | Sol | ||
11 | WAKE # | PREST # | Legătură de reactivare; fundamental pentru resetare | 60 | Sol | HSIp (10) | Recepție date canal 10, + și - | |
Crestătură | 61 | Sol | HSIn (10) | |||||
12 | CLKREQ # | Sol | Cererea de ceas rulează | 62 | HSOp (11) | Sol | Canalul 11 trimite date, + și - | |
13 | Sol | REFCLK + | Pereche diferențială de ceas de referință | 63 | HSOn (11) | Sol | ||
14 | HSOp (0) | REFCLK− | Canalul 0 trimite date, + și - | 64 | Sol | HSIp (11) | Recepția de date a canalului 11, + și - | |
15 | HSOn (0) | Sol | 65 | Sol | HSIn (11) | |||
16 | Sol | HSIp (0) | Recepție date canal 0, + și - | 66 | HSOp (12) | Sol | Canalul 12 trimite date, + și - | |
17 | PRSNT2 # | HSIn (0) | 67 | HSOn (12) | Sol | |||
18 | Sol | Sol | 68 | Sol | HSIp (12) | Recepția de date a canalului 12, + și - | ||
Cardurile PCI Express × 1 se termină la pinul 18 | 69 | Sol | HSIn (12) | |||||
19 | HSOp (1) | Rezervat | Canalul 1 care trimite date, + și - | 70 | HSOp (13) | Sol | Canalul 13 trimite date, + și - | |
20 | HSOn (1) | Sol | 71 | HSOn (13) | Sol | |||
21 | Sol | HSIp (1) | Recepție date canal 1, + și - | 72 | Sol | HSIp (13) | Recepția de date a canalului 13, + și - | |
22 | Sol | HSIn (1) | 73 | Sol | HSIn (13) | |||
23 | HSOp (2) | Sol | Canalul 2 trimite date, + și - | 74 | HSOp (14) | Sol | Canalul 14 trimite date, + și - | |
24 | HSOn (2) | Sol | 75 | HSOn (14) | Sol | |||
25 | Sol | HSIp (2) | Recepție date canal 2, + și - | 76 | Sol | HSIp (14) | Recepție date canal 14, + și - | |
26 | Sol | HSIn (2) | 77 | Sol | HSIn (14) | |||
27 | HSOp (3) | Sol | Canalul 3 trimite date, + și - | 78 | HSOp (15) | Sol | Canalul 15 trimite date, + și - | |
28 | HSOn (3) | Sol | 79 | HSOn (15) | Sol | |||
29 | Sol | HSIp (3) | Recepția de date a canalului 3, + și - | 80 | Sol | HSIp (15) | Recepția de date a canalului 15, + și - | |
30 | Rezervat | HSIn (3) | 81 | PRSNT2 # | HSIn (15) | |||
31 | PRSNT2 # | Sol | 82 | Rezervat | Sol | |||
32 | Sol | Rezervat | ||||||
Cardurile PCI Express × 4 se termină la pinul 32 | ||||||||
33 | HSOp (4) | Rezervat | Canalul 4 trimite date, + și - | |||||
34 | HSOn (4) | Sol | ||||||
35 | Sol | HSIp (4) | Recepția de date a canalului 4, + și - | |||||
36 | Sol | HSIn (4) | ||||||
37 | HSOp (5) | Sol | Canalul 5 trimite date, + și - | |||||
38 | HSOn (5) | Sol | ||||||
39 | Sol | HSIp (5) | Recepția de date a canalului 5, + și - | |||||
40 | Sol | HSIn (5) | ||||||
41 | HSOp (6) | Sol | Canalul 6 trimite date, + și - | |||||
42 | HSOn (6) | Sol | ||||||
43 | Sol | HSIp (6) | Recepția de date a canalului 6, + și - | Legendele | ||||
44 | Sol | HSIn (6) | Știftul de la sol | Referință zero volt | ||||
45 | HSOp (7) | Sol | Canalul 7 trimite date, + și - | Pinul de alimentare | Alimentarea cardului PCIe | |||
46 | HSOn (7) | Sol | Pin de ieșire | Semnal de la card la placa de bază | ||||
47 | Sol | HSIp (7) | Recepția de date a canalului 7, + și - | Pinul de intrare | Semnal de la placa de baza la placa | |||
48 | PRSNT2 # | HSIn (7) | Canal deschis | Poate fi setat scăzut sau detectat de mai multe cărți | ||||
49 | Sol | Sol | Sense pin | Conectat pe card pentru a permite detectarea tipului de card | ||||
Cardurile PCI Express × 8 se termină la pinul 49 | Rezervat | Nu este utilizat în prezent, nu vă conectați |
Două legături diferențiale permit schimbul de date în transmisie (direct) și recepție (invers) între două puncte A și B.
„n” al acestor legături constituie apoi căile de schimb (bandă): PCIe 1x 2x 4x 8x.
Prin urmare, un semnal de transmisie sau recepție este compus din două fire în modul diferențial.
Combinația semnalelor de transmisie și recepție, adică 4 fire, constituie o cale (bandă).
Gruparea căii „n” reprezintă legătura PCIe nX.
Componenta rădăcină permite accesul la CPU, memorie sau orice alt dispozitiv.
Componenta de comutare care este opțională permite transferul PCIe între punctul final fără a trece prin rădăcină.
Punctul final sunt dispozitivele de schimb.
Datele sunt produse sub formă de pachete.
PCIe permite controlul fluxului, QoS, virtualizarea canalelor, latența previzibilă ...
Randament și lățime de bandă:
o pereche diferențială permite o viteză de 2,5 Gbit / s
PCIe 1x va avea, prin urmare, o viteză utilă de (2,5 * 1000 * 2 * 8/10) / 8 = 500 MB / s
Factorul 2 provine de la transmisia full duplex + modul de recepție.
Factorul 8/10 este introdus prin codarea 8B10B utilizată.
PCIe urmează modelul OSI :
Un calcul CRC se efectuează la nivelul legăturii de date, face posibilă verificarea integrității schimburilor la acest nivel.
Un al doilea calcul se efectuează la nivel tranzacțional, este un calcul CRC de la cap la cap (ECRC).
Dacă ECRC este fals, este posibil să solicitați retrimiterea pachetului.
Aceasta este gestionată la nivelul legăturii de date printr-un anumit pachet DLLP (pachet de straturi de legătură de date).
Pachetele de tip DLLP sunt transparente pentru utilizatorul care vede doar pachetele TLP în general.
DLLP sunt, prin urmare, pachete de gestionare (finalizare, configurare).
Software layer *data* +-------------------+ | Transaction layer | **Header,*data*,ecrc** +-------------------+ | Data Link Layer | | | ***Sequence,**Header,*data*,ecrc**,lcrc*** +-------------------+ | PHYsical LAyer | | | Start,***Sequence,**Header,*data*,ecrc**,lcrc***,End +-------------------+Antetul pachetului PCIe este de 3 până la 4 cuvinte pe 32 de biți.
Zona de încărcare utilă, date, este de la 0 la 1024 cuvinte pe 32 de biți.
Un cuvânt pe 32 de biți este numit Cuvânt dublu (DW) știind că un cuvânt este un octet dublu și un octet este format din 8 biți.
Nivelul fizic este alcătuit din următoarele elemente:
Nivelul legăturii de date are un „Replay Buffer” pe partea de transmisie, permițând trimiterea pachetului înapoi când receptorul detectează erori.
Există diferite tipuri de tranzacții:
Sunt posibile două tipuri de tranzacții: înregistrate sau neînregistrate.
Tranzacția de tip postat trimite un pachet și nu așteaptă nimic în schimb: este ca o scrisoare în e-mail.
Tranzacția de tip neînregistrat care așteaptă în schimb un pachet de finalizare: este ca o scrisoare recomandată.
O scriere în memorie va fi de tipul postat, în timp ce o citire în memorie va fi de tipul neînregistrat.
Dacă utilizarea PCIe este simplă, utilizatorul se poate conecta la nivel tranzacțional.
Apoi va fi necesar să gestionați pachetele TLP (pachetul strat de tranzacție) în recepția de transmisie.
Pentru utilizări mai avansate, există IP-uri (cazul unui design FPGA).
Această suprapunere va gestiona, de exemplu, accesele directe de memorie DMA în modul „scatter scatter” dacă este necesar.
PCI 2.2 (32 de biți) | PCI-Express 1.x | PCI-Express 2.x | PCI-Express 3.x | PCI-Express 4.x | PCI-Express 5.x | PCI-Express 6.x | |
---|---|---|---|---|---|---|---|
Anul introducerii | 1992 | 2003 | 2007 | 2012 | 2017 | 2019 | 2021 (planificat) |
Frecvență | 33 MHz | 100 MHz | 100 MHz | 100 MHz | 100 MHz | 100 MHz | 100 MHz |
Putere maximă livrată (12V + 3V3) | 25 wați | 75 wați | 75 wați | 75 wați | 75 wați | 75 wați | 75 wați |
Lățime de bandă | 133 MB / s | 2,5 GT / s | 5 GT / s | 8 GT / s | 16 GT / s | 32 GT / s | 64 GT / s |
Debit pe linie | Nu se aplică | 250 MB / s | 500 MB / s | 984,6 MB / s | 1969,2 MB / s | 3938 MB / s | |
Viteza pentru 16 linii | Nu se aplică | 4 GB / s | 8 GB / s | 15,754 GB / s | 31.508 GB / s | 63,02 GB / s | |
Compatibilitate | PCIe incompatibil | PCIe xx | PCIe xx | PCIe xx | PCIe xx | PCIe xx | PCIe xx |