Dieser Artikel bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit, ihn zu verbessern, und entferne anschließend diese Markierung. |
PCI-Express („Peripheral Component Interconnect Express“, abgekürzt: PCIe oder PCI-E) ist ein Erweiterungsstandard zur Verbindung von Peripheriegeräten mit dem Chipsatz eines Hauptprozessors. PCIe ist der Nachfolger von PCI und AGP und bietet im Vergleich zu seinen Vorgängern eine höhere Datenübertragungsrate.
Inhaltsverzeichnis |
Während ihrer Entwicklung wurde die Schnittstelle „3GIO“ genannt, was für „3rd Generation Input/Output“ steht.
PCIe ist im Vergleich zum parallelen PCI-Bus kein geteiltes (shared) Bus-System, sondern eine separate serielle Punkt-zu-Punkt-Verbindung. Die Datenübertragung erfolgt über sogenannte Lanes, wobei jede Lane aus einem Leitungspaar besteht (je eine Leitung für das Senden und Empfangen). Einzelne Komponenten werden über Switches verbunden.
Trotz dieses sehr anderen 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 und arbeitet mit einer Taktrate von 1,25 GHz. Daraus berechnet sich die Datenrate einer Lane (nach 8B10B-Kodierung) zu max. 250 MByte/s pro Richtung (zum Vergleich: der Standard-PCI Bus mit 32-Bit Busbreite bei 33 MHz erreicht nur maximal 133 MByte/s). In der Praxis erreicht man Raten von über 240 MByte/s bei langen Datentransfers. Verwendet man nur eine Lane, spricht man von PCIe x1. Durch Koppelung mehrerer Lanes kann man die Datenrate erhöhen, etwa x4 mit vier Lanes bis zu x32 mit 32 Lanes. Die PCI-SIG plant darüber hinaus zukünftig auch Versionen mit 500 und 1000 MByte/s pro Lane.
Im Endbenutzerbereich wird meist PCIe x1 als Ersatz für den PCI-Bus und PCIe x16 zur Anbindung einer Grafikkarte verwendet (PCI-Express for Graphics, PEG), was somit auch den AGP überflüssig macht. Im Server- und Workstationbereich gibt es darüber hinaus noch die Varianten x4, x8 und x32. Die Slots sind außerdem abwärtskompatibel, d. h. eine x1-Karte kann z. B. auch in einen x4-Slot gesteckt werden, die überzähligen drei Lanes werden dann einfach nicht benutzt. Es ist aber nicht möglich eine PCI-Karte in einen PCIe-Slot zu stecken, und es ist auch nicht möglich Karten mit mehr Lanes in einen Slot mit weniger Lanes zu stecken (z. B. PCIex16-Karte in PCIex8-Slot)
Möglich ist auch, dass Slots eine von der Bauform abweichende Anbindung der Lanes haben. Oft zu finden ist dies z. B. bei SLI und Crossfire. Denn obwohl die Slots für die Grafikkarten die Größe von x16-Slots haben, werden beim Einsatz von zwei Grafikkarten die 16 Lanes auf beide Slots verteilt, falls die Hauptplatine bzw. der darauf verbaute Chipsatz keine 32 Lanes für beide Grafikkarten bereitstellt, was dann nur noch acht Lanes pro Karte ergibt.
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.
Seit 2006 erhältliche Hauptplatinen mit PCI-Express unterstützen bis zu 48 Lanes – in der Regel aufgeteilt in ein oder zwei x16-Slots für die Grafikkarte(n), mehrere x1-Slots und zur internen Anbindung anderer auf dem Mainboard verbauter Geräte (z. B. Gigabit-Netzwerkchips, damit diese nicht über den viel langsameren PCI-Bus angebunden werden müssen).
Siehe auch: Mobile PCI-Express Module
PCIe bietet als neues Feature gegenüber PCI "Quality of Service". Dazu werden virtuelle Kanäle "Virtual Channels" (VC) benutzt, welchen eine Priorität "Traffic Class" (TC) zugeordnet wird. Standardmäßig läuft der Datenverkehr über VC0 mit TC0. Durch die Benutzung von anderen virtuellen Kanälen kann bestimmter Datenverkehr priorisiert werden.
Eine typische Anwendung wäre eine Soundkarte bei der Aufnahme: Kann sie ihre Daten nicht rechtzeitig über den Bus weiterschicken, weil der Bus anderweitig belegt ist, so läuft früher oder später der Zwischenspeicher der Soundkarte über und es gehen Daten verloren. Für diese Echtzeitanwendung würde man den Datenverkehr priorisieren.