Memory Management for NAND Flash Defective Block Substitution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In NAND-type flash memory used in portable terminal devices, defective blocks can disrupt software updating by breaking address continuity, making it difficult to perform updates using difference files, as the process requires shifting and rewriting block contents, which impairs the advantages of updating with difference files.
Innovation Solution
A memory management method that assigns blocks into a management area, a code area, and a substitution area, with an interference area between them, allowing for substitution of defective blocks using correspondence information stored in the management area, enabling the substitution area to be used for both management and code areas, and allowing for dynamic use without external address conversion means.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire program area is loaded into the NAND memory, then the program can be stored and executed, but defective blocks occurring late break address continuity and make software updating difficult
Solution Approach 1:
The program storage area is segmented into multiple blocks, with the ability to skip defective blocks during loading. The system divides the program into manageable segments that can be loaded into available good blocks, maintaining address continuity through block mapping even when defective blocks are encountered.
Solution Approach 2:
A block mapping table is introduced as an intermediary structure between the physical NAND memory blocks and the logical program address space. This table records the correspondence between logical addresses and physical blocks, allowing the system to redirect access to defective blocks through the mapping table to available good blocks, thus maintaining address continuity for software updating.
2Ease of manufacture
If defective blocks are skipped during program loading, then the program can be loaded despite defects, but address continuity is lost and difference file matching becomes difficult
Solution Approach 1:
The block mapping table serves as an intermediary that preserves address continuity. It translates logical addresses (which maintain continuity) to physical block addresses (which may skip defective blocks). This allows the system to load programs despite defective blocks while maintaining the address continuity needed for difference file matching.
Solution Approach 2:
The system creates a virtual copy of the block mapping relationships, allowing the logical address space to be copied independently of the physical block arrangement. This virtual mapping layer copies the address continuity information without requiring the physical blocks to be contiguous, enabling both defective block skipping and address continuity preservation.
3Reliability
If block contents are shifted and rewritten to accommodate defective blocks, then the program can be stored, but the updating process becomes more complex and time-consuming
Solution Approach 1:
The block mapping table acts as a static intermediary structure that is built once during initial programming. It pre-establishes the correspondence between logical and physical blocks, eliminating the need for dynamic shifting and rewriting during subsequent software updates. This reduces update time while maintaining complete program storage.
Solution Approach 2:
The block mapping table is created in advance during the initial program loading phase, before software updates are needed. This preliminary action establishes the address mapping relationships once, and the system can then perform updates efficiently without repeatedly shifting and rewriting block contents, significantly reducing update time.
4Adaptability or versatility
If a dedicated management area is created for storing management information, then defective block management becomes possible, but the memory structure becomes more complex
Solution Approach 1:
The block mapping table serves multiple functions: it manages defective blocks by recording skip information, maintains address continuity for software updates, and provides the basis for difference file matching. By making this single structure multi-functional, the system achieves defective block management capability without proportionally increasing structural complexity.
Data Source
AI summary
A memory management method for managing a non-volatile memory into which writing is performed in units of blocks includes the steps of assigning a plurality of blocks of the non-volatile memory to a management area formed of at least one block for storing management information, to a code area formed of a plurality of blocks into which program code is written, to a substitution area formed of a plurality of blocks for substituting for a defective block, and to an interference area formed of at least one block; storing at least correspondence information between the blocks of the substitution area and a defective block of a substitution target as management information within the management area; and using the block of the substitution area in place of the defective block on the basis of the correspondence information when the defective block is to be used.


