WO2007057270A1 - Programmgesteuerte einheit und verfahren zum betreiben derselbigen - Google Patents

Programmgesteuerte einheit und verfahren zum betreiben derselbigen Download PDF

Info

Publication number
WO2007057270A1
WO2007057270A1 PCT/EP2006/067555 EP2006067555W WO2007057270A1 WO 2007057270 A1 WO2007057270 A1 WO 2007057270A1 EP 2006067555 W EP2006067555 W EP 2006067555W WO 2007057270 A1 WO2007057270 A1 WO 2007057270A1
Authority
WO
WIPO (PCT)
Prior art keywords
comparison unit
contents
registers
program
microprocessor cores
Prior art date
Application number
PCT/EP2006/067555
Other languages
English (en)
French (fr)
Inventor
Bernd Mueller
Thomas Kottke
Yorck Collani
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 EP06807386A priority Critical patent/EP1955164A1/de
Priority to JP2008540552A priority patent/JP2009516276A/ja
Priority to US12/085,064 priority patent/US20100017579A1/en
Publication of WO2007057270A1 publication Critical patent/WO2007057270A1/de

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

Definitions

  • the present invention relates to a program-controlled unit with two redundantly operable microprocessor cores and to a method for operating such a unit.
  • Such program-controlled units are designed, for example, as microprocessors, microcontrollers, signal processors or the like.
  • a microcontroller or microprocessor has a microcontroller core or microprocessor core, the so-called core, one or more memories (program memory, data memory, etc.), peripheral components (oscillator, I / O ports, timers, AD converters, DA). Converters, communication interfaces) and an interrupt system, which are integrated together on a chip, and which are interconnected via one or more buses (internal, external data / address bus).
  • the structure and operation of such a program-controlled unit is widely known, so that it will not be discussed in more detail here.
  • the microcontroller core is the on-chip integrated central control unit (CPU) in the sense of a modular microcontroller concept. It essentially contains a more or less complex control unit, several registers (data,
  • a corruption of input-coupled operands can be done, for example, that the respective input date representing potential is higher or lower than intended. When exceeding or falling below a certain threshold, the potential representing a logical state can represent a different logical state than originally provided.
  • ALU arithmetic logic unit
  • the error detection takes place in the test mode by the same instructions or data are coupled in parallel in both arithmetic units.
  • the checksums of the data coupled into the two arithmetic units are formed. The respective checksum is compared with the checksum stored in a corresponding register and in the event of a corruption, the data is corrected and coupled again.
  • the two execution or arithmetic units of the microcontroller each produce a result that must coincide with the same coupled data.
  • the result data and / or their coding are compared with one another in a comparison unit. If they match, an enable signal is generated, otherwise it can be concluded that there is an error within one of the execution units or an incorrect coding of the result. It is possible to detect transient, permanent and runtime errors.
  • DE 103 17 651 A1 of the applicant discloses a method and a device for comparing binary data words for safety-relevant vehicle systems, such as ABS, ESP, steering and chassis regulations.
  • the starting point here is a dual-core computer, ie a microcontroller with two CPUs (central processing units) in which all functions are calculated redundantly and the respective output values are compared with one another. If the output values do not match, a corresponding error occurs
  • processor systems which have a single microcontroller core with two arithmetic units (see DE 103 17 650 A1).
  • a problem common to all two-processor systems discussed above is that the comparison units of the output data represent a possible single point of failure.
  • a faulty comparison unit results in an error being displayed despite correctly operating cores or arithmetic units. Worse is the case when due to a faulty comparison unit incorrectly operating cores or arithmetic units are not recognized, because the comparison unit signals no difference of the signals.
  • the comparison units are tested by the data path is separated at the input and externally data are created.
  • the inventive method for operating a program-controlled unit with two redundantly operable microprocessor cores according to claim 1 and a corresponding program-controlled unit according to claim 8 have over the known approaches to the advantage of a simplified comparator test, without increasing the chip area requirements.
  • the invention is based on a program-controlled unit with two redundantly operable microprocessor cores and a comparison unit connected downstream of these two cores.
  • a working register of different contents is provided in each of the two cores for the redundant operation. This is the only difference in this two-processor system.
  • the register contents are applied to the comparison unit in order to check whether the comparison unit signals a difference.
  • the contents of the register are placed on the data bus through load-store operations. Since the register contents are different, the comparison unit, insofar as it operates without error, must signal a difference at the latest when writing back the value to the memory.
  • the invention can be tested in a simple manner without increasing the space requirement in the chip, the comparison unit as a potential single point of failure.
  • a register of different content is provided in the two microprocessor cores, the contents of the respective working registers being processed by copying or copying the contents of the different ones Register is formed.
  • two different registers are to be provided in the microprocessor cores, for testing the comparison unit both processors, for example in lock mode, execute a program which first copies the contents of the different registers into the respective working registers. Subsequently, the content of each working register is written to a memory via the comparison unit, for example. If the comparison unit works correctly, it will generate an error signal because the contents of the working registers and the registers are different.
  • the content of the respective working registers can also be formed by otherwise processing the contents of the different registers.
  • the microprocessor cores If no change is to be made to standard processors, it is advantageous to provide the microprocessor cores with a datum of different value when they access a defined address in the address space. In this case, therefore, the contents of the respective working registers are provided by respective access to defined addresses of different contents.
  • the latter can belong to registers, which are located, for example, in the comparison unit.
  • registers in redundantly operable microprocessor cores can be used for the present invention.
  • dual-core processors dual cores / split / log processors
  • registers that allow the software in the separate operation Determine on which CPU (Core) it is currently running.
  • the contents of the working registers can in particular by applying the same logical link or operation can be changed to both registers.
  • Such a linkage with any other values, which are the same in the two processors makes it possible to generate any bit pattern and any bit pattern difference in the two microprocessor cores.
  • the errors that occur also include stucco and coupling errors. For Stuck-At errors, a line remains at a high or low voltage level, although the voltage level should already be lowered. This error can occur permanently or transiently (for a certain period of time).
  • Coupling errors are the skipping of a voltage level to a parallel line.
  • permutations with different numbers of "1” and "0" are necessary. For example, if the register content of the core 1 is "0001" and that of the core 2 is “0010", the register contents of the core 1 can be set to "0001” and that of the core 2 can be set to "0000” by the logical operation "AND 0001". while the logical operation of the latter register contents with the operator "NOT" gives the register contents "1110” for the core 1 and "1111” for the core 2 respectively.
  • Figure 1 shows schematically a first embodiment of the invention
  • FIG. 2 shows schematically an alternative embodiment of the invention.
  • FIG. 1 shows a possible embodiment of the invention.
  • the overall system 100 has two processors (cores) 110 and 120, each with a register 111 or 121, which have a different content. Both processors are connected to a comparison unit 130, which in turn via an interface 140 with other computer units such as memory or peripherals
  • the comparison unit compares only write operations or write and read operations of the processors for equality.
  • both processors execute a program in lock mode, which first inserts the register 111 or 121 into an operating mode. gister 112 or 122 copied. Subsequently, the content of this working register is written to the memory via the comparison unit 130 and the interface 140. If the comparison unit 130 is operating correctly, it will generate an error signal because the contents of the registers 112 and 122 are different, since the contents of the registers 111 and 121 are also different.
  • the value of registers 111 and 121, respectively, after being copied to the working register can be manipulated as previously described, for example, by using logical operations. If read operations are also compared by the comparison unit 130, a test takes place through the branch of the program control flow.
  • FIG. 2 describes an alternative embodiment of the invention.
  • the overall system 200 has two processors (cores) 210 and 220, each with a working register 212 or 222.
  • the processors are of identical construction and have no register with a different content.
  • Both processors are connected to a comparison unit 230, which in turn is again connected via an interface 240 to other computer units such as memory or peripherals (not shown).
  • the comparison unit 230 has two registers 231 and 232. Their contents are different.
  • the processors can copy (load) the contents of these registers into a working register by the processor accessing a defined address in the address space.
  • the comparison unit detects the access to this address and supplies the contents of the register 231 to the processor 210 and the contents of the register 232 to the processor 220. The access is not forwarded to the interface 240 in this case.
  • the comparison unit compares only write operations or write and read operations of the processors for equality. The remainder of the test procedure is identical to that described above.

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

Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen
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 Mikro- kontroller oder Mikroprozessor weist einen Mikrokontrollerkern bzw. Mikroprozessorkern, den so genannten Core, einen oder mehrere Speicher (Programm- Speicher, 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 programmge- steuerten 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 wesentli- chen ein mehr oder weniger komplexes Steuerwerk, mehrere Register (Daten-,
Adressregister), eine Bussteuereinheit und eine Recheneinheit, die die eigentli- che Daten verarbeitende 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 Verar- beitung 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überein- stimmen der Ergebnisse der beiden Cores durch die Vergleichseinheit ein Feh- lersignal erzeugt werden. Ein solches Computersystem ist beispielsweise aus der WO 01/46806 bekannt.
Aus der DE 103 17 650 Al der Anmelderin sind ein Mikrokontroller mit Fehlerer- kennungssystem 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 redu- ziert 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 muss. Die Ergebnisdaten und/oder deren Codierung (ECC- Prüfsumme) werden in einer Vergleichseinheit miteinander verglichen. Bei Übereinstimmung wird ein Freigabesignal erzeugt, andern- falls kann auf einen Fehler innerhalb einer der Ausführungseinheiten bzw. auf eine fehlerhafte Codierung des Ergebnisses geschlossen werden. Es ist möglich, transiente, permanente und Laufzeitfehler zu erkennen.
Aus der DE 103 17 651 Al der Anmelderin sind ein Verfahren und eine Vorrich- tung 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 umfasst sein, die einen einzelnen Mikrokontrollerkern mit zwei Recheneinheiten aufweisen (vgl. DE 103 17 650 Al).
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 ordnungsgemäß arbeitender Cores bzw. Recheneinheiten ein Fehler angezeigt wird. Schlimmer ist der Fall, wenn aufgrund einer fehlerhaften Vergleichseinheit feh- lerhaft 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 SeIf-
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, sicher- zustellen, 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 muss.
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 Register- inhalt durch Load-Store-Operationen auf den Datenbus gelegt. Da die Registerinhalte verschieden sind, muss 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 bei- den 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 her- gestellt 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 Ver- gleichseinheit 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 muss, 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.
Figur 1 zeigt schematisch eine erste Ausführungsform der Erfindung und
Figur 2 zeigt schematisch eine alternative Ausführungsform der Erfindung.
Beschreibung der Ausführungsbeispiele
Figur 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 Arbeitsre- gister 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.
Figur 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 Pro- zessoren 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 verschie- den. Die Prozessoren können 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 Schnitt- stelle 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

Ansprüche
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 unter- schiedlichen 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) unter- schiedlichen 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 Mikropro- zessorkerne (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 Ände- rung 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.
PCT/EP2006/067555 2005-11-16 2006-10-18 Programmgesteuerte einheit und verfahren zum betreiben derselbigen WO2007057270A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP06807386A EP1955164A1 (de) 2005-11-16 2006-10-18 Programmgesteuerte einheit und verfahren zum betreiben derselbigen
JP2008540552A JP2009516276A (ja) 2005-11-16 2006-10-18 プロプラム制御型ユニットおよびその駆動方法
US12/085,064 US20100017579A1 (en) 2005-11-16 2006-10-18 Program-Controlled Unit and Method for Operating Same

Applications Claiming Priority (2)

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

Publications (1)

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

Family

ID=37727090

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/067555 WO2007057270A1 (de) 2005-11-16 2006-10-18 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
US8904084B2 (en) 2009-05-18 2014-12-02 Samsung Electronics Co., Ltd. Solid state drive device

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
EP2266010A2 (de) * 2008-04-09 2010-12-29 Nxp B.V. Verfahren und system zur leistungsverwaltung
KR101978984B1 (ko) * 2013-05-14 2019-05-17 한국전자통신연구원 프로세서의 오류를 검출하는 장치 및 방법
JP6274947B2 (ja) * 2014-03-31 2018-02-07 日立オートモティブシステムズ株式会社 車載制御装置のマイクロプロセッサの異常診断方法
DE202016007417U1 (de) * 2016-12-03 2018-03-06 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Steuerung Redundanter Verarbeitungseinheiten
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1987006037A1 (en) * 1986-04-03 1987-10-08 Triplex Multiple-redundant fault detection system and related method for its use
EP0260584A2 (de) * 1986-09-17 1988-03-23 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Fehlertolerante Rechnerarchitektur

Family Cites Families (6)

* 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
US4835459A (en) * 1986-05-16 1989-05-30 Hughes Aircraft Company Automatic fault insertion system (AFIS)
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1987006037A1 (en) * 1986-04-03 1987-10-08 Triplex Multiple-redundant fault detection system and related method for its use
EP0260584A2 (de) * 1986-09-17 1988-03-23 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Fehlertolerante Rechnerarchitektur

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904084B2 (en) 2009-05-18 2014-12-02 Samsung Electronics Co., Ltd. Solid state drive device
US9052838B2 (en) 2009-05-18 2015-06-09 Samsung Electronics Co., Ltd. Solid state drive device
US9262077B2 (en) 2009-05-18 2016-02-16 Samsung Electronics Co., Ltd. Solid state drive device

Also Published As

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

Similar Documents

Publication Publication Date Title
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
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
EP1952239A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
DE102011112174B4 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE10349581A1 (de) Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit
DE102005037230A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE10317650A1 (de) Programmgesteuerte Einheit und Verfahren
DE102019131865A1 (de) Verfahren und vorrichtung zur eigendiagnose der ram-fehlererkennungslogik eines antriebsstrangcontrollers
WO2005078586A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen für sicherheitskritische rechnersysteme in kraftfahrzeugen
DE102006036386A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
EP1776636A2 (de) Verfahren zum registrieren von fehlern und entsprechendes register
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102007040721A1 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
DE102004051966A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102005037226A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch markieren von Registern
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
EP1433061B1 (de) Verfahren zum überprüfen eines rechnerkerns eines mikroprozessors oder eines mikrocontrollers
DE102005037245A1 (de) Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten
DE102018219700B4 (de) Steuervorrichtung
DE102022121708A1 (de) Halbleitervorrichtung
DE102005037259A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Umschalten von Registersätzen

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2006807386

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2008540552

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020087011611

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2006807386

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12085064

Country of ref document: US