[go: up one dir, main page]

WO2021064241A1 - Data structure, storage means and device - Google Patents

Data structure, storage means and device Download PDF

Info

Publication number
WO2021064241A1
WO2021064241A1 PCT/EP2020/077852 EP2020077852W WO2021064241A1 WO 2021064241 A1 WO2021064241 A1 WO 2021064241A1 EP 2020077852 W EP2020077852 W EP 2020077852W WO 2021064241 A1 WO2021064241 A1 WO 2021064241A1
Authority
WO
WIPO (PCT)
Prior art keywords
segment
storage means
data structure
application
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/EP2020/077852
Other languages
German (de)
French (fr)
Inventor
Mathias Kraus
Dietrich KROENKE
Matthias KILLAT
Michael Poehnl
Christian ELTZSCHIG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of WO2021064241A1 publication Critical patent/WO2021064241A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1012Design facilitation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Definitions

  • the present invention provides a data structure, a storage means and an apparatus.
  • systems for at least partially automated driving require multi-ECU, multi-processor and multi-process topologies that are geared towards middleware-centric implementation.
  • the virtual address at which a certain part of a physical memory is displayed is typically determined by the operating system. This can lead to the same part of a physical memory being given different virtual addresses in different processes of a multi-process system
  • a middleware for the interprocess communication uses shared storage means, so are in the Usually pointer objects (references, pointers, eng. Pointers) to data structures are exchanged between the processes. This can prevent the data from being copied. This saves system resources.
  • the complexity of the data structure is currently limited due to restrictions with regard to the use of pointer objects within such a data structure.
  • One reason for this is that a pointer object that is written into the data structure by a process is only valid in the address space of this process due to the different virtual addresses.
  • the present invention creates a data structure for a storage means in an application system for storing data.
  • the date is stored in a segment of the storage means.
  • the data structure is characterized in that the segment is assigned an identifier that is unique in the application system, in other words an ID, and that a pointer object, in other words a reference (pointer), points to the date as a function of the identifier of the Segment and an offset, in other words an offset, of the date in relation to the start of the segment.
  • an application system can be a system consisting of a set of application programs, i. H. automated processes, some of which are based on common hardware. Part of the common hardware can be a shared storage means.
  • the application system can be set up to operate a vehicle at least partially in an automated manner, preferably in a highly automated manner.
  • a datum can be understood to mean a set of values that represent information in the context of the application system.
  • a value can be part of an input value, such as, for example, a sensor value, part of an output value, such as, for example, a setting command for an actuator, or an intermediate result when the input value is processed into a Represent output value.
  • the date can represent a pointer object or a reference, in other words a pointer, to another date.
  • the data structure according to the present invention enables complex system topologies based on shared storage means, in which both data and pointers are stored in different segments of a shared storage means and accordingly pointers from one segment to another.
  • a pointer of the data structure includes both the identifier of the target segment and the offset of the date in the target segment.
  • the data structure of the present invention now makes it possible to refer to a datum at a physical address of a shared storage means from different processes, although the pointer object and the datum are not necessarily stored in the same segment of the physical memory.
  • the storage means can be a shared storage means.
  • a shared memory means can be understood as a part of a physical memory that is used by several processes of an application system with a multi-process topology.
  • the data structure of the present invention enables the construction of complex linked structures such as lists or trees and their efficient transfer between applications (interprocess communication) with different virtual address spaces.
  • a virtual address is assigned to the segment for use by an application of the application system.
  • the application has an assignment of the identifier to the virtual address.
  • Such an assignment can be present in the form of a look-up table.
  • the look-up table is typically located in the address space of the application or must at least be available in this.
  • a size is assigned to the segment.
  • the application has an assignment of the identifier to the size.
  • Such an assignment can be present in the form of a look-up table.
  • the look-up table is typically located in the address space of the application or must at least be available in this.
  • a plausibility check can be carried out in the event of links within certain limits. By comparing the size and the offset, it can be checked whether a reference would extend beyond the size of the segment. If this is the case, then there would be a memory violation which can already be recognized at the application level by means of this embodiment.
  • a usage right is assigned to the segment for use by an application.
  • the application has an assignment of the identifier to the size.
  • Such an assignment can be present in the form of a look-up table.
  • the look-up table is typically located in the address space of the application or must at least be available in this.
  • the authorization of a memory access can already be checked at the application level. Unauthorized memory access can then be completely prohibited.
  • this functionality can be provided by means of an authenticated program library.
  • the access control can be designed in such a way that the addresses of the segments are not transparent for unauthorized applications, i. H. are opaque, in other words not visible.
  • a common look-up table in other words a central look-up mechanism, can ensure the allocation of identifiers that are unique in the application system for the segments of the shared memory.
  • Such a look-up mechanism can be used to resolve the respective virtual base address for the respective identifier.
  • the offset indicates a relative shift of the date to the virtual address of the segment.
  • reference counting is understood to mean that the number of pointer objects that refer to a datum is counted. If the number of referring pointer objects falls to zero, the memory space for the date can be released, since no process in the application system refers to the date and the date is therefore no longer required.
  • a pointer object it is assumed that a pointer object then points to the same datum if the identifier and the offset are identical.
  • the counter of the reference counting can be adapted accordingly.
  • the data for the reference count can be stored in the shared storage means and the applications of an application system can access the data for the cross-application management of the reference count via a corresponding data structure, for example via a pointer object according to the data structure of the present invention.
  • the storage means has a data structure according to the present invention.
  • the storage means can be a shared storage means.
  • the device has a storage means according to the present invention.
  • the device can be, for example, a control device for a machine. It is conceivable that the machine is a vehicle. It is also conceivable that the vehicle is an at least partially automated vehicle.
  • a vehicle can be understood to mean a mobile means of transport that can be used to transport people (passenger transport), goods (freight transport) or tools (machines or aids).
  • passenger transport a mobile means of transport that can be used to transport people (passenger transport), goods (freight transport) or tools (machines or aids).
  • machine transport a mobile means of transport that can be used to transport people (passenger transport), goods (freight transport) or tools (machines or aids).
  • FIG. 1 shows a schematic representation of an application system with a data structure according to the present invention
  • FIG. 2 shows a further schematic illustration of an application system with a data structure according to the present invention.
  • FIG. 1 shows a schematic representation of an application system with a data structure 1 according to the present invention.
  • the representation is from the perspective of a first application 2.1 of the application system.
  • a shared storage means 11 is divided into segments 12a, 12b for storing data 3, 13.
  • Each segment 12a, 12b is assigned an identifier (segmentld) that is unique in the application system.
  • the first segment 12a is assigned the unique identifier (segmentld) 1 and the second segment 12b is assigned the unique identifier (segmentld) 2.
  • the first segment 12a begins at a virtual first base address (baseAddress) with the value 100 and the second segment 12b begins at a virtual second base address (baseAddress) with the value 2000.
  • baseAddress virtual first base address
  • baseAddress virtual second base address
  • the first application 2.1 requires knowledge of the storage location of the datum 3, 13. This can be specified as the physical address of the storage means 11. In most cases these addresses are not visible to the applications of an application system, ie opaque and are managed by a so-called Memory Management Unit (MMU).
  • MMU Memory Management Unit
  • the application 2.1 is typically provided with a virtual address space into which the physical memory of the shared memory means 11 is displayed (memory mapping). Access to the physical memory address takes place via the virtual address by converting the address by the memory management unit.
  • a pointer object 3 has an identifier (id) and an offset. Via the identifier (id), the virtual base address (baseAddress) of the segment 12a, 12b in which the datum 3, 13 is located, to which the pointer object 3 refers, can be determined using a look-up table 22. Starting from the base address (baseAddress), the virtual address of the date 3, 13 can be determined by means of the offset.
  • the look-up table 22 is in the memory 21 of the first application 2.1.
  • FIG. 2 also shows a schematic representation of the application system with a data structure 1 according to the present invention.
  • the representation is from the perspective of a second application 2.2 of the application system.
  • the shared storage means 11 has the same two segments 12a, 12b, as shown in FIG. 1 from the perspective of the first application 2.1.
  • the segments 12a, 12b have an identifier (segmentld) that is unique for the application system. Accordingly, the first segment 12a has the identifier 1 and the second segment 12b has the identifier 2.
  • the first segment 12a is located at the virtual first base address (baseAddress) with the value 3000.
  • the second segment 12b is located at the virtual second base address (baseAddress) with the value 7000 . Two aspects of the present invention are thus apparent.
  • the virtual base addresses (baseAddress) of the respective segments 12a, 12b differ. Furthermore, the base address (baseAddress) in the respective address space can have a different spacing from one another. This distance then inevitably does not match the actual distance between the respective segments in the physical address space of the shared storage means 11.
  • a pointer object 3 of the data structure 1 comprises a unique identifier (id) of the segment 12a, 12b in which the referenced datum 3, 13 is located, as well as an offset with respect to the virtual base address (baseAddress) of the segment 12a , 12b.
  • the identifier can be resolved into the virtual base address (baseAddress) of the segment 12a, 12b that applies to the respective application 2.1, 2.2.
  • the look-up table 22 is available in the memory 21 of the respective application 2.1, 2.2.
  • the look-up table 22 must be created (initialized) at a suitable point in time. The initialization can take place when the jointly used memory means 11 is faded in (memory mapping) in the address space of the respective application 2.1, 2.2.
  • baseAddress When the virtual base address (baseAddress) is changed, for example when re-initializing or when copying or moving (Eng. Move) the pointer object 3 into the address space of another application 2.1, 2.2, it is sufficient to adapt the assignment of the identifier (id) to new base address (baseAddress).
  • the pointer object 3 itself can be copied or moved by simply copying or taking over its attributes (identifier (id) and offset).
  • the pointer objects 3 can be exchanged between the applications 2.1, 2.2, for example via a communication middleware within the application system.
  • the segments 12a, 12b have a respective size.
  • the size of the first segment 12a has the value 1024 and the size of the second segment has the value 2048.
  • the values indicate the number of bits which the respective segment 12a, 12b comprises.
  • the respective look-up table 22 in addition to the assignment of the identifier (id) to the respective virtual base address (baseAddress), an assignment of the identifier (id) to the size of the corresponding segment 12a, 12b.
  • a plausibility check can be carried out when there are references within certain frameworks. Thus, by comparing the size and the offset, it can be checked whether a reference would extend beyond the size of the segment 12a, 12b. If this is the case, there is a memory violation.
  • the look-up table 22 does not look the same for every application 2.1, 2.2 of the application system.
  • An identifier (id, segmentld) can be hidden for an application 2.1, 2.2, among other things for security reasons.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention relates to a data structure (1) for a storage means (11, 21), in particular for a jointly used storage means (11), in an application system for storing a date (3, 13), wherein the date (3, 13) is stored in a segment (12a, 12b) of the storage means (11, 21), characterised in that a unique identifier (id, segmentId) in the application system is assigned to the segment (12a, 12b), and in that a pointer object (3) indicates to the date (3, 13) according to the identifier (id, segmentId) of the segment and an offsetting (offset) of the date (3, 13) in relation to the segment (12a, 12b).

