Flash Memory Scrambling Seeds for Defect Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash storage devices face program failures due to physical defects or process variations, leading to increased write amplification factor and defective parts per million, which degrade storage efficiency and performance.
Innovation Solution
The storage device employs a controller that scrambles data using a first scrambling seed and attempts to program memory cells. If the first attempt fails, it switches to a second scrambling seed, increasing the likelihood of successful programming and reducing the identification of blocks as bad blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is programmed using a single scrambling seed, then the programming process is simple and fast, but program failures occur due to physical defects or process variations
Solution Approach 1:
The controller performs preliminary actions by attempting to program memory cells with multiple different scrambling seeds before declaring a block as bad. This preliminary testing with varied seeds helps identify blocks that can be successfully programmed with alternative seeds, preventing premature rejection of potentially usable blocks and reducing the need for rewrites.
Solution Approach 2:
The invention changes the scrambling seed parameter when initial programming attempts fail. By varying this parameter (using different scrambling seeds), the system explores different data patterns that may be more compatible with the physical characteristics of the memory block, thereby overcoming program failures caused by process variations or defects.
2Reliability
If blocks are marked as bad due to program failures, then defective blocks are removed from accessible blocks, but write amplification factor increases and storage efficiency degrades
Solution Approach 1:
The controller performs preliminary programming attempts with multiple scrambling seeds before marking a block as bad. This preliminary exploration prevents hasty classification of blocks as defective, ensuring that blocks capable of successful programming with alternative seeds are not prematurely excluded from the accessible block pool, thereby maintaining storage efficiency.
Solution Approach 2:
The system implements feedback by monitoring programming results across multiple attempts with different scrambling seeds. This feedback mechanism provides information about block characteristics and programming success rates, enabling intelligent decisions about whether to mark blocks as bad or continue using them, thus optimizing the balance between data integrity and storage efficiency.
3Reliability
If multiple scrambling seeds are used for programming attempts, then programming success rate increases, but the programming process time increases
Solution Approach 1:
The controller applies partial action by limiting the number of retry attempts with different scrambling seeds to a predetermined threshold. This prevents excessive time consumption while still providing sufficient opportunities to overcome programming failures. The system balances between attempting enough retries to improve success rate and stopping before causing unacceptable time delays.
Solution Approach 2:
The system uses self-service by automatically managing the retry process with different scrambling seeds without requiring external intervention. The controller autonomously selects alternative seeds, performs retry attempts, and makes decisions about block status, thereby resolving programming failures efficiently without adding external overhead or delays.
Data Source
AI summary
Aspects of a storage device including a memory and a controller are provided which allow for efficient programming of cells on word lines using different scrambling seeds. The controller attempts to program cells of the memory by applying data scrambled using a first scrambling seed to the word line. If this attempt to program fails, the controller scrambles the data using a second, different scrambling seed and attempts to program the cells by applying the re-scrambled data to the word line. If this re-attempt also fails, the word line is listed. Then when the controller receives other data, the controller performs a final programming attempt with the other data scrambled using the second scrambling seed. If this further attempt fails, the controller identifies the block including the failed word line as a GBB. Thus, fewer GBBs may be incorrectly identified, reducing DPPM and improving memory yield of the storage device.


