Memory Controller Block Selection for Write Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory systems face inefficiencies in write operations due to the need for dummy data generation and inefficient block selection based on data size and device status, which affects performance.
Innovation Solution
A memory system with multiple blocks and a controller that selects the appropriate block for programming data based on its size and the device's status, using one-shot programming for efficient data storage without dummy data when possible, and switching to another block when the device is busy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the memory device uses one-shot program operation for small data sizes, then the write operation performance is improved, but dummy data must be generated to fill the block, increasing the complexity of data handling
Solution Approach 1:
The system dynamically adjusts the programming operation mode based on real-time detection of data size. When data size matches the one-shot program size, it uses one-shot programming for high performance. When data size is smaller, it switches to normal programming mode to avoid dummy data generation. This dynamic adaptation resolves the contradiction by selecting the optimal mode according to actual conditions.
Solution Approach 2:
The controller changes the programming operation parameters based on data size detection. It identifies whether to use one-shot program operation or normal program operation by comparing the data size with the one-shot program size threshold. This parameter change allows the system to optimize between performance and simplicity based on the specific data characteristics.
2Quantity of substance
If the memory device programs data into a block when idle, then the storage capacity is utilized efficiently, but the write operation time increases when the device is busy, reducing productivity
Solution Approach 1:
The controller preliminarily determines the status of the memory device (idle or busy) before initiating the programming operation. Based on this preliminary status detection, it selects the appropriate block for programming. This advance preparation prevents delays by ensuring the selected block is ready for immediate programming, thus maintaining high productivity while efficiently utilizing storage capacity.
3Speed
If the system always uses one-shot program operation, then the programming speed is maximized, but the flexibility to handle different data sizes and device statuses is reduced
Solution Approach 1:
The system implements dynamic mode selection between one-shot programming and normal programming based on detected data size and device status. It is adaptable to different scenarios: using one-shot programming when data size matches and device is idle for maximum speed, and switching to normal programming when data size is smaller or device is busy to maintain flexibility and avoid dummy data generation.
Solution Approach 2:
The controller changes the programming operation parameters dynamically based on data size detection and device status. By comparing the data size with the one-shot program size threshold and detecting device status, it adjusts the programming mode accordingly. This parameter adaptation allows the system to optimize speed when possible while maintaining versatility to handle various data sizes and device states.
Data Source
AI summary
A memory system includes: a plurality of memory devices, each of which includes a first block and a second block; and a controller suitable for: storing data received from a host in a buffer; selecting a first block, of a memory device of the plurality of memory devices, to be programmed with the data; detecting a size of the data; controlling the memory device to program the data into the selected first block when the size is detected to be equal to a one-shot program size; determining a status of the memory device including the selected first block when the size is detected to be smaller than the one-shot program size; controlling the memory device to program the data into the selected first block when the memory device including the selected first block is determined to be in a first status; and controlling the memory device to program the data into the second block of the memory device when it is determined to be is a second status.


