Opportunistic Consumer Instruction Steering via Value Prediction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-cluster processors, cluster-to-cluster latency occurs when consumer instructions depend on producer instructions, leading to instruction load imbalances and reduced throughput due to the need for produced values to be passed between clusters, which can cause stalls and inefficiencies.

Innovation Solution

A value predictor circuit generates predicted values for producer instructions, allowing the steering circuit to steer consumer instructions to a different cluster without waiting for the actual produced value, using the predicted value as an input, thus avoiding cluster-to-cluster latency and balancing instruction loads across clusters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If consumer instructions are steered to different clusters than producer instructions to balance load, then instruction load balance is improved, but cluster-to-cluster latency increases causing stalls

Engineering Contradiction:
Improveinstruction load balanceVSAvoidcluster-to-cluster latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The value predictor circuit generates predicted values for producer instructions before they are actually executed. This preliminary action allows consumer instructions to be steered to different clusters immediately using the predicted value, rather than waiting for the actual produced value, thus avoiding cluster-to-cluster latency while maintaining load balance

Inventive Principle:
Principle #10Preliminary action

2Reliability

If consumer instructions wait for actual produced values from other clusters, then data accuracy is improved, but execution throughput decreases due to stalls

Engineering Contradiction:
Improvedata accuracyVSAvoidexecution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The value predictor circuit creates a copy or prediction of the produced value that can be immediately used by consumer instructions in different clusters. This predicted value copy allows execution to proceed without waiting for the actual value, maintaining throughput while data accuracy is preserved through validation mechanisms

Inventive Principle:
Principle #26Copying

3Measurement precision

If a centralized scheduler is used to monitor all instruction dependencies, then dependency tracking accuracy is improved, but circuit complexity and wire length increase exponentially

Engineering Contradiction:
Improvedependency tracking accuracyVSAvoidscheduler circuit complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system segments the scheduling function by distributing value prediction and dependency tracking to individual clusters rather than using a single centralized scheduler. Each cluster has its own value predictor and scheduler, reducing overall circuit complexity and wire length while maintaining accurate dependency tracking through inter-cluster communication of predicted values

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11327763B2Opportunistic consumer instruction steering based on producer instruction value prediction in a multi-cluster processor
Publication Date: 2022.05.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11327763B2 patent drawing
  • US11327763B2 patent drawing
  • US11327763B2 patent drawing

AI summary

Opportunistic consumer instruction steering based on producer instruction value prediction in a multi-cluster processor is disclosed. A processor provides producer instructions and consumer instructions to a steering circuit that steers the program instructions to clusters of instruction execution circuits. An input value provided to a consumer instruction may be a produced value of a producer instruction, creating a dependency. The steering circuit steers a producer instruction to a first cluster and, in response to receiving the consumer instruction and the predicted value of the producer instruction, provides the predicted value to at least a second cluster and steers the consumer instruction to the second cluster for execution with the predicted value as the input value. A consumer instruction can be executed in a different cluster than a producer instruction without a cluster-to-cluster latency penalty, which allows the instruction loads to be better balanced among the clusters for higher processor throughput.