Cache Exclusivity for Critical Task Execution in Multi-Core Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processor complexes, critical tasks often execute slowly due to sharing cache resources with non-critical tasks, leading to inefficient performance as they rely on shared L1, L2, and L3 caches.

Innovation Solution

A task scheduler prioritizes critical tasks by identifying the processing entity with the least runtime and allocates exclusive use of the cache, ensuring critical tasks are executed on a clean cache, thereby improving execution speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If cache resources are shared among multiple tasks in a multi-core processor complex, then resource utilization is improved, but execution speed of critical tasks deteriorates

Engineering Contradiction:
Improvecache resource utilizationVSAvoidcritical task execution speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The system dynamically adjusts cache allocation based on task priority. Critical tasks receive exclusive cache access when scheduled, while non-critical tasks share cache resources during other periods. This dynamic switching resolves the contradiction by making cache allocation flexible rather than static, allowing high utilization overall while ensuring fast execution when critical tasks need it.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The cache allocation parameter changes based on the scheduled task's priority level. When a critical task is scheduled on a processing entity, the cache exclusivity parameter is set to true, granting exclusive access. When non-critical tasks are scheduled, the parameter allows shared access. This parameter change enables the system to optimize for either speed or utilization depending on current workload requirements.

Inventive Principle:
Principle #35Parameter changes

2Speed

If critical tasks are prioritized for exclusive cache use, then execution speed is improved, but device complexity increases

Engineering Contradiction:
Improvecritical task execution speedVSAvoidscheduler complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system segments tasks into two categories: critical and non-critical. This segmentation simplifies the scheduling logic compared to complex priority queues or real-time scheduling algorithms. By dividing the task space into two distinct groups, the scheduler can apply simple rules: grant exclusive cache access to critical tasks and allow sharing for non-critical tasks, reducing overall system complexity while achieving the speed improvement.

Inventive Principle:
Principle #1Segmentation

3Speed

If tasks are moved between processing entities to provide clean cache, then critical task performance is improved, but loss of time occurs during task migration

Engineering Contradiction:
Improvecritical task execution speedVSAvoidtask migration time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The scheduler identifies processing entities with clean caches in advance and proactively assigns critical tasks to these entities before execution begins. By performing the selection of appropriate processing entities beforehand and maintaining awareness of cache states, the system avoids the need for time-consuming task migrations during critical task execution, thus preserving execution speed while still providing clean cache when needed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10248457B2Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task
Publication Date: 2019.04.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10248457B2 patent drawing
  • US10248457B2 patent drawing
  • US10248457B2 patent drawing

AI summary

A plurality of processing entities are maintained in a processor complex. In response to determining that a task is a critical task, the critical task is dispatched to a scheduler, wherein it is preferable to prioritize execution of critical tasks over non-critical tasks. In response to dispatching the critical task to the scheduler, the scheduler determines which processing entity of the plurality of processing entities has a least amount of processing remaining to be performed for currently scheduled tasks. Tasks queued on the determined processing entity are moved to other processing entities, and the currently scheduled tasks on the determined processing entity are completed. In response to moving tasks queued on the determined processing entity to other processing entities and completing the currently scheduled tasks on the determined processing entity, the critical task is dispatched on the determined processing entity.