US2019272124A1PendingUtilityA1

Techniques for Moving Data between a Network Input/Output Device and a Storage Device

Assignee: INTEL CORPPriority: Jul 23, 2013Filed: May 21, 2019Published: Sep 5, 2019
Est. expiryJul 23, 2033(~7 yrs left)· nominal 20-yr term from priority
G06F 3/0613G06F 3/067G06F 3/0679G06F 3/0646G06F 3/0661
57
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Examples are disclosed for moving data between a network input/output (I/O) device and a storage subsystem and/or storage device. In some examples, a network I/O device coupled to a host device may receive a data frame including a request to access a storage subsystem or storage device. The storage subsystem and/or storage device may be located with the network I/O device or separately coupled to the host device through a storage controller. One or more buffers maintained in a cache for processor circuitry may be used to exchange control information or stage data associated with the data frame to avoid or eliminate use of system memory to move data to or from the storage subsystem and/or storage device. Other examples are described and claimed.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . An apparatus comprising:
 a host device comprising a processor socket;   circuitry for a network input/output (I/O) device coupled with the host device, the circuitry configured to:
 receive a data frame comprising a request to access a storage subsystem maintained at the network I/O device, the storage subsystem comprising a solid state drive (SSD); 
 use one or more buffers maintained in a cache for processor circuitry included in the processor socket, the one or more buffers used to exchange control information for the request with a protocol stack executed by the processor circuitry; and 
 determine, based on the control information, whether to read from or store to the storage subsystem, data associated with the request. 
   
     
     
         2 . The apparatus of  claim 1 , comprising:
 a storage controller to control access to the storage subsystem based on the determination.   
     
     
         3 . The apparatus of  claim 2 , wherein the storage controller and at least the SSD are arranged to operate in compliance with one or more industry standards to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1. 
     
     
         4 . The apparatus of  claim 1 , the circuitry for the network I/O device configured to:
 receive the data frame from the host device via a local connection with the host device or from a remote device via a network connection with the remote device, the data frame configured in compliance with a protocol format.   
     
     
         5 . The apparatus of  claim 4 , the protocol format to include fiber channel over Ethernet (FCoE), internet wide area RDMA protocol (iWARP), Infiniband or RDMA over converged Ethernet (RoCE). 
     
     
         6 . The apparatus of  claim 4 , the protocol stack to determine whether to accept or deny the request based on a header of the data frame. 
     
     
         7 . The apparatus of  claim 6 , the circuitry for the network I/O device configured to:
 receive the data frame from the remote device, wherein the request is for the remote device to store data associated with the data frame to the storage subsystem, the data at least temporarily stored to a memory maintained at the network I/O device and caused to be stored to the storage subsystem following acceptance of the request.   
     
     
         8 . The apparatus of  claim 7 , the circuitry for the network I/O device configured to:
 receive the data frame from the remote device, wherein the request is for the remote device to read data from the storage subsystem.   
     
     
         9 . The apparatus of  claim 8 , the circuitry for the network I/O device configured to:
 send the read data to the remote device via the network connection following acceptance of the request.   
     
     
         10 . The apparatus of  claim 8 , the local connection with the host device arranged to operate in compliance with one or more industry standards including PCIe Base Specification, revision 3.0. 
     
     
         11 . A method comprising:
 receiving, at a network input/output (I/O) device, a data frame comprising a request to access a storage subsystem maintained at the network I/O device, the storage subsystem comprising a solid state drive (SSD);   utilizing one or more buffers maintained in a cache for processor circuitry included in a processor socket at a host device coupled with the network I/O device, the one or more buffers arranged to exchange control information for the request with a protocol stack executed by the processor circuitry; and   determining, based on the control information, whether to read from or store to the storage subsystem, data associated with the request.   
     
     
         12 . The method of  claim 11 , the data frame configured in compliance with a protocol format, the data frame received from one of a host device via a local connection with the host device and a remote device via a network connection with the remote device, the protocol stack to determine whether to accept or deny the request based on a header of the data frame. 
     
     
         13 . The method of  claim 12 , the protocol format to include fiber channel over Ethernet (FCoE), internet wide area RDMA protocol (iWARP), Infiniband or RDMA over converged Ethernet (RoCE). 
     
     
         14 . The method of  claim 12 , comprising the data frame received from the host device and the request included in the data frame is for an application executed by the processor circuitry to access the storage subsystem. 
     
     
         15 . The method of  claim 14 , comprising the request from the application to store data associated with the data frame to the storage subsystem, the data at least temporarily stored to the one or more buffers prior to fulfilling the request to store the data to the storage subsystem. 
     
     
         16 . The method of  claim 14 , comprising the request from the application to read data from the storage subsystem, the read data at least temporarily stored to the one or more buffers after fulfilling the request to read the data from the storage subsystem. 
     
     
         17 . The method of  claim 11 , comprising the SSD included in the storage subsystem having non-volatile memory that includes 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). 
     
     
         18 . A non-transitory machine-readable medium comprising instructions that in response to being executed on a network input/output (I/O) device coupled to a host device cause the network I/O device to:
 receive a data frame comprising a request to access a storage subsystem maintained at the network I/O device, the storage subsystem including a solid state drive (SSD);   utilize one or more buffers maintained in a cache for processor circuitry included in a processor socket at the host device, the one or more buffers used to exchange control information for the request with a protocol stack executed by the processor circuitry; and   determine, based on the control information, whether to read from or store to the storage subsystem, data associated with the request.   
     
     
         19 . The machine-readable medium of  claim 18 , comprising instructions that in response to being executed on the network I/O device cause the network I/O device to:
 receive the data frame from the host device via a local connection with the host device or from a remote device via a network connection with the remote device, the data frame configured in compliance with a protocol format.   
     
     
         20 . The machine-readable medium of  claim 19 , the protocol format to include fiber channel over Ethernet (FCoE), internet wide area RDMA protocol (iWARP), Infiniband or RDMA over converged Ethernet (RoCE). 
     
     
         21 . A method comprising:
 tagging one or more buffers maintained in a cache for processor circuitry included in a processor socket at a host device, the one or more buffers tagged by a network input/output (I/O) device coupled to the host device to indicate use of the one or more buffers for staging data received or transmitted via one or more network connections coupled to the network I/O device, the data associated with requests to access a storage device controlled by a storage controller coupled to the host device;   receiving a data frame including a request by a remote device to access the storage device; and   forwarding to or receiving from the one or more tagged buffers data associated with the request based on whether the request is to read the data from the storage device or is to store the data to the storage device.   
     
     
         22 . The method of  claim 21 , wherein tagging the one or more buffers comprises assigning an identifier to the one or more buffers to indicate use of the one or more tagged buffers for accessing the storage device based on one or more requests included in one or more data frames received from the remote device. 
     
     
         23 . The method of  claim 21 , wherein the storage device comprises a solid state drive (SSD) and the storage controller and the SSD are arranged to operate in compliance with one or more industry standards to include PCIe Base Specification, revision 3.0 or NVMe Specification, revision 1.1. 
     
     
         24 . The method of  claim 23 , comprising the SSD having non-volatile memory that includes 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). 
     
     
         25 . The method of  claim 21 , the data frame configured in compliance with a protocol format, the data frame received from one of a host device via a local connection with the host device and a remote device via a network connection with the remote device, the protocol format to include fiber channel over Ethernet (FCoE), internet wide area RDMA protocol (iWARP), Infiniband or RDMA over converged Ethernet (RoCE).

Join the waitlist — get patent alerts

Track US2019272124A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.