Storage Controller Command Arbitration for Power Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing PCIe-based storage systems face inefficiencies due to unbalanced interface rates between the host and memory devices, leading to excessive link active durations and increased power consumption.
Innovation Solution
The data storage device optimizes link active durations by controlling command arbitration, aggregating command chunks, and prioritizing batch command execution to minimize link uptime and maximize low power mode usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the link is kept always active for command execution, then command processing speed is improved, but power consumption increases
Solution Approach 1:
The link is activated periodically only when needed for batch command processing rather than remaining continuously active. The controller monitors queue thresholds and activates the link in periodic bursts to process aggregated command batches, then returns to low-power state, reducing overall power consumption while maintaining processing capability.
Solution Approach 2:
Commands are aggregated and buffered in advance in host queues before link activation. The controller pre-processes and aggregates multiple commands into batches while the link is dormant, so that when the link activates, it can process large batches efficiently without needing to remain active for individual command handling.
2Loss of time
If commands are processed individually with minimal latency, then response time is improved, but link activation frequency increases causing higher power consumption
Solution Approach 1:
Multiple individual commands are merged into aggregated batches for processing. The controller combines multiple commands from the host queue into single batch processing operations, reducing the number of separate link activations needed while maintaining overall processing efficiency through batch optimization.
Solution Approach 2:
The system processes commands in batches that may include some additional commands beyond the minimum needed, accepting slight excess processing in exchange for reduced link activation frequency. This partial batching approach optimizes the trade-off between latency and power consumption by processing slightly more than strictly necessary in each batch.
3Use of energy by moving object
If command aggregation is increased to extend link down durations, then power consumption is reduced, but command processing throughput may be affected
Solution Approach 1:
The command aggregation strategy is dynamically adjusted based on system conditions. The controller adapts batch sizes and aggregation thresholds in real-time, increasing aggregation when power savings are prioritized and reducing aggregation when throughput requirements increase, allowing flexible optimization of the trade-off between power consumption and processing productivity.
Solution Approach 2:
The system changes operational parameters such as queue threshold levels and batch size configurations to optimize the balance between power consumption and throughput. By adjusting these parameters dynamically, the system can shift between more aggressive aggregation (lower power, potentially lower throughput) and less aggressive aggregation (higher power, higher throughput) based on current system demands.
Data Source
AI summary
Optimizing the time that a link is active in a data storage device is desirable. Changing the way the device processes commands will minimize the link uptime and maximize the time that the link can remain in a low power mode. The data storage device will control the command arbitration from the host to aggregate together command chunks as large as possible, such that will extend the link down durations, and won't need to wake the link up occasionally. In another approach the execution of commands from internal buffers of the host will be prioritized according to command-batch completion criteria, and not based on minimizing the latency of a single command.


