Flush Command Consolidation in Data Storage Write Caches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flush commands in data storage devices are costly and decrease system throughput due to the need to wait for data to be written to non-volatile memory, leading to high latency and suboptimal pipeline operation.

Innovation Solution

A data storage device is configured to reduce the number of flush commands by consolidating or bypassing intermediate flush commands, allowing data to be written to non-volatile memory only when a full write block is available, thereby reducing the need for frequent flush operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If flush commands are executed frequently to ensure data is written to non-volatile memory, then data reliability is improved, but system throughput deteriorates due to high latency and pipeline inefficiency

Engineering Contradiction:
Improvedata reliabilityVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple intermediate flush commands into a single flush operation. When the controller receives multiple flush commands while data is being written to the cache, it consolidates them and executes only one flush command after the write block is fully filled, rather than executing each flush command separately. This combining approach maintains data reliability while significantly improving system throughput by reducing the number of times the pipeline is stalled.

Inventive Principle:
Principle #5Merging (Combining)

2Stability of the object's composition

If flush commands are executed immediately upon receipt to clear the cache, then cache consistency is improved, but pipeline efficiency deteriorates due to waiting for write operations to complete

Engineering Contradiction:
Improvecache consistencyVSAvoidpipeline latency
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having the controller anticipate and buffer multiple flush commands before executing them. Instead of executing each flush command immediately when received (which would stall the pipeline), the controller holds them in a buffer and executes them preliminarily consolidated after the write block is ready. This approach maintains cache consistency while avoiding pipeline stalls during the data transfer process.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple flush commands are executed to clear cached data, then data persistence is improved, but system performance deteriorates due to increased overhead and reduced throughput

Engineering Contradiction:
Improvedata persistenceVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple flush commands into a single execution event. When the controller receives multiple flush commands during the data writing process, it consolidates them and executes only one flush command after the write block is fully filled and data is persisted to non-volatile memory. This merging approach ensures data persistence is achieved while minimizing the overhead associated with flush command execution, thereby maintaining high system performance.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10534709B2Flush command consolidation
Publication Date: 2020.01.14 SANDISK TECHNOLOGIES LLC
  • US10534709B2 patent drawing
  • US10534709B2 patent drawing
  • US10534709B2 patent drawing

AI summary

A data storage device includes a write cache, a non-volatile memory and a controller coupled to the write cache and to the non-volatile memory. The controller is configured to, responsive to receiving a plurality of flush commands, write all data from the write cache to the non-volatile memory while executing fewer than all of the plurality of flush commands.