US5369771A - Computer with transparent power-saving manipulation of CPU clock - Google Patents

Computer with transparent power-saving manipulation of CPU clock Download PDF

Info

Publication number
US5369771A
US5369771A US07/813,380 US81338091A US5369771A US 5369771 A US5369771 A US 5369771A US 81338091 A US81338091 A US 81338091A US 5369771 A US5369771 A US 5369771A
Authority
US
United States
Prior art keywords
clock
state
cpu
power management
timer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US07/813,380
Inventor
Steven K. Gettel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dell USA LP
Original Assignee
Dell USA LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dell USA LP filed Critical Dell USA LP
Priority to US07/813,380 priority Critical patent/US5369771A/en
Assigned to DELL USA CORP. reassignment DELL USA CORP. ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: GETTEL, STEVEN K.
Assigned to DELL USA L.P. reassignment DELL USA L.P. ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: DELL USA CORPORATION
Application granted granted Critical
Publication of US5369771A publication Critical patent/US5369771A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to computer systems (and particularly to small computer systems), and to methods for using them.
  • Portable personal computers were introduced in the early 1980s, and proved to be very useful and popular. As this market has developed, it has become increasingly clear that users strongly desire systems to have small volume, small weight, physical durability, and long battery-powered lifetime. Thus, small portable computers (“laptop” computers) have proven extremely popular during the late 1980s. Users continue to demand more features, longer time between recharges, and lower weight and volume. This combination of demands is difficult to meet. Moreover, as of 1990, another smaller generation of portable computers has begun to appear, referred to as "notebook" computers. This smaller form factor will only exacerbate the difficulty of the above tradeoffs.
  • the third way is to use power-management algorithms so that, at almost every instant, all components are being operated in the lowest-power mode for their current demands.
  • a processor which is not currently executing a program may be placed into "sleep" mode, to reduce its overall power consumption.
  • substantial power savings can be achieved simply by stopping the system clock.
  • BIOS software basic input/output system software
  • a computer system normally includes a number of complex hardware components (chips and subsystems).
  • the various hardware elements (chips and subsystems) will each have its own internal procedures (reset procedures) to regain a stable and known state.
  • reset procedures internal procedures
  • the CPU performs various important overhead tasks 4 under software control. This phase of operation is generally referred to as "POST" (Power-On-Self-Test).
  • a "bootstrap" program is run, to permit the CPU to begin execution of other software.
  • the POST and bootstrap software is normally stored in a read-only memory.
  • the bootstrap program launches the CPU on execution of the primary operating system software; 5 the primary operating system can then be used by the user to launch an application program, either manually or automatically.
  • Any computer system must have some way to begin program execution after a cold start.
  • the hardware architecture of a microprocessor (or other CPU) will normally provide for a "reset” operation, which places all of the hardware circuits in a known electrical state; but it is still necessary to start the CPU on execution of a desired program.
  • some computer systems would be manually configured to read in a "bootstrap loader" program at startup. This bootstrap program was a simple program which loaded in, and started execution of, another sequence of instructions, which were the beginning of the desired program. Bootstrap programs are often referred to simply as "boot” software.
  • the Intel 80 ⁇ 86 microprocessors after a hardware reset, will always attempt to begin program execution from a specific memory address. 6 Thus, if a branch (or conditional branch) instruction is found at this address, the microprocessor will continue its program execution from whatever address is specified.
  • this initial target address is the entry point for every session of use. This address is normally used to enter execution of programs which must be run every time the computer is used.
  • BIOS basic input/output system
  • BIOS software is normally packaged in a nonvolatile read-only-memory (ROM, PROM, EPROM, etc.). In fact, it is normally packaged together with other key pieces of overhead software, such as POST, 10 boot, and configuration management routines, 11 as well as a pointer to launch the computer into the operating system software. 12
  • ROM read-only-memory
  • PROM PROM
  • EPROM EPROM
  • BIOS basic system routines
  • BIOS in IBM-compatible computers is accessed by interrupts, but the vectors for those interrupts can be diverted to other addresses (by overwriting an address pointer in system RAM). This capability significantly expands the flexibility of the BIOS, and programmers use it very frequently.
  • BIOS customization has increasingly been recognized as an important element in rapidly developing a reliable advanced system. 13
  • BIOS customization One function often provided by BIOS customization is "hot-key" access to a setup menu, or to low-level system hardware features (e.g. monitor brightness adjustment). Such capability is very useful to system designers, but normally it has had to be realized in a machine-dependent way (so that large chunks of BIOS have had to be rewritten every time a change was made).
  • the application software will normally interface to an operating system (such as DOS, DOS+Windows, OS/2, UNIX of various flavors, or UNIX plus X-windows).
  • the operating system is a background software program 14 which provides an application programming interface (API) for use by the application software.
  • API application programming interface
  • Power management in an Intel 386 SL Microprocessor SuperSet system includes local standby (for individual I/O devices), global standby, and suspend power states to limit power consumption. These states are in addition to the usual Ready state and the powered-down Off state.
  • the 386 SL system has thirteen programmable power management timers to keep track of device idle time, system idle time, and suspend warning time. If the system has been idle for a programmed standby timer count, the system can automatically go into global standby state, when the system enters global standby state. the global standby power management code is executed; this provides flexibility as to power consumption and performance.
  • the global standby state powers down high-power peripheral devcies, slows the keyboard clock, and slows or stops the CPU clock.
  • the system can be brought out of global standby state by the occurrence of a system event; interrupts and other events such as modem ring, parity error, and I/O check can be programmed to be recognized as system events.
  • the suspend state powers down essentially everything except the memory refresh and resume state machine and real time clock.
  • the system can be programmed to automatically go from global standby state into suspend state if there has been no system activity for a programmed time out period since entering global standby state. Execution can resume from a suspend state following any of: a pulsing of the suspend/resume button, a detection of a modem ring, or an alarm in the real time clock.
  • the system management non-maskable interrupt permits saving and restoring the processor state to implement power management services that are transparent. Users write an SMI handler that implements the desired power management features, and the SMI can be triggered in a number of user-defined ways.
  • System management RAM (SM-RAM) stores the SMI handler code and the state of the system at the time of the SMI.
  • Programmable clock speeds include dividing the CPU clock by 1, 2, 4, 8, or stopping the clock, dividing the keyboard clock by 2, 4, or stopping the clock, and dividing a math coprocessor clock by 1, 2, 4, 8, or 16. Programming the CPUPWRMODE register plus the high-low status of the TURBO pin determine CPU clock speed.
  • Programmable system management output signals can power down devices.
  • SMI returns control to the previous application upon a resume (RSM) command.
  • RSM resume
  • the system management control register allows selective enabling or disabling of system management features by bit setting as follows: the SW -- REQ -- EN bit enables software request SMI; the HW -- SUS -- REQ -- EN bit enables hardware suspend request; the SMIGSTDBY -- REQ -- EN bit enables global standby time out; the SMILSTDBY -- BY -- EN bit enables local standby time out; the SMILTRP -- REQ -- EN bit enables I/O trap SMI; and the EXT -- SMI -- EN bit enables external SMI.
  • Local standby state hardware includes for each peripheral device an I/O access trap and a local standby idle timer and a control pin.
  • the timer is loaded with a timeout value, and counts down from this value. However, upon each I/O access the contents of the timer are reset to the timeout value. If the timer counts down to zero, then the SMI interrupt handler saves the state of the device in SM-RAM and powers down the device through the control pin.
  • the I/O access trap When an I/O access is made to a powered down device, the I/O access trap generates an SMI, the SMI interrupt handler repowers the device, restores its state; and reissues the I/O instruction.
  • Global standby state hardware includes system event traps, a global standby timer, an autopower off timer, and stop break event traps.
  • the global standby hardware is initialized by specifying in the three System Events registers (SYS -- EVNT -- CFG0-SYS -- EVNT -- CFG2) those events (such as interrupts) that indicate an active system.
  • SYS -- EVNT -- CFG0-SYS -- EVNT -- CFG2 the system Events registers
  • the amount of time the system can be sitting in idle is programmed into the global standby timer which has a high byte register GSTDBY -- TMRH and and a low byte register GSTDBY -- TMRL.
  • an SMI is generated and sets the GSTDBY -- REQ bit (bit 2) in the SM -- REQ -- STS register.
  • the power management interrupt handler sets the SYS -- IN -- STDBY bit (bit 7) of the SM -- REQ -- STS register and puts the system in global standby. If enabled, Local Standby is invoked and the CPU clock is stopped.
  • the autopower off option can be enabled to put the system in the suspend state after it has been in a standby state for a specified time. And to allow the system to exit from a global standby state, stop break events (such as interrupts) must be enabled and selected by programming the three Stop Break Registers STP -- BRK -- CFG0-STP -- BRK -- CFG2.
  • any of the sixteen interrupts IRQ0-IRQ15 plus RING -- SEL (modem ring detect), INTR -- SEL (any active interrupt), NMI -- SEL (non-maskable interrupt), PERR -- SEL (parity error), IOCHCHK -- SEL (active I/O channel check), and SUS -- EVNT -- SEL (hardware suspend events) may be system events and/or stop break events.
  • Suspend state can be triggered by an external SMI, a software SMI, a low battery, a pulsing of the suspend/resume button, and an auto power off signal.
  • an external SMI an external SMI
  • a software SMI a low battery
  • a pulsing of the suspend/resume button Associated with each trigger is a warning timer which permits critical I/O operations such as DMA to complete before the system is placed in suspend state.
  • the autopower off places a system already in global standby state into suspend state after a specificed period of system idleness.
  • An autopower off SMI request is generated (presuming all necessary enablement bits set) the counting down of the Auto Power Off Timer (APWR -- TMRL-APWR -- TMRH) from its loaded initial count (each count is 4.096 seconds) followed by a counting down of the Auto Power Off Suspend Warning Timer (SUS -- WRN -- TMR -- APWR) from its initial count (each count is 128 milliseconds).
  • APWR -- TMRL-APWR -- TMRH Auto Power Off Suspend Warning Timer
  • SUS -- WRN -- TMR -- APWR Auto Power Off Suspend Warning Timer
  • an SMI request When the suspend warning timer expires, an SMI request generates and sets the HW -- SUSREQ bit (bit 1) of the SM -- REQ -- STST register and the APWR -- OFF -- SUS -- REQ bit (bit 0) of the SPND -- STST register.
  • An SMI handler typically has an entry point, a strategy routine to determine what initiated the SMI request, a request handier to process the request, and a data storage area to hold the state of devices that are powered down.
  • the advanced power management (APM) approach of Intel Corp and Microsoft Corp provides power management inputs from all three of BIOS, operating system, and application program software layers and cooperation among the layers.
  • the system and devices can change from one power state to another either by explicit command or automatically based on APM parameters and system activity.
  • the interface with the layer BIOS is through the INT 15h interrupt with the high byte of the A register (AH) set at 53h and the low byte (AL) determining the call. For example, AL equal to 01 (plus the B register containing 0000h) establishes the connection to the BIOS.
  • the call to BIOS informs the BIOS that the system is currently idle and that processing should be suspended until the next system event; this allows the BIOS to stop the CPU clock and put the system into a Transient Stop Clock state.
  • AL equal to 06h informs the BIOS that the CPU is busy (and should not be slowed) and AL equal to 07h along with the B and C registers prescribe the power state for designated devices. Note that with the CPU Idle call in cases where an interrupt causes the system to leave the idle state, the interrupt may or may not have been serviced when the BIOS returns from the CPU Idle call.
  • the caller should not make any assumptions concerning interrupt servicing and should allow pending interrupts to be taken upon return from the CPU Idle call. If interrupts are serviced from within the BIOS CPU Idle function, the interrupt handler must return to the BIOS when the interrupt processing is completed. The caller cannot use its knowledge of being in the idle state to retain control from an interrupt handler. For example, some system implementations may slow the CPU clock rate before waiting on an interrupt and restore the normal clock rate after the interrupt is serviced but before returning from the CPU Idle call.
  • the preferred embodiment systems use the 386 SL system with APM and conserve power by detecting system inactivity (a lack of enabled interrupts such as keyboard or communications within an SL system global timeout) and switching to Global Standby TO which is a transient state and then switching to either the Low Speed state or to the Stop Clock state depending upon whether a software counter has counted down.
  • system inactivity a lack of enabled interrupts such as keyboard or communications within an SL system global timeout
  • Global Standby TO which is a transient state and then switching to either the Low Speed state or to the Stop Clock state depending upon whether a software counter has counted down.
  • the CPU clock runs at one eighth the usual frequency.
  • the system is brought back to Ready state from the Low Speed state.
  • FIG. 1 is a perspective view of a first preferred embodiment computer
  • FIGS. 2-10b schematically show the first preferred embodiment in block format
  • FIG. 11 shows a prior art state diagram
  • FIG. 12 illustrates a preferred embodiment state diagram
  • the presently preferred embodiment has been implemented on several different computer systems.
  • the primary disclosed embodiment relates to the Dell 325NC computer. This is a notebook computer, with an external closed size of about 8.5 ⁇ 11 ⁇ 2 inches.
  • FIG. 1 shows a perspective view of the notebook computer 100 of the presently preferred embodiment in the open position. Visible elements include case 102, cover 104, hinges 106, display screen 110, keyboard 120, floppy disk drive 130, and dust cover 103 (which covers the receptacle for the rechargeable battery pack).
  • FIGS. 2-10b schematically illustrate the circuitry of computer 100.
  • a processor chipset 202 and 206 similar to the Intel 386SL Superset made of the 80386SL and 82360SL chips, is used. (Of course, a very wide variety of other chipsets can be used instead.)
  • Chip 202 includes a 386SX processor core, and also includes ISA bus control logic (connected to ISA bus 207).
  • Chip 202 also includes memory controller logic (connected to main memory 203 by 22 address lines, 16 data lines, and RAS and GAS strobe signals).
  • Chip 202 also includes cache control tag RAMs (connected to cache RAM 203A).
  • Chip 202 also includes math coprocessor interface logic (connected to optional math coprocessor 209).
  • Chip 202 also includes CPU power management logic.
  • Chip 202 receives a clock input (16 MHz and 50 MHz in this example) from clock/timing generator 204.
  • Chip 206 is connected to receive clock line SYSCLK from chip 202.
  • Chip 206 also includes timer logic (approximately equivalent to two 8254s), which is connected to receive a 14.31818 MHz clock signal from clock generator 204.
  • Chip 406 also includes interrupt controller logic (approximately equivalent to two 8259As).
  • Chip 206 also includes DMA controller logic (approximately equivalent to two 8237s).
  • Chip 206 also includes bus interface logic which is connected to the ISA bus 207.
  • Chip 206 also includes power management logic, and a real-time clock (approximately equivalent to a 146818), which is connected to receive a 32.768 KHz signal from clock generator 204.
  • Chip 206 also includes serial port control logic (approximately equivalent to two 16450s), which is connected to receive a 1.8432 MHz signal from clock generator 204.
  • Flash EPROM 201 contains code for BIOS and for the operating system (e.g. DOS). This chip, in the presently preferred embodiment, is a 256K ⁇ 8 memory.
  • a microcontroller 210 receives keyboard inputs from keyboard 212.
  • SRAM 211 32K ⁇ 8 in this sample embodiment
  • resonant crystal oscillator 213 (16 MHz in this sample embodiment).
  • Video signals from VGA controller 240 (which is a WD90C22 in the presently preferred embodiment), controls the LCD display 242.
  • VGA controller 240 is also connected to programmable pixel clock 243.
  • bus 207 Also connected to bus 207 is a floppy disk drive controller 250 (connecting to floppy disk drive 251) and an IDE interface 270, which is connectible to the internal hard disk drive 271 (or to a semiconductor massmemory drive emulation, if a diskless configuration is chosen).
  • a power supply controlled by controller 230 is driven by a battery, and also may be powered by external power through an input socket.
  • This power supply in the presently preferred embodiment, provides output voltages of ⁇ 5 V, ⁇ 12 V, and +18.6 V. However, of course, lower logic supply voltages may be used in future embodiments.
  • the 82360SL chip connects to industry-standard connectors for serial ports (DB-9), parallel ports (DB-25), and optional modem unit 260.
  • FIGS. 3a-b (which fit together to form one schematic diagram) indicate the functional portions of chips 202 and 206 and a slightly different selection of other items but does not include the items of FIG. 2 which are located on the bottom board (within broken line in the center of FIG. 2), and FIGS. 4a-10b illustrate the wiring in more detail.
  • 80386SL chip 202 appears in FIG. 4b along with the cache 203A, DRAM memory 203, and math coprocessor 209 in FIG. 4a.
  • 82360SL chip 206 appears in FIG. 5b along with EPROM 201 in FIG. 5a.
  • Keyboard controller 210 is in FIG. 6a with the external keyboard connector and mouse connector in the lower righthand portion of FIG. 6b.
  • Clock generator 204 appears in FIG. 8a.
  • the external clock is divided down to provide the CPU clock, any math coprocessor clock, and internal clock signals.
  • the maximum CPU clock frequency is one half the EFI (external frequency input), but EFI may be further divided to generate the CPU clock: the contents of the CPUPWRMODE register within 386SX core may provide further division by 2, 4, or 8 (or even stopping the CPU clock).
  • the CPU clock frequency sets the machine cycle time, and thus basically the CPU clock frequency determines the number of transistor switchings per second.
  • the power consumed by 80386SL 202, memory 203, 82360SL 206, . . . occurs primarily during transistor switchings; that is, the typical CMOS devices making up the circuitry have virtually zero static power consumption.
  • System 100 also has APM advanced power management compatible BIOS.
  • FIG. 11 shows a prior art state diagram which may be adapted to the hardware system of FIGS. 1-10b with APM.
  • APM APM
  • System Events are by setting bits in the system events registers (SYS -- EVNT -- CFG0-SYS -- EVNT -- CFG2); the available bits correspond to any of the sixteen interrupts IRQ0-IRQ15 plus the following events RING -- SEL (modem ring detect), INTR -- SEL (any active interrupt), NMI -- SEL (nonmaskable interrupt), PERR -- SEL (parity error), IOCHCHK -- SEL (active I/O channel check), and SUS -- EVNT -- SEL (hardware suspend events).
  • RING -- SEL modem ring detect
  • INTR -- SEL any active interrupt
  • NMI -- SEL nonmaskable interrupt
  • PERR -- SEL parity error
  • IOCHCHK -- SEL active I/O channel check
  • SUS -- EVNT -- SEL hardware suspend events
  • the system When in Global Standby state, the system has an Auto Power Off Timer which times out in a user selected time interval and starts the countdown of its Suspend Warning Timer which times out in 1 second.
  • the occurrence of a Stop Break Event resets the timers and switches the system from Global Standby state back into the Ready state.
  • the Stop Break Events are selected from the same items as the System Events.
  • a timeout of the Suspend Warning Timer switches the system into the Suspend state through an SMI request.
  • a resume (RSM) as from a pulse of the Suspend/Resume button, a ring indication signal on the serial port, or an alarm from the real time clock will provide transition to the ready state.
  • FIG. 12 illustrates the state diagram for first preferred embodiment system 100 which provides for standby states with both a low speed clock and a stopped clock.
  • the low speed clock permits detection of I/O events which may not generate interrupts.
  • the keyboard will be intermittently used with gaps (such as to read the screen) on the order of tens of seconds during which running the CPU clock at one eighth its usual speed will save power but not freeze the screen.
  • Preferred embodiment 100 operates as follows. First consider the system in the Ready state.
  • the SL system global standby timer counts down from 12 seconds (with time provided by real time clock 110), but the occurrence of any System Event, defined as an interrupt from keyboard 130, communication port 134, mouse 132, floppy disk controller 136, or hard disk controller (that is, an IRQ1, IRQ3, IRQ4, IRQ6,IRQ12, or IRQ14 interrupt), will reset the SL system global standby timer.
  • SYSEVENT system event
  • SMI handler that divides the CPU clock frequency by a factor of 8
  • decrements a System Timeout software counter and resets the 12 second SL system global standby timer.
  • This is illustrated as the !SYSEVENT path state change from the Ready state to the transient Global Standby TO (global standby timeout) state and then immediately to the Low Speed state in FIG. 12 by the !STANDBYTO path. If STANDBYTO were true, then the STANDBYTO path from the transient Global Standby TO state to the Stop Clock state would be followed.
  • STANDBYTO denotes the logical AND of !
  • IOEVENT, !SYSEVENT, and !SYSTIMEOUT where SYSTIMEOUT denotes the System Timeout counter containing a positive count and IOEVENT denotes the logical OR of I/O activity events of the keyboard, either the first serial port (COM1) or the second serial port (COM2), the floppy disk drive, the hard disk drive, or the mouse.
  • the System Timeout counter typically has a number such as 15 or 20 loaded initially, although this is programmable in software. A count such as 15 or 20 will lead to a 3 to 4 minute system timeout as described in the following. The entry into the Global Standby TO state decrements the System Timeout counter.
  • the CPU Idle function stops the CPU clock but has no effect on the SL system global standby timer. This is illustrated by the CPUIDLE state change path in FIG. 12 from the Ready state to the Transient Stop Clock state. Any interrupt will move the system from the Transient Stop Clock state to the Low Speed state.
  • FIG. 12 illustrates this with the !SYSEVENT path from the Low Speed state to the Global Standby TO state and then either the STANDBYTO path to the Clock Stop state or the !STANDBYTO path to the Low Speed state.
  • entry into the Global Standby TO state decrements the System Timeout counter and resets the SL system global standby timer. Note that when the System Timeout counter reaches zero, then STANDBYTO will become true and the exit from the Global Standby TO state will be to the Stop Clock state.
  • a CPU Busy call or an I/O event will switch the system from the Low Speed state back into the Ready state and reset the SL system global standby timer (12 seconds) and the System Timeout count.
  • FIG. 12 illustrates this state change by the IOEVENT or CPUBUSY path.
  • the Low Speed state permits power saving in time intervals such as pauses to read the screen between data entry or word processing interactions without stopping the CPU clock. And if the pause extends to 3 or 4 minutes, then the System Timeout counter will have counted down and the system will go into the Stop Clock state.
  • the Auto Power Off Timer and its subsequent Auto Power Off Warning Timer are loaded and countdown as previously described; and if both timers time out, then the SMI handler puts the system into the Suspend state.
  • the Auto Power Off Timer is loaded with a user selected time interval and when this expires the Power Off Warning Timer is then loaded with 1 second.
  • the break events are the interrupts IRQ1 (keyboard), IRQ3 (COM2), IRQ4 (COM1), IRQ8 (real time clock), and IRQ12 (mouse), and their logical OR is denoted BRKEVENT in FIG. 3.
  • the only escape from the Suspend state is a resume (RSM) event: a pulse of the Suspend/Resume button, a ring indication (modem) signal on the serial port, or an alarm from the real time clock will provide transition to the ready state.
  • the net effect of the states of FIG. 12 compared to those of FIG. 11 is a splitting of the Global Standby state (with CPU clock stopped) into three states: Low Speed, the transient Global Standby TO, and Stop Clock with CPU clock running slowly in two of the three states.
  • a running CPU clock permits monitoring of I/O events that do not generate interrupts.
  • a Hot Key to disable the Low Speed state keeps the CPU clock at full speed during operations such as spreadsheet calculations which may not generate any interrupts or I/O events.
  • a Hot Key to reenable the Low Speed state is also available.
  • Peripherals such as a hard disk drive and an LCD screen with backlighting will have their own local power management and may power down independently of the global standby and auto suspend of the SL system.
  • Preferred embodiment 100 also has the option of disabling the power management of FIG. 12 and reverting to FIG. 11 power management.
  • the code portions set forth below in the Appendix provide the most relevant portions of the code used, but of course these code portions are used in combination with large additional portions of code.
  • the software structure given below is used in combination with PhoenixTM BIOS code; but several vendors (such as AMI) offer BIOS software, and the disclosed code can be used with another vendor's BIOS code if desired. (Of course, minor adjustments would have to be made to the called routine names, etc.)
  • the APM and the associated CPU Idle and CPU Busy calls could be omitted along with the Transient Stop Clock state
  • the values loaded into timers could be varied, such as the Global SL system timer may be in multiples of 4 seconds with the Intel chip set, the system counter could have larger or smaller counts loaded in order to provide for longer or shorter time intervals of slow speed operation prior to a switch to a stopped clock.
  • Other combinations of events could be used for any of SYSEVENT, IOEVENT, and BRKEVENT.

