Multi-core Task Scheduler Load Balancing via Unified Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processor systems, task schedulers typically assign tasks independently based on specific scheduling algorithms without considering tasks from other algorithms, leading to load imbalance and suboptimal performance.

Innovation Solution

A method that obtains and refers to task assignment information from multiple scheduling classes to assign runnable tasks, allowing for a more balanced distribution across processor cores by considering tasks from different scheduling classes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If the task scheduler assigns tasks independently based on specific scheduling algorithms without considering tasks from other algorithms, then the scheduling algorithm can be implemented simply, but load imbalance occurs and system performance deteriorates

Engineering Contradiction:
Improvescheduling implementation simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent merges the task assignment processes of different scheduling algorithms (RT and CFS) into a unified assignment decision-making process. The task scheduler now considers task assignment information from multiple scheduling classes simultaneously, combining the benefits of different scheduling algorithms to achieve better load balance and system performance while maintaining the simplicity of each individual algorithm's core logic.

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If the task scheduler assigns tasks independently based on specific scheduling algorithms, then each algorithm can operate autonomously, but load imbalance occurs among processor cores

Engineering Contradiction:
Improvescheduling algorithm autonomyVSAvoidload balance
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent introduces a feedback mechanism where the task scheduler continuously monitors task assignment information from multiple scheduling classes and uses this feedback to make more informed assignment decisions. By considering the current state of tasks across different scheduling classes, the system dynamically adjusts task assignments to achieve better load balance while preserving the autonomy of individual scheduling algorithms.

Inventive Principle:
Principle #23Feedback

3Device complexity

If the task scheduler only considers task assignment information from the same scheduling class, then the decision-making process is simple, but processor core performance is not optimized

Engineering Contradiction:
Improvedecision-making complexityVSAvoidprocessor core performance
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent makes the task scheduler universal by enabling it to consider task assignment information from multiple scheduling classes when making assignment decisions. This multi-functional approach allows the scheduler to optimize processor core performance by leveraging information from different scheduling contexts, while the complexity increase is managed through structured information gathering and processing mechanisms.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9852005B2Multi-core processor systems and methods for assigning tasks in a multi-core processor system
Publication Date: 2017.12.26 MEDIATEK INC
  • US9852005B2 patent drawing
  • US9852005B2 patent drawing
  • US9852005B2 patent drawing

AI summary

A multi-core processor system and a method for assigning tasks are provided. The multi-core processor system includes a plurality of processor cores, configured to perform a plurality of tasks, and each of the tasks is in a respective one of a plurality of scheduling classes. The multi-core processor system further includes a task scheduler, configured to obtain first task assignment information about tasks in a first scheduling class assigned to the processor cores, obtain second task assignment information about tasks in one or more other scheduling classes assigned to the processor cores, and refer to the first task assignment information and the second task assignment information to assign a runnable task in the first scheduling class to one of the processor cores.