US20090193274A1 - System And Method of Coherent Data Transfer During Processor Idle States - Google Patents

System And Method of Coherent Data Transfer During Processor Idle States Download PDF

Info

Publication number
US20090193274A1
US20090193274A1 US12/419,090 US41909009A US2009193274A1 US 20090193274 A1 US20090193274 A1 US 20090193274A1 US 41909009 A US41909009 A US 41909009A US 2009193274 A1 US2009193274 A1 US 2009193274A1
Authority
US
United States
Prior art keywords
processor
request
system memory
snoopable
bus master
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.)
Abandoned
Application number
US12/419,090
Inventor
Leslie E. Cline
Siripong Sritanyaratana
Alon Naveh
Shai Rotem
Eric C. Samson
Michael N. Derr
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Tsing Hua University NTHU
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to US12/419,090 priority Critical patent/US20090193274A1/en
Publication of US20090193274A1 publication Critical patent/US20090193274A1/en
Assigned to NATIONAL TSING HUA UNIVERSITY reassignment NATIONAL TSING HUA UNIVERSITY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHEN, Rong-shun, HOCHENG, HONG, LIN, CHIEN-HUNG, TSAI, HUNG-YIN, YANG, JHIH-SHUN, LIN, YU-CHING, CHU, LI-AN
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache 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)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

  • One or more embodiments of the present invention generally relate to power management. In particular, certain embodiments relate to managing power in computing systems.
  • CPUs central processing units
  • higher frequencies As the trend toward advanced central processing units (CPUs) with more transistors and higher frequencies continues to grow, computer designers and manufacturers are often faced with corresponding increases in power and energy consumption. Furthermore, manufacturing technologies that provide faster and smaller components can at the same time result in increased leakage power. Particularly in mobile computing environments, increased power consumption can lead to overheating, which may negatively affect performance, and can significantly reduce battery life.
  • FIG. 1 is a block diagram of an example of an apparatus according to one embodiment of the invention.
  • FIG. 2 is a block diagram of an example of a system according to one embodiment of the invention.
  • FIG. 3 is a flowchart of an example of a method of power management according to one embodiment of the invention.
  • FIG. 1 shows a device having a system memory 18 , one or more external controllers 13 , a processor 12 with a cache 20 , and a chipset 11 with one or more internal controllers 15 .
  • the chipset 11 manages data transfers between the various components of the device.
  • the processor 12 is able to enter one or more active and/or idle states based on performance and/or power management concerns. In the illustrated example, the processor 12 is in a non-snoopable idle state and the chipset 11 supports data transfers between the controllers 13 , 15 and the system memory 18 while the processor 12 is in the non-snoopable idle state.
  • the non-snoopable idle state can enable the processor 12 achieve reduced leakage current and power consumption, where the term “non-snoopable” is used herein to refer to a condition in which a component having a cache does not support cache coherence in that state.
  • Cache coherence is essentially a protocol for managing the caches of a system so that no data is lost or overwritten before the data is transferred from a cache to the target memory.
  • all caches on the bus can have a mechanism to monitor (or snoop) the bus to determine if they have a copy of the block of data that is requested on the bus.
  • the chipset 11 would monitor all data transfers to and from the system memory 18 on behalf of the processor 12 .
  • the illustrated processor 12 is in the non-snoopable idle state, however, such monitoring does not take place.
  • the chipset 11 enables greater power savings than achievable under conventional approaches.
  • FIG. 2 a system 10 having a processor 12 , a system memory 18 , and a chipset 11 ′ that includes a graphics memory controller hub ((G)MCH) 15 a , an input/output controller hub (ICH) 15 b and a graphics controller 15 c , is shown.
  • the system 10 could be part of a computing system such as a server, desktop personal computer (PC), notebook PC, personal digital assistant (PDA), wireless “smart” phone, and so on.
  • the processor 12 could be similar to a Pentium® M processor available from Intel Corporation in Santa Clara, Calif., and is shown as having an internal cache 20 such as a level one (L 1 ), level two (L 2 ), trace, data and/or instruction cache.
  • the cache 20 includes high-speed static RAM (SRAM), whereas the system memory 18 includes slower dynamic RAM (DRAM).
  • DRAM dynamic RAM
  • the DRAM modules of the system memory 18 may also be incorporated in to a single inline memory module (SIMM), dual inline memory module (DIMM), small outline DIMM (SODIMM), and so on.
  • the illustrated processor 12 is able to execute program code/instructions and can also include instruction fetch units, instruction decoders, execution units, and so on (not shown).
  • the processor 12 can also be associated with a voltage regulator 34 that establishes a core voltage 36 for the processor 12 .
  • the voltage regulator 34 may reduce the core voltage 36 of the processor 12 to a level below a data retention threshold of the cache 20 in response to a power state control signal 38 from the ICH 15 b.
  • the illustrated processor 12 can communicate with the MCH 15 a over an interface such as a front side bus (FSB) 22 , where the MCH 15 a is sometimes referred to as a Northbridge.
  • the MCH 15 a can communicate with the system memory 18 via a memory bus 24 and with the graphics controller 15 c via a graphics bus 28 such as a PCI Express Graphics (PEG, e.g., Peripheral Components Interconnect/PCI Express x16 Graphics 150W-ATX Specification 1.0, PCI Special Interest Group) bus or an Accelerated Graphics Port (e.g., AGP V3.0 Interface Specification, September 2002, Intel® Corporation) bus.
  • PEG Peripheral Components Interconnect/PCI Express x16 Graphics 150W-ATX Specification 1.0, PCI Special Interest Group
  • an Accelerated Graphics Port e.g., AGP V3.0 Interface Specification, September 2002, Intel® Corporation
  • the MCH 15 a may also communicate with the ICH 15 b , which may be referred to as a Southbridge, over a hub bus 30 .
  • the hub bus 30 is a DMI (Direct Media Interface) bus.
  • the illustrated system 10 also has one or more peripheral controllers 13 ′ such as a Wi-Fi (e.g., IEEE 802.11a, b, g) network interface, an Ethernet controller (e.g., IEEE 802.3), PC Card controller (e.g, CardBus PCMCIA standard), and so on.
  • the system 10 may include chipset internal controllers such as the MCH 15 a , graphics controller 15 b and ICH 15 c , and external controllers such as the peripheral controller 13 ′.
  • the ICH 15 c may also have internal controllers such as USB (Universal Serial Bus, e.g., USB Specification 2.0, USB Implementers Forum), Serial ATA (SATA, e.g., SATA 1.0a Specification, Feb. 4, 2004, SATA International Organization/SATA-10), High Definition Audio, and other controllers.
  • USB Universal Serial Bus
  • SATA Serial ATA
  • SATA Serial ATA
  • High Definition Audio High Definition Audio
  • the illustrated ICH 15 b is able to place the processor 12 in one or more low power states to reduce power consumption by issuing various power state control signals 38 to the voltage regulator 34 .
  • the processor 12 could place itself in the various low power states and inform the chipset 11 ′ of its low power state status.
  • the low power states could be established in accordance with the Advanced Configuration and Power Interface Specification (ACPI Specification, Rev. 3, Sep. 2, 2004), where processor power states (Cx states) are processor power consumption and thermal management states within a global working state.
  • ACPI Cx states processor power states
  • FIG. 2 the embodiments of the invention are not so limited. Indeed, the principles described herein can be useful in any cache coherent environment in which power consumption is an issue of concern. Notwithstanding, there are a number of embodiments for which ACPI Cx states are well suited.
  • low power states such as the Cx states may possess specific entry and exit semantics and associated latencies.
  • the processor 12 executes instructions
  • the processor 12 is in the C 1 state, it is idle and typically has the lowest entry/exit latency.
  • the hardware latency in the C 1 state is generally low enough that the operating system (OS) software does not consider the latency aspect of the state when deciding whether to use it. Aside from placing the processor 12 in a non-executing power state, the C 1 state may have no other software-visible effects.
  • OS operating system
  • Hardware aspects of the C 1 state may involve the gating of one or more unused clock signals to save power.
  • Another processor power state is the C 2 state, which can offer improved power savings over the C 1 state.
  • the worst-case hardware latency for the C 2 state can be provided via the ACPI system firmware, and the operating software can use this information to determine when the C 1 state should be used instead of the C 2 state. Aside from placing the processor 12 in a non-executing power state, this state may have no other software-visible effects.
  • Hardware aspects of the C 2 state may involve the gating of additional clocks.
  • the processor 12 could also be placed in the C 3 state, which can offer improved power savings over the C 1 and C 2 states.
  • the worst-case hardware latency for this state may also be provided via the ACPI system firmware, where the OS software can use this information to determine when the C 2 state should be used instead of the C 3 state.
  • While in the C 3 state certain clocks may be shut down and the core voltage 36 may be reduced to a level low enough to conserve more power but high enough for processors caches 20 to maintain state. In this state, the caches 20 may ignore any snoops.
  • the caches 20 may also be flushed out to the system memory according to the cache coherence policy associated with the C 3 state.
  • Other deeper power states could include a C 4 state, in which the core voltage 36 of the processor 12 can be reduced to below the lowest operating point by approximately 100-200 mV.
  • an even deeper C 5 state could be used to instruct the processor 12 to save an operating context for itself.
  • the core voltage 36 can be reduced to a level below a context retention point for the processor 12 .
  • the context retention point may be, for example, an operating level where the operating context for processor 12 may potentially be partially or fully lost.
  • the processor 12 could be said to be in a non-snoopable state because snoops to the cache 20 are not permitted.
  • cache snooping is a process wherein accesses (i.e., reads/writes) to the system memory 18 by controllers such as the MCH 15 a , graphics controller 15 c , ICH 15 b and peripheral controller 13 ′, are used to determine whether data in the cache 20 is valid.
  • controllers such as the MCH 15 a , graphics controller 15 c , ICH 15 b and peripheral controller 13 ′.
  • these accesses illustrated by data paths 40 ( 40 a - 40 d ), respectively, require that the processor 12 be placed in a snoopable state (e.g., C 2 or shallower).
  • data can be moved over paths 40 while the processor is in a non-snoopable idle state such as processor power states C 3 or deeper.
  • the illustrated ICH 15 b includes power management logic 42 to place the processor 12 in the non-snoopable idle state and the MCH 15 a includes non-snoop mode logic 44 to service data transfers between the system memory 18 and the system controllers while the processor 12 is in the non-snoopable idle state.
  • the power management logic 42 and the non-snoop mode logic 44 are illustrated as being located on the ICH 15 b and MCH 15 a , respectively, the power management logic 42 and the non-snoop mode logic 44 may be co-located or distributed elsewhere in the system 10 without parting from the spirit and scope of the embodiments described herein.
  • the power management logic 42 could be disposed within the processor 12 , so that the processor is able to manage its own power state transitions.
  • the chipset-external peripheral controller 13 ′ could include a Wi-Fi controller that issues a bus master request to write data to (or read data from) a cacheable portion of the system memory 18 while the processor 12 is in the ultra low power C 5 state.
  • the non-snoop mode logic 44 can service the request associated with data path 40 d without the need to bring the processor 12 out of the C 5 state.
  • the chipset-internal graphics controller 26 may issue a bus master request to write data to (or read data from) a cacheable portion of the system memory 18 over data path 40 b . Once again, the data transfer can be serviced without bringing the processor 12 out of the ultra low power state.
  • the MCH 15 a could transfer data across data path 40 a and the ICH 15 b could transfer data across data path 40 c without disturbing the idle state of the processor 12 .
  • the ability of the processor 12 to remain in deeper idle states for longer periods of time leakage current and overall power consumption can be reduced significantly.
  • the power management logic 42 may determine that the processor 12 has flushed the cache 20 to the system memory 18 by detecting a specific request. For example, the processor 12 could issue an input/output (I/O) request to read from a particular register (e.g., LVL5 register, not shown) within the ICH 15 b . Upon receiving such a read request, the power management logic 42 could initiate a transition of the processor 12 to the non-snoopable idle state.
  • I/O input/output
  • the power management logic 42 could detect a wake-up event such as an unmasked system interrupt request and remove the processor 12 from the non-snoopable idle state in response to detecting the wake-up event.
  • Unmasked system interrupt requests can be internal or external with respect to the chipset 11 ′, depending upon the circumstances. Once the processor 12 has exited the non-snoopable idle state, the chipset 11 ′ may exit the non-snoop mode and resume cache coherence operations with regard to the cache 20 .
  • processing block 48 provides for determining that a processor has flushed an internal cache of the processor to a cacheable system memory. As already noted, one approach to making the determination at block 48 is to detect a specific I/O read request from the processor.
  • CMOS complementary metal oxide semiconductor
  • Block 50 provides for placing the processor in a non-snoopable idle state such as a C 3 or deeper power state.
  • One or more data transfers are serviced between the cacheable system memory and a controller at block 52 while the processor is in the non-snoopable idle state.
  • the servicing at block 52 is conducted by detecting a bus master request from the controller in question and moving data between the controller and the system memory based on the bus master request.
  • Block 54 provides for detecting a wake-up event such as an unmasked system interrupt request, and block 56 provides for removing the processor from the non-snoopable idle state in response to detecting the wake-up event.
  • One or more data transfer requests are handled in accordance with standard cache coherence protocol at block 58 . Thus, snoops to the processor internal cache may be allowed.

