WO2024099723A1 - Redundante prozessorarchitektur für sicherheitskritische anwendungen - Google Patents

Redundante prozessorarchitektur für sicherheitskritische anwendungen Download PDF

Info

Publication number
WO2024099723A1
WO2024099723A1 PCT/EP2023/079032 EP2023079032W WO2024099723A1 WO 2024099723 A1 WO2024099723 A1 WO 2024099723A1 EP 2023079032 W EP2023079032 W EP 2023079032W WO 2024099723 A1 WO2024099723 A1 WO 2024099723A1
Authority
WO
WIPO (PCT)
Prior art keywords
voter
computing module
computing
function
result
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.)
Ceased
Application number
PCT/EP2023/079032
Other languages
English (en)
French (fr)
Inventor
Martin Stoffel
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.)
Daimler Truck Holding AG
Original Assignee
Daimler Truck 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 Daimler Truck AG filed Critical Daimler Truck AG
Publication of WO2024099723A1 publication Critical patent/WO2024099723A1/de
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06COMPUTING OR CALCULATING; 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
    • G06COMPUTING OR CALCULATING; 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component

Definitions

  • the invention relates to a computing unit for executing a software-implemented function for a safety-critical application, as well as a vehicle with such a computing unit.
  • EP 2 765 045 A1 further relates to a circuit for controlling an acceleration, braking and steering system of a vehicle with at least two separate motors for actuating the acceleration and braking system and at least two separate motors for actuating the steering system, and with at least one electronic control unit for controlling the at least two separate motors for actuating the acceleration and braking system and the at least two separate motors for actuating the steering system, wherein the at least one control unit has three identical CPUs and a programmable logic module, wherein each of the CPUs generates control signals for the motors depending on input control signals and sensor signals from the motors and forwards them to the programmable logic module, which forwards the control signals of one of the CPUs to the motors depending on its programming.
  • the object of the invention is to make the execution of software-implemented functions for safety-critical applications more efficient.
  • a first aspect of the invention relates to a computing unit for executing a software-implemented function for a safety-critical application, comprising a first computing module and a second computing module, wherein the first computing module and the second computing module are each applied to their own integrated circuits and are connected to one another by a service layer, wherein the first computing module has a first voter and the second computing module has a second voter, wherein the computing unit is designed to execute a predetermined software-implemented function in parallel on the first computing module and the second computing module and to transmit the result of the function executed on the first computing module to the second voter and the result of the function executed on the second computing module to the first voter by means of the service layer, wherein the first voter is designed to check the result of the function executed on the first computing module for agreement with the result of the function executed on the second computing module, and wherein the second voter is designed to check the result of the function executed on the second computing module for agreement with the result of the function executed on the first computing module.
  • the computing unit is designed in particular to use only the first computing module and the second computing module (i.e. no third computing module) to execute the function in parallel as long as no error signal is present.
  • first computing module and the second computing module are each mounted on their own integrated circuits expresses that the first computing module and the second computing module are not respective cores of a multi-core processor, but rather computing modules, in particular processors, which their own chips, ie their own integrated circuits.
  • both the first computing module and the second computing module could each carry out the function alone and thus without the help of the other computing module, obtaining the complete desired result, but this would not be sufficient for a safety-critical application, since this requires redundant execution of the function.
  • Such a computing module is in particular a control unit, particularly preferably a control unit of a vehicle, also called an ECU of a vehicle, where 'ECU' is the abbreviation for "Electronic Control Unit”.
  • the execution of the software-implemented function is designed cyclically, i.e. an algorithm is repeatedly executed in certain time intervals, as is common in control engineering, for example, to compare a current input value from sensors with current target values and to generate a signal value as a manipulated variable in the sense of the control output in each of the time steps. If both voters recognize consistent results of the executions on the first computing module and the second computing module after completion of a respective time step, the execution of the algorithm can be repeated in the subsequent time step. This corresponds to the normal case, i.e.
  • the error-free execution of the function over longer periods of time, and typically leads to a very large number of iterations in the execution of the software-implemented function, for example in time intervals of 1 ms or 10 ms over a journey of 3 hours if the computing unit is a driving control system of an automated vehicle. Only if the error signal is generated after at least one of the voters has determined that there is no agreement or that there is no consistency in the results of the agreement comparisons, the regular execution of the function in parallel on the first computing module and in the second computing module can no longer be reliably guaranteed, so that a response must be made. Such a response must be automatic, especially in the case of an autonomous vehicle.
  • the service layer is also called “middleware” because it typically represents the link in a “client-server” architecture.
  • This middleware is used to exchange data between the voters and is preferably implemented via wired Ethernet. It is advantageous to provide appropriate shielding of the cables against electromagnetic influences, especially if electrically conductive cables are used instead of fiber optic cables.
  • the computing unit as a whole is used to carry out a software-implemented function.
  • software-implemented means that a predefined and saved computer program, such as C code compiled into binary code, is executed on a processor, and the algorithmic steps defined in the computer program are carried out with their corresponding calculations. While such a process is by definition carried out on every home user's computer as standard, the computing unit is particularly characterized by the fact that its architecture and configuration make it suitable for safety-critical applications. In contrast to applications for home users, such safety-critical applications lead to increased required reliability, since failure to correctly execute the desired function can lead to negative consequences that pose a particular risk to people's health and life, or in this case, property damage is to be feared.
  • the desired function is basically only executed twice in parallel, and not three times as taught by the above-mentioned prior art. Nevertheless, a fully-fledged "fail-operational" system architecture is obtained with a minimum number of redundant components.
  • the computing unit is designed to generate an error signal if a lack of agreement is detected by the first voter or if a lack of agreement is detected by the second voter.
  • the first voter is designed to transmit its result of the consistency check to the second voter via the service layer
  • the second voter is designed to transmit its result of the consistency check to the first voter via the service layer
  • the first voter being designed to compare the result of the consistency check of the first voter with the result of the consistency check of the second voter for consistency
  • the second voter being designed to compare the result of the consistency check of the second voter with the result of the consistency check of the first voter for consistency
  • the computing unit being designed to generate an error signal if the first voter detects a lack of consistency or if the second voter detects a lack of consistency.
  • each voter check the result of the execution of the function of each calculation module by comparison, but also checks his own result of the check and the result of the check of the other voter for consistency with the results of the voters themselves.
  • data transmissions via the service layer take place via Ethernet.
  • the computing unit has a third computing module and is designed to activate the execution of the software-implemented function on the third computing module only after an error signal has been generated.
  • the third computing module is advantageously only activated to execute the function when the error signal has been generated, in particular by a comparison of the results of the first and second computing modules with a negative output or by a detected inconsistency of the voter results of the first and second voters.
  • the third computing module is therefore advantageously not in permanent use, but only when an error is detected in the unit consisting of the first and second computing modules. This is more energy-efficient and advantageously allows easier scaling across multiple computing units, since, for example, only a single third computing module has to be installed across a large number of pairs of first and second computing modules in a system such as a vehicle, since the third computing unit can then only represent a backup for several redundant computing modules.
  • the third computing module and thus a third channel is called on-demand, preferably via Ethernet and a service-oriented middleware, the service layer, only when the first two do not match in a calculation step.
  • the inventive approach also allows the faulty channel to be repaired during runtime.
  • the third computing module has a third voter, wherein the first computing module is designed to transmit the result of the function executed on the first computing module to the third voter by means of the service layer, wherein the second computing module is designed to transmit the result of the function executed on the second computing module to the third voter by means of the service layer, wherein the third voter is designed to check the results of the function executed on the first computing module and the function executed on the second computing module and the function executed on the third computing module for respective agreement.
  • each of the computing modules is designed to transmit its respective result of the execution of the function to all other computing modules via the service layer, wherein each voter of the computing modules is designed to compare the results of all computing modules for agreement. This advantageously raises the system on-demand to a "2oo3" level and the faulty path can be identified.
  • each of the voters is designed to transmit its respective result of the check for agreement to all respective remaining voters via the service layer, wherein the computing unit is designed to use a consistent result of executions of the function by executing a majority function.
  • the principle of comparing the voter results can also be adopted.
  • the computing unit further comprises an orchestrator, wherein the orchestrator is designed to identify the computing module with an incorrect execution of the function and to carry out an attempt to restore the correct execution of the function on the identified computing module.
  • the recovery attempt involves a step, a so-called “recovery” step, to correct the faulty path by closing, i.e. terminating, the function on the identified faulty computing module. This is followed by a restart of the entire computing module or, alternatively, a restart of the execution of the function by restarting the corresponding process that is responsible for executing the function. Ideally, after this recovery process, the system is back in its original, error-free state, which advantageously maximizes the availability of the computing unit.
  • a further aspect of the invention relates to a vehicle with a computing unit as above and described below.
  • Fig. 1 Basic elements of the computing unit according to an embodiment of the invention.
  • Fig. 2 The computing unit with its complete elements based on the embodiment of Fig. 1.
  • Fig. 1 shows a computing unit 100 for executing a software-implemented function for a safety-critical application.
  • the computing unit 100 has a first computing module 1 and a second computing module 2, both of which receive the same input signals, symbolized by the branched input path in the upper half of the image.
  • Both the first computing module 1 and the second computing module 2 can be control units, so-called ECUs, of a vehicle.
  • the computing modules 1, 2 are each arranged on their own, independent integrated circuits, also called chips.
  • Each of the computing modules 1, 2 thus represents its own CPU (abbreviation for "Central Processing Unit") in principle, instead of just being a specific core of a multi-core processor.
  • CPU abbreviation for "Central Processing Unit
  • the function to be executed is an application that runs in one of several containers (a container in the field of software is understood to be a separable environment that, in the role of virtualization, enables specific and constant boundary conditions for an application).
  • the containers are executed using an operating system that is specifically designed for embedded systems in order to run on a control device such as the computing modules.
  • the service layer a so-called middleware, represents the architectural link between the computing modules 1, 2.
  • the middleware is able to exchange data in a coordinated manner between the first computing module 1 and the second computing module 2 via a cable-based Ethernet data connection, in particular to transmit the result of the function carried out on one computing module to the other computing module.
  • the respective calculation result is thus sent to the other control unit via Ethernet (by the middleware).
  • the voters 11, 12 on both control units 1, 2 therefore have the result of their own calculation as well as that of the other control unit. If such a predetermined software-implemented function is now executed in parallel on the first computing module 1 and the second computing module 2 and the result of the function executed on the first computing module 1 is transmitted to the second voter 12 and the result of the function executed on the second computing module 2 is transmitted to the first voter 11 by means of the service layer, the first voter 11 can check the result of the function executed on the first computing module 1 for agreement with the result of the function executed on the second computing module 2, and the second voter 12 can check the result of the function executed on the second computing module 2 for agreement with the result of the function executed on the first computing module 1.
  • the first voter 11 also transmits its result of the agreement check to the second voter 12 via the service layer, and the second voter 12 transmits its result of the agreement check to the first voter 11 via the service layer.
  • the second voter 12 compares the result of the check for consistency of the first voter 11 with the result of the check for consistency of the second voter 12 for consistency. Only as long as the first and second voters 11,12 both determine that the first computing module 1 and the second
  • each voter 11, 12 is therefore not only to compare the results of the first calculation module 1 and the second calculation module 2, but also to compare the result of this comparison of their own voter with the result of the comparison with the other voter.
  • Each of the voters 11, 12 thus checks the execution of the calculation modules and the consistent result determination between the two voters 11, 12. If there is no consistency, an error signal is generated by the calculation unit 100. In this case, the generation of the error signal, and only in this case, there is a deviation from creating redundancy by only executing the function twice in parallel, and in this case the execution of the function is started on a third computing module 3. Further details are shown in Fig. 2.
  • Fig. 2 shows the complete architecture of the computing unit 100, which therefore includes the part described in Fig. 1.
  • the third computing module 3 with its third voter 13 is shown here, whereby the third computing module 3 is only used for the parallel execution to the first computing module 1 and the second computing module 2 when the error signal is generated, as described in Fig. 1.
  • each of the computing modules 1, 2, 3 then transmits its respective result of the execution of the function to all the other computing modules, and each of the voters 11, 12, 13 compares the results of all computing modules 1, 2, 3 for agreement.
  • Each of the voters 11, 12, 13 transmits its respective result of the check for agreement to all the other voters via the service layer, and the computing unit 100 is then able to use a matching result of executions of the function by executing a majority function. It is thus possible to identify the one of the computing modules 1, 2, 3 that is carrying out an incorrect execution of the function. In a recovery process of the computing unit 100, an attempt can be made to restore proper operation of the execution of the function on this identified computing module by restarting the faulty computing module, and if the restoration fails, to switch it off and replace it with a remaining computing module with error-free operation, so that the doubly redundant execution of the function can continue to be guaranteed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Die Erfindung betrifft eine Recheneinheit (100) zum Ausführen einer softwareimplementierten Funktion für eine sicherheitskritische Anwendung, aufweisend ein erstes Rechenmodul (1) mit einem ersten Voter (11) und ein zweites Rechenmodul (2) mit einem zweiten Voter (12), wobei das erste Rechenmodul (1) und das zweite Rechenmodul (2) auf jeweils eigenen integrierten Schaltungen aufgebracht sind und durch eine Diensteschicht miteinander verbunden sind, wobei die Recheneinheit (100) dazu ausgeführt ist, eine vorgegebene softwareimplementierte Funktion zeitlich parallel auf dem ersten Rechenmodul (1) und dem zweiten Rechenmodul (2) auszuführen und mittels der Diensteschicht die Ergebnisse der auf den Rechenmodulen (1, 2) ausgeführten Funktion mit dem jeweils anderen Rechenmodul (2) zu teilen, wobei der jeweilige Voter (11, 12) die Ergebnisse der Funktionen auf Übereinstimmung überprüft.

Description

Redundante Prozessorarchitektur für sicherheitskritische Anwendungen
Die Erfindung betrifft eine Recheneinheit zum Ausführen einer softwareimplementierten Funktion für eine sicherheitskritische Anwendung, sowie ein Fahrzeug mit einer solchen Recheneinheit.
Zugunsten erhöhter Sicherheit wird bei der Ausführung von Computerprogrammen in sicherheitskritischen Anwendungen typischerweise Hardware-Redundanz in der Programmausführung gefordert, um Fehler zu erkennen und mit fehlerfrei arbeitenden Ressourcen einen sicheren Betrieb bei der Ausführung des Computerprogramms aufrechterhalten zu können. Insbesondere das Betreiben von autonomen Fahrzeugen mit Hilfe eines implementierten Fahrsteuerungssystems erfordert eine Systemauslegung nach dem sogenannten "Fail-Operational" Prinzip. Das bedeutet, im Fahrsteuerungssystem müssen Fehler erkannt werden und bei Erkennung darauf reagiert werden - idealerweise, während uneingeschränkt die Funktionalität des Fahrsteuerungssystems aufrechterhalten wird. System mit Fail-Operational Systemarchitektur werden typischerweise durch das sogenannte "2 out of 3" Konzept (kurz "2oo3"-Konzept) ermöglicht, welches bedeutet, dass eine implementierte Funktion auf drei Kanälen parallel (und damit redundant) ausgeführt wird. Die Ergebnisse der Ausführungen in den drei Kanälen werden über sogenannte "Voter" verglichen, die zur Kontrolle dienen, ob die Ausführung in einem der Kanäle fehlerhaft ist. Derzeit existierende Fahrsteuerungssysteme sind typischerweise nach dem "Fail-Degraded" Konzept ausgelegt. Das bedeutet, dass Fehler erkannt werden und das Fahrzeug seine Funktionalität durch einen sogenannten Back-Up Pfad in reduzierter Form aufrecht erhält. Typischerweise findet die Fehlererkennung durch Prozessieren einer Funktion auf zwei Pfaden (jeweils ein Kern auf einem Prozessor) statt, deren Ergebnisse über Voter nach jedem Berechnungsschritt verglichen werden. Die Voter werden dabei typischerweise auf demselben Prozessor betrieben oder auf einem zweiten Prozessor mit höherem Safety Level (ASIL-D). Diese Thematiken werden insbesondere in folgenden Veröffentlichungen aus dem Stand der Technik diskutiert: In der Dissertation "B. Sari, Fail-operational Safety Architecture for ADAS/AD Systems and a Model-driven Approach for Dependent Failure Analysis", erschienen in der "Wissenschaftliche[n] Reihe Fahrzeugtechnik Universität Stuttgart" unter ISBN-13: 978- 3658294212, wird das 2oo3 Prinzip auf Multicoreebene beschrieben, d.h. jede Funktion bekommt drei unabhängige Kerne auf einem Hochleistungsprozessor zugewiesen.
In der Veröffentlichung "F. K. Bapp, T. Dörr, T. Sandmann, F. Schade, and J. Becker, 'Towards Fail-Operational Systems on Controller Level Using Heterogeneous Multicore SoC Architectures and Hardware Support', in SAE Technical Paper Series, 2018" wird außerdem ein Mechanismus beschrieben, der auf einem Lockstep-Prozessor (Prozessor mit mehreren Kernen deren Berechnungsergebnisse permanent verglichen werden) Funktionen parallel betreibt und im Fehlerfall in einen degradierten Modus geht.
In "E-Gas Working Group, 'Standardized E-Gas Monitoring Concept for Gasoline and Diesel Engine Control Units: Version 6.0' " wird ferner das in der Automobilindustrie etablierte Egas Monitoring Concept vorgestellt. Es sieht vor, das System in einen degradierten Modus zu bringen, sollte ein Fehler erkannt werden.
Die EP 2 765 045 A1 betrifft darüberhinaus eine Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs mit mindestens zwei separaten Motoren zur Betätigung des Beschleunigungs- und Bremssystems und mindestens zwei separaten Motoren zur Betätigung des Lenksystems, und mit mindestens einer elektronischen Kontrolleinheit zur Ansteuerung der mindestens zwei separaten Motoren zur Betätigung des Beschleunigungs- und Bremssystems sowie der mindestens zwei separaten Motoren zur Betätigung des Lenksystems, wobei die mindestens eine Kontrolleinheit drei identische CPUs und einen programmierbaren Logikbaustein aufweist, wobei jede der CPUs in Abhängigkeit von Eingangssteuersignalen sowie von Sensorsignalen der Motoren Ansteuersignale für die Motoren erzeugt und an den programmierbaren Logikbaustein weiterleitet, der abhängig von seiner Programmierung die Ansteuersignale einer der CPUs an die Motoren weiterleitet.
Somit werden in der EP 2 765 045 A1 drei Kanäle genutzt, um einen eventuell fehlerbehafteten Kanal zu überstimmen. Die Programmable Logic wird benutzt, um nur die korrekten Signale an die Aktoren weiterzugeben. Dies entspricht einer Umsetzung des Tripple Modular Redundancy Concepts und birgt den Nachteil, permanent drei Kanäle gleichzeitig zu betreiben, sowie einen zusätzlichen Chip zur Entscheidungsarbitrierung implementiert zu haben. Ferner ist nachteilig, dass die Nutzung dreier unabhängiger Kanäle ebenfalls bedeutet, dass alle Komponenten, die hierfür notwendig sind, dreifach vorliegen. Dies führt zu hohen Massen, sowie hohem Leistungsbedarf und erheblichen Kosten.
Aufgabe der Erfindung ist es, die Ausführung von softwareimplementierten Funktionen für sicherheitskritische Anwendungen effizienter zu gestalten.
Die Erfindung ergibt sich aus den Merkmalen der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der abhängigen Ansprüche.
Ein erster Aspekt der Erfindung betrifft eine Recheneinheit zum Ausführen einer softwareimplementierten Funktion für eine sicherheitskritische Anwendung, aufweisend ein erstes Rechenmodul und ein zweites Rechenmodul, wobei das erste Rechenmodul und das zweite Rechenmodul auf jeweils eigenen integrierten Schaltungen aufgebracht sind und durch eine Diensteschicht miteinander verbunden sind, wobei das erste Rechenmodul einen ersten Voter und das zweite Rechenmodul einen zweiten Voter aufweist, wobei die Recheneinheit dazu ausgeführt ist, eine vorgegebene softwareimplementierte Funktion zeitlich parallel auf dem ersten Rechenmodul und dem zweiten Rechenmodul auszuführen und mittels der Diensteschicht das Ergebnis der auf dem ersten Rechenmodul ausgeführten Funktion an den zweiten Voter und das Ergebnis der auf dem zweiten Rechenmodul ausgeführten Funktion an den ersten Voter zu übermitteln, wobei der erste Voter dazu ausgeführt ist, das Ergebnis der auf dem ersten Rechenmodul ausgeführten Funktion mit dem Ergebnis der auf dem zweiten Rechenmodul ausgeführten Funktion auf Übereinstimmung zu überprüfen, und wobei der zweite Voter dazu ausgeführt ist, das Ergebnis der auf dem zweiten Rechenmodul ausgeführten Funktion mit dem Ergebnis der auf dem ersten Rechenmodul ausgeführten Funktion auf Übereinstimmung zu überprüfen.
Die Recheneinheit ist dabei insbesondere dazu ausgeführt, nur das erste Rechenmodul und das zweite Rechenmodul (also kein drittes Rechenmodul) zur parallelen Ausführung der Funktion zu verwenden, solange kein Fehlersignal vorliegt.
Dass das erste Rechenmodul und das zweite Rechenmodul auf jeweils eigenen integrierten Schaltungen aufgebracht sind, drückt aus, dass es sich bei dem ersten Rechenmodul und dem zweiten Rechenmodul nicht um jeweilige Kerne eines Mehrkernprozessors handelt, sondern um Rechenmodule, insbesondere Prozessoren, die ihre eigenen Chips, d. h. eigene integrierte Schaltungen aufweisen. Prinzipiell könnte demnach sowohl das erste Rechenmodul als auch das zweite Rechenmodul jeweils alleine und damit ohne die Hilfe des jeweils anderen Rechenmoduls die Funktion unter Erhalt des vollständigen gewünschten Ergebnisses ausführen, dies wäre jedoch nicht für eine sicherheitskritische Anwendung ausreichend, da hierfür eine redundante Ausführung der Funktion benötigt wird. Während demnach bei Mehrkernprozessoren es möglich ist, eine auszuführende Funktion redundant auf mehreren Kernen des Mehrkernprozessors gleichzeitig ausführen zu lassen, werden gemäß dem ersten Aspekt der Erfindung anstatt von mehreren Kernen eines Mehrkernprozessors mehrere Rechenmodule parallel verwendet.
Ein solches Rechenmodul ist insbesondere ein Steuergerät, besonders bevorzugt ein Steuergerät eines Fahrzeugs, auch genannt eine ECU eines Fahrzeugs, wobei 'ECU' die Abkürzung für "Electronic Control Unit" ist.
Bevorzugt ist die Ausführung der softwareimplementierten Funktion zyklisch ausgestaltet, d. h. dass ein Algorithmus in bestimmten Zeitabschnitten wiederholt ausgeführt wird, wie es beispielsweise in der Regelungstechnik üblich ist, um einen aktuellen Eingangswert von Sensoren mit aktuellen Sollwerten zu vergleichen und in jedem der Zeitschritte einen Signalwert als Stellgröße im Sinne des Regelungsausgangs zu erzeugen. Werden von beiden Votern übereinstimmende Ergebnisse der Ausführungen auf dem ersten Rechenmodul und dem zweiten Rechenmodul nach Beendigung eines jeweiligen Zeitschritts erkannt, kann die Ausführung des Algorithmus im sich anschließenden Zeitschrift wiederholt werden. Dies entspricht dem Normalfall, d. h. der fehlerfreien Ausführung der Funktion über längere Zeiträume und führt typischerweise zu einer sehr großen Zahl von Iterationen in der Ausführung der softwareimplementierten Funktion, beispielsweise in Zeitschriften von 1 ms oder 10 ms über eine Fahrtdauer von 3 Stunden, wenn es sich bei der Recheneinheit um ein Fahrsteuerungssystem eines automatisierten Fahrzeugs handelt. Nur dann, wenn das Fehlersignal erzeugt wird, nachdem von zumindest einem der Voter eine fehlende Übereinstimmung bzw. eine fehlende Konsistenz in den Ergebnissen der Vergleiche der Übereinstimmung festgestellt wurde, kann die reguläre Ausführung der Funktion in paralleler Weise auf dem ersten Rechenmodul und im zweiten Rechenmodul nicht länger zuverlässig garantiert werden, sodass darauf reagiert werden muss. Eine solche Reaktion muss insbesondere bei einem autonomen Fahrzeug automatisch erfolgen. Die Diensteschicht wird auch "Middleware" genannt, dass sie typischerweise das Bindeglied in einer "Client-Server" Architektur darstellt. Diese Middleware dient dem Austausch der Daten zwischen den Votern und wird bevorzugt über kabelgebundenes Ethernet realisiert. Entsprechende Abschirmung der Kabel gegenüber elektromagnetischen Einflüssen ist vorteilhaft vorzusehen, insbesondere wenn elektrisch leitfähige Kabel anstelle von Lichtleitern verwendet werden.
Die Recheneinheit als Ganzes dient damit zum Ausführen einer softwareimplementierten Funktion. Softwareimplementiert heißt in diesem Zusammenhang, dass ein vorab definiertes und abgespeichertes Computerprogramm, wie beispielsweise ein zu Binärcode kompilierter C-Code, auf einem Prozessor ausgeführt wird, und die im Computerprogramm definierten algorithmischen Schritte mit ihren entsprechenden Berechnungen ausgeführt werden. Während ein solcher Vorgang per Definition standardmäßig auf jedem Heimanwender-Rechner erfolgt, zeichnet sich die Recheneinheit besonders dadurch aus, dass sie sich durch ihre Architektur und Konfiguration für sicherheitskritische Anwendungen eignet. Solche sicherheitskritischen Anwendungen führen im Gegensatz zu Anwendungen für den Heimanwender zu einer erhöhten erforderten Zuverlässigkeit, da beim Scheitern einer korrekten Ausführung der gewünschten Funktion mit negativen Konsequenzen zu rechnen ist, die insbesondere für Gesundheit und Leben von Menschen eine Gefahr darstellen oder Sachschäden in diesem Fall zu befürchten sind.
Indem ein erstes Rechenmodul und ein zweites Rechenmodul vorhanden ist, und auf beiden die gewünschte Funktion zeitlich parallel ausgeführt wird, kann bei der fehlerbehafteten Ausführung der Funktion auf einem der Rechenmodule erkannt werden, dass zumindest eines der Rechenmodul fehlerhafte Berechnungen ausführt. Erfindungsgemäß wird jedoch die gewünschte Funktion grundsätzlich nur zweifach parallel ausgeführt, und nicht dreifach, wie aus dem oben genannten Stand der Technik gelehrt wird. Trotzdem wird eine vollwertige "Fail-Operational" Systemarchitektur bei minimaler Anzahl an redundanten Komponenten erhalten.
Es ist damit eine vorteilhafte Wirkung der Erfindung, dass die notwendige Anzahl an Komponenten minimiert wird, während gleichzeitig eine Fail-Operational Systemarchitektur erreicht wird. Insbesondere die im Bezug auf die eingangs erwähnte EP 2 765 045 A1 genannten Nachteile werden hiermit vermieden. Sowohl die Funktionen, als auch die Voter laufen auf zwei verteilten Rechenmodulen, welche durch die Diensteschicht, bevorzugt via Ethernet, miteinander verbunden sind. Somit kann eine separate Entscheidungslogik einspart werden, da auch das Voting redundant ausgeführt wird. Neben dem Entfall der Entscheidungslogik ist der zweite große Vorteil der Erfindung gegenüber EP 2 765 045 A1 die effizientere Skalierbarkeit: Wenn Rechenmodule wie in der Automobiltechnik verwendete ECUs an ein Auslastungsmaximum geraten, kann, durch Hinzunahme zweier neuer ECUs (durch einfaches Verbinden über Ethernet), die Kapazität verdoppelt werden. Die CPUs in der EP 2 765 045 A1 lassen sich nicht skalieren, da sich diese auf einem Schaltkreis befinden. Die EP 2 765 045 A1 brauchte drüberhinaus drei zusätzliche CPUs und eine separate Entscheidungslogik für einen Skalierungsschritt.
Gemäß einer vorteilhaften Ausführungsform ist die Recheneinheit dazu ausgeführt, bei durch den ersten Voter erkannter fehlender Übereinstimmung oder bei durch den zweiten Voter erkannter fehlender Übereinstimmung ein Fehlersignal zu erzeugen.
Gemäß einer weiteren vorteilhaften Ausführungsform ist der erste Voter dazu ausgeführt, sein Ergebnis der Überprüfung auf Übereinstimmung an den zweiten Voter über die Diensteschicht zu übermitteln, und wobei der zweite Voter dazu ausgeführt ist, sein Ergebnis der Überprüfung auf Übereinstimmung an den ersten Voter über die Diensteschicht zu übermitteln, wobei der erste Voter dazu ausgeführt ist, das Ergebnis der Überprüfung auf Übereinstimmung des ersten Voters mit dem Ergebnis der Überprüfung auf Übereinstimmung des zweiten Voters auf Konsistenz hin zu vergleichen, wobei der zweite Voter dazu ausgeführt ist, das Ergebnis der Überprüfung auf Übereinstimmung des zweiten Voters mit dem Ergebnis der Überprüfung auf Übereinstimmung des ersten Voters auf Konsistenz hin zu vergleichen, wobei die Recheneinheit dazu ausgeführt ist, bei durch den ersten Voter erkannter fehlender Konsistenz oder bei durch den zweiten Voter erkannter fehlender Konsistenz ein Fehlersignal zu erzeugen.
Demnach überprüft nicht nur jeder Voter das Ergebnis der Ausführung der Funktion jedes Rechenmoduls durch Vergleich, sondern überprüft auch sein eigenes Ergebnis der Überprüfung und das Ergebnis der Überprüfung des anderen Voters auf Konsistenz der Ergebnisse der Voter selbst. Somit werden dezentrale Voter- Überprüfungen geschaffen, und eine separate Einheit zum Vergleichen der Voter- Ergebnisse entfällt vorteilhaft.
Gemäß einer weiteren vorteilhaften Ausführungsform erfolgen Daten-Übertragungen über die Diensteschicht über Ethernet. Gemäß einer weiteren vorteilhaften Ausführungsform weist die Recheneinheit ein drittes Rechenmodul auf und ist dazu ausgeführt, nur nach erzeugtem Fehlersignal die Ausführung der softwareimplementierten Funktion auf dem dritten Rechenmodul zu aktivieren.
Das dritte Rechenmodul wird vorteilhaft erst dann zur Ausführung der Funktion angesteuert, wenn das Fehlersignal erzeugt wurde, insbesondere durch einen Vergleich der Ergebnisse des ersten und des zweiten Rechenmoduls mit negativem Ausgang oder durch eine erkannte Inkonsistenz der Voter Ergebnisse des ersten und zweiten Voters. Vorteilhaft ist das dritte Rechenmodul damit nicht dauerhaft im Einsatz, sondern nur wenn in der Einheit aus erstem und zweitem Rechenmodul ein Fehler festgestellt wird. Dies ist energiesparender und erlaubt vorteilhaft leichter eine Skalierung über mehrere Recheneinheiten, da beispielsweise nur ein einziges drittes Rechenmodul über eine Vielzahl von Paaren von ersten und zweiten Rechenmodulen in einem System wie einem Fahrzeug verbaut werden muss, da die dritte Recheneinheit nur ein Back-up für mehrere redundante Rechenmodule dann darstellen kann. Das dritte Rechenmodul und damit ein dritter Kanal wird in anderen Worten on-demand bevorzugt über Ethernet und eine service-orientierte Middleware, die Diensteschicht, nur genau dann aufgerufen, wenn die beiden ersten in einem Kalkulationsschritt nicht übereinstimmen. Auch erlaubt der erfindungsgemäße Ansatz, den fehlerhaften Kanal während der Laufzeit zu reparieren.
Gemäß einer weiteren vorteilhaften Ausführungsform weist das dritte Rechenmodul einen dritten Voter auf, wobei das erste Rechenmodul dazu ausgeführt ist, mittels der Diensteschicht das Ergebnis der auf dem ersten Rechenmodul ausgeführten Funktion an den dritten Voter zu übermitteln, wobei das zweite Rechenmodul dazu ausgeführt ist, mittels der Diensteschicht das Ergebnis der auf dem zweiten Rechenmodul ausgeführten Funktion an den dritten Voter zu übermitteln, wobei der dritte Voter dazu ausgeführt ist, die Ergebnisse der auf dem ersten Rechenmodul ausgeführten Funktion und der auf dem zweiten Rechenmodul ausgeführten Funktion und der auf dem dritten Rechenmodul ausgeführten Funktion auf jeweilige Übereinstimmung zu überprüfen.
Gemäß einer weiteren vorteilhaften Ausführungsform ist jedes der Rechenmodule dazu ausgeführt, sein jeweiliges Ergebnis der Ausführung der Funktion an alle jeweils anderen Rechenmodule über die Diensteschicht zu übermitteln, wobei jeder Voter der Rechenmodule dazu ausgeführt ist, die Ergebnisse aller Rechenmodule auf Übereinstimmung zu vergleichen. Dadurch wird vorteilhaft das System on-demand auf ein "2oo3" Niveau gehoben und der fehlerhafte Pfad kann erkannt werden.
Gemäß einer weiteren vorteilhaften Ausführungsform ist jeder der Voter dazu ausgeführt, sein jeweiliges Ergebnis der Überprüfung auf Übereinstimmung an alle jeweiligen übrigen Voter über die Diensteschicht zu übermitteln, wobei die Recheneinheit dazu ausgeführt ist, durch Ausführung einer Mehrheitsfunktion ein übereinstimmendes Ergebnis von Ausführungen der Funktion zu verwenden.
Durch die bedingte Hinzunahme des dritten Rechenmoduls und dessen vollständige und analoge Anbindung an das erste und zweite Rechenmodul (analog wie diese untereinander verbunden sind), kann auch das Prinzip der Vergleiche der Voterergebnisse übernommen werden. Es liegt somit ein vollständiges "2oo3" System vor, das fehlerhafte Rechenmodul kann durch eine Mehrheitsfunktion erkannt werden. Während im Stand der Technik für eine Mehrheitsfunktion häufig ein sogenanntes "majority gate" implementiert wird, ist durch die vollständige Übermittlung von Daten über die Ergebnisse der ausgeführten Funktion an alle anderen Rechenmodule sowie der Austausch der Daten über die Ergebnisse der Voter untereinander eine zuverlässige Diagnose möglich, welches der Rechenmodule (und unter Umständen welcher der Voter) eine fehlerhafte Ausführung vollzieht.
Gemäß einer weiteren vorteilhaften Ausführungsform weist das Recheneinheit weiterhin einen Orchestrator auf, wobei der Orchestrator dazu ausgeführt ist, dasjenige Rechenmodul mit einer fehlerhaften Ausführung der Funktion zu identifizieren und einen Wiederherstellungsversuch der korrekten Ausführung der Funktion am identifizierten Rechenmodul auszuführen.
Der Wiederherstellungsversuch sieht einen Schritt vor, einen sogenannten "Recovery"- Schritt, den fehlerhaften Pfad zu beheben, indem die Funktion auf dem identifizierten fehlerhaften Rechenmodul geschlossen wird, d. h. beendet wird. Dem folgt ein Neustart des ganzen Rechenmoduls oder wahlweise ein Neustart der Ausführung der Funktion, indem der entsprechende Prozess neu gestartet wird, der für die Ausführung der Funktion zuständig ist. Idealerweise befindet sich nach diesem Recovery-Prozess das System wieder in seinem fehlerfreien Ursprungszustand, wodurch vorteilhaft die Verfügbarkeit der Recheneinheit maximiert wird.
Ein weiterer Aspekt der Erfindung betrifft ein Fahrzeug mit einer Recheneinheit wie oben und im Folgenden beschrieben.
Vorteile und bevorzugte Weiterbildungen des vorgeschlagenen Fahrzeugs ergeben sich durch eine analoge und sinngemäße Übertragung der im Zusammenhang mit der vorgeschlagenen Recheneinheit vorstehend gemachten Ausführungen.
Weitere Vorteile, Merkmale und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung, in der - gegebenenfalls unter Bezug auf die Zeichnung - zumindest ein Ausführungsbeispiel im Einzelnen beschrieben ist. Gleiche, ähnliche und/oder funktionsgleiche Teile sind mit gleichen Bezugszeichen versehen.
Es zeigen:
Fig. 1 : Grundelemente der Recheneinheit gemäß einem Ausführungsbeispiel der Erfindung.
Fig. 2: Die Recheneinheit mit ihren vollständigen Elementen aufbauend auf dem Ausführungsbeispiel der Fig. 1.
Die Darstellungen in den Figuren sind schematisch und nicht maßstäblich.
Fig. 1 zeigt eine Recheneinheit 100 zum Ausführen einer softwareimplementierten Funktion für eine sicherheitskritische Anwendung. Die Recheneinheit 100 weist ein erstes Rechenmodul 1 und ein zweites Rechenmodul 2 auf, welche beide dieselben Eingangssignale, symbolisiert durch den verzweigten Eingangspfad der oberen Bildhälfte, erhalten. Sowohl das erste Rechenmodul 1 als auch das zweite Rechenmodul 2 können Steuergeräte, sogenannte ECUs, eines Fahrzeugs sein. Die Rechenmodule 1 ,2 sind jeweils auf ihren eigenen, voneinander unabhängigen integrierten Schaltungen, auch genannt Chips, angeordnet. Jedes der Rechenmodule 1 ,2 stellt damit eine prinzipiell eigene CPU (Abkürzung für "Central Processing Unit") dar, anstatt nur ein bestimmter Kern eines Mehrkernprozessors zu sein. Die auszuführende Funktion sei in diesem Beispiel eine Applikation, die in einem von mehreren Containern (als Container auf dem Gebiet der Software wird eine abtrennbare Umgebung verstanden, die in der Rolle einer Virtualisierung für eine Anwendung bestimmte und konstante Randbedingungen ermöglicht) abläuft. Die Container wiederum werden mithilfe eines Betriebssystems ausgeführt, welches sich speziell für eingebettete Systeme eignet, um auf einem solchen Steuergerät, wie sie die Rechenmodule jeweils sind, ausgeführt zu werden. Eine Diensteschicht, eine sogenannte Middleware, stellt das architektonische Bindeglied zwischen den Rechenmodueln 1 ,2 dar. Über eine kabelbasierte Ethernet Datenverbindung ist die Middleware dazu in der Lage, koordiniert zwischen dem ersten Rechenmodul 1 und dem zweiten Rechenmodul 2 Daten auszutauschen, insbesondere das Ergebnis der auf einem Rechenmodul ausgeführten Funktion an das andere Rechenmodul zu übermitteln. Das jeweilige Berechnungsergebnis wird somit mittels Ethernet (durch die Middleware) zum jeweils anderen Steuergerät gesendet. Somit haben die Voter 11,12 auf beiden Steuergeräten 1,2 sowohl das Ergebnis der eigenen Berechnung, als auch das des anderen Steuergerätes vorliegen. Wird nun eine solche vorgegebene softwareimplementierte Funktion zeitlich parallel auf dem ersten Rechenmodul 1 und dem zweiten Rechenmodul 2 ausgeführt und mittels der Diensteschicht das Ergebnis der auf dem ersten Rechenmodul 1 ausgeführten Funktion an den zweiten Voter 12 und das Ergebnis der auf dem zweiten Rechenmodul 2 ausgeführten Funktion an den ersten Voter 11 übermittelt, kann vom ersten Voter 11 das Ergebnis der auf dem ersten Rechenmodul 1 ausgeführten Funktion mit dem Ergebnis der auf dem zweiten Rechenmodul 2 ausgeführten Funktion auf Übereinstimmung überprüft werden, und vom zweiten Voter 12 das Ergebnis der auf dem zweiten Rechenmodul 2 ausgeführten Funktion mit dem Ergebnis der auf dem ersten Rechenmodul 1 ausgeführten Funktion auf Übereinstimmung überprüft werden. Der erste Voter 11 übermittelt außerdem sein Ergebnis der Überprüfung auf Übereinstimmung an den zweiten Voter 12 über die Diensteschicht, und der zweite Voter 12 übermittelt sein Ergebnis der Überprüfung auf Übereinstimmung an den ersten Voter 11 über die Diensteschicht. Damit kann der erste Voter 11 das Ergebnis der Überprüfung auf Übereinstimmung des ersten Voters 11 mit dem Ergebnis der Überprüfung auf Übereinstimmung des zweiten Voters 12 auf Konsistenz hin vergleichen. Analog dazu vergleicht der zweite Voter 12 das Ergebnis der Überprüfung auf Übereinstimmung des ersten Voters 11 mit dem Ergebnis der Überprüfung auf Übereinstimmung des zweiten Voters 12 auf Konsistenz hin. Nur so lange also, wie der erste und der zweite Voter 11,12 beide feststellen, dass von dem ersten Rechenmodul 1 und von dem zweiten
Rechenmodul 2 übereinstimmende Ergebnisse der Ausführung der Funktion erzielen, wird kein Fehlersignal erzeugt. Die Aufgabe eines jeweiligen Voters 11,12 ist es daher nicht nur, die Ergebnisse des ersten Rechenmoduls 1 und des zweiten Rechenmoduls 2 zu vergleichen, sondern auch das Resultat dieses Vergleichs des eigenen Voters mit dem Resultat des Vergleichs mit dem anderen Voter zu vergleichen. Ein jeweiliger der Voter 11,12 überprüft damit die Ausführung der Rechenmodule sowie die konsistente Ergebnis- Bestimmung zwischen den beiden Votern 11 ,12. Liegt keine Konsistenz vor, wird ein Fehlersignal von der Recheneinheit 100 erzeugt. In diesem Fall der Erzeugung des Fehlersignals, und nur in diesem Fall, wird davon abgewichen, Redundanz durch die lediglich zweifache parallele Ausführung der Funktion zu schaffen, und es wird in diesem Fall die Ausführung der Funktion auf einem dritten Rechenmodul 3 gestartet. Weitere Details hierzu sind in der Fig. 2 dargestellt.
Fig. 2 zeigt die vollständige Architektur der Recheneinheit 100, die den in der Fig. 1 beschriebenen Teil damit mitumfasst. Zusätzlich ist hier jedoch das dritte Rechenmodul 3 mit seinem dritten Voter 13 dargestellt, wobei das dritte Rechenmodul 3 nur dann für die zum ersten Rechenmodul 1 und zum zweiten Rechenmodul 2 parallele Ausführung herangezogen wird, wenn das Fehlersignal erzeugt wird, wie in Fig. 1 beschrieben. Mittels der Diensteschicht wird von jedem der Rechenmodule 1 ,2,3 dann sein jeweiliges Ergebnis der Ausführung der Funktion an alle jeweils anderen Rechenmodule übermittelt, und jeder der Voter 11,12,13 vergleicht die Ergebnisse aller Rechenmodule 1 ,2,3 auf Übereinstimmung. Jeder der Voter 11,12,13 übermittelt wiederum sein jeweiliges Ergebnis der Überprüfung auf Übereinstimmung an alle jeweiligen übrigen Voter über die Diensteschicht, und die Recheneinheit 100 ist dann dazu in der Lage, durch Ausführung einer Mehrheitsfunktion ein übereinstimmendes Ergebnis von Ausführungen der Funktion zu verwenden. Somit ist es möglich, dasjenige der Rechenmodule 1,2,3 zu identifizieren, welches eine fehlerhafte Ausführung der Funktion durchführt. In einem Recovery Prozess der Recheneinheit 100 kann damit versucht werden, durch Neustart des fehlerhaften Rechenmoduls einen einwandfreien Betrieb der Ausführung der Funktion auf diesem identifizierten Rechenmodul wieder herzustellen, und bei Scheitern der Wiederherstellung dieses abzuschalten und durch ein verbleibendes Rechenmodul mit fehlerfreiem Betrieb zu ersetzen, sodass die zweifach redundante Ausführung der Funktion weiter gewährleistet werden kann.
Obwohl die Erfindung im Detail durch bevorzugte Ausführungsbeispiele näher illustriert und erläutert wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen. Es ist daher klar, dass eine Vielzahl von Variationsmöglichkeiten existiert. Es ist ebenfalls klar, dass beispielhaft genannte Ausführungsformen wirklich nur Beispiele darstellen, die nicht in irgendeiner Weise als Begrenzung etwa des Schutzbereichs, der Anwendungsmöglichkeiten oder der Konfiguration der Erfindung aufzufassen sind. Vielmehr versetzen die vorhergehende Beschreibung und die Figurenbeschreibung den Fachmann in die Lage, die beispielhaften Ausführungsformen konkret umzusetzen, wobei der Fachmann in Kenntnis des offenbarten Erfindungsgedankens vielfältige Änderungen, beispielsweise hinsichtlich der Funktion oder der Anordnung einzelner, in einer beispielhaften Ausführungsform genannter Elemente, vornehmen kann, ohne den Schutzbereich zu verlassen, der durch die Ansprüche und deren rechtliche Entsprechungen, wie etwa weitergehende Erläuterungen in der Beschreibung, definiert wird.
Bezugszeichenliste erstes Rechenmodul zweites Rechenmodul drittes Rechenmodul erster Voter zweiter Voter dritter Voter Recheneinheit

Claims

Patentansprüche Recheneinheit (100) zum Ausführen einer softwareimplementierten Funktion für eine sicherheitskritische Anwendung, aufweisend ein erstes Rechenmodul (1) mit einem ersten Voter (11) und ein zweites Rechenmodul (2) mit einem zweiten Voter (12), wobei das erste Rechenmodul (1) und das zweite Rechenmodul (2) auf jeweils eigenen integrierten Schaltungen aufgebracht sind und durch eine Diensteschicht miteinander verbunden sind, wobei die Recheneinheit (100) dazu ausgeführt ist, eine softwareimplementierte Funktion zeitlich parallel auf dem ersten Rechenmodul (1) und dem zweiten Rechenmodul (2) auszuführen und mittels der Diensteschicht das Ergebnis der auf dem ersten Rechenmodul (1) ausgeführten Funktion an den zweiten Voter (12) und das Ergebnis der auf dem zweiten Rechenmodul (2) ausgeführten Funktion an den ersten Voter (11) zu übermitteln, wobei der erste Voter (11) dazu ausgeführt ist, das Ergebnis der auf dem ersten Rechenmodul (1) ausgeführten Funktion mit dem Ergebnis der auf dem zweiten Rechenmodul (2) ausgeführten Funktion auf Übereinstimmung zu überprüfen, und wobei der zweite Voter (12) dazu ausgeführt ist, das Ergebnis der auf dem zweiten Rechenmodul (2) ausgeführten Funktion mit dem Ergebnis der auf dem ersten Rechenmodul (1) ausgeführten Funktion auf Übereinstimmung zu überprüfen. Recheneinheit (100) nach Anspruch 1, wobei die Recheneinheit (100) dazu ausgeführt ist, bei durch den ersten Voter (11) erkannter fehlender Übereinstimmung oder bei durch den zweiten Voter (12) erkannter fehlender Übereinstimmung ein Fehlersignal zu erzeugen. Recheneinheit (100) nach einem der vorhergehenden Ansprüche, wobei der erste Voter (11) dazu ausgeführt ist, sein Ergebnis der Überprüfung auf Übereinstimmung an den zweiten Voter (12) über die Diensteschicht zu übermitteln, und wobei der zweite Voter (12) dazu ausgeführt ist, sein Ergebnis der Überprüfung auf Übereinstimmung an den ersten Voter (11) über die Diensteschicht zu übermitteln, wobei der erste Voter (11) dazu ausgeführt ist, das Ergebnis der Überprüfung auf Übereinstimmung des ersten Voters (11) mit dem Ergebnis der Überprüfung auf Übereinstimmung des zweiten Voters (12) auf Konsistenz hin zu vergleichen, wobei der zweite Voter (12) dazu ausgeführt ist, das Ergebnis der Überprüfung auf Übereinstimmung des zweiten Voters (12) mit dem Ergebnis der Überprüfung auf Übereinstimmung des ersten Voters (11) auf Konsistenz hin zu vergleichen, wobei die Recheneinheit (100) dazu ausgeführt ist, bei vom ersten Voter (11) oder vom zweiten Voter (12) erkannter fehlender Konsistenz ein Fehlersignal zu erzeugen. Recheneinheit (100) nach einem der vorhergehenden Ansprüche, wobei die Recheneinheit (100) dazu ausgeführt ist, nur das erste Rechenmodul (1) und das zweite Rechenmodul (2) zur parallelen Ausführung der Funktion zu verwenden, solange kein Fehlersignal vorliegt. Recheneinheit (100) nach einem der Ansprüche 2 bis 4, wobei die Recheneinheit (100) ein drittes Rechenmodul (3) aufweist und dazu ausgeführt ist, nur nach erzeugtem Fehlersignal die Ausführung der softwareimplementierten Funktion auf dem dritten Rechenmodul (3) zu aktivieren. Recheneinheit (100) nach Anspruch 5, wobei das dritte Rechenmodul (3) einen dritten Voter (13) aufweist, wobei das erste Rechenmodul (1) dazu ausgeführt ist, mittels der Diensteschicht das Ergebnis der auf dem ersten Rechenmodul (1) ausgeführten Funktion an den dritten Voter (13) zu übermitteln, wobei das zweite Rechenmodul (2) dazu ausgeführt ist, mittels der Diensteschicht das Ergebnis der auf dem zweiten Rechenmodul (2) ausgeführten Funktion an den dritten Voter (13) zu übermitteln, wobei der dritte Voter (13) dazu ausgeführt ist, die Ergebnisse der auf dem ersten Rechenmodul (1) ausgeführten Funktion und der auf dem zweiten Rechenmodul (2) ausgeführten Funktion und der auf dem dritten Rechenmodul (3) ausgeführten Funktion auf jeweilige Übereinstimmung zu überprüfen. Recheneinheit (100) nach Anspruch 6, wobei jedes der Rechenmodule (1 ,2,3) dazu ausgeführt ist, sein jeweiliges Ergebnis der Ausführung der Funktion an alle jeweils anderen Rechenmodule über die Diensteschicht zu übermitteln, wobei jeder Voter (11 ,12,13) der Rechenmodule (1 ,2,3) dazu ausgeführt ist, die Ergebnisse aller Rechenmodule (1 ,2,3) auf Übereinstimmung zu vergleichen. Recheneinheit (100) nach Anspruch 7, wobei jeder der Voter (11,12,13) dazu ausgeführt ist, sein jeweiliges Ergebnis der Überprüfung auf Übereinstimmung an alle jeweiligen übrigen Voter über die Diensteschicht zu übermitteln, wobei die Recheneinheit (100) dazu ausgeführt ist, durch Ausführung einer Mehrheitsfunktion ein übereinstimmendes Ergebnis von Ausführungen der Funktion zu verwenden. Recheneinheit (100) nach einem der vorhergehenden Ansprüche, weiterhin aufweisend einen Orchestrator, wobei der Orchestrator dazu ausgeführt ist, dasjenige Rechenmodul mit einer fehlerhaften Ausführung der Funktion zu identifizieren und einen Wiederherstellungsversuch der korrekten Ausführung der Funktion am identifizierten Rechenmodul auszuführen. Fahrzeug mit einer Recheneinheit (100) nach einem der vorhergehenden Ansprüche.
PCT/EP2023/079032 2022-11-11 2023-10-18 Redundante prozessorarchitektur für sicherheitskritische anwendungen Ceased WO2024099723A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102022129939.2A DE102022129939A1 (de) 2022-11-11 2022-11-11 Redundante Prozessorarchitektur für sicherheitskritische Anwendungen
DE102022129939.2 2022-11-11

Publications (1)

Publication Number Publication Date
WO2024099723A1 true WO2024099723A1 (de) 2024-05-16

Family

ID=88506843

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/079032 Ceased WO2024099723A1 (de) 2022-11-11 2023-10-18 Redundante prozessorarchitektur für sicherheitskritische anwendungen

Country Status (2)

Country Link
DE (1) DE102022129939A1 (de)
WO (1) WO2024099723A1 (de)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004029737A1 (de) * 2002-09-20 2004-04-08 Daimlerchrysler Ag Redundante steuergeräteanordnung
EP2765045A1 (de) 2013-02-12 2014-08-13 Paravan GmbH Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs
US20180370540A1 (en) * 2017-06-23 2018-12-27 Nvidia Corporation Method of using a single controller (ecu) for a fault-tolerant/fail-operational self-driving system
EP3699764A1 (de) * 2017-10-19 2020-08-26 CRSC Research & Design Institute Group Co., Ltd. Redundantes ethernetbasiertes sicheres computersystem
EP4009173A1 (de) * 2020-12-02 2022-06-08 The Boeing Company Fehlerbeseitigungsspurströme zur kernsynchronisation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004029737A1 (de) * 2002-09-20 2004-04-08 Daimlerchrysler Ag Redundante steuergeräteanordnung
EP2765045A1 (de) 2013-02-12 2014-08-13 Paravan GmbH Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs
US20180370540A1 (en) * 2017-06-23 2018-12-27 Nvidia Corporation Method of using a single controller (ecu) for a fault-tolerant/fail-operational self-driving system
EP3699764A1 (de) * 2017-10-19 2020-08-26 CRSC Research & Design Institute Group Co., Ltd. Redundantes ethernetbasiertes sicheres computersystem
EP4009173A1 (de) * 2020-12-02 2022-06-08 The Boeing Company Fehlerbeseitigungsspurströme zur kernsynchronisation

