SSD NAND Block Allocation Across SLC, MLC, TLC, and QLC
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Datacenters treat SSDs as a one-size-fits-all solution, leading to inefficient utilization and reduced lifespan due to identical treatment of computer operations despite varying memory and bit requirements, causing NAND flash devices to become highly saturated and quickly reach their program/erase cycles.
Innovation Solution
Program NAND blocks into different types (SLC, MLC, TLC, QLC) based on bit requirements and memory considerations, using a mapping table to allocate operations to appropriate blocks, allowing dynamic reprogramming to extend endurance and improve capacity and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If all NAND blocks are programmed as the same block type (one-size-fits-all approach), then device complexity is reduced and ease of operation is improved, but capacity utilization is inefficient and endurance is reduced
Solution Approach 1:
The patent segments NAND blocks into different block types (SLC, MLC, TLC, QLC) based on their program/erase cycle characteristics and performance needs. This segmentation allows the system to allocate different block types to different workloads, improving both endurance and capacity utilization while maintaining manageable complexity through automated mapping tables.
Solution Approach 2:
The patent applies local quality by assigning different block types to different operational contexts. High-endurance SLC blocks are used for frequently written data, while lower-endurance QLC blocks are used for less frequently accessed data. This localized optimization improves overall system endurance without requiring all blocks to be uniformly high-performance.
2Reliability
If NAND blocks are programmed as different block types (SLC, MLC, TLC, QLC), then capacity utilization is improved and endurance is extended, but device complexity increases
Solution Approach 1:
The patent introduces mapping tables as an intermediary layer between the host system and the diverse NAND block types. The mapping tables translate logical block addresses to physical blocks of appropriate types, shielding the host from the complexity of multiple block types while enabling optimized allocation. This intermediary manages the complexity internally without exposing it to users or applications.
3Ease of operation
If all computer operations are treated identically, then ease of operation is improved, but productivity is reduced due to inefficient capacity utilization
Solution Approach 1:
The patent implements dynamic allocation of NAND blocks to computer operations based on workload characteristics, data access patterns, and block type availability. The mapping tables are dynamically updated to optimize capacity utilization and performance. This dynamic approach maintains ease of operation for users while significantly improving productivity through efficient resource allocation.
4Manufacturing precision
If NAND flash devices are highly saturated with identical block types, then manufacturing precision is simplified, but loss of time occurs due to quick saturation and reduced lifespan
Solution Approach 1:
The patent performs preliminary classification and allocation of NAND blocks to different types during manufacturing or initialization. The mapping tables are pre-configured with block type assignments, allowing the system to avoid the time loss of evaluating and reallocating blocks during operation. This preliminary action maintains manufacturing simplicity while preventing future time loss through proactive resource management.
Data Source
AI summary
Embodiments generally relate to programming NAND blocks of a solid-state device (SSD) to any suitable block type and utilizing the programmed NAND blocks to efficiently process computer operations performed by a solid-state drive (SSD). Example block types include a single-level cell (SLC), a multi-level cell (MLC), a triple-level (TLC), or a quad-level cell (QLC). The block type are stored in a mapping table as an association designating the NAND block as being of a particular block type. For example, the mapping table includes entries indicating whether NAND blocks have been programmed as SLC, MLC, TLC, or QLC blocks. In this manner, the capacity, speed, and endurance is improved by allocating computer operations to target NAND blocks being of particular block types.


