DE112013002054T5 - Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren - Google Patents

Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren Download PDF

Info

Publication number
DE112013002054T5
DE112013002054T5 DE112013002054.8T DE112013002054T DE112013002054T5 DE 112013002054 T5 DE112013002054 T5 DE 112013002054T5 DE 112013002054 T DE112013002054 T DE 112013002054T DE 112013002054 T5 DE112013002054 T5 DE 112013002054T5
Authority
DE
Germany
Prior art keywords
instruction
resources
processor
hardware
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112013002054.8T
Other languages
English (en)
Inventor
IBM Corporation Krygowski Christopher Anthony
c/o IBM Corporation Prasky Brian Robert
c/o IBM Corporation Shum Chung-Lung Kevin
c/o IBM Corporation Carlough Steven
c/o IBM Corporation Busaba Fadi Yusuf
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112013002054T5 publication Critical patent/DE112013002054T5/de
Pending legal-status Critical Current

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein Computerprogrammprodukt zur Durchführung der Fehlerbehebung ist so konfiguriert, dass es ein Verfahren durchführt, welches das Erzeugen eines Wiederherstellungsprüfpunkts durch einen Prozessor beinhaltet. Auf der Grundlage des Erzeugens des Software-Wiederherstellungsprüfpunkts wird der Prozessor dynamisch in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus überführt. Der nicht wiederherstellbare Verarbeitungs-Betriebsmodus ist ein Modus, in dem eine Teilgruppe von Hardware-Fehlerbehebungsressourcen ausgeschaltet oder für den neuen Zweck der Instruktionsverarbeitung verwendet wird. Während des nicht wiederherstellbaren Verarbeitungs-Betriebsmodus wird festgestellt, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist. Auf der Grundlage des Feststellens, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, wird der Prozessor dynamisch in einen wiederherstellbaren Verarbeitungs-Betriebsmodus überführt. Der wiederherstellbare Verarbeitungs-Betriebsmodus ist ein Modus, in dem Hardware-Fehlerbehebungsressourcen, einschließlich mindestens einer der Hardware-Fehlerbehebungsressourcen in der Teilgruppe, für Hardware-Fehlerbehebungsoperationen bestimmt sind.

