SSD Cache Management with Dirty-Block Invalidation for Write Conflicts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solid state drives (SSDs) experience long processing times and reduced performance due to write conflicts, which arise when address ranges of write data overlap, leading to increased command delay and data inconsistency during cache management.

Innovation Solution

A cache management method for SSDs that utilizes a dirty data block linked list and bitmap collections to manage cache space, allowing for rapid insertion of new data blocks by marking conflicting regions as invalid and separating insertion from data updates, thereby reducing command delay and enhancing system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the old cache data is waited for flushing before updating, then data consistency is ensured, but command processing delay increases and processing capacity is reduced

Engineering Contradiction:
Improvedata consistencyVSAvoidcommand processing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the cache data into valid and invalid regions using a valid bit map. When a write conflict occurs, only the conflicting portion is marked invalid while the rest of the cache data remains valid and can be flushed independently. This allows partial cache updates without waiting for the entire cache to be flushed, reducing command processing delay while maintaining data consistency for valid data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by treating different regions of the cache differently through the valid bit map. Each cache block has an associated valid bit that indicates whether the data is valid or invalid. This allows the system to selectively invalidate only the conflicting regions while preserving other valid data, enabling parallel flushing of non-conflicting data and reducing overall wait time.

Inventive Principle:
Principle #3Local quality

2Reliability

If data copying is performed during conflict resolution, then new cache data is updated, but processing capacity of the host is reduced

Engineering Contradiction:
Improvecache data validityVSAvoidhost processing capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the complexity of data copying and validation from the host processor by implementing the valid bit map mechanism in the SSD controller. The controller independently manages cache validity states and handles conflict resolution without requiring host intervention for data copying, thus preserving host processing capacity while ensuring cache data validity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of physically copying data during conflict resolution, the patent uses a logical copying approach through the valid bit map. The new data is written to the cache block and the valid bit is updated to reflect the current valid data region. This avoids expensive data copying operations while maintaining data validity, significantly improving processing capacity.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12423231B2Cache management method, solid state drive controller and solid state drive
Publication Date: 2025.09.23 DAPUSTOR CORP
  • US12423231B2 patent drawing
  • US12423231B2 patent drawing
  • US12423231B2 patent drawing

AI summary

A cache management method, a solid state drive controller, and a solid state drive are provided. The solid state drive comprises a cache space, and the cache space comprises a dirty data block linked list. The method comprises: obtaining a write command and generating a first dirty data block used to record data information of the write command; and if the first dirty data block conflicts in address range with a second dirty data block in the dirty data block linked list, marking data in the conflicting region of the second dirty data block as invalid and inserting the first dirty data block into the dirty data block linked list.