DE60302184T2 - Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm - Google Patents

Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm Download PDF

Info

Publication number
DE60302184T2
DE60302184T2 DE2003602184 DE60302184T DE60302184T2 DE 60302184 T2 DE60302184 T2 DE 60302184T2 DE 2003602184 DE2003602184 DE 2003602184 DE 60302184 T DE60302184 T DE 60302184T DE 60302184 T2 DE60302184 T2 DE 60302184T2
Authority
DE
Germany
Prior art keywords
number counter
instruction
processor
instruction number
largest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE2003602184
Other languages
English (en)
Other versions
DE60302184D1 (de
Inventor
Shigeyuki Minato-ku Aino
Shigeo Minato-ku Yamazaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of DE60302184D1 publication Critical patent/DE60302184D1/de
Application granted granted Critical
Publication of DE60302184T2 publication Critical patent/DE60302184T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein fehlertolerantes Computersystem mit Synchronismus im Gleichschritt, das dieselbe Anweisungskette auf genau dieselbe Weise durch eine Vielzahl von Rechenmodulen in Taktsynchronisation miteinander verarbeitet. Genauer gesagt betrifft sie ein fehlertolerantes Computersystem und ein Resynchronisations-Steuerverfahren hoher Geschwindigkeit, die ein Beschleunigen einer Resynchronisationsverarbeitung realisieren, wenn eine Synchronisationsfehler unter Rechenmodulen auftritt (ein Gleichschritt verloren wird).
  • 2. Beschreibung des zugehörigen Standes der Technik
  • Bei einem herkömmlichen fehlertoleranten Computersystem mit Synchronismus im Gleichschritt werden dann, wenn unter einer Vielzahl von Rechenmodulen, die dieselbe Anweisungskette gleichzeitig ausführen, aufgrund eines Fehlers oder eines anderen externen oder internen Faktors ein Rechenmodul mit einer unterschiedlichen Ausgabe von derjenigen von anderen Rechenmodulen erfasst wird, solche Gegenmaßnahmen vorgenommen, wie es folgt. Im Folgenden wird ein Rechenmodul, für das ein fehlerhafter Betrieb in Bezug auf eine Synchronisation mit anderen Rechenmodulen erfasst wird, Rechenmodul, das nicht im Gleichschrittzustand ist, genannt werden.
  • Spezifischer wird eine solche Maßnahme eines einmaligen Abtrennens eines Rechenmoduls, das aus dem Gleichschritt eines Betriebszustands gelangt, und eines Austauschens des Rechenmoduls, wenn es gemäß einem Faktor erforderlich ist, der ein aus dem Gleichschritt gelangen verursacht, oder, wenn ein Austausch nicht nötig ist, eines Durchführens einer erneuten Initialisierungsverarbeitung oder von ähnlichem gemäß der Notwendigkeit zum Integrieren des Rechenmoduls in den Betriebszustand vorgenommen.
  • Zu der Zeit der oben beschriebenen erneuten Integration in den Betriebszustand werden beim herkömmlichen fehlertoleranten Computersystem mit Synchronismus im Gleichschritt deshalb, weil ungeachtet dessen, ob ein Rechenmodul, das nicht im Gleichschrittzustand ist, ausgetauscht worden ist oder nicht, für das Rechenmodul zum Synchronisieren mit anderen Rechenmodulen, die mit einem Betrieb fortfahren, um dieselbe Verarbeitung wieder auszuführen, alle Speicherdaten, die durch die Rechenmodule im Betriebszustand gehalten sind, in einen Speicher kopiert, der durch das Rechenmodul gehalten ist, das zu der Zeit seiner erneuten Integration erneut zu integrieren ist.
  • Bei einem herkömmlichen fehlertoleranten Computersystem mit Synchronismus im Gleichschritt werden nach einem Ausführen eines Austauschs eines Rechenmoduls, das nicht im Gleichschrittzustand ist, eine erneute Initialisierungsverarbeitung gemäß einem Teil, der ein aus dem Gleichschritt gelangen und ähnliches verursacht, wenn das in Frage stehende Rechenmodul wieder in den Betriebszustand integriert wird, Rechenmodule bei dem Betriebszustand für eine lange Zeitperiode angehalten.
  • Spezifischer hat das herkömmliche fehlertolerante Computersystem mit Synchronismus im Gleichschritt ein derartiges Problem, dass, während ein Rechenmodul, das nicht im Gleichschrittzustand ist, einer Verarbeitung für eine erneute Integration unterzogen wird, das gesamte fehlertolerante Computersystem seinem Betrieb für eine lange Zeitperiode (im Allgemeinen 3 bis 5 Sekunden oder in der Größenordnung von Minuten) angehalten hat.
  • Der Grund dafür besteht darin, dass zum Integrieren eines Rechenmoduls, das nicht im Gleichschrittzustand ist, in den Betriebszustand alle Speicherinhalte für die gesamte Zeit von den Rechenmodulen, die mit einem Betrieb fortfahren, in das Rechenmodul, das erneut zu integrieren ist, kopiert werden.
  • Wenn ein Betrieb eines normalen Rechenmoduls während der Kopierverarbeitung fortgeführt wird, haben Speicherinhalte des normalen Rechenmoduls eine Möglichkeit, auch während der Kopierverarbeitung geändert zu werden, so dass ein Kopieren nicht richtig durchgeführt werden kann. Zum Vermeiden einer solchen Situation wird ein Rechenmodul bei dem Betriebszustand temporär gestoppt, um ein Updaten seiner Speicherinhalte zu verhindern.
  • Da eine Speicherkapazität in einem Rechenmodul heutzutage auf bis zu mehrere Gigabytes kommt, wird ein Kopieren des gesamten Speicherbereichs eine lange Zeitperiode erfordern.
  • Bei einem fehlertoleranten Computersystem mit Synchronismus im Gleichschritt tritt ein Zustand außerhalb eines Gleichschritts unter Rechenmodulen aufgrund verschiedener Ursachen auf.
  • Ein erster Fall ist ein fester Fehler, der innerhalb eines Rechenmoduls auftritt. In diesem Fall sollte ein Rechenmodul mit Fehler ausgetauscht werden, und wenn das auszutauschende Rechenmodul in ein Betriebssystem integriert wird, müssen alle Daten in einem Speicher eines Rechenmoduls bei dem Betriebszustand kopiert werden.
  • Bei einem fehlertoleranten Computersystem mit Synchronismus im Gleichschritt kann ein Zustand außerhalb eines Gleichschritts auftreten, weil zusätzlich zu dem oben beschriebenen festen Fehler Rechenmodule aufgrund von Herstellungsunterschieden von einer jeweiligen Einheit in einem Rechenmodul zu einer unterschiedlichen Zeitgabe arbeiten, obwohl ihr Betrieb normal ist, oder aufgrund eines automatisch korrigierbaren intermittierenden Fehlers eines Speichers, der durch Effekte eines α-Strahls oder von ähnlichem verursacht wird.
  • In diesen Fällen benötigt das Modul deshalb, weil ein fester Fehler nicht in einem Rechenmodul selbst auftritt, grundsätzlich keinen Austausch, und durch abermaliges Synchronisieren seiner Verarbeitung mit derjenigen von anderen Rechenmodulen in einem Betrieb kann, um das in Frage stehende Rechenmodul zu integrieren, das gesamte fehlertolerante Computersystem wieder zu einem normalen Betriebszustand hergestellt werden.
  • In DE-A-41 04 114 ist ein redundantes Datenverarbeitungssystem offenbart. Das redundante Datenverarbeitungssystem weist wenigstens zwei Zentraleinheiten und eine Einrichtung zum Erfassen von Unterbrechungszuständen sowie eine Einrichtung zur Synchronisation, nachdem ein Unterbrechungszustand erfasst worden ist, auf. Die Zentraleinheit mit der am weitesten fortgeschrittenen Programmausführung wird in einem Wartezustand gehalten, bis die anderen Zentraleinheiten den Programmzustand der Zentraleinheit erreicht haben, um eine schnelle Synchronisation einzuführen.
  • Im US-Patent 5,020,024 sind ein Verfahren und eine Vorrichtung zum Erfassen einer ausgewählten Abwesenheit eines Synchronismus einer digitalen Logik offenbart. Das zur Verfügung gestellte digitale Logikgerät, in welchem zwei Logikelemente mit einer Zeitgabesteuerung von einem Taktelement mit einem ausgewählten Synchronismus arbeiten, enthält ein Fehlererfassungselement, das die Abwesenheit des ausgewählten Synchronismus zwischen den zwei Logikelementen selbst dann erfasst, wenn jedes sonst eine richtige Logikoperation zur Verfügung stellt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist eine Aufgabe der vorliegenden Erfindung, die durch die Ansprüche definiert ist, ein fehlertolerantes Computersystem, ein Resynchronisationsverfahren davon und ein Resynchronisationsprogramm davon zur Verfügung zu stellen, die ermöglichen, dass ein Rechenmodul, dessen Gleichschritt aufgrund anderer Gründe als eines festen Fehlers verloren geht, mit einer höheren Geschwindigkeit als durch ein herkömmliches System wieder in den Betriebszustand integriert wird, um dadurch eine Zeit zum temporären Anhalten des Systembetriebs drastisch zu reduzieren, das durch die Integrationsverarbeitung verursacht wird.
  • Eine weitere Aufgabe der vorliegenden Erfindung besteht im Bereitstellen eines fehlertoleranten Computersystems, eines Resynchronisationsverfahrens davon und eines Resynchronisationsprogramms davon, welche eine Verbesserung einer Verfügbarkeit des Systems durch die Reduzierung an Zeit für die oben beschriebene Verarbeitung für eine erneute Integration realisieren.
  • Gemäß dem ersten Aspekt der Erfindung enthält ein fehlertolerantes Computersystem mit Synchronismus im Gleichschritt eine Vielzahl von Rechenmodulen mit einem Prozessor und einem Speicher, wobei jedes Rechenmodul dieselbe Anweisungskette synchron zueinander verarbeitet, wobei dann, wenn eine Nichtübereinstimmung in Bezug auf einen Zustand eines Zugriffs auf einen externen Bus unter den Prozessoren in jedem Rechenmodul erfasst wird, wenn kein Fehler im System erfasst wird, das jedes Rechenmodul enthält, eine Verarbeitung eines Wiederaufnahmebetriebs in Synchronisation in Bezug auf jedes Rechenmodul nach einem Erzeugen einer Unterbrechung zu allen Prozessoren ausgeführt wird, um eine Verzögerungseinstellung auszuführen, um zu veranlassen, dass ein Zustand einer Anweisungsausführung unter den Rechenmodulen übereinstimmend wird.
  • Das fehlertolerante Computersystem weist weiterhin einen Fehlerdetektor auf, der ein Vorhandensein/Nichtvorhandensein eines Fehlers im System überwacht;
    einen Busmonitor, der einen Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul zu dem externen Bus überwacht;
    eine Unterbrechungs-Steuereinrichtung, um in einem Fall, in welchem der Busmonitor ein Fehlen einer Synchronisation in einem Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul auf den externen Bus erfasst, wenn der Fehlerdetektor keinen Fehler erfasst, eine Unterbrechung zum Mitteilen des Erfassungsergebnisses zu jedem Prozessor zu erzeugen;
    eine Zwischensystemkommunikations-Steuereinrichtung, die an jedes Rechenmodul angeschlossen ist, zum Mitteilen eines Zustands einer Anweisungsausführung unter den Prozessoren in jedem Rechenmodul und eine Synchronisations-Steuereinrichtung, die an jedes Rechenmodul angeschlossen ist, zum Erzeugen eines Rücksetzsignals zum Wiederaufnehmen eines Betriebs von allen Rechenmodulen in Synchronisation nach einem Durchführen einer Verzögerungseinstellung, um zu veranlassen, dass ein Zustand einer Anweisungsausführung in jedem Rechenmodul übereinstimmend wird.
  • Jeder von allen Prozessoren enthält einen Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor, der Anweisungsanzahl-Zähler unterlässt ein Arbeiten, wenn die Prozessoren eine Unterbrechung von der Unterbrechungs-Steuereinrichtung empfangen und zur Resynchronisation zu einem Prozessor-Managementmode schalten;
    jeder Prozessor vergleicht einen Wert seines eigenen Anweisungsanzahl-Zählers mit einem Wert eines Anweisungsanzahl-Zählers, der von jedem entsprechenden Prozessor in anderen Rechenmodulen empfangen wird;
    das Rechenmodul, das den Anweisungsanzahl-Zähler nicht enthält, der den größten Wert unter allen der Zähler anzeigt, führt eine Verzögerungseinstellung zum Ausführen von Anweisungen durch, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, und wenn die Werte übereinstimmen, sendet es eine Mitteilung zu dem Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, wartet auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen, und wenn es alle Mitteilungen empfängt, weist es die Synchronisations-Steuereinrichtung an, ein Rücksetzsignal zu erzeugen, um zu veranlassen, dass alle Rechenmodule einen Betrieb in Synchronisation zueinander wiederaufnehmen.
  • Bei einem weiteren bevorzugten Aufbau wird bei einer Verzögerungseinstellung, bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert nicht der Größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, der Prozessor auf einen Schrittausführungsmode zum Schalten zu dem Prozessor-Managementmode nach einem Ausführen einer Anweisung eingestellt, und wiederholt der Prozessor die Verarbeitung des Schrittausführungsmodes, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
  • Bei einem weiteren bevorzugten Aufbau schaltet jeder von allen Prozessoren, die eine Unterbrechung von der Unterbrechungs-Steuereinrichtung empfangen haben, zu einem Prozessor-Managementmode zur Resynchronisationsverarbeitung, bei welcher ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen in dem Prozessor ein Arbeiten unterlässt und ein Programmzählerwert gesichert und gespeichert wird;
    jeder der Prozessoren einen Anweisungsanzahl-Zählerwert jedes Prozessors und den gesicherten Programmzählerwert liest und die Werte zu allen anderen Rechenmodulen sendet.
  • Bei einem weiteren bevorzugten Aufbau wird bei einer Verzögerungseinstellung, bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert nicht der Größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, der Prozessor auf einen Abbruchstellenbestimmungs-Ausführungsmode zum Schalten zu dem Prozessor-Managementmode nach einem Ausführen bis zu einer Anweisung bei einer spezifischen Position in einer bestimmten Anweisungskette eingestellt;
    wird als die spezifische Position in der Anweisungskette eine Anweisungsposition bestimmt, die durch den von dem Rechenmodul empfangenen Programmzählerwert angezeigt wird, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, und wird nach einem Ausführen der Anweisungskette bis zu der spezifischen Position in einer bestimmten Anweisungskette der Prozessor zu dem Prozessor-Managementmode geschaltet.
  • Bei einem weiteren bevorzugten Aufbau wartet das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, nach einem Lesen eines Programmausführungszustands auf die Mitteilung von anderen Rechenmodulen;
    lesen nach einem Ausführen der Verzögerungseinstellungsverarbeitung alle anderen Rechenmodule, die den Anweisungsanzahl-Zähler nicht enthalten, der den größten Wert anzeigt, einen Programmausführungszustand und senden den Programmausführungszustand zusammen mit einer Mitteilung über eine Beendigung der Verzögerungseinstellungsverarbeitung zu dem Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, und vergleicht das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, das den Größten anzeigt, Programmausführungszustände aller Rechenmodule, und dann, wenn alle miteinander übereinstimmen, weist es eine Erzeugung des Rücksetzsignals zum Wiederaufnehmen eines Synchronisationsbetriebs an, und wenn ein Rechenmodul, dessen Programmausführungszustand nicht übereinstimmend ist, erfasst wird, weist es die Erzeugung des Rücksetzsignals zum Wiederaufnehmen eines Betriebs in Synchronisation nach einem Ausführen einer Verarbeitung zum Abtrennen und zum Erklären des Rechenmoduls für ungültig an.
  • Bei einem weiteren bevorzugten Aufbau sind eine Vielzahl von Paaren des Fehlerdetektors, des Busmonitors, der Unterbrechungs-Steuereinrichtung, der Zwischensystemkommunikations-Steuereinrichtung und der Synchronisations-Steuereinrichtung vorgesehen.
  • Gemäß einem weiteren Aspekt der Erfindung weist ein Resynchronisationsverfahren in einem fehlertoleranten Computersystem im Gleichschritt, das eine Vielzahl von Rechenmodulen mit einem Prozessor und einem Speicher enthält, wobei jedes Rechenmodul dieselbe Anweisungskette synchron zueinander verarbeitet, die Schritte auf, um dann, wenn eine Nichtübereinstimmung in einem Zustand eines Zugriffs auf einen externen Bus unter den Prozessoren in jedem Rechenmodul, wenn kein Fehler in dem System erfasst wird, das jedes Rechenmodul enthält, eine Unterbrechung zu allen Prozessoren zu erzeugen und nach einem Ausführen einer Verzögerungseinstellung zu veranlassen, dass ein Anweisungsausführungszustand unter den Rechenmodulen übereinstimmend wird, eine Verarbeitung zum Wiederaufnehmen eines Betriebs in Synchronisation in Bezug auf jedes Rechenmodul auszuführen.
  • Das Resynchronisationsverfahren eines fehlertoleranten Computersystems weist weiterhin die Schritte zum Überwachen eines Vorhandenseins/Nichtvorhandenseins eines Fehlers im System auf;
    zum Überwachen eines Zustands eines Zugriffs jedes Prozessors in jedem Rechenmodul auf den externen Bus;
    wenn eine Nichtübereinstimmung in einem Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul auf den externen Bus erfasst wird, wenn kein Fehler erfasst wird, zum Erzeugen einer Unterbrechung zum Mitteilen des Erfassungsergebnisses zu allen Prozessoren, und nach einem Ausführen der Verzögerungseinstellung zum Veranlassen, dass ein Zustand einer Anweisungsausführung unter den Rechenmodulen übereinstimmend wird, zum Erzeugen eines Rücksetzsignals zum Ausführen einer Verarbeitung zum Wiederaufnehmen eines Betriebs in Synchronisation von allen Rechenmodulen.
  • Das Resynchronisationsvertahren weist weiterhin die Schritte auf, dass jeder von allen Prozessoren, die die Unterbrechung empfingen, zu einem Prozessor-Managementmode zur Resynchronisationsverarbeitung schaltet, wobei ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor ein Arbeiten unterlässt;
    wobei jeder Prozessor den gelesenen Anweisungsanzahl-Zählerwert mit einem von jedem Prozessor in anderen Rechenmodulen empfangenen Anweisungsanzahl-Zählerwert vergleicht;
    wobei das Rechenmodul, das den Anweisungsanzahl-Zähler nicht enthält, der den größten Wert unter allen Zählern anzeigt, die Verzögerungseinstellung zum Ausführen von Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, und dann, wenn die Werte übereinstimmen, eine Mitteilung zu dem Rechenmodul sendet, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen wartet und dann, wenn es alle Mitteilungen empfängt, das Rücksetzsignal erzeugt, um zu veranlassen, dass alle Rechenmodule einen Betrieb in Synchronisation zueinander wiederaufnehmen.
  • Bei einem weiteren bevorzugten Aufbau wird bei der Verzögerungseinstellung, bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert nicht der Größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
    der Prozessor auf einen Schritt- bzw. Stufenausführungsmode zum Schalten zu dem Prozessor-Managementmode nach einem Ausführen einer Anweisung eingestellt, und wiederholt der Prozessor die Verarbeitung des Schrittausführungsmodes, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
  • Bei einem weiteren bevorzugten Aufbau schaltet jeder von allen Prozessoren, die die Unterbrechung empfingen, zu einem Prozessor-Managementmode zur Resynchronisationsverarbeitung, wobei ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor ein Arbeiten unterlässt und ein Programmzählerwert gesichert und gespeichert wird;
    liest jeder Prozessor den Anweisungsanzahl-Zählenrvert jedes Prozessors und den gesicherten Programmzählerwert und sendet die Werte zu allen anderen Rechenmodulen.
  • Bei einem weiteren bevorzugten Aufbau wird bei einer Verzögerungseinstellung, bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert nicht der Größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
    der Prozessor auf einen Abbruchstellenbestimmungs-Ausführungsmode zum Schalten zum Prozessor-Managementmode nach einem Ausführen bis zu einer Anweisung bei einer spezifischen Position in einer bestimmten Anweisungskette eingestellt;
    wird als die spezifische Position in der Anweisungskette eine Anweisungsposition bestimmt, die durch den von dem Rechenmodul empfangenen Programmzählerwert angezeigt wird, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, und wird nach einem Ausführen der Anweisungskette bis zu der spezifischen Position in einer bestimmten Anweisungskette der Prozessor zu dem Prozessor-Managementmode geschaltet.
  • Bei einem weiteren bevorzugten Aufbau wartet das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, nach einem Lesen eines Programmausführungszustands auf die Mitteilung von anderen Rechenmodulen;
    lesen alle anderen Rechenmodule, die den Anweisungsanzahl-Zähler nicht enthalten, der den größten Wert anzeigt, nach einem Ausführen der Verzögerungs einstellungsverarbeitung einen Programmausführungszustand und senden den Programmausführungszustand zusammen mit einer Mitteilung über eine Beendigung der Verzögerungseinstellungsverarbeitung zu dem Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, und vergleicht das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, Programmausführungszustände von allen Rechenmodulen, und dann, wenn alle miteinander übereinstimmen, weist es eine Erzeugung des Rücksetzsignals zum Wiederaufnehmen eines Synchronisationsbetriebs an, und dann, wenn ein Rechenmodul, dessen Programmausführungszustand nicht übereinstimmend ist, erfasst wird, weist es die Erzeugung des Rücksetzsignals zum Wiederaufnehmen eines Betriebs in Synchronisation nach einem Ausführen einer Verarbeitung eines Abtrennens und eines Erklärens für ungültig des Rechenmoduls an.
  • Gemäß einem weiteren Aspekt der Erfindung weist ein Resynchronisationsprogramm zum Ausführen einer Resynchronisationsverarbeitung eines fehlertoleranten Computersystems mit Synchronismus im Gleichschritt, das eine Vielzahl von Rechenmodulen mit einem Prozessor und einem Speicher enthält, wobei jedes Rechenmodul dieselbe Anweisungskette in Taktsynchronisation zueinander verarbeitet, die Funktionen auf, dass dann, wenn eine Nichtübereinstimmung bezüglich eines Zustands eines Zugriffs auf einen externen Bus unter den Prozessoren in jedem Rechenmodul erfasst wird, wenn kein Fehler in dem System erfasst wird, das ein jeweiliges Rechenmodul enthält, eine Unterbrechung zu allen Prozessoren erzeugt wird und veranlasst wird, dass jeder Prozessor nach einem Ausführen einer Verzögerungseinstellung einen Betrieb in Synchronisation wieder aufnimmt, um zu veranlassen, dass ein Anweisungsausführungszustand unter den Rechenmodulen übereinstimmend wird.
  • Das Resynchronisationsprogramm weist weiterhin die Funktionen zum Überwachen eines Vorhandenseins/Nichtvorhandenseins eines Fehlers im System auf;
    zum Überwachen eines Zustands eines Zugriffs jedes Prozessors in jedem Rechenmodul auf den externen Bus, wenn eine Nichtübereinstimmung bezüglich eines Zustands eines Zugriffs jedes Prozessors in jedem Rechenmodul auf den externen Bus erfasst wird, wenn kein Fehler bei der Fehlerüberwachung erfasst wird, zum Erzeugen einer Unterbrechung zum Mitteilen des Erfassungsergebnisses zu jedem Prozessor, und zum Erzeugen eines Rücksetzsignals zum Wiederaufnehmen eines Betriebs in Synchronisation von allen Rechenmodulen nach einem Ausführen der Verzögerungseinstellung, um zu veranlassen, dass ein Zustand einer Anweisungsausführung unter den Rechenmodulen übereinstimmend wird.
  • Das Resynchronisationsprogramm weist die Funktion von jedem aller Prozessoren, die die Unterbrechung empfingen, auf, zur Resynchronisationsverarbeitung zu einem Prozessor-Managementmode zu schalten, wobei ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor ein Arbeiten unterlässt;
    die Funktion, dass jeder Prozessor den gelesenen Anweisungsanzahl-Zählerwert mit einem von jedem Prozessor in anderen Rechenmodulen empfangenen Anweisungsanzahl-Zählerwert vergleicht;
    die Funktion, dass das Rechenmodul, das den Anweisungsanzahl-Zähler nicht enthält, der den größten Wert unter allen Zählern anzeigt, die Verzögerungseinstellung zum Ausführen von Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, und dann, wenn die Werte übereinstimmen, eine Mitteilung zu dem Rechenmodul sendet, das den Anweisungsanzahl-Zähler enthält, der den größten Wert enthält, und die Funktion, dass das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen wartet, und dann, wenn es alle Mitteilungen empfängt, eine Erzeugung des Rücksetzsignals anweist, um zu veranlassen, dass alle Rechenmodule einen Betrieb in Synchronisation wiederaufnehmen.
  • Bei einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm bei der Verzögerungseinstellung, bei welcher das Rechenmodul, dessen Anweisungsanzahl-Zählerwert nicht der Größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
    die Funktion eines Einstellens des Prozessors auf einen Stufenausführungsmode zum Schalten zu dem Prozessor-Managementmode nach einem Ausführen einer Anweisung auf;
    die Funktion, dass der Prozessor die Verarbeitung des Stufenausführungsmodes wiederholt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
  • Bei einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm die Funktion auf, dass jeder von allen Prozessoren, die die Unterbrechung empfin gen, zu dem Prozessor-Managementmode zur Resynchronisationsverarbeitung schaltet, wobei der Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor ein Arbeiten unterlässt und ein Programmzählerwert gesichert und gespeichert wird;
    die Funktion, dass jeder Prozessor den Anweisungsanzahl-Zählerwert jedes Prozessors und den gesicherten Programmzählerwert liest und die Werte zu allen anderen Rechenmodulen sendet.
  • Bei einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm bei der Verzögerungseinstellung, wobei das Rechenmodul, dessen Anweisungsanzahl-Zählerwert nicht der Größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt;
    die Funktion eines Einstellens des Prozessors auf einen Abbruchstellenbestimmungs-Ausführungsmode zum Schalten zu dem Prozessor-Managementmode nach einem Ausführen des Prozessors bis zu einer Anweisung bei einer spezifischen Position in einer bestimmten Anweisungskette auf;
    die Funktion eines Bestimmens einer Anweisungsposition, die durch den von dem Rechenmodul empfangenen Programmzählerwert angezeigt wird, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, als die spezifische Position in der Anweisungskette, und die Funktion eines Schaltens des Prozessors zu dem Prozessor-Managementmode, nachdem der Prozessor die Anweisungskette bis zu der spezifischen Position in einer bestimmten Anweisungskette ausführt.
  • Bei einem weiteren bevorzugten Aufbau weist das Resynchronisationsprogramm die Funktion auf, dass das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, auf die Mitteilung von anderen Rechenmodulen nach einem Lesen eines Programmausführungszustands wartet, die Funktion, dass alle anderen Rechenmodule, die den Anweisungsanzahl-Zähler nicht enthalten, der den größten Wert anzeigt, einen Programmausführungszustand lesen und den Programmausführungszustand zusammen mit einer Mitteilung über eine Beendigung der Verzögerungseinstellungsverarbeitung zu dem Rechenmodul senden, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, nach einem Ausführen der Verzögerungseinstellungsverarbeitung, und die Funktion, dass das Rechenmodul, das den Anweisungsanzahl-Zähler enthält, der den Größten anzeigt, Programmausführungszustände von allen Rechenmodulen vergleicht, und dann, wenn alle miteinander übereinstimmen, eine Erzeugung des Rücksetzsignals zum Wiederaufnehmen eines Betriebs in Synchronisation anweisen, und dann, wenn ein Rechenmodul, dessen Programmausführungszustand nicht übereinstimmend ist, erfasst wird, die Erzeugung des Rücksetzsignals zum Wiederaufnehmen eines Betriebs in Synchronisation nach einem Ausführen einer Verarbeitung eines Abtrennens und eines für ungültig Erklärens des Rechenmoduls anweisen.
  • Andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der hierin nachfolgend angegebenen detaillierten Beschreibung klar werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird vollständiger aus der hierin nachfolgend angegebenen detaillierten Beschreibung und aus den beigefügten Zeichnungen des bevorzugten Ausführungsbeispiels der Erfindung verstanden werden, welche jedoch nicht als beschränkend für die Erfindung angenommen werden sollten, sondern nur zur Erklärung und zum Verstehen dienen.
  • In den Zeichnungen gilt:
  • 1 ist ein Blockdiagramm, das eine Struktur eines fehlertoleranten Computersystems gemäß einem ersten Implementierungsmode der vorliegenden Erfindung zeigt;
  • 2 ist ein Ablaufdiagramm zur Verwendung beim Erklären eines ersten Betriebs des fehlertoleranten Computersystems gemäß dem ersten Mode;
  • 3 ist ein Ablaufdiagramm zur Verwendung beim Erklären des ersten Betriebs des fehlertoleranten Computersystems;
  • 4 ist ein Ablaufdiagramm zur Verwendung beim Erklären eines zweiten Betriebs des fehlertoleranten Computersystems;
  • 5 ist ein Ablaufdiagramm zur Verwendung beim Erklären des zweiten Betriebs des fehlertoleranten Computersystems;
  • 6 ist ein Ablaufdiagramm zur Verwendung beim Erklären eines dritten Betriebs des fehlertoleranten Computersystems;
  • 7 ist ein Blockdiagramm, das eine Struktur eines fehlertoleranten Computersystems gemäß einem zweiten Implementierungsmode zeigt;
  • 8 ist ein Ablaufdiagramm zur Verwendung beim Erklären eines Betriebs des fehlertoleranten Computersystems gemäß dem zweiten Mode;
  • 9 ist ein Ablaufdiagramm zur Verwendung beim Erklären des Betriebs des fehlertoleranten Computersystems gemäß dem zweiten Ausführungsbeispiel; und
  • 10 ist ein Blockdiagramm, das eine Struktur eines fehlertoleranten Computersystems gemäß einem dritten Implementierungsmode zeigt.
  • BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung wird hierin nachfolgend detailliert unter Bezugnahme auf die beigefügten Zeichnungen diskutiert werden. In der folgenden Beschreibung sind zahlreiche spezifische Details aufgezeigt, um ein sorgfältiges Verstehen der vorliegenden Erfindung zur Verfügung zu stellen. Es wird jedoch Fachleuten auf dem Gebiet offensichtlich werden, dass die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann. Andererseits sind wohlbekannte Strukturen nicht detailliert gezeigt, um die vorliegende Erfindung nicht unnötig zu verdecken.
  • Implementierungsmoden der vorliegenden Erfindung werden unter Bezugnahme auf die Zeichnungen im Folgenden detailliert beschrieben werden.
  • Eine Struktur eines fehlertoleranten Computersystems gemäß einem ersten Implementierungsmode der vorliegenden Erfindung ist in 1 gezeigt. In 1 enthält des fehlertolerante Computersystem eine Vielzahl von Rechenmodulen 100 und 200, von welchen jedes Rechenmodul 100 und 200 dieselbe Anweisungskette in Taktsynchronisation zueinander verarbeitet. Das fehlertolerante Computersystem vergleicht ein Verarbeitungsergebnis von jedem Rechenmodul zur Freigabe. Wenn ein Rechenmodul einen Fehler entwickelt, kann die Verarbeitung durch das übrige Rechenmodul fortgeführt werden.
  • Die Rechenmodule enthalten eine Vielzahl von Prozessoren 101 und 102, einen Bus 103 extern vom Prozessor, einen Speicher 104 und eine Speichersteuereinheit 105. Das Rechenmodul 200 enthält auch dieselben Komponenten wie das Rechenmodul 100.
  • Zusätzlich sind die Rechenmodule 100 und 200 mit peripheren Vorrichtungs-Steuereinheiten 400 und 500 zum Steuern einer peripheren Vorrichtung durch die Speichersteuereinheiten 105 und 205 verbunden.
  • Das oben beschriebene fehlertolerante Computersystem enthält weiterhin einen Fehlerdetektor 700, einen Busmonitor 701, eine Unterbrechungs-Steuereinheit 702, eine Zwischensystemkommunikations-Steuereinheit 703 und einen Synchronisations-Steuereinheit 704.
  • Der Fehlerdetektor 700 überwacht ein Vorhandensein/Nichtvorhandensein eines Fehlers im gesamten System mit den jeweiligen Rechenmodulen 100 und 200.
  • Der Busmonitor 701 überwacht einen Zustand eines Zugriffs des Prozessors in jedem der Rechenmodule 100 und 200 auf die externen Busse 103 und 203.
  • In einem Fall, in welchem der Busmonitor 701 eine Nichtübereinstimmung bezüglich einer Ausgabe jedes Prozessors in den jeweiligen Rechenmodulen 100 und 200 zu dem externen Bus erfasst, wenn der Fehlerdetektor 700 keinen Fehler erfasst, erzeugt die Unterbrechungs-Steuereinheit 701 eine Unterbrechung, um den Effekt allen Prozessoren mitzuteilen.
  • Die Zwischensystemkommunikations-Steuereinheit 703, die mit den jeweiligen Rechenmodulen 100 und 200 verbunden ist, stellt einen Kommunikationspfad zum Prüfen eines Zustands einer Nichtübereinstimmung bezüglich eines Betriebs durch die Prozessoren in den jeweiligen Rechenmodulen 100 und 200 zur Verfügung.
  • Die Synchronisations-Steuereinheit 704, die mit den jeweiligen Rechenmodulen 100 und 200 verbunden ist, erzeugt ein Rücksetzsignal zum Steuern einer Resynchronisation zu allen Rechenmodulen 100 und 200 in Reaktion auf eine Anweisung von irgendeinem der Prozessoren.
  • Hier ist die Anzahl von Prozessoren, die in jedem der Rechenmodule 100 und 200 enthalten sind, nicht auf Zwei beschränkt, wie es beim vorliegenden Implementierungsmode gezeigt ist, und an jedem Rechenmodul kann ein Prozessor oder können drei oder mehrere Prozessoren angebracht sein.
  • Zusätzlich ist die Anzahl von Rechenmodulen nicht auf Zwei beschränkt, wie es bei dem vorliegenden Implementierungsmode gezeigt ist, und drei oder mehrere Rechenmodule können enthalten sein, um denselben Effekt wie denjenigen der vorliegenden Erfindung zu haben.
  • Als Nächstes wird ein Betrieb eines solchen strukturierten fehlertoleranten Computersystems gemäß dem ersten Implementierungsmode unter Bezugnahme auf die 1, 2 und 3 detailliert erklärt werden.
  • Der Fehlerdetektor 700 überwacht ein Vorhandensein/Nichtvorhandensein eines Fehlers im gesamten fehlertoleranten Computersystem mit den jeweiligen Rechenmodulen 100 und 200 und den jeweiligen Steuereinheiten 400 und 500 für periphere Vorrichtungen und teilt der Unterbrechungs-Steuereinheit 702 das Ergebnis mit.
  • Der Busmonitor 701 ist mit den externen Bussen 103 und 203 der Prozessoren der jeweiligen Rechenmodule 100 und 200 verbunden. Der Busmonitor 701 vergleicht einen Zustand eines Zugriffs (Busprotokoll der Prozessoren 101, 102, 201 und 202) auf den externen Bus, um zu überwachen, ob die jeweiligen Prozessoren 101, 102, 201 und 202 auf die prozessorexternen Busse 103 und 203 zur gleichen Zeitgabe synchron zueinander zugreifen oder nicht. Wenn ein Mangel an Übereinstimmung bezüglich eines Betriebs der Prozessoren 101, 102, 201 und 202 erfasst wird, teilt der Busmonitor 701 den Effekt der Unterbrechungs-Steuereinheit 702 mit.
  • Wenn ihr die Erfassung eines Mangels an Synchronisation bezüglich eines Betriebs durch den Busmonitors 701 mitgeteilt wird, wenn der Fehlerdetektor 700 keinen Fehler im fehlertoleranten Computersystem erfasst, erzeugt die Unterbrechungs-Steuereinheit 702 eine Unterbrechung, um den Effekt allen Prozessoren in jedem Rechenmodul mitzuteilen.
  • Die Unterbrechungs-Steuereinheit 702 unterdrückt auch eine Erzeugung einer neuen Unterbrechung nach der Erzeugung einer Unterbrechung, bis eine Anwei sung von der Synchronisations-Steuereinheit 704 gegeben wird. Die Unterdrückung verhindert ein Erkennen eines Mangels an Synchronisation in Bezug auf einen Betrieb eines Zugriffs der Prozessoren zum externen Bus, welcher durch eine Resynchronisationsverarbeitung für jedes Rechenmodul verursacht wird, als Mangel einer Synchronisation bei einem normalen Betrieb.
  • Jeder der Prozessoren 101, 102, 201 und 202, die die Unterbrechung von der Unterbrechungs-Steuereinheit 702 empfangen haben, korrigiert eine Abweichung bezüglich eines Betriebs (ein aus dem Gleichschritt geraten) zwischen den jeweiligen Rechenmodulen 100 und 200 durch Ausführen einer Resynchronisationsverarbeitung zum Wiedergewinnen eines Zustands, in welchem dieselbe Anweisungskette in Taktsynchronisation zueinander ausgeführt wird.
  • Die relevante Resynchronisationsverarbeitung wird unter Bezugnahme auf die in den 2 und 3 gezeigten Ablaufdiagramme beschrieben werden.
  • Auf ein Empfangen einer Unterbrechung hin schaltet jeder der Prozessoren 101, 102, 201 und 202 zu einem Prozessor-Managementmode zur Resynchronisationsverarbeitung, wobei ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von Anweisungen, die im Prozessor ausgeführt sind, ein Arbeiten unterlässt (Schritt 201).
  • Dann liest jeder der Prozessoren 101, 102, 201 und 202 einen Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 202), um den gelesenen Wert des Anweisungsanzahl-Zählers zu einem anderen Rechenmodul durch die Speicher-Steuereinheiten 105 und 205 und die Zwischensystemkommunikations-Steuereinheit 703 zu senden (Schritt 203).
  • Jeder der Prozessoren 101, 102, 201 und 202 liest auch den Wert des Anweisungsanzahl-Zählers des Prozessors im anderen Rechenmodul, der von dem anderen Rechenmodul über die Zwischensystemkommunikations-Steuereinheit 703 und die Speicher-Steuereinheiten 105 und 205 gesendet sind (Schritt 204). Jeder der Prozessoren vergleicht denselben mit dem Wert des Anweisungsanzahl-Zählers des entsprechenden Prozessors in jedem von allen Rechenmodulen (Schritt 205).
  • Hier führt das Rechenmodul, das einen Prozessor enthält, dessen Anweisungsanzahl-Zähler den größten Wert unter allen Zählern anzeigt (hierin nachfolgend wird es das Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts genannt), während andere Rechenmodule Anweisungen äquivalent zu einer Verzögerung als Ergebnis eines Vergleichs der Anweisungsanzahl-Zählerwerte ausführen, eine Verarbeitung zum Bringen der Ausführung in eine Warteschlange durch (Schritt 206). Wenn die Anzahlen von ausgeführten Anweisungen in allen Rechenmodulen 100 und 200 miteinander übereinstimmen, weist das Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts die Synchronisations-Steuereinheit 704 über die Speicher-Steuereinheit 105 oder 205 an, eine Rücksetzanweisung zur Resynchronisationsverarbeitung zu allen Rechenmodulen 100 und 200 zu erzeugen (Schritt 207).
  • Andererseits führen alle Rechenmodule, die den Anweisungsanzahl-Zähler nicht enthalten, der den größten Wert anzeigt, eine Verzögerungsschritt-Einstellungsverarbeitung zum Ausführen von Anweisungen aus, bis in denselben Anweisungskettenausführungszustand wie demjenigen des Rechenmoduls eingetreten wird, dessen Anzahl von ausgeführten Anweisungen (der Anweisungsanzahl-Zählerwert) die größte ist (Schritt 208). Jedes der Rechenmodule, deren Anweisungsanzahl-Zählerwert nicht der Größte ist, teilt eine Beendigung der Verzögerungsschritteinstellungsverarbeitung zu dem Rechenmodul mit, dessen Anweisungsanzahl-Zählerwert der Größte ist (Schritt 209), und wartet darauf folgend auf eine Anforderungsanweisung für die Resynchronisationsverarbeitung (Schritt 210).
  • Auf ein Empfangen der Anweisung vom Rechenmodul mit dem Anweisungsanzahl-Zähler hin, der den größten Wert anzeigt, erzeugt die Synchronisations-Steuereinheit 704 ein Rücksetzsignal zum Wiedergewinnen des Betriebs in Synchronisation gleichzeitig zu allen Rechenmodulen 100 und 200. Zusätzlich gibt die Einheit 704 gleichzeitig der Unterbrechungs-Steuereinheit 702 eine Anweisung, um eine Erzeugung einer Unterbrechung zuzulassen, um dadurch vorzubereiten, dass ein normaler Betrieb in Synchronisation wieder aufgenommen wird.
  • 3 zeigt eine detaillierte Funktion der in 2 dargestellten Verzögerungsschritteinstellungsverarbeitung.
  • Bei der Verzögerungseinstellungsverarbeitung (Schritt 208 in 2) werden die Prozessoren auf einen Schrittausführungsmode eingestellt, in welchem die Prozes soren genau nach einem Ausführen von einer Anweisung zu dem Prozessor-Managementmode geschaltet werden (Schritt 301). Darauf folgend werden die Prozessoren zu einem normalen Ausführungsmode geschaltet (Schritt 302).
  • Als Ergebnis schaltet der Prozessor nach einem Ausführen von nur einer Anweisung (Schritt 303) zu dem Prozessor-Managementmode (Schritt 304).
  • Der Prozessor liest den Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 305) und vergleicht den gelesenen Wert mit dem Wert eines Anweisungsanzahl-Zählers, der bereits von dem Rechenmodul mit dem größten Wert empfangen ist (Schritt 306). Wenn sie fehlschlagen, miteinander übereinzustimmen, wiederholt der Prozessor die Verarbeitung des Schrittausführungsmodes wieder (Schritt 301), und dann, wenn sie miteinander übereinstimmen, beendet er die Verzögerungsschritteinstellungsverarbeitung.
  • Die vorangehend beschriebene Funktion ermöglicht, dass ein Zustand eines Rechenmoduls, das aufgrund einer anderen Ursache als eines festen Fehlers aus einem Gleichschritt gelangt, mit einem Zustand von anderen Rechenmodulen übereinstimmt. Im Allgemeinen ist dann, wenn ein Mangel an Synchronisation zuerst durch Überwachen der externen Busse erfasst wird, selbst bei dem Zustand außerhalb eines Gleichschritts, sein Ausmaß an außerhalb eines Gleichschritts sein gering genug, um zu dem Zustand wiederhergestellt zu werden, der dieselbe Anweisungskette ausführt, indem die oben beschriebenen mehreren Schritte einer Verarbeitung ausgeführt werden. Daher kann seine Verarbeitungszeit im Vergleich mit einem herkömmlichen System drastisch reduziert werden, bei welchem alle Speicherbereiche kopiert werden.
  • Die 4 und 5 sind Ablaufdiagramme, die einen zweiten Betrieb der Resynchronisationsverarbeitung in einem fehlertoleranten Computersystem erklären, das strukturiert ist, wie es in 1 gezeigt ist.
  • Bei diesem zweiten Betrieb führen die Prozessoren 101, 102, 201 und 202, die eine Unterbrechung von der Unterbrechungs-Steuereinheit 702 empfangen haben, jeweils eine in 4 dargestellte Resynchronisationsverarbeitung zum Korrigieren einer Abweichung bezüglich eines Betriebs (eines aus dem Gleichschritt gelangen) unter den jeweiligen Rechenmodulen 100 und 200 und zum Wiedergewinnen des Zustands, bei welchem dieselbe Anweisungskette in Synchronisation ausgeführt wird, aus.
  • Auf ein Empfangen der Unterbrechung hin schaltet jeder der Prozessoren 101, 102, 201 und 202 zu dem Prozessor-Managementmode zur Resynchronisationsverarbeitung, wobei der Anweisungsanzahl-Zähler in dem Prozessor zum Zählen der Anzahl von ausgeführten Anweisungen ein Arbeiten unterlässt und ein Wert des Programmzählers (PC) bei einem normalen Betrieb gesichert und gespeichert wird (Schritt 401).
  • Jeder der Prozessoren 101, 102, 201 und 202 liest seinen eigenen Anweisungsanzahl-Zählerwert und den gesicherten Wert des Programmzählers (Schritt 402) und sendet die gelesenen Werte zu anderen Rechenmodulen über die Speicher-Steuereinheiten 105 und 205 und die Zwischensystemkommunikations-Steuereinheit 703 (Schritt 403).
  • Jeder der Prozessoren 101, 102, 201 und 202 liest auch einen Wert des Anweisungsanzahl-Zählers und einen Programmzählerwert des Prozessors des anderen Rechenmoduls, die von dem anderen Rechenmodul über die Zwischensystemkommunikations-Steuereinheit 703 und die Speicher-Steuereinheiten 105 und 205 gesendet sind (Schritt 404). Jeder der Prozessoren vergleicht den Wert seines eigenen Anweisungsanzahl-Zählers mit dem Wert des Anweisungsanzahl-Zählers in dem entsprechenden Prozessor in jedem von allen Rechenmodulen (Schritt 405).
  • Hier führt das Rechenmodul, das einen Prozessor enthält, dessen Anweisungsanzahl-Zähler den größten Wert unter allen Prozessoren anzeigt, während andere Rechenmodule Anweisungen äquivalent zu einer Verzögerung als Ergebnis des Vergleichs ausführen, eine Verarbeitung zum Bringen der Ausführung in eine Warteschlange durch (Schritt 406). Wenn die Anzahlen von ausgeführten Anweisungen in allen Rechenmodulen übereinstimmen, weist das Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts die Synchronisations-Steuereinheit 704 über die Speicher-Steuereinheit 105 oder 205 an, eine Rücksetzanweisung zur Resynchronisationsverarbeitung zu allen Rechenmodulen zu erzeugen (Schritt 407).
  • Andererseits führen alle Rechenmodule, deren Anweisungsanzahl-Zählerwert nicht der Größte ist, die Verzögerungsschritteinstellverarbeitung zum Ausführen von Anweisungen aus, bis dieselbe Anzahl von Anweisungen wie diejenige des Rechenmoduls mit dem Anweisungsanzahl-Zähler ausgeführt ist, der den größten Wert anzeigt (Schritt 408). Jedes der Rechenmodule, bei welchen der Anweisungsanzahl-Zähler des größten Werts nicht existiert, teilt eine Beendigung der Verzögerungsschritteinstellungsverarbeitung zu dem Rechenmodul mit dem größten Wert mit (Schritt 409) und wartet darauf folgend auf eine Rücksetzanweisung für die Resynchronisationsverarbeitung (Schritt 410).
  • 5 zeigt Details der Verzögerungsschritteinstellungsverarbeitung in 4.
  • Bei der oben beschriebenen Verzögerungsschritteinstellverarbeitung (Schritt 408 in 4) werden die Prozessoren auf einen Abbruchstellenbestimmungs-Ausführungsmode eingestellt, der einen Prozessor wieder zu dem Prozessor-Managementmode schaltet, nachdem Anweisungen bis zu einer spezifischen Position in einer bestimmten Anweisungskette ausgeführt sind. Zu dieser Zeit wird als die spezifische Position der Anweisungskette eine Anweisungsposition bestimmt, die durch einen Programmzählerwert angezeigt wird, der von dem Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts empfangen wird (Schritt 501). Darauf folgend werden die Prozessoren zu dem normalen Ausführungsmode geschaltet (Schritt 502).
  • Als Ergebnis beendet der Prozessor nach einem Ausführen der Anweisungen bis zu der spezifischen Position in der bestimmten Anweisungskette, das heißt bis zu derselben Position in der Anweisungskette wie derjenigen im Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts (Schritt 503), die Verzögerungsschritteinstellungsverarbeitung und schaltet wieder zum Prozessor-Managementmode (Schritt 504).
  • 6 ist ein Ablaufdiagramm, das einen dritten Betrieb des fehlertoleranten Computersystems gemäß dem ersten Implementierungsmode erklärt, welcher insbesondere ein weiteres Beispiel einer Verarbeitung nach der Anweisungsanzahl-Zählervergleichsverarbeitung (Schritt 205 in 2 und Schritt 405 in 4) bei der in den 2 und 4 gezeigten Betrieb zeigt.
  • Bei der in 6 gezeigten Verarbeitung wartet das Rechenmodul mit dem größten Wert nach einem Lesen eines Programmausführungszustands bei dem Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts (Schritt 601) auf eine Mitteilung über eine Beendigung einer Verzögerungsschritteinstellungsverarbeitung von anderen Rechenmodulen (Schritt 602).
  • Andererseits lesen nach einem Ausführen der Verzögerungsschritteinstellungsverarbeitung durch irgendeines der oben beschriebenen Verfahren oder ein ähnliches Verfahren (Schritt 701) alle anderen Rechenmodule, deren Anweisungsanzahl-Zählerwert nicht der Größte ist, jeweils ihren Programmausführungszustand (Schritt 702). Jedes der anderen Rechenmodule sendet den Programmausführungszustand zu dem Rechenmodul, dessen Anweisungsanzahl-Zählerwert der Größte ist, zusammen mit der Mitteilung über die Beendigung der Verzögerungsschritteinstellungsverarbeitung (Schritt 703) und wartet darauf folgend auf eine Rücksetzanweisung für die Resynchronisationsverarbeitung (Schritt 704).
  • Das Rechenmodul mit dem Anweisungsanzahl-Zähler, der den größten Wert anzeigt, das die Programmausführungszustände empfangen hat, vergleicht Programmausführungszustände von allen Rechenmodulen (Schritt 603). Das Rechenmodul mit dem Anweisungsanzahl-Zähler, der den größten Wert anzeigt, führt eine Synchronisationsbetrieb-Wiederaufnahmeverarbeitung sofort in einem Fall aus, in welchem die Zustände alle übereinstimmen. Wenn ein Rechenmodul erfasst wird, dessen Zustand darin fehlschlägt, übereinzustimmen, führt das Rechenmodul mit dem Anweisungsanzahl-Zähler, der den größten Wert anzeigt, die Betriebswiederaufnahmeverarbeitung von allen anderen Rechenmodulen (Schritt 605) nach einem Ausführen einer Verarbeitung zum Abtrennen von nur dem in Frage stehenden Rechenmodul aus, um dasselbe für ungültig zu erklären (Schritt 604).
  • Die in 6 gezeigten Verarbeitungsinhalte ermöglichen sogar einem fehlertoleranten Computersystem mit Synchronismus im Gleichschritt unter Annahme eines Prozessors, der bei einer Stufenausführung und einer Abbruchstellenausführung nicht immer zuverlässig ist, die vorliegende Erfindung zu implementieren, ohne fehlerhafte Verarbeitungsergebnisse zu haben.
  • Als Nächstes wird unter Bezugnahme auf 7 ein fehlertolerantes Computersystem gemäß einem zweiten Implementierungsmode der vorliegenden Erfindung beschrieben werden.
  • Unter Bezugnahme auf 7 enthält das fehlertolerante Computersystem gemäß dem vorliegenden Implementierungsmode eine Vielzahl von Rechenmodulen 100, 200 und 300, die jeweils einen Prozessor und einen Speicher haben, und eine Vielzahl von Steuereinheiten 400 und 500 für periphere Vorrichtungen, die Mechanismen 803 und 804 für die jeweilige Verbindung mit einer peripheren Vorrichtung haben. Jedes der Rechenmodule 100, 200 und 300 verarbeitet dieselbe Anweisungskette synchron zueinander und vergleicht ein Verarbeitungsergebnis jedes Rechenmoduls zur Freigabe. Selbst dann, wenn ein Rechenmodul einen Fehler entwickelt, kann die Verarbeitung durch die übrigen Rechenmodule fortgeführt werden.
  • Bei dem fehlertoleranten Computersystem gemäß dem zweiten Implementierungsmode enthält jede der Steuereinheiten 400 und 500 für periphere Vorrichtungen einen Fehlerdetektor 700, einen Busmonitor 701, eine Unterbrechungs-Steuereinheit 702, eine Zwischensystemkommunikations-Steuereinheit 703 und eine Synchronisations-Steuereinheit 704, die in 1 gezeigt sind, und enthält weiterhin eine PCI-Brücke 705 zum Steuern einer Verbindung zwischen jedem Rechenmodul und jeder Steuereinheit in der Rechenmodul für periphere Vorrichtungen und den Verbindungsmechanismen 803 und 804 für periphere Vorrichtungen.
  • Obwohl es in der Figur nicht gezeigt ist, ist die Struktur der Steuereinheit 500 für periphere Vorrichtungen völlig dieselbe wie diejenige der Steuereinheit 400 für periphere Vorrichtungen, und welche Steuereinrichtung in der Steuereinheit 400 für periphere Vorrichtungen oder der Steuereinheit 500 für periphere Vorrichtungen zu verwenden ist, kann durch ein Programm beliebig bestimmt werden, das auf dem Prozessor in dem Rechenmodul läuft, um dadurch selbst dann, wenn die Steuereinheit 400 oder 500 für periphere Vorrichtungen, die auf eine Resynchronisation bezogen ist, einen Fehler entwickelt, zu ermöglichen, eine Verfügbarkeit durch Verwenden der Steuereinheit 400 oder 500 für periphere Vorrichtungen ohne Fehler zu verbessern.
  • Der vorliegende Implementierungsmode erreicht den Effekt der vorliegenden Erfindung durch denselben Betrieb wie denjenigen des oben beschriebenen Implementierungsmodes, der in 1 gezeigt ist, außer dass eine Verbindung zwischen den jeweiligen Rechenmodulen 100, 200 und 300 und den jeweiligen Steuereinheiten 400 und 500 für periphere Vorrichtungen unter Verwendung der PCI-Brücke 705 als repräsentative Verbindungsschnittstelle für periphere Vorrichtungen gebildet ist und dass ein Senden und Empfangen von Daten zu und von der Zwischensystemkommunikations-Steuereinheit 703 und einer Rücksetzverarbeitungsanweisung zu der Synchronisations-Steuereinheit 704 unter Verwendung des PCI-Protokolls ausgeführt werden.
  • Zusätzlich zeigt der vorliegende Implementierungsmode die Struktur, bei welcher drei Rechenmodule vorgesehen sind, und ein detaillierter Betrieb einer Resynchronisationsverarbeitung mit der Struktur ist so, wie es in den 8 und 9 dargestellt ist. 8 zeigt einen Betriebsablauf, der aus dem oben beschriebenen Betrieb in 2 verallgemeinert ist, in einem Fall, in welchem ein fehlertolerantes Computersystem mit Synchronismus im Gleichlauf drei oder mehrere Rechenmodule enthält. Inhalte der Verarbeitung sind dieselben wie diejenigen, die in den 2 und 3 gezeigt sind, außer dass die Anzahl von Rechenmodulen unterschiedlich ist.
  • Spezifischer schaltet bei den in den 8 und 9 gezeigten Ablaufdiagrammen auf ein Empfangen einer Unterbrechung hin jeder Prozessor zum Prozessor-Managementmode zur Resynchronisation, einem Mode, in welchem der Anweisungsanzahl-Zähler zum Zählen der Anzahl von Anweisungen, die im Prozessor ausgeführt sind, ein Arbeiten unterlässt (Schritt 801).
  • Dann liest jeder Prozessor einen Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 802) und sendet den gelesenen Wert des Anweisungsanzahl-Zählers zu anderen Rechenmodulen über die Speicher-Steuereinheiten 105 und 205, die PCI-Brücke 705 und die Zwischensystemkommunikations-Steuereinheit 703 (Schritt 803).
  • Jeder Prozessor liest auch den Wert des Anweisungsanzahl-Zählers des Prozessors in einem anderen Rechenmodul, der von dem anderen in Frage stehenden Rechenmodul gesendet ist, über die Zwischensystemkommunikations-Steuereinheit 703, die PCI-Brücke 705 und die Speicher-Steuereinheiten 105 und 205 (Schritt 804). Jeder Prozessor vergleicht denselben mit dem Wert des Anweisungsanzahl-Zählers des entsprechenden Prozessors in jedem von allen Rechenmodulen (Schritt 805).
  • Hier führt das Rechenmodul, das einen Prozessor enthält, dessen Anweisungsanzahl-Zähler den größten Wert unter allen Zählern anzeigt, während andere Rechenmodule Anweisungen äquivalent zu einer Verzögerung als Ergebnis des Vergleichs der Anweisungsanzahl-Zählerwerte ausführen, eine Verarbeitung zum Bringen der Ausführung in eine Warteschlange durch (Schritt 806). Wenn die Anzahlen von ausgeführten Anweisungen in allen Rechenmodulen 100, 200 und 300 miteinander übereinstimmen, weist das Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts die Synchronisations-Steuereinheit 704 an, eine Rücksetzanweisung zur Resynchronisationsverarbeitung zu allen Rechenmodulen 100, 200 und 300 über die Speicher-Steuereinheit 105 oder 205 und die PCI-Brücke 705 zu erzeugen (Schritt 807).
  • Andererseits führen alle Rechenmodule, deren Anweisungsanzahl-Zählerwert nicht der Größte ist, die Verzögerungsschritteinstellungsverarbeitung zum Ausführen von Anweisungen aus, bis in denselben Anweisungsketten-Ausführungszustand wie demjenigen des Rechenmoduls mit dem Anweisungsanzahl-Zähler, der den größten Wert anzeigt, eingetreten wird (Schritt 808). Jedes der Rechenmodule, bei welchen der Anweisungsanzahl-Zähler des größten Werts nicht existiert, teilt eine Beendigung der Verzögerungsschritteinstellungsverarbeitung zu dem Rechenmodul mit dem Anweisungsanzahl-Zähler mit, der den größten Wert anzeigt (Schritt 809), und wartet darauf folgend auf eine Rücksetzanweisung für die Resynchronisationsverarbeitung (Schritt 810).
  • Auf ein Empfangen der Anweisung hin erzeugt die Synchronisations-Steuereinheit 704 ein Rücksetzsignal zum Wiedergewinnen des Betriebs in Synchronisation gleichzeitig zu allen Rechenmodulen 100, 200 und 300. Zusätzlich gibt die Einheit 704 gleichzeitig der Unterbrechungs-Steuereinheit 702 eine Anweisung, um eine Erzeugung einer Unterbrechung zuzulassen, wenn einem Betrieb eine Synchronisation fehlt, um dadurch vorzubereiten, dass ein normaler Betrieb in Synchronisation wieder aufgenommen wird.
  • 9 zeigt eine detaillierte Funktion der in 8 dargestellten Verzögerungsschritteinstellungsverarbeitung.
  • Bei der Verzögerungsschritteinstellungsverarbeitung (Schritt 808 in 8) werden die Prozessoren auf einen Stufenausführungsmode eingestellt, in welchem die Prozessoren zu dem Prozessor-Managementmode genau nach einem Ausführen von einer Anweisung geschaltet werden (Schritt 901). Darauf folgend werden die Prozessoren zu einem normalen Ausführungsmode geschaltet (Schritt 902).
  • Als Ergebnis schaltet der Prozessor nach einem Ausführen von nur einer Anweisung (Schritt 903) zu dem Prozessor-Managementmode (Schritt 904).
  • Der Prozessor liest den Wert seines eigenen Anweisungsanzahl-Zählers (Schritt 905) und vergleicht den gelesenen Wert mit dem Wert des Anweisungsanzahl-Zählerwerts, der bereits von dem Rechenmodul mit dem Anweisungsanzahl-Zähler empfangen ist, der den größten Wert anzeigt (Schritt 906). Wenn sie darin fehlschlagen, miteinander überein zu stimmen, wiederholt der Prozessor wieder die Verarbeitung des Schrittausführungsmodes (Schritt 901), und wenn sie miteinander übereinstimmen, beendet er die Verzögerungsschritteinstellungsverarbeitung.
  • 10 zeigt eine Struktur eines fehlertoleranten Computersystems gemäß einem dritten Implementierungsmode der vorliegenden Erfindung. Unter Bezugnahme auf 10 ist das fehlertolerante Computersystem gemäß dem vorliegenden Implementierungsmode dasselbe wie dasjenige des in 7 gezeigten zweiten Implementierungsmodes, außer dass ein Senden und ein Empfangen von Information zu und von jedem Rechenmodul durch den Busmonitor 701 und die Unterbrechungs-Steuereinheit 702 auch über die PCI-Brücke 705 ausgeführt wird, und erhält denselben Effekt durch denselben Betrieb, der in den 8 und 9 gezeigt ist.
  • Beim fehlertoleranten Computersystem der vorliegenden Erfindung kann die Funktion jeder Einheit, die die Resynchronisationsverarbeitung ausführt, nicht nur durch Hardware realisiert werden, sondern auch durch Laden eines Resynchronisationsverarbeitungsprogramms 1000, das die Funktion von jeder der oben beschriebenen Einheiten ausführt, in einen Speicher einer Computerverarbeitungsvorrichtung, um die Computerverarbeitungsvorrichtung zu steuern. Das Resynchronisationsverarbeitungsprogramm 1000 ist in einem Aufzeichnungsmedium, wie beispielsweise einer Magnetplatte oder einem Halbleiterspeicher, gespeichert und wird von dem Aufzeichnungsmedium in die Computerverarbeitungsvorrichtung geladen, um einen Betrieb der Computerverarbeitungsvorrichtung zu steuern, um dadurch jede der oben beschriebenen Funktionen zu realisieren.
  • Obwohl die vorliegende Erfindung im Vorangehenden in Bezug auf die bevorzugten Implementierungsmoden beschrieben worden ist, ist die vorliegende Erfindung nicht notwendigerweise auf die oben beschriebenen Implementierungsmoden beschränkt, sondern kann in verschiedenen Formen innerhalb des Schutzumfangs der Ansprüche realisiert werden.
  • Ungeachtet dessen, ob die Anzahl von Rechenmodulen zwei oder drei oder mehrere ist, erreicht die vorliegende Erfindung ganz genau denselben Effekt durch die Struktur und den Betrieb, die vorangehend beschrieben sind.
  • Zusätzlich ist auch der Anzahl von Prozessoren in jedem Rechenmodul keine Beschränkung auferlegt und eine Struktur, bei welcher ein Prozessor vorgesehen ist, und eine Struktur, bei welcher drei oder mehrere Prozessoren vorgesehen sind, funktionieren auf vollständig dieselbe Weise. Weiterhin beeinflusst, obwohl in jedem der oben beschriebenen Implementierungsmoden ein Fall gezeigt ist, in welchem die jeweiligen Prozessoren einen externen Bus gemeinsam nutzen und an demselben Bus angeschlossen sind, weder beispielsweise eine Struktur, bei welcher eine Vielzahl von Prozessoren in der Form einer Sterngruppe mit einer Speicher-Steuereinheit verbunden ist, noch eine Struktur, bei welcher Prozessoren, die ein Rechenmodul bilden, physikalisch aufgeteilt auf einer Vielzahl von Leiterplatten ausgebildet sind, die Effekte der vorliegenden Erfindung.
  • Darüber hinaus kann die vorliegende Erfindung ein Paar aus einem Rechenmodul und jeweiligen Einheiten zur Resynchronisation enthalten, wie beispielsweise einen Busmonitor oder eine Vielzahl von Paaren dieser Komponenten. Zusätzlich können diese Komponenten in einer Steuereinheit für periphere Vorrichtungen vorgesehen sein oder können auf einer bestimmten Leiterplatte oder ähnlichem ausgebildet sein. Alternativ dazu können das Rechenmodul und andere jeweilige Einheiten zur Resynchronisation, wie beispielsweise der Busmonitor, durch eine PCI- oder eine Schnittstelleneinrichtung von einem anderen Standard, wie beispielsweise PCI-X, oder durch eine bestimmte Schnittstelleneinrichtung, die nicht standardisiert ist, verbunden sein, um denselben Effekt wie den oben beschriebenen zu erhalten.
  • Wie es im Vorangehenden beschrieben ist, erreicht die vorliegende Erfindung die folgenden Effekte.
  • Ein erster Effekt ermöglicht, dass ein bestimmtes Rechenmodul in einem fehlertoleranten Computersystem, wenn es aufgrund eines anderen Grundes als eines festen Fehlers aus dem Gleichschrittzustand gelangt, in einer äußerst kurzen Zeitperiode wieder zu dem Gleichschrittzustand wiederhergestellt wird.
  • Der Grund dafür besteht darin, dass bei einer Anfangsstufe einer Erzeugung eines aus dem Gleichschritt gelangen, wenn eine Abweichung bezüglich einer Verarbeitung jedes Rechenmoduls gering ist, in dem eine Unterbrechung zu einem Prozessor erzeugt wird, und nach einem Einstellen einer Verzögerung eines Rechenmoduls, dessen Verarbeitung eine Verzögerung hat, um einen Betrieb in Synchronisation wieder aufzunehmen, ein Synchronisationsbetriebszustand wiederhergestellt werden kann, ohne den gesamten Speicher zu kopieren.
  • Ein zweiter Effekt besteht im Verbessern einer Verfügbarkeit des fehlertoleranten Computersystems. Der Grund dafür besteht darin, dass eine Zeitperiode eines Anhaltens des gesamten Systems durch signifikantes Beschleunigen einer Zeit einer Resynchronisationsverarbeitung, wenn ein aus dem Gleichschritt gelangen erfolgt, drastisch reduziert werden kann.
  • Obwohl die Erfindung in Bezug auf ein beispielhaftes Ausführungsbeispiel davon dargestellt und beschrieben worden ist, sollte es von Fachleuten auf dem Gebiet verstanden werden, dass die vorangehenden und verschiedene andere Änderungen, Weglassungen und Hinzufügungen dabei und daran durchgeführt werden können, ohne vom Schutzumfang der vorliegenden Ansprüche abzuweichen.

