PCI- und PCIe-Standard

PCI und PCIe – “Peripheral Component Interconnect (Express)”
Auf deutsch: (Express-)Verbindung zu Peripheriegeräten

PCIe-Slots im Größenvergleich: x1 bedeutet 1 Lane, x4, x8 und x16 entsprechend mehr Lanes

PCIe-Slots im Größenvergleich:
x1 bedeutet 1 Lane, x4, x8 und x16 entsprechend mehr Lanes

Im Regelfall wird der 16x (sprich: 16-fach) PCIe-Slot in den die Grafikkarte eingesteckt werden kann, genauso wie der AGP-Slot, von der Northbridge kontrolliert. Die anderen PCI-Slots (1x, 4x, 8x) sind ein Fall für die Southbridge.

Ein weiterer Unterschied zwischen AGP und PCI ist die Art der Datenübertragung, welche bei AGP parallel (siehe vorangegangene Berechnung) und bei PCIe seriell ist.

Die Berechnung der Datenbandbreite muss entsprechend anders aussehen. Die serielle Datenübertragung ist “skalierbar”, das heißt im Falle von PCIe, dass die Datenübertragung in mindestens eine, im Normalfall mehrere, serielle sogenannte Lanes (dt. Fahrban, Spur) aufgeteilt sind. Die Datenbandbreite einer solchen Lane ist je nach PCIe-Standard spezifiert. Bei Grafikkarten liegt der PCIe-Standard 3.0 zugrunde. Eine Lane ist hier mit 985 MB/s angegeben. Aufgrund der Skalierbarkeit kann dieser Wert mit der Anzahl der Lanes multipliziert werden.

Bei PCIe 3.0 wäre die Berechnung der Übertragungsleistung also wie folgt:

985 MB/s * 16 Lanes (wegen PCIe 16x) = 15.760 MB/s

Allerdings sind diese Datenübertragungsraten rein theoretischer Natur. Sie werden in der Praxis niemals erreicht.

Die serielle Datenübertragung produziert einen sogenannten Protokoll-Overhead (dt. Protokollüberhang), der für die Datenübertragung zwar notwendig ist (damit alle Datenwörter richtig zugeordnet werden können), aber für die Nutzerdaten eine Verzögerung darstellt. Bei der seriellen Datenübertragung werden alle Daten hintereinander übertragen. Das heißt, dass das Datenwort, welches bei einer parallelen Datenübertragung eine definierte Breite aufweist (z.B. 32 Bit) bei einer seriellen Datenübertragung durch Start- und Stopbits gekennzeichnet werden muss. (Wenn ich alle Daten hintereinander durch eine Leitung schicke, muss ich dem Empfänger natürlich sagen, wann das erste Wort zu Ende ist, das zweite Wort anfängt, endet, usw.). Diese sogenannte Präambel (“Einleitung”), welche eine Datenübertragung einleitet (und auch die Kennzeichnung vor dem Ende eines Datenworts), stellt den besagten Overhead (also Überhang) dar.

Realistischerweise sollte man also für eine serielle Datenübertragung immer einen prozentualen Teil der Bruttodatenrate für den Overhead abziehen, um zur Nettodatenrate zu kommen. Bei PCIe 2.0 sind dies (laut Internet!) ca. 20% Overhead und bei PCIe 3.0 ca. 1,6%. Die Taktfrequenz kann bei einer seriellen Datenübertragung also nicht mehr als Berechnungsgrundlage herangezogen werden, da die Signalverarbeitung anders ist.

Die Geschwindigkeit eines PC-Systems hängt aber nicht nur von den Einzelkomponenten ab, sondern auch von ihrer Verbindung. Hier sind die Busbreiten, sowohl des Adress- als auch des Datenbusses ausschlaggebend. Es ist anzumerken, dass sich die Angabe “64-bit-System” im Regelfall auf die Datenbusbreite bezieht. Historischerweise kann man sagen, je mehr Leitungen man hat auf die man gleichzeitig Daten übertragen kann, umso schneller ist das System.

