EP4681076A1 - Verfahren zum weiterleiten von daten von einer mehrzahl von datenquellen an eine datensenke - Google Patents

Verfahren zum weiterleiten von daten von einer mehrzahl von datenquellen an eine datensenke

Info

Publication number
EP4681076A1
EP4681076A1 EP24701190.1A EP24701190A EP4681076A1 EP 4681076 A1 EP4681076 A1 EP 4681076A1 EP 24701190 A EP24701190 A EP 24701190A EP 4681076 A1 EP4681076 A1 EP 4681076A1
Authority
EP
European Patent Office
Prior art keywords
data
comparison
received
monitoring device
sink
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP24701190.1A
Other languages
English (en)
French (fr)
Inventor
Dennis Grewe
Peter Schneider
Pooja DAHANE
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.)
Robert Bosch GmbH
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 EP4681076A1 publication Critical patent/EP4681076A1/de
Pending 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/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
    • 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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • 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/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level

Definitions

  • the present disclosure relates to methods for forwarding data from a plurality of data sources to a data sink.
  • N redundant data sources (such as functions or data channels) are used in such systems, in particular to safeguard data provision and/or data processing against incorrect results or failures.
  • N > 2
  • a method for forwarding (payload) data from a plurality of data sources to a data sink comprising forwarding data received from a first data source and forwarded by a comparison device to the data sink by a monitoring device before the monitoring device has received control information indicating a result of a comparison of the data received from the first data source with data received from one or more second of the data sources from the comparison device, and, if the monitoring device has not received the control information indicating a result of the comparison from the comparison device within a (predetermined) error detection time after forwarding the received data to the data sink, or the control information indicates a negative result, signaling (e.g. from the monitoring device) an error state to the data sink.
  • the data stream and error detection are decoupled. This makes it possible to achieve almost latency-free protection of a data stream, e.g. using an M-out-of-N comparison scheme, without significantly restricting integrity monitoring. While the end-to-end latency of a (data processing) cycle is only determined by the slowest channel when forwarding after the comparison result is available, the method described above makes it possible to determine the end-to-end latency of a data processing cycle by the fastest channel in each case.
  • comparator compare device
  • decision maker monitoring device
  • the separation of comparator and decision maker as well as of data stream and error detection also enables good scalability, e.g. through the cascaded use of several consecutive FIFO comparators in larger distributed systems with a large number of data sources and processing paths (which then together form a comparison device, for example), whereby control information is aggregated.
  • the evaluation of the aggregated control information can take place centrally in the monitoring device that is intended for the data sink (e.g. at the data sink).
  • Embodiment 1 is a method for forwarding data from a plurality of data sources to a data sink as described above.
  • Embodiment 2 is a method according to embodiment 1, comprising receiving the data from the first of the data sources by the comparison device, forwarding the data received from the first data source by the comparison device to the monitoring device before the comparison device has completed the comparison, performing the comparison by the comparison device and transmitting the control information indicating a result of the comparison from the comparison device to the monitoring device;
  • the delay can be kept to a minimum.
  • Embodiment 3 is a method according to embodiment 1 or 2, comprising signaling a first error state by the monitoring device to the data sink if the monitoring device within an error detection time after forwarding the received data to the data sink the control information indicating a result of the comparison has not been received from the comparison device, and signaling a second error state by the monitoring device to the data sink if the control information indicates a negative result
  • the data sink can then react differently depending on whether the forwarded data was faulty (which is indicated by the negative comparison result, i.e. a lack of agreement between the data received from the data sources) or whether the data could not yet be verified (i.e. the error detection time has expired).
  • Embodiment 4 is a method according to one of embodiments 1 to 3, wherein the comparison is an M-out-of-N comparison.
  • the result of the comparison is negative if the data (for the same processing cycle) from less than M data sources match.
  • Embodiment 5 is a method according to any one of embodiments 1 to 3, comprising performing forwarding for data received from the data sources for each of a plurality of processing cycles and further comprising triggering a reconfiguration for a data source for which a number of processing cycles for which the respective comparison has indicated that the data from the data source is erroneous, or for which the data from the data source was received from the comparison device with a delay above a delay threshold.
  • a reconfiguration e.g. a move of software implementing the data source to another hardware or another orchestration measure
  • a reconfiguration can be performed if the data from the data source was repeatedly faulty or the data was repeatedly received from the data source so late that it could not be used for a comparison, so that the comparison result within the Error detection time could or should have been forwarded to the monitoring device.
  • Embodiment 6 is a data processing arrangement configured to carry out a method according to one of the embodiments 1 to 5.
  • the communication system may contain only the monitoring device or also the monitoring device, the comparison device and/or the data sinks, i.e. the data processing arrangement may be a communication system or only parts thereof.
  • Embodiment 7 is a computer program having instructions that, when executed by one or more processors, cause the one or more processors to perform a method according to any of embodiments 1 to 5.
  • Embodiment 8 is a computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform a method according to any of embodiments 1 to 5.
  • Figure 1 shows a communication system.
  • Figure 2 shows a communication system according to an embodiment.
  • Figure 3 shows a flow diagram illustrating a method for forwarding data from a plurality of data sources to a data sink according to one embodiment.
  • Such algorithms are usually used in large distributed applications that are operated in data centers. Examples of well-known algorithms are the Paxos algorithm and the Raft algorithm. Both are based on the fact that a decision is made by majority vote. If this is not possible, a so-called master node takes over the final decision. However, such methods require a certain amount of bidirectional communication between the nodes involved, which results in additional latency compared to the processing chain. Due to this nature, the use of such algorithms in the context of real-time systems with strict latency requirements is unusual. Instead, M-of-N schemes are used in such cases, as described below with reference to Figure 1.
  • FIG. 1 shows a communication system (or processing system, hereinafter also simply referred to as “system”) 100.
  • a receiver 101 receives data from multiple data sources, the data sources being formed by a single data generator 102 (eg a sensor) that transmits data via multiple channels 103 (ie each of the multiple data sources corresponds to a combination of data generator 102 and respective channel).
  • the data sources can also be separate data generators (eg separate sensors), each of which is connected to the receiver 101 via a channel 103.
  • the data generator 102 can also itself be an input (eg a receiver).
  • the receiver 101 contains a comparator 104 which compares data received from the data sources (i.e. in this example via the channels) and, if there is sufficient agreement, forwards them to a data sink 105 (e.g. a control device, e.g. a control unit (ECU) in a vehicle that controls an actuator, such as a brake, for an ABS (anti-lock braking system) or an ESP (electronic stability program)).
  • a data sink 105 e.g. a control device, e.g. a control unit (ECU) in a vehicle that controls an actuator, such as a brake, for an ABS (anti-lock braking system) or an ESP (electronic stability program)
  • ECU control unit
  • ESP electrostatic stability program
  • the communication system 100 thus implements, for example, a so-called M-out-of-N comparison scheme.
  • the data e.g. outputs of a sensor or other signals
  • the N channels are typically compared for each cycle in which new data is provided. For example, for a control interval of 50ms, for example, a comparison of the incoming data is made in the same interval, as well as a direct decision as to whether the system is working correctly or whether an error is present and the data may need to be discarded.
  • Such M-out-of-N comparison schemes are typically only used for (safety-relevant) real-time systems with spatially close and usually locally networked and closely synchronized (usually embedded) system components
  • Such systems made up of locally networked components are typically well synchronized with one another, for example via a global clock (in the local system) against which all system components are regularly synchronized. This makes it possible to keep the execution of the data processing steps between the N channels 103 and the subsequent comparator 104 synchronized.
  • the close time synchronization makes it possible for the comparison to be processed by the comparator in each data processing cycle with almost no delay. Therefore, the data is provided to the data sink 105 in such a locally networked system with a very small additional latency compared to the processing chain in a single-channel system without redundancies and comparators.
  • Case 1 (Waiting for data for comparison): If the comparator 104 waits in a cycle z1 for the input of all data/signals/outputs of the N channels in order to secure the cycle with regard to integrity, then in widely distributed systems there is an unacceptable negligible probability that due to one of the three properties mentioned above, at least one of the N channels will have a delayed delivery of the results and the real-time requirements will be violated (ie z1 exceeds its maximum allowed time window). This is shown in Table 1 in column z1 as an example for the 3-out-of-3 comparison.
  • Case 2 direct forwarding: If a time-optimized "first-in first-out" behavior is selected (i.e. the comparator 104 only compares the data available at the current time and forwards data without checking if it cannot be falsified in time), then there is a risk that faulty data will be received at the data sink, which can no longer be identified as faulty there. Such a case is shown, for example, in Table 1 in columns z2 and z3.
  • an approach is provided that makes it possible to implement real-time critical and safety-critical applications even in geographically widely distributed and (in the most difficult case wirelessly) networked systems.
  • an approach is provided that makes it possible to use an M-out-of-N comparison scheme in distributed systems without excessively restricting the achievable requirements with regard to integrity and/or receiving the data/signals at the right time (ie low latency).
  • the functionality of the comparator 104 is distributed.
  • Figure 2 shows a communication system 200 according to an embodiment.
  • the communication system 200 has a receiver 201, a data generator 202, several channels 203 and a data sink 205. As explained above with reference to Figure 1, a separate data generator can also be provided for each data source.
  • the communication system 200 differs from the communication system 100 of Figure 1 in that instead of the comparator 104, a FIFO (First-In-First-Out) comparator 204 (in the receiver 201) is provided, followed by a monitoring device 206 (or decision device, hereinafter also referred to as (meta-data) watchdog).
  • the monitoring device 206 is typically geographically close to that of the data sink 205, e.g. can be provided together with the data sink 205 in one component (e.g. in a device).
  • the receiver 201 on the other hand, can be located in a separate component.
  • the FIFO comparator 204 and the monitoring device 206 implement a two-part M-of-N comparison scheme that is expanded to include cycle-related meta-information.
  • FTTI fault tolerance time interval
  • a braking process from the automotive sector will be considered.
  • An error-related braking intervention for a few milliseconds only leads to a short jolt in the vehicle, which does impair driving comfort but not safety.
  • Fault tolerance time intervals are used in the extended comparison scheme for time-delayed error detection (as error detection time (interval) FDTI), during which (useful) data can be forwarded to the subsequent system components almost without delay.
  • the FIFO comparator 204 and the monitoring device 206 have the following functionalities:
  • the FIFO comparator (also referred to as comparison device) 204 performs, on the basis of (eg temporarily stored) meta-information about the performs a retrospective M-out-of-N comparison of the data received and then sends the comparison result in the form of (meta) control information (e.g. via a separately sent safety meta data signal) to the monitoring device 206.
  • the monitoring device 206 monitors the data forwarding based on the control information generated by the FIFO comparator by evaluating the control information and, in the event of an error or if the positive control information is absent, triggering an error reaction in the data sink 205 (e.g. switching off selected functions).
  • the monitoring device 206 implements extended error diagnostic measures in order to, for example, identify a persistently unreliable channel 203 and to automatically restore the desired reliability of the overall system, if necessary by reconfiguring the unreliable channel at runtime.
  • the FIFO comparator 204 processes all data associated with a new cycle in two phases.
  • the FIFO comparator 204 receives (useful) data (or signals/outputs) for a current comparison cycle. Due to the slight asynchronicity mentioned above, the data first arrives in the FIFO comparator 204 from one of the N redundant channels 203 and is forwarded by it (with a slight delay) to the watchdog 206 without being checked. When forwarding the data, the FIFO comparator also adds the following meta information in particular:
  • the FIFO comparator 204 stores the meta-information about the forwarded data internally and, in phase 2, carries out a retrospective comparison between the data of a cycle whenever at least another of the remaining N-1 channels the data (belonging to the same cycle) was received. Up to N-1 comparisons are made between the (in error-free case) same data of a cycle and (meta-
  • Control information is updated with the results of the last comparison.
  • control information is transmitted to the decision maker whenever a further comparison of the payload data of a cycle has been made (namely when data for the processing cycle in question has been received from another data source).
  • first control information is created and sent to the watchdog when the data of a cycle from at least two of N channels is available in the FIFO comparator, so that a first (2-of-N) comparison is possible.
  • the results of this first comparison are then sent to the watchdog 206 so that it can decide whether confirmation from two channels is already sufficient or whether confirmation from other channels is waited for before the data is considered sufficiently verified for use in the data sink (i.e. the watchdog 206 can select M accordingly).
  • a failure of the (FIFO) comparator 204 and/or the transmission of the control information can be detected in the watchdog 206 via so-called timeout monitoring.
  • automated repair attempts for a faulty FIFO comparator 204 can be triggered by the watchdog 206, for example, whereby the FIFO comparator software is transferred to another execution platform, e.g. using suitable virtualization technology and configuration commands tftd to an orchestration software, and can resume operation there after successful migration.
  • outdated data is deleted there after a certain time (e.g. data that was already forwarded a configurable number of seconds ago).
  • a certain time e.g. data that was already forwarded a configurable number of seconds ago.
  • outdated data e.g. coming from a channel whose data only reaches the FIFO comparator much too late
  • This sequence number can either be set by the respective data source itself, for example as part of a header field within the payload, or by setting header fields in the underlying transport protocol.
  • the (meta data) watchdog 206 also works in two different phases.
  • phase 1 information gathering
  • the watchdog 206 receives new user data from the FIFO comparator 204, including initial meta information (i.e. channel number/ID, forwarding time stamp, data sequence number, etc.) and stores this internally using a local time stamp. It then uses the meta information (e.g. sequence number) to check whether this user data has already been forwarded to the data sink 205. In this case, the data is discarded. If the user data is new (i.e. not yet forwarded), it forwards it to the data sink 205. It also starts a backwards error detection timer for forwarded user data in a cycle (i.e. user data with its own sequence number/ID). The duration corresponds to the maximum desired fault detection time (FDTI) of the respective application.
  • FDTI maximum desired fault detection time
  • phase 2 verification and retrospection by considering the control information generated by the comparator 204, which indicates the result of the retrospective comparison
  • the watchdog waits for further meta-information from the FIFO comparator, which is required to verify or falsify the data already forwarded. If such a timer reaches the value zero before the watchdog 206 has received control information from the comparator 204, which indicates that the payload data could be sufficiently verified by receiving further associated data (e.g. data packets with the same sequence number or ID) from another channel, the watchdog considers the payload data to be faulty.
  • further associated data e.g. data packets with the same sequence number or ID
  • Watchdog 206 As soon as new control information arrives in Watchdog 206, it checks whether the data already forwarded is (at least partially) verified or possibly falsified.
  • Table 3 shows the corresponding generation of (meta-) control information by the FIFO comparator 204.
  • Table 4 illustrates the process in the monitoring device 206 for the example, specifically which data is forwarded from the monitoring device 206 to the data sink 205.
  • Table 5 shows the evaluation of the control information in the watchdog 206 for the example.
  • the transmission of the control information from the comparator 204 to the monitoring device 206 takes 10ms in this example.
  • the example extends over several processing cycles.
  • the sequence number (Seq. No.) indicates the respective processing cycle of the application to be monitored.
  • the watchdog 206 checks in phase 2 of processing whether the data already forwarded in the affected processing cycle was based on a channel identified as faulty or a channel verified as correct as the data source. The following cases can occur:
  • the described mechanisms in the watchdog 206 ensure that faulty data is always identified as such within the error detection time FDTI and that the effect of an error can be stopped in time without the latency of the data processing chain being significantly increased in the error-free case by the M-out-of-N comparison scheme described here.
  • Figure 3 shows a flowchart 300 illustrating a method for forwarding data from a plurality of data sources to a data sink according to one embodiment.
  • data received from a first data source and forwarded by a comparison device are forwarded to the data sink by a monitoring device before the monitoring device has received control information from the comparison device indicating a result of a comparison of the data received from the first data source with data received from one or more second data sources.
  • control information indicating a result of the comparison from the comparison device within an error detection time after forwarding the received data to the data sink, or the control information indicates a negative result, an error state is signaled to the data sink.
  • the method of Figure 3 may be performed by one or more computers having one or more data processing units.
  • data processing unit may be understood as any type of entity that enables the processing of data or signals.
  • the data or signals may, for example, be handled according to at least one (i.e., one or more than one) specific function performed by the data processing unit.
  • a data processing unit may comprise or be formed from an analog circuit, a digital circuit, a logic circuit, a microprocessor, a microcontroller, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a programmable gate array (FPGA) integrated circuit, or any combination thereof.
  • Any other way of implementing the respective functions described in more detail herein may also be understood as a data processing unit or logic circuit arrangement.
  • One or more of the method steps described in detail here can be carried out (e.g. implemented) by a data processing unit through one or more special functions that are performed by the data processing unit.
  • the method is therefore particularly computer-implemented.
  • the method can be used for various systems with multiple data sources, especially those that have high requirements for reliability and/or latency. Examples are
  • ECUs Electronic Control Units
  • PLC Fieldbus Programmable Logic Controllers
  • An application example is a vehicle with integrated sensors and sensors mounted on a road (external from the vehicle's perspective) connected via a wireless network as data sources, whereby a comparison device is installed in the vehicle which monitors the redundant information of the integrated and external sensors according to the presented method.
  • Another application example is a computer-aided process control of a production plant, in which control algorithms are calculated redundantly on several different computers to increase reliability and safety integrity and whose resulting control commands are monitored in a special safety controller (so-called “safety programmable logic controller”) using a comparison device according to the method presented.
  • a special safety controller safety programmable logic controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen (203) an eine Datensenke (205) beschrieben, aufweisend Weiterleiten von von einer ersten Datenquelle empfangenen und von einer Vergleichseinrichtung (204) weitergeleiteten Daten durch eine Überwachungseinrichtung (206) an die Datensenke (205), bevor die Überwachungseinrichtung (206) eine Kontrollinformation, die ein Ergebnis eines Vergleichs der von der ersten Datenquelle empfangenen Daten mit von ein oder mehreren zweiten der Datenquellen (203) empfangenen Daten anzeigt, von der Vergleichseinrichtung (204) empfangen hat und, falls die Überwachungseinrichtung (206) innerhalb einer Fehlerdetektionszeit nach Weiterleiten der empfangenen Daten an die Datensenke (205) die Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, nicht von der Vergleichseinrichtung (204) empfangen hat, oder die Kontrollinformation ein negatives Ergebnis anzeigt, Signalisieren eines Fehlerzustands an die Datensenke (205).

Description

Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen an eine Datensenke
Die vorliegende Offenbarung bezieht sich auf Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen an eine Datensenke.
Technische Systeme, beispielsweise aus dem Bereich Automotive, stellen sehr hohe Anforderungen an die Zuverlässigkeit ihrer Funktionalität (d.h. Systeme mit gleichzeitig hohen Anforderungen an die Korrektheit der bereitgestellten Daten, Ausgaben oder Signale und/oder an deren rechtzeitige Verfügbarkeit). Ein Beispiel für Systeme mit besonders anspruchsvollen Zuverlässigkeitsanforderungen sind „Steer-by-wire“-Steuersysteme.
Typischerweise werden in solche Systemen N redundante Datenquellen (wie Funktionen oder Datenkanäle) eingesetzt, um insbesondere die Datenbereitstellung und/oder Datenverarbeitung bzgl. fehlerhafter Ergebnisse oder Ausfälle abzusichern.
Je nach Anzahl redundanter Datenquellen kann lediglich eine Detektion von Fehlern erfolgen (in diesem Fall ist N >= 2) oder Fehler/Ausfälle können sogar zeitweise kompensiert werden (in diesem Fall ist N >= 3). In beiden Fällen kommt typischerweise ein sogenannter Vergleicher (englisch „Voter“) zum Einsatz, welcher die Ergebnisse der N Datenquellen miteinander vergleicht und dann entscheidet, welche Daten (z.B. Ausgaben oder Signale) als korrekt gelten und an eine Datensenke weitergeleitet werden.
Dabei kann es je nach System, in dem ein solcher Ansatz verwendet wird, jedoch zu Verzögerungen kommen, wenn der Vergleicher darauf wartet, dass er Daten von allen Datenquellen (z.B. über alle N Kanäle) empfangen hat, sodass er den Vergleich durchführen kann, aber die Datenbereitstellung einer der Datenquellen verzögert ist (z.B. weil ein Kanal aktuell zu langsam ist). Es sind deshalb Ansätze wünschenswert, die es auch bei hohen Anforderungen an die Zuverlässigkeit von Daten ermöglichen, die Daten mit geringer Verzögerung an eine Datensenke weiterzuleiten.
Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Weiterleiten von (Nutz-)Daten von einer Mehrzahl von Datenquellen an eine Datensenke bereitgestellt, aufweisend Weiterleiten von von einer ersten Datenquelle empfangenen und von einer Vergleichseinrichtung weitergeleiteten Daten durch eine Überwachungseinrichtung an die Datensenke, bevor die Überwachungseinrichtung eine Kontrollinformation, die ein Ergebnis eines Vergleichs der von der ersten Datenquelle empfangenen Daten mit von ein oder mehreren zweiten der Datenquellen empfangenen Daten anzeigt, von der Vergleichseinrichtung empfangen hat, und, falls die Überwachungseinrichtung innerhalb einer (vorgegebenen) Fehlerdetektionszeit nach Weiterleiten der empfangenen Daten an die Datensenke die Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, nicht von der Vergleichseinrichtung empfangen hat, oder die Kontrollinformation ein negatives Ergebnis anzeigt, Signalisieren (z.B. von der Überwachungseinrichtung) eines Fehlerzustands an die Datensenke.
Bei dem oben beschriebenen Verfahren und den im Folgenden beschriebenen Ausführungsformen werden anschaulich gesprochen Datenstrom und Fehlerdetektion entkoppelt. Dadurch kann eine nahezu latenzfreie Absicherung eines Datenstroms, z.B. mittels eines M-aus-N Vergleichsschemas, erreicht werden, ohne dass dabei die Integritätsüberwachung signifikant eingeschränkt wird. Während bei Weiterleiten erst nach Vorliegen des Vergleichsergebnisses die Ende-zu-Ende Latenz eines (Datenverarbeitungs-)Zyklus vom langsamsten Kanal bestimmt wird, kann mit dem oben beschriebenen Verfahren erreicht werden, dass die Ende-zu-Ende-Latenz eines Datenverarbeitungszyklus vom jeweils schnellsten Kanal bestimmt wird.
Ferner besteht die Möglichkeit zur Wiederverwendbarkeit und Integration: Die Trennung von Vergleicher (Vergleichseinrichtung) und Entscheider (Überwachungseinrichtung) ermöglicht die Wiederverwendung eines gemeinsamen „FIFO-Vergleichers“ für mehrere Anwendungen, wobei alle Anwendungen dieselben Kontrollinformationen erhalten und jeweils ihre eigene Instanz eines Entscheiders mit anwendungsspezifischen Überwachungsparametern und Fehlerreaktionen integrieren.
Die Trennung von Vergleicher und Entscheider sowie von Datenstrom und Fehlerdetektion ermöglicht weiterhin eine gute Skalierbarkeit, z.B. durch den kaskadierten Einsatz von mehreren aufeinanderfolgenden FIFO-Vergleichern in größeren verteilten Systemen mit einer Vielzahl an Datenquellen und Verarbeitungspfaden (die dann z.B. zusammen eine Vergleichseinrichtung bilden), wobei Kontrollinformationen aggregiert werden. Die Auswertung der aggregierten Kontrollinformationen (aus den aufeinanderfolgenden FIFO-Vergleichern) kann dabei zentral in der Überwachungseinrichtung erfolgen, die für die Datensenke (z.B. bei der Datensenke) vorgesehen ist.
Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
Ausführungsbeispiel 1 ist ein Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen an eine Datensenke, wie oben beschrieben.
Ausführungsbeispiel 2 ist ein Verfahren nach Ausführungsbeispiel 1 , aufweisend Empfangen der Daten von der ersten der Datenquellen durch die Vergleichseinrichtung, Weiterleiten der von der ersten Datenquelle empfangenen Daten durch die Vergleichseinrichtung an die Überwachungseinrichtung, bevor die Vergleichseinrichtung den Vergleich abgeschlossen hat, Durchführen des Vergleichs durch die Vergleichseinrichtung und Übermitteln der Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, von der Vergleichseinrichtung an die Überwachungseinrichtung;
Durch das Weiterleiten durch die Vergleichseinrichtung an die Überwachungseinrichtung, bevor der Vergleich abgeschlossen ist, kann die Verzögerung gering gehalten werden.
Ausführungsbeispiel 3 ist ein Verfahren nach Ausführungsbeispiel 1 oder 2, aufweisend Signalisieren eines ersten Fehlerzustands durch die Überwachungseinrichtung an die Datensenke, falls die Überwachungseinrichtung innerhalb einer Fehlerdetektionszeit nach Weiterleiten der empfangenen Daten an die Datensenke die Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, nicht von der Vergleichseinrichtung empfangen hat, und Signalisieren eines zweiten Fehlerzustands durch die Überwachungseinrichtung an die Datensenke, falls die Kontrollinformation ein negatives Ergebnis anzeigt
Die Datensenke kann dann unterschiedlich reagieren, je nachdem, ob die weitergeleiteten Daten fehlerhaft waren (was durch das negative Vergleichsergebnis, d.h. mangelnde Übereinstimmung der von den Datenquellen empfangenen Daten, angezeigt wird), oder die Daten noch nicht verifiziert werden konnten (d.h. die Fehlerdetektionszeit abgelaufen ist).
Ausführungsbeispiel 4 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 3, wobei der Vergleich ein M-aus-N-Vergleich ist.
Entsprechend ist das Ergebnis des Vergleichs negativ, wenn die Daten (für denselben Verarbeitungszyklus) von weniger als M Datenquellen übereinstimmen. Durch die Wahl von M und N kann eine gewünschte Sicherheit erreicht werden.
Ausführungsbeispiel 5 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 3, aufweisend Durchführen des Weiterleitens für von den Datenquellen empfangenen Daten für jeden mehrerer Verarbeitungszyklen und ferner aufweisend Auslösen einer Rekonfiguration für eine Datenquelle, für die eine Anzahl von Verarbeitungszyklen, für die der jeweilige Vergleich angezeigt hat, dass die Daten von der Datenquelle fehlerhaft sind, oder für die die Daten von der Datenquelle mit einer Verzögerung über einem Verzögerungsschwellwert von der Vergleichseinrichtung empfangen wurden.
Beispielsweise kann eine Rekonfiguration (z.B. ein Umzug von Software, die die Datenquelle implementiert, auf eine andere Hardware oder eine andere Orchestrierungsmaßnahme) durchgeführt werden, wenn die Daten von der Datenquelle wiederholt fehlerhaft waren oder die Daten wiederholt so spät von der Datenquelle erhalten wurden, dass sie nicht für einen Vergleich herangezogen werden konnten, sodass das Vergleichsergebnis innerhalb der Fehlerdetektionszeit an die Überwachungseinrichtung weitergeleitet konnte oder hätte können.
Dazu kann vorgesehen sein, dass, wenn ein Fehlerzustand signalisiert wird, auch Informationen über die fehlerhafte(n) (weil verspätete oder von der Mehrheit abweichende Ergebnisse produzierende) Datenquelle(n) übermittelt werden.
Ausführungsbeispiel 6 ist eine Datenverarbeitungsanordnung, eingerichtet zum Durchführen eines Verfahrens nach einem der Ausführungsbeispiele 1 bis 5.
Je nachdem kann das Kommunikationssystem nur die Überwachungseinrichtung oder auch die Überwachungseinrichtung, die Vergleichseinrichtung und/oder die Datensenken beinhalten, d.h. die Datenverarbeitungsanordnung kann ein Kommunikationssystem oder auch nur Teile davon sein.
Ausführungsbeispiel 7 ist ein Computerprogramm mit Befehlen, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass die ein oder mehreren Prozessoren ein Verfahren nach einem der Ausführungsbeispiele 1 bis 5 durchführen.
Ausführungsbeispiel 8 ist ein computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass die ein oder mehreren Prozessoren ein Verfahren nach einem der Ausführungsbeispiele 1 bis 5 durchführen.
Im Folgenden werden verschiedene Beispiele genauer beschrieben.
In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen auf dieselben Teile in den ganzen verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstäblich, wobei die Betonung stattdessen im Allgemeinen auf die Darstellung der Prinzipien der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben.
Figur 1 zeigt ein Kommunikationssystem. Figur 2 zeigt ein Kommunikationssystem gemäß einer Ausführungsform.
Figur 3 zeigt ein Ablaufdiagramm, das ein Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen an eine Datensenke gemäß einer Ausführungsform darstellt.
Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Erläuterung spezielle Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden und strukturelle, logische und elektrische Änderungen können durchgeführt werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
Der Prozess der Entscheidungsfindung ist in der Informatik eine bekannte Problemstellung in verteilten, fehlertoleranten Rechensystemen oder Systemen, die eine Einigung über einen einzelnen Datenwert erzielen wollen. Algorithmen zur Lösung dieses Problems sind als Konsensusalgorithmen bekannt.
Einsatzgebiete solcher Algorithmen sind meist große verteilte Anwendungen die in Rechenzentren betrieben werden. Beispiele bekannter Algorithmen sind der Paxos-Algorithmus und der Raft-Algorithmus. Beiden liegt zu Grunde, dass eine Entscheidung mittels Mehrheitsentscheid getroffen wird. Falls dies nicht möglich ist, übernimmt ein sogenannter Master-Knoten die finale Entscheidung. Derartige Verfahren setzten allerdings einem gewissen, bidirektionalen Kommunikationsaufwand zwischen den beteiligten Knoten voraus, welche sich in einer zusätzlichen Latenz gegenüber der Verarbeitungskette darstellt. Aufgrund dieser Beschaffenheit ist der Einsatz solcher Algorithmen im Kontext von Echtzeitsystemen mit harten Latenzanforderungen unüblich. Stattdessen werden in solchen Fällen M-aus-N-Schemas eingesetzt, wie es im Folgenden mit Bezug auf Figur 1 beschrieben ist.
Figur 1 zeigt ein Kommunikationssystem (oder Verarbeitungssystem, im Folgenden auch einfach als „System“ bezeichnet) 100. Ein Empfänger 101 empfängt Daten von mehreren Datenquellen, wobei die Datenquellen gebildet werden von einem einzigen Datenerzeuger 102 (z.B. einem Sensor), der Daten über mehrere Kanäle 103 übermittelt (d.h. jede der mehreren Datenquelle entspricht einer Kombination aus Datenerzeuger 102 und jeweiligem Kanal). Die Datenquellen können aber auch separate Datenerzeuger (z.B. separate Sensoren) sein, die jeweils über einen Kanal 103 an den Empfänger 101 angebunden sind. Der Datenerzeuger 102 kann auch selber ein Eingang (z.B. ein Empfänger) sein.
Der Empfänger 101 enthält einen Vergleicher 104, der von den Datenquellen (also in diesem Beispiel über die Kanäle) empfangene Daten miteinander vergleicht und sie bei ausreichender Übereinstimmung an eine Datensenke 105 (z.B. eine Steuereinrichtung, z.B. eine Steuereinheit (ECU) in einem Fahrzeug, die einen Aktuator, wie z.B. eine Bremse, für ein ABS (Antiblockiersystem) oder ein ESP (elektronisches Stabilitätsprogramm) steuert) weiterleitet. Ausreichende Übereinstimmung bedeutet hierbei z.B. eine M-aus-N-Übereinstimmung, d.h. eine Übereinstimmung von (mindestens) M Datenpaketen unter N empfangenen Datenpaketen, wobei die Datenpakete einander entsprechen, d.h. zu demselben (Daten-)Verarbeitungszyklus gehören z.B. dieselbe Sequenznummer aus einem Datenstrom haben (z.B. für denselben Datenverarbeitungszyklus, z.B. Steuerzyklus, einer Folge von Datenverarbeitungszyklen sind).
Das Kommunikationssystem 100 implementiert also beispielsweise ein sogenanntes M-aus-N-Vergleichsschema. Die Daten (z.B. Ausgaben eines Sensors oder sonstiger Signale) der N Kanäle erfolgt in (Kommunikations- )systemen mit hohen Anforderungen an die Sicherheitsintegrität typischerweise für jeden Zyklus, in dem neuen Daten bereitgestellt werden. Beispielsweise erfolgt für ein Steuerintervall von beispielsweise 50ms, im selben Intervall ein Vergleich der eingehenden Daten, sowie eine direkte Entscheidung, ob das System fehlerfrei arbeitet oder ob ein Fehler vorliegt und die Daten ggf. verworfen werden müssen.
Solche M-aus-N-Vergleichsschemas werden für (sicherheitsrelevante) Echtzeitsysteme typischerweise nur mit sich räumlich nahen und i.d.R. lokal vernetzten und eng synchronisierten (i.d.R. embedded) Systemkomponenten eingesetzt. Solche Systeme aus lokal-vernetzten Komponenten sind typischerweise gut miteinander zeitsynchronisiert, beispielsweise über eine (im lokalen System) globale Uhrzeit, gegen welche sich alle Systemkomponenten regelmäßig synchronisieren. Damit ist es möglich, die Ausführung der Datenverarbeitungsschritte zwischen den N Kanälen 103 und dem darauffolgenden Vergleicher 104 zeitsynchron zu halten. Durch die enge Zeitsynchronisierung ist es möglich, dass jeder in jedem Datenverarbeitungszyklus der Vergleich nahezu verzögerungsfrei vom Vergleicher abgearbeitet werden kann. Daher erfolgt die Datenbereitstellung zur Datensenke 105 in einem solchen lokalen vernetzten System mit einer sehr kleinen zusätzlichen Latenz gegenüber der Verarbeitungskette in einem einkanaligen System ohne Redundanzen und Vergleicher.
In weit verteilten Systemen, deren Komponenten beispielsweise über das Internet oder andere öffentliche und geteilte Netzwerke (z.B. Mobilfunknetze) vernetzt sind (d.h. bei denen die Kanäle 103 durch solche Netzwerke bereitgestellt werden), ist es deutlich schwieriger, ein M-aus-Vergleichsschema zur Absicherung von Zuverlässigkeitsanforderungen (bzgl. Integrität und rechtzeitiger Verfügbarkeit von Daten) umzusetzen, da folgende Unterschiede gegenüber einem System mit schneller (z.B. lokal) vernetzten Komponenten bestehen:
1) Es existiert im Allgemeinen keine präzise gemeinsame Zeitbasis zwischen den Komponenten; wegen (2) ist es schwer eine präzise gemeinsame Zeitbasis herzustellen und synchron zu halten
2) Die Übertragungszeiten einzelner Botschaften/Datenpakete variieren bei paketbasierter, dynamisch gerouteter Netzwerkkommunikation stark. Beispielsweise können bei hoher Netzwerkauslastung Pakete deutlich später ankommen (oder gar nicht) als es bei niedriger Netzwerkauslastung oder im Durchschnitt der Fall wäre
3) Bei Defekten oder temporären Störungen der Übertragungsstrecke kann es zu Kommunikationsausfällen oder Verzögerungen zwischen einzelnen Komponenten des Systems kommen. Drahtlose Verbindungen (z.B. für V2X Kommunikationskanäle) sind dabei i.d.R. störanfälliger als drahtgebundene Verbindungen Wird ein M-aus-N-Schema wie mit Bezug auf Figur 1 beschrieben in einem derart weit verteilten vernetzen System eingesetzt, wobei gleichzeitig eine hohe Integrität der Daten (d.h. fehlerhafte Inhalte werden hinreichend schnell als fehlerhaft erkannt) und Rechtzeitigkeit der Daten (z.B. aktuelle Daten in Zyklen mit je 20ms) gefordert werden, treten Schwierigkeiten auf, wie sie in Tabelle 1 beispielhaft für ein 2-aus-3-Schema zusammengefasst sind und im Folgenden erläutert werden. Für jeden Verarbeitungszyklus ist dabei angegeben, welche Daten der jeweilige Kanal aktuell liefert (was noch Daten für den vorhergehenden Verarbeitungszyklus sein können, da diese und die aktuellen Daten verzögert sind).
Tabelle 1
Fall 1 (Warten auf Daten für Vergleich): Wartet der Vergleicher 104 in einem Zyklus z1 auf den Eingang aller Daten/Signale/Ausgaben der N Kanäle, um den Zyklus bzgl. Integrität abzusichern, dann besteht in weit verteilten Systemen eine nicht zu vernachlässigende Wahrscheinlichkeit, dass es aufgrund einer der drei zuvor genannten Eigenschaften bei mindestens einem der N Kanäle zu einer verzögerten Bereitstellung der Ergebnisse kommt und die Echtzeitanforderungen verletzt werden (d.h. z1 überschreitet sein maximal erlaubtes Zeitfenster). Dies ist in Tabelle 1 in Spalte z1 beispielhaft für den 3-aus-3-Vergleich dargestellt.
Fall 2 (Direktes Weiterleiten): Wird ein auf Zeit optimiertes „First-in first-out“ Verhalten gewählt (d.h. der Vergleicher 104 vergleicht nur die zum aktuellen Zeitpunkt verfügbaren Daten und schickt Daten ungeprüft weiter, wenn diese nicht rechtzeitig falsifiziert werden können), dann besteht das Risiko, dass fehlerhafte Daten an der Datensenke empfangen werden, die dort nicht mehr als fehlerhaft identifizierbar sind. Ein solcher Fall ist z.B. in Tabelle 1 in Spalte z2 und z3 dargestellt.
In beiden Fällen wird mindestens eine der Anforderungen (hohe Integrität und Rechtzeitigkeit, d.h. geringe Latenz) verletzt. Darüber hinaus wird der Verarbeitungskette eine zusätzliche (variable) Verarbeitungslatenz in Form der Wartezeit im Vergleicher hinzugefügt. Im günstigeren Fall 1 kommt es zu einer kontrollierten Fehlerreaktion, z.B. durch Abschalten oder Unterbrechen einer Funktionalität in der Datensenke 105. Im ungünstigeren Fall 2 kommt es zu einer unbemerkten Weitergabe von Fehlern zur Datensenke 105. Da Fall 1 bei weit verteilten vernetzten Systemen häufig zu erwarten ist, ist dieses Konzept in der Praxis für viele Anwendungen nicht gut geeignet. Ein Grund hierfür sind potentielle Netzwerkprobleme die ggf. direkt auf das Systemverhalten durchschlagen und mit häufigen Funktionsdegradationen in der Datensenke 105 resultieren können.
Gemäß verschiedenen Ausführungsformen wird eine Herangehensweise bereitgestellt, die es ermöglicht, auch in geographisch weit verteilten und (im schwierigsten Fall drahtlos) vernetzten Systemen echtzeitkritische und sicherheitskritische Anwendungen zu implementieren. Dazu wird, wie im Folgenden beschrieben, eine Herangehensweise bereitgestellt, die es ermöglicht, in verteilten Systemen ein M-aus-N-Vergleichsschema einzusetzen, ohne dabei die erreichbaren Anforderungen bzgl. Integrität und/oder das Empfangen der Daten/Signale zur rechten Zeit (d.h. eine geringe Latenz) zu stark einzuschränken. Dazu wird gemäß verschiedenen Ausführungsformen die Funktionalität des Vergleichers 104 verteilt. Figur 2 zeigt ein Kommunikationssystem 200 gemäß einer Ausführungsform.
Analog zu dem Kommunikationssystem 100 von Figur 1 weist das Kommunikationssystem 200 einen Empfänger 201 , einen Datenerzeuger 202, mehrere Kanäle 203 und eine Datensenke 205 auf. Wie oben mit Bezug auf Figur 1 erläutert kann pro Datenquelle auch ein eigener Datenerzeuger vorgesehen sein.
Das Kommunikationssystem 200 unterscheidet sich von dem Kommunikationssystem 100 von Figur 1 darin, dass an Stelle des Vergleichers 104 ein FIFO (First-In-First- Out)-Vergleicher 204 (im Empfänger 201) gefolgt von einer Überwachungseinrichtung 206 (oder Entscheidungseinrichtung, im Folgenden auch als (Meta-Daten-)Watchdog bezeichnet) vorgesehen ist. Die Überwachungseinrichtung 206 ist typischerweise geographisch nah an der der Datensenke 205, z.B. kann zusammen mit der Datensenke 205 in einer Komponente (z.B. in einem Gerät) vorgesehen sein. Der Empfänger 201 kann sich hingegen in einer davon getrennten Komponente befinden.
Der FIFO-Vergleicher 204 und die Überwachungseinrichtung 206 implementieren ein zweigeteiltes und um zyklusbezogene Meta-Informationen erweitertes M-aus-N- Vergleichsschema. Dabei wird ausgenutzt, dass sicherheitsrelevante Echtzeitanwendungen i.d.R. ein sogenanntes Fehlertoleranzzeitintervall (FTTI) haben, währenddessen ein im System zwischen den Komponenten propagierter Fehler noch keine gefährlichen Auswirkungen verursachen kann. Beispielhaft soll ein Bremsvorgang aus dem Automobilbereich betrachtet werden. Ein fehlerbedingter Bremseingriff für wenige Millisekunden führt lediglich zu einem kurzen Ruck im Fahrzeug, was zwar eine Beeinträchtigung des Fahrkomforts, nicht jedoch der Sicherheit darstellt. Ein Teil dieses anwendungsspezifischen
Fehlertoleranzzeitintervals wird im erweiterten Vergleichsschema zur zeitversetzen Fehlerdetektion (als Fehlerdetektionszeit(intervall) FDTI) genutzt, während dem (Nutz- ) Daten nahezu unverzögert an die darauffolgenden Systemkomponenten weitergeleitet werden können.
Der FIFO-Vergleicher 204 und die Überwachungseinrichtung 206 haben dafür die folgenden Funktionalitäten:
• Der FIFO-Vergleicher (auch als Vergleichseinrichtung bezeichnet) 204 führt auf der Grundlage (z.B. temporär gespeicherter) Meta-Informationen über die erhaltenen Daten einen retrospektiven M-aus-N-Vergleich durch und sendet das Vergleichsergebnis dann in Form von (Meta-) Kontrollinformationen (z.B. über ein separat gesendetes Safety-Meta-Daten-Signal) an die Überwachungseinrichtung 206.
• Die Überwachungseinrichtung 206 überwacht die Datenweiterleitung anhand der vom FIFO-Vergleicher generierten Kontrollinformationen, indem sie die Kontrollinformationen auswertet und im Fehlerfall bzw. beim Ausbleiben der positiven Kontrollinformation eine Fehlerreaktion in der Datensenke 205 auslöst (z.B. ein Abschalten ausgewählter Funktionen). Zusätzlich setzt die Überwachungseinrichtung 206 gemäß einer Ausführungsform (ebenfalls auf den Kontrollinformationen basierend) erweiterte Fehlerdiagnose-Maßnahmen um, um damit z.B. einen persistent unzuverlässigen Kanal 203 zu identifizieren und die angestrebte Zuverlässigkeit des Gesamtsystems ggf. durch eine Rekonfiguration des unzuverlässigen Kanals zur Laufzeit automatisiert wieder herzustellen.
Im Folgenden werden die Funktionalitäten des FIFO-Vergleichers 204 und der Überwachungseinrichtung (Watchdog) 206 gemäß einem Ausführungsbeispiel genauer beschrieben.
Der FIFO-Vergleicher 204 arbeitet alle eines neuen Zyklus zugehörigen Daten in zwei Phasen ab.
In Phase 1 erhält der FIFO-Vergleicher 204 (Nutz-)Daten (bzw. Signale/Ausgaben) für einen aktuellen Vergleichszyklus. Dabei kommen die Daten aufgrund der zuvor genannten leichten Asynchronität von einem der N redundanten Kanäle 203 zuerst im FIFO-Vergleicher 204 an und werden von diesem (mit geringer Verzögerung) zunächst ungeprüft an den Watchdog 206 weitergeleitet. Bei der Weiterleitung der Daten werden zudem vom FIFO-Vergleicher insbesondere folgende Meta-Informationen hinzugefügt:
• Nummer/ID des Kanals oder der Anwendung/Funktion über welchen die Daten empfangen wurden
• Sequenznummer/ID welche die Daten als einem Zyklus zugehörig identifiziert
Parallel dazu speichert der FIFO-Vergleicher 204 die genannten Meta-Informationen über die weitergeleiteten Daten intern ab und führt in Phase 2 einen retrospektiven Vergleich zwischen den Daten eines Zyklus immer dann durch, wenn von mindestens einem weiteren der verbleibenden N-1 Kanäle die (zu demselben Zyklus gehörigen) Daten empfangen wurden. Dabei werden bis zu N-1 Vergleiche zwischen den (im fehlerfreien Fall) selben Daten eines Zyklus durchgeführt und (Meta-
) Kontrollinformationen werden jeweils mit den Ergebnissen des letzten Vergleichs aktualisiert. Das Übermitteln von Kontrollinformationen zum Entscheider erfolgt in einer Ausführungsform immer dann, wenn ein weiterer Vergleich der Nutzdaten eines Zyklus erfolgt ist (nämlich dann, wenn Daten für den betrachteten Verarbeitungszyklus von einer weiteren Datenquelle empfangen wurden). Beispielsweise werden erste Kontrollinformationen erstellt und zum Watchdog gesendet, wenn die Daten eines Zyklus von mindestens zwei aus N Kanälen im FIFO-Vergleicher vorliegen, so dass ein erster (2-aus-N) Vergleich möglich ist. Die Ergebnisse dieses ersten Vergleichs werden dann an den Watchdog 206 gesendet, so dass dort entschieden werden kann, ob eine Bestätigung aus zwei Kanälen bereits ausreichend ist oder ob auf die Bestätigung durch weitere Kanäle gewartet wird, bevor die Daten für die Verwendung in der Datensenke als ausreichend verifiziert gelten (d.h. der Watchdog 206 kann M entsprechend wählen).
Ein Ausfall des (FIFO-)Vergleichers 204 und/oder der Übermittlung der Kontrollinformationen kann im Watchdog 206 über ein sogenanntes Timeout- Monitoring detektiert werden. In einer Variante in welcher der FIFO-Vergleicher 204 komplett in Software ausgeführt ist, können z.B. vom Watchdog 206 automatisierte Reparatur-Versuche für einen fehlerhaft arbeitenden FIFO-Vergleicher 204 ausgelöst werden, wobei die FIFO-Vergleicher-Software, z.B. mittels geeigneter Virtualisierungstechnologie und Konfigurationsbefehlen tftd an eine Orchestrierungssoftware, auf eine andere Ausführungsplattform übertragen wird und dort nach erfolgreicher Migration den Betrieb wieder aufnehmen kann.
Um zu vermeiden, dass im FIFO-Vergleicher 204 die Menge an vorzuhaltenden Informationen über bereits weitergeleitete Daten mit der Zeit immer weiter zunimmt, werden in einer Ausführungsform veraltete Daten dort nach einer bestimmten Zeit gelöscht (z.B. Daten die vor einer konfigurierbaren Zahl von Sekunden bereits weitergeleitet wurden). Über eine jedem Zyklus zugeordnete eindeutige Sequenznummer können veraltete Daten (die z.B. von einem Kanal kommen, dessen Daten den FIFO-Vergleicher erst viel zu spät erreichen) zudem direkt aus dem Datenstrom gefiltert werden, so dass keine unnötigen Ressourcen im FIFO-Vergleicher 204 und in der weiteren Netzwerkkommunikation mit dem Watchdog 206 belegt werden. Diese Sequenznummer kann entweder von der jeweiligen Datenquelle selbst gesetzt werden, beispielsweise im Rahmen eines Headerfeldes innerhalb der Nutzdaten, oder über geeignetes Setzen von Headerfeldern im darunterliegenden Transportprotokoll.
Der (Meta-Daten-)Watchdog 206 arbeitet ebenfalls in zwei zu unterscheidenden Phasen. In Phase 1 (Informationsbeschaffung) erhält der Watchdog 206 vom FIFO- Vergleicher 204 neue Nutzdaten inkl. erster Meta-Informationen (d.h. Kanal-Nummer/- ID, Zeitstempel der Weiterleitung, Sequenznummer der Daten, etc.) und speichert diese intern unter Zuhilfenahme eines lokalen Zeitstempels ab. Dann prüft er anhand der Meta-Informationen (z.B. Sequenznummer), ob diese Nutzdaten bereits an die Datensenke 205 weitergeleitet wurden. In diesem Fall werden die Daten verworfen. Handelt es sich um neue (d.h. noch nicht weitergeleitete) Nutzdaten, so leitet er diese an die Datensenke 205 weiter. Weiter startet er für weitergeleitete Nutzdaten eines Zyklus (d.h. Nutzdaten mit eigener Sequenznummer/ID) einen rückwärtslaufenden Fehlerdetektions-Timer. Die Dauer entspricht dabei der maximal erwünschten Fehlerdetektionszeit (FDTI) der jeweiligen Anwendung.
In Phase 2 (Verifikation und Retrospektive durch Betrachtung der durch den Vergleicher 204 erzeugten Kontrollinformationen, die das Ergebnis des retrospektiven Vergleichs anzeigen), welche durch den Start des Fehlerdetektions-Timers eingeleitet wird, wartet der Watchdog auf weitere Meta-Informationen von dem FIFO-Vergleicher, die zur Verifikation bzw. Falsifikation der bereits weitergeleiteten Daten benötigt werden. Falls ein solcher Timer den Wert Null erreicht, bevor der Watchdog 206 von dem Vergleicher 204 Kontrollinformationen empfangen hat, die anzeigen, dass die Nutzdaten über durch Empfangen weiterer zugehöriger Daten (z.B. Datenpakete mit derselben Sequenznummer oder ID) von einem anderen Kanal hinreichend verifiziert werden konnten, betrachtet der Watchdog die Nutzdaten als fehlerhaft.
Sobald neue Kontrollinformationen im Watchdog 206 eintreffen, prüft er, ob dadurch die bereits weitergeleiteten Daten (mindestens teilweise) verifiziert oder ggf. falsifiziert werden.
Tabelle 2 veranschaulicht den Ablauf im FIFO-Vergleicher 204, für ein Beispiel, wenn er Daten aus drei Quellen (S1 , S2, S3), d.h. N =3, empfängt. Tabelle 3 zeigt die entsprechende Erzeugung von (Meta-) Kontrollinformationen durch den FIFO-Vergleicher 204.
Tabelle 4 veranschaulicht den Ablauf in der Überwachungseinrichtung 206 für das Beispiel, speziell welche Daten von der Überwachungseinrichtung 206 an die Datensenke 205 weitergeleitet werden.
Tabelle 5 zeigt die Auswertung der Kontrollinformationen im Watchdog 206 für das Beispiel. Die Übertragung der Kontrollinformationen von dem Vergleicher 204 zu der Überwachungseinrichtung 206 dauert in diesem Beispiel 10ms.
Das Beispiel erstreckt sich über mehrere Verarbeitungszyklen. Die Sequenznummer (Seq. Nr) gibt den jeweiligen Verarbeitungszyklus der zu überwachenden Anwendung an.
In dem Beispiel der Tabellen 2 bis 5 wird ein 2-aus-3-Vergleichsschema verwendet. Die maximale Fehlerdetektionszeit ist in dem Beispiel 100ms.
Tabelle 2
Tabelle 3
Tabelle 4
Tabelle 5
Falls die Kontrollinformationen weitergeleitete Daten eines Verarbeitungszyklus als fehlerhaft identifiziert, wird in Phase 2 der Verarbeitung durch den Watchdog 206 überprüft, ob die bereits weitergeleiteten Daten des betroffenen Verarbeitungszyklus einen als fehlerhaft identifizierten Kanal oder einen als korrekt verifizierten Kanal als Datenquelle zu Grunde hatte. Es können folgende Fälle auftreten:
1) Stellt sich bei dem retrospektiven Vergleich (bzw. bei der retrospektiven Betrachtung, d.h. der retrospektiven Überprüfung der zugehörigen
Kontrollinformationen) heraus, dass die weitergeleiteten Daten korrekt waren (also das Ergebnis des M-aus-N-Vergleichs bei dem retrospektiven Vergleich durch den Vergleicher 204 positiv war), sind keine weiteren Aktionen durch den Watchdog 206 zu tätigen. Es wurden durch ihn in Phase 1 keine fehlerhaften Daten an die Datensenke 205 weitergeleitet
2) Stellt sich bei dem retrospektiven Vergleich heraus, dass die weitergeleiteten Daten fehlerhaft waren, dann fand eine (zeitlich begrenzte) Fehlerpropagation zur Datensenke 205 statt und der Watchdog 206 signalisiert dies an die Datensenke 205. Die Datensenke löst dann bei Bedarf eine geeignete Fehlerreaktion aus, z.B. eine Funktionseinschränkung.
3) Läuft der zyklusbezogene Fehlerdetektions-Timer ab, bevor 1) oder 2) eintritt, werden die weitergeleiteten Daten vom Watchdog als potentiell fehlerhaft angenommen und eine geeignete Signalisierung durch den Watchdog 206 vorgenommen und bei Bedarf wird eine geeignete Fehlerreaktion in der Datensenke 205 durchgeführt.
Durch die beschriebenen Mechanismen im Watchdog 206 wird sichergestellt, dass fehlerhafte Daten stets innerhalb der Fehlerdetektionszeit FDTI als solche identifiziert werden und eine Auswirkung eines Fehlers rechtzeitig gestoppt werden kann, ohne dass im fehlerfreien Fall die Latenz der der Datenverarbeitungskette durch das hier beschriebene M-aus-N-Vergleichsschema signifikant erhöht wird.
Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie in Figur 3 dargestellt.
Figur 3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen an eine Datensenke gemäß einer Ausführungsform darstellt.
In 301 werden von von einer ersten Datenquelle empfangene und von einer Vergleichseinrichtung weitergeleitete Daten durch eine Überwachungseinrichtung an die Datensenke weitergeleitet, bevor die Überwachungseinrichtung eine Kontrollinformation, die ein Ergebnis eines Vergleichs der von der ersten Datenquelle empfangenen Daten mit von ein oder mehreren zweiten der Datenquellen empfangenen Daten anzeigt, von der Vergleichseinrichtung empfangen hat. In 302 wird, falls die Überwachungseinrichtung innerhalb einer Fehlerdetektionszeit nach Weiterleiten der empfangenen Daten an die Datensenke die Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, nicht von der Vergleichseinrichtung empfangen hat, oder die Kontrollinformation ein negatives Ergebnis anzeigt, ein Fehlerzustand an die Datensenke signalisiert.
Das Verfahren von Figur 3 kann durch einen oder mehrere Computer mit einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden. Der Begriff „Datenverarbeitungseinheit“ kann als irgendein Typ von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Die Daten oder Signale können beispielsweise gemäß mindestens einer (d.h. einer oder mehr als einer) speziellen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), eine Graphikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), eine integrierte Schaltung einer programmierbaren Gatteranordnung (FPGA) oder irgendeine Kombination davon umfassen oder aus dieser ausgebildet sein. Irgendeine andere Weise zum Implementieren der jeweiligen Funktionen, die hierin genauer beschrieben werden, kann auch als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es können ein oder mehrere der im Einzelnen hier beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezielle Funktionen ausgeführt (z. B. implementiert) werden, die durch die Datenverarbeitungseinheit durchgeführt werden.
Das Verfahren ist also gemäß verschiedenen Ausführungen insbesondere computerimplementiert.
Das Verfahren kann für verschiedene Systeme mit mehreren Datenquellen verwendet werden, insbesondere solche, die hohe Anforderungen an die Zuverlässigkeit und/oder Latenz stellen. Beispiele sind
• Electronic Control Units (ECUs) in Fahrzeugen, beispielsweise für Powertrain Controller, Bremssysteme, Assistenzsysteme, etc. • Feldbus Programmable Logic Controllers (PLC), auch virtualisierte Versionen, im Industriebereich
• Weitere Steuergeräte, insbesondere in den oben genannten Bereichen, wie z.B. Netzwerk- Gateways
Ein Anwendungsbeispiel ist ein Fahrzeug mit integrierten Sensoren und über ein Drahtlosnetzwerk angebundene an einer Straße angebrachten (aus Fahrzeugsicht externe) Sensoren als Datenquellen, wobei eine Vergleichseinrichtung im Fahrzeug angebracht ist welche nach dem vorgestellten Verfahren die redundanten Informationen der integrierten und externen Sensoren überwacht.
Ein weiteres Anwendungsbeispiel ist eine computergestützte Prozesssteuerung einer Produktionsanlage, in welcher Steuerungsalgorithmen zur Erhöhung der Ausfallsicherheit und Sicherheitsintegrität redundant auf mehreren unterschiedlichen Computern berechnet werden und deren resultierende Steuerbefehle in einer speziellen Sicherheitssteuerung (sog. „safety programmable logic controller“), mittels einer Vergleichseinrichtung nach dem vorgestellten Verfahren, überwacht.

Claims

Ansprüche
1 . Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen (203) an eine Datensenke (205), aufweisend: Weiterleiten von von einer ersten Datenquelle empfangenen und von einer Vergleichseinrichtung (204) weitergeleiteten Daten durch eine Überwachungseinrichtung (206) an die Datensenke (205), bevor die Überwachungseinrichtung (206) eine Kontrollinformation, die ein Ergebnis eines Vergleichs der von der ersten Datenquelle empfangenen Daten mit von ein oder mehreren zweiten der Datenquellen (203) empfangenen Daten anzeigt, von der Vergleichseinrichtung (204) empfangen hat; und
Falls die Überwachungseinrichtung (206) innerhalb einer Fehlerdetektionszeit nach Weiterleiten der empfangenen Daten an die Datensenke (205) die Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, nicht von der Vergleichseinrichtung (204) empfangen hat, oder die Kontrollinformation ein negatives Ergebnis anzeigt, Signalisieren eines Fehlerzustands an die Datensenke (205).
2. Verfahren nach Anspruch 1 , aufweisend Empfangen der Daten von der ersten der Datenquellen (203) durch die Vergleichseinrichtung (204), Weiterleiten der von der ersten Datenquelle empfangenen Daten durch die Vergleichseinrichtung (204) an die Überwachungseinrichtung (206), bevor die Vergleichseinrichtung (204) den Vergleich abgeschlossen hat, Durchführen des Vergleichs durch die Vergleichseinrichtung (204) und Übermitteln der Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, von der Vergleichseinrichtung (204) an die Überwachungseinrichtung (206).
3. Verfahren nach Anspruch 1 oder 2, aufweisend Signalisieren eines ersten Fehlerzustands durch die Überwachungseinrichtung (206) an die Datensenke (205), falls die Überwachungseinrichtung (206) innerhalb einer Fehlerdetektionszeit nach Weiterleiten der empfangenen Daten an die Datensenke (205) die Kontrollinformation, die ein Ergebnis des Vergleichs anzeigt, nicht von der Vergleichseinrichtung (204) empfangen hat, und Signalisieren eines zweiten Fehlerzustands durch die Überwachungseinrichtung (206) an die Datensenke (205), falls die Kontrollinformation ein negatives Ergebnis anzeigt
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Vergleich ein M- aus-N-Vergleich ist.
5. Verfahren nach einem der Ansprüche 1 bis 4, aufweisend Durchführen des Weiterleitens für von den Datenquellen (203) empfangenen Daten für jeden mehrerer Verarbeitungszyklen und ferner aufweisend Auslösen einer Rekonfiguration für eine Datenquelle, für die eine Anzahl von Verarbeitungszyklen, für die der jeweilige Vergleich angezeigt hat, dass die Daten von der Datenquelle fehlerhaft sind, oder für die die Daten von der Datenquelle mit einer Verzögerung über einem Verzögerungsschwellwert von der Vergleichseinrichtung (204) empfangen wurden.
6. Datenverarbeitungsanordnung, eingerichtet zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 5.
7. Computerprogramm mit Befehlen, die, wenn sie durch einen oder mehrere Prozessor ausgeführt werden, bewirken, dass die ein oder mehreren Prozessoren ein Verfahren nach einem der Ansprüche 1 bis 5 durchführen.
8. Computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen oder mehrere Prozessor ausgeführt werden, bewirken, dass die ein oder mehreren Prozessoren ein Verfahren nach einem der Ansprüche 1 bis 5 durchführen.
EP24701190.1A 2023-03-13 2024-01-18 Verfahren zum weiterleiten von daten von einer mehrzahl von datenquellen an eine datensenke Pending EP4681076A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102023202226.5A DE102023202226A1 (de) 2023-03-13 2023-03-13 Verfahren zum Weiterleiten von Daten von einer Mehrzahl von Datenquellen an eine Datensenke
PCT/EP2024/051125 WO2024188515A1 (de) 2023-03-13 2024-01-18 Verfahren zum weiterleiten von daten von einer mehrzahl von datenquellen an eine datensenke

