Angepasst aus dem Webinar So debuggen Sie das Verhalten von PCI Express Power Management und Dynamic Link von Patrick Connally und Gordon Getty

Einführung

Die Energieverwaltung ist ein wichtiger Aspekt für PCI Express® (PCIe®). Folglich spezifiziert PCIe den L1-Low-Power-Zustand. Wenn sich ein Link in L1 befindet, findet in beiden Richtungen keine Datenübertragung statt, sodass ein PCIe-Gerät im L1-Zustand weniger Strom verbraucht als im aktiven L0-Zustand.

L1-Unterzustände (als L1.1 und L1.2 bezeichnet, wobei das ursprüngliche L1 in L1.0 umbenannt wurde) bieten noch tiefere Energieeinsparungen als L1, eine besonders wichtige Funktion für Laptops, Tablets und andere batteriebetriebene Geräte. Aber alle Energiesparzustände führen zu einer Austrittslatenz – die Zeit, die ein Gerät benötigt, um den normalen Betrieb mit voller Leistung wieder aufzunehmen, wenn es den Niedrigenergiezustand verlässt. Gerätedesigner müssen die Latenz zwischen Niedrigenergiezuständen messen, um die Kompromisse zu bewerten und die Leistung zu optimieren.

Dies ist nur mit einem Protokollanalysator oder einem Oszilloskop allein schwierig zu bewerkstelligen. Protokollanalysatoren können auf Ereignisfolgen triggern und sehr lange Aufzeichnungen machen, aber sie können keine analogen Ereignisse erfassen. Oszilloskope können analoge Ereignisse erfassen, aber die Erfassungen sind sehr kurz und schwer mit Protokollereignissen zu korrelieren. Glücklicherweise ergänzen sich die beiden Instrumente sehr gut, um Ereignisse zu untersuchen, die von Prozessen höherer Schichten ausgelöst werden, aber Auswirkungen auf die physikalische Schicht haben – wie L1-Subzustände. Die Teledyne LeCroy KreuzSynch™ PHY für das PCIe-Software-Framework synchronisiert Triggerung, Erfassung und Analyse auf den beiden Instrumenten, um eine vollständige Sichtbarkeit der Verbindung zu gewährleisten.

Beispiele in diesem Anwendungshinweis zeigen, wie Timing-Messungen für L1-Unterzustände basierend auf logischen Zuständen in der Datenverbindungsschicht oder dem logischen Unterblock der physikalischen Schicht und den entsprechenden Wellenformen im elektrischen Unterblock der physikalischen Schicht durchgeführt werden.

Übersicht der L1-Substates

Ein Gerät wechselt über einen von zwei Mechanismen in den L1-Zustand: Active State Power Management (ASPM) oder PCI Power Management (PCI-PM). Ein Gerät wird seine Unterstützung für L1-Unterzustände und -Eintrittsmechanismen in seinem Konfigurationsraum anzeigen und es wird das Taktanforderungssignal (CLKREQ#, aktiviert wenn niedrig) zum Verlassen und Eintritt in einen L1-Unterzustand verwenden.

Die Datenverbindungsschicht im PCIe-Protokollstapel behandelt Verbindungsverwaltungsaufgaben wie die Initialisierung von Flusssteuerungskrediten, die Aktualisierung von Flusssteuerungskrediten, wenn die Verbindung im L0-Zustand aktiv ist, und die Bestätigungs- und Negativbestätigungsmechanismen um sicherzustellen, dass die Pakete über die Verbindung hinweg unversehrt bleiben. Die Datenverbindungsschicht verwaltet auch Anforderungen zum Eintritt in L1 und seine Unterzustände für einen Niedrigleistungsbetrieb.

Konfigurationsraum, der die Unterstützung für L1-Unterzustände und -Eintragsmechanismen anzeigt.
Abbildung 1: Konfigurationsraum, der die Unterstützung für L1-Unterzustände und -Eintragsmechanismen anzeigt.

Messung des L1-Substate-Timings

Um L1-Substate-Timing-Messungen durchzuführen, verwenden Sie einen PCIe-Protokollanalysator wie das Teledyne LeCroy Summit T54 zusammen mit einem Oszilloskop wie dem Teledyne LeCroy LabMaster 10Zi-A. Darüber hinaus überwacht ein Interposer die Kommunikation mit dem zu testenden Gerät und liefert Daten an den Protokollanalysator sowie das Oszilloskop.

Testaufbau für L1-Substate-Messungen mit CrossSynch PHY für PCIe-Software.
Abbildung 2: Testaufbau für L1-Substate-Messungen mit CrossSynch PHY für PCIe-Software.

Spezifische L1-Substate-Timing-Messungen, die wir mit dieser Konfiguration durchführen, umfassen:

  • Zeit von der CLKREQ#-Assertion bis zum Zeitpunkt der gültigen Systemreferenzuhr (System REFCLK)
  • Zeit ab Gültigkeit des Systems REFCLK bis zum Beginn der TS1-Trainingssequenzen
  • Zeit ab Gültigkeit des Systems REFCLK bis zur Rückkehr nach L0

Trigger und Erfassung einrichten

Konfigurieren Sie das Oszilloskop so, dass es vier Signale erfasst: CLKREQ# (C1), Upstream-Daten von Spur 0 (C2), Downstream-Daten von Spur 0 (C3) und System REFCLK (C4). Platzieren Sie alle vier Signale in einer zeitgesperrten Multi-Zoom-Gruppe, sodass Cursor, die auf einer beliebigen Spur platziert sind, die Differenz auf jeder messen.

Da wir uns nur um die Zeit rund um die Uhr kümmern, wird das Oszilloskop auf die Erfassung von zwei Segmenten im Sequenzmodus eingestellt.

Richten Sie den Protokollanalysator so ein, dass er das Oszilloskop beim Eintritt in und Verlassen der L1-Unterzustände auslöst, indem überwacht wird, ob das Clock-Request-Signal (CLKREQ#) deaktiviert und aktiviert wird. Der Eintritt in die L1-Unterzustände korreliert mit dem Umschalten des Taktanforderungssignals, wobei CLKREQ# deaktiviert wird, an welchem ​​Punkt der Protokollanalysator das Oszilloskop zum ersten Mal triggert. Wenn es an der Zeit ist, den L1-Unterzustand zu verlassen, triggert der Protokollanalysator das Oszilloskop erneut, wodurch es die Aktivierung von CLKREQ# erfassen kann.

Trigger-Setup zum Erfassen des Ein- und Ausstiegs aus L1.
Abbildung 3: Trigger-Setup zum Erfassen des Ein- und Ausstiegs aus L1.

Sondierung

Ein Teledyne LeCroy PE210UIA-4PHY Interposer, verbunden mit einem Summit T54 Protokollanalysator, wurde verwendet, um die Kommunikation zwischen dem PCIe 4.0 M.2 Solid-State-Laufwerk und dem Hostsystem zu überwachen. Dieser Interposer bietet verschiedene Prüfpunkte für das Oszilloskop, um analoge Signale zu erfassen. Das CLKREQ#-Signal wurde mit einem standardmäßigen passiven 10:1-Tastkopf abgetastet, die Spur-0-Upstream- und Spur-0-Downstream-Signale wurden mit aktiven 30-GHz-Differentialtastköpfen der DH-Serie abgetastet, und das REFCLK-Signal des Systems wurde direkt an einen 50-Ohm-Koaxialeingang am angeschlossen Oszilloskop.

Oszilloskop erfasst CLKREQ#, Spur 0 Upstream-Daten, Spur 0 Downstream-Daten und System REFCLK.
Abbildung 4: Oszilloskop erfasst CLKREQ#, Spur 0 Upstream-Daten, Spur 0 Downstream-Daten und System REFCLK.
Der Eintritt in den L1-Unterzustand korreliert über beide Spuren und tritt auf, wenn CLKREQ# deaktiviert wird.
Abbildung 5: Der Eintritt in den L1-Unterzustand korreliert über beide Spuren und tritt auf, wenn CLKREQ# deaktiviert wird.
Austritt aus dem L1-Unterzustand, der über beide Ablaufverfolgungen korreliert ist und auftritt, wenn CLKREQ# geltend gemacht wird.
Abbildung 6: Verlassen des L1-Unterzustands, korreliert über beide Ablaufverfolgungen und tritt auf, wenn CLKREQ# bestätigt wird.

Messen der CLKREQ#-Assertion zu einem gültigen REFCLK

Eine Schlüsselzeitmessung des L1-Unterzustands ist die Zeit von der Behauptung der Taktanforderung (die das Verlassen von L1.2 anzeigt und sich von L1.2 im Leerlauf zu L1.2 verlässt) bis zu dem Punkt, an dem der Referenztakt startet.

Platzieren Sie die horizontalen Cursor des Oszilloskops auf der Taktanforderungsleitung und der Referenztaktleitung, um eine genaue Messung der Zeit vom Triggerpunkt von Segment 1 auf der CLKREQ#-Spur bis zum Beginn des REFCLK-Signals vorzunehmen – in diesem Fall 301 ms.

Messen Sie mit Cursors die Zeit vom Trigger auf CLKREQ# bis zum Start eines gültigen REFCLK.
Abbildung 7: Messen Sie mithilfe von Cursorn die Zeit vom Trigger auf CLKREQ# bis zum Start eines gültigen REFCLK.

Messen eines gültigen REFCLK-zu-TS1-Pakets

Eine weitere wichtige Messung ist die Zeit, von der die Referenzuhr gültig ist, bis der Beginn der Erholung identifiziert wird, wobei die Erholungs-Initiierungs-Trainingssequenzen auf der Protokoll-Analysator-Spur beobachtbar sind.

Indem wir das Paket auf dem Display des Protokollanalysators auswählen, können wir den Zeitpunkt sehen, zu dem REFCLK auf der Oszilloskop-Kurve gültig wird, und dann können wir auch genau sehen, wann die erste Trainingssequenz (TS1) stattgefunden hat. Auch hier werden horizontale Cursor verwendet, um die Zeit zwischen den beiden zu messen – in diesem Fall 53 ms.

Messen Sie mit Cursors die Zeit vom Trigger auf CLKREQ# bis zum Start eines gültigen REFCLK.
Abbildung 8: Messen Sie mithilfe von Cusoren die Zeit von einem gültigen REFCLK bis zum TS1-Paket (identifiziert mit Protokollanalysator-Trace).

Messen eines gültigen REFCLK auf L0

Eine dritte wichtige Zeitmessung ist die Zeit von einem gültigen REFCLK bis zum Start von L0. Diese Messung erfordert einen dreistufigen Prozess: Finden Sie den Start des gültigen REFCLK, suchen Sie nach dem SDS-Paket (das die Rückkehr zu L0 anzeigt), erhalten Sie dann die Zeit des SDS-Pakets und vergleichen Sie sie mit dem Start von REFCLK.

Das Oszilloskop kann anzeigen, wann der Referenztakt startet, aber es kann nicht ohne Weiteres angeben, wann die Verbindung L0 erreicht. Nach Trainingssequenzen sendet ein Gerät ein SDS (Start of Data Stream) und an diesem Punkt erreicht die Verbindung L0. Verwenden Sie die Suchfunktion des Protokollanalysators, um den nächsten bestellten SDS-Satz zu finden. Dadurch wird der Zeitstempel bereitgestellt, wann der Link in L0 eingetreten ist, um eine genaue Cursormessung von gültigem REFCLK bis L0 zu ermöglichen – in diesem Fall 384 ms.

Messen Sie mit den Cursorn die Zeit von gültigem REFCLK bis zum Start von L0 (identifiziert durch Suche nach SDS).
Abbildung 9: Messen Sie mit den Cursorn die Zeit von gültigem REFCLK bis zum Start von L0 (identifiziert durch Suche nach SDS).
Verwenden der Protokollanalysatorsuche, um den nächsten bestellten SDS-Satz zu finden.
Abbildung 10: Verwenden der Protokollanalysator-Suche, um den nächsten geordneten SDS-Satz zu finden.
Abrufen der Zeit des SDS-Pakets und Vergleichen mit dem Start von REFCLK.
Abbildung 11: Abrufen der Zeit des SDS-Pakets und Vergleichen mit dem Start von REFCLK.

Fazit

Die L1-Substates können erhebliche Energieeinsparungen bei PCIe-Verbindungen bieten. Die Kombination aus Oszilloskop, Protokollanalysator, Interposer u KreuzDie Software Sync PHY für PCIe bietet eine effektive Möglichkeit, zu jedem Punkt im Verbindungsbetrieb zu navigieren, um eine detaillierte Analyse des Timings von Funktionen durchzuführen, wie z. B. den Eintritt in oder den Austritt aus den L1-Unterzuständen.

Weitere Informationen zur Teledyne LeCroy KreuzSync PHY-Software finden Sie auf unserer Website .