WO1998050846A1 - Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state - Google Patents
Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state Download PDFInfo
- Publication number
- WO1998050846A1 WO1998050846A1 PCT/US1998/001519 US9801519W WO9850846A1 WO 1998050846 A1 WO1998050846 A1 WO 1998050846A1 US 9801519 W US9801519 W US 9801519W WO 9850846 A1 WO9850846 A1 WO 9850846A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- integrated circuit
- signal
- processor
- power consumption
- cache coherency
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates generally to the field of computers and computer systems. Specifically, the present invention relates to an integrated circuit capable of operating in a low-power state, and to a method of maintaining cache coherency when the integrated circuit is operating in the low-power state. BACKGROUND OF THE INVENTION
- One of many techniques of reducing power consumption within an integrated circuit (IC), such as a processor, is to stop or block a clock signal to a portion or to the whole of the processor. This method may require the assertion of a "stop clock" signal, upon which a processor enters a state of low power consumption (i.e. a low-power state) in which many functional units of the processor are no longer clocked.
- a stop clock a signal that is asserte.
- cache coherency be maintained, even when the processor is in a low-power state.
- processors may be in a low-power state while others may continue to operate on data while in a fully powered state.
- the processors operating in low-power states must monitor and respond to a number of signals resulting from activity of the other processors.
- the powering of cache coherence and snoop circuitry necessary for responding to snoop requests resulting from the activity of other processors consumes a lot of power, and it is accordingly desirable to reduce this power consumption to a minimum when a processor enters a low-power state.
- an apparatus for operating an integrated circuit in a reduced-power consumption state includes an input which is coupled to receive an access signal indicating a memory access, to a memory resource accessible by the integrated circuit, by a device external to the integrated circuit.
- Power-reduction logic gates a clock signal to both first and second sets of functional units within the integrated circuit, the first set of function units being required to perform cache coherency operations within the integrated circuit.
- the power reduction logic propagates the clock signal to the first set of functional units in response to assertion of the access signal.
- Figure 1 is a schematic illustration of a computer system within which the present invention may be implemented.
- Figure 2 is a schematic illustration of a processor within the present invention may be implemented.
- Figure 3 is a state diagram illustrating the various clock states that may by occupied by a processor operating according to one embodiment of the present invention.
- Figure 4 is a schematic illustration of the processor of Figure 2, configured to operate in a Stop Grant mode, according to the invention.
- Figure 5 is the processor of Figure 2, configured to operate in a Quick Start mode, according to the invention.
- Figure 6 is a schematic illustration of clock circuitry for operating an integrated circuit in a reduced-power consumption state according to the present invention.
- Figure 7 is a schematic illustration showing further detail regarding start/stop logic incorporated within the clock circuitry of Figure 6.
- Figure 8 is a schematic illustration providing further detail regarding the structure of clock enable/disable logic incorporated within the clock circuitry shown in Figure 6.
- FIGS 9A and 9B are timing diagrams showing the timing of various signals described with reference to Figures 4-8.
- Figure 10 is a flow chart illustrating one embodiment of a method, according to the present invention, of configuring a processor to maintain cache coherency when in a reduced-power consumption state.
- Figure 11 is a flow chart illustrating a method, according to the invention, of entering a reduced-power consumption state within a processor.
- Figure 12 is a flow chart illustrating a method, according to the present invention, of operating an integrated circuit in a reduced-power consumption state.
- FIG. 1 a computer system 10 which may be used in conjunction with any one of the described embodiments of the present invention, is shown in block diagram form. It will be understood that, while Figure 1 is useful for providing an overall description of a computer system, a number of details of the system are not shown. As necessary for disclosure of the present invention, further detail is set forth with reference to the other figures provided with the specification. Further, the present invention is described with reference to exemplary embodiments. Alternative embodiments may be conceived by one with skill in the art and are considered within the scope of the invention. As illustrated in Figure 1, the computer system 10 is a uni-processor system and comprises a processor 14, which is coupled to memory and bus control logic 16 (also termed a bus bridge) by a processor bus 12.
- bus control logic 16 also termed a bus bridge
- processors may be coupled to the processor bus 12 to create a multi-processor system.
- the processor 14 is shown to include internal data and instruction caches 15, and also to have access to a Level Two (L2) cache 17 via a dedicated bus.
- L2 cache 17 may also assert an agent bus request 19 to the processor to request control of the processor bus 12 on behalf of a peripheral device. For example, the bus request
- the processor 14 has access to a main memory 18 via the memory and bus control logic 16.
- the main memory 18 typically comprises a random access memory (RAM) and stores instructions and information utilized by the processor 14.
- the processor 14 is also able to access a Level Three (L3) cache memory 20 via the logic 16.
- the memory and bus control logic 16 is coupled to a systems bus 22, via which a number of peripheral devices, coupled to the systems bus 22 by input/output (I/O) ports 21, communicate which each other, the memories 18 and
- the peripheral devices include a display unit 24 (such as a cathode ray tube (CRT) or liquid crystal display (LCD)), an alpha-numeric input device 26 (such as a keyboard), a cursor control device 28 (such as a mouse or other pointing device), a hard copy device 30 (such as a printer or plotter for providing a hard copy of a computer image), and a signal generation device 32 (such as a loud speaker).
- the computer system 10 also includes a mass storage device 34, which is coupled to the system bus 22.
- the processor 14 comprises a number of Functional Unit Blocks (FUBs), including a bus interface unit 32, which provides an interface between the processor 14 and the processor bus 12 of the computer system 10.
- the bus interface unit 32 includes a number of functional entities, namely write buffers, bus control logic, L2 cache control, internal cache control and address drivers and receivers.
- the bus interface unit 32 is coupled to allow a prefetcher 34 to access the main memory 18 of the computer system via an instruction cache 38.
- the prefetcher 34 fetches instructions indexed by an instruction pointer from the instruction cache 38, or alternatively from main memory 18 via the bus interface unit 32.
- a branch prediction unit 35 provides speculative predictions for branch instructions retrieved by the prefetcher 34, and then also outputs an instruction pointer, indexing either a sequential memory address or a target memory address, depending on whether a branch is predicted as being taken or not taken.
- the prefetcher 34 propagates instructions received either from the instruction cache 38, or main memory 18, to an instruction decoder 42 for decoding into a set of micro-operations ( ⁇ ops) for down-stream processing.
- a control read only memory (ROM) 44 is coupled to the instruction decoder 42 and receives entry points from the decoder 42. The decoder 42 and the control ROM 44 supply micro-operations to a control unit 46.
- the control unit 46 supplies an integer pipeline execution unit 48 and a floating-point pipeline execution unit 50 with integer and floating-point instructions, respectively, for execution.
- the integer pipeline execution unit 48 and the floating-point pipeline execution unit 50 have access to a data cache 51 when executing the instructions.
- Micro-operations are also supplied from the control unit 46 to an address generation unit 52, which generates and translates address information.
- FIG. 3 there is shown a state diagram 100 illustrating the various clock states of a processor according to one embodiment of the invention.
- the illustrated clock states facilitate power control of a processor in both Uniprocessor (UP) mobile computer systems, and Symmetrical Multi-Processor (SMP) desktop and server computer systems.
- UP Uniprocessor
- SMP Symmetrical Multi-Processor
- Six distinct clock states are illustrated, namely a Clock Running state 102, a Stop Grant state 104, an Auto Halt State 106, a Quick Start state 108, a Sleep state 110 and a Deep Sleep state 112.
- the Clock Running state 102 of a processor is the normal operating mode wherein the processor's internal clock is running, and the processor is actively executing instructions.
- STPCLK# Stop Clock
- the processor Upon assertion of a Stop Clock (STPCLK#) signal, the processor enters either the Stop Grant state 104 or the Quick Start state 108, depending on how a "power-on strapping option" was exercised upon boot-up or reset of the processor.
- a processor is configured to enter either the Stop Grant state 104 or the Quick Start state 108 at power-on by placing either a logical 0 or 1 on a strapping option line. In one embodiment, this strapping option may be exercised by driving either a 0 or 1 onto address line 15 (A15#) at reset. It will of course be appreciated that the strapping option could be exercised in any one of a number of other ways.
- Stop Grant state 104 Assuming that the processor has been configured at power-on to enter the Stop Grant state 104 (e.g. by setting the A15# to a logical 1), upon assertion of the STPCLK# signal, the processor will then enter the Stop Grant state 104. In this state, power consumption is reduced relative to the Clock Running state 102, as many internal functional unit blocks (FUBs) of a processor are disabled. However, sufficient circuitry within a processor in the Stop Grant state 104 is kept active and clocked so as to allow the processor to respond to snoop requests and latch interrupts, as will be described in further detail below. In this way cache coherency is maintained even when in a low-power state. A transition from the Stop Grant state 104 to the Clock Running state 102 is made upon de- assertion of the STPCLK# signal or on the occurrence of a Stop Break event, such as a processor initialization, flush or reset.
- Stop Break event such as a processor initialization, flush or reset.
- the processor upon assertion of the STPCLK# signal, the processor will then enter the Quick Start state 108.
- power consumption is reduced relative to the Clock Running state 102 and relative to the Stop Grant state 104 as the majority of functional unit blocks (FUBs) of a processor are disabled, but its Phase Lock Loop (PLL) circuitry is kept functional.
- PLL Phase Lock Loop
- This deep low-power state is achieved by providing a processor with reduced response capability when in the Quick Start state 108.
- a processor in the Quick Start state 108 is incapable of responding to latching interrupts (e.g.
- NMI, SMI# or INTR signals will also not respond to reset, initialize or flush requests.
- the circuitry for responding to these requests is not powered, as it is in the Stop Grant state 104, thus allowing a greater degree of power savings to be achieved in the Quick Start state 108.
- any interrupt, initialize, reset or flush requests be generated while a processor is in the Quick Start state 108 these will not be recognized, and must accordingly be held (or latched) until the STPCLK# signal is deasserted and the processor returns to the Clock Running state 102, at which time such requests will be serviced.
- a processor in the Quick Start state 108 is only capable of responding to snoop request, by snooping the processor bus, when an external input/output (I/O) device requests control of the processor bus.
- a processor in the Quick Start state 108 is capable only of responding to I/O bridge accesses that rely of the assertion of a Priority Agent Bus Request (BPRI#) signal, as defined by Intel Architecture (IA).
- BPRI# Priority Agent Bus Request
- IA Intel Architecture
- the processor enters a Quick Start plus (QS+) mode 109, wherein FUBs of the processor required to accept a snoop cycle are powered and clocked.
- QS+ Quick Start plus
- the snooping behavior of a processor operating in the Quick Start plus mode 109 is such that it may only be used in a Uni -Processor (UP) configuration, as it does not snoop the processor bus for accesses other than those initiated with the BPRI# signal 19, and would according not perform a bus snoop for data operations performed by other processors employed in a multi-processor environment and coupled to the processor bus 12.
- UP Uni -Processor
- the Auto Halt state 106 is entered into on the execution of the Halt (HLT) instruction, and a return to the Clock Running state 102 is made on the occurrence of an Auto Halt Break event.
- an Auto Halt Break event may occur when an NMI, INTR, BINT#, FLUSH# or SMI# signal goes active, or a probe mode request is made.
- a processor according to the invention may also operate in the Sleep and Deep States 110 and 112.
- the Sleep state 110 is entered into from the Stop Grant state 104, and this transition occurs on assertion of a Sleep (SLP#) signal.
- SLP# Sleep
- a processor maintains its context, has shut-off all internal clocks, but retains its Phase Lock Loop (PLL) circuitry active, thus allowing the processor to exit the Sleep state 110 with minimal latency.
- PLL Phase Lock Loop
- a processor in the Sleep state 110 is incapable of snooping, latching any interrupt signals or being reset.
- the Deep Sleep state 112 is entered. This is achieved by stopping the input clock frequency to the processor.
- FIGs 4 and 5 are schematic illustrations of the processor 14, and show various Functional Unit Blocks (FUBs), clock control circuitry, and other associated circuitry which operate according to the teachings of the present invention.
- Figure 4 shows the processor 14 configured for operation in the Stop Grant mode 104
- Figure 5 shows the processor 14 configured for operation in the Quick Start mode 108.
- the processor 14 shown in both Figures 4 and 5 comprises a number of FUBs, namely a Floating Point Unit (FPU) 50, and Arithmatic Logic Unit (ALU) 53, a prefetcher 34, bus clock generation logic 152, a data cache 51, a code cache 38, and a bus interface unit 32.
- the processor 14 contains a number of other FUBs, which are represented by block 33.
- FUBs 51, 38, 32 and 33 are characterized in that they are required to be operational for the performance of internal and external snooping operations.
- FUBs 50, 53 and 34 on the left hand side of the processor 14 are not required to be functional during a snooping operation.
- Each of the FUBs is coupled to receive a clock signal from a main clock spine 150 via a NAND gate 143 or 144.
- the bus clock generation logic 152 furthermore provides a feedback bus clock signal 132 to Phase Lock Logic (PLL) 115, which in turn provides a locked core clock signal 133 to the clock spine 150.
- PLL Phase Lock Logic
- the processor 14 also includes Quick Start logic 116 and Stop Grant logic 117. Referring to Figure 4, the processor 14 is shown to be configured for operation in the Stop Grant mode 104.
- the Stop Grant logic 117 is able selectively to power down the FUBs 50, 53 and 34 by disabling the supply of clock signals from the clock spine 150 to these FUBS.
- the Stop Grant logic 117 can operate the NAND gates 143 associated with the FUBs 50, 53 and 34 to gate or block the supply of a clock signal from the clock spine 150 to these FUBS. Accordingly, to place the processor 14 in the Stop Grant mode 104, the Stop Grant logic 117 deasserts the GNSCLK_EN signal 141, thus preventing any switching activity from occurring in the FUBs 50, 53 and 34. It is important to note that, in the Stop Grant mode 104, the FUBs 51, 38, 32 and 33 required for cache coherency are not disabled, and are still clocked with clock signals supplied from the clock spine 150.
- these FUBs are able to initiate both internal and external snooping operations in a conventional manner, and thus maintain cache coherency even when the processor 14 is in the low-power Stop Grant mode 104. It will further be noted that the supply of a clock signal to the bus clock generation logic 152 is not gated. Accordingly the feedback signal 132 will continue to be supplied to the PLL 115, which will then remain in a locked state.
- the Deep Sleep mode 112 in which the PLL 115 and the bus clock generation logic 152 are powered down, thus terminating the supply of the core clock signal 133 to the clock spine 150.
- the circuitries 152 and 115 are powered down, and that the clock spine 150 no longer carries a clock signal, the only power consumption by the processor in the Deep Sleep mode 112 is due to leakage.
- the PLL 115 must again be powered, and allowed to lock, which in turn results in a heavy access latency of up to 1 ms.
- FIG. 5 one embodiment of a processor 14 configured for operation in the Quick Start mode 108 is shown.
- the NAND gates 144 through which a Global Non-Stop Clock (GNSCLK) signal 146 is supplied to the FUBs 51, 38, 32 and 33, are selectively enabled and disabled by the Quick Start logic 116 through the assertion and deassertion of the Global Non-Stop Enable (GNSCLK_EN) signal 142.
- the Quick Start logic 116 also propagates a signal 147 to the Stop Grant logic 117, which deasserts the signal 141 to thereby gate the supply of a clock signal to the FUBs 50, 53 and 34.
- the Quick Start logic upon entry into the Quick Start mode 108, the Quick Start logic itself disables the FUBs 51, 38, 32 and 33 and propagates a signal to the Stop Grant logic 117, which causes the logic 117 to disable the FUBs 50, 53 and 34.
- the Quick Start logic 116 upon the assertion of a predetermined access signal indicating a memory access from a peripheral unit within a computer system (e.g. BPRI# signal), the Quick Start logic 116 places the processor 14 in Quick Start plus mode 109 by asserting the GNSCLK_EN signal 142, to thereby reenable the supply of the clock signal 146 to the data cache 51, the code cache 38, the bus interface unit 32 and other FUBs 33.
- the signal 147 to the stop grant logic 117 remains unchanged, thus causing the FUBs 50, 53 and 34 to remain in a power down state.
- the FUBs 51, 38, 32 and 33 which are required for cache coherency, are thus operational and able to respond to a snoop request.
- the processor 14 is entered back into the Quick Start mode 108 by the Quick Start logic 116, which then deasserts the signal 142.
- the processor 14 when operating in the Stop Grant mode 104, the processor 14 is able to perform cache coherency operations in response to a first set of signals (e.g., snoop interact, initialize and reset signals, etc.), whereas in the Quick Start mode 108, the processor responds only to a signal indicating an memory access request by an external peripheral device (e.g., BPRI# signal).
- Figure 6 provides a more detailed view of the clock spine 150, the bus clock generation logic 152, the PLL 115 and the Quick Start logic 116.
- Figure 6 shows clock control circuitry 112 that is coupled to receive a Reset (RESET) signal 122 via a pin 122A, the Stop Clock (STPCLK#) signal 124 via a pin 124A, the Sleep (SLP#) signal 126 via a pin 126A, a configuration (or strapping option) signal 128 via an address (A15#) pin 128 A, and a Priority Agent Bus Request (BPRI#) signal 130 via pin 130A.
- RESET Reset
- STPCLK# Stop Clock
- SLP# Sleep
- BPRI# Priority Agent Bus Request
- Each of the signals applied to the pins 122A-130A is latched in response to a Front Side Bus (FSB) clock signal 132 by an appropriate latch 134, and presented to sleep/start state logic 136, which is illustrated in greater detail in Figure 5.
- the sleep/start state logic 136 in combination with clock enable/disable logic 140 comprises the Quick Start logic 116, shown in Figures 4 and 5.
- the sleep/start state logic 136 outputs a sleep signal 138 to the clock enable/disable logic 140.
- the clock enable/disable logic 140 responsive to the state of the sleep signal 138, generates the Global Non-Stop Clock Enable (GNSCLK_EN) signal 142, which is propagated to the NAND gates 144.
- the NAND gates 144 are each coupled to receive the GNSCLK_EN signal 142 and the GNSCLK signal 146 as inputs.
- the outputs of the NAND gates 144 comprise a clock signal 145 (GNSCLK) which is propagated to the FUBs required during a snoop operation to maintain cache coherency.
- GNSCLK Global Non-Stop Clock Enable
- the clock control circuitry 120 also includes the main clock spine 150, the bus clock generation logic 152, and the PLL 115.
- the main clock spine 150 is responsible for the distribution of a core clock signal within the processor, while the bus clock generation logic 152, the core clock generation logic 154, and the PLL 115 are responsible for the generation of the bus clock and core clock signals 132 and 133 respectively.
- the core clock signal 133 is synchronized to the bus clock signal 132, which is fed back to the core clock generation logic 154, and may be either a whole-multiple ( e.g. x2 or x 3) of the bus clock signal 132, or a half-multiple ( e.g. x 2.5 or x 3.5) of the bus clock signal 132.
- the core clock generation logic 154 also includes core clock/bus clock synchronization circuitry 156 for maintaining synchroneity between these clock signals.
- the circuitry 156 outputs an ENABLE2BYN signal 158 to the clock enable/disable logic 140, which indicates whether the bus clock multiplier is an integer or not.
- the clock enable/disable logic 140 provides a Clock Align (CLKALIGN) signal 164 to the synchronization circuitry 156 through an OR gate 165.
- CLKALIGN Clock Align
- the clock enable/disable logic 160 asserts the CLKALIGN signal 164 at the appropriate time.
- the core clock generation circuitry 154 Upon reset, or upon assertion of the CLKALIGN signal 164, the core clock generation circuitry 154 forces the phase of the core clock signal 133 (CORECLK) to shift so as to create falling edge synchronization between the bus and core clocks.
- the core clock generation logic 154 is coupled to receive the bus clock signal 132 as feedback.
- the synchronization circuitry 156 provides the ENABLE2BYN signal 158 as feedback to the clock enable/disable logic 140.
- the RESET# signal 122 is propagated to the sleep/start state logic 136 via the pin 122A, causing the clock control circuitry 120 to reset, while assertion of the SLP# signal 126 will cause the clock control circuitry 120 to place a processor in the Sleep State 110 by assertion of the sleep signal 138. Further details of the RESET# and SLP# signals are not pertinent to an understanding of the present invention.
- the configuration signal 128 applied to the A15# pin 128 A at power-up determines whether the sleep/start state logic 136 causes a processor to be placed in the Stop Grant state 104 or the Quick Start state 108 when the STPCLK# signal is asserted on pin 126A.
- the sleep/start state logic 136 is configured to place a processor in the Stop Grant state 104 on assertion of the STPCLK# signal 124, while if a logical 0 is applied to the pin 128 A at power-up, the sleep/start state logic 136 is configured to place a processor in the Quick Start state 108 on assertion of the STPCLK# signal 124.
- the FUBs of the processor required for responding to a snoop request are active and clocked, and thus able to perform a cache coherency operation when required.
- the sleep/start state logic 136 monitors pin 130A for assertion of the BPRI# signal 130. In response to the assertion of the BPRI# signal, the sleep/start state logic 136 deasserts the sleep signal 138, so as to allow the processor to perform a snoop of the processor bus 12.
- the logic 136 comprises sleep generation logic 69, which outputs a SLP signal 70 in response to an assertion of either the SLP# signal 126 or the STPCLK# signal 124.
- the latch 65 which latches the configuration signal 128 applied to the address pin 128 A upon boot-up of the computer system. If a logical zero of (0) is applied to the pin 128A on boot-up, the latch 65 is configured to output a logical one (1) QSS signal 62 to a 4-input AND gate 67.
- the AND gate 67 is also coupled to receive the inverse of the STPCLK# signal 124 and the inverse of the BPRI# signal 130.
- the logic 140 is coupled to receive the sleep signal 138, which during the Clock Running state 102 is deasserted (low state).
- the Clock Align (CLKALIGN) signal 164 is similarly deasserted in the Clock Running State 102.
- the GNSCLK_EN signal 142 is asserted through a SET input of an R/S latch 160, whose RESET input is deasserted.
- the ENABLE2BYN signal 158 operates a multiplexer 162 to select one of two paths to drive clock stop/restart events on alignment of the bus and core clocks for either a 2/N (non-integer) or 1/N (integer) mode of operation.
- the assertion or deassertion of GNSCLK_EN signal 142 occurs on a misaligned boundary, so that the core clock (CORECLK) signal 133 is in low state.
- a clock pulse of the CORECLK is "swallowed" to allow for clock alignment between the core clock (CORECLK) and the bus clock (BUSCLK).
- the bus clock (BUSCLK) and core clock (CORECLK) signals are always aligned, so GNSCLK# stop or restart is delayed to the CORECLK low phase immediately following the aligned boundary.
- the R/S latch 160 is RESET via an AND gate 166 one processor clock cycle after the sleep signal 138 is deasserted, and then SET by D-flip-flops 170 two processor cycles after the sleep signal is deasserted.
- FIGS 9A and 9B are timing diagrams, showing the timing the various signals described above with reference to Figures 4-8.
- Figure 9A illustrates the relative timing, in the non-integer (2/N) mode, of the CORECLK signal 133, the BUSCLK signal 132, the BPRI# signal 130, the SLEEP signal 138, the GNSCLK_EN signal 142, the GNSCLK# signal 145, and an Address Status (ADSS)# signal 200.
- the clock state is also illustrated at 210.
- Figure 9B illustrates the relative timing of the same signals in the integer (1/N) mode.
- Each timing diagram commences with a processor in the Quick Start state 108, in which the GNSCLK# signal 145 is disabled.
- the sleep/start state logic 136 continually monitors for the assertion of the BPRI# signal 130 as described above. Once the sleep/start state logic 136 detects assertion of the BPRI# signal 130 at points 212, the SLEEP signal 138 is deasserted at the next rising edge of the BUSCLK signal 132, as shown at points 214. In response to the deassertion of the SLEEP signal 138, the clock enable logic 140 asserts the GNSCLK_EN signal 142 after a delay which is dependent upon, and determined by, whether the clock circuitry is operating in the 2/N or the 1/N mode, as shown at points 216 and as described above.
- the GNSCLK_EN signal 142 is asserted at time when the CORECLK signal 133 is low.
- the NAND gates 144 In response to the assertion of the GNSCLK_EN signal 142, the NAND gates 144 then output the GNSCLK 145 to the FUBs required to service a snoop request, and the processor enters the "Quick Start plus" mode 109.
- the GNSCLK signal 145 is restarted in time to allow the address (which is valid on assertion of the ADS# signal 200) of the memory access to be snooped.
- the processor then enters a "Quick Start Snoop" state, wherein the snoop request is processed.
- FIG. 10 is a flowchart illustrating one embodiment of a method 300, according to the present invention, of configuring a processor to maintain cache coherency when in a low-power state.
- a determination is made at step 302 as to the state of a configuration (or strapping) signal 128 applied to the A15# pin 128 A of the processor. Having determined the state of the configuration signal 128, the method 300 proceeds to decision box 304, where the method 300 is directed to step 306 if the configuration signal is a logical 1 and to step 308 if the configuration signal is a logical 0.
- the processor is configured to enter the Quick Start state 108 if the STPCLK# signal 124 is asserted, and to thus be responsive to a first set of signals only for the purpose of maintaining cache coherency.
- the first set of signals comprises only the BPRI# signal 130.
- the processor is configured to enter the Stop Grant state 104 on assertion of the STPCLK# signal 124, and to thus be responsive to a second set of signals which in one embodiment includes the ADS# signal.
- FIG 11 is a flowchart illustrating a method 400 of entering a low- power mode within a processor.
- the method 400 commences at step 402 with the assertion of the STPCLK# signal 124.
- the method 400 proceeds to decision box 404 to detect whether a subsequent STPCLK break event has occurred. If so, method 400 exits. Otherwise, method 400 moves on to decision box 406, where a determination is made as to whether the processor is configured to enter the Quick Start state 108 This is dependent on the configuration signal 128 applied to A15# pin 128 A at power-up of the processor. If the processor has been configured to enter the Quick Start mode 108, this mode is entered at step 408, whereafter the BPRI# signal 130 is monitored at step 410.
- step 410 it is determined whether the BPRI# signal 130 has been asserted. If not, step 410 is revisited, and the method 400 continues to cycle through steps 410 and 412 until the BPRI# signal 130 is asserted or a STPCLK break event occurs. If the BPRI# signal 130 is asserted, the processor enters the Quick Start + state at step 416, whereafter a snoop operation of the processor bus is performed at step 418. Thereafter, a method 400 returns to decision box 404.
- step 406 determines whether the processor is not configured to enter the Quick Start state 108. If it is determined at decision box 406 that the processor is not configured to enter the Quick Start state 108, the processor enters the Stop Grant state 104 at step 420. Thereafter the processor monitors for any snoop or interrupt requests at step 422. If no such requests are detected, step 422 is revisited, and the method 400 continues to cycle through steps 422 and 424 until a snoop or interrupt request is received or until a STPCLK break event occurs. On the occurrence of a snoop of interrupt request, this request is handled at step 428, whereafter the method 400 returns to decision box 404.
- FIG. 12 is flow chart illustrating a method 500, according to the invention, of operating an integrated circuit in a reduced-power consumption state.
- the method 500 illustrates the operation of the processor 14 operating in the Quick Start mode 108.
- the processor enters the Quick Start mode and then proceeds to step 502, wherein clock signals, namely the GNSCLK and GSCLK clocks, are gated, and thus prevented from being propagated to first and second sets of FUBs.
- the first and second sets of FUBs are distinguished in that the first set of FUBs is required to perform a cache coherency operation within the processor (e.g., the data cache 51, the code cache 38 and the bus interface unit 32), whereas the second set of FUBs performs an instruction processing function (e.g.
- the method then proceeds to decision box 504 where a determination is made as to whether a signal indicating a memory access by a device, external to the integrated circuit, is detected.
- a signal comprises the BPRI# signal defined by the Intel Architecture. Should this signal not be asserted, the method 500 returns to step 502. On the other hand, should this signal in fact be asserted, the method proceeds to step 506, where the GNSCLK clock signal is again enabled and propagated to the first set of FUBs, thus causing the first set of FUBs to again be operational.
- the first set of FUBs performs a cache coherency operation in response to the memory access by the external device, whereafter the GNSCLK clock signal is again gated to the first set of FUBs, at step 510, thus again returning the first set of FUBs to a reduced-power consumption state.
- the methodology then returns to decision box 504.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP54803598A JP4083816B2 (ja) | 1997-05-05 | 1998-01-27 | 低電力状態で動作する集積回路でキャッシュコヒーレンシを維持する方法および装置 |
| AU62507/98A AU6250798A (en) | 1997-05-05 | 1998-01-27 | Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/841,858 US6014751A (en) | 1997-05-05 | 1997-05-05 | Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state |
| US08/841,858 | 1997-05-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO1998050846A1 true WO1998050846A1 (en) | 1998-11-12 |
Family
ID=25285871
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US1998/001519 Ceased WO1998050846A1 (en) | 1997-05-05 | 1998-01-27 | Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US6014751A (enExample) |
| JP (1) | JP4083816B2 (enExample) |
| AU (1) | AU6250798A (enExample) |
| TW (1) | TW414875B (enExample) |
| WO (1) | WO1998050846A1 (enExample) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001047122A2 (en) | 1999-12-15 | 2001-06-28 | Intel Corporation | Apparatus for selectively disabling clock distribution |
| WO2007059085A3 (en) * | 2005-11-15 | 2007-08-09 | Montalvo Systems Inc | Small and power-efficient cache that can provide data for background dma devices while the processor is in a low-power state |
| US7412570B2 (en) | 2005-11-15 | 2008-08-12 | Sun Microsystems, Inc. | Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state |
| US7873788B1 (en) | 2005-11-15 | 2011-01-18 | Oracle America, Inc. | Re-fetching cache memory having coherent re-fetching |
| US7904659B2 (en) | 2005-11-15 | 2011-03-08 | Oracle America, Inc. | Power conservation via DRAM access reduction |
| US7934054B1 (en) | 2005-11-15 | 2011-04-26 | Oracle America, Inc. | Re-fetching cache memory enabling alternative operational modes |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6240522B1 (en) * | 1998-09-30 | 2001-05-29 | Compaq Computer Corporation | Clock run controller |
| US6298105B1 (en) * | 1998-10-30 | 2001-10-02 | Intel Corporation | Method and apparatus for a low skew, low standby power clock network |
| 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 |
| US6968469B1 (en) * | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
| US7725748B1 (en) | 2000-12-29 | 2010-05-25 | Intel Corporation | Low power subsystem for portable computers |
| US7539878B2 (en) * | 2001-09-19 | 2009-05-26 | Freescale Semiconductor, Inc. | CPU powerdown method and apparatus therefor |
| US20030061383A1 (en) * | 2001-09-25 | 2003-03-27 | Zilka Anthony M. | Predicting processor inactivity for a controlled transition of power states |
| US7058829B2 (en) * | 2002-08-14 | 2006-06-06 | Intel Corporation | Method and apparatus for a computing system having an active sleep mode CPU that uses the cache of a normal active mode CPU |
| US6938146B2 (en) * | 2002-12-19 | 2005-08-30 | International Business Machines Corporation | Memory power management using prefetch buffers |
| US7114090B2 (en) * | 2003-02-14 | 2006-09-26 | Intel Corporation | Computing system with operational low power states |
| US7080271B2 (en) * | 2003-02-14 | 2006-07-18 | Intel Corporation | Non main CPU/OS based operational environment |
| US7254730B2 (en) * | 2003-02-14 | 2007-08-07 | Intel Corporation | Method and apparatus for a user to interface with a mobile computing device |
| JP3857661B2 (ja) * | 2003-03-13 | 2006-12-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、プログラム、及び記録媒体 |
| US7302652B2 (en) * | 2003-03-31 | 2007-11-27 | Intel Corporation | Leakage control in integrated circuits |
| EP1477903A3 (en) * | 2003-05-13 | 2004-12-29 | Freescale Semiconductor, Inc. | Memory system for a radiotelephone |
| GB2403561A (en) * | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Power control within a coherent multi-processor system |
| US7356713B2 (en) * | 2003-07-31 | 2008-04-08 | International Business Machines Corporation | Method and apparatus for managing the power consumption of a data processing system |
| US9047415B2 (en) | 2005-06-10 | 2015-06-02 | Freescale Semiconductor, Inc. | Device and method for media access control |
| US8223910B2 (en) * | 2005-06-10 | 2012-07-17 | Freescale Semiconductor, Inc. | Method and device for frame synchronization |
| US7941683B2 (en) * | 2007-05-02 | 2011-05-10 | Advanced Micro Devices, Inc. | Data processing device with low-power cache access mode |
| US20090138220A1 (en) * | 2007-11-28 | 2009-05-28 | Bell Jr Robert H | Power-aware line intervention for a multiprocessor directory-based coherency protocol |
| US9471125B1 (en) * | 2010-10-01 | 2016-10-18 | Rockwell Collins, Inc. | Energy efficient processing device |
| US20130117511A1 (en) * | 2011-11-08 | 2013-05-09 | Arm Limited | Data processing apparatus and method |
| US9383805B2 (en) | 2013-03-12 | 2016-07-05 | Atmel Corporation | Generating clock on demand |
| US20150067363A1 (en) * | 2013-09-04 | 2015-03-05 | Sebastien Jouin | Clock generator circuit with automatic sleep mode |
| US10447461B2 (en) * | 2015-12-01 | 2019-10-15 | Infineon Technologies Austria Ag | Accessing data via different clocks |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5481731A (en) * | 1991-10-17 | 1996-01-02 | Intel Corporation | Method and apparatus for invalidating a cache while in a low power state |
| US5530932A (en) * | 1994-12-23 | 1996-06-25 | Intel Corporation | Cache coherent multiprocessing computer system with reduced power operating features |
| US5632037A (en) * | 1992-03-27 | 1997-05-20 | Cyrix Corporation | Microprocessor having power management circuitry with coprocessor support |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5677849A (en) * | 1993-11-08 | 1997-10-14 | Cirrus Logic, Inc. | Selective low power clocking apparatus and method |
| US5430683A (en) * | 1994-03-15 | 1995-07-04 | Intel Corporation | Method and apparatus for reducing power in on-chip tag SRAM |
-
1997
- 1997-05-05 US US08/841,858 patent/US6014751A/en not_active Expired - Lifetime
-
1998
- 1998-01-27 JP JP54803598A patent/JP4083816B2/ja not_active Expired - Lifetime
- 1998-01-27 WO PCT/US1998/001519 patent/WO1998050846A1/en not_active Ceased
- 1998-01-27 AU AU62507/98A patent/AU6250798A/en not_active Abandoned
- 1998-02-10 TW TW087101803A patent/TW414875B/zh not_active IP Right Cessation
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5481731A (en) * | 1991-10-17 | 1996-01-02 | Intel Corporation | Method and apparatus for invalidating a cache while in a low power state |
| US5632037A (en) * | 1992-03-27 | 1997-05-20 | Cyrix Corporation | Microprocessor having power management circuitry with coprocessor support |
| US5530932A (en) * | 1994-12-23 | 1996-06-25 | Intel Corporation | Cache coherent multiprocessing computer system with reduced power operating features |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001047122A2 (en) | 1999-12-15 | 2001-06-28 | Intel Corporation | Apparatus for selectively disabling clock distribution |
| WO2001047122A3 (en) * | 1999-12-15 | 2002-11-14 | Intel Corp | Apparatus for selectively disabling clock distribution |
| WO2007059085A3 (en) * | 2005-11-15 | 2007-08-09 | Montalvo Systems Inc | Small and power-efficient cache that can provide data for background dma devices while the processor is in a low-power state |
| US7412570B2 (en) | 2005-11-15 | 2008-08-12 | Sun Microsystems, Inc. | Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state |
| US7873788B1 (en) | 2005-11-15 | 2011-01-18 | Oracle America, Inc. | Re-fetching cache memory having coherent re-fetching |
| US7904659B2 (en) | 2005-11-15 | 2011-03-08 | Oracle America, Inc. | Power conservation via DRAM access reduction |
| US7934054B1 (en) | 2005-11-15 | 2011-04-26 | Oracle America, Inc. | Re-fetching cache memory enabling alternative operational modes |
| US7958312B2 (en) | 2005-11-15 | 2011-06-07 | Oracle America, Inc. | Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state |
Also Published As
| Publication number | Publication date |
|---|---|
| AU6250798A (en) | 1998-11-27 |
| TW414875B (en) | 2000-12-11 |
| JP2002510413A (ja) | 2002-04-02 |
| US6014751A (en) | 2000-01-11 |
| JP4083816B2 (ja) | 2008-04-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6014751A (en) | Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state | |
| US5530932A (en) | Cache coherent multiprocessing computer system with reduced power operating features | |
| US5809314A (en) | Method of monitoring system bus traffic by a CPU operating with reduced power | |
| US5781783A (en) | Method and apparatus for dynamically adjusting the power consumption of a circuit block within an integrated circuit | |
| US7509512B2 (en) | Instruction-initiated method for suspending operation of a pipelined data processor | |
| US5630143A (en) | Microprocessor with externally controllable power management | |
| EP1099167B1 (en) | Method and apparatus for power mode transition in a multi-thread processor | |
| US5935253A (en) | Method and apparatus for powering down an integrated circuit having a core that operates at a speed greater than the bus frequency | |
| US6347379B1 (en) | Reducing power consumption of an electronic device | |
| US7861068B2 (en) | Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling | |
| US5634131A (en) | Method and apparatus for independently stopping and restarting functional units | |
| US5632037A (en) | Microprocessor having power management circuitry with coprocessor support | |
| US5537656A (en) | Method and apparatus for a microprocessor to enter and exit a reduced power consumption state | |
| US6035315A (en) | Floating point power conservation | |
| EP1241555B1 (en) | Method in a microprocessor with hardware controlled power management and selectable input/output control pins | |
| Suessmith et al. | PowerPC 603 microprocessor; power management. | |
| US20160216756A1 (en) | Power management in computing devices | |
| HK1003667B (en) | A cache coherent multiprocessing computer system with reduced power operating features |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CU CZ CZ DE DE DK DK EE EE ES FI FI GB GE GH GM GW HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT UA UG UZ VN YU ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| ENP | Entry into the national phase |
Ref country code: JP Ref document number: 1998 548035 Kind code of ref document: A Format of ref document f/p: F |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
| 122 | Ep: pct application non-entry in european phase | ||
| NENP | Non-entry into the national phase |
Ref country code: CA |