Description

Beschreibung description

Titel title

Datenstruktur, Speichermittel und Vorrichtung Data structure, storage means and device

Die vorliegende Erfindung schafft eine Datenstruktur, ein Speichermittel sowie eine Vorrichtung. The present invention provides a data structure, a storage means and an apparatus.

Systeme für das zumindest teilweise automatisierte Fahren, insbesondere das hochautomatisierte Fahren, erfordern nach heutigem Stand der Kenntnis Multi- ECU, Multi-Prozessor und Multi-Prozess-Topologien, die auf eine Middleware- zentrische Umsetzung ausgerichtet sind. According to current knowledge, systems for at least partially automated driving, in particular highly automated driving, require multi-ECU, multi-processor and multi-process topologies that are geared towards middleware-centric implementation.

Stand der Technik State of the art

In einem Betriebssystem nach dem Portable Operating System Interface (POSIX) Standard, wie bspw. Linux oder QNX, ist es bekannt gemeinsam genutzte Speichermittel zur Kommunikation zwischen Prozessen (Interprozesskommunikation) einzusetzen. Dazu wird derselbe Teil eines physikalischen Speichers in die jeweiligen virtuellen Adressräume der beteiligten Prozesse eingeblendet (eng. Memory Mapping). In an operating system based on the Portable Operating System Interface (POSIX) standard, such as Linux or QNX, it is known to use shared storage means for communication between processes (interprocess communication). For this purpose, the same part of a physical memory is displayed in the respective virtual address spaces of the processes involved (memory mapping).

Offenbarung der Erfindung Disclosure of the invention

Die virtuelle Adresse, an der ein bestimmter Teil eines physikalischen Speichers eingeblendet wird, wird typischerweise vom Betriebssystem bestimmt. Das kann dazu führen, dass derselbe Teil eines physikalischen Speichers in verschiedenen Prozessen eines Multi-Prozess-Systems unterschiedliche virtuelle Adresse erhält The virtual address at which a certain part of a physical memory is displayed is typically determined by the operating system. This can lead to the same part of a physical memory being given different virtual addresses in different processes of a multi-process system

Wenn eine Middleware für die Interprozesskommunikation (Kommunikations- Middleware) gemeinsam genutzte Speichermittel einsetzt, so werden in der Regel Zeigerobjekte (Referenzen, Zeiger, eng. Pointer) auf Datenstrukturen zwischen den Prozessen ausgetauscht. Dadurch kann ein Kopieren der Daten vermieden werden. Dies spart System ressourcen. Die Komplexität der Datenstruktur ist derzeit aufgrund von Einschränkungen bzgl. der Verwendung von Zeigerobjekten innerhalb einer solchen Datenstruktur begrenzt. Ein Grund dafür ist, dass ein Zeigerobjekt, das von einem Prozess in die Datenstruktur geschrieben wird, aufgrund der unterschiedlichen virtuellen Adressen nur in dem Adressraum dieses Prozesses gültig ist. If a middleware for the interprocess communication (communication middleware) uses shared storage means, so are in the Usually pointer objects (references, pointers, eng. Pointers) to data structures are exchanged between the processes. This can prevent the data from being copied. This saves system resources. The complexity of the data structure is currently limited due to restrictions with regard to the use of pointer objects within such a data structure. One reason for this is that a pointer object that is written into the data structure by a process is only valid in the address space of this process due to the different virtual addresses.

Vor diesem Hintergrund schafft die vorliegende Erfindung eine Datenstruktur für ein Speichermittel in einem Anwendungssystem zur Speicherung von einem Datum. Against this background, the present invention creates a data structure for a storage means in an application system for storing data.

Das Datum ist in einem Segment des Speichermittels abgelegt. The date is stored in a segment of the storage means.

Die Datenstruktur zeichnet sich dadurch aus, dass dem Segment eine in dem Anwendungssystem eindeutige Kennung, mit anderen Worten eine ID, zugeordnet ist und dass ein Zeigerobjekt, mit anderen Worten eine Referenz (eng. Pointer), auf das Datum in Abhängigkeit von der Kennung des Segments und einem Versatz, mit anderen Worten einem Offset, des Datums in Relation zum Start des Segments verweist. The data structure is characterized in that the segment is assigned an identifier that is unique in the application system, in other words an ID, and that a pointer object, in other words a reference (pointer), points to the date as a function of the identifier of the Segment and an offset, in other words an offset, of the date in relation to the start of the segment.

Unter einem Anwendungssystem kann vorliegend ein System bestehend aus einer Menge von Anwendungsprogrammen, d. h. automatisierten Abläufen, die teilweise auf eine gemeinsame Hardware zurückgreifen verstanden werden. Ein Teil der gemeinsamen Hardware kann dabei ein gemeinsam genutztes Speichermittel sein. Das Anwendungssystem kann eingerichtet sein, um ein Fahrzeug zumindest teilweise automatisiert, bevorzugt hochautomatisiert, zu betreiben. In the present case, an application system can be a system consisting of a set of application programs, i. H. automated processes, some of which are based on common hardware. Part of the common hardware can be a shared storage means. The application system can be set up to operate a vehicle at least partially in an automated manner, preferably in a highly automated manner.

Unter einem Datum kann vorliegend eine Menge von Werten verstanden werden, die im Rahmen des Anwendungssystems eine Information repräsentieren. Ein solcher Wert kann ein Teil eines Eingabewerts, wie bspw. ein Sensorwert, ein Teil eines Ausgabewerts, wie bspw. ein Stellbefehl für einen Aktor oder ein Zwischenergebnis bei der Verarbeitung des Eingabewertes zu einem Ausgabewert darstellen. Insbesondere kann das Datum ein Zeigerobjekt bzw. eine Referenz, mit anderen Wort ein Zeiger (eng. Pointer), auf ein weiteres Datum darstellen. In the present case, a datum can be understood to mean a set of values that represent information in the context of the application system. Such a value can be part of an input value, such as, for example, a sensor value, part of an output value, such as, for example, a setting command for an actuator, or an intermediate result when the input value is processed into a Represent output value. In particular, the date can represent a pointer object or a reference, in other words a pointer, to another date.

Die Datenstruktur gemäß der vorliegenden Erfindung ermöglicht komplexe Systemtopologien basierend auf gemeinsam genutzten Speichermitteln, bei denen sowohl Daten als auch Zeiger in verschiedenen Segmenten eines gemeinsam genutzten Speichermittels abgelegt werden und dementsprechend Zeiger von einem Segment in ein anderes Segment verweisen. The data structure according to the present invention enables complex system topologies based on shared storage means, in which both data and pointers are stored in different segments of a shared storage means and accordingly pointers from one segment to another.

Dies ist dadurch möglich, da ein Zeiger der Datenstruktur sowohl die Kennung des Zielsegments als auch den Versatz des Datums in dem Zielsegment umfasst. This is possible because a pointer of the data structure includes both the identifier of the target segment and the offset of the date in the target segment.

Durch die Datenstruktur der vorliegenden Erfindung ist es nunmehr möglich auf ein Datum an einer physikalischen Adresse eines gemeinsam genutzten Speichermittels aus unterschiedlichen Prozessen zu verweisen, obwohl das Zeigerobjekt und das Datum nicht notwendigerweise im selben Segment des physikalischen Speichers abgelegt sind. The data structure of the present invention now makes it possible to refer to a datum at a physical address of a shared storage means from different processes, although the pointer object and the datum are not necessarily stored in the same segment of the physical memory.

Ferner ist es mit der Datenstruktur der vorliegenden Erfindung möglich aus den Speichermitteln, die nicht gemeinsam genutzt werden, auf ein Datum in einem gemeinsam genutzten Speichermittel zu verweisen. Furthermore, with the data structure of the present invention, it is possible to refer to a datum in a shared storage means from the storage means which are not used jointly.

Bei dem Speichermittel kann es sich um ein gemeinsam genutztes Speichermittel handeln. Unter einem gemeinsam genutzten Speichermittel (eng. Shared Memory) kann vorliegend ein Teil eines physikalischen Speichers verstanden werden, der von mehreren Prozessen eines Anwendungssystems mit Multi-Prozess-Topologie genutzt wird. The storage means can be a shared storage means. In the present case, a shared memory means can be understood as a part of a physical memory that is used by several processes of an application system with a multi-process topology.

Mittels eines gemeinsam genutzten Speichermittels lässt sich auf einfache Art und Weise eine hoch performante Datenkommunikation zwischen mehreren Prozessen umsetzen. In Kombination mit sog. Memory Pools, die bspw. in dem gemeinsam genutzten Speichermittel angelegt werden können, ermöglich die Datenstruktur der vorliegenden Erfindung die Konstruktion komplexer verlinkter Strukturen wie Listen oder Bäume und deren effiziente Übertragung zwischen Anwendungen (Interprozesskommunikation) mit verschiedenen virtuellen Adressräumen. Using a shared storage medium, high-performance data communication between several processes can be implemented in a simple manner. In combination with so-called memory pools, which can be created in the shared storage means, for example, the data structure of the present invention enables the construction of complex linked structures such as lists or trees and their efficient transfer between applications (interprocess communication) with different virtual address spaces.

Nach einer Ausführungsform der Datenstruktur ist dem Segment für eine Nutzung durch eine Anwendung des Anwendungssystems eine virtuelle Adresse zugeordnet. Die Anwendung weist dazu eine Zuordnung der Kennung zu der virtuellen Adresse auf. According to one embodiment of the data structure, a virtual address is assigned to the segment for use by an application of the application system. For this purpose, the application has an assignment of the identifier to the virtual address.

Ein solche Zuordnung kann vorliegend in Form einer Nachschlagtabelle (eng. Look-up Table) vorliegen. Die Nachschlagtabelle befindet sich dabei typischerweise im Adressraum der Anwendung bzw. muss zumindest in diesem verfügbar sein. Such an assignment can be present in the form of a look-up table. The look-up table is typically located in the address space of the application or must at least be available in this.

Nach einer Ausführungsform der Datenstruktur ist dem Segment eine Größe zugordnet. Die Anwendung weist dazu eine Zuordnung der Kennung zu der Größe auf. According to one embodiment of the data structure, a size is assigned to the segment. For this purpose, the application has an assignment of the identifier to the size.

Ein solche Zuordnung kann vorliegend in Form einer Nachschlagtabelle (eng. Look-up Table) vorliegen. Die Nachschlagtabelle befindet sich dabei typischerweise im Adressraum der Anwendung bzw. muss zumindest in diesem verfügbar sein. Such an assignment can be present in the form of a look-up table. The look-up table is typically located in the address space of the application or must at least be available in this.

Anhand der Information über die Größe des Segments kann bei Verweisen in gewissen Rahmen eine Plausibilitätsprüfung vorgenommen werden. So kann mittels Abgleich der Größe und des Versatzes überprüft werden, ob ein Verweis über die Größe des Segments hinausreichen würde. Ist das der Fall, so läge eine Speicherverletzung vor, die mittels dieser Ausführungsform bereits auf Anwendungsebene erkannt werden kann. Based on the information about the size of the segment, a plausibility check can be carried out in the event of links within certain limits. By comparing the size and the offset, it can be checked whether a reference would extend beyond the size of the segment. If this is the case, then there would be a memory violation which can already be recognized at the application level by means of this embodiment.

Nach einer Ausführungsform der Datenstruktur ist dem Segment für eine Nutzung durch eine Anwendung ein Nutzungsrecht zugeordnet. Die Anwendung weist dazu eine Zuordnung der Kennung zu der Größe auf. Ein solche Zuordnung kann vorliegend in Form einer Nachschlagtabelle (eng. Look-up Table) vorliegen. Die Nachschlagtabelle befindet sich dabei typischerweise im Adressraum der Anwendung bzw. muss zumindest in diesem verfügbar sein. According to one embodiment of the data structure, a usage right is assigned to the segment for use by an application. For this purpose, the application has an assignment of the identifier to the size. Such an assignment can be present in the form of a look-up table. The look-up table is typically located in the address space of the application or must at least be available in this.

Anhand der Information über ein Nutzungsrecht kann bereits auf Anwendungsebene die Berechtigung eines Speicherzugriffs geprüft werden. Ein unberechtigter Speicherzugriff kann dann komplett untersagt werden. Um die Vertrauenswürdigkeit dieser Ausführungsform weiter zu erhöhen kann diese Funktionalität mittels einer authentifizierten Programmbibliothek bereitgestellt werden. Ferner kann die Zugriffskontrolle derart gestaltet werden, dass die Adressen der Segmente für nicht-autorisierte Anwendungen nicht transparent, d. h. opak, mit anderen Worten nicht-sichtbar, sind. On the basis of the information about a right of use, the authorization of a memory access can already be checked at the application level. Unauthorized memory access can then be completely prohibited. In order to further increase the trustworthiness of this embodiment, this functionality can be provided by means of an authenticated program library. Furthermore, the access control can be designed in such a way that the addresses of the segments are not transparent for unauthorized applications, i. H. are opaque, in other words not visible.

Die vorstehenden Zuordnungen können in beliebiger Kombination gemeinsam vorliegen und dazu in einer gemeinsamen Nachschlagtabelle eingetragen sein. The above assignments can be present together in any combination and for this purpose they can be entered in a joint look-up table.

Die Bereitstellung einer gemeinsamen Nachschlagtabelle, mit anderen Worten eines zentralen Look-up-Mechanismus, kann die Vergabe von in dem Anwendungssystem eindeutigen Kennungen für die Segmente des gemeinsam genutzten Speichers gewährleisten. Mittels eines solchen Look-Up Mechanismus kann die Auflösung der jeweiligen virtuellen Basisadresse für die jeweilige Kennung erfolgen. The provision of a common look-up table, in other words a central look-up mechanism, can ensure the allocation of identifiers that are unique in the application system for the segments of the shared memory. Such a look-up mechanism can be used to resolve the respective virtual base address for the respective identifier.

Nach einer Ausführungsform der Datenstruktur gibt der Versatz eine relative Verschiebung des Datums zu der virtuellen Adresse des Segments an. According to one embodiment of the data structure, the offset indicates a relative shift of the date to the virtual address of the segment.

Mittels der Datenstruktur der vorliegenden Erfindung ist es möglich eine Referenzzählung (eng. Reference Counting) durchzuführen. Unter einer Referenzzählung wird vorliegend verstanden, dass die Anzahl der Zeigerobjekte, die auf ein Datum verweisen, gezählt wird. Fällt die Anzahl der verweisenden Zeigerobjekte auf null, so kann der Speicherplatz für das Datum freigegeben werden, da kein Prozess des Anwendungssystems mehr auf das Datum verweist und demnach das Datum nicht mehr benötigt wird. Zur Umsetzung einer Referenzzählung mit der Datenstruktur der vorliegenden Erfindung wird angenommen, dass ein Zeigerobjekt dann auf das gleiche Datum verweist, wenn die Kennung und der Versatz identisch sind. Using the data structure of the present invention, it is possible to carry out a reference counting. In the present case, reference counting is understood to mean that the number of pointer objects that refer to a datum is counted. If the number of referring pointer objects falls to zero, the memory space for the date can be released, since no process in the application system refers to the date and the date is therefore no longer required. In order to implement a reference count with the data structure of the present invention, it is assumed that a pointer object then points to the same datum if the identifier and the offset are identical.

Unter dieser Annahme kann beim Erstellen, Kopieren und Zerstören (d. h. With this assumption, creating, copying and destroying (i.e.

Aufgeben bzw. Löschen) eines Zeigerobjekts der Zähler der Referenzzählung entsprechend angepasst werden. Abandoning or deleting) a pointer object, the counter of the reference counting can be adapted accordingly.

Dazu können die Daten für die Referenzzählung im gemeinsam genutzten Speichermittel abgelegt werden und die Anwendungen eines Anwendungssystems können über eine entsprechende Datenstruktur bspw. über ein Zeigerobjekt gemäß der Datenstruktur der vorliegenden Erfindung auf die Daten zur anwendungsübergreifenden Verwaltung der Referenzzählung zugreifen. For this purpose, the data for the reference count can be stored in the shared storage means and the applications of an application system can access the data for the cross-application management of the reference count via a corresponding data structure, for example via a pointer object according to the data structure of the present invention.

Ein weiterer Aspekt der vorliegenden Erfindung ist ein Speichermittel. Das Speichermittel weist eine Datenstruktur gemäß der vorliegenden Erfindung auf. Another aspect of the present invention is a storage means. The storage means has a data structure according to the present invention.

Bei dem Speichermittel kann es sich um ein gemeinsam genutztes Speichermittel handeln. The storage means can be a shared storage means.

Ein weiterer Aspekt der vorliegenden Erfindung ist eine Vorrichtung. Die Vorrichtung weist ein Speichermittel gemäß der vorliegenden Erfindung auf. Another aspect of the present invention is an apparatus. The device has a storage means according to the present invention.

Bei der Vorrichtung kann es sich bspw. um ein Steuergerät für eine Maschine handeln. Denkbar ist dabei, dass es sich bei der Maschine um ein Fahrzeug handelt. Denkbar ist dabei ferner, dass es sich bei dem Fahrzeug um ein zumindest teilweise automatisiert betriebenes Fahrzeug handelt. The device can be, for example, a control device for a machine. It is conceivable that the machine is a vehicle. It is also conceivable that the vehicle is an at least partially automated vehicle.

Unter einem Fahrzeug kann vorliegend ein mobiles Verkehrsmittel verstanden werden, das dem Transport von Personen (Personenverkehr), Gütern (Güterverkehr) oder Werkzeugen (Maschinen oder Hilfsmittel) dienen kann. Je nach Anwendungsfall wird von: In the present case, a vehicle can be understood to mean a mobile means of transport that can be used to transport people (passenger transport), goods (freight transport) or tools (machines or aids). Depending on the application:

- Landfahrzeugen; - Wasserfahrzeugen; - land vehicles; - watercraft;

- Luftfahrzeugen gesprochen. - Aircraft spoken.

Nachfolgend werden Ausführungsformen der Erfindung anhand von Zeichnungen näher erläutert. Embodiments of the invention are explained in more detail below with reference to drawings.

Es zeigen: Show it:

Fig. 1 eine schematische Darstellung eines Anwendungssystems mit einer Datenstruktur gemäß der vorliegenden Erfindung; 1 shows a schematic representation of an application system with a data structure according to the present invention;

Fig. 2 eine weitere schematische Darstellung eines Anwendungssystems mit einer Datenstruktur gemäß der vorliegenden Erfindung. 2 shows a further schematic illustration of an application system with a data structure according to the present invention.

Figur 1 zeigt eine schematische Darstellung eines Anwendungssystems mit einer Datenstruktur 1 gemäß der vorliegenden Erfindung. Die Darstellung ist dabei aus der Perspektive einer ersten Anwendung 2.1 des Anwendungssystems. FIG. 1 shows a schematic representation of an application system with a data structure 1 according to the present invention. The representation is from the perspective of a first application 2.1 of the application system.

Ein gemeinsam genutztes Speichermittel 11 ist in Segmente 12a, 12b zur Ablage von Daten 3, 13 aufgeteilt. Jedem Segment 12a, 12b ist eine in dem Anwendungssystem eindeutige Kennung (segmentld) zugeordnet. In der Darstellung ist dem ersten Segment 12a die eindeutige Kennung (segmentld) 1 und dem zweiten Segment 12b die eindeutige Kennung (segmentld) 2 zugeordnet. A shared storage means 11 is divided into segments 12a, 12b for storing data 3, 13. Each segment 12a, 12b is assigned an identifier (segmentld) that is unique in the application system. In the illustration, the first segment 12a is assigned the unique identifier (segmentld) 1 and the second segment 12b is assigned the unique identifier (segmentld) 2.

Aus der Perspektive der ersten Anwendung 2.1 des Anwendungssystems beginnt das erste Segment 12a an einer virtuellen ersten Basisadresse (baseAddress) mit dem Wert 100 und das zweite Segment 12b an einer virtuellen zweiten Basisadresse (baseAddress) mit dem Wert 2000. From the perspective of the first application 2.1 of the application system, the first segment 12a begins at a virtual first base address (baseAddress) with the value 100 and the second segment 12b begins at a virtual second base address (baseAddress) with the value 2000.

Für den Zugriff auf ein Datum 3, 13 benötigt die erste Anwendung 2.1 Kenntnis über den Speicherort des Datums 3, 13. Dieser kann als physikalische Adresse des Speichermittels 11 angegeben werden. In den meisten Fällen sind diese Adressen für die Anwendungen eines Anwendungssystems nicht sichtbar, d. h. opak und werden von einer sogenannten Memory Management Unit (MMU) verwaltet. To access a datum 3, 13, the first application 2.1 requires knowledge of the storage location of the datum 3, 13. This can be specified as the physical address of the storage means 11. In most cases these addresses are not visible to the applications of an application system, ie opaque and are managed by a so-called Memory Management Unit (MMU).

Der Anwendung 2.1 steht dafür typischerweise eine virtuelle Adressraum zur Verfügung, in den der physikalische Speicher des gemeinsam genutzten Speichermittels 11 eingeblendet (eng. Memory Mapping) ist. Über die virtuelle Adresse erfolgt mittels Umsetzung der Adresse durch die Memory Management Unit der Zugriff auf die physikalische Speicheradresse. The application 2.1 is typically provided with a virtual address space into which the physical memory of the shared memory means 11 is displayed (memory mapping). Access to the physical memory address takes place via the virtual address by converting the address by the memory management unit.

Ein Zeigerobjekt 3 gemäß der vorliegenden Erfindung weist eine Kennung (id) sowie einen Versatz (offset) auf. Über die Kennung (id) kann mittels einer Nachschlagtabelle 22 (eng. Look-up Table) die virtuelle Basisadresse (baseAddress) des Segments 12a, 12b ermittelt werden, in dem das Datum 3, 13 liegt, auf das das Zeigerobjekt 3 verweist. Ausgehend von der Basisadresse (baseAddress) kann mittels des Versatzes (offset) die virtuelle Adresse des Datums 3, 13 ermittelt werden. A pointer object 3 according to the present invention has an identifier (id) and an offset. Via the identifier (id), the virtual base address (baseAddress) of the segment 12a, 12b in which the datum 3, 13 is located, to which the pointer object 3 refers, can be determined using a look-up table 22. Starting from the base address (baseAddress), the virtual address of the date 3, 13 can be determined by means of the offset.

In der dargestellten Ausführungsform liegt die Nachschlagtabelle 22 im Speicher 21 der ersten Anwendung 2.1. In the embodiment shown, the look-up table 22 is in the memory 21 of the first application 2.1.

Figur 2 zeigt ebenfalls eine schematische Darstellung des Anwendungssystems mit einer Datenstruktur 1 gemäß der vorliegenden Erfindung. Die Darstellung ist dabei aus der Perspektive einer zweiten Anwendung 2.2 des Anwendungssystems. FIG. 2 also shows a schematic representation of the application system with a data structure 1 according to the present invention. The representation is from the perspective of a second application 2.2 of the application system.

Das gemeinsam genutzte Speichermittel 11 weist dieselben zwei Segmente 12a, 12b auf, wie in Figur 1 dargestellt aus der Perspektive der ersten Anwendung 2.1 auf. Die Segmente 12a, 12b weisen eine für das Anwendungssystem eindeutige Kennung (segmentld) auf. Dementsprechend weist das erste Segment 12a die Kennung 1 und das zweite Segment 12b die Kennung 2 auf. Im Unterschied zu der Darstellung in Figur 1 befindet sich das erste Segment 12a aus der Perspektive der zweiten Anwendung 2.2 an der virtuellen ersten Basisadresse (baseAddress) mit dem Wert 3000. Das zweite Segment 12b an der virtuellen zweiten Basisadresse (baseAddress) mit dem Wert 7000. Damit werden zwei Aspekte der vorliegenden Erfindung deutlich. Aus der Perspektive der jeweiligen Anwendung 2.1 bzw. 2.2 unterscheiden sich die virtuellen Basisadressen (baseAddress) der jeweiligen Segmente 12a, 12b. Ferner können die Basisadresse (baseAddress) im jeweiligen Adressraum einen unterschiedlichen Abstand zueinander aufweisen. Dieser Abstand stimmt dann zusätzlich zwangsläufig nicht mit dem tatsächlichen Abstand der jeweiligen Segmente im physikalischen Adressraum des gemeinsam genutzten Speichermittels 11 überein. The shared storage means 11 has the same two segments 12a, 12b, as shown in FIG. 1 from the perspective of the first application 2.1. The segments 12a, 12b have an identifier (segmentld) that is unique for the application system. Accordingly, the first segment 12a has the identifier 1 and the second segment 12b has the identifier 2. In contrast to the illustration in FIG. 1, from the perspective of the second application 2.2, the first segment 12a is located at the virtual first base address (baseAddress) with the value 3000. The second segment 12b is located at the virtual second base address (baseAddress) with the value 7000 . Two aspects of the present invention are thus apparent. From the perspective of the respective application 2.1 or 2.2, the virtual base addresses (baseAddress) of the respective segments 12a, 12b differ. Furthermore, the base address (baseAddress) in the respective address space can have a different spacing from one another. This distance then inevitably does not match the actual distance between the respective segments in the physical address space of the shared storage means 11.

Ein Zeigerobjekt 3 der Datenstruktur 1 gemäß der vorliegenden Erfindung umfasst eine eindeutige Kennung (id) des Segments 12a, 12b, in dem das referenzierte Datum 3, 13 liegt sowie einen Versatz (offset) in Bezug auf die virtuelle Basisadresse (baseAddress) des Segments 12a, 12b. Über eine Nachschlagtabelle 22, kann die Kennung in die für die jeweilige Anwendung 2.1, 2.2 geltende virtuelle Basisadresse (baseAddress) des Segments 12a, 12b aufgelöst werden. A pointer object 3 of the data structure 1 according to the present invention comprises a unique identifier (id) of the segment 12a, 12b in which the referenced datum 3, 13 is located, as well as an offset with respect to the virtual base address (baseAddress) of the segment 12a , 12b. Using a look-up table 22, the identifier can be resolved into the virtual base address (baseAddress) of the segment 12a, 12b that applies to the respective application 2.1, 2.2.

In den dargestellten Ausführungsformen liegt die Nachschlagtabelle 22 im Speicher 21 der jeweiligen Anwendung 2.1, 2.2 vor. Dazu ist die Nachschlagtabelle 22 zu einem geeigneten Zeitpunkt anzulegen (zu initialisieren). Die Initialisierung kann beim Einblenden (eng. Memory Mapping) des gemeinsam genutzten Speichermittels 11 in den Adressraum der jeweiligen Anwendung 2.1, 2.2 erfolgen. In the illustrated embodiments, the look-up table 22 is available in the memory 21 of the respective application 2.1, 2.2. For this purpose, the look-up table 22 must be created (initialized) at a suitable point in time. The initialization can take place when the jointly used memory means 11 is faded in (memory mapping) in the address space of the respective application 2.1, 2.2.

Bei einer Änderung der virtuellen Basisadresse (baseAddress) bspw. bei einer Re-Initialisierung oder beim Kopieren bzw. Verschieben (eng. Move) des Zeigerobjekts 3 in den Adressraum einer anderen Anwendung 2.1, 2.2 genügt eine Anpassung der Zuordnung der Kennung (id) zur neuen Basisadresse (baseAddress). Das Zeigerobjekt 3 selbst kann durch einfaches Kopieren bzw. Übernehmen seiner Attribute (Kennung (id) und Versatz (offset)) kopiert bzw. verschoben werden. When the virtual base address (baseAddress) is changed, for example when re-initializing or when copying or moving (Eng. Move) the pointer object 3 into the address space of another application 2.1, 2.2, it is sufficient to adapt the assignment of the identifier (id) to new base address (baseAddress). The pointer object 3 itself can be copied or moved by simply copying or taking over its attributes (identifier (id) and offset).

Dadurch, dass die Nachschlagetabellen 22 der jeweiligen Anwendungen 2.1, 2.2 die Änderung der virtuellen Basisadressen (baseAddress) berücksichtigen, haben die Zeigerobjekte 3 gemäß der vorliegenden Erfindung auch beim Wechsel des Adressraums nach wie vor Gültigkeit. So können die Zeigerobjekte 3 bspw. über eine Kommunikations-Middleware innerhalb des Anwendungssystems zwischen den Anwendungen 2.1, 2.2 ausgetauscht werden. Because the look-up tables 22 of the respective applications 2.1, 2.2 take into account the change in the virtual base addresses (baseAddress), the pointer objects 3 according to the present invention also have Change of address space is still valid. For example, the pointer objects 3 can be exchanged between the applications 2.1, 2.2, for example via a communication middleware within the application system.

Zum Aufbau von komplexen verlinkten Strukturen, wie bspw. Listenknoten, können von einem Allokator in dem gemeinsam genutzten Speichermittel 11 Speicher für ein Memory Pool angefordert (allokiert) werden. Zur Verkettung der Listen können Zeigerobjekte 3 gemäß der Datenstruktur 1 der vorliegenden Erfindung eingesetzt werden. Eine Kopie der Strukturen ist auf einfache Art und Weise möglich, da lediglich eine Bit-weise Kopie (bspw. memcopy) des belegten Speicherbereiches angefertigt werden muss. Dadurch lassen sich auf einfache Art und Weise auch tiefe Kopien komplexer verlinkter Strukturen anfertigen, ohne dass die Struktur im Einzelnen geladen und kopiert werden muss. In order to set up complex linked structures, such as list nodes, for example, memories for a memory pool can be requested (allocated) from an allocator in the shared memory means 11. Pointer objects 3 according to the data structure 1 of the present invention can be used to link the lists. A copy of the structures is possible in a simple manner, since only a bit-by-bit copy (e.g. memcopy) of the occupied memory area has to be made. This means that even deep copies of complex, linked structures can be made in a simple manner without the structure having to be loaded and copied individually.

In den Figuren 1 und 2 ist ein weiterer Aspekt der vorliegenden Erfindung dargestellt. Die Segmente 12a, 12b weisen eine jeweilige Größe (size) auf. So hat die Größe des ersten Segments 12a den Wert 1024 und die Größe des zweiten Segments den Wert 2048. Die Werte geben die Anzahl der Bits an, die das jeweilige Segment 12a, 12b umfasst. Another aspect of the present invention is shown in FIGS. The segments 12a, 12b have a respective size. The size of the first segment 12a has the value 1024 and the size of the second segment has the value 2048. The values indicate the number of bits which the respective segment 12a, 12b comprises.

Nicht dargestellt in den Figuren 1 und 2 ist, dass die jeweilige Nachschlagtabelle 22 neben der Zuordnung der Kennung (id) zu der jeweiligen virtuellen Basisadresse (baseAddress) eine Zuordnung der Kennung (id) zu der je Größe (size) des entsprechenden Segments 12a, 12b aufweist. What is not shown in FIGS. 1 and 2 is that the respective look-up table 22, in addition to the assignment of the identifier (id) to the respective virtual base address (baseAddress), an assignment of the identifier (id) to the size of the corresponding segment 12a, 12b.

Anhand der Information über die Größe (size) des jeweiligen Segments 12a, 12b kann bei Verweisen in gewissen Rahmen eine Plausibilitätsprüfung vorgenommen werden. So kann mittels Abgleich der Größe (size) und des Versatzes (offset) überprüft werden, ob ein Verweis über die Größe (size) des Segments 12a, 12b hinausreichen würde. Ist das der Fall, so läge eine Speicherverletzung vor. On the basis of the information about the size of the respective segment 12a, 12b, a plausibility check can be carried out when there are references within certain frameworks. Thus, by comparing the size and the offset, it can be checked whether a reference would extend beyond the size of the segment 12a, 12b. If this is the case, there is a memory violation.

Denkbar wäre es auch die Nachschlagtabelle 22 zentral für das Anwendungssystem vorzuhalten. Dabei ist zu berücksichtigen, dass je nach Ausführungsform der vorliegenden Erfindung die Nachschlagtabelle 22 nicht für jede Anwendung 2.1, 2.2 des Anwendungssystems gleich aussieht. So kann eine Kennung (id, segmentld)- u. a. aus Sicherheitsgründen - für eine Anwendung 2.1, 2.2 verborgen sein. It would also be conceivable to keep the look-up table 22 centrally for the application system. It should be noted that depending on Embodiment of the present invention, the look-up table 22 does not look the same for every application 2.1, 2.2 of the application system. An identifier (id, segmentld) can be hidden for an application 2.1, 2.2, among other things for security reasons.

Claims

Ansprüche Expectations 1. Datenstruktur (1) für ein Speichermittel (11, 21), insbesondere für ein gemeinsam genutztes Speichermittel (11), in einem Anwendungssystem zur Speicherung von einem Datum (3, 13), wobei das Datum (3, 13) in einem Segment (12a, 12b) des Speichermittels (11, 21) abgelegt ist, dadurch gekennzeichnet, dass dem Segment (12a, 12b) eine in dem Anwendungssystem eindeutige Kennung (id, segmentld) zugeordnet ist und dass ein Zeigerobjekt (3) auf das Datum (3, 13) in Abhängigkeit von der Kennung (id, segmentld) des Segments (12a, 12b) und einem Versatz (offset) des Datums (3, 13) in Relation zu dem Segment (12a, 12b) verweist. 1. Data structure (1) for a storage means (11, 21), in particular for a shared storage means (11), in an application system for storing a date (3, 13), the date (3, 13) in a segment (12a, 12b) of the storage means (11, 21), characterized in that the segment (12a, 12b) is assigned an identifier (id, segmentld) that is unique in the application system and that a pointer object (3) points to the date ( 3, 13) depending on the identifier (id, segmentld) of the segment (12a, 12b) and an offset of the date (3, 13) in relation to the segment (12a, 12b). 2. Datenstruktur (1) nach Anspruch 1, wobei dem Segment (12a, 12b) für eine Nutzung durch eine Anwendung (2.1, 2.2) des Anwendungssystems eine virtuelle Adresse (baseAddress) zugeordnet ist, wobei die Anwendung (2.1, 2.2) eine Zuordnung (22) der Kennung (id, segmentld) zu der virtuellen Adresse (baseAddress) aufweist. 2. Data structure (1) according to claim 1, wherein the segment (12a, 12b) is assigned a virtual address (baseAddress) for use by an application (2.1, 2.2) of the application system, the application (2.1, 2.2) being assigned an assignment (22) the identifier (id, segmentld) to the virtual address (baseAddress). 3. Datenstruktur (1) nach Anspruch 1 oder 2, wobei dem Segment (12a, 12b) eine Größe (size) zugordnet ist, wobei eine Anwendung (2.1, 2.2) des Anwendungssystems eine Zuordnung (22) der Kennung (id, segmentld) zu der Größe (size) aufweist. 3. Data structure (1) according to claim 1 or 2, wherein the segment (12a, 12b) is assigned a size (size), with an application (2.1, 2.2) of the application system assigning (22) the identifier (id, segmentld) to the size (size). 4. Datenstruktur (1) nach einem der vorhergehenden Ansprüche, wobei dem Segment (12a, 12b) für eine Nutzung durch eine Anwendung (2.1, 2.2) ein Nutzungsrecht zugeordnet ist, wobei die Anwendung (2.1, 2.2) eine Zuordnung (22) der Kennung (id, segmentld) zu dem Nutzungsrecht aufweist. 5. Datenstruktur (1) nach einem der vorhergehenden Ansprüche, wobei der Versatz (offset) eine relative Verschiebung des Datums (3, 13) zu der virtuellen Adresse (baseAddress) des Segments (12a, 12b) angibt. 6. Speichermittel (11, 21), insbesondere gemeinsam genutztes Speichermittel4. Data structure (1) according to one of the preceding claims, wherein the segment (12a, 12b) is assigned a right of use for use by an application (2.1, 2.2), the application (2.1, 2.2) having an assignment (22) of the Has identifier (id, segmentld) for the right of use. 5. Data structure (1) according to one of the preceding claims, wherein the offset (offset) indicates a relative shift of the date (3, 13) to the virtual address (baseAddress) of the segment (12a, 12b). 6. Storage means (11, 21), in particular shared storage means (11), aufweisend eine Datenstruktur (1) nach einem der vorhergehenden Ansprüche. (11), having a data structure (1) according to one of the preceding claims. 7. Vorrichtung, aufweisend ein Speichermittel nach Anspruch 6. 7. Device comprising a storage means according to claim 6.
PCT/EP2020/077852 2019-10-04 2020-10-05 Data structure, storage means and device Ceased WO2021064241A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019215295.3 2019-10-04
DE102019215295.3A DE102019215295A1 (en) 2019-10-04 2019-10-04 Data structure, storage means and device

Publications (1)

Publication Number Publication Date
WO2021064241A1 true WO2021064241A1 (en) 2021-04-08

Family

ID=72852616

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/077852 Ceased WO2021064241A1 (en) 2019-10-04 2020-10-05 Data structure, storage means and device

Country Status (2)

Country Link
DE (1) DE102019215295A1 (en)
WO (1) WO2021064241A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
WO2000036509A2 (en) * 1998-12-18 2000-06-22 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6345276B1 (en) * 1998-09-18 2002-02-05 Microsoft Corporation Representing base pointers in a shared memory heap
US20050149903A1 (en) * 2003-12-12 2005-07-07 International Business Machines Corporation Scalable runtime system for global address space languages on shared and distributed memory machines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
US6345276B1 (en) * 1998-09-18 2002-02-05 Microsoft Corporation Representing base pointers in a shared memory heap
WO2000036509A2 (en) * 1998-12-18 2000-06-22 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US20050149903A1 (en) * 2003-12-12 2005-07-07 International Business Machines Corporation Scalable runtime system for global address space languages on shared and distributed memory machines

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRIAN PAUL SWENSON ET AL: "A New Approach to Zero-Copy Message Passing with Reversible Memory Allocation in Multi-core Architectures", PRINCIPLES OF ADVANCED AND DISTRIBUTED SIMULATION (PADS), 2012 ACM/IEEE/SCS 26TH WORKSHOP ON, IEEE, 15 July 2012 (2012-07-15), pages 44 - 52, XP032240531, ISBN: 978-1-4673-1797-9, DOI: 10.1109/PADS.2012.3 *

Also Published As

Publication number Publication date
DE102019215295A1 (en) 2021-04-08

Similar Documents

Publication Publication Date Title
DE102014201682A1 (en) Method for coexistence of software with different security levels in a multicore processor system
DE10029645A1 (en) Network component addressing method for data bus systems involves accessing function blocks through data bus using same addresses as network master and control devices
DE10324189A1 (en) Method for controlling access to a resource of an application in a data processing device
DE102012016539A1 (en) Configuration technique for a controller with inter-communicating applications
EP1061447A2 (en) Partitioning and monitoring of software controlled systems
EP3015992A1 (en) Method for managing prioritized input data
DE102020123506A1 (en) Method for generating source code with service-based communication
AT521928B1 (en) Method for calibrating an electronic control unit of a vehicle
WO2021064241A1 (en) Data structure, storage means and device
EP3364257A1 (en) Method for operating an engineering system for an industrial process automation system and control program
DE102017119447B4 (en) Coordinated multi-mode allocation and runtime switching for systems with dynamic fault tolerance requirements
DE102013016114B3 (en) Bus system and method for protected memory accesses
DE102020113758A1 (en) COMPARISON OF ELECTRONIC CONTROL UNITS
DE102020210734A1 (en) Thread Validation
DE102020119853B3 (en) Method for controlling an automation system with visualization of program objects of a control program of the automation system and automation system
WO2013152826A1 (en) Method for operating a diagnostic system and diagnostic system
DE102017220068A1 (en) Method and on-board control unit for controlling and / or monitoring components of a rail vehicle
WO2021064037A1 (en) Method, computer program, storage medium, storage means, and system for the use of a shared storage means.
DE102021001097A1 (en) Procedure for installing a differential software update
EP4068229B1 (en) Method for configuring an access control system
DE102022108931A1 (en) Controlling a vehicle
DE102014209592A1 (en) Method for creating a hypervisor unit and hypervisor unit
DE102019219667B3 (en) Computer program product for a peer-to-peer computer network
DE102018123563A1 (en) Method for inter-core communication in a multi-core processor
DE102016216821A1 (en) Method and device for operating an internal combustion engine

Legal Events

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

Ref document number: 20790217

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20790217

Country of ref document: EP

Kind code of ref document: A1