Asynchronous Bad Block Management in NAND Flash
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing NAND flash storage systems face inefficiencies due to synchronous bad block management, which blocks the file system during write, read, or erase operations, leading to reduced throughput and limited overlap between MMC read and NAND write operations.
Innovation Solution
Implementing asynchronous bad block management by queuing write requests at the bad block manager, allowing these requests to be executed in a separate task, thereby performing cache management and error correction in parallel, enabling immediate next-page transfer without waiting for previous operations to finish.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If synchronous bad block management is used, then bad block handling is simple and sequential, but the file system is blocked during write, read, or erase operations, reducing throughput
Solution Approach 1:
The bad block management functionality is segmented into a separate task running on a different processor core, independent from the file system task. This segmentation allows the file system to continue operations without being blocked by bad block management operations, thereby improving throughput while maintaining manageable complexity through functional separation
Solution Approach 2:
An intermediary mechanism (queue and inter-processor communication interface) is introduced between the file system and the bad block management task. The file system task can submit bad block management requests without waiting for completion, and the separate task processes these requests asynchronously, resolving the throughput-blockage contradiction
2Productivity
If synchronous bad block management is used, then overhead is handled sequentially, but there is limited overlap between MMC read and NAND write operations
Solution Approach 1:
The useful action of bad block management continues uninterrupted in a separate task while the file system performs its own operations. This continuity allows MMC read operations and NAND write operations to overlap more effectively, reducing the loss of time due to sequential overhead handling and improving streaming write performance
Solution Approach 2:
Bad block management operations are initiated as separate tasks in advance without waiting for the file system to complete its current operations. This preliminary action allows overlapping of MMC read, file system operations, and NAND programming, reducing total overhead time
Data Source
AI summary
Methods for receiving data from a file system and storing it in a flash storage medium, wherein a bad block management process comprises queuing, at a bad block manager, one or more write requests, and receiving data associated with each of the one or more write requests and storing the received data in the bad block manager buffer; and performing cache management of data in the bad block manager buffer and subsequently returning a success status to the file system; and executing the one or more queued write requests in a separate task, wherein the executing comprises programming the received data to the flash storage medium during the bad block management process. Corresponding devices are also provided.


