DE102004038596A1 - Verfahren zur Fehlerregistrierung und entsprechendes Register - Google Patents

Verfahren zur Fehlerregistrierung und entsprechendes Register Download PDF

Info

Publication number
DE102004038596A1
DE102004038596A1 DE102004038596A DE102004038596A DE102004038596A1 DE 102004038596 A1 DE102004038596 A1 DE 102004038596A1 DE 102004038596 A DE102004038596 A DE 102004038596A DE 102004038596 A DE102004038596 A DE 102004038596A DE 102004038596 A1 DE102004038596 A1 DE 102004038596A1
Authority
DE
Germany
Prior art keywords
error
register
dual
computer system
bit
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.)
Withdrawn
Application number
DE102004038596A
Other languages
English (en)
Inventor
Thomas Kottke
Andreas Steininger
Christian El Salloum
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102004038596A priority Critical patent/DE102004038596A1/de
Priority to CNA2005800259994A priority patent/CN1993678A/zh
Priority to US11/659,308 priority patent/US20090024908A1/en
Priority to EP05769873A priority patent/EP1776636A2/de
Priority to PCT/EP2005/053730 priority patent/WO2006015955A2/de
Publication of DE102004038596A1 publication Critical patent/DE102004038596A1/de
Withdrawn 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/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

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)

Abstract

Verfahren zur Fehlerregistrierung und Register, das einem Zweirechnersystem zugeordnet ist, wobei in dem Register Informationen in Form von Bits abgelegt werden, wobei das Zweirechnersystem einen Fehlererkennungsmechanismus enthält, wobei die Bits im Register als Fehlerbits wenigstens ein Fehlersignal des Fehlererkennungsmechanismus repräsentieren.

