PCI
Der PCI-Bus
PCI-Steckplätze können genutzt werden, um Erweiterungskarten auf die Hauptplatine eines Computers zu stecken (Sound-, Netzwerk-und Grafikkarten usw.). Zum Überblick über den PCI-Bus
benutzt man das Kommando lspci
. Das Kommando unterscheidet in drei verbose Stufen. lspci -v gibt
sehr detaillierte Informationen über den PCI-Bus.
- Beispiel:
root@user:/ # lspci -v ... 00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/ Z37xxx Series Graphics & Display (rev 0e) (prog-if 00 [VGA controller]) Subsystem: Lenovo Device 368d Flags: bus master, fast devsel, latency 0, IRQ 88 Memory at b0000000 (32-bit, non-prefetchable) [size=4M] Memory at a0000000 (32-bit, prefetchable) [size=256M] I/O ports at f080 [size=8] [virtual] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: [d0] Power Management version 2 Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- Capabilities: [b0] Vendor Specific Information: Len=07 <?> Kernel driver in use: i915
Das Programm lspci
bezieht seine Informationen aus dem Verzeichnis /proc/bus/pci . Es wertet die Dateien aus und stellt sie übersichtlich dar. Mit t-
stellt lspci
die PCI-Geräte in einem Baumdiagramm dar.
PCI-Express
- PCI Express („Peripheral Component Interconnect Express“, abgekürzt PCIe oder PCI-E) ist ein Standard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Hauptprozessors. PCIe ist der Nachfolger von PCI, PCI-X und AGP und bietet im Vergleich zu seinen Vorgängern eine höhere Datenübertragungsrate pro Pin.
- Während ihrer Entwicklung wurde die Schnittstelle „3GIO“ genannt, was für „3rd Generation Input/Output“ steht.
Technik
- PCIe ist im Gegensatz zum parallelen PCI-Bus kein geteiltes (shared) Bus-System, sondern besteht aus für jedes Gerät dedizierten Punkt-zu-Punkt-Verbindungen. Einzelne Komponenten werden über Switches verbunden. Diese ermöglichen es, direkte Verbindungen zwischen einzelnen PCIe-Geräten herzustellen, so dass die Kommunikation einzelner Geräte untereinander die erreichbare Datenrate anderer Geräte nicht beeinflusst.
- Die einzelnen Punkt-zu-Punkt-Verbindungen von PCI-Express werden durch eine oder mehrere Lanes einer selbstgetakteten seriellen Verbindung ausgeführt. Es gibt kein eigenes Taktsignal, lediglich ein viel geringerer Referenztakt von 100 MHz wird separat übertragen, der allerdings nicht für die Übertragung verwendet wird. Die Taktrückgewinnung erfolgt aus dem Empfangssignal. Dieses ist speziell dafür kodiert (bis PCIe 2.1 nach dem 8b/10b, PCIe 3.0 bis 5.0 eine „Scrambling“-Kodierung, welche 128 Netto-Datenbits jeweils 2 Synchronisations-Bits voranstellt).[6] Ab PCIe 6.0 werden pro Symbol 2 Bit übertragen, neben einem Synchronisationsymbol kommen 15 Symbole zur Vorwärtsfehlerkorrektur dazu.
- Für das Senden der Daten werden Parallel-zu-seriell-Wandler und für den Empfang Seriell-zu-parallel-Wandler in den Baugruppen eingesetzt. Trotz dieses sehr abweichenden physischen Aufbaus ist PCIe softwareseitig voll kompatibel zu PCI, so dass weder Betriebssysteme und Treiber noch Anwendungsprogramme angepasst werden müssen.
- PCIe ist vollduplexfähig (dual-simplex) und arbeitet je nach Version mit 250, 500, 985, 1969 oder 3938 MB/s pro Lane und Richtung. In der Entwicklungsphase ist PCIe 6.0 mit 7529 MB/s pro Lane und Richtung.
- Sämtliche Datenübertragungen und sämtliche Signale (z. B. IRQs) auf der PCIe-Verbindung werden in Pakete aufgeteilt. Auf Grund des grundlegend anderen elektrischen Aufbaus und der anderen Übertragungsform sind keine Mischgeräte möglich, die sowohl in PCI- als auch PCIe-Slots betrieben werden könnten. Das ist auch durch andere Anschlüsse bedingt, so dass für PCIe-Karten entsprechend neuere Motherboards bzw. Controller verwendet werden müssen.
- PCIe ist wie PCI prinzipiell Hot-Plug-fähig, was das Ein- und Ausbauen von (z. B. defekten) Erweiterungskarten im laufenden Betrieb ermöglicht, sofern die Hardware und auch das Betriebssystem das unterstützen.