DE102005054587A1 - Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen - Google Patents

Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen Download PDF

Info

Publication number
DE102005054587A1
DE102005054587A1 DE102005054587A DE102005054587A DE102005054587A1 DE 102005054587 A1 DE102005054587 A1 DE 102005054587A1 DE 102005054587 A DE102005054587 A DE 102005054587A DE 102005054587 A DE102005054587 A DE 102005054587A DE 102005054587 A1 DE102005054587 A1 DE 102005054587A1
Authority
DE
Germany
Prior art keywords
comparison unit
contents
registers
register
microprocessor cores
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
DE102005054587A
Other languages
English (en)
Inventor
Bernd Mueller
Thomas Kottke
Yorck Collani
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 DE102005054587A priority Critical patent/DE102005054587A1/de
Priority to PCT/EP2006/067555 priority patent/WO2007057270A1/de
Priority to JP2008540552A priority patent/JP2009516276A/ja
Priority to EP06807386A priority patent/EP1955164A1/de
Priority to US12/085,064 priority patent/US20100017579A1/en
Priority to KR1020087011611A priority patent/KR20080067663A/ko
Publication of DE102005054587A1 publication Critical patent/DE102005054587A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • 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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben einer programmgesteuerten Einheit mit zwei redundant betreibbaren Mikroprozessorkernen (110, 210; 120, 220) und einer den beiden Mikroprozessorkernen nachgeschalteten Vergleichseinheit (130, 230), wobei für den redundanten Betrieb jeweils ein Arbeitsregister (112, 212; 122, 222) unterschiedlichen Inhalts in den beiden Mikroprozessorkernen vorgesehen wird und wobei der Inhalt dieser Arbeitsregister an die nachgeschaltete Vergleichseinheit (130, 230) gelegt wird, um zu prüfen, ob die Vergleichseinheit eine Differenz signalisiert.

