USPatent applicationPatented

Managing power states in a computer system

Granted 13 Jan 2004 · 6 office actions

Application· this page
8989123
filed 11 Dec 1997
Publication
Not published
not published
Patent
US 6,678,831
granted 13 Jan 2004

Life of the application

21 dated events
⤢ drag to zoom19982000200220042006200820102012201420162018ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A computer system having first and second low power states includes a controller (such as a BIOS routine) that can generate a request to transition to the first low power state (e.g., Suspend state defined in the Advanced Power Management or APM. Standard) in response to activation of predefined events (e.g., a time-out event or a user-initiated event). A program receiving the request can deny the request and instead causes the system to transition to a second low power state (e.g., the APM Standby state).

Description

5 parts
›BACKGROUND

The invention relates to managing power states in a computer system.

In a continuing effort to reduce the amount of power consumed by computer systems, various power management solutions exist. For example, a computer system can be placed into a low power state in response to a predetermined period of inactivity. Thus, if peripheral devices on a computer system have been inactive for the predetermined period, a system management interrupt is generated to invoke a handler that places components in the system in reduced power consumption states (such as shutting off clocks to components, removing power from components, blanking the video display, or spinning down the hard drive).

The Advanced Power Management (APM) Standard (Revision 1.2) defines several levels of power states having different levels of power consumption. The APM standard defines the following power states in decreasing order of power consumption: Full On (no power management); APM Enabled (system is on but unused devices may not be powered); APM Standby (one reduced level of power consumption); APM Suspend (another reduced level of power consumption), and Off (system is not working and power supply is off). In the Standby state, the CPU clock is slowed or stopped, and many devices are placed in a lower power mode; however, most operational parameters are retained so that recovery from the APM Standby state can appear almost instantaneous to the user. In the Suspend state, the system is in a state of greater power savings, in which power can be cut off from most power managed devices, the CPU clock is stopped, the CPU core is in its minimum power state, and clock is stopped (which causes system bus devices to be disabled).

By disabling many of the devices in the system in the APM Suspend mode, a device may be unable to respond to an external event received at an input port of the computer system, or alternatively, the device may receive the event but may be unable to notify the rest of the system of the event (such as by interrupt). As a result, some external events may be missed by the computer system when it is in a low power mode such as the APM Suspend state.

›SUMMARY

Generally, the invention is directed to switching to a second low power state even though a first low power state has been requested in a computer system.

The invention may have one or more of the following advantages. By switching the computer system to the second power state rather than the first power state (in which the first power state can be a more reduced power consumption state than the second power state), certain devices can remain enabled so that they can respond to specified events and not miss those events. Power savings can thus be achieved while still maintaining responsiveness of the computer system to specified events.

In general, in one aspect, the invention features a computer system having first and second low power states. The computer system includes a processor, a controller configured to generate a request to transition to the first low power state, and a program executable by the processor and configured to respond to the request by causing the system to transition to the second low power state.

In general, in another aspect, the invention features a method of managing a computer's power state, including generating a request to enter a first low power state. The request to enter the first low power state is denied, and in response to denying the request, a notification is issued to enter a second low prostate.

In general, in another aspect, the invention features a method that generates a request to switch power saving states of a computer from a first state to a second state. The request is acted on by instead switching to a third power state.

In general, in another aspect, the invention features a computer system having a processor, a first program executable by the processor to detect a predefined event and to generate a power savings request in response to detection of the event. A second program executable by the processor intercepts the request and denies the request.

In general, in another aspect, the invention features a computer-readable storage medium for use in a computer system having first and second low power states. The storage medium contains instructions for causing a computer system to generate a request to enter into the first low power state, to deny the request to enter the first low power state, and to issue a notification to enter the second low power state in response to the denying of the request.

Other features and advantages will become apparent from the following description and from the claims.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system.

FIG. 2 is a block diagram of software layers in the computer system.

FIG. 3 is a flow diagram of a BIOS routine and an operating system device driver in the computer system.

FIG. 4 is a flow diagram of a power management applet in the computer system.

›DETAILED DESCRIPTION · 1 of 2

Referring to FIG. 1, an exemplary computer system 10 having power management capabilities includes four power levels as defined by the Advanced Power Management (APM) Standard: ON, Standby, Suspend, or OFF. The ON state can be either the APM Full ON state or the APM Enabled state.

The system 10 includes a central processing unit (CPU) 100 and a main memory 102 , both coupled to a system bus 106 (which can be, for example, a Peripheral Component Interconnect or PCI bus) through a host bridge 104 . Various components are connected to the system bus 106 , including a video controller 110 connected to a video display 108 and a network controller 142 connected to a network (not shown) through a interface port 144 .

