Grundlagen PCI-Express



Einleitung

Modernere Computer ab 2004 und Computer der heutigen Zeit besitzen mehrere PCI-Express-Slots. PCI-Express steht für "Peripheral Component Interconnect" Express und wird oftmals mit PCIe oder mit PCI-E abgekürzt. PCI-Express ist der Nachfolger des AGP- und PCI-Steckplatzes und den gibt es derzeit in der Version 2.0.
Der PCI-Express seitens AMD wird seit 2004 unterstützt. Der erste AMD-Chipsatz, der PCI-Express unterstützt hat ist der AMD 480X mit der ATI SB600-Southbridge. nVIDIA brachte zeitgleich den nForce 4-Chipsatz auf den Markt, der auch erstmals PCI-Express Unterstützung bietet. Auch VIA war im Chipsatzmarkt mit dem VIA K8T800 vertreten, der allerdings seine Bedeutung durch fehlende Multi-GPU-Anbindung verlor. SLi wurde derzeit nur auf bestimmten nForce-4 Mainboards ermöglicht. ATI´s CrossFire wurde auch nur auf ATi- (bzw heute AMD-)Chipsätzen ermöglicht.


Funktionsweise

Die Funktionsweise hat sich im Vergleich zu den Vorgängern grob verändert und ist kein parallel betriebenes Bussytem. Die Datenübertragung funktioniert über serielle Punkt zu Punkt-Verbindungen. Einzelne Komponeten werden über PCIe-Switches miteinander verbunden, welches die Kommunikation mit anderen Geräten nicht beeinflusst. Obwohl der PCIe pysikalisch eigentlich anders aufgebaut ist wie der PCI, ist der PCIe softwareseitig kompatibel zum PCI-Slot und damit muss weder Betriebssystem noch Treiber an das neue Bussystem angepasst werden.

Die Datenübertragung über die Punkt zu Punkt-Verbindung findet mit Lanes über Data Link Layern statt. Was allerdings Lanes sind, werde ich beim drauffolgenden Thema Datenübertragung erklären. Um Daten zu übertragen, werden Data Link Layer Packets (DLLP) zusammengestgellt, die neben den Nutzungsdaten auch noch CRC-Daten übertragen. Sind dabei die zu übertragenen Daten verloren gegangen oder defekt, werden nachträglich neue Daten vom Gerät angefordert. Da die Übertragung der Daten oftmals durcheinander gerät, werden sogenannte Transaction Layer Packets gesendet, die im Header der Daten entschlüsseln können, welches jeweils der Sender oder Empfänger ist und um welche Datenart sich es handelt. Es kommen dabei 3 Arten von Daten auf: Die Writes sind Schreibzugriffe, die Reads sind Lesezugriffe und die Competitions sind die Leseantworten.
Neben den Layern gibt es noch ein Feature, was PCI nicht beinhaltet. Das QoS (Quality of Service) ist ein Feature, welches um es kurz zu sagen die Geräte nach Priorität ordnet. Das Ganze funktioniert mit Virtual Channels (VCs), über Traffic Class, die sozusagen die Priorität zugeordnet sind. Hat ein Gerät eine höhere Priorität, übernehmen anderer Virtual Channel die Datenübertragung. Oft wird eine höhere Priorität der Soundkarte oder einer TV-Karte vergeben, da diese, wenn der Speicher überläuft, die Daten auf dem Weg verloren gehen können und aussetzen kann.


Datenübertragung

Die Datenübertragung der Punkt zu Punkt-Verbindungen findet über Lanes statt. Da der PCIe vollduplex-fähig ist, ist in der Version 1.0 die Übertragungsrate bei 250 MByte/s in einer Richtung in der Theorie möglich. In der Praxis werden immerhin bei langen Datensträngen 240 Mbyte/s in einer Richtung erreicht. In beiden Richtungen zusammen halt 500 MByte/s in der Theorie. In der Version 2.0 werden die Datenübertragungsraten verdoppelt, sodass man bis zu 500 MByte/s in einer Richtung übertragen kann.
Lanes können selbstverständlich gekoppelt werden. Hat man 16 Lanes in der Version 1.0 zur Verfügung, können bis zu 4000 MByte/s übertragen werden. Der veraltete AGP-Slot kann im Vergleich nur maximal 2133 MByte/s an Daten übertragen. Der PCIe 2.0 kann daher sogar 8000 MByte/s an Daten übertragen. Neben den Lanes gibt es auch Links. Die Menge der Links sind vom verbauten Chipsatz abhängig. Die Links zeigen an, wie viele Geräte angesprochen werden können. Hat man beispielsweise insgesammt 20 Lanes auf 5 Links verteilt, dann kann die Aufteilung ungefähr so vorgenommen werden, 16 Lanes werden für die Grafikkarte, 4 mal 1 Lane für weitere Steckkarten zur Verfügung gestellt.
Anders als bei PCI verzichtet PCIe auf Interupts, die schließlich die Ansteuerung der Steckkarten gemanagt hat. Die Links erzeugen sozusagen eine logische Verbindung, die wie geschrieben einen oder mehrere Lanes ansteuern können. Es ist möglich und auch oft die Tatsache, dass die Geräte auch untereinander kommunizieren können. Zum Beispiel können Low-End-Grafikkarten ohne einer SLi- bzw CrossFire-Brücke Multi-GPU-Funktionen ausführen. Die Daten, die normalerweise über die Bridge gesendet werden, sind bei Low-End-Grafikkarten nicht so hoch und können intern über die PCIe-Schnittstelle übertragen werden.

In der nachfolgenden Tabelle sehen Sie die Datenübertragungsrate im Bezug auf die jeweilige Schnittstelle. Als dirtekten Vergleich habe ich den veralteten PCI und den abgeschafften AGP-Slot mit aufgenommen.


Version PCIe 1.0 PCIe 2.0 PCIe 3.0
x1 250 MB/s 500 MB/s 1000 MB/s
x4 1000 MB/s 2000 MB/s 4000 MB/s
x8 2000 MB/s 4000 MB/s 8000 MB/s
x16 4000 MB/s 8000 MB/s 16000 MB/s


PCI 2.0 AGP 1.0 1x AGP 1.0 2x AGP 2.0 4x AGP 3.0 8x
133 MB/s 266 MB/s 533 MB/s 1066 MB/s 2133 MB/s



Slot-Varianten

Der PCI Express wird mit insgesammt 3 Slots geführt. Der PCIe x1 ist der kleinste Slot und kann nur einen 1 Lane alleine ansteuern. Der PCIe x4 kann bis zu 4 Lanes ansteuern und ist im Verhältnis nicht ganz doppelt so groß. Der PCIe x8 gibt es nicht mit einem eigenen Slot und verwendet ihn vom x16. Dabei werden allerdings nur 8 Lanes am PCIe-Slot verwendet. Der PCIe x16 Slot kann bis zu 16 Lanes ansteuern. Mainstream-Multi-GPU-Chipsätze bieten Multi-GPU-Funktionen für 2 Grafikkarten zur Ansteuerung mit jeweils 8 Lanes an. Die Grafikkarten stecken dann jeweils in einem x16-Steckplatz, der nur die Hälfte an Lanes zur Verfügung stellt. Die Limitierung ist durch den jeweiligen Chipsatz gebunden.

PCIe Steckplätze ASUS M2N-E Motherboard



Kompatibilität

PCIe-Grafikkarten sind teilweise etwas wählerisch, wenn es darum geht, in welchem Slot sie verbaut werden sollen. Die nachfolgende Tabelle zeigt die Kombination Grafikkarte mit dem Steckplatz. Praxismäßig gibt es allerdings nur eine Hand voll Grafikkarten, die den PCIe x4 benötigen. Überwiegend werden Grafikkarten für den PCIe x16 gebaut. Low-End-Grafikkarten und Grafikkarten für Small Form Faktor-Gehäuse verwenden überwiegend den PCIe x1

Steckkarte →
Steckplatz ↓
PCIe x1 PCIe x4 PCIe x8 PCIe x16
PCIe x1 ok - - -
PCIe x4 ok ok - -
PCIe x8 ok ? ok ok
PCIe x16 ok ? ok ok

Wie man sicherlich schon im Laufe des Artikels erkennen kann, gibt es den PCIe-Slot schon in der zweiten Version bzw. Generation. Alle PCIe-Steckkarten und die Slots sind auf- und abwärtskompatibel. Es kann allerdings sein, dass man bei Verwendung einer Steckkarte mit der PCIe Version 2.0 in einem 1.0 Steckplatz mit Leistungseinbußen rechnen kann.



Stromversorgung

Die Leistungsaufnahme der Grafikkarten ist in den letzten Jahren ganz schön in die Höhe geschossen, sodass man sich bei der Entwicklung des Steckplatzes schon Gedanken machen musste, wieviel Strom der Steckplatz hergibt. Der PEG-Slot (PCI-Express Grafik)-Slot kann bis zu 75 Watt selbst bereitstellen. Der ausgestorbene AGP-Steckplatz konnte immerhin 25 Watt bereitstellen. Die Pro-Version des AGPs konnte sogar 50 Watt bereitstellen. Da heutige Grafikkarten sehr stromhungrig sind, wurden Zusatzstecker für die Grafikarte entwickelt. Auch bei der GeForce 6800-Serie war mindestens ein Zusatzstecker in der AGP-Variante notwendig. Dieser war allerdings derzeit ein Molex-Stecker, wie er oft bei P-ATA-Geräten verwendet worden ist.
Im Zeitalter der PCIe-Grafikkarten werden für stromhungrigere Grafikkarten Zusatzstecker entwickelt. Dabei werden seit der ersten Generation ein 6-Pin-Zusatzstecker verwendet, der weitere 75 Watt bereitstellt. Oft reicht dies allerdings nicht mehr aus, sodass ein weiterer 6-Pin-Stecker verwendet wird. Beide 6-Pin-Stecker und die Grundversorgung durch das Mainboard stellt der Grafikkarte 225 Watt bereit.

6-Pin-Stromstecker

Im PCI-Express 2.0 Zeitalter wurde ein 8-Pin-Zusatzstecker entwickelt. Dieser kann der Grafikkarte bis zu 150 Watt liefern. Oft kommt es vor, dass der 8-Pin-Stecker nicht alleine ausreichen, sodass der ältere 6-Pin-Stecker zusätzlich verwendet wird. Insgesammt werden dann pro Grafikkarte maximal 300 Watt aus dem Netzteil entzogen. Die nVIDIA GeForce GTX 295 benötigt 289 Watt. Die ATi Radeon HD 4870 X2 gönnt sich immerhin 270 Watt. Die in Kürze erscheinende HD 5970 wird voraussichtlich eine Leistungsaufnahme von 294 Watt haben. Zwei 8-Pin-Zusatzstecker sind allerdings nicht möglich zu verwenden, da dafür keine offizielle Zulassung vorhanden ist.
In der nachfolgenden Tabelle nochmal alle Daten ohne Worte ;-)

8-Pin-Stromstecker

Versorgung PCIe x16 PCIe 1.0 6 Pin PCIe 2.0 8 Pin
max. Stromabgabe 75 Watt 75 Watt 150 Watt
Kombinationen: PCIe + 6 Pin PCIe + 2x 6 Pin PCIe + 6 Pin + 8 Pin
max. Stromabgabe 75 + 75 = 150 Watt 75 + 2x 75 = 225 Watt 75 + 75 + 150 = 300 Watt



Derzeitige Hardware für PCI-Express

Seit wenigen Jahren hat sich der PCI-Express so langsam durchgesetzt. Denn ganz einfach hatte er es denn ja wohl doch nicht. Bedingt durch anfängliche Leistungseinbussen im Vergleich zum AGP-Slot war der Einzug des PCIe-Slots zumindest für die Grafikkarten nicht einfach. Multi-GPU seitens nVIDIA und ATi sorgten dafür, dass sich der PCI-Express dennoch für Grafikkarten gut eignen lässt. Für andere Hadware stand der veraltete aber dennoch ausreichende PCI-Steckplatz im Wege. Inzwischen jedoch ist es wohl so langsam "in", seine restliche Hardware nach und nach auf PCIe umzurüsten. Serial-ATA-RAID-Controller, USB 3.0, Solid-State-Dics (SSDs) und Gigbit-LAN provitieren auf jeden Fall vom PCI-Express-Slot. Ich habe mal eine kleine Hardwaresammlung mit Bildern zurecht gesucht und benannt. Es ist zu erwarten, dass auch immer mehr Hardware den PCI-Express-Bus verwenden wird.

OCZ miniPCI-Express SSD
OCZ miniPCI-Express SSD
Intel® Gigabit CT Desktop Adapter
Intel® Gigabit CT Desktop Adapter
HighPoint RocketRAID 2310
HighPoint RocketRAID 2310
ATi Radeon HD5770
ATi Radeon HD5770
Sharkoon USB3.0 Host Controller Card
Sharkoon USB3.0 Host Controller Card
AVerMedia AVerTV Satellite Trinity
AVerMedia AVerTV Satellite Trinity
Creative X-Fi Titanium
Creative X-Fi Titanium
nVIDIA GeForce GTX 295
nVIDIA GeForce GTX 295


weiterführende Links:

PCI-Express Spezifikationen
PCI-Express kurz erklärt