Memory Controller Block Allocation Based on Operation Time
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory systems face challenges in efficiently managing and prioritizing memory blocks based on their operational status, leading to performance degradation and reduced usage efficiency, especially when dealing with bad blocks during operations like wear leveling and garbage collection.
Innovation Solution
A memory system with a controller that assesses the operation status of memory blocks by measuring the time taken for program and erase operations, dynamically determines priorities, and allocates blocks for subsequent operations, suspending use when operations are not completed within a predetermined cycle, and moves data from bad blocks to normal blocks during wear leveling or garbage collection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory blocks are used without status assessment, then operational speed is maintained, but reliability deteriorates due to performance degradation from bad blocks
Solution Approach 1:
The controller performs preliminary assessment of memory block status by measuring program and erase operation times before allocating blocks for operations. This advance evaluation identifies bad blocks and determines their availability, preventing performance degradation during actual operations while maintaining reliable memory management
Solution Approach 2:
The system continuously monitors operation times of memory blocks and uses this feedback to dynamically update block status and availability. This feedback mechanism allows the controller to adaptively manage bad blocks, adjusting allocation decisions based on real-time performance data without requiring complex manual intervention
2Reliability
If bad blocks are excluded from use, then reliability is improved, but productivity decreases due to reduced available storage space
Solution Approach 1:
The controller changes the availability parameter of bad blocks dynamically based on measured operation times and specific block characteristics. Instead of permanently excluding bad blocks, the system adjusts their status and priority levels, allowing selective use of bad blocks for non-critical operations while maintaining high reliability for important data, thereby improving overall storage utilization
Solution Approach 2:
The system applies different quality levels to different memory blocks based on their individual status. Normal blocks are designated for high-reliability operations, while bad blocks are assigned to lower-priority tasks. This local differentiation allows the system to maximize storage utilization by appropriately matching block quality with operation requirements
3Productivity
If wear leveling and garbage collection operate without block prioritization, then operational simplicity is maintained, but performance degradation occurs due to inefficient block allocation
Solution Approach 1:
The block allocation system dynamically adjusts priority levels based on real-time block status assessment. During wear leveling and garbage collection, the controller continuously evaluates operation times and reassigns priorities, ensuring that normal blocks are preferentially selected for operations while bad blocks are appropriately managed. This dynamic approach improves wear leveling efficiency without requiring static complex configurations
Data Source
AI summary
A memory system includes a non-volatile memory device including at least one memory blocks storing a data and a controller coupled to the non-volatile memory device. The controller can perform at least one program operation or at least one erase operation within the at least one memory block. The controller can recognize an operation status of the at least one memory block in response to a time consumed for completing the at least one operation, and determine whether the at least one memory block is used and which priority is given to the at least one memory block based at least on the operation status so that the at least one memory block is allocated for a following operation.


