WO2007017372A1 - Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten - Google Patents
Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten Download PDFInfo
- Publication number
- WO2007017372A1 WO2007017372A1 PCT/EP2006/064609 EP2006064609W WO2007017372A1 WO 2007017372 A1 WO2007017372 A1 WO 2007017372A1 EP 2006064609 W EP2006064609 W EP 2006064609W WO 2007017372 A1 WO2007017372 A1 WO 2007017372A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- execution units
- function
- master function
- master
- computer system
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
Definitions
- the invention relates to a device and a method for maintaining a system function in case of errors in a processor system with two cores and a corresponding processor system according to the preambles of the independent claims.
- redundancies are e.g. Microcontroller ( ⁇ C), but also components of a ⁇ Cs such as the CPU (Central Processing Unit) for the purpose of
- a microcontroller with redundant CPUs is also known as dual core microcontroller (dual core ⁇ C).
- dual core ⁇ C the two CPUs can be synchronized, ie parallel (in
- the comparison unit generates a status or error signal if a discrepancy of the signals to be compared is detected. nal, with which the comparison result can be signaled to the outside.
- error detection mechanisms for the redundantly implemented units, it is neither possible to locate the faulty component nor to determine the type of fault cause.
- a recognized discrepancy of the redundantly detected signals generally results in a changeover to a 'safe state' of the overall system, even if the cause of the discrepancy was a transient error with only a short duration of action.
- the 'safe state' usually means switching off the system.
- transient processor errors Due to the ever smaller semiconductor structures, an increase of transient processor errors is expected, e.g. be caused by cosmic radiation. In order to be able to deal with transient errors in such a way that one can switch off the system and tolerate or even "cure" the error during operation, there is a
- the object of the invention is a method for operating a dual core processor (or a dual processor system) with the goal of a higher robustness against errors and an increased (partial) availability of the system function in transient and permanent errors in the processor system. In an advantageous embodiment, this can be achieved while maintaining the original execution time for the individual program parts.
- a dual-core computer which is operated in lockstep mode, one CPU works as a master, a second CPU as a slave.
- the results of the slave CPU are used only to compare the results of the master CPU. Only the master CPU can write results to the data / address bus or to the CPU register.
- the advantages of the present invention are the possibility of changing the allocation of the master function to the at least two execution units and thus the alternating use of the core results of a dual core or multi core computer, which is operated in lockstep mode. In this way, a limited operation of the processor system can be maintained even after recognizing a discrepancy of the redundantly calculated results, taking into account certain boundary conditions. This is particularly advantageous in real-time applications where shutdown of the system is not desired in all operating conditions due to processor errors.
- a further advantage results from the fact that a folder can be located in the execution units of the processor system, the faulty execution unit is deactivated and the system with the non-defective execution unit continues to operate until a non-critical system state is reached or switched off a previously defined max. Operating time in this mode is exceeded.
- a method for controlling a computer system having at least two execution units which are operated in a lockstep mode and their Results are compared in a comparison unit, characterized in that one of the two execution units has the function of a master and the master function between the at least two execution units changes.
- the operation of the computer system is continued with changing allocation of the master function to the at least two execution units.
- the master function is the individual execution units by a
- the master function is assigned dynamically to the individual execution units.
- the assignment of the master function advantageously takes place by means of an extended comparison unit which, depending on at least one input signal, allocates the master function to the execution units.
- the assignment of the master function by the operating system, depending on the scheduling of the runtime objects.
- the assignment of the master function by an identifier in the program code.
- the assignment of the master function is performed by an interrupt.
- the assignment of the master function takes place in dependence on the memory area of the instructions to be processed.
- the assignment of the master function is advantageously carried out by an error signal of the comparison unit, which compares the redundantly calculated variables.
- a device for controlling a computer system having at least two execution units which are operated in a lockstep operating mode and the results of which are compared in a comparison unit, characterized in that the device is designed such that it performs a control, so that one of the two execution units has the function of a master and the master function changes between the at least two execution units.
- a device is described, characterized in that it is designed in such a way that, in a comparison with a difference in the results of the at least two execution units, the operation of the computer system is continued with changing allocation of the master function to the at least two execution units.
- An apparatus is advantageously described, characterized in that it is designed such that in a comparison with a difference in the results of at least two execution units no reset or no immediate shutdown of the computer system, but the operation of the computer system with changing allocation of the master function on the at least two execution units is continued.
- a device is described, characterized in that the master function is assigned to the individual execution units by hardware, preferably as a function of time or of an instruction counter.
- FIG. 1 shows a dual core processor with a master CPU and a slave CPU
- FIG. 2 shows a dual core processor with two system interfaces
- FIG. 3 shows a dual core processor with additional input signal of the comparison unit.
- FIG. 4 shows a dual core processor with additional error signal of the comparison unit
- FIG. 5 shows a first method for error handling in a processor system on the basis of a flow chart
- FIG. 6 shows a second method for error handling in a processor system using a flow chart
- FIG. 1 shows a processor system W100 with a plurality of execution units W11a, W10b, z. B. a dual core computer, and a preferably implemented in HW comparison unit
- This processor system is operated in lockstep mode. In this mode, the results of the execution units are compared, preferably after each clock cycle.
- An execution unit can be used both as processor / core / CPU, as well as FPU (floating point unit), DSP (digital signal processor), coprocessor or ALU (Arithmetic logical Unit), each with an arbitrary number of associated register sets, realized be.
- exactly one execution unit is connected via an interrupt or release unit W130 to a system interface W140 or directly to the data address bus of the processor system.
- This execution unit is the only one that produces results that are further processed in the process system. Therefore, the execution unit connected to the system interface Wl 30 or the data / address bus of the processor system is called a master.
- the output signals of the at least one further execution unit are only routed to the comparison unit W120 and used there for checking the plausibility of the output signals of the master.
- the comparison unit W120 controls the interruption unit W130 via a signal W125 which represents information representing the comparison.
- a value is written or written into a register or a memory in the event of a discrepancy of the output signals of the redundant execution units while maintaining certain boundary conditions is output to the data / address bus.
- the master function is not permanently assigned to an execution unit, but can be assigned to different execution units. This assignment can be done according to a statically defined scheme or determined dynamically.
- the processor system W101 contains a comparison unit W121, which is extended compared to the processor system W100 according to FIG. 1, two interruption or release units W130a, W130b, via which the execution units W11a, W10b with the system interfaces W140a, W140b or can be connected to the data / address bus and which are controlled by the comparison unit via signals W126a, W126b.
- a comparison unit W121 which is extended compared to the processor system W100 according to FIG. 1, two interruption or release units W130a, W130b, via which the execution units W11a, W10b with the system interfaces W140a, W140b or can be connected to the data / address bus and which are controlled by the comparison unit via signals W126a, W126b.
- only one execution unit in the entire processor system can always be assigned the master function, i. Only one execution unit can ever be connected to a system interface or the data address bus. The assignment of the master function or the same is done via the
- the switching of the master function is performed by the comparison unit W122, which controls the master function by means of the signals depending on at least one input signal Wl 60 or an identifier of this input signal via the control of the interrupt units W 130a, W130b W126a and W126b switches between the at least two execution units Wl 10a, Wl 10b or shuts down the system.
- the input signal Wl 60 or an identifier thereof may be generated as a function of time or a command counter (e.g., every 10 clock cycles or every 10 commands), preferably by a specific hardware component, or may be provided by the operating system, e.g. depending on the scheduling of the run-time objects (for example, can be toggled every time a runtime object is called or any operating system cycle), or may be program code dependent on an identifier, or may be generated by an interrupt or signal from an interrupt request unit, or may be dependent upon
- An assignment or switching of the master function can be dependent on one of the aforementioned conditions, depending on the comparison result of the comparison unit W122 or a combination of several of these conditions.
- an internal error signal is generated by the comparison unit.
- switching of the master function from one execution unit to the other execution unit can be detected instead of switching off the system.
- this process is repeated, So the master function assigned to the other execution unit.
- the master passes on his results via the respective system interface W 140, regardless of the result of a comparison.
- the comparison unit detects only one difference, but does not suppress a write of the respective master.
- the comparison unit W122 can now contain further means which, depending on an error counter which counts the detected discrepancies, the system after a predefinable number of errors has been exceeded, off.
- This system can also generate an external error signal Wl 70 through the comparison unit W123, as shown in FIG.
- This error signal can be evaluated in external units, the operating system or the application and the comparison unit W 123 be informed via the signal W160 that the system should be turned off.
- Common to these embodiments is that in the event of an error, the processor system is thus not switched off immediately, but continues to be operated.
- a permanent error in one of the execution units allows at least every second result to be correct. Depending on the application function, this is sufficient to be able to continue operating a system for a certain time with sufficient functional quality.
- a permanent error in one of the execution units does not permanently affect the application, but only intermittently.
- a shutdown of the processor system in the event of a fault it can be waited until an error is clearly identified as a permanent error or a system state of the application system suitable for switching off is reached.
- BIST Busilt-In Self-Test
- a software-based self-test By comparing the results of the error detection routines with stored reference values, an error can be detected and localized. If a fault is detected and localized, the faulty disabled execution unit off. The non-faulty unit remains in operation until a safe system state is reached for shutdown. A faulty execution unit can be switched off by deactivating the comparison unit and the interrupt unit or release unit W130a or W130b assigned to this execution unit does not allow connection of this execution unit to the system interface or to the address / data bus or by virtue of this execution unit no instructions, data and / or clock signals are supplied.
- comparison unit There are various possibilities for deactivating the comparison units. On the one hand, one can lead to the comparison unit a signal with which the comparison logic or comparison function is activated or deactivated. For this purpose, an additional logic is included in the comparator, which can perform an activation or deactivation of the comparison function depending on such a signal. Another possibility is to supply the comparison unit no data to be compared. A third possibility is to ignore at system level the error signal W170 of the comparison unit W123 according to FIG. 4, to interrupt the error signal W170 itself or in this case not to generate the control result for generating control signals, e.g. the signals W126a and W126b from Figure 2 and Figure 3 are to be used.
- the next task is started in the lock step. If no errors are found in the execution units during execution of the error detection mechanisms, the next task is started in the lock step. If a discrepancy of the output signals is detected again, the procedure described above is repeated, but the number n of repetitions must be limited. The limitation may be dependent on the fault tolerance time of the application. If an error is detected after n repeated repetition, the system is switched off immediately.
- a further preferred exemplary embodiment according to FIG. 4 is based on a processor system with a dual-core architecture and a comparison unit, which is preferably realized in HW and, in addition to the lock-step operating mode, enables at least one second operating mode the two execution units Wl 10a, Wl 10b simultaneously process different programs, program segments or commands. If the processor system operates in the lock-step operating mode and the comparator determines a discrepancy of the results, then in the execution unit in the example Wl 10b, which is not currently connected to the system interface or the data / address bus, the execution of the current one is executed Program segment or runtime object (hereinafter referred to as 'task') aborted and started an error detection routine (eg BIST).
- 'task' Program segment or runtime object
- the other execution unit in example Wl 10a continues to process the current task, but with a statistical error probability of 50%. If the error detection routine on Wl 10b has recognized an error in W 10b until the end of the task running on W 10a (eg by comparison with stored reference values), then
- Wl 10b is switched off and Wl 10a continues to operate in a single mode (without comparison or with a deactivated comparison unit) until the entire system has reached an uncritical state when switched off. Then the microprocessor system is turned off. If Wl 10b has not found an error until the end of the task by Wl 10a, then the next task is started again in the lock step, but this time Wl 10b is started with the system interface or the data
- step 510 the same instructions or program segments are executed in at least two execution units.
- step 520 the outputs of these at least two execution units are compared for consistency. Are the output signals identical or within a defined tenth tolerance band, step 510 is started again, this time with new program segments or commands and / or data. If a discrepancy of the output signals is detected in step 520, step 530 is next executed.
- step 530 the current program execution is interrupted and an error detection routine is executed on all execution units.
- the connection of the execution unit to the system interface or the data AAdressbus must be interrupted.
- step 540 the results of the error detection routines are each compared with a reference value stored together with the program code of the error detection routines. If a discrepancy occurs in this comparison, the execution unit whose result has led to a discrepancy in the comparison is marked as defective and step 550 is executed next. If no discrepancy occurs, then step 510 is started again, this time with new program segments or commands and / or data.
- step 550 the execution units identified as defective and the comparison unit are deactivated.
- a shutdown of an execution unit may e.g. erfft- gen that this execution unit no instructions, data and / or clock signals are supplied, or that the connection of this execution unit to the comparison unit and the system interface or to the data / address bus is interrupted.
- step 560 the processor system continues to operate with the remaining non-faulty execution units.
- step 570 after reaching a shutdown condition, eg after exceeding a time limit for the single core operation, the processor system is switched off or a changeover to a defined safe state.
- FIG. 6 describes by way of example a further method for controlling a processor system after occurrence of a discrepancy of the output signals of the execution units.
- step 605 the master function is switched from a first to a second execution unit.
- step 610 the same instructions or program segments are executed in at least two execution units.
- step 620 the outputs of these at least two execution units are compared for agreement. If the output signals are identical or within a defined tolerance band, then step 610 is started again, this time with new progranm segments or commands and / or data. If a discrepancy of the output signals is detected in step 620, step 630 is next executed.
- step 630 at least one of the execution units, but at least the
- Execution unit which is connected to the system interface or the data address bus, the execution of the current program sequence is continued.
- An error detection routine is executed on at least one further execution unit.
- the comparison unit must be deactivated.
- step 640 the results of the error detection routines are each compared with a reference value which is stored together with the program code of the error detection routines. If a discrepancy occurs in this comparison, the execution unit whose result has led to a discrepancy in the comparison is marked as defective and step 650 is executed next. If no discrepancy occurs, then the
- Step 605 started, this time with new program segments or commands and / or data.
- step 650 the execution units designated as faulty are turned off. This can be done, for example, by the fact that no instructions, data and / or clock signals are supplied to this execution unit, or that the connection of this execution unit to the comparison unit and to the system interface or to the DaterWadressbus is interrupted.
- step 660 the processor system continues to operate with the remaining non-defective execution units. In a processor system with two execution units, this means a single-core operation. This is limited in time for safety-relevant systems.
- step 670 upon reaching a shutdown condition, e.g. after a time limit has been exceeded for single-core operation, a shutdown of the processor system or a changeover to a defined safe state.
- a shutdown condition e.g. after a time limit has been exceeded for single-core operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
Verfahren zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten, die in einer Lockstep-Betriebsart betrieben werden und deren Ergebnisse in einer Vergleichseinheit verglichen werden, dadurch gekennzeichnet, dass eine der beiden Ausführungseinheiten die Funktion eines Masters innehat und die Masterfunktion zwischen den wenigstens zwei Ausführungseinheiten wechselt.
Description
Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei
Ausführungseinheiten
Stand der Technik
Die Erfindung betrifft eine Vorrichtung und ein Verfahren zur Aufrechterhaltung einer Systemfunktion bei Fehlern in einem Prozessorsystem mit zwei Cores sowie ein entsprechendes Prozessorsystem gemäß den Oberbegriffen der unabhängigen Ansprüche.
Aus dem Stand der Technik sind Redundanzen z.B. von MikroControllern (μC), aber auch von Komponenten eines μCs wie beispielsweise der CPU (Central Processing Unit) zum Zweck der
Fehlererkennung bekannt. Dabei werden redundant berechnete Daten und redundant generierte Signale von einer Vergleichseinheit auf Übereinstimmung verglichen.
Ein MikroController mit redundanten CPUs wird auch als Dual Core Mikrocontroller (Dual Core μC) bezeichnet. In einem Dual Core μC können die beiden CPUs takesynchron, also parallel (im
Lockstep Mode) oder um einige Takte zeitversetzt arbeiten. Beide CPUs empfangen dieselben Eingangsdaten und arbeiten das gleiche Programm bzw. die gleichen Befehle ab. Liegt in einem der redundant implementierten Cores ein Fehler vor, der sich auf wenigstens ein Ausgangssignal dieses Cores auswirkt, so hat dies eine Diskrepanz der zu vergleichenden Daten zur Folge, die von der Vergleichseinheit erkannt wird. Ausgangssignale können dabei neben den "Data Out"-
Daten auch die Instruktionsadresse und die Kontrollsignale umfassen. Die Vergleichseinheit erzeugt bei einer erkannten Diskrepanz der zu vergleichenden Signale ein Status- oder Fehlersig-
nal, mit dem das Vergleichsergebnis nach außen signalisiert werden kann. Ohne zusätzliche Fehlererkennungsmechanismen für die redundant implementierten Einheiten ist es jedoch weder möglich, die fehlerbehaftete Komponente zu lokalisieren, noch die Art der Fehlerursache zu ermitteln.
Beim Einsatz der oben beschriebenen Redundanzen in sicherheitsrelevanten Steuer- und Regelsystemen erfolgt nach einer erkannten Diskrepanz der redundant ermittelten Signale in der Regel eine Umschaltung in einen 'sicheren Zustand' des Gesamtsystem, auch wenn die Ursache der Diskrepanz ein transienter Fehler mit nur kurzer Wirkdauer war. In Automobilsystemen wie z.B. einem ESP-System bedeutet der 'sichere Zustand' meist ein Abschalten des Systems.
Aufgrund der immer kleiner werdenden Halbleiterstrukturen wird eine Zunahme von transienten Prozessorfehlern erwartet, die z.B. durch kosmische Strahlung hervorgerufen werden. Um mit transienten Fehlern so umgehen zu können, dass man auf eine Abschaltung des Systems ver- ziehten und während des Betriebs den Fehler tolerieren oder sogar "heilen" kann, gibt es im
Stand der Technik schon einige Lösungen: Mit meist aufwändigen Verfahren werden Fehler durch anwendungsspezifische, oft modellgestützte Plausibilisierungen detektiert, ggf. wird ein Reset des Rechnersystems ausgelöst. Das Rechnersystem initialisiert sich neu und ist nach der Initialisierungszeit und einer optionalen "Wiedergutprüfung" (nach z.B. wenigen 100ms) wie- der betriebsbereit (sog. "forward recovery"). Bei nicht-echtzeitfähigen Anwendungen (z.B.
Transaktionen an Finanzmärkten) wird anwendungsspezifisch ein Zustand vor der Transaktion gebildet, der gespeichert und erst dann als ungültig verworfen wird, wenn ein bestätigtes erfolgreiches Ende der Transaktion vorliegt. Bei auftretenden Fehlern während der Transaktion wird auf den gespeicherten Anfangspunkt zurückgesprungen ("backward recovery"). In Echtzeitsys- temen sind solche Lösungen sehr aufwändig und meist wird die Funktion für die Zeitdauer eines
Resets oder einer Wiedergutprüfung des Prozessorsystems unterbrochen.
Mit steigendem Funktionsumfang elektronischer Regelsysteme im Fahrzeug stellt ein Abschalten eines Systems wie z.B. ESP mit Lenkeingriff nicht in jedem Betriebszustand einen Über- gang in einen sicheren Systemzustand dar.
Vorteile der Erfindung
Aufgabe der Erfindung ist ein Verfahren zum Betreiben eines Dual Core Prozessors (oder eines Dual Prozessor Systems) mit dem Ziel einer höheren Robustheit gegenüber Fehlern und einer erhöhten (Teil-) Verfügbarkeit der Systemfunktion bei transienten und permanenten Fehlern im Prozessorsystem. In einem vorteilhaften Ausführungsbeispiel kann dies unter Beibehaltung der ursprünglichen Ausführungszeit für die einzelnen Programmteile erreicht werden.
Bei einem Dual Core Rechner nach dem Stand der Technik, der im Lockstep-Mode betrieben wird, arbeitet eine CPU als Master, eine zweite CPU als Slave. Die Ergebnisse der Slave-CPU werden nur zum Vergleich der Ergebnisse der Master-CPU herangezogen. Einzig die Master- CPU kann Ergebnisse auf den Daten-/Adressbus oder in CPU-Register schreiben.
Die Vorteile der vorliegenden Erfindung bestehen in der Möglichkeit der wechselnden Zuteilung der Masterfunktion auf die wenigstens zwei Ausführungseinheiten und damit der alternierenden Verwendung der Core-Resultate eines Dual Core oder Multi Core Rechners, der im Lockstep-Mode betrieben wird. Damit kann unter Beachtung gewisser Randbedingungen auch nach Erkennen einer Diskrepanz der redundant errechneten Ergebnisse ein eingeschränkter Be- trieb des Prozessorsystems aufrecht erhalten werden. Dies ist vor allem in Echtzeitanwendungen von Vorteil, bei dem eine Abschaltung des Systems aufgrund von Prozessorfehlern nicht in jedem Betriebszustand erwünscht ist.
In einem bevorzugten Ausführungsbeispiel ergibt sich ein weiterer Vorteil daraus, dass ein Fdi- ler in den Ausführungseinheiten des Prozessorsystems lokalisiert werden kann, die fehlerbehaftete Ausführungseinheit deaktiviert wird und das System mit der nicht fehlerbehafteten Ausführungseinheit solange weiterbetrieben wird, bis ein zum Abschalten unkritischer Systemzustand erreicht oder eine zuvor festgelegte max. Betriebsdauer in diesem Modus überschritten wird.
Vorteilhaft wird ein Verfahren zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten beschrieben, die in einer Lockstep-Betriebsart betrieben werden und deren
Ergebnisse in einer Vergleichseinheit verglichen werden, dadurch gekennzeichnet, dass eine der beiden Ausfiihrungseinheiten die Funktion eines Masters innehat und die Masterfunktion zwischen den wenigstens zwei Ausfuhrungseinheiten wechselt. Vorteilhaft wird bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausfuhrungseinheiten der Be- trieb des Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausfuhrungseinheiten weitergeführt. Vorteilhaft wird bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausfuhrungseinheiten kein Reset oder keine sofortige Abschaltung des Rechnersystems erfolgt, sondern der Betrieb des Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausfuhrungseinheiten wei- tergeführt. Vorteilhaft wird die Masterfunktion den einzelnen Ausfuhrungseinheiten durch eine
Hardwarefunktion zugewiesen, vorzugsweise in Abhängigkeit der Zeit oder eines Befehlszählers. Vorteilhaft wird die Masterfunktion den einzelnen Ausfuhrungseinheiten dynamisch zugewiesen. Vorteilhaft erfolgt die Zuweisung der Masterfunktion mittels einer erweiterten Vergleichseinheit, die abhängig von wenigstens einem Eingangssignal die Masterfunktion den Aus- führungseinheiten zuteilt. Vorteilhaft erfolgt die Zuweisung der Masterfunktion durch das Betriebssystem, abhängig vom Scheduling der Laufzeitobjekte. Vorteilhaft erfolgt die Zuweisung der Masterfunktion durch eine Kennung im Programmcode. Vorteilhaft erfolgt die Zuweisung der Masterfunktion durch einen Interrupt. Vorteilhaft erfolgt die Zuweisung der Masterfunktion in Abhängigkeit vom Speicherbereich der abzuarbeitenden Befehle. Vorteilhaft erfolgt die Zu- Weisung der Masterfunktion durch ein Fehlersignal der Vergleichseinheit, die die redundant errechneten Größen vergleicht. Vorteilhaft ist eine Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausfuhrungseinheiten beschrieben, die in einer Lockstep-Betriebsart betrieben werden und deren Ergebnisse in einer Vergleichseinheit verglichen werden, dadurch gekennzeichnet, dass die Vorrichtung derart ausgebildet ist, dass diese eine Steuerung vor- nimmt, so dass eine der beiden Ausfuhrungseinheiten die Funktion eines Masters innehat und die Masterfunktion zwischen den wenigstens zwei Ausfuhrungseinheiten wechselt. Vorteilhaft ist eine Vorrichtung beschrieben, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausfuhrungseinheiten der Betrieb des Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausfuhrungseinheiten weitergeführt wird. Vorteilhaft ist eine Vorrichtung beschreiben, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausfuhrungseinheiten kein Reset oder keine sofortige Abschaltung des Rechnersystems erfolgt, sondern der Betrieb des Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausführungs-
einheiten weitergefiihrt wird. Vorteilhaft ist eine Vorrichtung beschrieben, dadurch gekennzeichnet, dass die Masterfunktion den einzelnen Ausfuhrungseinheiten durch eine Hardware zugewiesen wird, vorzugsweise in Abhängigkeit der Zeit oder eines Befehlszählers.
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.
Figuren
In Figur 1 ist ein Dual Core Prozessor mit einer Master-CPU und einer Slave-CPU gezeigt
Figur 2 zeigt einen Dual Core Prozessor mit zwei Systemschnittstellen
In Figur 3 ist ein Dual Core Prozessor mit zusätzlichem Eingangssignal der Vergleichseinheit gezeigt. In Figur 4 ist ein Dual Core Prozessor mit zusätzlichem Fehlersignal der Vergleichseinheit gezeigt
In Figur 5 ist ein erstes Verfahren zur Fehlerbehandlung in einem Prozessorsystem anhand eines Ablaufdiagrams gezeigt
In Figur 6 ist ein zweites Verfahren zur Fehlerbehandlung in einem Prozessorsystem an- hand eines Ablaufdiagrams gezeigt
Beschreibung der Ausführungsbeispiele
In Figur 1 ist ein Prozessorsystem WlOO mit mehreren Ausführungseinheiten Wl 10a, Wl 10b, z. B. ein Dual Core Rechner, und einer vorzugsweise in HW realisierten Vergleichseinheit
W120 gezeigt. Dieses Prozessorsystem wird im Lockstep-Mode betrieben. In dieser Betriebsart werden die Ergebnisse der Ausführungseinheiten verglichen, vorzugsweise nach jedem Clock- Cycle. Eine Ausführungseinheit kann dabei sowohl als Prozessor/Core/CPU, als auch als FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), als Coprozessor oder als ALU (Arithme- tic logical Unit), jeweils mit einer beliebigen Anzahl an zugeordneten Registersätzen, realisiert
sein. Dabei ist genau eine Ausfiihrungseinheit über eine Unterbrechungs- bzw. Freigabeeinheit W130 mit einer Systemschnittstelle W140 oder direkt mit dem DatenVAdressbus des Prozessorsystems verbunden. Diese Ausfiihrungseinheit erzeugt als einzige Resultate, die im Prozesscr- system weiterverarbeitet werden. Deshalb wird die mit der Systemschnittstelle Wl 30 oder dem Daten-/ Adressbus des Prozessorsystems verbundene Ausfiihrungseinheit als Master bezeichnet.
Die Ausgangssignale der wenigstens einen weiteren Ausfiihrungseinheit werden nur an die Vergleichseinheit W120 geführt und dort zur Plausibilisierung der Ausgangssignale des Masters verwendet. Die Vergleichseinheit W120 steuert die Unterbrechungs- bzw. Freigabeeinheit W130 über ein Signal W125, welches eine den Vergleich repräsentierende Information darstellt. Ein solches System mit genau zwei Ausführungseinheiten, die als CPUs realisiert sind, ist als
Dual Core MikroController aus dem Stand der Technik bekannt.
Im Unterschied zu einem bekannten Dual Core MikroController, der im Lockstep-Mode betrieben wird, wird in einem ersten Ausführungsbeispiel der vorliegenden Erfindung unter Einhal- tung gewisser Randbedingungen auch bei einer Diskrepanz der Ausgangssignale der redundanten Ausführungseinheiten ein Wert in ein Register oder einen Speicher geschrieben bzw. auf den Daten-/Adressbus ausgegeben. Dabei ist die Masterfunktion aber nicht fest einer Ausführungseinheit zugeordnet, sondern kann verschiedenen Ausführungseinheiten zugeordnet werden. Diese Zuordnung kann nach einem statisch festgelegten Schema erfolgen oder dynamisch bestimmt werden.
In einem zweiten in Figur 2 dargestellten Ausführungsbeispiel enthält das Prozessorsystem WlOl eine gegenüber dem Prozessorsystem W100 nach Figur 1 erweiterte Vergleichseinheit W121, zwei Unterbrechungs- bzw. Freigabeeinheiten W130a, W130b, über die die Ausfüh- rungseinheiten Wl 10a, Wl 10b mit den Systemschnittstellen W140a, W140b oder mit dem Da- ten-/Adressbus verbunden werden können und die von der Vergleichseinheit über Signale W126a, W126b angesteuert werden. Dabei kann aber im gesamten Prozessorsystem immer nur einer Ausführungseinheit die Masterfunktion zugeordnet sein, d.h. es kann immer nur maximal eine Ausführungseinheit mit einer Systemschnittstelle oder dem DatenVAdressbus verbunden sein. Die Zuordnung der Masterfunktion bzw. die Umschaltung derselben erfolgt dabei über die
Steuerung der Unterbrechungs- bzw. Freigabeeinheiten W130a, W130b. Diese werden von der Vergleichseinheit W121 abhängig von dem Vergleichsergebnis der Ausgangssignale der wenigstens zwei Ausführungseinheiten angesteuert.
In einem dritten in Figur 3 dargestellten Ausfiihrungsbeispiel wird die Umschaltung der Masterfunktion durch die Vergleichseinheit W122 vorgenommen, die die Masterfunktion abhängig von wenigstens einem Eingangssignal Wl 60 oder einer Kennung dieses Eingangssignals über die Ansteuerung der Unterbrechungs- bzw. Freigabeeinheiten W 130a, W130b mittels der Signale W126a und W126b zwischen den wenigstens zwei Ausführungseinheiten Wl 10a, Wl 10b umschaltet oder das System abschaltet.
Das Eingangssignals Wl 60 oder eine Kennung desselben kann in Abhängigkeit der Zeit oder eines Befehlszählers (z.B. alle 10 Taktzyklen oder alle 10 Befehle) generiert werden, vorzugsweise durch eine spezifische Hardwarekomponente, oder kann durch das Betriebssystem, z.B. abhängig vom Scheduling der Laufzeitobjekte generiert werden (Beispielsweise kann bei jedem Aufrufeines Laufzeitobjekts umgeschaltet werden oder bei jedem Betriebssystemzyklus), oder kann abhängig von einer Kennung im Programmcode sein, oder kann durch einen Interrupt bzw. ein Signal einer Unterbrechungsanforderungseinheit generiert werden, oder kann abhängig vom
Zugriff auf einen bestimmten Speicherbereich im Programm- und/oder Datenspeicher sein.
Eine Zuordnung bzw. Umschaltung der Masterfunktion kann abhängig von einer der vorgenannten Bedingungen, abhängig vom Vergleichsergebnis der Vergleichseinheit W122 oder ei- ner Kombination von mehreren dieser Bedingungen sein.
Bei Diskrepanz der Ausgangssignale der Ausführungseinheiten wird von der Vergleichseinheit ein internes Fehlersignal erzeugt. In Abhängigkeit vom Systemstatus, der der Vergleichseinheit über das Signal Wl 60 mitgeteilt wird, kann anstelle des Abschalten des Systems eine Umschal- tung der Masterfunktion von einer Ausführungseinheit auf die andere Ausführungseinheit erfd- gen. Bei jeder weiteren Diskrepanz der Ausgangssignale wird dieser Vorgang wiederholt, also die Masterfunktion der jeweils anderen Ausführungseinheit zugeteilt. Zu beachten ist dabei, das der Master seine Ergebnisse, unabhängig vom Ergebnis eines Vergleichs, über die jeweilige Systemschnittstelle W 140 weitergibt. Die Vergleichseinheit detektiert nur einen Unterschied, unterdrückt aber nicht ein Schreiben des jeweilige Masters. In der Vergleichseinheit W122 können nun weitere Mittel enthalten sein, die abhängig von einem Fehlerzähler, der die erkannten Diskrepanzen zählt, das System nachdem eine vorgebare Anzahl von Fehlern überschritten ist,
abschaltet. Dieses System kann auch wie in Figur 4 dargestellt ein externes Fehlersignal Wl 70 durch die Vergleichseinheit W123 erzeugen. Dieses Fehlersignal kann in externen Einheiten, dem Betriebssystem oder der Anwendung ausgewertet werden und der Vergleichseinheit W 123 über das Signal W160 mitgeteilt werden, dass das System abgeschaltet werden soll. Diesen Ausfuhrungsformen ist gemeinsam, dass bei einem Fehler das Prozessorsystem damit nicht sofort abgeschaltet, sondern weiter betrieben wird. Durch den Wechsel der Masterfunktion wird auch bei einem permanenten Fehler in einer der Ausführungseinheiten ermöglicht, dass mindestens jedes zweite Ergebnis korrekt ist. Je nach Anwendungsfunktion reicht dies aus, um ein System für eine gewisse Zeit mit ausreichender Funktionsqualität weiter betreiben zu können.
Viele Funktionen zur Signalaufbereitung und zur Regelung mechatronischer Systeme im Kraf- fahrzeug weisen ein robustes Design auf, d.h. kurzzeitige Störungen (z.B. durch EMV- Einstrahlung oder durch Einwirkung von Störgrößen in einen Regelkreis) haben in solchen System keine sicherheitskritischen Auswirkungen und können damit toleriert werden. Länger an- haltende Störungen werden aber auch von solchen "robusten" Systemen rieht toleriert. Bei solchen robusten Funktionen muss das Prozessorsystem nach Auftreten eines Fehlers, d.h. nach Erkennen einer Diskrepanz durch die Vergleichseinheit nicht sofort abgeschaltet werden. Bei einer transienten Fehlerursache mit kurzer Wirkdauer ist der Fehler beim nächsten Aufruf meist nicht mehr vorhanden. Durch eine alternierende Verwendung der Ausgangssignale der Ausfüh- rungseinheiten bzw. der wechselnden Zuteilung der Masterfunktionen in einem Prozessorsystem mit mehreren Ausführungseinheiten wirkt sich auch ein permanenter Fehler in einer der Ausführungseinheiten nicht dauerhaft auf die Anwendung aus, sondern nur intermittierend. Somit kann mit einer Abschaltung des Prozessorsystems im Fehlerfall so lange gewartet werden, bis ein Fehler eindeutig als permanenter Fehler erkannt ist oder ein zur Abschaltung geeigneter Systemzustand des Anwendungssystems erreicht ist.
In einem weiteren Ausführungsbeispiel wird bei erkannter Diskrepanz der Ausgangssignale der wenigstens zwei Ausführungseinheiten die Abarbeitung der aktuellen Befehlssequenz (Programmblock, Task) auf allen Ausführungseinheiten abgebrochen. Anstelle der abgebrochenen Befehlssequenz werden in allen Ausführungseinheiten Fehlererkennungsroutinen wie z.B. ein
BIST (Built-In-Self-Test) oder ein softwarebasierter Selbsttest abgearbeitet. Durch Vergleich der Ergebnisse der Fehlererkennungsroutinen mit abgespeicherten Referenzwerten kann ein Fehler erkannt und lokalisiert werden. Bei erkanntem und lokalisiertem Fehler wird die fehler-
hafte Ausfiihrungseinheit abgeschaltet. Die nicht fehlerbehaftete Einheit bleibt weiter in Betrieb, solange bis ein zum Abschalten sicherer Systemzustand erreicht ist. Eine Abschaltung einer feh- lerbehafteten Ausführungseinheit kann dadurch erfolgen, dass die Vergleichseinheit deaktiviert wird und die dieser Ausführungseinheit zugeordnete Unterbrechungs- bzw. Freigabeeinheit W130a bzw. W130b keine Verbindung dieser Ausführungseinheit zur Systemschnittstelle bzw. zum Adress-/Datenbus erlaubt oder dadurch, dass dieser Ausführungseinheit keine Instruktionen, Daten und/oder Taktsignale zugeführt werden.
Zur Deaktivierung der Vergleichseinheiten gibt es verschiedene Möglichkeiten. Zum einen kann man an die Vergleichseinheit ein Signal führen, mit dem die Vergleichslogik bzw. Vergleichsfunktion aktiviert oder deaktiviert wird. Dazu ist im Vergleicher eine zusätzliche Logik einai- fügen, die abhängig von einem solchen Signal eine Aktivierung bzw. Deaktivierung der Vergleichsfunktion durchführen kann. Eine weitere Möglichkeit ist es, der Vergleichseinheit keine zu vergleichenden Daten zuzuführen. Eine dritte Möglichkeit ist es, auf Systemebene das Feh- lersignal W170 der Vergleichseinheit W123 nach Figur 4 zu ignorieren, das Fehlersignal W170 selbst zu unterbrechen oder das Vergleichsergebnis in diesem Fall nicht zur Generierung von Steuersignalen, wie z.B. den Signalen W126a und W126b aus Figur 2 und Figur 3 heranzuziehen. Allen Möglichkeiten ist gemeinsam, dass sie im System einen Zustand erzeugen, bei dem es keine Rolle spielt, wenn sich die Ausgangssignale der Ausführungseinheiten unterscheiden. Wird dieser Zustand durch eine Maßnahme im Vergleicher oder dessen Ein- oder Ausgangssignalen erreicht, dann wird der Vergleicher als passiv oder deaktiviert bezeichnet.
Wird bei der Abarbeitung der Fehlerentdeckungsmechanismen kein Fehler in den Ausführungseinheiten gefunden, wird die nächste Task im Lock-Step gestartet. Wird wieder eine Diskrepanz der Ausgangssignale erkannt, erfolgt nochmals die oben beschriebene Vorgehensweise, allerdings muss die Anzahl n der Wiederholungen begrenzt sein. Die Begrenzung kann in Abhängigkeit der Fehlertoleranzzeit der Anwendung erfolgen. Wird nach n-maliger Wiederholung wieder ein Fehler erkannt, so wird das System sofort abgeschaltet.
Ein weiteres bevorzugtes Ausführungsbeispiel nach Figur 4 basiert auf einem Prozessorsystem mit Dual Core- Architektur und einer vorzugsweise in HW realisierten Vergleichseinheit, das neben dem Lock-Step Betriebsmodus wenigstens einen zweiten Betriebsmodus ermöglicht, in
dem die beiden Ausfiihrungseinheiten Wl 10a, Wl 10b zeitgleich unterschiedliche Programme, Programmsegmente oder Befehle abarbeiten. Arbeitet das Prozessorsystem im Lock-Step Betriebsmodus und stellt der Vergleicher eine Diskrepanz der Ergebnisse fest, so wird in der Ausführungseinheit im Beispiel Wl 10b, die gerade nicht mit der Systemschnittstelle bzw. dem Da- ten-/Adressbus verbunden ist, die Ausführung des aktuellen Programmsegments oder Laufzeitobjekts (im Folgenden als 'Task' bezeichnet) abgebrochen und eine Fehlererkennungsroutine (z.B. BIST) gestartet. Die andere Ausführungseinheit im Bsp. Wl 10a arbeitet weiter die aktuelle Task ab, dies allerdings mit einer statistischen Fehlerwahrscheinlichkeit von 50%. Hat die Fehlererkennungsroutine auf Wl 10b bis zum Ende der auf Wl 10a ablaufenden Task einen Feh- ler in Wl 10b erkannt (z.B. durch Vergleich mit abgespeicherten Referenzwerten), so wird
Wl 10b abgeschaltet und Wl 10a arbeitet in einem Single-Mode (ohne Vergleich bzw. mit deaktivierter Vergleichseinheit) solange weiter, bis das Gesamtsystem einen beim Abschalten unkritischen Zustand erreicht hat. Dann wird das Mikroprozessorsystem abgeschaltet. Hat Wl 10b bis zum Taskende von Wl 10a keinen Fehler gefunden, so wird die nächste Task wieder im Lock- Step begonnen, dieses mal wird aber Wl 10b mit der Systemschnittstelle bzw. dem Daten-
/Adressbus verbunden. Tritt keine Diskrepanz mehr auf, so war die Diskrepanz bei der vorigen Task mit hoher Wahrscheinlichkeit eine Auswirkung eines transienten Fehlers. Tritt wieder eine Diskrepanz auf, so wird dieses Mal in der Ausführungseinheit Wl 10a die aktuelle Task abgebrochen und eine Fehlererkennungsroutine (z.B. BIST) gestartet. Dieses Vorgehen wird bis zu Beginn der nächsten (oder in einer konfigurierbaren Anzahl von) 'Dispatcher-Round(s)' (Betriebssystem-Zyklus) wiederholt. Ist dann weiterhin eine Diskrepanz der Ergebnisse vorhanden, obwohl kein Fehler lokalisiert wurde, lässt dies auf einen permanenten Fehler schließen, der durch die Fehlererkennungsmechanismen nicht lokalisiert wurde und das Mikroprozessorsystem wird komplett abgeschaltet.
In Figur 5 ist ein solches erstes Verfahren zur Steuerung eines Prozessorsystems nach Auftreten einer Diskrepanz der Ausgangssignale der Ausführungseinheiten beispielhaft beschrieben.
Im Schritt 510 werden in wenigstens zwei Ausführungseinheiten die gleichen Befehle oder Pio- grammsegmente abgearbeitet.
Im Schritt 520 werden die Ausgangssignale dieser wenigsten zwei Ausführungseinheiten auf Übereinstimmung verglichen. Sind die Ausgangssignale identisch bzw. innerhalb eines definier-
ten Toleranzbandes, so wird erneut der Schritt 510 gestartet, dieses mal mit neuen Progranm- segmenten oder Befehlen und/oder Daten. Wird in Schritt 520 eine Diskrepanz der Ausgangssignale erkannt, wird als nächstes der Schritt 530 ausgeführt.
Im Schritt 530 wird die aktuelle Programmabarbeitung unterbrochen und auf allen Ausfuhrungseinheiten wird eine Fehlererkennungsroutine ausgeführt. Dabei muss die Verbindung der Ausführungseinheit mit der Systemschnittstelle bzw. demDaten-AAdressbus unterbrochen werden.
Im Schritt 540 werden die Ergebnisse der Fehlererkennungsroutinen jeweils mit einem Referenzwert verglichen, der zusammen mit dem Programmcode der Fehlererkennungsroutinen abgespeichert ist. Tritt bei diesem Vergleich eine Diskrepanz auf, so wird die Ausführungseinheit, deren Ergebnis beim Vergleich zu einer Diskrepanz geführt hat, als fehlerhaft gekennzeichnet und als nächstes der Schritt 550 ausgeführt. Tritt keine Diskrepanz auf, so wird erneut der Schritt 510 gestartet, dieses mal mit neuen Programmsegmenten oder Befehlen und/oder Daten.
Im Schritt 550 werden die als fehlerhaft gekennzeichneten Ausführungseinheiten und die Vergleichseinheit deaktiviert. Eine Abschaltung einer Ausführungseinheit kann z.B. dadurch erfd- gen, dass dieser Ausführungseinheit keine Instruktionen, Daten und/oder Taktsignale zugeführt werden, oder dass die Verbindung dieser Ausführungseinheit zur Vergleichseinheit und zur Systemschnittstelle bzw. zum Daten-/Adressbus unterbrochen wird.
Im Schritt 560 wird das Prozessorsystem mit den verbleibenden, nicht fehlerbehafteten Ausfüh- rungseinheiten weiterbetrieben. In einem Prozessorsystem mit zwei Ausführungseinheiten be- deutet dies einen Single-Core Betrieb. Dieser ist bei sicherheitsrelevanten Systemen zeitlich begrenzt.
Im Schritt 570 erfolgt nach Erreichen einer Abschaltbedingung, z.B. nach Überschreiten eines Zeitlimits für den Single-Core Betrieb, ein Abschalten des Prozessorsystems oder eine Um- Schaltung in einen definierten sicheren Zustand.
In Figur 6 ist ein weiteres Verfahren zur Steuerung eines Prozessorsystems nach Auftreten einer Diskrepanz der Ausgangssignale der Ausfuhrungseinheiten beispielhaft beschrieben.
Im Schritt 605 wird die Masterfunktion von einer ersten auf eine zweite Ausführuigseinheit gewechselt.
Im Schritt 610 werden in wenigstens zwei Ausführungseinheiten die gleichen Befehle oder Programmsegmente abgearbeitet.
Im Schritt 620 werden die Ausgangssignale dieser wenigsten zwei Ausführungseinheiten auf Übereinstimmung verglichen. Sind die Ausgangssignale identisch bzw. innerhalb eines definierten Toleranzbandes, so wird erneut der Schritt 610 gestartet, dieses mal mit neuen Progranm- segmenten oder Befehlen und/oder Daten. Wird in Schritt 620 eine Diskrepanz der Ausgangssignale erkannt, wird als nächstes der Schritt 630 ausgeführt.
Im Schritt 630 wird auf wenigstens einer der Ausführungseinheiten, mindestens aber auf der
Ausführungseinheit, die mit der Systemschnittstelle bzw. dem DatenVAdressbus verbunden ist, die Abarbeitung der aktuellen Programmsequenz weitergeführt Auf wenigstens einer weiteren Ausführungseinheit wird eine Fehlererkennungsroutine ausgeführt. Dabei muss die Vergleichseinheit deaktiviert werden.
Im Schritt 640 werden die Ergebnisse der Fehlererkennungsroutinen jeweils mit einem Referenzwert verglichen, der zusammen mit dem Programmcode der Fehlererkennungsroutinen abgespeichert ist. Tritt bei diesem Vergleich eine Diskrepanz auf, so wird die Ausführungseinheit, deren Ergebnis beim Vergleich zu einer Diskrepanz geführt hat, als fehlerhaft gekennzeichnet und als nächstes der Schritt 650 ausgeführt. Tritt keine Diskrepanz auf, so wird erneut der
Schritt 605 gestartet, dieses mal mit neuen Programmsegmenten oder Befehlen und/oder Daten.
Im Schritt 650 werden die als fehlerhaft gekennzeichneten Ausführungseinheiten abgeschaltet. Dies kann z.B. dadurch erfolgen, dass dieser Ausführungseinheit keine Instruktionen, Daten und/oder Taktsignale zugeführt werden, oder dass die Verbindung dieser Ausführungseinheit
zur Vergleichseinheit und zur Systemschnittstelle bzw. zum DaterWAdressbus unterbrochen wird.
Im Schritt 660 wird das Prozessorsystem mit den verbleibenden, nicht fehlerbehafteten Ausfüh- rungseinheiten weiterbetrieben. In einem Prozessorsystem mit zwei Ausfuhrungseinheiten bedeutet dies einen Single-Core Betrieb. Dieser ist bei sicherheitsrelevanten Systemen zeitlich begrenzt.
Im Schritt 670 erfolgt nach Erreichen einer Abschaltbedingung, z.B. nach Überschreiten eines Zeitlimits für den Single-Core Betrieb, ein Abschalten des Prozessorsystems oder eine Um- schaltung in einen definierten sicheren Zustand.
Claims
1. Verfahren zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungsein- heiten, die in einer Lockstep-Betriebsart betrieben werden und deren Ergebnisse in einer Vergleichseinheit verglichen werden, dadurch gekennzeichnet, dass eine der beiden Ausfiihrungseinheiten die Funktion eines Masters innehat und die Masterfunktion zwischen den wenigstens zwei Ausführungseinheiten wechselt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausführungseinheiten der Betrieb des Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausführungseinheiten weitergeführt wird.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausführungseinheiten kein Reset oder keine sofortige Abschaltung des Rechnersystems erfolgt, sondern der Betrieb des
Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausführungseinheiten weitergeführt wird.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Masterfunktion den ein- zelnen Ausführungseinheiten durch eine Hardwarefunktion zugewiesen wird, vorzugsweise in Abhängigkeit der Zeit oder eines Befehlszählers.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Masterfunktion den einzelnen Ausführungseinheiten dynamisch zugewiesen wird.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zuweisung der Masterfunktion mittels einer erweiterten Vergleichseinheit erfolgt, die abhängig von wenigstens einem Eingangssignal die Masterfunktion den Ausführungseinheiten zuteilt.
7. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zuweisung der Masterfunktion durch das Betriebssystem, abhängig vom Scheduling der Laufzeitobjekte, erfolgt.
8. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zuweisung der Masterfunktion durch eine Kennung im Programmcode erfolgt.
9. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zuweisung der Masterfunktion durch einen Interrupt erfolgt.
10. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zuweisung der Masterfunktion in Abhängigkeit vom Speicherbereich der abzuarbeitenden Befehle erfolgt.
11. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Zuweisung der Master- funktion durch ein Fehlersignal der Vergleichseinheit, die die redundant errechneten
Größen vergleicht, erfolgt.
12. Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten, die in einer Lockstep-Betriebsart betrieben werden und deren Ergebnisse in einer Vergleichseinheit verglichen werden, dadurch gekennzeichnet, dass die Vorrichtung derart ausgebildet ist, dass diese eine Steuerung vornimmt, so dass eine der beiden Ausführungseinheiten die Funktion eines Masters innehat und die Masterfunktion zwischen den wenigstens zwei Ausführungseinheiten wechselt.
13. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausführungseinheiten der Betrieb des Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausführungseinheiten weitergeführt wird.
14. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, dass diese derart ausgestaltet ist, dass bei einem Vergleich bei einem Unterschied der Ergebnisse der wenigstens zwei Ausführungseinheiten kein Reset oder keine sofortige Abschaltung des Rechnersystems erfolgt, sondern der Betrieb des Rechnersystems mit wechselnder Zuteilung der Masterfunktion auf die wenigstens zwei Ausführungseinheiten weitergeführt wird.
15. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, dass die Masterfunktion den einzelnen Ausführungseinheiten durch eine Hardware zugewiesen wird, vorzugsweise in Abhängigkeit der Zeit oder eines Befehlszählers.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06777944A EP1915687A1 (de) | 2005-08-08 | 2006-07-25 | Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200510037245 DE102005037245A1 (de) | 2005-08-08 | 2005-08-08 | Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten |
DE102005037245.7 | 2005-08-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007017372A1 true WO2007017372A1 (de) | 2007-02-15 |
Family
ID=37478885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2006/064609 WO2007017372A1 (de) | 2005-08-08 | 2006-07-25 | Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1915687A1 (de) |
DE (1) | DE102005037245A1 (de) |
WO (1) | WO2007017372A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017116081A1 (de) | 2017-07-18 | 2019-01-24 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Konfigurieren einer Ausführungseinrichtung und zum Erkennen eines Betriebszustands derselben |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017207398A1 (de) | 2017-05-03 | 2018-11-08 | Robert Bosch Gmbh | Synchronisierung eines redundanten Verarbeitungssystems |
DE102017208484A1 (de) | 2017-05-19 | 2018-11-22 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Erkennung von Hardwarefehlern in Mikroprozessoren |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3898621A (en) * | 1973-04-06 | 1975-08-05 | Gte Automatic Electric Lab Inc | Data processor system diagnostic arrangement |
GB2194366A (en) * | 1986-08-21 | 1988-03-02 | Intel Corp | Apparatus for on-line checking and reconfiguration of integrated circuit chips |
EP0270064A2 (de) * | 1986-12-01 | 1988-06-08 | Siemens Aktiengesellschaft | Hochverfügbarkeitsrechnersystem mit einer Unterstützungslogik zum Wiederanlauf |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
-
2005
- 2005-08-08 DE DE200510037245 patent/DE102005037245A1/de not_active Withdrawn
-
2006
- 2006-07-25 WO PCT/EP2006/064609 patent/WO2007017372A1/de active Application Filing
- 2006-07-25 EP EP06777944A patent/EP1915687A1/de not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3898621A (en) * | 1973-04-06 | 1975-08-05 | Gte Automatic Electric Lab Inc | Data processor system diagnostic arrangement |
GB2194366A (en) * | 1986-08-21 | 1988-03-02 | Intel Corp | Apparatus for on-line checking and reconfiguration of integrated circuit chips |
EP0270064A2 (de) * | 1986-12-01 | 1988-06-08 | Siemens Aktiengesellschaft | Hochverfügbarkeitsrechnersystem mit einer Unterstützungslogik zum Wiederanlauf |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
Non-Patent Citations (2)
Title |
---|
JONES D: "FEHLERTOLERANZ UND ZUVERLAESSIGKEIT IN MIKROPROZESSOR-SYSTEMEN. ÖAM BEISPIEL DER FAMILIE MC88000", ELEKTRONIK, WEKA FACHZEITSCHRIFTENVERLAG, POING, DE, vol. 39, no. 24, 23 November 1990 (1990-11-23), pages 54 - 60, XP000172269, ISSN: 0013-5658 * |
POLLACK F ET AL: "A VLSI-intensive fault-tolerant computer architecture", COMPUTER SOCIETY INTERNATIONAL CONFERENCE (COMPCON). SPRING MEETING, LOS ALAMITOS, FEB. 26 - MAR. 2, 1990, LOS ALAMITOS, IEEE COMP. SOC. PRESS, US, vol. CONF. 35, 26 February 1990 (1990-02-26), pages 134 - 142, XP010018319, ISBN: 0-8186-2028-5 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017116081A1 (de) | 2017-07-18 | 2019-01-24 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Konfigurieren einer Ausführungseinrichtung und zum Erkennen eines Betriebszustands derselben |
Also Published As
Publication number | Publication date |
---|---|
DE102005037245A1 (de) | 2007-02-15 |
EP1915687A1 (de) | 2008-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1917592B1 (de) | Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung | |
DE102011086530A1 (de) | Mikroprozessorsystem mit fehlertoleranter Architektur | |
EP1952239A1 (de) | Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system | |
WO2006045800A1 (de) | Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem | |
DE102006048169A1 (de) | Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung | |
EP1810139B1 (de) | Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms | |
DE102008024193A1 (de) | System mit konfigurierbaren Funktionseinheiten und Verfahren | |
EP1680737A1 (de) | Verfahren und vorrichtung zur operandenverarbeitung in einer prozessoreinheit | |
WO2004092972A2 (de) | Programmgesteuerte einheit und verfahren | |
WO2007017372A1 (de) | Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten | |
DE102004037713A1 (de) | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms | |
EP2228723B1 (de) | Verfahren zur Fehlerbehandlung eines Rechnersystems | |
DE102008004206A1 (de) | Anordnung und Verfahren zur Fehlererkennung und -behandlung in einem Steuergerät in einem Kraftfahrzeug | |
DE102011007467A1 (de) | Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung | |
EP1915686B1 (de) | Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch markieren von registern | |
DE102016208864A1 (de) | Recheneinheit | |
DE102009001048A1 (de) | Vorrichtung und Verfahren zur Prüfung der Arbeitsweise eines Rechnersystems | |
DE102004051967A1 (de) | Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms | |
EP1915674B1 (de) | Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten und mit wenigstens zwei gruppen von internen zuständen | |
DE102010031017A1 (de) | Verfahren zur Überwachung des Programmablaufs eines Prozessors | |
EP1915691A1 (de) | Vorrichtung und verfahren zur steuerung eines rechnersystems | |
DE102006048170A1 (de) | Verfahren zur Erhöhung der Zuverlässigkeit eines Betriebssystems | |
DE102009001422A1 (de) | Verfahren zur Fehlerbehandlung eines Rechnersystems | |
DE102009001423A1 (de) | Vorrichtung und Verfahren zum Betreiben eines Rechnersystems | |
DE102005037258A1 (de) | Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2006777944 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2006777944 Country of ref document: EP |