Storage Controller Segregating Sequential Data Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage devices face performance issues with sequential data management, as writing multiple sequential data streams to the same block leads to mixed patterns, impacting read and write performance and reducing storage device life due to increased program/erase cycles and data relocations.

Innovation Solution

The storage device segregates sequential data streams by writing each to a different physical block, using a controller that determines whether a host write command includes a sequential data stream and allocates it to a specific block, ensuring each stream is stored contiguously, thereby reducing mixed patterns and optimizing read and write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If multiple sequential data streams are written to the same block, then storage capacity utilization is improved, but read performance and device life deteriorate due to mixed patterns and increased program/erase cycles

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoidread performance and device life
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments sequential data streams by writing each stream to a different physical block in the non-volatile memory. The controller identifies sequential data streams and allocates them to separate blocks, preventing mixed patterns within blocks. This segmentation maintains storage capacity utilization while improving read performance and extending device life by reducing program/erase cycles per block.

Inventive Principle:
Principle #1Segmentation

2Reliability

If sequential data streams are written to different blocks, then read performance and device life are improved, but storage management complexity increases

Engineering Contradiction:
Improveread performance and device lifeVSAvoidstorage management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The controller automatically identifies sequential data streams and performs self-service allocation by writing each stream to a different block without requiring complex external management. The system autonomously monitors write commands, detects sequential patterns, and manages block allocation, thereby improving performance while keeping management complexity inherent to the storage device itself.

Inventive Principle:
Principle #25Self-service

3Productivity

If sequential data streams are written to the same block, then the number of write operations is reduced, but data relocation efficiency deteriorates due to mixed patterns

Engineering Contradiction:
Improvewrite operation efficiencyVSAvoiddata relocation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By segmenting sequential data streams into separate blocks, the patent enables efficient data relocation where entire streams can be moved in single transactions without dealing with mixed patterns. This segmentation maintains write operation efficiency while significantly improving data relocation efficiency, as streams stored in separate blocks can be relocated as complete units rather than requiring complex interleaved operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12093548B2Stream oriented writing for improving sequential write and read performance
Publication Date: 2024.09.17 SANDISK TECHNOLOGIES LLC
  • US12093548B2 patent drawing
  • US12093548B2 patent drawing
  • US12093548B2 patent drawing

AI summary

Aspects of a storage device are provided that optimize stream oriented writing of sequential data streams for improved read and write performance. The storage device includes a non-volatile memory including a plurality of blocks, and a controller configured to receive a plurality of host write commands each including a sequential data stream. In response to determining the host write commands include sequential data streams, the controller writes each of the sequential data streams respectively to different sequential open blocks, where the blocks are respectively associated with the sequential data streams. The controller may afterwards read each of the sequential data streams respectively from the different blocks. As a result, sequential data from multiple streams may not be stored in a mixed pattern in a same sequential block, thereby allowing the controller to issue fewer read or relocate commands in a block for a given sequential data stream.