WO2002046894A2 - Processor idle state - Google Patents

Processor idle state Download PDF

Info

Publication number
WO2002046894A2
WO2002046894A2 PCT/US2001/043412 US0143412W WO0246894A2 WO 2002046894 A2 WO2002046894 A2 WO 2002046894A2 US 0143412 W US0143412 W US 0143412W WO 0246894 A2 WO0246894 A2 WO 0246894A2
Authority
WO
WIPO (PCT)
Prior art keywords
processor
idle
signal
instruction
execution pipeline
Prior art date
Application number
PCT/US2001/043412
Other languages
French (fr)
Other versions
WO2002046894A3 (en
Inventor
Charles P. Roth
Ravi P. Singh
Thomas Tomazin
David B. Witt
Ravi Kolagotla
Juan G. Revilla
Original Assignee
Intel Corporation
Analog Devices, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation, Analog Devices, Inc. filed Critical Intel Corporation
Priority to KR10-2003-7006267A priority Critical patent/KR100500227B1/en
Priority to JP2002548560A priority patent/JP4488676B2/en
Publication of WO2002046894A2 publication Critical patent/WO2002046894A2/en
Publication of WO2002046894A3 publication Critical patent/WO2002046894A3/en

Links

Classifications

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

Definitions

  • This invention relates to placing a programmable processor in an idle state.
  • a programmable processor such as a microprocessor for a computer or a digital signal processing system, may be capable of performing millions of electronic operations per second.
  • the processor may have few operations to perform at a given time, yet the processor remains fully powered and ready to perform as needed.
  • the power consumption may be undesirable when, for example, the processor is incorporated in a battery-powered device.
  • Figure 1 is a block diagram illustrating an example of a pipelined programmable processor.
  • Figure 2 is a schematic illustrating an example execution pipeline.
  • Figure 3 is a flowchart illustrating a process for placing a processor in an idle state.
  • Figure 4 is a logic diagram of an idle handler.
  • Figure 5 is a flowchart illustrating a process for returning a processor from an idle state.
  • Figure 6 is a flowchart illustrating a process for returning a processor from an idle state.
  • the operations of the processor may be suspended.
  • power to the processor may be reduced, thus promoting energy efficiency and prolonging battery power.
  • the techniques described below may provide ways of creating an idle mode for a processor, in which the processor performs few or no processing operations, does not fetch instructions for execution, and/or ignores interrupts. Also described are techniques for "waking up" the processor from its idle state and returning it to its active state.
  • Figure 1 is a block diagram illustrating a programmable processor 10 having an execution pipeline 14 and a control unit 12.
  • Control unit 12 controls the flow of instructions and data through pipeline 14 during a clock cycle. For example, during the processing of an instruction, control unit 12 may direct the various components of pipeline 14 to decode the instruction and perform the corresponding operation including, for example, writing the results back to memory. Many operations of processor 10 are clocked, with a clock signal supplied by a clock controller 15.
  • a connection denoted “idle output” 17 couples pipeline 14 to an idle handler 11, shown in Figure 1 as part of control unit 12. Idle handler 11 may bring about the idle state. In addition, idle handler 11 may assert idle output bit 17 to indicate an idle state. Assertion of idle output 17 may stall pipeline 14, and may result in suspension of operations of pipeline 14. Suspension of operations may be part of placing processor 10 in an idle state. Idle handler 11 and idle output 17 are described in more detail below.
  • programmable processor 10 cooperates with a main processor 18.
  • Processor 10 may be a slave or a companion to main processor 18.
  • programmable processor 10 may not cooperate with another processor.
  • the system depicted in Figure 1 is intended for illustration and is not intended to limit the scope of the invention.
  • applications may include additional components not shown in Figure 1, such as static random access memory, bus controllers, interrupt handlers and input-output devices .
  • Main processor 18 may sense idle output 17. By sensing idle output 17, main processor 18 detects whether processor 10 is active or idle. Main processor 18 may be further adapted to wake up processor 10 by assertion of a wake-up signal 84.
  • Instructions stored in instruction cache memory 16, may be loaded into a first stage of pipeline 14 and processed through the subsequent stages.
  • the stages may process substantially concurrently with the other stages.
  • Data may pass between the stages in pipeline 14 during a clock cycle of the system.
  • the results of the instructions may emerge at the end of pipeline 14 in rapid succession.
  • Figure 2 illustrates an example pipeline 14.
  • Pipeline 14 may have five stages: instruction fetch (IF), instruction decode (DEC), address calculation (AC) , execute (EX) and write back (WB) .
  • Instructions may be fetched from memory, or from instruction cache 16, during the first stage (IF) by fetch unit 20 and decoded 22 within address registers 24 during the second stage (DEC) .
  • the results may be passed to the third stage (AC) , where data address generators 26 calculate any memory addresses that are used to perform the operation.
  • execution unit 28 may perform the operation such as, for example, adding or multiplying two numbers.
  • the results may be written back to data memory or to data registers 30.
  • An application including programmable processor 10 may encounter situations in which processor 10 has no tasks to perform, yet is consuming power. In such situations it may be advantageous for processor 10 to enter a low-power idle mode.
  • An idle mode may be initiated by, for example, a user that instructs processor 10 to enter a low-power state, or by main processor 18 after a period has elapsed in which processor 10 has had no tasks to perform, although the scope of the invention is not limited in this respect.
  • Figure 3 illustrates a process by which processor 10 in an active state (50) may enter a low-power idle mode. When an idle is indicated (52), such as by a user or by main processor 18, processor 10 may disable interrupts (54) .
  • One way to disable interrupts is to execute a CLI (clear interrupt) instruction that alters the interrupt mask used by the interrupt handler.
  • CLI clear interrupt
  • processor 10 may ignore interrupts while entering the idle state.
  • Processor 10 may also ignore interrupts while in the idle state.
  • Processor 10 places itself in a known idle state (56) . Placing processor 10 in a known idle state allows processor 10 to exit from the idle mode at a later time in a known state, without undergoing a reset.
  • Figure 3 shows one way to place processor 10 in an idle state (56) .
  • An idle request may be indicated (52) by sending an idle instruction through pipeline 14. As will be described below, the idle instruction may result in the setting of an idle flag bit 80 (see Figure 4) (58) .
  • Idle flag bit 80 may indicate that processor 10 is entering an idle state. Idle flag bit 80 may be stored in a memory element such as a register 102 (see Figure 4) .
  • the idle instruction may be followed in pipeline 14 by a system synchronization (SSYNC) instruction (60).
  • SSYNC system synchronization
  • an SSYNC instruction may specify that all pending processing operations must be completed before the next operation is initiated.
  • the SSYNC instruction may allow instructions already in pipeline 14 to emerge, but may stall pipeline 14 from fetching a new instruction from instruction cache 16 until a system acknowledgement 82 (see Figures 1 and 4) is received.
  • System acknowledgment 82 may indicate that all pending system operations have been completed.
  • sending SSYNC through pipeline 14 may stall pipeline 14 behind it, resulting in the inactivation of IF stage, DEC stage, and AC stage, while allowing pending instructions ahead of it to complete execution.
  • an instruction ahead of the SSYNC instruction that makes a request to a system bus is not stalled, but rather is allowed to complete execution, thus preserving bus protocol.
  • SSYNC may stall in the EX stage until the system acknowledges the SSYNC instruction.
  • the SSYNC instruction may perform operations other than ,in connection with placing processor 10 in an idle state, but when executed in combination with the idle instruction that sets the idle flag bit 80 (58), the SSYNC instruction brings about an idle state as will be shown below.
  • the SSYNC instruction may generate a known state in processor 10, because the SSYNC instruction stalls pipeline 14 until all operations prior to the SSYNC instruction are completed.
  • the SSYNC instruction may "kill," or cancel, all or some operations in pipeline 14 when the SSYNC instruction reaches the WB stage .
  • the system acknowledgement signal 82 may be used to indicate that instructions preceding the SSYNC instruction have been executed by processor 10 and by any other components of the system, such as main processor 18 and bus controllers.
  • the SSYNC instruction Upon receipt by processor 10 of a system acknowledgment signal 82, the SSYNC instruction would ordinarily enter the WB stage and complete execution. Because the idle instruction has set idle flag bit 80 (58), however, pipeline 14 may remain stalled and the SSYNC instruction may remain in the EX stage. System acknowledgement 82 may be received by idle handler 11 (62) . In addition, the state of idle flag bit 80 may be sensed (64), resulting in the assertion of an idle output signal (66) at idle output 17. Pipeline 14 may remain stalled as long as idle output 17 is asserted. Because pipeline 14 is stalled, the SSYNC instruction may be stalled in the EX stage and may not enter the WB stage .
  • Idle handler 11 may clear idle flag bit (68) . Detection of idle flag bit 80 (64), setting idle output 17 (66) and clearing idle flag bit 80 (68) may be performed by logic in idle handler 11 as described below.
  • main processor 18 may sense idle output 17, and consequently may sense that processor 10 is in an idle state, and turns off the clocks to processor 10 (70) . In addition to turning off the clocks, main processor 18 may reduce the power supplied to processor 10 (70), e.g., by setting the voltage supply to an "idle mode voltage level.” The idle mode voltage level generally would less than the "active mode voltage level" at which processor 10 normally operates, but sufficient to retain the state in the registers.
  • processor 10 is in a low-power idle mode .
  • FIG. 4 is a logic diagram of an idle handler 11 in accordance with an embodiment of the present invention.
  • Figure 4 illustrates techniques for carrying out the method described above. While processor 10 is active, all bits in the diagram are deasserted. Idle flag bit 80 may not be set and idle output pin 17 may not be asserted. When the idle instruction enters the WB stage, a bit is asserted at reference numeral 96. This bit may be latched by a storage element such as register 102. On the next clock cycle, register 102 may set idle flag bit 80. Idle flag bit 80 may remain asserted because of feedback to OR gate 98 until idle output 17 is asserted.
  • idle flag bit 80 When idle flag bit 80 is asserted AND (88) an acknowledgement to SSYNC 82 is received, a high bit may be generated, which is latched in register 94. On the next clock cycle, idle output 17 may be set. The high idle output 17 may be inverted and passed to AND gate 100, which places a deasserted bit in register 102, resulting in idle flag bit 80 being cleared on the following clock cycle. Idle output 17 may remain high because of feedback to OR gate 90 until a wake-up signal 84 is asserted. Until wake-up signal 84 is asserted, processor 10 may remain idle.
  • Main processor 18 may restore clocks to processor 10 and may restore the power supply to an operating level, such as by setting the power supply to the active mode voltage level (110) .
  • Main processor 18 may also generate a wake- up signal 84 (112) .
  • wake-up signal 84 inverted and passed to AND gate 92, deasserts a bit that may be latched in register 94, clearing idle output bit 17 on the following clock cycle (114) . Clearing idle output 17 may free pipeline 14 from being stalled. Because a system acknowledgment 82 has been sent, the SSYNC instruction enters the WB stage, canceling all operations in the pipeline 14 (116) .
  • Pipeline 14 may then process instructions in program order (122), meaning that upon waking up, processor 10 may resume where it left off when processor 10 entered idle mode.
  • processor 10 While in idle mode, processor 10 may ignore interrupts. Processor 10 may also ignore interrupts received prior to clock restoration (110) . After clock restoration, interrupts may be captured but may not be acted upon until interrupt restoration (120) . After interrupt restoration (120), interrupts may be processed by the interrupt handler of processor 10 in the ordinary manner .
  • FIG. 6 An alternate embodiment of returning the processor to an active state is illustrated in Figure 6.
  • Figure 6 is like Figure 5, except that main processor 18 generates an interrupt (126) .
  • the interrupt may occur at any stage shown in Figure 6 after clocks are restored (110) and before the interrupt mask is restored (120) .
  • the interrupt may be captured but not acted upon until interrupt restoration (120) , when control is transferred by the interrupt handler to an interrupt service routine (124) .
  • processor 10 may execute the instructions of the interrupt service routine (124) instead of processing instructions in program order.

Abstract

In one embodiment, a method is described herein for placing a programmable processor in a low-power idle state and returning the processor to an active state.

Description

PROCESSOR IDLE STATE
BACKGROUND
This invention relates to placing a programmable processor in an idle state.
A programmable processor, such as a microprocessor for a computer or a digital signal processing system, may be capable of performing millions of electronic operations per second. In some applications, the processor may have few operations to perform at a given time, yet the processor remains fully powered and ready to perform as needed. The power consumption may be undesirable when, for example, the processor is incorporated in a battery-powered device.
DESCRIPTION OF DRAWINGS
Figure 1 is a block diagram illustrating an example of a pipelined programmable processor.
Figure 2 is a schematic illustrating an example execution pipeline.
Figure 3 is a flowchart illustrating a process for placing a processor in an idle state.
Figure 4 is a logic diagram of an idle handler. Figure 5 is a flowchart illustrating a process for returning a processor from an idle state.
Figure 6 is a flowchart illustrating a process for returning a processor from an idle state.
DETAILED DESCRIPTION
In some instances, it may be desirable that the operations of the processor be suspended. When the operations of the processor are suspended, power to the processor may be reduced, thus promoting energy efficiency and prolonging battery power. The techniques described below may provide ways of creating an idle mode for a processor, in which the processor performs few or no processing operations, does not fetch instructions for execution, and/or ignores interrupts. Also described are techniques for "waking up" the processor from its idle state and returning it to its active state.
Figure 1 is a block diagram illustrating a programmable processor 10 having an execution pipeline 14 and a control unit 12. Control unit 12 controls the flow of instructions and data through pipeline 14 during a clock cycle. For example, during the processing of an instruction, control unit 12 may direct the various components of pipeline 14 to decode the instruction and perform the corresponding operation including, for example, writing the results back to memory. Many operations of processor 10 are clocked, with a clock signal supplied by a clock controller 15.
A connection denoted "idle output" 17 couples pipeline 14 to an idle handler 11, shown in Figure 1 as part of control unit 12. Idle handler 11 may bring about the idle state. In addition, idle handler 11 may assert idle output bit 17 to indicate an idle state. Assertion of idle output 17 may stall pipeline 14, and may result in suspension of operations of pipeline 14. Suspension of operations may be part of placing processor 10 in an idle state. Idle handler 11 and idle output 17 are described in more detail below.
In some applications, programmable processor 10 cooperates with a main processor 18. Processor 10 may be a slave or a companion to main processor 18. In other applications, programmable processor 10 may not cooperate with another processor. The system depicted in Figure 1 is intended for illustration and is not intended to limit the scope of the invention. In addition, applications may include additional components not shown in Figure 1, such as static random access memory, bus controllers, interrupt handlers and input-output devices .
Main processor 18 may sense idle output 17. By sensing idle output 17, main processor 18 detects whether processor 10 is active or idle. Main processor 18 may be further adapted to wake up processor 10 by assertion of a wake-up signal 84.
Instructions, stored in instruction cache memory 16, may be loaded into a first stage of pipeline 14 and processed through the subsequent stages. The stages may process substantially concurrently with the other stages. Data may pass between the stages in pipeline 14 during a clock cycle of the system. The results of the instructions may emerge at the end of pipeline 14 in rapid succession.
Figure 2 illustrates an example pipeline 14. Pipeline 14, for example, may have five stages: instruction fetch (IF), instruction decode (DEC), address calculation (AC) , execute (EX) and write back (WB) . Instructions may be fetched from memory, or from instruction cache 16, during the first stage (IF) by fetch unit 20 and decoded 22 within address registers 24 during the second stage (DEC) . At the next clock cycle, the results may be passed to the third stage (AC) , where data address generators 26 calculate any memory addresses that are used to perform the operation. During the execution stage (EX) , execution unit 28 may perform the operation such as, for example, adding or multiplying two numbers. During the final stage (WB) , the results may be written back to data memory or to data registers 30.
An application including programmable processor 10 may encounter situations in which processor 10 has no tasks to perform, yet is consuming power. In such situations it may be advantageous for processor 10 to enter a low-power idle mode. An idle mode may be initiated by, for example, a user that instructs processor 10 to enter a low-power state, or by main processor 18 after a period has elapsed in which processor 10 has had no tasks to perform, although the scope of the invention is not limited in this respect. Figure 3 illustrates a process by which processor 10 in an active state (50) may enter a low-power idle mode. When an idle is indicated (52), such as by a user or by main processor 18, processor 10 may disable interrupts (54) . One way to disable interrupts is to execute a CLI (clear interrupt) instruction that alters the interrupt mask used by the interrupt handler. As a consequence of executing the CLI instruction, processor 10 may ignore interrupts while entering the idle state. Processor 10 may also ignore interrupts while in the idle state.
Processor 10 then places itself in a known idle state (56) . Placing processor 10 in a known idle state allows processor 10 to exit from the idle mode at a later time in a known state, without undergoing a reset. Figure 3 shows one way to place processor 10 in an idle state (56) . An idle request may be indicated (52) by sending an idle instruction through pipeline 14. As will be described below, the idle instruction may result in the setting of an idle flag bit 80 (see Figure 4) (58) . Idle flag bit 80 may indicate that processor 10 is entering an idle state. Idle flag bit 80 may be stored in a memory element such as a register 102 (see Figure 4) .
The idle instruction may be followed in pipeline 14 by a system synchronization (SSYNC) instruction (60). In general, an SSYNC instruction may specify that all pending processing operations must be completed before the next operation is initiated. Accordingly, the SSYNC instruction may allow instructions already in pipeline 14 to emerge, but may stall pipeline 14 from fetching a new instruction from instruction cache 16 until a system acknowledgement 82 (see Figures 1 and 4) is received. System acknowledgment 82 may indicate that all pending system operations have been completed. In other words, sending SSYNC through pipeline 14 may stall pipeline 14 behind it, resulting in the inactivation of IF stage, DEC stage, and AC stage, while allowing pending instructions ahead of it to complete execution. For example, an instruction ahead of the SSYNC instruction that makes a request to a system bus is not stalled, but rather is allowed to complete execution, thus preserving bus protocol. SSYNC may stall in the EX stage until the system acknowledges the SSYNC instruction.
The SSYNC instruction may perform operations other than ,in connection with placing processor 10 in an idle state, but when executed in combination with the idle instruction that sets the idle flag bit 80 (58), the SSYNC instruction brings about an idle state as will be shown below. The SSYNC instruction may generate a known state in processor 10, because the SSYNC instruction stalls pipeline 14 until all operations prior to the SSYNC instruction are completed. In addition, the SSYNC instruction may "kill," or cancel, all or some operations in pipeline 14 when the SSYNC instruction reaches the WB stage . The system acknowledgement signal 82 may be used to indicate that instructions preceding the SSYNC instruction have been executed by processor 10 and by any other components of the system, such as main processor 18 and bus controllers. Upon receipt by processor 10 of a system acknowledgment signal 82, the SSYNC instruction would ordinarily enter the WB stage and complete execution. Because the idle instruction has set idle flag bit 80 (58), however, pipeline 14 may remain stalled and the SSYNC instruction may remain in the EX stage. System acknowledgement 82 may be received by idle handler 11 (62) . In addition, the state of idle flag bit 80 may be sensed (64), resulting in the assertion of an idle output signal (66) at idle output 17. Pipeline 14 may remain stalled as long as idle output 17 is asserted. Because pipeline 14 is stalled, the SSYNC instruction may be stalled in the EX stage and may not enter the WB stage .
Idle handler 11 may clear idle flag bit (68) . Detection of idle flag bit 80 (64), setting idle output 17 (66) and clearing idle flag bit 80 (68) may be performed by logic in idle handler 11 as described below. In addition, main processor 18 may sense idle output 17, and consequently may sense that processor 10 is in an idle state, and turns off the clocks to processor 10 (70) . In addition to turning off the clocks, main processor 18 may reduce the power supplied to processor 10 (70), e.g., by setting the voltage supply to an "idle mode voltage level." The idle mode voltage level generally would less than the "active mode voltage level" at which processor 10 normally operates, but sufficient to retain the state in the registers. Because power consumption is generally proportional to the square of voltage, reduction from an active mode voltage level in particular embodiments, such as 1.3 volts, to an idle mode voltage level, such as 0.7 volts, may result in a considerable power saving. With clocks turned off and power supply reduced, processor 10 is in a low-power idle mode .
Figure 4 is a logic diagram of an idle handler 11 in accordance with an embodiment of the present invention. Figure 4 illustrates techniques for carrying out the method described above. While processor 10 is active, all bits in the diagram are deasserted. Idle flag bit 80 may not be set and idle output pin 17 may not be asserted. When the idle instruction enters the WB stage, a bit is asserted at reference numeral 96. This bit may be latched by a storage element such as register 102. On the next clock cycle, register 102 may set idle flag bit 80. Idle flag bit 80 may remain asserted because of feedback to OR gate 98 until idle output 17 is asserted.
When idle flag bit 80 is asserted AND (88) an acknowledgement to SSYNC 82 is received, a high bit may be generated, which is latched in register 94. On the next clock cycle, idle output 17 may be set. The high idle output 17 may be inverted and passed to AND gate 100, which places a deasserted bit in register 102, resulting in idle flag bit 80 being cleared on the following clock cycle. Idle output 17 may remain high because of feedback to OR gate 90 until a wake-up signal 84 is asserted. Until wake-up signal 84 is asserted, processor 10 may remain idle.
A method embodiment for returning the processor to an active state is illustrated in Figure 5. Main processor 18 may restore clocks to processor 10 and may restore the power supply to an operating level, such as by setting the power supply to the active mode voltage level (110) . Main processor 18 may also generate a wake- up signal 84 (112) . As shown in Figure 4, wake-up signal 84, inverted and passed to AND gate 92, deasserts a bit that may be latched in register 94, clearing idle output bit 17 on the following clock cycle (114) . Clearing idle output 17 may free pipeline 14 from being stalled. Because a system acknowledgment 82 has been sent, the SSYNC instruction enters the WB stage, canceling all operations in the pipeline 14 (116) . At this point the flow of instructions into pipeline 14 begins again, by fetching the instruction in instruction cache 16 that follows the SSYNC instruction (118) . The instruction following SSYNC is typically an STI (restore interrupt) instruction, which restores the interrupt mask (120) . Pipeline 14 may then process instructions in program order (122), meaning that upon waking up, processor 10 may resume where it left off when processor 10 entered idle mode.
While in idle mode, processor 10 may ignore interrupts. Processor 10 may also ignore interrupts received prior to clock restoration (110) . After clock restoration, interrupts may be captured but may not be acted upon until interrupt restoration (120) . After interrupt restoration (120), interrupts may be processed by the interrupt handler of processor 10 in the ordinary manner .
An alternate embodiment of returning the processor to an active state is illustrated in Figure 6. Figure 6 is like Figure 5, except that main processor 18 generates an interrupt (126) . The interrupt may occur at any stage shown in Figure 6 after clocks are restored (110) and before the interrupt mask is restored (120) . As noted above, the interrupt may be captured but not acted upon until interrupt restoration (120) , when control is transferred by the interrupt handler to an interrupt service routine (124) . As a result, processor 10 may execute the instructions of the interrupt service routine (124) instead of processing instructions in program order.
A number of embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.

Claims

1 . A method comprising : disabling interrupts to a processor; placing the processor in an idle state; and asserting a signal at an output terminal indicative of the idle state.
2. The method of claim 1 further comprising disabling clock signal inputs to the processor.
3. The method of claim 1 further comprising reducing the power supply to the processor.
4. The method of claim 1 further comprising: setting an idle flag; processing a system synchronization instruction, the system synchronization instruction resulting in generation of an acknowledgment signal; and placing the processor in an idle state upon sensing of the idle flag and the acknowledgement signal.
5. The method of claim 4 wherein processing the system synchronization instruction results in the processor entering a known state before the acknowledgement signal is generated.
6. The method of claim 1 wherein the processor includes a pipeline, the method further comprising canceling all operations in the pipeline.
7. The method of claim 1 further comprising receiving a wake-up signal.
8. A device comprising: an execution pipeline; and an idle handler coupled to the execution pipeline; wherein the idle handler is adapted to stall the execution pipeline in response to an idle instruction in conjunction with a system synchronization acknowledgement .
9. The device of claim 8, the idle handler comprising an output terminal, wherein the idle handler is adapted to assert a signal at the output terminal in response to the idle instruction in conjunction with the system synchronization acknowledgement.
10. The device of claim 9, wherein the output terminal is coupled to a memory element.
11. The device of claim 8, the idle handler comprising a wake-up input terminal, the idle handler adapted to discontinue stalling the execution pipeline in response to a signal received on the wake-up input terminal.
12. The device of claim 8, wherein the idle handler is adapted to set an idle flag bit in response to the idle instruction and to clear the idle flag bit in response to a system synchronization acknowledgement.
13. A system comprising: a first processor, the first processor adapted to enter an idle state and supply an idle output signal; a second processor coupled to the first processor; a clock adapted to supply a clock signal to the first processor; and static random access memory coupled to the first processor; wherein the second processor deactivates the clock signal supplied to the first processor in response to sensing the idle output signal.
14. The system of claim 13 wherein the first processor comprises an execution pipeline and an idle handler coupled to the execution pipeline.
15. The system of claim 13, wherein the first processor is adapted to ignore interrupts issued from the second processor while in the idle state.
16. The system of claim 13, wherein the second processor is adapted to supply a wake-up signal to the first processor, and the first processor is adapted to exit the idle state when the first processor senses the wake-up signal .
17. A method comprising: supplying clock signals to a processor, wherein the processor is in an idle state and is not responsive to interrupts; signaling the processor to exit the idle state; and restoring the responsiveness of the processor to interrupts .
18. The method of claim 17 further comprising supplying power to the processor at a normal operating level.
19. The method of claim 17 further comprising: supplying an interrupt to the processor; and transferring control to an interrupt service routine after responsiveness of the processor to interrupts has been restored.
20. The method of claim 17, wherein the processor includes an execution pipeline, the method further comprising canceling all operations in the execution pipeline .
21. The method of claim 20, further comprising fetching an instruction after the cancellation.
22. The method of claim 21, wherein the fetched instruction restores the responsiveness of the processor to interrupts .
23. The method of claim 17, wherein the processor supplies an idle output signal, the method further comprising clearing the idle output signal.
24 . A method, comprising : operating a processor in a first mode; disabling interrupts to the processor; and placing the processor in a second mode, wherein the processor consumes less power in the second mode than in the first mode.
25. The method of claim 24 further comprising disabling clock signal inputs to the processor.
26. The method of claim 24 further comprising reducing the power supply to the processor.
27. The method of claim 24 wherein the processor includes an execution pipeline, and wherein the execution pipeline performs no operations when the processor is in the second mode.
28. The method of claim 24 further comprising issuing an output signal when the processor is in the second mode.
29. The method of claim 24 further comprising: issuing an input signal to the processor when the processor is in the second mode; returning the processor to the first mode; and enabling interrupts to the processor.
30. The method of claim 29, wherein the processor includes an execution pipeline, returning the processor to the first mode further comprising canceling all operations in the execution pipeline.
PCT/US2001/043412 2000-11-13 2001-11-13 Processor idle state WO2002046894A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2003-7006267A KR100500227B1 (en) 2000-11-13 2001-11-13 Processor idle state
JP2002548560A JP4488676B2 (en) 2000-11-13 2001-11-13 Processor idle state

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US71149600A 2000-11-13 2000-11-13
US09/711,496 2000-11-13

Publications (2)

Publication Number Publication Date
WO2002046894A2 true WO2002046894A2 (en) 2002-06-13
WO2002046894A3 WO2002046894A3 (en) 2003-08-21

Family

ID=24858319

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/043412 WO2002046894A2 (en) 2000-11-13 2001-11-13 Processor idle state

Country Status (5)

Country Link
JP (1) JP4488676B2 (en)
KR (1) KR100500227B1 (en)
CN (1) CN100476693C (en)
TW (1) TWI282918B (en)
WO (1) WO2002046894A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2401961A (en) * 2003-05-20 2004-11-24 Advanced Risc Mach Ltd Low overhead integrated circuit power down and restart
JP2005202948A (en) * 2003-12-24 2005-07-28 Texas Instruments Inc Method and apparatus for reducing memory current leakage of mobile device
EP1600845A1 (en) * 2004-05-28 2005-11-30 STMicroelectronics Limited Processor with power saving circuitry
US20120198112A1 (en) * 2010-10-29 2012-08-02 Texas Instruments Incorporated Adapting Legacy/Third Party IPs to Advanced Power Management Protocol

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100656353B1 (en) * 2005-07-12 2006-12-11 한국전자통신연구원 Method for reducing memory power consumption
US20070214389A1 (en) * 2006-03-08 2007-09-13 Severson Matthew L JTAG power collapse debug
US7882380B2 (en) * 2006-04-20 2011-02-01 Nvidia Corporation Work based clock management for display sub-system
US20100332877A1 (en) * 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
US9075652B2 (en) 2010-12-20 2015-07-07 Microsoft Technology Licensing, Llc Idle time service
JP5318139B2 (en) * 2011-03-24 2013-10-16 株式会社東芝 Control device and program
TWI512449B (en) 2012-10-04 2015-12-11 Apple Inc Methods and apparatus for reducing power consumption within embedded systems
US9372526B2 (en) * 2012-12-21 2016-06-21 Intel Corporation Managing a power state of a processor
CN115525137A (en) * 2022-11-23 2022-12-27 紫光同芯微电子有限公司 Data coprocessing method and system, storage medium and electronic equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551033A (en) * 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
US5721937A (en) * 1994-01-10 1998-02-24 Sun Microsystems, Inc. Method and apparatus for reducing power consumption in a computer system by placing the CPU in a low power mode
US5887129A (en) * 1996-10-08 1999-03-23 Advanced Risc Machines Limited Asynchronous data processing apparatus
US5983339A (en) * 1995-08-21 1999-11-09 International Business Machines Corporation Power down system and method for pipelined logic functions
US5987614A (en) * 1997-06-17 1999-11-16 Vadem Distributed power management system and method for computer
US6088807A (en) * 1992-03-27 2000-07-11 National Semiconductor Corporation Computer system with low power mode invoked by halt instruction
WO2000070433A1 (en) * 1999-05-18 2000-11-23 Koninklijke Philips Electronics N.V. A system and a method to reduce power consumption

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551033A (en) * 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
US6088807A (en) * 1992-03-27 2000-07-11 National Semiconductor Corporation Computer system with low power mode invoked by halt instruction
US5721937A (en) * 1994-01-10 1998-02-24 Sun Microsystems, Inc. Method and apparatus for reducing power consumption in a computer system by placing the CPU in a low power mode
US5983339A (en) * 1995-08-21 1999-11-09 International Business Machines Corporation Power down system and method for pipelined logic functions
US5887129A (en) * 1996-10-08 1999-03-23 Advanced Risc Machines Limited Asynchronous data processing apparatus
US5987614A (en) * 1997-06-17 1999-11-16 Vadem Distributed power management system and method for computer
WO2000070433A1 (en) * 1999-05-18 2000-11-23 Koninklijke Philips Electronics N.V. A system and a method to reduce power consumption

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2401961A (en) * 2003-05-20 2004-11-24 Advanced Risc Mach Ltd Low overhead integrated circuit power down and restart
GB2401961B (en) * 2003-05-20 2005-11-23 Advanced Risc Mach Ltd Low overhead integrated circuit power down and restart
JP2005202948A (en) * 2003-12-24 2005-07-28 Texas Instruments Inc Method and apparatus for reducing memory current leakage of mobile device
EP1600845A1 (en) * 2004-05-28 2005-11-30 STMicroelectronics Limited Processor with power saving circuitry
US20120198112A1 (en) * 2010-10-29 2012-08-02 Texas Instruments Incorporated Adapting Legacy/Third Party IPs to Advanced Power Management Protocol
US8732379B2 (en) * 2010-10-29 2014-05-20 Texas Instruments Incorporated Adapting legacy/third party IPs to advanced power management protocol

Also Published As

Publication number Publication date
KR20040011428A (en) 2004-02-05
JP4488676B2 (en) 2010-06-23
KR100500227B1 (en) 2005-07-11
CN100476693C (en) 2009-04-08
JP2004515853A (en) 2004-05-27
WO2002046894A3 (en) 2003-08-21
CN1656435A (en) 2005-08-17
TWI282918B (en) 2007-06-21

Similar Documents

Publication Publication Date Title
US8086883B2 (en) Hardware driven processor state storage prior to entering a low power
JP3454866B2 (en) Method of operating a processor of the type including a bus unit and an execution unit, a central processing unit, a computer system, and a clock controller circuit
US5666537A (en) Power down scheme for idle processor components
US6981163B2 (en) Method and apparatus for power mode transition in a multi-thread processor
US7100062B2 (en) Power management controller and method
US7343502B2 (en) Method and apparatus for dynamic DLL powerdown and memory self-refresh
US5586332A (en) Power management for low power processors through the use of auto clock-throttling
EP0662652B1 (en) Method and apparatus for reducing power consumption in a computer system
JP5074389B2 (en) Microprocessor with automatic selection of SIMD parallel processing
US6343363B1 (en) Method of invoking a low power mode in a computer system using a halt instruction
WO2002046894A2 (en) Processor idle state
JP2005528664A (en) CPU power-down method and apparatus therefor
US7411314B2 (en) Automatic shut off of backup power source in the extended absence of AC power
US7032120B2 (en) Method and apparatus for minimizing power requirements in a computer peripheral device while in suspend state and returning to full operation state without loss of data
US6035315A (en) Floating point power conservation
WO2012075353A1 (en) Modular gating of microprocessor low-power mode
US7774629B2 (en) Method for power management of central processing unit and system thereof
GB2506169A (en) Limiting task context restore if a flag indicates task processing is disabled
US11226828B2 (en) Wakeup interrupt controller
US6789187B2 (en) Processor reset and instruction fetches
JP2004326482A (en) Power-saving control device
JPS6278617A (en) Power saving mpu system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CN JP KR SG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1020037006267

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2002548560

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 018187986

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020037006267

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1020037006267

Country of ref document: KR