Description

  • Hintergrund
  • Die vorliegende Erfindung betrifft die Fehlerbehebung in Hochverfügbarkeitsprozessoren und im Einzelnen betreffen beispielhafte Ausführungsformen der vorliegenden Erfindung Systeme zur Fehlerbehebung und Verfahren zur Instruktionsverarbeitung für Hochverfügbarkeitsprozessoren sowohl mit wiederherstellbarem als auch mit nicht wiederherstellbarem Betriebsmodus.
  • Datenverarbeitungssysteme mit hoher Verfügbarkeit setzen sowohl das Erkennen von Hardwarefehlern als auch Verfahren zum Beheben der erkannten Fehler und zum Vermeiden von falschen Ergebnissen voraus. Bei einem herkömmlichen Mikroprozessor, der die Fehlerbehebung unterstützt, sind die meisten Fehlerbehebungsoperationen hardwarespezifisch und in den Mikroprozessor selbst integriert. Folglich kann Software, die auf dem Mikroprozessor ausgeführt wird, ohne Unterbrechung ausgeführt werden, ohne dass Störungen oder Meldungen, die von transienten Hardwarefehlern in der Hardware des Mikroprozessors herrühren, auftreten beziehungsweise erfolgen.
  • Diese in Mikroprozessoren realisierten herkömmlichen Fehlerbehebungsmechanismen verwerfen üblicherweise Instruktionen, die durch fehlerhafte Schaltungen tatsächlich verarbeitet oder möglicherweise verarbeitet werden, während sie Ergebnisse von zeitlich älteren Instruktionen, die verarbeitet werden, bevor ein Fehler erkannt wird, behalten. Um zu unterscheiden, ob Ergebnisse von Instruktionen möglicherweise fehlerhaft oder nicht fehlerhaft sind, müssen Ergebnisse zwischengespeichert und/oder zurückgehalten werden, bis zugehörige Ergebnisse mit möglicherweise fehlerhaften Zuständen verglichen werden, bevor diese Instruktionen (und ihre Ergebnisse) als nicht fehlerhaft festgeschrieben werden. Wenn ein fehlerhafter Zustand erkannt wird, müssen diese möglicherweise fehlerhaften Ergebnisse rückgängig gemacht werden, und jede betroffene Instruktion wird verworfen und später neu ausgegeben.
  • Um die vorstehend beschriebenen Funktionen zu erzielen, sind zusätzliche Pipeline-Ressourcen notwendig, um Ergebnisse von Instruktionen zwischenzuspeichern, bis keine Fehler erkannt werden. Da Instruktionen aus einem fehlerfreien Architekturzustand außer Kraft gesetzt werden müssen, müssen zudem entsprechende Zustände (architekturbezogene und manchmal nicht architekturbezogene) verwaltet werden (z. B. durch Prüfpunkte). Durch eine solche Zwischenspeicherung, Verwaltung und das Setzen von Prüfpunkten nimmt die gesamte notwendige Schaltlogik zu oder aber die verfügbaren Nettoressourcen nehmen ab, die für die Instruktionsverarbeitung in herkömmlichen Mikroprozessoren, die die Fehlerbehebung unterstützen, zur Verfügung stehen.
  • Kurzdarstellung der Erfindung
  • Gemäß beispielhaften Ausführungsformen der vorliegenden Erfindung wird ein Computerprogrammprodukt, ein System und ein Verfahren zur Durchführung der Fehlerbehebung vorgestellt. Ein Software-Wiederherstellungsprüfpunkt wird von einem Prozessor erzeugt. Auf der Grundlage des Erzeugens des Software-Wiederherstellungsprüfpunkts wird der Prozessor dynamisch in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus überführt. Der nicht wiederherstellbare Verarbeitungs-Betriebsmodus ist ein Modus, in dem eine Teilgruppe von Hardware-Fehlerbehebungsressourcen ausgeschaltet oder für den neuen Zweck der Instruktionsverarbeitung verwendet wird. Während des nicht wiederherstellbaren Verarbeitungs-Betriebsmodus wird festgestellt, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist. Auf der Grundlage des Feststellens, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, wird der Prozessor dynamisch in einen wiederherstellbaren Verarbeitungs-Betriebsmodus überführt. Der wiederherstellbare Verarbeitungs-Betriebsmodus ist ein Modus, in dem Hardware-Fehlerbehebungsressourcen, einschließlich mindestens einer der Hardware-Fehlerbehebungsressourcen in der Teilgruppe, für Hardware-Fehlerbehebungsoperationen bestimmt sind.
  • Zusätzliche Merkmale und Vorteile werden durch die Methoden der vorliegenden Erfindung realisiert. Weitere Ausführungsformen und Aspekte der Erfindung werden hier ausführlich beschrieben und als Teil der beanspruchten Erfindung betrachtet. Um die Erfindung mit den Vorteilen und den Merkmalen besser verstehen zu können, sei auf die Beschreibung und die Zeichnungen verwiesen.
  • Kurze Beschreibung der diversen Ansichten der Zeichnungen
  • Der als Erfindung betrachtete Gegenstand ist in den Ansprüchen am Ende der Beschreibung im Einzelnen dargelegt und eindeutig beansprucht. Die vorstehenden und andere Merkmale und Vorteile der Erfindung gehen aus der folgenden ausführlichen Beschreibung, in Verbindung mit den beiliegenden Zeichnungen betrachtet, hervor, bei denen:
  • 1 eine schematische Darstellung eines Computerprozessors mit hoher Verfügbarkeit im wiederherstellbaren Modus gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung zeigt;
  • 2 eine schematische Darstellung eines Computerprozessors mit hoher Verfügbarkeit im nicht wiederherstellbaren Modus gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 einen Ablaufplan eines Verfahrens zum Verarbeiten von Instruktionen in einem Computerprozessor mit hoher Verfügbarkeit und Unterstützung des nicht wiederherstellbaren Modus gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung zeigt;
  • 4 ein von einem Computer nutzbares Speichermedium gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung zeigt; und
  • 5 eine schematische Darstellung einer Datenverarbeitungsvorrichtung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung zeigt.
  • Ausführliche Beschreibung
  • Gemäß beispielhaften Ausführungsformen der vorliegenden Erfindung werden ein Computerprozessor mit hoher Verfügbarkeit und ein Verfahren zum Verarbeiten von Instruktionen auf einem Hochverfügbarkeitsprozessor bereitgestellt, welche den Umfang der für die Instruktionsausführung zur Verfügung stehenden Ressourcen durch dynamische Änderungen an Fehlerbehebungssystemen vergrößern, welche dem Prozessor zur Verfügung stehen. Gemäß mindestens einer beispielhaften Ausführungsform kann ein Computerprozessor mit hoher Verfügbarkeit beispielsweise dynamisch von einem vollständig wiederherstellbaren Modus in eine Form eines nicht wiederherstellbaren Modus wechseln, der Ressourcen (z. B. Register, Pufferspeicher usw.), die üblicherweise für die Fehlerbehebung verwendet werden, für andere Operationen freigeben kann. Beim Arbeiten in einem nicht wiederherstellbaren Modus können die freigegebenen Ressourcen im Vergleich mit anderen Computerprozessoren (d. h. Prozessoren mit nur wiederherstellbaren Modi) folglich eine höhere Datenverarbeitungsleistung ermöglichen, während sie nach wie vor einen annehmbaren Grad der Fehlerbehebung zulassen, die nicht durch kostspielige hardwarespezifische Prüfpunkte, sondern vielmehr durch Prüfpunkte, die von Software erzeugt werden, aktiviert wird.
  • Ein Hardwaremechanismus kann zum Beispiel so von Software aktiviert werden, dass sich der Prozessor dynamisch selbst konfiguriert, um in einem der beiden Modi ausgeführt zu werden. Während sich die Software in einem nicht wiederherstellbaren Betriebsmodus befindet, kann sie einen groben Wiederherstellungsmechanismus bereitstellen, und sie kann Fehler mit Hilfe von softwarebasierten Prüfpunktschemata beheben und dabei dasselbe Maß an Fehlerbehebung ermöglichen, während sie ebenfalls über freigegebene Ressourcen von nicht in Anspruch genommenen Hardware-Fehlerbehebungsressourcen verfügt. Folglich kann eine Anwendung (oder ein Code-Abschnitt) den Prozessor anweisen, in einen nicht wiederherstellbaren Modus einzutreten und nur benachrichtigt zu werden, wenn ein Fehler erkannt wird. Andernfalls kann der Prozessor in seinem wiederherstellbaren Modus bleiben (oder in seinen wiederherstellbaren Modus zurückgeführt werden).
  • Ein nicht wiederherstellbarer Prozessorzustand hat mehrere Vorteile. Die zusätzlichen Ressourcen, die erforderlich sind, um einen bisher als gut bekannten Prüfpunktzustand zu sichern, können für produktive Arbeiten zugeordnet werden. Temporäre Zwischenspeicherungszustände können ebenfalls verringert werden. Wenn zum Beispiel ein Teil eines physischen Registerpools dem Setzen von Hardware-Prüfpunkten zugeordnet ist, können diese Register stattdessen nun für eine spekulative Verarbeitung genutzt werden. Außerdem kann gestattet werden, dass eine zusätzliche spekulative Verarbeitung vorzeitig abgeschlossen wird, bevor alle Fehler erfasst sind und ein Prüfpunkt gesetzt wird. Ergebnisse können festgeschrieben werden, bevor das Setzen von Prüfpunkten von der Hardware durchgeführt wird, was in einem nicht wiederherstellbaren Modus nicht mehr erforderlich ist. Sobald durch Software aktivierte Fehlerbehebungsoperationen einen neuen Software-Prüfpunkt erforderlich machen, kann der Prozessor daraufhin angewiesen werden, wieder in einen wiederherstellbaren Betriebsmodus zu wechseln, so dass die Fehlerbehebung durch Hardware vereinfacht wird, während die Software einen neuen Prüfpunkt erzeugt. Anschließend kann der Prozessor in einen nicht wiederherstellbaren Modus mit neu freigegebenen Ressourcen zurückkehren.
  • Gemäß weiteren beispielhaften Ausführungsformen der vorliegenden Erfindung werden ein Computerprozessor mit hoher Verfügbarkeit und ein Verfahren zum Verarbeiten von Instruktionen auf einem Hochverfügbarkeitsprozessor bereitgestellt, die den Stromverbrauch durch dynamische Änderungen an Fehlerbehebungssystemen verringern, welche dem Prozessor zur Verfügung stehen. Gemäß mindestens einer beispielhaften Ausführungsform kann ein Computerprozessor mit hoher Verfügbarkeit beispielsweise dynamisch von einem vollständig wiederherstellbaren Modus in eine Form eines nicht wiederherstellbaren Modus wechseln, der Ressourcen (z. B. Register, Pufferspeicher usw.), die üblicherweise für die Fehlerbehebung verwendet werden, für andere Operationen freigeben und ausschalten kann. Beim Arbeiten in einem nicht wiederherstellbaren Modus tragen die ausgeschalteten Ressourcen folglich nicht zum gesamten Stromverbrauch bei, während sie nach wie vor einen annehmbaren Grad der Fehlerbehebung zulassen, die nicht durch kostspielige hardwarespezifische Prüfpunkte, sondern vielmehr durch Prüfpunkte, die von Software erzeugt werden, aktiviert wird.
  • Darüber hinaus können die vorstehend erwähnten beispielhaften Ausführungsformen so in Kombination realisiert werden, dass ein Teil der freigegebenen Ressourcen ausgeschaltet wird, während ein anderer Teil der freigegebenen Ressourcen für einen anderen als den ursprünglich vorgesehenen Zweck verwendet wird. Auf diese Weise kann eine Vielzahl von Betriebszuständen zutage treten, in denen im Gegensatz zu vorhandenen Technologien mehrere Vorteile bei der Datenverarbeitung realisiert werden.
  • Wenden wir uns nun 1 zu, in der ein Computerprozessor mit hoher Verfügbarkeit gemäß einer beispielhaften Ausführungsform gezeigt ist. Wie gezeigt ist, enthält der Prozessor 100 einen Cachespeicher 101 (z. B. einen Daten- und Instruktionscachespeicher), der in eine Vielzahl von verschiedenen Cachespeicher-Stufen oder -Bezeichnungen unterteilt werden kann. Der Prozessor 100 enthält des Weiteren eine Instruktionsabrufschaltung 102, die so konfiguriert ist, dass sie Instruktionen aus dem Cachespeicher 101 abruft. Der Prozessor 100 enthält ferner eine Instruktionsdecodierschaltung 103, die so konfiguriert ist, dass sie abgerufene Instruktionen von der Instruktionsabrufschaltung 102 empfängt. Der Prozessor 100 enthält darüber hinaus eine Instruktionszuteilungsschaltung 104, die so konfiguriert ist, dass sie durch die Schaltung 103 decodierte Instruktionen zuteilt. Nach der Zuteilung werden die Instruktionen ausgegeben und durch den Instruktionsausführungsteil 105 ausgeführt, der des Weiteren so konfiguriert ist, dass er zugehörige Daten aus dem Cachespeicher 101 abruft. Es wird davon ausgegangen, dass die detaillierte Abwicklung der Außer-der-Reihe-Instruktionsausführung und -unterstützung hauptsächlich in den Schaltungen 105 durchgeführt wird.
  • Wie vorstehend beschrieben wurde, enthält der Prozessor 100 folglich relativ gebräuchliche und allgemeine Teile, die erwartungsgemäß funktionieren. Diese Teile können für reduzierte oder komplexe Instruktionssätze (z. B. RISC oder CISC) oder für ganz spezielle Instruktionssätze entsprechend jeder gewünschten Umsetzung von beispielhaften Ausführungsformen konfiguriert werden. Daher sollte der Prozessor 100 nicht auf einen bestimmten Computerprozessor beschränkt werden, sondern gleichermaßen für jeden beliebigen Computerprozessor gelten, der etwas ähnliche oder gleichwertige Komponenten enthält.
  • Wenden wir uns nochmals 1 zu. Der Prozessor 100 enthält des Weiteren Fehlerbehebungsressourcen 106, die mit dem Cachespeicher 101 und dem Instruktionsausführungsteil 105 Daten austauschen. Die Fehlerbehebungsressourcen 106 können Fehlerbehebungskomponenten einschließen, die Warteschlangen, Pufferspeicher, Thread-Verarbeitungseinheiten, Register und beliebige andere geeignete Komponenten aufweisen. Die Fehlerbehebungsressourcen 106 können Instruktionen und Ergebnisse zur Vereinfachung der Fehlerbehebung verarbeiten, erzeugen und speichern. Darüber hinaus können die Fehlerbehebungsressourcen 106 Hardwarefehler erkennen, Prüfpunkte erfassen und nach dem Erkennen von Fehlern eine Wiederholung von Prüfpunkten durchführen.
  • Wenden wir uns nochmals 1 zu. Der Prozessor 100 enthält des Weiteren Mehrzweckressourcen 107, die mit dem Instruktionsausführungsteil 105 und den Fehlerbehebungsressourcen 106 über den Kanal 108 Daten austauschen. Die Mehrzweckressourcen können Mehrzweckregister, Gleitkommaregister, Sonderregister oder beliebige andere geeignete Komponenten einschließen, um Ergebnisse von Instruktionen kontrolliert zu verarbeiten und zu speichern.
  • Zwar sind die Fehlerbehebungsressourcen 106 und die Mehrzweckressourcen 107 als einzelne Komponenten dargestellt, doch können diese Ressourcen in andere Komponenten 101, 102, 103, 104, 105 und andere Prozessorkomponenten verteilt werden, die nicht ausdrücklich gezeigt sind. Außerdem kann mittels der Fehlerbehebungsressourcen 106 und auch der Mehrzweckressourcen 107 eine Vielzahl von Threads auf dem Prozessor 100 ausgeführt werden.
  • Es sei angemerkt, dass die Fehlerbehebungsressourcen 106 und die Mehrzweckressourcen 107 zwar so konfiguriert sind, dass sie unterschiedliche Funktionen bereitstellen, die darin verwalteten zugehörigen Komponenten aber mindestens einen Teil von generell den gleichen oder ähnlichen Komponenten aufweisen. Beispielsweise können sowohl Register als auch Pufferspeicher zu den Fehlerbehebungsressourcen 106 und zu den Mehrzweckressourcen 107 zählen. Gemäß beispielhaften Ausführungsformen der vorliegenden Erfindung kann daher ein Teil der Fehlerbehebungsressourcen freigegeben, ausgeschaltet oder für einen anderen als den ursprünglich vorgesehenen Zweck verwendet werden, damit sie in mindestens einem neuen Betriebsmodus in Übereinstimmung mit den Mehrzweckressourcen funktionieren. Dies ist in 2 dargestellt.
  • Wie in 2 gezeigt ist, wird ein Teil der Fehlerbehebungsressourcen 106 freigegeben und wieder als die Ressourcen 206B verwendet, um eine Funktion entsprechend den Mehrzweckressourcen 107 zu übernehmen. Alternativ kann ein Teil der Ressourcen 206B oder alle Ressourcen 206B ausgeschaltet werden, um den Stromverbrauch zu verringern. Überdies kann ein verbleibender Teil der Fehlerbehebungsressourcen 206A weiterhin ausschließlich für die Fehlerbehebung vorgesehen und des Weiteren so konfiguriert werden, dass er die Ressourcen 206B freigibt, ausschaltet, für einen anderen als den ursprünglich vorgesehenen Zweck verwendet oder wieder einbindet, damit sie im Prozessor 100 entweder die Funktion von Fehlerbehebungsressourcen oder Mehrzweckressourcen übernehmen. Daraus folgt dann, dass, wenn zusätzliche Ressourcen zur Verwendung in der Instruktionsverarbeitung freigegeben werden, der Prozessor 100 schneller arbeiten kann, als wenn alle Fehlerbehebungsressourcen 106 ausschließlich für die Durchführung der Hardware-Fehlerbehebung vorgesehen werden. Wenn ein Teil der zusätzlichen Ressourcen ausgeschaltet wird, lassen sich überdies Stromeinsparungen realisieren. Es sei angemerkt, dass der Prozessor 100 nach wie vor Hardwarefehler erkennt und sie dem Betriebssystem oder dem Anwendungscode meldet. Die Prüfpunkterfassungs- und -wiederholungsmechanismen werden in der Hardware jedoch deaktiviert und stattdessen von Software durchgeführt.
  • Bei dieser Konfiguration ändert der Prozessor seine grundlegende Betriebsweise und ordnet weder Ressourcen für die Sicherung von Prüfpunkten zu noch zögert er die Instruktionsausführung oder -abarbeitung hinaus, die gegebenenfalls warten müssen, bis Prüfpunkte erzeugt und auf Gültigkeit geprüft werden. Eine derartige Konfigurationsänderung kann vorgenommen werden, indem die typischen Instruktionszuteilungs-/-ausgabe/-ausführungsregeln von Algorithmen für die Rangfolgeregelung, die Festlegung der Speicheraktualisierungsreihenfolge und der Registerzuordnung geändert werden. In solch einem nicht wiederherstellbaren Betriebsmodus können viele spezifische Leistungsverbesserungen und Stromeinsparungen bei der Instruktionsverarbeitung erzielt werden.
  • Gemäß beispielhaften Ausführungsformen der vorliegenden Erfindung wird darüber hinaus ein Verfahren zur Instruktionsverarbeitung bereitgestellt, das eine Vorlage für die Instruktionsverarbeitung vorsieht, die sowohl die Datenverarbeitungsleistung erhöht als auch gleichzeitig einen nützlichen Fehlerbehebungsmechanismus auf Systemebene beibehält, der Fehlerbehebungspflichten über die Software und die Hardware verteilt, um Systemressourcen wirksamer zu nutzen.
  • Bezug nehmend auf 3 ist ein Verfahren zur Instruktionsverarbeitung in einem Computerprozessor mit hoher Verfügbarkeit dargestellt. Das Verfahren 300 beinhaltet das Erzeugen eines Software-Prüfpunkts am Block 301. Das Erzeugen des Software-Prüfpunkts kann das Erzeugen eines softwarebasierten Fehlerbehebungsprüfpunkts einschließen, der sowohl eine Software-Fehlerbehebung als auch eine Hardware-Fehlerbehebung bei Instruktionen ermöglicht, die von einem Hochverfügbarkeitsprozessor ausgeführt werden.
  • Nach dem Erzeugen des Prüfpunkts beinhaltet das Verfahren 300 das am Block 302 erfolgende Anweisen des Computerprozessors mit hoher Verfügbarkeit, in einen nicht wiederherstellbaren Modus einzutreten oder mit der Verarbeitung in einem nicht wiederherstellbaren Modus zu beginnen. Folglich wechselt der Prozessor selbsttätig in den nicht wiederherstellbaren Modus, um an Leistungsfähigkeit zu gewinnen oder Stromeinsparungen zu erzielen. Das Anweisen des Prozessors kann das Einfügen einer Instruktion, wie zum Beispiel ”Starte nicht wiederherstellbaren Modus” in das Software-Programm beinhalten. Die Instruktion kann als ein einfacher Befehl, als Operationscode oder als eine Instruktion realisiert werden, die, wenn sie während des normalen Prozessorbetriebs abgerufen und decodiert wird, den Prozessor anweist, in den nicht wiederherstellbaren Betriebsmodus einzutreten. Eine solche Instruktion kann realisiert werden, um einen Datenwert in einem bestimmten Teil des Cache- oder Hauptspeichers speichern zu lassen, welcher nach dem Zugriff als Teil der Verarbeitung der Instruktion die Fehlerbehebungsressourcen 106 anweist, mindestens einen Teil der Ressourcen 206B freizugeben, auszuschalten oder für einen anderen als den ursprünglich vorgesehenen Zweck zu verwenden. Alternativ kann die Instruktion mit einem Satz von Bit-Flags oder anderen zusätzlichen von Software steuerbaren Anweisungen realisiert werden, um die Freigabe von Ressourcen direkter zu steuern. Nach der Ausführung der Instruktion versieht der Prozessor alle vorherigeninstruktionen mit einem Prüfpunkt und wechselt selbsttätig in ein neues Betriebsverfahren, um in einem leistungsorientierten Modus oder in einem Stromsparmodus zu arbeiten; und er unterstützt nicht länger die Fehlerbehebung mittels Hardware-Prüfpunkten. Danach kann der Prozessor 100 am Block 303 Instruktionen mittels der neu freigegebenen Ressourcen 206B und/oder der Mehrzweckressourcen 107 verarbeiten. Alternativ oder in Kombination kann der Prozessor Instruktionen mit den Mehrzweckressourcen 107 verarbeiten, während mindestens ein Teil der Ressourcen 206B ausgeschaltet ist. Wenn von den Fehlerbehebungsressourcen 206A am Block 304 ein Fehler erkannt wird, kann am Block 307 eine Markierung (Flag), ein Wert oder ein anderes Mittel zur Benachrichtigung gesetzt werden und am Block 308 können Instruktionen von der Software unter Verwendung ihres Software-Prüfpunkts wiederholt werden. Die Benachrichtigung kann erfolgen, indem der aktuelle Instruktionsstrom unterbrochen wird, und der Prozessor kann eine spezielle Unterbrechung in den Software-Code aufnehmen. Wenn die Unterbrechungsbehandlung nicht anwendbar oder nicht wünschenswert ist, kann der Prozessor alternativ an eine vorab festgelegte Instruktionsadresse springen. Eine solche Instruktionsadresse kann eine feste Stelle im Speicher sein oder sie kann zum Beispiel als eine Operandenadresse der Instruktion ”Starte nicht wiederherstellbaren Modus” angegeben werden. Andernfalls kann die Verarbeitung im nicht wiederherstellbaren Modus fortgesetzt werden, bis ein neuer Software-Prüfpunkt erforderlich ist. Diese Entscheidung wird für die softwarebasierte Fehlerbehebung getroffen (siehe beispielsweise Block 305).
  • Es dürfte sich verstehen, dass während des Betriebs im nicht wiederherstellbaren Modus alle Instruktionen, deren Zuteilungs-/Ausgaberegel es üblicherweise erforderlich macht (wenn sie zum Beispiel im wiederherstellbaren Modus ausgeführt werden), dass bei ihnen als Nächstes ein Prüfpunkt gesetzt wird, jetzt zu einem früheren Zeitpunkt ausgeführt werden können. Überdies können Ressourcen des physischen Registerpools (Mehrzweckregister/GPRs, Gleitkommaregister/FPRs, Bedingungscoderegister/CCRs usw.), die für eine hardwarebasierte Wiederholung von Prüfpunkten erforderlich gewesen und reserviert worden wären, jetzt für die Instruktionsverarbeitung zugeteilt werden. Auch können Aktualisierungen des Cachespeichers aufgrund von Speicheraktualisierungs-Instruktionen (wie z. B. bei einer einfachen Speicherinstruktion) ausgeführt werden, ohne auf das Setzen von Prüfpunkten durch Instruktionen zu warten. Auf diese Weise lässt sich eine höhere Verarbeitungsleistung realisieren.
  • Wenn die Software bereit ist, einen weiteren Prüfpunkt zu nehmen, was am Block 305 festgestellt wird, kann anschließend eine weitere spezielle Instruktion ausgegeben werden, um den Prozessor am Block 306 anzuweisen, in den wiederherstellbaren Modus einzutreten oder mit der Verarbeitung im wiederherstellbaren Modus zu beginnen. Folglich wechselt der Prozessor selbsttätig in den wiederherstellbaren Modus, um wieder die Unterstützung für eine mögliche hardwarespezifische Fehlerbehebung aufzunehmen. Das Anweisen des Prozessors kann das Ausgeben einer speziellen Instruktion wie zum Beispiel ”Beende den nicht wiederherstellbaren Modus” beinhalten. Die Instruktion kann als ein einfacher Befehl, als Operationscode oder als eine Instruktion realisiert werden, die, wenn sie während des normalen Prozessorbetriebs abgerufen und decodiert wird, den Prozessor anweist, in den wiederherstellbaren Betriebsmodus einzutreten. Eine solche Instruktion kann realisiert werden, um einen Datenwert in einem bestimmten Teil des Cache- oder Hauptspeichers speichern zu lassen, welcher nach dem Zugriff als Teil der Verarbeitung der Instruktion die für einen anderen als den ursprünglich vorgesehenen Zweck verwendeten und/oder ausgeschalteten Ressourcen 206B anweist, ihre Aufgabe als Fehlerbehebungsressourcen wahrzunehmen. Alternativ kann die Instruktion mit einem Satz von Bit-Flags oder anderen zusätzlichen von Software steuerbaren Anweisungen realisiert werden, um die Freigabe von Ressourcen direkter zu steuern. Nach der Ausführung der speziellen Instruktion kann der Prozessor prüfen, ob alle vorherigen Instruktionen abgearbeitet sind, und dann selbsttätig wieder in den wiederherstellbaren Modus wechseln; und wieder die Fehlerbehebung mittels Hardware-Prüfpunkten unterstützen, wie vorstehend beschrieben wurde.
  • Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt realisiert werden (wie z. B. in 4 dargestellt). Überdies können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts 400 annehmen, das auf einem oder mehreren von einem Computer lesbaren Datenträgern) 402 realisiert ist, auf dem beziehungsweise denen von einem Computer lesbarer Programmcode 404 realisiert ist.
  • Jede beliebige Kombination aus einem oder mehreren von einem Computer lesbaren Datenträgern kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das von einem Computer lesbare Speichermedium würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. In Zusammenhang mit diesem Schriftstück kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Instruktionsausführungssystem, eine Instruktionsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Instruktionsausführungssystem, einer Instruktionsausführungsvorrichtung oder -einheit enthalten oder speichern kann.
  • Ein von einem Computer lesbarer Signaldatenträger kann ein weitergegebenes Datensignal mit darin enthaltenem, von einem Computer lesbarem Programmcode, beispielsweise im Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein weitergegebenes Signal kann eine beliebige Form von vielfältigen Formen einschließlich elektromagnetischer, optischer Formen oder eine beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem von einem Computer lesbaren Signaldatenträger kann es sich um einen beliebigen von einem Computer lesbaren Datenträger handeln, der kein von einem Computer lesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Instruktionsausführungssystem, eine Instruktionsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Instruktionsausführungssystem, einer Instruktionsausführungsvorrichtung oder -einheit übertragen, weitergeben oder befördern kann.
  • Programmcode, der auf einem von einem Computer lesbaren Datenträger realisiert ist, kann mittels eines beliebigen geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw. oder mittels einer beliebigen geeigneten Kombination des Vorstehenden, ohne darauf beschränkt zu sein, übertragen werden.
  • Computerprogrammcode zur Durchführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache ”C” oder in ähnlichen Programmiersprachen geschrieben sein. Die Ausführung des Programmcodes kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server erfolgen. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden sein oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden nachstehend mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Instruktionen eines Computerprogramms realisiert werden können. Diese Instruktionen eines Computerprogramms können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Instruktionen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Diese Instruktionen eines Computerprogramms können auch auf einem von einem Computer lesbaren Datenträger gespeichert werden, der eine Datenverarbeitungsvorrichtung (wie beispielsweise in 5 gezeigt), eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem von einem Computer lesbaren Datenträger gespeicherten Instruktionen einen Herstellungsgegenstand erzeugen, der Instruktionen enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
  • Die Instruktionen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess so zu erzeugen, dass die Instruktionen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Wie oben erwähnt wurde, können die vorstehend beschriebenen methodischen Vorgehensweisen von einem Datenverarbeitungssystem oder einer Datenverarbeitungsvorrichtung umgesetzt werden. Beispielsweise zeigt 5 eine Datenverarbeitungsvorrichtung gemäß einer beispielhaften Ausführungsform. Daher können Teile oder die Gesamtheit der hier beschriebenen methodischen Vorgehensweisen als Instruktionen in einem Prozessor 502 des Datenverarbeitungssystems 500 ausgeführt werden. Zu dem Datenverarbeitungssystem 500 gehören ein Hauptspeicher 501 zur Speicherung von Instruktionen und Daten, die Eingabeeinheit(en) 503 für den Datenaustausch mit dem Computer und ein Bildschirm 504. Folglich kann die vorliegende Erfindung in Software, zum Beispiel als ein beliebiges geeignetes Computerprogramm auf einem Datenverarbeitungssystem, das dem Datenverarbeitungssystem 500 bis zu einem gewissen Grad ähnlich ist, realisiert werden.
  • Der Ablaufplan und die Blockschaubilder in den Figuren stellen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung dar. In dieser Hinsicht kann jeder Block in den Ablaufplänen oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der einen oder mehrere ausführbare Instruktionen zur Durchführung der angegebenen logischen Funktion(en) aufweist. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten mitunter in einer anderen als in der in den Figuren angegebenen Reihenfolge auftreten können. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaubilder und/oder der Darstellung in dem Ablaufplan sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in dem Ablaufplan von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Spezial-Hardware und Computer-Instruktionen ausgeführt werden können.
  • Die hier verwendete Terminologie dient lediglich zur Beschreibung von bestimmten Ausführungsformen und ist nicht als Einschränkung der Erfindung zu verstehen. Die Singular-Formen ”ein”, ”eine” und ”der”, ”die”, ”das” sollen in der hier verwendeten Weise auch die Pluralformen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Des Weiteren versteht es sich, dass die Begriffe ”weist auf” und/oder ”aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen der Vorgenannten jedoch nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Vorgänge und Gleichwertiges von allen Mitteln oder Schritten plus Funktionselementen in den nachstehenden Ansprüchen sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zur Ausführung der Funktion in Kombination mit anderen beanspruchten Elementen, die im Einzelnen beansprucht werden, beinhalten. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Erläuterung, erhebt jedoch keinen Anspruch auf Vollständigkeit und ist auch nicht als auf die Erfindung in der offenbarten Form beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis der Erfindung hinsichtlich verschiedener Ausführungsformen mit verschiedenen Änderungen, wie sie für die entsprechende vorgesehene Verwendung geeignet sind, zu ermöglichen.
  • Die hier gezeigten Ablaufpläne stellen lediglich ein Beispiel dar. An diesem Ablaufplan oder den Schritten (oder Operationen), die hier beschrieben sind, können viele Veränderungen vorgenommen werden, ohne vom Wesen der Erfindung abzuweichen. Beispielsweise können die Schritte in einer abweichenden Reihenfolge durchgeführt werden oder es können Schritte hinzugefügt, gelöscht oder geändert werden. All diese Veränderungen werden als ein Teil der beanspruchten Erfindung betrachtet.
  • Zwar wurde die bevorzugte Ausführungsform der Erfindung beschrieben, doch versteht es sich, dass der Fachmann sowohl jetzt als auch in der Zukunft verschiedene Verbesserungen und Erweiterungen vornehmen kann, die unter den Umfang der Ansprüche, die folgen, fallen. Diese Ansprüche sollten so ausgelegt werden, dass sie den ordnungsgemäßen Schutz für die Erfindung, die erstmalig beschrieben wird, bewahren.

