Next PC Cache Branch Prediction Using Local History Registers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In modern processors, branch mispredictions lead to pipeline stalls and reduced efficiency due to the inability to accurately predict control flow decisions, particularly in deeply pipelined architectures.

Innovation Solution

Implementing a direct next program counter cache (DNPC) with local history registers (LHR) and an indirect next program counter cache (INPC) to predict branch instructions, allowing for speculative execution and minimizing pipeline disruptions by accurately predicting direct and indirect branches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional branch prediction methods are used in deeply pipelined processors, then the processor can maintain high instruction throughput, but branch mispredictions cause pipeline stalls and reduce efficiency

Engineering Contradiction:
Improveinstruction throughputVSAvoidpipeline stall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The branch prediction system is segmented into multiple specialized caches: DNPC for direct branches and INPC for indirect branches. Each cache is optimized for its specific branch type, allowing parallel operation and reducing conflicts. The DNPC stores target addresses for direct branches while the INPC handles indirect branches, enabling the processor to maintain high instruction throughput without pipeline stalls from mispredictions in either category.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The DNPC and INPC caches pre-fetch and store branch target addresses before the actual branch execution occurs. By predicting branch targets in advance and storing them in the respective caches, the processor can continue fetching and executing instructions speculatively without waiting for branch resolution, thereby maintaining instruction throughput while minimizing pipeline stall time when predictions are correct.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If a unified next program counter cache is used for both direct and indirect branches, then the cache structure is simplified, but prediction accuracy decreases due to the diverse nature of branch types

Engineering Contradiction:
Improvecache structure complexityVSAvoidbranch prediction accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

Instead of a unified cache, the system segments the next program counter cache into two distinct caches: DNPC for direct branches and INPC for indirect branches. This segmentation allows each cache to be optimized for its specific branch type with appropriate data structures and replacement policies, thereby maintaining high prediction accuracy for both direct and indirect branches while managing complexity through clear functional separation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each cache (DNPC and INPC) is designed with local optimizations tailored to its specific branch type. The DNPC is optimized for direct branches with simple target address storage, while the INPC is optimized for indirect branches with mechanisms to handle variable targets. This local quality approach ensures high prediction accuracy for each branch type without requiring a complex unified structure that would compromise performance for either category.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If local history registers are used in the DNPC, then direct branch prediction accuracy is improved, but the cache entry size and overall memory requirements increase

Engineering Contradiction:
Improvedirect branch prediction accuracyVSAvoidcache memory capacity
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The history tracking functionality is segmented and localized only within the DNPC for direct branches, rather than being implemented in a unified cache or for both direct and indirect branches. This segmentation allows the use of local history registers to improve direct branch prediction accuracy while keeping the INPC for indirect branches simpler and more memory-efficient, as indirect branches benefit less from local history information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Local history registers are implemented specifically in the DNPC entries for direct branches, providing enhanced prediction accuracy where it is most beneficial. The INPC for indirect branches uses a simpler structure without extensive local history registers, optimizing memory usage. This local quality approach ensures that memory capacity is allocated efficiently based on the specific prediction needs of each branch type.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250342038A1Branch prediction with next program counter caches
Publication Date: 2025.11.06 AKEANA INC
  • US20250342038A1 patent drawing
  • US20250342038A1 patent drawing
  • US20250342038A1 patent drawing

AI summary

A processor core is accessed. The processor core includes a direct next program counter cache (DNPC) that includes multiple entries. The processor core executes a branch instruction associated with a program counter (PC) address. An entry within the DNPC that matches a tag associated with the PC address is found. An indirect bit within the matching entry is read. In cases where the indirect bit is not set, a branch target address for the branch instruction is produced by the DNPC. The DNPC generates a prediction for the branch instruction. The prediction is based on a local history register within the entry of the DNPC that matched the tag. A next PC address is determined, based on the branch target address that was produced and the prediction that was generated. The DNPC includes a plurality of prediction tables. Each prediction table is associated with each entry within the DNPC.