Shared Cache Accelerator Flag Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional solutions for offloading data from general purpose processing devices to hardware accelerators suffer from inefficiencies related to notifications, data exchange, and data sharing, including cache replacement policies that lead to data being marked as most-recently used even when it is not needed again.

Innovation Solution

Implementing a shared cache with LRU and accelerator flags to manage cache line reuse, and using monitors to efficiently exchange notifications between processors and accelerators, allowing for timely reuse of cache lines and preventing data from staying in the cache unnecessarily.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional cache replacement policies are used, then cache lines are managed automatically, but data is marked as most-recently used even when it will not be used further, reducing cache efficiency

Engineering Contradiction:
Improvecache line reuse efficiencyVSAvoiddata retention time in cache
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

An intermediary mechanism (the accelerator flag) is introduced between the cache replacement policy and the actual cache line management. This flag acts as a mediator that communicates the accelerator's intent regarding data usage, allowing the cache policy to make informed decisions about which lines to evict without being misled by premature LRU markings.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

A feedback mechanism is implemented where the accelerator provides information back to the cache management system through the accelerator flag. This feedback loop allows the cache policy to adjust its behavior based on actual data usage patterns, preventing the marking of cache lines as LRU when the data is still needed by the accelerator.

Inventive Principle:
Principle #23Feedback

2Speed

If data is kept in cache for accelerator processing, then data access is fast, but data remains in cache unnecessarily increasing energy consumption

Engineering Contradiction:
Improvedata access speedVSAvoidcache maintenance energy
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The cache management system dynamically adjusts its behavior based on the state of the accelerator flag. When the flag indicates the accelerator needs data, the cache line is protected from eviction; when the flag is cleared, the cache line can be evicted. This dynamic adaptation allows the system to optimize between keeping data in cache for fast access and evicting data to save energy based on actual needs.

Inventive Principle:
Principle #15Dynamics

3Reliability

If notifications are exchanged between processor and accelerator, then data sharing coordination is improved, but communication overhead increases

Engineering Contradiction:
Improvedata sharing coordinationVSAvoidnotification mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The notification mechanism extracts only the essential information needed for coordination - the accelerator flag state - from complex inter-processor communication protocols. By taking out only the critical coordination signal rather than implementing full-blown notification exchanges, the system achieves reliable data sharing coordination with minimal communication overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10248568B2Efficient data transfer between a processor core and an accelerator
Publication Date: 2019.04.02 INTEL CORP
  • US10248568B2 patent drawing
  • US10248568B2 patent drawing
  • US10248568B2 patent drawing

AI summary

A processor writes input data to a cache line of a shared cache, wherein the input data is ready to be operated on by an accelerator. It then notifies an accelerator that the input data is ready to be processed. The processor then determines that output data of the accelerator is ready to be consumed, the output data being located at the cache line or an additional cache line of the shared cache, wherein the cache line or the additional cache line comprises a set first flag that indicates the cache line or the additional cache line was modified by the accelerator and that prevents the output data from being removed from the cache line or the additional cache line until the output data is read by the processor. The processor reads and processes the output data from the cache line or the additional cache.