PCI Express
PCI Express („Peripheral Component Interconnect Express“, abgekürzt PCIe oder PCI-E) ist ein Standard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Hauptprozessors. PCIe ist der Nachfolger von PCI, PCI-X und AGP und bietet im Vergleich zu seinen Vorgängern eine höhere Datenübertragungsrate pro Pin.
Während ihrer Entwicklung wurde die Schnittstelle „3GIO“ genannt, was für „3rd Generation Input/Output“ steht.
Inhaltsverzeichnis
Technik
PCIe 1.0/1.1 | PCIe 2.0/2.1 | PCIe 3.0 | PCIe 4.0 | |
---|---|---|---|---|
Erschienen | 2003 | 2007 | 2012 | ~2016<ref>PCI Express® 4.0 Frequently Asked Questions. PCI-SIG. Feb 2015. Abgerufen am 7. März 2015.</ref> |
Transfers/s (je Lane und Richtung) | 2,5 GT/s | 5,0 GT/s | 8,0 GT/s | 16,0 GT/s<ref>Claire Castellanos Nereus: PCI-SIG Announces PCI Express 4.0 Evolution to 16GT/S, Twice the Throughput of PCI Express 3.0 Technology. PCI-SIG, 29. November 2011, abgerufen am 19. Mai 2013 (english). </ref> |
Kodierung | 8b10b | 8b10b | 128b130b | 128b130b |
Lanes (Breite) | ||||
×1 | 250 MB/s<ref>In diesem Artikel steht "MB" für 1.000.000 Byte.</ref> | 500 MB/s | 985 MB/s | 1969 MB/s |
×2 | 500 MB/s | 1000 MB/s | 1969 MB/s | 3938 MB/s |
×4 | 1000 MB/s | 2000 MB/s | 3938 MB/s | 7877 MB/s |
×8 | 2000 MB/s | 4000 MB/s | 7877 MB/s | 15754 MB/s |
×16 | 4000 MB/s | 8000 MB/s | 15754 MB/s | 31508 MB/s |
(×32) | 8000 MB/s | 16000 MB/s | 31508 MB/s | 63015 MB/s |
PCIe ist im Vergleich zum parallelen PCI-Bus kein geteiltes (shared) Bus-System, sondern eine separate serielle Punkt-zu-Punkt-Verbindung. Einzelne Komponenten werden über Switches verbunden. Diese ermöglichen es, direkte Verbindungen zwischen einzelnen PCIe-Geräten herzustellen, so dass die Kommunikation einzelner Geräte untereinander die erreichbare Datenrate anderer Geräte nicht beeinflusst.
Bei PCIe gibt es kein eigenes Taktsignal, lediglich ein viel niedrigerer Referenztakt wird separat übertragen. Die Taktrückgewinnung erfolgt aus dem Empfangssignal. Dieses ist speziell dafür kodiert (bis PCIe 2.1 nach dem 8b/10b ab PCIe 3.0 eine „Scrambling“-Kodierung, welche zwei Synchronisations-Bits jeweils 128 Netto-Datenbits voranstellt).<ref name="Steiniger Weg">Benjamin Benz: Steiniger Weg – Wie serielle Interconnects der Physik ein Schnippchen schlagen, c't 10/2010, S.188–191</ref>
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 anderen physischen Aufbaus ist PCIe softwareseitig voll kompatibel zu PCI, so dass weder Betriebssysteme und Treiber noch Anwendungsprogramme angepasst werden müssen.
PCIe ist vollduplexfähig und arbeitet je nach Version mit 250, 500 oder 984,615 MB/s pro Lane und Richtung. Version 4.0 soll 2000 MB/s ermöglichen.
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 prinzipiell Hot-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.
Übertragungsschichten
Die Übertragung wird durch mehrere Schichten 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 so genannte Physical 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. Die logische Verbindung („Link“) zwischen diesen Geräten besteht aus einer oder mehreren Lanes. Jede Lane wiederum besteht aus zwei Leitungspaaren, je ein differentielles Paar für das Senden und Empfangen.
Sämtliche Daten, die zwischen PCIe-Geräten übertragen werden, werden gemischt über diese Leitungen übertragen, im Gegensatz zu PCI gibt es also keine eigenen Leitungen mehr für die Signalisierung von Interrupts. Da das serielle Protokoll jedoch nicht angehalten werden kann, ergibt sich eine etwas höhere und auch schwankende Interruptlatenz als bei klassischem PCI mit dedizierten Interruptleitungen.
Der Data Link Layer überträgt die Datenpakete des Transaction Layers zwischen den beiden Verbindungspartnern. Dazu versieht er diese mit einer Sequenznummer, sowie einem 32-Bit-CRC-Wert, dem so genannten Link 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.
Der Transaction Layer transportiert letztlich die Nutzdaten zwischen dem logischen Sender und Empfänger, das heißt ohne Berücksichtigung der dazwischenliegenden Switches. Die Transaction 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 so genannte posted transactions, das heißt, sie werden gesendet und erzeugen auf dem Transaction Layer keinerlei Antwort.
Quality of Service
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 diese Echtzeitanwendung würde man den Datenverkehr priorisieren.
Stromversorgung
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 bei PCI maximal 25 Watt, für Low-Profile-Karten höchstens 10 Watt und bei einem PEG-(PCIe-×16)-Steckplatz maximal 75 Watt.<ref name="Hotline Was ist PEG">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). </ref> Da das für manche Einsatzzwecke wie Grafikkarten jedoch 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 sechs Pins<ref name="PCI Express Power (6 pin)">PCI Express Power (6 pin). In: hardwarebook.info. 2007, abgerufen am 12. Oktober 2010 (english). </ref><ref name="ht4u-pinbelegung">Reale 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). </ref> und kann bis zu 75 Watt liefern, wodurch die dem Gerät maximal bereitgestellte Leistung auf 150 Watt steigt, bei Nutzung zweier solche 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 jedoch nur weitere 75 Watt führt, wodurch die maximale Aufnahmeleistung einer PCI-Express-Karte auf 300 Watt begrenzt ist (75 Watt vom Steckplatz, 150 Watt erster Stecker, 75 Watt zweiter Stecker).<ref name="The Quick PCI-Express 2.0 Guide">The Quick PCI-Express 2.0 Guide. In: 10stripe.com. Abgerufen am 12. Oktober 2010 (english). </ref><ref name="ht4u-pinbelegung" /> Neue leistungsfähigere Grafikkarten, die seit Anfang 2011 auf dem Markt sind, sehen die Verwendung von zwei 8-Pin-Steckern vor. Somit steigert sich die maximale Leistungsaufnahme auf 375 Watt. (75 Watt vom Steckplatz, 150 Watt erster Stecker, 150 Watt zweiter Stecker). Diese letzte Erweiterung ist noch nicht offiziell, wird aber bereits in entsprechenden Produkten eingesetzt.<ref name="PCI Express Power 2*8 Pin NVidia">Produktindex NVidia Technische Daten Geforce GTX 590. 2011, abgerufen am 8. Mai 2011 (deutsch). </ref><ref name="PCI Express Power 2*8 Pin AMD">Systemvoraussetzungen AMD Radeon 6990 Grafikkarte. 2011, abgerufen am 8. Mai 2011 (deutsch). </ref>
6-pin Anschluss 75 W<ref>PCI Express x16 Graphics 150W-ATX Specification Revision 1.0</ref> | 8-pin Anschluss 150 W<ref>PCI Express 225 W/300 W High Power Card Electromechanical Specification Revision 1.0</ref><ref>PCI Express Card Electromechanical Specification Revision 3.0</ref><ref>Yun Ling: PCIe Electromechanical Updates. 16. Mai 2008.</ref> | |||
Pin | Beschreibung | Pin | Beschreibung | |
---|---|---|---|---|
1 | +12 V | 1 | +12 V | |
2 | nicht angeschlossen (üblicherweise +12 V) | 2 | +12 V | |
3 | +12 V | 3 | +12 V | |
4 | Sense1 (8-pin gesteckt) | |||
4 | Masse | 5 | Masse | |
5 | Sense | 6 | Sense0 (6-pin oder 8-pin gesteckt) | |
6 | Masse | 7 | Masse | |
8 | Masse |
- Wenn ein 6-pin Stecker in eine 8-pin Buchse gesteckt wird, merkt die Karte am fehlenden Sense1, dass sie nur 75 W verwenden darf.
Slot-Varianten
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 von 25 mm, 39 mm, 56 mm oder 89 mm spricht man von PCIe-×1, PCIe-×4, PCIe-×8 oder PCIe-×16. Weiterhin gibt es „offene“ Steckplätze, in die man mechanisch beliebige Karten stecken kann.
- Die maximal verwendbaren Lanes eines Steckplatzes oder einer PCI-Karte: Häufig entsprechen sie der mechanischen Länge, können aber auch geringer sein, aber niemals größer. Häufig anzutreffen sind mechanische PCIe-×16-Steckplätze, die elektrisch nur PCIe-×4 oder PCIe-×8 sind. Insbesondere ist es oft der Fall, dass bei Boards mit mehreren PCIe-×16-Steckplätzen diese bei gleichzeitiger Verwendung weniger Lanes bereitstellen (s.u.).
Im Desktopbereich wird meist PCIe-×1 als Ersatz für den PCI-Bus und PCIe-×16 als Ersatz für den AGP-Steckplatz zur Anbindung von Grafikkarten verwendet. PCIe-×4 sind vor allem im Serverbereich für Karten mit hohem Durchsatz (Festplattencontroller, 10GE-Netzwerkkarten) zu finden.
Im Server- und Workstationbereich gibt es darüber hinaus noch die PCIe-Varianten ×8 und ×32. Die Slots 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.
Möglich ist auch, dass Slots eine von der Bauform abweichende Anbindung der Lanes haben. Oft zu finden ist das etwa bei SLI und Crossfire. Denn obwohl die Slots für die Grafikkarten die Größe von ×16-Slots haben, werden beim Einsatz von zwei Grafikkarten die 16 Lanes auf beide Slots verteilt, falls die Hauptplatine beziehungsweise der darauf verbaute Chipsatz keine 32 Lanes für beide Grafikkarten bereitstellt, was dann nur noch 8 Lanes pro Karte ergibt. Allerdings findet diese Verminderung der Übertragungskapazität nicht nur bei zwei Grafikkarten statt, sondern beispielsweise auch bei Verwendung einer ×16-Grafikkarte und einer ×1-Karte, so dass die Grafikkarte nur mit PCIe-×8 läuft.
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 sowie deren Takt konzipiert sind.
Lanes | Anzahl Steckkontakte | Mechanische Länge | ||||
---|---|---|---|---|---|---|
rechts | links | gesamt | rechts | links | gesamt | |
×1 | 14 | 22 | 36 | 7,65 mm | 11,65 mm | 25 mm |
×4 | 42 | 64 | 21,65 mm | 39 mm | ||
×8 | 76 | 98 | 38,65 mm | 56 mm | ||
×16 | 142 | 164 | 71,65 mm | 89 mm |
Aktuelle Hauptplatinen mit PCI Express unterstützen bis zu 68 Lanes – in der Regel aufgeteilt auf einen bis sechs ×16-Slots für die Grafikkarte(n) (von denen teilweise manche elektrisch mit weniger Lanes betrieben werden, s. o.) oder auch einen ×16- und einen ×4-Slot, dazu mehrere ×1-Slots und zur internen Anbindung anderer auf dem Mainboard verbauter Geräte (z. B. Gigabit-Netzwerkchips, damit diese nicht über den viel langsameren PCI-Bus angebunden werden müssen).
Darüber hinaus gibt es bei Notebooks miniaturisierte Varianten von PCIe, unter anderem ExpressCard, Mini PCI Express und M.e2 für Erweiterungen wie WLAN und SSD oder als Mobile PCI Express Module für Grafikkarten. In Servern werden SSDs auch direkt über PCI-Express angesprochen, siehe NVMe.
Pinbelegung
Oben = Bestückungsseite, Unten = Lötseite <ref>What is the A side, B side configuration of PCI cards. In: Frequently Asked Questions. Adex Electronics. 1998. Abgerufen am 2011 Oct 24.</ref>
Pin | oben | unten | Bezeichnung |
---|---|---|---|
1 | +12V | PRSNT1# | Präsenz – Wird auf der Karte nur mit dem hintersten PRSNT2#-Pin verbunden, alle anderen PRSNT2#-Pins sind auf der Karte mit nichts verbunden. |
2 | +12V | +12V | |
3 | Reserviert | +12V | |
4 | Masse | Masse | |
5 | SMCLK | TCK | SMBus- und JTAG-Anschlüsse |
6 | SMDAT | TDI | |
7 | Masse | TDO | |
8 | +3.3V | TMS | |
9 | TRST# | +3.3V | |
10 | +3.3Vaux | +3.3V | Standby-Betriebsspannung |
11 | WAKE# | Power-GD | Reaktivierung, Spannung aufgebaut. |
Kodierlücke (Steg im Schacht) | |||
12 | Reserviert | Masse | |
13 | Masse | REFCLK+ | Taktreferenz Differenzpaar |
14 | HSOp(0) | REFCLK- | Leitungspaar 0 Datensender, + und − |
15 | HSOn(0) | Masse | |
16 | Masse | HSIp(0) | Leitungspaar 0 Datenempfang, + und − |
17 | PRSNT2# | HSIn(0) | |
18 | Masse | Masse | |
Ende ×1 Schachtes. ×4, ×8 und ×16 Schächte werden hier fortgesetzt: | |||
19 | HSOp(1) | Reserviert | Leitungspaar 1 Datensender, + und − |
20 | HSOn(1) | Masse | |
21 | Masse | HSIp(1) | Leitungspaar 1 Datenempfang, + und − |
22 | Masse | HSIn(1) | |
23 | HSOp(2) | Masse | Leitungspaar 2 Datensender, + und − |
24 | HSOn(2) | Masse | |
25 | Masse | HSIp(2) | Leitungspaar 2 Datenempfang, + und − |
26 | Masse | HSIn(2) | |
27 | HSOp(3) | Masse | Leitungspaar 3 Datensender, + und − |
28 | HSOn(3) | Masse | |
29 | Masse | HSIp(3) | Leitungspaar 3 Datenempfang, + und − |
30 | Reserviert | HSIn(3) | |
31 | PRSNT2# | Masse | |
32 | Masse | Reserviert |
Masse | 0 V, Referenz |
---|---|
Versorgung | Versorgungsspannung zur PCIe-Karte |
Ausgang | Signal von der Karte zur Hauptplatine |
Eingang | Signal von der Hauptplatine zur Karte |
open drain | Darf von mehreren Karten nach Masse geschaltet und/oder gelesen werden |
Sensoranschluss | Wird durch die Karte auf Masse verbunden, um „Anwesenheit“ zu signalisieren |
Reserviert | Noch nicht in Benutzung |
Kompatibilität von Steckplätzen und Karten
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 Laneanzahl herstellen kann. Für Slots gilt das Gleiche. Andere Verbindungsbreiten – der Standard sieht ×1, ×2, ×4, ×8, ×12, ×16 und ×32 vor – sind optional. 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.
Karte | Steckplatz | |||
---|---|---|---|---|
PCIe ×1 | PCIe ×4 | PCIe ×8 | PCIe ×16 | |
×1 | ok | ok | ok | ok |
×4 | ~ | ok | ? | ? |
×8 | ~ | ok | ok | |
×16 | ~ | ok |
ok | Kompatibel |
~ | Teilweise kompatibel: Nur bei Slots, die das physikalische 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. |
? | Verbindung mit ×1 garantiert. Optional sind Verbindungen bis zur elektrischen Lane-Anzahl von Karte und Slot möglich. Manche Chipsätze sind in diesem Punkt allerdings nicht normkonform und unterstützen auf den ×16-Steckplätzen ausschließlich ×16-Karten. |
Kompatibilität von Steckplätzen und Karten-PCIe-Versionen
Steckkarten sind generell kompatibel zu PCIe-Steckplätzen, unabhängig von der Generation.<ref>PCI Express® 4.0 Frequently Asked Questions, Februar 2015</ref> Die Übertragung findet dabei jeweils auf Basis des langsameren 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.
Literatur
- Ravi Budruk u. a.: PCI Express System Architecture. Addison-Wesley, Boston 2004, ISBN 0-321-15630-7
- * Franz-Josef Lintermann, Udo Schaefer, Walter Schulte-Göcking, Klaas Gettner: Einfache IT-Systeme. Lehr-/Fachbuch. 5, 1. korrigierter Nachdruck Auflage. Bildungsverlag EINS, 2008, ISBN 978-3-8237-1140-7 (Seite 64-66).
Weblinks
- Test: PCI-Express auf hardware-infos.com
- PCI-Express-Spezifikation auf pcisig.com (englisch)
- PCI Express: Kurz erklärt auf tweakpc.de
- PCI Express: Grundlagen auf computerbase.de
- PCIe – PCI Express auf Elektronikkompendium
- [1] Entwicklungslinie PCIe 4.0
Einzelnachweise
<references />