WO2023030736A1 - Verfahren und vorrichtung zum bearbeiten von zumindest einer ersten und einer zweiten rechenoperation in einer recheneinheit - Google Patents
Verfahren und vorrichtung zum bearbeiten von zumindest einer ersten und einer zweiten rechenoperation in einer recheneinheit Download PDFInfo
- Publication number
- WO2023030736A1 WO2023030736A1 PCT/EP2022/069756 EP2022069756W WO2023030736A1 WO 2023030736 A1 WO2023030736 A1 WO 2023030736A1 EP 2022069756 W EP2022069756 W EP 2022069756W WO 2023030736 A1 WO2023030736 A1 WO 2023030736A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- arithmetic operation
- time interval
- arithmetic
- processing
- time
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012913 prioritisation Methods 0.000 claims description 2
- 230000002123 temporal effect Effects 0.000 claims description 2
- 238000013459 approach Methods 0.000 description 41
- 230000000875 corresponding effect Effects 0.000 description 20
- 230000015654 memory Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013439 planning Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 1
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/485—Resource constraint
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/504—Resource capping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/506—Constraint
Definitions
- the invention is based on a device or a method according to the species of the independent claims.
- the subject matter of the present invention is also a computer program.
- Systems with real-time requirements use special methods of resource allocation (scheduling, especially for the CPU) to ensure that tasks are completed within a deterministic, i.e. known and guaranteed, time period.
- some scheduling methods set budgets within which the Tasks should be completed.
- the purpose of budgeting in addition to ensuring that the budgeted task has enough resources (particularly time on a CPU), is to prevent the potential interference (negative impact) between tasks due to unexpected overuse of the resource. This is to ensure that a task doesn't use so many resources that another task can no longer be completed.
- a method for processing at least a first and a second arithmetic operation in a computing unit is presented, a first time interval being provided for processing the first arithmetic operation in the arithmetic unit and a time interval different from the first for processing the second arithmetic operation in the computing unit Time interval different second time interval is provided, the method having the following steps:
- An arithmetic operation can be understood as a task to be solved numerically.
- an arithmetic unit can be understood as a processor or controller that can be programmed to process or execute corresponding arithmetic operations. In this way, different processing rules can be executed as arithmetic operations.
- a time interval can be understood to mean a time slot that is provided for processing an arithmetic operation.
- a time slot scheme can be used during operation of the arithmetic unit, in which several arithmetic operations can be carried out one after the other in the arithmetic unit with a chronological offset, the individual Arithmetic operations are initially performed in different time slots.
- a completion time can be understood to mean a time at which the second arithmetic operation was completed in the second time interval.
- the processing of the second arithmetic operation does not take up the entire duration of the second time interval, so that the arithmetic unit would no longer process an arithmetic operation in the second time interval from the time of completion to the end of the second time interval.
- the approach presented here is based on the knowledge that, for the most efficient possible utilization of the computing power available in the computing unit, there should be as few time periods as possible in which the computing unit is not performing any computing operations.
- it is proposed to have a different arithmetic operation than the second arithmetic operation (here the first arithmetic operation) carried out in a section of the second time interval from the completion time to the end of the second time interval and thereby to dissolve a very rigid time slot scheme, in which individual arithmetic operations may only be carried out in the time slots or time intervals reserved for them.
- the approach presented here thus enables a significantly more continuous utilization of the computing unit, which leads to faster processing of the individual computing operations.
- One embodiment of the approach proposed here is particularly favorable, in which a step of storing an interim result of the first arithmetic operation is provided after the first time interval has elapsed, if the first arithmetic operation could not be completed in the first time interval, with the step of executing from the time of completion first arithmetic operation is processed further starting from the intermediate result.
- an intermediate result can also be understood to mean, for example, a state of the memory in which a processing specification for the first arithmetic operation is stored.
- Such an embodiment of the approach proposed here offers the advantage of efficient processing of the first arithmetic operation in several time segments, since the storage of the intermediate result (and a subsequent loading of this intermediate result at the time of completion in the second time interval) an interruption of the processing of the first arithmetic operation that is as error-free as possible can be implemented.
- the first arithmetic operation therefore did not have to be restarted, but can instead fall back on calculation results that were determined in the arithmetic unit in the first time interval.
- an auxiliary time interval can also be provided in the computing unit, in which at least part of the first and/or second arithmetic operation can be processed, with the processing of the second arithmetic operation and/or the first arithmetic operation after processing continues without interruption in the auxiliary time interval after the second time interval has elapsed, in particular if processing of the second arithmetic operation and/or the first arithmetic operation has not yet been completed after the second time interval has elapsed.
- An auxiliary time interval can be understood to mean a time interval in which no arithmetic operation is provided for processing.
- Such an auxiliary time interval can be used to carry out calculations of corresponding arithmetic operations which have not yet been completed.
- Such an embodiment of the approach proposed here offers the advantage of the uninterrupted further processing of the second arithmetic operation in the auxiliary time interval, which advantageously follows the second time interval, a complex and time-consuming loading of the arithmetic unit with a processing rule and / or between results of a previously executed arithmetic operation to avoid.
- Another favorable embodiment of the approach proposed here is one in which at least one further arithmetic operation is also processed in the arithmetic unit, with an assignment step being provided in which the first, second and/or further arithmetic operation is assigned processing information that Represents information about a completed processing of the relevant arithmetic operation at a previous time.
- the execution step the arithmetic operation to be executed as the first arithmetic operation is selected taking into account the processing information for processing in the second time interval becomes.
- Processing information can be understood as information or a status that provides an indication of the degree of processing of the arithmetic operation, a priority of the arithmetic operation in relation to at least one other arithmetic operation, a frequency with which the corresponding arithmetic operation is processed on the arithmetic unit or the like.
- Such an embodiment of the approach proposed here offers the advantage of being able to make a very efficient selection of an arithmetic operation, for example as the first arithmetic operation, by taking the processing information into account, so that, for example, arithmetic operations that are more important, less processed or to be performed more frequently can be processed with higher priority in the arithmetic unit.
- the processing information can be determined in the assignment step, taking into account complete processing of the relevant arithmetic operation at least at a previous point in time.
- that arithmetic operation that was completely processed at a previous point in time can be assigned processing information that represents a lower prioritization for a renewed processing of the arithmetic operation in question at a subsequent point in time.
- Such an embodiment of the approach proposed here offers the advantage of primarily working arithmetic operations in free portions of time intervals, which experience has shown to require a longer processing time. In this way, efficient and rapid processing of all of the arithmetic operations to be carried out can advantageously be achieved.
- the processing information for the first, second and/or further arithmetic operation can be determined using a frequency of previous processing of the relevant arithmetic operation.
- Such an embodiment offers the advantage of allowing arithmetic operations to be carried out particularly frequently to work in advance in order, for example, to quickly and reliably provide processing values of sensor data that are required at short notice and frequently to be able to ask. In this way, even safety-critical arithmetic operations or algorithms can be processed reliably by the arithmetic unit.
- the further arithmetic operation can also be carried out in the step of execution in the second time interval and/or the auxiliary time interval if the first arithmetic operation is carried out in the second time interval and/or the auxiliary time interval. or the auxiliary time interval has been completed.
- Such an embodiment offers the advantage of being able to perform more than one arithmetic operation in the remaining portion of the second time interval and/or the auxiliary interval, so that as many arithmetic operations as possible that have not yet been completed can be processed while avoiding a rigid time slot scheme.
- the arithmetic operation to be carried out as the first arithmetic operation can be carried out using a result of a random number generator if the as a possible first arithmetic operation machining information associated with the arithmetic operations to be selected are equal within a tolerance range.
- a particularly flexible configuration for the processing of arithmetic operations in a computing unit can be achieved in that, in the assignment step, the processing information assigned to the arithmetic operations is processed using an expected execution time until the processing of the arithmetic operation in question is completed in of the computing unit is determined.
- that arithmetic operation can be selected as the first arithmetic operation whose processing information has a longest execution time period until the processing of the relevant Arithmetic operation in the arithmetic unit corresponds. In this way, for example, too frequent and time-consuming reloading of the memory or processor of the arithmetic unit with algorithms or between results of the respective arithmetic operations can be avoided.
- the steps of the method can also be repeated cyclically, it being possible for different calculation rules to be used as the first calculation operation or different calculation rules as the second calculation operation in the repeatedly executed steps.
- Such an embodiment offers the advantage of being able to execute different algorithms or processing rules for a wide variety of purposes as a first and/or second arithmetic operation on the computing unit, so that the available numerical performance of the computing unit can be used as optimally as possible.
- the steps of the method can also be carried out repeatedly according to a further embodiment of the approach presented here, with a step of the method being carried out before the repeatedly carried out steps of the method Changing a time length of the first and / or second time interval is performed.
- An embodiment of the approach proposed here is also advantageous in which, in the step of changing, the time length of the first and/or second time interval is changed at a later point in time depending on the completion of the first arithmetic operation in the first time interval and/or the completion of the second arithmetic operation is changed at a previous time.
- Such an embodiment offers the advantage of being able to use time interval lengths that are optimal in terms of time for the corresponding arithmetic operations and thus being able to complete the corresponding arithmetic operations as far as possible within the respectively assigned time interval.
- This method can be implemented, for example, in software or hardware or in a mixed form of software and hardware, for example in a control unit.
- the approach presented here also creates a device that is designed to carry out, control or implement the steps of a variant of a method presented here in corresponding devices.
- the object on which the invention is based can also be achieved quickly and efficiently by this embodiment variant of the invention in the form of a device.
- the device can have at least one computing unit for processing signals or data, at least one memory unit for storing signals or data, at least one interface to a sensor or an actuator for reading in sensor signals from the sensor or for outputting data or control signals to the Have actuator and / or at least one communication interface for reading or outputting data that are embedded in a communication protocol.
- the arithmetic unit can be, for example, a signal processor, a microcontroller or the like, with the memory unit being able to be a flash memory, an EEPROM or a magnetic memory unit.
- the communication interface can be designed to read in or output data wirelessly and/or by wire, wherein a communication interface that can read in or output wire-bound data can, for example, read this data electrically or optically from a corresponding data transmission line or can output it to a corresponding data transmission line.
- a device can be understood to mean an electrical device that processes sensor signals and, depending thereon, outputs control and/or data signals.
- the device can have an interface that can be configured as hardware and/or software.
- the interfaces can be part of a so-called system ASIC, for example, which contains a wide variety of functions of the device.
- the interfaces it is also possible for the interfaces to have their own integrated circuits or at least in part to consist of discrete components consist.
- the interfaces can be software modules which are present, for example, on a microcontroller alongside other software modules.
- a computer program product or computer program with program code which can be stored on a machine-readable carrier or storage medium such as a semiconductor memory, a hard disk memory or an optical memory and for carrying out, implementing and/or controlling the steps of the method according to one of the embodiments described above, is also advantageous used, especially when the program product or program is run on a computer or device.
- FIG. 1 shows a schematic representation of a vehicle in which a device 105 according to an exemplary embodiment of the approach presented here is installed;
- FIG. 2 shows a schematic representation of the time course t when processing arithmetic operations according to an exemplary embodiment of the approach presented here;
- FIG. 3 shows a block diagram representation of a device for processing according to an embodiment
- FIG. 4 shows a flowchart of a method according to an embodiment.
- FIG. 1 shows a schematic representation of a vehicle 100 in which a device 105 according to an exemplary embodiment of the approach presented here is installed. Furthermore, one or more sensors 110a and 110b are also installed in vehicle 100, for example, which transmit their sensor data 115a and 115b to a computing unit 120, in which these sensor data 115 a and 115 b are processed and, for example, a control signal 125 is formed, which Vehicle module 130 drives.
- the vehicle module 130 can, for example, be a driver assistance system or a safety system of the vehicle 100, for example an airbag system or an ABS system.
- the sensor data 115a or 115b are linked or processed in a wide variety of ways in the arithmetic unit 120, which is often designed as a microprocessor or control, with a corresponding arithmetic operation such as a first arithmetic operation 135a, a second arithmetic operation 135b and/or a third arithmetic operation 135c is to be executed as a corresponding task in the arithmetic unit 120.
- Efficient processing of the corresponding arithmetic operations 135a, 135b and 135c is required in the arithmetic unit 120 precisely for rapid processing of algorithms which are often time- and safety-critical for the driving safety of the vehicle 100.
- the temporal execution or processing of the corresponding arithmetic operations 135a, 135b and/or 135c in arithmetic logic unit 120 is controlled by an exemplary embodiment of device 105 for processing at least a first arithmetic operation 130a and a second arithmetic operation 135b in the arithmetic logic unit 120 made.
- the device 105 for processing at least a first 135a and a second 135b arithmetic operation in a computing unit 120 has a unit 140 for recognizing and a unit 145 for executing the first arithmetic operation 135a in the second time interval after a completion time.
- the device 105 is designed for processing in order to process the first arithmetic operation in the arithmetic unit in a first time interval and the second arithmetic operation in the arithmetic unit to process in a second time interval different from the first time interval.
- unit 140 for detection it is detected that the second arithmetic operation was completed in the second time interval at the time of completion before an end of the second time interval.
- the memories and/or the processor are loaded with the data or corresponding processing specifications in order to execute the relevant arithmetic operation 135a, 135b or 135c in the arithmetic unit 120.
- FIG. 2 shows a schematic representation of the course of time t when processing arithmetic operations according to an exemplary embodiment of the approach presented here.
- a cycle time To contains several sub-cycles So, Si, . . . , SN ⁇ I.
- Si a first time interval tfi X ,i is provided for processing the first arithmetic operation 135a
- a second time interval tfi X ,2 is provided for processing the second arithmetic operation 135b.
- an auxiliary time interval 200 is also provided, which lasts the duration after the end of the second time interval tfi X ,2 until the end of the first sub-cycle So.
- any arithmetic operations can be executed in the arithmetic unit 120 in the auxiliary time interval 200, so that in this auxiliary time interval, for example, both the first arithmetic operation 130a and the second arithmetic operation 135b or the further arithmetic operation 135c can be executed.
- the device 105 for processing is designed to load the memory or processor of the arithmetic unit 120 with data in such a way that the first arithmetic operation 135a can be carried out in the first time interval.
- the processing of the first arithmetic operation 135a has not yet been completed at the end of the first time interval and must therefore be interrupted.
- an intermediate result 210 is stored, for example, in a memory (not shown in the figures) of the arithmetic unit or device 105, with this intermediate result being a preliminary calculation result of the first arithmetic operation and/or a Memory/register occupancy of the memory or registers of the processor of the arithmetic unit 120 formed or represented, so that the first arithmetic operation 135a can be resumed as error-free as possible at a later point in time.
- the second arithmetic operation 135b is now first carried out.
- the calculation of the second arithmetic operation 135b is completed at a completion time 220, which is before the end of the second time interval, so that the processing unit 120 in that time segment of the second time interval between the completion time 220 and the end of the second time interval is no longer needed to carry out the second arithmetic operation 135b and is available for other tasks.
- the memory or processor of the arithmetic unit 120 can now be reloaded with the data of the intermediate result 210 and the first arithmetic operation 135a can be continued.
- the most efficient use possible of the numerical power available in the arithmetic unit 120 can be used for rapid processing of the arithmetic operations 135 .
- that arithmetic operation here the first arithmetic operation 135a
- that arithmetic operation can also be processed in the subsequent auxiliary time interval 200, so that a time-consuming change of the data or processing instructions stored in the arithmetic unit 120 is avoided as far as possible and thus a further acceleration of the processing of the arithmetic operations 135 can be reached.
- the arithmetic unit 120 can be unused in the remaining time span of the auxiliary time interval 200 .
- the further arithmetic operation 135c can of course also be carried out in this remaining time period of the auxiliary time interval 200, although this is not shown explicitly in FIG.
- An analogous procedure for controlling the execution or processing of arithmetic operations in the arithmetic unit 120 can also be illustrated with reference to the subcycle Si.
- the first arithmetic operation 135a is now processed in the first time interval and at the completion time 220 ended before the first time interval ended.
- the second arithmetic operation 135b can now be started directly in the first time interval, which is then also processed without interruption in the second time interval following the first time interval and even directly in the auxiliary time interval 200. In this way, very efficient control of the processing of the arithmetic operations in the arithmetic unit 120 can be made possible.
- the arithmetic unit 120 can again remain unused in this or the further arithmetic operation 135c can be processed.
- FIG. 3 shows a block diagram representation of a device 105 for processing according to an embodiment.
- the device 105 for processing comprises unit 140 for recognition and unit 145 for execution.
- unit 140 for recognition it is recognized, for example, that an arithmetic operation such as the first arithmetic operation 135a, the second arithmetic operation 135b and/or the further arithmetic operation 135c has been completed or reserved for execution in a subsequent time slot, with this result now being assigned to unit 145 is sent to run.
- Execution unit 145 now acts as a unit for planning a free time budget of arithmetic unit 120, i.e.
- arithmetic operation for planning which arithmetic operation is to be executed from a completion time 220 to the end of the respective time interval and/or in the auxiliary time interval 200. For this purpose, it is first recorded in a calculation operation completion statistics counter unit 300 which calculation operation was completed and how often. A result of this unit 300, which represents processing information 305, is subsequently transferred to a logic unit 310, which selects the next arithmetic operation. Optionally, the result or the processing information 305 of this unit 300 is fed to a further logic unit 320, which can determine how long or what time interval a subsequent execution of a corresponding arithmetic operation is assigned.
- a processed piece of processing information 305' from the logic unit 310 and also from the further logic unit 320 is then assigned to an arithmetic operation Supplied to planning actuator 330, which occupies corresponding registers or memory in arithmetic unit 120 in order to be able to carry out a correspondingly selected arithmetic operation to be carried out in arithmetic unit 120.
- the arithmetic operation planning actuator 330 informs a check logic 340 for checking that processing of an arithmetic operation has been completed, whether or which arithmetic operation was loaded in the arithmetic logic unit 120 .
- the processing of the arithmetic operation in the arithmetic unit 120 is monitored by the test logic 340 .
- the unit 300 which logs the execution of the corresponding arithmetic operation in the arithmetic unit 120 and provides corresponding information for a new cycle of processing a Arithmetic operation on the arithmetic unit 120 to the logic unit 310 or the further logic unit 320 supplies.
- FIG. 4 shows a flow chart of an exemplary embodiment of a method 400 for processing at least a first and a second computing operation in a computing unit.
- a first time interval is provided for processing the first arithmetic operation in the processing unit and a second time interval different from the first time interval is provided for processing the second arithmetic operation in the processing unit.
- the method 400 includes a step 410 of recognizing that the second arithmetic operation in the second time interval was completed at a completion time before an end of the second time interval.
- the method 400 includes a step 420 of executing the first arithmetic operation in the second time interval after the completion time.
- the method 400 includes a step 410 of recognizing that the first arithmetic operation in the first time interval was completed at a completion time before an end of the first time interval. Finally, the method 400 includes a step 420 of performing the second arithmetic operation in the first time interval after the completion time.
- the approach presented here can be summarized, supplemented or continued in other words.
- the one presented here The approach can be understood as a cycle-optimized soft real-time scheduler for the assignment of a computing unit with various computing operations.
- systems with real-time requirements are characterized by the fact that a large number of tasks are of a cyclical nature, e.g. B. the recurring calculation of object data based on sensor data that is regularly fed in externally.
- a task can be completed in each cycle, but that the task can be completed completely a certain number of times in a larger time interval.
- the task starts anew, for example, e.g. B. because new sensor data is available.
- budget planning represents a particular challenge Practice the budgets are chosen too large. As a result, all tasks are processed to the end with a high degree of certainty in each cycle. In order to still ensure efficient use of resources, unused portions of the budget are made available to other tasks to ensure "workload preservation". However, since the initial system design already provided for a high probability of completion of the tasks, this surplus remains unused. The pure redistribution of excess budget is only partially successful in order to enable a system design that is more appropriate for the tasks (e.g. by choosing a weaker CPU).
- Soft real-time requirements are defined in this context as the conclusion (completion) of a recurring resource-using task (task or arithmetic operation), which, for example, should be completely completed a certain number of times in a certain time interval.
- a task has an unknown dynamic runtime td yn until completion (time), which depends on external factors (e.g. number of available sensor data).
- the focus of the approach presented here is (success criterion of the soft-realtime scheduler as device 105) that the task or arithmetic operation is successfully completed within a time interval To, for example, at least N m times.
- the duration of the inner intervals or sub-cycles Sj is z. B. determined by the availability of new data packets, such as sensor data packets.
- a basic idea of the approach presented here is the determination of a fixed runtime budget tfi X per execution of the task per time interval Si, which is smaller than the dynamic runtime td yn with a non-negligible statistical probability.
- the runtime budget is the guaranteed budget that the task will receive in any case.
- a correspondingly large dimensioning of tfi X to cover all realizations of td yn is inefficient.
- One focus of the approach presented here is the selection of the tasks or arithmetic operations that are executed again within the remaining time budget potentially covering their dynamic runtime requirements td yn .
- a counting statistic and algorithm is proposed, for example, which prioritizes the task in which the probability within the interval To of not running to the end at least N m times is the highest.
- the decision algorithm proposed here can be adapted on a use-case basis.
- the approach presented here can initially be intended for the scheduling of a computer unit or CPU, but can also be used for other shared resources.
- the proposed scheduler decides on the distribution unused remaining running time within a time interval Si. For example, it only takes into account the tasks or arithmetic operations that have not yet been completed, ie that have completely used up their budget without completing the task.
- the scheduler can recognize this, for example, from the fact that the tasks were each preempted, ie that the task was forcibly replaced by another task on the CPU or processing unit 120 as part of the exhaustion of the runtime budget.
- FIG. 3 which here represents a special form of the device 105 for processing.
- More complex statistics e.g. B. a gradual increment / decrement or the use of a sliding window are possible.
- the counter is either reset or decremented. The latter would have advantages in cyclic load scenarios.
- a selection based on the counting statistics can now be made in different ways, for example.
- the following procedure can therefore be selected for the assignment of the registers and memories of the arithmetic unit 120, with the numerical steps indicating the sequence, for example, and letters indicating the alternatives.
- values in parentheses refer to a reference to the previous one: la.
- the task that has the highest counter value is always selected. pounds A task is selected with a probability weighted according to the statistics, ie tasks with higher counter values are selected with a higher probability.
- the task that is to run or be executed on the arithmetic unit 120 is selected by a random number generator.
- a further logic unit 320 it can be determined, for example, how long or what time interval a subsequent execution of a corresponding arithmetic operation is assigned [task run duration budget logic].
- the duration of the execution can be decided as follows:
- the selected task is allowed to run until it is completed, and its counter value is decremented.
- the selected task is only run for a fixed extended period.
- the length of the period is chosen according to the weighting in the execution statistics, for example. For example, it is possible to let a task run longer if it has not completed the task in the past despite the free budget scheduler.
- a check logic 340 for checking a completed processing of an arithmetic operation [task completion check logic], for example after the end of the extended execution, the task statistics can be recognized, updated in the arithmetic operation completion statistics counter unit 300 and the next task can be selected. This is repeated until either all tasks for that time interval have completed successfully or the time interval has elapsed.
- a procedure presented here has potential, for example, to be used in a vehicle computer with tasks in the ADAS environment. Dynamic loads often occur in such a system, e.g. B. due to the different complexity of the vehicle environment.
- processes allow a soft-realtime realization, in which tasks, up to an acceptance limit, may show deadline violations.
- the mixture of hard and soft real-time systems is a new technical task field that only arose with the appearance of tasks with dynamic input variables (e.g. the number of objects to be recognized in an environmental sensor system). Although it is possible to operate systems with mixed tasks, there with corresponding (inefficient) provision of computing power to allow renormalization to a hard real-time system.
- an embodiment includes an "and/or" link between a first feature and a second feature, this should be read in such a way that the embodiment according to one embodiment includes both the first feature and the second feature and according to a further embodiment either only that having the first feature or only the second feature.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202280072334.2A CN118159946A (zh) | 2021-08-31 | 2022-07-14 | 用于在计算单元中至少处理第一和第二计算运算的方法和设备 |
EP22753614.1A EP4396678A1 (de) | 2021-08-31 | 2022-07-14 | Verfahren und vorrichtung zum bearbeiten von zumindest einer ersten und einer zweiten rechenoperation in einer recheneinheit |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021209509.7A DE102021209509A1 (de) | 2021-08-31 | 2021-08-31 | Verfahren und Vorrichtung zum Bearbeiten von zumindest einer ersten und einer zweiten Rechenoperation in einer Recheneinheit |
DE102021209509.7 | 2021-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023030736A1 true WO2023030736A1 (de) | 2023-03-09 |
Family
ID=82850085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2022/069756 WO2023030736A1 (de) | 2021-08-31 | 2022-07-14 | Verfahren und vorrichtung zum bearbeiten von zumindest einer ersten und einer zweiten rechenoperation in einer recheneinheit |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4396678A1 (de) |
CN (1) | CN118159946A (de) |
DE (1) | DE102021209509A1 (de) |
WO (1) | WO2023030736A1 (de) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189022B1 (en) * | 1997-08-20 | 2001-02-13 | Honeywell International Inc. | Slack scheduling for improved response times of period transformed processes |
US20030101084A1 (en) * | 2001-11-19 | 2003-05-29 | Otero Perez Clara Maria | Method and system for allocating a budget surplus to a task |
US20160364267A1 (en) * | 2015-06-11 | 2016-12-15 | Honeywell International Inc. | Systems and methods for scheduling tasks using sliding time windows |
-
2021
- 2021-08-31 DE DE102021209509.7A patent/DE102021209509A1/de active Pending
-
2022
- 2022-07-14 CN CN202280072334.2A patent/CN118159946A/zh active Pending
- 2022-07-14 WO PCT/EP2022/069756 patent/WO2023030736A1/de active Application Filing
- 2022-07-14 EP EP22753614.1A patent/EP4396678A1/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189022B1 (en) * | 1997-08-20 | 2001-02-13 | Honeywell International Inc. | Slack scheduling for improved response times of period transformed processes |
US20030101084A1 (en) * | 2001-11-19 | 2003-05-29 | Otero Perez Clara Maria | Method and system for allocating a budget surplus to a task |
US20160364267A1 (en) * | 2015-06-11 | 2016-12-15 | Honeywell International Inc. | Systems and methods for scheduling tasks using sliding time windows |
Also Published As
Publication number | Publication date |
---|---|
CN118159946A (zh) | 2024-06-07 |
DE102021209509A1 (de) | 2023-03-02 |
EP4396678A1 (de) | 2024-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102006010400B4 (de) | Verfahren zur Erstellung eines optimierten Ablaufplans für ein zeitgesteuertes verteiltes Rechnersystem | |
DE4410775C2 (de) | Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät | |
DE102014103139B4 (de) | Parallelisierte Ausführung von Single-Core Steuerungssoftware auf Multi-Core Fahrzeugsteuergeräten | |
DE102007051803A1 (de) | Verfahren und Vorrichtung zur Datenverarbeitung | |
WO2011063869A1 (de) | Verfahren zum ermöglichen einer sequentiellen, nicht blockierenden abarbeitung von anweisungen in nebenläufigen tasks in einer steuereinrichtung | |
EP3861440A1 (de) | Verfahren zur datenverarbeitung und speicherprogrammierbare steuerung | |
DE102015100566A1 (de) | Verfahren und leichter Mechanismus für gemischte kritische Anwendungen | |
EP4396678A1 (de) | Verfahren und vorrichtung zum bearbeiten von zumindest einer ersten und einer zweiten rechenoperation in einer recheneinheit | |
DE102008019287B4 (de) | Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks | |
WO2004100090A1 (de) | Speicherverwaltung bei einem tragbaren datenträger | |
DE102018104193A1 (de) | Grafik-Engine-Ressourcenverwaltung und -Zuweisungssystem | |
DE102019219260A1 (de) | Verfahren zum Betreiben einer Recheneinheit | |
DE102018205390A1 (de) | Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten | |
DE102020205720A1 (de) | Computerimplementiertes Verfahren und Vorrichtung zur Planung von Ressourcen | |
DE69710780T2 (de) | Unabhängige, entfernte ein-/ausgabesteuervorrichtung | |
EP3332305B1 (de) | Verfahren und vorrichtung zum bereitstellen eines taktes für eine elektronische schaltung und prozessorvorrichtung | |
DE102016219721B4 (de) | Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung | |
DE112018003505T5 (de) | Zugriffssteuereinrichtung | |
DE102007051201A1 (de) | Koordinierte Dual-Interface-Kommunikation | |
DE102014105109A1 (de) | Verfahren und Vorrichtung zum Erzeugen und Abarbeiten von Testfällen | |
DE102023104360A1 (de) | Verfahren und Optimierungsagent zum Optimieren eines Systems mit mehreren neuronalen Netzen | |
DE102022209700A1 (de) | Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze | |
DE102017124105A1 (de) | Verfahren zur Portierung einer Single-Core Steuerungssoftware auf ein Multi-Core Steuergerät oder zur Optimierung einer Multi-Core Steuerungssoftware | |
EP2780804B1 (de) | Verfahren zur steuerung der programmausführung | |
DE60315264T2 (de) | Durch timebox angesteuertes scheduling von softwarekomponenten in hard-echtzeitsystemen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22753614 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022753614 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2022753614 Country of ref document: EP Effective date: 20240402 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202280072334.2 Country of ref document: CN |