DE102011011333B4 - Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung - Google Patents

Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung Download PDF

Info

Publication number
DE102011011333B4
DE102011011333B4 DE102011011333.9A DE102011011333A DE102011011333B4 DE 102011011333 B4 DE102011011333 B4 DE 102011011333B4 DE 102011011333 A DE102011011333 A DE 102011011333A DE 102011011333 B4 DE102011011333 B4 DE 102011011333B4
Authority
DE
Germany
Prior art keywords
processor
data
register
read
peripheral device
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.)
Active
Application number
DE102011011333.9A
Other languages
English (en)
Other versions
DE102011011333A1 (de
Inventor
Simon Brewerton
Glenn Ashley Farrall
Neil Stuart Hastie
Richard Knight
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102011011333A1 publication Critical patent/DE102011011333A1/de
Application granted granted Critical
Publication of DE102011011333B4 publication Critical patent/DE102011011333B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F11/1497Details of time redundant execution on a single processing 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/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

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)
  • Advance Control (AREA)

Abstract

Verfahren, das Folgendes umfasst:Identifizieren eines ersten Prozessors (102) als Hauptprozessor durch ein Bus-Seitenbandsignal, das in Beziehung zu einem Hauptprozessor-Identifizierungskennzeichen steht;Lesen von von einem Sensor gelieferten Daten aus einem Peripheriegerät (108) durch den ersten Prozessor (102);Kopieren der Daten in ein Register (110);wobei das Verfahren zusätzlich die Schritte umfasst, dass bei einem Versuch eines zweiten Prozessors (104), die Daten aus dem Peripheriegerät (108) zu lesen, der zweite Prozessor (104) unter Verwendung eines Bus-Adressdekoders auf der Basis des Vorhandenseins des Hauptprozessor-Identifizierungskennzeichens daran gehindert wird, die Daten aus dem Peripheriegerät (108) zu lesen, der Leseversuch des zweiten Prozessors (104) stattdessen zu dem Register (110) umgeleitet wird, und der zweite Prozessor (104) die Daten aus dem Register (110) ausliest.

