SSD Cache Striping for Write Amplification Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Solid State Disks (SSDs) face challenges with access conflicts due to non-continuous and random data reading and writing operations, leading to high write amplification ratios that affect performance and service life, especially when modifying data in flash storage where direct overwriting is not allowed.

Innovation Solution

Implementing a striping technique and a cache-based method where data is divided into sub-data pieces stored across multiple physical channels, using a cache to store frequently modified data and reducing the need for frequent erasure and reprogramming of flash blocks, along with a fault-tolerant mechanism for data recovery and migration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multi-channel parallel technique is used to increase data reading and writing speeds, then productivity is improved, but access conflicts occur due to random data operations

Engineering Contradiction:
Improvedata reading and writing speedsVSAvoidaccess conflict
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments data into multiple channels for parallel processing. Each channel independently handles specific data streams, dividing the monolithic storage system into manageable segments that can operate simultaneously without interfering with each other, thereby reducing access conflicts while maintaining high throughput

Inventive Principle:
Principle #1Segmentation

2Device complexity

If flash storage is used for data storage, then device complexity is reduced, but write amplification ratio increases because direct overwriting is not allowed

Engineering Contradiction:
Improvestorage structureVSAvoidwrite amplification ratio
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements preliminary actions by pre-allocating erase blocks and preparing valid data buffers before actual write operations. When data needs to be updated, the system has already prepared replacement blocks and validation mechanisms, allowing efficient in-place updates without requiring extensive erasure and reprogramming cycles, thereby reducing write amplification

Inventive Principle:
Principle #10Preliminary action

3Productivity

If cache is used to store frequently modified data, then write amplification ratio is reduced, but device complexity increases

Engineering Contradiction:
Improvewrite amplification ratioVSAvoidcache management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a cache layer as an intermediary between the host interface and the flash storage medium. This cache buffer absorbs write operations, performs validation and consolidation, and then writes to flash in optimized batches. The intermediary layer simplifies complex flash management tasks while reducing write amplification, as it handles wear-leveling and data consolidation centrally rather than requiring complex distributed management across all channels

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3598290B1Solid-state disk access
Publication Date: 2024.02.28 XINHUASAN INFORMATION TECH CO LTD
  • EP3598290B1 patent drawingFigure 1~2
  • EP3598290B1 patent drawingFigure 3~4
  • EP3598290B1 patent drawingFigure 5~6

AI summary

A method of accessing a Solid State Disk (SSD) and an SSD are provided, where the SSD includes: a cache (202), N physical channels (204), and flashes (203) mounted to the physical channels. The cache includes a plurality of strips. Each of the plurality of strips includes N sectors, N being an integer greater than or equal to 3. The method is applied to the SSD. According to the method, a data writing command for the SSD is received (S301); a first strip and a first sector that correspond to an LBA of data to be written carried in the data writing command are determined (S301); when the first strip is present in the cache (S302), the data to be written is written into the cache as data of the first sector (S303); and when the first strip is absent in the cache, the first strip is established and the data to be written is written into the cache as data of the first sector (S304).