throbber
(12) United States Patent
`Lint et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7.426,648 B2
`Sep. 16, 2008
`
`USOO7426648B2
`
`2004/0107273 A1* 6/2004 Biran et al. ................. 709,223
`(54) GLOBAL AND PSEUDO POWER STATE
`OTHER PUBLICATIONS
`MANAGEMENT FOR MULTIPLE
`U.S. Appl. No. 09/551462, filed Apr. 18, 2000, “Wireless Video
`PROCESSINGELEMENTS
`Distribution.”
`U R RR 21,228, s A. t 03, “A Ms. d, system,
`(75) Inventors: Bernard J. Lint, Mountain View, CA
`al pparatus Ior improving Multi-Uore Processor Performance.
`U.S. Appl. No. 10/741,641, filed Dec. 19, 2003, “Methods and Appa
`(US); Todd A. Dutton, Southborough,
`MA (US); Kushagra Vaid, San Jose, CA ratus to Manage System Power and Performance.”
`(US)
`U.S. Appl. No. 10/750,256, filed Dec. 29, 2003, “Methods and Appa
`ratus to Selectively Power Functional Units.”
`(73) Assignee: Intel Corporation, Santa Clara, CA
`U.S. Appl. No. 10/811,864, filed Mar. 30, 2004, “Device, System and
`(US)
`Method for Reduced Power Consumption.”
`U.S. Appl. No. 10/850,775, filed May 21, 2004, “P-State Feedback to
`Operating System with Hardware Coordination.”
`U.S. Appl. No. 10/859,656, filed Jun. 2, 2004, “Packet Exchange for
`s
`Controlling System Power Modes.
`U.S. Appl. No. 10/859,892, filed Jun. 2, 2004, “Hardware Coordina
`tion of Power Management Activities.”
`U.S. Appl. No. 10/880,976, filed Jun. 29, 2004, “Power Management
`Apparatus, Systems, and Methods.”
`U.S. Appl. No. 10/884.359, filed Jul. 2, 2004, "An Apparatus and
`Method for Heterogeneous Chip Multiprocessors via Resource Allo
`cation and Restriction.”
`* cited by examiner
`Primary Examiner Thomas Lee
`Assistant Examiner Jaweed A Abbaszadeh
`(74) Attorney, Agent, or Firm—David P. McAbee
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 334 days.
`
`(21) Appl. No.: 10/956,203
`
`(22) Filed:
`
`Sep. 30, 2004
`
`(65)
`
`Prior Publication Data
`US 2006/0069936A1
`Mar. 30, 2006
`
`(51) Int. Cl.
`(2006.01)
`G06F I/26
`(2006.01)
`G06F I/32
`(52) U.S. Cl. ....................... 713/320, 713/300; 712/228;
`709/223
`(58) Field of Classification Search ................. 713/300,
`713/320, 712/228; 709/223
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`2002/0007463 A1* 1/2002 Fung .......................... T13,320
`2003/0093.655 A1
`5/2003 Gosior et al. ............... T12/228
`
`ABSTRACT
`(57)
`A method and apparatus for global and local power manage
`ment is herein described. Hardware within monitor/receives
`power management requests for any number of processing
`elements and adjusts global performance resources to change
`the global power state of all the processing elements or
`adjusts a local performance resource for a processing element
`to operate that processing element at a pseudo power state
`within the global power state.
`
`25 Claims, 6 Drawing Sheets
`
`Receiving a first power
`management request for a first
`logical processor
`705
`
`Receiving a second power
`management request for a
`second logical processor
`710
`
`
`
`Adjusting at least one
`performance resource based on
`the first and second power
`management request
`
`715
`
`Qualcomm, Ex. 1005, Page 1
`
`

`

`U.S. Patent
`
`Sep. 16, 2008
`
`Sheet 1 of 6
`
`US 7426,648 B2
`
`First logical
`processor 110
`
`
`
`Second logical
`processor 115
`
`Architecture State
`Registers
`120
`
`Architecture State
`Registers
`125
`
`Execution UnitS
`
`135
`
`
`
`Instruction Re-Order 140
`
`Fetch! Decode
`Execution Resources
`
`145
`
`FIG. 1
`
`Qualcomm, Ex. 1005, Page 2
`
`

`

