PCI

Aus Foxwiki

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.