Block Memory Prefetching Using Instruction-Triggered Cache Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing techniques face challenges in timely prefetching data for block memory instructions, leading to cache pollution and inefficient use of cache resources due to unnecessary prefetching and reliance on pattern recognition that may not be effective for small memory blocks.

Innovation Solution

Implementing block prefetch circuitry that generates prefetch requests based on detected block memory instructions, specifying a start and end address, allowing for immediate prefetching without waiting for pattern recognition, and incorporating throttling circuitry to manage cache usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If pattern recognition techniques are used to generate prefetch requests, then prefetching may occur for small memory blocks, but this leads to cache pollution and inefficient use of cache resources

Engineering Contradiction:
Improveprefetching effectivenessVSAvoidcache pollution
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The patent applies preliminary action by detecting block memory instructions before actual memory access occurs. The system identifies block memory instructions in the instruction stream and generates prefetch requests proactively, rather than waiting for pattern recognition after several accesses have occurred. This allows timely prefetching for small memory blocks while avoiding cache pollution from unnecessary prefetches, as the block boundaries are known in advance from the instruction detection.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If prefetch requests are generated without waiting for pattern recognition, then timely prefetching is achieved, but this requires detecting block memory instructions in advance

Engineering Contradiction:
Improveprefetch timingVSAvoidinstruction detection
Core Design Contradiction:
Loss of timeVSDifficulty of detecting and measuring

Solution Approach 1:

The patent uses an intermediary approach by introducing a detection mechanism that identifies block memory instructions as they appear in the instruction stream. This intermediary detector acts as a bridge between the instruction stream and the prefetch generator, enabling timely prefetch requests without requiring complex pattern recognition. The detector captures block memory instruction characteristics and triggers prefetch operations, solving the timing problem while keeping the detection mechanism relatively simple.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of energy

If block memory instructions are detected to trigger prefetch requests, then unnecessary prefetching is prevented, but this requires additional detection circuitry

Engineering Contradiction:
Improvecache resource efficiencyVSAvoiddetection circuitry
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent applies universality by designing the detection circuitry to serve multiple functions. The same detection mechanism identifies block memory instructions for both prefetch triggering and for providing information about memory access patterns. The circuitry analyzes instruction characteristics to determine block boundaries and sizes, which are then used to generate appropriate prefetch requests. This multi-functional approach prevents unnecessary prefetching while minimizing additional hardware complexity, as the detection system serves dual purposes in the memory subsystem.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20260056746A1Prefetching for block memory instructions
Publication Date: 2026.02.26 ARM LTD
  • US20260056746A1 patent drawing
  • US20260056746A1 patent drawing
  • US20260056746A1 patent drawing

AI summary

An apparatus comprises decoding circuitry to decode instructions defined according to an instruction set architecture, the instruction set architecture supporting a block memory instruction identifying a block of memory to which a predetermined type of memory operation is to be performed; processing circuitry to perform data processing in response to the decoded instructions; and block prefetch circuitry to generate a prefetch request, the prefetch request comprising a request for data to be prefetched into a cache; in which the block prefetch circuitry determines whether the decoding circuitry has detected the block memory instruction in a sequence of decoded instructions; and in response to determining that the decoding circuitry has detected the block memory instruction, generates a block-instruction-triggered stream of prefetch requests, each specifying a memory address between a start address and an end address of the block of memory identified by the block memory instruction.