Dynamic Thread Assignment via Hardware Scheduler Hints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face challenges in efficiently scheduling and executing multiple threads due to limitations in thread assignment policies, leading to suboptimal instruction level parallelism and increased power consumption, particularly in loops where instructions are assigned to the same physical thread in each iteration.

Innovation Solution

The implementation of a dynamic binary translator that assigns logical threads to physical threads based on thread map hints, allowing for dynamic adaptation of thread assignment at runtime, enabling different physical threads for each execution of the same instruction stream and optimizing for observed run-time behavior.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are assigned to the same physical thread in each loop iteration, then thread assignment is simple and deterministic, but instruction level parallelism is reduced and power consumption increases

Engineering Contradiction:
Improveinstruction level parallelismVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic thread assignment where the physical thread assigned to a logical thread varies across loop iterations. The thread map hint mechanism allows the system to dynamically select different physical threads (e.g., PT0, PT1, PT2) for the same logical thread in different iterations, enabling the system to adapt to runtime conditions and maximize instruction level parallelism while distributing workload to reduce power consumption.

Inventive Principle:
Principle #15Dynamics

2Productivity

If dynamic thread assignment is implemented, then instruction level parallelism and performance are improved, but system complexity increases

Engineering Contradiction:
ImproveperformanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a thread map hint as an intermediary mechanism that bridges the compiler/frontend and the scheduler. This hint structure carries thread assignment information through the instruction stream, allowing the scheduler to make informed dynamic assignment decisions without requiring complex direct communication or coordination between system components. The hint acts as a lightweight mediator that enables dynamic behavior with minimal overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If static thread assignment is used, then scheduling is efficient and simple, but false ordering constraints are created and performance is suboptimal

Engineering Contradiction:
Improvescheduling efficiencyVSAvoidperformance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent performs preliminary thread assignment analysis during compilation or code generation, where the compiler or frontend analyzes the instruction stream and inserts thread map hints that encode optimal thread assignment information. This preliminary action prepares the instruction stream with pre-computed thread mapping data, allowing the runtime scheduler to efficiently retrieve and apply the assignments without performing complex analysis at execution time, thus maintaining scheduling efficiency while enabling optimal performance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10877765B2Apparatuses and methods to assign a logical thread to a physical thread
Publication Date: 2020.12.29 INTEL CORP
  • US10877765B2 patent drawing
  • US10877765B2 patent drawing
  • US10877765B2 patent drawing

AI summary

Methods and apparatuses relating to assigning a logical thread to a physical thread. In one embodiment, an apparatus includes a data storage device that stores code that when executed by a hardware processor causes the hardware processor to perform the following: translating an instruction into a translated instruction, assigning a logical thread for the translated instruction, and providing a thread map hint for the translated instruction; and a hardware scheduler to assign a physical thread of the hardware processor to execute the logical thread based on the thread map hint.