DE112013000330T5 - In-Situ-Neubewertung von Prozessoren - Google Patents

In-Situ-Neubewertung von Prozessoren Download PDF

Info

Publication number
DE112013000330T5
DE112013000330T5 DE112013000330.9T DE112013000330T DE112013000330T5 DE 112013000330 T5 DE112013000330 T5 DE 112013000330T5 DE 112013000330 T DE112013000330 T DE 112013000330T DE 112013000330 T5 DE112013000330 T5 DE 112013000330T5
Authority
DE
Germany
Prior art keywords
processor
reached
clock frequency
computer
computer system
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
DE112013000330.9T
Other languages
English (en)
Inventor
c/o IBM Corporation Krygowski Christopher Anthony
c/o IBM Corporation Prasky Brian Robert
c/o IBM Corporation Busaba Fadi Yusuf
c/o IBM Corporation Shum Chung-Lung Kevin
c/o IBM Corporation Carlough Steven
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 DE112013000330T5 publication Critical patent/DE112013000330T5/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency

Abstract

Es wird ein Neubewertungsprozess bereitgestellt, mittels dessen ein oder mehrere Betriebsparameter eines Prozessors angepasst werden, um die Funktionsfähigkeit des Prozessors zu verbessern (z. B. die Anzahl der Fehler zu verringern). Als Parameter kommen beispielsweise eine Spannung und/oder eine Taktfrequenz infrage. Bei dem Prozessor kann es sich um einen inaktiven oder einen aktiven Prozessor handeln, für den der Neubewertungsprozess durchgeführt wird. Der Prozess wird in einem Fall in Echtzeit durch eine Hardwaresteuereinheit durchgeführt.

