Multi-Stream Memory Erased Block Allocation for Faster Writes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In memory systems with a multi-stream function, insufficient erased blocks can lead to delays in processing write requests and waste of memory areas due to inefficient allocation of blocks.
Innovation Solution
A memory system with a controller that allocates erased blocks as either dedicated or general-purpose blocks based on the number of streams in use, allowing immediate write destination blocks to be assigned without delay, and reassigns blocks as needed to optimize usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If erased blocks are allocated to streams only when needed, then memory area utilization is improved, but write request processing is delayed
Solution Approach 1:
The controller performs preliminary actions by maintaining a pool of erased blocks ready for allocation. When a stream needs to write data, the controller can immediately allocate an erased block from the pool without delay, rather than waiting for blocks to become available through normal operation.
Solution Approach 2:
The controller acts as an intermediary between streams and erased blocks, managing a pool of available erased blocks and coordinating allocations. This intermediary management allows multiple streams to be served efficiently without direct competition for blocks, reducing allocation delays.
2Adaptability or versatility
If multiple streams are supported with dedicated blocks, then data management flexibility is improved, but sufficient erased blocks may not be available
Solution Approach 1:
The controller implements a universal block management system where erased blocks can be allocated to any stream that needs them. The pool of erased blocks serves multiple functions: supporting multiple concurrent streams, providing backup allocation options, and enabling flexible data management across different stream requirements.
Solution Approach 2:
The controller continuously monitors the number of erased blocks available and adjusts its allocation strategy accordingly. When the number of erased blocks is sufficient, it allocates to streams; when insufficient, it waits for erase operations to complete or reallocates from the pool, using feedback to optimize performance.
Data Source
AI summary
A memory system includes a nonvolatile memory including a plurality of blocks, and a controller. The controller manages a plurality of streams and allocates a first erased block for which a data erase operation has been completed among the plurality of blocks as a general-purpose block. In a case where use of a first stream among the plurality of streams is started, if two or more erased blocks for which the data erase operation has been completed are included in the plurality of blocks, the controller allocates a second erased block as the write destination block corresponding to the first stream, and if two or more erased blocks for which the data erase operation has been completed are not included in the plurality of blocks, sets the first erased block as the write destination block.


