Abort function for storage devices by using a poison bit flag wherein a command for indicating which command should be aborted
AssigneeHGST Netherlands B.V.
InventorsDavid Lee DARRINGTON, Dylan Mark DEWITT, Adam Michael ESPESETH, Lee Anton SENDELBACH
Life of this patent
Estimating the term…
Abstract
An abort function for storage devices sets a “poison bit” flag in the command to be deleted while the command resides on a submission queue prior to being fetched by the SSD controller. In response to the set “poison bit” flag, a storage device controller aborts execution of the I/O command and returns an abort successful status reply to the completion queue.
Claims20
A method of executing an abort command in a system including a host communicating with a storage device, the method comprising:
- storing an input/output (I/O) command in an I/O submission queue located in system memory;
- receiving an abort command with respect to the I/O command placed on the I/O submission queue;
- setting a “poison bit” flag within the I/O command placed on the I/O submission queue indicating that the I/O command should be aborted;
- fetching, by a storage device controller included as part of the storage device, the I/O command from the I/O submission queue;
- aborting execution of the I/O command in response to the bit indicating the I/O command should be aborted;
- and
- returning a result indicating the abort was successful to an I/O completion queue located in the system memory.
A host computer system that interacts with a storage device, the host computer system comprising:
- an input/output (I/O) submission queue, implemented in system memory, that stores I/O commands to be fetched by a storage device controller in the storage device;
- an I/O completion queue, implemented in the system memory, that stores results provided by the storage device controller indicating execution of a I/O command;
- and
- a device driver, executed by a processor in the host computer system, that places I/O commands onto the I/O submission queue and reads results provided onto the I/O completion queue, wherein in response to an abort command issued by the host computer system, the device driver locates the command to be aborted within the I/O submission queue and sets an “poison bit” flag in the I/O command.
A computer system comprising:
- a host computer system having a processor and system memory, the host computer system comprising:
- an input/output (I/O) submission queue implemented in the system memory;
- an I/O completion queue implemented in the system memory;
- and
- a device driver, executed by a processor in the host computer system, that places I/O commands onto the I/O submission queue and reads results provided onto the I/O completion queue, wherein in response to an abort command issued by the host computer system, the device driver locates the I/O command to be aborted within the I/O submission queue and sets a “poison bit” flag in the I/O command;
- and
- a storage device that includes a storage device controller that implements an internal queue for storing I/O commands fetched from the I/O submission queue awaiting execution, wherein the storage device controller fetches I/O commands from the I/O submission queue and places them into the internal queue if the “poison bit” flag is not set, wherein the storage device controller provides an abort successful result to the I/O completion queue if the “poison bit” flag is set.
A method of operating a device driver on a host side of an interface system, the method comprising:
- receiving an input/output (I/O) command from the host computer system;
- placing the I/O command on an I/O submission queue;
- receiving an abort command from the host computer system;
- locating the I/O command within the I/O submission queue;
- and
- setting a “poison bit” flag within the command to be aborted.
A computer readable medium that stores instructions for implementing a device driver, wherein execution of the stored instructions by a processor implements a method for accessing a storage device, the method comprising:
- receiving an input/output (I/O) command from the host computer system;
- placing the I/O command on an I/O submission queue;
- receiving an abort command from the host computer system;
- locating the I/O command within the I/O submission queue;
- and
- setting a “poison bit” flag within the command to be aborted.
A storage device comprising:
- memory configured to store data;
- a controller configured to access the stored data based on input/output (I/O) commands, wherein the controller is further configured to detect a status of a “poison bit” flag in the I/O commands and return a result indicating the I/O command has been aborted if the “poison bit” flag is set.
Dependencies are inferred from the claim text.