Branch Predictor with Programmable Static Mode

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing branch prediction methods in data processing apparatuses face challenges in balancing performance and determinism, with dynamic branch prediction introducing non-deterministic jitter and static prediction being inflexible and inaccurate.

Innovation Solution

A branch predictor with a static branch prediction mode that uses programmable static branch prediction state information, indexed based on properties such as opcode, to predict branch outcomes independently of actual branch outcomes, allowing for deterministic performance and adaptability to different software workloads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If dynamic branch prediction is used to improve prediction accuracy, then performance is improved, but determinism deteriorates due to non-deterministic jitter

Engineering Contradiction:
Improveprediction accuracyVSAvoiddeterminism
Core Design Contradiction:
Measurement precisionVSStability of the object's composition

Solution Approach 1:

The branch predictor allows dynamic switching between static prediction mode and dynamic prediction mode. In static mode, fixed prediction rules ensure determinism. In dynamic mode, the predictor adapts to actual branch behavior for higher accuracy. This dynamic configurability resolves the contradiction by allowing the system to select the appropriate mode based on requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the operational parameter of the branch predictor from purely static to programmably configurable static values. This allows the prediction behavior to be adjusted via software configuration, enabling optimization for specific workloads while maintaining deterministic characteristics when static mode is selected.

Inventive Principle:
Principle #35Parameter changes

2Stability of the object's composition

If static branch prediction is used to improve determinism, then predictability is improved, but prediction accuracy deteriorates due to inflexibility

Engineering Contradiction:
ImprovedeterminismVSAvoidprediction accuracy
Core Design Contradiction:
Stability of the object's compositionVSMeasurement precision

Solution Approach 1:

The branch predictor is designed to serve multiple functions through programmable static values that can be configured for different software workloads. The same hardware structure can operate in deterministic static mode or be reconfigured for higher accuracy, making it universally applicable to different scenarios without sacrificing either determinism or accuracy.

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

Solution Approach 2:

The static prediction values are programmably configured in advance based on software workload characteristics. This preliminary configuration allows the predictor to be optimized for specific applications before execution, improving accuracy while maintaining deterministic behavior during actual runtime.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If programmable static values are used to improve adaptability, then versatility is improved, but device complexity increases

Engineering Contradiction:
Improveadaptability to software workloadsVSAvoidbranch predictor complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The invention introduces programmable parameters (static prediction values) that can be configured via software without fundamentally changing the hardware architecture. This approach increases adaptability while keeping the structural complexity relatively low, as the programmability is achieved through configuration rather than complex reconfigurable hardware.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10963260B2Branch predictor
Publication Date: 2021.03.30 ARM LTD
  • US10963260B2 patent drawing
  • US10963260B2 patent drawing
  • US10963260B2 patent drawing

AI summary

An apparatus comprises processing circuitry to perform data processing in response to instructions; and a branch predictor to predict a branch outcome for a given branch instruction as one of taken and not-taken, based on branch prediction state information indexed based on at least one property of the given branch instruction. In a static branch prediction mode of operation, the branch predictor predicts the branch outcome based on static values of the branch prediction state information set independent of actual branch outcomes of branch instructions which are executed by the processing circuitry while in the static branch prediction mode. The static values of the branch prediction state information are programmable.