Grundlagen zum Peripheral-Component-Interconnect-Bussystem

Die PCI-Schnittstelle sorgt für schnelle Netzwerk- und Speicherzugriffe

30.11.2007 | Autor / Redakteur: Hermann Strass und Rainer Graefen / Nico Litzel

Typische PCI-Express-Steckkarte
Typische PCI-Express-Steckkarte

Rechner sind heute die persönliche Schnittstelle zur Datenwelt. Damit der Benutzer nicht bei jedem technischen Fortschritt einen neuen kaufen muss, sind viele Ein-/Ausgabekomponenten (I/O) austauschbar. Möglich machen das PCI-Bussysteme auf der Hauptplatine. Netzwerkanschluss, Grafikausgabe und vor allem der Zugriff auf I/O-intensive Speicheranwendungen lassen sich so mit geringem Aufwand auf den neuesten Stand bringen.

Die flexible Einsetzbarkeit von Intel- und AMD-Rechnern beruht darauf, eine interne Kommunikations-Schnittstelle, den sogenannten Bus, für optionale Erweiterungen bereitzustellen. Komponenten wie Modem, SCSI-Adapter, RAID-Controller oder Netzwerkkarten lassen sich so mit geringem Aufwand auf den neuesten Stand der Technik aufrüsten.

Wurden früher ISA, EISA, Microchannel oder Vesa Local Bus (VLB) auf PC-Hauptplatinen eingesetzt, so dominiert heute der parallele PCI-, PCI-X- sowie der serielle PCIe-Bus die Rechner-Boards. Im Folgenden werden die technischen Merkmale des parallelen und seriellen PCI-Bus’ (Peripheral Component Interconnect) dargestellt.

Auch wenn aktuell fast jede Verbindungstechnik auf den seriellen Datentransport umgestellt wird – die bekannten Beispiele sind ATA auf SATA und SCSI auf SAS –so ist der parallele Betrieb in vielen Fällen vorzuziehen, da ein ähnlicher hoher Datendurchsatz wie im seriellen Betrieb mit niedrigeren Taktfrequenzen und geringeren Störpegeln erreicht wird. Mit der Anforderung an steigende Datenübertragungsraten erhöhen sich beim PCI-Bus allerdings die Probleme des Signal-Übersprechens zwischen den vielen Adress- und Datenleitungen.

Parallel-PCI (PCI)

Der PCI-Bus wurde zunächst für eine Busbreite von 32 Bit – Daten und Adressen nutzen nacheinander die gleichen Leitungen – und für den Betrieb mit einer Taktfrequenz von 0 bis 33 Megahertz definiert. Als Sparschaltung ist der (fast) 0-Megahertz-Betrieb ausdrücklich vorgesehen. Später kamen der Betrieb mit 64 Bit Busbreite und 66 Megahertz Taktrate hinzu und mit PCI-X 133 bis theoretisch 512 Megahertz.

Aufgrund mangelnder Sorgfalt bei den technischen Spezifikationen gab es Schwierigkeiten, die Datenübertragungsrate schnell genug dem Fortschritt in der Chiptechnik anzupassen. In den ersten Spezifikationen hatte man vergessen, die Flankensteilheit (ein bis fünf Volt pro Nanosekunde) formal zu begrenzen. Es gibt für verschiedene Signale unterschiedliche elektrische Spezifikationen und keine einheitliche Bus-Terminierung.

Im Ruhezustand sind meist drei oder sechs Milliampere Ruhestrom definiert. Zum Schalten der hohen kapazitiven Lasten müssen jeweils für einige Nanosekunden Ströme von 44 bis über 200 Milliampere fließen. Daher müssen die Treiber beziehungsweise Empfänger Überspannungen von bis zu etwa elf Volt aushalten (bei fünf Volt Spannungsversorgung). Sinngemäß ergeben sich andere Werte beim ebenfalls definierten 3,3-Volt-Betrieb.

Taktabweichung

Besonders kritisch ist die Begrenzung der maximalen Taktabweichung, auch als Jitter bezeichnet, von nur zwei Nanosekunden im Gesamtsystem (eine Nanosekunde bei den schnelleren Taktraten). Fehlanpassungen der Leitungen sind insofern zu vermeiden. Den Spezifikationen gemäß sind Abschlusswiderstände nur auf der Grundplatine zulässig. Die Werte liegen zwischen 963 Ohm und 2,7 Kiloohm (im Fünf-Volt-Betrieb). Sie sollen, je nach Belastung, durch Steckkarten individuell angepasst werden. Eine entsprechende Formel für die Berechnung der Werte ist in der Busspezifikation abgedruckt. Einige Signale sollen mit ungefähr fünf Kiloohm abgeschlossen werden.

Für den PCI-Bus ist der Signalpegelwechsel über die reflektierte Welle definiert. Ein Wechsel vom hohen zum niedrigen Pegel oder umgekehrt breitet sich vom Treiber über die Busleitung bis zum Busende aus. Aufgrund der Treiberleistung erreicht der Pegel mit der vorlaufenden Wellenflanke aber nur den halben Spannungshub. Am Busende wird das Signal reflektiert und addiert sich zum weiterhin aktiven Signal.

