DE112006001652T5 - Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem - Google Patents

Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem Download PDF

Info

Publication number
DE112006001652T5
DE112006001652T5 DE112006001652T DE112006001652T DE112006001652T5 DE 112006001652 T5 DE112006001652 T5 DE 112006001652T5 DE 112006001652 T DE112006001652 T DE 112006001652T DE 112006001652 T DE112006001652 T DE 112006001652T DE 112006001652 T5 DE112006001652 T5 DE 112006001652T5
Authority
DE
Germany
Prior art keywords
value
core
error
global
box
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.)
Withdrawn
Application number
DE112006001652T
Other languages
English (en)
Inventor
Paul B. Marlborough Racunas
Joel S. Acton Emer
Arijit Holden Biswas
Shubhendu S. Framingham Mukherjee
Steven E. Shrewsbury Raasch
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 DE112006001652T5 publication Critical patent/DE112006001652T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Vorrichtung, welche umfasst:
einen ersten Kern, der eine erste Struktur enthält;
einen zweiten Kern, der eine zweite Struktur enthält;
einen Mikroprüfer zum Überprüfen, ob ein erster Wert aus der ersten Struktur mit einem zweiten Wert aus der zweiten Struktur übereinstimmt;
einen globalen Prüfer zum Überprüfen, ob zwischen dem ersten Kern und dem zweiten Kern ein Locksteg-Fehler vorliegt; und
eine Fehlerlogik zum Bewirken, dass der erste Kern und der zweite Kern resynchronisiert werden, wenn der globale Prüfer einen Locksteg-Fehler erkennt und der Mikroprüfer eine Nichtübereinstimmung zwischen dem ersten Wert und dem zweiten Wert erkennt.

