Processor Generation Renaming and Branch Prediction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face challenges in efficiently managing register resources and branch prediction, leading to performance bottlenecks due to the need for out-of-order instruction execution and the complexity of handling branches in pipelined and superscalar processors.

Innovation Solution

The processor architecture incorporates a register renaming mechanism using generation numbers, a stunt box for result management, and a dual history length Gshare branch prediction unit to enable efficient out-of-order execution and speculative execution without stalling, while the branch prediction unit uses a hybrid history table to improve branch prediction accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional register allocation is used in out-of-order execution, then register resource management becomes complex and performance is limited, but increasing physical register count increases hardware complexity and area

Engineering Contradiction:
Improveinstruction execution throughputVSAvoidregister renaming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The register file is segmented into multiple banks (e.g., 4 banks) that can be independently accessed. This segmentation allows parallel register operations and reduces the complexity of any single bank, enabling efficient out-of-order execution without requiring a monolithic large register file

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension through generation numbers, allowing multiple versions of registers to coexist in time. Instead of only spatial multiplication of registers, the system uses temporal versioning where old generations are retained until no longer needed, effectively increasing register capacity without proportional hardware growth

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

2Productivity

If branch prediction is implemented in pipelined processors, then speculative execution can proceed, but inaccurate predictions cause pipeline stalls and performance degradation

Engineering Contradiction:
Improvespeculative execution efficiencyVSAvoidbranch prediction accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The branch prediction system uses feedback mechanisms where prediction outcomes are monitored and used to adjust future predictions. The dual history length Gshare predictor incorporates feedback from both recent and historical branch behavior to dynamically improve prediction accuracy

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Branch prediction is performed preliminarily before the actual branch outcome is known, allowing the pipeline to speculatively execute instructions along the predicted path. The system prepares multiple prediction outcomes in advance using the Gshare algorithm, reducing stall time when predictions are accurate

Inventive Principle:
Principle #10Preliminary action

3Productivity

If out-of-order execution is implemented, then instruction level parallelism increases, but handling dependencies and maintaining order becomes more complex

Engineering Contradiction:
Improveinstruction parallelismVSAvoiddependency management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces intermediary structures including reservation stations and reorder buffers that mediate between out-of-order execution and in-order commit. These intermediaries hold instructions and data temporarily, allowing execution to proceed out-of-order while maintaining the illusion of in-order operation for dependency management

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically adjusts execution based on readiness of operands and availability of resources. Instructions are executed as soon as their dependencies are satisfied, with the dispatch mechanism dynamically selecting which instructions to issue to execution units in each cycle, maximizing parallelism while handling dependencies flexibly

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9710272B2Computer processor with generation renaming
Publication Date: 2017.07.18 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US9710272B2 patent drawing
  • US9710272B2 patent drawing
  • US9710272B2 patent drawing

AI summary

A processor including a register file having a plurality of registers, and configured for out-of-order instruction execution, further includes a renamer unit that produces generation numbers that are associated with register file addresses to provide a renamed version of a register that is temporally offset from an existing version of that register rather than assigning a non-programmer-visible physical register as the renamed register. The processor includes a small reset DHL Gshare branch prediction unit coupled to an instruction cache and configured to provide speculative addresses to the instruction cache.