Event Counting Branch Prediction Circuitry Checkpoint Storage Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In out-of-order processing systems, the high storage requirements for state information associated with branch prediction components, particularly in speculative processing environments, make traditional branch prediction circuitry unattractive due to the need for significant checkpointing storage, which hampers performance.

Innovation Solution

The implementation of event counting prediction circuitry with separate training and active storage, where only state information from active entries is stored at checkpoints, reducing the overall storage requirements and allowing for efficient branch outcome predictions while maintaining confidence in event count values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional branch prediction circuitry is used in out-of-order processing systems, then branch outcome predictions can be made, but the storage requirements for state information at checkpoints become excessively large

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidcheckpointing storage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The storage structure is segmented into two distinct parts: training storage for collecting and analyzing branch outcome behavior data, and active storage for maintaining only the current event count values needed for predictions and checkpointing. This segmentation allows the system to maintain prediction accuracy while reducing checkpointing storage requirements, as only active entry data needs to be saved at checkpoints rather than complete training histories

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention extracts only the essential state information (event count values from active entries) that is necessary for restoring prediction functionality after a flush event, while leaving the training data in training storage to be discarded or retained independently. This extraction principle enables the system to maintain branch prediction capability without storing redundant training information in checkpointing storage

Inventive Principle:
Principle #2Taking out (Extraction)

2Measurement precision

If event counting prediction circuitry with training storage is implemented, then accurate branch predictions can be made through training phases, but the overall storage requirements increase significantly

Engineering Contradiction:
Improveevent count value accuracyVSAvoidtotal storage capacity
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

Storage is divided into training storage and active storage with distinct purposes. Training storage accumulates historical branch outcome data during training phases to determine accurate event count values, while active storage maintains only the finalized event count values needed for predictions. This segmentation allows high measurement precision in event count determination while limiting total storage usage to what is absolutely necessary for active prediction

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Training data in training storage can be discarded after the training phase completes and event count values are transferred to active storage. The system recovers the essential prediction capability by retaining only active entries with their event count values, while optional recovery of training data can occur independently without impacting checkpointing storage requirements

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10620960B2Apparatus and method for performing branch prediction
Publication Date: 2020.04.14 ARM LTD
  • US10620960B2 patent drawing
  • US10620960B2 patent drawing
  • US10620960B2 patent drawing

AI summary

An apparatus and method are provided for performing branch prediction. The apparatus has processing circuitry for executing instructions out-of-order with respect to original program order, and event counting prediction circuitry for maintaining event count values for branch instructions, for use in making branch outcome predictions for those branch instructions. Further, checkpointing storage stores state information of the apparatus at a plurality of checkpoints to enable the state information to be restored for a determined one of those checkpoints in response to a flush event. The event counting prediction circuitry has training storage with a first number of training entries, each training entry being associated with a branch instruction. The event counting prediction circuitry implements a training phase for each training entry during which it seeks to determine an event count value for the associated branch instruction based on branch outcome behaviour of the branch instruction observed for instances of execution of the branch instruction that have been committed by the processing circuitry. The event counting prediction circuitry further has access storage with a second number of active entries, where the second number is less than the first number. Each active entry is associated with a branch instruction for which an event count value has been successfully determined during the training phase. The event counting prediction circuitry is arranged to make branch outcome predictions for branch instructions having an active entry. At each checkpoint, state information for the active entries is stored to the checkpointing storage. This provides a particularly efficient form of event counting prediction circuitry that can be used in out-of-order systems, while reducing the amount of state information that needs to stored into the checkpointing storage at each checkpoint.