Region Prefetcher Circuit for Non-Patterned Memory Access Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Caches are ineffective in addressing memory access latency issues when memory accesses do not conform to a fixed pattern, and cache misses exacerbate delays in processor-based devices like GPUs due to high memory access latency.

Innovation Solution

Implementing a region prefetcher circuit that uses access bitmaps to detect memory access requests and prefetch memory blocks from system memory or cache into a prefetch buffer based on unset bits, reducing latency by anticipating data needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If cache memory is used to reduce memory access latency, then access speed to frequently accessed data is improved, but memory access latency increases for data with non-fixed access patterns due to cache misses

Engineering Contradiction:
Improvememory access speedVSAvoidmemory access latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The region prefetcher circuit proactively loads data into the prefetch buffer before the processor actually requests it, based on predicted access patterns. This preliminary action ensures that data is already available in the buffer when needed, eliminating cache miss delays and reducing memory access latency for non-patterned accesses

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If cache memory is used to store frequently accessed data, then memory access latency is reduced for cached data, but the complexity of the memory hierarchy increases

Engineering Contradiction:
Improvememory access latencyVSAvoidmemory hierarchy complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The prefetch buffer serves as an intermediary structure between the cache and system memory, specifically designed to handle prefetching operations. This separate buffer simplifies the overall memory hierarchy by dedicating a specific component to the prefetching function, rather than complicating the cache structure itself

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the processor waits for memory access requests to be fulfilled, then data accuracy is ensured, but instruction execution is stalled and productivity decreases

Engineering Contradiction:
Improvedata accuracyVSAvoidinstruction execution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The region prefetcher circuit proactively loads data into the prefetch buffer before the processor actually requests it, based on predicted access patterns. This preliminary action ensures that data is already available in the buffer when needed, eliminating cache miss delays and reducing memory access latency for non-patterned accesses

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system monitors actual memory access patterns and uses this feedback to refine prefetching predictions. By continuously learning from access behavior, the system maintains data accuracy while optimizing prefetch timing to prevent processor stalling, thus improving instruction execution throughput

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20240176742A1Providing memory region prefetching in processor-based devices
Publication Date: 2024.05.30 QUALCOMM INC
  • US20240176742A1 patent drawing
  • US20240176742A1 patent drawing
  • US20240176742A1 patent drawing

AI summary

Providing memory region prefetching in processor-based devices is disclosed. In some aspects, a processor-based device comprises a region prefetcher circuit that comprises a plurality of access bitmaps corresponding to a plurality of contiguous memory regions of a system memory device. Each access bitmap comprises a plurality of bits corresponding to a plurality of memory blocks of a contiguous memory region. The region prefetcher circuit detects a memory access request to a memory block of a contiguous memory region, identifies an access bitmap corresponding to the contiguous memory region, and identifies a bit corresponding to the memory block. The region prefetcher circuit sets the bit to indicate the memory access request to the memory block. The region prefetcher circuit subsequently detects a prefetch trigger event, and, in response, identifies one or more unset bits of the access bitmap, and prefetches one or more memory blocks corresponding to the unset bits.