Memory module with memory-ownership exchange
AssigneeRambus Inc.
InventorsEvan Lawrence Erickson, Taeksang Song, Christopher Haywood
Life of this patent
Estimating the term…
Abstract
Described are computational systems in which hosts share pooled memory on the same memory module. A memory buffer with access to the pooled memory manages which regions of the memory are allocated to the different hosts such that memory regions, and thus the data they contain, can be exchanged between hosts. Unidirectional or bidirectional data exchanges between hosts swap regions of equal size so the amount of memory allocated to each host is not changed as a result of the exchange.
Claims21
(canceled)
A memory buffer comprising:
- memory having a first memory region allocated to a first host and a second memory region allocated to a second host;
- an interface to receive a memory-exchange request identifying the first memory region and the second memory region;
- and
- control circuitry to:
- maintain a mapping data structure that associates a first logical address space of the first host with the first memory region and a second logical address space of the second host with the second memory region;
- and
- responsive to the memory-exchange request, modify the mapping data structure to associate the first logical address space with the second memory region and the second logical address space with the first memory region.
A method performed by a memory buffer in a memory module, the method comprising:
- maintaining a mapping data structure that translates logical addresses associated with a first host to a first physical memory region and logical addresses associated with a second host to a second physical memory region;
- receiving a request to exchange access to the first and second physical memory regions between the first host and the second host;
- and
- updating the mapping data structure to redirect the logical addresses associated with the first host to the second physical memory region and the logical addresses associated with the second host to the first physical memory region.
A memory comprising:
- pooled memory including equal-sized first and second regions;
- and
- a controller integrated with the pooled memory, the controller to:
- allocate the first and second regions of the pooled memory to a first host and a second host respectively using a mapping data structure;
- and
- reassign access to the regions between the first host and the second host by updating only the mapping data structure in response to an exchange request, without requiring updates to page tables of the first host or the second host.
Dependencies are inferred from the claim text.