throbber
(12) United States Patent
`Kruglick
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,892,931 B2
`Nov. 18, 2014
`
`US008892931B2
`
`(54) POWER CHANNEL MONITOR FORA
`MULTICORE PROCESSOR
`(75) Inventor: Ezekiel John Joseph Kruglick, Poway,
`CA (US)
`
`(73) Assignee: tips theseevelopment LLC,
`glon,
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 260 days.
`
`(*) Notice:
`
`1
`(21) Appl. No.: 12/582,301
`(22) Filed:
`Oct. 20, 2009
`
`(65)
`
`Prior Publication Data
`
`Apr. 21, 2011
`
`US 2011 FOO93733 A1
`(51) Int. Cl.
`G06F L/26
`(2006.01)
`G06F L/32
`(2006.01)
`(52) U.S. Cl
`CPC ............ Goof ta203 (2013.01). Goof ta243
`(2013.01); Y02B 60/1239 (2013.01)
`USPC ............. 713/340; 713/300; 713/320: 714/22;
`711/211: 711/E12.033
`(58) Field of Classification Search
`USPC ................. 713/300,320, 322,323,324, 340;
`714/22; 711/211, E12.033
`See application file for complete search history.
`
`56
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`7, 1980 Marsh et al.
`4,210,962 A
`4, 1990 Persoon et al.
`4,916,659 A
`4, 1998 Alfieri
`5,745,778 A
`9, 1998 TSuchida et al.
`5,806,059 A
`5,826,079 A 10, 1998 Boland et al.
`
`
`
`32. R 238, States al
`Suchida et al.
`6,658.448 B1
`12/2003 Stefaniak et al.
`6,745,336 B1
`6/2004 Mart
`i et al.
`6,769,017 B1
`T/2004 E" a
`6,782.410 B1
`8/2004 Bhagatet al.
`7,143,412 B2 11/2006 Koenen
`7,146,607 B2 12/2006 Nair et al.
`7.363.523 B2
`4/2008 Kurts et al.
`(Continued)
`
`EP
`JP
`
`FOREIGN PATENT DOCUMENTS
`1736,851 A2 12/2006
`HO8315598 A 11, 1996
`(Continued)
`OTHER PUBLICATIONS
`
`Brooks et al., “Dynamic Thermal Management for High-Perfor
`mance Microprocessors” Jan. 2001, Proceedings of the 7' Interna
`tional Symposium on High Performance Computer Architecture, 12
`aSCS.
`pag
`
`(Continued)
`Primary Examiner — Michael J Brown
`(74) Attorney, Agent, or Firm Hope Baldauff, LLC
`(57)
`ABSTRACT
`Technologies are generally described for power channel
`monitoring in multicore processors. A power management
`system can be configured to monitor the power channels
`supplving individual cores within a multicore processor. A
`pply 1ng
`p
`power channel monitor can provide a direct measurement of
`power consumption for each core. The power consumption of
`individual cores can indicate which cores are encounterin
`9.
`higher or lower usage. The usage determination can be made
`without sending any data messages to, or from, the cores
`being measured. The determined usage load being serviced
`by each processor core may be used to adjust power and/or
`clock signals Supplied to the cores.
`
`19 Claims, 6 Drawing Sheets
`
`SUPPLY
`
`MANAGER
`160
`
`MONITOR
`150
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 1 of 16
`
`

`