Description

  • Die Erfindung geht aus von einem Verfahren zur Verzögerung der Zugriffe auf Daten und/oder Befehle eines Zweirechnersystems sowie einer entsprechenden Verzögerungseinheit gemäß den aus dem Stand der Technik bekannten Merkmale der unabhängigen Ansprüche.
  • In zukünftigen Anwendungen, wie insbesondere im Kraftfahrzeug oder im Industriegüterbereich also z.B. Maschinenbereich und in der Automatisierung werden ständig mehr und mehr mikroprozessor- oder rechnerbasierte Steuerungs- und Regelungssysteme für sicherheitskritische Anwendungen eingesetzt. Dabei sind Zweirechnersysteme oder Zweiprozessorsysteme (Dual Cores) heutzutage gängige Rechnersysteme für sicherheitskritische Anwendungen, insbesondere im Fahrzeug wie beispielsweise für Antiblockiersysteme, das Elektronische Stabilitätsprogramm (ESP), X-by-Wire-Systeme wie Drive-by-Wire oder Steer-by-Wire sowie Break-by-Wire, usw. oder auch bei sonstigen vernetzten Systemen. Um diese hohen Sicherheitsansprüche in zukünftigen Anwendungen zu befriedigen, sind mächtige Fehlermechanismen und Fehlerbehandlungsmechanismen erforderlich, insbesondere um transienten Fehler, die beispielsweise bei Verkleinerung der Halbleiterstrukturen der Rechnersysteme entstehen, zu begegnen. Dabei ist es relativ schwierig den Core selbst, also den Prozessor zu schützen. Eine Lösung hierfür ist wie erwähnt die Verwendung eines Zweirechnersystems oder Dual Core-Systems zur Fehlerdetektion.
  • Ein Problem bei solchen Zweirechnersystemen ist aber, dass der Vergleich von Daten, insbesondere von Ausgangsdaten zur Fehlererkennung erst bei der Ausgabe, bzw. nach der Ausgabe erfolgt. D. h. die Daten werden schon zu einer externen Senke, also beispielsweise eine über einen Datenbus oder einen Befehlsbus angeschlossene Komponente, wie ein Speicher oder sonstige Ein-/Ausgabeelemente, geleitet, bevor sichergestellt ist, dass die Daten und/oder Befehle korrekt sind. Dies kann dann dazu führen, dass Zugriffe, also Schreiboperationen und/oder Leseoperationen auf fehlerhafte Daten und/oder Befehle ausgeführt werden, insbesondere bei Fehlern in Speicherzugriffen. Durch diese Problematik können bei der Wiederherstellung eines bestimmten Systemzustandes, Ausschalten der Folgen eines Fehlers, bei Erzeugung korrekter Daten nach Fehlerabbruch, der Wiederbereitmachung eines Systems nach Zusammenbruch sowie bei einer Schaltungsanordnung der Rückkehr in den Ursprungszustand (was im Weiteren zusammengefasst als Recovery bezeichnet wird) Fehler entstehen oder dies nur unter sehr hohem Aufwand mögleich sein. Solche Fehler können durch den Zugriff in Form von Schreiboperationen und/oder Leseoperationen durch wenigstens einen Rechner des Zweirechnersystems Fehler im gesamten System und daran angeschlossener Einheiten nach sich ziehen, wobei umso schwerer wiegt, dass es nicht möglich ist festzustellen, welche Daten und/oder Befehle fehlerhaft verändert wurden.
  • Zweiprozessorsysteme können nur aufgetretene Fehler erkennen, bieten aber keine Möglichkeit eine effektive Fehlerbehandlung auszuführen. Da die Häufigkeit transienter Fehler im Vergleich zu permanenten Fehler stark zunehmen wird aufgrund kleiner werdenden Halbleiterstrukturen, wird eine effektive Fehlerbehandlung notwendig werden um die Verfügbarkeit zukünftiger Systeme zu erhöhen.
  • Es ist daher Aufgabe der Erfindung, die genannte Problematik zu lösen und die Verfügbarkeit zu erhöhen.
  • Vorteile der Erfindung
  • Die Erfindung geht aus von einem Verfahren zur Fehlerregistrierung sowie einem Register, das einem Zweirechnersystem zugeordnet ist, wobei in dem Register Informationen in Form von Bits abgelegt werden, wobei das Zweirechnersystem einen Fehlererkennungsmechanismus enthält, wobei vorteilhaft die Bits im Register als Fehlerbits wenigstens ein Fehlersignal des Fehlererkennungsmechanismus repräsentieren und entsprechendes Zweirechnersystem.
  • Zweckmäßig ist das Register derart ausgebildet, dass der Fehlererkennungsmechanismus ein entsprechendes Fehlerbit setzen kann und dieses Fehlerbit durch das Zweirechnersystem wieder löschbar ist, wobei das Register in einem Rechner des Zweirechnersystems enthalten ist oder in den Speicherbereich eines Rechners des Zweirechnersystems eingeblendet wird.
  • Vorteilhafter Weise wird nur aufgrund eines ersten Fehlers ein Fehlerbit im Register gesetzt. Weiterhin zweckmäßig ist, dass mehrere Fehlersignale zu einem einheitlichen Fehlersignal zusammengefasst werden und dass durch das einheitliche Fehlersignal ein Interrupt ausgelöst wird.
  • Vorteilhafter Weise ist in einem Zweirechnersystem für jeden Rechner ein Register vorgesehen, wobei die beiden Rechner des Zweirechnersystems in einer Ausführungsform mit einem Taktversatz arbeiten und auch das Setzen des Fehlerbits in den Registern mit diesem Taktversatz erfolgt.
  • Vorteilhaft wird für jeden Rechner ein Register vorgesehen und durch jedes einheitliche Fehlersignal ein Interrupt ausgelöst, wobei die Interrupts mit dem Taktversatz ausgelöst werden, wobei bei dem Verfahren zur Fehlerregistrierung in einem Zweirechnersystem, bei Erkennen eines Fehlers wenigstens ein Fehlerbit im Register abgelegt wird und das wenigstens eine Register ausgewertet wird und eine Fehlerbehandlung abhängig von Position des Fehlerbits im Register durchgeführt wird oder das wenigstens eine Register ausgewertet wird und eine Fehlerbehandlung abhängig von den Fehlerbits im Register durchgeführt wird und das Register nach einer Fehlerbehandlung wieder rückgesetzt oder gelöscht wird.
  • Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus der Beschreibung der Ausführungsbeispiele sowie den Merkmalen der Ansprüche.
  • Zeichnung
  • Die Erfindung wird im Weiteren anhand der in der Zeichnung dargestellten Figuren näher erläutert.
  • Dabei zeigt 1 ein Zweirechnersystem oder Zweiprozessorsystem mit einer erfindungsgemäßen Verzögerungseinheit.
  • In 2 ist eine erste Ausführungsform einer erfindungsgemäßen Verzögerungseinheit dargestellt.
  • In 3 ist eine zweite Ausführungsform einer erfindungsgemäßen Verzögerungseinheit dargestellt.
  • 4 schließlich zeigt einen Multiplex-Baustein insbesondere einen sicheren Multiplexer einer erfindungsgemäßen Verzögerungseinheit.
  • 5 zeigt ein Register zur Fehlerregistrierung sowie dessen Funktion
  • Die Erfindung wird im Weiteren anhand der Ausführungsbeispiele näher erläutert.
  • Beschreibung der Ausführungsbeispiele
  • 1 zeigt ein Zweirechnersystem mit einem ersten Rechner 100, insbesondere einem Masterrechner und einem zweiten Rechner 101, insbesondere einem Slave-Rechner. Das gesamte System wird dabei mit einem vorgebbaren Takt bzw. in vorgebbaren Taktzyklen (clock cycle) CLK betrieben. Über den Takteingang CLK1 des Rechners 100 sowie über den Takteingang CLK2 des Rechners 101 wird diesem der Takt zugeführt. Bei diesem Zweirechnersystem ist darüber hinaus beispielhaft ein spezielles Merkmal zur Fehlererkennung enthalten, in dem nämlich der erste Rechner 100 sowie der zweite Rechner 101 mit einem Zeitversatz, insbesondere einem vorgebbaren Zeitversatz bzw. einem vorgebbaren Taktversatz arbeiten. Dabei ist jede beliebige Zeit für einen Zeitversatz vorgebbar und auch jeder beliebige Takt bezüglich eines Versatzes der Taktzyklen. Dies kann ein ganzzahliger Versatz des Taktzyklus (clock cycle) sein, aber eben auch wie in diesem Beispiel dargestellt, beispielsweise ein Versatz von 1,5 Taktzyklen, wobei hier der erste Rechner 100 eben 1,5 Taktzyklen vor dem zweiten Rechner 101 arbeitet respektive betrieben wird. Durch diesen Versatz kann vermieden werden, dass Gleichtaktfehler, sogenannte common mode failures, die Rechner oder Prozessoren, also die Cores des Dual Cores Systems, gleichartig stören und damit unerkannt bleiben. D.h. solche Gleichtaktfehler betreffen durch den Versatz die Rechner zu unterschiedlichen Zeitpunkten im Programmablauf und bewirken demnach unterschiedliche Effekte bezüglich der beiden Rechner wodurch Fehler erkennbar werden. Gleichartige Fehlerwirkungen ohne Taktversatz wären u.U. in einem Vergleich nicht erkennbar, dies wird dadurch vermieden. Um diesen Versatz bezüglich der Zeit oder des Taktes, hier insbesondere 1,5 Taktzyklen im Zweirechnersystem zum implementieren sind die Versatzbausteine 112 bis 115 implementiert.
  • Um die genannten Gleichtaktfehler zu erkennen ist dieses System eben beispielsweise dazu ausgelegt in einem vorgegebenen Zeitversatz oder Taktzyklenversatz zu arbeiten, insbesondere hier 1,5 Taktzyklen, d.h. während der eine Rechner, z. B. Rechner 100 direkt die Komponenten, insbesondere die externen Komponenten 103 und 104 anspricht, arbeitet der zweite Rechner 101 mit einer Verzögerung von genau 1,5 Taktzyklen dazu. Um in diesem Fall die gewünschte Eineinhalbzyklusverzögerung, also von 1,5 Taktzyklen zu erzeugen wird Rechner 101 mit der invertierten Clock, also dem invertierten Takt am Takteingang CLK2 gespeist. Dadurch müssen aber auch die vorgenannten Anschlüsse des Rechners also seine Daten bzw. Befehle über die Busse um die genannten Taktzyklen, also hier insbesondere 1,5 Taktzyklen verzögert werden, wozu eben wie gesagt die Versatz- oder Verzögerungsbausteine 112 bis 115 vorgesehen sind. Neben den beiden Rechnern oder Prozessoren 100 und 101 sind Komponenten 103 und 104 vorgesehen, die über Busse 116, bestehend aus den Busleitungen 116A und 116B und 116C sowie 117, bestehend aus den Busleitungen 117A und 117B mit den beiden Rechnern 100 und 101 in Verbindung stehen. 117 ist dabei ein Befehlsbus, bei welchem mit 117A ein Befehlsadressbus und mit 117B der Teil-Befehls(daten)bus bezeichnet ist. Der Adressbus 117A ist über einen Befehlsadressanschluss IA1 (Instruction Adress 1) mit Rechner 100 und über einen Befehlsadressanschluss IA2 (Instruction Adress 2) mit Rechner 101 verbunden. Die Befehle selbst werden über den Teil-Befehlsbus 117B übertragen, der über einen Befehlsanschluss I1 (Instruction 1) mit Rechner 100 und über einen Befehlsanschluss I2 (Instruction 2) mit Rechner 101 verbunden ist. In diesem Befehlsbus 117 bestehend aus 117A und 117B ist eine Komponente 103 z. B. ein Befehlsspeicher, insbesondere ein sicherer Befehlsspeicher oder dergleichen zwischengeschaltet. Auch diese Komponente, insbesondere als Befehlsspeicher wird in diesem Beispiel mit dem Takt CLK betrieben. Daneben ist mit 116 ein Datenbus dargestellt, welcher einen Datenadressbus oder eine Datenadressleitung 116A und einen Datenbus oder eine Datenleitung 116B enthält. Dabei ist 116A, also die Datenadressleitung, über einen Datenadressanschluss DA1 (Data Adress 1) mit dem Rechner 100 und über einen Datenadressanschluss DA2 (Data Adress 2) mit Rechner 101 verbunden. Ebenso ist der Datenbus oder die Datenleitung 116B über einen Datenanschluss DO1 (Data Out 1) und einen Datenanschluss DO2 (Data Out 2) mit Rechner 100 bzw. Rechner 101 verbunden. Weiterhin zu Datenbus 116 gehört die Datenbusleitung 116C, welche über einen Datenanschluss DI1 (Data In 1) und einen Datenanschluss DI2 (Data In 2) jeweils mit Rechner 100 bzw. Rechner 101 verbinden ist. In diesem Datenbus 116 bestehend aus den Leitungen 116A, 116B und 116C ist eine Komponente 104 zwischengeschaltet, beispielsweise ein Datenspeicher, insbesondere ein sicherer Datenspeicher o. ä. Auch diese Komponente 104 wird in diesem Beispiel mit dem Takt CLK versorgt.
  • Dabei stehen die Komponenten 103 und 104 stellvertretend für beliebige Komponenten die über einen Datenbus und/oder Befehlsbus mit den Rechnern des Zweirechnersystems verbunden sind und entsprechend der Zugriffe über Daten und/oder Befehle des Zweirechnersystems bezüglich Schreiboperationen und/oder Leseoperationen fehlerhafte Daten und/oder Befehle erhalten oder abgeben können. Zur Fehlervermeidung sind zwar Fehlerkennungsgeneratoren 105, 106 und 107 vorgesehen welche eine Fehlerkennung erzeugen wie beispielsweise ein Parity-Bit oder auch einen anderen Fehlercode wie beispielsweise einen Error-Correction-Code, also ECC, o. ä.. Dazu vorgesehen sind dann auch die entsprechenden Fehlerkennungsprüfeinrichtungen oder Check-Einrichtungen 108 und 109 zur Überprüfung der jeweiligen Fehlerkennung also beispielsweise des Parity-Bit oder eines anderen Fehlercodes wie ECC.
  • Der Vergleich der Daten und/oder Befehle bezüglich der redundanten Ausführung im Zweirechnersystem erfolgt in den Vergleichern oder Komparatoren 110 und 111 wie in 1 dargestellt. Existiert nun aber ein Zeitversatz, insbesondere ein Takt- oder Taktzyklusversatz zwischen den Rechnern 100 und 101, entweder hervorgerufen durch ein nichtsynchrones Zweiprozessorsystem oder bei einem synchronen Zweiprozessorsystem durch Fehler in der Synchronisierung oder auch wie in diesem speziellen Beispiel durch einen zur Fehlererkennung gewünschten Zeit- bzw. Taktzyklusversatz, insbesondere hier von 1,5 Taktzyklen, so kann in diesem Zeit- oder Taktversatz ein Rechner hier insbesondere Rechner 100 fehlerhafte Daten und/oder Befehle in Komponenten, insbesondere externe Komponenten wie z. B. hier insbesondere die Speicher 103 oder 104, aber auch bezüglich anderen Teilnehmern oder Aktuatoren oder Sensoren schreiben oder lesen. So kann er auch in fehlerhafter Weise einen Schreibzugriff anstatt eines vorgesehenen Lesezugriffs durch diesen Taktversatz durchführen. Diese Szenarien führen selbstverständlich zu Fehlern im gesamten System, insbesondere ohne klare Anzeigemöglichkeit welche Daten und/oder Befehle gerade fehlerhaft geändert wurden, wodurch auch die Recovery-Problematik entsteht.
  • Um diese Problematik zu lösen wird nun eine Verzögerungseinheit 102 wie dargestellt in die Leitungen des Datenbusses und/oder in den Befehlsbus geschaltet. Aus Gründen der Übersichtlichkeit ist nur die Einschaltung in den Datenbus dargestellt. Bezüglich des Befehlsbusses ist dies natürlich genauso möglich und denkbar. Diese Verzögerungseinheit 102 oder die Delay Unit verzögert die Zugriffe, hier insbesondere die Speicherzugriffe so, dass ein möglicher Zeit- oder Taktversatz kompensiert wird, insbesondere bei einer Fehlererkennung beispielsweise über die Komparatoren 110 und 111 z.B. mindestens solange, bis das Fehlersignal im Zweirechnersystem erzeugt ist, also die Fehlererkennung im Zweirechnersystem durchgeführt ist. Dabei können verschiedene Varianten implementiert sein:
    Verzögerung der Schreib- und Leseoperationen, Verzögerung nur der Schreiboperationen oder auch, wenn auch nicht bevorzugt, eine Verzögerung der Leseoperationen. Dabei kann durch ein Änderungssignal, insbesondere das Fehlersignal, eine verzögerte Schreiboperation in eine Leseoperation gewandelt werden um fehlerhaftes Schreiben zu unterbinden.
  • Verschiedene Arten der Implementierung der Verzögerungseinheit 102 sind in den 2 und 3 dargestellt. Der Zweck der Verzögerungseinheit also der Delay Unit 102 ist Zugriffe im Rahmen des genannten Zeitversatzes oder Taktzyklenversatzes zu verzögern um diesen zu kompensieren, insbesondere um Schreiboperationen des Rechners 100 zu einer Komponente insbesondere externen Komponente bis zur Überprüfung und damit Korrektheit der entsprechenden Daten und/oder Befehle bzw. der jeweiligen Adressen zu erzielen. Dabei kann die Verzögerungseinheit auch in der Weise implementiert sein, dass sie Fehler in sich selbst erkennt und dies durch ein Fehlersignal EO nach außen signalisiert, dies wird dann anhand der 2 und 3 nochmals näher erläutert.
  • 2 zeigt nun eine Verzögerungseinheit mit zwei Umschaltbausteinen 201 und 200, insbesondere Multiplex-Bausteinen, einem Verzögerungsglied 204 und einer Prüfeinrichtung oder Testeinrichtung 203 insbesondere einem TSC-Checker. Dabei besteht die Verzögerungseinheit aus zwei Zweigen, einem Lesezweig, der dem unteren Eingangspfad des Multiplexers 200 (die unteren drei Pfeile) einschließlich Multiplexer 201 entspricht, und einem Schreibzweig, also dem oberen Eingangspfad von Multiplexer 200 (die oberen drei Pfeile). D. h. die Verzögerungseinheit besteht, insbesondere wenn sie nur Schreiboperationen verzögern soll aus zwei Pfaden zwischen denen durch eine Umschalteinrichtung, insbesondere einen Multiplexer 200, umgeschaltet werden kann. In dem einen Pfad gehen die Daten und/oder Befehle hier die Daten von DO1 (Data Out 1), die entsprechenden Adressen, hier DA1 (Data Adress 1) und hier insbesondere zusätzlich Speicherkontrollsignale MC (Memory Control) unverzögert durch, im anderen Zweig werden diese durch das Verzögerungsglied 204 verzögert. Die Umschaltung zwischen den beiden Pfaden erfolgt durch ein Umschaltsignal, insbesondere das Schreib/Lesesignal R/W bzw. dessen Invertierung, also ein daraus abgeleitet Signal Invert R/W (= R/W = R/W mit dem Strich darüber in den 2 bis 4).
  • Im Schreibzweig also dem Zweig mit dem Verzögerungsglied 204 erfolgt beispielsweise eine Verzögerung um zwei Taktzyklen bei einer vorgegebenen Verzögerung von 1,5 Taktzyklen wie vorher beschrieben und ist damit länger als das benötigte Minimum von 1,5 Taktzyklen, wodurch einem Speicher erlaubt wird, mit dem gleichen Takteingang CLK bedient zu werden. D.h. die Verzögerung ist mindestens so groß wie der vorgesehene Zeitversatz (hier 1,5 Taktzyklen), kann aber wie in diesem Beispiel auch größer sein. Um Konsistenz herzustellen, werden die zugehörigen Adress- und Kontrollsignale gleichermaßen verzögert. Dies ist wie gesagt ebenso für den Datenbus (wie beispielhaft für den Datenbus eben mit DA1 und DO1 dargestellt) möglich wie für den Befehlsbus denkbar. Die Darstellung wäre somit leicht auf einen Befehlsbus für IA1 übertragbar.
  • Die Bitzahlen an den einzelnen Verbindungen in 2 und 3 sind beispielhaft gewählt, d.h. es wird hier in diesem Beispiel ein 16Bit-System plus einem Parity-Bit (16Bit+1Parity=17Bit) vorgeschlagen. Eine Übertragung auf andere Bitbreiten wie 8, 32, 64 Bit plus Parity-Bit oder breitere Fehlerkennungen ist dabei problemlos möglich und erfindungsgemäß vorstellbar. Ebenso ist die Wahl der 4 Bit für das Speicherkontrollsignal MC (Memory Control) beispielhaft. Ebenso ist Zahl 5 Bit durch das zusätzlich eingekoppelte R/W-Invert-Bit auf eben dann 5Bit (4Bit+1R/W invert=5Bit) als beispielhaft anzusehen. Im unteren Eingangszweig des Umschaltbausteins 200 (die unteren drei Pfeile und hier eingeschlossen Umschaltbaustein 201), wird die Verzögerung durch Umschalteinrichtung 200 gebypasst, also vorbeigeleitet, gesteuert durch ein Umschaltsignal (insbesondere durch Benutzung des Schreib/Lesesignals R/W bzw. des daraus abgeleiteten Invert R/W). Bei Benutzung von R/W (Schreib/Lesesignal) wird dieses durch das Invertierungsglied 205 zum invertierten Schreib/Lesesignal. Der zweite Umschaltbaustein 200 insbesondere der zweite Multiplexer der die Daten und/oder Befehle (hier beispielhaft die Daten) wieder zusammenführt, wird ebenfalls durch dieses Signal, insbesondere das Schreib/Lesesignal R/W und das dazu invertierte angesteuert. Vorteilhaft ist hierbei wie nachfolgend beschrieben das Signal aus dem verzögerten Pfad, also hinter dem Verzögerungsglied 204 zu entnehmen.
  • Zweckmäßigerweise wird also das verzögerte Schreib/Lesesignal R/W bzw. das daraus invertierte Invert-R/W (=R/W) gewählt, weil sonst unter Umständen ein Zugriff, insbesondere ein Schreibzugriff, initiiert würde ohne die gewünschte Verzögerung von hier beispielhaft zweit Taktzyklen zu erreichen bevor die anderen verbundenen Signale vorliegen. Dies würde unter Umständen zu Problemen bei einer Umschaltung zwischen Lese- und Schreibzugriff führen. Wenn z. B. ein Lesezugriff (eine Leseoperation) direkt hinter einem Schreibzugriff (einer Schreiboperation) erfolgt, müssten der verzögerte Schreibzugriff und der direkt darauf folgende Lesezugriff parallel ausgeführt werden. D.h. es sollte kein exakter Abstand von 2 Takten zwischen einer Schreiboperation und einer darauffolgenden Leseoperation sein, bzw. ist es einfacher zu verwirklichen wenn ein Minimalabstand von hier zwei Taktzyklen zwischen einer Schreiboperation und einer darauffolgenden Leseoperation erfolgen. Bei einer Schreiboperation tritt eine Lücke von der Dauer der Schreiboperation am Ausgang des des Umschaltbausteins 200 auf. Während dieser Lücke würde der Umschaltbaustein 200, also der Multiplexer, den Lesezweig, also die drei unteren Eingänge von Multiplexer 200 aktivieren, wobei die nichtverzögerten Daten bzw. Adressen und Steuerinformationen diese Zweigs immer noch zur Schreiboperation gehören. Um zu vermeiden dass diese Informationen, also der vorhergehenden Operation auf den Bus gelangen ist Umschalteinrichtung 201 vorgesehen, welche in diesem Fall unkritische Konstanten z. B. die No Operation NO wie hier in 2 dargestellt, zum unteren Eingang des Multiplexers 200 liefert während diese Wartezeit besteht, bis Multiplexer 200 unter Umständen zu den drei oberen Eingangswegen, also den verzögerten, umschaltet und die aktuelle Schreiboperation ausführt.
  • Um die Schnittstellen in diesem Fall gegenüber anderen Komponenten abzusichern sind die Signale Daten Adresse DA1 (Data Adress), Datenausgabe DO1 (Data Out) und Steuersignal (Memory Control) MC jeweils in diesem Beispiel durch ein einfaches Parity-Bit abgesichert. Dieses Parity wird durch die Checkeinheiten 109 bzw. 108 für den Befehlsbus abgesichert, wobei, da in 1 nicht dargestellt, das Speicherkontrollsignal MC durch einen zusätzlichen Memory Checker 202 abgesichert ist. Das Parity Bit dieses Signals MC ist gleichermaßen durch das Verzögerungsglied 204 wie die übrigen Signale verzögert. Da die Signale jeder Signalart DA1, DO1 und MC unabhängig in der Verzögerungseinheit geführt sind, ermöglicht dieses einfache Parity-Bit ausreichenden Schutz gegen Einzelfehler. Bei Mehrfehlererkennung oder Absicherung sowie Korrektur von Mehrfachfehlern können wie schon gesagt mächtigere Fehlerkennungen verwendet werden.
  • Da das Umschaltsignal bzw. Änderungssignal also hier das Schreib-/Lesesignal R/W zur Steuerung der Umschalteinheiten eine spezielle Rolle ausfüllt soll dieses noch einmal in einer besonderen Ausführung konkret abgesichert werden. Dies soll durch einen dual rail code (also auf zwei Spuren) direkt beim Eingang in die Verzögerungseinheit erfolgen wobei dies noch einmal im Hinblick auf 4 genauer beschrieben wird.
  • Eine zusätzliche Funktion kann über den Pfad DAE/DOE, 206, 207 und 208 realisiert werden. Darüber ist ein Schutz von Schreiboperationen im Falle eines Fehlers bei Standardkomponenten wie beispielsweise einem Fail Safe Speicher oder genauso bei der Umschaltung einer Schreiboperation in eine Leseoperation erzielbar. Das Fehlersignal DAE/DOE des Dual Cores liegt als dual rail Code vor. Dieser wird in ein single-rail Signal gewandelt Und zwar bevor ein Zeitversatz dazwischen liegt. Dies erfolgt in einem Vergleichsbaustein 206 der insbesondere als XOR-Baustein ausgeführt sein kann. Das XOR-Glied 206 macht dabei gleichzeitig aus dem Mehrfachsignal ein Einfachsignal. Optional wird nun ein Zeitverzug von 0,5 Taktzyklen in einem Verzögerungsglied 207 beigefügt um eine zeitliche Ausrichtung des resultierenden Fehlersignals mit dem korrespondierenden Datenwort in der Verzögerungseinheit zu erzielen. Dies, da die Verzögerungseinheit in unserem Beispiel um 2 Taktzyklen gemäß Verzögerungsglied 204 verzögert. Wird dann als Block 208 z. B. ein UND-Gatter verwendet, kann das Schreib-/Lesesignal R/W maskiert werden um einen Schreibzugriff zu blockieren wie dies im Zusammenhang mit der Beschaltung von Block 208 dargestellt ist.
  • Dieser DAE/DOE Eingang, also das Fehlersignal aus den Rechnern kann ebenfalls wie das Parity-Bit der Speichersteuerung MC aus 202 sowie das jeweilige Umschalt- bzw. Änderungssignal der Umschalteinrichtungen 201 und 202, also insbesondere das Schreib/Lesesignal R/W sowie das daraus abgeleitete inverse Schreib/Lesesignal (Invert R/W) dem Testbaustein 203 (insbesondere als TSC-Checker ausgebildet) zugeführt werden woraus sich ein für eine weitere Fehlerbehandlung nutzbares Fehlersignal EO (Error Out) ergibt. Die Verwendung der Schreib/Lesesignale R/W und R/W zur Umschaltung im Multiplexer sowie deren Überprüfung wird wie bereits erwähnt in 4 näher erläutert.
  • In der Verzögerungseinheit nach 2 ergibt sich nach den Ausführungen nun am Ausgang ein entweder nicht verzögertes oder verzögertes Datenadresssignal DA1d (Data Adress delayed), ein entweder nicht verzögertes oder verzögertes Datensignal oder Datenausgangssignal DO1d (Data Out delayed) in Abhängigkeit einer Leseoperation oder Schreiboperation sowie in diesem speziellen Beispiel wenn als Komponente, insbesondere externe Komponente ein Speicherbaustein verwendet wird ein Speichersteuerungssignal oder Speicherkontrollsignal MCd (Memory Control delayed) das ebenfalls entweder nicht verzögert oder verzögert ist.
  • 3 zeigt nun nocheinmal in einer zweiten Ausführungsform eine Verzögerungseinheit wobei die Verzögerungseinheit wie dargestellt auch nur aus einem Umschaltbaustein oder Miltiplexer 200 und zwei Zweigen ausgeführt sein kann. Hierbei wird aus 2 nur der zweite Miltiplexer 200 verwendet sodass die Eingänge DA1, DO1 und MC diesem direkt zugeführt werden. Die gleichen Eingänge werden wie vorher schon über ein Verzögerungsglied 204 verzögert und ebenfalls dem Multiplexer 200 zugeführt. Dabei gehen die Daten (also hier Datenadresse DA1, Daten DO1 und Speichersteuerung MC) gleichzeitig in beide Zweige, wobei Schreiboperationen in dem nicht verzögerten Pfad in Leseoperationen umgewandelt werden. Diese Änderung oder Umschaltung der Schreiboperationen in Leseoperationen kann ebenfalls durch die Schreib-/Lesesignale R/W bzw. das daraus abgeleitete R/W invertiert erfolgen.
  • Im übrigen ist die zweite Ausführungsform vergleichbar aufgebaut wie die erste Ausführungsform, bis auf die Tatsache dass der erste Multiplexer 201 weggelassen wurde wodurch auch die Bezeichnungen und die Funktionen soweit vorhanden identisch sind. Ausnahme ist die Testeinheit, da dieser durch den fehlenden Multiplexer 201 weniger Signale zugeführt werden und darum geringfügig anders aufgebaut sein kann und deswegen hier mit 303 bezeichnet ist. Aber gleichermaßen das weiterverwendbare im Rahmen einer Fehlerbehandlung benutzbare Errorsignal EO ausgibt.
  • Insbesondere bei einer von Neumann Architektur bei der die Komponente an einem allgemeinen Bus angehängt ist, ist es vorteilhaft, wenn nur die Schreiboperation verzögert wird. Zweckmäßigerweise erfolgen die Befehlsspeicherzugriffe und die Leseoperationen ohne Verzögerung im Rahmen der von Neumann Architektur.
  • Bei der Verzögerungseinheit können als Umschaltbausteine oder Multiplexer sichere Multiplexer gemäß 4 verwendet werden. Hierbei werden die Daten durch einen Fehlererkennungscode, hier beispielsweise ein Parity-Bit abgesichert und die Ansteuersignale also Umschalt- bzw. Änderungssignale, hier insbesondere das Schreib/Lesesignal R/W und das daraus abgeleitete inverse Schreib/Lesesignal R/W werden ebenso abgesichert, hier beispielhaft in Dual Rail Logic. D.h. das R/W sowie das inverse Signal werden zuerst dem sicheren Multiplexer zugeführt und von dort zur Testeinheit dem TSC-Checker 203 bzw. 303. Unter diesen Vorgaben wird ein Fehler der eine Spur des Schreib/Lesesignals betrifft durch die Testeinheit TSC 203 bzw. 303 detektiert während ein Einfachfehler im Multiplexschaltkreis ein einfaches Output-Bit betreffen wird und damit durch den Parity Check ermittelbar ist. D.h. die Daten und/oder Befehle wie vorher ausgeführt werden wie in einem Standardmultiplexer umgeschalten, wobei zusätzlich noch das Parity-Bit oder eine andere Fehlerkennung umgeschalten werden. Die Ansteuersignale also Umschalt- oder Änderungssignale R/W und R/W Invert werden zunächst an alle Umschalter für die einzelnen Bits geführt, hier dargestellt in den Bausteinen 401 bis 406 insbesondere als UND-Gatter, denen ebenso die jeweiligen Eingänge I10, I11, I20, I21 bis In0, In1 zugeführt werden. Die Bausteine bzw. deren Ausgangssignale aus 401-406 werden dann jeweils in den Bausteinen 407 bis 409 wie in 4 dargestellt zusammengefasst. Dazu sind die Bausteine 407-409 insbesondere als ODER-Gatter ausgeführt. Dabei ergeben sich dann Ausgänge des Multiplexbausteins O1, O2 bis On. Die in 4 dargestellte Struktur ist nur ein Ausschnitt aus der Gesamtstruktur eines Multiplexbausteins gemäß den 2 und 3 mit den darin beispielhaft dargestellten Bit-Breiten von 17Bit bzw. 5Bit pro Signalweg. D.h. beide Multiplexbausteine 201 und 200 entsprechend den 2 und 3 sind vorteilhafterweise in Form der 4 ausgeführt um einen fälschlicherweise umgeschalteten Datenweg wie bereits beschrieben erkennbar zu machen und die Fehlerkennung zu vereinfachen. Solche Fehler könnten nicht durch reines Parity-Checking ermittelt werden, da auch die Daten des falschen Signalweges die korrekte Parity aufweisen, sofern kein Bitkipper vorliegt.
  • Abgeschlossen wird dieses Sicherheitspaket durch die Absicherung der Schnittstelle zu einer Komponente, insbesondere einer externen Komponente entsprechend 103 und 104 aus 1, indem wie bereits in 1 dargestellt Fehlerkennungseinheiten zur Generation der Fehlerkennung 105-107 und zur Fehlerüberprüfungseinheiten zur Überprüfung der Fehlerkennung wie 108 und 109 insbesondere als Party-Bit-Überprüfer und Party-Bit-Generatoren vorgesehen sind. Die dabei entstandenen Fehlersignale können dann eben als DAE/DOE-Signale gemäß 2 und 3 eben als Data Adress Error oder Data Out Error auch im Verzögerungsbaustein wie beschrieben verwendet werden. Die Verwendung eines sicheren Multiplexers, bei dem die Ansteuersignale bzw. Umschalt- oder Änderungssignale R/W und R/W Invert zuerst an alle Umschalter für die einzelnen Bits geführt und erst danach im TSC-Checker überprüft werden, können Fehler in den Ansteuersignalen somit durch den Test von diesen erkannt werden bzw. wenn nur ein Bit fehlerhaft umgeschaltet wird, wird dies durch die Datenkodierung der umzuschaltenden Daten erkannt.
  • Durch die Erfindung ist somit eine beträchtliche Erhöhung der Sicherheit im Rahmen eines Zweirechnersystems mit relativ einfachen Mitteln möglich.
  • 5 schließlich zeigt die Funktionsweise des Registers, insbesondere Fehlerregisters.
  • Heutige Zweirechnersysteme zur Fehlererkennung (Bsp.: Dual Core) bieten eine sehr hohe Fehlerentdeckungswahrscheinlichkeit. Da aufgrund neuer Halbleitertechnologien mit immer kleiner werdenden Strukturbreiten die Anzahl der transienten Fehler zunimmt, könnten die meisten Fehler durch eine Fehlerbehandlungsroutine behoben werden. Bei heutigen Zweiprozessorsystemen wird oftmals nur das Auftreten eines Fehlers registriert und dann das System abgeschaltet oder durch einen Reset neu gestartet. Diese Fehlerbehandlungsmethode benötigt eine lange Zeitdauer. Um das Recovery von Fehlzuständen zu beschleunigen muss der Software auf dem Rechner der Fehlerort bekannt sein, so dass ein zielgerichtetes und schnelles Beheben des Fehlzustandes erfolgen kann.
  • Werden die Fehlerorte durch unterschiedliche Interruptleitungen spezifieziert, so muss der Interruptcontroller fehlertolerant ausgeführt sein, bzw. müssten auch entsprechend viele Interruptleitungen zur Verfügung stehen. Dies kommt auch daher weil die Fehlerentdeckungsmechanismen keine intelligenten Interruptquellen sind, die evtl. eine Kennung mitliefern könnten.
  • Um dies zu ermöglichen wird hier ein Fehlerregister vorgeschlagen, das in jedem der beiden Prozessoren des Zweirechnersystems eingebaut ist. Dieses Register muss nicht zwingend wie ein Register im Prozessor adressierbar sein, sondern kann auch in einen Speicherbereich des Prozessors eingeblendet sein. Jedes Bit des Fehlerregisters repräsentiert das Fehlersignal eines Fehlerentdeckungsmechanismus des Zweiprozessorsystems. Dies ist hier beispielhaft für eine Implementierung (Bild 1) dargestellt. Dabei repräsentiert hier beispielhaft Bit (A) bis (H) entsprechend:
    • (A) Befehlspeicherfehler: z.B. einen Parityfehler in der Instruktionsadresse
    • (B) Datenspeicherfehler, können auch durch 2 Bits dargestellt werden. Eins z.B. für Fehler in der Adresse und das andere für Fehler in den Daten
    • (C) Instruktionsadressenfehler: wird durch einen Komparator erkannt.
    • (D) Instruktionsfehler: Die Instruktion ist verfälscht. Wird z.B. durch einen Paritytest der Instruktion erkannt.
    • (E) Datenadressenfehler: wird wie (C) durch einen Komparator erkannt
    • (F) Datenwortfehler: Erkennung wie (C) oder (D)
    • (G) Eine beispielhafte Zusatzkomponente mit einem Fehlererkennungsmechanismus
    • (H) Eingangsdatenfehler: Fehler kann durch z.B. einem Paritytest erkannt werden wie in Punkt (D)
  • Die Funktionsweise des Fehlerregisters ist beispielhaft in Bild 2 dargestellt. Wenn nun ein Fehler auftritt, wird das entsprechende Fehlerbit zuerst im Fehlerregister des Master (Error Register Bit 0 Master) gesetzt und 1,5 Takte später im Fehlerregister des Slave (Error Register Bit 0 Slave). Dieser Versatz ist nötig, da bei dieser beispielhaften Implementierung die beiden Prozessoren mit einem Taktversatz von 1,5 Takten arbeiten. Die Implementierung kann ebenso für Zweiprozessorsysteme mit anderen Taktversatz von 0 bis x (x aus den natürlichen Zahlen) verwendet werden. Hierbei muss das Signal für den zweiten Prozessor entsprechend verzögert werden. Hier liegen die Fehlersignale als Dual-Rail Signale vor. Dies ist aber nicht zwingend notwendig. Zusätzlich werden alle Einzelfehlersignale zu einem Gesamtsignal zusammengefasst. Mit diesem zusammengefassten Signal (Error Dual Core) kann ein Interrupt an dem Zweiprozessorsystem ausgelöst werden. Der Interrupt wird zuerst am Master (Interrupt Master) und mit dem entsprechenden Taktversatz am Slave (Interrupt Slave) ausgelöst. Die Verzögerung am Slave in Höhe des Taktversatzes ist notwendig um die Synchronität des Zweiprozessorsystems auch im Fehlerfall und während der Fehlerbehandlungsroutine zu gewährleisten.
  • Aufgrund dieses Interrupts kann nun das Fehlerregister des Masters vom Master ausgelesen werden und das Fehlerregister des Slaves vom Slave. Durch Auswerten des gesetzten Bits kann nun eine Fehlerbehandlungsroutine gestartet werden. Nach Abschluss der Fehlerbehandlungsroutine kann/soll das entsprechende Bit zurückgesetzt werden.
  • Das Fehlerregister muss nicht fehlertolerant aufgebaut sein, da es für jeden Prozessor einzeln implementiert ist. Tritt ein Fehler in einem Register auf, so laufen die beiden Prozessoren bei einer Fehlerbehandlung auseinander (führen unterschiedliche Recovery-Maßnahmen aus) und somit werden Fehler in diesem Register erkannt. Ist das Fehlerregister nur einfach vorhanden, so muss es ebenfalls nicht fehlertolerant implementiert sein, da sowohl im Fehlerfall ein Bit in diesem Register gesetzt sein muss und auch ein Interrupt ausgelöst werden muss. Wird der Interrupt ausgelöst und ist das Bit nicht gesetzt oder sind zwei Bits gesetzt, ist ein Fehler im Fehlerregister aufgetreten.
  • Das Fehlerregister bzw. Fehlerregisterpaar kann nicht nur bei Zweiprozessorsystemen verwendet werden. Es ist ebenso in x-fach Prozessorsystemen einsetzbar, wobei x von 1 bis unendlich sein kann.
  • Gezeigt ist:
    • (1) ein Fehlerregister in dem jedes Bit ein Fehlersignal eines Fehlererkennungsmechanismus repräsentiert
    • (2) ein Fehlerregister bei dem die Fehlererkennungsmechanismen des Prozessorsystems das entsprechende Fehlerbit setzen können und es vom Prozessor wieder gelöscht werden kann und das als Prozessorregister ausgeführt ist oder in den Speicherbereich des Prozessors eingeblendet ist
    • (3) ein Fehlerregisterpaar bei einem Zweiprozessorsystem bei dem das Fehlerregister für jeden Prozessor explizit vorhanden ist
    • (4) Ein Fehlerregisterpaar bei denen das Fehlerregister des Masters bei Auftreten des Fehlers gesetzt wird und das Fehlerregister des Slave mit dem entsprechenden Taktversatz
    • (5) Eine Zusammenfassung der Einzelfehlersignale zu einem einheitlichen Fellersignal mit dem ein Interrupt ausgelöst werden kann
    • (6) Wie 5 jedoch bei denen die Interrupts am Master und Slave mit einem Taktversatz ausgelöst werden um die Synchronität des Zweiprozessorsystems zu gewährleisten
    • (7) Ein Fehlerregister bei dem nur der erste auftretende Fehler ein Bit setzen darf
  • Ein Verfahren bei dem
    • (1) jeder Fehlererkennungsmechanismus durch ein Bit/Zeichen/Symbol repräsentiert wird und der dieses bei Erkennen eines Fehlers setzt.
    • (2) bei dem das Register ausgewertet wird und eine dem Bit entsprechende spezielle Fehlerbehandlungsroutine ausgeführt wird
    • (3) bei dem gleichzeitig beim Erkennen des Fehlers das Bit im Register/Registerpaar gesetzt wird und ein Interrupt an dem Ein-, Zwei- oder Mehrprozessorsystem ausgelöst wird
    • (4) bei dem das Register nach einer Fehlerbehandlung vom Prozessor wieder zurückgesetzt wird

Claims (18)

  1. Register, das einem Zweirechnersystem zugeordnet ist, wobei in dem Register Informationen in Form von Bits abgelegt werden, wobei das Zweirechnersystem einen Fehlererkennungsmechanismus enthält, dadurch gekennzeichnet, dass die Bits im Register als Fehlerbits wenigstens ein Fehlersignal des Fehlererkennungsmechanismus repräsentieren.
  2. Register nach Anspruch 1, dadurch gekennzeichnet, dass das Register derart ausgebildet ist, dass der Fehlererkennungsmechanismus ein entsprechendes Fehlerbit setzen kann und dieses Fehlerbit durch das Zweirechnersystem wieder löschbar ist.
  3. Register nach Anspruch 1, dadurch gekennzeichnet, dass das Register in einem Rechner des Zweirechnersystems enthalten ist.
  4. Register nach Anspruch 1, dadurch gekennzeichnet, dass das Register in den Speicherbereich eines Rechners des Zweirechnersystems eingeblendet wird.
  5. Register nach Anspruch 1, dadurch gekennzeichnet, dass nur aufgrund eines ersten Fehlers ein Fehlerbit im Register gesetzt wird.
  6. Register nach Anspruch 1, dadurch gekennzeichnet, dass mehrere Fehlersignale zu einem einheitlichen Fehlersignal zusammengefasst werden.
  7. Register nach Anspruch 6, dadurch gekennzeichnet, dass durch das einheitliche Fehlersignal ein Interrupt ausgelöst wird.
  8. Zweirechnersystem mit einem Register nach Anspruch 1.
  9. Zweirechnersystem nach Anspruch 8, dadurch gekennzeichnet, dass für jeden Rechner ein Register vorgesehen ist.
  10. Zweirechnersystem nach Anspruch 9, dadurch gekennzeichnet, dass die beiden Rechner des Zweirechnersystems mit einem Taktversatz arbeiten und auch das Setzen des Fehlerbits in den Registern mit diesem Taktversatz erfolgt.
  11. Zweirechnersystem nach Anspruch 8, dadurch gekennzeichnet, dass mehrere Fehlersignale zu einem einheitlichen Fehlersignal zusammengefasst werden.
  12. Zweirechnersystem nach Anspruch 8, dadurch gekennzeichnet, dass durch das einheitliche Fehlersignal ein Interrupt ausgelöst wird.
  13. Zweirechnersystem nach Anspruch 9 und 12, dadurch gekennzeichnet, dass für jeden Rechner ein Register vorgesehen ist und durch jedes einheitliche Fehlersignal ein Interrupt ausgelöst wird, wobei die Interrupts mit dem Taktversatz ausgelöst werden.
  14. Verfahren zur Fehlerregistrierung in einem Zweirechnersystem, wobei in einem Register Informationen in Form von Bits abgelegt werden, wobei das Zweirechnersystem einen Fehlererkennungsmechanismus enthält, dadurch gekennzeichnet, dass die Bits im Register als Fehlerbits wenigstens ein Fehlersignal des Fehlererkennungsmechanismus repräsentieren und bei Erkennen eines Fehlers wenigstens ein Fehlerbit im Register abgelegt wird.
  15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass das wenigstens eine Register ausgewertet wird und eine Fehlerbehandlung abhängig von Position des Fehlerbits im Register durchgeführt wird.
  16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass das wenigstens eine Register ausgewertet wird und eine Fehlerbehandlung abhängig von den Fehlerbits im Register durchgeführt wird.
  17. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass durch wenigstens ein Fehlerbit im Register ein Interrupt ausgelöst wird.
  18. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass das Register nach einer Fehlerbehandlung wieder rückgesetzt oder gelöscht wird.
