US2017249281A1PendingUtilityA1

Techniques for Use of Vendor Defined Messages to Execute a Command to Access a Storage Device

59
Assignee: INTEL CORPPriority: Jan 17, 2012Filed: Oct 10, 2016Published: Aug 31, 2017
Est. expiryJan 17, 2032(~5.5 yrs left)· nominal 20-yr term from priority
G06F 15/167G06F 3/0611G06F 15/17331G06F 3/0683G06F 3/061H04L 69/12H04L 67/1097G06F 2213/0026G06F 21/44G06F 3/0655G06F 3/0688G06F 21/80G06F 21/79G06F 3/0659G06F 13/4282Y02D10/00
59
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Examples are disclosed for use of vendor defined messages to execute a command to access a storage device maintained at a server. In some examples, a network input/output device coupled to the server may receive the command from a client remote to the server for the client to access the storage device. For these examples, elements or components of the network input/output device may be capable of forwarding the command either directly to a Non-Volatile Memory Express (NVMe) controller that controls the storage device or to a manageability module coupled between the network input/out device and the NVMe controller. Vendor specific information may be forwarded with the command and used by either the NVMe controller or the manageability module to facilitate execution of the command. Other examples are described and claimed.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . An apparatus comprising:
 circuitry for a network input/output device coupled to a server;   a receive component for execution by the circuitry to receive a command for a client remote to the server to access a storage device controlled by a Non-Volatile Memory Express (NVMe) controller maintained at the server;   an information component for execution by the circuitry to include a first vendor defined message with the command to cause the NVMe controller to execute the command; and   a forward component for execution by the circuitry to forward the command with the first vendor defined message to the NVMe controller.   
     
     
         2 . The apparatus of  claim 1 , the network input/output device, the storage device and the NVMe controller arranged to operate in compliance with an industry standard to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1. 
     
     
         3 . The apparatus of  claim 2 , the NVMe controller to directly receive the command and execute the command based, at least in part, on the first vendor defined message, the receive component to receive a command completion message from the NVMe controller with a second vendor defined message and the forward component to forward a status of the executed command to the client based, at least in part, on the second vendor defined message. 
     
     
         4 . The apparatus of  claim 3 , the first vendor defined message comprises flow control information exchanged between the network input/output device and the NVMe controller and the second vendor defined message comprises updated flow control information. 
     
     
         5 . The apparatus of  claim 1 , the command with the first vendor defined message received by a manageability module coupled between the network input/output device and the NVMe controller, the manageability module to use the first vendor defined message to forward the command to the NVMe controller via a command submission queue maintained by the NVMe controller, the manageability module to receive a command completion message via a command completion queue maintained by the NVMe controller and forward the command completion message to the network input/output device with a second vendor defined message, the receive component to receive the command completion message with the second vendor defined message and the forward component to forward a status of the executed command to the client based, at least in part, on the second vendor defined message. 
     
     
         6 . The apparatus of  claim 5 , the network input/output device, the manageability module, the storage device and the NVMe controller arranged to operate in compliance with an industry standard to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1, the first vendor defined message comprises flow control information exchanged between network input/output device and the manageability module and the second vendor defined message comprises updated flow control information. 
     
     
         7 . The apparatus of  claim 1 , the command received in a packet compatible with a remote direct memory access (RDMA) protocol to include one of Internet Wide Area RDMA protocol (iWARP), Infiniband or RDMA over Converged Ethernet (RoCE). 
     
     
         8 . The apparatus of  claim 1 , the command includes one of a flush command, a write command, a read command, a write uncorrectable command or a compare command. 
     
     
         9 . The apparatus of  claim 1 , the storage device to include a hard disk drive (HDD) or a solid state drive (SSD), the SSD having non-volatile memory comprising at least one of 3-dimensional cross-point memory, flash memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, polymer memory, nanowire, ferroelectric transistor random access memory (FeTRAM or FeRAM), nanowire or electrically erasable programmable read-only memory (EEPROM). 
     
     
         10 . A method comprising:
 receiving, at a network input/output device coupled to a server, a command for a client remote to the server to access a storage device controlled by a Non-Volatile Memory Express (NVMe) controller maintained at the server;   forwarding the command to the NVMe controller with a first vendor defined message, the NVMe controller to receive the command and execute the command based, at least in part, on the first vendor defined message; and   receiving a command completion message with a second vendor defined message from the NVMe controller and forwarding a status of the executed command to the client based, at least in part, on the second vendor defined message.   
     
     
         11 . The method of  claim 10 , comprising the network input/output device, the storage device and the NVMe controller arranged to operate in compliance with an industry standard to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1. 
     
     
         12 . The method of  claim 11 , the first vendor defined message comprises flow control information exchanged between the network input/output device and the NVMe controller and the second vendor defined message comprises updated flow control information. 
     
     
         13 . The method of  claim 10 , the command received in a packet compatible with a remote direct memory access (RDMA) protocol to include one of Internet Wide Area RDMA protocol (iWARP), Infiniband or RDMA over Converged Ethernet (RoCE). 
     
     
         14 . The method of  claim 10 , the command includes one of a flush command, a write command, a read command, a write uncorrectable command or a compare command. 
     
     
         15 . The method of  claim 10 , the storage device to include a hard disk drive or a solid state drive (SSD), the SSD having non-volatile memory comprising at least one of 3-dimensional cross-point memory, flash memory, ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, polymer memory, nanowire, ferroelectric transistor random access memory (FeTRAM or FeRAM), nanowire or electrically erasable programmable read-only memory (EEPROM). 
     
     
         16 . A method comprising:
 receiving, at a Non-Volatile Memory Express (NVMe) controller coupled to a server, a command forwarded by a network input/output device coupled to the server, the command for a client remote to the server to access a storage device controlled by the NVMe controller;   executing the command based, at least in part, on a first vendor defined message received with the command; and   sending a command completion message with a second vendor defined message to the network input/output device.   
     
     
         17 . The method of  claim 16 , the storage device and the NVMe controller arranged to operate in compliance with an industry standard to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1. 
     
     
         18 . The method of  claim 16 , the first vendor defined message comprises flow control information exchanged between the network input/output device and the NVMe controller and the second vendor defined message comprises updated flow control information, the network input/output device to forward a status of the executed command to the client based, at least in part, on the updated flow control information. 
     
     
         19 . The method of  claim 16 , receiving the command via a manageability module coupled between the NVMe controller and the network input/output device, the manageability module adding the first vendor defined message with the command forwarded from the network input/output device. 
     
     
         20 . The method of  claim 19 , the network input/output device, the manageability module, the storage device and the NVMe controller arranged to operate in compliance with an industry standard to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1, the first vendor defined message comprises flow control information exchanged between the network input/output device and the manageability module and the second vendor defined message comprises updated flow control information used by the network input/output device to forward a status of the executed command to the client. 
     
     
         21 . At least one machine readable medium comprising a plurality of instructions that in response to being executed on a network input/output device coupled to a server cause the network input/output device to:
 receive a command for a client remote to the server to access a storage device controlled by a Non-Volatile Memory Express (NVMe) controller maintained at the server, the command received in a packet compatible with a remote direct memory access (RDMA) protocol to include one of Internet Wide Area RDMA protocol (iWARP), Infiniband or RDMA over Converged Ethernet (RoCE); and   forward the command to the NVMe controller with a first vendor defined message in the command, the NVMe controller to receive the command and execute the command based, at least in part, on the first vendor defined message.   
     
     
         22 . The at least one machine readable medium of  claim 21 , the command with the first vendor defined message received by a manageability module coupled between the network input/output device and the NVMe controller, the manageability module to use the first vendor defined message to forward the command to the NVMe controller via a command submission queue maintained by the NVMe controller, the manageability module to receive a command completion message via a command completion queue maintained by the NVMe controller and forward the command completion message to the network input/output device with a second vendor defined message, the plurality of instructions to also cause the network input/output device to receive the command completion message including the second vendor defined message and forward a status of the executed command to the client based, at least in part, on the second vendor defined message. 
     
     
         23 . The at least one machine readable medium of  claim 22 , the network input/output device, the manageability module, the storage device and the NVMe controller arranged to operate in compliance with an industry standard to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1, the first vendor defined message comprises flow control information exchanged between network input/output device and the manageability module and the second vendor defined message comprises updated flow control information. 
     
     
         24 . The at least one machine readable medium of  claim 21 , the command includes one of a flush command, a write command, a read command, a write uncorrectable command or a compare command.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.