Transparent remote memory access over network protocol
Abstract
A system for providing memory access is disclosed. In some embodiments, the system is configured to receive at a source server fabric adapter (SFA), from a server, a memory access request comprising a virtual memory address; using associative mapping, determining whether the virtual address corresponds to a source-local memory associated with the source SFA or to a remote memory. If the virtual address corresponds to the source-local memory, the virtual memory address is translated, at the source SFA, into a physical memory address of the source-local memory. If the virtual address corresponds to the remote memory, a request message is synthesized, and the synthesized request message is transmitted to the destination SFA using a network protocol.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system comprising:
a fabric adapter coupled to a plurality of endpoint devices and a plurality of network ports, each endpoint device of the plurality of endpoint devices being a remote device or a local device, wherein the fabric adapter is configured to: use at least one of a peripheral component interconnect express (PCIe) interface and protocol or a computer express link (CXL) interface and protocol to handle a memory request associated with the local device; and use at least one network interface and protocol to handle a memory request associated with the remote device.
2 . The system of claim 1 , wherein:
the plurality of endpoint devices are memory and data storage devices, each remote device of the plurality of endpoint devices is a network attached device that is communicated through network addressing, the remote device including at least one of a remote storage device or a remote memory device, and each local device of the plurality of endpoint devices is included within a compute rack utilizing at least one of PCIe and CXL interfaces and protocols and is communicated either through memory mapped addressing or through network addressing, the local device including at least one of a local storage device or a local memory device,
3 . The system of claim 2 , wherein:
the remote storage device comprises at least one of a hard disk drive (HDD) or a solid state device (SSD), and the remote memory device comprises at least one of non-volatile memory (NVME) or dynamic random access memory (DRAM).
4 . The system of claim 2 , wherein:
the local storage device comprises at least one of a HDD or a SSD, and the local memory device comprises at least one of local disaggregated memory including NVME or DRAM, or at least a main memory including DRAM.
5 . The system of claim 2 , wherein the remote device is attached to a network via an Ethernet interface.
6 . The system of claim 2 , wherein the fabric adapter is further configured to handle the memory request associated with the remote device or local device using one or more semantics, wherein the one or more semantics include at least input/output semantics or network semantics, the input/output (I/O) semantics is based on load and store operations, and the network semantics allows data transfer based on one or more network protocols.
7 . The system of claim 6 , wherein the fabric adapter comprises:
a local memory request handler configured to use the I/O semantics to handle the memory request associated with the local device via PCIe/CXL interfaces; and a transport handler configured to use the network semantics to handle the memory request associated with the remote device.
8 . The system of claim 7 , where the fabric adapter is further configured to:
translate the memory request to a network memory request; and identify a location of a memory request handler from the network memory request.
9 . The system of claim 8 , wherein the location of the memory request handler is associated with the local memory device, and the local memory request handler is further configured to:
perform local cacheline operations via CXL.mem and CXL.cache in response to the memory request.
10 . The system of claim 8 , wherein the location of the memory request handler is associated with the local storage device, and the local memory request handler is further configured to:
receive and execute the memory request via a PCIe interface.
11 . The system of claim 8 , wherein the location of the memory request handler is associated with the remote memory device, and the transport handler is further configured to:
apply one or more network protocols; insert the memory request into a network flow targeted to a remote memory request handler associated with the remote device through a network interface; receive a memory response from the remote memory request handler associated with the remote device; and transmit the memory response to a requestor of the memory request.
12 . The system of claim 8 , wherein the location of the memory request handler is associated with the remote storage device, and the transport handler is further configured to:
apply one or more network protocols; insert the memory request into a network flow targeted to a remote memory request handler associated with the remote device through a network interface; receive a memory response from the remote memory request handler associated with the remote device; and transmit the memory response to a requestor of the memory request.
13 . The system of claim 8 , wherein the fabric adapter is further configured to extend load and store operations to remote devices over a network through remote memory access.
14 . The system of claim 8 , wherein the fabric adaptor is further configured to use memory mapped addressing to cache application data in high bandwidth memory of a graphical processing unit.
15 . The system of claim 8 , wherein at least one of the transport handler and the local memory request handler is a software process running on a device attached to the fabric adapter or a hardware unit of the fabric adapter.
16 . The system of claim 1 , wherein the fabric adapter further comprises one or more network interface controllers utilizing standard protocol stacks, and wherein:
the standard protocol stacks comprise at least one of Ethernet, a transport protocol, and a network protocol, the transport protocol comprises at least one of a Transmission Control Protocol (TCP) or a User Datagram Protocol (UDP), and the network protocol comprises an Internet Protocol (IP).
17 . The system of claim 1 , wherein the fabric adapter is further configured to manage local cache of the remote memory device.
18 . The system of claim 1 , wherein the fabric adapter is further configured to:
determine a hot ranking of a memory page; and move the memory page between local and remote memory locations based on the hot ranking.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.