WO2023066625A1 - Datenverarbeitungsnetzwerk zur datenverarbeitung - Google Patents

Datenverarbeitungsnetzwerk zur datenverarbeitung Download PDF

Info

Publication number
WO2023066625A1
WO2023066625A1 PCT/EP2022/076912 EP2022076912W WO2023066625A1 WO 2023066625 A1 WO2023066625 A1 WO 2023066625A1 EP 2022076912 W EP2022076912 W EP 2022076912W WO 2023066625 A1 WO2023066625 A1 WO 2023066625A1
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
module
data
control parameters
network
Prior art date
Application number
PCT/EP2022/076912
Other languages
English (en)
French (fr)
Inventor
Raphael Diziol
Stefan Egenter
Michael Poehnl
Original Assignee
Robert Bosch Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Publication of WO2023066625A1 publication Critical patent/WO2023066625A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity

Definitions

  • Systems for driver assistance or automated driving consist of many individual software units, which can usually be described with graphs with regard to the data flow. These software units (often also called runnables, nodes or data processing components) are characterized by the fact that a quantity of input data is processed and a quantity of output data is generated from it.
  • the various software units regularly form a complex data processing network with which sensor data is processed in order to carry out actions based on the sensor data. Such actions can be, for example, control tasks within the scope of autonomous ferry operation of a vehicle.
  • Data processing in the data processing network usually includes a plurality of data processing steps or data processing tasks that build on one another and are executed with the data processing components.
  • the probability of systematic and sporadic hardware errors must not exceed a specified frequency that is related to the risk and the expected damage to the system functions. Because newly developed driver assistance systems are regularly used in parallel in a large number of vehicles and the risk has to be assessed in relation to the entire vehicle fleet equipped accordingly, the acceptable probability of the occurrence of hardware errors is extremely low. Compared to today's high-end processors, the computing power of commonly available microcontrollers that meet these security levels is very limited. Their maximum clock rate is around 10% (300 MHz vs. 3 GHz) and there are no internal optimizers, which are standard with off-the-shelf microprocessors (pP) and play a large part in their performance.
  • a data processing network is described here for the redundant and validated implementation of a plurality of consecutive data processing steps, each of which is used to generate output data from input data, with output data from a first data processing step being at least partially simultaneously input data for a further data processing step, with at least one first data processing step being required for the implementation of each data processing step data processing module and a second data processing module are provided, with the data processing network also having a comparator module, with the first data processing modules and the second data processing modules being set up to carry out data processing steps either in a first mode of operation with parallel operation or in a second mode of operation with a pre-computing data processing module and a post-computing data processing module , In the first mode of operation with parallel operation, control parameters of the individual data processing steps are transmitted to the comparator module and the comparator module is set up to carry out at least one comparison of corresponding control parameters that were transmitted by the first data processing modules and the second data processing modules, and based on this comparison at least one synchronized provide control parameters which contain control information relating to
  • the basic approach is that separate hardware (separate cores) is used for the first data processing module and the second data processing module, which has a high computing power and both carry out the same calculation.
  • the comparator module compares the calculations and only if the calculation result is the same is it used for further data processing in the data processing network. The equality is monitored by the data processing module using the control parameters, and the synchronized control parameter is used in the data processing network to control the control flow of the data processing.
  • the points at which the first data processing module and the second data processing module provide the control parameters in order to then forward them to the comparator module are also regularly referred to as synchronization points.
  • the method described here relates to a so-called software lockstep.
  • a software lockstep is to be distinguished from a hardware lockstep.
  • a hardware lockstep requires significantly more complex hardware.
  • the hardware lockstep not claimed here is regularly implemented in such a way that hardware is used which executes each calculation step of the software programs operated on it twice. This means that the software program itself only runs once on the hardware. An operating system sees only one instance of the respective software program. Below the one operating system level, the hardware executes each step of the software twice.
  • the software lockstep described here means that the program is executed twice, twice at the operating system level. If necessary, two independent operating systems (a first operating system on the first data processing module with a first hardware/core and a second operating system on the second data processing module with a second hardware/core) can be operated, which each (and thus twice) execute the respective data processing steps .
  • a software lockstep can also be operated on an operating system, in which case the instruction may then be given at the operating system level to use different hardware (two different cores) for double execution.
  • a hardware lockstep always means that additional hardware (circuits, transistors, etc.) must be required for an additional redundant design, which is located below the operating system level and which the operating system cannot recognize as being separate from one another, but is different from the point of view of the operating system Operating system like a piece of hardware.
  • first data processing module and the second data processing module are designed with identical software and hardware that is identical in terms of its specification (identical cores) is also used. As long as the respective data processing module or the underlying hardware is functioning correctly, the same input data also produce the same output data in both data processing modules.
  • WCET Worst Case Execution Time
  • a data processing step for carrying out such an analysis requires, for example, a much longer time when a hundred traffic signs are visible at the same time than when only two traffic signs are in the field of view.
  • time slices would have to be designed using a WCET in such a way that sufficient time is provided for carrying out the data processing step for all conceivable relevant cases.
  • the next data processing step is carried out ad hoc, with the exact process not needing to be known a priori, which means that there is a high level of flexibility.
  • the order of execution is dictated by the primary engine.
  • the dependent secondary modules calculate “blindly” so to speak. Therefore, the order of execution - if at all - can only be checked using invariants or general rules. This results in the same security classification for the control flow as for the respective hardware used individually.
  • a high ASIL-D level cannot be achieved with such architectures. In other words: by recalculating with the secondary modules, it can be determined later that the calculations in the primary module could have been incorrect - but then it is already too late, because the results of the calculations would have been needed beforehand.
  • the comparison of the calculations can only take place after the end of the redundant calculation step and the subsequent communication of the results.
  • the time until an error in the calculation is noticed has increased basically doubled. This results in an increased error latency, possibly also an unnecessary latency in the regular process.
  • the data processing network presented and the data processing methods implemented with it enable sufficient performance for highly autonomous driving.
  • the presented data processing network enables a combined time- and data-driven architecture. This means that, compared to approaches with an a priori fixed execution order, a flexible execution order is possible in the software lockstep.
  • a software lockstep approach that is carried out in parallel but is not based on time slices is selected, which is implemented on at least two microprocessors (the first data processing module and the second data processing module) as arithmetic units and a control component that runs on additional, trustworthy hardware (the comparator module) is running.
  • This control unit which corresponds to the safety target standard, synchronizes the process on the computing units and compares their results.
  • Every calculation step that is started by a control event is data-deterministic. This means that with the same start state, identical input data always lead to the same output data.
  • the main special feature of the method described here is that (depending on the security requirements of the respective calculations in a single data processing step or a specific (partial) sequence of data processing steps between the first mode of operation with parallel operation or the second mode of operation with a pre-calculating data processing module and recalculating data processing module can be changed.
  • the first mode of operation corresponds to the lockstep approach described, while the second mode of operation corresponds to the mode of operation described above with a pre-computing primary module and dependent post-computing secondary modules.
  • a particularly high performance can be temporarily achieved because the pre-computing data processing module can work essentially unaffected by the second data processing module and the comparator module, like conventional high-performance hardware.
  • the special feature of the data processing network described here is that this performance advantage can be used temporarily and, at the same time, as a superordinate structure, the structure with two parallel computing data processing modules and one Comparator module is present, so that the desired high ASIL level can be achieved in particular for safety-critical aspects.
  • the data processing network has a scheduling recorder which, when operated according to the second mode of operation, is set up to record sequence data relating to the sequence of successive data processing steps and to make them available to the recalculating data processing module for recalculating the sequence of data processing steps .
  • the introduction of the scheduling recorder is based on the knowledge that the order in which the individual data processing steps are carried out within a sequence may vary depending on the data that is being processed or that is generated during data processing. For this reason, in order to enable error-free recalculation of the data processing steps, it may be necessary to record this order as sequence data for recalculation in the recalculating data processing module.
  • the data processing network is preferably set up in such a way that it is possible to switch between the first mode of operation and the second mode of operation depending on the situation (depending on the requirement).
  • it is specified for specific data processing steps within the data processing network whether they are processed according to the first mode of operation or according to the second mode of operation.
  • a specific type of data processing can be selected for specific data processing steps depending on the situation (for example depending on an existing operating situation/driving situation of a motor vehicle in/for which the described method is operated).
  • the comparison of the control parameters includes an identity check and a synchronized control parameter requires an identity of the control parameters from the first data processing module and the second data processing module.
  • the data processing network is set up to use synchronized control parameters provided by the comparator module in order to control further data processing of the output data with further data processing steps of the data processing network.
  • the synchronized control parameter is a validity parameter which contains validity information relating to at least one data processing step that has been carried out.
  • the data processing network has at least one sequencing module which is set up in each case to sort and synchronize control parameters from the data processing modules and/or the data processing steps and then to forward these to the comparator module with a sorting, so that the comparator module can process synchronized control parameters independently of can determine the order in which the data processing modules have executed the data processing steps.
  • the sequencing module is used in particular to understand the order in which data processing steps are completed in the individual data processing modules and in particular on the hardware that is available in each case. In this way, availability of the hardware for carrying out further data processing tasks can be determined.
  • the sequencing module is assigned to the data processing module and transmits the control parameters to the comparator module or the (third) hardware component on which the comparator module is operated.
  • a synchronizer that synchronizes control parameters of the two data processing modules that belong to one another (as long as no error has occurred exactly corresponding) and forms control parameter tuples that are fed to the comparator module.
  • the synchronizer and the comparator module preferably together form a central unit that is operated on a (third) hardware component.
  • the synchronizer achieves flexibility in the execution order of the data processing steps.
  • the hardware of the respective data processing module can also be used (when this hardware has finished carrying out a data processing step) to carry out further data processing steps.
  • the same data processing step is carried out on the first data processing module and the second data processing module, if the process is successful, the same control and data events are generated on each as on the other, but can be generated in a different order due to the parallel processing on the units.
  • the central unit (consisting of the comparator module and synchronizer) now temporarily stores events (control parameters) until the appropriate event (the corresponding control parameter) has arrived from all data processing modules.
  • the associated control parameters can then be compared and evaluated if they are the same, or the synchronized control parameter can be output.
  • an additional task distribution module which then plans and commissions the starting of the individual (next) data processing steps on the respective hardware when synchronized control parameters are available from the hardware module, so that a particularly good utilization of the hardware can be achieved.
  • the task distribution module preferably sends a type of stimulus to the individual data processing modules in order to activate them.
  • the use of the central processing unit or the third hardware component and the comparator module does result in a slight increase in the latency between the execution of two data processing tasks. Overall, however, this increase in latency is acceptable, especially when compared to common primary/secondary module architectures.
  • Stimuli are found by the central processing unit in a certain way. Whenever a correct calculation result was determined by the comparator module by comparing control parameters and a synchronized control parameter could be calculated, this can generate a stimulus, provided the control flow of the data processing network specifies this. Further data processing can then be triggered with or by this stimulus, which requires output data calculated with the respective first data processing module and the respective second data processing module as input data.
  • time Events are generated as stimuli for time-driven execution.
  • the central unit manages the timeline (common logical timeline) of data processing already described above.
  • first data processing modules are implemented with first hardware components and second data processing modules with second hardware components, with first hardware components and second hardware components being physically separate from one another.
  • At least one of the data processing modules has a hardware component that does not conform to ASIL-D.
  • the comparator module is implemented using third hardware components that are physically separate from the first hardware components and the second hardware components.
  • the third hardware component conforms to ASIL-D.
  • the comparator module has a data memory in which determined control parameters are stored with time information, so that a logical timeline is created which depicts the order in which the data processing steps are processed with the data processing modules of the data processing network.
  • a hardware component of the data processing module is significantly more powerful than a hardware component of the comparator module.
  • the possible performance differences between the third hardware component of the comparator module and the (first and second) hardware components of the data processing modules depend on the respective application of the data processing network. It is usual, for example, for a processor clock of the first and second hardware component to be at least 5 times, possibly even 10 times, the processor clock of the third hardware component.
  • control parameters can be calculated as the checksum (CRC) for large amounts of data as output data, if necessary, and only these are used together with the unique packet identification ( alias Meta-Sample) is sent to the comparator module as a control parameter.
  • CRC checksum
  • the actual flow of output data from a data processing step as input data to the next data processing step can take place on the first hardware component and the second hardware component (and possibly also on other hardware components) independently of one another or in parallel, with data transmission interfaces possibly existing between different hardware components that also are independent of the central processing unit or the comparator module.
  • the central processing unit or the comparator module then does not check the original data but, for example, their checksums, which leads to a bit-by-bit comparison of the original content. It should be noted that the first hardware component and the second Hardware component must buffer the original data packets until they are confirmed by the comparator and can be delivered.
  • the comparison of the control parameters includes a check as to whether an error that has occurred during data processing in the first data processing module and/or in the second data processing module is below a tolerance limit and the synchronized control parameter is generated in this case. This means in particular that in such cases the synchronized control parameter may be generated even though an error has occurred which is below the tolerance limit.
  • a method for operating a described data processing network having at least the following steps: a) Determining whether a sequence of successive data processing steps with a first mode of operation with parallel operation of the first data processing module and the second data processing module or with a second mode of operation with a pre-computing data processing module and a post-computing data processing module is to be operated, b) operating the first data processing module and the second data processing module according to the first mode of operation or according to the second mode of operation for carrying out the data processing steps, with the following step cl) being carried out after each data processing step in the first mode of operation and wherein in the second mode of operation the following step c2) is carried out after the completion of the sequence of successive data processing steps: cl) carrying out a comparison of corresponding control parameters transmitted by the first data processing module and the second data processing module with a comparator module and based on this comparison, the provision of at least one synchronized control parameter, which contains control information regarding at least one data processing step that has been carried out,
  • Fig. 3 the processing of a single data processing step with the various data processing modules
  • Fig. 4 an illustration of the second mode of operation of the data processing network described
  • Fig. 1 shows a described data processing network 1 in a motor vehicle 23. It is shown here by way of example that the data processing network 1 is used to process data from sensors 19 is used and an output data receiver 20 is supplied with data by the system. Such an output data receiver 20 can be, for example, a system for autonomous ferry operation or a similar system.
  • the data processing network 1 is used, for example, to reduce the sensor data to decision-relevant parameters, which can be output data 4 from the data processing network 1 .
  • the illustration in FIG. 1 focuses on the parallel first mode of operation of the data processing network.
  • the data processing network 1 also includes hardware components on which the data processing network 1 or its components and modules can be operated.
  • the data processing network 1 carries out individual data processing steps 2 which build on one another. Output data 4 from a data processing step 2 can be input data 3 from a further data processing step 2 .
  • Each data processing step 2 is implemented here with a plurality of data processing modules 5, 6 that are executed as independently as possible. A first data processing module 5 and a second data processing module 6 are shown here. More than two data processing modules can also be provided, which carry out a data processing step 2 (in parallel).
  • the data processing network 1 also includes other components which will be explained in more detail with reference to the other figures. This includes, in particular, the comparator module 7 and possibly also a synchronizer 27, which are only indicated schematically here. Also indicated schematically in FIG. 1 is a scheduling recorder 30, which is used to record a scheduling sequence for the execution of the individual data processing steps 2.
  • the scheduling recorder becomes particularly important when the data processing network is operated in the second mode of operation, because then scheduling may become very important in order to enable the precalculated sequence of data processing steps to be recalculated in the recalculated data processing module.
  • 2 selects a different representation of the data processing network 1 described in the first mode of operation. Three arrows are shown one below the other in FIG.
  • the arrows offer a representation of the processes on the respective hardware components on a logical timeline 17.
  • the upper arrow is a first hardware component 12 on which first data processing modules 5 are implemented.
  • the lower arrow is a second hardware component 13 on which second data processing modules 6 are implemented.
  • the middle arrow is a third hardware component 14 on which the comparator module 7 is implemented.
  • Data processing steps 2 of the data processing network 1 are carried out in first data processing modules 5 and second data processing modules 6 .
  • a control parameter 8 is transmitted to the comparator module 7, which then, by comparing the control parameters 8, detects whether the data processing step 2 was carried out correctly (ie error-free).
  • the comparator module 7 then generates synchronized control parameters 9, which are used to trigger further data processing steps 2, which then further process output data from previous data processing steps 2 (not shown here).
  • the comparator module 8 and the associated components can also be understood as the central unit 24 of the data processing network 1 described.
  • the synchronized control parameters 9 can be understood as stimuli 25 for triggering further data processing steps 2 .
  • FIG. 3 shows the parallel processing of a data processing step 2 according to the first mode of operation by a first data processing module 5 and by a second data processing module 6 in even more detail.
  • first data processing module 5 is implemented on a first hardware component 12
  • second data processing module 6 is implemented on a second hardware component 13 .
  • the first data processing module 5 and the second data processing module 6 each process the same input data 3 and should also generate the same output data 4 in each case.
  • a data processing step 2 or a data processing module 5, 6 can be further subdivided into a plurality of individual data processing components 18, each of which relates to sub-steps of data processing.
  • the data processing step 2 or the data processing module 5 , 6 as they are defined here therefore relate to pre-groupings of sub-steps that have been sensibly selected or specified depending on the application and are executed with the data processing components 18 .
  • the pre-grouping of sub-steps is preferably selected in such a way that no data storage is required within a data processing step 2 or a data processing module 5.6 and that, in particular, no data other than the input data is accessed for the execution.
  • the first data processing module 5 and the second data processing module 6 each generate control parameters 8 which are evaluated by the comparator module 7 .
  • the comparator module 7 is implemented on a third hardware component 14, which is independent of the first hardware component 12 and the second hardware component 13, which forms a central unit 24 and which preferably offers the higher security (higher ASIL level) of the execution already described above.
  • each data processing module 5, 6 is preceded by a sequencing module 11 for obtaining the control parameters 8 from the data processing and the comparator module 7 is preceded by a synchronizer 27 here.
  • the comparator module 7 can be followed by a task distribution module 22 which outputs synchronized control parameters 9 or stimuli 25 for triggering further data processing steps 2 .
  • Synchronizer 27, comparator module 7 and task distribution module 22 can be implemented together on the third hardware component 14 as the central unit 24 described.
  • the data processing network 1 described is preferably operated in such a way that data processing steps 2 are carried out on the hardware that is available and not fully utilized.
  • the task distribution module 22 can cause this distribution of the data processing steps 2 to the available hardware.
  • the execution of the data processing steps 2 carried out takes a different amount of time on each piece of hardware. Sorting of the incoming control parameters 8 is achieved by the synchronizer 27, so that the comparator module 7 can then be used even when the hardware is heavily loaded compares the correct control parameters 8 with one another in order to generate correct synchronized control parameters 9.
  • control parameters 8 are transferred from the synchronizer 27 to the comparator module 7 as control parameter tuples 28 . It is not necessary for input data 3 and output data 4 to be transferred from one data processing step 2 to the next data processing step 2 via the central processing unit 24 or the comparator module 7 .
  • FIG. 4 shows for a sequence 29 of three data processing steps 2 how a second mode of operation can optionally be implemented. It can be seen that the sequence of data processing steps is carried out with the first data processing module 5 . 5.1, 5.2 and 5.3 show a plurality of data processing modules 5 arranged one behind the other along the data flow through the data processing network 1, each of which includes a plurality of data processing steps 2. It can be seen that the sequence 29 executed with the data processing module 5.1 is recalculated with the (recalculating) second data processing module 6 and a comparison of the control parameters 8 with the comparator module 7 is only subsequently carried out. If the comparator module 7 determines that everything is in order, the data processing network described continues to run normally. If the comparator module 7 detects an error, which usually consists of a deviation between the control parameters 8, an error signal 31 is triggered.
  • an error which usually consists of a deviation between the control parameters 8
  • the next first data processing module 5.2 and 5.3 shown here can again be operated in the first mode of operation in parallel with second data processing modules 6.2 and 6.3 not shown here. If it is determined in the comparator module 7 that the calculation of the sequence 29 was correct, everything continues as normal. If an error signal 31 occurs, such data processing steps 2 based on the calculation of the sequence 29 may have to be discarded.
  • FIG. 5 Another representation of the method described is selected in FIG. 5, in which method steps a), b) and c) are carried out for each data processing step 2.
  • the actual data processing steps 2 are always executed redundantly in relation to one another with the first data processing module 5 and with the second data processing module 6. Subsequently, the comparator module 7 is used to check whether the data processing step 2 has been correctly executed before the next data processing step 2 is started.

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

Datenverarbeitungsnetzwerk (1) zur redundanten und validierten Durchführung einer Mehrzahl von aufeinanderfolgenden Datenverarbeitungsschritten (2), die jeweils dazu dienen aus Eingangsdaten (3) Ausgangsdaten (4) zu generieren, wobei Ausgangsdaten (3) eines ersten Datenverarbeitungsschrittes (2) zumindest teilweise gleichzeitig Eingangsdaten (3) eines weiteren Datenverarbeitungsschritten (2) sind, wobei für die Durchführung jedes Datenverarbeitungsschrittes (2) mindestens ein erstes Datenverarbeitungsmodul (5) und ein zweites Datenverarbeitungsmodul (6) vorgesehen sind, wobei das Datenverarbeitungsnetzwerk (1) weiter ein Komparatormodul (7) aufweist, wobei die ersten Datenverarbeitungsmodule (5) und die zweiten Datenverarbeitungsmodule (6) dazu eingerichtet sind Datenverarbeitungsschritte (2) wahlweise in einer ersten Arbeitsweise mit parallelem Betrieb oder in einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5) durchzuführen.

Description

Titel
Datenverarbeitungsnetzwerk zur Datenverarbeitung
Stand der Technik
Systeme für Fahrerassistenz oder automatisiertes Fahren bestehen aus vielen einzelnen Software- Einheiten, die in der Regel bezüglich des Datenflusses mit Graphen beschrieben werden können. Diese Software- Einheiten (oft auch Runnables, Nodes oder Datenverarbeitungskomponenten genannt) zeichnen sich dadurch aus, dass eine Menge von Eingangsdaten verarbeitet werden und daraus eine Menge von Ausgangsdaten erzeugt werden.
In den zuvor genannten Systemen werden Eingangsdaten von Sensoren wie Radar oder Video in einem Graphen aus Datenverarbeitungskomponenten verarbeitet, der in einer statischen Sicht den Datenfluss visualisiert.
Die verschiedenen Software- Einheiten bilden regelmäßig ein komplexes Datenverarbeitungsnetzwerk mit welchem Sensordaten verarbeitet werden, um basierend auf den Sensordaten Aktionen durchzuführen. Solche Aktionen können beispielsweise Steuerungsaufgaben im Rahmen eines autonomen Fährbetriebs eines Fahrzeugs sein. Die Datenverarbeitung in dem Datenverarbeitungsnetzwerk umfasst üblicherweise eine Mehrzahl aufeinander aufbauender Datenverarbeitungsschritte oder Datenverarbeitungsaufgaben, die mit den Datenverarbeitungskomponenten ausgeführt werden.
Als Teil der Anforderungen an die funktionale Sicherheit von Fahrerassistenzsystemen und dem (hoch-)automatisierten Fahren (HAD) darf die Wahrscheinlichkeit für systematische und sporadische Hardwarefehler eine vorgegebene Häufigkeit nicht überschreiten, die in Relation zum Risiko und dem zu erwartenden Schaden der Systemfunktionen steht. Weil neu entwickelte Fahrerassistenzsysteme regelmäßig in einer großen Vielzahl von Fahrzeugen parallel zueinander im Einsatz sind und das Risiko in Bezug auf die gesamte entsprechend ausgestatte Fahrzeugflotte zu bewerten ist, ist die akzeptable Wahrscheinlichkeit für das Auftreten von Hardwarefehlern außerordentlich gering. Im Vergleich mit den heutigen High-End-Prozessoren ist die Rechenleistung von üblichen verfügbaren Mikrocontroller, die diese Sicherheitslevel erfüllen, sehr begrenzt. Ihre maximale Taktung liegt bei ca. 10% (300 MHz vs. 3 GHz) und es fehlen interne Optimierer, wie sie bei den off-the-shelf Mikroprozessoren (pP) Standard sind und einen großen Anteil an deren Performance haben.
Hiervon ausgehend soll ein neuartiger Ansatz zum Aufbau eines Datenverarbeitungsnetzwerks für ein Kraftfahrzeug beschrieben werden, welcher eine Lösung für die begrenzten Rechenleistungen von üblichen verfügbaren Mikrocontrollern für derartige Sicherheitslevels adressiert und gleichzeitig eine umfangreiche Realisierung der Perfomance-Vorteile heutiger High-End- Prozessoren ermöglicht.
Offenbarung der Erfindung:
Hier beschrieben wird ein Datenverarbeitungsnetzwerk zur redundanten und validierten Durchführung einer Mehrzahl von aufeinanderfolgenden Datenverarbeitungsschritten, die jeweils dazu dienen, aus Eingangsdaten Ausgangsdaten zu generieren, wobei Ausgangsdaten eines ersten Datenverarbeitungsschrittes zumindest teilweise gleichzeitig Eingangsdaten eines weiteren Datenverarbeitungsschrittes sind, wobei für die Durchführung jedes Datenverarbeitungsschrittes mindestens ein erstes Datenverarbeitungsmodul und ein zweites Datenverarbeitungsmodul vorgesehen sind, wobei das Datenverarbeitungsnetzwerk weiter ein Komparatormodul aufweist, wobei die ersten Datenverarbeitungsmodule und die zweiten Datenverarbeitungsmodule dazu eingerichtet sind Datenverarbeitungsschritte wahlweise in einer ersten Arbeitsweise mit parallelem Betrieb oder in einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul und einem nachrechnenden Datenverarbeitungsmodul durchzuführen, wobei bei der ersten Arbeitsweise mit parallelem Betrieb Kontrollparameter der einzelnen Datenverarbeitungsschritte an das Komparatormodul übermittelt werden und das Komparatormodul dazu eingerichtet ist, mindestens einen Vergleich sich entsprechender Kontrollparameter, die von den ersten Datenverarbeitungsmodulen und den zweiten Datenverarbeitungsmodulen übermittelt wurden, durchzuführen und basierend auf diesem Vergleich mindestens einen synchronisierten Kontrollparameter bereitzustellen, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes beinhaltet, und wobei bei der zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul und einem nachrechnenden Datenverarbeitungsmodul, eine Sequenz von aufeinanderfolgenden Datenverarbeitungsschritte im vorrechnenden Datenverarbeitungsmodul ausgeführt wird, ohne das zwischen den Datenverarbeitungsschritten Kontrollparameter an das Komparatormodul übermittelt und dort zur Überprüfung verglichen werden, wobei nach der Durchführung der Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten Kontrollparameter an das Komparatormodul übermittelt werden, mit denen eine Nachberechnung der Sequenz von Datenverarbeitungsschritten in dem nachrechnenden Datenverarbeitungsmodul veranlasst wird.
In dem beschriebenen Datenverarbeitungsnetzwerk wird es ermöglicht, einen Software- Lockstep basierend auf einer Hardware zu realisieren, die die entsprechenden Anforderungen (bspw. ASIL-D-Konformität) nicht von Haus aus erfüllt. Dies gelingt insbesondere für Datenverarbeitungsnetzwerke, deren Datenverarbeitung hohe Rechenleistungen erfordern, für welche üblicherweise Hardware mit sehr hoher Leistungsfähigkeit erforderlich ist.
Der Grundansatz ist, dass für das erste Datenverarbeitungsmodul und das zweite Datenverarbeitungsmodul jeweils voneinander getrennte Hardware (voneinander getrennte Cores) verwendet werden, die eine hohe Rechenleistung haben und beide die gleiche Berechnung durchführen. Durch das Komparatormodul erfolgt ein Vergleich der Berechnungen und nur in dem Fall der Gleichheit des Berechnungsergebnisses wird dieses für die weitere Datenverarbeitung in dem Datenverarbeitungsnetzwerk benutzt. Die Gleichheit wird anhand der Kontrollparameter von dem Datenverarbeitungsmodul überwacht und zur Steuerung des Kontrollflusses der Datenverarbeitung wird in dem Datenverarbeitungsnetzwerk der synchronisierte Kontrollparameter verwendet.
Die Punkte, an denen das erste Datenverarbeitungsmodul und das zweite Datenverarbeitungsmodul die Kontrollparameter bereitstellen, um diese dann an das Komparatormodul weiterzuleiten werden regelmäßig auch als Synchronisationspunkte bezeichnet. Das hier beschriebene Verfahren betrifft wie schon ausgeführt einen sogenannten Software- Lockstep. Ein Software- Lockstep ist von einem Hardware- Lockstep abzugrenzen. Für einen Hardware- Lockstep ist erheblich komplexere Hardware erforderlich.
Der hier nicht beanspruchte Hardware Lockstep wird regelmäßig so implementiert, dass eine Hardware verwendet wird, welche jeden Berechnungsschritt der darauf betriebenen Software- Programme zweimal ausführt. Das bedeutet, dass das Software-Programm selbst nur einmal auf der Hardware läuft. Ein Betriebssystem sieht nur eine Instanz des jeweiligen Software-Programms. Die Hardware führt unterhalb der einen Betriebssystemebene jeden Schritt der Software zweimal aus.
Dem gegenüber bedeutet der hier beschriebene Software-Lockstep, dass das Programm doppelt ausgeführt wird, und zwar auf Betriebssystemebene doppelt. Gegebenenfalls können auch zwei voneinander unabhängige Betriebssysteme (ein erstes Betriebssystem auf dem ersten Datenverarbeitungsmodul mit einer ersten Hardware/Core und ein zweites Betriebssystem auf dem zweiten Datenverarbeitungsmodul mit einer zweiten Hardware/Core) betrieben werden, die die jeweiligen Datenverarbeitungsschritte jeweils (und damit doppelt) ausführen.
Ein Software- Lockstep kann auch auf einem Betriebssystem betrieben werden, wobei dann ggf. auf der Ebene des Betriebssystems die Anweisung gegeben wird unterschiedliche Hardware (zwei verschiedene Cores) für die doppelte Ausführung zu verwenden.
Sobald es zwei Instanzen gibt, die ohne Hardwareveränderung replizierbar/vermehrbar sind handelt es sich bei der doppelten Ausführung um einen sogenannten Software- Lockstep. Ein Hardware- Lockstep bedeutet immer, dass für eine zusätzliche redundante Ausführung auch zusätzliche Hardware (Schaltkreise, Transistoren etc. notwendig sein müssen), die unterhalb der Betriebssystemebene angesiedelt sind und die für das Betriebssystem nicht als getrennt voneinander erkennbar sind, sondern sich aus Sicht des Betriebssystems wie eine Hardware darstellen. Durch die Verwendung eines Hardware-Lockstep wird also immer mindestens die doppelte Anzahl von Transistoren notwendig, um die gleiche Leistung zu erreichen wie ohne Hardware- Lockstep.
Durch das beschriebene Datenverarbeitungsnetzwerk bzw. mit dem beschriebenen Datenverarbeitungsnetzwerk ist ein Lockstep-Ansatz auch auf Controllern/Prozessoren möglich, die dafür nicht speziell entwickelt wurden.
Der Normalfall ist allerdings, dass das erste Datenverarbeitungsmodul und das zweite Datenverarbeitungsmodul mit identischer Software ausgeführt sind und auch von ihrer Spezifikation her identische Hardware (identische Cores) verwendet werden. So lange das jeweilige Datenverarbeitungsmodul bzw. die zugrunde liegende Hardware korrekt funktionieren, produzieren dieselben Eingangsdaten in beiden Datenverarbeitungsmodulen auch dieselben Ausgangsdaten.
Wird ein Software- Lockstep für Echtzeit-(nahe) Anwendungen genutzt, so basieren viele bekannte Architekturen auf Zeitscheibenrastern, bei denen die Verarbeitung der Rechenschritte in keinem Fall den vorgegebenen Rahmen überschreiten darf. In diesem Zusammenhang wird oft von der sogenannten WCET (WCET = Worst Case Execution Time) gesprochen. Welche Rechenschritte in welcher Reihenfolge in den Zeitscheiben ausgeführt werden, ist dabei a priori festgelegt. Da die Rechenschritte im Voraus bekannt sind, können die beiden eingesetzten Einheiten die Rechenschritte parallel ausführen. Häufig besteht eine hohe Variabilität wie groß der Rechenaufwand zur Verarbeitung der Eingangsdaten zur Erzeugung von Ausgangsdaten ist. Ein Beispiel ist der Fall einer Bildanalyse zur Ermittlung aller sichtbaren Verkehrszeichen. Ein Datenverarbeitungsschritt zur Durchführung einer solchen Analyse benötigt bspw. eine sehr viel längere Zeit, wenn hundert Verkehrsschilder gleichzeitig sichtbar sind als wenn nur zwei Verkehrsschilder im Sichtbereich liegen. In einem üblichen Software- Lockstep-Ansatz müssten Zeitscheiben anhand einer WCET so ausgelegt werden, dass für alle denkbaren relevanten Fälle jedenfalls ausreichend Zeit zur Durchführung des Datenverarbeitungsschrittes vorgesehen ist.
Im Vergleich dazu sind datengetriebene Systeme flexibler, bei denen aber die Ausführungsreihenfolge vom Ergebnis und der Dauer der vorangegangenen Berechnungen abhängen kann. Die Reihenfolge der Rechenschritte ist dann nicht mehr a priori bekannt. Für einen SW-Lockstep bedeutet diese Eigenschaft, dass mögliche Verzweigungspunkte immer auch Synchronisierungspunkte sein müssen. Bei parallelem Einsatz der Recheneinheiten muss dabei immer erst das Ergebnis eines Rechenschrittes validiert sein, bevor der nächste Schritt sicher feststeht und ausgeführt werden kann.
Daher kann es für datengetriebene Architekturen effizienter sein, nicht parallel zu rechnen, sondern eine Recheneinheit (ohne Synchronisierung vor-) laufen zu lassen und das erzielte Ergebnis - unter Vorgabe der identischen Ausführungsreihenfolge - auf den anderen Einheiten nach zu rechnen und zu verifizieren. Man hat in diesem Fall also ein Primärmodul, welches die Berechnung auf den untergeordneten Sekundärmodulen vorgibt.
Heutige Hardware-Lockstep-fähige Microcontroller erfüllen nicht die Anforderungen an die Rechenleistung, wie sie für das hochautomatisierte Fahren benötigt werden; gleichzeitig erfüllen aktuelle High- Performance- Prozessoren nicht die geforderten ASIL-D Sicherheitseinstufungen.
Um trotzdem ein Rechensystem für das hochautomatisierte Fahren zu erhalten, muss man einen Weg finden, die schnellen, aber unsicheren Prozessoren in entsprechender Weise abzusichern. Dazu wird hier vorgeschlagen einen Software- Lockstep zu verwenden.
Die simpelste Art und Weise dies zu versuchen, wäre den Software- Lockstep auf einem entsprechenden Mikroprozessor zu verwirklichen. Das würde aber nicht nur dessen Rechenleistung (mindestens) halbieren, sondern hätte auch zwei gravierende Probleme: zum einen könnte man systematische Fehler bei redundantem Rechnen auf der identischen Hardware nicht ausschließen, zum anderen würde ein notwendiger Komparator zum Vergleich der Ausgangsdaten/Berechnungsergebnisse ebenfalls auf der unsicheren Hardware laufen, weshalb man den Ergebnissen nicht ausreichend trauen könnte.
Um dieses Problem zu lösen wird hier vorgeschlagen einen Software- Lockstep auf Basis von mindestens zwei Modulen mit voneinander getrennter Hardware und einer Vergleicher-Einheit (Komparator-Modul) zu implementieren, wobei die Vergleicher- Einheit/das Komparator-Modul auf einer zusätzlichen ASIL-D konformen Hardware läuft. Da bei den weiter oben beschriebenen Ansätzen unter Berücksichtigung einer WCET die maximal benötigte Rechenzeit vorgehalten werden muss, diese typischerweise aber nur in Ausnahmen benötigt wird, bleibt in den meisten Schritten Zeit „übrig“, die sich über die Verarbeitungskette des Systems zu einer nicht akzeptablen Latenz aufsummiert und zu einer schlechteren Auslastung der Hardware führt. Die Gefahr bei einem parallelen Software- Lockstep mit einer a priori festgelegten Ausführungsreihenfolge und der Verwendung von WCET ist also, dass die geforderte maximale Latenz im Gesamtsystem nicht erreicht bzw. unterschritten werden kann.
Eine deutlich bessere Nutzung könnte man mit einer datengetriebenen Architektur erreichen, wie sie weiter oben beispielsweise mit einem Primärmodul und nachrechnenden Sekundärmodulen aufgebaut sein kann. In einer solchen Architektur wird der jeweils nächste Datenverarbeitungsschritt ad hoc ausgeführt, wobei der genaue Ablauf a priori nicht bekannt sein muss und damit eine hohe Flexibilität besteht.
Eine solche Architektur hat allerdings insbesondere für die hier beschriebenen automobilen Anwendungen Nachteile, die im Folgenden kurz erläutert werden sollen:
Die Ausführungsreihenfolge wird vom Primärmodul vorgegeben. Die abhängigen Sekundärmodule rechnen gewissermaßen „blind“ nach. Daher kann die Reihenfolge der Ausführung - wenn überhaupt - nur anhand von Invarianten bzw. allgemeiner Regeln überprüft werden. Daraus ergibt sich für den Kontrollfluss dieselbe Sicherheitseinstufung wie für die jeweilige verwendete Hardware einzeln. Ein hohes ASIL-D-Level ist mit solchen Architekturen nicht erreichbar. In anderen Worten: Es kann durch das Nachrechnen mit den Sekundärmodulen zwar nachträglich festgestellt werden, dass die Berechnungen im Primärmodul fehlerhaft gewesen sein könnten - dann ist es jedoch bereits zu spät, weil die Ergebnisse der Berechnungen bereits vorher benötigt worden wären.
Der Vergleich der Berechnungen kann immer erst nach Beendigung des redundanten Rechenschrittes und der anschließenden Ergebniskommunikation stattfinden. Die Zeit, bis ein Fehler bei der Berechnung auffällt, hat sich prinzipbedingt verdoppelt. Daraus ergibt sich eine erhöhte Fehlerlatenz, gegebenenfalls auch eine unnötige Latenz im regulären Ablauf.
Das heißt, bekannte Ansätze eines Locksteps mit Primärmodul und Sekundärmodul(en) erlauben zwar eine flexiblere und datengetriebene Ausführung, haben aber auch das Problem einer erhöhten Latenz.
Das vorgestellte Datenverarbeitungsnetzwerk und damit implementierte Datenverarbeitungsverfahren ermöglichen eine ausreichende Performance für das hochautonome Fahren. Das vorgestellte Datenverarbeitungsnetzwerk ermöglicht eine kombinierte Zeit- als auch Daten-getriebene Architektur. D.h. es ist im Vergleich zu Ansätzen mit einer a priori festgelegten Ausführungsreihenfolge eine flexible Ausführungsreihenfolge im Software- Lockstep möglich.
Dazu wird ein parallel durchgeführter, aber nicht auf Zeitscheiben basierender Software- Lockstep- Ansatz gewählt, der auf mindestens zwei Mikroprozessoren (dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul) als Recheneinheiten und einer Kontrollkomponente verwirklicht wird, die auf einer zusätzlichen, vertrauenswürdigen Hardware (dem Komparator-Modul) läuft.
Diese der Sicherheitszielnorm entsprechende Kontrolleinheit synchronisiert den Ablauf auf den Recheneinheiten und vergleicht deren Ergebnisse.
Im Vergleich zum Primär/Sekundärmodul-Lockstep werden die redundanten Berechnungsschritte (quasi) gleichzeitig verarbeitet, ergeben somit keine Kaskade und damit ein besseres Latenzverhalten (siehe Abbildung 3).
Anstatt die kompletten Datenpakete zum Vergleicher zu senden, ist es in dem hier beschriebenen Datenverarbeitungsnetzwerk auch möglich nur die Quersummen der Daten(-pakete) als Kontrollparameter von den Datenverarbeitungsmodulen zum Komparatormodul zu übertragen, was ggf. den Kommunikationsaufwand deutlich vermindern kann.
Durch diese Optimierungen und den gemischten, also Daten- und Zeitgetriebenen Betrieb wird eine gute und effiziente Auslastung der Hardware erreicht. Aus Sicht einer Sicherheitsarchitektur entspricht der Aufbau des beschriebenen Datenverarbeitungsnetzwerks der Dekomposition einer sicherheitskritischen Aufgabe. Für die einzelnen Recheneinheiten ergibt sich daraus eine reduzierte ASIL-Anforderung, so dass sich bereits mit heute existierenden High- Performance- Prozessoren eine ASIL-D Einstufung des Gesamtsystems erreichen lässt.
Um das beschriebene Datenverarbeitungsnetzwerk für die Ausführung einer Software anwenden zu können, bestehen folgende Voraussetzungen: alle Daten- und alle relevanten Kontrollevents werden auf einen Zeitstrahl oder einer dazu äquivalenten Struktur, wie z.B. eine Event-Queue, abgebildet. Der Zeitstrahl kann auch als "Common Logical Timeline" bezeichnet werden. jeder Berechnungsschritt, der durch ein Kontrollevent gestartet wird, ist Daten-deterministisch. D.h. bei gleichem Startzustand führen identische Eingangsdaten auch immer zu den gleichen Ausgangsdaten.
Die wesentliche Besonderheit des hier beschriebenen Verfahrens ist, dass gezielt (je nach Anforderung an die Sicherheit der jeweiligen Berechnungen in einem einzelnen Datenverarbeitungsschritt bzw. einer bestimmten (Teil- )Sequenz von Datenverarbeitungsschritten zwischen der ersten Arbeitsweise mit parallelem Betrieb oder der zweiten Arbeitsweise mit vorrechnendem Datenverarbeitungsmodul und nachrechnendem Datenverarbeitungsmodul gewechselt werden kann.
Die erste Arbeitsweise entsprechend dem beschriebenen Lockstep-Ansatz, während die zweite Arbeitsweise der weiter oben beschriebenen Arbeitsweise mit einem vorrechnendem Primärmodul und abhängigen nachrechnenden Sekundärmodulen entspricht. In dieser Arbeitsweise kann temporär eine besonders hohe Performance erreicht werden, weil das vorrechnende Datenverarbeitungsmodul im Wesentlichen unbeeinflusst von dem zweiten Datenverarbeitungsmodul und dem Komparatormodul arbeiten kann wie eine übliche Hochleistungshardware. Die Besonderheit des hier beschriebenen Datenverarbeitungsnetzwerks besteht darin, dass dieser Performance-Vorteil Temporär genutzt werden kann und gleichzeitig als übergeordnete Struktur der Aufbau mit zwei parallel rechnenden Datenverarbeitungsmodulen und einem Komparatormodul vorhanden ist, so dass insbesondere für sicherheitskritische Aspekte die gewünschten hohen ASIL-Level erreicht werden können.
In diesem Zusammenhang ist es besonders vorteilhaft, wenn das Datenverarbeitungsnetzwerk einen Scheduling- Recorder aufweist, der bei einem Betrieb gemäß der zweiten Arbeitsweise dazu eingerichtet ist Sequenzdaten betreffend die Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten aufzuzeichnen und dem nachrechnenden Datenverarbeitungsmodul zur Nachberechnung der Sequenz von Datenverarbeitungsschritten zur Verfügung zu stellen.
Der Einführung des Scheduling- ecorders liegt die Erkenntnis zu Grunde, dass die Reihenfolge der Ausführung der einzelnen Datenverarbeitungsschritte innerhalb einer Sequenz unter Umständen je nach Daten, die verarbeitet werden bzw. die während der Datenverarbeitung entstehen, variabel sein kann. Um ein fehlerfreies Nachrechnen der Datenverarbeitungsschritte zu ermöglichen ist es aus diesem Grund unter Umständen erforderlich diese Reihenfolge als Sequenzdaten aufzuzeichnen für die Nachberechnung in dem nachrechnenden Datenverarbeitungsmodul zur Verfügung zu stellen.
Bevorzugt ist das Datenverarbeitungsnetzwerk so eingerichtet, dass Situationsabhängig (je nach Anforderung) zwischen der ersten Arbeitsweise und der zweiten Arbeitsweise gewechselt werden kann. In Ausführungsvarianten ist für bestimmte Datenverarbeitungsschritte innerhalb des Datenverarbeitungsnetzwerks festgelegt, ob diese gemäß der ersten Arbeitsweise oder gemäß der zweiten Arbeitsweise bearbeitet werden. Es sind allerdings auch Varianten möglich, bei denen für bestimmte Datenverarbeitungsschritte situationsabhängig (beispielsweise in Abhängigkeit einer vorliegenden Betriebssituation/Fahrsituation eines Kraftfahrzeugs in/für welches das beschriebene Verfahren betrieben wird) eine bestimmte Art der Datenverarbeitung ausgewählt werden kann.
Besonders vorteilhaft ist es, wenn der Vergleich der Kontrollparameter eine Identitätsprüfung umfasst und ein synchronisierter Kontrollparameter eine Identität der Kontrollparameter von dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul voraussetzen. Außerdem ist es vorteilhaft, wenn das Datenverarbeitungsnetzwerk dazu eingerichtet ist von dem Komparatormodul bereitgestellte synchronisierte Kontrollparameter zu verwenden, um eine weitere Datenverarbeitung der Ausgangsdaten mit weiteren Datenverarbeitungsschritten des Datenverarbeitungsnetzwerks zu steuern.
Darüber hinaus ist es vorteilhaft, wenn der synchronisierte Kontrollparameter ein Validitätsparameter ist, welcher eine Validitätsinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes beinhaltet.
Außerdem ist es vorteilhaft, wenn das Datenverarbeitungsnetzwerk mindestens ein Sequentialisierungsmodul aufweist, welches jeweils dazu eingerichtet ist Kontrollparameter von den Datenverarbeitungsmodulen und/oder den Datenverarbeitungsschritten zu sortieren und zu synchronisieren und diese dann mit einer Sortierung an das Komparatormodul weiterzuleiten, damit das Komparatormodul synchronisierte Kontrollparameter unabhängig von der Reihenfolge ermitteln kann, in der die Datenverarbeitungsmodule die Datenverarbeitungsschritte ausgeführt haben.
Das Sequentialisierungsmodul dient insbesondere dazu nachzuvollziehen in welcher Reihenfolge Datenverarbeitungsschritte in den einzelnen Datenverarbeitungsmodulen und insbesondere auf der jeweils zur Verfügung stehenden Hardware abgeschlossen sind. Auf diese Art- und Weise kann eine Verfügbarkeit der Hardware zur Durchführung weiterer Datenverarbeitungsaufgaben festgestellt werden. Das Sequentialisierungsmodul ist jeweils dem Datenverarbeitungsmodul zugeordnet und übermittelt den Kontrollparameter an das Komparatormodul bzw. die (dritte) Hardwarekomponente auf welcher das Komparatormodul betrieben wird.
Zusätzlich existiert bevorzugt ein Synchronizer, der jeweils zueinander gehörende (sich so lange kein Fehler aufgetreten ist genau entsprechende) Kontrollparameter der beiden Datenverarbeitungsmodule miteinander synchronisiert und ggf. Kontrollparametertupel bildet, die dem Komparatormodul zugeführt werden. Der Synchronizer und das Komparatormodul bilden bevorzugt gemeinsam eine Zentraleinheit, die auf einer (dritten) Hardware- Komponente betrieben wird. Durch den Synchronizer wird eine Flexibilität in der Ausführungsreihenfolge der Datenverarbeitungsschritte erreicht. Die Hardware des jeweiligen Datenverarbeitungsmoduls kann (wenn diese Hardware mit der Durchführung eines Datenverarbeitungsschrittes fertig ist) auch genutzt werden, um weitere Datenverarbeitungsschritte durchzuführen.
Da auf dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul der gleiche Datenverarbeitungsschritt durchgeführt wird, werden bei erfolgreichem Ablauf auf jedem die gleichen Kontroll- und Datenereignisse wie auf dem anderen erzeugt, können aufgrund der parallelen Verarbeitung auf den Einheiten aber in unterschiedlicher Reihenfolge generiert werden.
Die Zentraleinheit (bestehend aus Komparatormodul und Synchronizer) speichert nun Events (Kontrollparameter) zwischen, bis von allen Datenverarbeitungsmodulen das passende Event (der entsprechende Kontrollparameter) angekommen ist. Die zusammengehörigen Kontrollparameter können dann verglichen und bei Gleichheit ausgewertet werden bzw. es kann der synchronisierte Kontrollparameter ausgegeben werden.
Bevorzugt existiert zusätzlich ein Aufgabenverteilungsmodul, welches dann anschließend beim Vorliegen von synchronisierten Kontrollparametern von dem Hardwaremodul das Starten der einzelnen (nächsten) Datenverarbeitungsschritte auf der jeweiligen Hardware plant und beauftragt, so dass eine besonders gute Auslastung der Hardware erreicht werden kann.
Das Aufgabenverteilungsmodul setzt bevorzugt eine Art Stimuli an die einzelnen Datenverarbeitungsmodule ab, um diese zu aktivieren. Durch den Einsatz der Zentraleinheit bzw. der dritten Hardwarekomponente und des Komparatormoduls tritt zwar eine geringfügige Erhöhung der Latenz zwischen der Durchführung von zwei Datenverarbeitungsaufgaben auf. Insgesamt ist diese Steigerung der Latenz jedoch akzeptabel, insbesondere im Vergleich zu üblichen Primär/Sekundär-Modul-Architekturen.
Für den Fall, dass die Zentraleinheit bzw. der Synchronizer und die Sequentialisierungs-module und das Komparatormodul keine eindeutige Reihenfolge der empfangenen Kontrollparameter/Events feststellen können, so kann ein Fehlerfall festgestellt werden. Je nach Anwendungsfall kann dies ein erneutes Nachrechnen oder einen Abbruch der Datenverarbeitung mit dem Datenverarbeitungsnetzwerk nach sich ziehen.
Stimuli werden von der Zentraleinheit in gewisser Weise aufgefunden. Immer dann, wenn von dem Komparatormodul ein korrektes Berechnungsergebnis durch den Vergleich von Kontrollparametern ermittelt wurde und ein synchronisierter Kontrollparameter berechnet werden konnte, kann dies ddies einen Stimulus erzeugen, vorausgesetzt der Kontrollfluss des Datenverarbeitungsnetzwerks gibt dies vor. Mit bzw. von diesem Stimulus kann dann eine weitere Datenverarbeitung ausgelöst werden, die mit dem jeweiligem ersten Datenverarbeitungsmodul und dem jeweiligen zweiten Datenverarbeitungsmodul berechnete Ausgangsdaten als Eingangsdaten benötigt.
Daneben können Zeit-. Events als Stimuli für eine zeitgetriebene Ausführung generiert werden.
Die Zentraleinheit verwaltet gewissermaßen den weiter oben schon beschriebenen Zeitstrahl (Common Logical Timeline) der Datenverarbeitung.
Damit ergibt sich im Erfolgsfall ein Ergebnis-identischer Ablauf auf allen Recheneinheiten, daten- wie auch zeitgetrieben, trotz möglicher Unterschiede in den lokalen Ausführungsreihenfolgen.
Vorteilhaft ist es, wenn erste Datenverarbeitungsmodule mit ersten Hardwarekomponenten und zweite Datenverarbeitungsmodule mit zweiten Hardwarekomponenten realisiert sind, wobei erste Hardwarekomponenten und zweite Hardwarekomponenten physisch voneinander getrennt sind.
Auch ist es vorteilhaft, wenn mindestens eines der Datenverarbeitungsmodule eine Hardwarekomponente aufweist, die nicht ASIL-D konform ist.
Besonders vorteilhaft ist es, wenn beide Hardwarekomponenten der Datenverarbeitungsmodule nicht ASIL-D konform sind.
Außerdem ist es vorteilhaft, wenn das Komparatormodul mit dritten Hardwarekomponenten realisiert ist, welche physisch von den ersten Hardwarekomponenten und den zweiten Hardwarekomponenten getrennt ist. ln diesem Zusammenhang ist es vorteilhaft, wenn die dritte Hardwarekomponente ASIL-D-konform ist.
Auch ist es vorteilhaft, wenn das Komparatormodul einen Datenspeicher aufweist, in welchem ermittelte Kontrollparameter mit Zeitinformationen abgelegt werden, so dass ein logischer Zeitstrahl entsteht, welcher die Reihenfolge der Abarbeitung der Datenverarbeitungsschritte mit den Datenverarbeitungsmodulen des Datenverarbeitungsnetzwerks abbildet.
In diesem Zusammenhang ist es auch vorteilhaft, wenn eine Hardwarekomponente der Datenverarbeitungsmodule deutlich leistungsstärker ist als eine Hardwarekomponente des Komparatormoduls. Die möglichen Leistungsunterschiede zwischen der dritten Hardwarekomponente des Komparatormoduls und den (ersten und zweiten) Hardwarekomponenten der Datenverarbeitungsmodule richten sich nach dem jeweiligen Anwendungsfall des Datenverarbeitungsnetzwerks. Üblich ist beispielsweise, dass ein Prozessortakt der erste und zweiten Hardwarekomponente mindestens 5 mal ggf. sogar 10 mal so groß ist, wie der Prozessortakt der dritten Hardwarekomponente.
Um die Kommunikationsstrecke zwischen den Datenverarbeitungsmodulen und der Zentraleinheit (Komparatormodul und ggf. Sequentialsierungsmodul und Aufgabenverteilungsmodul) zu entlasten, können für große Datenmengen als Ausgangsdaten ggf. Kontrollparameter als deren Quersumme (CRC) berechnet werden und nur diese werden zusammen mit der eindeutigen Paket- Identifikation (alias Meta-Sample) als Kontrollparameter an das Komparatormodul gesendet. Der eigentliche Fluss von Ausgangsdaten eines Datenverarbeitungsschrittes als Eingangsdaten zum nächsten Datenverarbeitungsschritt kann auf der ersten Hardwarekomponente und der zweiten Hardwarekomponente (und ggf. auch noch auf weiteren Hardwarekomponenten) unabhängig voneinander bzw. parallel zueinander stattfinden, wobei ggf. Datenübertragungsschnittstellen zwischen verschiedenen Hardwarekomponenten existieren, die auch unabhängig von der Zentraleinheit bzw. dem Komparatormodul sind. Die Zentraleinheit bzw. das Komparatormodul überprüft dann nicht die Originaldaten, sondern bspw. deren Quersummen, was zu einem Bit-weisen Vergleich des Originalinhalts führt. Dabei ist zu beachten, dass die erste Hardwarekomponente und die zweite Hardwarekomponente die originalen Datenpakete zwischenpuffern müssen, bis sie vom Vergleicher bestätigt sind und ausgeliefert werden können.
Da die hier vorgeschlagene Berechnung der Quersummen als Kontrollparameter zur Übergabe an das Komparatormodul auch einen nicht zu vernachlässigenden Ressourcenverbrauch darstellt, ist es auch möglich, dass je nach Datenmenge der Ausgangsdaten entschieden wird, ob ein unmittelbarer Vergleich der Ausgangsdaten oder ein Vergleich von Quersummen der Ausgangsdaten erfolgt.
Besonders vorteilhaft ist es, wenn der Vergleich der Kontrollparameter eine Prüfung umfasst, ob ein bei der Datenverarbeitung im ersten Datenverarbeitungsmodul und/oder im zweiten Datenverarbeitungsmodul aufgetretener Fehler unterhalb einer Toleranzgrenze liegt und in diesem Fall der synchronisierte Kontrollparameter erzeugt wird. Dies bedeutet insbesondere, dass in solchen Fällen der synchronisierte Kontrollparameter ggf. erzeugt wird, obwohl ein Fehler aufgetreten ist, der allerdings unterhalb der Toleranzgrenze liegt.
Hier auch beschrieben werden soll ein Verfahren zum Betrieb eines beschriebenen Datenverarbeitungsnetzwerks, aufweisend zumindest die folgenden Schritte: a) Festlegen, ob eine Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten mit einer ersten Arbeitsweise mit parallelem Betrieb des ersten Datenverarbeitungsmoduls und des zweiten Datenverarbeitungsmoduls oder mit einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul und einem nachrechnenden Datenverarbeitungsmodul betrieben werden soll, b) Betreiben des ersten Datenverarbeitungsmoduls und des zweiten Datenverarbeitungsmoduls gemäß der ersten Arbeitsweise oder gemäß der zweiten Arbeitsweise zur Durchführung der Datenverarbeitungsschritte, wobei in der ersten Arbeitsweise der folgende Schritt cl) nach jedem Datenverarbeitungsschritt durchgeführt wird und wobei bei der zweiten Arbeitsweise der folgende Schritt c2) nach dem Abschluss der Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten durchgeführt wird: cl) Durchführen eines Vergleichs entsprechender Kontrollparameter, die von dem ersten Datenverarbeitungsmodul und dem zweiten Datenverarbeitungsmodul übermittelt wurden mit einem Komparatormodul und basierend auf diesem Vergleich, das Bereitstellen mindestens eines synchronisierten Kontrollparameter, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes beinhaltet, und c2) Nachberechnung der Sequenz von Datenverarbeitungsschritten in dem nachrechnenden Datenverarbeitungsmodul anhand von Kontrollparameter, die bei der Berechnung der Sequenz von Datenverarbeitungsschritten in dem vorrechnenden Datenverarbeitungsmodul ermittelt wurden und Durchführen eines Vergleichs der Berechnungen mit dem Komparatormodul und basierend auf diesem Vergleich Bereitstellen mindestens einen synchronisierten Kontrollparameter, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Sequenz von Datenverarbeitungsschritten beinhaltet.
Das beschriebene Datenverarbeitungsnetzwerk sowie das technische Umfeld werden nachfolgend anhand der Figuren erläutert. Die Figuren zeigen bevorzugte Ausführungsbeispiele, die auf die Offenbarung nicht begrenzt sind. Die Figuren sind nur schematisch und sie verdeutlichen jeweils einzelne Aspekte des beschriebenen Datenverarbeitungsnetzwerks. Es zeigen:
Fig. 1: ein beschriebenes Datenverarbeitungsnetzwerk;
Fig. 2: eine Bearbeitung der einzelnen Datenverarbeitungsschritte auf einem logischen Zeitstrahl;
Fig. 3: die Bearbeitung eines einzelnen Datenverarbeitungsschrittes mit den verschiedenen Datenverarbeitungsmodulen,
Fig. 4: eine Darstellung der zweiten Arbeitsweise des beschriebenen Datenverarbeitungsnetzwerks, und
Fig. 5: ein Ablaufdiagramm des beschriebenen Verfahrens;
Fig. 1 zeigt ein beschriebenes Datenverarbeitungsnetzwerk 1 in einem Kraftfahrzeug 23. Beispielhaft ist hier gezeigt, dass das Datenverarbeitungsnetzwerk 1 zur Verarbeitung von Daten von Sensoren 19 dient und von dem System ein Ausgangsdatenempfänger 20 mit Daten versorgt wird. Ein solcher Ausgangsdatenempfänger 20 kann beispielsweise ein System für einen autonomen Fährbetrieb oder ein ähnliches System sein. Das Datenverarbeitungsnetzwerk 1 dient beispielsweise zur Reduktion der Sensordaten auf entscheidungserhebliche Parameter, die Ausgangsdaten 4 des Datenverarbeitungs-netzwerks 1 sein können. In der Darstellung in Fig. 1 ist der Schwerpunkt auf die parallele erste Arbeitsweise des Datenverarbeitungsnetzwerks gelegt.
Mit dem Datenverarbeitungsnetzwerk 1 sind hier auch Hardwarekomponenten umfasst, auf denen das Datenverarbeitungsnetzwerk 1 bzw. dessen Komponenten und Module betrieben werden können.
Das Datenverarbeitungsnetzwerk 1 führt einzelne Datenverarbeitungsschritte 2 aus, die aufeinander aufbauen. Ausgangsdaten 4 eines Datenverarbeitungsschrittes 2 können Eingangsdaten 3 eines weiteren Datenverarbeitungsschrittes 2 sein. Jeder Datenverarbeitungsschritt 2 wird hier mit mehreren möglichst unabhängig voneinander ausgeführten Datenverarbeitungsmodulen 5,6 realisiert. Hier sind jeweils ein erstes Datenverarbeitungsmodul 5 und ein zweites Datenverarbeitungsmodul 6 gezeigt. Es können auch mehr als zwei Datenverarbeitungsmodule vorgesehen sein, die einen Datenverarbeitungsschritt 2 (parallel) durchführen.
Das Datenverarbeitungsnetzwerk 1 umfasst noch weitere Komponenten, die anhand der weiteren Figuren noch detailliert erläutert werden. Dazu gehört insbesondere das Komparatormodul 7 und ggf. auch ein Synchronizer 27, die hier nur schematisch mit angedeutet sind. Schematisch in Fig. 1 ebenfalls angedeutet ein Scheduling-Recorder 30, welcher zur Aufzeichnung einer Scheduling-Reihenfolge der Ausführung der einzelnen Datenverarbeitungsschritte 2 dient. Der Scheduling- Recorder gewinnt insbesondere an Bedeutung, wenn das Datenverarbeitungsnetzwerk in der zweiten Arbeitsweise betrieben wird, weil dann ein Scheduling unter Umständen sehr wichtig wird, um eine Nachberechnung der vorberechneten Sequenz von Datenverarbeitungsschritten in dem nachrechnenden Datenverarbeitungsmodul zu ermöglichen. Fig. 2 wählt eine andere Darstellung des beschriebenen Datenverarbeitungsnetzwerks 1 in der ersten Arbeitsweise. In der Fig. 2 sind untereinander drei Pfeile dargestellt, die die einzelnen Hardwarekomponenten definieren und die gleichzeitig auch die einzelnen Verfahrensschritte a), b) und c) des beschriebenen Verfahrens wiedergeben. Die Pfeile bieten gleichzeitig eine Darstellung der Abläufe auf den jeweiligen Hardwarekomponenten auf einem logischen Zeitstrahl 17. Der obere Pfeil ist eine erste Hardwarekomponente 12 auf welchem erste Datenverarbeitungsmodule 5 implementiert sind. Der untere Pfeil ist eine zweite Hardwarekomponente 13 auf der zweite Datenverarbeitungsmodule 6 implementiert sind. Der mittlere Pfeil ist eine dritte Hardwarekomponente 14 auf welcher das Komparatormodul 7 realisiert ist. In ersten Datenverarbeitungsmodulen 5 und zweiten Datenverarbeitungsmodulen 6 werden jeweils Datenverarbeitungsschritte 2 des Datenverarbeitungsnetzwerks 1 ausgeführt. Immer wenn ein Datenverarbeitungsschritt 2 abgeschlossen ist, wird ein Kontrollparameter 8 an das Komparatormodul 7 übermittelt, welches dann durch einen Vergleich der Kontrollparameter 8 erkennt, ob der Datenverarbeitungsschritt 2 korrekt (d.h. fehlerfrei) ausgeführt wurde. Das Komparatormodul 7 erzeugt dann synchronisierte Kontrollparameter 9, die zur Auslösung weiterer Datenverarbeitungsschritte 2 verwendet werden, welche dann hier (hier nicht dargestellte) Ausgangsdaten vorangegangener Datenverarbeitungsschritte 2 weiterverarbeiten. Das Komparatormodul 8 und die zugehörigen Komponenten können auch als Zentraleinheit 24 des beschriebenen Datenverarbeitungsnetzwerks 1 verstanden werden. Die synchronisierten Kontrollparameter 9 können als Stimuli 25 für die Auslösung weiterer Datenverarbeitungsschritte 2 verstanden werden.
In Fig. 3 ist die parallele Bearbeitung eines Datenverarbeitungsschrittes 2 gemäß der ersten Arbeitsweise durch ein erstes Datenverarbeitungsmodul 5 und durch ein zweites Datenverarbeitungsmodul 6 noch detaillierter dargestellt. Zu erkennen ist, dass das erste Datenverarbeitungsmodul 5 auf einer ersten Hardwarekomponente 12 realisiert ist, während das zweite Datenverarbeitungsmodul 6 auf einer zweiten Hardwarekomponente 13 realisiert ist. Das erste Datenverarbeitungsmodul 5 und das zweite Datenverarbeitungsmodul 6 verarbeiten jeweils dieselben Eingangsdaten 3 und es soll auch jeweils dieselben Ausgangsdaten 4 erzeugen. Ein Datenverarbeitungsschritt 2 bzw. ein Datenverarbeitungsmodul 5, 6 kann in sich nochmal in eine Mehrzahl von einzelnen Datenverarbeitungskomponenten 18 untergliedert sein, welche jeweils Unterschritte der Datenverarbeitung betreffen. Der Datenverarbeitungsschritt 2 bzw. das Datenverarbeitungsmodul 5, 6 wie sie hier definiert sind betreffen also schon je nach Anwendungsfall sinnvoll gewählte bzw. festgelegte Vorgruppierungen von Unterschritten, die mit den Datenverarbeitungskomponenten 18 ausgeführt werden. Die Vorgruppierung von Unterschritten ist bevorzugt so gewählt, dass keine Datenspeicherung innerhalb eines Datenverarbeitungsschrittes 2 bzw. eines Datenverarbeitungsmoduls 5,6 erforderlich ist und das für die Ausführung insbesondere nicht auf andere Daten als die Eingangsdaten zugegriffen wird.
Das erste Datenverarbeitungsmodul 5 und das zweite Datenverarbeitungsmodul 6 erzeugen jeweils Kontrollparameter 8, die von dem Komparatormodul 7 ausgewertet werden. Das Komparatormodul 7 ist auf einer dritten Hardwarekomponente 14 realisiert, welche von der ersten Hardwarekomponente 12 und der zweiten Hardwarekomponente 13 unabhängig ist, welche eine Zentraleinheit 24 bildet und welche bevorzugt die weiter oben schon beschriebene höhere Sicherheit (höheres ASIL-Level) der Ausführung bietet. In bevorzugten Ausführungsvarianten ist jedem Datenverarbeitungsmodul 5, 6 jeweils noch ein Sequentialisierungsmodul 11 zur Gewinnung der Kontrollparameter 8 aus der Datenverarbeitung und dem Komparatormodul 7 hier noch ein Synchronizer 27 vorgeschaltet. Zusätzlich kann dem Komparatormodul 7 ein Aufgabenverteilungsmodul 22 nachgeschaltet sein, welches synchronisierte Kontrollparameter 9 bzw. Stimuli 25 zur Auslösung weiterer Datenverarbeitungsschritte 2 ausgibt. Synchronizer 27, Komparatormodul 7 und Aufgabenverteilungsmodul 22 können gemeinsam auf der dritten Hardwarekomponente 14 als die beschriebene Zentraleinheit 24 realisiert sein. Bevorzugt wird das beschriebene Datenverarbeitungsnetzwerk 1 so betrieben, dass Datenverarbeitungsschritte 2 auf der jeweils verfügbaren und nicht vollständig ausgelasteten Hardware ausgeführt werden. Das Aufgabenverteilungsmodul 22 kann diese Verteilung der Datenverarbeitungsschritte 2 auf die verfügbare Hardware veranlassen. Darüber hinaus dauert die Ausführung der durchgeführten Datenverarbeitungsschritte 2 auf jeder Hardware unterschiedlich lange. Durch den Synchronizer 27 wird eine Sortierung der eintreffenden Kontrollparameter 8 erreicht, so dass das Komparatormodul 7 dann auch bei einer hohen Auslastung der Hardware jeweils die richtigen Kontrollparameter 8 miteinander vergleicht, um korrekte synchronisierte Kontrollparameter 9 zu erzeugen. Dazu werden die Kontrollparameter 8 als Kontrollparametertupel 28 von dem Synchronizer 27 an das Komparatormodul 7 übergeben. Es ist nicht erforderlich, dass Eingangsdaten 3 und Ausgangsdaten 4 jeweils über die Zentraleinheit 24 bzw. das Komparatormodul 7 von einem Datenverarbeitungsschritt 2 zum nächsten Datenverarbeitungsschritt 2 übergeben werden. Zu diesem Zweck können auch zusätzliche Datenübertragungsschnittstellen 26 zwischen den Datenverarbeitungsmodulen 5,6 bzw. den jeweiligen Hardwarekomponenten 12, 13 existieren, die unabhängig von dem Komparatormodul 7 existieren. Auf über diese Datenübertragungsschnittstellen 26 bereitgestellte Daten wird bevorzugt dann zugegriffen, wenn mit Hilfe des Komparatormoduls 7 eine fehlerfreie Bearbeitung des jeweiligen Ausgangsdaten 4 erzeugenden Datenverarbeitungsschrittes 2 in beiden Datenverarbeitungsmodulen 5, 6 festgestellt wurde.
In Fig. 4 ist für eine Sequenz 29 von drei Datenverarbeitungsschritten 2 gezeigt, wie wahlweise eine zweite Arbeitsweise realisiert sein kann. Zu erkennen ist, dass die Sequenz von Datenverarbeitungsschritten mit dem ersten Datenverarbeitungsmodul 5 ausgeführt wird. Mit 5.1, 5.2 und 5.3 sind hier jeweils mehrere entlang des Datenflusses durch das Datenverarbeitungsnetzwerk 1 hintereinander angeordnete Datenverarbeitungsmodule 5 dargestellt, die jeweils eine Mehrzahl von Datenverarbeitungsschritten 2 umfassen. Zu erkennen ist, dass die mit dem Datenverarbeitungsmodul 5.1 ausgeführte Sequenz 29 mit dem (nachrechnenden) zweiten Datenverarbeitungsmodul 6 nachgerechnet wird und ein Vergleich der Kontrollparameter 8 mit dem Komparatormodul 7 erst nachträglich durchgeführt wird. Wenn das Komparatormodul 7 ermittelt, das alles in Ordnung läuft das beschriebene Datenverarbeitungsnetzwerk ganz normal weiter. Wenn das Komparatormodul 7 einen Fehler feststellt, der üblicherweise in einer Abweichung zwischen den Kontrollparameter 8 besteht, wird ein Fehlersignal 31 ausgelöst.
Das hier dargestellten nächsten ersten Datenverarbeitungsmodul 5.2 und 5.3 können wieder in der ersten Arbeitsweise im parallelen Betrieb mit hier nicht dargestellten zweiten Datenverarbeitungsmodulen 6.2 und 6.3 betrieben werden. Wenn in dem Komparatormodul 7 festgestellt wird, dass die Berechnung der Sequenz 29 korrekt war, läuft alles ganz normal weiter. Wenn ein Fehlersignal 31 auftritt, sind derartige auf der Berechnung der Sequenz 29 aufgebauten Datenverarbeitungsschritte 2 unter Umständen zu verwerfen.
In Fig. 5 ist noch eine andere Darstellung des beschriebenen Verfahrens gewählt, bei welcher die Verfahrensschritte a), b) und c) für jeden Datenverarbeitungsschritt 2 jeweils durchgeführt werden. Es erfolgt immer die Ausführung der eigentlichen Datenverarbeitungsschritte 2 redundant zueinander mit dem ersten Datenverarbeitungsmodul 5 und mit dem zweiten Datenverarbeitungsmodul 6. Anschließend erfolgt jeweils mit dem Komparatormodul 7 eine Prüfung, ob der Datenverarbeitungsschritt 2 korrekt ausgeführt wurde bevor ein nächster Datenverarbeitungsschritt 2 gestartet wird.

Claims

- 22 - Ansprüche
1. Datenverarbeitungsnetzwerk (1) zur redundanten und validierten Durchführung einer Mehrzahl von aufeinanderfolgenden Datenverarbeitungsschritten
(2), die jeweils dazu dienen aus Eingangsdaten
(3) Ausgangsdaten
(4) zu generieren, wobei Ausgangsdaten (3) eines ersten Datenverarbeitungsschrittes (2) zumindest teilweise gleichzeitig Eingangsdaten (3) eines weiteren Datenverarbeitungsschritten (2) sind, wobei für die Durchführung jedes Datenverarbeitungsschrittes (2) mindestens ein erstes Datenverarbeitungsmodul (5) und ein zweites Datenverarbeitungsmodul (6) vorgesehen sind, wobei das Datenverarbeitungsnetzwerk (1) weiter ein Komparatormodul (7) aufweist, wobei die ersten Datenverarbeitungsmodule
(5) und die zweiten Datenverarbeitungsmodule
(6) dazu eingerichtet sind Datenverarbeitungsschritte (2) wahlweise in einer ersten Arbeitsweise mit parallelem Betrieb oder in einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5) durchzuführen, wobei bei der ersten Arbeitsweise mit parallelem Betrieb Kontrollparameter (8) der einzelnen Datenverarbeitungsschritte (2) an das Komparatormodul
(7) übermittelt werden und das Komparatormodul (7) dazu eingerichtet ist mindestens einen Vergleich sich entsprechender Kontrollparameter (8), die von den ersten Datenverarbeitungsmodulen (5) und den zweiten Datenverarbeitungsmodulen (6) übermittelt wurden, durchzuführen und basierend auf diesem Vergleich mindestens einen synchronisierten Kontrollparameter (9) bereitzustellen, welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes (2) beinhaltet, und wobei bei der zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5), eine Sequenz (29) von aufeinanderfolgenden Datenverarbeitungsschritte (2) im vorrechnenden Datenverarbeitungsmodul (5,6) ausgeführt wird, ohne das zwischen den Datenverarbeitungsschritten (2) Kontrollparameter (8) an das Komparatormodul (7) übermittelt und dort zur Überprüfung verglichen werden, wobei nach der Durchführung der Sequenz (29) von aufeinanderfolgenden Datenverarbeitungsschritten (2) Kontrollparameter (8) an das Komparatormodul (7) übermittelt werden, mit denen eine Nachberechnung der Sequenz von Datenverarbeitungsschritten (2) in dem nachrechnenden Datenverarbeitungsmodul (6,5) veranlasst wird. Datenverarbeitungsnetzwerk (1) nach Anspruch 1, aufweisend einen Scheduling-Recorder (30), der bei einem Betrieb gemäß der zweiten Arbeitsweise dazu eingerichtet ist Sequenzdaten betreffend die Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten (2) aufzuzeichnen und dem nachrechnenden Datenverarbeitungsmodul (6,5) zur Nachberechnung der Sequenz von Datenverarbeitungsschritten (2) zur Verfügung zu stellen. Datenverarbeitungsnetzwerk (1) nach Anspruch 1 oder 2, wobei der Vergleich der Kontrollparameter (8) eine Identitätsprüfung umfasst und ein synchronisierter Kontrollparameter (9) eine Identität der Kontrollparameter
(8) von dem ersten Datenverarbeitungsmodul (5) und dem zweiten Datenverarbeitungsmodul (6) voraussetzen. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche dazu eingerichtet von dem Komparatormodul (7) bereitgestellte synchronisierte Kontrollparameter
(9) zu verwenden, um eine weitere Datenverarbeitung der Ausgangsdaten mit weiteren Datenverarbeitungsschritten
(10) des Datenverarbeitungsnetzwerks (1) zu steuern. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei der synchronisierte Kontrollparameter (9) ein Validitätsparameter ist, welcher eine Validitätsinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes (2) beinhaltet. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche aufweisend weiter mindestens ein Sequentialisierungsmodul
(11), welches dazu eingerichtet ist Kontrollparameter (8) von den Datenverarbeitungsmodulen (5,6) und/oder den Datenverarbeitungssch ritten (2,10) jeweils zu sortieren und zu synchronisieren und diese dann mit einer Sortierung an das Komparatormodul (7) weiterzuleiten, damit das Komparatormodul (7) synchronisierte Kontrollparameter (9) unabhängig von der Reihenfolge ermitteln kann, in der die Datenverarbeitungsmodule (5,6) die Datenverarbeitungsschritte (2, 10) ausgeführt haben. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei erste Datenverarbeitungsmodule (5) mit ersten Hardwarekomponenten (12) und zweite Datenverarbeitungsmodule (6) mit zweiten Hardwarekomponenten (13) realisiert sind, wobei erste Hardwarekomponenten (12) und zweite Hardwarekomponenten (13) physisch voneinander getrennt sind. Datenverarbeitungsnetzwerk (1) nach Anspruch 6, wobei mindestens eines der Datenverarbeitungsmodule (5,6) eine Hardwarekomponente (12, 13) aufweist, die nicht ASIL-D konform ist. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei das Komparatormodul (7) mit dritten Hardwarekomponenten (14) realisiert ist, welche physisch von ersten Hardwarekomponenten
(12) und zweiten Hardwarekomponenten (13) getrennt ist. Datenverarbeitungsnetzwerk (1) nach Anspruch 8, wobei die dritte Hardwarekomponente (14) ASIL-D-konform ist. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei das Komparatormodul (7) einen Datenspeicher (15) aufweist in welchem ermittelte Kontrollparameter (8) mit Zeitinformationen (16) abgelegt werden, so dass ein logischer Zeitstrahl (17) entsteht, welcher die Reihenfolge der Abarbeitung der Datenverarbeitungsschritte (2) mit den Datenverarbeitungsmodulen (5,6) des Datenverarbeitungsnetzwerks (1) abbildet. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei eine Hardwarekomponente (12,13) der - 25 -
Datenverarbeitungsmodule (5,6) deutlich leistungsstärker ist als eine Hardwarekomponente (14) des Komparatormoduls (7).
13. Datenverarbeitungsnetzwerk (1) nach einem der vorhergehenden Ansprüche, wobei der Vergleich der Kontrollparameter (8) eine Prüfung umfasst, ob ein bei der Datenverarbeitung im ersten Datenverarbeitungsmodul (5) und/oder im zweiten Datenverarbeitungsmodul (6) aufgetretener Fehler unterhalb einer Toleranzgrenze liegt und in diesem Fall der synchronisierte Kontrollparameter (9) erzeugt wird.
14. Verfahren zum Betrieb eines Datenverarbeitungsnetzwerks (1) nach einem der vorhergehenden Ansprüche, aufweisend zumindest die folgenden Schritte: a) Festlegen, ob eine Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten (1) mit einer ersten Arbeitsweise mit parallelem Betrieb des ersten Datenverarbeitungsmoduls (5) und des zweiten Datenverarbeitungsmoduls (6) oder mit einer zweiten Arbeitsweise mit einem vorrechnenden Datenverarbeitungsmodul (5,6) und einem nachrechnenden Datenverarbeitungsmodul (6,5) betrieben werden soll, b) Betreiben des ersten Datenverarbeitungsmoduls (5) und des zweiten Datenverarbeitungsmoduls (6) gemäß der ersten Arbeitsweise oder gemäß der zweiten Arbeitsweise zur Durchführung der Datenverarbeitungsschritte, wobei in der ersten Arbeitsweise der folgende Schritt cl) nach jedem Datenverarbeitungsschritt durchgeführt wird und wobei bei der zweiten Arbeitsweise der folgende Schritt c2) nach dem Abschluss der Sequenz von aufeinanderfolgenden Datenverarbeitungsschritten (1) durchgeführt wird: cl) Durchführen eines Vergleichs sich entsprechender Kontrollparameter (8), die von dem ersten Datenverarbeitungsmodul (5) und dem zweiten Datenverarbeitungsmodul (6) übermittelt wurden mit einem Komparatormodul (7) und basierend auf diesem Vergleich bereitstellen mindestens einen synchronisierten Kontrollparameter (9), welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Datenverarbeitungsschrittes (2) beinhaltet, oder c2) Nachberechnung der Sequenz (29) von Datenverarbeitungsschritten (2) in dem nachrechnenden Datenverarbeitungsmodul (6,5) anhand von - 26 -
Kontrollparameter (8), die bei der Berechnung der Sequenz (29) von Datenverarbeitungsschritten (2) in dem vorrechnenden Datenverarbeitungsmodul (5,6) ermittelt wurden und Durchführen eines Vergleichs der Berechnungen mit dem Komparatormodul (7) und basierend auf diesem Vergleich Bereitstellung mindestens eines synchronisierten
Kontrollparameter (9), welcher eine Kontrollinformation bezüglich mindestens eines durchgeführten Sequenz (29) von Datenverarbeitungsschritten (2) beinhaltet.
PCT/EP2022/076912 2021-10-18 2022-09-28 Datenverarbeitungsnetzwerk zur datenverarbeitung WO2023066625A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021211712.0A DE102021211712A1 (de) 2021-10-18 2021-10-18 Datenverarbeitungsnetzwerk zur Datenverarbeitung
DE102021211712.0 2021-10-18

Publications (1)

Publication Number Publication Date
WO2023066625A1 true WO2023066625A1 (de) 2023-04-27

Family

ID=83903064

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2022/076912 WO2023066625A1 (de) 2021-10-18 2022-09-28 Datenverarbeitungsnetzwerk zur datenverarbeitung

Country Status (2)

Country Link
DE (1) DE102021211712A1 (de)
WO (1) WO2023066625A1 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283314A1 (en) * 2015-03-24 2016-09-29 Freescale Semiconductor, Inc. Multi-Channel Network-on-a-Chip
DE102015218882A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
EP3588309A2 (de) * 2018-06-28 2020-01-01 Renesas Electronics Corporation Halbleiterbauelement, steuerungssystem und steuerungsverfahren eines halbleiterbauelements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283314A1 (en) * 2015-03-24 2016-09-29 Freescale Semiconductor, Inc. Multi-Channel Network-on-a-Chip
DE102015218882A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
EP3588309A2 (de) * 2018-06-28 2020-01-01 Renesas Electronics Corporation Halbleiterbauelement, steuerungssystem und steuerungsverfahren eines halbleiterbauelements

Also Published As

Publication number Publication date
DE102021211712A1 (de) 2023-04-20

Similar Documents

Publication Publication Date Title
DE10291119B4 (de) Verfahren und Vorrichtung zur Synchronisation der Zykluszeit von mehreren Bussen, wobei mindestens einer der Busse ein TTCAN Bus ist, sowie entsprechendes Bussystem
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
EP2513796B1 (de) Verfahren zum betreiben einer recheneinheit
DE60002501T2 (de) Vorrichtung und verfahren zur fehlertoleranten interaktive konvergenz verwendenden uhrtaktsynchronisierung
EP0974901A2 (de) Verfahren zur Ermittlung einer einheitlichen globalen Sicht vom Systemzustand eines verteilten Rechnernetzwerkes
WO2006045754A1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
WO2022084176A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
EP1220104A2 (de) Verfahren und Kommunikationssystem zum Austausch von Daten zwischen mindestens zwei Teilnehmern über ein Bussystem
DE102019202527A1 (de) Sicherheitssystem und Verfahren zum Betreiben eines Sicherheitssystems
WO2023066625A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
EP1320047B1 (de) Verfahren zur Analyse des Zeitverhaltens komplexer verteilter Systeme
EP1812853B1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102015218898A1 (de) Verfahren zur redundanten Verarbeitung von Daten
DE102021211709A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
DE112016006679B4 (de) Steuerungsvorrichtung und Recovery-Verarbeitungsverfahren für Steuerungsvorrichtung
DE102008019287B4 (de) Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks
DE19801992C2 (de) Verfahren zur Verbesserung der Systemverfügbarkeit nach dem Ausfall von Prozessoren einer Prozessorplattform
EP1886222A1 (de) Verfahren zur steuergeräte-überwachung
DE102014213826B4 (de) Verfahren zum Synchronisieren von Zustandswechseln in Mehrkernrechnern eingebetteter Systeme
WO2022063663A1 (de) Verfahren, datenverarbeitungsmodul und datenverarbeitungsnetzwerk zur verarbeitung von daten
DE102022205517A1 (de) Verfahren zum Verarbeiten von Daten
DE102009061083B3 (de) Modifizieren periodischer Signale, die von einem Mikrocontroller erzeugt worden sind
WO2023138870A1 (de) Verfahren und datenverarbeitungsnetzwerk zur verarbeitung von sensordaten
WO2023066626A1 (de) Verfahren zur verarbeitung von daten mit einem datenverarbeitungsnetzwerk umfassend eine mehrzahl von datenverarbeitungsmodulen, datenverarbeitungsmodul und datenverarbeitungsnetzwerk
DE102020215332A1 (de) Verfahren zum Durchführen eines Berechnungsvorgangs auf zwei verschiedenen Recheneinheiten

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: 22793165

Country of ref document: EP

Kind code of ref document: A1