Storage Module Command Splitting for Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional Non-Volatile Memory Express (NVMe) storage systems face challenges in optimizing resource allocation across multiple queues, leading to inefficiencies in processing high-priority commands and failing to provide guaranteed input-output operations due to equal handling of all priority queues, resulting in suboptimal performance and increased latency.
Innovation Solution
The method involves sorting commands into priority-based queues, splitting high-priority commands into smaller sub-commands to prevent starvation, and allocating more hardware resources based on the size of each sub-command, ensuring timely processing of high-priority commands while releasing resources efficiently for low-priority commands.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If weighted round robin arbitration is used to prioritize high-priority queues, then high-priority commands receive more processing attention, but all commands within a time slice are still handled equally regardless of individual command priority
Solution Approach 1:
The patent segments commands into different priority levels (first priority, second priority, etc.) and creates separate command queues for each priority level. This segmentation allows the storage module to process high-priority commands separately from low-priority commands, ensuring that time-critical applications receive guaranteed service while maintaining overall system productivity through structured queue management.
2Reliability
If common hardware resources are allocated to all queues, then resource utilization is simplified, but high-priority commands cannot receive additional resources during critical operations
Solution Approach 1:
The patent implements dynamic resource allocation where the storage module can allocate additional hardware resources to high-priority queues when needed. The controller dynamically adjusts resource distribution based on command priority and system state, allowing high-priority commands to receive more processing power during critical operations while maintaining simplified resource management through automated dynamic adjustment rather than static complex allocation mechanisms.
3Device complexity
If all commands are processed in a time-sliced operation with equal resource allocation, then implementation is simpler, but latency for high-priority commands increases
Solution Approach 1:
The patent segments the command processing timeline by creating distinct priority levels and separate queues for each level. High-priority commands are placed in dedicated queues that can be processed immediately when resources are available, rather than waiting for their turn in a unified time-sliced schedule. This segmentation reduces latency for time-critical commands while maintaining relatively simple queue management through clear priority-based separation.
4Ease of operation
If multiple queues are handled equally irrespective of application needs, then resource management is easier, but time-critical application requirements are not met
Solution Approach 1:
The patent applies local quality by treating different queues differently based on their specific requirements. Each queue is assigned a priority level that reflects the specific needs of applications using that queue. The storage module then applies different processing strategies to different queues - high-priority queues receive preferential treatment with faster processing and potential resource allocation, while lower-priority queues use standard processing. This allows the system to easily manage resources through priority assignments while simultaneously adapting to specific application needs through differentiated handling.
Data Source
AI summary
Operation of a non-volatile memory (NVM) storage module may comprise receiving a plurality of commands as associated with a plurality of priority-based queues from a host-memory. A received command is evaluated in accordance with a priority associated with the queue storing the command and a size of the command. The evaluated command is split into a plurality of sub-commands, each of the sub-commands having a size determined in accordance with the evaluation. A predetermined number of hardware resources are allocated for each of the evaluated command based on at least the size of each of the sub-commands to thereby enable a processing of the evaluated command based on the allocated resources. Quality of service (QoS) for the evaluated-command may thus be augmented.


