DE60301702T2 - Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben - Google Patents

Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben Download PDF

Info

Publication number
DE60301702T2
DE60301702T2 DE60301702T DE60301702T DE60301702T2 DE 60301702 T2 DE60301702 T2 DE 60301702T2 DE 60301702 T DE60301702 T DE 60301702T DE 60301702 T DE60301702 T DE 60301702T DE 60301702 T2 DE60301702 T2 DE 60301702T2
Authority
DE
Germany
Prior art keywords
processor
modules
fault
error
access
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 - Lifetime
Application number
DE60301702T
Other languages
English (en)
Other versions
DE60301702D1 (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
Application granted granted Critical
Publication of DE60301702D1 publication Critical patent/DE60301702D1/de
Publication of DE60301702T2 publication Critical patent/DE60301702T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • 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
    • 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/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/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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein fehlertolerantes Computersystem mit Schrittverriegelungssynchronität, das die gleiche Befehlsfolge durch mehrere Rechenmodule taktsynchron zueinander auf vollständig gleiche Weise verarbeitet. Insbesondere bezieht sie sich auf ein fehlertolerantes Computersystem und auf ein schnelles Verfahren zur Neusynchronisation der Steuerung, die eine Beschleunigung einer Neusynchronisationsverarbeitung realisieren, wenn zwischen Rechenmodulen ein Synchronisationsfehler auftritt (eine Schrittverriegelung aufhört).
  • 2. Beschreibung des verwandten Gebiets
  • Wenn bei einem herkömmlichen fehlertoleranten Computersystem mit Schrittverriegelungssynchronität unter mehreren Rechenmodulen, die gleichzeitig die gleiche Befehlsfolge ausführen, erfasst wird, dass ein Rechenmodul wegen eines Fehlers oder eines anderen externen oder internen Faktors eine andere Ausgabe als andere Rechenmodule hat, werden Gegenmaßnahmen wie die Folgenden ergriffen. Im Folgenden wird ein Rechenmodul, bei dem erfasst wird, dass es nicht synchron mit anderen Rechenmodulen arbeitet, als ein Rechenmodul in einem Schritthalteverlustzustand bezeichnet.
  • Genauer wird eine Maßnahme ergriffen, dass ein Rechenmodul, dessen Schrittverriegelung aus einem Operationszustand aufhört, einmal abgetrennt und das Rechenmodul wie es gemäß einem Faktor, der den Schritthalteverlust verursacht hat, erforderlich ist, ersetzt wird oder, wenn kein Ersatz erforderlich ist, gemäß der Notwendigkeit, das Rechenmodul in den Operationszustand zu integrieren, eine Neuinitialisierungsverarbeitung oder dergleichen durchgeführt wird.
  • Bei einem herkömmlichen fehlertoleranten Computersystem mit Schrittverriegelungssynchronität werden zum Zeitpunkt dieser Neuintegration in den Operationszustand alle Speicherdaten, die durch die Rechenmodule in dem Operationszustand gehalten werden, zum Zeitpunkt der Neuintegration des Rechenmoduls in einen Speicher kopiert, der durch das Rechenmodul gehalten wird, das neu integriert werden soll, damit sich unabhängig davon, ob ein Rechenmodul in den Schritthalteverlustzustand ersetzt worden ist oder nicht, das Rechenmodul mit anderen Rechenmodulen, die die Operation fortsetzen, synchronisiert, um wieder die gleiche Verarbeitung auszuführen.
  • In einem herkömmlichen fehlertoleranten Computersystem mit Schrittverriegelungssynchronität werden nach der Ausführung des Ersatzes eines Rechenmoduls in dem Schritthalteverlustzustand und der Neuinitialisierungsverarbeitung gemäß einem Teil, das einen Schritthalteverlust und dergleichen verursacht hat, die Rechenmodule in dem Operationszustand für eine lange Zeitdauer angehalten, wenn das besagte Rechenmoduls erneut in den Operationszustand integriert wird.
  • Genauer hat das herkömmliche fehlertolerante Computersystem mit Schrittverriegelungssynchronität ein Problem, dass die Operation des gesamten fehlertoleranten Computersystems während einer langen Zeitdauer (im Allgemeinen 3 bis 5 Sekunden oder in der Größenordnung von Minuten) angehalten wird, während ein Rechenmodul in dem Schritthalteverlustzustand einer Neuintegrationsverarbeitung ausgesetzt wird.
  • Der Grund dafür ist, dass alle Speicherinhalte die gesamte Zeit aus den Rechenmodulen, die mit der Operation fortfahren, in das neu zu integrierende Rechenmodul kopiert werden, um ein Rechenmodul in dem Schritthalteverlustzustand in den Operationszustand zu integrieren.
  • Wenn die Operation eines normalen Rechenmoduls während der Kopierverarbeitung fortgesetzt wird, besteht eine Möglichkeit, dass Speicherinhalte des normalen Rechenmoduls während der Kopierverarbeitung ebenfalls geändert werden, so dass das Kopieren nicht richtig ausgeführt werden kann. Um diese Situation zu vermeiden, wird ein Rechenmodul in dem Operationszustand vorübergehend angehalten, um ein Aktualisieren seines Speicherinhalts zu verhindern.
  • Da eine Speicherkapazität in einem Rechenmodul heute auf mehrere Gigabytes erreicht, erfordert das Kopieren des gesamten Speicherbereichs eine lange Zeitdauer.
  • In einem fehlertoleranten Computersystem mit Schrittverriegelungssynchronität tritt ein Schritthalteverlustzustand unter Rechenmodulen aus verschiedenen Gründen auf.
  • Der erste Fall ist ein fester Fehler, der in einem Rechenmodul auftritt. In diesem Fall sollte ein Rechenmodul mit einem Fehler ersetzt werden, wobei dann, wenn das zu ersetzende Rechenmodul in ein Betriebssystem integriert wird, alle Daten in einem Speicher eines Rechenmoduls in den Operationszustand kopiert werden müssen.
  • In einem fehlertoleranten Computersystem mit Schrittverriegelungssynchronität kann ein Schritthalteverlustzustand auftreten, da außer dem oben beschriebenen festen Fehler Rechenmodule wegen einer Differenz der Herstellung jeder Einheit in einem Rechenmodul mit verschiedenem Zeitablauf arbeiten, obgleich ihre Operation normal ist, oder wegen eines automatisch korrigierbaren aussetzenden Fehlers des Speichers, der durch Effekte von α-Strahlen oder dergleichen verursacht wird.
  • Da in diesen Fällen kein fester Fehler in einem Rechenmodul selbst auftritt, benötigt das Modul grundsätzlich keinen Ersatz, wobei durch Neusynchronisieren seiner Verarbeitung mit der der anderen Rechenmodule in der Operation zur Integration des besagten Rechenmoduls das gesamte fehlertolerante Computersystem in einen normalen Operationszustand wiedergewonnen werden kann.
  • Im EP-Patent 1 029 267 ist ein Verfahren zum Aufrechterhalten einer synchronen Ausführung in fehlerstabilen/fehlertoleranten Computersystemen offenbart. Ein fehlertolerantes Computersystem enthält wenigstens zwei Rechenelemente, die mit wenigstens mit einer Steuereinheit verbunden sind. Die Rechenelemente arbeiten in einer ersten und in einer zweiten Betriebsart. In der ersten Betriebsart führen die Rechenelemente jeweils einen ersten Befehlsstrom in einer emulierten Taktschrittverriegelung aus. In der zweiten Betriebsart führen die Rechenelemente einen zweiten Befehlsstrom in einer Befehlsschrittverriegelung aus. Die Befehlsschrittverriegelungsoperationen erfordern, dass die Rechenelemente die gleiche Befehlsfolge in der gleichen Reihenfolge ausführen, erfordern aber nicht, dass die Rechenelemente die Befehle in demselben Taktzyklus wie in der ersten Betriebsart ausführen.
  • Das US-Patent 5.020.024 offenbart ein Verfahren und eine Vorrichtung zum Erfassen einer ausgewählten Abwesenheit der Synchronität einer digitalen Logik. Die digitale Logikausrüstung, in der zwei Logikelemente mit einer Zeitablaufsteue rung mit einem Taktelement mit ausgewählter Synchronität arbeiten, enthält ein Fehlererfassungselement, das die Abwesenheit der ausgewählten Synchronität zwischen den zwei Logikelementen selbst dann erfasst, wenn jedes eine ansonsten richtige Logikoperation liefert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung ist durch die Ansprüche definiert.
  • Eine Aufgabe der vorliegenden Erfindung ist die Schaffung eines fehlertoleranten Computersystems, eines Verfahrens zur Neusynchronisation davon und eines Programms zur Neusynchronisation davon, die ermöglichen, dass ein Rechenmodul, dessen Schrittverriegelung wegen anderer Ursachen als einem festen Fehler aufhört, mit einer höheren Geschwindigkeit als durch ein herkömmliches System neu in den Operationszustand integriert wird, wodurch die Zeit des vorübergehenden Halts des Systembetriebs, der durch die Integrationsverarbeitung verursacht wird, drastisch verringert wird.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist die Schaffung eines fehlertoleranten Computersystems, eines Verfahrens zur Neusynchronisation davon und eines Programms zur Neusynchronisation davon, die durch die Verringerung der Zeit für die oben beschriebene Neuintegrationsverarbeitung eine Verbesserung der Verfügbarkeit des Systems realisieren.
  • Gemäß dem ersten Aspekt der Erfindung wird ein fehlertolerantes Computersystem mit Schrittverriegelungssynchronität, mit mehreren Rechenmodulen, die einen Prozessor und einen Speicher umfassen, wobei jedes Rechenmodul die gleiche Befehlsfolge synchron mit den jeweils anderen Rechenmodulen verarbeitet, geschaffen, wobei dann,
    wenn in einem Zustand des Zugriffs auf einen externen Bus zwischen den jeweiligen Prozessoren in jedem Rechenmodul eine Nichtübereinstimmung erfasst wird, die Synchronisation zwischen jedem Rechenmodul wiederhergestellt wird, indem der Zeitablauf einer Antwort auf einen Zugriff, den jeder Prozessor ausführt, als ein Synchronisationssteuerungsbefehl durch eine Unterbrechung eingestellt wird, falls in dem System, das jedes Rechenmodul enthält, kein Fehler erfasst wird.
  • Ferner umfasst das fehlertolerante Computersystem einen Fehlerdetektor, der das Vorhandensein/Nichtvorhandensein eines Fehlers in dem Gesamtsystem überwacht;
    einen Busmonitor, der einen Zugriff des Prozessors in jedem Rechenmodul auf den externen Bus überwacht und dann, wenn er eine Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule erfasst, an jeden Prozessor eine Unterbrechung meldet, falls durch den Fehlerdetektor kein Fehler erfasst wird, und eine Synchronisationssteuereinheit, die jedes Rechenmodul neu synchronisiert, indem sie den Zeitablauf einer Antwort auf einen Zugriff von jedem Prozessor, der die Unterbrechung hervorgerufen hat, einstellt.
  • Wenn der Busmonitor eine Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule erfasst, unterbricht er jeden Prozessor mit einem vorgegebenen Task, der ein Task des Ausführens eines Zugriffs auf ein vorgegebenes Betriebsmittel in der Synchronisationsteuereinheit ist, um die Rechenmodule neu zu synchronisieren, falls durch den Fehlerdetektor kein Fehler erfasst wird, wobei die Synchronisationssteuereinheit eine Antwort gleichzeitig an alle Rechenmodule sendet, wenn sie Zugriffe auf das Betriebsmittel von allen Prozessoren empfängt.
  • In einer weiteren bevorzugten Konstruktion werden mehrere Paare des Busmonitors, des Fehlerdetektors und der Synchronisationssteuereinheit geschaffen.
  • In einer weiteren bevorzugten Konstruktion sind der Busmonitor, der Fehlerdetektor und die Synchronisationssteuereinheit in einer Peripheriegerät-Steuereinheit vorgesehen, die ein Peripheriegerät steuert und mit dem externen Bus in dem Rechenmodul über eine PCI-Brücke verbunden ist.
  • Gemäß dem zweiten Aspekt der Erfindung wird ein Verfahren zur Neusynchronisation in einem fehlertoleranten Computersystem mit Schrittverriegelungssynchronität geschaffen, wobei das System mehrere Rechenmodule umfasst, die einen Prozessor und einen Speicher umfassen, wobei jedes Rechenmodul die gleiche Befehlsfolge synchron mit den jeweils anderen Rechenmodulen verarbeitet, wobei das Verfahren die folgenden Schritte umfasst:
    Erzeugen einer Unterbrechung an alle Prozessoren und Veranlassen jedes Prozessors, einen Synchronisationssteuerbefehl auszuführen, um den Zeitablauf einer Antwort auf einen Zugriff jedes Prozessors einzustellen, um dadurch jedes Rechenmodul dazu zu veranlassen, seinen Betrieb synchron wieder aufzuneh men, wenn in einem Zugriffszustand auf einen externen Bus eine Nichtübereinstimmung zwischen den jeweiligen Prozessoren in jedem Rechenmodul erfasst wird, falls kein Fehler in dem System, das jedes Rechenmodul enthält, erfasst wird.
  • Ferner umfasst das Verfahren zur Neusynchronisation die folgenden Schritte:
    Erfassen des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem Gesamtsystem, das jedes Rechenmodul umfasst, Überwachen eines Zugriffs des Prozessors in jedem Rechenmodul auf einen externen Bus,
    Melden einer Unterbrechung an jeden Prozessor, wenn eine Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule erfasst wird, und Veranlassen jedes Prozessors, einen Taktsynchronisations-Steuerbefehl auszuführen, um den Zeitverlauf einer Antwort auf einen Zugriff von jedem Prozessor einzustellen, um dadurch jedes Rechenmodul dazu zu veranlassen, seine Operation synchron wieder aufzunehmen, falls in dem System kein Fehler erfasst wird.
  • Ferner umfasst das Verfahren zur Neusynchronisation die folgenden Schritte:
    beim Erfassen einer Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule, Unterbrechen jedes Prozessors mit einem vorgegebenen Task zur Neusynchronisation der jeweiligen Rechenmodule, der ein Task zum Ausführen eines Zugriffs auf ein vorgegebenes Betriebsmittel ist, falls kein Fehler in dem System erfasst wird;
    Einreihen des Zugriffs auf das Betriebsmittel von jedem Prozessor in eine Warteschlange und Antworten auf die Zugriffe von allen Rechenmodulen gleichzeitig, wenn alle Zugriffe von den Prozessoren empfangen werden.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Programm zur Neusynchronisation zum Ausführen einer Neusynchronisationsverarbeitung eines fehlertoleranten Computersystem mit Schrittverriegelungssynchronität geschaffen, wobei das System mehrere Rechenmodule umfasst, die einen Prozessor und einen Speicher umfassen, wobei jedes Rechenmodul die gleiche Befehlsfolge synchron mit den jeweils anderen Rechenmodulen verarbeitet, wobei das Verfahren die folgenden Funktionen umfasst:
    Erzeugen einer Unterbrechung an alle Prozessoren und Veranlassen jedes Prozessors, einen Taktsynchronisationssteuerbefehl auszuführen, um den Zeitablauf einer Antwort auf einen Zugriff jedes Prozessors einzustellen, um dadurch jedes Rechenmodul dazu zu veranlassen, seine Operation synchron wieder aufzu nehmen, wenn in einem Zugriffszustand auf einen externen Bus eine Nichtübereinstimmung zwischen den jeweiligen Prozessoren in jedem Rechenmodul erfasst wird, falls kein Fehler in dem System, das jedes Rechenmodul enthält, erfasst wird.
  • Ferner umfasst das Programm zur Neusynchronisation die Funktionen des Erfassens des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem Gesamtsystem, das jedes Rechenmodul umfasst, des Überwachens eines Zugriffs des Prozessors in jedem Rechenmodul auf einen externen Bus, des
    Meldens einer Unterbrechung an jeden Prozessor, wenn eine Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule erfasst wird, und des Veranlassens jedes Prozessors, einen Taktsynchronisations-Steuerbefehl auszuführen, um den Zeitverlauf einer Antwort auf einen Zugriff von jedem Prozessor einzustellen, um dadurch jedes Rechenmodul dazu zu veranlassen, seine Operation synchron wieder aufzunehmen, falls in dem System kein Fehler erfasst wird.
  • Ferner umfasst das Programm zur Neusynchronisation die Funktionen des Unterbrechen jedes Prozessors mit einem vorgegebenen Task zur Neusynchronisation der jeweiligen Rechenmodule, der ein Task zum Ausführen eines Zugriffs auf ein vorgegebenes Betriebsmittel ist, beim Erfassen einer Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule, falls kein Fehler in dem System erfasst wird; und des Einreihens des Zugriffs auf das Betriebsmittel von jedem Prozessor in eine Warteschlange und des Antwortens auf die Zugriffe von allen Rechenmodulen gleichzeitig, wenn alle Zugriffe von den Prozessoren empfangen werden.
  • Weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der im Folgenden gegebenen ausführlichen Beschreibung klar.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Die vorliegende Erfindung wird aus der im Folgenden gegebenen ausführlichen Beschreibung und aus der beigefügten Zeichnung der bevorzugten Ausführungsform der Erfindung umfassender verständlich, die aber nicht als Einschränkung an die Erfindung genommen werden sollten, sondern lediglich zur Erläuterung und für das Verständnis dienen.
  • In der Zeichnung ist:
  • 1 ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems gemäß einer ersten Realisierungsart der vorliegenden Erfindung zeigt;
  • 2 ein Diagramm zur Verwendung bei der Erläuterung des Inhalts der Neusynchronisationsverarbeitung des fehlertoleranten Computersystems;
  • 3 ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems gemäß einer zweiten Realisierungsart der vorliegenden Erfindung zeigt; und
  • 4 ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems gemäß einer dritten Realisierungsart der vorliegenden Erfindung zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Im Folgenden wird die bevorzugte Ausführungsform der vorliegenden Erfindung anhand der beigefügten Zeichnung ausführlich diskutiert. In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung zu schaffen. Allerdings ist für den Fachmann auf dem Gebiet offensichtlich, dass die vorliegende Erfindung ohne diese spezifischen Einzelheiten verwirklicht werden kann. In einem anderen Fall sind gut bekannte Strukturen nicht ausführlich gezeigt, um die vorliegende Erfindung nicht unnötig zu verdecken.
  • Die Realisierungsarten der vorliegenden Erfindung werden anhand der folgenden Zeichnung ausführlich beschrieben. 1 ist ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems mit Schrittverriegelungssynchronisation gemäß einer ersten Realisierungsart der vorliegenden Erfindung zeigt.
  • Anhand von 1 enthält das fehlertolerante Computersystem gemäß der vorliegenden Realisierungsart mehrere Rechenmodule 100, 200 und 300, wobei jedes der Rechenmodule 100, 200 und 300 die gleiche Befehlsfolge taktsynchron zueinander verarbeitet. Das fehlertolerante Computersystem vergleicht ein Verarbeitungsergebnis jedes Rechenmoduls. Selbst dann, wenn ein Rechenmodul einen Fehler aufweist, kann die Verarbeitung durch die verbleibenden Rechenmodule fortgesetzt werden.
  • Die jeweiligen Rechenmodule 100, 200 und 300 enthalten jeweils mehrere Prozessoren 101 und 102, 201 und 202 und 301 und 302, externe Prozessorbusse 103, 203 und 303, Speicher 104, 204 und 304 und Speichersteuereinheiten 105, 205 und 305.
  • Außerdem sind die Rechenmodule 100, 200 und 300 mit Peripheriegerät-Steuereinheiten 400 und 500 zum Steuern eines Peripheriegeräts durch die Speichersteuereinheiten 105, 205 und 305 und mit Schnittstellensignalleitungen 600, 601, 602, 610, 611 und 612 verbunden.
  • Ferner enthält das oben beschriebene fehlertolerante Computersystem einen Busmonitor 700, eine Fehlererfassungseinheit 702 und eine Synchronisationssteuereinheit 701.
  • Der Busmonitor 700 überwacht einen Zugriff eines Prozessors jedes Rechenmoduls auf den externen Bus. Der Busmonitor 700 ist über die Schnittstellensignalleitungen 710, 711 und 712 mit den externen Prozessorbussen 103, 203 und 303 der jeweiligen Rechenmodule 100, 200 und 300 verbunden.
  • Die Fehlererfassungseinheit 702 überwacht das Vorhandensein/Nichtvorhandensein eines Fehlers in dem Gesamtsystem, das die jeweiligen Rechenmodule umfasst.
  • Die Synchronisationssteuereinheit 701, die mit jedem Rechenmodul verbunden ist, stellt den Zeitablauf einer Antwort auf einen Zugriff von jedem Rechenmodul so ein, dass veranlasst wird, dass jedes Rechenmodul die Operation taktsynchron wieder aufnimmt. Die Synchronisationssteuereinheit 701 ist über die Schnittstellensignalleitungen 730, 731 und 732 mit den Speichersteuereinheiten 105, 205 und 305 der jeweiligen Rechenmodule 100, 200 und 300 verbunden.
  • Nachfolgend wird eine Beschreibung der Operation des so strukturierten fehlertoleranten Computersystems gemäß der vorliegenden Realisierungsart gegeben.
  • Die Fehlererfassungseinheit 702 überwacht das Vorhandensein/Nichtvorhandensein eines festen Fehlers in dem gesamten fehlertoleranten Computersystem, das die jeweiligen Rechenmodule 100, 200 und 300 und die Peripheriegerät-Steuer einheiten 400 und 500 umfasst. Daraufhin meldet die Fehlererfassungseinheit 702 ein Überwachungsergebnis an den Busmonitor 700.
  • Der Busmonitor 700, der über die Schnittstellensignalleitungen 710, 711 und 712 mit den externen Prozessorbussen 103, 203 und 303 der jeweiligen Rechenmodule 100, 200 und 300 verbunden ist, vergleicht die externen Zugriffssteuersignale der jeweiligen Prozessoren 101, 102, 201, 202, 301 und 302, um zu überwachen, ob die jeweiligen Prozessoren 101, 102, 201, 202, 301 und 302 taktsynchron zueinander mit dem gleichen Zeitablauf auf die externen Busse 103, 203 und 303 zugreifen oder nicht.
  • Wenn die Fehlererfassungsschaltung 702 in einem Fall, in dem der Busmonitor 700 durch die oben beschriebene Überwachungsoperation erfasst, dass irgendeiner der Prozessoren 101, 102, 201, 202, 301 und 302 mit einem anderen Zeitablauf als die anderen arbeitet, nirgends in dem fehlertoleranten Computersystem einen festen Fehler erfasst, erfasst der Busmonitor 700, dass der Schritthalteverlust nicht durch einen Fehler veranlasst ist. Das Ergebnis wird über die Schnittstellensignalleitungen 710, 711 und 712 an alle Rechenmodule 100, 200 und 300 gemeldet, um für jeden Prozessor eine Unterbrechung zu erzeugen. Außerdem schaltet der Busmonitor 700 gleichzeitig auf eine Unterbrechungsbetriebsart der Überwachung der externen Busse 103, 203 und 303 der Prozessoren um.
  • Der Busmonitor 700 überwacht hier alle Zugriffe auf die externen Busse 103, 203 und 303 einschließlich eines Speicherzugriffs von dem Prozessor, wobei er, wenn er eine fehlende Synchronisation in der Operation zwischen den Rechenmodulen erfasst, sofort alle Prozessoren 101, 102, 201, 202, 301 und 302 unterbricht, um die Verarbeitung zu unterbrechen, so dass zu dem Zeitpunkt, zu dem die Unterbrechung erzeugt wird, die Inhalte der Speicher 104, 204 und 304 in den jeweiligen Rechenmodulen 100, 200 und 300 alle miteinander übereinstimmen.
  • Im Folgenden wird anhand von 2 eine Beschreibung spezifischer Inhalte der Operation des fehlertoleranten Computersystems gemäß der vorliegenden Realisierungsart gegeben.
  • Wenn der Busmonitor 700 eine fehlende Synchronisation in der Operation zwischen den Rechenmodulen erfasst (Schritt 201 in 2), wird die Erfassung über die Schnittstellensignalleitungen 710, 711 und 712 gemeldet, um für jeden Pro zessor eine Unterbrechung zu erzeugen.
  • Alle Prozessoren 101, 102, 201, 202, 301 und 302 sind in der relevanten Unterbrechungsverarbeitung, wobei sie einen Synchronisationssteuerungs-Task, der eine Neusynchronisation der Taktsynchronisationsoperation zwischen den jeweiligen Rechenmodulen 100, 200 und 300 erhalten soll, als einen Task höchster Priorität an die Spitze einer Bereitschaftswarteschlange einreihen (Schritt 202 in 2).
  • Der Synchronisationssteuerungs-Task besitzt eine Funktion zum Ausführen eines Befehls zum Zugreifen auf ein speziell in der Synchronisationssteuereinheit 701 vorgeschriebenes Betriebsmittel. Wenn der oben beschriebene Synchronisationssteuerungs-Task im Folgenden durch ein OS auf einen Ausführungszustand umgeschaltet wird, führt der Task den Befehl aus, auf das vorgeschriebene Betriebsmittel in der Synchronisationssteuereinheit 701 zuzugreifen (Schritt 203 in 2).
  • Zu diesem Zeitpunkt werden ein Zugriff auf das vorgeschriebene Betriebsmittel von einem Rechenmodul in dem Schritthalteverlustzustand und ein Zugriff auf das vorgeschriebene Betriebsmittel von anderen Rechenmodulen in dem Schrittverriegelungszustand natürlich mit einer Zeitverzögerung an die Synchronisationssteuereinheit 701 übertragen.
  • Wenn der Zugriff der erste ist, enthält sich die Synchronisationssteuereinheit 701 beim Erfassen eines Zugriffs von den Rechenmodulen 100, 200 und 300 auf das speziell vorgeschriebene interne Betriebsmittel davon, eine Antwort an das relevante Rechenmodul zurückzugeben und wartet darauf, dass Zugriffe von allen anderen Rechenmodulen kommen (Schritt 204 in 2). Wenn die Zugriffe von allen Rechenmodulen 100, 200 und 300 übertragen werden, wird gleichzeitig an alle Rechenmodule 100, 200 und 300 eine Antwort auf die Zugriffe zurückgegeben.
  • In Reaktion auf die Antwort von der Synchronisationssteuereinheit 701 schließen alle Prozessoren in den jeweiligen Rechenmodulen 100, 200 und 300 die Ausführung des Synchronisationssteuerungs-Tasks ab (Schritt 205 in 2). Anschließend setzen alle Prozessoren die normale Programmoperation fort (Schritt 206 in 2).
  • Die im Vorstehenden beschriebene Operation ermöglicht, dass die Rechenmodule 100, 200 und 300 ihre Operation wieder taktsynchron miteinander fortsetzen. Da zu diesem Zeitpunkt wie oben beschrieben die Neusynchronisationsverarbeitung ausgeführt wird, bevor die Inhalte der Speicher 104, 204 und 304 in den Rechenmodulen 100, 200 und 300 die Übereinstimmung verlieren, dürfen nach dem erneuten taktsynchronen Start der Operation alle Rechenmodule 100, 200 und 300 wieder die gleiche Befehlsfolge mit dem gleichen Zeitablauf ausführen. Dies beseitigt die Notwendigkeit, den Speicher zur Neusynchronisation zu kopieren, was in einem herkömmlichen fehlertoleranten Computersystem erforderlich ist, und ermöglicht dadurch die schnelle Ausführung der Neusynchronisationsverarbeitung.
  • 3 ist ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems gemäß einer zweiten Realisierungsart der vorliegenden Erfindung zeigt. Anhand von 3 ist das fehlertolerante Computersystem gemäß der vorliegenden Realisierungsart der vorliegenden Erfindung so strukturiert, dass es mehrere Rechenmodule 100 und 200, die jeweils einen Prozessor und einen Speicher umfassen, und mehrere Peripheriegerät-Steuereinheiten 400 und 500, die jeweils eine PCI-Brücke 703 umfassen, enthält. Jedes der Rechenmodule 100 und 200 verarbeitet die gleiche Befehlsfolge taktsynchron zueinander. Das fehlertolerante Computersystem vergleicht ein Verarbeitungsergebnis jedes Rechenmoduls. Selbst dann, wenn ein Rechenmodul einen Fehler hat, kann die Verarbeitung durch die verbleibenden Rechenmodule fortgesetzt werden. Außerdem ist jede der Peripheriegerät-Steuereinheiten 400 und 500 so strukturiert, dass sie durch Softwaresteuerung in der Weise multiplexiert wird, dass sie ermöglicht, dass die Verarbeitung unter Verwendung der anderen Peripheriegerät-Steuereinheit fortgesetzt wird, selbst wenn eine Peripheriegerät-Steuereinheit einen Fehler entwickelt.
  • Jede Peripheriegerät-Steuereinheit 400 enthält die PCI-Brücke 703, die mit den Speichersteuereinheiten 105 und 205 in den jeweiligen Rechenmodulen 100 und 200 über eine PCI verbunden ist, um eine Verbindung mit einem Peripheriegerät herzustellen, einen Busmonitor 700 zum Überwachen eines Zugriffs jedes Prozessors in jedem der Rechenmodule 100 und 200 auf einen externen Bus, eine Fehlererfassungseinheit 702 zum Überwachen des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem gesamten fehlertoleranten Computersystem, das die Rechenmodule 100 und 200 und eine Synchronisationssteuereinheit 701, die mit jedem Rechenmodul über die PCI-Brücke 703 verbunden ist, um den Zeitablauf einer Antwort auf einen Zugriff von jedem Rechenmodul so einzustellen, dass die Taktsynchronisation jedes Rechenmoduls wiedergewonnen wird, umfasst.
  • Obgleich dies in der Figur nicht gezeigt ist, besitzt die Peripheriegerät-Steuereinheit 500 ähnlich der Peripheriegerät-Steuereinheit 400 ebenfalls die oben beschriebenen jeweiligen Komponenten.
  • Das fehlertolerante Computersystem mit Schrittverriegelungssynchronisation, das gemäß der vorliegenden Realisierungsart strukturiert ist, überwacht normalerweise die Taktsynchronisationsoperation jedes der Rechenmodule 100 und 200 und steuert unter Verwendung der Peripheriegerät-Steuereinheit 400 ein Peripheriegerät. Wenn in der Peripheriegerät-Steuereinheit 400 ein Fehler auftritt, führt sie durch Umschalten der Verwendung auf die Peripheriegerät-Steuereinheit 500 dieselbe Verarbeitung aus.
  • In der vorliegenden Realisierungsart wird die Ausführung eines Befehls zum Zugreifen auf das vorgeschriebene Betriebsmittel in der Synchronisationssteuereinheit 701, die in 2 gezeigt ist (Schritt 203 in 2), durch die Ausführung eines Lesebefehls zu einem Register in der Synchronisationssteuereinheit 701 in der Peripheriegerät-Steuereinheit 400 realisiert, wobei der Lesebefehl über die PCI-Busse 800 und 801 und die PCI-Brücke 703 zu der Synchronisationsteuereinheit 701 übertragen wird und seine Antwort über die gleiche Route zu jedem der Rechenmodule 100 und 200 übertragen wird.
  • Der Inhalt der Neusynchronisationsverarbeitung ist in der vorliegenden Realisierungsart der gleiche, wie er in 2 gezeigt ist.
  • Obgleich in der vorliegenden Realisierungsart eine Ausführungsform gezeigt ist, in der zwei Rechenmodule vorhanden sind, funktionieren eine Struktur mit drei Rechenmodulen, wie sie in der in 1 veranschaulichten ersten Realisierungsart gezeigt ist, oder eine Struktur mit vier oder mehr Modulen außerdem auf die gleiche Weise.
  • 4 ist ein Blockschaltplan, der eine Struktur eines fehlertoleranten Computersystems gemäß einer dritten Realisierungsart der vorliegenden Erfindung zeigt.
  • In der vorliegenden Realisierungsart ist eine Struktur gezeigt, in der ein Busmonitor 700 über eine PCI-Brücke 703 mit den Rechenmodulen 100 und 200 verbunden ist.
  • In der vorliegenden Realisierungsart wird die Überwachung der externen Busse 103 und 203 der jeweiligen Prozessoren durch ein Signal (PCI-Busprotokoll) ausgeführt, das über die Speichersteuereinheiten 105 und 205 der jeweiligen Rechenmodule 100 und 200, über die PCI-Busse 800 und 801 und über die PCI-Brücke 703 an den Busmonitor 700 übertragen wird. Außerdem wird über eine umgekehrte Route zu der oben beschriebenen Route die Übertragung einer Unterbrechung von dem Busmonitor 700 zu jedem Rechenmodul ausgeführt.
  • Der Inhalt der Neusynchronisationsverarbeitung ist in der vorliegenden Realisierungsart der gleiche, wie er in 2 gezeigt ist.
  • Obgleich die jeweiligen Rechenmodule und der Busmonitor und dergleichen in der zweiten und dritten Realisierungsart unter Verwendung des PCI verbunden sind, kann die Verbindung zwischen diesen Komponenten unter Verwendung einer Schnittstelle einer anderen Norm wie etwa einer PCI-X oder einer exklusiven Schnittstelle, die nicht universell genormt ist, hergestellt sein, was keine der Wirkungen der vorliegenden Erfindung beeinflusst.
  • In dem fehlertoleranten Computersystem der vorliegenden Erfindung kann die Funktion jeder Einheit zum Ausführen der Neusynchronisationsverarbeitung nicht nur durch Hardware realisiert werden, sondern auch dadurch, dass in einen Speicher einer Computerverarbeitungsvorrichtung ein Programm 1000 zur Neusynchronisationsverarbeitung geladen wird, das die Funktion jeder der oben beschriebenen Einheiten ausführt, um die Computerverarbeitungsvorrichtung zu steuern. Das Programm zur Neusynchronisationsverarbeitung 1000 wird in einer Magnetplatte, einem Halbleiterspeicher oder einem anderen Aufzeichnungsmedium gespeichert und aus dem Aufzeichnungsmedium in die Computerverarbeitungsvorrichtung geladen, um die Operation der Computerverarbeitungsvorrichtung zu steuern und dadurch jede der oben beschriebenen Funktionen zu realisieren.
  • Obgleich die vorliegende Erfindung im Vorstehenden in Bezug auf die bevorzugten Realisierungsarten beschrieben wurde, ist die vorliegende Erfindung nicht notwendig auf die oben beschriebenen Realisierungsarten beschränkt, sondern kann im Umfang ihres technischen Gedankens in verschiedenen Formen realisiert werden.
  • Obgleich in jeder der oben beschriebenen Realisierungsarten die Struktur gezeigt ist, in der jedes Rechenmodul zwei Prozessoren besitzt, funktioniert eine Struktur mit einem Prozessor oder mit drei oder mehr Prozessoren vollständig auf die gleiche Weise.
  • Obgleich in jeder der Realisierungsarten ein Fall gezeigt ist, in dem die jeweiligen Prozessoren einen externen Bus gemeinsam nutzen und an denselben Bus angeschlossen sind, beeinflusst außerdem z. B. weder eine Struktur, in der mehrere Prozessoren in Form eines Asterismus an eine Steuereinheit angeschlossen sind, noch eine Struktur, in der die Prozessoren, die ein Rechenmodul bilden, physikalisch auf mehrere Platinen getan sind, die Wirkungen der vorliegenden Erfindung.
  • Wie im Vorstehenden beschrieben wurde, erzielt die vorliegende Erfindung die folgenden Wirkungen.
  • Die erste Wirkung ist, dass ermöglicht wird, dass ein bestimmtes Rechenmodul in einem fehlertoleranten Computersystem, wenn es wegen anderer Ursachen als eines festen Fehlers aus dem Schrittverriegelungszustand aufhört, in äußerst kurzer Zeitdauer in den Schrittverriegelungszustand wiederhergestellt wird.
  • Der Grund dafür ist, dass, wenn in einer Anfangsstufe der Erzeugung eines Schritthalteverlusts ein Speicher in jedem Rechenmodul noch nicht mit den jeweils anderen übereinstimmt, der Busmonitor eine Unterbrechung zu einem Prozessor erzeugt, um bevorzugt einen Task des Ausführens einer Befehlsfolge zum Steuern der Neusynchronisation auszuführen, wodurch die Synchronisation ohne Kopieren des Speichers wiedergewonnen wird.
  • Die zweite Wirkung ist die Verbesserung der Verfügbarkeit des fehlertoleranten Computersystems. Der Grund dafür ist, dass eine Haltezeitdauer des Gesamtsystems durch erhebliches Beschleunigen der Zeit für die Neuintegration drastisch verringert werden kann, wenn eine Schrittverriegelung aufhört.
  • Obgleich die Erfindung in Bezug auf eine beispielhafte Ausführungsform davon veranschaulicht und beschrieben worden ist, ist für den Fachmann auf dem Gebiet selbstverständlich, dass darin und daran die vorstehenden und verschiedene weitere Änderungen, Weglassungen und Hinzufügungen vorgenommen werden können, ohne von dem Umfang der vorliegenden Ansprüche abzuweichen.

Claims (5)

  1. Fehlertolerantes Computersystem mit Schrittverriegelungssynchronität, mit mehreren Rechenmodulen (100, 200, 300), die einen Prozessor (101, 102, 201, 202, 301, 302) und einen Speicher (104, 204, 304) umfassen, wobei jedes Rechenmodul (100, 200, 300) die gleiche Befehlsfolge synchron mit den jeweils anderen Rechenmodulen verarbeitet, ferner mit einem Fehlerdetektor (702), der das Vorhandensein/Nichtvorhandensein eines Fehlers in dem Gesamtsystem überwacht, einem Busmonitor (700), der einen Zugriff des Prozessors in jedem Rechenmodul (100, 200, 300) auf einen externen Bus (103, 203, 303) überwacht und dann, wenn er eine Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule (100, 200, 300) erfasst, an jeden Prozessor eine Unterbrechung meldet, und einer Synchronisationssteuereinheit (701), die jedes Rechenmodul (100, 200, 300) neu synchronisiert, indem sie den Zeitablauf einer Antwort auf einen Zugriff von jedem der Prozessoren, der die Unterbrechung hervorgerufen hat, einstellt, dadurch gekennzeichnet, dass der Busmonitor (700) die Unterbrechung jedem Prozessor meldet und dadurch einen vorgegebenen Task in eine Warteschlange einreiht, wobei der Task einen Zugriff auf ein vorgegebenes Betriebsmittel in der Synchronisationssteuereinheit (701) ausführt, um die Rechenmodule (100, 200, 300) neu zu synchronisieren, falls durch den Fehlerdetektor (702) kein Fehler erfasst wird, und dass die Synchronisationssteuereinheit (701) eine Antwort gleichzeitig an alle Rechenmodule (100, 200, 300) sendet, wenn sie Zugriffe auf das Betriebsmittel von allen Prozessoren empfängt.
  2. Fehlertolerantes Computersystem nach Anspruch 1, bei dem mehrere Paare der Busmonitore (700), des Fehlerdetektors (702) und der Synchronisationssteuereinheit (701) vorgesehen sind.
  3. Fehlertolerantes Computersystem nach Anspruch 1, bei dem der Busmonitor (700), der Fehlerdetektor (702) und die Synchronisationssteuereinheit (701) in einer Peripheriegerät-Steuereinheit (400, 500) vorgesehen sind, die ein Peripheriegerät steuert und mit dem externen Bus in dem Rechenmodul (100, 200, 300) über eine PCI-Brücke verbunden ist.
  4. Verfahren zur Neusynchronisation, das in einem fehlertoleranten Computersystem mit Schrittverriegelungssynchronität verwendet wird, wobei das System mehrere Rechenmodule (100, 200, 300) umfasst, die einen Prozessor (101, 102, 201, 202, 301, 302) und einen Speicher (104, 204, 304) umfassen, wobei jedes Rechenmodul (100, 200, 300) die gleiche Befehlsfolge synchron mit den jeweils anderen Rechenmodulen verarbeitet, wobei das Verfahren die folgenden Schritte umfasst: Erfassen des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem Gesamtsystem, das jedes Rechenmodul (100, 200, 300) umfasst, Überwachen eines Zugriffs des Prozessors in jedem Rechenmodul (100, 200, 300) auf einen externen Bus (103, 203, 303), Melden einer Unterbrechung an jeden Prozessor, wenn eine Nichtübereinstimmung in den Ausgaben der jeweiligen Rechenmodule (100, 200, 300) erfasst wird, und Veranlassen jedes Prozessors, einen Taktsynchronisations-Steuerbefehl auszuführen, um den Zeitverlauf einer Antwort auf einen Zugriff von jedem Prozessor einzustellen, um dadurch jedes Rechenmodul (100, 200, 300) dazu zu veranlassen, seinen Betrieb synchron wieder aufzunehmen, dadurch gekennzeichnet, dass die Unterbrechung jedes Prozessors einen vorgegebenen Task dazu veranlasst, die jeweiligen Rechenmodule (100, 200, 300) neu zu synchronisieren, wobei der Task einen Zugriff auf ein vorgegebenes Betriebsmittel ausführt, und dann, wenn in dem System kein Fehler erfasst wird, der Zugriff auf das Betriebsmittel von jedem Prozessor in eine Warteschlange eingereiht wird und auf die Zugriffe von allen Rechenmodulen (100, 200, 300) gleichzeitig geantwortet wird, wenn alle Zugriffe von den Prozessoren empfangen werden.
  5. Programm zur Neusynchronisation für die Ausführung einer Verarbeitung zur Neusynchronisation eines fehlertoleranten Computersystems mit Schrittverriegelungssynchronität, wobei das Computersystem mehrere Rechenmodule (100, 200, 300) umfasst, die einen Prozessor (101, 102, 201, 202, 301, 302) und einen Speicher (104, 204, 304) besitzen, wobei jedes Rechenmodul (100, 200, 300) die gleiche Befehlsfolge synchron mit den jeweils anderen Rechenmodulen verarbeitet, wobei das Programm die folgenden Funktionen umfasst: Erfassen des Vorhandenseins/Nichtvorhandenseins eines Fehlers in dem Gesamtsystem, das jedes der Rechenmodule (100, 200, 300) umfasst, Überwachen eines Zugriffs des Prozessors in jedem Rechenmodul (100, 200, 300) auf einen externen Bus (103, 203, 303), Melden einer Unterbrechung an jeden Prozessor, wenn eine Nichtübereinstimmung in den Ausgängen der jeweiligen Rechenmodule (100, 200, 300) erfasst wird, falls in dem System kein Fehler erfasst wird, und Veranlassen jedes Prozessors, einen Synchronisationssteuerbefehl auszuführen, um den Zeitverlauf einer Antwort auf einen Zugriff von jedem Prozessor einzustellen, um dadurch jedes Rechenmodul (100, 200, 300) dazu zu veranlassen, die Operation synchron wieder aufzunehmen, dadurch gekennzeichnet, dass die Unterbrechung jedes Prozessors einen vorgegebenen Task dazu veranlasst, die entsprechenden Rechenmodule (100, 200, 300) neu zu synchronisieren, wobei der Task einen Zugriff auf ein vorgegebenes Betriebsmittel ausführt, und dann, wenn in dem System kein Fehler erfasst wird, der Zugriff auf das Betriebsmittel von jedem Prozessor in eine Warteschlange eingereiht wird und auf die Zugriffe von allen Rechenmodulen (100, 200, 300) gleichzeitig geantwortet wird, wenn alle Zugriffe von den Prozessoren empfangen werden.
DE60301702T 2002-07-12 2003-07-10 Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben Expired - Lifetime DE60301702T2 (de)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
DE60301702D1 DE60301702D1 (de) 2005-11-03
DE60301702T2 true DE60301702T2 (de) 2006-07-06

Family

ID=29728536

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60301702T Expired - Lifetime DE60301702T2 (de) 2002-07-12 2003-07-10 Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben

Country Status (10)

Country Link
US (1) US7225355B2 (de)
EP (1) EP1380952B1 (de)
JP (1) JP3982353B2 (de)
KR (1) KR100566339B1 (de)
CN (1) CN1326042C (de)
AU (1) AU2003208108A1 (de)
CA (1) CA2434494C (de)
DE (1) DE60301702T2 (de)
ES (1) ES2247459T3 (de)
TW (1) TWI226983B (de)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484441B2 (en) 2004-03-31 2013-07-09 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths
US7949856B2 (en) 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit
US9047094B2 (en) 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
US7529807B1 (en) * 2004-05-05 2009-05-05 Sun Microsystems, Inc. Common storage in scalable computer systems
DE102004032405A1 (de) * 2004-07-03 2006-02-09 Diehl Bgt Defence Gmbh & Co. Kg Weltraum-taugliche Rechnerarchitektur
US7308605B2 (en) * 2004-07-20 2007-12-11 Hewlett-Packard Development Company, L.P. Latent error detection
US7487395B2 (en) * 2004-09-09 2009-02-03 Microsoft Corporation Method, system, and apparatus for creating an architectural model for generating robust and easy to manage data protection applications in a data protection system
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
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
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
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
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
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP2006178616A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
US20060212677A1 (en) * 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores
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
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
JP5220281B2 (ja) * 2006-03-31 2013-06-26 日本電気株式会社 情報処理システムのコアセル変更制御方式及びその制御プログラム
EP2011018B1 (de) 2006-04-12 2016-07-13 Soft Machines, Inc. Vorrichtung und verfahren zur verarbeitung einer instruktionsmatrix zur definition paralleler und abhängiger operationen
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US8041985B2 (en) 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US7480827B2 (en) 2006-08-11 2009-01-20 Chicago Mercantile Exchange Fault tolerance and failover using active copy-cat
EP2527972A3 (de) 2006-11-14 2014-08-06 Soft Machines, Inc. Vorrichtung und Verfahren zum Verarbeiten von komplexen Anweisungsformaten in einer Multi-Thread-Architektur, die verschiedene Kontextschaltungsmodi und Visualisierungsschemen unterstützt
US8756402B2 (en) * 2007-09-14 2014-06-17 Intel Mobile Communications GmbH Processing module, processor circuit, instruction set for processing data, and method for synchronizing the processing of codes
CN101383690B (zh) * 2008-10-27 2011-06-01 西安交通大学 一种基于socket的容错计算机系统的网络同步方法
GB2471138B (en) * 2009-06-19 2014-08-13 Advanced Risc Mach Ltd Handling integer and floating point registers during a context switch
CN101882098B (zh) * 2009-07-10 2012-07-11 威盛电子股份有限公司 微处理器集成电路以及相关除错方法
WO2011106308A2 (en) 2010-02-23 2011-09-01 Navia Systems, Inc. Configurable circuitry for solving stochastic problems
US8058916B2 (en) 2010-04-15 2011-11-15 Xilinx, Inc. Lockstep synchronization and maintenance
WO2012037491A2 (en) 2010-09-17 2012-03-22 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
TWI525541B (zh) 2010-10-12 2016-03-11 軟體機器公司 輸出可靠可預測指令序列的方法與系統,以及實施識別指令方法的微處理器
WO2012051262A2 (en) 2010-10-12 2012-04-19 Soft Machines, Inc. An instruction sequence buffer to enhance branch prediction efficiency
GB2489000B (en) 2011-03-14 2019-09-11 Advanced Risc Mach Ltd Diagnosing code using single step execution
TWI533129B (zh) 2011-03-25 2016-05-11 軟體機器公司 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
EP2689326B1 (de) 2011-03-25 2022-11-16 Intel Corporation Speicherfragmente zur unterstützung einer codeblockausführung mittels durch partitionierbare engines realisierter virtueller kerne
TWI666551B (zh) 2011-05-20 2019-07-21 美商英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
EP2710480B1 (de) 2011-05-20 2018-06-20 Intel Corporation Verbindungsstruktur zur unterstützung der ausführung von instruktionssequenzen durch mehrere maschinen
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
US9811338B2 (en) 2011-11-14 2017-11-07 Intel Corporation Flag non-modification extension for ISA instructions using prefixes
IN2014CN03678A (de) 2011-11-22 2015-09-25 Soft Machines Inc
CN104040491B (zh) 2011-11-22 2018-06-12 英特尔公司 微处理器加速的代码优化器
CN102521086B (zh) * 2011-12-08 2014-07-16 上海交通大学 基于锁步同步的双模冗余系统及其实现方法
US8832720B2 (en) * 2012-01-05 2014-09-09 Intel Corporation Multimedia driver architecture for reusability across operating systems and hardware platforms
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
DE102012219180A1 (de) * 2012-10-22 2014-05-08 Robert Bosch Gmbh Recheneinheit für ein Steuergerät und Betriebsverfahren hierfür
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US9563579B2 (en) 2013-02-28 2017-02-07 Intel Corporation Method, apparatus, system for representing, specifying and using deadlines
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014151018A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for executing multithreaded instructions grouped onto blocks
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9792121B2 (en) * 2013-05-21 2017-10-17 Via Technologies, Inc. Microprocessor that fuses if-then instructions
US9183155B2 (en) * 2013-09-26 2015-11-10 Andes Technology Corporation Microprocessor and method for using an instruction loop cache thereof
US9952620B2 (en) 2014-04-10 2018-04-24 Intel Corporation Time-synchronizing a group of nodes
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
US9697094B2 (en) * 2015-02-06 2017-07-04 Intel Corporation Dynamically changing lockstep configuration
TWI514148B (zh) * 2015-03-16 2015-12-21 Univ Nat Sun Yat Sen 快取記憶體
JP6436031B2 (ja) * 2015-09-18 2018-12-12 信越半導体株式会社 単結晶引き上げ装置、及び単結晶引き上げ方法
JP6083480B1 (ja) * 2016-02-18 2017-02-22 日本電気株式会社 監視装置、フォールトトレラントシステムおよび方法
US10037173B2 (en) 2016-08-12 2018-07-31 Google Llc Hybrid memory management
US10152427B2 (en) 2016-08-12 2018-12-11 Google Llc Hybrid memory management
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3864670A (en) * 1970-09-30 1975-02-04 Yokogawa Electric Works Ltd Dual computer system with signal exchange system
US5020024A (en) 1987-01-16 1991-05-28 Stratus Computer, Inc. Method and apparatus for detecting selected absence of digital logic synchronism
JPH0432955A (ja) 1990-05-23 1992-02-04 Oki Electric Ind Co Ltd プロセッサ障害検出装置
JPH05298134A (ja) 1991-12-16 1993-11-12 Internatl Business Mach Corp <Ibm> コンピュータシステムにおける処理誤りの処理機構及び方法
WO1995015529A1 (en) 1993-12-01 1995-06-08 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5832253A (en) * 1993-12-06 1998-11-03 Cpu Technology, Inc. Multiprocessors system for selectively wire-oring a combination of signal lines and thereafter using one line to control the running or stalling of a selected processor
JPH08235015A (ja) 1995-02-27 1996-09-13 Mitsubishi Electric Corp プロセッサ装置並びにプロセッサ故障診断方法
JP3241997B2 (ja) 1996-06-28 2001-12-25 富士通株式会社 情報処理装置
US5805870A (en) * 1996-06-28 1998-09-08 International Business Machines Corporation System and method for correcting clock drift in multiprocessor systems
US5875320A (en) * 1997-03-24 1999-02-23 International Business Machines Corporation System and method for synchronizing plural processor clocks in a multiprocessor system
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US5923830A (en) 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
US6279119B1 (en) 1997-11-14 2001-08-21 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US6175930B1 (en) * 1998-02-17 2001-01-16 International Business Machines Corporation Demand based sync bus operation
GB2340627B (en) * 1998-08-13 2000-10-04 Plessey Telecomm Data processing system
US6757847B1 (en) * 1998-12-29 2004-06-29 International Business Machines Corporation Synchronization for system analysis
JP2000200255A (ja) 1999-01-07 2000-07-18 Hitachi Ltd プロセッサ間の同期化方法及び同期回路
US6643787B1 (en) * 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
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
US6480966B1 (en) * 1999-12-07 2002-11-12 International Business Machines Corporation Performance monitor synchronization in a multiprocessor system
JP2002049501A (ja) 2000-08-04 2002-02-15 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法

Also Published As

Publication number Publication date
CN1326042C (zh) 2007-07-11
US7225355B2 (en) 2007-05-29
AU2003208108A1 (en) 2004-01-29
JP2004046611A (ja) 2004-02-12
EP1380952A1 (de) 2004-01-14
EP1380952B1 (de) 2005-09-28
KR20040007322A (ko) 2004-01-24
TW200401187A (en) 2004-01-16
ES2247459T3 (es) 2006-03-01
CN1495611A (zh) 2004-05-12
DE60301702D1 (de) 2005-11-03
US20040010789A1 (en) 2004-01-15
TWI226983B (en) 2005-01-21
KR100566339B1 (ko) 2006-03-31
CA2434494A1 (en) 2004-01-12
JP3982353B2 (ja) 2007-09-26
CA2434494C (en) 2008-11-25

Similar Documents

Publication Publication Date Title
DE60301702T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben
DE60302184T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm
DE69911026T2 (de) Synchronisation von prozessoren in einem fehlertoleranten multi-prozessor-system
DE69729889T2 (de) Verfahren und system zum ermöglichen einer unterbrechungsfreien einsetzung und entfernung von erweiterungskarten in einem unterspannungrechnersystem
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE602005003490T2 (de) Verteiltes System mit Quorumredundanz und Verfahren dafür
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE69435090T2 (de) Rechnersystem mit Steuereinheiten und Rechnerelementen
DE19900369B4 (de) Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB)
DE4233569C2 (de) Informationsverarbeitungsgerät mit einer Mehrzahl von Prozessor-Modulen, die einen Fehlerüberwachungskreis enthalten
DE19832060C2 (de) Doppelbare Prozessoreinrichtung
DE69432726T2 (de) Verfahren und System zur seriellen Datenübertragung
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE19744071B4 (de) Eine programmierbare Logiksteuervorrichtung verwendendes Steuerungssystem
DE3732798A1 (de) Datenverarbeitungssystem mit ueberlappendem zugriff auf einen globalen speicher durch eine quelle mit hoher prioritaet
DE10231938A1 (de) Computersystem mit mehreren Sicherungs-Verwaltungsprozessoren zur Handhabung eines Ausfalls eines eingebetteten Prozessors
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung
EP1537482B1 (de) Verfahren und schaltungsanordnung zur synchronisation synchron oder asynchron getakteter verarbeitungseinheiten
DE3727017A1 (de) Synchronisiervorrichtung fuer prozessoren
WO1992003785A1 (de) Einrichtung zur funktionsüberwachung externer synchronisations-baugruppen in einem mehrrechnersystem
DE69914568T2 (de) Vorrichtung, Verfahren und System zur Dateisynchronisierung in einem Fehlertoleranten Netzwerk
DE19900251B4 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE60300233T2 (de) Fehlertolerante Vorrichtung zur informationsverarbeitung
DE19811864A1 (de) Redundante Steuerungsvorrichtung und Fehlererholungsverfahren für diese
DE2844295C2 (de) Verfahren und Vorrichtung zur Steuerung des Datentransfers auf einem Datenbus

Legal Events

Date Code Title Description
8364 No opposition during term of opposition