IP Library Granted Patent US 8,166,326
Granted Patent B2
US 8,166,326 · App. 11/936,903 · Granted Apr 24, 2012

Managing power consumption in a computer

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 8,166,326
App. No.
11/936,903
Granted
Apr 24, 2012
Kind
B2
Abstract

Methods, apparatus, and products are disclose for managing power consumption in a computer, the computer including random access memory (‘RAM’) implemented in two or more memory modules, the computer having installed upon it an operating system, the operating system including a power management module, that includes: freeing, by the operating system from one or more of the memory modules, at least the amount of allocated memory in one memory module; selecting, by the operating system, at least one memory module to power down; moving, by the operating system, content of the selected memory module to other memory modules; and powering, by the operating system, down the selected memory module.

Claims (49)

1. A method of managing power consumption in a computer, the computer comprising random access memory (‘RAM’) implemented in two or more memory modules, the method implemented by an operating system of the computer at the behest of a power management module of the computer, the method comprising:

freeing at least an amount of allocated memory in one memory module from one or more other memory modules;

selecting at least one memory module to power down;

moving content of the selected memory module to other memory modules; and

powering down the selected memory module.

2. The method of claim 1 further comprising determining, by the power management module in dependence upon system performance of the computer, whether to power down a memory module.

3. The method of claim 1 wherein freeing at least the amount of allocated memory in one memory module further comprises:

invalidating entries in a page table for a number of frames whose combined size is at least the amount of allocated memory in one memory module; and

for each page table entry number so invalidated, writing the contents of a corresponding frame to disk if the contents were changed since the contents were stored in the corresponding frame.

4. The method of claim 1 wherein selecting at least one memory module to power down further comprises selecting a memory module that bears, in comparison with other memory modules, a largest amount of free memory after freeing, from one or more of the memory modules, at least the amount of allocated memory in one memory module.

5. The method of claim 1 wherein moving content of the selected memory module to other memory modules further comprises, for each frame in the selected memory module having a valid entry in a page table:

selecting, from a list of free frames, a new frame from a memory module other than the selected memory module;

copying to the new frame the contents of a frame in the selected memory module; and

replacing in the page table the frame number of the frame in the selected module with the frame number of the new frame.

6. The method of claim 1 wherein moving content of the selected memory module to other memory modules further comprises, for each frame in the selected memory module having a valid entry in a page table:

adjusting at least one entry in a translation lookaside buffer as needed to reflect the use of the new frame as storage for the contents of the frame in the selected memory module; and

adjusting at least one entry in cache memory as needed to reflect the use of the new frame as storage for the contents of the frame in the selected memory module.

7. The method of claim 1 wherein powering down the selected memory module further comprises instructing a memory management unit of the computer to remove the selected memory module from use.

8. A computer for managing power consumption, the computer comprising random access memory (‘RAM’) implemented in two or more memory modules, the computer having installed upon it an operating system, the operating system including a power management module, the computer comprising a computer processor operatively coupled to the RAM, the RAM having disposed within it computer program instructions capable of:

freeing at least an amount of allocated memory in one memory module from one or more other memory modules;

selecting, by the operating system, at least one memory module to power down;

moving, by the operating system, content of the selected memory module to other memory modules; and

powering down, by the operating system, the selected memory module.

9. The computer of claim 8 wherein the RAM has disposed within it computer program instructions capable of determining, by the power management module in dependence upon system performance of the computer, whether to power down a memory module.

10. The computer of claim 8 wherein freeing at least the amount of allocated memory in one memory module further comprises:

invalidating entries in a page table for a number of frames whose combined size is at least the amount of allocated memory in one memory module; and

for each page table entry number so invalidated, writing the contents of a corresponding frame to disk if the contents were changed since the contents were stored in the corresponding frame.

11. The computer of claim 8 wherein selecting at least one memory module to power down further comprises selecting a memory module that bears, in comparison with other memory modules, a largest amount of free memory after freeing, from one or more of the memory modules, at least the amount of allocated memory in one memory module.

12. The computer of claim 8 wherein moving content of the selected memory module to other memory modules further comprises, for each frame in the selected memory module having a valid entry in a page table:

selecting, from a list of free frames, a new frame from a memory module other than the selected memory module;

copying to the new frame the contents of a frame in the selected memory module; and

replacing in the page table the frame number of the frame in the selected module with the frame number of the new frame.

13. A computer program product for managing power consumption in a computer, the computer comprising random access memory (‘RAM’) implemented in two or more memory modules, the computer having installed upon it an operating system, the operating system including a power management module, the computer program product disposed in a computer readable, recordable medium, the computer program product comprising computer program instructions capable of:

freeing at least an amount of allocated memory in one memory module from one or more other memory modules;

selecting, by the operating system, at least one memory module to power down;

moving, by the operating system, content of the selected memory module to other memory modules; and

powering, by the operating system, down the selected memory module.

14. The computer program product of claim 13 further comprising computer program instructions capable of determining, by the power management module in dependence upon system performance of the computer, whether to power down a memory module.

15. The computer program product of claim 13 wherein freeing at least the amount of allocated memory in one memory module further comprises:

invalidating entries in a page table for a number of frames whose combined size is at least the amount of allocated memory in one memory module; and

for each page table entry number so invalidated, writing the contents of a corresponding frame to disk if the contents were changed since the contents were stored in the corresponding frame.

16. The computer program product of claim 13 wherein selecting at least one memory module to power down further comprises selecting a memory module that bears, in comparison with other memory modules, a largest amount of free memory after freeing, from one or more of the memory modules, at least the amount of allocated memory in one memory module.

17. The computer program product of claim 13 wherein moving content of the selected memory module to other memory modules further comprises, for each frame in the selected memory module having a valid entry in a page table:

selecting, from a list of free frames, a new frame from a memory module other than the selected memory module;

copying to the new frame the contents of a frame in the selected memory module; and

replacing in the page table the frame number of the frame in the selected module with the frame number of the new frame.

18. The computer program product of claim 13 wherein moving content of the selected memory module to other memory modules further comprises, for each frame in the selected memory module having a valid entry in a page table:

adjusting at least one entry in a translation lookaside buffer as needed to reflect the use of the new frame as storage for the contents of the frame in the selected memory module; and

adjusting at least one entry in cache memory as needed to reflect the use of the new frame as storage for the contents of the frame in the selected memory module.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 034194/0280 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2008
From: PAGAN, WILLIAM G.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020495/0434 →