Description

  • Die vorliegende Erfindung betrifft eine programmgesteuerte Einheit mit zwei redundant betreibbaren Mikroprozessorkernen und ein Verfahren zum Betreiben einer solchen Einheit.
  • Derartige programmgesteuerte Einheiten sind beispielsweise als Mikroprozessoren, Mikrokontroller, Signalprozessoren oder dergleichen ausgebildet. Ein Mikrokontroller oder Mikroprozessor weist einen Mikrokontrollerkern bzw. Mikroprozessorkern, den sogenannten Core, einen oder mehrere Speicher (Programmspeicher, Datenspeicher etc.), Peripheriekomponenten (Oszillator, I/O-Ports, Timer, AD-Wandler, DA-Wandler, Kommunikationsschnittstellen) und ein Interrupt-System auf, die gemeinsam auf einem Chip integriert sind, und die über einen bzw. mehrere Busse (interner, externer Daten-/Adressbus) miteinander verbunden sind. Der Aufbau und die Funktionsweise einer solchen programmgesteuerten Einheit ist vielfach bekannt, so dass hier nicht näher darauf eingegangen werden soll.
  • Der Mikrokontrollerkern ist im Sinne eines modularen Mikrokontrollerkonzepts die On-Chip integrierte zentrale Steuereinheit (CPU). Er beinhaltet im wesentlichen ein mehr oder weniger komplexes Steuerwerk, mehrere Register (Daten-, Adressregister), eine Bussteuereinheit und eine Recheneinheit, die die eigentliche datenverarbeitende Funktion übernimmt. Die an die Recheneinheit angelegten Eingangsdaten (Operanden) sowie die Ergebnisse der Berechnung durch die Recheneinheit können vor bzw. nach der Bearbeitung in eigens dafür vorgesehene Register oder Speicherstellen untergebracht sein. Sowohl bei der Verarbeitung der Operanden als auch beim Anlegen der Operanden kann es zu Fehlern kommen, die sich nachteilig auf das Ergebnis auswirken können. Eine Verfälschung eingangsseitig eingekoppelter Operanden kann beispielsweise dadurch geschehen, dass das jeweilige Eingangsdatum repräsentierende Potential höher oder niedriger ist als vorgesehen. Beim Über- bzw. Unterschreiten einer bestimmten Schwelle kann dann das einen logischen Zustand repräsentierende Potential einen anderen logischen Zustand darstellen als ursprünglich vorgesehen. Beispielsweise kann somit eine logische "1" zu einer logischen "0" geändert werden, wodurch das resultierende Ergebnis der Berechnung signifikant verfälscht werden kann. Auf der anderen Seite kann selbstverständlich eine falsche Berechnung durch die Recheneinheit zu solchen Ergebnisverfälschungen führen.
  • Stand der Technik
  • Aus diesem Grunde sind moderne Mikroprozessorsysteme mit einem System zur Fehlererkennung oder Fehlerbeseitigung ausgestattet, mit denen ein Auftreten der Fehler identifiziert und angezeigt werden kann (Failure Identification) bzw. in Abhängigkeit von der Funktionalität des Systems Vorkehrungen für den Fall eines auftretenden Fehlers getroffen werden können. Eine Möglichkeit der Fehlererkennung besteht in der Verwendung einer redundanten Hardware, wobei statt eines Mikroprozessorkerns zwei Mikroprozessorkerne und eine den beiden Cores nachgeschaltete Vergleichseinheit zum Einsatz kommen. Bei derartigen Zweiprozessorsystemen (Dual-Cores) kann im redundanten Betrieb bei identischen Eingangsdaten mittels der genannten Vergleichseinheit bei Nichtübereinstimmen der Ergebnisse der beiden Cores durch die Vergleichseinheit ein Fehlersignal erzeugt werden. Ein solches Computersystem ist beispielsweise aus der WO 01/46806 bekannt.
  • Aus der DE 103 17 650 A1 der Anmelderin sind ein Mikrokontroller mit Fehlererkennungssystem und ein Verfahren zum Betreiben des selbigen bekannt. Der Mikrokontroller weist hier einen einzelnen Mikrokontrollerkern (Core) auf, der seinerseits zwei Recheneinheiten (ALU = arithmetisch logische Einheit) zur Datenverarbeitung aufweist. Somit wird hier nicht der gesamte Mikrokontrollerkern redundant ausgeführt. Die benötigte Chipfläche kann hierdurch signifikant reduziert werden. Die Fehlererkennung erfolgt im Testbetrieb, indem gleiche Befehle oder Daten parallel in beide Recheneinheiten gekoppelt werden. Eingangsseitig werden die Prüfsummen der in die beiden Recheneinheiten eingekoppelten Daten gebildet. Die jeweilige Prüfsumme wird mit der in einem entsprechenden Register abgelegten Prüfsumme verglichen und bei einer Verfälschung werden die Daten korrigiert und nochmals eingekoppelt. Die beiden Ausführungs- oder Recheneinheiten des Mikrokontrollers erzeugen jeweils ein Ergebnis, das bei gleichen eingekoppelten Daten übereinstimmen muß. Die Ergebnisdaten und/oder deren Codierung (ECC-Prüfsumme) werden in einer Vergleichseinheit miteinander verglichen. Bei Übereinstimmung wird ein Freigabesignal erzeugt, andernfalls kann auf einen Fehler innerhalb einer der Ausführungseinheiten bzw. auf eine fehlerhafte Codie rung des Ergebnisses geschlossen werden. Es ist möglich, transiente, permanente und Laufzeitfehler zu erkennen.
  • Aus der DE 103 17 651 A1 der Anmelderin sind ein Verfahren und eine Vorrichtung zum Vergleichen von binären Datenworten für sicherheitsrelevante Fahrzeugsysteme, wie ABS, ESP, Lenk- und Fahrwerkregelungen, bekannt. Ausgegangen wird hier von einem Dual-Core-Rechner, also einem Mikrokontroller mit zwei CPUs (zentrale Recheneinheiten), in denen alle Funktionen redundant berechnet und die jeweiligen Ausgabewerte miteinander verglichen werden. Bei Nichtübereinstimmung der Ausgabewerte erfolgt eine dem Fehler entsprechende Systemreaktion, die auch ein Abschalten des Systems beinhalten kann. Um eine situationsgerechte Fehlerbehandlung zu realisieren, wird in der genannten Schrift vorgeschlagen, die höherwertigen Bits der Datenworte der Ausgabewerte getrennt von den niederwertigen Bits miteinander zu vergleichen. Hierdurch kann bei einer Nichtübereinstimmung der weniger signifikanten, niederwertigen Bits eine entsprechende Fehlerbehandlung erfolgen, bei der beispielsweise anstelle eines negativen Vergleichsergebnisses ein Ersatzwert weitergegeben wird, der bei Übereinstimmung der höherwertigen Bits der Datenworte insgesamt zu einem positiven Gesamtergebnis führt.
  • Obgleich die vorliegende Erfindung von zwei Prozessorsystemen (Dual-Cores) ausgeht, sollen damit auch Prozessorsysteme umfaßt sein, die einen einzelnen Mikrokontrollerkern mit zwei Recheneinheiten aufweisen (vgl. DE 103 17 650 A1 ).
  • Ein allen oben behandelten Zweiprozessorsystemen gemeinsames Problem stellen die Vergleichseinheiten der Ausgangsdaten als möglichen Single Point of Failure dar. Eine fehlerhafte Vergleichseinheit führt dazu, dass trotz ordnungsge mäß arbeitender Cores bzw. Recheneinheiten ein Fehler angezeigt wird. Schlimmer ist der Fall, wenn aufgrund einer fehlerhaften Vergleichseinheit fehlerhaft arbeitende Cores bzw. Recheneinheiten nicht erkannt werden, weil die Vergleichseinheit keine Differenz der Signale signalisiert.
  • Bisher werden die Vergleichseinheiten getestet, indem der Datenpfad an deren Eingang aufgetrennt wird und extern Daten angelegt werden. Alternativ kann die Vergleichseinheit selbsttestend ausgelegt werden (TSC-Checker = Totally Self-Checker), womit jedoch ein erhöhter Hardwareaufwand verbunden ist. Ein Umschalter vor dem Vergleicher, der verschiedene Daten nur zu Testzwecken einfügt, stellt selbst wiederum einen möglichen Single Point of Failure dar und sollte daher vermieden werden. Beispielsweise existiert dann das Problem, sicherzustellen, dass die Zurückschaltung korrekt funktioniert.
  • Es besteht folglich ein Bedarf, die genannten Vergleichseinheiten einfach zu testen, ohne dass eine Umschaltung des Datenpfades des Prozessors erfolgen muß.
  • Vorteile der Erfindung
  • Das erfindungsgemäße Verfahren zum Betreiben einer programmgesteuerten Einheit mit zwei redundant betreibbaren Mikroprozessorkernen gemäß Anspruch 1 sowie eine entsprechende programmgesteuerte Einheit gemäß Anspruch 8 weisen gegenüber den bekannten Lösungsansätzen den Vorteil eines vereinfachten Vergleichertests auf, ohne den Chipflächenbedarf zu erhöhen.
  • Die Erfindung geht von einer programmgesteuerten Einheit mit zwei redundant betreibbaren Mikroprozessorkernen und einer diesen beiden Kernen (Cores) nachgeschalteten Vergleichseinheit aus. Erfindungsgemäß wird für den redundanten Betrieb jeweils ein Arbeitsregister unterschiedlichen Inhalts in den beiden Cores vorgesehen. Dies ist die einzige Differenz bei diesem Zweiprozessorsystem. Der Registerinhalt wird an die Vergleichseinheit gelegt, um zu prüfen, ob die Vergleichseinheit eine Differenz signalisiert. In der Praxis wird der Registerinhalt durch Load-Store-Operationen auf den Datenbus gelegt. Da die Registerinhalte verschieden sind, muß die Vergleichseinheit, soweit sie fehlerfrei arbeitet, spätestens beim Zurückschreiben des Wertes in den Speicher eine Differenz signalisieren.
  • Durch die Erfindung kann in einfacher Weise ohne Erhöhung des Platzbedarfs im Chip die Vergleichseinheit als möglicher Single Point of Failure getestet werden.
  • Es ist vorteilhaft, wenn jeweils ein Register unterschiedlichen Inhalts in den beiden Mikroprozessorkernen vorgesehen wird, wobei der Inhalt der jeweiligen Arbeitsregister durch Verarbeiten oder Kopieren der Inhalte der unterschiedlichen Register gebildet wird. In diesem Fall sind zwei unterschiedliche Register in den Mikroprozessorkernen vorzusehen, wobei zum Test der Vergleichseinheit beide Prozessoren beispielsweise im Lock-Modus ein Programm ausführen, welches zuerst die Inhalte der unterschiedlichen Register in die jeweiligen Arbeitsregister kopiert. Anschließend wird der Inhalt eines jeden Arbeitsregisters über die Vergleichseinheit beispielsweise in einen Speicher geschrieben. Arbeitet die Vergleichseinheit korrekt, wird diese ein Fehlersignal generieren, da der Inhalt der Arbeitsregister und der Register verschieden ist. Anstelle des genannten Kopiervorgangs kann der Inhalt der jeweiligen Arbeitsregister auch durch anderweitiges Verarbeiten der Inhalte der unterschiedlichen Register gebildet werden.
  • Soll an Standardprozessoren keine Änderung vorgenommen werden, so ist es vorteilhaft, den Mikroprozessorkernen ein Datum unterschiedlichen Wertes zu liefern, wenn sie auf eine definierte Adresse im Adressraum zugreifen. In diesem Fall wird folglich der Inhalt der jeweiligen Arbeitsregister durch jeweiligen Zugriff auf definierte Adressen unterschiedlichen Inhalts geliefert. Letztere können zu Registern gehören, die beispielsweise in der Vergleichseinheit liegen.
  • In vorteilhafter weise können bereits vorhandene Register bei redundant betreibbaren Mikroprozessorkernen für die vorliegende Erfindung verwendet werden. Bei Dual-Core Prozessoren (Dual-Cores/Split/Log-Prozessoren), die in einer ersten Betriebsart unabhängig voneinander, in einer zweiten Betriebsart redundant betrieben werden können, existieren in der Regel Register, die im getrennten Betrieb es der Software ermöglichen, zu ermitteln, auf welcher CPU (Core) sie gerade ausgeführt wird. Beim Umschalten in den redundanten Betrieb bleiben die Registerinhalte erhalten und sind somit unterschiedlich.
  • Um eine möglichst vollständige Fehlerdetektion gewährleisten zu können, ist es vorteilhaft, die Inhalte der beiden Arbeitsregister zu verändern, wobei nach einer Änderung die Inhalte unterschiedlich bleiben. Hierzu können die Inhalte der Arbeitsregister insbesondere durch Anwenden derselben logischen Verknüpfung bzw. Operation auf beide Register verändert werden. Eine solche Verknüpfung mit beliebigen anderen Werten, die ja in den beiden Prozessoren gleich sind, ermöglicht das Erzeugen eines jeglichen Bitmusters und einer jeglichen Bitmusterdifferenz in den beiden Mikroprozessorkernen. Somit ist ein vollständiger Test der Vergleichseinheit möglich. Zu den auftretenden Fehlern gehören auch Stuck-At und Kopplungsfehler. Bei den Stuck-At-Fehlern bleibt eine Leitung auf einem hohen oder niedrigen Spannungspegel, obwohl der Spannungspegel bereits herabgesetzt bzw. heraufgesetzt sein sollte. Dieser Fehler kann permanent oder transient (für einen bestimmten Zeitraum) auftreten. Unter Kopplungsfehlern versteht man das Überspringen eines Spannungspegels auf eine parallele Leitung. Um sämtliche Fehler zuverlässig testen zu können, sind Permutationen (mit unterschiedlicher Anzahl von "1" und "0") notwendig. Ist der Registerinhalt des Cores 1 beispielsweise "0001" und derjenige des Cores 2 "0010", so kann durch die logische Operation "AND 0001" der Registerinhalt des Cores 1 auf "0001" und derjenige des Cores 2 auf "0000" gesetzt werden, während die logische Operation der zuletzt genannten Registerinhalte mit dem Operator "NOT" die Registerinhalte "1110" für den Core 1 bzw. "1111" für den Core 2 ergibt.
  • Für den Fachmann ist demnach ersichtlich, dass beliebige Registerinhalte hergestellt werden können.
  • Es kann sinnvoll sein, eine weitere Vergleichseinheit nämlich für Lesezugriffe von Instruktionen oder Daten vorzusehen, wobei eine derartige Vergleichseinheit wiederum einen Single Point of Failure darstellt. Zum Testen einer solchen Vergleichseinheit werden die an die beiden Mikroprozessorkerne geleiteten Instruktionen oder Daten durch Programmverzweigungen verändert, um zu prüfen, ob die Vergleichseinheit für Lesezugriffe eine Differenz signalisiert. Durch eine solche Sprungoperation wird beispielsweise die an den Core 1 geleitete Instruktion für den Core 2 auf eine andere Stelle gesetzt, so dass die Vergleichseinheit für Lesezugriffe bei fehlerfreiem Betrieb feststellen muß, dass an die beiden Cores unterschiedliche Instruktionen geleitet werden.
  • Die obigen Ausführungen zur Erfindung sind in gleicher Weise für die beanspruchte programmgesteuerte Einheit mit zwei redundant betreibbaren Mikroprozessorkernen und eine den beiden Mikroprozessorkernen nachgeschalteten Vergleichseinheit gültig. Zur Vermeidung von Wiederholungen sei auf das Obige verwiesen. Weiterhin sei betont, dass die Merkmale der vorliegenden Erfindung nicht nur in der angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung eingesetzt werden können.
  • Zeichnungen
  • Im Folgenden soll ein Ausführungsbeispiel die Erfindung und deren Vorteile anhand der beigefügten Zeichnung näher erläutern.
  • 1 zeigt schematisch eine erste Ausführungsform der Erfindung und
  • 2 zeigt schematisch eine alternative Ausführungsform der Erfindung.
  • Beschreibung der Ausführungsbeispiele
  • 1 zeigt eine mögliche Ausführungsform der Erfindung. Das Gesamtsystem 100 besitzt zwei Prozessoren (Cores) 110 und 120 mit jeweils einem Register 111 bzw. 121, die einen unterschiedlichen Inhalt aufweisen. Beide Prozessoren sind mit einer Vergleichseinheit 130 verbunden, die ihrerseits wieder über eine Schnittstelle 140 mit übrigen Rechnereinheiten wie Speicher oder Peripherie (nicht eingezeichnet) verbunden ist. Je nach Ausführung vergleicht die Vergleichseinheit nur Schreiboperationen oder Schreib- und Leseoperationen der Prozessoren auf Gleichheit.
  • Zum Test der Vergleichseinheit 130 führen beide Prozessoren im Lock-Modus ein Programm aus, welches zuerst das Register 111 bzw. 121 in ein Arbeitsregister 112 bzw. 122 kopiert. Anschließend wird der Inhalt dieses Arbeitsregisters über die Vergleichseinheit 130 und die Schnittstelle 140 in den Speicher geschrieben. Arbeitet die Vergleichseinheit 130 korrekt, wird diese ein Fehlersignal generieren, da der Inhalt der Register 112 und 122 verschieden sind, da ja auch der Inhalt der Register 111 und 121 verschieden ist. Zum vollständigen Test der Vergleichseinheit 130 kann der Wert von Register 111 bzw. 121 nach dem Kopieren in das Arbeitsregister wie zuvor beschrieben, beispielsweise durch Anwendung logischer Operationen, manipuliert werden. Werden auch Leseoperationen durch die Vergleichseinheit 130 verglichen, so findet ein Test durch die Verzweigung des Programmkontrollflusses statt.
  • 2 beschreibt eine alternative Ausführungsform der Erfindung. Das Gesamtsystem 200 besitzt zwei Prozessoren (Cores) 210 und 220 mit jeweils einem Arbeitsregister 212 bzw. 222. Im Gegensatz zum System 100 sind die Prozessoren identisch aufgebaut und besitzen kein Register mit einem unterschiedlichen Inhalt. Beide Prozessoren sind mit einer Vergleichseinheit 230 verbunden, die ihrerseits wieder über eine Schnittstelle 240 mit übrigen Rechnereinheiten wie Speicher oder Peripherie (nicht eingezeichnet) verbunden ist. Die Vergleichseinheit 230 besitzt zwei Register 231 und 232. Deren Inhalt ist verschieden. Die Prozessoren kön nen den Inhalt dieser Register in ein Arbeitsregister kopieren (laden) indem der Prozessor auf eine definierte Adresse im Adressraum zugreift. Die Vergleichseinheit detektiert den Zugriff auf diese Adresse und liefert für den Prozessor 210 den Inhalt des Registers 231 und für den Prozessor 220 den Inhalt des Register 232. Der Zugriff wird in diesem Fall nicht an die Schnittstelle 240 weitergeleitet. Je nach Ausführung vergleicht die Vergleichseinheit nur Schreiboperationen oder Schreib- und Leseoperationen der Prozessoren auf Gleichheit. Der Rest des Testverfahrens ist identisch zu dem zuvor geschildert.

Claims (12)

  1. Verfahren zum Betreiben einer programmgesteuerten Einheit mit zwei redundant betreibbaren Mikroprozessorkernen (110, 210; 120, 220) und einer den beiden Mikroprozessorkernen nachgeschalteten Vergleichseinheit (130, 230), wobei für den redundanten Betrieb jeweils ein Arbeitsregister (112, 212; 122, 222) unterschiedlichen Inhalts in den beiden Mikroprozessorkernen vorgesehen wird, und wobei der Inhalt dieser Arbeitsregister an die nachgeschaltete Vergleichseinheit (130, 230) gelegt wird, um zu prüfen, ob die Vergleichseinheit eine Differenz signalisiert.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass jeweils ein Register (111, 121) unterschiedlichen Inhalts in den beiden Mikroprozessorkernen (110, 120) vorgesehen wird, wobei der Inhalt der jeweiligen Arbeitsregister (112, 122) durch Verarbeiten oder Kopieren der Inhalte der unterschiedlichen Register (111, 121) gebildet wird.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Inhalt der jeweiligen Arbeitsregister (212, 222) durch jeweiligen Zugriff auf definierte Adressen unterschiedlichen Inhalts geliefert wird.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die Adressen unterschiedlichen Inhalts zu Register (231, 232) gehören, die in der Vergleichseinheit (230) liegen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Inhalte der beiden Arbeitsregister derart verändert werden, dass nach einer Änderung die Inhalte der Arbeitsregister unterschiedlich bleiben.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Inhalte der Arbeitsregister durch Anwenden derselben logischen Verknüpfung auf die Arbeitsregister verändert werden.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass eine weitere Vergleichseinheit für Lesezugriffe von Instruktionen oder Daten vorgesehen wird, wobei die an die beiden Mikroprozessorkerne geleiteten Instruktionen bzw. Daten durch Programmverzweigungen verändert werden, um zu prüfen, ob die Vergleichseinheit für Lesezugriffe eine Differenz signalisiert.
  8. Programmgesteuerte Einheit mit zwei redundant betreibbaren Mikroprozessorkernen (110, 210; 120, 220) und einer den beiden Mikroprozessorkernen nachgeschalteten Vergleichseinheit (130, 230), wobei für den redundanten Betrieb jeweils ein Arbeitsregister (112, 212; 122, 222) unterschiedlichen Inhalts in den beiden Mikroprozessorkernen vorgesehen ist, und wobei Mittel vorgesehen sind, um den Inhalt dieser Arbeitsregister an die nachgeschaltete Vergleichseinheit (130, 230) zu legen, um zu prüfen, ob die Vergleichseinheit eine Differenz signalisiert.
  9. Programmgesteuerte Einheit nach Anspruch 8, dadurch gekennzeichnet, dass in den beiden Mikroprozessorkernen (110, 120) jeweils ein Register (111, 121) unterschiedlichen Inhalts vorgesehen ist, um den Inhalt der jeweiligen Arbeitsregister (112, 122) durch Verarbeiten der Inhalte der unterschiedlichen Register (11, 121) zu bilden.
  10. Programmgesteuerte Einheit nach Anspruch 8, dadurch gekennzeichnet, dass in der Vergleichseinheit (230) zwei Register (231, 232) unterschiedlichen Inhalts vorgesehen sind, wobei deren Inhalt durch Zugriff auf entsprechend definierte Adressen in die Arbeitsregister (212, 222) der Mikroprozessorkerne (210, 220) zu laden sind.
  11. Programmgesteuerte Einheit nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, dass Mittel vorgesehen sind, um den jeweiligen Inhalt der beiden Arbeitsregister zu verändern, wobei auch nach einer solchen Änderung die Registerinhalte voneinander unterschiedlich sind.
  12. Programmgesteuerte Einheit nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass eine weitere Vergleichseinheit für Lesezugriffe von Instruktionen oder Daten vorgesehen ist, und dass Mittel vorgesehen sind, um die Instruktionen bzw. Daten durch Programmverzweigungen zu verändern, um zu prüfen, ob die Vergleichseinheit für Lesezugriffe eine Differenz signalisiert.
DE102005054587A 2005-11-16 2005-11-16 Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen Withdrawn DE102005054587A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE102005054587A DE102005054587A1 (de) 2005-11-16 2005-11-16 Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen
PCT/EP2006/067555 WO2007057270A1 (de) 2005-11-16 2006-10-18 Programmgesteuerte einheit und verfahren zum betreiben derselbigen
JP2008540552A JP2009516276A (ja) 2005-11-16 2006-10-18 プロプラム制御型ユニットおよびその駆動方法
EP06807386A EP1955164A1 (de) 2005-11-16 2006-10-18 Programmgesteuerte einheit und verfahren zum betreiben derselbigen
US12/085,064 US20100017579A1 (en) 2005-11-16 2006-10-18 Program-Controlled Unit and Method for Operating Same
KR1020087011611A KR20080067663A (ko) 2005-11-16 2006-10-18 프로그램 제어식 유닛과, 이 프로그램 제어식 유닛의 동작방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005054587A DE102005054587A1 (de) 2005-11-16 2005-11-16 Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen

Publications (1)

Publication Number Publication Date
DE102005054587A1 true DE102005054587A1 (de) 2007-05-24

Family

ID=37727090

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005054587A Withdrawn DE102005054587A1 (de) 2005-11-16 2005-11-16 Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen

Country Status (6)

Country Link
US (1) US20100017579A1 (de)
EP (1) EP1955164A1 (de)
JP (1) JP2009516276A (de)
KR (1) KR20080067663A (de)
DE (1) DE102005054587A1 (de)
WO (1) WO2007057270A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202016007417U1 (de) * 2016-12-03 2018-03-06 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Steuerung Redundanter Verarbeitungseinheiten

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005055067A1 (de) * 2005-11-18 2007-05-24 Robert Bosch Gmbh Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System
WO2009125371A2 (en) * 2008-04-09 2009-10-15 Nxp B.V. A method and system for power management
KR101600951B1 (ko) 2009-05-18 2016-03-08 삼성전자주식회사 고체 상태 드라이브 장치
KR101978984B1 (ko) * 2013-05-14 2019-05-17 한국전자통신연구원 프로세서의 오류를 검출하는 장치 및 방법
JP6274947B2 (ja) * 2014-03-31 2018-02-07 日立オートモティブシステムズ株式会社 車載制御装置のマイクロプロセッサの異常診断方法
CN111190774B (zh) * 2019-12-26 2023-04-14 北京时代民芯科技有限公司 一种多核处理器可配置双模冗余结构
DE102020104595B3 (de) * 2020-02-21 2021-05-12 Infineon Technologies Ag Integrierter Schaltkreis mit Selbsttestschaltung, Verfahren zum Betreiben eines integrierten Schaltkreises mit Selbsttestschaltung, Mehrkernprozessoreinrichtung und Verfahren zum Betreiben einer Mehrkernprozessoreinrichtung

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4438494A (en) * 1981-08-25 1984-03-20 Intel Corporation Apparatus of fault-handling in a multiprocessing system
US4967347A (en) * 1986-04-03 1990-10-30 Bh-F (Triplex) Inc. Multiple-redundant fault detection system and related method for its use
US4835459A (en) * 1986-05-16 1989-05-30 Hughes Aircraft Company Automatic fault insertion system (AFIS)
IT1213344B (it) * 1986-09-17 1989-12-20 Honoywell Information Systems Architettura di calcolatore a tolleranza di guasto.
US5276690A (en) * 1992-01-30 1994-01-04 Intel Corporation Apparatus utilizing dual compare logic for self checking of functional redundancy check (FRC) logic
US6408402B1 (en) * 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
US7490237B1 (en) * 2003-06-27 2009-02-10 Microsoft Corporation Systems and methods for caching in authentication systems
DE102005055067A1 (de) * 2005-11-18 2007-05-24 Robert Bosch Gmbh Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202016007417U1 (de) * 2016-12-03 2018-03-06 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Steuerung Redundanter Verarbeitungseinheiten
US11016523B2 (en) 2016-12-03 2021-05-25 Wago Verwaltungsgesellschaft Mbh Control of redundant processing units

