WO2012087566A2 - Method, apparatus and system to save processor state for efficient transition between processor power states - Google Patents

Method, apparatus and system to save processor state for efficient transition between processor power states Download PDF

Info

Publication number
WO2012087566A2
WO2012087566A2 PCT/US2011/063485 US2011063485W WO2012087566A2 WO 2012087566 A2 WO2012087566 A2 WO 2012087566A2 US 2011063485 W US2011063485 W US 2011063485W WO 2012087566 A2 WO2012087566 A2 WO 2012087566A2
Authority
WO
WIPO (PCT)
Prior art keywords
processor
task
state
task switch
switch
Prior art date
Application number
PCT/US2011/063485
Other languages
French (fr)
Other versions
WO2012087566A3 (en
Inventor
Rajeev Muralidhar
Harinarayanan Seshadri
Bruce Fleming
Vishwesh RUDRAMUNI
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to CN201180002799.2A priority Critical patent/CN103098019B/en
Publication of WO2012087566A2 publication Critical patent/WO2012087566A2/en
Publication of WO2012087566A3 publication Critical patent/WO2012087566A3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation
    • 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

  • Embodiments generally relate to techniques for power management in a computer platform. More particularly, certain embodiments provide a method for saving or retrieving state of a processor in support of transitioning a computer platform between processor power states.
  • Improvements in integrated circuit (IC) fabrication and in other aspects of computer device manufacturing have allowed for smaller and/or more densely integrated platform architectures.
  • the circuitry in such platforms is generally trending toward increasing
  • Existing computer platforms variously include one or more features for managing the distribution of power to, or use of power by, processors of such platforms.
  • such features may variously implement a processor idle state, for example, in response to a user- initiated platform suspend, or hibernate, request.
  • a platform To support a processor idle power state such as the C6 power state, a platform must assure that state information of the processor is not lost during a period of time when the processor is in that processor idle power state.
  • processors variously include dedicated hardware for either offloading processor state to differently-powered areas on-chip or for continuously maintaining processor state in a specialized power domain which is separate from another, general power domain of the processor.
  • FIG. 1 is a block diagram illustrating select elements of a system according to an embodiment for providing access to processor state information.
  • FIG. 2 is a block diagram illustrating select elements of an executing operating system and hardware of a system for providing access to processor state information according to an embodiment.
  • FIG. 3 is a block diagram illustrating select elements of a task state segment for storing processor state information according to an embodiment.
  • FIG. 4 is a flow diagram illustrating select elements of an algorithm for providing access to processor state information according to an embodiment.
  • Embodiments variously provide access to processor state for the purpose of transitioning a processor between processor power states.
  • Various embodiments may be implemented on a computer platform configured to execute an operating system (OS) - for example, with a processor and a memory of the platform.
  • the processor of the platform may lack dedicated circuitry capable of independently maintaining some or all processor state for later retrieval and/or use - e.g. for when the processor returns from the processor idle to a higher power, operative processor state.
  • OS operating system
  • various embodiments are not limited in this regard.
  • processor state information refers to information describing a status of processing by one or more processors at a particular time - e.g. data cached or otherwise stored by the processor, a current (or next) instruction to be executed, a condition of a stack, parameters to determine exception handling, error handling, etc. or information that otherwise determines how processing is being performed and/or is to be performed by the processor at a particular point.
  • Providing access to processor state may include, for example, providing processor state for storage outside of the processor, e.g. in preparation for the processor transitioning to a processor idle state.
  • providing access to processor state may include making the processor state available for loading into the processor, e.g. in preparation for transitioning from a processor idle state to a higher power operative processor state.
  • an OS may initiate a transition to (or from) a processor idle power state.
  • an OS which is executing on that processor may trigger the processor to perform a task switch.
  • the task switch may save some or all state of the processor to a task switch repository - e.g. a data structure in memory which is otherwise available to the OS for general-purpose task switches during normal runtime execution of the OS.
  • a location of the task switch repository in memory an arrangement of data in the task switch repository and/or a referencing to the task switch repository by other platform data may be compatible with use by x86 architectures of Intel Corporation, Santa Clara, California.
  • the task switch repository may include a task state segment (TSS).
  • TSS task state segment
  • a task switch may save to the TSS one or more of segment register state, control register state, EFLAG register state, EIP register state and segment selector state.
  • the task switch may include switching the processor away from executing a task of an application which is running on the OS.
  • the task switch may, for example, be performed without the application receiving any indication of a need to freeze an operation for the power state transition.
  • the OS initiating a task switch for a processor power state transition may, for example, include switching the processor in question from executing a task in an OS context to executing a power management task in another context.
  • the processor may switch to a task for a context other than a context of the OS.
  • the task switch may include switching the processor to executing a single-threaded context, or other context, for executing a power management task which is not any task of the OS.
  • a power management task may, for example, include a Basic
  • BIOS Input/Output System
  • FIG. 1 illustrates select elements of a system 100 according to certain exemplary embodiments.
  • System 100 may include a platform 105 having a power supply 150 for variously providing power to other components of platform 105.
  • platform 105 may include one or more of a personal computer (PC), a personal digital assistant (PDA), an Internet appliance, a cellular telephone, a laptop computer, a tablet device, a mobile unit, a wireless communication device and/or any other computing device.
  • PC personal computer
  • PDA personal digital assistant
  • platform 105 may include a processing unit 110 directly or indirectly coupled to one or more other components - e.g. a memory 125 and a system interconnect 135. Additionally or alternatively, processing unit 110 may have access to Basic Input/Output System (BIOS) instructions - e.g. stored in memory 125 or in a separate storage device (120). For example, the processing unit 110 may be variously coupled to components of platform 105 via one or more address and/or data busses. It should be understood that interconnects other than or in addition to such busses may be used to connect processing unit 110. For example, one or more dedicated lines, crossbars, etc. may be used to connect processing unit 110 to memory 125.
  • BIOS Basic Input/Output System
  • processing unit 110 may include one or more cores 115 to execute an operating system (OS), not shown.
  • OS operating system
  • the executing OS may implement one or more features - e.g. an Advanced Configuration and Power Interface (ACPI) and/or operating system power management (OSPM) code - to provide management of power distribution and/or consumption on platform 105.
  • ACPI Advanced Configuration and Power Interface
  • OSPM operating system power management
  • processing unit 110 may include a cache memory (not shown), such as, for example, static random access memory (SRAM) and the like, or any of a variety of types of internal integrated memory.
  • Memory 125 may include a dynamic random access memory
  • memory 125 may store a software program which may be executed by processing unit 110.
  • Interconnect 135 may interconnect various components of platform 105 for various exchanges of data and/or control messages.
  • interconnect 135 may include one or more of an Ethernet interface, a Universal Serial Bus (USB) interface, a Peripheral Component Interconnect interface, and the like. Additionally or alternatively, interconnect 135 may include circuitry to control various components
  • interconnect 135 may include one or more controller hubs such as an I/O controller hub, a platform controller hub, a memory controller hub, and/or the like.
  • controller hubs such as an I/O controller hub, a platform controller hub, a memory controller hub, and/or the like.
  • interconnect 135 is shown coupling processing unit 110 to an input device 130 for receiving communications at platform 105, an output device 140 for sending communications from platform 140 and a storage 145 for storing data in platform 105.
  • input device 130 and output device 140 may include one or more of a keyboard, keypad, mouse, touch screen, display, biometric device, and the like.
  • Storage device 145 may include one or more of a hard disk drives (HDD), solid state drive (SSD), compact disk (CD) drive, digital versatile disk drives (DVD), and/or other computer media input/output (I/O) devices.
  • one or more of input device 130, output device 140 and storage device 145 may be external, and coupled, to platform 105 - e.g. as various devices peripheral to platform 105.
  • platform 105 may be coupled to processing unit 110, according to various embodiments. It is also understood that the particular architecture of platform 105 - e.g. the relative
  • system 100 may exchange data with other devices via a connection to a network 155 - e.g. using a network interface card, wireless network interface, or antenna (not shown) of platform 105.
  • the network connection may include any type of network connection, such as an Ethernet connection, a digital subscriber line (DSL), a telephone line, a coaxial cable, etc.
  • Network 155 may be any type of network, such as the Internet, a telephone network, a cable network, a wireless network such as, for example, a network complying with IEEE standard 802.11, 1999, one or more IEEE 802.11 related standards, the IEEE 802.16 Standard for Wireless Metropolitan Area Networks and/or the like.
  • processing unit 110 - e.g. a particular processing core of the one or more cores 115 - may variously operate in two or more processor power states.
  • power state refers to one or more characteristics - e.g. voltage level, current level, clock frequency, etc. - of power being delivered to, and/or used by, a device or combination of devices which are in that power state.
  • Platform 105 may provide hardware and/or executing software to support, initiate, or otherwise implement transitions of the processor core between such processor power states.
  • FIG. 2 illustrates select elements of a platform 200 for providing access to processor state information according to an embodiment.
  • Platform 200 may include some or all of the features of platform 105, for example.
  • platform 200 may include a processor core 205 to execute an operating system (OS) 250.
  • processor core 210 is shown as residing on a system-on-chip (SoC) 205 of platform 200. It is understood that processor core 210 may, in an alternate embodiment, reside outside of one or any SoC of a platform - e.g. in an isolated single-core or multi-core CPU IC chip.
  • SoC system-on-chip
  • Processor core 210 may be variously coupled to one or more other components of platform 200 - e.g. including components which reside on, or off of, SoC 205.
  • SoC 205 may include a graphics module 215 having circuitry or other logic to perform rendering calculations or other processing of graphics data.
  • SoC 205 may include a display module 220 having interface, driver or other circuitry/logic for providing video information to a display.
  • SoC 205 may include a memory controller 225 including circuitry or other logic to manage access to data storage components of platform 200.
  • SoC 205 may include a power management unit (PMU) 230 to variously detect, determine or otherwise provide data and/or control messages associated with power management for one or more components of platform 200.
  • PMU power management unit
  • platform 200 coupled to processor core 210 may, in various alternate embodiments, reside separate from one or any SoC of platform 200. Also, it is understood that the combination and/or configuration of such other coupled components of platform 200 is merely illustrative, and that platform 200 may, according to different embodiments, include any of a variety of combinations of one or more additional or alternative components coupled to processor core 210.
  • OS 250 may exhibit baseline runtime execution during one or more operative - i.e. non- idle - processor power states of processor core 210. During such normal runtime execution, OS 250 may perform various tasks. When processor core 210 is executing instructions of OS 250, e.g. by performing tasks on behalf of OS 250, processor core 210 may be said to be operating in a context of OS 250. Tasks performed in the context of OS 250 may include, but are not limited to, a task for performing operations of an application running on OS 250, a task for OS 250 to implement interrupt handling, a task for OS 250 to implement exception handling, and the like.
  • OS 250 may variously switch between such tasks while remaining in an operative processor power state. For example, OS 250 may invoke a task switch call to save information in processor core 210 which describes a state of execution of a currently executing task, and to load into processor core 210 other information describing a state of execution of a next task to be switched to - e.g. a task to either begin or resume execution.
  • OS 250 may signal one or more task switches which cause processor core 210 to variously save and/or load task state for respective tasks by accessing, respectively, a corresponding one of Task State Segments (TSSs) 240a,..., 240n of a memory 235.
  • TSSs Task State Segments
  • OS 250 may include a processor governor 255 - e.g. functionality from a set of executing instructions which operate to evaluate or otherwise detect one or more processor idleness conditions of processor core 210.
  • processor governor 255 may include a CPUIDLE governor routine of a Linux OS.
  • processor governor 255 may include one or more processor idle/load detection functionality available using OS power management (OSPM) agents such as those available in the Advanced OS power management (OSPM) agents such as those available in the Advanced OS power management (OSPM) agents such as those available in the Advanced OS power management (OSPM) agents such as those available in the Advanced OS power management (OSPM) agents such as those available in the Advanced OS power management (OSPM) agents such as those available in the Advanced OS power management (OSPM) agents such as those available in the Advanced OS power management (OSPM) agents such as those available in the Advanced
  • ACPI Configuration and Power Interface
  • processor governor 255 may execute to determine, receive an indication of, or otherwise detect a level or type of current processor idleness, current rate of change of processor idleness, expected future processor idleness, expected future rate of change of processor idleness, and/or the like. It is understood that detecting an idle state of processor core 210 may include detecting a corresponding load state of processor core 210.
  • OS 250 may include or otherwise have access to a scheduler (not shown) which looks to schedule a next operation, thread, etc. for OS 250.
  • Processor governor 255 may detect that the scheduler for OS 250 has determined that there is, or is expected to be, no ready operation or thread to schedule for OS 250 to execute.
  • processor governor 255 may determine that the idle condition represents an opportunity to transition processor core 210 to a processor idle state - e.g. a C6 (or lower) power state. In response to identifying such an opportunity, processor governor 255 may initiate such a power state transition. In an embodiment, initiating the power state transition may include processor governor 255 performing a call to task switch logic 260 of OS 250. In turn, task switch logic 260 may provide a low-level signal for hardware of processor core 210 to perform a task switch. In an embodiment, the task switch saves a state of processor core 210 to a TSS - e.g. one of the TSSs 240a,..., 240n of memory 235 which are available for task switches when OS 250 is to remain in an operative power state or states.
  • TSS - e.g. one of the TSSs 240a,..., 240n of memory 235 which are available for task switches when OS 250 is to remain in an operative power state or states.
  • processor core 210 may switch to a task for a context other than a context of OS 250.
  • the task switch may include switching the processor to executing a single-threaded context, or other context, for executing a power management task which is not any task of OS 250.
  • a power management task may, for example, include a task of power management firmware 245 - e.g. a Basic Input/Output System (BIOS) task.
  • BIOS Basic Input/Output System
  • FIG. 3 illustrates select elements of processor state 300 which, according to an embodiment, is provided to (or from) a TSS 305, where providing is for a task switch that is in support of a processor power state transition.
  • TSS 305 may include some or all of the features of TSS 240a, for example.
  • TSS 305 may further be available for another providing - e.g. storing or offloading - of processor state, where the other providing is for a task switch, wherein throughout the task switch, the processor in question is to remain in the same operative processor power state.
  • TSS 305 for either or both types of task switches - i.e. for processor power state transitions or for an unchanging, operative processor power state - may, for example, result from a location of TSS 305 in a memory and/or an arrangement of processor state information within TSS 305.
  • the availability of TSS 305 for both types of task switches may result from a register, table, pointer, or other platform data element (not shown) which is external to, and references, TSS 305 - e.g. indicating that TSS 305 is a type of processor state repository which is available for access to implement generic task switches during normal runtime execution of an OS.
  • TSS 305 may include one or more of a CS register 310 to store a selector of a code segment 315, a DS register 320 to store a selector of a data segment 325, and a SS register 330 to store a selector of a stack segment 335.
  • the selectors CS register 310, DS register 320 and SS register 330 may be readily loaded into, or unloaded from, a processor with a task switch - e.g. for restoring or preserving, respectively, a current state of task execution at the point of implementing a task switch.
  • TSS 305 may include various alternate or additional structures which, for example, are compatible with implementation of task switching by x86 architecture processors.
  • TSS 305 may include one or more additional data segment registers - represented illustratively as ES register 340, FS register 350, and GS register 360 which may store respective selectors for additional data segments 345, 355, 365.
  • TSS 305 may store an EFLAG register 370 to store various flags indicating modes of processor operation (e.g. single-step mode, interrupt handling modes, task chaining mode, etc.) for performing the task associated with TSS 305.
  • TSS 305 may store an EIP register 375 to store a pointer to a current instruction for execution of the task.
  • TSS 305 may include any of a variety of additional or alternative structures and/or information to store processor state. Moreover, such structures and/or information may indicate an availability of TSS 305 to a processor for accessing to implement either one of a task switch associated with a power state transition by the processor - e.g. to or from an idle processor power state - and a task switch for when processor is to remain in a single operative power state.
  • FIG. 4 illustrates select elements of a method 400 for providing processor state according to an embodiment.
  • Method 400 may be performed by hardware of platform 105 executing an OS, for example.
  • method 400 may include an OS detecting, at 410, an opportunity for a transition of a processor executing the OS to a first power state.
  • the OS may determine that a processor idle condition indicates that power savings are available by putting the processor into an idle processor power state.
  • the OS may, at 420, initiate the power state transition.
  • the OS initiating the transition may include the OS triggering a task switch by the processor.
  • the triggered task switch may save at least a portion of processor state for the processor to at least a portion of a task switch repository of the platform.
  • one or more features of data in the platform - e.g. an arrangement of data in the task switch repository, a location of the task switch repository in the platform, data external to and referencing the task switch repository - may indicate an availability of the task switch repository for access to implement either one of a task switch associated with a processor's power state transition - e.g. to or from an idle processor power state - and a task switch for when the processor is to remain in a single operative power state.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs) such as dynamic RAM (DRAM), erasable programmable read-only memories (EPROMs), electrically EPROMs (EEPROMs), magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • ROMs read-only memories
  • RAMs random access memories
  • DRAM dynamic RAM
  • EPROMs erasable programmable read-only memories
  • EEPROMs electrically EPROMs
  • magnetic or optical cards or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

Techniques to provide processor state for implementing a power state transition of a processor. In an embodiment, an operating system executing on a processor detects an opportunity to transition the processor to an idle processor power state. In particular embodiments, the operating system initiates the transition by invoking a task switch, wherein information describing a state of the processor is saved to a task switch segment.

Description

METHOD, APPARATUS AND SYSTEM TO SAVE PROCESSOR STATE FOR EFFICIENT TRANSITION BETWEEN PROCESSOR POWER STATES
BACKGROUND
1. Technical Field
Embodiments generally relate to techniques for power management in a computer platform. More particularly, certain embodiments provide a method for saving or retrieving state of a processor in support of transitioning a computer platform between processor power states.
2. Background Art
Improvements in integrated circuit (IC) fabrication and in other aspects of computer device manufacturing have allowed for smaller and/or more densely integrated platform architectures. The circuitry in such platforms is generally trending toward increasing
sensitivities to inefficiencies in power use and/or increasing sensitivities to inefficient use of die space. Consequently, incremental improvements in power efficiency, die size and/or die utilization provide increasingly large performance gains in such platforms. This is particularly so in the case of small form factor platforms such as those of handheld devices - e.g. smart phones, tablets and the like.
Existing computer platforms variously include one or more features for managing the distribution of power to, or use of power by, processors of such platforms. For example, such features may variously implement a processor idle state, for example, in response to a user- initiated platform suspend, or hibernate, request. To support a processor idle power state such as the C6 power state, a platform must assure that state information of the processor is not lost during a period of time when the processor is in that processor idle power state. In existing technologies, processors variously include dedicated hardware for either offloading processor state to differently-powered areas on-chip or for continuously maintaining processor state in a specialized power domain which is separate from another, general power domain of the processor.
Reliance on such techniques for implementing a processor idle power state has imposed a requirement that various implementing circuitry - e.g. one or more of registers, power distribution traces, control logic, etc. - be included on the processor's IC chip. Such
requirements have up to now imposed certain limits on efforts to reduce, and/or to improve the utilization of, the die space of processors.
BRIEF DESCRIPTION OF THE DRAWINGS
The various embodiments of the present invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which: FIG. 1 is a block diagram illustrating select elements of a system according to an embodiment for providing access to processor state information.
FIG. 2 is a block diagram illustrating select elements of an executing operating system and hardware of a system for providing access to processor state information according to an embodiment.
FIG. 3 is a block diagram illustrating select elements of a task state segment for storing processor state information according to an embodiment.
FIG. 4 is a flow diagram illustrating select elements of an algorithm for providing access to processor state information according to an embodiment.
DETAILED DESCRIPTION
Embodiments variously provide access to processor state for the purpose of transitioning a processor between processor power states. Various embodiments may be implemented on a computer platform configured to execute an operating system (OS) - for example, with a processor and a memory of the platform. The processor of the platform may lack dedicated circuitry capable of independently maintaining some or all processor state for later retrieval and/or use - e.g. for when the processor returns from the processor idle to a higher power, operative processor state. However, various embodiments are not limited in this regard.
"Processor state information", or simply "processor state", refers to information describing a status of processing by one or more processors at a particular time - e.g. data cached or otherwise stored by the processor, a current (or next) instruction to be executed, a condition of a stack, parameters to determine exception handling, error handling, etc. or information that otherwise determines how processing is being performed and/or is to be performed by the processor at a particular point. Providing access to processor state may include, for example, providing processor state for storage outside of the processor, e.g. in preparation for the processor transitioning to a processor idle state. Alternatively or in addition, providing access to processor state may include making the processor state available for loading into the processor, e.g. in preparation for transitioning from a processor idle state to a higher power operative processor state.
In certain embodiments, an OS may initiate a transition to (or from) a processor idle power state. By way of illustration and not limitation, in response to detecting an opportunity to transition a processor between processor power states, an OS which is executing on that processor may trigger the processor to perform a task switch. In certain embodiments, the task switch may save some or all state of the processor to a task switch repository - e.g. a data structure in memory which is otherwise available to the OS for general-purpose task switches during normal runtime execution of the OS. Although certain embodiments are not limited in this regard, a location of the task switch repository in memory, an arrangement of data in the task switch repository and/or a referencing to the task switch repository by other platform data may be compatible with use by x86 architectures of Intel Corporation, Santa Clara, California.
For example, the task switch repository may include a task state segment (TSS). By way of illustration and not limitation, a task switch may save to the TSS one or more of segment register state, control register state, EFLAG register state, EIP register state and segment selector state. Although features of certain embodiments are described herein in terms of accessing a TSS, it is understood that such features may be extended to apply in other embodiments to accessing any of a variety of additional or alternative task switch repositories.
In an embodiment, the task switch may include switching the processor away from executing a task of an application which is running on the OS. In such cases, the task switch may, for example, be performed without the application receiving any indication of a need to freeze an operation for the power state transition.
Alternatively or in addition, the OS initiating a task switch for a processor power state transition may, for example, include switching the processor in question from executing a task in an OS context to executing a power management task in another context. For example, the processor may switch to a task for a context other than a context of the OS. By way of illustration and not limitation, the task switch may include switching the processor to executing a single-threaded context, or other context, for executing a power management task which is not any task of the OS. Such a power management task may, for example, include a Basic
Input/Output System (BIOS) or other firmware task.
FIG. 1 illustrates select elements of a system 100 according to certain exemplary embodiments. System 100 may include a platform 105 having a power supply 150 for variously providing power to other components of platform 105. Although the scope of the various embodiments is not limited in this respect, platform 105 may include one or more of a personal computer (PC), a personal digital assistant (PDA), an Internet appliance, a cellular telephone, a laptop computer, a tablet device, a mobile unit, a wireless communication device and/or any other computing device.
According to certain embodiments, platform 105 may include a processing unit 110 directly or indirectly coupled to one or more other components - e.g. a memory 125 and a system interconnect 135. Additionally or alternatively, processing unit 110 may have access to Basic Input/Output System (BIOS) instructions - e.g. stored in memory 125 or in a separate storage device (120). For example, the processing unit 110 may be variously coupled to components of platform 105 via one or more address and/or data busses. It should be understood that interconnects other than or in addition to such busses may be used to connect processing unit 110. For example, one or more dedicated lines, crossbars, etc. may be used to connect processing unit 110 to memory 125.
As discussed below, processing unit 110 may include one or more cores 115 to execute an operating system (OS), not shown. In various embodiments, the executing OS may implement one or more features - e.g. an Advanced Configuration and Power Interface (ACPI) and/or operating system power management (OSPM) code - to provide management of power distribution and/or consumption on platform 105.
In addition, processing unit 110 may include a cache memory (not shown), such as, for example, static random access memory (SRAM) and the like, or any of a variety of types of internal integrated memory. Memory 125 may include a dynamic random access memory
(DRAM), a non-volatile memory, or the like. In one example, memory 125 may store a software program which may be executed by processing unit 110.
Interconnect 135 may interconnect various components of platform 105 for various exchanges of data and/or control messages. By way of illustration and not limitation, interconnect 135 may include one or more of an Ethernet interface, a Universal Serial Bus (USB) interface, a Peripheral Component Interconnect interface, and the like. Additionally or alternatively, interconnect 135 may include circuitry to control various components
interconnected thereby. For example, interconnect 135 may include one or more controller hubs such as an I/O controller hub, a platform controller hub, a memory controller hub, and/or the like.
In order to illustrate various features of certain embodiments, interconnect 135 is shown coupling processing unit 110 to an input device 130 for receiving communications at platform 105, an output device 140 for sending communications from platform 140 and a storage 145 for storing data in platform 105. By way of illustration and not limitation, either or both of input device 130 and output device 140 may include one or more of a keyboard, keypad, mouse, touch screen, display, biometric device, and the like. Storage device 145 may include one or more of a hard disk drives (HDD), solid state drive (SSD), compact disk (CD) drive, digital versatile disk drives (DVD), and/or other computer media input/output (I/O) devices. In an embodiment, one or more of input device 130, output device 140 and storage device 145 may be external, and coupled, to platform 105 - e.g. as various devices peripheral to platform 105.
It is understood that any of a variety of additional or alternative devices, circuit blocks, etc. of platform 105 may be coupled to processing unit 110, according to various embodiments. It is also understood that the particular architecture of platform 105 - e.g. the relative
configuration of devices, circuit blocks, etc. of platform 105 with respect to processing unit 110 - is not limiting on certain embodiments. According to certain embodiment, system 100 may exchange data with other devices via a connection to a network 155 - e.g. using a network interface card, wireless network interface, or antenna (not shown) of platform 105. The network connection may include any type of network connection, such as an Ethernet connection, a digital subscriber line (DSL), a telephone line, a coaxial cable, etc. Network 155 may be any type of network, such as the Internet, a telephone network, a cable network, a wireless network such as, for example, a network complying with IEEE standard 802.11, 1999, one or more IEEE 802.11 related standards, the IEEE 802.16 Standard for Wireless Metropolitan Area Networks and/or the like.
According to one embodiment, processing unit 110 - e.g. a particular processing core of the one or more cores 115 - may variously operate in two or more processor power states. As used here, power state refers to one or more characteristics - e.g. voltage level, current level, clock frequency, etc. - of power being delivered to, and/or used by, a device or combination of devices which are in that power state. Platform 105 may provide hardware and/or executing software to support, initiate, or otherwise implement transitions of the processor core between such processor power states.
FIG. 2 illustrates select elements of a platform 200 for providing access to processor state information according to an embodiment. Platform 200 may include some or all of the features of platform 105, for example.
By way of illustration and not limitation, platform 200 may include a processor core 205 to execute an operating system (OS) 250. For purposes of illustrating certain features of one embodiment, processor core 210 is shown as residing on a system-on-chip (SoC) 205 of platform 200. It is understood that processor core 210 may, in an alternate embodiment, reside outside of one or any SoC of a platform - e.g. in an isolated single-core or multi-core CPU IC chip.
Processor core 210 may be variously coupled to one or more other components of platform 200 - e.g. including components which reside on, or off of, SoC 205. By way of illustration and not limitation, SoC 205 may include a graphics module 215 having circuitry or other logic to perform rendering calculations or other processing of graphics data. Alternatively or in addition, SoC 205 may include a display module 220 having interface, driver or other circuitry/logic for providing video information to a display. Alternatively or in addition, SoC 205 may include a memory controller 225 including circuitry or other logic to manage access to data storage components of platform 200. Alternatively or in addition, SoC 205 may include a power management unit (PMU) 230 to variously detect, determine or otherwise provide data and/or control messages associated with power management for one or more components of platform 200.
In various embodiments, some or all of the components of platform 200 coupled to processor core 210 may, in various alternate embodiments, reside separate from one or any SoC of platform 200. Also, it is understood that the combination and/or configuration of such other coupled components of platform 200 is merely illustrative, and that platform 200 may, according to different embodiments, include any of a variety of combinations of one or more additional or alternative components coupled to processor core 210.
OS 250 may exhibit baseline runtime execution during one or more operative - i.e. non- idle - processor power states of processor core 210. During such normal runtime execution, OS 250 may perform various tasks. When processor core 210 is executing instructions of OS 250, e.g. by performing tasks on behalf of OS 250, processor core 210 may be said to be operating in a context of OS 250. Tasks performed in the context of OS 250 may include, but are not limited to, a task for performing operations of an application running on OS 250, a task for OS 250 to implement interrupt handling, a task for OS 250 to implement exception handling, and the like.
During such runtime execution, OS 250 may variously switch between such tasks while remaining in an operative processor power state. For example, OS 250 may invoke a task switch call to save information in processor core 210 which describes a state of execution of a currently executing task, and to load into processor core 210 other information describing a state of execution of a next task to be switched to - e.g. a task to either begin or resume execution. By way of illustration and not limitation, OS 250 may signal one or more task switches which cause processor core 210 to variously save and/or load task state for respective tasks by accessing, respectively, a corresponding one of Task State Segments (TSSs) 240a,..., 240n of a memory 235.
In an embodiment, OS 250 may include a processor governor 255 - e.g. functionality from a set of executing instructions which operate to evaluate or otherwise detect one or more processor idleness conditions of processor core 210. In an embodiment, processor governor 255 may include a CPUIDLE governor routine of a Linux OS. Alternatively or in addition, processor governor 255 may include one or more processor idle/load detection functionality available using OS power management (OSPM) agents such as those available in the Advanced
Configuration and Power Interface (ACPI) open standard - such as ACPI Revision 4.0a, released April 5, 2010. Although described herein in terms of a processor governor 255, it is understood that the OS 250 may include or otherwise provide any of a variety of additional or alternative detecting logic to detect an processor idle condition, according to various embodiments.
By way of illustration and not limitation, processor governor 255 may execute to determine, receive an indication of, or otherwise detect a level or type of current processor idleness, current rate of change of processor idleness, expected future processor idleness, expected future rate of change of processor idleness, and/or the like. It is understood that detecting an idle state of processor core 210 may include detecting a corresponding load state of processor core 210.
For example, OS 250 may include or otherwise have access to a scheduler (not shown) which looks to schedule a next operation, thread, etc. for OS 250. Processor governor 255 may detect that the scheduler for OS 250 has determined that there is, or is expected to be, no ready operation or thread to schedule for OS 250 to execute.
Based on a detecting of a current or expected future processor idle condition, processor governor 255 may determine that the idle condition represents an opportunity to transition processor core 210 to a processor idle state - e.g. a C6 (or lower) power state. In response to identifying such an opportunity, processor governor 255 may initiate such a power state transition. In an embodiment, initiating the power state transition may include processor governor 255 performing a call to task switch logic 260 of OS 250. In turn, task switch logic 260 may provide a low-level signal for hardware of processor core 210 to perform a task switch. In an embodiment, the task switch saves a state of processor core 210 to a TSS - e.g. one of the TSSs 240a,..., 240n of memory 235 which are available for task switches when OS 250 is to remain in an operative power state or states.
For example, processor core 210 may switch to a task for a context other than a context of OS 250. By way of illustration and not limitation, the task switch may include switching the processor to executing a single-threaded context, or other context, for executing a power management task which is not any task of OS 250. Such a power management task may, for example, include a task of power management firmware 245 - e.g. a Basic Input/Output System (BIOS) task.
FIG. 3 illustrates select elements of processor state 300 which, according to an embodiment, is provided to (or from) a TSS 305, where providing is for a task switch that is in support of a processor power state transition. TSS 305 may include some or all of the features of TSS 240a, for example.
In an embodiment, TSS 305 may further be available for another providing - e.g. storing or offloading - of processor state, where the other providing is for a task switch, wherein throughout the task switch, the processor in question is to remain in the same operative processor power state.
The availability of TSS 305 for either or both types of task switches - i.e. for processor power state transitions or for an unchanging, operative processor power state - may, for example, result from a location of TSS 305 in a memory and/or an arrangement of processor state information within TSS 305. Alternatively or in addition, the availability of TSS 305 for both types of task switches may result from a register, table, pointer, or other platform data element (not shown) which is external to, and references, TSS 305 - e.g. indicating that TSS 305 is a type of processor state repository which is available for access to implement generic task switches during normal runtime execution of an OS.
By way of illustration and not limitation, the location of, arrangement of and/or referencing to TSS 305 in a platform may be compatible with use of TSS 305 with x86 architectures of Intel Corporation, Santa Clara, California. More particularly, TSS 305 may include one or more of a CS register 310 to store a selector of a code segment 315, a DS register 320 to store a selector of a data segment 325, and a SS register 330 to store a selector of a stack segment 335.
The selectors CS register 310, DS register 320 and SS register 330 may be readily loaded into, or unloaded from, a processor with a task switch - e.g. for restoring or preserving, respectively, a current state of task execution at the point of implementing a task switch.
TSS 305 may include various alternate or additional structures which, for example, are compatible with implementation of task switching by x86 architecture processors. By way of illustration and not limitation, TSS 305 may include one or more additional data segment registers - represented illustratively as ES register 340, FS register 350, and GS register 360 which may store respective selectors for additional data segments 345, 355, 365. Alternatively or in addition, TSS 305 may store an EFLAG register 370 to store various flags indicating modes of processor operation (e.g. single-step mode, interrupt handling modes, task chaining mode, etc.) for performing the task associated with TSS 305. Alternatively or in addition, TSS 305 may store an EIP register 375 to store a pointer to a current instruction for execution of the task. Techniques to store and/or retrieve processor state by accessing a TSS with x86 architecture processors are well documented, and not limiting on various embodiments, which extend these and other such techniques for application in task switches in support of processor power state transitions.
It is understood that the structures shown in TSS 305 are merely illustrative, and that TSS 305 may include any of a variety of additional or alternative structures and/or information to store processor state. Moreover, such structures and/or information may indicate an availability of TSS 305 to a processor for accessing to implement either one of a task switch associated with a power state transition by the processor - e.g. to or from an idle processor power state - and a task switch for when processor is to remain in a single operative power state.
FIG. 4 illustrates select elements of a method 400 for providing processor state according to an embodiment. Method 400 may be performed by hardware of platform 105 executing an OS, for example. In an embodiment, method 400 may include an OS detecting, at 410, an opportunity for a transition of a processor executing the OS to a first power state. For example, the OS may determine that a processor idle condition indicates that power savings are available by putting the processor into an idle processor power state.
In response to the detecting the opportunity, the OS may, at 420, initiate the power state transition. In an embodiment, the OS initiating the transition may include the OS triggering a task switch by the processor. The triggered task switch may save at least a portion of processor state for the processor to at least a portion of a task switch repository of the platform. In an embodiment, one or more features of data in the platform - e.g. an arrangement of data in the task switch repository, a location of the task switch repository in the platform, data external to and referencing the task switch repository - may indicate an availability of the task switch repository for access to implement either one of a task switch associated with a processor's power state transition - e.g. to or from an idle processor power state - and a task switch for when the processor is to remain in a single operative power state.
Techniques and architectures for providing access to processor state are described herein.
In the description herein, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of certain embodiments. It will be apparent, however, to one skilled in the art that certain embodiments can be practiced without these specific details.
In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the description.
Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.
Some portions of the detailed description herein are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the computing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the discussion herein, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Certain embodiments also relate to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs) such as dynamic RAM (DRAM), erasable programmable read-only memories (EPROMs), electrically EPROMs (EEPROMs), magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description herein. In addition, certain embodiments are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of such embodiments as described herein.
Besides what is described herein, various modifications may be made to the disclosed embodiments and implementations thereof without departing from their scope. Therefore, the illustrations and examples herein should be construed in an illustrative, and not a restrictive sense. The scope of the invention should be measured solely by reference to the claims that follow.

Claims

CLAIMS What is claimed is:
1. A method comprising:
with an operating system (OS), detecting an opportunity for a transition of a processor executing the OS to a first power state; and
in response to detection of the opportunity, the OS initiating the transition, including the OS triggering a task switch by the processor, the task switch to save at least a portion of processor state for the processor to at least a portion of task switch repository, wherein the task switch repository is available to be accessed for another task switch which is not in support of a power state transition by the processor.
2. The method of claim 1, wherein the first power state includes a processor idle state.
3. The method of claim 1, wherein the task switch includes switching the processor from executing a task in an OS context to executing a power management task in another context.
4. The method of claim 3, wherein the other context is a single-threaded context.
5. The method of claim 3, wherein executing the power management task includes executing firmware.
6. The method of claim 5, wherein executing the power management task includes executing Basic Input/Output System (BIOS) code.
7. The method of claim 1, wherein the task switch includes switching the processor from executing a task of an application running on the OS, wherein the task switch is performed without indicating to the application any need to freeze an operation for the transition.
8. The method of claim 1, wherein the task switch to save the at least a portion of processor state for the processor includes the task switch to save to the task switch repository one or more of segment register state, control register state, EFLAG register state, EIP register state and segment selector state.
9. An apparatus comprising:
a memory; and a processor coupled to the memory, the processor to execute an operating system (OS) to detect an opportunity for a transition of the processor to a first power state, and in response to detection of the opportunity, to initiate the transition, including the OS to trigger a task switch by the processor, the task switch to save at least a portion of processor state for the processor to at least a portion of a task switch repository, wherein the task switch repository is available to be accessed for another task switch which is not in support of a power state transition by the processor.
10. The apparatus of claim 9, wherein a processor governor of the OS is to detect the opportunity for the transition.
11. The apparatus of claim 9, wherein the first power state includes a processor idle state.
12. The apparatus of claim 9, wherein the task switch includes the OS to switch the processor from execution of a task in an OS context to execution of a power management task in another context.
13. The apparatus of claim 12, wherein the other context is a single-threaded context.
14. The apparatus of claim 12, wherein execution of the power management task includes execution of firmware.
15. The apparatus of claim 9, wherein the task switch includes the OS to switch the processor from execution of a task of an application run on the OS, wherein the task switch is performed without an indication to the application of any need to freeze an operation for the transition.
16. The apparatus of claim 9, wherein the task switch to save the at least a portion of processor state for the processor includes the task switch to save to the task switch repository one or more of segment register state, control register state, EFLAG register state, EIP register state and segment selector state.
17. A computer readable storage medium comprising instructions stored thereon which, when executed by one or more processors, perform:
with an operating system (OS), detecting an opportunity for a transition of a processor executing the OS to a first power state; and in response to detection of the opportunity, the OS initiating the transition, including the
OS triggering a task switch by the processor, the task switch to save at least a portion of processor state for the processor to at least a portion of a task switch repository, wherein the task switch repository is available to be accessed for another task switch which is not in support of a power state transition by the processor.
18. The computer readable storage medium of claim 17, wherein the first power state includes a processor idle state.
19. The computer readable storage medium of claim 17, wherein the task switch includes switching the processor from executing a task in an OS context to executing a power
management task in another context.
20. The computer readable storage medium of claim 19, wherein the other context is a single- threaded context.
21. The computer readable storage medium of claim 19, wherein executing the power management task includes executing firmware.
22. The computer readable storage medium of claim 21, wherein executing the power management task includes executing Basic Input/Output System (BIOS) code.
23. The computer readable storage medium of claim 17, wherein the task switch includes switching the processor from executing a task of an application running on the OS, wherein the task switch is performed without indicating to the application any need to freeze an operation for the transition.
24. The computer readable storage medium of claim 17, wherein the task switch to save the at least a portion of processor state for the processor includes the task switch to save to the task switch repository one or more of segment register state, control register state, EFLAG register state, EIP register state and segment selector state.
25. A system comprising:
a memory;
a processor coupled to the memory, the processor to execute an operating system (OS) to detect an opportunity for a transition of the processor to a first power state, and in response to detection of the opportunity, to initiate the transition, including the OS to trigger a task switch by the processor, the task switch to save at least a portion of processor state for the processor to at least a portion of a task switch repository, wherein the task switch repository is available to be accessed for another task switch which is not in support of a power state transition by the processor; and
an antenna coupled to the processor, the antenna to couple the system to a wireless network.
26. The system of claim 25, wherein a processor governor of the OS is to detect the opportunity for the transition.
27. The system of claim 25, wherein the first power state includes a processor idle state.
28. The system of claim 25, wherein the task switch is to switch the processor from execution of a task in an OS context to execution of a power management task in another context.
29. The system of claim 28, wherein execution of the power management task includes execution of firmware.
30. The system of claim 25, wherein the task switch to save the at least a portion of processor state for the processor includes the task switch to save to the task switch repository one or more of segment register state, control register state, EFLAG register state, EIP register state and segment selector state.
PCT/US2011/063485 2010-12-23 2011-12-06 Method, apparatus and system to save processor state for efficient transition between processor power states WO2012087566A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201180002799.2A CN103098019B (en) 2010-12-23 2011-12-06 For preserving processor state with the methods, devices and systems of efficiently conversion between processor power states

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN3082/DEL/2010 2010-12-23
IN3082DE2010 2010-12-23

Publications (2)

Publication Number Publication Date
WO2012087566A2 true WO2012087566A2 (en) 2012-06-28
WO2012087566A3 WO2012087566A3 (en) 2012-08-16

Family

ID=46314728

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/063485 WO2012087566A2 (en) 2010-12-23 2011-12-06 Method, apparatus and system to save processor state for efficient transition between processor power states

Country Status (3)

Country Link
CN (1) CN103098019B (en)
TW (1) TWI464572B (en)
WO (1) WO2012087566A2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160246619A1 (en) * 2014-09-03 2016-08-25 Mediatek Inc. Method for handling mode switching with less unnecessary register data access and related non-transitory machine readable medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212727A1 (en) * 2005-03-16 2006-09-21 Microsoft Corporation Systems and methods for providing power-loss protection to sleeping computers systems
US7313797B2 (en) * 2002-09-18 2007-12-25 Wind River Systems, Inc. Uniprocessor operating system design facilitating fast context switching
US20090089562A1 (en) * 2007-09-27 2009-04-02 Ethan Schuchman Methods and apparatuses for reducing power consumption of processor switch operations

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260150B1 (en) * 1998-03-10 2001-07-10 Agere Systems Guardian Corp. Foreground and background context controller setting processor to power saving mode when all contexts are inactive
US7523323B2 (en) * 2005-09-15 2009-04-21 Intel Corporation Method and apparatus for quick resumption
US20080082752A1 (en) * 2006-09-29 2008-04-03 Ram Chary Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state
US7685409B2 (en) * 2007-02-21 2010-03-23 Qualcomm Incorporated On-demand multi-thread multimedia processor
CN101013340A (en) * 2007-03-02 2007-08-08 中兴通讯股份有限公司 Method for reducing power consumption of wireless network interface card
US8352770B2 (en) * 2009-09-25 2013-01-08 Intel Corporation Method, system and apparatus for low-power storage of processor context information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313797B2 (en) * 2002-09-18 2007-12-25 Wind River Systems, Inc. Uniprocessor operating system design facilitating fast context switching
US20060212727A1 (en) * 2005-03-16 2006-09-21 Microsoft Corporation Systems and methods for providing power-loss protection to sleeping computers systems
US20090089562A1 (en) * 2007-09-27 2009-04-02 Ethan Schuchman Methods and apparatuses for reducing power consumption of processor switch operations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MUDIGONDA, J. ET AL.: 'Using Asymmetric Single-ISA CMPs to Save Energy on Oper ating Systems' IEEE MRCRO MAGAZINE vol. 28, no. 3, May 2008, pages 26 - 41 *

Also Published As

Publication number Publication date
CN103098019B (en) 2016-10-19
TW201237615A (en) 2012-09-16
TWI464572B (en) 2014-12-11
WO2012087566A3 (en) 2012-08-16
CN103098019A (en) 2013-05-08

Similar Documents

Publication Publication Date Title
US8775836B2 (en) Method, apparatus and system to save processor state for efficient transition between processor power states
US9600283B2 (en) Single instruction for specifying a subset of registers to save prior to entering low-power mode, and for specifying a pointer to a function executed after exiting low-power mode
US9122464B2 (en) Method, apparatus, and system for energy efficiency and energy conservation including energy efficient processor thermal throttling using deep power down mode
KR101524961B1 (en) Method and apparatus for improving the resume time of a platform
US20030061383A1 (en) Predicting processor inactivity for a controlled transition of power states
US10248183B2 (en) System and method for power management
US7971084B2 (en) Power management in electronic systems
WO2008070912A1 (en) Power management system and method
US7093149B2 (en) Tiered secondary memory architecture to reduce power consumption in a portable computer system
US20160202746A1 (en) Indicating critical battery status in mobile devices
US9760145B2 (en) Saving the architectural state of a computing device using sectors
WO2012087566A2 (en) Method, apparatus and system to save processor state for efficient transition between processor power states
US10409513B2 (en) Configurable low memory modes for reduced power consumption
US7290153B2 (en) System, method, and apparatus for reducing power consumption in a microprocessor
US20240028222A1 (en) Sleep mode using shared memory between two processors of an information handling system
US20160216756A1 (en) Power management in computing devices

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180002799.2

Country of ref document: CN

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

Ref document number: 11851070

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11851070

Country of ref document: EP

Kind code of ref document: A2