DE102017204745A1 - Architektur und Vorrichtung für eine fortschrittliche Arbitration in integrierten Steuerungen - Google Patents

Architektur und Vorrichtung für eine fortschrittliche Arbitration in integrierten Steuerungen Download PDF

Info

Publication number
DE102017204745A1
DE102017204745A1 DE102017204745.3A DE102017204745A DE102017204745A1 DE 102017204745 A1 DE102017204745 A1 DE 102017204745A1 DE 102017204745 A DE102017204745 A DE 102017204745A DE 102017204745 A1 DE102017204745 A1 DE 102017204745A1
Authority
DE
Germany
Prior art keywords
path
function
executed
critical functions
functions
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
DE102017204745.3A
Other languages
English (en)
Inventor
Xiaofeng F. Song
Shige Wang
Xian Zhang
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102017204745A1 publication Critical patent/DE102017204745A1/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zur Arbitrierung von widersprüchlichen Ausgängen in einem redundanten Steuerungssystem. Die Ausführungsdaten einer Aufgabe, die von jeder Steuerung in dem redundanten Steuerungssystem ausgeführt wird, werden aufgezeichnet. Die Ausführungsdaten beinhalten einen anfänglichen Zeitstempel jedes Ausführungsstroms, die Identifizierung von kritischen Funktionen in jedem Ausführungsstrom und Parameterwerte, die von den kritischen Funktionen verwendet werden. Ein Pfad, der durch jede Steuerung ausgeführt wird, wird nur anhand der kritischen Funktionen identifiziert, die für jeden Ausführungsstrom ausgeführt werden. Die aufgezeichneten Ausführungsdaten jedes ausgeführten Pfades werden auf ein Arbitrierungsmodul angewendet. Ein Ausgabeergebnis von einem der jeweiligen Steuerungen, die durch ein Arbitrierungsmodul auf der Grundlage der aufgezeichneten Ausführungsdaten jedes ausgeführten Pfades auswählen. Der Ausgabeergebnis der ausgewählten Steuerung wird zur Weiterverarbeitung an ein nächstes Modul übermittelt.

Description

  • HINTERGRUND DER ERFINDUNG
  • Eine Ausführungsform betrifft eine Objekt-Arbitration für Steuersysteme.
  • Systeme, die Sicherheitsfunktionen bereitstellen, verwenden typischerweise redundante Steuerungen, um sicherzustellen, dass der Betrieb derartiger Funktionen im Falle eines Fehlers beibehalten werden kann. In Steuerungssystemen werden Daten an eine Steuerung oder ähnliche geliefert und Aufgaben werden auf der Grundlage der Eingangsdaten ausgeführt. Es ist nicht ungewöhnlich für mehrere Prozessoren oder einen Multicore-Prozessor eine gleiche Funktion für Redundanzzwecke auszuführen, die bei der Feststellung, ob ein Fehler in den Ausgabeergebnissen der ausgeführten Funktion vorhanden ist, helfen kann. Wenn jedoch widersprüchliche Ergebnisse von den verschiedenen Prozessoren oder dem Multicore-Prozessor ausgegeben werden, der dieselbe Funktion ausführt, wird eine Arbitrierung durchgeführt, um zu bestimmen, welche Ergebnisse verwendet werden sollen. Für Steuerungssysteme, die eine ungerade Anzahl von Prozessoren nutzen, gewinnt das Ergebnis, das der Mehrheit zugeordnet ist. Wenn jedoch eine gerade Anzahl von Prozessoren verwendet wird, dann ist eine Split-Entscheidung vorhanden. Systeme ohne robuste Arbitrierungstechnik können nur das Ergebnis des bearbeiteten Masters verwenden. Allerdings ist das Problem das Ergebnis aus dem bezeichneten Master könnte die Fehlersteuerung oder Kern sein, was zu fehlerhaften Steuerungsaktionen führt, als Ergebnis der Verwendung der Ergebnisse mit den Fehlern. Darüber hinaus kann die Menge an Informationen, die aus der verschiedenen redundanten Verarbeitung gewonnen und aufgezeichnet werden können, groß und rechnerisch intensiv sein.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Vorteil einer Ausführungsform ist die Auswahl eines Ausgabeergebnisses einer Funktion, die von einem Mehrfachprozessor oder von Mehrfachkernen in einem Prozessor in einem redundanten Steuerungssystem ausgeführt werden. Die hierin beschriebene Technik bestimmt nicht nur, welches Ausgangsergebnis für die weitere Verarbeitung ausgewählt werden soll, sondern reduziert effizient die Datenmenge, die nur durch die Aufnahme kritischer Funktionen und Parameterwerte verwendet wird, die von kritischen Funktionen verwendet werden. Jede ausgeführte Aufgabe wird durch einen jeweiligen Pfad identifiziert. Die Pfade werden als eine Funktion identifiziert, um kritische Funktionen zu identifizieren, die während der Aufgabe ausgeführt werden. Parameterwerte werden auch nur für die ausgeführten kritischen Funktionen aufgezeichnet. Zusätzlich wird ein Bitvektor erzeugt, der den Pfad eindeutig identifiziert, wobei jeder Bitvektor alle kritischen Funktionen beinhaltet. Ein entsprechendes Bit wird in jedem Bitvektor nur gesetzt, wenn die kritische Funktion im Pfad ausgeführt wird. Jedes entsprechende Bit weist ferner weitere Punkte auf eine für diese kritische Funktion aufgezeichnete Parameterwerte auf. Infolgedessen speichert und verwendet die hierin beschriebene Technik effizient nur minimale Informationen, die benötigt werden, um den Weg zu identifizieren und die gespeicherten Daten zu verwenden, um eine fundierte Entscheidung zu treffen. Zusätzlich verwendet ein Arbitrierungsmodul die aufgezeichneten Daten durch jede kritische Funktion jedes jeweiligen Pfades und wendet eine Logikfunktion oder eine Logiktabelle oder eine Kombination sowohl der Logiktabelle als auch einer Logikfunktion an, um zu bestimmen, welche Ausgangsergebnisse verwendet werden sollen.
  • Eine Ausführungsform sieht ein Verfahren zur Arbitrierung von widersprüchlichen Ausgängen in einem redundanten Steuersystem vor. Die Ausführungsdaten einer Aufgabe, die von jeder Steuerung in dem redundanten Steuerungssystem ausgeführt wird, werden aufgezeichnet. Die Ausführungsdaten beinhalten einen anfänglichen Zeitstempel jedes Ausführungsstroms, die Identifizierung von kritischen Funktionen in jedem Ausführungsstrom und Parameterwerte, die von den kritischen Funktionen verwendet werden. Ein Pfad, der durch jede Steuerung ausgeführt wird, wird nur anhand der kritischen Funktionen identifiziert, die für jeden Ausführungsstrom ausgeführt werden. Die aufgezeichneten Ausführungsdaten jedes ausgeführten Pfades werden auf ein Arbitrierungsmodul angewendet. Ein Ausgabeergebnis von einem der jeweiligen Steuerungen, die durch ein Arbitrierungsmodul auf der Grundlage der aufgezeichneten Ausführungsdaten jedes ausgeführten Pfades auswählen. Der Ausgabeergebnis der ausgewählten Steuerung wird zur Weiterverarbeitung an ein nächstes Modul übermittelt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 veranschaulicht ein architektonisches Blockdiagramm eines exemplarischen Steuerungssystems.
  • 2 veranschaulicht eine Datenstruktur und eine Architektur, die verwendet wird, um eine Ausführungssequenz jeder Aufgabe aufzuzeichnen.
  • 3 veranschaulicht ein erstes Beispiel von zwei Prozessoren, die jeweilige Funktionen ausführen und Ergebnisse entsprechend den Funktionen ausgeben.
  • 4 veranschaulicht ein erstes Beispiel von zwei Prozessoren, die jeweilige Funktionen über verschiedene Pfade ausführen, die unterschiedliche Ergebnisse liefern.
  • 5 veranschaulicht eine von dem Arbitrierungsmodul verwendete Datenstruktur.
  • 6 stellt exemplarische Pfade und ihren zugehörigen Pfad-Flag-Vektor dar.
  • 7 veranschaulicht eine exemplarische Struktur für eine Funktion und zugehörige Parameterwerte in einer exemplarischen Tabelle.
  • 8 veranschaulicht eine Zuordnung eines Pfadvektors zu einem zugehörigen Tabellenfunktionseintrag und zugehörigen Parameterwerten.
  • 9 veranschaulicht ein Flussdiagramm eines Prozesses zur Aufzeichnung von Ausführungspfaden und Werten.
  • 10 veranschaulicht eine exemplarische Struktur eines Arbitrierungsmoduls, das verwendet wird, um eine Arbitrierungsstrategie auszuführen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die nachfolgende ausführliche Beschreibung dient lediglich zum besseren Verständnis der Ausführungsformen und ist nicht dazu bestimmt, die Ausführungsformen des hierin beschriebenen Gegenstands oder die Anwendung und Verwendungen dieser erwähnten Ausführungsformen zu beschränken. Jeder Gebrauch des Wortes „exemplarisch” ist auszulegen als „dient als Beispiel, Sachverhalt oder zur Veranschaulichung”. Hierin beschriebene Anwendungen sind exemplarisch und nicht als bevorzugt oder vorteilhaft gegenüber anderen Anwendungen zu verstehen. Die Beschreibungen in diesem Dokument sind nicht als gebunden durch eine ausdrückliche oder implizierte Theorie zu verstehen, die vor dem vorstehenden Hintergrund, der ausführlichen Beschreibung oder den ausführlichen Beschreibungen, der Zusammenfassung oder der folgenden ausführlichen Beschreibung vorgestellt wird.
  • Die Techniken und Technologien können hierin in Bezug auf die funktionellen und/oder logischen Blockkomponenten beschrieben werden und unter Bezugnahme auf symbolische Darstellungen von Vorgängen, Programmverarbeitungen und Funktionen, die von verschiedenen Computerkomponenten oder Vorrichtungen durchgeführt werden können. Derartige Vorgänge, Programme und Funktionen werden manchmal als computerausgeführt, computerisiert, softwareimplementiert oder computerimplementiert bezeichnet. Es sollte beachtet werden, dass derartige Blockkomponenten aus einer beliebigen Anzahl von Hardware, Software und/oder Firmware-Komponenten aufgebaut sein können, die konfiguriert sind, um die spezifischen Funktionen auszuführen. So kann zum Beispiel eine Ausführungsform eines Systems oder einer Komponente verschiedene integrierte Schaltungskomponenten, (z. B. Speicherelemente, digitale Signalverarbeitungselemente, Logikelemente, Nachschlagetabellen oder dergleichen einsetzen, die eine Vielzahl von Funktionen unter der Steuerung eines oder mehrerer Mikroprozessoren oder anderer Steuervorrichtungen) durchführen können.
  • Wenn in Software oder Firmware implementiert, sind verschiedene Elemente der hierin beschriebenen Systeme im Wesentlichen die Codesegmente oder Anweisungen, die die verschiedenen Aufgaben ausführen. In bestimmten Ausführungsformen sind die Programm- oder Codesegmente auf einem materiellen, prozessorlesbaren Medium gespeichert, das jedes Medium sein kann, das Informationen speichern oder übertragen kann. Beispiele für nichtflüchtige, Prozessor-lesbare Medien beinhalten einen elektronischen Schaltkreis, einen Mikrocontroller, einen anwendungsspezifischen integrierten Schaltkreis (ASIC), ein Halbleiter-Speicherelement, einen ROM-Speicher, einen Flash-Speicher, einen löschbaren ROM-Speicher (EROM), eine Floppy-Disk, eine CD-ROM, eine optische Speicherplatte, eine Festplatte oder dergleichen.
  • Das hierin beschriebene System und die Methodik können verwendet werden, um Fehler in Steuerungen zu identifizieren, die Softwarefunktionen in Steuersystemen ausführen. Während der Ansatz und die Methodik bezüglich Steuerungen oder Prozessoren beschrieben werden, die in Fahrzeuganwendungen verwendet werden, erkennt der Fachmann, dass die Kraftfahrzeuganwendung lediglich exemplarisch ist, und dass die hierin offenbarten Konzepte auf jedes andere geeignete Kommunikationssystem angewendet werden können, wie beispielsweise Automatisierungsanwendungen, Fertigungs- und Montageanwendungen und Spiele.
  • Der Begriff „Fahrzeug”, wie hierin beschrieben, kann im weitesten Sinne so ausgelegt werden, dass er nicht nur ein Personenkraftfahrzeug beinhaltet, sondern alle anderen Fahrzeuge, ohne jedoch darauf beschränkt zu sein, Schienenverkehrssysteme, Flugzeuge, Geländesportfahrzeuge, Roboterfahrzeuge, Motorräder, LKW, Sportnutzfahrzeuge (SUVs), Wohnmobile (RVs), Wasserfahrzeuge, Luftfahrzeuge, landwirtschaftliche Fahrzeuge, und Baufahrzeuge.
  • In 1 ein architektonisches Blockschaltbild eines exemplarischen Steuerungssystems dargestellt. Derartige Steuersysteme werden oft zwei oder mehr Steuerungen verwenden, sodass, wenn ein Hardwarefehler bei einer primären Steuerung auftritt, dann mindestens eine Backup-Steuerung leicht aktiviert werden kann, um ein Merkmal des Steuersystems zu steuern oder eine Steuerung für eine begrenzte Funktionalität des Merkmals im Fehlerfall zu liefern. Wie in 1 gezeigt, wird eine Vielzahl von Sensoren für Daten bereitgestellt, die durch einen oder mehrere Sensoren 12 erhalten werden. Die Sensoren 12 erfassen den Statuszustand einer Vorrichtung, eines Subsystems oder eines Systems. Die erfassten Daten, die direkt von den Sensoren 12 zu einer Steuerung zur Verarbeitung erhalten werden oder wenn mehr als ein Sensor verwendet wird, können die Daten verschmolzen werden, wenn mehrere Sensoren 12 verwendet werden, um einen Zustand zu überwachen. Als Ergebnis kann ein Fusionsmodul 14 zum Verschmelzen der Sensorresultate verwendet werden, um die Daten in eine bessere Form zur Verarbeitung zu bringen.
  • Die Daten entweder vom Fusionsmodul 14 oder direkt von den Sensoren 12 werden in eine Steuerung 16 eingegeben. Die Steuerung 16 kann eine Vielzahl von Prozessoren oder einen Multicore-Prozessor beinhalten. Wie in 1 gezeigt, kann die Steuerung 16 einen ersten Prozessor 18 und einen zweiten Prozessor 20 zum Ausführen einer Funktion auf der Grundlage der von den mehreren Sensoren 12 oder dem Fusionsmodul 14 bereitgestellten Eingangsdaten beinhalten. Alternativ kann die Steuerung einen Duo-Core-Prozessor beinhalten, der einen ersten Kern und einen zweiten Kern zum Ausführen von Steuerungen verwendet, im Gegensatz zu einzelnen Prozessoren. Für die hierin verwendete Konsistenz wird der Begriff Prozessor verwendet; es sollte jedoch verstanden werden, dass der Begriff Prozessor mit einem Kern eines Prozessors vertauscht werden kann. Die Ausgabe vom ersten Prozessor 18 und dem zweiten Prozessor 20 wird in ein Arbitrierungsmodul 22 eingegeben, wobei die Ergebnisse miteinander verglichen werden. Wenn die Ergebnisse gleich sind, kann entweder ein Ergebnis verwendet werden. Wenn die Ergebnisse unterschiedlich sind, bestimmt das Arbitrierungsmodul, welche Ergebnisse verwendet werden.
  • 2 veranschaulicht eine Datenstruktur und eine Architektur, die verwendet wird, um eine Ausführungssequenz jeder Aufgabe aufzuzeichnen. So kann beispielsweise eine Aufgabe, die von verschiedenen Prozessoren ausgeführt wird, unterschiedliche Verarbeitungssequenzen verwenden (nachfolgend als Pfade bezeichnet). In 2 können drei verschiedene Pfade unter Verwendung unterschiedlicher Pfade aufgezeichnet werden, wobei Funktionen an jedem Knoten aufgezeichnet werden. Ein erster Pfad 24 kann Funktionen {a, b, d, g} beinhalten. Ein zweiter Pfad 26 kann {a, b, c, d, g} beinhalten. Ein dritter Pfad 28 kann {a, e, f, g} beinhalten. Für jede in einem Pfad ausgeführte Funktion werden während der Ausführung der Funktion Informationen erhalten. Zusätzliche Informationen, die erhalten werden können, beinhalten, sind aber nicht beschränkt auf Zeitstempel und Datenwerte von Funktionen, die nacheinander durch das Arbitrierungsmodul gespeichert und genutzt werden können. Jedoch wäre das Aufzeichnen von Zeitstempeln und der Wert von Funktionen an jedem Knoten für jeden Pfad ineffizient und rechnerisch intensiv für die Verarbeitung der aufgezeichneten Information. Daher werden kritische Funktionen zur Entwurfszeit identifiziert. Durch die Aufzeichnung von Informationen nur aus den kritischen Funktionen wird nicht nur die Datenmenge verringert, sondern die Pfade können leicht identifiziert werden, indem nur kritische Funktionen identifiziert werden, im Gegensatz zu Aufzeichnungsdaten für alle Funktionen.
  • Für jede kritische Funktion, die in einem Pfad identifiziert wird, der ausgeführt wird, wird ein Zeitstempel bei der Initiierung und Ausführung eines Pfades aufgezeichnet und Datenwerte werden für jede ausgeführte kritische Funktion aufgezeichnet. Der Datenwert kann einen oder mehrere Parameterwerte beinhalten. In 2 werden die Funktionen (a, c, f, g) als kritische Elemente identifiziert. Es wurde vorher beschrieben, dass drei realisierbare Pfade möglich sind. Da die Funktion (a) der Startknoten und die Funktion (g) der Endknoten ist, ist jede dieser jeweiligen Funktionen Teil eines jeden Pfades. Daher kann ein Vorhandensein einer jeweiligen Funktion oder eine Abwesenheit einer jeweiligen Funktion bestimmen, welcher Pfad eingeschlagen wird. Wenn zum Beispiel die Funktion (c) und die Funktion (f) auch als kritische Funktionen identifiziert werden, wird das Vorhandensein von beiden Funktionen (c) oder (f) oder das Fehlen beider Funktionen den Pfad identifizieren. Daher kann eine Tabelle verwendet werden, um Werte aufzuzeichnen, die für alle kritischen Funktionen verwendet werden, um zu bestimmen, welche Daten welchem Pfad zugeordnet sind, wenn sie durch das Arbitrierungsmodul analysiert werden. Wenn die Tabelle für einen jeweiligen Pfad Werte für die kritische Funktion (c) aufzeichnet, so kann bestimmt werden, dass der Pfad der zweite Pfad 26 {a, b, c, d, g} ist. Wenn die Tabelle für einen jeweiligen Pfad einen Wert für die kritische Funktion (f) aufzeichnet, dann kann bestimmt werden, dass der Pfad der dritte Pfad 28 {a, e, f, g} ist. Wenn die Tabelle für einen jeweiligen Pfad keinen Wert für beide kritischen Funktionen (c) und (f) aufnimmt, dann wird bestimmt, dass der Pfad der erste Pfad 24 {a, b, d, g} ist. Als Ergebnis kann jeder Pfad bestimmt werden, basierend darauf, ob Werte für kritische Funktionen aufgezeichnet werden. Werte können dann dem Arbitrierungsmodul zugeführt werden, wobei eine Arbitrierungsrichtlinie unter Verwendung einer Nachschlagtabelle oder einer Entscheidungslogik ausgeführt wird, die später ausführlich erörtert wird.
  • 3 veranschaulicht ein erstes Beispiel von zwei Prozessoren, die jeweilige Funktionen ausführen und Ergebnisse entsprechend den Funktionen ausgeben. In 3 werden identische Pfade ausgeführt und die Ergebnisse werden dem Arbitrierungsmodul 22 zugeführt. Wenn die Ergebnisse gleich sind, dann kann entweder das Ergebnis durch das Arbitrierungsmodul verwendet werden, da die Ergebnisse gleich sind. Wenn die Ergebnisse unterschiedlich sind, obwohl derselbe Pfad von beiden Prozessoren verwendet wird, wird eine Bestimmung ermittelt, welcher Prozessor korrekt ist, der unter Verwendung der verschiedenen Eigenschaften einschließlich der aufgezeichneten Parameterwerte bestimmt wird.
  • 4 veranschaulicht ein erstes Beispiel von zwei Prozessoren, die jeweilige Funktionen über verschiedene Pfade ausführen, die unterschiedliche Ergebnisse liefern. In diesem Beispiel führt der erste Prozessor Pfade {a, b, d, g} aus und der zweite Prozessor führt den Pfad {a, e, f, g} aus. Abhängig von der Arbitrierungslogik kann ein vorbestimmter Pfad identifiziert werden, wobei mindestens ein Zeitstempel, der ausgeführte Pfad und die verwendeten Parameterwerte verwendet werden. Das Arbitrierungsmodul 24 empfängt die Parameterwerte des zugeordneten Pfades und verwendet mindestens einen der Zeitstempel, Ausführungsfolge (d. h. Pfad) und Parameterwerte, um zu bestimmen, welcher Pfad das richtige Ergebnis liefert. Das Arbitrierungsmodul 22 kann eine Nachschlagtabelle oder eine Entscheidungslogik verwenden, um das zu verwendende Ergebnis zu identifizieren.
  • 5 veranschaulicht eine Datenstruktur, die zum Aufzeichnen der ausgeführten Sequenz in einer Weise verwendet wird, die von dem Arbitrierungsmodul verwendet werden kann, und ist formatiert für die Minimierung der Datenmenge, die benötigt wird, um beibehalten und verarbeitet zu werden. Wie in 5 gezeigt, wird jede der kritischen Funktionen {a, c, f, g} als Bit in einem Vektor erfasst. Jeder Pfad wird den Vektor verwenden, der nicht nur die Ausführungsfolge des Pfades bereitstellt, sondern auch einen Funktionsvisitationsindikator beinhaltet. Funktionsvisitationsindikator ist ein Bit (d. h. „1” oder „0”), der identifiziert, ob eine jeweilige Funktion entlang eines jeweiligen Pfades besucht wird. Wie bereits erwähnt, werden in der Vielzahl von Funktionen kritische Funktionen identifiziert. Jede kritische Funktion wird in einem Vektor zusammen mit ihrem zugehörigen Funktionsvisitationsindikator angegeben. Der Aufbau eines 4-Bit-Vektors 30 ist in 5 gezeigt. Unter Verwendung der kritischen Funktionen von 5 ist jede Funktion im 4-Bit-Vektor 30 dargestellt. So wird beispielsweise Addr (a) durch den ersten Schlitz des Vektors dargestellt, Addr (c) wird durch den zweiten Schlitz des Vektors dargestellt, Addr (f) wird durch den dritten Schlitz des Vektors und Addr (g) wird durch den vierten Schlitz des Vektors dargestellt. Jede jeweilige Adresse beinhaltet ein „0” Bit oder ein „1” Bit. Ein „0” Bit zeigt an, dass der jeweilige Knoten nicht besucht wurde und die Funktion nicht ausgeführt wurde. Ein „1” Bit zeigt an, dass der jeweilige Knoten besucht wurde und somit die Funktion ausgeführt wurde. Daher beinhaltet jede Ausführungssequenz für jeden Pfad Informationen, die den Pfad nicht identifizieren, indem sie angeben, ob jeweilige Knoten besucht wurden, und Funktionen, die ausgeführt werden, sobald die Ausführungssequenz ihr Ziel erreicht hat. Als Ergebnis wird jeder Pfad durch einen anfänglichen Zeitstempel und eine Pfad-Flag-Kennung dargestellt. Der Anfangszeitstempel stellt einen Start eines Pfades dar und wird verwendet, um Signale für die Arbitrierung anzupassen. Der Pfad-Flag-Vektor ist mit jeder der kritischen Funktionen ausgelegt, sei es auf demselben oder einem unterschiedlichen Ausführungspfad, der durch einen Bitvektor dargestellt wird, wobei jedes Bit den Besuch einer Funktion auf dem Ausführungspfad anzeigt. Jedes der Bits wird anfänglich auf dem Anfangszeitstempel (d. h. „0”) gelöscht, und jedes Bit wird gesetzt (d. h. „1), wenn die Funktion, die es repräsentiert, ausgeführt wird. Wenn eine Funktion nicht ausgeführt wird, bleibt ihr zugehöriges Bit ungesetzt (d. h. „0”). Die Reihenfolge der Funktionen des Vektors stimmt mit der Reihenfolge der Ausführungssequenz für jeden Pfad überein.
  • 6 stellt exemplarische Pfade und deren zugehörigen Pfad-Flag-Vektor dar. Wie in 6 gezeigt, beinhalten kritische Funktionen {A, c, f, g}. Jeder 4-Bit-Vektor wird mit der Reihenfolge {a, c, f, g} verwendet. Jede gestrichelte Linie in 6 stellt einen anderen Pfad 24, 26, 28 dar. Der erste Pfad 24 wird durch einen Vektor mit den Werten {1, 0, 0, 1} identifiziert. Die Bitwerte zeigen an, dass die Funktion (a) ausgeführt wird, die Funktion (c) nicht ausgeführt wird, die Funktion (f) nicht ausgeführt wird und die Funktion (g) ausgeführt wird. Da weder Funktionen (c) noch (f) ausgeführt wurden, kann er einzige durchführbare Pfad {a-b-d-g) sein, der mit dem ersten Pfad 24 korreliert. Ähnlich wird ein zweiter Pfad, der durch 32 dargestellt ist, durch einen Vektor mit den Werten {1, 0, 1, 1} identifiziert. Die Bitwerte zeigen an, dass die Funktion (a) ausgeführt wird, die Funktion (c) nicht ausgeführt wird, die Funktion (f) ausgeführt wird und die Funktion (g) ausgeführt wird. Da die Funktionen (c) nicht ausgeführt und die Funktion (f) ausgeführt wird, kann der einzige durchführbare Pfad derjenige sein, der die Funktion (f) beinhaltet, die den Pfad {a-e-f-g} ergibt. Zusätzlich wird ein durch 28 dargestellter dritter Pfad durch einen Vektor mit den Werten {1, 1, 0, 1} identifiziert. Die Bitwerte zeigen an, dass die Funktion (a) ausgeführt wird, die Funktion (c) ausgeführt wird, die Funktion (f) nicht ausgeführt wird und die Funktion (g) ausgeführt wird. Da die Funktionen (c) ausgeführt und die Funktion (f) nicht ausgeführt wird, kann der einzige durchführbare Pfad derjenige sein, der die Funktion (c) beinhaltet, die den Pfad {a-b-c-d-g} ergibt. Um die Vektorgröße und die zugehörigen Daten, die mit jeder Funktion gesammelt wurden, zu reduzieren, besteht daher keine Notwendigkeit, alle Funktionen (z. B. nicht kritische Funktionen) zu verfolgen und Daten für alle Funktionen des Pfades aufzuzeichnen. Vielmehr werden nur kritische Funktionen verfolgt und Daten nur für kritische Funktionen aufgezeichnet, da die kritischen Funktionen, die ausgeführt werden sowie die kritischen Funktionen, die nicht ausgeführt werden, zeigen, welcher der ausgeführte Pfad ist.
  • Um die Ermittlung des korrekten Ergebnisses durch das Arbitrierungsmodul weiter zu verbessern, werden Werte von Parametern, die aus ausgeführten Funktionen resultieren, verfolgt und analysiert. Eine inkonsistente Ausgabe zwischen verschiedenen Pfaden oder einem gleichen Pfad, der von zwei verschiedenen Prozessoren ausgeführt wird, kann ein Ergebnis verschiedener Werte sein, die verwendet werden, da ein Ausgang eines Berechnungspfades von den von jeder Funktion verwendeten Werten abhängig ist. Dies kann durch verschiedene Faktoren verursacht werden, die Hardwarefehler und Aktualisierungen aus anderen Funktionen beinhalten, sind aber nicht darauf beschränkt. Dies kann besonders schwierig sein, wenn globale Variablen verwendet werden. Um bei der Bestimmung der korrekten Ausgabe zu helfen, wird eine Tabelle erzeugt, um die in der Berechnung verwendeten Werte aufzuzeichnen. Jede Funktion kann einen Parameter oder mehrere Parameterwerte verwenden. Daher werden die Parameterwerte, die nur von den kritischen Funktionen in der Ausführungsfolge verwendet werden, aufgezeichnet.
  • 7 veranschaulicht eine exemplarische Struktur für eine Funktion und deren zugehörige Parameterwerte in einer Tabelle. Im ersten Eintrag ist ein Funktionsfeld 40 dargestellt. Ein Zeigerfeld 42 zeigt an, wo die jeweiligen Parameterwerte aufgezeichnet sind. Parameterwerte werden in einem Parameterwert-Eingabefeld 44 aufgezeichnet. In diesem Feld kann mehr als ein Parameterwert eingegeben werden, wenn mehr als ein Parameterwert von der jeweiligen Funktion genutzt wird.
  • 8 veranschaulicht eine Zuordnung eines Pfadvektors zu einem zugehörigen Tabellenfunktionseintrag und zugehörigen Parameterwerten. Ein exemplarischer Vektor ist im Allgemeinen bei 50 gezeigt. Nur die jeweiligen kritischen Funktionen, die einen Bitwert aufweisen, der gesetzt ist, haben die Parameterwerte der Tabelle 52 aufgezeichnet. Das heißt, Parameterwerte werden nur für die jeweils ausgeführten Funktionen aufgezeichnet. Wenn die kritische Funktion im Bitvektor „0” ist, dann wurde diese jeweilige Funktion nicht ausgeführt, und daher war diese jeweilige Funktion nicht Teil der Ausführungsfolge des Pfades. Infolgedessen wird eine kritische Funktion, die nicht ausgeführt wird, keinen Parameterwert aufweisen, noch wird diese kritische Funktion nicht ausgeführt in der Tabelle 52 aufgeführt. Es sollte verstanden werden, dass die Reihenfolge in der Tabelle die gleiche ist wie die Reihenfolge, in der die Funktion im Vektor erscheint (abzüglich aller kritischen Funktionen, die nicht ausgeführt werden).
  • Unter Bezugnahme auf den Pfadvektor 50 wird das erste Bit des Pfadvektors 50, der die Funktion (a) darstellt, gesetzt und hat daher mindestens einen zugeordneten Parameterwert in der Tabelle 52. Wie in der Tabelle 52 gezeigt, verwendet die Funktion (a) die Parameterwerte „8” und „21,2”. Das zweite Bit des Pfadvektors 50, der die Funktion (c) darstellt, ist nicht gesetzt und hat daher keinen entsprechenden Eintrag oder Parameterwert in der Tabelle 52. Das dritte Bit des Pfadvektors 50, das die Funktion (f) darstellt, ist gesetzt und weist daher mindestens einen zugehörigen Parameterwert in der Tabelle 52 auf. Wie in Tabelle 50 gezeigt, verwendet die Funktion (f) den Parameterwert „22”. Ähnlich ist das vierte Bit des Pfadvektors 50, das die Funktion (g) darstellt, gesetzt und weist daher mindestens einen zugeordneten Parameterwert in der Tabelle 52 auf. Wie in Tabelle 52 gezeigt, verwendet die Funktion (g) den Parameterwert „0”. Es sollte verstanden werden, dass nicht jedes Bit im Pfadvektor notwendigerweise einen Eintrag in der Tabelle aufweist und nicht jeder Parameterwert aufgezeichnet wird. Das heißt, während unkritische Funktionen in einem jeweiligen Pfad verwendet und ausgeführt werden, werden nur die kritischen Funktionen, die ausgeführt werden, durch das Arbitrierungsmodul aufgezeichnet, um zu bestimmen, welcher Pfad die korrekte Ausgabe liefert.
  • Nachdem jede Tabelle für jeden Pfad erzeugt wird, vergleicht das Arbitrierungsmodul verschiedene Faktoren entweder einzeln oder in Kombination, die Zeitstempel, den verwendeten Pfad und Parameterwerte beinhalten.
  • 9 veranschaulicht ein Flussdiagramm eines Prozesses zur Aufzeichnung von Ausführungspfaden und Werten. In Schritt 60 wird eine Routine zum Aufzeichnen des Ausführungspfades und Parameterwerte jeder Funktion eingeleitet. In Schritt 61 wird ein Anfangszeitstempel mit den Daten für einen Vektor aufgezeichnet. Dieser Zeitstempel kann aus den fusionierten Sensordaten übernommen werden.
  • In Schritt 62 werden kritische Funktionen der verschiedenen Pfade für eine Liste identifiziert und zur Speicherung eingeleitet. Ein Listenkopf wird verwendet, um einen Anfang einer Liste anzuzeigen.
  • In Schritt 63 wird eine Adresse als die aktuelle Funktionsadresse gesetzt. Das heißt, eine Adresse für den Knoten, von dem die aktuelle Funktion ausgeführt wird, wird als die aktuelle Adresse gesetzt.
  • In Schritt 64 wird eine Bestimmung durchgeführt, ob die aktuelle Adresse Teil einer aktuellen Liste ist. Es sollten alle Funktionen abgerufen werden, ob sie kritisch oder unkritisch in einer Ausführungszeichenfolge ausgeführt werden; die Routine zeichnet jedoch nur Daten für kritische Funktionen auf. Wenn die aktuelle Adresse Teil der aktuellen Liste ist, die eine kritische Funktion darstellt, geht die Routine zu Schritt 65 über; andernfalls geht die Routine zu Schritt 66 über.
  • In Schritt 65 wird die Funktion als kritische Funktion erkannt und Parameterwerte für diese kritische Funktion während der Ausführung aufgezeichnet.
  • In Schritt 66 wird eine Bestimmung durchgeführt, ob die Ausführungszeichenfolge vollständig ist. Wenn die Bestimmung durchgeführt wird, dass keine zusätzlichen Funktionen ausgeführt werden müssen, geht die Routine zu Schritt 68 über, wobei die Routine endet. Wenn die Bestimmung gemacht wird, dass die Ausführungszeichenfolge nicht vollständig ist und dass zusätzliche Funktionen eine Ausführung erfordern, geht die Routine zu Schritt 67 über.
  • In Schritt 67 identifiziert die Routine die nächste Funktion in der Ausführungszeichenfolge und die Routine kehrt zum Schritt 63 zurück, um diese nächste Funktion als die aktuelle Funktionsadresse einzustellen.
  • Es sollte verstanden werden, dass Funktionen mehrfach in einem aufrufenden Baum zur Ausführung aufgerufen werden können und jedes Mal, wenn eine Funktion aufgerufen wird, als eine andere Funktion behandelt wird, da nur ein Pfad eines Programms ausgeführt wird und die auf jedem Pfad ausgeführten Funktionen so sequentiell durchgeführt werden. Nachdem eine Prüfung für jede Funktion berücksichtigt wird, ob kritisch oder unkritisch, werden nur entsprechende Funktionen als kritisch erkannt.
  • 10 veranschaulicht ein exemplarisches Arbitrierungsmodul 22, das verwendet wird, um eine Arbitrierungsstrategie auszuführen. Das Arbitrierungsmodul 22 beinhaltet einen ersten kreisförmigen Speicherpuffer 72 und einen zweiten kreisförmigen Speicherpuffer 74. Daten wie Zeitstempel, ausgeführte Pfade und Parameterwerte werden in einen jeweiligen Puffer eingegeben, basierend auf der Anzahl der Prozessoren, die redundante Operationen ausführen. Es sollte verstanden werden, dass die Anzahl der Puffer typischerweise der Anzahl der redundanten Prozessoren entspricht, die Funktionen ausführen. Während daher das exemplarische Arbitrierungsmodul 22 zwei kreisförmige Puffer darstellt, können mehr Puffer verwendet werden, wenn mehr als zwei redundante Prozessoren verwendet werden. Jeder kreisförmige Puffer für jeden redundanten Prozessor speichert einen kurzen Verlauf von Werten (z. B. 3 Werte – 1 aktuellen Wert und 2 vorherige Werte). Wenn die Ausgänge des Prozessors nicht übereinstimmen, verwendet das Arbitrierungsmodul 22 verschiedene Faktoren und vergleicht diese jeweiligen Faktoren von den redundanten Prozessoren. Die Arbitrierungslogik im Arbitrierungsmodul 22 wird zur Entwurfszeit bestimmt und zur Laufzeitbenutzung gespeichert.
  • Das Arbitrierungsmodul 22 beinhaltet eine Logikfunktion 76, in der die Kriterien, auf die das Arbitrierungsmodul 22 angewiesen ist, gemäß der Funktion, die zum Identifizieren einer Entscheidung verwendet wird, gewichtet werden können. Zusätzlich beinhaltet das Arbitrierungsmodul 22 eine Nachschlagetabelle 78. Die Nachschlagetabelle 78 liefert feste Entscheidungen auf der Grundlage der Eingabewerte.
  • Das Arbitrierungsmodul 22 beinhaltet ferner einen Entscheider 80, der eine Kombination der Entscheidungen verwendet, die durch die Strategie der Logikfunktion 76 und der Nachschlagetabelle 78 abgeleitet werden.
  • Die Logikfunktion 76 kann durch die folgende Formel dargestellt werden: De = max n / i=1 (w1Ti + w2Pi + w3vi) wobei Ti eine Zeitstempelausgabe von Pfad i ist, Pi ist eine Vorliebe für eine Ausgabe des Pfades i, vi ist die Präferenz des Ausgangspfads, der auf Pfad i verwendet wird, w1, w2, w3 sind Gewichte für die Bedeutung jedes Faktors. Jedes der Gewichte kann zur Entwurfszeit vorgegeben werden und variiert entsprechend der ausgeführten Funktion oder einem Bereich, in dem die Funktion betrieben wird. Wenn beispielsweise die Funktion auf eine Geschwindigkeit eines Fahrzeugs bezogen ist, kann ein Gewichtungsfaktor w1 für die Präferenz der Wertausgabe vi 50% betragen, wohingegen, wenn sich die Funktion auf das Motordrehmoment bezieht, der Gewichtungsfaktor w1 für Die Präferenz der Wertausgabe v 75% betragen kann. In einem anderen Beispiel basiert ein Lenkvorgang auf der Geschwindigkeit des Fahrzeugs. Ein Fahrzeuggeschwindigkeitsparameter bei 65 mph kann eine andere Gewichtung aufweisen als ein Fahrzeuggeschwindigkeitsparameter von 75, da die Fahrzeuggeschwindigkeit beeinflussen kann, wie der Lenkwinkel eingestellt werden soll. Als Ergebnis werden die an verschiedenen Ausgängen angewendeten Gewichtungen auf der Grundlage der ausgeführten Funktion voreingestellt.
  • Unter Bezugnahme auf den Zeitstempelfaktor kann ein Zeitstempel Ti, der zu einem bestimmten Zeitpunkt vorgenommen wird, bevorzugter oder kritischer sein, als wenn er zu einem bestimmten Zeitpunkt vorgenommen wird. Infolgedessen kann ein größeres Gewicht auf die Zeitstempelparameter angewendet werden, im Gegensatz zu den Pfad- oder Parameterwerten, wenn die Bedingung es erfordert.
  • Unter Bezugnahme auf den Pfadfaktor kann eine stärkere Betonung auf den Pfad gelegt werden, der kritischere Funktionen relativ zu einem anderen Pfad verwendet. Es kann eine Strategie angewendet werden, bei der die kritischeren Funktionen, die für einen jeweiligen Pfad ausgeführt werden, um so größer sind, je größer das Vertrauen oder die Zuverlässigkeit der Ausgabe von diesem jeweiligen Pfad ist.
  • Unter Bezugnahme auf Parameterwerte, die von einer jeweiligen Funktion verwendet werden, kann eine stärkere Betonung auf Parameter angewendet werden, die innerhalb eines jeweiligen Parameterbetriebsbereichs oder innerhalb eines jeweiligen Abstands von einem Parameterzielwert liegen.
  • Basierend auf den verschiedenen Faktoren, wie hierin beschrieben, können unterschiedliche Gewichtungsfaktoren in der Logikfunktion 76 verwendet werden.
  • Die Nachschlagetabelle 78 stellt feste Entscheidungen auf der Grundlage der Unterschiede zwischen verschiedenen vorstehend beschriebenen Faktoren, wie beispielsweise Zeitstempeln, Pfaden und Parameterwerten, dar. Unterschiede können die Differenz der Zeitstempel der Vergleichspfade oder zwischen einem Zielzeitstempel, den Unterschieden zwischen den ausgeführten Pfaden, wie beispielsweise den kritischen Funktionen und den Unterschieden zwischen den Parameterwerten der Vergleichspfade oder einem Parameterzielwert, beinhalten. Basierend auf den Vergleichen jeder Kategorie wird eine feste Entscheidungsausgabe angewendet. Eine exemplarische Nachschlagetabelle ist wie folgt dargestellt:
    T-diff Bereich P-diff Zeiger Entscheidung
    [0, 1] abcdg, abdg V1[0,10] 0(P1)
    [0, 3] abdg, aefg V1[0, 4], v2[1,10] 0max
  • Der Entscheider 80 kann nur die Ergebnisse aus der Logikfunktion 76 nur die Ergebnisse der Nachschlagetabelle 78 oder eine jeweilige Kombination der Logikfunktion 76 und der Nachschlagetabelle 78 verwenden, um zu bestimmen, welche Ausgangsergebnisse auf ein anderes Modul zur zusätzlichen Verarbeitung angewendet werden sollen. Zusätzliche Module können andere Steuerungen, Vorrichtungen, Subsysteme oder Systeme beinhalten, sind aber nicht darauf beschränkt. Diese Information kann verwendet werden, um weitere Aufgaben auszuführen oder kann verwendet werden, um einen Fahrzeugbetrieb basierend auf den Ausgabeergebnissen zu ermöglichen, weitere Aufgaben auszuführen oder kann verwendet werden, um ein Fahrzeug Operationen basierend auf der Ausgangssignalergebnisse.
  • Während bestimmte Ausführungsformen der vorliegenden Erfindung in Einzelheiten beschrieben wurden, werden Fachleute auf dem Gebiet, auf das sich diese Erfindung bezieht, verschiedene alternative Entwürfe und Ausführungsformen für die Durchführung der Erfindung erkennen, wie durch die folgenden Patentansprüche bestimmt.

