Patent US6278716B1 successfully refreshed from Google Patents.
Patent US6209088B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag