PCI Express: Der Highspeed-Datenbus im Detail

14.06.2004 von Bernhard  Haluschak
Nach PCI, PCI-X und auch AGP soll PCI Express jetzt die einzige, dafür aber universelle Datenautobahn für PCs werden. Wir erläutern den neuen I/O-Standard und vergleichen ihn mit PCI-Technologien bis hin zu PCI-X 3.0.

Gerade im Server- und Workstation-Bereich müssen große Datenmengen schnell und zuverlässig zu Festplatten-RAID-Systemen oder Netzwerkkarten transportiert werden. Aber auch im Desktop-Bereich sind die Anforderungen an einen zügigen Datenverkehr gestiegen.

Als Bremse erweist sich hier in der Regel das viel zu langsame I/O-Bussystem. Es muss die Datenströme zwischen den einzelnen Subsystemen steuern und verarbeiten. Reicht die Übertragungsrate der I/O-Architektur nicht aus, kommt es unweigerlich zum Stau auf der Datenautobahn. Dieses Manko will das PCI-SIG-Konsortium, bestehend aus Firmen wie Intel, AMD, Microsoft, Dell und HP, mit neuen Bustechnologien beseitigen.

Nachdem der 1993 vorgestellte PCI-Bus mit einer Datentransferrate von maximal 127,2 MByte/s für moderne I/O-Hardware wie 10-Gbit-Ethernet-Adapter zu langsam ist, sollen PCI-X und vor allem PCI Express das Defizit beseitigen. Diese neuen Bustopologien erreichen Übertragungsgeschwindigkeiten von bis zu 7,95 GByte/s (PCI-X 1066) und 9,53 GByte/s je Richtung (PCI Express mit 32 Leitungspaaren). Das PCI-X-Bussystem hat sein Einsatzgebiet vorwiegend im Server-Bereich und soll wie PCI laut PCI-SIG 2004 von PCI Express abgelöst werden.

Doch auch auf anderen Gebieten soll PCI Express existierende Standards ersetzen. Dies betrifft zum Beispiel die AGP-Schnittstelle, den Mini-PCI-Bus und die PC Card. Erste lauffähige Komponeneten auf Basis von PCI Express existieren bereits seit Ende 2003. Serienreife Chipsätze haben namhafte Hersteller wie Intel, VIA oder SiS erst Mitte 2004 eingeführt.

Update: PCI-Bus-Architekturen im Vergleich

In der folgenden Tabelle finden Sie alle PCI-Versionen zusammengefasst. Sie basieren auf einer parallelen Datenübertragung und sind nicht skalierbar. Demgegenüber steht das serielle Transferverfahren von PCI Express.

Laut Spezifikation hat PCI Express eine Busbreite von 1 bis maximal 32 Lanes. Bei einer Taktfrequenz von 2,5 GHz erreicht das Bussystem eine maximale theoretische Bandbreite von 19,1 GByte/s. Die Einführung des neuen Bussystems soll 2004 erfolgen. Doch auch PCI-X ist in punkto Performance noch nicht ausgereizt. Das PCI-SIG-Konsortium plant die Entwicklung von PCI-X 2133 in den kommenden Jahren.

PCI-Versionen im Überblick

PCI-Version

PCI 2.0

PCI 2.1

PCI 2.2

PCI 2.3 / PCI 3.0

PCI-X-1.0

PCI-X-2.0

PCI-X-3.0

Max. Busbreite (Bit)

32

64

64

64

64

64

64

Max. Taktrate (MHz)

33

66

66

66

133

533

1066

Max. Bandbreite (GByte/s)

0,12

0,5

0,5

0,5

0,99

3,97

7,95

Slots pro Bridge

4

2

2

2

1

1

1

Spannung (Volt)

5

5/3,3

5/3,3

3,3

3,3

3,3/1,5

3,3/1,5

Einführung (Jahr)

1993

1994

1999

2002 / 2004

1999

2002

2004

Alle PCI-Standards werden ständig überarbeitet und weiterentwickelt. Diese Aufgabe obliegt dem PCI-SIG-Konsortium, das die daraus resultierenden Spezifikations-Updates auch veröffentlicht.

Update: Details zum PCI-Bus I

Das aktuelle PCI-Bussystem in Desktop-PCs basiert auf der PCI-Local-Bus-Spezifikation 2.3. Der PCI-Bus verfügt über einen 32 Bit breiten kombinierten Daten-/Adressbus. Er arbeitet parallel mit einer Taktfrequenz von 33 MHz. Daraus resultiert eine Bandbreite von 127,2 MByte/s. Aber auch eine PCI-Variante mit 64 Bit Busbreite und 66 MHz Taktfrequenz hält die PCI-2.3-Spezifikation parat.

Die maximale Transferkapazität liegt dann bei 508 MByte/s. Allerdings unterstützt diese Konfiguration nur maximal zwei statt vier 3,3-V-Steckkarten pro Bussegment. Die Abwärtskompatibilität zu einem 32-Bit-PCI-Bussystem ist aber gewährleistet. Die im März 2002 verabschiedete PCI-2.3-Spezifikation unterstützt nur noch 3,3-V-Steckkarten. Das bedeutet: Veraltete 5-V-Karten sind nicht mehr zu einem 2.3-spezifizierten PCI-Slot kompatibel. Mechanisch kann der PCI-2.3-Slot allerdings noch Karten mit 5-V-Kodierung aufnehmen. Die im April 2004 verabschiedete Version 3.0 besitzt einen Slot, in dem nur noch universal- und 3,3-V-kodierte Grafikkarten passen.

Um das Slot-Anzahl-Problem zu umgehen, verfügt PCI über so genannte PCI-to-PCI-Bridges: Sie bieten die Möglichkeit, mehrere PCI-Busse parallel oder hintereinander in einem Rechner zu betreiben. Zusätzlich verfügt die PCI-to-PCI-Bridge über ein Konfigurationsregister zum Abspeichern von Initialisierungsdaten. Ein Prefetch- und ein Posting-Puffer erledigen das Zwischenspeichern von Lese- und Schreibdaten. Darüber hinaus ist die Bridge in der Lage, Einzeltransfers zu schnellen und effizienten Burst-Zugriffen zusammenzufassen.

