Flash Memory Group Table Access via Locked and Swap Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
NAND flash devices are not random access, requiring sequential access methods that lead to inefficiencies in data programming and user-data access, resulting in high computational and bandwidth consumption due to the need to frequently read and update mapping information between logical and physical locations.
Innovation Solution
A method involving a locked queue and a swap queue is introduced to manage group tables in RAM, where the locked queue stores modified data awaiting programming into NAND flash, and the swap queue stores unmodified data, optimizing access by prohibiting modifications when a group table is queued in the locked or swap zone, thereby reducing the need for frequent reads from NAND flash.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If NAND flash devices use sequential access methods to store and retrieve data, then data can be programmed into multiple storage sub-units in parallel, but random access efficiency deteriorates and computational load increases when mapping logical locations to physical locations
Solution Approach 1:
The mapping information is segmented into multiple group tables, each managing a specific range of logical locations. These group tables are further divided into pages that can be independently loaded into RAM, allowing selective access to only the relevant mapping segments needed for current operations, thereby reducing the time to retrieve mapping information.
Solution Approach 2:
Group tables are pre-loaded into RAM before they are needed for actual data operations. The system anticipates which logical locations will be accessed and loads their corresponding group tables into memory in advance, so that when data access is requested, the mapping information is already available in RAM rather than requiring a read from NAND flash.
2Ease of operation
If the processing unit reads mapping information from NAND flash to RAM, then user data access is enabled, but bandwidth consumption and computational capability requirements increase
Solution Approach 1:
The system maintains different qualities of mapping information storage in different locations: frequently accessed group tables are stored in RAM for fast access, while less frequently accessed tables remain in NAND flash. This local differentiation allows the system to optimize for speed when needed while conserving bandwidth when accessing less critical data.
Solution Approach 2:
Instead of loading all group tables into RAM (excessive action), the system loads only the partial set of group tables that are currently needed for active data operations. This partial loading approach reduces bandwidth consumption and memory usage while still enabling necessary data access operations.
3Manufacturing precision
If group tables are frequently read and updated in RAM, then mapping accuracy is maintained, but system performance and computational load are negatively impacted
Solution Approach 1:
The system performs mapping information updates periodically rather than continuously with every data operation. Group tables are updated in RAM at scheduled intervals or when specific conditions are met, rather than being updated immediately with every logical-to-physical location mapping change, reducing the frequency of write operations while maintaining acceptable mapping accuracy.
Solution Approach 2:
The system uses an intermediary structure (the group table cache in RAM) between the NAND flash storage and the processing unit. This intermediary maintains the mapping information and handles update operations, shielding the processing unit from direct frequent access to NAND flash and reducing computational overhead while preserving mapping accuracy through the intermediary's management.
Data Source
AI summary
The invention introduces a method for controlling data access to a flash memory, performed by a processing unit, including steps of: obtaining a logical address associated with a data read operation; determining whether a group table corresponding to the logical address is queued in a locked queue, or a hot zone of a swap queue; and prohibiting content of the locked queue and the swap queue from being modified when the group table corresponding to the logical address is queued in the locked queue, or the hot zone of the swap queue.


