Non-volatile Memory Selective Interleaved Coding Block Health
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional flash memory systems lack the ability to support multiple storage formats simultaneously, leading to undesired latency for random data and weaker error code protection for sequential data, while also failing to optimize memory block health, resulting in reduced memory endurance.
Innovation Solution
A system and method that dynamically map memory blocks based on their health, using a combination of interleaved and non-interleaved coding schemes, directing interleaved data to less reliable blocks and non-interleaved data to more reliable blocks, and re-checking and re-mapping blocks as needed to enhance wear leveling and error correction.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is stored using non-interleaved coding on healthy blocks, then access speed and data rate are improved, but error correction capability is weakened
Solution Approach 1:
The patent applies different coding schemes (interleaved vs. non-interleaved) to different data types and block health states. Healthy blocks use non-interleaved coding for fast access, while unhealthy blocks use interleaved coding for better error correction. This local differentiation resolves the contradiction by optimizing each block's coding scheme according to its specific condition and the data type being stored.
2Reliability
If data is stored using interleaved coding on unhealthy blocks, then error correction capability is improved, but access speed is reduced
Solution Approach 1:
The patent selectively applies interleaved coding only to unhealthy blocks storing sequential data, while keeping healthy blocks using non-interleaved coding for fast access. This localized application of interleaved coding provides enhanced error correction where needed without sacrificing access speed in healthy blocks, thus resolving the speed-reliability contradiction.
3Device complexity
If a single storage format is used for all data, then device complexity is reduced, but performance is compromised for both random and sequential data
Solution Approach 1:
The patent implements a dynamic storage system that automatically selects between interleaved and non-interleaved coding schemes based on data type (sequential vs. random) and block health status. This dynamic adaptation allows the system to optimize performance for different data types without requiring manual configuration, resolving the contradiction between simplicity and performance by making the system adaptive rather than static.
Solution Approach 2:
The patent changes the coding scheme parameter (interleaved vs. non-interleaved) based on two key factors: data type and block health. This parameter adjustment allows the system to achieve high performance for both sequential and random data without increasing fundamental device complexity, as the change is implemented through software-controlled encoding decisions rather than hardware modifications.
4Device complexity
If memory blocks are used without health monitoring, then device complexity is reduced, but memory endurance is reduced
Solution Approach 1:
The patent implements a feedback mechanism where the controller continuously monitors block health status and uses this information to make dynamic decisions about data placement and coding scheme selection. This feedback loop allows the system to adapt to block degradation over time, extending memory endurance by proactively managing blocks before they fail, without requiring complex external monitoring systems.
Data Source
AI summary
In one embodiment, the disclosure teaches an apparatus including a memory array and a processor in communication with the memory array. The processor is configured to determine health scores of blocks of the memory array, where the health scores indicate the health of the blocks. The processor also is configured to receive data from a host, and select an interleaving scheme for programming the data based on the data type and a block to which the data is written based on the health scores. In one embodiment, sequential type data is written to unhealthy blocks and non-sequential data is written to healthy blocks.


