Flash Memory Controller Background Read Voltage Calibration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices experience read errors due to drifting threshold voltages of memory cells over time, leading to performance degradation, especially with 'cold data' that has not been accessed for a long period, as the default read voltage levels become ineffective, requiring frequent read retry operations.
Innovation Solution
A storage device with a nonvolatile memory and a memory controller that performs background read operations to determine corrected read voltage levels for each memory block, storing these in a history buffer for later use during host read requests, thereby reducing the need for read retry operations and maintaining performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If default read voltage levels are used for reading flash memory, then the read operation is simple and fast, but read errors occur due to threshold voltage drift over time
Solution Approach 1:
The system performs preliminary scanning of memory blocks in the background to detect threshold voltage drift and determine corrected read voltage levels before actual host read operations occur. This preliminary action stores the corrected voltage levels in a history buffer, so when a host read request arrives, the system can immediately use the pre-determined corrected voltage levels without performing complex real-time adjustments, thus maintaining both high reliability and operational simplicity.
2Reliability
If read retry operations are performed with different voltage levels, then read errors are corrected, but the time required significantly degrades storage system performance
Solution Approach 1:
The system performs preliminary scanning and determines corrected read voltage levels in the background before host read operations are needed. By pre-calculating and storing the corrected voltage levels in a history buffer, the system eliminates the need for time-consuming read retry operations with multiple voltage level attempts during actual data retrieval, thus maintaining high reliability while minimizing time loss.
Solution Approach 2:
The system performs self-diagnosis and self-correction by automatically scanning its own memory blocks, detecting threshold voltage drift, and determining corrected read voltage levels without external intervention. This self-service mechanism maintains data retrieval reliability while avoiding the time penalty of manual or host-initiated retry operations.
3Measurement precision
If background scanning is performed on all memory blocks, then corrected read voltage levels are accurately determined, but the background operation consumes significant time and resources
Solution Approach 1:
Instead of performing exhaustive scanning on all memory blocks, the system performs partial scanning by selecting representative sample pages from each memory block. This partial action is sufficient to detect threshold voltage drift and determine corrected read voltage levels accurately, while consuming significantly less time and resources compared to scanning every page in every memory block.
Solution Approach 2:
The background scanning operation serves multiple functions simultaneously: it detects threshold voltage drift, determines corrected read voltage levels, and updates the history buffer for future read operations. This multi-functionality maximizes the productivity of the background operation, achieving comprehensive memory health monitoring and optimization without requiring separate dedicated operations for each function.
Data Source
AI summary
A method of operating a storage device includes: performing a background read operation on a nonvolatile memory by using a default read voltage level; performing a read retry operation on the nonvolatile memory by using a corrected read voltage level when the background read operation fails; storing the corrected read voltage level in a history buffer when the read retry operation succeeds; and performing a host read operation on the nonvolatile memory by using the history buffer in response to a read request received from a host.