Claims (16)

  1. Fehlertolerantes Computersystem mit Synchronismus im Gleichschritt, das eine Vielzahl von Rechenmodulen (100, 200, 300) mit einem Prozessor (101, 102, 201, 202, 301, 302) und einem Speicher (104, 204, 304) enthält, wobei jedes Rechenmodul (100, 200, 300) dieselbe Anweisungskette synchron zueinander verarbeitet, wobei das Computersystem folgendes aufweist: einen Fehlerdetektor (700), der ein Vorhandensein/Nichtvorhandensein eines Fehlers im System überwacht; einen Busmonitor (701), der einen Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul (100, 200, 300) auf den externen Bus überwacht; eine Unterbrechungs-Steuerungseinrichtung (702), um in einem Fall, in welchem der Busmonitor (701) in einem Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul (100, 200, 300) auf den externen Bus einen Mangel an Synchronisation erfasst, wenn der Fehlerdetektor (700) keinen Fehler erfasst, eine Unterbrechung zu erzeugen, um das Erfassungsergebnis jedem Prozessor mitzuteilen; eine Zwischensystemkommunikations-Steuereinrichtung (703), die an jedes Rechenmodul (100, 200, 300) angeschlossen ist, zum Mitteilen eines Zustands einer Anweisungsausführung unter den Prozessoren in jedem Rechenmodul (100, 200, 300), und eine Synchronisations-Steuereinrichtung (704), die an jedes Rechenmodul (100, 200, 300) angeschlossen ist, zum Erzeugen eines Rücksetzsignals zum synchronisierten Wiederaufnehmen eines Betriebs von allen Rechenmodulen (100, 200, 300) nach einem Durchführen einer Verzögerungseinstellung zum Veranlassen, dass ein Zustand einer Anweisungsausführung in jedem Rechenmodul (100, 200, 300) übereinstimmend wird, wobei jedes Rechenmodul so konfiguriert ist, dass jeder von allen Prozessoren einen Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor enthält, der Anweisungsanzahl-Zähler ein Arbeiten unterlässt, wenn die Prozessoren eine Unterbrechung von der Unterbrechungs-Steuereinrichtung (702) empfangen und zur Resynchronisation zu einem Prozessor-Managementmode schalten; jeder Prozessor einen Wert seines eigenen Anweisungsanzahl-Zählers mit einem von jedem entsprechenden Prozessor in anderen Rechenmodulen (100, 200, 300) empfangenen Wert eines Anweisungsanzahl-Zählers vergleicht, das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler nicht enthält, der den größten Wert unter allen Zählern anzeigt, eine Verzögerungseinstellung von Ausführungsanweisungen durchführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, und dann, wenn die Werte übereinstimmen, eine Mitteilung zu dem Rechenmodul (100, 200, 300) sendet, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen (100, 200, 300) wartet, und dann, wenn es alle Mitteilungen empfängt, die Synchronisations-Steuereinrichtung (704) anweist, ein Rücksetzsignal zu erzeugen, um zu veranlassen, dass alle Rechenmodule (100, 200, 300) einen Betrieb synchron zueinander wiederaufnehmen.
  2. Fehlertolerantes Computersystem nach Anspruch 1, wobei bei einer Verzögerungseinstellung, bei welcher das Rechenmodul (100, 200, 300), dessen Anweisungsanzahl-Zählerwert nicht der größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, der Prozessor nach einem Ausführen von einer Anweisung auf einen Schrittausführungsmode zum Schalten zum Prozessor-Managementmode eingestellt wird, und der Prozessor die Verarbeitung des Schrittausführungsmodes wiederholt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
  3. Fehlertolerantes Computersystem nach Anspruch 1, wobei im Prozessor-Managementmode für eine Resynchronisationsverarbeitung jeder von allen Prozessoren, die eine Unterbrechung von der Unterbrechungs-Steuereinrichtung empfingen, einen Programm-Zählerwert sichert und speichert, jeder Prozessor einen Anweisungsanzahl-Zählerwert jedes Prozessors und den gesicherten Programm-Zählerwert liest und die Werte zu allen anderen Rechenmodulen (100, 200, 300) sendet.
  4. Fehlertolerantes Computersystem nach Anspruch 3, wobei bei einer Verzögerungseinstellung, bei welcher das Rechenmodul (100, 200, 300), dessen Anweisungsanzahl-Zählerwert nicht der größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, der Prozessor nach einem Ausführen bis zu einer Anweisung bei einer spezifischen Position in einer bestimmten Anweisungskette auf einen Abbruchstellenbestimmungs-Ausführungsmode zum Schalten zum Prozessor-Managementmode eingestellt wird; als die spezifische Position in der Anweisungskette eine Anweisungsposition bestimmt wird, die durch den Programm-Zählerwert angezeigt wird, die von dem Rechenmodul (100, 200, 300) empfangen wird, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und der Prozessor nach einem Ausführen der Anweisungskette bis zu der spezifischen Position in einer bestimmten Anweisungskette, die dieselbe Position in der Anweisungskette wie diejenige in dem Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts ist, zum Prozessor-Managementmode geschaltet wird.
  5. Fehlertolerantes Computersystem nach Anspruch 1, wobei das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, nach einem Lesen eines Programmausführungszustands auf die Mitteilung von anderen Rechenmodulen (100, 200, 300) wartet; alle anderen Rechenmodule (100, 200, 300), die den Anweisungsanzahl-Zähler nicht enthalten, der den größten Wert anzeigt, nach einem Ausführen der Verzögerungseinstellungsverarbeitung einen Programmausführungszustand lesen und den Programmausführungszustand zusammen mit einer Mitteilung über eine Beendigung der Verzögerungseinstellungsverarbeitung zu dem Rechenmodul (100, 200, 300) senden, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, Programmausführungszustände von allen Rechenmodulen (100, 200, 300) vergleicht, und dann, wenn alle miteinander übereinstimmen, eine Erzeugung des Rücksetzsignals zum Wiederaufnehmen eines Synchronisationsbetriebs anweist, und dann, wenn ein Rechenmodul (100, 200, 300) erfasst wird, dessen Programmausführungszu stand nicht übereinstimmt, nach einem Ausführen einer Verarbeitung eines Abtrennens und eines für ungültig Erklärens des Rechenmoduls (100, 200, 300), dessen Zustand nicht übereinstimmt, die Erzeugung des Rücksetzsignals zum synchronisiertert Wiederaufnehmen eines Betriebs anweist.
  6. Fehlertolerantes Computersystem nach Anspruch 1, wobei eine Vielzahl von Paaren aus dem Fehlerdetektor (700), dem Busmonitor (701), der Unterbrechungs-Steuereinrichtung (702), der Zwischensystemkommunikations-Steuereinrichtung (703) und der Synchronisations-Steuereinrichtung (704) vorgesehen ist.
  7. Resynchronisationsverfahren für ein fehlertolerantes Computersystem mit Synchronismus im Gleichschritt, das eine Vielzahl von Rechenmodulen (100, 200, 300) mit einem Prozessor (101, 102, 201, 202, 301, 302) und einem Speicher (104, 204, 304) enthält, wobei jedes Rechenmodul (100, 200, 300) dieselbe Anweisungskette synchron zueinander verarbeitet, wobei das Verfahren die folgenden Schritte aufweist: Überwachen eines Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem System; Überwachen eines Zustands eines Zugriffs jedes Prozessors in jedem Rechenmodul (100, 200, 300) auf den externen Bus; wenn in einem Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul (100, 200, 300) auf den externen Bus eine Nichtübereinstimmung erfasst wird, wenn kein Fehler erfasst wird, Erzeugen einer Unterbrechung zum Mitteilen des Erfassungsergebnisses zu allen Prozessoren, und nach einem Ausführen der Verzögerungseinstellung zum Veranlassen, dass ein Zustand einer Anweisungsausführung unter den Rechenmodulen (100, 200, 300) übereinstimmt, Erzeugen eines Rücksetzsignals zum Ausführen einer Verarbeitung eines synchronen Wiederaufnehmens eines Betriebs von allen Rechenmodulen (100, 200, 300), wobei jeder von allen Prozessoren, die die Unterbrechung empfangen haben, zur Resynchronisationsverarbeitung zu einem Prozessor-Managementmode schaltet, bei welcher ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor ein Arbeiten unterlässt; wobei jeder Prozessor seinen eigenen gelesenen Anweisungsanzahl-Zählerwert mit einem von jedem Prozessor in anderen Rechenmodulen (100, 200, 300) empfangenen Anweisungsanzahl-Zählerwert vergleicht; wobei das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler nicht enthält, der den größten Wert unter allen Zählern anzeigt, die Verzögerungseinstellung durch Ausführen von Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, und dann, wenn die Werte übereinstimmen, eine Mitteilung zu dem Rechenmodul (100, 200, 300) sendet, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und wobei das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen (100, 200, 300) wartet, und dann, wenn es alle Mitteilungen empfängt, das Rücksetzsignal erzeugt, um zu veranlassen, dass alle Rechenmodule (100, 200, 300) einen Betrieb synchron zueinander wiederaufnehmen.
  8. Resynchronisationsverfahren nach Anspruch 7, wobei bei der Verzögerungseinstellung, bei welcher das Rechenmodul (100, 200, 300), dessen Anweisungsanzahl-Zählerwert nicht der größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, der Prozessor des Rechenmoduls nach einem Ausführen von einer Anweisung auf einen Schrittausführungsmode zum Schalten zum Prozessor-Managementmode eingestellt wird, und der Prozessor die Verarbeitung des Schrittausführungsmodes wiederholt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
  9. Resynchronisationsverfahren nach Anspruch 7, wobei jeder von allen Prozessoren, die die Unterbrechung empfangen haben, im Prozessor-Managementmode zur Resynchronisationsverarbeitung einen Programm-Zählerwert sichert und speichert, jeder Prozessor den Anweisungsanzahl-Zählerwert jedes Prozessor und den gesicherten Programm-Zählerwert liest und die Werte zu allen anderen Rechenmodulen (100, 200, 300) sendet.
  10. Resynchronisationsverfahren nach Anspruch 9, wobei bei einer Verzögerungseinstellung, bei welcher das Rechenmodul (100, 200, 300), dessen Anweisungsanzahl-Zählerwert nicht der größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt; der Prozessor des Rechenmoduls nach einem Ausführen bis zu einer Anweisung bei einer spezifischen Position in einer bestimmten Anweisungskette auf einen Abbruchstellenbestimmungs-Ausführungsmode zum Schalten zum Prozessor-Managementmode eingestellt wird; als die spezifische Position in der Anweisungskette eine Anweisungsposition bestimmt wird, die durch den Programmzählerwert angezeigt wird, der von dem Rechenmodul (100, 200, 300) empfangen wird, das den Anweisungsanzahl-Zähler enthält, der den größten anzeigt, und der Prozessor nach einem Ausführen der Anweisungskette bis zu der spezifischen Position in einer bestimmten Anweisungskette, die dieselbe Position in der Anweisungskette wie diejenige in dem Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts ist, zum Prozessor-Managementmode geschaltet wird.
  11. Resynchronisationsverfahren nach Anspruch 7, wobei das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, nach einem Lesen eines Programmausführungszustands auf die Mitteilung von anderen Rechenmodulen (100, 200, 300) wartet; alle anderen Rechenmodule (100, 200, 300), die den Anweisungsanzahl-Zähler nicht enthalten, der den größten Wert anzeigt, nach einem Ausführen der Verzögerungseinstellungsverarbeitung einen Programmausführungszustand lesen und den Programmausführungszustand zusammen mit einer Mitteilung über einer Beendigung der Verzögerungseinstellungsverarbeitung zu dem Rechenmodul (100, 200, 300) senden, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, Programmausführungszustände von allen Rechenmodulen (100, 200, 300) vergleicht, und dann, wenn alle miteinander übereinstimmen, die Erzeugung des Rücksetzsignals zum synchronen Wiederaufnehmen eines Betriebs anweist, und dann, wenn ein Rechenmodul (100, 200, 300) erfasst wird, dessen Programmausführungszustand nicht übereinstimmt, nach einer Ausführungsverarbeitung eines Abtrennens und ei nes für ungültig Erklärens des Rechenmoduls (100, 200, 300), dessen Programmausführungszustand nicht übereinstimmt, die Erzeugung des Rücksetzsignals zum synchronen Wiederaufnehmen eines Betriebs anweist.
  12. Resynchronisationsprogramm zum Ausführen einer Resynchronisationsverarbeitung eines fehlertoleranten Computersystems mit Synchronismus im Gleichschritt, das eine Vielzahl von Rechenmodulen (100, 200, 300) mit einem Prozessor (101, 102, 201, 202, 301, 302) und einem Speicher (104, 204, 304) enthält, wobei jedes Rechenmodul (100, 200, 300) dieselbe Anweisungskette in Taktsynchronisation zueinander verarbeitet, wobei das Programm die folgenden Funktionen aufweist: Überwachen eines Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem System; Überwachen eines Zustands eines Zugriffs jedes Prozessors in jedem Rechenmodul (100, 200, 300) auf den externen Bus; wenn in einem Zustand eines Zugriffs jedes Prozessors in jedem Rechenmodul (100, 200, 300) auf den externen Bus eine Nichtübereinstimmung erfasst wird, wenn kein Fehler bei der Fehlerüberwachung erfasst wird, Erzeugen einer Unterbrechung zum Mitteilen des Erfassungsergebnisses zu jedem Prozessor; und nach einem Ausführen der Verzögerungseinstellung zum Veranlassen, das ein Zustand einer Anweisungsausführung unter den Rechenmodulen (100, 200, 300) übereinstimmt, Erzeugen eines Rücksetzsignals zum synchronen Wiederaufnehmen eines Betriebs von allen Rechenmodulen (100, 200, 300), und weiterhin folgendes aufweist: die Funktion, dass jeder von allen Prozessoren, die die Unterbrechung empfangen haben, zur Resynchronisationsverarbeitung zu einem Prozessor-Managementmode schaltet, bei welcher ein Anweisungsanzahl-Zähler zum Zählen der Anzahl von ausgeführten Anweisungen im Prozessor ein Arbeiten unterlässt; die Funktion, dass jeder Prozessor seinen eigenen gelesenen Anweisungsanzahl-Zählerwert mit einem von jedem Prozessor in anderen Rechenmodulen (100, 200, 300) empfangenen Anweisungsanzahl-Zählerwert vergleicht; die Funktion, dass das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler nicht enthält, der den größten Wert unter allen Zählern anzeigt, die Verzögerungseinstellung zum Ausführen von Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, und dann, wenn die Werte übereinstimmen, eine Mitteilung zu dem Rechenmodul (100, 200, 300) sendet, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und die Funktion, dass das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, auf ein Empfangen einer Mitteilung von allen anderen Rechenmodulen (100, 200, 300) wartet, und dann, wenn er alle Mitteilungen empfängt, die Erzeugung des Rücksetzsignals zum Veranlassen, dass alle Rechenmodule (100, 200, 300) einen Betrieb in synchron wieder aufnehmen, anweist.
  13. Resynchronisationsprogramm nach Anspruch 12, das folgendes aufweist: bei der Verzögerungseinstellung, bei welcher das Rechenmodul (100, 200, 300), dessen Anweisungsanzahl-Zählerwert nicht der größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, die Funktion zum Einstellen des Prozessors auf einen Schrittausführungsmode zum Schalten zum Prozessor-Managementmode nach einem Ausführen von einer Anweisung, und die Funktion, dass der Prozessor die Verarbeitung des Schrittausführungsmode wiederholt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt.
  14. Resynchronisationsprogramm nach Anspruch 12, das folgendes aufweist: im Prozessor-Managementmode zur Resynchronisationsverarbeitung die Funktion, dass jeder von allen Prozessoren, die die Unterbrechung empfangen haben, einen Programm-Zählenrvert sichert und speichert, die Funktion, dass jeder Prozessor den Anweisungsanzahl-Zählerwert jedes Prozessors und den gesicherten Programm-Zählerwert liest und die Werte zu allen anderen Rechenmodulen (100, 200, 300) sendet.
  15. Resynchronisationsprogramm nach Anspruch 14, das folgendes aufweist: bei der Verzögerungseinstellung, bei welcher das Rechenmodul (100, 200, 300), dessen Anweisungsanzahl-Zählerwert nicht der größte ist, Anweisungen ausführt, bis der Anweisungsanzahl-Zählerwert mit dem größten Anweisungsanzahl-Zählerwert übereinstimmt, die Funktion zum Einstellen eines Prozessors des Rechenmoduls auf einen Abbruchstellenbestimmungs-Ausführungsmode zum Schalten zum Prozessor-Managementmode nach einem Ausführen des Prozessors bis zu einer Anweisung bei einer spezifischen Position in einer bestimmten Anweisungskette, die Funktion, dass als die spezifische Position in der Anweisungskette eine Anweisungsposition bestimmt wird, die durch den Programm-Zählerwert angezeigt wird, der von dem Rechenmodul (100, 200, 300) empfangen wird, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und die Funktion zum Schalten des Prozessors zum Prozessor-Managementmode, nachdem der Prozessor die Anweisungskette bis zu der spezifischen Position in einer bestimmten Anweisungskette ausführt, die dieselbe Position in der Anweisungskette wie diejenige in dem Rechenmodul mit dem Anweisungsanzahl-Zähler des größten Werts ist.
  16. Resynchronisationsprogramm nach Anspruch 12, das folgendes aufweist: die Funktion, dass das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, nach einem Lesen eines Programmausführungszustands auf die Mitteilung von anderen Rechenmodulen (100, 200, 300) wartet, die Funktion, dass nach einem Ausführen der Verzögerungseinstellungsverarbeitung alle anderen Rechenmodule (100, 200, 300), die den Anweisungsanzahl-Zähler nicht enthalten, der den größten Wert anzeigt, einen Programmausführungszustand lesen und den Programmausführungszustand zusammen mit einer Mitteilung über eine Beendigung der Verzögerungseinstellungsverarbeitung zu dem Rechenmodul (100, 200, 300) senden, das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, und die Funktion, dass das Rechenmodul (100, 200, 300), das den Anweisungsanzahl-Zähler enthält, der den größten Wert anzeigt, Programmausführungszustände von allen Rechenmodulen (100, 200, 300) vergleicht, und dann, wenn alle miteinander übereinstimmen, die Erzeugung des Rücksetzsignals zum synchronen Wiederaufnehmen eines Betriebs anweist, und dann, wenn ein Rechenmodul (100, 200, 300) erfasst wird, dessen Ausführungszustand nicht übereinstimmt, nach einer Ausführungsverarbeitung eines Abtrennens und eines für ungültig Erklärens des Rechenmoduls (100, 200, 300), dessen Programmausführungszustand nicht übereinstimmt, die Erzeugung des Rücksetzsignals zum synchronen Wiederaufnehmen eines Betriebs anweist.
