Unified Pick Queue Dependency Matrix for Speculative Load Replay

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern microprocessors face inefficiencies in identifying and managing dependent instructions during speculative load operations, particularly in deep pipelines, where mispredictions lead to increased latency and overhead in replay mechanisms, such as flush replay and selective replay, which can reduce the benefits of out-of-order speculation.

Innovation Solution

A processor with a unified pick queue that dynamically allocates entries for decoded and renamed instructions, using dependency bits and a dependency vector to efficiently identify dependent instructions, allowing for selective replay and reducing the need for serial processes like content-addressable memory (CAM) circuitry.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If deep pipelining is used to support higher clock frequencies, then device speed is improved, but the number of logic levels that can fit within a single clock cycle decreases

Engineering Contradiction:
Improveclock frequencyVSAvoidlogic levels per clock cycle
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The pick queue is divided into multiple segments or rows, with each segment able to independently track dependencies for a subset of instructions. This segmentation allows the dependency tracking logic to be distributed across multiple smaller units, reducing the complexity of individual logic blocks while maintaining overall functionality across the deep pipeline.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension for dependency tracking by using a dependency matrix that operates in parallel with the pipeline stages. Instead of tracking dependencies sequentially through each pipeline stage, the system uses a multi-dimensional approach where dependency bits are maintained across multiple queue entries simultaneously, enabling faster dependency resolution despite increased pipeline depth.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If the speculative window for load instructions is increased to allow more younger dependent instructions to execute speculatively, then out-of-order speculation benefits are improved, but the number of instructions that need to be re-executed on load miss increases

Engineering Contradiction:
Improveout-of-order speculation throughputVSAvoidreplay time on load miss
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts and isolates the dependency tracking information into a separate dependency matrix structure that is independent of the main instruction queue. When a load miss occurs, only the specific dependency information related to that load instruction needs to be cleared and re-evaluated, rather than flushing the entire speculative window. This extraction allows selective replay of only the affected instructions.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The dependency matrix provides local quality tracking by maintaining specific dependency bits for each instruction entry independently. This allows the system to identify and replay only the locally affected instructions when a load miss occurs, rather than globally flushing all speculative instructions. Each row in the dependency matrix can be independently updated based on load hit/miss status.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If broadcast-based selective replay is used to identify younger dependent instructions, then dependency identification accuracy is improved, but power consumption and circuit complexity increase due to CAM circuitry

Engineering Contradiction:
Improvedependency identification accuracyVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by stationary object

Solution Approach 1:

The patent uses simple, low-cost dependency bits stored in regular register file entries rather than expensive content-addressable memory (CAM) circuitry. These dependency bits are easily updated and replaced when needed, functioning as disposable information structures that don't require complex retrieval logic. This approach dramatically reduces power consumption while maintaining sufficient accuracy for dependency tracking.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Solution Approach 2:

The patent replaces the mechanical CAM-based broadcast comparison system with a simpler register-file-based dependency bit system. Instead of broadcasting comparison signals across the entire instruction queue using CAM circuitry, the system uses direct register file reads and simple logical operations on dependency bits, substituting complex mechanical comparison mechanisms with simpler electronic register operations.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Device complexity

If all younger instructions are deallocated from the pick queue at the time of early pick before load miss, then storage overhead is reduced, but performance suffers due to re-fetching overhead

Engineering Contradiction:
Improvepick queue storage overheadVSAvoidinstruction execution throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs preliminary dependency tracking and marking of younger dependent instructions in the pick queue before the load miss is detected. By pre-identifying and tagging the affected instructions using dependency bits, the system prepares the necessary information in advance, allowing for rapid selective replay without the need to re-fetch instructions from external memory. This preliminary action maintains high throughput while reducing storage requirements.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9262171B2Dependency matrix for the determination of load dependencies
Publication Date: 2016.02.16 SUN MICROSYSTEMS INC
  • US9262171B2 patent drawing
  • US9262171B2 patent drawing
  • US9262171B2 patent drawing

AI summary

Systems and methods for identification of dependent instructions on speculative load operations in a processor. A processor allocates entries of a unified pick queue for decoded and renamed instructions. Each entry of a corresponding dependency matrix is configured to store a dependency bit for each other instruction in the pick queue. The processor speculates that loads will hit in the data cache, hit in the TLB and not have a read after write (RAW) hazard. For each unresolved load, the pick queue tracks dependent instructions via dependency vectors based upon the dependency matrix. If a load speculation is found to be incorrect, dependent instructions in the pick queue are reset to allow for subsequent picking, and dependent instructions in flight are canceled. On completion of a load miss, dependent operations are re-issued. On resolution of a TLB miss or RAW hazard, the original load is replayed and dependent operations are issued again from the pick queue.