Claims (10)

  1. Verfahren zum Arbitrieren von widersprüchlichen Ausgängen in einem redundanten Steuersystem, wobei das Verfahren die folgenden Schritte umfasst: das Aufzeichnen von Ausführungsdaten einer Aufgabe, die von jeder Steuerung im redundanten Steuersystem ausgeführt werden, wobei die Ausführungsdaten einen anfänglichen Zeitstempel jedes Ausführungsstroms, die Identifizierung von kritischen Funktionen in jedem Ausführungsstrom und Parameterwerte, die von den kritischen Funktionen verwendet werden, beinhalten; das Identifizieren eines Pfades, der durch jede Steuerung ausgeführt wird, basierend nur auf den kritischen Funktionen, die für jeden Ausführungsstrom ausgeführt werden; das Anwenden der aufgezeichneten Ausführungsdaten jedes ausgeführten Pfades auf ein Arbitrierungsmodul; das Auswählen eines Ausgabeergebnisses von einer der jeweiligen Steuerungen durch ein Arbitrierungsmodul auf der Grundlage der aufgezeichneten Ausführungsdaten jedes ausgeführten Pfades; und das Übertragen des Ausgabeergebnisses der ausgewählten Steuerung an ein nächstes Modul zur weiteren Verarbeitung.
  2. Verfahren nach Anspruch 1, worin das Auswählen des Ausgabeergebnisses durch einen Entscheider innerhalb des Arbitrierungsmoduls durchgeführt wird, worin mindestens eine Logikfunktion oder eine Logiktabelle vom Entscheider verwendet wird, um das Ausgabeergebnis auszuwählen.
  3. Verfahren nach Anspruch 2, worin die Logikfunktion wie folgt dargestellt ist: De = max n / i=1(w1Ti + w2Pi + w3vi) wobei Ti ein Zeitstempel-Ausgangsfaktor des Pfades i ist, Pi ist ein Präferenzpfadfaktor des Pfades i, vi ist die Präferenz des Ausgabewertfaktors, der auf dem Pfad i verwendet wird, w1, w2, w3 sind Gewichte für die Bedeutung jedes Faktors.
  4. Verfahren nach Anspruch 2, worin das Entscheidungsmodul eine Kombination aus der Logikfunktion und der Logiktabelle verwendet.
  5. Verfahren nach Anspruch 1, worin das Identifizieren eines Pfades, der durch jede Steuerung ausgeführt wird, die nur auf den kritischen Funktionen basiert, die folgenden Schritte umfasst: das Identifizieren aller kritischen Funktionen, die in allen Pfaden von jeder Steuerung verwendet werden; das Verfolgen nur der identifizierten kritischen Funktionen in jedem Pfad; das Erzeugen eines Bitvektors für jeden Pfad, wobei jeder Bitvektor nur durch die kritischen Funktionen dargestellt wird, worin jedes Bit in jedem Bitvektor darstellt, ob eine jeweilige kritische Funktion für die jeweilige Aufgabe ausgeführt wird.
  6. Verfahren nach Anspruch 5, worin ein jeweiliges Bit jedes Bitvektors gesetzt wird, wenn die Funktion in einem jeweiligen Pfad ausgeführt wird und nicht gesetzt ist, wenn die Funktion nicht in dem jeweiligen Pfad ausgeführt wird.
  7. Verfahren nach Anspruch 6, worin jedes der Bits in jedem jeweiligen Bitvektor im Anfangszeitstempel zunächst ungesetzt ist.
  8. Verfahren nach Anspruch 5, worin alle kritischen Funktionen vorgegeben sind.
  9. Verfahren nach Anspruch 5, worin für jedes in jedem Bitvektor eingestellte Bit mindestens ein Parameterwert aufgezeichnet wird.
  10. Verfahren nach Anspruch 1, worin jeder Satz von aufgezeichneten Ausführungsdaten, die von jedem Pfad erhalten werden, an einen jeweiligen kreisförmigen Puffer des Arbitrierungsmoduls geliefert wird, wobei jeder kreisförmige Puffer mit dem Entscheidungsmodul in Verbindung steht, worin gespeicherte Daten von jedem kreisförmigen Puffer dem Entscheider zur Verfügung gestellt werden.
DE102017204745.3A 2016-03-23 2017-03-21 Architektur und Vorrichtung für eine fortschrittliche Arbitration in integrierten Steuerungen Pending DE102017204745A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/078,255 2016-03-23
US15/078,255 US9996431B2 (en) 2016-03-23 2016-03-23 Architecture and apparatus for advanced arbitration in embedded controls

Publications (1)

Publication Number Publication Date
DE102017204745A1 true DE102017204745A1 (de) 2017-09-28

Family

ID=59814468

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017204745.3A Pending DE102017204745A1 (de) 2016-03-23 2017-03-21 Architektur und Vorrichtung für eine fortschrittliche Arbitration in integrierten Steuerungen

Country Status (3)

Country Link
US (1) US9996431B2 (de)
CN (1) CN107229238B (de)
DE (1) DE102017204745A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11214273B2 (en) * 2017-06-23 2022-01-04 Nvidia Corporation Method of using a single controller (ECU) for a fault-tolerant/fail-operational self-driving system
US10353767B2 (en) * 2017-09-14 2019-07-16 Bae Systems Controls Inc. Use of multicore processor to mitigate common mode computing faults
JP2019070902A (ja) * 2017-10-06 2019-05-09 横河電機株式会社 制御システム、制御方法及び等値化装置
US10901399B2 (en) * 2018-09-28 2021-01-26 Rockwell Automation Technologies, Inc. High availability industrial automation controller and method of operating the same
US10820068B2 (en) * 2019-02-07 2020-10-27 Simmonds Precision Products, Inc. Configurable sensing systems and methods for configuration

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210871A (en) * 1988-07-15 1993-05-11 The Charles Stark Draper Labroatory, Inc. Interprocessor communication for a fault-tolerant, mixed redundancy distributed information processing system
US6029217A (en) 1994-10-03 2000-02-22 International Business Machines Corporation Queued arbitration mechanism for data processing system
US5984504A (en) * 1997-06-11 1999-11-16 Westinghouse Electric Company Llc Safety or protection system employing reflective memory and/or diverse processors and communications
WO2000036492A2 (en) * 1998-12-18 2000-06-22 Triconex Corporation Method and apparatus for processing control using a multiple redundant processor control system
US7454546B1 (en) 2006-01-27 2008-11-18 Xilinx, Inc. Architecture for dynamically reprogrammable arbitration using memory
US7725655B2 (en) * 2006-02-16 2010-05-25 Hewlett-Packard Development Company, L.P. Method of operating distributed storage system in which data is read from replicated caches and stored as erasure-coded data
US7949841B2 (en) * 2006-12-08 2011-05-24 Microsoft Corporation Protection of critical memory using replication
US8824496B2 (en) 2009-10-30 2014-09-02 Oracle America, Inc. Two-phase arbitration mechanism for shared optical links
DE102011086530A1 (de) * 2010-11-19 2012-05-24 Continental Teves Ag & Co. Ohg Mikroprozessorsystem mit fehlertoleranter Architektur
US9015481B2 (en) * 2011-02-22 2015-04-21 Honeywell International Inc. Methods and systems for access security for dataloading
DE112011105021B4 (de) * 2011-03-10 2020-01-30 Mitsubishi Electric Corporation Redundanzeinrichtung
US9342358B2 (en) * 2012-09-14 2016-05-17 General Electric Company System and method for synchronizing processor instruction execution
CN104133744A (zh) * 2014-08-01 2014-11-05 浪潮(北京)电子信息产业有限公司 一种面向关键应用的仲裁系统及方法

Also Published As

Publication number Publication date
US9996431B2 (en) 2018-06-12
CN107229238B (zh) 2019-08-30
US20170277604A1 (en) 2017-09-28
CN107229238A (zh) 2017-10-03

Similar Documents

Publication Publication Date Title
AT521607B1 (de) Verfahren und Vorrichtung zum Testen eines Fahrerassistenzsystem
DE102017204745A1 (de) Architektur und Vorrichtung für eine fortschrittliche Arbitration in integrierten Steuerungen
EP3646184B1 (de) Verfahren, vorrichtung und computerlesbares speichermedium mit instruktionen zum auflösen einer redundanz von zwei oder mehr redundanten modulen
DE102017222616A1 (de) Verfahren zum automatisierten Erstellen von Regeln für eine regelbasierte Anomalieerkennung in einem Datenstrom
DE102018126270A1 (de) Dezentralisierte fahrzeugsteuerung der minimalen risikobedingung
EP3667568A1 (de) Konfiguration eines steuerungssystems für ein zumindest teilautonomes kraftfahrzeug
DE102015224696A1 (de) Risikobasierte Steuerung eines Kraftfahrzeugs
DE102020207449B4 (de) Verfahren, Computerprogramm und Vorrichtung zum Verarbeiten von Signalen
DE112020005622T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Programm
DE102019217015A1 (de) Kommunikationsvorrichtung
EP3341843A1 (de) Verfahren und vorrichtung zum überwachen eines zustandes einer elektronischen schaltungseinheit eines fahrzeugs
DE102018207220A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Detektieren eines Berechnungsfehlers oder einer Fehlfunktion
DE102018122115A1 (de) Verfahren zur Umgebungserfassung eines Fahrzeugs
DE102009012887B4 (de) Verfahren zum Prüfen einer nicht korrekten Installation von Fahrzeugsensoren
DE102014206227A1 (de) Stereokamerasystem
EP3805998A1 (de) Verarbeitung von sensordaten in einem kraftfahrzeug
DE112019007286T5 (de) Fahrzeuginterne steuerungsvorrichtung und fahrzeuginternes steuerungssystem
WO2018091160A1 (de) Funktionsüberwachung einer sensoreinrichtung eines kraftfahrzeugs
DE102018217014A1 (de) Dynamische Qualifizierung von Nutzdaten
DE112018000259T5 (de) Numerische Steuervorrichtung und Informationsverarbeitungsvorrichtung
DE102022121140B3 (de) Verfahren zum Betreiben eines zumindest teilweise assistiert betriebenen Kraftfahrzeugs, Computerprogrammprodukt sowie Assistenzsystem
DE102022205918A1 (de) Verfahren zum Durchführen einer Datenverarbeitung
DE102021206943A1 (de) Verfahren und Vorrichtung zum Rekonfigurieren einer Systemarchitektur eines automatisiert fahrenden Fahrzeugs
DE102016117056A1 (de) Verfahren zur sicheren Bereitstellung von gespeicherten Informationen bei einer Elektronikkomponente
DE102021131868A1 (de) Zuverlässigkeitsüberprüfung einer Objektklassifizierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MANITZ FINSTERWALD PATENT- UND RECHTSANWALTSPA, DE

Representative=s name: MANITZ FINSTERWALD PATENTANWAELTE PARTMBB, DE