PCIe - PCI Express
PCI Express (PCIe) ist eine schnelle interne Schnittstelle für Erweiterungskarten in Computer-Systemen. Mit der Einführung von PCIe im Jahr 2004 wurde dem AGP als Grafikkarten-Schnittstelle ein Ende gesetzt und auch der PCI als internes Computer-Bussystem abgelöst.
Neben dem Einsatz in Desktop-Computern gibt es mit dem PCI Express Advanced Switching eine Variante, die in modularen Servern als Backplane zum Einsatz kommt. PCI Express eignet sich grundsätzlich zum Verbinden mehrerer Server und Baugruppen zu einem Computersystem oder Telekommunikations-Server. Diese Technik eignet sich für zeitkritische Anwendungen, wie Bild- und Tonwiedergabe. Funktionen zur Reservierung von Mindestbandbreiten stehen ebenfalls zur Verfügung.
PCI Express ist für Kupferleitungen und optische Verbindungen vorgesehen. Die PCI-Express-Spezifikation beschreibt das Software-Protokoll, elektrische und mechanische Eigenschaften der Steckverbinder und Erweiterungskarten. Davon ist einiges von den seriellen Verbindungssystemen, wie USB und FireWire, bekannt. Zum Beispiel das Ein- und Ausstecken im laufenden Betrieb (Hot-Plug) und das Bündeln mehrerer Leitungen zur Steigerung der Übertragungsrate.
PCI Express wird in Zukunft noch mehr an Bedeutung gewinnen. Die Halbleiterschaltungen von PCI Express werden in abgewandelter Form auch für DisplayPort, SATA und SAS verwendet. So wird SATA in Zukunft von einer SSD-Schnittstelle mit dem Namen SATA Express abgelöst, die in erheblichen Maße von PCI Express beeinflusst ist.
Steckplatz / Schnittstelle
Nahaufnahme eines 1x PCIe Steckplatzes |
Motherboard mit zwei langen 16x-PCIe-Steckplätzen und drei kurzen 1x-PCIe-Steckplätzen |
---|
Architektur bzw. Topologie von PCIe
Klassisches Bridge-Modell (Bus-Topologie) |
Modernes Switch-Modell (Stern-Topologie) |
---|
Im Gegensatz zu PCI, mit der Busstruktur, bei der sich alle angeschlossenen Komponenten die verfügbare Bandbreite teilen müssen, werden bei PCI Express serielle Verbindungen zu einem Switch geschaltet, der sich im Chipsatz befindet. Der Switch verbindet eine PCIe-Baugruppe direkt mit dem Arbeitsspeicher oder anderen Baugruppen mit der vollen Bandbreite und Geschwindigkeit.
Auf der logischen Ebene ist PCIe voll kompatibel zum alten PCI. Das Betriebssystem merkt keinen Unterschied. Auch im Windows-Gerätemanager ist von PCIe nicht viel zu erkennen.
Statt paralleler Bussysteme werden also serielle Punkt-zu-Punkt-Verbindungen verwendet. Schon bei Ethernet wurde die alte Bus-Topologie durch eine Stern-Topologie ersetzt. Eine zentrale Schaltstelle (Switch) verbindet jeweils zwei Geräte direkt miteinander.
Die Gründe für den Umstieg von der bewährten Busstruktur zu seriellen Punkt-zu-Punkt-Verbindungen liegt in der riesigen Anzahl von Adress- und Signalleitungen. Die steigende Anzahl an Signalleitungen auf dem Motherboard benötigt sehr viel Platz, verbunden mit einem hohen Stromverbrauch. Auch die Übertragungsgeschwindigkeit lässt sich nicht beliebig steigern, weil sich die parallel liegenden Leitungen gegenseitig beeinflussen (Übersprechen).
Übertragungstechnik
Die Übertragungstechnik von PCI Express beruht auf jeweils zwei differenziellen Leitungspaaren (4 Adern), die als Link oder Lane bezeichnet werden. Das eine Leitungspaar für den Datenversand, das andere für den Datenempfang. Zur Steigerung der Geschwindigkeit darf ein Gerät mehrere Links benutzen. Insgesamt lassen sich bis zu 32 Links bündeln. In der Praxis sieht es jedoch so aus, dass einfache Erweiterungskarten nur einen Link haben. Ausnahmen bilden Grafikkarten-Slots, die als PEG (PCI Express for Graphics) bezeichnet werden. Ihnen stehen 16 Links zur Verfügung.
Die Parallelisierung der Daten erfolgt jedoch nicht auf der elektrischen, sondern auf einer höheren Protokollebene. Hier werden auch Laufzeitunterschiede, Leitungsstörungen und Ausfälle kompensiert.
Die Aufteilung der Links des Controllers auf die Hardware-Slots und Onboard-Komponenten werden beim Design des Mainboards festgelegt. Man unterscheidet zwischen x1-, x4-, x8- und x16-Slots. Um die Karten leichter unterscheiden zu können gibt es unterschiedlich lange Steckplätze. Die für einen Link (x1) sind kurz und die für 16 Links (x16) sind deutlich länger. Steckplätze für x4 und x8 gibt es nicht.
Übertragungsgeschwindigkeit
Die Übertragungsgeschwindigkeit bei PCIe "orientiert" sich an der Version und der Anzahl der Links bzw. Lanes. Je höher die Version und je mehr Links, desto höher die Bandbreite und desto höher ist die Übertragungsgeschwindigkeit.
Die Bandbreite gibt dabei an, wie viel Kapazität für die Datenübertragung theoretisch bzw. maximal zur Verfügung steht. Die tatsächliche Datenrate liegt jedoch darunter.
PCIe-Version | Links/Lanes (je Richtung) |
Bandbreite (je Richtung) |
Netto-Bandbreite (je Richtung) |
Taktrate | Bemerkung | |
---|---|---|---|---|---|---|
PCI Express 1.x | x1 | 2,5 GBit/s | 2,5 GT/s | 0,25 GByte/s | 1,25 GHz | Slots für Peripherie |
x4 | 10 GBit/s | 10 GT/s | 1 GByte/s | 1,25 GHz | kein Steckplatz | |
x8 | 20 GBit/s | 20 GT/s | 2 GByte/s | 1,25 GHz | kein Steckplatz | |
x16 | 40 GBit/s | 40 GT/s | 4 GByte/s | 1,25 GHz | PEG - PCI Express for Graphics | |
x32 | 80 GBit/s | 80 GT/s | 8 GByte/s | 1,25 GHz | kein Steckplatz | |
PCI Express 2.x | x1 | 5 GBit/s | 5 GT/s | 0,5 GByte/s | 2,5 GHz | Slots für Peripherie |
x4 | 20 GBit/s | 20 GT/s | 2 GByte/s | 2,5 GHz | kein Steckplatz | |
x8 | 40 GBit/s | 40 GT/s | 4 GByte/s | 2,5 GHz | kein Steckplatz | |
x16 | 80 GBit/s | 80 GT/s | 8 GByte/s | 2,5 GHz | PEG - PCI Express for Graphics | |
x32 | 160 GBit/s | 160 GT/s | 16 GByte/s | 2,5 GHz | kein Steckplatz | |
PCI Express 3.0 | x1 | 10 GBit/s | 8 GT/s | 0,985 GByte/s | 4,0 GHz | Slots für Peripherie |
x4 | 40 GBit/s | 32 GT/s | 3,94 GByte/s | 4,0 GHz | kein Steckplatz | |
x8 | 80 GBit/s | 64 GT/s | 7,88 GByte/s | 4,0 GHz | kein Steckplatz | |
x16 | 160 GBit/s | 128 GT/s | 15,75 GByte/s | 4,0 GHz | PEG - PCI Express for Graphics | |
x32 | 320 GBit/s | 256 GT/s | 31,51 GByte/s | 4,0 GHz | kein Steckplatz | |
PCI Express 4.0 | x1 | 20 GBit/s | 16 GT/s | 1,969 GByte/s | ||
x4 | 80 GBit/s | 64 GT/s | 7,88 GByte/s | |||
x8 | 160 GBit/s | 128 GT/s | 15,75 Gyte/s | |||
x16 | 320 GBit/s | 256 GT/s | 31,51 GByte/s |
Geht man bei PCIe 2.0 von einer Bandbreite von 5 GBit/s pro Link aus, dann reduziert sich die Bandbreite durch die 8B/10B-Kodierung (10 Bit pro Byte) auf 4 GBit/s. Das entspricht einer Netto-Bandbreite von 500 MByte/s pro Richtung. Die tatsächliche Datenrate ist dann noch einmal geringer. Denn neben der reinen Datenübertragung ist noch ein Übertragungsprotokoll mit Befehlen, Adressierung und Bestätigungen aktiv, dass einen Teil der Bandbreite benutzt, weshalb die tatsächlich Datenrate noch einmal unter der Netto-Bandbreite liegt.
Kompatibilität von PCI-Express-Grafikkarten
PCIe ist vollständig auf- und abwärtskompatibel. Das bedeutet, alte Karten passen in neue Motherboards und umgekehrt. Eine x1-Karte funktioniert auch in einem x16-Slot und umgekehrt. Vorausgesetzt es passt mechanisch.
Um die Kompatibilität zu gewährleisten handelt der PCIe-Host-Controller bei der Initialisierung der Erweiterungskarten die Anzahl der Lanes und deren Übertragungsrate aus.
Karte/Steckplatz | PCIe x1 | PCIe x4 | PCIe x8 | PCIe x16 |
---|---|---|---|---|
PCI Express x1 | Ok | Ok | Ok | Ok |
PCI Express x4 | - | Ok | ? | ? |
PCI Express x8 | - | - | Ok | ? |
PCI Express x16 | - | - | - | Ok |
Ok = kompatibel / - = nicht kompatibel / ? = nicht vorgeschrieben aber möglich
PCI Express 1.0/1.1
Zwischen PCIe-1.0 und PCIe-1.1 besteht praktisch kein Unterschied. Die Taktfrequenz ist auf 1,25 GHz pro Link bzw. 2,5 GBit/s festgelegt, was einer Nettobandbreite von 250 MByte/s entspricht.
PCI Express 2.0/2.1
Die Taktfrequenz wurde auf 2,5 GHz pro Link erhöht. Somit steht pro Link eine Bandbreite von 5 GBit/s zur Verfügung. Im Optimalfall erreicht man eine Nettotransferrate von 500 MByte/s.
PCIe 2.0 ist zu PCIe 1.0/1.1 abwärtskompatibel. Doch Vorsicht, zwar sollten PCIe-1.1-Karten in PCIe-2.0-Slots funktionieren. Wenn es doch zu Problemen kommt hilft eventuell ein BIOS-Update. In der Spezifikation von PCIe 2.0 gibt es eine Besonderheit. Dort ist vorgeschrieben, dass PCIe-2.0-Karten auch in PCIe-1.1-Slots funktionieren müssen. Einen baulichen Unterschied gibt es nicht.
Der wesentliche Unterschied zwischen PCIe 2.0 und der älteren Version liegt in der maximal möglichen Übertragungsrate. PCIe 1.1 arbeitet mit 2,5 GBit/s pro Link. PCIe 2.0 unterstützt das auch und erreicht optional eine maximal mögliche Übertragungsrate von 5 GBit/s pro Link, was einer Nettobandbreite von 500 MByte/s entspricht.
PCI Express 3.0/3.1
Die Taktfrequenz wurde auf 4 GHz angehoben. Dank der Verringerung des Overheads bei der Datenübertragung und durch einen effizienteren Leitungscode konnte trotzdem die doppelte Transferrate im Vergleich zu PCI-Express 2.0 erreicht werden. Das bedeutet, jeder PCIe-Link hat eine Bandbreite von 8 GT/s (Gigatransfers pro Sekunde) bzw. 10 GBit/s und überträgt 1 GByte/s.
Es gibt nicht viele Anwendungen, die PCIe 3.0 ausreizen. Außer für Grafikkarten ist PCIe 3.0 nur für wenige Erweiterungskarten sinnvoll. Am ehesten noch für 40-Gigabit-Ethernet-Karten oder Hostadapter für Server-Massenspeicher. Grafikkarten können mit PCIe 3.0 über 16 Lanes mit bis zu 32 GByte/s (2 x 16 GByte/s) mit dem Chipsatz oder Prozessor kommunizieren.
Allerdings kann die Geschwindigkeit von PCIe 2.0 schon knapp werden, wenn der PCIe das zentrale Bussystem zwischen Prozessor und Chipsatz ist. Wenn die Verbindung zwischen CPU und Chipsatz nur 2 GByte/s in beide Richtungen unterstützt (PCIe-2.0-x4), gibt es PCIe 3.0 nur für externe Grafikkarten, die dann aber direkt am Hauptprozessor angeschlossen sind. In hochintegrierten Prozessoren von Intel und AMD endet bzw. beginnt der PCIe Root Complex bereits im Prozessor. Für die Zukunft kommt man dabei nicht um PCIe 3.0 herum. Darüber hinaus wird der PCIe SATA als Massenspeicher-Schnittstelle abzulösen. Das PCIe-Lane-Konzept ist SATA deutlich überlegen. Die PCIe-Lanes lassen sich leichter skalieren.
Als Alternative zu Thunderbolt sind externe Kabelverbindungen mit vier PCIe-3.0-Lanes (32 GBit/s) geplant. Diese externe PCIe-Schnittstelle ist vor allem für Notebooks und All-in-One-PCs interessant. Diese Computer kann man selten mit einfachen Mitteln aufrüsten. Hier ist man auf externe Schnittstellen angewiesen.
Als Alternative ist die Vernetzung von Servern mit PCIe vorstellbar.
PCI Express 4.0
Die PCI Special Interest Group (PCI SIG) will bis 2015 mit der Spezifikation von PCIe 4.0 fertig sein. Im Vergleich zu PCIe 3.0 soll PCIe 4.0 die Datentransferrate abermals verdoppeln. Pro Lane sollen 16 GT/s möglich werden. Die maximale Nettodatenrate soll auf 2 GByte/s anwachsen.
PCIe 4.0 x16 schafft dann bis zu 32 GByte/s. Dafür muss sich auch bei den Speicher-Schnittstellen etwas tun. So müssen bei PCIe 4.0 x16 schon zwei Speicherkanäle mit DDR4-2133-Chips (PC4-17066) zum Einsatz kommen.
Um eine Verdoppelung der Transferrate zu ermöglichen wird die maximale Leitungslänge von 20 auf 8 bis 12 Zoll (20 bis 30 cm) schrumpfen. Auch neue Materialien für Leiterbahnen und Kontakte sind angedacht, um die Signalqualität zu erhalten.
Wie zu erwarten soll PCIe 4.0 auch weiterhin zu älteren PCIe-Karten abwärtskompatibel sein.
Übersicht: PCI Express
Version | Takt | Bandbreite pro Link | Nettotransferrate pro Link/Lane | Kodierung/Balast | Verfügbar seit | ||
---|---|---|---|---|---|---|---|
1.x | 1,25 GHz | 2,5 GT/s | 2,5 GBit/s | 2 GBit/s | 250 MByte/s | 8b10b / 20% | 2004 |
2.x | 2,5 GHz | 5 GT/s | 5 GBit/s | 4 GBit/s | 500 MByte/s | 8b10b / 20% | 2008 |
3.0 | 4 GHz | 8 GT/s | 10 GBit/s | 8 GBit/s | 985 MByte/s | Scrambling / <2% | 2011 |
4.0 | 16 GT/s | 20 GBit/s | 16 GBit/s | 1.969 MByte/s | Scrambling / <2% | ab 2016 |