EP0603185A1 - Power conservation system for computers - Google Patents

Power conservation system for computers

Info

Publication number
EP0603185A1
EP0603185A1 EP92912580A EP92912580A EP0603185A1 EP 0603185 A1 EP0603185 A1 EP 0603185A1 EP 92912580 A EP92912580 A EP 92912580A EP 92912580 A EP92912580 A EP 92912580A EP 0603185 A1 EP0603185 A1 EP 0603185A1
Authority
EP
European Patent Office
Prior art keywords
processor
interrupt
idle
software instructions
data processing
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.)
Withdrawn
Application number
EP92912580A
Other languages
German (de)
French (fr)
Inventor
David N. Barrett
Patricia A. Martin
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.)
Wang Laboratories Inc
Original Assignee
Wang Laboratories Inc
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 Wang Laboratories Inc filed Critical Wang Laboratories Inc
Publication of EP0603185A1 publication Critical patent/EP0603185A1/en
Withdrawn legal-status Critical Current

Links

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

Definitions

  • Portable computers allow users to take computing power wherever they go. As portable computers become smaller and lighter, their mobility increases. In addition, a portable computer's usefulness increases as processing power and battery life are increased.
  • a typical battery pack will power a notebook size computer for approximately two hours of continuous use.
  • a portable computer's usefulness is limited.
  • a spare battery pack By carrying a spare battery pack, a user can extend the portable computers usefulness another two hours.
  • the additional battery pack reduces the computer's portability.
  • the present invention extends battery life by decreasing the power drain while the portable computer is idle. Whenever the operating system waits for an event, it enters an idle sequence.
  • the present invention takes advantage of the idle sequence.
  • the invention comprises an idle state detector, which detects an idle sequence, and a sleeper, which provides an instruction to halt the processor when the idle state detector detects the idle sequence.
  • the idle sequence generates a unique interrupt.
  • the unique interrupt triggers a specific interrupt handler. By thus detecting the unique interrupt, the specific interrupt handler detects the idle state.
  • the sleeper is implemented as the specific interrupt handler program. Whenever the sleeper program executes, the processor is in the idle state.
  • the preferred sleeper interrupt handler reduces the system clock speed, turns down hardware devices having a power saving mode, and halts the processor.
  • the processor remains halted until an external interrupt occurs. After the processor services the external interrupt, processing continues until the processor returns to the idle sequence.
  • the Applicant's invention includes a limiter, which detects the identified situations and prevents the sleeper from executing.
  • the limiter sets a flag in shared data while an identified system service function is executing and maintains a cleared flag otherwise.
  • both the sleeper and the limiter are interrupt handler programs installed as device drivers.
  • Application program calls to MS-DOS system services trigger execution of the limiter program. Any program call to the MD-DOS idle sequence causes the sleeper program to execute.
  • Fig. 1 shows the logical system overview of a normal computer system operating under Microsoft DOS.
  • Fig. 2 shows the logical system overview of a computer system operating under Microsoft DOS and enhanced by the present invention.
  • Fig. 3 is a flowchart of the sleeper.
  • Fig. 4 is a flowchart of the limiter. Description of the Preferred Embodiment
  • the portable computer is notebook sized.
  • the central processing unit is an Intel model 80386SX microprocessor, normally operating at 16 MHz.
  • the system is operated under Microsoft DOS (MS-DOS).
  • Fig. 1 depicts the normal operation of MS-DOS.
  • the Intel family of processors support up to 256 interrupts, numbered 0 through 255.
  • the boot strap program creates a table 20 indexed by interrupt number for containing each interrupt's vector transfer address.
  • the boot strap program, MS-DOS 30 and application programs 10 load the vectors for defined interrupts 22,24 into the table 20.
  • the processor services interrupts by transferring control to the interrupt's vector address 22,24 which the processor looks up in the table 20.
  • At the vector address is a program called an interrupt handler. Users, however, can cause a new interrupt handler to execute when the processor services a particular interrupt.
  • MS- DOS provides standardized mechanisms. See e.g., R. Duncan, Advanced MS-DOS, pps. 207-257 (Microsoft Press 1986).
  • Application programs 10 communicate with MS-DOS 30 using software interrupts.
  • an application 10 requests a system service, it issues the system service interrupt 15.
  • the processor reads the vector address 22 for the system service interrupt 15 from the vector table 20 and transfers control to the MS-DOS System Service 35.
  • the system service interrupt 15 is interrupt number 33 (21 hex).
  • a code in the AH register identifies the particular system service function 37 requested by the application program 10.
  • the system service function 37 may need to wait for an event. If that is the case, the function 37 enters an idle loop 40.
  • the processor continuously executes the instructions in the idle loop 40 until the awaited event occurs. When the event occurs, control returns to the function 37, which then returns control to the application 10.
  • One instruction in the idle loop 40 is an instruction to issue an idle loop interrupt 45.
  • the idle loop interrupt 45 is interrupt number 40 (28 hex).
  • the processor Upon receiving the idle loop interrupt instruction 45, the processor transfers control to the idle loop interrupt handler 50 based on the vector address 24.
  • the idle loop interrupt handler 50 executes its software instructions and returns control to the idle loop 40.
  • the present invention installs an MS-DOS Device Driver 90 to modify the interrupt interface for the MS-DOS System Service calls 15 and the idle loop interrupt 45.
  • the device driver's initialization routine checks the BIOS version, stores the original vector addresses for the system service interrupt 22 and idle loop interrupt 24 in shared data 80, and modifies the vector addresses 22,24 to point to the limiter 60 and sleeper 70 programs.
  • the present invention realizes a reduced memory requirement because MS- DOS reclaims the memory used for the first-time initialization instructions.
  • the present invention is installed as a character device driver, with the initialization routine coded at the end of the driver.
  • the initialization routine relays its start address to MS-DOS as the first usable memory address. Therefore, MS-DOS is free to reuse the memory occupied by the initialization routine.
  • An application program 10 calls MS-DOS System Services 35 using the system service interrupt 15.
  • the present invention modifies the interrupt interface 20 to include a limiter interrupt handler program 60.
  • the instant invention supplies a sleeper interrupt handler program 70 for the idle loop interrupt 45.
  • the limiter program 60 communicates with the sleeper program 70 via shared data 80.
  • Fig. 3 shows the flowchart of the sleeper program 70, which contains the actual power saving instructions.
  • the sleeper program 70 checks 71 the flag in shared memory 80. If the flag is set then the limiter program 60 is restricting the functioning of the sleeper program 70 and the sleeper program 70 does not implement the power saving features. Instead, the sleeper program exits 78 by transferring control to the original idle loop interrupt handler 50 based on the original vector address. On the other hand, if the flag in shared memory 80 is not set then the limiter program 60 is not restricting the functioning of the sleeper program 70 and the sleeper program 70 implements the power saving features.
  • the system clock frequency is decreased to its minimum value.
  • Barrett et al. in U.S. Patent Serial Number 611 ,990, herein incorporated by reference, discloses the method for reducing the clock frequency.
  • the preferred embodiment requires there be no floppy disk accesses in progress. Reducing the system clock speed while a floppy disk access is in progress results in a Direct Memory Access (DMA) failure.
  • DMA Direct Memory Access
  • the sleeper program 70 checks 72 a flag maintained by the ROM Basic Input/Output System (BIOS) to see if a floppy disk access is in progress and, if not, the sleeper program 70 reduces 73 the clock speed. Otherwise, the sleeper program 70 does not reduce the clock speed. In either case, however, the next step is to enable interrupts 74 so the suspended processor detects external interrupts.
  • the sleeper program 70 next issues a halt instruction 75, which suspends processor activity. The processor stays suspended until the processor detects an external interrupt.
  • BIOS Basic Input/Output
  • Halting the processor results in two power saving benefits.
  • the portable computer uses pseudo-static memory. Pseudo-static memory chips enter a low-power, self- refresh mode while not accessed, and, once accessed, return to full-power mode.
  • pseudo-static memory In the preferred embodiment, the portable computer uses pseudo-static memory. Pseudo-static memory chips enter a low-power, self- refresh mode while not accessed, and, once accessed, return to full-power mode.
  • the pseudo-static memory because there is no bus activity, there are no memory accesses occurring. Because there are no memory accesses occurring, the pseudo-static memory automatically goes into the low-power, self-refresh mode. Therefore, memory decreases its power demands as a direct result of the halt instruction 75.
  • the external interrupt results from a user keystroke, cursor movement provided by a mouse, electromagnetic stylus or light pen device, or another hardware event.
  • the most common hardware event to occur and, thus, wake the processor is the periodic system timer, which triggers an external interrupt every 55 milliseconds. Thus, the computer does not remain in the suspended state indefinitely.
  • a hardware mechanism services 76 the external interrupt.
  • the resulting memory accesses cause the pseudo-static memory to power up.
  • a hardware mechanism automatically increases the system clock frequency during processing of the external interrupt.
  • control returns to the sleeper program 70 at the instruction after the halt instruction.
  • the sleeper program 70 corrects registers 77 reflecting the system speed.
  • the sleeper program 70 then exits 78 by transferring control to the original idle loop interrupt handler 50 based on the original vector address.
  • Fig. 4 shows the flowchart of the limiter program 60.
  • the AH register contains the system service function code identifying the particular system service function 37 called by the application 10. Halting the processor during the idle loop 40 degrades several identified system service functions.
  • the limiter program 60 compares 61 the code in the AH register with the codes corresponding to the identified functions.
  • the identified functions are the Character Output (code 2), Auxiliary Output (code 4), Printer Output (code 5), Direct Console Input/Output (code 6), Output Character String (code 9), and Get Input Status (code 11 ) functions.
  • the limiter program exits by transferring control 62 to the system service interrupt handler 35 based on the original vector address. As a result of the exit, the system service 35 retums directly to the application 10 upon completing the requested function.
  • the limiter program 60 signals the sleeper program 70 by setting
  • the system service 35 retums control to the limiter program 60 upon completion of the requested function. After control returns to the limiter program 60, it pushes 65 the results returned from the system service call onto the system stack.
  • the limiter program 60 clears 66 the flag in shared memory 80 and exits by returning 67 to the application program 10.
  • the applicants implemented the limiter program and sleeper program as device driver interrupt handlers.
  • the applicants recognize the interrupt handlers could also be implemented as MS-DOS Terminate-and-Stay-Resident programs.
  • the operating system code could be modified to include the limiter and sleeper program instructions in-line.
  • the invention could be used on any MS-DOS computer with only minor modifications.
  • another computer's DMA implementation might not be affected by a reduction in clock speed. In that case, there would be no need for the sleeper program to check for floppy disk accesses.
  • Another computer may have additional devices with a software selectable power-saving mode. Software instructions to place these devices into low-power mode could be added to the sleeper program.
  • the invention is not limited to computers using pseudo-static memory. Any computer memory with a low-power mode will benefit from the lack of memory accesses, in any case, any portable computers will benefit from halting the processor while it is idle.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Amplifiers (AREA)
  • Control Of Eletrric Generators (AREA)
  • Oscillators With Electromechanical Resonators (AREA)

