PCI Express | |
---|---|
| |
Type | dæk |
Historie | |
Udvikler | Intel , PCI SIG , Dell , HP , IBM |
Udviklede sig | 2003 |
fordrevet | AGP , PCI-X , PCI |
specifikationer | |
Hot swap | Ingen |
Ekstern | Ja |
Dataindstillinger | |
Båndbredde | fra 250 Mb/s til 126 Gb/s |
Protokol | konsekvent |
Mediefiler på Wikimedia Commons |
PCI Express ( engelsk Peripheral Component Interconnect Express ), eller PCIe eller PCI-e ; også kendt som 3GIO ( 3rd Generation I/O ) - en computerbus (selvom den ikke er en bus på det fysiske niveau , idet den er en punkt-til-punkt-forbindelse), der bruger PCI -bussoftwaremodellen og en højtydende fysisk protokol baseret på seriel dataoverførsel .
Udviklingen af PCI Express-standarden blev startet af Intel efter opgivelsen af InfiniBand -bussen . Officielt dukkede den første grundlæggende PCI Express-specifikation op i juli 2002 [1] [2] . PCI Express-standarden udvikles af PCI Special Interest Group .
I modsætning til PCI-standarden, som brugte en fælles bus til dataoverførsel med flere enheder forbundet parallelt, er PCI Express generelt et pakkenetværk med en stjernetopologi .
PCI Express-enheder kommunikerer med hinanden gennem et medium dannet af switches, hvor hver enhed er direkte forbundet med en punkt-til-punkt- forbindelse til switchen.
Derudover understøtter PCI Express-bussen [1] [2] :
PCI Express-bussen er kun beregnet til at blive brugt som en lokal bus. Da softwaremodellen af PCI Express i vid udstrækning er arvet fra PCI, kan eksisterende systemer og controllere modificeres til at bruge PCI Express-bussen ved kun at erstatte det fysiske lag uden at ændre softwaren. PCI Express-bussens høje ydeevne gør det muligt at bruge den i stedet for AGP -busser , og endnu mere PCI og PCI-X [2] . De facto PCI Express har erstattet disse busser i personlige computere.
Pinouts PCI Express X1 | |||
---|---|---|---|
Udgang nr. | Formål | Udgang nr. | Formål |
B1 | +12V | A1 | PRSNT1# |
B2 | +12V | A2 | +12V |
B3 | +12V | A3 | +12V |
B4 | GND | A4 | GND |
B5 | SMCLK | A5 | JTAG2 |
B6 | SMDAT | A6 | JTAG3 |
B7 | GND | A7 | JTAG4 |
B8 | +3,3V | A8 | JTAG5 |
B9 | JTAG1 | A9 | +3,3V |
B10 | 3.3V_AUX | A10 | 3,3V |
B11 | VÅGNE# | A11 | PREST# |
Skillevæg | |||
B12 | RSVD | A12 | GND_A12 |
B13 | GND | A13 | REFCLK+ |
B14 | PETP0 | A14 | REFCLK- |
B15 | PETN0 | A15 | GND |
B16 | GND | A16 | PERP0 |
B17 | PRSNT2# | A17 | PERN0 |
B18 | GND | A18 | GND |
Mini PCI Express er et PCI Express-busformat til bærbare enheder.
Der er mange ydre enheder tilgængelige til denne stikstandard:
Mini PCI-E pinouts | |||
---|---|---|---|
Udgang nr. | Formål | Udgang nr. | Formål |
51 | reserveret | 52 | +3,3V |
49 | reserveret | halvtreds | GND |
47 | reserveret | 48 | +1,5V |
45 | reserveret | 46 | LED_WPAN# |
43 | reserveret | 44 | LED_WLAN# |
41 | Reserveret (+3,3V) | 42 | LED_WWAN# |
39 | Reserveret (+3,3V) | 40 | GND |
37 | Reserveret (GND) | 38 | USB_D+ |
35 | GND | 36 | USB_D- |
33 | PETp0 | 34 | GND |
31 | PETn0 | 32 | SMB_DATA |
29 | GND | tredive | SMB_CLK |
27 | GND | 28 | +1,5V |
25 | PERp0 | 26 | GND |
23 | PERn0 | 24 | +3,3 Vaux |
21 | GND | 22 | PREST# |
19 | Reserveret (UIM_C4) | tyve | W_DISABLE# |
17 | Reserveret (UIM_C8) | atten | GND |
Skillevæg | |||
femten | GND | 16 | UIM_VPP |
13 | REFCLK+ | fjorten | UIM_RESET |
elleve | REFCLK- | 12 | UIM_CLK |
9 | GND | ti | UIM_DATA |
7 | CLKREQ# | otte | UIM_PWR |
5 | Reserveret (COEX2) | 6 | 1,5V |
3 | Reserveret (COEX1) | fire | GND |
en | VÅGNE# | 2 | 3,3V |
Pins SSD Mini PCI Express | |||
---|---|---|---|
33 | Sata TX+ | 34 | GND |
31 | SataTX- | 32 | IDE_DMARQ |
29 | GND | tredive | IDE_DMACK |
27 | GND | 28 | IDE_IOREAD |
25 | Sata RX+ | 26 | GND |
23 | Sata RX | 24 | IDE_IOWR |
21 | GND | 22 | IDE_RESET |
19 | IDE_D7 | tyve | IDE_D8 |
17 | IDE_D6 | atten | GND |
Skillevæg | Skillevæg | ||
femten | GND | 16 | IDE_D9 |
13 | IDE_D5 | fjorten | IDE_D10 |
elleve | IDE_D4 | 12 | IDE_D11 |
9 | GND | ti | IDE_D12 |
7 | IDE_D3 | otte | IDE_D13 |
5 | IDE_D2 | 6 | IDE_D14 |
3 | IDE_D1 | fire | GND |
en | IDE_D0 | 2 | IDE_D15 |
ExpressCard-slots bruges i bærbare computere til at forbinde: [4]
For at tilslutte en PCI Express-enhed bruges en tovejs punkt-til-punkt seriel forbindelse , kaldet en linje ( eng. lane - lane, row); dette adskiller sig markant fra PCI , hvor alle enheder er forbundet til en fælles 32-bit parallel tovejs bus.
En forbindelse ( engelsk link - forbindelse, forbindelse) mellem to PCI Express-enheder består af en (x1) eller flere (x2, x4, x8, x16 og x32) tovejs serielle linjer [1] [2] . Hver enhed skal være tilsluttet mindst én linje (x1).
På det elektriske niveau bruger hver forbindelse lavspændingsdifferentiel signaltransmission ( LVDS ), hver PCI Express-enhed modtager og transmitterer information på separate to ledere, således er enheden i det enkleste tilfælde forbundet til PCI Express-switchen med kun fire konduktører.
Brug af denne tilgang har følgende fordele:
I begge tilfælde vil PCI Express-bussen bruge det maksimale antal tilgængelige baner for både kortet og slot. Dette tillader dog ikke enheden at arbejde i et slot designet til kort med en lavere båndbredde af PCI Express-bussen. For eksempel vil et x4-kort ikke fysisk passe ind i en standard x1-slot, selvom det kunne fungere i en x1-slot med kun én bane. På nogle bundkort kan du finde ikke-standard x1 og x4 slots, der ikke har en ekstrem baffel, så de kan installere kort længere end stikket. Dette giver ikke strøm og jord til den udragende del af kortet, hvilket kan føre til forskellige problemer.
PCI Express sender al kontrolinformation, inklusive interrupts , over de samme linjer, som bruges til at overføre data. Den serielle protokol kan aldrig blokeres, så PCI Express-bussens latenstider er ret sammenlignelige med PCI-bussens (bemærk, at PCI-bussen bruger separate fysiske linjer til at signalere en afbrydelsesanmodning IRQ#A , IRQ#B , IRQ#C , IRQ#D ).
I alle højhastigheds-serielle protokoller (såsom gigabit ethernet ) skal timing-information være indlejret i det transmitterede signal. På det fysiske lag bruger PCI Express linkkodningsmetoden 8b/10b (8 bit i ti, 20 % redundans) [1] [2] til at eliminere DC fra det transmitterede signal og til at indlejre timinginformation i datastrømmen. Fra PCI Express 3.0 bruges mere økonomisk 128b/130b-kodning med 1,5 % redundans.
Nogle protokoller (såsom SONET / SDH ) bruger en teknik kaldet scrambling til at indlejre timinginformation i datastrømmen og til at smøre spektret af det transmitterede signal. PCI Express-specifikationen giver også en scrambling-funktion, men PCI Express-scrambling adskiller sig fra SONET .
PCIe er en fuld duplex [5] protokol. Det vil sige, at strømmene af modtagelse og transmission har uafhængige kanaler og de samme maksimale hastigheder. Hastigheden af computerbusser udtrykkes normalt i gigatransaktioner per sekund . For 1 transaktion sendes et kodeord. For at beregne gennemløbet af 1 buslinje er det nødvendigt at tage højde for kodningen 8b / 10b ( eng. 8b / 10b kodning ) [1] [2] (for PCI-E 3.0 og højere - 128b / 130b ( eng. 128b / 130b-kodning ). For eksempel er PCIe 1.0-banebåndbredden:
2,5 GT/s 8/10 bit/T = 2 Gb/s = 0,25 GB/sPå trods af at standarden tillader 32 linjer pr. port, er sådanne løsninger fysisk besværlige for direkte implementering og er kun tilgængelige i proprietære stik.
Udgivelsesår _ |
PCI Express -version |
Kodning | Enkeltlinje transmissionshastighed _ _ |
Båndbredde pr. x linjer | ||||
---|---|---|---|---|---|---|---|---|
x1 | x2 | x4 | x8 | x16 | ||||
2002 | 1.0 | 8b/10b | 2,5 GT/s | 256 MB/s = 0,25 GB/s | 0,50 GB/s | 1,0 GB/s | 2,0 GB/s | 4,0 GB/s |
2007 | 2.0 | 8b/10b | 5 GT/s | 512 MB/s = 0,5 GB/s | 1,0 GB/s | 2,0 GB/s | 4,0 GB/s | 8,0 GB/s |
2010 | 3.0 | 128b/130b | 8 GT/s | 1008,246 MB/s = 0,985 GB/s | 1.969 GB/s | 3.938 GB/s | 7.877 GB/s | 15.754 GB/s (126 Gb/s ) |
2017 | 4.0 | 128b/130b | 16 GT/s | 1.969 GB/s | 3.938 GB/s | 7.877 GB/s | 15.754 GB/s | 31.508 GB/s (252 Gb/s ) |
2019 | 5,0 | 128b/130b | 32 GT/s | 3.938 GB/s | 7.877 GB/s | 15.754 GB/s | 31.508 GB/s | 64.008 GB/s (512 Gb/s ) |
2022 | 6,0 | 242B/256B, PAM-4 , FEC , FLIT | 64 GT/s | 7.563 GB/s | 15,125 GB/s | 30.250 GB/s | 60.500 GB/s | 121.000 GB/s (968 Gb/s ) |
Ud over PCI Express er der en række højhastigheds, standardiserede serielle grænseflader, hvoraf nogle er HyperTransport , InfiniBand , RapidIO og StarFabric . Hver grænseflade har sine tilhængere blandt industrivirksomheder, da protokolspecifikationer allerede har brugt betydelige mængder penge, og hvert konsortium søger at understrege fordelene ved dens særlige grænseflade frem for andre.
En standardiseret højhastighedsgrænseflade skal på den ene side være fleksibel og udvidelsesbar, og på den anden side skal den give lav latenstid og lav overhead (det vil sige, at pakkeoverheaden ikke skal være stor). I det væsentlige ligger forskellene mellem grænseflader netop i den afvejning, som udviklerne har valgt af en bestemt grænseflade mellem disse to modstridende krav.
For eksempel tillader yderligere routinginformation i en pakke at organisere kompleks og fleksibel pakkerouting, men øger overheaden for pakkebehandling, reducerer også grænsefladebåndbredden og komplicerer softwaren, der initialiserer og konfigurerer enheder, der er forbundet til grænsefladen. Hvis det er nødvendigt at sørge for hot-plugging af enheder, er der behov for speciel software, der kan spore ændringer i netværkstopologien. Eksempler på interfaces, der er tilpasset til dette, er RapidIO, InfiniBand og StarFabric.
Samtidig er det ved at forkorte pakkerne muligt at reducere forsinkelsen i dataoverførslen, hvilket er et vigtigt krav til en hukommelsesgrænseflade. Men den lille størrelse af pakkerne fører til, at andelen af overheadfelter i pakken øges, hvilket reducerer grænsefladens effektive gennemløb. Et eksempel på denne type grænseflade er HyperTransport.
Positionen af PCI Express er mellem de beskrevne tilgange, da PCI Express-bussen er designet til at fungere som en lokal bus, snarere end en processor-hukommelsesbus eller et komplekst routet netværk. Derudover blev PCI Express oprindeligt tænkt som en bus logisk kompatibel med PCI-bussen, som også introducerede sine egne begrænsninger.
Der er også specialiserede busser til at forbinde chipsæt (mellem nordbro og sydbro ), baseret på den fysiske protokol PCI Express (normalt x4), men med andre logiske protokoller. For eksempel bruger Intel-platforme DMI -bussen , mens AMD-systemer med AMD Fusion -chipsættet bruger UMI [6] -bussen .
PCI - SIG udgav PCI Express 2.0-specifikationen den 15. januar 2007 . Vigtigste innovationer i PCI Express 2.0:
PCI Express 2.0 er fuldt kompatibel med PCI Express 1.1 (gamle grafikkort vil fungere i bundkort med nye stik, men kun ved 2,5GT/s, da ældre chipsæt ikke kan understøtte dobbelte dataoverførselshastigheder; nyere grafikkort vil fungere uden problemer i gamle PCI Express 1.x standard slots).
Ekstern PCIe-kabelspecifikationDen 7. februar 2007 udgav PCI-SIG den eksterne PCIe-kabelspecifikation. Den nye specifikation tillader kabler med en længde på op til 10 meter, der fungerer ved en båndbredde på 2,5 GT/s.
Med hensyn til fysiske egenskaber (hastighed, stik) svarer det til 2.0, softwaredelen har tilføjet funktioner, som er planlagt fuldt implementeret i version 3.0. Da de fleste bundkort sælges med version 2.0, er det ikke muligt at aktivere 2.1-tilstand at have kun et videokort med 2.1.
I november 2010 [7] blev specifikationerne for PCI Express 3.0-versionen godkendt. Interfacet har en dataoverførselshastighed på 8 GT/s ( Gigatransactions/s ). Men på trods af dette blev dens reelle gennemløb stadig fordoblet sammenlignet med PCI Express 2.0-standarden. Dette blev opnået takket være det mere aggressive 128b/130b-kodningsskema, hvor 128 bit data sendt over bussen kodes i 130 bit. Samtidig er fuld kompatibilitet med tidligere versioner af PCI Express bevaret. PCI Express 1.x- og 2.x-kort vil fungere i slot 3.0, og omvendt vil et PCI Express 3.0-kort fungere i slots 1.x og 2.x (selvom det ikke vil være i stand til at afsløre sit fulde hastighedspotentiale). For 4 linjer er dataoverførselshastigheden 4 GB/s, for 16 linjer - 16 GB/s [8] .
Ifølge PCI-SIG begyndte de første test af PCI Express 3.0 i 2011, kompatibilitetstestværktøjer for partnere dukkede først op i midten af 2011, og rigtige enheder først i 2012.
PCI Special Interest Group (PCI SIG) udtalte, at PCI Express 4.0 kunne standardiseres inden udgangen af 2016 [9] , men i midten af 2016, hvor en række chips allerede var ved at blive klargjort til fremstilling, rapporterede medierne, at standardisering forventedes i begyndelsen af 2017 [10] . Den forventedes at have en gennemstrømning på 16 GT/s, hvilket betyder, at den ville være dobbelt så hurtig som PCIe 3.0 [11] [12] . Senere blev standardiseringsdatoerne udskudt, og specifikationen blev først offentliggjort den 5. oktober 2017 [13] . Sammenlignet med PCI Express 3.0-specifikationen er den maksimale dataoverførselshastighed på PCI Express-bussen blevet fordoblet fra 8 til 16 GT/s. Derudover er latency reduceret, skalerbarhed og virtualiseringsunderstøttelse er blevet forbedret [14] . For 4 linjer er dataoverførselshastigheden 8 GB/s, for 16 linjer - 32 GB/s [8] .
Den 7. november 2018 annoncerede AMD planer om at frigive den første GPU , der understøtter PCI Express 4.0 x16 i fjerde kvartal af 2018 [15] . Den 27. maj 2019 annoncerede Gigabyte - virksomheden frigivelse af bundkort i X570 Aorus-serien. Ifølge producenten "åbner disse boards æraen med PCIe 4.0" [16] .
I maj 2019 udkom den endelige specifikation af PCI Express 5.0-standarden [8] . Dataoverførselshastigheden på PCI Express-bussen var 32 GT/s. Det forventes, at en sådan hastighed vil have en positiv indvirkning på projekter relateret til virtual reality [17] . For 4 linjer er dataoverførselshastigheden 16 GB/s, for 16 linjer - 64 GB/s [8] .
Den endelige specifikation af PCI Express 6.0-standarden er planlagt til udgivelse i 2022. Den forventede dataoverførselshastighed vil være 32 GB/s for 4 linjer og 128 GB/s for 16 linjer [18] [19] .
Computerbusser og interfaces | |
---|---|
Basale koncepter | |
Processorer | |
Indre | |
bærbare computere | |
Kører | |
Periferi | |
Udstyrsstyring | |
Universel | |
Video interfaces | |
Indlejrede systemer |