DE102004038596A 2004-08-06 2004-08-06 Verfahren zur Fehlerregistrierung und entsprechendes Register Withdrawn DE102004038596A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102004038596A DE102004038596A1 (de) 2004-08-06 2004-08-06 Verfahren zur Fehlerregistrierung und entsprechendes Register
CNA2005800259994A CN1993678A (zh) 2004-08-06 2005-08-01 错误登记方法及相应的寄存器
US11/659,308 US20090024908A1 (en) 2004-08-06 2005-08-01 Method for error registration and corresponding register
EP05769873A EP1776636A2 (de) 2004-08-06 2005-08-01 Verfahren zum registrieren von fehlern und entsprechendes register
PCT/EP2005/053730 WO2006015955A2 (de) 2004-08-06 2005-08-01 Verfahren zur fehlerregistrierung und entsprechendes register

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004038596A DE102004038596A1 (de) 2004-08-06 2004-08-06 Verfahren zur Fehlerregistrierung und entsprechendes Register

Publications (1)

Publication Number Publication Date
DE102004038596A1 true DE102004038596A1 (de) 2006-02-23

Family

ID=35583530

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004038596A Withdrawn DE102004038596A1 (de) 2004-08-06 2004-08-06 Verfahren zur Fehlerregistrierung und entsprechendes Register

