Hardware Thread Switching for Scheduling Policy in Processor

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor systems, lower priority software threads cannot be dispatched to hardware threads occupied by higher priority threads, leading to incomplete execution due to the inability to preempt high priority threads without appropriate privileges or available alternative threads.

Innovation Solution

A processor-based system that determines if a higher priority thread is occupying a requested hardware thread and issues an interrupt to switch the high priority thread to another thread if the lower priority thread has the necessary privileges and an available alternative thread exists, allowing the lower priority thread to access the original hardware thread.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a lower priority software thread requests to be dispatched to a hardware thread occupied by a higher priority thread, then the lower priority thread can be forced to preempt the higher priority thread through hardware thread switching, but the higher priority thread's execution is interrupted and it must be switched to another hardware thread

Engineering Contradiction:
Improvedispatching capability of lower priority threadsVSAvoidcontext-switch overhead and execution interruption
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system changes the scheduling parameter by allowing lower priority threads to preempt higher priority threads under specific conditions (when target hardware thread is unavailable), transforming the traditional priority-based scheduling into a conditional preemption model that balances thread dispatching needs with execution efficiency

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The processor acts as an intermediary by monitoring hardware thread availability and automatically issuing interrupts to switch higher priority threads when a lower priority thread needs to access an occupied hardware thread, mediating between scheduling requests and actual thread execution without requiring complex software intervention

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If hardware thread switching is implemented to allow lower priority threads to access occupied hardware threads, then resource utilization improves, but the complexity of the scheduling system increases due to interrupt management and thread switching logic

Engineering Contradiction:
Improvehardware thread allocation flexibilityVSAvoidscheduling system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The scheduling system performs self-service by automatically detecting when a lower priority thread requests an occupied hardware thread and autonomously executing the switch by issuing an interrupt to the higher priority thread, eliminating the need for external scheduling complex and reducing system overhead

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system segments the thread switching process into distinct phases: detection of hardware thread occupation, determination of preemption eligibility, issuance of interrupt to switch higher priority thread, and final dispatch of lower priority thread, making the complex scheduling operation manageable and maintainable

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10831539B2Hardware thread switching for scheduling policy in a processor
Publication Date: 2020.11.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10831539B2 patent drawing
  • US10831539B2 patent drawing
  • US10831539B2 patent drawing

AI summary

Examples of techniques for hardware thread switching for scheduling policy in a processor are described herein. An aspect includes, based on receiving a request from a first software thread to dispatch to a first hardware thread, determining that the first hardware thread is occupied by a second software thread that has a higher priority than the first software thread. Another aspect includes issuing an interrupt to switch the second software thread from the first hardware thread to a second hardware thread. Another aspect includes, based on switching of the second software thread from the first hardware thread to the second hardware thread, dispatching the first software thread to the first hardware thread.