`U.S. Patent
`
`Sep. 16, 2008
`
`Sheet 2 of 6
`
`US 7426,648 B2
`
`First logical
`processor 210
`
`Second logical
`processor 215
`
`Architecture State
`Registers
`220
`
`Architecture State
`Registers
`225
`
`
`
`Execution
`Units
`
`Instruction
`;
`Re-order
`4O. :
`
`:
`:
`
`Execution
`Units
`
`instruction
`Re-Order
`
`Fetch/Decode
`Fetch/Decode
`:
`245 :
`260
`Execution Resources
`
`FIG. 2
`
`Qualcomm, Ex. 1005, Page 3
`
`

`

`U.S. Patent
`
`Sep. 16, 2008
`
`Sheet 3 of 6
`
`US 7426,648 B2
`
`First logical
`processor 310
`
`Second logical
`processor 315
`
`POWer Module
`
`FIG. 3
`
`
`
`Redister 415
`
`Software 410
`
`Register 420
`
`Hardware 405
`
`Register 425
`
`POWer Module 320
`
`FIG. 4
`
`Qualcomm, Ex. 1005, Page 4
`
`

`

`U.S. Patent
`
`Sep. 16, 2008
`
`Sheet 4 of 6
`
`US 7426,648 B2
`
`Pseudo PO (1) 540
`
`Pseudo PO (2) 545
`
`Pseudo PO(n) 550
`
`Pseudo P1 (1) 560
`
`
`
`Pseudo P2(n) 575
`GE)
`
`
`
`Core Performance 505
`
`FIG. 5
`
`Core
`POWer
`510
`
`
`
`Qualcomm, Ex. 1005, Page 5
`
`

`

`U.S. Patent
`
`Sep. 16, 2008
`
`Sheet 5 of 6
`
`US 7426,648 B2
`
`First logical
`processor 610
`
`Second logical
`processor 615
`
`- a
`
`- - - - - - - - - - - - - - -
`
`- - - - - - - - - - - - - - - - -
`
`- - - - - - - - - - - - - - - s - as as a s - - - - - - - - - - - - -
`
`
`
`
`
`
`
`POWer Module
`
`Controller hub 630
`
`
`
`
`
`Storage
`Medium
`650
`
`
`
`FIG. 6
`
`Qualcomm, Ex. 1005, Page 6
`
`

`

`U.S. Patent
`
`Sep. 16, 2008
`
`Sheet 6 of 6
`
`US 7.426,648 B2
`
`
`
`Receiving a first power
`management request for a first
`logical processor
`05
`
`Receiving a second power
`management request for a
`Second logical processor
`
`Adjusting at least One
`performance resource based on
`the first and second power
`management request
`
`FIG. 7
`
`Qualcomm, Ex. 1005, Page 7
`
`

`

`US 7,426,648 B2
`
`1.
`GLOBAL AND PSEUDO POWER STATE
`MANAGEMENT FOR MULTIPLE
`PROCESSINGELEMENTS
`
`FIELD
`
`This invention relates to the field of computer systems and,
`in particular, to power management for multiple processing
`elements.
`
`BACKGROUND
`
`10
`
`15
`
`25
`
`30
`
`35
`
`Typically, power management for a single processor on a
`single die has constituted changing global power States by
`altering global performance resources Supplied to the single
`die, such as Voltage and frequency. Therefore, when a pro
`cessor is performing in a max performance/power state, the
`max Voltage and frequency is Supplied to the processor. To
`change the power state of the processor the frequency, Volt
`age, or both are changed to effectuate the power state change.
`Other methods of power management have included reducing
`power to functional units of a microprocessor depending on
`whether the functional unit will be speculatively used to
`execute instructions in a cache, Such as in co-pending appli
`cation 750,256.
`However, advances in semi-conductor processing and
`logic design have permitted an increase in the amount of logic
`that may be present on integrated circuit devices. As a result,
`microprocessor configurations have evolved from a basic
`single processor on a single die to include multiple processor
`cores or multiple processor threads on a single die.
`Typically, multiple threads share common data caches,
`instruction caches, execution units, branch predictors, control
`logic, bus interfaces, and other processor resources, while
`maintaining a unique architecture state for each processor.
`One example of multi-threading technology is Hyper
`Threading Technology (HT) from Intel(R) Corporation of
`Santa Clara, Calif., that enables execution of threads in par
`allel using a signal physical processor. HT is achieved by
`having multiple architectural States that share one set of
`40
`caches, execution units, branch predictors, control logic, and
`buses.
`In addition, multi-core technology tends to include mul
`tiple core processors on a single die. Each core may have its
`own caches, execution units, branch predictors, control logic,
`45
`and architecture states. Yet, each core may also share some of
`those processing resources, as well as other resources, such as
`a bus interface. Multi-threads and multi-cores tend to overlap
`in that any configuration of multiple processors on a single die
`may share some resources, while having their own separate
`processing resources.
`In fact, it is common for an operating system to logically
`view a multi-core single die processor and a multi-threaded
`single die processor exactly the same: as multiple processors.
`Therefore, a single die processor with either multiple cores or
`multiple threads are typically referred to as a physical pro
`cessor having multiple “logical processors, wherein each
`logical processor may be a thread or a core. Moreover, the
`operating system may issue an independent power manage
`ment request for any single logical processor on the physical
`processor, since the operating system may not differentiate
`between physical and logical processors.
`Therefore, with the advent of logical processors the coarse
`grained control of global resource power management may
`affect both power consumption and processor performance.
`As a simple example, if a physical processor has two logical
`processors running at a max performance power state and the
`
`50
`
`55
`
`60
`
`65
`
`2
`operating system requests one of the two logical processors to
`enter a lower performance power state, then with the current
`global power management controls, there may be only two
`options. First, either the Voltage or frequency may be reduced.
`However, since global performance resources. Such as Volt
`age and frequency, are Supplied to the whole physical proces
`sor, both logical processors would be affected by the reduc
`tion instead of just the single logical processor. Second, the
`request for one of the processors to enter into a lower perfor
`mance power state may be ignored. Yet, this would result in
`both logical processors operating at max performance, which
`may waste power. Furthermore, hardware speculation of
`future units to be utilized to reduce power to functional units,
`as mentioned above, may not allow the operating system to
`modify performance of individual logical processors.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention is illustrated by way of example and
`not intended to be limited by the figures of the accompanying
`drawings.
`FIG. 1 illustrates an embodiment of a multi-threaded pro
`CSSO.
`FIG. 2 illustrates an embodiment of a multi-core processor.
`FIG. 3 illustrates an embodiment of a physical processor
`with two logical processors and associated firmware.
`FIG. 4 illustrates an embodiment of the firmware shown in
`FIG. 3.
`FIG. 5 illustrates an embodiment of global and pseudo
`power States on a core performance V. core power graph.
`FIG. 6 illustrates an embodiment of a system with a physi
`cal processor having two logical processors and firmware, a
`controller hub, a memory, and a storage medium.
`FIG. 7 illustrates a flow diagram of a method for receiving
`a first and a second power management request and adjusting
`at least one performance resource.
`
`DETAILED DESCRIPTION
`
`In the following description, numerous specific details are
`set forth Such as examples of specific numbers of physical and
`logical processors, specific processing resources shared or
`separated in a physical processor, and specific power states in
`order to provide a thorough understanding of the present
`invention. It will be apparent, however, to one skilled in the art
`that these specific details need not be employed to practice the
`present invention. In other instances, well known components
`or methods, Such as specific hardware and Software imple
`mentation have not been described in detail in order to avoid
`unnecessarily obscuring the present invention.
`The method and apparatus described herein are for effi
`ciently managing both global and local performance
`resources for physical and logical processors. It is readily
`apparent to one skilled in the art, that the method and appa
`ratus disclosed for adjusting performance resources may be
`implemented in any level computer system (personal digital
`assistants, mobile platforms, desktop platforms, and server
`platforms), as well as any number of processors. For example,
`a multiprocessor system with four or more physical proces
`sors may use the method and apparatus herein described to
`manage the global performance resources for each of the four
`physical processors and to manage the local performance
`resources for any logical processor present on the four physi
`cal processors. Additionally, a multiple server system may
`utilized the method herein described for adjusting local per
`formance resources that affect an individual server in the
`
`Qualcomm, Ex. 1005, Page 8
`
`

`

`US 7,426,648 B2
`
`10
`
`15
`
`25
`
`30
`
`3
`multiple server system and for adjusting global performances
`that affect all of the servers in the system.
`FIG. 1 illustrates an embodiment of a physical processor
`105 having two logical processors: first logical processor 110
`and second logical processor 115. Physical processor 105
`may be any combination of transistors, circuits, and logic for
`processing data and/or instructions. Processor 105 may
`include execution resources 130, caches 150, and bus inter
`face 155. Processor 105 may also include any combination of
`the following, which are not specifically depicted: a data path,
`and instruction path, a memory management unit, branch
`predictors, control logic, interrupt controllers, advanced pro
`grammable interrupt controllers (APICs), or any other cir
`cuits to process data.
`Execution resources 130 may include execution units 135,
`instruction re-order logic 140, fetch and decode logic 145,
`and any other circuits to operate on data or execute instruc
`tions. Execution units 135 may include any number of arith
`metic logic units (ALUs), floating-point units (FPUs), regis
`ter files, operand registers, or other execution logic.
`Execution units 135 may also be configurable to operate on
`multiple data operands in serial or parallel. Furthermore,
`execution units 135 may be able to execute a single instruc
`tion or multiple instructions on single or multiple data oper
`ands in serial or parallel. Instruction re-order logic 140 may
`include any logic, registers, or circuits to receive and/or re
`order instructions to be executed by execution units 135.
`Fetch/decode logic 145 may include circuits to fetch and
`decode elements, such as instructions and data operands for
`execution by execution units 135. Fetch/decode logic 145
`may be able to fetch and decode instructions, of fixed or
`variable length, and/or x86 instructions.
`Caches 150 may include low level data and instruction
`caches, secondary or higher level data or instruction caches,
`as well as other temporary storage for a microprocessor. Bus
`35
`interface 155, and 285 in FIG. 2, may include any number of
`controllers or control logic for interfacing with a front-side
`bus, a back-side bus, a direct memory access bus, or any other
`external interconnect
`As depicted in FIG. 1, architecture state registers 120 and
`125, which are associated with first logical processor 110 and
`second logical processor 115 respectively, share access to
`execution units 135, instruction re-order logic 140, fetch/
`decode logic 145. In another embodiment architecture state
`registers 120 and 125 share access to execution units 135 and
`fetch/decode logic 145; however, instruction re-order logic
`140 is partitioned among first logical processor 110 and sec
`ond logical processor 115. Architecture state registers 120
`and 125 may maintain a complete set of the architecture state
`for first logical processor 110 and second logical processor
`115, respectively. The architecture state may consist of gen
`eral-purpose registers, control registers, APIC registers,
`machine state registers (MSRs), the state of the instruction
`pointer, and any other registers, logic, or circuits to maintain
`the architecture State of a processor or to resume execution of
`an interrupted thread.
`Turning to FIG. 2, another embodiment of a physical pro
`cessor with two logical processors is shown. Physical proces
`Sor 205 comprises two logical processors: first logical pro
`cessor 210 and second logical processor 215. Architecture
`state registers 220 are associated with first logical processor
`210, while architecture state registers 225 are associated with
`second logical processor 215.
`In contrast to FIG. 1, first and second logical processors
`210 and 215 do not share access to execution resources 230
`and caches 270. Execution resources 230 depict execution
`units 235, instruction re-order logic 240, and fetch/decode
`
`55
`
`4
`logic 245 associated with first logical processor 210, while
`execution units 250, instruction re-order logic 255, and fetch
`decode logic 260 are depicted as associated with second
`logical processor 215. Execution units 235 and 250, instruc
`tion re-order logic 240 and 255, and fetch/decode logic 245
`and 260 may include any number of transistors, circuits,
`logic, or registers described above in reference to FIG. 1.
`These blocks may be physically separate in processor 205,
`physically contiguous and associated with first and second
`logical processors 210 and 215, or a single functional block,
`as shown in FIG. 1, with a portion dedicated to first logical
`processor 210 and a portion dedicated to second logical pro
`cessor 215.
`Both FIGS. 1 and 2 depict at least a first set of architecture
`state registers associated with a first logical processor and a
`second set of architecture state registers associated with a
`second logical processor. The ability for each logical proces
`Sor to maintain a separate architecture state potentially allows
`an operating system to view one physical processor as a
`plurality of processors. As a consequence, an operating sys
`tem may not differentiate between a thread and a core.
`Therefore, a logical processor, as used herein, includes any
`logic located on an integrated circuit capable to store an
`architecture State. As an example, a single physical micropro
`cessor may have one set of architecture state registers capable
`of storing an architecture state. Consequently, the single
`physical microprocessor may be referred to as having one
`logical processor. A thread, as used herein, refers to any logic
`capable to store an architecture state that shares access to at
`least one execution unit and one cache. A core refers to any
`logic capable to store an architectures state that has at least a
`portion of the execution resources dedicated to the core. It is
`readily apparent from FIGS. 1 and 2 that any number of
`separate architecture state registers and, therefore, logical
`processors may be present on a physical processor. Further
`more, there may any number of physical processors, as well
`as any number of processing elements. A processing element
`may be a logical processor, a physical processor, a single
`computing system, a server, a network of computers, or any
`level element for operating on data.
`Referring to FIG. 3, a physical processor 305 is shown
`having first logical processor 310, second logical processor
`315, and power module 320. Any number of logical proces
`sors may be present on physical processor 305; however, as to
`not obscure the invention only a single physical processor
`having two logical processors is illustrated in FIG. 3. Power
`Module 320, which may be only hardware as well as hard
`ware associated with Software, is depicted as associated with
`physical processor 305, first logical processor 310, and sec
`ond logical processor 315. Power Module 320 may be inte
`grated in physical processor 305, present on physical proces
`sor 305, or separate from physical processor 305. Power
`Module 320 will be discussed in more detail in reference to
`FIG. 4.
`Since an operating system may view each logical proces
`Sor, Such as logical processors 310 and 315, as separate pro
`cessors, the operating system may send individual power
`management requests (also know as commands) for each
`logical processor to change power states or performance lev
`els. A power management request/command may request any
`level of processing element, a single physical processor, mul
`tiple physical processors, multiple logical processors, or a
`single logical processor to operate at a certain power or per
`formance state. However, current methods of adjusting global
`resources based on an individual power management request/
`command may result in wasted power consumption or limit
`ing performance. Therefore, power module 320 may be oper
`
`40
`
`45
`
`50
`
`60
`
`65
`
`Qualcomm, Ex. 1005, Page 9
`
`

