Legal claims defining the scope of protection, as filed with the USPTO.
1. A Non-Volatile Memory Express over Fabric (NVMeoF) system comprising: a host and a target device; wherein the host is configured for: initiating and converting a plurality of Input/output (I/O) requests into a plurality of NVMeoF commands for accessing a storage device associated with the target device; packing the plurality of NVMeoF commands in an RDMA Write buffer; forming an RDMA Write packet corresponding to the plurality of NVMeoF commands by adding a single protocol specific header to the RDMA Write buffer, wherein the RDMA Write packet formed by the host includes the plurality of NVMeoF commands packed in the RDMA Write buffer and the single protocol specific header for the plurality of NVMeoF commands; and transmitting the plurality of NVMeoF commands in a burst mode in the Remote Direct Memory Access (RDMA) Write packet to the target device; and wherein the target device is configured for: posting a plurality of NVMeoF completion responses for the plurality of NVMeoF commands in the burst mode in the RDMA Write packet to the host.
2. The NVMeoF system of claim 1 , wherein the host is further configured for: completing the plurality of initiated I/O requests based on the plurality of NVMeoF completion responses received from the target device.
3. The NVMeoF system of claim 2 , wherein the host is further configured for: pre-registering a memory region for a Completion Queue (CQ) of the host by preparing a Remote Key (RKEY) for the CQ; creating a Work Queue Element (WQE) using an RDMA Send verb, wherein the WQE includes an NVMeoF vendor specific command and the NVMeoF vendor specific command includes an address of the CQ and the RKEY prepared for the CQ; forming an RDMA Send packet by adding at least one protocol specific header to the NVMeoF vendor specific command of the WQE; and transmitting the RDMA Send packet corresponding to the NVMeoF vendor specific command of the WQE to the target device.
4. The NVMeoF system of claim 3 , wherein the target device is further configured for: removing the at least one protocol specific header from the RDMA Send packet received from the host to obtain the NVMeoF vendor specific command; storing information about the address of the CQ and the RKEY prepared for the CQ using the obtained NVMeoF vendor specific command; creating a memory region for a Submission Queue (SQ) of the target device by preparing an RKEY for the SQ, wherein the RKEY of the SQ indicates a combination of a session identifier (id), a controller id and NVMe Queue pair number (NVMe QPn); creating a WQE using the RDMA Send verb, wherein the WQE includes a vendor unique completion entry in response to the NVMeoF vendor specific command and the vendor unique completion entry includes an address of the SQ and the RKEY prepared for the SQ; preparing the RDMA Send packet by adding the at least one protocol specific header to the vendor unique completion entry of the WQE; and transmitting the RDMA Send packet corresponding to the vendor unique completion entry to the host.
5. The NVMeoF system of claim 4 , wherein the host is further configured for: removing the at least one protocol specific header from the RDMA Send packet received from the target device to obtain the vendor unique completion entry; and storing the address of the SQ and the RKEY prepared for the SQ using the obtained vendor unique completion entry.
6. The NVMeoF system of claim 5 , wherein the host is further configured for: accumulating the plurality of NVMeoF commands corresponding to the plurality of I/O requests in a local host queue (LHQ); and collecting the accumulated plurality of NVMeoF commands from the LHQ based on an expiration of a vendor specific turnaround time.
7. The NVMeoF system of claim 6 , wherein the single protocol specific header includes an RDMA Extended Transport Data (RETH), an Ethertype value (ETH), an Internet Protocol header (IP), a User Datagram Protocol (UDP) header, a Base Transport Header (BTH) an Invariant Cyclic Redundancy Code (ICRC) and a Frame Check Sequence (FCS), wherein the RETH includes DMA length, Virtual address and a Remote Key (RKEY).
8. The NVMeoF system of claim 1 , wherein the target device is further configured for: receiving the RDMA Write packet from the host; removing a single protocol specific header from the RDMA Write packet received from the host to obtain the plurality of NVMeoF commands; storing the obtained plurality of NVMeoF commands in a pre-registered memory region of a Submission Queue (SQ); performing at least one Direct Memory Access (DMA) operation based on a type of command associated with the plurality of NVMeoF commands stored in the pre-registered memory region of the SQ; preparing the plurality of NVMeoF completion responses after performing the at least one DMA operation; accumulating the prepared plurality of NVMeoF completion responses in a local target queue (LTQ); collecting the accumulated plurality of NVMeoF completion responses from the LTQ based on an expiration of a vendor specific turnaround time; packing the collected plurality of NVMeoF completion responses in an RDMA Write buffer; forming the RDMA Write packet corresponding to the plurality of NVMeoF completion responses by adding the single protocol specific header to the RDMA Write buffer, wherein the RDMA Write packet formed by the target device includes the plurality of NVMeoF completion responses packed in the RDMA Write buffer and the single protocol specific header for the plurality of NVMeoF completion responses; and transmitting the formed RDMA Write packet corresponding to the plurality of NVMeoF completion responses to the host.
9. The NVMeoF system of claim 8 , wherein the target device is further configured for: fetching and transmitting data from the storage device to the host using at least one RDMA Write packet on determining that the plurality of NVMeoF commands includes a read command; and fetching and storing data from the host to the storage device using at least one RDMA Read packet on determining that the plurality of NVMeoF commands includes a write command.
10. The NVMeoF system of claim 8 , wherein the host is further configured for: removing the single protocol specific header from the RDMA Write packet received from the target device to obtain the plurality of NVMeoF completion responses; storing the plurality of NVMeoF completion responses in the pre-registered memory region of the CQ; and completing the at least one I/O request based on the stored plurality of NVMeoF completion responses.
11. A host of a Non-Volatile Memory Express over Fabric (NVMeoF) system comprising of a target device, wherein the host is configured for: initiating and converting a plurality of Input/output (I/O) requests into a plurality of NVMeoF commands for accessing a storage device associated with the target device; packing the plurality of NVMeoF commands in an RDMA Write buffer; forming a Remote Direct Memory Access (RDMA) Write packet corresponding to the plurality of NVMeoF commands by adding a single protocol specific header to the plurality of NVMeoF commands packed in the RDMA Write buffer, wherein the single protocol specific header corresponds to the plurality of NVMeoF commands; and transmitting the RDMA Write packet corresponding to the plurality of NVMeoF commands to a pre-registered memory region of the target device.
12. The host of claim 11 , wherein the host is further configured for: accumulating a plurality of NVMeoF commands in a local host queue (LHQ); and collecting the accumulated plurality of NVMeoF commands from the LHQ based on an expiration of a vendor specific turnaround time.
13. A target device of a Non-Volatile Memory Express over Fabric (NVMeoF) system comprising of a host, wherein the target device is configured for: forming a Remote Direct Memory Access (RDMA) Write packet corresponding to a plurality of NVMeoF completion responses upon receiving the RDMA Write packet corresponding to the plurality of NVMeoF commands from the host; transmitting the RDMA Write packet corresponding to the plurality of NVMeoF completion responses to a pre-registered memory region of the host, wherein the host uses the plurality of NVMeoF completion responses to complete a plurality of I/O requests; removing a single protocol specific header from the RDMA Write packet received from the host to obtain the plurality of NVMeoF commands; storing the obtained plurality of NVMe commands in the pre-registered memory region; and performing at least one Direct Memory Access (DMA) operation based on a type of command associated with the obtained plurality of NVMeoF commands.
14. The target device of claim 13 , wherein the target device is further configured for: preparing the plurality of NVMeoF completion responses after performing the at least one DMA operation; accumulating the prepared plurality of NVMeoF completion responses in a local target queue (LTQ); collecting the accumulated plurality of NVMeoF completion responses from the LTQ based on an expiration of a vendor specific turnaround time; packing the collected plurality of NVMeoF completion responses in an RDMA Write buffer; and forming the RDMA Write packet corresponding to the plurality of NVMeoF completion responses by adding the single protocol specific header to the RDMA Write buffer, wherein the RDMA Write packet formed by the target device includes the plurality of NVMeoF completion responses packed in the RDMA Write buffer and the single protocol specific header for the plurality of NVMeoF completion responses.
15. A Non-Volatile Memory Express over Fabric (NVMeoF) system comprising: a host and a target device; wherein the host comprises: an NVMeoF driver configured for: receiving and translating a plurality of Input/Output (I/O) requests initiated by a host application module into a plurality of NVMeoF commands; accumulating the plurality of NVMeoF commands in a local host queue (LHQ); and packing the plurality of NVMeoF commands accumulated in the LHQ in a Remote Direct Memory Access (RDMA) write buffer; and a host RDMA network interface card (NIC) configured for: configuring a single protocol specific header to the accumulated plurality of NVMeoF commands in the RDMA write buffer; and sending the RDMA write buffer to the target device using an RDMA Write packet; and wherein the target device comprises: an NVMeoF controller configured for: executing the RDMA Write packet received from the host; and packing a plurality of NVMeoF completion responses to the executed plurality of NVMeoF commands in the RDMA Write packet in an RDMA write buffer having the single protocol specific header; and a target RDMA Network Interface Card (RNIC) configured for: sending the packed plurality of NVMeoF completion responses to the host using the RDMA Write packet.
Unknown
May 25, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.