PCI-Express: Lanes, Routing, Sharing, Switches und Redriver erklärt [PCI-E-5.0-Update]
Anderthalb Jahre nach den PCI-Express-5.0-Hosts sind die ersten PCI-E-5.0-Clients erhältlich. Wir haben unseren Grundlagenartikel zu der wohl wichtigsten Schnittstelle überarbeitet und erklären neben Lanes, Switches und Plattform-Konzepten jetzt auch die Herausforderungen der Ausbaustufe 5.0.
In diesem Artikel
Als Intel Ende 2004 zusammen mit dem Sockel 775 den neuen PCI-Express-Standard im Desktop-Segment einführt, sind einige Leute zunächst irritiert. Der damals übliche AG-Port gilt als schnell genug für Grafikkarten, viele Anwender sehen in der neuen Schnittstelle keinen (Leistungs-)Vorteil. Ganz anders die Mainboard-Hersteller, denn wesentlich dringender als AGP muss der PCI-Bus abgelöst werden - dessen Bandbreite reicht für SATA- und Gigabit-LAN-Controller schon länger nicht mehr aus. Seit damals hat sich die Menge und Leistung von PCI-Express-Geräten stetig weiter entwickelt und strebt nach einem quantitativen Desktop-Maximum bei der TR4-Plattform mit 68 Lanes jetzt vor allem nach qualitativen Höhepunkten, nämlich weiteren Geschwindigkeitsverdoppelungen. Auf die Besonderheiten von PCI-Express 5.0 gehen wir im jüngsten Update gezielt ein, weiterhin uneingeschränkt gültig sind aber auch die grundlegenden Teile des Artikels zu Aufbau, Routing und insbesondere Sharing in PCI-Express-Systemen. Genauso wie zu Artikel-Erstveröffentlichung 2015 gilt auch in der PCI-Express-5.0-Generation: Zählt man alle Zusatz-Controller, U.2- und M.2-SSDs, Erweiterungsslots sowie gegebenenfalls involvierte SATA-Ports zusammen, deren Nutzung Mainboard-Hersteller bewerben, so liegen die Bandbreitenanforderungen nicht selten über den von Grafikkarten und über den Möglichkeiten der Plattform. Wer sich mit der Technik nicht auskennt, läuft hier schnell Gefahr, auf leere Werbeversprechen hereinzufallen.
PCI-Express-Grundlagen: Was ist eine Lane?
Quelle: PC Games Hardware Der PCI-Bus war aus Anwendersicht übersichtlich: 32 parallele, durchgehende Datenleitungen verbanden alle Slots und, falls vorhanden, alle Onboard-Controller untereinander und mit dem Chipsatz. Bei Bedarf beanspruchte ein Endgerät die volle Bandbreite und sendete an alle anderen Geräte. Für Mainboard-Hersteller wurde diese Architektur jedoch zum Problem. Denn mit jedem Endgerät wurde das Layout der vielen Leiterbahnen komplizierter und die Störungen auf den Signalleitungen größer. Höhere Taktraten waren so kaum zu erreichen. PCI mit 66 statt 33 MHz konnte sich im Endkundensegment nie durchsetzen, für die zahlreichen Endgeräte wurde aber mehr Bandbreite benötigt. Im Server-Segment behalf man sich mit zusätzlichen Datenleitungen in Form von PCI64 und PCI-X (nicht mit PCI-E zu verwechseln), für den Desktop musste eine günstigere Lösung her.
PCI-Express übernahm von PCI daher nur den Namen und die Steuerbefehle. Letztere garantieren 100-prozentige Softwarekompatibilität - ein altes Betriebssystem bemerkt nicht einmal, dass es mit neuer Technik arbeitet. Die Schnittstelle selbst wurde aber auf sogenannte Lanes umgestellt. Jede Lane besteht aus je einem getrennten Sende- und Empfangskanal, die ihrerseits aus einem differentiellen Adernpaar bestehen. Das heißt: Informationen werden nicht als einzelner Impuls, sondern als Spannungsdifferenz zwischen zwei Adern übertragen - externe Störquellen führen nicht zu Phantom-Signalen, da sie beide Adern ähnlich beeinflussen. Genutzt werden diese Lanes als Punkt-zu-Punkt-Verbindung, jedes Endgerät hat seine eigene Lane. So entfallen auch die gegenseitigen Signalstörungen eines verzweigten Bus-Systems. Mit nur einem Kanal je Richtung arbeitet PCI-Express außerdem seriell - Bits werden also nacheinander übertragen und erreichen den Empfänger unabhängig von der Entfernung in korrekter Reihenfolge. Parallele Schnittstellen wie PCI erfordern dagegen abgestimmte Leiterbahnlängen, damit alle Bits einer Übertragung innerhalb des gleichen Takts eintreffen. Während PCI deswegen bei 33 MHz und 133 MB/s für beide Richtungen zusammen stagnierte, erreichte PCI-Express mit einem Sechzehntel der Datenleitungen bereits zum Start 2,5 GHz und somit bis zu 250 MB/s pro Lane und Richtung.
PCI-Express-Anbindungen: ×1, ×2, ×4, ×8, ×16?
Quelle: PC Games Hardware Benötigt ein Endgerät mehr als die 250 MB/s (PCI-Express 1.0/1.1), 500 MB/s (2.0) , 985 MB/s (3.0) oder 1.969 MB/s (4.0) einer einzelnen Lane, sieht der PCI-Express-Standard die Bündelung mehrerer Lanes innerhalb eines PCI-E-Links vor. Ein Klassiker ist der ×16-Slot für Grafikkarten, der mit "PCI-Express for Graphics" (PEG) sogar einen eigenen Namen hat. Darunter gibt es ×8, was für Grafikkarten ausreicht und vor allem in Multi-GPU-Systemen genutzt wurde, das vor allem für PCI-Express-SSDs interessante ×4-Format, seltener ×2-Verbindungen und natürlich ×1-Links mit nur einer Lane, die über die Jahre hinweg den alten PCI-Bus als Standard für Zusatzcontroller(-karten) verdrängt haben. Zusätzlich wurden ein ×12- und ein ×32-Format spezifiziert, praktisch aber nicht umgesetzt.
Auch bei den kombinierten Multi-Lane-Links handelt es sich übrigens weiterhin um serielle Schnittstellen. Ein Datenpaket wird jeweils nur über eine Lane übertragen und seine Bits können nicht durcheinander geraten. Erst der Empfänger setzt dann die einzelnen Pakete anhand ihrer Identifizierungsnummern wieder zu einer größeren Datenstruktur zusammen. Mit der elektrischen Anbindung skaliert die mechanische Ausführung der Slots, eine große Grafikkarte braucht schließlich eine bessere Arretierung als eine USB-Controller-Karte. Der Anfang aller Slots ist aber einheitlich gestaltet, nur die Länge des hinteren Bereiches wächst mit der Zahl der Lanes. So kann eine ×1 Karte auch in jedem ×16-Slot betrieben werden.
(Anmerkung: Das unten stehende Video wurde 2015 gedreht und beschreibt die Sockel-1151-Skylake-Plattform als neu. Die vermittelten Informationen zu PCI-Express sind aber weiterhin gültig.)
PCI-Express-Slots: Mechanisch? Elektrisch?
Das bis bislang vorgestellte PCI-Express-Grundkonzept stellt eine einfache, übersichtliche Punkt-zu-Punkt-Verbindung vom Controller zum Endgerät dar. In der Praxis kommen aber zahlreiche Stolpersteine hinzu. So sind beispielsweise nicht nur Karten mit unterschiedlicher Anbindung zu diversen mechanischen Slots kompatibel, auch lassen sich letztere frei mit wechselnder elektrischer Anbindung kombinieren. Beispielsweise werden alle für Grafikkarten gedachten Slots im mechanischen ×16-Format ausgeführt, auch wenn sie elektrisch nur mit ×8 angebunden sind. Auch für Slots, die nur über 4 Lanes verfügen, verwenden Mainboard-Hersteller gerne das mechanische ×16-Format. Das ist praktisch, wenn zu Testzwecken oder für 2D-Multimonitoring doch einmal eine Grafikkarte die vergleichsweise langsame Schnittstelle nutzen soll. Zugleich ist es aber auch ein gefundenes Fressen für Marketing-Experten, die derartige Slots natürlich trotzdem frech mit "×16" bewerben, obwohl sie sich elektrisch wie ein normaler ×4-Steckplatz verhalten. So gibt es am Markt durchaus mehrere Mainboards, die vier oder gar fünf derartige Slots tragen, aber nur eine einzige Grafikkarte mit voller Geschwindigkeit anbinden können. Ein Blick in Tests und technische Spezifikationen kann Fehlkäufe verhindern. Dies gilt in besonderem Maße für Intels Workstation-Plattformen Sockel 2066 und 4677, für die CPUs mit unterschiedlichen PCI-Express-Ausstattungsstufen gibt. Auch wenn der Mainboard-Hersteller alle Kontakte eines Slots mit dem CPU-Sockel verbunden hat, kann es hier vorkommen, dass die Leitungen inaktiv bleiben - weil den günstigeren Prozessoren der passende Controller fehlt.
PCI-Express-Sharing: Splitter
Quelle: PC Games Hardware Auch auf anderen Plattformen wird man oft auf wechselnde Anbindungen stoßen. Zwar kann eine PCI-Express-Lane nicht mehrere Geräte versorgen, aber man kann die Lane über elektrische Splitter mit verschiedenen Leiterbahnen verbinden. Auf High-End-Mainboards weiterhin anzutreffen sind beispielsweise zwei mechanische ×16-Slots mit "shared" Anbindung. 8 Lanes der CPU werden permanent zum ersten Slot geführt, 8 weitere Lanes aber zu einer Gruppe aus meist 4 Splittern. Diese leiten sie wahlweise ebenfalls an den ersten Slot, der dann als normaler elektrischer ×16 arbeitet. In diesem Betriebsmodus bleibt der zweite Slot aber komplett ohne Anbindung und ist funktionslos. Möchte man ihn zum Beispiel für SLI nutzen, leiten die Splitter hierfür ihre 8 Lanes um. Der erste Slot läuft nun im ×8-Modus, der zweite ebenfalls.
Da ×8-Slots ausreichend schnell für Grafikkarten sind und Mainstream-CPUs nicht über zweimal 16 Lanes verfügen, ist dies ein probates Mittel, um Dual-GPU-Betrieb zu ermöglichen. Ärgerlich kann es dagegen bei kleineren Slots werden. Während ein ×16-Link langsamer weiterarbeitet, wenn man ihn auf ×8 zusammenstaucht, fällt ein ×1-Slot ganz aus, wenn seine Lane z.B. für einen SATA-Zusatzcontroller benötigt wird. Gerade durch M.2-NVME-SSDs, die für optimale Performance einen M.2-Slot mit vier PCI-Express-Lanes erfordern, hat das Sharing neue Dimensionen erreicht, denn einige Plattformen verfügen nur über wenige derartige Ressourcen, Mainboard-Hersteller versprechen aber gerne eine umfangreiche Ausstattung. Der Käufer profitiert hiervon durch Flexibilität - eine Lane, die nicht fix auf die SATA-Versorgung gebucht ist, sondern sich auch für M.2 nutzen kann, ist nett, wenn man wenig SATA- und viele M.2-Geräte hat. Aber auch hier gilt: Vor dem Kauf sollten gute Tests studiert werden, um Enttäuschungen zu vermeiden. Im konkreten Beispiel wären viele SATA- und viele M.2-Geräte gleichzeitig unmöglich - bei einem Konkurrenzprodukt, das Lanes stattdessen zwischen M.2 und PCI-E-Slots shared, kann dies schon ganz anders aussehen, obwohl beide Hersteller mit den gleichen Ressourcen arbeiten und die gleiche Palette an Schnittstellen versprechen.
PCI-Express-Vervielfältigung: Switches
An dieser Stelle sei kurz ein Sonderfall erwähnt, der sich bis in PCI-E-3.0-Zeiten auf Mainboards (weit) jenseits der 300-Euro-Klasse fand, heute aber nur noch in Servern genutzt wird. Neben oben genannten Splittern, die oft auch als "Switches" (von engl. "Schalter") bezeichnet werden, gibt es nämlich auch PCI-Express-Switches, deren Funktion an Netzwerk-Switches erinnert. Diese können Daten aus mehreren Quellen annehmen und dynamisch an andere Geräte weiterleiten. So ist beispielsweise ein teurer 48-Port-PLX-Switch in der Lage, gleichzeitig eine ×16-Verbindung zur CPU und je eine ×16-Verbindung zu zwei GPUs unterhalten. Letztere können also abwechselnd mit ihrer vollen Bandbreite auf die CPU und deren Speichercontroller zugreifen, sie können ohne Belastung der knappen CPU-Bandbreite untereinander über den Switch kommunizieren und die CPU kann Daten, die beide GPUs benötigen, einmalig mit zwei Empfängeradressen versenden.
Noch nützlicher sind Switches im I/O-Hub-Umfeld. Viele Endgeräte brauchen nicht die volle Bandbreite einer PCI-Express-Lane respektive einer ×4-Anbindung oder sind nur selten aktiv. Relativ günstige 1-auf-4-Switch von AS Media ermöglichten es auf etlichen Oberklasse-Mainboards, dass sich mehrere LAN-Controller oder ×1-Slots eine der knappen Lanes teilten, ohne dass es zu Leistungsverlusten kam. Auch I/O-Hubs, auf AMD-Plattformen oft von AS Media selbst konstruiert, übernehmen unter anderem die Funktion eines PCI-E-Switches/-Vervielfältigers.