Stream-Class Data Placement in NAND Blocks to Cut WAF
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage devices face challenges in managing data with varying stream class numbers, leading to deteriorated Write Amplification Factor (WAF) characteristics and increased power consumption due to inefficient data classification.
Innovation Solution
A storage device with a controller that performs program operations to classify data based on stream class numbers, using garbage collection to program data with the same class number in the same block, and includes a physical and stream mapping table to manage data effectively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data with different stream class numbers are stored in the same block, then storage capacity is maximized, but Write Amplification Factor deteriorates and power consumption increases
Solution Approach 1:
The storage device segments blocks into single-stream blocks and multi-stream blocks based on data classification. The controller separates data with different stream class numbers into different blocks, creating specialized storage regions that optimize both capacity utilization and energy efficiency by preventing unnecessary program operations on mixed-stream data.
Solution Approach 2:
Different blocks are assigned different qualities based on their stream composition. Single-stream blocks are optimized for low power consumption and high reliability, while multi-stream blocks handle diverse data types. This local differentiation allows the system to maximize storage capacity in multi-stream blocks while preserving energy efficiency in single-stream blocks.
2Quantity of substance
If data with different stream class numbers are stored in the same block, then storage capacity is maximized, but Write Amplification Factor deteriorates
Solution Approach 1:
The storage device segments blocks into single-stream blocks and multi-stream blocks based on data classification. The controller separates data with different stream class numbers into different blocks, creating specialized storage regions that optimize both capacity utilization and energy efficiency by preventing unnecessary program operations on mixed-stream data.
Solution Approach 2:
Different blocks are assigned different qualities based on their stream composition. Single-stream blocks are optimized for low power consumption and high reliability, while multi-stream blocks handle diverse data types. This local differentiation allows the system to maximize storage capacity in multi-stream blocks while preserving energy efficiency in single-stream blocks.
3Manufacturing precision
If garbage collection is performed frequently to classify data, then data classification accuracy improves, but operational time increases
Solution Approach 1:
The controller performs preliminary classification of incoming data by stream class number before storage. By pre-sorting data into appropriate single-stream or multi-stream blocks during the write operation, the system avoids the need for frequent post-storage garbage collection operations, thereby maintaining high classification accuracy while minimizing operational time loss.
Solution Approach 2:
The system uses the stream class number information that is already embedded in the incoming data to perform self-classification during the normal write process. This self-service approach eliminates the need for separate classification operations and reduces the frequency and impact of garbage collection on system performance.
Data Source
AI summary
A storage device includes: a buffer to receive first data and second data from outside, and store the first data and the second data on a first page; a non-volatile memory to store the first data and the second data in a first block; and a controller to perform a program operation that programs the first and second data in free blocks different from each other through a garbage collection. The first data may include a first stream class number identifying characteristics of the first data, and the second data may include a second stream class number identifying characteristics of the second data and is different from the first stream class number. The controller may transmit information of the program operation to the outside before performing the program operation. The controller may perform the program operation when receiving a program execution permission command from the outside.


