WO2012096835A1 - Coordinating performance parameters in multiple circuits - Google Patents

Coordinating performance parameters in multiple circuits Download PDF

Info

Publication number
WO2012096835A1
WO2012096835A1 PCT/US2012/020440 US2012020440W WO2012096835A1 WO 2012096835 A1 WO2012096835 A1 WO 2012096835A1 US 2012020440 W US2012020440 W US 2012020440W WO 2012096835 A1 WO2012096835 A1 WO 2012096835A1
Authority
WO
WIPO (PCT)
Prior art keywords
performance
frequency
clock
domain
state
Prior art date
Application number
PCT/US2012/020440
Other languages
English (en)
French (fr)
Inventor
Erik P. Machnicki
Timothy J. Millet
Josh P. De Cesare
Original Assignee
Apple Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc. filed Critical Apple Inc.
Publication of WO2012096835A1 publication Critical patent/WO2012096835A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B67OPENING, CLOSING OR CLEANING BOTTLES, JARS OR SIMILAR CONTAINERS; LIQUID HANDLING
    • B67CCLEANING, FILLING WITH LIQUIDS OR SEMILIQUIDS, OR EMPTYING, OF BOTTLES, JARS, CANS, CASKS, BARRELS, OR SIMILAR CONTAINERS, NOT OTHERWISE PROVIDED FOR; FUNNELS
    • B67C11/00Funnels, e.g. for liquids
    • B67C11/02Funnels, e.g. for liquids without discharge valves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • This disclosure is related to the field of computer systems, and more particularly to systems and methods for coordinating performance parameters in multiple circuits.
  • power management is generally a critical requirement in the design of many electronic devices.
  • power management techniques can increase battery life and therefore the usefulness of the product.
  • managing power consumption can have numerous benefits. For example, in addition to lessening energy consumption, power management can reduce heat generated by a given device, which in turn ameliorates its cooling requirements.
  • the performance states of various components on the integrated circuit can be changed.
  • the clock frequencies of clocks used by the various components can be changed. Managing the changes over multiple components can be difficult to implement correctly.
  • systems and methods that may be employed in various environments, including, for example, in connection with computing devices that implement power management mechanisms.
  • systems and methods disclosed herein may be implemented in a system-on-a-chip (SoC) or application-specific integrated circuit (ASIC) such that several hardware components may be integrated within a single circuit.
  • SoC system-on-a-chip
  • ASIC application-specific integrated circuit
  • Examples of electronic devices suitable for using these systems and methods include, but are not limited to, desktop computers, laptop computers, tablets, network appliances, mobile phones, personal digital assistants (PDAs), e-book readers, televisions, video game consoles, etc.
  • a method may include receiving a request to change the state of circuit, component, or device, where the circuit has two or more performance domains. These two or more performance domains may include areas of the circuit, component, or device that may be configured to operate at different performance levels. The ability to switch between various performance levels or states may be provided by a power management mechanism. For example, when the device is in a first state, a first performance domain may operate with a first clock frequency or voltage, while a second performance domain operates with a second clock frequency or voltage. And when the device is in a second state, these performance domains may operate with modified frequencies or voltages. Other parameters of the performance domains may also be changed.
  • the method may include, for example, modifying the first frequency of a first clock serving the first performance domain to a first modified frequency, and modifying a second frequency of a second clock serving the second performance domain to a second modified frequency.
  • the second modified frequency may be independent from the first modified frequency.
  • the second modified frequency may be different from, and other than a multiple of, the first modified frequency.
  • the stage change request may include a value or indication that is written to a single register, and which may then be used look-up or otherwise derive configuration parameters used for switching the first and second frequencies to the first and second modified frequencies (or voltages), respectively.
  • the method may access a performance state table that is indexed by the indication and that includes configuration parameters used by a particular set of clock generators that provide clock signals to their corresponding performance domains.
  • a performance state table may include configuration parameters used by a particular set of voltage supplies that provide voltages to their corresponding performance domains.
  • the performance state table may include various other configuration parameters as well.
  • modifying a clock frequency may involve instructing a clock generator to reconfigure a clock input from a first input or source to a second input or source.
  • modifying the clock frequency may involve instructing a clock generator to reconfigure a clock divisor.
  • modifying a voltage may involve instructing a power supply circuit to switch to a different input or output.
  • a performance state table may also indicate the underlying instructions (e.g., a selected source, divisor value, etc.) that cause the clock generator or voltage supply circuit to change its mode of operation.
  • a performance state table may, in some cases, allow software to cause a particular circuit or performance domain to enter a desired performance state without the software having to provide and/or manage specific configuration parameters required to effect certain underlying changes.
  • the performance state table may store, for a given state of a device, various configuration parameters to place each of the device's performance domains or circuits within a suitable or desired state.
  • software may cause the entire device (or a subset thereof) to enter a given state at once, with a reduced number of commands.
  • a system-on-chip includes a processor and a logic circuit coupled to the processor.
  • the logic circuit is configured to derive a first frequency and a second frequency in response to a request to put the SoC in a given state, where the second frequency is independent from the first frequency.
  • the logic circuit is also configured to cause a first clock circuit serving a first domain of the SoC to provide the first clock at the first frequency, and to cause a second clock circuit serving a second domain of the SoC to provide the second clock at the second frequency.
  • a logic circuit includes a power management circuit configured to: receive a request to change a state of a device having a first performance domain and a second performance domain, cause a first parameter of a first circuit serving the first performance domain to be modified to a first modified parameter, and cause a second parameter of a second circuit serving a second performance domain to be modified to a second modified parameter.
  • the second modified parameter may be independent from the first modified parameter.
  • These parameters may be a clock frequency, a voltage, a combination thereof, and/or other parameters.
  • the logic circuit may also include one or more programmable registers coupled to the power management circuit and configured to enable one or more operations of the power management circuit.
  • FIG. 1 is a block diagram of a system according to certain embodiments.
  • FIG. 2 is a diagram of an implementation of a performance state table according to certain embodiments.
  • FIG. 3 is a flowchart representing a method for coordinating system parameters according to certain embodiments.
  • FIG. 4 is a diagram of a software environment according to certain embodiments.
  • FIG. 5 is a block diagram of a computer system according to certain embodiments.
  • circuits, or other components may be described as “configured to” perform a task or tasks.
  • “configured to” is a broad recitation of structure generally meaning “having circuitry that" performs the task or tasks during operation.
  • the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on.
  • the circuitry that forms the structure corresponding to "configured to” may include hardware circuits.
  • various units/circuits/components may be described as performing a task or tasks, for convenience in the description.
  • a power management unit or circuit may be provided within an electronic device.
  • the electronic device may be, for example, a desktop computer, a laptop computer, a tablet, a network appliance (e.g., gateway, router, access point, etc.), a mobile phone, a personal digital assistant (PDA), an e-book reader, a television, a video game console, or any other suitable electronic device.
  • the device may also include other circuits or subsystems such as, for example, processors, peripherals, controllers, etc.
  • two or more of these circuits (or groups of circuits) may constitute different performance domains that are capable of operating at varying performance levels.
  • the power management unit may perform methods for coordinating system parameters in multiple performance domains.
  • the power management unit may include a performance state table having multiple entries. Each entry may specify configuration parameters for two or more performance domains.
  • a register or registers may be programmed to point to one of the entries in the table, and the power manager may cause the performance domains to operate at the performance states specified in the selected entry.
  • FIG. 1 a block diagram of a system is shown according to certain embodiments.
  • the system includes an integrated circuit (IC) 100 forming a system-on-a-chip (SoC) or application-specific integrated circuit (ASIC) coupled to power supply 1 10.
  • Integrated circuit 100 includes a set of performance domains 120A-F.
  • Each performance domain 120A-F includes at least one subsystem, circuit, or component, and a given performance domain may include more than one component.
  • performance domain 120A includes two components— processor 160A and another component 170 (e.g., a coherency controller, or the like)— and performance domain 120D may include two or more networking or other peripherals 160D.
  • performance domain 120B includes graphics subsystem 160B
  • performance domain 120C includes audio subsystem 160C
  • performance domain 120E includes memory control circuit 160E
  • performance domain 120F includes optional second processor 160F.
  • Integrated circuit 100 also includes power management unit (PMU) 140, which in turn includes one or more performance configuration registers 150.
  • PMU 140 is coupled to clock and/or voltage control unit (control unit) 130, which in turn is coupled to power supply 1 10.
  • Components within integrated circuit 100 may be coupled to each other using any suitable bus and/or interface mechanism.
  • PMU 140 and control unit 130 may also be coupled to performance domains 120A-F in addition to being coupled to their respective interfaces.
  • the control unit 130 may supply clock signals to one or more of performance domains 120A-F.
  • control unit 130 may interact with power supply 1 10 to request that one or more supply voltages be supplied to one or more of performance domains 120A-F.
  • power supply 1 10 may be a battery or the like.
  • PMU 140 may be configured to control transitions between performance states for the various performance domains 120A-F.
  • the PMU 140 may be configured to automatically transition one or more of performance domains 120A-F to different performance states.
  • Each entry in a performance state table in the PMU 140 may be programmed with a combination of performance states for various performance domains, and software may write a register or registers to select one of the entries.
  • the PMU 140 may be configured to coordinate the transition of the performance domains to the performance states indicated in the selected entry.
  • a performance domain may be a set of components controlled by PMU 140 as a unit for performance configuration purposes. That is, PMU 140 may be configured to establish a corresponding performance state for each performance domain, and may be configured to control transitions between performance states in each performance domain. As such, components that form a performance domain may transition together from one performance state to another performance state. In other embodiments, components in different performance domains may be independent of each other, at least from the standpoint of hardware, and may have independently-determined performance states. Some performance domains may be logically linked at a higher level (e.g., in software).
  • domains 120C and 120D may be logically linked in terms of their performance states if a user is watching a video that includes sound (thus simultaneously using graphics subsystem 160B to display video images and audio subsystem 160C to reproduce the accompanying sound).
  • a given performance state may include any combination of configuration parameters for the components in a corresponding performance domain.
  • a configuration parameter may be any selectable setting for a component that affects the performance of that component. For example, the operating frequency of a clock signal provided to a component or performance domain may affect its performance and is thus considered a configuration parameter because, for instance, a lower operating frequency may result in lower performance (and also less power consumption).
  • a supply voltage provided to a performance domain may affect its performance and may also be a configuration parameter.
  • configuration parameters may be component-specific. Examples of such configuration parameters include, but are not limited to, cache sizes in various caches, a data width or other data transfer rate parameter of an interface, a number of symmetrical units that are active among units that operate in parallel (e.g., execution units in a processor, pixel pipelines or other image processing pipelines in a graphics unit, etc.), a number of instructions, operations, communications, and/or memory requests processed per unit of time, a graphics resolution or size of a color palette, an audio resolution and sampling rates, memory bandwidth, the sleep/wake state of a processor, etc.
  • the power and/or clock enables may be configuration parameters.
  • a configuration parameter may include one or more registers that provide information to a memory controller (e.g., 160E) of which performance state one or more performance domains are in.
  • a memory controller e.g. 160E
  • any parameter that may be changed and that may affect operation or performance of a component or performance domain may be considered a configuration parameter in various embodiments.
  • Changing the performance state in a performance domain may affect the power consumption of the performance domain. For example, reducing operating frequency and/or supply voltage typically have direct effects on power consumption. Reducing cache size may reduce power consumption because a portion of the cache may not need to be accessed, and even more reduction may be realized if the unused portion may be turned off. Furthermore, reducing cache size may reduce cache hit rates, which may increase memory latency to the consumer. Increased memory latency may reduce activity in the consumer, reducing power consumption. Reducing data transfer widths/rates on interfaces may reduce power consumption through reduced switching. Additionally, reducing the rate at which data is supplied to a consumer may reduce activity in the consumer, which may reduce power consumption in the consumer.
  • Reducing parallel activity in symmetrical units may reduce power consumption through reduced activity.
  • Reducing graphics/audio resolution and color palette may reduce the amount of data transferred per image or unit of sound.
  • reducing memory bandwidth may reduce power consumption in accessing the memory per unit time, and may reduce activity in the consumer.
  • PMU 140 may be a logic circuit or the like.
  • PMU 140 may comprise standard electronic components such as bipolar junction transistors (BJTs), field-effect transistors (FETs), other types of transistors, logic gates, operational amplifiers (op amps), flip-flops, capacitors, diodes, resistors, and the like.
  • Configuration registers 150 may be programmed to store settings used by PMU 140 to implement particular functions and/or to enter specified modes of operation.
  • PMU 140 may include circuitry configured to cause the performance state transitions to occur in performance domains 120A-F.
  • software may explicitly communicate the desired performance state changes to the PMU 140 (e.g. in the form of an indication that selects a performance state table entry).
  • the PMU 140 may access the selected entry, and may be configured to establish the desired performance states specified in the selected entry.
  • PMU 140 may communicate new voltage and/or frequency settings to the control unit 130.
  • Control unit 130 may implement these new settings, generate the clocks at the requested frequencies and/or request the desired supply voltages from the power supply 110.
  • Control unit 130 may order the modifications, if necessary, to safely make the transitions. For example, if both the clock frequency and supply voltage are being increased in any particular performance domain, it may be safer to increase the voltage first, and then increase the clock frequency because the increased clock frequency may lead to incorrect operation if circuitry is operating more slowly at the current (lower) supply voltage.
  • the amount of time that elapses in a supply voltage change may be substantially greater than the time to change the clock frequency.
  • Control unit 130 may include circuitry to communicate with power supply 1 10 to request the desired supply voltages, and it may also include dynamic clock generation circuitry.
  • control unit 130 may include one or more phase locked loops (PLLs), multiplexers, clock dividers/multipliers, etc. to dynamically generate clock signals for the various components or performance domains of integrated circuit 100.
  • PLLs phase locked loops
  • one or more oscillators drive one or more PLLs, which then generate the base clocks for major portions of integrated circuit 100.
  • the PLL outputs drive a number of dynamic clock generators, which serve to generate individual clocks for the various regions or performance domains of the chip.
  • Each clock generator or circuit may include a multiplexer and/or a divider coupled to the multiplexer.
  • the multiplexer may allow selection of a particular clock signal at the input of the generator, and the divider may further reduce (or increase) the frequency of the selected signal to obtain a desired frequency.
  • certain generators may comprise only a multiplexer, and others may comprise only a divider.
  • each generator may be enabled and disabled independently, and may operate in a glitch-free manner or "on-the-fly.” In some cases, to facilitate glitch-free operation, a given generator may require that sources being switched to and from both be running (or active) before the selection is made.
  • processors 160A and/or 160F may implement any instruction set architecture, and may be configured to execute instructions defined in that instruction set architecture. Any micro-architectural implementation may be used (e.g., in order, out of order, speculative, non-speculative, scalar, superscalar, pipelined, super-pipelined, etc.). Micro-coding techniques may be used in some embodiments, in combination with any of the foregoing.
  • Graphics unit or subsystem 160B may include circuitry involved in the display of images on a display device.
  • the produced images may be static images, or may be part of a video.
  • Graphics unit 160B may include rendering hardware, refresh (of the display device) hardware, video encoders and/or decoders, video compression and decompression units, etc.
  • Audio unit or subsystem 160C may include circuitry involved in the playing or recording of sounds in the system. Audio unit 160C may include, for example, audio encoders and/or decoders, digital signal processors, etc.
  • Networking peripherals and other peripherals 160D may include a variety of circuitry.
  • networking peripherals may include a media access controller (MAC) unit for the supported network, as well as physical layer circuitry.
  • Other peripherals may include any other desired peripherals, and/or peripheral interface controllers configured to control off-chip peripheral interfaces such as Peripheral Component Interconnect (PCI), PCI express (PCIe), firewire, Universal Serial Bus (USB), etc.
  • PCI Peripheral Component Interconnect
  • PCIe PCI express
  • USB Universal Serial Bus
  • Memory controller 160E may be configured to access memory devices such as dynamic random access memory devices (DRAM), synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, DDR4, etc.) SDRAM, low power DDR (LPDDR2, etc.) SDRAM, RAMBUS DRAM (RDRAM), etc.
  • memory controller 160E may be configured to interface to one or more memory modules (e.g., single inline memory modules (SIMMs), dual inline memory modules (DIMMs), etc.) that include one or more of the memories.
  • memory controller 160E may be configured to communicate on the memory interfaces, to queue memory requests from other components in integrated circuit 100, and/or to communicate with the other components to fulfill memory read and write operations.
  • FIG. 1 While the embodiment of integrated circuit 100 shown in FIG. 1 includes numerous performance domains, more or fewer performance domains may be supported. Any combination of performance domains and components included in those domains may be implemented in various embodiments.
  • integrated circuit 100 may include other combinations of components, including any subset the illustrated components with or without other components, supersets with other components, etc. Additionally, while the illustrated embodiment illustrates the components 160A-F and 170 all included in the integrated circuit 100, other embodiments may implement the components as two or more integrated circuits. Additionally or alternatively, at least portions of power supply 1 10 may be included within integrated circuit 100. In fact, any suitable level of integration or discrete components may be used.
  • PMU 140 may be configured to control transitions between performance states for the various performance domains 120A-F.
  • a request to switch from a given performance state to another includes a value or indication that is written to one or more registers, and which may then be used by PMU 140 to look-up or otherwise derive configuration parameters for entering the desired performance state.
  • the method may access a performance state table that is indexed by the value written to the register(s) and includes configuration parameters used by a particular set of clock generators that provide clock signals to their corresponding performance domains.
  • a performance state table includes configuration parameters used by a particular set of voltage supplies that provide voltages to their corresponding performance domains. The performance state table may further include various other configuration parameters as discussed above.
  • n states are available in the performance state table (i.e. there are n entries in the table), then a possible performance state table may be configured as follows:
  • the software may write a pointer to the corresponding entry (1 to n) in the performance state table to configuration register 150 of PMU 140.
  • the PMU 140 may read the selected entry and communicate selected clock frequencies and/or voltages to the control unit 130.
  • the control unit 130 may then coordinate changes to the various frequencies and/or voltages of each domain without further intervention and/or management by software.
  • different portions of integrated circuit 100 may alternate between their various different states with a single command or register write.
  • each performance domain may have its parameters changed independently. For example, in the case of clock frequencies, the frequencies in each frequency domain for any given state may be different from each other, and may be other than a multiple of each other. As noted before, configuration parameters other than clock frequency and voltage may populate the table in other embodiments. Additionally, an embodiment in which only clock frequencies are included in the table is contemplated. [0042] In some embodiments, each entry of the performance state table may be an actual configuration parameter— e.g., f 2j3 may be a clock frequency, V 2 , 3 may be a voltage magnitude, etc.
  • each entry in the performance state table may contain one or more underlying settings that a circuit ⁇ e.g., control unit 130) may use in order to provide the desired configuration.
  • a circuit e.g., control unit 130
  • f 2j3 may include source selection and divider settings usable by the clock generator to provide the desired frequency to performance domain 2.
  • configuration registers 150 include one or more performance state registers 210 and one or more state registers 220, as well as a plurality of registers 230-250 containing configuration parameters (1 though n) of various performance domains (1 through m) for each programmable state. Although shown as separate components, in other embodiments two or more of registers 210-250 may be combined.
  • Performance state registers 210 may control which of registers 230-250 (and thus which performance state) is currently active. For purposes of illustration, consider a scenario where software desires to set the operation of integrated circuit 100 to state 2. The software may write the value corresponding to state 2 to into performance state register 210, and PMU 140 may then select parameters P lj2 , ... P m,2 from register 240. Each of parameters P lj2 through P m,2 may correspond to a configuration parameter of a respective performance domain 1 through m. As noted before, parameters P lj2 , ... P m,2 may be clock frequencies, voltage magnitudes, or the like. Additionally or alternatively, any given parameter may include settings suitable for instructing the circuit providing the clock frequency, voltage, etc. to a respective performance domain. In any event, PMU 140 may provide the identified parameters to control unit 130, which may then implement the changes in hardware (e.g., switch a multiplexer, etc.).
  • hardware e.g., switch a multiplexer, etc.
  • each of registers 230-250 may contain parameters for each state of a single performance domain (to the exclusion of other performance domains).
  • Pi,i within register 230 may represent a configuration parameter for state 1 of performance domain 1
  • P lj2 may be a configuration parameter for state 2 of that same performance domain— i.e., performance domain 1— and so on.
  • register 240 may contain all configuration parameters for each state of performance domain 2
  • register 250 may contain all configuration parameters for each state of performance domain n.
  • performance state register 210 may identify each entry of each within registers 230- 250 for each performance domain that corresponds to a requested performance state, and provide those configuration parameters to control unit 130.
  • Configuration registers 150 may also include status register(s) 220.
  • each dynamic clock generator within control unit 130 may include a register that shows a "pending" value during a change in its configuration, and this same value may be copied to state register 220. In some embodiments, this allows PMU 140 or software to wait for all changes due to a change in performance state register 210 to take effect by polling on a single register— i.e., state register 220. In an alternative embodiment, performance state register 210 may be changed without waiting for all the pending bits of status register 220 to clear. Control unit 130 ensures that the final clock configuration matches the last performance state register 210 value written, but the dynamic clock generators may be in intermediate configurations for some time.
  • method 300 may be performed by PMU 140 of FIG. 1.
  • PMU 140 receives a request to change a state in one or more performance domains 120A-F of integrated circuit 100. The request may be determined based on the value of performance state register 210 of configuration registers 150 within PMU 140.
  • PMU 140 may determine whether both the original and newly selected clock inputs are running or active. If so, then at 340 PMU 140 may identify the parameters corresponding to the newly requested state from a state performance table.
  • PMU 140 may then provide those parameters to control circuit 130 at 350, which may in turn implement hardware changes corresponding to the newly requested state. Otherwise, at 330 PMU 140 may request that control unit 130 activate both inputs before effecting the new state selection. In alternative embodiments, other suitable conditions may be checked at 320 prior to effecting a state change. For example, in the case of a voltage change, PMU 140 may determine at 320 whether a battery has a minimum amount of change, whether the portable device is "plugged in,” etc.
  • FIG. 4 a diagram of a software environment is shown according to certain embodiments.
  • operation of PMU 140 may be effected though PMU driver 140, which receives commands from a user and/or through other software 410-450.
  • software environment 400 may include one or more application programs, an operating system, or the like ("software") 410.
  • Software 410 may interact with various drivers when using components of the system.
  • graphics driver 420 may be used to control graphics subsystem 160B
  • audio driver 430 may be used to control audio subsystem 160C
  • network driver 440 may be used for networking peripheral 160D
  • other peripheral drivers 450 may be used for other peripherals.
  • PMU driver 460 may be used to interact with PMU 140. Accordingly, if software 410 communicates with the graphics subsystem 160B, for example, it calls graphics driver 420 and so on. As such, each of drivers 420-460 may communicate with its corresponding components.
  • each of drivers 420-450 may communicate with PMU driver 460.
  • PMU driver 460 may monitor the activity in the components driven by the drivers 420-450 in a device activity table or the like. The monitored activities may include enabling and disabling the corresponding components. The monitored activities may further include changes to other performance characteristics of a particular unit. In some embodiments, based on the activities being monitored, the PMU driver 460 may select the performance state for each performance domain to be used in the various performance states. Additionally, other information may be coded into the device activity table (e.g., performance needs of various components when the processor is in the sleep state) which may affect the selected performance states as well.
  • software 410 may also directly communicate with PMU driver 460.
  • software 410 may also change performance states directly based on the activity in the system as a whole. That is, even if a processor is not going to the sleep state, for example, changes in the performance state of one or more performance domains may be desirable. Hence, software 410 may directly request such changes.
  • a computer accessible storage medium may incorporate embodiments of the systems and methods described herein.
  • system 500 includes at least one instance of integrated circuit 520.
  • integrated circuit 520 may include one or more instances of elements within integrated circuit 100 of FIG. 1.
  • integrated circuit 520 may be a system-on-chip (SoC) or application specific integrated circuit (ASIC) including various additional circuitry such as memory controllers, video and/or audio processing circuitries, on-chip peripherals and/or peripheral interfaces to couple to off-chip peripherals, etc.
  • SoC system-on-chip
  • ASIC application specific integrated circuit
  • Integrated circuit 520 is coupled to one or more peripherals 540 and external memory 530.
  • Power supply 510 shown as 1 10 in FIG.
  • Peripherals 540 may include any desired circuitry, depending on the type of system 500.
  • system 500 may be a mobile device (e.g., personal digital assistant (PDA), smart phone, etc.) and peripherals 540 may include devices for various types of wireless communication, such as Wi-fi, Bluetooth, cellular, global positioning system, etc.
  • Peripherals 540 may also include additional storage, including RAM storage, solid state storage, or disk storage.
  • Peripherals 540 may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc.
  • system 500 may be any type of computing system (e.g., desktop and laptop computers, tablets, network appliances, mobile phones, personal digital assistants, e-book readers, televisions, and game consoles).
  • External memory 530 may include any type of memory.
  • external memory 530 may include SRAM, nonvolatile RAM (NVRAM, such as "flash” memory), dynamic RAM (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, etc.) SDRAM, RAMBUS DRAM, etc., and/or any type of tangible memory.
  • External memory 530 may include one or more memory modules to which the memory devices are mounted, such as single inline memory modules (SIMMs), dual inline memory modules (DIMMs), etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
PCT/US2012/020440 2011-01-14 2012-01-06 Coordinating performance parameters in multiple circuits WO2012096835A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/006,967 US8468373B2 (en) 2011-01-14 2011-01-14 Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US13/006,967 2011-01-14

Publications (1)

Publication Number Publication Date
WO2012096835A1 true WO2012096835A1 (en) 2012-07-19

Family

ID=45655136

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/020440 WO2012096835A1 (en) 2011-01-14 2012-01-06 Coordinating performance parameters in multiple circuits

Country Status (7)

Country Link
US (1) US8468373B2 (ja)
EP (1) EP2477090A3 (ja)
JP (1) JP2012150815A (ja)
KR (1) KR101324885B1 (ja)
CN (1) CN102692991B (ja)
TW (1) TWI463302B (ja)
WO (1) WO2012096835A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271812B2 (en) 2010-04-07 2012-09-18 Apple Inc. Hardware automatic performance state transitions in system on processor sleep and wake events
US8924752B1 (en) 2011-04-20 2014-12-30 Apple Inc. Power management for a graphics processing unit or other circuit
CN103959196A (zh) * 2011-11-21 2014-07-30 英特尔公司 用于性能改善的可重配置图形处理器
US9390461B1 (en) * 2012-05-08 2016-07-12 Apple Inc. Graphics hardware mode controls
US8786332B1 (en) 2013-01-17 2014-07-22 Apple Inc. Reset extender for divided clock domains
US9110592B2 (en) * 2013-02-04 2015-08-18 Microsoft Technology Licensing, Llc Dynamic allocation of heterogenous memory in a computing system
JP6092649B2 (ja) * 2013-02-15 2017-03-08 キヤノン株式会社 演算装置、アレイ型演算装置およびその制御方法、情報処理システム
US10242652B2 (en) * 2013-06-13 2019-03-26 Intel Corporation Reconfigurable graphics processor for performance improvement
US9946823B2 (en) * 2013-08-12 2018-04-17 Mentor Graphics Corporation Dynamic control of design clock generation in emulation
GB201314938D0 (en) 2013-08-21 2013-10-02 Advanced Risc Mach Ltd Communication between voltage domains
US9471132B2 (en) * 2013-09-27 2016-10-18 Intel Corporation Techniques for putting platform subsystems into a lower power state in parallel
CN103593036B (zh) * 2013-11-05 2016-05-11 三星半导体(中国)研究开发有限公司 动态调整电压/时钟频率的片上系统
US10523207B2 (en) 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
US10372184B2 (en) * 2016-06-28 2019-08-06 Renesas Electronics America Inc. Method and apparatus for implementing power modes in microcontrollers using power profiles
JP2018106591A (ja) * 2016-12-28 2018-07-05 ルネサスエレクトロニクス株式会社 半導体装置、動作制御方法、及びプログラム
US10423209B2 (en) 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
US10642781B2 (en) * 2017-04-07 2020-05-05 Qualcomm Incorporated Boot time determination of calibration parameters for a component coupled to a system-on-chip
CN115048214A (zh) * 2018-06-06 2022-09-13 北京嘉楠捷思信息技术有限公司 计算设备的芯片调频方法、装置、算力板、计算设备及存储介质
US10778235B2 (en) * 2018-10-28 2020-09-15 Nuvoton Technology Corporation Intermittent tuning of an oscillator
US11514551B2 (en) 2020-09-25 2022-11-29 Intel Corporation Configuration profiles for graphics processing unit

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344132A (en) * 1979-12-14 1982-08-10 International Business Machines Corporation Serial storage interface apparatus for coupling a serial storage mechanism to a data processor input/output bus
US6247082B1 (en) * 1998-11-03 2001-06-12 3Com Corporation Method and circuit for providing handshaking to transact information across multiple clock domains
US20050024105A1 (en) * 2003-07-29 2005-02-03 Lattice Semiconductor Corporation Clock generator with skew control
US20070156370A1 (en) * 2006-01-03 2007-07-05 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US20080094109A1 (en) * 2004-05-18 2008-04-24 Ramin Farjad-Rad Wide-range multi-phase clock generator
US7475320B2 (en) * 2003-08-19 2009-01-06 International Business Machines Corporation Frequency modification techniques that adjust an operating frequency to compensate for aging electronic components
US20090144578A1 (en) * 2007-11-30 2009-06-04 Fujitsu Microelectronics Limited Power management unit and systems lsi having the power management unit
US20100023792A1 (en) * 2008-07-28 2010-01-28 Seiko Epson Corporation Signal synchronization method and signal synchronization circuit

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3313795A (en) 1994-10-14 1996-04-26 Compaq Computer Corporation Circuit for placing a cache memory into low power mode in response to special bus cycles
EP0855718A1 (en) 1997-01-28 1998-07-29 Hewlett-Packard Company Memory low power mode control
US6535798B1 (en) 1998-12-03 2003-03-18 Intel Corporation Thermal management in a system
US6510525B1 (en) 1999-04-26 2003-01-21 Mediaq, Inc. Method and apparatus to power up an integrated device from a low power state
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
JP2001238190A (ja) 2000-02-25 2001-08-31 Canon Inc 画像処理装置及びその制御処理方法
US6665802B1 (en) 2000-02-29 2003-12-16 Infineon Technologies North America Corp. Power management and control for a microcontroller
JP2002366351A (ja) * 2001-06-06 2002-12-20 Nec Corp スーパースカラ・プロセッサ
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
JP4050027B2 (ja) 2001-09-28 2008-02-20 株式会社日立製作所 情報処理装置及び情報処理装置の制御方法
JP4360938B2 (ja) 2003-03-18 2009-11-11 パナソニック株式会社 プロセッサ及びその駆動方法並びに電子情報処理機器
US7369815B2 (en) 2003-09-19 2008-05-06 Qualcomm Incorporated Power collapse for a wireless terminal
JP4549652B2 (ja) * 2003-10-27 2010-09-22 パナソニック株式会社 プロセッサシステム
US7337335B2 (en) 2004-12-21 2008-02-26 Packet Digital Method and apparatus for on-demand power management
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
JP2006318380A (ja) 2005-05-16 2006-11-24 Handotai Rikougaku Kenkyu Center:Kk 回路システム
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
US7689838B2 (en) 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
US7590473B2 (en) 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor
US7624291B2 (en) 2006-03-31 2009-11-24 Intel Corporation Power optimized multi-mode voltage regulator
US7949887B2 (en) * 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7917784B2 (en) 2007-01-07 2011-03-29 Apple Inc. Methods and systems for power management in a data processing system
US7737752B2 (en) * 2007-05-17 2010-06-15 Globalfoundries Inc Techniques for integrated circuit clock management
US8645740B2 (en) 2007-06-08 2014-02-04 Apple Inc. Methods and systems to dynamically manage performance states in a data processing system
US7711864B2 (en) 2007-08-31 2010-05-04 Apple Inc. Methods and systems to dynamically manage performance states in a data processing system
US20090204835A1 (en) 2008-02-11 2009-08-13 Nvidia Corporation Use methods for power optimization using an integrated circuit having power domains and partitions
US20090204837A1 (en) 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
US8219993B2 (en) * 2008-02-27 2012-07-10 Oracle America, Inc. Frequency scaling of processing unit based on aggregate thread CPI metric
US8020017B2 (en) 2008-08-15 2011-09-13 Freescale Semiconductor, Inc. Management of power domains in an integrated circuit
TWI401558B (zh) * 2008-12-22 2013-07-11 Tatung Co 頻率調整方法及使用此方法的電子裝置、電腦程式產品與電腦可讀取儲存媒體
US20100325451A1 (en) * 2009-06-22 2010-12-23 Chung-Hsing Chang Power-saving trigger-type control device for dynamically and instantly varying frequency and method thereof
GB2472050B (en) 2009-07-22 2013-06-19 Wolfson Microelectronics Plc Power management apparatus and methods
US8352770B2 (en) 2009-09-25 2013-01-08 Intel Corporation Method, system and apparatus for low-power storage of processor context information

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344132A (en) * 1979-12-14 1982-08-10 International Business Machines Corporation Serial storage interface apparatus for coupling a serial storage mechanism to a data processor input/output bus
US4344132B1 (ja) * 1979-12-14 1984-03-27
US6247082B1 (en) * 1998-11-03 2001-06-12 3Com Corporation Method and circuit for providing handshaking to transact information across multiple clock domains
US20050024105A1 (en) * 2003-07-29 2005-02-03 Lattice Semiconductor Corporation Clock generator with skew control
US7475320B2 (en) * 2003-08-19 2009-01-06 International Business Machines Corporation Frequency modification techniques that adjust an operating frequency to compensate for aging electronic components
US20080094109A1 (en) * 2004-05-18 2008-04-24 Ramin Farjad-Rad Wide-range multi-phase clock generator
US20070156370A1 (en) * 2006-01-03 2007-07-05 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US20090144578A1 (en) * 2007-11-30 2009-06-04 Fujitsu Microelectronics Limited Power management unit and systems lsi having the power management unit
US20100023792A1 (en) * 2008-07-28 2010-01-28 Seiko Epson Corporation Signal synchronization method and signal synchronization circuit

Also Published As

Publication number Publication date
US20120185703A1 (en) 2012-07-19
EP2477090A3 (en) 2013-12-11
US8468373B2 (en) 2013-06-18
JP2012150815A (ja) 2012-08-09
KR20120082836A (ko) 2012-07-24
CN102692991B (zh) 2015-02-04
KR101324885B1 (ko) 2013-11-01
TWI463302B (zh) 2014-12-01
CN102692991A (zh) 2012-09-26
EP2477090A2 (en) 2012-07-18
TW201234169A (en) 2012-08-16

Similar Documents

Publication Publication Date Title
US8468373B2 (en) Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8959369B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
US8560869B2 (en) Dynamic power reduction
US8769332B2 (en) Regional clock gating and dithering
KR20150063543A (ko) 프로세서의 구성가능한 피크 성능 제한들의 제어
US10410688B2 (en) Managing power state in one power domain based on power states in another power domain
JP5946251B2 (ja) 半導体装置およびシステム
US20200285406A1 (en) Filtering memory calibration
AU2018295010B2 (en) System and method for dynamic buffer sizing in a computing device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12734205

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12734205

Country of ref document: EP

Kind code of ref document: A1