USPatent applicationPatented

Memory optimization for a computer system having a hibernation mode

Granted 12 Aug 2008 · 4 office actions

Assignee: Intel Corporation

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Randy P. Stanley, Marco Wirasinghe · Examiner: Brian R Peugh · AU 2187 · TC 2100

Life of the application

14 dated events
⤢ drag to zoom20042006200820102012201420162018202020222024ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A computer system that increases performance and reduces power consumption is described. Specifically, the system writes the contents of the system to a non-volatile memory cache before powering down. After repowering the system, the system initiates the load sequence from the memory cache.

Description

5 parts
›FIELD OF THE INVENTION

The present invention pertains to the field of computer design. More particularly, the present invention relates to a method for memory optimization of a computer system.

›BACKGROUND OF THE INVENTION

A computer system typically comprises a main memory and a secondary memory. Main memory or random access memory (RAM) refers to the physical system that is internal to the computer. The computer manipulates only the data that is in main memory. Therefore, programs that are executed and files that are accessed are typically copied into main memory. When the computer system is powered off, the data in main memory is typically not retained. The amount of main memory in a computer system determines how many programs can be executed at one time and how much data can be readily available to a program.

In contrast to main memory, the data in secondary memory is typically retained even after the system is powered off. Secondary memory allows large amounts of data to be stored. Examples of secondary memory include mass storage devices such as hard disks, floppy disks, optical disks, and tapes.

Computer systems set to a “hibernate” mode typically store the contents of main memory and other devices to secondary memory prior to powering down the system. After the system is powered back up, the computer is restored to the same state as the system was in prior to power down.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is an embodiment of a computer system having a cache for a hibernate process;

FIG. 1 B is a diagram of a hibernation process;

FIG. 2 is a flowchart of a computer system that optimizes a hibernate process;

FIG. 3 is another embodiment of a computer system having a cache for a hibernate process; and

FIG. 4 is an embodiment of a computer system having a volatile memory for a hibernate process.

›DETAILED DESCRIPTION · 1 of 2

In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention.

When a system is placed in a hibernation mode, the state of the computer system is stored to a first non-volatile memory or hard disk drive. The computer system state may comprise a central processing unit (CPU), a main memory, a secondary memory, and a chipset. The state of the computer system may be defined by the operating system and contents of the CPU, the RAM, and other devices of the system.

Upon repowering or waking the system from hibernation, the system initiates a load sequence from the hard disk drive. To reduce power consumption and to improve performance, the state of the computer may be saved to and loaded from a second non-volatile memory or level 3 cache rather than the hard disk drive.

A system for reducing power consumption and to improve performance during hibernation is depicted in FIG. 1A . The system may be a mobile computer system or a desktop computer system. CPU 110 is coupled to main memory 120 , level 2 cache 130 , and chipset 140 . The CPU 110 may comprise an on-chip level 1 cache. The level 2 cache 130 temporarily stores data and instructions transferred to and from the CPU 110 . Chipset 140 is coupled to a hard disk drive 160 . Hard disk drive 160 comprises a level 3 cache 150 . The level 3 cache 150 may have a smaller storage capacity than the hard disk drive 160 .

For one embodiment of the invention, the level 3 cache 150 may be a non-volatile memory logically coupled to the hard disk drive 160 . The level 3 cache 150 may have the same address configuration as the hard disk drive 160 . In other words, contents of the system written to level 3 cache 150 are written to hard disk drive 160 via a transparent write-through process.

FIG. 1B depicts a diagram of the embodiment of the hibernation process described above. The system state 170 is written to level 3 cache 150 when the user requests that the system be placed in a hibernation mode. The system state 170 is also written to hard disk drive 160 in a write-through process. When the system is awoken from the hibernation mode, the system state 170 is loaded from the level 3 cache.

For this embodiment of the invention, the level 3 cache 150 may have a storage capacity in the hundreds of megabytes. For example, the level 3 cache 150 may have a storage capacity between 50-2000 megabytes. For another embodiment of the invention, the level 3 cache 150 may have a storage capacity greater than 700 megabytes. The state of the system may be loaded directly from the level 3 cache 150 after hibernation without having to access the hard disk drive 160 . Loading the state of the system from the level 3 cache 150 is faster and consumes less power than loading the state of the system from the hard disk drive 160 . For yet another embodiment of the invention, to further reduce loading time after being awoken from hibernation, the level 3 cache 150 may continue spinning even after powering off the system.

