Memory Controller Wear Leveling via SLC Buffer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory devices face challenges in extending the lifespan of nonvolatile memory devices due to uneven program-erase count distribution across memory blocks, leading to premature wear and reduced reliability.
Innovation Solution
A memory controller and its operating method that perform static wear leveling by temporarily storing data in an SLC buffer, monitoring the size of data, program-erase counts, and free blocks, and redistributing data to balance the program-erase counts across memory blocks, thereby preventing rapid increase in program-erase counts of specific blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data are stored in specific memory blocks without wear leveling, then write speed is improved, but program-erase count distribution becomes uneven leading to reduced reliability
Solution Approach 1:
The system dynamically changes the selection criteria for memory blocks based on wear leveling parameters. It calculates program-erase counts for each block and selects target blocks with lower counts, adapting the storage location parameters to balance wear distribution while maintaining efficient write operations
Solution Approach 2:
The controller acts as an intermediary between the host and memory blocks, introducing a wear leveling management layer that mediates data placement. It monitors block wear status and intelligently directs writes to appropriate blocks, preventing any single block from being overused while maintaining overall system performance
2Reliability
If wear leveling operation is performed frequently to balance program-erase counts, then reliability is improved, but system complexity increases
Solution Approach 1:
Instead of performing wear leveling operations continuously or excessively, the system applies partial action by triggering wear leveling only when necessary conditions are met (e.g., when program-erase count difference exceeds a threshold). This reduces unnecessary operations and simplifies control logic while still achieving reliable wear distribution
Solution Approach 2:
The system implements feedback mechanisms by continuously monitoring program-erase counts of memory blocks and using this information to make intelligent decisions about data placement. The controller adjusts its behavior based on real-time wear status feedback, optimizing reliability without requiring overly complex predetermined control logic
3Productivity
If data size in SLC buffer increases, then write boosting effectiveness is improved, but memory space for normal operations decreases
Solution Approach 1:
The system dynamically adjusts the allocation and size of the SLC buffer based on current write workload and memory availability. The buffer size is not fixed but adapts to changing conditions, allowing the system to maximize write boosting effectiveness when needed while ensuring sufficient space remains for normal operations, thereby resolving the trade-off between performance and available memory
Data Source
AI summary
A memory controller controls a memory device including a plurality of memory blocks. The memory controller is configured to: control the memory device to store data in a first area among areas of the memory device using a single level cell method, wherein the data are corresponded to a write booster request which is received from a host, perform a wear leveling operation, based on a size of the data stored in the first area, a program-erase count of each of memory blocks of the first area, and a number of free blocks in the memory device and form a mapping relationship between a logical block address, which is received from the host, and a physical block address corresponding the first area.


