Conditional Branch Prediction Using Split Pattern History Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing branch prediction schemes face challenges in increasing conditional branch prediction accuracy without significantly increasing the amount of information stored, as longer histories require larger pattern history tables, leading to memory and performance issues.
Innovation Solution
The method involves generating two indices from different portions of the conditional branch history to index separate pattern history tables, allowing for more accurate predictions with reduced storage requirements by using multiple smaller tables instead of a single larger one.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If the conditional branch history is extended to improve prediction accuracy, then the pattern history table size must be doubled for each additional history bit, leading to increased storage requirements and timing problems
Solution Approach 1:
The patent divides the pattern history table into multiple smaller tables (first pattern history table, second pattern history table, etc.). Each table stores prediction information for a portion of the conditional branch history, allowing the system to use long history for accurate predictions without requiring a single large table that would consume excessive storage and cause timing issues.
2Measurement precision
If the pattern history table size is increased to accommodate longer history, then prediction accuracy improves, but timing problems and power consumption increase
Solution Approach 1:
By segmenting the pattern history table into multiple smaller tables, the patent reduces the access time and power consumption associated with reading from a single large table. Each smaller table can be accessed more quickly, improving timing performance while still maintaining the ability to use long conditional branch history for accurate predictions.
Data Source
AI summary
Methods and conditional branch predictors for predicting an outcome of a conditional branch instruction in a program executed by a processor using a long conditional branch history include generating a first index from a first portion of the conditional branch history and a second index from a second portion of the conditional branch history. The first index is then used to identify an entry in a first pattern history table including first prediction information; and the second index is used to identify an entry in a second pattern history table including second prediction information. The outcome of the conditional branch is predicted based on the first and second prediction information.


