Memory management unit for shared memory allocation
AssigneeAmazon Technologies, Inc.
InventorAndrea Olgiati
Life of this patent
Estimating the term…
Abstract
A system and method for allocating shared inter-process memory by a memory management unit is disclosed. A memory management unit may receive information indicative of allocating a region of shared memory. The information may further indicate that a second process may share access to the memory. The memory management unit may identify corresponding regions of virtual address space for each process, such that the region in each address space maps to the same range of addresses. The memory management unit may virtualize access to the shared memory by mapping from the corresponding regions of the virtual address space.
Claims20
A system, comprising:
- at least one processor;
- and
- at least one memory having stored thereon instructions that, when executed by the at least one processor, cause the system to at least:
- receive a request to allocate a portion of a first virtual address space of a first process, the request indicative of sharing data in the portion with a second process;
- identify a first region of the first virtual address space and a second region of a second virtual address space of the second process, wherein the first region is allocated from a region of the first virtual address space of at least a minimum size, wherein the second region is allocated from a region of the second virtual address space, and wherein addresses of the first region in the first virtual address space are equal to addresses of the second region in the second virtual address space;
- and
- translate an address in the first region of the first virtual address space to a location in physical memory and translate a corresponding address in the second region of the second virtual address space to the location.
A method, comprising:
- receiving a request to allocate a portion of a first virtual address space of a first process, the request indicative of sharing data in the portion with a second process;
- allocating a first region of the first virtual address space and a second region of a second virtual address space, wherein the first region is allocated from a region of the first virtual address space, wherein the second region is allocated from a region of the second virtual address space, and wherein addresses of the first region in the first virtual address space are aligned with addresses of the second region in the second virtual address space;
- and
- translating an address in the first region of the first virtual address space to a location in a physical memory and translating a corresponding address in the second region of the second virtual address space to the location.
A non-transitory storage medium having stored thereon executable instructions that, in response to execution by a processor of a computing device, cause the computing device at least to:
- receive a request to allocate a portion of a first virtual address space of a first process, the request indicative of sharing data in the portion with a second process;
- allocate a first region of the first virtual address space and a second region of a second virtual address space, wherein the first region is allocated from a region of the first virtual address space, wherein the second region is allocated from a region of the second virtual address space, and wherein addresses of the first region in the first virtual address space are aligned with addresses of the second region in the second virtual address space;
- and
- translate an address in the first region of the first virtual address space to a location in a physical memory and translating a corresponding address in the second region of the second virtual address space to the location.
Dependencies are inferred from the claim text.