`US 8,892.931 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`6/2008 Wyman
`7,383,396 B2
`7,437.581 B2 10/2008 Grochowski et al.
`7,574,567 B2
`8/2009 Wyman
`8,051.418 B1
`1 1/2011 Dice
`8,078,832 B1
`12/2011 Agarwal et al.
`8, 108,843 B2
`1/2012 Nair et al.
`8, 181,169 B2
`5, 2012 Nakaike et al.
`8,214,817 B2
`7, 2012 Mendelson et al.
`8443,341 B2
`5/2013 Berget al.
`2003/0171907 A1
`9, 2003 Gal-On et al.
`2003/0236919 A1
`12/2003 Johnson et al.
`2004/O181730 A1*
`9/2004 Monfared et al. ............ 714/745
`2005. O154861 A1
`7/2005 Arimilli et al.
`9/2005 Accapadi et al.
`2005/0210472 A1
`11/2005 Accapadi et al.
`2005.0246461 A1
`2006,0041599 A1
`2, 2006 Tsuchida et al.
`2006/0225,074 A1
`10, 2006 Vaid et al.
`1 1/2006 Maejima
`2006, O2598OO A1
`2/2007 Agrawal et al.
`2007/0027.972 A1
`2/2007 Wang et al.
`2007/0044084 A1
`2007/OO793O8 A1
`4/2007 Chiaramonte et al.
`5/2007 May et al.
`2007/O1244.57 A1
`2/2008 Dillenberger et al.
`2008, 0046895 A1
`2008/O126751 A1
`5, 2008 Mizrachi et al.
`7/2008 Accapadi et al.
`2008/01781.83 A1
`2008/O181283 A1* 7/2008 Elhanati et al. ............... 375/130
`2008/0229127 A1* 9, 2008 Felter et al. ................... T13,320
`2009, OO31317 A1
`1/2009 Gopalan et al.
`2009 OO31318 A1
`1/2009 Gopalan et al.
`2009/0070553 A1
`3/2009 Wallach et al.
`2009, OO77562 A1
`3/2009 Sen et al.
`2009.0125894 A1
`5, 2009 Nair et al.
`2009/0126006 A1
`5/2009 Zhang et al.
`2009/O187915 A1
`7/2009 Chew et al.
`2010.0017804 A1
`1/2010 Gupta et al.
`2010/0122101 A1* 5/2010 Nafziger et al. ............. T13,340
`2010.019 1854 A1
`7, 2010 Isci et al.
`2010/0225496 A1* 9, 2010 Hou et al. .................. 340,636.1
`2011 OOO4692 A1
`1/2011 Occhino et al.
`4/2011 Kruglick
`2011 OO88021 A1
`4/2011 Kruglick
`2011 OO88022 A1
`4/2011 Kruglick
`2011 OO88038 A1
`2011 OO88041 A1
`4/2011 Alameldeen et al.
`2011/0302585 A1
`12/2011 Dice
`
`FOREIGN PATENT DOCUMENTS
`
`JP
`JP
`JP
`JP
`
`3, 2005
`2005085164. A
`2006318380 A 11, 2006
`2008513912. A
`5, 2008
`2008.306522
`12/2008
`
`OTHER PUBLICATIONS
`
`Donald et al., “Techniques for Multicore Thermal Management:
`Classification and New Exploration”. Jun. 2006, Proceedings of the
`33" Annual International Symposium on Computer Architecture, pp.
`78-88.
`
`Kang et al., “Preliminary Study toward Intelligent Run-time
`Resource Management Techniques for Large Multi-Core Architec
`tures.” Apr. 15, 2008, University of Southern California—Informa
`tion Sciences Institute, 2 pages.
`Shirako et al., “Compiler Control Power Saving Scheme for Multi
`Core Processors' In Lecture Notes in Computer Science. Languages
`and Compilers for Parallel Computing, vol. 4339/2006. Springer
`Verlag, Berlin, pp. 362-376, 2007.
`International Search Reportdated Feb. 3, 2011 in International Appli
`cation No. PCT/US2010/0531.10.
`“P6T New Era for Ultimate Performance Intel(R) CoreTM i7 Plat
`form,” accessed at http://www.asus.com/Motherboards/Intel
`Socket 1366/P6T, accessed on Mar. 5, 2012, pp. 4.
`U.S. Office Action dated Jan. 31, 2012 in U.S. Appl. No. 12/578,321.
`U.S. Office Action dated Jul. 5, 2012 in U.S. Appl. No. 12/578,321.
`U.S. Office Action dated Jun. 6, 2012 in U.S. Appl. No. 12/578,295.
`U.S. Office Action dated Jun. 21, 2012 in U.S. Appl. No. 12/578,336.
`Albonesi. D., “Selective Cache Ways: On-Demand Cache Resource
`Allocation.” Nov. 1999, Proceedings of the International Symposium
`on Microarchitecture, 12 pages.
`Bala, et al., “Dynamo: A Transparent Dynamic Optimization Sys
`tem.” Jun. 2000, Proceedings of Programming Language Design and
`Implementation, 12 pages.
`Baraz, et al., “IA 32 Execution Layer: A Two-Phase Dynamic
`Translator Designed to Support IA-32 Application on Itanium(R)-
`based Systems.” Dec. 2003, Proceedings of the 36th International
`Symposium on Microarchitecture, 11 pages.
`Dehnert, et al., “The Transmeta Code MorphingTM Software: Using
`Speculation, Recovery, and Adaptive Retranslation to Address Real
`Life Challenges.” 2003, ACM International Conference Proceedings
`Series, vol. 37. Proceedings of the International Symposium on Code
`Generation and Optimization: Feedback-directed and Runtime Opti
`mization, Abstract, 9 pages.
`Ebcioglu, et al., “DAISY. Dynamic Compilation for 100% Architec
`tural Compatibility.” 1997. Proceedings of the 24th International
`Symposium on Computer Architecture, 13 pages.
`Song, et al., “Feedback-Directed Thread Scheduling with Memory
`Considerations.” ACM, Jun. 2007, pp. 1-10.
`Microsoft .NET Framework. http://www.microsoft.com/net?,
`accessed Oct. 13, 2009, 1 page.
`Song, et al., “Analytical Modeling and Optimization for Affinity
`Based Tread Scheduling on Multicore Systems”. Jul 14, 2009, IEEE
`Cluster 2009, New Orleans, Louisiana, 10 pages.
`Japanese Office Action dated Sep. 3, 2013.
`U.S. Office Action dated Nov. 21, 2012 in U.S. Appl. No. 12/578,295.
`U.S. Office Action dated Nov. 21, 2012 in U.S. Appl. No. 12/578.336.
`U.S. Official Action dated Sep. 5, 2013 in U.S. Appl. No. 12/578,321.
`U.S. Notice of Allowance dated Sep. 17, 2013 in U.S. Appl. No.
`12/578,336.
`Simon, CS 267: Applications of Parallel Computers Lecture 17:
`Parallel Sparse Matrix-Vector Multiplication; pp. 66; Oct. 22, 2002.
`http://www.cs.berkeley.edu/~strive/cs267.
`Filch et al., On the Potential of NOC Virtualization for Multicore
`Chips; Scalable Computing: Practice and Experience; vol. 9, No. 3,
`pp. 165-177 http://www.scpe.org: 2008.
`U.S. Official Action dated Jan. 28, 2014 in U.S. Appl. No.
`12/578,321.
`
`* cited by examiner
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 2 of 16
`
`