Description

  • TECHNISCHES GEBIET
  • Ein oder mehrere Aspekte der vorliegenden Erfindung betreffen allgemein die Verarbeitung innerhalb einer Datenverarbeitungsumgebung und insbesondere eine Neubewertung von Prozessoren in der Datenverarbeitungsumgebung.
  • ZUGRUNDE LIEGENDE TECHNIK
  • Üblicherweise sind Datenverarbeitungssysteme von hoher Zuverlässigkeit aus mehreren Verarbeitungselementen (die hierin als Prozessoren bezeichnet werden) aufgebaut, von denen einige als Reserve vorgehalten werden, um beim Ausfall eines Prozessors aktiviert zu werden. Wenn die Reserveprozessoren als Ersatz genutzt werden, werden die ausgefallenen Prozessoren in einen inaktiven Zustand versetzt.
  • Die ausgefallenen und in den inaktiven Zustand versetzten Prozessoren verbleiben so lange in diesem Zustand, bis sie physisch durch andere Prozessoren ersetzt werden. Wenn aufgrund von Ausfällen zu viele Prozessoren inaktiv sind und nicht ersetzt werden, können die Reserven des Systems aufgebraucht sein, was zu einer Verschlechterung der Systemleistung und einer Verringerung der Systemkapazität führt.
  • Deshalb besteht in der Technik ein Bedarf an der Lösung des oben erwähnten Problems.
  • KURZDARSTELLUNG
  • Durch Bereitstellen eines Computersystems zum Unterstützen der Verarbeitung in einer Datenverarbeitungsumgebung werden Nachteile nach dem Stand der Technik behoben und zusätzliche Vorteile bereitgestellt. Das Computersystem beinhaltet einen Speicher und einen Prozessor, der Daten mit dem Speicher austauscht, wobei das Computersystem zum Ausführen eines Verfahrens konfiguriert ist. Das Verfahren beinhaltet zum Beispiel: Prüfen eines oder mehrerer Betriebsparameter eines Prozessors, um zu ermitteln, ob mindestens ein oder mehrere der Betriebsparameter angepasst werden müssen; Anpassen des mindestens einen Betriebsparameters auf der Grundlage der Prüfung zum Feststellen, dass der mindestens eine Betriebsparameter angepasst werden muss, wobei das Anpassen während der Verarbeitung einer Arbeitslast insofern in Echtzeit erfolgt, als andere Prozessoren der Datenverarbeitungsumgebung funktionsfähig bleiben; und Auslösen einer Prüfung des Prozessors auf der Grundlage des Anpassens, um zu ermitteln, ob der Prozessor mit dem mindestens einen angepassten Betriebsparameter auf einem vertretbaren Leistungsniveau arbeitet, wobei der Prozessor zum Verarbeiten der Arbeitslast in der Lage ist, wenn durch die Prüfung angezeigt wird, dass der Prozessor auf einem vertretbaren Leistungsniveau arbeitet.
  • Hierin werden auch Verfahren und Computerprogrammprodukte beschrieben und beansprucht, die einen oder mehrere Aspekte der vorliegenden Erfindung betreffen. Ferner werden hierin auch Dienste beschrieben und können beansprucht werden, die einen oder mehrere Aspekte der vorliegenden Erfindung betreffen.
  • Zusätzliche Merkmale und Vorteile werden durch die Techniken eines oder mehrerer Aspekte der vorliegenden Erfindung umgesetzt. Weitere Ausführungsformen und Aspekte der Erfindung werden hierin ausführlich beschrieben und als Teil der beanspruchten Erfindung angesehen.
  • Unter einem ersten Aspekt stellt die vorliegende Erfindung ein Computersystem zum Unterstützen der Verarbeitung in einer Datenverarbeitungsumgebung bereit, wobei das Computersystem aufweist: einen Speicher; einen Prozessor, der Daten mit dem Speicher austauscht; ein Prüfmittel zum Prüfen eines oder mehrerer Betriebsparameter eines Prozessors zum Ermitteln, ob mindestens ein oder mehrere der Betriebsparameter angepasst werden müssen; ein Anpassungsmittel zum Anpassen des mindestens einen Betriebsparameters als Reaktion auf ein Ermitteln, dass der mindestens eine Betriebsparameter angepasst werden muss, wobei das Anpassen während der Verarbeitung einer Arbeitslast insofern in Echtzeit erfolgt, als andere Prozessoren der Datenverarbeitungsumgebung funktionsfähig bleiben; und ein Auslösemittel zum Auslösen einer Prüfung des Prozessors als Reaktion auf das Anpassen zum Ermitteln, ob der Prozessor mit dem mindestens einen angepassten Betriebsparameter auf einem vertretbaren Leistungsniveau arbeitet, wobei der Prozessor zum Verarbeiten der Arbeitslast in der Lage ist, wenn durch die Prüfung angezeigt wird, dass der Prozessor auf einem vertretbaren Leistungsniveau arbeitet.
  • Unter einem weiteren Aspekt stellt die vorliegende Erfindung ein Computersystem zum Unterstützen der Verarbeitung in einer Datenverarbeitungsumgebung bereit, wobei das Computersystem aufweist: einen Speicher; und einen Prozessor, der Daten mit dem Speicher austauscht, wobei das Computersystem zum Ausführen eines Verfahrens konfiguriert ist und das Verfahren aufweist: Prüfen eines oder mehrerer Betriebsparameter zum Ermitteln, ob mindestens ein oder mehrere der Betriebsparameter angepasst werden müssen: Anpassen mindestens eines Betriebsparameters auf der Grundlage der Prüfung zum Ermitteln, dass mindestens ein Betriebsparameter angepasst werden muss, wobei das Anpassen während der Verarbeitung einer Arbeitslast insofern in Echtzeit erfolgt, als andere Prozessoren der Datenverarbeitungsumgebung funktionsfähig bleiben; und Auslösen einer Prüfung des Prozessors als Reaktion auf das Anpassen zum Ermitteln, ob der Prozessor mit dem mindestens einen angepassten Betriebsparameter auf einem vertretbaren Leistungsniveau arbeitet, wobei der Prozessor zum Verarbeiten der Arbeitslast in der Lage ist, wenn durch die Prüfung angezeigt wird, dass der Prozessor auf einem vertretbaren Leistungsniveau arbeitet.
  • Unter einem weiteren Aspekt stellt die vorliegende Erfindung ein Verfahren zum Unterstützen der Verarbeitung in einer Datenverarbeitungsumgebung bereit, wobei das Verfahren aufweist: Prüfen eines oder mehrerer Betriebsparameter eines Prozessors durch eine Hardware-Steuereinheit der Datenverarbeitungsumgebung, um zu ermitteln, ob mindestens einer oder mehrere der Betriebsparameter angepasst werden müssen; Anpassen des mindestens einen Betriebsparameters auf der Grundlage der Prüfung zum Ermitteln, dass mindestens ein Betriebsparameter angepasst werden muss, wobei das Anpassen während der Verarbeitung einer Arbeitslast insofern in Echtzeit erfolgt, als andere Prozessoren der Datenverarbeitungsumgebung funktionsfähig bleiben; und Auslösen einer Prüfung des Prozessors auf der Grundlage des Anpassens, um zu ermitteln, ob der Prozessor mit dem mindestens einen angepassten Betriebsparameter auf einem vertretbaren Leistungsniveau arbeitet, wobei der Prozessor zum Verarbeiten der Arbeitslast in der Lage ist, wenn durch die Prüfung angezeigt wird, dass der Prozessor auf einem vertretbaren Leistungsniveau arbeitet.
  • Unter einem weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Unterstützen der Verarbeitung in einer Datenverarbeitungsumgebung bereit, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das durch eine Verarbeitungsschaltung gelesen werden kann und Anweisungen zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren zum Ausführen der Schritte der Erfindung durchzuführen.
  • Unter einem weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist, in den internen Speicher eines digitalen Computer ladbar ist und Abschnitte eines Softwarecodes zum Ausführen der Schritte der Erfindung aufweist, wenn das Programm auf einem Computer ausgeführt wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Nunmehr wird die vorliegende Erfindung lediglich beispielhaft unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, die in den folgenden Figuren veranschaulicht sind:
  • 1A zeigt eine Ausführungsform einer Datenverarbeitungsumgebung zum Einbeziehen und Verwenden eines oder mehrerer Aspekte der vorliegenden Erfindung nach dem Stand der Technik, in der eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann.
  • 1B zeigt weitere Einzelheiten der Zentraleinheiten von 1A gemäß einem Aspekt der vorliegenden Erfindung nach dem Stand der Technik, in denen eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann;
  • 2 zeigt eine Ausführungsform der Logik zum Neubewerten eines Prozessor, der auf einem unzureichenden Niveau arbeitet, gemäß einem Aspekt der vorliegenden Erfindung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; und
  • 3 zeigt eine Ausführungsform eines Computerprogrammprodukts nach dem Stand der Technik, das einen oder mehrere Aspekte der vorliegenden Erfindung einbezieht und in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung umgesetzt werden kann.
  • DETAILLIERTE BESCHREIBUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung wird eine Fähigkeit zum Reaktivieren eines inaktiven Prozessors bereitgestellt, der auf einem unzureichenden Niveau gearbeitet hat, indem auf dem Prozessor ein Neubewertungsprozess (z. B. ein elektrischer Bewertungsprozess) ausgeführt wird, um eine Gruppe von Betriebsparametern zu ermitteln, die dem Prozessor ein Arbeiten auf einem vertretbaren Leistungsniveau (z. B. ohne wiederholte Fehler) ermöglichen. Der Neubewertungsprozess wird ausgeführt, ohne den Prozessor oder das Computersystem auszuschalten. Gemäß einer Ausführungsform wird der Neubewertungsprozess bei laufender Nutzung (z. B. nicht unter Testbedingungen) ausgeführt. Ein oder mehrere Aspekte des Neubewertungsprozesses werden in Echtzeit umgesetzt, wobei andere Prozessoren in Betrieb bleiben. Gemäß weiteren Ausführungsformen wird der Neubewertungsprozess an aktiven Prozessoren ausgeführt, um zum Beispiel die Systemleistung zu verbessern, oder an Reserveprozessoren ausgeführt, um zu prüfen, ob sie intakt sind.
  • Eine Ausführungsform einer Datenverarbeitungsumgebung zum Einbeziehen und Verwenden eines oder mehrerer Aspekte der vorliegenden Erfindung wird unter Bezugnahme auf 1A beschrieben. Eine Datenverarbeitungsumgebung 100 beruht zum Beispiel auf der z/Architecture®, die von International Business Machines Corporation, Armonk, New York, angeboten wird. Die z/Architecture® wird in einer Veröffentlichung von IBM beschrieben unter dem Titel „z/Architecture – Principles of Operation”, IBM® Veröffentlichung Nr. SA22-7832-08, neunte Auflage, August 2010. Gemäß einem Beispiel beinhaltet eine Datenverarbeitungsumgebung auf der Grundlage der z/Architecture® einen System z®-Server, der von International Business Machines Corporation, Armonk, New York, angeboten wird. IBM, z/Architecture, System z, z/OS und Processor Resource/Systems Manager sind Warenzeichen von International Business Machines Corporation, die weltweit in vielen Rechtssystemen eingetragen sind.
  • Gemäß einem Beispiel beinhaltet die Datenverarbeitungsumgebung 100 einen zentralen Prozessorkomplex (CPC) 102, der mit einem Eingabe/Ausgabe-(E/A-)Teilsystem 120 verbunden ist. Der zentrale Prozessorkomplex 102 beinhaltet zum Beispiel eine oder mehrere Partitionen 104 (z. B. logische Partitionen LP1 bis LPn), einen oder mehrere Zentralprozessoren 106, einen Hypervisor 108 (z. B. ein Verwaltungsprogramm für logische Partitionen) und eine Systemsteuerung 110, die jeweils im Folgenden beschrieben werden.
  • Jede logische Partition 104 kann als separates System fungieren. Das heißt, jede logische Partition kann bei Bedarf unabhängig zurückgesetzt, zu Anfang mit einem Betriebssystem geladen werden und mit verschiedenen Programmen arbeiten. Ein Betriebssystem oder ein Anwendungsprogramm, das in einer logischen Partition ausgeführt wird, kann scheinbar auf ein ganzes und vollständiges System zugreifen, jedoch steht ihm in Wirklichkeit nur ein Teil davon zur Verfügung. Eine Kombination von Hardware und Firmware sorgt dafür, dass ein Programm in einer logischen Partition ein Programm in einer anderen logischen Partition nicht stören kann. Auf diese Weise können mehrere verschiedene logische Partitionen in einem Zeitscheibenverfahren auf einem einzigen oder mehreren physischen Prozessoren ausgeführt werden.
  • Für die hierin verwendete Firmware kommen z. B. der Mikrocode, Millicode und/oder Makrocode des Prozessors infrage. Dieser Code beinhaltet zum Beispiel Hardwareanweisungen und/oder Datenstrukturen, die zum Umsetzen eines höheren Maschinencodes verwendet werden. Gemäß einer Ausführungsform beinhaltet der Code zum Beispiel einen firmeneigenen Code, der üblicherweise als Mikrocode geliefert wird, der eine auf die zugrunde liegende Hardware zugeschnittene vertrauenswürdige Software oder einen Mikrocode beinhaltet und den Zugriff des Betriebssystems auf die Systemhardware steuert.
  • Bei diesem bestimmten Beispiel ist in jeder logischen Partition ein Betriebssystem 112 installiert, das für eine oder mehrere logische Partitionen verschieden sein kann. Gemäß einer Ausführungsform handelt es sich bei dem Betriebssystem 112 um das Betriebssystem z/OS®. Ferner ist in diesem Beispiel jeder logischen Partition ein Teil des System-Hauptspeichers (Speicher) zugewiesen, der als Zone bezeichnet wird.
  • Eine logische Partition 104 beinhaltet einen oder mehrere logische Prozessoren. Jeder logische Prozessor kann einen Zentralprozessor 106 aufweisen, der diesem dauerhaft zugeordnet ist, oder ein Pool von Zentralprozessoren 106 kann dynamisch einer beliebigen Gruppe von logischen Prozessoren zugeordnet werden, die möglicherweise für mehrere logische Partitionen 104 zuständig sind.
  • Die logischen Partitionen 104 werden durch den Hypervisor 108 verwaltet, der zum Beispiel durch eine auf den Prozessoren 106 ausgeführte Firmware umgesetzt wird. Die logischen Partitionen 104 und der Hypervisor 108 weisen jeweils ein oder mehrere Programme auf, die sich in entsprechenden Teilen des Hauptspeichers befinden, die dem Zentralprozessor zugehörig sind. Bei dem Hypervisor 108 kann es sich beispielsweise um den IBM Processor Resource/Systems ManagerTM (PR/SM) handeln.
  • Die Zentralprozessoren 106 sind mit der Systemsteuerung 110 verbunden, jedoch eigenständig. Bei der Systemsteuerung 110 handelt es sich zum Beispiel um eine Hardwarekomponente, die den Zugriff auf Speicher und Cachespeicher innerhalb der Zentralprozessoren steuert und Daten zwischen den Zentralprozessoren und dem Eingabe/Ausgabe-Teilsystem 120 austauscht. Die Systemsteuerung ist für die Warteschlangensteuerung, die Serialisierung und für die Ausführung von Anforderungen zuständig, die von den Zentralprozessoren und dem E/A-Teilsystem stammen. Gemäß einem Beispiel ist sie für ein Senden von Befehlen an einzelne Zentralprozessoren und/oder zum Rundsenden von Befehlen an mehrere Zentralprozessoren zuständig. Bei der Systemsteuerung kann es sich um eine zentralisierte Komponente handeln, oder ihre Funktionen können verteilt sein. Bei der Systemsteuerung handelt es sich nicht um einen Prozessor oder einen Prozessorkern; zum Beispiel führt diese keine Benutzeranwendungen aus. Vielmehr dient sie dem Austausch von Daten zwischen dem E/A-Teilsystem und den Zentralprozessoren.
  • Weitere Einzelheiten zu den Zentralprozessoren 106 werden unter Bezugnahme auf 1B beschrieben. Gemäß einem Beispiel enthält ein Zentralprozessor 106 einen oder mehrere Kerne oder Prozessoren 150, bei denen es sich um die physischen Prozessoren handelt, die einer oder mehreren logischen Partitionen zugeordnet sind. Ein Zentralprozessor ist als Teil eines Knotens anzusehen, und jeder Knoten beinhaltet einen oder mehrere Zentralprozessoren. Eine logische Partition kann übergreifend mehrere Knoten erfassen, indem der logischen Partition ein oder mehrere Zentralprozessoren von einem Knoten und ein oder mehrere Zentralprozessoren von einem anderen Knoten zugewiesen werden können.
  • Gemäß einem Aspekt der vorliegenden Erfindung beinhaltet der Zentralprozessor 106 ferner eine Steuereinheit 160 (z. B. eine Hardware-Steuereinheit), die zur Neubewertung dient, um die Parameter eines Prozessors anzupassen, der inaktiv oder aktiv sein kann. Bei einem inaktiven Prozessor handelt es sich um einen Prozessor, der aktuell keine auszuführende Arbeitslast annimmt. Dies kann ein Prozessor sein, dessen Leistung unzureichend war und dessen Arbeitslast deshalb auf einen anderen Prozessor verlagert wurde, der jedoch noch eingeschaltet ist; es kann sich aber auch um einen Reserveprozessor handeln, der auf Aktivierung wartet. Bei einem aktiven Prozessor handelt es sich um einen Prozessor, der bereit ist, Arbeitslast zu empfangen und auszuführen und/oder der gerade eine Arbeitslast ausführt.
  • Eine Ausführungsform der mit einem Neubewertungsprozess verbundenen Logik wird unter Bezugnahme auf 2 beschrieben. Gemäß einem Beispiel wird diese Logik durch eine Steuereinheit 160 (1B) gesteuert, sofern nicht anderes angegeben ist.
  • Gemäß 2 wird bei diesem Beispiel zu Anfang in SCHRITT 200 festgestellt, dass ein bestimmter Prozessor (z. B. Prozessor A) wiederholte Fehler aufweist. Jeder Prozessor weist zum Beispiel eine Selbsttestlogik zum Ermitteln auf, ob er ordnungsgemäß funktioniert. Insbesondere enthält jeder Prozessor eine Fehlerprüflogik zum Ermitteln, ob ein Fehler aufgetreten ist. Wenn ein Fehler aufgetreten ist, verwendet der Prozessor seine Wiederherstellungslogik, um sich wiederherzustellen. Diese erfasst, wie oft sich der Prozessor innerhalb eines vorgegebenen Zeitraums wiederherstellen muss, und stellt fest, dass dieser wiederholte Fehler aufweist, wenn sie findet, dass die Wiederherstellung zu oft erfolgt (z. B., wenn die Häufigkeit der Wiederherstellungen einen Schwellenwert überschreitet).
  • Als Reaktion auf das Ermitteln, dass der Prozessor wiederholte Fehler aufweist, wird in SCHRITT 202 die Ausführung der Arbeitslast auf diesem Prozessor angehalten, und der Prozessor wird vom System isoliert. Gemäß einer Ausführungsform teilt der Prozessor dem Hypervisor mit, dass er wiederholte Fehler aufweist, der als Reaktion darauf die Tasks auf dem Prozessor anhält. Der Prozessor ist innerhalb des Systems insofern isoliert, als der Hypervisor noch Kenntnis von dem Prozessor hat, diesem jedoch keine Arbeit zuweist und der Prozessor über keine Daten mehr verfügt, die durch einen anderen Prozessor benötigt werden.
  • Außerdem werden in SCHRITT 204 der Zustand des Prozessors und dessen Arbeitslast von dem Prozessor (z. B. vom Prozessor A) auf einen Reserveprozessor (z. B. den Prozessor B) verlagert. Gemäß einem Beispiel löst der Prozessor oder eine andere Komponente ein Verlagern aus, das durch den Hypervisor oder eine Firmware bewerkstelligt wird. Zu dem Verlagern gehören Speichern des aktuellen Zustands, darunter der interne und der Architekturzustand, und zumindest einer Kennung oder eines Zeigers auf die Arbeitslast, und Verteilen auf einen oder mehrere andere Prozessoren (z. B. Reserveprozessoren).
  • Anschließend wird in der ABFRAGE 206 ermittelt, ob eine in-situ-Neubewertung möglich ist. Das heißt, ob auf dem System die Fähigkeit eines oder mehrerer Aspekte der vorliegenden Erfindung verfügbar ist. Dies kann zum Beispiel durch eine Anzeige (z. B. ein Bit im gemeinsam genutzten Speicher) ermittelt werden, die anzeigt, ob eine Neubewertung verfügbar ist. Wenn keine Neubewertung verfügbar ist, wird der Prozessor in SCHRITT 208 als fehlerhaft gekennzeichnet und gemäß einem Beispiel ausgeschaltet, womit der Prozess beendet ist.
  • Wenn jedoch eine in-situ-Neubewertung verfügbar ist, werden in SCHRITT 210 durch die Steuereinheit standardmäßige Diagnosetests (z. B. ein integriertes Array-Selbstprüfverfahren (Array Built-In Self-Test, ABIST)) und ein integriertes Logik-Selbstprüfverfahren (Logic Built-In Self-Test, LBIST)) ausgelöst und auf dem Prozessor ausgeführt. Es ist bekannt, dass die Array Built-In Self-Test-Komponente als Teil des Bootprozesses des Systems interne Diagnosen erstellt. Das ABIST-Verfahren testet die Logik und die Arrays in jedem Prozessor (sofern ausführbar) und führt bei Bedarf eine Reparatur des Array (Reservebits) für Prozessoren durch. Der Logic Built-In Self-Test stellt ein Mittel dar, mit dem eine integrierte Schaltung die Unversehrtheit ihrer eigenen Schaltlogik prüft. Das LBIST-Verfahren betätigt die Schaltlogik der integrierten Schaltung und stellt fest, ob sich die Logik wie gewünscht verhält. In der Praxis testet eine integrierte Schaltung mit LBIST spezielle integrierte Testschaltungen, um eine Anregung zu erzeugen und die Antwort zu empfangen. Gemäß einem Beispiel wird als Teil der LBIST-Prüfung der interne Zustand des Prozessors gelöscht und in einen bekannten intakten Zustand reinitialisiert.
  • Als Reaktion auf das Durchführen von Diagnosetests wird in ABFRAGE 212 ermittelt, ob eine Erfolgssignatur erreicht wurde. Dies zeigt an, ob die Selbstdiagnosetests als erfolgreich eingestuft wurden (ob z. B. bestimmte Muster passen usw.). Wenn die Erfolgssignatur erreicht und durch die Steuereinheit empfangen wurde, wird der Prozessor in SCHRITT 214 als verfügbar gekennzeichnet. In SCHRITT 216 können die Arbeitslasten dem Prozessor zugeteilt werden und der Prozessor wieder in den Betriebszustand zurückkehren.
  • Wenn die Erfolgssignatur jedoch nicht erreicht wurde (d. h., wenn die Diagnosetests als erfolglos angesehen wurden), werden gemäß einer Ausführungsform ein oder mehrere Betriebsparameter des Prozessors angepasst, um dessen Leistungsfähigkeit zu verbessern (z. B. die Fehlerhäufigkeit zu verringern). Als Beispiele für diese Parameter kommen die Spannung und/oder die Taktfrequenz infrage; es können jedoch auch andere Parameter angepasst werden, beispielsweise die Temperatur oder andere. Gemäß einem Beispiel wird in der ABFRAGE 220 ermittelt, ob die Versorgungsspannung ihren Höchstwert erreicht hat. Die Höchstspannung ist von der Technologie abhängig und stellt einen vorgegebenen Wert dar. Wenn die Versorgungsspannung den Höchstwert nicht erreicht hat, wird die Versorgungsspannung des Prozessors in SCHRITT 222 um einen vorgegebenen Betrag erhöht. Bei der Versorgungs- oder Betriebsspannung handelt es sich zum Beispiel um die Spannung, bei der die Schaltung arbeitet. Gemäß einem Beispiel beträgt die aktuelle Betriebsspannung 0,95 V, und der Erhöhungsschritt beträgt ungefähr 0,05 V (ungefähr 5%).
  • Anschließend werden ABIST und/oder LBIST in SCHRITT 224 erneut durch die Steuereinheit ausgelöst und auf dem Prozessor ausgeführt. Wenn dieses Mal in der ABFRAGE 226 eine Erfolgssignatur erreicht wird, wird der Prozess in SCHRITT 214 fortgesetzt und der Prozessor als verfügbar gekennzeichnet. (Gemäß einer weiteren Ausführungsform wird auch die Taktfrequenz geprüft und kann zusätzlich zur Spannung angepasst werden, obwohl eine Erfolgssignatur erreicht wurde. Gemäß einer weiteren Ausführungsform werden die Diagnosetests ferner durch den Prozessor selbst ausgelöst, wenn festgestellt wurde, dass ein Betriebsparameter angepasst wird).
  • Wenn in der ABFRAGE 226 jedoch immer noch keine Erfolgssignatur erreicht wird, wird in der ABFRAGE 230 ermittelt, ob die Taktfrequenz des Prozessors einen Mindestwert erreicht hat. Der Mindestwert hängt auch von der Technologie ab und stellt einen vorgegebenen Wert dar. Wenn die Taktfrequenz keinen Mindestwert erreicht hat, wird diese in SCHRITT 232 um einen vorgegebenen Betrag verringert, um die Verarbeitung zu verlangsamen. Zum Beispiel beträgt eine aktuelle Betriebsfrequenz eines professionellen Hochleistungsprozessors, beispielsweise eines IBM z/Architecture-Prozessors, 5,2 GHz, und die Verringerung beträgt ungefähr 5%.
  • Dann werden in SCHRITT 234 ABIST und/oder LBIST noch einmal ausgeführt. Nach dem ein- oder mehrmaligen Ausführen eines ABIST oder eines LBIST wird in der ABFRAGE 236 ermittelt, ob die Erfolgssignatur erreicht wurde. Wenn diese erreicht wurde, wird der Prozessor in SCHRITT 234 als verfügbar gekennzeichnet. Wenn die Erfolgssignatur jedoch nicht erreicht wurde oder die Taktfrequenz gemäß der ABFRAGE 230 den Mindestwert erreicht hat, wird der Prozess mit der ABFRAGE 220 fortgesetzt und wiederholt.
  • Wenn hingegen in der ABFRAGE 220 die Versorgungsspannung den Höchstwert erreicht hat, wird der Prozess in der ABFRAGE 240 mit dem Prüfen der Taktfrequenz fortgesetzt. Wenn die Taktfrequenz den Mindestwert erreicht hat, befindet sich der Prozessor immer noch auf einem unzureichenden Leistungsniveau, wird deshalb in SCHRITT 242 als fehlerhaft gekennzeichnet und gemäß einem Beispiel ausgeschaltet und nicht wieder angepasst. Andernfalls wird die Verarbeitung in SCHRITT 232 fortgesetzt, indem die Taktfrequenz herabgesetzt und die weitere Verarbeitung fortgesetzt wird. Damit ist die Verarbeitung des Neubewertungsprozesses abgeschlossen.
  • Gemäß einem weiteren Beispiel können zusätzlich oder anstelle der Spannung und/oder der Taktfrequenz weitere Betriebsparameter geprüft und angepasst werden. Einer dieser Parameter ist die Temperatur. Dabei wird die Temperatur jedoch nicht direkt, sondern indirekt eingestellt, indem zum Beispiel eine oder mehrere Komponenten/Bedingungen geändert werden, die den Parameter beeinflussen, beispielsweise die Kühltechnik des Prozessors, die Lufttemperatur in der Umgebung des Prozessors oder die Lüfterdrehzahl, die die Temperatur beeinflussen. Ebenso wie bei der Spannung und der Taktfrequenz werden jedoch nach dem Anpassen des Parameters die Diagnosetests wiederholt und die Erfolgssignatur geprüft.
  • Hierin beinhaltet das Anpassen eines Parameters eine direkte Steuerung, bei der der Parameter selbst direkt angepasst wird, wie dies beispielsweise bei der Spannung und der Taktfrequenz der Fall ist, und/oder eine indirekte Steuerung, bei der der Parameter nicht direkt angepasst wird, sondern indirekt eine oder mehrere Komponenten/Bedingungen angepasst werden, wodurch der Parameter wie beispielsweise die Temperatur angepasst wird.
  • Wenn ein Prozessor gemäß der obigen Beschreibung einen Fehler erkennt, stellt er sich gemäß einer Ausführungsform wieder her, um einen bekannten intakten Zustand zu erreichen. Wenn die Fehler wiederholt auftreten, wird der Zustand auf einen Reserveprozessor übertragen und der fehlerhafte Prozessor in einen isolierten Zustand versetzt. Dann führt eine Steuereinheit in dem System einen Bewertungsprozess durch, der elektrische Eigenschaften wie beispielsweise eine Versorgungsspannung und eine Taktfrequenz variiert, während sie eine Reihe von Diagnoseprozeduren absolviert (z. B. ABIST und LBIST). Die Prüfungen werden so lange durchgeführt, bis ein Betriebszustand erreicht ist, in dem die Prüfungen erfolgreich bestanden werden. Als Reaktion auf das Erreichen dieses Zustands wird der Prozessor wieder zugeschaltet und empfängt vom Arbeitslastmanager neue Aufgaben.
  • Während ein Prozessor noch aktiv ist (d. h., bevor sein Zustand auf andere Prozessoren übertragen wird), kann er gemäß einer weiteren Ausführungsform auch dieser in-situ-Prüfung (z. B. im Leerlaufzustand) unterzogen werden, um sich vom intakten Zustand des Prozessors zu überzeugen. Ferner kann diese Verarbeitung an Reserveprozessoren durchgeführt werden, um für die Reserveprozessoren optimale Betriebsparameter zu ermitteln. Bei rollierender Zuweisung der Reserveprozessoren in dem System kann an allen installierten Prozessoren eine in-situ-Prüfung der Unversehrtheit durchgeführt werden. Gemäß einem Beispiel wird die in-situ-Prüfung in vorgegebenen Zeitintervallen an Reserve- oder Leerlaufprozessoren durchgeführt, um den intakten Zustand (z. B. die Leistungsfähigkeit) der installierten Prozessoren zu prüfen.
  • Gemäß einem Aspekt wird die Neubewertung durchgeführt, ohne dass eine Steuereinheit zum Wiederherstellen/Wiederholen von Anweisungen benötigt wird. Beispielsweise wird ein fehlerhafter aktiver Prozessor erkannt und ohne Unterbrechung von einem aktiven Zustand in einen inaktiven Zustand versetzt.
  • Während sich der Prozessor in dem inaktiven Zustand befindet, wird der Prozessor überprüft, um zu ermitteln, ob es einen betriebsfähigen Zustand (z. B. Spannungswert, Frequenz, Temperatur) gibt, und wenn dies der Fall ist, und zur Wiederinbetriebnahme in dem neuen betriebsfähigen Zustand bereitgestellt. Das heißt, der Prozessor wird nicht als fehlerhaft gekennzeichnet und der Nutzung entzogen, sondern seine Betriebsparameter werden so weit angepasst, dass der Prozessor, wenngleich auf einem verringerten Niveau, wiederverwendet und nicht als fehlerhaft angesehen wird. Durch das Wiederherstellen des/der Prozessor(en) sinkt die Wahrscheinlichkeit, dass die Umgebung über keine Reserveprozessoren mehr verfügt.
  • Gemäß einem Beispiel wird dieser Neubewertungsprozess in Echtzeit durchgeführt, während andere Prozessoren der Datenverarbeitungsumgebung in Betrieb bleiben. Die durch die Datenverarbeitungsumgebung bereitgestellten Dienste stehen ununterbrochen zur Verfügung, und der Prozess ist für andere Prozessoren der Umgebung transparent.
  • Als unzureichendes Leistungsniveau kann ein Niveau angesehen werden, bei dem ein Prozessor wiederkehrende Fehler aufweist, bei dem ein Prozessor die Diagnosetests nicht besteht, und/oder das Niveau von vornherein als unzureichend definiert ist. Zum Beispiel ist ein aktiver Prozessor möglicherweise nicht von wiederholten Fehlern betroffen, wird jedoch unter Umständen als nicht hinreichend leistungsfähig angesehen, wenn er bestimmte Leistungswerte nicht erreicht oder beispielsweise bei einer unerwünschten Spannung oder Taktfrequenz (oder anderen Betriebsparametern) arbeitet. Desgleichen kann ein Reserveprozessor aus ähnlichen sowie anderen Gründen als nicht hinreichend leistungsfähig angesehen werden. Die unzureichenden Leistungswerte können für jeden Prozessor vordefiniert sein.
  • Darüber hinaus arbeitet ein Prozessor gemäß einem Beispiel hinreichend leistungsfähig, wenn er keine wiederholten Fehler aufweist und/oder die an ihm ausgeführten Diagnosetests erfolgreich besteht. Gemäß weiteren Beispielen ist er hinreichend leistungsfähig, wenn er bestimmte Leistungsanforderungen oder -eigenschaften erfüllt oder bei bestimmten gewünschten Betriebsparametern arbeitet.
  • Dem Fachmann ist einsichtig, dass ein oder mehrere Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können ein oder mehrere Aspekte der vorliegenden Erfindung die Form einer kompletten Hardwareumgebung, einer kompletten Softwareumgebung (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereint, die hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Darüber hinaus können ein oder mehrere Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darauf gespeicherten computerlesbaren Programmcode verkörpert ist.
  • Es kann eine beliebige Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Im Einzelnen kommen als computerlesbares Speichermedium folgende Beispiele (eine nicht erschöpfende Aufzählung) infrage: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine austauschbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (ROM oder Flash-Speicher), ein Lichtwellenleiter, ein austauschbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
  • Gemäß einem in 3 gezeigten Beispiel beinhaltet ein Computerprogrammprodukt 300 zum Beispiel ein oder mehrere nichtflüchtige computerlesbare Speichermedien 302 zum Speichern eines computerlesbaren Programmcodemittels oder einer Programmcodelogik 304 auf dem Medium, um einen oder mehrere Aspekte der vorliegenden Erfindung bereitzustellen oder zu unterstützen.
  • Der auf einem computerlesbaren Medium verkörperte Programmcode kann unter Verwendung eines geeigneten Medium übertragen werden, darunter, ohne darauf beschränkt zu sein, drahtlos, leitungsgebunden, Lichtwellenleiter, HF usw. oder eine beliebige geeignete Kombination derselben.
  • Der Computerprogrammcode zum Ausführen von Operationen für einen oder mehrere Aspekte der vorliegenden Erfindung kann in einer beliebigen Komponente einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie beispielsweise Java®, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C”, Assembler oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplette auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Fall kann der ferne Computer mit dem Computer des Benutzers durch einen beliebigen Typ von Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel durch das Internet unter Verwendung eines Internet-Dienstanbieters). Java und alle Warenzeichen und Logos auf der Grundlage von Java sind Warenzeichen oder eingetragene Warenzeichen von Oracle und/oder deren Tochterunternehmen.
  • Hierin werden ein oder mehrere Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Anweisungen eines Computerprogramms umgesetzt werden können. Diese Anweisungen eines Computerprogramms können einem Universalcomputer, einem Spezialcomputer oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel um Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen erzeugen.
  • Die Anweisungen eines Computerprogramms können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlasst, in einer bestimmten Weise zu funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt erzeugen, das Anweisungen zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen enthält.
  • Die Anweisungen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, die eine Folge auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführender Arbeitsschritte veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Aktionen bereitstellen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen eines oder mehrerer Aspekte der vorliegenden Erfindung. Demgemäß kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Abschnitts eines Codes darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Zu beachten ist auch, dass gemäß alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge auftreten können. Zum Beispiel können je nach beabsichtigter Funktionalität zwei nacheinander gezeigte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Ferner wird darauf hingewiesen, dass jeder Block der Blockschaubilder und/oder des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
  • Zusätzlich zum oben Gesagten können ein oder mehrere Aspekte der vorliegenden Erfindung durch einen Dienstanbieter bereitgestellt, angeboten, installiert, verwaltet, betrieben werden usw., der eine Verwaltung von Kundenumgebungen anbietet. Der Dienstanbieter kann zum Beispiel einen Computercode und/oder eine Computerinfrastruktur erzeugen, warten, pflegen usw., die einen oder mehrere Aspekte der vorliegenden Erfindung für einen oder mehrere Kunden ausführen. Der Dienstanbieter wiederum kann von dem Kunden beispielsweise auf der Grundlage eines Abonnements und/oder einer Gebührenvereinbarung Zahlungen empfangen. Zusätzlich oder alternativ kann der Dienstanbieter Zahlungen für den Verkauf von Werbeinhalten an einen oder mehrere dritte Teilnehmer empfangen.
  • Gemäß einem Aspekt der vorliegenden Erfindung kann eine Anwendung zum Ausführen eines oder mehrerer Aspekte der vorliegenden Erfindung installiert werden. Beispielsweise weist das Installieren einer Anwendung das Bereitstellen einer Computerinfrastruktur auf, die in der Lage ist, einen oder mehrere Aspekte der vorliegenden Erfindung auszuführen.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann eine Datenverarbeitungsinfrastruktur installiert werden, in der ein computerlesbarer Code in ein Datenverarbeitungssystem integriert wird, wobei der Code in Kombination mit dem Datenverarbeitungssystem in der Lage ist, einen oder mehrere Aspekte der vorliegenden Erfindung auszuführen.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Erfindung kann ein Prozess zum Integrieren einer Datenverarbeitungsinfrastruktur, die einen computerlesbaren Code aufweist, in ein Computersystem bereitgestellt werden. Das Computersystem weist ein computerlesbares Medium auf, wobei das Computersystem einen oder mehrere Aspekte der vorliegenden Erfindung aufweist. Der Code ist in Kombination mit dem Computersystem in der Lage, einen oder mehrere Aspekte der vorliegenden Erfindung auszuführen.
  • Zwar wurden oben verschiedene Ausführungsformen beschrieben, jedoch stellen diese nur Beispiele dar. Zum Beispiel können Datenverarbeitungsumgebungen anderer Architekturen einen oder mehrere Aspekte der vorliegenden Erfindung einbeziehen. Ferner kann ein Zentralprozessor einen Prozessor beinhalten oder mehr Prozessoren als hier beschrieben. Weiterhin brauchen die Prozessoren nicht Teil eines Zentralprozessors zu sein. Darüber hinaus können zusätzlich zu und/oder anstelle der Spannung und/oder der Taktfrequenz andere Betriebsparameter angepasst werden, um die Funktionsfähigkeit eines Prozessors aus anderen Gründen zu verbessern. Gemäß einem Beispiel braucht ein Prozessor nicht abgeschaltet zu werden, wenn er als fehlerhaft gekennzeichnet ist. Auch viele andere Änderungen können vorgenommen werden.
  • Ferner können andere Typen von Datenverarbeitungsumgebungen von einem oder mehreren Aspekten der vorliegenden Erfindung profitieren. Beispielsweise kann eine Umgebung einen Emulator (z. B. Software- oder andere Emulationsmechanismen) beinhalten, in dem eine bestimmte Architektur (darunter zum Beispiel Anweisungsausführung, architekturdefinierte Funktionen wie beispielsweise Adressumsetzung und architekturdefinierte Register) oder eine Untergruppe derselben emuliert wird (z. B. auf einem lokalen Computersystem mit einem Prozessor und einem Speicher). In einer solchen Umgebung können eine oder mehrere Emulationsfunktionen einen oder mehrere Aspekte der vorliegenden Erfindung umsetzen, obwohl ein Computer, auf dem der Emulator ausgeführt wird, eine von den zu emulierenden Fähigkeiten abweichende Architektur aufweist. Beispielsweise wird im Emulationsmodus die betreffende zu emulierende Anweisung oder Operation decodiert und eine entsprechende Emulationsfunktion erzeugt, um die einzelne Anweisung oder Operation umzusetzen.
  • In einer Emulationsumgebung beinhaltet ein Host-Computer zum Beispiel einen Speicher zum Speichern von Anweisungen und Daten; eine Anweisungsabrufeinheit zum Abrufen von Anweisungen vom Speicher und wahlweise zum Puffern der abgerufenen Anweisungen; eine Anweisungsdecodiereinheit zum Empfangen der abgerufenen Anweisungen und zum Ermitteln des Typs der abgerufenen Anweisungen; und eine Anweisungsausführungseinheit zum Ausführen der Anweisungen. Das Ausführen kann beinhalten: Laden von Daten vom Speicher in ein Register; Rückspeichern von Daten von einem Register in den Speicher; oder Ausführen eines bestimmten Typs arithmetischer oder logischer Operationen, der durch die Decodiereinheit ermittelt wurde. Gemäß einem Beispiel wird jede Einheit durch Software umgesetzt. Zum Beispiel werden die durch die Einheiten ausgeführten Operationen als eine oder mehrere Unterroutinen innerhalb der Emulationssoftware umgesetzt.
  • Gemäß einem weiteren Beispiel kann ein zum Speichern und/oder Ausführen eines Programmcodes geeignetes Datenverarbeitungssystem verwendet werden, das mindestens einen Prozessor beinhaltet, der direkt oder indirekt durch einen Systembus mit Speicherelementen verbunden ist. Als Speicherelemente kommen zum Beispiel ein lokaler Speicher, der unmittelbar während der Ausführung des Programmcodes verwendet wird, ein Massenspeicher und ein Cachespeicher infrage, der zum vorübergehenden Speichern mindestens eines bestimmten Programmcodes dient, um die Anzahl der Zugriffe auf den Code vom Massenspeicher während der Ausführung zu verringern.
  • Eingabe/Ausgabe oder E/A-Einheiten (darunter, ohne darauf beschränkt zu sein, Tastaturen, Bildschirme, Zeigeeinheiten, DASD, Magnetbandlaufwerke, CDs, DVDs, Thumb-Drives und andere Speichermedien usw.) können entweder direkt oder durch zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein. Auch Netzwerkadapter können mit dem System verbunden sein, damit das Datenverarbeitungssystem durch zwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder fernen Druckern oder Speichereinheiten verbunden werden kann. Modems, Kabelmodems und Ethernet-Karten stellen lediglich einige wenige der verfügbaren Typen von Netzwerkadaptern dar.
  • Die hierin gebrauchten Begriffe dienen nur zum Beschreiben bestimmter Ausführungsformen und sind nicht als Einschränkung der Erfindung zu verstehen. Die hierin gebrauchten Einzahlformen „ein”, „eine” und „der, die, das” sollen gleichermaßen auch die Mehrzahlformen beinhalten, sofern nicht aus dem Zusammenhang anderes hervorgeht. Ferner ist einsichtig, dass die in dieser Beschreibung verwendeten Begriffe „weist auf” und/oder „aufweisend” das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder Hinzukommen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder deren Gruppen ausschließen.
  • Die gegebenenfalls in den folgenden Ansprüchen vorkommenden entsprechenden Strukturen, Materialien, Aktionen und Entsprechungen aller Mittel oder Schritte zuzüglich Funktionselementen sollen alle Strukturen, Materialien oder Aktionen zum Ausführen der Funktion in Kombination mit anderen ausdrücklich beanspruchten Elementen beinhalten. Die Beschreibung der vorliegenden Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung vorgelegt, erhebt jedoch nicht den Anspruch auf Vollständigkeit oder Einschränkung auf die Erfindung in der offenbarten Form. Dem Fachmann dürften viele Modifikationen und Varianten offensichtlich sein, ohne vom Schutzumfang und vom Wesensgehalt der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken eines oder mehrerer Aspekte der Erfindung und deren praktischer Anwendung bestmöglich zu erläutern und anderen Fachleuten das Verständnis eines oder mehrerer Aspekte der Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen zu erleichtern, die für die jeweils vorgesehene Verwendung geeignet sind.

Claims (19)

  1. Computersystem zum Ermöglichen der Verarbeitung in einer Datenverarbeitungsumgebung, wobei das Computersystem aufweist: einen Speicher; einen Prozessor, der Daten mit dem Speicher austauscht; ein Prüfmittel zum Prüfen eines oder mehrerer Betriebsparameter eines Prozessors zum Ermitteln, ob mindestens einer oder mehrere der Betriebsparameter angepasst werden müssen; ein Anpassungsmittel zum Anpassen mindestens eines Betriebsparameters als Reaktion auf das Feststellen, das der mindestens eine Betriebsparameter angepasst werden muss, wobei das Anpassen während des Ausführens einer Arbeitslast insofern in Echtzeit erfolgt, als die anderen Prozessoren der Datenverarbeitungsumgebung funktionsfähig bleiben; und ein Auslösemittel zum Auslösen der Prüfung des Prozessors als Reaktion auf das Anpassen, um zu ermitteln, ob der Prozessor mit dem mindestens einen angepassten Betriebsparameter auf einem vertretbaren Leistungsniveau arbeitet, wobei der Prozessor zum Ausführen der Arbeitslast verfügbar ist, wenn sich aus der Prüfung ergibt, dass der Prozessor auf einem vertretbaren Leistungsniveau arbeitet.
  2. Computersystem nach Anspruch 1, wobei der eine oder die mehreren Betriebsparameter eine Spannung, eine Taktfrequenz und/oder eine Temperatur aufweisen.
  3. Computersystem nach Anspruch 1 oder 2, das ferner ein Abrufmittel zum Abrufen einer Meldung aufweist, dass sich der Prozessor auf einem unzureichenden Leistungsniveau befindet, und wobei das Prüfmittel ferner in der Lage ist, auf der Grundlage der Meldung, dass sich der Prozessor auf einem unzureichenden Leistungsniveau befindet, eine Prüfung vorzunehmen.
  4. Computersystem nach Anspruch 3, wobei das Abrufmittel ferner in der Lage ist, einen oder mehrere Diagnosetests auszuführen, wenn der Prozessor wiederholte Fehler aufweist und nachdem der Zustand von dem Prozessor ausgelagert wurde, und eine Fehlersignatur zu empfangen, die anzeigt, dass sich der Prozessor auf einem unzureichenden Leistungsniveau befindet.
  5. Computersystem nach Anspruch 1, wobei das Prüfmittel ferner in der Lage ist, in vorgegebenen Zeitintervallen zu prüfen.
  6. Computersystem nach einem der Ansprüche 1 bis 5, wobei das Prüfmittel ferner in der Lage ist zu ermitteln, ob eine Versorgungsspannung des Prozessors einen vorgegebenen Spannungswert erreicht und wobei das Anpassungsmittel ferner in der Lage ist, die Spannung des Prozessors zu ändern, wenn festgestellt wurde, dass die Versorgungsspannung den vorgegebenen Spannungswert nicht erreicht.
  7. Computersystem nach Anspruch 6, wobei das Prüfmittel ferner in der Lage ist zu ermitteln, ob eine Taktfrequenz des Prozessors eine vorgegebene Frequenz erreicht, wenn die Versorgungsspannung den vorgegebenen Spannungswert erreicht, wobei das Anpassungsmittel ferner in der Lage ist, die Taktfrequenz zu ändern, wenn festgestellt wurde, dass die Taktfrequenz die vorgegebene Frequenz nicht erreicht.
  8. Computersystem nach Anspruch 6, wobei das Prüfmittel ferner als Reaktion auf ein Ermitteln, dass das Leistungsniveau des Prozessors ein unzureichendes Niveau erreicht hat, in der Lage ist zu ermitteln, ob eine Taktfrequenz eine vorgegebene Frequenz erreicht hat, und wobei das Anpassungsmittels ferner in der Lage ist, die Taktfrequenz zu ändern, wenn festgestellt wurde, dass die Taktfrequenz nicht die vorgegebene Frequenz erreicht hat.
  9. Computersystem nach einem der vorhergehenden Ansprüche, wobei das Prüfmittel ferner in der Lage ist zu ermitteln, ob eine Taktfrequenz des Prozessors eine vorgegebene Frequenz erreicht hat, und wobei das Anpassungsmittel ferner in der Lage ist, die Taktfrequenz zu ändern, wenn festgestellt wurde, dass die Taktfrequenz nicht die vorgegebene Frequenz erreicht hat.
  10. Computersystem nach einem der vorhergehenden Ansprüche, wobei das Prüfmittel ferner in der Lage ist: einen oder mehrere Diagnosetests auszuführen; und auf der Grundlage des einen oder der mehreren Diagnosetests zu ermitteln, ob der Prozessor ein vertretbares Leistungsniveau erreicht hat.
  11. Verfahren zum Ermöglichen der Verarbeitung in einer Datenverarbeitungsumgebung, wobei das Verfahren aufweist: Prüfen eines oder mehrerer Betriebsparameter eines Prozessors durch eine Hardwaresteuereinheit der Datenverarbeitungsumgebung, um zu ermitteln, ob mindestens ein oder mehrere der Betriebsparameter angepasst werden müssen; Anpassen des mindestens einen Betriebsparameters auf der Grundlage des Prüfergebnisses, dass der mindestens eine Betriebsparameter angepasst werden muss, wobei das Anpassen während der Ausführung einer Arbeitslast insofern in Echtzeit erfolgt, als andere Prozessoren der Datenverarbeitungsumgebung funktionsfähig bleiben; und Auslösen einer Prüfung des Prozessors auf der Grundlage des Anpassens, um zu ermitteln, ob der Prozessor mit dem mindestens einen angepassten Betriebsparameter auf einem unzureichenden Leistungsniveau arbeitet, wobei der Prozessor zum Ausführen einer Arbeitslast verfügbar ist, wenn der Prozessor gemäß dem Prüfergebnis auf einem vertretbaren Leistungsniveau arbeitet.
  12. Verfahren nach Anspruch 11, wobei das Prüfen ferner ein Ermitteln aufweist, ob eine Versorgungsspannung des Prozessors einen vorgegebenen Spannungswert erreicht hat, und wobei das Anpassen ein Ändern der Spannung des Prozessors aufweist, wenn ermittelt wurde, dass die Versorgungsspannung nicht den vorgegebenen Spannungswert erreicht hat
  13. Verfahren nach Anspruch 12, wobei das Prüfen ferner auf der Grundlage, dass die Versorgungsspannung einen vorgegebenen Spannungswert erreicht hat, ein Ermitteln aufweist, ob eine Taktfrequenz des Prozessors die vorgegebene Frequenz erreicht hat, und wobei auf der Grundlage, dass die Taktfrequenz nicht die vorgegebene Frequenz erreicht hat, das Anpassen ein Ändern der Taktfrequenz aufweist.
  14. Verfahren nach Anspruch 12, wobei das Prüfen ferner auf der Grundlage des Ermittelns, dass das Leistungsniveau des Prozessors nach dem Ändern der Spannung ein unzureichendes Niveau erreicht hat, ein Ermitteln aufweist, ob eine Taktfrequenz eine vorgegebene Frequenz erreicht hat, und wobei auf der Grundlage des Ermittelns, dass die Taktfrequenz nicht die vorgegebene Frequenz erreicht hat, das Anpassen ein Ändern der Taktfrequenz aufweist.
  15. Verfahren nach einem der Ansprüche 11 bis 14, wobei das Prüfen ein Ermitteln aufweist, ob eine Taktfrequenz des Prozessor eine vorgegebene Frequenz erreicht hat, und wobei auf der Grundlage des Ermittelns, dass die Taktfrequenz nicht die vorgegebene Frequenz erreicht hat, das Anpassen ein Ändern der Taktfrequenz aufweist.
  16. Verfahren nach einem der Ansprüche 11 bis 15, das ferner ein Abrufen einer Meldung aufweist, dass sich der Prozessor auf einem unzureichenden Leistungsniveau befindet, und wobei das Prüfen auf der Meldung beruht, dass sich der Prozessor auf einem unzureichenden Leistungsniveau befindet.
  17. Verfahren nach einem der Ansprüche 11 bis 16, wobei das Prüfen in vorgegebenen Zeitintervallen erfolgt.
  18. Computerprogrammprodukt zum Ermöglichen der Verarbeitung in einer Datenverarbeitungsumgebung, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und auf dem Anweisungen zum Ausführen durch die Verarbeitungsschaltung gespeichert werden, um ein Verfahren nach einem der Ansprüche 11 bis 17 durchzuführen.
  19. Computerprogramm, das auf einem computerlesbaren Medium gespeichert und in den internen Speicher eines digitalen Computers ladbar ist, das Abschnitte eines Softwarecodes aufweist, die – bei Ausführung des Programms auf einem Computer das Verfahren nach einem der Ansprüche 11 bis 17 durchführt.
