DE102005037258A1 - Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes - Google Patents

Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes Download PDF

Info

Publication number
DE102005037258A1
DE102005037258A1 DE200510037258 DE102005037258A DE102005037258A1 DE 102005037258 A1 DE102005037258 A1 DE 102005037258A1 DE 200510037258 DE200510037258 DE 200510037258 DE 102005037258 A DE102005037258 A DE 102005037258A DE 102005037258 A1 DE102005037258 A1 DE 102005037258A1
Authority
DE
Germany
Prior art keywords
execution unit
start state
mode
registers
memory
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
DE200510037258
Other languages
English (en)
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
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 DE200510037258 priority Critical patent/DE102005037258A1/de
Priority to PCT/EP2006/064721 priority patent/WO2007017394A2/de
Publication of DE102005037258A1 publication Critical patent/DE102005037258A1/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

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)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Performanzmodus in den Vergleichsmodus eine erste Ausführungseinheit einen Startzustand für den Vergleichsmodus erzeugt, dadurch gekennzeichnet, dass die zweite Ausführungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausführungseinheit übernimmt.

Description

  • Die Erfindung geht aus von einem Verfahren und einer Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi eines Mikroprozessors mit wenigstens zwei Ausführungseinheiten zur Abarbeitung von Programmsegmenten gemäß den Oberbegriffen der unabhängigen Ansprüche.
  • Transiente Fehler, ausgelöst durch Alpha-Teilchen oder kosmische Strahlung, werden zunehmend ein Problem für integrierte Schaltungen. Durch abnehmende Strukturbreiten, sinkende Spannungen und höhere Taktfrequenzen nimmt die Wahrscheinlichkeit zu, dass eine Spannungsspitze, hervorgerufen durch ein Alpha-Teilchen oder kosmische Strahlung, einen logischen Wert in einer integrierten Schaltung verfälscht. Ein falsches Berechnungsresultat kann die Folge sein. In sicherheitsrelevanten Systemen müssen daher solche Fehler zuverlässig detektiert werden.
  • Bei sicherheitsrelevanten Systemen, wie z.B. einem ABS-Regelsystem in einem Kraftfahrzeug, in denen Fehlfunktionen der Elektronik sicher detektiert werden müssen, werden gerade bei den entsprechenden Steuereinrichtungen solcher Systeme üblicherweise Redundanzen zur Fehlererkennung vorgesehen. So ist beispielsweise in bekannten ABS-Systemen jeweils der komplette Mikrocontroller dupliziert, wobei die gesamten ABS-Funktionen redundant berechnet und auf Übereinstimmung geprüft werden. Tritt eine Diskrepanz der Ergebnisse auf, so wird das ABS-System abgeschaltet.
  • Solche Prozessoreinheiten sind auch als Dual-Core oder Multi-Core Architekturen bekannt. Die verschiedenen Cores führen redundant und taktsynchron das gleiche Programmsegment aus, die Ergebnisse der beiden Cores werden verglichen. Ein Fehler wird bei dem Vergleich auf Übereinstimmung der beiden Ergebnisse erkannt. Im Folgenden wird diese Konfiguration als Vergleichsmodus bezeichnet.
  • Dual-Core oder Multi-Core Architekturen werden in anderen Anwendungen auch zur Leistungssteigerung, also zu einer Performanz-Steigerung eingesetzt. Beide Cores führen unterschiedliche Programmsegmente aus, wodurch sich eine Leistungssteigerung im Vergleich zum Vergleichsmodus oder einem Single Core System erzielen lässt. Diese Konfiguration wird als Leistungsmodus oder Performanzmodus bezeichnet. Dieses System wird auch in einer speziellen Ausprägung mit gleichen Cores als ein symmetrisches Multiprozessorsystem (SMP) bezeichnet.
  • Eine Erweiterung dieser Systeme ist eine Umschaltung durch Software zwischen diesen beiden Modi mittel eines Zugriffs auf eine spezielle Adresse und spezialisierter Hardware-Vorrichtungen. Im Vergleichsmodus werden die Ausgangsignale der Cores miteinander verglichen. Im Performanzmodus arbeiten die beiden Cores als ein symmetrisches Mehrprozessorsystem (SMP) und führen unterschiedliche Programme, Programmsegmente oder Befehle aus.
  • Vorteile der Erfindung
  • Bei den im Stand der Technik beschriebenen Mikroprozessoren müssen vor dem Umschalten vom Performanzmodus in den Vergleichmodus die internen Zustände (Register, Pipeline, etc.) der Ausführungseinheiten angeglichen werden. Dies kann bei einer Ausführungseinheit mit vielen Registern relativ viel Rechenzeit in Anspruch nehmen und einen Moduswechsel vom Performanzmodus in den Vergleichsmodus verlängern. Das übliche Verfahren für die Angleichung der Zustände der Ausführungseinheiten besteht darin, alle Register in den Ausführungseinheiten auf den Wert Null zu setzen oder deren Inhalt als ungültig zu markieren.
  • Aufgabe dieser Erfindung ist es, diesen Wechsel vom Performanzmodus in den Vergleichmodus zu verkürzen. Die hier beschriebenen Ausführungsbeispiele haben gegenüber dem Stand der Technik den Vorteil, dass sie eine schnellere Umschaltung vom Performanzmodus in den Vergleichsmodus ermöglichen, da die Register der Ausführungseinheiten je nach Modus an dem sie beteiligt ist durch Verwendung der erfindungsgemäßen Verfahren schnell initialisiert werden können
  • Vorteilhaft ist ein Verfahren zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten beschrieben, wobei zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Performanzmodus in den Vergleichsmodus eine erste Ausführungseinheit einen Startzustand für den Vergleichsmodus erzeugt dadurch gekennzeichnet, dass die zweite Ausführungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausführungseinheit übernimmt. Vorteilhaft wird bei dem Startzustand wenigstens ein der jeweiligen Ausführungseinheit zugeordneter Speicher oder Speicherbereich mit wenigstens einem vorgebbaren Wert belegt. Vorteilhaft wird der erzeugte Startzustand der ersten Ausführungseinheit in einen Speicher oder Speicherbereich kopiert und die zweite Ausführungseinheit diesen erzeugten Startzustand aus diesem übernimmt. Vorteilhaft wird der erzeugte Startzustand der ersten Ausführungseinheit von der zweiten Ausführungseinheit über einen speziellen Kommunikationskanal übernommen. Vorteilhaft ist eine Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten beschrieben, wobei Umschaltmittel und Vergleichsmittel enthalten sind und zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Performanzmodus in den Vergleichsmodus eine erste Ausführungseinheit einen Startzustand für den Vergleichsmodus erzeugt, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass ein Startzutand der ersten Ausführungseinheit zur Verfügung gestellt wird, so dass die zweite Ausführungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausführungseinheit übernimmt. Vorteilhaft ist ein der jeweiligen Ausführungseinheit zugeordneter Speicher oder Speicherbereich enthalten und die Vorrichtung derart ausgestaltet ist, dass bei dem Startzustand dieser mit wenigstens einem vorgebbaren Wert belegt wird. Vorteilhaft ist ein Speicher oder Speicherbereich enthalten und der erzeugte Startzustand der ersten Ausführungseinheit in diesen Speicher oder Speicherbereich kopiert wird und die zweite Ausführungseinheit diesen erzeugten Startzustand aus diesem übernimmt. Vorteilhaft handelt es sich bei dem wenigstens einen Speicher oder Speicherbereich um ein Register. Vorteilhaft ist ein spezieller Kommunikationskanal enthalten und die Vorrichtung derart ausgestaltet ist, dass der erzeugte Startzustand der ersten Ausführungseinheit von der zweiten Ausführungseinheit über diesen speziellen Kommunikationskanal übernommen wird.
  • Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.
  • Figuren
  • 1 zeigt den allgemeinen Aufbau eines Prozessors mit zwei Ausführungseinheiten und einen Vergleichseinheit.
  • 2 zeigt einen möglichen Aufbau einer Ausführungseinheit mit zwei unterschiedlichen Registergruppen und der Verarbeitungslogik.
  • 3 zeigt einen möglichen Aufbau einer Ausführungseinheit mit zwei unterschiedlichen Registersätzen und der Verarbeitungslogik. Die Registersätze sind ihrerseits noch mal in zwei unterschiedliche Gruppen unterteilt.
  • 4 zeigt zwei Ausführungseinheiten mit ihren internen Registern, einen Zwischenspeicher und einer Verbindung zwischen den Ausführungseinheiten zur Übertragung der internen Zustände.
  • 5 zeigt zwei Ausführungseinheiten mit ihren internen Registern und einen Zwischenspeicher zum Auslesen der internen Zustände für den Startzustand des Vergleichsmodus.
  • 6 zeigt den Aufbau eines Registers mit Nutz- und Steuerdaten.
  • 7 zeigt ein Multiprozessors mit zwei Ausführungseinheiten, sowie den internen Registern der Ausführungseinheiten.
  • 8 zeigt ein Multiprozessorsystem mit zwei Ausführungseinheiten, deren intere Register sowie einem speziellen Register
  • Beschreibung der Ausführungsbeispiele
  • Manche Einheiten in den Figuren besitzt dieselbe Nummer sind aber zusätzlich mit a oder b gekennzeichnet. Wird mit der Nummer ohne den Zusatz a oder b referenziert, so ist eine der vorhandenen Einheiten aber keine spezielle Instanz gemeint. Wird nur eine bestimmte Instanz einer Einheit referenziert wird immer die Kennung a oder b der Nummer nachgestellt.
  • Als Ausführungseinheit kann im Folgenden dabei sowohl ein Prozessor, ein Core, eine CPU, als auch eine FPU (Floating Point Unit), ein DSP (Digitaler Signalprozessor), ein Coprozessor oder eine ALU (Arithmetic logical Unit) bezeichnet werden.
  • In 1 ist ein Prozessorsystem C1000 dargestellt, welches zwischen einem Vergleichsmodus und einem Performanzmodus umschalten kann, bestehend aus zwei Ausführungseinheiten C100a und C100b. In einem bevorzugten Ausführungsbeispiel sind die Ausführungseinheiten identisch. Beide Ausführungseinheiten C100a und C100b besitzen jeweils eine Schnittstelle C110a bzw. C110b zum Systembus, über den zum Beispiel der Zugriff auf Speichermedien wie z.B. RAM, ROM, Flash oder auf Peripherieeinheiten erfolgt. Befindet sich das Prozessorsystem C1000 im Vergleichsmodus werden die Ausgangssignale der Ausführungseinheiten C100a, C100b über die Einheit C120 miteinander verglichen. Vorzugsweise erfolgt dieser Vergleich taktgenau oder mit einem festen Taktversatz, dies bedeutet, dass in jedem Takt die Ausgangssignale der wenigstens zwei Ausführungseinheiten C100a, C100b durch die Einheit C120 verglichen werden. Besteht ein Unterschied zwischen den verglichenen Signalen, dann wird von der Einheit C120 ein Fehlersignal generiert. Optional können auch zusätzlich die Eingangssignale der Ausführungseinheiten C100a und C100b verglichen werden. Befindet sich das Prozessorsystem C1000 im Performanzmodus ist die Vergleichseinheit C120 nicht aktiv und es wird bei Unterschieden in den Ausgangssignalen der Ausführungseinheiten kein Fehlersignal generiert. Die Deaktivierung der Vergleichseinheit kann auf verschiedene Weisen realisiert werden:
    • Ein Vergleich durch die Einheit C120 wird nicht durchgeführt.
    • Es werden keine Signale zum Vergleich an die Einheit C120 angelegt.
    • Ein Vergleich findet durch die Einheit C120 statt, das Ergebnis wird aber ignoriert.
  • Bei dem Wechsel vom Performanzmodus in den Vergleichsmodus muss sichergestellt werden, dass der interne Zustand der beiden Ausführungseinheiten C100a und C100b mit Beginn des Vergleichsmodus, also der Zeitpunkt zu dem der Vergleicher C120 aktiviert wird, identisch ist. Wir bezeichnen im Folgenden den Zustand zu Beginn des Vergleichsmodus von dem ausgehend im Vergleichsmodus die Berechnungen beginnen als Startzustand. Das die Zustände in den Ausführungseinheiten identisch sein müssen ist notwendig damit im fehlerfreien Fall zu keinem Zeitpunkt im Vergleichsmodus die durch C120 verglichenen Signale Unterschiede aufweisen. Unterschiedliche Zustände der Ausfürungseinheiten im Vergleichsmodus werden in der Regel dazu führen, dass ein unterschiedliches Ausgangssignal erzeugt wird. Diese unterschiedlichen Ausgangssignale würde der Vergleicher als Fehler detektieren, obwohl gleiche Eingangssignale vorliegen und kein zu detektierender Fehler bei der Verarbeitung aufgetreten ist.
  • Ein Weg in beiden Ausführungseinheiten den gleichen Zustand zu Beginn des Vergleichsmodus zu erreichen, ist das Markieren aller internen Register in den Ausführüngseinheiten als ungültig. Diese Möglichkeit der Markierung besteht aber nicht bei allen internen Registern. Diese müssen dann auf einen definierten Wert gesetzt werden, der in beiden Ausführungseinheiten identisch ist.
  • In einer ersten Ausführungsform, dargestellt in 2, wird ein Umschalten zwischen zwei Registersätzen beschrieben. In 2 wird eine mögliche Implementierung der Ausführungseinheit C100 beschrieben. Sie enthält mindestens zwei unterschiedliche Gruppen von Registern C101 und C102 und eine interne Logik C103. Die Gruppe von Registern C101 kann als ungültig markiert werden. Dies bedeutet, dass die interne Logik C103 der Ausführungseinheit beim Zugriff auf ein als ungültig markiertes Register dieser Gruppe erkennt, dass der Inhalt für dieses Register neu ermittelt werden muss; zum Beispiel durch Nachladen aus dem RAM, ROM, Flash oder durch Neuberechnung. Register aus der anderen Gruppe C102 haben immer einen gültigen Inhalt. Die Arbeitsregister einer Ausführungseinheit gehören beispielsweise zu dieser Gruppe. Findet ein Wechsel vom Performanzmodus zum Vergleichsmodus statt, müssen diese Register aus C101 und C102 in beiden Ausführungseinheiten C100, wie schon erwähnt, identisch sein.
  • Diese Bedingung für die Registergruppe C101, C102 muss nicht unbedingt ab dem Zeitpunkt der Umschaltung vom Performanzmodus in den Vergleichmodus gelten, aber spätestens beim ersten Lesezugriff auf zwei identische Register in den Ausführungseinheiten C 100 nach der Umschaltung in den Vergleichsmodus. Ein übliches Verfahren besteht darin, rechtzeitig vor oder nach der Umschaltung in den Vergleichsmodus allen Registern der Gruppe C 102 einen festen Wert zuzuweisen. Unabhängig davon werden bei einer Umschaltung in den Vergleichsmodus Register der Gruppe C101 als ungültig markiert.
  • Ist eine Ausführungseinheit C100 wie in 3 gemäß C100c aufgebaut, kann dieser Vorgang durch den Einsatz von zwei Registersätzen C101a, C102a und C101b, C102b in jeder der Ausführungseinheiten beschleunigt werden. Statt vor, während oder nach einer Umschaltung die Register anzugleichen, werden im Performanzmodus und im Vergleichsmodus unterschiedliche Register verwendet. Im Vergleichsmodus werden die Register der Gruppe C101a und C102a verwendet, während im Performanzmodus die Register der Gruppe C101b und C102b verwendet werden. Zwischen diesen Registersätzen wird zum Zeitpunkt der Umschaltung in den Vergleichsmodus oder in den Performanzmodus umgeschaltet. Ist für die Register 101a und 102a einmal sichergestellt, dass der Inhalt identisch ist, zum Bespiel durch eine entsprechende Initialisierung bei Einschalten des Prozessors, so bleiben diese Register auch während des Betriebs auf beiden Ausführungseinheiten gleich. Somit ist bei einer Umschaltung vom Performanzmodus in den Vergleichsmodus keine Angleichung der Registerinhalte notwendig, da im Vergleichsmodus immer nur auf Register zugegriffen wird, die zwischen den beiden Ausführungseinheiten C100a und C100b identisch sind und nur im Vergleichmodus beschrieben werden können.
  • In einer zweiten Ausführungsform, dargestellt in 4, wird das kopieren des internen Zustands einer Ausführungseinheit auf die andere Ausführungseinheit beschrieben. Eine weitere Möglichkeit der Beschleunigung des Umschaltvorgangs vom Performanzmodus in den Vergleichsmodus wird in 4 gezeigt. Sie besteht in dem Kopieren des internen Zustands C104d resp. C104e von einer Ausführungseinheit C100d, C100e zu der anderen Ausführungseinheit C100d bzw. C100e. Im Betrieb wird bei einer Umschaltung vom Performanzmodus in den Vergleichsmodus üblicherweise eine Ausführungseinheit zeitlich früher für eine Umschaltung bereit sein als die andere Ausführungseinheit. Werden die internen Register einer Ausführungseinheit (C104d bei C100d und C104e bei C100e), die zeitlich früher bereit ist, vor der Umschaltung auf die Werte initialisiert, welche im Vergleichsmodus benötigt werden, so kann der interne Zustand einer zweiten, zeitlich nachfolgenden Ausführungseinheit angeglichen werden, indem der Zustand von der ersten Ausführungseinheit übernommen wird.
  • Ist zum Beispiel die Ausführungseinheit C100d früher bereit für eine Umschaltung als die Ausführungseinheit C100e so wird bei der Umschaltung der Zustand C104d nach C104e kopiert.
  • Dieses Kopieren des internen Zustandes kann durchgeführt werden, indem direkt eine Verbindung C300 zwischen den beiden Ausführungseinheiten genutzt wird, über die der interne Zustand kopiert wird. Alternativ kann der Zustand von einer ersten, zeitlich früheren Ausführungseinheit in einen (schnell angebundenen) Zwischenspeicher C200 kopiert werden, aus dem eine zweite, zeitlich folgende Ausführungseinheit den Zustand in die internen Register übernimmt.
  • In einer weiteren Ausührungsform, dargestellt in 5, wird die Initialisierung der internen Zustände für den Vergleichmodus durch Kopieren der Registerinhalte aus einem Speicherbereich mit einer schnellen Anbindung beschrieben. Es wird dabei vorausgesetzt, dass zu Beginn des Performanzmodus der interne Zustand C104f C104g der mindestens zwei Ausführungseinheiten C100f C100g immer auf genau einen definierten Wert gesetzt werden. Dieser Wert ist in einem Speicher C400 gespeichert, der eine möglichst schnelle Anbindung an die Ausführungseinheiten C100f C100g und damit an die Register C104f C104g hat. Dieser Speicher ist vorzugsweise nichtflüchtig. Es ist aber auch ein flüchtiger Speicher möglich, wenn der im Speicher gespeicherte Initialisierungszustand für den Performanzmodus bei der Initialisierung des Multiprozessorsystems aus einem nichtflüchtigen Speicher kopiert wird, von einer externen Datenquelle empfangen wird oder vom Multiprozessorsystem generiert wird. Zur Umschaltung oder bei der Umschaltung vom Performanzmodus in den Vergleichsmodus wird der im Speicher C400 gespeicherte Initialisierungszustand für den Vergleichsmodus in die Register C104f C104g der wenigstens zwei Ausführungseinheiten C100f C100g, die im Vergleichsmodus betrieben werden sollen, geschrieben.
  • In einer weiteren Ausführungsform werden Teilzustände markiert, die bei einer Umschaltung in den Vergleichsmodus zwischen den Ausführungseinheiten nicht angeglichen werden müssen. Nicht immer ist es notwendig alle Register der Ausführungseinheiten bei einer Umschaltung vom Performanzmodus in den Vergleichsmodus anzugleichen. Damit im Vergleichsmodus nicht irtümlich auf eine Fehler erkannt wird müssen nur die Register einer Ausführungseinheit mit den Registern einer zweiten Ausführungseinheit angeglichen werden, die im Vergleichsmodus tatsächlich benutzt werden. Vor allem bei Architekturen die ein grosse Anzahl von Registern in den Ausführungseinheiten vorsehen, ist dies der Fall bzw. kann bei der Softwareentwicklung als Nebenbedingung berücksichtigt werden. Die Anzahl der Register die in einem Vergleichsmodus benutzt werden, kann auf jeden Fall bestimmt werden. Falls nun nicht alle benutzt werden ist es nicht notwendig alle Register anzugleichen sondern nur die verwendeten. Deswegen wird vorgeschlagen in jedem Register zusätzliche Bits vorzusehen. In diesen Bits kann kodiert werden, ob der Inhalt dieses Registers mit den entsprechenden Registers der anderen Ausführungseinheiten beim Umschalten von einem Performanzmodus in einen Vergleichsmodus angeglichen werden soll oder nicht. Alternativ kann ein spezielles Register existieren, dessen Inhalt deffiniert, welches Register einer Ausführungseinheit mit den entsprechenden Registern der anderen Ausführungseinheiten angeglichen werden muss. Die Angleichung selbst kann unabhängig von den Markierungen über die bekannten oder hier vorgestellten Verfahren geschehen.
  • 7 zeigt ein Prozessorsystem C300 mit mehreren Ausführungseinheiten C310, C320 mit ihren Registern C311, C321. Jedes Register aus C311, C321 besteht aus n Bits (n > 1) mit Nutzdaten (dargestellt in 6 C2010). Zusätzlich zu jeden dieser n Bits kommen m Bits (m >= 1) mit Steuerdaten (dargestellt in 6 C2000). In diesen m-Bits ist kodiert, ob beim Wechsel in den Vergleichsmodus eine Angleichung stattfindet. Bestehen die Steuerbits im einfachsten Fall nur aus einen Bit bedeutet zum Beispiel ein Wert von Null, dass eine Angleichung nicht stattfinden muss und ein Wert von Eins, dass eine Angleichung stattfinden muss. Die Auswertung dieser Bits geschieht dann bei der Umschaltung vom Perfomanz in den Vergleichsmodus.
  • 8 zeigt eine weitere Ausführungsform der Erfindung mit einem Prozessorsystem C400, welches Ausführungseinheiten C410, C420 mit ihren Registern C411, C422 beinhaltet. Zusätzlich besitzt das Prozessorsystem C400 ein Register C430. Der Inhalt dieses Registers C430 definiert, welche Register aus C411, C421 der Ausführungseinheiten C410, C420 bei einem Wechsel in den Vergleichsmodus angeglichen werden müssen. Zum Beispiel kann das Register C430 so realisiert werden, dass für jedes potentiell anzugleichende Register aus C411, C421 ein Bit in C430 vorgesehen ist. Ist das entsprechende Bit gesetzt muss das korrespondierende Register angeglichen werden, ist das Bit nicht gesetzt muss das korrespondierende Register nicht angeglichen werden. Die Auswertung dieses Registers geschieht dann bei der Umschaltung vom Perfomanz in den Vergleichsmodus. In einer weiteren Ausführungsform welche nicht in einer Figur dargestellt ist, wird nicht ein zentrales Register C430, wie in 8 dargestellt, vorgesehen, sondern es wird in jeder Ausführungseinheit ein Register vorgesehen, dass die Aufgabe des Registers C430 wahrnimmt. Dies bedeutet in diesem Register wird kodiert welche der Register der Ausführungseinheit bei einer Umschaltung vom Performanzmodus in einen Vergleichsmodus an die Register wenigstens einer zweiten Ausführungseinheit angepasst werden müssen. Bei einer Umschaltung vom einem Performanzmodus in einen Vergleichsmodus muss dann allerdings sichergestellt werden, dass die Inhalte dieser Spezialregister in allen zu synchronisierenden Ausführungseinheiten identisch sind.

