Design serieller Schnittstellen USB 3.0 unter der Lupe

Elektronikprodukte ohne USB-Schnittstelle sind heute kaum mehr denkbar, doch stößt dieses nahezu allgegenwärtige Interface in der Version 2.0 immer häufiger an seine Grenzen – nicht nur in der Unterhaltungselektronik mit ihren HD-Filmen sind 25 GByte große Dateien keine Seltenheit mehr. Für das USB Implementers Forum war diese Situation der Anlass, im November 2008 die USB-3.0-Spezifikation zu ratifizieren. Mit einer Brutto-Datenrate von 5 GBit/s (netto: 3 GBit/s) wird der Durchsatz von High-Speed-USB um den Faktor 10 übertroffen. Nun, da die ersten Systeme auf den Markt kommen, ist es an der Zeit, USB 3.0 genauer unter die Lupe zu nehmen.

Die USB-3.0-Schnittstelle besitzt zusätzlich zum physischen High-Speed-Bus einen physischen SuperSpeed-Bus. Hierfür definiert der Standard einen doppelten Simplex-Signalisierungsmechanismus mit einer Übertragungsrate von 5,0 GBit/s. Dies ermöglicht, anders als der bei USB 2.0 implementierte unidirektionale Duplex-Bus, gleichzeitige Datentransfers von und zu einem Gerät. Die neue Busarchitektur ist elektrisch und mechanisch abwärtskompatibel zum Vorgänger. Ein USB-3.0-Host kann daher mit einem älteren Gerät kommunizieren und dabei die höchste von dem betreffenden Gerät unterstützte Datenrate wählen. Umgekehrt lässt sich ein USB-3.0-konformes Gerät problemlos an einem USB-2.0-Host einsetzen. Von der Version 2.0 unterscheidet sich der 3.0-Standard auch durch das effizientere Übertragungsmodell. So wurde das gewohnte Polling-Konzept durch eine Art asynchroner Benachrichtigungen ersetzt. Wenn beispielsweise ein USB-3.0-Host eine Transaktion starten will, kann das angesprochene Gerät mit »Not Ready« (NRDY) antworten, wenn keine Daten vorliegen oder kein Pufferspeicher verfügbar ist.

Sobald die Verfügbarkeit hergestellt ist, kann sich das Gerät von sich aus mit »Endpoint Ready« (ERDY) beim Host melden. Ein »alter« Host sendet Pakete nach dem Broadcast-Prinzip an alle aktiven Downstream-Geräte und zwingt diese damit, die Adressen all dieser Pakete zu decodieren. Anders bei einem »neuen« Host: Dieser sendet Pakete im Unicast-Verfahren ausschließlich an das Zielgerät. Die gesendeten Pakete werden hierzu mit Routing-Informationen versehen, die ein dazwischen liegender Hub decodiert. Solche Pakete wecken also inaktive Geräte nicht, diese können im Stromsparmodus bleiben. USB 3.0 unterstützt auch Geräte mit höherem Strombedarf: Betrug die Obergrenze bei USB 2.0 noch 500 mA, können Geräte bis zu 900 mA vom USB-3.0-Host beziehen.

Architektur und Power-Management

Inspiriert wurde die USB-3.0-Architektur von der in Schichten gegliederten PCIe-Architektur sowie vom OSI-Modell (Open System Interconnect). Die neue Schnittstelle ist entsprechend in die drei Schichten Physical Layer, Link Layer und Protocol Layer gegliedert. Zum Physical Layer (Bild 1) gehören der PHY und die Verbindung zwischen Host und Gerät bzw. zwischen Hub und Gerät. 8B/10B-Codierung und -Decodierung, Scrambling und Descrambling sowie die Serialisierung und die Deserialisierung gehören zu den Funktionen dieser als »Bit-Übertragungsschicht« bezeichneten Ebene. Der Link Layer (»Sicherungsschicht«) hält die Verbindung aufrecht und sorgt durch Fehlererkennung für die Integrität der übertragenen Daten. Auf dieser Ebene werden die Pakete erstellt und Link-Befehle ausgegeben.

Die Protokollschicht schließlich verwaltet den Datenverkehr zwischen Gerät und Host. Ebenso wie bei USB 2.0 überträgt auch der SuperSpeed-Bus Daten-, Adress-, Status- und Steuerungsinformationen. Von den vier definierten Pakettypen sind zwei, nämlich »Transaction Packet« (TP) und »Data Packet« (DP) identisch mit jenen aus USB 2.0. Neu sind dagegen das »Isochronous Timestamp Packet« (ITP) und das »Link Management Packet« (LMP). Um batteriebetriebenen portablen Applikationen entgegen zu kommen, bringt USB 3.0 verbesserte Power- Management-Funktionen mit. Zusätzlich zum Suspend-Modus (U3) des Vorgängers sind zwei Idle-Betriebsarten (U1 und U2) definiert. Mit dem U2-Zustand ist eine noch weiter gehende Stromersparnis möglich als mit U1, da hier mehr analoge Schaltungen (beispielsweise Taktgeneratorschaltungen) in den Ruhezustand versetzt werden können. Allerdings dauert der Wechsel aus U2 in den aktiven Zustand länger. Noch mehr Zeit benötigt dies im Falle des Suspend- Status (U3), der den niedrigsten Stromverbrauch ermöglicht.

Die Idle-Betriebsarten können bei Inaktivität an einem Downstream-Port für eine programmierbare Dauer aufgerufen werden oder lassen sich vom Gerät aufgrund von Scheduling-Informationen des Hosts initiieren. Wenn der Host die Flags »Packet Pending«, »End of Burst« oder »Last Packet« sendet, kann das Gerät in eine Idle-Betriebsart wechseln, ohne zu warten, bis auf dem Bus tatsächlich Inaktivität herrscht. Befindet sich eine Verbindung in einem Idle- Status, kann die Kommunikation per LFPS (Low Frequency Period Signaling) erfolgen, was deutlich weniger Strom verbraucht als die SuperSpeed-Signalisierung. Auch das Verlassen des Idle-Modus stößt eine LFPS-Übertragung des Hosts oder des Geräts an.