DE102022213770A1 - Fehlerratenunterbrechungen in hardware für schnellesignalisierungsverbindung - Google Patents

Fehlerratenunterbrechungen in hardware für schnellesignalisierungsverbindung Download PDF

Info

Publication number
DE102022213770A1
DE102022213770A1 DE102022213770.1A DE102022213770A DE102022213770A1 DE 102022213770 A1 DE102022213770 A1 DE 102022213770A1 DE 102022213770 A DE102022213770 A DE 102022213770A DE 102022213770 A1 DE102022213770 A1 DE 102022213770A1
Authority
DE
Germany
Prior art keywords
count
error
logic
period
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022213770.1A
Other languages
English (en)
Inventor
Adithya Hrudhayan KRISHNAMURTHY
Ish CHADHA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102022213770A1 publication Critical patent/DE102022213770A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0036Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the receiver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level

Abstract

Eine Empfangsvorrichtung enthält Erkennungslogik, einen Fehlerzähler und eine Unterbrechungslogik. Die Erkennungslogik dient dazu, einen ersten Satz von Datenrahmen zu empfangen und einen oder mehrere Rahmenfehler in dem ersten Satz von Datenrahmen zu erkennen. Der Fehlerzähler soll die Anzahl der ein oder mehreren in dem ersten Satz von Datenrahmen erkannten Rahmenfehler speichern. Die Unterbrechungslogik kann mit dem Fehlerzähler gekoppelt werden. Die Unterbrechungslogik soll eine Periode spezifizieren und die Anzahl der ein oder mehreren Rahmenfehler mit einer Schwellenanzahl von Rahmenfehlern während der Periode vergleichen, wobei die Unterbrechungslogik eine Unterbrechung als Reaktion darauf anzeigen soll, dass die Anzahl der ein oder mehreren innerhalb der Periode erkannten Rahmenfehler die Rahmenfehlerschwellenanzahl erreicht.