DE112013000330.9T 2012-01-19 2013-01-11 In-Situ-Neubewertung von Prozessoren Pending DE112013000330T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/353,544 2012-01-19
US13/353,544 US9152518B2 (en) 2012-01-19 2012-01-19 In situ processor re-characterization
PCT/EP2013/050459 WO2013107694A1 (en) 2012-01-19 2013-01-11 In situ processor re-characterization

Publications (1)

Publication Number Publication Date
DE112013000330T5 true DE112013000330T5 (de) 2014-10-09

Family

ID=47561607

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013000330.9T Pending DE112013000330T5 (de) 2012-01-19 2013-01-11 In-Situ-Neubewertung von Prozessoren

Country Status (5)

Country Link
US (2) US9152518B2 (de)
CN (1) CN104067234B (de)
DE (1) DE112013000330T5 (de)
GB (1) GB2512529B (de)
WO (1) WO2013107694A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311202B2 (en) * 2012-11-01 2016-04-12 Futurewei Technologies, Inc. Network processor online logic test
US10310572B2 (en) 2016-06-10 2019-06-04 Microsoft Technology Licensing, Llc Voltage based thermal control of processing device
US10338670B2 (en) 2016-06-10 2019-07-02 Microsoft Technology Licensing, Llc Input voltage reduction for processing devices
US10209726B2 (en) 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10248186B2 (en) * 2016-06-10 2019-04-02 Microsoft Technology Licensing, Llc Processor device voltage characterization
US9727399B1 (en) 2016-09-29 2017-08-08 International Business Machines Corporation Residue-based checking of a shift operation
US10318406B2 (en) 2017-02-23 2019-06-11 International Business Machines Corporation Determine soft error resilience while verifying architectural compliance
US10229748B1 (en) 2017-11-28 2019-03-12 International Business Machines Corporation Memory interface latch with integrated write-through function
US10381098B2 (en) 2017-11-28 2019-08-13 International Business Machines Corporation Memory interface latch with integrated write-through and fence functions
US11782777B1 (en) * 2022-06-22 2023-10-10 International Business Machines Corporation Preventing extraneous messages when exiting core recovery

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490059A (en) 1994-09-02 1996-02-06 Advanced Micro Devices, Inc. Heuristic clock speed optimizing mechanism and computer system employing the same
US5623647A (en) 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
US7111178B2 (en) * 2001-09-28 2006-09-19 Intel Corporation Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system
US6803782B2 (en) 2002-03-21 2004-10-12 John Conrad Koob Arrayed processing element redundancy architecture
US7080267B2 (en) * 2002-08-01 2006-07-18 Texas Instruments Incorporated Methodology for managing power consumption in an application
US6908227B2 (en) * 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US7353409B2 (en) * 2004-06-29 2008-04-01 International Business Machines Corporation System and method to maintain data processing system operation in degraded system cooling condition
US7386737B2 (en) * 2004-11-02 2008-06-10 Intel Corporation Method and apparatus to control temperature of processor
US8375247B2 (en) 2005-08-29 2013-02-12 The Invention Science Fund I, Llc Handling processor computational errors
US7650527B2 (en) 2006-02-07 2010-01-19 Broadcom Corporation MIPS recovery technique
US20070300115A1 (en) 2006-06-01 2007-12-27 Ramyanshu Datta Apparatus and method for accelerating test, debug and failure analysis of a multiprocessor device
US7584369B2 (en) * 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US7966538B2 (en) 2007-10-18 2011-06-21 The Regents Of The University Of Michigan Microprocessor and method for detecting faults therein
US8578193B2 (en) * 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
US8296773B2 (en) 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
US7895374B2 (en) 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8635470B1 (en) * 2009-12-16 2014-01-21 Applied Micro Circuits Corporation System-on-chip with management module for controlling processor core internal voltages
US8874949B2 (en) * 2011-12-22 2014-10-28 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including enhanced temperature based voltage control

