Statistical Wear Leveling for Non-Volatile Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional wear-leveling schemes for NAND memory systems are inefficient for main memory applications due to high overhead and latency issues, especially when dealing with small granularity writes and random access patterns, making them unsuitable for performance-critical systems like graphics and processing buffers.
Innovation Solution
A statistical wear leveling mechanism that uses 4KB block granularity, allowing small writes directly to PCMS arrays, with a fixed write cycle count trigger and randomization of block mappings to ensure uniform wear distribution across the entire address space, avoiding hotspots and allowing for automatic exclusion of worn-out blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional wear-leveling schemes for NAND memory are applied to main memory applications, then wear distribution is achieved, but overhead and latency increase significantly
Solution Approach 1:
The patent extracts the wear-leveling function from the main memory access path by implementing it in the memory controller rather than in the memory array itself. This separation allows wear-leveling operations to be performed independently without blocking main memory access, thereby reducing latency while maintaining wear distribution.
Solution Approach 2:
The patent introduces an intermediary wear-leveling manager component that sits between the host interface and the memory array. This mediator translates host access requests into wear-leveling-aware operations, distributing writes across multiple memory blocks while maintaining the appearance of direct access to the host, thus reducing latency overhead.
2Reliability
If large blocks of memory cells are used for wear leveling, then wear distribution is improved, but tracking overhead and metadata requirements increase
Solution Approach 1:
The patent segments the memory array into multiple wear-leveling groups, each containing several memory blocks. This segmentation allows the system to track wear at the group level rather than individual block level, reducing metadata overhead while maintaining effective wear distribution across the entire memory space.
Solution Approach 2:
The patent merges multiple memory blocks into wear-leveling groups that are managed as unified entities. By combining tracking information at the group level rather than individual block level, the system reduces metadata complexity and tracking overhead while still achieving fine-grained wear distribution through intra-group block selection.
3Reliability
If explicit wear leveling with write-count tracking is implemented, then wear distribution is achieved, but processing overhead and complexity increase for small granularity writes
Solution Approach 1:
The patent implements periodic wear-leveling operations where the wear-leveling manager periodically selects victim blocks for data migration based on wear metrics. This periodic approach allows small granularity writes to proceed without immediate wear-leveling intervention, maintaining high processing throughput while still achieving wear distribution over time through scheduled operations.
Solution Approach 2:
The patent performs preliminary wear assessment and block selection in advance, maintaining pools of candidate victim blocks that are pre-evaluated for wear characteristics. This preliminary action allows the system to quickly execute wear-leveling operations when needed without performing complex analysis during active write operations, thereby maintaining processing throughput.
Data Source
AI summary
Statistical wear leveling is described that may be particularly useful for non-volatile system memory. In one embodiment, the invention includes a wear level move state machine to select an active block based on a wear criteria, to move the contents of the selected active block to a block from a free block list, and to move the selected active block to an unused block list, a free block list expansion state machine to take a block from a target free block list, to move the contents of the block to a block from the unused block list, and to move the block taken from the target block list to a free block list, and a target free block generation state machine to select blocks from the unused block list and to move the selected blocks to the target free block list.


