DE102005055067A1 - Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System - Google Patents

Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System Download PDF

Info

Publication number
DE102005055067A1
DE102005055067A1 DE102005055067A DE102005055067A DE102005055067A1 DE 102005055067 A1 DE102005055067 A1 DE 102005055067A1 DE 102005055067 A DE102005055067 A DE 102005055067A DE 102005055067 A DE102005055067 A DE 102005055067A DE 102005055067 A1 DE102005055067 A1 DE 102005055067A1
Authority
DE
Germany
Prior art keywords
data
register
registers
error
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102005055067A
Other languages
English (en)
Inventor
Werner Harter
Thomas Kottke
Peter Tummeltshammer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102005055067A priority Critical patent/DE102005055067A1/de
Priority to PCT/EP2006/067558 priority patent/WO2007057271A1/de
Priority to EP06807389A priority patent/EP1952239A1/de
Priority to KR1020087011612A priority patent/KR20080068710A/ko
Priority to US12/094,229 priority patent/US20090044044A1/en
Priority to JP2008540553A priority patent/JP2009516277A/ja
Priority to CNA2006800431699A priority patent/CN101313281A/zh
Publication of DE102005055067A1 publication Critical patent/DE102005055067A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error

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)
  • Executing Machine-Instructions (AREA)

Abstract

Es wird eine Vorrichtung (120) zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten (101, 102) mit Registern aufweisenden System (100, 400) vorgestellt, wobei die Register zur Aufnahme von Daten ausgebildet sind. Die Vorrichtung weist Vergleichsmittel (126) auf, die derart eingerichtet sind, dass durch einen Vergleich von Daten, die zur Ablage in den Registern vorgesehen sind, eine Abweichung und damit ein Fehler feststellbar ist. Weiterhin sind wenigstens ein Schattenregister (121, 122), das derart eingerichtet ist, dass Daten der Register betreffende Daten darin ablegbar sind, und Mittel zum Wiederherstellen fehlerfreier Daten in wenigstens einem Register auf Grundlage der Daten in dem wenigstens einen Schattenregister (121, 122) bei einem festgestellten Fehler vorgesehen. Mit dieser Vorrichtung kann die Sicherheit eines Mehr-Kern-Prozessors (100) verbessert werden.