Claims (20)

  1. Computerprogrammprodukt zur Fehlerbehebung, wobei das Computerprogrammprodukt aufweist: ein physisch greifbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Instruktionen zur Ausführung durch die Verarbeitungsschaltung speichert, um ein Verfahren durchzuführen, welches aufweist: Erzeugen eines Software-Wiederherstellungsprüfpunkts durch einen Prozessor; auf der Grundlage des Erzeugens des Software-Wiederherstellungsprüfpunkts dynamisches Wechseln durch den Prozessor in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus, wobei der nicht wiederherstellbare Verarbeitungs-Betriebsmodus ein Modus ist, in dem eine Teilgruppe von Hardware-Fehlerbehebungsressourcen ausgeschaltet oder für den neuen Zweck der Instruktionsverarbeitung verwendet wird; Feststellen während des nicht wiederherstellbaren Verarbeitungs-Betriebsmodus, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist; und auf Grundlage des Feststellens, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, dynamisches Wechseln durch den Prozessor in einen wiederherstellbaren Verarbeitungs-Betriebsmodus, wobei der wiederherstellbare Verarbeitungs-Betriebsmodus ein Modus ist, in dem Hardware-Fehlerbehebungsressourcen, einschließlich mindestens einer der Hardware-Fehlerbehebungsressourcen in der Teilgruppe, für Hardware-Fehlerbehebungsoperationen bestimmt sind.
  2. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren des Weiteren aufweist: Feststellen durch die Hardware-Fehlerbehebungsressourcen, dass ein transienter Fehler aufgetreten ist; und Benachrichtigen der Software über den transienten Fehler.
  3. Computerprogrammprodukt nach Anspruch 2, wobei das Verfahren des Weiteren aufweist: auf der Grundlage des Feststellens, dass ein transienter Fehler aufgetreten ist, Wiederholen von vorherigen Instruktionen basierend auf dem Software-Wiederherstellungsprüfpunkt.
  4. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren des Weiteren ein Empfangen einer speziellen Instruktion aufweist und das dynamische Wechseln in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus des Weiteren auf dem Empfangen einer speziellen Instruktion beruht.
  5. Computerprogrammprodukt nach Anspruch 4, wobei die spezielle Instruktion ein Operationscode ist, der von den Hardware-Fehlerbehebungsressourcen erkennbar ist.
  6. Computerprogrammprodukt nach Anspruch 4, wobei die spezielle Instruktion einen Flag-Wert eines Nichtwiederherstellungsmodus in einem reservierten Teil des Hauptspeicher-Adressraums festschreibt, welcher von den Hardware-Fehlerbehebungsressourcen überwacht wird.
  7. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren des Weiteren ein Empfangen einer zweiten speziellen Instruktion aufweist und das Feststellen, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, auf dem Empfangen einer zweiten speziellen Instruktion beruht.
  8. Verfahren zur Fehlerbehebung, wobei das Verfahren aufweist: Erzeugen eines Software-Wiederherstellungsprüfpunkts durch einen Prozessor; auf Grundlage des Erzeugens des Software-Wiederherstellungsprüfpunkts dynamisches Wechseln durch den Prozessor in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus, wobei der nicht wiederherstellbare Verarbeitungs-Betriebsmodus ein Modus ist, in dem eine Teilgruppe von Hardware-Fehlerbehebungsressourcen ausgeschaltet oder für den neuen Zweck der Instruktionsverarbeitung verwendet wird; Feststellen während des nicht wiederherstellbaren Verarbeitungs-Betriebsmodus, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist; und auf der Grundlage des Feststellens, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, dynamisches Wechseln durch den Prozessor in einen wiederherstellbaren Verarbeitungs-Betriebsmodus, wobei der wiederherstellbare Verarbeitungs-Betriebsmodus ein Modus ist, in dem Hardware-Fehlerbehebungsressourcen, einschließlich mindestens einer der Hardware-Fehlerbehebungsressourcen in der Teilgruppe, für Hardware-Fehlerbehebungsoperationen bestimmt sind.
  9. Verfahren nach Anspruch 8, des Weiteren aufweisend: Feststellen durch die Hardware-Fehlerbehebungsressourcen, dass ein transienter Fehler aufgetreten ist; und Benachrichtigen der Software über den transienten Fehler.
  10. Verfahren nach Anspruch 9, des Weiteren aufweisend: auf Grundlage des Feststellens, dass ein transienter Fehler aufgetreten ist, Wiederholen von vorherigen Instruktionen basierend auf dem Software-Wiederherstellungsprüfpunkt.
  11. Verfahren nach Anspruch 8, das des Weiteren Empfangen einer speziellen Instruktion aufweist, wobei das dynamische Wechseln in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus des Weiteren auf dem Empfangen einer speziellen Instruktion beruht.
  12. Verfahren nach Anspruch 11, wobei die spezielle Instruktion ein Operationscode ist, der von den Hardware-Fehlerbehebungsressourcen erkennbar ist.
  13. Verfahren nach Anspruch 11, wobei die spezielle Instruktion einen Flag-Wert eines Nichtwiederherstellungsmodus in einem reservierten Teil des Hauptspeicher-Adressraums festschreibt, welcher von den Hardware-Fehlerbehebungsressourcen überwacht wird.
  14. Verfahren nach Anspruch 11, das des Weiteren das Empfangen einer zweiten speziellen Instruktion aufweist, wobei das Feststellen, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, auf dem Empfangen einer zweiten speziellen Instruktion beruht.
  15. System mit neu konfigurierbaren Wiederherstellungsmodi, wobei das System aufweist: einen Prozessor, der Hardware-Fehlerbehebungsressourcen, die so konfiguriert sind, dass sie eine hardwarebasierte Fehlerbehebung durchführen, und Mehrzweckressourcen aufweist, die so konfiguriert sind, dass sie eine Instruktionsverarbeitung durchführen, wobei das System so konfiguriert ist, dass es ein Verfahren durchführt, das aufweist: Erzeugen eines Software-Wiederherstellungsprüfpunkts durch den Prozessor; auf Grundlage des Erzeugens des Software-Wiederherstellungsprüfpunkts dynamisches Wechseln durch den Prozessor in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus, wobei der nicht wiederherstellbare Verarbeitungs-Betriebsmodus ein Modus ist, in dem eine Teilgruppe der Hardware-Fehlerbehebungsressourcen ausgeschaltet oder für den neuen Zweck der Instruktionsverarbeitung verwendet wird; Feststellen während des nicht wiederherstellbaren Verarbeitungs-Betriebsmodus, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist; und auf der Grundlage des Feststellens, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, dynamisches Wechseln in einen wiederherstellbaren Verarbeitungs-Betriebsmodus, wobei der wiederherstellbare Verarbeitungs-Betriebsmodus ein Modus ist, in dem Hardware-Fehlerbehebungsressourcen, einschließlich mindestens einer der Hardware-Fehlerbehebungsressourcen in der Teilgruppe, für Hardware-Fehlerbehebungsoperationen bestimmt sind.
  16. System nach Anspruch 15, wobei das Verfahren des Weiteren aufweist: Feststellen durch die Hardware-Fehlerbehebungsressourcen, dass ein transienter Fehler aufgetreten ist; und Benachrichtigen der Software über den transienten Fehler.
  17. System nach Anspruch 16, wobei das Verfahren des Weiteren aufweist: auf Grundlage des Feststellens, dass ein transienter Fehler aufgetreten ist, Wiederholen von vorherigen Instruktionen basierend auf dem Software-Wiederherstellungsprüfpunkt.
  18. System nach Anspruch 15, wobei das Verfahren des Weiteren das Empfangen einer speziellen Instruktion aufweist und das dynamische Wechseln in einen nicht wiederherstellbaren Verarbeitungs-Betriebsmodus des Weiteren auf dem Empfangen einer speziellen Instruktion beruht.
  19. System nach Anspruch 18, wobei die spezielle Instruktion ein Operationscode ist, der von den Hardware-Fehlerbehebungsressourcen erkennbar ist.
  20. System nach Anspruch 16, wobei das Verfahren des Weiteren ein Empfangen einer zweiten speziellen Instruktion aufweist und das Feststellen, dass ein neuer Software-Wiederherstellungsprüfpunkt erforderlich ist, auf dem Empfangen einer zweiten speziellen Instruktion beruht.
