US5726921A - Floating point power conservation - Google Patents

Floating point power conservation Download PDF

Info

Publication number
US5726921A
US5726921A US08/579,080 US57908095A US5726921A US 5726921 A US5726921 A US 5726921A US 57908095 A US57908095 A US 57908095A US 5726921 A US5726921 A US 5726921A
Authority
US
United States
Prior art keywords
floating point
fpu
clock signal
bit
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/579,080
Inventor
Robert F. Krick
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to US08/579,080 priority Critical patent/US5726921A/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KRICK, ROBERT F.
Priority to US08/953,034 priority patent/US6035315A/en
Application granted granted Critical
Publication of US5726921A publication Critical patent/US5726921A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Definitions

  • the present invention relates to power conservation. Specifically, the present invention relates to a method and apparatus for deactivating a clock to floating point circuitry, for example, in a processor or a computer system, when floating point operations are not required.
  • processors One feature provided in state of the art processors is the availability of floating point operations. In early designs, because of processor design complexity, such features were provided via a separate co-processor (e.g. the Intel brand Intel287TM and Intel387TM co-processors available from Intel Corporation of Santa Clara, Calif.), which was only installed in a computer system if the user desired. In modern processors, such as the Intel486SXTM (except for the Intel 486SX) and Pentium® brand processors available from Intel, such floating-point functionality has been provided in the main processor.
  • co-processor e.g. the Intel brand Intel287TM and Intel387TM co-processors available from Intel Corporation of Santa Clara, Calif.
  • Intel486SXTM except for the Intel 486SX
  • Pentium® brand processors available from Intel
  • An apparatus comprising floating point circuitry and first logic coupled to at least one flag in a processor control register (e.g. one of the control registers in the Intel Architecture brand processor or a processor compatible therewith) and the floating point circuitry and for coupling to a clock which drives the floating point circuitry.
  • the first logic allows the clock to clock the floating point circuitry when the at least one flag has a first state.
  • the first logic further prevents the clock from clocking the floating point circuitry when the at least one flag has a second state.
  • the at least one flag may include an emulation flag, for example, as defined by the Intel Architecture brand processor, which indicates that floating point operations should be emulated in the processor. It may also include a task switch flag. In yet another embodiment the at least one flag includes the task switch flag and an emulation flag which indicates that floating point operations should be emulated in the processor, and the first logic includes a logical OR between the task switch flag and the emulation flag.
  • the floating point circuitry may include a floating point execution unit and/or floating point registers and execution units in an out-of-order processor.
  • the floating point circuitry may also include a co-processor.
  • the apparatus may further be resident itself in the processor.
  • a delay may be coupled to the flag for delaying the second state on the flag for a time period prior to the preventing the clock from the clocking of the floating point circuitry.
  • Serialization logic may also be included in the apparatus for preventing the at least one flag from being modified to the second state if a subsequent instruction will require use of the floating point circuitry.
  • FIG. 1 illustrates a block diagram of a processor and memory subsystem in a typical computer system.
  • FIG. 2 illustrates a block diagram of a processor which includes floating point power conservation logic, floating point circuitry and other circuitry.
  • FIG. 3 illustrates a more detailed view of a first embodiment of the processor circuitry shown in FIG. 3.
  • FIG. 4 illustrates a more detailed view of a second embodiment of the processor circuitry shown in FIG. 3.
  • FIG. 5 illustrates a more detailed view of a third embodiment of the processor circuitry shown in FIG. 3.
  • FIG. 6 illustrates a detailed view of power conservation logic used in implemented embodiments of the present invention.
  • FIG. 7 illustrates an example of a serialization circuit which is resident in a processor.
  • Implemented embodiments of the present invention include a method and apparatus in a processor or a microprocessor which conserves power.
  • the present invention will be described with reference to certain specific embodiments thereof, including circuits, systems, etc., it can be appreciated by one skilled in the art that these specific details are disclosed herein for a complete understanding of the present invention, and do not limit its scope. It can be appreciated by one skilled in the art that many departures and other modifications of the implemented embodiments of the present invention may be performed by one skilled in the art. This invention can be practiced without these specific details.
  • FIG. 1 illustrates a computer system 10 which includes a processor 12 and a memory subsystem 16.
  • the processor 12 and the memory subsystem 16 communicate over a host bus 14.
  • the processor 12 and memory subsystem 16 communicate commands and instructions over bus 14 to provide functionality.
  • FIG. 2 illustrates a more detailed view of processor 12.
  • Processor 12 is shown in simplified block diagram form.
  • Processor 12 executes Intel Architecture processor instructions.
  • Processor 12 includes a bus interface 204 which is coupled and in communication with control and integer execution units 206.
  • Bus interface 204 may be used for communication with other devices via bus 14, such as memory subsystem 16.
  • Control and integer execution units 206 are coupled via signal line 260 to power conservation logic 208.
  • Power conservation logic 208 is coupled via clock line 270 to floating point circuitry 210.
  • Floating point circuitry 210 is coupled to power conservation logic 208 via clock line 270, and control and integer execution units 206 via lines 280 for communication with the remainder of the processor.
  • Floating point circuitry 210 includes all circuitry which is necessary for executing floating point instructions (e.g. floating point execution unit(s)).
  • Floating point circuitry 210 further includes all circuitry for generating and maintaining the floating point state (e.g. floating point registers).
  • floating point circuitry 210 may be present in a single unit on-chip. It may also be present in an external co-processor chip, such as the Intel387TM. In an out-of-order processor where functionality may be distributed, it can be understood by one skilled that floating point circuitry 210 may include any execution unit(s), register(s), extended precision portions of bus drivers and receivers and other circuitry for generating, executing and maintaining the floating point state. For all intents and purposes, whether in a single chip or multiple chips, floating point circuitry is segregated.
  • Control and integer execution units 206 include all other circuitry which is normally present in a processor, such as an instruction decoder, cache(s), integer registers, integer execution units, etc . . . , except floating point circuitry 210, bus interface 204, and power conservation logic 208. All of the circuitry shown in FIG. 2 is clocked by a central clock 202, although it can be appreciated that different portions of the circuit may be clocked by different clocks, according to implementation. Note that regardless of the clocking mechanism used that the clock to is floating point circuitry 210 is controlled by power conservation logic 208.
  • FIG. 3 illustrates details of relevant portions of control and integer execution units 206 for the purposes of a first embodiment 206a of this invention.
  • a control unit 302 is present in control and integer execution units 206 which controls the contents of registers 304, and performs certain actions based upon the contents of registers 304.
  • Control registers 304 include control registers CR0, CR1, CR2, and CR3 which function according to an Intel Architecture processor standard.
  • Signal line 260 which is coupled to power conservation logic 208 is coupled to bit 2 of control register CRO, EM bit 314, in this implementation, which controls power conservation logic 208.
  • EM bit 314 functions as a flag indicating that floating point instructions in the processor should be emulated because no floating point unit is available.
  • Signal line 262 provides a delay signal to power conservation logic 208 which varies the time in which the detection of a floating point power down condition takes place. In the instance of the floating point pipeline being empty, this time may vary according to the type of processor, operating conditions, etc.
  • FIG. 4 illustrates the details of a second embodiment 206b of the present invention.
  • signal line 260 is coupled to the TS bit 414 in control register CR0.
  • FIG. 5 illustrates the details of a third embodiment 206c of the present invention.
  • either the TS bit 513 or the EM bit 514 is provided as the flag over signal line 260 by OR gate 515.
  • a device not available (DNA) exception is generated.
  • the operating system saves the current floating point context, the floating point context for the current process is restored, the appropriate bit is cleared, and the original floating point instruction which caused the DNA is re-executed.
  • This technique is typically used in circumstances when most processes do not execute floating point instructions. In other architectures, the technique may be used in other circumstances.
  • implemented embodiments of the present invention use either the EM bit 314 or the TS bit 414 to control the power conservation logic and deactivate clocking of floating point circuitry.
  • Power conservation logic 208 is shown in one implementation in FIG. 6.
  • Signal line 260 carrying the state of the flag, either the EM bit 314 or the TS bit 414, is input to an inverter 602.
  • the output of inverter 602 is fed to a delay 604 and to an OR gate 606.
  • Delay 604 delays the inverted state of the flag for a predetermined time. This time (or number of specified clocks) will vary according to implementation, but is generally the maximum time that it will take to save the floating point state during a task switch. This allows the logic to settle while the old floating point state is saved. This forces a latency prior to the deactivation of the floating point circuitry. This allows current implementations of task switching to remain unchanged.
  • the delay can vary, according to implementation, as conditioned by the signal carded on signal line 262.
  • the flag carried on signal line 260 is input along with the delayed state of the flag from delay 604 to OR gate 606.
  • the output of OR gate 606 is coupled to AND gate 608.
  • AND gate 608 is also coupled to the clock signal line 250 which clocks floating point circuitry 210.
  • floating point circuitry 210 can effectively be powered down when the flag is in one state (high, in this implementation) as delayed by the predetermined time of delay 604. In another implementation which does not require such a latency, the delay can be removed, and the signal line carrying the flag can be coupled directly to AND gate 608.
  • Floating point circuitry 210 can be powered back up, resuming clocking immediately upon the flag changing to another state (low, in this implementation). Power is thereby conserved by deactivation of floating point circuitry 210 during intervals when it is not required for the execution of any instructions.
  • serialization of the setting of the flag This may be implemented either in operating system routines or exception handlers which modify the flag, or in the processor itself. Again, circuitry which is resident in the processor itself avoids modification of existing software. In one implementation as illustrated in FIG. 7, serialization logic 704 in control unit 302 may be used for this purpose.
  • Serialization logic 704 ensures that updates of the flag are serialized with respect to floating point operations. Moreover, it ensures that the floating point circuitry 210 is not required for any other floating point operations which may be performed in the processor. In a pipelined in-order architecture processor, serialization logic 604 may simply check opcodes of any instructions which are currently being issued in the instruction issue section 702 of the processor, awaiting decoding or other intermediate stage of completion to determine whether an instruction will require use of floating point circuitry 210. This may include any instructions which require floating point units, but yet, may not be floating point instructions themselves (e.g. the IMUL instruction). Thus, if the serialization logic 704 detects a condition under which the flag should not be set, then any signals received from the execution pipeline 706 to set the flag will be overridden and blocked by serialization logic 704.
  • serialization logic 704 detects execution of a first instruction which requires execution of a subsequent institution requireing floating point circuitry 210. In this situation the flag will not be set.

Abstract

An apparatus comprising floating point circuitry and first logic coupled to at least one flag in a processor control register (e.g. one of the control registers in the Intel Architecture brand processor or a processor compatible therewith) and the floating point circuitry and for coupling to a clock which drives the floating point circuitry. The first logic allows the clock to clock the floating point circuitry when the at least one flag has a first state. The first logic further prevents the clock from clocking the floating point circuitry when the at least one flag has a second state.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to power conservation. Specifically, the present invention relates to a method and apparatus for deactivating a clock to floating point circuitry, for example, in a processor or a computer system, when floating point operations are not required.
2. Background Information
Power conservation is increasingly becoming a concern in both computer system and processor design. Due to the proliferation of portable or so-called "laptop" computers, environmental concerns, and other design considerations, almost uniformly, designers are seeking more and more opportunities to reduce power consumption by both processors and computer systems.
Prior an solutions to power consumption problems have included the release of processors which operate at lower power levels. Other solutions have included modes which deactivate system power to components in a computer system when not in use. For example, if a fixed-media or hard-disk drive in not accessed for a certain period of time, the drive may be spun down. If a system remains idle, its monitor may be dimmed or its processor may be put to "sleep". In yet other prior an solutions, the entire system may be put to "sleep" (e.g. deactivated) if there is inactivity for a predetermined time period. Myriad other solutions have been and are being developed which address these needs.
One feature provided in state of the art processors is the availability of floating point operations. In early designs, because of processor design complexity, such features were provided via a separate co-processor (e.g. the Intel brand Intel287™ and Intel387™ co-processors available from Intel Corporation of Santa Clara, Calif.), which was only installed in a computer system if the user desired. In modern processors, such as the Intel486SX™ (except for the Intel 486SX) and Pentium® brand processors available from Intel, such floating-point functionality has been provided in the main processor.
Many applications do not use floating point operations on a regular basis. Notwithstanding, modern processors such as these continue to clock the floating point circuitry, even though no floating point operations are being executed or floating point registers are in use. Although power-saving versions of these processors continue to be developed and made available, prior art solutions to reduce power consumption have been lacking, especially due to the unnecessary operation of certain circuitry in a processor or co-processor in a computer system.
Thus, the prior art of power conservation, in processor and computer system design, suffers from deficiencies.
SUMMARY
An apparatus comprising floating point circuitry and first logic coupled to at least one flag in a processor control register (e.g. one of the control registers in the Intel Architecture brand processor or a processor compatible therewith) and the floating point circuitry and for coupling to a clock which drives the floating point circuitry. The first logic allows the clock to clock the floating point circuitry when the at least one flag has a first state. The first logic further prevents the clock from clocking the floating point circuitry when the at least one flag has a second state.
In implemented embodiments, the at least one flag may include an emulation flag, for example, as defined by the Intel Architecture brand processor, which indicates that floating point operations should be emulated in the processor. It may also include a task switch flag. In yet another embodiment the at least one flag includes the task switch flag and an emulation flag which indicates that floating point operations should be emulated in the processor, and the first logic includes a logical OR between the task switch flag and the emulation flag.
The floating point circuitry may include a floating point execution unit and/or floating point registers and execution units in an out-of-order processor. The floating point circuitry may also include a co-processor. The apparatus may further be resident itself in the processor.
A delay may be coupled to the flag for delaying the second state on the flag for a time period prior to the preventing the clock from the clocking of the floating point circuitry. Serialization logic may also be included in the apparatus for preventing the at least one flag from being modified to the second state if a subsequent instruction will require use of the floating point circuitry.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example and not limitation in the figures of the accompanying in which like references indicate like elements and in which:
FIG. 1 illustrates a block diagram of a processor and memory subsystem in a typical computer system.
FIG. 2 illustrates a block diagram of a processor which includes floating point power conservation logic, floating point circuitry and other circuitry.
FIG. 3 illustrates a more detailed view of a first embodiment of the processor circuitry shown in FIG. 3.
FIG. 4 illustrates a more detailed view of a second embodiment of the processor circuitry shown in FIG. 3.
FIG. 5 illustrates a more detailed view of a third embodiment of the processor circuitry shown in FIG. 3.
FIG. 6 illustrates a detailed view of power conservation logic used in implemented embodiments of the present invention.
FIG. 7 illustrates an example of a serialization circuit which is resident in a processor.
DETAILED DESCRIPTION
Implemented embodiments of the present invention include a method and apparatus in a processor or a microprocessor which conserves power. Although the present invention will be described with reference to certain specific embodiments thereof, including circuits, systems, etc., it can be appreciated by one skilled in the art that these specific details are disclosed herein for a complete understanding of the present invention, and do not limit its scope. It can be appreciated by one skilled in the art that many departures and other modifications of the implemented embodiments of the present invention may be performed by one skilled in the art. This invention can be practiced without these specific details.
FIG. 1 illustrates a computer system 10 which includes a processor 12 and a memory subsystem 16. The processor 12 and the memory subsystem 16 communicate over a host bus 14. The processor 12 and memory subsystem 16 communicate commands and instructions over bus 14 to provide functionality.
FIG. 2 illustrates a more detailed view of processor 12. Processor 12 is shown in simplified block diagram form. Processor 12 executes Intel Architecture processor instructions.
Processor 12 includes a bus interface 204 which is coupled and in communication with control and integer execution units 206. Bus interface 204 may be used for communication with other devices via bus 14, such as memory subsystem 16.
Control and integer execution units 206 are coupled via signal line 260 to power conservation logic 208. Power conservation logic 208 is coupled via clock line 270 to floating point circuitry 210.
Floating point circuitry 210 is coupled to power conservation logic 208 via clock line 270, and control and integer execution units 206 via lines 280 for communication with the remainder of the processor. Floating point circuitry 210 includes all circuitry which is necessary for executing floating point instructions (e.g. floating point execution unit(s)). Floating point circuitry 210 further includes all circuitry for generating and maintaining the floating point state (e.g. floating point registers).
In an in-order processor, floating point circuitry 210 may be present in a single unit on-chip. It may also be present in an external co-processor chip, such as the Intel387™. In an out-of-order processor where functionality may be distributed, it can be understood by one skilled that floating point circuitry 210 may include any execution unit(s), register(s), extended precision portions of bus drivers and receivers and other circuitry for generating, executing and maintaining the floating point state. For all intents and purposes, whether in a single chip or multiple chips, floating point circuitry is segregated.
Control and integer execution units 206 include all other circuitry which is normally present in a processor, such as an instruction decoder, cache(s), integer registers, integer execution units, etc . . . , except floating point circuitry 210, bus interface 204, and power conservation logic 208. All of the circuitry shown in FIG. 2 is clocked by a central clock 202, although it can be appreciated that different portions of the circuit may be clocked by different clocks, according to implementation. Note that regardless of the clocking mechanism used that the clock to is floating point circuitry 210 is controlled by power conservation logic 208.
FIG. 3 illustrates details of relevant portions of control and integer execution units 206 for the purposes of a first embodiment 206a of this invention. A control unit 302 is present in control and integer execution units 206 which controls the contents of registers 304, and performs certain actions based upon the contents of registers 304. Control registers 304 include control registers CR0, CR1, CR2, and CR3 which function according to an Intel Architecture processor standard.
Signal line 260 which is coupled to power conservation logic 208 is coupled to bit 2 of control register CRO, EM bit 314, in this implementation, which controls power conservation logic 208. EM bit 314 functions as a flag indicating that floating point instructions in the processor should be emulated because no floating point unit is available.
Signal line 262 provides a delay signal to power conservation logic 208 which varies the time in which the detection of a floating point power down condition takes place. In the instance of the floating point pipeline being empty, this time may vary according to the type of processor, operating conditions, etc.
FIG. 4 illustrates the details of a second embodiment 206b of the present invention. In this implementation, signal line 260 is coupled to the TS bit 414 in control register CR0.
FIG. 5 illustrates the details of a third embodiment 206c of the present invention. In this embodiment, either the TS bit 513 or the EM bit 514 is provided as the flag over signal line 260 by OR gate 515.
In multi-tasking operating systems, such as UNIX and Windows NT a "lazy" floating point context save/restore mechanism is used when task switching. In the Intel Architecture processor, this switching is accomplished by setting either the EM bit 314 or the TS bit 414 in control register CR0 when a task is switched. With this mechanism, the processor can save the "old" floating point state if the current process does not execute any floating point instructions.
When either the EM bit 314 or the TS bit 414 is set in CR0 after a task switch upon the execution of a floating point instruction in the Intel Architecture processor, a device not available (DNA) exception is generated. In this case, the operating system saves the current floating point context, the floating point context for the current process is restored, the appropriate bit is cleared, and the original floating point instruction which caused the DNA is re-executed. This technique is typically used in circumstances when most processes do not execute floating point instructions. In other architectures, the technique may be used in other circumstances.
Because these methods are used when no floating point instructions are being executed, implemented embodiments of the present invention use either the EM bit 314 or the TS bit 414 to control the power conservation logic and deactivate clocking of floating point circuitry.
Power conservation logic 208 is shown in one implementation in FIG. 6. Signal line 260 carrying the state of the flag, either the EM bit 314 or the TS bit 414, is input to an inverter 602. The output of inverter 602 is fed to a delay 604 and to an OR gate 606. Delay 604 delays the inverted state of the flag for a predetermined time. This time (or number of specified clocks) will vary according to implementation, but is generally the maximum time that it will take to save the floating point state during a task switch. This allows the logic to settle while the old floating point state is saved. This forces a latency prior to the deactivation of the floating point circuitry. This allows current implementations of task switching to remain unchanged. The delay can vary, according to implementation, as conditioned by the signal carded on signal line 262.
The flag carried on signal line 260 is input along with the delayed state of the flag from delay 604 to OR gate 606. The output of OR gate 606 is coupled to AND gate 608. AND gate 608 is also coupled to the clock signal line 250 which clocks floating point circuitry 210. Thus, floating point circuitry 210 can effectively be powered down when the flag is in one state (high, in this implementation) as delayed by the predetermined time of delay 604. In another implementation which does not require such a latency, the delay can be removed, and the signal line carrying the flag can be coupled directly to AND gate 608. Floating point circuitry 210 can be powered back up, resuming clocking immediately upon the flag changing to another state (low, in this implementation). Power is thereby conserved by deactivation of floating point circuitry 210 during intervals when it is not required for the execution of any instructions.
A final design consideration which should be taken into account is serialization of the setting of the flag. This may be implemented either in operating system routines or exception handlers which modify the flag, or in the processor itself. Again, circuitry which is resident in the processor itself avoids modification of existing software. In one implementation as illustrated in FIG. 7, serialization logic 704 in control unit 302 may be used for this purpose.
Serialization logic 704 ensures that updates of the flag are serialized with respect to floating point operations. Moreover, it ensures that the floating point circuitry 210 is not required for any other floating point operations which may be performed in the processor. In a pipelined in-order architecture processor, serialization logic 604 may simply check opcodes of any instructions which are currently being issued in the instruction issue section 702 of the processor, awaiting decoding or other intermediate stage of completion to determine whether an instruction will require use of floating point circuitry 210. This may include any instructions which require floating point units, but yet, may not be floating point instructions themselves (e.g. the IMUL instruction). Thus, if the serialization logic 704 detects a condition under which the flag should not be set, then any signals received from the execution pipeline 706 to set the flag will be overridden and blocked by serialization logic 704.
In another implementation, serialization logic 704 detects execution of a first instruction which requires execution of a subsequent institution requireing floating point circuitry 210. In this situation the flag will not be set.
In yet another implementation, in architectures which perform speculative out-of-order execution, various stages in the execution pipeline should also be checked to determine if floating point circuitry 210 is being used. Conceptually, serialization is the same, albeit, more complex because design considerations such as register renaming and other issues specific to such processors must be addressed.
Thus, in conclusion, an apparatus for conserving power in a computer system or processor has been described. Although the present invention has been described with reference to certain specific embodiments thereof, the present invention should be construed as limited by the appended claims which follow.