Description

  • Die Erfindung betrifft eine Vorrichtung und ein Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten bzw. CPUs mit Registern aufweisenden System bzw. Prozessor sowie einen entsprechenden Prozessor gemäß den Obergegriffen der unabhängigen Ansprüche.
  • Stand der Technik
  • Aufgrund der immer kleiner werdenden Halbleiterstrukturen wird eine Zunahme von transienten, d.h. temporären Prozessorfehlern erwartet, die z.B. durch kosmische Strahlung hervorgerufen werden. Auch heute treten schon transiente Fehler auf, die durch elektromagnetische Strahlung oder Einkopplung von Störungen in die Versorgungsleitungen der Prozessoren hervorgerufen werden.
  • Im Stand der Technik werden Fehler in einem Prozessor durch zusätzliche Überwachungseinrichtungen oder durch einen redundanten Rechner bzw. durch Einsatz eines Dual-Core(Doppel-Kern)-Rechners erkannt.
  • Ein solcher Dual-Core-Prozessor bzw. ein solches Prozessorsystem besteht aus zwei Ausführungseinheiten, insbesondere zwei CPUs (Master und Checker), die parallel oder zeitversetzt das gleiche Programm abarbeiten. Die beiden CPUs (Central Processing Unit) können taktsynchron, also parallel (im Lockstep oder Common Mode), oder um einige Takte zeitversetzt arbeiten. Beide CPUs empfangen dieselben Eingangsdaten und arbeiten das gleiche Programm ab, die Ausgänge des Dual-Cores werden jedoch ausschließlich durch den Master getrieben. In jedem Taktzyklus werden die Ausgänge des Masters mit den Ausgängen des Checkers verglichen und dadurch überprüft. Stimmen die Ausgangswerte der beiden CPUs nicht überein, so bedeutet das, dass sich mindestens eine der beiden CPUs in einem fehlerhaften Zustand befindet.
  • In einer Beispielarchitektur für einen Dual-Core-Prozessor vergleicht ein Komparator dabei die Ausgänge (Instruktionsadresse, Data Out, Kontrollsignale) beider Cores (alle Vergleiche finden parallel statt):
    • a: Instruktionsadresse (Ohne eine Überprüfung der Instruktionsadresse könnte der Master unbemerkt eine falsche Instruktion adressieren, die dann in beiden Prozessoren unerkannt abgearbeitet werden würde.)
    • b: Data Out
    • c: Datenadresse
    • d: Kontrollsignale wie Write Enable oder Read Enable
  • Die Signale aus b–d dienen der Ansteuerung des Datenspeichers bzw. externer Module.
  • Ein möglicher Fehler wird nach außen signalisiert und führt im Standardfall zum Abschalten des betroffenen Steuergerätes. Dieser Ablauf würde bei der erwarteten Zunahme von transienten Fehlern zu einem häufigeren Abschalten von Steuergeräten führen. Da bei transienten Fehlern keine hardwaretechnische Schädigung des Rechners vorliegt, wäre es hilfreich, den Rechner möglichst schnell wieder der Anwendung zur Verfügung zu stellen, ohne dass das System abschaltet oder ein Neustart erfolgen muss.
  • Methoden, die transiente Fehler beheben und dabei einen kompletten Neustart des Prozessors vermeiden, sind für Prozessoren, die im Master/Checker Betrieb arbeiten, nur vereinzelt zu finden.
  • Dazu zeigt die Veröffentlichung von Jiri Gaisler:
    „Concurrent error-detection and modular fault-tolerance in a 32-bit processing core for embedded space flight applications" vom Twenty-Fourth International Symposium on Fault-Tolerant Computing, pages 128–130, June 1994 einen Prozessor mit-integrierten Fehlererkennungs- und Recovery-Mechanismen (z.B. Parity Checking und automatische Instruktionswiederholung), der fähig ist, im Master/Checker Betrieb zu arbeiten. Die internen Fehlererkennungsmechanismen im Master oder im Checker triggern eine Recovery-Operation immer nur lokal in einem Prozessor. Dadurch verlieren die beiden Prozessoren ihre Synchronität zueinander, und ein Vergleich der Ausgänge kann nicht mehr stattfinden. Die einzige Möglichkeit, die beiden Prozessoren wieder zu synchronisieren, besteht in einem Neustart beider Prozessoren während einer unkritischen Phase der Mission.
  • Weiterhin zeigt die Schrift von Yuval Tamir and Marc Tremblay mit dem Titel "High-performance fault-tolerant vlsi systems using micro rollback" aus IEEE Transactions on Computers, volume 39, pages 548–554, 1990 eine Methode namens „Micro Rollback", durch die der komplette Zustand eines beliebigen VLSI-Systems um eine bestimmte Anzahl von Takten zurückgerollt werden kann. Dazu werden alle Register und das Registerfile als gesamtes durch einen zusätzlichen FIFO-Puffer erweitert. Neue Werte werden bei dieser Methode nicht direkt in das eigentliche Register geschrieben, sondern vorerst im Puffer abgelegt und erst nach ihrer Überprüfung in das Register übertragen. Um den gesamten Prozessorzustand zurückzurollen, werden die Inhalte aller FIFO-Puffer als ungültig markiert. Wenn das System um bis zu k Taktzyklen zurückgerollt werden können soll, werden für jedes Register k Puffer benötigt.
  • Diese im Stand der Technik vorgestellten Prozessoren haben somit den Mangel, dass sie durch Recovery-Operationen ihre Synchronität verlieren, da Recovery immer nur in einem Prozessor lokal durchgeführt wird. Die Grundidee des beschriebenen Verfahrens (Micro Rollback) dabei ist, jede Komponente eines Systems unabhängig mit Rollbackfähigkeit zu erweitern, um im Fehlerfall den gesamten Systemzustand auf konsistente Weise zurückrollen zu können. Der architekturspezifische Zusammenhang der einzelnen Komponenten (Register, Registerfile, ...) zueinander muss hierbei nicht betrachtet werden, da durch Rollback wirklich immer der gesamte Systemzustand konsistent zurückgerollt wird. Der Nachteil dieses Verfahrens ist ein großer Hardware-Overhead, der proportional zur Systemgröße (z.B. Anzahl der Pipelinestufen im Prozessor) wächst.
  • In der nicht vorveröffentlichten Anmeldung 102004058288.2 der Anmelderin werden ein Verfahren und eine Vorrichtung zum Beheben von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten sowie ein entsprechender Prozessor vorgestellt, wobei Register vorgesehen sind, in welchen Instruktionen und/oder diesen zugeordnete Informationen ablegbar sind, wobei die Instruktionen redundant in beiden Ausführungseinheiten abgearbeitet werden, und Vergleichsmittel wie z.B. ein Komparator enthalten sind, die derart gestaltet sind, dass durch einen Vergleich der Instruktionen und/oder der zugeordneten Informationen eine Abweichung und damit ein Fehler erkannt wird, wobei eine Aufteilung der Register des Prozessors in erste Register und zweite Register vorgegeben ist, wobei die ersten Register derart gestaltet sind, dass aus ihnen ein vorgebbarer Zustand des Prozessors und Inhalte der zweiten Register herleitbar sind, wobei Puffer als Mittel zum Zurückrollen enthalten sind, die derart ausgebildet sind, dass wenigstens eine Instruktion und/oder die Informationen in den ersten Registern zurückgerollt und erneut ausgeführt und/oder wiederhergestellt werden.
  • Bei den bisher vorgeschlagenen Maßnahmen besteht meist das Problem, dass tiefgehende Änderungen im Prozessoraufbau notwendig sind, wodurch herkömmliche Prozessoren nicht verwendet werden können.
  • Damit stellt sich das Problem, Fehler, insbesondere transiente Fehler ohne einen System- oder Prozessor-Neustart bei gleichzeitiger Vermeidung von großem Hardware-Aufwand zu beheben.
  • Erfindungsgemäß werden daher ein Verfahren und eine Vorrichtung sowie ein entsprechender Prozessor mit den Merkmalen der unabhängigen Patentansprüche vorgestellt. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche.
  • Vorteile der Erfindung
  • Bei einem Schattenregister (shadow register) handelt es sich um ein zusätzliches Register (Kopie, redundantes Register), in das immer die gleichen Daten geschrieben werden wie in das Originalregister. Bei Fehlern im Originalregister wird auf das Schattenregister umgeschaltet bzw. die Daten aus dem Schattenregister in das Originalregister übertragen. Es bietet sich an, ist aber nicht zwingend, die Menge aller Register einer CPU in zwei Teilmengen aufzuteilen, "Essential Registers" und "Derivable Registers ". Die Essential Registers sind derart gestaltet sind, dass aus ihnen die Inhalte Derivable Registers ableitbar sind. Ein wesentlicher Vorteil der Erfindung besteht darin, dass kein wesentlicher Eingriff in Prozessoren notwendig ist. Es ist ausreichend, wenige Leitungen nach außen zu führen. Damit kann die erfindungsgemäße Lösung verwirklicht werden, ohne neue Prozessoren bzw. Systeme entwickeln und herstellen zu müssen. Dies führt zu einer wesentlichen Kosten- und Zeitersparnis. Daneben ist die erfindungsgemäße Lösung applikations-, d.h. software-unabhängig. Es müssen insbesondere keine Rollback-Punkte definiert werden. Die Fehlerbehebung wird auf Hardwareebene ausgeführt, wodurch keine Softwareanpassung notwendig wird. Zusätzlich kann ein Recovery durch die erfindungsgemäße Lösung beschleunigt werden. Im Gegensatz zu Task-Wiederholungen und Resets, wie sie im Stand der Technik üblich sind, die meist mehrere Tausend bzw. einige Millionen Taktzyklen beanspruchen, werden bei der erfindungsgemäßen Lösung nur einige hundert Taktzyklen beansprucht. Diese Zeit wird hauptsächlich durch die Größe des Schattenregisters und die Latenz der Schreibzugriffe auf den Datenspeicher der Ausführungseinheiten bestimmt.
  • Im Fehlerfall wird der Inhalt der Schattenregister von den Ausführungseinheiten auf die internen Register eingelesen, wodurch ein konsistenter Prozessorzustand hergestellt wird. Es können dabei die Register aller Ausführungseinheiten aus den Schattenregistern befüllt werden, es ist aber auch möglich, die Register einer Ausführungseinheit aus den Schattenregistern zu befüllen und die Register der übrigen Ausführungseinheiten aus den Registern der ersten CPU zu befüllen usw. Die erfindungsgemäße Vorrichtung kann sowohl integrierter Bestandteil des zugeordneten Systems sein, d.h. beispielsweise in einen Dual-Core-Prozessor integriert ausgebildet sein, als auch als separate Baugruppe ausgebildet sein, die einem System zugefügt wird. Die Erfindung kann vorteilhaft für Steuergeräte in einem Kraftfahrzeug verwendet werden, ist aber nicht auf eine derartige Verwendung beschränkt.
  • Bei der nachfolgenden Beschreibung der bevorzugten Ausführungsformen der erfindungsgemäßen Lösung wird sowohl auch das Verfahren als auch auf die Vorrichtung (Recovery-Verfahren und Recovery-Vorrichtung) Bezug genommen, soweit es nicht ausdrücklich anders beschrieben ist.
  • Vorteilhafterweise sind bei der Erfindung Schattenregister für ein Prozessor- bzw. Programm-Status-Wort (PSW), ein Registerfile und/oder eine Instruktionsadresse vorgesehen. Ein Registerfile oder eine Registerbank oder ein Registerbereich ist eine Ansammlung von Registern. Zweckmäßigerweise sind ausreichend Schattenregister vorgesehen, um die (essentiellen) Register einer Ausführungseinheit zu spiegeln. Die Schattenregister werden mit Inhalten der Register der wenigstens zwei Ausführungseinheiten oder allgemein mit die Inhalte bzw. Daten der Register betreffenden Daten beschrieben. Aus dem Inhalt der Schattenregister kann somit im Fehlerfall ein fehlerfreier Zustand der Ausführungseinheiten, insbesondere der unmittelbar vorhergehende fehlerfreie Zustand wiederhergestellt werden. In das wenigstens eine Schattenregister werden in einer bevorzugten Ausführungsform Daten für das Registerfile und das PSW geschrieben, die für die wenigstens zwei Ausführungseinheiten vorgesehen sind. Der Schreibvorgang findet insbesondere nach einem Vergleich dieser Daten statt, und nur für den Fall, dass keine Abweichung, also kein Fehler festgestellt wurde. Durch einen Vergleich der den Ausführungseinheiten zugehörigen Register vor dem Beschreiben der Schattenregister kann sichergestellt werden, dass in die Schattenregister fehlerfreie Daten geschrieben werden. Die Daten für die Schattenregister können insbesondere durch Herausführen der betreffenden Signale, bspw. des Write Back-Busses, aus den Ausführungseinheiten erhalten werden. Dazu ist nur ein geringer Konstruktions- bzw. Hardwareänderungsbedarf notwendig.
  • Bei einem bevorzugten Ausführungsbeispiel der erfindungsgemäßen Lösung wird wenigstens ein Schattenregister in den Speicherbereich wenigstens einer Ausführungseinheit eingeblendet. Auf diese Weise kann das Schattenregister von der wenigstens einen Ausführungseinheit schnell und einfach ausgelesen werden.
  • Vorteilhafterweise werden bei dem erfindungsgemäßen Verfahren Befehle aus einem Instruktionsspeicher des wenigstens zwei Ausführungseinheiten mit Register aufweisenden Systems ausgeführt, wobei Adress- und Schreibsignale für das wenigstens eine Schattenregister erhalten werden. Dabei dekodiert bevorzugt ein Befehlsdecoder, der für die erfindungsgemäße Lösung vorgesehen sein kann, Befehle aus dem Instruktionsspeicher und generiert das Adress- und Schreibsignal für das wenigstens eine Schattenregister. Auf einen derart ausgestalteten Befehlsdecoder kann auch verzichtet werden, wenn diese Informationen, d.h. die Adress- und Schreibsignale, aus den wenigstens zwei Ausführungseinheiten herausgeführt, miteinander verglichen und für die Ansteuerung des wenigstens einen Schattenregisters verwendet werden.
  • Zweckmäßigerweise wird dem wenigstens einen Schattenregister eine Parität zum Feststellen der Korrektheit der Daten in dem Schattenregister zugeordnet. So kann auf einfache Weise sichergestellt werden, dass sich in dem Schattenregister keine fehlerhaften Daten befinden. Dies ist aber nicht nötig, wenn man softwaremäßig sicherstellt, dass das Registerfile und damit auch das Schattenregisterfile regelmäßig komplett neu beschrieben werden, da somit bestehende Fehler im Schattenregisterfile überschrieben werden. Vor einem Übertragen der Schattenregisterdaten auf wenigstens eine der Ausführungseinheiten kann mittels der vorgesehenen Parität die Korrektheit überprüft werden. Sind die Daten im Schattenregister nicht mehr korrekt, kann ein Neustart des Systems zweckmäßig sein. Da auf das Schattenregister nur im Fehlerfall lesend zugegriffen wird (Fehlerfall bedeutet nicht Fehler im Schattenregister, sondern Fehler in den CPUs), ist ein komplettes Neubeschreiben der Schattenregister ebenso möglich.
  • In einer bevorzugten Ausgestaltung der erfindungsgemäßen Lösung sind die Daten der Register betreffende Daten die, insbesondere fehlerfreien, Daten der Register selbst, wobei fehlerfreie Daten in wenigstens einem Register durch übertragen der Daten aus dem Schattenregister in das wenigstens eine Register wiederhergestellt werden. In diesem Fall enthält ein Schattenregister die Daten eines Registers einer Ausführungseinheit im letzten fehlerfreien Zustand, wodurch bei einem Fehler die Fehlerfreiheit durch Austausch bzw. Übertragen dieser Daten wiederhergestellt werden kann.
  • Es kann ebenso zweckmäßig vorgesehen sein, dass die fehlerfreien Daten der Register betreffenden Daten Prüfsummen sind. Dabei kann es sich insbesondere um eine Parität, CRC o.ä. handeln. In diesem Fall ist der Datenspeicherbedarf des Schattenregisters vorteilhaft kleiner als die Größe eines Registers wenigstens einer Ausführungseinheit. Auf diese Weise kann Speicherplatz innerhalb des Schattenregisters eingespart werden bzw. der Speicher des Schattenregisters kann kleiner bemessen werden. Zum Wiederherstellen von fehlerfreien Daten in einem Register wenigstens einer Ausführungseinheit müssen dann zunächst aus den Prüfsummen vollständige Daten wiederhergestellt werden, wie es im Stand der Technik bekannt ist. Werden nur Paritäten in den Schattenregistern gespeichert, sind wenigstens zwei CPUs vorzusehen. Im Fehlerfall werden die Paritäten der Register der beiden CPUs mit den Schattenparitäten verglichen. Durch diesen 3-fach Vergleich kann man feststellen, welche CPU fehlerhaft ist, und deren fehlerhafte Registerinhalte durch die Registerinhalte der funktionierenden CPU ersetzen.
  • Gemäß einer vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens werden Daten von wenigstens zwei Registern und wenigstens einem Schattenregister verglichen und die Daten als fehlerfrei festgestellt, die hauptsächlich übereinstimmen. Dieses Verfahren kann als Abstimmungs- oder Mehrheitsverfahren bezeichnet werden. Es werden dabei die Daten von wenigstens drei Registern (wenigstens zwei Register der Ausführungseinheiten und ein Schattenregister) verglichen, wobei die Daten als fehlerfrei festgestellt werden, die mehrheitlich übereinstimmen. Dieses Verfahren kann vorteilhaft insbesondere angewendet werden, wenn zur Steigerung der Verarbeitungsgeschwindigkeit das wenigstens eine Schattenregister bereits beschrieben wird, bevor eine Überprüfung der Korrektheit der Register der Ausführungseinheiten stattgefunden hat.
  • Es sei erwähnt, dass im Fehlerfall an Stelle einer Neubeschreibung der Daten in den Registern der Ausführungseinheiten auch ein Einblenden der Schattenregister oder andersartiges Umschalten möglich ist.
  • Ein erfindungsgemäßer Prozessor weist wenigstens zwei Ausführungseinheiten mit Registern und wenigstens eine erfindungsgemäße Vorrichtung auf. Dadurch kann der Betrieb eines wenigstens zwei Ausführungseinheiten mit Registern aufweisenden Prozessors, insbesondere eines Dual-Core-Prozessors, verbessert werden, da transiente Fehler einfach und schnell behebbar sind.
  • In einer bevorzugten Ausgestaltung weist der Prozessor Umschaltmittel zum Umschalten zwischen einem Sicherheits-Modus und einem Perfomanz-Modus auf, wobei die wenigstens zwei Ausführungseinheiten in dem Sicherheits-Modus das gleiche Programm abarbeiten, und in dem Perfomanz-Modus verschiedene Programme abarbeiten. Es versteht sich, dass darunter insbesondere auch verschiedene Teile eines Programms zu verstehen sind (Parallelverarbeitung, Multithreading, Symmetrisches Multiprozessorsystem SMP usw.). Die wenigstens beiden Ausführungseinheiten können dabei in beiden Modi taktversetzt oder taktsynchron arbeiten, wie es in dieser Anmeldung mehrfach beschrieben ist. Wesentlich ist eine Kombination aus Recovery-Mechanismus und Rekonfigurierungs-Mechanismus. Dies ermöglicht den Einsatz beider Methoden und schafft mehr Spielraum zwischen Sicherheit und Performanz des eingesetzten Systems. Zum Umschalten zwischen den Modi kann ein Mode-Switch-Modul vorgesehen sein, das ein Mode-Signal bereitstellt. Das core-Mode-Signal muss an die Recovery-Vorrichtung geleitet werden, da der Einsatz von Recovery nur im Sicherheits-Modus möglich ist. Beispielsweise im Automobil werden unterschiedliche Aufgaben durch Rechner abgearbeitet. Es gibt Komfortfunktionen (z.B. Klimasteuerung) und Sicherheitsfunktionen mit verschieden hohen Sicherheitsanforderungen (vgl. Motorsteuerung und Elektronisches Stabilitätsprogramm). Wenn diese verschiedenen Applikationen auf einem zentralen Steuergerät ausgeführt werden, kann der Programmcode in drei Klassen unterteilt werden:
    • – Programmcode, bei dem permanente und transiente Fehler online entdeckt werden müssen (Bsp. ESP oder x-by-wire Anwendungen),
    • – Programmcode, bei dem die benutzte Hardware in regelmäßigen Abständen auf permanente Fehler getestet werden muss (Bsp.: Motorsteuerung, Schiebedachsteuerung),
    • – Programmcode, der nicht sicherheitsrelevant ist (z.B. Klimaanlagensteuerung).
  • Somit ist es vorteilhaft, einen erfindungsgemäßen Prozessor um die Möglichkeit der Umschaltung zwischen den beiden Modi Sicherheit und Performanz zu erweitern. Im Sicherheitsmodus arbeiten die beiden Prozessoren denselben Programmcode, auch taktversetzt, ab und im Performanzmodus unterschiedliche Aufgaben. Bei Applikationen, die auf getesteter Hardware abgearbeitet werden müssen, kann dies abwechselnd im Sicherheits- und Performanzmodus geschehen. Dabei wird die Hardware im Sicherheitsmodus durch die Redundanz der beiden Prozessoren getestet und die Software läuft somit im Performanzmodus auf getesteter Hardware ab. Die Verteilung, wie oft die Software in welchem Modus abgearbeitet werden muss, ist abhängig von der geforderten Fehlerentdeckungszeit, d.h. wie lange sich maximal ein Fehler auswirken darf, ohne dass durch die Applikation Schaden angerichtet werden kann.
  • In einer vorteilhaften Ausgestaltung des erfindungsgemäßen Prozessors sind Mittel zum Leeren (Flushen) eines Cache-Speichers vorgesehen. Dadurch kann auf einfache Weise verhindert werden, dass Datenreste aus dem Performanz-Modus in die Recovery-Vorrichtung übernommen werden.
  • Es ist zweckmäßig, wenn bei dem erfindungsgemäßen Prozessor wenigstens zwei Taktgeber vorgesehen sind.
  • Ebenso zweckmäßig kann es sein, wenn bei dem erfindungsgemäßen Prozessor genau ein Taktgeber für jeweils eine Ausführungseinheit und ein Taktgeber für die Vorrichtung vorgesehen ist.
  • Durch diese beiden Ausgestaltungen ergeben sich vielfältige vorteilhafte Möglichkeiten zur synchronen oder asynchronen Ansteuerung der Ausführungseinheiten und der Schattenregister.
  • Gemäß einer bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens wird zwischen einem Sicherheits-Modus und einem Perfomanz-Modus umgeschaltet, wobei im Sicherheits-Modus ein erfindungsgemäßes Verfahren zum Beheben von Fehlern ausgeführt wird und im Perfomanz-Modus die wenigstens zwei Ausführungseinheiten verschiedene Programme bzw. Programmteile oder Tasks ausführen. Zwischen den Modi kann vorteilhaft über ein Mode Select Signal umgeschaltet werden.
  • Ein erfindungsgemäßes Steuergerät für ein Kraftfahrzeug weist eine erfindungsgemäße Vorrichtung oder einen erfindungsgemäßen Prozessor auf. Damit können Kfz-Steuergeräte sicherheits- und perfomanzseitig verbessert werden.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Es versteht sich, dass die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
  • Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
  • Figurenbeschreibung
  • 1 zeigt ein Blockdiagramm eines Dual-Core-Prozessor-Systems, das eine bevorzugte Ausgestaltung der erfindungsgemäßen Vorrichtung enthält;
  • 2 zeigt eine schematische Darstellung der bevorzugten Ausgestaltung der erfindungsgemäßen Vorrichtung aus 1;
  • 3 zeigt eine schematische Darstellung des Dual-Core-Prozessor-Systems aus 1;
  • 4 zeigt ein Blockdiagramm eines Dual-Core-Prozessor-Systems, für das eine bevorzugte Ausgestaltung der erfindungsgemäßen Vorrichtung vorgesehen sein kann; und
  • 5 zeigt einen Ausschnitt eines Blockdiagramms einer bevorzugten Ausgestaltung der erfindungsgemäßen Vorrichtung, die insbesondere für ein Dual-Core-Prozessor-System gemäß 4 vorgesehen sein kann.
  • In den Figuren sind gleiche Elemente mit gleichen Bezugszeichen versehen.
  • In 1 ist schematisch ein Dual-Core- bzw. Doppelkern-Prozessor-System 100 gezeigt, das eine bevorzugte Ausführungsform der erfindungsgemäßen Vorrichtung (Recovery-Vorrichtung) 120 aufweist. Weiterhin weist das System einen Befehlsspeicher (Instruction Memory) 130 und einen Datenspeicher (Data Memory) 140 auf.
  • Das Dual-Core-Prozessor-System 100 weist zwei Ausführungseinheiten (CPUs, Cores) auf, einen Master 101 und einen Checker 102, die parallel ein Programm bearbeiten. Die Ausgabe von Daten an die Peripherie (Anwendungssystem) erfolgt nur, wenn die Daten von Master und Checker übereinstimmen. Bei diesem Ausführungsbeispiel ist die Recovery-Vorrichtung extern gelagert ist, d.h. nicht in die Cores integriert. Daher sind besonders vorteilhaft bis auf die Herausführung bestimmter interner Signale keine Modifikationen an den CPUs 101, 102 notwendig. Die innere Struktur der Recovery-Vorrichtung ist den 2 und 3 genauer beschrieben.
  • Der Befehlsspeicher 130 des Systems ist als Festwertspeicher, auch Read-Only Memory (ROM) genannt, ausgeführt. Zu ihm werden die Adressen für die Befehle (Instruction address) über eine Verbindung 110 geführt. Nach Anlegen einer Befehlsadresse über die Verbindung 110 gibt der Befehlsspeicher 130 über eine Verbindung 111 den entsprechenden Befehl (Instruction) zurück. Der Befehl wird beiden CPUs 101 und 102 zugeführt. Der Befehlsspeicher 130 ist in der dargestellten Ausführungsform standardmäßig ausgeführt. Er wird durch das Vorsehen der Recovery-Vorrichtung 120 nicht verändert. Wie in 3 im Detail zu sehen, werden nur die Adressen des Masters 101 an den Befehlsspeicher 130 geführt, während die Adressen des Checkers 102 nur zu einem Komparator (comp) 126a geführt werden, der ein Fehlersignal (Error) erzeugt, wenn Adressen oder Adress-Parity von Master und Checker nicht übereinstimmen. Die Paritäten werden von Paritätsgeneratoren (parity generator) 126b erzeugt und Paritätsprüfern (parity check) 126c geprüft. Diese Parity Generatoren/Checker dienen der Absicherung des single point of failure-Pfades über die Speicher.
  • Der Datenspeicher 140 des Systems ist als Schreib-Lese-Speicher, auch Random-Access Memory (RAM) genannt, ausgeführt. Ihm werden über eine Verbindung 112 (Data Address/Data Out) Adressen und Daten zugeführt. Weiterhin gibt er über eine Verbindung 113 entsprechende Daten an die CPUs aus (Data In). Wie in 3 deutlicher zu sehen, handelt es sich um die Ausgangsleitungen von Daten-Adressen und Daten von Master und Checker. Hier werden die Adressen und Daten für den Datenspeicher 140 und für das in der Recovery-Vorrichtung 120 enthaltene Schattenregisterfile 121 ausgegeben. Auf den Dateneingangsleitungen 113 von Master und Checker werden normalerweise die Inhalte des externen Datenspeichers übertragen. Wenn über den Komparator 126a eine Diskrepanz (Fehler) zwischen Master und Checker erkannt wurde, werden nach Auslösung des Error Signals (Interrrupt In) auf einer entsprechenden Leitung 117 die gesicherten Inhalte des externen Registerfiles 121 und des externen PSW-Registers 122 (3) zu Master und Checker übertragen. Es bietet sich an, CPU-intern den Eingang der Leitungen 113 und 117 auf den Write Back Bus zu legen bzw. mappen. Auch der Datenspeicher 140 ist standardmäßig ausgeführt und wird durch Vorsehen der Recovery-Vorrichtung nicht verändert. Wie in 3 im Detail zu sehen, werden nur die Adressen und Daten des Masters an den Datenspeicher 140 geführt, während die Adressen und Daten des Checkers nur zur dem Komparator 126a geführt werden. Dieser erzeugt ein Fehlersignal, wenn Adressen bzw. Daten oder Adress-Parity bzw. Daten-Parity von Master und Checker nicht übereinstimmen. Die Paritäten werden von Paritätsgeneratoren (parity generator) 126b erzeugt und Paritätsprüfern (parity check) 126c geprüft. Diese Parity Generatoren/Checker dienen der Absicherung des single point of failure-Pfades über die Speicher.
  • Der Daten- sowie der Befehlspeicher stellen Schwachstellen des Systems, sog. single points of failure, dar, da sie im System jeweils nur einmal vorhanden sind. Es bietet sich daher an, die beiden Speicher bspw. durch ECC (error correcting codes) oder andere im Stand der Technik bekannte Methoden abzusichern (sicherer Speicher).
  • Der Write Back Bus, ein interner Bus, ist über eine Leitung 114 an die Recovery-Vorrichtung 110 geführt. Auf dem Write Back Bus werden von verschiedenen Prozessoreinheiten wie ALU (Arithemtische und Logische Einheit) oder Daten-RAM Rechenergebnisse bzw. Daten in das interne Registerfile der CPU geschrieben.
  • Weiterhin wird über eine Leitung 115 (PSW Out) das jeweilige Programm- bzw. Prozessor-Status-Wort von Master 101 und Checker 102 ausgegeben. Das Prozessor-Status-Wort gibt Auskunft über Ergebnisse der Befehlsausführung im Programmablauf, z.B. wird in Flags (entsprechende Bits des PSW) kodiert festgehalten, ob das Ergebnis von Rechenoperationen Null oder negativ ist (Zero Flag) oder ob ein Überlauf aufgetreten ist (Carry Flag) usw. Außerdem enthält das PSW Informationen über den Interrupt-Status der CPU. Mit der Kenntnis bzw. Restaurierung des Prozessor-Status-Wort es kann ein Programm an der abgebrochenen Stelle korrekt fortgesetzt werden.
  • Über eine Leitung 116 (Interrupt In), die an Master und Checker geführt wird, kann eine Programmunterbrechung des gerade laufenden Programms durchgeführt werden.
  • Vorzugsweise wird die Interrupt-Leitung dazu verwendet, um die beiden CPUs 101 und 102 zu veranlassen, das PSW und die Registerfiledaten von dem externen Recovery-Modul 120 zu laden und damit ihre möglicherweise falschen Daten durch korrekte Daten zu ersetzen. Die Quelle der Leitung 116 entspricht in den 2 und 3 dem Signal Error Out, dass durch den Komparator 126 bzw. 126a (comp) erzeugt wird.
  • In 2 ist der innere Aufbau der Recovery-Vorrichtung 120 aus 1 schematisch dargestellt. Aus Übersichtsgründen wurde der Taktversatz zwischen den beiden CPUs in diesem Blockschaltbild weggelassen. Es versteht sich aber, dass ebenso ein Taktversatz vorgesehen sein kann. Die Recovery-Vorrichtung weist als Schattenregister ein Registerfile 121 und ein PSW-Register 122 auf.
  • Das Registerfile 121 enthält zumindest so viele Register wie der Master 101 bzw. der Checker 102 oder mindestens so viele Register, wie zur Wiederherstellung der betreffenden Anwendung erforderlich sind (Essential Registers). Zum Schreiben wird es automatisch von einem Befehlsdecoder 123 adressiert. Zum Lesen wird es über die Leitung 112 (Data Address/Data Out) des Masters adressiert. Beim Betrieb werden die Daten vom Write Back Bus über die Leitung 115 geschrieben und im Fehlerfall von den Data Out Ausgängen des Registerfiles in die Data In Eingänge der CPUs über die Leitung 117 gelesen. Alternativ können die Daten auch vom Data Out des Masters beschrieben werden. Dies ist für die vorgestellte Recovery-Vorrichtung nicht notwendig, stellt aber keinen nennenswerten Hardware Overhead dar, und bietet die Möglichkeit, das Schattenregister auch in anderer Form (z.B. als zusätzlicher Speicher) zu verwenden. Um die Schattenregister auslesen zu können, werden sie vorzugsweise in den Speicheradressbereich eingeblendet. Dann kann durch einfache Schreib- oder Leseoperationen auf sie zugegriffen werden. Bei dieser Ausführungsform wird durch die Ausführungseinheiten bzw. CPUs 101, 102 nur im Fehlerfall und nur lesend auf die Schattenregister zugegriffen, da die Schreibzugriffe durch den in dieser bevorzugten Ausführungsform der erfindungsgemäßen Vorrichtung vorgesehenen Befehlsdecoder 123 durchgeführt werden.
  • Das PSW-Register 122 wird, wenn der Vergleich der Signale PSW Out des Masters und des Checkers keinen Fehler anzeigt, mit dem Signal PSW Out des Masters 101 über Leitung 115 beschrieben. Alternativ kann das PSW-Register auch von den Signalen Data Address/Data Out des Masters adressiert und mit dem Signal Data Out des Masters beschrieben werden. Diese Vorgehensweise kann für mögliche Erweiterungen sinnvoll sein. Das PSW wird über PSW Out ausgelesen und zusammen mit Data Out vom Registerfile 121 an Leitung 117 zur Verfügung gestellt. Diese Leitung ist, wie in 1 gezeigt, mit Data In von Master und Checker verbunden, wobei wiederum nur im Fehlerfall zugegriffen wird.
  • Innerhalb der Recovery-Vorrichtung 120 wird die Leitung 116 von einer Komparator/Paritätseinheit 126 aus der Recovery-Vorrichtung heraus, wie in 1 beschrieben, und an das Registerfile 121 sowie das PSW-Register 122 geführt, um sicherzustellen, dass keine fehlerhaften Daten in das Schattenregister gespeichert werden. Wie in 3 gezeigt, setzt sich die Komparator/Paritätseinheit 126 zumindest aus wenigstens einem Komparator 126a zusammen. Vorteilhaft sind zusätzlich wenigstens ein Paritätserzeuger 126b und/oder wenigstens ein Paritätsprüfer 126c vorgesehen. Falls ein Fehler in der Komparator/Paritätseinheit 126 detektiert wird, darf das derzeitige Datenwort (welches ja als fehlerhaft erkannt wurde) nicht mehr auf die Schattenregister geschrieben werden. Nachdem das Auslösen einer Interrupt-Routine in den Prozessor-Kernen aber einige Taktzyklen benötigt, kann durch die gezeigte Verbindung das Beschreiben verhindert werden, wenn das Schattenregister entsprechend eingerichtet ist.
  • Die Komparator/Paritätseinheit 126 enthält alle Vergleichs- und Paritäts-Schaltungen, um insbesondere folgende Funktionen darzustellen:
    • – Vergleicher von Write Back Bus von Master und Checker, wobei die Daten über Leitung 114 zugeführt werden. Nachdem dieser Bus zeitweise auf "hochohmig" geschalten ist, was einen Vergleich unmöglich macht, muss diesem Komparator auch das Write Enable Signal aus dem Decoder zur Verfügung gestellt werden.
    • – Parity-Generator für das Signal Instruction Address des Master sowie Vergleicher für Instruction Address von Master und Checker, wobei die Daten über Leitung 110 zugeführt werden.
    • – Parity-Generator für die Signale Data Address und Data Out des Master sowie Vergleicher für die Signale Data Address und Data Out von Master und Checker, wobei die Daten über Leitung 112 zugeführt werden.
    • – Vergleicher für das Signal PSW Out von Master und Checker, wobei die Daten über Leitung 115 zugeführt werden.
  • Wird ein Fehler festgestellt, so wird im vorliegenden Beispiel eine Interrupt-Routine in den CPUs gestartet, durch die die Daten aus dem Schattenregister 121, 122 in die Register der beiden CPUs 101, 102 übertragen werden. Kann beispielsweise das PSW in einer CPU nicht beschrieben werden, kann das PSW bzw. dessen Bits durch eine entsprechende Software-Routine in der Interrupt-Routine gesetzt werden. (Beispielsweise kann eine Addition mit Überlauf durchgeführt werden, wenn das Überlauf-Flag gesetzt werden muss). Anschließend können beide CPUs 101, 102 mit korrektem Registerinhalt weiterarbeiten.
  • In der gezeigten Ausführungsform weist die erfindungsgemäße Vorrichtung 120 auch den Befehlsdecoder 123 auf, um die Befehle zu erkennen, die das Registerfile beschreiben. Der Befehlsdecoder generiert für diese Befehle die Adresse für die zu adressierenden Register des Registerfiles sowie das Write-Signal. Am Eingang erhält der Decoder die um einen Takt verzögerte Instruktion und gibt am Ausgang Adressen und das Write-Signal für das Registerfile 121 aus. Für die Taktverzögerung um einen Takt ist eine Einheit 124 vorgesehen.
  • Nach dem Vergleich wird das Signal Instruction Address durch eine weitere Taktverzögerungseinheit 125 um zwei Takte verzögert an das Registerfile 121 geführt. (Wie in 3 detaillierter gezeigt, wird die Instruction Address ein weiteres Mal zusätzlich auch um einen Takt verzögert auf das Registerfile geführt, da im Falle eines Interrupts die Instruktionsadresse aus einer anderen Pipelinestufe abgespeichert werden muss als bei einem Sprung. Dabei handelt es sich allerdings um prozessorspezifische Details, die mit der Recovery-Vorrichtung direkt nicht zusammenhängen.) Das Registerfile speichert im Fall eines Sprungbefehls die derzeitige Instruktionsadresse ab. Die Instruktionsadresse wird innerhalb des Prozessors durch die Pipelines geführt. Man könnte die Sprungadresse auch durch das Herausführen eines weiteren Busses aus der CPU beschaffen, durch die vorgestellte externe Weiterführung können aber die Eingriffe in die Cores minimiert werden.
  • Über die Leitung 116 wird das Signal Error Out an den Eingang Interrupt In von Master und Checker bereitgestellt. Error Out wird aktiv, wenn die Komparator/Paritätseinheit 126 der Recovery-Erweiterung 120 eine Abweichung zwischen Master und Checker feststellt.
  • In 3 ist der innere Aufbau des Dual-Core-Prozessor-Systems aus 1 schematisch dargestellt. Aus Übersichtsgründen wurde der Taktversatz zwischen den beiden CPUs auch in diesem Blockschaltbild weggelassen. In dieser Abbildung sind Master 101 und Checker 102 getrennt dargestellt, woraus ebenfalls die getrennte Darstellung der Leitungen 110 bis 117 folgt. Die Leitung 112 ist doppelt ausgeführt, was die beiden Signale Data Address und Data Out repräsentieren soll.
  • Zwischen den Kernen des Masters und des Checkers sind die Einheiten der Recovery-Vorrichtung, nämlich Registerfile 121, PSW-Register 122, Decoder 123, Taktverzögerungseinheiten 124, 125 und Komparator/Paritätseinheit 126 sowie der Befehlsspeicher 130 und der Datenspeicher 140 dargestellt. Die Untereinheiten 126a, 126b, 126c der Komparator/Paritätseinheit 126 sind in der Darstellung räumlich getrennt.
  • In 4 ist ein Dual-Core-Prozessor-System schematisch gezeigt, für das eine bevorzugte Ausgestaltung der erfindungsgemäßen Vorrichtung vorgesehen sein kann. Dieses Blockschaltbild zeigt ein rekonfigurierbares System, bei dem zwischen einem Performanz-Modus und einem Sicherheits-Modus umgeschaltet werden kann.
  • Um die Anforderung nach hoher Rechenperformanz oder Sicherheit zu gewährleisten, muss das rekonfigurierbare Zweiprozessorsystem im Betrieb zwischen den beiden Modi umschaltbar sein. Im Sicherheitsmodus, der bei der Abarbeitung von sicherheitsrelevanten Programmcode verwendet wird, arbeitet das System im klassischen Master/Checker Modus, wobei eine Ausgestaltung der erfindungsgemäßen Vorrichtung verwendet wird.
  • Im Performanzmodus arbeitet das System wie ein Zweiprozessorsystem, wobei es insbesondere die Performanz eines herkömmlichen Zweiprozessorsystems aufweist.
  • Das Umschalten zwischen den beiden Modi erfolgt durch das Betriebssystem durch eine spezielle Instruktion, dem Mode-Switch Befehl. Diese Instruktion wird vorzugsweise außerhalb des Prozessors durch eine prozessorexterne Einheit detektiert und in einen NoOperation Befehl gewandelt, bevor sie an den Prozessor weitergegeben wird. Damit wird ein Eingriff in die Befehlsdecoder der beiden Prozessoren vermieden.
  • Im Sicherheits-Modus arbeitete das System entsprechend den 1 bis 3, wobei beide Cores das gleiche Programm abarbeiten. Da manche Komponenten nur einfach vorhanden sind (z.B. Busse, Taktleitung und Versorgungsspannung), sollten diese speziell abgesichert werden. Um das System zusätzlich gegen Common Cause Fehler wie EMV oder Spannungsspitzen auf der Versorgungsspannung abzusichern, können die beiden Prozessoren in diesem Modus mit einem Taktversatz arbeiten.
  • Im Performanz-Modus arbeiten die CPUs verschiedene Programme bzw. Programmteile oder Tasks ab und erreichen so eine höhere Performanz und Rechenleistung als eine einzelne CPU. Jede CPU kann den Instruktions- bzw. Befehlsspeicher, den Datenspeicher und die Peripherie ansteuern. Daher muss der Takt dieser Komponenten und der CPUs im Performanzmodus phasengleich sein. Erfolgt keine Taktumschaltung einer CPU bei der Umschaltung vom Sicherheitsmodus in den Performanzmodus, so müsste dieser im Performanzmodus bei jedem Zugriff auf die Peripherie einen Wartetakt einlegen, bis er die Daten erhält. Da dies eine hohe Performanzeinbuße mit sich bringt, wird der Takt dieser CPU für den Performanzmodus auf die Phasenpolarität des Mastertaktes umgeschaltet. Dazu muss der Taktversatz im Performanzmodus ausgeschaltet werden.
  • Da nun beide CPUs auf die Peripherie zugreifen können, müssen in diesem Modus die Zugriffe durch spezielle Einheiten (Instruktions-RAM Control-Einheit, Daten-RAM Control-Einheit) verwaltet werden. Da Speicherzugriffe auf den Instruktionsspeicher in jedem Takt nun durch beide CPUs erfolgen können, müssen diese Zugriffe durch je einen Instruktionscache pro CPU entkoppelt werden, damit der Instruktionsspeicher nicht zum leistungsbegrenzenden Faktor wird. In der gezeigten Implementierung greifen die Cache-Controller mit Hilfe eines Burst-Zugriffes von vier Instruktionen auf den Instruktionsspeicher zu. Jedoch ist es nicht notwendig, die Datenzugriffe der beiden CPUs auf den Datenspeicher durch einen Cache ebenfalls zu entkoppeln, da z.B. bei Automobilanwendungen nur jede 10. Instruktion ein Datenspeicherzugriff ist. Wenn sich diese Verteilung ändert, kann ein Datencache für jede CPU vorgesehen werden. Zusammengefasst handelt es sich folglich um eine Erweiterung eines Systems, das eine Recovery-Funktionalität besitzt, um eine Perfomanz-Funktionalität.
  • Modusumschaltung:
  • Im Sicherheitsmodus arbeiten die beiden CPUs die gleichen Befehle ab und verhalten sich identisch. Dazu müssen die internen Zustände der beiden CPUs, d.h. die Daten in den Registern und den Instruktionscaches, identisch sein. Im Performanzmodus arbeiten die beiden CPUs jedoch verschiedene Befehle ab und somit sind auch die internen Prozessorzustände unterschiedlich. Daher müssen die Daten in den beiden CPUs und in den Instruktionscaches vor einem Umschalten vom Performanz- in den Sicherheitsmodus synchronisiert werden.
  • Eine wichtige Voraussetzung für die Modusumschaltung des umschaltbaren Zweiprozessorsystems ist, dass das Betriebssystem die beiden gleichartigen CPUs unterscheiden kann. Dazu muss jede CPU eine zugeordnete ID aufweisen. Dazu ist ein einzelnes Bit ausreichend. Im Sicherheitsmodus darf dieses Bit nicht überprüft werden, da sonst der Komparator einen Fehler signalisieren würde.
  • Weiterhin ist zur Umschaltung des Zweiprozessorsystems zwischen den beiden Modi ein Befehl erforderlich. Durch Aufruf des Befehls wird der Moduswechsel eingeleitet. Die Umschaltung vom Performanzmodus in den Sicherheitsmodus wird vorteilhafterweise in den Time Tables für beide CPUs abgelegt. Meist wird eine CPU die Modusumschaltung zuerst beginnen. Diese startet den Moduswechsel und teilt der zweiten CPU gleichzeitig durch einen Interrupt mit, dass diese ebenfalls den Modus wechseln soll.
  • Zusätzlich sollte gewährleistet sein, dass im Performanzmodus jede CPU die Möglichkeit hat, mindestens zwei atomare Zugriffe auf den Datenspeicher auszuführen. Diese nicht unterbrechbaren Speicherzugriffe sind zur Synchronisation der gemeinsam benutzten Daten beider Prozessoren oder auch zur Tasksynchronisation notwendig. Um im Performanzmodus die Datenkonsistenz zu gewährleisten, ist es notwendig, dass eine CPU die Möglichkeit hat, einen Wert aus dem Datenspeicher auszulesen und anschließend ohne eine Unterbrechung durch eine andere CPU diesen Wert modifiziert zurückzuschreiben. Dies wird insbesondere dadurch gewährleistet, dass, sobald auf einen bestimmten Speicherbereich zugegriffen wird, Datenspeicherzugriffe für andere CPUs durch das Anlegen eines Wait-Kommandos unterbunden werden. Die CPU kann durch einen weiteren Datenspeicherzugriff auf die reservierte Adresse den Datenspeicher wieder für andere CPUs freigeben. Durch die Möglichkeit, den Speicherzugriff für andere CPUs zu unterbinden, können in Software Techniken implementiert werden, um den Datenzugriff auf gemeinsam genutzte Speicher zu ermöglichen, oder die CPUs können sich durch "Semaphore" gegenseitig bei der Abarbeitung von Tasks synchronisieren (nicht zu verwechseln mit der Synchronisation mit der in den Sicherheitsmodus gewechselt werden kann).
  • Die Umschaltmittel zum Umschalten zwischen den Modi sind somit als Mode-Switch Einheit 407 ausgebildet. Der Einsatz der Recovery-Vorrichtung ist nur im Sicherheits-Modus vorgesehen. Daher ist es zweckmäßig ein Core Mode Signal, das die Mode-Switch Einheit ausgibt, an die Recovery-Vorrichtung zu führen. Damit einhergehend kann die Recovery-Vorrichtung durch das Core Mode Signal ein- und ausschaltbar ausgebildet sein. Dabei kann ebenso vorgesehen sein, die Recovery-Vorrichtung im Performanz-Modus z.B. durch ein Clock Enable Signal komplett abzuschalten, um den Stromverbrauch zu verringern.
  • In 4 ist ein Dual-Core-Prozessor-System, für das eine bevorzugte Ausgestaltung der erfindungsgemäßen Vorrichtung vorgesehen sein kann, insgesamt mit 400 bezeichnet. Das System weist zwei CPUs, Master 101 und Checker 102, Befehlsspeicher 130 und Datenspeicher 140 auf. Die Speicher sind nicht dupliziert, sondern sind als sichere Speicher ausgeführt, wie weiter oben erläutert wurde. Sie können auch dupliziert ausgeführt werden.
  • Mit 401 ist eine Instruktionsspeicher-Steuereinheit (ICU) bezeichnet. Die ICU verwaltet alle Zugriffe der beiden CPUs 101, 102 auf den gemeinsamen Befehlsspeicher 130. Im Sicherheitsmodus darf nur der Master 101 im Falle eines Cache Miss Befehle aus dem Befehlsspeicher anfordern. Die ICU lädt dann nicht nur den einen Befehl nach, sondern führt vorzugsweise einen Burstzugriff aus, um die Cachezeile in einem Stück nachzuladen. Dabei erhält ein Instruktionscache 402 des Masters 101 die Instruktionen direkt, während ein Instruktionscache 403 des Checker 102 die Instruktionen um einen vorgesehenen Taktversatz später erhält.
  • Da im Performanzmodus die beiden CPUs gleichzeitig vom Instruktionsspeicher 130 Befehle anfordern können, muss die ICU-Einheit 401 eine Priorisierung der Zugriffe vornehmen. Normalerweise hat der Master die höhere Priorität. Um den Checker jedoch im ungünstigsten Fall nicht total auszubremsen, hat der Checker die höhere Priorität, wenn im Taktzyklus davor der Master den Zugriff auf den Befehlsspeicher 130 hatte.
  • Mit 404 ist eine Datenspeicher-Steuereinheit (DCU) bezeichnet. Die DCU 404 verwaltet die Zugriffe der beiden CPUs auf den Datenspeicher 140 und die Peripherie. Zusätzlich muss sie noch ein individuelles Prozessoridentifikationsbit bereitstellen. Anhand dieses Bits können im Performanzmodus die beiden CPUs vom Betriebssystem unterschieden werden. Dieses Bit kann durch einen Lesezugriff auf eine bestimmte Speicheradresse ausgelesen werden. Während die Adresse für beide CPUs gleich ist, erhält beispielsweise der Master eine 0 zurück während der Checker eine 1 erhält. Sind mehr als zwei CPUs vorgesehen, müssen entsprechend mehr Bits verwendet werden.
  • Im Sicherheitsmodus werden alle Zugriffe auf den Datenspeicher und die Peripherie durch den Master ausgeführt, während Anfragen vom Checker nur für den für die Fehlererkennung notwendigen Vergleich verwendet werden. Die ausgelesenen Daten werden direkt zum Master geführt und mit einem evtl. vorgesehenen Taktversatz, z.B. 1,5 Takte, zum Checker.
  • Im Performanzmodus muss die DCU 404 die gleichzeitigen Zugriffe der beiden CPUs zum Datenspeicher 140 und zu der Peripherie auflösen. Grundsätzlich erfolgt die gleiche Priorisierung wie bei der ICU 401. Zusätzlich ist noch ein Semaphormechanismus implementiert, um ein Sperren des Datenspeichers für die andere CPU zu ermöglichen (ähnlich zu dem MESI-Protokoll): Eine CPU kann den Datenspeicher sperren, so dass sie exklusiven Zugriff darauf hat. Während dieser Zeit werden die Zugriffe anderer CPUs durch die DCU gesperrt, bis die erste CPU den Speicher wieder frei gibt. Das Sperren und Freigeben erfolgt durch einen Lesezugriff auf eine bestimmte Speicheradresse (FBFF=64511 in dieser Implementierung), den die DCU erkennen kann. Die Priorisierung ist gleich wie bei den Datenspeicherzugriffen. Bei einem gleichzeitigen Sperrwunsch von beiden CPUs erhält der Master zuerst die exklusiven Zugriffsrechte. Die Implementierung des Speichersperrmechanismus erfolgt in der DCU, um Standardprozessoren verwenden zu können.
  • Die Funktionalität des Speichersperrmechanismus besteht aus 6 Zuständen:
    • – corel_access: Speicherzugriff von Master. Falls der Master den Speicher sperren möchte, kann er das in diesem Zustand vornehmen.
    • – core_2 access: Speicherzugriff von Checker. Falls der Checker den Speicher sperren möchte, kann er dass in diesem Zustand vornehmen.
    • – core1_locked: Master 1 hat den Datenspeicher gesperrt. Er hat exklusiven Zugriff auf den Datenspeicher und die Peripherie. Möchte in diesem Zustand der Checker auf den Speicher zugreifen, so wird er durch das Signal wait2 angehalten, bis der Master den Datenspeicher wieder freigegeben hat.
    • – core2_locked: Checker hat den Datenspeicher exklusiv für sich reserviert. Nun wird der Master bei Datenspeicheroperationen durch das Signal wait1 angehalten.
    • – lock1_wait: Der Datenspeicher war durch den Checker gesperrt als der Master ihn ebenfalls für sich reservieren wollte. Der Master ist somit für die nächste Speichersperrung vorgemerkt.
    • – lock2_wait: Datenspeicher war durch den Master gesperrt. Der Checker bekommt den Speicher vorreserviert.
  • Mit 405 und 406 sind Mode-Switch Detect Einheiten bezeichnet. Die Mode-Switch Detect Einheiten sitzen jeweils zwischen dem Instruktionscache 402 bzw. 403 und der CPU und beobachten den Befehlsbus. Sobald sie die mode-switch Instruktion bemerken, teilen sie dies einer Mode-Switch Einheit 407 mit. Diese Funktionalität könnte ebenso durch den Befehlsdecoder der beiden Prozessoren erfolgen. Da aber hier Standardprozessoren ohne eine interne Änderung verwendet werden sollen, wird dies extern implementiert. Nachteilig ist, dass der Befehl erkannt wird, sobald er aus dem Speicher ausgelesen wird. Ist nun im Programmablauf davor ein Sprungbefehl, ist der Umschaltbefehl trotzdem aktiv, obwohl er eigentlich in der Pipeline aufgrund des Sprunges gelöscht werden würde. Somit würde das System fehlerhaft den Modus wechseln. Dieses Problem kann jedoch gelöst werden, indem die Instruktionen durch den Compiler so umgeordnet werden, dass vor der mode-switch Instruktion kein Sprungbefehl steht. Der notwendige Abstand zwischen dem Sprungbefehl und dem mode-switch Befehl ist abhängig von der Anzahl der Pipelinestufen der verwendeten CPUs.
  • Wie bereits erwähnt, erfolgt die Modusumschaltung durch die Software. Die dazu nötige Hardwareunterstützung ist in der Mode-Switch Einheit 407 implementiert. Der folgende Programmauszug stellt beispielsweise die Umschaltung vom Sicherheits- in den Performanzmodus dar:
    Figure 00310001
  • In Zeile (1) wird in das Register r1 die Adresse geladen, an der die DCU das Prozessor Id-Bit ausgibt. Als nächstes (2) wird der mode-switch Befehl ausgeführt. Da die beiden Prozessoren im Sicherheitsmodus in diesem Beispiel mit einem Taktversatz von 1,5 Takten arbeiten, erkennt die Mode-Switch Detect Einheit des Masters zuerst den Umschaltbefehl. Dies teilt sie durch das Signal corel_signal der Mode-Switch Einheit mit, die als Folge den Checker durch das Signal wait1 anhält. 1,5 Takte später erkennt die Mode-Switch Detect Einheit des Chekcers ebenfalls den Umschaltbefehl. Die Mode-Switch Einheit hält anschließend den Checker für einen halben Takt an, um die Taktsignale der beiden CPUs bezüglich der Phase zu synchronisieren. Schließlich wird das Modussignal vom Sicherheitsmodus auf den Performanzmodus umgeschaltet und die wait-Signale werden weggenommen. Die beiden CPUs arbeiten nun mit identischen Taktsignalen weiter. Im Schritt (3) laden nun die beiden CPUs ihr Prozessoridentifikationsbit aus der DCU. Dann wird (4) überprüft ob das Bit auf 0 oder 1 gesetzt ist und es wird ein bedingter Sprung von Checker ausgeführt (5), da sein CoreId-Bit 1 ist. Der Master führt keinen Sprung aus, sondern arbeitet an dieser Programmposition weiter, da sein Core-Id-Bit 0 ist. Somit ist der Programmablauf der beiden CPUs – wie gewünscht – getrennt. Beim Umschalten von Performanz- auf Sicherheits-Modus wird zunächst die Recovery-Vorrichtung über das Core Mode Signal aktiviert. Anschließend wird der Cache geleert (geflusht) um zu verhindern, dass Datenreste in die Recovery-Vorrichtung übernommen werden. Dann werden über eine Softwareroutine die Registerinhalte der beiden Prozessoren angepasst, was zugleich auch die Schattenregister in der Recovery-Vorrichtung beschreibt. Daher sind bis auf den Cache-Flush keine Softwareanpassungen für die Recovery-Vorrichtung notwendig. Durch Einbau von Registerstufen zwischen den einzelnen Prozessoren sowie vor bestimmten Eingangssignalen ist es möglich, die Prozessoren im Taktversatz zu betreiben, was zur Eindämmung von Common-Mode-Fehlern dient.
  • Zusätzlich können, wie anhand 5 erläutert, mehrere Taktgeber (Clock) (Quarze) für die einzelnen Prozessoren verwendet werden. 5a und 5b werden zusammen als 5 bezeichnet. In 5a ist ein Beispiel für drei Taktgeber, in 5b für zwei Taktgeber gezeigt. In 5 wird aus Gründen der Übersicht nur der Aufbau betreffend das Registerfile 121 gezeigt. Der Aufbau betreffend das PSW-Register unterscheidet sich davon nicht.
  • Von Master 101 und Checker 102 werden, wie beschrieben, über die Leitungen 110, 112, 114 und 115 Daten der Recovery-Vorrichtung 120 bereitgestellt. Bei der Ausgestaltung gemäß 5 sind für Master 101 und Checker 102 separate Taktgeber 203 und 204 vorgesehen. Es ist ebenso denkbar, dass diese Taktgeber in die Cores integriert ausgebildet sind. In diesem Fall muss das Taktgeber-Signal (clk) herausgeführt werden. Die beiden Prozessoren arbeiten nun nicht mehr synchron. Daher sollte beim Schreiben auf die Recovery-Vorrichtung darauf geachtet werden, dass die beiden CPUs nicht zu weit auseinanderlaufen (d.h. der Taktversatz darf nicht zu groß werden). Dazu werden vorzugsweise von den Core-Taktgebern 203, 204 getriebene FIFO-Pufferstufen 201, 202 (First In First Out) vor die Komparator/Paritätseinheit 126 eingefügt, die die eingehenden Signale puffern. Sobald die CPUs 101, 102 zu weit auseinanderlaufen, kann der schnellere bspw. über ein wait Signal angehalten werden, bis sie wieder taktsynchron laufen.
  • Bei der Ausgestaltung gemäß 5a werden das Schattenregisterfile 121 sowie das PSW-Register 122 (nicht gezeigt) mit einem separaten Taktgeber 205 getaktet.
  • Bei der Ausgestaltung gemäß 5b werden das Schattenregisterfile 121 sowie das PSW-Register 122 (nicht gezeigt) von den Core-Taktgebern 203, 204 getaktet. In diesem Fall muss das Registerfile asynchron beschrieben werden. Der Schreibvorgang wird dabei über die Komparator/Paritätseinheit 126 gesteuert, die jedes Mal, wenn zwei neue übereinstimmende Datenwörter anliegen, ein Schreibsignal absetzt. Falls die Datenwörter nicht übereinstimmen, erzeugt die Komparator/Paritätseinheit ein Fehlersignal über die Leitung 116. Der Lesezugriff auf das Schattenregisterfile 121 erfolgt auch in diesem Fall synchron über die Taktgeber 203, 204 der einzelnen Cores 101, 102.
  • Es versteht sich, dass die vorstehend erläuterten bevorzugten Ausführungsformen des erfindungsgemäßen Verfahrens nur beispielhaft zu verstehen sind. Daneben sind für einen Fachmann weitere Lösungen denkbar, ohne den Rahmen der vorliegenden Erfindung zu verlassen.

Claims (21)

  1. Vorrichtung (120) zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten (101, 102) mit Registern aufweisenden System (100, 400), wobei die Register zur Aufnahme von Daten ausgebildet sind, mit Vergleichsmitteln (126), die derart eingerichtet sind, dass durch einen Vergleich von Daten, die zur Ablage in den Registern vorgesehen sind, eine Abweichung und anhand der Abweichung ein Fehler feststellbar ist, gekennzeichnet durch wenigstens ein Schattenregister (121, 122), das derart eingerichtet ist, dass Daten der Register betreffende Daten darin ablegbar sind, und durch Mittel zum Wiederherstellen fehlerfreier Daten in wenigstens einem Register auf Grundlage der Daten in dem wenigstens einen Schattenregister (121, 122) bei einem festgestellten Fehler.
  2. Vorrichtung (120) nach Anspruch 1, gekennzeichnet durch wenigstens ein ein Prozessor-Status-Wort (PSW) (122), ein Registerfile (121) und/oder eine Instruktionsadresse aufnehmendes Schattenregister.
  3. Vorrichtung (120) nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass das wenigstens eine Schattenregister (121, 122) in den Speicherbereich wenigstens einer Ausführungseinheit (101, 102) einblendbar ist.
  4. Vorrichtung (120) nach einem der vorstehenden Ansprüche, gekennzeichnet durch eine Befehlsausführeinheit (123) zum Ausführen von Befehlen aus einem Instruktionsspeicher (130) des wenigstens zwei Ausführungseinheiten (101, 102) mit Registern aufweisenden Systems (100, 400) zum Erhalt von Adress- und Schreibsignalen für das wenigstens eine Schattenregister (121, 122).
  5. Vorrichtung (120) nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Daten der Register betreffenden Daten die Daten der Register selbst sind, und die Mittel zum Wiederherstellen fehlerfreier Daten in wenigstens einem Register auf Grundlage der Daten in dem wenigstens einen Schattenregister (121, 122) bei einem festgestellten Fehler zum Übertragen der Daten aus dem wenigstens einen Schattenregister (121, 122) in wenigstens ein Register ausgebildet sind.
  6. Vorrichtung (120) nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Daten der Register betreffenden Daten Prüfsummen sind.
  7. Prozessor (100, 400) mit wenigstens zwei Ausführungseinheiten (101, 102), gekennzeichnet durch eine Vorrichtung (120) nach einem der vorstehenden Ansprüche.
  8. Prozessor (100, 400) nach Anspruch 7, gekennzeichnet durch Umschaltmittel (407) zum Umschalten zwischen einem Sicherheits-Modus und einem Perfomanz-Modus, wobei die wenigstens zwei Ausführungseinheiten (101, 102) in dem Sicherheits-Modus das gleiche Programm ausführen und in dem Perfomanz-Modus verschiedene Programme ausführen.
  9. Prozessor (100, 400) nach Anspruch 7 oder 8, gekennzeichnet durch Mittel zum Leeren eines Cache-Speichers (402, 403).
  10. Prozessor (100, 400) nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, dass wenigstens zwei Taktgeber (203, 204, 205) vorgesehen sind.
  11. Prozessor (100, 400) nach Anspruch 10, dadurch gekennzeichnet, dass genau ein Taktgeber (203, 204) für jeweils eine Ausführungseinheit (101, 102) und ein Taktgeber (205) für die Vorrichtung (120) vorgesehen ist.
  12. Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten (101, 102) mit Registern aufweisenden System (100, 400), wobei Daten zur Ablage in den Registern vorgesehen werden, wobei die Daten verglichen werden und bei einer Abweichung ein Fehler festgestellt wird, dadurch gekennzeichnet, dass wenigstens ein Schattenregister (121, 122) zur Aufnahme von Daten der Register betreffenden Daten vorgesehen wird, wobei fehlerfreie Daten in wenigstens einem Register auf Grundlage der Daten in dem wenigstens einen Schattenregister (121, 122) bei einem festgestellten Fehler wiederhergestellt werden.
  13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass in das wenigstens eine Schattenregister ein Prozessor-Status-Wort (PSW) (122), ein Registerfile (121) und/oder eine Instruktionsadresse abgelegt wird.
  14. Verfahren nach Anspruch 12 oder 13, dadurch gekennzeichnet, dass wenigstens ein Schattenregister (121, 122) in den Speicherbereich wenigstens einer Ausführungseinheit (101, 102) eingeblendet wird.
  15. Verfahren nach einem der Ansprüche 12 bis 14, dadurch gekennzeichnet, dass Befehle aus einem Instruktionsspeicher (130) des wenigstens zwei Ausführungseinheiten (101, 102) mit Registern aufweisenden Systems (100, 400) ausgeführt werden, wobei Adress- und Schreibsignale für das wenigstens eine Schattenregister (121, 122) erhalten werden.
  16. Verfahren nach einem der Ansprüche 12 bis 15, dadurch gekennzeichnet, dass dem wenigstens einen Schattenregister (121, 122) eine Parität zum Festellen der Korrektheit der Daten in dem Schattenregister (121, 122) zugeordnet wird.
  17. Verfahren nach einem der Ansprüche 12 bis 16, dadurch gekennzeichnet, dass die Daten der Register betreffende Daten die Daten der Register selbst sind, und fehlerfreie Daten in wenigstens einem Register durch Übertragen der Daten aus dem wenigstens einen Schattenregister (121, 122) in das wenigstens eine Register wiederhergestellt werden.
  18. Verfahren nach einem der Ansprüche 12 bis 16, dadurch gekennzeichnet, dass die Daten der Register betreffende Daten Prüfsummen sind.
  19. Verfahren nach einem der Ansprüche 12 bis 18, dadurch gekennzeichnet, dass die Daten von wenigstens zwei Registern und wenigstens einem Schattenregister (121, 122) verglichen werden und die Daten als fehlerfrei festgestellt werden, die hauptsächlich übereinstimmen.
  20. Verfahren nach einem der Ansprüche 12 bis 19, dadurch gekennzeichnet, dass zwischen einem Sicherheits-Modus und einem Perfomanz-Modus umgeschaltet wird, wobei im Sicherheits-Modus ein Verfahren nach einem der Ansprüche 12 bis 19 ausgeführt wird, und wobei im Perfomanz-Modus die wenigstens zwei Ausführungseinheiten verschiedene Programme ausführen.
  21. Steuergerät für ein Kraftfahrzeug, gekennzeichnet durch eine Vorrichtung nach einem der Ansprüche 1 bis 6 oder einen Prozessor nach einem der Ansprüche 7 bis 11.
DE102005055067A 2005-11-18 2005-11-18 Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System Withdrawn DE102005055067A1 (de)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE102005055067A DE102005055067A1 (de) 2005-11-18 2005-11-18 Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System
PCT/EP2006/067558 WO2007057271A1 (de) 2005-11-18 2006-10-18 Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
EP06807389A EP1952239A1 (de) 2005-11-18 2006-10-18 Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
KR1020087011612A KR20080068710A (ko) 2005-11-18 2006-10-18 레지스터를 포함하는 적어도 2개의 실행 유닛을 구비한시스템에서 오류를 제거하기 위한 장치 및 방법
US12/094,229 US20090044044A1 (en) 2005-11-18 2006-10-18 Device and method for correcting errors in a system having at least two execution units having registers
JP2008540553A JP2009516277A (ja) 2005-11-18 2006-10-18 少なくとも2つのレジスタ付き処理ユニットを有するシステムにおいてエラーを除去する装置および方法
CNA2006800431699A CN101313281A (zh) 2005-11-18 2006-10-18 用于在包括至少两个具有寄存器的执行单元的系统中消除错误的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005055067A DE102005055067A1 (de) 2005-11-18 2005-11-18 Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System

Publications (1)

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

Family

ID=37684923

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005055067A Withdrawn DE102005055067A1 (de) 2005-11-18 2005-11-18 Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System

Country Status (7)

Country Link
US (1) US20090044044A1 (de)
EP (1) EP1952239A1 (de)
JP (1) JP2009516277A (de)
KR (1) KR20080068710A (de)
CN (1) CN101313281A (de)
DE (1) DE102005055067A1 (de)
WO (1) WO2007057271A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005054587A1 (de) * 2005-11-16 2007-05-24 Robert Bosch Gmbh Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen
US20090228686A1 (en) * 2007-05-22 2009-09-10 Koenck Steven E Energy efficient processing device
US9207661B2 (en) * 2007-07-20 2015-12-08 GM Global Technology Operations LLC Dual core architecture of a control module of an engine
US7689751B2 (en) * 2008-02-15 2010-03-30 Sun Microsystems, Inc. PCI-express system
JP5243113B2 (ja) * 2008-06-19 2013-07-24 株式会社日立製作所 演算処理装置多重化制御システム
JP4709268B2 (ja) * 2008-11-28 2011-06-22 日立オートモティブシステムズ株式会社 車両制御用マルチコアシステムまたは内燃機関の制御装置
US8112674B2 (en) * 2009-04-01 2012-02-07 International Business Machines Corporation Device activity triggered device diagnostics
US8886994B2 (en) * 2009-12-07 2014-11-11 Space Micro, Inc. Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment
JP5620730B2 (ja) * 2010-07-13 2014-11-05 株式会社日立製作所 2重系演算処理装置および2重系演算処理方法
US8589775B2 (en) * 2011-03-14 2013-11-19 Infineon Technologies Ag Error tolerant flip-flops
US9058419B2 (en) 2012-03-14 2015-06-16 GM Global Technology Operations LLC System and method for verifying the integrity of a safety-critical vehicle control system
JP5978873B2 (ja) * 2012-09-12 2016-08-24 株式会社デンソー 電子制御装置
JP6050083B2 (ja) * 2012-10-18 2016-12-21 ルネサスエレクトロニクス株式会社 半導体装置
KR20140134376A (ko) * 2013-05-14 2014-11-24 한국전자통신연구원 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법
KR101978984B1 (ko) * 2013-05-14 2019-05-17 한국전자통신연구원 프로세서의 오류를 검출하는 장치 및 방법
GB2515618B (en) 2013-05-30 2017-10-11 Electronics & Telecommunications Res Inst Method and apparatus for controlling operation voltage of processor core, and processor system including the same
US9304935B2 (en) * 2014-01-24 2016-04-05 International Business Machines Corporation Enhancing reliability of transaction execution by using transaction digests
US9130559B1 (en) * 2014-09-24 2015-09-08 Xilinx, Inc. Programmable IC with safety sub-system
US10275007B2 (en) * 2014-09-26 2019-04-30 Intel Corporation Performance management for a multiple-CPU platform
US9727679B2 (en) 2014-12-20 2017-08-08 Intel Corporation System on chip configuration metadata
US20160179161A1 (en) * 2014-12-22 2016-06-23 Robert P. Adler Decode information library
KR101658828B1 (ko) 2015-03-23 2016-09-22 한국전자통신연구원 씨피유 코어의 기능복구를 위한 장치 및 방법
US10942748B2 (en) * 2015-07-16 2021-03-09 Nxp B.V. Method and system for processing interrupts with shadow units in a microcontroller
US10289578B2 (en) * 2015-09-01 2019-05-14 International Business Machines Corporation Per-DRAM and per-buffer addressability shadow registers and write-back functionality
CN105573856A (zh) * 2016-01-22 2016-05-11 芯海科技(深圳)股份有限公司 一种解决指令读取异常问题的方法
KR102649318B1 (ko) 2016-12-29 2024-03-20 삼성전자주식회사 상태 회로를 포함하는 메모리 장치와 그것의 동작 방법
US10558539B2 (en) * 2017-09-28 2020-02-11 GM Global Technology Operations LLC Methods and systems for testing components of parallel computing devices
US10599513B2 (en) 2017-11-21 2020-03-24 The Boeing Company Message synchronization system
US10528077B2 (en) 2017-11-21 2020-01-07 The Boeing Company Instruction processing alignment system
GB2575668B (en) * 2018-07-19 2021-09-22 Advanced Risc Mach Ltd Memory scanning operation in response to common mode fault signal
CN114610519B (zh) * 2022-03-17 2023-03-14 电子科技大学 一种处理器寄存器组的异常错误的实时恢复方法及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313625A (en) * 1991-07-30 1994-05-17 Honeywell Inc. Fault recoverable computer system
JPH06195235A (ja) * 1992-12-22 1994-07-15 Hitachi Ltd 制御装置およびプロセッサ
JPH0773059A (ja) * 1993-03-02 1995-03-17 Tandem Comput Inc フォールトトレラント型コンピュータシステム
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
US5964845A (en) * 1995-04-18 1999-10-12 International Business Machines Corporation Processing system having improved bi-directional serial clock communication circuitry
US5689634A (en) * 1996-09-23 1997-11-18 Hewlett-Packard Co. Three purpose shadow register attached to the output of storage devices
US5926646A (en) * 1997-09-11 1999-07-20 Advanced Micro Devices, Inc. Context-dependent memory-mapped registers for transparent expansion of a register file
JP2002014943A (ja) * 2000-06-30 2002-01-18 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障検出方法
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
US6751749B2 (en) * 2001-02-22 2004-06-15 International Business Machines Corporation Method and apparatus for computer system reliability
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
WO2005003962A2 (de) * 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit
JP2005235074A (ja) * 2004-02-23 2005-09-02 Fujitsu Ltd Fpgaのソフトエラー補正方法
DE102005054587A1 (de) * 2005-11-16 2007-05-24 Robert Bosch Gmbh Programmgesteuerte Einheit und Verfahren zum Betreiben derselbigen

Also Published As

Publication number Publication date
US20090044044A1 (en) 2009-02-12
CN101313281A (zh) 2008-11-26
KR20080068710A (ko) 2008-07-23
JP2009516277A (ja) 2009-04-16
EP1952239A1 (de) 2008-08-06
WO2007057271A1 (de) 2007-05-24

Similar Documents

Publication Publication Date Title
DE102005055067A1 (de) Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System
EP1807763B1 (de) Verfahren und vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
DE68928360T2 (de) Hochleistungsrechnersystem mit fehlertoleranter Fähigkeit; Verfahren zum Betrieb desselben
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
DE68924119T2 (de) Verfahren und Vorrichtung zum Wiederanlauf nach einem Fehler in einem digitalen Rechnersystem.
EP1667022A2 (de) Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten
DE102011086530A1 (de) Mikroprozessorsystem mit fehlertoleranter Architektur
DE102008004205A1 (de) Schaltungsanordnung und Verfahren zur Fehlerbehandlung in Echtzeitsystemen
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
EP1398700A1 (de) Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten
DE102011011333A1 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
EP1552394A1 (de) Verfahren zur ereignissynchronisation, insbesondere für prozessoren fehlertoleranter systeme
DE102005037213A1 (de) Verfahren und Vorrichtung zur Umschaltung zwischen Betriebsmodi eines Multiprozessorsystems durch wenigstens ein externes Signal
WO2004092972A2 (de) Programmgesteuerte einheit und verfahren
DE102004037713A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102004051966A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102004051952A1 (de) Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE102005037226A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch markieren von Registern
WO2007017372A1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten
DE102004051964A1 (de) Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem
DE102004051967A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
DE102004051950A1 (de) Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
DE102022121708A1 (de) Halbleitervorrichtung
EP1915674B1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten und mit wenigstens zwei gruppen von internen zuständen
DE102004051992A1 (de) Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems

Legal Events

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