Abstract

Systems and methods of managing power provide for placing a processor in a non-snoopable state, where the processor is associated with a system memory. One or more data transfers between a controller and the system memory can be serviced while the processor is in the non-snoopable state. In one embodiment, it is determined that the processor has flushed an internal cache of the processor to the system memory before placing the processor in the non-snoopable state.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application is related to U.S. patent application Ser. No. 11/024,538, filed on Dec. 28, 2004.
  • BACKGROUND
  • 1. Technical Field
  • One or more embodiments of the present invention generally relate to power management. In particular, certain embodiments relate to managing power in computing systems.
  • 2. Discussion
  • As the trend toward advanced central processing units (CPUs) with more transistors and higher frequencies continues to grow, computer designers and manufacturers are often faced with corresponding increases in power and energy consumption. Furthermore, manufacturing technologies that provide faster and smaller components can at the same time result in increased leakage power. Particularly in mobile computing environments, increased power consumption can lead to overheating, which may negatively affect performance, and can significantly reduce battery life.
  • Because batteries typically have a limited capacity, running the processor of a mobile computing system more than necessary could drain the capacity more quickly than desired. Some modern mobile computing systems therefore attempt to conserve power by placing the processor in various low power/idle states when there are no instructions to be executed. As the low power states become deeper and deeper, more functionality within the processor is often lost. For example, one ultra low power state involves reducing the core voltage so low that there may be concern over data loss in the internal cache(s) of the processor. Therefore, when a processor is in this state, the internal caches of the processor may be flushed to system memory and snoops to the cache can be ignored and/or disallowed. While use of such a deep low power state can provide significant power savings, data transfers between various controllers and the system memory typically require snoops to the processor internal cache. As a result, the processor may be forced out of the low power state more often than desired.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The various advantages of the embodiments of the present invention will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which:
  • FIG. 1 is a block diagram of an example of an apparatus according to one embodiment of the invention;
  • FIG. 2 is a block diagram of an example of a system according to one embodiment of the invention; and
  • FIG. 3 is a flowchart of an example of a method of power management according to one embodiment of the invention.
  • DETAILED DESCRIPTION
  • In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the present invention. It will be evident, however, to one skilled in the art that the embodiments of the present invention may be practiced without these specific details. In other instances, specific apparatus structures and methods have not been described so as not to obscure the embodiments of the present invention. The following description and drawings are illustrative of the embodiments of the invention and are not to be construed as limiting the embodiments of the invention.
  • FIG. 1 shows a device having a system memory 18, one or more external controllers 13, a processor 12 with a cache 20, and a chipset 11 with one or more internal controllers 15. Generally, the chipset 11 manages data transfers between the various components of the device. The processor 12 is able to enter one or more active and/or idle states based on performance and/or power management concerns. In the illustrated example, the processor 12 is in a non-snoopable idle state and the chipset 11 supports data transfers between the controllers 13, 15 and the system memory 18 while the processor 12 is in the non-snoopable idle state. The non-snoopable idle state can enable the processor 12 achieve reduced leakage current and power consumption, where the term “non-snoopable” is used herein to refer to a condition in which a component having a cache does not support cache coherence in that state. Cache coherence is essentially a protocol for managing the caches of a system so that no data is lost or overwritten before the data is transferred from a cache to the target memory. In a snooping-based cache coherence system, all caches on the bus can have a mechanism to monitor (or snoop) the bus to determine if they have a copy of the block of data that is requested on the bus. Under typical circumstances, the chipset 11 would monitor all data transfers to and from the system memory 18 on behalf of the processor 12. When the illustrated processor 12 is in the non-snoopable idle state, however, such monitoring does not take place. By continuing to service data transfers between the controllers 13, 15 and the system memory 18 while the processor 12 is in the non-snoopable idle state, the chipset 11 enables greater power savings than achievable under conventional approaches.
  • Turning now to FIG. 2, a system 10 having a processor 12, a system memory 18, and a chipset 11′ that includes a graphics memory controller hub ((G)MCH) 15 a, an input/output controller hub (ICH) 15 b and a graphics controller 15 c, is shown. The system 10 could be part of a computing system such as a server, desktop personal computer (PC), notebook PC, personal digital assistant (PDA), wireless “smart” phone, and so on. The processor 12 could be similar to a Pentium® M processor available from Intel Corporation in Santa Clara, Calif., and is shown as having an internal cache 20 such as a level one (L1), level two (L2), trace, data and/or instruction cache. In one example, the cache 20 includes high-speed static RAM (SRAM), whereas the system memory 18 includes slower dynamic RAM (DRAM). The DRAM modules of the system memory 18 may also be incorporated in to a single inline memory module (SIMM), dual inline memory module (DIMM), small outline DIMM (SODIMM), and so on.
  • The illustrated processor 12 is able to execute program code/instructions and can also include instruction fetch units, instruction decoders, execution units, and so on (not shown). The processor 12 can also be associated with a voltage regulator 34 that establishes a core voltage 36 for the processor 12. As will be described in more detail, the voltage regulator 34 may reduce the core voltage 36 of the processor 12 to a level below a data retention threshold of the cache 20 in response to a power state control signal 38 from the ICH 15 b.
  • The illustrated processor 12 can communicate with the MCH 15 a over an interface such as a front side bus (FSB) 22, where the MCH 15 a is sometimes referred to as a Northbridge. The MCH 15 a can communicate with the system memory 18 via a memory bus 24 and with the graphics controller 15 c via a graphics bus 28 such as a PCI Express Graphics (PEG, e.g., Peripheral Components Interconnect/PCI Express x16 Graphics 150W-ATX Specification 1.0, PCI Special Interest Group) bus or an Accelerated Graphics Port (e.g., AGP V3.0 Interface Specification, September 2002, Intel® Corporation) bus. The MCH 15 a may also communicate with the ICH 15 b, which may be referred to as a Southbridge, over a hub bus 30. In one embodiment, the hub bus 30 is a DMI (Direct Media Interface) bus. The illustrated system 10 also has one or more peripheral controllers 13′ such as a Wi-Fi (e.g., IEEE 802.11a, b, g) network interface, an Ethernet controller (e.g., IEEE 802.3), PC Card controller (e.g, CardBus PCMCIA standard), and so on. Thus, the system 10 may include chipset internal controllers such as the MCH 15 a, graphics controller 15 b and ICH 15 c, and external controllers such as the peripheral controller 13′. The ICH 15 c may also have internal controllers such as USB (Universal Serial Bus, e.g., USB Specification 2.0, USB Implementers Forum), Serial ATA (SATA, e.g., SATA 1.0a Specification, Feb. 4, 2004, SATA International Organization/SATA-10), High Definition Audio, and other controllers.
  • As already noted, the illustrated ICH 15 b is able to place the processor 12 in one or more low power states to reduce power consumption by issuing various power state control signals 38 to the voltage regulator 34. Alternatively, the processor 12 could place itself in the various low power states and inform the chipset 11′ of its low power state status. The low power states could be established in accordance with the Advanced Configuration and Power Interface Specification (ACPI Specification, Rev. 3, Sep. 2, 2004), where processor power states (Cx states) are processor power consumption and thermal management states within a global working state. Although certain embodiments may be described with reference to ACPI Cx states being used as low power states, the embodiments of the invention are not so limited. Indeed, the principles described herein can be useful in any cache coherent environment in which power consumption is an issue of concern. Notwithstanding, there are a number of embodiments for which ACPI Cx states are well suited.
  • In general, as the processor 12 enters deeper and deeper low power states, additional power saving measures can be taken to decrease leakage current and/or power consumption, where entry to and exit from the states may take longer and longer. In particular, low power states such as the Cx states may possess specific entry and exit semantics and associated latencies. For example, while the processor 12 is in the C0 state, it executes instructions, and while the processor 12 is in the C1 state, it is idle and typically has the lowest entry/exit latency. The hardware latency in the C1 state is generally low enough that the operating system (OS) software does not consider the latency aspect of the state when deciding whether to use it. Aside from placing the processor 12 in a non-executing power state, the C1 state may have no other software-visible effects. Hardware aspects of the C1 state may involve the gating of one or more unused clock signals to save power. Another processor power state is the C2 state, which can offer improved power savings over the C1 state. The worst-case hardware latency for the C2 state can be provided via the ACPI system firmware, and the operating software can use this information to determine when the C1 state should be used instead of the C2 state. Aside from placing the processor 12 in a non-executing power state, this state may have no other software-visible effects. Hardware aspects of the C2 state may involve the gating of additional clocks.
  • The processor 12 could also be placed in the C3 state, which can offer improved power savings over the C1 and C2 states. The worst-case hardware latency for this state may also be provided via the ACPI system firmware, where the OS software can use this information to determine when the C2 state should be used instead of the C3 state. While in the C3 state, certain clocks may be shut down and the core voltage 36 may be reduced to a level low enough to conserve more power but high enough for processors caches 20 to maintain state. In this state, the caches 20 may ignore any snoops. The caches 20 may also be flushed out to the system memory according to the cache coherence policy associated with the C3 state.
  • Other deeper power states could include a C4 state, in which the core voltage 36 of the processor 12 can be reduced to below the lowest operating point by approximately 100-200 mV. In addition, an even deeper C5 state could be used to instruct the processor 12 to save an operating context for itself. Once the operating context for processor 12 has been saved, the core voltage 36 can be reduced to a level below a context retention point for the processor 12. The context retention point may be, for example, an operating level where the operating context for processor 12 may potentially be partially or fully lost. In each of the C3 and deeper states, the processor 12 could be said to be in a non-snoopable state because snoops to the cache 20 are not permitted. As already noted, cache snooping is a process wherein accesses (i.e., reads/writes) to the system memory 18 by controllers such as the MCH 15 a, graphics controller 15 c, ICH 15 b and peripheral controller 13′, are used to determine whether data in the cache 20 is valid. Under conventional approaches, these accesses, illustrated by data paths 40 (40 a-40 d), respectively, require that the processor 12 be placed in a snoopable state (e.g., C2 or shallower).
  • In the illustrated example, however, data can be moved over paths 40 while the processor is in a non-snoopable idle state such as processor power states C3 or deeper. In particular, the illustrated ICH 15 b includes power management logic 42 to place the processor 12 in the non-snoopable idle state and the MCH 15 a includes non-snoop mode logic 44 to service data transfers between the system memory 18 and the system controllers while the processor 12 is in the non-snoopable idle state. Although the power management logic 42 and the non-snoop mode logic 44 are illustrated as being located on the ICH 15 b and MCH 15 a, respectively, the power management logic 42 and the non-snoop mode logic 44 may be co-located or distributed elsewhere in the system 10 without parting from the spirit and scope of the embodiments described herein. For example, the power management logic 42 could be disposed within the processor 12, so that the processor is able to manage its own power state transitions.
  • The chipset-external peripheral controller 13′ could include a Wi-Fi controller that issues a bus master request to write data to (or read data from) a cacheable portion of the system memory 18 while the processor 12 is in the ultra low power C5 state. In such a case, the non-snoop mode logic 44 can service the request associated with data path 40 d without the need to bring the processor 12 out of the C5 state. Similarly, the chipset-internal graphics controller 26 may issue a bus master request to write data to (or read data from) a cacheable portion of the system memory 18 over data path 40 b. Once again, the data transfer can be serviced without bringing the processor 12 out of the ultra low power state. In addition, the MCH 15 a could transfer data across data path 40 a and the ICH 15 b could transfer data across data path 40 c without disturbing the idle state of the processor 12. As a result of the ability of the processor 12 to remain in deeper idle states for longer periods of time, leakage current and overall power consumption can be reduced significantly.
  • Before placing the processor 12 in the non-snoopable idle state, the power management logic 42 may determine that the processor 12 has flushed the cache 20 to the system memory 18 by detecting a specific request. For example, the processor 12 could issue an input/output (I/O) request to read from a particular register (e.g., LVL5 register, not shown) within the ICH 15 b. Upon receiving such a read request, the power management logic 42 could initiate a transition of the processor 12 to the non-snoopable idle state.
  • In addition, the power management logic 42 could detect a wake-up event such as an unmasked system interrupt request and remove the processor 12 from the non-snoopable idle state in response to detecting the wake-up event. Unmasked system interrupt requests can be internal or external with respect to the chipset 11′, depending upon the circumstances. Once the processor 12 has exited the non-snoopable idle state, the chipset 11′ may exit the non-snoop mode and resume cache coherence operations with regard to the cache 20.
  • Turning now to FIG. 3 a method of power management is shown at 46. The method 46 may be implemented as non-snoop mode logic and/or power management logic in fixed functionality hardware, microcode, software, or any combination thereof. For example, a particular hardware implementation might involve the use of complementary metal oxide semiconductor (CMOS) technology, which is well established in the semiconductor industry. In particular, processing block 48 provides for determining that a processor has flushed an internal cache of the processor to a cacheable system memory. As already noted, one approach to making the determination at block 48 is to detect a specific I/O read request from the processor.
  • Block 50 provides for placing the processor in a non-snoopable idle state such as a C3 or deeper power state. One or more data transfers are serviced between the cacheable system memory and a controller at block 52 while the processor is in the non-snoopable idle state. In one embodiment, the servicing at block 52 is conducted by detecting a bus master request from the controller in question and moving data between the controller and the system memory based on the bus master request. Block 54 provides for detecting a wake-up event such as an unmasked system interrupt request, and block 56 provides for removing the processor from the non-snoopable idle state in response to detecting the wake-up event. One or more data transfer requests are handled in accordance with standard cache coherence protocol at block 58. Thus, snoops to the processor internal cache may be allowed.
  • Many of the principles described herein therefore provide for enhanced power savings, reduced temperatures and longer battery life by enabling a system microprocessor to remain in ultra low power states for longer periods of time. Such advantages represent a significant departure from conventional approaches and can be particularly beneficial in mobile platform environments.
  • Those skilled in the art can appreciate from the foregoing description that the broad techniques of the embodiments of the present invention can be implemented in a variety of forms. Therefore, while the embodiments of this invention have been described in connection with particular examples thereof, the true scope of the embodiments of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.

