Fast suspend to disk
First Claim
1. A method of placing a computer system into a low power state, comprising the acts of:
- monitoring a page of system memory for write transactions;
setting a designated bit in a register in response to a page of memory receiving a write transaction;
saving a copy into non-volatile memory of one or more pages of system memory that have had the designated bit set in the associated register; and
clearing the designated bit.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer system supports a fast hibernation operation to save power, while minimizing the amount of time it takes to enter the hibernation mode, and to resume normal operations. The system periodically stores data from system memory to non-volatile memory, such as a hard disk drive, during normal operations when the system is idle. The system includes activity monitors that detect when the data in memory pages is changed. The system periodically sweeps the monitors, and performs save operations to the non-volatile memory. When the system enters hibernation mode, the system determines which memory pages have been changed since the last save operation, and then saves those pages to memory. As an alternative, the system immediately can enter hibernation by supplying power to the memory pages that have not been saved since the last save operation. To implement this, independent switches under the control of the CPU of memory controller selectively turn off power to unsaved memory pages. The system can also implement a fast resume procedure by restoring the memory pages that have the highest priority, and saving the other pages in the background, or as need by the system devices. Prior to entering the hibernation mode, the pages may be prioritized based on various factors, including the last pages used, the pages used most frequently, or the pages that store the most critical data.
-
Citations
51 Claims
-
1. A method of placing a computer system into a low power state, comprising the acts of:
-
monitoring a page of system memory for write transactions;
setting a designated bit in a register in response to a page of memory receiving a write transaction;
saving a copy into non-volatile memory of one or more pages of system memory that have had the designated bit set in the associated register; and
clearing the designated bit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21)
-
-
16. A method of placing a computer system into a hibernation state, comprising the acts of:
-
monitoring a page of system memory for write transactions;
setting a flag in response to a page of memory receiving a write transaction;
determining when the computer system has excess processing capacity;
saving a copy in non-volatile memory of at least one page of system memory that has had the flag set;
initiating entry into a hibernation state;
examining the flag for each page of memory; and
storing pages of memory to the non-volatile memory that have the flag set.
-
-
22. A method of placing a computer system into a hibernation state, comprising the acts of:
-
monitoring a page of system memory for write transactions;
setting a flag in response to a page of memory receiving a write transaction;
saving a copy in non-volatile memory of at least one page of system memory that has had the flag set;
initiating entry into a hibernation state;
examining the flag for each page of memory; and
continuing to provide power to pages of that have the flag set, while discontinuing power to the pages of memory that do not have the flag set. - View Dependent Claims (23, 24, 25, 26, 28, 29, 30, 31, 32)
-
-
27. A method of placing a computer system into a hibernation state, comprising the acts of:
-
calculating a priority value for each page of system memory;
storing the priority value in a designated register;
storing each page of system memory that includes valid data to non-volatile memory;
entering a hibernation state;
resuming from a hibernation state;
reading the priority value from the designated register; and
restoring the page of system memory with the highest priority before restoring any other page of system memory.
-
-
33. A computer system capable of entering a low power mode of operation, comprising:
-
a CPU;
a system memory that is divided into a plurality of pages;
an activity monitor associated with each page of memory;
a non-volatile memory device;
wherein the CPU periodically copies the data stored in a page of system memory to the non-volatile memory during idle periods in normal system operation, based on write transactions detected by the activity monitor. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A computer system capable of entering a low power mode of operation, comprising:
-
a CPU;
a system memory that is divided into a plurality of pages;
a plurality of independently controlled switches that selectively couple each page of memory to a power source;
a non-volatile memory device;
a register associated with each page of memory, and wherein each register indicates if valid data has already been stored to non-volatile memory for the associated page;
wherein the CPU opens the switches to the pages of memory that have already had valid data stored to non-volatile data. - View Dependent Claims (44, 45, 46, 47, 48, 50, 51)
-
-
49. A computer system capable of entering a hibernation mode of operation, comprising:
-
a CPU;
a system memory that is divided into a plurality of pages;
a non-volatile memory device;
a register that includes one or more bits that indicate a priority value assigned to each page of memory;
wherein the CPU stores each page of memory that includes valid data in non-volatile memory when a hibernation mode is initiated, together with the register; and
wherein the CPU restores the page of memory with the highest priority value prior to restoring any other page of memory.
-
Specification