DE102005054587A1 - Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen - Google Patents
Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/267—Reconfiguring circuits for testing, e.g. LSSD, partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2215—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements 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 Gesamtsystem100 besitzt zwei Prozessoren (Cores)110 und120 mit jeweils einem Register111 bzw.121 , die einen unterschiedlichen Inhalt aufweisen. Beide Prozessoren sind mit einer Vergleichseinheit130 verbunden, die ihrerseits wieder über eine Schnittstelle140 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 Register111 bzw.121 in ein Arbeitsregister112 bzw.122 kopiert. Anschließend wird der Inhalt dieses Arbeitsregisters über die Vergleichseinheit130 und die Schnittstelle140 in den Speicher geschrieben. Arbeitet die Vergleichseinheit130 korrekt, wird diese ein Fehlersignal generieren, da der Inhalt der Register112 und122 verschieden sind, da ja auch der Inhalt der Register111 und121 verschieden ist. Zum vollständigen Test der Vergleichseinheit130 kann der Wert von Register111 bzw.121 nach dem Kopieren in das Arbeitsregister wie zuvor beschrieben, beispielsweise durch Anwendung logischer Operationen, manipuliert werden. Werden auch Leseoperationen durch die Vergleichseinheit130 verglichen, so findet ein Test durch die Verzweigung des Programmkontrollflusses statt. -
2 beschreibt eine alternative Ausführungsform der Erfindung. Das Gesamtsystem200 besitzt zwei Prozessoren (Cores)210 und220 mit jeweils einem Arbeitsregister212 bzw. 222. Im Gegensatz zum System100 sind die Prozessoren identisch aufgebaut und besitzen kein Register mit einem unterschiedlichen Inhalt. Beide Prozessoren sind mit einer Vergleichseinheit230 verbunden, die ihrerseits wieder über eine Schnittstelle240 mit übrigen Rechnereinheiten wie Speicher oder Peripherie (nicht eingezeichnet) verbunden ist. Die Vergleichseinheit230 besitzt zwei Register231 und232 . 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 Prozessor210 den Inhalt des Registers231 und für den Prozessor220 den Inhalt des Register232 . Der Zugriff wird in diesem Fall nicht an die Schnittstelle240 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)
- 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. - 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. - Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Inhalt der jeweiligen Arbeitsregister (
212 ,222 ) durch jeweiligen Zugriff auf definierte Adressen unterschiedlichen Inhalts geliefert wird. - Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die Adressen unterschiedlichen Inhalts zu Register (
231 ,232 ) gehören, die in der Vergleichseinheit (230 ) liegen. - 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.
- Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Inhalte der Arbeitsregister durch Anwenden derselben logischen Verknüpfung auf die Arbeitsregister verändert werden.
- 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.
- 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. - 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. - 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. - 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.
- 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.
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)
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)
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)
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 |
-
2005
- 2005-11-16 DE DE102005054587A patent/DE102005054587A1/de not_active Withdrawn
-
2006
- 2006-10-18 KR KR1020087011611A patent/KR20080067663A/ko not_active Application Discontinuation
- 2006-10-18 WO PCT/EP2006/067555 patent/WO2007057270A1/de active Application Filing
- 2006-10-18 EP EP06807386A patent/EP1955164A1/de not_active Withdrawn
- 2006-10-18 JP JP2008540552A patent/JP2009516276A/ja not_active Ceased
- 2006-10-18 US US12/085,064 patent/US20100017579A1/en not_active Abandoned
Cited By (2)
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 |