DE102022203328A1 - Method and device for processing data associated with a computing device - Google Patents

Method and device for processing data associated with a computing device Download PDF

Info

Publication number
DE102022203328A1
DE102022203328A1 DE102022203328.0A DE102022203328A DE102022203328A1 DE 102022203328 A1 DE102022203328 A1 DE 102022203328A1 DE 102022203328 A DE102022203328 A DE 102022203328A DE 102022203328 A1 DE102022203328 A1 DE 102022203328A1
Authority
DE
Germany
Prior art keywords
fifo
queue
memory
data
computing device
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
DE102022203328.0A
Other languages
German (de)
Inventor
Christian Granzin
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
Priority to DE102022203328.0A priority Critical patent/DE102022203328A1/en
Priority to PCT/EP2023/058280 priority patent/WO2023194198A1/en
Publication of DE102022203328A1 publication Critical patent/DE102022203328A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren, beispielsweise computerimplementiertes Verfahren, zum Verarbeiten von mit einer Recheneinrichtung assoziierten Daten, aufweisend: Bereitstellen wenigstens einer ersten Warteschlange in einem ersten Speicherbereich, auf den, beispielsweise ausschließlich, ein erster mit der Recheneinrichtung assoziierter Prozess und ein zweiter mit der Recheneinrichtung assoziierter Prozess zugreifen können.Method, for example computer-implemented method, for processing data associated with a computing device, comprising: providing at least a first queue in a first memory area which can be accessed, for example exclusively, by a first process associated with the computing device and a second process associated with the computing device .

Description

Stand der TechnikState of the art

Die Offenbarung betrifft ein Verfahren zum Verarbeiten von mit einer Recheneinrichtung assoziierten Daten.The disclosure relates to a method for processing data associated with a computing device.

Die Offenbarung betrifft ferner eine Vorrichtung zum Verarbeiten von mit einer Recheneinrichtung assoziierten Daten.The disclosure further relates to a device for processing data associated with a computing device.

Offenbarung der ErfindungDisclosure of the invention

Beispielhafte Ausführungsformen beziehen sich auf ein Verfahren, beispielsweise ein computerimplementiertes Verfahren, zum Verarbeiten von mit einer Recheneinrichtung assoziierten Daten, aufweisend: Bereitstellen wenigstens einer ersten Warteschlange in einem ersten Speicherbereich, auf den, beispielsweise ausschließlich, ein erster mit der Recheneinrichtung assoziierter Prozess und ein zweiter mit der Recheneinrichtung assoziierter Prozess zugreifen können. Dies ermöglicht bei weiteren beispielhaften Ausführungsformen eine effiziente Bereitstellung von Mitteln für einen Datenaustausch zwischen Prozessen, beispielsweise der Recheneinrichtung, beispielsweise in einem Shared-Memory (also z.B. einem „geteilten“) Speicherbereich, auf den die betreffenden Prozesse, beispielsweise nicht jedoch andere, weitere Prozesse, zugreifen können.Exemplary embodiments relate to a method, for example a computer-implemented method, for processing data associated with a computing device, comprising: providing at least a first queue in a first memory area to which, for example exclusively, a first process associated with the computing device and a second process associated with the computing device can access. In further exemplary embodiments, this enables an efficient provision of means for data exchange between processes, for example the computing device, for example in a shared memory (i.e., for example a “shared”) memory area to which the relevant processes, but not other, further processes, for example , can access.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Verwenden der wenigstens einen ersten Warteschlange für einen Datenaustausch zwischen dem ersten Prozess und dem zweiten Prozess, wobei beispielsweise das Verwenden wenigstens eines der folgenden Elemente aufweist: a) Senden von Daten, beispielsweise in Form wenigstens einer ersten Nachricht, von dem ersten Prozess an den zweiten Prozess, b) Senden von Daten, beispielsweise in Form wenigstens einer zweiten Nachricht, von dem zweiten Prozess an den ersten Prozess.In further exemplary embodiments it is provided that the method comprises: using the at least one first queue for a data exchange between the first process and the second process, for example using at least one of the following elements: a) sending data, for example in the form at least one first message, from the first process to the second process, b) sending data, for example in the form of at least one second message, from the second process to the first process.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, das die wenigstens eine erste Warteschlange bereitgestellt wird und wenigstens eine weitere, z.B. zweite, Warteschlange, wobei beispielsweise die wenigstens eine weitere, z.B. zweite, Warteschlange z.B. auch in dem ersten Speicherbereich bereitgestellt wird, auf den, beispielsweise ausschließlich, der erste mit der Recheneinrichtung assoziierte Prozess und der zweite mit der Recheneinrichtung assoziierte Prozess zugreifen können. Dadurch ist bei weiteren beispielhaften Ausführungsformen eine effiziente Datenkommunikation zwischen dem ersten Prozess und dem zweiten Prozess, beispielsweise in beiden Richtungen (z.B. von dem ersten Prozess zu dem zweiten Prozess und umgekehrt) ermöglicht. Beispielsweise kann die erste Warteschlange für eine erste Richtung der Datenkommunikation zwischen dem ersten Prozess und dem zweiten Prozess verwendet werden, und die zweite Warteschlange kann z.B. für eine zweite Richtung der Datenkommunikation zwischen dem ersten Prozess und dem zweiten Prozess verwendet werden.In further exemplary embodiments it is provided that the at least one first queue is provided and at least one further, for example second, queue, whereby, for example, the at least one further, for example second, queue is also provided in the first memory area, for example exclusively , the first process associated with the computing device and the second process associated with the computing device can access. In further exemplary embodiments, this enables efficient data communication between the first process and the second process, for example in both directions (e.g. from the first process to the second process and vice versa). For example, the first queue may be used for a first direction of data communication between the first process and the second process, and the second queue may be used, for example, for a second direction of data communication between the first process and the second process.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Unterbinden, dass, beispielsweise außer dem ersten Prozess und dem zweiten Prozess, weitere mit der Recheneinrichtung assoziierte Prozesse auf den ersten Speicherbereich, beispielsweise auf die wenigstens eine erste Warteschlange (und/oder die zweite Warteschlange), zugreifen.In further exemplary embodiments it is provided that the method has: Preventing, for example, apart from the first process and the second process, further processes associated with the computing device from accessing the first memory area, for example on the at least one first queue (and/or the second queue).

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Zuweisen von Zugriffsrechten auf den ersten Speicherbereich und/oder auf die wenigstens eine erste Warteschlange (und/oder die zweite Warteschlange), beispielsweise ausschließlich, für den ersten Prozess und den zweiten Prozess.In further exemplary embodiments, it is provided that the method comprises: assigning access rights to the first memory area and/or to the at least one first queue (and/or the second queue), for example exclusively, for the first process and the second process.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Plausibilisieren wenigstens einer Komponente der wenigstens einen ersten Warteschlange. Dies ermöglicht bei weiteren beispielhaften Ausführungsformen eine Steigerung bezüglich der Sicherheit z.B. der mit der wenigstens einen ersten Warteschlange assoziierten Daten. Beispielsweise können durch das Plausibilisieren in weiteren beispielhaften Ausführungsformen Situationen erkannt werden, in denen ein mit der wenigstens einen ersten Warteschlange assoziierter Speicherbereich z.B. versehentlich bzw. aufgrund eines Fehlers unerwünscht modifiziert worden ist, oder in denen eine andersartige, unerwünschte Änderung eines Inhalts des mit der wenigstens einen ersten Warteschlange assoziierten Speicherbereichs erfolgt ist (z.B. Kippen eines Bits in dem Speicherbereich).In further exemplary embodiments it is provided that the method comprises: plausibility check of at least one component of the at least one first queue. In further exemplary embodiments, this enables an increase in the security, for example, of the data associated with the at least one first queue. For example, the plausibility check in further exemplary embodiments can identify situations in which a memory area associated with the at least one first queue has been undesirably modified, for example accidentally or due to an error, or in which a different, undesirable change to the content of the at least one queue has been made a memory area associated with a first queue (e.g. flipping of a bit in the memory area).

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden wenigstens eines FIFO (first in first out)-Speichers für die wenigstens eine Warteschlange, wobei beispielsweise der wenigstens eine FIFO-Speicher eine erste Zustandsvariable, beispielsweise Tail-Variable, aufweist, die eine Leseposition charakterisiert, wobei beispielsweise der wenigstens eine FIFO-Speicher eine zweite Zustandsvariable, beispielsweise Head-Variable, aufweist, die eine Schreibposition charakterisiert, wobei beispielsweise jeweils ein Element des wenigstens einen FIFO-Speicher eine Sequenznummer und Nutzdaten aufweist, b) Vorgeben einer Größe eines bzw. des wenigstens einen FIFO-Speichers, beispielsweise Festlegen einer Anzahl von Elementen, c) statisches Allokieren einer bzw. der Anzahl von Elementen, d) Verwenden von Indexvariablen für die wenigstens eine Zustandsvariable, e) Nichtverwenden von Zeigervariablen für die wenigstens eine Zustandsvariable, f) Verwenden eines, beispielsweise statisch codierten, Modulo-Operators für einen Zugriff auf Elemente des wenigstens eines FIFO-Speichers, wobei beispielsweise der Modulo-Operator mit der Anzahl von Elementen des wenigstens einen FIFO-Speichers assoziiert ist, insbesondere Nichtverwenden einer Variable für den Zugriff auf Elemente des wenigstens eines FIFO-Speichers, g) Speichern wenigstens einer Komponente des wenigstens einen FIFO-Speichers, beispielsweise einer Größe des wenigstens einen FIFO-Speichers, mittels einer Variablen, die mit einem privaten Speicherbereich wenigstens eines Prozesses, beispielsweise eines High-ASIL-Prozesses, assoziiert ist, h) Modifizieren wenigstens einer Komponente des wenigstens einen FIFO-Speichers, beispielsweise einer Größe des wenigstens einen FIFO-Speichers, beispielsweise während einer Laufzeit des wenigstens einen Prozesses, beispielsweise Reduzieren der Größe des wenigstens einen FIFO-Speichers während der Laufzeit des wenigstens einen Prozesses.In further exemplary embodiments it is provided that the method has at least one of the following elements: a) using at least one FIFO (first in first out) memory for the at least one queue, for example the at least one FIFO memory has a first state variable, for example Tail variable, which characterizes a read position, for example, the at least one FIFO memory has a second state variable, for example head variable, which characterizes a write position, for example, each element of the at least one FIFO memory has a sequence number and useful data has, b) specifying a size of one or the at least one FIFO memory, for example determining a number of elements, c) statically allocating one or the number of elements, d) using index variables for the at least one state variable, e) not using pointer variables for the at least one state variable, f) using a, for example statically coded, modulo operator for accessing elements of the at least one FIFO memory, for example the modulo operator being associated with the number of elements of the at least one FIFO memory, in particular not using a variable for accessing elements of the at least one FIFO memory, g) storing at least one component of the at least one FIFO memory, for example a size of the at least one FIFO memory, by means of a variable that is associated with a private memory area of at least one process, for example a high ASIL process , is associated, h) modifying at least one component of the at least one FIFO memory, for example a size of the at least one FIFO memory, for example during a runtime of the at least one process, for example reducing the size of the at least one FIFO memory during the runtime of the at least one process.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Speichern von Komponenten der wenigstens einen Warteschlange, beispielsweise des wenigstens einen FIFO-Speichers, zusammen mit einem Vergleichswert, b) Plausibilisieren wenigstens einer Komponente der wenigstens einen Warteschlange, beispielsweise des wenigstens einen FIFO-Speichers, basierend auf einem bzw. dem Vergleichswert, c) Ausführen einer bzw. der Plausibilisierung bei wenigstens machen, beispielsweise allen, Lesezugriffen auf die wenigstens eine Komponente der wenigstens einen Warteschlange, d) Einleiten einer Fehlerreaktion, beispielsweise Propagieren eines erkannten Fehlers, beispielsweise basierend auf einer bzw. der Plausibilisierung, wobei beispielsweise die Fehlerreaktion wenigstens eines der folgenden Elemente aufweist: d1) Initialisieren, beispielsweise Reinitialisieren, der wenigstens einen ersten Warteschlange, d2) erneutes Versenden einer Nachricht, z.B. im Falle defekter Nutzdaten, d3) Neustart wenigstens eines Prozesses, e) atomares Ausführen von Zugriffen auf wenigstens eine Komponente der wenigstens einen Warteschlange, beispielsweise des wenigstens einen FIFO-Speichers, f) lock-freies Ausführen von Zugriffen auf wenigstens eine Komponente der wenigstens einen Warteschlange, beispielsweise des wenigstens einen FIFO-Speichers.In further exemplary embodiments, it is provided that the method has at least one of the following elements: a) storing components of the at least one queue, for example the at least one FIFO memory, together with a comparison value, b) checking the plausibility of at least one component of the at least one queue , for example the at least one FIFO memory, based on one or the comparison value, c) carrying out a plausibility check for at least some, for example all, read accesses to the at least one component of the at least one queue, d) initiating an error reaction, for example Propagating a detected error, for example based on a plausibility check, for example the error reaction having at least one of the following elements: d1) initializing, for example reinitializing, the at least one first queue, d2) resending a message, for example in the case of defective user data , d3) restarting at least one process, e) atomically executing accesses to at least one component of the at least one queue, for example the at least one FIFO memory, f) lock-free executing accesses to at least one component of the at least one queue, for example the at least one FIFO memory.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Ermitteln wenigstens eines Vergleichswerts für wenigstens eine Komponente der wenigstens einen Warteschlange, beispielsweise des wenigstens einen FIFO-Speichers, und, optional, Speichern der wenigstens einen Komponente der wenigstens einen Warteschlange, beispielsweise des wenigstens einen FIFO-Speichers, zusammen mit dem Vergleichswert.In further exemplary embodiments it is provided that the method has at least one of the following elements: a) determining at least one comparison value for at least one component of the at least one queue, for example the at least one FIFO memory, and, optionally, storing the at least one component of the at least one queue, for example of the at least one FIFO memory, together with the comparison value.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Ermitteln des wenigstens einen Vergleichswerts wenigstens eines der folgenden Elemente aufweist: a) Bilden eines zu einem Wert der wenigstens einen Komponente der wenigstens einen Warteschlange inversen Werts, beispielsweise mittels Invertieren, b) Ausführen einer logischen Verknüpfung, beispielsweise einer XOR-Verknüpfung, mit dem Wert der wenigstens einen Komponente der wenigstens einen Warteschlange, c) Bilden einer Prüfsumme, beispielsweise vom CRC-Typ, beispielsweise dann, wenn eine mit der wenigstens einen Komponente assoziierte Datenmenge bzw. Größe einen vorgebbaren Schwellwert überschreitet.In further exemplary embodiments, it is provided that the determination of the at least one comparison value has at least one of the following elements: a) forming a value that is inverse to a value of the at least one component of the at least one queue, for example by inverting, b) executing a logical operation, for example an

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Inkrementieren der wenigstens einen Zustandsvariable, b) Zuweisen eines Werts der zweiten Zustandsvariable zu einer bzw. der Sequenznummer, beispielsweise bei einem Schreiben in die wenigstens eine Warteschlange, c) Vergleichen der Sequenznummer mit einem Wert der ersten Zustandsvariable, beispielsweise bei einem Lesen aus der wenigstens einen Warteschlange, d) basierend auf dem Vergleichen, beispielsweise gegebenenfalls, Einleiten einer Fehlerreaktion.In further exemplary embodiments it is provided that the method has at least one of the following elements: a) incrementing the at least one state variable, b) assigning a value of the second state variable to one or the sequence number, for example when writing to the at least one queue, c) comparing the sequence number with a value of the first state variable, for example when reading from the at least one queue, d) based on the comparison, for example if necessary, initiating an error reaction.

Weitere beispielhafte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens gemäß den Ausführungsformen.Further exemplary embodiments relate to a device for carrying out the method according to the embodiments.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Erzeugnis, beispielsweise ein Kraftfahrzeug oder ein Steuergerät, beispielsweise für ein Kraftfahrzeug, mit wenigstens einer Vorrichtung gemäß den Ausführungsformen.Further exemplary embodiments relate to a product, for example a motor vehicle or a control device, for example for a motor vehicle, with at least one device according to the embodiments.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.Further exemplary embodiments relate to a computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to carry out the method according to the embodiments.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.Further exemplary embodiments relate to a computer program, comprising send commands that, when a computer executes the program, cause it to carry out the method according to the embodiments.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal, das das Computerprogramm gemäß den Ausführungsformen überträgt und/oder charakterisiert.Further exemplary embodiments relate to a data carrier signal that transmits and/or characterizes the computer program according to the embodiments.

Weitere beispielhafte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Erzeugnisses gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen und/oder des Datenträgersignals gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Verarbeiten von mit wenigstens einem Prozess für eine Recheneinrichtung assoziierten Daten, b) selektives Gewähren von Zugriff auf die wenigstens eine Warteschlange für eine vorgebbare Menge von mit der Recheneinrichtung assoziierten Prozessen, c) Sicherstellen einer Störfreiheit, beispielsweise Freedom from Interference, einer Kommunikation zwischen einer vorgebbaren Menge von mit der Recheneinrichtung assoziierten Prozessen, beispielsweise bezüglich Störungen durch andere, beispielsweise ebenfalls mit der Recheneinrichtung assoziierte, Prozesse, d) Ausschließen, beispielsweise konzeptionelles Ausschließen, von Out-Of-Bound Zugriffen, beispielsweise auf Komponenten der wenigstens einen Warteschlange, e) Erkennen von, beispielsweise ungewollten, Speicherüberschreibungen, beispielsweise bezüglich eines mit der wenigstens einen Warteschlange assoziierten Speicherbereichs, f) Verwenden eines geteilten Speicherbereichs zur Ermöglichung einer, beispielsweise störsicheren, beispielsweise effizienten, Inter-Prozess-Kommunikation, beispielsweise unabhängig von einem Betriebssystem, g) Ermöglichen eines Einsatzes des Verfahrens und/oder einer das Verfahren ausführenden Vorrichtung in sicherheitsrelevanten Anwendungen bzw. Systemen, beispielsweise in Mixed-ASIL Systemen, h) Einschränken von Zugriffsrechten für Prozesse auf die wenigstens eine Warteschlange.Further exemplary embodiments relate to a use of the method according to the embodiments and/or the device according to the embodiments and/or the product according to the embodiments and/or the computer-readable storage medium according to the embodiments and/or the computer program according to the embodiments and/or the Data carrier signal according to the embodiments for at least one of the following elements: a) processing data associated with at least one process for a computing device, b) selectively granting access to the at least one queue for a predeterminable set of processes associated with the computing device, c) ensuring freedom from interference, for example freedom from interference, communication between a predeterminable set of processes associated with the computing device, for example with regard to interference from other processes, for example also associated with the computing device, d) exclusion, for example conceptual exclusion, of out-of-bounds Accesses, for example to components of the at least one queue, e) detecting, for example unwanted, memory overwrites, for example with regard to a memory area associated with the at least one queue, f) using a shared memory area to enable an, for example fail-safe, for example efficient, inter-process -Communication, for example independently of an operating system, g) enabling use of the method and/or a device executing the method in security-relevant applications or systems, for example in mixed-ASIL systems, h) restricting access rights for processes to the at least one queue .

Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Ansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.Further features, possible applications and advantages of the invention result from the following description of exemplary embodiments of the invention, which are shown in the figures of the drawing. All features described or illustrated, individually or in any combination, form the subject matter of the invention, regardless of their summary in the claims or their relationship and regardless of their formulation or representation in the description or in the drawing.

In der Zeichnung zeigt:

  • 1 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
  • 2 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 3 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 4 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 5 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 6 schematisch ein vereinfachtes Flussdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 7 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 8 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 9 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 10 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 11 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen,
  • 12 schematisch Aspekte von Verwendungen gemäß weiteren beispielhaften Ausführungsformen.
In the drawing shows:
  • 1 schematically a simplified flowchart according to exemplary embodiments,
  • 2 schematically a simplified block diagram according to further exemplary embodiments,
  • 3 schematically a simplified block diagram according to further exemplary embodiments,
  • 4 schematically a simplified block diagram according to further exemplary embodiments,
  • 5 schematically a simplified block diagram according to further exemplary embodiments,
  • 6 schematically a simplified flowchart according to further exemplary embodiments,
  • 7 schematically a simplified block diagram according to further exemplary embodiments,
  • 8th schematically a simplified block diagram according to further exemplary embodiments,
  • 9 schematically a simplified block diagram according to further exemplary embodiments,
  • 10 schematically a simplified block diagram according to further exemplary embodiments,
  • 11 schematically a simplified block diagram according to further exemplary embodiments,
  • 12 schematic aspects of uses according to further exemplary embodiments.

Beispielhafte Ausführungsformen, s. 1, beziehen sich auf ein Verfahren, beispielsweise ein computerimplementiertes Verfahren, zum Verarbeiten von mit einer Recheneinrichtung 12 (2) assoziierten Daten, aufweisend: Bereitstellen 100 (1) wenigstens einer ersten Warteschlange WS-1 in einem ersten Speicherbereich 14-1 (2), auf den, beispielsweise ausschließlich, ein erster mit der Recheneinrichtung 12 assoziierter Prozess P-1 und ein zweiter mit der Recheneinrichtung 12 assoziierter Prozess P-2 zugreifen können. Dies ermöglicht bei weiteren beispielhaften Ausführungsformen eine effiziente Bereitstellung von Mitteln für einen Datenaustausch zwischen Prozessen P-1, P-2, beispielsweise der Recheneinrichtung 12, beispielsweise in einem Shared-Memory (also z.B. einem „geteilten“) Speicherbereich, auf den die betreffenden Prozesse P-1, P-2, beispielsweise nicht jedoch andere, weitere Prozesse P-3, zugreifen können.Example embodiments, see 1 , refer to a method, for example a computer-implemented method, for processing with a computing device 12 ( 2 ) associated data, comprising: Provide 100 ( 1 ) at least one first queue WS-1 in a first memory area 14-1 ( 2 ), which can be accessed, for example exclusively, by a first process P-1 associated with the computing device 12 and a second process P-2 associated with the computing device 12. In further exemplary embodiments, this enables efficient provision of resources for one Data exchange between processes P-1, P-2, for example the computing device 12, for example in a shared memory (i.e., for example a “shared”) memory area to which the relevant processes P-1, P-2, but not others, for example, other processes P-3 can access.

Beispielsweise ist die Recheneinrichtung 12 zur Ausführung der Prozesse P-1, P-2, P-3 ausgebildet und bildet, z.B. zusammen mit einer Speichereinrichtung 14, auf die sie zugreifen kann, eine Vorrichtung 10, z.B. für ein eingebettetes System oder dergleichen.For example, the computing device 12 is designed to execute the processes P-1, P-2, P-3 and forms, for example together with a memory device 14 to which it can access, a device 10, for example for an embedded system or the like.

Bei weiteren beispielhaften Ausführungsformen ist die Recheneinrichtung 12 zur zumindest zeitweisen Ausführung von wenigstens manchen Aspekten des Verfahrens gemäß den Ausführungsformen ausgebildet.In further exemplary embodiments, the computing device 12 is designed to at least temporarily execute at least some aspects of the method according to the embodiments.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Verwenden 102 der wenigstens einen ersten Warteschlange WS-1 für einen Datenaustausch A1, A2 zwischen dem ersten Prozess P-1 und dem zweiten Prozess P-2, wobei beispielsweise das Verwenden 102 wenigstens eines der folgenden Elemente aufweist: a) Senden 102a von Daten, beispielsweise in Form wenigstens einer ersten Nachricht, von dem ersten Prozess P-1 an den zweiten Prozess P-2, b) Senden 102b von Daten, beispielsweise in Form wenigstens einer zweiten Nachricht, von dem zweiten Prozess P-2 an den ersten Prozess P-1.In further exemplary embodiments it is provided that the method comprises: using 102 the at least one first queue WS-1 for a data exchange A1, A2 between the first process P-1 and the second process P-2, for example using 102 at least one which has the following elements: a) sending 102a of data, for example in the form of at least a first message, from the first process P-1 to the second process P-2, b) sending 102b of data, for example in the form of at least a second message, from the second process P-2 to the first process P-1.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, das die wenigstens eine erste Warteschlange WS-1 bereitgestellt wird und wenigstens eine weitere, z.B. zweite, Warteschlange WS-2, s. z.B. Block 100 gemäß 1, wobei beispielsweise die wenigstens eine weitere, z.B. zweite, Warteschlange WS-2 z.B. auch in dem ersten Speicherbereich 14-1 bereitgestellt wird, auf den, beispielsweise ausschließlich, der erste mit der Recheneinrichtung 12 assoziierte Prozess P-1 und der zweite mit der Recheneinrichtung 12 assoziierte Prozess P-2 zugreifen können, s. die Blockpfeile A1, A2. Dadurch ist bei weiteren beispielhaften Ausführungsformen eine effiziente Datenkommunikation zwischen dem ersten Prozess P-1 und dem zweiten Prozess P-2, beispielsweise in beiden Richtungen (z.B. von dem ersten Prozess zu dem zweiten Prozess und umgekehrt) ermöglicht.In further exemplary embodiments it is provided that the at least one first queue WS-1 is provided and at least one further, for example second, queue WS-2, see for example block 100 according to 1 , wherein, for example, the at least one further, for example second, queue WS-2 is also provided, for example, in the first memory area 14-1, to which, for example exclusively, the first process P-1 associated with the computing device 12 and the second with the computing device 12 associated process P-2 can access, see the block arrows A1, A2. In further exemplary embodiments, this enables efficient data communication between the first process P-1 and the second process P-2, for example in both directions (eg from the first process to the second process and vice versa).

Beispielsweise kann die erste Warteschlange WS-1 für eine erste Richtung der Datenkommunikation zwischen dem ersten Prozess P-1 und dem zweiten Prozess P-2 verwendet werden, und die zweite Warteschlange WS-2 kann z.B. für eine zweite Richtung der Datenkommunikation zwischen dem ersten Prozess P-1 und dem zweiten Prozess P-2 verwendet werden.For example, the first queue WS-1 may be used for a first direction of data communication between the first process P-1 and the second process P-2, and the second queue WS-2 may be used, for example, for a second direction of data communication between the first process P-1 and the second process P-2 can be used.

Bei weiteren beispielhaften Ausführungsformen, 1, ist vorgesehen, dass das Verfahren aufweist: Unterbinden 105, dass, beispielsweise außer dem ersten Prozess P-1 und dem zweiten Prozess P-2, weitere mit der Recheneinrichtung 12 assoziierte Prozesse P-3 (2) auf den ersten Speicherbereich 14-1, beispielsweise auf die wenigstens eine erste Warteschlange WS-1 (und/oder die zweite Warteschlange WS-2), zugreifen. Dies ist in 2 mit dem durchgekreuzten Blockpfeil A3 symbolisiert, der symbolisiert, dass Zugriffe des weiteren Prozesses P-3 auf den ersten Speicherbereich 14-1 nicht erlaubt bzw. nicht möglich sind.In further exemplary embodiments, 1 , it is provided that the method has: Preventing 105 that, for example, in addition to the first process P-1 and the second process P-2, further processes P-3 associated with the computing device 12 ( 2 ) access the first memory area 14-1, for example the at least one first queue WS-1 (and/or the second queue WS-2). This is in 2 symbolized by the crossed-out block arrow A3, which symbolizes that access by the further process P-3 to the first memory area 14-1 is not permitted or not possible.

Bei weiteren beispielhaften Ausführungsformen, 1, ist vorgesehen, dass das Verfahren aufweist: Zuweisen 106 von Zugriffsrechten auf den ersten Speicherbereich 14-1 und/oder auf die wenigstens eine erste Warteschlange WS-1 (und/oder die zweite Warteschlange WS-2), beispielsweise ausschließlich, für den ersten Prozess P-1 und den zweiten Prozess P-1.In further exemplary embodiments, 1 , it is provided that the method comprises: assigning 106 access rights to the first memory area 14-1 and/or to the at least one first queue WS-1 (and/or the second queue WS-2), for example exclusively, for the first Process P-1 and the second process P-1.

Bei weiteren beispielhaften Ausführungsformen, 1, ist vorgesehen, dass das Verfahren aufweist: Plausibilisieren 104 wenigstens einer Komponente der wenigstens einen ersten Warteschlange WS-1. Dies ermöglicht bei weiteren beispielhaften Ausführungsformen eine Steigerung bezüglich der Sicherheit z.B. der mit der wenigstens einen ersten Warteschlange WS-1 assoziierten Daten. Beispielsweise können durch das optionale Plausibilisieren 104 in weiteren beispielhaften Ausführungsformen Situationen erkannt werden, in denen ein mit der wenigstens einen ersten Warteschlange WS-1 assoziierter Speicherbereich 14-1 z.B. versehentlich bzw. aufgrund eines Fehlers unerwünscht modifiziert worden ist, oder in denen eine andersartige, unerwünschte Änderung eines Inhalts des mit der wenigstens einen ersten Warteschlange WS-1 assoziierten vorliegend z.B. ersten Speicherbereichs 14-1 erfolgt ist (z.B. Kippen eines Bits in dem Speicherbereich).In further exemplary embodiments, 1 , it is provided that the method comprises: plausibility check 104 of at least one component of the at least one first queue WS-1. In further exemplary embodiments, this enables an increase in the security, for example, of the data associated with the at least one first queue WS-1. For example, in further exemplary embodiments, the optional plausibility check 104 can be used to recognize situations in which a memory area 14-1 associated with the at least one first queue WS-1 has been undesirably modified, for example accidentally or due to an error, or in which a different type of An undesirable change in the content of the first memory area 14-1, for example associated with the at least one first queue WS-1, has occurred (for example, a bit in the memory area has been flipped).

Bei weiteren beispielhaften Ausführungsformen, 3, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden 110 wenigstens eines FIFO (first in first out)-Speichers FIFO-1, FIFO-2 für die wenigstens eine Warteschlange WS-1, WS-2 (2), wobei beispielsweise der wenigstens eine FIFO-Speicher FIFO, FIFO-1, FIFO-2, vgl. z.B. die schematische Darstellung gemäß 4, eine erste Zustandsvariable ZV-1, beispielsweise Tail-Variable, aufweist, die eine Leseposition charakterisiert, wobei beispielsweise der wenigstens eine FIFO-Speicher eine zweite Zustandsvariable ZV-2, beispielsweise Head-Variable, aufweist, die eine Schreibposition charakterisiert, wobei beispielsweise jeweils ein Element FIFO-EL-1, FIFO-EL-2, ... des wenigstens einen FIFO-Speicher FIFO eine Sequenznummer SN-EL-1, SN-EL-2, ... und Nutzdaten ND-EL-1, ND-EL-2, ... aufweist. Beispielsweise weist jeder der FIFO Speicher FI FO-1, FIFO-2 gemäß 3, Block 110 eine Struktur FIFO gemäß 4 auf.In further exemplary embodiments, 3 , it is provided that the method has at least one of the following elements: a) using 110 at least one FIFO (first in first out) memory FIFO-1, FIFO-2 for the at least one queue WS-1, WS-2 ( 2 ), for example, the at least one FIFO memory FIFO, FIFO-1, FIFO-2, see for example the schematic representation according to 4 , a first state variable ZV-1, for example tail variable, which characterizes a reading position, for example the at least one FIFO memory has a second state variable ZV-2, for example Head variable, which characterizes a write position, for example each element FIFO-EL-1, FIFO-EL-2, ... of the at least one FIFO memory FIFO has a sequence number SN-EL-1, SN-EL- 2, ... and user data ND-EL-1, ND-EL-2, ... has. For example, each of the FIFO memories has FI FO-1, FIFO-2 3 , block 110 a structure according to FIFO 4 on.

Bei weiteren beispielhaften Ausführungsformen, 3, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: b) Vorgeben 111 einer Größe FIFO-GR eines bzw. des wenigstens einen FIFO-Speichers FIFO-1, FIFO-2, beispielsweise Festlegen 111a einer Anzahl von Elementen, c) statisches Allokieren 112 einer bzw. der Anzahl FIFO-EL-ANZ von Elementen, d) Verwenden 113 von Indexvariablen ZV-1-IDX, ZV-2-IDX für die wenigstens eine Zustandsvariable ZV-1, ZV-2, e) Nichtverwenden 114 von Zeigervariablen POINT für die wenigstens eine Zustandsvariable ZV-1, ZV-2, f) Verwenden 115 eines, beispielsweise statisch codierten, Modulo-Operators MOD-OP für einen Zugriff auf Elemente des wenigstens eines FIFO-Speichers, wobei beispielsweise der Modulo-Operator MOD-OP mit der Anzahl FIFO-EL-ANZ von Elementen des wenigstens einen FIFO-Speichers FIFO-1, FIFO-2 assoziiert ist, insbesondere Nichtverwenden 115a einer Variable für den Zugriff auf Elemente des wenigstens eines FIFO-Speichers FIFO-1, FIFO-2, g) Speichern 116 wenigstens einer Komponente des wenigstens einen FIFO-Speichers, beispielsweise einer Größe FIFO-GR des wenigstens einen FIFO-Speichers, mittels einer Variablen V-FIFO-GR, die mit einem privaten Speicherbereich 14-PR-1 (2) wenigstens eines Prozesses, beispielsweise eines High-ASIL (Automotive Safety Integrity Level)-Prozesses (Prozess mit einem vergleichsweise hohen ASIL), assoziiert ist, h) Modifizieren 117 wenigstens einer Komponente des wenigstens einen FIFO-Speichers, beispielsweise einer Größe FIFO-GR des wenigstens einen FIFO-Speichers, beispielsweise während einer Laufzeit des wenigstens einen Prozesses, beispielsweise Reduzieren der Größe FIFO-GR des wenigstens einen FIFO-Speichers während der Laufzeit des wenigstens einen Prozesses.In further exemplary embodiments, 3 , it is provided that the method has at least one of the following elements: b) specifying 111 a size FIFO-GR of one or the at least one FIFO memory FIFO-1, FIFO-2, for example specifying 111a a number of elements, c) static allocation 112 of one or the number of FIFO-EL-ANZ elements, d) using 113 of index variables ZV-1-IDX, ZV-2-IDX for the at least one state variable ZV-1, ZV-2, e) not using 114 of pointer variables POINT for the at least one state variable ZV-1, ZV-2, f) using 115 a, for example statically coded, modulo operator MOD-OP for access to elements of the at least one FIFO memory, for example the modulo operator MOD-OP is associated with the number FIFO-EL-ANZ of elements of the at least one FIFO memory FIFO-1, FIFO-2, in particular not using 115a a variable for accessing elements of the at least one FIFO memory FIFO-1, FIFO -2, g) storing 116 at least one component of the at least one FIFO memory, for example a size FIFO-GR of the at least one FIFO memory, by means of a variable V-FIFO-GR, which is linked to a private memory area 14-PR-1 ( 2 ) at least one process, for example a high ASIL (Automotive Safety Integrity Level) process (process with a comparatively high ASIL), is associated, h) modifying 117 at least one component of the at least one FIFO memory, for example a size FIFO-GR of the at least one FIFO memory, for example during a runtime of the at least one process, for example reducing the size FIFO-GR of the at least one FIFO memory during the runtime of the at least one process.

Bei weiteren beispielhaften Ausführungsformen, 5, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Speichern 120 von Komponenten (z.B. Sequenznummer und/oder Nutzdaten und/oder wenigstens eine Zustandsvariable) der wenigstens einen Warteschlange WS-1, WS-2, beispielsweise des wenigstens einen FIFO-Speichers, zusammen mit einem Vergleichswert VERGL-WERT, b) Plausibilisieren 121 wenigstens einer Komponente der wenigstens einen Warteschlange, beispielsweise des wenigstens einen FIFO-Speichers, basierend auf einem bzw. dem Vergleichswert VERGL-WERT, c) Ausführen 122 einer bzw. der Plausibilisierung 121 (s. auch 1, Block 104) bei wenigstens machen, beispielsweise allen, Lesezugriffen auf die wenigstens eine Komponente der wenigstens einen Warteschlange WS-1, WS-2, d) Einleiten 123 einer Fehlerreaktion FR, beispielsweise Propagieren eines erkannten Fehlers, beispielsweise basierend auf einer bzw. der Plausibilisierung 121, wobei beispielsweise die Fehlerreaktion FR wenigstens eines der folgenden Elemente aufweist: d1) Initialisieren, beispielsweise Reinitialisieren, der wenigstens einen ersten Warteschlange WS-1, WS-2, d2) erneutes Versenden einer Nachricht, z.B. im Falle defekter Nutzdaten, d3) Neustart wenigstens eines Prozesses P-1, P-2, e) atomares Ausführen 124 von Zugriffen FIFO-ZUGR auf wenigstens eine Komponente der wenigstens einen Warteschlange WS-1, WS-2, beispielsweise des wenigstens einen FIFO-Speichers FIFO-1, FIFO-2, f) lock-freies Ausführen 125 von Zugriffen FIFO-ZUGR auf wenigstens eine Komponente der wenigstens einen Warteschlange WS-1, WS-2, beispielsweise des wenigstens einen FIFO-Speichers.In further exemplary embodiments, 5 , it is provided that the method has at least one of the following elements: a) storing 120 of components (e.g. sequence number and/or payload data and/or at least one state variable) of the at least one queue WS-1, WS-2, for example the at least one FIFO memory, together with a comparison value COMPARISON-VALUE, b) plausibility check 121 of at least one component of the at least one queue, for example the at least one FIFO memory, based on one or the comparison value COMPARISON-VALUE, c) executing 122 one or the plausibility check 121 (see also 1 , block 104) for at least some, for example all, read accesses to the at least one component of the at least one queue WS-1, WS-2, d) initiating 123 an error reaction FR, for example propagating a detected error, for example based on one or the Plausibility check 121, for example the error reaction FR having at least one of the following elements: d1) initializing, for example reinitializing, the at least one first queue WS-1, WS-2, d2) resending a message, for example in the case of defective user data, d3) Restarting at least one process P-1, P-2, e) atomically executing 124 accesses FIFO-ZUGR to at least one component of the at least one queue WS-1, WS-2, for example the at least one FIFO memory FIFO-1, FIFO -2, f) lock-free execution 125 of FIFO-ZUGR accesses to at least one component of the at least one queue WS-1, WS-2, for example the at least one FIFO memory.

Bei weiteren beispielhaften Ausführungsformen, 6, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Ermitteln 130 wenigstens eines Vergleichswerts VERGL-WERT für wenigstens eine Komponente (z.B. Sequenznummer und/oder Nutzdaten und/oder wenigstens eine Zustandsvariable) der wenigstens einen Warteschlange WS-1, WS-2, beispielsweise des wenigstens einen FIFO-Speichers FIFO-1, FIFO-2, und, optional, Speichern 132 der wenigstens einen Komponente der wenigstens einen Warteschlange WS-1, WS-2, beispielsweise des wenigstens einen FIFO-Speichers FIFO-1, FIFO-2, zusammen mit dem Vergleichswert VERGL-WERT, wodurch z.B. das vorstehend bereits beispielhaft beschrieben Plausibilisieren 104, 121 (z.B. bei einem, z.B. darauffolgenden, Lesezugriff) möglich ist.In further exemplary embodiments, 6 , it is provided that the method has at least one of the following elements: a) determining 130 at least one comparison value COMPARISON VALUE for at least one component (e.g. sequence number and / or payload data and / or at least one state variable) of the at least one queue WS-1, WS-2, for example the at least one FIFO memory FIFO-1, FIFO-2, and, optionally, storing 132 the at least one component of the at least one queue WS-1, WS-2, for example the at least one FIFO memory FIFO- 1, FIFO-2, together with the comparison value COMPARISON-VALUE, whereby, for example, the plausibility check 104, 121 already described above as an example (for example during a, for example, subsequent, read access) is possible.

Bei weiteren beispielhaften Ausführungsformen, 6, ist vorgesehen, dass das Ermitteln 130 des wenigstens einen Vergleichswerts VERGL-WERT wenigstens eines der folgenden Elemente aufweist: a) Bilden 130a eines zu einem Wert der wenigstens einen Komponente der wenigstens einen Warteschlange WS-1, WS-2 inversen Werts, beispielsweise mittels Invertieren, b) Ausführen 130b einer logischen Verknüpfung, beispielsweise einer XOR-Verknüpfung, mit dem Wert der wenigstens einen Komponente der wenigstens einen Warteschlange WS-1, WS-2, c) Bilden 130c einer Prüfsumme, beispielsweise vom CRC-Typ, beispielsweise dann, wenn eine mit der wenigstens einen Komponente assoziierte Datenmenge bzw. Größe (z.B. Größe der Nutzdaten ND-EL-1, ND-EL-2, ...) einen vorgebbaren Schwellwert überschreitet.In further exemplary embodiments, 6 , it is provided that the determination 130 of the at least one comparison value COMPARISON VALUE has at least one of the following elements: a) forming 130a a value inverse to a value of the at least one component of the at least one queue WS-1, WS-2, for example by means of Inverting, b) executing 130b a logical operation, for example an XOR operation, with the value of the at least one component of the at least one queue WS-1, WS-2, c) forming 130c a checksum, for example of the CRC type, for example then , if a data quantity or size associated with the at least one component (e.g. size of the user data ND-EL-1, ND- EL-2, ...) exceeds a predeterminable threshold value.

Bei weiteren beispielhaften Ausführungsformen, 7, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Inkrementieren 140 der wenigstens einen Zustandsvariable ZV-1, ZV-2, b) Zuweisen 141 eines Werts der zweiten Zustandsvariable zu einer bzw. der Sequenznummer SN-EL-2, beispielsweise bei einem Schreiben in die wenigstens eine Warteschlange, c) Vergleichen 143 der Sequenznummer SN-EL-2 mit einem Wert der ersten Zustandsvariable ZV-1, beispielsweise bei einem Lesen aus der wenigstens einen Warteschlange, d) basierend auf dem Vergleichen 143, beispielsweise gegebenenfalls, Einleiten 144 einer Fehlerreaktion FR', z.B. wenn das Vergleichen 143 eine Abweichung zwischen der Sequenznummer SN-EL-2 und dem Wert der ersten Zustandsvariable ZV-1 ergibt.In further exemplary embodiments, 7 , it is provided that the method has at least one of the following elements: a) incrementing 140 the at least one state variable ZV-1, ZV-2, b) assigning 141 a value of the second state variable to one or the sequence number SN-EL-2 , for example when writing to the at least one queue, c) comparing 143 the sequence number SN-EL-2 with a value of the first state variable ZV-1, for example when reading from the at least one queue, d) based on the comparing 143, for example, if necessary, initiating 144 an error reaction FR', for example if the comparison 143 results in a deviation between the sequence number SN-EL-2 and the value of the first state variable ZV-1.

Weitere beispielhafte Ausführungsformen, 8, beziehen sich auf eine Vorrichtung 200 zur Ausführung des Verfahrens gemäß den Ausführungsformen. Beispielsweise kann bei weiteren beispielhaften Ausführungsformen die Vorrichtung 10 gemäß 2 eine zu der nachfolgend beispielhaft unter Bezugnahme auf 8 beschriebenen Konfiguration 200 vergleichbare Konfiguration aufweisen.Further exemplary embodiments, 8th , refer to a device 200 for carrying out the method according to the embodiments. For example, in further exemplary embodiments, the device 10 according to 2 one of which is given below by way of example with reference to 8th Have a comparable configuration to the configuration 200 described.

Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Vorrichtung 200 (8) aufweist: eine wenigstens einen Rechenkern 202a aufweisende Recheneinrichtung („Computer“) 202, eine der Recheneinrichtung 202 zugeordnete Speichereinrichtung 204 zur zumindest zeitweisen Speicherung wenigstens eines der folgenden Elemente: a) Daten DAT (z.B. die mit wenigstens einem Prozess P-1, P-2, P-3 assoziierten Daten, z.B. Daten wenigstens einer Warteschlange WS-1, WS-2,), b) Computerprogramm PRG, beispielsweise zur Ausführung des Verfahrens gemäß den Ausführungsformen. Bei weiteren beispielhaften Ausführungsformen weist die Speichereinrichtung 204 z.B. auch wenigstens einen der Speicherbereiche 14-1, 14-PR-1 gemäß 2 auf.In further exemplary embodiments it is provided that the device 200 ( 8th ) has: a computing device (“computer”) 202 having at least one computing core 202a, a memory device 204 assigned to the computing device 202 for at least temporarily storing at least one of the following elements: a) data DAT (e.g. with at least one process P-1, P -2, P-3 associated data, for example data of at least one queue WS-1, WS-2,), b) computer program PRG, for example for executing the method according to the embodiments. In further exemplary embodiments, the memory device 204 also has, for example, at least one of the memory areas 14-1, 14-PR-1 2 on.

Bei weiteren beispielhaften Ausführungsformen, 8, weist die Speichereinrichtung 204 einen flüchtigen Speicher (z.B. Arbeitsspeicher (RAM)) 204a auf, und/oder einen nichtflüchtigen (NVM-) Speicher (z.B. Flash-EEPROM) 204b, oder eine Kombination hieraus oder mit anderen, nicht explizit genannten Speichertypen. Beispielsweise ist der erste Speicherbereich 14-1 (2) in dem RAM 204a (8) realisierbar.In further exemplary embodiments, 8th , the memory device 204 has a volatile memory (e.g. random access memory (RAM)) 204a, and/or a non-volatile (NVM) memory (e.g. flash EEPROM) 204b, or a combination thereof or with other memory types not explicitly mentioned. For example, the first memory area is 14-1 ( 2 ) in the RAM 204a ( 8th ) feasible.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium SM, umfassend Befehle PRG, die bei der Ausführung durch einen Computer 202 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.Further exemplary embodiments relate to a computer-readable storage medium SM comprising instructions PRG that, when executed by a computer 202, cause the computer 202 to carry out the method according to the embodiments.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm PRG, umfassend Befehle, die bei der Ausführung des Programms PRG durch einen Computer 202 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.Further exemplary embodiments relate to a computer program PRG, comprising instructions that, when the program PRG is executed by a computer 202, cause the computer 202 to carry out the method according to the embodiments.

Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal DCS, das das Computerprogramm PRG gemäß den Ausführungsformen charakterisiert und/oder überträgt. Das Datenträgersignal DCS ist beispielsweise über eine optionale Datenschnittstelle 206 der Vorrichtung 200 empfangbar. Ebenfalls sind z.B. die Daten DAT über die optionale Datenschnittstelle 206 übertragbar (sendbar und/oder empfangbar).Further exemplary embodiments relate to a data carrier signal DCS that characterizes and/or transmits the computer program PRG according to the embodiments. The data carrier signal DCS can be received, for example, via an optional data interface 206 of the device 200. The data DAT, for example, can also be transmitted (sendable and/or received) via the optional data interface 206.

9 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen. Element P-a symbolisiert einen ersten mit der Recheneinrichtung 12, 202 assoziierten (also z.B. von der Recheneinrichtung 12, 202 ausführbaren) Prozess, Element P-b symbolisiert einen zweiten mit der Recheneinrichtung 12, 202 assoziierten (also z.B. von der Recheneinrichtung 12, 202 ausführbaren) Prozess , der z.B. unter Verwendung des Prinzips gemäß den Ausführungsformen Daten mit dem ersten Prozess P-a austauschen soll. 9 schematically shows a simplified block diagram according to further exemplary embodiments. Element Pa symbolizes a first process associated with the computing device 12, 202 (i.e. executable by the computing device 12, 202, for example), element Pb symbolizes a second process associated with the computing device 12, 202 (i.e. executable by the computing device 12, 202, for example), which, for example, should exchange data with the first process Pa using the principle according to the embodiments.

Jedem der Prozesse P-a, P-b ist z.B. ein jeweiliger privater Adressraum pAS-a, pAS-b zugeordnet, auf den jeweils nur der jeweilige Prozess P-a, P-b Zugriff hat.For example, each of the processes P-a, P-b is assigned a respective private address space pAS-a, pAS-b, to which only the respective process P-a, P-b has access.

Element AS-ab symbolisiert einen zwischen den beiden Prozessen P-a, P-b geteilten Adressraum, auf den also jeder der beiden Prozesse P-a, P-b, z.B. lesend und schreibend, zugreifen kann, und der für einen z.B. sicheren und effizienten Datenaustausch A1, A2 (s. auch 1, 2) zwischen den beiden Prozessen P-a, P-b nutzbar ist. Der geteilten Adressraum AS-ab ist beispielsweise mit dem ersten Speicherbereich 14-1 gemäß 2 assoziiert bzw. in dem ersten Speicherbereich 14-1 realisiert bzw. angeordnet. Element AS-ab symbolizes an address space shared between the two processes Pa, Pb, which each of the two processes Pa, Pb can access, for example reading and writing, and which is used for secure and efficient data exchange A1, A2 (see. also 1 , 2 ) can be used between the two processes Pa, Pb. The shared address space AS-ab is, for example, with the first memory area 14-1 according to 2 associated or implemented or arranged in the first memory area 14-1.

Beispielhaft ist eine erste Warteschlange WS-1 für ein Senden von Daten, beispielsweise Nachrichten, von dem ersten Prozess P-a zu dem zweiten Prozess P-b und eine zweite Warteschlange WS-2 für ein Senden von Daten, beispielsweise Nachrichten, von dem zweiten Prozess P-b zu dem ersten Prozess P-a vorgesehen, wobei beispielsweise die erste Warteschlange WS-1 bei weiteren beispielhaften Ausführungsformen auch als erster Kanal ch_0 und wobei beispielsweise die zweite Warteschlange WS-2 bei weiteren beispielhaften Ausführungsformen auch als zweiter Kanal ch_1 für eine Datenkommunikation zwischen den beiden Prozessen P-a, P-b aufgefasst werden können.By way of example, a first queue WS-1 is for sending data, for example messages, from the first process Pa to the second process Pb and a second queue WS-2 for sending data, for example messages, from the second process Pb to the first process Pa is provided, for example the first queue WS-1 in further exemplary embodiments also being the first channel ch_0 and for example the second In further exemplary embodiments, queue WS-2 can also be understood as a second channel ch_1 for data communication between the two processes Pa, Pb.

Bei weiteren beispielhaften Ausführungsformen bilden die beiden Warteschlangen WS-1, WS-2 bzw. Kanäle ch_0, ch_1 z.B. einen Socket SOCKab für eine sichere Datenkommunikation zwischen den beiden Prozessen P-a, P-b.In further exemplary embodiments, the two queues WS-1, WS-2 or channels ch_0, ch_1 form, for example, a socket SOCKab for secure data communication between the two processes P-a, P-b.

10 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen. 10 schematically shows a simplified block diagram according to further exemplary embodiments.

E1 symbolisiert beispielhaft ein erstes Element einer Warteschlange WS, z.B. vom FIFO-Typ, Element E2 symbolisiert beispielhaft ein zweites Element der Warteschlange WS, Element E3 symbolisiert beispielhaft ein drittes Element der Warteschlange WS, und die Punkte E3' symbolisieren weitere mögliche Elemente der Warteschlange WS, die aus Gründen der Übersichtlichkeit nicht gesondert abgebildet sind.E1 symbolizes, for example, a first element of a queue WS, for example of the FIFO type, element E2 symbolizes, for example, a second element of the queue WS, element E3 symbolizes, for example, a third element of the queue WS, and the points E3 'symbolize further possible elements of the queue WS , which are not shown separately for reasons of clarity.

Die Elemente E1, E2, E3, ... weisen jeweils einen ersten Bereich B1 für Daten data und ggf. einen mit den Daten data assoziierten Vergleichswert -data auf, und einen zweiten Bereich B2 für eine Sequenznummer seq und ggf. für einen mit der Sequenznummer seq assoziierten Vergleichswert -seq. Die Vergleichswerte -data, ~seq sind bei weiteren beispielhaften Ausführungsformen z.B. gemäß 6 bildbar, z.B. als invertierte Datenwerte bezüglich der Daten data, seq.The elements E1, E2, E3, ... each have a first area B1 for data data and possibly a comparison value -data associated with the data data, and a second area B2 for a sequence number seq and possibly for one with the Sequence number seq associated comparison value -seq. The comparison values -data, ~seq are, for example, according to further exemplary embodiments 6 can be formed, for example as inverted data values with respect to the data data, seq.

Es wird darauf hingewiesen, dass in 10 aufgrund der Übersichtlichkeit die jeweiligen Daten und Sequenznummern einzelner Elemente E1, E2, E3, ... jeweils gleich bezeichnet sind. Dabei versteht sich, dass bei beispielhaften Ausführungsformen die Dateninhalte des ersten Bereichs B1 unterschiedlicher Elemente E1, E2, E3, ... der beispielhaften Warteschlange, z.B. jeweils paarweise zueinander, z.B. identisch oder voneinander verschieden sein können, wobei beispielsweise die Sequenznummern unterschiedlicher Elemente E1, E2, E3, ... der beispielhaften Warteschlange jeweils verschieden voneinander sind.It is noted that in 10 Due to the clarity, the respective data and sequence numbers of individual elements E1, E2, E3, ... are each labeled the same. It is understood that in exemplary embodiments, the data contents of the first area B1 of different elements E1, E2, E3, ... of the exemplary queue, for example in pairs to one another, for example identical or different from one another, for example the sequence numbers of different elements E1, E2, E3, ... of the exemplary queue are each different from each other.

Nachfolgend ist ein erstes Pseudocode-Listing („Listing 1“) angegeben, das bei weiteren beispielhaften Ausführungsformen z.B. Aspekte eines Sendens von Daten, beispielsweise Nachrichten, gemäß dem Prinzip gemäß den Ausführungsformen beschreibt. Jeder Zeile des Listing 1 ist eine Zeilennummer vorangestellt.A first pseudocode listing (“Listing 1”) is given below, which in further exemplary embodiments describes, for example, aspects of sending data, for example messages, according to the principle according to the embodiments. Each line in Listing 1 is preceded by a line number.

*** Beginn von Listing 1 ******Start of Listing 1***

  1. 1 send(const &msg):1 send(const &msg):
  2. 2 curHead= atomic_load(head);2 curHead= atomic_load(head);
  3. 3 if (corrupt(curHead)) return corruption;3 if (corrupt(curHead)) return corruption;
  4. 4 slot = slots[idx(curHead)];4 slot = slots[idx(curHead)];
  5. 5 slot.data.construct(msg);5 slot.data.construct(msg);
  6. 6 slot.seq= atomic_store(curHead);6 slot.seq= atomic_store(curHead);
  7. 7 head= atomic_store(curHead+1);7 head= atomic_store(curHead+1);
  8. 8 return OK;8 return OK;

*** Ende von Listing 1 ******End of Listing 1***

Zeile 1 von Listing 1 beschreibt das Senden einer Nachricht msg, z.B. mittels eines Funktionsaufrufs „send()“, wobei als Parameter eine Referenz &msg auf die zu sendende Nachricht msg übergeben wird. Zeile 2 beschreibt ein, beispielsweise atomares, Laden einer aktuellen Head-Variable (vgl. z.B. die zweite Zustandsvariable ZV-2 gemäß 4) einer für das Senden zu verwenden Warteschlange und Zuweisen des Werts der Head-Variable zu einer Variable curHead. Zeile 3 beschreibt eine Prüfung des Werts der Head-Variable, beispielsweise im Sinne des Plausibilisierens 104 gemäß 1, und das optionale Einleiten einer Fehlerreaktion, vorliegend Zurückgabe eines Fehlercodes „corruption“. Zeile 4 beschreibt das Zuweisen eines Werts aus dem Array slots[] zu der Variable slot basierend auf dem Wert der Variable curHead, mittels einer Indexfunktion idx(), die z.B. einen, z.B. statisch codierten, Modulo-Operator MOD-OP (s. 3), verwendet. Zeile 5 beschreibt die Zuweisung des Inhalts der zu sendenden Nachricht in den Slot. Zeile 6 beschreibt die Zuweisung des aktualisierten Sequenzwertes der Nachricht. Zeile 7 beschreibt die Zuweisung der aktualisierten Head-Variable. Zeile 8 beschreibt eine Rückkehr aus der Funktion send().Line 1 of Listing 1 describes sending a message msg, e.g. using a function call “send()”, where a reference &msg to the message msg to be sent is passed as a parameter. Line 2 describes a, for example atomic, loading of a current head variable (see, for example, the second state variable ZV-2 according to 4 ) a queue to use for sending and assigning the value of the head variable to a variable curHead. Line 3 describes a check of the value of the head variable, for example in the sense of plausibility 104 according to 1 , and the optional initiation of an error response, in this case returning an error code “corruption”. Line 4 describes the assignment of a value from the array slots[] to the variable slot based on the value of the variable curHead, using an index function idx(), which, for example, has a statically coded modulo operator MOD-OP (see. 3 ), used. Line 5 describes the assignment of the content of the message to be sent into the slot. Line 6 describes the assignment of the updated sequence value of the message. Line 7 describes the assignment of the updated head variable. Line 8 describes a return from the send() function.

Nachfolgend ist ein zweites Pseudocode-Listing („Listing 2“) angegeben, das bei weiteren beispielhaften Ausführungsformen z.B. Aspekte eines Empfangens von Daten, beispielsweise Nachrichten, gemäß dem Prinzip gemäß den Ausführungsformen beschreibt. Jeder Zeile des Listing 2 ist eine Zeilennummer vorangestellt.A second pseudocode listing (“Listing 2”) is given below, which in further exemplary embodiments describes, for example, aspects of receiving data, for example messages, according to the principle according to the embodiments. Each line in Listing 2 is preceded by a line number.

*** Beginn von Listing 2 ******Start of Listing 2***

  1. 1 receive(&msg):1 receive(&msg):
  2. 2 curTail= atomic_load(tail);2 curTail= atomic_load(tail);
  3. 3 if (corrupt(curTail)) return corruption;3 if (corrupt(curTail)) return corruption;
  4. 4 slot = slots[idx(curTail)];4 slot = slots[idx(curTail)];
  5. 5 curSeq= atomic_load(slot.seq));5 curSeq= atomic_load(slot.seq));
  6. 6 if (corrupt(curSeq)) return corruption;6 if (corrupt(curSeq)) return corruption;
  7. 7 if (corrupt(slot.data.copy(msg)) return corruption;7 if (corrupt(slot.data.copy(msg)) return corruption;
  8. 8 tail= atomic_store(curTail+1);8 tail= atomic_store(curTail+1);
  9. 9 return OK;9 return OK;

*** Ende von Listing 2 ******End of Listing 2***

Zeile 1 von Listing 2 beschreibt das Empfangen einer Nachricht, z.B. mittels eines Funktionsaufrufs „receive()“, wobei als Parameter eine Referenz &msg auf eine die zu empfangende Nachricht charakterisierende Variable msg übergeben wird. Zeile 2 beschreibt ein, beispielsweise atomares, Laden einer aktuellen Tail-Variable (vgl. z.B. die erste Zustandsvariable ZV-1 gemäß 4) einer für das Empfangen zu verwenden Warteschlange und Zuweisen des Werts der Tail-Variable zu einer Variable curTail. Zeile 3 beschreibt eine Prüfung des Werts der Tail-Variable, beispielsweise im Sinne des Plausibilisierens 104 gemäß 1, und das optionale Einleiten einer Fehlerreaktion, vorliegend Zurückgabe eines Fehlercodes „corruption“. Zeile 4 beschreibt das Zuweisen eines Werts aus dem Array slots[] zu der Variable slot basierend auf dem Wert der Variable curTail, mittels der Indexfunktion idx(), die z.B. einen, z.B. statisch codierten, Modulo-Operator MOD-OP (s. 3), verwendet. Zeile 5 beschreibt ein beispielsweise atomares Laden der Sequenznummer des zuvor in Zeile 4 identifizierten Slots. Zeile 6 beschreibt eine Prüfung des Werts der Sequenznummer, beispielsweise im Sinne des Plausibilisierens 104 gemäß 1, und das optionale Einleiten einer Fehlerreaktion, vorliegend Zurückgabe eines Fehlercodes „corruption“. Zeile 7 beschreibt eine Prüfung des Inhalts der zu empfangenden Nachricht, beispielsweise im Sinne des Plausibilisierens 104 gemäß 1, und das optionale Einleiten einer Fehlerreaktion, vorliegend Zurückgabe eines Fehlercodes „corruption“. Zeile 8 beschreibt die Zuweisung der aktualisierten Tail-Variable. Zeile 9 beschreibt eine Rückkehr aus der Funktion receive().Line 1 of Listing 2 describes the receipt of a message, for example using a function call “receive()”, where a reference &msg to a variable msg that characterizes the message to be received is passed as a parameter. Line 2 describes, for example, atomic loading of a current tail variable (see, for example, the first state variable ZV-1 according to 4 ) a queue to use for receiving and assigning the value of the tail variable to a variable curTail. Line 3 describes a check of the value of the tail variable, for example in the sense of plausibility 104 according to 1 , and the optional initiation of an error response, in this case returning an error code “corruption”. Line 4 describes the assignment of a value from the array slots[] to the variable slot based on the value of the variable curTail, using the index function idx(), which contains, for example, a statically coded modulo operator MOD-OP (see. 3 ), used. Line 5 describes, for example, an atomic loading of the sequence number of the slot previously identified in line 4. Line 6 describes a check of the value of the sequence number, for example in the sense of plausibility 104 according to 1 , and the optional initiation of an error response, in this case returning an error code “corruption”. Line 7 describes a check of the content of the message to be received, for example in the sense of plausibility 104 1 , and the optional initiation of an error response, in this case returning an error code “corruption”. Line 8 describes the assignment of the updated tail variable. Line 9 describes a return from the receive() function.

Weitere beispielhafte Ausführungsformen, 11, beziehen sich auf ein Erzeugnis, beispielsweise ein Kraftfahrzeug 1000 oder ein Steuergerät 1002, beispielsweise für ein Kraftfahrzeug 1000, mit wenigstens einer Vorrichtung 10, 200 gemäß den Ausführungsformen.Further exemplary embodiments, 11 , refer to a product, for example a motor vehicle 1000 or a control device 1002, for example for a motor vehicle 1000, with at least one device 10, 200 according to the embodiments.

Weitere beispielhafte Ausführungsformen, 12, beziehen sich auf eine Verwendung 300 des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung 10, 200 gemäß den Ausführungsformen und/oder des Erzeugnisses 1000, 1002 gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums SM gemäß den Ausführungsformen und/oder des Computerprogramms PRG gemäß den Ausführungsformen und/oder des Datenträgersignals DCS gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Verarbeiten 301 von mit wenigstens einem Prozess P-1, P-2 für eine Recheneinrichtung 12, 202 assoziierten Daten, b) selektives Gewähren 302 von Zugriff auf die wenigstens eine Warteschlange WS-1, WS-2 für eine vorgebbare Menge von mit der Recheneinrichtung 12, 202 assoziierten Prozessen P-1, P-2, c) Sicherstellen 303 einer Störfreiheit, beispielsweise Freedom from Interference, einer Kommunikation zwischen einer vorgebbaren Menge von mit der Recheneinrichtung assoziierten Prozessen P-1, P-2, beispielsweise bezüglich Störungen durch andere, beispielsweise ebenfalls mit der Recheneinrichtung assoziierte, Prozesse P-3, d) Ausschließen 304, beispielsweise konzeptionelles Ausschließen, von Out-Of-Bound Zugriffen, beispielsweise auf Komponenten ZV-1, ZV-2, FIFO-EL-1, FIFO-EL-2, ... der wenigstens einen Warteschlange WS-1, WS-2, e) Erkennen 305 von, beispielsweise ungewollten, Speicherüberschreibungen, beispielsweise bezüglich eines mit der wenigstens einen Warteschlange WS-1, WS-2 assoziierten Speicherbereichs 14-1, f) Verwenden 306 eines geteilten Speicherbereichs 14-1, AS-ab zur Ermöglichung einer, beispielsweise störsicheren, beispielsweise effizienten, Inter-Prozess-Kommunikation, beispielsweise unabhängig von einem Betriebssystem, g) Ermöglichen 307 eines Einsatzes des Verfahrens und/oder einer das Verfahren ausführenden Vorrichtung 12, 200 in sicherheitsrelevanten Anwendungen, beispielsweise in Mixed-ASIL Systemen, h) Einschränken 308 von Zugriffsrechten für Prozesse P-3 auf die wenigstens eine Warteschlange WS-1, WS-2.Further exemplary embodiments, 12 , refer to a use 300 of the method according to the embodiments and / or the device 10, 200 according to the embodiments and / or the product 1000, 1002 according to the embodiments and / or the computer-readable storage medium SM according to the embodiments and / or the computer program PRG according to the embodiments and/or the data carrier signal DCS according to the embodiments for at least one of the following elements: a) processing 301 of data associated with at least one process P-1, P-2 for a computing device 12, 202, b) selective granting 302 of Access to the at least one queue WS-1, WS-2 for a predeterminable set of processes P-1, P-2 associated with the computing device 12, 202, c) ensuring 303 freedom from interference, for example freedom from interference, of communication between one predeterminable set of processes P-1, P-2 associated with the computing device, for example with regard to interference from other processes P-3, for example also associated with the computing device, d) exclusion 304, for example conceptual exclusion, of out-of-bound accesses , for example on components ZV-1, ZV-2, FIFO-EL-1, FIFO-EL-2, ... of the at least one queue WS-1, WS-2, e) detecting 305, for example unwanted, memory overwrites, for example with regard to a memory area 14-1 associated with the at least one queue WS-1, WS-2, f) using 306 a shared memory area 14-1, AS-ab to enable, for example interference-free, for example efficient, inter-process communication , for example independently of an operating system, g) enabling 307 use of the method and/or a device 12, 200 executing the method in security-relevant applications, for example in mixed-ASIL systems, h) restricting 308 access rights for processes P-3 to the at least one queue WS-1, WS-2.

Nachfolgend sind weitere beispielhafte Aspekte und Ausführungsformen beschrieben, die, bei weiteren beispielhaften Ausführungsformen, jeweils einzeln für sich oder in beliebiger Kombination miteinander mit wenigstens einem der vorstehend beschriebenen Aspekte und/oder mit wenigstens einer der vorstehend beschriebenen Ausführungsformen kombinierbar sind.Further exemplary aspects and embodiments are described below, which, in further exemplary embodiments, can each be combined individually or in any combination with one another with at least one of the aspects described above and/or with at least one of the embodiments described above.

Das Prinzip gemäß den Ausführungsformen kann beispielsweise für ein Verfahren zur Interprozesskommunikation A1, A2 verwendet werden, das z.B. sowohl performant als auch geeignet für den Einsatz in Mixed-ASIL Systemen ist. Vorteilhaft kann für das Prinzip gemäß den Ausführungsformen z.B. eine 64-bit Compare-And-Swap Operation einer bzw. der Recheneinrichtung 12, 202 verwendet werden.The principle according to the embodiments can be used, for example, for a method for inter-process communication A1, A2, which is, for example, both high-performance and suitable for use in mixed-ASIL systems. For example, a 64-bit compare-and-swap operation of a computing device 12, 202 can advantageously be used for the principle according to the embodiments.

Die Nutzung von Shared Memory, z.B. eines RAM 204a, bietet z.B. Geschwindigkeitsvorteile, und die Steuerung der Zugriffsrechte von Prozessen auf die jeweilige(n) Warteschlange(n) WS-1, WS-2 steigert eine Sicherheit bei der Kommunikation bzw. dem Datenaustausch zwischen Prozessen P-1, P-2.The use of shared memory, for example a RAM 204a, offers speed advantages, for example, and the control of the access rights of processes to the respective queue(s) WS-1, WS-2 increases ensures security in communication or data exchange between processes P-1, P-2.

Bei weiteren beispielhaften Ausführungsformen erfolgen Zugriffe auf mit der wenigstens einen Warteschlange WS-1, WS-2 assoziierte Variablen und/oder ihre (optionalen) Vergleichswerte z.B. atomar und/oder lock-frei: Z.B. atomar, um einen konsistenten Zustand zu gewährleisten, z.B. lock-frei um die Möglichkeit einer Korruption der lock-Variablen zu unterbinden und somit z.B. ein konsistentes Lesen und Schreiben der Variablen durch Hardware-Mechanismen zu gewährleisten. Bei weiteren beispielhaften Ausführungsformen ist hierfür eine Nutzung einer 64-bit Compare-And-Swap Operation nützlich, welche z.B. auf der Recheneinrichtung 12, 202 verfügbar ist, wie vorstehend bereits erwähnt.In further exemplary embodiments, variables associated with the at least one queue WS-1, WS-2 and/or their (optional) comparison values are accessed e.g. atomically and/or lock-free: e.g. atomically to ensure a consistent state, e.g. lock -free to prevent the possibility of corruption of the lock variables and thus ensure, for example, consistent reading and writing of the variables by hardware mechanisms. In further exemplary embodiments, the use of a 64-bit compare-and-swap operation is useful for this, which is available, for example, on the computing device 12, 202, as already mentioned above.

Bei weiteren beispielhaften Ausführungsformen ist, z.B. im Falle der Payload (Nutzdaten, vgl. z.B. Bezugszeichen data gemäß 10), ein atomarer Zugriff nicht vorgesehen; bei einer Schreiboperation werden die Daten z.B. stückweise mit dem Normalwert (also ihrem eigentlichen Wert) und, als Vergleichswert VERGL-WERT, z.B. einem jeweiligem Inversen, in den geteilten Speicher 14-1 geschrieben, bei einer Leseoperation z.B. umgekehrt stückweise aus dem geteilten Speicher 14-1 ausgelesen, z.B. verglichen und z.B. in einen geschützten Speicher pAS-a, pAS-b (9) des lesenden Prozesses kopiert.In further exemplary embodiments, for example in the case of the payload (payload data, see, for example, reference symbol data according to 10 ), atomic access is not provided; During a write operation, the data is written, for example, piece by piece with the normal value (i.e. its actual value) and, as a comparison value COMPARE-VALUE, for example a respective inverse, into the shared memory 14-1; during a read operation, for example, the data is written piece by piece from the shared memory 14 -1 read out, e.g. compared and e.g. into a protected memory pAS-a, pAS-b ( 9 ) of the reading process is copied.

Bei weiteren beispielhaften Ausführungsformen ist der Vergleichswert z.B. das Inverse des Originalwerts (z.B. erhaltbar durch bitweises Invertieren). Alternativ sind bei weiteren beispielhaften Ausführungsformen z.B. XOR-Verknüpfungen, z.B. mit einem benutzerdefinierten Wert oder, z.B. im Falle von größeren Daten wie der Payload, ein CRC-Wert denkbar.In further exemplary embodiments, the comparison value is, for example, the inverse of the original value (e.g. obtainable by inverting bit by bit). Alternatively, in further exemplary embodiments, for example XOR links, for example with a user-defined value or, for example in the case of larger data such as the payload, a CRC value are conceivable.

Bei weiteren beispielhaften Ausführungsformen kann, z.B. für einen seltenen Fall, dass eine Speicherkorruption einen vermeintlich richtigen Wert darstellt, ein Kreuzvergleich z.B. mithilfe der Sequenznummer seq der Payload Elemente data erfolgen: Head und Tail werden bei weiteren beispielhaften Ausführungsformen z.B. nicht mit dem Modulo abgespeichert, sondern z.B. lediglich inkrementiert. Der vollständige Wert der Head-Variable wird bei weiteren beispielhaften Ausführungsformen beim Schreiben in die Sequenznummer eingetragen, beim Auslesen kann bei weiteren beispielhaften Ausführungsformen geprüft werden, ob die Sequenznummer mit dem Wert der Tail-Variable übereinstimmt. Sollte die Head-Variable während des Betriebs vermeintlich korrekt überschrieben worden sein, würde bei weiteren beispielhaften Ausführungsformen die falsche Sequenznummer dazu führen, dass dieser Fehler während der Leseoperation erkannt wird.In further exemplary embodiments, for example in a rare case that a memory corruption represents a supposedly correct value, a cross-comparison can be carried out, for example using the sequence number seq of the payload elements data: In further exemplary embodiments, head and tail are, for example, not saved with the modulo, but rather e.g. just incremented. In further exemplary embodiments, the complete value of the head variable is entered into the sequence number when writing; when reading out, in further exemplary embodiments it can be checked whether the sequence number matches the value of the tail variable. Should the head variable appear to have been overwritten correctly during operation, in further exemplary embodiments the incorrect sequence number would result in this error being detected during the read operation.

Eine Fehlererkennung kann bei weiteren beispielhaften Ausführungsformen z.B. auf zwei Arten erfolgen: Eine erste Art besteht z.B. in der Plausibilisierung der Sequenznummer auf die zwei, z.B. legalen, Möglichkeiten. Sie beträgt im Falle eines bereits gelesenen Elements der Nummer der letzten Iteration, d.h. „Tail-N“ bei N FIFO Elementen, oder im Falle eines neuen lesbaren Elements dem Tail-Wert. Jeglicher andere Wert wäre bei weiteren beispielhaften Ausführungsformen ein Fehlerfall.In further exemplary embodiments, error detection can take place in two ways, for example: A first way consists, for example, in checking the plausibility of the sequence number in the two, for example legal, options. In the case of an element that has already been read, it is the number of the last iteration, i.e. “Tail-N” for N FIFO elements, or in the case of a new readable element, the tail value. Any other value would be an error case in further exemplary embodiments.

Die zweite Art kombiniert bei weiteren beispielhaften Ausführungsformen einen einfachen Abgleich der Sequenznummer bei Leseoperationen mit dem Tail-Wert und eine zyklische Funktionsprüfung zwischen beiden FIFOs FIFO-1, FIFO-2 zur Kommunikation der Kommunikationspartner. Die zyklische Funktionsprüfung besteht bei weiteren beispielhaften Ausführungsformen z.B. aus einem Versand von „Ping-Pong“ Nachrichten in regelmäßigen Abständen. Im Falle einer ungültigen Sequenznummer würden bei weiteren beispielhaften Ausführungsformen Leseoperationen in einem der beiden FIFOs nicht mehr stattfinden, sodass die zyklische Funktionsprüfung durch einen Stillstand der Kommunikation in einer Richtung fehlschlägt.In further exemplary embodiments, the second type combines a simple comparison of the sequence number during read operations with the tail value and a cyclic function test between the two FIFOs FIFO-1, FIFO-2 for communication between the communication partners. In further exemplary embodiments, the cyclic functional test consists, for example, of sending “ping-pong” messages at regular intervals. In the event of an invalid sequence number, in further exemplary embodiments, read operations would no longer take place in one of the two FIFOs, so that the cyclic function test fails due to communication stopping in one direction.

In beiden beschriebenen Möglichkeiten zur Fehlererkennung gemäß weiteren beispielhaften Ausführungsformen kann es zu einer gewissen Verzögerung zwischen dem Auftreten des Fehlers und dessen Detektion kommen: Bei der ersten Art wird der Fehler z.B. erst detektiert, wenn der Leser das erste Element mit der ungültigen Sequenznummer erreicht. Dies kann je nach Position des verschobenen Head-Indexes bis zu N-1 weitere Schreiboperationen bedeuten.In both described options for error detection according to further exemplary embodiments, there may be a certain delay between the occurrence of the error and its detection: In the first type, for example, the error is only detected when the reader reaches the first element with the invalid sequence number. Depending on the position of the moved head index, this can mean up to N-1 additional write operations.

