Zum Inhalt springen

Peripheral Component Interconnect

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 13. April 2004 um 14:25 Uhr durch Hubi (Diskussion | Beiträge) (Spezifikation neu). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus-Standard zur Verbindung von Peripheriegeräten mit dem Mainboard eines Personal-Computers (ein sog. lokaler Bus). Die Version 1.0 des Standards wurde von der Firma Intel definiert. Heute wird der Standard von einen Konsortium, der PCI Special Interest Group (PCI-SIG, www.pcisig.com), definiert, bei dem Firmen und Organisation Mitglied werden können. Die aktuelle Version der PCI-Spezifikation ist 2.2.

Die Geräte oder Schnittstellen können entweder in Chips auf der Hauptplatine untergebracht werden (die PCI-Spezifikation spricht hier von planar devices) oder auf Erweiterungskarten, die in einen Sockel (Steckplatz) auf dem Mainboard gesteckt werden.

Der PCI-Bus hat den alten ISA-Bus, wie man ihn in älteren PCs fand, ersetzt. Eine PCI-ISA-Bridge erlaubt in PCs, die sowohl PCI- als auch ISA-Steckplätze haben, die Anbindung des ISA-Busses an den PCI-Bus.

Anders als der ISA-Bus ermöglicht PCI die dynamische Konfiguration eines Gerätes ohne Eingriff des Benutzers. Während des Bootvorgangs handeln das BIOS des PCI-Gerätes und das System-BIOS die Ressourcen aus, die das Gerät benötigt. Dies erlaubt die Zuweisung von IRQs und Portadressen entsprechend den örtlichen Gegebenheiten (bei ISA-Karten musste man häufig den zu verwendenden IRQ per Steckbrücke manuell einstellen). Zusätzlich stellt der PCI-Bus eine detaillierte Beschreibung aller verbundenen PCI-Geräte durch den PCI Configuration Space zur Verfügung.

Die PCI-Spezifikation regelt auch die physische Auslegung des Busses (u.a. auch Abstand der Leiterbahnen zueinander), elektrische Eigenschaften, Timing und Protokolle.

Allgemeine PCI-Bus-Spezifikationen

Der PCI-Bus ist ein synchroner Bus mit 33.33 MHz Taktrate, also 30 ns pro Takt. Alle Signale werden nur bei der steigenden Taktflanke zwischengespeichert. Die Signal können über CMOS-Treiber angesteuert werden, so dass der gesamte Stromverbrauch gering ist. Der Bus kann mit bis zu 10 Geräten bestückt werden, wobei zwischen Master (Herr) und Target (Ziel) unterschieden wird. Als Geräte zählen auch Schnittstellen sowie auf der Hauptplatine untergebrachte Geräte, die Verbindung zum Host (PCI/Host-Schnittstelle) oder zu einem eventuell vorhandenen ISA-Bus (PCI/ISA-Schnittstelle). Daneben erlauben Sockel auf der Hauptplatine den Einsatz von Schnittstellenkarten. Falls die Anzahl der Steckplätze nicht ausreicht, können über eine PCI/PCI-Schnittstellen (PCI-PCI-Bridge) weitere PCI-Busse in das System eingebunden werden.

Auf dem PCI-Bus kommuniziert immer ein Master mit einem Target. In vielen PC-Systemen ist der Host der einzige Master. Ein Bus kann aber mehrere Master haben, über einen Arbiter wird ein Master ausgewählt. Der ausgewählte Master kann einen Transfer beginnen, wobei er eine Adresse an die 32 Daten/Adressleitungen und ein Kommando an 4 Kommando/Byte-Leitungen anlegt. Ein zusätzlich Paritätsleitung erlaubt das Erkennen von Fehlern.

Jedem Target werden nach dem Reset vom BIOS Adressbereiche zugeteilt. Über Herstellercodes können Karten eindeutig nach dem Hochfahren eindeutig identifiziert werden. Das Target mit der ausgewählten Adresse im Adressbereich antwortet dann und kommuniziert mit dem Master. Die beiden am häufigsten verwendeten Kommandos sind READ und WRITE. Über die Adress/Datenleitungen werden dann Daten übertragen, wobei die Kommando/Byte-Leitungen zur Auswahl der Bytes im 32-Bit Wort dienen können. Dadurch sind neben 32-Bit auch 16- und 8-Bit Transfers möglich.

Während der Übertragung können in jedem Takt maximal 32-Bit, also 4 Bytes übertragen werden, so dass die Transferrate maximal 133 MByte/s beträgt (4 Bytes in 30 ns). Über Ready-Leitungen kann sowohl der Master als auch das Target signalisieren, dass sie zur Aufnahme eines Datums bereit sind. Falls Master oder Target nicht bereit sind, wird kein Datum übertragen, die Datenübertragung also verlangsamt.

Normalerweise beendet der Master den Datentransfer. Über ein STOP-Signal kann das Target ein Übertragungsende erzwingen. Ein anderer Master kann den Bus über REQ anfordern, wobei die derzeitige Übertragung nach einer vorgegebenen Latenzzeit beendet werden muss und der neue Master den Bus übernehmen kann.


Grundlegende PCI-Varianten

  • PCI 2.2, erlaubt Busbreiten von 64-bit und Übertragungen mit 66 MHz Takt (max. 533 MBit/s)
  • PCI-X, 64-bit Version von PCI 2.2 mit 133 MHz Takt (max. 1.066 MBit/s)
  • PCI-X 266 (PCI-X DDR), PCI-X mit 266 MHz Nominaltakt (max. 2.133 MBit/s)
  • Mini PCI
  • Compact PCI, benutzt Module in Größe einer Kreditkarte und PCI als Back-End

Andere PCI-Varianten

  • PCI-Express (3GIO), ein serieller Bus, der PCI-Signalisierung und -Programmiertechniken verwendet

Powermanagement mit PCI

Die Energiesparfunktionen für den PCI-Bus sind Teil einer optional zu implementierenden Spezifikation, die zeitlich zwischen den PCI-Versionen 2.1 und 2.2 angesiedelt ist. Jedes PM-fähige Gerät hat ein zusätzliches 8 Byte langes Feld im Configuration Space, über das es einerseits mitteilen kann, welche Energiespar-Modi es unterstützt, und andererseits auch entsprechend gesteuert werden kann. Jedes PCI-Gerät kann sich in einem von vier möglichen Operationsmodi befinden (D0-D3). Je höher die Nummer, desto weniger Energie verbraucht das Gerät. Auch wenn ein Gerät nichts von PCI-Powermanagement weiß, unterstützt es die Modi D0 und D3, da diese äquivalent zu an und aus sind. Ob und wieviel Energie in den dazwischen liegenden Modi gespart werden kann, liegt im Ermessen des Hardware-Herstellers. Ein Gerät kann aus einem bestimmten Modus in alle "darunter" liegenden Modi wechseln, sowie aus jedem Modus in den Zustand D0.

Obwohl man Geräte durchaus "zu Fuß" während des laufenden Betriebes in einen anderen Energiesparmodus bringen kann, wird man in den meisten Fällen mit Hilfe von APM oder ACPI einen globalen Energiesparmodus für den Computer setzen, der dann von der Powermanagement-Unterstützung des Betriebssystems eingeregelt wird. In den Modi D1 und D2 besteht für ein entsprechend ausgerüstetes PCI-Gerät die Möglichkeit, zu einem beliebigen Zeitpunkt ein so genanntes Power Management Event Signal (PME) auf den Bus zu legen, das dann an das Powermanagement des Betriebssystems weitergeleitet wird und dazu verwendet werden kann, das System auf Anforderung wieder global "aufzuwecken".

Siehe auch: Accelerated Graphics Port, Extended Industry Standard Architecture, Industry Standard Architecture, Micro Channel Architecture, XT-Bus-Architektur