Memory Controller Buffering for Flash Write Reliability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices experience reduced writing reliability and performance due to the limitations of block-wise erase operations and the degradation of memory cells with repeated programming cycles, leading to challenges in maintaining efficient data storage and retrieval.
Innovation Solution
A memory system comprising a first and second controller that manages data storage and retrieval by converting logical addresses to physical addresses, using a non-volatile memory buffer to buffer data before writing it to the memory device, and scheduling write operations to optimize data processing and reduce the load on the primary controller.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If flash memory performs block-wise erase operations, then erase capability is maintained, but writing performance deteriorates
Solution Approach 1:
The memory system is divided into multiple memory controllers, each handling a portion of the write operations. This segmentation allows parallel processing of write requests across different controllers, improving overall writing performance while maintaining the block-wise erase constraint of flash memory through coordinated operation among controllers.
Solution Approach 2:
A memory buffer is introduced as an intermediary component between the memory controllers and the flash memory devices. The buffer temporarily stores write data, allowing controllers to accept write requests without immediately performing block-wise erase operations. This decouples the write interface from the erase constraint, improving writing performance while preserving data integrity.
2Quantity of substance
If multiple programming cycles are performed on flash memory, then data storage capacity is increased, but writing reliability deteriorates
Solution Approach 1:
The memory buffer serves as a mediator that manages the programming cycles. It tracks the number of programming cycles for each memory block and coordinates write operations to avoid excessive cycling on the same blocks. This allows the system to maintain high data storage capacity while preserving writing reliability through controlled cycle distribution.
Solution Approach 2:
The system dynamically adjusts write operation parameters based on the programming cycle history of memory blocks. When a block approaches its cycle limit, the system changes parameters such as redirecting writes to different blocks or adjusting erase timing, thereby maintaining writing reliability while continuing to expand usable storage capacity.
3Device complexity
If a single controller handles all memory operations, then system simplicity is maintained, but controller burden increases
Solution Approach 1:
The memory control function is segmented across multiple controllers, each responsible for specific memory devices or operation types. This distribution reduces the processing burden on each individual controller while maintaining overall system functionality. The segmentation is designed to minimize inter-controller communication overhead, preserving system simplicity.
Solution Approach 2:
Multiple memory controllers are merged into a coordinated system that shares common resources such as the memory buffer and management logic. This merging allows the system to handle increased workloads efficiently while presenting a unified interface to the host, effectively managing the trade-off between controller burden and system complexity.
Data Source
AI summary
A method of controlling a first memory controller that controls a non-volatile memory device includes: the first memory controller receiving first data and a first physical address from a second memory controller via a first interface of the first memory controller; the first memory controller storing the first data in a non-volatile memory buffer of the first memory controller; and the first memory controller programming the first data stored in the non-volatile memory buffer in a first physical region of the non-volatile memory device corresponding to the first physical address.


