Branch Prediction Circuitry Using Segmented Weight Tables
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Measurement precision
If Perceptron network is used for branch prediction, then prediction accuracy can be achieved, but power consumption increases significantly
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.
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.
2Measurement precision
If Perceptron network processes large amounts of history data, then prediction accuracy improves, but processing requirements and circuit size increase significantly
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.
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.
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
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.
Data Source
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.


