US 11,714,559 B2
Efficient memory-semantic networking using scoped memory models
Michael W. LeBeane, Austin, TX (US); Khaled Hamidouche, Austin, TX (US); Hari S. Thangirala, Austin, TX (US); and Brandon Keith Potter, Austin, TX (US)
Assigned to Advanced Micro Devices, Inc., Santa Clara, CA (US)
Filed by Advanced Micro Devices, Inc., Santa Clara, CA (US)
Filed on Sep. 25, 2020, as Appl. No. 17/33,170.
Prior Publication US 2022/0100391 A1, Mar. 31, 2022
Int. Cl. G06F 3/06 (2006.01); G06F 12/02 (2006.01); G06F 12/0802 (2016.01)
CPC G06F 3/0619 (2013.01) [G06F 3/067 (2013.01); G06F 3/0656 (2013.01); G06F 12/0223 (2013.01); G06F 12/0802 (2013.01); G06F 2212/152 (2013.01)] 30 Claims
OG exemplary drawing
 
1. A non-transitory computer readable storage medium comprising instructions thereon for execution by at least one processor for performing a memory access across a commodity network that does not directly support load requests and store requests, the instructions for:
allocating a region of virtual address space of a local memory that is not backed by physical memory, wherein the region of virtual address space corresponds to physical remote memory across the commodity network;
issuing a less-than-cluster scope memory access command that addresses an address in the region of virtual address space of the local memory, wherein the less-than-cluster scope memory access command has a data visibility that does not include the remote memory;
generating a page fault in response to the less-than-cluster scope memory access command addressing the region of virtual address space that is not backed by physical memory;
in response to the page fault:
identifying that the address corresponds to a remote address;
identifying a rank of the physical remote memory; and
allocating a region of local physical memory corresponding to the region of virtual address space;
issuing multiple less-than-cluster scope memory access commands addressing the physically-backed region of virtual address space, such that the remote memory is incoherent with the region of local physical memory by the region of local physical memory including dirty bytes;
issuing a cluster scope memory access command to the remote memory across the commodity network, wherein the cluster scope memory access command addresses the region of virtual address space and a data visibility of the cluster scope includes at least the local memory and the remote memory;
translating the cluster scope memory access command into a network operation; and
performing the network operation to put at least the dirty bytes from the local memory into the remote memory or get data from the remote memory to store in the local memory based on the cluster scope memory access.