IP Library Granted Patent US 9,052,835
Granted Patent B1
US 9,052,835 · App. 14/136,351 · Granted Jun 9, 2015

Abort function for storage devices by using a poison bit flag wherein a command for indicating which command should be aborted

Inventors: David Lee Darrington (Rochester, MN); Dylan Mark Dewitt (Rochester, MN); Adam Michael Espeseth (Rochester, MN); Lee Anton Sendelbach (Rochester, MN)
Assignee: HGST NETHERLANDS B.V.
G06F3/0659G06F3/061G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,052,835
App. No.
14/136,351
Granted
Jun 9, 2015
Kind
B1
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.

Claims (52)

1. 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.

2. The method of claim 1 , further including:

providing the abort command to an administrative submission queue;

fetching, by the storage device controller, the abort command from the administrative submission queue;

checking an internal queue maintained by the storage device controller for the I/O command to be aborted and aborting execution of the I/O command if located; and

returning a result indicating the abort was successful to an administrative completion queue located in the system memory.

3. The method of claim 1 , wherein the host communicates with the storage device according to a non-volatile memory express (NVMe) standard.

4. 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.

5. The host computer system of claim 4 , wherein each I/O submission queue is associated with at least one completion queue.

6. The host computer system of claim 4 , further including:

a controller management module having an administrative submission queue and an administrative completion queue, wherein in response to an abort command the device driver provides the controller management module with the abort command for placement onto the administrative submission queue to be fetched by the storage device controller.

7. The host computer system of claim 4 , wherein the storage device is a solid-state drive (SSD).

8. 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.

9. The computer system of claim 8 , further including: a data bus for providing communications between the host computer system and the storage device.

10. The computer system of claim 9 , wherein the data bus is a peripheral component interface express (PCIe) data bus.

11. The computer system of claim 8 , wherein the host computer system further includes:

a controller management module having an administrative submission queue and an administrative completion queue, wherein in response to the abort command issued by the computer system the device driver provides the abort command to the controller management module for placement onto the administrative submission queue to be fetched by the storage device controller.

12. The computer system of claim 11 , wherein the storage device controller checks the internal queue for the I/O command to be aborted and returns an abort successful result to the administrative completion queue if the I/O command is located and aborted and returns an abort failed result to the administrative completion queue if the I/O command is not aborted.

13. The computer system of claim 8 , wherein the storage device is a solid-state drive.

14. 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.

15. The method of claim 14 , wherein the interface system is a non-volatile memory express (NVMe) interface system.

16. 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.

17. 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.

18. The storage device of claim 17 , wherein the controller fetches the I/O commands from an external I/O submission queue and returns the result indicating the fetched I/O command has been aborted to an external I/O completion queue.

19. The storage device of claim 17 , wherein the controller further includes a plurality of internal queues for storing I/O commands to be executed, wherein the controller places the I/O command into one of the plurality of internal queues if the “poison bit” flag is not set.

20. The storage device of claim 17 , wherein the storage device is a solid-state drive (SSD) and the memory is non-volatile memory.

Assignments (4)
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040829/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2013
From: DARRINGTON, DAVID LEE; DEWITT, DYLAN MARK; ESPESETH, ADAM MICHAEL; SENDELBACH, LEE ANTON
To: HGST NETHERLANDS B.V.
Reel/Frame 031829/0262 →