DE112013002054.8T 2012-04-16 2013-03-08 Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren Pending DE112013002054T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/447,554 2012-04-16
US13/447,554 US8954797B2 (en) 2012-04-16 2012-04-16 Reconfigurable recovery modes in high availability processors
PCT/EP2013/054696 WO2013156201A1 (en) 2012-04-16 2013-03-08 Reconfigurable recovery modes in high availability processors

Publications (1)

Publication Number Publication Date
DE112013002054T5 true DE112013002054T5 (de) 2015-03-05

Family

ID=47843295

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013002054.8T Pending DE112013002054T5 (de) 2012-04-16 2013-03-08 Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren

Country Status (5)

Country Link
US (2) US8954797B2 (de)
CN (1) CN104246710B (de)
DE (1) DE112013002054T5 (de)
GB (1) GB2514700B (de)
WO (1) WO2013156201A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140208169A1 (en) * 2013-01-18 2014-07-24 Unisys Corporation Domain scripting language framework for service and system integration
US9384020B2 (en) 2013-01-18 2016-07-05 Unisys Corporation Domain scripting language framework for service and system integration
US10235232B2 (en) 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
US9588845B2 (en) * 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
CN106032619B (zh) * 2015-03-20 2018-05-01 无锡飞翎电子有限公司 洗衣机通信方法
CN108270832B (zh) * 2016-12-30 2020-11-06 华为技术有限公司 一种故障重放方法和装置
US10997027B2 (en) * 2017-12-21 2021-05-04 Arizona Board Of Regents On Behalf Of Arizona State University Lightweight checkpoint technique for resilience against soft errors
US11449380B2 (en) 2018-06-06 2022-09-20 Arizona Board Of Regents On Behalf Of Arizona State University Method for detecting and recovery from soft errors in a computing device
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
US10884845B2 (en) * 2018-11-08 2021-01-05 International Business Machines Corporation Increasing processing capacity of processor cores during initial program load processing
US10884818B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Increasing processing capacity of virtual machines
US10990434B2 (en) 2019-02-05 2021-04-27 International Business Machines Corporation Increasing processing capacity of virtual machines for an abnormal event
US11327767B2 (en) 2019-04-05 2022-05-10 International Business Machines Corporation Increasing resources for partition to compensate for input/output (I/O) recovery event

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692121A (en) 1995-04-14 1997-11-25 International Business Machines Corporation Recovery unit for mirrored processors
JP3357777B2 (ja) * 1996-01-26 2002-12-16 株式会社東芝 プログラム制御システム
US6058491A (en) 1997-09-15 2000-05-02 International Business Machines Corporation Method and system for fault-handling to improve reliability of a data-processing system
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
US7467325B2 (en) 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US7200742B2 (en) * 2005-02-10 2007-04-03 International Business Machines Corporation System and method for creating precise exceptions
US7478276B2 (en) 2005-02-10 2009-01-13 International Business Machines Corporation Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
CN101196847A (zh) * 2006-12-08 2008-06-11 深圳艾科创新微电子有限公司 Cpu程序存储器自动维护的方法及硬件单元结构
US8108714B2 (en) 2007-03-12 2012-01-31 International Business Machines Corporation Method and system for soft error recovery during processor execution
JP5161696B2 (ja) * 2008-08-07 2013-03-13 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおけるエラー回復方法ならびに仮想計算機制御プログラム
US8078851B2 (en) 2008-12-18 2011-12-13 Faraday Technology Corp. Processor and method for recovering global history shift register and return address stack thereof by determining a removal range of a branch recovery table
US8140905B2 (en) 2010-02-05 2012-03-20 International Business Machines Corporation Incremental problem determination and resolution in cloud environments
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers

Also Published As

Publication number Publication date
GB201414521D0 (en) 2014-10-01
US8954797B2 (en) 2015-02-10
US20130275806A1 (en) 2013-10-17
US20130275801A1 (en) 2013-10-17
CN104246710B (zh) 2017-10-20
GB2514700A (en) 2014-12-03
GB2514700B (en) 2015-04-08
US9043641B2 (en) 2015-05-26
CN104246710A (zh) 2014-12-24
WO2013156201A1 (en) 2013-10-24

Similar Documents

Publication Publication Date Title
DE112013002054T5 (de) Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren
DE60210633T2 (de) Verfahren und vorrichtungen zur verbesserung des durchsatzes von eingebetteten prozessoren auf cache-basis durch umschalten von tasks als reaktion auf eine cache-verfehlung
DE10297856B4 (de) Verfahren und Vorrichtung zum Suspendieren der Ausführung eines Threads, bis ein spezifizierter Speicherzugriff auftritt
DE102013014169B4 (de) Dynamisch grössenveränderbare Zirkularpuffer
DE3686991T2 (de) Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz.
DE112011100715T5 (de) Hardware-hilfs-thread
DE60217157T2 (de) Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts
DE102013218341B4 (de) Ersatzweise Verlagerung von Threads (Thread-Sparing) zwischen Berechnungskernen in einem Multithread-Prozessor
DE112011101364T5 (de) Fehlerbehebung in Multithread-Code
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE112007001171T5 (de) Verfahren für virtualisierten Transaktionsspeicher bei globalem Überlauf
DE69622647T2 (de) Wiederherstellbares Plattensteuersystem mit nichtflüchtigem Speicher
DE112010003330T5 (de) Einrichten von Prüfpunkten bei Cachespeichern für die spekulative Versionierung
DE112010004965T5 (de) Steuerung von Zeitstempelzähler-(TSC)-Offsets für Mehrfach-Kerne und -Threads
WO2007057271A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
DE10297597T5 (de) Suspendieren der Ausführung eines Threads in einem Mehrfach-Thread-Prozessor
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE112005002370T5 (de) Ausführung von Kontrollbefehlen in redundanten Multithreadingumgebungen
DE2721623C2 (de)
DE102006001776A1 (de) Testprogrammsatz Minimierung der Veralterung durch Software- und automatische Testgeräteprozesse
DE102013205059A1 (de) Durchführen von vordecodierzeitoptimierten Anweisungen zusammen mit Sequence Caching von vordecodierzeitoptimierten Anweisungen
DE112015001502T5 (de) Ausstieg aus mehreren Threads in einem Computer
EP0048991B1 (de) Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung
DE112004002576T5 (de) Management externer Speicheraktualisierung zur Fehlererfassung in redundanten Multithreading-Systemen unter Verwendung einer spekulativen Speicherunterstützung
DE112011104830T5 (de) Ein Verfahren zum Sicherstellen der Programmkorrektheit unter Verwendung von feingranularem spekulativem Hardwareausführen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE