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 |