Memory Controller Gear Ratio for Power-Off Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory systems face challenges in optimizing data processing speed and reliability during power-off scenarios, particularly when the number of free blocks in nonvolatile memory is low, leading to increased latency and potential data loss due to inefficient garbage collection and fill-up operations.
Innovation Solution
A memory system comprising a nonvolatile memory, a volatile memory, and a controller that calculates a gear ratio based on the amount of invalid data to determine whether to perform fill-up processing or save data to a copy destination block, thereby optimizing the use of free blocks and reducing latency during power-off preparations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If garbage collection and fill-up operations are performed when the number of free blocks is low, then data integrity is maintained, but processing latency increases
Solution Approach 1:
The controller performs fill-up operations in advance by writing dummy data to erase blocks before they are needed for new data storage. This preliminary action ensures that sufficient valid data exists in memory blocks before power-off scenarios occur, maintaining data integrity while avoiding the need for urgent garbage collection operations that would increase latency during critical moments.
Solution Approach 2:
The controller dynamically adjusts its operation mode based on the current number of free blocks. When free blocks are充足, the controller performs normal write operations. When free blocks fall below a threshold, the controller switches to fill-up mode, writing dummy data to maintain sufficient valid data. This dynamic adaptation allows the system to balance between maintaining data integrity and minimizing processing latency under different conditions.
2Reliability
If fill-up processing is performed to maintain sufficient valid data, then data integrity during power-off is improved, but the number of free blocks decreases
Solution Approach 1:
The controller changes the state of erase blocks by writing dummy data to them, transforming them from invalid to valid state. This parameter change ensures that these blocks contain sufficient valid data for power-off scenarios. The controller monitors the number of free blocks and only performs fill-up operations when necessary, thus maintaining data integrity while minimizing the impact on the number of available free blocks.
Solution Approach 2:
The controller uses its own write capability to service the need for sufficient valid data by writing dummy data to erase blocks. This self-service approach allows the system to maintain its own data integrity requirements without external intervention, ensuring that sufficient valid data is available when needed while managing the free block count internally.
3Stability of the object's composition
If the controller monitors and manages free blocks actively, then system stability is improved, but device complexity increases
Solution Approach 1:
The controller implements a feedback mechanism by continuously monitoring the number of free blocks and comparing it against a predetermined threshold. When the free block count falls below the threshold, the controller triggers fill-up operations. This feedback loop ensures system stability by automatically responding to changes in memory state, while the simplicity of the threshold-based approach keeps the control logic manageable and avoids excessive complexity.
Data Source
AI summary
According to one embodiment, a memory system writes data to a first block, and executes a garbage collection when the number of free blocks is not greater than a first threshold value. The memory system calculates a first number which is a ratio of the number of copy destination blocks needed for the garbage collection to the number of blocks to which data designated by a write command is written. The memory system determines whether the first number is greater than a second threshold value when a first command is received from the host, and performs fill-up processing for the first block when the first number is not greater than the second threshold value.


