Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS5218704 A
Publication typeGrant
Application numberUS 07/429,270
Publication date8 Jun 1993
Filing date30 Oct 1989
Priority date30 Oct 1989
Fee statusPaid
Also published asCN1024226C, CN1054496A, DE69027510D1, DE69027510T2, EP0426410A2, EP0426410A3, EP0426410B1, US5930516, US6006336, US6173409, US6397340, US6633988, US6732283, US6732284, US7028198, US7284139, US7392416, US7549071, US20010005892, US20020104033, US20030131272, US20030131273, US20040225906, US20040225908, US20050198543, US20050204177, US20050204178, US20050204179
Publication number07429270, 429270, US 5218704 A, US 5218704A, US-A-5218704, US5218704 A, US5218704A
InventorsLaVaughn F. Watts, Jr., Steven J. Wallace
Original AssigneeTexas Instruments
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Real-time power conservation for portable computers
US 5218704 A
Abstract
A real-time power conservation apparatus and method for portable computers employs a monitor to determine whether a CPU may rest based upon a real-time sampling of the CPU activity level and to activate a hardware selector to carry out the monitor's determination. If the monitor determines the CPU may rest, the hardware selector reduces CPU clock time; if the CPU is to be active, the hardware selector returns the CPU to its previous high speed clock level. Switching back into full operation from its rest state occurs without a user having to request it and without any delay in the operation of the computer while waiting for the computer to return to a "ready" state. Furthermore, the monitor adjusts the performance level of the computer to manage power conservation in response to the real-time sampling of CPU activity. Such adjustments are accomplished within the CPU cycles and do not affect the user's perception of performance and do not affect any system application software executing on the computer.
Images(7)
Previous page
Next page
Claims(15)
We claim
1. A method for real-time power conservation in a computer, comprising the steps of:
(a) determining whether a central processing unit (CPU) in a computer is available for power conservation;
(b) if said CPU is available for power conservation, determining a current clock rate for said CPU;
(c) saving a value equal to said determined current clock rate;
(d) indicating to a hardware selector to reduce or stop the current clock rate provided to the CPU;
(e) determining whether an interrupt has occurred;
(f) if an interrupt has not occurred, repeating step (f) wherein said CPU remains in said power conservation mode until an interrupt has occurred;
(g) if an interrupt has occurred, indicating to said hardware selector to restore said determined current clock rate to said CPU;
(h) retrieving said saved value equal to said determined current clock rate; and
(i) setting said current clock rate equal to said retrieved value.
2. The method for real-time power conservation of claim 1, wherein said step (d) of indicating to a hardware selector to reduce or stop the current clock rate provided to the CPU, further comprises the steps of:
pulsing said hardware selector with a power conservation CPU command via a communication line to said hardware selector;
selecting a power conservation clock by said hardware selector based on said power conservation CPU command; and
passing pulses from said power conservation clock to said CPU to thereby place said CPU in a power conservation mode.
3. The method for real-time power conservation of claim 1, wherein said step (g) of indicating to said hardware selector to restore said determined current clock rate to said CPU, further comprises the steps of:
pulsing said hardware selector with a wake CPU command via a communication line to said hardware selector;
selecting of said clock having said determined current clock rate by said hardware selector based on said wake CPU command; and
passing pulses from said clock having said determined current clock rate to said CPU to thereby wake said CPU.
4. The method for real-time power conservation of claim 1, wherein said step (a) of determining whether a central processing unit (CPU) in a computer is available for power conservation, further comprises the steps of:
checking to see if said CPU is already in said power conservation mode;
if said CPU is not already in said power conservation mode, determining whether there are interrupts available to wake said CPU before said CPU is in said power conservation mode. and
if interrupts are available, preventing said CPU from entering said power conservation mode.
5. The method for real-time power conservation of claim 1, wherein said step (a) of determining whether a central processing unit (CPU) in a computer is available for power conservation, further comprises the steps of:
checking to see if said CPU has received a request;
if said CPU has received a request, determining whether said request is a critical input/output;
preventing said CPU from entering said power conservation mode if said request is a critical input/output;
if said request is not a critical input/output, determining whether there are any interrupts available to wake said CPU before said CPU enters said power conservation mode;
preventing said CPU from entering said power conservation mode;
determining whether said request is from an input/output having a delay intil the I/O device become ready; and
prevent said CPU from entering said power conservation mode if said request is not from an input/output having a delay.
6. The method for real-time power conservation of claim 1, wherein said step (d) of indicating to a hardware selector to reduce or stop the current clock rate provided to the CPU, further comprising the steps of:
determining whether there has been an increase in CPU activity; and
power conservation interval according to whether there has been an increase in CPU activity.
7. The method for real-time power conservation of claim 1, wherein said interrupt can be any periodic activity within the computer.
8. The method for real-time power conservation of claim 1, wherein said CPU accepts control signals from a software program residing on said CPU and from an operating system.
9. An apparatus for power conservation in a computer bearing a central processing unit (CPU), said apparatus comprising:
a CPU activity detector;
a CPU clock;
a first oscillator for providing pulses at a first speed;
a second oscillator for providing pulses at a second speed;
a hardware selector for choosing between said first oscillator and said second oscillator, wherein said hardware selector is adapted to receive said pulses from said first oscillator if said first oscillator is chosen or said pulses from said second oscillator if said second oscillator is chosen, wherein said hardware selector is further adapted to forward appropriate pulses from whichever oscillator is chosen by said hardware selector to said CPU clock;
a CPU sleep manager adapted to receive detected CPU activity from said CPU activity detector, further adapted to generate a pulse to said hardware selector thereby designating which oscillator said hardware selector should choose.
10. The apparatus for power conservation of claim 9, said CPU activity detector resides within said CPU.
11. The apparatus for power conservation of claim 9, said CPU sleep manager resides within said CPU.
12. The apparatus for power conservation of claim 9, wherein said CPU activity detector further comprises:
a detector for detecting a first rate of critical input/output interrupts and a second rate of critical input/output interrupts received by said CPU;
a comparator for comparing said detected first rate with said detected second rate and determining whether said detected rate has increased;
an indicator for indicating a current CPU activity level based on a determination received from said comparator; and
a designator for receiving said indicated current CPU activity level and communicating said indicated current CPU activity level to said CPU sleep manager.
13. The apparatus for power conservation of claim 9, wherein said CPU sleep manager further comprises
an adjustor for receiving a current detected CPU activity level from said CPU activity detector and for lengthening a CPU rest period when said current detected CPU activity level as decreased or for shortening said CPU rest period when said current detected CPU activity level has increased.
14. The apparatus for power conservation of claim 9, wherein said CPU sleep manager further comprises a clock rate keeper for determining a current clock rate for said CPU, for saving a value equal to said current clock rate while said CPU sleeps, as well as for retrieving said saved value when said CPU is to wake.
15. The apparatus for power conservation of claim 9, wherein said CPU sleep manager further comprises a pulse generator for generating a pulse for designating to said hardware selector which oscillator said hardware selector should choose.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to real-time computer power conservation, and more particularly to an apparatus and method for reduction of central processing unit (CPU) clock time based on the real-time activity level within the CPU of a portable computer.

2. Description of the Related Art

During the development stages of personal computers, the transportable or portable computer has become very popular. Such portable computer uses a large power supply and really represents a small desktop personal computer. Portable computers are smaller and lighter than a desktop personal computer and allow a user to employ the same software that can be used on a desktop computer.

The first generation "portable" computers only operated from an A/C wall power. As personal computer development continued, battery-powered computers were designed. Furthermore, real portability became possible with the development of new display technology, better disk storage, and lighter components.

However, the software developed was desiged to run on desk top personal computers, with all the features of desk top computers, without regard to battery-powered portable computers that only had limited amounts of power available for short periods of time. No special considerations were made by the software, operating system (MS-DOS), Basic Input/Output System (BIOS), or the third party application software to conserve power usage for these portable computers.

As more and more highly functional software packages were developed, desk top computer users experienced increased performance from the introductions of higher computational CPUs, increased memory, and faster high performance disk drives.

Unfortunately, portable computers continued to run only on A/C power or with large and heavy batteries. In trying to keep up with the performance requirements of the desk top computers, and the new software, expensive components were used to cut the power requirements. Even so, the heavy batteries still did not run very long. This meant users of portable computers had to settle for A/C operation or very short battery operation to have the performance that was expected from the third party software.

Portable computer designers stepped the performance down to 8088- and 8086-type processors to reduce the power consumption. The supporting circuits and CPU took less power to run and therefore, lighter batteries could be used. Unfortunately, the new software requiring 80286-type instructions, that did not exist in the older slower 8088/8086 CPUs, did not run.

In an attempt to design a portable computer that could conserve power, thereby yielding longer battery operation, smaller units, and less weight, some portable computer designers proceeded to reduce power consumption of a portable computer while a user is not using the computer. For example, designers obtain a reduction in power usage by slowing or stopping the disk drive after some predetermined period of inactivity; if the disk drive is not being used, the disk drive is turned off, or simply placed into a standby mode. When the user is ready to use the disk, the operator must wait until the disk drive spins up and the computer system is ready again for full performance before the operator may proceed with the operation.

Other portable computer designers conserve power by turning the computer display off when the keyboard is not being used. However, in normal operation the computer is using full power. In other words, power conservation by this method is practical only when the user is not using the components of the system. It is very likely, however, that the user will turn the computer off when not in use.

Nevertheless, substantial power conservation while the operator is using the computer for meaningful work is needed. When the operator uses the computer, full operation of all components is required. During the intervals while the operator is not using the computer, however, the computer could be turned off or slowed down to conserve power consumption. It is critical to maintaining performance to determine when to slow the computer down or turn it off without disrupting the user's work, upsetting the third party software, or confusing the operating system, until operation is needed.

Furthermore, although an user can wait for the disk to spin up as described above, application software packages cannot wait for the CPU to "spin up" and get ready. The CPU must be ready when the application program needs to compute. Switching to full operation must be completed quickly and without the application program being affected. This immediate transition must be transparent to the user as well as to the application currently active. Delays cause user operational problems in response time and software compatability, as well as general failure by the computer to accurately execute a required program.

Other attempts at power conservation for portable computers include providing a "Shut Down" or "Standby Mode" of operation. The problem, again, is that the computer is not usable by the operator during this period The operator could just as well turned off the power switch of the unit to save power. This type of power conservation only allows the portable computer to "shut down" and thereby save power if the operator forgets to turn off the power switch, or walks away from the computer for the programmed length of time. The advantage of this type of power conservation over just turning the power switch off/on is a much quicker return to full operation. However, this method of power conservation is still not real-time, intelligent power conservation while the computer is on and processing data which does not disturb the operating system, BIOS, and any third party application programs currently running on the computer.

Some attempt to meet this need was made by VLSI vendors in providing circuits that either turned off the clocks to the CPU when the user was not typing on the keyboard or woke up the computer on demand when a keystroke occurred. Either of these approaches reduce power but the computer is dead (unusable) during this period Background operations such as updating the system clock, communications, print spooling, and other like operations cannnot be performed. Some existing portable computers employ these circuits. After a programmed period of no activity, the computer turns itself off. The operator must turn the machine on again but does not have to reboot the operating system and application program. The advantage of this circuity is, like the existing "shut down" operations, a quick return to full operation without restarting the computer. Nevertheless, this method only reduces power consumption when the user walks away from the machine and does not actually extend the operational life of the battery charge.

SUMMARY OF THE INVENTION

In view of the above problems associated with the related art, it is an object of the present invention to provide an apparatus and method for real-time conservation of power for computer systems without any real-time performance degradation, such conservation of power remaining transparent to the user.

Another object of the present invention is to provide an apparatus and method for predicting the activity level within a computer system and using the prediction for automatic power conservation.

Yet another object of the present invention is to provide an apparatus and method which allows user modification of automatic activity level predictions and using the modified predictions for automatic power conservation.

A further object of the present invention is to provide an apparatus and method for real-time reduction and restoration of clock speeds thereby returning the CPU to full processing rate from a period of inactivity which is transparent to software programs.

These objects are accomplished in a preferred embodiment of the present invention by an apparatus and method which determine whether a CPU may rest based upon the CPU activity level and activates a hardware selector based upon that determination. If the CPU may rest, or sleep, the hardware selector applies oscillations at a sleep clock level; if the CPU is to be active, the hardware selector applies oscillations at a high speed clock level.

The present invention examines the state of CPU activity, as well as the activity of both the operator and any application software program currently active. This sampling of activity is performed real-time, adjusting the performance level of the computer to manage power conservation and computer power. These adjustments are accomplished within the CPU cycles and do not affect the user's perception of performance.

Thus, when the operator for the third party software of the operating system/BIOS is not using the computer, the present invention will effect a quick turn off or slow down of the CPU until needed, thereby reducing the power consumption, and will promptly restore full CPU operation when needed without affecting perceived performance. This switching back into full operation from the "slow down" mode occurs without the user having to request it and without any delay in the operation of the computer while waiting for the computer to return to a "ready" state.

These and other features and advantages of the invention will be apparent to those skilled in the art from the following detailed description of a preferred embodiment, taken together with the accompanying drawings, in which:

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart depicting the self-tuning aspect of a preferred embodiment of the present invention;

FIGS. 2a-2d are flowcharts depicting the active power conservation monitor employed by the present invention;

FIG. 3 is a simplified schematic diagram representing the active power conservation associated hardware employed by the present invention;

FIG. 4 is a schematic of the sleep hardware for one embodiment of the present invention; and

FIG. 5 is a schematic of the sleep hardware for another embodiment of the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

If the period of computer activity in any given system is examined, the CPU and associated components have a utilization percentage. If the user is inputing data from the keyboard, the time between keystrokes is very long in terms of CPU cycles. Many things can be accomplished by the computer during this time, such as printing a report. Even during the printing of a report, time is still available for additional operations such as background updating of a clock/calendar display. Even so, there is almost always spare time when the CPU is not being used. If the computer is turned off or slowed down during this spare time, then power consumption is obtained real-time. Such real-time power conservation extends battery operation life.

According to the preferred embodiment of the present invention, to conserve power under MS-DOS, as well as other operating systems such as OS/2, XENIX, and those for Apple computers, requires a combination of hardware and software. It should be noted that because the present invention will work in any system, while the implementation may vary slightly on a system-by-system basis, the scope of the present invention should therefore not be limited to computer systems operating under MS/DOS.

Slowing down or stopping the computer system components according to the preferred embodiment of the present invention, reduces power consumption, although the amount of power saved may vary. Therefore, according to the present invention, stopping the clock (where possible as some CPUs cannot have their clocks stopped) reduces the power consumption more than just slowing the clock.

In general, the number of operations (or instructions) per second may be considered to be roughly proportional to the processor clock:

instructions/second=instructions/cycle*cycles/second

Assuming for simplicity that the same instruction is repeatedly executed so that instructions/second is constant, the relationship can be expressed as follows:

Fq=K1 *Clk

where Fq is instructions/second, K1 is constant equal to the instructions/cycle, and Clk equals cycles/second. Thus, roughly speaking, the rate of execution increases with the frequency of the CPU clock.

The amount of power being used at any given moment is also related to the frequency of the CPU clock and therefore to the rate of execution. In general this relationship can be expressed as follows:

P=K2 +(K3 *Clk)

where P is power in watts, K2 is a constant in watts, K3 is a constant and expresses the number of watt-seconds/cycle, and Clk equals the cycles/second of the CPU clock. Thus it can also be said that the amount of power being consumed at any given time increases as the CPU clock frequency increases.

Assume that a given time period T is divded into N intervals such that the power P is constant during each interval. Then the amount of energy E expended during T is given by:

E=P(1)deltaT1 +P(2)deltaT2. . . +P(N)deltaTN 

Further assume that the CPU clock "Clk" has only two states, either "ON" or "OFF". For the purposes of this discussion, the "ON" state represents the CPU clock at its maximum frequency, while the "OFF" state represents the minimum clock rate at which the CPU can operate (this may be zero for CPUs that can have their clocks stopped). For the condition in which the CPU clock is always "ON", each P(i) in the previous equation is equal and the total energy is: ##EQU1##

This represents the maximum power consumption of the computer in which no power conservation measures are being used. If the CPU clock is "off" during a portion of the intervals, then there are two power levels possible for each interval. The P(on) represents the power being consumed when the clock in in its "ON" state, while P(off) represents the power being used when the clock is "OFF". If all of the time intervals in which the clock is "ON"is summed into the quantity "T(on)" and the "OFF" intervals are summed into "T(off)", then it follows:

T=T(on)+T(off)

Now the energy being used during period T can be written:

E=[P(on)*T(on)]+[P(off)8T(off)]

Under these conditions, the total energy consumed may be reduced by increasing the time intervals T(off). Thus, by controlling the periods of time the clock is in its "OFF" state, the amount of energy being used may be reduced. If the T(off) period is divided into a large number of intervals during the period T, then as the width of each interval goes to zero, energy consumption is at a maximum. Conversely, as the width of the T(off) intervals increase, the energy consumed decreases.

If the "OFF" intervals are arranged to coincide with periods during which the CPU is normally inactive, then the user cannnot perceive any reduction in performance and overall energy consumption is reduced from the E(max) state. In order to align the T(off) intervals with periods of CPU inactivity, the CPU activity level is used to determine the width of the T(off) intervals in a closed loop. FIG. 1 depicts such a closed loop. The activity level of the CPU is determined at Step 10. If this level is an increase over an immediately previous determination, the present invention decreases the T(off) interval (Step 20) and returns to determine the activity level of the CPU again. If, on the other hand, this activity level is a decrease over an immediately previous determination, the present invention increases the T(off) interval (Step 30) and proceeds to again determine the activity level of the CPU. Thus the T(off) intervals are constantly being adjusted to match the system activity level.

In any operating system, two key logic points exist: an IDLE, or "do nothing", loop within the operating system and an operating system request channel, usually available for services needed by the application software. By placing logic inline with these logic points, the type of activity request made by an application software can be evaluated, power conservation can be activated and slice periods determined. A slice period is the number of T(on) vs. T(off) intervals over time, computed by the activity level. An assumption may be made to determine CPU activity level: Software programs that need service usually need additional services and the period of time between service requests can be used to determine the activity level of any application software running on the computer and to provide slice counts for power conservation according to the present invention.

Once the CPU is interrupted during a power conservation slice (T(off)), the CPU will save the interrupted routine's state prior to vectoring to the interrupt software. Of course, since the power conservation software was operating during this slice, control will be returned to the active power conservation loop (monitor 40) which simply monitors the CPU's clock to determine an exit condition for the power conservation mode, thereby exiting from T(off) to T(on) state. The interval of the next power conservation state is adjusted by the activity level monitored, as discussed above in connection with FIG. 1. Some implementations can create an automatic exit from T(off) by the hardware logic, thereby forcing the power conservation loop to be exited automatically and executing an interval T(on).

More specifically, looking now at FIGS. 2a-2d, which depict the active power conservation monitor 40 of the present invention. The CPU installs monitor 40 either via a program stored in the CPU ROM or loads it from an external device storing the program in RAM. Once the CPU has loaded monitor 40, it continues to INIT 50 for system interrupt initialization, user configurational setup, and system/application specific initialization. IDLE branch 60 (more specifically set out in FIG. 2b) is executed by a hardware or software interrupt for an IDLE or "do nothing" function. This type of interrupt is caused by the CPU entering either an IDLE or a "do nothing" loop (i.e., planned inactivity). The ACTIVITY branch 70 of the flowchart, more fully described below in relation to FIG. 2d, is executed by a software or hardware interrupt due to an operating system or I/O service request, by an application program or internal operating system function. An I/O service request made by a program may, for example, be a disk I/O, read, print, load, etc. Regardless of the branch selected, control is eventually returned to the CPU operating system at RETURN 80. The INIT branch 50 of this flowchart, shown in FIG. 2a, is executed only once if it is loaded via program into ROM or is executed every time during power up if it is loaded from an external device and stored in the RAM. Once this branch of active power monitor 40 has been fully executed, whenever control is yielded from the operating system to the power conservation mode, either IDLE 60 or ACTIVITY 70 branches are selected depending on the type of CPU activity: IDLE branch 60 for power conservation during planned inactivity and ACTIVITY branch 70 for power conservation during CPU activity.

Looking more closely at INIT branch 50 , after all system interrupt and variables are initialized, the routine continues at Step 90 to set the Power-- level equal to DEFAULT-- LEVEL. In operating systems where the user has input control for the Power-- level, the program at Step 100 checks to see if a User-- level has been selected. If the User-- level is less than zero or greater than the MAXIMUM-- LEVEL, the system uses the DEFAULT-- LEVEL. Otherwise, it continues onto Step 110 where it modifies the Power-- level to equal the User-- level.

According to the preferred embodiment of the present invention, the system at Step 120 sets the variable Idle-- tick to zero and the variable Activity-- tick to zero. Under an MS/DOS implementation, Idle-- tick refers to the number of interrupts found in a "do nothing" loop. Activity-- tick refers to the number of interrupts caused by an activity interrupt which in turn determines the CPU activity level. Tick count represents a delta time for the next interrupt. Idle-- tick is a constant delta time from one tick to another (interrupt) unless overwritten by a software interrupt. A software interrupt may reprogram delta time between interrupts.

After setting the variables to zero, the routine continues on to Setup 130 at which time any application specific configuration fine-tuning is handled in terms of system-specific details and the system is initialized. Next the routine arms the interrupt I/O (Step 140) with instructions to the hardware indicating the hardware can take control at the next interrupt. INIT branch 50 then exits to the operating system, or whatever called the active power monitor originally, at RETURN 80.

Consider now IDLE branch 60 of active power monitor 40, more fully described at FIG. 2b. In response to a planned inactivity of the CPU, monitor 40 (not specifically shown in this Figure) checks to see if entry into IDLE branch 60 is permitted by first determining whether the activity interrupt is currently busy. If Busy-- A equals BUSY-- FLAG (Step 150), which is a reentry flag, the CPU is busy and cannot now be put to sleep. Therefore, monitor 40 immediately proceeds to RETURN I 160 and exits the routine. RETURN I 160 is an indirect vector to the previous operating system IDLE vector interrupt for normal processing stored before entering monitor 40. (I.e., this causes an interrupt return to the last chained vector.)

If the Busy-- A interrupt flag is not busy, then monitor 40 checks to see if the Busy-- Idle interrupt flag, Busy-- I, equals BUSY-- FLAG (Step 170). If so, this indicates the system is already in IDLE branch 60 of monitor 40 and therefore the system should not interrupt itself. If Busy-- I =BUSY-- FLAG, the system exits the routine at RETURN-- I indirect vector 160.

If, however, neither the Busy-- A reentry flag or the Busy-- I reentry flag have been set, the routine sets the Busy-- I flag at Step 180 for reentry protection (Busy-- I=BUSY-- FLAG). At Step 190 Idle-- tick is incremented by one. Idle13 tick is the number of T(on) before a T(off) interval and is determined from IDLE interrupts, setup interrupts and from CPU activity level. Idle-- tick increments by one to allow for smoothing of events, thereby letting a critical I/O activity control smoothing.

At Step 200 monitor 40 checks to see if Idle-- tick equals IDLE-- MAXTICKS. IDLE13 MAXTICKS is one of the constants initialized in Setup 130 of INIT branch 50, remains constant for a system, and is responsible for self-tuning of the activity level. If Idle-- tick does not equal IDLE-- MAXTICKS, the Busy-- I flag is cleared at Step 210 and exits the loop proceeding to the RETURN I indirect vector 160. If, however, Idle-- tick equals IDLE-- MAXTCKS, Idle-- tick is set equal to IDLE-- START-- TICKS (Step 220). IDLE-- START-- TICKS is a constant which may or may not be zero (depending on whether the particular CPU can have its clock stopped). This step determines the self-tuning of how often the rest of the sleep functions may be performed. By setting IDLE-- START-- TICKS equal to IDLE-- MAXTICKS minus one, a continuous T(off) interval is achieved. At Step 230, the Power-- level is checked. If it is equal to zero, the monitor clears the Busy-- I flag (Step 210), exits the routine at RETURN I 160, and returns control to the operating system so it may continue what it was originally doing before it entered active power monitor 40.

If, however, the Power-- level does not equal zero at Step 240, the routine determines whether an interrupt mask is in place. An interrupt mask is set by the system/application software, and determines whether interrupts are available to monitor 40. If interrupts are NOT-- AVAILABLE, the Busy-- I reentry flag is cleared and control is returned to the operating system to continue what it was doing before it entered monitor 40. Operating systems, as well as application software, can set T(on) interval to yield a continuous T(on) state by setting the interrupt mask equal to NOT-- AVAILABLE.

Assuming an interrupt is AVAILABLE, monitor 40 proceeds to the SAVE POWER subroutine 250 which is fully executed during one T(off) period established by the hardware state. (For example, in the preferred embodiment of the present invention, the longest possible interval could be 18 ms, which is the longest time between two ticks or interrupts from the real-time clock.) During the SAVE POWER subroutine 250, the CPU clock is stepped down to a sleep clock level.

Once a critical I/O operation forces the T(on) intervals, the IDLE branch 60 interrupt tends to remain ready for additional critical I/O requests. As the CPU becomes busy with critical I/O, less T(off) intervals are available. Conversely, as critical I/O requests decrease, and the time intervals between them increase, more T(off) intervals are available. IDLE branch 60 is a self-tuning system based on feedback from activity interrupts and tends to provide more T(off) intervals as the activity level slows. As soon as monitor 40 has completed SAVE POWER subroutine 250, shown in FIG. 2c and more fully described below, the Busy-- I reentry flag is cleared (Step 210) and control is returned at RETURN I 160 to whatever operating system originally requested monitor 40.

Consider now FIG. 2c, which is a flowchart depicting the SAVE POWER subroutine 250. Monitor 40 determines what the I/O hardware high speed clock is at Step 260. It sets the CURRENT-- CLOCK-- RATE equal to the relevant high speed clock and saves this value to be used for CPUs with multiple level high speed clocks. Thus, if a particular CPU has 12 MHz and 6 MHz high speed clocks, monitor 40 must determine which high speed clock the CPU is at before monitor 40 reduces power so it may reestablish the CPU at the proper high speed clock when the CPU awakens. At Step 270, the Save-- clock-- rate is set equal to the CURRENT-- CLOCK-- RATE determined. Save-- clock-- rate 270 is not used when there is only one high speed clock for the CPU. Monitor 40 now continues to SLEEPCLOCK 280, where a pulse is sent to the hardware selector (shown in FIG. 3) to put the CPU clock to sleep (i.e., lower or stop its clock frequency). The I/O port hardware sleep clock is at much lower oscillations than the CPU clock normally employed.

At this point either of two events can happen. A system/application interrupt may occur or a real-time clock interrupt may occur. If a system/application interrupt 290 occurs, monitor 40 proceeds to interrupt routine 300, processing the interrupt as soon as possible, arming interrupt I/O at Step 310, and returning to determine whether there has been an interrupt (Step 320). Since in this case there has been an interrupt, the Save-- clock-- rate is used (Step 330) to determine which high speed clock to return the CPU to and SAVE POWER subroutine 250 is exited at RETURN 340. If, however, a system/application interrupt is not received, the SAVE POWER subroutine 250 will continue to wait until a real-time clock interrupt has occurred (Step 320). Once such an interrupt has occurred, SAVE POWER subroutine 250 reestablishes the CPU at the stored Save-clock-rate. If the sleep clock rate was not stopped, in other words, the sleep clock rate was not zero, control is passed at a slow clock and SAVE POWER subroutine 250 will execute interrupt loop 320 several times. If however, control is passed when the sleep clock rate was zero, in other words, there was no clock, the SAVE POWER subroutine 250 will execute interrupt loop 320 once before returning the CPU clock to the Save-- clock-- rate 330 and exiting (Step (340).

Consider now FIG. 2d which is a flowchart showing ACTIVITY branch 70 triggered by an application/system activity request via an operating system service request interrupt. ACTIVITY branch 70 begins with reentry protection. Monitor 40 determines at Step 350 whether Busy-- I has been set to BUSY-- FLAG. If it has, this means the system is already in IDLE branch 60 and cannot be interrupted. If Busy-- I=BUSY-- FLAG, monitor 40 exits to RETURN I 160, which is an indirect vector to an old activity vector interrupt for normal processing, via an interrupt vector after the operating system performs the requested service.

If however, the Busy-- I flag does not equal BUSY-- FLAG, which means IDLE branch 60 is not being accessed, monitor 40 determines at Step 360 if the BUSY-- A flag has been set equal to BUSY-- FLAG. If so, control will be returned to the system at this point because ACTIVITY branch 70 is already being used and cannot be interrupted. If the Busy-- A flag has not been set, in other words, Busy-- A does not equal BUSY-- FLAG, monitor 40 sets Busy-- A equal to BUSY-- FLAG at Step 370 so as not to be interrupted during execution of ACTIVITY branch 70. At Step 380 the Power-- level is determined. If Power-- level equals zero, monitor 40 exits ACTIVITY branch 70 after clearing the Busy-- A reentry flag (Step 390). If however, the Power-- level does not equal zero, the CURRENT-- CLOCK-- RATE of the I/O hardware is next determined. As was true with Step 270 of FIG. 2C, Step 400 of FIG. 2d uses the CURRENT-- CLOCK-- RATE if there are multiple level high speed clocks for a given CPU. Otherwise, CURRENT-- CLOCK-- RATE always equals the CPU high speed clock. After the CURRENT-- CLOCK-- RATE is determined (Step 400), at Step 410 Idle-- tick is set equal to the constant START-- TICKS established for the previously determined CURRENT-- CLOCK-- RATE. T(off) intervals are established based on the current high speed clock that is active.

Monitor 40 next determines that a request has been made. A request is an input by the application software running on the computer, for a particular type of service needed. At Step 420, monitor 40 determines whether the request is a CRITICAL I/O. If the request is a CRITICAL I/O, it will continuously force T(on) to lengthen until the T(on) is greater than the T(off), and monitor 40 will exit ACTIVITY branch 70 after clearing the Busy-- A reentry flag (Step 390). If, on the other hand, the request is not a CRITICAL I/O, then the Activity-- tick is incremented by one at Step 430. It is then determined at Step 440 whether the Activity-- tick now equals ACTIVITY-- MAXTICKS. Step 440 allows a smoothing from a CRITICAL I/O, and makes the system ready from another CRITICAL I/O during Activity-- tick T(on) intervals. Assuming Activity-- tick does not equal ACTIVITY-- MAXTICKS, ACTIVITY branch 70 is exited after clearing the Busy-- A reentry flag (Step 390). If, on the other hand, the Activity-- tick equals constant ACTIVITY-- MAXTICKS, at Step 450 Activity-- tick is set to the constant LEVEL-- MAXTICKS established for the particular Power-- level determined at Step 380.

Now monitor 40 determines whether an interrupt mask exists (Step 460). An interrupt mask is set by system/application software. Setting it to NOT-- AVAILABLE creates a continuous T(on) state. If the interrupt mask equals NOT-- AVAILABLE, there are no interrupts available at this time and monitor 40 exits ACTIVITY branch 70 after clearing the Busy-- A reentry flag (Step 390). If, however, an interrupt is AVAILABLE, monitor 40 determines at Step 470 whether the request identified at Step 420 was for a SLOW I/O-- INTERRUPT. SLOW I/O requests may have a delay until the I/O device becomes "ready". During the "make ready" operation, a continuous T(off) interval may be set up and executed to conserve power. Thus, if the request is not a SLOW I/O-- INTERRUPT, ACTIVITY branch 70 is exited after clearing the Busy-- A reentry flag (Step 390). If, however, the request is a SLOW I/O-- INTERRUPT, and time yet exists before the I/O device becomes "ready", monitor 40 then determines at Step 480 whether the I/O request is COMPLETE (i.e., is I/O device ready?). If the I/O device is not ready, monitor 40 forces T(off) to lengthen, thereby forcing the CPU to wait, or sleep, until the SLOW I/O device is ready. At this point it has time to save power and ACTIVITY branch 70 enters SAVE POWER subroutine 250 previously described in connection with to FIG. 2C. If, however, the I/O request is COMPLETE, control is returned to the operating system subsequently to monitor 40 exiting ACTIVITY branch 70 after clearing Busy-- A reentry flag (Step 390).

Self-tuning is inherent within the control system of continuous feedback loops. The software of the present invention can detect when CPU activity is low and therefore when the power conservation aspect of the present invention may be activated. Once the power conservation monitor is activated, a prompt return to full speed CPU clock operation within the interval is achieved so as to not degrade the performance of the computer. To achieve this prompt return to full speed CPU clock operation, the preferred embodiment of the present invention employs some associated hardware.

Looking now at FIG. 3 which shows a simplified schematic diagram representing the associated hardware employed by the present invention for active power conservation. When monitor 40 (not shown) determines the CPU is ready to sleep, it writes to an I/O port (not shown) which causes a pulse on the SLEEP line. The rising edge of this pulse on the SLEEP line causes flip flop 500 to clock a high to Q and a low to Q-. This causes the AND/OR logic (AND gates 510, 520; OR gate 530) to select the pulses travelling the SLEEP CLOCK line from SLEEP CLOCK oscillator 540 to be sent to and used by the CPU CLOCK. SLEEP CLOCK oscillator 540 is a slower clock than the CPU clock used during normal CPU activity. The high coming from the Q of flip flop 500 ANDed (510) with the pulses coming from SLEEP CLOCK oscillator 540 is ORed (530) with the result of the low on the Q- of flip flop 500 ANDed (520) with the pulse generated along the HIGH SPEED CLOCK line by the HIGH SPEED CLOCK oscillator 550 to yield the CPU CLOCK. When the I/O port designates SLEEP CLOCK, the CPU CLOCK is then equal to the SLEEP CLOCK oscillator 540 value. If, on the other hand, an interrupt occurs, an interrupt- value clears flip flop 500, thereby forcing the AND/OR selector (comprising 510, 520 and 530) to choose the HIGH SPEED CLOCK value, and returns the CPU CLOCK value to the value coming from HIGH SPEED CLOCK oscillator 550. Therefore, during any power conservation operation on the CPU, the detection of any interrupt within the system will restore the CPU operation at full clock rate prior to vectoring and processing the interrupt.

It should be noted that the associated hardware needed, external to each of the CPUs for any given system, may be different based on the operating system used, whether the CPU can be stopped, etc. Nevertheless, the scope of the present invention should not be limited by possible system specific modifications needed to permit the present invention to actively conserve power in the numerous available portable computer systems. For example two actual implementations are shown in FIGS. 4 and 5, discussed below.

Many VSLI designs today allow for clock switching of the CPU speed. The logic to switch from a null clock or slow clock to a fast clock logic is the same as that which allows the user to change speeds by a keyboard command. The added logic of monitor 40 working with such switching logic, causes an immediate return to a fast clock upon detection of any interrupt. This simple logic is the key to the necessary hardware support to interrupt the CPU and thereby allow the processing of the interrupt at full speed.

The method to reduce power consumption under MS-DOS employs the MS-DOS IDLE loop trap to gain access to the "do nothing" loop. The IDLE loop provides special access to application software and operating system operations that are in a state of IDLE or low activity Careful examination is required to determine the activity level at any given point within the system. Feedback loops are used from the interrupt 21H service request to determine the activity level. The prediction of activity level is determined by interrupt 21H requests, from which the present invention thereby sets the slice periods for "sleeping" (slowing down or stopping) the CPU. An additional feature allows the user to modify the slice depending on the activity level of interrupt 21H.

Looking now at FIG. 4, which depicts a schematic of an actual sleep hardware implementation for a system such as the Intel 80386 (CPU cannot have its clock stopped). Address enable bus 600 and address bus 610 provide CPU input to demultiplexer 620. The output of demultiplexer 620 is sent along SLEEPCS- and provided as input to OR gates 630,640. The other inputs to OR gates 630,640 are the I/O write control line and the I/O read control line, respectively. The outputs of these gates, in addition to NOR gate 650, are applied to D flip flop 660 to decode the port. "INTR" is the interrupt input from the I/O port (peripherals) into NOR gate 650, which causes the logic hardware to switch back to the high speed clock. The output of flip flop 660 is then fed, along with the output from OR gate 630, to tristate buffer 670 to enable it to read back what is on the port. All of the above-identified hardware is used by the read/write I/O port (peripherals) to select the power saving "Sleep" operation. The output "SLOW-" is equivalent to "SLEEP" in FIG. 2, and is inputted to flip flop 680, discussed later.

The output of SLEEP CLOCK oscillator 690 is divided into two slower clocks by D flip flops 700,710. In the particular implementation shown in FIG. 4, 16 MHz sleep clock oscillator 690 is divided into 4 MHz and 8 MHz clocks. Jumper Jl selects which clock is to be the "SLEEP CLOCK".

In this particular implementation, high speed clock oscillator 720 is a 32 MHz oscillator, although this particular speed is not a requirement of the present invention. The 32 MHz oscillator is put in series with a resistor (for the implementation shown, 33 ohms), which is in series with two parallel capacitors (10 pF). The result of such oscillations is tied to the clocks of D flip flops 730,740.

D flip flops 680,730,740 are synchronizing flip flops; 680,730 were not shown in the simplified sleep hardware of FIG. 2. These flip flops are used to ensure the clock switch occurs only on clock edge. As can be seen in FIG. 4, as with flip flop 500 of FIG. 2, the output of flip flop 740 either activates OR gate 750 or OR gate 760, depending upon whether the CPU is to sleep ("FASTEN-") or awaken ("SLOWEN-").

OR gates 750,760 and AND gate 770 are the functional equivalents to the AND/OR selector of FIG. 2. They are responsible for selecting either the "slowclk" (slow clock, also known as SLEEP CLOCK) or high speed clock (designated as 32 MHz on the incoming line). In this implementation, the Slow clock is either 4 MHz or 8 MHz, depending upon jumper Jl, and the high speed clock is 32 MHz. The output of AND gate 770 (ATUCLK) establishes the rate of the CPU clock, and is the equivalent of CPU CLOCK of FIG. 2.

Consider now FIG. 5, which depicts a schematic of another actual sleep hardware implementation for a system such as the Intel 80286 (CPU can have its clock stopped). The Western Digital FE3600 VLSI is used for the speed switching with a special external PAL 780 to control the interrupt gating which wakes up the CPU on any interrupt. The software power conservation according to the present invention monitors the interrupt acceptance, activating the next P(i)deltaTi interval after the interrupt.

Any interrupt request to the CPU will return the system to normal operation. An interrupt request ("INTRQ") to the CPU will cause the PAL to issue a Wake Up signal on the RESCPU line to the FE3001 (not shown) which in turn enables the CPU and the DMA clocks to bring the system back to its normal state. This is the equivalent of the "INTERRUPT-" of FIG. 2. Interrupt Request is synchronized to avoid confusing the state machine so that Interrupt (INTDET) will only be detected while the cycle is active. The rising edge of RESCPU will wake up the FE 3001 which in turn releases the whole system from the Sleep Mode.

Implementation for the 386SX is different only in the external hardware and software power conservation loop. The software loop will set external hardware to switch to the high speed clock on interrupt prior to vectoring the interrupt. Once return is made to the power conservation software, the high speed clock cycle will be detected and the hardware will be reset for full clock operation.

Implementation for OS/2 uses the "do nothing" loop programmed as a THREAD running in background operation with low priority. Once the THREAD is activated, the CPU sleep, or low speed clock, operation will be activated until an interrupt occurs thereby placing the CPU back to the original clock rate.

Although interrupts have been employed to wake up the CPU in the preferred embodiment of the present invention, it should be realized that any periodic activity within the system, or applied to the system, could also be used for the same function.

While several implementations of the preferred embodiment of the invention has been shown and described, various modifications and alternate embodiments will occur to those skilled in the art. Accordingly, it is intended that the invention be limited only in terms of the appended claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3453601 *18 Oct 19661 Jul 1969Philco Ford CorpTwo speed arithmetic calculator
US3941989 *13 Dec 19742 Mar 1976Mos Technology, Inc.Reducing power consumption in calculators
US4267577 *26 Apr 197912 May 1981Sharp Kabushiki KaishaLow power consumption integrated circuit for a combined timepiece and calculator
US4279020 *18 Aug 197814 Jul 1981Bell Telephone Laboratories, IncorporatedPower supply circuit for a data processor
US4293927 *12 Dec 19796 Oct 1981Casio Computer Co., Ltd.Power consumption control system for electronic digital data processing devices
US4381552 *18 Nov 198026 Apr 1983Motorola Inc.Stanby mode controller utilizing microprocessor
US4409665 *26 Dec 197911 Oct 1983Texas Instruments IncorporatedTurn-off-processor between keystrokes
US4670837 *25 Jun 19842 Jun 1987American Telephone And Telegraph CompanyElectrical system having variable-frequency clock
US4686386 *18 Mar 198511 Aug 1987Oki Electric Industry Co., Ltd.Power-down circuits for dynamic MOS integrated circuits
US4698748 *7 Oct 19836 Oct 1987Essex Group, Inc.Power-conserving control system for turning-off the power and the clocking for data transactions upon certain system inactivity
US4851987 *17 Jan 198625 Jul 1989International Business Machines CorporationSystem for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
US4980836 *14 Oct 198825 Dec 1990Compaq Computer CorporationBattery powered
US5025387 *1 Jun 199018 Jun 1991Motorola, Inc.Power saving arrangement for a clocked digital circuit
EP0472081A1 *12 Aug 199126 Feb 1992Hoechst AktiengesellschaftCarbonic acid groups containing copolymers, their preparation and their use as a thickener
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US5339445 *16 Nov 199216 Aug 1994Harris CorporationMethod of autonomously reducing power consumption in a computer sytem by compiling a history of power consumption
US5355501 *9 Mar 199011 Oct 1994Novell, Inc.Activity system in a computer
US5355503 *13 Oct 199311 Oct 1994National Semiconductor CorporationEvent driven scanning of data input equipment using multi-input wake-up techniques
US5394527 *26 Oct 199328 Feb 1995Zenith Data Systems CorporationMethod and apparatus facilitating use of a hard disk drive in a computer system having suspend/resume capability
US5396635 *12 Feb 19937 Mar 1995Vadem CorporationPower conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5404459 *21 Jul 19924 Apr 1995Advanced Micro DevicesSerial interface module and method in which the clock is only activated to send a predetermined number of data bits
US5414861 *11 Sep 19919 May 1995Fujitsu LimitedData protection system using different levels of reserve power to maintain data in volatile memories for any period of time
US5416726 *6 Oct 199216 May 1995Microsoft CorporationMethod and system for placing a computer in a reduced power state
US5418969 *20 Jul 199423 May 1995Matsushita Electric Industrial Co., Ltd.Low power consumption microprocessor
US5430881 *20 May 19924 Jul 1995Dia Semicon Systems IncorporatedSupervisory control method and power saving control unit for computer system
US5432946 *11 Apr 199111 Jul 1995International Business Machines Corp.LAN server personal computer with unattended activation capability
US5446904 *4 Jun 199229 Aug 1995Zenith Data Systems CorporationSuspend/resume capability for a protected mode microprocessor
US5446906 *30 Jun 199329 Aug 1995Intel CorporationMethod and apparatus for suspending and resuming a keyboard controller
US5467042 *8 Nov 199314 Nov 1995Cirrus Logic, Inc.Electronic system
US5469553 *16 Dec 199421 Nov 1995Quantum CorporationEvent driven power reducing software state machine
US5471608 *9 Dec 199328 Nov 1995Pitney Bowes Inc.Dynamically programmable timer-counter having enable mode for timer data load and monitoring circuit to allow enable mode only upon time-out
US5475848 *5 Apr 199512 Dec 1995Dia Semicon Systems, IncorporatedSupervisory control method and power saving control unit for computer system
US5485623 *3 Mar 199416 Jan 1996Hitachi, Ltd.Information processor having high speed and safety resume system
US5504907 *4 Mar 19932 Apr 1996Dell Usa, L.P.Power management system with adaptive control parameters for portable computer
US5504910 *2 Feb 19942 Apr 1996Advanced Micro Devices, Inc.Power management unit including software configurable state register and time-out counters for protecting against misbehaved software
US5511201 *25 Mar 199223 Apr 1996Hitachi, Ltd.Data processing apparatus, power supply controller and display unit
US5511203 *2 Feb 199423 Apr 1996Advanced Micro DevicesPower management system distinguishing between primary and secondary system activity
US5511204 *7 Sep 199423 Apr 1996International Business Machines CorporationComputer system
US5515539 *8 Jun 19947 May 1996Mitsubishi Denki Kabushiki KaishaApparatus and method for reducing power consumption by peripheral devices after downloading a program therefrom
US5537660 *17 Nov 199416 Jul 1996Intel CorporationMicrocontroller having selectable bus timing modes based on primary and secondary clocks for controlling the exchange of data with memory
US5542035 *27 Oct 199330 Jul 1996Elonex TechnologiesMethod for managing power levels
US5544082 *15 Feb 19956 Aug 1996Microsoft CorporationMethod and system for placing a computer in a reduced power state
US5551033 *4 Jun 199227 Aug 1996Zenith Data Systems CorporationApparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
US5560017 *29 Apr 199424 Sep 1996Wang Laboratories, Inc.Data processing system
US5560024 *1 Feb 199524 Sep 1996Fujitsu Personal Systems, Inc.Computer power management system
US5566340 *22 Jun 199415 Oct 1996Dell Usa L.P.Portable computer system with adaptive power control parameters
US5581297 *24 Jul 19923 Dec 1996Intelligent Instruments CorporationLow power video security monitoring system
US5589923 *24 Apr 199531 Dec 1996Samsung Electronics Co., Ltd.Power saving method of an image forming apparatus
US5603038 *7 Sep 199411 Feb 1997International Business Machines CorporationAutomatic restoration of user options after power loss
US5630008 *28 Dec 199413 May 1997Mitsumi Electric Co., Ltd.Control circuit for driving motor with reduced power consumption and disk unit having the control circuit
US5652890 *23 Dec 199329 Jul 1997Vantus Technologies, Inc.Interrupt for a protected mode microprocessor which facilitates transparent entry to and exit from suspend mode
US5659763 *18 Nov 199619 Aug 1997Mitsubishi Denki Kabushiki KaishaApparatus and method for reducing power consumption by peripheral devices by controlling the interconnection of power supplies
US5666541 *15 Oct 19969 Sep 1997Compaq Computer CorporationReducing power usage in a personal computer
US5669004 *2 Apr 199616 Sep 1997Compaq Computer CorporationReducing power usage in a personal computer
US5691920 *2 Oct 199525 Nov 1997International Business Machines CorporationMethod and system for performance monitoring of dispatch unit efficiency in a processing system
US5710929 *2 Jun 199520 Jan 1998Vadem CorporationMulti-state power management for computer systems
US5710933 *31 Mar 199520 Jan 1998International Business Machines CorporationFor enabling operations on a system resource
US5721936 *24 Jul 199624 Feb 1998Elonex I.P. HoldingsTimer-controlled computer system power management
US5727208 *3 Jul 199510 Mar 1998Dell U.S.A. L.P.Method and apparatus for configuration of processor operating parameters
US5729726 *2 Oct 199517 Mar 1998International Business Machines CorporationMethod and system for performance monitoring efficiency of branch unit operation in a processing system
US5748855 *2 Oct 19955 May 1998Iinternational Business Machines CorporationMethod and system for performance monitoring of misaligned memory accesses in a processing system
US5751945 *2 Oct 199512 May 1998International Business Machines CorporationMethod and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5752011 *20 Jun 199412 May 1998Thomas; C. DouglasMethod and system for controlling a processor's clock frequency in accordance with the processor's temperature
US5752044 *7 Jun 199512 May 1998International Business Machines CorporationComputer system having multi-level suspend timers to suspend from operation in attended and unattended modes
US5752062 *2 Oct 199512 May 1998International Business Machines CorporationMethod and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5754436 *6 Nov 199619 May 1998Texas Instruments IncorporatedAdaptive power management processes, circuits and systems
US5754867 *20 Mar 199619 May 1998Vlsi Technology, Inc.Method for optimizing performance versus power consumption using external/internal clock frequency ratios
US5758133 *28 Dec 199526 May 1998Vlsi Technology, Inc.System and method for altering bus speed based on bus utilization
US5758175 *17 Dec 199626 May 1998VademMulti-mode power switching for computer systems
US5765004 *1 Jun 19959 Jun 1998Vantus Technologies, Inc.Suspend/resume capability for a protected mode microprocessor
US5771390 *23 Aug 199623 Jun 1998Dell Usa, L.P.System and method for cascading from a power managed suspend state to a suspend-to-disk state in a computer system
US5784598 *7 Jun 199521 Jul 1998Texas Instruments IncorporatedMethod and apparatus for changing processor clock rate
US5790609 *4 Nov 19964 Aug 1998Texas Instruments IncorporatedApparatus for cleanly switching between various clock sources in a data processing system
US5797019 *2 Oct 199518 Aug 1998International Business Machines CorporationMethod and system for performance monitoring time lengths of disabled interrupts in a processing system
US5799198 *2 Jun 199525 Aug 1998Vadem CorporationActivity monitor for computer system power management
US5828568 *18 Sep 199727 Oct 1998Canon Kabushiki KaishaInformation processing apparatus, processing method thereof, and power supply control method therefor
US5867718 *29 Nov 19952 Feb 1999National Semiconductor CorporationMethod and apparatus for waking up a computer system via a parallel port
US5884085 *27 Nov 199616 Mar 1999Kabushiki Kaisha ToshibaPortable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
US5886689 *10 Jun 199723 Mar 1999Seiko Epson CorporationComputer system with video display controller having power saving modes
US5887179 *11 Jun 199623 Mar 1999Motorola, Inc.System power saving means and method
US5892959 *17 Dec 19966 Apr 1999VademComputer activity monitor providing idle thread and other event sensitive clock and power control
US5901322 *8 Aug 19974 May 1999National Semiconductor CorporationFor reducing power consumption in a cache in a computer
US5903746 *4 Nov 199611 May 1999Texas Instruments IncorporatedApparatus and method for automatically sequencing clocks in a data processing system when entering or leaving a low power state
US5903766 *13 Jan 199711 May 1999Packard Bell Nec, Inc.Suspend/resume capability for a protected mode microprocessor
US5926404 *12 Nov 199720 Jul 1999Dell Usa, L.P.Computer system with unattended operation power-saving suspend mode
US5930516 *30 Apr 199727 Jul 1999Texas Instruments IncorporatedReal time power conservation for computers
US5949971 *2 Oct 19957 Sep 1999International Business Machines CorporationMethod and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5974261 *9 May 199526 Oct 1999Vantus TechnologyMethod and apparatus facilitating use of a hard disk drive in a computer system having suspend/resume capability
US5974551 *10 Oct 199626 Oct 1999Samsung Electronics Co., Ltd.Power supply device and a power supply method for a computer system
US5974557 *18 Aug 199726 Oct 1999Thomas; C. DouglassMethod and system for performing thermal and power management for a computer
US5983339 *21 Aug 19959 Nov 1999International Business Machines CorporationPower down system and method for pipelined logic functions
US5983355 *20 May 19969 Nov 1999National Semiconductor CorporationPower conservation method and apparatus activated by detecting specific fixed interrupt signals indicative of system inactivity and excluding prefetched signals
US5987614 *17 Jun 199716 Nov 1999VademDistributed power management system and method for computer
US5995454 *9 Jul 199730 Nov 1999Kabushiki Kaisha ToshibaComputer system with alarm power-on function and automatic starting method thereof
US5996084 *17 Jan 199730 Nov 1999Texas Instruments IncorporatedMethod and apparatus for real-time CPU thermal management and power conservation by adjusting CPU clock frequency in accordance with CPU activity
US6006336 *12 Apr 199321 Dec 1999Texas Instruments IncorporatedReal-time power conservation for computers
US6016548 *15 Jul 199718 Jan 2000Kabushiki Kaisha ToshibaApparatus for controlling duty ratio of power saving of CPU
US6061803 *15 Nov 19939 May 2000International Microcircuits, Inc.Variable frequency clock for an electronic system and method therefor
US6065138 *7 Jan 199716 May 2000Magnitude LlcComputer activity monitoring system
US6079025 *23 Jul 199820 Jun 2000VademSystem and method of computer operating mode control for power consumption reduction
US6088806 *20 Oct 199811 Jul 2000Seiko Epson CorporationApparatus and method with improved power-down mode
US6115823 *18 Aug 19995 Sep 2000Amphus, Inc.System and method for task performance based dynamic distributed power management in a computer system and design method therefor
US61734098 Sep 19999 Jan 2001Texas Instruments IncorporatedReal-time power conservation for electronic device having a processor
US618883014 Jul 199713 Feb 2001Sony CorporationAudiovisual effects processing method and apparatus for instantaneous storage-based playback of audio data in synchronization with video data
US619247919 Jan 199520 Feb 2001Texas Instruments IncorporatedData processing with progressive, adaptive, CPU-driven power management
US6193422 *22 Jun 199427 Feb 2001Nec CorporationImplementation of idle mode in a suspend/resume microprocessor system
US621623510 Jul 199910 Apr 2001C. Douglass ThomasThermal and power management for computer systems
US622329316 Feb 199524 Apr 2001Nec CorporationSuspend/resume capability for a protected mode microprocessor
US6256743 *29 Apr 19983 Jul 2001Seiko Epson CorporationSelective power-down for high performance CPU/system
US6282662 *4 Aug 199528 Aug 2001Dell Usa, L.P.Power management override for portable computers
US629844821 Dec 19982 Oct 2001Siemens Information And Communication Networks, Inc.Apparatus and method for automatic CPU speed control based on application-specific criteria
US6300946 *29 May 19989 Oct 2001Palm, Inc.Method and apparatus for interacting with a portable computer
US630167323 Jan 19979 Oct 2001Nec CorporationSuspend/resume capability for a protected mode microprocessor
US632465112 Nov 199827 Nov 2001International Business Machines CorporationMethod and apparatus for saving device state while a computer system is in sleep mode
US634536323 Jun 19985 Feb 2002National Semiconductor CorporationMicroprocessor core power reduction by not reloading existing operands
US63780681 Jun 199523 Apr 2002Nec CorporationSuspend/resume capability for a protected mode microprocesser
US63973409 Jan 200128 May 2002Texas Instruments IncorporatedReal-time power conservation for electronic device having a processor
US643869727 Mar 200120 Aug 2002Compaq Information Technologies Group, L.P.Demand-based processor clock frequency switching
US644898819 Mar 199910 Sep 2002Palm, Inc.Method and apparatus for interacting with a portable computer system
US64840416 Oct 199919 Nov 2002Nokia Mobile Phones, Ltd.Method for adjusting power consumption
US648766812 Feb 200126 Nov 2002C. Douglass ThomasThermal and power management to computer systems
US6574739 *14 Apr 20003 Jun 2003Compal Electronics, Inc.Dynamic power saving by monitoring CPU utilization
US658457125 Apr 200024 Jun 2003St. Clair Intellectual Property Consultants, Inc.System and method of computer operating mode clock control for power consumption reduction
US660921120 Aug 200219 Aug 2003Hewlett-Packard Development Company, L.P.Utilization-based power management of a clocked device
US661192126 Nov 200126 Aug 2003Microsoft CorporationInput 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
US66222532 Aug 200116 Sep 2003Scientific-Atlanta, Inc.Controlling processor clock rate based on thread priority
US663398811 Feb 200214 Oct 2003Texas Instruments IncorporatedProcessor having real-time power conservation
US66614107 Sep 20019 Dec 2003Microsoft CorporationCapacitive sensing and data input device power management
US666580229 Feb 200016 Dec 2003Infineon Technologies North America Corp.Power management and control for a microcontroller
US6694442 *18 Dec 200017 Feb 2004Asustek Computer Inc.Method for saving power in a computer by idling system controller and reducing frequency of host clock signal used by system controller
US66944438 Feb 200117 Feb 2004National Semiconductor CorporationSystem 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
US66944517 Dec 200017 Feb 2004Hewlett-Packard Development Company, L.P.Method for redundant suspend to RAM
US670359930 Jan 20029 Mar 2004Microsoft CorporationProximity sensor with adaptive threshold
US6720673 *11 Apr 200113 Apr 2004International Business Machines CorporationVoltage island fencing
US67218949 Aug 200213 Apr 2004National Semiconductor CorporationMethod 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
US673228328 Feb 20034 May 2004Texas Instruments IncorporatedProcessor having real-time power conservation
US673228428 Feb 20034 May 2004Texas Instruments IncorporatedProcessor having real-time power conservation
US681367412 May 20002 Nov 2004St. Clair Intellectual Property Consultants, Inc.Dual-edge fifo interface
US681615026 Nov 20019 Nov 2004Microsoft CorporationData input device power management including beacon state
US6848054 *13 Dec 199525 Jan 2005Texas Instruments IncorporatedReal-time computer thermal management and power conservation
US685022926 Nov 20011 Feb 2005Microsoft CorporationCapacitive sensing and data input device power management
US6859882 *18 May 200122 Feb 2005Amphus, Inc.System, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US68656847 Jul 20038 Mar 2005Hewlett-Packard Development Company, L.P.Utilization-based power management of a clocked device
US689544829 May 200117 May 2005O2 Micro, Inc.Low-power audio CD player for portable computers
US6901524 *26 Mar 200231 May 2005Texas Instruments IncorporatedProcessor having real-time power conservation and thermal management
US69101397 Feb 200121 Jun 2005Fujitsu LimitedSoftware processing apparatus with a switching processing unit for displaying animation images in an environment operating base on type of power supply
US691014123 Feb 200421 Jun 2005National Semiconductor CorporationPipelined data processor with signal-initiated power management control
US692466719 Jul 20022 Aug 2005O2Micro International LimitedLevel shifting and level-shifting amplifier circuits
US69305152 Sep 200416 Aug 2005O2 Micro International LimitedLevel shifting and level shifting amplifier circuits
US69339229 Jan 200423 Aug 2005Microsoft CorporationProximity sensor with adaptive threshold
US695480428 Mar 200311 Oct 2005Micro, Inc.Controller for portable electronic devices
US695486726 Jul 200211 Oct 2005Microsoft CorporationCapacitive sensing employing a repeatable offset charge
US697839023 Feb 200420 Dec 2005National Semiconductor CorporationPipelined data processor with instruction-initiated power management control
US69957475 Nov 20047 Feb 2006Microsoft CorporationCapacitive sensing and data input device power management
US699678410 May 20027 Feb 2006Palmsource, Inc.Method and apparatus for interacting with a portable computer system
US700013223 Feb 200414 Feb 2006National Semiconductor CorporationSignal-initiated power management method for a pipelined data processor
US700255011 Feb 200521 Feb 2006Microsoft CorporationProximity sensor with adaptive threshold
US70234255 Nov 20044 Apr 2006Microsoft CorporationData input device power management including beacon state
US702819830 Apr 200411 Apr 2006Texas Instruments IncorporatedProcessor having real-time power conservation
US703211918 May 200118 Apr 2006Amphus, Inc.Dynamic power and workload management for multi-server system
US7038506 *23 Mar 20042 May 2006Stmicroelectronics Pvt. Ltd.Automatic selection of an on-chip ancillary internal clock generator upon resetting a digital system
US70588264 Oct 20046 Jun 2006Amphus, Inc.System, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment
US706266623 Feb 200413 Jun 2006National Semiconductor CorporationSignal-initiated method for suspending operation of a pipelined data processor
US710006118 Jan 200029 Aug 2006Transmeta CorporationAdaptive power control
US711117911 Oct 200219 Sep 2006In-Hand Electronics, Inc.Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US711297830 Sep 200426 Sep 2006Transmeta CorporationFrequency specific closed loop feedback control of integrated circuits
US711408627 Feb 200226 Sep 2006Ati Technologies, Inc.System for reduced power consumption by monitoring instruction buffer and method thereof
US712081023 Feb 200410 Oct 2006National Semiconductor CorporationInstruction-initiated power management method for a pipelined data processor
US712431230 Jun 200517 Oct 2006Microsoft CorporationCapacitive sensing employing a repeatable offset charge
US713401118 May 20017 Nov 2006Huron Ip LlcApparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices
US716799322 Oct 200223 Jan 2007Thomas C DouglassThermal and power management for computer systems
US718032230 Sep 200420 Feb 2007Transmeta CorporationClosed loop feedback control of integrated circuits
US7194646 *7 Dec 199520 Mar 2007Texas Instruments IncorporatedReal-time thermal management for computers
US722824231 Dec 20025 Jun 2007Transmeta CorporationAdaptive power control based on pre package characterization of integrated circuits
US722844118 May 20015 Jun 2007Huron Ip LlcMulti-server and multi-CPU power management system and method
US7254721 *7 Jun 20017 Aug 2007Advanced Micro Devices, Inc.System and method for controlling an intergrated circuit to enter a predetermined performance state by skipping all intermediate states based on the determined utilization of the intergrated circuit
US726073123 Oct 200021 Aug 2007Transmeta CorporationSaving power when in or transitioning to a static mode of a processor
US727273528 Feb 200618 Sep 2007Huron Ip LlcDynamic power and workload management for multi-server system
US72841393 May 200516 Oct 2007Texas Instruments IncorporatedProcessor having real-time power conservation
US7290246 *19 Dec 200230 Oct 2007Texas Instruments IncorporatedPower profiling system and method for correlating runtime information
US729318617 Jan 20076 Nov 2007Thomas C DouglassThermal and power management for computer systems
US7336090 *29 Aug 200626 Feb 2008Transmeta CorporationFrequency specific closed loop feedback control of integrated circuits
US7336092 *19 Jul 200626 Feb 2008Transmeta CorporationClosed loop feedback control of integrated circuits
US7363408 *30 Nov 200422 Apr 2008Via Technologies, Inc.Interruption control system and method
US7386647 *14 Oct 200510 Jun 2008Dell Products L.P.System and method for processing an interrupt in a processor supporting multithread execution
US738685818 Jul 200310 Jun 2008Access Systems Americas, Inc.Method and apparatus for unified external and interprocess communication
US738943825 May 200517 Jun 2008Texas Instruments IncorporatedMethod for detecting temperature and activity associated with a processor and using the results for controlling power dissipation associated with a processor
US73924166 May 200524 Jun 2008Texas Instruments IncorporatedMethod for controlling power consumption associated with a processor
US741861120 Sep 200626 Aug 2008Thomas C DouglassThermal and power management for computer systems
US7421600 *29 Jul 20052 Sep 2008Silicon Integrated Systems Corp.Power saving method
US74444399 Sep 200328 Oct 200802 Micro International LimitedAudio controller for portable electronic devices
US74693875 Apr 200523 Dec 2008Access Systems Americas, Inc.Method and apparatus for interacting with a portable computer system
US747994411 Feb 200520 Jan 2009Microsoft CorporationProximity sensor with adaptive threshold
US748411128 Feb 200627 Jan 2009Huron Ip LlcPower on demand and workload management system and method
US748747012 Sep 20053 Feb 2009Access Systems Americas, Inc.Method and apparatus for interacting with a portable computer system
US7489177 *5 Jun 200610 Feb 2009Research In Motion LimitedClock circuit for a microprocessor
US750619022 Jun 200717 Mar 2009Thomas C DouglassThermal and power management for computer systems
US750951223 Feb 200424 Mar 2009National Semiconductor CorporationInstruction-initiated method for suspending operation of a pipelined data processor
US751282228 Feb 200631 Mar 2009Huron Ip LlcSystem and method for activity or event based dynamic energy conserving server reconfiguration
US75229642 Oct 200121 Apr 2009O2Micro International LimitedLow power digital audio decoding/playing system for computing devices
US752296530 Jul 200221 Apr 2009O2Micro International LimitedLow power digital audio decoding/playing system for computing devices
US752296617 Oct 200221 Apr 2009O2Micro International LimitedLow power digital audio decoding/playing system for computing devices
US75263492 Aug 200128 Apr 2009O2Micro International LimitedLow power digital audio decoding/playing system for computing devices
US753328328 Feb 200612 May 2009Huron Ip LlcApparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices
US75490713 May 200516 Jun 2009Texas Instruments IncorporatedMethod for providing real-time power conservation in a processor
US755235024 Apr 200723 Jun 2009Huron Ip LlcSystem and method for activity or event base dynamic energy conserving server reconfiguration
US755897628 Feb 20067 Jul 2009Huron Ip LlcSystem, method, architecture, and computer program product for dynamic power management in a computer system
US756223322 Jun 200414 Jul 2009Transmeta CorporationAdaptive control of operating and body bias voltages
US756223928 Feb 200614 Jul 2009Huron Ip LlcSystem, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US75872627 Nov 20008 Sep 2009Intel CorporationTemperature averaging thermal sensor apparatus and method
US759670825 Apr 200629 Sep 2009Sameer HalepeteAdaptive power control
US759873117 Apr 20076 Oct 2009Robert Paul MasleidSystems and methods for adjusting threshold voltage
US762640926 Sep 20061 Dec 2009Koniaris Kleanthes GFrequency specific closed loop feedback control of integrated circuits
US764283512 Nov 20035 Jan 2010Robert FuSystem for substrate potential regulation during power-up in integrated circuits
US76475133 Jul 200712 Jan 2010Advanced Micro Devices, Inc.Method and apparatus for improving responsiveness of a power management system in a computing device
US764940223 Dec 200319 Jan 2010Tien-Min ChenFeedback-controlled body-bias voltage source
US769247723 Dec 20036 Apr 2010Tien-Min ChenPrecise control component for a substrate potential regulation circuit
US771934421 Feb 200618 May 2010Tien-Min ChenStabilization component for a substrate potential regulation circuit
US77211257 Feb 200618 May 2010Huron Ip, LlcSystem, method, and architecture for dynamic server power management and dynamic workload management for multi-server environment
US77395314 Mar 200515 Jun 2010Nvidia CorporationDynamic voltage scaling
US77612747 Nov 200020 Jul 2010Intel CorporationTemperature-based clock frequency controller apparatus and method
US777462522 Jun 200410 Aug 2010Eric Chien-Li ShengAdaptive voltage control by accessing information stored within and specific to a microprocessor
US778211019 Jul 200724 Aug 2010Koniaris Kleanthes GSystems and methods for integrated circuits comprising multiple body bias domains
US778675630 Sep 200531 Aug 2010Vjekoslav SvilanMethod and system for latchup suppression
US780829212 Jan 20095 Oct 2010Research In Motion LimitedClock circuit for a microprocessor
US78167426 Apr 200619 Oct 2010Koniaris Kleanthes GSystems and methods for integrated circuits comprising multiple body biasing domains
US7821489 *30 Apr 200326 Oct 2010Panasonic CorporationData processing apparatus
US782296724 Oct 200626 Oct 2010Huron Ip LlcApparatus, architecture, and method for integrated modular server system providing dynamically power-managed and work-load managed network devices
US782299619 Mar 200726 Oct 2010Texas Instruments IncorporatedMethod for implementing thermal management in a processor and/or apparatus and/or system employing the same
US784761922 Apr 20087 Dec 2010Tien-Min ChenServo loop for well bias voltage source
US784933230 May 20037 Dec 2010Nvidia CorporationProcessor voltage adjustment system and method
US785906230 Sep 200428 Dec 2010Koniaris Kleanthes GSystems and methods for integrated circuits comprising multiple body biasing domains
US787040421 Aug 200711 Jan 2011Andrew ReadTransitioning to and from a sleep state of a processor
US788236914 Nov 20021 Feb 2011Nvidia CorporationProcessor performance adjustment system and method
US788616430 May 20038 Feb 2011Nvidia CorporationProcessor temperature adjustment system and method
US78907413 Apr 200315 Feb 2011O2Micro International LimitedLow power digital audio decoding/playing system for computing devices
US790007531 Oct 20071 Mar 2011National Semiconductor CorporationPipelined computer system with power management control
US790007631 Oct 20071 Mar 2011National Semiconductor CorporationPower management method for a pipelined computer system
US793759925 Aug 20083 May 2011Ipventure, Inc.Thermal and power management for computer systems
US794167531 Dec 200210 May 2011Burr James BAdaptive power control
US794986428 Sep 200524 May 2011Vjekoslav SvilanBalanced adaptive body bias control
US795399031 Dec 200231 May 2011Stewart Thomas EAdaptive power control based on post package characterization of integrated circuits
US802274730 Nov 200920 Sep 2011Robert FuSystem for substrate potential regulation during power-up in integrated circuits
US80401491 Sep 200918 Oct 2011Koniaris Kleanthes GFrequency specific closed loop feedback control of integrated circuits
US807409227 May 20096 Dec 2011Huron Ip LlcSystem, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment
US808508430 Nov 200927 Dec 2011Robert FuSystem for substrate potential regulation during power-up in integrated circuits
US814087210 Jun 200820 Mar 2012Marc FleischmannRestoring processor context in response to processor power-up
US819385219 Feb 20105 Jun 2012Tien-Min ChenPrecise control component for a substrate potential regulation circuit
US822291425 Aug 200917 Jul 2012Robert Paul MasleidSystems and methods for adjusting threshold voltage
US831951525 Aug 200927 Nov 2012Robert Paul MasleidSystems and methods for adjusting threshold voltage
US835486830 Aug 201015 Jan 2013Research In Motion LimitedClock circuit for a microprocessor
US837065814 Jul 20095 Feb 2013Eric Chen-Li ShengAdaptive control of operating and body bias voltages
US837066311 Feb 20085 Feb 2013Nvidia CorporationPower management with dynamic frequency adjustments
US842047231 Aug 201016 Apr 2013Kleanthes G. KoniarisSystems and methods for integrated circuits comprising multiple body biasing domains
US843667511 Jan 20107 May 2013Tien-Min ChenFeedback-controlled body-bias voltage source
US84427845 Jun 200714 May 2013Andrew ReadAdaptive power control based on pre package characterization of integrated circuits
US856662122 Oct 201022 Oct 2013Texas Instruments IncorporatedMethod for implementing thermal management in a processor and/or apparatus and/or system employing the same
US856662714 Jul 200922 Oct 2013Sameer HalepeteAdaptive power control
US859316916 Sep 201126 Nov 2013Kleanthes G. KoniarisFrequency specific closed loop feedback control of integrated circuits
US86297111 May 201214 Jan 2014Tien-Min ChenPrecise control component for a substarate potential regulation circuit
US869751214 Dec 201015 Apr 2014Kleanthes G. KoniarisSystems and methods for integrated circuits comprising multiple body biasing domains
US87009233 Feb 200915 Apr 2014Huron Ip LlcApparatus and method for modular dynamically power managed power supply and cooling system for computer systems, server applications, and other electronic devices
US872548826 Jul 200713 May 2014Qualcomm IncorporatedMethod and apparatus for adaptive voltage scaling based on instruction usage
US874929012 Dec 201210 Jun 2014Blackberry LimitedClock circuit for a microprocessor
US20110208916 *28 Nov 200825 Aug 2011Masahiko SaitoShared cache controller, shared cache control method and integrated circuit
USRE3810822 Mar 20016 May 2003Seiko Epson CorporationComputer system with video display controller having power saving modes
USRE4086622 Feb 20074 Aug 2009Huron Ip LlcSystem, method, and architecture for dynamic server power management and dynamic workload management for multiserver environment
WO1995012158A1 *27 Oct 19944 May 1995Oakleigh Systems IncTimer-controlled computer system shutdown and startup
WO2003012610A1 *25 Jul 200213 Feb 2003Scientific AtlantaControlling processor clock rate based on thread priority
Classifications
U.S. Classification713/322, 713/321
International ClassificationG06F1/20, G06F1/32, G06F1/08
Cooperative ClassificationG06F1/3203, Y02B60/1275, G06F1/206, Y02B60/1217, G06F1/324
European ClassificationG06F1/20T, G06F1/32P5F, G06F1/32P
Legal Events
DateCodeEventDescription
29 Sep 2004FPAYFee payment
Year of fee payment: 12
29 Sep 2000FPAYFee payment
Year of fee payment: 8
25 Sep 1996FPAYFee payment
Year of fee payment: 4
5 Jul 1994CCCertificate of correction
30 Oct 1989ASAssignment
Owner name: TEXAS INSTRUMENTS INCORPORATED, TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:WALLACE, STEVEN J.;REEL/FRAME:005207/0050
Effective date: 19891027
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:WATTS, LAVAUGHN F. JR.;REEL/FRAME:005207/0049