Split-Page Queue Buffer Management for SSD Capacity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
NAND flash SSDs face inefficiencies in data storage and retrieval due to robust error correction coding requirements, where the 2 KB spare area of a 16 KB flash page is insufficient to store all error correction bits, leading to unused memory space and failure to meet capacity ratings.
Innovation Solution
Implementing a split page queue buffer management system where data clusters are split across multiple pages, with a partial buffer completion bitmap and queue buffer manager to track the completion of data reads, using an exclusive OR operation to update bitmap bits, ensuring both parts of a split cluster are read and stored efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If robust error correction coding is applied to meet high performance criteria, then data reliability is improved, but the spare area is insufficient to store all error correction bits, resulting in unused memory space and capacity rating failure
Solution Approach 1:
The patent segments data clusters into multiple parts and stores them across different pages. When error correction bits cannot fit in the spare area of a single page, the data cluster is split such that some parts are stored on pages with sufficient spare capacity while other parts are stored on pages with insufficient spare capacity. This segmentation allows the system to maintain robust error correction coding across the entire data set while utilizing the limited spare area capacity of individual pages effectively.
2Reliability
If error correction bits are stored in the user data area, then data reliability is improved, but the number of user data clusters that can be stored is reduced
Solution Approach 1:
The patent divides user data into multiple clusters and further segments each cluster into multiple parts. By distributing these parts across multiple pages, the system can allocate error correction bits to the user data area of some pages without completely sacrificing user data capacity. The segmentation strategy ensures that while some pages have reduced user data capacity due to ECC bit storage, the overall system maintains both reliability and usable capacity through the distributed storage architecture.
3Quantity of substance
If data clusters are split across multiple pages, then memory space utilization is improved, but the complexity of tracking read completion increases
Solution Approach 1:
The patent introduces a queue buffer manager as an intermediary component that handles the complexity of tracking read completions for split data clusters. This manager maintains state information about which parts of split clusters have been read and coordinates the assembly of complete clusters from multiple pages. By centralizing this tracking function in a dedicated manager, the system reduces the complexity burden on other components and provides a systematic approach to managing split-cluster reads.
Solution Approach 2:
The patent implements feedback mechanisms where the queue buffer manager continuously monitors the read status of data parts across multiple pages and adjusts its tracking accordingly. When parts are read from different pages, the manager receives feedback about their completion status and uses this information to determine when a complete data cluster has been assembled. This feedback loop enables automated tracking of split cluster reads without requiring complex manual intervention.
Data Source
AI summary
In one embodiment, a solid state storage drive comprises a plurality of flash memory devices configured to store a plurality of data clusters having a predefined data cluster size, and configured to store a first part of a first data cluster of the plurality of data clusters on a first page of flash memory and a second part of the first data cluster on a second page of flash memory, a partial buffer completion bitmap stored in a memory, wherein each bit in the partial buffer completion bitmap corresponds to a location in a buffer configured to receive data clusters read from the plurality of flash memory devices, and a controller configured to cause a page of data to be read from one of the plurality of flash memory devices, the page of data including either the first part of the first data cluster or the second part of the first data cluster, the controller including a queue buffer manager configured to change the status of a bit in the partial buffer completion bitmap when either the first part of the first data cluster or the second part of the first data cluster has been read from either the first page or the second page of flash memory and stored in the buffer. In one embodiment, the plurality of flash memory devices is further configured to store a first part of a second data cluster on the second page of flash memory and a second part of the second data cluster on a third page of flash memory.