Der Adressbus hingegen hat nichts mit der Arbeitsgeschwindigkeit des Rechners zu tun. Hier wird lediglich darüber Aufschluss gegeben, wie viel z.B. Arbeitsspeicher oder Festplattensektoren adressierbar sind. In Fachkreisen ist auch oftmals von allozieren (= benennen, adressieren) die Rede. Übliche Werte für heutige PC-Systeme sind 36 Adressleitungen und sinngemäß 64 Datenleitungen. Wie viel Hauptspeicher könnte also demnach mit 36 Adressleitungen alloziert werden? (Kam schon mal in IHK-Prüfung dran.)

36 Leitungen, die gleichzeitig je einen von 2 Zuständen (0 oder 1) annehmen können, bedeuten, dass man 236 Speicherzellen die je 1 Byte groß sind gleichzeitig ansprechen kann (Mein Signal aus lauter Nullen und Einser kann also 36 Stellen lang sein = 236 Byte).

Zur Übersichtlichkeit würde man das in GiB angeben (1 GiB = 10243 Byte):

236 B / 10243 B = 64 GiB

Bei einer Adressleitung weniger, lässt sich nur noch die Hälfte des Arbeitsspeichers allozieren (235 B / 10243 B = 32 GiB).

In einem PC-System gibt es neben Adress-, Daten- und Steuerbus auch noch die Bussysteme für die Expansion Slots. Während die vorher genannten Busse eher für intern Abläufe wichtig sind, so sind die Expansion Slots wie AGB-Bus, PCI-Bus, PCIe-Bus etc. mehr für den Anschluss externer Geräte wichtig, die sich zwar noch innerhalb des PC-Gehäuses befinden, aber nicht fest mit dem Motherboard verlötet sind (Grafikkarten, Netzwerkkarten, Festplatten etc.), und deshalb für die Systeminternen Abläufe nicht als notwendig anzusehen sind.

Da ein PC-System nach dem EVA-Prinzip (Eingabe – Verarbeitung – Ausgabe) arbeitet, betreffen die internen Bussysteme vorwiegend die Verarbeitung.

Die Bussysteme für Expansionsgeräte sind demzufolge nur notwendig, um ggf. zusätzliche Ein- bzw. Ausgabemöglichkeiten (Grafikkarte, USB-Geräte, serielle Schnittstellen etc.) zu erhalten.

Der verbreitete Standard für Erweiterungskarten ist der PCI- bzw. PCIe-Standard (PCI Express). Der PCI-Standard arbeitet mit einer parallelen Datenübertragung, zumindest beim PC. Ein PCI-Steckplatz mit 64 Bit war beim Mac verbaut, zum Beispiel beim Mac G4. In PCs war der PCI-64-Standard meist bei Multiprozessor-Boards zu finden. Bei diesen waren meist RAID-Controller mit hoher Leistung verbaut.

Nachdem der PCI-Standard vom PCe-Standard abgelöst wurde, wurden auch neue Berechnungen zugrunde gelegt. Im Grunde ist der PCIe-Standard, welcher eine serielleDatenübertragung nutzt, dem PCI-Standard angelehnt. Das Betriebssystem behandelt beide Systeme gleich, das heißt es lassen sich aufgrund der Hardwareerkennung im Betriebssystem keine Rückschlüsse auf den Standard ziehen.

PCI-und-PCIe-SchemaDer Unterschied beider Standards sind die Übertragungsarten:
PCI überträgt das Signal über 32 parallele Datenleitungen von einem Punkt aus zu den einzelnen Slots (“Point-to-Multipoint”), PCIe dagegen überträgt die Daten seriell von eigenen Punkten zu den jeweiligen Slots (“Point-to-Point”). Daher heißt die Bridge hier Switch (dt. “Schalter”).

