DE112005001338T5 - Verfahren und Vorrichtung zur Reduzierung falscher Fehlererkennung in einem Mikroprozessor - Google Patents
Verfahren und Vorrichtung zur Reduzierung falscher Fehlererkennung in einem Mikroprozessor Download PDFInfo
- Publication number
- DE112005001338T5 DE112005001338T5 DE112005001338T DE112005001338T DE112005001338T5 DE 112005001338 T5 DE112005001338 T5 DE 112005001338T5 DE 112005001338 T DE112005001338 T DE 112005001338T DE 112005001338 T DE112005001338 T DE 112005001338T DE 112005001338 T5 DE112005001338 T5 DE 112005001338T5
- Authority
- DE
- Germany
- Prior art keywords
- bit
- command
- processor
- input
- instruction
- 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
Links
- 238000001514 detection method Methods 0.000 title claims description 16
- 238000000034 method Methods 0.000 title claims description 14
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000008859 change Effects 0.000 claims abstract description 6
- 239000000872 buffer Substances 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 3
- 230000001902 propagating effect Effects 0.000 claims 3
- 238000007689 inspection Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 3
- 208000035475 disorder Diseases 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Detection And Correction Of Errors (AREA)
- Debugging And Monitoring (AREA)
Abstract
Prozessor,
umfassend:
ein Dekodiermodul, um einen Befehl zu empfangen;
ein Bit, das mit dem Befehl verknüpft ist, um festzustellen, ob ein Bitzustandswechsel erfolgt ist, um den Befehl zu verfälschen, wobei das mit dem Befehl fließende Fehlerbit mit der Parität verknüpft ist;
eine Speicherstruktur, die mit dem Dekodiermodul gekoppelt ist, um den Befehl zu speichern; und
eine mit der Speicherstruktur gekoppelte Befehlsverarbeitungseinheit, welche eine Mehrzahl von Stufen zum Verarbeiten des Befehls umfaßt, wobei der Prozessor ermittelt, ob der Befehl am Commit-Punkt ein Falscher-Pfad-Befehl ist.
ein Dekodiermodul, um einen Befehl zu empfangen;
ein Bit, das mit dem Befehl verknüpft ist, um festzustellen, ob ein Bitzustandswechsel erfolgt ist, um den Befehl zu verfälschen, wobei das mit dem Befehl fließende Fehlerbit mit der Parität verknüpft ist;
eine Speicherstruktur, die mit dem Dekodiermodul gekoppelt ist, um den Befehl zu speichern; und
eine mit der Speicherstruktur gekoppelte Befehlsverarbeitungseinheit, welche eine Mehrzahl von Stufen zum Verarbeiten des Befehls umfaßt, wobei der Prozessor ermittelt, ob der Befehl am Commit-Punkt ein Falscher-Pfad-Befehl ist.
Description
- VERWANDTE ANMELDUNGEN
- Diese Anmeldung betrifft die folgenden gemeinsam übertragenen ebenfalls anhängigen Patentanmeldungen, die zugleich mit dieser unter den folgenden Titeln eingereicht wurden:
„Reducing False Error Detection In A Microprocessor By Tracking Instructions Neutral To Errors", laufende Nummer..., eingereicht am 17. Juni 2004; und „Reducing False Error Detection In A Microprocessor By Tracking Dynamically Dead Instructions", laufende Nummer..., eingereicht am 17. Juni 2004. - HINTERGRUND
- Vorübergehende Fehler aufgrund von Neutronen- und Alphateilchendurchschlägen zeigen sich als bedeutsames Hindernis beim Erhöhen der Anzahl an Transistoren eines Prozessors in zukünftigen Prozeß-Technologien. Obwohl die Fehlerraten einzelner Transistoren möglicherweise nicht merklich ansteigen, wird es durch das Einbauen von mehr Transistoren in eine Vorrichtung wahrscheinlicher, dass in dieser Vorrichtung ein Fehler eintritt. Folglich wird erwartet, dass ein Beibehalten der Prozessorfehlerraten auf einem annehmbaren Niveau zunehmenden Konstruktionsaufwand erfordern wird.
- Einzelbitstörungen durch vorübergehende Fehler (transient fault) sind zu einer der größten Herausforderungen in der heutigen Mikroprozessorkonstruktion geworden. Diese Fehler rühren von energiereichen Teilchen, wie zum Beispiel Neutronen aus kosmischer Strahlung und Alphateilchen aus Packaging-Materialien, her. Transistorsource- und Diffusionsknoten (transistor source and diffusion nodes) können diese Ladungen aufnehmen. Eine ausreichende Menge gespeicherter Ladung kann den Zustand eines logischen Elements, zum Beispiel einer SRAM-Zelle, eines Latches oder eines Gates, umkehren, woraus sich für den Betrieb der Schaltung ein logischer Fehler ergibt. Da diese Art von Störung keinen Dauerfehler des Gerätes zeigt, ist sie als weicher Fehler (Soft-Fehler) oder vorübergehender Fehler bekannt.
- Soft-Fehler sind eine wachsende Bürde für Mikroprozessorkonstrukteure, da die Anzahl von chipintegrierten Transistoren weiterhin exponentiell zunimmt. Die unkorrigierte Bitfehlerrate pro Latch oder SRAM-Bit soll für die nächsten Technologiegenerationen ungefähr konstant bleiben oder leicht abnehmen. Daher könnte die Fehlerrate eines Mikroprozessors ohne zusätzliche Fehlerschutzmechanismen oder die Verwendung einer unempfindlicheren Technologie (zum Beispiel vollständig verarmtes Silizium auf Isolator (SOI)) in direktem Verhältnis zur Anzahl von Elementen, die einem Prozessor in jeder nachfolgenden Generation hinzugefügt werden, ansteigen.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Verschiedene Merkmale der Erfindung werden aus der folgenden Beschreibung bevorzugter Ausführungsformen, wie sie in den beiliegenden Zeichnungen veranschaulicht sind, augenscheinlich, wobei in allen Zeichnungen ähnliche Bezugsziffern im Allgemeinen dieselben Bestandteile bezeichnen. Die Zeichnungen sind nicht unbedingt maßstabsgetreu, da der Schwerpunkt vielmehr auf die Veranschaulichung der Prinzipien der Erfindungen gelegt worden ist.
-
1 ist ein Blockdiagramm möglicher Resultate eines fehlerhaften Bits in einem Mikroprozessor. -
2a –2d zeigen ein Blockdiagramm, das eine Ausführungsform der vorliegenden Erfindung darstellt, wenn ein Pi-Bit zusammen mit einem Befehlsstrompfad verwendet wird, um einen Soft-Fehler, der in einem Befehl auftritt, zu entdecken. -
3 ist ein Ablaufdiagramm, das Vorgänge gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. -
4 ist ein Blockdiagramm, das ein beispielhaftes Computersystem abbildet, welches die vorliegende Erfindung ausführt, um Soft-Fehler zu entdecken. - AUSFÜHRLICHE BESCHREIBUNG
- In der folgenden Beschreibung sind spezifische Details zum Zweck der Erklärung, nicht jedoch zur Einschränkung dargestellt, beispielsweise bestimmte Strukturen, Architekturen, Schnittstellen, Verfahren, etc., um ein klares Verständnis der verschiedenen Aspekte der Erfindung zu schaffen. Für Fachleute, die Nutzen aus der vorliegenden Offenbarung ziehen, ist jedoch offensichtlich, dass die verschiedenen Aspekte der Erfindung in anderen Beispielen, die von diesen spezifischen Details abweichen, umgesetzt werden können. In bestimmten Fällen sind Beschreibungen wohlbekannter Vorrichtungen, Schaltungen und Verfahren weggelassen worden, um die Beschreibung der vorliegenden Erfindung nicht durch unnötige Einzelheiten unverständlich zu machen.
-
1 zeigt mögliche Resultate eines einzelnen Bitfehlers in einem Mikroprozessor. Zunächst stellt der Mikroprozessor fest, ob ein fehlerhaftes Bit eingelesen worden ist100 . Falls ein fehlerhaftes Bit nicht eingelesen worden ist110 , wird es als gutartige Störung und somit nicht als Fehler angesehen. Falls ein fehlerhaftes Bit eingelesen worden ist, stellt der Prozessor als Nächstes fest, ob das Bit einen Fehlerschutz (error protection) aufweist115 . Es gibt mindestens drei mögliche Resultate, wenn ein fehlerhaftes Bit eingelesen worden ist. Zum Ersten wird, falls der Fehlerschutz das fehlerhafte Bit erkannt und korrigiert hat, die Störung als korrigiert angesehen120 . - Zum Zweiten, falls das Bit keinen Fehlerschutz aufweist, ermittelt der Prozessor, ob der Befehl das Ergebnis des Programms beeinträchtigen würde
125 . Falls der Befehl das Ergebnis des Programms nicht beeinträchtigt, wird das fehlerhafte Bit als gutartige Störung angesehen130 . Die Störungen110 ,120 und130 zeigen Nicht-Fehler-Zustände an, da die Störung keine Auswirkung hatte oder entdeckt und korrigiert wurde. - Falls der Befehl das Ergebnis des Programms beeinträchtigt, wird die Störung als stille Datenverfälschung (silent data corruption, SDC) angesehen
135 . SDC135 ist die heimtückischste Art von Fehler, bei der eine Störung das System dazu bringt, fehlerhafte Ergebnisse zu erzeugen. Um SDC135 zu verhindern, können Konstrukteure grundlegende Fehlererkennungsmechanismen, wie zum Beispiel die Parität, benutzen. - Das dritte mögliche Ergebnis, wenn ein Bit einen Fehlerschutz aufweist, betrifft die Situation, in welcher der Fehler entdeckt wird
140 . Mit der Fähigkeit, eine Störung zu erkennen, sie jedoch nicht zu korrigieren, verhindert das System zwar das Erzeugen ungültiger Ausgaben, kann sich jedoch nicht wiederherstellen, wenn ein Fehler eintritt. Folglich verringert eine einfache Fehlererkennung nicht die Fehlerrate, stellt jedoch ein Absturzvermeidungsverhalten bereit, und verringert dadurch Datenverfälschung. Diese Arten von Fehlern sind als erkannte, nichtbehebbare Fehler (detected unrecoverable error, DUE) bekannt. - DUE-Ereignisse werden des Weiteren danach unterteilt, ob die erkannten Fehler das Endergebnis der Ausführung beeinträchtigen würden, oder nicht. Gutartige erkannte Fehler sind als falsche DUE-Ereignisse
145 , und die übrigen als echte DUE-Ereignisse150 bekannt. In einem Mikroprozessor könnten sich falsche DUE-Ereignisse aus Durchschlägen in Falscher-Pfad-Befehlen (wrong-path instructions), falsch basierten Befehlen (falsely predicated instructions) und Richtiger-Pfad-Befehlen (correct-path instructions) ergeben, die den Endzustand des Programms nicht beeinträchtigen, einschließlich Leerbefehlen (no-ops), Prefetch-Befehlen und dynamisch unwirksamen Befehlen. - Eine Ausführungsform der Erfindung benützt einen Mechanismus zum Verringern der Fehlerraten durch Verringern der Wahrscheinlichkeit, dass eine vorübergehende Störung den Prozessor veranlaßt, einen Fehlerzustand zu melden. Um falsche DUE-Ereignisse aufzuspüren, hängt der Mikroprozessor ein Bit, das als Pi-Bit für „Possibly Incorrect" (= möglicherweise fehlerhaft) bekannt ist, an jeden Befehl und möglicherweise auch an verschiedene Hardwarestrukturen. Wird ein Fehler entdeckt, setzt die Hardware das Pi-Bit des betroffenen Befehls, anstatt den Fehler anzuzeigen. Später kann die Hardware durch Prüfen des Pi-Bits und Feststellen der Art des Befehls entscheiden, ob tatsächlich ein sichtbarer Fehler aufgetreten ist.
- Das Unterscheiden falscher Fehler von echten Fehlern ist kompliziert. Der Prozessor kann eventuell nicht über genügend Informationen verfügen, um diese Entscheidung an dem Punkt, an dem er den Fehler entdeckt, zu machen. Erkennt die Befehlswarteschlange zum Beispiel einen Fehler in einem Befehl, ist sie möglicherweise nicht imstande festzustellen, ob der Befehl ein Falscher-Pfad-Befehl war, oder nicht. Folglich muß der Prozessor die Fehlerinformation in der Pipeline weiterleiten, und den Fehler wieder vorbringen, wenn er genügend Informationen hat, um diese Unterscheidung zu treffen.
- Um die Fehlerinformation zwischen unterschiedlichen Teilen der Mikroprozessorhardware weiterzuleiten, verwendet das System das Pi-Bit. Das Pi-Bit ist mit jedem Befehl logisch verknüpft, während dieser von der Dekodierung bis zur Deaktivierung fließt.
-
2a –2d zeigen eine Ausführungsform, in der ein Pi-Bit entlang eines Befehlsstrompfads verwendet wird, um einen Soft-Fehler, der in einem Befehl auftritt, zu entdecken. Im Fall eines Befehls wird das Pi-Bit an den Befehl gehängt und anfänglich auf Null gesetzt, wenn der Befehl dekodiert wird200 . Das Pi-Bit wird geleert, um die Abwesenheit irgendwelcher Fehler in dem Befehl anzuzeigen. Während der Befehl durch die Pipeline205 fließt, wird er mehrfach umgewandelt, um sich an die Maschine anzupassen, und in viele verschiedene Speicherstrukturen, wie zum Beispiel eine Befehlswarteschlange, geschrieben und aus diesen wieder ausgelesen. - Empfängt eine Befehlswarteschlange
210 den Befehl, speichert sie das Pi-Bit zusammen mit dem Befehl ab. Trägt der Befehl eine Einzelbitstörung, wird ein Prüfbitfehler angezeigt. Beim Entdecken eines Fehlers setzt die Befehlswarteschlange210 das Pi-Bit des betroffenen Befehls auf Eins, anstatt eine Maschinenprüfausnahme (machine check exuption) auszulösen. Danach wird der Befehl ausgegeben und fließt die Pipeline205 hinunter. - Fehlerprüfungen und Aktualisierungen des Pi-Bits können auch in mehreren Phasen der Pipeline und/oder in verschiedenen Strukturen im Lauf der Befehlsausführung verwendet werden. Fehlerprüflogik kann die Form von Paritätsüberwachern oder verschiedenen anderen Fehlererkennungsverfahren annehmen, die bekannt oder anderweitig verfügbar sind. Des Weiteren können Fehlererkennungs- und Korrekturverfahren in diesen verschiedenen Phasen oder unterschiedlichen Strukturen verwendet werden, wobei im Fall eines nichtbehebbaren Fehlers das Pi-Bit gesetzt wird.
- Schließlich wird sich der Befehl binden (commit)
215 . In der Bindungsphase (commit stage) weist die Commit-Hardware genügend Informationen auf, um zu ermitteln, ob der Befehl ein Falscher-Pfad-Befehl war. Ist dies der Fall, kann der Prozessor das Pi-Bit ignorieren, wodurch er ein falsches DUE-Ereignis vermeidet, falls das Bit gesetzt war. Ist dies nicht der Fall, hat der Prozessor die Auswahlmöglichkeit, am Commit-Punkt215 des Befehls den Maschinenprüffehler auszulösen. - Der Pi-Bit-Mechanismus kann auch verallgemeinert werden, indem das Pi-Bit an verschiedene Objekte, die durch die Pipeline
205 fließen, angehängt wird, solange die Pi-Bits korrekt von Objekt zu Objekt weitergeleitet werden. Zum Beispiel laden viele Mikroprozessoren typischerweise mehrere Befehle gemeinsam, wobei diese Strukturen manchmal auch Blöcke oder Segmente genannt werden. Blöcke fließen durch das Vorderende (front end) der Pipeline, bis sie dekodiert werden. Ein Pi-Bit kann an jeden Ladeblock angehängt werden. Trifft der Block auf einen Fehler, kann der Prozessor das Pi-Bit des Blocks setzen. Wenn anschließend der Block in mehrere Befehle dekodiert wird, kann der Prozessor den Pi-Bit-Wert des Blocks kopieren, um das Pi-Bit jedes Befehls zu initialisieren. Somit kann der Prozessor das Pi-Bit verwenden, um falsche DUE-Ereignisse in Strukturen am Vorderende der Pipeline zu vermeiden, bevor einzelne Befehle dekodiert werden. - In einer anderen Ausführungsform kann der Prozessor Pi-Bit-Informationen von Befehlen auf Registerspeicher übertragen, und dadurch falsche DUE-Ereignisse vermeiden, die aus dynamisch unwirksamen Befehlen in einer Registerdatei entstehen. Anstatt einen Fehler auszulösen, falls das Pi-Bit eines Befehls gesetzt ist, kann der Prozessor das Pi-Bit des Befehls auf den Zielregisterspeicher übertragen, den er beschreibt. Falls keine nachfolgenden Befehle diesen Registerspeicher lesen, wird das Pi-Bit des Registerspeichers nicht überprüft, und somit kann der Prozessor einen Fehler in einem direkten dynamisch unwirksamen (first-level dynamically dead, FDD-)Befehl, der den Registerspeicher beschrieb, verhindern. Liest hingegen ein nachfolgender Befehl einen Registerspeicher mit gesetztem Pi-Bit, kann der Prozessor einen Fehler anzeigen.
- Alternativ dazu kann ein Befehl, der den Registerspeicher liest, die Pi-Bits aller seiner Quellregisterspeicher in eine ODER-Beziehung mit seinem eigenen Pi-Bit bringen und entlang der Pipeline mitnehmen, anstatt einen Fehler auszulösen, falls das Pi-Bit eines Registerspeichers gesetzt ist. Diese Ausführungsform würde das Pi-Bit entlang Abhängigkeitsketten weiterleiten und einem Prozessor ermöglichen, auch vorübergehend dynamisch unwirksame (transitively dynamically dead, TDD-)Befehle aufzuspüren. Ein Weg, TDD-Befehle aufzuspüren, ist der, den Fehler nur auszulösen, wenn ein Prozessor mit dem Speichersystem oder den I/O-Vorrichtungen zusammenarbeitet. Wenn das Pi-Bit in jeder Struktur in einem Prozessor, ausgenommen Pufferspeicher und Hauptspeicher, vorhanden ist, und man derselben Vererbungsregel für Pi-Bits folgt, die oben beschrieben ist, können auch falsche Fehler in TDD-Befehlen vermieden werden. Um dies zu erreichen, würde das System Fehler nur anzeigen, wenn ein Speicherbefehl
220 oder ein I/O-Zugriff im Begriff ist, seine Daten an die Pufferspeicher, Speichersysteme oder I/O-Vorrichtungen zu binden. Diese Ausbreitung (propagation) würde nicht nur falsche DUE für TDD-Befehle in der Registerdatei, sondern auch in anderen Strukturen entlang der Pipeline, durch welche die Befehle und Werte fließen, vermeiden. - In einer anderen Ausführungsform kann der Prozessor das Pi-Bit von einem Befehl oder einem Registerspeicher auf Speicherwerte übertragen, um falsche DUE-Ereignisse in Speicherstrukturen, wie zum Beispiel Speicherpuffern und Caches
220 , aufzuspüren. Der Prozessor kann an jeden Pufferspeicherblock ein Pi-Bit anhängen, und wenn ein Speicherbefehl eine Adresse ausliest, kann der Prozessor das Pi-Bit des Speicherbefehls auf den Pufferspeicherblock übertragen. Wenn in der Folge ein Ladebefehl225 den Pufferspeicherblock ausliest, könnte er entweder das Pi-Bit überprüfen, oder das Pi-Bit auf den Registerspeicher213 , den er lädt, übertragen. Wird das Pi-Bit auf den Registerspeicher213 übertragen, kann der Prozessor auch vermeiden, falsche DUE-Ereignisse, die aus dynamisch unwirksamen Speicherwerten entstehen, anzuzeigen. - Falls ein System alternativ dazu Pi-Bits im gesamten Prozessorchip und Speichersystem aufwiese, könnte der Prozessor über den Speicher falsche Fehler sowohl in FDD- als auch in TDD-Befehlen aufspüren. In diesen Fällen würde ein Fehler nur dann ausgelöst, wenn der Prozessor einen I/O-Zugriff (zum Beispiel einen nicht gepufferten Lade- oder Speicherbefehl) ausführt, dessen Pi-Bit gesetzt ist. Dies ermöglicht Konstrukteuren, in einem Multiprozessorsystem mit gemeinsamem Speicher, Fehler über mehrere Prozessoren hinweg aufzuspüren.
- Im Allgemeinen kann das Pi-Bit somit an jedes Objekt, das durch die Pipeline fließt, oder an jede Hardwarestruktur angehängt werden, wobei die Granularität des Pi-Bits jedoch von der Umsetzung abhängt. Wird ein Pi-Bit zum Beispiel an einen 64-Bit-Registerspeicherwert angehängt, so kann ein einzelnes Pi-Bit nur anzeigen, dass ein Fehler in einem der 64 Bits erfolgt sein könnte. Gibt es alternativ dazu ein Pi-Bit für jedes Byte, so kann der Prozessor feststellen, in welchem Byte unter den 64 Bits ein Fehler aufgetreten sein kann.
-
3 ist ein Ablaufdiagramm, das eine Ausführungsform eines Verfahrens zum Erkennen von Soft-Fehlern darstellt. In dieser speziellen Ausführungsform veranschaulicht das Ablaufschema300 einen Fall, in dem ein Prozessor feststellt, ob ein Befehl ein Falscher-Pfad-Befehl ist. Zunächst wird, wenn ein Befehl dekodiert wird305 , ein Pi-Bit mit dem Befehl verknüpft310 und anfänglich auf Null gesetzt. Durch das anfängliche Setzen des Pi-Bits auf Null, wird die Abwesenheit jeglicher Fehler in dem Befehl angezeigt. Dann wird der Befehl zusammen mit dem Pi-Bit in die Pipeline eingereiht315 . Während der Befehl durch die Pipeline fließt, wird er viele Male umgewandelt, um sich an die Maschine anzupassen, und auf viele verschiedene Speicherelemente geschrieben und aus diesen wieder ausgelesen. - Während der Zeit, in welcher der Befehl durch eine Pipeline fließt, kann der Befehl einen Einzelbitfehler speichern, und ein Prüfbitfehler kann für diesen Befehl angezeigt (flagged) werden
320 . Falls ein Fehler für den Befehl entdeckt wurde, kann die Pipeline das Pi-Bit des betroffenen Befehls auf Eins setzen325 , anstatt eine Maschinenprüfausnahme auszulösen, und schließlich wird sich der Befehl binden330 . Falls kein Fehler entdeckt wurde, wird sich der Befehl schließlich binden330 . Die Commit-Hardware kann dann ermitteln, ob der Befehl ein Falscher-Pfad-Befehl war335 . Falls der Befehl als Falscher-Pfad-Befehl erkannt wird, wird das Pi-Bit ignoriert340 , andernfalls hat der Prozessor die Auswahlmöglichkeit, einen Fehler, zum Beispiel einen Maschinenprüffehler, auszulösen345 . -
4 stellt eine typische Systemausführung zum Erkennen von Soft-Fehlern dar. Es ist ein Computer400 gezeigt, in dem ein Prozessor405 als einzelner oder einer aus einer Mehrzahl von Prozessoren, welche die Zentraleinheit (CPU) oder -Einheiten des Computers400 umfassen, arbeitet. Typischerweise wird der Prozessor405 mit Hilfe eines einzigen Chips integrierter Schaltkreise ausgeführt. Der Prozessor405 kann einen Ausführungs-(Verarbeitungs-)Kern410 aufweisen, der eine oder mehrere Ausführungseinheiten aufweist. Ein Abschnitt des Prozessors405 ist speziell dafür vorgesehen, eine Befehlsverarbeitungsvorrichtung415 zu umfassen. Die Befehlsverarbeitungsvorrichtung415 ist als mit dem Kern410 gekoppelt abgebildet. - Die Erfindung wird gemäß der obigen Beschreibung ausgeführt, um einen Befehl im Kern
410 auszuführen. Der Speicher kann chipintern (wie durch den chipintegrierten Speicher420 gezeigt ist) oder chipextern (wie durch den chipexternen Speicher425 gezeigt ist) angeordnet sein. Typischerweise kann chipinterner Speicher ein Pufferspeicher oder ein Teil des Hauptspeichers (RAM) sein. Der chipexterne Speicher umfaßt typischerweise den Hauptspeicher (sowie chipexternen Pufferspeicher, falls vorhanden) und andere Speichervorrichtungen, wie zum Beispiel ein Plattenspeichermedium. Sowohl der chipinterne Speicher420 als auch der chipexterne Speicher425 können entweder einzeln oder getrennt mit verschiedenen Vorrichtungen, wie zum Beispiel einer Audioschnittstellenvorrichtung430 , verbunden sein. Es ist jedoch anzumerken, dass die Erfindung auch auf andere Weise gestaltet sein kann, um die Befehle zur Ausführung durch den Kern410 zu verarbeiten. - Der Pi-Bit-Mechanismus verringert die Anzahl falscher DUE-Ereignisse, indem er die Anzahl falscher Fehler verringert. In Abwesenheit eines Fehlererkennungsmechanismus hätten solche Fehler das Endergebnis eines Programms nicht beeinträchtigt. Eine Störung, die das Ergebnis eines dynamisch unwirksamen Befehls betrifft, würde zum Beispiel die endgültige Programmausgabe nicht verändern, könnte jedoch trotzdem von der Hardware als ein Fehler gekennzeichnet werden. Um das Anzeigen solcher falschen Fehler zu vermeiden, verändert der Pi-Bit-Mechanismus die Fehlererkennungslogik einer Pipeline, damit die betroffenen Befehle und Daten über das Pi-Bit als möglicherweise fehlerhaft markiert werden, anstatt dass sofort ein Fehler angezeigt wird. Dadurch zeigt der Prozessor nur dann einen Fehler an, falls später festgestellt wird, dass der möglicherweise fehlerhafte Wert die Ausgabe des Programms beeinträchtigen hätte können.
- In einigen Ausführungsformen verbreitet das Pi-Bit Fehlerinformationen, so dass der Fehler zu einem späteren Zeitpunkt wieder aufgebracht werden kann, wenn der Prozessor feststellen kann, ob der Fehler tatsächlich ein falscher oder ein echter Fehler war. Somit kann der Pi-Bit-Mechanismus die Erkennung eines Fehlers vom Anzeigen (flagging) des Fehlers entkoppeln. Dies gibt einem Mikroprozessorkonstrukteur die Möglichkeit, den Fehler entweder bei der Verwendung eines Werts, oder wenn das Pi-Bit für einen Wert den Gültigkeitsbereich verläßt, aufzubringen.
- Ein anderer Vorteil bei manchen Ausführungsformen ist der, dass die Paritätsüberwacher, welche die Störungen entdecken, nicht an jedem Ort die zusätzliche Hardware aufweisen, die nötig ist, um eine Maschinenprüfausnahme auszulösen. Statt dessen wird der Fehler im Pi-Bit weitergetragen. Die Commit-Hardware wäre der einzige Ort, an dem die Hardware zum Auslösen der Maschinenprüfausnahme erforderlich wäre.
- In der folgenden Beschreibung sind spezifische Details zum Zweck der Erklärung, nicht jedoch zur Einschränkung dargestellt, wie z.B. bestimmte Strukturen, Architekturen, Schnittstellen, Verfahren, etc., um für ein genaues Verständnis der verschiedenen Aspekte der Erfindung zu sorgen. Für Fachleute, die Nutzen aus der vorliegenden Offenbarung ziehen, ist jedoch offensichtlich, dass die verschiedenen Aspekte der Erfindung in anderen Beispielen, die von diesen spezifischen Details abweichen, umgesetzt werden können. In bestimmten Fällen sind Beschreibungen wohlbekannter Vorrichtungen, Schaltungen und Verfahren ausgelassen worden, um die Beschreibung der vorliegenden Erfindung nicht durch unnötige Einzelheiten unverständlich zu machen.
- Zusammenfassung
- Verfahren zum Verringern falscher Fehlererkennung in Mikroprozessoren. Ein Pi-Bit wird mit einem Befehl über einen Befehlsstrompfad verbreitet. Wenn ein Prüfbitfehler entdeckt wird, wird das Pi-Bit gesetzt, anstatt eine Maschinenprüfausnahme (machine check exception) auszulösen. Beim Erreichen eines Commit-Punktes kann der Prozessor dann feststellen, ob sich der Befehl auf einem falschen Pfad befand.
Claims (42)
- Prozessor, umfassend: ein Dekodiermodul, um einen Befehl zu empfangen; ein Bit, das mit dem Befehl verknüpft ist, um festzustellen, ob ein Bitzustandswechsel erfolgt ist, um den Befehl zu verfälschen, wobei das mit dem Befehl fließende Fehlerbit mit der Parität verknüpft ist; eine Speicherstruktur, die mit dem Dekodiermodul gekoppelt ist, um den Befehl zu speichern; und eine mit der Speicherstruktur gekoppelte Befehlsverarbeitungseinheit, welche eine Mehrzahl von Stufen zum Verarbeiten des Befehls umfaßt, wobei der Prozessor ermittelt, ob der Befehl am Commit-Punkt ein Falscher-Pfad-Befehl ist.
- Prozessor nach Anspruch 1, wobei das Bit auf einen ersten Wert initialisiert wird, um die Abwesenheit etwaiger Fehler in dem Befehl anzuzeigen.
- Prozessor nach Anspruch 1, wobei die Speicherstruktur eine Befehlswarteschlange ist.
- Prozessor nach Anspruch 2, wobei die Speicherstruktur das Fehlerbit des Befehls beim Erkennen eines Fehlers auf einen zweiten Wert setzt.
- Prozessor nach Anspruch 4, wobei der Befehl und das Bit durch die Mehrzahl von Stufen fließen.
- Prozessor nach Anspruch 5, wobei sich der Befehl mit dem Bit auf seinem zweiten Wert bindet.
- Prozessor nach Anspruch 6, wobei der Prozessor das Bit ignoriert, falls der Befehl ein Falscher-Pfad-Befehl ist.
- Prozessor nach Anspruch 6, wobei der Prozessor einen Maschinenprüffehler auslöst, falls der Befehl kein Falscher-Pfad-Befehl ist.
- Prozessor nach Anspruch 1, wobei die Befehle Blöcke sein können, und jedes Bit an jeden geladenen Block angehängt wird.
- Prozessor nach Anspruch 9, wobei der Block in mehrere Befehle dekodiert wird, wobei der Prozessor den Bitwert des Blocks zu jedem der Mehrzahl von Befehlen kopiert.
- Prozessor nach Anspruch 1, wobei der Prozessor das Bit des Befehls an einen Zielregisterspeicher überträgt.
- Prozessor nach Anspruch 11, wobei das Bit des Registerspeichers nicht überprüft wird, falls keine nachfolgenden Befehle den Zielregisterspeicher auslesen.
- Prozessor nach Anspruch 11, wobei die Bits aller Befehlsursprungsregisterspeicher mit dem eigenen Bit des Befehls in eine logische ODER-Beziehung gebracht werden, um ein Einzelbit bereitzustellen.
- Prozessor nach Anspruch 1, wobei der Prozessor das Bit von einem Befehl auf ein Speichermodul überträgt.
- Prozessor nach Anspruch 14, wobei der Prozessor jedem Pufferspeicherblock ein Bit anhängt, wobei der Prozessor bei einem Speicherbefehl, der eine Adresse schreibt, das Bit des Speicherbefehls auf den Pufferspeicherblock überträgt.
- Prozessor nach Anspruch 14, wobei ein Ladebefehl den Pufferspeicherblock einliest, entweder, um das Bit zu überprüfen, oder um das Bit an den Registerspeicher, den er lädt, zu übertragen.
- Prozessor nach Anspruch 1, wobei das Bit ein Pi-Bit ist.
- Verfahren umfassend: Dekodieren eines Befehls; Laden eines Bits zusammen mit dem Befehl, wobei das Bit mit einer Parität für den Befehl verknüpft ist; Einreihen des Befehls; Propagieren des Befehls durch Stufen einer Pipeline, um den Befehl zu verarbeiten; und Ermitteln, ob der Befehl am Commit-Punkt ein Falscher-Pfad-Befehl ist.
- Verfahren nach Anspruch 18, des Weiteren umfassend das Ignorieren des Bits, falls der Befehl ein Falscher-Pfad-Befehl ist.
- Verfahren nach Anspruch 19, des Weiteren umfassend das Auslösen eines Maschinenprüffehlers, falls der Befehl kein Falscher-Pfad-Befehl war.
- Vorrichtung umfassend: ein Dekodiermodul zum Empfangen einer Eingabe; ein Speicherelement zum Speichern eines Erkennungsbits, das mit der Eingabe verknüpft ist, um festzustellen, ob ein Bitzustandswechsel eingetreten ist, um die Eingabe zu verfälschen; eine Befehlswarteschlange zum Verarbeiten der Eingabe; ein Befehlsstrompfad zum Propagieren des Flusses von Eingaben durch mehrere Stufen; und ein Commit-Modul, um zu bestimmen, ob sich die Eingabe auf einem falschen Pfad befindet.
- Vorrichtung nach Anspruch 21, wobei das Erkennungsbit ein Pi-Bit ist.
- Vorrichtung nach Anspruch 22, wobei das Erkennungsbit mit einer Parität für den Befehl verknüpft ist.
- Vorrichtung nach Anspruch 21, wobei das Erkennungsbit auf einen ersten Wert initialisiert wird, um die Abwesenheit etwaiger Fehler in der Eingabe anzuzeigen.
- Vorrichtung nach Anspruch 24, wobei die Befehlswarteschlange das Erkennungsbit der Eingabe beim Erkennen eines Fehlers auf einen zweiten Wert setzt.
- Vorrichtung nach Anspruch 25, wobei die Eingabe ausgegeben wird und durch die Mehrzahl von Stufen des Befehlsstrompfades fließt.
- Vorrichtung nach Anspruch 25, wobei sich die Eingabe mit dem Erkennungsbit auf seinem zweiten Wert bindet.
- Vorrichtung nach Anspruch 27, wobei die Vorrichtung das Erkennungsbit ignoriert, falls das Commit-Modul feststellt, dass die Eingabe eine Falscher-Pfad-Eingabe ist.
- Vorrichtung nach Anspruch 28, wobei die Vorrichtung einen Maschinenprüffehler auslöst, falls das Commit-Modul feststellt, dass die Eingabe keine Falscher-Pfad-Eingabe ist.
- System umfassend: – einen chipexternen Speicher zum Speichern einer Eingabe vor dem Laden; – einen Prozessor, der mit dem chipexternen Speicher gekoppelt ist, wobei der Prozessor des Weiteren umfaßt: – ein Dekodiermodul zum Empfangen der Eingabe; – ein Speicherelement zum Speichern eines Bits, das mit der Eingabe verknüpft ist; – eine Befehlswarteschlange zum Verarbeiten der Eingabe; – einen Befehlsstrompfad zum Propagieren des Eingabeflusses durch Stufen; und – ein Commit-Modul, um festzustellen, ob sich die Eingabe auf einem falschen Pfad befindet.
- System nach Anspruch 30, des Weiteren umfassend eine Audioschnittstelle, die mit dem chipexternen Speicher gekoppelt ist.
- System nach Anspruch 30, wobei das Bit ein Pi-Bit ist.
- System nach Anspruch 30, wobei das Bit feststellt, ob ein Bitzustandswechsel eingetreten ist, um die Eingabe zu verfälschen.
- System nach Anspruch 33, wobei der Bitzustandswechsel die Parität betrifft.
- System nach Anspruch 30, wobei das Bit auf einen ersten Wert initialisiert wird, um die Abwesenheit etwaiger Fehler in der Eingabe anzuzeigen.
- System nach Anspruch 35, wobei die Befehlswarteschlange das Bit der Eingabe beim Erkennen eines Fehlers auf einen zweiten Wert setzt.
- System nach Anspruch 36, wobei die Eingabe ausgegeben wird und durch die Mehrzahl von Stufen des Befehlsstrompfades fließt.
- System nach Anspruch 36, wobei sich die Eingabe mit dem Bit auf seinem zweiten Wert bindet.
- System nach Anspruch 38, wobei das System das Bit ignoriert, falls das Commit-Modul feststellt, dass die Eingabe eine Falscher-Pfad-Eingabe ist.
- System nach Anspruch 39, wobei das System einen Maschinenprüffehler auslöst, falls das Commit-Modul feststellt, dass die Eingabe keine Falscher-Pfad-Eingabe ist.
- System nach Anspruch 30, des Weiteren umfassend einen chipinternen Speicher.
- System nach Anspruch 41, des Weiteren umfassend eine Audioschnittstellenvorrichtung, die mit dem chipinternen Speicher gekoppelt ist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/871,430 | 2004-06-17 | ||
US10/871,430 US7555703B2 (en) | 2004-06-17 | 2004-06-17 | Method and apparatus for reducing false error detection in a microprocessor |
PCT/US2005/017772 WO2006007147A1 (en) | 2004-06-17 | 2005-05-20 | Method and apparatus for reducing false error detection in a microprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112005001338T5 true DE112005001338T5 (de) | 2007-06-14 |
Family
ID=34981730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112005001338T Withdrawn DE112005001338T5 (de) | 2004-06-17 | 2005-05-20 | Verfahren und Vorrichtung zur Reduzierung falscher Fehlererkennung in einem Mikroprozessor |
Country Status (6)
Country | Link |
---|---|
US (2) | US7555703B2 (de) |
JP (1) | JP4448539B2 (de) |
CN (1) | CN100449480C (de) |
DE (1) | DE112005001338T5 (de) |
TW (1) | TWI277861B (de) |
WO (1) | WO2006007147A1 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050283590A1 (en) * | 2004-06-17 | 2005-12-22 | Weaver Christopher T | Reducing false error detection in a microprocessor by tracking dynamically dead instructions |
US7370231B2 (en) * | 2004-12-14 | 2008-05-06 | Intel Corporation | Method of handling errors |
US7581152B2 (en) * | 2004-12-22 | 2009-08-25 | Intel Corporation | Fault free store data path for software implementation of redundant multithreading environments |
US20060190700A1 (en) * | 2005-02-22 | 2006-08-24 | International Business Machines Corporation | Handling permanent and transient errors using a SIMD unit |
DE102006005817B4 (de) * | 2006-02-08 | 2014-06-26 | Infineon Technologies Ag | Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder |
DE102006062703A1 (de) * | 2006-02-08 | 2007-08-30 | Infineon Technologies Ag | Fehlererkennungsvorrichtung und Verfahren zur Fehlererkennung für einen Befehlsdecoder |
US8201067B2 (en) * | 2008-02-25 | 2012-06-12 | International Business Machines Corporation | Processor error checking for instruction data |
US7849387B2 (en) * | 2008-04-23 | 2010-12-07 | Intel Corporation | Detecting architectural vulnerability of processor resources |
GB2466984B (en) * | 2009-01-16 | 2011-07-27 | Imagination Tech Ltd | Multi-threaded data processing system |
US20110099439A1 (en) * | 2009-10-23 | 2011-04-28 | Infineon Technologies Ag | Automatic diverse software generation for use in high integrity systems |
US20110208948A1 (en) * | 2010-02-23 | 2011-08-25 | Infineon Technologies Ag | Reading to and writing from peripherals with temporally separated redundant processor execution |
US8516356B2 (en) | 2010-07-20 | 2013-08-20 | Infineon Technologies Ag | Real-time error detection by inverse processing |
US8671309B2 (en) * | 2011-07-01 | 2014-03-11 | Intel Corporation | Mechanism for advanced server machine check recovery and associated system software enhancements |
US9176739B2 (en) * | 2011-08-05 | 2015-11-03 | Cisco Technology, Inc. | System and method for checking run-time consistency for sequentially and non-sequentially fetched instructions |
US9106258B2 (en) * | 2013-11-22 | 2015-08-11 | International Business Machines Corporation | Early data tag to allow data CRC bypass via a speculative memory data return protocol |
FR3030793B1 (fr) * | 2014-12-19 | 2018-02-16 | Clearsy | Procede d'arret d'urgence et systeme securitaire associe |
US10761925B2 (en) * | 2015-03-24 | 2020-09-01 | Nxp Usa, Inc. | Multi-channel network-on-a-chip |
US9595349B2 (en) | 2015-06-25 | 2017-03-14 | Intel Corporation | Hardware apparatuses and methods to check data storage devices for transient faults |
US10802932B2 (en) * | 2017-12-04 | 2020-10-13 | Nxp Usa, Inc. | Data processing system having lockstep operation |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3531631A (en) * | 1967-01-11 | 1970-09-29 | Ibm | Parity checking system |
US4241396A (en) * | 1978-10-23 | 1980-12-23 | International Business Machines Corporation | Tagged pointer handling apparatus |
US4224681A (en) * | 1978-12-15 | 1980-09-23 | Digital Equipment Corporation | Parity processing in arithmetic operations |
US4604750A (en) * | 1983-11-07 | 1986-08-05 | Digital Equipment Corporation | Pipeline error correction |
US4794517A (en) * | 1985-04-15 | 1988-12-27 | International Business Machines Corporation | Three phased pipelined signal processor |
JPS6312030A (ja) | 1986-07-02 | 1988-01-19 | Nec Corp | 情報処理装置のエラ−処理機構 |
US5297263A (en) * | 1987-07-17 | 1994-03-22 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor with pipeline system having exception processing features |
US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
JP2618958B2 (ja) * | 1988-03-28 | 1997-06-11 | 株式会社東芝 | パリティチェック制御装置 |
GB8810948D0 (en) * | 1988-05-09 | 1988-06-15 | Plessey Telecomm | Tdm data transmission system |
JPH03209523A (ja) | 1990-01-11 | 1991-09-12 | Fujitsu Ltd | 命令データエラー検出方式 |
JPH04264624A (ja) | 1991-02-19 | 1992-09-21 | Toshiba Corp | プロセッサ |
US5649090A (en) * | 1991-05-31 | 1997-07-15 | Bull Hn Information Systems Inc. | Fault tolerant multiprocessor computer system |
EP0529303A3 (en) * | 1991-08-29 | 1993-09-22 | International Business Machines Corporation | Checkpoint synchronization with instruction overlap enabled |
EP0596144A1 (de) | 1992-10-07 | 1994-05-11 | International Business Machines Corporation | Hierarchises Speichersystem für Mikrokode und Vorrichtung zur Korrektur von Fehlern in der Mikrokode |
JP3035108B2 (ja) | 1993-04-02 | 2000-04-17 | 株式会社東芝 | 並列演算処理装置 |
US5537559A (en) * | 1994-02-08 | 1996-07-16 | Meridian Semiconductor, Inc. | Exception handling circuit and method |
US5535226A (en) * | 1994-05-31 | 1996-07-09 | International Business Machines Corporation | On-chip ECC status |
US5751985A (en) * | 1995-02-14 | 1998-05-12 | Hal Computer Systems, Inc. | Processor structure and method for tracking instruction status to maintain precise state |
KR100206887B1 (ko) * | 1995-12-31 | 1999-07-01 | 구본준 | 프로그램 오동작 방지를 위한 씨피유 |
US5813027A (en) * | 1996-03-08 | 1998-09-22 | Vlsi Technology, Inc. | Method for storing and transferring wave table audio samples using a DSP cache, a link list structure, and compression |
US5872910A (en) * | 1996-12-27 | 1999-02-16 | Unisys Corporation | Parity-error injection system for an instruction processor |
US6247118B1 (en) * | 1998-06-05 | 2001-06-12 | Mcdonnell Douglas Corporation | Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry |
US6253306B1 (en) * | 1998-07-29 | 2001-06-26 | Advanced Micro Devices, Inc. | Prefetch instruction mechanism for processor |
US6457119B1 (en) * | 1999-07-23 | 2002-09-24 | Intel Corporation | Processor instruction pipeline with error detection scheme |
US6738892B1 (en) * | 1999-10-20 | 2004-05-18 | Transmeta Corporation | Use of enable bits to control execution of selected instructions |
US6675341B1 (en) * | 1999-11-17 | 2004-01-06 | International Business Machines Corporation | Extended error correction for SEC-DED codes with package error detection ability |
US6862677B1 (en) * | 2000-02-16 | 2005-03-01 | Koninklijke Philips Electronics N.V. | System and method for eliminating write back to register using dead field indicator |
KR20010087046A (ko) | 2000-03-06 | 2001-09-15 | 서평원 | 컴퓨터 시스템 |
US6543028B1 (en) * | 2000-03-31 | 2003-04-01 | Intel Corporation | Silent data corruption prevention due to instruction corruption by soft errors |
US6654909B1 (en) * | 2000-06-30 | 2003-11-25 | Intel Corporation | Apparatus and method for protecting critical resources against soft errors in high performance microprocessors |
US6662319B1 (en) * | 2000-08-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Special encoding of known bad data |
US6895527B1 (en) * | 2000-09-30 | 2005-05-17 | Intel Corporation | Error recovery for speculative memory accesses |
US6823448B2 (en) * | 2000-12-15 | 2004-11-23 | Intel Corporation | Exception handling using an exception pipeline in a pipelined processor |
US6704890B1 (en) * | 2000-12-22 | 2004-03-09 | Nortel Networks Limited | Skew compensating interface for operation with arbitrary data |
US6804799B2 (en) * | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US7318169B2 (en) | 2002-05-15 | 2008-01-08 | David Czajkowski | Fault tolerant computer |
US7222270B2 (en) * | 2003-01-10 | 2007-05-22 | International Business Machines Corporation | Method for tagging uncorrectable errors for symmetric multiprocessors |
US20050138478A1 (en) * | 2003-11-14 | 2005-06-23 | Safford Kevin D. | Error detection method and system for processors that employ alternating threads |
-
2004
- 2004-06-17 US US10/871,430 patent/US7555703B2/en not_active Expired - Fee Related
- 2004-09-22 US US10/948,813 patent/US7543221B2/en not_active Expired - Fee Related
-
2005
- 2005-05-19 TW TW094116345A patent/TWI277861B/zh not_active IP Right Cessation
- 2005-05-20 WO PCT/US2005/017772 patent/WO2006007147A1/en active Application Filing
- 2005-05-20 DE DE112005001338T patent/DE112005001338T5/de not_active Withdrawn
- 2005-05-20 CN CNB200580019724XA patent/CN100449480C/zh not_active Expired - Fee Related
- 2005-05-20 JP JP2007515202A patent/JP4448539B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20050283712A1 (en) | 2005-12-22 |
TW200619921A (en) | 2006-06-16 |
JP4448539B2 (ja) | 2010-04-14 |
US20050283716A1 (en) | 2005-12-22 |
US7555703B2 (en) | 2009-06-30 |
TWI277861B (en) | 2007-04-01 |
JP2008501191A (ja) | 2008-01-17 |
CN100449480C (zh) | 2009-01-07 |
WO2006007147A1 (en) | 2006-01-19 |
CN1969256A (zh) | 2007-05-23 |
US7543221B2 (en) | 2009-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112005001338T5 (de) | Verfahren und Vorrichtung zur Reduzierung falscher Fehlererkennung in einem Mikroprozessor | |
DE3650651T2 (de) | Fehlertolerantes Datenverarbeitungssystem | |
DE68924223T2 (de) | Mechanismus zum Prüfpunktwiederversuch. | |
DE68924119T2 (de) | Verfahren und Vorrichtung zum Wiederanlauf nach einem Fehler in einem digitalen Rechnersystem. | |
DE10304447B4 (de) | Verfahren zur Handhabung von Datenfehlern in einem Prozessor mit Pipeline und derartiger Prozessor | |
DE3853206T2 (de) | Verfahren und gerät zur byteschreibfehlerkodierung. | |
DE69126498T2 (de) | Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems | |
DE3854368T2 (de) | Cachespeicher mit einer Elastizität in der Verarbeitung verschiedener Adressenfehler. | |
DE69910320T2 (de) | Technik für Einzelfehlerkorrektur im Cachespeicher mit Subblock-Paritätenbits | |
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE3786862T2 (de) | Fehlertolerante Rechnerarchitektur. | |
DE69513126T2 (de) | Verfahren und Gerät zum schnellen Vergleichen für Adressen eines Pufferspeichers mit Fehlerkorrektur | |
DE3587058T2 (de) | Fehlerbeseitigungssystem in einem datenprozessor mit einem steuerspeicher. | |
EP1667022A2 (de) | Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten | |
DE69624191T2 (de) | Atomisches Aktualisieren von EDC-geschützten Daten | |
DE112006001233T5 (de) | Selektive Aktivierung der Fehlerverminderung basierend auf der Fehlerzahl des Bit-Werts | |
EP0104635A2 (de) | Verfahren und Anordnung zum Prüfen eines digitalen Rechners | |
DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
EP1955164A1 (de) | Programmgesteuerte einheit und verfahren zum betreiben derselbigen | |
US20060095821A1 (en) | Executing checker instructions in redundant multithreading environments | |
DE69029164T2 (de) | Vorrichtung und Verfahren zum Ersetzen der Parität | |
DE68918840T2 (de) | Fehlererkennung für teilschreiboperationen für speicher. | |
DE102011011333B4 (de) | Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung | |
DE3814875A1 (de) | Logische verknuepfungseinrichtung und logisches verknuepfungsverfahren | |
DE112020007230T5 (de) | System und verfahren zur automatischen wiederherstellung in lockstep-prozessoren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |