Search

US-12625618-B2 - Data processing system for efficient communication of large quantities of data

US12625618B2US 12625618 B2US12625618 B2US 12625618B2US-12625618-B2

Abstract

A data processing system for processing data. The data processing system includes a data processing device having at least one processor and at least one main memory. At least one operating system and data processing modules for performing data processing tasks are operated on the data processing device. The operating system manages the data processing modules and in each case provides an interface, via which communication of the data processing modules via the operating system is possible. On the main memory, an exchange memory is provided to which direct access by at least two of the data processing modules is made possible so that these data processing modules can communicate with each other without the involvement of the operating system. The exchange memory provides, for each of these data processing modules, at least one exclusive zone in which the respective data processing module has exclusive write permissions.

Inventors

  • Andreas Pinkert
  • Arnaud Riess
  • Karsten Muehlmann
  • Martin Hintz
  • Tilman Sinning

Assignees

  • ROBERT BOSCH GMBH

Dates

Publication Date
20260512
Application Date
20230322
Priority Date
20220506

Claims (12)

  1. 1 . A data processing system for processing data, comprising: a data processing device having at least one processor and at least one main memory, wherein at least one operating system and a plurality of data processing modules configured to perform data processing tasks are operated on the data processing device, wherein the operating system is configured to manage the data processing modules and in each case provide an interface, via which communication of the data processing modules via the operating system is made possible, wherein the data processing device further provides, on the main memory, an exchange memory to which direct access by at least two of the data processing modules is made possible so that the at least two data processing modules can communicate with each other without involvement of the operating system, wherein the exchange memory includes, for each respective data processing module of the at least two data processing modules, at least one exclusive zone in which the respective data processing module has exclusive write permissions in order to be able to communicate messages to other ones of the data processing modules without potential write access collisions.
  2. 2 . The data processing system according to claim 1 , wherein the exchange memory includes a processing data area for providing output data and a control data area for providing control data, wherein the exclusive zones each include portions of the control data area.
  3. 3 . The data processing system according to claim 2 , wherein at least one of the data processing modules is configured to provide, in the exchange memory, output data that are taken by a plurality of further data processing modules as input data from the exchange memory.
  4. 4 . The data processing system according to claim 3 , wherein output data from the plurality of further data processing modules are further processed as input data directly from the processing data area, and no copy of the output data is made.
  5. 5 . The data processing system according to claim 3 , wherein at least one data processing module is configured to provide output data in the processing data area and pointers to the output data as control data in the control data area, wherein the pointers can be used by further data processing modules to access the output data.
  6. 6 . The data processing system according to claim 5 , wherein pointers to the output data are provided by a data processing module in an exclusive zone assigned to it.
  7. 7 . The data processing system according to claim 1 , wherein each of the at least two data processing modules are configured to store status messages in its respective exclusive zone.
  8. 8 . The data processing system according to claim 7 , wherein data processing modules configured to receive output data of other data processing modules are also configured to deliver a status message, which confirms receipt of the output data, in an exclusive zone respectively assigned to them, when receipt of output data has been completed.
  9. 9 . The data processing system according to claim 1 , wherein the exchange memory with the exclusive zones on the data processing device is provided by the operating system.
  10. 10 . The data processing system according to claim 1 , wherein at least one data processing module is configured to monitor exclusive zones of other data processing modules in order to receive status messages of the other data processing modules.
  11. 11 . The data processing system according to claim 1 , wherein the data processing system is configured to perform data processing tasks for operating a motor vehicle.
  12. 12 . The data processing system according to claim 1 , wherein the data processing system is configured to perform data processing tasks for processing environmental data of a motor vehicle.

Description

FIELD The present invention disclosed herein relates to a data processing system for efficiently processing large quantities of data. The data processing system is in particular a data processing system for the processing of data in a motor vehicle, wherein the data processing is in particular used for functions of highly automated and, in some cases, even autonomous driving. BACKGROUND INFORMATION In data processing for highly automated or autonomous driving, there is regularly the special feature that extremely large quantities of data must be processed, which are, for example, produced 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. The processing of such data streams typically takes place through a cascade of filters. Viewed purely from the standpoint of data storage, the quantity of data originating from the data source (e.g., a camera) is reduced more and more from filter to filter until, in the end, the information significant for the highly automated driving function, for instance, is synthesized from the data. An example could be a traffic sign recognition function that, based on camera data, recognizes traffic signs that are in the visual range of the vehicle and that are to be taken into consideration while driving. For example, a filter may recognize color values in the camera images. A further filter finds edges. Further filters recognize objects in the camera images and still further filters match objects, for example in databases of known traffic signs. Such filters are regularly implemented as standalone programs, which, for example, may also be referred to as data processing modules and which are operated “side-by-side” on hardware managed by an operating system. Typically, the individual data processing modules are controlled via interfaces between the programs and the operating system. Via such interfaces, monitoring parameters are also regularly communicated by the data processing modules, etc. However, such interfaces to the operating system often do not have sufficient performance to transmit the data to be processed from one data processing module to another data processing module. This is in particular true for large quantities of data, which represent output data of a data processing module, are provided to another data processing module for further processing, and which are further processed as input data by this other data processing module. The reduced performance of such interfaces to the operating system is regularly at least partly caused by the fact that the operating system forms a level of abstraction between the underlying hardware and the data processing modules, which results in performance losses. This may be caused, for example, by the fact that data are copied during the transmission via such interfaces. Furthermore, updates (in particular updates to the operating system) may also result in changes to such interfaces that unexpectedly impair performance. This is in particular unacceptable if the performance of the data transmission from one data processing module to another data processing module is a critical parameter for the functioning of the data processing system as a whole. In order to improve performance, in light of this, it is possible to allow the operating system to assign multiple data processing modules a common memory area on which the data processing modules can communicate directly with one other (i.e., by bypassing the operating system) and can exchange data. Such an exchange memory is preferably provided by the operating system, and the operating system may not monitor/control, or may only monitor/control to a limited extent, which data processing modules access this memory. Such an exchange memory breaches the principle of isolation of individual programs (data processing modules) from one other. This principle is commonly implemented when operating programs on an operating system and is used for security, in particular when there may be incompatibilities between the individual programs (data processing modules). In the applications discussed here for highly automated driving of motor vehicles, this principle is somewhat less relevant than in desktop PCs, for example, because the individual data processing modules are preferably at least partially designed and tested directly and exclusively to work together directly in the overall system. The need to protect the programs from one another, such as is necessary on a desktop PC on which software from very different manufacturers is run, is not regularly required to the same extent in this application, although the requirements for isolating processes for highly automated driving will in the future become more similar to the requirements for other data processing devices, such as desktop PCs. Indeed, as soon as the software used becomes more sophisticated, the principles