So sehen nacheinander alle Empfänger (beginnend mit dem am Busende) den Pegelwechsel erst mit der zurücklaufenden Welle. Der neue Zustand wird also erst nach einem kompletten Rundlauf der Signalflanke erreicht.

Der PCI-Bus arbeitet synchron. Das heißt, erst wenn alle Adressleitungen einen stabilen Pegel erreicht haben, können Daten übertragen werden. Geschaltet wird mit der steigenden Taktflanke. In der Spezifikation wird auf das Problem der Metastabilität hingewiesen: Zum Schaltzeitpunkt sollten keine undefinierten Pegel anliegen.

Pegelschwankungen und Übertragungsverzerrungen.

Jeder parallele Bus besteht aus einer Vielzahl von Treiber-ICs, die den Strom für Adress- und Datenleitungen liefern. Alle Treiber (meist 16, 32 oder 64) müssen zur gleichen Zeit schalten. Damit wird im Pikosekunden-Zeitraster eine extrem große Menge an Strom benötigt. Da die üblichen Stromversorgungen nicht „unendlich“ Strom bereitstellen und zudem die Leitungen auf der Hauptplatine so schmal wie möglich ausgelegt sind, steigen die Pegel nicht „unendlich“ schnell und steil an. Es kommt zu Pegelschwankungen und Übertragungsverzerrungen. Außerdem ist es schwierig, die Signale so zu übertragen, dass sie gleichzeitig beim Empfänger eintreffen. Die Mäanderform vieler Adressleitungen auf modernen Basisplatinen ist optischer Beweis für andernfalls entstehende unterschiedliche Signal-Laufzeiten.

Selbst Längenunterschiede der Leitungen von wenigen Millimetern auf der Basisplatine (Motherboard) wie auch bei den Steckverbindern sind signifikant. Es müssen also unvermeidbare Zeittoleranzen eingeplant werden. Mit jeder Verdoppelung der Übertragungsrate halbiert sich zudem die Anzahl der Steckplätze, da die Treiberbausteine intensiver belastet werden.

Diese und andere Probleme haben dazu geführt, dass parallele Bus-Systeme hinter der Zunahme bei den Taktraten der Chips zurückbleiben. Daher der massive Übergang zu seriellen Direktverbindungen. Sinngemäß gilt das auch für die PCI-Varianten CardBus, CompactPCI, PMC und XMC.

PCI Express

Streng genommen ist PCI Express (PCIe), ähnlich wie andere serielle Übertragungsverfahren (Ethernet, Infiniband, Fibre Channel), kein Bus, sondern eine Punkt-zu-Punkt- oder Direktverbindung.

PCIe überträgt ein Äquivalent der parallelen PCI-Signale nacheinander über eine serielle Leitung. An beiden Enden der Übertragungsstrecke wird also von parallel nach seriell oder entsprechend in Gegenrichtung umgewandelt.

Für einen einfachen PCI-Bus müssen also 32 Signale nacheinander über eine einzige Leitung gesendet werden. Diese serielle Verbindung muss mindestens 32-mal so schnell getaktet werden wie der parallele Bus, um die gleiche Datenmenge zu übertragen. In der Praxis muss allerdings noch deutlich höher getaktet werden.

Neben den reinen Daten-/Adresssignalen müssen noch weitere Begleitsignale (Sideband Signals, Interrupts usw.) übertragen werden. Aus physikalischen Gründen muss jedes parallele Byte (acht Bit) auf der Übertragungsstrecke als ein Byte mit zehn Bit seriell übertragen werden.

Der 8B/10B-Code von IBM wird schon seit vielen Jahren für den Fibre Channel und auch bei Gigabit Ethernet genutzt. Es muss also mindestens mit dem Faktor zehn umgerechnet werden. Daher entspricht eine einzige PCI-Lane (Kanal) mit 2,5 Gigabit Übertragungsrate einem Parallelbus mit 250 Megabyte Übertragungsrate. Das wäre etwa einem Parallel-PCI mit 64 Bit Busbreite und 33 MHz Taktrate oder 32 Bit mit 66 Megahertz Taktrate vergleichbar. PCIe wird oft gebündelt, wobei auf zwei bis 32 Lanes (also x2 bis x32) parallel übertragen wird. Für Grafikkarten wird meist der x16-Betrieb (4 Gigabyte pro Sekunde) genutzt. Das ist nun kein echter Parallelbetrieb, denn alle Lanes sind unabhängig und eigen-getaktet.

Voll- und halb-duplex

