PCI Express

(noch im Aufbau)

PCI Express (PCIe oder PCI-E) ist ein Kommunikationsstandard zur Erweiterung von Computer-Systemen, z.B. durch Festplatten, Grafikkarten, WLan-Module

PCIe ist der Nachfolger des PCI-Anschlusses und sehr effektiv, da die angeschlossenen Geräte direkt mit der CPU/dem Chipsatz kommunizieren.
Verzögerungen aufgrund zwischengeschalteten Chips o.ä. gehören damit der Vergangenheit an.


Eine übliche Anschlussbezeichnung kann wie folgt lauten:
PCIe 3.0 x16

Dies steht für:
- Protokoll: PCIe (oder PCI-E)
- Version: 3.0
- Lanes: 16 (benötigte bzw. zur Verfügung gestellte Lanes)

PCIe kann z.B. über die Schnittstelle M.2 zur Verfügung gestellt werden.


Welche Rolle spielen die Lanes?

Zuerst eine kleine Einführung:
Während das Bussystem/Protokoll (hier: PCIe) mit einer Autobahn vergleichbar ist, welche wiederum mehrere Straßen enthält, stellen die Lanes die Straßen dar.
Dabei benötigt jedes Gerät auf der PCIe-"Autobahn" eine bestimmte Anzahl an Straßen (Lanes), um die gesamte Geschwindigkeit (Performance) nutzen zu können.
Der Kauf eines schnellen Gerätes macht also keinen Sinn, wenn dieses aufgrund zu wenig verfügbarer Lanes nur mit geringerer Geschwindigkeit Daten austauschen kann.

Lanes spielen somit in Bezug auf die Performance eine sehr wichtige Rolle.

Je nach verwendeter PCIe-Version wird die Verwaltung der Lanes von unterschiedlichen "Verwaltungseinheiten" übernommen, weshalb hier getrennt geschaut werden muss:

Bezeichnung Verwaltungseinheit
CPU Chipsatz
Gerät (Beispiel) Intel Core 4. + 5. Generation Intel Z97
PCIe-Version (Beispiel) 3.0 2.0
Lanes 16 Lanes, aufgeteilt wie folgt:
1x16, 2x8, 1x8 und 2x4
8 Lanes
Geschwindigkeit pro Lane 8 Gb/s 5 Gb/s
Gerät mit max. 16 Gb/s benötigt somit 4 Lanes


Durch ein geschicktes Mainboard-Layout kann somit die Anzahl der verfügbaren Lanes erhöht werden, sodass gleichzeitig eine höhere Geschwindigkeit erzielt werden kann.

Dabei spielt es i.d.R. keine Rolle, wie die PCIe-Geräte angebunden sind (z.B. per M.2-Schnittstelle).

... wieviele der max. verwendbaren Lanes tatsächlich zur Verfügung stehen, kann vom Mainboard (bzw. dessen Konfiguration) beschränkt sein

Wichtig: unabhängig davon, ob eine Lane tatsächlich Daten überträgt, gilt sie als belegt, sobald ein Gerät daran angeschlossen ist. Sind alle Lanes belegt und es wird ein weiteres Gerät angeschlossen, werden die Lanes neu verteilt, wodurch evtl. nur noch die Hälfte der benötigten Lanes dem angeschlossenen Gerät zur Verfügung stehen, wodurch dieses nur noch halb so schnell läuft.

kleines Beispiel anhand meinem Laptop:

CPU: Intel Core i7-10750H
Chipsatz: Intel HM470 (ID9B54)
Mainboard: LNVNB161216 (U3E1) (LENOVO)

angeschlossene PCIe-Geräte:
- 512GB SSD M.2 2242 PCIe NVMe 3.0x4
- NVIDIA GeForce GTX 1650 Ti (PCIe v3.0 x16)

verfügbare Schnittstellen (Mainboard):
- HDD / SATA 6.0Gb/s, 2.5"

Bezeichnung PCIe-Controller (Verwaltungseinheiten)
CPU Chipsatz
Gerät Intel Core i7-10750H Intel HM470 (ID9B54)
PCIe-Version 3.0 3.0
Lanes 16 Lanes, aufgeteilt wie folgt:
1x16, 2x8, 1x8 und 2x4
16 Lanes
x1, x2, x4
Geschwindigkeit pro Lane 8 Gb/s 8 Gb/s
Verwendet: 16 Lanes für:
- NVIDIA GeForce GTX 1650 Ti
4 Lanes für:
- 512GB SSD M.2
Noch verfügbar 0 Lanes 12 Lanes
Anwendungsbeispiele i.d.R. Grafikkarte SATA (Express)-Ports, M.2-Ports, USB (3.1) -Controller, Netzwerk, LAN, WiFi, Bluetooth, etc.
 

Da nur noch auf dem Chipsatz 12 Lanes übrig sind, wovon pro Schnittstelle max. 4 Lanes ansprechbar sind, macht es keinen Sinn, ein PCIe-Gerät mit mehr als x4 zu kaufen, obwohl noch 12 Lanes übrig wären.
Die max. Geschwindigkeit beträgt somit bei PCIe 3.0 x4: 3,2 GByte/s, hiervon wären noch 3 möglich (12 Lanes / 4 Lanes = 3 Schnittstellen).

Der im Mainboard-Handbuch beschriebene HDD-Anschluss ist nicht weiter beschrieben, sodass man nicht weiß, welche Spezifikation der Anschluss hat.
Aufgrund der noch verfügbaren Lanes kann es aber max. folgende Spezifikation sein: PCIe 3.0 x4., welcher 32 Gb/s zur Verfügung stellt. Da jedoch lediglich 6 Gb/s angegeben werden, handelt es sich hier um irgendeine Modifikation:

Besitzt ein Mainboard mehr u./o. andere PCIe-Lanes, dann liegt dies daran, dass die „echten“ Lanes modifiziert werden.
So werden z.B. mittels einer „PCIe Bridge“ (ASM1187) aus einem PCIe (x1) plötzlich 7 PCIe-Slots (x1). Die maximale Bandbreite wird hierdurch nicht für einen Slot reserviert, sondern auf 7 Slots aufgeteilt, wodurch es zu Engpässen kommen kann.
Beim ASM1187 kommt noch hinzu, dass die Endgeräte nur mit PCIe v2.0 angesteuert werden, obwohl der ASM1187 selbst mittels v3.0 angeschlossen ist.
D.h. PCIe v3.0 x1: ca. 1 GByte/s, während die angeschlossenen Geräte „nur“ max. 500 MB/s übertragen können, d.h. deren Geschwindigkeit wird halbiert - sofern in Summe mit den anderen angeschlossenen Geräten nicht die 1GB/s ausgereizt werden, sonst nimmt die Geschwindigkeit noch weiter ab.

Auch können die vorhandenen Lanes „geschaltet“ werden. Als Beispiel dient ein PCIe-Slot mit 4 Lanes (x4), wobei die 2. und 3. Lane für zwei weitere Slots (jeweils x1) zur Verfügung steht. Werden die zwei Slots mit jeweils x1 nicht verwendet, stehen am PCIe-Slot mit den 4 Lanes (x4) alle 4 Lanes zur Datenübertragung zur Verfügung. Wird jedoch mind. nur an einem der zwei Slots mit 1 Lane (x1) ein Gerät angeschlossen, so werden aus den 4 Lanes plötzlich nur noch 1 Lane (x2 und x3 gibt es ja nicht!), wodurch sich die Geschwindigkeit auf nur noch 25% reduziert hat!

Es sollte daher nicht nur auf die Anzahl der PCIe-Schnittstellen geachtet werden, sondern auch wie diese angesteuert bzw. mit CPU/Chipsatz verbunden sind.
Bei mehreren verfügbaren PCIe-Slots kann es sich somit sehr lohnen, einen bestimmten Slot zu vermeiden und statt dessen einen anderen zu verwenden…

Zusatz-Infos:

PCIe-Geschwindigkeiten:

Version Bandbreite pro Lane PCIe x1 PCIe x4 PCIe x8 PCIe x16
1.0 2,5 GBit/s 250 MByte/s 1 GByte/s 2 GByte/s 4 GByte/s
2.0 5 GBit/s 500 MByte/s 2 GByte/s 4 GByte/s 8 GByte/s
3.0 8 GBit/s ca. 1 GByte/s ca. 4 GByte/s ca. 8 GByte/s ca. 16 GByte/s
4.0 16 GBit/s ca. 2 GByte/s ca. 8 GByte/s ca. 16 GByte/s ca. 32 GByte/s



Ausführungszeit: 0,389sek
...bis Ausführung: 0sek
RAM: 3.04%