Also Published As

Publication number Publication date
GB2512529B (en) 2018-06-06
GB2512529A (en) 2014-10-01
WO2013107694A4 (en) 2013-10-10
WO2013107694A1 (en) 2013-07-25
US9176837B2 (en) 2015-11-03
US20130191678A1 (en) 2013-07-25
US20130191690A1 (en) 2013-07-25
US9152518B2 (en) 2015-10-06
CN104067234A (zh) 2014-09-24
GB201411904D0 (en) 2014-08-20
CN104067234B (zh) 2015-12-30

Similar Documents

Publication Publication Date Title
DE112013000330T5 (de) In-Situ-Neubewertung von Prozessoren
DE102012215216B4 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE112006002265B4 (de) Zuverlässiges Rechnen mit einem Mehrkern-Prozessor
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE112010004420T5 (de) Verfahren und System zur Verbesserung der Ausführungszeit von Software durch Optimierung elnes Leistungsmodells
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE102016105589A1 (de) Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE102017217968A1 (de) Generieren eines Verschiebungsprotokolls für virtuelle Maschinen
DE112011100166T5 (de) Starten von virtuellen Instanzen in einer Cloud-Computing-Umgebung
DE112012003716T5 (de) Erzeugen von kompiliertem Code, der Registeraktivität angibt
DE112012001660T5 (de) Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
DE112011103408T5 (de) Verwalten von komprimiertem Speicher unter Verwendung gestaffelter Interrupts
DE102012203534B4 (de) Hardware-Charakterisierung für die Anwendung in Bezug auf virtuelle Umgebungen
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112013002995T5 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE112014000336T5 (de) Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip
DE112016005823T5 (de) Überwachen des betriebs eines prozessors
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112006003504T5 (de) Detektion von Cachespeicher-Disassoziierung
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern
DE112016007336T5 (de) Informationsverarbeitungsvorrichtung, Vorrichtungszuweisungsverfahren undVorrichtungszuweisungsprogramm
DE102006046717B4 (de) Dynamisch migrierende Kanäle
DE102012224276A1 (de) Verzögerte Ausführung auf mehreren Prozessoren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence