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

US9052835B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9052835-B1
Application numberUS-201314136351-A
CountryUS
Kind codeB1
Filing dateDec 20, 2013
Priority dateDec 20, 2013
Publication dateJun 9, 2015
Grant dateJun 9, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

The invention claimed is: 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.

Assignees

Inventors

Classifications

  • G06F3/0659Primary

    Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • Improving I/O performance · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9052835B1 cover?
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.
Who is the assignee on this patent?
HGST Netherlands BV
What technology area does this patent fall under?
Primary CPC classification G06F3/0659. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 09 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).