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

Da die aufeinanderfolgenden Generationen von PCI Express® mit 8, 16 und 32 Gbit/s arbeiten, wird der dynamische Verbindungsausgleich unerlässlich. Die Entzerrung beinhaltet die absichtliche Verzerrung eines Datensignals, um Mängel im Kommunikationskanal zu kompensieren. Zu diesen Mängeln gehört die als Tiefpassfilter wirkende Verbindung, die wichtige hochfrequente Komponenten des Datenstroms dämpft. Außerdem können Impedanzunterbrechungen in der Verbindung, die durch Verbinder und Durchkontaktierungen verursacht werden, die Verbindungsleistung weiter verschlechtern. PCIe®-Entzerrung kann auf der Sendeseite (TxEQ), der Empfangsseite (RxEQ) oder beiden angewendet werden. TxEQ umfasst Deemphasis und Pre-Shoot, während RxEQ zeitkontinuierliche lineare Entzerrung (CTLE) und Entscheidungsrückkopplungsentzerrung (DFE) umfasst.

Auf der Sendeseite bewirkt die Deemphasis, dass das erste Bit nach einem Übergang mit voller Amplitude (Va) gesendet wird. Nachfolgende Bits der gleichen Polarität werden mit einem reduzierten oder de-emphasierten Pegel (Vb) übertragen, mit Ausnahme des letzten Bits vor dem nächsten Übergang, das mit einem verstärkten Pre-Shoot-Pegel (Vc) übertragen wird. Außerdem wird ein einzelnes Bit zwischen Übergängen mit einem maximalen Boost-Pegel (Vd) übertragen. Die Kombination aus Deemphasis und Boost fügt dem Signal hochfrequente Inhalte hinzu, die die Verbindung dämpfen würde. Der Ausgleich beinhaltet eine mehrphasige Verbindungstrainingssequenz, die manchmal zu unerwarteten Ergebnissen führen kann. Die Fähigkeit, Protokollschicht- und Bitübertragungsschicht-Ablaufverfolgungen zu korrelieren Kreuz Sync™ PHY für PCIe kann Ihnen helfen, logische und elektrische Probleme zu isolieren, die nach dem Verbindungstraining auftreten können.

Übertragen Sie Spannungspegel und Entzerrungsverhältnisse.
Abbildung 1. Spannungspegel und Entzerrungsverhältnisse übertragen.
(Quelle: PCI Express Base Specification Revision 4.0 Version 1.0.)

Überblick über den Link-Trainingsprozess

Für die Entzerrung auf der Sendeseite werden Deemphasis, Pre-Shoot und Boost durch einen Finite-Impulse-Response-Filter (FIR) mit drei Abgriffen im TxEQ-Block eines PCIe-Systems implementiert. Das Ziel des Verbindungstrainings besteht darin, die optimalen FIR-Filterkoeffizienten, auch Cursor genannt, für eine gegebene Kommunikationsverbindung zu bestimmen. Das Verbindungstraining umfasst den Austausch geordneter Datensätze, einschließlich der Trainingssequenz 1 (TS1) und der Trainingssequenz 2 (TS2), zwischen dem Downstream-Port und dem Upstream-Port.

Wie das PCIe-Link-Training implementiert wird

Beispielsweise beginnt das PCIe 4.0-Verbindungstraining mit einer Geschwindigkeitsänderungsaushandlung und erstreckt sich von Phase 0 bis Phase 3. In Phase 0 sendet der Downstream-Port möglicherweise TS2-geordnete Sätze mit einer Datenrate von 8 GT/s an den Upstream-Port, Werbung eine maximale Datenrate von 16 GT/s. In Phase 1 tauschen beide Ports TS1-bestellte Sätze aus, wobei nach jeweils 32 TS1-bestellten Sätzen ein Electrical Idle Exit Ordered Set (EIEOS) eingestreut wird, um eine Betriebsverbindung herzustellen. Der Zweck von EIEOS besteht darin, zu garantieren, dass ein Verbindungspartner den elektrischen Ruhezustand erkennen kann. Die EIEOS-Paketsymbole (vier abwechselnde 00 00 FF FF-Sequenzen) führen zu einem elektrischen Signal mit regelmäßigen und relativ wenigen Übergängen, was für die Beobachtung der Eigenschaften der physikalischen Schicht eines Signals während der Fehlersuche nützlich sein kann.

Presets und die Rolle von P10