Description

  • TECHNISCHES GEBIET DER ERFINDUNG
  • Die Erfindung bezieht sich allgemein auf Sicherheitssysteme und insbesondere auf eine zeitlich getrennte, redundante Prozessoranweisungsausführung, die in sicherheitskritischen Systemen oder in Systemen mit hoher Integrität anwendbar ist.
  • HINTERGRUND DER ERFINDUNG
  • Hoch-Integritäts-Software ist in einer Vielfalt von weitreichenden Anwendungen zu etwas Alltäglichem geworden. So weisen zum Beispiel viele Anwendungen im Automobilsektor, im Bankenwesen, in der Luft- und Raumfahrt, im Verteidigungs- und Abwehrsektor, im Bereich der Bezahlung über das Internet und viele andere Anwendungen kritische Pfade auf, die eine Validierung einer sicheren Operation bzw. eines sicheren Betriebs durch Redundanz, Diversität oder beides erfordern.
  • Die allgemeine Herangehensweise zur Garantierung einer sicheren Operation bzw. eines sicheren Betriebs eines kritischen Pfades liegt darin, dass zwei Algorithmen berechnet werden und die Ergebnisse in Bezug auf Übereinstimmung (Konsistenz) oder Plausibilität unter Verwendung eines unabhängigen Komparators verglichen werden. Im Allgemeinen ist dies bis jetzt mit Hilfe von zwei verschiedenen Verfahren implementiert worden. Bei dem ersten Verfahren können in einem System mit mehr als einem Verarbeitungskanal identische Algorithmen gleichzeitig berechnet werden, wobei jeweils ein Algorithmus in seinem eigenen Verarbeitungskanal verarbeitet wird, und die Ergebnisse in Bezug auf Übereinstimmung verglichen werden. Bei dem zweiten Verfahren können in einem System, das auf einen einzigen aktiven Verarbeitungskanal beschränkt ist, zwei (oder mehr) unterschiedliche Algorithmen mit einer zeitlichen Trennung berechnet werden. Diese Ergebnisse werden dann in Bezug auf Übereinstimmung oder Plausibilität gegenkontrolliert. Bei beiden Lösungswegen ist es notwendig zu gewährleisten, dass dieselbe Codeausführung in jedem Durchlauf die gleichen Daten gebraucht hat.
  • Bei beiden dieser Implementierungen gibt es Probleme. Vor allem existieren Probleme in Bezug auf das Lesen und Schreiben aus Schnittstellen-Peripheriegeräten oder gemeinsam genutzten Ressourcen. Wenn physisch getrennte Verarbeitungseinheiten verwendet werden, dann ist ein Hardware-Vergleich von Lesedaten möglich, da die Transaktionen gleichzeitig ausgegeben werden. Nur eine Verarbeitungseinheit steuert die Lesebustransaktion, und die Lesedaten für andere redundante Prozessoren werden durch die redundanten Prozessoren überwacht oder aus dem Bus „ausspioniert“ („snooped“), während diese ausgehend von gemeinsam genutzten Peripheriegeräten oder einem gemeinsam genutzten Speicher zu dem Hauptprozessor transferiert werden. In ähnlicher Weise geschieht dies mit den Schreibdaten, wobei nur eine Verarbeitungseinheit mit dem Bus selber verbunden ist, so dass der Schreibvorgang (Write) von dieser Verarbeitungseinheit zu der Aktuator-Steuerungs-Schnittstelle gesteuert wird. Das Problem liegt aber in dieser einzigen Transaktion auf Bus-Ebene. Da sowohl die Lese- als auch die Schreibbefehle nur eine einzige Transaktion auf Bus-Ebene sind, deckt die Redundanzprüfung nur den Prozessor ab und nicht den Transfer von Lese- oder Schreibdaten von dem Sensor-Subsystem durch alle dazwischen liegenden Brücken oder auf dem Chip integrierten Kommunikationsinfrastrukturen.
  • Im Gegensatz dazu ist dann in dem Fall, wenn eine einzige Verarbeitungseinheit verwendet wird und die Codesequenz wiederholt wird, um den Verarbeitungsvorgang zu überprüfen, ein direkter Vergleich von Hardware zu Hardware von Lese- oder Schreibdaten nicht möglich. Der Code für die redundante Ausführung muss geringfügig modifiziert werden, so dass die Daten von einem Lesevorgang (Read) oder Schreibvorgang (Write) von einer gemeinsam genutzten Ressource bei oder vor der ersten Ausführung in einen temporären Platz in einem Speicher kopiert werden. Nach der Durchführung des Algorithmus kann dieser temporäre Wert dann mit dem Wert des Hardware-Registers verglichen werden, welches den Wert des redundanten Durchlaufs enthalten würde. Also liegt hier die gleiche Beschränkung wie bei mehreren Prozessoren vor. Da sowohl die Lese- als auch die Schreibbefehle nur eine einzige Transaktion auf Bus-Ebene sind, deckt die Redundanzprüfung nur den Prozessor ab und nicht den Transfer von Lese- oder Schreibdaten von dem Sensor-Subsystem durch irgendwelche dazwischen liegende Brücken oder auf dem Chip integrierte Kommunikationsinfrastrukturen. Außerdem erzeugt das Erfordernis, dass die Codesequenz modifiziert werden muss, um eine anfängliche Kopie in einem Speicher für den nachfolgenden Vergleich aufzuzeichnen, nicht nur eine zusätzliche Komplikation für den Programmierer, sondern macht es auch schwierig zu gewährleisten, dass die zeitlich getrennten Durchläufe die exakt gleichen Anweisungen ausgeführt haben.
  • Die Publikation P. Subramanyan et al.: „Power efficient redundant execution for chip multiprocessors“, In: Workshop on Dependable and Secure nanocomputing, 2009 offenbart eine Mikroarchitektur, bei der ein Hauptkern und ein redundanter Kern die gleichen Instruktionen ausführen, wobei durch den Hauptkern geladene Werte repliziert werden und wobei der redundante Kern die replizierten Werte lädt.
  • Die Publikation S. Reinhardt et al.: „Transient fault detection via simultaneous multithreading“, In: ACM, 2000 offenbart ein Verfahren bei dem Datenschreibvorgänge von Threads protokolliert werden.
  • Die Publikation J. Smolens et al.: „Reunion: Complexity-effective multicore redundancy“, In: Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, IEEE Computer Society, 2006 offenbart ein System mit mehreren redundanten Kernen, wobei, wenn Kerne verschiedene geladene Werte empfangen, eine Fehlerdetektion und Wiederherstellung den Unterschied beheben kann.
  • US 5 226 152 A offenbart ein System mit redundanten Prozessoren.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ausführungsbeispiele beziehen sich auf Systeme und Verfahren zum Lesen aus Peripheriegeräten und Schreiben in Peripheriegeräte. In einem Ausführungsbeispiel umfasst ein Verfahren das Identifizieren eines ersten Prozessors als Hauptprozessor durch ein Bus-Seitenbandsignal, das in Beziehung zu einem Hauptprozessor-Identifizierungskennzeichen steht; das Lesen von einem Sensor gelieferten Daten aus einem Peripheriegerät durch den ersten Prozessor; das Kopieren der Daten in ein Register; das Hindern eines Leseversuchs bezüglich des Peripheriegeräts durch einen zweiten Prozessor unter Verwendung eines Bus-Adressdekoders auf der Basis des Vorhandenseins des Hauptprozessor-Identifizierungskennzeichens und das Umleiten zu dem Register; und das Lesen der Daten aus dem Register durch den zweiten Prozessor.
  • In einem Vergleichsbeispiel umfasst ein Verfahren das Schreiben von Daten in ein Peripheriegerät durch einen ersten Prozessor; das Protokollieren des Datenschreibvorgangs durch den ersten Prozessor durch eine Registriereinrichtung (eine Logger-Vorrichtung); das Versuchen des Schreibens von Daten in das Peripheriegerät durch einen zweiten Prozessor; das Protokollieren des Datenschreibvorgangs durch den zweiten Prozessor durch die Registriereinrichtung; und das Dekodieren des Datenschreibvorgangs durch den zweiten Prozessor zu einem Peripheriegerät, das keine Ausgabe erzeugt. In einem Ausführungsbeispiel umfasst ein System wenigstens zwei Prozessoren, wobei einer der wenigstens zwei Prozessoren ein Hauptprozessor ist; ein Peripheriegerät, das so konfiguriert ist, dass wenigstens einer von den wenigstens zwei Prozessoren aus diesem auslesen kann; ein Register, das so konfiguriert ist, dass es einen Datenlesevorgang bezüglich des Peripheriegeräts durch den Hauptprozessor kopiert wobei das System so ausgestaltet ist, dass ein erster Prozessors der wenigstens zwei Prozessoren durch ein Bus-Seitenbandsignal, das in Beziehung zu einem Hauptprozessor-Identifizierungskennzeichen steht, als Hauptprozessor identifiziert wird, dass ein zweiter Prozessor der wenigstens zwei Prozessoren bei einem Versuch des zweiten Prozessors, die Daten aus dem Peripheriegerät zu lesen, unter Verwendung eines Bus-Adressdekoders auf der Basis des Vorhandenseins des Hauptprozessor-Identifizierungskennzeichens daran gehindert wird, die Daten aus dem Peripheriegerät zu lesen, dass der Leseversuch des zweiten Prozessors stattdessen zu dem Register umgeleitet wird, und dass der zweite Prozessor die Daten aus dem Register ausliest..
  • In einem Vergleichsbeispiel umfasst ein System einen Prozessor, der einen ersten Ausführungsmodus und einen zweiten Ausführungsmodus aufweist; ein Peripheriegerät, das so konfiguriert ist, dass der Prozessor während des ersten Ausführungsmodus aus diesem lesen und in dieses schreiben kann; ein Register, das so konfiguriert ist, dass es einen Datenlesevorgang bezüglich des Peripheriegeräts durch den Prozessor in dem ersten Ausführungsmodus kopiert und den Datenlesevorgang dem Prozessor in dem zweiten Ausführungsmodus in Reaktion auf eine Leseanforderung bereitstellt; eine Zugriffs-Registriereinrichtung, die so konfiguriert ist, dass sie einen Datenschreibvorgang zu dem Peripheriegerät durch den Prozessor in dem ersten Ausführungsmodus protokolliert und den Datenschreibvorgang mit einem Datenschreibvorgang des Prozessors in dem zweiten Ausführungsmodus vergleicht; und ein Null-Antwort-Peripheriegerät, das so konfiguriert ist, dass es umgeleitete Datenschreibvorgänge von dem Prozessor in dem zweiten Ausführungsmodus empfängt.
  • Gemäß einem Aspekt wird ein Verfahren zur Verfügung gestellt, das Folgendes umfasst:
    • Identifizieren eines ersten Prozessors als Hauptprozessor durch ein Bus-Seitenbandsignal,
    • das in Beziehung zu einem Hauptprozessor-Identifizierungskennzeichen steht;
    • Lesen von von einem Sensor gelieferten Daten aus einem Peripheriegerät durch einen ersten Prozessor;
    • Kopieren der Daten in ein Register;
    • Verhindern eines Leseversuchs bezüglich des Peripheriegeräts durch einen zweiten Prozessor unter Verwendung eines Bus-Adressdekoders auf der Basis des Vorhandenseins des Hauptprozessor-Identifizierungskennzeichens und Umleiten des Leseversuchs zu dem Register; und
    • Lesen der Daten aus dem Register durch den zweiten Prozessor.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Feststellen, ob ein Leseversuch bezüglich des Peripheriegeräts zu dem Register umgeleitet werden soll, auf der Basis des Vorhandenseins oder des Nichtvorhandenseins eines Hauptprozessor-Identifizierungskennzeichens.
  • Vorteilhaft umfaßt das Kopieren der Daten das Kopieren der Daten in ein ,First in First out (FIFO)'-Register.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Ausführen von identischen Verarbeitungssequenzen durch den ersten Prozessor und den zweiten Prozessor.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Ausführen von zeitlich getrennten, identischen Verarbeitungssequenzen durch den ersten Prozessor und den zweiten Prozessor.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Überschreiben der in das Register kopierten Daten.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Deaktivieren des Registers zum Arbeiten in einem nicht redundanten Modus.
  • Vorteilhaft umfaßt der erste Prozessor einen ersten Betriebsmodus einer Verarbeitungseinheit und der zweite Prozessor einen zweiten Betriebsmodus der Verarbeitungseinheit, und wobei der ersten Betriebsmodus und der zweite Betriebsmodus mit zeitlicher Trennung von der Verarbeitungseinheit ausgeführt werden.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Auswählen des ersten Betriebsmodus oder des zweiten Betriebsmodus der Verarbeitungseinheit auf der Basis eines Seitenband-Tagging-Signals.
  • Vorteilhaft umfaßt das Verfahren des Weiteren Folgendes:
    • Schreiben von Daten in das Peripheriegerät durch den ersten Prozessor;
    • Protokollieren des Datenschreibvorgangs durch den ersten Prozessor durch eine Registriereinrichtung (Logger-Vorrichtung);
    • Versuchen des Schreibens von Daten in das Peripheriegerät durch den zweiten Prozessor;
    • Protokollieren des Datenschreibvorgangs durch den zweiten Prozessor durch die Registriereinrichtung; und
    • Dekodieren des Schreibvorgangs durch den zweiten Prozessor zu einem Peripheriegerät, das keine Ausgabe erzeugt.
  • Gemäß einem Vergleichsbeispiel wird ein Verfahren zur Verfügung gestellt, das Folgendes umfasst:
    • Schreiben von Daten in ein Peripheriegerät durch einen ersten Prozessor;
    • Protokollieren des Datenschreibvorgangs durch den ersten Prozessor durch eine Registriereinrichtung (Logger-Vorrichtung);
    • Versuchen des Schreibens von Daten in das Peripheriegerät durch den zweiten Prozessor;
    • Protokollieren des Datenschreibvorgangs durch den zweiten Prozessor durch die Registriereinrichtung; und
    • Dekodieren des Schreibvorgangs durch den zweiten Prozessor zu einem Peripheriegerät, das keine Ausgabe erzeugt.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Identifizieren des ersten Prozessors als einen Hauptprozessor.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Feststellen, ob Daten in das Peripheriegerät oder in das Peripheriegerät, das keine Ausgabe erzeugt, geschrieben werden sollen, auf der Basis des Vorhandenseins oder des Nichtvorhandenseins eines Hauptprozessor-Identifizierungskennzeichens.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Ausführen von identischen Verarbeitungssequenzen durch den ersten Prozessor und den zweiten Prozessor.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Ausführen von zeitlich getrennten, identischen Verarbeitungssequenzen durch den ersten Prozessor und den zweiten Prozessor.
  • Vorteilhaft umfaßt das Verfahren des Weiteren das Vergleichen von Schreibdaten von dem zweiten Prozessor mit Schreibdaten von dem ersten Prozessor.
  • Vorteilhaft umfaßt der erste Prozessor einen ersten Betriebsmodus einer Verarbeitungseinheit und der zweite Prozessor einen zweiten Betriebsmodus der Verarbeitungseinheit, und wobei der erste Betriebsmodus und der zweite Betriebsmodus mit einer zeitlichen Trennung von der Verarbeitungseinheit ausgeführt werden.
  • Vorteilhaft umfaßt das Verfahren des Weiteren Folgendes:
    • Lesen von Daten aus einem Peripheriegerät durch einen ersten Prozessor;
    • Kopieren der Daten in ein Register;
    • Umleiten eines Leseversuchs bezüglich des Peripheriegeräts durch einen zweiten Prozessor zu dem Register; und
    • Lesen der Daten aus dem Register durch den zweiten Prozessor.
  • Gemäß einem weiteren Aspekt wird ein System zur Verfügung gestellt, das Folgendes umfasst:
    • wenigstens zwei Prozessoren, wobei einer der wenigstens zwei Prozessoren ein Hauptprozessor ist;
    • ein Peripheriegerät, das so konfiguriert ist, dass wenigstens einer der wenigstens zwei Prozessoren aus diesem auslesen kann;
    • ein Register, das so konfiguriert ist, dass gelesene Daten in das Register kopiert werden;
    • wobei das System so ausgestaltet ist, dass ein erster Prozessors der wenigstens zwei Prozessoren durch ein Bus-Seitenbandsignal, das in Beziehung zu einem Hauptprozessor-Identifizierungskennzeichen steht, als Hauptprozessor identifiziert wird, dass ein zweiter Prozessor der wenigstens zwei Prozessoren bei einem Versuch des zweiten Prozessors, die Daten aus dem Peripheriegerät zu lesen, unter Verwendung eines Bus-Adressdekoders auf der Basis des Vorhandenseins des Hauptprozessor-Identifizierungskennzeichens daran gehindert wird, die Daten aus dem Peripheriegerät zu lesen, dass der Leseversuch des zweiten Prozessors stattdessen zu dem Register umgeleitet wird, und dass der zweite Prozessor die Daten aus dem Register ausliest.
  • Vorteilhaft umfaßt das Peripheriegerät einen Sensor oder eine Speichervorrichtung.
  • Vorteilhaft umfaßt das Register ein ,First in First Out (FIFO)'-Register.
  • Gemäß einem Vergleichsbeispiel wird ein System bereitgestellt, das Folgendes umfasst:
    • einen Prozessor, der einen ersten Ausführungsmodus und einen zweiten Ausführungsmodus aufweist;
    • ein Peripheriegerät, das so konfiguriert ist, dass der Prozessor während des ersten Ausführungsmodus aus diesem auslesen und in dieses schreiben kann;
    • ein Register, das so konfiguriert ist, dass es einen Datenlesevorgang bezüglich des Peripheriegeräts durch den Prozessor in dem ersten Ausführungsmodus kopiert und den Datenlesevorgang dem Prozessor in dem zweiten Ausführungsmodus in Reaktion auf eine Leseanforderung bereitstellt;
    • eine Zugriffs-Registriereinrichtung, die so konfiguriert ist, dass sie einen Datenschreibvorgang zu dem Peripheriegerät durch den Prozessor in dem ersten Ausführungsmodus protokolliert und den Datenschreibvorgang mit einem Datenschreibvorgang des Prozessors in dem zweiten Ausführungsmodus vergleicht; und ein Null-Antwort-Peripheriegerät, das so konfiguriert ist, dass es umgeleitete Datenschreibvorgänge von dem Prozessor in dem zweiten Ausführungsmodus empfängt.
  • Vorteilhaft sind Anweisungen, die in den ersten und zweiten Ausführungsmodi ausgeführt werden, identisch.
  • Vorteilhaft umfaßt das Peripheriegerät einen Sensor oder eine Speichervorrichtung.
  • Figurenliste
  • Die Erfindung kann im Hinblick auf die nachfolgende ausführliche Beschreibung verschiedener Ausführungsbeispiele der Erfindung in Verbindung mit den beigefügten Zeichnungen vollständiger verstanden werden, in denen:
    • 1 ein Blockdiagramm eines Lesemodus eines Multi-Prozessor-Sicherheitssystems in Übereinstimmung mit einem Ausführungsbeispiel ist.
    • 2 ein Ablaufdiagramm in Bezug auf das Ausführungsbeispiel von 1 ist.
    • 3 ein Blockdiagramm eines Lesemodus eines Einzel-Prozessor-Sicherheitssystems in Übereinstimmung mit einem Ausführungsbeispiel ist.
    • 4 ein Blockdiagramm eines Schreibmodus eines Multi-Prozessor-Sicherheitssystems in Übereinstimmung mit einem Ausführungsbeispiel ist.
    • 5 ein Ablaufdiagramm in Bezug auf das Ausführungsbeispiel von 4 ist.
    • 6 ein Blockdiagramm eines Schreibmodus eines Einzel-Prozessor-Sicherheitssystems in Übereinstimmung mit einem Ausführungsbeispiel ist.
  • Obwohl die Erfindung für verschiedene Modifikationen und alternative Formen zugänglich ist, sind spezifische Einzelheiten davon beispielshalber in den Zeichnungen gezeigt worden und werden nun ausführlich beschrieben werden. Es soll aber selbstverständlich sein, dass es nicht beabsichtigt ist, die Erfindung auf die speziellen, hier beschriebenen Ausführungsbeispiele zu beschränken. Im Gegenteil, die Erfindung soll alle Modifikationen, Äquivalente und Alternativen abdecken, die in den Erfindungsgedanken und Schutzumfang der Erfindung fallen, wie diese durch die angehängten Ansprüche definiert ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsbeispiele beziehen sich auf Systeme und Verfahren zum Lesen aus Schnittstellen-Peripheriegeräten oder anderen gemeinsam genutzten Ressourcen und zum Schreiben in Schnittstellen-Peripheriegeräte oder andere gemeinsam genutzte Ressourcen während einer robusten Datenverarbeitung, die eine zeitlich getrennte, redundante Ausführung verwendet. Ausführungsbeispiele können in sicherheitsrelevanten Anwendungen eingesetzt werden, die in Beziehung zu dem Automobilsektor, dem Banken- und Finanzwesen, der Luft- und Raumfahrt, dem Verteidigungs- und Abwehrsektor, dem Bereich der Bezahlung über das Internet stehen, und können auch in vielen andere Anwendungen eingesetzt werden. Die „Sicherheit“ kann sich dabei unter anderem auf die persönliche oder physische Sicherheit, wie etwa in einem Kraftfahrzeug-System, sowie auch auf Sicherheitskontexte, wie etwa in Bankgeschäft- und Finanzsystemen, beziehen. Verschiedene Ausführungsbeispiele weisen eine Anwendbarkeit auf Konfigurationen mit doppelter zentraler Verarbeitungseinheit (CPU; central processing unit) oder auf andere Konfigurationen mit mehreren CPUs auf, während Adaptationen auch für Konfigurationen mit nur einer einzigen CPU in Betracht gezogen werden. Konfigurationen mit einer einzigen CPU oder mit mehreren CPUs können in Ausführungsbeispielen in eine oder in mehrere integrierte Schaltung(en) und/oder in ein oder in mehrere IC-Packages (umhäuste integrierte Schaltungen) integriert sein.
  • Unter Bezugnahme auf 1 ist ein Blockdiagramm einer Sicherheitssystemarchitektur 100 dargestellt. Das System 100 umfasst eine erste CPU 102 und eine zweite CPU 104, obwohl in anderen Ausführungsbeispielen das System 100 auf jede beliebige Anzahl von parallelen Verarbeitungseinheiten ausgeweitet werden kann. Außerdem kann das System 100 auch eine einzige CPU umfassen, was unten noch ausführlicher erörtert werden wird. Die Beispiele mit mehreren CPUs, die hierin erörtert werden, werden sich in dem Kontext eines Ausführungsbeispiels mit einer doppelten CPU bewegen, wie dies in 1 dargestellt ist, ohne dass dies eine Beschränkung in Bezug auf Ausführungsbeispiele sein soll, die mehr oder weniger CPUs aufweisen.
  • Die CPUs 102 und 104 sind über eine gemeinsam genutzte Querverbindung (Verbindungsleitung) und eine Brücke 106 mit einem Peripherie-Subsystem gekoppelt. Das Peripherie-Subsystem umfasst ein oder mehrere Peripheriegeräte 108, wie etwa Sensoren, Speicherdatenstrukturen und andere. Das System 100 ist mit einem einzigen Peripheriegerät 108 dargestellt, obwohl andere Ausführungsbeispiele weitere und/oder mannigfaltige Peripheriegeräte 108 umfassen können.
  • Das System 100 umfasst in einem Ausführungsbeispiel auch eine Read-Snoop-,First in First out (FIFO)'-Vorrichtung 110 (im Folgenden kurz „FIFO 110“ genannt) (wobei „Read Snoop“ für das Ausspionieren, also Mitlesen und Überprüfen eines Lesevorgangs bzw. einer Lesetransaktion steht). Während des Betriebs führen die CPUs 102 und 104 identische Codesequenzen aus. In einem Ausführungsbeispiel erzeugt die CPU 104 aber separate Bustransaktionen zu dem Peripheriegerät 108. Eine Zugriffs-Registriereinrichtungs-Komponente des Peripheriegeräts 108 zeichnet diese Transaktionen auf, und die FIFO 110 stellt die Fähigkeit bereit zu gewährleisten, dass Lesedaten von dem Peripherie-Subsystem zu den CPUs 102 und 104 identisch sind, wenn die Lesedaten den bzw. die Prozessor(en) erreichen.
  • Nun wird auch Bezug auf 2 genommen. Dabei ist es erwünscht, dass die Verarbeitungssequenzen (d.h. Anweisungen, Lese- und Schreibdaten) für jede redundante Ausführung durch die CPU 102 und die CPU 104 identisch sind, um eine sichere Ausführung und Operation bzw. einen sicheren Betrieb zu gewährleisten. Aber anders als herkömmliche sogenannte „Lock Step“-Lösungsansätze („Gleichschritt“-Lösungsansätze) ermöglichen es Ausführungsbeispiele, dass Anweisungsausführungen zeitlich getrennt werden können. Bei 202 vergleicht sowohl die CPU 102 als auch die CPU 104 ihren Programmzähler mit dem bzw. den Programmzähler(n) der anderen CPUs im System 100, um festzustellen, welche CPU, nämlich 102 oder 104, die erste ist, um eine bestimmte Lesetransaktion auszuführen. Der erste Prozessor wird dann in der Programmsequenz als der „Hauptprozessor“ bezeichnet. Zum Zwecke eines Beispiels wird hier die CPU 102 als der Hauptprozessor bezeichnet werden. In einem Ausführungsbeispiel braucht der Hauptprozessor nicht permanent zugewiesen sein, so dass es möglich sein kann, dass eine andere CPU den Status als die Haupt-CPU (Master-CPU) übernehmen kann.
  • Der Haupt-CPU 102 ist es gestattet, bei 204 direkt aus dem Peripheriegerät 108 zu lesen, aber jegliche Daten, die von der Haupt-CPU 102 gelesen werden, werden in einem Ausführungsbeispiel bei 206 „ausspioniert“ und automatisch in die FIFO 110 geschrieben. Wenn andere Prozessoren, wie etwa die CPU 104, später bei 208 die gleiche Lesetransaktion ausführen, dann werden diese CPUs, die keine Haupt-CPUs sind, daran gehindert werden, aus dem Peripheriegerät 108 auszulesen, da der ausgelesene Wert sich von demjenigen, der von der Haupt-CPU 102 ausgelesen wurde, unterscheiden könnte. So kann sich zum Beispiel in einem Ausführungsbeispiel, in dem das Peripheriegerät 108 eine Sensorvorrichtung umfasst, ein Charakteristikum, das von dem Peripheriegerät 108 abgefühlt wurde, in der Zeit ändern, die zwischen einem Lesen durch die Haupt-CPU 102 und einem Lesen durch die CPU 104 vergeht. Das Hindern der CPUs, die keine Haupt-CPUs sind, daran, direkt aus dem Peripheriegerät 108 zu lesen, wird in einem Ausführungsbeispiel durch eine CPU-Hardware-Modifikation eines Bus-Seitenbandsignals erzielt, das in Beziehung zu einem Identifizierungskennzeichen der Haupt-CPU steht. Dieses Identifizierungskennzeichen (das sogenannte Identifizierungs-„Tag“) zeigt dem Bus-Adressdekoder an, dass die Transaktion von dem Peripheriegerät 108 zu einer speziellen Nebenvorrichtung (Slave-Vorrichtung) umgeleitet werden soll, die dann die ausspionierten Lesedaten von der FIFO 110 zur Verfügung stellt. Da es erwünscht ist, dass der Anweisungsstrom für jede CPU 102 und 104 identisch ist, gewährleistet das Lesen der ausspionierten Daten aus der FIFO 110, dass die Lesedaten für jede CPU 102 und 104 identisch sein werden. In einem Ausführungsbeispiel weist jede der CPUs 102 und 104 einen Lesezeiger in die FIFO 110 auf, der die aktuelle Position der jeweiligen CPU in der Leseanweisungssequenz angibt. Ein Datenwert in der FIFO 110 kann bei 210 invalidiert und überschrieben werden, nachdem jeder redundante Prozessor den Datenwert gelesen hat.
  • In einem Ausführungsbeispiel kann das oben erwähnte Haupt-CPU-Identifizierungskennzeichen auch dazu verwendet werden anzugeben, ob eine bestimmte CPU im Augenblick in einem redundanten Modus arbeitet oder nicht. Bei 205 kann eine Überprüfung durchgeführt werden. Wenn eine bestimmte CPU nicht in dem redundanten Modus arbeitet, dann kann das System 100 in einen Modus umschalten, in dem redundante Ausführungen nicht benötigt werden, derartig, dass die FIFO 110 und ein spezielles Busverhalten bei 212 deaktiviert werden können und Daten bei 214 direkt aus dem Peripheriegerät 108 gelesen werden können.
  • Eine weitere Adaptation zu dem System 100 erlaubt es dem System 100, das Ausspionieren (Snooping) in dem Kontext eines Ausführungsbeispiels mit nur einer einzigen CPU ein- und auszuschalten. In 3 umfasst das System 300 eine einzige CPU 102. Die CPU 102 arbeitet mit einer zeitlich getrennten, redundanten Ausführung und weist zwei Ausführungsmodi auf: einen Real-Modus (Real Mode) 112 und einen Prüfer-Modus (Checker Mode) 114. In dem Real-Modus 112 arbeitet die CPU 102 als eine Haupt-CPU und liest aus dem Peripheriegerät 108 aus. In einer nachfolgenden, zeitlich getrennten Ausführung arbeitet die CPU 102 in einem Prüfer-Modus 114 als eine Nicht-Haupt-CPU mit dem speziellen Busverhalten, das oben beschrieben ist, um aus der FIFO 110 auszulesen. Der Code, der in den Modi 112 und 114 ausgeführt wird, ist identisch, und ein Seitenband-Tagging/(Kennzeichensetzungs)-Signal ist implementiert, um anzugeben, ob die CPU 102 im Modus 112 oder im Modus 114 arbeitet. Somit bekommen sowohl der Real-Modus 112 als auch der Prüfer-Modus 114 der CPU 102 jeweils die gleichen Daten, die von dem Peripheriegerät 108 stammen, und die gleiche Sequenz von Anweisungen wird ausgeführt. Das Ausführungsbeispiel von 3 kann deshalb eine weniger teure Implementierung bereitstellen, ohne dass ein signifikantes Maß an Sicherheit geopfert wird.
  • Nun wird das Schreiben von Daten in Peripheriegeräte in Multi-Prozessor-Systemen beschrieben. Herkömmliche Systeme betreiben typischerweise mehrere Prozessoren in einem sogenannten Lock-Step-Betrieb (Gleichsschritt-Betrieb), wobei nur ein Prozessor mit dem Peripheriegerät verbunden ist, in das Daten geschrieben werden. Bei einer solchen Konfiguration ist ein Vergleich von redundanten Schreibdaten auf diesen Prozessor beschränkt und deckt nicht den Transfer der Daten durch die dazwischen liegende Infrastruktur ab. Aus diesem Grund sowie auch aus anderen Gründen besteht ein gesteigertes Risiko in solchen Systemen für sogenannte Common Cause Failures (systematische Mehrfachausfälle bzw. Fehler oder Ausfälle infolge gemeinsamer Ursache), die mehrere Prozessoren in Mitleidenschaft ziehen. Auch in Systemen mit nur einem einzigen Prozessor gibt es Nachteile, wie etwa die Notwendigkeit, Schreibvorgangsadressierungen in späteren Ausführungen modifizieren zu müssen.
  • Unter Bezugnahme auf 4 ermöglichen Ausführungsbeispiele auch das Schreiben in Peripheriegeräte, während gleichzeitig Nachteile vermieden werden, die mit herkömmlichen Einzel- und Multi-Prozessor-Sicherheitssystemen verbunden sind. Das System 400 ist dem oben erörterten System 100 ähnlich und umfasst Prozessoren 102 und 104, obwohl in anderen Ausführungsbeispielen jegliche Anzahl von parallelen Prozessoren verwendet werden kann. Ebenfalls ähnlich wie bei dem System 100 führen die CPUs 102 und 104 identische Codesequenzen während des Betriebs aus. Im Gegensatz zu herkömmlichen Systemen erzeugt die CPU 104 separate Bustransaktionen zu dem Peripheriegerät 108, und eine Registrierungseinrichtung bzw. Logger-Vorrichtung 116 zeichnet diese Transaktionen auf und stellt die Fähigkeit bereit, überprüfen zu können, dass die Transaktionen von jeder der CPU 102 und der CPU 104 identisch sind, wenn sie das Peripherie-Subsystem erreichen.
  • Wie im System 100 müssen die Anweisungen, die von den CPUs 102 und 104 im System 400 ausgeführt werden, identisch sein. Im Gegensatz zu herkömmlichen Lock-Step-Methoden (Gleichschritt-Methoden) können die Anweisungsausführungen durch jeweilige Prozessoren aber zeitlich getrennt sein. Im System 400 und auch unter Bezugnahme auf 5 sind mehrere redundante Schreibvorgänge durch parallele Prozessoren zu dem Peripheriegerät 108 zeitlich getrennt, wobei einer von einem Bus-Seitenbandsignal als eine „Haupt-Transaktion“ identifiziert wird. Einer der Prozessoren wird bei 502 als Hauptprozessor bezeichnet. Zum Zwecke des Beispiels wird die CPU 102 als Haupt-CPU 102 bezeichnet werden.
  • In einem Ausführungsbeispiel werden neue Codes für existierende ,FPI (Flexible Peripheral Interface/flexible Peripherie-Schnittstelle)'-Haupt-Identifizierungskennzeichen-Felder verwendet, die zusammen mit FPI-Adressphasen gesendet werden. Diese neuen Codes können eine CPU-Nummer und die Information, ob die CPU im Augenblick in einem Signaturanalysemodus arbeitet, enthalten, was bei 504 ermittelt werden kann. Ein Bus-Adressdekoder wird derart modifiziert, dass in einem Signaturanalysemodus nur Datenschreibvorgänge mit einem spezifischen CPU-Identifizierungskennzeichen (d.h. dem Haupt-Identifizierungskennzeichen bzw. dem Master-Tag) für das Peripheriegerät 108 bei 506 dekodiert werden. Datenschreibvorgänge mit anderen Identifizierungskennzeichen (d.h. Daten, die von einer CPU stammen, die nicht die Haupt-CPU 102 ist) werden von der Registriereinrichtung 116 immer noch protokolliert und bei 508 verglichen, aber dekodiert, um bei 510 einen Standard-Slave bzw. eine Standard-Nebeneinrichtung auszuwählen, der bzw. die eine Null-Antwort zurückschickt.
  • In einem anderen Ausführungsbeispiel werden Datenschreibvorgänge unter Verwendung der FIFO 110 geprüft, und zwar auf ähnliche Weise, wie dies in Bezug auf Datenlesevorgänge und 1 beschrieben worden ist, anstatt dass die Zugriffs-Registriereinrichtung 116 verwendet wird. Die Zugriffs-Registriereinrichtung 116 und das System 400 können Vorteile im Hinblick auf eine insgesamte Einfachheit im Vergleich zu einem Schreibdaten-Ausführungsbeispiel, das eine FIFO 110 verwendet, bereitstellen.
  • Ähnlich wie bei dem System 300 kann das System 400 auch so ausgelegt werden, dass das Registriereinrichtungs-Merkmal aktiviert und deaktiviert wird. Unter Bezugnahme auf 6 ermöglicht dies Ausführungsbeispiele mit nur einem einzigen Prozessor. Im System 600 weist die CPU 102 zwei Betriebsmodi auf, die redundant und zeitlich getrennt ablaufen: den Real-Modus 112 und den Prüfer-Modus 114. Im Real-Modus 112 schreibt die CPU 102 in das Peripheriegerät 108 und Schreibdaten werden in der Registriereinrichtung 116 protokolliert. In einer nachfolgenden Ausführung im Prüfer-Modus 114 werden Schreibdaten, die von der CPU 102 erzeugt werden oder von dieser stammen, gegenüber den Schreibdaten aus dem Real-Modus 112, die in der Registriereinrichtung 116 protokolliert sind, überprüft, um eine Übereinstimmung zu gewährleisten.
  • Im System 600 kann die Dekodiermaskierung, die oben unter Bezugnahme auf 4 beschrieben worden ist, unabhängig von dem Zustand das Signaturanalysemodus ein- und ausgeschaltet werden.
  • Deshalb stellen Ausführungsbeispiele mehrere nützliche Aspekte bereit, einschließlich der Möglichkeit festzustellen, dass identische Lesetransaktionen von redundanten Ausführungsabläufen ein Peripherie-Subsystem erreicht haben, und zu garantieren, dass Lesedaten, die CPUs erreichen, für jede redundante Ausführung identisch sind (d.h., dass die Lesedaten von einem einzigen Lesevorgang eines Peripheriegeräts hergeleitet worden sind). Auf der Schreibvorgangseite stellen Ausführungsbeispiele die Möglichkeit bereit, festzustellen, dass identische Schreibtransaktionen von redundanten Ausführungsabläufen das Aktuator-Peripherie-Subsystem erreicht haben, und zu gewährleisten, dass das Aktuator-Peripheriegerät selbst nur auf eine einzige Schreibtransaktion reagiert und redundante Schreibtransaktionen ignoriert werden. Das implizite Überprüfen über die Redundanz der gesamten Datenlese- und -schreibpfade in beiden Richtungen zwischen dem Peripherie-Subsystem und dem bzw. den Prozessor(en) wird somit in Ausführungsbeispielen bereitgestellt, ohne dass eine spezielle Codeaufbereitung notwendig ist.
  • Verschiedene Ausführungsbeispiele von Systemen, Vorrichtungen und Verfahren sind hier beschrieben worden. Diese Ausführungsbeispiele sind lediglich beispielshalber gegeben und sind nicht dafür gedacht, den Schutzumfang der Erfindung einzuschränken. Es soll darüber hinaus klar sein, dass die verschiedenen Merkmale der Ausführungsbeispiele, die beschrieben worden sind, auf verschiedene Weisen miteinander kombiniert werden können, um zahlreiche zusätzliche Ausführungsbeispiele zu erzeugen. Darüber hinaus können, obwohl verschiedene Materialien, Abmessungen, Formen, Implantationsstellen, etc. zur Verwendung mit den offenbarten Ausführungsbeispielen beschrieben worden sind, andere neben diesen, die offenbart worden sind, verwendet werden, ohne dass der Schutzumfang der Erfindung überschritten wird.
  • Durchschnittsfachleute auf den relevanten Fachgebieten werden erkennen, dass die Erfindung weniger Merkmale umfassen kann, als diese in irgendeinem einzelnen der oben beschriebenen Ausführungsbeispiele veranschaulicht sind. Die hierin beschriebenen Ausführungsbeispiele sind nicht als eine erschöpfende Darstellung der Möglichkeiten gedacht, in denen die verschiedenen Merkmale der Erfindung miteinander kombiniert werden können. Dementsprechend sind die Ausführungsbeispiele keine sich gegenseitig ausschließenden Kombinationen von Merkmalen; genauer gesagt kann die Erfindung eine Kombination aus verschiedenen Einzelmerkmalen umfassen, die aus verschiedenen einzelnen Ausführungsbeispielen ausgewählt werden, wie dies für Durchschnittsfachleute auf dem Fachgebiet selbstverständlich ist.
  • Jegliche Einfügung durch Bezugnahme darauf von Dokumenten oben ist so beschränkt, dass kein Gegenstand eingefügt wird, der im Gegensatz zu der hier expliziten Offenbarung steht. Jegliche Einfügung durch Bezugnahme darauf von Dokumenten oben ist des Weiteren so eingeschränkt, dass keine Ansprüche, die in den Dokumenten enthalten sind, durch Bezugnahme darauf hier eingefügt werden. Jegliche Einfügung durch Bezugnahme darauf von Dokumenten oben ist noch weiter so beschränkt, dass jegliche Definitionen, die in den Dokumenten bereitgestellt werden, nicht durch Bezugnahme darauf hier eingefügt werden, außer diese sind hier ausdrücklich einbezogen.

Claims (8)

  1. Verfahren, das Folgendes umfasst: Identifizieren eines ersten Prozessors (102) als Hauptprozessor durch ein Bus-Seitenbandsignal, das in Beziehung zu einem Hauptprozessor-Identifizierungskennzeichen steht; Lesen von von einem Sensor gelieferten Daten aus einem Peripheriegerät (108) durch den ersten Prozessor (102); Kopieren der Daten in ein Register (110); wobei das Verfahren zusätzlich die Schritte umfasst, dass bei einem Versuch eines zweiten Prozessors (104), die Daten aus dem Peripheriegerät (108) zu lesen, der zweite Prozessor (104) unter Verwendung eines Bus-Adressdekoders auf der Basis des Vorhandenseins des Hauptprozessor-Identifizierungskennzeichens daran gehindert wird, die Daten aus dem Peripheriegerät (108) zu lesen, der Leseversuch des zweiten Prozessors (104) stattdessen zu dem Register (110) umgeleitet wird, und der zweite Prozessor (104) die Daten aus dem Register (110) ausliest.
  2. Verfahren nach Anspruch 1, wobei das Kopieren der Daten das Kopieren der Daten in ein ,First in First out (FIFO)'-Register umfasst.
  3. Verfahren nach Anspruch 1, das des Weiteren das Ausführen von identischen Verarbeitungssequenzen durch den ersten Prozessor (102) und den zweiten Prozessor (104) umfasst.
  4. System (100), das Folgendes umfasst: wenigstens zwei Prozessoren (102, 104), wobei einer der wenigstens zwei Prozessoren (102, 104) ein Hauptprozessor ist; ein Peripheriegerät (108), das so konfiguriert ist, dass der Hauptprozessor von einem Sensor gelieferte Daten aus dem Peripheriegerät (108) lesen kann; ein Register (100), das so konfiguriert ist, dass die gelesenen Daten in das Register (110) kopiert werden; wobei das System (100) so ausgestaltet ist, dass ein erster Prozessors (102) der wenigstens zwei Prozessoren (102, 104) durch ein Bus-Seitenbandsignal, das in Beziehung zu einem Hauptprozessor-Identifizierungskennzeichen steht, als Hauptprozessor identifiziert wird, dass ein zweiter Prozessor (104) der wenigstens zwei Prozessoren (102, 104) bei einem Versuch des zweiten Prozessors (104), die Daten aus dem Peripheriegerät (108) zu lesen, unter Verwendung eines Bus-Adressdekoders auf der Basis des Vorhandenseins des Hauptprozessor-Identifizierungskennzeichens daran gehindert wird, die Daten aus dem Peripheriegerät (108) zu lesen, dass der Leseversuch des zweiten Prozessors (104) stattdessen zu dem Register (110) umgeleitet wird, und dass der zweite Prozessor (104) die Daten aus dem Register (110) ausliest.
  5. System (100) nach Anspruch 4, das des Weiteren eine Zugriffs-Registriereinrichtung aufweist, die so konfiguriert ist, dass sie einen Datenschreibvorgang zu dem Peripheriegerät (108) durch den Hauptprozessor protokolliert.
  6. System (100) nach Anspruch 5, bei welchem die Zugriffs-Registriereinrichtung den Datenschreibvorgang mit einem Datenschreibvorgang eines anderen der wenigstens zwei Prozessoren (102, 104) vergleicht.
  7. System (100) nach Anspruch 4, wobei das Peripheriegerät (108) eine Speichervorrichtung umfasst.
  8. System (100) nach Anspruch 4, wobei das Register (110) ein ,First in First out (FIFO)'-Register umfasst.
