List Prefetch Engine for Parallel Computing Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional prefetching methods in parallel computing systems are inefficient as they prefetch a fixed number of data streams with a fixed depth, failing to adapt to dynamic memory access patterns, leading to suboptimal performance.

Innovation Solution

Implementing a list prefetch engine that records and reuses sequences of prior cache miss addresses to prefetch data, allowing for adaptive and efficient memory access by comparing current cache miss addresses with a list of previous misses, thereby optimizing data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional fixed-depth prefetching is used, then implementation is simple, but performance is suboptimal due to inability to adapt to dynamic memory access patterns

Engineering Contradiction:
Improvememory access performanceVSAvoidprefetch engine complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a list prefetch engine that dynamically adapts to varying memory access patterns by maintaining a list of previously accessed cache miss addresses. The prefetch depth and pattern are adjusted based on actual runtime behavior rather than being fixed, allowing the system to optimize for different access scenarios automatically.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback from actual cache miss addresses to update and refine the prefetch list. By monitoring which addresses cause cache misses and incorporating this information into the prefetch list, the system continuously improves its prefetching accuracy based on real system behavior.

Inventive Principle:
Principle #23Feedback

2Productivity

If fixed number of data streams are prefetched, then resource usage is predictable, but performance suffers due to lack of adaptability to actual memory access patterns

Engineering Contradiction:
Improveprocessor speedVSAvoidadaptability to memory access patterns
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system performs preliminary actions by prefetching data into the cache before it is actually needed by the processor. The list prefetch engine identifies addresses that are likely to be accessed soon based on the list of previous cache misses and pre-loads that data, reducing wait time for the processor.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of prefetch depth from a fixed value to a dynamic value determined by the list of previous cache misses. This allows the system to adjust how much data is prefetched based on the specific access patterns observed, optimizing performance for different workloads.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8806141B2List based prefetch
Publication Date: 2014.08.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8806141B2 patent drawing
  • US8806141B2 patent drawing
  • US8806141B2 patent drawing

AI summary

A list prefetch engine improves a performance of a parallel computing system. The list prefetch engine receives a current cache miss address. The list prefetch engine evaluates whether the current cache miss address is valid. If the current cache miss address is valid, the list prefetch engine compares the current cache miss address and a list address. A list address represents an address in a list. A list describes an arbitrary sequence of prior cache miss addresses. The prefetch engine prefetches data according to the list, if there is a match between the current cache miss address and the list address.