Shared Pointer for Local History Records in Prediction Circuitry
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing prediction mechanisms in data processing systems face challenges in achieving accurate predictions while maintaining low overhead, as they often rely on global history records which are less accurate and require significant circuit area and power for local history record maintenance.
Innovation Solution
The use of local history records with a shared pointer that indicates a common storage position across multiple records, allowing for more accurate predictions with reduced overhead by enabling efficient misprediction recovery and tagging of instructions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If global history records are used for prediction, then prediction coverage is improved, but prediction accuracy deteriorates and circuit area increases
Solution Approach 1:
The patent divides the global history record into multiple local history records, each dedicated to tracking instruction behavior for specific instruction address subsets. This segmentation allows each local record to specialize in particular instruction patterns, improving prediction accuracy for those patterns while maintaining comprehensive coverage through the collection of all local records.
Solution Approach 2:
Each local history record is optimized to track instruction behavior characteristics specific to its assigned instruction address subset. This local quality approach ensures that prediction is tailored to the specific behavior patterns of different instruction types and locations, rather than using a single generic global history for all instructions.
2Measurement precision
If local history records are maintained for each instruction address subset, then prediction accuracy is improved, but circuit area and power consumption increase
Solution Approach 1:
Multiple local history records share common storage infrastructure and control logic, merging resources that would otherwise be duplicated. The patent implements a shared history buffer that can be accessed by multiple local records, and uses common update and read control circuitry to serve all local records, significantly reducing the total circuit area required.
Solution Approach 2:
The shared history storage and control circuitry serves multiple local history records simultaneously, making these components multi-functional. A single history buffer can store records for different instruction subsets, and the control logic can direct updates and reads to any appropriate local record based on the current instruction being predicted.
3Reliability
If separate pointers are maintained for each local history record, then misprediction recovery accuracy is improved, but device complexity increases
Solution Approach 1:
Multiple local history records share a common pointer mechanism for tracking the current position in the shared history buffer. This shared pointer approach eliminates the need for separate pointer storage and update logic for each local record, reducing device complexity while maintaining the ability to accurately track positions for misprediction recovery.
Solution Approach 2:
The shared pointer acts as an intermediary that mediates access to the shared history buffer for multiple local records. Instead of each local record having direct independent access with its own pointer, the shared pointer provides a unified interface that simplifies pointer management while enabling accurate position tracking for all local records.
Data Source
AI summary
An apparatus has processing circuitry, and history storage circuitry to store local history records. Each local history record corresponds to a respective subset of instruction addresses and tracks a sequence of observed instruction behaviour observed for successive instances of instructions having addresses in that subset. Pointer storage circuitry to store a shared pointer shared between the local history records. The shared pointer indicates a common storage position reached in each local history record. Prediction circuitry determines predicted instruction behaviour for a given instruction address based on a selected portion of a selected local history record stored in the history storage circuitry. The prediction circuitry selects the selected local history record based on the given instruction address and selects the selected portion based on the shared pointer.


