DE112005002975T5 - Verfahren zur Behandlung während der Ausführung einer Fehlerbehandlungsroutine auftretender Fehler - Google Patents

Verfahren zur Behandlung während der Ausführung einer Fehlerbehandlungsroutine auftretender Fehler Download PDF

Info

Publication number
DE112005002975T5
DE112005002975T5 DE112005002975T DE112005002975T DE112005002975T5 DE 112005002975 T5 DE112005002975 T5 DE 112005002975T5 DE 112005002975 T DE112005002975 T DE 112005002975T DE 112005002975 T DE112005002975 T DE 112005002975T DE 112005002975 T5 DE112005002975 T5 DE 112005002975T5
Authority
DE
Germany
Prior art keywords
error
processor
handler
handling routine
general
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
DE112005002975T
Other languages
English (en)
Inventor
Trygve Northborough Fossum
Yaron Natick Shragai
Shubhendu Framingham Mukherjee
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 DE112005002975T5 publication Critical patent/DE112005002975T5/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

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

Abstract

Verfahren umfassend:
in einer Fehlerbehandlungsroutine eines Prozessors, Ausführen als Antwort auf einen ersten erkannten nicht behebbaren Fehler (DUE) des Prozessors, Antworten auf eine Anzeige, dass ein zweiter DUE aufgetreten ist, durch Auswerten eines oder mehrere Effekte des zweiten DUE auf die Richtigkeit der Fehlerbehandlungsroutine.

