Shared Write Buffer for Multi-Client NAND Flash Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In memory systems using NAND flash technology, the limited capacity of random access memory in flash storage devices makes it difficult to prepare sufficient write buffers for multiple clients, leading to increased data traffic and degraded I/O performance due to the need for multi-step write operations like foggy fine write, which requires transferring the same data multiple times between the host and the memory system.
Innovation Solution
Implementing a shared write buffer in the memory system that stores write data from multiple clients, allowing the host to discard older data when the buffer is full, and requesting missing data from the host only when needed for the second-step write operation, thereby reducing data traffic and improving I/O performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a shared write buffer is implemented to serve multiple clients, then data traffic is reduced and I/O performance is improved, but the complexity of buffer management increases
Solution Approach 1:
The write buffer is designed to serve multiple clients simultaneously, transforming it from a client-specific resource to a shared universal resource. The buffer management system handles multiple client requests through a unified interface, allowing the same buffer infrastructure to fulfill different clients' write operations without requiring separate buffer allocations for each client.
Solution Approach 2:
The controller acts as an intermediary between multiple clients and the nonvolatile memory. It manages the shared write buffer by receiving write requests from multiple clients, determining buffer availability, and coordinating data transfers. This intermediary role simplifies client interactions while maintaining efficient buffer utilization through centralized control.
2Loss of energy
If write data is stored in a shared buffer for multiple clients, then data traffic between host and memory system is reduced, but the risk of data loss increases when buffer capacity is exceeded
Solution Approach 1:
The system implements a selective discarding mechanism where the controller identifies and discards write data that can be safely removed from the buffer. When buffer capacity is exceeded, the controller determines which client requests can be served from cached data and which require fresh data transfers, selectively discarding duplicate or redundant data while preserving essential information.
Solution Approach 2:
The controller continuously monitors buffer status and provides feedback to manage data retention. By tracking which data resides in the buffer and which clients need it, the system can make informed decisions about data preservation and discarding, ensuring that critical data is retained while non-critical duplicate data is removed to make space for new writes.
3Quantity of substance
If multi-step write operations are used to manage buffer capacity, then buffer overflow is prevented, but I/O performance is degraded due to multiple data transfers
Solution Approach 1:
The system performs preliminary actions by pre-transferring write data from the host to the shared write buffer before actual write operations are needed. This advance preparation allows the buffer to be populated with data that can be reused for multiple clients, reducing the need for repeated data transfers and eliminating the performance penalty associated with multi-step operations.
Solution Approach 2:
The system merges multiple client write requests into a single buffer management operation. Instead of handling each client's write operations separately with individual multi-step transfers, the controller consolidates buffer management activities, serving multiple clients from a unified buffer pool and reducing the total number of data transfer steps required.
Data Source
AI summary
According to one embodiment, a memory system stores write data received from a host to a shared write buffer for write destination blocks, acquires first write data for plural pages from the shared write buffer, and writes the first write data to a first write destination block by a first-step write operation. When receiving write data from the host in a state in which an empty region does not exist in the shared write buffer, the memory system discards write data in the shared write buffer in which the first-step write operation has been finished. In a case where the first write data do not exist in the shared write buffer when a second-step write operation of the first write data is to be executed, the memory system transmits a request to acquire the first write data to the host.


