Folgende Funktionen werden mit dem Exerciser und Analysator getestet. Es wird darauf geachtet, dass alle Schichten korrekt und ihren Spezifikationen entsprechend funktionieren:
Bei der Entzerrung (EQ, Equalization) werden die Geräte auf beiden Seiten so parametriert, dass sie jedes Bit zuverlässig übertragen. Jede Datenleitung wird für sich parametriert. Die Parametrierung ist ein dynamischer Vorgang. Dieser erfordert, dass in jeder Datenleitung die Werte vor dem Cursor, am Cursor und hinter dem Cursor korrekt gesetzt sind. Die Signalqualität ist für eine fehlerfreie Bitübertragung maßgebend. War eine korrekte Entzerrung für eine erfolgreiche Verbindung bei PCIe 3.0 wichtig, ist sie bei PCIe 4.0 entscheidend.
Der Ablauf des Verbindungsaufbaus wird von einem »endlichen Automaten« beobachtet und gesteuert, der »LTSSM« (Link Training Signaling State Machine). Statuswechsel werden erzeugt durch Verbindungsaufbau, Erholung aus einem Fehlerzustand und dem Energiemanagement. Ziel von LTSSM ist es, den Status »L0« zu erreichen. In diesem Status steht die Verbindung und Daten werden übertragen. Andere Zustände wie die Konfiguration, der Verbindungsaufbau und die Fehlererholungsroutinen werden von der Verbindungssteuerung, der Fehlererholung und den verschiedenen Möglichkeiten des Energiemanagements bereitgestellt.
Die Paketerfassung erfasst die PCIe-Pakete und decodiert die Antworten, Gerätekonfiguration und Enumeration. Zum Zweck der Datenübertragung enthalten die Pakete Adressen, die vom Speicher gelesen oder beschrieben werden.
Leistungsanalyse und Datenflusssteuerung beeinflussen die Antwortzeiten und den Gesamtdurchsatz. Die Datenflusssteuerung verhindert Pufferüberläufe. Sie erkennt, wenn der Kredit aufgezehrt ist, was den Datendurchsatz beeinträchtigt.
Nachdem alle Tests zum Aufbau eines stabilen Kommunikationskanals absolviert sind, wird im nächsten Schritt die Anwendungsschicht über den PCIe-Bus validiert (z. B. NVMe). Um NVMe-Protokolle zu testen, müssen die Datensicherungsschicht, Bestätigungen, Datenflusssteuerung, Warteschlangen etc. miteinander koordiniert werden. Im Extremfall analysiert ein NVMe-Lesevorgang tausend Datenpakete. Der Protokollanalysator fasst die Kommunikation zusammen und hilft Probleme zu lösen. Weiterhin hilft der Protokollanalysator, wenn bei der Weiterentwicklung der NVMe-Spezifikation Design-Validierungen vorgenommen werden.
Emulation ist ein weiterer wichtiger Aspekt beim Testen von NVMe. Anwender müssen mehrere Befehlswarteschlangen erzeugen können, um nachzuweisen, dass der Controller mit verschiedenen Konfigurationstypen zurechtkommt. Der »NVMe-Exerciser« emuliert diese. Er führt Validierungstestsequenzen aus, mit denen gängige Implementationsfehler identifiziert werden können.
Zusammenfassung
Entscheidend sind bei der Validierung eines Geräts nach PCI-SIG-Standard die Interoperabilität, die Zuverlässigkeit und die Rückwärtskompatibilität zu bisherigen PCIe-Standards. Die Validierung auf den unterschiedlichen Protokollebenen erfordert Tests, die nicht nur dem aktuellen Standard entsprechen. Sie müssen so flexibel sein, dass man Weiterentwicklungen der Protokolle von künftigen Versionen testen kann. (vw)
Über den Autor:
Don Schoenecker ist PCIe Protocol Product Manager bei Keysight Technologies.