Adaptive Command Fetch Aggregation in NVMe Memory Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing NVMe standard for accessing non-volatile storage media via the PCIe bus lacks efficient mechanisms for the memory device to determine optimal timing for fetching commands from the submission queue, leading to suboptimal performance due to unnecessary bus activity and power consumption.
Innovation Solution
The memory device is equipped with intelligence to determine when to fetch commands from the submission queue based on predefined or dynamically determined fetching criteria or thresholds, such as the number of commands or time since the last fetch, considering factors like the current state of the host and memory devices, communication interface busyness, and previous patterns of notifications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the memory device fetches commands from the submission queue immediately upon notification by the host device, then the command processing responsiveness is improved, but the bus activity and power consumption increase due to unnecessary frequent fetching
Solution Approach 1:
The patent applies dynamics by making the fetch timing adaptive rather than static. The memory device dynamically adjusts its fetching behavior based on real-time conditions including queue depth thresholds and time intervals since last fetch. This allows the system to optimize between immediate fetching (when queue depth is high) and delayed fetching (when queue depth is low), thereby reducing unnecessary bus activity and power consumption while maintaining responsive command processing when needed.
2Productivity
If the memory device fetches commands frequently to ensure timely processing, then the command processing speed is improved, but the bus activity increases leading to reduced system efficiency
Solution Approach 1:
The patent merges multiple fetch operations into fewer consolidated fetches by implementing threshold-based aggregation. Instead of fetching commands individually or in small batches, the memory device waits until the submission queue depth reaches a predetermined threshold before initiating a fetch operation. This consolidation reduces the number of bus transactions, lowering bus activity overhead while maintaining adequate command processing throughput by fetching larger batches less frequently.
Solution Approach 2:
The patent applies preliminary action by pre-establishing fetch criteria including threshold values and time intervals before actual fetching occurs. The memory device uses these pre-determined parameters to intelligently decide when to fetch commands, avoiding ad-hoc fetching decisions. This preliminary setup enables the system to batch commands efficiently and reduce bus activity without compromising processing throughput, as the fetch timing is optimized in advance based on expected workload patterns.
3Loss of energy
If the memory device implements intelligent fetch timing based on multiple criteria, then the power consumption and bus activity are reduced, but the device complexity increases
Solution Approach 1:
The patent applies parameter changes by adjusting fetch timing based on variable parameters such as submission queue depth, time intervals since last fetch, and predefined thresholds. Rather than implementing complex decision logic, the system uses simple parameter comparisons (e.g., is queue depth greater than threshold?) to determine fetch timing. This approach reduces power consumption and bus activity while keeping the device complexity manageable, as the control logic relies on straightforward parameter evaluation rather than complex algorithms.
Solution Approach 2:
The patent applies self-service by enabling the memory device to autonomously manage its own fetch operations based on its internal state and pre-configured criteria. The device monitors its own submission queue depth and timing conditions, then independently decides when to fetch commands without requiring complex external coordination or control logic. This self-managed approach reduces the need for additional control circuitry and software complexity while achieving optimized power consumption and bus activity through intelligent fetch timing.
Data Source
AI summary
Systems and methods for adaptive fetch coalescing are disclosed. NVM Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on the host device placing commands into the submission queue. The host device notifies the memory device, via a doorbell update, of commands on the submission queue. Instead of fetching the command responsive to the doorbell update, the memory device may analyze one or more aspects in order to determine whether and how to coalesce fetching of the commands. In this way, the memory device may include the intelligence to coalesce fetching in order to more efficiently fetch the commands from the host device.