DE2003602184 2002-07-12 2003-07-10 Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm Expired - Fee Related DE60302184T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002204167A JP2004046599A (ja) 2002-07-12 2002-07-12 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JP2002204167 2002-07-12

Publications (2)

Publication Number Publication Date
DE60302184D1 DE60302184D1 (de) 2005-12-15
DE60302184T2 true DE60302184T2 (de) 2006-08-03

Family

ID=38834973

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003602184 Expired - Fee Related DE60302184T2 (de) 2002-07-12 2003-07-10 Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm

Country Status (9)

Country Link
US (1) US7107484B2 (de)
EP (1) EP1380953B1 (de)
JP (1) JP2004046599A (de)
KR (1) KR100566338B1 (de)
CN (1) CN1521625A (de)
AU (1) AU2003208129A1 (de)
DE (1) DE60302184T2 (de)
ES (1) ES2248686T3 (de)
TW (1) TWI229791B (de)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155721B2 (en) * 2002-06-28 2006-12-26 Hewlett-Packard Development Company, L.P. Method and apparatus for communicating information between lock stepped processors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
DE102004032405A1 (de) * 2004-07-03 2006-02-09 Diehl Bgt Defence Gmbh & Co. Kg Weltraum-taugliche Rechnerarchitektur
US7669027B2 (en) 2004-08-19 2010-02-23 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
US7624302B2 (en) * 2004-10-25 2009-11-24 Hewlett-Packard Development Company, L.P. System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
US7366948B2 (en) * 2004-10-25 2008-04-29 Hewlett-Packard Development Company, L.P. System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
US7356733B2 (en) * 2004-10-25 2008-04-08 Hewlett-Packard Development Company, L.P. System and method for system firmware causing an operating system to idle a processor
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
ATE420403T1 (de) * 2004-10-25 2009-01-15 Bosch Gmbh Robert Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten
US7516359B2 (en) * 2004-10-25 2009-04-07 Hewlett-Packard Development Company, L.P. System and method for using information relating to a detected loss of lockstep for determining a responsive action
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
US20060107116A1 (en) * 2004-10-25 2006-05-18 Michaelis Scott L System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected
US7627781B2 (en) * 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
US7308566B2 (en) * 2004-10-25 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for configuring lockstep mode of a processor module
JP4182486B2 (ja) * 2004-12-20 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータ・リセット方法及びそのシステム
JP4117684B2 (ja) * 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
US8826288B2 (en) * 2005-04-19 2014-09-02 Hewlett-Packard Development Company, L.P. Computing with both lock-step and free-step processor modes
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
US7549082B2 (en) * 2005-04-28 2009-06-16 Hewlett-Packard Development Company, L.P. Method and system of bringing processors to the same computational point
US8103861B2 (en) * 2005-04-28 2012-01-24 Hewlett-Packard Development Company, L.P. Method and system for presenting an interrupt request to processors executing in lock step
US7426614B2 (en) * 2005-04-28 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system of executing duplicate copies of a program in lock step
US7730350B2 (en) * 2005-04-28 2010-06-01 Hewlett-Packard Development Company, L.P. Method and system of determining the execution point of programs executed in lock step
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
CA2614330A1 (en) * 2005-07-05 2007-01-11 Viasat, Inc. Synchronized high-assurance circuits
US7802075B2 (en) * 2005-07-05 2010-09-21 Viasat, Inc. Synchronized high-assurance circuits
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7891012B1 (en) * 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
JP4822000B2 (ja) * 2006-12-12 2011-11-24 日本電気株式会社 フォールトトレラントコンピュータ
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.
WO2008120352A1 (ja) 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法
US7797575B2 (en) * 2007-04-04 2010-09-14 International Business Machines Corporation Triple voting cell processors for single event upset protection
US8296738B1 (en) 2007-08-13 2012-10-23 Nvidia Corporation Methods and systems for in-place shader debugging and performance tuning
US9035957B1 (en) 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US8004962B2 (en) * 2007-12-24 2011-08-23 At&T Intellectual Property I, L.P. Method and system of addressing a problem associated with a network including a video access ready device
JP5206009B2 (ja) * 2008-02-18 2013-06-12 日本電気株式会社 フォルトトレラントコンピュータ、同期制御方法、及びプログラム
JP5181762B2 (ja) * 2008-03-25 2013-04-10 富士通株式会社 分散処理を実行する演算装置とサーバおよび分散処理方法
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
JP5147586B2 (ja) * 2008-07-30 2013-02-20 株式会社日立製作所 ストレージ装置及びその制御方法
JP5347414B2 (ja) * 2008-10-03 2013-11-20 富士通株式会社 同期制御装置,情報処理装置及び同期管理方法
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
DE102009000045A1 (de) * 2009-01-07 2010-07-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Steuergerätes
JP5604799B2 (ja) * 2009-03-06 2014-10-15 日本電気株式会社 フォールトトレラントコンピュータ
WO2010103562A1 (ja) * 2009-03-09 2010-09-16 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
CN101859330B (zh) * 2009-04-09 2012-11-21 辉达公司 验证集成电路效能模型的方法
US7979746B2 (en) * 2009-04-27 2011-07-12 Honeywell International Inc. Dual-dual lockstep processor assemblies and modules
JP4911372B2 (ja) * 2009-10-06 2012-04-04 日本電気株式会社 Cpu再リセットを伴うcpu再初期化時におけるタイムアウト防止方法、その装置及びそのプログラム
JP2011090553A (ja) * 2009-10-23 2011-05-06 Nec System Technologies Ltd 情報処理装置、同期制御方法およびプログラム
JP5174784B2 (ja) * 2009-11-06 2013-04-03 株式会社日立製作所 処理装置、処理制御システム、およびその制御方法
US8392750B2 (en) * 2010-02-16 2013-03-05 Hewlett-Packard Development Company, L.P. Method and apparatus for crash recovery and resynchronization
CN102822807B (zh) 2010-03-23 2015-09-02 大陆-特韦斯贸易合伙股份公司及两合公司 控制计算机系统及其控制方法和使用
EP2550598A1 (de) 2010-03-23 2013-01-30 Continental Teves AG & Co. oHG Redundante zwei-prozessor-steuerung und steuerungsverfahren
US8499193B2 (en) * 2010-07-30 2013-07-30 Honeywell International Inc. Integrated dissimilar high integrity processing
CN102231125B (zh) * 2011-05-16 2013-02-27 铁道部运输局 临时限速服务器的安全通信机平台
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
JP6098778B2 (ja) * 2012-03-29 2017-03-22 日本電気株式会社 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
JP6069951B2 (ja) * 2012-08-23 2017-02-01 日本電気株式会社 フォールトトレラントコンピュータシステム、フォールトトレラントコンピュータシステムの起動方法およびフォールトトレラントコンピュータシステムの起動プログラム
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9342358B2 (en) * 2012-09-14 2016-05-17 General Electric Company System and method for synchronizing processor instruction execution
JP5700009B2 (ja) 2012-09-18 2015-04-15 横河電機株式会社 フォールトトレラントシステム
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
JP6337676B2 (ja) 2014-07-29 2018-06-06 富士通株式会社 情報処理システム及び方法
CN104484299B (zh) * 2014-12-05 2017-12-22 中国航空工业集团公司第六三一研究所 一种松耦合的Lockstep处理器系统
WO2016132432A1 (ja) * 2015-02-16 2016-08-25 三菱電機株式会社 プロセッサ及びマイクロコンピュータ
TWI571712B (zh) * 2015-10-29 2017-02-21 行政院原子能委員會核能研究所 多重容錯控制系統及其同步方法
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置
FR3108993A1 (fr) * 2020-04-07 2021-10-08 Airbus Operations Procédé et système de synchronisation d’unités de calcul d’un aéronef.
CN112291029B (zh) * 2020-11-02 2024-05-28 温州大学 一种系统同步方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3235762A1 (de) 1982-09-28 1984-03-29 Fried. Krupp Gmbh, 4300 Essen Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen
US5020024A (en) 1987-01-16 1991-05-28 Stratus Computer, Inc. Method and apparatus for detecting selected absence of digital logic synchronism
AU616213B2 (en) 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
JPH04247531A (ja) 1991-02-04 1992-09-03 Fujitsu Ltd 障害検出方式
DE4104114C2 (de) 1991-02-11 2000-06-08 Siemens Ag Redundantes Datenverarbeitungssystem
DE69435090T2 (de) 1993-12-01 2009-06-10 Marathon Technologies Corp., Stow Rechnersystem mit Steuereinheiten und Rechnerelementen
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
JPH10326199A (ja) 1997-05-27 1998-12-08 Yaskawa Electric Corp デュアルシステムにおける割込同期装置
US5896523A (en) 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
US6289022B1 (en) * 1997-10-21 2001-09-11 The Foxboro Company Methods and systems for fault-tolerant data transmission
EP1029267B1 (de) * 1997-11-14 2002-03-27 Marathon Technologies Corporation Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen
US6256753B1 (en) * 1998-06-30 2001-07-03 Sun Microsystems, Inc. Bus error handling in a computer system
US6980617B1 (en) * 2000-11-15 2005-12-27 Advantest Corporation Reception data synchronizing apparatus and method, and recording medium with recorded reception data synchronizing program
US6779128B1 (en) * 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
IES20010397A2 (en) * 2000-07-06 2002-02-06 Richmount Computers Ltd Performance monitoring in a storage enclosure
JP2002049501A (ja) 2000-08-04 2002-02-15 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
US6931568B2 (en) * 2002-03-29 2005-08-16 International Business Machines Corporation Fail-over control in a computer system having redundant service processors
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
JP2004046455A (ja) * 2002-07-10 2004-02-12 Nec Corp 情報処理装置

Also Published As

Publication number Publication date
DE60302184D1 (de) 2005-12-15
TW200401186A (en) 2004-01-16
KR100566338B1 (ko) 2006-03-31
JP2004046599A (ja) 2004-02-12
EP1380953A1 (de) 2004-01-14
US20040153857A1 (en) 2004-08-05
TWI229791B (en) 2005-03-21
ES2248686T3 (es) 2006-03-16
KR20040007338A (ko) 2004-01-24
US7107484B2 (en) 2006-09-12
AU2003208129A1 (en) 2004-01-29
CN1521625A (zh) 2004-08-18
EP1380953B1 (de) 2005-11-09

Similar Documents

Publication Publication Date Title
DE60302184T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm
DE60301702T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben
DE3751600T2 (de) Dreifachredundantes fehlererkennungssystem und entsprechendes anwendungsverfahren.
DE3686901T2 (de) Auf hohem systemniveau selbstpruefendes intelligentes e/a-steuergeraet.
DE602005003490T2 (de) Verteiltes System mit Quorumredundanz und Verfahren dafür
DE69027491T2 (de) Verfahren zur Softwarefehlerbehandlung
DE69435090T2 (de) Rechnersystem mit Steuereinheiten und Rechnerelementen
DE69126498T2 (de) Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems
DE60112462T2 (de) Wiederherstellung von dateisystemdaten in dateiservern mit gespiegelten dateisystemvolumen
DE3880132T2 (de) Verfahren und geraet zur digitalen logischen synchronismusueberwachung.
DE69911026T2 (de) Synchronisation von prozessoren in einem fehlertoleranten multi-prozessor-system
DE3486022T2 (de) System zur verteilten verarbeitung mit fehlerdiagnose.
DE68924119T2 (de) Verfahren und Vorrichtung zum Wiederanlauf nach einem Fehler in einem digitalen Rechnersystem.
DE3486257T2 (de) Synchrones dezentralisiertes Verarbeitungssystem.
DE69019441T2 (de) Line Computer.
DE3328405C2 (de)
DE69432726T2 (de) Verfahren und System zur seriellen Datenübertragung
EP0543821B1 (de) Einrichtung zur funktionsüberwachung externer synchronisations-baugruppen in einem mehrrechnersystem
DE3727850A1 (de) Fehler-pruefsystem
DE102005014458A1 (de) Verfahren und System zum Austauschen von Informationen zwischen Prozessoren
DE68922440T2 (de) Gerät und Verfahren zur gleichzeitigen Einreichung von Fehlerunterbrechung und Fehlerdaten zu einem Unterstützungsprozessor.
WO2011117155A1 (de) Redundante zwei-prozessor-steuerung und steuerungsverfahren
DE1574598C3 (de) Steuereinrichtung für Fernmelde-, insbesondere Fernsprechvermittlungsanlagen
DE60303468T2 (de) Fehlertolerante Vorrichtung zur Informationsverarbeitung
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung

Legal Events

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