Call-Path-Indexed Branch Prediction Structure

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing branch prediction techniques struggle to accurately predict branch outcomes due to aliasing issues where branches called from different locations in a program are mapped to the same entry in branch prediction structures, leading to reduced prediction accuracy.

Innovation Solution

The use of call path tracking information to index branch prediction structures, allowing for the differentiation of branch instructions based on their call paths, thereby improving prediction accuracy by using a call-path-indexed branch prediction structure that updates its index value based on call path tracking information stored in a call path tracking element.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional branch prediction structures are used, then the device complexity is low, but branch prediction accuracy deteriorates due to aliasing issues

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidbranch prediction structure complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces call path tracking information as an additional dimension for indexing branch prediction structures. Instead of using only traditional indexing methods, the system now uses multiple dimensions including call path information, which allows differentiation of branches called from different locations without significantly increasing overall structural complexity

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

Solution Approach 2:

The branch prediction structure is segmented into multiple indexed structures, with at least one being call-path-indexed. This segmentation allows different branches to be organized into separate groups based on their call path characteristics, reducing aliasing between unrelated branches while maintaining manageable complexity through modular organization

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If call path tracking is implemented, then aliasing is reduced and prediction accuracy improves, but device complexity increases

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

Solution Approach 1:

The call path tracking element serves multiple functions: it tracks call path information for indexing branch prediction structures, and can potentially be used for other prediction purposes. This multi-functionality justifies the added complexity by providing multiple benefits from a single structural addition

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

Solution Approach 2:

The system changes the indexing parameters of branch prediction structures by incorporating call path tracking information. This parameter change allows the same basic structure to achieve better accuracy without requiring fundamentally new complex architectures

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11301253B2Branch prediction structure indexed based on return address popped from a call-return stack
Publication Date: 2022.04.12 ARM LTD
  • US11301253B2 patent drawing
  • US11301253B2 patent drawing
  • US11301253B2 patent drawing

AI summary

An apparatus comprises a branch predictor to predict an outcome of a branch instruction to be processed by processing circuitry, based on branch prediction state information stored in one or more branch prediction structures, and a call path tracking element to store call path tracking information, where in response to a procedure calling instruction processed by the processing circuitry, the call path tracking information is updated depending on at least a portion of an address associated with the procedure calling instruction. The one or more branch prediction structures include at least one call-path-indexed branch prediction structure which is indexed based on an index value which depends on a portion of the call path tracking information stored in the call path tracking element.