mini|hochkant=1.3|5V 32 bit-PCI-2.x Steckplatz mini|hochkant=1.3|universal 3,3V und 5 V 32 bit-PCI-Netzwerkkarte: links das genormte Blech mit der Anschlussbuchse, unten die Kontakte für den Erweiterungsslot direkt auf der Leiterplatte hochkant=1.3|mini|Ethernetkarte (NIC) für den PCI-X-Slot. mini|hochkant=1.3|PCI-X-Riser-Karte mini|hochkant=1.3|PCI-Express- und PCI-Steckplätze auf einer PC-Hauptplatine: von oben nach unten: PCI-Express x4, x16, x1, x16 und konventionelles PCI Peripheral Component Interconnect, meist PCI abgekürzt, ist ein Bus-Standard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Prozessors.

Es gibt zahlreiche Varianten und Einsatzgebiete des Standards (PC, Industrie, Telekommunikation). Die bekannteste Variante kommt hauptsächlich im PC-Umfeld zum Einsatz und heißt offiziell PCI Conventional. Praktisch jeder seit etwa 1994 gebaute IBM-PC-kompatible Computer ist mit meist zwei bis sieben Steckplätzen für PCI-Karten ausgerüstet (ausgenommen Miniatur- und mobile Versionen). Auch einige Computer von Apple (von 1995 bis 2005, später dann PCI Express) und Workstations von Sun besitzen einen PCI-Bus. In die Steckplätze können allerlei Karten vieler Hersteller eingesetzt werden, darunter Netzwerkkarten, Modems, SCSI-Karten, Soundkarten, (ältere oder Zweit-)Grafikkarten, Karten mit einem Parallel-Druckeranschluss oder mit zusätzlichen USB-Steckplätzen. Damit kann ein PC leicht an spezielle Bedürfnisse angepasst werden.

Versionen und Geschichte Version 1.0 des Standards wurde von Intel im Jahre 1991 definiert. Intel unterstützte den VESA Local Bus (VLB) nicht, da dieser speziell auf die 486-Architektur zugeschnitten war und weniger Durchsatz bot. Im Gegensatz dazu kann der PCI-Bus in jeder Architektur eingesetzt werden.

Mittlerweile existieren drei verschiedene Standards: Konventioneller PCI PCI 1.0, vorgeschlagen von Intel 1991 PCI 2.0, eingeführt von PCI-SIG 1993 PCI 2.1, beschlossen im Juni 1995 PCI 2.2, beschlossen im Januar 1999 PCI 2.3, beschlossen im März 2002 PCI 3.0, beschlossen im April 2004 PCI-Extended (PCI-X) PCI-X 1.0, beschlossen im September 1999 PCI-X 2.0, beschlossen im Juli 2002 PCI Express (PCIe oder PCI-E) ursprünglich bekannt als 3GIO PCI Express 1.0, beschlossen Juli 2002 PCI Express 1.1 PCI Express 2.0, beschlossen 2007 PCI Express 2.1 PCI Express 3.0, beschlossen 2010 PCI Express 4.0, beschlossen 2017 PCI Express 5.0, beschlossen 2019 PCI Express 6.0, beschlossen 2022 PCI Express 7.0, geplant für 2025

Der PCI-Bus hat den ISA-Bus und den kurzlebigen VL-Bus, wie man sie in älteren PCs findet, ersetzt. Eine PCI-ISA-Bridge erlaubt jedoch die Anbindung des ISA-Busses an den PCI-Bus. Auf Systemen der Pentium-Generation und neuer ist das die einzige Möglichkeit, ISA-Karten anzubinden, da es sich beim ISA-Bus um den nach außen gelegten Systembus des Ur-PCs handelt. Der PCI-Bus erfüllte die Anforderungen für Grafik-, Netzwerk- und andere Schnittstellenkarten über längere Zeit.

Allerdings war er nach einiger Zeit nicht mehr schnell genug für die damals aufkommenden Grafikkarten mit 3D-Beschleunigung. 1997 etablierte man daher zusätzlich den Accelerated Graphics Port (AGP). Dieser baut auf dem PCI-Bus auf, ist jedoch als Punkt-zu-Punkt-Verbindung mit ergänzenden Seitenkanälen ausgeführt und wurde mittlerweile bis zum 8-fachen seiner ursprünglichen Übertragungsrate weiter entwickelt. Für so gut wie alle anderen Steckkartentypen blieb PCI dagegen bis heute Standard, wurde seit 2005 durch PCI Express ersetzt (siehe unten).

