« ZurückWeiter »
Power Button, Dock Status, Lid Status, PCMIA Status Change, Ring Indicator
INTELLIGENT POWER MANAGEMENT
INTERFACE FOR COMPUTER SYSTEM
TECHNICAL FIELD 5
The present invention relates to power management in computer systems and more particularly to a computer system where the operating system is power management aware.
Computer systems have evolved over the recent past with technical improvements that have resulted in many new devices or peripherals such as CD-ROMs, portable printers, speakers, color high definition displays and audio sound cards and video adapters becoming widely available. With these devices, together with the enhanced microprocessor at the heart of the computer system, power consumption, or more particularly, power management, has become an issue. Thus it has become common practice to utilize one of 20 several available power management schemes to manage power consumption of the computer system.
Power management schemes have been widely adopted to permit unused devices to be placed into a sleep state even 2J when the computer system is active with one or more tasks. For example, if the computer system is engaged in a word processing application program, the screen and processor will most likely be in active use. However, since the disk drive, CD-ROM, printers and many of the other devices will 3Q rarely be activated by the application program, these devices may be placed the sleep state to conserve power. When the application program requires, by way of example, a write or read to disk, the disk drive is awakened and returned to its full operational, and high power, state for the data transfer 3J operation.
In one existing power management scheme, power management has been performed primarily at the device level. With this scheme, power management is independent of the operating system so devices are compatible with a variety of 40 computer systems. Under this scheme, the power state of each device is set by its device driver based on preconfigured profiles determined by the user or by system default states stored in the system Basic Input/Output System (BIOS) memory. When a power state of a device is to 45 be changed, the device driver generates a system interrupt which halts operation of the processor's current task so that new power state data may transferred to the device driver. The change in power state occurs independently of current operating system activity. 50
System level interrupts, however, suffer from numerous disadvantages. Specifically, system interrupts may cause loss of incoming data during the period when the processor is responding to the interrupt. Loss of data may be merely annoying or may create significant errors if the computer 55 system is unable to process data. By way of example, a universal serial bus (USB) allows the keyboard, modem, CRT display device, mouse and other devices to communicate through a multiplexed serial link that transmits information in one millisecond frames. Since the information is 60 parsed, data may be lost during the time the central processor is responding to a system interrupt because the USB is highly time dependent and cannot tolerate the unknown and unanticipated delay caused by system interrupts.
Further, as operating systems and application programs 65 become more powerful and sophisticated, the decentralized nature of operating system transparent power management
makes it difficult to anticipate when the interrupts will occur. Thus, unscheduled interrupts may degrade performance of some application programs.
Further still, decentralized power management complicates the gathering of information relating real-time operational parameters of the computer system so that contextsensitive operating frequency and power levels are selected. For example, if the ambient temperature is high, power may be conserved by reducing the operating frequency and/or the voltage applied to the central processor or other devices if high speed is not necessary.
More recently, certain computer manufacturers and an operating system developer have proposed a specification for evolving power management functions to operating system control. The specification, known as the Advanced Configuration and Power Interface ("ACPI") specifies the interface requirements between devices and the operating system. This interface sets forth the technical standards and requirements so that the operating system controls power management and device configuration as described in the publication: Advanced Configuration and Power Interface ("ACPI"), draft revision 0.99, dated Dec. 16, 1996 and available from Intel Corporation, Toshiba Corp. or Microsoft Corporation, which publication is incorporated herein by reference.
Referring now to Prior Art FIG. 1, an architectural diagram describing the relationship of the software and hardware components of the ACPI interface is shown. The ACPI interface includes five basic components: the operating system kernel 112 (which includes operating system power management software code 114), ACPI dual-ported registers 116, ACPI BIOS 118, ACPI tables 120, and an ACPI driver 122. ACPI driver 122 provides the interface between ACPI registers 116, ACPI BIOS 118, ACPI tables 120, and OSPM system code 114. ACPI registers 116, ACPI BIOS 118, and ACPI tables 120, are coupled to platform hardware 124 which includes, by way of example, a microprocessor, memory, and a plurality of peripherals, or devices, such as disk drives, displays, a keyboard, a mouse etc. As is well understood in the art, operating system kernel 112 interfaces with platform hardware 124 by way of one or more device drivers 126, once platform hardware 124 has been initialized. Initialization data for each device is stored in system BIOS 128 and is automatically transferred to platform hardware 124 and device drivers 126 when power is initially applied to the computer system.
Under the ACPI scheme, power management functions will be controlled by OSPM system code 114. OSPM system code 114 issues commands through ACPI driver 122 and receives information regarding platform hardware operational and power states in return. ACPI tables 120 contain necessary information that permits the operating system to recover details on the configuration of the platform upon power-up initialization. Accordingly, upon initial power-up, ACPI BIOS 118 supplies information from ACPI tables 120 to ACPI driver 122. Based on information held in ACPI registers 116 and the information available to OSPM system code 114, real-time power management of the hardware platform is controlled by operating system kernel 112. In this manner, unanticipated system interrupts of unknown duration are avoided or executed in a controlled manner.
The contemplated architecture, however, suffers from numerous disadvantages. For example, the architecture is not yet completely defined and future changes may negatively impact proper interface of devices designed to function in accordance with preliminary drafts of the specifica3
tion. Also, since specifications are rarely static, future changes in the specifications will likely require the owner of the computer system to upgrade existing hardware to match or take advantage of any new features that may be later implemented. Still further, legacy devices that currently 5 handle power management functions at the device level are unable to be efficiently interfaced with the ACPI-based operating system kernel 112.
Further, there is only limited provision set forth in the specification by which hardware manufacturers can imple- 1° ment custom power management functions or add features to devices or the microprocessor itself since the ACPI BIOS and ACPI driver control must conform to the published standards. Specifically, the ACPI interface incorporates pseudo-code (often referred to as "P-code") to implement :5 predefined control methods. Since interpretation of P-code is slow and requires the involvement of the central processing unit, it is desirable to provide a mechanism that is independent from the operating system by which innovative power management functions may be added while remaining fully 20 compliant with the ACPI interface standards.
Accordingly, it is desirable to provide a migration path for legacy devices (which utilize system interrupts) to comply with the ACPI interface standards and to add novel power management functions while remaining fully compliant with 25 the ACPI interface standards.
DISCLOSURE OF THE INVENTION
The present invention provides a migration path for 3Q legacy devices (which utilize system interrupts) to comply with the ACPI interface standards and to add novel power management functions while remaining fully compliant with the ACPI interface standards.
More specifically, the present invention discloses a 35 method and apparatus for managing power consumption in a computer system that is compliant with the proposed Advanced Configuration and Power Interface (ACPI) specification. In one embodiment, a power management processor is sandwiched between the platform hardware and the 40 ACPI register layer to process all power management events initiated by power management interrupts (i.e. either system management interrupts (SMI) or system control interrupts (SCI)). The processor remains transparent to the user and the operating system while implementing routine power man- 45 agement functions together with sophisticated power management features that may be implemented independent from operating system control.
The processor of the present invention performs complex power management procedures based upon simple and quick 50 stimuli from the ACPI interface. Thus, the operating system need not suspend other threads to process inefficient P-code since power management procedures are off-loaded to the processor. By way of example, the processor may control system voltage and operating frequency based upon the 55 operating temperature of the computer system without operating system knowledge or awareness rather. That is, the processor of the present invention performs the power management procedures rather than utilizing the ACPI mechanisms to implement the change. Additionally, such go power management changes to platform hardware parameters are carried out by the processor of the present invention without requiring the computer system's central processing unit to suspend operation of its other tasks.
Another advantage of the present invention is the creation 65 of closed loops which exclude involvement by the operating system. Advantageously, no changes to the operating system
are required to implement the closed loops of the present invention. The processor of the present invention traps selected system interrupts and provides the environment in which manufacturers may add proprietary and innovative power management and control schemes independent of the operating system.
In addition to power management, the processor of the present invention may act as an embedded controller for communications between user input devices such as a mouse, un-scanned and scanned keyboards, CD-ROM etc. The processor of the present invention is also well suited for communicating with the universal serial bus (USB) or for implementing real-time clock functions.
Still another advantage of the present invention is the flexibility to adapt to changes that may adopted by the ACPI specification without requiring costly additions or modifications to the devices or other hardware elements of the computer system.
These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention:
Prior Art FIG. 1 is an architectural diagram describing the relationship of the software and hardware components of the ACPI interface.
FIG. 2 illustrates an exemplary computer system used as a part of an intelligent power management interface system in accordance with one embodiment of the present invention.
FIG. 3 illustrates the hardware components of an exemplary computer system in accordance with the present claimed invention.
FIG. 4 is an architectural diagram illustrating the relationship of the software and hardware components in accordance with the present claimed invention.
FIG. 5 is a functional block diagram illustrating the interface between the host microprocessor, the ACPI registers, and a power management processor in accordance with the present claimed invention.
BEST MODE FOR CARRYING OUT THE
In the following description of the preferred embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown, by way of illustration, a specific embodiment in which the invention may be practiced. It is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present invention. For purposes of illustration the following description describes the present invention as used with an operating system with power management capabilities. However, it is contemplated that the present invention can be used as a part of computer systems in conjunction with other operating systems that are not inherently aware of power management functions.
Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout in the drawings to refer to the same or like components.
Some portions of the detailed descriptions which follow are presented in terms of procedures, logic blocks, 5 processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. In the 10 present application, a procedure, logic block, process, etc., is conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the 15 form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proved convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, 20 characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as 25 apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as "collecting", "determining", "operating", "monitoring" or the like, refer to the actions and processes of a computer system, or similar electronic computing 30 device. The computer system or similar electronic computing device manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer sys- 35 tern memories or registers or other such information storage, transmission, or display devices. The present invention is also well suited to the use of other computer systems such as, for example, optical and mechanical computers.
With reference now to FIG. 2, portions of the intelligent 40 power management interface are comprised of computerreadable and computer-executable instructions which reside, for example, in computer-usable media of a computer system. FIG. 2 illustrates an exemplary computer system 200 used as a part of an intelligent power management interface 45 in accordance with one embodiment of the present invention. It is appreciated that system 200 of FIG. 2 is exemplary only and that the present invention can operate within a number of different computer systems including general purpose computers systems, embedded computer systems, 50 and stand alone computer systems specially adapted for sizing server systems.
System 200 of FIG. 2 includes an address/data bus 202 for communicating information, and a central processor unit 204 coupled to bus 202 for processing information and 55 instructions. System 200 also incudes data storage features such as a computer usable volatile memory 206, e.g. random access memory (RAM), coupled to bus 202 for storing information and instructions for central processor unit 204, computer usable non-volatile memory 208, e.g. read only 60 memory (ROM), coupled to bus 202 for storing static information and instructions for the central processor unit 204, and a data storage device 210 (e.g., a magnetic or optical disk and disk drive) coupled to bus 202 for storing information and instructions. A signal input output comm 65 device 212 (e.g. a modem) coupled to bus 202 is also included in system 200 of FIG. 2. System 200 of the present
intelligent power management interface also includes an optional alphanumeric input device 214 including alphanumeric and function keys is coupled to bus 202 for communicating information and command selections to central processor unit 204. System 200 also optionally includes a cursor control device 216 coupled to bus 202 for communicating user input information and command selections to central processor unit 204. System 200 of the present embodiment also includes an optional display device 218 coupled to bus 202 for displaying information.
Display device 218 of FIG. 2, utilized with the present intelligent power management interface, may be a liquid crystal device, cathode ray tube, or other display device suitable for creating graphic images and alphanumeric characters recognizable to a user. Optional cursor control device 216 allows the computer user to dynamically signal the two dimensional movement of a visible symbol (cursor) on a display screen of display device 218. Many implementations of cursor control device 216 are known in the art including a trackball, mouse, touch pad, joystick or special keys on alphanumeric input device 214 capable of signaling movement of a given direction or manner of displacement. Alternatively, it will be appreciated that a cursor can be directed and/or activated via input from alphanumeric input device 214 using special keys and key sequence commands. The present invention is also well suited to directing a cursor by other means such as, for example, voice commands. A more detailed discussion of the present intelligent power management interface is found below.
FIG. 3 illustrates the hardware components of an exemplary computer system 300 in which the present invention is used. Computer system 300 includes at least one microprocessor 302 and memory 304 coupled by system bus 306 to a plurality of devices typically shown as 308. Although not specifically shown in FIG. 3 for the sake of clarity, devices 308 may include the following: a display terminal; input devices, such as a keyboard and/or a mouse; sound generating devices; secondary and tertiary storage devices, and the like. As will be appreciated by persons of ordinary skills in the art, the exemplary computer system and the functions performed thereby are not critical to the use of the present invention and that other arrangements of devices and functions may be substituted therefor.
As is well understood in the art, active portions of the operating system 301 and application programs 303 are stored in memory 304 for execution by microprocessor 302 with in-active portions of operating 310 system and application programs 303 stored on a disk drive or other storage devices, not shown. Operating system 301 provides the basic instruction set for controlling microprocessor 302 and for interfacing microprocessor 302 with the plurality of devices 308 in a manner that permits completion of the tasks requested by application programs 303. Application programs 303, by way of example, perform specific functions such as word processing, multimedia applications, or network communications.
Interfaces of operating system 301 determine when application programs 303 will use or require access to a particular device. Operating system 301 then transfers the necessary command, control, and data information to device driver 126 which is loaded in memory 304 upon power-up or system initialization. Device drivers 126 contain basic machine code necessary to control the operation of a corresponding device 308 and provides the interface between device registers 310 and memory 304 for the exchange of data.
To conserve system power consumption, many devices have the capability to switch to a low power "sleep" state.