`

`U.S. Patent
`
`Nov. 18, 2014
`
`Sheet 1 of 6
`
`US 8,892,931 B2
`
`
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 3 of 16
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov. 18, 2014
`
`Sheet 2 of 6
`
`US 8,892,931 B2
`US 8,892,931 B2
`
`YaMOd
`
`Alddns
`
`O¢}
`
`G0L2
`
`5012
`
`
`
`
`
`0012O010012d012d0L2
`
`¢Old
`
`
`
`JYOO4YOO4YOO4YOO4YOO4YOO
`
`4YOO
`
`SOl401AOlGOLSOLcn
`
`VOLT
`
`O21}
`
`VOLS
`
`Patent Owner Daedalus Prime LLC
`
`Exhibit 2004 - Page 4 of 16
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 4 of 16
`
`
`

`

`U.S. Patent
`
`Nov. 18, 2014
`
`Sheet 3 of 6
`
`US 8,892,931 B2
`
`
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 5 of 16
`
`

`

`U.S. Patent
`U.S. Patent
`
`Nov. 18, 2014
`
`Sheet 4 of 6
`
`US 8,892,931 B2
`US 8,892,931 B2
`
`
`
`Alddf\s
`
`YaMOd
`
`YOLINOW
`
`OSI
`
`vOd
`
`Patent Owner Daedalus Prime LLC
`
`Exhibit 2004 - Page 6 of 16
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 6 of 16
`
`

`

`U.S. Patent
`
`Nov. 18, 2014
`
`Sheet 5 of 6
`
`US 8,892,931 B2
`
`400 O
`
`BEGIN
`
`410
`MONITOR POWER CHANNELS SUPPLYING
`EACH CORE OF AMULTICORE PROCESSOR
`
`MEASURE POWER DELIVERED TO
`EACH CORE OVER THE POWER CHANNELS
`
`420
`
`430
`DETERMINE ALOADASSOCATED WITH
`EACH CORE FROM THE MEASURED POWER
`
`ADJUST THE POWER SUPPLIED TO
`A CORE BASEDUPON THE LOAD
`ASSOCATED WITH THE CORE
`
`ADJUST THE CLOCK SIGNAL TO
`A CORE BASEDUPON THE LOAD
`ASSOCATED WITH THE CORE
`
`440
`
`450
`
`460
`
`PROVIDE
`POWERMANAGEMENT INFORMATION TO
`THE MULTICORE PROCESSOR
`
`470
`EXPOSE A POWERMANAGEMENT CONTROL
`INTERFACE TO THE MULTICORE PROCESSOR
`
`
`
`FIG. 5
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 7 of 16
`
`

`

`X
`
`4
`
`YaLNldd
`
`WdeaHdluad
`
`
`JOVAYSLNIYOLINOW“YOssao0ud
`
`
`LdNouaMOdAYOOLLINN
`
`ar——_OSTOzer
`
`YaMOd
`
`YaOVNVAL
`
`091
`
`U.S. Patent
`
`Nov. 18, 2014
`
`Sheet 6 of 6
`
`US 8,892,931 B2
`
`YawVvsds
`
`VauVW901
`
`MYOMLAN
`
`MYOMLAN
`
`8h
`
`J
`
`ADVAYALNISAOIAIC
`
`
`MYOMLANLAdNIY4SN
`dYVvOaASyWvedoO"d
`9cl
`ANOHdOXSIN
`ONILVYAdO AYOWSN
`
`
`
`AYVMLIOS9O34INAWSO¥NVYaMOd
`

`
`LLY
`
`NOILYONdd¥
`
`samnaow
`
`
`
`SAVYoOUdWALSAS
`
`€2
`
`ceVe
`
`Patent Owner Daedalus Prime LLC
`
`Exhibit 2004 - Page 8 of 16
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 8 of 16
`
`
`
`

`