Claims (9)

  1. Verfahren zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Performanzmodus in den Vergleichsmodus eine erste Ausführungseinheit einen Startzustand für den Vergleichsmodus erzeugt dadurch gekennzeichnet, dass die zweite Ausführungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausführungseinheit übernimmt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei dem Startzustand wenigstens ein der jeweiligen Ausführungseinheit zugeordneter Speicher oder Speicherbereich mit wenigstens einem vorgebbaren Wert belegt wird.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der erzeugte Startzustand der ersten Ausführungseinheit in einen Speicher oder Speicherbereich kopiert wird und die zweite Ausführungseinheit diesen erzeugten Startzustand aus diesem übernimmt.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der erzeugte Startzustand der ersten Ausführungseinheit von der zweiten Ausführungseinheit über einen speziellen Kommunikationskanal übernommen wird.
  5. Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei Umschaltmittel und Vergleichsmittel enthalten sind und zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird und bei Umschaltung aus dem Performanzmodus in den Vergleichsmodus eine erste Ausführungseinheit einen Startzustand für den Vergleichsmodus erzeugt, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass ein Startzutand der ersten Ausführungseinheit zur Verfügung gestellt wird, so dass die zweite Ausführungseinheit zur Erzeugung des Startzustandes den erzeugten Startzustand der ersten Ausführungseinheit übernimmt.
  6. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass wenigstens ein der jeweiligen Ausführungseinheit zugeordneter Speicher oder Speicherbereich enthalten ist und die Vorrichtung derart ausgestaltet ist, dass bei dem Startzustand dieser mit wenigstens einem vorgebbaren Wert belegt wird.
  7. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass ein Speicher oder Speicherbereich enthalten ist und der erzeugte Startzustand der ersten Ausführungseinheit in diesen Speicher oder Speicherbereich kopiert wird und die zweite Ausführungseinheit diesen erzeugten Startzustand aus diesem übernimmt.
  8. Vorrichtung nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass es sich bei dem wenigstens einen Speicher oder Speicherbereich um ein Register handelt.
  9. Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass ein spezieller Kommunikationskanal enthalten ist und die Vorrichtung derart ausgestaltet ist, dass der erzeugte Startzustand der ersten Ausführungseinheit von der zweiten Ausführungseinheit über diesen speziellen Kommunikationskanal übernommen wird.
DE200510037258 2005-08-08 2005-08-08 Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes Withdrawn DE102005037258A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200510037258 DE102005037258A1 (de) 2005-08-08 2005-08-08 Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes
PCT/EP2006/064721 WO2007017394A2 (de) 2005-08-08 2006-07-27 Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch übernehmen des startzustandes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200510037258 DE102005037258A1 (de) 2005-08-08 2005-08-08 Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes

Publications (1)

Publication Number Publication Date
DE102005037258A1 true DE102005037258A1 (de) 2007-02-15

Family

ID=37596207

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510037258 Withdrawn DE102005037258A1 (de) 2005-08-08 2005-08-08 Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes

Country Status (2)

Country Link
DE (1) DE102005037258A1 (de)
WO (1) WO2007017394A2 (de)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step

Also Published As

Publication number Publication date
WO2007017394A2 (de) 2007-02-15
WO2007017394A3 (de) 2007-04-26

Similar Documents

Publication Publication Date Title
EP2466466B1 (de) Verfahren zur Fehlererkennung bei der Ausführung eines Echtzeit-Betriebssystems
WO2007057271A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
DE102005037246A1 (de) Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und einer Vergleichseinheit
WO2006045800A1 (de) Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem
DE102005037230A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
EP3475824B1 (de) Verfahren und vorrichtung zur redundanten datenverarbeitung
WO2007057270A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
EP1915686B1 (de) Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch markieren von registern
DE102008024193A1 (de) System mit konfigurierbaren Funktionseinheiten und Verfahren
DE102011011333A1 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
EP1817662B1 (de) Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal
DE102006036386A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102005037259A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Umschalten von Registersätzen
DE102005037258A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Übernehmen des Startzustandes
DE1966991A1 (de) Ausfallgesicherte datenverarbeitungsanlage
DE10340236B4 (de) Anordnung mit einer Datenverarbeitungseinrichtung und einem Speicher
DE102005037245A1 (de) Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten
EP0919917B1 (de) Verfahren zum Testen des Pufferspeichers eines Mikroprozessorsystems
EP1915683A1 (de) Verfahren und vorrichtung zur steuerung eines speicherzugriffs bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
DE102021209038A1 (de) Verfahren zum automatischen Erkennen und Korrigieren von Speicherfehlern in einem sicheren mehrkanaligen Rechner
DE10317651A1 (de) Verfahren und Vorrichtung zum Vergleichen von binären Datenworten
DD290967A5 (de) Schaltungsanordnung zur ueberwachung der abarbeitung von unterprogrammen in rechnerarchitekturen
DE102005037260A1 (de) Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten mittels Bitinformationen in einem Register
DE102005059592A1 (de) Datenverarbeitungseinrichtung mit mehreren Ausführungseinheiten und Betriebsverfahren dafür
DE102005037244A1 (de) Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und mit wenigstens zwei Gruppen von internen Zuständen

Legal Events

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