Persistent Memory Flush Controller via Bus

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persistent memory devices often rely on volatile buffers, leading to uncertainties about data persistence, as data may not be immediately flushed to persistent memory, especially when accessed via buses like PCIe, resulting in lack of assurance that written data have been committed.

Innovation Solution

The implementation of a memory device with a volatile buffer and a memory controller that receives a flush instruction to immediately transfer data from the buffer to the target persistent memory, with optional range identification and flush attributes, allowing for efficient and assured data persistence without interrupting the central processing unit.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is written to persistent memory via a bus using volatile buffer, then write speed is improved, but data persistence reliability deteriorates

Engineering Contradiction:
Improvewrite speedVSAvoiddata persistence reliability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary flushing of data from volatile buffer to persistent memory by issuing a flush instruction before the buffer is overwritten or lost. This preliminary action ensures data is safely persisted before any potential data loss event occurs, resolving the contradiction between fast buffering and reliable persistence.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback through completion messages that confirm when data has been successfully flushed to persistent memory. The flush instruction triggers a flush operation, and upon completion, a completion message is sent back to the sender, providing feedback that allows the system to verify data persistence reliability while maintaining high write speeds.

Inventive Principle:
Principle #23Feedback

2Reliability

If immediate flushing is performed for all data, then data persistence reliability is improved, but system productivity deteriorates

Engineering Contradiction:
Improvedata persistence reliabilityVSAvoidsystem productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies local quality by allowing different memory regions to have different flush attributes. Some regions can be configured for immediate flushing (high reliability) while others use deferred or batched flushing (high productivity). This selective approach resolves the contradiction by optimizing each region according to its specific requirements rather than applying a uniform strategy system-wide.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system performs partial flushing by selectively flushing only the necessary portions of data based on flush attributes and completion requirements. Instead of flushing all data immediately, it flushes only when required by flush instructions or completion messages, thereby maintaining productivity while ensuring reliability for critical data operations.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If CPU interrupts are generated for each write operation, then data persistence control is improved, but device complexity deteriorates

Engineering Contradiction:
Improvedata persistence controlVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements self-service by enabling the memory device to autonomously handle flush operations and generate completion messages without requiring continuous CPU intervention. The device can process flush instructions and manage data persistence independently, reducing the complexity of CPU-device interaction while maintaining reliable data persistence control through automated completion messaging.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10776272B2Control of persistent memory via a computer bus
Publication Date: 2020.09.15 MELLANOX TECHNOLOGIES LTD(IL)
  • US10776272B2 patent drawing
  • US10776272B2 patent drawing
  • US10776272B2 patent drawing

AI summary

A memory device includes a target memory, having a memory address space, and a volatile buffer memory, which is coupled to receive data written over a bus to the memory device for storage in specified addresses within the memory address space. A memory controller is configured to receive, via the bus, a flush instruction and, in response to the flush instruction, to immediately flush the data held in the buffer memory with specified addresses within the memory address space to the target memory.