`

`US 7,426,648 B2
`
`5
`able to receive the independent power management requests
`and based on those power management requests, the current
`power state of each processing element, or the combination of
`the power management requests and the current power state,
`power module 320 may also be operable to adjust perfor
`mance resources. In one embodiment, performance resources
`include global resources, which are resources that affect a
`plurality of processing elements, such of all logical processor
`located on a single physical processor, and/or local resources,
`which are resources that affect the performance/power of a
`single processing element. Such as a single logical processor.
`More detail of the adjustment of global and local performance
`resources will be discussed in reference to FIG. 5.
`Power module 320 may be any hardware, any software
`associated with the hardware, any microcode, or firmware for
`receiving power management requests and adjusting perfor
`mance resources based on those power management requests.
`Power module 320 may also receive power management
`requests an elect not to adjust performance resources either in
`contrast or conformance with the power management request.
`For example, if the power management request requests a
`logical processor to operate in its current power state, there
`would be no need for a change. As another example, power
`module 320 may be designed to violate the performance
`power management requests and not alter performance
`resources based on predetermined rules and dependencies.
`An embodiment of power module 320 is depicted in FIG. 4.
`In one embodiment, power module 320 comprises hardware
`405 with software 410 and registers 415,420, and 425. Hard
`ware 405 may be any hardware device to store and/or execute
`Software routines, such as a read access memory (RAM), a
`read only memory (ROM), a programmable read only
`memory (PROM), an erasable programmable read only
`memory (EPROM), an electrically erasable programmable
`read only memory (EEPROM), as programmable logic array
`(PLA), logic present in microprocessor 305, or any other
`circuit/memory for storing software 410. Hardware 405 may
`be inaccessible to users (locked), may be modifiable by spe
`cial privilege users, or may be fully modifiable by any user.
`Software 410 may be embedded software inhardware 405.
`Software 410 may also be microcode programmed in hard
`ware 405. Software 410 may include routines or microin
`structions to receive power management requests, to store the
`power management requests or values based on the power
`management requests in registers 415, 420, and 425, and/or to
`adjust global and/or local performance resources. Software
`410 may adjust global and/or local performance resources by
`issuing a request for the adjustment, by actually adjusting the
`performance resources itself, or by communicating with a
`device to adjust the performance resource. Software 410 may
`ascertain what global or pseudo power state logical processor
`310 and logical processor 315 is in by the latest request stored
`in registers 415-425 or by directly communicating with first
`and second logical processors 310 and 315.
`Registers 415, 420, and 425 may store the power manage
`ment requests, any value based on the power management
`requests, any representation of the power management
`requests, or the current power state of logical processors 310
`and 315. There may be any number of registers 415,420, and
`425. As a very basic example, there may be one register for
`every logical processor to store the current power State, the
`latest power management request, or a value based on the
`latest power management request, which may represent the
`current power state.
`As another simple example, if first logical processor 310
`and second logical processor 315 are in a max performance
`power state, which will be referred to as P0 for this example,
`
`40
`
`45
`
`6
`and first logical processor 310 receives an individual power
`management request to change to a lower performance power
`state, which for this example will be referred to as P1, then
`Power Module 320 may check any one, any combination, or
`all of registers 415-425 and discover that the last power man
`agement request for both logical processors 310 and 315 was
`for power state P0. Power Module 320 may then adjust local
`performance resources of first logical processor 310 to oper
`ate first logical processor 310 in a pseudo power state within
`global power state P0. Therefore, first logical processor 310
`may step down in power consumption; however, second logi
`cal processor 315 has the global performance resources avail
`able to operate in the max performance power state P0. In
`contrast, if Power Module 320 were not present or not uti
`lized, global performance resources, such as Voltage or fre
`quency, may have been adjusted forcing both first and second
`logical processors to operate at power state P1. As a conse
`quence, second logical processor 315, which was not
`requested to operate in a lower power state, may be forced to
`operate in that lower power state P1, limiting performance.
`Turning to FIG. 5, an embodiment of global and pseudo
`power states on a core performance V. core power graph is
`shown. Once again, the two logical processors from FIG. 3
`will be used to describe the graph in FIG. 5. However, any
`number of logical processors may be actually present on any
`number of physical processors. FIG. 5 illustrates four global
`power states: global power state 515 (P0), global power state
`520 (P1), global power state 525 (P2), and global power state
`530 (P3). Although, there are only four global power state
`illustrate in FIG. 5, there may be any number of global power
`states. Global power states 515-530 may be any level of
`power on core power axis 510 and any level of performance
`on core performance axis 505. A change between global
`power States may include adjusting global performance
`resources, such as Voltage Supplied to physical processor 305.
`frequency that physical processor 305 operates at, a combi
`nation of Voltage and frequency, or any global resource that
`would affect the performance of all logical processors located
`on one physical processor. As an example, in global power
`state 515 an operating voltage may be 1.4V and a core fre
`quency may be 3.4 GHz, which may be multiplied from an
`externally supplied lower frequency. To operate both logical
`processors at global power state 520, the operating Voltage
`may be adjusted to 1.3V and the supplied frequency may be
`adjusted so that the multiplied core frequency is 2.4 GHz.
`Within global power state 515 there are n pseudo power
`states shown including pseudo power State 540, pseudopower
`state 545, and pseudo power state 550. Within global power
`state 520 there are n pseudo power states shown including
`pseudo power state 560 and pseudo power state 565. Within
`global power state 525 there are n pseudo power states shown.
`Global power state 530 may also have n pseudo power states,
`which are not depicted in FIG. 5.
`A pseudo power State may be a power state within a global
`power state, in which the global performances resources of
`the global power state are available to a single processing
`element, such as a logical processor; however, the single
`processing element is consuming less power operating in the
`pseudo power state than if it were operating in the global
`power state. To operate a logical processor in a pseudo power
`state any number of local performance resources may be
`adjusted.
`For example for a logical processor, the width of instruc
`tions fetched and decoded, the number of instructions per
`cycle fetched and decoded, the number of data operands
`operated on, the width of the data operands operated on, the
`duty cycle, the size of the renaming pool, or any other per
`
`10
`
`15
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`Qualcomm, Ex. 1005, Page 10
`
`

`

`US 7,426,648 B2
`
`15
`
`7
`formance resource that may affect only a single logical pro
`cessor on a physical processor may be adjusted. Additionally,
`if voltage and frequency are independently Supplied to logical
`processors on a single physical processor, then Voltage and
`frequency may be local performance resources that may be
`adjusted. As an example for a plurality of servers as process
`ing elements, a local performance resource may be a resource
`that affects only one of the plurality of servers, such as the
`Voltage Supplied by a single power Supply to one of the
`plurality of servers.
`10
`Referring to FIG. 3-5 a few examples of how Power Mod
`ule 320 may monitor independent power management
`requests and adjust performance resources based on those
`independent power management requests will be discussed.
`As a first example, assume that based on a previous power
`management command, second logical processor 315 is oper
`ating at global power state 515. Power Module 320 may
`receive an independent power management command for first
`logical processor 310 to operate at global power state 520.
`Power Module 320 may check a previous power management
`command in a register, such as registers 415-425, to ascertain
`the current operating power state of second logical processor
`315. Power Module 320 may also directly communicate with
`second logical processor 315 to ascertain its current power
`State.
`25
`Since the previous power management command
`requested second logical processor 315 to operate in global
`power state 515, which is a higher performance power state
`than global power state 520, at least one local performance
`resource of first logical processor 310 may be changed to
`operate first logical processor at pseudo power state 540.
`Consequently, second logical processor 315 may still be oper
`ating at global power state 515, while first logical processor
`310 may be operating at pseudo power state 540. Any one or
`plurality of local performance resources may be changed,
`wherein a local performance resource affects the power con
`sumption of a single logical processor. Power Module 320
`may either randomly select or intelligently select a perfor
`mance resource to change. An intelligent selection of a per
`formance resource, may include selecting a performance
`resource that optimally obtains the desired power or perfor
`mance level and minimizes the effects on the un-requested
`changes in power of performance.
`It may be advantageous to design the pseudo power states,
`Such as pseudo power State 540 to decrease power consump
`tion and change performance to the same performance level
`of the requested power state. As shown in FIG. 5, all the
`pseudo power states within the global power states are at the
`same performance on the core performance axis 505 as the
`next lower performance power state. This may allow a logical
`processor to perform at the next lower performance global
`power State, while the global performance resources are still
`at the higher performance power State. Pseudo power state,
`Such as pseudo power state 540, may be designed so that a
`change in any single or multiple local performance resources
`55
`may be necessary to operate at that pseudo power state. How
`ever, pseudo power states are not so limited. As stated above
`a power management request may request a change in per
`formance level or power state; therefore, pseudo power states,
`Such as pseudo power state 540 may be designed to operate at
`any performance level on performance axis 505.
`Continuing the example from above, Power Module 320
`may then receive a power management command requesting
`first logical processor to operate at global power state 525.
`Power Module 320 may then check and determine that second
`logical processor 315 is still operating at global power state
`515. Since second logical processor 315 is still operating at a
`
`45
`
`8
`higher performance power state, Power Module 320 may
`change or request a change to at least one local performance
`resource of first logical processor 310 to operate at second
`pseudo power state 545 within global power state 515. After
`the change, first logical processor 310 may be operating in
`second pseudo power state 545 and second logical processor
`315 may still be operating in global power state 515. There
`may be any number of pseudo power states within each global
`power state. Additionally, FIG. 5 illustrates second pseudo
`power state 545 at the same

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket