IP Library Granted Patent US 9,086,882
Granted Patent B2
US 9,086,882 · App. 13/568,581 · Granted Jul 21, 2015

DRAM energy use optimization using application information

Inventor: Indrajit Poddar (Sewickley, PA)
Assignee: International Business Machines Corporation
G06F1/3275G06F12/08G06F12/123G06F2212/1028Y02B60/1225Y02B60/1228
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,086,882
App. No.
13/568,581
Granted
Jul 21, 2015
Kind
B2
Abstract

An application program identifies a plurality of least recently accessed constructs of the application program that reside in DRAM memory. The application program causes the aggregation of at least a portion of the identified least recently accessed constructs onto one or more pages of the DRAM memory. The application program then causes the one or more memory pages of the DRAM memory to be put into self-refresh operation mode.

Claims (37)

1. A method for managing dynamic random access memory (DRAM) energy consumption, the method comprising the steps of:

an application program identifying a plurality of least recently accessed constructs of the application program that reside in DRAM memory, wherein the identified plurality of least recently accessed constructs comprise web objects associated with an in-memory object caching system, database transactions associated with an in-memory database application, and in-memory database tables associated with an in-memory database application, wherein each construct within the identified plurality of least recently accessed constructs has an associated entry in a least recently used (LRU) table, wherein the entry includes a timestamp representing the last time each construct was accessed, a self-refresh indicator to indicate whether an object is on a virtual page for which a request to put the virtual page into a self-refresh mode has been made, and an expiration time equal to a default value or never;

the application program causing the aggregation of at least a portion of the identified least recently accessed constructs onto one or more pages of the DRAM memory based on the associated entry of each identified least recently accessed construct within the portion of the identified least recently accessed constructs;

the application program causing the one or more memory pages of the DRAM memory to be put into self-refresh operation mode;

determining a number of portions of the DRAM memory being taken out of self-refresh operation mode within a period of time; and

indicating whether a plurality of additional physical memory should be allocated to an in-memory cache associated with the identified plurality of least recently accessed constructs based on the determining the number of portions of the DRAM memory being taken out of self-refresh operation mode within the period of time.

2. The method in accordance with claim 1 , wherein the aggregation onto one or more memory pages comprises:

identifying a memory page that contains one or more of the identified plurality of least recently accessed constructs; and

swapping other identified least recently accessed constructs onto the identified memory page until the identified memory page contains only identified least recently accessed constructs.

3. The method in accordance with claim 2 , wherein the swapping of other identified least recently accessed constructs onto the identified memory page until the identified memory page contains only identified least recently accessed constructs comprises:

overwriting expired constructs on the identified memory page with the other identified least recently accessed constructs.

4. A computer program product for managing dynamic random access memory (DRAM) energy consumption, the computer program product comprising:

one or more non-transitory computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising:

application program instructions to identify a plurality of least recently accessed constructs of the application program that reside in DRAM memory, wherein the identified plurality of least recently accessed constructs comprise web objects associated with an in-memory object caching system, database transactions associated with an in-memory database application, and in-memory database tables associated with an in-memory database application, wherein each construct within the identified plurality of least recently accessed constructs has an associated entry in a least recently used (LRU) table, wherein the entry includes a timestamp representing the last time each construct was accessed, a self-refresh indicator to indicate whether an object is on a virtual page for which a request to put the virtual page into a self-refresh mode has been made, and an expiration time equal to a default value or never;

application program instructions to cause the aggregation of at least a portion of the identified least recently accessed constructs onto one or more pages of the DRAM memory based on the associated entry of each identified least recently accessed construct within the portion of the identified least recently accessed constructs;

application program instructions to cause the one or more memory pages of the DRAM memory to be put into self-refresh operation mode;

determining a number of portions of the DRAM memory being taken out of self-refresh operation mode within a period of time; and

indicating whether a plurality of additional physical memory should be allocated to an in-memory cache associated with the identified plurality of least recently accessed constructs based on the determining the number of portions of the DRAM memory being taken out of self-refresh operation mode within the period of time.

5. The computer program product in accordance with claim 4 , wherein the application program instructions to cause the aggregation onto one or more memory pages comprises:

application program instructions to identify a memory page that contains one or more of the identified plurality of least recently accessed constructs; and

application program instructions to swap other identified least recently accessed constructs onto the identified memory page until the identified memory page contains only identified least recently accessed constructs.

6. The computer program product in accordance with claim 5 , wherein the application program instructions to swap other identified least recently accessed constructs onto the identified memory page until the identified memory page contains only identified least recently accessed constructs comprises:

application program instructions to overwrite expired constructs on the identified memory page with the other identified least recently accessed constructs.

7. A computer system for managing dynamic random access memory (DRAM) energy consumption, the computer system comprising:

one or more computer processors;

one or more non-transitory computer-readable storage media;

program instructions stored on the computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

application program instructions to identify a plurality of least recently accessed constructs of the application program that reside in DRAM memory, wherein the identified plurality of least recently accessed constructs comprise web objects associated with an in-memory object caching system, database transactions associated with an in-memory database application, and in-memory database tables associated with an in-memory database application, wherein each construct within the identified plurality of least recently accessed constructs has an associated entry in a least recently used (LRU) table, wherein the entry includes a timestamp representing the last time each construct was accessed, a self-refresh indicator to indicate whether an object is on a virtual page for which a request to put the virtual page into a self-refresh mode has been made, and an expiration time equal to a default value or never;

application program instructions to cause the aggregation of at least a portion of the identified least recently accessed constructs onto one or more pages of the DRAM memory based on the associated entry of each identified least recently accessed construct within the portion of the identified least recently accessed constructs;

application program instructions to cause the one or more memory pages of the DRAM memory to be put into self-refresh operation mode;

determining a number of portions of the DRAM memory being taken out of self-refresh operation mode within a period of time; and

indicating whether a plurality of additional physical memory should be allocated to an in-memory cache associated with the identified plurality of least recently accessed constructs based on the determining the number of portions of the DRAM memory being taken out of self-refresh operation mode within the period of time.

8. The computer system in accordance with claim 7 , wherein the application program instructions to cause the aggregation onto one or more memory pages comprises:

program instructions to identify a memory page that contains one or more of the identified plurality of least recently accessed constructs; and

program instructions to swap other identified least recently accessed constructs onto the identified memory page until the identified memory page contains only identified least recently accessed constructs.

9. The computer system in accordance with claim 8 , wherein the application program instructions to swap other identified least recently accessed constructs onto the identified memory page until the identified memory page contains only identified least recently accessed constructs comprises:

application program instructions to overwrite expired constructs on the identified memory page with the other identified least recently accessed constructs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2012
From: PODDAR, INDRAJIT
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028740/0028 →
Continuity (1)
Related Publication 20140047176A1 · Feb 13, 2014