Decode Unit Instruction Load Balancing via Bias Counter

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern multi-threaded processors face performance issues due to imbalanced instruction loads between multiple execution units, leading to idle or under-loaded units while others wait for availability.

Innovation Solution

A system and method that assigns instructions to execution units based on their type and historical assignment patterns, using a bias counter to balance the load by temporarily favoring less utilized units, ensuring even distribution across multiple execution units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are assigned to execution units based on type without considering load balance, then assignment simplicity is maintained, but execution units become imbalanced leading to idle units and performance slowdown

Engineering Contradiction:
Improveprocessor performanceVSAvoidassignment mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a feedback mechanism where the decode unit monitors the load balance between execution units and dynamically adjusts instruction assignment accordingly. When one execution unit becomes overloaded, the system detects this imbalance and redirects subsequent instructions to underutilized units, ensuring continuous optimization of processor performance without requiring complex manual intervention

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The instruction assignment mechanism transitions from a static, fixed assignment based solely on instruction type to a dynamic system that adapts in real-time based on current execution unit utilization. The decode unit continuously evaluates load conditions and modifies assignment decisions accordingly, allowing the system to respond to changing workloads and maintain optimal performance

Inventive Principle:
Principle #15Dynamics

2Productivity

If instructions are assigned to specific execution units based on instruction type only, then assignment speed is maintained, but load distribution becomes uneven causing bottlenecks

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidinstruction waiting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system employs feedback from execution unit status to the decode unit, which uses this information to make informed assignment decisions. By monitoring which execution units are currently busy or idle, the decode unit can direct instructions to appropriate units that are ready to execute, minimizing waiting time and preventing bottlenecks while maintaining high processing efficiency

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The decode unit performs preliminary evaluation of execution unit availability before making assignment decisions. By checking the current state of execution units in advance and proactively directing instructions to underutilized units, the system prevents bottlenecks before they occur, reducing instruction waiting time and maintaining steady processing flow

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9122487B2System and method for balancing instruction loads between multiple execution units using assignment history
Publication Date: 2015.09.01 SUN MICROSYSTEMS INC
  • US9122487B2 patent drawing
  • US9122487B2 patent drawing
  • US9122487B2 patent drawing

AI summary

A system and method for balancing instruction loads between multiple execution units are disclosed. One or more execution units may be represented by a slot configured to accept instructions on behalf of the execution unit(s). A decode unit may assign instructions to a particular slot for subsequent scheduling for execution. Slot assignments may be made based on an instruction's type and/or on a history of previous slot assignments. A cumulative slot assignment history may be maintained in a bias counter, the value of which reflects the bias of previous slot assignments. Slot assignments may be determined based on the value of the bias counter, in order to balance the instruction load across all slots, and all execution units. The bias counter may reflect slot assignments made only within a desired historical window. A separate data structure may store data reflecting the actual slot assignments made during the desired historical window.