Claims (4)

What is claimed is:
1. In a computer system including a floating point unit (FPU), an apparatus for reducing power consumption, comprising:
control and integer execution circuitry coupled to the FPU comprising a plurality of control registers that store a plurality of flag bits including an emulation bit, an active state of the emulation bit indicating that floating point operations must be emulated by the computer system; and
power conservation logic coupled to the control and integer execution circuitry and to the FPU that outputs a clock signal to the FPU when the clock signal is active and the emulation bit is inactive, the power conservation logic comprising:
a delay circuit that delays the emulation bit; and
an AND gate with an input coupled to the clock signal, an input coupled to the output of the delay circuit, and an output coupled to a clock input of the FPU.
2. The apparatus of claim 1, wherein the plurality of flag bits further includes a task switch flag, an active state of the task switch flag indicating that tasks performed by the computer system are being switched, and wherein the power conservation logic outputs the clock signal to the FPU when the clock signal is active and the task switch bit is inactive.
3. In a processor, an apparatus that controls power used by a floating point unit (FPU), comprising:
a central clock device that generates a system clock signal;
a control and execution unit coupled to the clock device, comprising:
at least one control register that stores bits indicating conditions of the processor, including an emulation bit and a task switch bit, the emulation bit indicating that the processor must emulate floating point operation and the task switch bit indicating that the processor is switching tasks; and
a first OR circuit that generates a result of ORing the emulation bit and the task switch bit; and
power conservation logic coupled to the control and execution unit and to the clock device that outputs an FPU clock signal when the system clock signal is active and the output of the first OR circuit is active the power conservation logic comprising:
a delay circuit that delays the output of the first OR circuit;
a second OR circuit that outputs a result of ORing an output of the delay circuit and the output of the first OR circuit; and
an AND circuit that generates the FPU clock signal from the output of the second OR circuit and the system clock signal.
4. In a computer system including a floating point unit (FPU), an apparatus for reducing power consumption, comprising:
control and integer execution circuitry coupled to the FPU comprising a plurality of control registers that store a plurality of flag bits including:
a task switch flag, an active state of the task switch flag indicating that tasks performed by the computer system are being switched, and wherein the power conservation logic outputs the clock signal to the FPU when the clock signal is active and the task switch bit is inactive; and
an emulation bit, an active state of the emulation bit indicating that floating point operations must be emulated by the computer system; and
power conservation logic coupled to the control and integer execution circuitry and to the FPU that outputs a clock signal to the FPU when the clock signal is active and the emulation bit is inactive, the power conservation logic comprising:
a delay circuit that delays the task switch bit; and
an AND gate with an input coupled to the clock signal, an input coupled to the output of the delay circuit, and an output coupled to a clock input of the FPU.
US08/579,080 1995-12-22 1995-12-22 Floating point power conservation Expired - Lifetime US5726921A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US08/579,080 US5726921A (en) 1995-12-22 1995-12-22 Floating point power conservation
US08/953,034 US6035315A (en) 1995-12-22 1997-10-17 Floating point power conservation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/579,080 US5726921A (en) 1995-12-22 1995-12-22 Floating point power conservation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US08/953,034 Continuation US6035315A (en) 1995-12-22 1997-10-17 Floating point power conservation

Publications (1)

Publication Number Publication Date
US5726921A true US5726921A (en) 1998-03-10

Family

ID=24315489

Family Applications (2)

Application Number Title Priority Date Filing Date
US08/579,080 Expired - Lifetime US5726921A (en) 1995-12-22 1995-12-22 Floating point power conservation
US08/953,034 Expired - Fee Related US6035315A (en) 1995-12-22 1997-10-17 Floating point power conservation

Family Applications After (1)

Application Number Title Priority Date Filing Date
US08/953,034 Expired - Fee Related US6035315A (en) 1995-12-22 1997-10-17 Floating point power conservation

Country Status (1)

Country Link
US (2) US5726921A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032249A (en) * 1998-02-02 2000-02-29 International Business Machines Corporation Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
US6167524A (en) * 1998-04-06 2000-12-26 International Business Machines Corporation Apparatus and method for efficient battery utilization in portable personal computers
US6757810B1 (en) * 1999-09-10 2004-06-29 Kabushiki Kaisha Toshiba Microprocessor including memory for storing set value used to select and executive instruction after completing exception handling caused by exception request
US20040230849A1 (en) * 2003-05-15 2004-11-18 International Business Machines Corporation Power saving in FPU with gated power based on opcodes and data
US7058830B2 (en) 2003-03-19 2006-06-06 International Business Machines Corporation Power saving in a floating point unit using a multiplier and aligner bypass
US20060120587A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation System and method for determining image resolution using MICR characters
US7472215B1 (en) 1999-03-31 2008-12-30 International Business Machines Corporation Portable computer system with thermal enhancements and multiple power modes of operation
US20100017635A1 (en) * 2008-07-18 2010-01-21 Barowski Harry S Zero indication forwarding for floating point unit power reduction
GB2466300A (en) * 2008-12-19 2010-06-23 Advanced Risc Mach Ltd Clock gating control circuit for delaying switching between operational and sleep modes
US20120079242A1 (en) * 2010-09-24 2012-03-29 Madduri Venkateswara R Processor power management based on class and content of instructions
EP2533131A1 (en) * 2011-06-10 2012-12-12 ST-Ericsson SA Management of the interaction between security and operating system power management unit

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438700B1 (en) * 1999-05-18 2002-08-20 Koninklijke Philips Electronics N.V. System and method to reduce power consumption in advanced RISC machine (ARM) based systems
US6826704B1 (en) * 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
US7243217B1 (en) * 2002-09-24 2007-07-10 Advanced Micro Devices, Inc. Floating point unit with variable speed execution pipeline and method of operation
KR101359717B1 (en) * 2010-11-08 2014-02-07 한국전자통신연구원 Energy tile processor
US8918446B2 (en) * 2010-12-14 2014-12-23 Intel Corporation Reducing power consumption in multi-precision floating point multipliers
GB2546465B (en) * 2015-06-05 2018-02-28 Advanced Risc Mach Ltd Modal processing of program instructions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4418969A (en) * 1980-12-24 1983-12-06 Hettman Kenneth R Bottled chemical handling system
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5420808A (en) * 1993-05-13 1995-05-30 International Business Machines Corporation Circuitry and method for reducing power consumption within an electronic circuit
US5586332A (en) * 1993-03-24 1996-12-17 Intel Corporation Power management for low power processors through the use of auto clock-throttling
US5603037A (en) * 1993-04-23 1997-02-11 Intel Corporation Clock disable circuit for translation buffer

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2762670B2 (en) * 1990-03-30 1998-06-04 松下電器産業株式会社 Data processing device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4418969A (en) * 1980-12-24 1983-12-06 Hettman Kenneth R Bottled chemical handling system
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5586332A (en) * 1993-03-24 1996-12-17 Intel Corporation Power management for low power processors through the use of auto clock-throttling
US5603037A (en) * 1993-04-23 1997-02-11 Intel Corporation Clock disable circuit for translation buffer
US5420808A (en) * 1993-05-13 1995-05-30 International Business Machines Corporation Circuitry and method for reducing power consumption within an electronic circuit

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032249A (en) * 1998-02-02 2000-02-29 International Business Machines Corporation Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
US6167524A (en) * 1998-04-06 2000-12-26 International Business Machines Corporation Apparatus and method for efficient battery utilization in portable personal computers
US7676620B2 (en) * 1999-03-31 2010-03-09 International Business Machines Corporation Portable computer systems with thermal enhancements and multiple power modes of operation
US7793027B2 (en) * 1999-03-31 2010-09-07 International Business Machines Corporation Portable computer apparatus with thermal enhancements and multiple modes of operation
US7925813B2 (en) * 1999-03-31 2011-04-12 International Business Machines Corporation Method of fabricating a portable computer apparatus with thermal enhancements and multiple power modes of operation
US7694057B2 (en) * 1999-03-31 2010-04-06 International Business Machines Corporation Portable computer apparatus with thermal enhancements and multiple modes of operation
US7702837B2 (en) * 1999-03-31 2010-04-20 International Business Machines Corporation Method of fabricating a portable computer apparatus with thermal enhancements and multiple modes of operation
US7472215B1 (en) 1999-03-31 2008-12-30 International Business Machines Corporation Portable computer system with thermal enhancements and multiple power modes of operation
US20090077296A1 (en) * 1999-03-31 2009-03-19 Ibm Corporation Portable computer systems with thermal enhancements and multiple power modes of operation
US20090113227A1 (en) * 1999-03-31 2009-04-30 International Business Machines Corp Method of operation of a portable computer apparatus with thermal enhancements and multiple modes of operation
US20090113225A1 (en) * 1999-03-31 2009-04-30 International Business Machines Corporation Method of operations of a portable computer apparatus with thermal enhancements and multiple modes of operation
US20090113226A1 (en) * 1999-03-31 2009-04-30 International Business Machines Corporation Portable computer apparatus with thermal enhancements and multiple modes of operation
US20090113224A1 (en) * 1999-03-31 2009-04-30 International Business Machines Corporation Method of operation of a portable computer apparatus with thermal enhancements and multiple modes of operation
US20090113228A1 (en) * 1999-03-31 2009-04-30 International Business Machines Corp Portable computer systems with thermal enhancements and multiple power modes of operation
US20090135557A1 (en) * 1999-03-31 2009-05-28 International Business Machines Corporation Portable computer apparatus with thermal enhancements and multiple modes of operation
US7788436B2 (en) * 1999-03-31 2010-08-31 International Business Machines Corporation Method of operation of a portable computer apparatus with thermal enhancements and multiple modes of operation
US7660930B2 (en) * 1999-03-31 2010-02-09 International Business Machines Corporation Method of fabricating a portable computer apparatus with thermal enhancements and multiple power modes of operation
US7676619B2 (en) * 1999-03-31 2010-03-09 International Business Machines Corporation Portable computer apparatus with thermal enhancements and multiple modes of operation
US7761641B2 (en) * 1999-03-31 2010-07-20 International Business Machines Corporation Method of operation of a portable computer apparatus with thermal enhancements and multiple modes of operation
US7739439B2 (en) * 1999-03-31 2010-06-15 International Business Machines Corporation Method of fabrication of a portable computer apparatus with thermal enhancements and multiple modes of operation
US7711884B2 (en) * 1999-03-31 2010-05-04 International Business Machines Corporation Method of operation of a portable computer apparatus with thermal enhancements and multiple modes of operation
US6757810B1 (en) * 1999-09-10 2004-06-29 Kabushiki Kaisha Toshiba Microprocessor including memory for storing set value used to select and executive instruction after completing exception handling caused by exception request
US7058830B2 (en) 2003-03-19 2006-06-06 International Business Machines Corporation Power saving in a floating point unit using a multiplier and aligner bypass
US20040230849A1 (en) * 2003-05-15 2004-11-18 International Business Machines Corporation Power saving in FPU with gated power based on opcodes and data
US7137021B2 (en) 2003-05-15 2006-11-14 International Business Machines Corporation Power saving in FPU with gated power based on opcodes and data
US20060120587A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation System and method for determining image resolution using MICR characters
US20100017635A1 (en) * 2008-07-18 2010-01-21 Barowski Harry S Zero indication forwarding for floating point unit power reduction
US8255726B2 (en) * 2008-07-18 2012-08-28 International Business Machines Corporation Zero indication forwarding for floating point unit power reduction
US8578196B2 (en) * 2008-07-18 2013-11-05 International Business Machines Corporation Zero indication forwarding for floating point unit power reduction
US20100162063A1 (en) * 2008-12-19 2010-06-24 Arm Limited Control of clock gating
GB2466300A (en) * 2008-12-19 2010-06-23 Advanced Risc Mach Ltd Clock gating control circuit for delaying switching between operational and sleep modes
US8352794B2 (en) * 2008-12-19 2013-01-08 Arm Limited Control of clock gating
GB2466300B (en) * 2008-12-19 2013-05-15 Advanced Risc Mach Ltd Control of clock gating
US9710277B2 (en) * 2010-09-24 2017-07-18 Intel Corporation Processor power management based on class and content of instructions
US20120079242A1 (en) * 2010-09-24 2012-03-29 Madduri Venkateswara R Processor power management based on class and content of instructions
EP2533131A1 (en) * 2011-06-10 2012-12-12 ST-Ericsson SA Management of the interaction between security and operating system power management unit
WO2012168339A1 (en) * 2011-06-10 2012-12-13 St-Ericsson Sa Management of the interaction between security and operating system power management unit
US9383796B2 (en) 2011-06-10 2016-07-05 St-Ericsson Sa Management of the interaction between security and operating system power management unit

Also Published As

Publication number Publication date
US6035315A (en) 2000-03-07

Similar Documents

Publication Publication Date Title
US5726921A (en) Floating point power conservation
US5630143A (en) Microprocessor with externally controllable power management
US6910141B2 (en) Pipelined data processor with signal-initiated power management control
EP1099167B1 (en) Method and apparatus for power mode transition in a multi-thread processor
US6543002B1 (en) Recovery from hang condition in a microprocessor
JP3734888B2 (en) Microprocessor with power management function
US5632037A (en) Microprocessor having power management circuitry with coprocessor support
US20040073821A1 (en) Method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device
WO1998050846A1 (en) Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state
JP4621706B2 (en) Computer system with hardware-controlled power management function
EP0901063A2 (en) Power management methods
US5375209A (en) Microprocessor for selectively configuring pinout by activating tri-state device to disable internal clock from external pin
US7243217B1 (en) Floating point unit with variable speed execution pipeline and method of operation
JPH11149373A (en) Processor

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

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

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12