US 12,293,227 B2
Memory allocation in a hierarchical memory system
Amir Roozbeh, Stockholm (SE); Alireza Farshin, Stockholm (SE); Dejan Kostic, Solna (SE); and Gerald Q. Maguire, Jr., Stockholm (SE)
Assigned to TELEFONAKTIEBOLAGET LM ERICSSON (PUBL), Stockholm (SE)
Appl. No. 17/254,195
Filed by Telefonaktiebolaget LM Ericsson (publ), Stockholm (SE)
PCT Filed Jun. 20, 2019, PCT No. PCT/SE2019/050596
§ 371(c)(1), (2) Date Dec. 18, 2020,
PCT Pub. No. WO2019/245445, PCT Pub. Date Dec. 26, 2019.
Claims priority of application No. PCT/SE2018/050676 (WO), filed on Jun. 21, 2018.
Prior Publication US 2021/0191777 A1, Jun. 24, 2021
Int. Cl. G06F 9/50 (2006.01); G06F 12/0811 (2016.01)
CPC G06F 9/5016 (2013.01) [G06F 12/0811 (2013.01); G06F 2212/608 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A method performed by a memory allocator in a computer system for allocating memory to applications, wherein the computer system comprises at least one computer server comprising a plurality of central processing unit (CPU) cores, the plurality of CPU cores comprising a first CPU core and a second CPU core, and the computer server further comprising at least a first memory unit and a second memory unit having different data access times, and wherein the second memory unit is divided into a plurality of slices, wherein the plurality of slices of the second memory unit comprises a first slice and a second slice, the first slice is associated with the first CPU core, and the second slice is associated with the second CPU core, the method comprising:
receiving a request from an application for allocating memory to the application, wherein the application is running on the first CPU core;
in response to the request, selecting a memory block from the first memory unit, wherein the memory block comprises a set of memory chunks;
determining whether at least T number of the memory chunks included in the selected memory block of the first memory unit are associated with the first slice of the second memory unit, where T is a predetermined threshold;
in response to determining that at least T number of the memory chunks included in the selected memory block of the first memory unit are associated with the first slice of the second memory unit, allocating the selected memory block to the requesting application.