DE112013004782T5 - Techniken für robuste Kommunikation - Google Patents

Techniken für robuste Kommunikation Download PDF

Info

Publication number
DE112013004782T5
DE112013004782T5 DE112013004782.9T DE112013004782T DE112013004782T5 DE 112013004782 T5 DE112013004782 T5 DE 112013004782T5 DE 112013004782 T DE112013004782 T DE 112013004782T DE 112013004782 T5 DE112013004782 T5 DE 112013004782T5
Authority
DE
Germany
Prior art keywords
error
output stage
data
connection
detection circuits
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
DE112013004782.9T
Other languages
English (en)
Inventor
Somnath Paul
Sriram R. Vangal
Michael D. Abbott
Eugene M. Kishinevsky
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112013004782T5 publication Critical patent/DE112013004782T5/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/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • H04L1/242Testing correct operation by comparing a transmitted test signal with a locally generated replica

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Techniken für robuste Kommunikation. Ein Datenpfad speichert Daten, die über eine Verbindung zu einem Empfangsknoten gesendet werden sollen. Eine Ausgangsstufe ist zwischen den Datenpfad und die Verbindung geschaltet. Die Ausgangsstufe beinhaltet Doppelabtastmechanismen, um eine Kopie von über die Verbindung zu dem Empfangsknoten gesendeten Daten zu bewahren. Fehlerdetektionsschaltungen sind mit der Ausgangsstufe verbunden sind, um transiente Timingfehler im Datenpfad oder in der Ausgangsstufe zu detektieren. Die Fehlerdetektionsschaltungen veranlassen die Ausgangsstufe, als Reaktion auf das Detektieren eines Fehlers die Kopie der über die Verbindung gesendeten Daten zu senden.

