Shared Storage Device Priority Queues for Urgent Commands
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In shared storage devices, there is a need to ensure that latency-sensitive commands issued by hosts are processed promptly, particularly in critical applications such as vehicle control systems, to meet stringent time frames.
Innovation Solution
A storage device architecture that includes a controller manager to prioritize and manage multiple storage controllers, ensuring that latency-sensitive commands are processed within specified latency limits by utilizing a submission queue and a completion queue, both of which can be priority queues, and by employing a non-volatile memory express protocol for communication.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple hosts share a storage device, then storage capacity and resource utilization are improved, but command processing latency and reliability for urgent commands deteriorate
Solution Approach 1:
The storage device is segmented into multiple storage controllers, each capable of independently managing commands from different hosts. This segmentation allows parallel processing of commands from multiple hosts simultaneously, maintaining high resource utilization while ensuring that urgent commands from any host can be processed without being blocked by non-urgent commands from other hosts.
Solution Approach 2:
A controller manager is introduced as an intermediary component that receives latency-sensitive commands from hosts and manages their execution priority. The controller manager acts as a mediator between multiple storage controllers and hosts, ensuring that urgent commands receive appropriate priority treatment while maintaining overall system resource utilization.
2Productivity
If multiple storage controllers are used to handle commands from multiple hosts, then command processing capacity is improved, but system complexity increases
Solution Approach 1:
The controller manager is designed as a universal management component that handles multiple storage controllers through a standardized interface. This multi-functional approach allows the same controller manager to manage different storage controllers uniformly, reducing the complexity that would otherwise arise from implementing separate management logic for each controller.
Solution Approach 2:
The system uses priority parameters to differentiate command handling across multiple storage controllers. By changing the priority parameter of commands based on their latency sensitivity, the system can dynamically adjust processing behavior without requiring complex structural changes to the multi-controller architecture.
3Reliability
If priority-based command execution is implemented, then latency-sensitive command processing is improved, but system complexity and control difficulty increase
Solution Approach 1:
The system determines command priorities in advance, before execution begins. The controller manager receives latency-sensitive commands and assigns appropriate priority levels proactively, allowing the storage controllers to execute commands in the correct order without requiring complex real-time priority adjustments during execution.
Solution Approach 2:
The controller manager receives information about latency-sensitive commands from hosts and uses this feedback to adjust command execution priorities. This feedback mechanism ensures that the system can adapt to varying latency requirements while maintaining manageable complexity through a centralized decision-making point.
Data Source
AI summary
A method of operating a storage device including a first storage controller and a controller manager is provided. The method includes receiving a first command from a first host through a first port connected to the first storage controller configured to store data of the first host, receiving first information associated with the first command from the first host through a second port connected to the controller manager configured to manage the first storage controller, determining a priority of the first command among a plurality of commands, and executing the first command based on the priority.


