Memory Flush State Machine for Heterogeneous Memory Targets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In heterogeneous and distributed shared memory environments, existing memory flush techniques are inefficient due to slower non-local memory flushes and high overhead in tracking written memory partitions, especially with virtual memory usage.

Innovation Solution

A novel memory flush technique using a flush state machine to determine which memory partitions require a flush read instruction, issuing instructions only when necessary and maintaining three states for efficient tracking, allowing a single state machine to handle multiple memory targets and types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a memory flush is performed on all memory partitions, then all written data is ensured to be flushed, but the overhead in tracking written partitions increases significantly

Engineering Contradiction:
Improvememory flush completenessVSAvoidtracking overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a flush state machine that tracks memory partitions in three states (idle, flush needed, flush pending) to determine which partitions require flushing. This state-based parameter tracking eliminates the need for complex write-set tracking while ensuring complete flush of relevant partitions.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The memory controller autonomously manages flush operations by using the flush state machine to automatically identify and flush only the necessary partitions without external intervention or complex tracking mechanisms, reducing system overhead.

Inventive Principle:
Principle #25Self-service

2Reliability

If flush read instructions are issued to all memory partitions, then all partitions are flushed, but the time consumed by non-local memory flushes increases

Engineering Contradiction:
Improveflush completenessVSAvoidflush operation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of issuing flush read instructions to all memory partitions, the patent uses the flush state machine to identify and flush only the subset of partitions that are in the 'flush needed' or 'flush pending' state, eliminating unnecessary flush operations on local or already-flushed partitions.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent applies different flush strategies based on the local state of each memory partition. Partitions in the idle state skip flushing, while those in flush needed or pending states receive flush read instructions, optimizing the flush process for each partition's actual requirements.

Inventive Principle:
Principle #3Local quality

3Productivity

If targeted memory flushes are performed on specific partitions, then flush efficiency improves, but the complexity of tracking written partitions increases

Engineering Contradiction:
Improveflush efficiencyVSAvoidtracking mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces complex write-set tracking with a simplified three-state parameter system (idle, flush needed, flush pending) that is easier to manage and process, achieving targeted flushing without the overhead of tracking individual write operations.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The flush state machine segments the memory partition management into distinct states, allowing the system to handle different partition conditions uniformly and simplifying the tracking mechanism while maintaining flush efficiency.

Inventive Principle:
Principle #1Segmentation

4Adaptability or versatility

If virtual memory is used, then memory management flexibility improves, but tracking written memory partitions becomes more difficult

Engineering Contradiction:
Improvememory management flexibilityVSAvoidtracking difficulty
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent uses the flush state machine to track memory partitions in simplified states (idle, flush needed, flush pending) rather than tracking individual virtual memory addresses, maintaining the flexibility of virtual memory while simplifying the tracking mechanism.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7631152B1Determining memory flush states for selective heterogeneous memory flushes
Publication Date: 2009.12.08 NVIDIA CORP
  • US7631152B1 patent drawing
  • US7631152B1 patent drawing
  • US7631152B1 patent drawing

AI summary

A memory flush is processed in accordance with a state machine that keeps track of the flush states of a memory target. A memory target is not flushed if it has not been written to, or if a memory flush has already been completed for that memory target. A memory target is flushed if the memory partition is in a flush needed state or a flush pending state. Each memory target has an associated state machine, but only one state machine is maintained per memory target.