PCI Express („Peripheral Component Interconnect Express“, abgekürztPCIe oderPCI-E) ist ein Standard zur Verbindung vonPeripheriegeräten mit demChipsatz einesHauptprozessors. 2003 eingeführt ist PCIe der Nachfolger vonPCI,PCI-X undAGP und bietet im Vergleich zu seinen Vorgängern eine höhereDatenübertragungsrate pro Pin. Nach ca. 2010 wurden keine anderenSteckplätze mehr aufHauptplatinen verbaut und die Vorgänger PCI(-X) und AGP schließlich vollständig abgelöst.[1]
Über die Anwendung für Erweiterungs-Steckplätze hinaus bilden die PCIe-Protokolle inzwischen die Basis für zahlreiche andere Schnittstellen wieSATA Express,M.2,U.2,SAS Express undThunderbolt sowie fürCFexpress und SD Express Memory Cards.
Während ihrer Entwicklung wurde die Schnittstelle „3GIO“ genannt, was für „3rd GenerationInput/Output“ steht.
PCIe ist im Gegensatz zum parallelen PCI-Bus kein geteiltes (shared)Bus-System, sondern besteht aus dediziertenPunkt-zu-Punkt-Verbindungen zu jedem Gerät. Einzelne Komponenten werden über Switches verbunden. Diese ermöglichen es, direkte Verbindungen zwischen einzelnen PCIe-Geräten herzustellen, so dass die Kommunikation von Geräten untereinander die erreichbare Datenrate anderer Geräte nicht beeinflusst.
Die einzelnen Punkt-zu-Punkt-Verbindungen von PCI-Express werden durch eine oder mehrereDatenübertragungs-Kanäle sowieLeiterbahnen (englischlanes) einerselbstgetakteten seriellen Verbindung ausgeführt. Es gibt kein eigenes Taktsignal, lediglich ein viel geringerer Referenztakt von 100 MHz wird separat übertragen, der allerdings nicht für die Übertragung verwendet wird. Die Taktrückgewinnung erfolgt aus dem Empfangssignal. Dieses ist speziell dafür kodiert (bis PCIe 2.1 nach dem 8b/10b, PCIe 3.0 bis 5.0 eine „Scrambling“-Kodierung, welche 128 Netto-Datenbits jeweils 2 Synchronisations-Bits voranstellt).[10] Ab PCIe 6.0 werden pro Symbol 2 Bit übertragen, neben einem Synchronisationsymbol kommen 32 Symbole für die Fehlererkennung und 24 Symbole zur Vorwärtsfehlerkorrektur dazu.
Für das Senden der Daten werden Parallel-zu-seriell-Wandler und für den Empfang Seriell-zu-parallel-Wandler in den Baugruppen eingesetzt. Trotz dieses sehr abweichenden physischen Aufbaus ist PCIe softwareseitig voll kompatibel zu PCI, so dass weder Betriebssysteme und Treiber noch Anwendungsprogramme angepasst werden müssen.
Sämtliche Datenübertragungen und sämtliche Signale (z. B.IRQs) auf der PCIe-Verbindung werden in Pakete aufgeteilt. Auf Grund des grundlegend anderen elektrischen Aufbaus und der anderen Übertragungsform sind keine Mischgeräte möglich, die sowohl in PCI- als auch PCIe-Slots betrieben werden könnten. Das ist auch durch andere Anschlüsse bedingt, so dass für PCIe-Karten entsprechend neuere Motherboards bzw. Controller verwendet werden müssen.
PCIe ist wie PCI prinzipiellHot-Plug-fähig, was das Ein- und Ausbauen von (z. B. defekten)Erweiterungskarten im laufenden Betrieb ermöglicht, sofern die Hardware und auch das Betriebssystem das unterstützen.
PCI-Express kann über drei verschiedene elektrische Topologien angebunden sein:
PCI-Express-Gerät auf der Systemplatine
PCI-Express-Geräte verbunden über einen Steckverbinder auf der Systemplatine, in dem eine Add-On-Karte steckt
PCI-Express-Geräte verbunden über zwei Steckverbinder: einen auf der Systemplatine, in dem eineRiser-Karte steckt, und eine oder mehrere Add-On-Karten in den Steckplätzen der Riser-Karte (wird ab PCI Express 4 passiv nicht mehr unterstützt).
Letztere weisen neben den Standardbusbreiten auch ×16 (als zwei ×8), ×24 (als drei ×8), ×32 (als zwei ×16) oder ×48 (als drei ×16) auf.
Bei auf dem Markt erhältlichen ×24, ×32 und ×48-Steckplätzen handelt es sich umRiser-Steckplätze zur Aufnahme von Erweiterungskarten, die dann 1 bis 3 PCI ×8- oder ×16-Karten aufnehmen können.
Hauptplatinen haben meist einen speziellen PCIe-Steckplatz für Grafikkarten,englischPCI Express for Graphics und daher „PEG-Slot“, der meist 16 Lanes (×16) anbindet und mehr Strom bereitstellen kann (75 statt sonst nur 25 Watt, siehe AbschnittStromversorgung).[11]
Die Übertragung wird durch mehrereSchichten dargestellt, von denen jede nur mit den direkt benachbarten Schichten kommuniziert, sowie für die auf dieser Schicht übertragenen Daten eine Fehlererkennung oder -korrektur durchführt.
Die unterste Schicht, der sogenanntePhysical Layer, stellt die elektrische Verbindung zwischen zwei direkt miteinander verbundenen Geräten dar. Das sind zum Beispiel ein Endgerät (z. B. eine Einsteckkarte) und der nächstgelegene Switch. Dielogische Verbindung („Link“) zwischen diesen Geräten besteht aus 1 bis 16Lanes. Jede Lane wiederum besteht aus zwei Leitungspaaren, je eindifferentielles Paar für das Senden und Empfangen (dual-simplex). Jedes differentielle Leitungspaar wird von Treiberstufen angesteuert, die nach dem StandardHCSL (englischHigh Speed Current Steering Logic) ausgeführt sind. DerLeitungswellenwiderstand und die dazu idente Leitungsterminierung besteht aus einem differentiellen Abschluss mit 100 Ω. Seit PCIe Gen2 besteht auch die Option, mit einem Leitungswellenwiderstand von 85 Ω zu arbeiten.[12]
Sämtliche Daten, die zwischen PCIe-Geräten übertragen werden, werden gemischt über diese Leitungen seriell übertragen, im Gegensatz zu PCI gibt es also keine eigenen Leitungen mehr für die Signalisierung vonInterrupts. Da das serielle Protokoll jedoch nicht angehalten werden kann, ergibt sich eine etwas höhere und auchschwankende Interruptlatenz als bei klassischem PCI mit dedizierten Interruptleitungen.
DerData Link Layer überträgt die Datenpakete desTransaction Layers zwischen den beiden Verbindungspartnern. Dazu versieht er diese mit einer Sequenznummer, sowie einem 32-Bit-CRC-Wert, dem sogenanntenLink CRC (LCRC). Empfangene Pakete werden dem direkten Verbindungspartner mittels Data Link Layer Packets mitgeteilt, ebenso wie der Zustand des Pakets. Beschädigte oder verlorene Pakete werden vom Verbindungspartner erneut gesendet. Dadurch werden die höheren Layer von elektrischen Übertragungsstörungen entkoppelt.
DerTransaction Layer transportiert letztlich die Nutzdaten zwischen dem logischen Sender und Empfänger, das heißt ohne Berücksichtigung der dazwischenliegenden Switches. DieTransaction Layer Packets (TLP) enthalten im Header eine Kennzeichnung, um was für eine Art von Übertragung es sich handelt. Typische Beispiele sind Schreibzugriffe (Writes) sowie Leseanforderungen (Reads) sowie Leseantworten (Completions). Schreibzugriffe sind sogenannteposted transactions, das heißt, sie werden gesendet und erzeugen auf dem Transaction Layer keinerlei Antwort.
PCIe bietet als neues Feature gegenüber PCI „Quality of Service“. Dazu werden virtuelle Kanäle „Virtual Channels“ (VC) benutzt, denen eine Priorität „Traffic Class“ (TC) zugeordnet wird. Standardmäßig läuft der Datenverkehr über VC0 mit TC0. Durch die Benutzung von anderen virtuellen Kanälen kann bestimmter Datenverkehr priorisiert werden.
Eine typische Anwendung wäre eine Soundkarte bei der Aufnahme: Kann sie ihre Daten nicht rechtzeitig über die Verbindung weiterschicken, weil die Verbindung anderweitig belegt ist, so läuft früher oder später der Zwischenspeicher der Soundkarte über und es gehen Daten verloren. Für dieseEchtzeitanwendung würde man den Datenverkehr priorisieren.
Ein PCI-Express-Steckplatz kann das daran angeschlossene Gerät mit Strom versorgen. Laut Spezifikation beträgt die gelieferte Leistung für einen gewöhnlichen Steckplatz wie beiPCI maximal 25 Watt, für Low-Profile-Karten höchstens 10 Watt und bei einem PEG-(PCIe-×16)-Steckplatz maximal 75 Watt.[13] Diese maximal 75 Watt sind aufgeteilt in 5,5 Ampere über 12 Volt (66 Watt) und 3 A über 3,3 V (9,9 W). Da das für manche Einsatzzwecke wie Grafikkarten oder USB 3.0-Karten jedoch häufig zu wenig ist, sieht die Spezifikation unterschiedliche Zusatzstecker zur Stromversorgung vor, sogenannte PCI Express (Graphics) Power Supply Connector (auch PEG-Connector oder PCIe-Kabel), die +12 Volt liefern.
Die erste Version der Zusatzstecker hat 6 Pins[14][15] und kann bis zu 75 Watt liefern, wodurch die dem Gerät maximal bereitgestellte Leistung auf 150 Watt steigt, bei Nutzung zweier solcher Stecker auf 225 Watt. In der Spezifikation von PCI Express 2.0 wurde ein neuer Zusatzstecker mit 8 Pins definiert, der maximal 150 Watt führen kann. Für noch höhere Leistungen kann ein zusätzlicher Stecker mit 6 Pins genutzt werden, der weitere 75 Watt zuführt, wodurch die maximale Leistungsaufnahme einer PCI-Express-Karte auf 300 Watt begrenzt ist (75 Watt vom Steckplatz, 150 Watt erster Stecker, 75 Watt zweiter Stecker).[15][16] Leistungsfähigere Grafikkarten, die seit Anfang 2011 auf dem Markt sind, sehen die Verwendung von zwei 8-Pin-Steckern vor. Dadurch erhöht sich die maximal zulässige Leistungsaufnahme auf 375 Watt. (75 Watt vom Steckplatz, 150 Watt erster Stecker, 150 Watt zweiter Stecker).
Wenn ein 6-Pin-Stecker in eine 8-Pin-Buchse gesteckt wird, merkt die Karte am fehlendenSense1, dass sie über die Kabelverbindung nur 75 W beziehen darf.
Ab PCI Express-5.0 sind für Leistungen bis 600 W neue 12 + 4-polige Stecker vorgesehen. Der Stecker nennt sich 12VHPWR High Power Connector (H+).
Pin
Beschreibung
01…6
+12 V
07…12
Masse
13
Card Power Stable, optional
14
Card Cable Present, optional
15
Sense0
16
Sense1
Welche maximale Dauerleistung das Netzteil der PCI Express-5.0 Grafikkarte liefern kann, wird über die Beschaltung der Pins 15 und 16 des Steckers signalisiert. Die Pins 13 und 14 sind in der Regel nicht beschaltet, d. h. offen.
In der PCI Express-5.1 Standardisierung wurde der mit PCI Express-5.0 eingeführte neue 12-Pin-Stecker 12VHPWR aufgrund von Problemen mit der sicheren elektromechanischen Verbindung überarbeitet. Der Stecker nennt sich nun 12V-2x6 High Power Connector (H++). Die mechanischen Änderungen umfassen eine Verkürzung der Sense Pins 13–16 um 1,7 mm und eine Verlängerung der Pluspol- und Masse-Pins 1–12 um 0,25 mm. Die Verkürzung der Sense Pins soll verhindern, dass der Kontakt zu ihnen hergestellt wird, bevor der Stecker vollständig eingerastet ist. Die Verlängerung der Pluspol- und Masse-Pins soll die elektrische Kontaktfläche auch bei voll eingestecktem Stecker erhöhen, um die generelle Wärmeentwicklung an den Steckkontakten zu reduzieren.[21]
Die elektrischen Änderungen beschränken sich auf eine geänderte Beschaltung der Sense Pins (in der Tabelle sind die Änderungen fett gedruckt).
Pin 15 Sense0
Pin 16 Sense1
Maximale Dauerleistung
Masse
Masse
00600 Watt
offen
Masse
00450 Watt
Masse
offen
00300 Watt
kurzgeschlossen
00150 Watt
offen
offen
00000 Watt
Durch diese Maßnahmen soll die Problematik nicht vollständig eingerasteter und dadurch teilweise elektrisch überlasteter Stecker behoben oder zumindest minimiert werden, die beim bisherigen 12VHPWR High Power Connector (H+) zu vereinzelten Schmorbränden geführt hat.[22]
Ebenfalls in PCIe 5.1 CEM definiert wurde ein Anschluss mit nur zwei stromführenden Kontakten plus vier Sense-Pins.[23] Die stromführenden Kontakte sind für 15 A Dauerstrom spezifiziert.
PCI-Express-Karten und PCI-Express-Steckplätze haben zwei Parameter:
Die mechanische Länge des Slots: Entsprechend der Länge des Slots oder Steckplatzes spricht man von PCIe ×1, PCIe ×4, PCIe ×8 oder PCIe ×16. Weiterhin gibt es „offene“ Steckplätze, in die man mechanisch beliebig lange Karten stecken kann. Allerdings funktioniert dort die Kartendetektion durch die #PRSNT-Kontakte nicht mehr.
Die maximal verwendbaren Lanes eines Steckplatzes oder einer PCIe-Karte: Häufig entsprechen sie der mechanischen Länge, können aber auch kleiner, aber niemals größer sein. Häufig anzutreffen sind mechanische ×16-Steckplätze, die elektrisch nur ×4 oder ×8 sind. Insbesondere ist es oft der Fall, dass bei Boards mit mehreren ×16-Steckplätzen diese bei gleichzeitiger Verwendung weniger Lanes bereitstellen (s. u.).
Im Desktopbereich wird meist ×1 als Ersatz für den PCI-Bus und ×16 als Ersatz für den AGP-Steckplatz zur Anbindung vonGrafikkarten (gekennzeichneter „PEG-Slot“) verwendet.
Darüber hinaus gibt es noch die PCIe-Varianten ×4 und ×8. ×4 ist vor allem im Serverbereich für Karten mit hohem Durchsatz (Festplattencontroller, 10GE-Netzwerkkarten) zu finden. DieSlots sind außerdem abwärtskompatibel, das heißt eine ×1-Karte kann zum Beispiel auch in einen ×4-Slot gesteckt werden, von den vier Lanes des Steckplatzes wird dann nur eine Lane genutzt.Einige Motherboards besitzen PCIe-Steckplätze ohne abschließenden Steg („offener“ Steckplatz), so dass „größere“ Karten eingesteckt werden können. Sogar das Aufsägen von geschlossenen Slots ist möglich,[24] birgt aber das Risiko, durch die Säge das Mainboard mechanisch zu zerstören. Zudem dürfen keine Mainboard-Bauteile wieKondensatoren,Stiftleisten,SATA-Anschlüsse oderM.2-Geräte den langen Anschluss an der Karte blockieren.
Möglich ist auch, dass Slots eine von der Bauform abweichende Anbindung der Lanes haben. Dies ist meist der Fall, wenn fürSLI undCrossfire zwei (oder mehr) ×16-Slots vorhanden sind und dieHauptplatine beziehungsweise der darauf verwendeteChipsatz keine 32 Lanes für die Grafikkarten bereitstellt. Dann ist der untere Slot langsamer angebunden (meist ×4, oft auch nur mit der vorherigen Generation) und/oder er teilt sich bei seiner Verwendung die Lanes mit dem Hauptslot, was dann nur noch 8 Lanes auf dem Hauptslot ergibt. Allerdings findet in letzterem Fall diese Verminderung der Übertragungskapazität nicht nur bei zwei Grafikkarten statt, sondern beispielsweise auch bei Verwendung einer ×16-Grafikkarte und einer ×1-Karte in diesen Slots, so dass die Grafikkarte nur mit ×8 läuft und 7 Lanes ungenutzt bleiben. Das genaue Verhalten einer Hauptplatine ist in ihren Spezifikationen und im Handbuch vermerkt. Die Reduktion der Lanes senkt die Leistung allerdings bei weitem nicht um den gleichen Faktor: Ein Test zeigte 2011 durch Abkleben der Kontakte einiger der letzten PCIe-2.0-Karten, dass meist nur geringe Leistungseinbußen festzustellen waren. Bis runter auf PCIe 2.0 ×4 war der Verlust meist allenfalls messbar, während sich PCIe 2.0 ×1 insbesondere dann negativ auswirkte, wenn derSpeicher der Grafikkarte zu klein war.[25] Ähnlich verhält es sich bei der Reduktion der Bandbreite durch Verwendung vorheriger PCIe-Generationen: Nachdem im Januar 2022 Nvidia dieGeForce RTX 3050 mit PCIe 4.0 x8 und AMD dieRadeon RX 6500 XT gar nur mit PCIe 4.0 x4 ausstatteten, führten Computermagazine Tests aus, wie sich diese Karten mit dem zu dem Zeitpunkt bei Mainboards und CPUs weit verbreiteten PCIe 3.0 verhielten. Auch hier waren die Auswirkungen gering und vor allem bei unzureichender Größe des Grafikspeichers relevant.[26]
Der Steckplatz ist mechanisch in zwei Bereiche unterteilt: Im linken Bereich befinden sich immer 22 Steckkontakte, die hauptsächlich für die Stromversorgung und die Verwaltungskommunikation (SMBus,JTAG) verantwortlich sind. Im rechten Bereich befinden sich je nach Anzahl der Verbindungen 14 bis 142 Steckkontakte, die für die eigentliche Nutzdatenübertragung und weitere Signale konzipiert sind.
Der PCIe-Standard verlangt, dass jede Karte eine Verbindung sowohl mit einer Breite von einer Lane als auch mit der elektrisch von der Karte unterstützten Lane-Anzahl herstellen kann. Für Slots gilt das Gleiche. Andere Verbindungsbreiten – der Standard sieht ×1, ×4, ×8 und ×16 vor – sind nicht durch den Standard abgedeckt. Eine Verbindung kommt dann mit der maximalen Breite zustande, die sowohl vom Slot als auch von der Karte unterstützt wird.
Da die elektrische Breite kleiner sein kann als die Bauform und manche Linkbreiten optional sind, ist es nicht offensichtlich, mit welcher Breite eine Karte in einem gegebenen Slot funktionieren wird. Die „PCI Express Label Specification and Usage Guidelines“ von 2006 empfehlen daher, an jedem Slot und auf jeder Karte genau aufzulisten, welche Verbindungsbreiten unterstützt werden. Das wird jedoch nur selten umgesetzt.
Kompatibilität
Karte
Steckplatz
0×1
0×4
0×8
×16
0×1
ok
ok
ok
ok
0×4
~
ok
ok
ok
0×8
~
ok
ok
×16
~
ok
Legende
ok
Kompatibel
~
Teilweise kompatibel: Nur bei Slots, die das physische Einstecken der Karte nicht verhindern („offene Slots“, ohne Mainboardbauteile dahinter), Transferrate ist auf maximale Slot-Transferrate begrenzt. Das wird zum Beispiel bei Slots benutzt, die von der Bauweise einem ×16-Slot gleichen, aber nur 8 Lanes mit elektrischen Verbindungen haben. Dort funktionieren ×16-Karten, allerdings nur mit halber Bandbreite.
PCIe-Steckkarten und -Steckplätze sind generellabwärtskompatibel zu Gegenstücken aller vorherigen Generationen.[28] Die Übertragung findet dabei jeweils auf Basis des schnellsten gemeinsamen Protokolls statt. Das heißt, dass zum Beispiel eine PCIe-1.0-Karte in einem 3.0-Slot nur mit 2,5 GT/s überträgt, eine PCIe-2.0-Karte im selben Slot dagegen mit 5 GT/s.
↑Christof Windeck: Abschied vom PCI Local Bus. In:Heise online.3. Juni 2010. Abgerufen am 27. Februar 2022.; Zitat: „Bei einigen kommenden Chipsätzen der Serie 6 verzichtet Intel auf die Anbindung eines konventionellen PCI-Bus.“.
↑Für je 256 übertragene Bytes (ein FLIT): 8 Byte CRC für eine einfache Fehlererkennung + 6 Byte für eine Fehlerkorrektur im Fehlerfall. Als Fehlerkorrektur wird häufig in Tabellen FLIT angegeben, allerdings ist das der Name eines Paketes (Flow Control Unit) und nicht die Fehlerkorrektur selbst.
↑Benjamin Benz: Steiniger Weg – Wie serielle Interconnects der Physik ein Schnippchen schlagen, c’t 10/2010, S. 188–191.
↑Christof Windeck: FAQ: PCI Express. In:Heise online.14. November 2020. Abgerufen am 27. Februar 2022.; Zitat: „PCI Express for Graphics (PEG) spezifiziert einen PCIe-Steckplatz für Karten mit bis zu 16 PCIe-Lanes, der bis zu 75 Watt Leistung bereitstellt. Andere PCIe-Slots sind für höchstens 25 Watt ausgelegt. Nicht jeder PEG-Slot ist mit den vollen 16 PCIe-Lanes beschaltet.“.
↑Christof Windeck: Was ist PEG? Wie unterscheiden sich PCI Express und PCI Express for Graphics (PEG)? In: c’t magazin. 2009, abgerufen am 12. Oktober 2010 (Aus c’t 1/09).
↑abReale Leistungsaufnahme aktueller Grafikkarten. PCIe-Stromversorgung – 6/8-Pin-Stecker. In: Hard Tecs 4U. 29. Januar 2009, abgerufen am 12. Oktober 2010 (Grafische Darstellung der Pinbelegung).