Systems and methods for scalable and coherent memory devices
US-2021374056-A1 · Dec 2, 2021 · US
US12306748B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12306748-B2 |
| Application number | US-202318125218-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 23, 2023 |
| Priority date | Oct 27, 2022 |
| Publication date | May 20, 2025 |
| Grant date | May 20, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method of allocating a memory space is provided. The method includes generating a plurality of arena pools by logically grouping a plurality of memories based on a physical characteristic of each of the memories, the plurality of memories including a first memory and a second memory that is different from the first memory, generating a memory use-case with respect to at least one arena included in the plurality of arena pools, based on a memory allocation request, and returning a memory space corresponding to the memory allocation request, based on the memory use-case, wherein the at least one arena comprises a logical unit that is configured to manage a memory space corresponding to at least one memory from the plurality of memories grouped according to the physical characteristic, and each of the plurality of arena pools comprises a group of arenas.
Opening claim text (preview).
What is claimed is: 1. A method of allocating a memory space, the method comprising: generating a plurality of arena pools by logically grouping a plurality of memories based on a physical characteristic of each of the plurality of memories, the plurality of memories including a first memory and a second memory that has a different physical characteristic from the first memory; generating a memory use-case with respect to at least one arena included in the plurality of arena pools, based on a memory allocation request; returning a memory space corresponding to the memory allocation request, based on the memory use-case, wherein the returning of the memory space comprises transmitting an address of the memory space; updating telemetry based on a size of the memory space and a number of returns; and newly generating the plurality of arena pools by regrouping the plurality of memories, based on the telemetry, wherein the telemetry comprises a statistical parameter that counts the size of the memory space and the number of returns, wherein the at least one arena comprises a logical unit that is configured to manage a memory space corresponding to at least one memory from the plurality of memories grouped according to the physical characteristic, and wherein each of the plurality of arena pools comprises a group of arenas. 2. The method of claim 1 , further comprising receiving information about the physical characteristic of each of the plurality of memories, wherein the physical characteristic includes at least one of size of each of the plurality of memories, speed of each of the plurality of memories, power consumption of each of the plurality of memories, or whether each of the plurality of memories is encryptable. 3. The method of claim 1 , wherein the generating of the memory use-case includes selecting the at least one arena based on a context included in the memory allocation request and a locality of data corresponding to the memory allocation request, and the locality of data includes one of a time locality or a spatial locality. 4. The method of claim 3 , wherein the context includes a memory, a required memory space, a maximum memory policy, and a priority placed on a kind of memory. 5. The method of claim 4 , further comprising: selecting an arena for the memory space that was returned, based on the telemetry and the maximum memory policy included in the context. 6. The method of claim 1 , wherein the method is performed using at least one of a compatible application programming interface (API) or an optimization API, the compatible API is configured to perform memory allocation with respect to heterogeneous memories without changing an application layer, and the optimization API is configured to optimize the memory allocation with respect to the heterogeneous memories by changing the application layer. 7. The method of claim 1 , wherein the generating of the plurality of arena pools by logically grouping the plurality of memories includes determining a number of arena pools based on a number of cores, and the plurality of arena pools are based on logical block addressing (LBA). 8. The method of claim 1 , further comprising allocating the memory space corresponding to the memory allocation request in the at least one arena, based on an existence or a non-existence of an already allocated free memory chunk in the at least one arena, wherein the generating of the memory use-case includes comparing a requested memory space in the memory allocation request with an available memory space of the at least one arena. 9. A memory expander comprising: at least one processor; a compatible application programming interface (API) module and an optimization API module, each connected to an application layer; and a memory that is configured to store instructions that, when executed by the at least one processor, causes the at least one processor to perform operations for allocating a memory space, the operations comprising: generating a plurality of arena pools by logically grouping a plurality of memories based on a physical characteristic of each of the plurality of memories, the plurality of memories including a first memory and a second memory that is different from the first memory; generating a memory use-case with respect to at least one arena included in the plurality of arena pools, based on a memory allocation request; and returning a memory space corresponding to the memory allocation request, based on the memory use-case, wherein the at least one arena comprises a logical unit that is configured to manage a memory space corresponding to at least one memory from the plurality of memories grouped according to the physical characteristic, wherein each of the plurality of arena pools comprises a group of arenas, wherein the compatible API module is configured to perform memory allocation with respect to heterogeneous memories without changing the application layer, and wherein the optimization API module is configured to optimize the memory allocation with respect to the heterogeneous memories by changing the application layer. 10. The memory expander of claim 9 , wherein the physical characteristic includes at least one of size of each of the plurality of memories, speed of each of the plurality of memories, power consumption of each of the plurality of memories, or whether each of the plurality of memories is encryptable. 11. The memory expander of claim 9 , wherein the generating of the memory use-case includes selecting the at least one arena based on a context included in the memory allocation request and a locality of data corresponding to the memory allocation request, and the locality of data includes one of a time locality or a spatial locality. 12. The memory expander of claim 11 , wherein the context includes a required memory space, a maximum memory policy, and a priority placed on a kind of memory. 13. The memory expander of claim 12 , wherein the operations further comprise: updating telemetry based on a size of the memory space that was returned and a number of returns; and selecting an arena for the memory space that was returned, based on the telemetry that was updated and the maximum memory policy included in the context, wherein the telemetry comprises a statistical parameter that counts the size of the memory space that was returned and the number of returns. 14. The memory expander of claim 12 , wherein the operations further comprise: updating telemetry based on a size of the memory space that was returned and a number of returns; and newly generating a plurality of arena pools by regrouping the plurality of memories, based on the telemetry that was updated, wherein the telemetry comprises a statistical parameter that counts the size of the memory space that was returned and the number of returns. 15. The memory expander of claim 9 , wherein the first memory comprises compute express link (CXL) dynamic random access memory (DRAM), and the second memory comprises double data rate (DDR) memory. 16. A system comprising: a device connected to a bus and configured to communicate with a first memory; a host processor configured to select one of a first protocol or a second protocol based on a size of first data to be written to the first memory or read from the first memory, and access the first memory through the bus based on the one of the first protocol or the second protocol that was selected; and a second memory that is different from the first memory, wherein the first protocol is for memory access, the second protocol is fo
Scalability · CPC title
Resource optimization · CPC title
Performance improvement · CPC title
Hybrid memory, e.g. using both volatile and non-volatile memory · CPC title
by allocating resources to storage systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.