`1.
`POWER CHANNEL MONITOR FORA
`MULTICORE PROCESSOR
`
`US 8,892,931 B2
`
`2
`drawings, similar symbols typically identify similar compo
`nents, unless context dictates otherwise. The illustrative
`embodiments described in the detailed description, drawings,
`and claims are not meant to be limiting. Other embodiments
`may be utilized, and other changes may be made, without
`departing from the spirit or scope of the Subject matter pre
`sented herein. It will be readily understood that the present
`disclosure, as generally described herein, and illustrated in
`the figures can be arranged, Substituted, combined, separated,
`and designed in a wide variety of different configurations, all
`of which are explicitly contemplated herein.
`This disclosure is generally drawn, inter alia, to methods,
`apparatus, and systems related to power channel monitoring
`in multicore processors. Techniques are described for a power
`management system that can be configured to monitor the
`power channels Supplying individual cores within a multicore
`processor. The system may include a power monitor that
`provides a direct measurement of power consumption for
`each core. The power consumption of individual cores can
`indicate which cores are encountering higher or lower usage.
`The usage determination can be made without sending any
`data messages to, or from, the cores being measured. The
`determined usage load being serviced by each processor core
`may be used to adjust power and/or clock signals Supplied to
`the cores. Reducing data communications between cores can
`improve system operation, particularly as the number of cores
`increases. Furthermore, determining usage without datacom
`munications may also reduce processor computation cycles
`associated with traditional usage measurements such as
`operation counting.
`Powermonitoring in the manner presented herein can mea
`sure power consumed by processor cores within a multicore
`processor. The measured power and other power management
`information may be provided to a power manager module.
`The power manager module may be configured to adjust one
`or more operational parameters of the processor cores based
`upon the measured power. In some example scenarios, the
`power manager module may adjust the current, Voltage,
`power, clock signals, or any combination thereof provided to
`the corresponding processor cores. Example clock signal
`characteristics that can be adjusted may include a clock signal
`amplitude, frequency, Voltage, pulse width, period, or duty
`cycle. Also, the power manager module may be configured to
`indirectly adjust the use of, or task allocation to, each of the
`processor cores by providing power consumption and usage
`information to a higher level power management operation.
`Power monitoring in the manner presented herein can also
`provide more accurate processor core usage measurements
`than traditional temperature monitoring since temperature
`monitoring may be affected by the environment, the operation
`of neighboring cores, or other blocks within the integrated
`circuit Supporting the processor. Power monitoring can be
`used with dynamic Voltage and frequency scaling (DVFS)
`since the scaled Voltages or Switching frequencies will mani
`fest as reduced monitored power consumption. According to
`Some embodiments, power monitoring may also serve as a
`watchdog monitor to identify when a processor core is locked
`in an infinite loop or some other error state. These states can
`often be associated with consistently high power consump
`tion by an affected processor core.
`FIG. 1 is a block diagram illustrating a multicore processor
`120 configured for power channel monitoring according to
`one or more embodiments presented herein. The multicore
`processor 120 may comprise multiple cores 110A-110P. The
`multiple cores 110A-110P may be referred to collectively, or
`in general, as cores 110. A power Supply 130 (e.g., a power
`Supply circuit, a power Supply module, etc.) associated with
`
`BACKGROUND
`
`Unless otherwise indicated herein, the materials described
`in this section are not prior art to the claims in this application
`and are not admitted to be prior art by inclusion in this section.
`Multicore processors are generally made up of multiple
`processor cores with interconnections between the individual
`cores. Some architectures for interconnecting individual
`cores Support communication between neighboring cores
`with high efficiency. However, communications between
`nonadjacent cores within the multicore processor may incur
`delays due to passing messages between intermediate cores.
`As core counts within multicore processors increase, optimi
`Zation of communication between cores becomes increas
`ingly important. These communications may include mes
`sages querying the level load on the different cores within the
`multicore processor.
`Dynamic Voltage and frequency scaling (DVFS) is a power
`management technique where Voltages and/or clock frequen
`cies associated with a processor are adjusted to manage heat
`generation and power consumption. Dynamic Voltage scaling
`can decrease the Voltage applied to a processor in order to
`conserve power. This may be particularly useful in laptop
`computers and other types of battery powered mobile devices.
`Dynamic Voltage scaling can increase the Voltage applied to a
`processor in order to increase computer performance.
`Dynamic frequency scaling can decrease, or even pause, the
`clock frequency of the processor in order to decrease power
`consumption.
`Attempts to apply DVFS to individual cores within a mul
`ticore processor may encounter a number of difficulties as the
`number of cores increases. For example, obtaining steady and
`up-to-date information on the computation load or power
`required by each core through message queries to the cores
`can scale into a performance limitation for the multicore
`processor.
`
`5
`
`10
`
`15
`
`25
`
`30
`
`35
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`The foregoing and other features of this disclosure will
`become more fully apparent from the following description
`and appended claims, taken in conjunction with the accom
`panying drawings. Understanding that these drawings depict
`only several embodiments in accordance with the disclosure
`and are, therefore, not to be considered limiting of its scope,
`the disclosure will be described with additional specificity
`and detail through use of the accompanying drawings, in
`which:
`FIG. 1 is a block diagram illustrating a multicore processor
`configured for power channel monitoring;
`FIG. 2 is a schematic diagram illustrating a multicore pro
`cessor with various power distribution architectures:
`FIG. 3 is a schematic diagram illustrating a multicore pro
`cessor having a multiplexed power monitor;
`FIG. 4 is a schematic diagram illustrating a multicore pro
`cessor having a multiplexed power monitor using current
`Sensors;
`FIG. 5 is a flow diagram illustrating a process for power
`channel monitoring in a multicore processor, and
`FIG. 6 is a block diagram illustrating an example comput
`ing system, all arranged according to at least some embodi
`ments presented herein.
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`DETAILED DESCRIPTION
`
`In the following detailed description, reference is made to
`the accompanying drawings, which form a parthereof. In the
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 9 of 16
`
`

`

`US 8,892,931 B2
`
`10
`
`15
`
`3
`the multicore processor 120 can be configured to provide
`power supply channels to the cores 110. The power supply
`channels may also be referred to as power rails. Power for
`each core, or group of cores, may be Supplied by a separate
`power channel.
`A power monitor 150 (e.g., a power monitor circuit, a
`power monitor module, etc.) associated with the multicore
`processor can be configured to monitor each of the power
`channels to determine the amount of power Supplied from the
`power supply 130 to each of the cores 110. A power manager
`160 (e.g., a power manager circuit, a power manager module,
`etc.) associated with the multicore processor 120 can be con
`figured to cooperatively operate with the power supply 130
`and the power monitor 150 to provide power management and
`thermal management for the multiprocessor 120.
`According to Some embodiments, the power manager 160
`can be configured to control the power supply 130 in response
`to measurements from the power monitor 150. According to
`some other embodiments, the power manager 160 can be
`configured to control clock signals Supplied to one or more of
`the cores 110 in response to measurements from the power
`monitor module 150. According to yet some other embodi
`ments, the power manager 160 can be configured to provide
`an interface to the cores 110 or other components of the
`multicore processor 120 or associated computing device. The
`provided interface may be adapted to read status information
`related to the power manager 160, Such as power channel
`measurements obtained from the power monitor 150. The
`interface may also be adapted to write to the power manager
`160 to set configurations, controls or other variables associ
`ated with one or more of the power manager 160, the power
`monitor 150, and/or the power supply 130.
`One example of dynamic thermal management that may be
`employed by the power manager 160 can be referred to as
`clock gating. Global clock gating can be adapted to turn off
`all, or Substantially all, clock signals to halt processor opera
`tion of multicore processor 120. Local clock gating can be
`adapted to turn off individual clock signals to cores 110 or
`other blocks of the multicore processor 120. The gating off of
`40
`clocks can temporarily reduce power consumption and may
`be used when there is an over-temperature condition or when
`an over-temperature condition is being avoided. While clocks
`are gated off, processor states Such as registers, branch pre
`dictor tables, and local caches may be maintained. As such,
`clock gating can act as a suspend, or sleep, mode for processor
`cores 110 within the multicore processor 120 rather than an
`off-switch.
`In addition to gating clock signals to temporarily stop one
`or more of the cores 110, the power manager 160 may also be
`configured to adjust the clock frequency (e.g., decrease the
`frequency to slow operational speed, or increase the fre
`quency to increase operational speed) Supplied to one or more
`of the cores 110. Alternatively, the clock may be run at a
`constant speed during the on-state of a duty cycle and gated
`off during the off-state of the duty cycle. As such, a clock duty
`cycle may adjusted by the power manager 160 to provide a
`periodic gating of the clock to reduce power consumption at
`the corresponding core 110. In addition to clock frequency
`and duty cycle, additional characteristics of the clock signal
`can be adjusted Such as signal amplitude (either single ended
`or differential), voltage or current level, pulse width, period,
`etc. Adjusting of one or more characteristics associated with
`clock signals may be controlled by the power manager 160
`Such that the power consumption associated with each of the
`individual cores 110 within the multicore processor 120 may
`be controlled.
`
`30
`
`4
`By providing a status and control interface, the power
`manager 160 may also be arranged to Support higher level
`power management techniques. For example, policy-based
`thread migration techniques can be configured to relocate
`processes or threads between the cores 110 to manage power
`consumption and thermal characteristics of multicore proces
`Sor 120. These higher level power management techniques
`may also be combined with physical approaches such as
`DVFS. Empirical tests can demonstrate that a multicore pro
`cessor 120 having two cores 110 using thread relocation
`management along with basic Voltage and frequency man
`agement can, in Some examples, yield approximately 250%
`improvement in available resources or inequivalent reduction
`in power consumption.
`According to another higher level, or hybrid, power man
`agement approach, a compiler or runtime environment may
`be configured to set optimization parameters used to compile
`or execute code according to the power management condi
`tion of a processor or core 110. The compiler can also be
`configured to suggest DVFS settings for the processor or core
`110 according to computational needs.
`It should be appreciated that the power channel monitoring
`techniques presented herein may be applied not only to pro
`cessor cores 110, but also to any other blocks or functional
`units within the multicore processor 120. For example,
`memories, caches, input/output drivers, controllers, other
`blocks, or other functional units within the multicore proces
`sor 120 may be supported by the power channel monitoring
`techniques presented herein. Furthermore, the techniques
`may be applied to any blocks, cores, modules, circuits or
`other Subdivisions within any integrated circuit, chip, system
`on chip (SOC), multichip array, application specific inte
`grated circuits (ASICs), field programmable gate arrays (FP
`GAS), other programmable logic, memories, controllers, or
`so forth where such subdivisions may have individual, or
`partially isolated, power Supply channels.
`It should be appreciated that functions of the power moni
`tor 150 and the power manager 160 may be provided within
`other modules. For example, such functionality may be inte
`grated into the power Supply 130 or other control, manage
`ment, or supervisor modules. Similarly, the functions of the
`power monitor 150 and the power manager 160 may be com
`bined into a single module.
`Turning now to FIG. 2, a schematic diagram illustrates a
`multicore processor 120 with various power distribution
`architectures arranged according to one or more embodi
`ments presented herein. The power supply 130 can be con
`figured to supply power to the cores 110 of the multicore
`processor. Power for each core, or group of cores, may be
`Supplied by a separate power channel. For example, power
`channel 210A may supply power from the power supply 130
`to the processor core 110A while power channel 210B may
`supply power from the power supply 130 to both of the
`processor cores 110B and 110C. Similarly, power channel
`210C may supply power from the power supply 130 to the
`three processor cores 110D, 110E, and 110F. According to
`Some embodiments, power may be supplied to each core, or
`group of cores, with two or more power channels. For
`example, the power channel 210D may be configured to sup
`ply power at 5VDC (volts direct current) to the processor core
`110G while a second power channel may be configured to
`supply power at 3.3 VDC to the same processor core 110G.
`Various other levels of power Supply Voltage or current may
`also be supported according to various embodiments.
`Turning now to FIG. 3, a schematic diagram illustrates a
`multicore processor 120 having a multiplexed power monitor
`arranged according to one or more embodiments presented
`
`25
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Patent Owner Daedalus Prime LLC
`Exhibit 2004 - Page 10 of 16
`
`

`

`US 8,892,931 B2
`
`10
`
`15
`
`5
`herein. The power supply 130 can be configured to supply
`power to the cores 110 of the multicore processor. In this
`example, power can be supplied to core 110A over power
`channel 210A, to core 110B overpower channel 210B, and to
`core 110C over power channel 210C. The power channels
`210A-210C may be referred to collectively, or in general, as
`power channels 210. While three cores 110 are illustrated
`along with three power channels 210, it should be appreciated
`that any number of cores 110 and power channels 210 may be
`present within the multicore processor. The number of cores
`110 and power channels 210 may be the same, or the number
`may differ as more than one core 110 may be supplied by a
`single power channel 210 and a core 110 may be supplied by
`more than one power channel 210.
`The power delivered over each of the power channels 210
`may be measured by the power monitor 150. According to
`Some embodiments, an analog-to-digital converter (ADC)
`230 may be adapted to measure the analog state of a power
`channel 210 and provide digital information that corresponds
`to the measured analog state. In one example, the ADC 230
`may be configured to directly, or indirectly, measure the Volt
`age of a power channel 210. In another example, the ADC 230
`may be configured to measure the current of a power channel
`210 as further detailed with respect to FIG. 4.
`A multiplexer 220 may be configured to select which, of
`25
`several, power channels 210 is currently being sampled by the
`ADC 230. One or more control inputs 240 associated with the
`multiplexer 220 may be used to select the current power
`channel 210 for monitoring. The control inputs 240 may be
`provided by the power monitor 150, the power manager 160,
`a counter, a state machine, or other circuit or module associ
`ated with the power management of the multicore processor
`120. It should be appreciated that the multiplexer 220 and/or
`the ADC 230 may be integrated into the power monitor 150
`according to embodiments.
`The current and/or Voltage associated with the power chan
`nels 210 may be measured by the power monitor 150. Accord
`ing to various embodiments, the Voltage may be substantially
`fixed while the current may vary according to the power
`demand of the core 110. Alternatively, the current may be
`substantially fixed while the voltage varies according to the
`power demand of the core 110. Depending upon which of the
`current or Voltage are varying, the power monitor 150 can
`measure the varying current and/or the varying Voltage. The
`Substantially fixed current or Voltage can be a known, or
`specified, value. The power may then be computed according
`to the relationship that power equals current multiplied by
`voltage. For example, power (in Watts) may be determined by
`multiplying the current (in Amperes) by the Voltage (in Volts).
`Voltage may also be referred to as potential, electrical poten
`tial, potential difference, or electromotive force. Current may
`be viewed as a time rate of charge flow. Also, power may be
`considered a capacity for doing work in a given period of
`time, where work may be viewed as applying a force over a
`distance, such as when moving a charge against a field.
`The current and/or voltage of the power channels 210 may
`be measured by the power monitor 150 without substantial
`modification of the power delivery system within the multi
`core processor 120. As discussed above, direct measurement
`of the power supplied to cores 110 and other blocks of the
`multicore processor 120 can provide information about a
`computational load, or a usage level, associated with each
`core 110 without loading any data buses with message que
`1S.
`Measuring the power consumption of the cores 110 with
`the power monitor 150 may inform thermal modeling, ther
`mal load balancing, load planning, and other system manage
`
`35
`
`6
`ment functions related to power and thermal management.
`According to some embodiments, the power manager 160
`may use the power consumption information associated with
`the processor cores 110 to adjust settings for the supplied
`voltages or clock frequencies of the associated cores 110. For
`example, if a particular processor core 110 is consuming a
`reduced amount of power, the power manager 160 may deter
`mine that the core 110 is handing a reduced computation load
`and thus lower the voltage supplied to that core 110, or reduce
`the clock frequency supplied to that core 110.
`In FIG. 4, a schematic diagram illustrates a multicore pro
`cessor 120 having a multiplexed power monitor using current
`sensors 310A-310C arranged according to one or more
`embodiments presented herein. A current sensor 310A may
`be placed inline with powerchannel 210A supplying power to
`core 110A. Similarly, current sensor 310B may be placed
`inline with power channel 210B supplying power to core
`110B and current sensor 310C may be placed inline with
`power channel 210C supplying power to core 110C. The
`current sensors 310A-310C may be referred to collectively, or
`in general, as current sensors 310. According to some
`embodiments, the power monitor 150 may be configured to
`measure a current associated with the Supply channels 210.
`These current measurements may be performed using current
`sensors 310. A signal representative of the measured current
`may be a Voltage (as discussed below) or a current and may be
`converted into a digital, or numerical, value using ADC 230.
`An example current sensor 310 may involve measuring a
`drop in potential, or Voltage, over a known load (or resistance)
`that is placed inline with the power channel 210 for which
`current being measured. However, it may be undesirable,
`from a thermal and power loss perspective, to drop an entire
`Supply current through a known load. Thus, a scaled current
`mirror may be used as a current sensor 310 where a scaled
`representation of the current in the supply channel 210 may be
`provided by the current mirror for measurement. Alterna
`tively, a feedback Voltage signal within the current mirror
`may be measured directly. A current mirror can be any circuit
`designed to copy a current Supplied through one component
`of the circuit by adjusting a current within another component
`of the circuit.
`Referring now to FIG. 5, additional details will be provided
`regarding the embodiments presented herein for power chan
`nel monitoring of core usage within a multicore processor. In
`particular, FIG. 5 is a flow diagram illustrating a process 400
`for power channel monitoring in a multicore processor
`arranged according to at least Some embodiments presented
`herein.
`It should be appreciated that the operations described
`hereinare implemented as a sequence of operational or manu
`facturing acts, as a sequence of computer implemented acts or
`program modules running on a computing system, or as inter
`connected machine logic circuits or circuit modules within
`the computing system. The implementation is a matter of
`choice dependent on the performance and other requirements
`of the various embodiments. Some of the logical operations
`desc

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