Priority-Aware Memory Block Prefetching During Cache Idle Windows

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The memory wall issue arises due to the disparity in speed between processors and memory, leading to inefficiencies as processors wait for data from slower memory, which existing prefetching techniques often inaccurately address.

Innovation Solution

Implementing a prefetch engine that distinguishes between high-priority and low-priority memory access requests, allowing for separate handling and prioritization, including methods to delay, interrupt, or resume prefetch bursts based on cache state to avoid interference.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If prefetching techniques are used to retrieve data in advance, then processor idle time is reduced, but incorrect prefetching may bring unnecessary data and reduce accuracy

Engineering Contradiction:
Improveprocessor idle timeVSAvoidprefetching accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The patent segments memory access requests into two distinct priority levels: high-priority requests (individual prefetches and application requests) and low-priority requests (multi-prefetch bursts). This segmentation allows the system to handle different types of requests differently, ensuring that accurate individual prefetches are not interfered with by bulk prefetch operations, thereby resolving the contradiction between reducing processor idle time and maintaining prefetching accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic priority assignment where the same multi-prefetch request can be upgraded from low-priority to high-priority status if it contains the base address of a high-priority application request. This dynamic adjustment ensures that prefetching accuracy is maintained by allowing the system to adaptively prioritize requests based on their actual importance, preventing incorrect prefetching while still enabling efficient bulk prefetching when appropriate.

Inventive Principle:
Principle #15Dynamics

2Productivity

If multi-prefetch requests are processed to prefetch multiple memory blocks, then memory access efficiency is improved, but interference with high-priority memory access requests occurs

Engineering Contradiction:
Improvememory access efficiencyVSAvoidmemory access reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the memory access request stream into high-priority and low-priority queues, allowing multi-prefetch requests to be processed in batches without interfering with high-priority individual prefetches and application requests. This segmentation ensures that memory access efficiency is improved through bulk prefetching while reliability is maintained by protecting high-priority requests from interference.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a priority arbitration mechanism that acts as an intermediary between multi-prefetch requests and high-priority requests. This mediator monitors the request stream, identifies high-priority requests, and ensures they are processed without interference from low-priority multi-prefetch operations, thereby maintaining both efficiency and reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If hardware prefetching is used to automatically predict memory access addresses, then programmer intervention is eliminated, but prefetching accuracy decreases

Engineering Contradiction:
Improveprogrammer intervention requirementVSAvoidprefetching accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent merges the advantages of both hardware and software prefetching by implementing a hybrid approach. Hardware automatically generates multi-prefetch requests based on observed access patterns, while the priority arbitration mechanism incorporates knowledge of high-priority application requests (similar to software prefetching). This combination eliminates the need for explicit programmer intervention while maintaining high prefetching accuracy through intelligent priority management.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20250298746A1Prefetching memory blocks
Publication Date: 2025.09.25 SEMIDYNAMICS TECHNOLOGY SERVICES SL
  • US20250298746A1 patent drawing
  • US20250298746A1 patent drawing
  • US20250298746A1 patent drawing

AI summary

Methods of prefetching memory blocks in a processor system including a processor and a memory including a main memory, a cache and a prefetcher. Two types of memory requests are executable at the memory: low-priority type including multi-prefetch requests and high-priority type including requests different from multi-prefetch requests. These methods include: receiving, by the prefetcher, a multi-prefetch request of the low-priority type defining a 1D or 2D region of memory blocks in the main memory; verifying, by the prefetcher, whether the cache is in idle state which means that no high-priority memory access request is being executed or waiting to be executed; and, if the cache is in the idle state, triggering by the prefetcher a prefetch burst by instructing the cache to individually prefetch the memory blocks forming the 1D or 2D region. Computer programs and prefetchers are also provided that are sui