Description

  • TECHNISCHES GEBIET
  • Mindestens eine Ausführungsform bezieht sich auf Verarbeitungsressourcen, die zum Durchführen und Erleichtern von Hochgeschwindigkeitskommunikation verwendet werden. Zum Beispiel betrifft mindestens eine Ausführungsform Technologie für Fehlerratenunterbrechungen in Hardware für eine Hochgeschwindigkeitsverbindung, z.B. eine GRS-(Ground-Referenced Signaling)-Verbindung.
  • HINTERGRUND
  • Kommunikationssysteme übertragen Signale von einem Sender zu einem Empfänger über ein(en) Kommunikationskanal oder -medium (z.B. Kabel, Leiterplatten, Verlinkungen, drahtlos usw.). In einigen Kommunikationssystemen können bei der Übertragung der Signale vom Sender zum Empfänger Fehler auftreten. Beispielsweise können aufgrund einer Sender und Empfänger koppelnden Verlinkung Fehler in einem vom Sender zum Empfänger übertragenen Rahmen (z.B. einem Satz von Bits) auftreten. In einigen konventionellen Kommunikationssystemen kann der Empfänger eine Unterbrechung zu einem Software-Stapel übertragen, wenn eine Schwellenzahl von Fehlern erreicht wird. In solchen Kommunikationssystemen kann die Verlinkung die Übertragung von Daten stabil fortsetzen, obwohl der Fehlerschwellenwert erreicht ist. Demgemäß kann der Empfänger in konventionellen Kommunikationssystemen übermäßig viele Unterbrechungen senden, was zu einer erhöhten Latenz und einer Leistungsminderung des Kommunikationssystems führt.
  • ZUSAMMENFASSUNG
  • Die Erfindung wird durch die Ansprüche definiert. Zur Veranschaulichung der Erfindung werden hier Aspekte und Ausführungsformen beschrieben, die in den Rahmen der Ansprüche fallen können oder auch nicht.
  • Eine Empfangsvorrichtung schließt Erkennungslogik, einen Fehlerzähler und eine Unterbrechungslogik ein. Die Erkennungslogik dient dazu, einen ersten Satz von Datenrahmen zu empfangen und einen oder mehrere Rahmenfehler in dem ersten Satz von Datenrahmen zu erkennen. Der Fehlerzähler dient zum Speichern der Anzahl der im ersten Satz von Datenrahmen erkannten ein oder mehreren Rahmenfehler. Die Unterbrechungslogik kann mit dem Fehlerzähler gekoppelt werden. Die Unterbrechungslogik soll eine Periode spezifizieren und die Anzahl der ein oder mehreren Rahmenfehler mit einer Schwellenanzahl von Rahmenfehlern während der Periode vergleichen, wobei die Unterbrechungslogik eine Unterbrechung als Reaktion darauf anzeigen soll, dass die Anzahl der ein oder mehreren innerhalb der Periode erkannten Rahmenfehler die Rahmenfehlerschwellenanzahl erreicht.
  • Ein Empfänger umfasst: Erkennungslogik zum Empfangen eines ersten Satzes von Datenrahmen und zum Erkennen eines oder mehrerer Rahmenfehler im ersten Satz von Datenrahmen; einen Fehlerzähler zum Speichern einer Anzahl der ein oder mehreren im ersten Satz von Datenrahmen erkannten Rahmenfehler; und Unterbrechungslogik, die mit dem Fehlerzähler gekoppelt ist, wobei die Unterbrechungslogik eine Periode spezifiziert und die Anzahl der ein oder mehreren Rahmenfehler mit einer Schwellenanzahl von Rahmenfehlern während der Periode vergleicht, wobei die Unterbrechungslogik eine Unterbrechung als Reaktion darauf anzeigen soll, dass die Anzahl der ein oder mehreren innerhalb der Periode erkannten Rahmenfehler die Rahmenfehlerschwellenanzahl erreicht.
  • Die Unterbrechungslogik kann Folgendes umfassen: eine Zeitperiodenlogik, die zum Übertragen eines Signal zum Fehlerzähler konfiguriert ist, um die Periode zu spezifizieren; und eine Vergleichslogik, die zum Vergleichen der Anzahl der ein oder mehreren Rahmenfehler am Fehlerzähler mit der Rahmenfehlerschwellenanzahl während der Periode konfiguriert ist.
  • Die Unterbrechungslogik kann ferner dazu dienen, die Periode aus mehreren Zeitperioden auszuwählen.
  • Die Unterbrechungslogik kann ferner dazu dienen, die Rahmenfehlerschwellenanzahl aus einer Mehrzahl von Rahmenfehlerschwellenanzahlen auszuwählen.
  • Die Unterbrechungslogik kann die Periode spezifizieren, die einem ersten Takt mit einer ersten Frequenz entspricht, und wobei die Empfangsvorrichtung einen zweiten Takt mit einer zweiten Frequenz umfasst, die höher als die erste Frequenz ist.
  • Die Unterbrechungslogik kann ferner dienen zum: Vergleichen der Anzahl der ein oder mehreren erkannten Rahmenfehler mit einer zweiten Rahmenfehlerschwellenanzahl als Reaktion darauf, dass die Anzahl der ein oder mehreren innerhalb der Periode erkannten Rahmenfehler die Rahmenfehlerschwellenanzahl erreicht; und Anzeigen einer zweiten Unterbrechung als Reaktion darauf, dass die Anzahl der ein oder mehreren erkannten Rahmenfehler die zweite Rahmenfehlerschwellenanzahl erreicht.
  • Eine Vorrichtung, die Folgendes umfasst: einen Datenlink-(DL)-Empfänger, eine Logikvorrichtung und einen Zähler, wobei die Vorrichtung dient zum: Empfangen eines ersten Satzes von Datenrahmen; Durchführen einer Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von empfangenen Datenrahmen; Aktualisieren eines Zählerwerts, an dem Zähler, auf einen ersten Zählwert, der einer Anzahl von Fehlern entspricht, die als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen erkannt wurden; Empfangen eines Signals, an dem Zähler von der Logikvorrichtung, nach einer Zeitperiode, die mit einem Taktzyklus der Logikvorrichtung assoziiert ist; und Reduzieren des ersten Zählwerts auf einen zweiten Zählwert als Reaktion auf den Empfang des Signals von der Logikvorrichtung.
  • Die Vorrichtung kann ferner dienen zum: Empfangen eines zweiten Satzes von Datenrahmen; Durchführen der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; Aktualisieren des Zählerwertes, an dem Zähler, auf einen dritten Zählwert als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; und Feststellen, dass der dritte Zählwert eine Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählerwerts auf den dritten Zählwert erreicht.
  • Die Vorrichtung kann ferner dienen zum: Feststellen, dass der dritte Zählwert eine zweite Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählerwerts auf den dritten Zählwert nicht erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer ersten Unterbrechung assoziiert ist.
  • Die Vorrichtung kann ferner dienen zum: Feststellen, dass der dritte Zählwert eine zweite Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählerwertes auf den dritten Zählwert erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl und die zweite Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer zweiten Unterbrechung assoziiert ist.
  • Der zweite Zählwert kann ein Rücksetzwert sein.
  • Die Vorrichtung kann ferner dienen zum: Einstellen der Zeitperiode auf eine zweite Zeitperiode, die sich von der Zeitperiode unterscheidet; und Empfangen eines zweiten Signals, an dem Zähler von der Logikvorrichtung, nach dem Verstreichen der zweiten Zeitperiode.
  • Die Vorrichtung kann ferner dienen zum: Empfangen eines zweiten Satzes von Datenrahmen; Durchführen der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; Empfangen eines Rücksetzsignal nach dem Durchführen der Fehlererkennungsoperation an jedem Datenrahmen; und Aktualisieren des Zählerwertes vom zweiten Zählwert auf einen dritten Zählwert als Reaktion auf den Empfang des Rücksetzsignals.
  • Ein Verfahren beinhaltet: Empfangen, an einer einen Zähler und eine Logikvorrichtung umfassenden Vorrichtung, eines ersten Satzes von Datenrahmen; Durchführen, an der Vorrichtung, einer Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von empfangenen Datenrahmen; Aktualisieren, an dem Zähler, eines Zählerwerts auf einen ersten Zählwert entsprechend einer Anzahl von Fehlern, die als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen erkannt wurden; Empfangen, an dem Zähler, eines Signals von der Logikvorrichtung nach einer mit einem Taktzyklus der Logikvorrichtung assoziierten Zeitperiode; und Reduzieren des ersten Zählwerts auf einen zweiten Zählwert als Reaktion auf den Empfang des Signals von der Logikvorrichtung.
  • Das Verfahren kann ferner Folgendes beinhalten: Empfangen eines zweiten Satzes von Datenrahmen; Durchführen der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; Aktualisieren des Zählerwerts, an dem Zähler, auf einen dritten Zählwert als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; und Feststellen, dass der dritte Zählwert als Reaktion auf die Aktualisierung des Zählerwerts auf den dritten Zählwert eine Fehlerschwellenanzahl erreicht.
  • Das Verfahren kann ferner Folgendes beinhalten: Feststellen, dass der dritte Zählwert eine zweite Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählerwerts auf den dritten Zählwert nicht erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer ersten Unterbrechung assoziiert ist.
  • Das Verfahren kann ferner Folgendes beinhalten: Feststellen, dass der dritte Zählwert eine zweite Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählerwerts auf den dritten Zählwert erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl und die zweite Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer zweiten Unterbrechung assoziiert ist.
  • Ein Verfahren beinhaltet: Empfangen, an einer eine Logikvorrichtung umfassenden Vorrichtung, eines ersten Satzes von Datenrahmen; Durchführen einer Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von empfangenen Datenrahmen; und Vergleichen, an einem Zähler, einer Anzahl von innerhalb einer von der Logikvorrichtung angezeigten Periode erkannten Fehlern mit einer Fehlerschwellenanzahl, wobei die Vorrichtung zum Anzeigen einer Unterbrechung als Reaktion darauf konfiguriert ist, dass die Anzahl von innerhalb der Periode erkannten Fehlern die Schwellenfehleranzahl erreicht.
  • Das Verfahren kann ferner Folgendes beinhalten: Empfangen, von einer Zeitperiodenlogik am Zähler, eines die Periode spezifizierenden Signals, wobei das Signal die Periode entsprechend einem ersten Takt mit einer ersten Frequenz spezifiziert, und wobei die Vorrichtung einen zweiten Takt mit einer zweiten Frequenz umfasst, die höher als die erste Frequenz ist.
  • Das Verfahren kann ferner Folgendes beinhalten: Vergleichen der Anzahl von erkannten Fehlern mit einer zweiten Fehlerschwellenanzahl als Reaktion darauf, dass die Anzahl der innerhalb der Periode erkannten Fehler die Fehlerschwellenanzahl erreicht; und Anzeigen einer zweiten Unterbrechung als Reaktion darauf, dass die Anzahl der erkannten Fehler die zweite Fehlerschwellenanzahl erreicht.
  • Jedes Merkmal eines Aspekts oder einer Ausführungsform kann auf andere Aspekte oder Ausführungsformen in jeder geeigneten Kombination angewendet werden. Insbesondere kann jedes Merkmal eines/r Verfahrensaspekts oder -ausführungsform auf eine(n) Geräteaspekt oder -ausführungsform angewandt werden und umgekehrt.
  • Figurenliste
  • Verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung werden mit Bezug auf die Zeichnungen beschrieben. Dabei zeigt:
    • 1 ein Beispiel für ein Kommunikationssystem, das ein Verfahren für Fehlerratenunterbrechungen in Hardware anwendet, gemäß zumindest einigen Ausführungsformen;
    • 2 einen beispielhaften Rahmen, der in einem Kommunikationssystem übermittelt wird, gemäß mindestens einigen Ausführungsformen;
    • 3 einen beispielhaften Empfänger, der ein Verfahren für Fehlerratenunterbrechungen in Hardware anwendet, gemäß mindestens einigen Ausführungsformen;
    • 4A und 4B Beispiele für einen Fehlerzähler und Periodenlogik für Fehlerratenunterbrechungen in Hardware gemäß mindestens einigen Ausführungsformen;
    • 5 ein Timing-Diagramm zur Veranschaulichung von Fehlerratenunterbrechungen in Hardware gemäß mindestens einigen Ausführungsformen;
    • 6 ein Flussdiagramm eines Verfahrens für Fehlerunterbrechungen in einem schnellen Verbindungssystem gemäß zumindest einigen Ausführungsformen;
    • 7 ein beispielhaftes Computersystem mit einem Transceiver, der eine Chip-zu-Chip-Verbindung für Fehlerratenunterbrechungen in Hardware enthält, gemäß mindestens einigen Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Kommunikationssysteme übertragen Signale von einem Sender zu einem Empfänger über ein(en) Kommunikationskanal oder -medium (z.B. Kabel, Leiterplatten, Verlinkungen, drahtlos, usw.). In einigen Kommunikationssystemen kann die Verlinkung verursachen, dass Fehler beim Übertragen von Daten oder Signalen vom Sender zum Empfänger auftreten. Die Verlinkung kann innerhalb eines akzeptablen Fehlerbereichs zuverlässig sein; z.B. kann die Verlinkung zuverlässig sein, wenn eine Anzahl von auftretenden Fehlern innerhalb des akzeptablen Fehlerbereichs liegt, und unzuverlässig, wenn die Anzahl von auftretenden Fehlern außerhalb des akzeptablen Fehlerbereichs liegt. Der akzeptable Fehlerbereich kann während eines mit der Verlinkung assoziierten Herstellungsprozesses bestimmt werden. In konventionellen Kommunikationssystemen kann der Empfänger die Anzahl der auftretenden Fehler erkennen und eine Unterbrechung an einen mit dem Empfänger assoziierten Software-Stapel (z.B. Boot- oder Laufzeit-Software, Firmware oder andere die Verlinkung und Hardware steuernde Entitäten) auslösen, wenn die Fehleranzahl einen Fehlerschwellenwert überschreitet, z.B. wenn der Empfänger erkennt, dass die Fehleranzahl außerhalb des akzeptablen Fehlerbereichs liegt. Beispielsweise können Daten vom Sender zum Empfänger über die Verlinkung in Rahmen fester Länge übertragen werden; z.B. kann jeder Rahmen eine gleiche Menge Bits enthalten. Der Empfänger kann Fehlererkennungsoperationen an den empfangenen Rahmen durchführen, um eine Rahmenfehlerrate (FER) zu bestimmen. Der Empfänger kann eine Unterbrechung zum Software-Stapel senden, wenn die Rahmenfehlerrate einen mit der Verlinkung assoziierten Rahmenfehlerratenschwellenwert überschreitet. In solchen Kommunikationssystemen kann die Software auf der Basis des Empfangs der Unterbrechung bestimmen, ob eine Maßnahme zur Reduzierung der Rahmenfehlerrate ergriffen werden soll.
  • In einigen Kommunikationssystemen kann die Verlinkung über eine lange Periode hinweg zuverlässig Daten übertragen, selbst wenn der Rahmenfehlerratenschwellenwert überschritten wird. Beispielsweise kann die Verlinkung weiterhin zuverlässig Daten übertragen, wenn der Rahmenfehlerratenschwellenwert nach Ablauf einer ersten Periode überschritten wird; z.B. ist die Periode lang genug, dass der Software-Stapel bestimmen kann, keine Maßnahmen zu ergreifen, obwohl der Empfänger die Unterbrechung angezeigt hat. Demgemäß kann der Empfänger übermäßig viele Unterbrechungen zum Software-Stapel senden, wenn er jedes Mal eine Unterbrechung auslöst, wenn die Fehlerschwellenanzahl erreicht ist. Übermäßig viele Unterbrechungen an den Software-Stapel können Verarbeitungszeiten, Software-Overhead und Umlauflatenz erhöhen; z.B. kann die Verarbeitung der übermäßig vielen Unterbrechungen die Leistung des Kommunikationssystems verringern. Da die Unterbrechungen mit zusätzlichen Verarbeitungszeiten assoziiert sind, kann sich außerdem die Genauigkeit der Bestimmung der Rahmenfehlerrate verringern. Beispielsweise kann sich aufgrund der Verarbeitungszeiten die tatsächliche Anzahl der erkannten Fehler erhöhen, während der Software-Stapel eine vorherige Unterbrechung verarbeitet, wodurch die Genauigkeit der vom Software-Stapel durchgeführten Verarbeitung abnimmt.
  • Vorteilhafterweise können Aspekte der vorliegenden Offenbarung die obigen Mängel und andere Herausforderungen durch Bereitstellen eines Verfahrens für Fehlerratenunterbrechungen in Hardware für eine Hochgeschwindigkeitsverbindung angehen. Zum Beispiel kann der Empfänger Unterbrechungslogik enthalten, die eine Unterbrechung auslöst, wenn eine Anzahl von erkannten Fehlern eine Fehlerschwellenanzahl innerhalb einer programmierbaren Periode erreicht. In solchen Beispielen kann ein Software-Stapel (z.B. Boot- oder Laufzeit-Software, Firmware oder andere die Verlinkung und Hardware steuernde Entitäten) die Fehlerschwellenanzahl und die programmierbare Periode in die Unterbrechungslogik programmieren. In einigen Beispielen kann die Unterbrechungslogik mit zwei Fehlerschwellenanzahlen programmiert werden. So kann die Unterbrechungslogik beispielsweise mit einer mit einer ersten Unterbrechung assoziierten ersten Fehlerschwellenanzahl und einer mit einer zweiten Unterbrechung assoziierten zweiten Fehlerschwellenanzahl programmiert werden. Die erste Unterbrechung kann eine weiche Unterbrechung sein, die es dem Software-Stapel ermöglicht, sich auf zusätzliche Fehler vorzubereiten; z.B. kann der Software-Stapel die Geschwindigkeit der Verlinkung verringern oder über Zurücksetzen und Abschalten der Verlinkung hinausgehende zusätzliche Maßnahmen ergreifen. Die zweite Unterbrechung kann eine harte Unterbrechung sein, die den Software-Stapel veranlasst, die Verlinkung abzuschalten oder neu zu trainieren.
  • Gemäß Ausführungsformen kann der Empfänger Fehlererkennungsoperationen an vom Sender empfangenen eingehenden Rahmen durchführen. Die Unterbrechungslogik kann auftretende Fehler (z.B. Rahmenfehler) zählen. Die Unterbrechungslogik kann auch mit einer Periodenuhr gekoppelt sein, die anzeigt, wann die programmierbare Periode abgelaufen ist. In solchen Beispielen kann die Unterbrechungslogik die Zahl der Fehler (z.B. einen gespeicherten Wert, der der Fehleranzahl entspricht) nach Ablauf jeder Periode zurücksetzen oder dekrementieren. Beispielsweise kann die Unterbrechungslogik die Fehleranzahl bei jedem Periodenablauf auf Null (0) zurücksetzen, wie von der Periodenuhr angezeigt. In anderen Beispielen kann die Unterbrechungslogik die Fehleranzahl nach jedem Ablauf der Periode um einen bestimmten Wert reduzieren, z.B. die Fehleranzahl nach jedem Ablauf der Periode um drei (3) reduzieren. Wenn die Unterbrechungslogik feststellt, dass die Anzahl der erkannten Fehler den ersten Schwellenwert innerhalb einer jeweiligen Periode erreicht, kann die Unterbrechungslogik die erste Unterbrechung zum Software-Stapel übertragen und mit der Erkennung weiterer Fehler fortfahren. Wenn die Unterbrechungslogik feststellt, dass die Anzahl der erkannten Fehler den zweiten Schwellenwert innerhalb der jeweiligen Periode erreicht, kann die Unterbrechungslogik die zweite Unterbrechung zum Software-Stapel übertragen. Demgemäß kann der Empfänger weniger Unterbrechungen zum Software-Stapel übertragen, da die Unterbrechung ausgelöst wird, wenn die Fehlerzahl innerhalb der programmierbaren Periode erreicht wird.
  • Durch Anwenden der Unterbrechungslogik und Übertragen von Unterbrechungen, wenn die Fehlerschwellenanzahl innerhalb der programmierbaren Periode erreicht wird, kann das Kommunikationssystem Verarbeitungszeiten und Umlauflatenzen reduzieren und die Gesamtleistung des Kommunikationssystems verbessern. Da die Unterbrechungslogik die Fehleranzahl bestimmt und bestimmt, ob eine Unterbrechung ausgelöst werden soll, kann die Unterbrechungslogik außerdem Unterbrechungen präzise zum Software-Stapel übertragen. Demgemäß ermöglichen Ausführungsformen der vorliegenden Anmeldung ein zuverlässigeres Verfahren für Fehlerunterbrechungen in einem schnellen Verbindungssystem.
  • 1 illustriert ein beispielhaftes Kommunikationssystem 100 gemäß mindestens einer beispielhaften Ausführungsform. Das System 100 umfasst einen Host 102-a, einen Host 102-b, eine erste Vorrichtung 104-a und eine zweite Vorrichtung 104-b. Das System 100 umfasst auch eine Verlinkung 106, die die erste Vorrichtung 104-a und die zweite Vorrichtung 104-b koppelt. Jede Vorrichtung 104 kann einen Transceiver 125 enthalten, der einen Sender 130, einen Empfänger 135, eine Digitaldatenquelle 140 und Verarbeitungsschaltung 145 beinhaltet. Jeder Sender 130 kann eine Transaktionsschicht (TL) 108, eine Datenschicht (DL) 110 und eine physikalische Schicht (PL) 112 enthalten, und jeder Empfänger 135 kann eine TL 114, eine DL 116 und eine PL 118 enthalten.
  • In mindestens einem Beispiel können die Hosts 102 oder Vorrichtungen 104 einem oder mehreren von einem Personal Computer (PC), einem Laptop, einem Tablet, einem Smartphone, einem Server, einer Sammlung von Servern oder dergleichen entsprechen. In einigen Beispielen können die Hosts 102 einem beliebigen geeigneten Vorrichtungstyp entsprechen, der mit anderen Vorrichtungen kommuniziert und ebenfalls mit einer gemeinsamen Verlinkung 106 verbunden ist. In einigen Beispielen können die Hosts 102 Befehle oder Daten zu Vorrichtungen 104 übertragen. In solchen Beispielen können Vorrichtungen 104 auf der Basis von Befehlen oder Daten, die von den Hosts 102 empfangen werden, Daten miteinander austauschen. Als weiteres spezifisches, aber nicht einschränkendes Beispiel können die Hosts 102 und Vorrichtungen 104 Servern entsprechen, die Informationsressourcen, Dienste und/oder Anwendungen für Benutzervorrichtungen, Client-Vorrichtungen oder andere Hosts im System 100 bieten.
  • In mindestens einer beispielhaften Ausführungsform können die erste Vorrichtung 104-a und die zweite Vorrichtung 104-b Beispiele für Chips sein; z.B. kann das System 100 ein Beispiel für ein Multi-Chip-Modul oder eine Chip-to-Chip-(C2C)-Verbindung sein. In solchen Beispielen können die Vorrichtungen 104 einzelne Chips oder Stapel von Chips sein. In einigen Beispielen können die Vorrichtungen 104 eine Grafikverarbeitungseinheit (GPU), einen Switch (z.B. einen schnellen Netzwerk-Switch), einen Netzwerkadapter, eine Zentraleinheit (CPU) usw. umfassen, um von den Hosts 102 empfangene Befehle oder Funktionen auszuführen. Jede Vorrichtung 104 kann einen Transceiver 125 zum Senden und Empfangen von Signalen, z.B. von Datensignalen, enthalten. Die Datensignale können digitale oder optische Signale sein, die mit Daten oder anderen geeigneten Signalen zum Führen von Daten moduliert sind. Jeder Transceiver 125 kann einen Empfänger 135 und einen Sender 130 beinhalten. Der Sender 130 enthält geeignete Software und/oder Hardware zum Empfangen digitaler Daten von der Digitaldatenquelle 140 und zum Ausgeben von Datensignalen gemäß den digitalen Daten zur Übertragung über die Verlinkung 106 zu einem Empfänger 135 der Vorrichtung 104-b. Der Empfänger 104 der Vorrichtung 110 und der Vorrichtung 112 kann geeignete Hardware und/oder Software zum Empfangen von Signalen, z.B. von Datensignalen von der Verlinkung 106, enthalten.
  • In einer Ausführungsform können die Vorrichtungen 104 bidirektional kommunizieren, z.B. vom Host 102-a zum Host 102-b oder vom Host 102-b zum Host 102-a. In einigen Beispielen kann jeder Empfänger 135 oder Sender 130 der Vorrichtungen 104 unabhängig und/oder simultan arbeiten. Beispielsweise kann der Empfänger 135-a der ersten Vorrichtung 104-a Daten vom Sender 130-b der zweiten Vorrichtung 104-b empfangen, während der Sender 130-a der ersten Vorrichtung 104-a simultan Daten zum Empfänger 135-b der zweiten Vorrichtung 104-b überträgt.
  • Jeder Sender 130 und Empfänger 135 in Vorrichtungen 104 kann eine Transaktionsschicht (TL) enthalten. In einigen Beispielen kann die TL 108 des Senders 130 zum Anfordern einer Transaktion, z.B. der Übertragung von Daten, konfiguriert sein. Zum Beispiel kann die TL 108 des Senders 130 Funktionen für andere Komponenten der Vorrichtungen 104 übermitteln oder Datenpakete dafür zusammenstellen. In einigen Beispielen kann die TL 108 des Senders 130 ein Transaktionsschichtpaket (TLP) erzeugen, das zur DL 110 zur weiteren Verarbeitung übertragen werden kann. In einigen Beispielen kann jeder Empfänger 135 in Vorrichtungen 104 auch eine Transaktionsschicht 114 enthalten. In einigen Beispielen kann die TL 114 des Empfängers 135 zum Abschließen einer Transaktion, z.B. der Übertragung von Daten, konfiguriert sein. Beispielsweise kann die TL 114 des Empfängers 135 Funktionen von anderen Komponenten des Empfängers jeder Vorrichtung 104 empfangen oder von diesen empfangene Pakete disassemblieren. In einigen Ausführungsformen kann die TL 114 des Empfängers 135 ein ankommendes TLP-Paket überprüfen, um sicherzustellen, dass das empfangene Paket gültig, z.B. fehlerfrei, ist.
  • Jeder Sender 130 und Empfänger 135 in Vorrichtungen 104 kann auch eine Datenschicht enthalten. In einigen Beispielen können die DL 110 und DL 116 zum Sicherstellen konfiguriert sein, dass über die Verlinkung 106 gesendete Daten korrekt und fehlerfrei sind. Zum Beispiel kann die DL 110 des Senders 130 ein(en) jeweiligen/s übertragenen/s Rahmen oder Paket mit einem Fehlercode, z.B. einem CRC-Wert, encodieren. Die DL 116 des Empfängers 125 kann einen Fehlercode auf der Basis des empfangenen Rahmens erzeugen und die in den Rahmen eingebettete CRC decodieren, um zu vergleichen, ob der erzeugte Fehlercode mit der übertragenen CRC übereinstimmt. In einigen Beispielen führt die DL 116 die Fehlerdecodierungsoperation durch, um festzustellen, ob die empfangenen Daten korrekt und fehlerfrei sind. In einigen Beispielen kann die DL 110 des Senders 130 zum Hinzufügen einer Sequenznummer als Header zu jedem übertragenen Rahmen oder Paket konfiguriert sein, und die DL 116 des Empfängers 135 kann auch zum Überprüfen der Sequenznummer konfiguriert sein. In einigen Beispielen können die DL 110 des Senders 130 und die DL 116 des Empfängers 135 Controller oder Steuerflusseinheiten enthalten oder damit gekoppelt sein, um die Fehlerdecodierungsoperationen an empfangenen Paketen oder Rahmen durchzuführen - z.B. die Verarbeitungsschaltung 145.
  • Zusätzlich kann jeder Sender 130 und Empfänger 135 in Vorrichtungen 104 eine physikalische Schicht (PL) enthalten. In einigen Beispielen können die PL 112 und PL 118 zum Senden und Empfangen von Daten über die Verlinkung 106 konfiguriert sein. Beispielsweise können die PL 112 und PL 118 Ein-/Ausgabe-(E/A)-Puffer, Parallel-Seriell- und Seriell-Parallel-Wandler, Impedanzanpassungsschaltungen, Logikschaltung usw. enthalten, um Datenpakete oder Rahmen über die Verlinkung 106 zu senden und zu empfangen.
  • Jeder Transceiver 125 kann eine Digitaldatenquelle 140 und Verarbeitungsschaltung 145 enthalten, die den Transceiver 125 steuert. Der Digitaldatengenerator 140 kann geeignete Hardware und/oder Software zum Ausgeben von Daten in einem digitalen Format (z.B. in Binärcode und/oder Thermometercode) enthalten. Die von der Digitaldatenquelle 140 ausgegebenen digitalen Daten können aus einem Arbeitsspeicher (nicht dargestellt) abgerufen oder gemäß einer Eingabe (z.B. einer Benutzereingabe) erzeugt werden.
  • Der Verarbeitungsschaltung 145 kann Software, Hardware oder eine Kombination davon umfassen. Beispielsweise kann die Verarbeitungsschaltung 145 einen Arbeitsspeicher mit ausführbaren Befehlen und einen Prozessor (z.B. einen Mikroprozessor) umfassen, der die Befehle im Arbeitsspeicher ausführt. Der Arbeitsspeicher kann jedem geeigneten Typ von Arbeitsspeichervorrichtung oder einer Sammlung von Arbeitsspeichervorrichtungen entsprechen, die zum Speichern von Befehlen konfiguriert sind. Nicht einschränkende Beispiele für geeignete Arbeitsspeichervorrichtungen, die verwendet werden können, sind Flash-Arbeitsspeicher, Random Access Memory (RAM), Read Only Memory (ROM), Varianten davon, Kombinationen davon oder dergleichen. In einigen Ausführungsformen können der Arbeitsspeicher und der Prozessor in eine gemeinsame Vorrichtung integriert sein (z.B. kann ein Mikroprozessor einen integrierten Arbeitsspeicher enthalten). Zusätzlich oder alternativ kann die Verarbeitungsschaltung 145 Hardware umfassen, z.B. eine anwendungsspezifische integrierte Schaltung (ASIC). Andere nicht einschränkende Beispiele für die Verarbeitungsschaltung 132 sind ein IC-(Integrated Circuit)-Chip, eine Zentraleinheit (CPU), eine Grafikverarbeitungseinheit (GPU), ein Mikroprozessor, ein FPGA (Field Programmable Gate Array), eine Sammlung von Logikgattern oder Transistoren, Widerständen, Kondensatoren, Induktoren, Dioden und dergleichen. Die Verarbeitungsschaltung 145 kann ganz oder teilweise auf einer Leiterplatte (PCB) oder einer Sammlung von PCBs untergebracht werden. Es ist zu verstehen, dass jeder geeignete Typ von elektrischen Komponenten oder einer Sammlung von elektrischen Komponenten für die Aufnahme in die Verarbeitungsschaltung 145 geeignet sein kann. Die Verarbeitungsschaltung 145 kann Signale zu und/oder von anderen Elementen des Transceivers 125 senden und/oder empfangen, um einen Gesamtbetrieb des Transceivers 125 zu steuern.
  • Der Transceiver 125 oder ausgewählte Elemente des Transceivers 125 können die Form einer steckbaren Karte oder eines Controllers für die Vorrichtung 104 haben. Zum Beispiel kann/können der Transceiver 125 oder ausgewählte Elemente des Transceivers 125 auf einer Netzwerkschnittstellenkarte (NIC) implementiert sein.
  • Die Verlinkung 106 kann ein Beispiel für ein Kommunikationsnetzwerk sein, das zum Verbinden der Vorrichtungen 104 verwendet werden kann, wie ein IP-(Internet Protocol)-Netzwerk, ein Ethernet-Netzwerk, ein IB-(InfiniBand)-Netzwerk, ein Fibre-Channel-Netzwerk, das Internet, ein zellulares Kommunikationsnetzwerk, ein drahtloses Kommunikationsnetzwerk, Kombinationen davon (z.B. Fibre Channel over Ethernet), ein PCIe (Peripheral Component Interconnect Express), Varianten davon und/oder dergleichen. In einem spezifischen, aber nicht einschränkenden Beispiel ist die Verlinkung 106 ein Netzwerk, das die Übertragung von Daten zwischen den Vorrichtungen 104 anhand von Datensignalen (z.B. digitale, optische, drahtlose Signale) ermöglicht.
  • In einer Ausführungsform kann die Verlinkung 106 zum Übertragen von Anforderungen, Daten, Funktionen, Befehlen usw. zwischen der ersten Vorrichtung 104-a und der zweiten Vorrichtung 104-b konfiguriert sein. In einem Beispiel kann die Verlinkung 106 Kabel, Leiterplatten, Verlinkungen, drahtlos usw. sein. In mindestens einer Ausführungsform kann die Verlinkung 106 ein Beispiel für eine GRS-(Ground-Referenced Signaling)-Verbindung sein. In solchen Beispielen kann die Verlinkung 106 RC-dominierte Kanäle und LC-Übertragungsleitungen enthalten. Darüber hinaus kann die GRS-Verbindung eine On-Chip-Verlinkung, eine Verlinkung über ein Substrat (z.B. ein organisches Gehäuse) oder eine über eine Leiterplatte (PCB) signalisierende Verlinkung sein. In einigen Beispielen kann GRS ein Massenetzwerk als Signalreferenzspannung verwenden; z.B. kann Masse die Rücksignalisierung sein. Obwohl nicht explizit dargestellt, ist zu verstehen, dass die Hosts 102 und Vorrichtungen 104 auch andere Verarbeitungsvorrichtungen, Speichervorrichtungen und/oder Kommunikationsschnittstellen beinhalten können, die im Allgemeinen mit Rechenaufgaben wie dem Senden und Empfangen von Daten assoziiert sind.
  • In einigen Beispielen enthält die DL 116 des Empfängers Unterbrechungslogik 150. In einigen Ausführungsformen kann Unterbrechungslogik 150 zum Bestimmen einer Anzahl von beim Empfang von Daten auftretenden Fehlern konfiguriert sein. Beispielsweise kann Unterbrechungslogik 150 eine Anzahl von Rahmenfehlern (z.B. eine Rahmenfehlerrate (FER)) bestimmen, wenn Rahmen von der Verlinkung 106 empfangen werden. In einigen Ausführungsformen kann die Unterbrechungslogik bei jedem eingehenden Rahmen Fehlererkennung durchführen, um die FER zu bestimmen. In mindestens einer Ausführungsform kann die Unterbrechungslogik die Rahmenfehleranzahl innerhalb einer programmierbaren Periode mit einer ersten Rahmenfehlerschwellenanzahl und einer zweiten Rahmenfehlerschwellenanzahl vergleichen, z.B. innerhalb einer Periode, die von der Verarbeitungsschaltung 145 oder einer anderen die DL 116 des Empfängers 135 steuernden Software spezifiziert wird. In solchen Ausführungsformen kann die erste Rahmenfehlerschwellenanzahl mit einer ersten Unterbrechung und die zweite Rahmenfehlerschwellenanzahl mit einer zweiten Unterbrechung assoziiert sein. In einigen Ausführungsformen kann die Verarbeitungsschaltung 145 oder andere die DL 116 des Empfängers 135 steuernde Software andere Abhilfemaßnahmen als eine Rücksetzung oder Abschaltung der Verlinkung 106 ergreifen, wenn die erste Unterbrechung empfangen wird (z.B. die Verlinkung 106 verlangsamen), oder die Verlinkung 106 herunterfahren und abschalten, wenn die zweite Unterbrechung empfangen wird. Die Unterbrechungslogik 150 kann zum Empfangen eines Signals von einer nicht mit der Verlinkung 106 assoziierten Uhr konfiguriert werden, die anzeigt, wann eine programmierbare Periode abgelaufen ist. Wenn die Periode abgelaufen ist, kann die Unterbrechungslogik 150 eine Periodenanzeige empfangen und die Rahmenfehleranzahl um einen bestimmten Wert verringern oder die Rahmenfehleranzahl zurücksetzen. Demgemäß kann die Unterbrechungslogik 150 die erste Unterbrechung auslösen, wenn die Rahmenfehleranzahl die erste Fehlerschwellenanzahl innerhalb der Periode erreicht, und/oder die zweite Unterbrechung auslösen, wenn die Rahmenfehleranzahl die zweite Fehlerschwellenanzahl innerhalb der Periode erreicht.
  • 2 illustriert einen beispielhaften Rahmen 200, der im Kommunikationssystem 100 übermittelt wird, wie mit Bezug auf 1 beschrieben. Beispielsweise kann der Rahmen 200 vom Sender 130 zum Empfänger 135 entweder von Vorrichtung 104-a zu 104-b oder von Vorrichtung 104-b zu Vorrichtung 104-a übertragen werden. In einer Ausführungsform kann der Rahmen 22 „N“ Flits 202 enthalten. Zum Beispiel kann ein gegebener Rahmen 200 zehn (10) Flits 202 enthalten. In einigen Beispielen kann jedes Flit 202 eine selbe Menge Bits enthalten; z.B. ist jedes Flit 202 „X“ Bits breit. Zum Beispiel kann jedes Flit 202 128 Bits breit sein. In einigen Beispielen kann die DL 110 des Senders 130 ein (1) Flit pro Taktzyklus übertragen. Demgemäß kann jeder Rahmen in „N“ Taktzyklen auf der Basis der Anzahl „N“ von Flits 202 übertragen werden. Zusätzlich kann jeder Rahmen 200 eine Fehlercode-CRC 208 enthalten. Die DL 110 ist zum Erzeugen der CRC 208 für den gesamten Rahmen konfiguriert. In solchen Ausführungsformen ist die DL 116 des Empfängers 135 zum Ausführen einer Fehlerdecodierungsoperation über die „N“ Flits 202 für jeden Rahmen 200 konfiguriert; z.B. ist die Unterbrechungslogik 150 zum Durchführen einer Fehlerdecodierungsoperation nach dem Empfang von „N“ Flits 202 entsprechend einer Größe oder Breite des Rahmens 200 konfiguriert. Das heißt, die Fehlerdecodierungsoperation wird mit einer Rahmengranularität ausgeführt, z.B. wird eine Rahmenfehlerrate (FER) bestimmt. In einigen Ausführungsformen kann der Rahmen 200 ein (1) Flit 202 enthalten. In solchen Ausführungsformen kann die Fehlerdecodierungsoperation im Wesentlichen mit einer Flit-Granularität ausgeführt werden, da jeder Rahmen 200 ein (1) Flit 202 enthält. In einigen Ausführungsformen kann die DL 110 des Senders 130 einen anderen Fehlererkennungscode erzeugen, z.B. einen anderen Fehlererkennungscode als CRC. Zum Beispiel kann die DL 110 des Senders 130 eine Paritätsprüfung oder eine Prüfsumme erzeugen. In beiden Beispielen kann der vom Sender 130 ausgewählte Fehlererkennungscode in den Rahmen 200 eingebettet und zur DL 116 des Empfängers 135 übertragen werden. Jeder Rahmen 200 kann auch einen Header 204 enthalten.
  • 3 illustriert eine beispielhafte Datenlink-(DL)-Schicht 120 eines Empfängers gemäß mindestens einer beispielhaften Ausführungsform. In mindestens einer Ausführungsform ist die DL 120 ein Beispiel für eine DL 120, wie mit Bezug auf 1 beschrieben. Die DL 120 kann in einem Empfänger 135 sein, wie mit Bezug auf 1 beschrieben. In einer Ausführungsform kann die DL 120 Fehlerlogik 305, einen Fehlerzähler 310, Schwellenlogik 315 und Periodenlogik 320 enthalten. In einer Ausführungsform können die Komponenten der DL 120 Signale von einem Software-Stapel empfangen, z.B. von Boot- oder Laufzeit-Software, Firmware oder anderen Entitäten, die die Verlinkung und die DL 120 steuern.
  • In einigen Ausführungsformen kann Fehlerlogik 305 zum Empfangen des/der Rahmen(s) 200 konfiguriert sein. In einer Ausführungsform kann Fehlerlogik 305 eine Fehlererkennungsoperation an dem empfangenen Rahmen 200 durchführen. Beispielsweise kann Fehlerlogik 305 CRC-Fehlererkennung mit Hilfe des in den Rahmen 200 eingebetteten CRC-Codes ausführen, wie mit Bezug auf 2 beschrieben, z.B. einen Teil der Bits des Rahmens zum Durchführen der Fehlererkennungsoperation verwenden. In einer Ausführungsform kann die Fehlerlogik 305 eine Anzeige eines Fehlers 308 zum Fehlerzähler 310 übertragen. In einer Ausführungsform kann die Fehlerlogik 305 durch einen ersten Takt 325 getaktet werden. In einer Ausführungsform kann der erste Takt 325 der Takt des Empfängers 135 sein. In einer Ausführungsform kann der erste Takt 325 mit einer Daten- oder Flitrate, z.B. mit dem Empfang von Rahmen 200 assoziiert sein.
  • In einer Ausführungsform kann der Fehlerzähler 310 zum Zählen von Fehlern 308 konfiguriert sein; z.B. kann der Fehlerzähler 310 einen Wert speichern, der der Anzahl von Fehlern 308 entspricht. Beispielsweise kann der Fehlerzähler 310 eine von der Fehlerlogik 305 ermittelte Anzahl von Fehlern 308 verfolgen, um eine Fehlerzahl 312 zu bestimmen. In einigen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 innerhalb einer Periode bestimmen. Zum Beispiel kann der Fehlerzähler 310 eine Periodenmarkierung 360 empfangen, die anzeigt, wann eine Periode abgelaufen ist. In einigen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 zurücksetzen, wenn eine jeweilige Periode abgelaufen ist, z.B. wenn das Dekrement-Signal 330 Null ist. In einigen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 reduzieren, wenn die jeweilige Periode abgelaufen ist. Beispielsweise kann der Fehlerzähler 310 ein Dekrement-Signal 330 vom Software-Stapel empfangen und die Fehlerzahl 312 um einen im Dekrement-Signal 330 angegebenen Wert reduzieren; z.B. kann der Fehlerzähler 310 die Fehlerzahl 312 um fünf (5) dekrementieren, wenn das Dekrement-Signal 330 einen Wert von fünf (5) angibt. Das heißt, der Fehlerzähler 310 kann die Fehlerzahl 312 zurücksetzen, wenn das Dekrement-Signal einen Wert von Null (0) hat, oder die Fehlerzahl 312 um einen Wert dekrementieren, wenn das Dekrement-Signal 330 ein Wert von ungleich Null ist. In einigen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 jedes Mal um denselben Wert dekrementieren, wenn die Periode abgelaufen ist. In anderen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 bei jedem Ablauf der Periode auf der Basis des Dekrement-Signals 330 um verschiedene Werte dekrementieren. Durch das Dekrementieren der Fehlerzahl 312 kann der Fehlerzähler 310 die Anzahl von Fehlern 308 über eine gleitende Periode verfolgen; z.B. wird die Fehlerzahl 312 nicht nach jeder Periode zurückgesetzt, so dass sich die Fehlerzahl 312 über mehrere Perioden erstrecken kann. In einigen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 auf der Basis des Empfangs eines Neustart-Signals 350 zurücksetzen. In einer Ausführungsform kann der Fehlerzähler 310 zum Senden der Fehlerzahl 312 zur Schwellenwertlogik 315 konfiguriert sein. In einigen Ausführungsformen kann der Fehlerzähler 310 durch den ersten Takt 325 getaktet werden. Weitere Einzelheiten zum Fehlerzähler 310 werden mit Bezug auf 4A beschrieben.
  • In einigen Ausführungsformen kann die Schwellenwertlogik 315 die Fehlerzahl 312 (z.B. den mit der Fehleranzahl assoziierten gespeicherten Wert) mit einem oder mehreren Fehlerschwellenwerten 340 vergleichen. In einer Ausführungsform kann der Software-Stapel Fehlerschwellenwerte 340 in die Schwellenwertlogik 315 programmieren. Die Schwellenwertlogik 315 kann die empfangene Fehlerzahl 312 mit den programmierten Fehlerschwellenwerten 340 vergleichen. In einigen Ausführungsformen kann die Schwellenwertlogik 315 mit zwei (2) Fehlerschwellenwerten 340 programmiert werden. In solchen Ausführungsformen kann ein erster Fehlerschwellenwert 340 mit einer ersten Unterbrechung 335 (z.B. einer weichen Unterbrechung) und ein zweiter Fehlerschwellenwert 340 mit einer zweiten Unterbrechung 335 (z.B. einer harten Unterbrechung) assoziiert sein. Demgemäß kann die Schwellenwertlogik 315 die erste Unterbrechung 335 übertragen, wenn der erste Fehlerschwellenwert 340 erreicht ist (z.B. wenn die Fehlerzahl 312 gleich dem oder höher als der erste(n) Fehlerschwellenwert 340 ist), und die zweite Unterbrechung 335 übertragen, wenn der zweite Fehlerschwellenwert 340 erreicht ist (z.B. wenn die Fehlerzahl 312 gleich dem oder höher als der zweite(n) Fehlerschwellenwert 340 ist). In einigen Ausführungsformen kann der Software-Stapel keine Maßnahmen ergreifen, wenn die weiche Unterbrechung empfangen wird. In anderen Ausführungsformen kann der Software-Stapel Maßnahmen ergreifen, um die Anzahl der beim Empfang der weichen Unterbrechung auftretenden Fehler zu verringern, z.B. vorbeugende Maßnahmen ergreifen. Beispielsweise kann der Software-Stapel die Verlinkungsrate (z.B. die Geschwindigkeit, mit der die Verlinkung arbeitet) reduzieren, wodurch die Anzahl der auftretenden Fehler 308 reduziert werden kann. In einigen Ausführungsformen kann der Software-Stapel eine Vorrichtung (z.B. die Vorrichtung 106) zurücksetzen oder abschalten oder die Verlinkung neu trainieren, wenn die harte Unterbrechung empfangen wird. In solchen Ausführungsformen ist der zweite Fehlerschwellenwert 340 höher als der erste Fehlerschwellenwert 340.
  • In einigen Ausführungsformen ist die Periodenlogik 320 zum Feststellen konfiguriert, wann eine jeweilige Periode abgelaufen ist. Beispielsweise kann über die vom Software-Stapel gesendete Periodenanzeige 345 eine Periode in die Periodenlogik 320 programmiert werden. In einer Ausführungsform kann die Periodenlogik 320 durch einen zweiten Takt 355 getaktet werden. In einigen Ausführungsformen kann der zweite Takt 355 unabhängig vom ersten Takt 325 sein, z.B. unabhängig von der Daten- oder Flitrate. In einigen Ausführungsformen kann der zweite Takt 355 langsamer sein als der erste Takt 235; z.B. kann der zweite Takt 355 eine niedrigere Taktrate oder Taktgeschwindigkeit haben als der erste Takt 325. In einigen Ausführungsformen kann der zweite Takt 355 eine erste Frequenz und der erste Takt 325 eine zweite Frequenz haben, wobei die erste Frequenz niedriger als die zweite Frequenz ist. In einigen Ausführungsformen kann die Periodenlogik 320 die Takte zählen, die seit dem Ablauf einer letzten Periode verstrichen sind. In solchen Ausführungsformen kann die Periodenlogik 320 eine Periodenmarkierung 350 erzeugen, wenn die Taktzahl die programmierte Periode (z.B. die Periodenanzeige 345) erreicht. Das heißt, die Periodenlogik 320 kann ermitteln, wann eine Periode abgelaufen ist, und die Anzeige zum Fehlerzähler 310 übertragen. In einigen Ausführungsformen kann die Periodenlogik 320 ein Neustart-Signal 350 empfangen. In solchen Ausführungsformen kann die Periodenlogik 320 die Taktanzahl zurücksetzen und die Periodenmarkierung 360 zum Fehlerzähler 310 senden; z.B. kann die Periodenlogik 320 die Periode zurücksetzen. Zusätzliche Details bezüglich des Fehlerzählers 310 werden mit Bezug auf 4B beschrieben.
  • 4A illustriert einen beispielhaften Fehlerzähler 310, wie mit Bezug auf 3 beschrieben. In einigen Ausführungsformen kann der Fehlerzähler 310 mit einer Fehlerlogik 305, einer Schwellenwertlogik 315 und einer Periodenlogik 320 gekoppelt sein, wie mit Bezug auf 3 beschrieben. In einigen Ausführungsformen kann der Fehlerzähler 310 Multiplexer 405-a, Multiplexer 405-b, Multiplexer 405-c, Subtraktionslogik 410, Additionslogik 415 und Logik 420 umfassen. In einer Ausführungsform können die Komponenten des Fehlerzählers 310 Signale von einem Software-Stapel empfangen, z.B. von Boot- oder Laufzeit-Software, Firmware oder anderen die Verlinkung und die DL 120 steuernden Entitäten.
  • In einigen Ausführungsformen ist der Fehlerzähler 310 zum Bestimmen einer Fehlerzahl 312 (z.B. einen Wert entsprechend einer Anzahl von Fehlern 308) innerhalb einer spezifizierten Periode konfiguriert, z.B. einer von einem Software-Stack spezifizierten programmierbaren Periode, wie mit Bezug auf 3 beschrieben. Zum Beispiel kann der Fehlerzähler 310 eine Anzeige eines Fehlers 308 von der Fehlerlogik 305 empfangen. Die Additionslogik 415 kann zum Addieren von eins (1) zur Fehlerzahl 312 bei Empfang des Fehlers 308 konfiguriert werden; z.B. wird die Fehlerzahl 312 (z.B. der gespeicherte Wert) bei jedem Empfang eines Fehlers 308 erhöht. In einigen Ausführungsformen kann die Additionslogik 415 ein Beispiel für einen Addierer mit einer geeigneten Überlaufrichtlinie sein. Die Additionslogik 415 kann zum Senden der Fehlerzahl 312 nach dem Addieren von eins (1) zum Multiplexer 405-a, zum Multiplexer 405-b und zur Subtraktionslogik 410 konfiguriert werden.
  • In einigen Ausführungsformen ist der Multiplexer 405-a zum Empfangen der Fehlerzahl 312 von der Additionslogik 415 konfiguriert. In einigen Beispielen kann der Multiplexer 405-a das Dekrement-Signal 330 vom Software-Stack empfangen. In einigen Ausführungsformen ist das Dekrement-Signal 330 ein vom Software-Stack programmierter Konfigurationswert, z.B. ein pseudostatischer Wert, der nach der Programmierung konstant bleibt. In einigen Ausführungsformen kann der Multiplexer 405-a entweder das Dekrement-Signal 330 oder die von der Additionslogik 415 bereitgestellten Fehlerzahl 312 zur Ausgabe auswählen. So kann der Multiplexer beispielsweise die von der Additionslogik 415 bereitgestellte Fehlerzahl 312 auswählen, wenn das Dekrement-Signal 330 einen Wert von Null hat. In anderen Beispielen kann der Multiplexer das Dekrement-Signal 330 auswählen, wenn das Dekrement-Signal 330 einen Wert von ungleich Null hat. Demgemäß wird die Fehlerzahl 312 nach Ablauf einer Periode zurückgesetzt, es sei denn, das Dekrement-Signal 330 hat einen Wert von ungleich Null.
  • In einer Ausführungsform ist die Subtraktionslogik 410 zum Reduzieren der Fehlerzahl 312 konfiguriert. In einigen Ausführungsformen kann die Subtraktionslogik 410 die Fehlerzahl 312 auf Null (0) zurücksetzen, wenn der Fehlerzähler 310 eine Periodenmarkierung 360 empfängt und das Dekrement-Signal einen Wert von Null (0) hat. In einigen Ausführungsformen kann die Subtraktionslogik 410 die Fehlerzahl 312 um einen durch das Dekrement-Signal 330 angegebenen Wert reduzieren. Zum Beispiel kann die Subtraktionslogik 410 die Fehlerzahl 312 um vier (4) reduzieren, wenn das Dekrement-Signal 330 einen Wert von vier (4) hat und eine Periodenmarkierung 360 empfangen wird. In anderen Ausführungsformen kann die Subtraktionslogik 410 die Fehlerzahl 312 je nach dem Wert des Dekrement-Signals 330 um einen anderen Wert reduzieren. Das heißt, die Subtraktionslogik 410 kann die Fehlerzahl 312 zurücksetzen, wenn der Multiplexer 405-a die Fehlerzahl 312 von der Additionslogik 415 auswählt, oder die Fehlerzahl 312 um einen Wert dekrementieren, wenn der Multiplexer 405-a das Dekrement-Signal 330 auswählt.
  • Der Multiplexer 405-b ist zum Ausgeben der Fehlerzahl 312 an den Multiplexer 405-c konfiguriert. In einer Ausführungsform kann der Multiplexer 405-b die von der Additionslogik 415 empfangene Fehlerzahl 312 ausgeben. In einigen Ausführungsformen kann der Multiplexer 405-b die/das von der Subtraktionslogik 410 empfangene Fehlerzahl 312 oder Signal ausgeben. Zum Beispiel kann der Multiplexer 405-b die Fehlerzahl 312 von der Subtraktionslogik 410 ausgeben, wenn die Periodenmarkierung 360 empfangen wird; z.B. kann der Fehlerzähler 310 die Zahl auf Null (0) reduzieren oder die Zahl um einen durch das Dekrement-Signal 330 spezifizierten Wert reduzieren, wenn die Periodenmarkierung 360 anzeigt, dass die Periode abgelaufen ist.
  • Der Multiplexer 405-c ist zum Ausgeben der Fehlerzahl 312 an die Logik 420 konfiguriert. In einer Ausführungsform kann der Multiplexer 405-c die vom Multiplexer 405-b empfangene Fehlerzahl 312 ausgeben. In einer Ausführungsform kann der Multiplexer 405-c den Neustart (z.B. das Zurücksetzen) der Fehlerzahl 312 auf der Basis des Empfangs eines Neustart-Signals 350 vom Software-Stapel anzeigen. Beispielsweise kann der Software-Stapel bestimmen, eine Periode neu zu starten. In solchen Ausführungsformen kann der Multiplexer 405-c das Neustart-Signal 350 empfangen und an die Logik 420 ausgeben.
  • Die Logik 420 kann zum Zwischenspeichern der Fehlerzahl 312 konfiguriert sein. In einer Ausführungsform ist die Logik 420 ein Beispiel für ein Verzögerungsflipflop (z.B. DQ-Flipflop). In solchen Ausführungsformen kann die Logik 420 die Fehlerzahl 312 bei jeder ansteigenden Flanke des empfangenen ersten Taktsignals 325 ausgeben. Das heißt, die Logik 420 kann die aktualisierte Fehlerzahl 312 in jedem Taktzyklus zur Schwellenwertlogik 315 übertragen. Die Logik 420 kann zum Zurücksetzen der Fehlerzahl 312 auf Null (0) konfiguriert werden, wenn das Neustart-Signal 350 empfangen wird.
  • 4B zeigt ein Beispiel für Periodenlogik 320, wie mit Bezug auf 3 beschrieben. In einigen Ausführungsformen kann die Periodenlogik 320 mit einem Fehlerzähler 310 gekoppelt sein, wie mit Bezug auf 3 beschrieben. In einigen Ausführungsformen kann die Periodenlogik 320 einen Multiplexer 405-d, Logik 425, Vergleichslogik 435, Additionslogik 440 und Logik 430 beinhalten. In einer Ausführungsform können die Komponenten der Periodenlogik 320 Signale von einem Software-Stapel empfangen, z.B. von einer Boot- oder Laufzeit-Software, Firmware oder anderen die Verbindung und die DL 120 steuernden Entitäten.
  • In einigen Ausführungsformen ist Periodenlogik 320 zum Verfolgen von Perioden für den Fehlerzähler 310 konfiguriert, z.B. zum Verfolgen einer von einem Software-Stapel angegebenen programmierbaren Periode, wie mit Bezug auf 3 beschrieben. Beispielsweise kann die Periodenlogik 320 eine Periodenanzeige 345 empfangen, die eine programmierbare Periode aus dem Software-Stapel angibt. In einigen Ausführungsformen kann die vom Software-Stapel ausgewählte Periode auf Eigenschaften der Verlinkung basieren, z.B. auf einem tolerierbaren Fehlerbereich für die Verlinkung. In mindestens einer Ausführungsform kann die Periode 320 Taktzyklen des zweiten Takts 355 zählen, um festzustellen, ob eine jeweilige Periode verstrichen ist. Beispielsweise kann das zweite Taktsignal 355 an die Additionslogik 440 ausgegeben werden. Die Additionslogik 440 kann zum Addieren von eins (1) zur Anzahl der seit dem Verstreichen einer vorherigen Periode verstrichenen Taktzyklen konfiguriert sein. In einigen Ausführungsformen kann der zweite Takt 355 unabhängig vom ersten Takt 325 sein. In mindestens einer Ausführungsform kann der zweite Takt 355 eine niedrigere Taktrate oder Taktgeschwindigkeit als der erste Takt 325 haben. Zum Beispiel kann der zweite Takt 355 eine programmierbare Periode von zwei oder drei Stunden haben.
  • In einigen Ausführungsformen kann Logik 430 zum Zwischenspeichern der Anzahl der verstrichenen Taktzyklen konfiguriert sein. In mindestens einer Ausführungsform ist Logik 430 zum Ausgeben der Anzahl bei jedem Taktzyklus des zweiten Takts 355, z.B. bei jeder ansteigenden Flanke des zweiten Takts 355 konfiguriert. In mindestens einer Ausführungsform kann Logik 430 ein Neustart-Signal 350 oder eine Periodenmarkierung 360 empfangen. In beiden Ausführungsformen kann Logik 430 die Zahl der Taktzyklen auf Null zurücksetzen, d.h. die Verfolgung einer neuen Periode beginnen.
  • In mindestens einer Ausführungsform ist Vergleichslogik 435 zum Vergleichen der Anzahl der Taktzyklen mit der durch die Periodenanzeige 345 angegebenen programmierten Periode konfiguriert. In mindestens einer Ausführungsform kann die Vergleichslogik 435 die Zahl auf Null (0) zurücksetzen (z.B. die Zahl reduzieren), wenn die Anzahl der Taktzyklen die programmierbare Periode erreicht (z.B. mit ihr übereinstimmt oder sie überschreitet), z.B. eine Anzahl von Taktzyklen erreicht, die mit der programmierbaren Periode assoziiert ist. Demgemäß kann die Vergleichslogik 435 anzeigen, dass die Periode abgelaufen ist, und die Periodenlogik 320 kann die Periodenmarkierung 360 zum Fehlerzähler 310 übertragen, z.B. dem Fehlerzähler 310 anzeigen, dass die Periode verstrichen ist.
  • Logik 425 kann zum Empfangen entweder des Neustart-Signals 350 oder der Periodenmarkierung 360 konfiguriert werden. Zum Beispiel kann Logik 425 ein Beispiel für ein ODER-Gate sein. In solchen Ausführungsformen kann Logik 425 entweder das Neustart-Signal 350 oder die Periodenmarkierung 360 zum Multiplexer 405-d senden. In einer Ausführungsform soll der Multiplexer 405-d entweder das Neustart-Signal 350, die Periodenmarkierung 360 oder die Anzahl der verstrichenen Taktzyklen zu Logik 430 empfangen. In einigen Ausführungsformen gibt der Multiplexer 405-d einen Wert von Null (0) aus, wenn das Neustart-Signal 350 oder die Periodenmarkierung 360 empfangen wird. Demgemäß kann Periodenlogik 320 die verstrichenen Taktzyklen zählen und bei jedem Verstreichen einer Periode die Periodenmarkierung 360 erzeugen.
  • 5 zeigt ein Timing-Diagramm 500, das einen Prozess zur Fehlerunterbrechung in Hardware für eine Hochgeschwindigkeitsverbindung illustriert. Der illustrierte Prozess kann von Verarbeitungslogik durchgeführt werden, die Hardware, Software, Firmware oder eine beliebige Kombination davon umfasst. In mindestens einer Ausführungsform wird der Prozess von der DL 120 durchgeführt, wie mit Bezug auf 3 beschrieben, z.B. von der Fehlerlogik 305, dem Fehlerzähler 310, der Schwellenwertlogik 315 und der Periodenlogik 320. Obwohl in einer bestimmten Sequenz oder Reihenfolge dargestellt, kann, sofern nicht anders angegeben, die Reihenfolge der Prozesse geändert werden. Daher sind die dargestellten Ausführungsformen nur als Beispiele zu verstehen, und die illustrierten Prozesse können in einer anderen Reihenfolge ausgeführt werden, und einige Prozesse können parallel ausgeführt werden. Außerdem können in verschiedenen Ausführungsformen ein oder mehrere Prozesse weggelassen werden. Es sind also nicht alle Prozesse in jeder Ausführungsform erforderlich. Es sind auch andere Diagramme möglich, die einen Prozess für Fehlerunterbrechung in Hardware illustrieren.
  • In einer Ausführungsform kann zu Beginn einer Periode 505-a eine Fehlerzahl auf 0 stehen. Beispielsweise kann der Fehlerzähler 310 die Fehlerzahl 312 auf der Basis einer Periode vor dem Verstreichen der Periode 505-a auf Null (0) zurücksetzen. In mindestens einer Ausführungsform kann die Fehlerlogik 305 während der Periode 505-a Rahmen 200 empfangen und eine Fehlererkennungsoperation an jedem empfangenen Rahmen 200 durchführen. In einigen Ausführungsformen kann die Fehlerlogik 305 feststellen, dass beim Empfang eines Rahmens 200 ein Fehler aufgetreten ist. In solchen Ausführungsformen kann die Fehlerlogik 305 eine Anzeige eines Fehlers 308-a zum Fehlerzähler 310 übertragen. In einigen Ausführungsformen ist der Fehlerzähler 310 zum Bestimmen einer Fehlerzahl 312 konfiguriert (z.B. Speichern eines Wertes, der einer Anzahl von Fehlern 308 entspricht). Wenn die Fehlerlogik 305 beispielsweise den Fehler 308-a feststellt, kann der Fehlerzähler 310 die Fehlerzahl 312 um eins (1) inkrementieren. In einigen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 in jedem Taktzyklus eines ersten Takts zur Schwellenwertlogik 315 senden, wie mit Bezug auf 4A beschrieben. In solchen Ausführungsformen kann die Schwellenwertlogik 315 die Fehlerzahl 312 mit einem ersten Fehlerschwellenwert und einem zweiten Fehlerschwellenwert vergleichen, wie mit Bezug auf 3 beschrieben. In mindestens einer Ausführungsform kann der Software-Stapel den ersten und zweiten Fehlerschwellenwert in die Schwellenwertlogik 315 programmieren. Beispielsweise kann der Software-Stapel einen ersten Fehlerschwellenwert von zwei (2) und einen zweiten Fehlerschwellenwert von drei (3) programmieren. Der Software-Stapel kann den Fehlerschwellenwert auf der Basis eines tolerierbaren Bereichs von mit der Verlinkung assoziierten Fehlern auswählen. Zusätzlich kann die Periodenlogik 320 während der Periode 505-a die verstrichenen zweiten Takten zählen, um zu bestimmen, wann die Periode 505-a abgelaufen ist, z.B. die Anzahl der verstrichenen zweiten Takte mit einer programmierten Periode vergleichen. In mindestens einer Ausführungsform kann die Fehlerlogik 305 einen Fehler 308-b feststellen, der Fehlerzähler 310 kann die Zahl um eins (1) erhöhen, und die Schwellenwertlogik 315 kann die Fehlerzahl 312 mit dem ersten Fehlerschwellenwert vergleichen. In mindestens einer Ausführungsform kann die Fehlerzahl 312 nach Fehler 308-b den ersten Fehlerschwellenwert erreichen. In solchen Ausführungsformen kann die Schwellenwertlogik 315 dem Software-Stapel eine Unterbrechung 405-a (z.B. eine erste Unterbrechung oder eine weiche Unterbrechung) anzeigen. In einigen Ausführungsformen kann die Periodenlogik 320 feststellen, dass eine Anzahl von verstrichenen Taktzyklen den programmierten Schwellenwert während der Periode 505-a erreicht. In solchen Ausführungsformen überträgt die Periodenlogik 320 die Periodenmarkierung 360-a zum Fehlerzähler 310. In einigen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 auf der Basis des Empfangs der Periodenmarkierung 360-a auf Null (0) zurücksetzen. In einigen Ausführungsformen kann jede Periode 505 drei (3) Stunden betragen. In anderen Ausführungsformen kann jede Periode 505 einen Wert größer oder kleiner als drei (3) Stunden haben.
  • Während der Periode 505-b kann die Fehlerlogik 305 die Durchführung von Fehlererkennungsoperationen an empfangenen Rahmen 200 fortsetzen. In solchen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 bestimmen, und die Schwellenwertlogik 315 kann die Fehlerzahl 312 mit dem ersten Fehlerschwellenwert und dem zweiten Fehlerschwellenwert vergleichen. Zum Beispiel kann die Fehlerlogik 305 einen Fehler 308-c, einen Fehler 308-d und einen Fehler 308-e bestimmen, und der Fehlerzähler 310 kann die Fehlerzahl 312 jedes Mal um eins (1) inkrementieren, wenn der Fehler 308 während der Periode 505-b bestimmt wird. In einigen Ausführungsformen kann die Schwellenwertlogik 315 nach Fehler 308-d feststellen, dass die Fehlerzahl 312 den ersten Schwellenwert erreicht. In solchen Ausführungsformen kann die Schwellenwertlogik 315 die Unterbrechung 405-b zum Software-Stapel übertragen, z.B. die weiche Unterbrechung zum Software-Stapel übertragen. In einigen Ausführungsformen kann der Software-Stapel nach dem Empfang der Unterbrechung 405-b Abhilfemaßnahmen ergreifen, wie mit Bezug auf 3 beschrieben, z.B. die Verlinkung verlangsamen. In einer Ausführungsform kann die Schwellenwertlogik 315 nach Fehler 308-e feststellen, dass die Fehlerzahl 312 den zweiten Schwellenwert erreicht. In solchen Ausführungsformen kann die Schwellenwertlogik 315 eine zweite Unterbrechung 410 zum Software-Stapel übertragen, z.B. eine harte Unterbrechung zum Software-Stapel übertragen. In einigen Ausführungsformen kann der Software-Stapel die Vorrichtung 106 abschalten oder neu starten oder die Verlinkung nach dem Empfang der harten Unterbrechung neu trainieren, wie mit Bezug auf 3 beschrieben. In einigen Ausführungsformen kann die Periodenlogik 320 eine Anzahl von verstrichenen zweiten Takten während der Periode 505-b bestimmen. In mindestens einer Ausführungsform kann die Periodenlogik 320 die Anzahl der verstrichenen zweiten Takte bestimmen, die die programmierbare Periode 505-b erreichen. In solchen Ausführungsformen kann die Periodenlogik 320 die Periodenmarkierung 360-b zum Fehlerzähler 310 senden. In einer Ausführungsform kann der Fehlerzähler 310 während der Periode 505-b ein Dekrement-Signal 330 empfangen. In solchen Ausführungsformen kann der Fehlerzähler 310 die Fehlerzahl 312 um einen durch das Dekrement-Signal 330 angezeigten Wert reduzieren. Zum Beispiel kann der Fehlerzähler 310 die Fehlerzahl 312 um einen Wert „N“ verringern. Durch Reduzieren der Fehlerzahl 312 um einen Wert, anstatt ihn zurückzusetzen, kann der Fehlerzähler 310 die Fehlerzahl 312 über mehrere Perioden 505 ermitteln. Zum Beispiel wird ein Teil der Fehlerzahl 312 in Periode 505-b gerollt (z.B. ist die Zahl „S-N“ der anfängliche Zählwert für die Periode 505-c).
  • Während der Operation 505-c kann die Fehlerlogik 305 die Durchführung von Fehlererkennungsoperationen fortsetzen, und der Fehlerzähler 312 kann die Fehlerzahl 312 entsprechend inkrementieren. In einigen Ausführungsformen kann die DL 120 die Überwachung der Fehler über die Perioden fortsetzen, solange die Verlinkung aktiv bleibt - z.B. den hier beschriebenen Prozess fortsetzen, bis die Verlinkung inaktiv ist. Durch Auslösen einer Unterbrechung nur dann, wenn die Fehlerzahl 312 den ersten Fehlerschwellenwert oder den zweiten Fehlerschwellenwert innerhalb der Periode 505 erreicht, kann die DL 120 die Anzahl der ausgelösten Unterbrechungen reduzieren und die Leistung des Kommunikationssystems verbessern.
  • 6 illustriert ein beispielhaftes Flussdiagramm eines Verfahrens 600 für Fehlerratenunterbrechungen in Hardware für eine Hochgeschwindigkeitsverbindung. Das Verfahren 600 kann von Verarbeitungslogik durchgeführt werden, die Hardware, Software, Firmware oder eine beliebige Kombination davon umfasst. In mindestens einer Ausführungsform wird das Verfahren 600 von der DL 120 durchgeführt, wie mit Bezug auf 3 beschrieben, z.B. von der Fehlerlogik 305, dem Fehlerzähler 310, der Schwellenwertlogik 315 und der Periodenlogik 320. Obwohl in einer bestimmten Sequenz oder Reihenfolge dargestellt, kann, sofern nicht anders angegeben, die Reihenfolge der Prozesse geändert werden. Daher sind die dargestellten Ausführungsformen nur als Beispiele zu verstehen, und die illustrierten Prozesse können in einer anderen Reihenfolge ausgeführt werden, und einige Prozesse können parallel ausgeführt werden. Außerdem können in verschiedenen Ausführungsformen ein oder mehrere Prozesse weggelassen werden. Es sind also nicht alle Prozesse in jeder Ausführungsform erforderlich. Es sind andere Diagramme möglich, die ein Verfahren für Fehlerratenunterbrechungen in Hardware illustrieren.
  • Bei Operation 605 kann Verarbeitungslogik einen ersten Satz von Datenrahmen empfangen. Zum Beispiel kann die Fehlerlogik 305 den ersten Satz von Datenrahmen empfangen, wie mit Bezug auf 3 beschrieben. In mindestens einer Ausführungsform kann der erste Satz von Datenrahmen an Erkennungslogik empfangen werden.
  • Bei Operation 610 kann Verarbeitungslogik eine Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von empfangenen Datenrahmen durchführen. In einer Ausführungsform kann die Fehlerlogik 305 eine Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von Datenrahmen durchführen. In mindestens einer Ausführungsform kann die Fehlererkennungsoperation eine CRC-Operation sein. In mindestens einer Ausführungsform wird die Fehlererkennungsoperation mit einem Teil der Bits in jedem Rahmen des ersten Satzes von Rahmen durchgeführt, wie mit Bezug auf 2 beschrieben. In einer Ausführungsform enthält jeder Rahmen des ersten Satzes von Rahmen eine Menge an Bits, wobei die Menge der Bits für jeden Datenrahmen gleich ist.
  • Bei Operation 615 kann die Verarbeitungslogik einen oder mehrere Fehler auf der Basis der Durchführung der Fehlererkennungsoperation bestimmen, z.B. einen oder mehrere Rahmenfehler, wie mit Bezug auf 3 beschrieben. In mindestens einer Ausführungsform kann die Verarbeitungslogik einen Zählerwert an einem Zähler (z.B. Fehlerzähler 310) auf einen ersten Zählwert aktualisieren, der einer Anzahl von Fehlern entspricht, die als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen erkannt wurden; z.B. kann der Fehlerzähler die Anzahl der ein oder mehreren im ersten Satz von Datenrahmen erkannten Rahmenfehler speichern. Zum Beispiel kann der Fehlerzähler 310 die Anzahl der erkannten Fehler jedes Mal um eins (1) inkrementieren, wenn ein Fehler erkannt wird, z.B. jedes Mal, wenn ein Rahmenfehler erkannt wird.
  • Bei Operation 620 kann die Verarbeitungslogik eine Unterbrechung anzeigen. Zum Beispiel kann die Schwellenwertlogik 315 eine Unterbrechung anzeigen, wie mit Bezug auf 3 beschrieben. In mindestens einer Ausführungsform kann die Verarbeitungslogik ein Beispiel für eine mit dem Fehlerzähler gekoppelte Unterbrechungslogik sein. In mindestens einer Ausführungsform soll die Unterbrechungslogik eine Periode spezifizieren und die Anzahl von Fehlern (z.B. der ein oder mehreren Rahmenfehler) mit einer Schwellenanzahl von Fehlern (z.B. Rahmenfehlern) während der Periode vergleichen. In mindestens einer Ausführungsform kann die Unterbrechungslogik die Unterbrechung als Reaktion darauf anzeigen, dass die Anzahl der innerhalb der Periode erkannten Fehler (z.B. ein oder mehrere Rahmenfehler) die Schwellenanzahl von Rahmenfehlern erreicht. In mindestens einer Ausführungsform beinhaltet die Unterbrechungslogik eine Vergleichslogik zum Vergleichen der Anzahl von einem oder mehreren Rahmenfehlern am Fehlerzähler mit der Schwellenanzahl von Rahmenfehlern während der Periode. In einer Ausführungsform ist die Fehlerschwellenanzahl programmierbar. In solchen Ausführungsformen soll die Unterbrechungslogik die Rahmenfehlerschwellenanzahl aus einer Mehrzahl von Rahmenfehlerschwellenanzahlen auswählen. In einigen Ausführungsformen soll eine Zeitperiodenlogik ein Signal zum Fehlerzähler übertragen, um die Periode zu spezifizieren; z.B. kann die Periodenlogik 320 eine Periodenmarkierung 360 zum Fehlerzähler 310 übertragen, um das Ende einer Periode anzuzeigen. Beispielsweise kann der Zähler ein Signal nach einer mit einem Taktzyklus einer Logikvorrichtung assoziierten Zeitperiode empfangen, z.B. den zweiten Takt 355. In einigen Ausführungsformen kann die Periode programmierbar sein. In solchen Ausführungsformen kann die Unterbrechungslogik die Periode aus mehreren Zeitperioden auswählen. In mindestens einer Ausführungsform kann die Unterbrechungslogik die Periode spezifizieren, die einem ersten Takt mit einer ersten Frequenz entspricht, wobei die erste Frequenz niedriger ist als ein zweiter Takt des Empfängers mit einer zweiten Frequenz, die höher ist als die erste Frequenz; z.B. kann der zweite Takt 355 ein langsamerer Takt als der erste Takt 325 sein, wie mit Bezug auf 3 beschrieben. In einigen Ausführungsformen kann die Unterbrechungslogik die Anzahl der erkannten Fehler (z.B. die ein oder mehreren Rahmenfehler) mit einer zweiten Fehlerschwellenanzahl (z.B. einer zweiten Rahmenfehlerschwellenanzahl) als Reaktion darauf vergleichen, dass die Zahl der innerhalb des Periode erkannten Fehler die Rahmenfehlerschwellenzahl erreicht. In einer solchen Ausführungsform kann die Unterbrechungslogik eine zweite Unterbrechung als Reaktion darauf anzeigen, dass die erkannten Fehler die zweite Fehlerschwellenanzahl erreichen. In einigen Ausführungsformen ist die Unterbrechung mit einer weichen Unterbrechung und die zweite Unterbrechung mit einer harten Unterbrechung assoziiert, wie mit Bezug auf 3 beschrieben. Beispielsweise wird die erste Unterbrechung von einem ersten Software-Interrupt-Handler und die zweite Unterbrechung von einem zweiten Software-Interrupt-Handler verarbeitet. In einigen Ausführungsformen sind der erste Software-Handler und der zweite Software-Handler die gleichen. In mindestens einer Ausführungsform kann der erste Software-Handler eine mit der Empfangsvorrichtung gekoppelte Verlinkung als Reaktion auf den Empfang der ersten Unterbrechung verlangsamen. In mindestens einer Ausführungsform kann der zweite Software-Handler als Reaktion auf den Empfang der zweiten Unterbrechung die Empfangsvorrichtung neu starten oder die Verlinkung neu starten.
  • Bei Operation 635 kann die Verarbeitungslogik die Fehlerzahl (z.B. die erste Zahl) als Reaktion auf den Empfang eines Signals, das das Ende der Periode anzeigt, auf einen zweiten Zählwert reduzieren. Zum Beispiel kann die Verarbeitungslogik den ersten Zählwert auf Null (0) reduzieren; z.B. ist der zweite Zählwert ein Rücksetzwert. In anderen Ausführungsformen kann die Verarbeitungslogik die erste Zahl um einen durch ein Dekrement-Signal angegebenen Wert reduzieren (z.B. Dekrement-Signal 330, wie mit Bezug auf 3 beschrieben), um den zweiten Zählwert zu erreichen. In mindestens einer Ausführungsform kann die Verarbeitungslogik die Durchführung von Fehlererkennungsoperationen, die Bestimmung der Fehlerzahl und die Auslösung der Unterbrechungen fortsetzen, wenn die Fehlerzahl den ersten Fehlerschwellenwert oder den zweiten Fehlerschwellenwert erreicht, wie mit Bezug auf die Operationen 605 bis 635 beschrieben. Zum Beispiel kann die Verarbeitungslogik einen zweiten Satz von Datenrahmen empfangen und die Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen durchführen. In solchen Ausführungsformen kann die Verarbeitungslogik den Zähler auf einen dritten Wert aktualisieren und den dritten Wert mit der Fehlerschwellenanzahl und der zweiten Fehlerschwellenanzahl vergleichen. Wenn die Verarbeitungslogik feststellt, dass der dritte Zählwert die Fehlerschwellenanzahl erreicht, aber die zweite Fehlerschwellenanzahl nicht erreicht, kann die Verarbeitungslogik eine Anzeige übertragen, dass der dritte Zählwert die Fehlerschwellenanzahl erreicht, wobei die Anzeige mit der weichen Unterbrechung assoziiert ist. Wenn die Verarbeitungslogik feststellt, dass die dritte Zahl die zweite Fehlerschwellenanzahl erreicht, kann die Verarbeitungslogik eine Anzeige übertragen, dass der dritte Zählwert die zweite Fehlerschwellenanzahl erreicht, wobei die Anzeige mit der harten Unterbrechung assoziiert ist. In einigen Ausführungsformen kann die Verarbeitungslogik ein Rücksetzsignal nach der Durchführung der Fehlererkennungsoperation am zweiten Satz von Rahmen empfangen. In solchen Ausführungsformen kann die Verarbeitungslogik den Zählerwert auf einen Rücksetzwert (z.B. Null) aktualisieren. In einigen Ausführungsformen kann die Verarbeitungslogik die Zeitperiode auf eine zweite Zeitperiode einstellen, die sich von der Zeitperiode unterscheidet. In solchen Ausführungsformen kann die Verarbeitungslogik ein zweites Signal nach dem Verstreichen der zweiten Zeitperiode empfangen.
  • 7 illustriert ein Computersystem 700 mit einem Transceiver, der eine Chip-zu-Chip-Verbindung enthält, gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann das Computersystem 700 ein System mit miteinander verbundenen Vorrichtungen und Komponenten, einem SOC oder eine Kombination davon sein. In mindestens einer Ausführungsform ist das Computersystem 700 mit einem Prozessor 702 ausgestattet, der Ausführungseinheiten zur Ausführung eines Befehls enthalten kann. In mindestens einer Ausführungsform kann das Computersystem 700 ohne Einschränkung eine Komponente wie den Prozessor 702 enthalten, um Ausführungseinheiten einschließlich Logik zur Durchführung von Algorithmen zur Verarbeitung von Daten einzusetzen. In mindestens einer Ausführungsform kann das Computersystem 700 Prozessoren wie die PENHUM®-Prozessorfamilie, XeonTM-, Itanium®-, XScaleTM- und/oder StrongARMTM-, Intel® Core™- oder Intel® Nervana™-Mikroprozessoren enthalten, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technische Workstations, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einer Ausführungsform kann das Computersystem 700 eine Version des Betriebssystems WINDOWS ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (z.B. UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können.
  • In mindestens einer Ausführungsform kann das Computersystem 700 in anderen Vorrichtungen wie in der Hand gehaltenen Vorrichtungen und eingebetteten Anwendungen eingesetzt werden. Einige Beispiele für in der Hand gehaltene Vorrichtungen sind Mobiltelefone, Internetprotokoll-Vorrichtungen, Digitalkameras, Personal Digital Assistants („PDAs“) und in der Hand gehaltene PCs. In mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein SoC, Netzwerkcomputer („NetPCs“), Set-Top-Boxen, Netzwerk-Hubs, WAN-(Wide Area Network)-Switches oder jedes andere System umfassen, das einen oder mehrere Befehle ausführen kann. In einer Ausführungsform kann das Computersystem 700 in Vorrichtungen wie Grafikverarbeitungseinheiten (GPUs), Netzwerkadaptern, Zentraleinheiten und Netzwerkvorrichtungen wie Switches (z.B. eine schnelle direkte GPU-zu-GPU-Verbindung wie NVIDIA GH100 NVLINK oder NVIDIA Quantum 2 64 Ports InfiniBand NDR Switch) verwendet werden.
  • In mindestens einer Ausführungsform kann das Computersystem 700 ohne Einschränkung einen Prozessor 702 enthalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 707 enthalten kann, die so konfiguriert sein können, dass sie ein CUDA-(Compute Unified Device Architecture)-Programm (CUDA® wird von der NVIDIA Corporation in Santa Clara, CA, entwickelt) ausführen. In mindestens einer Ausführungsform ist ein CUDA-Programm mindestens ein Teil einer Softwareanwendung, die in einer CUDA-Programmiersprache geschrieben wurde. In mindestens einer Ausführungsform ist das Computersystem 700 ein Einzelprozessor-Desktop- oder -Serversystem. In mindestens einer Ausführungsform kann das Computersystem 700 ein Multiprozessorsystem sein. In mindestens einer Ausführungsform kann der Prozessor 702 unter anderem ein CISC-Mikroprozessor, ein RISC-Mikroprozessor, ein VLIW-Mikroprozessor, ein Prozessor, der eine Kombination von Befehlssätzen implementiert, oder ein beliebiges anderes Prozessorgerät, wie z.B. ein Digitalsignalprozessor, sein. In mindestens einer Ausführungsform kann der Prozessor 702 mit einem Prozessorbus 710 gekoppelt sein, der Datensignale zwischen dem Prozessor 702 und anderen Komponenten im Computersystem 700 übertragen kann.
  • In mindestens einer Ausführungsform kann der Prozessor 702, ohne Einschränkung, einen internen Cache-Speicher („Cache“) 704 der Ebene 1 („L1“) enthalten. In mindestens einer Ausführungsform kann der Prozessor 702 einen einzigen internen Cache oder mehrere Ebenen von internem Cache haben. In mindestens einer Ausführungsform kann sich der Cache-Speicher außerhalb des Prozessors 702 befinden. In mindestens einer Ausführungsform kann der Prozessor 702 auch eine Kombination aus internen und externen Caches enthalten. In mindestens einer Ausführungsform kann eine Registerdatei 706 verschiedene Datentypen in verschiedenen Registern speichern, darunter, ohne Einschränkung, Ganzzahlregister, Gleitkommaregister, Statusregister und Befehlszeigerregister.
  • In mindestens einer Ausführungsform befindet sich die Ausführungseinheit 707, einschließlich, ohne Einschränkung, Logik zur Durchführung von Ganzzahl- und Gleitkommaoperationen, ebenfalls im Prozessor 702. Der Prozessor 702 kann auch einen Mikrocode-(„ucode“)-ROM (Read Only Memory) einschließen, der Mikrocode für bestimmte Makrobefehle speichert. In mindestens einer Ausführungsform kann die Ausführungseinheit 707 des Prozessors 702 Logik zur Handhabung eines gepackten Befehlssatzes 709 einschließen. In mindestens einer Ausführungsform können durch Einschließen des gepackten Befehlssatzes 709 in einen Befehlssatz eines Universalprozessors 702 zusammen mit assoziierter Schaltung zur Ausführung von Befehlen von vielen Multimedia-Anwendungen verwendete Operationen mittels gepackter Daten in einem Universalprozessor 702 durchgeführt werden. In mindestens einer Ausführungsform können viele Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem die volle Breite eines Prozessordatenbusses für die Durchführung von Operationen an gepackten Daten genutzt wird, wodurch die Notwendigkeit entfällt, kleinere Dateneinheiten über den Prozessordatenbus zu übertragen, um eine oder mehrere Operationen an einem Datenelement nach dem anderen durchzuführen.
  • In mindestens einer Ausführungsform kann eine Ausführungseinheit auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und anderen Arten von Logikschaltungen verwendet werden. In mindestens einer Ausführungsform kann das Computersystem 700, ohne Einschränkung, einen Arbeitsspeicher 720 enthalten. In mindestens einer Ausführungsform kann der Arbeitsspeicher 720 als DRAM-Vorrichtung, SRAM-Vorrichtung, Flash-Arbeitsspeichervorrichtung oder andere Arbeitsspeichervorrichtung implementiert sein. Der Arbeitsspeicher 720 kann Befehle 719 und/oder Daten 721 speichern, die durch Datensignale dargestellt werden, die vom Prozessor 702 ausgeführt werden können.
  • In mindestens einer Ausführungsform kann ein Systemlogikchip mit dem Prozessorbus 710 und dem Arbeitsspeicher 720 gekoppelt sein. In mindestens einer Ausführungsform kann der Systemlogikchip ohne Einschränkung einen MCH (Memory Controller Hub) 716 umfassen, und der Prozessor 702 kann über den Prozessorbus 710 mit dem MCH 716 kommunizieren. In mindestens einer Ausführungsform kann der MCH 716 einen Arbeitsspeicherpfad 718 mit hoher Bandbreite zum Arbeitsspeicher 720 für die Befehls- und Datenspeicherung sowie für die Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. In mindestens einer Ausführungsform kann der MCH 716 Datensignale zwischen dem Prozessor 702, dem Arbeitsspeicher 720 und anderen Komponenten im Computersystem 700 leiten und Datensignale zwischen dem Prozessorbus 710, dem Arbeitsspeicher 720 und einer System-E/A 722 überbrücken. In mindestens einer Ausführungsform kann ein Systemlogikchip einen Grafikport zum Koppeln mit einem Grafikcontroller bereitstellen. In mindestens einer Ausführungsform kann der MCH 716 mit dem Arbeitsspeicher 720 über einen Arbeitsspeicherpfad 718 mit hoher Bandbreite verbunden sein, und die Grafik-/Videokarte 712 kann mit dem MCH 716 über eine AGP-(Accelerated Graphics Port)-Verbindung 714 gekoppelt sein.
  • In mindestens einer Ausführungsform kann das Computersystem 700 System-E/A 722 verwenden, die ein proprietärer Hub-Schnittstellenbus ist, um MCH 716 mit ICH (I/O Controller Hub) 730 zu verbinden. In mindestens einer Ausführungsform kann der ICH 730 direkte Verbindungen zu einigen E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellen. In mindestens einer Ausführungsform kann ein lokaler E/A-Bus ohne Einschränkung einen schnellen E/A-Bus zum Verbinden von Peripheriegeräten mit dem Arbeitsspeicher 720, einem Chipsatz und dem Prozessor 702 umfassen. Beispiele sind, ohne Einschränkung, ein Audio-Controller 729, ein Firmware-Hub („Flash-BIOS“) 728, ein Transceiver 726, ein Datenspeicher 724, ein Legacy-I/O-Controller 723 mit einer Benutzereingabeschnittstelle 725 und einer Tastaturschnittstelle, ein serieller Erweiterungsport 727, wie z.B. USB, und ein Netzwerk-Controller 734. Der Datenspeicher 724 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Arbeitsspeichervorrichtung oder eine andere Massenspeichervorrichtung umfassen. In einer Ausführungsform umfasst der Transceiver 726 einen eingeschränkten FFE 708.
  • In mindestens einer Ausführungsform illustriert 7 ein System, das miteinander verbundene Hardware-Vorrichtungen oder „Chips“ im Transceiver 726 enthält; z.B. enthält der Transceiver 726 eine Chip-zu-Chip-Verbindung, die die erste Vorrichtung 110 und die zweite Vorrichtung 112 einschließt, wie mit Bezug auf 1 beschrieben. In mindestens einer Ausführungsform kann 7 ein beispielhaftes SoC darstellen. In mindestens einer Ausführungsform können in 7 dargestellte Vorrichtungen mit proprietären Verbindungen, standardisierten Verbindungen (z.B. PCIe) oder einer Kombination davon verbunden sein und eine GRS-Verlinkung 220 verwenden, wie mit Bezug auf 2 beschrieben. In mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Systems 700 über CXL-(Compute Express Link)-Verbindungen miteinander verbunden. In einer Ausführungsform kann der Transceiver 726 Unterbrechungslogik 150 enthalten, wie mit Bezug auf 1 beschrieben. In solchen Ausführungsformen kann die Unterbrechungslogik 150 eine erste Unterbrechung übertragen, wenn eine erkannte Anzahl von Fehlern eine erste Fehlerschwellenanzahl innerhalb einer programmierbaren Periode erreicht. In einigen Ausführungsformen kann die Unterbrechungslogik 150 eine zweite Unterbrechung übertragen, wenn die erkannte Fehleranzahl eine zweite Fehlerschwellenanzahl innerhalb der programmierbaren Periode erreicht. Demgemäß kann die Unterbrechungslogik 150 ein Verfahren für Fehlerratenunterbrechungen in Hardware für eine Hochgeschwindigkeitsverbindung erleichtern.
  • Andere Variationen sind im Sinne der vorliegenden Offenbarung. Während verschiedene Modifikationen und alternative Konstruktionen der offenbarten Techniken möglich sind, sind bestimmte illustrierte Ausführungsformen davon in den Zeichnungen gezeigt und wurden oben im Detail beschrieben. Es ist jedoch zu verstehen, dass die Offenbarung nicht auf (eine) bestimmte Form(en) beschränkt sein soll, sondern dass im Gegenteil beabsichtigt ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in Wesen und Umfang der Offenbarung fallen, wie in den beigefügten Ansprüchen definiert.
  • Die Verwendung der Ausdrücke „ein/e“ und „die“ und ähnlicher Bezeichnungen im Kontext der Beschreibung offenbarter Ausführungsformen (insbesondere im Kontext der folgenden Ansprüche) ist so auszulegen, dass sie sowohl die Einzahl als auch die Mehrzahl umfasst, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt, und nicht als Definition eines Begriffs. Die Begriffe „umfassend“, „mit“, „einschließlich“ und „enthaltend“ sind als offene Begriffe zu verstehen (d.h. „einschließlich, aber nicht beschränkt auf“), sofern nicht anders angegeben. Der Begriff „verbunden“ ist, wenn unverändert und auf physische Verbindungen bezogen, als teilweise oder ganz darin enthalten, daran angebracht oder zusammengefügt zu verstehen, auch wenn etwas dazwischen liegt. Angaben von Wertebereichen sollen lediglich als Abkürzungsmethode zum individuellen Verweisen auf jeden den Bereich fallenden einzelnen Wert dienen, sofern hier nicht anders angegeben, und jeder einzelne Wert ist in der Spezifikation so eingeschlossen, als ob er hierin einzeln aufgeführt wäre. In mindestens einer Ausführungsform ist die Verwendung des Begriffs „Satz“ (z.B. „ein Satz von Gegenständen“) oder „Teilmenge“, sofern nicht anders angegeben oder durch den Kontext widerlegt, als eine nicht leere Sammlung zu verstehen, die ein oder mehrere Elemente umfasst. Ferner bezeichnet der Begriff „Teilmenge“ eines entsprechenden Satzes, sofern nicht anders vermerkt oder durch den Kontext widerlegt, nicht notwendigerweise eine echte Teilmenge des entsprechenden Satzes, sondern Teilmenge und entsprechender Satz können gleich sein.
  • Verbindende Ausdrücke, wie z.B. Satzteile der Form „mindestens eines von A, B, und C“ oder „mindestens eines von A, B und C“ werden, sofern nicht ausdrücklich anders angegeben oder anderweitig eindeutig durch den Kontext widerlegt, mit dem Kontext so verstanden, wie sie im Allgemeinen verwendet werden, um darzustellen, dass ein Gegenstand, Begriff usw. entweder A oder B oder C oder eine beliebige nicht leere Teilmenge des Satzes von A und B und C sein kann. Zum Beispiel, in einem illustrativen Beispiel für einen Satz mit drei Elementen beziehen sich die verbindenden Ausdrücke „mindestens eines von A, B, und C“ und „mindestens eines von A, B und C“ auf einen der folgenden Sätze: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Derartige verbindenden Ausdrücke sollen also nicht generell bedeuten, dass bei bestimmten Ausführungsformen mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sein muss. Sofern nicht anders vermerkt oder durch den Kontext widerlegt, gibt der Begriff „Mehrzahl“ einen Zustand der Pluralität an (z.B. verweist „eine Mehrzahl von Gegenständen“ auf mehrere Gegenstände). In mindestens einer Ausführungsform beträgt die Anzahl von Gegenständen in einer Mehrzahl mindestens zwei, kann aber auch höher sein, wenn dies entweder ausdrücklich oder durch den Kontext angezeigt wird. Ferner bedeutet, sofern nicht anders angegeben oder aus dem Kontext ersichtlich ist, die Formulierung „basierend auf“ „zumindest teilweise basierend auf‟ und nicht „ausschließlich basierend auf“.
  • Operationen von hierin beschriebenen Prozessen können in jeder geeigneten Reihenfolge durchgeführt werden, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt. In mindestens einer Ausführungsform wird ein Prozess wie die hier beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon) unter der Kontrolle eines oder mehrerer Computersysteme durchgeführt, die mit ausführbaren Befehlen konfiguriert sind und als Code (z.B. ausführbare Befehle, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen) implementiert sind, die gemeinsam auf einem oder mehreren Prozessoren, durch Hardware oder Kombinationen davon ausgeführt werden. In mindestens einer Ausführungsform ist Code auf einem computerlesbaren Speichermedium gespeichert, z.B. in Form eines Computerprogramms, das mehrere Befehle umfasst, die von einem oder mehreren Prozessoren ausgeführt werden können. In mindestens einer Ausführungsform ist ein computerlesbares Speichermedium ein nichtflüchtiges computerlesbares Speichermedium, das transitorische Signale (z.B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, aber nichtflüchtige Datenspeicherschaltungen (z.B. Puffer, Cache und Warteschlangen) innerhalb von Transceivern für transitorische Signale einschließt. In mindestens einer Ausführungsform ist Code (z.B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichtflüchtigen, computerlesbaren Speichermedien gespeichert, auf denen ausführbare Befehle (oder anderer Arbeitsspeicher zum Speichern ausführbarer Befehle) gespeichert sind, die bei Ausführung (d.h. als Ergebnis der Ausführung) durch einen oder mehrere Prozessoren eines Computersystems bewirken, dass ein Computersystem hierin beschriebene Operationen durchführt. In mindestens einer Ausführungsform umfasst ein Satz von nichtflüchtigen, computerlesbaren Speichermedien mehrere nichtflüchtige, computerlesbare Speichermedien, und einem oder mehreren einzelnen nichtflüchtigen Speichermedien mehrerer nichtflüchtiger, computerlesbarer Speichermedien fehlt der gesamte Code, während mehrere nichtflüchtige, computerlesbare Speichermedien gemeinsam den gesamten Code speichern. In mindestens einer Ausführungsform werden ausführbare Befehle so ausgeführt, dass verschiedene Befehle von verschiedenen Prozessoren ausgeführt werden.
  • Demgemäß sind in mindestens einer Ausführungsform Computersysteme so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder gemeinsam Operationen von hierin beschriebenen Prozessen durchführen, und solche Computersysteme sind mit anwendbarer Hardware und/oder Software konfiguriert, die die Durchführung von Operationen ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der vorliegenden Offenbarung implementiert, eine einzelne Vorrichtung, und in einer anderen Ausführungsform ist es ein verteiltes Computersystem mit mehreren Vorrichtungen, die unterschiedlich arbeiten, so dass das verteilte Computersystem die hierin beschriebenen Operationen durchführt, und so, dass eine einzelne Vorrichtung nicht alle Operationen durchführt.
  • Die Verwendung beliebiger und aller hier gegebener Beispiele oder beispielhaften Ausdrücke (z.B. „wie“) dient lediglich der besseren Veranschaulichung von Ausführungsformen der Offenbarung und stellt keine Beschränkung des Umfangs der Offenbarung dar, sofern nichts anderes beansprucht wird. Keine Formulierung in der Spezifikation ist so auszulegen, dass sie ein nicht beanspruchtes Element als wesentlich für die Praxis der Offenbarung bezeichnet.
  • Alle hier zitierten Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, sind hiermit durch Bezugnahme im selben Umfang einbezogen, als ob jede Referenz einzeln und ausdrücklich als durch Bezugnahme einbezogen angegeben wäre und in ihrer Gesamtheit hierin dargelegt würde.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ sowie ihre Ableitungen verwendet werden. Es ist zu verstehen, dass diese Begriffe nicht als Synonyme füreinander beabsichtigt sind. Vielmehr kann in bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem oder indirektem physischem oder elektrischem Kontakt miteinander sind. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, aber dennoch miteinander kooperieren oder interagieren.
  • Man wird verstehen, dass sich, sofern nicht ausdrücklich anders angegeben, Begriffe wie „Verarbeiten“, „Rechnen“, „Berechnen“, „Bestimmen“ und dergleichen in der gesamten Spezifikation auf Aktionen und/oder Prozesse eines Computers oder Rechensystems oder eines ähnlichen elektronischen Rechengeräts beziehen, die als physikalische, z.B. elektronische, Größen in den Registern und/oder Speichern des Rechensystems dargestellte Daten manipulieren und/oder in andere Daten umwandeln, die in ähnlicher Weise als physikalische Größen in den Speichern, Registern oder anderen Informationsspeicher-, -übertragungs- oder -anzeigegeräten des Rechensystems dargestellt werden.
  • In ähnlicher Weise kann sich der Begriff „Prozessor“ auf eine beliebige Vorrichtung oder einen Teil einer Vorrichtung beziehen, die elektronische Daten aus Registern und/oder Speichern verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speichern gespeichert werden können. Eine „Rechenplattform“ kann einen oder mehrere Prozessoren umfassen. Der hier verwendete Begriff „Software“-Prozesse kann z.B. Software- und/oder Hardware-Einheiten umfassen, die im Laufe der Zeit Arbeit verrichten, wie z.B. Tasks, Threads und intelligente Agenten. Jeder Prozess kann sich auch auf mehrere Prozesse beziehen, um Befehle nacheinander oder parallel, kontinuierlich oder intermittierend auszuführen. In mindestens einer Ausführungsform werden die Begriffe „System“ und „Methode“ hier austauschbar verwendet, da das System eine oder mehrere Methoden umfassen kann und die Methoden als ein System betrachtet werden können.
  • Das vorliegende Dokument kann Verweise auf das Erhalten, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Subsystem, Computersystem oder eine computerimplementierte Maschine enthalten. In mindestens einer Ausführungsform kann der Prozess des Erhaltens, Erfassens, Empfangens oder Eingebens analoger und digitaler Daten auf verschiedene Weise erfolgen, z.B. durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. In mindestens einer Ausführungsform können Prozesse des Erhaltens, Erfassens, Empfangens oder Eingebens analoger oder digitaler Daten durch Übertragen von Daten über eine serielle oder parallele Schnittstelle durchgeführt werden. In mindestens einer Ausführungsform können Prozesse des Erhaltens, Erfassens, Empfangens oder Eingebens analoger oder digitaler Daten durch Übertragen von Daten über ein Computernetz von der bereitstellenden Einheit zur erfassenden Einheit durchgeführt werden. In mindestens einer Ausführungsform kann auch auf Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren analoger oder digitaler Daten verwiesen werden. In verschiedenen Beispielen können Prozesse des Bereitstellens, Ausgebens, Übertragens, Sendens oder Präsentierens analoger oder digitaler Daten durch Übertragen von Daten als Ein- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Interprozess-Kommunikationsmechanismus durchgeführt werden.
  • Die hierin enthaltenen Beschreibungen stellen zwar beispielhafte Ausführungsformen beschriebener Techniken dar, aber es können auch andere Architekturen zum Implementieren beschriebener Funktionalität verwendet werden, die in den Rahmen der vorliegenden Offenbarung fallen sollen. Ferner können, obwohl oben spezifische Verteilungen von Verantwortlichkeiten zu Beschreibungszwecken definiert sind, verschiedene Funktionen und Verantwortlichkeiten je nach Umständen auf unterschiedliche Weise verteilt und aufgeteilt werden.
  • Ferner wurde zwar der Gegenstand in einer für strukturelle Merkmale und/oder methodische Handlungen spezifischen Sprache beschrieben, aber es ist zu verstehen, dass in den beigefügten Ansprüchen beanspruchter Gegenstand nicht unbedingt auf die beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist. Vielmehr werden spezifische Merkmale und Handlungen als beispielhafte Formen der Umsetzung der Ansprüche offenbart.
  • Es versteht sich, dass die oben beschriebenen Aspekte und Ausführungsformen nur beispielhaft sind und dass Änderungen im Detail im Rahmen der Ansprüche möglich sind.
  • Jede(s) in der Beschreibung und (ggf.) in den Ansprüchen und Zeichnungen offenbarte(s) Vorrichtung, Verfahren und Merkmal kann unabhängig oder in jeder geeigneten Kombination bereitgestellt werden.
  • In den Ansprüchen verwendete Bezugszahlen dienen nur der Veranschaulichung und haben keine einschränkende Wirkung auf den Umfang der Ansprüche.

Claims (20)

  1. Empfangsvorrichtung, die Folgendes umfasst: Erkennungslogik zum Empfangen eines ersten Satzes von Datenrahmen und zum Erkennen eines oder mehrerer Rahmenfehler in dem ersten Satz von Datenrahmen; einen Fehlerzähler zum Speichern einer Anzahl der ein oder mehreren im ersten Satz von Datenrahmen erkannten Rahmenfehler; und Unterbrechungslogik, die mit dem Fehlerzähler gekoppelt ist, wobei die Unterbrechungslogik eine Periode spezifiziert und die Anzahl der ein oder mehreren Rahmenfehler mit einer Schwellenanzahl von Rahmenfehlern während der Periode vergleicht, wobei die Unterbrechungslogik eine Unterbrechung als Reaktion darauf anzeigen soll, dass die Anzahl der ein oder mehreren innerhalb der Periode erkannten Rahmenfehler die Schwellenanzahl von Rahmenfehlern erreicht.
  2. Empfangsvorrichtung nach Anspruch 1, wobei die Unterbrechungslogik Folgendes umfasst: eine Zeitperiodenlogik, die zum Übertragen eines Signals zum Fehlerzähler konfiguriert ist, um die Periode zu spezifizieren; und eine Vergleichslogik, die zum Vergleichen der Anzahl der ein oder mehreren Rahmenfehler am Fehlerzähler mit der Schwellenanzahl von Rahmenfehlern während der Periode konfiguriert ist.
  3. Empfangsvorrichtung nach Anspruch 1 oder 2, wobei die Unterbrechungslogik ferner zum Auswählen der Periode aus mehreren Zeitperioden dient.
  4. Empfangsvorrichtung nach Anspruch 1, 2 oder 3, wobei die Unterbrechungslogik ferner zum Auswählen der Schwellenanzahl von Rahmenfehlern aus einer Mehrzahl von Rahmenfehlerschwellenzahlen dient.
  5. Empfangsvorrichtung nach einem vorherigen Anspruch, wobei die Unterbrechungslogik die Periode entsprechend einem ersten Takt mit einer ersten Frequenz spezifiziert, und wobei die Empfangsvorrichtung einen zweiten Takt mit einer zweiten Frequenz umfasst, die größer als die erste Frequenz ist.
  6. Empfangsvorrichtung nach einem vorherigen Anspruch, wobei die Unterbrechungslogik ferner dient zum: Vergleichen der Anzahl der ein oder mehreren erkannten Rahmenfehler mit einer zweiten Rahmenfehlerschwellenanzahl als Reaktion darauf, dass die Anzahl der ein oder mehreren innerhalb der Periode detektierten Rahmenfehler die Rahmenfehlerschwellenanzahl erreicht; und Anzeigen einer zweiten Unterbrechung als Reaktion darauf, dass die Anzahl der ein oder mehreren erfassten Rahmenfehler die zweite Rahmenfehlerschwellenanzahl erreicht.
  7. Vorrichtung, die Folgendes umfasst: einen Datenlink-(DL)-Empfänger, eine Logikvorrichtung und einen Zähler, wobei die Vorrichtung dient zum: Empfangen eines ersten Satzes von Datenrahmen; Durchführen einer Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von empfangenen Datenrahmen; Aktualisieren eines Zählerwerts, an dem Zähler, auf einen ersten Zählwert, der einer Anzahl von Fehlern entspricht, die als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen erkannt wurden; Empfangen eines Signals, an dem Zähler von der Logikvorrichtung, nach einer mit einem Taktzyklus der Logikvorrichtung assoziierten Zeitperiode ist; und Reduzieren des ersten Zählwertes auf einen zweiten Zählwert als Reaktion auf den Empfang des Signals von der Logikvorrichtung.
  8. Vorrichtung nach Anspruch 7, wobei die Vorrichtung ferner dient zum: Empfangen eines zweiten Satzes von Datenrahmen; Durchführen der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; Aktualisieren des Zählerwerts, am Zähler, auf einen dritten Zählwert als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; und Feststellen, dass der dritte Zählwert als Reaktion auf die Aktualisierung des Zählerwerts auf den dritten Zählwert eine Schwellenanzahl von Fehlern erreicht.
  9. Vorrichtung nach Anspruch 8, wobei die Vorrichtung ferner dient zum: Feststellen, dass der dritte Zählwert eine zweite Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählerwerts auf den dritten Zählwert nicht erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer ersten Unterbrechung assoziiert ist.
  10. Vorrichtung nach Anspruch 8, wobei die Vorrichtung ferner dient zum: Feststellen, dass der dritte Zählwert eine zweite Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählwerts auf den dritten Zählwert erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl und die zweite Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer zweiten Unterbrechung assoziiert ist.
  11. Vorrichtung nach einem der Ansprüche 7 bis 10, wobei der zweite Zählwert ein Rücksetzwert ist.
  12. Vorrichtung nach einem der Ansprüche 7 bis 11, wobei die Vorrichtung ferner dient zum: Einstellen der Zeitperiode auf eine zweite Zeitperiode, die sich von der Zeitperiode unterscheidet; und Empfangen eines zweiten Signals, an dem Zähler von der Logikvorrichtung, nachdem die zweite Zeitperiode abgelaufen ist.
  13. Vorrichtung nach einem der Ansprüche 7 bis 12, wobei die Vorrichtung ferner dient zum: Empfangen eines zweiten Satzes von Datenrahmen; Durchführen der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; Empfangen eines Rücksetzsignals nach der Durchführung der Fehlererkennungsoperation an jedem Datenrahmen; und Aktualisieren des Zählerwerts vom zweiten Zählwert auf einen dritten Zählwert als Reaktion auf den Empfang des Rücksetzsignals.
  14. Verfahren, das Folgendes beinhaltet: Empfangen eines ersten Satzes von Datenrahmen an einer Vorrichtung, die einen Zähler und eine Logikvorrichtung umfasst; Durchführen, an der Vorrichtung, einer Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von empfangenen Datenrahmen; Aktualisieren, an dem Zähler, eines Zählerwertes auf einen ersten Zählwert, der einer Anzahl von Fehlern entspricht, die als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen erkannt wurden; Empfangen, an dem Zähler, eines Signals von der Logikvorrichtung nach einer mit einem Taktzyklus der Logikvorrichtung assoziierten Zeitperiode; und Reduzieren des ersten Zählwertes auf einen zweiten Zählwert als Reaktion auf den Empfang des Signals von der Logikvorrichtung.
  15. Verfahren nach Anspruch 14, das ferner Folgendes beinhaltet: Empfangen eines zweiten Satzes von Datenrahmen; Durchführen der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; Aktualisieren des Zählerwerts, an dem Zähler, auf einen dritten Zählwert als Reaktion auf die Durchführung der Fehlererkennungsoperation an jedem Datenrahmen des zweiten Satzes von Datenrahmen; und Feststellen, dass der dritte Zählwert eine Fehlerschwellenanzahl als Reaktion auf die Aktualisierung des Zählerwertes auf den dritten Zählwert erreicht.
  16. Verfahren nach Anspruch 15, das ferner Folgendes beinhaltet: Feststellen, dass der dritte Zählwert als Reaktion auf die Aktualisierung des Zählwerts auf den dritten Zählwert eine zweite Fehlerschwellenanzahl nicht erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer ersten Unterbrechung assoziiert ist.
  17. Verfahren nach Anspruch 15, das ferner Folgendes beinhaltet: Feststellen, dass der dritte Zählwert eine zweite Fehlerschwelle als Reaktion auf die Aktualisierung des Zählerwertes auf den dritten Zählwert erreicht; und Übertragen einer Anzeige, dass der dritte Zählwert die Fehlerschwellenanzahl und die zweite Fehlerschwellenanzahl erreicht, wobei die Anzeige mit einer zweiten Unterbrechung assoziiert ist.
  18. Verfahren, das Folgendes beinhaltet: Empfangen eines ersten Satzes von Datenrahmen an einer Vorrichtung, die eine Logikvorrichtung umfasst; Durchführen einer Fehlererkennungsoperation an jedem Datenrahmen des ersten Satzes von empfangenen Datenrahmen; und Vergleichen, an einem Zähler, einer Anzahl von Fehlern, die innerhalb einer von der Logikvorrichtung angezeigten Periode erkannt wurden, mit einer Fehlerschwellenanzahl, wobei die Vorrichtung zum Anzeigen einer Unterbrechung als Reaktion darauf konfiguriert ist, dass die Anzahl von innerhalb der Periode erkannten Fehlern die Schwellenanzahl von Fehlern erreichen.
  19. Verfahren nach Anspruch 18, das ferner Folgendes beinhaltet: Empfangen, von einer Zeitperiodenlogik an dem Zähler, eines die Periode spezifizierenden Signals, wobei das Signal die Periode entsprechend einem ersten Takt mit einer ersten Frequenz spezifiziert, und wobei die Vorrichtung einen zweiten Takt mit einer zweiten Frequenz umfasst, die höher als die erste Frequenz ist.
  20. Verfahren nach Anspruch 18 oder 19, das ferner Folgendes beinhaltet: Vergleichen der Anzahl von erkannten Fehlern mit einer zweiten Fehlerschwellenanzahl als Reaktion darauf, dass die Anzahl von innerhalb der Periode erkannten Fehlern die Schwellenanzahl von Fehlern erreicht; und Anzeigen einer zweiten Unterbrechung als Reaktion darauf, dass die Anzahl der erkannten Fehler die zweite Fehlerschwellenanzahl erreicht.
DE102022213770.1A 2021-12-21 2022-12-16 Fehlerratenunterbrechungen in hardware für schnellesignalisierungsverbindung Pending DE102022213770A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/557,836 2021-12-21
US17/557,836 US11880265B2 (en) 2021-12-21 2021-12-21 Error rate interrupts in hardware for high-speed signaling interconnect

Publications (1)

Publication Number Publication Date
DE102022213770A1 true DE102022213770A1 (de) 2023-06-22

Family

ID=86606011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022213770.1A Pending DE102022213770A1 (de) 2021-12-21 2022-12-16 Fehlerratenunterbrechungen in hardware für schnellesignalisierungsverbindung

Country Status (3)

Country Link
US (2) US11880265B2 (de)
CN (1) CN116318530A (de)
DE (1) DE102022213770A1 (de)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076573B2 (en) * 2003-11-20 2006-07-11 International Business Machines Corporation Method, apparatus, and program for detecting sequential and distributed path errors in MPIO
US7424666B2 (en) * 2005-09-26 2008-09-09 Intel Corporation Method and apparatus to detect/manage faults in a system
TWI527037B (zh) * 2014-04-10 2016-03-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置
CN105743731B (zh) * 2014-12-11 2019-03-29 国际商业机器公司 用于存储系统中的故障检测的方法和装置
US10289466B2 (en) * 2017-02-01 2019-05-14 International Business Machines Corporation Error data collection improvements in storage network components
JP7069936B2 (ja) * 2018-03-27 2022-05-18 富士通株式会社 送受信システム、データ受信装置、およびデータ受信方法
TWI686696B (zh) * 2018-08-14 2020-03-01 財團法人工業技術研究院 計算節點及其失效偵測方法與雲端資料處理系統

Also Published As

Publication number Publication date
US20240103951A1 (en) 2024-03-28
US11880265B2 (en) 2024-01-23
US20230195551A1 (en) 2023-06-22
CN116318530A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
DE112020002495T5 (de) System und verfahren zur erleichterung der betriebsverwaltung in einer netzwerkschnittstellensteuerung (nic) für beschleuniger
DE102009061279B3 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE112013005044B4 (de) Verfahren, einrichtung, vorrichtung und system zum ausführen von eingehenden pcie-schreiboperationen in einen speicher und partnereinrichtungen per dualcast
DE60213616T2 (de) Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
DE60216299T2 (de) Allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur bereitstellung virtueller kanäle
DE102012209016B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE102012208803B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE112010002778B4 (de) Rauschunterdrückung zur Begrenzung von falschem Wecken
DE60219047T2 (de) Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zum aufbau virtueller kanäle darin
DE112017005002T5 (de) Verbindungsphysikalischer schichtschnittstellenadapter
DE202010018100U1 (de) Vorrichtung für ID-basierte Ströme über PCI-Express
DE102012209011B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE102012209009B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE112016005917T5 (de) Exascale-fabric-zeitsynchronisierung
DE102016116721A1 (de) Reduzieren der Ethernet-Latenz in einem Multi-Server Chassis
DE112011103225B4 (de) Schaltkreisvorrichtung, System und Verfahren mit Drosseln einer integrierten Verbindung
DE112010004006T5 (de) Zuverlässige kommunikationen in chipintegrierten netzwerken
DE102015112634A1 (de) Unterstützen von RMA-API über aktive Message
DE112017004907T5 (de) System, Vorrichtung und Verfahren zur Durchführung einer verteilten Arbitration
DE102013107718A1 (de) Verfahren und Vorrichtungen zum Verfolgen von Verbindungselementen
DE102022129250A1 (de) Übertragungsrate basierend auf detektierter verfügbarer Bandbreite
DE102022214167A1 (de) Verfahren und system zum übertragen von in-band-cross-chip-triggern zum warten von schnellen verbindungen
DE10224163A1 (de) Transaktionsdauermanagement in einem USB-Hostcontroller
DE102022213577A1 (de) Erfassung des verlinkungsstatus für eine hochgeschwindigkeitssignalisierungsverbindung

Legal Events

Date Code Title Description
R012 Request for examination validly filed