IP Library › Granted Patent US 12,640,178
Granted Patent B2
US 12,640,178 · App. 18/535,308 · Granted May 26, 2026

Method for operating a data processing system

Inventors: Michael Klauss (Backnang, DE); Rainer Baumgaertner (Pfaffenhofen, DE)
Assignee: ROBERT BOSCH GMBH
G11C7/222G11C7/225
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,640,178
App. No.
18/535,308
Granted
May 26, 2026
Kind
B2
Abstract

A method for operating a data processing system for processing data. The data processing system is set up for the repeated execution of a plurality of data processing tasks. The following steps are carried out for the operation of the data processing system: a) executing the individual data processing tasks at their respective repetition rate in the time grid; b) outputting of output data by the individual data processing tasks into the buffer memory assigned to the clock pulse of the grid; c) reading in of input data by the individual data processing tasks from the buffer memories which are assigned to the preceding clock pulses of the grid.

Claims (33)

1 . A method for operating a data processing system for processing data, wherein: (i) the data processing system is set up for repeated execution of a plurality of individual data processing tasks, (ii) a time grid with a base clock pulse is provided for the execution of the individual data processing tasks, (iii) a respective predetermined repetition rate is specified for each of the individual data processing tasks, (iv) each of the respective repetition rates defines a repetition clock pulse which corresponds in each case to a respective integer number of instances of the base clock pulse of the grid, (v) one of the repetition clock pulses, which corresponds to one of the individual data processing tasks that has a highest repetition rate of all of the plurality of individual data processing tasks, is equal to the base clock pulse of the time grid, (vi) the individual data processing tasks build on one another so that at least one of the data processing tasks processes output data of a further one of the data processing tasks as input data, and (vii) a number of buffer memories are provided, which are assigned to respective instances of the base clock pulse of the time grid and which are available in turn, so that output data generated during a respective instance of the base clock pulse are written to a respective buffer memory of the buffer memories and output data generated during previous instances of the base clock pulse continue to be available in others of the buffer memories for a number of instances of the base clock pulse; and wherein the method comprises carrying out the following steps for the operation of the data processing system:

a) executing each of the data processing tasks at its respective repetition rate in the time grid;

b) outputting respective portions of the output data by one or more of the individual data processing tasks, each into the respective one of the buffer memories assigned to the respective instance of the base clock pulse of the grid in which the respective individual data processing task is executed; and

c) reading in respective portions of the input data by one or more of the individual data processing tasks from the buffer memories which are assigned to the preceding instances of the base clock pulse of the grid.

2 . The method according to claim 1 , wherein at least a portion of the output data generated by a first subset of the data processing tasks is further processed as a portion of the input data used by a further subset of the data processing tasks without a copying operation.

3 . The method according to claim 1 , wherein messages between the data processing tasks are exchanged only via the buffer memories, so that communication between the data processing tasks takes place only via the buffer memories.

4 . The method according to claim 1 , wherein:

for each instance of the base clock pulse at which one or more of the data processing tasks are intended for execution, the one or more of the data processing tasks intended for execution at the respective instance are activated at a start time of the respective instance of the base clock pulse; and

for each instance of the base clock pulse at which at least two of the data processing tasks are intended for execution, respective starts of execution of the at least two of the data processing tasks take place in an order that corresponds to their respective repetition rates so that, for each pair of the at least two data processing tasks that have different repetition rates, the respective execution start of whichever has a higher one of the repetition rates takes place temporally before the respective execution start of the other.

5 . The method according to claim 1 , wherein execution of those of the data processing tasks with a higher repetition rate are prioritized over execution of those of the data processing tasks with a lower repetition rate.

6 . The method according to claim 1 , wherein the buffer memories are structured in such a way that memory areas provided for specific output data from data processing tasks are provided within the buffer memories.

7 . The method according to claim 6 , wherein, for those of the data processing tasks that obtain input data from the buffer memories, it is specified from which memory areas of the buffer memories the input data are to be read.

8 . The method according to claim 7 , wherein selection and addressing of the buffer memories is calculated using associated task counters of those of the data processing tasks involved.

9 . The method according to claim 1 , wherein the number of buffer memories is such that all of the input data that are generated as output data by one or more of the data processing tasks during any of the instances of the base clock pulse and that also are respectively required for the execution, subsequently, of one or more other ones of the data processing tasks remain respectively available to those other data processing tasks via the buffer memories.