Anders als der ISA-Bus ermöglicht PCI die dynamische Konfiguration eines Gerätes ohne Eingriff des Benutzers. Während des Bootvorgangs analysiert das System-BIOS die vorhandenen PCI-Geräte und weist die benötigten Ressourcen zu. Das erlaubt die Zuweisung von IRQs, Portadressen und Speicherbereichen entsprechend den lokalen Gegebenheiten. Bei ISA-Karten musste man häufig den zu verwendenden IRQ etc. per Steckbrücke manuell einstellen. Zusätzlich stellt der PCI-Bus dem Betriebssystem und anderen Programmen 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 (unter anderem den Abstand der Leiterbahnen zueinander), elektrische Eigenschaften, Timing und Protokolle. Die Geräte oder Schnittstellen müssen nicht unbedingt auf Steckkarten untergebracht werden, sondern können sich auch direkt auf der Hauptplatine des Computers befinden, die Spezifikation spricht hier von planar devices.

Allgemeine PCI-Bus-Spezifikationen 581px|mini|Prinzipielle Darstellung der PCI-Architektur

+ Detektion und Konfiguration von PCI erfolgt über zwei IO-Register Bits Anz.Bits Bereich Beschreibung 32 bit-Port: 0CF8h 0…1 2 0…3 Auswahl der Übertragung: 00 = Configuration PCI-Brücke 01 = Configuration PCI-Einheit 2…7 6 0…63 Auswahl der Registernummer 8…10 3 0…7 Auswahl der PCI Funktion (Registergruppe) 11…15 5 0…31 Adresse der PCI-Einheit, des PCI-Ports;   unbenutzt für Übertragung 00   16…23 8 0…255 Busnummer;   unbenutzt für Übertragung 00   24…31 8 0…255 32 bit-Port: 0CFCh 0…31 32 0…232−1 Lesen / Schreiben der Daten des ausgewählten Registers

Der PCI-Bus ist ein synchroner Bus mit 33,33 MHz (= 30 ns pro Takt) oder nach der 2.1-Spezifikation 66,66 MHz Taktrate, also 15 ns pro Takt. Diese Werte sind Maximalwerte, nach der Spezifikation kann der Takt auch niedriger und zudem variabel sein, beispielsweise zum Stromsparen. Deshalb hat der Bus eine Taktleitung. Alle Signale werden nur bei steigender Taktflanke übertragen (Single Data Rate). Die Signale können über CMOS-Treiber angesteuert werden, daher ist der gesamte Stromverbrauch relativ gering. Der Bus kann mit bis zu 10 Geräten bestückt werden, wobei zwischen Master (Kontrolleur der Übertragung) und Slave (muss vielleicht auf Daten (oder Befehle) warten) unterschieden wird. Ein Master kann bei Bedarf selbst die Kontrolle über Abläufe auf dem Bus übernehmen, was vor allem für Karten mit hohem IO-Aufkommen, wie etwa Netzwerkkarten oder Festplatten-Controller, vorteilhaft ist. Als Geräte zählen auch auf der Hauptplatine untergebrachte Geräte, die Verbindung zum Host (PCI/Host-Schnittstelle) oder zu einem eventuell vorhandenen ISA-Bus (PCI/ISA-Schnittstelle) aufnehmen. Für mehr als 10 PCI-Geräte pro System können über PCI/PCI-Schnittstellen (PCI-PCI-Bridge) weitere PCI-Busse in das System eingebunden werden. Die Datenübertragung läuft parallel ab.

Auf dem PCI-Bus kommuniziert immer ein Master mit einem Slave. Die meisten PCI-Geräte können sowohl als Slave angesprochen werden als auch als Master Transaktionen starten. Über einen Arbiter wird ein Master ausgewählt, der dann die Kontrolle über den Bus hat. Er beginnt einen Transfer, indem er eine Adresse an die 32 Daten/Adressleitungen und ein Kommando an 4 Kommando/Byte-Leitungen anlegt. Die Daten und Adressen werden über dieselben Leitungen übertragen und per Zeitmultiplexverfahren voneinander getrennt. Eine zusätzliche Paritätsleitung erlaubt das Erkennen von Fehlern.