Description

  • Hintergrund
  • Energetische, sub-atomare Partikel, wie z.B. Neutronen aus kosmischen Strahlen und Alphapartikel aus radioaktiven Spurenelementen in der Verpackung einer Halbleitervorrichtung, können Elektron-Loch-Paare hervorrufen, wenn sie sich durch eine solche Vorrichtung bewegen. Transistorquellen- und Drain-Anschlüsse in der Vorrichtung können diese Ladungen sammeln, und eine ausreichende Anhäufung der Ladung kann eine logische Vorrichtung, welche einen solchen Transistor enthält, schliesslich dazu veranlassen, ihren Zustand zu invertieren, oder umzuschlagen, was eine logische Fehlfunktion in der Betriebsweise der Schaltung verursacht. Diese Fehlfunktionen sind vorübergehend, da sie kein dauerhaftes Versagen der Vorrichtung hervorrufen, und werden daher weiche oder vorübergehende Fehler genannt. Eine übliche Form einer weichen Fehlers ist ein Fehler in einem Transistor, der einen Teil einer Speicherzelle bildet, wie eine Cachezelle, oder eine Registerzelle, was ein Umschlagen des von einer solchen Zelle repräsentierten Bits von seinem beabsichtigten Wert hervorruft.
  • Die Wahrscheinlichkeit, dass ein sanfter Fehler einen Prozessor oder eine andere Halbleitervorrichtung beeinträchtigt, hängt von der Anzahl, der auf dem Chip untergebrachten Transistoren ab. Insbesondere im Fall von Prozessoren ist die Anzahl von auf dem Chip befindlichen Transistoren sehr schnell gewachsen, und daher ist die Fehlerrate auf Grund von sanften Fehlern proportional gewachsen. Daher, ist die Bedeutsamkeit, die Einflüsse von sanften Fehlern auf den Betrieb von Prozessoren zu verringern, angestiegen.
  • 1 stellt eine Klassifizierung von sanften Fehlern in einer Prozessorspeichereinheit, wie einem Register oder Cache, dar, die zur Klarheit als Flussdiagramm abgebildet ist. Wenn ein sanfter Fehler auftritt, 110, dann kann die Fehlfunktion als harmlos betrachtet werden, wenn das betroffene Bit nicht gelesen wurde, 120 und 140. Wenn das Bit gelesen wurde, aber die betroffene Einheit, wie eine Cache Linie, oder Registerbank, einen eingebauten Fehlerschutz aufweist, 130, kann der Fehler behebbar, oder zumindest feststellbar sein. Eine solche Fehlerbehebung ist wohlbekannt, und enthält z.B. Gleichheits- und ECC Schemen. In der Situation, wo ein Bit keinen Fehlerschutz aufweist, und das Bit die Richtigkeit einer im Ablauf befindlichen Berechnung in dem Prozessor beeinflusst, spricht man vom Auftreten einer lautlosen Datenkorrumpierung 180. Dies ist ein unerwünschter Zustand, dessen Wahrscheinlichkeit Konstrukteure von Prozessoren minimieren möchten.
  • Wenn der Fehler erkannt wird und behoben werden kann, 150, dann wird das Bit auf seinen Ausgangswert gesetzt, oder zurückgesetzt, und der Prozessorbetrieb wird normal fortgesetzt, 190. Wenn der Fehler nicht behoben werden kann, aber erkannt wurde, dann kann der Prozessor zusätzliche Massnahmen ergreifen, da ein solcher Fehler als nicht behebbar angesehen wird, 170. Diese Art von Fehler wird als erkannter, nicht behebbarer Fehler oder DUE bezeichnet.
  • Üblicherweise bedingt ein DUE einen durch Fehler verursachten Abbruch, zumindest des ausgeführten Prozesses, welcher versuchte, das fehlerhafte Bit zu lesen, und manchmal einen durch Fehler verursachten Abbruch des gesamten Betriebsystems, welches auf dem Prozessor läuft, was einen Stillstand oder Neustart der Maschine bedingt. Es ist natürlich vorzuziehen, einen Vorgang abzubrechen, anstatt des gesamten Systems, um die Gesamtfolgen des DUE zu minimieren. In hochgradig zuverlässigen Systemen, wie Servern für kritische Anwendungen, versuchen Konstrukteure sicherzustellen, dass die mittlere Zeitspanne zwischen das System abbrechenden DUEs besonders hoch ist, z.B. 25 Jahre.
  • Wenn ein DUE festgestellt wird, tritt der Prozessor üblicherweise in eine Routine zur Behandlung von Software Fehlern ein. Unter Verwendung von Fehlerregister Listen stellt die Routine fest, ob der DUE einen Verfahrens- oder Systemsabbruch verlangt, und wie vorzugehen ist. In einem Szenario kann ein zweiter DUE während der Ausführung der Fehlerbehandlungsroutine für die erste DUE auftreten. Obwohl ein solches Ereignis relativ unwahrscheinlich ist, muss der Konstrukteur eines hochzuverlässigen Prozessors dieses Szenario berücksichtigen.
  • Kurze Beschreibung der Zeichnungen
  • 1 bildet die Auswirkungen sanfter Fehler und verschiedener Ergebnisse in Abhängigkeit von Feststellung, Auswirkung, und Milderung als Flussdiagramm ab (Stand der Technik),
  • 2 bildet ein Prozessor gestütztes System in einer Ausführungsform ab,
  • 3 ist ein Zustandsdiagramm der möglichen Zustände, die auf die Aktivierung einer Fehlerbehandlungsroutine als Antwort auf einen ersten DUE folgen, in einer Ausführungsform,
  • 4 ist ein Flussdiagramm einer Software gestützten Lösung, um die Auswirkungen eines zweiten DUE abzumildern, der während einer Fehlerbehandlung eines ersten DUE auftritt, in einer Ausführungsform.
  • Ausführliche Beschreibung
  • 2 bildet ein prozessorgestütztes System in einer Ausführungsform ab. Ein solches System enthält einen Prozessor 210, ein Speicher Subsystem, das einen Schreiblesezugriffsspeicher (RAM Speicher) 270 und einen Nur-Lesespeicher (ROM Speicher) 290 enthält, um Daten und Programme zu speichern, die von dem Prozessor ausführbar sind, und eine nicht flüchtige Speichereinheit, wie z.B. ein Disksystem 280, welches von einem Bussystem 260 verbunden wird, und mit dem externen Netzwerk oder Benutzern durch Systemeingabe/Ausgabe (I/O) Vorrichtungen oder Peripheriegeräte 250 gekoppelt ist. Der Prozessor kann eine Gruppe von allgemeinen Registern 220 für Verfahren, die auf dem Prozessor ausgeführt werden, um häufig verwendete Daten zu speichern; eine Gruppe von Status Flags, oder Bits, welche den Status von verschiedenen Aspekten des Prozessorbetriebs 240 anzeigen; und eine Signalisierungslogik 230, die eine Interaktion zwischen den Zustand Flags ermöglicht, umfassen. Bekanntermassen sind viele andere Komponenten, wie ein Cache, logische Einheiten, Pipelines, etc., auch als Komponenten eines Prozessors vorhanden, und in ähnlicher Weise können andere Komponenten auch in einem Prozessor gestützten System gegenwärtig sein, aber sind hier aus Gründen der Klarheit nicht abgebildet.
  • Wenn ein Prozessor, wie z.B. der in 2 abgebildete, einen detektierbare nicht behebbaren Fehler oder DUE detektiert, üblicherweise durch den Betrieb eines Fehlerdetektionsmechanismus, wie z.B. Paritätsprüfung oder ECC, unterbricht er üblicherweise den derzeit in Ausführung befindlichen Prozeß, und leitet die Ausführung einer Software Fehlerbehandlungsroutine ein. In einer Ausführungsform ist die Fehlerbehandlungsroutine dazu ausgelegt, nur minimal gegenüber einer zweiten oder folgenden DUE anfällig zu sein, die während der Ausführung der Fehlerbehandlungsroutine selbst auftritt. Zum Beispiel kann die Routine mit ausgeschaltetem Cache ausgeführt werden, um sich nicht möglichen Fehlern in dem Cachespeicher auszusetzen. Sie kann in einem ROM 290 gespeichert sein, welcher weniger anfällig auf DUEs ist, als RAM Zellen in einem Cache- oder Systemspeicher. Sogar wenn die Routine RAM Speicherzellen verwenden muss, wie diejenigen in einem Cachespeicher oder Register, kann es die Inhalte des Bereichs, welcher zur Speicherung verwendet wird, löschen bevor er verändert wird. Allgemein ist es jedoch für eine Fehlerbehandlungsroutine sehr schwierig, abzulaufen, ohne einige Speicherzellen zu lesen, die auf DUEs empfindlich sind, ganz gleich ob Register, Cache- oder Systemspeicher, und damit verbleibt die, wenn auch geringe Möglichkeit, dass ein DUE, welcher die Richtigkeit der Routine während ihrer Ausführung, zwischen der Zeit wenn, die Routine in eine Speicherzelle schreibt, und der Zeit, zu der sie von der Speicherzelle liest, beeinflusst. Insbesondere ist es sehr wahrscheinlich, dass ein Error Handler an einem bestimmten Punkt seiner Ausführung in einige der Allzweckregister (Allgemeines Register 220) schreiben, und dann daraus lesen muss, um seine Aufgabe auszuführen.
  • Wenn ein zweiter DUE detektiert wird, bevor der erste DUE behandelt wird, kann er nach der Aktivierung des Error Handlers aufgetreten sein oder nicht, da viele Speicherlesevorgänge, die mit der Fehlerbehandlung nichts zutun haben, zwischen der Zeit auftreten können, wenn eine erste DUE berichtet wird, und der Zeit, zu der die Fehlerbehandlungsfunktion tatsächlich aktiviert ist. Die Feststellung, ob die DUE vor oder nach Aktivierung der Routine auftrat, ist nützlich, um die Notwendigkeit zu begrenzen, einen Systemabbruch auszulösen, der notwendig wäre, falls der DUE nach Aktivierung der Routine aufgetreten wäre, da dies die mögliche Korrumpierung der Routine selbst bedeuten könnte.
  • 3 bildet die möglichen Zustände des Systems im Verhältnis zu dieser Problematik ab. Wenn des Error Handler beginnt, dann löscht der Error Handler, oder ihr Aufrufmechanismus üblicherweise das Fehlerstaus Flag, sobald die Ausführung beginnt. Weiterhin kann ein Flag in einigen Ausführungsformen gesetzt werden, um anzuzeigen, dass der Error Handler aktiv ist. Dieser Zustand, in dem das Fehlerstatus Flag gelöscht wird, und das Handler-Aktivierungs-Flag gesetzt wird, ist bei 310 gezeigt. Von diesem Zustand kann sich der Prozessor zu einem von zwei möglichen Zuständen mit Bezug auf den Error Handler-Aktivierungsstatus und den Fehlerstatus bewegen. In einer Alternative bricht der Error Handler ab, ohne dass ein anderer DUE auftritt (Fehlerstatus Flag ist immer noch gelöscht, und Handler-Aktivierung-Flag ist auch gelöscht, 330), und ein Prozeßabbruch kann verwendet werden, um den ersten DUE zu behandeln. In einer anderen Alternative, tritt ein Zustand auf, bei dem der Error Handler aktiv ist, während das Fehlerzustand Flag gesetzt ist, das bei 320 einen zweiten DUE anzeigt. Dieser Zustand kann einen Fehler bei der Ausführung des DUE anzeigen, und ohne weitere Information, kann der herkömmliche Ansatz zur Behandlung des Fehlers, wenn dieser Zustand detektiert wird, einen Systemabbruch hervorrufen.
  • In einer Ausführungsform wird Signalisierungslogik 230, die oben mit Bezug auf 2 erörtert wurde, verwendet, um den Zustand 320 zu detektieren, der in 3 gezeigt wird. Zum Beispiel kann in dem Intel® Itanium Prozessor ein Zustand, in dem das PSR.mc Bit, welches die Aktivierung der „machine check" (mc)-Fehlerbehandlungsroutine und das gleichzeitige Setzen eines Flag in dem allgemeinen Hardware Register-Fehlerprotokoll, während das PSR.mc Flag gesetzt ist, anzeigt, durch eine Signalisier-Logik erfaßt werden, um einen Zustand anzuzeigen, in dem die Richtigkeit der Maschinenprüfungsroutine möglicherweise verfälscht war.
  • Während die oben beschriebene Lösung wohl funktionieren würde, kann sie jedoch über Gebühr Situationen einschliessen, in welchen die zweite DUE nicht den Error Handler, sondern lediglich den unterbrochenen Prozeß beeinflusst. In einer Ausführungsform speichert die Fehlerbehandlungsroutine zumindest einen Teil der allgemeinen Register vor ihrer Verwendung in einen temporären Speicherbereich. Wenn eine DUE berichtet wird, die ein allgemeines Register während der Ausführung der Routine beeinflusst, ist die Feststellung, ob der DUE auftrat, bevor, oder nachdem die Routine begann, allgemeine Register zu verwenden, nützlich, um die Notwendigkeit, einen Systemabbruch zu erzeugen, auf eine Situation zu begrenzen, in der das allgemeine Register nur beeinflusst wurde, nachdem die Routine begann, das Register zu verwenden.
  • 4 bildet eine Verarbeitung innerhalb einer Fehlerbehandlungsroutine ab, die dazu ausgelegt ist, einen zweiten DUE Fehler zu detektieren, der nach dem DUE Fehler aufgetreten ist, der derzeit behandelt wird, und weiterhin, um festzustellen, ob dieser Fehler die Ausführung der Routine wahrscheinlich beeinflussen wird. In der Figur beginnt die Routine, nachdem sie als Antwort auf einen ersten DUE 405 aufgerufen wurde, mit einem Schritt, der alle Allzweckregister (GRs), die von ihm verwenden werden können, sichert, 410. Die Routine prüft dann das allgemeine Register Hardware Fehlerprotokoll, 415, um zu sehen, ob irgendwelche DUEs nach dem ersten DUE von der Hardware mit einem Flag versehen wurden. Wenn die Hardware anzeigt, dass ein DUE mit Flag versehen wurde, 420, ist es ein DUE, der den unterbrochenen Prozeß beeinträchtigt. Die Routine speichert die allgemeine Register DUE Information zur späteren Handhabung 425, löscht die GR Fehlerliste 430, und löscht dann die allgemeinen Register, und verwendet sie, 445. Nach Verwendung der allgemein Register, und Abschluss der Handhabung des ersten DUE prüft die Routine dann wieder die allgemeine Register-Fehlerliste 450. Wenn in diesem Zustand ein Fehler, 455, gefunden wird, dann ist es sehr wahrscheinlich, dass ein Fehler, der die Richtigkeit der Fehlerbehandlungsroutine beeinträchtigt, aufgetreten ist, und ein Systemabbruchverfahren eingeleitet werden kann, 435. Ansonsten kann der Handler dann normal abschliessen, 440.
  • Während bestimmte beispielhafte Ausführungsformen oben beschrieben wurden, und in den beigefügten Zeichnungen gezeigt werden, ist festzuhalten, dass solche Ausführungsformen für die breiten Aspekte von verschiedenen Ausführungsformen der Erfindung lediglich beschreibend, aber nicht einschränkend sind, und dass diese Ausführungsformen nicht auf die spezifischen Auslegungen und Anordnungen beschränkt sein sollen, die hier gezeigt und beschrieben werden, da verschiedene andere Modifikationen möglich sind. Es kann möglich sein, die Ausführungsformen, oder einige ihrer Merkmale in Hardware, programmierbaren Vorrichtungen, Firmware, Software, oder einer Kombination daraus auszuführen.
  • Ausführungsformen können als Computer Programm Produkt zur Verfügung gestellt werden, das ein maschinenlesbares Medium enthalten kann, welches darauf gespeicherte Daten aufweist, welche, wenn auf sie von einer Maschine zugegriffen wird, die Maschine veranlassen können, ein Verfahren gemäss dem in Anspruch genommen Gegenstand auszuführen. Das maschinenlesbare Medium kann enthalten, ist aber nicht beschränkt auf: Floppy Disketten, optische Platten, DVD-ROM Platten, DVD-RAM Platten, DVD-RW Platten, DVD+RW Platten, CD-R Platten, CD-RW Platten, CD-ROM Platten, und magneto-optische Platten, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Flash Memory, oder andere Typen von Medien/maschinenlesbaren Medien, die zum Speichern von elektronischen Befehlen geeignet sind. Weiterhin können Ausführungsformen auch als ein Computer Programm Produkt heruntergeladen werden, wobei das Programm von einem entfernten Computer auf einen anfragenden Computer durch Datensignale übertragen werden kann, die in einer Trägerwelle, oder in einem anderen Verbreitungsmedium über eine Kommunikationsverbindung, z.B. eine Modem- oder eine Netzverbindung, übertragen werden.
  • Viele der Methoden werden in ihrer Grundform beschrieben, jedoch können in jedem der Verfahren Schritte hinzugefügt oder gelöscht werden, und Informationen können von jeder der beschrieben Nachrichten hinzugefügt, oder abgezogen werden, ohne vom grundlegenden Umfang des beanspruchten Gegenstands abzuweichen. Fachleuten wird klar sein, dass viele weitere Modifikationen und Anpassungen durchgeführt werden können. Die einzelnen Ausführungsformen sind nicht zur Beschränkung, sondern zur beispielhaften Darstellung der Erfindung angeführt. Der Umfang des beanspruchten Gegenstands wird nicht von den spezifischen, oben dargelegten Beispielen festgelegt, sondern nur von den folgenden Ansprüchen.
  • Zusammenfassung
  • Fehlerbehandlungsroutine eines Prozessors, die als Antwort auf einen ersten detektierten, nicht behebbaren Fehler (DUE) des Prozessors, als Antwort auf eine Anzeige, dass ein zweiter DUE aufgetreten ist, durch Auswerten der Auswirkung des zweiten DUE auf die Richtigkeit der Fehlerbehandlungsroutine abläuft.

