Dynamic Task Scheduling for Real-Time Multi-Core Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Real-time systems face challenges in dynamically managing task dependencies and ensuring timely execution of tasks across multiple computation cores, particularly in systems with rapidly changing dependencies and stringent time constraints.

Innovation Solution

A method and apparatus that determine the allocation and sequence of tasks across multiple computation cores within a cycle, allowing for flexible reaction to changes in task dependencies and ensuring real-time execution by prioritizing tasks based on their rank and runtime, enabling dynamic scheduling and efficient resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If tasks are distributed dynamically to computation cores at runtime, then the system can react flexibly to changes in task dependencies, but real-time execution guarantees are compromised

Engineering Contradiction:
Improveflexibility to changes in task dependenciesVSAvoidreal-time execution guarantee
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent determines the sequence for at least partial execution of tasks and the allocation of tasks to computation cores before the execution of tasks in the current cycle. This preliminary determination in a preceding cycle ensures that scheduling decisions are made in advance, maintaining real-time execution guarantees while still allowing dynamic adaptation to changing task dependencies.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If tasks are executed sequentially on one computation core to handle dependencies, then execution simplicity is maintained, but computation efficiency and productivity are reduced

Engineering Contradiction:
Improveexecution simplicityVSAvoidcomputation efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments tasks into groups that can be executed in parallel on multiple computation cores. By determining the execution sequence and core allocation dynamically before execution, the system divides the computational workload across multiple cores while maintaining proper dependency handling, thus improving computation efficiency without sacrificing execution simplicity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic task allocation and sequence determination that adapts to changing task dependencies. Instead of fixed sequential execution or static parallel assignment, the system dynamically adjusts which tasks run on which cores based on current dependency states, maximizing computational efficiency while maintaining manageable complexity.

Inventive Principle:
Principle #15Dynamics

3Loss of time

If the scheduling sequence is determined within the current cycle, then reaction time to changes is reduced, but computation time for scheduling increases the cycle duration

Engineering Contradiction:
Improvereaction time to changesVSAvoidcycle duration
Core Design Contradiction:
Loss of timeVSDuration of action of moving object

Solution Approach 1:

The patent determines the task execution sequence and allocation in a preceding cycle before the current cycle's task execution begins. This timing strategy allows the scheduling computation to be performed when the system is not under immediate execution pressure, reducing the impact on current cycle duration while still achieving fast reaction to dependency changes by the time execution starts.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10452425B2Apparatus and method for processing a plurality of tasks
Publication Date: 2019.10.22 ROBERT BOSCH GMBH
  • US10452425B2 patent drawing
  • US10452425B2 patent drawing
  • US10452425B2 patent drawing

AI summary

An apparatus and a method for processing a plurality of tasks in cycles on a plurality of computation cores, provision being made also to determine, within one cycle for processing the plurality of tasks, an allocation of the plurality of tasks to the plurality of computation cores and a sequence for an at least partial execution of the plurality of tasks.