Die Einteilung erfolgt bei PCIe in sogenannten Lanes. Jede dieser Lanes hat eine (je nach Standard höhere) skalierbare, theoretische Datenübertragungsleistung. Das heißt, je nachdem, wie viele Lanes zur Verfügung stehen, muss die Übertragungsrate multipliziert werden. Zu beachten ist, dass auch sogenannte O-Board-Geräte diesen PCIe-Standard benutzen, obwohl offensichtlich kein Expansions-Slot zur Verfügung steht. Im Betriebssystem werden daher, obwohl vielleicht nur 3 Expansions-Slots auf dem Mainboard vorhanden sind, dennoch z.B. 3 PCIe-Host-Controller angezeigt.

In einer vergangenen IHK-Prüfungsfrage hieß es sinngemäß:

“Auf einem Mainboard ist folgendes angeschlossen: ein USB-3.0-Controller (Übertragungsleistung 5 GBit/s) über PCIe 1x, ein PCIe-Slot Version 1.5 (250 MB/s). Reicht die Aufnahmeleistung des PCI-Slots aus, um die vom USB-Controller gelieferte Übertragungsleistung auszunutzen?”

So kompliziert die Aufgabe auch scheinen mag; wenn man sich die gegebenen Fakten herausgeschrieben hat, wird klar: Es geht lediglich um die Umrechnung der Einheit GBit/s in MB/s oder umgekehrt.

Dazu muss man nur wissen: 8 Bits sind 1 Byte!

Lösungsweg 1:
5 GBit/sek. / 8 = 650 MB/sek. Übertragungsleistung vom USB-Controller. Der PCIe-Slot kann aber nur 250 MB/sek. verarbeiten. Also reicht die Leistung nicht aus.

Lösungsweg 2:
250 MB/sek. * 8 = 2000 MBit/sek. (PCIe 1.5 1x)
5 GBit/sek. = 5000 MBit/sek. (USB 3.0)
2000 MBit.sek < 5000 MBit/sek., also reicht die Übertragungsgeschwindigkeit nicht aus. Man bräuchte mindestens PCIe 3x, also einen Slot mit mindestens 3 Lanes, oder einen neueren PCIe-Standard.

PCIe-Raten

PCIe-Übertragungsraten (Wikipedia)

Ein weiteres Beispiel:
Sie möchten eine Netzwerkkarte mit einer Übertragungs-geschwindigkeit von 10 GB/s in Ihr PC-System einbauen. Welchen PCIe-Slot benötigen Sie dafür auf dem Mainboard (vorausgesetzt, die Netzwerkkarte unterstützt ihn)?

10 GBit/s / 8 = 1,25 GB/s = 1250 MB/s (benötigt also die LAN-Karte).

Aus der nebenstehenden Tabelle entnehmen wir folgende Geschwindigkeiten:

PCIe 3.0 1x = 985 MB/s (zu niedrig)
PCIe 3.0 2x = 1.969 MB/s (reicht aus)
PCIe 2.0 2x = 1.000 MB/s (zu niedrig)
PCIe 2.0 4x = 2.000 MB/s (reicht aus)

kopiert von Simon: Link

Ein Gedanke zu „PCI- und PCIe-Standard

  1. Alex Beitragsautor

    Worte werden in der Regel in Gruppe zu je 16 Bit (2 Byte) gruppiert. Aber auch das muss nicht immer so sein. Denn die Wortbreite (Anzahl der Bits) hängt von der Verarbeitungsbreite des Rechners ab.

    Beispiel: 16-Bit-Rechner
    Wort: 16 Bit / 2 Byte (Datentyp: Word)
    Doppelwort: 32 Bit / 4 Byte (Datentyp: DWord)
    Quadwort: 64 Bit / 8 Byte
    Halbwort: 8 Bit / 1 Byte
    Beispiel: 32-Bit-Rechner
    Wort: 32 Bit / 4 Byte (Datentyp: Word)
    Doppelwort: 64 Bit / 8 Byte (Datentyp: DWord)
    Quadwort 128 Bit / 16 Byte
    Halbwort 16 Bit / 2 Byte

    Quelle: http://www.elektronik-kompendium.de/sites/com/1702271.htm

Schreibe einen Kommentar