DE102017114348A1 - Diverse, integrierte verarbeitung unter verwendung von prozessoren und diverser firmware - Google Patents

Diverse, integrierte verarbeitung unter verwendung von prozessoren und diverser firmware Download PDF

Info

Publication number
DE102017114348A1
DE102017114348A1 DE102017114348.3A DE102017114348A DE102017114348A1 DE 102017114348 A1 DE102017114348 A1 DE 102017114348A1 DE 102017114348 A DE102017114348 A DE 102017114348A DE 102017114348 A1 DE102017114348 A1 DE 102017114348A1
Authority
DE
Germany
Prior art keywords
firmware
result
processor
measurement
error detection
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.)
Pending
Application number
DE102017114348.3A
Other languages
English (en)
Inventor
Thomas Zettler
Wolfgang Granig
Dirk Hammerschmidt
Akos HEGEDUS
Friedrich RASBORNIG
Michael Strasser
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 DE102017114348A1 publication Critical patent/DE102017114348A1/de
Pending legal-status Critical Current

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01KMEASURING TEMPERATURE; MEASURING QUANTITY OF HEAT; THERMALLY-SENSITIVE ELEMENTS NOT OTHERWISE PROVIDED FOR
    • G01K7/00Measuring temperature based on the use of electric or magnetic elements directly sensitive to heat ; Power supply therefor, e.g. using thermoelectric elements
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01LMEASURING FORCE, STRESS, TORQUE, WORK, MECHANICAL POWER, MECHANICAL EFFICIENCY, OR FLUID PRESSURE
    • G01L1/00Measuring force or stress, in general
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P15/00Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P3/00Measuring linear or angular speed; Measuring differences of linear or angular speeds
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R33/00Arrangements or instruments for measuring magnetic variables
    • G01R33/0023Electronic aspects, e.g. circuits for stimulation, evaluation, control; Treating the measured signals; calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R33/00Arrangements or instruments for measuring magnetic variables
    • G01R33/02Measuring direction or magnitude of magnetic fields or magnetic flux
    • G01R33/06Measuring direction or magnitude of magnetic fields or magnetic flux using galvano-magnetic devices
    • G01R33/09Magnetoresistive devices
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P21/00Testing or calibrating of apparatus or devices covered by the preceding groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Microcomputers (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Fehlerdetektions-Vorrichtungen, -Systeme und -Verfahren werden bereitgestellt, die identische Prozessoren implementieren. Ein erster Prozessor ist ausgebildet, um eine erste Messung zu empfangen, eine erste Firmware basierend auf der ersten Messung auszuführen, und ein erstes Ergebnis der ausgeführten ersten Firmware auszugeben. Ein zweiter Prozessor, der identisch zu dem ersten Prozessor ist, ist ausgebildet, um eine zweite Messung zu empfangen, eine zweite Firmware basierend auf der zweiten Messung auszuführen, und ein zweites Ergebnis der ausgeführten zweiten Firmware auszugeben. Die erste Firmware und die zweite Firmware stellen eine nominale Funktion auf diverse Weise bereit, zum Berechnen des ersten Ergebnisses und/oder des zweiten Ergebnisses, derart, dass erwartet wird, dass das erste Ergebnis und das zweite Ergebnis innerhalb einer vorbestimmten Spanne sind. Somit kann ein Fehler durch Vergleichen des ersten und zweiten Ergebnisses detektiert werden.

Description

  • GEBIET
  • Die vorliegende Offenbarung bezieht sich allgemein auf Vorrichtungen, Systeme und Verfahren zum Detektieren eines Fehlers in einem System, und insbesondere auf eine diverse, integrierte Verarbeitung unter Verwendung identischer Prozessoren und diverser Firmware.
  • HINTERGRUND
  • Funktionale Sicherheit von elektronischen Systemen in automotiven Personenkraftwagen ist ein wichtiger Punkt im Hinblick auf eine Zunahme der Automatisierung und des Halbleitergehaltes moderner Automobile. Es ist erwünscht, eine zuverlässige und sichere Funktionalität für die Sicherheit kritischer Teile zu haben, die in dem System eingesetzt werden.
  • Eine Anforderung, die häufig bei solchen sicherheitskritischen Anwendungen existiert ist, dass Funktionsstörungen eines Sensorbauelements durch das System detektierbar sein müssen, zum Beispiel durch eine Entität, die Signale von dem Sensorbauelement empfängt. Anders ausgedrückt muss es gemäß einer solchen Anforderung möglich sein, zu detektieren, ob ein Sensorbauelement fehlerhafte Werte liefert, z. B. aufgrund eines Fehlers des Sensorbauelements. Ein Ansatz, dies sicherzustellen, ist das Bereitstellen von Redundanz, zum Beispiel das Bereitstellen von zwei separaten Sensoren zum Messen derselben physikalischen Größe. Abweichungen zwischen Messungen der zwei Sensorbauelemente über einer Schwelle können eine Funktionsstörung von zumindest einem der zwei bereitgestellten Sensoren anzeigen. Das Bereitstellen einer solchen Redundanz erfordert jedoch zusätzliche Chipfläche.
  • Ferner können Hardwarelösungen unterschiedliche Prozessortypen verwenden, die unter Verwendung unterschiedlicher Hardwarearchitekturen entwickelt werden. Unterschiedliche Hardwarearchitekturen erfordern zumindest den doppelten Verifizierungsaufwand, um dieselbe Qualität im Vergleich zu einer duplizierten, homogenen redundanten Architektur zu erreichen. Ferner ist die Implementierung derselben Funktionalität in unterschiedlichen Architekturen fehleranfällig und impliziert ein hohes Risiko, dass sich selten auftretende Fälle auf unbeabsichtigte Weise unterschiedlich verhalten. Ein selten auftretender Fall betrifft ein Problem oder eine Situation, die nur außerhalb der normalen Betriebsparameter auftritt, insbesondere eine solche, die sich manifestiert, wenn mehrere Umgebungs-Variablen oder Bedingungen gleichzeitig auf extremen Pegeln sind, obwohl jeder Parameter innerhalb des spezifizierten Bereichs für diesen Parameter ist.
  • Ferner können Gleitkomma- und Festkomma-Architekturen parallel verwendet werden, um tatsächliche mathematische Berechnungen auf redundante Weise auszuführen. Die Ergebnisse werden verglichen und die Differenz bei den Ergebnissen wird analysiert, um zu bestimmen, ob sie innerhalb einer Spanne ist, die durch die Berechnungspräzisionen spezifiziert ist. Im Allgemeinen ist diese Implementierung nicht effizient, da sie eine Implementierung mit Fest- und Gleit-Kommas erfordert, was diese Anwendung auf Prozessoren einschränkt, die sowohl Fest- als auch Gleit-Kommas unterstützt. Ferner können einige Berechnungen demselben systematischen Fehler unterliegen, sogar wenn sie als Fest- und Gleit-Kommas implementiert sind.
  • Eine andere bekannte Implementierung wird „codierte Verarbeitung” (coded processing) mit AN-Codierung als Beispiel genannt. AN-Codierung ist ein Verfahren zum Erweitern eines Daten-Zahlenraumes. Die Originaldaten werden multipliziert, bevor sie mit einem spezifischen Code verarbeitet werden, und später wird geprüft, ob das berechnete Ergebnis noch in dem erwarteten Zahlenraum ist. Dieses Verfahren wird primär verwendet, um eine einzelne Prozessorfunktion gegen inkorrekte Berechnung zu schützen.
  • Dieser Typ von Codierung erhöht jedoch die erforderliche Bandbreite für den Zahlenraum, was ein ernsthafter Nachteil für eingebettetes Rechnen und insbesondere Firmware ist. Eine größere Bandbreit impliziert auch mehr Routing-Drähte und höhere Transistorzahlen in der gesamten Architektur, was die Menge an Ausfallmöglichkeiten erhöht. Dies erklärt auch, weshalb sich dieses Verfahren bislang nur bei Anwendungen von Prozesscomputern findet, die eine hohe Hardwarekomplexität verwenden.
  • ZUSAMMENFASSUNG
  • Es besteht ein Bedarf zum Bereitstellen eines verbesserten Konzeptes für Fehlerdetektionssystem und ein Fehlerdetektionsverfahren.
  • Ein solcher Bedarf kann durch den Gegenstand eines der Ansprüche erfüllt werden.
  • Einige Ausführungsbeispiele beziehen sich auf ein Fehlerdetektionssystem umfassend einen ersten Prozessor, der ausgebildet ist, um eine erste Messung zu empfangen, eine erste Firmware basierend auf der ersten Messung auszuführen und ein erstes Ergebnis der ausgeführten ersten Firmware auszugeben; und einen zweiten Prozessor identisch zu dem ersten Prozessor und ausgebildet, um eine zweite Messung zu empfangen, eine zweite Firmware basierend auf der zweiten Messung auszuführen und ein zweites Ergebnis der ausgeführten zweiten Firmware auszugeben; wobei die erste Firmware und die zweite Firmware eine gleiche nominale Funktion auf eine unterschiedliche Weise zum Berechnen des ersten Ergebnisses und/oder des zweiten Ergebnisses derart bereitstellen, dass erwartet wird, dass das erste Ergebnis und das zweite Ergebnis innerhalb einer vorbestimmten Spanne sind.
  • Optional wird erwartet, dass das erste Ergebnis und das zweite Ergebnis zumindest eines erfüllen aus |R1 – R2| < PM und |R1 + R2| < PM, wobei R1 das erste Ergebnis ist, R2 das zweite Ergebnis ist und PM die vorbestimmte Spanne ist.
  • Wiederum optional sind die erste Messung und die zweite Messung Messungen einer gleichen physikalischen Größe.
  • Optional umfasst das Fehlerdetektionssystem ferner einen dritten Prozessor, der ausgebildet ist zum Vergleichen des ersten Ergebnisses mit dem zweiten Ergebnis, um basierend auf einem Vergleichsergebnis und der vorbestimmten Spanne zu bestimmen, ob ein Fehler existiert.
  • Wiederum optional bestimmt der dritte Prozessor, dass der Fehler existiert, wenn die vorbestimmte Spanne überschritten wird, basierend zumindest auf einem aus |R1 – R2| < PM und |R1 + R2| < PM, wobei R1 das erste Ergebnis ist, R2 das zweite Ergebnis ist und PM die vorbestimmte Spanne ist.
  • Optional umfasst das Fehlerdetektionssystem ferner eine elektronische Steuereinheit (ECU; electronic control unit), die den dritten Prozessor umfasst.
  • Wiederum optional umfasst das Fehlerdetektionssystem ferner eine erste Vergleichskomponente, die ausgebildet ist, um das erste Ergebnis mit dem zweiten Ergebnis zu vergleichen und ein Vergleichsergebnis auszugeben; und eine zweite Vergleichskomponente, die ausgebildet ist, um das Vergleichsergebnis zu empfangen und basierend auf dem Vergleichsergebnis und der vorbestimmten Spanne zu bestimmen, ob ein Fehler existiert.
  • Optional sind die erste Firmware und die zweite Firmware diverse, mathematisch äquivalente Algorithmen.
  • Wiederum optional sind der erste Prozessor und der zweite Prozessor in einen einzelnen Siliziumchip integriert.
  • Optional umfasst das Fehlerdetektionssystem ferner eine integrierte Schaltung umfassend den ersten Prozessor; den zweiten Prozessor; und einen Speicher, der ausgebildet ist, um die erste Firmware und die zweite Firmware zu speichern und der elektrisch mit dem ersten Prozessor und dem zweiten Prozessor verbunden ist.
  • Wiederum optional umfasst das Fehlerdetektionssystem ferner eine integrierte Schaltung umfassend den ersten Prozessor; den zweiten Prozessor; einen ersten Speicher, der ausgebildet ist, um die erste Firmware zu speichern und der elektrisch mit dem ersten Prozessorverbunden ist; und einen zweiten Speicher, der ausgebildet ist, um die zweite Firmware zu speichern und der elektrisch mit dem zweiten Prozessorverbunden ist; wobei der zweite Speicher getrennt von dem ersten Speicher ist.
  • Optional umfasst das Fehlerdetektionssystem ferner einen Sensor umfassend einen ersten Sensorkanal und einen zweiten Sensorkanal, wobei der erste Prozessor ausgebildet ist, um die erste Messung von dem ersten Sensorkanal zu empfangen, und der zweite Prozessor ausgebildet ist, um die zweite Messung von dem zweiten Sensorkanal zu empfangen.
  • Wiederum optional ist der Sensor ein Magnetfeldsensor, ein Positionssensor, ein Geschwindigkeitssensor, ein Beschleunigungssensor, ein Drucksensor, ein Temperatursensor oder ein Belastungssensor.
  • Optional umfasst das Fehlerdetektionssystem ferner einen ersten Sensor, der ausgebildet ist, um die erste Messung zu messen und die erste Messung an den ersten Prozessor auszugeben; und einen zweiten Sensor, der ausgebildet ist, um die zweite Messung zu messen und die zweite Messung an den zweiten Prozessor auszugeben.
  • Wiederum optional sind die erste Firmware und die zweite Firmware miteinander verknüpft, und der erste Prozessor wählt die erste Firmware aus einer Mehrzahl von Firmware aus, die in zumindest einem Speicher gespeichert ist, basierend auf einem Typ eines Fehlers, der detektiert werden soll, derart, dass der erste Prozessor die erste Firmware ausführt und der zweite Prozessor die zweite Firmware ausführt, die mit der ersten Firmware verknüpft ist.
  • Optional sind eine Abtastzeit der ersten Messung und eine Abtastzeit der zweiten Messung dieselben.
  • Wiederum optional sind eine Verarbeitungszeit der ersten Firmware und eine Verarbeitungszeit der zweiten Firmware dieselben.
  • Optional umfasst die erste Messung eine Mehrzahl von ersten Messungen, abgetastet bei einer Mehrzahl von ersten Abtastzeiten, die eine erste durchschnittliche Abtastzeit definieren, die zweite Messung umfasst eine Mehrzahl von zweiten Messungen, abgetastet bei einer Mehrzahl von zweiten Abtastzeiten, die eine zweite durchschnittliche Abtastzeit definieren, die gleich zu der ersten durchschnittlichen Abtastzeit ist, wobei der erste Prozessor durch Ausführen der ersten Firmware konfiguriert wird, um einen ersten Mess-Durchschnitt der Mehrzahl von ersten Messungen zu berechnen und um das erste Ergebnisses basierend auf dem ersten Mess-Durchschnitt zu berechnen, und der zweite Prozessor durch Ausführen der zweiten Firmware konfiguriert wird, um den zweiten Mess-Durchschnitts der Mehrzahl von zweiten Messungen zu berechnen und um das zweite Ergebnis basierend auf dem zweiten Mess-Durchschnitt zu berechnen.
  • Einige Ausführungsbeispiele beziehen sich ferner auf ein Fehlerdetektionsverfahren umfassend das Ausführen einer ersten Firmware durch einen ersten Prozessor, umfassend das Empfangen einer ersten Messung, Ausführen eines ersten Algorithmus basierend auf der ersten Messung und Ausgeben eines ersten Ergebnisses des ausgeführten ersten Algorithmus; und Ausführen einer zweiten Firmware durch einen zweiten Prozessor identisch zu dem ersten Prozessor, umfassend das Empfangen einer zweiten Messung, Ausführen eines zweiten Algorithmus basierend auf der zweiten Messung und Ausgeben eines zweiten Ergebnisses des ausgeführten zweiten Algorithmus, wobei die erste Firmware und die zweite Firmware eine gleiche nominale Funktion auf eine diverse Weise zum Berechnen des ersten Ergebnisses und/oder des zweiten Ergebnisses derart bereitstellen, dass erwartet wird, dass das erste Ergebnis und das zweite Ergebnis innerhalb einer vorbestimmten Spanne sind.
  • Optional umfasst das Fehlerdetektionsverfahren ferner das Vergleichen des ersten Ergebnisses mit dem zweiten Ergebnis und das Ausgeben eines Vergleichsergebnisses; Bestimmen, ob ein Fehler existiert, basierend auf dem Vergleichsergebnis und der vorbestimmten Spanne; und Ausgeben eines Fehlerdetektionssignals auf eine Bedingung hin, dass der Fehler detektiert wird.
  • Wiederum optional umfasst das Fehlerdetektionsverfahren ferner das Bestimmen, dass ein Fehler existiert, wenn die vorbestimmte Spanne überschritten wird, basierend zumindest auf einem aus |R1 – R2| < PM und |R1 + R2| < PM, wobei R1 das erste Ergebnis ist, R2 das zweite Ergebnis ist und PM die vorbestimmte Spanne ist; und das Ausgeben eines Fehlerdetektionssignals auf eine Bedingung hin, dass der Fehler detektiert wird.
  • Optional sind der erste Algorithmus und der zweite Algorithmus diverse, mathematisch äquivalente Algorithmen.
  • Wiederum optional sind die erste Firmware und die zweite Firmware miteinander verknüpft, und das Verfahren umfasst ferner das Auswählen der ersten Firmware aus einer Mehrzahl von Firmware, die in zumindest einem Speicher gespeichert ist, basierend auf einem Typ eines Fehlers, der detektiert werden soll, derart, dass der erste Prozessor die erste Firmware ausführt und der zweite Prozessor die zweite Firmware ausführt, die mit der ersten Firmware verknüpft ist.
  • Optional sind die erste Messung und die zweite Messung Messungen einer gleichen physikalischen Größe.
  • Wiederum optional umfasst das Fehlerdetektionsverfahren ferner das Empfangen, durch den ersten Prozessor, einer Mehrzahl von ersten Messungen, abgetastet bei einer Mehrzahl von ersten Abtastzeiten, die eine erste durchschnittliche Abtastzeit definieren; Empfangen, durch den zweiten Prozessor, einer Mehrzahl von zweiten Messungen, abgetastet bei einer Mehrzahl von zweiten Abtastzeiten, die eine zweite durchschnittliche Abtastzeit definieren, die gleich zu der ersten durchschnittlichen Abtastzeit ist; Ausführen der ersten Firmware durch den ersten Prozessor umfassend das Berechnen eines ersten Mess-Durchschnitts der Mehrzahl von ersten Messungen und Berechnen des ersten Ergebnisses basierend auf dem ersten Mess-Durchschnitt; und Ausführen der zweiten Firmware durch den zweiten Prozessor umfassend das Berechnen eines zweiten Mess-Durchschnitts der Mehrzahl von zweiten Messungen und Berechnen des zweiten Ergebnisses basierend auf dem zweiten Mess-Durchschnitt.
  • Ausführungsbeispiele stellen ein Fehlerdetektionssystem bereit, das einen ersten Prozessor umfasst, der ausgebildet ist, um eine erste Messung zu empfangen, eine erste Firmware basierend auf der ersten Messung auszuführen, und ein erstes Ergebnis der ausgeführten ersten Firmware auszugeben, und einen zweiten Prozessor, der identisch zu dem ersten Prozessor ist und ausgebildet ist, um eine zweite Messung zu empfangen, eine zweite Firmware basierend auf der zweiten Messung auszuführen, und ein zweites Ergebnis der ausgeführten zweiten Firmware auszugeben. Die erste Firmware und die zweite Firmware stellen eine nominale Funktion auf diverse Weise bereit, zum Berechnen des ersten Ergebnisses und/oder des zweiten Ergebnisses, derart, dass erwartet wird, dass das erste Ergebnis und das zweite Ergebnis innerhalb einer vorbestimmten Spanne sind.
  • Das Fehlerdetektionssystem kann ferner eine erste Vergleichskomponente umfassen, die ausgebildet ist, um das erste Ergebnis mit dem zweiten Ergebnis zu vergleichen und ein Vergleichsergebnis auszugeben, und eine zweite Vergleichskomponente, die ausgebildet ist, um das Vergleichsergebnis zu empfangen und basierend auf dem Vergleichsergebnis und der vorbestimmten Spanne zu bestimmen, ob ein Fehler existiert, und ein Fehlerdetektionssignal auf eine Bedingung hin auszugeben, dass ein Fehler detektiert wird.
  • Ausführungsbeispiele stellen ein Verfahren zum Detektieren eines Fehlers bereit, umfassend das Ausführen einer ersten Firmware durch einen ersten Prozessor, umfassend das Empfangen einer ersten Messung, Ausführen eines ersten Algorithmus basierend auf der ersten Messung und Ausgeben eines ersten Ergebnisses des ausgeführten ersten Algorithmus; und Ausführen einer zweiten Firmware durch einen zweiten Prozessor, der identisch zu dem ersten Prozessor ist, umfassend das Empfangen einer zweiten Messung, Ausführen eines zweiten Algorithmus basierend auf der zweiten Messung und Ausgeben eines zweiten Ergebnisses des ausgeführten zweiten Algorithmus. Die erste Firmware und die zweite Firmware stellen eine nominale Funktion auf diverse Weise bereit, zum Berechnen des ersten Ergebnisses und/oder des zweiten Ergebnisses, derart, dass erwartet wird, dass das erste Ergebnis und das zweite Ergebnis innerhalb einer vorbestimmten Spanne sind.
  • Das Verfahren kann ferner das Vergleichen des ersten Ergebnisses mit dem zweiten Ergebnis und das Ausgeben eines Vergleichsergebnisses, das Bestimmen, ob ein Fehler existiert, basierend auf dem Vergleichsergebnis und der vorbestimmten Spanne, und das Ausgeben eines Fehlerdetektionssignals auf eine Bedingung hin, dass ein Fehler detektiert wird, umfassen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsbeispiele werden hierin unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben.
  • 1 ist ein Blockdiagramm einer beispielhaften integrierten Schaltung gemäß einem oder mehreren Ausführungsbeispielen;
  • 2 ist ein Blockdiagramm einer anderen beispielhaften integrierten Schaltung gemäß einem oder mehreren Ausführungsbeispielen;
  • 3 ist ein Blockdiagramm eines Computersystems gemäß einem oder mehreren Ausführungsbeispielen;
  • 4a und 4b zeigen Beispiele einer zeitlich diversen Firmware/Software-Planung gemäß einem oder mehreren Ausführungsbeispielen; und
  • 5 stellt ein Flussdiagramm eines beispielhaften Fehlerdetektionsverfahrens gemäß einem oder mehreren Ausführungsbeispielen dar.
  • DETAILLIERTE BESCHREIBUNG
  • Nachfolgend werden verschiedene Ausführungsbeispiele detailliert Bezug nehmend auf die beiliegenden Zeichnungen beschrieben. Es versteht sich jedoch, dass diese Ausführungsbeispiele nur zu darstellenden Zwecken dienen und nicht als einschränkend betrachtet werden sollen. Zum Beispiel, während Ausführungsbeispiele möglicherweise derart beschrieben sind, dass sie eine Mehrzahl von Merkmalen oder Elementen aufweisen, soll dies nicht so ausgelegt werden, dass all diese Merkmale oder Elemente zum Implementieren von Ausführungsbeispielen notwendig sind. Stattdessen können bei anderen Ausführungsbeispielen einige der Merkmale oder Elemente weggelassen werden oder können durch alternative Merkmale oder Elemente ersetzt werden. Zusätzlich dazu können weitere Merkmale oder Elemente zusätzlich zu jenen, die ausdrücklich gezeigt und beschrieben sind, bereitgestellt werden, zum Beispiel herkömmliche Komponenten von Sensorbauelementen.
  • Merkmale von unterschiedlichen Ausführungsbeispielen können kombiniert werden, um weitere Ausführungsbeispiele zu bilden, außer dies ist spezifisch anderweitig angegeben. Abänderungen oder Modifikationen, die in Bezug auf eines der Ausführungsbeispiele beschrieben sind, können auch auf andere Ausführungsbeispiele anwendbar sein.
  • Verbindungen oder Kopplungen zwischen Elementen, die in den Zeichnungen gezeigt oder hierin beschrieben sind, können auf Draht basierende Verbindungen oder drahtlose Verbindungen sein, sofern nicht anderweitig angemerkt. Ferner können solche Verbindungen oder Kopplungen direkte Verbindungen oder Kopplungen ohne zusätzliche dazwischen liegende Elemente oder indirekte Verbindungen oder Kopplungen mit einem oder mehreren dazwischen liegenden Elementen sein, solange der allgemeine Zweck der Verbindung oder Kopplung, zum Beispiel das Übertragen einer bestimmten Art von Signal oder das Übertragen einer bestimmten Art von Information im Wesentlichen beibehalten wird.
  • Ausführungsbeispiele beziehen sich auf Sensoren und Sensorsysteme und das Erhalten von Informationen über Sensoren und Sensorsysteme. Ein Sensor, wie bereits in dem Abschnitt Hintergrund erwähnt, kann sich auf eine Komponente beziehen, die eine physikalische Größe, die gemessen werden soll, in ein elektrisches Signal umwandelt, zum Beispiel ein Stromsignal oder ein Spannungssignal. Die physikalische Größe kann zum Beispiel ein Magnetfeld, ein elektrisches Feld, einen Druck, eine Kraft, einen Strom oder eine Spannung aufweisen, ist aber nicht darauf beschränkt.
  • Ein Sensorbauelement, wie es hierin verwendet wird, kann sich auf ein Bauelement beziehen, das einen Sensor aufweist, und auf weitere Komponenten, zum Beispiel eine Vorspannungs-Schaltungsanordnung, einen Analog-Digital-Wandler oder ein Filter. Ein Sensorbauelement kann auf einem einzelnen Chip integriert sein, obwohl bei anderen Ausführungsbeispielen eine Mehrzahl von Chips oder auch Komponenten außerhalb eines Chips zum Implementieren eines Sensorbauelements verwendet werden können.
  • Hierin beschriebene Ausführungsbeispiele stellen eine diverse und redundante Sicherheitsfunktion bereit, die auf der Verwendung einer identischen Hardware-Implementierung von Mikroprozessoren gründet, die einen diversen Firmware-Code oder Algorithmen ausfahren (z. B. ist jeder identische oder redundante Mikroprozessor ausgebildet, um einen Firmwarecode auszuführen, der sich von jedem Firmware-Code von anderen identischen oder redundanten Mikroprozessor(en) unterscheidet. Es wird daraufhingewiesen, dass die Ausdrücke „Mikroprozessoren”, „Prozessoren” und „Prozessorkerne” in der Offenbarung durchgehend austauschbar verwendet werden können. Es wird ferner darauf hingewiesen, dass hierin beschriebene Konzepte nicht auf Sicherheitsfunktionen beschränkt sind und in jeglichem Bauelement oder System implementiert sein können, das eine Ausfall/Fehler-Detektion verwendet.
  • Identische Hardware für mehrere Mikroprozessoren kann in einen einzelnen Siliziumchip integriert sein (z. B. integrierte/eingebettete Mikroprozessoren) oder kann auf separaten Chips bereitgestellt sein.
  • Es werden verschiedene Verfahren und Implementierungen von diversem Firmwarecode beschrieben. Zum Beispiel können ein oder mehrere Ausführungsbeispiele ausgebildet sein, um eine kritische Funktion auf redundante und diverse Weise zu implementieren, um sicherzustellen, dass jegliche Abweichung der erforderlichen Funktion durch eine Fehlanpassung zwischen den redundanten Implementierungen detektiert wird. Die Firmware für jeden Prozessor, wenn auch divers, stellt dieselbe nominale Funktion derart bereit, dass das erwartete Ergebnis dasselbe ist oder innerhalb einer akzeptablen oder vorhergesehenen Spanne ist. Somit sind die Firmware-Codes/Algorithmen mathematisch äquivalent aber sind auf unterschiedliche, diverse Weise derart implementiert, dass die Ergebnisse jeder Berechnung oder Funktion jedes Prozessors miteinander verglichen werden können und die Ergebnisse zum Berechnen eines Fehlers verwendet werden können.
  • Es wird darauf hingewiesen, dass ein erstes Ergebnis R1 einer ersten Firmware FW1 und ein zweites Ergebnisse R2 einer zweiten Firmware FW2 analysiert werden können, um zu bestimmen, ob die Ergebnisse gleich zueinander sind (z. B. R1 = R2) oder kleiner sind als (oder kleiner sind als oder gleich sind zu) einer vorbestimmten Spanne oder Schwelle (z. B., |R1 – R2| < Schwelle 1 oder |R1 + R2| < Schwelle 2, wobei |”x”| den absoluten Wert von x anzeigt und Spanne 1 und Spanne 2 gleich oder unterschiedlich sein können). Es wird darauf hingewiesen, dass die Spanne oder Schwelle null oder ein anderer Wert sein kann.
  • Es wird darauf hingewiesen, dass die Ausdrücke „Codes”, „Algorithmen” und „Gleichungen” in der Offenbarung durchgehend austauschbar verwendet werden können.
  • Ferner können ein oder mehrere Ausführungsbeispiele eine Lösung bereitstellen, die die Komplexität der Hardware und den Aufwand für eine Hardwareverifizierung minimiert, ohne die Sicherheit auf jegliche Weise zu kompromittieren.
  • 1 zeigt ein Blockdiagramm einer beispielhaften, integrierten Schaltung (IC) 10 mit (zumindest) zwei identischen Mikroprozessoren PROC1 11a, PROC2 11b, die eine diverse Sicherheitsfunktion über diverse Firmwarecodes FW1 12 und FW2 13 implementieren. Die IC umfasst eine Busarchitektur 14, bestehend aus einem oder mehreren Bussen, die zum Übertragen von Daten und Steuerungs-Informationen und/oder -Anweisungen zwischen einer oder mehreren Komponenten der IC 10 ausgebildet sind. Die IC 10 kann ferner einen Nur-Lese-Speicher (read-only memory; ROM) 15, einen nichtflüchtigen Speicher (non-volatile memory; NVM) 16, einen Direktzugriffsspeicher (random-access memory; RAM) 17, eine digitale Eingangs-Ausgangs-Stufe (digital input output stage IO_DIG) 18 und eine analoge Eingangs-Ausgangs-Stufe (analogue input output stage IO_ADC) 19 umfassen, die über die Busarchitektur 14 verbunden sind. Die digitale Eingangs-Ausgangs-Stufe IO_DIG 18 und/oder die analoge Eingangs-Ausgangs-Stufe IO_ADC 19 können eine oder mehrere Messungen von einem oder mehreren Sensoren (nicht gezeigt) gemäß einer Trigger- oder Abtast-Zeit empfangen. Somit kann eine Prozessorfunktion der IC 10 einen oder mehrere Datenpfade und einen oder mehrere Steuerungspfade umfassen, bereitgestellt durch die Busarchitektur 14 und eine oder mehrere Komponenten. Zwei oder mehr Messungen (z. B. zumindest eine bereitgestellt für jeden Prozessor) können derart identisch zueinander sein, dass erwartet wird, dass die erwarteten Ergebnisse, ausgegeben durch die Firmware FW1, FW2, gleich sind oder innerhalb einer akzeptablen Fehlerspanne sind. Es wird darauf hingewiesen, dass die Messungen (d. h. Messsignale) von derselben Polarität oder invers zueinander sein können, solange die Ergebnisse, die von der Firmware FW1, FW2 ausgegeben werden, analysiert und verwendet werden können, um einen Fehler auf diverse Weise zu detektieren.
  • Es wird daraufhingewiesen, dass ein erstes Ergebnis R1 einer ersten Firmware FW1 und ein zweites Ergebnisse R2 einer zweiten Firmware FW2 analysiert werden können, um zu bestimmen, ob die Ergebnisse gleich zueinander sind (z. B. R1 = R2) oder kleiner sind als (oder kleiner sind als oder gleich sind zu) eine vorbestimmte Spanne oder Schwelle (z. B., |R1 – R2| < Schwelle 1 oder |R1 + R2| < Schwelle 2, wobei |”x”| den absoluten Wert von x anzeigt und Spanne 1 und Spanne 2 gleich oder unterschiedlich sein können). Es wird darauf hingewiesen, dass die Spanne oder Schwelle null oder ein anderer Wert sein kann.
  • Die zwei diversen Firmwarecodes FW1 und FW2 können in dem ROM 15 gespeichert sein und auf diese kann durch ihren entsprechenden Mikroprozessor PROC1, PROC2 über die Busarchitektur 14 zugegriffen werden.
  • Die zwei Mikroprozessoren PROC1, PROC2 werden über ihre entsprechenden Firmwarecodes FW1, FW2 konfiguriert, um zwei sicherheitsrelevante Ergebnisse zu berechnen, die dann durch ein Vergleichs-Modul oder eine -Komponente verglichen werden, was jegliches Bauelement ist, das ausgebildet ist, um zwei oder mehr Eingaben zu vergleichen (z. B. Komparator, Prozessor und ähnliches). Das Vergleichs-Modul oder die -Komponente kann ferner ein oder mehrere Vergleichsergebnisse ausgeben oder kann ferner basierend auf den Vergleichsergebnissen bestimmen, ob ein Fehler vorliegt, und ein Fehlerdetektionssignal ausgeben, wenn ein Fehler detektiert wird. Das/Die Vergleichsergebnis/se kann/können verglichen werden, durch ein Vergleichsmodul, eine Vergleichskomponente oder eine andere Bestimmungskomponente, mit einer Schwelle unter Verwendung eines Schwellentests, oder mit einer vorbestimmten Spanne, um zu bestimmen, ob ein Fehler oder Ausfall in dem System vorliegt.
  • Zum Beispiel können die Ergebnisse, die durch die Mikroprozessoren PROC1, PROC2 berechnet wurden, verglichen werden durch einen digitalen Signalprozessor (DSP) von einem der Mikroprozessoren PROC1, PROC2, durch einen anderen Prozessor (nicht gezeigt), der in der IC 10 umfasst ist, durch einen externen Prozessor (nicht gezeigt), der ”weg vom Chip” angeordnet ist (z. B. eine externe, elektronische Steuereinheit (ECU)), der die Ergebnisse von der IC 10 über eine der digitalen und analogen Eingangs-Ausgangs-Stufen IO_DIG 18 und IO_ADC 19 empfängt, und/oder durch einen Komparator, der auf dem oder weg von dem Chip angeordnet ist und mit einer der digitalen und analogen Eingangs-Ausgangs-Stufen IO_DIG 18 und IO_ADC 19 verbunden ist. Zum Beispiel kann eine der digitalen und analogen Eingangs-Ausgangs-Stufen IO_DIG 18 und IO_ADC 19 jedes Ergebnis von den Mikroprozessoren PROC1 11a, PROC2 11b, RAM 17, oder ähnlichem empfangen und die Ergebnisse an ein externes Bauelement (z. B. eine ECU) ausgeben. Es können eine oder mehrere Vergleichsstufen durch ein gleiches oder unterschiedliches Vergleichs-/Bestimmungs-Modul oder eine -Komponente vorliegen, um eine Fehlerbestimmung auszuführen und ein Fehlerdetektionssignal auszugeben.
  • Alternativ zum Speichern der Firmware in dem ROM 15 kann der Programm-Firmwarecode FW1 12 und FW2 13 in dem NVM 16 gespeichert sein, vorausgesetzt die Zugriffszeit ist schnell genug, um mit den Anforderungen der Mikroprozessoren PROC1 11a und PROC2 11b umzugehen. Der NVM 16 kann jeglicher Typ von NVM sein, einschließlich ein programmierbarer Nurlesespeicher (programmable read-only memory; PROM) (z. B. Erasable Programmable Read-Only Memory (EEPROM), Flash-Speicher und ähnliches.
  • Der RAM 17 kann ferner ausgebildet sein, um die Zwischenergebnisse der Mikroprozessoren PROC1 11a und PROC2 11b zu speichern.
  • Der IO_DIG 18 kann eine digitale Schnittstelle zum Empfangen digitaler Signale von jeglicher der oben identifizierten Komponenten, und zum Ausgeben der digitalen Signale, mit oder ohne weitere digitale Signalverarbeitung, an ein externes Bauelement umfassen.
  • Der IO_ADC 19 kann eine analoge Schnittstelle umfassen, zum Empfangen analoger Signale von jeglicher der oben identifizierten Komponenten, wobei ein Prozessor (z. B. Analog-zu-Digital-(ADC)Prozessor) darin eingebettet ist. Somit kann der IO_ADC 19 analoge und/oder digitale Signale an ein externes Bauelement ausgeben.
  • 2 zeigt ein Blockdiagramm einer beispielhaften IC 20 mit (zumindest) zwei Mikroprozessoren PROC1 21a, PROC2 21b, die eine diverse Sicherheitsfunktion über diverse Firmwarecodes FW1 22 und FW2 23 implementieren, deren Ergebnisse verglichen werden, wie hierin beschrieben ist. Die IC umfasst eine Busarchitektur 24 ausgebildet zum Übertragen von Daten und Steuerungs-Informationen und/oder -Anweisungen zwischen einer oder mehreren Komponenten der IC 20.
  • Die IC 20 kann ferner (zumindest) zwei ROMs 25a und 25b umfassen, die mit einem entsprechenden einen der zwei Mikroprozessoren PROC1 21a, PROC2 21b verbunden sind. Somit kann als weitere Sicherheitsbetrachtung jeder Mikroprozessor PROC1 21a, PROC2 21b über einen dedizierten Bus 24a und 24b mit einem dedizierten ROM1 25a und ROM2 25b verbunden sein, die den entsprechenden Firmwarecode FW1 22, FW2 23 für die Mikroprozessoren ROC1 21a, PROC2 21b speichern. Da der ROM1 25a und ROM2 25b getrennt (d. h. gegenseitig ausschließend) voneinander sind, wird das gesamte System durch die hinzugefügte Redundanz geschützt, sollte einer der ROMs ausfallen.
  • Die dedizierten Busse 24a und 24b stellen einen Steuerungspfad von dem ROM1 und ROM2 zu den Mikroprozessoren PROC1 und/oder PROC2 bereit. Somit wird die Redundanz in der IC 20 erhöht, und sollte ein Pfad ausfallen kann der andere Pfad gültig bleiben.
  • Die IC 20 kann ferner einen NVM 26, einen RAM 27, eine digitale Eingangs-Ausgangs-Stufe IO_DIG 28 und eine analoge Eingangs-Ausgangs-Stufe IO_ADC 29 umfassen, die über die Busarchitektur 24 verbunden sind. Die digitale Eingangs-Ausgangs-Stufe IO_DIG 28 und/oder die analoge Eingangs-Ausgangs-Stufe IO_ADC 29 können eine oder mehrere Messungen von einem oder mehreren Sensoren (nicht gezeigt) gemäß einer Trigger- oder Abtast-Zeit empfangen. Somit kann eine Prozessorfunktion der IC 20 einen oder mehrere Datenpfade und einen oder mehrere Steuerungspfade umfassen, bereitgestellt durch die Busarchitektur 24 und eine oder mehrere Komponenten. Zwei oder mehr Messungen (z. B. zumindest eine bereitgestellt für jeden Prozessor) können derart identisch zueinander sein, dass erwartet wird, dass die erwarteten Ergebnisse, ausgegeben durch die Firmware FW1, FW2, gleich sind oder innerhalb einer akzeptablen Fehlerspanne sind. Es wird darauf hingewiesen, dass die Messungen (d. h. Messsignale) von derselben Polarität oder invers zueinander sein können, solange die Ergebnisse, die von der Firmware FW1, FW2 ausgegeben werden, analysiert und verwendet werden können, um einen Fehler auf diverse Weise zu detektieren.
  • Es wird darauf hingewiesen, dass ein erstes Ergebnis R1 einer ersten Firmware FW1 und ein zweites Ergebnisse R2 einer zweiten Firmware FW2 analysiert werden können, um zu bestimmen, ob die Ergebnisse gleich zueinander sind (z. B. R1 = R2) oder kleiner sind als (oder kleiner sind als oder gleich sind zu) eine/r vorbestimmte/n Spanne oder Schwelle (z. B., |R1 – R2| < Schwelle 1 oder |R1 + R2 | < Schwelle 2, wobei |”x”| den absoluten Wert von x anzeigt und Spanne 1 und Spanne 2 gleich oder unterschiedlich sein können). Es wird darauf hingewiesen, dass die Spanne oder Schwelle null oder ein anderer Wert sein kann.
  • Alternativ kann der Programm-Firmwarecode FW1 22 und FW2 23 in einem dedizierten NVM gespeichert sein (nicht gezeigt), anstelle eines dedizierten ROM, vorausgesetzt die Zugriffszeit ist schnell genug, um mit den Anforderungen der Mikroprozessoren PROC1 21a und PROC2 21b umzugehen. Ein NVM kann jeglicher Typ von NVM sein, einschließlich ein programmierbarer Nurlesespeicher (programmable read-only memory; PROM) (z. B. Erasable Programmable Read-Only Memory (EEPROM), Flash-Speicher und ähnliches.
  • Der RAM 27 kann ferner ausgebildet sein, um die Zwischenergebnisse der Mikroprozessoren PROC1 21a und PROC2 21b zu speichern.
  • Der IO_DIG 28 kann eine digitale Schnittstelle zum Empfangen digitaler Signale von jeglicher der oben identifizierten Komponenten umfassen, und die digitalen Signale, mit oder ohne weitere digitale Signalverarbeitung, an ein externes Bauelement ausgeben.
  • Der IO_ADC 29 kann eine analoge Schnittstelle zum Empfangen analoger Signale von jeglicher der oben identifizierten Komponenten umfassen, wobei ein Prozessor (z. B. ein ADC-Prozessor) darin eingebettet ist. Somit kann der IO_ADC 29 analoge und/oder digitale Signale an ein externes Bauelement ausgeben.
  • Beispiele von diversen Firmwarecodes FW1 und FW2 werden nachfolgend bereitgestellt, die diverse Funktionen bereitstellen, einschließlich diverser Addition, diverser Multiplikation und diverser Polynome. Zwei diverse Codes FW1 und FW2 werden nachfolgend in mathematischer Schreibweise der Einfachheit halber gezeigt. Fachleute auf dem Gebiet werden jedoch erkennen, dass die Codes FW1, FW2 in einem binären Code oder in einer Assemblersprache implementiert sind, die spezifisch für die Prozessoren PROC1 und PROC2 ist.
  • Beide Codes FW1 und FW2 stellen dieselbe nominale Funktion bereit (z. B. Addition, Multiplikation, polynomisch, etc.). D. h., die diversen Firmwarecodes FW1 und FW2 sind mathematisch äquivalent zueinander mit einer unterschiedlichen Implementierung der nominalen Funktion. Zum Beispiel kann eine Anzahl von Anweisungen (z. B. Operationscodes oder Opcodes), eine Sequenz von Anweisungen (z. B. Operationscodes oder Opcodes) und/oder eine Reihenfolge von Operationen (oder Operator-Präzedenz) zwischen den Firmwarecodes unterschiedlich sein. Ferner kann eine Programmlänge der Firmwarecodes FW1 und FW2 unterschiedlich sein. Es wird ferner darauf hingewiesen, dass während zwei diverse Firmwarecodes bereitgestellt sind, mehr als zwei diverse Firmwarecodes implementiert sein können, einer für jeden redundanten Prozessor.
  • Ein erstes Beispiel von diversen Additions-Algorithmen wird bereitgestellt: FW1) A = B + C Gleichung 1a FW2) A = (B·alpha) + C + (B·beta), wobei alpha + beta = 1 Gleichung 1b
  • Bei dem ersten Beispiel der diversen Addition ist A ein Funktionsergebnis (z. B. ein Magnetfeldwert, Versatzwert, Verstärkungswert, etc.), B ist eine Ausgabe (z. B. ein Roh-Wert) von einem ersten Sensor gemessen zu einer ersten Zeit, C ist eine zweite Ausgabe aus dem ersten Sensor gemessen zu einem zweiten Zeitpunkt, eine Ausgabe aus einem zweiten Sensor oder ein konstanter Wert, der in einem NVM (z. B. EEPROM, ROM, etc.) gespeichert ist, und die Werte von alpha und beta sind derart, dass die Summe von alpha und beta gleich 1 ist. Der zweite Sensor kann derselbe Typ von Sensor sein wie der erste Sensor und kann ferner identisch zu dem ersten Sensor sein und stellt eine Messung zur selben oder einer unterschiedlichen Zeit und/oder einem Ort bereit wie der erste Sensor. Zum Beispiel kann B ein Rohmesswert eines Magnetsensors sein und C kann ein zusätzlicher Sensorwert (z. B. Temperaturmesswert) von einem Temperatursensor sein. Fachleute auf dem Gebiet werden jedoch erkennen, dass eine Anzahl von Anweisungen und eine Sequenz von Anweisungen zum Ausführen von Gleichungen 1a und 1b unterschiedlich zueinander ist, aber das Ergebnis A sollte dasselbe sein, wenn ein Prozessor, Sensor und/oder System normal arbeitet. Somit sind Gleichungen 1a und 1b mathematisch äquivalent.
  • Ein Sensor kann jeglichen Sensor umfassen, der eine Eigenschaft, ein Ereignis und/oder eine Änderung in der Umgebung misst und ein Ergebnis in der Form eines elektrischen oder optischen Signals ausgibt (z. B. ein Magnetfeldsensor, ein Positionssensor, ein Geschwindigkeitssensor, ein Beschleunigungssensor, ein Drucksensor, ein Temperatursensor, ein Belastungssensor, etc.). Ein Magnetfeldsensor kann ferner einen Hall-Sensor oder einen Magnetowiderstandssensor ×MR umfassen (z. B. Riesenmagnetowiderstand(GMR), Tunnelmagnetowiderstand (TMR), anisotroper Magnetowiderstand (AMR), kolossaler Magnetowiderstand (CMR), etc.).
  • Einer oder mehrere Sensoren können in dem gleichen Gehäuse oder auf dem gleichen Chip oder auf unterschiedlichen Gehäusen oder auf unterschiedlichen Chips bereitgestellt sein. Ferner können einer oder mehrere Sensoren innerhalb eines Gehäuses, außerhalb eines Gehäuses, Seite an Seite angeordnet und/oder aufeinander gestapelt angeordnet sein. Ferner kann jede Firmware in einem Speicher gespeichert sein, der auf demselben Chip integriert ist wie der entsprechende Sensor.
  • Ein zweites Beispiel von diversen Additions-Algorithmen wird bereitgestellt: FW1) A = B + C Gleichung 2a FW2) A = (B AND AAAAh) + (C AND AAAAh) + (B AND 5555h) + (C AND 5555h) Gleichung 2b
  • Bei dem zweiten Beispiel einer diversen Addition repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Zusätzlich dazu sind ”AAAAh” und ”5555h” Masken (z. B. Dekonstruktionsmasken oder Maskenwerte), bei denen das ”h” anzeigt, dass der Wert in hexadezimalem Format repräsentiert ist (z. B, ”AAAA” oder ”5555”). Das ”AND” repräsentiert eine logische AND-Operation (UND-Operat ion).
  • Gleichung 2b kann ferner in einer allgemeinen Form repräsentiert sein wie Gleichung 2c: FW2') A = (B AND Y1Y2Y3Y4h) + (C AND Y1Y2Y3Y4h) + (B AND Z1Z2Z3Z4h) + (C AND Z1Z2Z3Z4h) Gleichung 2c
  • In Gleichung 2c beziehen sich Y1Y2Y3Y4 und Z1Z2Z3Z4 im Allgemeinen auf eine Folge aus Hexadezimalzahlen, die als Maske verwendet werden (d. h. Maskenwerte), wobei Y1Y2Y3Y4h + Z1Z2Z3Z4h = FFFFh, zum Beispiel. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein drittes Beispiel von diversen Additions-Algorithmen wird bereitgestellt: FW1) A = B + C Gleichung 3a FW2) A = B Gleichung 3b wiederhole, bis C = 0 A = A + 1 C = C – 1
  • Bei dem dritten Beispiel einer diversen Addition repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein viertes Beispiel von diversen Additions-Algorithmen wird bereitgestellt: FW1) A = B + C Gleichung 4a FW2) B1 = B + D; Gleichung 4b C1 = C – D; und A = B1 + C1
  • Bei dem vierten Beispiel einer diversen Addition repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Zusätzlich dazu kann D jegliche beliebige Zahl sein, die entweder fest ist oder sich bei jeder Berechnung ändert, und B1 und C1 sind Funktionsergebnisse. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein erstes Beispiel von diversen Multiplikations-Algorithmen wird bereitgestellt: FW1) A = B·C Gleichung 5a FW2) A = B·(C·alpha) + (B·beta)·C, wobei alpha + beta = 1 Gleichung 5b
  • Bei dem ersten Beispiel einer diversen Multiplikation repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Zusätzlich dazu sind die Werte von alpha und beta derart, dass die Summe von alpha und beta gleich 1 ist. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein zweites Beispiel von diversen Multiplikations-Algorithmen wird bereitgestellt: FW1) A = B·C Gleichung 6a FW2) A = 0 Gleichung 6b wiederhole, bis C = 0 A = A + B C = C – 1
  • Bei dem zweiten Beispiel einer diversen Multiplikation repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein drittes Beispiel von diversen Multiplikations-Algorithmen wird bereitgestellt: FW1) A = B·C Gleichung 7a FW2) A = ((B + C)2 – B2 – C2)/2 Gleichung 7b
  • Bei dem dritten Beispiel einer diversen Multiplikation repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein viertes Beispiel von diversen Multiplikations-Algorithmen wird bereitgestellt: FW1) A = B·C Gleichung 8a FW2) A = (B2 + C2 – (B – C)2)/2 Gleichung 8b
  • Bei dem vierten Beispiel einer diversen Multiplikation repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein fünftes Beispiel von diversen Multiplikations-Algorithmen wird bereitgestellt: FW1) A = B·C Gleichung 9a FW2) A = (B AND AAAAh)·(C AND AAAAh) + (B AND AAAAh)·(C AND 5555h) + (B AND 5555h) * (C AND AAAAh) + (B AND 5555h) * (C AND 5555h) Gleichung 9b
  • Gleichung 9b kann ferner in einer allgemeinen Form repräsentiert sein wie Gleichung 9c: FW2') A = (B AND Y1Y2Y3Y4h)·(C AND Y1Y2Y3Y4h) + (B AND Y1Y2Y3Y4h)·(C AND Z1Z2Z3Z4h) + (B AND Z1Z2Z3Z4h)·(C AND Y1Y2Y3Y4h) + (B AND Z1Z2Z3Z4h)·(C AND Z1Z2Z3Z4h), wobei Y1Y2Y3Y4h + Z1Z2Z3Z4h = FFFFh Gleichung 9c
  • Bei dem fünften Beispiel einer diversen Multiplikation repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Ferner sind die Maskenwerte ähnlich zu jenen, die im Hinblick auf das zweite Beispiel der diversen Addition beschrieben sind. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein sechstes Beispiel von diversen Multiplikations-Algorithmen wird bereitgestellt: FW1) A = B·C Gleichung 10a FW2) D1 = B + C; Gleichung 10b D2 = B – C; und A = [(D1·D1) – (D2·D2)]/4
  • Bei dem sechsten Beispiel einer diversen Multiplikation repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Ferner sind D1 und D2 Funktionsergebnisse. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein erstes Beispiel von diversen polynomischen Algorithmen unter Verwendung von Polynomen der zweiten Ordnung wird bereitgestellt: FW1) A = aX2 + bX + c Gleichung 11a FW2) A = (aX + b)·X + c Gleichung 11b
  • A ist ein Funktionsergebnis (z. B. ein Magnetfeldwert, Versatzwert, Verstärkungswert, etc.), X ist eine Ausgabe aus einem Sensor und a, b und c sind konstante Werte. Genauer gesagt kann X ein Kompensationssignal (z. B. Temperatur) zur Linearisierung sein, oder ein Messsignal, wenn zum Beispiel jegliche polynomische Korrektur einer Transferfunktion benötigt wird. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein zweites Beispiel von diversen polynomischen Algorithmen unter Verwendung von Polynomen der zweiten Ordnung wird bereitgestellt: FW1) A = aX2 + bX + c Gleichung 12a FW2) A = ((a·d)X2 + (b·d)X + c·d)/d Gleichung 12b
  • Zusätzlich zu den Symbolen, die in dem ersten Beispiel von diversen Polynomen beschrieben sind, kann d eine beliebige Zahl sein, die entweder fest ist oder sich mit jeder Berechnung ändert, oder eine binäre Bruchzahl, die in binären Systemen einfach zu berechnen ist. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein drittes Beispiel von diversen polynomischen Algorithmen unter Verwendung von Polynomen der dritten Ordnung wird bereitgestellt: FW1) A = aX3 + bX2 + cX + d Gleichung 13a FW2) A = [(aX + b)·X + c]·X + d Gleichung 13b
  • Bei dem dritten Beispiel von diversen Polynomen repräsentieren Symbole A, B und C Variablen, die auf ähnliche Weise im Hinblick auf das erste Beispiel einer diversen Addition beschrieben sind. Somit sind die Gleichungen mathematisch äquivalent.
  • Ein viertes Beispiel von diversen polynomischen Algorithmen unter Verwendung von Polynomen der dritten Ordnung wird bereitgestellt: FW1) A = aX3 + bX2 + cX + d Gleichung 14a FW2) A = ((a·e)X3 + (b·e)X2 + (c·e)X + d·e)/e Gleichung 14b
  • Zusätzlich zu den Symbolen, die bei dem ersten Beispiel von diversen Polynomen beschrieben sind, könnte d eine beliebige Zahl sein, die entweder fest ist oder sich mit jeder Berechnung ändert, oder eine binäre Bruchzahl, die in binären Systemen einfach zu berechnen ist. Zusätzlich dazu ist e eine weitere konstante Variable. Somit sind die Gleichungen mathematisch äquivalent.
  • Zusätzlich dazu kann bei jeglichen der obigen Beispiele ein erster Algorithmus einer Firmware FW1 oder FW2 implementiert werden und ein zweiter Algorithmus einer Firmware FW2 oder FW1 kann eine invertierte Implementierung des ersten Algorithmus sein. Alternativ, um eine diverse Implementierung zu erzeugen, können eine oder mehrere der Messungen (d. h. Messsignale) oder Ausgaben eines Sensors invertiert werden, bevor die Messung oder Ausgabe in Firmware verwendet wird. Zum Beispiel kann ein Messsignal in die Firmware FW1 eingegeben werden und das Inverse des Messsignals kann in die Firmware FW2 eingegeben werden. Alternativ kann ein erstes Messsignal in die Firmware FW1 eingegeben werden und ein Inverses eines anderen Messsignals kann in die Firmware FW2 eingegeben werden.
  • Somit verwenden bei einem oder mehreren Ausführungsbeispielen diverse FW (z. B. FW1 und FW2) Messungen derselben physikalischen Größe oder Größen (d. h. nicht invers) und bei einem anderen einen oder mehreren Ausführungsbeispielen verwendet diverse FW (z. B. FW1 und FW2) Messungen derselben physikalischen Größe oder Größen und einen Kanal mit einer inversen Polarität zu dem anderen Kanal (d. h. invers). Eine der Firmwaren kann dann inverse Funktionen verwenden (d. h. invers zu der anderen Firmware), um die entgegengesetzte Polarität beim Berechnen des Ergebnisses zu kompensieren.
  • Es wird darauf hingewiesen, dass ein erstes Ergebnis R1 einer ersten Firmware FW1 und ein zweites Ergebnis R2 einer zweiten Firmware FW2 analysiert werden können, um zu bestimmen, ob die Ergebnisse gleich zueinander sind (z. B. R1 = R2) oder kleiner sind als (oder kleiner sind als oder gleich sind zu) einer vorbestimmten Spanne oder Schwelle (z. B., |R1 – R2| < Spanne 1 oder |R1 + R2| < Spanne 2, wobei |”x”| den absoluten Wert von x anzeigt und Spanne 1 und Spanne 2 gleich oder unterschiedlich sein können). Es wird darauf hingewiesen, dass die Spanne oder Schwelle null oder ein anderer Wert sein kann.
  • Die diversen Firmwarecodes, wie beispielsweise die oben, können gemäß ihrer Fähigkeit klassifiziert werden, Rechenfehler zu detektieren, die durch systematische Hardwarefehler innerhalb der zwei identischen Prozessoren PROC1 und PROC2 induziert werden.
  • Deshalb sollten die folgenden Fakten über Prozessoren berücksichtigt werden. Ein Prozessor (z. B. PROC1 und PROC2) umfasst Steuerstrukturen und Datenpfadstrukturen, gezeigt in 3.
  • 3 zeigt ein Blockdiagramm eines Computersystems 30 mit einem Prozessor 32 (z. B. einer zentralen Verarbeitungseinheit (CPU)) in Kommunikation mit einem Speichersystem 34. Der Prozessor 32 umfasst ferner eine oder mehrere Steuerstrukturen 36 (z. B. eine Instruktionseinheit) und eine oder mehrere Datenpfadstrukturen 38 (z. B. eine Ausführungseinheit). Die Steuerpfadeinheit 36 kann Instruktionen abrufen und durch eine finite Zustandsmaschine (FSM; finite-state machine) interpretieren. Die Datenpfadeinheit 38 kann funktionale Einheiten und Register umfassen.
  • Gemäß 3 setzt sich eine Prozessorfunktion aus einem Steuerpfad und einem Datenpfad zusammen. Die Steuerstruktur(en) 36 ist(sind) verantwortlich für Firmwareprogrammfluss, Interpretation von Firmwarecodes und Initiierung von Rechenaktionen. Typische Elemente von Steuerstrukturen sein Programmzähler, Instruktionsregister, Codeinterprätationseinheiten, Microcode, Code-Abrufeinheiten, etc. Datenpfadstruktur(en) 38 sind verantwortlich für den Transport von Daten, Speicherung von Zwischendatenergebnissen und die Ausführung einer Basis-Logik und von mathematischen Operationen. Typische Elemente einer Datenpfadstruktur sind Akkumulatoren, Datenregister, Addierer, Multiplizierer, Schiebeeinheiten, etc.
  • Die vorgeschlagenen diversen Codes FW1, FW2 werden als besonders effektiv für die folgenden Kategorien von systematischen Ausfällen betrachtet, die in Tabelle 1 erwähnt werden.
    Effektivität eines Diverse-Firmware-Implementierungstyps für Fehlerdetektion
    Diverse Addition Diverse Multiplikation Diverse Polynome
    Steuer- oder Daten-Pfad Systematischer Ausfall-Modus des Prozessors PROC (betreffend sowohl PROC1 als auch PROC2) Effektiv Effektiv Effektiv
    Steuer-Pfad Unbeabsichtigte Ausführungssequenz, Auslassen eines Befehls, zusätzlicher Befehl (Programmzähler, ROM-Schnittstelle – blockiert, offen, Oszillation) Effektiv Effektiv Effektiv
    Steuer-Pfad Fehler bei der Befehlsinterprätation (Steuerlogik, ROM-Schnittstelle – blockiert, offen, Oszillation) Effektiv Effektiv Effektiv
    Datenpfad Falsche Ergebnisse aufgrund eines logischen oder arithmetischen Fehlers (DSP oder Prozessor), Arbeitsregister, Beschleunigerhardware – blockiert, offen, Oszillation) Effektiv Effektiv Effektiv
    Tabelle 1
  • Ein systematischer Ausfall kann einen Spezifikationsfehler oder ein Entwurfsproblem innerhalb des Systems anzeigen, was einen Ausfall verursacht. Mit der Verwendung von zwei diversen FWs besteht eine hohe Wahrscheinlichkeit, dass in dem Fall eines systematischen Fehlers beide FWs fehlerhafte Ergebnisse im Wesentlichen gleichzeitig erzeugen. Daher kann ein systematischer Fehler detektiert werden durch Bestimmen, dass die Ergebnisse, die aus der Firmware ausgegeben werden, inkorrekt sind, und dass diese fehlerhaften Ergebnisse im Wesentlichen gleichzeitig detektiert wurden.
  • Eine unbeabsichtigte Ausführungssequenz, Auslassen eines Befehls oder ein zusätzlicher Befehl können anzeigen, dass einer oder mehrere der Prozessoren unterschiedliche Befehle ausgeführt haben, als erwartet wurde, oder einen zusätzlichen Befehl in die Operation eingefügt haben (z. B. einen Befehl zwei Mal ausgeführt haben), was zu einem inkorrekten Ergebnis führt.
  • Ein Fehler bei der Befehlsinterprätation kann anzeigen, dass einer oder mehrere der Prozessoren möglicherweise einen Operationsbefehl oder eine Instruktion inkorrekt interpretiert haben, was zu einer falschen Ausführung eines Befehls führte.
  • Ein falsches Ergebnis aufgrund eines logischen oder arithmetischen Fehlers kann anzeigen, dass einer oder mehrere der Prozessoren ein falsches Ergebnis (z. B. Zwischenergebnis) während der Operation der Firmware erzeugt haben, was einen unterschiedlichen Effekt (d. h. ein falsches Endergebnis) verursacht hat.
  • Die vorgeschlagenen diversen Codes FW1, FW2 sind ferner effektiv für die Detektion von zufälligen Hardwarefehlern. Zufällige Hardwarefehler folgen einer Wahrscheinlichkeitsverteilung und sind immer vorhanden aber sind nicht systematisch. Sie können in harte Fehler und weiche Fehler unterteilt werden. Beispiele sind in Tabelle 2 gegeben.
    Effektivitäteines Diverse-Firmware-Implementierungstyps für Fehlerdetektion
    Diverse Addition Diverse Multiplikation Diverse Polynome
    Steuer-Pfad oder Daten-Pfad Zufalls-Ausfall-Modus von Prozessoren PROC1 und/oder PROC2) Effektiv Effektiv Effektiv
    Speicher Prozessor-RAM-Fehler (weiche Fehler verursacht durch Alpha-Partikel, Strahlung und Rauschen, zum Beispiel) Effektiv Effektiv Effektiv
    Tabelle 2
  • Prozessor-RAM-Fehler können einen oder mehrere Ausfälle in einem Speicher anzeigen, die einen unterschiedlichen Effekt bei der Ausführung von einer oder mehreren der Firmware FW1, FW2 verursachen können.
  • Im Hinblick auf Tabelle 1 und 2 kann jede Firmware FW1, FW2 einen oder mehrere Typen von Algorithmen umfassen (z. B. Addition, Multiplikation, Polynome, etc.), derart, dass ein Algorithmus in einer Firmware mit einem anderen, mathematisch äquivalenten aber diversen Algorithmus in einer anderen Firmware gepaart oder verknüpft ist, und ein Typ eines Algorithmus durch einen oder mehrere der Prozessoren PROC1, PROC2 oder eine Steuereinheitbasierend auf dem Typ des Fehlers/Ausfalls ausgewählt werden kann, der getestet werden soll.
  • Zeitliche Diversität von Software und/oder Firmware kann ebenfalls bereitgestellt werden. Zum Beispiel wäre eine zusätzliche Möglichkeit das Implementieren einer zeitlich diversen Software/Firmware-Verarbeitung. Als charakteristisches Merkmal können diverse (unterschiedliche) Abtast- und Verarbeitungs-Zeiten für jede Firmware FW1 und FW2 ausgewählt und kombiniert werden, um zwei diverse Ergebnisse mit dem identischen durchschnittlichen Alter zu bilden. Das Ergebnis-Alter ist als die Zeitverzögerung zwischen einer Abtastzeit und der Ergebnis-Ausgabezeit definiert. Somit kann eine Abtastzeit einer Messung und Verarbeitungszeit für Firmware FW1 gemäß einem ersten durchschnittlichen Alter ausgewählt werden, und eine Abtastzeit einer Messung und Verarbeitungszeit für Firmware FW2 kann gemäß einem zweiten durchschnittlichen Alter ausgewählt werden, sodass das erste durchschnittliche Alter und das zweite durchschnittliche Alter identisch sind. Eine oder mehrere der Abtastzeiten und Verarbeitungszeiten für jede Firmware können gleich oder unterschiedlich sein, solange das durchschnittliche Alter für jede Firmware identisch ist. Somit sind die erwarteten Ergebnisse der Firmware FW1 und FW2, die Zeit-Diversität implementieren, gleich oder sind innerhalb einer vorbestimmten Spanne, wie oben beschrieben ist, und die Ergebnisse jeder Firmware können analysiert werden, um zu bestimmen, ob ein Fehler existiert oder nicht.
  • Zusätzlich dazu können zwei oder mehr Mess-Durchläufe für jede Firmware FW1, FW2 derart ausgeführt werden, dass das kombinierte durchschnittliche Alter von FW1 für jeden Mess-Durchlauf identisch zu dem kombinierten, durchschnittlichen Alter von FW2 für jeden Mess-Durchlauf ist. Somit ist das durchschnittliche Alter von zwei oder mehr Mess-Abtastwerten in FW1 identisch zu dem durchschnittlichen Alter von zwei oder mehr Mess-Abtastwerten in FW2, sodass die erwarteten Ergebnisse von FW1 und FW2 dieselben oder innerhalb einer vorbestimmten Spanne sind, wie oben beschrieben ist.
  • Somit, als Beispiel, umfasst eine erste Messung eine Mehrzahl von ersten Messungen, abgetastet bei einer Mehrzahl von ersten Abtastzeiten, die eine erste durchschnittliche Abtastzeit definieren, wenn sie miteinander gemittelt werden, und die zweite Messung umfasst eine Mehrzahl von zweiten Messungen, abgetastet bei einer Mehrzahl von zweiten Abtastzeiten, die eine zweite durchschnittliche Abtastzeit definieren, die gleich zu der ersten durchschnittlichen Abtastzeit ist. Ein erster Prozessor wird durch Ausführen der Firmware FW1 konfiguriert, um einen ersten Mess-Durchschnitt der Mehrzahl von ersten Messungen zu berechnen und um ein erstes Ergebnisses basierend auf dem ersten Mess-Durchschnitt zu berechnen. Auf ähnliche Weise wird ein zweiter Prozessor durch Ausführen der Firmware FW2 konfiguriert, um den zweiten Mess-Durchschnitts der Mehrzahl von zweiten Messungen zu berechnen und um ein zweites Ergebnis basierend auf dem zweiten Mess-Durchschnitt zu berechnen. Das erste und das zweite Ergebnis werden verglichen, um zu bestimmen, ob ein Fehler existiert oder ob beide Prozessoren und das System insgesamt normal arbeiten.
  • Durch Verwenden zeitlicher Diversität können redundante Sensorkanäle, die dieselbe physikalische Größe bewerten (z. B. Magnetfeld, Temperatur, Druck, Belastung, etc.) gemessen und überwacht werden. Ferner können durch Verwenden zeitlicher Diversität an redundanten Sensorkanälen Messungen entweder durch die Hardware oder Software zur gleichen Abtastzeit (z. B. um dasselbe Signal-Alter beider Kanäle zu erhalten) von beiden Kanälen ausgelöst werden, oder bei unterschiedlichen Zeitschlitzen (d. h. unterschiedlichen Abtastzeiten), um sicherzustellen, dass die gemessenen Größen nicht durch dieselbe Störung beeinträchtigt werden. D. h., eine Störung, die einen oder mehrere Sensorkanäle beeinträchtigt, kann zu einem Zeitpunkt vorliegen, möglicherweise aber nicht zu einem anderen Zeitpunkt.
  • Die abgetasteten Werte können durch die Firmware und/oder Software zu unterschiedlichen Zeitschlitzen verarbeitet werden (d. h. zu unterschiedlichen Verarbeitungszeiten), entweder geplant durch Hardware, Firmware und/oder Software, um sicherzustellen, dass im Fall von Störungen die Firmware/Software-Verarbeitung der redundanten Sensorkanäle nicht auf dieselbe Weise bewirkt wird.
  • Das Verarbeiten von abgetasteten Werten kann eine oder mehrere der folgenden Operationen umfassen: Berechnen von Kompensations-Algorithmen im Hinblick zum Beispiel auf Temperatur- und Belastungs-Effekte (oder einen anderen Effekt einer physikalischen Größe), Ausführen eines Sicherheitsmechanismus für jeden redundanten Sensorkanal (d. h. Ausführen von Bereichs-Prüfungen der Eingangssignale, etc.), und Kreuzprüfen zwischen verarbeiteten Messdaten jedes Sensorkanals (z. B. Vergleich von Temperatur oder anderer physikalischer Größe, Plausibilitätsprüfungen, etc.). Zusätzlich dazu können zusätzliche Informationen, übertragen durch ein digitales Protokoll (z. B. Peripheral Sensor Interface 5 (PSI5; Peripheriesensorschnittstelle 5), Short Pulse Width Modulation (PWM) Code (SPC) protocol; Kurz-Pulsbreiten-Modulations-Code-Protokoll, etc.) mit den Messdaten gehandhabt werden (z. B. Roll-Zähler, Zeitstempel, etc.)
  • 4a und 4b zeigen ein Beispiel einer Planungs-Implementierung einer zeitlich diversen Firmware- und/oder Software-Implementierung.
  • Genauer gesagt zeigt 4a eine Planungs-Implementierung für Firmware FW1 derart, dass ein Algorithmus in einem ersten Zeitschlitz 41a ausgeführt wird, ein eingebauter Selbsttest (BIST = Built-In Self-Test) in einem zweiten Zeitschlitz 42a ausgeführt wird, eine zyklische EEPROM-Redundanzprüfung (CRC; cyclic redundancy check) und ein Sicherheitstest in einem dritten Zeitschlitz 43a ausgeführt wird und ein Testmodus in einem vierten Zeitschlitz 44a ausgeführt wird.
  • Auf ähnliche Weise zeigt 4b eine Planungs-Implementierung für Firmware FW2 mit vier Zeitschlitzen mit einer unterschiedlichen Verfahrens-Implementierung (z. B. verschoben um zumindest einen Zeitschlitz) zu FW1. Zum Beispiel wird ein Testmodus in einem ersten Zeitschlitz 41b ausgeführt, ein Algorithmus wird ein einem zweiten Zeitschlitz 42b ausgeführt, ein eingebauter Selbsttest (BIST = Built-In Self-Test) wird in einem dritten Zeitschlitz 43b ausgeführt, eine zyklische EEPROM-Redundanzprüfung (CRC; cyclic redundancy check) und ein Sicherheitstest werden in einem vierten Zeitschlitz 44b ausgeführt.
  • Im Hinblick auf das oben genannte kann eine diverse Zeit- und/oder Firmware-Implementierung insbesondere wertvoll im Fall von Multikanalsensoren sein (d. h. Sensoren mit zumindest zwei Kanälen). Ein direkter 1:1-Vergleich zwischen den Ergebnissen jedes Kanals (wie bei der codierten Verarbeitung) ist möglicherweise nicht durchfünhrbar, da jeder Kanal eine gewisse Mess-Toleranz aufweist, die zu der Tatsache führt, dass die Ergebniszahlen nicht identisch sind. Jeder Kanal kann jedoch mit einem der identischen Prozessoren verbunden sein, die eine diverse Firmware und/oder Zeit-Diversität aufweisen, und die Ergebnisse, die derart verglichen werden, dass eine Differenz zwischen den Ergebnissen mit einer vorbestimmten Spannen-Toleranz oder Schwellen-Toleranz verglichen wird, um zu bestimmen, ob ein Fehler vorliegt oder nicht, wie oben beschrieben ist.
  • Dementsprechend kann eine diverse, redundante Sicherheitsfunktion basierend auf einer identischen Hardware-Implementierung von Mikroprozessoren realisiert werden. Dies kann eine fehleranfällige Implementierung der identischen Funktionalität zwei Mal in Hardware vermeiden. Die Verifizierungsqualität der Hardware wird für einen gegebenen Verifizierungsaufwand bedeutend erhöht. Ferner kann das Risiko, dass sich selten auftretende Fälle auf unbeabsichtigte Weise unterschiedlich verhalten, reduziert werden.
  • 5 stellt ein Flussdiagramm eines beispielhaften Fehlerdetektionsverfahrens 500 dar. Das Verfahren umfasst das Ausführen einer ersten diversen Firmware durch einen ersten Prozessor unter Verwendung einer ersten Messung als Eingabe und das Erzeugen eines ersten Ergebnisses (Operation 501) und das Ausführen einer zweiten diversen Firmware durch einen zweiten Prozessor identisch zu dem ersten Prozessor unter Verwendung einer zweiten Messung als Eingabe und das Erzeugen eines zweiten Ergebnisses (Operation 502). Das Verfahren 500 kann ferner das Messen der ersten und der zweiten Messung durch einen oder mehrere Sensoren und das Empfangen, durch den ersten und zweiten Prozessor, der entsprechenden ersten und zweiten Messung, umfassen. Das Verfahren 500 umfasst ferner das Vergleichen, durch eine Vergleichskomponente, des ersten und des zweiten Ergebnisses (Operation 503) und das Bestimmen, durch eine Bestimmungskomponente, ob ein Fehler detektiert wird, basierend auf dem Vergleichsergebnis (Operation 504). Wenn kein Fehler detektiert wird, endet der Prozess (Operation 505). Zusätzlich dazu, wenn kein Fehler detektiert wird, kann ein normales Bedingungs-Detektionssignal durch die Bestimmungskomponente ausgegeben werden. Ferner kann der Prozess neu starten für ein weiteres (kontinuierliches) Testen. Wenn ein Fehler detektiert wird, wird ein Fehlerdetektionssignal durch die Bestimmungskomponente ausgegeben (Operation 506). Ferner kann der Prozess neu starten für ein weiteres (kontinuierliches) Testen.
  • Obwohl einige Aspekte im den Kontext einer Vorrichtung beschrieben wurden, ist es offensichtlich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens repräsentieren, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschrittes entspricht. Analog dazu repräsentieren Aspekte, die in dem Kontext eines Verfahrensschrittes beschrieben sind, auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung. Einige oder alle der Verfahrensschritte können durch eine (oder unter Verwendung einer) Hardwarevorrichtung ausgeführt werden, wie z. B. einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung. Bei einigen Ausführungsbeispielen können einige einzelne oder mehrere der Verfahrensschritte durch eine solche Vorrichtung ausgeführt werden.
  • Im Hinblick auf die verschiedenen Funktionen, die durch die oben beschriebenen Komponenten oder Strukturen ausgeführt werden (Anordnungen, Vorrichtungen, Schaltungen, Systeme, etc.) sollen die Ausdrücke (einschließlich einer Bezugnahme auf ein „Mittel”), die verwendet werden, um solche Komponenten zu beschreiben, außer anderweitig angegeben, jeglicher Komponente oder Struktur entsprechen, die die spezifizierte Funktion der beschriebenen Komponente ausführt (z. B. die funktional äquivalent ist), obwohl sie strukturell nicht äquivalent zu der offenbarten Struktur ist, die die Funktion bei den hierin dargestellten exemplarischen Implementierungen der Erfindung ausführt.
  • Abhängig von bestimmten Implementierungsanforderungen können hierin bereitgestellte Ausführungsbeispiele in Hardware oder Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums ausgeführt werden, z. B. einer Diskette, DVD, einer Blue-Ray, einer CD, mit einem ROM, einem PROM, einem EPROM, einem EEPROM oder einem FLASH-Speicher mit elektronisch lesbaren Steuerungssignalen, die darauf gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenarbeiten (oder in der Lage sind, damit zusammenzuarbeiten), dass das entsprechende Verfahren ausgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
  • Die oben beschriebenen exemplarischen Ausführungsbeispiele sind ausschließlich darstellend. Es wird darauf hingewiesen, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Details für andere Fachleute auf dem Gebiet offensichtlich sind. Es ist daher die Absicht, dass diese nur durch den Schutzbereich der anhängigen Patentansprüche und nicht durch die spezifischen Details eingeschränkt sind, die durch die Beschreibung und Erklärung der Ausführungsbeispiele hierin präsentiert werden.

Claims (25)

  1. Ein Fehlerdetektionssystem, umfassend: einen ersten Prozessor, der ausgebildet ist, um eine erste Messung zu empfangen, eine erste Firmware basierend auf der ersten Messung auszuführen, und ein erstes Ergebnis der ausgeführten ersten Firmware auszugeben; und einen zweiten Prozessor, der identisch zu dem ersten Prozessor ist und ausgebildet ist, um eine zweite Messung zu empfangen, eine zweite Firmware basierend auf der zweiten Messung auszuführen, und ein zweites Ergebnis der ausgeführten zweiten Firmware auszugeben; wobei die erste Firmware und die zweite Firmware eine nominale Funktion auf diverse Weise bereitstellen, zum Berechnen des ersten Ergebnisses und/oder des zweiten Ergebnisses, derart, dass erwartet wird, dass das erste Ergebnis und das zweite Ergebnis innerhalb einer vorbestimmten Spanne sind.
  2. Das Fehlerdetektionssystem gemäß Anspruch 1, wobei das erste Ergebnis und das zweite Ergebnis zumindest eines erfüllen aus |R1 – R2| < PM und |R1 + R2| < PM, wobei R1 das erste Ergebnis ist, R2 das zweite Ergebnis ist und PM die vorbestimmte Spanne ist.
  3. Das Fehlerdetektionssystem gemäß Anspruch 1 oder 2, wobei die erste Messung und die zweite Messung Messungen einer gleichen physikalischen Größe sind.
  4. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, ferner umfassend: einen dritten Prozessor, der ausgebildet ist zum Vergleichen des ersten Ergebnisses mit dem zweiten Ergebnis, um basierend auf einem Vergleichsergebnis und der vorbestimmten Spanne zu bestimmen, ob ein Fehler existiert.
  5. Das Fehlerdetektionssystem gemäß Anspruch 4, wobei der dritte Prozessor bestimmt, dass der Fehler existiert, wenn die vorbestimmte Spanne überschritten wird, basierend zumindest auf einem aus |R1 – R2| < PM und |R1 + R2| < PM, wobei R1 das erste Ergebnis ist, R2 das zweite Ergebnis ist und PM die vorbestimmte Spanne ist.
  6. Das Fehlerdetektionssystem gemäß Anspruch 4 oder 5, ferner umfassend eine elektronische Steuereinheit (ECU), die den dritten Prozessor umfasst.
  7. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, ferner umfassend: eine erste Vergleichskomponente, die ausgebildet ist, um das erste Ergebnis mit dem zweiten Ergebnis zu vergleichen und ein Vergleichsergebnis auszugeben; und eine zweite Vergleichskomponente, die ausgebildet ist, um das Vergleichsergebnis zu empfangen und basierend auf dem Vergleichsergebnis und der vorbestimmten Spanne zu bestimmen, ob ein Fehler existiert.
  8. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, wobei die erste Firmware und die zweite Firmware diverse, mathematisch äquivalente Algorithmen sind.
  9. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, wobei der erste Prozessor und der zweite Prozessor in einen einzelnen Siliziumchip integriert sind.
  10. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, ferner umfassend: eine integrierte Schaltung, umfassend: den ersten Prozessor; den zweiten Prozessor; und einen Speicher, der ausgebildet ist, um die erste Firmware und die zweite Firmware zu speichern, und der elektrisch mit dem ersten Prozessor und dem zweiten Prozessor verbunden ist.
  11. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, ferner umfassend: eine integrierte Schaltung, umfassend: den ersten Prozessor; den zweiten Prozessor; einen ersten Speicher, der ausgebildet ist, um die erste Firmware zu speichern und der elektrisch mit dem ersten Prozessor verbunden ist; und einen zweiten Speicher, der ausgebildet ist, um die zweite Firmware zu speichern und der elektrisch mit dem zweiten Prozessor verbunden ist, wobei der zweite Speicher getrennt von dem ersten Speicher ist.
  12. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, ferner umfassend: einen Sensor umfassend einen ersten Sensorkanal und einen zweiten Sensorkanal, wobei der erste Prozessor ausgebildet ist, um die erste Messung von dem ersten Sensorkanal zu empfangen, und der zweite Prozessor ausgebildet ist, um die zweite Messung von dem zweiten Sensorkanal zu empfangen.
  13. Das Fehlerdetektionssystem gemäß Anspruch 12, wobei der Sensor ein Magnetfeldsensor, ein Positionssensor, ein Geschwindigkeitssensor, ein Beschleunigungssensor, ein Drucksensor, ein Temperatursensor oder ein Belastungssensor ist.
  14. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, ferner umfassend: einen ersten Sensor, der ausgebildet ist, um die erste Messung zu messen und die erste Messung an den ersten Prozessor auszugeben; und einen zweiten Sensor, der ausgebildet ist, um die zweite Messung zu messen und die zweite Messung an den zweiten Prozessor auszugeben.
  15. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, wobei die erste Firmware und die zweite Firmware miteinander verknüpft sind, und der erste Prozessor die erste Firmware aus einer Mehrzahl von Firmware auswählt, die in zumindest einem Speicher gespeichert ist, basierend auf einem Typ eines Fehlers, der detektiert werden soll, derart, dass der erste Prozessor die erste Firmware ausführt und der zweite Prozessor die zweite Firmware ausführt, die mit der ersten Firmware verknüpft ist.
  16. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, wobei eine Abtastzeit der ersten Messung und eine Abtastzeit der zweiten Messung dieselben sind.
  17. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, wobei eine Verarbeitungszeit der ersten Firmware und eine Verarbeitungszeit der zweiten Firmware unterschiedlich sind.
  18. Das Fehlerdetektionssystem gemäß einem der vorangehenden Ansprüche, wobei die erste Messung eine Mehrzahl von ersten Messungen umfasst, abgetastet bei einer Mehrzahl von ersten Abtastzeiten, die eine erste durchschnittliche Abtastzeit definieren, die zweite Messung eine Mehrzahl von zweiten Messungen umfasst, abgetastet bei einer Mehrzahl von zweiten Abtastzeiten, die eine zweite durchschnittliche Abtastzeit definieren, die gleich zu der ersten durchschnittlichen Abtastzeit ist, der erste Prozessor durch Ausführen der ersten Firmware konfiguriert wird, um einen ersten Mess-Durchschnitt der Mehrzahl von ersten Messungen zu berechnen und um das erste Ergebnis basierend auf dem ersten Mess-Durchschnitt zu berechnen, und der zweite Prozessor durch Ausführen der zweiten Firmware konfiguriert wird, um den zweiten Mess-Durchschnitt der Mehrzahl von zweiten Messungen zu berechnen und um das zweite Ergebnis basierend auf dem zweiten Mess-Durchschnitt zu berechnen.
  19. Ein Fehlerdetektionsverfahren, umfassend: Ausführen einer ersten Firmware durch einen ersten Prozessor, umfassend das Empfangen einer ersten Messung, Ausführen eines ersten Algorithmus basierend auf der ersten Messung und Ausgeben eines ersten Ergebnisses des ausgeführten ersten Algorithmus; und Ausführen einer zweiten Firmware durch einen zweiten Prozessor, der identisch zu dem ersten Prozessor ist, umfassend das Empfangen einer zweiten Messung, Ausführen eines zweiten Algorithmus basierend auf der zweiten Messung und Ausgeben eines zweiten Ergebnisses des ausgeführten, zweiten Algorithmus; wobei die erste Firmware und die zweite Firmware eine gleiche nominale Funktion auf diverse Weise bereitstellen, zum Berechnen des ersten Ergebnisses und/oder des zweiten Ergebnisses, derart, dass erwartet wird, dass das erste Ergebnis und das zweite Ergebnis innerhalb einer vorbestimmten Spanne sind.
  20. Das Fehlerdetektionsverfahren gemäß Anspruch 19, ferner umfassend: Vergleichen des ersten Ergebnisses mit dem zweiten Ergebnis und Ausgeben eines Vergleichsergebnisses; Bestimmen, ob ein Fehler existiert, basierend auf dem Vergleichsergebnis und der vorbestimmten Spanne; und Ausgeben eines Fehlerdetektionssignals auf eine Bedingung hin, dass der Fehler detektiert wird.
  21. Das Fehlerdetektionsverfahren gemäß Anspruch 19 oder 20, ferner umfassend: Bestimmen, dass ein Fehler existiert, wenn die vorbestimmte Spanne überschritten wird, basierend zumindest auf einem aus |R1 – R2| < PM und |R1 + R2| < PM, wobei R1 das erste Ergebnis ist, R2 das zweite Ergebnis ist und PM die vorbestimmte Spanne ist; und Ausgeben eines Fehlerdetektionssignals auf eine Bedingung hin, dass der Fehler detektiert wird.
  22. Das Fehlerdetektionssystem gemäß einem der Ansprüche 19 bis 21, wobei der erste Algorithmus und der zweite Algorithmus diverse, mathematisch äquivalente Algorithmen sind.
  23. Das Fehlerdetektionsverfahren gemäß einem der Ansprüche 19 bis 22, wobei die erste Firmware und die zweite Firmware miteinander verknüpft sind, das Verfahren ferner umfassend: Auswählen der ersten Firmware aus einer Mehrzahl von Firmware, die in zumindest einem Speicher gespeichert ist, basierend auf einem Typ eines Fehlers, der detektiert werden soll, derart, dass der erste Prozessor die erste Firmware ausführt und der zweite Prozessor die zweite Firmware ausführt, die mit der ersten Firmware verknüpft ist.
  24. Das Fehlerdetektionsverfahren gemäß einem der Ansprüche 19 bis 23, wobei die erste Messung und die zweite Messung Messungen von einer gleichen physikalischen Größe sind.
  25. Das Fehlerdetektionsverfahren gemäß einem der Ansprüche 19 bis 24, ferner umfassend: Empfangen, durch den ersten Prozessor, einer Mehrzahl von ersten Messungen, abgetastet bei einer Mehrzahl von ersten Abtastzeiten, die eine erste durchschnittliche Abtastzeit definieren; Empfangen, durch den zweiten Prozessor, einer Mehrzahl von zweiten Messungen, abgetastet bei einer Mehrzahl von zweiten Abtastzeiten, die eine zweite durchschnittliche Abtastzeit definieren, die gleich zu der ersten durchschnittlichen Abtastzeit ist; Ausführen der ersten Firmware durch den ersten Prozessor, umfassend das Berechnen eines ersten Mess-Durchschnitts der Mehrzahl von ersten Messungen und Berechnen des ersten Ergebnisses basierend auf dem ersten Mess-Durchschnitt; und Ausführen der zweiten Firmware durch den zweiten Prozessor umfassend das Berechnen eines zweiten Mess-Durchschnitts der Mehrzahl von zweiten Messungen und Berechnen des zweiten Ergebnisses basierend auf dem zweiten Mess-Durchschnitt.
DE102017114348.3A 2016-07-12 2017-06-28 Diverse, integrierte verarbeitung unter verwendung von prozessoren und diverser firmware Pending DE102017114348A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/208,072 US10042693B2 (en) 2016-07-12 2016-07-12 Diverse integrated processing using processors and diverse firmware
US15/208,072 2016-07-12

Publications (1)

Publication Number Publication Date
DE102017114348A1 true DE102017114348A1 (de) 2018-01-18

Family

ID=60782544

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017114348.3A Pending DE102017114348A1 (de) 2016-07-12 2017-06-28 Diverse, integrierte verarbeitung unter verwendung von prozessoren und diverser firmware

Country Status (3)

Country Link
US (4) US10042693B2 (de)
CN (1) CN107607141B (de)
DE (1) DE102017114348A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017123615B4 (de) 2017-10-11 2022-11-24 Bachmann Gmbh Konfigurierbares Sicherheitsmodul zur Erfassung digitaler oder analoger Eingangs- oder Ausgangssignale

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3673401A4 (de) * 2017-08-22 2021-04-14 Absolute Software Corporation Prüfung der firmware-integrität unter verwendung von silbermessungen
KR102066219B1 (ko) 2018-02-05 2020-01-14 주식회사 만도 리던던트 구조 기반의 차량 제어 장치 및 방법
CN108844570B (zh) * 2018-07-09 2020-04-24 厦门能控自动化科技有限公司 一种温湿度传感器异常检测方法
KR102491386B1 (ko) * 2018-12-27 2023-01-26 삼성전자주식회사 전자 장치 및 그 제어 방법
FR3093829B1 (fr) * 2019-03-12 2021-02-26 Safran Aircraft Engines Localisation de panne dans un système d’acquisition redondant
US11378934B2 (en) * 2019-09-09 2022-07-05 Baker Hughes Oilfield Operations Llc Shadow function for protection monitoring systems
US11360846B2 (en) * 2019-09-27 2022-06-14 Intel Corporation Two die system on chip (SoC) for providing hardware fault tolerance (HFT) for a paired SoC

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771178A (en) * 1995-06-12 1998-06-23 Scully Signal Company Fail-safe fluid transfer controller
JPH11154099A (ja) * 1997-11-21 1999-06-08 Mitsubishi Electric Corp データ処理装置
US6345369B1 (en) * 1998-11-12 2002-02-05 International Business Machines Corporation Environmental and power error handling extension and analysis for systems with redundant components
US6826653B2 (en) * 2002-02-06 2004-11-30 Hewlett-Packard Development Company, L.P. Block data mover adapted to contain faults in a partitioned multiprocessor system
US6983398B2 (en) * 2002-04-24 2006-01-03 Hewlett-Packard Development Company, L.P. Testing processors
EP1398700A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten
WO2005093607A1 (en) * 2004-02-27 2005-10-06 Ebay Inc. Method and system to monitor a diverse heterogeneous application environment
JP4849606B2 (ja) * 2006-04-28 2012-01-11 株式会社日立製作所 制御フロー誤り検出方法、データ処理装置、及びコンパイラ
US8935569B2 (en) * 2010-03-23 2015-01-13 Continental Teves Ag & Co. Ohg Control computer system, method for controlling a control computer system, and use of a control computer system
DE102011086530A1 (de) * 2010-11-19 2012-05-24 Continental Teves Ag & Co. Ohg Mikroprozessorsystem mit fehlertoleranter Architektur
US8559442B2 (en) * 2011-07-22 2013-10-15 Cisco Technology, Inc. Diverse path forwarding through trial and error
WO2014121817A1 (en) * 2013-02-05 2014-08-14 Abb Technology Ltd Software diversity for industrial control systems
DE102014103556B4 (de) * 2013-03-15 2020-06-18 Infineon Technologies Ag Sensor-Selbstdiagnose unter Einsatz mehrerer Signalwege
WO2014204437A2 (en) * 2013-06-18 2014-12-24 Empire Technology Development Llc Tracking core-level instruction set capabilities in a chip multiprocessor
US9747183B2 (en) * 2013-12-31 2017-08-29 Ciena Corporation Method and system for intelligent distributed health monitoring in switching system equipment
US9785801B2 (en) * 2014-06-27 2017-10-10 Intel Corporation Management of authenticated variables
US9823983B2 (en) * 2014-09-25 2017-11-21 Nxp Usa, Inc. Electronic fault detection unit
US10445708B2 (en) * 2014-10-03 2019-10-15 Ecoatm, Llc System for electrically testing mobile devices at a consumer-operated kiosk, and associated devices and methods
TWI550620B (zh) * 2015-01-08 2016-09-21 矽統科技股份有限公司 記憶體儲存模組和感測器模組的整合架構

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017123615B4 (de) 2017-10-11 2022-11-24 Bachmann Gmbh Konfigurierbares Sicherheitsmodul zur Erfassung digitaler oder analoger Eingangs- oder Ausgangssignale

