-
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.