Details zum PCI-Bus II

Der PCI-Bus arbeitet mit zwei Arten von Bus-Devices, dem Initiator und dem Target. Der Initiator startet einen Buszugriff, indem er die Kontrolle über die Steuerleitungen übernimmt und dann eine Zieladresse generiert. Zusätzlich legt der Initiator Länge und Beginn eines Bustransfers fest.

Der Empfänger, auch Target genannt, signalisiert die Lesebereitschaft mit einem Rückmeldesignal oder erzeugt Wait-States. Er kann Datentransfers aber nicht selbst initialisieren, sondern ist auf Bus-Master-Geräte oder die CPU angewiesen. Bus-Master-Komponenten können selbstständig auf alle zugänglichen Ressourcen eines Systems zugreifen und Funktionen wie Burst-Transfers initiieren. Wollen mehrere Busmaster gleichzeitig Zugriff auf den Bus, so entscheidet eine ausgeklügelte Arbitrierungslogik, wer den Zuschlag erhält.

Mit Funktionen wie Plug-and-Play übernimmt PCI die automatische Konfiguration von PCI-Geräten. Dabei werden während des Systemboots Ressourcen wie Interrupts, DMA-Kanäle, Portadressen und Speicherbereiche festgelegt.

Details zum PCI-X-Bus I

Um die steigende Performance-Anforderung an den PCI-Bus zu decken, wurde im September 1999 die Spezifikation für PCI-X-1.0 vorgestellt und im Mai 2002 von der Revision 2.0 abgelöst. Doch die Leistungsfähigkeit des PCI-X-Busses wird noch weiter erhöht. Bereits seit November 2002 beschäftigt sich das PCI-SIG-Konsortium mit der Entwicklung des PCI-X-3.0-Standards. Alle 64 Bit breiten Bussysteme PCI-X-1.0/2.0/3.0 garantieren die volle Hardware- und Software-Kompatibilität zum herkömmlichen PCI-Standard.

Der PCI-X-1.0-Bus arbeitet im Normalmodus mit einer maximalen Taktfrequenz von 133 MHz und nur einem 3,3-V-Slot. In dieser Konfiguration erreicht er einen Datendurchsatz von 0,99 GByte/s. Er unterstützt aber auch Frequenzen von 100 und 66 MHz mit dann zwei beziehungsweise vier Slots.

Beim PCI-X-2.0-Bus sorgen die zwei Address-Strobe-Leitungen AD_STB und AD_STB# für eine Verdoppelung beziehungsweise Vervierfachung der Bandbreite bei gleich bleibender Taktfrequenz von 133 MHz. Im Double-Data-Rate-Modus (2x 133 MHz) erreicht der Bus einen Datendurchsatz von 1,99 GByte/s und im Quad-Data-Rate-Betrieb (4x 133 MHz) kommt er auf 3,97 GByte/s. Gegenüber PCI-X-1.0 arbeitet PCI-X-2.0 neben 3,3 V zusätzlich mit einem I/O-Spannungspegel von 1,5 V. Darüber hinaus bietet der erweiterte PCI-X-Standard eine Fehlererkennung, die Korrektur des Datenstroms per ECC-Verfahren und ein Device-ID-Messaging.

Der in der Entwicklung befindliche PCI-X-3.0-Standard soll über ein erweitertes Power-Management verfügen. Auch den isochronen Datentransport soll er beherrschen sowie redundante Datenwege bei der Datenübertragung des Bussystems benutzen können. Wie aus der Bezeichnung PCI-X 1066 abzuleiten ist, schafft es der Datenbus, 1066 Mega-Transfers pro Sekunde auszuführen. Damit erreicht er eine theoretische Bandbreite von 7,95 MByte/s.

Obwohl PCI-X 1066 noch nicht eingeführt wurde, evaluiert das PCI-SIG-Konsortium bereits PCI-X 2133. Detaillierte Einzelheiten über diesen Standard gibt es noch nicht. Er soll laut PCI-SIG erst in einigen Jahren konkrete Formen annehmen. Wird PCI-X 2133 trotz PCI-Express-Konkurrenz je realisiert, so erreicht es eine rechnerische Bandbreite von 15,9 GByte/s. Aktuelle Technologien wie 10-Gbit-Ethernet oder Fibre-Channel arbeiten mit einer theoretischen Transferrate von 1,16 GByte/s. Zukünftige Übertragungsverfahren für 40/100-Gbit-Ethernet und Fibre Channel sollen bis zum Zehnfachen der heutigen Datenrate schaffen.

Details zum PCI-X-Bus II

Die Übertragungsverfahren von PCI-X-1.0 bis 3.0 funktionieren nahezu identisch wie beim Standard-PCI und sind dazu abwärts kompatibel. Hinzugekommen sind einige neue Register und Funktionen zur Verbesserung der Datenflusskontrolle zwischen Sender und Empfänger. Dazu zählen zum Beispiel Split-Transactions. Diese erlauben es dem Sender, weitere Datenübertragungen zu anderen Geräten durchzuführen, ohne erst die Antwort vom Adressaten durch ein Zeit raubendes Polling abzuwarten, wie dies bei PCI notwendig ist.

Das schon eingeführte PCI-X-1.0-Bussystem kommt überwiegend in Server-Umgebungen zum Einsatz. Dort fordern Zusatzkarten wie 10-Gbit-Ethernet-Adapter und SCSI-RAID-Controller eine sehr hohe Bandbreite vom I/O-Bussystem. Der PCI-X-2.0- und besonders der neue 3.0-Standard sollen den Leistungsbedarf hochperformanter Steckkarten wie 40-Gbit-Ethernet-Adapter decken. Zusätzlich spezifiziert die PCI-SIG bereits Kriterien für PCI-X 2133.

Update: PCI-Express-Architektur

Die flexible PCI-Express-Architektur - auch unter den Codenamen 3GIO und Arapahoe bekannt - verspricht heutige Bussysteme wie PCI/PCI-X und AGP abzulösen. PCI Express eignet sich als schneller universeller Interconnect zu internen Komponenten wie USB-Controllern, Steckkarten mit hohem Datendurchsatz wie SCSI-RAID-Controllern oder 10-Gbit-Ethernet-Adaptern sowie als Docking-Verbindung zu externen Geräten wie Notebooks.

Darüber hinaus ist der neue I/O-Standard in der Lage, die herkömmlichen proprietären Chip-to-Chip-Verbindungen wie V-Link von VIA, MuTIOL von SiS oder Hub Link von Intel, zu ersetzen. Hier kann er die Geschwindigkeit gegenüber dem schnellsten Verfahren MuTIOL mit 0,99 GByte/s um mehr als das Neunfache steigern.

Allerdings eignet sich die paketorientierte Datenübertragung von PCI Express anhand eines Layer-Modells nicht als Prozessor- oder Speicher-Interconnect wie etwa HyperTransport. Der Overhead, zum Beispiel durch die 8B/10B-Kodierung und die damit verbundenen hohen Latenzzeiten sowie ein kompliziertes Routing von 32 Lanes, bringen keine Vorteile. Eine stringente Bustopologie ist somit ohne zusätzliche I/O-Bridge-Bausteine nicht möglich.

Neu: PCI-Express-Bridges

Das langfristige Ziel von PCI Express ist es, die unterschiedlichen I/O-Standards wie PCI, PCI-X oder AGP abzulösen. Allerdings muss in der Übergangszeit gewährleistet sein, dass die neue Technologie aus Kostengründen die herkömmlichen Steckkarten weiterhin unterstützt. Gleichzeitig muss PCI Express mit den aktuellen Schnittstellen-Standards wie USB 2.0, SCSI, IEEE1394b, Ethernet und Infiniband problemlos zusammen arbeiten können. Die Lösung für diesen "Kompatibilitäts-Spagat" bieten Bridge-Bausteine.

Mit Bridge-Bausteinen lassen sich alle nicht PCI-Express-konformen Komponenten in die PCI-Express-Architektur einbinden. Performance-Einbußen sollen dabei nicht auftreten. So setzt zum Beispiel der Grafikchip-Hersteller NVIDIA einen AGP-zu-PCI-Express-Baustein ein, um bis zur Entwicklung einer nativen Lösung vorhandene Grafikchips in einer PCI-Express-Architektur einsetzten zu können.

Dieser Bridge-Baustein lässt sich auch in umgekehrter Richtung betreiben. Dieses Konzept verfolgt die Grafikchipschmiede ATI. Das Unternehmen verwendet native PCI-Express-Grafikchips und kombiniert sie mit einer PCI-Express-zu-AGP-Bridge, um zu der noch aktuellen AGP-Schnittstelle kompatibel zu sein.

Auch im Serverumfeld, wo zum Beispiel PCI-X-Komponenten sehr verbreitet sind, sollen künftig die Bridge-Bausteine die Einbindung dieser Technologie in die PCI-Express-Architektur erleichtern. Durch den Einsatz der Bridge-Technologie lassen sich in diesem Bereich Kosten für die erneute Validierung der auf PCI-Express umgestellten Steckkarten sparen.

Neu: PCI Express: Switch-Archtektur

Neben den Bridge-Bausteinen stellt die PCI-Express-Technologie einen neuen Funktionsbaustein - den Switch - zur Verfügung. Er verwaltet mehrere Endgeräte und verfügt über eine intelligente Flusskontrolle. Diese unterstützt isochrone Datentransfers innerhalb des Switches von einem Endgerät zum anderen per so genannten virtuellen Tunnel ohne Umwege über den Host. Ein isochroner Datenfluss ist auch von einem Host zum Endgerät möglich. Beide Übertragungsformen beschleunigen den Datenverkehr und verhindern Engpässe während des Datentransports. PCI und PCI-X (außer PCI-X-3.0) bieten diese Möglichkeiten nicht.

Um Software-Kompatibilität zum PCI-2.3/3.0-Standard zu gewährleisten, besitzt jeder Ein-/Ausgang des Switches eine interne virtuelle PCI-zu-PCI-Bridge. Für PCI-Express-Datenzugriffe ohne Berücksichtigung der PCI-Kompatibilität können sie bei zukünftigen Lösungen entfallen.

Der PCI-Express-Switch kann zum Beispiel den Datenverkehr einer Host Bridge auf mehrere Geräte aufteilen. Diese hängen dann wie bei der herkömmlichen PCI-Bus-Architektur nicht mehr in einer Kette hintereinander, sondern nebeneinander. Jedes Gerät ist dadurch direkt für den Host mit niedriger Latenzzeit erreichbar. Zusätzlich erhöht die Switch-Struktur die Ausfallsicherheit, da ein Defekt einer Komponente nicht mehr eine ganze Kette lahm legt.

Neu: PCI Express Advanced Switching

Unter Federführung von Intel ergänzte die eigens gegründete Advanced Switching Interconnect Special Interest Group (ASI SIG) im ersten 1.0-Entwurf die PCI-Express-Technologie um einen Advanced-Switching-Standard, kurz PCI AS. Im Januar 2004 erfolgte die finale Verabschiedung des Standards. Dieser soll PCI Express als Verbindungstechnik im Netzwerk- und Telekommunikations-Bereich nutzbar machen. Darüber hinaus ist der Einsatz von PCI AS in Servern als Backplane-Standard geplant.

Das PCI AS soll als spezielle Verbindungstechnik wie beispielsweise für Netzwerkprozessoren in Routern dienen und den Datenaustausch in einer auf Telekommunikation basierenden Serverumgebung beschleunigen und vereinfachen. Mit der Advanced-Switching-Technologie lassen sich auch so genannte Fabrics realisieren. In diesen Schaltungs-Topologien ist es möglich, Daten zwischen beliebigen Punkten abhängig von der Adresse und vom Absender zu befördern.

Für die PCI-AS-Technologie bleibt die Hardware der PCI-Express-Architektur unverändert, lediglich die Software muss den besonderen Anforderungen an den Datenaustausch in einem Netzwerk entsprechen.

Slot und Bus I

Kostengünstig soll der neue PCI-Express-Slot sein. Deshalb schrumpfen beim PCI-Express-Slot im Vergleich zum Standard-PCI-Slot mit der Anzahl der Pins auch die Abmessungen.

PCI Express basiert auf einer seriellen Punkt-zu-Punkt-Verbindung. Die einfachste Verbindung zwischen Empfänger und Sender besteht aus zwei uni-direktionalen differenziell betriebenen Leitungspaaren mit niedriger und gleichspannungsfreier Signalspannung, genannt Lane. Das verhindert Übersprechverhalten auf andere benachbarte Signalleitungen.

Er besitzt bei zwei Datenleitungen (entspricht x1-Link mit zwei differenziellen Leitungspaaren) inklusive Daten-, Adress-, Steuer- und Stromversorgungsleitungen mindestens 36 Pins. Bei einem x4-breiten-Link-Bus sind es 64, bei x8 98 und bei x16 maximal 164 Pins. Der 32-Bit-PCI-Slot benötigt dagegen 84 einzelne Anschlüsse. Beim AGP-8x- sind es 108 und beim PCI-X-Slot 150 Pins.

Je nach der Anzahl der benötigten Lanes kann der PCI-Express-Slot ohne mechanische Einschränkungen vor oder neben den existierenden PCI-Slots eingesetzt werden. Auch Systemlösungen für PC-Cards, Cartridges oder Kabelverbindungen zu anderen Rechnern inklusive Hot-Plug-Unterstützung sind mit dem PCI-Express-Bus möglich.

Slot und Bus II

Der PCI-Express-Bus lässt sich auf günstigen Vier-Layer-Mainboards implementieren. Will man unterschiedliche Signallaufzeiten der Lanes auf der Platine vermeiden, müssen die Kupferbahnen der Leitungen gleich lang sein. Die Spezifikation schreibt eine maximale Leitungslänge von 50,8 cm bei einer 16-Lane-Verbindung vor.

Zusätzlich müssen die Leitungen mit einer Impedanz von 100 Ohm terminiert sein. Die maximale Peak-to-Peak-Spannung zwischen den zwei differenziellen Signalleitungen darf 1,2 V nicht überschreiten. Gleichzeitig darf sie am Ausgang des Transmitters 0,8 V sowie am Eingang des Receivers 0,175 V nicht unterschreiten. Die exakte Angabe von definierten Spannungspegeln ist bei der differenziell seriellen Datenübertragung besonders wichtig. Denn die Informationen extrahiert der Empfänger nicht aus Amplituden-Differenzen, sondern aus Flusswechseln im Datenstrom.

Der PCI-Express-Slot bietet optional einen integrierten SMBus. Das serielle Interface besteht aus zwei Leitungen, über die Informationen zwischen Systemkomponenten mit gleicher Schnittstelle ausgetauscht werden können. Der SMBus ist in der Lage, System- und Power-Management-Tasks unabhängig von weiteren Kontrollleitungen des PCI-Express-Busses zu steuern. Darüber hinaus übermittelt er Herstellerinformationen wie Modellnamen und Seriennummern der angeschlossenen Komponenten, Zustände von Suspend-Ereignissen und Statusprotokolle bei Gerätefehlern.

Kompatibilität

Eine wichtige Eigenschaft des PCI-Express-Standards ist die Software-Kompatibilität zum herkömmlichen PCI-Standard. Weder das Betriebssystem noch die ApplikationsSoftware muss speziell an das Bussystem angepasst werden. Besondere Anforderungen an die Kompatibilität stellen die beiden kritischen Phasen Initialisierung und Betrieb. Während der Initialisierungsphase ermittelt das Betriebssystem die Hardware-Konfiguration und reserviert die entsprechenden Ressourcen wie Speicher, I/O-Bereich und Interrupts. Das PCI-Express-Konzept übernimmt unverändert die bisherigen PCI-Konfigurationsroutinen und die Programmierbarkeit der angeschlossenen I/O-Geräte. Somit ist gewährleistet, dass alle Betriebssysteme ohne besondere Anpassung mit PCI Express zusammenarbeiten können.

PCI Express erweitert den Raum für Initialisierungs- und Konfigurationsdaten, den so genannten Configuration Space, auf 4096 Bytes pro Funktionsblock. Demgegenüber stehen 256 Bytes, die in der PCI-Spezifikation Revision 2.3 festgelegt sind. Der Configuration Space enthält Informationen darüber, welche Geräte am Bus angeschlossen sind und wie sie angesteuert werden. Diese Daten sind wichtig für den Bootvorgang. Deshalb unterteilt PCI Express den Configuration Space in einen PCI-2.3-kompatiblen Bereich mit maximal 256 Bytes und einen erweiterten PCI-Express-Bereich mit 4096 minus 256 Bytes. Der Zugriff auf den PCI-2.3-konformen Bereich kann sowohl nach den PCI-2.3- als auch nach den erweiterten PCI-Express-Regeln erfolgen. Ein Zugriff per PCI 2.3 auf den erweiterten PCI-Express-Raum ist nicht möglich. Sollen Zugriffsfehler vermieden werden, muss für eine PCI-kompatible Konfigurationsanforderung der erweiterte PCI-Express-Bereich mit Nullen aufgefüllt sein.

Um PCI Express in ein PC-System mit einem aktuellen Betriebssystem zu implementieren, sind keine neuen oder angepassten Treiber erforderlich. Alle modifizierten Prozesse des PCI-Express-Busses beeinflussen ausschließlich den Physical Layer, Data Link Layer und den Transaction Layer. Die Funktionsweise und der Aufbau der einzelnen PCI Express Layer erklären, wie der künftige I/O-Standard im Detail arbeitet.

Physical Layer

Der Physical Layer stellt die unterste Ebene des Layer-Modells dar und regelt den Datenfluss über die einzelnen seriellen Busleitungen.

Vor jeder Übertragung kodieren der Sender und der Empfänger die Daten nach dem 8B/10B-Verfahren. Diese serielle Kodiertechnik wandelt die 8 Bit langen Nutzinformationen in 10 Bit lange Datenblöcke um. In diesem Datenstrom sind durch entsprechend aufeinander folgende Bitwechsel die Taktinformationen enthalten, mit denen sich die Übertragungsstationen synchronisieren. Weitere Sideband-Signale zur Datenflusskontrolle sind nicht erforderlich. Nachteil der 8B/10B-Kodierung ist die um 20 Prozent niedrigere effektive Datenrate.

Bei einer Grundfrequenz von 2,5 GHz erreicht der PCI-Express-Bus eine maximale Transferrate von 2,5 Gbit/s je Richtung und Leitungspaar, das entspricht dann 2,0 Gbit/s an Nutzdaten. Geplant ist eine Erhöhung der Frequenz bis auf 10 GHz, damit erreicht man die maximale physikalische Übertragungsgeschwindigkeit von 10 Gbit/s in Kupferleitungen.

Der PCI-Express-Bus erlaubt durch das Hinzufügen von Lanes eine flexible lineare Skalierung in der benötigten Bandbreite. Der Physical Layer der PCI-Express-Architektur unterstützt x1, x2, x4, x8, x16 und x32 breite Lanes. Die zu übertragenden Daten werden auf die einzelnen Lanes aufgesplittet und mit dem 8B/10B-Verfahren kodiert. So erreicht ein 32 Lanes breiter Bus eine maximale Transferrate von 9,31 GByte/s je Richtung. Während der Initialisierungsphase synchronisieren Sender und Empfänger die Lane-Breite und die Übertragungsfrequenz. Der Vorgang beeinflusst den Betriebssystem- oder Software-Layer nicht und garantiert damit volle Kompatibilität zum herkömmlichen PCI-Standard.

Spezifikations-Upgrades in Form von neuen Encoding-Technologien oder die Steigerung der Übertragungsgeschwindigkeit sind durch die Layer-Struktur einfach durchzuführen. Die neuen Vorgaben und Anforderungen verändern ausschließlich die Funktionsparameter im Physical Layer.

Data Link Layer

Die Hauptaufgabe des Data Link Layer besteht darin, Datenpakete vom Transaction Layer (TLPs) für eine Datenübertragung durch den Physical Layer vorzubereiten und umgekehrt. Dabei stellt er bestimmte Service-Funktionen wie Fehlererkennung und die damit verbundene Wiederholung des Datentransfers zur Verfügung. Zudem übernehmen Data-Link-Layer-Pakete bestimmte Link-Management-Funktionen. Im Einzelnen sind das Empfangsbestätigungen von Transaction-Layer-Paketen, Initialisierungs- und Powermanagement-Status sowie das Übermitteln von Informationen zur Datenflusskontrolle. Data-Link-Layer-Blöcke werden per Point-to-Point-Transfer zwischen zwei Komponenten übertragen. Demgegenüber lassen sich TLPs über mehrere angeschlossene Geräte verzweigen.

Um die Datenintegrität eines TLPs zu gewährleisten, fügt der Link Layer am Blockanfang des Datenpakets eine eindeutige Identifizierungsnummer an, die so genannte Paket-Sequenznummer. Damit identifiziert sich ein einzelner Übertragungsprozess innerhalb der PCI-Express-Umgebung eindeutig. Zusätzlich hängt der Link Layer an das Blockende eine Prüfsumme zur Fehlererkennung (CRC). Signalisiert der Empfänger eine fehlerhafte Datenzustellung, initiiert der Data Link Layer einen erneuten Blocktransfer.

Sendet der Data Link Layer diesen Datenblock, so erreicht er den Empfänger mit einer gewissen Verzögerung. Diese Latenzzeit hängt von Faktoren wie Frequenz und Bandbreite des Busses, Signalverzögerung durch Leiterbahnen und Wiederholung eines Transfers bei einer Fehlererkennung ab.

Aufbau des Data Link Layer

Die Data-Link-Layer-Pakete (DLLPs) bestehen aus fünf Bytes beginnend mit dem Byte Null. Die acht Bits des Bytes Null spezifizieren den Typ des DLLPs. Die Bits Null bis fünf des Bytes eins und die Bits sechs und sieben des Bytes zwei definieren zum Beispiel den Header-String zur Initialisierung der Flusskontrolle. Dazu gehören auch die Bits Null bis sieben des Bytes drei und die Bits Null bis drei des Bytes zwei, die den Daten-String der Funktion bilden. Der letztere String kann bei einer Empfangsbestätigung auch eine Sequenznummer eines fehlerhaft übertragenen TLPs enthalten. Überträgt der Data Layer Powermanagement-Funktionen, bleiben die Bytes unbelegt. Den Abschluss eines DLLPs bildet das Byte vier mit einer CRC-Prüfsumme.

Muss der Data Link Layer einen Transaction-Layer-Block übertragen, fügt er am Anfang des TLPs eine Sequenznummer an, die aus zwei Bytes besteht. Die ersten vier Bits des Daten-Strings bleiben dabei unbelegt, und die nachfolgenden zwölf Bits bilden die Sequenznummer. Am Ende des Datenpakets hängt der Data Link Layer eine vier Bytes lange Prüfsumme zur Fehlererkennung (LCRC) an.

Transaction Layer

Der Transaction Layer verarbeitet Schreib- und Lese- sowie spezielle Ereignisanforderungen. Er ist das Bindeglied zwischen dem Software- und dem Data Link Layer.

Um unnötige Datenübertragungen zu vermeiden, unterstützt der Transaction Layer das Protokoll nach der so genannten Credit-Based-Flow-Kontrolle. Das Verfahren übermittelt nur Datenpakete, wenn am Ziel freie Puffer verfügbar sind. Das spart wiederholte Datenübermittlungen und somit eine überflüssige Belegung der Busbandbreite. Benötigt der Sender eine Empfangsbestätigung, so erfolgt der Transfer im Split-Transfer-Modus. Er erlaubt es dem Absender bis zur Antwort des Adressaten, weitere Übertragungen an andere Empfänger durchzuführen.

Zusätzlich legt der Transaction Layer Regeln für die Übertragung und das Management von TLPs fest, wie etwa PCI/PCI-X-Kompatibilität. Eine intelligente Flusskontrolle erlaubt die Aufteilung der Datenpakete nach bestimmten Traffic-Class-Gruppen. In Switches werden diese Einheiten je nach Verwendung vor der Datenübertragung in virtuelle Kanäle zusammengefasst oder aufgeteilt. Dieses Verfahren dient zur effektiven Nutzung der vorhandenen Busbandbreiten, da lediglich zusammengehörende Datenpakete übermittelt werden.

Die PCI-Express-Spezifikation definiert für den Datenaustausch mittels des Transaction Layer vier Adressierungsarten. Das sind im Einzelnen Memory, I/O, Configuration und Message mit unterschiedlichen Transfermodi wie Reads und Writes.

Aufbau des Transaction Layer I

Der Transaction Layer besteht aus einem Header, Datenbereich und optionalem Anhang zur Fehlererkennung. Die allgemeine Bedeutung der ersten vier Bytes (Doppelwort) des Transaction Header ist bei allen Transaction-Layer-Paketen gleich. Er beginnt mit dem höchstwertigen Bit des Bytes Null. Bit fünf und sechs des Bytes Null geben die Länge des Header (Fmt) an. Dieser kann drei oder vier Doppelwörter lang sein und einen optionalen Datenanhang beinhalten. Die Bits Null bis vier des Bytes Null (Type) und die zwei Bits der Header-Länge definieren die Transfermodi wie beispielsweise 32/64-Bit-Memory- oder I/O-Reads/Writes. Diese legen auch den weiteren Aufbau des Transaction-Header fest.

Die Traffic-Class-Bits (TC) vier bis sechs des Bytes eins kodieren acht verschiedene Service-Klassen, die den Datentransport beeinflussen. Nur die System-Software in einer PCI-Express-Umgebung kann Service-Klassen wie zum Beispiel Datentransport nach Priorität definieren. Die Default-Einstellung (Bitfolge: 000) unterstützt jede PCI-Express-Komponente.

Das siebte Bit des Bytes zwei im Transaction-Header (TD) signalisiert, dass dem Transaction-Layer-Paket ein besonderer Anhang folgt, der aus einem einzelnen Doppelwort besteht. Dieser beinhaltet eine spezielle End-to-End-CRC-Prüfsumme (ECRC) zur Fehlererkennung und soll eine hohe Datenintegrität gewährleisten.

Mit dem Setzen des sechsten Bits des Bytes zwei (EP) erkennt der Empfänger ein fehlerhaftes TLP. Darüber hinaus informiert ein Statusbericht den Absender über den aufgetretenen Fehler und veranlasst ihn, den Datentransfer zu wiederholen. Die Fehlererkennung wird nur bei Schreib- und Leseoperationen durchgeführt.

Aufbau des Transaction Layer II

Das Ordering-Attribute-Feld (Attr) des TLPs besteht aus den beiden Bits vier und fünf des Bytes zwei. Mit dem vierten Bit lässt sich das Cache-Coherency-Management ansprechen. Wenn das Bit deaktiviert ist, zwingt die übertragene Operation die Hardware, kohärente Cache-Zugriffe durchzuführen. Ein gesetztes Bit signalisiert den Verzicht auf diese Zugriffsform (No Snoop). Das fünfte Bit entscheidet darüber, ob Datenzugriffe streng nach den PCI-Richtlinien oder unter bestimmten Voraussetzungen nach der PCI-X-Spezifikation erfolgen. Das garantiert eine Abwärtskompatibilität zum PCI-/PCI-X-Standard.

Die Länge des nutzbaren Datenbereichs (Length) repräsentieren die Bytes drei und zwei, bei Letzterem werden nur die ersten beiden Bits ausgewertet. Die insgesamt zehn Bits stehen für eine maximale Datenmenge von 1024 Doppelwörtern, das sind umgerechnet 4 KByte nutzbare Daten.

Der Header enthält in den Bit-Feldern Fmt, Type und TD alle notwendigen Informationen, um die Größe des gesamten Transaction-Layer-Pakets zu bestimmen.

Powermanagement

Das PCI-Express-Powermanagement unterstützt alle Funktionen, die in der Bus Powermanagement Interface Specification Revision 1.1 und in der Advanced Configuration and Power Interface Specification Revision 2.0 festgelegt sind.

Anders als PCI mit den Device-Powermanagement-States D0, D1 und D2 sowie D3hot und D3cold, definiert PCI Express so genannte Link-Powermanagement-States. Die einzelnen Link-States L0, L0s, L1, L2 und L3 sind aus den Device-States abgeleitet und haben ähnliche Funktionen.

Im L0/D0-Modus versorgt das Netzteil die gesamte Hardware mit Strom. Der Zustand L0s/D0/D1 ist mit dem Standby-Modus gleichzusetzen. L1/D1/D2 erweitert den Standby-Betrieb, in dem spezielle Funktionseinheiten einer Steckkarten abgeschaltet werden. Im L2/D3hot-Zustand bleibt nur die Hilfsspannung des Netzteils aktiviert. Hierbei befindet sich das System in einem so genannten Low-Power-Sleep-State. Dagegen schaltet der L3/D3cold-Modus alle Spannungen aus.

Hot-Plug-Fähigkeit

Eine Hot-Plug-Funktion ermöglicht es, Hardware-Komponenten im laufenden Zustand eines Rechners einzustecken oder zu entfernen. Eine Unterbrechung des Betriebs durch einen Reset oder ein Power-Down ist nicht notwendig. Die erste offizielle Hot-Plug-Spezifikation für PCI wurde 1997 verabschiedet. Es folgte 2001 eine überarbeitete Version mit verbesserter Funktionalität des Standard-Hot-Plug-Controllers (SHPC). Für den PCI-Express-Bus startete die Entwicklung der Spezifikationen für das PCI Express Native Hot Plug bereits 2002.

Zu den Vorteilen des PCI Express Native Hot Plug zählt die volle Unterstützung von Legacy-PCI-Hot-Plug, basierend auf dem SHPC-Modell. Zusätzlich nutzt es eine Reihe von Programmroutinen, die bereits in aktuellen Betriebssystemen wie Windows 2003 Server und Windows XP implementiert sind. Dabei verzichtet das Native Hot Plug auf herstellerspezifisch angepasste BIOS- und Treiberversionen sowie auf modifizierte Geräte-Controller. Jede PCI-Express-Komponente wie der Root Complex, die Bridge oder der Switch verfügt über einen Hot-Plug-Controller, der unabhängig von Herstellervorgaben nach den PCI-Express-Spezifikationen arbeitet.

Einen weiteren Pluspunkt verbucht das PCI Express Hot Plug durch die so genannten "Power-Budgeting-Funktionen". Ist die Leistungsaufnahme eines PCI-Express-Slots vom Betriebssystem auf einen bestimmten Wert begrenzt oder steht dem System an einem Slot nicht mehr genügend elektrische Leistung für ein Gerät zur Verfügung, erkennt PCI Express Native Hot Plug diesen Zustand. Es überträgt diese Informationen an den Systemadministrator, der entsprechende Maßnahmen einleiten kann.

Demgegenüber steht das PCI Hot Plug mit seiner nicht standardisierten und komplexen Funktionalität. Die zentrale Steuerung der PCI-Slots übernimmt ein externer Hot-Plug-Controller. Zusammen mit dem speziell angepassten ACPI-BIOS des Herstellers sind der Controller und das BIOS in der Lage, bestimmte Hot-Plug-Geräte in den PCI-Steckplätzen zu erkennen und entsprechende Funktionsabläufe ebenfalls nach Vorgaben des Herstellers zu starten.

Im Vergleich zu PCI Hot Plug bietet das standardisierte PCI Express Native Hot Plug für den Administrator entscheidende Vorteile bei der Systemverwaltung. Entsprechen die verwendeten Komponenten dem PCI-Express-Standard, so sind keine besonderen Herstellereigenschaften bei der Nutzung der Funktion zu berücksichtigen. Wird zum Beispiel ein Native-Hot-Plug-Gerät in einen PCI-Express-Slot gesteckt, signalisiert das ACPI-BIOS diesen Zustand direkt dem Betriebssystem. Dieses löst definierte Treiber-Service-Interrupts aus und startet entsprechende Hot-Plug-Funktionen, die das Betriebssystem bereits unterstützt.

PCI-Express-Grafik-Interface

Die Tage des AGP-Connectors sind gezählt. Schon Anfang 2004 sollen erste Mainboards mit PCI-Express-Unterstützung auf den Markt kommen. Dann wollen auch Grafikchip- und Grafikkartenhersteller wie ATI, NVIDIA und 3DLabs mit entsprechenden Produkten aufwarten.

Den PCI-Express-Grafikport wird es in einer x16-Link-Ausführung vom Start an geben. Diese Konfiguration ermöglicht eine theoretische effektive Bandbreite von 3,73 GByte/s je Richtung. Demgegenüber steht das AGP-8x-Interface mit 1,99 GByte/s. Die Anzahl der Anschlüsse steigt von 132 Pins beim Universal-AGP- auf 164 Pins beim PCI-Express-Stecker.

Ein Vorteil der neuen PCI-Express-Bus-Technologie ist das unkomplizierte Routing der Leitungen. Nur das einzelne Leitungspaar muss absolut symmetrisch und gleich lang layoutet sein. Bei der Länge der verschiedenen Leitungspaare lässt die Spezifikation mehr Spielraum zu, da Clock- und Dateninformation über jedes Leitungspaar übertragen werden und somit das Timing unkritisch ist. Die AGP-Architektur besteht aus getrennten Daten- und Strobe-Leitungen, die miteinander korrelieren. Um die verschiedenen Signallaufzeiten der einzelnen Leitungen zu kompensieren, ist eine komplexe und exakt definierte Leiterbahnführung (Serpentinen-Routing) notwendig.

Die Spannungsversorgung des Interface beschränkt sich auf 3,3 und 12 V, die herkömmliche AGP-Schnittstelle verlangt zusätzlich eine 5- und 1,5-V-Versorgung.

Max. Leistungsaufnahme der PCI-Express-Slots im Überblick

PCI-Express-Formfaktor

Leistungsaufnahme Standardsteckkarte

Leistungsaufnahme Low-Profile-Steckkarte

Die mit (1) gekennzeichneten Werte verwendet PCI Express während der Initialisierungsphase. Nach der Konfiguration als Highpower-Gerät arbeitet PCI Express mit dem für die Komponente notwendigen höheren Wert.

PCI Express x1

10 W (1) / 25 W

10 W

PCI Express x4/x8

25 W

10 W

PCI Express x16

25 W (1) / 75 W

25 W

Der PCI-Express-Slot für Grafikkarten kann bis 75 Watt an elektrischer Leistung bereitstellen. Dagegen liefert der Standard-AGP-Port laut Spezifikation nur maximal 25 Watt. In der AGP-Pro-Ausführung stellt er je nach Version auch 50 und 110 Watt zur Verfügung. Eine PCI-Express-Pro-Version befindet sich noch in der Entwicklungsphase des PCI-SIG-Konsortiums.

Mini-PCI-Express

Mini-PCI-Express basiert auf dem PCI-Express-Standard. Die nicht für den End-User konzipierte Schnittstelle soll spezielle Onboard-Erweiterungen wie WLAN oder Modem in Notebooks und PCs aufnehmen. Mini-PCI-Express soll Mini PCI ersetzen.

Zu den gravierenden Änderungen gegenüber einem herkömmlichen Mini-PCI-Einschub Type III zählt der halbe Formfaktor einer Mini-PCI-Express-Karte. Darüber hinaus hat sich die theoretische Daten-Performance des neuen Interface von 127,2 MByte/s auf 596 MByte/s (eine PCI-Express-Lane mit einer Taktfrequenz von 2,5 GHz) erhöht. Diese hohe Bandbreite bei der Datenübertragung ermöglicht der Umstieg von der parallelen PCI- auf die serielle PCI-Express-Technologie.

