Storage Device Super Block Read Level History Buffer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices experience read errors due to degradation of memory cells, leading to performance degradation and increased read retry operations, as threshold voltages change over time, affecting data retention and retrieval accuracy.
Innovation Solution
A storage device method that groups physical blocks into super blocks based on their degradation levels, storing program and erase counts as metadata, and using a history buffer to store successful read levels for each super block, allowing read operations to be performed based on adjusted read levels to compensate for differences in block characteristics, thereby reducing read retry operations and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If read operations are performed using fixed read levels, then the read operation process is simple, but read errors occur due to memory cell degradation and threshold voltage changes
Solution Approach 1:
The patent performs preliminary read operations on representative blocks to determine optimal read levels before actual read requests. The determined read levels are stored in a history buffer and applied to subsequent read operations on blocks within the same super block, eliminating the need for repeated read retries and improving read accuracy while maintaining operational simplicity
Solution Approach 2:
The patent dynamically adjusts read levels based on memory cell degradation characteristics. By monitoring program and erase counts and detecting threshold voltage shifts, the system modifies read levels adaptively for different super blocks, ensuring accurate data retrieval despite degradation while managing complexity through structured parameter adjustment
2Productivity
If history buffer capacity is increased to store read levels for all blocks, then read retry operations are reduced, but the device requires larger buffer memory capacity
Solution Approach 1:
The patent divides the memory into super blocks containing multiple blocks, and maintains history buffer entries at the super block level rather than individual block level. This segmentation approach allows one read level to be shared across multiple blocks within a super block, significantly reducing the total number of history buffer entries needed while still effectively reducing read retry operations
Solution Approach 2:
The patent makes a single history buffer entry serve multiple blocks within a super block. By determining read levels based on representative blocks and applying them universally to all blocks in the super block, the system achieves reduced read retries with minimal buffer capacity, making the buffer serve multiple functions across different blocks
3Reliability
If read levels are adjusted for each individual block, then read accuracy is improved, but the device complexity and buffer capacity requirements increase significantly
Solution Approach 1:
The patent merges the read level management of multiple blocks into a unified approach at the super block level. By treating blocks within a super block as a group and applying a common read level determination process, the system maintains high read accuracy while significantly reducing the complexity of tracking and managing individual block characteristics
Data Source
AI summary
A method of operating a storage device including a non-volatile memory includes storing program and erase counts of the non-volatile memory as metadata in units of super blocks, wherein each of the super blocks includes a pre-defined number of blocks of the non-volatile memory, performing a read operation on a first block included in a first super block based on a first read level, storing the first read level as a history read level of the first super block in a history buffer when the read operation on the first block is successful, receiving a read request for a second block of the first super block and an address of the second block from a host, and performing a read operation on the second block based on the history read level stored in the history buffer. The pre-defined number is at least two.


