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-systemsInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims description 30
- 238000011084 recovery Methods 0.000 title claims description 29
- 230000015654 memory Effects 0.000 claims abstract description 75
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 51
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000011010 flushing procedure Methods 0.000 claims abstract 2
- 238000001514 detection method Methods 0.000 claims description 16
- 230000001052 transient effect Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 abstract description 5
- 230000011664 signaling Effects 0.000 abstract description 3
- 230000002159 abnormal effect Effects 0.000 abstract description 2
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 206010000117 Abnormal behaviour Diseases 0.000 description 5
- 230000009471 action Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001247418 Echites Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 208000013404 behavioral symptom Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008846 dynamic interplay Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 230000035899 viability Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0721—Error 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/0724—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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)
- Die vorliegende Erfindung bezieht sich auf Datenverarbeitungssysteme, insbesondere auf fehlertolerante Systeme.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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
- 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
- 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
- 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
- COMERR* = "P" BUS SYND BIT 23 (ABM12)
- = IL CACHE CMD
- = ILL CMD BITS
- # ILL STORE CYCLE
- = STORCY (MISSCY # LOCKSET)
- # LOCKCLR (LOCKSET # CRSBLK # !LOCKRR)
- # LOCKSET (LOCKRR # CRSBLK)
- = 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)
- + !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.
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)
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)
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 |
-
1990
- 1990-10-05 US US07/593,458 patent/US5193181A/en not_active Expired - Lifetime
-
1991
- 1991-10-01 DE DE69126498T patent/DE69126498T2/de not_active Expired - Fee Related
- 1991-10-01 EP EP91116756A patent/EP0479230B1/de not_active Expired - Lifetime
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 |