Method, device, and system for buffering data for read/write commands in NVME over fabric architecture

US10838665B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10838665-B2
Application numberUS-201715716791-A
CountryUS
Kind codeB2
Filing dateSep 27, 2017
Priority dateDec 5, 2016
Publication dateNov 17, 2020
Grant dateNov 17, 2020

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.

A control device for a non-volatile memory express (NVMe) over fabric architecture is provided. The control device comprises a network adapter and a processor coupled to the network adapter by a bus. Data is transmitted between the control device and a storage device in the NVMe over fabric architecture. The processor is configured to obtain an available storage space of the storage device, determine whether a storage space required by a first data to be transmitted according to a first data read/write command is equal to or less than the available storage space, and send the first data read/write command to the storage device if the storage space required by the first data is equal or less than to the available storage space and suspend sending of the first data read/write command if the storage space occupied by the first data is greater than the available storage space.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for controlling a data read/write command between a control device and a storage device in a non-volatile memory express (NVMe) over fabric architecture, the method comprising: sending, by the control device, a data read/write command to the storage device that comprises a data processing unit, a buffer unit, and a storage unit; storing, by the control device, in the storage unit, data to be written to the storage unit, or data to be read from the storage unit, the data processing unit being configured to receive the data read/write command sent by the control device, the buffer unit being configured to buffer data to be transmitted according to the read/write command; obtaining, by the control device, an available storage space of the buffer unit, wherein the available storage space of the buffer unit is a real-time available buffer unit space and the available buffer unit storage space is locally recorded in the control device; determining, by the control device, whether a storage space required by first data to be transmitted based on a first data read/write command being less than or equal to the available storage space; suspending, by the control device, sending of the first data read/write command if the storage space occupied by the first data is greater than the available storage space; after sending the first data read/write command, subtracting, by the control device, the storage space occupied by the first data from the locally recorded real-time available storage space of the buffer unit; and after receiving a response message sent by the data processing unit indicating completion of the first data read/write command, adding, by the control device, the locally recorded real-time available storage space of the buffer unit and the storage space occupied by the first data. 2. The method according to claim 1 , wherein the method further comprises: after sending of the first data read/write command has been suspended for a preset time, reobtaining, by the control device, the available storage space of the buffer unit, and sending the first data read/write command to the storage device when the storage space occupied by the first data is less than or equal to the available storage space of the buffer unit. 3. The method according to claim 1 , wherein the control device performs, only within the preset time, the step of obtaining an available storage space of the buffer unit and the step of determining whether a storage space occupied by first data to be transmitted based on a first data read/write command being less than or equal to the available storage space of the buffer unit. 4. A control device for a non-volatile memory express (NVMe) over fabric architecture, the control device comprising: a network adapter; and a processor coupled to the network adapter by a bus, wherein data is transmitted between the control device and a storage device in the NVMe over fabric architecture, with the processor being configured to: obtain an available storage space of the storage device, wherein the available storage space of the buffer unit is a real-time available buffer unit space and the available buffer unit storage space is locally recorded in the control device; determine whether a storage space required by a first data to be transmitted based on a first data read/write command being equal to or less than the available storage space; send the first data read/write command to the storage device if the storage space required by the first data is equal or less than to the available storage space and suspend sending of the first data read/write command if the storage space occupied by the first data is greater than the available storage space; after sending the first data read/write command, subtract the storage space occupied by the first data from the locally recorded real-time available storage space of the buffer unit; and after receiving a response message that is sent by the data processing unit and indicates completion of the first data read/write command, add the locally recorded real-time available storage space of the buffer unit and the storage space occupied by the first data. 5. The control device according to claim 4 , wherein the processor is further configured to: after sending of the first data read/write command has been suspended for a preset time, reobtain the available storage space of the buffer unit, and send the first data read/write command to the storage device when the storage space occupied by the first data is equal to or less than the available storage space of the buffer unit. 6. The control device according to claim 4 , wherein the processor performs, only within the preset time, the step of obtaining an available storage space of the buffer unit and the step of determining whether a storage space occupied by first data to be transmitted based on a first data read/write command is equal to or less than the available storage space of the buffer unit. 7. A system for controlling a data read/write command in a non-volatile memory express (NVMe) over fabric architecture, the system comprising: a storage device, with the storage device comprising a data processing unit, a buffer unit, and a storage unit, wherein data to be read/written is stored in the storage unit and the buffer unit is configured to buffer data to be transmitted according to the read/write command; and a control device in communication with the storage device, with the control device configured to: obtain an available storage space of the buffer unit, wherein the available storage space of the buffer unit is a real-time available buffer unit space and the available buffer unit storage space is locally recorded in the control device; determine whether a storage space occupied by first data to be transmitted based on a first data read/write command being less than or equal to the available storage space; and send the first data read/write command to the storage device if the storage space occupied by the first data is less than or equal to the available storage space and suspend sending of the first data read/write command if the storage space occupied by the first data is greater than the available storage space; with the data processing unit of the storage device being configured to: receive the first data read/write command sent by the control device; and buffer, in the buffer unit, the first data to be transmitted according to the first data read/write command; after sending the first data read/write command, subtracting, by the control device, the storage space occupied by the first data from the locally recorded real-time available storage space of the buffer unit; and after receiving a response message sent by the data processing unit indicating completion of the first data read/write command, adding, by the control device, the locally recorded real-time available storage space of the buffer unit and the storage space occupied by the first data. 8. The system according to claim 7 , wherein the control device is further configured to: after sending of the first data read/write command has been suspended for a preset time, reobtain the available storage space of the buffer unit; and send the first data read/write command to the storage device when the storage space occupied by the first data is less than or equal to the available storage space of the buffer unit. 9. The system according to claim 7 , wherein the data processing unit is connected to the storage unit using an NVMe over Peripheral Component Interconnect Express (PCIe) architecture. 10. The system according to claim 7 , wherein the data processing unit comprises a controller configured to control

Assignees

Inventors

Classifications

  • Single storage device · CPC title

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

  • Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks · CPC title

  • being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · 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 US10838665B2 cover?
A control device for a non-volatile memory express (NVMe) over fabric architecture is provided. The control device comprises a network adapter and a processor coupled to the network adapter by a bus. Data is transmitted between the control device and a storage device in the NVMe over fabric architecture. The processor is configured to obtain an available storage space of the storage device, det…
Who is the assignee on this patent?
Huawei Tech Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/0688. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 17 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).