Description

  • Technisches Gebiet
  • Ausführungsformen der Erfindung beziehen sich auf Techniken für Kommunikation zwischen verbundenen Knoten. Insbesondere beziehen sich Ausführungsformen der Erfindung auf robuste Kommunikationstechniken, die verwendet werden können, um zuverlässige, effiziente Kommunikation von Nachrichten zu erreichen.
  • Hintergrund
  • Viele Verbindungsarchitekturen, zum Beispiel in einem Netzwerk-auf-einem-Chip (network-on-chip, NoC) eines Systems-auf-einem-Chip (system-on-chip, SoC), verlassen sich zum Verwalten des Nachrichtenverkehrs zwischen Knoten (zum Beispiel Prozessorkernen, Speicher) auf Router. Diese Router verbrauchen im Betrieb Energie und können signifikant zu dem gesamten Energieverbrauch eines SoC beitragen. Eine Strategie zum Verringern des Energieverbrauchs ist ein Verringern der Betriebsspannungen. Allerdings sind die Router bei niedrigen Spannungen anfällig für dynamische Veränderungen wie Spannungsabsenkungen oder Alterungseffekte, die potentiell zu Timingfehlern in dem Router führen können. Robustheit des Betriebs wird typischerweise durch Verwenden eines statischen Spannungsschutzbands, das zur Zeit des Entwurfs ausgewählt wird, sichergestellt. Verwenden eines statischen Spannungsschutzbands erfordert eine höhere Betriebsspannung und erhöht den Energieverbrauch.
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsformen der Erfindung werden in den Figuren der beigefügten Zeichnungen anhand von Beispielen veranschaulicht und nicht zur Beschränkung, wobei sich gleiche Bezugsnummern auf ähnliche Elemente beziehen.
  • 1 ist ein Blockdiagramm einer Ausführungsform einer Fehlerdetektionsschaltung, die verwendet werden kann, um robuste Kommunikationstechniken zu unterstützen.
  • 2 ist ein Blockdiagramm einer Ausführungsform einer doppelabtastenden Fehlerdetektionsschaltung, die verwendet werden kann, um robuste Kommunikationstechniken zu unterstützen, ohne großen Entwurfsmehraufwand nach sich zu ziehen.
  • 3 ist ein Blockdiagramm eines Routers mit Robustheit gegenüber dynamischen Veränderungen, der dafür ausgelegt ist, Daten an einen Router/Verkehrsgenerator (traffic generator, TG) zu senden.
  • 4 ist ein Blockdiagramm eines empfangenden Routers (oder einer anderen Vorrichtung), der das Bitfehlersignal verwendet, um empfangene Daten zu validieren.
  • 5 ist ein Blockdiagram einer Ausführungsform eines Quellenknotens mit Zurücksetzmechanismen, um Timingrobustheit zu unterstützen.
  • 6 ist ein Blockdiagramm einer Ausführungsform eines elektronischen Systems.
  • Beschreibung der Ausführungsformen
  • Verschiedene Ausführungsformen von Router, die in unterschiedlichen Konfigurationen verwendet werden können, von denen einige Fehlerdetektion und -korrektur bereitstellen können. In einer Ausführungsform können eingangsgepufferte wormhole-geschaltete Routerarchitekturen (zum Beispiel für ein NoC geeignet) dafür ausgelegt sein, als Folgendes zu arbeiten: 1) ein Router mit Einzelzykluslatenz, 2) ein Router mit Zweizyklenlatenz und ohne Robustheit oder 3) ein Router mit Zweizyklenlatenz und Robustheit gegenüber dynamischen Veränderungen. Diese Betriebsmodi werden unten ausführlicher beschrieben.
  • In einer Ausführungsform werden im Zweizyklen-Modus mit Robustheit dynamische Veränderungen, die sich bei Timingfehlern im Router zeigen, unter Verwendung eines Fehlerdetektionssequenz-Mechanismus (Error Detection Sequential mechanism, EDS) detektiert, der eine Hardwareschaltung sein kann. In einer Ausführungsform beinhaltet die robuste Routerarchitektur EDS in einer Verarbeitungsstufe, die zum Schützen von Timingpfaden im Router arbeiten kann. Korrektur von Nachrichten, die im Router Timingfehlern ausgesetzt sind, kann durch Verwenden von Paketwiederholungstechniken erreicht werden.
  • In einer Ausführungsform liefert die EDS-Vorgehensweise durch Doppelabtastung nativen Schutz vor durch weiche Fehler (soft error, SER) hervorgerufenen Ereignissen. Zusätzlich kann die offenbarte Vorgehensweise vor SER-bedingten kombinatorischen Verzögerungs-Pushouts und sequenziellem Zustandsverlust schützen.
  • In einer Ausführungsform beinhaltet ein Router (oder eine Komponente) eine robustheitsverstärkte Endstufe, die zum Schutz von Timingpfaden im Router arbeitet. Zum Beispiel kann ein Router mit EDS-Mechanismen zum Schutz aller Timingpfade im Router, die von einer Ausgangwarteschlange (zum Beispiel einem FIFO) ausgehen, arbeiten. In einer Ausführungsform wird die Korrektur von Paket-(Nachrichten- oder Flit-)Fehlern, die auf Timingfehlern im Router (oder einer anderen Komponente) basieren, mittels Paketwiederholungstechniken erreicht.
  • Da der Timingfehler in der Ausgangsstufe festgestellt wird, nachdem eine Nachricht an den Empfangsknoten (zum Beispiel Router, Verkehrserzeuger) übermittelt wurde, wird ein Fehlersignal (zum Beispiel ein Bit, Flag) mit der Nachricht gesendet, das anzeigt, ob ein Timingfehler aufgetreten ist. Da das Fehlersignal metastabil sein kann, wird es in der Eingangsstufe des Empfangsknotens vor Weiterverarbeitung zwischengespeichert. Das Fehlersignal wirkt als ein Ungültigkeitssignal, das veranlasst, dass die entsprechende Nachricht durch den Empfangsknoten verworfen (oder sonstwie nicht verarbeitet oder verwendet) wird.
  • Der Sendeknoten (zum Beispiel der Router), bei dem der Timingfehler aufgetreten ist, wiederholt die fehlgeschlagene Nachricht durch Zurücksetzen seines Zustands um die notwendige Anzahl von Taktzyklen (zum Beispiel bis zu einem Testpunkt). In einer Ausführungsform sind zwei Taktzyklen ausreichend. In alternativen Ausführungsformen kann eine größere Rücksetzentfernung unterstützt werden. In einer Ausführungsform kann dies durch Isolieren des Steuer- und des Datenpfads des Sendeknotens und Behalten von Kopien kritischer Daten und von Steuerzustandselementen (zum Beispiel über Flipflop oder Latch) in dem Sendeknoten erreicht werden.
  • In einer Ausführungsform weist eine Ausgabewarteschlange (zum Beispiel ein FIFO oder ein anderer Typ einer Ausgabewarteschlange) während normalen Betriebs genügend ungenutzten Speicher auf, dass Nachrichten von vorhergehenden Zyklen noch vorhanden und nicht überschrieben sind, bevor sie, falls notwendig, für Wiederholung verwendet werden. In einer anderen Ausführungsform kann die FIFO-Tiefe erhöht werden, um zusätzlichen Nachrichtenraum für Wiederholung aufzunehmen. Zum Beispiel wird in einer Ausführungsform ein Timingfehler bestimmt und die Nachricht wird innerhalb von zwei Taktzyklen wiederholt. Der Sendeknoten wird zu einem vorhergehenden Zustand zurückgesetzt und die fehlerhafte Nachricht wird nochmal zu dem Empfangsknoten gesendet.
  • In einer Ausführungsform kann die Verwendung von Positive-Phase-Latches in dem EDS-Mechanismus dazu führen, dass die Ausgangsstufe anfällig für Haltezeitenfehler wird. Dies kann durch selektives Puffer von Minimalverzögerungs-Timingpfaden zu EDS-verbesserten Stufen und Leiten eines gepulsten Taktes zur Ausgangsstufe vermieden werden, was weiter unten ausführlicher beschrieben wird. In einer Ausführungsform empfängt die Ausgangsstufe ein Taktsignal mit konfigurierbarer Pulsweite, und andere Stufen empfangen ein Taktsignal mit einem Tastverhältnis von 50%. In einer Ausführungsform kann eine gestutzte Standardzellenbibliothek mit vergrößerten sequenziellen und kombinatorischen Logikzuständen verwendet werden, um die Auswirkung von In-Chip- und Intra-Chip-Schwankungen bei sehr niedrigen Betriebsspannungen (zum Beispiel nahe einer Schwellenspannung) zu verringern. Zusätzlich zum Wiederholen können aktuelle Quellen-/Ziel-Ports als Anzeiger für andere Ports und durch Fehleraufzeichnungslogik zum Triggern von DVFS-Programmen verwendet werden.
  • 1 ist ein Blockdiagramm einer Ausführungsform einer Fehlerdetektionsschaltung, die zum Unterstützen robuster Kommunikationstechniken verwendet werden kann. Die Schaltung der 1 kann dazu verwendet werden, ein Fehlersignal zu erzeugen, das zum Wiederholen von Nachrichten (Paketen, Flits) verwendet werden kann, bei denen ein Timingfehler aufgetreten ist. In einer Ausführungsform ist die Fehlerdetektionsschaltung 100 in einer Endstufe eines Sendeknotens auf dem Pfad zu einer Verbindung zu einem Empfangsknoten angeordnet.
  • Die Fehlerdetektionsschaltung 100 empfängt ein Datenbit von einer Stufe in dem Sendeknoten. Das Datenbit wird dem High-Phase-Latch 110 und dem Flipflop 120 zugeführt. Das High-Phase-Latch 110 speichert das Datenbit zwischen, wenn ein Taktsignal (siehe 3), das der Ausgangsstufe zugeführt wird, einen High-Pegel aufweist, und das Flipflop 120 speichert das Datenbit beim Übergang vom Low- zum High-Pegel eines gepulsten Taktsignals (siehe 3).
  • Falls ein Timingfehler auftritt, werden die Ausgangssignale des High-Phase-Latch 110 und des Flipflops 120 unterschiedlich sein, was das Gatter 130 veranlassen wird, das Bitfehlersignal zu setzen. Falls kein Timingfehler auftritt, werden die Ausgangssignale vom High-Phase-Latch 110 und dem Flipflop 120 gleich sein, und das Gatter 130 wird kein Bitfehlersignal setzen.
  • 2 ist ein Blockdiagramm einer Ausführungsform einer doppelabtastenden Fehlerdetektionsschaltung, die verwendet werden kann, um robuste Kommunikationstechniken zu unterstützen. Die Schaltung der 2 kann dazu verwendet werden, ein Fehlersignal zu erzeugen, das zum Wiederholen von Nachrichten (Paketen, Flits), bei denen ein Timingfehler aufgetreten ist, verwendet werden kann. In einer Ausführungsform ist die Fehlerdetektionsschaltung 200 in einer Endstufe eines Sendeknotens auf dem Pfad zu einer Verbindung zu einem Empfangsknoten angeordnet und bietet Doppelabtastung, die es ermöglicht, Pakete und andere Informationen (zum Beispiel Zustandsinformationen) für zwei Taktzyklen zu behalten, um sich von einem Timingfehler zu erholen. In alternativen Ausführungsformen können mehr als zwei Abtastungen behalten werden, zum Beispiel kann Dreifachabtastungs-Fehlerdetektion vorgesehen werden.
  • In einer Ausführungsform kann eine Fehlerdetektionsschaltung in einem der drei folgenden Modi arbeiten: 1) Modus 0, in dem sowohl das Master-Latch 230 als auch das Slave-Latch 250 offen sind; 2) Modus 1, in dem das Master-Latch 230 und das Slave-Latch 250 als ein Flipflop arbeiten und 3) Modus 2, in dem das Master-Latch 230 offen ist und Doppelabtastung durch das Slave-Latch 250 und das Flipflop 210 vorgenommen wird. Sowohl das Flipflop 210 als auch das Master-Latch 230 als auch das Slave-Latch 250 werden jeweils von einem Modus-Signal und einem Taktsignal, woran die Logikgatter 215, 220 bzw. 240 operieren, gesteuert.
  • In Modus 0 ist die Fehlerdetektionsschaltung 200 für die umgebenden Schaltungen effektiv durchsichtig. In Modus 1 arbeitet die Fehlerdetektionsschaltung 200 als ein Flipflop für das Datenbit. In Modus 2 arbeitet die Fehlerdetektionsschaltung 200 als ein Positive-Phase-Latch mit Doppelabtastung und einem Flipflop zur Timingfehlererkennung.
  • Das zu sendende Datenbit ist das Eingangssignal des Flipflops 210 und des Master-Latch 230. Das Ausgangssignal des Flipflops 210 liefert eine Eingabe für das Logikgatter 275, das das Bitfehlersignal erzeugt. Das Ausgangssignal des Master-Latch 230 ist das Eingangssignal des Slave-Latch 250. Das Ausgangssignal des Slave-Latch 250 liefert eine zweite Eingabe für das Logikgatter 275 und ist auch das zu sendende Datenbit.
  • Falls ein Timingfehler auftritt, werden sich die Ausgangssignale des Flipflops 210 und des Slave-Latch 250 unterscheiden, was das Gatter 275 veranlassen wird, das Bitfehlersignal zu setzen. Falls kein Timingfehler auftritt, werden die Signale vom Flipflop 210 und dem Slave-Latch 250 gleich sein und das Gatter 275 wird kein Bitfehlersignal setzen.
  • In einer Ausführungsform wird für jedes zu sendende Datenbit eine Fehlerdetektionsschaltung vorgesehen. Die den mehreren Datenbits entsprechenden Bitfehlersignale können kombiniert werden, um zu bestimmen, ob ein Fehler für irgendeines der Datenbits in der zu sendenden Nachricht existiert. In einer Ausführungsform wird die Nachricht wie hier beschrieben wiederholt, wenn ein Fehler für ein beliebiges Datenbit auftritt.
  • 3 ist ein Blockdiagramm eines Routers mit Robustheit gegenüber dynamischen Veränderungen, der dafür ausgelegt ist, Daten an einen Router/Verkehrserzeuger (TG) zu senden. Das Beispiel der 3 kann aus zwei Routern innerhalb einer Netz-auf-dem-Chip-Architektur (NoC) bestehen; allerdings sind die Robustheitskonzepte auch auf andere Konfigurationen anwendbar.
  • Ein Senderouter 310 speichert Daten, die über Verbindung 350, die von beliebigem Verbindungstyp sein kann, zu dem Empfangsrouter 360 gesendet werden soll. Der Senderouter 310 empfängt Daten von einer Datenquelle (in 3 nicht dargestellt) und speichert die Daten vorübergehend in der Ausgabewarteschlange 320. Die Ausgabewarteschlange 320 kann zum Beispiel eine First-In/First-Out-Schlange (FIFO-Schlange) sein oder ein beliebiger Typ einer Struktur zum Sammeln von zu sendenden Daten.
  • Daten aus der Ausgabewarteschlange 320 werden über die Zwischenstufe 325 zum Crossbar (X-Bar) 330 übertragen. In einer Ausführungsform arbeitet die Ausgabewarteschlange 320 mit einem Negative-Phase-Latch, und die Zwischenstufe 325 arbeitet mit einem Positive-Phase-Latch; allerdings werden andere Latch-Konfigurationen ebenfalls unterstützt. In einer Ausführungsform arbeiten die Ausgabewarteschlange 320 und die Zwischenstufe 325 unter Verwendung eines Taktsignals mit einem Tastverhältnis von 50%; allerdings können auch andere Tastverhältnisse verwendet werden.
  • Der Crossbar 330 bewirkt, Daten von Eingangs-Ports zu Ausgangs-Ports zu leiten, um die Leitfunktionalität des Senderouters 310 zu bewerkstelligen. Der Crossbar 330 kann von einem beliebigen Typ eines Crossbar-Mechanismus sein. Der Crossbar 330 leitet zu sendende Daten über die Verbindung 350 zu einer Ausgangsstufe 355. In einer Ausführungsform arbeitet die Ausgangsstufe 335 mit einem gepulsten Taktsignal, das ein Tastverhältnis von weniger als 50% aufweist, oder weniger als das Tastverhältnis des Taktsignals, das von der Ausgabewarteschlange 320 und der Zwischenstufe 325 verwendet wird.
  • Die Ausgangsstufe 335 beinhaltet Fehlerdetektionsschaltungen, zum Beispiel die in den 1 oder 2 dargestellten Fehlerdetektionsschaltungen. Die Ausgangsstufe 335 bewirkt, die Daten von der Ausgabewarteschlange 320 zusammen mit dem Bitfehlersignal über die Verbindungen 350 an den Empfangsrouter 360 zu senden. Die Eingabewarteschlange 370 in dem Empfangsrouter 360 empfängt die Daten und das Bitfehlersignal. In einer Ausführungsform speichert die Eingabewarteschlange 370 die Daten und das Bitfehlersignal, das wie unten beschrieben verwendet werden kann.
  • 4 ist ein Blockdiagramm eines Empfangsrouters (oder eines ähnlichen Geräts), der das Bitfehlersignal verwendet, um das empfangene Signal zu validieren. Der Empfangsknoten 480 kann zum Beispiel ein Router oder ein Speicher oder ein Verarbeitungskern oder ein beliebiger anderer Typ eines Logikkerns, zum Beispiel ein Kern Geistigen Eigentums, oder andere Verarbeitungsschaltungen sein. Die Nachricht 405 wird zusammen mit einem oder mehreren Fehlersignalen 410 an den Empfangsknoten 480 gesendet, das/die wie oben beschrieben zum Beispiel ein oder mehrere Bits lang sein kann/können.
  • Der Empfangsknoten 480 empfängt Nachrichten 405 und entsprechende Fehlersignale 410 und speichert diese in einem Eingabepuffer 420. Der Eingabepuffer 420 speichert mehrere Nachrichten zusammen mit den entsprechenden Fehlersignalen. In einer Ausführungsform wirkt der Eingabepuffer als eine First-In/First-Out-Schlange (FIFO-Schlange); wobei allerdings andere Strukturen ebenfalls unterstützt werden. Eine Lesezeigersteuerung 430 bewirkt, die Position eines Lesezeigers für den Eingabepuffer 420 zu steuern, der verwendet wird, um Nachrichten zur richtigen Zeit aus dem Eingabepuffer 420 zu lesen.
  • In einer Ausführungsform liest die Eingabestufe 440 wie durch den Lesezeiger angegeben eine Nachricht und ein entsprechendes Fehlersignal aus dem Eingabepuffer 420. Die Eingabestufe 440 verwendet das Fehlersignal von dem Quellenknoten, um das Ausgangssignal im Empfangsknoten 480 zu validieren. Die Ausgabedaten können auf dieselbe Weise wie die Daten in dem Quellenknoten validiert werden. In einer Ausführungsform wird der Lesezeiger nur dann weiterbewegt, wenn eine fehlerfreie Nachricht aus dem Eingabepuffer 420 ausgelesen wird. Dies ermöglicht ein Wiederholen der Nachricht solange bis eine fehlerfreie Übertragung auftritt, ohne die Notwendigkeit, den Status des Empfangsknotens 480 zurückzusetzen.
  • 5 ist ein Blockdiagramm einer Ausführungsform eines Quellenknotens mit Rücksetzmechanismen, um Timingrobustheit zu unterstützen. Das Fehlersignal kann verwendet werden, um ein Rücksetzen innerhalb des Quellenknotens zu steuern, um die fehlerhafte Nachricht nochmal zu dem Empfangsknoten zu senden. Wie oben erläutert erzeugt die Ausgangsstufe ein Fehlersignal, das mit den gesendeten Daten assoziiert ist, und eine oder mehrere Stufen des Sendeknotens können gesendete Daten, zum Beispiel in einer FIFO-Schlange, speichern.
  • Eine Ausgabewarteschlange 510 empfängt die Daten von irgendeiner Datenquelle (in 5 nicht dargestellt) und speichert die Daten vorübergehend. Die Ausgabewarteschlange 510 kann zum Beispiel eine FIFO-Schlange oder ein beliebiger Typ einer Struktur zum Sammeln von zu sendenden Daten sein. Daten aus der Ausgabewarteschlange 510 werden zur Zwischenstufe 520 gesendet. In einer Ausführungsform arbeitet die Ausgabewarteschlange 510 mit einem Negative-Phase-Latch und die Zwischenstufe 520 arbeitet mit Positive-Phase-Latch; wobei allerdings auch andere Latch-Konfigurationen unterstützt werden können. In einer Ausführungsform arbeiten die Ausgabewarteschlange 510 und die Zwischenstufe 520 unter Verwendung eines Taktsignals, das weniger als 50% Tastverhältnis aufweist; allerdings können auch andere Tastverhältnisse verwendet werden.
  • Eine Lesezeigersteuerung 512 verwaltet einen Lesezeiger, der verwendet wird, um Daten aus der Ausgabewarteschlange 510 zu lesen. Die Lesezeigersteuerung 512 ändert die Position des Lesezeigers, während Daten aus der Ausgabewarteschlange 510 gelesen werden. Die Lesezeigersteuerung 512 weist assoziierte Statusinformationen (aktueller Lesezeigerzustand 514) auf, die zum Verwalten des Lesezeigers verwendet werden. In einer Ausführungsform werden auch Informationen über vorhergehende Zeigerpositionen (vorhergehender Lesezeigerzustand 516) für Rücksetzzwecke gespeichert. In der Beispielausführungsform, bei der zum Zwecke der Robustheit zwei Nachrichten behalten werden, können die zwei vorhergehenden Sätze der Zustandsinformationen behalten werden. In alternativen Ausführungsformen können mehr oder weniger Statusinformationen behalten werden.
  • Mehrere Multiplexer 560 können verwendet werden, um Daten von der Zwischenstufe 520 und/oder Daten von anderen Quellen zur Ausgangsstufe 580 zu leiten. Mit den Multiplexer 560 sind Vermittler 562 assoziiert, die den Betrieb der Multiplexer 560 steuern, um die gewünschte Schaltfunktionalität zu liefern. Die Vermittler 562 weisen mit ihnen assoziierte Statusinformationen (aktuelle Vermittlerzustände 564) auf, die verwendet werden, um den Betrieb des Vermittlers 562 zu verwalten. In einer Ausführungsform werden ebenfalls Zustandsinformationen von vorhergehenden Vermittlerzuständen (vorhergehenden Vermittlerzuständen 566) für Rücksetzzwecke gespeichert. In der Beispielausführungsform, bei der aus Robustheitsgründen zwei Nachrichten behalten werden, können die zwei vorhergehenden Sätze von Zustandsinformationen behalten werden. In alternativen Ausführungsformen können mehr oder weniger Statusinformationen behalten werden.
  • Die Ausgangsstufe 580 bewirkt, wie oben beschrieben, ein Fehlersignal zu erzeugen. Das Fehlersignal kann von dem Fehler-Latch 590, zum Beispiel einem Flipflop oder einer anderen Vorrichtung, zwischengespeichert werden. Das Fehlersignal kann dann geliefert werden, um zu veranlassen, dass vorhergehende Statusinformationen von der Lesezeigersteuerung 512 und den Vermittlern 562 verwendet werden, um zu einem vorhergehenden Zustand zurückzugehen und eine Nachricht zu wiederholen, die mit einem Fehler gesendet worden war. Diese Technik kann bewirken, Daten zu wiederholen, ohne mit dem Senden nachfolgender Daten weiterzumachen, bis die Übertragung ohne Fehler stattfindet, was Probleme mit der Reihenfolge eliminiert, die ansonsten auftreten könnten. Ferner kann eine Erholung in 1–3 Zyklen auftreten, was für einen effizienten und nahezu transparenten Fehlererholungsmechanismus sorgt.
  • 6 ist ein Blockdiagramm einer Ausführungsform eines elektronischen Systems. Das in 6 veranschaulichte elektronische System ist dafür gedacht, eine Bandbreite elektronischer Systeme (entweder drahtgebunden oder drahtlos) zu repräsentieren, wie zum Beispiel Tischcomputersysteme, Laptopcomputersysteme, Mobiltelefone, Persönliche Digitale Assistente (PDAs), darunter mobilfunkfähige PDAs, Set-Top-Boxes. Alternative elektronische System können mehr, weniger und/oder verschiedene Komponenten beinhalten.
  • Ein elektronisches System 600 beinhaltet einen Bus 605 oder andere Kommunikationsvorrichtungen, um Informationen zu kommunizieren, und einen Prozessor 610, der Informationen verarbeiten kann und der mit dem Bus 605 verbunden ist. Obwohl das elektronische System 600 mit einem Einzelprozessor veranschaulicht ist, kann das elektronische System 600 mehrere Prozessoren und/oder Koprozessoren beinhalten. Das elektronische System 600 kann ferner einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speichervorrichtung 620 (als Hauptspeicher bezeichnet) beinhalten, die mit dem Bus 605 verbunden ist und Informationen und Anweisungen, die von dem Prozessor 610 ausgeführt werden können, speichern kann. Der Hauptspeicher 620 kann während des Ausführens von Anweisungen durch den Prozessor 610 auch zum Speichern temporärer Variablen oder anderer Zwischeninformationen verwendet werden.
  • Das elektronische System 600 kann auch einen Nurlesespeicher (ROM) und/oder eine andere statische Speichervorrichtung 630 beinhalten, die mit dem Bus 605 verbunden ist und die weitere statische Informationen und Anweisungen für den Prozessor 610 speichert. Eine Datenspeichervorrichtung 640 kann mit dem Bus 605 verbunden sein, um Informationen und Anweisungen zu speichern. Die Datenspeichervorrichtung 640, wie ein magnetischer oder optischer Datenträger und ein entsprechendes Laufwerk, können mit dem elektronischen System 600 verbunden sein.
  • Das elektronische System 600 kann auch über den Bus 605 an eine Anzeigevorrichtung 650, wie eine Kathodenstrahlröhre (CRT) oder Flüssigkristallanzeige (LCD), angeschlossen sein, um einen Benutzer Informationen anzuzeigen. Eine alphanumerische Eingabevorrichtung 660, einschließlich alphanumerischer und anderer Tasten, kann an den Bus 605 angeschlossen werden, um dem Prozessor 610 Informationen und Befehlsauswahlen zu kommunizieren. Ein anderer Typ von Benutzereingabevorrichtung ist die Cursorsteuerung 670, wie eine Maus, ein Trackball oder Cursorrichtungstasten, um dem Prozessor 610 Richtungsinformationen und Befehlsauswahlen zu kommunizieren und Cursorbewegungen auf der Anzeige 650 zu steuern.
  • Das elektronische System 600 kann ferner eine/mehrere Netzwerkschnittstelle(n) 680 beinhalten, um Zugriff auf ein Netzwerk wie ein lokales Netzwerk zu erhalten. Die Netzwerkschnittstelle(n) 680 kann/können zum Beispiel eine drahtlose Netzwerkschnittstelle mit einer Antenne 685 beinhalten, die eine oder mehrere Antennen repräsentieren kann. Die Netzwerkschnittstelle(n) 680 kann/können zum Beispiel auch eine verdrahtete Netzwerkschnittstelle beinhalten, um mit entfernten Vorrichtungen über ein Netzkabel 687 zu kommunizieren, das zum Beispiel ein Ethernet-Kabel, ein Koaxialkabel, ein Glasfaserkabel, ein serielles Kabel oder ein paralleles Kabel sein kann.
  • In einer Ausführungsform kann/können die Netzwerkschnittstelle(n) 680 Zugriff zu einem lokalen Netzwerk schaffen, zum Beispiel durch Erfüllen der Standards IEEE 802.11b und/oder IEEE 802.11g, und/oder die drahtlose Netzwerkschnittstelle kann Zugang zu einem persönlichen Netzwerk, zum Beispiel durch Erfüllen der Bluetooth-Standards, schaffen. Andere drahtlose Netzwerkschnittstellen und/oder -Protokolle können auch unterstützt werden.
  • IEEE 802.11b entspricht dem IEEE-Standard 802.11b-1999 mit dem Titel ”Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band”, verabschiedet am 16. September 1999 sowie verwandten Dokumenten. IEEE 802.11g entspricht dem IEEE-Standard 802.11g-2003 mit dem Titel ”Local and Metropolitan Area Networks, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, Amendment 4: Further Higher Rate Extension in the 2.4 GHz Band”, verabschiedet am 27. Juni 2003 sowie verwandten Dokumenten. Bluetooth-Protokolle sind in ”Specification of the Bluetooth System: Core, Version 1.1”, veröffentlich am 22. Februar 2001 von der Bluetooth Special Interest Group, Inc., beschrieben. Assoziierte sowie frühere oder spätere Versionen des Bluetooth-Standards können auch unterstützt werden.
  • Zusätzlich zu oder anstatt von Kommunikation mit drahtlosen LAN-Standards kann/können die Netzwerkschnittstelle(n) 680 drahtlose Kommunikation bereitstellen, die zum Beispiel Zeitmultiplex-Protokolle (TDMA-Protokolle), GSM-Protokolle, Codemultiplex-Protokolle (CDMA-Protokolle) und/oder beliebige andere Typen von drahtlosen Kommunikationsprotokollen verwenden.

Claims (24)

  1. Vorrichtung, umfassend: einen Datenpfad zum Speichern von Daten, die über eine Verbindung zu einem Empfangsknoten gesendet werden sollen; eine Ausgangsstufe, die zwischen den Datenpfad und die Verbindung geschaltet ist, wobei die Ausgangsstufe Doppelabtastmechanismen aufweist, um eine Kopie von über die Verbindung zu dem Empfangsknoten gesendeten Daten zu bewahren; Fehlerdetektionsschaltungen, die mit der Ausgangsstufe verbunden sind, um transiente Timingfehler im Datenpfad oder in der Ausgangsstufe zu detektieren, wobei die Fehlerdetektionsschaltungen die Ausgangsstufe veranlassen, als Reaktion auf das Detektieren eines Fehlers die Kopie der über die Verbindung gesendeten Daten noch einmal zu senden.
  2. Vorrichtung nach Anspruch 1, wobei der Datenpfad, die Ausgangsstufe und die Fehlerdetektionsschaltungen Teil eines Routers in einer Netz-auf-einem-Chip(NoC)-Architektur sind.
  3. Vorrichtung nach Anspruch 1, wobei der Datenpfad mindestens eine First-in/First-out(FIFO)-Schlange umfasst, die mit einer Crossbar-Schaltung verbunden ist, wobei die Crossbar-Schaltung mit der Ausgangsstufe verbunden ist.
  4. Vorrichtung nach Anspruch 1, wobei der Datenpfad mindestens eine Crossbar-Schaltung umfasst, die mit einer First-in/First-out(FIFO)-Schlange verbunden ist, wobei die FIFO-Schlange mit der Ausgangsstufe verbunden ist.
  5. Vorrichtung nach Anspruch 3, wobei die Fehlerdetektionsschaltungen transiente Timingfehler in der FIFO-Schlange und der Crossbar-Schaltung detektieren.
  6. Vorrichtung nach Anspruch 3, wobei ein Lesezeiger in der FIFO-Schlange als Reaktion auf das Detektieren des transienten Timingfehlers durch die Fehlerdetektionsschaltungen zurückgesetzt wird.
  7. Vorrichtung nach Anspruch 3, wobei als Reaktion auf das Detektieren des transienten Timingfehlers durch die Fehlerdetektionsschaltungen Zustände eines oder mehrerer Vermittler in dem Datenpfad zurückgesetzt werden.
  8. Vorrichtung nach Anspruch 1, wobei die Ausgangsstufe zusammen mit den über die Verbindung gesendeten Daten einen Fehleranzeiger sendet, um die herausgegangenen fehlerhaften Nachrichten für ungültig zu erklären.
  9. Vorrichtung nach Anspruch 8, wobei der Empfangsknoten als Reaktion auf den Empfang des Fehleranzeigers die über die Verbindung gesendeten Daten nicht verarbeitet.
  10. Vorrichtung nach Anspruch 1, wobei der Empfangsknoten einen Router umfasst.
  11. Verfahren, umfassend: Erzeugen eines Fehlersignals, das einem Datensignal entspricht, wobei das Fehlersignal mit dem Datensignal gesendet werden soll, wobei das Fehlersignal von den Fehlerdetektionsschaltungen erzeugt wird, die mit einer Ausgangsstufe verbunden sind, um transiente Timingfehler zu detektieren; Veranlassen, dass die Ausgangsstufe als Reaktion auf das Detektieren eines Fehlers eine Kopie der über die Verbindung gesendeten Daten sendet; Doppelabtasten, um eine Kopie von über die Verbindung gesendeten Daten zu bewahren.
  12. Verfahren nach Anspruch 11, wobei der Datenpfad, die Ausgangsstufe und die Fehlerdetektionsschaltungen Teil eines Routers in einer Netz-auf-einem-Chip(NoC)-Architektur sind.
  13. Verfahren nach Anspruch 11, wobei der Datenpfad mindestens eine First-in/First-out(FIFO)-Schlange umfasst, die mit einer Crossbar-Schaltung verbunden ist, wobei die Crossbar-Schaltung mit der Ausgangsstufe verbunden ist.
  14. Verfahren nach Anspruch 11, wobei der Datenpfad mindestens eine Crossbar-Schaltung umfasst, die mit einer First-in/First-out(FIFO)-Schlange verbunden ist, wobei die FIFO-Schlange mit der Ausgangsstufe verbunden ist.
  15. Verfahren nach Anspruch 13, wobei die Fehlerdetektionsschaltungen transiente Timingfehler in der FIFO-Schlange und der Crossbar-Schaltung detektieren.
  16. Verfahren nach Anspruch 13, wobei ein Lesezeiger in der FIFO-Schlange als Reaktion auf das Detektieren des transienten Timingfehlers durch die Fehlerdetektionsschaltungen zurückgesetzt wird.
  17. Verfahren nach Anspruch 13, wobei als Reaktion auf das Detektieren des transienten Timingfehlers durch die Fehlerdetektionsschaltungen Zustände eines oder mehrerer Vermittler in dem Datenpfad zurückgesetzt werden.
  18. Verfahren nach Anspruch 11, wobei die Ausgangsstufe zusammen mit den über die Verbindung gesendeten Daten einen Fehleranzeiger sendet, um die herausgegangenen fehlerhaften Nachrichten für ungültig zu erklären.
  19. Verfahren nach Anspruch 18, wobei der Empfangsknoten als Reaktion auf den Empfang des Fehleranzeigers die über die Verbindung gesendeten Daten nicht verarbeitet.
  20. Verfahren nach Anspruch 11, wobei der Empfangsknoten einen Router umfasst.
  21. Vorrichtung, umfassend: mehrere Geistiges Eigentum(IP)-Kerne; und ein Verbindungskoppelfeld, das mit den mehreren IP-Kernen verbunden ist, wobei das Verbindungskoppelfeld Leitlogik enthält, um Flits zwischen mindestens den IP-Kernen zu leiten, wobei die Leitlogik Wiederholungslogik umfasst, um einen oder mehrere Flits und ein oder mehrere Steuerzustandselemente für eine Anzahl vorhergehender Zyklen vor einem aktuellen Zyklus zu überprüfen, einen mit der Leitlogik assoziierten Zustand als Reaktion auf einen mit einem Flit des einen oder der mehreren Flits assoziierten Fehler basierend auf dem Überprüfen eines oder mehrerer Flits und eines oder mehrerer Steuerzustandselemente für eine Anzahl vorhergehender Zyklen vor einem aktuellen Zyklus zurückzusetzen; und den Flit als Reaktion auf das Zurücksetzen des Zustands zu wiederholen.
  22. Vorrichtung nach Anspruch 21, wobei die mehreren IP-Kerne und das Verbindungkoppelnetz in einer integrierten Schaltung mit einem System-auf-einem-Chip (SOC) enthalten sind und wobei das SOC mit einer Steuerung verbunden ist, um Eingaben von einer berührungsempfindlichen Anzeigevorrichtung zu empfangen.
  23. Vorrichtung nach Anspruch 21, wobei die Anzahl der vorhergehenden Zyklen zwei umfasst.
  24. Vorrichtung nach Anspruch 21, wobei die Anzahl der vorhergehenden Zyklen drei umfasst.
