Multi-Bank Branch Predictor Random Update Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity of processor pipeline lengths, cache memory latencies, and superscalar instruction issue widths has made it challenging to accurately predict the direction of conditional branch instructions, with existing predictors like TAGE predictors facing limitations in updating and managing branch prediction information across multiple memory banks.

Innovation Solution

A multi-bank conditional branch instruction predictor that incorporates random number generation logic to efficiently update memory banks, using a combination of instruction counter and branch history pattern to generate random numbers for decision-making, and hashing logic to index banks, improving prediction accuracy and bank management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If multiple memory banks are used to store branch prediction information, then prediction accuracy is improved, but device complexity increases

Engineering Contradiction:
Improveprediction accuracyVSAvoiddevice complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The branch predictor is divided into multiple independent memory banks (first bank, second bank, third bank, fourth bank), each storing branch prediction information for different branch history pattern lengths. This segmentation allows parallel access and updates to multiple banks simultaneously, improving prediction accuracy while managing complexity through modular organization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension by using random number generation to select which memory bank to update, adding a probabilistic dimension to the deterministic bank selection process. This allows the system to explore multiple banks over time and improve accuracy without requiring all banks to be updated every cycle, thus managing complexity

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

2Measurement precision

If random number generation logic is added to update memory banks, then prediction accuracy is improved, but device complexity increases

Engineering Contradiction:
Improveprediction accuracyVSAvoiddevice complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

A random number generation logic unit is introduced as an intermediary component that receives inputs from instruction counter and branch history pattern, generates random numbers, and provides these to control logic for bank selection. This intermediary simplifies the overall control structure by centralizing the random selection function in a dedicated unit rather than distributing complexity throughout the system

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The random number generation logic uses existing system resources (instruction counter and branch history pattern) to generate random numbers, rather than requiring external random number sources. This self-service approach improves prediction accuracy through probabilistic bank selection while avoiding the complexity of external random number generation hardware

Inventive Principle:
Principle #25Self-service

3Measurement precision

If instruction counter and branch history pattern are used to generate random numbers, then prediction accuracy is improved, but use of energy increases

Engineering Contradiction:
Improveprediction accuracyVSAvoiduse of energy
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The instruction counter and branch history pattern serve multiple functions: they are used for normal branch prediction operations and simultaneously serve as inputs for random number generation. This multi-functionality allows the system to improve prediction accuracy through probabilistic bank selection without adding dedicated random number generation hardware, thus minimizing energy consumption

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3324287B1Efficient random number generation for update events in multi-bank conditional branch predictor
Publication Date: 2023.03.15 VIA ALLIANCE SEMICON CO LTD
  • EP3324287B1 patent drawingFigure 1
  • EP3324287B1 patent drawingFigure 2~3
  • EP3324287B1 patent drawingFigure 4

AI summary

A branch predictor, has a plurality of memory banks having entries that hold prediction information used to predict a direction of branch instructions fetched and executed by a processor that comprises the branch predictor. A count of events that occur in the processor is provided to hardware logic that performs an arithmetic and/or logical operation, e.g., XOR, on predetermined bits of the count to generate a random value. In response to the processor determining a correct direction of a branch instruction predicted by the branch predictor, the branch predictor uses the random value generated by the hardware logic to make a decision about updating the memory banks. Bits of a branch history pattern, along with the count, may also be used to generate the random value. The event counted may be a retire of an instruction or a cycle of a core or bus clock.