Global virtual address space across operating system domain
AssigneeMicron Tecnology, Inc.
InventorsBryan Hornung, Patrick Estep
Life of this patent
Estimating the term…
Abstract
Disclosed in some examples, are methods, systems, devices, and machine-readable mediums which solve the above problems using a global shared region of memory that combines memory segments from multiple CXL devices. Each memory segment is a same size and naturally aligned in its own physical address space. The global shared region is contiguous and naturally aligned in the virtual address space. By organizing this global shared region in this manner, a series of three tables may be used to quickly translate a virtual address in the global shared region to a physical address. This prevents TLB thrashing and improves performance of the computing system.
Claims20
A method comprising:
- at a memory management unit (MMU) of a multi-processor system, performing operations comprising:
- receiving a memory access request for a virtual address within a global shared virtual address space, the memory access request received from a process executing on a processor of the multi-processor system;
- determining that the virtual address does not correspond to memory serviced by the MMU;
- responsive to determining that the virtual address does not correspond to memory serviced by the MMU:
- determining a globally unique range ID based upon the virtual address;
- determining a base address and size for a region corresponding to the globally unique range ID;
- determining a destination physical segment and destination physical device identifier using the base address and a virtual device ID corresponding to the virtual address;
- constructing a physical address using the destination physical segment, the destination physical device identifier, size, and a portion of the virtual address;
- and
- transmitting the request for a value stored at the virtual address by routing the request over a compute fabric of the multi-processor system based upon the physical address, the physical address belonging to part of a single global physical address space of the compute system.
A non-transitory machine-readable medium, storing instructions for managing memory access in a multi-processor system, the instructions, which when executed, cause the machine to perform operations comprising:
- receiving a memory access request for a virtual address within a global shared virtual address space, the memory access request received from a process executing on a processor of the multi-processor system;
- determining that the virtual address does not correspond to memory serviced by the MMU;
- responsive to determining that the virtual address does not correspond to memory serviced by the MMU:
- determining a globally unique range ID based upon the virtual address;
- determining a base address and size for a region corresponding to the globally unique range ID;
- determining a destination physical segment and destination physical device identifier using the base address and a virtual device ID corresponding to the virtual address;
- constructing a physical address using the destination physical segment, the destination physical device identifier, size, and a portion of the virtual address;
- and
- transmitting the request for a value stored at the virtual address by routing the request over a compute fabric of the multi-processor system based upon the physical address, the physical address belonging to part of a single global physical address space of the compute system.
A computing device for managing memory access in a multi-processor system, the computing device comprising:
- a hardware processor;
- a memory, the memory storing instructions, which when executed by the hardware processor cause the computing device to perform operations comprising:
- receiving a memory access request for a virtual address within a global shared virtual address space, the memory access request received from a process executing on a processor of the multi-processor system;
- determining that the virtual address does not correspond to memory serviced by the MMU;
- responsive to determining that the virtual address does not correspond to memory serviced by the MMU:
- determining a globally unique range ID based upon the virtual address;
- determining a base address and size for a region corresponding to the globally unique range ID;
- determining a destination physical segment and destination physical device identifier using the base address and a virtual device ID corresponding to the virtual address;
- constructing a physical address using the destination physical segment, the destination physical device identifier, size, and a portion of the virtual address;
- and
- transmitting the request for a value stored at the virtual address by routing the request over a compute fabric of the multi-processor system based upon the physical address, the physical address belonging to part of a single global physical address space of the compute system.
Dependencies are inferred from the claim text.