DE102011011333.9A 2010-02-23 2011-02-16 Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung Active DE102011011333B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/710,616 2010-02-23
US12/710,616 US20110208948A1 (en) 2010-02-23 2010-02-23 Reading to and writing from peripherals with temporally separated redundant processor execution

Publications (2)

Publication Number Publication Date
DE102011011333A1 DE102011011333A1 (de) 2011-08-25
DE102011011333B4 true DE102011011333B4 (de) 2022-07-14

Family

ID=44356989

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011011333.9A Active DE102011011333B4 (de) 2010-02-23 2011-02-16 Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung

Country Status (3)

Country Link
US (1) US20110208948A1 (de)
JP (1) JP5341928B2 (de)
DE (1) DE102011011333B4 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9514087B2 (en) * 2013-11-06 2016-12-06 International Business Machines Corporation Dynamic data collection communication between adapter functions
US9229841B2 (en) 2014-03-10 2016-01-05 Qualcomm Incorporated Systems and methods for detecting errors and recording actions on a bus
JP6083480B1 (ja) * 2016-02-18 2017-02-22 日本電気株式会社 監視装置、フォールトトレラントシステムおよび方法
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
JP6786449B2 (ja) * 2017-06-29 2020-11-18 ルネサスエレクトロニクス株式会社 半導体装置
TWI760715B (zh) * 2020-03-19 2022-04-11 瑞昱半導體股份有限公司 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226152A (en) 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS592057B2 (ja) * 1979-02-07 1984-01-17 株式会社日立製作所 エラ−訂正・検出方式
US4799155A (en) * 1986-12-31 1989-01-17 Amdahl Corporation Data processing system having a hierarchy of service computers including a state display
US5339261A (en) * 1992-10-22 1994-08-16 Base 10 Systems, Inc. System for operating application software in a safety critical environment
US6230252B1 (en) * 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6223337B1 (en) * 1997-12-12 2001-04-24 Hewlett-Packard Company Random test generation for compiler optimization
FR2784475B1 (fr) * 1998-10-12 2000-12-29 Centre Nat Etd Spatiales Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
DE19857154C1 (de) * 1998-12-11 2000-03-16 Daimler Chrysler Ag Verfahren zur Datenübertragung
US20020023202A1 (en) * 2000-04-19 2002-02-21 Mukherjee Shubhendu S. Load value queue input replication in a simultaneous and redundantly threaded processor
US6598122B2 (en) * 2000-04-19 2003-07-22 Hewlett-Packard Development Company, L.P. Active load address buffer
US6792525B2 (en) * 2000-04-19 2004-09-14 Hewlett-Packard Development Company, L.P. Input replicator for interrupts in a simultaneous and redundantly threaded processor
US6854051B2 (en) * 2000-04-19 2005-02-08 Hewlett-Packard Development Company, L.P. Cycle count replication in a simultaneous and redundantly threaded processor
JP2002049501A (ja) * 2000-08-04 2002-02-15 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法
JP2002269029A (ja) * 2001-03-07 2002-09-20 Nec Corp 高信頼性情報処理装置及びそれに用いる情報処理方法並びにそのプログラム
US20030005380A1 (en) * 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
SE0202019D0 (sv) * 2002-06-28 2002-06-28 Abb As Revalidation of a compiler for safety control
US7386839B1 (en) * 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US7146530B2 (en) * 2003-07-18 2006-12-05 Hewlett-Packard Development Company, L.P. Targeted fault tolerance by special CPU instructions
US7243262B2 (en) * 2003-08-29 2007-07-10 Intel Corporation Incremental checkpointing in a multi-threaded architecture
US7213168B2 (en) * 2003-09-16 2007-05-01 Rockwell Automation Technologies, Inc. Safety controller providing for execution of standard and safety control programs
US20050138478A1 (en) * 2003-11-14 2005-06-23 Safford Kevin D. Error detection method and system for processors that employ alternating threads
US7584405B2 (en) * 2003-12-03 2009-09-01 Hewlett-Packard Development Company, L.P. Fault-detecting computer system
US7444497B2 (en) * 2003-12-30 2008-10-28 Intel Corporation Managing external memory updates for fault detection in redundant multithreading systems using speculative memory support
US7555703B2 (en) * 2004-06-17 2009-06-30 Intel Corporation Method and apparatus for reducing false error detection in a microprocessor
DE102004062825B4 (de) * 2004-12-27 2006-11-23 Infineon Technologies Ag Kryptographische Einheit und Verfahren zum Betreiben einer kryptographischen Einheit
FR2881836A1 (fr) * 2005-02-08 2006-08-11 St Microelectronics Sa Securisation du mode de test d'un circuit integre
JP2006260096A (ja) * 2005-03-16 2006-09-28 Matsushita Electric Ind Co Ltd プログラム変換方法およびプログラム変換装置
JP4602246B2 (ja) * 2005-12-28 2010-12-22 株式会社東芝 半導体集積回路
US7444544B2 (en) * 2006-07-14 2008-10-28 International Business Machines Corporation Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US8584109B2 (en) * 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US7937620B2 (en) * 2007-05-07 2011-05-03 Intel Corporation Transient fault detection by integrating an SRMT code and a non SRMT code in a single application
KR101418969B1 (ko) * 2008-02-27 2014-08-13 삼성전자주식회사 프로세서 및 컴파일 방법
JP4876093B2 (ja) * 2008-03-31 2012-02-15 株式会社日立製作所 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
JP5564187B2 (ja) * 2009-02-25 2014-07-30 ルネサスエレクトロニクス株式会社 マイクロコントローラおよび自動車電子制御装置
US20110099439A1 (en) * 2009-10-23 2011-04-28 Infineon Technologies Ag Automatic diverse software generation for use in high integrity systems
US8516356B2 (en) * 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226152A (en) 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
REINHARDT, Steven K.; MUKHERJEE, Shubhendu S.: Transient fault detection via simultaneous multithreading. ACM, 2000.
SMOLENS, Jared C. [et al.]: Reunion: Complexity-effective multicore redundancy. In: Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture. IEEE Computer Society, 2006. S. 223-234.
SUBRAMANYAN, Pramod [et al.]: Power efficient redundant execution for chip multiprocessors. In: Workshop on Dependable and Secure Nanocomputing, Lissabon, Portugal, 29. Juni 2009. 2009. S. 1-6.