Die nachfolgenden Phasen beinhalten den Datenaustausch zur Optimierung der elektrischen Leistung. Der PCIe-Standard spezifiziert 11 vordefinierte Kombinationen von De-Emphasis-, Pre-Shoot- und Boost-Cursor-Koeffizienten, die als Presets bezeichnet und mit P0 bis P10 bezeichnet werden. Während des Verbindungstrainings kann ein PCIe-Gerät entweder Voreinstellungen oder Cursor anfordern – letztere bieten eine feinere Auflösung und mehr Einstellungsoptionen, während die Voreinstellungen Komfort bieten. Voreinstellungen werden in Bezug auf Spannungsverhältnisse und Pre-Shoot- und De-Emphasis-Koeffizienten in dB definiert, mit Ausnahme von P10, das für Sender-Boost-Limit-Tests bei voller Amplitude verwendet wird und dessen Boost-Grenzwerte nicht festgelegt sind.

Voreingestellte Verhältnisse und entsprechende Koeffizientenwerte übertragen.
Abbildung 2. Übertragen Sie voreingestellte Verhältnisse und entsprechende Koeffizientenwerte.
(Quelle: PCI Express Base Specification Revision 4.0 Version 1.0.)

In Phase 2 fordert der Upstream-Port den Downstream-Port auf, seine Senderentzerrungsvoreinstellungen oder Cursor zu konfigurieren, um die Verbindungskanalmängel zu kompensieren und eine optimale Leistung sicherzustellen. Phase 3 kehrt die Rollen um, wobei der Downstream-Port anfordert, dass der Upstream-Port seine Senderentzerrungsvoreinstellungen oder Cursor konfiguriert, um die Verbindungsmängel zu kompensieren. Nach Abschluss des Ausgleichs tauschen der Downstream-Port und der Upstream-Port TS2 bestellte Sätze aus. Die Verbindungstrainings- und Statuszustandsmaschine (LTSSM) durchläuft die Zustände Recovery.RcvrLock, Recovery.RcvrCfg und Recovery.Idle und sendet ein EIEOS nach jeweils 32 von TS1 oder TS2 bestellten Sätzen, bevor sie den aktiven L0-Zustand herstellt.

Daher können die bestellten TS2-Sätze und EIEOS nützlich sein, um Ihre Instrumentierung auszulösen und auf Signale der physikalischen Schicht zu zoomen, um das Debugging des Link-Training-Verhaltens nach der Entzerrung zu unterstützen.

LTSSM, das den aktiven L0-Zustand nach Abschluss des Ausgleichs herstellt.
Abbildung 3. LTSSM, das nach Abschluss des Ausgleichs den aktiven L0-Zustand herstellt.

Vergleich von Presets und gemeldetem TxEQ

Um die Verbindungsentzerrung in der realen Welt zu validieren, können Sie ein Oszilloskop und einen Protokollanalysator zusammen mit dem von Teledyne LeCroy verwenden KreuzSynchronisieren Sie PHY für das PCIe-Software-Framework, um die beiden Instrumente miteinander zu verbinden. KreuzSync PHY befindet sich auf dem Oszilloskop und korreliert Daten von beiden Instrumenten, um eine vollständige Sichtbarkeit der Verbindung zu gewährleisten, sodass Sie elektrische Wellenformen vom Oszilloskop anzeigen können, die mit Protokollschichtdaten des Protokollanalysators korreliert sind. Außerdem benötigen Sie eine KreuzSync-PHY-fähiger Interposer zur Überwachung des Prüflings und Bereitstellung von Daten für den Protokollanalysator sowie das Oszilloskop.

Trigger einrichten

Um die Wirksamkeit des Verbindungsausgleichsprozesses zu bestimmen, sollten Sie das Verbindungsverhalten am Ende von Phase 3 untersuchen. Konfigurieren Sie dazu den Protokollanalysator so, dass er auf den ersten TS2-geordneten Satz auslöst, der nach der Geschwindigkeitsänderung auf 16 GT/ auftritt. s, und richten Sie das Oszilloskop so ein, dass mehrere Fahrspuren des Upstream-Verkehrs erfasst werden. Diese Triggereinstellung stellt sicher, dass die Daten nach Abschluss der endgültigen Ausgleichseinstellungen und dem Übergang in den aktiven L0-Zustand erfasst werden.

Protokollanalysator, der so konfiguriert ist, dass er auf den ersten bestellten TS2-Satz auslöst, der nach der Geschwindigkeitsänderung auf 16 GT/s erscheint.
Abbildung 4. Protokollanalysator, der so konfiguriert ist, dass er auf den ersten bestellten TS2-Satz auslöst, der nach der Geschwindigkeitsänderung auf 16 GT/s erscheint.

So überprüfen Sie gemeldete Voreinstellungen

Der resultierende Protokoll-Trace wird angezeigt von KreuzSync PHY zeigt Paketdetails wie Paketnummer, bestellter Satz, Datenrate und Entzerrungskontrolle, einschließlich der voreingestellten Nummer. KreuzSync PHY zeigt auch die zeitkorrelierten Oszilloskopspuren an, die die elektrischen Effekte der Senderentzerrung zeigen. Die Oszilloskopspuren in Abbildung 5 zeigen einen deutlichen Unterschied im elektrischen Verhalten der Upstream-Signale der Spuren 1 und 2.

