Memory Block Allocation Using Partial Good Blocks for Lower Write Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional memory systems fail to efficiently manage full blocks (FBs) and partial good blocks (PGBs) in their free block pools, leading to increased erase operations and latency when servicing host write requests due to indiscriminate allocation practices.
Innovation Solution
A memory controller divides the free block pool into collections of full blocks and PGBs, allocating blocks based on whether the request is from a host system or internal processes, thereby reducing the number of erase operations needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional memory systems use indiscriminate allocation practices for free blocks, then the management process is simple, but the number of erase operations increases and latency increases
Solution Approach 1:
The free block pool is segmented into two distinct collections: full blocks (FBs) and partial good blocks (PGBs). This segmentation allows the system to allocate blocks based on their type, matching FBs to host write requests and PGBs to internal garbage collection requests, thereby reducing unnecessary erase operations and improving allocation efficiency
Solution Approach 2:
Different allocation strategies are applied to different block types within the free block pool. Full blocks are preferentially allocated for host write requests where single-erase operations are critical, while partial good blocks are allocated for internal garbage collection operations where multiple erases are already expected. This local quality differentiation optimizes overall system performance
2Productivity
If full blocks and partial good blocks are managed together in a single free block pool, then the management structure is simple, but the number of erase operations increases
Solution Approach 1:
The free block pool is divided into two separate collections: one for full blocks and another for partial good blocks. This segmentation enables the system to track and manage each block type independently, reducing the number of unnecessary erase operations by ensuring full blocks are preferentially allocated to host write requests
Solution Approach 2:
The system implements tracking mechanisms that monitor the status and allocation history of each block type. This feedback enables intelligent allocation decisions, where the controller can determine whether a block is an FB or PGB and allocate it appropriately, thereby optimizing erase operation efficiency
3Productivity
If partial good blocks are allocated for host write requests, then block utilization is maximized, but latency increases due to multiple erase operations
Solution Approach 1:
The system applies different allocation policies to different block types based on the request source. Full blocks are allocated to host write requests where speed is critical and single-erase operations are required, while partial good blocks are allocated to internal garbage collection operations where multiple erases are already expected. This local quality differentiation maintains high block utilization while minimizing latency for host requests
Solution Approach 2:
The system performs preliminary classification of free blocks into full blocks and partial good blocks before allocation occurs. This preliminary action ensures that when host write requests arrive, full blocks are already identified and ready for immediate allocation, eliminating the need for multiple erase operations and reducing latency
Data Source
AI summary
Aspects of the present disclosure configure a system component, such as a memory sub-system controller, to dynamically allocate blocks from a free block pool. The controller generates a free block pool that includes a collection of full blocks and a collection of partial good blocks (PGBs) of a set of memory components, a size of a full block in the collection of full blocks corresponding to a combination of two or more PGBs of the collection of PGBs. The controller receives a request to write data. The controller allocates an individual full block from the collection of full blocks or an individual PGB from the collection of PGBs based on determining whether the request to write the data has been received from the host device or the controller of the memory sub-system.