Claims (19)

1-27. (canceled)
28. A method comprising:
determining, by detecting a request, whether a processor has flushed an internal cache of the processor to a system memory prior to placing the processor in a non-snoopable idle state; and
in response to the request, placing the processor in the non-snoopable idle state, the processor being associated with the system memory of a computer system.
29. The method of claim 28, further comprising:
servicing a data transfer between the system memory and a controller while the processor is in the non-snoopable idle state; and
removing the processor from the non-snoopable idle state upon detecting a wake-up event.
30. The method of claim 28, wherein the request comprises an input/output read request from the processor to read from a particular register.
31. The method of claim 29, wherein servicing includes:
detecting a bus master request from a memory controller hub; and
moving data between the system memory and the memory controller hub based on the bus master request.
32. The method of claim 29, wherein the servicing includes:
detecting a bus master request from a peripheral controller; and
moving data between the system memory and the peripheral controller based on the bus master request.
33. The method of claim 29, wherein the servicing includes:
detecting a bus master request from an input/output controller hub; and
moving data between the system memory and the input/output controller hub based on the bus master request.
34. A apparatus comprising:
an integration circuit including:
a power management logic to
determine, by detecting a request, whether a processor has flushed an internal cache of the processor to a system memory prior to placing the processor in a non-snoopable idle state; and
in response to the request, place the processor in the non-snoopable idle state, the processor being associated with the system memory of a computer system; and
a non-snoop mode logic to service a data transfer between the system memory and a controller while the processor is in the non-snoopable idle state.
35. The apparatus of claim 34, wherein the power management logic is modified to:
service a data transfer between the system memory and a controller while the processor is in the non-snoopable idle state; and
remove the processor from the non-snoopable idle state upon detecting a wake-up event.
36. The apparatus of claim 34, wherein the request comprises an input/output read request from the processor to read from a particular register.
37. The apparatus of claim 35, wherein power management logic is further modified to:
detect a bus master request from a memory controller hub; and
move data between the system memory and the memory controller hub based on the bus master request.
38. The apparatus of claim 35, wherein power management logic is further modified to:
detect a bus master request from a peripheral controller; and
move data between the system memory and the peripheral controller based on the bus master request.
39. The apparatus of claim 35, wherein power management logic is further modified to:
detect a bus master request from an input/output controller hub; and
move data between the system memory and the input/output controller hub based on the bus master request.
40. A system comprising:
a computer system including a processor coupled with a system memory, the processor having
an input/output controller hub (ICH) having a power management logic to
determine, by detecting a request, whether a processor has flushed an internal cache of the processor to a system memory prior to placing the processor in a non-snoopable idle state; and
in response to the request, place the processor in the non-snoopable idle state, the processor being associated with the system memory of a computer system; and
a memory controller hub (MCH) coupled with the ICH, the MCH having a non-snoop mode logic to service a data transfer between the system memory and a controller while the processor is in the non-snoopable idle state.
41. The system of claim 40, wherein the power management logic is modified to:
service a data transfer between the system memory and a controller while the processor is in the non-snoopable idle state; and
remove the processor from the non-snoopable idle state upon detecting a wake-up event.
42. The system of claim 40, wherein the request comprises an input/output read request from the processor to read from a particular register.
43. The system of claim 41, wherein power management logic is further modified to:
detect a bus master request from a memory controller hub; and
move data between the system memory and the memory controller hub based on the bus master request.
44. The system of claim 41, wherein power management logic is further modified to:
detect a bus master request from a peripheral controller; and
move data between the system memory and the peripheral controller based on the bus master request.
45. The system of claim 41, wherein power management logic is further modified to:
detect a bus master request from an input/output controller hub; and
move data between the system memory and the input/output controller hub based on the bus master request.
US12/419,090 2005-03-05 2009-04-06 System And Method of Coherent Data Transfer During Processor Idle States Abandoned US20090193274A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/419,090 US20090193274A1 (en) 2005-03-05 2009-04-06 System And Method of Coherent Data Transfer During Processor Idle States

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/074,233 US7523327B2 (en) 2005-03-05 2005-03-05 System and method of coherent data transfer during processor idle states
US12/419,090 US20090193274A1 (en) 2005-03-05 2009-04-06 System And Method of Coherent Data Transfer During Processor Idle States

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/074,233 Continuation US7523327B2 (en) 2005-03-05 2005-03-05 System and method of coherent data transfer during processor idle states

