Memory Flush State Machine for Heterogeneous Memory Targets
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Productivity
If targeted memory flushes are performed on specific partitions, then flush efficiency improves, but the complexity of tracking written partitions increases
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.
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.
4Adaptability or versatility
If virtual memory is used, then memory management flexibility improves, but tracking written memory partitions becomes more difficult
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.
Data Source
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.


