Thread Pause Processor Back-End Resource Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor multithreading, spin-wait loops consume significant power and resources without improving performance, as threads wait for shared resources or synchronization, leading to inefficient handling and resource contention.

Innovation Solution

The introduction of a thread pause instruction that pauses the execution of one thread to free resources for another, allowing the processor to idle specific components and reduce power consumption by emptying the back-end portion of the processor, thereby improving resource utilization and reducing power usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a spin-wait loop is executed rapidly to check for shared resource availability, then the thread can quickly detect resource availability, but power consumption and execution resource usage increase significantly

Engineering Contradiction:
Improvespin-wait loop execution speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The processor implements periodic action by pausing thread execution at specific pipeline stages for predetermined time periods between spin-wait loop iterations. This creates a rhythmic pattern of execution-pause-check rather than continuous execution, reducing power consumption while maintaining the ability to detect resource availability. The pause instruction inserts idle cycles into the spin-wait loop, transforming continuous rapid checking into periodic checking with controlled intervals.

Inventive Principle:
Principle #19Periodic action

2Reliability

If a thread continues executing spin-wait loop instructions, then the thread maintains readiness to access shared resources, but other threads cannot utilize the idle processor resources

Engineering Contradiction:
Improvethread readiness for resource accessVSAvoidoverall system throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processor segments the thread execution into distinct phases by pausing at specific pipeline stages (front-end or back-end). This segmentation allows different parts of the processor to be utilized differently - the paused thread's resources become available to other threads while the paused thread maintains its execution context. The segmentation creates opportunities for other threads to execute concurrently in the freed pipeline stages.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pause instruction acts as an intermediary mechanism that mediates between thread readiness and resource utilization. It introduces a controlled intermediate state where the thread is neither fully active nor completely blocked, allowing the processor to balance between maintaining thread readiness and enabling other threads to utilize freed resources. The pause instruction serves as a bridge that coordinates resource sharing among multiple threads.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If the processor maintains all components active during thread waiting, then immediate response to resource availability is possible, but power consumption increases

Engineering Contradiction:
Improveresponse time to resource availabilityVSAvoidprocessor component power consumption
Core Design Contradiction:
SpeedVSUse of energy by stationary object

Solution Approach 1:

The processor implements dynamics by making pipeline stages dynamically pauseable and resumable based on thread execution state. Instead of static active/idle states, the pipeline stages can transition between active and paused states mid-execution. This dynamic control allows the processor to adapt power consumption levels while maintaining the capability for rapid resumption when resources become available. The predetermined pause periods create dynamic idle windows that can be adjusted based on system conditions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10467011B2Thread pause processors, methods, systems, and instructions
Publication Date: 2019.11.05 INTEL CORP
  • US10467011B2 patent drawing
  • US10467011B2 patent drawing
  • US10467011B2 patent drawing

AI summary

A processor of an aspect includes a decode unit to decode a thread pause instruction from a first thread. A back-end portion of the processor is coupled with the decode unit. The back-end portion of the processor, in response to the thread pause instruction, is to pause processing of subsequent instructions of the first thread for execution. The subsequent instructions occur after the thread pause instruction in program order. The back-end portion, in response to the thread pause instruction, is also to keep at least a majority of the back-end portion of the processor, empty of instructions of the first thread, except for the thread pause instruction, for a predetermined period of time. The majority may include a plurality of execution units and an instruction queue unit.