Den Umstieg von PCI auf PCI-Express richtig machen

Beflügelt durch die Rückwärtskompatibilität der Hardware/Software-Schnittstelle befindet sich die Migration von PCI zu PCIExpress in vollem Gange. Um den Anschluss ans Neusystem-Geschäft nicht zu verlieren, müssen sich mittlerweile auch Hersteller von Nischenlösungen mit dieser Thematik...

Beflügelt durch die Rückwärtskompatibilität der Hardware/Software-Schnittstelle befindet sich die Migration von PCI zu PCIExpress in vollem Gange. Um den Anschluss ans Neusystem-Geschäft nicht zu verlieren, müssen sich mittlerweile auch Hersteller von Nischenlösungen mit dieser Thematik befassen. Aufgrund begrenzter Stückzahlen spielen gerade hier die Gesamtentwicklungskosten eine große Rolle. Wie kann man aber die Kosten im Griff halten, ohne Abstriche beim Entwicklungsablauf machen zu müssen?

PCI-Express, oder PCIe, ist der Nachfolger von PCI und bietet im Vergleich zu seinem Vorgänger eine höhere Datenübertragungsrate. Trotz seines anderen physischen Aufbaus ist PCIe softwareseitig voll kompatibel zu PCI, sodass weder Betriebssysteme und Treiber noch Anwendungsprogramme anzupassen sind. Trotzdem ist die Migration von PCI zu PCI-Express nicht kostenfrei. Natürlich könnte man eine Auflistung von Bestandteilen der Gesamtkosten über mehrere Seiten vornehmen. Aber hier sollen im Wesentlichen folgende drei Punkte betrachtet werden, die für viele Kunden auch die wesentlichen Faktoren darstellen: Einarbeitung, Bausteinkosten und Verifizierung.

Bei der Einarbeitung helfen Schulung und Beratung. Hinsichtlich Bausteinkosten stellen FPGAs oftmals eine attraktive Lösung dar. So bietet Lattice die Low-Cost-FPGAs der Familie »ECP2/ M«, für die es einen PCIe-IP-Core gibt. Insbesondere die Verifizierung stellt viele Firmen jedoch vor ein größeres Problem, da hier höhere Investitionskosten für Messgeräte oder Simulationsmodelle ins Haus stehen können. Die Erfahrung zeigt, dass die meisten Probleme bei der Implementierung bei der Kommunikation der Anwenderlogik mit dem Core entstehen. Somit lassen sich die Verifikationskosten deutlich senken, wenn man einen Weg findet, diesen Teil am Rechner zu simulieren und zu testen. Obwohl der PCIe-Core von Lattice eigentlich nur als PCI-Express-End-Point und als so genannte »obfuscated Verilog«-Netzliste verfügbar ist, ist es trotzdem möglich, eine vollwertige, auf Transaktionen basier te VHDL-Verifikationsumgebung (Transaction-Level-Modell) um den Core herum aufzubauen.

PCIe im Überblick

PCI-Express hat viele Eigenschaften eines klassischen paketvermittelnden Netzwerks. Es werden immer nur zwei Teilnehmer direkt miteinander verbunden. Ein hierarchisches System lässt sich mittels aktiven Mehrfachverzweigungen (Switches) beziehungsweise Brücken aufbauen. Das Übertragungsprotokoll ist an das bekannte ISO/OSI-Schichtmodell angelehnt, wobei nur die physikalische, die Datensicherungs- sowie die Transportschicht spezifiziert sind. Gemeinsam mit fast allen aktuellen Systemschnittstellen im PC-Umfeld bedient sich PCIe einer seriellen Übertragung auf Basis der Differenzialtechnik mit 8B/10B-Zeichenkodierung, wobei eine Übertragungsbitrate von 2,5 GBit/s (PCIe 1.x) oder 5,0 GBit/s (PCIe 2.x) gewählt wurde. PCI-Express erlaubt die Bündelung von Datenbahnen, um die Übertragungsleistung noch mal zu erhöhen. Es sind die Konfigurationen x1, x2, x4, x8, x12, x16 und x32 spezifiziert, womit theoretisch eine Gesamtübertragungsleistung von 250 MByte/s (x1, PCIe 1.x) bis 16 GByte/s (x32, PCIe 2.x) pro Richtung erreichbar wäre.