PCI Express: Der Highspeed-Datenbus im Detail

Data Link Layer

Die Hauptaufgabe des Data Link Layer besteht darin, Datenpakete vom Transaction Layer (TLPs) für eine Datenübertragung durch den Physical Layer vorzubereiten und umgekehrt. Dabei stellt er bestimmte Service-Funktionen wie Fehlererkennung und die damit verbundene Wiederholung des Datentransfers zur Verfügung. Zudem übernehmen Data-Link-Layer-Pakete bestimmte Link-Management-Funktionen. Im Einzelnen sind das Empfangsbestätigungen von Transaction-Layer-Paketen, Initialisierungs- und Powermanagement-Status sowie das Übermitteln von Informationen zur Datenflusskontrolle. Data-Link-Layer-Blöcke werden per Point-to-Point-Transfer zwischen zwei Komponenten übertragen. Demgegenüber lassen sich TLPs über mehrere angeschlossene Geräte verzweigen.

Um die Datenintegrität eines TLPs zu gewährleisten, fügt der Link Layer am Blockanfang des Datenpakets eine eindeutige Identifizierungsnummer an, die so genannte Paket-Sequenznummer. Damit identifiziert sich ein einzelner Übertragungsprozess innerhalb der PCI-Express-Umgebung eindeutig. Zusätzlich hängt der Link Layer an das Blockende eine Prüfsumme zur Fehlererkennung (CRC). Signalisiert der Empfänger eine fehlerhafte Datenzustellung, initiiert der Data Link Layer einen erneuten Blocktransfer.

Sendet der Data Link Layer diesen Datenblock, so erreicht er den Empfänger mit einer gewissen Verzögerung. Diese Latenzzeit hängt von Faktoren wie Frequenz und Bandbreite des Busses, Signalverzögerung durch Leiterbahnen und Wiederholung eines Transfers bei einer Fehlererkennung ab.