Prefetch Instruction Ignoring Cache Hits for Image Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer architectures, prefetch instructions are ineffective in systems with non-coherent data caches, particularly in image processing applications that handle large numbers of local pixels, due to the non-cacheability of shared memory, leading to increased memory latency and reduced performance.

Innovation Solution

An execution core is configured to receive a prefetch instruction that specifies a memory address, retrieving data from the specified memory address and storing it in a data cache, regardless of whether the data is already present, allowing for continuous prefetching and avoiding cache hits, thus ensuring that old data from previous image captures is ignored.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the execution core checks for cache hits before prefetching data, then memory access is reduced when data is already in cache, but prefetching is ineffective for non-cacheable shared memory in image processing applications

Engineering Contradiction:
Improveprefetching effectivenessVSAvoidmemory latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The execution core performs preliminary prefetching actions for non-cacheable shared memory without checking for cache hits first. This preliminary action ensures that data is fetched from memory into the cache before it is needed by the image processing pipeline, eliminating memory latency without wasting cycles on cache hit checks for non-cacheable memory.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the execution core always prefetches data from memory regardless of cache status, then prefetching consistency is improved and old data is ignored, but memory bandwidth is consumed even when data is already in cache

Engineering Contradiction:
Improvedata freshnessVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system applies different prefetching strategies to different memory types: for non-cacheable shared memory used in image processing, the execution core always prefetches data without cache hit checks to ensure data freshness and ignore old data; for other cacheable memory, traditional cache hit checking is maintained to conserve memory bandwidth.

Inventive Principle:
Principle #3Local quality

3Reliability

If shared memory is allocated from non-cacheable memory pool to ensure coherence, then data coherence is maintained, but prefetch instructions become ineffective

Engineering Contradiction:
Improvedata coherenceVSAvoidprefetch instruction effectiveness
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The execution core performs preliminary prefetching actions for non-cacheable shared memory without checking for cache hits first. This preliminary action ensures that data is fetched from memory into the cache before it is needed by the image processing pipeline, eliminating memory latency without wasting cycles on cache hit checks for non-cacheable memory.

Inventive Principle:
Principle #10Preliminary action

4Use of energy by moving object

If the execution core checks for cache hits before prefetching, then memory bandwidth is conserved, but stale data from previous image captures may be processed

Engineering Contradiction:
Improvememory bandwidth conservationVSAvoiddata staleness risk
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The system applies different prefetching strategies to different memory types: for non-cacheable shared memory used in image processing, the execution core always prefetches data without cache hit checks to ensure data freshness and ignore old data; for other cacheable memory, traditional cache hit checking is maintained to conserve memory bandwidth.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8683135B2Prefetch instruction that ignores a cache hit
Publication Date: 2014.03.25 APPLE INC
  • US8683135B2 patent drawing
  • US8683135B2 patent drawing
  • US8683135B2 patent drawing

AI summary

Techniques are disclosed relating to prefetching data from memory. In one embodiment, an integrated circuit may include a processor containing an execution core and a data cache. The execution core may be configured to receive an instance of a prefetch instruction that specifies a memory address from which to retrieve data. In response to the instance of the instruction, the execution core retrieves data from the memory address and stores it in the data in the data cache, regardless of whether the data corresponding to that particular memory address is already stored in the data cache. In this manner, the data cache may be used as a prefetch buffer for data in memory buffers where coherence has not been maintained.