Abstract

A computer system having power management control features which include states of normal clock speed operation, slow clock speed operation, and stop-clock operation based on input/output activity, system bus activity, and program parameters. The system detects inactivity over a period of time and places the system in one of the states to provide for power conservation and accessibility by a user.

Description

PARTIAL WAIVER OF COPYRIGHT
All of the material in this patent application is subject to copyright protection under the copyright laws of the United States and of other countries. As of the first effective filing date of the present application, this material is protected as unpublished material.
Portions of the material in the specification and drawings of this patent application are also subject to protection under the maskwork registration laws of the United States and of other countries.
However, permission to copy this material is hereby granted to the extent that the owner of the copyright and maskwork rights has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure, as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright and maskwork rights whatsoever.
BACKGROUND AND SUMMARY OF THE INVENTION
The present invention relates to computer systems (and particularly to small computer systems), and to methods for using them.
The innovations disclosed in the present application provide computer systems (especially very small portable personal computers) which have advantageous new capabilities. To better explain the significance and advantages of these innovations, the following paragraphs will review some technological context. This technological context is not necessarily prior art, but is intended to help in pointing out the disclosed inventions.
Laptop and Smaller Computers
Portable personal computers were introduced in the early 1980s, and proved to be very useful and popular. As this market has developed, it has become increasingly clear that users strongly desire systems to have small volume, small weight, physical durability, and long battery-powered lifetime. Thus, small portable computers ("laptop" computers) have proven extremely popular during the late 1980s. Users continue to demand more features, longer time between recharges, and lower weight and volume. This combination of demands is difficult to meet. Moreover, as of 1990, another smaller generation of portable computers has begun to appear, referred to as "notebook" computers. This smaller form factor will only exacerbate the difficulty of the above tradeoffs.
Approaches to Power Conservation
There are three basic approaches to extending the operating lifetime of a portable computer. The simplest way is to specify components at the lowest economical power consumption. Thus, for instance, CMOS integrated circuits and liquid crystal displays (LCDs) will normally be used. An equally simple way is to increase battery capacity. However, both of these routes rapidly encounter limits, which are set simply by the tradeoff of the cost of lower-power components, or of the elimination of functionality, with user expectations.
The third way is to use power-management algorithms so that, at almost every instant, all components are being operated in the lowest-power mode for their current demands. Thus, for example, a processor which is not currently executing a program may be placed into "sleep" mode, to reduce its overall power consumption. For another example, substantial power savings can be achieved simply by stopping the system clock. For another example, it is common practice, in portable computers with an LCD display, to provide backlighting for use of the display under low-light conditions; but. since this backlighting consumes relatively large amounts of power, it will normally be turned off after a short period of inactivity (or even, alternatively, after a short duration regardless of activity), until the user again demands backlighting.
All of these lines of approach have some inherent limits. For example, it is hard to foresee any integrated circuit technology which would be economical in the 1990s and more power-efficient than low-power low-voltage CMOS. Some further improvement in this area is foreseeable, but no revolutionary improvements appear likely. Moreover, in practice, such improvements are largely outside the control of system designers: when lower-power chips are sampled, system design houses will buy them; but system design houses cannot greatly accelerate the pace of introduction of such chips.
It is also true that the smartest power-management programs cannot reduce the time fraction during which the user wishes to look at the display, or enter data through the keyboard. However, in this area there does appear to be room for improvement, and system design improvements can help achieve power efficiency.
Many power management schemes have been proposed, where parts of the system are shut down during periods of inactivity.1 These approaches tend to extend the usable working time between recharges.
Another source of proposed teachings regarding power-management functions is provided by the DS1227 product preview, contained in the 1988 data book of Dallas Semiconductor Corporation, which is hereby incorporated by reference.
In addition, it has been recognized that management of the charging and discharging cycles of Ni--Cd batteries can help to extend their life.
Either of these power-management functions requires some intelligent control. The conventional way to implement this has been using the main microprocessor (CPU). To accomplish this, the necessary program steps are inserted into the BIOS software (basic input/output system software), which is stored in ROM.
More advanced power management schemes are detailed below.
How Application Programs Interact with Hardware
One of the most basic needs in computer architecture is making it easier for a variety of software programs to interact correctly and efficiently with a variety of hardware configurations. Much of the development in computer architecture can be seen as a steady progression of techniques for addressing this need.
Note the emphasis on efficiency in the foregoing statement. Even where existing standards can assure compatibility, the search for greater speed or expanded functionality will frequently draw programmers to circumvent the software standards.2 Thus, there is a continuing tension between compatibility and efficiency.
When any particular piece of hardware is examined in isolation, it can usually be best described in terms of electrical relationships.3 However, a commercial application program will be written in a programming language (e.g. in assembly language or in C) which is somewhat machine-independent. There is a great difference between these two levels of description; but this gap must be bridged in order to economically develop application software which can run on a wide range of machines.
Several layers of software and firmware structure are used to mediate between application programs and the underlying hardware. To better show the context of the invention, these layers will be described below in greater detail.
Startup Software (POST, Bootstrap, etc.)
A computer system normally includes a number of complex hardware components (chips and subsystems). When power is first applied to a computer (or when the user triggers a reset after the system has locked up), the various hardware elements (chips and subsystems) will each have its own internal procedures (reset procedures) to regain a stable and known state. However, at some point (if the hardware is intact), these reset procedures will have ended, and at this point the CPU performs various important overhead tasks4 under software control. This phase of operation is generally referred to as "POST" (Power-On-Self-Test).
After POST, a "bootstrap" program is run, to permit the CPU to begin execution of other software. For robustness, the POST and bootstrap software is normally stored in a read-only memory. The bootstrap program launches the CPU on execution of the primary operating system software;5 the primary operating system can then be used by the user to launch an application program, either manually or automatically.
Bootstrap Programs
Any computer system must have some way to begin program execution after a cold start. The hardware architecture of a microprocessor (or other CPU) will normally provide for a "reset" operation, which places all of the hardware circuits in a known electrical state; but it is still necessary to start the CPU on execution of a desired program. For example, in the very early days of computing, some computer systems would be manually configured to read in a "bootstrap loader" program at startup. This bootstrap program was a simple program which loaded in, and started execution of, another sequence of instructions, which were the beginning of the desired program. Bootstrap programs are often referred to simply as "boot" software.
To give a more recent example, the Intel 80×86 microprocessors, after a hardware reset, will always attempt to begin program execution from a specific memory address.6 Thus, if a branch (or conditional branch) instruction is found at this address, the microprocessor will continue its program execution from whatever address is specified.
Thus, this initial target address is the entry point for every session of use. This address is normally used to enter execution of programs which must be run every time the computer is used.
"Basic Input/Output System" Software (BIOS)
In many types of modern personal computers (and in all "IBM-compatible" personal computers), a key part of the system software is a "basic input/output system" (BIOS) program.7 The BIOS program contains frequently-used routines for interfacing to key peripherals,8 for interrupt handling, and
For system robustness, the BIOS software is normally packaged in a nonvolatile read-only-memory (ROM, PROM, EPROM, etc.). In fact, it is normally packaged together with other key pieces of overhead software, such as POST,10 boot, and configuration management routines,11 as well as a pointer to launch the computer into the operating system software.12 Thus, nowadays the term "BIOS" is often used, somewhat more broadly, to refer to this whole collection of basic system routines.
However, this system also provides a considerable degree of flexibility. As the operating system starts up (after the POST and boot routines), the user can remap address pointers to revector BIOS calls away from the standard BIOS routines, if desired. (It is also common for users to map out the entire BIOS contents into fast RAM, for greater speed.)
Customized BIOS and BIOS Extensions
The BIOS in IBM-compatible computers is accessed by interrupts, but the vectors for those interrupts can be diverted to other addresses (by overwriting an address pointer in system RAM). This capability significantly expands the flexibility of the BIOS, and programmers use it very frequently.
However, while the capability to divert BIOS vectors is useful, it is not sufficient to address many needs. Changes to the interrupt-handling vectors will not affect other portions of the BIOS. Computer designers have found it highly desirable to prepare (or obtain) customized BIOS routines to fully exploit the advantage of their systems. For example, such customized BIOS routines are commonly necessary in very-low-power portable systems, to implement powersaving features which maximize battery lifetime. BIOS customization has increasingly been recognized as an important element in rapidly developing a reliable advanced system.13
One function often provided by BIOS customization is "hot-key" access to a setup menu, or to low-level system hardware features (e.g. monitor brightness adjustment). Such capability is very useful to system designers, but normally it has had to be realized in a machine-dependent way (so that large chunks of BIOS have had to be rewritten every time a change was made).
Another problem with prior hot-key add-ons is that, if the BIOS interrupt vector for key-handling was diverted, the hot-key capability could be lost. Since many applications do divert the keyboard interrupt (INT9), no critical functionality could be made dependent on such a hot-key operation.
Operating System Software
The application software will normally interface to an operating system (such as DOS, DOS+Windows, OS/2, UNIX of various flavors, or UNIX plus X-windows). The operating system is a background software program14 which provides an application programming interface (API) for use by the application software. Thus, the programmers writing application software can write their software to fit the API, rather than having to find out and fit the peculiarities of each particular machine.15
Application Software
From a system designer's point of view, the application software is (subject only to the minimal constraints of the architectural standards) wholly unpredictable. 16 Common applications include spreadsheets, word processors and publishing programs, databases, games, project managers and a wide variety of others; but inevitably users will also run customized applications, and new types of applications.
Power Management and Innovative Completer System and Method
Power management in an Intel 386 SL Microprocessor SuperSet system includes local standby (for individual I/O devices), global standby, and suspend power states to limit power consumption. These states are in addition to the usual Ready state and the powered-down Off state. The 386 SL system has thirteen programmable power management timers to keep track of device idle time, system idle time, and suspend warning time. If the system has been idle for a programmed standby timer count, the system can automatically go into global standby state, when the system enters global standby state. the global standby power management code is executed; this provides flexibility as to power consumption and performance. Typically, the global standby state powers down high-power peripheral devcies, slows the keyboard clock, and slows or stops the CPU clock. The system can be brought out of global standby state by the occurrence of a system event; interrupts and other events such as modem ring, parity error, and I/O check can be programmed to be recognized as system events.
The suspend state powers down essentially everything except the memory refresh and resume state machine and real time clock. The system can be programmed to automatically go from global standby state into suspend state if there has been no system activity for a programmed time out period since entering global standby state. Execution can resume from a suspend state following any of: a pulsing of the suspend/resume button, a detection of a modem ring, or an alarm in the real time clock.
The system management non-maskable interrupt (SMI) permits saving and restoring the processor state to implement power management services that are transparent. Users write an SMI handler that implements the desired power management features, and the SMI can be triggered in a number of user-defined ways. System management RAM (SM-RAM) stores the SMI handler code and the state of the system at the time of the SMI. Programmable clock speeds include dividing the CPU clock by 1, 2, 4, 8, or stopping the clock, dividing the keyboard clock by 2, 4, or stopping the clock, and dividing a math coprocessor clock by 1, 2, 4, 8, or 16. Programming the CPUPWRMODE register plus the high-low status of the TURBO pin determine CPU clock speed. Programmable system management output signals (SMOUTx) can power down devices. SMI returns control to the previous application upon a resume (RSM) command. When an SMI is recognized by the CPU, then the CPU switches in the SM-RAM into system memory space, saves the current CPU contents to the SM-RAM area, and jumps to the fixed entry address for SMI handler code.
The system management control register (SM-- REQ-- CNTRL) allows selective enabling or disabling of system management features by bit setting as follows: the SW-- REQ-- EN bit enables software request SMI; the HW-- SUS-- REQ-- EN bit enables hardware suspend request; the SMIGSTDBY-- REQ-- EN bit enables global standby time out; the SMILSTDBY-- BY-- EN bit enables local standby time out; the SMILTRP-- REQ-- EN bit enables I/O trap SMI; and the EXT-- SMI-- EN bit enables external SMI.
Local standby state hardware includes for each peripheral device an I/O access trap and a local standby idle timer and a control pin. The timer is loaded with a timeout value, and counts down from this value. However, upon each I/O access the contents of the timer are reset to the timeout value. If the timer counts down to zero, then the SMI interrupt handler saves the state of the device in SM-RAM and powers down the device through the control pin. When an I/O access is made to a powered down device, the I/O access trap generates an SMI, the SMI interrupt handler repowers the device, restores its state; and reissues the I/O instruction.
Global standby state hardware includes system event traps, a global standby timer, an autopower off timer, and stop break event traps. The global standby hardware is initialized by specifying in the three System Events registers (SYS-- EVNT-- CFG0-SYS-- EVNT-- CFG2) those events (such as interrupts) that indicate an active system. The amount of time the system can be sitting in idle is programmed into the global standby timer which has a high byte register GSTDBY-- TMRH and and a low byte register GSTDBY-- TMRL. When the timer counts down to zero, an SMI is generated and sets the GSTDBY-- REQ bit (bit 2) in the SM-- REQ-- STS register. The power management interrupt handler sets the SYS-- IN-- STDBY bit (bit 7) of the SM-- REQ-- STS register and puts the system in global standby. If enabled, Local Standby is invoked and the CPU clock is stopped. The autopower off option can be enabled to put the system in the suspend state after it has been in a standby state for a specified time. And to allow the system to exit from a global standby state, stop break events (such as interrupts) must be enabled and selected by programming the three Stop Break Registers STP-- BRK-- CFG0-STP-- BRK-- CFG2. Any of the sixteen interrupts IRQ0-IRQ15 plus RING-- SEL (modem ring detect), INTR-- SEL (any active interrupt), NMI-- SEL (non-maskable interrupt), PERR-- SEL (parity error), IOCHCHK-- SEL (active I/O channel check), and SUS-- EVNT-- SEL (hardware suspend events) may be system events and/or stop break events.
Suspend state can be triggered by an external SMI, a software SMI, a low battery, a pulsing of the suspend/resume button, and an auto power off signal. Associated with each trigger is a warning timer which permits critical I/O operations such as DMA to complete before the system is placed in suspend state. As previously noted, the autopower off places a system already in global standby state into suspend state after a specificed period of system idleness. An autopower off SMI request is generated (presuming all necessary enablement bits set) the counting down of the Auto Power Off Timer (APWR-- TMRL-APWR-- TMRH) from its loaded initial count (each count is 4.096 seconds) followed by a counting down of the Auto Power Off Suspend Warning Timer (SUS-- WRN-- TMR-- APWR) from its initial count (each count is 128 milliseconds). When the suspend warning timer expires, an SMI request generates and sets the HW-- SUSREQ bit (bit 1) of the SM-- REQ-- STST register and the APWR-- OFF-- SUS-- REQ bit (bit 0) of the SPND-- STST register. If a system event occurs prior to the suspend warning timer expiring, then the SYS-- IN-- TDBY bit is cleared and the timers disabled. Once the suspend state is entered, then a resume (RSM) as from a pulse of the Suspend/Resume button, a ring indication signal on the serial port, or an alarm from the real time clock will provide transition to the ready state.
An SMI handler typically has an entry point, a strategy routine to determine what initiated the SMI request, a request handier to process the request, and a data storage area to hold the state of devices that are powered down.
The advanced power management (APM) approach of Intel Corp and Microsoft Corp provides power management inputs from all three of BIOS, operating system, and application program software layers and cooperation among the layers. The system and devices can change from one power state to another either by explicit command or automatically based on APM parameters and system activity. The interface with the layer BIOS is through the INT 15h interrupt with the high byte of the A register (AH) set at 53h and the low byte (AL) determining the call. For example, AL equal to 01 (plus the B register containing 0000h) establishes the connection to the BIOS. Also, with AL, equal 05h (CPU Idle call), the call to BIOS informs the BIOS that the system is currently idle and that processing should be suspended until the next system event; this allows the BIOS to stop the CPU clock and put the system into a Transient Stop Clock state. Similarly, AL equal to 06h informs the BIOS that the CPU is busy (and should not be slowed) and AL equal to 07h along with the B and C registers prescribe the power state for designated devices. Note that with the CPU Idle call in cases where an interrupt causes the system to leave the idle state, the interrupt may or may not have been serviced when the BIOS returns from the CPU Idle call. The caller should not make any assumptions concerning interrupt servicing and should allow pending interrupts to be taken upon return from the CPU Idle call. If interrupts are serviced from within the BIOS CPU Idle function, the interrupt handler must return to the BIOS when the interrupt processing is completed. The caller cannot use its knowledge of being in the idle state to retain control from an interrupt handler. For example, some system implementations may slow the CPU clock rate before waiting on an interrupt and restore the normal clock rate after the interrupt is serviced but before returning from the CPU Idle call.
However, the known system power management approaches with APM have the problem of the use of a timeout on system events (!SYSEVENT) and the CPU Idle call for their power management architecture being constrained to put the system in global standby. If they do not detect system activity (interrupts only), they actually stop the clock, which freezes the screen. I/O activity cannot be detected with a frozen clock. Also, this appears to be a system hang to most users. Furthermore, the operating system, such as MSDOS, may interact with a printer or communication peripheral without the use of interrupts.
In contrast, the preferred embodiment systems use the 386 SL system with APM and conserve power by detecting system inactivity (a lack of enabled interrupts such as keyboard or communications within an SL system global timeout) and switching to Global Standby TO which is a transient state and then switching to either the Low Speed state or to the Stop Clock state depending upon whether a software counter has counted down. In the Low Speed state the CPU clock runs at one eighth the usual frequency. At detection of I/O activity, the system is brought back to Ready state from the Low Speed state.
When in Stop Clock state, the autopower off suspend count begins and a timeout switches the system into Suspended state which requires a break event to escape to Ready state. And a CPU Idle call will put the system into the Transient Stop Clock state as with the prior art.
The slowing of the clock in the Low Speed state is much less objectionable to stopping the clock as in the prior art.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be described with reference to the accompanying drawings, which show preferred embodiments, wherein:
FIG. 1 is a perspective view of a first preferred embodiment computer;
FIGS. 2-10b schematically show the first preferred embodiment in block format;
FIG. 11 shows a prior art state diagram; and
FIG. 12 illustrates a preferred embodiment state diagram;
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The numerous innovative teachings of the present application will be described with particular reference to the presently preferred embodiment. However, it should be understood that this class of embodiments provides only a few examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily delimit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others.
Hardware Implementation Details
Following is a sample specific implementation of hardware portions of the disclosed innovations. This example is intended to better illustrate the disclosed generally applicable innovations, and to comply with the best-mode requirements of US patent law; but of course this specific implementation is subject to change (and will certainly be changed as time goes by), and can be altered, as will be apparent to those skilled in the art, in many details.
The presently preferred embodiment has been implemented on several different computer systems. The primary disclosed embodiment relates to the Dell 325NC computer. This is a notebook computer, with an external closed size of about 8.5×11×2 inches.
FIG. 1 shows a perspective view of the notebook computer 100 of the presently preferred embodiment in the open position. Visible elements include case 102, cover 104, hinges 106, display screen 110, keyboard 120, floppy disk drive 130, and dust cover 103 (which covers the receptacle for the rechargeable battery pack).
FIGS. 2-10b schematically illustrate the circuitry of computer 100. As shown in FIG. 2, a processor chipset 202 and 206, similar to the Intel 386SL Superset made of the 80386SL and 82360SL chips, is used. (Of course, a very wide variety of other chipsets can be used instead.) Chip 202 includes a 386SX processor core, and also includes ISA bus control logic (connected to ISA bus 207). Chip 202 also includes memory controller logic (connected to main memory 203 by 22 address lines, 16 data lines, and RAS and GAS strobe signals). Chip 202 also includes cache control tag RAMs (connected to cache RAM 203A). Chip 202 also includes math coprocessor interface logic (connected to optional math coprocessor 209). Chip 202 also includes CPU power management logic. Chip 202 receives a clock input (16 MHz and 50 MHz in this example) from clock/timing generator 204.
Chip 206 is connected to receive clock line SYSCLK from chip 202. Chip 206 also includes timer logic (approximately equivalent to two 8254s), which is connected to receive a 14.31818 MHz clock signal from clock generator 204. Chip 406 also includes interrupt controller logic (approximately equivalent to two 8259As). Chip 206 also includes DMA controller logic (approximately equivalent to two 8237s). Chip 206 also includes bus interface logic which is connected to the ISA bus 207. Chip 206 also includes power management logic, and a real-time clock (approximately equivalent to a 146818), which is connected to receive a 32.768 KHz signal from clock generator 204. Chip 206 also includes serial port control logic (approximately equivalent to two 16450s), which is connected to receive a 1.8432 MHz signal from clock generator 204.
Flash EPROM 201 contains code for BIOS and for the operating system (e.g. DOS). This chip, in the presently preferred embodiment, is a 256K×8 memory.
A microcontroller 210 (an 80C51SL, in the presently preferred embodiment) receives keyboard inputs from keyboard 212. Associated with microcontroller 210 are SRAM 211 (32K×8 in this sample embodiment) and resonant crystal oscillator 213 (16 MHz in this sample embodiment).
Video signals from VGA controller 240 (which is a WD90C22 in the presently preferred embodiment), controls the LCD display 242. VGA controller 240 is also connected to programmable pixel clock 243.
Also connected to bus 207 is a floppy disk drive controller 250 (connecting to floppy disk drive 251) and an IDE interface 270, which is connectible to the internal hard disk drive 271 (or to a semiconductor massmemory drive emulation, if a diskless configuration is chosen).
A power supply controlled by controller 230 is driven by a battery, and also may be powered by external power through an input socket. This power supply, in the presently preferred embodiment, provides output voltages of ±5 V, ±12 V, and +18.6 V. However, of course, lower logic supply voltages may be used in future embodiments.
The 82360SL chip connects to industry-standard connectors for serial ports (DB-9), parallel ports (DB-25), and optional modem unit 260.
FIGS. 3a-b (which fit together to form one schematic diagram) indicate the functional portions of chips 202 and 206 and a slightly different selection of other items but does not include the items of FIG. 2 which are located on the bottom board (within broken line in the center of FIG. 2), and FIGS. 4a-10b illustrate the wiring in more detail. In particular, 80386SL chip 202 appears in FIG. 4b along with the cache 203A, DRAM memory 203, and math coprocessor 209 in FIG. 4a. 82360SL chip 206 appears in FIG. 5b along with EPROM 201 in FIG. 5a. Keyboard controller 210 is in FIG. 6a with the external keyboard connector and mouse connector in the lower righthand portion of FIG. 6b. Clock generator 204 appears in FIG. 8a.
The external clock is divided down to provide the CPU clock, any math coprocessor clock, and internal clock signals. The maximum CPU clock frequency is one half the EFI (external frequency input), but EFI may be further divided to generate the CPU clock: the contents of the CPUPWRMODE register within 386SX core may provide further division by 2, 4, or 8 (or even stopping the CPU clock). The CPU clock frequency sets the machine cycle time, and thus basically the CPU clock frequency determines the number of transistor switchings per second. The power consumed by 80386SL 202, memory 203, 82360SL 206, . . . occurs primarily during transistor switchings; that is, the typical CMOS devices making up the circuitry have virtually zero static power consumption. Of course, power consumed by items such as display screen backlighting, DRAM refresh, and the real time clock will be independent of the machine cycle time; however, the bulk of the circuitry, which represents about half of the power in a backlit-screen system, will consume power roughly in proportion to the CPU clock frequency. System 100 also has APM advanced power management compatible BIOS.
FIG. 11 shows a prior art state diagram which may be adapted to the hardware system of FIGS. 1-10b with APM. In particular, first consider the system in the Ready state. If no System Event occurs for the time programmed in the Global Standby Timer, then a SMI is generated and the power management interrupt handler puts the system into the Global Standby state. The choice of System Events is by setting bits in the system events registers (SYS-- EVNT-- CFG0-SYS-- EVNT-- CFG2); the available bits correspond to any of the sixteen interrupts IRQ0-IRQ15 plus the following events RING-- SEL (modem ring detect), INTR-- SEL (any active interrupt), NMI-- SEL (nonmaskable interrupt), PERR-- SEL (parity error), IOCHCHK-- SEL (active I/O channel check), and SUS-- EVNT-- SEL (hardware suspend events).
When in Global Standby state, the system has an Auto Power Off Timer which times out in a user selected time interval and starts the countdown of its Suspend Warning Timer which times out in 1 second. The occurrence of a Stop Break Event resets the timers and switches the system from Global Standby state back into the Ready state. The Stop Break Events are selected from the same items as the System Events. A timeout of the Suspend Warning Timer switches the system into the Suspend state through an SMI request. Once the Suspend state is entered, then a resume (RSM) as from a pulse of the Suspend/Resume button, a ring indication signal on the serial port, or an alarm from the real time clock will provide transition to the ready state.
If a CPU Idle call occurs when APM is connected and the system is in the Ready state, then the system moves into the Transient Stop Clock state which stops the clock but does not reset any timer. Any interrupt will bring the system back to the Ready state.
FIG. 12 illustrates the state diagram for first preferred embodiment system 100 which provides for standby states with both a low speed clock and a stopped clock. The low speed clock permits detection of I/O events which may not generate interrupts. In particular, for an application such as data entry for a data base or word processing the keyboard will be intermittently used with gaps (such as to read the screen) on the order of tens of seconds during which running the CPU clock at one eighth its usual speed will save power but not freeze the screen.
Preferred embodiment 100 operates as follows. First consider the system in the Ready state. The SL system global standby timer counts down from 12 seconds (with time provided by real time clock 110), but the occurrence of any System Event, defined as an interrupt from keyboard 130, communication port 134, mouse 132, floppy disk controller 136, or hard disk controller (that is, an IRQ1, IRQ3, IRQ4, IRQ6,IRQ12, or IRQ14 interrupt), will reset the SL system global standby timer. The logical OR of these interrupts is denoted as SYSEVENT (system event), so SYSEVENT remaining false during the 12 seconds countdown leads to an SMI handler that divides the CPU clock frequency by a factor of 8, decrements a System Timeout software counter, and resets the 12 second SL system global standby timer. This is illustrated as the !SYSEVENT path state change from the Ready state to the transient Global Standby TO (global standby timeout) state and then immediately to the Low Speed state in FIG. 12 by the !STANDBYTO path. If STANDBYTO were true, then the STANDBYTO path from the transient Global Standby TO state to the Stop Clock state would be followed. STANDBYTO denotes the logical AND of ! IOEVENT, !SYSEVENT, and !SYSTIMEOUT where SYSTIMEOUT denotes the System Timeout counter containing a positive count and IOEVENT denotes the logical OR of I/O activity events of the keyboard, either the first serial port (COM1) or the second serial port (COM2), the floppy disk drive, the hard disk drive, or the mouse. The System Timeout counter typically has a number such as 15 or 20 loaded initially, although this is programmable in software. A count such as 15 or 20 will lead to a 3 to 4 minute system timeout as described in the following. The entry into the Global Standby TO state decrements the System Timeout counter.
Alternatively, if during the 12 second interval in the Ready state (with APM connected) a CPU Idle call is made, then the CPU Idle function stops the CPU clock but has no effect on the SL system global standby timer. This is illustrated by the CPUIDLE state change path in FIG. 12 from the Ready state to the Transient Stop Clock state. Any interrupt will move the system from the Transient Stop Clock state to the Low Speed state.
When the 12 second countdown of the SL system global standby timer expires while the system is in the Low Speed state, the SMI handler puts the system into the transient Global Standby state and then immediately back into either the Low Speed state or the Clock Stop state, again depending upon STANDBYTO. FIG. 12 illustrates this with the !SYSEVENT path from the Low Speed state to the Global Standby TO state and then either the STANDBYTO path to the Clock Stop state or the !STANDBYTO path to the Low Speed state. Again, entry into the Global Standby TO state decrements the System Timeout counter and resets the SL system global standby timer. Note that when the System Timeout counter reaches zero, then STANDBYTO will become true and the exit from the Global Standby TO state will be to the Stop Clock state.
A CPU Busy call or an I/O event will switch the system from the Low Speed state back into the Ready state and reset the SL system global standby timer (12 seconds) and the System Timeout count. FIG. 12 illustrates this state change by the IOEVENT or CPUBUSY path. The Low Speed state permits power saving in time intervals such as pauses to read the screen between data entry or word processing interactions without stopping the CPU clock. And if the pause extends to 3 or 4 minutes, then the System Timeout counter will have counted down and the system will go into the Stop Clock state.
When in the transient Global Standby TO state if no system event occurs (!SYSEVENT true) and if no I/O event occurs (!IOEVENT true) and if the System Timeout counter has reached zero (!SYSTIMEOUT), then STANDBYTO is true and the SMI handler stops the CPU clock and the system enters the Stop Clock state as illustrated in FIG. 12. Note that for the System Timeout counter to reach zero the Global Standby TO state must have been entered 15 or 20 times and with a 12 second timeout to enter Global Standby TO, this means a total of 3 or 4 minutes of no system events or I/O events.
Once in the Stop Clock state the Auto Power Off Timer and its subsequent Auto Power Off Warning Timer are loaded and countdown as previously described; and if both timers time out, then the SMI handler puts the system into the Suspend state. The Auto Power Off Timer is loaded with a user selected time interval and when this expires the Power Off Warning Timer is then loaded with 1 second. However, the occurrence of a break event will switch the system from the Stop Clock state back to the Ready state. The break events are the interrupts IRQ1 (keyboard), IRQ3 (COM2), IRQ4 (COM1), IRQ8 (real time clock), and IRQ12 (mouse), and their logical OR is denoted BRKEVENT in FIG. 3. And the only escape from the Suspend state is a resume (RSM) event: a pulse of the Suspend/Resume button, a ring indication (modem) signal on the serial port, or an alarm from the real time clock will provide transition to the ready state.
The net effect of the states of FIG. 12 compared to those of FIG. 11 is a splitting of the Global Standby state (with CPU clock stopped) into three states: Low Speed, the transient Global Standby TO, and Stop Clock with CPU clock running slowly in two of the three states. A running CPU clock permits monitoring of I/O events that do not generate interrupts.
A Hot Key to disable the Low Speed state keeps the CPU clock at full speed during operations such as spreadsheet calculations which may not generate any interrupts or I/O events. A Hot Key to reenable the Low Speed state is also available.
Peripherals such as a hard disk drive and an LCD screen with backlighting will have their own local power management and may power down independently of the global standby and auto suspend of the SL system. Preferred embodiment 100 also has the option of disabling the power management of FIG. 12 and reverting to FIG. 11 power management.
Software Implementation Details
Following in the Appendix is a sample specific implementation of software portions of the disclosed innovations. This example is intended to better illustrate the disclosed generally applicable innovations, and to comply with the best-mode requirements of US patent law; but of course this specific implementation is subject to change (and will certainly be changed as time goes by), and can be altered, as will be apparent to those skilled in the art, in many details.
The code portions set forth below in the Appendix provide the most relevant portions of the code used, but of course these code portions are used in combination with large additional portions of code. In the presently preferred embodiment, the software structure given below is used in combination with Phoenix™ BIOS code; but several vendors (such as AMI) offer BIOS software, and the disclosed code can be used with another vendor's BIOS code if desired. (Of course, minor adjustments would have to be made to the called routine names, etc.)
Further Modifications and Variations
It will be recognized by those skilled in the art that the innovative concepts disclosed in the present application can be applied in a wide variety of contexts. Moreover, the preferred implementation can be modified in a tremendous variety of ways. Accordingly, it should be understood that the modifications and variations suggested below and above are merely illustrative. These examples may help to show some of the scope of the inventive concepts, but these examples do not nearly exhaust the full scope of variations in the disclosed novel concepts.
For example, the APM and the associated CPU Idle and CPU Busy calls could be omitted along with the Transient Stop Clock state, the values loaded into timers could be varied, such as the Global SL system timer may be in multiples of 4 seconds with the Intel chip set, the system counter could have larger or smaller counts loaded in order to provide for longer or shorter time intervals of slow speed operation prior to a switch to a stopped clock. Other combinations of events could be used for any of SYSEVENT, IOEVENT, and BRKEVENT. ##SPC1##

Claims (10)

What is claimed is:
1. A computer system, comprising:
(a) a central processing unit (CPU);
(b) a clock electrically connected to said CPU, said clock having first and second non zero operating frequencies, where said first frequency is greater than said second frequency;
(c) a system timer electrically connected to said CPU;
(d) a system counter electrically corrected to said CPU; and
(e) a clock control in electronic communication with said CPU; wherein said clock control performs the steps of:
(i) recognizing at least four states for the computer system, said states including: a ready state, a global standby time out state, a low speed state, and a stop clock state;
(ii) adjusting the frequency of said clock to said first frequency while the computer system is in said ready state, to said second frequency while the computer system is in said global standby time out and low speed states, and to zero while the computer system is in said stop dock state;
(iii) switching the computer system from said ready state or said low speed state to said global standby time out state, if said system timer times out without a system event occurring;
(iv) switching the computer system from said low speed state to said ready state and resetting said timer if an IO event occurs; and
(v) switching the computer system from said global standby time out state to said stop clock state if no system event or IO event occurs, but switching to said low speed state otherwise.
2. The system of claim 1, wherein:
(a) said system timer is in hardware including a register whose contents determine a timeout interval of said system timer; and
(b) said system counter is in software and whose contents are programmable.
3. The system of claim 1, further comprising:
(a) a suspended state recognized by said clock control with said clock stopped, said clock control switching said system from said stop clock state to said suspended state if a suspend time out occurs prior to a break event but switching to said ready state if a break event occurs prior to suspend time out; and
(b) said clock control switching from said suspended state to said ready state upon the occurrence of a resume event.
4. The system of claim 3, wherein:
(a) said break events are interrupts from a keyboard, a communication port, a real time clock, or a mouse.
5. The system of claim 1, further comprising:
(a) a transient stop clock state recognized by said clock control with said clock stopped, said clock control switching said system from said ready or low speed states to said transient stop clock state when a CPU Idle call occurs, and switching from said transient stop clock state to said low speed state when an interrupt occurs.
6. The system of claim 1, wherein:
(a) said first frequency is a integral multiple of said second frequency.
7. The system of claim 6, wherein:
(a) said integral multiple equal 8.
8. The system of claim 1, wherein:
(a) said system events are interrupts from a keyboard, a communication port, a disk drive, or a mouse; and
(b) said IO events are activity in a keyboard, a communication port, a disk drive, or a mouse.
9. A computer system comprising:
a central processor unit (CPU);
a clock electrically connected to said CPU, said clock having normal, slow and stopped speeds;
system timer electrically connected to said CPU;
a system counter, in electronic communication with said CPU;
a power management controller, (power management) coupled to said timer, counter, and clock, said power management putting said clock into said slow speed and decrementing said counter when said timer times out, said power management stopping said clock when said timer times out and when said counter has counted down;
suspend timers; and
wherein said power management keeps said clock stopped when said suspend timers time out prior to a break event, and said power management puts said clock in said normal speed when a resume event occurs after said suspend timers time out.
10. A computer system comprising:
a central processor unit (CPU);
a clock electrically connected to said CPU, said clock having normal, slow and stopped speeds;
a system timer electrically connected to said CPU;
a system counter, in electronic communication with said CPU;
a power management controller, (power management) coupled to said timer, counter, and clock, said power management putting said clock into said slow speed and decrementing said counter when said timer times out, said power management stopping said clock when said timer times out and when said counter has counted down;
a CPU Idle call connection to BIOS; and
wherein said power management stops said clock when a CPU Idle call issues when said clock is in normal or slow speed, and said power management puts said clock into said slow speed when an interrupt occurs following said CPU Idle call.
US07/813,380 1991-12-23 1991-12-23 Computer with transparent power-saving manipulation of CPU clock Expired - Lifetime US5369771A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US07/813,380 US5369771A (en) 1991-12-23 1991-12-23 Computer with transparent power-saving manipulation of CPU clock

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/813,380 US5369771A (en) 1991-12-23 1991-12-23 Computer with transparent power-saving manipulation of CPU clock

Publications (1)

Publication Number Publication Date
US5369771A true US5369771A (en) 1994-11-29

Family

ID=25212216

Family Applications (1)

Application Number Title Priority Date Filing Date
US07/813,380 Expired - Lifetime US5369771A (en) 1991-12-23 1991-12-23 Computer with transparent power-saving manipulation of CPU clock

Country Status (1)

Country Link
US (1) US5369771A (en)

Cited By (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442794A (en) * 1993-12-01 1995-08-15 Advanced Micro Devices, Inc. Disable technique employed during low battery conditions within a portable computer system
WO1995031782A1 (en) * 1994-05-12 1995-11-23 Ast Research, Inc. Cpu activity monitoring through cache watching
US5475848A (en) * 1990-12-28 1995-12-12 Dia Semicon Systems, Incorporated Supervisory control method and power saving control unit for computer system
US5499201A (en) * 1992-03-12 1996-03-12 Wenger; Joel Method for reducing the electricity consumption of microprocessor-based apparatuses, in particular those for public telephone stations
US5504908A (en) * 1992-04-02 1996-04-02 Dia Semicon Systems Incorporated Power saving control system for computer system
US5504910A (en) * 1994-02-02 1996-04-02 Advanced Micro Devices, Inc. Power management unit including software configurable state register and time-out counters for protecting against misbehaved software
US5511203A (en) * 1994-02-02 1996-04-23 Advanced Micro Devices Power management system distinguishing between primary and secondary system activity
US5537656A (en) * 1994-06-17 1996-07-16 Intel Corporation Method and apparatus for a microprocessor to enter and exit a reduced power consumption state
US5546568A (en) * 1993-12-29 1996-08-13 Intel Corporation CPU clock control unit
US5568637A (en) * 1993-06-28 1996-10-22 Casio Computer Co., Ltd. Electronic device having pseudo-SRAM and CPU operating in an active mode and in an idle mode
US5574920A (en) * 1994-10-25 1996-11-12 Microsoft Corporation Method for controlling power down of a hard disk drive in a computer
US5596757A (en) * 1995-02-16 1997-01-21 Simple Technology, Inc. System and method for selectively providing termination power to a SCSI bus terminator from a host device
US5603036A (en) * 1993-02-19 1997-02-11 Intel Corporation Power management system for components used in battery powered applications
US5613135A (en) * 1992-09-17 1997-03-18 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
EP0766167A1 (en) * 1995-09-26 1997-04-02 International Business Machines Corporation Power management of an information processing system
US5630143A (en) * 1992-03-27 1997-05-13 Cyrix Corporation Microprocessor with externally controllable power management
US5634131A (en) * 1992-11-06 1997-05-27 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5648799A (en) * 1992-12-02 1997-07-15 Elonex I.P. Holdings, Ltd. Low-power-consumption monitor standby system
US5649212A (en) * 1993-07-26 1997-07-15 International Business Machines Corporation Information processing system having a floppy disk drive with disk protection during a resume mode
US5655127A (en) * 1994-02-04 1997-08-05 Intel Corporation Method and apparatus for control of power consumption in a computer system
US5666541A (en) * 1994-09-07 1997-09-09 Compaq Computer Corporation Reducing power usage in a personal computer
US5682550A (en) * 1995-06-07 1997-10-28 International Business Machines Corporation System for restricting user access to default work area settings upon restoration from nonvolatile memory where the settings are independent of the restored state information
US5687311A (en) * 1994-07-21 1997-11-11 Mitsubishi Denki Kabushiki Kaisha Microcomputer with detection of predetermined data for enabling execution of instructions for stopping supply of clock
US5692202A (en) * 1995-12-29 1997-11-25 Intel Corporation System, apparatus, and method for managing power in a computer system
US5708819A (en) * 1995-10-10 1998-01-13 Standard Microsystems Corporation Process and apparatus for generating power management events in a computer system
US5715467A (en) * 1996-04-04 1998-02-03 Vlsi Technology, Inc. Event driven power management control circuit and method therefor
US5715464A (en) * 1995-06-07 1998-02-03 International Business Machines Corporation Computer system having suspend once resume many sessions
US5721934A (en) * 1994-06-29 1998-02-24 Intel Corporation Retrofit external power saving system and method for use
US5724592A (en) * 1995-03-31 1998-03-03 Intel Corporation Method and apparatus for managing active power consumption in a microprocessor controlled storage device
US5752044A (en) * 1995-06-07 1998-05-12 International Business Machines Corporation Computer system having multi-level suspend timers to suspend from operation in attended and unattended modes
US5754837A (en) * 1994-12-22 1998-05-19 Texas Instruments Incorporated Clock control circuits, systems and methods
US5758174A (en) * 1995-06-07 1998-05-26 International Business Machines Corporation Computer system having a plurality of stored system capability states from which to resume
US5796940A (en) * 1993-03-10 1998-08-18 Sega Enterprises, Ltd. Method for executing software program and circuit for implementing the method
US5799198A (en) * 1990-06-01 1998-08-25 Vadem Corporation Activity monitor for computer system power management
US5821924A (en) * 1992-09-04 1998-10-13 Elonex I.P. Holdings, Ltd. Computer peripherals low-power-consumption standby system
US5822596A (en) * 1995-11-06 1998-10-13 International Business Machines Corporation Controlling power up using clock gating
US5825674A (en) * 1995-09-29 1998-10-20 Intel Corporation Power control for mobile electronics using no-operation instructions
US5848281A (en) * 1996-07-23 1998-12-08 Smalley; Kenneth George Method and apparatus for powder management in a multifunction controller with an embedded microprocessor
US5881318A (en) * 1996-07-09 1999-03-09 Gateway 2000, Inc. Keyboard audio controls for integrated CD-ROM players
US5886689A (en) * 1995-06-07 1999-03-23 Seiko Epson Corporation Computer system with video display controller having power saving modes
US5925133A (en) * 1994-10-19 1999-07-20 Advanced Micro Devices, Inc. Integrated processor system adapted for portable personal information devices
US5991883A (en) * 1996-06-03 1999-11-23 Compaq Computer Corporation Power conservation method for a portable computer with LCD display
US6014611A (en) * 1995-05-30 2000-01-11 Kabushiki Kaisha Toshiba Cooling mode switching system for CPU
US6016548A (en) * 1993-12-28 2000-01-18 Kabushiki Kaisha Toshiba Apparatus for controlling duty ratio of power saving of CPU
US6021498A (en) * 1994-04-06 2000-02-01 Advanced Micro Devices, Inc. Power management unit including a programmable index register for accessing configuration registers
US6078312A (en) * 1997-07-09 2000-06-20 Gateway 2000, Inc. Pointing device with absolute and relative positioning capability
US6088806A (en) * 1998-10-20 2000-07-11 Seiko Epson Corporation Apparatus and method with improved power-down mode
US6163847A (en) * 1997-03-21 2000-12-19 Samsung Electronics, Ltd. Computer with automatic power cut-off function and control method therefor
US6208716B1 (en) 1998-06-02 2001-03-27 3Com Corporation Telephone answering apparatus and method for determining the time of message reception
US6216235B1 (en) 1994-06-20 2001-04-10 C. Douglass Thomas Thermal and power management for computer systems
US6311281B1 (en) * 1999-03-02 2001-10-30 Edwin H. Taylor Apparatus and method for changing processor clock ratio settings
US6317841B1 (en) * 1995-05-30 2001-11-13 Kabushiki Kaisha Toshiba Computer system using stop clock function of CPU to enter low power state
US20010043191A1 (en) * 1997-07-31 2001-11-22 Todd D. Lindsey Audio and video controls on a pointing device for a computer
US6343363B1 (en) 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
US6345363B1 (en) 1998-06-23 2002-02-05 National Semiconductor Corporation Microprocessor core power reduction by not reloading existing operands
US6378081B1 (en) 1998-10-01 2002-04-23 Gateway, Inc. Power conservation without performance reduction in a power-managed system
US6393584B1 (en) 1995-04-26 2002-05-21 International Business Machines Corporation Method and system for efficiently saving the operating state of a data processing system
US6421754B1 (en) * 1994-12-22 2002-07-16 Texas Instruments Incorporated System management mode circuits, systems and methods
US6526517B1 (en) 1999-12-10 2003-02-25 Dell Usa L.P. Staggered computer component startup
US20030126480A1 (en) * 2001-12-29 2003-07-03 Samsung Electronics Co., Ltd. Portable computer and power controlling method thereof
US6601179B1 (en) * 1997-05-02 2003-07-29 Intel Corporation Circuit and method for controlling power and performance based on operating environment
US6608476B1 (en) * 2000-09-26 2003-08-19 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US6611921B2 (en) 2001-09-07 2003-08-26 Microsoft Corporation Input device with two input signal generating means having a power state where one input means is powered down and the other input means is cycled between a powered up state and a powered down state
US20030210247A1 (en) * 2002-05-09 2003-11-13 Ying Cui Power management for an integrated graphics device
US6703599B1 (en) 2002-01-30 2004-03-09 Microsoft Corporation Proximity sensor with adaptive threshold
US6763478B1 (en) 2000-10-24 2004-07-13 Dell Products, L.P. Variable clock cycle for processor, bus and components for power management in an information handling system
EP1552369A1 (en) * 2002-04-04 2005-07-13 Thomson Licensing Temporary user suspension of automatic shutdown
US6954867B2 (en) 2002-07-26 2005-10-11 Microsoft Corporation Capacitive sensing employing a repeatable offset charge
US20050268133A1 (en) * 1997-06-27 2005-12-01 Paul Beard Battery powered device with dynamic power and performance management
US6988214B1 (en) 2000-11-06 2006-01-17 Dell Products L.P. Processor power state transistions using separate logic control
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US20060248361A1 (en) * 2000-09-27 2006-11-02 Fung Henry T Dynamic power and workload management for multi-server system
US20060248360A1 (en) * 2001-05-18 2006-11-02 Fung Henry T Multi-server and multi-CPU power management system and method
US7167993B1 (en) 1994-06-20 2007-01-23 Thomas C Douglass Thermal and power management for computer systems
US20070074219A1 (en) * 2000-06-02 2007-03-29 Microsoft Corporation Dynamically Variable Idle Time Thread Scheduling
CN100394357C (en) * 2005-11-28 2008-06-11 威盛电子股份有限公司 Power-saving mode adjusting method and its logic chip and computer system
US20080162967A1 (en) * 2007-01-03 2008-07-03 Apple Computer, Inc. Gated power management over a system bus
US7552350B2 (en) 2000-09-27 2009-06-23 Huron Ip Llc System and method for activity or event base dynamic energy conserving server reconfiguration
USRE40866E1 (en) 2000-09-27 2009-08-04 Huron Ip Llc System, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment
US20090276330A1 (en) * 2000-12-29 2009-11-05 Pankaj Kedia Low-Power Subsystem for Portable Computers
US7721125B2 (en) 2001-04-11 2010-05-18 Huron Ip, Llc System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US20100176875A1 (en) * 2009-01-14 2010-07-15 Pulijala Srinivas K Method for Improving Power-Supply Rejection
US8078901B1 (en) 2008-06-16 2011-12-13 Western Digital Technologies, Inc. Method for increasing a processor operating frequency when other subsystem demands are low
US20130047017A1 (en) * 2011-08-17 2013-02-21 Askey Computer Corporation Power management system and method
US9184498B2 (en) 2013-03-15 2015-11-10 Gigoptix, Inc. Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through fine control of a tunable frequency of a tank circuit of a VCO thereof
US9195293B1 (en) 2013-05-03 2015-11-24 Western Digital Technologies, Inc. User controlled data storage device power and performance settings
US9275690B2 (en) 2012-05-30 2016-03-01 Tahoe Rf Semiconductor, Inc. Power management in an electronic system through reducing energy usage of a battery and/or controlling an output power of an amplifier thereof
CN103885570B (en) * 2012-11-15 2016-08-24 名硕电脑(苏州)有限公司 Multi-functional input system
US9509351B2 (en) 2012-07-27 2016-11-29 Tahoe Rf Semiconductor, Inc. Simultaneous accommodation of a low power signal and an interfering signal in a radio frequency (RF) receiver
US9531070B2 (en) 2013-03-15 2016-12-27 Christopher T. Schiller Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through accommodating differential coupling between VCOs thereof
US9666942B2 (en) 2013-03-15 2017-05-30 Gigpeak, Inc. Adaptive transmit array for beam-steering
US9716315B2 (en) 2013-03-15 2017-07-25 Gigpeak, Inc. Automatic high-resolution adaptive beam-steering
US9722310B2 (en) 2013-03-15 2017-08-01 Gigpeak, Inc. Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through frequency multiplication
US9780449B2 (en) 2013-03-15 2017-10-03 Integrated Device Technology, Inc. Phase shift based improved reference input frequency signal injection into a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation to reduce a phase-steering requirement during beamforming
US9837714B2 (en) 2013-03-15 2017-12-05 Integrated Device Technology, Inc. Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through a circular configuration thereof
US10169268B2 (en) * 2009-08-31 2019-01-01 Intel Corporation Providing state storage in a processor for system management mode

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3941989A (en) * 1974-12-13 1976-03-02 Mos Technology, Inc. Reducing power consumption in calculators
US4365290A (en) * 1979-03-12 1982-12-21 Medtronic, Inc. Computer system with power control circuit
US4409665A (en) * 1979-12-26 1983-10-11 Texas Instruments Incorporated Turn-off-processor between keystrokes
US4615005A (en) * 1980-10-27 1986-09-30 Hitachi, Ltd. Data processing apparatus with clock signal control by microinstruction for reduced power consumption and method therefor
US4698748A (en) * 1983-10-07 1987-10-06 Essex Group, Inc. Power-conserving control system for turning-off the power and the clocking for data transactions upon certain system inactivity
US4758945A (en) * 1979-08-09 1988-07-19 Motorola, Inc. Method for reducing power consumed by a static microprocessor
US4851987A (en) * 1986-01-17 1989-07-25 International Business Machines Corporation System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
US4893271A (en) * 1983-11-07 1990-01-09 Motorola, Inc. Synthesized clock microcomputer with power saving
EP0381021A2 (en) * 1989-01-31 1990-08-08 Kabushiki Kaisha Toshiba Power saving system
US4980836A (en) * 1988-10-14 1990-12-25 Compaq Computer Corporation Apparatus for reducing computer system power consumption
EP0419908A2 (en) * 1989-09-29 1991-04-03 Kabushiki Kaisha Toshiba Computer system with a sleep mode function
EP0421431A2 (en) * 1989-10-06 1991-04-10 Kabushiki Kaisha Toshiba A computer system with a sleep function
EP0426410A2 (en) * 1989-10-30 1991-05-08 Texas Instruments Incorporated Real-time power conservation for portable computers
US5025387A (en) * 1988-09-06 1991-06-18 Motorola, Inc. Power saving arrangement for a clocked digital circuit
WO1992009028A1 (en) * 1990-11-09 1992-05-29 Wang Laboratories, Inc. System clock speed controller
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3941989A (en) * 1974-12-13 1976-03-02 Mos Technology, Inc. Reducing power consumption in calculators
US4365290A (en) * 1979-03-12 1982-12-21 Medtronic, Inc. Computer system with power control circuit
US4758945A (en) * 1979-08-09 1988-07-19 Motorola, Inc. Method for reducing power consumed by a static microprocessor
US4409665A (en) * 1979-12-26 1983-10-11 Texas Instruments Incorporated Turn-off-processor between keystrokes
US4615005A (en) * 1980-10-27 1986-09-30 Hitachi, Ltd. Data processing apparatus with clock signal control by microinstruction for reduced power consumption and method therefor
US4698748A (en) * 1983-10-07 1987-10-06 Essex Group, Inc. Power-conserving control system for turning-off the power and the clocking for data transactions upon certain system inactivity
US4893271A (en) * 1983-11-07 1990-01-09 Motorola, Inc. Synthesized clock microcomputer with power saving
US4851987A (en) * 1986-01-17 1989-07-25 International Business Machines Corporation System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
US5025387A (en) * 1988-09-06 1991-06-18 Motorola, Inc. Power saving arrangement for a clocked digital circuit
US4980836A (en) * 1988-10-14 1990-12-25 Compaq Computer Corporation Apparatus for reducing computer system power consumption
EP0381021A2 (en) * 1989-01-31 1990-08-08 Kabushiki Kaisha Toshiba Power saving system
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
EP0419908A2 (en) * 1989-09-29 1991-04-03 Kabushiki Kaisha Toshiba Computer system with a sleep mode function
EP0421431A2 (en) * 1989-10-06 1991-04-10 Kabushiki Kaisha Toshiba A computer system with a sleep function
EP0426410A2 (en) * 1989-10-30 1991-05-08 Texas Instruments Incorporated Real-time power conservation for portable computers
WO1992009028A1 (en) * 1990-11-09 1992-05-29 Wang Laboratories, Inc. System clock speed controller

Cited By (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799198A (en) * 1990-06-01 1998-08-25 Vadem Corporation Activity monitor for computer system power management
US5475848A (en) * 1990-12-28 1995-12-12 Dia Semicon Systems, Incorporated Supervisory control method and power saving control unit for computer system
US5499201A (en) * 1992-03-12 1996-03-12 Wenger; Joel Method for reducing the electricity consumption of microprocessor-based apparatuses, in particular those for public telephone stations
US20050024802A1 (en) * 1992-03-27 2005-02-03 Robert Maher Instruction-initiated power management method for a pipelined data processor
US7120810B2 (en) 1992-03-27 2006-10-10 National Semiconductor Corporation Instruction-initiated power management method for a pipelined data processor
US7900075B2 (en) 1992-03-27 2011-03-01 National Semiconductor Corporation Pipelined computer system with power management control
US6721894B2 (en) 1992-03-27 2004-04-13 National Semiconductor Corporation Method for controlling power of a microprocessor by asserting and de-asserting a control signal in response conditions associated with the microprocessor entering and exiting low power state respectively
US20040172572A1 (en) * 1992-03-27 2004-09-02 Robert Maher Pipelined data processor with signal-initiated power management control
US20040172567A1 (en) * 1992-03-27 2004-09-02 Robert Maher Signal-initiated power management method for a pipelined data processor
US20040172568A1 (en) * 1992-03-27 2004-09-02 Robert Maher Signal-initiated method for suspending operation of a pipelined data processor
US7900076B2 (en) 1992-03-27 2011-03-01 National Semiconductor Corporation Power management method for a pipelined computer system
US20040230852A1 (en) * 1992-03-27 2004-11-18 Robert Maher Pipelined data processor with instruction-initiated power management control
US7000132B2 (en) 1992-03-27 2006-02-14 National Semiconductor Corporation Signal-initiated power management method for a pipelined data processor
US6088807A (en) * 1992-03-27 2000-07-11 National Semiconductor Corporation Computer system with low power mode invoked by halt instruction
US6978390B2 (en) 1992-03-27 2005-12-20 National Semiconductor Corporation Pipelined data processor with instruction-initiated power management control
US6910141B2 (en) 1992-03-27 2005-06-21 National Semiconductor Corporation Pipelined data processor with signal-initiated power management control
US5630143A (en) * 1992-03-27 1997-05-13 Cyrix Corporation Microprocessor with externally controllable power management
US6694443B1 (en) 1992-03-27 2004-02-17 National Semiconductor Corporation System for controlling power of a microprocessor by asserting and de-asserting a control signal in response to condition associated with the microprocessor entering and exiting low power state respectively
US7509512B2 (en) 1992-03-27 2009-03-24 National Semiconductor Corporation Instruction-initiated method for suspending operation of a pipelined data processor
US7062666B2 (en) 1992-03-27 2006-06-13 National Semiconductor Corporation Signal-initiated method for suspending operation of a pipelined data processor
US5504908A (en) * 1992-04-02 1996-04-02 Dia Semicon Systems Incorporated Power saving control system for computer system
US5821924A (en) * 1992-09-04 1998-10-13 Elonex I.P. Holdings, Ltd. Computer peripherals low-power-consumption standby system
US5613135A (en) * 1992-09-17 1997-03-18 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
US5884085A (en) * 1992-09-17 1999-03-16 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
US5905914A (en) * 1992-09-17 1999-05-18 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
US5634131A (en) * 1992-11-06 1997-05-27 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5648799A (en) * 1992-12-02 1997-07-15 Elonex I.P. Holdings, Ltd. Low-power-consumption monitor standby system
US5880719A (en) * 1992-12-02 1999-03-09 Eloney I.P. Holdings L.T.D. Low-power-consumption monitor standby system
US5696977A (en) * 1993-02-19 1997-12-09 Intel Corporation Power management system for components used in battery powered applications
US5603036A (en) * 1993-02-19 1997-02-11 Intel Corporation Power management system for components used in battery powered applications
US5796940A (en) * 1993-03-10 1998-08-18 Sega Enterprises, Ltd. Method for executing software program and circuit for implementing the method
US5568637A (en) * 1993-06-28 1996-10-22 Casio Computer Co., Ltd. Electronic device having pseudo-SRAM and CPU operating in an active mode and in an idle mode
US5649212A (en) * 1993-07-26 1997-07-15 International Business Machines Corporation Information processing system having a floppy disk drive with disk protection during a resume mode
US5442794A (en) * 1993-12-01 1995-08-15 Advanced Micro Devices, Inc. Disable technique employed during low battery conditions within a portable computer system
US6016548A (en) * 1993-12-28 2000-01-18 Kabushiki Kaisha Toshiba Apparatus for controlling duty ratio of power saving of CPU
US5546568A (en) * 1993-12-29 1996-08-13 Intel Corporation CPU clock control unit
US5511203A (en) * 1994-02-02 1996-04-23 Advanced Micro Devices Power management system distinguishing between primary and secondary system activity
US5504910A (en) * 1994-02-02 1996-04-02 Advanced Micro Devices, Inc. Power management unit including software configurable state register and time-out counters for protecting against misbehaved software
US5655127A (en) * 1994-02-04 1997-08-05 Intel Corporation Method and apparatus for control of power consumption in a computer system
US6021498A (en) * 1994-04-06 2000-02-01 Advanced Micro Devices, Inc. Power management unit including a programmable index register for accessing configuration registers
US5564015A (en) * 1994-05-12 1996-10-08 Ast Research, Inc. CPU activity monitoring through cache watching
WO1995031782A1 (en) * 1994-05-12 1995-11-23 Ast Research, Inc. Cpu activity monitoring through cache watching
US5537656A (en) * 1994-06-17 1996-07-16 Intel Corporation Method and apparatus for a microprocessor to enter and exit a reduced power consumption state
US7506190B2 (en) 1994-06-20 2009-03-17 Thomas C Douglass Thermal and power management for computer systems
US7937599B1 (en) 1994-06-20 2011-05-03 Ipventure, Inc. Thermal and power management for computer systems
US7167993B1 (en) 1994-06-20 2007-01-23 Thomas C Douglass Thermal and power management for computer systems
US7293186B2 (en) 1994-06-20 2007-11-06 Thomas C Douglass Thermal and power management for computer systems
US7418611B1 (en) 1994-06-20 2008-08-26 Thomas C Douglass Thermal and power management for computer systems
US6487668B2 (en) 1994-06-20 2002-11-26 C. Douglass Thomas Thermal and power management to computer systems
US6216235B1 (en) 1994-06-20 2001-04-10 C. Douglass Thomas Thermal and power management for computer systems
US5721934A (en) * 1994-06-29 1998-02-24 Intel Corporation Retrofit external power saving system and method for use
US5687311A (en) * 1994-07-21 1997-11-11 Mitsubishi Denki Kabushiki Kaisha Microcomputer with detection of predetermined data for enabling execution of instructions for stopping supply of clock
US5675810A (en) * 1994-09-07 1997-10-07 Compaq Computer Corporation Reducing power usage in a personal computer
US5669004A (en) * 1994-09-07 1997-09-16 Compaq Computer Corporation Reducing power usage in a personal computer
US5666541A (en) * 1994-09-07 1997-09-09 Compaq Computer Corporation Reducing power usage in a personal computer
US6343363B1 (en) 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
US5925133A (en) * 1994-10-19 1999-07-20 Advanced Micro Devices, Inc. Integrated processor system adapted for portable personal information devices
US5574920A (en) * 1994-10-25 1996-11-12 Microsoft Corporation Method for controlling power down of a hard disk drive in a computer
US6421754B1 (en) * 1994-12-22 2002-07-16 Texas Instruments Incorporated System management mode circuits, systems and methods
US5754837A (en) * 1994-12-22 1998-05-19 Texas Instruments Incorporated Clock control circuits, systems and methods
US5596757A (en) * 1995-02-16 1997-01-21 Simple Technology, Inc. System and method for selectively providing termination power to a SCSI bus terminator from a host device
US5724592A (en) * 1995-03-31 1998-03-03 Intel Corporation Method and apparatus for managing active power consumption in a microprocessor controlled storage device
US6393584B1 (en) 1995-04-26 2002-05-21 International Business Machines Corporation Method and system for efficiently saving the operating state of a data processing system
US6014611A (en) * 1995-05-30 2000-01-11 Kabushiki Kaisha Toshiba Cooling mode switching system for CPU
US6317841B1 (en) * 1995-05-30 2001-11-13 Kabushiki Kaisha Toshiba Computer system using stop clock function of CPU to enter low power state
US6243656B1 (en) 1995-05-30 2001-06-05 Kabushiki Kaisha Toshiba Cooling mode switching system for CPU
US5752044A (en) * 1995-06-07 1998-05-12 International Business Machines Corporation Computer system having multi-level suspend timers to suspend from operation in attended and unattended modes
US5758174A (en) * 1995-06-07 1998-05-26 International Business Machines Corporation Computer system having a plurality of stored system capability states from which to resume
US5682550A (en) * 1995-06-07 1997-10-28 International Business Machines Corporation System for restricting user access to default work area settings upon restoration from nonvolatile memory where the settings are independent of the restored state information
USRE38108E1 (en) 1995-06-07 2003-05-06 Seiko Epson Corporation Computer system with video display controller having power saving modes
US5715464A (en) * 1995-06-07 1998-02-03 International Business Machines Corporation Computer system having suspend once resume many sessions
US5886689A (en) * 1995-06-07 1999-03-23 Seiko Epson Corporation Computer system with video display controller having power saving modes
EP0766167A1 (en) * 1995-09-26 1997-04-02 International Business Machines Corporation Power management of an information processing system
US5825674A (en) * 1995-09-29 1998-10-20 Intel Corporation Power control for mobile electronics using no-operation instructions
US5708819A (en) * 1995-10-10 1998-01-13 Standard Microsystems Corporation Process and apparatus for generating power management events in a computer system
US5822596A (en) * 1995-11-06 1998-10-13 International Business Machines Corporation Controlling power up using clock gating
US5692202A (en) * 1995-12-29 1997-11-25 Intel Corporation System, apparatus, and method for managing power in a computer system
US5884088A (en) * 1995-12-29 1999-03-16 Intel Corporation System, apparatus and method for managing power in a computer system
US5715467A (en) * 1996-04-04 1998-02-03 Vlsi Technology, Inc. Event driven power management control circuit and method therefor
US5991883A (en) * 1996-06-03 1999-11-23 Compaq Computer Corporation Power conservation method for a portable computer with LCD display
US5881318A (en) * 1996-07-09 1999-03-09 Gateway 2000, Inc. Keyboard audio controls for integrated CD-ROM players
US5848281A (en) * 1996-07-23 1998-12-08 Smalley; Kenneth George Method and apparatus for powder management in a multifunction controller with an embedded microprocessor
US6163847A (en) * 1997-03-21 2000-12-19 Samsung Electronics, Ltd. Computer with automatic power cut-off function and control method therefor
US6601179B1 (en) * 1997-05-02 2003-07-29 Intel Corporation Circuit and method for controlling power and performance based on operating environment
US7376848B2 (en) 1997-06-27 2008-05-20 Broadcom Corporation Battery powered device with dynamic power and performance management
US20110225436A1 (en) * 1997-06-27 2011-09-15 Paul Beard Battery powered device with dynamic and performance management
US20080215901A1 (en) * 1997-06-27 2008-09-04 Paul Beard Battery powered device with dynamic and performance management
US7900067B2 (en) 1997-06-27 2011-03-01 Broadcom Corporation Battery powered device with dynamic and performance management
US20050268133A1 (en) * 1997-06-27 2005-12-01 Paul Beard Battery powered device with dynamic power and performance management
US8504852B2 (en) 1997-06-27 2013-08-06 Broadcom Corporation Battery powered device with dynamic power and performance management
US6078312A (en) * 1997-07-09 2000-06-20 Gateway 2000, Inc. Pointing device with absolute and relative positioning capability
US7079112B1 (en) 1997-07-09 2006-07-18 Gateway Inc. Pointing device with absolute and relative positioning capability
US20010043191A1 (en) * 1997-07-31 2001-11-22 Todd D. Lindsey Audio and video controls on a pointing device for a computer
US6208716B1 (en) 1998-06-02 2001-03-27 3Com Corporation Telephone answering apparatus and method for determining the time of message reception
US6345363B1 (en) 1998-06-23 2002-02-05 National Semiconductor Corporation Microprocessor core power reduction by not reloading existing operands
US6378081B1 (en) 1998-10-01 2002-04-23 Gateway, Inc. Power conservation without performance reduction in a power-managed system
US6088806A (en) * 1998-10-20 2000-07-11 Seiko Epson Corporation Apparatus and method with improved power-down mode
US6311281B1 (en) * 1999-03-02 2001-10-30 Edwin H. Taylor Apparatus and method for changing processor clock ratio settings
US6526517B1 (en) 1999-12-10 2003-02-25 Dell Usa L.P. Staggered computer component startup
US7849463B2 (en) * 2000-06-02 2010-12-07 Microsoft Corporation Dynamically variable idle time thread scheduling
US20070074219A1 (en) * 2000-06-02 2007-03-29 Microsoft Corporation Dynamically Variable Idle Time Thread Scheduling
US6608476B1 (en) * 2000-09-26 2003-08-19 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US7558976B2 (en) 2000-09-27 2009-07-07 Huron Ip Llc System, method, architecture, and computer program product for dynamic power management in a computer system
US7552350B2 (en) 2000-09-27 2009-06-23 Huron Ip Llc System and method for activity or event base dynamic energy conserving server reconfiguration
US7512822B2 (en) 2000-09-27 2009-03-31 Huron Ip Llc System and method for activity or event based dynamic energy conserving server reconfiguration
US7533283B2 (en) 2000-09-27 2009-05-12 Huron Ip Llc Apparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices
US7484111B2 (en) 2000-09-27 2009-01-27 Huron Ip Llc Power on demand and workload management system and method
US7562239B2 (en) 2000-09-27 2009-07-14 Huron Ip Llc System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US8074092B2 (en) 2000-09-27 2011-12-06 Huron Ip Llc System, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment
US7272735B2 (en) 2000-09-27 2007-09-18 Huron Ip Llc Dynamic power and workload management for multi-server system
US20060248361A1 (en) * 2000-09-27 2006-11-02 Fung Henry T Dynamic power and workload management for multi-server system
USRE40866E1 (en) 2000-09-27 2009-08-04 Huron Ip Llc System, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment
US20060265608A1 (en) * 2000-09-27 2006-11-23 Fung Henry T System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US6763478B1 (en) 2000-10-24 2004-07-13 Dell Products, L.P. Variable clock cycle for processor, bus and components for power management in an information handling system
US6988214B1 (en) 2000-11-06 2006-01-17 Dell Products L.P. Processor power state transistions using separate logic control
US8751837B2 (en) * 2000-12-29 2014-06-10 Intel Corporation Low-power subsystem for portable computers
US20090276330A1 (en) * 2000-12-29 2009-11-05 Pankaj Kedia Low-Power Subsystem for Portable Computers
US7721125B2 (en) 2001-04-11 2010-05-18 Huron Ip, Llc System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US20060248360A1 (en) * 2001-05-18 2006-11-02 Fung Henry T Multi-server and multi-CPU power management system and method
US20050078085A1 (en) * 2001-09-07 2005-04-14 Microsoft Corporation Data input device power management including beacon state
US20050168438A1 (en) * 2001-09-07 2005-08-04 Microsoft Corporation Capacitive sensing and data input device power management
US6995747B2 (en) 2001-09-07 2006-02-07 Microsoft Corporation Capacitive sensing and data input device power management
US6850229B2 (en) 2001-09-07 2005-02-01 Microsoft Corporation Capacitive sensing and data input device power management
US7023425B2 (en) 2001-09-07 2006-04-04 Microsoft Corporation Data input device power management including beacon state
US6816150B2 (en) 2001-09-07 2004-11-09 Microsoft Corporation Data input device power management including beacon state
US6611921B2 (en) 2001-09-07 2003-08-26 Microsoft Corporation Input device with two input signal generating means having a power state where one input means is powered down and the other input means is cycled between a powered up state and a powered down state
US6661410B2 (en) 2001-09-07 2003-12-09 Microsoft Corporation Capacitive sensing and data input device power management
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US20030126480A1 (en) * 2001-12-29 2003-07-03 Samsung Electronics Co., Ltd. Portable computer and power controlling method thereof
US6933922B2 (en) 2002-01-30 2005-08-23 Microsoft Corporation Proximity sensor with adaptive threshold
US20050200603A1 (en) * 2002-01-30 2005-09-15 Microsoft Corporation Proximity sensor with adaptive threshold
US20050146499A1 (en) * 2002-01-30 2005-07-07 Microsoft Corporation Proximity sensor with adaptive threshold
US6703599B1 (en) 2002-01-30 2004-03-09 Microsoft Corporation Proximity sensor with adaptive threshold
US20040142705A1 (en) * 2002-01-30 2004-07-22 Microsoft Corporation Proximity sensor with adaptive threshold
US7479944B2 (en) 2002-01-30 2009-01-20 Microsoft Corporation Proximity sensor with adaptive threshold
US7002550B2 (en) 2002-01-30 2006-02-21 Microsoft Corporation Proximity sensor with adaptive threshold
EP1552369A1 (en) * 2002-04-04 2005-07-13 Thomson Licensing Temporary user suspension of automatic shutdown
EP1552369A4 (en) * 2002-04-04 2010-05-05 Thomson Licensing Temporary user suspension of automatic shutdown
US7149909B2 (en) 2002-05-09 2006-12-12 Intel Corporation Power management for an integrated graphics device
US20030210247A1 (en) * 2002-05-09 2003-11-13 Ying Cui Power management for an integrated graphics device
US6954867B2 (en) 2002-07-26 2005-10-11 Microsoft Corporation Capacitive sensing employing a repeatable offset charge
US7124312B2 (en) 2002-07-26 2006-10-17 Microsoft Corporation Capacitive sensing employing a repeatable offset charge
US20050240785A1 (en) * 2002-07-26 2005-10-27 Microsoft Corporation Capacitive sensing employing a repeatable offset charge
CN100394357C (en) * 2005-11-28 2008-06-11 威盛电子股份有限公司 Power-saving mode adjusting method and its logic chip and computer system
US8405617B2 (en) * 2007-01-03 2013-03-26 Apple Inc. Gated power management over a system bus
US20080162967A1 (en) * 2007-01-03 2008-07-03 Apple Computer, Inc. Gated power management over a system bus
US8078901B1 (en) 2008-06-16 2011-12-13 Western Digital Technologies, Inc. Method for increasing a processor operating frequency when other subsystem demands are low
US20100176875A1 (en) * 2009-01-14 2010-07-15 Pulijala Srinivas K Method for Improving Power-Supply Rejection
US7907003B2 (en) 2009-01-14 2011-03-15 Standard Microsystems Corporation Method for improving power-supply rejection
US10169268B2 (en) * 2009-08-31 2019-01-01 Intel Corporation Providing state storage in a processor for system management mode
US20130047017A1 (en) * 2011-08-17 2013-02-21 Askey Computer Corporation Power management system and method
US9275690B2 (en) 2012-05-30 2016-03-01 Tahoe Rf Semiconductor, Inc. Power management in an electronic system through reducing energy usage of a battery and/or controlling an output power of an amplifier thereof
US9509351B2 (en) 2012-07-27 2016-11-29 Tahoe Rf Semiconductor, Inc. Simultaneous accommodation of a low power signal and an interfering signal in a radio frequency (RF) receiver
CN103885570B (en) * 2012-11-15 2016-08-24 名硕电脑(苏州)有限公司 Multi-functional input system
US9666942B2 (en) 2013-03-15 2017-05-30 Gigpeak, Inc. Adaptive transmit array for beam-steering
US9531070B2 (en) 2013-03-15 2016-12-27 Christopher T. Schiller Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through accommodating differential coupling between VCOs thereof
US9716315B2 (en) 2013-03-15 2017-07-25 Gigpeak, Inc. Automatic high-resolution adaptive beam-steering
US9722310B2 (en) 2013-03-15 2017-08-01 Gigpeak, Inc. Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through frequency multiplication
US9780449B2 (en) 2013-03-15 2017-10-03 Integrated Device Technology, Inc. Phase shift based improved reference input frequency signal injection into a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation to reduce a phase-steering requirement during beamforming
US9837714B2 (en) 2013-03-15 2017-12-05 Integrated Device Technology, Inc. Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through a circular configuration thereof
US9184498B2 (en) 2013-03-15 2015-11-10 Gigoptix, Inc. Extending beamforming capability of a coupled voltage controlled oscillator (VCO) array during local oscillator (LO) signal generation through fine control of a tunable frequency of a tank circuit of a VCO thereof
US9195293B1 (en) 2013-05-03 2015-11-24 Western Digital Technologies, Inc. User controlled data storage device power and performance settings

Similar Documents

Publication Publication Date Title
US5369771A (en) Computer with transparent power-saving manipulation of CPU clock
JP3442100B2 (en) Method of saving a system image of a computer system and computer system implementing the method
USRE39284E1 (en) Method and apparatus for reducing power consumption in a system using power management software capable of placing multiple configurable system devices in a reduced power consumption state
US5241680A (en) Low-power, standby mode computer
US5276888A (en) Computer system with interrupts transparent to its operating system and application programs
CA2120056C (en) Desktop computer system having zero volt system suspend
US5021983A (en) Suspend/resume apparatus and method for reducing power consumption in battery powered computers
US5497494A (en) Method for saving and restoring the state of a CPU executing code in protected mode
US5546568A (en) CPU clock control unit
US5465367A (en) Slow memory refresh in a computer with a limited supply of power
CA2120055C (en) Desktop computer system having multilevel power management
US5041964A (en) Low-power, standby mode computer
US6016548A (en) Apparatus for controlling duty ratio of power saving of CPU
US5513359A (en) Desktop computer having a single-switch suspend/resume function
US5163153A (en) Low-power, standby mode computer
US5230074A (en) Battery operated computer power management system
CA2156538C (en) Malfunction power switch and feedback led for suspend systems
EP1228413B1 (en) Sleep state transitioning
US5560023A (en) Automatic backup system for advanced power management
US5446906A (en) Method and apparatus for suspending and resuming a keyboard controller
CA2156537C (en) Low power ring detect for computer system wakeup
US5752044A (en) Computer system having multi-level suspend timers to suspend from operation in attended and unattended modes
EP0701194A1 (en) Power management processor for computer systems having suspend/resume capability
JPH11110090A (en) Method and device for controlling power state of computer
EP1241555B1 (en) Method in a microprocessor with hardware controlled power management and selectable input/output control pins

Legal Events

Date Code Title Description
AS Assignment

Owner name: DELL USA CORP., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:GETTEL, STEVEN K.;REEL/FRAME:006043/0665

Effective date: 19920227

AS Assignment

Owner name: DELL USA L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:DELL USA CORPORATION;REEL/FRAME:006125/0055

Effective date: 19920511

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 12