[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69126498T2 - Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems - Google Patents

Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems

Info

Publication number
DE69126498T2
DE69126498T2 DE69126498T DE69126498T DE69126498T2 DE 69126498 T2 DE69126498 T2 DE 69126498T2 DE 69126498 T DE69126498 T DE 69126498T DE 69126498 T DE69126498 T DE 69126498T DE 69126498 T2 DE69126498 T2 DE 69126498T2
Authority
DE
Germany
Prior art keywords
uev
unit
error
system bus
bus
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.)
Expired - Fee Related
Application number
DE69126498T
Other languages
English (en)
Other versions
DE69126498D1 (de
Inventor
George J Barlow
Thomas F Joyce
James W Keeley
Richard P Kelly
Robert V Ledoux
Richard A Lemay
Robert C Miller
Jian-Kuo Shen
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Application granted granted Critical
Publication of DE69126498D1 publication Critical patent/DE69126498D1/de
Publication of DE69126498T2 publication Critical patent/DE69126498T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • 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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • 1. Patentanmeldung von Ming-Tzer Miu und Thomas F. Joyce, Titel: "Production Line Method and Apparatus for High Performance Instruction Execution", eingereicht am 19. Dezember 1988 mit Seriennummer 07/286,580, demselben übertragen wie diese Patentanmeldung. (EP-A-0 378 816)
  • 2. Patentanmeldung von David E. Cushing, Romeo Kharileh, Jian-Kuo Shen und Ming-Tzer Miu, Titel: "Dual Port Read/Write Register File Memory", eingereicht am 19. Dezember 1988 mit Seriennummer 07/286,552, erteilt als US-Patent Nr. 4,933,909 am 12. Juni 1990, demselben übertragen wie diese Patentanmeldung. (EP-A-0 374 829)
  • 3. Patentanmeldung von Jian-Kuo Shen, Richard P. Kelly, Robert V. Ledoux und Deborah K. Staplin, Titel: "Control Store Addressing from Multiple Sources", eingereicht am 19. Dezember 1988 mit Seriennummer 07/286,578, demselben übertragen wie diese Patentanmeldung. (EP-A-0 374 598)
  • 4. Patentanmeldung von Richard P. Kelly, Jian-Kuo Shen, Robert V. Ledoux und Chester M. Nibby, Jr., Titel: "Control Store Double Pump Operation", eingereicht am 19. Dezember 1988 mit Seriennummer 07/286,581, erteilt als US-Patent Nr. 4,916,601 am 10. April 1990, demselben übertragen wie diese Patentanmeldung.
  • 5. Patentanmeldung von Richard P. Kelly und Robert V. Ledoux, Titel: "Control Store Address Generator for Developing Unique Instruction Execution Starting Address", eingereicht am 19. Dezember 1988 mit Seriennummer 07/286,582, demselben übertragen wie diese Patentanmeldung. (EP-A-0 374 830)
  • 6. Patentanmeldung von David E. Cushing, Richard P. Kelly, Robert V. Ledoux und Jian-Kuo Shen, Titel: "Mechanism for Automatically Updating Multiple Unit Register File Memories in Successive Cycles for a Pipelined Processing System," eingereicht am 19. Dezember 1988 mit Seriennummer 07/286,551, demselben übertragen wie diese Patentanmeldung. (US-A-4 980 819)
  • 7. Patentanmeldung von Richard P. Kelly und Robert V. Ledoux, Titel: "Automatic Data Steering Mechanism for Alignment of Operands into and out of an Execution Unit", eingereicht am 31. März 1989 mit Seriennummer 07/331,991, übertragen demselben wie diese Patentanmeldung. (US-A-5 179 671)
  • 8. Patentanmeldung von Robert V. Ledoux, Richard P. Kelly und Forrest M. Phillips, Titel: "Ring Reduction Logic Mechanism", eingereicht am 31. März 1989 mit Seriennummer 07/332,258, demselben übertragen wie diese Anmeldung (EP-A-0 389 886)
  • 9. Patentanmeldung von Deborah K. Staplin, Jian-Kuo Shen und Ming-Tzer Miu, Titel: "Resource Conflict Detection Method and Apparatus Included in a Pipelined Processing Unit", eingereicht am 30. Juni 1989 mit Seriennummer 07/374,882, übertragen demselben wie diese Anmeldung. (EP-A-0 405 489)
  • 10. Patentanmeldung von Deborah K. Staplin und Jian-Kuo Shen, Titel: "Instruction Unit Logic Management Apparatus Included in a Pipelined Processing Unit", eingereicht am 30. Juni 1989 mit Seriennummer 07/374,881, demselben übertragen wie diese Anmeldung. (EP-A-0 405 495)
  • 11. Patentanmeldung von Forrest M. Phillips, Titel: "Least Recently Used Replacement Level Generating Apparatus", eingereicht am 1. September 1989 mit Seriennummer 07/402,192, demselben übertragen wie diese Anmeldung. (US-A-5 125 085)
  • 12. Patentanmeldung von Thomas F. Joyce, Ming-Tzer Miu und Richard P. Kelly, Titel: "Apparatus and Method for Increased Operand Availability in a Data Processing Unit with a Store Through Cache Memory Unit Strategy", eingereicht am 5. Januar 1989 mit Seriennummer 07/294,529, demselben übertragen wie diese Anmeldung. (EP-A-0 377 436)
  • 13. Patentanmeldung von Thomas F. Joyce, Robert C. Miller und Marc Vogt, Titel: "Apparatus and Method for Data Group Coherency in a Tightly Coupled Data Processing System", eingereicht am 5. Januar 1989 mit Seriennummer 07/294,534, demselben übertragen wie diese Anmeldung. (US-A-5 051 894)
  • 14. Patentanmeldung von Forrest M. Phillips, Thomas F. Joyce und Ming- Tzer Miu, Titel: "Apparatus and Method for Address Translation of Non-Aligned Double Word Virtual Addresses", eingereicht am 5. Januar 1989 mit Seriennummer 07/294,528, demselben übertragen wie diese Anmeldung. (EP-A-0 377 431)
  • HINTERGRUND DER ERFINDUNG Anwendungsgebiet
  • Die vorliegende Erfindung bezieht sich auf Datenverarbeitungssysteme, insbesondere auf fehlertolerante Systeme.
  • Stand der Technik
  • In dem Maße, wie Datenverarbeitungssysteme mit der Durchführung von immer kritischeren Aufgaben betraut werden, die eine hohe Abhängigkeit erfordern, verstärkt dies die Notwendigkeit für derartige Systeme, fehlertolerant zu sein. Das Ziel eines fehlertoleranten Entwurfes besteht nach einer Formulierung darin, die Zuverlässigkeit zu erhöhen, indem das System befähigt wird, seine bestimmte Funktion bei dem Vorhandensein einer gegebenen Anzahl von Fehlern durchzuführen.
  • Fehlertoleranz bei Datenverarbeitungssystemen wurde erreicht durch Redundanzen bei Hardware, Software, Information und/oder Berechnungen. Eine Fehlertoleranz-Strategie soll eines oder mehrere der folgenden Elemente aufweisen. Sie umfaßt Maskieren (dynamische Korrektur von erzeugten Fehlern); Erfassung von Fehlern (Symptomen von Fehlern); Abschottung (Verhinderung von Fehlerausbreitung über definierte Grenzen); Diagnose (Identifikation des fehlerhaften Moduls, welches für einen erfaßten Fehler verantwortlich ist); Reparatur/Neukonfiguration (Eliminierung oder Ersetzung einer fehlerhaften Komponente oder Mechanismus zum Umgehen von dieser); und System-Wiederherstellung (Korrektur des Systems in einen Zustand, der für fortgesetzten Betrieb akzeptabel ist).
  • Wiederherstellung ist definiert als die Fortsetzung des Systembetriebs mit Datenintegrität, nachdem ein Defekt oder Fehler auftritt. Manch einer betrachtet dynamische Wiederherstellung als wesentlich für ein fehlertolerantes Datenverarbeitungssystem, wenn Informationsintegrität zu bewahren ist als eine Konsequenz minimaler Fehlerausbreitung.
  • Dynamische Wiederherstellung hat die Verwendung von selbsttestenden und dynamisch überprüfter Logikschaltungen verwendet, ganz speziell in der Form von Schnittstellenfehler-Prüfeinrichtungen. Implementierung von dynamischem Hardware-Wiederversuch wurde verwendet, um die Wirkungen transienter Hardware-Fehler in transparenter Weise für den Rest des Systems zu überwinden.
  • Ein Ansatz bei der Implementierung dynamischer Wiederherstellung beinhaltete die Verwendung einer Wiederherstellungs-Steuerungseinheit (RCU). Die RCU wird verwendet, um Fehlersignale zu analysieren, manchmal um schnelle Hardware-Diagnose durchzuführen und manchmal, um Unterbrechungen für zusätzliche Programmhilfe, wie z. B. Diagnosen, einzuleiten. Als solche schafft die RCU die Basis für dynamische Interaktion zwischen Hardware und Software zur Wiederherstellung. Dieser Ansatz ist eingehend beschrieben in dem Artikel mit dem Titel "Logic Design for Dynamic Interactive Recovery" von W. C. Carter et al., veröffentlicht in der Ausgabe von November 1971 von IEEE Transactions on Computers, Band C-20, Nr. 11, Seiten 1300-1305.
  • Es gab rasche Änderungen bei Computer-Architekturen mit erhöhter Integration in VLSI-Bauelementen und extensiver Verwendung von Pipeline- Techniken. Diese resultierten in signifikant komplexeren Entwürfen, welche die Verwendung von kundenspezifischen VLSI-Chips für die Implementierung der verschiedenen pipeline-verschalteten Stufen einer Verarbeitungseinheit beinhalten, welche mehrere Befehle parallel bei hoher Geschwindigkeit ausführen.
  • Diese Komplexität und Geschwindigkeit gestalten es ausgesprochen schwierig, eine Fehlertoleranz-Strategie zu implementieren, wegen Schwierigkeiten bei der Definition von Schnittstellen-Grenzen und bei der Erfassung von Fehlern ohne Einführung von substantieller Verdopplung von Hardware.
  • Fehler werden im allgemeinen eingeteilt hinsichtlich ihrer Dauer, Art und ihres Ausmaßes. Die Dauer eines Fehlers kann transient, intermittierend oder permanent sein. Ein transienter Fehler existiert häufig als Ergebnis externer Störungen während einer begrenzten Zeitdauer und ist nicht wiederkehrend. Ein System mit einem intermittierenden Fehler oszilliert zwischen fehlerhaftem und fehlerfreiem Betrieb, der gewöhnlich von einer marginalen oder instabilen (metastabilen) Komponenten-Operation herrührt. Permanente oder sog. "harte" Fehler sind Komponenten-Bedingungen, die sich nicht mit der Zeit ändern oder korrigieren. Sie resultieren aus Komponenten-Fehlern, physikalischer Beschädigung oder Entwurfsfehlern. Es wurde beobachtet, daß intermittierende Fehler (sog. weiche Fehler) typischerweise mit höherer Häufigkeit auftreten als "harte" Fehler. Derartige Fehler sind schwieriger zu erfassen, da sie verschwinden können, nachdem sie Fehler produziert haben.
  • Wie erwähnt, machen es alle der oben diskutierten Änderungen bei Computer-Architekturen sehr schwierig, Wiederherstellungs-Strategien für verschiedenartige Typen von Fehlern zu implementieren, ohne dem Entwurf Komplexität hinzuzufügen. Diese Schwierigkeiten werden weiter verschlimmert in dem Fall eng gekoppelter Mikroprozessor-Systeme, die mehrere VLSI- Verarbeitungseinheiten enthalten, insbesondere wenn diese Einheiten mikroprogrammiert oder firmware-gesteuert sind. Ein derartiges Mikroprozessor-System antwortet auf bestimmte Fehler, wie etwa Firmware- Paritätsfehler oder Schattenchip-Fehlübereinstimmungsfehler, durch Bewirken, daß die Verarbeitungseinheit zu einem Anhalten kommt. Dieser Ansatz stellte der Software wenig oder gar keine Gelegenheit zur Verfügung, sich zu erholen. Des weiteren könnte das Anhalten des Prozessors in derartigen Fällen dazu führen, daß das System in einen nicht erholbaren Zustand gesetzt wird.
  • Für weitere Information hinsichtlich Fehler-Klassifizierungen und bestimmter kommerzieller Computer, die Fehlertoleranz-Strategien beinhalten, sei auf die Artikel verwiesen mit Titel "Fault-Tolerant Computing: Fundamental Concepts" von Victor P. Nelson und "Fault Tolerance in Commercial Computers" von Daniel P. Siewiorek, erschienen in der Ausgabe Juli 1990 von "Computer", veröffentlicht durch IEEE.
  • Dementsprechend ist es ein primäres Ziel der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zum Ausführen einer Fehlertoleranz-Strategie zu schaffen, welche die Komplexität einer Computer-Architektur nicht erhöht.
  • Es ist ein spezielleres Ziel der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zum Ermöglichen zuverlässiger Heilung von Fehlern zu schaffen, welche innerhalb der Stufen eines Pipeline-Datenverarbeitungseinheits-Subsystems eines Mikroprozessor-Systems auftreten.
  • Die obigen und weitere Ziele werden erreicht durch Anwenden der Merkmale, die in den unabhängigen Ansprüchen 1 und 2 definiert sind. Weitere Merkmale und Aspekte der Vorrichtung und Zusätze hierzu sind in den entsprechenden Unteransprüchen definiert.
  • KURZFASSUNG DER ERFINDUNG
  • Die erfindungsgemäße Ausgestaltung schafft ein Verfahren und eine Vorrichtung zum Entscheiden, ob eine von einer Mehrzahl von Pipeline- Verarbeitungseinheiten in einem Multiprozessorsystem genügend vertrauenswürdig ist, um sich von einer durch eine Unterbrechungsoperation signalisierten Fehlersituation zu erholen.
  • Die Erfindung kann in ein Pipeline-Zentralverarbeitungs-Untersystem (CSS) eingefügt werden, wie z.B. den Typ von System, welches Gegenstand der europäischen Patentanmeldung EP-A-0 378 816 mit Titel "Production Line Method and Apparatus for High Performance Instruction Execution" ist, welche denselben Inhaber wie die vorliegende Anmeldung hat.
  • Die CSS-Einheit ist ein Prozessor eines eng gekoppelten Multiprozessor- Systems, bei welchem die CSS-Einheit gemeinsam verbunden ist mit einem Systembus zum sich Teilen von Hauptspeicher und Eingangs/Ausgangs- Resourcen wie z.B. periphere, Kommunikations- und Eingabe/Ausgabe- Steuereinrichten/-Vorrichtungen.
  • Jede CSS-Einheit umfaßt eine Mehrzahl von VLSI-Chip-Schaltungsstufen, wovon sich einige gemeinsame firmware-gesteuerte Elemente teilen. Wie in der betreffenden Patentanmeldung beschrieben, umfaßt die CSS-Einheit eine Zentralverarbeitungseinheit (CPU), eine virtuelle Speichereinheit (VMU) und eine Cache-Einheit. Die Cache-Einheit ist mit dem Systembus durch eine Bus-Schnittstelleneinheit (BIU) verbunden. Die CPU umfaßt eine Befehlseinheit-Stufe (I-Einheit), eine Adreßeinheit-Stufe (A-Einheit) und eine Anzahl von Parallel-Ausführungseinheit-Stufen (E-Einheit, C-Einheit). Die Cache- Einheit umfaßt einen Befehls-Cache (I-Cache) und einen Daten-Cache (E- Cache).
  • Die I-Einheit-, A-Einheit- und E-Einheit-Stufen bestehen aus kundenspezifischen VLSI-Chip-Schaltungen und befinden sich auf einer ersten Schaltungsplatine (Motherboard, Hauptplatine). Die VMU-, 1-Cache- und E- Cache-Schaltungen befinden sich auf einer anderen Schaltungsplatine (Daughterboard, Unterplatine).
  • Die BIU-Schnittstellenschaltungen bilden einen Teil der Schaltungen einer zweiten Hauptplatine. Entsprechend der Lehren der vorliegenden Erfindung umfaßt die BIU-Platine auch spezielle Register und Steuerschaltungen, die verwendet werden, um auf bestimmte Typen ungewöhnlicher Ereignis-(UEV) Signale zu antworten, die angeben, daß ein Fehler erfaßt worden ist, und zum Initiieren bestimmter Aktionen, um die Integrität von Systemdaten zu bewahren.
  • Gemäß den Lehren der vorliegenden Erfindung umfaßt jede Schaltungsplatine eine oder mehrere UEV-Detektorschaltungen, die entworfen sind, um zu erfassen, wenn die ihr zugeordnete Pipeline-Stufe abnormales Verhalten zeigt. Die Bezeichnung "abnormales Verhalten" bezieht sich auf die Durchführung von Operationen durch eine Stufe, welche keinen Sinn hinsichtlich der normalerweise durch diese Stufe durchgeführten Funktionen machen.
  • Beispielsweise sind diese Detektorschaltungen in der Lage, abnormale Verhaltensbedingungen zu erfassen, wie z.B. das Einnehmen eines ungewöhnlichen Maschinenstatus, der keinen Sinn hinsichtlich der angelegten Eingangssignale macht, das Senden oder Empfangen einer unsauberen Sequenz von Befehlen, in welcher ein Versuch ist, eine Operation durchzuführen, die inkonsistent mit einer zuvor durchgeführten Operation ist, oder ein Versuch, auf eine Firmware-Steuer-Speicherstelle zuzugreifen, die inkonsistent mit normaler Operation ist.
  • Die UEV-Detektorschaltungen schaffen eine frühe Möglichkeit zum Erfassen von Verhaltenssymptomen, die anzeigen, wenn die CSS-Einheit abnormal oder unsauber arbeitet. Da es in derartigen Fällen unklug wäre, die Befehlsausführung fortzusetzen, wird die CSS-Einheit veranlaßt, das Arbeiten in einem Pipeline-Modus zu beenden, und wird dazu gebracht, in einen Nichtpipeline- Modus umzuschalten, der es der firmware-gesteuerten CPU ermöglicht, die Steuerung der CSS-Einheit einzurichten.
  • Genauer gesagt, wenn ein UEV-Fehler durch irgendeine der drei Schaltungsplatinen erfaßt wird, wird ein UEV-Fehlersignal an die BIU-Steuerschaltungen gesendet. Dieses veranlaßt die BIU-Steuerschaltungen, sofort weitere Kommunikationen mit dem Systembus zu beenden durch Beenden der Ausgabe jeglicher weiterer Systembus-Abfragen. Diese Aktion bewahrt die Integrität der Systemdaten durch Verhindern der Kontamination derartiger Daten durch die sich fehlverhaltende CSS-Einheit. Auch sendet die BIU das CSS-UEV-Fehlersignal an alle CSS-Stufen. Dieses gesendete Signal bewirkt, daß die Pipeline-Stufen die Vollendung aller Befehle innerhalb der Pipeline emulieren, so daß sie ausgespült wird. Beispielsweise wird allen Speicherschreib-Operationen/Befehlen erlaubt, zu dem Punkt in der CSS-Einheit hinunter zu fließen, wo sie durch die BIU empfangen werden. In Antwort auf derartige Anforderungen erzeugt die BIU ein Fertig-Signal an die abfragende Stufe mit dem Hinweis, daß die Operation durchgeführt wurde, ohne tatsächlich die Daten in den Speicher einzuschreiben. Auch wird die Cache-Einheit-Stufe alle Cache-Verfehlungen in Treffer konvertieren, was den Stufen ermöglicht, ihre ausstehenden Operationen mit den für gültig gehaltenen Daten zu vollenden.
  • Sobald die Pipeline geleert ist und die I-Einheit das Abrufen des letzten Befehls vollendet hat, übernimmt die E-Einheit die Steuerung der CSS- Einheit. Genauer gesagt, umfaßt die Firmware-Steuer-Speichereinheit der E- Einheit eine UEV-Mikrocode-Firmware-Behandlungsroutine, in die durch die E-Einheit verzweigt wird. Diese Routine schreibt in eine Gruppe von A- Einheit-Registerdatei-Arbeitsregisterstellen die Inhalte der innerhalb jeder Leitungsplatine enthaltenen Syndrom-Register. Sie schreibt in eine letzte arbeitende Stelle in der Gruppe Angaben zum Angeben, ob es ein externer oder interner UEV war oder nicht, und wenn intern, ob es ein Firmware- oder Hardware-UEV war. Im Fall eines Firmware-UEV wird die Firmware- Adresse, welche den UEV erzeugte, auch in die Arbeitsstelle geschrieben.
  • Zusätzlich schreibt sie die Inhalte derselben Arbeitsstellen in den Hauptspeicher ein. Genauer gesagt, bewirkt die Firmware-Unterbrechungs Behandlungsroutine in Antwort auf die UEV-Bedingung, daß alle Syndrom- Register-Inhalte in einem speziell zugewiesenen Erweiterungsbereich des normalen Unterbrechungs-Speicherungsbereichs eingeschrieben werden, welcher derjenige Bereich ist, der normalerweise zum Speichern von Kontext- Information reserviert ist. Dies ermöglicht dem Betriebssystem, die Hardware und Firmware-Verhaltens-Information zu bewahren, zusätzlich zu anderer Statusinformation für weitere Analyse.
  • Die Syndromregister umfassen die UEV-Fehlerangaben zusätzlich zu Schlüsselfehlerbedingungen, welche die Art der Umgebung weiter definieren, wenn der Fehler auftrat. Die UEV-Behandler-Routine verursacht das Löschen eines BIU-UEV-Interrupt-Indikators, was es ihr ermöglicht, Kommunikationen mit dem Systembus wiederaufzunehmen. Die UEV-Behandler-Routine verursacht auch, daß eine einmalige Unterbrechung aufgebaut wird, welche angibt, ob der erfaßte Fehler intern oder extern zu der CSS-Einheit war. Die Erzeugung der Unterbrechung stützt sich auf eine Analyse verschiedener Bits innerhalb bestimmter Syndrom-Register zusätzlich zu anderer Kontext- Information.
  • Bei Abwesenheit eines anderen aufgetretenen UEV-Fehlers, der auf eine "harte" Fehlerbedingung hindeutet, ermöglicht die UEV-Behandler-Routine der I-Einheit, ihren Adreßzähler zu laden, um den ersten Befehl der Unterbrechungs-Behandler-Software abzurufen, und die Pipeline ist in der Lage, die Befehlsausführung wieder aufzunehmen.
  • Gemäß den Lehren der vorliegenden Erfindung ermöglicht es die extensive Information, welche hinsichtlich Hardware- und Firmware-Verhalten bereitgestellt wird, durch die Verwendung von UEV-Detektorschaltungen und die Fehlerinformation, daß die Betriebssystem-Software ihre eigene Entscheidung treffen kann, ob sie mit der Hardware einig ist, daß der Fehler "weicher" oder transienter Natur war, und gefährdet nicht die Gesamtintegrität des Systems. Das heißt, das Betriebssystem aus seiner Perspektive ist in der Lage, zuverlässig zu entscheiden, ob das System noch vertrauenswürdig ist.
  • Es beurteilt auch, ob der betroffene Task (d.h. der Task, der während des Auftretens der UEV-Bedingung ablief, ein kritischer Systeme-Task oder Benutzer-Task beim Ablauf einer kritischen Systemfunktion war, dort wo er lief und ausfiel, als er eine Semaphor-Operation bearbeitete oder eine Umlaufsperre (Spin-Lock) kreisende Verriegelung hielt. Wenn die Unterbrecher-Behandler-Software entscheidet, daß die Integrität des Betriebssystems in Zweifel ist, obwohl sogar die darunterliegende Hardware und Firmware signalisiert hatte, daß es vertrauenswürdig ist, bewirkt die Software, daß das System in ein Hochprioritäts-Verarbeitungsniveau schaltet.
  • Sich darauf stützend, ob die Unterbrechung extern oder intern war, erfaßt die Betriebssystem-Software verschiedene Informationen, welche an ein technisches Hilfs-(Service)-Zentrum (TAC) weitergegeben werden, wo weitere Analyse durchgeführt werden kann. Wo die Unterbrechung einen internen CSS-Fehler signalisierte, leitet das Betriebssystem Syndrom-Register- Inhalte, die in dem erweiterten unterbrechungssicheren Bereich gespeichert sind, an das TAC weiter, wo sie in ein Fehler-Logbuch eingeschrieben werden. Die Betriebssystem-Software wird ihre Arbeit fortsetzen und den Task beenden, der zur Zeit der internen Unterbrechungsbedingung ablief. Die erfindungsgemaße Verwendung von separaten Syndrom-Registern innerhalb jeder Schaltungskarte erleichtert die TAC-Identifikation der optimalen ersetzbaren Einheit (ORU) oder Schaltungskarte, welche den UEV-Fehler produzierte.
  • Die Methodologie der vorliegenden Erfindung ermöglicht es dem System, sich von transienten oder weichen Fehlern in zuverlässiger Weise zu erholen. Sie ermöglicht auch die Erfassung von Fehlern durch die Sammlung von ungewöhnlichen Ereignissignalen von Detektorschaltungen, die innerhalb der verschiedenen Schaltungskarten der CSS-Einheit verteilt sind, welche sensibel auf Abweichungen im normalen operationellen Verhalten durch die Pipeline Stufen sind. Die UEV-Detektorschaltungen innerhalb der BIU sind in der Lage, abnormales Verhalten mit sich bringende Systembus-Operationen oder irgendwelche andere Busse zu erfassen, zu denen die CSS-Einheit zu verbinden aufgefordert wird.
  • Auch sind die UEV-Detektorschaltungen innerhalb der CPU-Stufen vorgesehen zum Signalisieren abnormalen Verhaltens, welches innerhalb der Firmware- Steuerelemente auftritt. Zusätzlich speichern spezielle BIU-Register des bevorzugten Ausführungsbeispiels Systembus-Adreßinformation, die sich auf die letzte physikalische Adresse bezieht, welche dem Systembus dargeboten wurde, ebenso wie die Adresse, welche sich auf die letzte Speicherblockierungs-Operation bezog.
  • Mit wenig zusätzlichen Schaltungen zur Erfassung und Sammlung von UEV- Fehlerinformation und einer kleinen Menge zusätzlicher Firmware ist somit die CSS-Einheit in der Lage, die notwendige Information bereitzustellen, die für zuverlässige Wiederherstellung benötigt wird, auf der Basis unabhängiger Entscheidungen, die durch die Hardware, die Firmware und die Software getroffen werden. Der Wiederherstellungsprozeß nutzt die Tatsache aus, daß die meisten Fehler transienter Natur sind und daher das System nicht vertrauensunwürdig machen.
  • Die neuen Merkmale, welche als charakteristisch für die Erfindung angesehen werden, können besser verstanden werden von der Beschreibung in dem folgenden Abschnitt bei Betrachtung in Verbindung mit den beigefügten, in diesem Abschnitt beschriebenen, Zeichnungen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm eines Multiprozessor-Systems, welches das Verfahren und die Vorrichtung der vorliegenden Erfindung beinhaltet.
  • Fig. 2a ist ein Blockdiagramm der zentralen Subsystem (CSS)-Einheit von Fig. 1.
  • Fig. 2b ist ein Blockdiagramm der CSS-Einheit, welche die Vorrichtung der vorliegenden Erfindung genauer beschreibt.
  • Fig. 3a bis 3f zeigen genauer die UEV-Detektorschaltungen und die BIU-Einheit der Fig. 2.
  • Fig. 4a bis 4d veranschaulichen genauer die Syndrom-Register von Fig. 2.
  • Fig. 5a bis 5e zeigen Flußdiagramme, die zur Erklärung der Operation der vorliegenden Erfindung verwendet werden.
  • Fig. 6 zeigt die Organisation von Speicherbereichen gemäß der vorliegenden Erfindung.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS Gesamtsystem
  • Fig. 1 zeigt in Blockdiagrammform ein Multiprozessor-System 10, welches das Verfahren und die Vorrichtung der vorliegenden Erfindung beinhaltet. Wie dargestellt, umfaßt das System 10 eine Systemverwaltungs-Einrichtung (SMF) 12, eine Mehrzahl identischer zentraler Subsystem-(CSS)-Einheiten 14- 1 bis 14-4 und eine Anzahl verschiedener Subsysteme 16 bis 18, welche durch einen Systembus 11 eng zusammengekoppelt sind. Die dargestellten verschiedenen Subsysteme umfassen eine Anzahl von Speicher-Subsystemen 16-1 bis 16-4 und eine Anzahl von Eingabe/Ausgabe-Subsystemen 18-1 bis 18-3. Zusätzlich sind die CSS-Einheiten 14-1 bis 14-4 und Speicher- Subsysteme 16-1 bis 16-4 gemeinsam mit einem unidirektionalen asynchronen Prozessor-(P)-Bus 19 verbunden. Jedes Subsystem umfaßt eine Schnittstelleneinheit, welche das Subsystem befähigt, Anforderungen in Form von Befehlen, Interrupts, Daten oder Antworten/Zuständen an ein anderes Subsystem auf dem Systembus 11 in asynchroner Weise zu senden oder zu empfangen.
  • Am linken Ende von Bus 11 definiert ein Abschlußnetzwerk, nicht gezeigt, das hohe Prioritätsende von Bus 11. Die SMF-Einheit 12, welche rechts des Abschlußnetzwerkes positioniert ist, hat die höchste Priorität. Die Buspriorität nimmt als eine Funktion von der Distanz eines jeden Subsystems von dem Abschlußnetzwerk ab. Die verschiedenen Subsysteme kommunizieren Anforderungen über Systembus 11 auf einer Prioritätsbasis, die durch ein verteiltes Prioritätsnetzwerk, innerhalb des Systembuses 11 enthalten, definiert ist. Für genauere Information hinsichtlich dieser Anordnung kann auf das US-Patent Nr. 4,724,519 Bezug genommen werden.
  • CSS-Einheit
  • Fig. 2a zeigt in Blockdiagrammform die zentrale Subsystem-(CSS)-Einheit 14, welches die Form des Produktionsdaten-Verarbeitungssystems der entsprechenden Patentanmeldung von Ming-Tzer Miu und Thomas F. Joyce annimmt. Wie gezeigt, umfaßt die CSS-Einheit 14 eine Zentralverarbeitungseinheit (CPU) 20, eine virtuelle Speichereinheit (VMU) 40 und eine Cache- Einheit 60. Die Cache-Einheit 60 ist mit Systembus 11 durch eine Bus- Schnittstelleneinheit (BIU) gekoppelt. Die BIU 100 hat vier Schnittstellen. Sie dient als eine Schnittstelle für CPU 20, VMU und Cache-Einheit-Stufen, Systembus 11 und Prozessor-(P)-Bus 19.
  • Wie gezeigt, umfassen die Hauptelemente von CPU 20 eine Befehlseinheit- (I-Einheit)-Stufe 20-2, eine Adreßeinheits-(A-Einheit)-Stufe 20-4 und eine Ausführungseinheit-(E-Einheit)-Stufe 20-6. Bei dem bevorzugten Ausführungsbeispiel umfaßt die Ausführungseinheits-Stufe 20-6 eine wissenschaftliche Einheit (S-Einheit) und eine kommerzielle Befehlsverarbeitungseinheit (C- Einheit). Die Cache-Einheits-Stufe 60 umfaßt einen Befehls-Cache (I-Cache) 60-2 zum Speichern von Befehlen, welche auszuführen sind, und eine Ausführungs-Cache-Einheit (E-Cache) 60-4 zum Speichern von Operanden oder Daten, mit welchen zu arbeiten ist gemäß den gerade ausgeführten Befehlen.
  • Die I-Einheit 20-2 führt zwei Hauptfunktionen aus. Sie ruft Befehle von der I-Cache-Einheit 60-2 vorab ab und spaltet bzw. knackt oder decodiert diese Befehle, um zu entscheiden, wie die anderen Einheiten, nämlich die A- Einheit 20-4 und die E-Einheit 20-6 diese Befehle weiter verarbeiten werden. Zusätzlich führt die I-Einheit 20-2 Verzweigungsbefehle aus, welche dann von der Produktionslinie entfernt werden.
  • Die A-Einheit 20-4 erzeugt Adressen von Befehlen, welche sie von der I- Einheit 20-2 empfängt. Zusätzlich führt sie bestimmte Typen von Befehlen aus, wie z.B. Register-zu-Register-Typ-Befehle, wobei sie diese von der Produktionslinie entfernt. Wenn der Befehl ein Typ von Befehl ist, welcher durch eine E-Einheit 20-6 auszuführen ist, sendet die A-Einheit 20-4 eine virtuelle Adresse an VMU 40, welche sie in eine physikalische Adresse übersetzt zum Abrufen der spezifizierten Operanden von der E-Cache-Einheit 60-4. Die von der E-Cache-Einheit 60-4 abgerufenen Operanden werden dann an die E-Einheit 20-6 transferiert zum Vollenden der Ausführung des ursprünglich durch die I-Einheit 20-2 von der I-Cache-Einheit 60-2 empfangenen Befehls. Die A-Einheit 20-4 wird auch die Ausführung eines Verzweigungsbefehls bestätigen und die Verzweigungsadresse an die I-Einheit 20-2 zurücksenden, welche bereits den nächsten Befehl von der I-Cache- Einheit 60-2, spezifiziert durch die Vorab-Verzweigungsadresse der I-Einheit 20-2, angefordert haben.
  • Wie aus Fig. 2a hervorgeht, umfassen sowohl die A-Einheit 20-4 als auch die E-Einheit 20-6 Registerdateien, welche die Inhalte der Register speichern, die dem Programmierer zugänglich sind. Auch werden die E-Cache-Einheit 60-2 und die E-Cache-Einheit 60-4 mit Befehlen und Operanden aktualisiert, welche vom Hauptspeicher über den Systembus 11 und BIU 100 abgerufen werden.
  • Wie aus Fig. 2a hervorgeht, teilen sich die I-Einheit-Stufe 20-2 und die A- Einheit-Stufe 20-4 ein gemeinsames Firmware-Steuer-Speicherelement 20-8. In ähnlicher Weise teilen sich E-Einheit- und C-Einheit-Ausführungseinheiten 20-6 ein weiteres gemeinsames Firmware-Steuer-Speicherelement 20-10.
  • Die I-Einheit-20-2-, A-Einheit-20-4- und E-Einheit-20-6-Pipeline-Stufen belegen zusammen mit ihren Steuerelementen 20-8 und 20-10 eine Hauptschaltungskarte. VMU-Stufe 40 und Cache-Einheits-Stufe 60 belegen eine nachgeordnete Karte, welche in die CPU-Hauptkarte hineingesteckt wird. Die Systembus und P-Bus-Schnittstellenschaltungen von BIU 100 belegen eine andere Hauptkarte. Somit benötigt die gesamte CSS-Einheit zwei Sockelkarten- Positionen innerhalb des Systems.
  • Produktionslinien-Operationsmodus
  • Befehle werden ausgeführt in einer produktionsartigen Weise durch die Elemente der CPU 20. Das heißt, die I-Einheit 20-2 empfängt jeden Befehl von der I-Cache-Stufe 60-2, zerlegt bzw. knackt ihn und sendet den Befehl dann an die A-Einheit-Stufe 20-4. Entweder führt die A-Einheit 20-4 den Befehl aus oder sie sendet die virtuelle Adresse an die VMU 40 zur Übersetzung, um die geforderten Operanden von der E-Cache-Stufe 60-4 abzurufen, welche ihrerseits an die E-Einheit 20-6 gesendet werden.
  • Während die A-Einheit 20-4 ihren Anteil eines ersten von der I-Einheit 20-2 empfangenen Befehls ausführt, ruft die I-Einheit einen zweiten Befehl und nachfolgende Befehle von der I-Cache-Stufe 60-2 ab.
  • Wenn die A-Einheit 20-4 die durch den ersten Befehl spezifizierte virtuelle Adresse an die VMU 40 sendet und die I-Einheit 20-2 von diesem Ereignis benachrichtigt, sendet die I-Einheit 20-2 den zweiten Befehl an die A-Einheit 20-4. Die VMU 40 adressiert die E-Cache-Stufe 60-4, während die A-Einheit 20-4 den zweiten in die Produktions-Pipeline eingeführten Befehl verarbeitet. Wenn die E-Einheit 20-6 den ersten Befehl ausführt, kann die VMU 40 Operanden von der E-Cache-Stufe 60-4 abrufen, spezifiziert durch den zweiten Befehl, während die A-Einheit 20-4 eine virtuelle Adresse für einen dritten Befehl erzeugt. Zur gleichen Zeit zerlegt die I-Einheit 20-2 einen vierten Befehl und ruft einen nächsten Befehl ab. Somit könnten fünf Befehle die Produktionslinie zu einem gegebenen Zeitpunkt voranschreiten.
  • Da jedoch die I-Einheit 20-2 bestimmte Verzweigungsbefehle ausführen kann und die A-Einheit 20-4 bestimmte software-sichtbare Registerbefehle ausführen kann, werden diese Befehle von der Produktionslinie entfernt, sobald die Ausführung dieser Befehle vollendet ist. Ebenso, wenn die A-Einheit 20-4 einen Verzweigungsbefehl verarbeitet und die Bedingungen der Verzweigung erfüllt sind, bestätigt die A-Einheit 20-4 sofort, daß die Verzweigungsadresse von der I-Einheit 20-2 empfangen wurde, und der Verzweigungsbefehl wird von der Produktionslinie entfernt.
  • Beschreibung des UEV-Detektors und Syndrom-Registerschaltungen
  • Fig. 2b zeigt die Anordnung verschiedener UEV-Detektorschaltungen und Syndrom-Register innerhalb der APM-, ACD- und ABM-Karten entsprechend der Lehren der vorliegenden Erfindung. Fig. 2a zeigt auch einige der verschiedenen Schnittstellensignale zwischen den verschiedenen Pipeline-Stufen, die verwendet werden, um die Operationen zwischen ihnen zu synchronisieren. Jede der Karten umfaßt mindestens ein Syndrom-Register, welches angeschlossen ist, um Signale von den UEV-Detektorschaltungen innerhalb der verschiedenen auf der Karte enthaltenen Stufen zu empfangen. Zusätzlich sind einige der Syndrom-Register auch verbunden, um Fehlersignal-Rinweise und andere Statusinformation zu empfangen, welche bei dem Ausführen der Fehleranalyse nützlich sind.
  • Wie dargestellt, entsprechen die Syndrom-Register den Registern 20-12, 60-12 sowie 100-12 und 100-14. BIU 100 umfaßt zwei Syndrom-Register, eines zum Speichern von UEV-Hinweisen und Statusinformation, betreffend den Systembus 11, und ein anderes zum Speichern von UEV-Hinweisen und Statusinformation, betreffend T-Bus 19. Diese Signale werden durch die BIU- Bus-Schnittstellenschaltungen des Blocks 100-20 erzeugt.
  • Die Syndrom-Register sind mit Datenpfaden verbunden, durch welche ihre Inhalte transferiert werden können und in Arbeits-Registerstellen geschrieben werden können, welche innerhalb der Registerdatei-Speicher der CPU 20, wie hier beschrieben, enthalten sind. Dies geschieht als Reaktion auf Steuersignale (d.h. readsyn), wie durch den E-Einheit-Steuerspeicher 20-10 erzeugt werden.
  • Die APM-, ACD- und ABM-Karten umfassen PAL-Schaltungen (programmable logic array = programmierbare Logikanordnung) 20-20, 60-20 und 100- 24. Jede PAL ODER verknüpft die UEV-Fehlersignale, die in dem oder den dazugehörigen Syndrom-Register(n) gespeichert sind, um die UEV-Fehler Ausgangssignale APMUEV, ACDUEV und BIUUEV zu produzieren. Wie dargestellt, werden diese Signale den UEV-Kollektor- und Sende-Schaltungen eines innerhalb BIU 100 enthaltenen Blocks 100-16 als Eingaben zugeführt. Diese Schaltungen sammeln und kombinieren alle UEV-Signale von den Karten, um ein resultierendes UEV-Fehlersignal CSS UEV zu produzieren, welches angibt, wenn eine der Stufen eine UEV-Bedingung detektiert hat. Wie dargestellt, wird dieses Signal an die innerhalb jeder der Karten empfangenen Schaltungen gesendet, wobei die Stufen veranlaßt werden, die erforderliche Aktion vorzunehmen, um Systemdaten-Integrität und zuverlässige Erholung zu gewährleisten, wie hier erklärt.
  • Die verschiedenen Stufen kommunizieren durch die Verwendung von Schnittstellen-Anforderungs- und Bereit-Signalen, welche als konventionell betrachtet werden für die Zwecke der vorliegenden Erfindung. Diese Signale umfassen IREQT, DCN (I-Einheit/I-Cache), AVCTL, VRDY (VMU/A- Einheit), ECRDY, VMUVAL (VMU/E-Cache) sowie CAREQT, BIURDY (BIU-E-Cache).
  • UEV-Detektor- und BIU-Schaltungen - Figuren 3a bis 3g
  • Fig. 3a bis 3g zeigen detaillierter die UEV-Detektor- und BIU-100- Schaltungen, die gemäß der Lehren der vorliegenden Erfindung aufgebaut sind.
  • Fig. 3a zeigt in Blockdiagramm-Form die innerhalb der VMU 40 enthaltene UEV-Detektorschaltung. Diese Schaltung ist als Teil der Status-Maschinensteuerung von VMU 40 enthalten.
  • Genauer gesagt, umfaßt VMU 40 sie als Teil ihrer Ablaufsteuerung, ein Status-Speicher verursacht die Erzeugung eines VMU-UEV-Signals, wenn ein schlechtes Zustands-Ausgangssignal produziert wird. Dieses Signal wird erzeugt, wenn die spezifische Kombination von Eingangssignalen den Status- Speicher an eine Stelle oder einen Zustand zwingt, welche bzw. welcher keinen Sinn macht bezüglich des angelegten Eingangssignals. Das VMU-UEV- Signal gibt an, daß sich die VMU 40 fehlverhält. Für weitere Information bezüglich der VMU-Statusmaschine kann auf die betreffende Patentanmeldung von Richard A. Lemay Bezug genommen werden.
  • Fig. 3b zeigt in Blockdiagramm-Form die in der ABM-Karte enthaltenen Schaltungen, welche die Umstände detektieren, wenn sich die E-Cache-Stufe 60-4 fehlverhält, und UEV-Signale erzeugen. Wie gezeigt, umfassen diese Schaltungen eine PAL-Schaltung (programmable logic array) 100-200, welche eine Mehrzahl von Schnittstellensignalen empfängt, die Befehlen entsprechen, die von der E-Cache-Stufe ausgegeben werden. Auf der Basis der Zustände dieser Signale erzeugt PAL 100-200 ein UEV-Signal CMDUEV, wenn sie detektiert, daß sie eine unzulässige Kombination von Befehlen empfangen hat, welche nicht erfolgreich vollendet werden können. Das heißt, diese Befehle würden, wenn sie ausgeführt würden, in einem außergewöhnlichen Verhalten resultieren. Dies resultiert im Setzen einer bestimmten Bitposition (d.h. Bit 23) in dem P-Bus-Syndrom-Register 100-14.
  • Auch empfängt PAL 100-200 von Fig. 3b Befehlsdecodier-Signale, die sich auf unzulässige Speicherzyklen beziehen, welche durch die E-Cache-Stufe versucht werden. Dies involviert die Detektion davon, wenn die Cache-Stufe versucht, einen Speicherzyklus auszuführen, und die gelieferte Schreibmasken- Information impliziert etwas, was nicht auf dem Systembus in irgendeiner sinnvollen Weise übersetzt werden kann.
  • Die obigen Speicherzyklus-Fälle umfassen die Situation, in welcher die Schreibmasken-Information impliziert, daß keine Bytes zu schreiben sind, oder die Schreibmaske impliziert, daß nicht-aufeinanderfolgende Bytes zu schreiben sind oder die Schreibmasken-Information impliziert nicht-unterstützte Schreiboperationen (d.h. Kombinationen von Schreibbefehlen, die der Speicher nicht ausführen wird). Wenn irgendeine dieser Situationen detektiert wird, produziert PAL 100-200 ein UEV-Signal AUXUEV, welches in dem Setzen einer anderen speziellen Bit-Position (d.h. Bit 22) innerhalb des P-Bus- Syndrom-Registers 100-14 resultiert, was eine UEV-Fehlerbedingung signalisiert.
  • Eine andere PAL 100-202, gezeigt in Fig. 3c, wird verwendet, um ungewöhnliche Ereignis-Sperranforderungs-Sequenzen zu detektieren, welche im Setzen einer anderen bestimmten Bit-Position vom Syndrom-Register 100- 12 (d.h. Bit 14) resultieren. PAL 100-202 arbeitet, um das Sperrsignal LOCKUEV zu erzeugen als Reaktion entweder auf Signal LOCKER+0A oder LOCKER+0B.
  • Signal LOCKER+0A wird durch PAL 100-200 erzeugt, wenn ein Sperr- Löschbefehl spezifiziert ist, erledigt zu werden durch die E-Cache-Stufe und das Speichersperr-Aufzeichnungsindikator-Flip-Flop nicht aktiv oder an ist. Es wird auch erzeugt, wenn ein Sperrsetz-Befehl spezifiziert ist, erledigt zu werden durch die E-Cache-Stufe, und das Speichersperr-Aufzeichnungsindikator-Flip-Flop bereits aktiv oder an ist.
  • Die PAL 100-202 erzeugt Signal LOCKER+0B als Reaktion auf Hilfsbefehle und überprüft auf ähnliche Situationen bezüglich des Setzens und Löschens des Speichersperr-Aufzeichnungsindikator-Flip-Flops. Das heißt, sie erzeugt das LOCKUEV-Signal, wenn der Hilfsbefehl eine Sperrlösch-Operation spezifiziert und das Sperranzeige-Flip-Flop bereits aus ist, oder wenn der Hilfsbefehl eine Sperrsetz-Operation spezifiziert und das Sperranzeige-Flip- Flop bereits an ist.
  • Fig. 3d zeigt die Schaltungen von Block 100-204 zum Detektieren von Ausfällen innerhalb und außerhalb BIU 100. Diese umfassen Fehlen von Synchronisation, Rauschspitzen, fehlende Impulse oder Zählerausfälle. Diese Bedingungen können, wenn sie nicht detektiert werden, zu Cache-Inkoherenzproblemen führen. Der P-19 ist ein 32 Bit breiter Bus, der ein Paket von 8 Datenworten liefert in Reaktion auf einen Befehl, ausgegeben über Systembus 11 an den Hauptspeicher. Wenn der Speicher die 8 Worte hat, aktiviert er den P-Bus 19 und transferiert die Worte in Sequenz. Mit der Übertragung des letzten Aktivierungssignals sendet der Speicher ein Erledigt- Signal. Eine PAL-Schaltung 100-204 zählt die Daten-Impulse und verifiziert bei Empfang des Erledigt-Signals, daß die korrekte Anzahl von Impulsen empfangen worden ist. Wenn die Zählung eine andere als diese Zahl ist, wird ein UEV-Fehlersignal PBUSUEV erzeugt.
  • Fig. 3e zeigt in Blockdiagramm-Form die Typen von Firmware-UEV-Fehler- Erfassung, die in dem Steuerspeicher 20-10 stattfindet. Dies erzeugt die Erfassung von verlorenen Interrupts, unmöglichen Verzweigungen oder Zugreifen auf ungewöhnliche Abschnitte des Steuerspeichers. Wenn irgendeiner dieser Fälle auftritt, wird der Steuerspeicher 20-10 zu einer vorbestimmten Stelle gezwungen, was in der Erzeugung eines UEV- Fehlersignals FWUEV resultiert. Für weitere Details hinsichtlich einer Anordnung zum Erfassen von Firmware-Fehlern kann auf die diesbezügliche, ebenfalls anhängige, Patentanmeldung mit dem Titel "Apparatus and Method for Detecting a Runaway Firmware Control Unit" Bezug genommen werden.
  • Fig. 3f zeigt in Blockdiagramm-Form die Schaltungen von BIU 100 detaillierter. Einige dieser Schaltungen wurden bereits beschrieben. Gemäß der vorliegenden Erfindung umfaßt die BIU 100 weiterhin eine Anzahl von neuen Registern. Diese umfassen ein Sperradreß-Register 100-210, ein physikalisches Adressen-Register 100-214 und ein Einzel-Bit-Leistungsausfall- Register 100-216.
  • Das Sperradreß-Register 100-210 überwacht die Adressen, die an den Systembus 11 weitergeleitet werden, und speichert die Adresse, welche der letzten Sperroperation, die durch die CSS-Einheit durchgeführt worden ist, zugeordnet ist. Das physikalische Adreßregister 100-214 ist in den Gesamt- Erholungsprozeß eingebunden. Wenn ein Ausfall in den Pipeline-Stufen aus irgendeinem Grund auftritt, zeigen die Adreßinhalte dieses Registers der Software die letzte physikalischen Adresse oder die E/A-Kanal-Zahl, an die durch die CSS-Einheit in Verbindung mit dem Zugreifen auf Systembus 11 verwendet wurde.
  • Das Leistungs-Ausfallregister 100-216 enthält eine Bit-Position, welche in einen aktiven oder binären EINS-Zustand gesetzt wird, um das Auftreten eines UEV-Fehlers anzuzeigen. Dieses wird erledigt, wenn eine Leistungsausfall-Bedingung detektiert wird und ein Auszeit-Signal auftritt, welches anzeigt, daß die CSS-Einheit nicht auf die Leistungsausfall-Bedingung innerhalb eines Millisekunden-Zeitintervalls geantwortet hat.
  • Syndrom-Register
  • Fig. 4a bis 4d zeigen detaillierter die spezifische UEV- und Statusinformation, welche in den ABM-, ACD-, APM- und P-Bus-Syndrom-Registern gemäß den Lehren der vorliegenden Erfindung gespeichert wird. Wie in der Fig. 4a gezeigt, enthält das ABM-Syndrom-Register eine oder mehrere verschiedene Kategorien von Signalen. Es gibt drei verschiedene Kategorien von Signalen, und zwar sind diese "rot", "gelb" und "keine Kategorie". Die "rot"-Bezeichnung gibt das Auftreten eines nicht korrigierbaren Fehlers an, welcher UEV-Fehler umfaßt. Die "gelb"-Bezeichnung gibt das Auftreten eines Fehlers an, welcher kein UEV-Fehler ist, aber korrigierbar war. Die Bits, welche keine Kategorie haben, entsprechen Statusinformation, welche bei der Fehlertrennung nützlich ist.
  • Genauer gesagt, bezeichnet Bit 0, welches dem Signal CSSUAR entspricht, daß durch die CSS-Einheit versucht wurde, auf eine nicht verfügbare Resource zuzugreifen. Bit 2 gibt den Zustand von allen detektierten und gesammelten RED-Anzeigen an. Bit 9 signalisiert eine rote Systembus-Auszeit von 1/4 Sekunden. Bitt 11 signalisiert das Auftreten einer Leistungsausfall- Unterbrechungs-Auszeit. Bit 13 gibt an, wenn die Speichersperrung durch die CSS-Einheit gewonnen wurde (signalisiert durch ein ACK).
  • Bit 14, welches dem Signal LOCKUEV entspricht, gibt das Auftreten eines UEV-Fehlers an, welcher sich auf inkonsistente Befehle bezieht, welche durch die Schaltungen von Fig. 3c detektiert worden sind. Bit 29 wird gesetzt, wenn die CPU nicht verfügbar ist, bezeichnet als APM-belegt. Bit 30 gibt an, wenn ein Fehler (Parität) in Verbindung mit dem CPU- Steuerspeicher auf der APM-Karte aufgetreten ist, wie z.B. während des Ladens davon oder später während des Zugreifens.
  • Fig. 4b zeigt die Zuweisung von Bits innerhalb des ACD-Syndrom-Registers. Bit 2, welches dem Signal VMUUEV entspricht, gibt an, wenn die Schaltungen von Fig. 3a detektiert haben, daß die VMU-Statusmaschine einem unlogischen Zustand gefolgt ist, was in einem UEV-Fehler resultiert. Bits 4 und 5 bezeichnen das Auftreten von nicht korrigierbaren und korrigierbaren E-Cache-Bedingungen auf der Basis des Erfolgs einer Wiederholungsoperation.
  • Fig. 4c zeigt die Zuweisung von Bits innerhalb des APM-Syndrom-Registers. Bit 12, welches dem Signal CSSUEV entspricht, gibt das Auftreten einer UEV-Fehlerunterbrechung an, welche durch die CSS-Einheit-Firmware testbar ist. Bits 14 bis 17 geben die Erfassung von Paritätsfehlern verschiedener Stufen an. Bits 24 bis 27 geben Auftreten bestimmter Paritätsfehler an, erfaßt durch Prüfschaltungen, die innerhalb der verschiedenen VLSI-Chips, die innerhalb der I-, A-, C- und E-Stufen enthalten sind, eingebettet sind.
  • Fig. 4d zeigt die Zuweisung von Bits innerhalb des P-Bus-Syndrom-Registers. Bit 0, welches PBUSUEV entspricht, gibt an, wenn die P-Bus-Schaltungen von Fig. 3d eine UEV-Fehlerbedingung detektieren. Bits 1 bis 3 geben die Erfassung von nicht korrigierbaren Busparitätsfehler-Bedingungen an. Bits 16 und 17 bezeichnen die CSS-Einheit-Kanalnummer (CSS0-3), während Bits 18 und 19 das Auftreten von nicht korrigierbaren Fehlern angeben.
  • Bits 22 und 23, die Signalen CMUEV und AUXUEV entsprechen, bezeichnen, wenn die Schaltungen von Fig. 3b ungewöhnliche Befehlssequenzen detektiert haben, was auf UEV-Fehlerbedingungen hinweist.
  • BESCHREIBUNG DES BETRIEBS
  • Mit Bezug auf die Flußdiagramme von Fig. 5a bis 5e wird das Verfahren und die Vorrichtung des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung beschrieben. Wie zuvor angedeutet, ermöglicht die vorliegende Erfindung die Erholung einer CSS-Einheit in zuverlässiger Weise, wodurch die Fehlertoleranz und Widerstandsfähigkeit eines Multiprozessor-Systems, wie z.B. das System von Fig. 1, verbessert wird. Zusätzlich erlaubt es die Erholung nur in solchen Fällen, in welchen der signalisierte Fehler vorübergehender Natur ist oder von Operationen außerhalb der CSS-Einheit herrührte.
  • Das Flußdiagramm der Fig. 5a veranschaulicht den Gesamtprozeß, der durch die Vorrichtung und das Verfahren der vorliegenden Erfindung durchgeführt wird. Es handelt sich um einen Drei-Phasen-Prozeß. Die erste Phase wird als eine Hardware-Phase betrachtet, in welcher die Hardware-Erholungsprozedur durch die CSS-Einheit eingeleitet wird. Die zweite Phase kann als eine Firmware-Phase betrachtet werden, welche durch die CSS-Einheit- Firmware durchgeführt wird, und die dritte Phase wird als eine Software- Phase gesehen, welche durch die Betriebssystem-Software ausgeführt wird.
  • Wie in Fig. 5a dargestellt, arbeitet während der ersten Phase die CSS- Einheit normal, bis eine der UEV-Detektor-Schaltungen erfaßt, daß eine der Stufen auf einer der drei Karten sich fehlverhält. Meistens wird dies durch eine vorübergehende oder transiente Bedingung verursacht sein. Wenn ein UEV-Fehler durch eine UEV-Detektorschaltung erfaßt wird, verursacht dies, daß eine entsprechende Syndrom-Register-Bitposition gesetzt wird. Die Syndrom-Registerinhalte werden durch eine der drei PAL-Schaltungen überwacht. Wenn ein Zustandswechsel erfaßt wird, verursacht dies, daß die PAL eine Ausgabe erzeugt, welche dazu führt, daß eines der Signale (APMUEV, ACDUEV oder BIUUEV) durch eine der Karten der Fig. 2b als eine Eingabe an die Kollektor- und Sendeschaltungen des Blocks 100-16 angelegt wird.
  • Dies führt dazu, daß die BIU 100 das Signal CSS UEV an alle der Karten unmittelbar sendet. Das CSS-UEV-Signal veranlaßt, daß die BIU 100 sofort alle weiteren Kommunikationen mit Systembus 11 stoppt. Das Signal CSS UEV verhindert, daß Befehle von der ACD-Karte dem Systembus 11 zugeführt werden. Dies gewährleistet, daß die Gesamt-Datenintegrität des Systems nicht kontaminiert wird.
  • Da das CSS-UEV-Signal zu jeder beliebigen Zeit während der CSS-Einheit- Operation erzeugt werden kann, kann die CPU 20 mehrere Befehle in Verarbeitung in den verschiedenen Pipeline-Stufen haben. Das CSS-UEV- Signal ermöglicht, daß die Pipeline-Stufen geleert werden. Genauer gesagt, stoppt das CSS-UEV-Signal, angelegt an die APM-Karte, die I-Einheit-Stufe vom Starten irgendeines neuen Befehls.
  • Die I-Einheit beendet den gegenwärtigen Befehl mit I-Cache-Pseudodaten, sogar ohne Treffer. Das heißt, daß das CSS-UEV-Signal, angelegt an die ACD-Karte, verursacht, daß die I-Cache-Stufe das Antworten auf I-Einheit- Anforderungen nach Daten emuliert. Sie wird vorgeben, Daten vorzutäuschen, wenn notwendig, zusätzlich zum Konvertieren von Fehltreffern zu Treffern, und wird es der I-Einheit ermöglichen, den laufenden Befehl zu beenden.
  • Die E-Einheit-Stufe wird auch ihre laufenden Befehle beenden, von denen bis zu vier Befehlen in dem FIFO-Puffer gespeichert werden können, welcher die Pipeline innerhalb der E-Einheit-Stufe ansteuert. Die E-Einheit-Stufe wird Pseudodaten sogar ohne jede Treffer empfangen. Das heißt, daß das Signal CSS UEV bewirkt, daß die E-Cache-Stufe wie die I-Cache-Stufe Pseudodaten liefert, wenn notwendig, zusätzlich zum Konvertieren von Fehltreffern zu Treffern, was der E-Einheit-Stufe ermöglicht, die Ausführung ihrer Befehle zu beenden.
  • Die BIU 100 emuliert in der Gegenwart des CSS-UEV-Signals Transfers von Speicherbus-Anforderungen während des Intervalls, in welchem Kommunikationen zu dem Systembus 11 gestoppt sind. Beispielsweise in dem Fall irgendwelcher Speicherschreib-Anforderungen, die sie von der ACD-Karte empfängt, wird sie ein BIURDY-Signal erzeugen, welches angibt, daß die Operation ausgeführt wurde, ohne tatsächlich Daten in den Speicher einzuschreiben.
  • Es sei angemerkt, daß die A- und C-Einheit-Stufen auf das UEV-Fehler- Signal nicht direkt antworten. Das heißt, die I-Einheit-Stufe wird durch die I-Firmware angesteuert und steuert ihrerseits die I-Cache-Stufe an. Die E/C- Einheit-Stufe wird durch die E-Firmware und die E-Cache-Stufe angesteuert. Somit wird die A-Einheit als ein Slave arbeiten und wird am Ende sein, wenn die anderen Stufen beendet sind. Das Entleeren der Pipeline-Stufen ermöglicht im wesentlichen, daß die CSS-Einheit von einem Pipeline Betriebsmodus in einen Nicht-Pipeline-Modus schaltet, was ermöglicht, daß die Steuerung durch die Firmware hergestellt wird.
  • Wenn der E-Einheit-FIFO-Puffer leer wird und das CSS UEV-Signal in einen aktiven Zustand gesetzt wird, springt die Firmware an eine vorbestimmte Stelle (#3100), welche die Startstelle der UEV-Firmware-Behandlungsroutine ist, welche in dem E-Einheit-Steuerspeicher enthalten ist. Dies startet die zweite Phase des Prozesses. Das CSSUEV-Signal wird als Bit 12 von dem APM-Syndrom-Register gespeichert.
  • Wie in Fig. 5b gezeigt, ist die Stelle 3100 ein Hardware-Einstiegspunkt. Wie erwähnt, umfaßt die Steuerspeicher-Firmware den Mechanismus von Fig. 3f zum Detektieren des Auftretens irgendwelcher ungewöhnlicher Situationen, die angeben, daß sich der Steuerspeicher fehlverhält. Jedes derartige Auftreten bewirkt, daß der Steuerspeicher an Stelle 3104 springt, welche ein zweiter Einstiegspunkt in die UEV-Behandlungs-Routine der Fig. 5b ist.
  • In jedem Falle ist das erste, was die UEV-Behandlungs-Routine tut, daß sie bestimmt, ob es das erste Mal ist, daß sie einen UEV-Fehler empfängt. Sie tut dies durch Testen des Zustands des vorherigen UEV-Unterbrechungsindikators, welcher Bit 30 des APM-Syndrom-Registers 20-12 entspricht. Wenn der Indikator gesetzt ist, dann setzt die UEV-Routine Bit 30 des APM-Syndrom-Registers 20-12 zurück und kehrt anschließend durch Stelle 3103 zurück und setzt einen APM-Aktiv-Indikator, der Bit 29 des ABM- Syndrom-Registers 100-12 entspricht. Dieser Indikator ist durch SMF 12 über Systembus 11 testbar. Dies ermöglicht SMF 12, eine Gesundheits-Überprüfung der CSS-Einheit durchzuführen zum Bestimmen, ob sie weitermachen kann. Des weiteren wird die CSS-Einheit gestoppt. Dieses Zurücksetzen des Indikatorbits 29 ermöglicht für eine mögliche Erholung, wenn die CSS- Einheit, die ausgefallen ist, reaktiviert ist (z.B. durch SMF 12).
  • Da in dem vorliegenden Beispiel angenommen wird, daß dies das erste Mal durch die Sequenz ist, verursacht die UEV-Behandlungsroutine, daß die in jedem der Syndrom-Register enthaltene Information in Antwort auf das Signal READSYN ausgelesen wird und in die entsprechenden A-Einheit-Arbeitsstellen WL0 bis WL6 eingeschrieben wird. Auch schreibt sie in die A- Einheit-Arbeitsstelle WL7 Information zum Angeben, ob es sich um einen externen oder internen UEV-Fehler handelte, und, wenn intern, ob es ein Hardware- oder Firmware-UEV war. In dem Falle eines Firmware-UEV wird die Firmware-Adresse, welche zu der Zeit in Verwendung war, die den UEV produzierte, auch in die Arbeitsstelle WL7 eingeschrieben. Genauer gesagt, wenn der Einstieg von der Hardware in der Detektion eines Hardware-UEV begründet ist, wird die Stelle WL7 der A-Einheit-Registerdatei komplett auf alle NULLEN gesetzt. Dies unterstellt, daß die Ausführung der Firmware-Sequenz dazu führen wird, daß ein externer Typ von Unterbrechungscode erzeugt wird. Wenn der Eintrag von der Firmware erfolgt aufgrund der Erfassung eines für mehrere Typen von Firmware-UEVS, dann wird die Stelle WL7 bereits auf einen "8"-Wert gesetzt sein, was dazu führt, daß ein interner Typ eines Unterbrechungscodes erzeugt wird. Als nächstes signalisiert der UEV-Behandler der BIU 100, daß sie nun Steuerung des Systems hat und daß BIU 100 nun Kommunikationen mit Systembus 11 wieder aufnehmen kann. Dies wird dadurch erreicht, daß sie das UEV- Unterbrechungsbit 12 des APM-Syndrom-Registers zurücksetzt.
  • Als nächstes stellt die UEV-Behandlungsroutine auf der Basis der Inhalte bestimmter Syndrom-Register eine geeignete Unterbrechung zum Berichten des UEV-Fehlers an die Betriebssystem-Software her. Sie schafft eine von vier möglichen Unterbrechungen.
  • Ein externer Unterbrechungs-15-Code signalisiert dem Betriebssystem (Unterbrechungsbehandlungs-Software), daß die CSS-Einheit unfähig ist, eine E/A- oder Speicheroperation einzuleiten. Dies kann in der Tatsache begründet sein, daß eine Bus-Wiederholungsoperation nicht erfolgreich war. Für weitere Details hinsichtlich der Organisation von Systembus 11 und wie Operationen hergestellt werden, kann auf US-Patent Nr. 4,764,862 Bezug genommen werden.
  • Dagegen signalisiert ein externer Unterbrechungs-11-Code dem Betriebssystem, daß die CSS-Einheit unfähig war, eine eingeleitete E/A- oder Speicheroperation zu vollenden. Der externe Unterbrechungs-17-Code wird verwendet, um die Erfassung eines bus-bezogenen Fehlers anzugeben, welcher sich auf Systembus 11 oder auf P-Bus 19 bezieht. Der interne Unterbrechungs-17- Code wird verwendet, um die Erfassung eines internen Fehlers anzugeben, der innerhalb der CSS-Einheit auftritt.
  • Wie gezeigt, führt jede Unterbrechung dazu, daß der UEV-Behandler eine Unterbrechungs-Sicherungs-Firmware-Routine aufruft. Die Unterbrechungs- Sicherungs-Firmware-Routine speichert die erforderliche Kontext-Information in den Unterbrechungs-Sicherungs-Bereich, inklusive das Unterbrechungs- Mitglied, und die Inhalte der A-Einheit-Arbeitsstellen WL0, WL7 in den erweiterten Unterbrechungs-Sicherungs-Bereich, wie in Fig. 5b angegeben. Das heißt, daß die Unterbrechungs-Sicherungs-Firmware-Routine die Inhalte verschiedenartiger Register mit der CSS-Einheit 14 über Systembus 11 in den Unterbrechungs-Sicherungs-Bereich im Hauptspeicher, dargestellt in Fig. 6, ausschreibt. Des weiteren liest sie die Inhalte der A-Einheit-Arbeitsstellen WLO-7 über Systembus 11 in einen erweiterten UEV-Unterbrechungs- Sicherungs-Bereich in den Hauptspeicher, dargestellt in Fig. 6, aus. Wie gezeigt, werden die Inhalte der Sperradreß- und physikalischen Adreßregister 100-210 und 10-214 von Fig. 3f in den erweiterten Sicherungs-Bereich gelesen.
  • Nun wird das Obige genauer betrachtet. Von Fig. 5b kann gesehen werden, daß nachfolgend dem Schreiben der Syndrominformation in den Speicher der Firmware-UEV-Behandler auf irgendeinen Fehler testet. Genau gesagt, schaut er nach irgendeinem Hardware-Fehler durch Überprüfen der Syndrom- Register-Bitinhalte nach sog. Rot-Kategorie-Bits. Das Vorhandensein derartiger Bits gibt an, daß die Hardware beim Vorgeben, Befehle auszuführen, sich selbst in einen unbestimmten Zustand setzte. Daher wird in derartigen Situationen eine Firmware-Sequenz, beginnend bei Stelle 3159, ausgeführt, welches den Segment-Deskriptor, Seiten-Deskriptor, Speicher mit wahlfreiem Zugriff innerhalb der VMU-Einheit zusätzlich zum Löschen der I- und E- Cache-Verzeichnisse, leerspült.
  • Als nächstes schaut der Firmware-UEV-Behandler nach dem Vorhandensein irgendwelcher I-Chip-Fehler oder I-Daten-Fehler. Diese sind spezielle Fälle von Fehlern innerhalb der VLSI-Chips, die angeben, daß der I-Chip in einen bekannten Zustand gesetzt werden muß. Dies verursacht dem Firmware-UEV- Behandler, den Befehl in Stelle 310E auszuführen, welcher den Befehlspuffer mit Befehlen füllt durch Ausführen einer P-Lade-Operation unter Verwendung einer Alle-NULLEN-Adresse.
  • Als nächstes testet der Firmware-UEV-Behandler den Zustand des Speichersperr-Indikators, welcher Bit 13 des ABM-Syndrom-Registers entspricht. Wenn dieses gesetzt ist, dann ist das System in einem unbestimmten (Hänge)-Zustand. Der Zustand des Aufzeichnungsindikatorbits 13 gibt an, ob die Speicherverriegelung an ist. Wenn die Verriegelung an ist, dann führt der Firmware-UEV-Behandler den Mikrobefehl in Stelle 310B aus, welcher einen Speicherbefehl über Systembus 11 sendet, um den Speicher zu entsperren.
  • Wie in Fig. 5b zu sehen ist, überprüft der Firmware-UEV-Behandler als nächstes verschiedenartige Syndrom-Bits zum Bestimmen des Typs von Unterbrechungs-Code, der dem Betriebssystem zuzuführen ist. Als eine erste Stufe des Überprüfens entscheidet der Behandler, ob ein Leistungsausfall- Auszeit-Rot-Fehler auftrat. Dies wird entschieden durch Überprüfen des Zustands von Bit 11 des ABM-Syndrom-Registers. Wenn dieses Bit aktiv oder zu einem binär EINS-Zustand gesetzt ist, entscheidet der Behandler als nächstes, ob die CSS-Einheit im Prozeß des Ausführens einer E/A-Operation war. Dies wird sichergestellt durch Überprüfen bestimmter Kontext-Information, die in dem Unterbrechungs-Sicherungs-Bereich des Speichers gespeichert ist. Wenn eine E/A-Operation durchgeführt wurde, führt der Behandler den in Stelle 3172 gespeicherten Mikrobefehl aus, welcher den I-Einheit-P-Zähler zum Start eines Befehls zurücksetzt, und signalisiert eine Stufe-O-Unterbrechung, welcher durch das Betriebssystem als ein normaler Leistungsfehler verarbeitet wird.
  • Wenn keine E/A-Operation durchgeführt wurde, verursacht der Fehler, daß ein Unterbrechungs-11-Code erzeugt wird. Dies verursacht, daß das Betriebssystem die Kontext-Information, die in dem normalen Unterbrechungs- Sicherungs-Bereich gespeichert wird, referenziert, wie es getan wird, wo die CSS-Einheit versucht, auf eine nicht verfügbare Resource zuzugreifen. In der Abwesenheit einer Leistungsausfall-Unterbrechung entscheidet der Behandler als nächstes, ob die CSS-Einheit versuchte, auf eine nicht verfügbare Resource zuzugreifen. Dies wird entschieden durch Überprüfen des Zustands des Bits 0 des ABM-Syndrom-Registers. Wenn Bit 0 in einem aktiven oder binär EINS-Zustand ist, entscheidet der Behandler als nächstes, ob eine Systembus-Auszeit auftrat. Dies wird entschieden durch Überprüfen des Zustands von Bit 9 des ABM-Syndromregisters. Wenn Bit 9 auf binär EINS gesetzt ist, führt der Behandler den in Stelle 3176 gespeicherten Mikrobefehl aus, was in der Erzeugung eines externen Unterbrechungs-11-Codes resultiert. Wenn Bit 9 in einem binär NULL-Zustand ist, führt der Behandler den Mikrobefehl in Stelle 3166 aus, welcher dazu führt, daß ein externer Unterbrechungs-15-Code erzeugt wird.
  • Wenn keine Leistungsausfall-Unterbrechung und kein CSS-UAR-Fehler detektiert wurden, entscheidet der Behandler als nächstes, ob ein roter Bus- Fehler auftrat. Dies wird getan durch Überprüfen der Bits 0 bis 3 und 18 und 19 des P-Bus-Syndrom-Registers. Wenn irgendeines dieser Bits in einem aktiven oder binären EINS-Zustand ist, führt der Behandler den Mikrobefehl aus, der in Stelle 31F7 gespeichert ist, was in der Erzeugung eines externen Unterbrechungs-17-Codes resultiert. Wenn jedoch keines dieser Bits aktiv ist, dann führt der Behandler den in Stelle 31E7 gespeicherten Mikrobefehl aus, was in der Erzeugung eines internen Unterbrechungs-17-Codes resultiert.
  • Zu der Zeit des Erzeugens des internen Unterbrechungs-17-Code setzt der UEV-Behandler die Inhalte der Arbeitsstelle WL0 auf einen Binärcode, der das Auftreten der internen Unterbrechungsbedingung angibt. Das heißt, die höchstwertigen Bits 0-7 werden auf den Wert "8XXX" gesetzt, was die interne Unterbrechung in dem Fall eines hardware-detektierten UEV- Fehlereintrags angibt. Wie erklärt, wird der Firmware-Eintrag bereits einen 8XXX-Code enthalten, wie in Fig. 5b zu sehen ist.
  • Durch Ausführen einer Analyse der verschiedenen Syndrom-Register-Bits ist die UEV-Behandler-Routine dazu fähig, eine sinnvolle Unterbrechung zu berichten und das Betriebssystem herzustellen. Des weiteren wird die gesamte Kontext-Information und UEV-Information in den TSA- und erweiterten TSA- Abschnitten des Hauptspeichers gespeichert worden sein. An diesem Punkt ist Phase 3 abgeschlossen, und es wird in die Betriebssystem-Unterbrechungs- Behandler-Routine eingetreten.
  • Fig. 5c bis 5e erläutern die Sequenz von Operationen, die durch den Betriebssystem-UEV-Unterbrechungs-Behandler durchgeführt werden. Das Betriebssystem versucht, zwei Dinge mit der UEV-Syndrom-Information, die durch die CSS-Einheit gespeichert ist, zu tun. Erstens handelt der Behandler als ein Kanal dieser Information und sendet die Information telefonisch an den TAC zur Auswertung und zum Treffen informierter Entscheidungen hinsichtlich des Typs der Korrekturaktion, die auszuführen ist, wie etwa ORU ist zu ersetzen. Zweitens trifft der Behandler eine Entscheidung, ob er fähig ist weiterzumachen oder ob die Software genügend betroffen ist, so daß das Betriebssystem nicht weitermachen sollte. Das heißt, ein Hardware- Problem, welches die CSS-Einheit nicht als fatal betrachten könnte, könnte durch das Betriebssystem als fatal betrachtet werden, wenn zu der Zeit eine kritische Aktivität stattfand, als der Hardware-Fehler auftrat.
  • Die Information, welche der TAC durch das Betriebssystem gesendet wurde, umfaßt bestimmte Grundlinien-Information, welche die Hardware-, Firmware- und Software-Umgebung beschreibt, in welcher das Problem, der Fehler, auftrat. Diese Information umfaßt auch den Hardware-Systemnamen zum Identifizieren des Problems mit einer spezifischen Kundenstelle. Diese Grundlinien-Information wird in einer konventionellen Weise gesammelt, wenn das Betriebssystem zuerst hochfährt und verfügbar ist beim Auftreten eines Fehlers. Diese Information ermöglicht es auch der TAC, die spezifische Umgebung, in welcher das Problem auftrat, zu verstehen, was extrem wichtig ist für das Unterstutzen vieler verschiedener Versionen von Firmware und Software. Die an den TAC übertragene Information wird in einer herkömmlichen Weise formatiert und umfaßt zwei Codes zum Spezifizieren der Gesamt-Natur des Problems und eines Zeitstempels.
  • In dem Falle von UEV-Fehlern wird das Betriebssystem als eine Funktion von dem Typ von Problem, welches durch den Firmware-Behandler signalisiert wurde, die folgende Information von der CSS-Einheit abrufen und sie in einem "Freiform"-Puffer speichern. Er speichert die Inhalte der Syndrom-Register der ausgefallenen CSS-Einheit, der roten Speicher- Information, die in den Syndrom-Registern enthalten ist, und die Inhalte der Information, die in den erweiterten Unterbrechungs-Sicherungs-Bereich (TSA) enthalten ist, welcher die CPU-, Firmware- und Adreßstellen in Verwendung zur Zeit des UEV-Fehlers enthält. Diese Information ist in Fig. 6 gezeigt. Wenn die CSS-Einheit das Auftreten von einem UEV-Fehler an das Betriebssystem signalisiert, werden zwei Basiswege genommen, um das Betriebssystem von dem UEV-Fehler zu benachrichtigen. Wie in Fig. 5b gezeigt, sendet die SMF 12 in dem Falle, daß die CSS-Einheit das Auftreten eines UEV-Fehlers signalisiert, während ein erster UEV-Fehler verarbeitet wird, einen Interrupt an eine überlebende CSS-Einheit des Multiprozessor- Systems 10, welches die geringste Kanalzahl hat. Dieses signalisiert einen "harten" Hardware-Fehler und das Betriebssystem fährt fort, eine Stufe-2- Aufroll-Operation durchzuführen. In dieser Situation trifft das Betriebssystem keine Entscheidung hinsichtlich der Lebensfähigkeit hinsichtlich des Systems, da die CSS-Einheit bedingungslos angezeigt hat, daß die CSS-Einheit ausgefallen ist. Das Betriebssystem behandelt den Verlust der CSS-Einheit als einen Grund für das Neustarten bzw. Neubooten des Systems.
  • Für einen einzelnen UEV-Fehler, wie in dem vorliegenden Beispiel, signalisiert die CSS-Einheit-Firmware eine Unterbrechung 17 über die Inhalte der Arbeitsstelle WL7. Diese wird als ein transienter oder weicher Fehler behandelt, welchen die CSS-Einheit nicht in diesem einen Beispiel korrigieren konnte. Das Betriebssystem behandelt dies als eine Entscheidung durch die CSS-Einheit, daß das System nicht betroffen ist aus Sicht der Hardware, aber unternimmt eine Aktion, um zu entscheiden, ob das Betriebssystem betroffen worden ist.
  • Indem es dies tut, entscheidet das Betriebssystem, ob der betroffene Task kritisch für die Gesamt-Integrität des Betriebssystems war. Wenn der Task selbst ein kritischer Dienst-Task wie etwa ein Seitenfehler-Unterbrechungs- Behandler war oder wenn der Task nicht kritisch war, aber die Funktion, die er durchführte, als er unterbrochen wurde, kritisch war und in einem unbestimmten Zustand gelassen wurde, dann wird das Betriebssystem die verschiedenen Syndrom-Bits überprüfen, um zu entscheiden, ob die Erholung noch zuverlässig durchgeführt werden kann. Wenn nicht, dann rückt sie zur Stufe-2-Software-Aufwicklung vor, wie in dem Fall der Fig. 5c. Zum Beispiel ist es durch Überprüfen der verschiedenen Firmware-UEV-Indikatoren möglich, das Vorhandensein eines Speicherproblems herbeizuführen, welches die Wiederherstellung unzuverlässig macht. Des weiteren signalisiert das Vorhandensein eines LOCKUEV-Indikators, daß die Wiederherstellungsprozedur das Ausgeben eines Diagnose-Befehls erfordert, welcher alle Speichersperren vor dem Neustarten des Systems zurücksetzt oder löscht. Andererseits gibt das Vorhandensein eines P-Bus-Füll-UEV-Fehlers an, daß die Wiederherstellung nicht zuverlässig stattfinden konnte, wobei der P-Zähler klar die Adresse des Befehls angibt, welcher gerade ausgeführt wurde, als der Fehler auftrat, wenn nicht ein erholbares (R) Bit eines Z-Wortes, innerhalb des TSA von Fig. 6 enthalten, angibt, daß der Befehl nicht heilbar ist.
  • Genauer gesagt, können die Pipeline-Verarbeitungseinheiten nicht fähig sein, eine Unterbrechungszeit in dem Unterbrechungs-Sicherungs-Bereich (TSA) bereitzustellen, Befehlsstellen-Informationen (d.h. eine Kopie des Programms (P) Drucker/Zähler und ein Befehlsgrößen (IS)-Feld, welches in Worten bis zu dem Moment der Unterbrechungserfassung angibt, was es der Betriebssystem-Software erlaubt, die Adresse des Befehls, der eine Unterbrechung verursachte, zu berechnen. Dementsprechend ist ein Indikator vorgesehen, um es der CSS-Subsystem-Einheit zu ermöglichen, die Betriebssystem-Software von dem Validitäts-Status der Befehls-Stelleninformation zu informieren. Dieser Indikator entspricht dem P-Bit 10 eines Z-Wortes, welches in dem Unterbrechungs-Sicherungs-Bereich angeordnet ist, wie in Fig. 6 gezeigt ist. Zur Zeit, wenn die Unterbrechung erzeugt wird, setzt die CSS-Subsystem- Einheit nach Bestimmen, daß die Befehlsinformation ungültig ist, das P- Indikator-Bit auf einen aktiven oder binären EINS-Zustand.
  • Wie erwähnt, umfaßt das Z-Wort auch das R-Indikator-Bit, welches Bit 11 des Z-Worts entspricht. Zur Zeit der Unterbrechung setzt die CSS-Subsystem- Einheit dieses Bit auf einen aktiven oder binär EINS-Zustand, um anzugeben, daß sie einen oder mehrere Befehle neben dem Befehl, der die Unterbrechung verursacht, ausgeführt hat. In derartigen Fällen wäre die Befehls- Wiedergewinnung nicht möglich. Derartige Befehle können zuvor identifiziert werden, so daß das richtige Setzen des R-Indikator-Bits ermöglicht wird.
  • Fig. 5e zeigt die Schritte, welche durch die Stufe 2 während des Aufrollens durchgeführt werden. Es wird versucht, die dem UEV-Fehler zugeordnete Information zu dem TAC zu transferieren. Dieselbe Information wird auch in irgendeiner Speicherkopie vorgehalten und in der Fehler-Auflistung, wenn das System neu gestartet wird.
  • Vom Obigen kann gesehen werden, wie das Verfahren und die Vorrichtung der vorliegenden Erfindung fähig ist, Syndrom-Informations-Inhalte, die einem UEV-Fehler zugeordnet sind, aufzunehmen und diese Information effektiv beim Bestimmen, ob das System genügend vertrauenswürdig ist, weiterzufahren, zu verwenden. Die Entscheidung ist ein Zwei-Schritt-Prozeß, welcher für die Bewahrung gültiger Hardware- und Firmware-Information sorgt, was spätere Fehlerdiagnose ermöglicht.
  • APPENDIX
  • Das Folgende ist eine kurze Beschreibung der verschiedenartigen Steuersignale und entsprechenden logischen Gleichungen zum Erzeugen der betreffenden Signale von Fig. 2b, Fig. 3a bis 3g und Fig. 4a bis 4d.
  • ABM SYN REG 100-12
  • ABM00 = CSSUAR = SYS BUS ZYKLUS-AUSZEIT
  • + SYS BUS OPERATIONS-AUSZEIT
  • ABM02 = BUSRED = P BUS RED LEFT WORD
  • + P BUS RED RIGHT WORD
  • + SYS BUS RED LEFT WORD
  • + SYS BUS RED RIGHT WORD
  • ABM09 = SYS BUS OP. AUSZEIT
  • = DIE GESAMTZEIT ALLER ZYKLEN EINER CSS-INITIIERTEN SYS BUS-OPERATION WAR GRÖSSER ODER GLEICH 250 MSEC.
  • ABM11 = LEISTUNGSAUSFALL INT. AUSZEIT
  • = LEISTUNGSAUSFALL INT. MUSS INNERHALB EINER MSEC AUSGEFÜHRT WERDEN.
  • ABM13 = VERRIEGELUNGSANFORDERUNGS-AUFZEICHNUNG.
  • SET = SYS BUS ACK ZUM SETZEN DES VERRIEGELUNGS-BEFEHLS RESET = SYS BUS ACK ZUM LÖSCHEN DES VERRIEGELUNGS-BEFEHLS
  • ABM 14 = VERRIEGELUNGSANFORDERUNGS-FEHLER
  • = VERRIEGELUNGSANFORDERUNGS-AUFZEICHNUNG & SET VERRIEGELUNGS-BEFEHL
  • + KEINE VERRIEGELUNGS-ANFORDERUNGS-AUFZEICHNUNG & LÖSCHE VERRIEGELUNGS-BEFEHL
  • ABM29 = APM BUSY
  • = CSS HAT KEINE FIRMWARE GELADEN
  • + CSS-FIRMWARE DETEKTIERTE VERSCHACHTELTE UEV
  • ABM30 = APM-STEUERUNGS-SPEICHER-FEHLER
  • = I/A ADDR STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • + DATEN-STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • + E/C ADDR STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • + E/C DATEN-STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • ACD SYND REG 60-12
  • ACD02 = VMUUEV
  • = VMU ILLEGALER ZUSTANDS-MASCHINENZUSTAND
  • ACD04 = E-CACHE RED
  • = E-CACHE VERSAGTE BEIM ERSETZEN DER STELLE NACH WIEDERSTART
  • ACD05 = E-CACHE YELLOW
  • = E-CACHE ERSETZTE STELLE NACH WIEDERSTART
  • APM SYND REG 20-12
  • APM12 = UEV INT (CSSUEV)
  • = APMUEV + ACDUEV + BIUUEV
  • APM14 = I/A ADDR STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • APM15 = I/A DATEN-STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • APM16 = E/C ADDR STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • APM17 = E/C DATEN-STEUERUNGS-SPEICHER-PARITÄTSFEHLER
  • APM24 = I-CHIP-EINGABE-PARITÄTSFEHLER
  • APM25 = A-CHIP-EINGABE-PARITÄTSFEHLER
  • APM26 = E-CHIP-EINGABE-PARITÄTSFEHLER
  • APM77 = C-CHIP-EINGABE-PARITÄTSFEHLER
  • B BUS SYND REG 100-14
  • P BUS 00 = P BUS FILL COUNT
  • = P BUS DONE & COUNT = 8
  • + NO P BUS DONE & COUNT = 8
  • P BUS 01 = P BUS DATEN-PARITÄT
  • P BUS 02 = P BUS RED LEFT
  • P BUS 03 = P BUS RED RIGHT
  • P BUS 16 = SYS BUS CSS CHAN NUM MOST SIGN
  • P BUS 17 = SYS BUS CSS CHAN NUM LEAST SIGN
  • P BUS 18 = SYS BUS RED LEFT
  • P BUS 19 = SYS BUS RED RIGHT
  • P BUS 22 = AUX COMMAND
  • P BUS 23 = CACHE COMMAND
  • LOCKER+ = ABM SYND BIT 14
  • = LOCKER+0A
  • # LOCKER+=B
  • LOCKER+0A (ABM12)
  • = LOCKCLR & !LOCKRR (CACHE)
  • # LOCKSET & LOCKRR (CACHE)
  • LOCKER+0B (ABM01)
  • = AUX LOCKSET & LOCKRR
  • AUX LOCKCLR & !LOCKRR
  • ACD-CACHE-BEFEHLSFEHLER
  • COMERR* = "P" BUS SYND BIT 23 (ABM12)
  • = IL CACHE CMD
  • = ILL CMD BITS
  • # ILL STORE CYCLE
  • ILL CMD BITS
  • = STORCY (MISSCY # LOCKSET)
  • # LOCKCLR (LOCKSET # CRSBLK # !LOCKRR)
  • # LOCKSET (LOCKRR # CRSBLK)
  • IU-SPEICHERZYKLUS
  • = SCHREIBEMASKE IMPLIZIERT KEINE BYTES
  • # SCHREIBEMASKE IMPLIZIERT NICHT-KONSEKUTIVES BYTE
  • # SCHREIBEMASKE IMPLIZIERT NICHT-UNTERSTÜTZTES SCHREIBEN
  • CAREQT - Anforderung von Caches für Bus-Zyklus
  • = MISSCY
  • (I- oder E-Cache-Fehlen - Anforderung zum Füllen)
  • + STORCY
  • (E-Cache-Speicher-Schreibanforderung)
  • + LOCKSET
  • (E-Cache-Setzen-Speicher-Verriegelungsanforderung)
  • + LOCKCLR
  • (E-Cache-Löschen-Speicher-Verriegelungsanforderung)
  • + ECBIU
  • (E-Cache-Zu-Bus-Schnittstelle-Andere-Operation-Anforderung)
  • BIURDY = CSSUEV = SYSTEM-BUS-ZYKLUS VORBEI
  • IREQT = Befehlsabruf-Anforderung ist durch die I-Einheit zum I- Cache gesendet.
  • DCN - I-Cache-Datenankunfts-Impuls
  • = ICHIT3 & !SNOOPICY & !IFILL & !RDR11 & !APMBUSY & HIT2U & HIT2L
  • (I-Cache-Treffer - Impulse gültige Daten in I-Einheit)
  • + BUEV
  • (UEV - zwinge Daten, ungültig oder gültig, in I-Einheit)
  • ;
  • VRDY - Virtuelle Speicher-Managementeinheit ist bereit (SELect - State Machine Decode)
  • = SEL:2
  • (NOP)
  • + SEL:3
  • + SEL:4 & SEGOK & (MATCHO # MATCHI) & !DBLHIT
  • + SEL:6
  • + SEL:8 & HOTOA
  • + SEL:9 & !HOTOA
  • + SEL:A
  • + SEL:C & SEGOK & (MATCHO # MATCH1) & !DBLHIT
  • + SEL:D & SEGOK & (MATCHO # MATCH1) & !DBLHIT
  • + SEL:D & SEGOK & (MATCHO # MATCH1) & !DBLHIT & PDDAT20
  • ;
  • AVCTL = Ein 8-Bit-VMU-Steuer-Code, der von der I-Einheit zu der virtuellen Speichereinheit ist.
  • VMUVAL - Virtuelle Speichereinheit gültiger Task an E-Cache
  • = !FEMPTY & !VBIU
  • (Task FIFO nicht leer; sende Task von FIFO an E-Cache)
  • + FEMPTY & TASK2E
  • (Task FIFO leer; sende Task direkt an E-Cache)
  • ;
  • ECRDY.D @T3 - E-Cache-Pipeline ist bereit
  • = !BLKSTRIP & ECHIT
  • (E-Cache-Treffer, kein Speicher im Prozeß zum Block mit Treffer)
  • + !PASSOP & !SYNDOP & !RDOP & !WRTOP & !ECBIU
  • (E-Cache ist im Leerlauf)
  • - 46 -
  • + !CONFLECT & PASSOP & !WRTHOLD
  • (E-Cache-Adreß-Weitergabe-Operation vollendet)
  • + ECSYA & SYNDOP
  • (E-Cache-Syndrom-Lesen vollendet)
  • + !CONFLECT & !RDOP & WRTOP & !WRTOP & !WRTHOLD
  • (E-Cache-Schreiboperation vollendet)
  • + RDOP & BUEV
  • (UEV, zwinge E-Cache bereit)
  • +ECBIU & BIURDY & !WRTHOLD
  • (E-Cache-zu-Bus-Schnittstelle andere Operation beendet)
  • ;
  • Während die beste Form der Erfindung illustriert und beschrieben worden ist, können bestimmte Änderungen gemacht werden, können bestimmte Merkmale der Erfindung mit Vorteil verwendet werden ohne eine entsprechende Verwendung anderer Merkmale.

Claims (9)

1. Verfahren zum Entscheiden, ob eine von einer Mehrzahl von Pipeline- Verarbeitungseinheiten (14-1/2/4) in einem Multiprozessorsystem genügend vertrauenswürdig ist, um sich von einer durch eine Unterbrechungsoperation signalisierten Fehlersituation zu erholen,
wobei das Multiprozessorsystem weiter eine Hauptspeichereinheit (16- 1/4) und eine separate Einheit (SMF) aufweist, auf welcher ein einzelnes Betriebssystem läuft, wobei alle Einheiten durch einen gemeinsamen Systembus (11) verbunden sind;
wobei jede Pipeline-Verarbeitungseinheit (14-1/2/4) aus einer Mehrzahl von Karten (APM, ACD, ABM) besteht, deren jede eine optimale ersetzbare Einheit (ORU) definiert,
wobei jede verschiedene ORU einen Detektor für ungewöhnliche Ereignisse (UEV) aufweist zum Feststellen, wenn eine beliebige der auf der ORU enthaltenen Stufen sich nicht korrekt verhält, wobei das Verfahren die folgenden Schritte aufweist:
(a) Speichern eines Hinweises auf ein ungewöhnliches Ereignis, welches durch den UEV-Detektor detektiert worden ist, in bestimmten Registern (20-12, 60-12, 100-12, 100-14), welche in jeder ORU angeordnet sind;
(b) Sammeln von Hinweisen der ungewöhnlichen Ereignisse von jeder der ORU's durch eine der ORU's, welche eine Schnittstelle zu dem Systembus (11) schafft;
(c) wobei die eine der ORU's in Antwort auf ein Signal, welches auf das Erscheinen eines ungewöhnlichen Ereignisses hinweist, welches jeglichen weiteren Transfer von Anfragen durch die Verarbeitungseinheit an den Systembus (11) verhindert;
(d) Senden eines Signals an jede der übrigen ORU's zum Veranlassen der Stufen der Pipeline-Verarbeitungseinheit, die Vollendung aller ausstehenden Befehle, welche innerhalb der Mehrzahl von Verarbeitungsstufen enthalten sind, zu emulieren zum Leeren der Pipeline-Stufen; und
(e) mit derartiger Vollendung, Transferieren der Steuerung auf eine der ORU's, welche eine Firmware-Behandler-Routine aufweist;
(f) wobei die Firmware-Behandler-Routine die Schnittstellen-ORU befähigt, die Kommunikation über den Systembus (11) wiederaufzunehmen;
(g) wobei die Firmware-Bearbeiter-Routine einen UEV-Fehlerbericht mit Kontext-Information herstellt durch Durchführen einer Analyse der verschiedenen Syndrom-Register-Bits und Schreiben des UEV-Fehlerberichts in dem Hauptspeicher (16-1/4) über den Systembus (11);
(h) wobei die Firmware-Bearbeiter-Routine die Steuerung an das Betriebssystem transferiert;
(i) wobei, basierend auf dem UEV-Fehlerbericht in dem Hauptspeicher (16-1/4), das Betriebssystem feststellt, ob der UEV-Fehler vorübergehend war und ob der betroffene Task kritisch für die Gesamtintegrität des Systems ist, und
(j) wobei das Betriebssystem die Systemwiederherstellung initiiert, wenn eine zuverlässige Wiederherstellung möglich ist.
2. Vorrichtung zum Bestimmen, ob eine von einer Mehrzahl von Pipeline- Verarbeitungseinheiten (14-1/2/4) in einem Multiprozessorsystem genügend vertrauenswürdig ist, um sich von einer durch eine Unterbrechungsoperation signalisierten Fehlersituation zu erholen,
wobei das Multiprozessorsystem eine Hauptspeichereinheit (16-1/4) und eine separate Einheit (SMF) aufweist, worauf ein einzelnes Betriebssystem läuft, wobei alle Einheiten durch einen gemeinsamen Systembus (11) verbunden sind,
wobei jede Pipeline-Verarbeitungseinheit (14-1/2/4) aus einer Mehrzahl von Karten (APM, ACD, ABM) aufgebaut ist, deren jede jeweilige Schaltungen der Verarbeitungseinheiten aufweist und die Erzeugung eine von einer Mehrzahl von Fehlersignalen (UEV) bewirkt, wenn ein bestimmter Fehler in der Schaltungskarte auftritt, wobei
- jede von der Mehrzahl von ersetzbaren Schaltungskarten (APM, ACD, ABM) eine optimale ersetzbare Einheit (ORU) definiert und eine Registereinheit (20-12, 60-12, 100-12, 100-14) aufweist zum Speichern von Fehlerhinweisen, welche auf ungewöhnliche Ereignisse hinweisen, die durch einen Detektor für ungewöhnliche Ereignisse (UEV), der jeder verschiedenen ORU zugeordnet ist, detektiert worden sind, zum Feststellen, wenn eine beliebige der auf der ORU enthaltenen Stufen sich nicht korrekt verhält;
- eine der OUR's eine Schnittstelle zu dem Systembus (11) schafft, welcher zum Sammeln von Hinweisen auf die ungewöhnlichen Ereignisse von jeder der ORU's ausgelegt ist;
- in Antwort auf ein Signal, welches auf das Auftreten eines ungewöhnlichen Ereignisses hinweist, die eine der ORU's jeglichen weiteren Transfer von Anfragen durch die Verarbeitungseinheit an den Systembus (11) verhindert;
- die eine der ORU's ein Signal an jede der übrigen ORU's sendet zum Veranlassen der Stufe der Pipeline-Verarbeitungseinheit, die Vollendung aller ausstehenden Befehle zu emulieren, welche innerhalb der Mehrzahl von Pipeline-Stulen enthalten sind, zum Leeren der Pipeline-Stufen; und mit derartiger Vollendung die Steuerung an eine der ORU's transferiert, welche eine Firmware- Bearbeiter-Routine aufweist;
- unter Steuerung der Firmware-Bearbeiter-Routine die Schnittstellen- ORU Kommunikation über den Systembus (11) wiederaufnimmt;
- wenn die Kommunikation über den Systembus (11) wiederaufgenommen ist, die Schnittstellen-ORU einen UEV-Fehlerbericht in den Hauptspeicher (16-1/4) über den Systembus (11) schreibt, wobei der UEV-Fehlerbericht durch die Firmware-Bearbeiter-Routine hergestellt worden ist durch Durchführen einer Analyse der verschiedenen Syndrom-Register-Bits, woraufhin die Steuerung an das Betriebssystem transferiert wird;
- basierend auf dem UEV-Fehlerbericht in dem Hauptspeicher (16- 1/4) das Betriebssystem feststellt, ob der UEV-Fehler vorübergehend war und ob der betroffene Task kritisch für die Gesamtintegrität des Systems ist, und
- wenn eine zuverlässige Wiederherstellung möglich ist, das Betriebssystem Systemwiederherstellung initiiert.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß der Datenprozessor (14-1/2/4), welcher mit einem Hauptspeicher (16-1/4) über einen Systembus (11) kommuniziert, eine Mehrzahl von ersetzbaren Schaltungskarten (APM, ACD, ABM) aufweist, deren jede jeweilige Schaltungen (20, 40, 10, 100) des Datenprozessors aufweist.
4. Vorrichtung nach Anspruch 3, weiter gekennzeichnet durch eine Fehlerdetektionsschaltung (100, 200, 202, 204) in jeder der Schaltungskarten zum Erzeugen eines einer Mehrzahl verschiedener Fehlersignale (UEV) bei dem Auftreten eines jeweiligen Fehlers in der Schaltungskarte.
5. Vorrichtung nach Anspruch 4, weiter gekennzeichnet durch eine Registereinheit (20-12, 60-12, 100-12, 100-14) auf jeder der Schaltungskarten (APM, ACD, ABM), verbunden mit der Fehlerdetektionsschaltung (100, 200, 202, 204) auf der Schaltungskarte zum Speichern jeweiliger Hinweise auf die Fehler, dargestellt durch Fehlersignale, die durch die Fehlerdetektionsschaltung erzeugt werden.
6. Vorrichtung nach Anspruch 4 oder 5, weiter gekennzeichnet durch eine Logikschaltung (100-16), die auf die Erzeugung irgendeines der Fehlersignale antwortet, zum daraufhin Erzeugen eines Ausgabesignals (CSSUEV) zum Bezeichnen, daß ein Fehler auf mindestens einer der Schaltungskarten aufgetreten ist.
7. Vorrichtung nach Anspruch 6, weiter gekennzeichnet durch Schaltungen (100-20), die in den Schaltungskarten enthalten sind, die auf das Auftreten des Ausgangssignals (CSSUEV) antworten, um Zugang durch den Datenprozessor auf den Systembus (11) zu verhindern, und um die Vollendung aller Befehle in den Pipeline-Stufen des Datenprozessors zu emulieren, wodurch die Pipeline des Datenprozessors effektiv geleert wird.
8. Vorrichtung nach Anspruch 7, weiter gekennzeichnet durch ein Steuerelement (20-6), welches in einer der Schaltungskarten enthalten ist und auf die emulierte Vollendung der Pipeline-Befehle antwortet, um Information von den gespeicherten Fehlerhinweisen zu sammeln zum Ermöglichen einer nachfolgenden Bestimmung, ob zuverlässige Wiederherstellung von den durch die gesammelte Information repräsentierten Fehlern möglich ist.
9. Vorrichtung nach Anspruch 8, weiter gekennzeichnet durch einen Speicher auf einer der Karten (REGFILE von 20-4), welcher ausgelegt ist, die gesammelten Inhalte aller Register aufzunehmen.
DE69126498T 1990-10-05 1991-10-01 Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems Expired - Fee Related DE69126498T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/593,458 US5193181A (en) 1990-10-05 1990-10-05 Recovery method and apparatus for a pipelined processing unit of a multiprocessor system

Publications (2)

Publication Number Publication Date
DE69126498D1 DE69126498D1 (de) 1997-07-17
DE69126498T2 true DE69126498T2 (de) 1998-01-29

Family

ID=24374795

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69126498T Expired - Fee Related DE69126498T2 (de) 1990-10-05 1991-10-01 Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems

Country Status (3)

Country Link
US (1) US5193181A (de)
EP (1) EP0479230B1 (de)
DE (1) DE69126498T2 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293384A (en) * 1991-10-04 1994-03-08 Bull Hn Information Systems Inc. Microprocessor bus interface protocol analyzer
DE546339T1 (de) * 1991-12-09 1993-11-25 Yokogawa Electric Corp Verteiltes Steuersystem.
US5574872A (en) * 1991-12-10 1996-11-12 Intel Corporation Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling
US5386549A (en) * 1992-11-19 1995-01-31 Amdahl Corporation Error recovery system for recovering errors that occur in control store in a computer system employing pipeline architecture
SE500940C2 (sv) * 1993-02-10 1994-10-03 Ellemtel Utvecklings Ab Sätt och system för att i ett distribuerat operativsystem demontera en kedja av sammanlänkade processer
US5996062A (en) * 1993-11-24 1999-11-30 Intergraph Corporation Method and apparatus for controlling an instruction pipeline in a data processing system
US5371884A (en) * 1993-12-21 1994-12-06 Taligent, Inc. Processor fault recovery system
US5530804A (en) * 1994-05-16 1996-06-25 Motorola, Inc. Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes
US5649088A (en) * 1994-12-27 1997-07-15 Lucent Technologies Inc. System and method for recording sufficient data from parallel execution stages in a central processing unit for complete fault recovery
US5924125A (en) * 1995-08-01 1999-07-13 Arya; Siamak Method and apparatus for parallel access to consecutive TLB entries
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US6317803B1 (en) * 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5860100A (en) * 1996-10-07 1999-01-12 International Business Machines Corporation Pipelined flushing of a high level cache and invalidation of lower level caches
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
US5924122A (en) * 1997-03-14 1999-07-13 Compaq Computer Corp. Method for error recovery spinlock in asymmetrically accessed multiprocessor shared memory
US6557121B1 (en) 1997-03-31 2003-04-29 International Business Machines Corporation Method and system for fault isolation for PCI bus errors
US6119246A (en) * 1997-03-31 2000-09-12 International Business Machines Corporation Error collection coordination for software-readable and non-software readable fault isolation registers in a computer system
US6065139A (en) * 1997-03-31 2000-05-16 International Business Machines Corporation Method and system for surveillance of computer system operations
US6502208B1 (en) 1997-03-31 2002-12-31 International Business Machines Corporation Method and system for check stop error handling
US5951686A (en) * 1997-03-31 1999-09-14 International Business Machines Corporation Method and system for reboot recovery
US6658510B1 (en) 2000-10-18 2003-12-02 International Business Machines Corporation Software method to retry access to peripherals that can cause bus timeouts during momentary busy periods
JP4457581B2 (ja) * 2003-05-28 2010-04-28 日本電気株式会社 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
US9209989B2 (en) * 2004-06-01 2015-12-08 Inmage Systems, Inc. Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US8949395B2 (en) * 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US7676502B2 (en) * 2006-05-22 2010-03-09 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US8224786B2 (en) * 2004-06-01 2012-07-17 Inmage Systems, Inc. Acquisition and write validation of data of a networked host node to perform secondary storage
US7979656B2 (en) 2004-06-01 2011-07-12 Inmage Systems, Inc. Minimizing configuration changes in a fabric-based data protection solution
US8055745B2 (en) * 2004-06-01 2011-11-08 Inmage Systems, Inc. Methods and apparatus for accessing data from a primary data storage system for secondary storage
US7698401B2 (en) * 2004-06-01 2010-04-13 Inmage Systems, Inc Secondary data storage and recovery system
US7664983B2 (en) * 2004-08-30 2010-02-16 Symantec Corporation Systems and methods for event driven recovery management
US20060047714A1 (en) * 2004-08-30 2006-03-02 Mendocino Software, Inc. Systems and methods for rapid presentation of historical views of stored data
US7441185B2 (en) * 2005-01-25 2008-10-21 Microsoft Corporation Method and system for binary serialization of documents
JP4555713B2 (ja) * 2005-03-17 2010-10-06 富士通株式会社 エラー通知方法及び情報処理装置
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US8601225B2 (en) * 2005-09-16 2013-12-03 Inmage Systems, Inc. Time ordered view of backup data on behalf of a host
US8683144B2 (en) * 2005-09-16 2014-03-25 Inmage Systems, Inc. Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US8554727B2 (en) * 2006-05-19 2013-10-08 Inmage Systems, Inc. Method and system of tiered quiescing
US8838528B2 (en) * 2006-05-22 2014-09-16 Inmage Systems, Inc. Coalescing and capturing data between events prior to and after a temporal window
US8527721B2 (en) * 2008-12-26 2013-09-03 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
US8527470B2 (en) * 2006-05-22 2013-09-03 Rajeev Atluri Recovery point data view formation with generation of a recovery view and a coalesce policy
US7634507B2 (en) * 2006-08-30 2009-12-15 Inmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US8028194B2 (en) * 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
US8069227B2 (en) * 2008-12-26 2011-11-29 Inmage Systems, Inc. Configuring hosts of a secondary data storage and recovery system
US8352798B2 (en) 2009-12-10 2013-01-08 International Business Machines Corporation Failure detection and fencing in a computing system
US8713361B2 (en) * 2011-05-04 2014-04-29 Advanced Micro Devices, Inc. Error protection for pipeline resources
US10223204B2 (en) 2011-12-22 2019-03-05 Intel Corporation Apparatus and method for detecting and recovering from data fetch errors
CN104704478B (zh) * 2012-06-06 2018-10-19 英特尔公司 输入/输出错误遏制事件后的恢复
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
CN105527508A (zh) * 2015-07-10 2016-04-27 北京中电华大电子设计有限责任公司 一种评估智能卡芯片cpu抗干扰能力的测试装置及方法
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4606024A (en) * 1982-12-20 1986-08-12 At&T Bell Laboratories Hierarchical diagnostic testing arrangement for a data processing system having operationally interdependent circuit boards
DE3328405A1 (de) * 1983-08-05 1985-02-21 Siemens AG, 1000 Berlin und 8000 München Steuerorgane eines fehlertoleranten mehrrechnersystems
US4833599A (en) * 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
US5075844A (en) * 1989-05-24 1991-12-24 Tandem Computers Incorporated Paired instruction processor precise exception handling mechanism

Also Published As

Publication number Publication date
EP0479230A2 (de) 1992-04-08
EP0479230A3 (en) 1993-03-17
US5193181A (en) 1993-03-09
EP0479230B1 (de) 1997-06-11
DE69126498D1 (de) 1997-07-17

Similar Documents

Publication Publication Date Title
DE69126498T2 (de) Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems
DE68913629T2 (de) Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem.
DE69215581T2 (de) Fehlertolerantes Mehrrechnersystem
DE68924119T2 (de) Verfahren und Vorrichtung zum Wiederanlauf nach einem Fehler in einem digitalen Rechnersystem.
DE3650651T2 (de) Fehlertolerantes Datenverarbeitungssystem
DE69721393T2 (de) Umschalten eines Systemwirtsrechners
DE68924223T2 (de) Mechanismus zum Prüfpunktwiederversuch.
DE69032607T2 (de) Physischer, einziger Hauptspeicher, anteilig genutzt durch zwei oder mehr Prozessoren, die ihr jeweiliges Betriebssystem ausführen
DE69903629T2 (de) Prüfung der funktionsfähigkeit eines gerätetreibers
DE68928360T2 (de) Hochleistungsrechnersystem mit fehlertoleranter Fähigkeit; Verfahren zum Betrieb desselben
US5948112A (en) Method and apparatus for recovering from software faults
DE69032631T2 (de) Verfahren und Anordnung zum Hinzufügen von einer Datenverarbeitungsfunktion zu einem Datenverarbeitungssystem
DE69031815T2 (de) Initialisation eines fehlertoleranten Datenverarbeitungssystems
JP3675802B2 (ja) 計算の状態を再構成する方法ならびにシステム
DE19525013C2 (de) Multiprozessorsystem
DE60001327T2 (de) Isolierungsmodus zur prüfung von redundanten steuerungseinheiten
DE69031093T2 (de) Unterbrechungsbedienung in einem Datenverarbeitungssystem
DE3856067T2 (de) Datenprozessor mit einer Unterbrechungsfunktion
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
JP3481737B2 (ja) ダンプ採取装置およびダンプ採取方法
DE68922440T2 (de) Gerät und Verfahren zur gleichzeitigen Einreichung von Fehlerunterbrechung und Fehlerdaten zu einem Unterstützungsprozessor.
DE69032508T2 (de) Fehlertolerantes Rechnersystem mit Online-Wiedereinfügung und Abschaltung/Start
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE68921334T2 (de) Gerät zur programmierten vorübergehenden Aufhebung des Prozessorbetriebs zum Wiederversuch, zur Rückgewinnung und zum Austesten.
EP1398700A1 (de) Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee