Data processing system for efficient communication of large quantities of data

EP4519768A1Pending Publication Date: 2025-03-12ROBERT BOSCH GMBH
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
EP2023713872
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-05-06
Filing Date
2023-03-22
Publication Date
2025-03-12

AI Technical Summary

Technical Problem

Current data processing systems for highly automated and autonomous driving face performance bottlenecks due to insufficient operating system interfaces for data transfer between modules, leading to reduced efficiency and potential security risks from unauthorized access in shared memory, especially when handling large data streams from environmental sensors.

Method used

A data processing system with an exchange memory allowing direct communication between data processing modules without operating system involvement, featuring exclusive zones for secure and high-performance data exchange, where each module has exclusive write access to prevent data collisions and ensure secure information transmission.

Benefits of technology

This approach enhances data processing efficiency by eliminating the need for data copying and reduces the risk of performance degradation from operating system updates, while maintaining system security through self-management of data access, ensuring reliable and rapid communication between modules.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 1.1
    Figure 1.1
Patent Text Reader

Abstract

The invention relates to a data processing system (1) for processing data (2), having a data processing installation (3) with at least one processor (4) and at least one main memory (5), wherein at least one operating system (6) and a number of data processing modules (7) for completing data processing tasks are operated on the data processing installation (3), wherein: the operating system (6) is designed to manage the data processing modules (7) and to provide, in each case, an interface (8) via which communication by the data processing modules (7) over the operating system (6) is enabled; the data processing installation (3) further provides, on the main memory (5), an exchange memory (9) on which direct access of at least two of the data processing modules (7) is enabled such that said data processing modules (7) can communicate with one another without the involvement of the operating system (6); and the exchange memory (9) provides, for each of these data processing modules (7), at least one exclusive zone (10) in which the respective data processing module (7) has exclusive write permissions in order to be able to communicate messages to the other data processing modules (7) without potential write access collisions.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Description

[0002] title

[0003] Data processing system for the efficient communication of large amounts of data.

[0004] State of the art

[0005] The invention described here relates to a data processing system for efficiently processing large amounts of data. The data processing system is, in particular, a data processing system for processing data in a motor vehicle, with this data processing being used in particular for functions of highly automated and possibly even autonomous driving.

[0006] A special feature of data processing for highly automated or autonomous driving is that extremely large amounts of data must be processed, for example, those generated by environmental sensors such as cameras. Cameras as environmental sensors are a typical source of very large data streams that can be used for highly automated driving functions.

[0007] Such data streams are typically processed through a cascade of filters. From a purely data storage perspective, the amount of data, starting from the data source (e.g., a camera), is reduced from filter to filter until, ultimately, significant information is synthesized from the data, for example, for highly automated driving functions. An example could be a traffic sign recognition function that, based on camera data, identifies traffic signs within the vehicle's field of vision that need to be taken into account during ferry operations. One filter can, for example, detect color values ​​in the camera images. Another filter finds edges. Further filters detect objects in the camera images, and yet further filters compare objects, for example, in databases of known traffic signs.

[0008] Such filters are usually implemented as standalone programs, which can also be referred to as data processing modules, and which run "side by side" on hardware managed by an operating system.

[0009] Typically, the individual data processing modules are controlled via program interfaces to the operating system. Monitoring parameters are also regularly communicated between the data processing modules, etc., via such interfaces. However, such interfaces to the operating system often lack sufficient performance for transferring the data to be processed from one data processing module to another. This is especially true for large amounts of data that represent the output data of one data processing module, are made available to another data processing module for further processing, and are then further processed by this other data processing module as input data.

[0010] The reduced performance of such interfaces to the operating system is usually due, at least in part, to the fact that the operating system creates an abstraction layer between the underlying hardware and the data processing modules, which results in performance degradation. This can be caused, for example, by data being copied during transmission via such interfaces. Furthermore, updates (particularly operating system updates) can also result in changes to such interfaces that unexpectedly impair performance. This is particularly unacceptable if the performance of data transmission from one data processing module to another is a critical parameter for the functioning of the data processing system as a whole.

[0011] To improve performance, it is possible to have the operating system assign a shared memory area to several data processing modules, where the data processing modules can communicate with each other directly (i.e., bypassing the operating system) and exchange data. Such shared memory is preferably provided by the operating system, and the operating system may exercise little or only limited monitoring / control over which data processing modules access this memory.

[0012] Such exchange memory breaks the principle of isolating individual programs (data processing modules) from one another. This principle is usually implemented when programs run on an operating system and serves the purpose of security, particularly when incompatibilities between individual programs (data processing modules) can arise. In the use cases discussed here, involving highly automated ferry operation of motor vehicles, this principle is sometimes less relevant than, for example, in desktop PCs, because the individual data processing modules are preferably designed and tested, at least in part, directly and exclusively for direct interaction within the overall system. The need to protect programs from one another, as is the case, for example,The isolation required for highly automated ferry operations, which is necessary for a desktop PC running software from a variety of manufacturers, is generally not required to the same extent here, although the requirements for process isolation in highly automated ferry operations will in future be more similar to the requirements for other data processing systems, such as desktop PCs.

[0013] However, as the software used becomes more sophisticated, the principles of isolating individual programs (data processing modules) become more important again. The more different functions are implemented in a vehicle, the more it becomes necessary for data processing resources to be used in parallel by these different functions. Especially when ASIL data (ASIL = Automotive Safety and Security) is also processed or generated on a memory, it is often necessary to apply memory protection mechanisms to prevent the ASIL data from being overwritten.

[0014] In principle, it can be assumed that the larger the domain controllers become (i.e. the more different functions they perform), the greater the need for mutual protection. A breach of the intended mechanisms for isolating individual programs from one another usually creates an unclear memory state, which is usually accompanied by a complete reboot of the respective system with all the different programs / functions implemented on it. During a reboot, none of the functions provided by the controller currently in the reboot process are available. The larger the controller (the more functions it provides), the longer the reboot takes, the more functions fail during the reboot, and the more important it becomes toto avoid the need for a reboot, because a restart would then be very expensive / slow (you are booting a full-fledged computer, not just a small controller) and none of the functions running there would be available during that time.

[0015] Nevertheless, collision protection when accessing shared memory—for example, during read and write access—is helpful. This protection can be achieved, for example, by allowing individual data processing modules to manage their own access to the shared memory. To achieve this, the data processing modules must receive information about read and write accesses by other data processing modules and use this information to consider other data processing modules when accessing them.

[0016] Overall, there is still potential for improvement and the data processing system described here is intended to propose a novel structure for such data processing systems.

[0017] Disclosure of the invention

[0018] This describes a data processing system for processing data, comprising a data processing system with at least one processor and at least one main memory, wherein at least one operating system and a plurality of data processing modules for performing data processing tasks are operated on the data processing system, wherein the operating system is configured to manage the data processing modules and to provide an operating system interface in each case, via which communication of the data processing modules via the operating system is enabled, wherein the data processing system further provides an exchange memory on the main memory, to which direct access is enabled by at least two of the data processing modules, so that these data processing modules can communicate with each other without the assistance of the operating system,wherein the exchange memory provides at least one exclusive zone for each of these data processing modules, in which the respective data processing module has exclusive write rights in order to be able to communicate messages to other data processing modules without a collision of write accesses occurring.

[0019] The data processing system is the hardware on which the described data processing system is operated. This hardware preferably has a plurality of individual processor cores, and the main memory of such a data processing system may also consist of a plurality of individual memories. The totality of all elements, such as processors, main memory, etc., is also referred to here as "system resources." The individual processors and processor cores can be optimized for different tasks. The same applies to the main memory, which does not have to have a monolithic structure but can have different memory types for different tasks. If necessary, individual processors or processor cores and / or memories or memory areas can also be reserved for specific data processing tasks and / or for the operation of specific data processing modules.If necessary, system resources can also be used for testing functions running in the background.

[0020] The operating system is preferably responsible for managing and allocating the individual system resources to the data processing modules. The operating system is preferably specifically configured for the type of data processing performed with the described data processing system. The operating system and the individual data processing modules together preferably form a data processing structure that enables the respective data processing task to be fulfilled with the data processing system. The installation of data processing modules other than those required to fulfill the data processing tasks is preferably not provided for. Rather, the data processing structure as a whole is a self-contained system. For this reason, the provision of exchange memory can also be carried out in violation of the isolation principle without compromising overriding system security interests.

[0021] The data processing system is fundamentally suitable for processing a wide variety of data types, with a focus on the processing of large amounts of data with a cascade of data processing modules (filters) as mentioned above.

[0022] The operating system interfaces are used to access the individual data processing modules during operation of the overall system. Access to the data processing modules via the operating system interfaces can be understood, for example, as "front-end" access or as "official" access to the data processing modules.

[0023] The exchange memory forms a kind of background channel for fast communication between the data processing modules. This background channel is preferably not intended for external access (from the operating system) to the data / information provided by the data processing modules. Instead, it is used for a particularly high-performance data exchange in the background (storing output data from data processing modules and reading this data as input data by other data processing modules).

[0024] The special feature of the data processing system described here is that exclusive zones are provided in the exchange memory for individual data processing modules, in which the respective data processing modules have exclusive write access. These exclusive zones are preferably provided (assigned) by the operating system, and particularly preferably, the operating system also monitors that no unauthorized write accesses to these exclusive zones occur from other data processing modules. If necessary, such unauthorized write accesses are only detected, and error handling is initiated if such unauthorized write access occurs. Such error handling can, for example, include a restart of the data processing system as a reaction. In other cases, such unauthorized write accesses can also be actively prevented.This is especially true if the data processing system has a high ASIL rating. In this case, it is often necessary to completely prevent unauthorized write access and prevent reboots from being necessary in the first place.

[0025] The exclusive zones can be read preferentially by other data processing modules that have access to the exchange memory (particularly preferably by all data processing modules that have access to the exchange memory). These data processing modules therefore have read rights for the exclusive zones. The exclusive zones enable data processing modules to securely transmit information to other data processing modules that cannot be compromised. For this purpose, the exclusive zones are monitored by the other data processing modules that are intended to further process information from the respective data processing module. This can be time-controlled (e.g., regularly) and / or event-controlled (following a specific message or event).

[0026] By setting up the exclusive zones described above, the positive effects of high performance of the exchange memory can be fully utilized. At the same time, data collisions in the exchange memory can be efficiently avoided.

[0027] It is particularly preferred if the exchange memory has a processing data area for providing output data and a control data area for providing control data, wherein the exclusive zones each comprise parts of the control data area.

[0028] In preferred embodiments, exclusive zones can also comprise parts of the processing data area. Additional exclusive zones can also be provided in the processing data area. This can be particularly advantageous for protecting processing data from faulty read processes.

[0029] The processing data area preferably stores the data itself that is processed with the described data processing system. This includes, for example, image data from cameras, data relating to edges detected in such image data, etc. The control data area stores data that is used for communication between the data processing modules, such as flags, triggers, status messages, and so on. The processing data area is preferably larger (i.e., configured for storing a significantly larger amount of data) than the control data area. In variant designs, the processing data area and the control data area can also be provided on different hardware (on different hardware memory elements).

[0030] It is particularly preferred if at least one data processing module is configured to provide output data in the exchange memory, which is taken from the exchange memory as input data by a plurality of further data processing modules

[0031] Particularly preferably, 1:n communication from one data processing module to a plurality of other data processing modules takes place at least at one point in the data processing system. Such 1:n communication is a key advantage of using the exchange memory for communication between data processing modules.

[0032] It is particularly preferred if output data from the plurality of further data processing modules are further processed as input data directly from the processing data area and preferably no copy of the output data is created.

[0033] The output data is therefore read as input data directly from where it was stored in the hardware. In particular, no copying of output data to input data occurs. Such copying processes are regularly part of communication that takes place via operating system interfaces, and such communication typically requires a lot of resources, such as bandwidth and processor core utilization.

[0034] It is particularly preferred if at least one data processing module is configured to provide output data in the processing data area and pointers to the output data in the control data area as control data, which pointers can be used by further data processing modules to access the output data.

[0035] Preferably, access points to the data stored in the processing data area are provided via the control data area, which are implemented as pointers. The term "pointer" is used here as a generic term. A pointer contains, in particular, an address at which specific data can be accessed. Pointers can also be multi-level, thus enabling efficient access to larger data structures in the processing data area. More complex indices (indexed accesses) can also be understood under the term "pointer." Pointers can also be defined relatively and, for example, define distances between data at a storage location.

[0036] It is particularly preferred if pointers to the output data are provided by a data processing module in an exclusive zone assigned to it.

[0037] Such pointers can therefore preferably not be compromised by write accesses from other data processing modules.

[0038] It is particularly preferred if data processing modules are configured to store status messages in the respective assigned exclusive zone.

[0039] It is particularly preferred if data processing modules which are configured to receive output data from other data processing modules are further configured to issue a status message in the exclusive zone assigned to them in each case, which status message acknowledges receipt of the output data when the reception of output data is completed.

[0040] Status messages can be used, for example, to communicate that individual data processing tasks from specific data processing modules (e.g., reading specific data) have been completed. By providing status messages in exclusive zones, it can be ensured that such status messages can also be received by other data processing modules. It is particularly preferred if the exchange memory with the exclusive zones on the data processing system is provided by the operating system.

[0041] By providing exclusive zones through the operating system, a high level of security can be ensured against the compromise of data exchanged via the exchange memory

[0042] It is particularly preferred if at least one data processing module is configured to monitor exclusive zones of other data processing modules in order to receive status messages from the other data processing modules.

[0043] It is particularly preferred if a data processing system is set up to carry out data processing tasks for the operation of a motor vehicle.

[0044] However, the data processing systems described can also be used for completely different tasks, for example for controlling and monitoring production processes.

[0045] It is also preferred if the data processing system is set up to carry out data processing tasks for processing environmental data of a motor vehicle.

[0046] The data processing system is particularly suitable for carrying out data processing tasks for a highly automated, possibly autonomous, ferry operation of a motor vehicle.

[0047] The described data processing system and its technical environment are explained in more detail below with reference to the figure. The figure shows a preferred embodiment.

[0048] Fig. 1 shows a described data processing system 1 in a schematic representation in which various aspects of the processing of data 2 with such a data processing system 1 are illustrated. The data processing of data 2 with the data processing system 1 is preferably carried out by sequential processing of the data 2 in a plurality of data processing modules 7. The data 2 is, for example, environmental data 22, which was acquired, for example, in the environment of a motor vehicle 18 using environmental sensors 21 and which is processed with the data processing system 1 in order to generate system output data 23, which is used in the motor vehicle 18, for example to ensure autonomous ferry operation of the motor vehicle 18. Each data processing module 7 preferably fulfills subtasks of a data processing in order to, based on the data provided (e.g.the environment data 22) to generate the desired system output data 23. If the environment data 22 is, for example, camera data from a camera and the data processing system 1 is intended to ensure traffic sign recognition, for example, then the system output data 23 is, for example, data 2 about the recognized traffic signs. Certain data processing modules 7 then carry out, for example, feature registration in the camera data. Other data processing modules 7 compare prepared camera data with available map data and / or a database containing stored information about traffic signs. The data processing tasks mentioned are given as examples. In practice, many additional data processing tasks are usually required to ultimately generate the desired system output data 23.Preferably, the individual data processing tasks are each executed by a data processing module 7, and particularly preferably, a continuous processing of ever-new available input data (in this case, camera data) is carried out in order to permanently provide system output data 23, so that the desired information (e.g., the information concerning traffic signs captured by the cameras) is permanently available and highly up-to-date. Each data processing module 7 therefore preferably repeatedly executes the data processing task for which it is configured, thereby generating new output data 12, which are then processed as input data 15 by other data processing modules 7 that execute subsequent data processing tasks.

[0049] The data processing system 1 is operated on a data processing system 3, which has at least one processor 4 and at least one main memory 5. The data processing system 3 is shown schematically here as a connection between the processor 4 and the main memory 5, because in the representation chosen here, components at the functional system level (the data processing system 1) and hardware components (the data processing system 3 with the processor 4 and the main memory 5) are shown together. The at least one processor 4 provides computing capacity that can be used for a wide variety of processes, and the variables, system states, and program components underlying the processes can be stored in the at least one main memory 5. The representation of the data processing system 3 is highly simplified and schematic here.The described data processing system 1 preferably comprises, in particular, a plurality of processors 4, and extensive data processing tasks for processing large amounts of data can be performed, preferably in parallel, using the described data processing system 1. Multiple main memories or multiple main memory modules can also be provided.

[0050] An operating system 6 is operated on the data processing system 3, which manages the system resources of the data processing system 3 (in particular the computing power of the at least one processor 4 and the main memory 5) and makes them available to the processor 4 operated on the data processing system 3.

[0051] The data processing tasks for processing data 2 are performed by data processing modules 7. The operation of the data processing modules 7 is controlled by the operating system 6. Each data processing module 7 has an interface 8 to the operating system 6. The data processing module 7 can be started, controlled, and, if necessary, also stopped via the interface 8. An exchange of information between individual data processing modules 7 usually takes place via the operating system 6. Once a data processing module 7 has completed a data processing task, it can be configured to make output data 12 available to other data processing modules 7 via the interface 8 and the operating system 6.

[0052] Communication between data processing modules 7 via interfaces 8 to the operating system 6 or via the operating system 6 is usually relatively slow. In particular, when communicating data 2 via such interfaces 8, it is regularly necessary for the data 2 to be copied into the main memory 5. When transferring data 2 via such interfaces 8, a number of hardware accesses usually take place in the background that do not occur with direct read and / or write access to a memory. Furthermore, the processes during communication via such interfaces 8 are controlled by the operating system 6. Updates to the operating system 6 can lead to a major change in the performance of the data processing system 1 if interfaces 8 provided by the operating system 6 are used for communicating data 2, in particular if large amounts of data are communicated via these interfaces 8.

[0053] To ensure faster communication of data 2 between data processing modules 7 of the data processing system 1, an exchange memory 9 is provided in the main memory 5, via which the individual data processing modules 7 can exchange data 2 directly, bypassing the operating system 6 and interfaces 8 provided by the operating system 6. The representation of exactly one exchange memory 9 is greatly simplified here. In fact, the exchange memory 9 can have a complex structure and comprise a multitude of memory areas and zones. In this way, a more efficient exchange of data 2 is possible, which, above all, is not affected by changes to the operating system 6, for example, due to updates.

[0054] The exchange memory 9 is preferably assigned to the data processing modules 7 by the operating system 6.

[0055] The exchange memory 9 preferably has two sub-areas, namely a processing data area 11 and a control data area 13. In the processing data area 11, the actual data 2 processed by the data processing modules 7 is stored as output data 12 and is also read in by other data processing modules 7 as input data 15. Control data 14, which is used to control communication between the data processing modules 7, is preferably stored in the control data area 13. This includes, for example, status messages 17, with which data processing modules 7 communicate information to other data processing modules 7 and which can also represent control data 14. Status messages 17 can be used to communicate, for example, that new output data 12 has been generated, which other data processing modules 7 can further process as input data 15. Status messages 17 can be used by data processing modules 7, for example.It should also be communicated that the reading of input data 15 by the respective data processing module 7 has been completed. Preferably, pointers 16 to the data 2 stored in the processing data area 11 are transmitted as control data 14. The data 2 stored in the processing data area 11 as output data 12 are preferably not copied for use as input data 15 in other data processing modules 7, but rather, direct access is made to the physically identical data 2. Copying operations from output data 12 to input data 15 always require copying time, which can be saved by this approach.

[0056] Within the exchange memory 9, exclusive zones 10 are preferably set up, each of which is assigned to a data processing module 7 and to which the respectively assigned data processing module 7 has exclusive write access 19. The exclusive zones 10 can be arranged in the control data area 13 of the exchange memory 9. However, the exclusive zones 10 can also extend over the control data area 13 and the processing data area 11, or the exclusive zones 10 can each be divided into a (separate) control data area 13 and a (separate) processing data area 11. Other data processing modules 7 each have only read access 20 to this exclusive zone 10. Data processing modules 7 preferably each monitor exclusive zones 10 of other data processing modules 7, with which they communicate to complete their data processing tasks in order to receive control data 14 from these data processing modules 7.Own control data 14, which data processing modules 7 must communicate to other data processing modules 7, are written by these data processing modules 7 into the exclusive zone 10 assigned to them.

[0057] The structure of the processing data area 11, the control data area 13, and the exclusive zones 10 is preferably not specified by the operating system 6, but rather is managed by the data processing modules 7 themselves. However, this structure is secured by the operating system so that no unwanted access to exclusive zones 10 is possible. The described concept with the exclusive zones 10 within the exchange memory 9, which is not monitored by the operating system 6, enables very high efficiency and speed of data processing in a system with a multitude of successive data processing tasks, whereby the exclusive zones 10 also achieve a high level of security against data collisions.

[0058] List of reference symbols

[0059] data processing system

[0060] Data

[0061] data processing system

[0062] processor

[0063] Main memory

[0064] Operating system

[0065] Data processing module

[0066] interface

[0067] Exchange memory

[0068] Exclusive zone

[0069] Processing data area

[0070] Output data

[0071] Tax data area

[0072] Tax data

[0073] Input data

[0074] Indexed access

[0075] Status messages

[0076] Motor vehicle

[0077] Write access

[0078] Read access

[0079] Environment sensor

[0080] Environmental data

[0081] System output data

Claims

Claims: Data processing system (1) for processing data (2) comprising a data processing system (3) with at least one processor (4) and at least one main memory (5), wherein at least one operating system (6) and a plurality of data processing modules (7) are operated on the data processing system (3) for performing data processing tasks, wherein the operating system (6) is configured to manage the data processing modules (7) and to provide an interface (8) for each, through which communication between the data processing modules (7) via the operating system (6) is enabled, wherein the data processing system (3) further provides an exchange memory (9) on the main memory (5), on which direct access by at least two of the data processing modules (7) is enabled, so that these data processing modules (7) can communicate with each other without the involvement of the operating system (6).where the exchangeable storage, (9) provides at least one exclusive zone (10) for each of these data processing modules (7) in which the respective data processing module (7) has exclusive write rights to communicate messages to other data processing modules (7) without a collision of write accesses occurring. Data processing system (1) according to claim 1, wherein the exchange memory (9) has a processing data area (11) for providing output data (12) and a control data area (13) for providing control data (14), wherein the exclusive zones (10) each comprise parts of the control data area (13). Data processing system (1) according to claim 2, wherein at least one data processing module (7) is configured to provide output data (12) in the exchange memory (9), which is taken from the exchange memory (9) as input data (15) by a plurality of further data processing modules (7). Data processing system (1) according to claim 3, wherein output data (12) is taken from the exchange memory (9) as input data (15) by a plurality of further data processing modules (7). Input data (15) are processed directly from the processing data area (11), and preferably no copy of the output data (12) is created. Data processing system (1) according to claim 3 or 4, wherein at least one data processing module (7) is configured to provide output data (12) in the processing data area (11) and pointers (16) to the output data (12) as control data (14) in the control data area (13), which can be used by further data processing modules (7) to access the output data (12). Data processing system (1) according to claim 5, wherein pointers (16) to the output data (12) are provided by a data processing module (7) in an exclusive zone (10) assigned to it. Data processing system (1) according to any one of the preceding claims, wherein data processing modules (7) are configured to store status messages (17) in their respective assigned exclusive zone (10).Data processing system (1) according to claim 7, wherein data processing modules (7) configured to receive output data (12) from other data processing modules (7) are further configured to send a status message (17) in their respective assigned exclusive zone (10), acknowledging receipt of the output data (12) when the reception of the output data (12) is complete. Data processing system (1) according to any one of the preceding claims, wherein the exchange memory (9) with the exclusive zones (10) on the data processing system (3) is provided by the operating system (6). Data processing system (1) according to any one of the preceding claims, wherein at least one data processing module (7) is configured to monitor exclusive zones (10) of other data processing modules (7). to receive status messages (17) from the other data processing modules (7). Data processing system (1) according to one of the preceding claims, configured to perform data processing tasks for the operation of a motor vehicle (18). Data processing system (1) according to one of the preceding claims, configured to perform data processing tasks for processing environmental data (22) of a motor vehicle (18).

Citation Information

Patent Citations

  • System of two-way communication between processors using a single queue partitioned with pointers and limited overwrite privileges

    US5418913A