Method and device for repeated transmission of defined data
The method employs three data transmission memories with access reservations to prevent collisions and ensure continuous data updates, addressing inefficiencies in shared memory environments for driver assistance and automated driving systems.
Patent Information
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- ROBERT BOSCH GMBH
- Filing Date
- 2023-08-17
- Publication Date
- 2026-06-05
AI Technical Summary
Existing data exchange methods in driver assistance and automated driving systems face challenges such as data collisions and inefficiencies in shared memory environments, particularly when sending and receiving modules access shared memory without control, leading to blocking and reduced computing power.
A method using three data transmission memories with separate access reservations for the sender and receiver, along with a pointer memory, to ensure continuous and collision-free data transmission between modules.
Ensures timely and efficient data exchange by preventing collisions and maintaining continuous data updates, enhancing the speed and reliability of data transmission in shared memory environments.
Smart Images

Figure 00000013_0000 
Figure 00000014_0000
Abstract
Description
Title of the invention: Method and device for repeated transmission of defined data FIELD OF INVENTION
[0001] The present invention relates to a method and device for the repeated transmission of defined data.
[0002] Driver assistance or automated driving systems consist of numerous separate software units that typically exchange data. Preferably, each of the software units, also called "executables" (data processing nodes or components or data processing modules), handles the intended input and output data.
[0003] In the above systems, input data, for example, data from sensors such as radar or video, is processed to obtain more precise data for a highly automated driving function. For example, data concerning traffic signs is extracted from video data in a multi-level processing cascade from the data processing components.
[0004] The various data processing components or processing modules also regularly form a complex data processing network that processes raw data or sensor data to perform actions based on sensor data. Such actions are, for example, control missions within the framework of an autonomous driving mode of a vehicle.
[0005] Efficient methods are required for exchanging data between the various data processing components and data processing modules. Such data exchange typically involves a data-sending module (also called the sender) and a data-receiving module (also called the receiver). This exchange method is subject to various requirements. A common requirement is that the data-sending module must always provide the most up-to-date data possible to the data-receiving module. This is particularly relevant if defined data is regularly exchanged between the data-sending and data-receiving modules. An example is a data-sending module that processes camera data and provides it as defined camera data, and a data-receiving module that then processes this defined data to perform traffic signal detection or a similar function.In such an application, it is not necessarily required that each separate set of defined, supplied data be received by the data-receiving module. It is much more. It is important that the data receiving module receives defined data that is updated as much as possible. For this to happen, the data sending module must provide the defined data continuously and without taking into account data read operations.
[0006] For such an application, a data transmission method is required. Such data transmission methods are often called message queues.
[0007] Another condition is to perform such data transmission processes regularly in a shared memory environment. In shared memory environments, data processing modules typically share memory that they can access without access control by the management system. The management system makes the memory available to the data processing modules and grants them access. However, this management system does not control how the data processing modules access the memory. These environments significantly reduce the computing power required for data exchange between data processing modules. Nevertheless, there is a risk of collisions between accesses because there is no higher-level instance to prevent such collisions.
[0008] Message queues based on shared memory communication in different intermediate software programs have the disadvantage that the sender and receiver can block each other. Furthermore, both must be able to access the shared memory for both reading and writing.
[0009] DESCRIPTION AND ADVANTAGES OF THE INVENTION
[0010] The method and also the device for executing the method describe a message queue that prevents the sender and receiver from blocking. Furthermore, this solution does not use shared read-write memory.
[0011] The invention relates to a method for the repeated transmission of data defined by a data transmitter module to a data receiver module, the execution of the method using three data transmission memories which respectively have a data memory block as well as a first memory bit to record an access reservation of the data transmitter module and a second memory bit to record an access reservation of the receiver module,
[0012] For the execution of the method, there is further a pointer memory which contains a pointer to the current data transmission memory, the method having the following steps consisting of:
[0013] a) perform a data registration process with the following intermediate steps:
[0014] i) determine a data transmission memory in which there is no recorded access reservation, either in the first memory bit or in the second bit from memory;
[0015] ii) reserve the data transmission memory determined in step ai by the data transmitter model by placing an access reservation in the first memory bit of the respective data transmission memory;
[0016] iii) write the defined data into the data memory block of the data transmission memory;
[0017] iv) put a pointer to the data transmission memory used in the pointer memory,
[0018] v) free the data transmission memory by removing the access reservation placed in step a-ii);
[0019] b) perform a data reading process with the following intermediate steps:
[0020] i) determine the data transmission memory to be read with the pointer in the pointer memory;
[0021] ii) reserve the data transmission memory to be read by the data receiver module by placing an access reservation in the second memory bit of the respective data transmission memory;
[0022] iii) read the data defined in the data memory block of the data transmission memory;
[0023] iv) free the data transmission memory by removing the access reservation placed in step bi).
[0024] This method has the particular advantage of having precisely three data transmission memories for 1:1 communication between a data transmitter module and a data receiver module. The modules can be any data processing modules or data processing components—in particular, part of a system for preparing the automated operation of a motor vehicle.
[0025] The described method uses a message queue. A message queue corresponds to an asynchronous communication protocol in which the sender (the data transmitter module) and the receiver (the data receiver module) do not have to interact with the message queue simultaneously. Using the second memory bit to store a read access reservation in a data transmission memory allows the data reader module to reserve data for the read operation. At the same time, the data storage module can use the other of the two data transmission memories to send the current data.
[0026] Step a) and its intermediate steps are performed by the data transmitter module. Step b) and its intermediate steps are performed by the receiver module. of data. The two modules thus access a common memory area with the three data transmission memories.
[0027] When the data receiver module reads data, one of the memories is almost always blocked in read access. Regardless of how quickly the data receiver module records the defined data, the data transmitter module can alternately write to either of the two remaining data transmission memories.
[0028] By determining and reserving the free data transmission memory according to steps ai) and a-ii), and by positioning the respective access reservations in steps bi) and b-ii), it is ensured that there is always precisely one data transmission memory among the three data transmission memories that is not occupied by an access reservation, and this memory will be selected. Using the pointer in the pointer memory to display the respective most current data set according to steps a-iv) and bi) always communicates the defined, most current data from the data transmission memory to the receiving module.
[0029] Existing solutions generally only have two data transmission memories. The solution described here has considerable advantages over such solutions.
[0030] When using two data transmission memories, it may happen that the data transmitting module, upon receiving new defined data, must overwrite the last recorded data or wait until the last recorded data has been completely recorded by the data receiving module. This significantly reduces the speed and timeliness of data transmission. Three data transmission memories avoid this drawback.
[0031] The described method or the message queue provided by the described method, allows communication between the data sending module and the data receiving module without shared read-write memory.
[0032] The data transmitter module writes only the data, flags, or motors to the first bit of memory in the data memory blocks and to a pointer memory. The data transmitter module also preferentially grants access permissions only to these parts of the data transmission memory. The data receiver module may preferentially access these parts of the data transmission memory only for reading.
[0033] The data receiver module writes only the data or flags to the second bit of memory. The data receiver module preferably also has access permissions only for these parts of the data transmission memory. The data transmitter module can preferably only access it for reading. to these parts of the data transmission memory.
[0034] Particularly advantageously, the process is executed repeatedly in a continuous loop to provide the data receiving module continuously with defined data, updated by the data transmitting module.
[0035] It is further advantageous that step a) and step b) be performed repeatedly continuously, overlapping, offset from each other, and in step a) and in step b) the intermediate steps are respectively performed sequentially one after the other.
[0036] Preferably, the data receiving module and the data sending module work independently of each other and continuously so that the data sending module always provides the data receiving module with the most current data which has already been processed by the data sending module.
[0037] It is also advantageous that at least the data transmitter module or the data receiver module are all modules processing data in a raw data preparation network used for the functions of a highly automated driving mode of a motor vehicle, the defined data transmitted between the data transmitter module and the data receiver module are prepared raw data which are then reprocessed by the data receiver module to provide functions of a highly automated driving mode.
[0038] It is further advantageous that the raw data include at least data types such as:
[0039] - vehicle sensor data,
[0040] - data from data sources external to the vehicle and which are provided to the vehicle for highly automated driving, and
[0041] - data supplied to the vehicle's data memories for a mode of highly automated driving.
[0042] It is also advantageous that the repeated transmission of defined data takes place in the network according to steps a) and b) between a set of data processing modules.
[0043] It is further advantageous that during the determination and reservation of the data transmission memory in steps ai) and a-ii), all data transmission memories are blocked for the execution of step bi) and b-ii).
[0044] Furthermore, it is advantageous that during the determination and reservation of the data transmission memory in steps ai) and a-ii), firstly, using the first memory bit and the second memory bit, one checks whether a data transmission memory is free and then one first makes a provisional or temporary reservation followed by a further check of the first memory bit and the second memory bit.
[0045] This method of proceeding by provisional or temporary reservation ensures that there will be no collision between the data transmitting module and the data receiving module. As soon as the temporary reservation is established, the data receiving module can no longer block this data transmission memory by accessing it in read mode. The follow-up check after the temporary reservation determines whether it was established, if so, between the selection of the respective data transmission memory and the temporary reservation. If an access reservation by the data receiving module is detected, the temporary reservation is removed again, and preferably, the attempt to determine and reserve the data transmission memory is repeated.
[0046] It is also advantageous if, in step ai) no reference is made to a data transmission memory for which a pointer has been stored in the pointer memory.
[0047] This data transmission memory always contains the last defined data set that must be provided for the data reading process or data receiving module. This increases the execution speed of step ai) if this data transmission memory is not taken into account in step ai).
[0048] The invention also relates to a data processing device comprising at least one data transmitter module and one data receiver module as well as at least three data transmission memories and one pointer memory, the device being configured to execute the process as described above.
[0049] It should be noted that, in connection with the process described above, the particular advantages and implementation characteristics also apply and are transposed to the device.
[0050] Furthermore, the invention relates to a computer program product comprising instructions which, when the program product is executed by the computer, cause the computer to apply the described process.
[0051] The invention also relates to a computer-readable memory medium comprising instructions whose execution by the computer applies the process as described. Brief description of the drawings
[0052] The present invention will be described in more detail below with reference to an example of a method for repeated data transmission defined according to the invention, shown in the accompanying drawings in which:
[0053] [Fig. 1] diagram of a device relating to the process, and
[0054] [Fig.2] data transmission memory reservation method forming part of the process of the invention.
[0055] DESCRIPTION OF EMBODIMENT METHODS OF THE INVENTION
[0056] Fig. 1 shows a data transmitter module 2 and a data receiver module 3; the data transmitter module 2 transmits defined data 1 to the data receiver module 3. For this purpose, there are three data transmission memories 4 which each have a data memory block 5 to store the defined data 1 to be transmitted as well as a first data bit 6 to store an access reservation 10 of the data transmitter module 2 and a second memory bit 7 to store an access reservation 10 of the data receiver module 3.
[0057] The data transmitter module 2 executes step a) with intermediate steps i)-v). The data receiver module 3 executes step b) with intermediate steps i)-iv).
[0058] In step ai), a data transmission memory 4 is first defined in which neither the first memory bit 6 nor the second memory bit 7 is stored, so that it is not used. As another limitation, only one data transmission memory 4 is defined to which the pointer stored in the pointer memory is not directed. In step a-ii), the respective data transmission memory 4 is then reserved in which the first memory bit 6 is placed.
[0059] Next, the data defined 1 according to step a-iii) is written into the data memory block 5 of the respective data transmission memory 4. As soon as this is completed, in step a-iv), the pointer 9 in the pointer memory is placed on the data memory block 5. [Fig. 1] shows, by way of example, that the pointer 9 is placed on the third data transmission memory 4 marked by (iii). At the end of step a), there is step av), which is the release of the data transmission memory 4 by removing the access reservation 10 placed in the first memory bit 6 of the respective data transmission memory 4.
[0060] In parallel, but nevertheless, where appropriate, with a time delay for the execution of step a) and the intermediate steps iv), in the data transmitter module 2, step b) is applied with the intermediate steps i-iv) in the data receiver module 3. First, in step bi), the data transmission memory 4 to be read is determined, in which the current set of defined data 1 is stored. Then, step b-ii) is carried out, which is a reservation of the data transmission memory 4 to be read by the data receiver module 3 by placing an access reservation 10 in the second bit of memory 7. Then, in step b-iii), the defined data 1 is extracted from the data memory block 4. As soon as the extraction of the defined data 1 is complete, the data transmission memory is freed by removing the access reservation placed in step bi) in the second bit of Memory 1.
[0061] Figure 2 shows the process according to steps ai) and a-ii) or bi) and b-ii), which determine and reserve the data transmission memory. Figure 2 also shows in detail how steps ai) and a-ii) or bi) and b-ii) are implemented. However, it is not necessary to determine and reserve the memory for data recording to occur without interruption according to step a-ii) or for data reading to occur according to step b-iii).
[0062] Steps ai) and a-ii) or bi) and b-ii) are implemented to prevent collisions between write access to the data-sending module and read access to the data-receiving module. To this end, access to a data transmission memory by the other respective module is blocked during steps ai), a-ii) or bi) and b-ii). However, these blocks apply only to one of the three data transmission memories and only as long as the respective data transmission memory is a candidate for reservation in step a-ii) or b-ii).
[0063] Figure 2 shows a flowchart of the execution of a program for each data transmission memory, to determine and reserve a data transmission memory for as long as the successful reservation of a data transmission memory lasts. In each block of the flowchart, the two memory bits are represented by "(_) (_)"; in this expression, (x) indicates that a memory bit has been recognized as an access reservation; the expression (?) indicates that an access reservation memory bit must be checked. This first position "(x) (_)" indicates each time that the first memory bit corresponds to an access reservation of the data transmitting module, and the second position "(_) (x)" indicates that the second memory bit reserves access to the data receiving module.
[0064] The implementation of steps ai) and a-ii) or steps bi) and b-ii) in [Fig. 2] corresponds in principle, but the verification is performed in reverse. This means that during the execution of steps ai) and a-ii), there is an access reservation for the data-receiving module, and conversely, during the execution of steps bi) and b-ii), the first memory bit is checked to determine if there is an access reservation by the data-sending module. The following description relates to the representation of steps ai) and a-ii) in [Fig. 2]; this description can be transposed to the representation of steps bi) and b-ii); however, the first memory bit and the second memory bit, or the sending and receiving modules, must be reversed.
[0065] After the start of process 11, a reservation check 12 of the second memory bit is first performed to determine if there is an access reservation by the data receiver module for the respective transmission memory of data. This corresponds to the next state of the memory bit "(_) (?)". Then, there is a derivation 13 of the program. If there is no reservation, there is no memory bit set, and this is represented by "(_) (_)". There is a temporary reservation 14 for the data transmitter module, which corresponds to the first part of state a-ii)!. With the temporary reservation, the first memory bit is set so that the state becomes "(x) (_)". If there is a reservation and the state is "(_) (x)", then the corresponding data transmission memory cannot be used. The reservation operation stops 15.
[0066] After the provisional reservation 14, a new reservation check 12 is initiated, necessary to avoid collisions. Before the provisional reservation 14, there is a risk of a collision in the process between the data-sending module and the data-receiving module. It is possible that between the start 11 of the process and the provisional reservation 14 of the other process, there is also an access reservation. To avoid this, after the provisional reservation 14, the reservation check 12 is renewed. The state at this time is "(x) (?)". Then, we have another derivation of process 13. If after this derivation of process 13 we have observed the state “(x) (_)”, this is considered a definitive reservation 16. If, after the derivation of process 13 we have observed the state “(x) (x)”, we restore the state of the first bit of memory so that afterwards we return to the state “(_) (?)” as before the first reservation check.This also results in a 15th stoppage of the reservation operation.
[0067] After the stop 15 of the reservation operation, restart 17 is performed which returns to a process start 11. This is rejected until a data transmission memory has been determined with which the other process steps a-iii) etc or b-iii) can be executed.
Claims
1. Demands A method for repeatedly transmitting defined data (1) from a data-sending module (2) to a data-receiving module (3), according to which - three data transmission memories (4) are used to execute the process, these memories having a data memory block (5) as well as a first memory bit (6) to record an access reservation (10) of the data transmitter module (2) and a second memory bit (7) to record an access reservation (10) of the receiver module (3), - a pointer memory (8) is also used to apply the method, according to which a pointer (9) is stored in the current data transmission memory (4), the method comprising the following steps: a. Execute a data entry process with the following intermediate steps: (i) determine a data transmission memory (4) in which there is no access reservation (10) recorded either in the first memory bit (6) or in the second memory bit (7); ii) reserve the data transmission memory (4) determined in step ai by the data transmitter model (2) by placing an access reservation (10) in the first memory bit (6) of the respective data transmission memory (4), iii) write the defined data (1) into the data memory block (5) of the data transmission memory (4), iv) put a pointer (9) in the data transmission memory used in the pointer memory (8), (v) free the data transmission memory (4) by removing the access reservation (10) placed in step a-ii); b) perform a data reading process with the following intermediate steps: i) determine the data transmission memory (4) to be read with the pointer (9) in the pointer memory (8); ii) reserve the data transmission memory (4) to be read by the data receiver module (3) by placing an access reservation (10) in the second memory bit (7) of the respective data transmission memory (4); iii) read the defined data (1) in the data memory block (5) from the data transmission memory (4); iv) free the data transmission memory (4) by removing the access reservation (10) placed in step bi).
2. A method according to the preceding claim, wherein the method is continuously repeated in a loop to continuously provide the data receiving module (3) with updated data (1) from the data transmitting module (2).
3. A method according to any one of the preceding claims, wherein steps a) and b) are performed repeatedly and continuously, overlapping and offset in time from each other, and in steps a) and b) the intermediate steps are respectively performed one after the other sequentially.
4. A method according to any one of the preceding claims, wherein - at least the data transmitter module (2) or the data receiver module (3) are both data processing modules in a network for preparing raw data for use in functions of a highly automated vehicle driving mode; - the defined data (1), transmitted between the data transmitter module (2) and the data receiver module (3) are raw, prepared data, which will be reprocessed by the data receiver module (3) to prepare functions of a highly automated vehicle driving mode.
5. A method according to claim 4, wherein the raw data comprises at least the following types of data: - sensor data provided by the sensors of a motor vehicle, - data from external data sources that are provided to the vehicle for the highly automated driving mode, and - data from data memory in the vehicle for the highly automated driving mode.
6. A method according to claim 4 or 5, according to which the repeated transmission of data defined (1) according to steps a) and b) between a set of data processing modules takes place in the network.
7. A method according to any one of the preceding claims, wherein during the determination and reservation of the data transmission memory (4) in steps a)-i) and a)-ii), all data transmission memories (4) are blocked for the execution of step b)-i) and b)-ii).
8. A method according to any one of the preceding claims, wherein during the determination and reservation of the data transmission memory (3) in steps a)-i) and a)-ii), it is first checked with the first memory bit (6) and the second memory bit (7) whether a data transmission memory (4) is free and then a temporary reservation is first made with a renewed check of the first memory bit (6) and the second memory bit (7).
9. A method according to any one of the preceding claims, wherein in step a)-i) a data transmission memory (4) in which a pointer to the pointer memory (8) is stored is disregarded.
10. Data processing device comprising at least one data transmitter module (2) and one data receiver module (3) as well as at least three data transmission memories (4) and one pointer memory (8), the device being configured to perform the method according to any one of claims 1 to 9.
11. Computer program product comprising instructions, the execution of which by a computer causes it to apply the method according to any one of claims 1 to 9.
12. Computer-readable memory support comprising instructions, the execution of which by a computer causes the computer to execute the process and / or the steps of the process according to any one of claims 1 to 9.