CPU und Arbeitsspeicher sind über eine sogenannte Host-Bridge mit dem Bus verbunden. Die meisten Transaktionen auf dem Bus finden zwischen dieser Bridge und den restlichen Peripheriegeräten statt. Theoretisch können Peripheriegeräte auch untereinander kommunizieren, diese Möglichkeit wird jedoch nur sehr selten genutzt und von den meisten Bridges nur optional unterstützt. Da masterfähige Peripheriegeräte die Hostbridge als Slave ansprechen können, sind sie in der Lage, direkt in den Arbeitsspeicher zu schreiben und aus ihm zu lesen – das entspricht Direct Memory Access (DMA).

Jedem Slave werden beim Systemstart vom BIOS Adressbereiche zugeteilt. Über Herstellercodes können Karten nach dem Hochfahren eindeutig identifiziert werden. Über die 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.

In der am weitesten verbreiteten PCI-Variante mit 32 bit/33 MHz 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 der Slave signalisieren, dass sie zur Aufnahme von Daten bereit sind. Falls Master oder Slave nicht bereit sind, werden keine Daten übertragen, die Übertragung wird angehalten oder gebremst.

Normalerweise beendet der Master den Datentransfer. Über ein STOP-Signal kann der Slave 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.

Der PCI-Bus benötigt minimal 47 (Slave) bzw. 49 (Master) Signale auf dem Bus. Ab der Version 2.1 der Spezifikation ist eine 64-Bit-Erweiterung definiert, die den Datenbus auf 64 Bit verbreitert. In einem System können 32-Bit- und 64-Bit-Geräte koexistieren und miteinander kommunizieren.

Auf dem Bus liegen vier Interruptleitungen, so dass jedes Gerät bis zu vier verschiedene Interrupts (INTA bis INTD) erzeugen kann. Die Interruptleitungen sind auf dem Bus aber nicht verbunden, sondern können einzeln geroutet und zugeordnet werden. Normalerweise wird nur INTA verwendet. Dieser kann jedoch je nach Steckplatz einem eigenen Interrupt zugeordnet werden oder, falls nicht genügend Interrupts vorhanden sind, zwischen verschiedenen Karten geteilt werden. Die Probleme des ISA-Busses, der oft zu wenig Interrupts zuordnen konnte, sind damit weitgehend Vergangenheit.

Der PCI-Bus versorgt die angeschlossenen Geräte mit Spannung. Für jede Versorgungsspannung ist die maximal zulässige Stromstärke festgelegt.Hardware and PCI Overview FAQs. sun.com, 4. Dezember 2008. Weiterhin ist die Gesamtleistung pro Steckplatz auf 25 Watt begrenzt.

Spannung Strom(max) Leistung(max) +3,3 V ± 0,3 V 6 A 20 W +5 V ± 5 % 5 A 25 W +12 V ± 5 % 0,5 A 6 W −12 V ± 10 % 0,1 A 1,2 W Summe der Gesamtleistung 25 W Parameter PCI2.0 PCI 2.1 PCI2.2 PCI2.3 PCI3.0 PCI-X Zum Vergleich: AGP 32 bit 64 bit 1.0 2.0 1x 2x 4x 8x Max. Busbreite 32 bit 64 bit 64 bit 32 bit Max. Takt (MHz) 33 66 100 133 266 533 66 133 266 533 max. Datenrate (MB/s) 133 266 533 800 1066 2133 4266 266 533 1066 2133 Slots pro Bridge 4 2 2 1 1 Spannung 5 V 5/3,3 V 3,3 V 3,3 V 3,3 V 1,5 V 0,8 V Einführungsjahr 1993 1994 1999 2002 2004 1999 2003 1997 1999 2002

PCI-Bus-Signale Die Art der Ein- und Ausgänge lassen sich wie folgt einteilen:

Input in Normaler Eingang Output out Normaler Ausgang Tri-State t/s bidirektionaler Tri-State Ausgang SustainedTri-State s/t/s Low-aktiver Ausgang, der nur von einem Gerät getrieben werden darf. Setzt ein Gerät die Leitung auf low, so muss es, um die Leitung wieder freizugeben, die Leitung für mindestens einen Takt auf high setzen. Frühestens nach einem Takt, nachdem die Leitung freigegeben wurde, darf ein anderes Gerät die Leitung nutzen. Ein zentraler Pullup-Widerstand ist notwendig. Open-Drain o/d Low-aktiver Ausgang, fungiert als ODER-Verknüpfung mit anderen Geräten. Ein zentraler Pullup ist notwendig.