Asynchronous Cache Flushing for Stall-Free Processing-in-Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computer architectures face increased data transfer latency and energy consumption due to remote processing units being further away from memory, leading to computational inefficiencies and delays when executing processing-in-memory operations.

Innovation Solution

Implementing an asynchronous flush controller to preemptively flush cached data to memory before processing-in-memory operations are scheduled, using asynchronous range flush commands to ensure data validity and reduce stall time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is cached in the cache system for faster access, then access speed is improved, but data validity is compromised when processing-in-memory operations need to read updated data from memory

Engineering Contradiction:
Improvedata access speedVSAvoiddata validity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The cache controller performs a preliminary action by flushing cached data to memory before the processing-in-memory operation is executed. This preemptive flush ensures that the data in memory is up-to-date and valid for the upcoming operation, eliminating the need for post-operation data validation or correction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from the cache controller to monitor cache state and trigger flush operations when necessary. The cache controller receives information about upcoming processing-in-memory operations and automatically manages cache invalidation based on this feedback, ensuring data consistency without manual intervention.

Inventive Principle:
Principle #23Feedback

2Productivity

If the cache system maintains data for processing-in-memory operations, then computational efficiency is improved, but system stalls occur when data needs to be flushed

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidstall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The cache controller initiates a preliminary flush action before the processing-in-memory operation requires the data. This timing strategy allows the flush to complete in advance, so when the operation executes, the data is already valid in memory and no stall occurs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous useful action by overlapping the flush operation with other cache operations or by scheduling flushes during idle periods. This ensures that the flush process does not interrupt the main computational workflow, maintaining overall system productivity.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If data is transferred from cache to memory for processing-in-memory operations, then data validity is ensured, but transfer latency increases

Engineering Contradiction:
Improvedata validityVSAvoidtransfer latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The data transfer from cache to memory is performed as a preliminary action before the processing-in-memory operation executes. By completing the transfer in advance, the system eliminates the latency that would otherwise occur during the operation itself, as the data is already ready in memory.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12596650B2Preemptive flushing of processing-in-memory data structures
Publication Date: 2026.04.07 ADVANCED MICRO DEVICES INC
  • US12596650B2 patent drawing
  • US12596650B2 patent drawing
  • US12596650B2 patent drawing

AI summary

Preemptive flushing of data involved in executing a processing-in-memory command, from a cache system to main memory that is accessible by a processing-in-memory component, is described. In one example, a system includes an asynchronous flush controller that receives an indication of a subsequent processing-in-memory command to be executed as part of performing a computational task. While earlier commands of the computational task are executed, the asynchronous flush controller evicts or invalidates data elements involved in executing the subsequent processing-in-memory command from the cache system, such that the processing-in-memory command can proceed without stalling.