Patent · US10469252B2 · B2 · US
Technologies for efficiently managing allocation of memory in a shared memory pool
- (11) Publication number
- US10469252B2
- (21) Application number
- 15/856,173
- (22) Filing date
- 2017-12-28
- (30) Priority date
- 2017-08-30
- (43) Publication date
- 2019-11-05
- (45) Date of grant
- 2019-11-05
- (52) CPC
- H04L Transmission of digital information, e.g. telegraphic communication: 69/18, 41/0213, 41/044, 41/0668, 41/0677, 41/0816, 41/0893, 41/0895, 41/0896, 41/14, 41/142, 41/149, 41/16, 41/34, 41/40, 41/5019, 41/5025, 43/065, 43/0876, 43/16, 43/20, 45/28, 45/7453, 47/11, 47/125, 47/781, 47/83, 49/30, 49/351, 49/40, 49/9005, 63/0428, 67/1001, 67/1008, 69/12, 69/22, 69/32, 69/321, 9/0819, 9/0894
- G06F Electric digital data processing: 11/3006, 11/3409, 11/3442, 11/3466, 12/023, 12/06, 12/0607, 12/0802, 12/1054, 12/1063, 12/14, 13/1663, 13/1668, 13/4022, 13/4068, 13/42, 15/161, 15/173, 15/17331, 15/1735, 15/7867, 16/119, 16/221, 16/2237, 16/2255, 16/2282, 16/2365, 16/2453, 16/2455, 16/24553, 16/248, 16/25, 16/9014, 17/5054, 21/105, 2200/201, 2201/85, 2201/86, 2201/885, 2209/5019, 2209/509, 2212/1044, 2212/1052, 2212/601, 2213/0026, 2213/0064, 2213/3808, 3/0604, 3/0605, 3/0611, 3/0613, 3/0629, 3/0631, 3/0632, 3/0644, 3/0647, 3/065, 3/0659, 3/0665, 3/067, 3/0673, 3/0683, 3/0685, 30/34, 9/28, 9/44, 9/4401, 9/4406, 9/4411, 9/445, 9/4494, 9/4856, 9/5022, 9/5044, 9/505, 9/5055, 9/5061, 9/5088
- G06N Computing arrangements based on specific computational models: 3/063
- G06Q Information and communication technology [ICT] specially adapted for administrative, commercial, financial, managerial or supervisory purposes; systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not otherwise provided for: 10/0631, 30/0283
- G11C Static stores: 29/028, 29/36, 29/38, 29/44, 8/12
- H04Q Selecting: 11/0005, 11/0062
- H05K Printed circuits; casings or constructional details of electric apparatus; manufacture of assemblages of electrical components: 7/1489, 7/1498, 7/18, 7/20209, 7/20736
- Y02D Climate change mitigation technologies in information and communication technologies [ICT], i.e. information and communication technologies aiming at the reduction of their own energy use: 10/00
- (73) Assignee
- INTEL CORP
- (54) Title
- Technologies for efficiently managing allocation of memory in a shared memory pool
- (57) Abstract
Technologies for efficiently managing the allocation of memory in a shared memory pool include a memory sled. The memory sled includes a memory pool of byte-addressable memory devices. The memory sled also includes a memory pool controller coupled to the memory pool. The memory pool controller receives a request to provision memory to a compute sled. Further, the memory pool controller maps, in response to the request, each of the memory devices of the memory pool to the compute sled. The memory pool controller additionally assigns access rights to the compute sled as a function of one or more memory characteristics of the compute sled. The memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled and the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices.
- Full text
- View on Google Patents
Claims (25)
- A memory sled, comprising: a memory pool comprising one or more byte-addressable memory devices; a memory pool controller coupled to the memory pool, wherein the memory pool controller is to: receive a request to provision memory to a compute sled, map, in response to the request, each of the memory devices of the memory pool to the compute sled, and assign access rights to the compute sled as a function of one or more memory characteristics of the compute sled, wherein the memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled, and wherein the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices to provide access to the amount of memory to the compute sled.
- The memory sled of claim 1, wherein the memory pool controller is further to send a notification to the compute sled of the assigned access rights.
- The memory sled of claim 1, wherein to assign the access rights to the compute sled comprises to: evaluate the one or more memory characteristics of the compute sled; and assign the access rights based on the evaluation, wherein the access rights satisfy the evaluated one or more memory characteristics.
- The memory sled of claim 3, wherein the one or more memory characteristics includes at least one of memory requirements for a workload, specifications provided as a service level agreement, or memory access permissions of the compute sled.
- The memory sled of claim 1, wherein the memory pool controller is further to: receive a request to allocate additional memory to the compute sled; and allocate the additional memory to the compute sled.
- The memory sled of claim 5, wherein to allocate the additional memory to the compute sled is to: determine an available memory address range in the one or more memory address ranges that satisfies the request to allocate the additional memory; and modify the access rights to provide access permissions to the determined available memory address range.
- The memory sled of claim 6, wherein the memory pool controller is further to send a notification to the compute sled indicative of the modified access rights.
- The memory sled of claim 1, wherein the memory pool controller is further to: receive a request to deallocate the memory allocated, from the memory pool, to the compute sled; and deallocate the memory allocated to the compute sled.
- The memory sled of claim 8, wherein to deallocate the memory comprises to: determine, as a function of the request, an amount of memory to deallocate from the compute sled; and determine the access rights associated with the compute sled.
- The memory sled of claim 9, wherein to deallocate the memory further comprises to: identify, as a function of the determination of the amount of memory to deallocate and the access rights, one or more memory address ranges in the memory pool to deallocate; and modify the access rights to remove access permissions to the identified one or more memory address ranges.
- The memory sled of claim 8, wherein the memory pool controller is further to unmap each of the memory devices from the compute sled.
- The memory sled of claim 8, wherein the memory pool controller is further to send a notification to an orchestrator server of the deallocation.
- One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a memory sled to: receive a request to provision memory to a compute sled; map, in response to the request, each of one or more byte-addressable memory devices of a memory pool to the compute sled; and assign access rights to the compute sled as a function of one or more memory characteristics of the compute sled, wherein the memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled, and wherein the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices to provide access to the amount of memory to the compute sled.
- The one or more machine-readable storage media of claim 13, wherein the plurality of instructions further cause the memory sled to send a notification to the compute sled of the assigned access rights.
- The one or more machine-readable storage media of claim 13, wherein to assign the access rights to the compute sled comprises to: evaluate the one or more memory characteristics of the compute sled; and assign the access rights based on the evaluation, wherein the access rights satisfy the evaluated one or more memory characteristics.
- The one or more machine-readable storage media of claim 15, wherein the one or more memory characteristics includes at least one of memory requirements for a workload, specifications provided as a service level agreement, or memory access permissions of the compute sled.
- The one or more machine-readable storage media of claim 13, wherein the plurality of instructions further cause the memory sled to: receive a request to allocate additional memory to the compute sled; and allocate the additional memory to the compute sled.
- The one or more machine-readable storage media of claim 17, wherein to allocate the additional memory to the compute sled comprises to: determine an available memory address range in the one or more memory address ranges that satisfies the request to allocate the additional memory; and modify the access rights to provide access permissions to the determined available memory address range.
- The one or more machine-readable storage media of claim 17, wherein the plurality of instructions further cause the memory sled to: receive a request to deallocate the memory allocated from the memory pool, to the compute sled; and deallocate the memory allocated to the compute sled.
- The one or more machine-readable storage media of claim 19, wherein to deallocate the memory comprises to: determine, as a function of the request, an amount of memory to deallocate from the compute sled; and determine the access rights associated with the compute sled.
- The one or more machine-readable storage media of claim 20, wherein to deallocate the memory further comprises to: identify, as a function of the determination of the amount of memory to deallocate and the access rights, one or more memory address ranges in the memory pool to deallocate; and modify the access rights to remove access permissions to the identified one or more memory address ranges.
- The one or more machine-readable storage media of claim 19, wherein the plurality of instructions further cause the memory sled to unmap each of the memory devices from the compute sled.
- A method comprising: receiving, by a memory sled, a request to provision memory to a compute sled; mapping, by the memory sled in response to the request, each of one or more byte-addressable memory devices of a memory pool to the compute sled; and assigning, by the memory sled, access rights to the compute sled as a function of one or more memory characteristics of the compute sled, wherein the memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled, and wherein the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices to provide access to the amount of memory to the compute sled.
- The method of claim 23, wherein assigning the access rights to the compute sled comprises: evaluating the one or more memory characteristics of the compute sled; and assigning the access rights based on the evaluation, wherein the access rights satisfy the evaluated one or more memory characteristics.
- The method of claim 23, wherein the one or more memory characteristics includes at least one of memory requirements for a workload, specifications provided as a service level agreement, or memory access permissions of the compute sled.
Citations (8)
- US2007113041A1
- US2012131301A1
- US2018077235A1
- US2018089044A1
- US2018196608A1
- US2018285003A1
- US7707199B2
- US8868868B1
Record as JSON
{
"publication_number": "US10469252B2",
"country": "US",
"kind": "B2",
"title": "Technologies for efficiently managing allocation of memory in a shared memory pool",
"abstract": "Technologies for efficiently managing the allocation of memory in a shared memory pool include a memory sled. The memory sled includes a memory pool of byte-addressable memory devices. The memory sled also includes a memory pool controller coupled to the memory pool. The memory pool controller receives a request to provision memory to a compute sled. Further, the memory pool controller maps, in response to the request, each of the memory devices of the memory pool to the compute sled. The memory pool controller additionally assigns access rights to the compute sled as a function of one or more memory characteristics of the compute sled. The memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled and the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices.",
"claims": [
"1. A memory sled, comprising: a memory pool comprising one or more byte-addressable memory devices; a memory pool controller coupled to the memory pool, wherein the memory pool controller is to: receive a request to provision memory to a compute sled, map, in response to the request, each of the memory devices of the memory pool to the compute sled, and assign access rights to the compute sled as a function of one or more memory characteristics of the compute sled, wherein the memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled, and wherein the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices to provide access to the amount of memory to the compute sled.",
"2. The memory sled of claim 1, wherein the memory pool controller is further to send a notification to the compute sled of the assigned access rights.",
"3. The memory sled of claim 1, wherein to assign the access rights to the compute sled comprises to: evaluate the one or more memory characteristics of the compute sled; and assign the access rights based on the evaluation, wherein the access rights satisfy the evaluated one or more memory characteristics.",
"4. The memory sled of claim 3, wherein the one or more memory characteristics includes at least one of memory requirements for a workload, specifications provided as a service level agreement, or memory access permissions of the compute sled.",
"5. The memory sled of claim 1, wherein the memory pool controller is further to: receive a request to allocate additional memory to the compute sled; and allocate the additional memory to the compute sled.",
"6. The memory sled of claim 5, wherein to allocate the additional memory to the compute sled is to: determine an available memory address range in the one or more memory address ranges that satisfies the request to allocate the additional memory; and modify the access rights to provide access permissions to the determined available memory address range.",
"7. The memory sled of claim 6, wherein the memory pool controller is further to send a notification to the compute sled indicative of the modified access rights.",
"8. The memory sled of claim 1, wherein the memory pool controller is further to: receive a request to deallocate the memory allocated, from the memory pool, to the compute sled; and deallocate the memory allocated to the compute sled.",
"9. The memory sled of claim 8, wherein to deallocate the memory comprises to: determine, as a function of the request, an amount of memory to deallocate from the compute sled; and determine the access rights associated with the compute sled.",
"10. The memory sled of claim 9, wherein to deallocate the memory further comprises to: identify, as a function of the determination of the amount of memory to deallocate and the access rights, one or more memory address ranges in the memory pool to deallocate; and modify the access rights to remove access permissions to the identified one or more memory address ranges.",
"11. The memory sled of claim 8, wherein the memory pool controller is further to unmap each of the memory devices from the compute sled.",
"12. The memory sled of claim 8, wherein the memory pool controller is further to send a notification to an orchestrator server of the deallocation.",
"13. One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a memory sled to: receive a request to provision memory to a compute sled; map, in response to the request, each of one or more byte-addressable memory devices of a memory pool to the compute sled; and assign access rights to the compute sled as a function of one or more memory characteristics of the compute sled, wherein the memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled, and wherein the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices to provide access to the amount of memory to the compute sled.",
"14. The one or more machine-readable storage media of claim 13, wherein the plurality of instructions further cause the memory sled to send a notification to the compute sled of the assigned access rights.",
"15. The one or more machine-readable storage media of claim 13, wherein to assign the access rights to the compute sled comprises to: evaluate the one or more memory characteristics of the compute sled; and assign the access rights based on the evaluation, wherein the access rights satisfy the evaluated one or more memory characteristics.",
"16. The one or more machine-readable storage media of claim 15, wherein the one or more memory characteristics includes at least one of memory requirements for a workload, specifications provided as a service level agreement, or memory access permissions of the compute sled.",
"17. The one or more machine-readable storage media of claim 13, wherein the plurality of instructions further cause the memory sled to: receive a request to allocate additional memory to the compute sled; and allocate the additional memory to the compute sled.",
"18. The one or more machine-readable storage media of claim 17, wherein to allocate the additional memory to the compute sled comprises to: determine an available memory address range in the one or more memory address ranges that satisfies the request to allocate the additional memory; and modify the access rights to provide access permissions to the determined available memory address range.",
"19. The one or more machine-readable storage media of claim 17, wherein the plurality of instructions further cause the memory sled to: receive a request to deallocate the memory allocated from the memory pool, to the compute sled; and deallocate the memory allocated to the compute sled.",
"20. The one or more machine-readable storage media of claim 19, wherein to deallocate the memory comprises to: determine, as a function of the request, an amount of memory to deallocate from the compute sled; and determine the access rights associated with the compute sled.",
"21. The one or more machine-readable storage media of claim 20, wherein to deallocate the memory further comprises to: identify, as a function of the determination of the amount of memory to deallocate and the access rights, one or more memory address ranges in the memory pool to deallocate; and modify the access rights to remove access permissions to the identified one or more memory address ranges.",
"22. The one or more machine-readable storage media of claim 19, wherein the plurality of instructions further cause the memory sled to unmap each of the memory devices from the compute sled.",
"23. A method comprising: receiving, by a memory sled, a request to provision memory to a compute sled; mapping, by the memory sled in response to the request, each of one or more byte-addressable memory devices of a memory pool to the compute sled; and assigning, by the memory sled, access rights to the compute sled as a function of one or more memory characteristics of the compute sled, wherein the memory characteristics are indicative of an amount of memory in the memory pool to be used by the compute sled, and wherein the access rights are indicative of access permissions to one or more memory address ranges associated with the one or more memory devices to provide access to the amount of memory to the compute sled.",
"24. The method of claim 23, wherein assigning the access rights to the compute sled comprises: evaluating the one or more memory characteristics of the compute sled; and assigning the access rights based on the evaluation, wherein the access rights satisfy the evaluated one or more memory characteristics.",
"25. The method of claim 23, wherein the one or more memory characteristics includes at least one of memory requirements for a workload, specifications provided as a service level agreement, or memory access permissions of the compute sled."
],
"cpc": [
"H04L 69/18",
"G06F 11/3006",
"G06F 11/3409",
"G06F 11/3442",
"G06F 11/3466",
"G06F 12/023",
"G06F 12/06",
"G06F 12/0607",
"G06F 12/0802",
"G06F 12/1054",
"G06F 12/1063",
"G06F 12/14",
"G06F 13/1663",
"G06F 13/1668",
"G06F 13/4022",
"G06F 13/4068",
"G06F 13/42",
"G06F 15/161",
"G06F 15/173",
"G06F 15/17331",
"G06F 15/1735",
"G06F 15/7867",
"G06F 16/119",
"G06F 16/221",
"G06F 16/2237",
"G06F 16/2255",
"G06F 16/2282",
"G06F 16/2365",
"G06F 16/2453",
"G06F 16/2455",
"G06F 16/24553",
"G06F 16/248",
"G06F 16/25",
"G06F 16/9014",
"G06F 17/5054",
"G06F 21/105",
"G06F 2200/201",
"G06F 2201/85",
"G06F 2201/86",
"G06F 2201/885",
"G06F 2209/5019",
"G06F 2209/509",
"G06F 2212/1044",
"G06F 2212/1052",
"G06F 2212/601",
"G06F 2213/0026",
"G06F 2213/0064",
"G06F 2213/3808",
"G06F 3/0604",
"G06F 3/0605",
"G06F 3/0611",
"G06F 3/0613",
"G06F 3/0629",
"G06F 3/0631",
"G06F 3/0632",
"G06F 3/0644",
"G06F 3/0647",
"G06F 3/065",
"G06F 3/0659",
"G06F 3/0665",
"G06F 3/067",
"G06F 3/0673",
"G06F 3/0683",
"G06F 3/0685",
"G06F 30/34",
"G06F 9/28",
"G06F 9/44",
"G06F 9/4401",
"G06F 9/4406",
"G06F 9/4411",
"G06F 9/445",
"G06F 9/4494",
"G06F 9/4856",
"G06F 9/5022",
"G06F 9/5044",
"G06F 9/505",
"G06F 9/5055",
"G06F 9/5061",
"G06F 9/5088",
"G06N 3/063",
"G06Q 10/0631",
"G06Q 30/0283",
"G11C 29/028",
"G11C 29/36",
"G11C 29/38",
"G11C 29/44",
"G11C 8/12",
"H04L 41/0213",
"H04L 41/044",
"H04L 41/0668",
"H04L 41/0677",
"H04L 41/0816",
"H04L 41/0893",
"H04L 41/0895",
"H04L 41/0896",
"H04L 41/14",
"H04L 41/142",
"H04L 41/149",
"H04L 41/16",
"H04L 41/34",
"H04L 41/40",
"H04L 41/5019",
"H04L 41/5025",
"H04L 43/065",
"H04L 43/0876",
"H04L 43/16",
"H04L 43/20",
"H04L 45/28",
"H04L 45/7453",
"H04L 47/11",
"H04L 47/125",
"H04L 47/781",
"H04L 47/83",
"H04L 49/30",
"H04L 49/351",
"H04L 49/40",
"H04L 49/9005",
"H04L 63/0428",
"H04L 67/1001",
"H04L 67/1008",
"H04L 69/12",
"H04L 69/22",
"H04L 69/32",
"H04L 69/321",
"H04L 9/0819",
"H04L 9/0894",
"H04Q 11/0005",
"H04Q 11/0062",
"H05K 7/1489",
"H05K 7/1498",
"H05K 7/18",
"H05K 7/20209",
"H05K 7/20736",
"Y02D 10/00"
],
"assignees": [
"INTEL CORP"
],
"filing_date": "2017-12-28",
"publication_date": "2019-11-05",
"grant_date": "2019-11-05",
"priority_date": "2017-08-30",
"application_number": "US-201715856173-A",
"family_id": "65037934",
"citations": [
"US2007113041A1",
"US2012131301A1",
"US2018077235A1",
"US2018089044A1",
"US2018196608A1",
"US2018285003A1",
"US7707199B2",
"US8868868B1"
]
}
Record 983 of 5,000 in Patents full text (MLC-0201). Request the full dataset.