The computer system 10 also includes a system controller 116 (such as the PCI-TO-ISA/IDE XCELERATOR or PIIX 4 chip from Intel Corporation) connected between the system bus 106 and an expansion bus 128 , which can be, for example, an Industry Standard Architecture (ISA) bus or an Extended Industry Standard Architecture (EISA) bus. The system controller 116 includes a system bridge 120 that provides bridge functions between the system bus 106 and the expansion bus 128 . The system controller 116 also includes a hard disk controller 114 that controls a hard disk subsystem 112 .

In addition, the system controller 116 includes a system power management controller 118 and a system reset controller 122 that are part of the power management control of the computer system 10 . The system reset controller 122 is connected to a power supply 124 of the computer system 10 to control activation of supply voltages to components in the system. The system power management controller 118 includes power management registers that can be set by software (e.g., the system BIOS) to set the computer system 10 hardware to the appropriate power savings states. The power management controller 118 also includes inputs to receive activation of specified events, such as depression of a Bezel or power button 126 located on the computer system housing (not shown) or a time-out event issued by a timer (not shown) that monitors for system activity. Depression of the Bezel button 126 or a time-out event causes the system power management controller 118 to issue a system management interrupt (over line SMI_) to the CPU 100 , which in turn causes a system management interrupt handler to be invoked. The system management interrupt handler (which can be part of an APM BIOS routine 210 in the system BIOS 200 shown in FIG. 2) controls switching the computer system power states.

Several bus devices are connected to the expansion bus 128 , including expansion slots 130 and an I/O controller 132 having interface ports to a floppy drive 134 , a keyboard 136 , and a pointer device 138 . A modem 150 is connected to the expansion bus 128 to communicate over a telephone line (not shown) to other systems, and an audio subsystem 152 is connected to the bus 128 to provide sound capabilities.

A non-volatile RAM (NVRAM) 140 , which can be implemented with an EEPROM or flash memory, is also connected to the expansion bus 128 . The NVRAM 140 can store the power-up routines for the computer system 10 , including the system BIOS 200 . Portions of the system BIOS 200 (such as the APM BIOS routine 210 ) can also be invoked during operation of the computer system 10 , such as in response to a system management interrupt. The APM BIOS routine 210 can communicate with other power management programs (described below) to control the power state of the system 10 .

Referring to FIG. 2, power management of the computer system 10 is performed by the APM BIOS routine 210 in the system BIOS layer 200 ; an APM device driver 204 and an operating system 206 (e.g., Windows 95®) that are part of an operating system layer 201 of the computer system 10 ; APM-aware device drivers 205 that are also part of the operating system layer 201 ; a power management applet 202 that can also be considered as part of the operating system layer 201 ; and APM-aware applications 212 A- 212 N. The APM BIOS 210 acts as the hardware-specific power management module, the APM device driver 204 is the operating system-dependent module that cooperates with the APM BIOS 210 to enforce power management policy, and the APM-aware applications 212 manage corresponding devices in the computer system 10 . An APM-aware application 212 can monitor for device inactivity as well as for power management events. Power management events are communicated by the APM device driver 204 to the APM-aware application 212 . An APM-aware application 212 can also save device information upon system suspension, which can be restored when the system resumes to its operating state.

Communication between the APM BIOS 210 and the APM device driver 204 occur through an APM interface 203 as defined by the APM Standard. Power management events are communicated from the APM BIOS 210 to the APM device driver 204 through a polling mechanism, in which the APM device driver 204 periodically (e.g., every one second) polls the APM BIOS 210 to determine if there is a power management event that needs to be processed. The APM device driver 204 can also issue function calls to the APM BIOS 210 to notify the APM BIOS 210 of certain requirements and conditions (such as to notify that a request to place the system into a low power state has been accepted).

Referring also to FIG. 3, in response to a time-out event (due to inactivity of system components) or a user-initiated event (e.g., depression of the Bezel button 126 ) while the system is in the ON state (step 300 ), an SMI is generated to invoke an SMI handler that is part of the APM BIOS 210 . The APM BIOS 210 generates a system suspend request (step 303 ), which is received by the APM device driver 204 when it polls the APM BIOS 210 through the APM interface 203 .

If a suspend request is detected, the APM driver 204 issues a suspend request to all device drivers and APM-aware applications 212 in the computer system 10 (step 304 ). The APM device driver 204 next determines it the suspend request was denied by the power management applet 202 or by other APM-aware applications or device drivers (step 306 ).

›DETAILED DESCRIPTION · 2 of 2

One function of the power management applet 202 is to prevent the system 10 from switching to the Suspend state if certain conditions exist. One such condition is that a power setting entry 214 in an operating system registry 208 (such as the registry associated with the Windows 95® operating system) is set to predefined values. By appropriately programming the power setting entry 214 , the applet 202 can deny all requests to enter the Suspend state, which is advantageous if certain devices in the system 10 need to remain enabled to receive external events and to notify the rest of the system 10 of the external event. One such device is the network controller 142 (FIG. 1 ), which can receive network messages through a network port 144 . If the system 10 is in Suspend mode, a clock 101 from the host bridge 104 to the CPU 100 is disabled, which prevents the CPU 100 from receiving interrupts from system devices (e.g., the network controller 142 ) in response to receipt of external events.

Thus, if the applet 202 , an application 212 , or device driver 205 has denied the suspend request, the APM driver 204 issues an APM Standby call to the APM BIOS 210 (step 308 ). The APM device driver 204 next checks to determine if the Standby request has been denied by an APM-aware device driver 205 (step 314 ). If not, the APM device driver 204 indicates that the Standby request has been accepted to the APM BIOS 210 (step 318 ). As a result, the APM BIOS 210 places the computer system 10 into Standby mode (step 310 ). The APM BIOS 210 disables features of certain devices to reduce power consumption (e.g., blanking the video display 108 , spinning down the hard disk drive 112 ). A halt instruction can also be issued to the CPU 100 , which can respond by stopping or reducing the frequency of its internal clocks. In Standby state, the clock 101 to the CPU 100 remains enabled and interrupts on the system bus 106 can be received by the CPU 100 . Thus, external events received by the network controller 142 or another device can be processed. The computer system 10 remains in the Standby state until a wake-up event is received (step 312 ), such as an event generated when a key on the keyboard 136 is pressed, the pointer device 138 is moved, a ring is received by the modem 150 , or some type of power button is pressed (e.g., the Bezel button 126 ).

If the Standby request is denied, then system power savings is denied and the power savings requests are cleared (step 316 ), and the system 10 remains in the ON state (step 300 ).

If the suspend request is not denied by the power management applet 202 , or an APM-aware application or device driver in step 306 , the APM driver 204 a success indication is transmitted by the APM driver 204 to the APM BIOS 210 . In response, the APM BIOS 210 places the system into the Suspend state (step 320 ). The APM BIOS 210 accomplishes this by setting certain power management registers to predefined values in the power management controller 118 , which can stop the CPU's clock, disable the audio subsystem 152 , and spin down the hard disk drive subsystem 112 . The APM BIOS 210 can also program the video controller's power management registers to certain values to place the video display 108 in its lowest power mode and to turn off the RAMDAC in the video controller 106 .

The computer system 10 remains in the Suspend state until a wake-up event is received (step 322 ), at which point the computer system 10 transitions back to the ON state (step 300 ).

Referring to FIG. 4, the flow of portions of the power management applet 202 is shown. The power management applet 202 determines if an APM suspend query issued by the APM device driver 204 has been received (step 400 ). If so, the power management applet 202 determines the power saving settings in the operating system registry 208 . The power saving settings are set in the registry entry 214 , and can include one of three values: high, medium, or low. The power setting entry 214 in the registry 208 can be set by the user through the operating system 206 or automatically by an application. If the power saving setting 214 is set to high, then all suspend and standby requests are accepted. If the setting is at medium, then only standby requests are accepted and suspend requests are rejected. If the setting is low, then all power savings requests are rejected.

Alternatively, power settings can be stored in other storage elements in the system 10 .

The power management applet 202 determines if the power setting entry 214 in the registry 208 is set at medium or low (step 404 ). If so, then a parameter PM_APP is returned false to the APM device driver 204 to indicate that the suspend query should be denied. On the other hand, if the power setting is neither medium nor low (i.e., it is high), the power management applet 202 returns the parameter PM_APP in a true state. The state of the parameter PM_APP is received by the APM device driver 204 , which responds accordingly as described in FIG. 3 .

In this manner, the applet 202 can control whether the computer system can transition to the APM Suspend state. If certain devices, e.g., a network controller, need to remain enabled (i.e., the devices can notify the rest of the system of a received event), the applet 202 is set to deny all requests to transition to the Suspend state. If Suspend request is denied by the applet 202 , the system transitions to an alternative power savings state, which allows some power savings but yet allows certain devices to remain enabled to receive external events and notify the rest of the system of the external event.

Other embodiments are within the scope of the following claims. For example, although APM power states have been described, other computer power states can also be used with embodiments of the invention. The order of steps described for the software routines can be varied and still achieve desirable results. Components in the illustrated computer system are shown connected in a specific manner; other configurations are possible.

Claims as granted

38 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

6 codes
IPC · International Patent Classification
Section G — Physics
  • G06F1/26
  • G06F1/32
USPC · US Patent Classification
713/320713/340713/300713/323

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 zoom1998199920002001200220032004USPTOApplicantNon-final rejectionFinal rejectionNon-final rejectionResponse after non-finalRequest for continued examinationResponse after non-finalNotice of appeal filed
USPTOApplicanthover for detail · click to open
Pendency
6.1 y
2,224 days filing → grant
Office actions
6
non-final + final
Responses
5
1 RCE
Examiner
Tim Vo
art unit 2189 · TC 2100
Citations: 11 back · 53 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 zoom19982000200220042006200820102012201420162018Owner 1Owner 3
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