Country Status (5)

Country Link
US (1) US20090024908A1 (de)
EP (1) EP1776636A2 (de)
CN (1) CN1993678A (de)
DE (1) DE102004038596A1 (de)
WO (1) WO2006015955A2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342832B2 (en) 2010-08-12 2016-05-17 Visa International Service Association Securing external systems with account token substitution
US20140195862A1 (en) * 2013-01-04 2014-07-10 Microsoft Corporation Software systems by minimizing error recovery logic
CN107133123A (zh) * 2017-04-28 2017-09-05 郑州云海信息技术有限公司 一种关于pmc‑raid卡奇偶校验错误的注错测试的方法
US10518801B2 (en) * 2017-10-19 2019-12-31 GM Global Technology Operations LLC Estimating stability margins in a steer-by-wire system
CN112015159B (zh) * 2019-05-31 2021-11-30 中车株洲电力机车研究所有限公司 一种基于双核mcu的故障记录存储方法及计算机系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0415547A3 (en) * 1989-08-01 1993-03-24 Digital Equipment Corporation Method of handling nonexistent memory errors
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
GB2317032A (en) * 1996-09-07 1998-03-11 Motorola Gmbh Microprocessor fail-safe system

Also Published As

Publication number Publication date
CN1993678A (zh) 2007-07-04
EP1776636A2 (de) 2007-04-25
WO2006015955A3 (de) 2006-06-08
US20090024908A1 (en) 2009-01-22
WO2006015955A2 (de) 2006-02-16

Similar Documents

Publication Publication Date Title
EP1810145B1 (de) Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
DE3686901T2 (de) Auf hohem systemniveau selbstpruefendes intelligentes e/a-steuergeraet.
EP1952239A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
WO2006015964A2 (de) Verfahren zur verzögerung von zugriffen auf daten und/oder befehle eines zweirechnersystems sowie entsprechende verzögerungseinheit
DE102011112174B4 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
DE10349581A1 (de) Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit
WO2018033344A1 (de) Verfahren und vorrichtung zur redundanten datenverarbeitung
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
EP1776636A2 (de) Verfahren zum registrieren von fehlern und entsprechendes register
EP1680737B1 (de) Verfahren und vorrichtung zur operandenverarbeitung in einer prozessoreinheit
DE10317650A1 (de) Programmgesteuerte Einheit und Verfahren
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE102004051952A1 (de) Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE102004051937A1 (de) Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
EP1224547B1 (de) Integrierter elektronischer baustein mit duplizierter kernlogik und hardware-fehlereinspeisung für prüfzwecke
DE102004051964A1 (de) Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem
DE3211265A1 (de) Zweikanaliges fail-safe-mikrocomputerschaltwerk, insbesondere fuer eisenbahnsicherungsanlagen
DE102004051950A1 (de) Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
DE102004051992A1 (de) Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems
DE102010062588B4 (de) Abgesichertes Master-Slave-Flipflop
DE2915159C2 (de)
DE10317651A1 (de) Verfahren und Vorrichtung zum Vergleichen von binären Datenworten
DD278435A1 (de) Schaltungsanordnung zur signaltechnisch sicheren ausgabe von prozessdaten

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee