Memory Buffer Deck Reallocation for Lower Block Transit Penalty
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional memory systems face inefficiencies due to excessive buffer overprovisioning to prevent data loss from defects, leading to increased uncorrectable bit error rates (UBER) during memory block programming.
Innovation Solution
Implementing a buffer allocation scheme that reallocates a portion of the buffer to a successive memory block when the current block reaches a threshold percentage, ensuring adequate defect coverage without the need for a transitory buffer, thus minimizing buffer space and overprovisioning penalties.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If buffer overprovisioning is increased to prevent data loss from defects, then reliability is improved, but buffer space efficiency deteriorates
Solution Approach 1:
The buffer allocation is made dynamic by allowing reallocation of buffer decks between current and successive blocks based on programming progress. The buffer management adapts to the actual state of programming, transitioning from static overprovisioning to dynamic optimization, thereby reducing buffer space consumption while maintaining reliability.
Solution Approach 2:
The invention changes the parameter of buffer allocation from fixed to variable based on programming threshold percentage. By monitoring the programming progress and reallocating buffer decks when thresholds are met, the system optimizes buffer utilization while ensuring data integrity, resolving the contradiction between reliability and buffer space efficiency.
2Quantity of substance
If buffer reallocation to successive block is implemented, then buffer space efficiency is improved, but complexity of buffer management increases
Solution Approach 1:
The buffer is segmented into multiple decks that can be independently allocated to different blocks. This segmentation allows flexible reallocation of specific buffer decks to successive blocks when programming thresholds are met, improving buffer space efficiency while managing complexity through modular buffer structure.
Solution Approach 2:
The invention performs preliminary allocation of buffer decks to successive blocks in advance, before they are actually needed for programming. This preliminary action simplifies buffer management by pre-organizing buffer resources, reducing the complexity of real-time buffer allocation decisions while maintaining high buffer space efficiency.
3Quantity of substance
If transitory buffer is eliminated, then buffer space is optimized, but risk of data loss from defects increases
Solution Approach 1:
The invention dynamically adjusts buffer allocation based on programming progress and defect coverage requirements. By continuously monitoring the state of programming and reallocating buffer decks accordingly, the system eliminates unnecessary transitory buffers while maintaining adequate protection against data loss, thus optimizing buffer space without increasing UBER.
Solution Approach 2:
The buffer management system serves itself by automatically allocating and reallocating buffer decks based on programming thresholds and defect coverage needs. This self-service mechanism eliminates the need for conservative transitory buffers while maintaining reliability, as the system autonomously optimizes buffer usage without external intervention, reducing buffer space while preventing data loss.
Data Source
AI summary
Methods, systems, and apparatuses include receiving a write command including user data. The write command is directed to a portion of memory including a first block and a second block. A buffer is allocated for executing the write command to the first block. The buffer includes multiple buffer decks and the buffer holds the user data written to the first block. User data is programmed into the first block to a threshold percentage. The threshold percentage is less than one hundred percent of the first block. A buffer deck is invalidated in response to programming the first block to the threshold percentage. The buffer deck is reallocated to the second block for programming the user data into the second block. The buffer deck holds user data written to the second block.