Also Published As

Publication number Publication date
DE102022129939A1 (de) 2024-05-16

Similar Documents

Publication Publication Date Title
EP2641176B1 (de) Mikroprozessorsystem mit fehlertoleranter architektur
DE69812763T2 (de) In Situ-System und Verfahren zur autonomen Fehlererkennung, -Isolierung und Korrektur in Raumfahrzeugen
DE112018006702T5 (de) Bestimmung der zuverlässigkeit von fahrzeugsteuerbefehlen unter verwendung eines abstimmungsmechanismus
DE102017106087A1 (de) Fehlertoleranz-muster und schaltprotokoll für mehrere hot- und cold-standby-redundanzen
DE102017210156B4 (de) Vorrichtung und Verfahren zum Ansteuern eines Fahrzeugmoduls
WO2017137222A1 (de) Rechner- und funktionsarchitektur zur erhöhung der ausfallsicherheit einer hilfskraftlenkung
WO2008040641A2 (de) Verfahren und vorrichtung zur fehlerverwaltung
DE102017106086A1 (de) Hybrid-dual-duplex fail-betriebsmuster und verallgemeinerung einer beliebigen anzahl an ausfällen
WO2000067080A1 (de) Regler bzw. triebwerksregler, triebwerk und verfahren zum regeln eines stell- oder antriebssystems bzw. eines triebwerks
WO2022268270A1 (de) Steuereinrichtung sowie assistenzsystem für ein fahrzeug
DE19500188B4 (de) Schaltungsanordnung für eine Bremsanlage
EP3571593A1 (de) Redundante prozessorarchitektur
EP1053153B1 (de) Verfahren zur behandlung von fehlern in einem elektronischen bremssystem und zugehörige vorrichtung
DE102008009652A1 (de) Überwachungseinrichtung und Überwachungsverfahren für einen Sensor, sowie Sensor
DE102012221277A1 (de) Fahrzeugsteuervorrichtung
DE102021212595A1 (de) Verfahren zum Überwachen eines Rechensystems
WO2023066624A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
DE102011087063A1 (de) Kontrollrechnersystem und Verfahren zur beschleunigten Initialisierung einzelner Module
DE102010041437B4 (de) Überprüfung von Funktionen eines Steuersystems mit Komponenten
DE10321229B4 (de) Gegenkontrollierende Prozessoren für Antriebsstrangsteuerungssysteme, die eine dedizierte serielle Datenleitung verwenden
WO2024099723A1 (de) Redundante prozessorarchitektur für sicherheitskritische anwendungen
WO2025171960A1 (de) Fehlererkennungsverfahren
WO2005001692A2 (de) Verfahren und vorrichtung zur überwachung eines verteilten systems
DE19545645A1 (de) Sicherheitskonzept für Steuereinheiten
WO2022263416A1 (de) Steuerungssystem für mindestens ein empfangendes gerät in sicherheitskritischen anwendungen

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23793335

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 23793335

Country of ref document: EP

Kind code of ref document: A1