Cache Push Agent for Reducing Instruction Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing methods for prefetching data into a processor's cache result in a high number of prefetch instructions, leading to increased instruction overhead due to the need for frequent data access and management.

Innovation Solution

A method and apparatus that periodically generate a push command to move data from memory to a push destination register based on a push parameter, which includes the data structure type and storage information of the data, reducing the need for numerous prefetch instructions by optimizing data access and placement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If compiler-controlled software prefetcher inserts prefetch instructions to improve data access speed, then data access speed is improved, but the number of instructions increases causing extra instruction overhead

Engineering Contradiction:
Improvedata access speedVSAvoidinstruction overhead
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces a cache push agent as an intermediary component that operates between memory and processor cache. This agent monitors memory access patterns and automatically pushes data to the cache before the processor requests it, eliminating the need for numerous prefetch instructions in the compiled code while maintaining fast data access.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The cache push agent implements self-service by autonomously detecting memory access patterns and proactively pushing required data to the cache without external intervention. The system serves itself by automatically optimizing its own data delivery mechanism, reducing instruction overhead while maintaining performance.

Inventive Principle:
Principle #25Self-service

2Productivity

If centralized pushing mechanism predicts and moves data to processor cache, then data access efficiency is improved, but system complexity increases due to cache coherency protocol requirements

Engineering Contradiction:
Improvedata access efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache push agent serves as an intermediary that simplifies the data delivery process. Instead of implementing a complex centralized pushing mechanism with full cache coherency protocols, the agent operates as a lightweight intermediary that pushes data based on monitored access patterns, reducing system complexity while maintaining productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If memory-side data prefetch copies data from first data store to second data store, then application data access is improved, but additional copying operations increase processing overhead

Engineering Contradiction:
Improveapplication data accessVSAvoidprocessing overhead
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The cache push agent implements self-service by autonomously determining when and what data to push based on monitored memory access patterns. This eliminates the need for explicit prefetch instructions and reduces processing overhead while improving application data access speed through intelligent, automatic data placement.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2908248B1Memory data pushing method and device
Publication Date: 2017.09.20 HUAWEI TECH CO LTD
  • EP2908248B1 patent drawingFigure 1
  • EP2908248B1 patent drawingFigure 2
  • EP2908248B1 patent drawingFigure 3

AI summary

Embodiments of the present invention provide a method and an apparatus for pushing memory data. The method includes: periodically generating a push command according to a push period, where one push command is periodically generated within one push period; acquiring a push parameter of to-be-pushed data according to the push command; sending at least one memory access request to memory according to the push parameter, where the at least one memory access request is used to request the to-be-pushed data from the memory; receiving the to-be-pushed data that is sent according to the memory access request by the memory, and placing, in a data buffer, the to-be-pushed data that is sent according to the memory access request by the memory; and pushing the to-be-pushed data from the data buffer to the push destination storage.