NVM express controller for remote access of memory and I/O over Ethernet-type networks
AssigneeCNEX Labs, Inc.
InventorYiren Ronnie Huang
Life of this patent
Estimating the term…
Abstract
A method and system for enabling Non-Volatile Memory express (NVMe) for accessing remote solid state drives (SSDs) (or other types of remote non-volatile memory) over the Ethernet or other networks. An extended NVMe controller is provided for enabling CPU to access remote non-volatile memory using NVMe protocol. The extended NVMe controller is implemented on one server for communication with other servers or non-volatile memory via Ethernet switch. The NVMe protocol is used over the Ethernet or similar networks by modifying it to provide a special NVM-over-Ethernet frame.
Claims31
An extended NVMe controller comprising:
- a host PCI Express (PCIe) interface adapted to couple the extended NVMe controller to a host processor;
- a direct network interface adapted to couple the extended NVMe controller to an external Ethernet network;
- wherein the extended NVMe controller receives from the host processor Non-Volatile Memory Express (NVMe) commands directed to a remote namespace for remote non-volatile memory coupled to the external Ethernet network;
- a command translator that translates the NVMe commands to NVM-over-Ethernet (NVMoE) commands that are suitable for transmission over the external Ethernet network to a remote namespace controller for the remote namespace;
- and
- a submission queue manager that manages NVMe submission queues for the host processor.
A method for accessing a remote name space, the method comprising:
- an extended NVMe controller receiving from a host processor via PCI Express (PCIe) bus, NVMe commands directed to a remote namespace for a remote non-volatile memory coupled to an external Ethernet network, the extended NVMe controller also coupled to the external Ethernet network;
- the extended NVMe controller managing NVMe submission queues for the host processor;
- the extended NVMe controller translating the received NVMe commands to NVM-over-Ethernet (NVMoE) commands that are suitable for transmission over the external Ethernet network to a remote namespace controller for the remote namespace;
- and
- the extended NVMe controller transmitting the NVMoE commands directly over the external Ethernet network to the remote namespace controller.
An extended NVMe storage network comprising a plurality of local NVMe storage nodes and an external network coupling the local NVMe storage nodes;
- the local NVMe storage nodes comprising host processor(s), extended NVMe controllers and local non-volatile memories;
- wherein the extended NVMe controllers comprise:
- host PCI Express (PCIe) interfaces adapted to couple the extended NVMe controllers to the host processor(s);
- local storage interfaces adapted to couple the extended NVMe controllers to local namespaces for the local non-volatile memories;
- wherein the extended NVMe controllers receive from the host processor(s) first NVMe commands directed to the local namespaces and provide I/O access for the host processor(s) to the local namespaces according to the first NVMe commands;
- direct network interfaces adapted to couple the extended NVMe controllers to the external network;
- wherein the extended NVMe controllers further receive from the host processor(s) second NVMe commands directed to remote namespaces coupled to the external network;
- command translators that translate the second NVMe commands to NVM-over-Ethernet (NVMoE) commands that are suitable for transmission over the external network to other extended NVMe controllers coupled to the remote namespaces;
- and
- submission queue managers that manage NVMe submission queues for the host processor.
Dependencies are inferred from the claim text.