Next Fetch Prediction Return Table Design

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face inefficiencies in program flow prediction due to the time and resources required by existing control flow predictors, which can lead to suboptimal performance in fetching and executing instructions, especially with control transfer instructions.

Innovation Solution

A processor design incorporating multiple predictors, including a first table with a set-associative arrangement and a second table for increased associativity, uses strength values to determine the reliability of predictions and allocates entries based on predictive strength and hysteresis, allowing for faster and more accurate prediction of next fetch addresses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single predictor table is used for control flow prediction, then the device complexity is low, but the prediction accuracy and reliability are insufficient

Engineering Contradiction:
Improveprediction accuracyVSAvoidpredictor structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The predictor is divided into multiple independent tables (first predictor table, second predictor table, third predictor table) that can operate in parallel. Each table handles different aspects of prediction or provides backup capabilities, allowing the system to improve reliability through diversity while maintaining manageable complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The predictor tables are organized in a hierarchical structure where multiple tables are nested within the prediction system. The tables can be arranged in sets with different associativity levels (2-way, 4-way, 8-way), creating a nested configuration that allows efficient memory access while providing multiple layers of prediction capability

Inventive Principle:
Principle #7Nested doll (Nesting)

2Reliability

If a large number of entries are allocated in the predictor table, then the prediction coverage is improved, but the time to search and allocate entries increases

Engineering Contradiction:
Improveprediction coverageVSAvoidentry allocation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The predictor tables use dynamic associativity configurations where the effective number of ways can be adjusted based on the current prediction needs. The system can dynamically select between different table configurations (2-way, 4-way, 8-way set associative) to balance between coverage and access speed based on the specific control flow patterns being encountered

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of table associativity to optimize performance. By configuring tables with different associativity levels and selecting appropriate tables based on the prediction scenario, the system can adjust the balance between entry coverage and search/allocation time to match the specific computational needs

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple predictors are used to improve prediction accuracy, then the prediction reliability is enhanced, but the device complexity and resource consumption increase

Engineering Contradiction:
Improveprediction reliabilityVSAvoidnumber of predictors
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements multiple predictor tables with varying degrees of completeness. Not all tables need to be fully populated or active at all times - the system can operate with partial tables depending on the specific prediction requirements, reducing the effective complexity while maintaining the reliability benefits where needed

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

Different predictor tables are configured with different local properties such as varying associativity levels (2-way, 4-way, 8-way), different entry sizes, and different allocation strategies. This allows each table to be optimized for specific types of control flow predictions, improving overall reliability while managing complexity through specialized rather than uniform design

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10445102B1Next fetch prediction return table
Publication Date: 2019.10.15 APPLE INC
  • US10445102B1 patent drawing
  • US10445102B1 patent drawing
  • US10445102B1 patent drawing

AI summary

Systems, apparatuses, and methods for efficient program flow prediction. After receiving a current fetch address, a first predictor performs a lookup of a first table. When the lookup results in a miss and the first table has no available entries, the first predictor overwrites a given entry of the first table with the received fetch address, in response to detecting a strength value for the given entry is below a threshold. Otherwise, in response to detecting no entries of the first table have a strength value below the threshold, the first predictor allocates an entry in the second table for the received fetch address. When an indication of a target address for the received fetch address is a return address for a function call, a third predictor allocates an entry of a third table with the received fetch address.