Also Published As

Publication number Publication date
US10042693B2 (en) 2018-08-07
US11669384B2 (en) 2023-06-06
CN107607141A (zh) 2018-01-19
US11188410B2 (en) 2021-11-30
US20200201702A1 (en) 2020-06-25
US10606686B2 (en) 2020-03-31
US20180322000A1 (en) 2018-11-08
US20220075680A1 (en) 2022-03-10
US20180018208A1 (en) 2018-01-18
CN107607141B (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
DE102017114348A1 (de) Diverse, integrierte verarbeitung unter verwendung von prozessoren und diverser firmware
DE102014103556B4 (de) Sensor-Selbstdiagnose unter Einsatz mehrerer Signalwege
DE102011083111B9 (de) Monolithisches Integrierte-Schaltung-Sensorsystem und Verfahren zum Bereitstellen eines Selbsttests in einem monolithischen Integrierte-Schaltung-Sensorsystem
DE102015102581A1 (de) Hocheffiziente Diagnoseverfahren für monolithische Sensorsysteme
DE102008033675B4 (de) Dualkernarchitektur eines Steuermoduls eines Motors
DE102015102853A1 (de) Magnetfeldsensor
DE102015103614B4 (de) Geschwindigkeitssensorvorrichtung, Geschwindigkeitssensorverfahren, elektronische Steuerereinheit und Steuerungsverfahren
DE202014103355U1 (de) Eine Vorrichtung und ein System zum Detektieren einer physikalischen Größe
DE102007042353A1 (de) Sicherheitsstrategie einer Koordination eines mechanischen und elektrischen Verriegelns für ein System einer aktiven Frontlenkung
US11281547B2 (en) Redundant processor architecture
DE102014114877B4 (de) Eine Vorrichtung und ein Verfahren zum Bereitstellen eines Ausgangsparameters und eines Sensorbauelements
DE102006005817A1 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
EP2187175B1 (de) Messumformer
DE102019214759B4 (de) Bereitstellen von Kompensationsparametern für integrierte Sensorschaltungen
DE102014219238A1 (de) Überstromerkennung im Stromsensor mit Hallsensor
DE102015218294A1 (de) Sensorsystem mit Sicherheitsmechanismus
DE102013214398A1 (de) Überwachung von redundanten Komponenten
EP1588380B1 (de) Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens
EP3073333A1 (de) Sicherheitsarchitektur für fehlersichere Systeme
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
DE102011053580A1 (de) Verfahren zum betrieb einer elektrischen hilfskraftlenkung
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE102017103418B4 (de) Verfahren zum Bestimmen von Informationen über eine Integrität von Signalverarbeitungskomponenten innerhalb eines Signalpfades, Signalverarbeitungsschaltung und elektronische Steuerungseinheit
EP3341843A1 (de) Verfahren und vorrichtung zum überwachen eines zustandes einer elektronischen schaltungseinheit eines fahrzeugs
DE102022115456A1 (de) Sicherheitsmechanismus für einen hochverfügbarkeitswinkelsensor

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence