CN104067199B - 在异构多处理器片上系统中进行热驱动的工作负荷调度的方法和系统 - Google Patents
在异构多处理器片上系统中进行热驱动的工作负荷调度的方法和系统 Download PDFInfo
- Publication number
- CN104067199B CN104067199B CN201280067364.0A CN201280067364A CN104067199B CN 104067199 B CN104067199 B CN 104067199B CN 201280067364 A CN201280067364 A CN 201280067364A CN 104067199 B CN104067199 B CN 104067199B
- Authority
- CN
- China
- Prior art keywords
- processing assembly
- processing
- code block
- performance curve
- efficient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 241
- 230000000712 assembly Effects 0.000 claims abstract description 37
- 238000000429 assembly Methods 0.000 claims abstract description 37
- 238000003860 storage Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000000630 rising effect Effects 0.000 claims description 8
- 240000002853 Nelumbo nucifera Species 0.000 claims description 5
- 235000006508 Nelumbo nucifera Nutrition 0.000 claims description 5
- 235000006510 Nelumbo pentapetala Nutrition 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 3
- 238000012797 qualification Methods 0.000 claims 2
- 238000009826 distribution Methods 0.000 abstract description 14
- 238000005516 engineering process Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 26
- 238000010835 comparative analysis Methods 0.000 description 23
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 11
- 230000000116 mitigating effect Effects 0.000 description 9
- NEOGGGHDLGYATP-UHFFFAOYSA-N 1,6-dimethylimidazo[4,5-b]pyridin-2-amine Chemical compound CC1=CN=C2N=C(N)N(C)C2=C1 NEOGGGHDLGYATP-UHFFFAOYSA-N 0.000 description 7
- 239000013256 coordination polymer Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000001816 cooling Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 244000131316 Panax pseudoginseng Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 239000011469 building brick Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- OCUUDCWEKWOMFA-UHFFFAOYSA-N imidazol-1-yl-dimethyl-propan-2-ylsilane Chemical compound CC(C)[Si](C)(C)N1C=CN=C1 OCUUDCWEKWOMFA-UHFFFAOYSA-N 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了用于在包含异构多处理器片上系统(“SoC”)的便携式计算设备中对工作负荷进行热感知调度的各方法和系统的各种实施例。由于异构多处理器SoC中的个体处理组件在给定温度下可展现不同的处理效率,且由于这些处理组件中不止一个处理组件可能能够处理给定码块,因此可以利用将这些个体处理组件在其所测量的工作温度下的各性能曲线进行比较的热感知工作负荷调度技术,通过实时、或近实时地将工作负荷分配给被最佳定位成高效地处理该码块的处理组件来使服务质量(“QoS”)最优化。
Description
相关申请的交叉引用
根据35 U.S.C.§119(e)要求于2011年11月21日提交、并且被转让的申请S/N.61/562,234、题为“THERMALLY DRIVEN WORKLOAD SCHEDULING IN A HETEROGENEOUS MULTI-PROCESSOR SYSTEM ON A CHIP(在异构多处理器片上系统中进行热驱动的工作负荷调度)”的美国临时申请的优先权,其全部内容通过援引纳入于此。
技术领域
本申请涉及异构多处理片上系统,尤其涉及在异构多处理器片上系统中进行热驱动的工作负荷调度的方法和系统。
技术背景
便携式计算设备(“PCD”)正成为人们在个人和职业层面上的必需品。这些设备可包括蜂窝电话、便携式数字助理(“PDA”)、便携式游戏控制台、掌上型计算机、和其他便携式电子设备。
PCD的一个独特方面是它们通常不具有有源冷却设备(如风扇),这些冷却设备经常在较大的计算设备(诸如膝上型和台式计算机)中找到。取代使用风扇,PCD可依赖于电子封装的空间安排,从而两个或更多个有源和产热组件不会彼此邻近地放置。当两个或更多个产热组件在PCD内彼此适当间隔开时,从每个组件的操作产生的热量可能不会负面地影响另一个组件的操作。此外,当PCD内的产热组件在物理上与该设备内的其它组件隔离时,从该产热组件的操作所产生的热量就不会负面地影响其它周围的电子设备。许多PCD也可依赖于无源冷却设备(诸如热沉)以管理共同形成各个PCD的电子组件间的热能。
现实是PCD通常在尺寸上受限,并且因此PCD内用于诸组件的空间往往是非常珍贵的。由此,对工程师和设计者而言,通常在PCD内没有足够的空间以通过利用空间安排或无源冷却组件放置来缓解热降级或故障。因此,热能产生通常在PCD中通过应用各种热管理技术进行管理,这些热管理技术可包括以性能为代价而衰弱或关闭电子设备。
PCD内采用热管理技术,力图在缓解热能产生与影响由PCD提供的服务质量(“QoS”)之间寻求平衡。在具有异构处理组件的PCD中,可能难以管理平衡该折衷的后果,因为PCD内各个处理组件并非被创建成等同。例如,PCD中可以存在能够处理给定码块的多个处理组件,并且取决于那些组件的相应工作温度,一个组件在处理该码块方面将比另一个组件更高效。因此,当工作负荷任务完成并且热缓解措施被应用时,被最佳定位成处理码块的特定处理器可能根据各个处理器的个体工作温度而不时地变化。
因此,本领域中需要一种用于基于对处理器性能曲线的实时、或近实时的比较性分析来在PCD中跨异构处理组件调度或分配工作负荷的方法和系统。
发明内容
公开了用于在包含异构多处理器片上系统(“SoC”)的便携式计算设备中对工作负荷进行热感知调度的各方法和系统的各种实施例。由于异构多处理器SoC中的个体处理组件在给定温度处可展现不同的处理效率,且由于这些处理组件中不止一个处理组件可能能够处理给定码块,因此可以利用将这些个体处理组件在其所测量的工作温度下的各性能曲线进行比较的热感知工作负荷调度技术,通过实时、或近实时地将工作负荷分配给被最佳定位成高效地处理该码块的处理组件来使服务质量(“QoS”)最优化。
一种此种方法涉及监视与异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联的温度读数。当调度供处理的码块成为必要时,这多个处理组件中有资格处理该码块的两个或更多个处理组件被标识。与标识出的处理组件中的每一者相关联的温度读数被获取并且用于查询与关联于这些处理组件的性能曲线有关的温度的数据库。这些性能曲线表示对于给定个体处理组件,在该处理组件在给定温度下工作时功耗与工作负荷处理能力之间的关系。比较所查询的性能曲线,并且基于该比较,选择可用于处理该码块的最高效的处理组件。该码块被分配给所选处理组件。
该方法的一些实施例通过将这些处理组件的当前工作负荷映射到所查询的与每个处理组件相关联的性能曲线,选择最高效的处理组件。其他实施例将由该码块表示的工作负荷负担添加到个体处理组件的当前工作负荷负担,并且随后将未来工作负荷映射到所查询的与每个处理组件相关联的性能曲线。又一些实施例预测可能因向有资格的处理组件中的每一者分配该码块而引起的可能温度上升,并且基于预测温度来查询每个处理组件的性能曲线。
有利的是,该系统和方法的各实施例通过在供处理的各码块从调度队列到达时,实时、或近实时地选择最佳可用处理组件来使QoS最优化。以此方式,工作负荷负担可被指派给被最佳定位成高效地处理这些工作负荷的处理组件。值得注意的是,如本领域普通技术人员将认识到的,用于工作负荷的热感知调度的各系统和方法可以在与各种处理组件相关联的工作温度随时间变化时将相似或相同的码块调度给不同的处理组件。即,被最佳定位用于在一个时间点高效地处理给定码块的某个处理组件可能在稍后时间点并不是被最佳定位用于处理相同码块的处理组件。
附图说明
在附图中,除非另行指出,否则相似的参考标号贯穿各视图指示相似的部分。对于带有字母字符名称的参考标号(诸如,“102A”或“102B”),该字母字符名称可区分同一附图中存在的两个相似部件或元素。在意图使一参考标号涵盖所有附图中具有相同参考标号的所有部件时,可略去参考标号的字母字符名称。
图1是解说在不同热状况下工作的示例性处理组件的一对性能曲线的示图;
图2是解说在不同热状况下工作的两个示例性处理组件(即,“低性能”中央处理单元(“CPU”)处理组件和“高性能”图形处理单元(“GPU”)处理组件)中每一者的一对性能曲线的示图;
图3是解说用于通过跨异构多处理器片上系统(“SoC”)进行热感知工作负荷调度来在便携式计算设备(“PCD”)中使服务质量(“QoS”)最优化的片上系统的一个实施例的功能框图;
图4是解说图3的PCD的示例性实施例的功能框图;
图5A是解说用于图4中解说的芯片的硬件的示例性空间安排的功能框图;
图5B是解说图4的PCD的用于支持基于对处理器性能曲线的比较性分析进行热感知工作负荷调度的示例性软件架构的示意图;
图6是解说用于基于对处理器性能曲线的比较性分析来跨异构处理组件进行热感知工作负荷调度的方法的实施例的逻辑流程图;
图7是解说用于对处理器性能曲线的比较性分析的示例性子方法或子例程的逻辑流程图;
图8是解说用于对处理器性能曲线的比较性分析的示例性子方法或子例程的逻辑流程图;以及
图9是解说用于对处理器性能曲线的比较性分析的示例性子方法或子例程的逻辑流程图。
具体实施方式
措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为排斥、优于或胜过其他方面。
在本描述中,术语“应用”还可包括具有诸如:对象代码、脚本、字节码、标记预言文件和补片之类的可执行内容的文件。对象代码、此外,本文中引述的“应用”还可包括本质上不可执行的文件,诸如可能需要打开的文档或需要被访问的其他数据文件。
如在本描述中所使用的,术语“组件”、“数据库”、“模块”、“系统”、“热能产生组件”、“处理组件”、“处理引擎”和类似术语旨在引述计算机相关实体,其是硬件、固件、硬件与软件的组合、软件、或是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为解说,计算设备上运行的应用和计算设备两者都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可局部化在一台计算机上和/或分布在两台或更多台计算机之间。另外,这些组件可从其上存储有各种数据结构的各种计算机可读介质来执行。各组件可借助于本地和/或远程过程来通信,诸如根据具有一个或多个数据分组的信号(例如,来自借助于该信号与本地系统、分布式系统中的另一组件交互、和/或跨诸如因特网等网络与其它系统交互的一个组件的数据)。
在本描述中,除非另行指出,否则术语“中央处理单元(“CPU”)”、“数字信号处理器(”DSP”)”、以及“芯片”是可驻留在PCD中的各处理组件的非限定性示例且被可互换地使用。此外,如本描述中区分的,CPU、DSP、或芯片可包括一般被称为“核”以及“子核”的一个或多个相异的处理组件。
在本说明书中,将理解,术语“热”和“热能”可与能够产生或耗散能以“温度”为单位来测量的能量的设备或组件相关联地使用。因此,将进一步理解,术语“温度”参照某标准值预想了任何可指示“热能”产生设备或组件的相对温暖、或缺少热的度量。例如,当两个组件处于“热”平衡时,这两个组件的“温度”是相同的。
在本描述中,术语“工作负荷”、“处理负荷”、“处理工作负荷”以及“码块”被可互换地使用且一般指向与给定实施例中的给定处理组件相关联的或被指派到给定实施例中的给定处理组件的处理负担、或处理负担的百分比。在以上定义的内容之外进一步地,“处理组件”或“热能产生组件”或“热侵源(thermal aggressor)”可以是但不限于中央处理单元、图形处理单元、核、主核、子核、处理区域、硬件引擎等,或驻留于便携式计算设备内的集成电路中、或在便携式计算设备内的集成电路外部的任何组件。并且,在术语“热负荷”、“热分布”、“热特征”、“热处理负荷”等指示可能在处理组件上运行的工作负荷负担的程度上,本领域普通技术人员将知晓在本公开中这些“热”术语的使用可与处理负荷分布、工作负荷负担以及功耗有关。
在本描述中,术语“热缓解技术”、“热策略”、“热管理”以及“热缓解措施”被可互换地使用。
本领域普通技术人员将认识到,术语“DMIPS”表示每秒处理给定百万条指令所需的Dhrystone迭代数。在本描述中,该术语在示例性实施例中被用作通用测量单位以指示处理器性能的相对水平,并且将不被解读为暗示落入本发明范围内的任何给定实施例必须包括或必须不包括具有任何特定Dhrystone等级的处理器。
在本描述中,术语“便携式计算设备”(“PCD”)用于描述基于有限容量的电源(诸如电池)进行操作的任何设备。尽管电池运行的PCD已经被使用了数十年,但可再充电电池方面的技术进步结合第三代(“3G”)和第四代(“4G”)无线技术的到来,已经使得能够实现具有多种能力的众多PCD。因此,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接的膝上型计算机等。
在具有异构处理组件的PCD中针对QoS最优化来管理处理性能可以通过利用可用于工作负荷分配的个体处理引擎的不同性能特性来实现。关于在异构处理组件中可包括的各个处理引擎的不同性能特性,本领域普通技术人员将认识到,性能差异可归因于任何数目的原因,包括但不限于,不同等级的硅、设计变化等。此外,本领域普通技术人员将认识到,与任何给定处理组件相关联的性能特性可关于处理组件的工作温度、向该处理单元提供的功率等而变化。
例如,考虑可包括多个不同处理核的示例性异构多核处理器,这多个不同处理核一般在性能容量方面范围从低至高(值得注意的是,本领域普通技术人员将认识到,还可以考虑可包括多个不同处理组件的示例性异构多处理器片上系统(“SoC”),这多个不同处理组件各自包含一个或多个核)。如将由本领域普通技术人员理解的,与具有相对高性能容量的处理核相比,异构处理器内的低性能至中等性能处理核在给定工作负荷容量处将展现较低的功率泄漏率,并且因而展现较低的热能产生率。与较低容量的核相比,较高容量的核可以能够在较短时间量里处理给定数目的DMIP。类似地,与以其未加抑制的全容量处理时相比,处理速度已衰弱的高容量的核可以在给定工作负荷容量下展现较低的功率泄漏率,并且因而展现较低的热能产生率。
尽管如此,取决于这些核可工作的热状况,较低性能的核与高性能核相比在处理给定数目的DMIP时(在功耗方面)可能更高效或更低效。由此,通过考虑异构处理器内不同核的个体性能曲线(其中这些性能曲线指示给定核在给定工作温度为处理给定数目的DMIP所消耗的功率),可以利用热感知调度算法向提供最佳效率的处理核分配工作负荷。类似地,并且同样基于异构处理器内不同核的个体性能曲线,可以利用热感知调度算法来分配工作负荷,从而跨整个处理组件的功率密度被最优化,尽管与个体核相关联的处理效率可能未被最优化。
作为非限定性示例,特定码块可由示例性PCD内的中央处理单元(“CPU”)或图形处理单元(“GPU”)来处理。有利的是,代替预先确定特定码块将由CPU或GPU中的一者来处理,示例性实施例可以在处理该码的需求成熟时选择向这些处理组件中的哪一个指派处理该码块的任务。即,可以对CPU和GPU的性能曲线的“快照”进行比较,从而工作负荷被指派给最佳装备成高效地处理该码块的处理器。值得注意的是,将理解,在这些码块退出调度队列时,针对分配后续工作负荷的后续处理器选择可以实时或近实时地作出。以此方式,热感知调度模块可以利用与异构处理器中的个体核相关联的工作温度,通过就在工作负荷分配前选择处理核来使QoS最优化。
图1是解说在不同热状况下工作的示例性处理组件的一对性能曲线(核105℃、核95℃)的示图300。处理组件可以是异构多核处理器内的核,并且可以是高容量、中等容量或低容量的核。更具体地,如本领域普通技术人员将知晓的,处理组件可以是能够处理给定码块的任何处理引擎,包括但不限于,CPU、GPU、DSP、可编程阵列等等。此外,如上所述,示例性处理引擎可以是CPU、GPU等内的核或子核。
如从图1的解说中可以看出,在工作负荷3500DMIP处,在95℃环境中工作的示例性核消耗大约620mW功率(点315),但在同一3500DMIP工作负荷处,当工作环境达到105℃时,该核的功耗增加至几乎1000mW功率(点310)。类似地,对于给定工作温度,核的处理效率随着工作负荷的增加而降低。参考核95℃曲线,例如,当工作负荷从3500DMIP增加至大约4300DMIP时,功耗增加至几乎1000mW(点305)。
从图1的解说中可以看出,对于给定处理组件,该处理组件在功耗方面的效率随着工作温度上升而降低。值得注意的是,本领域普通技术人员将认识到,示例性处理组件工作温度的上升可能由任何数目的因素或因素的组合而造成,包括但不限于,处理组件内与更高时钟速度相关联的增加的功率泄漏、毗邻处理组件的热侵源、毗邻处理组件的发生故障的组件等等。此外,本领域普通技术人员将认识到,作为与功耗增加相关联的增加的功率泄漏率的结果,处理组件上增加的工作负荷将导致工作负荷分配时与处理组件相关联的工作温度上升。无论处理组件的工作温度为何可以上升或下降,重要的是从图1的解说中注意到,一般而言,给定处理组件的处理效率随着工作温度增加而反比下降。
现在转向图2,描绘了解说在不同热状况下工作的两个示例性处理组件(即,“低性能”CPU处理组件和“高性能”GPU处理组件)中每一者的一对性能曲线(GPU 105℃、GPU 95℃;CPU 105℃、CPU 95℃)的示图400。实质上,图2的示图400描绘了两个不同的示例性处理组件的性能曲线,其中每一者可由图1的解说来表示。此外,本领域普通技术人员将认识到,由图2中这些性能曲线对表示的两个示例性处理器GPU、CPU可包含在常见的异构多处理器片上系统(“SoC”)中。
值得注意的是,通过使示例性引擎GPU、CPU的性能曲线交迭,可以看出各个转接点或跨接点405、410、415被定义在各条曲线的交叉点处。这些跨接点表示热感知调度模块可用来选择被最佳定位成高效处理给定码块的各处理组件的可能阈值。
例如,当处理器GPU、CPU中的每一者都在95℃工作时,对示例性GPU、CPU处理器性能曲线的比较性分析可以确定在大约3700DMIP(点410)的工作负荷处两个处理器GPU、CPU在处理效率方面基本上等同。然而,从比较性分析中还可以看出,CPU处理组件在点410以下更高效,即,当工作负荷小于3700DMIP时,CPU处理组件每DMIP工作负荷消耗较少功率。相反,GPU核在点410以上更高效,即,当工作负荷超出3700DMIP时,GPU核每DMIP工作负荷消耗较少功率。
因此,依赖于以上相对于示图400中的点410所概括的示例性比较性分析,利用在给定工作温度95℃处对示例性GPU、CPU性能曲线的比较性分析的热感知调度模块可以规定超出3700DMIP的工作负荷应调度给GPU处理组件。类似地,同一热感知调度组件可以规定小于3700DMIP的工作负荷应调度给CPU处理组件。
在示图400中,当工作温度在105℃量级时,同样这两个示例性处理组件GPU、CPU之间的转接点415可以触发符合以上相对于点410所概述的逻辑的处理组件选择。即,热感知调度模块可以利用对性能曲线(GPU 105℃、CPU105℃)的比较性分析来调度工作负荷,从而当所需DMIP在转接点415以上时偏好GPU处理组件来接收各码块,而在所需DMIP在转接点415以下时偏好CPU处理组件来接收各码块。
此外,将理解,由于任何数目的因素,异构多处理器SoC中的不同处理器和/或核可以在不同热状况下工作。例如,在图2的解说中,转接点405表示示例性CPU处理组件在105℃工作的性能曲线与示例性GPU处理组件在95℃工作的性能曲线的交叉点。因此,类似于上述示例性场景,通过识别示例性处理器在不同温度工作,一实施例可以利用比较性分析来就在工作负荷分配前确定这些处理器中的哪一个被最佳装备成高效地处理准备供处理的给定码块。例如,可以将2400DMIP以下的工作负荷指派给CPU处理组件,而将2400DMIP以上的工作负荷指派给GPU处理组件,以便确保在最高效的状况下处理这些工作负荷。
本领域普通技术人员将认识到,以上概述的工作负荷调度的各种场景不表示穷尽性数量的场景,其中对处理组件性能曲线的比较性分析对于在异构多核处理器和/或异构多处理器SoC中进行工作负荷调度而言可能是有益的。由此,将理解,预想了可用于比较异构多核处理器或异构多处理器SoC中的两个或更多个处理核的性能曲线,以根据具体情况来确定工作负荷分配的任何热感知调度组件或模块。根据各种实施例,对处理组件性能曲线的比较性分析可用于基于标识在工作负荷分配时可用的最高效的处理组件来在多个处理组件间调度工作负荷。
值得注意的是,预想了热感知调度算法的某些实施例可由热感知调度模块执行,以便在指派下一码块的情况下基于个体处理组件可经历的聚集工作负荷来比较一个或多个有资格的处理组件的性能曲线。例如,回头参照图2解说的示例性曲线GPU 95℃和CPU105℃,假定与这些曲线相关联的处理器GPU、CPU中的每一者当前正以2000DMIP速率进行处理,并且热感知调度模块正设法确定这两个示例性处理器中的哪一个被最佳定位成高效地处理1000DMIP的附加工作负荷。与当前正处理的2000DMIP工作负荷不同,热感知调度算法可用于基于所假定的每处理组件(GPU、CPU)3000DMIP的聚集工作负荷(先前分配的每引擎2000DMIP,加上要分配给这些引擎之一的附加1000DMIP)来比较这些曲线。对于该非限定性示例,基于图2解说的示例性曲线GPU 95℃和CPU 105℃,热感知调度模块可以选择将消耗400mW以下功率的更高效GPU来在3000DMIP进行处理,而非在同一工作负荷下将消耗500mW以上功率的CPU。
热感知调度算法的又一些实施例可用于若要指派附加工作负荷则基于曲线中的预测偏移来比较各性能曲线。例如,回头参照各自分别在工作温度95℃和105℃下以2000DMIP速率进行处理的处理器GPU和CPU的示例,热感知调度模块的各实施例可以预测这些性能曲线中可能源自所分配的附加1000DMIP工作负荷的偏移。值得注意的是,由于附加1000DMIP工作负荷可能导致被指派的处理组件消耗更多功率,因此热感知调度模块可以考虑作为附加工作负荷的结果,当前与该处理组件相关联的工作温度将上升,并且由此设法比较与这些预测温度上升相关联的各性能曲线。
返回至该示例,附加1000DMIP工作负荷可能导致GPU的工作温度从95℃增加至100℃,并且类似地,CPU的工作温度从105℃增加至110℃。因此,热感知调度模块的一个实施例可以查询并且比较与分别在预测温度100°和110°工作的核GPU和CPU相关联的各性能曲线(图2中未示出GPU 100℃和CPU 110℃性能曲线)。
图3是解说通过跨异构、多核处理组件110的热感知工作负荷调度来在PCD 100中进行QoS最优化的片上系统102的实施例的功能框图。如以上相对于图1和2的解说所说明的,跨处理组件的工作负荷分配可以基于与个体核或处理器222、224、226、228唯一地相关联的各性能曲线的比较性分析。值得注意的是,如本领域普通技术人员将认识到的,处理组件110仅出于解说性目的而被描绘成一组异构处理引擎,并且可表示具有多个异构核222、224、226、228或多个异构处理器222、224、226、228(其中每一者可以包括或可以不包括多个核和/或子核)的单个处理组件。由此,此处引用处理引擎222、224、226和228作为“核”将被理解为本质上是示例性的,并且将不限制本公开的范围。
片上系统可以使用与热策略管理器(“TPM”)模块101和热感知工作负荷调度(“TAWS”)模块207进行通信的监视器模块114来监视与核222、224、226、228个体地相关联的温度传感器157。TPM模块101可以从监视器模块114接收温度测量,并且使用该测量来确定并且应用热管理策略。由TPM模块101应用的热管理策略可以通过工作负荷从一个处理组件到另一个处理组件的重新分配、处理器时钟速度的衰弱或变化等来管理热能产生。值得注意的是,通过应用热管理策略,TPM模块101可以减少或减轻以QoS为代价的过度热能产生。
如本领域普通技术人员将认识到的,由TPM模块101所规定的热管理策略可以直接影响处理核222、224、226、228中的一个或多个处理核的工作温度。即,TPM模块101所应用的热管理技术可能以被调用以承载增加的工作负荷负担的另一处理引擎的工作温度为代价导致一个处理引擎的工作温度下降。因此,当各个处理核222、224、226、228的工作温度波动时(无论此类波动是否归因于所应用的热管理策略、外部热能源等),与那些引擎222、224、226、228相关联的性能曲线也波动。
当与核222、224、226、228中的每一者相关联的工作温度改变时,监视器模块114识别该改变,并且向TPM模块101和TAWS模块207两者传送指示该改变的温度数据。如以上说明的,所测量的工作温度中的变化可以触发TPM模块101调节或应用各种热管理策略。然而,同一温度数据可以触发TWAS模块207参考核性能(“CP”)数据存储24以基于所测得的工作温度来查询核222、224、226、228中的一个或多个核的性能曲线。随后,TAWS模块207可以比较标识出的性能曲线,以便选择在比较时被最佳定位成有效地处理给定码块的核222、224、226、228,类似于以上附图中描绘和描述的。
示例性TAWS模块207被配置成利用对与各种不同的处理组件222、224、226、228相关联的一条或多条性能曲线的比较性分析。TAWS模块207可以考虑由所比较的性能曲线的交叉点表示的转接点来为这些核中的每一者确定最优工作负荷范围,并且以核222、224、226、228中的一个或多个核持续在其最优范围中操作的方式来指派码块。有利的是,通过使用从监视器模块114接收到的温度读数以从CP数据存储24中查询性能曲线,TAWS模块207可以通过实时或近实时地向处于高效地处理工作负荷的最佳状况的特定处理引擎指派工作负荷来使QoS最优化。
值得注意的是,本领域普通技术人员将认识到,当处理组件222、224、226、228的工作温度改变时,TAWS模块207所查询和比较的性能曲线也将改变。由此,在不同时间,TAWS模块207可以选择不同的处理引擎222、224、226、228以供分配重复或类似码块。以此方式,某些实施例的优点在于,TAWS模块207确保了工作负荷指派被分配给在分配时可用的最高效的处理组件。
图4是无线电话形式的PCD 100的示例性非限定性方面的功能框图,用于实现用来监视热状况、比较性能曲线、以及将工作负荷调度到被最佳定位成供高效处理的处理组件的方法和系统。如图所示,PCD 100包括片上系统102,该片上系统102包括耦合在一起的异构多核中央处理单元(“CPU”)110和模拟信号处理器126。CPU 110可包括第零核222、第一核224、以及第N核230,如本领域普通技术人员所理解的。此外,作为CPU 110的替代,也可采用数字信号处理器(“DSP”),如本领域普通技术人员所理解的。此外,如异构多核处理器领域所理解的,核222、224、230中的每一者可以在类似工作状况下以不同效率处理工作负荷。
一般而言,TPM模块101可以负责监视并且应用包括一种或多种热缓解技术的热策略。应用这些热缓解技术可以帮助PCD 100管理热状况和/或热负荷并且避免经历不利的热状况,诸如举例而言在维持高水平功能性的同时达到临界温度。热感知工作负荷调度模块207可以接收与TPM模块101相同或相似的温度数据,还利用该温度数据来查询与核222、224、230相关联的性能曲线,执行对处理核性能曲线的比较性分析,以及将码块调度到将最高效地处理该工作负荷的核222、224、230。
图4还示出PCD 100可包括监视器模块114。监视器模块114与遍布片上系统102分布的多个操作传感器(例如,热传感器157)通信,并与PCD 100的CPU 110以及与TPM模块101和/或TAWS模块207通信。TPM模块101可以与监视器模块114一起工作以标识可以保证应用包括工作负荷分配和/或重新分配的一种或多种热缓解技术的热转接点。TAWS模块207可以与监视器模块114一起工作以查询与监视器模块114所监视的温度有关的处理器性能曲线,比较这些曲线,并且选择可用且能够处理码块的最高效的处理器。
如图4中所解说的,显示控制器128和触摸屏控制器130被耦合到数字信号处理器110。外置于片上系统102的触摸屏显示器132被耦合至显示控制器128和触摸屏控制器130。
PCD 100还可包括视频解码器134,例如逐行倒相(“PAL”)解码器、顺序传送与存储彩色电视系统(“SECAM”)解码器、国家电视系统委员会(“NTSC”)解码器或任何其他类型的视频解码器134。视频解码器134被耦合至多核中央处理单元(“CPU”)110。视频放大器136被耦合至视频解码器134和触摸屏显示器132。视频端口138被耦合至视频放大器136。如图4中所描绘的,通用串行总线(“USB”)控制器140被耦合至CPU 110。而且,USB端口142被耦合至USB控制器140。存储器112和订户身份模块(SIM)卡146还可被耦合至CPU 110。此外,如图4中所示,数字相机148可被耦合至CPU 110。在示例性方面,数字相机148是电荷耦合器件(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。
如图4中进一步解说的,立体声音频编解码器150可被耦合至模拟信号处理器126。此外,音频放大器152可被耦合至立体声音频编解码器150。在示例性方面中,第一立体声扬声器154和第二立体声扬声器156被耦合至音频放大器152。图4示出了话筒放大器158也可被耦合至立体声音频编解码器150。另外,话筒160可被耦合至话筒放大器158。在特定方面中,调频(“FM”)无线电调谐器162可被耦合至立体声音频编解码器150。同样,FM天线164被耦合至FM无线电调谐器162。此外,立体声头戴式受话机166可被耦合至立体声音频编解码器150。
图4进一步指示了射频(“RF”)收发机168可被耦合至模拟信号处理器126。RF开关170可被耦合至RF收发机168和RF天线172。如图4中所示,按键板174可被耦合至模拟信号处理器126。同样,带话筒的单声道头戴式送受话器176可被耦合至模拟信号处理器126。此外,振动器设备178可被耦合至模拟信号处理器126。图4还示出了电源180(例如电池)被耦合至片上系统102。在特定方面中,电源包括可再充电DC电池或来源于连接到交流(“AC”)电源的AC-DC变换器的DC电源。
CPU 110还可被耦合至一个或多个内置的片上热传感器157A以及一个或多个外置的片外热传感器157B。片上热传感器157A可包括一个或多个与绝对温度成比例(“PTAT”)式温度传感器,这些传感器基于垂直PNP结构并且通常专用于互补金属氧化物半导体(“CMOS”)超大规模集成(“VLSI”)电路。片外热传感器157B可包括一个或多个热敏电阻。热传感器157可产生电压降,该电压降被用模数转换器(“ADC”)控制器103转换为数字信号(参见图5A)。然而,可采用其他类型的热传感器157而不脱离本发明的范围。
除了由ADC控制器103控制和监视之外,热传感器157还可由一个或多个TPM模块101和/或TAWS模块207来控制和监视。(诸)TPM模块101和/或TAWS模块207可包括由CPU 110执行的软件。然而,(诸)TPM模块101和/或TAWS模块207还可由硬件和/或固件形成,而不会脱离本发明的范围。TPM模块101可以负责监视并应用包括一种或多种热缓解技术的热策略,这些热缓解技术可帮助PCD 100避免临界温度,同时维持高水平的功能性。TAWS模块207可以负责查询处理器性能曲线,并且基于对那些曲线的分析向在工作负荷分配时最有能力高效地处理该码的处理器指派码块。
回到图4,触摸屏显示器132、视频端口138、USB端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、话筒160、FM天线164、立体声头戴式受话机166、RF开关170、RF天线172、按键板174、单声道头戴式送受话器176、振动器178、热传感器157B、和电源180外置于片上系统102。然而,应当理解,监视器模块114还可借助于模拟信号处理器126和CPU110来从这些外置设备之中的一者或多者接收一个或多个指示或信号以辅助对可在PCD100上操作的资源的实时管理。
在特定方面,本文描述的方法步骤中的一个或多个可由存储在存储器112中的、形成一个或多个TPM模块101和/或TAWS模块207的可执行指令和参数来实现。除了ADC控制器103外,形成TPM模块101和/或TAWS模块207的这些指令可由CPU 110、模拟信号处理器126、或另一处理器来执行以执行本文描述的方法。此外,处理器110、126、存储器112、存储于其中的指令、或者其组合可用作用于执行本文中所描述的一个或多个方法步骤的装置。
图5A是解说用于图4中解说的芯片102的硬件的示例性空间安排的功能框图。根据这一示例性实施例,应用CPU 110位于芯片102的最左侧区域,而调制解调器CPU 168、126位于芯片102的最右侧区域。应用CPU 110可包括异构多核处理器,其包含第零核222、第一核224、和第N核230。应用CPU 110可以正在执行TPM模块101A和/或TAWS模块207a(在以软件实施时),或者可包括TPM模块101A和/或TAWS模块207A(在以硬件实施时)。应用CPU 110被进一步解说为包括操作系统(“O/S”)模块208和监视器模块114。以下将结合图5B来描述关于监视器模块114的进一步细节。
应用CPU 110可被耦合至一个或多个锁相环(“PLL”)209A、209B,PLL 209A、209B毗邻于应用CPU 110放置并位于芯片102的左侧区域。毗邻于PLL 209A、209B且在应用CPU 110之下可包括模数(“ADC”)控制器103,该模数控制器103可包括其自身的热策略管理器101B和/或TAWS模块207B,该热策略管理器101B和/或TAWS模块207B与应用CPU 110的主模块101A、207A协同工作。
ADC控制器103的热策略管理器101B可负责监视并跟踪可在“片上”102和“片外”102提供的多个热传感器157。片上或内置热传感器157A可被放置在各个位置。
作为非限定性示例,第一内置热传感器157A1可被置于芯片102的位于应用CPU110和调制解调器CPU 168、126之间并毗邻内置存储器112的顶部中心区域中。第二内置热传感器157A2可被置于芯片102的右侧区域上在调制解调器CPU 168、126之下的地方。第二内置热传感器157A2还可被置于高级精简指令集计算机(“RISC”)指令集机器(“ARM”)177和第一图形处理器135A之间。数模控制器(“DAC”)173可被置于第二内置热传感器157A2和调制解调器CPU 168、126之间。
第三内置热传感器157A3可被置于芯片102的最右区域中在第二图形处理器135B和第三图形处理器135C之间的地方。第四内置热传感器157A4可被置于芯片102的最右区域中并在第四图形处理器135D之下的地方。并且第五内置热传感器157A5可被置于芯片102的最左区域中并毗邻于PLL 209和ADC控制器103。
一个或多个外置热传感器157B也可被耦合至ADC控制器103。第一外置热传感器157B1可被置于片外并毗邻芯片102的可包括调制解调器CPU 168、126、ARM 177以及DAC173的右上象限。第二外置热传感器157B2可被置于片外并毗邻芯片102的可包括第三和第四图形处理器135C、135D的右下象限。
本领域普通技术人员将认识到,可提供图5A中所解说的硬件的各种其它空间安排,而不脱离本发明的范围。图5A解说了一个示例性空间安排,以及主TPM和TAW模块101A、207A以及ADC控制器103及其TPM和TAW模块101B、207B如何可识别因变于图5A中解说的示例性空间安排的热状况、比较性能曲线、并且分配工作负荷以管理热状况。
图5B是解说图4和图5A的PCD 100的示例性软件架构200的示意图,其用于支持标识热状况并且应用利用对处理核性能曲线的比较性分析的算法来选择处理器用于工作负荷分配。任何数目的算法可以形成至少一种热缓解技术或作为其一部分,该技术可在满足某些热状况并且分析性能曲线时由热策略管理器101应用。类似地,任何数目的算法可以形成至少一种热感知调度算法或作为其一部分,该算法可在存在某些热状况并且分析关联性能曲线时由TAWS模块207来应用。
如图5B中所解说的,CPU或数字信号处理器110经由总线211耦合至存储器112。如以上提及的,CPU 110是多核异构处理器,其具有N个核处理器。也就是说,CPU 110包括第一核222、第二核224、和第N核230。如本领域普通技术人员所知的,第一核222、第二核224、和第N核230中的每一者均可用于支持专用应用或程序,并且作为异构核的一部分,可以在类似热工作状况下提供不同的性能水平。替换地,一个或多个应用或程序可被分布以跨两个或更多个可用异构核进行处理。
CPU 110可从可包含软件和/或硬件的TPM模块101接收命令。如果实施为软件,则TPM模块101包含由CPU 110执行的指令,CPU 110将命令发至正由CPU 110和其它处理器执行的其它应用程序。
CPU 110的第一核222、第二核224直到第N核230可被集成在单个集成电路管芯上,或者它们可被集成或耦合在多电路封装中的分开的管芯上。设计者可经由一个或多个共享高速缓存来耦合第一核222、第二核224、直到第N核230,并且他们可以经由网络拓扑(诸如,总线、环、网状和纵横拓扑)来实现消息或指令传递。
在所解说的实施例中,RF收发机168经由数字电路元件来实现,并包括至少一个处理器(诸如核处理器210(标记为“核”))。在这一数字实现中,RF收发机168经由总线213耦合至存储器112。
总线211和总线213中的每一者可包括经由一个或多个有线或无线连接的多条通信路径,如本领域中已知的。总线211和总线213可具有使得能够进行通信的附加元件,这些附加元件出于简化起见被省略,诸如控制器、缓冲器(高速缓存)、驱动器、中继器、和接收机。此外,总线211和总线213可包括地址、控制、和/或数据连接以使得能够在前述组件间进行恰适的通信。
当由PCD 100使用的逻辑在如图5B中所示的软件中实现时,应注意到,启动逻辑250、管理逻辑260、热感知工作负荷调度接口逻辑270、应用存储280中的应用、以及文件系统290的各部分中的一者或多者可被存储在任何计算机可读介质上以供任何计算机相关的系统或方法使用或与之结合使用。
在本文档的上下文中,计算机可读介质是能包含或存储供计算机相关的系统或方法使用或结合计算机相关的系统或方法使用的计算机程序和数据的电、磁、光、或其他物理器件或装置。各种逻辑元件和数据存储可实施于任何计算机可读介质中以供指令执行系统、装置、或设备(诸如,基于计算机的系统、包含处理器的系统、或者能从指令执行系统、装置、或设备获取指令并执行这些指令的其他系统)使用或结合其使用。在本文档的上下文中,“计算机可读介质”可以是能存储、传达、传播、或传输供指令执行系统、装置或设备使用或者结合指令执行系统、装置或设备使用的程序的任何装置。
计算机可读介质可以是例如但不限于:电子、磁、光学、电磁、红外、或半导体系统、装置、设备,或传播介质。计算机可读介质的更为具体的示例(非穷尽性列表)可包括以下各项:具有一条或多条导线的电连接(电子的)、便携式计算机软盘(磁的)、随机存取存储器(RAM)(电子的)、只读存储器(ROM)(电子的)、可擦除可编程只读存储器(EPROM、EEPROM、或闪存)(电子的)、光纤(光学的)、和便携式压缩碟只读存储器(CD-ROM)(光学的)。注意到,计算机可读介质甚至可以是其上印刷有程序的纸张或另一合适介质,因为程序可被电子捕获,例如通过对纸张或其他介质光学扫描,随后被编译、解读或另行以合适方式处理(若需要),并随后存储于计算机存储器中。
在替换性实施例中,在启动逻辑250、管理逻辑260以及或许热感知工作负荷调度接口逻辑270中的一者或多者以硬件实现的场合,各种逻辑可以用以下技术中的任何一种或者组合来实现,这些技术各自是本领域中众所周知的:具有用于对数据信号实现逻辑功能的逻辑门的(诸)分立逻辑电路、具有恰适的组合逻辑门的专用集成电路(ASIC)、(诸)可编程门阵列(PGA)、现场可编程门阵列(FPGA)等。
存储器112是非易失性数据存储设备,诸如闪存或固态存储器设备。尽管被描绘为单个设备,但存储器112可以是具有耦合至数字信号处理器和/或RF收发机168中的核210(或附加处理器核)的分开数据存储的分布式存储器设备。
启动逻辑250包括用于选择性地标识、加载、和执行用于热感知比较性分析和选择一个或多个可用核(诸如,第一核222、第二核224直到第N核230)中的选定程序的一条或多条可执行指令。
管理逻辑260包括用于终止热感知性能曲线分析程序,以及选择性地标识、加载、和执行更为合适的替换程序以用于热感知比较性分析、选择、以及向一个或多个可用核的工作负荷分配的一条或多条可执行指令。管理逻辑260被安排成在运行时或者当PCD 100被上电并且正由设备的操作者使用时执行这些功能。替换程序可在嵌入式文件系统290的程序存储296中找到。
替换程序在由数字信号处理器中的核处理器中的一个或多个核处理器和RF收发机168中的核210执行时可根据由TPM模块101、TAW模块207和监视器模块114提供的一个或多个信号来工作。就此,模块114可响应于源自TPM101的控制信号而提供事件、过程、应用、资源状态条件、流逝时间、温度等的一个或多个指示符。
接口逻辑270包括用于呈现、管理外部输入以及与外部输入交互以观察、配置、或以其他方式更新存储于嵌入式文件系统290中的信息的一条或多条可执行指令。在一个实施例中,接口逻辑270可与经由USB端口142接收到的制造商输入协同操作。这些输入可包括要从程序存储296中删除或者要添加到程序存储296的一个或多个程序。替换地,这些输入可包括对程序存储296中的一个或多个程序的编辑或改变。此外,这些输入可标识对启动逻辑250和管理逻辑260中的一者或两者的一个或多个改变或全部替换。作为示例,这些输入可包括指令PCD 100在收到信号功率落到标识出的阈值之下时挂起RF收发机168中的所有性能调节的对管理逻辑260的改变。作为进一步的示例,这些输入可包括指令PCD 100在视频编解码器134活跃时应用期望程序的对管理逻辑260的改变。
接口逻辑270使得制造商能够在PCD 100上所定义的操作条件下可控地配置和调整最终用户的体验。当存储器112是闪存时,启动逻辑250、管理逻辑260、接口逻辑270、应用存储280中的应用程序或嵌入式文件系统290中的信息中的一者或多者可被编辑、替换、或以其他方式修改。在一些实施例中,接口逻辑270可准许PCD 100的最终用户或操作者搜索、定位、修改或替换启动逻辑250、管理逻辑260、应用存储280中的应用和嵌入式文件系统290中的信息。操作者可使用所得的接口来作出将在PCD 100的下一次启动之际实现的改变。替换地,操作者可使用所得的接口来作出在运行时期间实现的改变。
嵌入式文件系统290包括分层安排的核性能数据存储24。就此,文件系统290可包括其总文件系统容量的一保留部分,用于存储与各个核222、224、226、228在各个工作温度下的性能曲线相关联的信息。
图6是解说用于基于对处理器性能曲线的比较性分析来在PCD 100中跨异构处理组件进行热感知工作负荷调度的方法600的实施例的逻辑流程图。在图6实施例中,各个处理核222、224、226、228中的每一者的性能曲线可以基于由监视模块114收集的实际性能数据来经验地确定,或者在一些实施例中,性能曲线可以是由每个核的性能规范驱动的先验曲线。
在一些实施例中,为根据经验确定各个处理核222、224、226、228的性能曲线,监视模块114可以与温度传感器157以及对于监视核222、224、226、228的功耗有用的各个其他电压或电流传感器进行通信。在此种实施例中,本领域普通技术人员将认识到,由监视器模块114收集的数据可以与接收自TAWS模块207的先前工作负荷分配数据相耦合,并且被编译成经验性能曲线。这些经验性能曲线可被存储在CP数据存储24中,并且由热感知工作负荷调度算法来利用。
在框605开始,TAWS模块207标识异构多处理器SoC内能够处理准备待处理的码块的两个或更多个处理组件。在框610,TAWS模块207可以请求并接收来自监视器模块114的两个或更多个处理组件(诸如举例而言,核222、224、226、228)的工作温度。在框615,各个核222、224、226、228的工作温度可被TAWS模块207用于在CP数据存储24中查询这些核中的每一者适用的性能曲线,并且在子方法620,可以比较这些曲线以确定哪一个在处理该码块时可能是最高效的。如上所述,基于所比较的曲线与被比较的每个核的当前工作负荷共同的转接点,TAWS模块207可以在框625选择示例性处理组件222、224、226、228中的哪一个能够最高效地处理该码块。一旦有资格的处理组件中最高效的处理组件被标识,在框630,码块就被分配给所选处理组件,并且该方法返回至框605以用于准备好调度的下一码块。
图7是解说用于处理器性能曲线的比较性分析的示例性子方法620的逻辑流程图,其中所选供比较的功率曲线与有资格的处理组件的当前工作温度相关联。在框705,基于与这些处理组件中的每一者相关联的以及先前在框610提供给TAWS模块207的温度测量,从CP数据存储24查询性能曲线。一旦这些处理组件(诸如,异构多核处理器110中的核222、224、226、228)中的每一者的适当性能曲线被标识,在框710就可以比较这些曲线,以标识哪一个处理组件在比较时可能正在最高效地工作。值得注意的是,如上所述,所比较的曲线的转接点可以表示TAWS模块207可用来选择一个处理组件而不是另一个处理组件的阈值。然而,预想了并非全部所比较的性能曲线必然“跨接”从而存在转接点。在此种情况下,本领域普通技术人员将认识到,一个处理组件的性能曲线可以指示该处理组件当前比其相对方在任何或绝大多数工作负荷水平下更高效地运行。
返回图7的子方法,由于这些核中的每一者的当前工作负荷水平可在所选曲线上进行映射,因此TAWS模块207可以确定这些核中的每一者的当前功耗率随后,在框715,可以计算所比较的处理组件中的每一者的功耗,并且可以将具有最低当前功耗的处理器标识为可用于附加工作负荷分配的最高效的处理组件。
图8是解说用于处理器性能曲线的比较性分析的示例性子方法620的逻辑流程图,其中所选供比较的功率曲线与有资格的处理组件的当前工作温度相关联。在框805,基于与这些处理组件中的每一者相关联的以及先前在框610提供给TAWS模块207的温度测量,从CP数据存储24查询性能曲线。一旦这些处理组件(诸如,异构多核处理器110中的核222、224、226、228)中的每一者的适当性能曲线被标识,在框810就可以比较这些曲线,以标识哪一个处理组件在被分配该码块的情况下可以提供最佳处理效率。即,该码块所表示的附加工作负荷负担可被添加到由标识出的处理组件处理的现有工作负荷。在框810,可以将预测未来工作负荷映射到性能曲线,并且比较每个处理组件的预测未来功耗。在框815和625,可以选择在未来工作负荷水平下具有最低预测功耗的处理组件。
图9是解说用于处理器性能曲线的比较性分析的示例性子方法620的逻辑流程图,其中所选供比较的功率曲线与有资格的处理组件的预测工作温度相关联。如上所述,附加工作负荷负担可导致处理组件消耗更多功率,由此增加其功率泄漏率并且产生附加热能。如本领域普通技术人员将理解的,所产生热能的耗散可导致给定处理组件工作温度的增加,并且致使其比替换处理组件效率低。
在框905,对于标识出的处理组件中的每一者,计算由添加工作负荷导致的对工作温度的影响。基于预测工作温度,在910从CP数据存储24查询性能曲线。一旦这些处理组件(诸如,异构多核处理器110中的核222、224、226、228)中的每一者的适当性能曲线被标识,在框915就可以比较这些曲线,以标识哪一个处理组件在被分配该码块的情况下可以提供最佳处理效率。即,该码块所表示的附加工作负荷负担可被添加到正由标识出的处理组件处理的现有工作负荷,并且可被映射到所查询的性能曲线。随后,可以比较每个处理组件的预测未来功耗。在框920和625,可以选择在未来工作负荷水平和工作温度下具有最低预测功耗的处理组件。
本说明书中所描述的过程或过程流中的某些步骤自然地位于其他步骤之前以便本发明如以上所述地运行。然而,如果此类次序或顺序并不改变本发明的功能性,则本发明并不被限定于所描述的步骤次序。即,认识到某些步骤可在其他步骤之前、之后、或并行地(基本上同时)执行,而不脱离本发明的范围和精神。在一些实例中,某些步骤可被省却或不执行,而不脱离本发明。此外,诸如“此后”、“随后”、“接下来”等措辞无意限定这些步骤的次序。这些措辞仅仅是被用于带领读者遍阅对示例性方法的描述。
另外,举例而言,编程领域的普通技术人员能够基于本说明书中的流程图和相关联的描述来毫无困难地编写计算机代码或标识恰适的硬件和/或电路以实现所公开的发明。因此,并不认为对特定程序代码指令集或详细硬件设备的公开是充分理解如何作出并使用本发明所必需的。所要求保护的计算机实现的过程的创新功能性在以上描述中结合可解说各种过程流的附图更为详细地进行了解释。
在一个或多个示例性方面中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,这些介质包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。以示例而非限定的方式,此类计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可用以携带或者存储指令或数据结构形式的期望程序代码且可由计算机访问的任何其它介质。
任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(“DSL”)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。
如本文中所使用的,盘(disk)和碟(disc)包括压缩碟(“CD”)、激光碟、光碟、数字多用碟(“DVD”)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
因此,尽管已详细解说和描述了精选的方面,但是将可理解,可在其中作出各种替换和变更而不会脱离本发明如所附权利要求所定义的精神和范围。
Claims (18)
1.一种在具有异构多处理器片上系统(“SoC”)的便携式计算设备中调度工作负荷的方法,所述方法包括:
监视与所述异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联的温度读数;
接收要由所述多个个体处理组件之一处理的码块;
标识所述多个处理组件中有资格处理所述码块的两个或更多个个体处理组件;
基于与所述两个或更多个有资格的处理组件中的每一者唯一地相关联的所述温度读数,从性能曲线的数据库中查询每个处理组件的来自与每个处理组件唯一地相关联的多个性能曲线的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在与所述温度读数相关联的给定温度下工作时功耗与工作负荷处理能力之间的关系;
基于一个或多个转折点的确定来比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件,其中转接点是所述性能曲线中的两条性能曲线相交的点,并且其中所述更高效的处理组件的性能曲线指示关于所确定的转折点所述更高效的处理组件将比其他有资格的处理组件消耗更少功率来处理所述码块;以及
将所述码块调度到标识出的更高效的处理组件。
2.如权利要求1所述的方法,其特征在于,所述更高效的处理组件是在其当前工作负荷下消耗最少功率量的处理组件。
3.如权利要求1所述的方法,其特征在于,所述更高效的处理组件是被计算为在将包括所述码块的未来工作负荷下消耗最少功率量的处理组件。
4.如权利要求1所述的方法,其特征在于,与所述两个或更多个有资格的处理组件中的每一者唯一地相关联的所述温度读数是对
所述有资格的处理组件中的每一者的可归因于将包括所述码块的未来工作负荷的预测的所述温度读数的上升的指示;以及
其中所查询的每个有资格的处理组件的性能曲线与所预测的所述温度读数的上升相关联。
5.如权利要求4所述的方法,其特征在于,所述更高效的处理组件是在其当前工作负荷下会消耗最少功率量的处理组件。
6.如权利要求4所述的方法,其特征在于,所述更高效的处理组件是在将包括所述码块的未来工作负荷下会消耗最少功率量的处理组件。
7.一种在具有异构多处理器片上系统(“SoC”)的便携式计算设备中调
度工作负荷的计算机系统,所述系统包括:
监视器模块,被配置成:
监视与所述异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联的温度读数;以及
包括处理器的热感知工作负荷调度模块,所述热感知工作负荷调度模块被配置成:
接收要由所述多个个体处理组件之一处理的码块;
标识所述多个处理组件中有资格处理所述码块的两个或更多个个体处理组件;
基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,在核性能存储中查询每个处理组件的来自与每个处理组件唯一地相关联的多个性能曲线的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在与所述温度读数相关联的给定温度下工作时功耗与工作负荷处理能力之间的关系;
基于一个或多个转折点的确定来比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件,其中转接点是所述性能曲线中的两条性能曲线相交的点,并且其中所述更高效的处理组件的性能曲线指示关于所确定的转折点所述更高效的处理组件将比其他有资格的处理组件消耗更少功率来处理所述码块;以及
将所述码块调度到标识出的更高效的处理组件。
8.如权利要求7所述的计算机系统,其特征在于,所述更高效的处理组件是在其当前工作负荷下消耗最少功率量的处理组件。
9.如权利要求7所述的计算机系统,其特征在于,所述更高效的处理组件是被计算为在将包括所述码块的未来工作负荷下消耗最少功率量的处理组件。
10.如权利要求7所述的计算机系统,其特征在于,与所述两个或更多个有资格的处理组件中的每一者唯一地相关联的所述温度读数是对
所述有资格的处理组件中的每一者的可归因于将包括所述码块的未来工作负荷的预测的所述温度读数的上升的指示;以及
其中所查询的每个有资格的处理组件的性能曲线与所预测的温度读数的上升相关联。
11.如权利要求8所述的计算机系统,其特征在于,所述更高效的处理组
件是在其当前工作负荷下会消耗最少功率量的处理组件。
12.如权利要求10所述的计算机系统,其特征在于,所述更高效的处理组
件是在将包括所述码块的未来工作负荷下会消耗最少功率量的处理组件。
13.一种用于在具有异构多处理器片上系统(“SoC”)的便携式计算设备中调度工作负荷的装备,所述装备包括:
用于监视与所述异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联的温度读数的装置;
用于接收要由所述多个个体处理组件之一处理的码块的装置;
用于标识所述多个处理组件中有资格处理所述码块的两个或更多个个体处理组件的装置;
基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,用于从性能曲线的数据库中查询每个处理组件的来自与每个处理组件唯一地相关联的多个性能曲线的性能曲线的装置,其中所述性能曲线表示对于给定个体处理组件,在与所述温度读数相关联的给定温度下工作时功耗与工作负荷处理能力之间的关系;
用于基于一个或多个转折点的确定来比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件的装置,其中转接点是所述性能曲线中的两条性能曲线相交的点,并且其中所述更高效的处理组件的性能曲线指示关于所确定的转折点所述更高效的处理组件将比其他有资格的处理组件消耗更少功率来处理所述码块;以及
用于将所述码块调度到标识出的更高效的处理组件的装置。
14.如权利要求13所述的装备,其特征在于,所述更高效的处理组件是在其当前工作负荷下消耗最少功率量的处理组件。
15.如权利要求13所述的装备,其特征在于,所述更高效的处理组件是被计算为在将包括所述码块的未来工作负荷下消耗最少功率量的处理组件。
16.如权利要求13所述的装备,其特征在于,与所述两个或更多个有资格的处理组件中的每一者唯一地相关联的所述温度读数是对
所述有资格的处理组件中的每一者的可归因于将包括所述码块的未来工作负荷的预测的所述温度读数的上升的指示;以及
其中所查询的每个有资格的处理组件的性能曲线与所预测的温度读数的上升相关联。
17.如权利要求16所述的装备,其特征在于,所述更高效的处理组件是在其当前工作负荷下将消耗最少功率量的处理组件。
18.如权利要求16所述的装备,其特征在于,所述更高效的处理组件是在将包括所述码块的未来工作负荷下会消耗最少功率量的处理组件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161562234P | 2011-11-21 | 2011-11-21 | |
US61/562,234 | 2011-11-21 | ||
US13/357,777 US9442773B2 (en) | 2011-11-21 | 2012-01-25 | Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip |
US13/357,777 | 2012-01-25 | ||
PCT/US2012/062582 WO2013077972A1 (en) | 2011-11-21 | 2012-10-30 | Thermally driven workload scheduling in a heterogeneous multi - processor system on a chip |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104067199A CN104067199A (zh) | 2014-09-24 |
CN104067199B true CN104067199B (zh) | 2017-08-22 |
Family
ID=48428237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280067364.0A Expired - Fee Related CN104067199B (zh) | 2011-11-21 | 2012-10-30 | 在异构多处理器片上系统中进行热驱动的工作负荷调度的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9442773B2 (zh) |
EP (1) | EP2783265A1 (zh) |
JP (1) | JP6249953B2 (zh) |
KR (1) | KR101747308B1 (zh) |
CN (1) | CN104067199B (zh) |
WO (1) | WO2013077972A1 (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8397088B1 (en) | 2009-07-21 | 2013-03-12 | The Research Foundation Of State University Of New York | Apparatus and method for efficient estimation of the energy dissipation of processor based systems |
US8601300B2 (en) * | 2011-09-21 | 2013-12-03 | Qualcomm Incorporated | System and method for managing thermal energy generation in a heterogeneous multi-core processor |
US9442773B2 (en) | 2011-11-21 | 2016-09-13 | Qualcomm Incorporated | Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip |
US20130339978A1 (en) * | 2012-06-13 | 2013-12-19 | Advanced Micro Devices, Inc. | Load balancing for heterogeneous systems |
US9448829B2 (en) | 2012-12-28 | 2016-09-20 | Intel Corporation | Hetergeneous processor apparatus and method |
US9672046B2 (en) * | 2012-12-28 | 2017-06-06 | Intel Corporation | Apparatus and method for intelligently powering heterogeneous processor components |
US9639372B2 (en) | 2012-12-28 | 2017-05-02 | Intel Corporation | Apparatus and method for heterogeneous processors mapping to virtual cores |
US9329900B2 (en) | 2012-12-28 | 2016-05-03 | Intel Corporation | Hetergeneous processor apparatus and method |
US8694939B1 (en) * | 2013-03-13 | 2014-04-08 | Xilinx, Inc. | Method for determining critical junction temperature |
US9342443B2 (en) * | 2013-03-15 | 2016-05-17 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
US9727345B2 (en) | 2013-03-15 | 2017-08-08 | Intel Corporation | Method for booting a heterogeneous system and presenting a symmetric core view |
US9261935B2 (en) * | 2013-07-01 | 2016-02-16 | Advanced Micro Devices, Inc. | Allocating power to compute units based on energy efficiency |
US9612879B2 (en) * | 2013-08-01 | 2017-04-04 | Texas Instruments Incorporated | System constraints-aware scheduler for heterogeneous computing architecture |
US9292293B2 (en) * | 2013-08-08 | 2016-03-22 | Qualcomm Incorporated | Intelligent multicore control for optimal performance per watt |
US9703355B2 (en) * | 2013-08-28 | 2017-07-11 | Qualcomm Incorporated | Method, devices and systems for dynamic multimedia data flow control for thermal power budgeting |
KR101538458B1 (ko) | 2014-01-03 | 2015-07-23 | 연세대학교 산학협력단 | 3차원 매니코어 프로세서를 위한 전압섬 형성 방법 |
KR102205836B1 (ko) | 2014-01-29 | 2021-01-21 | 삼성전자 주식회사 | 태스크 스케줄링 방법 및 장치 |
US20150220097A1 (en) * | 2014-02-04 | 2015-08-06 | Qualcomm Incorporated | System and method for just-in-time learning-based predictive thermal mitigation in a portable computing device |
US9823673B2 (en) | 2014-04-08 | 2017-11-21 | Qualcomm Incorporated | Energy efficiency aware thermal management in a multi-processor system on a chip based on monitored processing component current draw |
US9378536B2 (en) * | 2014-04-30 | 2016-06-28 | Qualcomm Incorporated | CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing |
US9557797B2 (en) | 2014-05-20 | 2017-01-31 | Qualcomm Incorporated | Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power |
US10095286B2 (en) | 2014-05-30 | 2018-10-09 | Apple Inc. | Thermally adaptive quality-of-service |
US10203746B2 (en) | 2014-05-30 | 2019-02-12 | Apple Inc. | Thermal mitigation using selective task modulation |
US20160161959A1 (en) * | 2014-06-12 | 2016-06-09 | Mediatek Inc. | Thermal management method and electronic system with thermal management mechanism |
US9424092B2 (en) | 2014-09-26 | 2016-08-23 | Microsoft Technology Licensing, Llc | Heterogeneous thread scheduling |
US9903764B2 (en) | 2014-09-30 | 2018-02-27 | Samsung Electronics Co., Ltd. | Integrated circuit for estimating power of at least one node using temperature and a system including the same |
US10215800B2 (en) * | 2015-04-24 | 2019-02-26 | Qualcomm Incorporated | Device specific thermal mitigation |
US9507641B1 (en) * | 2015-05-11 | 2016-11-29 | Qualcomm Incorporated | System and method for dynamic granularity control of parallelized work in a portable computing device (PCD) |
US10671131B2 (en) | 2015-06-05 | 2020-06-02 | Apple Inc. | Predictive control systems and methods |
CN106325325A (zh) * | 2015-06-15 | 2017-01-11 | 联想(北京)有限公司 | 电子设备及控制方法 |
US10558500B2 (en) | 2015-07-27 | 2020-02-11 | Hewlett Packard Enterprise Development Lp | Scheduling heterogenous processors |
US9733685B2 (en) | 2015-12-14 | 2017-08-15 | International Business Machines Corporation | Temperature-aware microprocessor voltage management |
US20170300361A1 (en) * | 2016-04-15 | 2017-10-19 | Intel Corporation | Employing out of order queues for better gpu utilization |
US10459517B2 (en) | 2017-03-31 | 2019-10-29 | Qualcomm Incorporated | System and methods for scheduling software tasks based on central processing unit power characteristics |
JP2019046041A (ja) * | 2017-08-31 | 2019-03-22 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム |
US10545793B2 (en) * | 2017-09-29 | 2020-01-28 | Intel Corporation | Thread scheduling using processing engine information |
US11010330B2 (en) | 2018-03-07 | 2021-05-18 | Microsoft Technology Licensing, Llc | Integrated circuit operation adjustment using redundant elements |
US11334398B2 (en) | 2018-08-29 | 2022-05-17 | International Business Machines Corporation | Learning-based thermal estimation in multicore architecture |
US11140243B1 (en) * | 2019-03-30 | 2021-10-05 | Snap Inc. | Thermal state inference based frequency scaling |
US11442513B1 (en) | 2019-04-16 | 2022-09-13 | Snap Inc. | Configuration management based on thermal state |
US11175952B2 (en) | 2020-02-21 | 2021-11-16 | International Business Machines Corporation | Leveraging thermal profiles of processing tasks to dynamically schedule execution of the processing tasks |
US11886315B2 (en) * | 2020-12-10 | 2024-01-30 | Amazon Technologies, Inc. | Managing computing capacity in radio-based networks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246117A (zh) * | 2008-12-11 | 2011-11-16 | 高通股份有限公司 | 非对称多处理器上的自适应线程调度设备及方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0876874A (ja) | 1994-09-06 | 1996-03-22 | Hitachi Ltd | 中央処理装置のクロック制御装置およびクロック制御方法 |
JPWO2003083693A1 (ja) | 2002-04-03 | 2005-08-04 | 富士通株式会社 | 分散処理システムにおけるタスクスケジューリング装置 |
US7185215B2 (en) | 2003-02-24 | 2007-02-27 | International Business Machines Corporation | Machine code builder derived power consumption reduction |
US7072805B2 (en) | 2003-10-17 | 2006-07-04 | International Business Machines Corporation | Mechanism for on-line prediction of future performance measurements in a computer system |
JP4197672B2 (ja) | 2004-09-30 | 2008-12-17 | 株式会社東芝 | マルチプロセッサ計算機及びプログラム |
US9063785B2 (en) | 2004-11-03 | 2015-06-23 | Intel Corporation | Temperature-based thread scheduling |
JP3914230B2 (ja) | 2004-11-04 | 2007-05-16 | 株式会社東芝 | プロセッサシステム及びその制御方法 |
JP4553307B2 (ja) | 2004-11-19 | 2010-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、制御方法、及びプログラム |
US20070124618A1 (en) | 2005-11-29 | 2007-05-31 | Aguilar Maximino Jr | Optimizing power and performance using software and hardware thermal profiles |
US8051276B2 (en) | 2006-07-07 | 2011-11-01 | International Business Machines Corporation | Operating system thread scheduling for optimal heat dissipation |
US8813080B2 (en) | 2007-06-28 | 2014-08-19 | Intel Corporation | System and method to optimize OS scheduling decisions for power savings based on temporal characteristics of the scheduled entity and system workload |
US8555283B2 (en) * | 2007-10-12 | 2013-10-08 | Oracle America, Inc. | Temperature-aware and energy-aware scheduling in a computer system |
US8302098B2 (en) | 2007-12-06 | 2012-10-30 | Oracle America, Inc. | Hardware utilization-aware thread management in multithreaded computer systems |
US8635625B2 (en) * | 2008-04-04 | 2014-01-21 | International Business Machines Corporation | Power-aware workload allocation in performance-managed computing environments |
US8543857B2 (en) | 2009-09-26 | 2013-09-24 | Intel Corporation | Method and apparatus for low power operation of multi-core processors |
US20110138395A1 (en) | 2009-12-08 | 2011-06-09 | Empire Technology Development Llc | Thermal management in multi-core processor |
US8589932B2 (en) * | 2010-07-02 | 2013-11-19 | International Business Machines Corporation | Data processing workload control |
US9261949B2 (en) * | 2010-10-29 | 2016-02-16 | Advanced Micro Devices, Inc. | Method for adaptive performance optimization of the soc |
US8788866B2 (en) * | 2011-04-25 | 2014-07-22 | Qualcomm Incorporated | Method and system for reducing thermal load by monitoring and controlling current flow in a portable computing device |
US8601300B2 (en) * | 2011-09-21 | 2013-12-03 | Qualcomm Incorporated | System and method for managing thermal energy generation in a heterogeneous multi-core processor |
US9442773B2 (en) | 2011-11-21 | 2016-09-13 | Qualcomm Incorporated | Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip |
-
2012
- 2012-01-25 US US13/357,777 patent/US9442773B2/en active Active
- 2012-10-30 KR KR1020147016892A patent/KR101747308B1/ko active IP Right Grant
- 2012-10-30 WO PCT/US2012/062582 patent/WO2013077972A1/en active Application Filing
- 2012-10-30 CN CN201280067364.0A patent/CN104067199B/zh not_active Expired - Fee Related
- 2012-10-30 JP JP2014542327A patent/JP6249953B2/ja not_active Expired - Fee Related
- 2012-10-30 EP EP12808532.1A patent/EP2783265A1/en not_active Withdrawn
-
2014
- 2014-03-04 US US14/195,976 patent/US9442774B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246117A (zh) * | 2008-12-11 | 2011-11-16 | 高通股份有限公司 | 非对称多处理器上的自适应线程调度设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
US9442773B2 (en) | 2016-09-13 |
JP2014533859A (ja) | 2014-12-15 |
US9442774B2 (en) | 2016-09-13 |
WO2013077972A1 (en) | 2013-05-30 |
US20130132972A1 (en) | 2013-05-23 |
JP6249953B2 (ja) | 2017-12-20 |
CN104067199A (zh) | 2014-09-24 |
US20140189710A1 (en) | 2014-07-03 |
KR101747308B1 (ko) | 2017-06-14 |
KR20140103971A (ko) | 2014-08-27 |
EP2783265A1 (en) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104067199B (zh) | 在异构多处理器片上系统中进行热驱动的工作负荷调度的方法和系统 | |
CN106170743B (zh) | 多处理器片上系统中的能效感知热管理的方法和系统 | |
CN103582857B (zh) | 便携式计算设备中的热负载管理 | |
CN104737094B (zh) | 芯片上的异构的多处理器系统中的模态工作负载调度 | |
JP5922778B2 (ja) | ヘテロジニアスマルチコアプロセッサにおける熱エネルギーの発生を管理するためのシステムおよび方法 | |
CN102822801B (zh) | 响应于服务水平协议而分配计算系统功率水平 | |
CN103688230B (zh) | 以主动负载转向预先取得热负载的方法和系统 | |
CN106980492A (zh) | 用于确定处理器核上的工作布置的系统、方法和设备 | |
CN108780349A (zh) | 用于在具有异构集群架构的片上系统中进行智能热管理的系统和方法 | |
US10064141B2 (en) | Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit | |
CN105745590A (zh) | 用于在片上系统中进行操作频率调整和工作负荷调度的系统和方法 | |
KR20190084977A (ko) | 동적 외부 전력 자원 선택 | |
JP2005063066A (ja) | 分散コンピューティングシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170822 Termination date: 20201030 |
|
CF01 | Termination of patent right due to non-payment of annual fee |