Bei der zweiten Art gemäß weiteren beispielhaften Ausführungsformen erfolgt die Detektion mit der Latenz der gewählten Frequenz einer z.B. zyklischen Funktionsprüfung. Sollte dies, z.B. in manchen Zielsystemen, nicht ausreichend schnell sein, kann man bei weiteren beispielhaften Ausführungsformen die Fehlerkennung z.B. mit einem übergeordneten Mechanismus weiter verbessern: Ein Zähler, welcher bei Schreiboperationen inkrementiert und bei Leseoperationen dekrementiert wird, zeigt an, wie viele neue Elemente im FIFO liegen. In Multi-Producer Szenarien gemäß weiteren beispielhaften Ausführungsformen können Schreiboperationen dann z.B. mit einem Lock z.B. in einem privaten Adressbereich des schreibenden Prozesses, serialisiert werden, z.B. um False Positives in der Plausibilisierungslogik zu vermeiden.In the second type according to further exemplary embodiments, detection takes place with the latency of the selected frequency of, for example, a cyclic functional test. If this is not sufficiently fast, for example in some target systems, in further exemplary embodiments the error detection can be further improved, for example with a higher-level mechanism: A counter, which is incremented during write operations and decremented during read operations, shows how many new elements are in the FIFO. In multi-producer scenarios according to further exemplary embodiments, write operations can then be serialized, for example with a lock, for example in a private address area of the writing process, for example in order to avoid false positives in the plausibility check logic.

Claims (16)

Verfahren, beispielsweise computerimplementiertes Verfahren, zum Verarbeiten von mit einer Recheneinrichtung (12) assoziierten Daten, aufweisend: Bereitstellen (100) wenigstens einer ersten Warteschlange (WS-1, WS-2) in einem ersten Speicherbereich (14-1), auf den, beispielsweise ausschließlich, ein erster mit der Recheneinrichtung (12) assoziierter Prozess (P-1) und ein zweiter mit der Recheneinrichtung (12) assoziierter Prozess (P-2) zugreifen können.Method, for example computer-implemented method, for processing data associated with a computing device (12), comprising: providing (100) at least a first queue (WS-1, WS-2) in a first memory area (14-1), on which, For example, exclusively, a first process (P-1) associated with the computing device (12) and a second process (P-2) associated with the computing device (12) can access. Verfahren nach Anspruch 1, aufweisend: Verwenden (102) der wenigstens einen ersten Warteschlange (WS-1, WS-2) für einen Datenaustausch (A1, A2) zwischen dem ersten Prozess (P-1) und dem zweiten Prozess (P-2), wobei beispielsweise das Verwenden (102) wenigstens eines der folgenden Elemente aufweist: a) Senden (102a) von Daten, beispielsweise in Form wenigstens einer ersten Nachricht, von dem ersten Prozess (P-1) an den zweiten Prozess (P-2), b) Senden (102b) von Daten, beispielsweise in Form wenigstens einer zweiten Nachricht, von dem zweiten Prozess (P-2) an den ersten Prozess (P-1).Procedure according to Claim 1 , comprising: using (102) the at least one first queue (WS-1, WS-2) for a data exchange (A1, A2) between the first process (P-1) and the second process (P-2), for example using (102) at least one of the following elements: a) sending (102a) of data, for example in the form of at least a first message, from the first process (P-1) to the second process (P-2), b) Sending (102b) of data, for example in the form of at least a second message, from the second process (P-2) to the first process (P-1). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Unterbinden (105), dass, beispielsweise außer dem ersten Prozess (P-1) und dem zweiten Prozess (P-2), weitere mit der Recheneinrichtung (12) assoziierte Prozesse (P-3) auf den ersten Speicherbereich (14-1), beispielsweise auf die wenigstens eine erste Warteschlange (WS-1), zugreifen.Method according to at least one of the preceding claims, comprising: Preventing (105) that, for example in addition to the first process (P-1) and the second process (P-2), further processes (P-3) associated with the computing device (12). ) access the first memory area (14-1), for example the at least one first queue (WS-1). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Zuweisen (106) von Zugriffsrechten (ZR-1) auf den ersten Speicherbereich (14-1) und/oder auf die wenigstens eine erste Warteschlange (WS-1), beispielsweise ausschließlich, für den ersten Prozess (P-1) und den zweiten Prozess (P-2).Method according to at least one of the preceding claims, comprising: assigning (106) access rights (ZR-1) to the first memory area (14-1) and/or to the at least one first queue (WS-1), for example exclusively for first process (P-1) and the second process (P-2). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Plausibilisieren (104) wenigstens einer Komponente der wenigstens einen ersten Warteschlange (WS-1, WS-2).Method according to at least one of the preceding claims, comprising: plausibility checking (104) of at least one component of the at least one first queue (WS-1, WS-2). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Verwenden (110) wenigstens eines FIFO-Speichers (FIFO; FIFO-1, FIFO-2) für die wenigstens eine Warteschlange (WS-1, WS-2), wobei beispielsweise der wenigstens eine FIFO-Speicher (FIFO; FIFO-1, FIFO-2) eine erste Zustandsvariable (ZV-1), beispielsweise Tail-Variable, aufweist, die eine Leseposition charakterisiert, wobei beispielsweise der wenigstens eine FIFO-Speicher (FIFO; FIFO-1, FIFO-2) eine zweite Zustandsvariable (ZV-2), beispielsweise Head-Variable, aufweist, die eine Schreibposition charakterisiert, wobei beispielsweise jeweils ein Element (FIFO-EL-1, FIFO-EL-2, ...) des wenigstens einen FIFO-Speicher (FIFO; FIFO-1, FIFO-2) eine Sequenznummer (SN-EL-1, SEN-EL-2, ...) und Nutzdaten (ND-EL-1, ND-EL-2, ...) aufweist, b) Vorgeben (111) einer Größe (FIFO-GR) eines bzw. des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), beispielsweise Festlegen (111a) einer Anzahl von Elementen (FIFO-EL-1, FIFO-EL-2, ...), c) statisches Allokieren (112) einer bzw. der Anzahl (FIFO-EL-ANZ) von Elementen (FIFO-EL-1, FIFO-EL-2, ...), d) Verwenden (113) von Indexvariablen (ZV-1-IDX, ZV-2-IDX) für die wenigstens eine Zustandsvariable (ZV-1, ZV-2), e) Nichtverwenden (114) von Zeigervariablen (POINT) für die wenigstens eine Zustandsvariable (ZV-1, ZV-2), f) Verwenden (115) eines, beispielsweise statisch codierten, Modulo-Operators (MOD-OP) für einen Zugriff auf Elemente (FIFO-EL-1, FIFO-EL-2, ...) des wenigstens eines FIFO-Speichers (FIFO; FIFO-1, FIFO-2), wobei beispielsweise der Modulo-Operator mit der Anzahl (FIFO-EL-ANZ) von Elementen (FIFO-EL-1, FIFO-EL-2, ...) des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2) assoziiert ist, insbesondere Nichtverwenden (115a) einer Variable für den Zugriff auf Elemente (FIFO-EL-1, FIFO-EL-2, ...) des wenigstens eines FIFO-Speichers (FIFO; FIFO-1, FIFO-2), g) Speichern (116) wenigstens einer Komponente des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), beispielsweise einer Größe (FIFO-GR) des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), mittels einer Variablen (V-FIFO-GR), die mit einem privaten Speicherbereich (14-PR-1) wenigstens eines Prozesses (P-1, P-2), beispielsweise eines High-ASIL-Prozesses (P-1), assoziiert ist, h) Modifizieren (118) wenigstens einer Komponente des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), beispielsweise einer Größe (FIFO-GR) des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), beispielsweise während einer Laufzeit des wenigstens einen Prozesses (P-1, P-2), beispielsweise Reduzieren (117a) der Größe (FIFO-GR) des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2) während der Laufzeit des wenigstens einen Prozesses (P-1, P-2).Method according to at least one of the preceding claims, comprising at least one of the following elements: a) using (110) at least one FIFO memory (FIFO; FIFO-1, FIFO-2) for the at least one queue (WS-1, WS-2 ), for example, the at least one FIFO memory (FIFO; FIFO-1, FIFO-2) having a first state variable (ZV-1), for example tail variable, which characterizes a reading position, for example the at least one FIFO memory (FIFO; FIFO-1, FIFO-2) has a second state variable (ZV-2), for example head variable, which characterizes a write position, for example one element (FIFO-EL-1, FIFO-EL-2, ...) of the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), a sequence number (SN-EL-1, SEN-EL-2, ...) and user data (ND-EL-1, ND -EL-2, ...), b) specifying (111) a size (FIFO-GR) of one or the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), for example specifying (111a) a number of elements (FIFO-EL-1, FIFO-EL-2, ...), c) static allocation (112) of one or the number (FIFO-EL-ANZ) of elements (FIFO-EL-1, FIFO-EL-2, ...), d) Using (113) index variables (ZV-1-IDX, ZV-2-IDX) for the at least one state variable (ZV-1, ZV-2), e) Not using (114) of pointer variables (POINT) for the at least one state variable (ZV-1, ZV-2), f) using (115) a, for example statically coded, modulo operator (MOD-OP) for access to elements (FIFO -EL-1, FIFO-EL-2, ...) of the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), for example, the modulo operator with the number (FIFO-EL-ANZ) of elements (FIFO-EL-1, FIFO-EL-2, ...) of the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), in particular not using (115a) a variable for accessing elements (FIFO-EL-1, FIFO-EL-2, ...) of the at least one FIFO memory ( FIFO; FIFO-1, FIFO-2), g) storing (116) at least one component of the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), for example a size (FIFO-GR) of the at least one FIFO -Memory (FIFO; FIFO-1, FIFO-2), by means of a variable (V-FIFO-GR) that has a private memory area (14-PR-1) of at least one process (P-1, P-2), for example a high ASIL process (P-1), h) modifying (118) at least one component of the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), for example a size (FIFO-GR ) of the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), for example during a runtime of the at least one process (P-1, P-2), for example reducing (117a) the size (FIFO-GR) of the at least one FIFO memory (FIFO; FIFO-1, FIFO-2) during the runtime of the at least one process (P-1, P-2). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Speichern (120) von Komponenten der wenigstens einen Warteschlange (WS-1, WS-2), beispielsweise des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), zusammen mit einem Vergleichswert (VERGL-WERT), b) Plausibilisieren (121) wenigstens einer Komponente der wenigstens einen Warteschlange (WS-1, WS-2), beispielsweise des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), basierend auf einem bzw. dem Vergleichswert (VERGL-WERT), c) Ausführen (122) einer bzw. der Plausibilisierung (121) bei wenigstens machen, beispielsweise allen, Lesezugriffen auf die wenigstens eine Komponente der wenigstens einen Warteschlange (WS-1, WS-2), d) Einleiten (123) einer Fehlerreaktion (FR), beispielsweise Propagieren eines erkannten Fehlers, beispielsweise basierend auf einer bzw. der Plausibilisierung (121), wobei beispielsweise die Fehlerreaktion (FR) wenigstens eines der folgenden Elemente aufweist: d1) Initialisieren, beispielsweise Reinitialisieren, der wenigstens einen ersten Warteschlange (WS-1, WS-2), d2) erneutes Versenden einer Nachricht, z.B. im Falle defekter Nutzdaten, d3) Neustart wenigstens eines Prozesses (P-1, P-2), e) atomares Ausführen (124) von Zugriffen auf wenigstens eine Komponente der wenigstens einen Warteschlange (WS-1, WS-2), beispielsweise des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), f) lock-freies Ausführen (125) von Zugriffen auf wenigstens eine Komponente der wenigstens einen Warteschlange (WS-1, WS-2), beispielsweise des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2).Method according to at least one of the preceding claims, comprising at least one of the following elements: a) storing (120) components of the at least one queue (WS-1, WS-2), for example the at least one FIFO memory (FIFO; FIFO-1 , FIFO-2), together with a comparison value (COMPARISON VALUE), b) plausibility check (121) of at least one component of the at least one queue (WS-1, WS-2), for example of the at least one FIFO memory (FIFO; FIFO -1, FIFO-2), based on a or the comparison value (VERGL-WERT), c) executing (122) one or the plausibility check (121) for at least some, for example all, read accesses to the at least one component of the at least one queue (WS-1, WS-2) , d) initiating (123) an error reaction (FR), for example propagating a detected error, for example based on a or the plausibility check (121), for example the error reaction (FR) having at least one of the following elements: d1) initializing, for example Reinitializing the at least one first queue (WS-1, WS-2), d2) resending a message, for example in the case of defective payload data, d3) restarting at least one process (P-1, P-2), e) atomic execution (124) accesses to at least one component of the at least one queue (WS-1, WS-2), for example the at least one FIFO memory (FIFO; FIFO-1, FIFO-2), f) lock-free execution (125 ) of accesses to at least one component of the at least one queue (WS-1, WS-2), for example the at least one FIFO memory (FIFO; FIFO-1, FIFO-2). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Ermitteln (130) wenigstens eines Vergleichswerts (VERGL-WERT) für wenigstens eine Komponente der wenigstens einen Warteschlange (WS-1, WS-2), beispielsweise des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), und, optional, Speichern (132) der wenigstens einen Komponente der wenigstens einen Warteschlange (WS-1, WS-2), beispielsweise des wenigstens einen FIFO-Speichers (FIFO; FIFO-1, FIFO-2), zusammen mit dem Vergleichswert (VERGL-WERT).Method according to at least one of the preceding claims, comprising at least one of the following elements: a) determining (130) at least one comparison value (COMPARISON VALUE) for at least one component of the at least one queue (WS-1, WS-2), for example the at least a FIFO memory (FIFO; FIFO-1, FIFO-2), and, optionally, storing (132) the at least one component of the at least one queue (WS-1, WS-2), for example the at least one FIFO memory ( FIFO; FIFO-1, FIFO-2), together with the comparison value (COMPASS VALUE). Verfahren nach Anspruch 8, wobei das Ermitteln (130) des wenigstens einen Vergleichswerts (VERGL-WERT) wenigstens eines der folgenden Elemente aufweist: a) Bilden (130a) eines zu einem Wert der wenigstens einen Komponente der wenigstens einen Warteschlange (WS-1, WS-2) inversen Werts, beispielsweise mittels Invertieren, b) Ausführen (130b) einer logischen Verknüpfung, beispielsweise einer XOR-Verknüpfung, mit dem Wert der wenigstens einen Komponente der wenigstens einen Warteschlange (WS-1, WS-2), c) Bilden (130c) einer Prüfsumme, beispielsweise vom CRC-Typ, beispielsweise dann, wenn eine mit der wenigstens einen Komponente assoziierte Datenmenge bzw. Größe einen vorgebbaren Schwellwert überschreitet.Procedure according to Claim 8 , wherein the determination (130) of the at least one comparison value (COMPARISON VALUE) has at least one of the following elements: a) forming (130a) a value of the at least one component of the at least one queue (WS-1, WS-2) inverse value, for example by inverting, b) executing (130b) a logical operation, for example an XOR operation, with the value of the at least one component of the at least one queue (WS-1, WS-2), c) forming (130c) a checksum, for example of the CRC type, for example when a data quantity or size associated with the at least one component exceeds a predeterminable threshold value. Verfahren nach wenigstens einem der Ansprüche 6 bis 9, aufweisend wenigstens eines der folgenden Elemente: a) Inkrementieren (140) der wenigstens einen Zustandsvariable (ZV-1, ZV-2), b) Zuweisen (141) eines Werts der zweiten Zustandsvariable (ZV-2) zu einer bzw. der Sequenznummer (SN-EL-1, SEN-EL-2, ...), beispielsweise bei einem Schreiben in die wenigstens eine Warteschlange (WS-1, WS-2), c) Vergleichen (143) der Sequenznummer (SN-EL-1, SEN-EL-2, ...) mit einem Wert der ersten Zustandsvariable (ZV-1), beispielsweise bei einem Lesen aus der wenigstens einen Warteschlange (WS-1, WS-2), d) basierend auf dem Vergleichen (143), beispielsweise gegebenenfalls, Einleiten (144) einer Fehlerreaktion (FR').Method according to at least one of the Claims 6 until 9 , comprising at least one of the following elements: a) incrementing (140) the at least one state variable (ZV-1, ZV-2), b) assigning (141) a value of the second state variable (ZV-2) to one or the sequence number (SN-EL-1, SEN-EL-2, ...), for example when writing to the at least one queue (WS-1, WS-2), c) comparing (143) the sequence number (SN-EL- 1, SEN-EL-2, ...) with a value of the first state variable (ZV-1), for example when reading from the at least one queue (WS-1, WS-2), d) based on comparing ( 143), for example, if necessary, initiating (144) an error reaction (FR'). Vorrichtung (10; 200) zur Ausführung des Verfahrens nach wenigstens einem der vorstehenden Ansprüche.Device (10; 200) for carrying out the method according to at least one of the preceding claims. Erzeugnis, beispielsweise Kraftfahrzeug (1000), mit wenigstens einer Vorrichtung (10; 200) nach Anspruch 11.Product, for example motor vehicle (1000), with at least one device (10; 200). Claim 11 . Computerlesbares Speichermedium (SM), umfassend Befehle (PRG), die bei der Ausführung durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 10 auszuführen.Computer-readable storage medium (SM), comprising instructions (PRG) which, when executed by a computer (202), cause it to carry out the method according to at least one of Claims 1 until 10 to carry out. Computerprogramm (PRG), umfassend Befehle, die bei der Ausführung des Programms (PRG) durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 10 auszuführen.Computer program (PRG), comprising commands which, when the program (PRG) is executed by a computer (202), cause the computer (202) to carry out the method according to at least one of Claims 1 until 10 to carry out. Datenträgersignal (DCS), das das Computerprogramm (PRG) nach Anspruch 14 überträgt und/oder charakterisiert.Disk signal (DCS) that the computer program (PRG) follows Claim 14 transmitted and/or characterized. Verwendung (300) des Verfahrens nach wenigstens einem der Ansprüche 1 bis 10 und/oder der Vorrichtung (10; 200) nach Anspruch 11 und/oder des Erzeugnisses (1000) nach Anspruch 12 und/oder des computerlesbaren Speichermediums (SM) nach Anspruch 13 und/oder des Computerprogramms (PRG) nach Anspruch 14 und/oder des Datenträgersignals (DCS) nach Anspruch 15 für wenigstens eines der folgenden Elemente: a) Verarbeiten (301) von mit wenigstens einem Prozess (P1, P2) für eine Recheneinrichtung (12) assoziierten Daten, b) selektives Gewähren (302) von Zugriff auf die wenigstens eine Warteschlange (WS-1, WS-2) für eine vorgebbare Menge von mit der Recheneinrichtung (12) assoziierten Prozessen (P1, P2), c) Sicherstellen (303) einer Störfreiheit, beispielsweise Freedom from Interference, einer Kommunikation zwischen einer vorgebbaren Menge von mit der Recheneinrichtung (12) assoziierten Prozessen (P1, P2), beispielsweise bezüglich Störungen durch andere, beispielsweise ebenfalls mit der Recheneinrichtung (12) assoziierte, Prozesse (P3), d) Ausschließen (304), beispielsweise konzeptionelles Ausschließen, von Out-Of-Bound Zugriffen, beispielsweise auf Komponenten der wenigstens einen Warteschlange (WS-1, WS-2), e) Erkennen (305) von, beispielsweise ungewollten, Speicherüberschreibungen, beispielsweise bezüglich eines mit der wenigstens einen Warteschlange (WS-1, WS-2) assoziierten Speicherbereichs (14-1), f) Verwenden (306) eines geteilten Speicherbereichs (14-1) zur Ermöglichung einer, beispielsweise störsicheren, beispielsweise effizienten, Inter-Prozess-Kommunikation, beispielsweise unabhängig von einem Betriebssystem, g) Ermöglichen (307) eines Einsatzes des Verfahrens und/oder einer das Verfahren ausführenden Vorrichtung (10; 200) in sicherheitsrelevanten Anwendungen, beispielsweise in Mixed-ASIL Systemen, h) Einschränken (308) von Zugriffsrechten für Prozesse (P-1, P-2, P-3) auf die wenigstens eine Warteschlange (WS-1).Use (300) of the method according to at least one of Claims 1 until 10 and/or the device (10; 200). Claim 11 and/or the product (1000). Claim 12 and/or the computer-readable storage medium (SM). Claim 13 and/or the computer program (PRG). Claim 14 and/or the data carrier signal (DCS). Claim 15 for at least one of the following elements: a) processing (301) of data associated with at least one process (P1, P2) for a computing device (12), b) selectively granting (302) access to the at least one queue (WS-1 , WS-2) for a predeterminable set of processes (P1, P2) associated with the computing device (12), c) ensuring (303) freedom from interference, for example freedom from interference, communication between a predeterminable set of processes (P1, P2) associated with the computing device (12 ) associated processes (P1, P2), for example with regard to interference from other processes (P3), for example also associated with the computing device (12), d) exclusion (304), for example conceptual exclusion, of out-of-process Bound accesses, for example to components of the at least one queue (WS-1, WS-2), e) detecting (305) of, for example unwanted, memory overwrites, for example with regard to one with the at least one queue (WS-1, WS-2) associated memory area (14-1), f) using (306) a shared memory area (14-1) to enable inter-process communication, for example interference-free, for example efficient, for example independent of an operating system, g) enabling (307) a use of the method and/or a device (10; 200) executing the method in security-relevant applications, for example in mixed-ASIL systems, h) restricting (308) access rights for processes (P-1, P-2, P-3 ) to the at least one queue (WS-1).
DE102022203328.0A 2022-04-04 2022-04-04 Method and device for processing data associated with a computing device Pending DE102022203328A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022203328.0A DE102022203328A1 (en) 2022-04-04 2022-04-04 Method and device for processing data associated with a computing device
PCT/EP2023/058280 WO2023194198A1 (en) 2022-04-04 2023-03-30 Method and device for processing data associated with a computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022203328.0A DE102022203328A1 (en) 2022-04-04 2022-04-04 Method and device for processing data associated with a computing device

Publications (1)

Publication Number Publication Date
DE102022203328A1 true DE102022203328A1 (en) 2023-10-05

Family

ID=86006610

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022203328.0A Pending DE102022203328A1 (en) 2022-04-04 2022-04-04 Method and device for processing data associated with a computing device

Country Status (2)

Country Link
DE (1) DE102022203328A1 (en)
WO (1) WO2023194198A1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012016539A1 (en) * 2012-08-17 2014-05-15 Elektrobit Automotive Gmbh Configuration technique for a controller with inter-communicating applications
WO2018094509A1 (en) * 2016-11-25 2018-05-31 Genetec Inc. System for inter-process communication

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Chisnall, D.: The Definitive Guide to The Xen Hypervisor. Chap. "6.3 Understanding Shared Memory Ring Buffers" 21.03.2008<https://www.informit.com/articles/article.aspx?p=1160234&seqNum=3>(recherchiert am 16.03.2023)

Also Published As

Publication number Publication date
WO2023194198A1 (en) 2023-10-12

Similar Documents

Publication Publication Date Title
DE102014201682A1 (en) Method for coexistence of software with different security levels in a multicore processor system
DE102015210651B4 (en) Circuit and method for testing an error correction capability
DE102010037457A1 (en) A method of data processing for providing a value for determining whether an error has occurred during execution of a program, methods of data processing for determining whether an error has occurred during execution of a program, method for generating program code, data processing arrangements for providing a program Value for determining whether an error has occurred during execution of a program, data processing arrangements for determining whether an error has occurred during execution of a program, and data processing arrangements for generating program code
DE19839680B4 (en) Method and device for modifying the memory contents of control units
EP3811261B1 (en) Cryptography module and method for operating same
DE102022203328A1 (en) Method and device for processing data associated with a computing device
EP1611516A2 (en) Program-controlled unit
WO2004090732A2 (en) Program-controlled unit
DE102017124805B4 (en) MEMORY ARRANGEMENT AND METHOD FOR INTERMEDIATELY STORING MEMORY CONTENT
DE102004051966A1 (en) Method, operating system and computing device for executing a computer program
EP3797352B1 (en) Method for exchanging a first executable program code and a second executable program code, and control unit
DE102009002786A1 (en) Method for testing a memory and control device with means for a memory test
DE102018217969A1 (en) Computing device and operating method therefor
WO2023222375A1 (en) Transfer of data between control processes
DE102021202021A1 (en) Method and device for processing data
DE102018219700B4 (en) Control device
DE102007051061B4 (en) Non-volatile semiconductor memory system and corresponding method for performing a programming operation
DE102016222691A1 (en) Microcontroller system and method for controlling memory accesses in a microcontroller system
DE102022206298A1 (en) Method and device for managing a memory for a vehicle and storage device
DE112015002881T5 (en) Storage device, flash memory controller and program
DE102022209628A1 (en) Method for checking data in a computing unit
DE10128996B4 (en) Method and device for monitoring memory cells of a volatile data memory
DE102019208407A1 (en) Method and device for processing data stored in a storage device
DE102017220708A1 (en) Method and device for operating a memory device
DE10113319A1 (en) Operating method for processor-controlled system e.g. for vehicle, detecting error in stored data when deviation is detected between compared data words

Legal Events

Date Code Title Description
R163 Identified publications notified