Non-blocking flush mechanism for SSD data persistence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face challenges in efficiently and non-disruptively transferring data from volatile memory to non-volatile memory, particularly in ensuring data persistence without interrupting ongoing operations or requiring explicit flush commands.

Innovation Solution

Implementing a non-blocking 'virtual flush' mechanism that guarantees only a predefined amount of recent data remains uncommitted in volatile memory, allowing hosts to continue issuing commands without explicit flush instructions, and enabling read operations during write flush operations by separating data into portions or streams.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is transferred immediately from volatile memory to non-volatile storage using traditional flush commands, then data persistence is guaranteed, but ongoing storage operations are blocked and system performance deteriorates

Engineering Contradiction:
Improvedata persistenceVSAvoidstorage operation throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the data buffer into multiple portions and processes flush operations on individual portions rather than blocking the entire buffer. This allows different segments to be flushed independently while other segments continue to accept writes, resolving the contradiction between data persistence and operational throughput by enabling partial flush completion without system-wide blocking

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary data placement in volatile memory with pre-allocation of buffer portions before flush operations are needed. By pre-organizing data into flushable portions and maintaining a ready-state buffer structure, the system can immediately begin flush operations without waiting for data accumulation or reorganization, thus maintaining both persistence guarantees and operational performance

Inventive Principle:
Principle #10Preliminary action

2Reliability

If explicit flush commands are issued to commit data to non-volatile memory, then data commitment is ensured, but the host must wait for flush completion before issuing subsequent commands

Engineering Contradiction:
Improvedata commitmentVSAvoidhost waiting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary acknowledgment mechanism where the storage device confirms to the host that data has been placed in the volatile buffer, without requiring the host to wait for actual non-volatile memory completion. This intermediary state allows the host to continue operations while the storage device handles async flush operations, eliminating host waiting time while maintaining data commitment through buffer guarantees

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent enables continuous host operations by decoupling the host's command issuance from the actual flush completion timeline. The storage device maintains continuous data acceptance in volatile memory while performing non-blocking flush operations in the background, ensuring that useful actions (data commitment and host processing) continue simultaneously without interruption or waiting

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If data is buffered in volatile memory before writing to non-volatile storage, then write performance is improved, but data loss risk increases in case of power failure

Engineering Contradiction:
Improvewrite performanceVSAvoiddata loss risk
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the volatile buffer into multiple independent portions with individual flush tracking. By flushing portions independently and maintaining metadata about which portions are committed, the system can survive power failures more gracefully - only unflushed portions are at risk, while flushed portions are protected. This segmentation reduces overall data loss risk while maintaining high write performance through continued buffering

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements feedback mechanisms where the storage device continuously tracks and reports the state of buffered data (committed vs. uncommitted portions) to the host. This feedback enables the host to make informed decisions about data safety and can trigger selective flush operations based on risk assessment, thereby reducing data loss risk while preserving write performance through intelligent buffer management

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9946496B2SSD with non-blocking flush command
Publication Date: 2018.04.17 GOOGLE LLC
  • US9946496B2 patent drawing
  • US9946496B2 patent drawing

AI summary

A computing system includes a storage device and a host. The storage device includes a volatile memory and a non-volatile memory, and is configured to receive data for storage in the non-volatile memory, to buffer at least some of the received data temporarily in the volatile memory, and to guarantee that any data, which is not part of a predefined amount of data that was most recently received, has been committed to the non-volatile memory. The host is configured to send the data for storage in the storage device, and, in response to a need to commit given data to the non-volatile memory, to send the given data to the storage device followed by at least the predefined amount of additional data.