FIG. 2 depicts a flowchart of the hibernation process. In operation 200 , the user requests for the operating system to place the computer system in a hibernation mode. The operating system subsequently gathers the state of the system in operation 210 . The state of the system may include the contents of the CPU 110 , the contents of main memory 120 , and the operating system itself. The state of the system is then written to the level 3 cache 150 in operation 220 . A copy of the state of the system may be stored in hard disk drive 160 . Finally, the system is safely powered off in operation 230 .

Once the system is awoken from hibernation, the state of the computer system prior to hibernation is loaded from the level 3 cache 150 in operation 240 . Thus, contents of the CPU 110 , the contents of the main memory 120 , and the operating system may be reloaded to the computer system without having to access the hard disk drive 160 .

For another embodiment of the invention, FIG. 3 depicts a non-volatile memory that is separately addressable from the hard disk drive. CPU 310 is coupled to main memory 320 , level 2 cache 330 , and chipset 340 . The CPU 310 may comprise an on-chip level 1 cache. The level 2 cache 330 temporarily stores data and instructions transferred to and from the CPU 310 . Chipset 340 is coupled to non-volatile memory 350 and a hard disk drive 360 .

When the user requests to place the computer system of FIG. 3 in the hibernation mode, the state of the computer system is stored into the hard disk drive 360 . In addition, a hibernate mode driver writes the system state to the non-volatile memory 350 . Alternatively, the system state may be written to the non-volatile memory 350 without also being stored in the hard disk drive 360 . The computer system may then be safely powered down. After the system is powered on again, the computer system loads the system state from the non-volatile memory 350 .

For yet another embodiment of the invention, FIG. 4 depicts a volatile memory that is used to store the system state during hibernation. CPU 410 is coupled to main memory 420 , level 2 cache 430 , and chipset 440 . The CPU 410 may comprise an on-chip level 1 cache. The level 2 cache 430 temporarily stores data and instructions transferred to and from the CPU 410 . Chipset 440 is coupled to a volatile memory 450 and a hard disk drive 460 . A power source 455 is coupled to the volatile memory 450 . Power source 455 may be a battery.

For this embodiment of the invention, when a request is made to place the system in the hibernation mode, the system state is stored to the hard drive 460 and the volatile memory 450 . The power source 455 is used to keep the volatile memory 450 from losing its data contents when external power is removed. Therefore, when the system is awoken from hibernation, the system state may be loaded from the volatile memory 450 .

›DETAILED DESCRIPTION · 2 of 2

Embodiments of the present invention may be implemented in hardware or software, or a combination of both. However, preferably, embodiments of the invention may be implemented in computer programs executing on programmable computer systems each comprising at least one processor, a data storage system (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Program code may be applied to input data to perform the functions described herein and generate output information. The output information may be applied to one or more output devices, in known fashion.

Each program may be implemented in a high level procedural or object oriented programming language to communicate with the computer system. However, the programs may be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.

Each such computer program may be stored on a storage media or device (e.g., hard disk drive, floppy disk drive, read only memory (ROM), CD-ROM device, flash memory device, digital versatile disk (DVD), or other storage device) readable by a general or special purpose programmable computer system, for configuring and operating the computer system when the storage media or device is read by the computer system to perform the procedures described herein. Embodiments of the invention may also be considered to be implemented as a machine-readable storage medium, configured for use with a computer system, where the storage medium so configured causes the computer system to operate in a specific and predefined manner to perform the functions described herein.

In the foregoing specification the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modification and changes may be made thereto without departure from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.

Claims as granted

12 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

7 codes
IPC · International Patent Classification
Section G — Physics
  • G06F9/445
  • G06F1/32
  • G06F1/30
  • G06F12/00
USPC · US Patent Classification
711/122711/112713/2

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2003Jan 2004Jul 2004Jan 2005Jul 2005Jan 2006Jul 2006Jan 2007Jul 2007Jan 2008Jul 2008USPTOApplicantNon-final rejectionFinal rejectionNon-final rejectionFinal rejectionNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
5.0 y
1,821 days filing → grant
Office actions
4
non-final + final
Responses
2
1 RCE
Appeals
1
notices of appeal
Examiner
Brian R Peugh
art unit 2187 · TC 2100
Citations: 8 back · 14 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20042006200820102012201420162018202020222024Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock