Mobile-Menu

Definition Was ist der PCI Express (PCIe)?

Autor / Redakteur: Hermann Strass und Walter Schadhauser / Rainer Graefen

Performance heißt die große Drangsal unser Zeit. „Geht das nicht schneller?“, ist die dazu passende Frage. Schneller ginge die Datenübertragung nur mit „Lightspeed“. Doch ganz so weit ist die Rechnertechnik noch nicht. So bleibt vorerst nur eine der letzten Vorstufen von Lichtgeschwindigkeit: Für den x86-Rechner ist das der PCIe-„Bus“.

Anbieter zum Thema

Die Historie und Leistungsfähigkeit der PCIe-„Busses“.
Die Historie und Leistungsfähigkeit der PCIe-„Busses“.
(Bild: Wikipedia / CC0 )

Den PCIe-„Bus“ gibt es inzwischen in der vierten Generation: PCI Express 4.0. Jede Generation hat die Taktgeschwindigkeit der Datenübertragung verdoppelt, bei der fünften Generation wird das im vorgegebenen Entwicklungszeitraum anscheinend nicht gelingen.

Da die Daten beim seriellen Datentransfer in einem Blockmodus übertragen werden, spricht man statt von Gigabit pro Sekunde von Gigatransfers pro Sekunde (GT/s). Beide Einheiten entsprechen sich zur Zeit noch. In PCIe Generation vier liegt die Datenrate bei 16 GT/s, in der Generation eins waren es nur 2 GT/s.

Das hört sich nicht beeindruckend an, die Datenrate bezieht sich jedoch nur auf ein Transmit/Receive-Kabelpärchen, das in der Fachsprache Lane (Spur) genannt wird. Im Vollausbau des PCI-„Busses“ sind 32 Lanes möglich, so dass bei PCIe Gen4 x32 maximal 64 Gigabyte pro Sekunde übertragen werden können.

Zur Technik von PCI und PCIe

Streng genommen ist PCI Express (PCIe), ähnlich wie andere serielle Übertragungsverfahren (Ethernet, Infiniband, Fibre Channel), kein Bus, sondern eine Punkt-zu-Punkt- oder Direktverbindung.

PCIe überträgt ein Äquivalent der parallelen PCI-Signale nacheinander über eine serielle Leitung. An beiden Enden der Übertragungsstrecke wird also von parallel nach seriell oder entsprechend in Gegenrichtung umgewandelt.

Für einen einfachen PCI-Bus müssen also 32 Signale nacheinander über eine einzige Leitung gesendet werden. Diese serielle Verbindung muss mindestens 32-mal so schnell getaktet werden wie der parallele Bus, um die gleiche Datenmenge zu übertragen. In der Praxis muss allerdings noch deutlich höher getaktet werden.

Neben den reinen Daten-/Adresssignalen müssen noch weitere Begleitsignale (Sideband Signals, Interrupts und so weiter) übertragen werden. Aus physikalischen Gründen muss jedes parallele Byte (acht Bit) auf der Übertragungsstrecke als ein Byte mit zehn Bit seriell übertragen werden.

Der 8B/10B-Code von IBM wird schon seit vielen Jahren für den Fibre Channel und auch bei Gigabit-Ethernet genutzt. Es muss also mindestens mit dem Faktor zehn umgerechnet werden. Daher entspricht eine einzige PCI-Lane (Kanal) mit 2,5 Gigabit Übertragungsrate einem Parallelbus mit 250 Megabyte Übertragungsrate. Seit PCIe Gen3 wird mit dem 128B/130B-Codierverfahren gearbeitet, das eine bessere Effizienz aufweist.

Das wäre etwa einem Parallel-PCI mit 64 Bit Busbreite und 33 MHz Taktrate oder 32 Bit mit 66 Megahertz Taktrate vergleichbar. PCIe wird oft gebündelt, wobei auf zwei bis 32 Lanes (also x2 bis x32) parallel übertragen wird. Für Grafikkarten wird meist der x16-Betrieb (4 Gigabyte pro Sekunde) genutzt. Das ist nun kein echter Parallelbetrieb, denn alle Lanes sind unabhängig und eigengetaktet.

Voll- und halb-duplex

Ein wesentlicher Unterschied zum Parallel-PCI-Bus: Die heute üblichen seriellen Übertragungstechniken sind voll-duplex. Es kann also mit den angegebenen Datenraten gleichzeitig gesendet und empfangen werden. Parallelsysteme sind hingegen nur halb-duplex. Die Datenrate gilt also nur in eine Richtung oder als Summe für eine Mischung aus Senden und Empfang.

Außerdem ist der parallele Bus nur einmal im System vorhanden. Alle Busteilnehmer (Steckkarten) teilen sich die verfügbare Datenrate. Bei PCIe steht jeder Kanal (Lane) oder jedes Kanalbündel (zum Beispiel x4 oder x16) jeweils einem einzigen Gerät zur Verfügung, also immer die gesamte Übertragungsrate.

Besonders wichtig ist die Tatsache, dass es für die Software keinen Unterschied zwischen Parallel-PCI und PCIe gibt. Natürlich ist die Übertragungsrate mit PCIe üblicherweise höher. Praktisch alle PC-Systeme stellen PCI- und PCIe-Steckplätze in unterschiedlicher Anzahl zur Verfügung. So können preisgünstige PCI-Steckkarten weiterhin dort genutzt werden, wo die hohen Übertragungsraten nicht zur Verfügung stehen oder nicht benötigt werden.

Leistung der Mikroprozessoren

Die mit PCIe möglichen hohen Übertragungsraten bei der Parallel-Bündelung von Kanälen ist eine Herausforderung für die heute üblichen Mikroprozessorchips. Bei einer Taktrate von drei Gigahertz und 32 Bit Busbreite im Prozessorchip können gerade mal 96 Gigabit pro Sekunde (9,6 Gigabyte pro Sekunde) bereitgestellt werden. Im realen Betrieb wird also die Datenverarbeitung nicht mit der Datenübertragung Schritt halten. Daher werden für gewöhnlich Puffer gefüllt, die dann als Block übertragen werden.

Durch den Übergang vom Parallel- zum Seriellbetrieb wird die gesamte elektrische Leistung bei der Datenübertragung stark reduziert. Im Parallelbetrieb müssen 32 oder 64 Treiberschaltungen gleichzeitig mit einem Spannungshub von etwa zwei Volt (bei 3,3 Volt oder fünf Volt Versorgungsspannung) „getrieben“ werden.

Beim seriellen Betrieb wird nur ein Treiberpaar je Lane benötigt. Allerdings muss das mit einem Mehrfachen der Taktrate bei einem Paralleltreiber „getrieben“ werden. Jedoch beträgt der Spannungshub hier nur noch etwas mehr als 0,8 Volt. Die Anzahl der Signalleitungen ist bei PCIe ebenfalls deutlich geringer (36), gegenüber mehr als 100 Signalleitungen bei einem 32-Bit-PCI-System.

Kleine Historie der PC-Bussysteme

Am Anfang der PC-Geschichte war die XT-Bus-Architekutur, die den Einsatz von Steckkarten mit 8-Bit-Adressierung erlaubt. Dann kam der ISA-Bus, der Industry Standard Architecture Bus, der mit einem 16-Bit-Adressbus aufwändigere Steckkarten unterstützte, häufig kombiniert mit dem 32-Bit-EISA-Bus (Extended Industry Standard Architecture) und diversen Grafikbusschnittstellen wie dem VLB-Bus (Vesa Local Bus) oder AGP, dem Accelerated Graphics Port.

IBM selbst setzt noch auf den Microchannel, während die IBM-kompatiblen Systeme auf PCI und PCI-X „updateten“ (Peripheral Component Interconnect Extended). Der Betrieb des PCI-Busses war mit 64 Bit Busbreite und 66 Megahertz Taktrate spezifiziert, der für den PCI-X erreichte 133 bis theoretisch 512 Megahertz. Problematisch wurde dann ein physikalisches Problem: der Jitter, der eine maximale Taktabweichung von 1 bis zwei 2 Nanosekunden einhalten sollte.

Das erwies sich als kritische Technik, so dass sich die generelle Umstellung aller Schnittstellen auf serielle Datentransporte als funktioneller erwies. So wurde aus der Festplattenschnittstelle ATA die SATA-Verbindung, aus SCSI wurde SAS (Serial-Attached SCSI), und auch der interne Bus für Steckkarten mutierte von PCI auf PCIe.

(ID:44814148)