PCI-Express

Der PCI Express , abgekürzt PCI-E oder PCIe (früher 3GIO, 3rd Generation Input/Output ) ist ein von Intel entwickelter und 2004 eingeführter Standard . Er spezifiziert einen lokalen seriellen Bus („PCI Express Bus“) und einen verwendeten Anschluss zum Anschließen von Erweiterungskarten an die Hauptplatine eines Computers. Es soll alle Erweiterungssteckplätze eines PCs ersetzen, einschließlich PCI und AGP .

Spezifikation 4.0 wurde 2017 veröffentlicht, Version 5.0 ist für 2019 geplant.

Ein bemerkenswerter Vorteil des PCIe-Busses besteht darin, dass zwei PCIe-Karten miteinander kommunizieren können, ohne den Prozessor zu durchlaufen.

Eine Evolution von ICH

Ein Vorteil von PCI Express besteht darin, dass es vom PCI- Standard ( Peripheral Component Interconnect ) abgeleitet ist, der es Herstellern ermöglicht, ihre bestehenden Erweiterungskarten einfach anzupassen, da nur die Hardwareschicht geändert werden muss. Andererseits ist er schnell genug, um neben herkömmlichem PCI auch AGP, einen schnellen Anschluss für Grafikkarten, zu ersetzen.

Im Gegensatz zu PCI, das an die Southbridge des Motherboards angeschlossen wird, ist PCI Express oft sowohl an der Northbridge als auch an der Southbridge verfügbar , es wurde sogar inDezember 2015zu einigen Mikroprozessoren .

Während PCI einen einzelnen, alternierenden bidirektionalen ( Halbduplex ) 32 Bit breiten Bus für alle Peripheriegeräte verwendet, verwendet PCI Express eine serielle Schnittstelle (1 Bit breit) basierend auf bidirektionalen Leitungen, die über 8 Pins verteilt sind. Wir können also von einem Mainboard mit 20 PCIe-Lanes sprechen. Eine Leitung erlaubt theoretisch Vollduplex- Austausch mit 250  MB/s für Version 1.1 des Protokolls. Die verschiedenen Peripheriegeräte kommunizieren dann durch den Austausch von Paketen und die PCI-Bus-Arbitrierung wird durch einen Switch ersetzt. Das Funktionsprinzip ist ähnlich wie beim Packet Switching nach einem Vier-Schichten-Modell:

Wir sprechen von PCIe × 1, × 2, × 4, × 8, × 16 und × 32 Ports, um die Ports nach der Anzahl ihrer Leitungsanschlüsse zu unterscheiden (jeweils 1, 2, 4, 8, 16 oder 32 maximale Leitungen). ). Ein × 32-Port kann theoretisch eine Geschwindigkeit von 8  Gb/s erreichen , also das Vierfache der Geschwindigkeit von AGP- Ports .

Ein × 16-Port darf beispielsweise nur an 8 PCIe-Lanes angeschlossen werden; es muss noch eine Stromversorgung für die × 16-Platinen erforderlich sein . An diesem Port funktioniert eine × 16-Erweiterungskarte (aber wahrscheinlich mit suboptimaler Leistung), da das PCIe-Protokoll eine gegenseitige Aushandlung der maximalen Anzahl von Leitungen vorsieht, die von den beiden verwandten Einheiten unterstützt werden. Ebenso kann eine Karte (Beispiel: × 1) angeschlossen werden und funktioniert korrekt an einem größeren Port (Beispiel: × 2,…, × 32) ....

Entwicklungen

Im Jahr 2007 erschien die zweite Generation von PCIe (Gen 2.0), die es unter anderem ermöglicht, die Geschwindigkeit von 250 auf 500 MB / s pro Richtung pro Link zu erhöhen  (die Geschwindigkeit der ersten Generation Gen 1.0 wird verdoppelt). Im Februar desselben Jahres wurde der  Standard „  External PCI Express 1.0 “ ( ePCIe 1.0 , Cabled PCIe 1.0 ) veröffentlicht, der es ermöglicht, externe Peripheriegeräte an den PCIe-Bus anzuschließen , indem eine Karte verwendet wird, die es ermöglicht, diese auf einen Stecker umzuleiten. extern. Die Geschwindigkeit jeder Zeile ist auf 250  MB / s begrenzt. Es gibt Stecker und Kabel für die 1x, 4x, 8x und 16x Versionen des Busses. Eine Evolution in Richtung Leitungen mit 500  MB/s (wie PCIe 2.0) ist geplant, aber kein Termin bekannt.

