Patent US6278716B1 successfully refreshed from Google Patents.
Patent US6209088B1 successfully refreshed from Google Patents.
US6209088B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Computer hibernation implemented by a computer operating system
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-09-21
•
Granted: 2001-03-27
•
Expires: 2018-09-21
Abstract
Abstract A computer in accordance with the invention includes volatile executable memory and non-volatile secondary storage. An operating system is stored on the secondary storage, and is loaded into executable memory during a computer boot process. The operating system includes a hibernate/awaken function that executes from the executable memory of the computer. The hibernate/awaken function saves the processor state and the executable memory state to the secondary storage prior to a computer power-down and subsequently restores the processor state and the executable memory state from the secondary storage after the computer power-down without rebooting the operating system.
Inventors
- 👤 Ken Reneris
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 22:34
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F15/177; G06F1/00; G06F1/26; G06F1/32; G06F1/3203; G06F9/00; G06F9/06; G06F9/44; G06F9/4401; G06F9/4418
Claims Analysis
Total Claims: 37
Claim 1
Independent Claim
165 words
A method of temporarily suspending a computer's program execution comprising: booting an operating system from secondary storage and executing the operating system from volatile executable memory; executing one or more application programs from the volatile executable memory in conjunction with the operating system; identifying areas of executable memory that will potentially change during a subsequent saving step; creating duplicate areas in the volatile executable memory corresponding to the identified areas of the executable memory; from the operating system booted from secondary storage, saving contents of the volatile executable memory and processor register states to secondary storage prior to a computer power-down; during the saving step, writing the duplicate areas to secondary storage in place of the identified areas; halting execution of the operating system and of the one or more application programs prior to the computer power-down; after the computer power down, restoring the volatile executable memory and processor register states from secondary storage and restarting the operating system and one or more application programs.
Claim 2
Independent Claim
165 words
A method of temporarily suspending a computer's program execution comprising: booting an operating system from secondary storage and executing the operating system from volatile executable memory; executing one or more application programs from the volatile executable memory in conjunction with the operating system; identifying areas of executable memory that will potentially change during a subsequent saving step; creating duplicate areas in the volatile executable memory corresponding to the identified areas of the executable memory; from the operating system booted from secondary storage, saving contents of the volatile executable memory and processor register states to secondary storage prior to a computer power-down; during the saving step, writing the duplicate areas to secondary storage in place of the identified areas; halting execution of the operating system and of the one or more application programs prior to the computer power-down; after the computer power down, restoring the volatile executable memory and processor register states from secondary storage and restarting the operating system and one or more application programs.
Claim 3
Dependent Claim
36 words
A method as recited in claim 1 , further comprising: using a primary device driver for secondary storage except during the saving step; using a simplified device driver for the secondary storage during the saving step.
Claim 4
Dependent Claim
29 words
A method as recited in claim 1 , further comprising instructing operating system device drivers to save their state information to volatile executable memory before performing the saving step.
Claim 5
Dependent Claim
34 words
A method as recited in claim 1 , further comprising: pre-allocating executable memory prior to the computer power-down for use in restoring the volatile executable memory and processor register states after the computer power-down.
Claim 6
Dependent Claim
128 words
A method as recited in claim 1 , wherein the restoring comprises: executing an operating system loader from the executable memory; retrieving areas of executable memory data from secondary storage along with physical memory addresses of the areas, the physical memory addresses designating where in the executable memory the areas are to be restored; restoring the retrieved areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to pre-allocated areas of the executable memory; executing an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 7
Dependent Claim
125 words
In a computer that retrieves and executes instructions from volatile executable memory, a method of temporarily suspending instruction execution and saving volatile executable memory state to non-volatile secondary storage prior to a computer power-down, comprising the following steps: identifying areas of the volatile memory that will potentially change during a subsequent saving step, the identified areas having physical addresses in the volatile memory; creating duplicate areas in the volatile memory corresponding to the identified areas of the volatile memory; saving contents of respective areas of volatile memory along with their physical memory addresses to non-volatile secondary storage; wherein the duplicate areas are written in the place of the corresponding identified areas, along with the physical addresses of the identified areas corresponding to the duplicate areas.
Claim 8
Dependent Claim
125 words
In a computer that retrieves and executes instructions from volatile executable memory, a method of temporarily suspending instruction execution and saving volatile executable memory state to non-volatile secondary storage prior to a computer power-down, comprising the following steps: identifying areas of the volatile memory that will potentially change during a subsequent saving step, the identified areas having physical addresses in the volatile memory; creating duplicate areas in the volatile memory corresponding to the identified areas of the volatile memory; saving contents of respective areas of volatile memory along with their physical memory addresses to non-volatile secondary storage; wherein the duplicate areas are written in the place of the corresponding identified areas, along with the physical addresses of the identified areas corresponding to the duplicate areas.
Claim 9
Dependent Claim
25 words
A method as recited in claim 6 , further comprising a step of allocating memory from an operating system for the duplicate areas of memory.
Claim 10
Dependent Claim
24 words
A method as recited in claim 6 , wherein the steps are performed by an operating system that executes from the volatile executable memory.
Claim 11
Dependent Claim
22 words
A method as recited in claim 6 , wherein the steps are performed by instructions that execute from the volatile executable memory.
Claim 12
Dependent Claim
44 words
A method as recited in claim 6 , further comprising the following additional steps: allocating memory from an operating system for the duplicate areas of memory; pre-allocating further memory from the operating system for use in a subsequent restoration procedure after the computer power-down.
Claim 13
Dependent Claim
28 words
A method as recited in claim 6 , wherein the saving step uses a simplified device driver that writes only to limited areas of the volatile executable memory.
Claim 14
Dependent Claim
144 words
A computer comprising: volatile executable memory; non-volatile secondary storage; a processor that retrieves and executes instructions from the volatile executable memory, such instruction execution resulting in a changing processor state and a changing executable memory state; the processor being programmed to perform a hibernate function prior to a computer power-down, the hibernate function comprising the following steps: identifying areas of the volatile memory that will potentially change during a subsequent saving step, the identified areas having physical addresses in the volatile memory; creating duplicate areas in the volatile memory corresponding to the identified areas of the volatile memory; saving contents of respective areas of volatile memory along with their physical memory addresses to the non-volatile secondary storage; wherein the duplicate areas are written in the place of the identified areas, along with the physical addresses of the identified areas corresponding to the duplicate areas.
Claim 15
Dependent Claim
144 words
A computer comprising: volatile executable memory; non-volatile secondary storage; a processor that retrieves and executes instructions from the volatile executable memory, such instruction execution resulting in a changing processor state and a changing executable memory state; the processor being programmed to perform a hibernate function prior to a computer power-down, the hibernate function comprising the following steps: identifying areas of the volatile memory that will potentially change during a subsequent saving step, the identified areas having physical addresses in the volatile memory; creating duplicate areas in the volatile memory corresponding to the identified areas of the volatile memory; saving contents of respective areas of volatile memory along with their physical memory addresses to the non-volatile secondary storage; wherein the duplicate areas are written in the place of the identified areas, along with the physical addresses of the identified areas corresponding to the duplicate areas.
Claim 16
Dependent Claim
28 words
A computer as recited in claim 12 , the hibernate function comprising the following additional step: allocating memory from an operating system for the duplicate areas of memory.
Claim 17
Dependent Claim
28 words
A computer as recited in claim 12 , further comprising an operating system that executes from the volatile executable memory, wherein the operating system implements the hibernate function.
Claim 18
Dependent Claim
23 words
A computer as recited in claim 12 , wherein the hibernate function is implemented by instructions that execute from the volatile executable memory.
Claim 19
Dependent Claim
47 words
A computer as recited in claim 12 , wherein the hibernate function comprises the following additional steps: allocating memory from an operating system for the duplicate areas of memory; pre-allocating further memory from the operating system for use in a subsequent restoration procedure after the computer power-down.
Claim 20
Dependent Claim
28 words
A computer as recited in claim 12 , wherein the saving step uses a simplified device driver that writes only to limited areas of the volatile executable memory.
Claim 21
Dependent Claim
111 words
One or more computer-readable storage media containing instructions that execute from volatile memory in a computer, the instructions being executable to perform steps comprising: identifying areas of volatile memory that will potentially change during a subsequent saving step, the identified areas having physical memory addresses in the volatile memory; creating duplicate areas in the volatile memory corresponding to the identified areas of the volatile memory; saving contents of respective areas of volatile memory along with their physical memory addresses to non-volatile secondary storage; wherein the duplicate areas are written in the place of the corresponding identified areas, along with the physical addresses of the identified areas corresponding to the duplicate areas.
Claim 22
Dependent Claim
111 words
One or more computer-readable storage media containing instructions that execute from volatile memory in a computer, the instructions being executable to perform steps comprising: identifying areas of volatile memory that will potentially change during a subsequent saving step, the identified areas having physical memory addresses in the volatile memory; creating duplicate areas in the volatile memory corresponding to the identified areas of the volatile memory; saving contents of respective areas of volatile memory along with their physical memory addresses to non-volatile secondary storage; wherein the duplicate areas are written in the place of the corresponding identified areas, along with the physical addresses of the identified areas corresponding to the duplicate areas.
Claim 23
Dependent Claim
31 words
One or more computer-readable storage media as recited in claim 18 , the instructions performing a further step comprising allocating memory from an operating system for the duplicate areas of memory.
Claim 24
Dependent Claim
48 words
One or more computer-readable storage media as recited in claim 18 , the instructions performing further steps comprising: allocating memory from an operating system for the duplicate areas of memory; pre-allocating further memory from the operating system for use in a subsequent restoration procedure after a computer power-down.
Claim 25
Dependent Claim
31 words
One or more computer-readable storage media as recited in claim 18 , wherein the saving step uses a simplified device driver that writes only to limited areas of the volatile memory.
Claim 26
Dependent Claim
153 words
In a computer that retrieves and executes instructions from volatile executable memory, a method of restoring executable memory and restarting instruction execution after a computer power-down, comprising the following steps: executing an operating system loader from the executable memory; retrieving areas of executable memory data from secondary storage along with physical memory addresses of the areas, the physical memory addresses designating where in the executable memory the areas are to be restored; restoring the retrieved areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to areas of the executable memory that were pre-allocated prior to the computer power-down; executing an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 27
Dependent Claim
153 words
In a computer that retrieves and executes instructions from volatile executable memory, a method of restoring executable memory and restarting instruction execution after a computer power-down, comprising the following steps: executing an operating system loader from the executable memory; retrieving areas of executable memory data from secondary storage along with physical memory addresses of the areas, the physical memory addresses designating where in the executable memory the areas are to be restored; restoring the retrieved areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to areas of the executable memory that were pre-allocated prior to the computer power-down; executing an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 28
Dependent Claim
163 words
A computer comprising: volatile executable memory; non-volatile secondary storage; a processor that retrieves and executes instructions from the executable memory, such instruction execution resulting in a changing processor state and a changing executable memory state; an operating system loader from known locations of executable memory; wherein the operating system loader performs steps comprising: retrieving areas of executable memory data from non-volatile secondary storage along with physical memory addresses of the retrieved data areas, the physical addresses designating where in the executable memory the data areas are to be restored; restoring the retrieved data areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to pre-allocated areas of the executable memory; an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 29
Dependent Claim
163 words
A computer comprising: volatile executable memory; non-volatile secondary storage; a processor that retrieves and executes instructions from the executable memory, such instruction execution resulting in a changing processor state and a changing executable memory state; an operating system loader from known locations of executable memory; wherein the operating system loader performs steps comprising: retrieving areas of executable memory data from non-volatile secondary storage along with physical memory addresses of the retrieved data areas, the physical addresses designating where in the executable memory the data areas are to be restored; restoring the retrieved data areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to pre-allocated areas of the executable memory; an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 30
Dependent Claim
146 words
One or more computer-readable storage media containing instructions that execute from volatile memory in a computer, the instructions being executable to perform steps comprising: executing an operating system loader from known locations of executable memory; retrieving areas of executable memory data from non-volatile secondary storage along with physical memory addresses of the retrieved data areas, the physical addresses designating where in the executable memory the data areas are to be restored; restoring the retrieved data areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to pre-allocated areas of the executable memory; executing an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 31
Dependent Claim
146 words
One or more computer-readable storage media containing instructions that execute from volatile memory in a computer, the instructions being executable to perform steps comprising: executing an operating system loader from known locations of executable memory; retrieving areas of executable memory data from non-volatile secondary storage along with physical memory addresses of the retrieved data areas, the physical addresses designating where in the executable memory the data areas are to be restored; restoring the retrieved data areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to pre-allocated areas of the executable memory; executing an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 32
Independent Claim
212 words
A method of temporarily suspending and restarting a computer's program execution, comprising the following steps: identifying areas of executable memory that will potentially change during a subsequent saving step; halting program execution prior to a computer power-down; creating duplicate areas in executable memory corresponding to the identified areas of the executable memory; saving contents of the executable memory and processor register states to secondary storage prior to a computer power-down; wherein the saving step comprises writing the duplicate areas to secondary storage in place of the identified areas; after the computer power down, executing an operating system loader; the operating system loader retrieving areas of executable memory data from secondary storage along with physical memory addresses of the areas, the physical memory addresses designating where in the executable memory the areas are to be restored; the operating system restoring the retrieved areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to preallocated areas of the executable memory; executing an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 33
Independent Claim
212 words
A method of temporarily suspending and restarting a computer's program execution, comprising the following steps: identifying areas of executable memory that will potentially change during a subsequent saving step; halting program execution prior to a computer power-down; creating duplicate areas in executable memory corresponding to the identified areas of the executable memory; saving contents of the executable memory and processor register states to secondary storage prior to a computer power-down; wherein the saving step comprises writing the duplicate areas to secondary storage in place of the identified areas; after the computer power down, executing an operating system loader; the operating system loader retrieving areas of executable memory data from secondary storage along with physical memory addresses of the areas, the physical memory addresses designating where in the executable memory the areas are to be restored; the operating system restoring the retrieved areas to the executable memory, wherein any retrieved areas having physical addresses within the operating system loader portions of the executable memory are written to preallocated areas of the executable memory; executing an awaken loader which copies the pre-allocated areas of the executable memory to the operating system loader portions of the executable memory to restore retrieved areas having physical addresses within the operating system loader portions of the executable memory.
Claim 34
Dependent Claim
24 words
A method as recited in claim 25 , wherein the recited steps are performed by an operating system that executes from the executable memory.
Claim 35
Dependent Claim
22 words
A method as recited in claim 25 , wherein the recited steps are performed by instructions that execute from the executable memory.
Claim 36
Dependent Claim
41 words
A method as recited in claim 25 , further comprising the following additional steps: allocating memory from an operating system for the duplicate areas of memory; pre-allocating further memory from the operating system for subsequent use by the operating system loader.
Claim 37
Dependent Claim
27 words
A method as recited in claim 25 , wherein the saving step uses a simplified device driver that writes only to limited areas of the executable memory.
References Cited (Backward Citations)
US4639864A
Cited
US4458307A
Cited
US4143283A
Cited
US4234920A
Cited
US4726024A
Cited
US4819237A
Cited
US5012406A
Cited
US5430867A
Cited
US5241680A
Cited
US5218607A
Cited
US5560024A
Cited
US5167024A
Cited
US5287525A
Cited
US5355501A
Cited
US5269022A
Cited
US5396635A
Cited
US5175853A
Cited
US5237692A
Cited
US5230074A
Cited
US5414860A
Cited
US5239652A
Cited
US5297282A
Cited
US5835953A
Cited
US5574920A
Cited
US5590342A
Cited
US5715456A
Cited
US5638541A
Cited
US5784628A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2004-03-26 | 2004-09-25 | 2005-03-27 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2008-03-26 | 2008-09-25 | 2009-03-27 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2012-03-26 | 2012-09-25 | 2013-03-27 | $7700.00 | Window Closed / Lapsed |