Branch Prediction Circuitry Using Segmented Weight Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program flow prediction methods, such as Perceptron networks, face challenges with high power consumption and increased processing requirements due to the need to handle large amounts of history data, which can lead to latency penalties for both mispredicted and unpredicted branches.

Innovation Solution

The proposed solution involves a program flow prediction circuitry that uses a history register to store recent branch instructions, a memory for weight values, access circuitry to select weight values based on multi-bit history data, a combiner to generate a combined weight value, a comparator to predict branch taking, and weight modifier circuitry to update weights based on prediction outcomes, reducing the number of weight values needed and processing requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If Perceptron network is used for branch prediction, then prediction accuracy can be achieved, but power consumption increases significantly

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

Solution Approach 1:

The patent segments the weight table into multiple portions (first portion, second portion, etc.) and divides the history register bits into corresponding groups. Each portion is selected based on specific history bits, allowing the system to process only relevant weight portions rather than the entire weight table, thus reducing power consumption while maintaining prediction accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by selectively accessing only the necessary portions of the weight table based on the current history register state. Instead of processing all weight values, the system accesses only the relevant portions indicated by the history bits, reducing the computational workload and power consumption while achieving sufficient prediction accuracy.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If Perceptron network processes large amounts of history data, then prediction accuracy improves, but processing requirements and circuit size increase significantly

Engineering Contradiction:
Improveprediction accuracyVSAvoidcircuit size
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the weight table into multiple segments or portions, where each portion corresponds to specific history register bits. This segmentation allows the circuit to access only the relevant weight portions based on the current history state, reducing the overall circuit size while maintaining the ability to process sufficient history data for accurate prediction.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of organization by structuring the weight table in portions that can be selectively accessed based on history bits. This dimensional organization transforms the problem from processing a large monolithic weight table to accessing smaller, targeted portions, thereby reducing circuit complexity while preserving prediction capability.

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

3Use of energy by moving object

If traditional branch prediction is not used, then power consumption is lower, but latency penalty occurs when branches are not predicted

Engineering Contradiction:
Improvepower consumptionVSAvoidlatency penalty
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent implements a lightweight prediction mechanism that processes only partial weight table portions rather than complete Perceptron computations. This partial action provides sufficient prediction capability to avoid pipeline stalls and latency penalties while consuming significantly less power than full Perceptron networks.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10481914B2Predicting detected branches as taken when cumulative weight values in a weight table selected by history register bits exceed a threshold value
Publication Date: 2019.11.19 ARM LTD
  • US10481914B2 patent drawing
  • US10481914B2 patent drawing
  • US10481914B2 patent drawing

AI summary

Program flow prediction circuitry comprises a history register to store history data for at least one or more most recently executed branch instructions; a memory to store a plurality of sets of weight values, one set for each of a group of portions of one or more bits of the history data; access circuitry to access, for a current branch instruction to be predicted, a weight value for each of the portions of one or more bits of the history data by selecting from the set of weight values in dependence upon a current value of the portions of the history data; a combiner to generate a combined weight value by combining the weight values accessed by the access circuitry; a comparator to compare the combined weight value with a prediction threshold value to detect whether or not a branch represented by the current branch instruction is predicted to be taken; and weight modifier circuitry to modify the accessed weight values in dependence upon a resolution of whether the branch represented by the current branch instruction is taken or not.