Hardware off-load memory garbage collection acceleration
AssigneeInternational Business Machines Corporation
InventorsJoseph H. Allen, Moshe M. E. Matsa, David Z. Maze, Jeffrey M. Peters
Life of this patent
Estimating the term…
Abstract
A memory allocation message for each primary memory allocation in a primary memory made by a primary processor is received at a hardware memory management module. A representation of each primary memory allocation is allocated within a second memory in response to each memory allocation message. A determination is made, based upon the allocated representations of each primary memory allocation within the second memory, to free a primary memory allocation in the primary memory. A memory free message is sent to the primary processor instructing the primary processor to free the primary memory allocation in the primary memory.
Claims24
A method, comprising:
- receiving, from a primary processor at a hardware memory management coprocessor, a plurality of individual memory allocation messages, where each individual memory allocation message identifies and is received in real time in response to a primary memory allocation in a primary memory made by the primary processor;
- allocating, within a second memory of the hardware memory management coprocessor in response to receiving each individual memory allocation message, a representation of the primary memory allocation identified by the respective received individual memory allocation message, where the hardware memory management coprocessor maintains a real-time memory representation of the primary memory within the second memory;
- determining, based upon the allocated representations of each primary memory allocation within the second memory, to free at least one primary memory allocation in the primary memory of the primary processor;
- and
- sending, for each of the at least one primary memory allocation in the primary memory to free, an individual memory free message to the primary processor instructing the primary processor to free the primary memory allocation in the primary memory referenced by the respective memory free message.
A system, comprising:
- a bi-directional message queue;
- a primary processor operatively coupled to a primary memory and the bi- directional message queue;
- and
- a hardware memory management coprocessor operatively coupled to a second memory and the bi-directional message queue, and programmed to:
- receive, from the primary processor via the bi-directional message queue, a plurality of individual memory allocation messages, where each individual memory allocation message identifies and is received in real time in response to a primary memory allocation in the primary memory made by the primary processor;
- allocate, within the second memory in response to receiving each individual memory allocation message, a representation of the primary memory allocation identified by the respective received individual memory allocation message, the hardware memory management coprocessor being programmed to maintain a real-time memory representation of the primary memory within the second memory;
- determine, based upon the allocated representations of each primary memory allocation within the second memory, to free at least one primary memory allocation in the primary memory of the primary processor;
- and
- send, via the bi-directional message queue for each of the at least one primary memory allocation in the primary memory to free, an individual memory free message to the primary processor instructing the primary processor to free the primary memory allocation in the primary memory referenced by the respective memory free message.
A computer program product comprising a computer readable storage medium including computer readable program code, wherein the computer readable program code when executed on a computer causes the computer to:
- receive, from a primary processor at a hardware memory management coprocessor, a plurality of individual memory allocation messages, where each individual memory allocation message identifies and is received in real time in response to a primary memory allocation in a primary memory made by the primary processor;
- allocate, within a second memory of the hardware memory management coprocessor in response to receiving each individual memory allocation message, a representation of the primary memory allocation identified by the respective received individual memory allocation message, where the hardware memory management coprocessor maintains a real-time memory representation of the primary memory within the second memory;
- determine, based upon the allocated representations of each primary memory allocation within the second memory, to free at least one primary memory allocation in the primary memory of the primary processor;
- and
- send, for each of the at least one primary memory allocation in the primary memory to free, an individual memory free message to the primary processor instructing the primary processor to free the primary memory allocation in the primary memory referenced by the respective memory free message.
Dependencies are inferred from the claim text.