Push Engine Proactive Data Transfer for Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Concurrency control mechanisms, such as locks, increase latency in accessing shared data resources in modern computing environments due to the need for synchronized access across multiple processors.

Innovation Solution

A push engine determines the next consumer of a block of data and proactively transfers it to a target memory closer to the consumer, reducing latency by employing a concurrency control mechanism that anticipates and manages access without explicit requests, using a system that includes a push engine to identify and transfer data from a source node to a target memory associated with the next consumer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If concurrency control mechanisms such as locks are used to manage shared data access, then data access safety is improved, but access latency increases

Engineering Contradiction:
Improvedata access safetyVSAvoidaccess latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The push engine proactively pushes data from the source node to the target memory location before the consumer actually requests it. By examining upcoming instructions and predicting future data needs, the system prepares data in advance at the consumer's location, eliminating the need for costly lock-based synchronization when the data is actually needed.

Inventive Principle:
Principle #10Preliminary action

2Speed

If data is kept in source node cache for future access, then access speed is improved, but cache coherence complexity increases

Engineering Contradiction:
Improvedata access speedVSAvoidcache coherence complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The push engine acts as an intermediary that manages data movement between source and target nodes. It uses a push cache to track pushed data and coordinates with the cache coherence protocol, simplifying the complexity by providing a dedicated management layer rather than embedding coherence logic throughout the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If data is pushed to target memory before requested, then access latency is reduced, but system complexity increases

Engineering Contradiction:
Improveaccess latencyVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The push engine automatically determines when and what data to push by examining instruction queues and predicting consumer needs. The system serves itself by autonomously managing data movement without requiring complex external coordination, using heuristics and instruction analysis to make intelligent pushing decisions.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback from instruction queue analysis and consumer behavior patterns to dynamically adjust pushing decisions. The push engine continuously monitors which data will be needed and adjusts its pushing strategy based on actual execution patterns and predicted future access needs.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8051250B2Systems and methods for pushing data
Publication Date: 2011.11.01 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8051250B2 patent drawing
  • US8051250B2 patent drawing
  • US8051250B2 patent drawing

AI summary

A system for pushing data, the system includes a source node that stores a coherent copy of a block of data. The system also includes a push engine configured to determine a next consumer of the block of data. The determination being made in the absence of the push engine detecting a request for the block of data from the next consumer. The push engine causes the source node to push the block of data to a memory associated with the next consumer to reduce latency of the next consumer accessing the block of data.