Dynamic Thread Scheduling for Shared Resource Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded processor cores and multi-processor systems, shared resources can lead to significant slowdowns for threads due to intensive usage by one thread, even when sufficient time slots are allocated, causing real-time threads to miss instruction execution deadlines.

Innovation Solution

A data processing apparatus comprising multiple processing entities and shared resources, where a scheduler detects usage of shared resources and adjusts execution time slots based on this detection, potentially throttling resource-intensive threads to ensure timely execution of other threads, using a combination of hardware, software, and firmware to monitor and manage resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shared resources are used by multiple threads, then resource utilization efficiency is improved, but execution speed of individual threads deteriorates due to resource contention

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidexecution speed of threads
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

A resource usage monitoring mechanism is introduced as an intermediary between threads and shared resources. The scheduler detects resource usage patterns and intervenes by adjusting thread scheduling decisions, effectively mediating the conflict between multiple threads competing for shared resources without requiring physical resource duplication

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The scheduling policy is made dynamic by continuously monitoring resource usage and adapting thread execution timing based on detected contention. The system transitions from static time slot allocation to dynamic adjustment where time slots are modified in real-time based on resource usage detection, allowing the system to optimize both resource utilization and thread execution speed adaptively

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If time slots are allocated to threads, then thread execution scheduling is improved, but real-time thread deadlines are missed due to shared resource stalls

Engineering Contradiction:
Improvethread execution schedulingVSAvoidreal-time deadline meeting
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

A feedback loop is established where the scheduler continuously monitors resource usage and detects when threads are stalled due to resource contention. This feedback information is used to adjust future scheduling decisions, allowing the system to proactively prevent deadline misses by identifying and addressing resource contention issues before they cause real-time failures

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary detection of resource usage patterns and potential contention before it critically impacts real-time threads. By detecting resource usage in advance and adjusting scheduling proactively, the system prevents deadline misses rather than reacting after they occur, ensuring real-time reliability

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8695002B2Multi-threaded processors and multi-processor systems comprising shared resources
Publication Date: 2014.04.08 MAXLINEAR INC
  • US8695002B2 patent drawing
  • US8695002B2 patent drawing
  • US8695002B2 patent drawing

AI summary

An apparatus is provided comprising at least two processing entities. Shared resources are usable by a first and a second processing entity. A use of the shared resources is detected, and the execution of instructions associated with said processing entities is controlled based on the detection.