PCI Express: Der Highspeed-Datenbus im Detail

Aufbau des Transaction Layer I

Der Transaction Layer besteht aus einem Header, Datenbereich und optionalem Anhang zur Fehlererkennung. Die allgemeine Bedeutung der ersten vier Bytes (Doppelwort) des Transaction Header ist bei allen Transaction-Layer-Paketen gleich. Er beginnt mit dem höchstwertigen Bit des Bytes Null. Bit fünf und sechs des Bytes Null geben die Länge des Header (Fmt) an. Dieser kann drei oder vier Doppelwörter lang sein und einen optionalen Datenanhang beinhalten. Die Bits Null bis vier des Bytes Null (Type) und die zwei Bits der Header-Länge definieren die Transfermodi wie beispielsweise 32/64-Bit-Memory- oder I/O-Reads/Writes. Diese legen auch den weiteren Aufbau des Transaction-Header fest.

Die Traffic-Class-Bits (TC) vier bis sechs des Bytes eins kodieren acht verschiedene Service-Klassen, die den Datentransport beeinflussen. Nur die System-Software in einer PCI-Express-Umgebung kann Service-Klassen wie zum Beispiel Datentransport nach Priorität definieren. Die Default-Einstellung (Bitfolge: 000) unterstützt jede PCI-Express-Komponente.

Das siebte Bit des Bytes zwei im Transaction-Header (TD) signalisiert, dass dem Transaction-Layer-Paket ein besonderer Anhang folgt, der aus einem einzelnen Doppelwort besteht. Dieser beinhaltet eine spezielle End-to-End-CRC-Prüfsumme (ECRC) zur Fehlererkennung und soll eine hohe Datenintegrität gewährleisten.

Mit dem Setzen des sechsten Bits des Bytes zwei (EP) erkennt der Empfänger ein fehlerhaftes TLP. Darüber hinaus informiert ein Statusbericht den Absender über den aufgetretenen Fehler und veranlasst ihn, den Datentransfer zu wiederholen. Die Fehlererkennung wird nur bei Schreib- und Leseoperationen durchgeführt.