Publications (1)

Publication Number Publication Date
US20090193274A1 true US20090193274A1 (en) 2009-07-30

Family

ID=36685768

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/074,233 Active 2026-06-24 US7523327B2 (en) 2005-03-05 2005-03-05 System and method of coherent data transfer during processor idle states
US12/419,090 Abandoned US20090193274A1 (en) 2005-03-05 2009-04-06 System And Method of Coherent Data Transfer During Processor Idle States

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/074,233 Active 2026-06-24 US7523327B2 (en) 2005-03-05 2005-03-05 System and method of coherent data transfer during processor idle states

Country Status (5)

Country Link
US (2) US7523327B2 (en)
CN (1) CN101137967B (en)
DE (1) DE112006000545B4 (en)
TW (1) TWI299826B (en)
WO (1) WO2007030133A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007494A1 (en) * 2011-06-30 2013-01-03 Alexander Branover Managing processor-state transitions
US20130097609A1 (en) * 2011-10-12 2013-04-18 Qualcomm Incorporated System and Method for Determining Thermal Management Policy From Leakage Current Measurement
CN104766117A (en) * 2014-01-07 2015-07-08 国民技术股份有限公司 Smart card and data processing method thereof

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523327B2 (en) * 2005-03-05 2009-04-21 Intel Corporation System and method of coherent data transfer during processor idle states
US7373534B2 (en) * 2005-06-23 2008-05-13 Intel Corporation Reducing storage data transfer interference with processor power management
US20070005907A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Reduction of snoop accesses
US7797495B1 (en) * 2005-08-04 2010-09-14 Advanced Micro Devices, Inc. Distributed directory cache
TWI307012B (en) * 2005-11-17 2009-03-01 Via Tech Inc Idle state adjusting method and logical chip and computer system using the same
JP2008090626A (en) * 2006-10-02 2008-04-17 Sony Corp Transfer device, transfer system, program and transfer method
US7991939B1 (en) * 2006-12-13 2011-08-02 Nvidia Corporation Dummy accesses to ensure CPU exits lower-power state
US20080162748A1 (en) * 2006-12-31 2008-07-03 Blaise Fanning Efficient power management techniques for computer systems
TWI461909B (en) * 2007-08-31 2014-11-21 Thomson Licensing Mass storage system with improved usage of buffer capacity
US7707364B2 (en) * 2007-09-10 2010-04-27 Intel Corporation Non-snoop read/write operations in a system supporting snooping
US8195887B2 (en) * 2009-01-21 2012-06-05 Globalfoundries Inc. Processor power management and method
US8352770B2 (en) 2009-09-25 2013-01-08 Intel Corporation Method, system and apparatus for low-power storage of processor context information
US8359436B2 (en) 2009-12-18 2013-01-22 Intel Corporation Core snoop handling during performance state and power state transitions in a distributed caching agent
CN101866328B (en) * 2010-04-01 2012-12-26 和记奥普泰通信技术有限公司 Automatically accessed serial bus read/write control method
CN104252221B (en) * 2013-06-28 2019-02-22 锐迪科(重庆)微电子科技有限公司 A kind of data-updating method and processor and system
US20150186278A1 (en) * 2013-12-26 2015-07-02 Sarathy Jayakumar Runtime persistence
US10540107B2 (en) * 2015-01-02 2020-01-21 Reservoir Labs, Inc. Systems and methods for energy proportional scheduling
US10067905B2 (en) * 2015-05-26 2018-09-04 Plasmability, Llc Digital interface for manufacturing equipment
US11119926B2 (en) 2017-12-18 2021-09-14 Advanced Micro Devices, Inc. Region based directory scheme to adapt to large cache sizes
US10705959B2 (en) 2018-08-31 2020-07-07 Advanced Micro Devices, Inc. Region based split-directory scheme to adapt to large cache sizes
US10922237B2 (en) 2018-09-12 2021-02-16 Advanced Micro Devices, Inc. Accelerating accesses to private regions in a region-based cache directory scheme

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020116554A1 (en) * 2000-12-27 2002-08-22 David Bormann Method and apparatus to directly access a peripheral device when central processor operations are suspended
US20020124125A1 (en) * 2000-12-29 2002-09-05 David Bormann Method and apparatus to permit a peripheral device to become the default system bus master
US20020124198A1 (en) * 2000-12-29 2002-09-05 David Bormann Computer peripheral device that remains operable when central processor operations are suspended
US6560712B1 (en) * 1999-11-16 2003-05-06 Motorola, Inc. Bus arbitration in low power system
US6658532B1 (en) * 1999-12-15 2003-12-02 Intel Corporation Cache flushing
US6795896B1 (en) * 2000-09-29 2004-09-21 Intel Corporation Methods and apparatuses for reducing leakage power consumption in a processor
US20050044448A1 (en) * 2003-08-20 2005-02-24 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US6971034B2 (en) * 2003-01-09 2005-11-29 Intel Corporation Power/performance optimized memory controller considering processor power states
US6976181B2 (en) * 2001-12-20 2005-12-13 Intel Corporation Method and apparatus for enabling a low power mode for a processor
US20060020835A1 (en) * 2004-07-26 2006-01-26 Samson Eric C Method and apparatus for dynamic DLL powerdown and memory self-refresh
US20070157036A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7523327B2 (en) * 2005-03-05 2009-04-21 Intel Corporation System and method of coherent data transfer during processor idle states

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3857661B2 (en) * 2003-03-13 2006-12-13 インターナショナル・ビジネス・マシーンズ・コーポレーション Information processing apparatus, program, and recording medium
KR20060081413A (en) * 2003-09-16 2006-07-12 코닌클리즈케 필립스 일렉트로닉스 엔.브이. Power saving operation of an apparatus with a cache memory

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560712B1 (en) * 1999-11-16 2003-05-06 Motorola, Inc. Bus arbitration in low power system
US6658532B1 (en) * 1999-12-15 2003-12-02 Intel Corporation Cache flushing
US6795896B1 (en) * 2000-09-29 2004-09-21 Intel Corporation Methods and apparatuses for reducing leakage power consumption in a processor
US20020116554A1 (en) * 2000-12-27 2002-08-22 David Bormann Method and apparatus to directly access a peripheral device when central processor operations are suspended
US6802018B2 (en) * 2000-12-27 2004-10-05 Intel Corporation Method and apparatus to directly access a peripheral device when central processor operations are suspended
US20020124198A1 (en) * 2000-12-29 2002-09-05 David Bormann Computer peripheral device that remains operable when central processor operations are suspended
US20020124125A1 (en) * 2000-12-29 2002-09-05 David Bormann Method and apparatus to permit a peripheral device to become the default system bus master
US6748548B2 (en) * 2000-12-29 2004-06-08 Intel Corporation Computer peripheral device that remains operable when central processor operations are suspended
US6976181B2 (en) * 2001-12-20 2005-12-13 Intel Corporation Method and apparatus for enabling a low power mode for a processor
US7225347B2 (en) * 2001-12-20 2007-05-29 Intel Corporation Method and apparatus for enabling a low power mode for a processor
US6971034B2 (en) * 2003-01-09 2005-11-29 Intel Corporation Power/performance optimized memory controller considering processor power states
US20050044448A1 (en) * 2003-08-20 2005-02-24 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US20060020835A1 (en) * 2004-07-26 2006-01-26 Samson Eric C Method and apparatus for dynamic DLL powerdown and memory self-refresh
US7523327B2 (en) * 2005-03-05 2009-04-21 Intel Corporation System and method of coherent data transfer during processor idle states
US20070157036A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Method and apparatus for a zero voltage processor sleep state

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007494A1 (en) * 2011-06-30 2013-01-03 Alexander Branover Managing processor-state transitions
US8966305B2 (en) * 2011-06-30 2015-02-24 Advanced Micro Devices, Inc. Managing processor-state transitions
US20130097609A1 (en) * 2011-10-12 2013-04-18 Qualcomm Incorporated System and Method for Determining Thermal Management Policy From Leakage Current Measurement
US8595520B2 (en) * 2011-10-12 2013-11-26 Qualcomm Incorporated System and method for determining thermal management policy from leakage current measurement
CN104766117A (en) * 2014-01-07 2015-07-08 国民技术股份有限公司 Smart card and data processing method thereof

