Hashed Program Counter for Strided Prefetching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems face challenges in efficiently prefetching data due to the high cost and complexity of carrying program counter values through deep and wide processor pipelines, which hinders effective stride detection and prefetching operations.
Innovation Solution
The use of a hashed value of the program counter, which reduces the number of bits required for stride detection, allows for reduced circuitry and power consumption while differentiating between strided streams by combining it with additional information such as source register identifiers to generate prefetch addresses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the PC value is carried through the processor pipeline for stride detection, then accurate prefetching can be achieved, but the power consumption and area increase significantly
Solution Approach 1:
The patent extracts only the necessary portion of the PC value (specific bits that identify the instruction) rather than carrying the entire PC value through the pipeline. This extraction approach maintains prefetching accuracy by preserving the identifying information while eliminating redundant data, thereby reducing power consumption and area requirements.
Solution Approach 2:
The patent creates a simplified copy of the PC value containing only the essential bits needed for stride detection. Instead of using the full PC value, a truncated or selected-bit version is propagated through the pipeline, which serves as a sufficient copy for identifying instructions and detecting strided patterns without the overhead of the complete PC value.
2Reliability
If the PC value is carried through the processor pipeline for stride detection, then accurate prefetching can be achieved, but the area increases significantly
Solution Approach 1:
The patent extracts only the necessary portion of the PC value (specific bits that identify the instruction) rather than carrying the entire PC value through the pipeline. This extraction approach maintains prefetching accuracy by preserving the identifying information while eliminating redundant data, thereby reducing power consumption and area requirements.
Solution Approach 2:
The patent creates a simplified copy of the PC value containing only the essential bits needed for stride detection. Instead of using the full PC value, a truncated or selected-bit version is propagated through the pipeline, which serves as a sufficient copy for identifying instructions and detecting strided patterns without the overhead of the complete PC value.
3Use of energy by moving object
If fewer bits are used for stride detection, then power and area are reduced, but the ability to differentiate between strided streams may be compromised
Solution Approach 1:
The patent substitutes the mechanical approach of using full PC values with a bit-manipulation approach that selects specific bits from the PC. This substitution uses logical operations (bit selection, masking) instead of propagating complete values, achieving the same differentiation function with reduced resources by leveraging the structured nature of PC bit patterns.
Solution Approach 2:
The patent changes the parameter being propagated through the pipeline from the complete PC value to a selected subset of PC bits. This parameter change maintains the essential identifying information while reducing the data width, thereby lowering power consumption and area while preserving the ability to differentiate between strided streams.
Data Source
AI summary
Generating a hashed value of the program counter in a data processing system. The hashed value can be used for prefetching in the data processing system. In some examples, the hashed value is used to identify whether a load instruction associated with the hashed value has an address that is part of a strided stream in an address stream. In some examples, the hashed value is a subset of bits of the bits of the program counter. In other examples, the hashed value may be derived in other ways from the program counter.


