Data processing system for efficient communication of large data volumes
By providing switching memory and dedicated areas in the data processing equipment, the problems of insufficient interface performance and data conflict in the data processing system are solved, efficient communication between data processing modules and system stability are achieved, and highly automated driving data processing is ensured. efficient operation.
Patent Information
- Application Number
- CN202380038733.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-05-06
- Filing Date
- 2023-03-22
- Publication Date
- 2024-12-20
AI Technical Summary
In highly automated or autonomous driving data processing systems, the prior art has low data transmission efficiency due to insufficient interface performance between the operating system and the data processing module, especially when processing large data volumes, and there are data conflicts and Isolation protection problems affect system stability and performance.
By providing exchange memory in the data processing device, data processing modules are allowed to communicate directly with each other, bypass the operating system, and allocate dedicated areas to each module to avoid write conflicts, and to monitor and protect these areas through the operating system to ensure security and high performance.
It realizes efficient communication between data processing modules, avoids data replication and performance losses, improves the stability and security of the system, and ensures efficient operation and low conflict risk when processing large data volumes.
Smart Images

Figure CN119173857A_ABST
Abstract
Description
Technical Field
[0001] 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, wherein such data processing is used in particular for highly automated and possibly even autonomous driving functions. Background Art
[0002] In data processing for highly automated or autonomous driving, it is often the case that extremely large amounts of data must be processed, which are generated, for example, by environmental sensors such as cameras. Cameras as environmental sensors are a typical source for very large data streams that can be used for highly automated driving functions.
[0003] Such data streams are usually processed by cascading filters. From a purely data retention point of view, the amount of data from a data source (such as a camera) decreases from filter to filter until finally information that is important, for example, for highly automated driving functions, is synthesized from the data. An example could be a function for traffic sign recognition, which is based on camera data that recognizes traffic signs that are in the field of view of the vehicle and are to be taken into account during driving. One filter can recognize, for example, color values in the camera image. Another filter searches for edges. Further filters perform recognition of objects in the camera image and still further filters compare objects, for example, with a database of known traffic signs.
[0004] Such filters are usually implemented as independent programs, which can also be referred to as data processing modules, for example, and which run “simultaneously” on hardware managed by an operating system.
[0005] Usually, the control of the individual data processing modules is carried out via an interface between the program and the operating system. Via such an interface, monitoring parameters are also regularly transmitted by the data processing modules, etc. However, such an interface to the operating system usually does not have sufficient performance for the transmission of the data to be processed from data processing module to data processing module. This applies in particular to large data volumes, which represent output data of a data processing module, are provided to other data processing modules for further processing and are further processed by these other data processing modules as input data.
[0006] The reduced performance of such an interface to the operating system is usually due at least in part to the fact that the operating system forms an abstraction layer between the underlying hardware and the data processing modules, which abstraction layer produces performance losses. This may be due, for example, to the fact that data are copied when being transmitted via such an interface. Furthermore, in such an interface, changes may also occur due to updates, in particular to the operating system, which changes may unexpectedly impair performance. This is intolerable, in particular when the performance of the data transmission from data processing module to data processing module is a critical parameter for the functioning principle of the data processing system as a whole.
[0007] In order to improve performance, in this context, it is possible to allow the operating system to allocate a shared memory area to a plurality of data processing modules, on which the data processing modules can communicate with each other directly (that is, bypassing the operating system) and exchange data. Such an exchange memory is preferably provided by the operating system and the operating system may not perform any monitoring / control or only perform limited monitoring / control of which data processing modules access the memory.
[0008] Such a swap memory breaks the principle of isolating the individual programs (data processing modules) from one another. This principle is usually implemented on the operating system when the programs are running and contributes to safety, especially when incompatibilities of the individual programs (data processing modules) may occur. In the case of the application of highly automated driving operation of a motor vehicle discussed here, this principle is partially less important than, for example, in a desktop computer, because the individual data processing modules are preferably at least partially directly and specially designed and tested for direct cooperation in the overall system. The need for protection of the programs from one another, as is necessary, for example, in a desktop computer, on which software from completely different manufacturers is implemented, is usually not necessary here to the same extent, wherein the requirements for isolating processes for highly automated driving operation will in the future increasingly approach the requirements in other data processing devices, such as, for example, in a desktop computer.
[0009] However, as soon as the software used becomes more demanding, the principle of isolation of the individual programs (data processing modules) comes into focus again. The more different functions are implemented in a vehicle, the more it is likely to be necessary that data processing resources are used in parallel by these different functions. In particular, if ASIL (ASIL = Automotive Safety and Security) data are also processed or generated on the memory, it is usually necessary to apply memory protection mechanisms in order to prevent ASIL data from being overwritten.
[0010] Basically, it can be assumed that the larger the domain controller becomes (that is, the more different functions are implemented), the greater the need for mutual protection becomes. A violation of the mechanisms provided to isolate the individual programs from one another usually results in an unclear memory state, which in most cases accompanies all the different programs / functions implemented thereon due to a complete restart of the corresponding system. During the restart, none of the functions provided by the controller in the restart state will be available. The larger the corresponding controller is (the more functions it provides), the longer the restart duration, the more functions fail during the restart, and the more important it becomes to avoid the need for a possible restart, because the restart then becomes very expensive / slow (starting a fully functional computer, not just a small controller) and none of the functions running there during this time will be available.
[0011] Nevertheless, it is helpful to protect against conflicts when accessing the swap memory - for example, when reading or when writing. This protection can be achieved, for example, by the individual data processing modules managing themselves when accessing the swap memory. To this end, the data processing modules must obtain information about the read and write accesses of other data processing modules and take the other data processing modules into account when accessing based on this information.
[0012] Overall, there are still possibilities for improvement here, and the data processing system described here is intended to provide a novel structure for such a data processing system. Summary of the invention
[0013] Here, a data processing system for processing data is described, which has a data processing device, which has at least one processor and at least one main memory, wherein at least one operating system and multiple data processing modules are run on the data processing device to complete data processing tasks, wherein the operating system is configured to manage the data processing modules and provide operating system interfaces respectively, through which the data processing modules communicate through the operating system, wherein the data processing device further provides a swap memory on the main memory to enable at least two of the data processing modules to directly access the swap memory, so that the data processing modules can communicate with each other without the cooperation of the operating system, wherein the swap memory provides at least one dedicated area (Exklusivzone) for each of the data processing modules, in which the corresponding data processing module has dedicated write permissions, so that messages can be passed to other data processing modules without conflicts in write access.
[0014] The data processing device is such hardware: the described data processing system runs on the hardware. Preferably, the hardware has a plurality of individual processor cores, and there may also be a main memory of such a data processing device, which is composed of a plurality of individual memories. Here, the sum of all elements such as processors, main memories, etc. is also referred to as "system resources". 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 storage 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 inspection functions running in the background.
[0015] Preferably, the operating system is responsible for managing the individual system resources and allocating them to the data processing modules. The operating system is preferably specifically provided for data processing in such a manner that the data processing in the manner is performed with the described data processing system. Preferably, the operating system and the individual data processing modules together form a data processing structure, which can carry out the corresponding data processing tasks with the data processing device. Preferably, the installation of data processing modules other than the data processing modules necessary for the execution of the data processing tasks is not provided. More precisely, the data processing structure is a self-contained system as a whole. For this reason, the provision of the exchange memory can also be carried out in violation of the isolation principle, without thereby damaging the higher-level interests of system security.
[0016] The data processing system is basically suitable for processing very different types of data, with the focus being on the processing of large data volumes using cascaded data processing modules (filters), as discussed above.
[0017] The operating system interface is used to access each data processing module during the operation of the entire system. Accessing the data processing module through the operating system interface can be understood as accessing the data processing module "from the front" or "officially".
[0018] The exchange memory forms a type of background channel for the data processing modules to communicate quickly with one another. The background channel is preferably not provided for accessing data / information provided by the data processing modules from the outside (from the operating system), but rather for exchanging data (storing output data of a data processing module and reading these data as input data by other data processing modules) in the background with particularly high performance.
[0019] The data processing system described here is characterized in that dedicated areas are provided for each data processing module in the exchange memory, in which the corresponding data processing module has dedicated write access. These dedicated areas are preferably provided (allocated) by the operating system, and, particularly preferably, the operating system also monitors that no unauthorized write access to these dedicated areas by other data processing modules occurs. If necessary, only such unauthorized write access is confirmed, and, when such unauthorized write access occurs, error handling is triggered. Such error handling may include, for example, a restart of the data processing system as a reaction. In other cases, active prevention of such unauthorized write access may also be performed. This is especially applicable when the data processing system has a high ASIL classification. Then, it is usually necessary to completely avoid unauthorized write access, and restarting becomes completely unnecessary at the beginning.
[0020] Preferably, the dedicated area can be read by other data processing modules (particularly preferably, by all data processing modules accessing the exchange memory). That is, for these data processing modules, there is a read permission for the dedicated area. The dedicated area enables the data processing module to safely transmit information to other data processing modules that will not be damaged. For this purpose, the dedicated area is monitored by other data processing modules, which should reprocess the information from the corresponding data processing module. This can be done time-controlled (for example, regularly) and / or event-controlled (due to specific messages or specific events).
[0021] By providing the described dedicated area, on the one hand, the positive effect of the described high performance of the swap memory can be fully utilized. On the other hand, data conflicts in the swap memory can be avoided in an efficient manner.
[0022] It is particularly preferred that the exchange memory has a process data area for providing the output data and a control data area for providing the control data, wherein the dedicated areas each comprise a portion of the control data area.
[0023] In a preferred embodiment, the dedicated area may also include a portion of the processing data area. Additional dedicated areas may also be provided in the processing data area. This may be particularly advantageous in order to protect the processing data from being affected by an erroneous reading process.
[0024] Preferably, such data are stored in the processing data area itself: the data are processed by the described data processing system. This includes, for example, image data from a camera, data related to edges found in such image data, etc. Such data are stored in the control data area: the data are used for communication between the data processing modules, such as identification, triggers, status information, etc. Preferably, the processing data area is larger than the control data area (that is, it is designed to store significantly larger data volumes). In some implementation variants, the processing data area and the control data area can also be provided on different hardware (on different hardware storage elements).
[0025] Particularly preferably, at least one data processing module is designed to provide output data in the exchange memory, which output data are retrieved from the exchange memory as input data by a plurality of further data processing modules.
[0026] That is, particularly preferably, a 1:n communication from one data processing module to a plurality of other data processing modules occurs at least at one location in the data processing system. Such a 1:n communication is an important advantage of the use of the exchange memory for communication between data processing modules.
[0027] It is particularly preferred that the output data are further processed by a plurality of further data processing modules as input data directly out of the processed data area and preferably without creating any copies of the output data.
[0028] That is, the output data are read in as input data directly at the location where they are stored in hardware. In particular, no copying of the output data to the input data takes place. Such copying processes are usually part of the communication via the runtime interface and such communication usually binds many resources such as bandwidth and processor core utilization.
[0029] Particularly preferably, at least one data processing module is designed to provide the output data in the processing data area and to provide a pointer to the output data as control data in the control data area, which pointer can be used by another data processing module to access the output data.
[0030] Preferably, an access point to the data stored in the processing data area is provided by the control data area, which access point is implemented as a pointer. Here, the term "pointer" is used as a general term. In particular, a pointer contains an address, with the help of which specific data can be accessed. Pointers can also be multi-level in particular and thus enable efficient access to larger data structures in the processing data area. The term "pointer" can also be understood as a more complex label (labeled access). Pointers can also be defined relatively and, for example, define the spacing of data from each other at the storage location.
[0031] It is particularly preferred that a pointer to the output data is provided by the data processing module in a dedicated area assigned to the data processing module.
[0032] That is, such pointers are preferably not damaged by write accesses from other data processing modules.
[0033] Particularly preferably, the data processing module is configured to store the status messages in a respectively assigned dedicated area.
[0034] Particularly preferably, a data processing module provided for receiving output data of other data processing modules is also provided for issuing a status message in a dedicated area respectively assigned thereto, which status message confirms the receipt of the output data when the receipt of the output data is completed.
[0035] For example, the status message can be used to notify that each data processing task (for example, the reading of specific data) of a specific data processing module ends. By providing the status message in the dedicated area, it can be ensured that other data processing modules can also receive such status messages.
[0036] It is particularly preferred that the swap memory with the dedicated area on the data processing device is provided by the operating system.
[0037] By providing a dedicated area by the operating system, a high level of security can be ensured against corruption of the data exchanged via the swap memory.
[0038] Particularly preferably, at least one data processing module is configured to monitor dedicated areas of other data processing modules in order to receive status messages of other data processing modules.
[0039] Particularly preferably, the data processing system is provided to carry out data processing tasks for the operation of the motor vehicle.
[0040] However, the described data processing system can also be used for completely different tasks, for example for controlling and monitoring production processes.
[0041] Furthermore, the data processing system is preferably provided for carrying out data processing tasks for processing surroundings data of the motor vehicle.
[0042] The data processing system is suitable, in particular, for carrying out data processing tasks for a highly automated, possibly autonomous, driving operation of a motor vehicle. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] The described data processing system and the technical environment are explained in more detail below with reference to the drawing, which shows a preferred embodiment. DETAILED DESCRIPTION
[0044] Figure 1 The described data processing system 1 is shown in a schematic illustration, in which different aspects of the processing of data 2 using such a data processing system 1 are illustrated.
[0045] The data processing of the data 2 by the data processing system 1 is preferably performed by processing the data 2 in succession in a plurality of data processing modules 7. The data 2 are, for example, environmental data 22, which are acquired, for example, in the environment of the motor vehicle 18 by an environmental sensor 21 and processed by the data processing system 1 in order to generate system output data 23, which are used in the motor vehicle 18, for example, in order to ensure autonomous driving operation of the motor vehicle 18. Preferably, each data processing module 7 performs a subtask of data processing in order to generate the desired system output data 23 based on the provided data (for example, environmental data 22). If the environmental data 22 are, for example, camera data of a camera and the data processing system 1 is to ensure, for example, traffic sign recognition, then the system output data 23 are, for example, data 2 about the recognized traffic sign. Then, a specific data processing module 7 performs, for example, feature registration in the camera data. Other data processing modules 7 compare the preprocessed camera data with available map data and / or with a stored information base about traffic signs. The mentioned data processing tasks are given as examples. In practice, a plurality of further data processing tasks are usually necessary in order to finally generate the desired system output data 23. Preferably, the individual data processing tasks are each performed by a data processing module 7, and particularly preferably, a continuous processing of the ever-newly available input data (in this case, camera data) takes place in order to continuously provide system output data 23, so that the desired information (e.g., information about traffic signs detected by the camera) is continuously and with high accuracy available. Each data processing module 7 performs the data processing task for which it is provided, preferably repeatedly, and in doing so generates new output data 12, which are then processed as input data 15 by other data processing modules 7, which perform subsequent data processing tasks.
[0046] The data processing system 1 runs on a data processing device 3, which has at least one processor 4 and at least one main memory 5. The data processing device 3 is schematically shown here as a connection between the processor 4 and the main memory 5, because in the diagram selected here, the components on the functional system level (data processing system 1) and the hardware components (data processing device 3 with processor 4 and main memory 5) are shown together. At least one processor 4 provides such computing power for use, which can be used for a wide variety of processes, and variables, system states and program components that are the basis of the process can be stored in the at least one main memory 5. The representation of the data processing device 3 is greatly simplified and schematic here. The described data processing system 1 preferably includes, in particular, a plurality of processors 4, and with the described data processing system 1, a large number of data processing tasks can preferably be performed in parallel in order to process large amounts of data. A plurality of main memories 5 or a plurality of main memory modules can also be provided.
[0047] An operating system 6 runs on the data processing device 3, and manages system resources of the data processing device 3 (especially the computing performance of at least one processor 4 and the main memory 5), and provides them to the processor 4 running on the data processing device 3 for use.
[0048] The data processing tasks for processing the data 2 are performed by the 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 terminated via the interface 8. The exchange of information between the individual data processing modules 7 is usually carried out via the operating system 6. When a data processing module 7 has completed a data processing task, it can be configured so that it provides output data 12 to other data processing modules 7 via the interface 8 and the operating system 6 for use.
[0049] The communication between the data processing modules 7 via the interface 8 to the operating system 6 or via the operating system 6 is usually relatively slow. In particular, in the communication of data 2 via such an interface 8, it is usually necessary to copy the data 2 in the main memory 5. In the background, when transferring data 2 via such an interface 8, a plurality of hardware accesses usually occur, which do not occur in the case of direct read and / or write access to the memory. In addition, the process during the communication via such an interface 8 is controlled by the operating system 6. When the interfaces 8 provided by the operating system 6 are used for the communication of data 2, especially when large amounts of data are communicated via these interfaces 8, an update of the operating system 6 may lead to a large change in the performance of the data processing system 1.
[0050] In order to ensure a faster communication of data 2 between the data processing modules 7 of the data processing system 1, a swap memory 9 is provided in the main memory 5, through which the individual data processing modules 6 can directly exchange data 2, wherein the operating system 6 and the interface 8 provided by the operating system 6 are bypassed. Here, the illustration of just one swap memory 9 is greatly simplified. In practice, the swap memory 9 can have a complex structure and have a large number of storage areas and zones. In this way, a more efficient exchange of data 2 is achieved, in particular, when changes occur on the operating system 6, for example due to updates, the exchange of data 2 is not affected.
[0051] The exchange memory 9 is preferably assigned to the data processing module 7 by the operating system 6 .
[0052] The exchange memory 9 preferably has two subareas, namely a process data area 11 and a control data area 13. The original data 2 processed by the data processing module 7 are stored as output data 12 in the process data area 11 and are also read in as input data 15 by other data processing modules 7. In the control data area 13, control data 14 are preferably stored, which are used to control the communication between the data processing modules 7. These include, for example, status messages 17, by which the data processing module 7 informs other data processing modules 7 of information, and which can also represent control data 14. For example, the status message 17 can be used to inform that new output data 12 have been generated, and other data processing modules 7 can reprocess the new output data as input data 15. The data processing modules 7 can also be informed by the status message 17, for example, that the reading of the input data 15 by the corresponding data processing module 7 has been completed. Preferably, a pointer 16 to the data 2 stored in the process data area 11 is respectively transmitted as control data 14. The data 2 stored as output data 12 in the processing data area 11 are preferably not copied for use as input data 15 in the data processing module 7, but direct physical access to the same data 2 is performed. The copying process from the output data 12 to the input data 15 always requires copying time, which can be saved by this solution.
[0053] Preferably, dedicated areas 10 are respectively provided inside the exchange memory 9, which are respectively assigned to a data processing module 7 and to which the respectively assigned data processing module 7 has exclusive write access 19. The dedicated area 10 can be arranged in the control data area 13 of the exchange memory 9. However, the dedicated area 10 can also extend through the control data area 13 and the process data area 11, or the dedicated area 10 can be respectively divided into a (own) control data area 13 and a (own) process data area 11. The other data processing modules 7 respectively have only read access 20 to the dedicated area 10. Preferably, the data processing modules 7 respectively monitor the dedicated areas 10 of the other data processing modules 7 with which they communicate in order to complete their data processing tasks in order to receive control data 14 of these data processing modules 7. The data processing module 7 must inform the other data processing modules 7 of its own control data 14, and these data processing modules 7 write the own control data in the dedicated areas 10 assigned to them.
[0054] The structure of the processing data area 11, the control data area 13 and the private area 10 is preferably not predetermined by the operating system 6, but managed by the data processing module 7 itself. However, this structure is protected by the operating system so that any undesired access to the private area 10 is impossible.
[0055] The described design having a dedicated area 10 within a swap memory 9 which is not monitored by the operating system 69 makes it possible to achieve a very high efficiency and speed in data processing in a system having a large number of data processing tasks arranged one above the other, wherein a high level of security against data conflicts is also achieved by the dedicated area 10.
[0056] Reference numerals list
[0057] 1. Data Processing System
[0058] 2 Data
[0059] 3. Data processing equipment
[0060] 4 processors
[0061] 5 Main Memory
[0062] 6. Run the system
[0063] 7Data processing module
[0064] 8 interfaces
[0065] 9 Swap Memory
[0066] 10 Dedicated Areas
[0067] 11 Processing Data Area
[0068] 12 Output data
[0069] 13 Control Data Area
[0070] 14 Control Data
[0071] 15 Input Data
[0072] 16 Visits by Instruction
[0073] 17 Status Messages
[0074] 18 Motor Vehicles
[0075] 19 Write access
[0076] 20 Read access
[0077] 21 Environmental Sensors
[0078] 22 Environmental data
[0079] 23 System output data
Claims
1. A data processing system (1) for processing data (2), comprising a data processing device (3) having at least one processor (4) and at least one main memory (5), in, At least one operating system (6) and a plurality of data processing modules (7) are operated on the data processing device (3) to complete data processing tasks, wherein the operating system (6) is configured to manage the data processing modules (7) and respectively provide interfaces (8) through which the data processing modules (7) communicate with each other through the operating system (6), wherein the data processing device (3) further provides a swap memory (9) on the main memory (5) to enable at least two of the data processing modules (7) to directly access the swap memory, so that the data processing modules (7) can communicate with each other without the cooperation of the operating system (6), wherein the swap memory (9) provides at least one dedicated area (10) for each of the data processing modules (7), in which the corresponding data processing module (7) has a dedicated write permission so that messages can be passed to other data processing modules in the data processing modules (7) without causing a write access conflict.
2. The data processing system (1) according to claim 1, in, The exchange memory (9) has a process data area (11) for providing output data (12) and a control data area (13) for providing control data (14), wherein the dedicated areas (10) each include a portion of the control data area (13).
3. The data processing system (1) according to claim 2, in, At least one data processing module (7) is configured to provide output data (12) in the exchange memory (9), which output data are retrieved from the exchange memory (9) as input data (15) by a plurality of further data processing modules (7).
4. The data processing system (1) according to claim 3, in, The output data (12) are reprocessed by the plurality of further data processing modules (7) as input data (15) directly from the processed data area (11), and preferably without creating any copies of the output data (12).
5. The data processing system (1) according to claim 3 or 4, in, At least one data processing module (7) is configured to provide output data (12) in the processing data area (11) and to provide a pointer (16) pointing to the output data (12) as control data (14) in the control data area (13), wherein the pointer can be used by another data processing module (7) in order to access the output data (12).
6. The data processing system (1) according to claim 5, in, A pointer (16) to the output data (12) is provided by the data processing module (7) in a dedicated area (10) assigned to the data processing module.
7. The data processing system (1) according to any one of the preceding claims, in, The data processing modules (7) are configured to store status messages (17) in respectively associated dedicated areas (10).
8. The data processing system (1) according to claim 7, in, A data processing module configured to receive output data (12) from another data processing module (7) is further configured to send a status message (17) in a dedicated area (10) respectively assigned to the data processing module, the status message confirming the receipt of the output data (12) when the receipt of the output data is completed.
9. The data processing system (1) according to any one of the preceding claims, in, A swap memory (9) having a dedicated area (10) is provided on the data processing device (3) by the operating system (6).
10. The data processing system (1) according to any one of the preceding claims, in, At least one data processing module (7) is provided for monitoring a dedicated area (10) of another data processing module (7) in order to receive a status message (17) of the other data processing module (7). 11 . The data processing system ( 1 ) as claimed in claim 1 , which is configured to carry out data processing tasks for the operation of a motor vehicle ( 18 ). 12 . The data processing system ( 1 ) as claimed in claim 1 , which is configured to carry out data processing tasks in order to process environmental data ( 22 ) of a motor vehicle ( 18 ).
