Branch Prediction Preloading via Masked Buffer Entries

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer processors experience pipeline stalls due to the need to wait for conditional branch instructions to be resolved before fetching the next instruction, leading to inefficiencies in instruction execution throughput.

Innovation Solution

The implementation of branch prediction preloading, where branch prediction preload instructions are used to prepopulate the branch target buffer with predicted branch instruction addresses and target addresses, allowing for accurate prediction and reduction of surprise branches, thereby reducing pipeline stalls.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the branch target buffer size is reduced, then device complexity and manufacturing cost decrease, but prediction accuracy deteriorates

Engineering Contradiction:
Improvebranch target buffer sizeVSAvoidprediction accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent applies preliminary action by preloading branch prediction information into the branch target buffer before the actual branch instruction is executed. The branch prediction preload instruction precomputes and stores target addresses and prediction data in advance, allowing the smaller buffer to contain pre-prepared prediction information that maintains accuracy despite reduced size.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes parameters by introducing a specialized branch prediction preload instruction format with specific fields (target address field, prediction data field, mask field) that optimize the information stored in the buffer. This parameter optimization allows compact storage while maintaining comprehensive prediction capability.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If branch prediction preload instructions are implemented, then prediction accuracy improves, but device complexity increases

Engineering Contradiction:
Improveprediction accuracyVSAvoidinstruction decoding complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the branch prediction functionality into distinct components: the branch prediction preload instruction format is divided into specific fields (target address field, prediction data field, mask field), and the decoding process is segmented into identifying the instruction type, extracting field values, and applying the mask. This segmentation makes the complex decoding process more manageable and systematic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism through the mask field that mediates between the prediction data and the buffer loading process. The mask field selectively enables or disables specific prediction data bits, acting as an intermediary control that simplifies the decoding logic by providing a straightforward gating mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of substance

If the branch target buffer size is reduced by 4:1 ratio, then manufacturing cost decreases, but the buffer may not hold sufficient prediction information

Engineering Contradiction:
Improvebuffer storage capacityVSAvoidprediction reliability
Core Design Contradiction:
Loss of substanceVSReliability

Solution Approach 1:

The patent optimizes the information density parameters in the branch prediction preload instruction. By carefully designing the target address field, prediction data field, and mask field with appropriate bit allocations, the system maximizes the information content per buffer entry, allowing fewer entries to cover the same prediction needs.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The preload mechanism performs preliminary computation and filtering of branch prediction information, storing only the most relevant and frequently needed data in the compact buffer. This pre-filtering ensures that the reduced buffer capacity is filled with high-value prediction information that maintains reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9146740B2Branch prediction preloading
Publication Date: 2015.09.29 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9146740B2 patent drawing
  • US9146740B2 patent drawing
  • US9146740B2 patent drawing

AI summary

Embodiments relate to branch prediction preloading. A method for branch prediction preloading includes fetching a plurality of instructions in an instruction stream, and decoding a branch prediction preload instruction in the instruction stream. The method also includes determining, by a processing circuit, an address of a predicted branch instruction based on the branch prediction preload instruction, and determining, by the processing circuit, a predicted target address of the predicted branch instruction based on the branch prediction preload instruction. The method further includes identifying a mask field in the branch prediction preload instruction, and determining, by the processing circuit, a branch instruction length of the predicted branch instruction based on the mask field. Based on executing the branch prediction preload instruction, a branch target buffer is preloaded with the address of the predicted branch instruction, the branch instruction length, and the predicted target address associated with the predicted branch instruction.