Claims (27)

  1. Verfahren umfassend: in einer Fehlerbehandlungsroutine eines Prozessors, Ausführen als Antwort auf einen ersten erkannten nicht behebbaren Fehler (DUE) des Prozessors, Antworten auf eine Anzeige, dass ein zweiter DUE aufgetreten ist, durch Auswerten eines oder mehrere Effekte des zweiten DUE auf die Richtigkeit der Fehlerbehandlungsroutine.
  2. Verfahren nach Anspruch 1, weiterhin umfassend, Feststellen ob der zweite DUE in einer Ressource auftrat, die von der Fehlerbehandlungsroutine verwendet wurde; und ob die Anzeige, dass der zweite DUE aufgetreten ist, vor Beendigung der Fehlerbehandlungsroutine ausgeführt wurde.
  3. Verfahren nach Anspruch 2, wobei die Anzeige, die anzeigt, dass die zweite DUE in einer Ressource aufgetreten ist, die von der Fehlerbehandlungsroutine verwendet wurde, ein gesetztes Fehlerstatus Flag des Prozessors umfasst.
  4. Verfahren nach Anspruch 3, weiterhin umfassend, Detektieren eines Zustands, in dem das Fehlerstatus Flag des Prozessors und ein Flag, das eine Aktivierung der Fehlerbehandlungsroutine anzeigt, beide gesetzt sind.
  5. Verfahren nach Anspruch 4, wobei die Ressource, die von der Fehlerbehandlungsroutine verwendet wird, ein Allzweckregister des Prozessors umfasst.
  6. Verfahren nach Anspruch 1, weiterhin umfassend: die Fehlerbehandlungsroutine speichert die Inhalte einer Gruppe von Allzweckregistern des Prozessors in einen vorläufigen Speicher; nach Speichern der Inhalte der Gruppe von Allzweckspeichern löscht die Fehlerbehandlungsroutine eine Fehlerliste des Allzweckregisters, die einen DUE in dem Allzweckregister des Prozessors aufzeichnen soll.
  7. Verfahren nach Anspruch 1, weiterhin umfassend, Setzen einer Systemabbruchausnahme, wenn die Auswertung feststellt, dass der zweite DUE einen Einfluss auf die Richtigkeit der Fehlerbehandlungsroutine hat, und ansonsten Setzen einer Prozessabbruchausnahme.
  8. Verfahren nach Anspruch 4, weiterhin umfassend, Setzen einer Systemabbruchausnahme, wenn ein Zustand, in dem sowohl das Fehlerstatus Flag des Prozessors und ein Flag, welches die Aktivierung der Fehlerbehandlungsroutine anzeigt, beide gesetzt sind, detektiert wird, und Setzen einer Prozessabbruchausnahme anderenfalls.
  9. Verfahren nach Anspruch 6, weiterhin umfassend, Setzen einer Systemabbruchausnahme, wenn das Allzweckregister Fehlerflag während dem verbleibenden Betrieb der Fehlerbehandlungsroutine gesetzt wird, und Setzen einer Prozessabbruchausnahme anderenfalls.
  10. Prozessor umfassend: ein Fehlerdetektionssystem, um einen ersten detektierten nicht behebbaren Fehler (DUE) in einer Ressource des Prozessors zu detektieren; und Logik, um eine Fehlerbehandlungsroutine als Antwort auf den ersten DUE auszuführen, und auf eine Anzeige von dem Fehlerdetektionssystem zu antworten, dass ein zweiter DUE aufgetreten ist, durch Auswerten der Auswirkung des zweiten DUE auf die Richtigkeit der Fehlerbehandlungsroutine.
  11. Prozessor nach Anspruch 10, wobei die Fehlerbehandlungsroutine weiter bestimmen soll, ob der zweite DUE in einer Prozessor Ressource auftrat, die von der Fehlerbehandlungsroutine verwendet wurde; und ob die Anzeige, dass der zweite DUE aufgetreten ist, vor einer Beendigung der Fehlerbehandlungsroutine gemacht wurde.
  12. Prozessor nach Anspruch 11, wobei die Anzeige, welche anzeigt dass der zweite DUE in einer Ressource aufgetreten ist, die von der Fehlerbehandlungsroutine verwendet wird, ein gesetztes Fehlerstatus Flag des Prozessors umfasst.
  13. Prozessor nach Anspruch 12, weiterhin umfassend eine Logik, um einen Zustand zu detektieren, in dem das Fehlerstatus Flag des Prozessors, und ein Flag, welches die Aktivierung der Fehlerbehandlungsroutine anzeigt, beide gesetzt sind.
  14. Prozessor nach Anspruch 13, wobei die Ressource, welche von der Fehlerbehandlungsroutine verwendet wird, ein Allzweckregister des Prozessors umfasst.
  15. Prozessor nach Anspruch 10, wobei die Fehlerbehandlungsroutine weiterhin die Inhalte einer Gruppe von Allzweckregistern des Prozessors in einem vorläufigen Speicher speichern soll; nach Speichern der Inhalte der Gruppe von Allzweckspeichern die Fehlerbehandlungsroutine weiterhin eine Allzweckregister Fehlerliste löschen soll, die einen DUE in den Allzweckregistern des Prozessors aufzeichnen soll.
  16. Prozessor nach Anspruch 10, wobei die Fehlerbehandlungsroutine weiterhin eine Systemabbruchausnahme setzen soll, wenn die Auswertung feststellt, dass der zweite DUE einen Effekt auf die Richtigkeit der Fehlerbehandlungsroutine gehabt hat, und anderenfalls Setzen einer Prozessabbruchausnahme.
  17. Prozessor nach Anspruch 13, wobei die Fehlerbehandlungsroutine weiterhin eine Systemabbruchausnahme setzen soll, wenn ein Zustand detektiert wird, in welchem das Fehlerstatus Flag des Prozessors, und ein Flag, welches die Aktivierung einer Fehlerbehandlungsroutine anzeigt, beide gesetzt sind, und anderenfalls Setzen einer Prozessabbruchausnahme.
  18. Prozessor nach Anspruch 15, weiterhin umfassend Logik, um eine Systemabbruchausnahme zu setzen, wenn das Allzweckregister Fehler Flag während des verbleibenden Betriebs der Fehlerbehandlungsroutine gesetzt wird, und anderenfalls Setzen einer Prozessabbruchausnahme.
  19. Maschinenlesbares Medium, darauf gespeicherte Daten aufweisend, welche, wenn auf sie von einer Maschine zugegriffen wird, die Maschine dazu veranlassen, ein Verfahren auszuführen, wobei das Verfahren umfasst: eine Fehlerbehandlungsroutine eines Prozessors, die als Antwort auf einen ersten detektierten nicht behebbaren Fehler (DUE) des Prozessors abläuft, auf eine Anzeige, dass ein zweiter DUE aufgetreten ist, durch Auswerten der Auswirkung der zweiten DUE auf die Richtigkeit der Fehlerbehandlungsroutine reagiert.
  20. Maschinenlesbares Medium nach Anspruch 19, wobei das Verfahren weiterhin umfasst: die Fehlerbehandlungsroutine speichert die Inhalte einer Gruppe von Allzweckregistern des Prozessors in einem vorläufigen Speicher; nach Speichern der Inhalte der Gruppe von Allzweckregistern löscht die Fehlerbehandlungsroutine eine Fehlerliste des Allzweckregisters, die einen DUE in den Allzweckregistern des Prozessors aufzeichnen soll.
  21. Maschinenlesbares Medium nach Anspruch 20, wobei das Verfahren weiterhin umfasst, Setzen einer Systemabbruchausnahme, wenn das Fehler Flag des Allzweckregisters während des verbleibenden Betriebs der Fehlerbehandlungsroutine gesetzt wird, und anderenfalls Setzen einer Prozessabbruchausnahme.
  22. System umfassend einen Prozessor, der Prozessor umfassend: ein Fehlerdetektionssystem, um einen ersten detektierten, nicht behebbaren Fehler (DUE) in einer Ressource des Prozessors zu detektieren; und Logik, um eine Fehlerbehandlungsroutine als Antwort auf den ersten DUE auszuführen, und auf eine Anzeige von dem Fehlerdetektionssystem zu antworten, dass ein zweiter DUE aufgetreten ist, durch Auswerten der Auswirkung des zweiten DUE auf die Korrektheit der Fehlerbehandlungsroutine.
  23. System nach Anspruch 22, wobei die Fehlerbehandlungsroutine weiterhin bestimmen soll, ob der zweite DUE in einer Prozessor Ressource aufgetreten ist, die von der Fehlerbehandlungsroutine verwendet wird; und ob die Anzeige, dass der zweite DUE aufgetreten ist, vor der Beendigung der Fehlerbehandlungsroutine gemacht wurde.
  24. System nach Anspruch 23, wobei die Anzeige, welche anzeigt, dass der zweite DUE in einer Ressource, die von der Fehlerbehandlungsroutine verwendet wird, aufgetreten ist, ein gesetztes Fehlerstatus Flag des Prozessors umfasst.
  25. System nach Anspruch 24, wobei der Prozessor weiterhin Logik umfasst, um einen Zustand zu detektieren, in dem das Fehler Status Flag des Prozessors, und ein Flag, welches die Aktivierung der Fehlerbehandlungsroutine anzeigt, beide gesetzt sind.
  26. System nach Anspruch 25, wobei die Ressource, die von der Fehlerbehandlungsroutine verwendet wird, ein Allzweckregister des Prozessors ist.
  27. Prozessor nach Anspruch 25, wobei die Fehlerbehandlungsroutine weiterhin eine Systemabbruchausnahme setzen soll, wenn ein Zustand, in dem das Fehlerstatus Flag des Prozessors, und ein Flag, welches die Aktivierung der Fehlerbehandlungsroutine anzeigt, beide gesetzt sind, detektiert wird, und anderenfalls Setzen einer Prozessabbruchausnahme.
DE112005002975T 2004-12-14 2005-12-09 Verfahren zur Behandlung während der Ausführung einer Fehlerbehandlungsroutine auftretender Fehler Withdrawn DE112005002975T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/012,979 US7370231B2 (en) 2004-12-14 2004-12-14 Method of handling errors
US11/012,979 2004-12-14
PCT/US2005/044770 WO2006065687A1 (en) 2004-12-14 2005-12-09 Method of handling errors occuring during the execution of an error handler

Publications (1)

Publication Number Publication Date
DE112005002975T5 true DE112005002975T5 (de) 2007-10-31

Family

ID=36215712

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005002975T Withdrawn DE112005002975T5 (de) 2004-12-14 2005-12-09 Verfahren zur Behandlung während der Ausführung einer Fehlerbehandlungsroutine auftretender Fehler

Country Status (6)

Country Link
US (1) US7370231B2 (de)
JP (1) JP4866366B2 (de)
CN (1) CN100501686C (de)
DE (1) DE112005002975T5 (de)
TW (1) TWI310495B (de)
WO (1) WO2006065687A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353433B2 (en) * 2003-12-08 2008-04-01 Intel Corporation Poisoned error signaling for proactive OS recovery
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US20070250755A1 (en) * 2006-03-29 2007-10-25 Wayne Burleson Dormant error checker
US8127277B2 (en) 2007-05-21 2012-02-28 International Business Machines Corporation Framework for conditionally executing code in an application using conditions in the framework and in the application
WO2014142852A1 (en) 2013-03-13 2014-09-18 Intel Corporation Vulnerability estimation for cache memory
US20160110277A1 (en) * 2014-10-16 2016-04-21 Siemens Aktiengesellshaft Method for Computer-Aided Analysis of an Automation System
US11341012B2 (en) * 2020-05-14 2022-05-24 EMC IP Holding Company LLC Test platform employing test-independent fault insertion

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4438494A (en) * 1981-08-25 1984-03-20 Intel Corporation Apparatus of fault-handling in a multiprocessing system
EP0473806A1 (de) 1990-09-03 1992-03-11 International Business Machines Corporation Vorrichtung und Verfahren zur Fehlererkennung und -isolierung
US6691250B1 (en) * 2000-06-29 2004-02-10 Cisco Technology, Inc. Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems
DE10135285B4 (de) * 2001-07-19 2005-08-04 Infineon Technologies Ag Speichereinrichtung und Verfahren zum Betreiben eines eine Speichereinrichtung enthaltenden Systems
US6948094B2 (en) * 2001-09-28 2005-09-20 Intel Corporation Method of correcting a machine check error
JP2004021936A (ja) * 2002-06-20 2004-01-22 Hitachi Ltd 情報処理装置の障害処理方法および情報処理装置
US7555703B2 (en) * 2004-06-17 2009-06-30 Intel Corporation Method and apparatus for reducing false error detection in a microprocessor
US7373558B2 (en) * 2004-09-23 2008-05-13 Intel Corporation Vectoring process-kill errors to an application program

Also Published As

Publication number Publication date
CN101076786A (zh) 2007-11-21
JP4866366B2 (ja) 2012-02-01
WO2006065687A1 (en) 2006-06-22
US20060156153A1 (en) 2006-07-13
TW200634505A (en) 2006-10-01
JP2008523513A (ja) 2008-07-03
US7370231B2 (en) 2008-05-06
TWI310495B (en) 2009-06-01
CN100501686C (zh) 2009-06-17

Similar Documents

Publication Publication Date Title
US7617074B2 (en) Suppressing repeated events and storing diagnostic information
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE69801744T2 (de) Verfahren und system zur fehlerisolierung für pci-busfehler
DE102012109614B4 (de) Verfahren zum Wiederherstellen von Stapelüberlauf- oder Stapelunterlauffehlern in einer Softwareanwendung
DE68924223T2 (de) Mechanismus zum Prüfpunktwiederversuch.
DE69026743T2 (de) Fehlertolerantes Speichersystem
DE69219657T2 (de) Fortsetzung der Aufgabe eines fehlerhaften Prozessors von einem alternativen Prozessor
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
EP1667022A2 (de) Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten
EP2901281B1 (de) Benachrichtigung über adressbereiche mit nicht korrigierbaren fehlern
US20080276129A1 (en) Software tracing
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
DE102018124628A1 (de) System, Gerät und Verfahren zum funktionellen Testen eines oder mehrerer Gefüge eines Prozessors
DE112005001338T5 (de) Verfahren und Vorrichtung zur Reduzierung falscher Fehlererkennung in einem Mikroprozessor
DE112005002975T5 (de) Verfahren zur Behandlung während der Ausführung einer Fehlerbehandlungsroutine auftretender Fehler
JP5623557B2 (ja) 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム
US8489938B2 (en) Diagnostic data capture in a computing environment
DE69029164T2 (de) Vorrichtung und Verfahren zum Ersetzen der Parität
DE102006035610A1 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
DE102023201815A1 (de) Verfahren zum Testen eines Computerprogramms
DE102006004168A1 (de) Überprüfung eines Adressdecoders
DE102014114157A1 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
CN115473784B (zh) 一种确定无效告警的方法及装置
DE102023202348A1 (de) Verfahren zum Testen eines Computerprogramms
DE102018123921A1 (de) Techniken zum Verhindern von Speicherkorruption

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