Also Published As

Publication number Publication date
DE112006000545B4 (en) 2012-07-26
TW200705165A (en) 2007-02-01
US20060200690A1 (en) 2006-09-07
DE112006000545T5 (en) 2008-01-17
WO2007030133A1 (en) 2007-03-15
CN101137967A (en) 2008-03-05
TWI299826B (en) 2008-08-11
CN101137967B (en) 2010-12-22
US7523327B2 (en) 2009-04-21

Similar Documents

Publication Publication Date Title
US7523327B2 (en) System and method of coherent data transfer during processor idle states
US11287871B2 (en) Operating point management in multi-core architectures
US7529955B2 (en) Dynamic bus parking
US10409360B2 (en) Distribution of tasks among asymmetric processing elements
US9690353B2 (en) System and method for initiating a reduced power mode for one or more functional blocks of a processor based on various types of mode request
US20070043965A1 (en) Dynamic memory sizing for power reduction
US8707066B2 (en) Method and apparatus for a zero voltage processor sleep state
US5669003A (en) Method of monitoring system bus traffic by a CPU operating with reduced power
US20070156992A1 (en) Method and system for optimizing latency of dynamic memory sizing
US20090327609A1 (en) Performance based cache management
US20060053326A1 (en) Coordinating idle state transitions in multi-core processors
US20080195877A1 (en) Conserving power by reducing voltage supplied to an instruction-processing portion of a processor
US9329658B2 (en) Block-level sleep logic
US7373534B2 (en) Reducing storage data transfer interference with processor power management
GB2484204A (en) Power management of processor cache during processor sleep
US10073513B2 (en) Protected power management mode in a processor
US9360924B2 (en) Reduced power mode of a cache unit
US20160041595A1 (en) Controlling Reduced Power States Using Platform Latency Tolerance

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: NATIONAL TSING HUA UNIVERSITY, TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, RONG-SHUN;YANG, JHIH-SHUN;LIN, YU-CHING;AND OTHERS;SIGNING DATES FROM 20111205 TO 20120111;REEL/FRAME:027856/0699