Host Controller Abort Handling for Storage Queue Cleanup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data transfer management between a host and a storage device is inefficient due to uncertainty about whether a command has been received by the storage device during an error condition, leading to increased latency and resource wastage.
Innovation Solution
A host system initiates an abort of a command in a submission queue, identifies outcomes, and sends an abort request to the storage device, reclaiming hardware resources through a cleanup request, and setting a completion queue entry based on these outcomes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If the storage device waits for the host controller to send an abort command after detecting an error, then the storage device can maintain simple error handling logic, but the host controller cannot retrieve data from the storage device in a timely manner
Solution Approach 1:
The storage device performs preliminary action by proactively sending an abort notification to the host controller before the host controller can send an abort command. This is achieved by the storage device detecting the error condition, determining that an abort is needed, and immediately notifying the host controller through the interrupt pin, thereby initiating the abort process in advance and reducing data retrieval time.
2Reliability
If the storage device continuously monitors the interrupt pin for abort commands, then the host controller can quickly respond to errors, but the storage device consumes additional power and increases complexity
Solution Approach 1:
The storage device performs self-service by autonomously detecting error conditions and determining when an abort is needed without requiring continuous monitoring of the interrupt pin for abort commands. The storage device monitors its own operational state, detects errors internally, and proactively notifies the host controller, thereby maintaining reliability while reducing power consumption compared to continuous external monitoring.
Data Source
Figure 1
Figure 2A
Figure 2B~2C
AI summary
A host system initiates an abort of a command that has been placed into a submission queue (SQ) of the host system. The host system identifies at least one of a first outcome and a second outcome. When the first outcome indicates that the command is not completed and the second outcome indicates that the SQ entry has been fetched from the SQ, the host system sends an abort request to a storage device, and issues a cleanup request to direct the host controller to reclaim host hardware resources allocated to the command. The host system adds a completion queue (CQ) entry to a CQ and sets an overall command status (OCS) value of the CQ entry based on at least one of the first outcome and the second outcome.