Also Published As

Publication number Publication date
JP5341928B2 (ja) 2013-11-13
DE102011011333A1 (de) 2011-08-25
JP2011175641A (ja) 2011-09-08
US20110208948A1 (en) 2011-08-25

Similar Documents

Publication Publication Date Title
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE112009000344B4 (de) Zugriffsrechte auf eine Speicher-Map
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112005001515T5 (de) Verfahren und Vorrichtung zur spekulativen Ausführung von nicht kollisionsbehafteten Sperrbefehlen
EP1952239A1 (de) Vorrichtung und verfahren zum beheben von fehlern bei einem wenigstens zwei ausführungseinheiten mit registern aufweisenden system
DE112006002237T5 (de) Verfahren zur selbstinitiierenden Synchronisierung in einem Computersystem
DE10312264A1 (de) Verfahren und Vorrichtung zum Hervorrufen von Unterschieden bei mit Verriegelungsschritten versehenen Prozessoren
DE102009019961A1 (de) Vorrichtung, Systeme und Verfahren zum effizienten Verwenden von Hardware-Ressourcen für einen Softwaretest
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE112016004678T5 (de) Verfahren zum Ausführen von Programmen in einem elektronischen System für Anwendungen mit funktionaler Sicherheit umfassend mehrere Prozessoren, entsprechendes System und Computerprogrammprodukt
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE102005037230A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
DE102014117971B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE2225841B2 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE102008004205A1 (de) Schaltungsanordnung und Verfahren zur Fehlerbehandlung in Echtzeitsystemen
DE102004034766A1 (de) Fehlererfassungsverfahren und System für Prozessoren, das verriegelungsschrittweise betriebene gleichzeitige Teilprozesse verwendet
EP1955164A1 (de) Programmgesteuerte einheit und verfahren zum betreiben derselbigen
DE102004011450A1 (de) Anvisierte Fehlertoleranz durch spezielle CPU-Befehle
DE102014003687A1 (de) Vorrichtung und verfahren zum schutz von digitalem inhalt
DE102010003153A1 (de) Verarbeitungseinheit, Vorrichtung, die zwei Verarbeitungseinheiten aufweist, Verfahren zum Testen einer Verarbeitungseinheit und einer Vorrichtung, die zwei Verarbeitungseinheiten aufweist
DE10392810T5 (de) System und Verfahren zum Filtern von Prozessoren nach Integrität während früher Firmware für eine Architektur mit aufgeteilter Wiederherstellung
DE102014115411A1 (de) Datenverarbeitungsanordnung und -verfahren zur sicherstellung der integrität der ausführung eines computerprogramms

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative