Techniques for dynamic physical memory partitioning
US-9274839-B2 · Mar 1, 2016 · US
US2016147648A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016147648-A1 |
| Application number | US-201514952847-A |
| Country | US |
| Kind code | A1 |
| Filing date | Nov 25, 2015 |
| Priority date | Nov 25, 2014 |
| Publication date | May 26, 2016 |
| Grant date | — |
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 and apparatus of memory management are disclosed. Pooling of at least one memory to generate a memory pool, dividing the memory pool to generate at least one memory space, and allocating a respective memory space to a respective CPU in a one-to-one correspondence manner are performed. Further, the respective memory space allocated to the respective CPU is set as a pinned memory of the respective CPU. Additionally, setting unallocated memory space as a shared memory pool, obtaining a memory value that represents usage of the respective memory space by the respective CPU during operation, and determining if the memory value exceeds a preset threshold range are performed. Selecting, if the memory value exceeds the preset threshold range, additional memory space from the memory pool to allocate to the respective CPU or reallocating at least a portion of the respective memory space allocated to the CPU are performed.
Opening claim text (preview).
What is claimed is: 1 . A method for memory management, comprising: pooling at least one memory to generate a memory pool; dividing the memory pool to generate at least one memory space; allocating a respective memory space of the at least one memory space to a respective CPU of a plurality of CPUs in a one-to-one correspondence manner and setting the respective memory space as a pinned memory of the respective CPU; setting an unallocated memory space as a shared memory pool of the memory pool; obtaining a memory value that represents usage of the respective memory space by the respective CPU during operation; determining if the memory value exceeds a preset threshold range; and based on whether the memory value exceeds the preset threshold range, selecting an additional memory space from the memory pool to allocate to the respective CPU, or reallocating at least a portion of the respective memory space that has been allocated to the respective CPU. 2 . The method of claim 1 , further comprising: repeating the obtaining a memory value, the determining, and the selecting an additional memory space. 3 . The method of claim 1 , further comprising, in response to determining the memory value does not exceed the preset threshold range: repeating the obtaining a memory value, the determining, and the reallocating. 4 . The method of claim 1 , further comprising: selecting a number of memory controllers, wherein the number of memory controllers is equal to a number of the respective CPUs; matching in a one-to-one correspondence manner port addresses of the respective CPUs to port addresses of the memory controllers; and allocating a corresponding memory space of at least one dual in-line memory module (DIMM) slot of the memory pool in at least one channel associated with the memory controllers to the respective CPU as the pinned memory, wherein the allocated corresponding memory space of the DIMM slot includes a fixed address. 5 . The method of claim 4 , wherein the obtaining a memory value comprises: obtaining the memory values of the respective CPUs from the plurality of CPUs. 6 . The method of claim 5 , wherein the determining if the memory value exceeds a preset threshold range comprises: determining if at least one of the memory values exceeds a preset first threshold; and if the memory value exceeds the preset first threshold, selecting the additional memory space from the memory pool according to a certain proportion of the memory value and allocating the additional memory space to the respective CPU. 7 . The method of claim 6 , further comprising: determining, if the memory value does not exceed a preset first threshold, if the memory value is lower than a preset second threshold; and if the memory value does not exceed the preset first threshold and if the memory value is lower than the preset second threshold, reallocating at least a portion of the respective memory space allocated to the respective CPU according to a certain proportion of the memory value. 8 . The method of claim 7 , further comprising: if the memory value is not lower than the preset second threshold, repeating the obtaining a memory value, the determining if the memory value exceeds the preset threshold range, and the based on whether the memory value exceeds the preset threshold range, selecting an additional memory space from the memory pool to allocate to the respective CPU or reallocating the respective memory space allocated to the respective CPU. 9 . The method of claim 6 , wherein the selecting additional memory space from the memory pool comprises: determining if there exists a second DIMM slot of the memory pool located in the same channel as the DIMM slot that corresponds to the pinned memory of the respective CPU; and if the second DIMM slot exists, allocating a second corresponding memory space of the second DIMM slot to the respective CPU according to the certain proportion of the memory value. 10 . The method of claim 9 , further comprising: if the second DIMM slot does not exist, determining if there exists a third DIMM slot in the memory pool located in the memory controllers as the DIMM slot that corresponds to the pinned memory of the respective CPU; if the third DIMM slot exists, allocating a third corresponding memory space of the third DIMM slot to the respective CPU according to the certain proportion of the memory value; and if the third DIMM slot does not exist, allocating the additional memory space from the memory pool to the respective CPU according to another certain proportion of the memory value. 11 . The method of claim 5 , wherein the obtaining the memory values comprises: summing the memory values of the respective CPUs from the plurality of CPUs to obtain a total memory value. 12 . The method of claim 11 , wherein the determining if the memory value exceeds a preset threshold range comprises: determining if the total memory value exceeds a preset first threshold; and if the total memory value exceeds the preset first threshold, selecting the additional memory space from the memory pool according to a certain proportion of the memory value and allocating the additional memory space to the respective CPU. 13 . The method of claim 12 , further comprising: determining, if the total memory value does not exceed a preset first threshold, if the total memory value is lower than a preset second threshold; if the total memory value does not exceed the preset first threshold and if the total memory value is lower than the preset second threshold, reallocating at least a portion of the respective memory space allocated to the respective CPU according to a certain proportion of the memory value; and if the memory value is not lower than the preset second threshold, repeating the obtaining a memory value, the determining if the memory value exceeds the preset threshold range, and the based on whether the memory value exceeds the preset threshold range, selecting an additional memory space from the memory pool to allocate to the respective CPU or reallocating the respective memory space allocated to the respective CPU. 14 . The method of claim 12 , wherein the selecting additional memory space from the memory pool comprises: determining if there exists a second DIMM slot of the shared memory pool located in the same channel as the DIMM slot that corresponds to the pinned memory of the respective CPU; if the second DIMM slot exists, allocating a second corresponding memory space of the second DIMM slot to the respective CPU according to the certain proportion of the memory value; if the second DIMM slot does not exist, determining if there exists a third DIMM slot in the shared memory pool located in the respective memory controller as the DIMM slot that corresponds to the pinned memory of the respective CPU; if the third DIMM slot exists, allocating a third corresponding memory space of the third DIMM slot to the respective CPU according to the certain proportion of the memory value; and if the third DIMM slot does not exist, allocating the additional memory space from the memory pool to the respective CPU according to the certain proportion of the memory value. 15 . The method of claim 1 , further comprising: setting each CPU in the plurality of CPUs as a node of the plurality of CPUs and connecting the nodes of the plurality of CPUs to generate a CPU pool. 16 . An apparatus for memory management, comprising: a memory pooling unit configured to pool at least one memory to generate a memory pool; a memory divider conf
Partitioning or combining of resources · CPC title
the resource being the memory · CPC title
Space efficiency improvement · CPC title
Free address space management · CPC title
adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.