10 . A data processing device, comprising:

one or more processors; and

one or more memory modules;

wherein:

(i) the data processing device is configured to process data via execution of a plurality of individual data processing tasks using the one or more processors;

(ii) a time grid with a base clock pulse is provided for the execution of the individual data processing tasks;

(iii) a respective predetermined repetition rate is specified for each of the individual data processing tasks;

(iv) each of the respective repetition rates defines a repetition clock pulse which corresponds in each case to a respective integer number of instances of the base clock pulse of the grid;

(v) one of the repetition clock pulses, which corresponds to one of the individual data processing tasks that has a highest repetition rate of all of the plurality of individual data processing tasks, is equal to the base clock pulse of the time grid;

(vi) the individual data processing tasks build on one another so that at least one of the data processing tasks processes output data of a further one of the data processing tasks as input data;

(vii) the one or more memory modules include a number of buffer memories, which are assigned to respective instances of the base clock pulse of the time grid and which are available in turn, so that output data generated during a respective instance of the base clock pulse are written to a respective buffer memory of the buffer memories and output data generated during previous instances of the base clock pulse continue to be available in others of the buffer memories for a number of instances of the base clock pulse; and

(viii) the data processing device is configured to:

a) execute each of the data processing tasks at its respective repetition rate in the time grid;

b) output respective portions of the output data by one or more of the individual data processing tasks, each into the respective one of the buffer memories assigned to the respective instance of the base clock pulse of the grid in which the respective individual data processing task is executed; and

c) read in respective portions of the input data by one or more of the individual data processing tasks from the buffer memories which are assigned to the preceding instances of the base clock pulse of the grid.

11 . A non-transitory computer-readable storage medium on which are stored commands for operating a data processing system for processing data, wherein: (i) the data processing system is set up for the repeated execution of a plurality of individual data processing tasks, (ii) a time grid with a base clock pulse is provided for the execution of the individual data processing tasks, (iii) a respective predetermined repetition rate is specified for each of the individual data processing tasks, (iv) each of the respective repetition rates defines a repetition clock pulse which corresponds in each case to a respective integer number of instances of the base clock pulse of the grid, (v) one of the repetition clock pulses, which corresponds to one of the individual data processing tasks that has a highest repetition rate of all of the plurality of individual data processing tasks, is equal to the base clock pulse of the time grid, (vi) the individual data processing tasks build on one another so that at least one of the data processing tasks processes output data of a further one of the data processing tasks as input data, and (vii) a number of buffer memories are provided, which are assigned to respective instances of the base clock pulse of the time grid and which are available in turn, so that output data generated during a respective instance of the base clock pulse are written to a respective buffer memory of the buffer memories and output data generated during previous instances of the base clock pulse continue to be available in others of the buffer memories for a number of instances of the base clock pulse; and wherein the commands, when executed by a computer, cause the computer to perform the following steps for the operation of the data processing system:

a) executing each of the data processing tasks at its respective repetition rate in the time grid;

b) outputting respective portions of the output data by one or more of the individual data processing tasks, each into the respective one of the buffer memories assigned to the respective instance of the base clock pulse of the grid in which the respective individual data processing task is executed; and

c) reading in respective portions of the input data by one or more of the individual data processing tasks from the buffer memories which are assigned to the preceding instances of the base clock pulse of the grid.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2024
From: KLAUSS, MICHAEL; BAUMGAERTNER, RAINER
To: ROBERT BOSCH GMBH
Reel/Frame 067357/0829 →
Priority Claims (1)
DE 10 2022 214 055.9 · Dec 20, 2022 · national
Continuity (1)
Related Publication 20240203470A1 · Jun 20, 2024
References Cited (6)
US 12159057B2 · Hsu · 2024 [cited by examiner]
US 12175285B1 · Zisman · 2024 [cited by examiner]
US 20060179436A1 · Yasue · 2006 [cited by examiner]
US 20100122045A1 · Huetter · 2010 [cited by examiner]
Andersn and Holman: “Efficient Pure-buffer Algorithms for Real-time Systems,” Proceedings of Seventh International Conference on Real-Time Computing Systems and Applications, Cheju, Korea (South), IEEE (2000), pp. 57-64… [cited by applicant]
Shi, et al.: “Multiprocessor Synchronization of Periodic Real-Time Tasks Using Dependency Graphs,” 2019 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), Montreal, QC, Canada, (2019), pp. 279-292… [cited by applicant]