IP Library Granted Patent US 8,321,703
Granted Patent B2
US 8,321,703 · App. 12/636,732 · Granted Nov 27, 2012

Power aware memory allocation

Assignee: Microsoft Corporation
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,321,703
App. No.
12/636,732
Granted
Nov 27, 2012
Kind
B2
Abstract

A computer system may place memory objects in specific memory physical regions based on energy consumption and performance or other policies. The system may have multiple memory regions at least some of which may be powered down or placed in a low power state during system operation. The memory object may be characterized in terms of access frequency, movability, and desired performance and placed in an appropriate memory region. In some cases, the memory object may be placed in a temporary memory region and later moved to a final memory region for long term placement. The policies may allow some processes to operate while consuming less energy, while other processes may be configured to maximize performance.

Claims (66)

1. A system comprising:

a plurality of memory regions, at least one of said memory regions having at least a low power state and a high power state and operable in different power states separately and independently from other memory regions;

a processor or memory manager configured to manage memory contents by a method comprising:

receiving a first memory object to store in one of said plurality of memory regions;

characterizing said first memory object to determine an anticipated usage pattern and operational characteristics;

identify a first memory region in which to store said first memory object based on a policy defining rules by which said first memory object is placed in one of said plurality of memory regions based on said anticipated usage patterns and said operational characteristics; and

causing said first memory object to be stored in said first memory region.

2. The system of claim 1 , said characterizing being performed by identifying a type of memory object.

3. The system of claim 2 , said type comprising one of a group composed of:

high frequency access;

low frequency access;

unmovable object;

short term object; and

long term object.

4. The system of claim 2 , said type comprising one of a group composed of:

a paged object;

a new database object; and

an executable object.

5. The system of claim 2 , said type being defined in part by metadata associated with said memory object.

6. The system of claim 5 further comprising:

an object analyzer configured to determine said metadata about said memory object.

7. The system of claim 1 , said policy comprising a set of conditions defining when to place objects in a low power region.

8. The system of claim 7 , said set of conditions comprising a condition when said first memory region is full.

9. The system of claim 8 , said method further comprising:

determining that said first memory region has insufficient capacity to store said first memory object;

identifying a second memory object in said first memory region to move to a paging storage; and

causing said second memory object to be moved from said first memory region to said paging storage prior to causing said first memory object to be stored in said first memory region.

10. The system of claim 9 , said method further comprising:

changing said first memory region from a low power state to a high power state.

11. The system of claim 1 , said policy comprising a set of conditions defining when to place objects in a high power region.

12. The system of claim 11 , said method further comprising:

determining that said first memory object is a low frequency memory object.

13. The system of claim 12 , said method further comprising:

causing said first memory object to be stored in said first memory region;

determining that said first memory object has not been accessed in a predetermined time;

identifying a second memory object in said first memory region;

determining that said second memory object has not been accessed in said predetermined time;

causing a second memory region to go from a low power state to a high power state; and

moving said first object and said second object from said first memory region to said second memory region.

14. The system of claim 13 further comprising:

moving a third object from said second memory region to a paging storage while said second memory region is on a high power state.

15. A method performed by a computer processor, said method comprising:

receiving a first memory object to store in one of a plurality of memory regions;

characterizing said first memory object to determine an anticipated usage pattern;

determining operational characteristics for each of said memory regions, at least one of said memory regions being capable of operating at a low power state and a high power state;

receiving a policy defining rules by which said memory objects are placed in said memory regions based on said anticipated usage patterns and said operational characteristics;

identifying a first memory region in which to store said first memory object using said policy; and

causing said first memory object to be stored in said first memory region.

16. The method of claim 15 , said characterizing being determined by analyzing metadata about said first memory object.

17. The method of claim 15 , further comprising:

determining that said first memory object is being infrequently accessed; and

causing said first memory object to be moved to a second memory region.

18. A system comprising:

a plurality of memory regions, at least one of said memory regions having at least a low power state and a high power state and operable in different power states separately and independently from other memory regions;

a memory manager for each of said memory regions having said at low power state and said high power state, said memory manager configured to change from said high power state to a low power state when no access to said memory region has been detected in a predetermined period of time;

a processor configured to perform a method comprising:

receiving a first memory object to store in one of a plurality of memory regions;

characterizing said first memory object to determine an anticipated usage pattern;

determining operational characteristics for each of said memory regions, at least one of said memory regions being capable of operating at a low power state and a high power state;

receiving a policy defining rules by which said memory objects are placed in said memory regions based on said anticipated usage patterns and said operational characteristics;

identifying a first memory region in which to store said first memory object using said policy, said first memory object having a low anticipated usage pattern and said first memory region having a high frequency access operational characteristic; and

causing said first memory object to be stored in said first memory region.

19. The system of claim 18 said method further comprising:

causing said first memory object to be moved to a second memory region, said second memory region having a low frequency access operational characteristic.

20. The system of claim 19 , said method further comprising:

causing a second object contained in said second memory region to be moved to a paging storage.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2009
From: BERARD, STEPHEN R.; MCGRANE, SEAN N.; WORTHINGTON, BRUCE L.
To: MICROSOFT CORPORATION
Reel/Frame 023645/0080 →
Continuity (1)
Related Publication 20110145609A1 · Jun 16, 2011