DE112013004782.9T 2012-09-29 2013-06-14 Techniken für robuste Kommunikation Pending DE112013004782T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/631,937 US8990662B2 (en) 2012-09-29 2012-09-29 Techniques for resilient communication
US13/631,937 2012-09-29
PCT/US2013/045790 WO2014051746A1 (en) 2012-09-29 2013-06-14 Techniques for resilient communication

Publications (1)

Publication Number Publication Date
DE112013004782T5 true DE112013004782T5 (de) 2015-07-09

Family

ID=50386457

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013004782.9T Pending DE112013004782T5 (de) 2012-09-29 2013-06-14 Techniken für robuste Kommunikation

Country Status (4)

Country Link
US (1) US8990662B2 (de)
CN (1) CN104583962B (de)
DE (1) DE112013004782T5 (de)
WO (1) WO2014051746A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990662B2 (en) 2012-09-29 2015-03-24 Intel Corporation Techniques for resilient communication
US9454171B2 (en) * 2015-01-07 2016-09-27 Delphi Technologies, Inc. Validation circuit for reference voltage shifted data
WO2017052661A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Multichip package link error detection
CN107317773B (zh) * 2017-07-03 2020-03-27 辽宁科技大学 一种片上网络通信接口及通信方法
US10902166B2 (en) * 2017-12-31 2021-01-26 Arteris, Inc. System and method for isolating faults in a resilient system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
US5832251A (en) * 1995-06-02 1998-11-03 Nec Corporation Emulation device
US5959995A (en) 1996-02-22 1999-09-28 Fujitsu, Ltd. Asynchronous packet switching
JPH10240568A (ja) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp エミュレータ装置およびエミュレーション方法
US7047437B2 (en) 2001-12-12 2006-05-16 Hewlett-Packard Development Company, L.P. Method and system for detecting dropped micro-packets
US8626957B2 (en) 2003-08-22 2014-01-07 International Business Machines Corporation Collective network for computer structures
JP5035176B2 (ja) 2008-08-21 2012-09-26 富士通株式会社 伝送システム、伝送装置および伝送方法
JP5543894B2 (ja) 2010-10-21 2014-07-09 ルネサスエレクトロニクス株式会社 NoCシステム及び入力切替装置
US8990662B2 (en) 2012-09-29 2015-03-24 Intel Corporation Techniques for resilient communication

Also Published As

Publication number Publication date
CN104583962A (zh) 2015-04-29
US8990662B2 (en) 2015-03-24
US20140095953A1 (en) 2014-04-03
WO2014051746A1 (en) 2014-04-03
CN104583962B (zh) 2018-05-08

Similar Documents

Publication Publication Date Title
DE69605037T2 (de) Taktquellensynchrone datenverbindung
DE69326573T2 (de) Frame-Group-Übertragung (und Empfang) für parallele/serielle Bus-Systeme
DE112013004782T5 (de) Techniken für robuste Kommunikation
DE3687956T2 (de) Datensynchronisator zwischen einer sende- und einer empfangsanlage.
DE112011103225B4 (de) Schaltkreisvorrichtung, System und Verfahren mit Drosseln einer integrierten Verbindung
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE112007000443B4 (de) Vorrichtung mit einer gemeinsamen Schnittstelle fiir mehrere Prozessorkerne und Verfahren zur Steuerung der Kommunikation derselben mit einer damit gekoppelten Verbindung
DE102020122301A1 (de) Konfigurationsschema für link-herstellung
DE102016116721A1 (de) Reduzieren der Ethernet-Latenz in einem Multi-Server Chassis
DE112011102242T5 (de) Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit
DE112009000739B4 (de) Empfänger zum Rückgewinnen und Neutakten elektromagnetisch gekoppelter Daten
DE60130039T2 (de) Fifo-schaltungen mit geringer latenz für gemischte asynchrone und synchrone systeme
DE69032723T2 (de) FIFO mit variablem Zuweisungszeiger
DE69025510T2 (de) Asynchronische Hochgeschwindigkeitsdatenschnittstelle
DE102009032072A1 (de) Einstellbare Senderleistung für Hochgeschwindigkeitsverbindungen mit konstanter Bitfehlerrate
DE112011101039T5 (de) Implementieren einer verbesserten Verbindungsbandbreite in einem Headless-Verbindungschip
KR20190058288A (ko) 명령 처리 정렬 시스템
KR20220080729A (ko) Serdes 기능을 이용한 다중-다이 패키지 내 스캔 데이터 전송 수행
KR102512835B1 (ko) 도미노 인에이블 선택을 구비한 저 전력 통합 클럭 게이팅 셀
DE102020110851A1 (de) Verteilte fehler- und anomaliekommunikationsarchitektur für analog- und misch-signalsysteme
CN109547006B (zh) 抗辐照d锁存器
DE102015121940A1 (de) Eine Schaltung und ein Verfahren zum Anhängen eines Zeitstempels an eine Tracenachricht
US20070240094A1 (en) Partially gated mux-latch keeper
DE102013209610B4 (de) Arbiter für asynchrone Zustandsautomaten
DE112011104391B4 (de) Bereitstellen einer Feedback-Schleife in einer seriellen Zusammenschaltungsarchitektur mit niedriger Latenz

Legal Events

Date Code Title Description
R012 Request for examination validly filed