Um eine hohe Flexibilität des Mini-PCI-Express-Interface zu gewährleisten, haben die Entwickler zusätzlich zum PCI-Express-Bus auch einen SM-Bus und einen USB-2.0-Bus integriert. Insgesamt verfügt die Mini-PCI-Schnittstelle über 52 Steckkontakte. Der Abstand der einzelnen Pins beträgt 0,8 mm. Das Interface liefert über die 3,3-V-Kontakte 750 mA und über die 1,5-V-Kontakte 375 mA an Strom.

Die endgültige Spezifikation für das Mini-PCI-Express-Interface will das PCI-SIG-Konsortium noch 2003 verabschieden. Erste Produkte mit dieser Schnittstelle sollen in der zweiten Jahreshälfte 2004 auf den Markt kommen.

ExpressCard

ExpressCard ist die nächste Evolution des PC-Card-Standards auf Basis von PCI Express. Die PCMCIA Trade Association verabschiedete die unter dem Code-Namen NEWCARD entwickelte ExpressCard-Spezifikation 1.0 im September 2003. Der ExpressCard-Standard löst mit höherer Performance und kleinerem Formfaktor die bisherigen PC Cards in Notebooks ab und soll auch in PCs zum Einsatz kommen.

Die höhere Bandbreite garantiert beim ExpressCard-Standard die PCI-Express-Technologie. Wahlweise kommt USB 2.0 zum Einsatz. Die universellen ExpressCard-Einsteckplätze verfügen über genügend Kontakte für beide Varianten und unterstützen jeweils beide Bussysteme. Künftige Notebooks oder PCs benötigen keinen zusätzlichen Controller für die Ansteuerung der ExpressCard: PCI Express und USB 2.0 zählen dann zu den Standard-Features der Systemchipsätze. Notebooks mit PC-Card-Steckplätzen müssen noch einen eigenen PC-Card-Controller nutzen - der zusätzliche Kosten verursacht.

Die ExpressCard-Spezifikation 1.0 definiert zwei Formfaktoren: Den ExpressCard/34 mit einer Breite von 34 mm und den ExpressCard/54 mit 54 mm Breite. Letztere entspricht der Breite einer herkömmlichen PC Card und nimmt beispielsweise entsprechende Festplatten auf. Als Steckplätze sind ebenfalls beide Formfaktoren vorgesehen. Allerdings kann der universell einsetzbare ExpressCard-Slot/54 auch 34er ExpressCards aufnehmen. Die Höhe der ExpressCards beträgt standardmäßig 5 mm bei einer Länge von einheitlich 75 mm.

Mit der ExpressCard-Spezifikation 1.0 bietet die PCMCIA erstmals einen gemeinsamen Standard für Erweiterungskarten an, der für Notebooks und PCs gilt. Die aktuellen PC-Cards haben sich ausschließlich in den mobilen Rechnern durchgesetzt. Ähnlich wie USB 1.1/2.0 soll ExpressCard künftig beide Gattungen verbinden und somit eine höhere Funktionalität bieten. Neben der PCMCIA Trade Organisation unterstützen Intel, Microsoft, Dell, Lexar Media und SCM Microsystems die Entwicklung von ExpressCard. Die Industriegruppen USB-IF und PCI-SIG arbeiten auf Grund ihrer Interfaces ebenfalls am Erweiterungsstandard mit.

Erste ExpressCard-Devices wird es laut PCMCIA in der zweiten Jahreshälfte 2004 zu kaufen geben. Dann soll auch bereits eine breite Infrastruktur von Systemen mit PCI-Express-Chipsätzen existieren, die ExpressCard-Komponenten direkt unterstützen.

Update: Fazit

Die grundsätzlichen Vorteile von PCI Express liegen in der Skalierbarkeit, der Software-Kompatibilität zu PCI und dem universellen Einsatz wie zum Beispiel im Server- und Workstation-Bereich. Denn je nach benötigter Bandbreite können mehrere Lanes parallel an einem Port zusammengeschaltet werden. Die Minimalkonfiguration mit einer Lane erreicht 2,5 Gbit/s je Richtung. Die Entwickler halten sogar eine Vervierfachung der Übertragungsleistung für möglich. Allerdings relativiert der 20 Prozent geringere Anteil an Nutzdaten - bedingt durch das 8B/10B-Kodierverfahren - die hohe Übertragungsleistung.

Darüber hinaus lässt sich PCI Express nicht nur als I/O-Verbindung für Steckkarten, sondern auch als Chip-to-Chip-Interconnect einsetzen. Durch das "serielle" Bussystem und das besonders aufwendige Übertragungsprotokoll mit 8B/10B-Kodierung entstehen aber hohe Latenzzeiten bei der Datenübertragung, so dass PCI Express als Prozessor- oder Speicherbus nicht in Frage kommt. Hier hat HyperTransport Vorteile, da dieser Ballast fehlt. Auch als Basis für den Ersatz der AGP- und der Mini-PCI-Schnittstelle sowie des PC-Card-Interfaces wird die neue Bustechnologie genutzt. Zusätzlich soll nach Intels Plänen die weiter führende Entwicklung von PCI Express Advanced Switching unter dem Namen PCI AS in naher Zukunft sogar als Datenbus für Netzwerkprozessoren zum Einsatz kommen.

Ein weiterer Pluspunkt von PCI Express sind niedrige Kosten durch die geringe Leiterbahnanzahl. Auf der anderen Seite verlangt PCI Express eine neue Verbindungsarchitektur auf den System-Boards und neue Steckkarten, wie zum Beispiel Grafikkarten. Zu beachten ist, dass PCI-X als abwärtskompatible Variante zu PCI verfügbar ist und mit PCI-X-1066 noch genügend Leistungspotenzial für künftige Systemlösungen bietet. So wird es PCI Express in der Einführungsphase schwer haben, sich gegen die etablierten Busarchitekturen und die installierte Basis von Steckkarten durchzusetzen. Allerdings stehen die Vorzeichen nicht schlecht, denn mittlerweile hat jeder namhafte Chipsatzhersteller einen PCI-Express-Chipsatz für das Jahr 2004 angekündigt. Auch die Steckkartenlieferanten stehen mit entsprechenden Produkten für PCI Express bereits in den Startlöchern. (hal)