Ein wesentlicher Unterschied zum Parallel-PCI-Bus: Die heute üblichen seriellen Übertragungstechniken sind voll-duplex. Es kann also mit den angegebenen Datenraten gleichzeitig gesendet und empfangen werden. Parallel-Systeme sind hingegen nur halb-duplex. Die Datenrate gilt also nur in eine Richtung oder als Summe für eine Mischung aus Senden und Empfang. Außerdem ist der parallele Bus nur einmal im System vorhanden. Alle Busteilnehmer (Steckkarten) teilen sich die verfügbare Datenrate. Bei PCIe steht jeder Kanal (Lane) oder jedes Kanalbündel (z. B. x4 oder x16) jeweils einem einzigen Gerät zur Verfügung, also immer die gesamte Übertragungsrate.

Besonders wichtig ist die Tatsache, dass es für die Software keinen Unterschied zwischen Parallel-PCI und PCIe gibt. Natürlich ist die Übertragungsrate mit PCIe üblicherweise höher. Praktisch alle PC-Systeme stellen PCI- und PCIe-Steckplätze in unterschiedlicher Anzahl zur Verfügung. So können preisgünstige PCI-Steckkarten weiterhin dort genutzt werden, wo die hohen Übertragungsraten nicht zur Verfügung stehen oder nicht benötigt werden.

Leistung der Mikroprozessoren

Die mit PCIe möglichen hohen Übertragungsraten bei der Parallel-Bündelung von Kanälen ist eine Herausforderung für die heute üblichen Mikroprozessorchips. Bei einer Taktrate von drei Gigahertz und 32 Bit Busbreite im Prozessorchip können gerade mal 96 Gigabit pro Sekunde (9,6 Gigabyte pro Sekunde) bereitgestellt werden. Im realen Betrieb wird also die Datenverarbeitung nicht mit der Datenübertragung Schritt halten. Daher werden für gewöhnlich Puffer gefüllt, die dann als Block übertragen werden.

Durch den Übergang vom Parallel- zum Seriellbetrieb wird die gesamte elektrische Leistung bei der Datenübertragung stark reduziert. Im Parallelbetrieb müssen 32 oder 64 Treiberschaltungen gleichzeitig mit einem Spannungshub von etwa zwei Volt (bei 3,3 Volt oder fünf Volt Versorgungsspannung) „getrieben“ werden.

Beim seriellen Betrieb wird nur ein Treiberpaar je Lane benötigt. Allerdings muss das mit einem Mehrfachen der Taktrate bei einem Paralleltreiber „getrieben“ werden. Allerdings beträgt der Spannungshub hier nur noch etwas mehr als 0,8 Volt. Die Anzahl der Signalleitungen ist bei PCIe ebenfalls deutlich geringer (36), gegenüber mehr als 100 Signalleitungen bei einem 32-Bit-PCI-System.

Echtzeit

Grundsätzlich kann ein Echtzeitbetrieb nicht mit unveränderten PCI-gestützten Systemen erreicht werden. In kritischen Fällen muss durch zusätzliche Hard- und Software oder über verbundene Echtzeitsysteme diese Betriebsart gewährleistet werden. Beispielsweise müssen Video, Sprache oder Filme in Echtzeit übertragen werden, da sonst die Qualität erheblich leidet.

Die reale Welt läuft nicht im Gleichtakt. Ereignisse treten zu unbestimmten, nicht synchronisierten Zeiten ein. In der industriellen Welt wird daher sehr viel mit Interrupts (bis zu etwa fünf Interrupts je Karte) gearbeitet. Die beim PCI nicht gerade effektiven vier Interrupts (alle auf gleicher Ebene) reichen nicht aus. In industriellen Systemen benötigt man oft mehrere hundert Interrupts auf verschiedenen Ebenen. Die Ausweichmöglichkeit „Polling“ (zyklische Abfrage) überlastet das ganze System bereits bei einem sehr groben Zeitraster.

Eine Interrupt-Quelle muss daher indirekt über zusätzliche Abfragen oder Datenübertragungen ermittelt werden. Bei den hier besprochenen seriellen Übertragungssystemen werden keine oder im Falle von PCIe nur selten einige Interrupts übertragen. Echtzeitbetrieb bleibt also weiterhin den Parallelsystemen vorbehalten. Bei den oben genannten Übertragungsarten für Videos werden im Rahmen der Streaming-Technik allerdings nur wenige Interrupts benötigt.

Weiterentwicklung

Parallele und serielle Datenübertragungstechniken haben beide ihre Berechtigung. Historisch gesehen, haben sich bisher beide getrennt voneinander entwickelt. Inzwischen werden aber in fast allen Computersystemen beide Varianten benötigt. Eine Technik löst also die andere nicht ab, sondern beide werden nahtlos integriert.

Werden hohe Datenmengen zwischen vielen Geräten übertragen, dann hat die PCIe-Technik deutliche Vorteile. Bei der Verarbeitung von asynchronen Ereignissen (Interrupts) in Industriesteuerungen wird weiterhin die parallele Technik genutzt. Auf der Ebene der Anwendungssoftware gibt es keine Unterschiede zwischen PCI und PCIe.

Kommentare werden geladen....

Was meinen Sie zu diesem Thema?

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 2009419 / Grundlagen)