Also Published As

Publication number Publication date
JP2009516276A (ja) 2009-04-16
WO2007057270A1 (de) 2007-05-24
KR20080067663A (ko) 2008-07-21
EP1955164A1 (de) 2008-08-13
US20100017579A1 (en) 2010-01-21

Similar Documents

Publication Publication Date Title
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
EP1810145B1 (de) Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
DE102005054587A1 (de) Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen
WO2007057271A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE19835610A1 (de) Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
DE102008004205A1 (de) Schaltungsanordnung und Verfahren zur Fehlerbehandlung in Echtzeitsystemen
EP1588380B1 (de) Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens
DE10317650A1 (de) Programmgesteuerte Einheit und Verfahren
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
DE102019131865A1 (de) Verfahren und vorrichtung zur eigendiagnose der ram-fehlererkennungslogik eines antriebsstrangcontrollers
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102006036386A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
DE102004051966A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102009001420A1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
DE102007040721A1 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102005037226A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch markieren von Registern
EP1379953B1 (de) Programmgesteuerte einheit
DE2915113A1 (de) Busvorrichtung fuer ein datenverarbeitendes system
WO2016050857A1 (de) Verfahren zur datenverarbeitung zum ermitteln, ob bei einer ausführung eines programms ein fehler aufgetreten ist und datenverarbeitungsanordnungen zum erzeugen von programm-code
EP1224547B1 (de) Integrierter elektronischer baustein mit duplizierter kernlogik und hardware-fehlereinspeisung für prüfzwecke
DE3731097A1 (de) Schaltungsanordnung zur ueberwachung einer einrichtung mit zwei mikroprozessoren, insbesondere einer kraftfahrzeug-elektronik

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110601

Effective date: 20110531