Oszilloskopspuren, die Unterschiede im elektrischen Verhalten zwischen Spur 1 und Spur 2 zeigen.
Abbildung 5. Oszilloskopspuren, die Unterschiede im elektrischen Verhalten zwischen Spur 1 und Spur 2 zeigen.

Bestimmen, ob das Problem logisch oder elektrisch ist

Ein genauer Blick auf die gemeldeten Daten der TxEQ-Protokollschicht am Ende von Phase 3 zeigt, dass die Bahnen 0 und 2 berichten, dass sie auf die TxEQ-Voreinstellung P6 trainiert haben, während die Bahnen 1 und 3 berichten, dass sie auf die TxEQ-Voreinstellung P10 trainiert haben. Diese Ergebnisse stellen ein potenziell unerwartetes Verhalten dar, möglicherweise weil eine Fahrspur ihren Status falsch meldet. Es ist nicht unmöglich, dass ein Gerät verschiedene Spuren auf unterschiedliche TxEQ-Voreinstellungen trainiert, und P6 ist eine relativ häufige Voreinstellung, die viele Geräte während Signalqualitäts-Compliance-Tests mit 16 GT/s verwenden. P10 ist jedoch keine Voreinstellung, von der Sie erwarten würden, dass sie in einem Live-Link verwendet wird. Wie zuvor erwähnt, dient es hauptsächlich dazu, den elektrischen Test des Geräts zu erleichtern, und ein Gerät am anderen Ende der Verbindung kann nicht wissen, was es erwartet, wenn es P10 anfordert.

Fahrspuren melden
Abbildung 6. Die Bahnen 0 und 2 berichten, dass sie auf die TxEQ-Voreinstellung P6 trainiert haben, während die Bahnen 1 und 3 berichten, dass sie auf die TxEQ-Voreinstellung P10 trainiert haben, wie durch den hellgrünen rechteckigen Umriss hervorgehoben.

Zoomen von elektrischen Spuren, um die Betonungsstufen zu überprüfen

Es stellt sich die Frage, ob Bahn 1 wirklich auf P10 trainiert wird oder ob sie fälschlicherweise meldet, dass sie auf P10 trainiert ist. Mit anderen Worten: Deuten die unerwarteten Ergebnisse auf ein rein logisches Problem oder auf ein logisch-elektrisches Problem hin? Zur weiteren Untersuchung können Sie gegen Ende von Phase 3 auf der Protokollspur ein EIEOS-Paket auswählen, um die entsprechenden Oszilloskopspuren zu vergrößern. Das EIEOS-Paket mit seinen relativ wenigen und regelmäßig auftretenden Übergängen lässt Sie auf den Zeitbereichs-Oszilloskopspuren eine klare Sicht auf die Unterschiede in der elektrischen Betonung zwischen den beiden Signalen sehen. Wie in der Abbildung unten gezeigt, zeigt die Fahrspur, die meldet, dass sie auf P10 trainiert wurde, viel mehr Betonung auf das Signal nach einem Wechsel als die Fahrspur, die meldet, dass sie auf P6 trainiert ist. Weitere Untersuchungen würden wahrscheinlich zeigen, dass die P10-Spur ein viel geschlosseneres Auge hätte als die auf P6 trainierte Spur. Die Lösung besteht hier darin, die Firmware auf das logische Problem zu untersuchen, das dazu führt, dass das Gerät auf P10 trainiert.

Vergrößern von Oszilloskopspuren (links) korreliert mit einem EIEOS-Paket in der Protokollspur (rechts).
Abbildung 7. Vergrößern von Oszilloskopspuren (links), die mit einem EIEOS-Paket in der Protokollspur (rechts) korreliert sind.

Fazit

Zusammenfassend Teledyne LeCroy's KreuzDas Sync-PHY-Software-Framework synchronisiert ein Oszilloskop und einen Protokollanalysator, damit Sie verknüpfte Oszilloskop- und Protokollanalysator-Traces visualisieren, speichern, abrufen und analysieren können, um unerwartete Probleme zu lösen, die während des PCIe-Entzerrungsprozesses auftreten können. Ein Beispiel zum Verbindungsverhalten nach der Entzerrung zeigt, wie die CrossSync PHY-Software verwendet wird, um anomales Verbindungsverhalten zu debuggen. Neben der Untersuchung problematischer Verbindungstrainingsverhalten können die Instrumente und die Software helfen, die gesamte Boot-Sequenz mit Einblick in Seitenbandsignale, den Referenztakt, Datenspuren und Stromschienen zu charakterisieren. Sie können Ihnen auch dabei helfen, Geschwindigkeitsänderungen sowohl im elektrischen als auch im Protokollbereich zu beobachten.

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