Im Jahr 2010 veröffentlichte PCI-SIG die Spezifikationen für PCIe (Gen 3.0), dessen Geschwindigkeit dank einer 60-prozentigen Frequenzerhöhung auf 5 bis 8  GHz für Gen 2.0, aber auch um 128-1000 MB / s verdoppelt wird.  Bit / 130-Bit-Kodierung. Anstatt 20% der Bitrate für Gen 2.0 zu verbrauchen, verliert diese Codierung nur 1,6% der Gesamtbandbreite. Die ersten PCIe 3.0-Peripheriegeräte kamen Mitte 2011 auf den Markt, aber Grafikkarten mit dieser Schnittstelle kamen erst Anfang 2012 auf den Markt.

Die PCIe 4.0-Spezifikation wurde veröffentlicht in Oktober 2017. Es verdoppelt die Bandbreite. Die erste Grafikkarte, die diese neue Spezifikation voll ausschöpft, ist die AMD Radeon RX 5700 XT- Karte im Jahr 2019.

Die PCIe 5.0-Spezifikation wurde veröffentlicht in Mai 2019 mit einer weiteren Verdoppelung der Bandbreite.

Technische Spezifikationen

Steckplatz-/Kartenkompatibilität

PCI-Express-Steckplätze ermöglichen den Anschluss einer x8-Karte (8-Lane) an einen x16-Steckplatz (16-Lane), das Gegenteil ist nicht der Fall; dito für die anderen Varianten. Die Größe des Anschlusses begrenzt die maximale Anzahl der von der Karte verwendeten PCIe-Lanes, garantiert sie jedoch nicht. Die Größe eines Anschlusses auf einem Motherboard gibt die maximale Geschwindigkeit an, aber nicht unbedingt die Geschwindigkeit, mit der die darin eingesetzte Karte betrieben wird. Die Anzahl der verwendeten Leitungen wird zwischen den Geräten automatisch ausgehandelt.

Bei einem x16-Gerät in einem "physischen" x16-Steckplatz hängt seine Funktionsweise von der elektrischen Verdrahtung des Motherboards, der Anzahl der verwendeten X16-Karten sowie dem Prozessor, seiner Frequenz und dem verwendeten Chipsatz (Kommunikationsprozessor) ab. Die anderen PCIe-Karten am Bus können je nach Fall die Anzahl der Leitungen begrenzen, die auf diesem Bus im x16-Modus verwendet werden können.

Maße
PCI-Typ Abmessungen (mm)
PCI-Karte in voller Länge 106,68 mm (Höhe) X 312 mm (Länge)
Halblange PCI-Karte 106,68 mm (Höhe) X 175,26 mm (Länge)
Flache / schlanke PCI-Karte 64,41 mm (Höhe) X

von 119,91 mm bis 167,64 mm (Länge)

Länge und Anzahl der Steckerstifte
Linien Broschen Länge
Gesamt Variable Gesamt Variable
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
Bandbreite

Die Bandbreite variiert je nach PCI-Express-Generation und Anzahl der verwendeten Lanes, jede PCIe-Generation kann die Bandbreite der vorherigen ungefähr verdoppeln:

Generation 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


Stoßen

Die folgende Tabelle zeigt die Leiter auf jeder Seite eines PCI-Express-Kartensteckplatzes:

Pinbelegung des PCI-Express-Steckplatzes (Varianten × 1, × 4, × 8 und × 16)
Brosche Seite B Seite A Beschreibung Brosche Seite B Seite A Beschreibung
1 +12 V PRSNT1 # Muss mit dem am weitesten entfernten PRSNT2 #-Pin verbunden werden 50 HSOp (8) Reserviert Kanal 8 Daten senden, + und -
2 +12 V +12 V Hauptstromstifte 51 HSOn (8) Boden
3 +12 V +12 V 52 Boden HSIp (8) Datenempfang Kanal 8, + und -
4 Boden Boden 53 Boden HSIn (8)
5 SMCLK TCK Pins für SMBus- und JTAG- Ports 54 HSOp (9) Boden Kanal 9 sendet Daten, + und -
6 SMDAT TDI 55 HSOn (9) Boden
7 Boden TDO 56 Boden HSIp (9) Datenempfang Kanal 9, + und -
8 +3,3 V TMS 57 Boden HSIn (9)
9 TRST-Nr. +3,3 V 58 HSOp (10) Boden Kanal 10 sendet Daten, + und -
10 +3,3 V Aux +3,3 V Standby-Leistung 59 HSOn (10) Boden
11 AUFWACHEN # PERST # Reaktivierungslink; grundlegend für den Reset 60 Boden HSIp (10) Datenempfang Kanal 10, + und -
Einkerbung 61 Boden HSIn (10)
12 CLKREQ # Boden Laufuhr-Anfrage 62 HSOp (11) Boden Kanal 11 sendet Daten, + und -
13 Boden REFCLK + Differenzielles Referenztaktpaar 63 HSOn (11) Boden
14 HSOp (0) REFCLK− Kanal 0 sendet Daten, + und - 64 Boden HSIp (11) Datenempfang Kanal 11, + und -
fünfzehn HSOn (0) Boden 65 Boden HSIn (11)
16 Boden HSIp (0) Datenempfang Kanal 0, + und - 66 HSOp (12) Boden Kanal 12 sendet Daten, + und -
17 PRSNT2 # HSIn (0) 67 HSOn (12) Boden
18 Boden Boden 68 Boden HSIp (12) Datenempfang Kanal 12, + und -
PCI Express × 1-Karten enden an Pin 18 69 Boden HSIn (12)
19 HSOp (1) Reserviert Kanal 1 sendet Daten, + und - 70 HSOp (13) Boden Kanal 13 Daten senden, + und -
20 HSOn (1) Boden 71 HSOn (13) Boden
21 Boden HSIp (1) Datenempfang Kanal 1, + und - 72 Boden HSIp (13) Datenempfang Kanal 13, + und -
22 Boden HSIn (1) 73 Boden HSIn (13)
23 HSOp (2) Boden Kanal 2 sendet Daten, + und - 74 HSOp (14) Boden Kanal 14 Daten senden, + und -
24 HSOn (2) Boden 75 HSOn (14) Boden
25 Boden HSIp (2) Datenempfang Kanal 2, + und - 76 Boden HSIp (14) Kanal 14 Datenempfang, + und -
26 Boden HSIn (2) 77 Boden HSIn (14)
27 HSOp (3) Boden Kanal 3 sendet Daten, + und - 78 HSOp (15) Boden Kanal 15 Daten senden, + und -
28 HSOn (3) Boden 79 HSOn (15) Boden
29 Boden HSIp (3) Datenempfang Kanal 3, + und - 80 Boden HSIp (15) Datenempfang Kanal 15, + und -
30 Reserviert HSIn (3) 81 PRSNT2 # HSIn (15)
31 PRSNT2 # Boden 82 Reserviert Boden
32 Boden Reserviert
PCI Express × 4-Karten enden an Pin 32
33 HSOp (4) Reserviert Kanal 4 sendet Daten, + und -
34 HSOn (4) Boden
35 Boden HSIp (4) Datenempfang Kanal 4, + und -
36 Boden HSIn (4)
37 HSOp (5) Boden Kanal 5 sendet Daten, + und -
38 HSOn (5) Boden
39 Boden HSIp (5) Datenempfang Kanal 5, + und -
40 Boden HSIn (5)
41 HSOp (6) Boden Kanal 6 sendet Daten, + und -
42 HSOn (6) Boden
43 Boden HSIp (6) Datenempfang Kanal 6, + und - Legenden
44 Boden HSIn (6) Erdungsstift Null-Volt-Referenz
45 HSOp (7) Boden Kanal 7 sendet Daten, + und - Power-Pin Leistung der PCIe-Karte
46 HSOn (7) Boden Ausgangspin Signal von der Karte zum Motherboard
47 Boden HSIp (7) Datenempfang Kanal 7, + und - Eingangspin Signal von Motherboard zu Board
48 PRSNT2 # HSIn (7) Abfluss öffnen Kann niedrig eingestellt oder von mehreren Karten erkannt werden
49 Boden Boden Kiefer spüren Auf der Karte miteinander verbunden, um die Erkennung des Kartentyps zu ermöglichen
PCI Express × 8-Karten enden an Pin 49 Reserviert Derzeit nicht verwendet, keine Verbindung herstellen

Eigenschaften

Zwei differentielle Links ermöglichen den Austausch von Daten beim Senden (direkt) und Empfangen (rückwärts) zwischen zwei Punkten A & B.
'n' dieser Links bilden dann die Austauschpfade (Lane): PCIe 1x 2x 4x 8x.
Ein Sende- oder Empfangssignal besteht also im Differenzbetrieb aus zwei Drähten.
Die Kombination der Sende- und Empfangssignale, also 4 Adern, bildet einen Pfad (Lane).
Die Gruppierung von 'n'-Pfad repräsentiert den PCIe nX-Link.

Die Root-Komponente ermöglicht den Zugriff auf die CPU, den Speicher oder jedes andere Gerät.
Die optionale Switch-Komponente ermöglicht die PCIe-Übertragung zwischen den Endpunkten, ohne das Root zu durchlaufen.
Endpunkt sind die Austauschgeräte.

Die Daten werden in Form von Paketen erzeugt.
PCIe ermöglicht Flusskontrolle, QoS, Kanalvirtualisierung, vorhersehbare Latenz ...

Durchsatz und Bandbreite:
Ein differentielles Paar ermöglicht einen Durchsatz von 2,5 Gbit/s
PCIe 1x hat also einen Nutzdurchsatz von (2,5 * 1000 * 2 * 8/10) / 8 = 500  MB /s

Der Faktor 2 kommt aus dem Vollduplex-Sende- + Empfangsmodus.
Der Faktor 8/10 wird durch die verwendete 8B10B-Codierung eingeführt.

PCIe folgt dem OSI- Modell  :

Auf der Ebene der Datenverbindung wird eine CRC- Berechnung durchgeführt, die es ermöglicht, die Integrität des Austauschs auf dieser Ebene zu überprüfen.
Eine zweite Berechnung wird auf Transaktionsebene durchgeführt, es handelt sich um eine End-to-End-CRC-Berechnung (ECRC).

Wenn ECRC falsch ist, ist es möglich, das erneute Senden des Pakets anzufordern.
Dies wird auf Sicherungsebene durch ein spezielles DLLP-Paket (Data Link Layer Package) verwaltet.
Pakete vom DLLP-Typ sind für den Benutzer transparent, der im Allgemeinen nur TLP-Pakete sieht.

DLLP sind daher Verwaltungspakete (Vervollständigung, Konfiguration).

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 +-------------------+

Der Header des PCIe-Pakets besteht aus 3 bis 4 32-Bit-Wörtern.
Der Nutzlastbereich data umfasst 0 bis 1024 32-Bit-Wörter.
Ein 32-Bit-Wort wird als Doppelwort (DW) bezeichnet, da ein Wort ein Doppelbyte ist und ein Byte aus 8 Bits besteht.

Die physische Ebene setzt sich aus folgenden Elementen zusammen:

Die Datenverbindungsebene hat auf der Übertragungsseite einen "Replay Buffer", der das Zurücksenden des Pakets ermöglicht, wenn der Empfänger Fehler erkennt.

Es gibt verschiedene Arten von Transaktionen:

Es sind zwei Arten von Transaktionen möglich: gebucht oder nicht gebucht.
Die gepostete Transaktion sendet ein Paket und erwartet keine Gegenleistung: Es ist wie ein Brief in der Post.
Die nicht gebuchte Transaktion, die im Gegenzug ein Abschlusspaket erwartet: Es ist wie ein eingeschriebener Brief.
Ein Speicherschreibvorgang wird vom Typ "posted" sein, während ein Speicherlesevorgang vom Typ "Non-posted" ist.


Wenn die Verwendung von PCIe einfach ist, kann sich der Benutzer auf Transaktionsebene anmelden.
Es ist dann erforderlich, die TLP-Pakete (Transaction Layer Packet) beim Sendeempfang zu verwalten.

Für fortgeschrittenere Anwendungen existieren IPs (Fall eines FPGA-Designs).
Dieses Overlay verwaltet bei Bedarf beispielsweise direkte DMA-Speicherzugriffe im "Scatter Gather"-Modus.

Übersichtstabelle

PCI 2.2 (32bit) PCI-Express 1.x PCI-Express 2.x PCI-Express 3.x PCI-Express 4.x PCI-Express 5.x PCI-Express 6.x
Jahr der Einführung 1992 2003 2007 2012 2017 2019 2021 (geplant)
Frequenz 33 MHz 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz 100 MHz
Max. gelieferte Leistung (12V + 3V3) 25 Watt 75 Watt 75 Watt 75 Watt 75 Watt 75 Watt 75 Watt
Bandbreite 133 MB / s 2,5 GT / s 5 GT / s 8 GT / s 16 GT / s 32 GT / s 64 GT / s
Abbuchung pro Zeile Unzutreffend 250 MB / s 500 MB / s 984,6 MB/s 1969,2 MB / s 3938 MB / s
Geschwindigkeit für 16 Linien Unzutreffend 4 GB/s 8 GB/s 15.754 GB/s 31.508 GB/s 63,02 GB/s
Kompatibilität PCIe inkompatibel PCIe xx PCIe xx PCIe xx PCIe xx PCIe xx PCIe xx

Hinweise und Referenzen

Anmerkungen

  1. Geben Sie das Veröffentlichungsdatum der Spezifikation ein, wenn das Datum der ersten Industrialisierung unbekannt ist.
  2. PCI-SIG drückt die Übertragungsgeschwindigkeit in GT / S, Giga Transfer pro Sekunde, anstatt in Gbit / s aus. Dies bedeutet, dass PCI-Express-Busse bis Version 2.x ein 10-Bit-Codierungssystem verwenden, einschließlich 8 Bit für Daten (die restlichen zwei Bits werden für die Codierung verwendet: Synchronisation, Byte-Abgrenzung, Kontrollintegrität der Übertragung).
  3. Pro Differenzpaar und in jede Richtung (bidirektionale Simplexkanäle).

Verweise

  1. PCI Express 4.0: Version 1.0 jetzt offiziell veröffentlicht , auf tomshardware.fr am 26. Oktober 2017, abgerufen am 17. Januar 2018
  2. PCI Express Bus (PCI-E) , auf der Seite commentcamarche.net, abgerufen am 16. Februar 2016.
  3. (in) "  Spezifikation PCI Express Externe Verkabelung 1.0  " (Zugriff auf 1 st Februar 2013 )
  4. (in) "  Spezifikationsaktualisierung der PCI Express External Cabling 1.0  " , der PCI-Sig,7. Februar 2007(Zugriff auf 1 st Februar 2013 )
  5. https://www.techpowerup.com/review/pci-express-4-0-performance-scaling-radeon-rx-5700-xt/
  6. (in) „  PCI-SIG® erreicht 32GT/s mit neuer PCI Express® 5.0-Spezifikation  “ (Zugriff am 30. Mai 2019 )
  7. PCIe: PCI Express in wenigen Zeilen erklärt , auf tomshardware.fr vom 3. Dezember 2014, eingesehen am 3. Februar 2017
  8. "  PCI Express 1x, 4x, 8x, 16x Busbelegung und Verkabelung @  " [ Archiv von25. November 2009] , UK , Pinouts (abgerufen am 7. Dezember 2009 )
  9. (in) Chris Ramseyer, „  PCI Express 4.0 bringt 16 GT/s und mindestens 300 Watt am Steckplatz  “ auf tomshardware.com ,21. August 2015(Zugriff am 23. August 2016 )  :„  Solomon Vizepräsident von PCI-SIG  (en) , das für den PCI Express-Standard verantwortliche Konsortium gab an, dass das Minimum 300 W betragen würde, aber die Obergrenze“ kann 400 oder 500 W betragen. „PCI Express 3.0 liefert bisher maximal 75 Watt.  “.

Siehe auch

Verwandte Artikel

Quellen