Hashed Program Counter for Strided Prefetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprefetching accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improveprefetching accuracyVSAvoidpipeline area
Core Design Contradiction:
ReliabilityVSArea of stationary object

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvepower consumptionVSAvoidstream differentiation
Core Design Contradiction:
Use of energy by moving objectVSReliability

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7506105B2Prefetching using hashed program counter
Publication Date: 2009.03.17 NXP USA INC
  • US7506105B2 patent drawing
  • US7506105B2 patent drawing
  • US7506105B2 patent drawing

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.