Abstract

Dans un ordinateur portable, un programme de gestion de périphériques permet au système d'économiser sa puissance lorsque le processeur est inactif. Ledit programme détecte l'inactivité du processeur à l'aide d'une interruption unique produite par la boucle d'inactivité du système d'exploitation. Après avoir détecté l'état d'inactivité, le programme économise la puissance en réduisant la vitesse de l'horloge de système et en arrêtant le processeur. Le système revient à son état de fonctionnement normal lorsque le processeur détecte une interruption externe. Bien qu'une action de l'opérateur engendre une interruption externe, le rythmeur périodique à 55 ms réveille typiquement le processeur. De plus, le programme bloque les mesures d'économie de puissance dans les cas où l'opérateur remarquerait une détérioration de la performance.In a laptop computer, a device manager program allows the system to conserve power when the processor is idle. This program detects processor inactivity using a single interrupt generated by the operating system's idle loop. After detecting the idle state, the program saves power by reducing the system clock speed and stopping the processor. The system returns to its normal operating state when the processor detects an external interrupt. Although an operator action generates an external interrupt, the 55 ms periodic timer typically wakes up the processor. In addition, the program blocks power saving measures in cases where the operator notices a deterioration in performance.

Description

POWER SAVINGS WITH MS-DOS IDLE LOOP
Background of the Invention
Portable computers allow users to take computing power wherever they go. As portable computers become smaller and lighter, their mobility increases. In addition, a portable computer's usefulness increases as processing power and battery life are increased.
All portables, however, are powered by batteries. The demand for smaller and lighter portables place restrictions on battery size. Presently, the battery pack in a six pound portable computer usually weighs approximately one pound. Thus, a portable computer's size and weight is significantly influenced by the battery. Manufacturers, therefore, are driven to produce portable computers with even smaller batteries.
At the same time, manufacturers are driven to produce more powerful portables. Manufacturers have increased processing speeds and available memory. As a result, portable computers are approaching the capabilities of stationary personal computers. These performance increases, however, place a greater drain on battery power.
A typical battery pack will power a notebook size computer for approximately two hours of continuous use. A portable computer's usefulness, as a result, is limited. By carrying a spare battery pack, a user can extend the portable computers usefulness another two hours. However, the additional battery pack reduces the computer's portability. Summary of the Invention
It is desirable to reduce the drain of battery power without adversely affecting the user. In accordance with the present invention, battery power is conserved without any effort from the user or any noticeable affect on the computer's performance.
The present invention extends battery life by decreasing the power drain while the portable computer is idle. Whenever the operating system waits for an event, it enters an idle sequence. The present invention takes advantage of the idle sequence. The invention comprises an idle state detector, which detects an idle sequence, and a sleeper, which provides an instruction to halt the processor when the idle state detector detects the idle sequence. In the preferred embodiment, the idle sequence generates a unique interrupt. The unique interrupt, in turn, triggers a specific interrupt handler. By thus detecting the unique interrupt, the specific interrupt handler detects the idle state. The sleeper is implemented as the specific interrupt handler program. Whenever the sleeper program executes, the processor is in the idle state.
In particular, the preferred sleeper interrupt handler reduces the system clock speed, turns down hardware devices having a power saving mode, and halts the processor. The processor remains halted until an external interrupt occurs. After the processor services the external interrupt, processing continues until the processor returns to the idle sequence.
In the preferred embodiment, there are identified situations where executing the sleeper program leads to noticeable performance degradation. In response, the Applicant's invention includes a limiter, which detects the identified situations and prevents the sleeper from executing. In particular, the limiter sets a flag in shared data while an identified system service function is executing and maintains a cleared flag otherwise. In the preferred embodiment, both the sleeper and the limiter are interrupt handler programs installed as device drivers. Application program calls to MS-DOS system services trigger execution of the limiter program. Any program call to the MD-DOS idle sequence causes the sleeper program to execute. Brief Description of Drawings
Fig. 1 shows the logical system overview of a normal computer system operating under Microsoft DOS.
Fig. 2 shows the logical system overview of a computer system operating under Microsoft DOS and enhanced by the present invention. Fig. 3 is a flowchart of the sleeper. Fig. 4 is a flowchart of the limiter. Description of the Preferred Embodiment
In the preferred embodiment, the portable computer is notebook sized. The central processing unit (CPU) is an Intel model 80386SX microprocessor, normally operating at 16 MHz. The system is operated under Microsoft DOS (MS-DOS).
Fig. 1 depicts the normal operation of MS-DOS. The Intel family of processors support up to 256 interrupts, numbered 0 through 255. During initialization, the boot strap program creates a table 20 indexed by interrupt number for containing each interrupt's vector transfer address. The boot strap program, MS-DOS 30 and application programs 10 load the vectors for defined interrupts 22,24 into the table 20. The processor services interrupts by transferring control to the interrupt's vector address 22,24 which the processor looks up in the table 20. At the vector address is a program called an interrupt handler. Users, however, can cause a new interrupt handler to execute when the processor services a particular interrupt. Although there are several methods for implementing interrupt handlers, MS- DOS provides standardized mechanisms. See e.g., R. Duncan, Advanced MS-DOS, pps. 207-257 (Microsoft Press 1986).
Application programs 10 communicate with MS-DOS 30 using software interrupts. When an application 10 requests a system service, it issues the system service interrupt 15. The processor reads the vector address 22 for the system service interrupt 15 from the vector table 20 and transfers control to the MS-DOS System Service 35. In the preferred embodiment, the system service interrupt 15 is interrupt number 33 (21 hex). A code in the AH register identifies the particular system service function 37 requested by the application program 10.
The system service function 37 may need to wait for an event. If that is the case, the function 37 enters an idle loop 40. The processor continuously executes the instructions in the idle loop 40 until the awaited event occurs. When the event occurs, control returns to the function 37, which then returns control to the application 10. One instruction in the idle loop 40 is an instruction to issue an idle loop interrupt 45. In the preferred embodiment, the idle loop interrupt 45 is interrupt number 40 (28 hex).
Upon receiving the idle loop interrupt instruction 45, the processor transfers control to the idle loop interrupt handler 50 based on the vector address 24. The idle loop interrupt handler 50 executes its software instructions and returns control to the idle loop 40.
As depicted in Fig. 2, the present invention installs an MS-DOS Device Driver 90 to modify the interrupt interface for the MS-DOS System Service calls 15 and the idle loop interrupt 45. R. Duncan, supra., discusses the details of implementing device drivers. In particular, the device driver's initialization routine checks the BIOS version, stores the original vector addresses for the system service interrupt 22 and idle loop interrupt 24 in shared data 80, and modifies the vector addresses 22,24 to point to the limiter 60 and sleeper 70 programs. By using the device driver approach, the present invention realizes a reduced memory requirement because MS- DOS reclaims the memory used for the first-time initialization instructions. The present invention is installed as a character device driver, with the initialization routine coded at the end of the driver. The initialization routine relays its start address to MS-DOS as the first usable memory address. Therefore, MS-DOS is free to reuse the memory occupied by the initialization routine.
An application program 10 calls MS-DOS System Services 35 using the system service interrupt 15. The present invention modifies the interrupt interface 20 to include a limiter interrupt handler program 60. Likewise, the instant invention supplies a sleeper interrupt handler program 70 for the idle loop interrupt 45. The limiter program 60 communicates with the sleeper program 70 via shared data 80.
Fig. 3 shows the flowchart of the sleeper program 70, which contains the actual power saving instructions. Upon entry, the sleeper program 70 checks 71 the flag in shared memory 80. If the flag is set then the limiter program 60 is restricting the functioning of the sleeper program 70 and the sleeper program 70 does not implement the power saving features. Instead, the sleeper program exits 78 by transferring control to the original idle loop interrupt handler 50 based on the original vector address. On the other hand, if the flag in shared memory 80 is not set then the limiter program 60 is not restricting the functioning of the sleeper program 70 and the sleeper program 70 implements the power saving features.
In the preferred embodiment, the system clock frequency is decreased to its minimum value. Barrett et al., in U.S. Patent Serial Number 611 ,990, herein incorporated by reference, discloses the method for reducing the clock frequency. In addition, the preferred embodiment requires there be no floppy disk accesses in progress. Reducing the system clock speed while a floppy disk access is in progress results in a Direct Memory Access (DMA) failure. To prevent a DMA failure, the sleeper program 70 checks 72 a flag maintained by the ROM Basic Input/Output System (BIOS) to see if a floppy disk access is in progress and, if not, the sleeper program 70 reduces 73 the clock speed. Otherwise, the sleeper program 70 does not reduce the clock speed. In either case, however, the next step is to enable interrupts 74 so the suspended processor detects external interrupts. The sleeper program 70 next issues a halt instruction 75, which suspends processor activity. The processor stays suspended until the processor detects an external interrupt.
Halting the processor results in two power saving benefits. First, the halt reduces the amount of transistor switching within the processor itself. Therefore, the processor requires less power to operate. Second, system bus activity stops. In the preferred embodiment, the portable computer uses pseudo-static memory. Pseudo-static memory chips enter a low-power, self- refresh mode while not accessed, and, once accessed, return to full-power mode. Hereth et al., in U.S. Patent Number 4,710,903, herein incorporated by reference, discuss the operation of pseudo-static memories in detail. Because there is no bus activity, there are no memory accesses occurring. Because there are no memory accesses occurring, the pseudo-static memory automatically goes into the low-power, self-refresh mode. Therefore, memory decreases its power demands as a direct result of the halt instruction 75. These power saving features continue until an external interrupt occurs.
The external interrupt results from a user keystroke, cursor movement provided by a mouse, electromagnetic stylus or light pen device, or another hardware event. The most common hardware event to occur and, thus, wake the processor is the periodic system timer, which triggers an external interrupt every 55 milliseconds. Thus, the computer does not remain in the suspended state indefinitely.
A hardware mechanism services 76 the external interrupt. The resulting memory accesses cause the pseudo-static memory to power up. In the preferred embodiment, a hardware mechanism automatically increases the system clock frequency during processing of the external interrupt. After servicing the interrupt, control returns to the sleeper program 70 at the instruction after the halt instruction. The sleeper program 70 corrects registers 77 reflecting the system speed. The sleeper program 70 then exits 78 by transferring control to the original idle loop interrupt handler 50 based on the original vector address.
Fig. 4 shows the flowchart of the limiter program 60. Upon entry, the AH register contains the system service function code identifying the particular system service function 37 called by the application 10. Halting the processor during the idle loop 40 degrades several identified system service functions. To reduce visible degradation, the limiter program 60 compares 61 the code in the AH register with the codes corresponding to the identified functions. The identified functions are the Character Output (code 2), Auxiliary Output (code 4), Printer Output (code 5), Direct Console Input/Output (code 6), Output Character String (code 9), and Get Input Status (code 11 ) functions. If the code in the AH register does not correspond to any identified function, then the limiter program exits by transferring control 62 to the system service interrupt handler 35 based on the original vector address. As a result of the exit, the system service 35 retums directly to the application 10 upon completing the requested function.
On the other hand, if the AH register contains an identified function code then the limiter program 60 signals the sleeper program 70 by setting
63 a flag located in shared memory 80. Next, the limiter program 60 calls
64 the original system service 35 using the original interrupt vector. As a result of the call 64, the system service 35 retums control to the limiter program 60 upon completion of the requested function. After control returns to the limiter program 60, it pushes 65 the results returned from the system service call onto the system stack. The limiter program 60 clears 66 the flag in shared memory 80 and exits by returning 67 to the application program 10.
Although this invention has been particularly shown and described with reference to a preferred embodiment thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
For example, the applicants implemented the limiter program and sleeper program as device driver interrupt handlers. The applicants recognize the interrupt handlers could also be implemented as MS-DOS Terminate-and-Stay-Resident programs. In addition, the operating system code could be modified to include the limiter and sleeper program instructions in-line. Some functions of the limiter and sleeper programs also could be implemented through hardware devices, instead of entirely through software instructions.
Although the preferred embodiment relies on a particular hardware arrangement, the invention could be used on any MS-DOS computer with only minor modifications. For example, another computer's DMA implementation might not be affected by a reduction in clock speed. In that case, there would be no need for the sleeper program to check for floppy disk accesses. Another computer may have additional devices with a software selectable power-saving mode. Software instructions to place these devices into low-power mode could be added to the sleeper program. Furthermore, the invention is not limited to computers using pseudo-static memory. Any computer memory with a low-power mode will benefit from the lack of memory accesses, in any case, any portable computers will benefit from halting the processor while it is idle.

Claims

What is claimed is:
1. A data processing system including a processor and having software instructions stored in memory for processing by the processor, the software instructions including an idle sequence, the processor and software instructions further comprising: an idle state detector for detecting an idle sequence; and a sleeper for providing a software instruction to the processor to halt processing of software instructions when the idle state detector detects an idle sequence.
2. A data processing system including a processor and having software instructions stored in memory for processing by the processor, the software instructions including an idle sequence, the processor and software instructions further comprising: an interrupt generated by the idle sequence; a limiter for identifying a code sequence which generates said interrupt and which would be substantially degraded by a halt instruction to the processor; and an interrupt handler responding to said interrupt generated by the idle sequence, the interrupt handler checking whether a sequence that would be substantially degraded has been identified and, if not, providing an instruction to the processor to halt processing of software instructions.
3. The data processing system of Claim 2 wherein the interrupt handler further comprises software instructions to decrease the clock frequency.
4. The data processing system of Claim 2 wherein the memory has a power-saving mode entered when no memory accesses are occurring.
5. The data processing system of Claim 4 wherein the memory is pseudo-static memory.
6. The data processing system of Claim 2 wherein the limiter is an interrupt handler.
7. The data processing system of Claim 2 wherein the interrupt handler is implemented as a device driver.
8. The data processing system of Claim 2 wherein the processor's instruction pointer continues normal operation upon receipt of any subsequent interrupt.
9. The data processing system of Claim 8 wherein the interrupt handler returns control to the idle sequence.
10. The data processing system of Claim 2 wherein the idle sequence is an idle loop and the interrupt is unique to the idle loop.
11. A data processing system including a processor and having software instructions stored in memory for processing by the processor, the software instructions including an idle loop, the processor and software instructions further comprising: an interrupt generated by and substantially unique to an idle loop; an interrupt handler for identifying a code sequence which generates said idle loop interrupt and which would be substantially degraded by a halt instruction to the processor; an interrupt handler responsive to said idle loop interrupt, the interrupt handler checking whether a sequence that would be substantially degraded has been identified and, if not, provides software instructions to the processor to decrease system clock frequency and halt processing of software instructions; an instruction pointer which continues operation when any subsequent interrupt is received, causing the interrupt handler to return to the idle loop.
EP92912580A 1991-09-13 1992-05-26 Power conservation system for computers Withdrawn EP0603185A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US75902491A 1991-09-13 1991-09-13
US759024 1991-09-13
PCT/US1992/004405 WO1993006545A1 (en) 1991-09-13 1992-05-26 Power savings with ms-dos idle loop

Publications (1)

Publication Number Publication Date
EP0603185A1 true EP0603185A1 (en) 1994-06-29

Family

ID=25054097

Family Applications (1)

Application Number Title Priority Date Filing Date
EP92912580A Withdrawn EP0603185A1 (en) 1991-09-13 1992-05-26 Power conservation system for computers

Country Status (5)

Country Link
EP (1) EP0603185A1 (en)
JP (1) JPH06510616A (en)
AU (1) AU665354B2 (en)
CA (1) CA2111680A1 (en)
WO (1) WO1993006545A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69415284T2 (en) * 1993-11-23 1999-08-19 Advanced Micro Devices Inc Power control systems for computers
DE69516199T2 (en) * 1994-02-23 2000-09-21 Sun Microsystems Inc Method and arrangement for power saving in a computer system using a power control pseudo device driver
JPH08241145A (en) * 1995-03-02 1996-09-17 Nec Corp Power consumption reduction system of data processor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69031807T2 (en) * 1989-06-30 1998-04-09 Fujitsu Personal Syst Inc Method for reducing the power consumption of a computer
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9306545A1 *

Also Published As

Publication number Publication date
CA2111680A1 (en) 1993-04-01
WO1993006545A1 (en) 1993-04-01
AU2145592A (en) 1993-04-27
JPH06510616A (en) 1994-11-24
AU665354B2 (en) 1996-01-04

Similar Documents

Publication Publication Date Title
US6446213B1 (en) Software-based sleep control of operating system directed power management system with minimum advanced configuration power interface (ACPI)-implementing hardware
US4851987A (en) System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
US5175853A (en) Transparent system interrupt
EP0426410B1 (en) Real-time power conservation for portable computers
US5784628A (en) Method and system for controlling power consumption in a computer system
US7647513B2 (en) Method and apparatus for improving responsiveness of a power management system in a computing device
US5355501A (en) Idle detection system
US6691234B1 (en) Method and apparatus for executing instructions loaded into a reserved portion of system memory for transitioning a computer system from a first power state to a second power state
USRE39837E1 (en) Method and apparatus for adjusting a power consumption level based on the amount of time a processor clock is stopped
US6795927B1 (en) Power state resynchronization
JP2974950B2 (en) Information processing system
US5586332A (en) Power management for low power processors through the use of auto clock-throttling
KR960003412B1 (en) Computer power management system
US6845456B1 (en) CPU utilization measurement techniques for use in power management
US5737615A (en) Microprocessor power control in a multiprocessor computer system
US6343363B1 (en) Method of invoking a low power mode in a computer system using a halt instruction
EP0666528B1 (en) Integrated processor providing indications of internal activity to an external power management bus
US5537656A (en) Method and apparatus for a microprocessor to enter and exit a reduced power consumption state
US7017054B2 (en) Mirrored tag snoop optimization
US6584573B1 (en) Placing a computer system into a sleeping state
JPH0997128A (en) Information-processing system
AU665354B2 (en) Power savings with MS-DOS idle loop
JP2753781B2 (en) Microprocessor unit and method for interrupt and automated input / output trap restart
US7197655B2 (en) Lowered PU power usage method and apparatus
JPH11102238A (en) Computer system and suspend control method therefor

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19940120

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): BE DE FR GB NL

17Q First examination report despatched

Effective date: 19940715

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: WANG LABORATORIES, INC.

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Withdrawal date: 19970718