Method and apparatus for memory management

US2016147648A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016147648-A1
Application numberUS-201514952847-A
CountryUS
Kind codeA1
Filing dateNov 25, 2015
Priority dateNov 25, 2014
Publication dateMay 26, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Partitioning or combining of resources · CPC title

  • G06F9/5016Primary

    the resource being the memory · CPC title

  • Space efficiency improvement · CPC title

  • G06F12/023Primary

    Free address space management · CPC title

  • adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016147648A1 cover?
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 …
Who is the assignee on this patent?
Alibaba Group Holding Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/5016. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu May 26 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).