Processor Exit Table for Branch Prediction Accuracy

Solution Overview

Problem

Modern computer processors face significant performance penalties due to mispredicted branch operations, which lead to inefficient pipeline flushing and recovery, especially in programs with frequent branch operations, as existing branch prediction schemes are prone to errors and increase CPU cycle waste.

Innovation Solution

A computer processor design that employs an Exit Table to predict control flow by storing entries associated with instruction blocks, including predictors for execution paths, cache line information, and metadata to control prefetching, fetching, and decoding, allowing for efficient handling of branch operations and reducing pipeline delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional branch prediction schemes are used, then prediction capability is provided, but prediction accuracy is insufficient leading to frequent mispredictions

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the instruction stream into basic blocks and further divides prediction into block-level exit prediction and intra-block instruction prediction. The exit table stores predictions for basic block exits, while a separate mechanism handles predictions within blocks, allowing each segment to be optimized independently for accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-computing and storing exit predictions in the exit table before execution. The system predicts basic block exits in advance and prepares prediction outcomes beforehand, allowing the instruction fetch pipeline to continue without stalls when predictions are accurate.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If larger hardware-based hash tables are used to improve prediction accuracy, then more history information can be retained, but die area and execution delays increase

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the prediction table lookup function from the critical execution path. The exit table is queried in parallel with instruction fetch, and prediction results are prepared beforehand. This removes the sequential dependency of large table lookups from the critical path, allowing smaller tables to achieve the same effective accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent adds a temporal dimension to prediction by organizing predictions in the exit table according to program counter ranges and basic block structures. Instead of using a single large hash table, the system uses multiple smaller tables organized by address ranges, reducing the size of each individual table while maintaining comprehensive coverage.

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

3Productivity

If branch prediction is applied to all conditional branch operations, then control flow prediction is provided, but pipeline delays increase due to mispredictions

Engineering Contradiction:
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies local quality by using different prediction strategies for different locations in the instruction stream. Exit predictions are used for basic block boundaries, while intra-block predictions handle internal branches. This localized approach optimizes prediction accuracy for each region without uniformly applying complex prediction to all branches.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent maintains continuity of useful action by keeping the instruction fetch pipeline continuously fed through pre-computed predictions. The exit table provides prediction outcomes that allow the pipeline to proceed without stalls, and the system continuously updates predictions based on actual execution outcomes, ensuring uninterrupted useful work.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9875106B2Computer processor employing instruction block exit prediction
Publication Date: 2018.01.23
  • US9875106B2 patent drawing
  • US9875106B2 patent drawing
  • US9875106B2 patent drawing

AI summary

A computer processor is provided that executes sequences of instructions stored in memory. The sequences of instructions are organized as one or more instruction blocks each having an entry point and at least one exit point offset from the entry point. An apparatus for predicting control flow through sequences of instructions includes a table storing a plurality of entries each associated with an instruction block or part thereof. At least one entry of the table corresponding to a given instruction block or part thereof includes a predictor corresponding to a predicted execution path that exits the given Instruction block or part thereof. The table is queried in order to generate a chain of predictors corresponding to a sequence of instruction blocks or parts thereof that is predicted to be executed by the computer processor.