Unified Queue for Decoupled Branch Prediction and Fetch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor designs face performance degradation due to tightly coupled branch prediction and instruction fetch operations, leading to cache misses and resource wastage, especially in large workloads where mispredictions persist, increasing both performance and power costs.

Innovation Solution

A unified queue is implemented to perform decoupled prediction and fetch operations, storing identifier, prediction, and tag information, allowing independent updates and corrective actions based on branch prediction and tag information, thereby reducing the impact of mispredictions and improving processor efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If branch prediction and instruction fetch are tightly coupled, then the design is simpler and latency is lower, but performance suffers due to incorrect predictions causing cache misses and resource wastage

Engineering Contradiction:
Improveprediction accuracyVSAvoiddesign complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the traditionally coupled branch prediction and instruction fetch operations into separate, independently operable components. The branch predictor operates independently to generate predictions, while the instruction fetch unit operates separately to retrieve instructions. This segmentation allows each component to be optimized independently, improving prediction accuracy without proportionally increasing overall system complexity.

Inventive Principle:
Principle #1Segmentation

2Reliability

If branch prediction and instruction fetch are decoupled, then prediction accuracy can be improved, but control flow complexity increases

Engineering Contradiction:
Improveprediction accuracyVSAvoidcontrol flow complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a buffer structure as an intermediary between the branch predictor and instruction fetch unit. This buffer stores prediction results and coordinates the interaction between the decoupled components, managing control flow without requiring complex real-time coordination logic. The intermediary absorbs the complexity of synchronization, allowing the predictor and fetch unit to operate independently while maintaining correct control flow.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If tag and data portions of prefetch are decoupled, then cache miss performance improves, but extra queues are introduced increasing processor cycle time

Engineering Contradiction:
Improvecache hit rateVSAvoidprocessor cycle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges the tag and data portions of the prefetch operation into a unified prefetch mechanism. Instead of completely decoupling tags and data into separate queues, the system performs tag validation and data prefetching in an integrated manner, reducing the number of intermediate queues and minimizing the time instructions spend in the front end of the processor while still improving cache hit rates.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11762660B2Virtual 3-way decoupled prediction and fetch
Publication Date: 2023.09.19 AMPERE COMPUTING LLC
  • US11762660B2 patent drawing
  • US11762660B2 patent drawing
  • US11762660B2 patent drawing

AI summary

A unified queue configured to perform decoupled prediction and fetch operations, and related apparatuses, systems, methods, and computer-readable media, is disclosed. The unified queue has a plurality of entries, where each entry is configured to store information associated with at least one instruction, and where the information comprises an identifier portion, a prediction information portion, and a tag information portion. The unified queue is configured to update the prediction information portion of each entry responsive to a prediction block, and to update the tag information portion of each entry responsive to a tag and TLB block. The prediction information may be updated more than once, and the unified queue is configured to take corrective action where a later prediction conflicts with an earlier prediction.