SSD Decoder-Level Bloom Filter for Faster Recurrent Block Reads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage devices, such as solid state drives (SSDs), face inefficiencies in decoding operations due to the time-intensive process of decoding encoded data, which requires multiple decoding stages with increasing complexity and time, leading to repeated decoding of the same data.

Innovation Solution

Implementing a controller with a bloom filter to store decoder levels and associate them with IDs, allowing for efficient decoding by matching the read data with the appropriate decoder level, thereby skipping unnecessary decoding stages and improving decoding speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple decoding stages with increasing complexity are used to decode encoded data, then decoding capability and reliability are improved, but decoding time and processing complexity increase significantly

Engineering Contradiction:
Improvedecoding capabilityVSAvoiddecoding time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-processing encoded data during the write operation to generate and store a fingerprint (hash value) along with the encoded data in the memory device. When a read operation occurs, the controller first decodes the data using a lightweight first decoder, then compares the fingerprint of the decoded data with stored fingerprints to identify the original encoded data. This allows the system to use stronger second decoders only when necessary, significantly reducing average decoding time while maintaining high reliability.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the same encoded data is read multiple times from NVM, then data access frequency increases, but decoding operation must be repeated each time consuming additional time

Engineering Contradiction:
Improvedata access frequencyVSAvoidrepeated decoding time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies copying by creating a fingerprint (hash value) of the encoded data and storing it alongside the original data in the memory device. This fingerprint serves as a lightweight copy that can be quickly compared during read operations. When data is read, the controller generates a fingerprint of the decoded data and compares it with stored fingerprints to identify previously decoded data, avoiding repeated full decoding operations and significantly reducing access time for frequently read data.

Inventive Principle:
Principle #26Copying

3Loss of time

If bloom filter is used to store decoder level information, then decoding operation is optimized for previously decoded data, but memory space is required for the bloom filter structure

Engineering Contradiction:
Improvedecoding timeVSAvoidmemory space
Core Design Contradiction:
Loss of timeVSVolume of stationary object

Solution Approach 1:

The patent applies local quality by implementing a multi-level decoding strategy where different decoding approaches are applied based on local characteristics of the data. The bloom filter stores decoder level information locally associated with specific encoded data blocks. When reading data, the controller first checks the bloom filter for the specific block's decoder level information, allowing it to apply the appropriate decoding strength locally rather than uniformly decoding all data, thus optimizing time while using memory space efficiently.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11704027B2Optimizing recovery of recurrent blocks using bloom filter
Publication Date: 2023.07.18 SANDISK TECHNOLOGIES LLC
  • US11704027B2 patent drawing
  • US11704027B2 patent drawing
  • US11704027B2 patent drawing

AI summary

A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to decode data from the memory device, store a decoder level for the decoded data in a bloom filter, receive a read command for the data, and decode the data using a decoder associated with the stored decoder level. The decoder level corresponds to a decoder having a certain decoding strength. The decoder level is stored in the bloom filter as an ID, where a bloom filter may be associated with each decoder level.