Description

  • Hintergrund
  • 1. Gebiet
  • Die vorliegende Offenbarung betrifft das Gebiet der Datenverarbeitung, und spezieller das Gebiet der Fehlerminderung in Datenverarbeitungsvorrichtungen.
  • 2. Beschreibung des Stands der Technik
  • Durch die immer weiter fortschreitende Verbesserung der Herstellungstechnologien für integrierte Schaltkreise und die damit einhergehende Verkleinerung der Dimensionen und Verringerung der Betriebsspannung von Mikroprozessoren und anderen Datenverarbeitungsvorrichtungen wächst bei Herstellern und Anwendern das Problembewusstsein für das Phänomen der Soft Errors. Soft Errors sind Fehler, die durch das Auftreffen von Alphastrahlen und hochenergetischen Neutronen auf integrierte Schaltkreise entstehen, wobei die Strahlung die auf den Schaltkreisknoten gespeicherten Ladungen verändert. Wenn die Ladungsänderung ausreichend groß ist, kann die an einem Knoten anliegende Spannung von einem Niveau, das einen logischen Zustand repräsentiert, auf ein Niveau kippen, das einen anderen logischen Zustand repräsentiert, wodurch die auf diesem Knoten gespeicherte Information fehlerhaft wird. Grundsätzlich steigt die Soft-Error-Rate bei Verringerung der Schaltkreisdimensionen, weil die Wahrscheinlichkeit, dass ein aufschlagendes Teilchen einen Spannungsknoten trifft, mit wachsender Schaltkreisdichte ebenfalls ansteigt. Gleichermaßen wird durch die Verringerung der Betriebsspannungen die Differenz zwischen den unterschiedliche logische Zustände repräsentierenden Spannungsniveaus verringert, so dass weniger Energie benötigt wird, um die logischen Zustände an den Schaltkreisknoten zu verändern, wodurch die Zahl der Soft Errors zunimmt.
  • Da eine Abschirmung gegen die Teilchen, von denen Soft Errors verursacht werden, äußerst schwierig ist, werden Datenverarbeitungsvorrichtungen häufig mit Technologien zur Erkennung, und in manchen Fällen Korrektur, von Soft Errors ausgestattet. Zu diesen Fehlerverringerungstechnologien gehören die doppelt modulare Redundanz ("DMR') und die dreifach modulare Redundanz ("TMR"). Bei der DMR führen zwei identische Prozessoren oder Prozessorkerne dasselbe Programm gleichzeitig, im Locksteg-Modus, aus, wobei die Ergebnisse danach verglichen werden. Bei der TMR arbeiten drei identische Prozessoren im Locksteg-Modus.
  • Ein Fehler in einem der Prozessoren kann mittels DMR oder TMR erkannt werden, da der Fehler zu einem Unterschied in den Ergebnissen führt. TMR bietet den zusätzlichen Vorteil, dass unter der Annahme, dass ein übereinstimmendes Ergebnis bei zwei der drei Prozessoren das korrekte Ergebnis ist, eine Korrektur des Fehlers erzielt werden kann.
  • In einem DMR-System ist Fehlerbehebung ebenfalls möglich, indem alle Ergebnisse überprüft werden, bevor sie an ein Register übergeben werden oder auf andere Art den Architekturzustand des Systems beeinflussen können. Falls dabei ein Fehler festgestellt wird, kann die Fehlerbehebung durch ein erneutes Ausführen aller Befehle seit dem letzten Programmhaltepunkt erreicht werden. Allerdings kann sich dieser Ansatz aufgrund von Latenzzeiten oder anderen konstruktionsbedingten Einschränkungen als unzweckmäßig erweisen. Ein anderer Ansatz ist die Hinzufügung eines Rollback-Mechanismus, der es erlaubt, bei Erkennung eines Fehlers auf einen vorherigen Architekturzustand zurückzusetzen.
  • Auch dieser Ansatz kann wegen der Komplexität des Aufbaus unzweckmäßig sein und kann außerdem dadurch problematisch werden, dass die Ergebnisse der von einem vorherigen Zustand ausgehenden erneuten Ausführung aufgrund eines nichtdeterministischen Ereignisses, beispielsweise eines asynchronen Interrupts, oder durch die erneute Ausführung einer nicht idempotenten Ausgabeoperation von den ursprünglichen Ergebnissen abweichen können.
  • Außerdem können DMR und TMR sogar die Fehlerhäufigkeit erhöhen, zum einen weil ihre Implementierung zusätzliche Schaltkreise erfordert, was wiederum zu zusätzlichen Soft Errors führen kann, zum anderen weil sie unter Umständen Fehler erkennen, die bei Nichtentdeckung nicht zu einem Systemfehler führen würden. Beispielsweise könnte ein Fehler in einer Struktur, die eine Vorhersage darüber trifft, welche Programmverzweigung wahrscheinlich ausgeführt werden wird und diese prädiktiv ausführt, zwar zu einer falschen Vorhersage führen, aber der Prozessor würde diesen Fehler automatisch ausgleichen, wenn er die Verzweigungsbedingung letztendlich auswertet.
  • Kurzbeschreibung der Figuren
  • Die Darstellung der vorliegenden Erfindung in den beiliegenden Figuren erfolgt ausschließlich als Beispiel und soll nicht als Beschränkung verstanden werden.
  • 1 illustriert eine Ausführungsform der vorliegenden Erfindung in einem Mehrkernprozessor.
  • 2 illustriert eine Ausführungsform der vorliegenden Erfindung, die einen Mikroprüfer mit Hash-Logik verwendet, um die Bandbreite zwischen den Kernen zu verringern.
  • 3 illustriert eine Ausführungsform der vorliegenden Erfindung bei einem Verfahren zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Locksteg-Modus arbeitenden doppelt modularen Redundanzsystem.
  • 4 illustriert eine weitere Ausführungsform der vorliegenden Erfindung bei einem Verfahren zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem.
  • 5 illustriert eine weitere Ausführungsform der vorliegenden Erfindung bei einem Verfahren zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem.
  • 6 illustriert eine Ausführungsform der vorliegenden Erfindung in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem.
  • Ausführliche Beschreibung
  • Im folgenden werden Ausführungsformen von Vorrichtungen und Verfahren zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Locksteg-Modus arbeitenden doppelt modularen Redundanzsystem beschrieben. In der folgenden Beschreibung werden zahlreiche spezifische Details, beispielsweise konkrete Konfigurationen der Komponenten und des Systems, angeführt, um ein genaueres Verständnis der vorliegenden Erfindung zu ermöglichen. Allerdings wird dem Fachmann deutlich werden, dass die Erfindung auch ohne solche spezifischen Details ausgeführt werden kann. Bestimmte wohlbekannte Strukturen, Schaltkreise, Techniken und ähnliche Gegenstände werden andererseits nicht im Detail beschrieben, um den Inhalt der vorliegenden Erfindung deutlicher werden zu lassen.
  • DMR kann dazu verwendet werden, Fehler zu erkennen und zu korrigieren. Allerdings kann sich durch DMR auch die Fehlerhäufigkeit erhöhen, da Fehler entdeckt werden, die nicht zu einem Systemfehler führen würden. Ausführungsformen der vorliegenden Erfindung können durch die Verwendung von Mikroprüfern, die solche "falschen" Fehler erkennen, so dass sie ignoriert werden können, die Fehlerhäufigkeit in einem DMR-System senken. Andere Ausführungsformen können die Fehlerhäufigkeit in einem DMR-System senken, indem sie für bestimmte Strukturen, beispielsweise einen Cache, Mikroprüfer verwenden, so dass für diese Strukturen Werte neu erzeugt und mit den Originalwerten verglichen werden können, wodurch dann bestimmt werden kann, welcher der beiden Prozessoren auf den Status des anderen Prozessors synchronisiert werden muss, um auf diese Weise die Kosten eines vollständigen Rollback-Mechanismus zu vermeiden. Solche Ausführungsformen der vorliegenden Erfindung können dazu beitragen, einige der Vorzüge von DMR (z. B. Möglichkeiten der Fehlererkennung und Fehlerbehebung) bereitzustellen und gleichzeitig einige der Nachteile (z. B. falsche Fehler, Kosten der vollständigen Wiederherstellungsmöglichkeit) zu verringern.
  • Zusätzlich können Ausführungsformen der vorliegenden Erfindung dadurch vorteilhaft sein, dass sie den Schutz bestimmter Strukturen durch möglicherweise kostenaufwendige Paritäts- oder Fehlerkorrekturmechanismen überflüssig machen, wobei diese Mechanismen für Strukturen, welche den Architekturzustand des System nicht beschädigen können, unter Umständen auch unnötig sein können. Durch die Verbindung dieser Strukturen mit einem Mikroprüfer in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung kann die Möglichkeit entstehen, einen Fehler zu korrigieren, ohne dass es notwendig ist, durch Parität oder auf andere Weise zu bestimmen, in welchem der beiden DMR-Kerne der Fehler aufgetreten ist.
  • 1 illustriert eine Ausführungsform der vorliegenden Erfindung im Mehrkernprozessor 100. Im Allgemeinen ist ein Mehrkernprozessor ein einzelner integrierter Schaltkreis mit mehr als einem Ausführungskern. Ein Ausführungskern enthält Logik zur Ausführung von Befehlen. Zusätzlich zu den Ausführungskernen kann ein Mehrkernprozessor im Anwendungsbereich der vorliegenden Erfindung eine beliebige Kombination von dedizierten oder gemeinsam genutzten Ressourcen enthalten. Eine dedizierte Ressource kann eine einem einzigen Kern zugewiesene Ressource, beispielsweise ein dedizierter Level-1-Cache, oder eine einer beliebigen Teilmenge der Kerne zugewiesene Ressource sein. Eine gemeinsam genutzte Ressource kann eine von allen Kernen gemeinsam genutzte Ressource, beispielsweise ein gemeinsam genutzter Level-2-Cache oder eine gemeinsam genutzte externe Buseinheit, die eine Schnittstelle zwischen dem Mehrkernprozessor und einer anderen Komponente unterstützt, oder eine von einer beliebigen Teilmenge der Kerne gemeinsam genutzte Ressource sein. Die vorliegende Erfindung ist auch in einer Vorrichtung ausführbar, die kein Mehrkernprozessor ist, beispielsweise in einem Mehrprozessorsystem, das über mindestens zwei Prozessoren mit jeweils mindestens einem Kern verfügt.
  • Der Prozessor 100 enthält Kern 110 und Kern 120. Die Kerne 110 und 120 können konstruktiv auf einer Vielzahl möglicher Prozessortypen basieren, beispielsweise auf einem Prozessor der Pentium®-Prozessorfamilie, der Itanium®-Prozessorfamilie oder einer anderen Prozessorfamilie der Intel Corporation, oder auf einem anderen Prozessor eines anderen Herstellers. Der Prozessor 100 enthält außerdem einen globalen Prüfer 130 und einen Mikroprüfer 140.
  • Der globale Prüfer 130 vergleicht in Übereinstimmung mit einer beliebigen dem Fachmann bekannten Technik zur Erkennung von Locksteg-Fehlern in einem DMR-System, beispielsweise mit Hilfe eines Komparatorschaltkreises, einen Ausgabewert des Kerns 110 mit einem Ausgabewert des Kerns 120. Die Ausgabewerte der Kerne 110 und 120 können beispielsweise verglichen werden, wenn in den Kernen 110 und 120 identische Kopien eines Programms mit identischem Input synchron ablaufen.
  • Der Kern 110 enthält die Struktur 111, wobei diese Struktur ein beliebiger Schaltkreis, eine beliebige Logik, ein beliebiger funktionaler Block, ein beliebiges Modul, eine beliebige Einheit oder eine andere Struktur sein kann, die einen Wert erzeugt oder bereithält, der mit einem entsprechenden Wert aus der entsprechenden in Kern 120 enthaltenen Struktur 121 übereinstimmen sollte, wenn die Kerne 110 und 120 im Locksteg-Modus arbeiten.
  • In einer Ausführungsform können die Strukturen 111 und 121 Strukturen sein, die den Architekturzustand des Prozessors 100 oder eines den Prozessor 100 enthaltenden Systems nicht verändern können. Beispielsweise können die Strukturen 111 und 121 Vorhersagestrukturen sein, die zum Beispiel bedingte Verzweigungen, Sprünge, Rücksprungadressen oder Speicherabhängigkeiten vorhersagen.
  • In einer anderen Ausführungsform können die Strukturen 111 und 121 Strukturen sein, deren Inhalt an einer anderen Stelle in einem den Prozessor 100 enthaltenden System dupliziert wird oder neu erzeugt werden kann. Beispielsweise können die Strukturen 111 und 121 Cachestrukturen sein, wobei jede unveränderte Cachezeile oder jeder unveränderte Cache-Eintrag ein Wert ist, der durch Neuladen der Cachezeile oder des Cache-Eintrags aus einem Higher-Level-Cache oder einem anderen Systemspeicher neu erzeugt werden kann.
  • Der Mikroprüfer 140 vergleicht einen Wert aus Struktur 111 mit dem entsprechenden Wert aus Struktur 121. In unterschiedlichen Ausführungsformen kann der verglichene Wert in Abhängigkeit von der Art der Strukturen 111 und 121 unterschiedlicher Art sein, beispielsweise ein Einzelbit, welches anzeigt, ob eine bedingte Verzweigung oder ein Sprung ausgeführt werden soll, oder eine Mehrbit-kodierte vorhergesagte Rücksprungadresse, oder eine Mehrbit-kodierte Cachezeile bzw. ein Mehrbit-kodierter Cache-Eintrag. Dementsprechend kann die Art des Mikroprüfers 140 in unterschiedlichen Ausführungsformen unterschiedlich sein und der Vergleich in Übereinstimmung mit einer beliebigen dem Fachmann bekannten Technologie, beispielsweise mit Hilfe eines exklusiven Schaltkreises, eines Gatterschaltkreises oder eines Komparatorschaltkreises, ausgeführt werden.
  • In einer Ausführungsform kann der Mikroprüfer 140 so konfiguriert sein, dass er das Ergebnis des von ihm durchgeführten Vergleichs zumindest so lange aufbewahrt, bis die Programmausführung im Locksteg-Modus einen Punkt erreicht hat, an dem ein vom globalen Prüfer 130 erkannter Locksteg-Fehler nicht mehr auf eine Nichtübereinstimmung zwischen den vom Mikroprüfer 140 verglichenen Werten zurückgeführt werden kann. Eine solche Konfiguration des Mikroprüfers 140 kann sowohl ohne ein spezielles Speicherelement erreicht werden, beispielsweise dadurch, dass der Mikroprüfer ein Schaltnetz ist und die verglichenen Werte mindestens so lange statisch bleiben, bis der jeweilige Erkennungspunkt für Locksteg-Fehler erreicht ist, als auch mittels eines Registers oder eines anderen Speicherelements, in dem das Ergebnis des Mikroprüfers 140 gespeichert wird, erreicht werden. In anderen Ausführungsformen muss der Mikroprüfer nicht so konfiguriert sein, dass er das Ergebnis des von ihm durchgeführten Vergleichs aufbewahrt.
  • Der Prozessor 100 enthält außerdem eine Fehlerlogik 150. Die Fehlerlogik 150 kann eine beliebige Hardware, ein beliebiger Microcode, eine beliebige programmierbare Logik, Prozessor-Abstraktionsschicht, Firmware, Software oder andere Logik sein, welche die Reaktion des Prozessors 100 auf die Erkennung eines Locksteg-Fehlers durch den globalen Prüfer 130 vorschreibt. Sobald der globale Prüfer 130 einen Locksteg-Fehler erkennt, bewirkt die Fehlerlogik 150, falls der Mikroprüfer 140 eine Nichtübereinstimmung zwischen dem Wert aus Struktur 111 und dem entsprechenden Wert aus Struktur 121 erkannt hat, dass Kern 110 und Kern 120 auf die unten beschriebene Weise resynchronisiert werden. Falls andererseits der Mikroprüfer 140 keine Nichtübereinstimmung zwischen dem Wert aus Struktur 111 und dem entsprechenden Wert aus Struktur 121 erkannt hat, zeigt die Fehlerlogik 150 auf eine beliebige dem Fachmann bekannte Art der Anzeige eines Systemfehlers, beispielsweise durch Melden eines Fehlercodes und Anhalten des Programmdurchlaufs, einen unkorrigierbaren Fehler an.
  • Obwohl in der Darstellung in 1 nur eine Struktur 111 in Kern 110 und eine Struktur 121 in Kern 120 Eingabewerte an einen Mikroprüfer 140 liefern, ist die Verwendung jeder beliebigen Anzahl von Strukturen und Mikroprüfern im Umfang der vorliegenden Erfindung inbegriffen. Beispielsweise zeigt 2 eine Ausführungsform der vorliegenden Erfindung, bei der mehrere Strukturen pro Kern, ein einzelner Mikroprüfer sowie eine Fingerprint-Logik zur Verringerung der Bandbreite zwischen den Kernen verwendet werden.
  • In 2 enthält ein Prozessor 200 die Kerne 210 und 220, den globalen Prüfer 230, den Mikroprüfer 240 und die Fehlerlogik 250. Der Kern 210 enthält die Strukturen 211, 213 und 215, und der Prozessorkern 220 enthält die Strukturen 221, 223 und 225.
  • Die Struktur 211 enthält eine Fingerprint-Logik 212, die auf der Grundlage von Werten aus den Strukturen 213 und 215 einen Fingerprint-Wert generiert, wobei die Strukturen 213 und 215 beliebige der Strukturen sein können, die oben in Bezug auf Struktur 111 aus 1 beschrieben wurden. Auf ähnliche Weise enthält die Struktur 221 eine Fingerprint-Logik 222, die nach dem gleichen Prinzip wie die Fingerprint-Logik 212 auf der Grundlage von Werten aus den Strukturen 223 und 225 einen Fingerprint-Wert generiert.
  • Fingerprint-Logik 212 und Fingerprint-Logik 222 können auf jede dem Fachmann bekannte Weise, zwei oder mehr Werte zu einem einzigen Wert zu kombinieren, beispielsweise durch die Erzeugung einer Prüfsumme mittels eines zyklischen Redundanzprüfers, implementiert werden. Fingerprint-Logik 212 und Fingerprint-Logik 222 sorgen auf diese Weise dafür, dass der Mikroprüfer 240 Nichtübereinstimmungen zwischen den Strukturen 213 und 223 und den Strukturen 215 und 225 erkennen kann, so dass es nicht notwendig ist, einen Mikroprüfer für die Strukturen 213 und 223 und einen zweiten Mikroprüfer für die Strukturen 215 und 225 zu verwenden.
  • Fingerprint-Logik 212 und Fingerprint-Logik 222 können außerdem zur Verringerung der Bandbreite zwischen den Kernen verwendet werden. Beispielsweise kann die Fingerprint-Logik 212 verwendet werden, um Werte aus den Strukturen 213 und 215 so zu kombinieren, dass die Anzahl der Bits im Ausgabewert der Fingerprint-Logik 212 geringer als die Gesamtanzahl der Bits in den beiden Werten ist. Während es in manchen Ausführungsformen wünschenswert sein kann, dass die Fingerprint-Logik 212 für jede Kombination von Eingabewerten einen anderen Ausgabewert liefert, kann es in anderen Ausführungsformen wünschenswert sein, eine unter 100% liegende Genauigkeit des Mikroprüfers 240 zu akzeptieren, wenn dafür die Anzahl der mit jedem Eingabewert des Mikroprüfers 240 verbundenen Bits verringert werden kann. Eine unter 100% liegende Genauigkeit des Mikroprüfers 240 kann akzeptabel sein, weil ein Fehler des Mikroprüfers 240 bei der Erkennung eines korrigierbaren Locksteg-Fehlers als ein unkorrigierbarer Locksteg-Fehler interpretiert werden würde, nicht aber als fehlerfreier Locksteg-Betrieb, was zu einer Schädigung des Systems führen könnte.
  • 3 illustriert eine Ausführungsform der vorliegenden Erfindung bei einem Verfahren 300 zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Locksteg-Modus arbeitenden doppelt modularen Redundanzsystem, einschließlich des Prozessors 100 aus 1, wobei 111 und 121 Strukturen sind, die den Architekturzustand des Systems nicht verändern können, beispielsweise Vorhersagestrukturen.
  • Im Kästchen 310 arbeiten die Kerne 110 und 120 im Locksteg-Modus. Im Kästchen 311 erzeugt die Struktur 111 einen ersten Wert und die Struktur 121 einen zweiten Wert. Der erste Wert kann mit dem zweiten Wert übereinstimmen oder nicht übereinstimmen. Im Kästchen 320 vergleicht der Mikroprüfer 140 die Werte aus den Strukturen 111 und 121. Im Kästchen 330 wird das Ergebnis des Vergleichs aus Kästchen 320 gespeichert.
  • Im Kästchen 331 führt der Kern 110 auf der Basis des von der Struktur 111 generierten Wertes einen ersten Befehl aus, und der Kern 120 führt auf der Basis des von der Struktur 121 generierten Wertes einen zweiten Befehl aus. Der erste und zweite Befehl sind entweder der gleiche Befehl oder nicht der gleiche Befehl. Der erste und der zweite Wert können als Grundlage für die Bestimmung des auszuführenden Befehls oder der auszuführenden Befehle dienen, indem sie das Ergebnis der Vorhersage einer bedingten Verzweigung, eines Sprungs, einer Rücksprungadresse, einer Speicherabhängigkeit oder einer beliebigen anderen Vorhersage bzw. eines beliebigen anderen Ergebnisses, die bzw. das den Architekturzustand nicht verändern kann, anzeigen.
  • Vom Kästchen 331 ausgehend wird der Ablauf des Verfahrens 300 entweder direkt in Kästchen 340 fortgesetzt, oder aber nach Ausführung einer beliebigen Anzahl von Zusatzbefehlen durch die Kerne 110 und 120 in Kästchen 340 fortgesetzt.
  • In Kästchen 340 vergleicht der globale Prüfer 130 die Ausgabewerte aus den Kernen 110 und 120. Wenn die Ausgabewerte übereinstimmen, setzt sich der Locksteg-Betrieb der Kerne 110 und 120 ohne Beeinflussung durch irgendeine Fehlerkorrektur, Wiederherstellungstechnologie oder Benachrichtigung und unabhängig vom im Kästchen 330 gespeicherten Ergebnis im Kästchen 310 fort. Wenn aber andererseits der globale Prüfer 140 einen Locksteg-Fehler in Kästchen 340 erkennt, wird das Verfahren 300 in Kästchen 350 fortgesetzt.
  • Wenn das in Kästchen 330 gespeicherte Ergebnis anzeigt, dass der Wert aus Struktur 111 mit dem Wert aus Struktur 121 übereinstimmt, wird der Ablauf des Verfahrens 300 von Kästchen 350 ausgehend im Kästchen 360 fortgesetzt. Im Kästchen 360 zeigt die Fehlerlogik 150 einen unkorrigierbaren Fehler an, beispielsweise durch Melden eines Fehlercodes und Anhalten des Programmdurchlaufs.
  • Wenn das in Kästchen 330 gespeicherte Ergebnis anzeigt, dass die Werte aus den Strukturen 111 und 121 nicht übereinstimmen, setzt sich das Verfahren 300 von Kästchen 350 ausgehend in Kästchen 370 fort. Im Kästchen 370 bewirkt die Fehlerlogik 150 die Resynchronisierung der Kerne 110 und 120. Diese Resynchronisierung wird dadurch erreicht, dass der Architekturzustand des Kerns 110 so geändert wird, dass er mit dem Architekturzustand des Kerns 120 übereinstimmt oder umgekehrt. Danach wird das Verfahren 300 in Kästchen 310 fortgesetzt.
  • 4 illustriert eine Ausführungsform der vorliegenden Erfindung bei einem Verfahren 400 zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Locksteg-Modus arbeitenden doppelt modularen Redundanzsystem, einschließlich des Prozessors 100 aus 1, wobei die Strukturen 111 und 121 Strukturen sind, deren Inhalt an einer anderen Stelle im System dupliziert ist oder neu erzeugt werden kann, beispielsweise Caches.
  • Im Kästchen 410 arbeiten die Kerne 110 und 120 im Locksteg-Modus. Im Kästchen 411 wird ein Befehl, der das Laden einer unveränderten Cachezeile in Struktur 111 bewirkt, vom Kern 110 ausgeführt und ein zweiter Wert in einer unveränderten Cachezeile der Struktur 121 generiert. Vom Kästchen 411 ausgehend wird der Ablauf des Verfahrens 400 entweder direkt in Kästchen 420 fortgesetzt, oder aber nach Ausführung einer beliebigen Anzahl von Zusatzbefehlen durch die Kerne 110 und 120 in Kästchen 420 fortgesetzt.
  • Im Kästchen 420 vergleicht der Mikroprüfer 140 einen Wert, beispielsweise die in Kästchen 11 geladene Cachezeile, aus Struktur 111 mit einem Wert, beispielsweise der in Kästchen 411 geladenen Cachezeile, aus Struktur 121. Im Kästchen 430 wird das Ergebnis des Vergleichs aus Kästchen 420 gespeichert.
  • Vom Kästchen 430 ausgehend wird der Ablauf des Verfahrens 400 entweder direkt in Kästchen 440 fortgesetzt, oder aber nach Ausführung einer beliebigen Anzahl von Zusatzbefehlen durch die Kerne 110 und 120 in Kästchen 440 fortgesetzt.
  • In Kästchen 440 vergleicht der globale Prüfer 130 die Ausgabewerte aus den Kernen 110 und 120. Wenn die Ausgabewerte übereinstimmen, setzt sich der Locksteg-Betrieb der Kerne 110 und 120 ohne Beeinflussung durch irgendeine Fehlerkorrektur, Wiederherstellungstechnologie oder Benachrichtigung und unabhängig vom im Kästchen 430 gespeicherten Ergebnis im Kästchen 410 fort. Wenn aber andererseits der globale Prüfer 140 einen Locksteg-Fehler in Kästchen 440 erkennt, wird das Verfahren 400 in Kästchen 450 fortgesetzt.
  • Wenn das in Kästchen 430 gespeicherte Ergebnis anzeigt, dass der Wert aus Struktur 111 mit dem Wert aus Struktur 121 übereinstimmt, wird der Ablauf des Verfahrens 400 von Kästchen 450 ausgehend im Kästchen 460 fortgesetzt. Im Kästchen 460 zeigt die Fehlerlogik 150 einen unkorrigierbaren Fehler an, beispielsweise durch Melden eines Fehlercodes und Anhalten des Programmdurchlaufs.
  • Wenn das in Kästchen 430 gespeicherte Ergebnis anzeigt, dass die Werte aus den Strukturen 111 und 121 nicht übereinstimmen, setzt sich das Verfahren 400 von Kästchen 450 ausgehend in Kästchen 470 fort. In den Kästchen 470 bis 473 bewirkt die Fehlerlogik 150 die Resynchronisierung der Kerne 110 und 120.
  • Im Kästchen 470 werden die Werte aus den Strukturen 111 und 121 an einer anderen Stelle im System gefunden oder auf andere Art neu erzeugt, beispielsweise durch Neuladen der in Kästchen 411 geladenen Cachezeile. Der neu erzeugte Wert (beispielsweise wenn eine einzelne Kopie des Wertes von dem Ort beschafft wird, wo der Wert im System dupliziert wird) oder die neu erzeugten Werte (beispielsweise wenn je Struktur eine Kopie des Wertes von dem Ort beschafft wird, wo der Wert im System dupliziert wird) können in ein oder mehrere Register oder in einen anderen Ort oder in andere Orte geladen werden, die zum Vergleich mit den Werten aus den Strukturen 111 und 121 bereitgestellt werden. Alternativ können die Werte aus den Strukturen 111 und 121 in Register oder in andere Orte, die zum Vergleich mit dem neu erzeugten Wert oder den neu erzeugten Werten, die beispielsweise durch erneutes Ausführen des in Kästchen 411 ausgeführten Befehls beschafft werden, bereitgestellt werden, verschoben werden.
  • In Kästchen 471 wird oder werden der neu erzeugte Wert oder die neu erzeugten Werte mit den Werten aus den Strukturen 111 und 121 verglichen. Wenn der neu erzeugte Wert mit dem Wert aus Struktur 111 übereinstimmt, wird danach in Kästchen 472 der Kern 120 mit dem Kern 110 synchronisiert, beispielsweise indem der Architekturzustand des Kerns 120 so geändert wird, dass er mit dem Architekturzustand des Kerns 110 übereinstimmt. Wenn der neu erzeugte Wert mit dem Wert aus Struktur 121 übereinstimmt, wird danach in Kästchen 473 der Kern 110 mit dem Kern 120 synchronisiert, beispielsweise indem der Architekturzustand des Kerns 110 so geändert wird, dass er mit dem Architekturzustand des Kerns 120 übereinstimmt. Ausgehend von den Kästchen 472 und 473 wird das Verfahren 400 in Rechteck 410 fortgesetzt.
  • 5 illustriert eine Ausführungsform der vorliegenden Erfindung bei einem Verfahren 500 zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Locksteg-Modus arbeitenden doppelt modularen Redundanzsystem, einschließlich des Prozessors 200 aus 2.
  • Im Kästchen 510 arbeiten die Kerne 210 und 220 im Locksteg-Modus. Im Kästchen 511 erzeugt die Struktur 213 einen Wert und die Struktur 223 erzeugt einen Wert. Der Wert aus Struktur 213 kann mit dem Wert aus Struktur 223 übereinstimmen oder nicht übereinstimmen. Im Kästchen 512 erzeugt die Struktur 215 einen Wert und die Struktur 225 erzeugt einen Wert. Der Wert aus Struktur 215 kann mit dem Wert aus Struktur 225 übereinstimmen oder nicht übereinstimmen.
  • Im Kästchen 513 erzeugt die Struktur 211 auf der Basis der Werte aus den Strukturen 213 und 215 einen Fingerprint-Wert (fingerprint value), und die Struktur 221 erzeugt auf der Basis der Werte aus den Strukturen 223 und 225 einen Finterprint-Wert. Die Fingerprint-Werte können mittels jeder dem Fachmann bekannten Technik zum Kombinieren von Werten erzeugt werden, beispielsweise durch die Verwendung eines zyklischen Redundanzprüfers zur Erzeugung einer Prüfsumme.
  • Im Kästchen 520 vergleicht der Mikroprüfer 240 die Fingerprint-Werte aus den Strukturen 211 und 221. Im Kästchen 530 wird das Ergebnis des Vergleichs aus Kästchen 520 gespeichert.
  • In Kästchen 540 vergleicht der globale Prüfer 230 die Ausgabewerte aus den Kernen 210 und 220. Wenn die Ausgabewerte übereinstimmen, setzt sich der Locksteg-Betrieb der Kerne 210 und 220 ohne Beeinflussung durch irgendeine Fehlerkorrektur, Wiederherstellungstechnologie oder Benachrichtigung und unabhängig vom im Kästchen 530 gespeicherten Ergebnis im Kästchen 510 fort. Wenn aber andererseits der globale Prüfer 240 einen Locksteg-Fehler in Kästchen 540 erkennt, wird das Verfahren 500 in Kästchen 550 fortgesetzt.
  • Wenn das in Kästchen 530 gespeicherte Ergebnis anzeigt, dass der Fingerprint-Wert aus Struktur 211 mit dem Fingerprint-Wert aus Struktur 221 übereinstimmt, wird der Ablauf des Verfahrens 500 von Kästchen 550 ausgehend im Kästchen 560 fortgesetzt. Im Kästchen 560 zeigt die Fehlerlogik 250 einen unkorrigierbaren Fehler an, beispielsweise durch Melden eines Fehlercodes und Anhalten des Programmdurchlaufs.
  • Wenn das in Kästchen 530 gespeicherte Ergebnis anzeigt, dass die Werte aus den Strukturen 211 und 221 nicht übereinstimmen, setzt sich das Verfahren 500 von Kästchen 550 ausgehend in Kästchen 570 fort. Im Kästchen 570 bewirkt die Fehlerlogik 250 die Resynchronisierung der Kerne 210 und 220. Diese Resynchronisierung wird dadurch erreicht, dass der Architekturzustand des Kerns 210 so geändert wird, dass er mit dem Architekturzustand des Kerns 220 übereinstimmt oder umgekehrt. Danach wird das Verfahren 500 in Kästchen 510 fortgesetzt.
  • Im Schutzbereich der vorliegenden Erfindung können die in den 3, 4 und 5 dargestellten Verfahren in einer anderen Reihenfolge oder unter Weglassen dargestellter Schritte oder unter Hinzufügen zusätzlicher Schritte oder mit einer Kombination aus zeitlich anders angeordneten, kombinierten, weggelassenen oder hinzugefügten Schritten durchgeführt werden. Beispielsweise kann das Kästchen 330, 430 bzw. 530 (Speichern des Ergebnisses des durch den Mikroprüfer durchgeführten Vergleichs) weggelassen werden, wenn der Ausgabewert des Mikroprüfers bis zur Ausführung von Kästchen 350, 450 bzw. 550 (Untersuchen des Ergebnisses des durch den Mikroprüfer durchgeführten Vergleichs) statisch bleibt.
  • Andere Beispiele von Verfahren, bei denen Kästchen 330 (Speichern des Ergebnisses des durch den Mikroprüfer durchgeführten Vergleichs) weggelassen werden kann, sind Ausführungsformen der vorliegenden Erfindung, in denen der Ausgabewert des Mikroprüfers nicht aufbewahrt werden muss. In einer solchen Ausführungsform kann ein Verfahren nach dem in Kästchen 320 durch den Mikroprüfer durchgeführten Vergleich zu der auf dem durch den Mikroprüfer durchgeführten Vergleich basierenden Entscheidung in Kästchen 350 springen (oder Kästchen 320 und Kästchen 350 können vereinigt werden). In dieser Ausführungsform kann in dem Fall, dass der Mikroprüfer (entweder in 320 oder in 350) eine Nichtübereinstimmung feststellt, der in den Prozessor eingebaute Mechanismus zur Korrektur von Verzweigungs-Fehlvorhersagen benutzt werden, um den spekulativen Zustand zu leeren und die Kerne dadurch in Kästchen 370 mit dem nichtspekulativen Zustand zu synchronisieren. Wenn der Mikroprüfer keine Nichtübereinstimmung feststellt, kann das Verfahren dieser Ausführungsform zu Kästchen 331 springen, um dort auf der Basis der Vorhersage Befehle auszuführen, danach zu Raute 340, wo der globale Prüfer feststellt, ob ein Locksteg-Fehler vorliegt, und danach bei Erkennung eines Locksteg-Fehlers zu Kästchen 360, um einen nicht korrigierbaren Fehler anzuzeigen.
  • 6 illustriert eine Ausführungsform der vorliegenden Erfindung in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem 600. System 600 enthält einen Mehrkernprozessor 610 und Systemspeicher 620. Prozessor 610 kann jeder der oben bei 1 und 2 beschriebenen Prozessoren sein. Systemspeicher 620 kann jeder Speichertyp sein, beispielsweise halbleiterbasiertes statisches oder dynamischen Random Access Memory, halbleiterbasierter Flash- oder Read-Only-Speicher oder aber magnetischer oder optischer Diskspeicher. Prozessor 610 und Systemspeicher 620 können in jeder beliebigen Konfiguration und mit jeder Kombination aus Bus, Direktverbindung und Point-to-Point-Verbindung oder durch andere Komponenten gekoppelt werden. Das System 600 kann außerdem beliebige Busse, beispielsweise einen Peripheriebus, und beliebige Komponenten, beispielsweise Ein/Ausgabegeräte, enthalten, die in 6 nicht dargestellt sind.
  • Im System 600 kann der Systemspeicher 620 verwendet werden, um einen Wert zu speichern, der in eine Struktur wie die oben beschriebenen Strukturen 111, 121, 213, 215, 223 und 225 geladen wird. Daher kann der Systemspeicher 620 die Quelle des duplizierten oder neu erzeugten Wertes in Übereinstimmung mit einer beispielhaften Ausführung des Verfahrens der vorliegenden Erfindung sein, beispielsweise wie in Kästchen 470 von 4 dargestellt.
  • Prozessor 100, Prozessor 200 oder jede andere in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung konstruierte Komponente oder Teilkomponente kann in verschiedenen Schritten konstruiert werden, von der Gestaltung über die Simulation zur Herstellung. Daten, die eine Konstruktionsform repräsentieren, können diese Konstruktion auf verschiedene Arten repräsentieren. Zum einen kann die Hardware mittels einer Hardware-Beschreibungssprache oder einer anderen funktionalen Beschreibungssprache repräsentiert werden, was für Simulationen nützlich ist. Zusätzlich oder stattdessen kann in bestimmten Phasen des Konstruktionsprozesses ein Modell auf Schaltkreisebene mit Logikgattern und/oder Transistorgattern produziert werden. Zusätzlich erreichen die meisten Konstruktionsformen an einem bestimmten Punkt ein solches Niveau, dass sie mit Daten, die die räumliche Anordnung unterschiedlicher Geräte repräsentieren, modelliert werden können. Falls konventionelle Halbleiterproduktionstechnologien verwendet werden, können die das Anordnungsmodell der Geräte repräsentierenden Daten solche Daten sein, die das Vorhandensein oder die Abwesenheit von verschiedenen Eigenschaften auf verschiedenen Maskenschichten für die zur Herstellung integrierter Schaltkreise verwendeten Masken spezifizieren.
  • In jeder Repräsentation der Konstruktion können die Daten in jeder beliebigen Form auf einem maschinenlesbaren Medium gespeichert werden. Das maschinenlesbare Medium kann eine optische oder elektrische Welle sein, die so moduliert oder anderweitig generiert wurde, dass sie solche Informationen übertragen kann, oder ein Speicher, oder ein magnetisches oder optisches Speichermedium wie beispielsweise eine Disk. Alle diese Medien können die Konstruktion oder andere in einer Ausführungsform der vorliegenden Erfindung verwendete Informationen, beispielsweise die Befehle in einer Fehlerkorrektur-Routine, "tragen" oder "angeben". Wenn eine elektrische Trägerwelle, die diese Informationen angibt oder trägt, übertragen wird, wird dabei, insofern das Kopieren, Puffer oder erneute Übertragen des elektrischen Signals ausgeführt wird, eine neue Kopie hergestellt. Daher kann das Vorgehen eines Kommunikationsproviders oder eines Netzwerkproviders ein Akt des Kopierens eines Gegenstands, zum Beispiel einer Trägerwelle, sein, welcher Technologien der vorliegenden Erfindung repräsentiert.
  • Es wurden dementsprechend Vorrichtungen und Verfahren zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Locksteg-Modus arbeitenden doppelt modularen Redundanzsystem offenbart. Obwohl einige Ausführungsformen beschrieben und in den beigefügten Zeichnungen dargestellt wurden, sollte davon ausgegangen werden, dass die hier beschriebenen Ausführungsformen ausschließlich als Illustrationen angeführt wurden und der gesamten Erfindung keine Beschränkungen auferlegen, und dass diese Erfindung nicht auf die gezeigten und beschriebenen spezifischen Konstruktionen und Anordnungen beschränkt ist, da ein Fachmann nach dem Studium dieser Offenbarung viele verschiedene andere Modifikationen anbringen könnte. Auf einem technologischen Gebiet wie diesem, auf dem ein schnelles Wachstum herrscht und zukünftige Entwicklungen schwer vorhersehbar sind, können die offenbarten Ausführungsformen jederzeit in der Anordnung und im Detail entsprechend dem technologischen Fortschritt modifiziert werden, ohne dass damit von den Grundprinzipien der vorliegenden Offenbarung oder dem Schutzbereich der beigefügten Patentansprüche abgewichen wird.
  • Zusammenfassung
  • Es werden Ausführungsformen von Vorrichtungen und Verfahren zur Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Locksteg-Modus arbeitenden doppelt modularen Redundanzsystem offenbart. In einer Ausführungsform schließt eine Vorrichtung zwei Prozessorkerne, einen Mikroprüfer, einen globalen Prüfer und eine Fehlerlogik ein. Der Mikroprüfer erkennt, ob ein Wert aus einer Struktur in einem Kern mit einem Wert aus der entsprechenden Struktur im anderen Kern übereinstimmt. Der globale Prüfer erkennt, ob zwischen den beiden Kernen Locksteg-Fehler auftreten. Die Fehlerlogik bewirkt, dass sich die beiden Kerne resynchronisieren, wenn ein Locksteg-Fehler vorliegt, aber der Mikroprüfer eine Nichtübereinstimmung erkennt.

Claims (19)

  1. Vorrichtung, welche umfasst: einen ersten Kern, der eine erste Struktur enthält; einen zweiten Kern, der eine zweite Struktur enthält; einen Mikroprüfer zum Überprüfen, ob ein erster Wert aus der ersten Struktur mit einem zweiten Wert aus der zweiten Struktur übereinstimmt; einen globalen Prüfer zum Überprüfen, ob zwischen dem ersten Kern und dem zweiten Kern ein Locksteg-Fehler vorliegt; und eine Fehlerlogik zum Bewirken, dass der erste Kern und der zweite Kern resynchronisiert werden, wenn der globale Prüfer einen Locksteg-Fehler erkennt und der Mikroprüfer eine Nichtübereinstimmung zwischen dem ersten Wert und dem zweiten Wert erkennt.
  2. Vorrichtung nach Anspruch 1, wobei der Mikroprüfer einen Komparator enthält, der den ersten Wert mit dem zweiten Wert vergleicht.
  3. Vorrichtung nach Anspruch 1, wobei der globale Prüfer einen Komparator enthält, der einen ersten Ausgabewert des ersten Kerns mit einem zweiten Ausgabewert des zweiten Kerns vergleicht.
  4. Vorrichtung nach Anspruch 1, wobei die Fehlerlogik zusätzlich die Erkennung eines nicht korrigierbaren Fehlers anzeigt, wenn der globale Prüfer einen Locksteg-Fehler erkennt und der Mikroprüfer eine Übereinstimmung des ersten Werts mit dem zweiten Wert feststellt.
  5. Vorrichtung nach Anspruch 1, wobei: der erste Kern außerdem eine dritte Struktur und eine vierte Struktur enthält; der zweite Kern außerdem eine fünfte Struktur und eine sechste Struktur enthält; die erste Struktur eine erste Fingerprint-Logik enthält zum Erzeugen des ersten Werts auf der Basis eines dritten Wertes aus der dritten Struktur und eines vierten Wertes aus der vierten Struktur; und die zweite Struktur eine zweite Fingerprint-Logik enthält zum Erzeugen des zweiten Werts auf der Basis eines fünften Wertes aus der fünften Struktur und eines sechsten Wertes aus der sechsten Struktur.
  6. Vorrichtung nach Anspruch 1, wobei: der Architekturzustand des ersten Kerns unabhängig vom ersten Wert ist; und der Architekturzustand des zweiten Kerns unabhängig vom zweiten Wert ist.
  7. Vorrichtung nach Anspruch 6, wobei: die erste Struktur eine erste Vorhersagestruktur ist; und die zweite Struktur eine zweite Vorhersagestruktur ist.
  8. Vorrichtung nach Anspruch 1, wobei die Fehlerlogik zusätzlich zur Neuerzeugung des ersten Wertes und des zweiten Wertes, wenn der globale Prüfer einen Locksteg-Fehler erkennt und der Mikroprüfer eine Nichtübereinstimmung feststellt, dient.
  9. Vorrichtung nach Anspruch 8, wobei: die erste Struktur ein erster Cache ist; das erste Ergebnis ein erster Cache-Eintrag ist; die zweite Struktur ein zweiter Cache ist; und das zweite Ergebnis ein zweiter Cache-Eintrag ist.
  10. Vorrichtung nach Anspruch 9, wobei die Fehlerlogik zusätzlich zum Neuladen des ersten Cache-Eintrags und des zweiten Cache-Eintrags, wenn der globale Prüfer einen Lockstep-Fehler erkennt und der Mikroprüfer eine Nichtübereinstimmung feststellt, dient.
  11. Verfahren, welches umfasst: Überprüfen, ob ein erster Wert aus einer ersten Struktur in einem ersten Kern mit einem zweiten Wert aus einer zweiten Struktur in einem zweiten Kern übereinstimmt; Erkennen eines Locksteg-Fehlers zwischen dem ersten Kern und dem zweiten Kern; und Resynchronisieren des ersten Kerns und des zweiten Kerns, wenn eine Nichtübereinstimmung zwischen dem ersten Wert und dem zweiten Wert erkannt wurde.
  12. Verfahren nach Anspruch 11, das außerdem Anzeigen des Erkennens eines nicht korrigierbaren Fehlers umfasst, wenn der erste Wert mit dem zweiten Wert übereinstimmt.
  13. Verfahren nach Anspruch 12, welches zusätzlich umfasst: Erzeugen des ersten Wertes auf der Basis eines dritten Wertes aus einer dritten Struktur im ersten Kern und eines vierten Wertes aus einer vierten Struktur im ersten Kern; und Erzeugen des zweiten Wertes auf der Basis eines fünften Wertes aus der fünften Struktur im zweiten Kern und eines sechsten Wertes aus einer sechsten Struktur im zweiten Kern.
  14. Verfahren nach Anspruch 13, wobei: Erzeugen des ersten Wertes Erzeugen einer Prüfsumme, die auf dem dritten Wert und dem vierten Wert basiert, einschließt; und Erzeugen des zweiten Wertes Erzeugen einer Prüfsumme, die auf dem fünften Wert und dem sechsten Wert basiert, einschließt.
  15. Verfahren nach Anspruch 11, welches zusätzlich umfasst: auf dem ersten Wert basierendes Vorhersagen, ob ein erster Befehl vom ersten Kern ausgeführt werden soll; und auf dem zweiten Wert basierendes Vorhersagen, ob ein zweiter Befehl vom zweiten Kern ausgeführt werden soll.
  16. Verfahren nach Anspruch 11, welches zusätzlich Neuerzeugen des ersten Wertes und des zweiten Wertes umfasst, wenn die Nichtübereinstimmung festgestellt wurde.
  17. Verfahren nach Anspruch 16, welches zusätzlich umfasst: Vergleichen des ersten Wertes mit dem neu erzeugten ersten Wert; Vergleichen des zweiten Wertes mit dem neu erzeugten zweiten Wert; Synchronisieren des ersten Kerns mit dem zweiten Kern, wenn der zweite Wert mit dem neu erzeugten zweiten Wert übereinstimmt; und Synchronisieren des zweiten Kerns mit dem ersten Kern, wenn der erste Wert mit dem neu erzeugten ersten Wert übereinstimmt.
  18. Verfahren nach Anspruch 16, wobei die erste Struktur ein erster Cache ist, der erste Wert ein erster Cache-Eintrag ist, die zweite Struktur ein zweiter Cache ist und der zweite Wert ein zweiter Cache-Eintrag ist, wobei die Neuerzeugung des ersten Wertes und des zweiten Wertes das Neuladen des ersten Cache-Eintrags und des zweiten Cache-Eintrags einschließt.
  19. System, welches umfasst: einen dynamischen Speicher; einen ersten Kern, der eine erste Struktur enthält; einen zweiten Kern, der eine zweite Struktur enthält; einen Mikroprüfer zum Überprüfen, ob ein erster Wert aus der ersten Struktur mit einem zweiten Wert aus der zweiten Struktur übereinstimmt; einen globalen Prüfer zum Überprüfen, ob zwischen dem ersten Kern und dem zweiten Kern ein Locksteg-Fehler vorliegt; und eine Fehlerlogik zum Bewirken, dass der erste Kern und der zweite Kern resynchronisiert werden, wenn der globale Prüfer einen Locksteg-Fehler erkennt und der Mikroprüfer eine Nichtübereinstimmung zwischen dem ersten Wert und dem zweiten Wert erkennt.
DE112006001652T 2005-06-30 2006-06-29 Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem Withdrawn DE112006001652T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/173,835 US7747932B2 (en) 2005-06-30 2005-06-30 Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US11/173,835 2005-06-30
PCT/US2006/025959 WO2007005818A2 (en) 2005-06-30 2006-06-29 Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system

Publications (1)

Publication Number Publication Date
DE112006001652T5 true DE112006001652T5 (de) 2008-05-08

Family

ID=37605123

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006001652T Withdrawn DE112006001652T5 (de) 2005-06-30 2006-06-29 Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem

Country Status (6)

Country Link
US (1) US7747932B2 (de)
JP (1) JP4795433B2 (de)
CN (1) CN100578462C (de)
DE (1) DE112006001652T5 (de)
RU (1) RU2385484C2 (de)
WO (1) WO2007005818A2 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE408863T1 (de) * 2004-10-25 2008-10-15 Bosch Gmbh Robert Datenverarbeitungssystem mit variabler taktrate
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US7743285B1 (en) * 2007-04-17 2010-06-22 Hewlett-Packard Development Company, L.P. Chip multiprocessor with configurable fault isolation
US8817597B2 (en) 2007-11-05 2014-08-26 Honeywell International Inc. Efficient triple modular redundancy on a braided ring
US8117512B2 (en) * 2008-02-06 2012-02-14 Westinghouse Electric Company Llc Failure detection and mitigation in logic circuits
US8037350B1 (en) * 2008-04-30 2011-10-11 Hewlett-Packard Development Company, L.P. Altering a degree of redundancy used during execution of an application
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
US8745440B1 (en) * 2010-09-21 2014-06-03 F5 Networks, Inc. Computer-implemented system and method for providing software fault tolerance
GB2494098B (en) 2011-04-11 2014-03-26 Bluecava Inc Thick client and thin client integration
EP2533154B1 (de) 2011-06-09 2015-08-12 Westinghouse Electric Company LLC Fehlererfassung und -minderung in logischen Schaltungen
US9500705B2 (en) * 2013-08-28 2016-11-22 Wisconsin Alumni Research Foundation Integrated circuit providing fault prediction
CN104731666B (zh) * 2013-12-23 2017-12-08 深圳市国微电子有限公司 一种抗单粒子翻转的自纠错集成电路及其纠错方法
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
EP3085596B1 (de) 2015-04-20 2017-11-29 Autoliv Development AB Elektronisches fahrzeugsicherheitssteuerungssystem
FR3037158B1 (fr) * 2015-06-05 2018-06-01 Thales Surveillance de trajectoire
EP3118694A1 (de) * 2015-07-13 2017-01-18 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems und redundantes automatisierungssystem
KR101651370B1 (ko) * 2015-08-26 2016-08-26 한국항공우주연구원 추력기의 구동 제어방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터 판독 가능 기록 매체
DE102015218898A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren zur redundanten Verarbeitung von Daten
CN105630732B (zh) * 2015-12-17 2018-09-14 西北工业大学 一种双模冗余微处理器的热切换方法
US10089194B2 (en) * 2016-06-08 2018-10-02 Qualcomm Incorporated System and method for false pass detection in lockstep dual core or triple modular redundancy (TMR) systems
KR101923778B1 (ko) * 2016-11-22 2018-11-29 연세대학교 산학협력단 듀얼 모듈러 리던던시 및 오류 예측을 이용한 고성능 컴퓨팅 장치 및 그 방법
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
KR102376396B1 (ko) * 2016-12-07 2022-03-21 한국전자통신연구원 멀티 코어 프로세서 및 그것의 캐시 관리 방법
KR102377729B1 (ko) * 2016-12-08 2022-03-24 한국전자통신연구원 멀티 코어 프로세서 및 그것의 동작 방법
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
US10303566B2 (en) * 2017-07-10 2019-05-28 Arm Limited Apparatus and method for checking output data during redundant execution of instructions
CN112424753A (zh) * 2018-07-18 2021-02-26 三垦电气株式会社 多核系统
US10831628B2 (en) 2018-12-12 2020-11-10 Intel Corporation Hardware lockstep checking within a fault detection interval in a system on chip
US11221901B2 (en) 2019-11-26 2022-01-11 Siemens Industry Software Inc. Monitoring processors operating in lockstep
CN111104243B (zh) * 2019-12-26 2021-05-28 江南大学 一种低延迟的双模lockstep容软错误处理器系统
EP3869338A1 (de) 2020-02-18 2021-08-25 Veoneer Sweden AB Elektronisches fahrzeugsicherheitssteuerungssystem
US11733972B2 (en) 2020-10-06 2023-08-22 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address
US11797673B2 (en) 2020-08-27 2023-10-24 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by expeditiously initiating flushing of instructions dependent upon a load instruction that causes a need for an architectural exception
US11907369B2 (en) 2020-08-27 2024-02-20 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception
US11868469B2 (en) * 2020-08-27 2024-01-09 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by preventing all dependent instructions from consuming architectural register result produced by instruction that causes a need for an architectural exception
US11734426B2 (en) 2020-10-06 2023-08-22 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location
US11853424B2 (en) 2020-10-06 2023-12-26 Ventana Micro Systems Inc. Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location
CA3136322A1 (en) 2020-12-02 2022-06-02 The Boeing Company Debug trace streams for core synchronization
US11892505B1 (en) 2022-09-15 2024-02-06 Stmicroelectronics International N.V. Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus
CN118035006A (zh) * 2024-04-12 2024-05-14 西北工业大学 一种三核处理器独立和锁步运行可动态配置的控制系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3156429B2 (ja) * 1993-03-17 2001-04-16 株式会社日立製作所 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム
US5748873A (en) * 1992-09-17 1998-05-05 Hitachi,Ltd. Fault recovering system provided in highly reliable computer system having duplicated processors
US5790776A (en) * 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5604754A (en) * 1995-02-27 1997-02-18 International Business Machines Corporation Validating the synchronization of lock step operated circuits
EP0868692B1 (de) * 1995-12-18 2000-05-03 ABB Automation Inc. Prozessorunabhängige fehlerprüfungsanordnung
JPH10261762A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd メモリを内蔵した多重化マイクロコントローラ
US6115365A (en) * 1998-07-30 2000-09-05 Motorola, Inc. Method and apparatus for queuing and transmitting messages
JP2000298594A (ja) * 1999-04-13 2000-10-24 Nec Corp フォールトトレラント制御方法および冗長コンピュータシステム
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6604177B1 (en) * 2000-09-29 2003-08-05 Hewlett-Packard Development Company, L.P. Communication of dissimilar data between lock-stepped processors
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor

Also Published As

Publication number Publication date
WO2007005818A2 (en) 2007-01-11
RU2007147000A (ru) 2009-08-10
JP4795433B2 (ja) 2011-10-19
CN100578462C (zh) 2010-01-06
RU2385484C2 (ru) 2010-03-27
US20070022348A1 (en) 2007-01-25
JP2009501367A (ja) 2009-01-15
WO2007005818A3 (en) 2007-05-10
CN101213522A (zh) 2008-07-02
US7747932B2 (en) 2010-06-29

Similar Documents

Publication Publication Date Title
DE112006001652T5 (de) Verringerung der Häufigkeit unkorrigierbarer Fehler in einem im Lockstep-Modus arbeitenden doppelt modularen Redundanzsystem
WO2007057271A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
EP1807763B1 (de) Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
DE102010037457B4 (de) Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE102011112174B4 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
EP1667022A2 (de) Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten
Boehm Can seqlocks get along with programming language memory models?
DE102006048856A1 (de) Reparatur einer Halbleiterspeichervorrichtung über einen externen Befehl
DE112007003206T5 (de) Neukonfigurieren eines sicheren Systems
DE102020102232A1 (de) Verbessern der diagnostikfähigkeiten von datenverarbeitungssystemen durch kombinieren von variablenpatrouillierungs-api und vergleichsmechanismus von variablen
DE102005037230A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE102004011450A1 (de) Anvisierte Fehlertoleranz durch spezielle CPU-Befehle
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE112011104830T5 (de) Ein Verfahren zum Sicherstellen der Programmkorrektheit unter Verwendung von feingranularem spekulativem Hardwareausführen
DE60203030T2 (de) Hochintegres Cacheverzeichnis
DE102006036386A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102005037226A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch markieren von Registern
DE102006027448A1 (de) Schaltungsanordnung
DE112020007230T5 (de) System und verfahren zur automatischen wiederherstellung in lockstep-prozessoren
DE102019102299A1 (de) Verfahren und Vorrichtung zum automatisierten Erfassen von Fehlern in Computersystemen
EP1433061A2 (de) Verfahren zum überprüfen eines rechnerkerns eines mikroprozessors oder eines mikrocontrollers
Malik et al. A compositional approach for verifying generalised nonblocking

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee