[go: up one dir, main page]

DE69706245T2 - Lokalisierung eines fehlerhaften Moduls in einem fehlertoleranten Rechnersystem - Google Patents

Lokalisierung eines fehlerhaften Moduls in einem fehlertoleranten Rechnersystem

Info

Publication number
DE69706245T2
DE69706245T2 DE69706245T DE69706245T DE69706245T2 DE 69706245 T2 DE69706245 T2 DE 69706245T2 DE 69706245 T DE69706245 T DE 69706245T DE 69706245 T DE69706245 T DE 69706245T DE 69706245 T2 DE69706245 T2 DE 69706245T2
Authority
DE
Germany
Prior art keywords
signature
output
module
input
subsystem
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
DE69706245T
Other languages
English (en)
Other versions
DE69706245D1 (de
Inventor
Emrys John Williams
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69706245D1 publication Critical patent/DE69706245D1/de
Publication of DE69706245T2 publication Critical patent/DE69706245T2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/277Tester hardware, i.e. output processing circuits with comparison between actual response and known fault-free response
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf fehlertolerante Computersysteme, wie z. B. auf Computer, die auf Verriegelungsschrittfehler (Fehler im erzwungenen Gleichschritt) tolerant sind, und welche mehrere Teilsysteme verwenden, die in identischer Weise laufen.
  • Bei solchen auf Verriegelungsschrittfehler (Lockstep-Fehler) toleranten Computersystemen werden die Ausgänge bzw. Ausgangsgrößen der Teilsysteme innerhalb des Computers verglichen, und wenn die Ausgangswerte sich unterscheiden, so wird eine ausnahmsweise Reparaturaktion durchgeführt.
  • Fig. 1 der beigefügten Zeichnungen ist eine schematische Übersicht eines Beispiels eines typischen Systems, in welchem drei identische Verarbeitungs-(CPU-) Sätze 10, 11, 12 synchron (sync) unter einem gemeinsamen Takt 16 arbeiten. Mit einem Verarbeitungssatz ist ein Teilsystem einschließlich einer Verarbeitungsmaschine gemeint, beispielsweise eine zentrale Verarbeitungseinheit (CPU), und ein interner Zustandsspeicher.
  • Wie in Fig. 1 dargestellt ist, werden die Ausgangsgrößen der drei Verarbeitungssätze 10, 11, 12 einer Fehlerdetektoreinheit (Voter) 17 zugeführt, um die Arbeit der Verarbeitungssätze 10, 11, 12 zu überwachen. Wenn die Prozessorsätze 10, 11, 12 korrekt arbeiten, erzeugen sie für den Voter 10 identische Ausgangswerte. Dementsprechend gibt der Voter 17 Befehle von den Verarbeitungssätzen 10, 11, 12 für die Handhabung bzw. weitere Arbeit an ein Eingangs/Ausgangsteilsystem 18 (I/O-Teilsystem) für die weitere Handlung weiter. Wenn jedoch die Ausgangswerte von den Verarbeitungssätzen sich unterscheiden, so zeigt dies an, daß irgendwo ein Fehler steckt und der Voter bewirkt dann eine gewisse Korrekturfunktion, die erfolgt, bevor eine I/O-Operation bewirkt wird. Typischerweise umfaßt die Korrekturaktion, daß der Voter ein Signal über die geeignete Leitung 14 an einen Prozessorsatz zuführt, der einen Fehler zeigt, um zu bewirken, daß eine "Change- Me"-Lampe (nicht dargestellt) an dem fehlerhaften Verarbeitungssatz erleuchtet wird. Der fehlerhafte Verarbeitungssatz wird abgeschaltet und ein Benutzer muß ihn dann durch eine Korrekt funktionierende Einheit ersetzen. In dem dargestellten Beispiel kann ein defekter Verarbeitungssatz normalerweise aufgrund der Majoritätsmeldung bzw. Majoritätsstimmabgabe identifiziert werden wegen der 2:1-Abstimmung, die praktisch auftritt, wenn ein Verarbeitungssatz versagt oder einen temporären oder dauerhaften Fehler entwickelt.
  • Die Erfindung ist jedoch nicht auf solche Systeme beschränkt, sondern ist auch auf Systeme anwendbar, für welche umfangreiche diagnostische Operationen erforderlich sind, um den fehlerhaften Verarbeitungssatz zu identifizieren. Das System muß keinen einzelnen Voter bzw. Bewerter haben und muß nicht nur I/O-Befehle bewerten. Die Erfindung ist allgemein anwendbar auf synchrone Systeme mit redundanten Komponenten, die im Verriegelungsschrittbetrieb bzw. im Lockstep- Betrieb.
  • Ein besonderes Problem liegt vor, wenn jeder Verarbeitungssatz selbst aus mehreren unabhängigen, austauschbaren Einheiten besteht. Während es vielleicht einfach ist, den fehlerhaften Verarbeitungssatz zu identifizieren, ist es möglicherweise weniger leicht, den besonderen fehlerhaften Modul innerhalb des Verarbeitungssatzes zu lokalisieren. Aus Kostengründen ist es jedoch in hohem Maße wünschenswert, nur das einzelne Modul anstelle des gesamten Verarbeitungssatzes auszutauschen.
  • Fig. 2 zeigt einen Verarbeitungssatz, der aus mehreren Modulen hergestellt ist, die in diesem Beispiel Module M0-M3 und ein Eingabe/Ausgabe-IOM aufweisen. Die Verarbeitungssätze 11 und 12 sind mit dem Verarbeitungssatz 10 identisch. In einem Verriegelungsschrittsystem (Lockstep-System) müssen die Lockstep-Module mit einem gemeinsamen Takt synchron sein, so daß sie nicht außer Takt geraten. Jeder Verarbeitungsmodul in Fig. 2 arbeitet synchron mit diesem Takt und das Verarbeitungsmodul M0 in dem Verarbeitungssatz 11 arbeitet normalerweise identisch wie das Verarbeitungsmodul M0 in dem Verarbeitungssatz 10. Die Betriebsweise eines solchen synchronen Moduls sollte jederzeit durch die Eingangsgrößen bzw. Eingänge bestimmt werden, die dem Modul und dem intern gespeicherten Modulzustand präsentiert werden. Der gespeicherte Zustand hängt seinerseits von allen Eingangsgrößen ab, die dem Modul präsentiert wurden, seit es gestartet wurde. In einem Verriegelungsschrittsystem sind beide Eingänge bzw. Eingangsgrößen für das Verarbeitungsmodul M0 und den intern gespeicherten Zustand des Verarbeitungsmoduls M0 auf allen Verarbeitungssätzen identisch, es sei denn, es liegt ein Fehler vor.
  • Fig. 3 ist eine schematische Darstellung des Verarbeitungsmoduls M0, das eine Verarbeitungs- oder Berechnungseinheit 22 und einen Speicher 24 für den internen Zustand aufweist, wobei der intern gespeicherte Zustand von den Eingangsgrößen 26 und den Beiträgen zu den Ausgangswerten 28 abhängt. Der gespeicherte Zustand hängt von der Auslegung des Moduls M0 und möglicherweise auch von allen Eingangswerten ab, die das Modul M0 empfangen hat. Jedes der Verarbeitungsmodule 10, 11 und 12 ist identisch. Die Verarbeitungsmodule werden alle in Reaktion auf eine gemeinsame Takteingabe in das Verarbeitungsmodul an dem Takteingang 30 getaktet.
  • Wenn ein Fehler innerhalb eines der Module M0-M3 des Verarbeitungssatzes 10 auftritt, so ist es der Verarbeitungssatz 10 insgesamt, welcher ausgesondert wird. Es kann jedoch sein, daß ein einzelnes fehlerhaftes Modul tatsächlich ausgetauscht werden muß, bevor der Verarbeitungssatz 10 wieder in den Betrieb zurückgebracht werden kann. Die Schwierigkeit besteht darin, das fehlerhafte Verarbeitungsmodul zu identifizieren.
  • Ein Ziel der vorliegenden Erfindung liegt darin, einen Mechanismus zum Lokalisieren eines fehlerhaften Moduls in einem fehlertoleranten Computersystem bereitzustellen.
  • Gemäß einem ersten Aspekt der Erfindung wird ein Teilsystem für ein fehlertolerantes Computersystem bereitgestellt, welches eine Mehrzahl identischer Teilsysteme aufweist, die im Verriegelungsschritt betreibbar sind, wobei das Teilsystem aufweist: zumindest ein Modul, welches einen Eingang und einen Ausgang hat, einen Signaturgenerator, der parallele Eingänge und zumindest einen Ausgang hat, wobei der Signaturgeneratoreingang so angeschlossen ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt und der Signaturgenerator an seinem Ausgang bzw. Ausgängen eine komprimierte Signatur erzeugt, die eine Funktion der an seinen Eingängen empfangenen Signale ist, sowie einen Logikanalysator, der so angeschlossen ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt und speichert, wodurch eine Logikanalysatorspur erzeugt wird.
  • Gemäß einem anderen Aspekt der Erfindung wird ein fehlertolerantes Computersystem bereitgestellt, welches aufweist: eine Mehrzahl identischer Teilsysteme, die im Verriegelungsschrittbetrieb betreibbar sind, wobei jedes Teilsystem zumindest ein Modul aufweist, welches einen Eingang und einen Ausgang hat, sowie einen Signaturgenerator, der parallele Eingänge und zumindest einen Ausgang hat, wobei der Signaturgeneratoreingang so angeschlossen ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt und der Signaturgenerator an seinem Ausgang bzw. Ausgängen eine komprimierte Signatur erzeugt, die eine Funktion der an seinen Eingängen empfangenen Signale ist, sowie einen Logikanalysator, der so angeschlossen ist, daß er Signale von dem Eingang und/oder dem Ausgang jedes Moduls empfängt und Signale von dem Eingang und/oder Ausgang jedes Moduls speichert, und ein Signaturkomparator, der so angeschlossen ist, daß er die Ausgangswerte der Signaturgeneratoren jedes der Teilsysteme empfängt, wobei der Signaturkomparator einen Auslöserausgang hat, der mit einem Auslösereingang des Logikanalysators in jedem Teilsystem verbunden ist und ein Auslösersignal beim Erfassen eines fehlerhaften Vergleichs bzw. Vergleichswertes zwischen den Signaturen erzeugt.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren bereitgestellt zum Identifizieren eines fehlerhaften Moduls in einem Teilsystem eines fehlertoleranten Computersystems, wobei das fehlertolerante Computersystem eine Mehrzahl identischer Teilsysteme aufweist, die im Verriegelungsschritt (Lockstep, erzwungener Gleichschritt) betreibbar sind und jedes Teilsystem zumindest ein Modul aufweist, welches einen Eingang und einen Ausgang hat, wobei das Verfahren die Schritte aufweist: (a) Erzeugen einer Signatur in einem parallelen Eingangssignaturgenerator, der so angeschlossen ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt, wobei die Signatur eine komprimierte Funktion der Eingänge bzw. Eingangswerte zu dem Signaturgenerator ist, (b) Erzeugen einer Logikanalysatorspur einschließlich des Speicherns von Signalen in einem Logikanalysator, der so angeschlossen ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt, (c) Vergleichen der Ausgangswerte der Signaturgeneratoren jedes Teilsystems in einem Signaturkomparator, (d) Auslösen bzw. Steuern des Logikanalysators in jedem Teilsystem beim Detektieren eines fehlerhaften Vergleichs zwischen den Signaturen, und (e) Vergleichen der in jedem Logikanalysator gespeicherten Signale, um einen ersten Unterschied zwischen den gespeicherten Signalen als Kennzeichen eines fehlerhaften Moduls zu bestimmen.
  • Eine Ausführungsform der Erfindung ermöglicht es, daß alle Eingänge und/oder Ausgänge aller Module in einem Verarbeitungssatz eines fehlertoleranten Computersystems überwacht werden, ohne daß dadurch in beträchtlichem Maße Bandbreite verloren geht, indem ein Signaturgenerator mit Paralleleingang in Kombination mit einem Logikanalysator verwendet wird.
  • Dort, wo die Ausgänge bzw. Ausgangswerte von einem Modul die Eingänge bzw. Eingangswerte zu einem anderen Modul bilden, ist es lediglich notwendig, die Ausgänge bzw. Ausgangswerte von den Modulen zu überwachen.
  • Wenn irgendein Satz von Signalen ein Wort bildet, welches nur von einem Modul in einem bestimmten Takt getrieben wird, so wird durch den Spuranalysator niemals ein Signal in dem Satz verwendet, um festzustellen, welches Modul irgendein anderes Signal getrieben hat (dies trifft oft für einen Datenbus zu), wobei komprimierte anstelle von vollständigen Worten, die in die Module eingegeben oder von diesen ausgegeben werden, durch den Signaturgenerator verwendet werden und/oder durch den Logikanalysator gespeichert werden können.
  • Vorzugsweise weist der Logikanalysator einen Trägereingang für das Empfangen eines Trägereingangssignales auf, wobei der Logikanalysator auf eine Eingangsgröße an dem Trägereingang reagiert, um die gespeicherten Signale für eine Analyse zuzuführen.
  • Um den ersten Unterschied zu identifizieren, hat der Logikanalysator vorzugsweise eine Speicherkapazität, die zumindest für eine maximale Verzögerung zwischen der Eingabe eines fehlerhaften Signales in den Signaturgenerator und die Ausgabe aus dem Signaturgenerator, welche das fehlerhafte Signal wiedergibt, ausreichend ist. Eine robuste bzw. stabile Signatur liefert eine hohe Wahrscheinlichkeit, daß eine Differenz in den Eingangswerten eine Differenz in der Ausgangssignatur erzeugt. In einer bevorzugten Ausführungsform der Erfindung erzeugt der Signaturgenerator eine robuste Signatur, die von allen aktuellen Eingangsgrößen bzw. Eingangswerten und von allen früheren Eingangsgrößen bzw. Eingangswerten hierfür abhängig ist.
  • Eine wünschenswerte Realisierung eines Signaturgenerators ist ein paralleles Eingangsschieberegister mit linearer Rückkopplung. Noch bevorzugter weist der Signaturgenerator eine Mehrzahl paralleler Eingangsschieberegister mit linearer Rückkopplung auf, die zueinander parallel angeordnet sind, wobei jedes aus der Mehrzahl von Parallelschieberegistern einen seriellen Ausgang hat und wobei bei einem weiteren parallelen Eingangsschieberegister mit linearer Rückkopplung jeder seiner parallelen Eingänge mit dem seriellen Ausgang eines entsprechenden aus der Mehrzahl von parallelen Schieberegistern verbunden ist. Ein paralleler Ausgang bzw. Ausgangswert kann aus den jeweiligen Stufen der weiteren parallelen Schieberegister entnommen werden oder man kann einen seriellen Ausgangswert aus dem seriellen Ausgang des weiteren parallelen Schieberegisters entnehmen.
  • Ein Spuranalysator, der in Form von Hardware oder Software implementiert ist, kann für den Empfang der Signale vorgesehen werden, die in jedem Logikanalysator gespeichert sind, wobei der Spuranalysator so ausgelegt ist, daß er die in dem Logikanalysator gespeicherten Signale sucht, um einen ersten Unterschied in der Betriebsweise zu lokalisieren, um zu bestimmen, welches interne Modul offensichtlich einen fehlerhaften Ausgangswert geliefert hat und um das Modul als fehlerhaft zu kennzeichnen.
  • Die Erfindung stellt auch einen integrierten Schaltkreis bereit, der ein System oder Teilsystem, wie es oben beschrieben wurde, aufweist.
  • Ausführungsformen der vorliegenden Erfindung werden nachstehend unter Bezug auf die zugehörigen Figuren beschrieben, in welchen gleiche Bezugszeichen sich auf gleiche Merkmale beziehen und von denen:
  • Fig. 1 eine schematische Übersicht eines mit dreifachmodularen redundanten, fehlertoleranten Computersystems ist,
  • Fig. 2 eine schematische Wiedergabe von Elementen eines Prozessorsatzes des Systems nach Fig. 1 ist,
  • Fig. 3 ein schematisches Blockdiagramm ist, welches die funktionalen Elemente eines Verarbeitungsmoduls zeigt,
  • Fig. 4 eine schematische Wiedergabe eines Prozessorsatzes einer Ausführungsform der Erfindung ist,
  • Fig. 5 eine schematische Wiedergabe eines Schieberegisters mit parallelem Eingang und linearer Rückkopplung ist,
  • Fig. 6 eine schematische Wiedergabe eines Beispiels eines Signaturgenerators mit einem parallelen Eingang großer Kapazität ist,
  • Fig. 7 ein schematisches Blockdiagramm ist, welches die Betriebsweise eines Beispiels eines Systems gemäß der Erfindung zeigt, und
  • Fig. 8 ein schematisches Blockdiagramm ist, welches ein Beispiel einer Anwendung der Erfindung auf einen integrierten Schaltkreis repräsentiert.
  • Ein Logikanalysator ist ein konventionelles Instrument in elektronischer Auslegung. Ein Logikanalysator speichert den Wert seiner Eingangsgrößen bei jedem Takt in ein kontinuierlich auf den neuesten Stand gebrachten Speicher, bis er ausgelöst wird. Nachdem er ausgelöst wurde, kann der Analysator für eine Zeitlang mit dem Speichern fortfahren und dann den Betrieb beenden, so daß die Spur bzw. der Verlauf der gespeicherten Eingangswerte untersucht werden kann. Er kann so ausgelegt sein, daß die sich schließlich ergebende Spur Information über die Eingangswerte sowohl vor als auch nach dem Auslöseereignis enthält.
  • Fig. 4 veranschaulicht Elemente eines Teils einer Ausführungsform der Erfindung. In dieser Ausführungsform ist in jedem Prozessorsatz ein Logikanalysator LA eingebaut. Wie in Fig. 4 dargestellt, ist der Logikanalysator LA mit jedem der Verarbeitungsmodule M0-M3 verbunden, so daß er alle Eingänge und alle Ausgänge jedes der Prozessormodule in diesem Verarbeitungssatz beobachten kann. Selbstverständlich sind einige Ausgänge der Verarbeitungsmodule auch Eingänge anderer Verarbeitungsmodule und nur ein Satz von Logikanalysatorverbindungen reicht für beide. Im Grenzfall kann es sein, daß alle Verarbeitungsmodule Daten untereinander und mit dem I/O-Modul IOM entlang eines einzelnen internen Busses IB austauschen. Dies ist die übliche Anordnung in einem Computer, in welchem die verschiedenen Module Steckkarten (Plug-In-Karten) sind, die mit einer Hauptebene bzw. Hauptplatine verbunden sind. In diesem Fall muß der Logikanalysator nur alle Bussignale in jedem Takt beobachten, um alle Eingangs- und Ausgangssignale jedes Moduls aufzuzeichnen.
  • Die Logikanalysatoren LA in all den Verarbeitungssätzen 10, 11, 12 werden ausgelöst, wenn die Verarbeitungssätze beginnen, unterschiedlich zu arbeiten. Dann kann, wenn die Software oder Hardware den fehlerhaften Verarbeitungssatz identifiziert haben (beispielsweise durch Überstimmung mit Mehrheit oder einen anderen Vorgang), die Software des Spuranalysators den Inhalt des Logikanalysators LA extrahieren und untersuchen, und zwar sowohl von dem fehlerhaften Verarbeitungssatz als auch von einem guten bzw. korrekt arbeitenden Verarbeitungssatz. Die Software wird so eingestellt, daß sie die gespeicherten Inhalte des Logikanalysators interpretiert und den ersten Unterschied zwischen den Verarbeitungssätzen in den Logikanalysatorspuren findet. Unter Verwendung dieser Spuren kann sie herausarbeiten, welches Modul M0-M3, IOM in den Verarbeitungssätzen 10, 11, 12 das betreffende Signal in diesem Takt getrieben hat. Dieses Verarbeitungsmodul M0- M3, IOM ist dann als das fehlerhafte erkannt. In der vorliegenden Ausführungsform wird der Spuranalysator in Form von Software auf dem Voter 17 implementiert.
  • Irgendein Unterschied in der Betriebsweise der Verarbeitungssätze 10, 11, 12 zu irgendeiner Zeit, sei sie unmittelbar sichtbar oder nicht, kann zu irgendeiner späteren Zeit zu einem Unterschied führen, der offensichtlich wird. Ein Fehler in irgendeinem internen Signal eines Verarbeitungsmoduls M0-M3, IOM, welcher nicht für einen Logikanalysator LA sichtbar ist, kann den intern gespeicherten Zustand dieses Moduls M0-M3, IOM verändern. Zu irgendeinem viel späteren Zeitpunkt kann das Modul M0-M3, IOM an seinem Ausgang einen sichtbaren Unterschied erzeugen, und zwar wegen der Veränderung in dem internen Zustand. Wenn jedoch der Fehler kürzlich oder vor längerer Zeit aufgetreten ist, sei es nun, daß er an den Ausgangssignalen der Module M0-M3, IOM oder tief im Inneren aufgetreten ist, sö ist er immer noch spezifisch für das betreffende Modul M0-M3, IOM und kein anderes. Sobald der Fehler am Ausgang sichtbar wird, kann das fehlerhafte Modul M0-M3, IOM identifiziert werden.
  • Ein kritischer Punkt besteht darin, die Logikanalysatoren LA auszulösen, wenn der erste divergente Vorgang am Ausgang eines Verarbeitungsmoduls auftritt. Die Verarbeitungsmodule M0- M3, IOM stehen jedoch in Kommunikationsverbindung miteinander und schicken nicht jeden Ausgangswert durch das I/O-Modul an den Voter (Bewerter) 17. Wenn irgendein Unterschied unentdeckt bleiben kann, so kann er eine gewisse Störung bzw. einen Aufstau in dem intern gespeicherten Zustand eines perfekt funktionierenden Verarbeitungsmoduls bewirken. Zu irgendeinem späteren Zeitpunkt könnte dieser veränderte Zustand eine divergente Ausgangsgröße hervorrufen, welche die Analysatoren LA triggern bzw. auslösen würde und das falsch arbeitende Modul M0-M3, IOM könnte als fehlerhaft diagnostiziert werden. Das Vergleichen jedes Ausgangswertes jedes Moduls bei jedem Takt mit seinem Zwilling in den anderen Verarbeitungssätzen ist typischerweise kein praktikabler Ansatz - die benötigte Bandbreite würde immens sein.
  • Eine Ausführungsform der Erfindung ermöglicht es, daß die Logikanalysatoren LA getriggert bzw. ausgelöst werden, wenn der erste Unterschied auftritt, ohne daß für den Vergleich viel Bandbreite verwendet wird.
  • In einer Ausführungsform der Erfindung können die Logikanalysatoren LA in den Verarbeitungssätzen alle Ausgänge der Verarbeitungsmodule M0-M3, IOM beobachten. Eine Ausführungsform der Erfindung ermöglicht es, daß die Logikanalysatoren ausgelöst werden, wenn die Eingangswerte für einen Analysator von denen in einen anderen Analysator unterschiedlich sind, ohne daß ein direkter Vergleich aller Signale verwendet wird. Um dieses zu erreichen, transformiert eine Ausführungsform der Erfindung die Eingangswerte für den Analysator in eine Signatur und vergleicht dann die Signaturen.
  • Die Signatur liefert eine digitale Variable, die in komplexer Weise von den Eingangswerten für die Signatur abhängig ist. Es gibt eine hohe Wahrscheinlichkeit, daß irgendein vernünftigerweise unterschiedliches Muster von Eingangswerten eine unterschiedliche Signatur erzeugt. Dies ist erforderlich, damit man keine divergente bzw. fehlerhafte Betriebsweise verpaßt, wenn die Signaturen verglichen werden. Das Bereitstellen eines Signaturgenerators, welcher eine Signatur erzeugt, die von allen vergangenen ebenso wie von allen aktuellen Eingangswerten in den Logikanalysator abhängig ist, erlaubt den Vergleich von Signaturen mit einer Rate bzw. Geschwindigkeit, die geringer ist als eine Signatur pro Takt. Selbst ein Unterschied in nur einem Bit verursacht eine Störung des intern gespeicherten Zustandes der Signatur, der bis zum nächsten Vergleich der Signaturen zwischen den Verarbeitungssätzen erhalten bleibt. Im folgenden wird eine Signatur, die die Eigenschaft hat, daß sie eine hohe Wahrscheinlichkeit eines Unterschiedes liefert, als "robuste" Signatur bezeichnet.
  • Eine robuste Signatur kann auf unterschiedliche Weisen erzeugt werden. In einer bevorzugten Ausführungsform der Erfindung wird ein Schieberegister mit linearer Rückkopplung als Basis eines Signaturgenerators verwendet. Das Buch "Logic Design Principles: with emphasis an testable semicustom circuits" (Prinzipien logischer Entwürfe: mit Betonung auf überprüfbaren, teilweise angepaßten Schaltkreisen) von McCluskey, Edward J., Prentice-Hall, 1986 (ISBN 0-13-539768-5) beschreibt einen Signaturgenerator (PISG) mit parallelem Eingang, der pro Takt ein Eingangswort aufnehmen kann.
  • Fig. 5 veranschaulicht ein Beispiel eines Signaturgenerators (PISG) mit parallelem Eingang, der ein Schieberegister 40 mit linearer Rückkopplung verwendet. Das Schieberegister 40 mit linearer Rückkopplung, welches in Fig. 5 dargestellt ist, weist eine Mehrzahl von Pufferstufen 42 auf, die jeweils eine Verriegelung bzw. einen Schalter 44 und ein "ausschließlich-oder"-Gatter 46 aufweisen. Ein Eingang jedes EXOR-Gatters 46 ist mit dem Ausgang der entsprechenden Verriegelung 44 verbunden und der andere Eingang ist mit einem entsprechenden Bit des Ausgangs von einem der Module M0-M3 des Verarbeitungssatzes 10, 11 oder 12 verbunden. Demnach wird ein paralleles Wort mit jedem Takt in das Schieberegister 40 mit parallelem Eingang und linearer Rückkopplung eingegeben und wird mit jedem Takt weiter verschoben. Die Ausgangssignatur wird am Ausgang eines weiteren EXOR-Gatters 48 geliefert. Damit die Ausgangssignatur von den aktuellen und allen vorhergehenden Eingaben in einer komplexen Art und Weise abhängig ist, nimmt das EXOR-Gatter 48 Anzapfungen von ausgewählten Ausgangswerten einer D-Typ-Verriegelung auf. Die Anschlüsse sind in Fig. 5 nicht dargestellt. Mit dem Schaltkreis nach Fig. 5 gibt es, wenn der Signaturgenerator für ein N-Bit-Eingangswort ausgelegt ist, eine Verzögerung von bis zu n Takten, bevor eine Veränderung am Eingang den Bitstrom am Ausgang beeinflußt. Es ist vorteilhaft, diese Verzögerung minimal zu machen. Dies ist möglich unter Verwendung einer zweidimensionalen Version des Signaturgeneratorschaltkreises mit parallelem Eingang. Fig. 6 zeigt einen PISG- Schaltkreis 50, der eine maximale Verzögerung von 64 Takten vom Eingang bis zum Ausgang für ein 1024-Bit-Eingabewort hat. In dem Schaltkreis können mehr Dimensionen verwendet werden, um noch kürzere Verzögerungen zu erhalten. Der PISG 50 weist eine Mehrzahl (z. B. 32) Signaturgeneratoren 52 mit parallelem Eingang (die beispielsweise jeweils durch ein 32-Bit-Schieberegister 40 mit linearer Rückkopplung gebildet werden wie in Fig. 5), deren Ausgänge mit entsprechenden Eingängen eines weiteren Signaturgenerators 54 mit parallelem Eingang (beispielsweise ebenfalls durch ein 32-Bit-Schieberegister 40 mit linearer Rückkopplung wie in Fig. 5 gebildet) zugeführt. Die Signatur kann durch den Bitstrom 56 am Ausgang des Schaltkreises gemäß Fig. 6 gebildet werden. Alternativ können die Inhalte des letzten 32-Bit-PISG 54, parallel genommen, verwendet werden, um die Signatur zu bilden. Diese beiden Alternativen haben effektiv denselben Informationsgehalt. Um den Schaltkreis für den Vergleich der Betriebsweise zweier Lockstep- Verarbeitungssysteme zu vergleichen, sind die parallelen Eingänge des Signalgenerators mit allen zu vergleichenden Signalen verdrahtet. Mit jedem Takt der Schaltkreise wird eine Signatur in dem PISG 50 aufgebaut, die von dem genauen Verhalten der Eingänge bzw. Eingaben abhängig ist. Die genaue Beziehung zwischen den Eingangswerten und der erzeugten Signatur ist kompliziert, jedoch gibt es für einen robusten Generator eine sehr hohe Wahrscheinlichkeit, daß ein Unterschied in den Eingangsgrößen zu einer unterschiedlichen Signatur führt. In den Vergleich wird eine viel geringere Bandbreite benötigt wegen der Komprimierung der Information beim Betrieb jeder Komponente des Verriegelungsschrittsystems. Die Signaturen der Verarbeitungssätze können verglichen werden. Wenn die Signaturen sich unterscheiden, so kann daraus abgeleitet werden, daß die Verarbeitungssätze definitiv nicht im Lockstep-Betrieb arbeiten.
  • Fig. 7 veranschaulicht ein Beispiel der Erfindung, in welchem ein Signaturvergleichsschaltkreis 62 in dem Bewerter 17 den Ausgang von dem Signaturgenerator 74 in jedem der Lockstep- Teilsysteme (Prozessorsätze) empfängt. Der Ausgang des Signaturvergleichsschaltkreises 62 wird so angeschlossen, daß er die Logikanalysatoren 76 in jedem der Verarbeitungssätze 10, 11, 12 triggert. Die Signaturgeneratoren übertragen einen Unterschied der Eingangswerte innerhalb einer bekannten Anzahl von Takten auf den Signaturausgang. Dementsprechend kann durch Bereitstellen der Logikanalysatoren 76 mit einem Speicherraum für zumindest diese Anzahl von Takten vor dem Triggerereignis sichergestellt werden, daß die Analysatorspuren für jeden der Logikanalysatoren den ersten Unterschied in dem Betrieb zwischen den Lockstep-Teilsystemen enthalten. Dies ermöglicht es, mit einem hohen Grad an Sicherheit (Confidence), daß die Software oder Hardware nach dem ersten Unterschied sucht und das Verarbeitungsmodul lokalisiert, welches die ersten fehlerhaften Daten ausgesandt hat.
  • Der Vergleich von Signaturwerten kann unter Verwendung desselben Datenpfades durchgeführt werden, wie er für normale Computer-I/O (Inputs/Outputs) verwendet wird. 32-Bit-Signaturen können von jedem Lockstep-Teilsystem über diesen Pfad an den Bewerter 17 geschickt werden. Der Bewerter 17 hat eine Logik für das Vergleichen von parallelen Datenwerten auf Gleichheit. Dieselbe Logik kann verwendet werden, um Signaturen zu vergleichen. Die Signaturworte sind mit einem Spezialcode etikettiert, welcher anzeigt, daß sie Signaturen und keine normalen I/O sind. Die Logik des Bewerters 17 vergleicht daher nur die Werte und überträgt Signaturen nicht als I/O- Befehle. In einer bevorzugten Ausführungsform der Erfindung muß dies nicht mit jedem Takt geschehen oder nicht einmal jeweils nach 32 Takten. Signaturwerte hängen von der gesamten Historie der Eingangswerte in den PISG 50 ab. Zwischen Vergleichen kann eine gewisse Zeit vergehen, mit einem Unterschied in den Eingaben in zwei PISGs 50 in der Mitte dieser Zeitdauer. Wenn die Signaturen am Ende der Zeitdauer verglichen werden, so zeigen sie noch immer einen Unterschied aufgrund der Abhängigkeit von zuvor erzeugten Signalen. Diese Eigenschaft kann verwendet werden, um die für den Vergleich erforderliche Bandbreite noch weiter zu reduzieren.
  • Man betrachte die Lockstep-Teilsysteme eines fehlertoleranten Computers mit 1024 Eingängen bzw. Eingangswerten, die mit dem Logikanalysator/PISG-Schaltkreis in jedem Lockstep- Teilsystem verbunden sind, wobei jeder Eingang bzw. jede Eingabe an jeder Flanke eines 100 MHz- Taktes definiert ist. Dies entspricht grob einer Bandbreite von 100 GBits/Sekunde. Der PISG komprimiert die 1024 Eingangssignale in eine 32-Bit-Signatur, die sich ebenfalls mit jedem Takt verändert. Wollte man dies bei jedem Takt vergleichen, so würde man 3,2 GBits/Sekunde benötigen. Wenn die Signatur jedoch nur alle 1000 Takte (10 us) verglichen wird, so reduziert sich die Bandbreite auf nur 3,2 MBits/Sekunde, was im Vergleich zu den aktuellen I/O-Bandbreiten von Computern eine "Fußgängergeschwindigkeit" ist. Diese Verzögerung beim Vergleich von Signaturen vergrößert den Bedarf an Speicher in den Logikanalysatorabschnitten des Schaltkreises. Wenn der PISG seinen Eingang auf seinen Ausgang in im schlechtesten Fall 64 Takten überträgt und wenn es eine zusätzliche Verzögerung von bis zu 1000 Takten beim Vergleich gibt, so müssen die Logikanalysatoren zumindest 1064 Eingangsdatenworte vor ihrem Triggerereignis speichern. Dies ist keine ungewöhnliche Speichertiefe für Logikanalysatorschaltkreise. Demnach kann der Signaturvergleich und der Logikanalysatorauslösevorgang die standardmäßigen I/O-Anschlüsse zu dem Bewerter verwenden, ohne daß viel von der insgesamt verfügbaren I/O-Bandbreite verwendet wird.
  • Es ist auch möglich, einen vollständig unabhängigen Pfad für den Signaturvergleich und die Auslösesignale des Logikanalysators zu verwenden. Dies kann bei einer Ausführungsform zweckmäßig sein, bei welcher die Lockstep-Teilsysteme in eine einzelne Hauptplatine eingesteckt sind, so daß die zusätzlichen Kosten zusätzlicher Verbindungen klein sind. Es ist dann möglich, die Signaturen bitweise mit einem Bit pro Takt zu vergleichen, mit nur geringer zusätzlicher Hardware und geringen Verzögerungen, was die erforderliche Logikanalysatortiefe verkürzt.
  • Die Zerlegung eines Lockstep-Teilsystems in mehrere deterministische Module, die in Fig. 2 dargestellt ist, kann auf eine noch weitergehende Feinheit bzw. Feinkörnigkeit ausgedehnt werden. Für die Wartung ist das austauschbare Modul die zweckmäßige Analyseeinheit, wie in Fig. 2 dargestellt ist. Alles, was man benötigt, ist die Identifizierung des Moduls, welches unterschiedlich gearbeitet hat, so daß ein Wartungstechniker es durch ein richtig arbeitendes Modul austauschen kann. Für die Systementwicklung für eine genaue Analyse von Feldfehlern auf Chipniveau und darüber hinaus kann das Logikanalysator/PISG-Schema innerhalb individuell einsteckbarer Module angewendet werden. In der Tat ist es außerordentlich praktisch, einen Logikanalysator und einen Signaturgenerator in individuelle Chips zu integrieren, so daß die Chips selbst im Falle einer Chipfehlfunktion eine diagnostische Information liefern können.
  • Fig. 8 zeigt, wie die zusätzliche Logik ohne allzugroßen Nachteil in einen konventionellen Chip 80 integriert werden kann. Für den Signaturausgang eines einzelnen Chips wird ein einziger neuer Stift bzw. Anschluß 81 hinzugefügt. Die Signatur wird seriell übermittelt und kann direkt an einen Vergleicherschaltkreis gesendet werden oder sie kann als Eingabe für einen weiteren PISG- Schaltkreis verwendet werden, um die Bandbreite des Komparators bzw. Vergleichers zu reduzieren. Die Hauptchipschaltkreise 87 haben Chipeingänge 88 und -ausgänge 89. Der Signaturgenerator 86 ist so angeschlossen, daß er die Ausgänge 89 von den Hauptchipschaltkreisen 87 aufnimmt. Die Signatur wird durch einen Signaturrückstellstift 82 auf einen vorbestimmten Wert zurückgesetzt. Dies ermöglicht es, daß die Signaturen für die verschiedenen Lockstep-Module synchron beginnen. Der Signaturrückstellstift 82 kann mit einem konventionellen Rückstelleingang für den Chip 80 gemeinsam verwendet werden. Der Logikanalysator 83 wird durch den JTAG-Testanschluß 84 des Chips gesteuert. Viele Chips haben inzwischen JTAG-Testanschlüsse für die Überprüfung der Funktion und der Anschlüsse der Stifte bzw. Kontakte in dem Schaltkreis und das Hinzufügen einer Möglichkeit oder Fähigkeit zur Kontrolle und zum Auslesen des Logikanalysators 83 erfordert keine neuen Anschlußstifte. Der Triggereingang 85 des Logikanalysators 83 kommt von der Vergleichslogik und wird vorgebracht bzw. ausgegeben, wenn eine Nichtübereinstimmung der Signatur vorliegt.
  • Der Schaltkreis gemäß Fig. 8 zeigt, wie der Logikanalysator/PISG (LA/PISG)-Schaltkreis nur mit den Ausgängen 89 des Chips verbunden ist. Dieses ist angemessen unter der Voraussetzung, daß alle Chips in dem System diese zusätzliche Ausstattung haben und daß die Ausgänge bzw. Ausgangswerte eines Chips korrekt übertragen werden, so daß sie Eingangswerte für andere Chips werden. Eine vollständigere Abdeckung erhält man, indem man die LA/PISG-Eingänge alle synchronen I/O-Anschlußstifte 88 und 89 des Chips abfragen läßt. Dies kann es dem Chip ermöglichen, Informationen über andere Chips auf der Platine bereitzustellen, die keine LA/PISG- Schaltkreise haben. Eine ziemlich gute Abdeckung des größten Teils eines konkreten Modells kann man erhalten, wenn nur etwa die Hälfte der Chips LA/PISG-Schaltkreise aufweisen.
  • Die Verwendung von LA/PISG-Schaltkreisen innerhalb eines Verarbeitungsmoduls liefert ein ausgezeichnetes Verfahren der Diagnose von selten bzw. nur ab und zu auftretenden Chipfehlern. Einige der kommerziell schädlichsten Computerfehler sind diejenigen, die einzelne Chips gelegentlich beeinflussen wegen Empfindlichkeit auf Rauschen bzw. Störungen, Temperatureffekte und dergleichen. Die Auftretenshäufigkeiten für derartige Fehler können z. B. bei nur einem Fehler in mehreren Monaten liegen und dennoch können diese Fehler den Gewinn bzw. die Profitabilität erheblich beeinträchtigen. Da diese Fehler so selten sind, sind sie außerordentlich schwierig zu lokalisieren und zu beseitigen. Dies gilt auch für Systeme, die auf Lockstep-Fehler tolerant sind, jedoch ist dies der Bereich, in dem das Maximum an Zuverlässigkeit und Diagnostizierbarkeit erforderlich ist.
  • LA/PISG-Schaltkreise können wegen der niedrigen Stift- bzw. Anschlußanzahl und Bandbreitenerfordernisse Fehler exakt bis herab zu dem individuellen Gateniveau innerhalb eines Chips anzeigen. Die Logikanalysator- und Signaturgeneratorschaltkreise können Schlüsselsignale innerhalb von Chips erfassen, die an I/O-Anschlüssen nicht verfügbar sind, um verborgene Fehler in der Logikauslegung oder hinsichtlich der Rauschunempfindlichkeit zu lokalisieren. Hunderte oder Tausende von Signalen können zwischen zwei Lockstep-Chips und die dafür getriggerten Logikanalysatoren mit lediglich einigen wenigen zusätzlichen I/O-Anschlußstiften verglichen werden.
  • Alle Signaturgeneratoren, die verglichen werden sollen, müssen von einem vorbestimmten Zustand aus mit derselben Taktflanke beginnen (sie müssen synchronisiert sein). Darin besteht ein wohlverstandenes Problem bei Entwürfen der Lockstep-Fehlertoleranz. Vollständige Lockstep- Teilsysteme müssen in einen konsistenten Zustand zurückgesetzt werden, so daß sie synchron laufen. Es gibt viele Arten, dies geschehen zu lassen. Eine sehr praktische Methode besteht darin, gegenüber jedem Chip, der eine Zustandsinformation enthält, Rücksetzeingaben vorzubringen. Wenn eine Rücksetzung vorgebracht und synchron mit dem Takt auf allen Teilsystemen negiert wird, die überall mit derselben Taktflanke synchron laufen sollen, so befinden sich die Teilsysteme in demselben Zustand. Genau das gleiche gilt auch für die LA/PISG-Schaltkreise, die als eine Erweiterung der gewöhnlichen Lockstep-Module angesehen werden können.
  • Zu berücksichtigen sind nicht deterministische Signale. Es ist des öfteren zweckmäßig, wenn man zuläßt, daß einige Signale in einem Computersystem undefiniert bleiben. Ein routinemäßiges Beispiel ist der unbenutzte Bereich eines Datenbusses, der für ein partielles Schreiben verwendet wird. Nur die Datenbusstifte, welche den Datenbits entsprechen, die geschrieben werden, werden definiert und die anderen Stifte haben unbestimmte Daten und können in zwei Lockstep- Teilsystemen verschieden sein.
  • Da die hier in Rede stehenden Computer gegen Lockstep-Fehler tolerant sind, haben sie tendenziell wenige unbestimmte Signale. Die vorhandenen unbestimmten Signale müssen durch die Bewertungsschaltkreise ignoriert werden. Dies kann beispielsweise durch Untersuchung der Byte- Takte bei einem Busschreibevorgang geschehen, um herauszufinden, welche Datenbusbits gültig sind und welche ausgesondert werden sollten.
  • Unbestimmte Signale in Logikanalysatorspuren müssen in der Suche nach dem ersten Unterschied ausgesondert werden. Dies kann entweder durch Software geschehen, die die Spur nach einem Auslöseereignis interpretiert, oder durch Hardware, die den Wert der gespeicherten Eingabe fixiert, wenn sie aufgenommen wird. Diese Wahlmöglichkeit steht jedoch nicht zur Verfügung, wenn die Signaturen erzeugt werden sollen. Jegliche unbestimmte Dateneingaben in den Signaturgenerator resultieren innerhalb sehr kurzer Zeit in einem Signaturvergleichsfehler. Dies kann durch die Software nicht rückgängig gemacht werden. Daher muß der Signaturgenerator mit sauberen Daten gefüttert werden, bei weichen jegliche unbestimmte Werte durch logische Untersuchung und Interpretation während der Eingabe herausgefiltert werden.
  • Die eingebauten Logikanalysatoren können für andere Zwecke verwendet werden. Dies ist vorteilhaft, da Logikanalysatoren ziemlich teure Teile darstellen. Der konventionelle Gebrauch eines Logikanalysators in Computermodellen liegt in dem Debugging von Software während der Entwicklung. Der eingebaute Logikanalysator kann für diesen Zweck so lange verwendet werden, wie er mit einer zusätzlichen Trigger-Fähigkeit ausgestattet ist. Das Triggern unter Softwaresteuerung ist für die meisten Fälle von Debugging angemessen.
  • Wenn der LA/PISG-Ansatz verwendet wird, um während der Laufzeit (das heißt im Betrieb) Modulfehler zu lokalisieren, so laufen die Logikanalysatoren andauernd beim Kunden bzw. Verbraucher. Sie sind demnach zweckmäßig für das Einfangen von Spuren von Softwarefehlern. Software kann so programmiert werden, daß sie die Analysatoren automatisch auslöst, wenn die Software irgendein Problem erfaßt. Es ist selbstverständlich ohne weiteres möglich, daß ein solches Problem gleichzeitig auf den Lockstep-Teilsystemen synchron geschieht, so daß es ohne den Eingriff der Software die Analysatoren nicht auslösen würde.
  • Für die Zwecke der Softwarediagnose ist es zweckmäßig, weniger Zyklen in dem Logikanalysator einzufangen, um bei derselben Speichertiefe des Analysators die Einfangdauer über längere Zeitperioden zu erstrecken. Es ist möglich, dieses zu tun, indem Eingangsdaten nur dann aufgenommen bzw. eingefangen werden, wenn die Eingangsleitungen aktiv sind, vielleicht wenn ein Buszyklus läuft, und die Eingangsleitungen zu ignorieren, wenn die Eingänge sich im Leerlauf befinden. Um sicherzustellen, daß mit derselben Taktflanke in den Lockstep-Teilsystemen dieselben Daten bewegt werden, muß dann eine Zeitmarke bzw. ein Zeitstempel sowohl den Logikanalysator- als auch den Signaturgeneratoreingängen hinzugefügt werden. Dieser Zeitstempel kann einfach ein Zähler sein, der mit jedem Takt einen Schritt weiterzählt. Wenn die Lockstep-Teilsysteme aufgrund irgendeines fehlerhaften Betriebes dieselben Daten bei unterschiedlichen Takten aufnehmen, so decken die unterschiedlichen Zeitstempel unmittelbar den Fehler auf.
  • Es können Maßnahmen vorgesehen werden, um die Gefahr einer Fehldiagnose zu vermindern. Es gibt verschiedene Wege, auf welchen die automatisierte Diagnose in die Irre laufen kann. Einige davon können durch die Hinzufügung von Merkmalen zu der Software umgangen werden.
  • Irgendeine geeignete Technik (beispielsweise die Majoritätsbewertung) kann verwendet werden, um den fehlerhaften Verarbeitungssatz auszuwählen. Die Auswahl des Verarbeitungssatzes, welcher das fehlerhafte Modul enthält, bildet nicht den Gegenstand der Erfindung, stattdessen bezieht sich die Erfindung auf die Auswahl desjenigen Verarbeitungsmoduls innerhalb eines Verarbeitungssatzes, welches fehlerhaft ist, und zwar nachdem man die Entscheidung über den fehlerhaften Verarbeitungssatz getroffen hat. Es ist möglich, daß das Verfahren zur Auswahl des fehlerhaften Verarbeitungssatzes einen Fehler darstellte und daß der falsche Verarbeitungssatz ausgewählt worden ist. Der LA/PISG-Ansatz wird einen Unterschied in der Arbeitsweise finden und ein Verarbeitungsmodul als fehlerhaft identifizieren. Es kann das richtige Modul sein, jedoch in dem falschen Verarbeitungssatz. Dieser Fehler ist wahrscheinlicher in Systemen mit zweifach modularer Redundanz (DMR), in welchen der falsche Verarbeitungssatz als der weiter bestehende ausgewählt werden kann.
  • Um diesem Problem zu begegnen, kann die Diagnosesoftware so ausgelegt werden, daß sie die Möglichkeit bewertet, daß der falsche Verarbeitungssatz als derjenige, der weiterlaufen soll, ausgewählt worden ist, und um eine weitere Anleitung zu geben. Sie kann so ausgelegt werden, daß sie auf statistischer Basis berichtet. Beispielsweise kann sie anfänglich berichten: "Ich nehme an, daß Modul 2 im Verarbeitungssatz 10 defekt ist, es gibt jedoch auch die Möglichkeit, daß das Modul 2 in Verarbeitungssatz 11 ist." Durch Aufbewahren der Historie ihrer Analysen kann die Software möglicherweise in die Lage versetzt werden zu schließen, daß dann, wenn Modul 2 in dem Verarbeitungssatz 11 wiederholt fehlerhaft zu sein scheint, obwohl er ausgetauscht worden ist, das Problem tatsächlich bei Modul 2 im Verarbeitungssatz 10 liegt und die Software sollte dieses versuchen.
  • Der LA/PISG-Ansatz ist darauf gerichtet, das Modul zu identifizieren, welches die fehlerhaften Daten übermittelt hat. Wenn die Modulausgabe ein konventionelles Zweizustandssignal ist, wird die Software das Modul als fehlerhaft etikettieren, wenn das Signal einen Fehler aufweist. Dies schließt jedoch die Möglichkeit aus, daß irgendein anderes Modul einen übermäßigen Strom auf der Ausgangsleitung ausgibt. Dies kann aufgrund eines einfachen mechanischen Kurzschlusses an den Verbindungen des Schaltkreises oder aufgrund der Tatsache auftreten, daß irgendein anderes Modul einen falschen Empfänger auf seinen Eingangsleitungen hat.
  • Die Diagnosefähigkeit kann verbessert werden durch die Suche nach mehreren Fehlern in einem einzelnen Wort. Mehrere Fehler werden mit geringerer Wahrscheinlichkeit durch einen einzigen Fehler in den Verbindungen, sondern wahrscheinlicher durch einen einzelnen Fehler innerhalb des Moduls verursacht. Wenn der Modulausgang drei Zustände hat oder ein offener Kollektorbus ist, so besteht eine größere Wahrscheinlichkeit mehrerer Fehler in einem Fall. Eine weitere Überprüfung besteht darin, innerhalb des Moduls zusammen mit den übermittelten Daten einen Fehlererfassungscode zu erzeugen. Wenn der Code richtig, der Ausgangswert jedoch fehlerhaft ist, so besteht zumindest eine gewisse Chance, daß das Problem in der Verbindung zu einem anderen Modul aber nicht innerhalb des identifizierten Moduls liegt. Wenn sowohl der Code als auch der Ausgang falsch sind, der Code jedoch mit dem Ausgangswert zusammenpaßt, so ist es ziemlich sicher, daß der Fehler innerhalb des identifizierten Moduls liegt. Für eine vernünftige Abdeckung wird hier mehr als nur die Parität eines Datenwortes benötigt, da die Parität ohnehin eine 50%-ige Wahrscheinlichkeit hat, richtig zu sein. Das Umwandeln bzw. Wenden jeder Signalleitung in ihren eigenen Selbstüberprüfungscode ist ein ausgezeichnetes Verfahren. Wenn die Signale verdrahtet oder als differentielle ECL-Paare übermittelt werden, so führt jeder kurzgeschlossene oder fehlerhafte Treiber nicht nur dazu, daß die falschen Daten übermittelt werden, sondern auch zu einem unmittelbar identifizierbaren Verbindungsproblem. Die Datenleitungen werden nicht als die normalen (0, 1 oder 1, 0) Paar- Werte übertragen. Ein solches Schema erfordert kein Verdoppeln der Größe des Logikanalysators und des Signaturgenerators. Die Fehlererfassungsschaltkreise können unter Überwachung der Ausgangssignale vorgesehen werden und die Ausgangswerte dieser Fehlererfassungsschaltkreise können Eingänge der LA/PISG-Schaltkreise versorgen. Nur einige wenige weitere Signale liefern die Abdeckung von Fehlern für alle beobachteten Signale.
  • Man beachte, daß es nicht wichtig ist, daß man Fehlererfassungscodes innerhalb eines austauschbaren Moduls hat. Es ist nur zweckmäßig, daß man Fehlererfassungscodes durch die Verbindungen zwischen den Modulen laufen läßt. Dies kann bei der Entscheidung helfen, ob das falsche Modul als fehlerhaft diagnostiziert wurde, da das Problem in der Verbindung und nicht in dem Modul liegt.
  • Ein weiterer Mechanismus für die Fehlerisolation verwendet das Überprüfen von Schaltkreisen am Ausgang der Module. Jedes Modul kann durch die Beobachtung überprüft werden, daß seine Ausgangssignale tatsächlich auf der Spannung liegen, die erwartet wird. Wenn das Modul einen Fehler erfaßt, so kann es eine einzelne gemeinsam verwendete Leitung bzw. Meldung ausgeben, die bedeutet "es liegt möglicherweise ein Verbindungs-, jedoch kein Modulproblem vor".
  • Es ist ein fehlertolerantes Computersystem beschrieben worden, welches eine Mehrzahl von Lockstep-Teilsystemen aufweist, die jeweils einen Signaturgenerator mit parallelem Eingang aufweisen, welcher für die Datenkomprimierung verwendet wird, um einen praktikablen Vergleich des Betriebs von internen Modulen des Lockstep-Teilsystems zu ermöglichen, sowie einen Logikanalysator aufweist, welcher die Ausgangswerte der internen Module des Lockstep-Teilsystems speichert, wobei der Analysator durch eine fehlende Übereinstimmung beim Vergleich der Signaturen ausgelöst bzw. getriggert wird und genügend Zustände speichert, um den ersten Unterschied zu umfassen, wobei ein Signaturvergleicher so angeschlossen ist, daß er die Signaturen von den Signaturgeneratoren der einzelnen Lockstep-Teilsysteme empfängt und der Lockstep-Generator bei der Erfassung eines Unterschiedes in den Signaturen ein Trigger-Signal für das Triggern der Logikanalysatoren erzeugt. Die Software sucht automatisch die Spuren des Logikanalysators nach einem außerhalb der Synchronisation liegenden Ereignis, um den ersten Unterschied in dem Betrieb bzw. der Operation zu finden. Die Software bestimmt, welches interne Modul den fehlerhaften Ausgangswert geliefert hat und kennzeichnet dieses Modul als defekt. Hinsichtlich Software und Hardware kann man die Auslegung so wählen, daß eine Verwechslung mit Fehlern, die in Verbindungen anstatt in den Modulen auftreten, vermindert oder beseitigt wird.
  • Das System kann auf die austauschbaren internen Module eines Lockstep-Computers als eine Wartungshilfe angewendet werden. Es kann außerdem wiederholt auf kleinere Einheiten angewendet werden, um fehlerhafte Chips oder sogar ein fehlerhaftes Gate innerhalb eines Chips zu identifizieren.
  • Der LA/PISG-Ansatz erlaubt mit einer sehr hohen Erfolgswahrscheinlichkeit die automatische Diagnose des fehlerhaften Moduls aus einem einzigen Fehlerereignis.
  • Ausführungsformen der Erfindung können realisiert werden durch Integration innerhalb eines integrierten Schaltkreises, da sie nur wenige Anschlüsse auf dem Chip verwendet. Sie erlaubt die automatische Diagnose von internen Chipfehlern auf Gateniveau, die auf andere Art und Weise vielleicht nicht möglich sind.
  • In den oben beschriebenen Ausführungsformen empfangen der Signaturgenerator und der Logikanalysator eines Verarbeitungssatzes alle Bits der Worte, die durch die Module des Verarbeitungssatzes ausgegeben werden. Ein besonderer Fall liegt jedoch vor, wenn ein Satz von Signalen ein Wort derart bildet, daß: (a) alle Signale in dem Satz in irgendeinem bestimmten Takt durch dasselbe Modul getrieben werden, und (b) die Signale durch den Spuranalysator niemals verwendet werden, um zu bestimmen, welches Modul irgendein anderes Signal getrieben hat. Dieses gilt oft für einen Datenbus. In diesem Fall ist es nicht notwendig, daß entweder der Signaturgenerator jedes einzelne Signal in dem Wort verwendet oder der Logikanalysator dieses speichert. Beispielsweise könnte ein 64-Bit-Wort auf einen 8-Bit-Wert komprimiert werden und immer noch eine Wahrscheinlichkeit von 250/256 liefern, daß ein Fehler in dem Eingangswort detektiert werden kann. Für Fälle, in welchen beide Bedingungen zutreffen, ist dies eine zweckmäßige Reduzierung der Komplexität des Schaltkreises.
  • Die Komprimierlogik kann für Worte vorgesehen werden, die von dem Bus genommen werden. Komprimierte Worte können als Eingaben für den Signaturgenerator oder den Logikanalysator oder für beide verwendet werden. Alternativ kann die Komprimierlogik in den Logikanalysator oder den Signaturgenerator inkorporiert sein oder in beide. Direkte Signale und komprimierte Worte können in demselben System verwendet werden, je nachdem, welches Signal beobachtet wird. Wenn eine Wortkomprimierungsfunktion verwendet wird, um die Größe des Eingangswortes entweder für den Signaturgenerator oder den Logikanalysator zu vermindern, muß das Herausfiltern unbestimmter Bits in dem Wort erfolgen, bevor das Wort an die Komprimierlogik gegeben wird. Es versteht sich, daß die potentielle Verwendbarkeit des Logikanalysators für das Debugging vermindert sein kann, wenn eine Eingangskomprimierung verwendet wird.
  • Auch wenn hier besondere Ausführungsformen der Erfindung beschrieben worden sind, so versteht es sich doch, daß die Erfindung nicht hierauf beschränkt ist und daß viele Modifikationen und/oder Zusätze innerhalb des Schutzumfanges der Erfindung vorgenommen werden können, wie er in den anhängigen Ansprüchen definiert wird. Beispielsweise können unterschiedliche Kombinationen der Merkmale der abhängigen Ansprüche mit den Merkmalen der unabhängigen Ansprüche kombiniert werden.

Claims (26)

1. Teilsystem für ein fehlertolerantes Computersystem mit einer Vielzahl von identischen Teilsystemen, die im Verriegelungsschritt (Lockstep) betreibbar sind, wobei das Teilsystem aufweist:
zumindest einen Modul mit einem Eingang und einem Ausgang,
einen Signaturgenerator, der parallele Eingänge und zumindest einen Ausgang hat, wobei der Eingang des Signaturgenerators so geschaltet ist, daß er Signale von dem Eingang und/oder dem Ausgang jedes Moduls empfängt und wobei der Signaturgenerator an seinem Ausgang bzw. Ausgängen eine komprimierte Signatur erzeugt, die eine Funktion der Signale ist, die er an seinen Eingängen empfangen hat, und
einen Logikanalysator, der so geschaltet ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt und speichert, wobei eine Logikanalysatorspur erzeugt wird.
2. Teilsystem nach Anspruch 1, wobei der Signaturgenerator so geschaltet ist, daß er komplette Worte empfängt, die von jedem Modul ausgegeben werden.
3. Teilsystem nach Anspruch 1 oder 2, wobei der Signaturgenerator die Signatur auf der Basis komprimierter Worte erzeugt, welche von Worten abgeleitet werden, die von jedem Modul ausgegeben werden.
4. Teilsystem nach einem der vorstehenden Ansprüche, wobei der Logikanalysator komprimierte Worte speichert, die von Worten abgeleitet werden, die von jedem Modul ausgegeben werden.
5. Teilsystem nach irgendeinem der vorstehenden Ansprüche, wobei der Logikanalysator einen Auslösereingang aufweist für den Empfang einer Auslöseeingabe, wobei der Logikanalysator auf eine Eingabe an dem Auslöseeingang in der Weise reagiert, daß er die gespeicherten Signale für eine Analyse zuführt.
6. Teilsystem nach Anspruch 5, wobei der Logikanalysator eine Speicherkapazität hat, die zumindest ausreichend ist, um alle Signale zu speichern, die während einer maximalen Verzögerung zwischen der Eingabe eines fehlerhaften Signals in den Signaturgenerator und einer Ausgabe von dem Signaturgenerator empfangen werden, die das fehlerhafte Signal wiedergibt, wodurch beim Auslösen des Logikanalysators das Fehlersignal immer noch in dem Logikanalysator gespeichert wird.
7. Teilsystem nach einem der vorstehenden Ansprüche, wobei der Signaturgenerator eine robuste bzw. widerstandsfähige Signatur erzeugt.
8. Teilsystem nach einem der vorstehenden Ansprüche, wobei der Signaturgenerator eine robuste Signatur erzeugt, die von allen aktuellen Eingaben und allen vorherigen Eingaben abhängig ist.
9. Teilsystem nach einem der vorstehenden Ansprüche, wobei der Signaturgenerator ein lineares Rückkopplungs-Schieberegister mit parallelem Eingang aufweist.
10. Teilsystem nach einem der vorstehenden Ansprüche, wobei der Signaturgenerator eine Mehrzahl von Schieberegistern mit linearer Rückkopplung und parallelem Eingang aufweist, die parallel zueinander angeordnet sind, wobei jedes aus der Mehrzahl von parallelen Schieberegistern einen seriellen Ausgang hat und wobei ein weiteres Schieberegister mit linearer Rückkopplung und parallelem Eingang mit jedem seiner parallelen Eingänge mit dem seriellen Eingang eines entsprechenden aus der Vielzahl paralleler Schieberegister verbunden ist.
11. Teilsystem nach Anspruch 10, wobei der Signaturgenerator eine parallele Ausgangsgröße hat, die von den entsprechenden Stufen des weiteren parallelen Schieberegisters abgenommen wird.
12. Teilsystem nach Ansprüch 10, wobei der Signaturgenerator einen seriellen Ausgang hat, der von einem seriellen Ausgang der weiteren parallelen Schieberegister abhängt.
13. Integrierter Schaltkreis mit einem Teilsystem nach einem der vorstehenden Ansprüche.
14. Integrierter Schaltkreis nach Anspruch 13 mit einem Signatur-Ausgangsstift.
15. Integrierter Schaltkreis nach Anspruch 13 oder 14, mit einem Rückstellknopf, der so mit dem Signaturgenerator verbunden ist, daß er den Generator auf eine vorbestimmte Eingangsgröße zurücksetzt.
16. Fehlertolerantes Computersystem, mit:
einer Mehrzahl identischer Teilsysteme nach einem der vorstehenden Ansprüche, wobei die Teilsysteme im Verriegelungsschritt (Lockstep) betreibbar sind, und
einem Signaturkomparator, der so angeschlossen ist, daß er die Ausgangsgrößen des Signaturgenerators jedes der Teilsysteme empfängt, wobei der Signaturkomparator einen Auslöseausgang hat, der mit einem Auslöseeingang des Logikanalysators in diesem Teilsystem verbunden ist und beim Erfassen eines Vergleichsfehlers zwischen den Signaturen ein Auslösesignal erzeugt.
17. Integrierter Schaltkreis mit einem System nach Anspruch 16.
18. Verfahren zum Identifizieren eines fehlerhaften Moduls in einem Teilsystem eines fehlertoleranten Computersystems, wobei das fehlertolerante Computersystem eine Vielzahl identischer Teilsysteme aufweist, die im Verriegelungsschritt (Lockstep) betreibbar sind, und wobei jedes Teilsystem zumindest einen Modul aufweist, der einen Eingang und einen Ausgang hat, wobei das Verfahren die Schritte aufweist:
a) Erzeugen einer Signatur in einem Signaturgenerator mit parallelem Eingang, der so geschaltet ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt, wobei die Signatur eine komprimierte Funktion der Eingaben in den Signaturgenerator sind,
b) Erzeugen einer Logikanalysatorspur einschließlich der Speicherung von Signalen in einem Logikanalysator, der so angeschlossen ist, daß er Signale von dem Eingang und/oder Ausgang jedes Moduls empfängt,
c) Vergleichen der Ausgangsgrößen der Signaturgeneratoren jedes Teilsystems in einem Signaturkomparator,
d) Auslösen des Logikanalysators in jedem Teilsystem beim Erfassen einer Vergleichsabweichung zwischen den Signaturen, und
e) Vergleichen der Signale, die in jedem Logikanalysator gespeichert sind, um einen ersten Unterschied zwischen den gespeicherten Signalen als Anzeige eines fehlerhaften Moduls zu bestimmen.
19. Verfahren nach Anspruch 18, wobei in einem Teilsystem entweder der Signaturgenerator mit parallelem Eingang oder der Signaturgenerator oder beide so angeschlossen sind, daß sie vollständige Worte empfangen, die von jedem Modul des Teilsystems ausgegeben werden.
20. Verfahren nach Anspruch 18 oder 19, wobei in Schritt a) die Signatur erzeugt wird auf Basis der komprimierten Worte, die von Worten abgeleitet wurden, welche von jedem Modul in dem Teilsystem ausgegeben wurden.
21. Verfahren nach einem der Ansprüche 18 bis 20, wobei in Schritt b) der Logikanalysator komprimierte Worte speichert, die von Worten abgeleitet werden, welche von jedem Modul des Teilsystems ausgegeben werden.
22. Verfahren nach einem der Ansprüche 18 bis 21, wobei Schritt a) das Erzeugen einer robusten Signatur aufweist.
23. Verfahren nach einem der Ansprüche 18 bis 22, wobei Schritt a) das Erzeugen einer robusten Signatur aufweist, die von allen aktuellen und allen vorhergehenden Eingaben abhängt.
24. Verfahren nach einem der Ansprüche 18 bis 23, wobei Schritt a) das Bereitstellen einer parallelen Signatur aufweist, mit einem Wort, welches von den jeweiligen Stufen eines Schieberegisters mit linearer Rückkopplung und parallelem Eingang genommen wird.
25. Verfahren nach einem der Ansprüche 18 bis 23, wobei Schritt a) das Bereitstellen einer seriellen Signatur aufweist mit einer Serie von Bits, die von einem seriellen Ausgang eines Schieberegisters mit linearer Rückkopplung und parallelem Eingang entnommen wird.
26. Verfahren nach einem der Ansprüche 18 bis 25, wobei Schritt e) aufweist:
Analysieren der Signale, die in jedem Logikanalysator gespeichert sind, um einen ersten Unterschied in der Betriebsweise zu lokalisieren,
Feststellen, welches interne Modul offensichtlich eine fehlerhafte Ausgangsgröße geliefert hat und Kennzeichnen des Moduls als fehlerhaft.
DE69706245T 1996-07-01 1997-06-19 Lokalisierung eines fehlerhaften Moduls in einem fehlertoleranten Rechnersystem Expired - Fee Related DE69706245T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/675,264 US5799022A (en) 1996-07-01 1996-07-01 Faulty module location in a fault tolerant computer system

Publications (2)

Publication Number Publication Date
DE69706245D1 DE69706245D1 (de) 2001-09-27
DE69706245T2 true DE69706245T2 (de) 2002-05-08

Family

ID=24709725

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69706245T Expired - Fee Related DE69706245T2 (de) 1996-07-01 1997-06-19 Lokalisierung eines fehlerhaften Moduls in einem fehlertoleranten Rechnersystem

Country Status (4)

Country Link
US (2) US5799022A (de)
EP (1) EP0817052B1 (de)
JP (1) JPH10116258A (de)
DE (1) DE69706245T2 (de)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US6141769A (en) 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6137796A (en) * 1996-06-28 2000-10-24 Motorola, Inc. Packet non-replicating comparator device for digital simulcast packet distribution
US5923830A (en) * 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
US5953352A (en) * 1997-06-23 1999-09-14 Micron Electronics, Inc. Method of checking data integrity for a raid 1 system
DE19832060C2 (de) * 1998-07-16 2000-07-06 Siemens Ag Doppelbare Prozessoreinrichtung
US6357024B1 (en) * 1998-08-12 2002-03-12 Advanced Micro Devices, Inc. Electronic system and method for implementing functional redundancy checking by comparing signatures having relatively small numbers of signals
US6810037B1 (en) * 1999-03-17 2004-10-26 Broadcom Corporation Apparatus and method for sorted table binary search acceleration
US6282596B1 (en) 1999-03-25 2001-08-28 International Business Machines Corporation Method and system for hot-plugging a processor into a data processing system
US6278302B1 (en) * 1999-06-03 2001-08-21 Agere Systems Guardian Corp. Digital power-up reset circuit
SE516542C2 (sv) * 1999-07-01 2002-01-29 Ericsson Telefon Ab L M Metod och anordning för övervakning av parallella processer
US6564347B1 (en) * 1999-07-29 2003-05-13 Intel Corporation Method and apparatus for testing an integrated circuit using an on-chip logic analyzer unit
SE523412C2 (sv) * 2000-03-20 2004-04-20 Jokab Safety Ab Programmerbart säkerhetssystem
CN1099638C (zh) * 2000-06-07 2003-01-22 北京和利时系统工程股份有限公司 一种实现计算机系统容错的方法
TW542969B (en) * 2001-04-06 2003-07-21 Penbex Data Systems Inc Software diagnostic system and method
EP1425666A2 (de) * 2001-08-28 2004-06-09 Siemens Aktiengesellschaft Baugruppe, fehlertolerantes system sowie diagnoseverfahren
US7107515B2 (en) * 2001-09-14 2006-09-12 The Boeing Company Radiation hard divider via single bit correction
DE10146695B4 (de) * 2001-09-21 2015-11-05 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Übertragung von Nachrichten zwischen Busteilnehmern
US20030079165A1 (en) * 2001-10-23 2003-04-24 Niall Ffrench Effective use of parallel scan for identically instantiated sequential blocks
GB2383437B (en) * 2001-12-20 2004-02-04 Sun Microsystems Inc System trace unit
JP2003316599A (ja) * 2002-02-22 2003-11-07 Seiko Epson Corp 集積回路
US7089473B2 (en) * 2002-03-29 2006-08-08 Intel Corporation Method and apparatus for testing a circuit using a die frame logic analyzer
JP2004046455A (ja) * 2002-07-10 2004-02-12 Nec Corp 情報処理装置
US20040073858A1 (en) * 2002-10-09 2004-04-15 Cheung Tyvis C. Method and apparatus for isolating faulty semiconductor devices in a graphics system
US6667520B1 (en) * 2002-11-21 2003-12-23 Honeywell International Inc. SEU hard majority voter for triple redundancy
US7181650B2 (en) * 2003-06-02 2007-02-20 Atmel Corporation Fault tolerant data storage circuit
DE10328059A1 (de) * 2003-06-23 2005-01-13 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung eines verteilten Systems
KR20060119913A (ko) * 2003-09-01 2006-11-24 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 집적회로, 데이터 검사 시스템, 비디오 처리 장치 및집적회로 검사 방법
US7584386B2 (en) 2004-04-21 2009-09-01 Stmicroelectronics Sa Microprocessor comprising error detection means protected against an attack by error injection
US7210111B1 (en) * 2004-05-04 2007-04-24 Hewlett-Packard Development Company, L.P. Systems and methods for conducting future signal checks
US7203879B2 (en) * 2004-06-22 2007-04-10 Northrop Grumman Corporation Built-in-test diagnostic and maintenance support system and process
US7328371B1 (en) 2004-10-15 2008-02-05 Advanced Micro Devices, Inc. Core redundancy in a chip multiprocessor for highly reliable systems
JP2006178636A (ja) 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP3897046B2 (ja) * 2005-01-28 2007-03-22 横河電機株式会社 情報処理装置および情報処理方法
US7516246B2 (en) * 2005-10-27 2009-04-07 International Business Machines Corporation Communications channel method for verifying integrity of untrusted subsystem responses to a request
US8812922B2 (en) * 2006-03-20 2014-08-19 Mentor Graphics Corporation Speeding up defect diagnosis techniques
US8615695B2 (en) * 2007-04-04 2013-12-24 Mentor Graphics Corporation Fault dictionary-based scan chain failure diagnosis
US7996737B2 (en) * 2007-09-11 2011-08-09 California Institute Of Technology Fingerprinted circuits and methods of making and identifying the same
US8948960B2 (en) * 2007-11-30 2015-02-03 Honeywell International Inc. Systems and methods for arbitrating sensor and actuator signals in a multi-channel control system
US20090287438A1 (en) * 2007-12-14 2009-11-19 Wu-Tung Cheng Increased Fault Diagnosis Throughput Using Dictionaries For Hyperactive Faults
WO2010038096A1 (en) * 2008-09-30 2010-04-08 Freescale Semiconductor, Inc. Method and apparatus for handling an output mismatch
US8082425B2 (en) * 2009-04-29 2011-12-20 Advanced Micro Devices, Inc. Reliable execution using compare and transfer instruction on an SMT machine
JP5612995B2 (ja) * 2010-10-05 2014-10-22 株式会社日立製作所 入力バイパス型のフェイルセーフ装置及びフェイルセーフ用プログラム
EP2633408B1 (de) * 2010-10-28 2018-08-22 Data Device Corporation System, verfahren und vorrichtung zur fehlerkorrektur in mehrprozessorsystemen
TWI557746B (zh) * 2011-05-10 2016-11-11 電子戰協會公司 實施微電腦為基的電路之內容驗證的系統及方法
US8880961B2 (en) * 2012-01-31 2014-11-04 Infineon Technologies Ag System and method of computation by signature analysis
US20130325405A1 (en) * 2012-05-30 2013-12-05 Service Solutions U.S. Llc Modular Alternator and Starter Tester with a Four Link Hood Hinge
JP6050083B2 (ja) 2012-10-18 2016-12-21 ルネサスエレクトロニクス株式会社 半導体装置
JP5772911B2 (ja) * 2013-09-27 2015-09-02 日本電気株式会社 フォールトトレラントシステム
US9484919B1 (en) * 2014-04-30 2016-11-01 Xilinx, Inc. Selection of logic paths for redundancy
JP6554048B2 (ja) * 2016-02-29 2019-07-31 株式会社日立製作所 表示装置
US10148367B1 (en) * 2017-12-22 2018-12-04 Raytheon Company Built-in-test (BIT) for assignment-based AESA systems
US10425172B2 (en) 2017-12-22 2019-09-24 Raytheon Company Clutter rejecting built in test for assignment-based AESA systems
JP7077644B2 (ja) * 2018-02-09 2022-05-31 横河電機株式会社 制御システム、診断装置、診断方法、および診断プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60221839A (ja) * 1984-04-18 1985-11-06 Mitsubishi Electric Corp デジタル制御装置
US4807228A (en) * 1987-03-18 1989-02-21 American Telephone And Telegraph Company, At&T Bell Laboratories Method of spare capacity use for fault detection in a multiprocessor system
DD275545A1 (de) * 1988-09-16 1990-01-24 Adw Ddr Kybernetik Inf Verfahren und anordnung eines fehlertoleranten mehrrechnersystems
US5065312A (en) * 1989-08-01 1991-11-12 Digital Equipment Corporation Method of converting unique data to system data
ATE110478T1 (de) * 1990-08-14 1994-09-15 Siemens Ag Einrichtung zur interruptverteilung in einem mehrrechnersystem.
US5271023A (en) * 1991-06-03 1993-12-14 Motorola, Inc. Uninterruptable fault tolerant data processor
US5630048A (en) * 1994-05-19 1997-05-13 La Joie; Leslie T. Diagnostic system for run-time monitoring of computer operations

Also Published As

Publication number Publication date
US5799022A (en) 1998-08-25
US5993055A (en) 1999-11-30
DE69706245D1 (de) 2001-09-27
EP0817052B1 (de) 2001-08-22
EP0817052A1 (de) 1998-01-07
JPH10116258A (ja) 1998-05-06

Similar Documents

Publication Publication Date Title
DE69706245T2 (de) Lokalisierung eines fehlerhaften Moduls in einem fehlertoleranten Rechnersystem
DE4402796C2 (de) Verbesserte Redundanzanalysiereinrichtung für eine automatische Speichertestvorrichtung
DE3903835C2 (de)
DE102006059156B4 (de) Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem
DE69107463T2 (de) Integrierte Schaltung, System und Verfahren zur Fehlererzeugung.
DE102006059158B4 (de) Integrierter Schaltkreischip mit zumindest zwei Schaltungskernen und zugehöriges Verfahren zum Testen
DE3854014T2 (de) Quergekoppelte Prüfschaltung.
DE2728676A1 (de) Stufenempfindliches, als monolithisch hochintegrierte schaltung ausgefuehrtes system aus logischen schaltungen mit darin eingebetteter matrixanordnung
DE3880132T2 (de) Verfahren und geraet zur digitalen logischen synchronismusueberwachung.
DE3009945A1 (de) Integrierter, logischer schaltkreis mit funktionspruefung
DE3702408C2 (de)
DE2515297A1 (de) Pruefsystem fuer logische netzwerke mit simulatororientiertem fehlerpruefgenerator
DE1900042A1 (de) Verfahren und Anordnung zur Ortung von Fehlern in einer Datenverarbeitungsanlage
EP0766092B1 (de) Testbare Schaltungsanordnung mit mehreren identischen Schaltungsblöcken
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE68922440T2 (de) Gerät und Verfahren zur gleichzeitigen Einreichung von Fehlerunterbrechung und Fehlerdaten zu einem Unterstützungsprozessor.
DE69031291T2 (de) Testmethode, Testschaltung und integrierter Halbleiterschaltkreis mit Testschaltung
DE2715029C3 (de) Schaltungsanordnung zur Diagnose oder Prüfung von funktionellen Hardware-Fehlern in einer digitalen EDV-Anlage
WO2006099822A1 (de) Schaltung zum vergleichen von zwei n-stelligen binären datenwörtern
DE3785914T2 (de) Vorgriffsendwertzaehler und methode zur erzeugung eines endzaehlerstandes als ausgangsignal.
DE69419269T2 (de) Verfahren zur automatischen Ermittlung von offenen Schaltkreisen
DE68926667T2 (de) Einen Rechner enthaltende Anlage
DE3726489C2 (de) Einrichtung zur Überwachung eines Rechnersystems mit zwei Prozessoren in einem Kraftfahrzeug
DE102006027448B4 (de) Schaltungsanordnung
EP0037965B1 (de) Einrichtung zum Prüfen einer digitalen Schaltung mittels in diese Schaltung eingebauter Prüfschaltungen

Legal Events

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