Dynamic Performance Biasing in SMT Processor Cores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems with simultaneous multithreading (SMT) lack the ability to dynamically adjust resource allocation based on thread performance preferences, leading to equal sharing of resources among logical processors, which hinders optimal performance for critical threads.

Innovation Solution

Implementing dynamic performance biasing by using thread preference indicators to compute relative performance bias values for each logical processor, allowing for dynamic adjustment of resource allocation, execution cycles, and pipeline component utilization based on thread priority, enabling more efficient resource distribution within an SMT core.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If unbiased resource sharing is used among logical processors, then system simplicity is maintained, but performance of critical threads cannot be optimized

Engineering Contradiction:
Improvethread performanceVSAvoidresource allocation mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies local quality by differentiating resource allocation based on thread characteristics. Thread preference indicators are assigned to specific threads to denote their performance needs, and the system dynamically adjusts resource allocation to provide different quality levels of service to different threads. High-priority threads receive more execution cycles and pipeline resources, while lower-priority threads receive fewer resources, creating localized optimization without requiring complete system redesign.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system implements dynamics by making resource allocation adjustable and adaptive rather than static. The thread preference indicators and performance bias values are dynamically computed and updated based on changing thread characteristics and system conditions. The allocation mechanism can respond to runtime changes in thread priority and performance requirements, allowing the system to adapt resource distribution in real-time without requiring system restart or manual reconfiguration.

Inventive Principle:
Principle #15Dynamics

2Productivity

If equal execution cycles are allocated to all logical processors, then fairness is maintained, but critical threads do not receive sufficient processing time

Engineering Contradiction:
Improvecritical thread throughputVSAvoidresource management
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system applies self-service by enabling threads to indicate their own performance preferences through thread preference indicators. Threads can self-identify their priority levels and performance requirements, and the system uses these self-provided indicators to automatically adjust resource allocation. This eliminates the need for external manual intervention or complex operating system policies to determine thread priority, as threads effectively serve themselves by declaring their needs.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements feedback mechanisms where the system continuously monitors thread performance and dynamically adjusts resource allocation based on computed performance bias values. The allocation decision feedback loop uses thread preference indicators as input and adjusts execution cycle distribution accordingly, creating a responsive system that adapts to changing performance requirements while maintaining operational simplicity.

Inventive Principle:
Principle #23Feedback

3Productivity

If hardware resources are shared equally among threads, then implementation simplicity is maintained, but optimal performance for high-priority threads is hindered

Engineering Contradiction:
Improveapplication performanceVSAvoidperformance biasing mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system applies parameter changes by modifying resource allocation parameters based on thread preference indicators. Instead of changing the fundamental hardware architecture, the system adjusts operational parameters such as execution cycle counts, pipeline stage allocations, and resource sharing ratios dynamically. These parameter adjustments allow the same hardware to serve multiple performance levels, optimizing application performance without requiring complex hardware modifications.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10503550B2Dynamic performance biasing in a processor
Publication Date: 2019.12.10 INTEL CORP
  • US10503550B2 patent drawing
  • US10503550B2 patent drawing
  • US10503550B2 patent drawing

AI summary

Technologies are provided in embodiments to dynamically bias performance of logical processors in a core of a processor. One embodiment includes identifying a first logical processor associated with a first thread of an application and a second logical processor associated with a second thread, obtaining first and second thread preference indicators associated with the first and second threads, respectively, computing a first relative performance bias value for the first logical processor based, at least in part, on a relativeness of the first and second thread preference indicators, and adjusting a performance bias of the first logical processor based on the first relative performance bias value. Embodiments can further include increasing the performance bias of the first logical processor based, at least in part, on the first relative performance bias value indicating a first performance preference that is higher than a second performance preference.