Publications (1)

Publication Number Publication Date
EP4681076A1 true EP4681076A1 (de) 2026-01-21

Family

ID=89662081

Family Applications (1)

Application Number Title Priority Date Filing Date
EP24701190.1A Pending EP4681076A1 (de) 2023-03-13 2024-01-18 Verfahren zum weiterleiten von daten von einer mehrzahl von datenquellen an eine datensenke

Country Status (6)

Country Link
EP (1) EP4681076A1 (de)
JP (1) JP2026510851A (de)
KR (1) KR20250160191A (de)
CN (1) CN120883194A (de)
DE (1) DE102023202226A1 (de)
WO (1) WO2024188515A1 (de)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
EP2884392B1 (de) * 2013-12-13 2018-08-15 Thales Fehlertolerante Rahmenarchitektur mit dreifacher Software-Redundanz
US10176032B2 (en) * 2014-12-01 2019-01-08 Uptake Technologies, Inc. Subsystem health score
US11606422B2 (en) * 2021-01-20 2023-03-14 Samsung Electronics Co., Ltd. Server for controlling data transmission through data pipeline and operation method thereof

Also Published As

Publication number Publication date
KR20250160191A (ko) 2025-11-11
WO2024188515A1 (de) 2024-09-19
CN120883194A (zh) 2025-10-31
DE102023202226A1 (de) 2024-09-19
JP2026510851A (ja) 2026-04-10

Similar Documents

Publication Publication Date Title
DE102012000185B4 (de) Verfahren zum Betreiben eines Kommunikationsnetzwerkes und Netzwerkanordnung
DE102021202935A1 (de) Verfahren und Vorrichtung zum Steuern einer Fahrfunktion
WO2008040641A2 (de) Verfahren und vorrichtung zur fehlerverwaltung
DE10152235A1 (de) Verfahren zum Erkennen von Fehlern bei der Datenübertragung innerhalb eines CAN-Controllers und ein CAN-Controller zur Durchführung dieses Verfahrens
DE102012000188B4 (de) Verfahren zum Betreiben eines Kommunikationsnetzwerkes und Netzwerkanordnung
DE102009054637A1 (de) Verfahren zum Betreiben einer Recheneinheit
EP1789857B1 (de) Datenübertragungsverfahren und automatisierungssystem zum einsatz eines solchen datenübertragungsverfahrens
EP2880823A1 (de) Kommunikationsnetzwerk und verfahren zum betreiben eines kommunikationsnetzwerkes
WO2016059100A1 (de) Verfahren zum überwachen eines ersten teilnehmers in einem kommunikationsnetzwerk und überwachungssystem
EP3110061A1 (de) Verteiltes echtzeitcomputersystem sowie verfahren zur erzwingung des fail-silent-verhaltens eines verteilten echtzeitcomputersystems
DE102017011685A1 (de) Verfahren und Vorrichtung zur Verarbeitung von Alarmsignalen
DE102016208869A1 (de) Verfahren zum Betreiben einer Datenverarbeitungsvorrichtung für ein Fahrzeug
WO2024188515A1 (de) Verfahren zum weiterleiten von daten von einer mehrzahl von datenquellen an eine datensenke
DE102021127310B4 (de) System und Verfahren zur Datenübertragung
WO2006092182A1 (de) Verfahren und vorrichtung zur überwachung einer prozessausführung
DE102004044764B4 (de) Datenübertragungsverfahren und Automatisierungssystem zum Einsatz eines solchen Datenübertragungsverfahrens
EP1596517B1 (de) Verfahren zur einkanaligen Übertragung von redundant vorliegenden Daten
DE102024103912A1 (de) Fehlererkennungsverfahren
EP1686732A1 (de) Verfahren und System zur Übertragung von Telegrammen
EP1640869A2 (de) Verfahren zur Durchführung eines Votings von redundanten Informationen
WO2022263416A1 (de) Steuerungssystem für mindestens ein empfangendes gerät in sicherheitskritischen anwendungen
WO2021219329A1 (de) Verfahren und sicherheitsgerichtetes system zum ausführen von sicherheitsfunktionen
EP4232905A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
DE102024126963B3 (de) Verfahren zum Absichern einer Übertragung von Nutzdaten sowie dafür eingerichtetes Sendergerät und Kraftfahrzeug
DE102021210077B4 (de) Computerimplementiertes Verfahren und Steuervorrichtung zur Steuerung einer Einheit eines Automotivesystems

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20251013

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR