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

Data structure, storage means and device Download PDF

Info

Publication number
DE102019215295A1
DE102019215295A1 DE102019215295.3A DE102019215295A DE102019215295A1 DE 102019215295 A1 DE102019215295 A1 DE 102019215295A1 DE 102019215295 A DE102019215295 A DE 102019215295A DE 102019215295 A1 DE102019215295 A1 DE 102019215295A1
Authority
DE
Germany
Prior art keywords
segment
storage means
application
data structure
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.)
Pending
Application number
DE102019215295.3A
Other languages
German (de)
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
Priority to DE102019215295.3A priority Critical patent/DE102019215295A1/en
Priority to PCT/EP2020/077852 priority patent/WO2021064241A1/en
Publication of DE102019215295A1 publication Critical patent/DE102019215295A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; 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
    • 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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

Abstract

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.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).

Description

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 Middlewarezentrische 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 TechnikState 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 ErfindungDisclosure 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ältThe 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 Systemressourcen. 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 uses shared storage means for interprocess communication (communication middleware), pointer objects (references, pointers, pointers) to data structures are usually exchanged between the processes. This avoids copying the data. 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 represent part of an input value such as a sensor value, part of an output value such as a control command for an actuator or an intermediate result when processing the input value to form an 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.Using a shared storage medium, high-performance data communication between several processes can be implemented in a simple manner.

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.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.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.

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 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.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.

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.In order to implement a reference count with the data structure of the present invention, it is assumed that a pointer object refers to the same datum if the identifier and the offset are identical.

Unter dieser Annahme kann beim Erstellen, Kopieren und Zerstören (d. h. Aufgeben bzw. Löschen) eines Zeigerobjekts der Zähler der Referenzzählung entsprechend angepasst werden.Under this assumption, creating, copying and destroying (i.e. giving up or Delete) of a pointer object, the counters 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:

  • - Landfahrzeugen;
  • - Wasserfahrzeugen;
  • - Luftfahrzeugen gesprochen.
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:
  • - land vehicles;
  • - watercraft;
  • - 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:

  • 1 eine schematische Darstellung eines Anwendungssystems mit einer Datenstruktur gemäß der vorliegenden Erfindung;
  • 2 eine weitere schematische Darstellung eines Anwendungssystems mit einer Datenstruktur gemäß der vorliegenden Erfindung.
Show it:
  • 1 a schematic representation of an application system with a data structure according to the present invention;
  • 2 a further schematic representation of an application system with a data structure according to the present invention.

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. 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 medium 11 is in segments 12a , 12b for storing data 3 , 13th divided up. Every segment 12a , 12b an identifier (segmentld) that is unique in the application system is assigned. In the illustration is the first segment 12a the unique identifier (segmentld) 1 and the second segment 12b the unique identifier (segmentld) 2 is assigned.

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 begins the first segment 12a at a virtual first base address (baseAddress) with the value 100 and the second segment 12b 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 date 3 , 13th needs the first application 2.1 Knowledge of the location of the date 3 , 13th . This can be used as the physical address of the storage means 11 can be specified. In most cases, these addresses are not visible to the applications of an application system, ie they are 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 a virtual address space is typically available for this, in which the physical memory of the shared storage means 11 is displayed (Eng. 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 (offset). The identifier (id) can be found in a look-up table 22nd (Eng. Look-up Table) the virtual base address (baseAddress) of the segment 12a , 12b can be determined in which the date 3 , 13th to which the pointer object lies 3 refers. Starting from the base address (baseAddress), the virtual address of the date can be set using the offset 3 , 13th be determined.

In der dargestellten Ausführungsform liegt die Nachschlagtabelle 22 im Speicher 21 der ersten Anwendung 2.1.In the illustrated embodiment, the look-up table resides 22nd In the storage room 21 the first application 2.1 .

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 Anwend ungssystems. 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 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 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.The shared storage medium 11 has the same two segments 12a , 12b on, as in 1 shown from the perspective of the first application 2.1 on. The segments 12a , 12b have an identifier (segmentld) that is unique for the application system. Accordingly, the first segment has 12a the identifier 1 and the second segment 12b the identifier 2 on. In contrast to the representation in 1 is the first segment 12a from the perspective of the second application 2.2 at the virtual first base address (baseAddress) with the value 3000 . The second segment 12b at the virtual second base address (baseAddress) with the value 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.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 differ 12a , 12b . 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 match.

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 the data structure 1 according to the present invention comprises a unique identifier (id) of the segment 12a , 12b in which the referenced date 3 , 13th and an offset with respect to the virtual base address (baseAddress) of the segment 12a , 12b . Via a look-up table 22nd , the identifier can be used for the respective application 2.1 , 2.2 applicable virtual base address (baseAddress) of the segment 12a , 12b to be resolved.

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 resides 22nd In the storage room 21 the respective application 2.1 , 2.2 in front. To do this is the look-up table 22nd to be created (initialized) at a suitable time. The initialization can be carried out when the shared storage means are displayed (eng. Memory mapping) 11 in the address space of the respective application 2.1 , 2.2 respectively.

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.In the event of a change in the virtual base address (baseAddress), for example in the event of a re-initialization or when copying or moving (Eng. Move) the pointer object 3 in the address space of another application 2.1 , 2.2 It is sufficient to adapt the assignment of the identifier (id) to the 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.By having the lookup tables 22nd of the respective applications 2.1 , 2.2 The pointer objects have to take into account the change in the virtual base addresses (baseAddress) 3 According to the present invention, it is still valid even when the address space is changed. So can the pointer objects 3 for example via a communication middleware within the application system between the applications 2.1 , 2.2 be replaced.

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.To set up complex linked structures, such as list nodes, an allocator in the shared storage means 11 Memory for a memory pool can be requested (allocated). Pointer objects can be used to link the lists 3 according to the data structure 1 of the present invention can be used. 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 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.In the 1 and 2 another aspect of the present invention is shown. The segments 12a , 12b have a respective size. So is the size of the first segment 12a the value 1024 and the size of the second segment the value 2048 . The values indicate the number of bits that the respective segment 12a , 12b includes.

Nicht dargestellt in den 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.Not shown in the 1 and 2 is that the particular look-up table 22nd 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 having.

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.Using the information about the size of the respective segment 12a , 12b a plausibility check can be carried out for references within certain frameworks. By comparing the size (size) and the offset (offset), you can check whether there is a reference to the size (size) of the segment 12a , 12b would reach out. 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.The look-up table would also be conceivable 22nd to be kept centrally for the application system. It should be noted that, depending on the embodiment of the present invention, the look-up table 22nd not for every application 2.1 , 2.2 of the application system looks the same. An identifier (id, segmentld) can be used for an application - for security reasons, among other things 2.1 , 2.2 to be hidden.

Claims (7)

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.Data structure (1) for a storage means (11, 21), in particular for a shared storage means (11), in an application system for storing data (3, 13), the Date (3, 13) is stored 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) to the date (3, 13) depending on the identifier (id, segmentld) of the segment (12a, 12b) and an offset (offset) of the date (3, 13) in relation to the segment (12a , 12b). 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.Data structure (1) according to Claim 1 , the segment (12a, 12b) being assigned a virtual address (baseAddress) for use by an application (2.1, 2.2) of the application system, the application (2.1, 2.2) assigning (22) the identifier (id, segmentld ) to the virtual address (baseAddress). 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.Data structure (1) according to Claim 1 or 2 , the segment (12a, 12b) being assigned a size, an application (2.1, 2.2) of the application system having an assignment (22) of the identifier (id, segmentld) to the size (size). 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.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) assigning (22) the identifier ( id, segmentld) to the right of use. 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.Data structure (1) according to one of the preceding claims, wherein the offset indicates a relative shift of the date (3, 13) to the virtual address (baseAddress) of the segment (12a, 12b). Speichermittel (11, 21), insbesondere gemeinsam genutztes Speichermittel (11), aufweisend eine Datenstruktur (1) nach einem der vorhergehenden Ansprüche.Storage means (11, 21), in particular shared storage means (11), having a data structure (1) according to one of the preceding claims. Vorrichtung, aufweisend ein Speichermittel nach Anspruch 6.Apparatus comprising a storage means according to Claim 6 .
DE102019215295.3A 2019-10-04 2019-10-04 Data structure, storage means and device Pending DE102019215295A1 (en)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=72852616

Family Applications (1)

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

Country Status (2)

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

Family Cites Families (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
US6314501B1 (en) * 1998-07-23 2001-11-06 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
US7380086B2 (en) * 2003-12-12 2008-05-27 International Business Machines Corporation Scalable runtime system for global address space languages on shared and distributed memory machines

Also Published As

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

Similar Documents

Publication Publication Date Title
DE69635865T2 (en) ADDRESS TRANSFORMATION IN A CLUSTER COMPUTER SYSTEM
DE102013022405B3 (en) Protection of global registers in a multithreaded processor
DE3805107A1 (en) METHOD AND DEVICE FOR CONTROLLING VIRTUAL ADDRESS SPACES OF A VIRTUAL STORAGE
DE102014201682A1 (en) Method for coexistence of software with different security levels in a multicore processor system
EP3364257A1 (en) Method for operating an engineering system for an industrial process automation system and control program
DE102015119202A1 (en) Interface unit for forwarding prioritized input data to a processor
DE102019215295A1 (en) Data structure, storage means and device
DE102013016114B3 (en) Bus system and method for protected memory accesses
DE2837241C2 (en) Device for securing data against unauthorized access
EP3475819B1 (en) Method for automatically and dynamically assigning the responsibility for tasks to the available computing components in a highly distributed data-processing system
DE60026847T2 (en) PROCESS TO ASSIGN AN IDENTITY TO AN OBJECT IN A DATABASE
DE102017220068A1 (en) Method and on-board control unit for controlling and / or monitoring components of a rail vehicle
DE102012007321A1 (en) Method for operating a diagnostic system and diagnostic system
DE102020113758A1 (en) COMPARISON OF ELECTRONIC CONTROL UNITS
WO2020078835A1 (en) Control unit for controlling an information system
DE102018123563A1 (en) Method for inter-core communication in a multi-core processor
DE102017007022A1 (en) Programmable control device
DE102007050642A1 (en) Electronic network
DE102020214362A1 (en) Method for managing data from a variety of entities and apparatus for data processing
DE102016216821A1 (en) Method and device for operating an internal combustion engine
WO2024046731A1 (en) Method for the computer-supported restricting of persistent memory for a container-based application
DE102021108263A1 (en) Procedure for configuring an access control system
DE102021210547A1 (en) Control unit for vehicles with better memory utilization
WO2020182544A1 (en) Data structure for an embedded system, corresponding system, and vehicle
DE102022208322A1 (en) Method for authenticating a message from a computing unit, computing unit, computer program and vehicle