Canada Spends Logo

Explore our Budget 2026 analysis

Grant: Collaborative Research and Development Grants

University of New Brunswick

$46,000.00

Memory organization based on data temperature

FY 2018-19

Summary
Memory management is an essential part of any software system. Programming languages offer different degrees of support. Objects allocated in memory have varying life times. Objects that are accessible from the rootset or from another live object are said to be alive. In contrast, objects that can no longer be accessed are said to be dead. In some languages, for example C, the programmer is responsible to free the memory of dead objects before they become unreachable. In other languages, for example Java, a garbage collector is responsible for collecting dead objects. Some objects persist for a long time but they are seldom accessed; these objects are said to be cold. It has been shown that it is advantageous to move cold object to regions that are not touched by the garbage collector. Since these regions are infrequently accessed, they can be paged out to disk. Sequestering cold objects into special areas will help both the real memory footprint as well as cache coherence.*With the proliferation of persistent memory it is possible to store regions with cold objects in such memory. The term used for persistent storage is NVRAM (Non-Volatile Random Access Memory). NVRAM is less costly than dynamic RAM with slightly higher access time. The main application for NVRAM has been in the area of database transactions. Here, we plan to use it to sequester cold objects in NVRAM. The main objective of the proposed research is to increase the effectiveness of garbage collection by making use of persistent memory. Some properties of cold objects will be investigated. How are cold objects detected? When should they be moved to a cold area? When should they move back from the cold area? When should*they be garbage collected? The answer to these questions will guide the development, implementation, and testing of software generated for inclusion in the garbage collection strategies of the IBM J9 product as well as the OMR Eclipse project.
Program
Collaborative Research and Development Grants
Location
New Brunswick, Canada
Recipient Type
Academia
Type
Grant
Source
NSERC's Awards Data

As published

Application id
503509-2016
Name nom
Dueck, Gerhard
Department département
Computer Science, Faculty of
Organization id
75
Institution établissement
University of New Brunswick
Province en
New Brunswick
Province fr
Nouveau-Brunswick
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2018
Competition year année de concours
2016
Award amount
46000
Program id
CRDPJ
Program name en
Collaborative Research and Development Grants
Program name fr
Subventions de recherche et développement coopérative
Group en
Research partnerships programs
Group fr
Programmes de partenariat
Committee code
96
Committee name en
RPP Internal Decision Cttee
Committee name fr
Cté de décision interne - PPR
Area of application code
1207
Area of application group en
Advancement of knowledge
Area of application group fr
Avancement des connaissances
Area of application en
Information, computer and communication technologies
Area of application fr
Technologie de l'information, des ordinateurs et des réseaux de communications
Research subject code
2720
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Computer systems software
Research subject fr
Logiciel de systèmes informatiques
Partie
2
Nb partie
2
Application title
Memory organization based on data temperature
Keyword
NSERC
Application summary
Memory management is an essential part of any software system. Programming languages offer different degrees of support. Objects allocated in memory have varying life times. Objects that are accessible from the rootset or from another live object are said to be alive. In contrast, objects that can no longer be accessed are said to be dead. In some languages, for example C, the programmer is responsible to free the memory of dead objects before they become unreachable. In other languages, for example Java, a garbage collector is responsible for collecting dead objects. Some objects persist for a long time but they are seldom accessed; these objects are said to be cold. It has been shown that it is advantageous to move cold object to regions that are not touched by the garbage collector. Since these regions are infrequently accessed, they can be paged out to disk. Sequestering cold objects into special areas will help both the real memory footprint as well as cache coherence.*With the proliferation of persistent memory it is possible to store regions with cold objects in such memory. The term used for persistent storage is NVRAM (Non-Volatile Random Access Memory). NVRAM is less costly than dynamic RAM with slightly higher access time. The main application for NVRAM has been in the area of database transactions. Here, we plan to use it to sequester cold objects in NVRAM. The main objective of the proposed research is to increase the effectiveness of garbage collection by making use of persistent memory. Some properties of cold objects will be investigated. How are cold objects detected? When should they be moved to a cold area? When should they move back from the cold area? When should*they be garbage collected? The answer to these questions will guide the development, implementation, and testing of software generated for inclusion in the garbage collection strategies of the IBM J9 product as well as the OMR Eclipse project.