Read Buffer Allocation by Data Size in Non-Volatile Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage devices face inefficiencies in read buffer allocation due to varying data sizes of host read commands, leading to increased latency and reduced throughput, particularly when smaller commands are queued at high depths, causing overflow into lower speed memory.
Innovation Solution
Implementing a controller that uses dual thresholds to dynamically allocate read buffers based on data sizes, ensuring that smaller commands do not overflow into lower speed memory while allowing larger commands to utilize higher speed memory efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If read buffers are allocated based on available high speed memory space, then large read commands can be accommodated, but small read commands experience increased latency due to waiting for buffer availability
Solution Approach 1:
The patent segments the read buffer allocation into two distinct memory regions: a first memory (high speed) and a second memory (low speed). By dividing the buffer allocation strategy, small read commands can be served from the low speed memory without blocking high speed memory resources, while large read commands utilize the high speed memory. This segmentation resolves the contradiction by allowing simultaneous accommodation of both small and large read commands with appropriate buffer allocation strategies for each size category.
Solution Approach 2:
The patent applies local quality by assigning different buffer allocation policies to different read command sizes. Small read commands receive buffers from the low speed memory region, while large read commands receive buffers from the high speed memory region. This localized allocation strategy ensures that each read command size receives the appropriate quality and speed of buffer service, preventing small commands from being blocked by large command buffer requirements.
2Reliability
If the system waits for sufficient buffer space to be freed before accepting read commands, then buffer overflow is prevented, but throughput decreases due to command acceptance delays
Solution Approach 1:
The patent segments buffer allocation into high speed and low speed memory regions, allowing the system to accept read commands into the low speed memory region even when high speed memory is full. This segmentation enables continuous command acceptance without waiting for high speed buffer space to be freed, maintaining throughput while preventing overflow through the dual-memory architecture.
Solution Approach 2:
The low speed memory acts as an intermediary buffer region that receives read commands when the high speed memory is full. Instead of rejecting commands or waiting for high speed buffer availability, the system uses the low speed memory as a mediator to temporarily hold data, allowing continuous command acceptance and maintaining throughput while preventing overflow.
3Speed
If high speed memory is allocated to all read commands, then read speed is maximized, but small read commands waste buffer space reducing overall efficiency
Solution Approach 1:
The patent applies local quality by matching buffer allocation quality to command size requirements. Large read commands receive high speed memory buffers to maximize their read speed, while small read commands receive low speed memory buffers that are appropriately sized for their needs. This prevents small commands from wasting high speed buffer space and allows the system to maintain high overall buffer utilization efficiency while still providing high speed access where needed.
Solution Approach 2:
The patent changes the buffer allocation parameter from a uniform high speed memory allocation to a size-dependent allocation strategy. By changing the allocation parameter based on read command size, the system optimizes both speed and efficiency: large commands get high speed memory for maximum throughput, while small commands get appropriately sized low speed memory buffers, eliminating waste and improving overall buffer utilization efficiency.
Data Source
AI summary
A system may include a non-volatile memory (NVM), a first memory, a second memory that has a higher speed than the first memory, and a controller. The controller may be configured to receive a first read command from a host computer, and determine a size of one or more buffers that are allocated for one or more read commands that have been received and not returned read data to the host computer. The controller may be configured to determine a number of the one or more read commands, and determine, based on at least the size of the one or more buffers and the number of the one or more read commands, whether to start processing the first read command. In response to determining to start processing the first read command, the controller may be configured to allocate, in the first memory, a first buffer for the first read command.


