在异构多处理器片上系统中进行热驱动的工作负荷调度的制作方法

文档序号:6497979阅读:126来源:国知局
在异构多处理器片上系统中进行热驱动的工作负荷调度的制作方法
【专利摘要】公开了用于在包含异构多处理器片上系统(“SoC”)的便携式计算设备中对工作负荷进行热感知调度的各方法和系统的各种实施例。由于异构多处理器SoC中的个体处理组件在给定温度下可展现不同的处理效率,且由于这些处理组件中不止一个处理组件可能能够处理给定码块,因此可以利用将这些个体处理组件在其所测量的工作温度下的各性能曲线进行比较的热感知工作负荷调度技术,通过实时、或近实时地将工作负荷分配给被最佳定位成高效地处理该码块的处理组件来使服务质量(“QoS”)最优化。
【专利说明】在异构多处理器片上系统中进行热驱动的工作负荷调度
[0001] 相关申请的夺叉引用
[0002] 根据35U.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 (在异构多处理器片上系统中进行热驱动的工作负荷调 度)"的美国临时申请的优先权,其全部内容通过援引纳入于此。
[0003] 相关抟术描沭
[0004] 便携式计算设备("P⑶")正成为人们在个人和职业层面上的必需品。这些设备 可包括蜂窝电话、便携式数字助理("PDA")、便携式游戏控制台、掌上型计算机、和其他便 携式电子设备。
[0005] PCD的一个独特方面是它们通常不具有有源冷却设备(如风扇),这些冷却设备经 常在较大的计算设备(诸如膝上型和台式计算机)中找到。取代使用风扇,PCD可依赖于 电子封装的空间安排,从而两个或更多个有源和产热组件不会彼此邻近地放置。当两个或 更多个产热组件在PCD内彼此适当间隔开时,从每个组件的操作产生的热量可能不会负面 地影响另一个组件的操作。此外,当PCD内的产热组件在物理上与该设备内的其它组件隔 离时,从该产热组件的操作所产生的热量就不会负面地影响其它周围的电子设备。许多PCD 也可依赖于无源冷却设备(诸如热沉)以管理共同形成各个PCD的电子组件间的热能。
[0006] 现实是P⑶通常在尺寸上受限,并且因此P⑶内用于诸组件的空间往往是非常珍 贵的。由此,对工程师和设计者而言,通常在PCD内没有足够的空间以通过利用空间安排或 无源冷却组件放置来缓解热降级或故障。因此,热能产生通常在PCD中通过应用各种热管 理技术进行管理,这些热管理技术可包括以性能为代价而衰弱或关闭电子设备。
[0007] PCD内采用热管理技术,力图在缓解热能产生与影响由PCD提供的服务质量 ("QoS")之间寻求平衡。在具有异构处理组件的ra)中,可能难以管理平衡该折衷的后果, 因为PCD内各个处理组件并非被创建成等同。例如,PCD中可以存在能够处理给定码块的 多个处理组件,并且取决于那些组件的相应工作温度,一个组件在处理该码块方面将比另 一个组件更高效。因此,当工作负荷任务完成并且热缓解措施被应用时,被最佳定位成处理 码块的特定处理器可能根据各个处理器的个体工作温度而不时地变化。
[0008] 因此,本领域中需要一种用于基于对处理器性能曲线的实时、或近实时的比较性 分析来在PCD中跨异构处理组件调度或分配工作负荷的方法和系统。
[0009] 公开概沭
[0010] 公开了用于在包含异构多处理器片上系统("s〇c")的便携式计算设备中对工作 负荷进行热感知调度的各方法和系统的各种实施例。由于异构多处理器SoC中的个体处理 组件在给定温度处可展现不同的处理效率,且由于这些处理组件中不止一个处理组件可能 能够处理给定码块,因此可以利用将这些个体处理组件在其所测量的工作温度下的各性能 曲线进行比较的热感知工作负荷调度技术,通过实时、或近实时地将工作负荷分配给被最 佳定位成高效地处理该码块的处理组件来使服务质量("QoS")最优化。
[0011] 一种此种方法涉及监视与异构多处理器SoC中的多个个体处理组件中的每一者 唯一地相关联的温度读数。当调度供处理的码块成为必要时,这多个处理组件中有资格处 理该码块的两个或更多个处理组件被标识。与标识出的处理组件中的每一者相关联的温度 读数被获取并且用于查询与关联于这些处理组件的性能曲线有关的温度的数据库。这些性 能曲线表示对于给定个体处理组件,在该处理组件在给定温度下工作时功耗与工作负荷处 理能力之间的关系。比较所查询的性能曲线,并且基于该比较,选择可用于处理该码块的最 高效的处理组件。该码块被分配给所选处理组件。
[0012] 该方法的一些实施例通过将这些处理组件的当前工作负荷映射到所查询的与每 个处理组件相关联的性能曲线,选择最高效的处理组件。其他实施例将由该码块表示的工 作负荷负担添加到个体处理组件的当前工作负荷负担,并且随后将未来工作负荷映射到所 查询的与每个处理组件相关联的性能曲线。又一些实施例预测可能因向有资格的处理组件 中的每一者分配该码块而引起的可能温度上升,并且基于预测温度来查询每个处理组件的 性能曲线。
[0013] 有利的是,该系统和方法的各实施例通过在供处理的各码块从调度队列到达时, 实时、或近实时地选择最佳可用处理组件来使QoS最优化。以此方式,工作负荷负担可被指 派给被最佳定位成高效地处理这些工作负荷的处理组件。值得注意的是,如本领域普通技 术人员将认识到的,用于工作负荷的热感知调度的各系统和方法可以在与各种处理组件相 关联的工作温度随时间变化时将相似或相同的码块调度给不同的处理组件。即,被最佳定 位用于在一个时间点高效地处理给定码块的某个处理组件可能在稍后时间点并不是被最 佳定位用于处理相同码块的处理组件。
[0014] 附图简沭
[0015] 在附图中,除非另行指出,否则相似的参考标号贯穿各视图指示相似的部分。对于 带有字母字符名称的参考标号(诸如,"102A"或"102B"),该字母字符名称可区分同一附 图中存在的两个相似部件或元素。在意图使一参考标号涵盖所有附图中具有相同参考标号 的所有部件时,可略去参考标号的字母字符名称。
[0016] 图1是解说在不同热状况下工作的示例性处理组件的一对性能曲线的示图;
[0017] 图2是解说在不同热状况下工作的两个示例性处理组件(即,"低性能"中央处理 单元("CPU")处理组件和"高性能"图形处理单元("GPU")处理组件)中每一者的一对 性能曲线的示图;
[0018] 图3是解说用于通过跨异构多处理器片上系统("SoC")进行热感知工作负荷调 度来在便携式计算设备("PCD")中使服务质量("QoS")最优化的片上系统的一个实施 例的功能框图;
[0019] 图4是解说图3的P⑶的示例性实施例的功能框图;
[0020] 图5A是解说用于图4中解说的芯片的硬件的示例性空间安排的功能框图;
[0021] 图5B是解说图4的PCD的用于支持基于对处理器性能曲线的比较性分析进行热 感知工作负荷调度的示例性软件架构的示意图;
[0022] 图6是解说用于基于对处理器性能曲线的比较性分析来跨异构处理组件进行热 感知工作负荷调度的方法的实施例的逻辑流程图;
[0023] 图7是解说用于对处理器性能曲线的比较性分析的示例性子方法或子例程的逻 辑流程图;
[0024] 图8是解说用于对处理器性能曲线的比较性分析的示例性子方法或子例程的逻 辑流程图;以及
[0025] 图9是解说用于对处理器性能曲线的比较性分析的示例性子方法或子例程的逻 辑流程图。

【具体实施方式】
[0026] 措辞"示例性"在本文中用于表示"用作示例、实例或解说"。本文中描述为"示例 性"的任何方面不必被解释为排斥、优于或胜过其他方面。
[0027] 在本描述中,术语"应用"还可包括具有诸如:对象代码、脚本、字节码、标记预言文 件和补片之类的可执行内容的文件。对象代码、此外,本文中引述的"应用"还可包括本质 上不可执行的文件,诸如可能需要打开的文档或需要被访问的其他数据文件。
[0028] 如在本描述中所使用的,术语"组件"、"数据库"、"模块"、"系统"、"热能产生组件"、 "处理组件"、"处理引擎"和类似术语旨在引述计算机相关实体,其是硬件、固件、硬件与软 件的组合、软件、或是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处 理器、对象、可执行件、执行的线程、程序、和/或计算机。作为解说,计算设备上运行的应用 和计算设备两者都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且 组件可局部化在一台计算机上和/或分布在两台或更多台计算机之间。另外,这些组件可 从其上存储有各种数据结构的各种计算机可读介质来执行。各组件可借助于本地和/或远 程过程来通信,诸如根据具有一个或多个数据分组的信号(例如,来自借助于该信号与本 地系统、分布式系统中的另一组件交互、和/或跨诸如因特网等网络与其它系统交互的一 个组件的数据)。
[0029] 在本描述中,除非另行指出,否则术语"中央处理单元("CPU")"、"数字信号处理 器(" DSP")"、以及"芯片"是可驻留在P⑶中的各处理组件的非限定性示例且被可互换地 使用。此外,如本描述中区分的,CPU、DSP、或芯片可包括一般被称为"核"以及"子核"的一 个或多个相异的处理组件。
[0030] 在本说明书中,将理解,术语"热"和"热能"可与能够产生或耗散能以"温度"为单 位来测量的能量的设备或组件相关联地使用。因此,将进一步理解,术语"温度"参照某标 准值预想了任何可指示"热能"产生设备或组件的相对温暖、或缺少热的度量。例如,当两 个组件处于"热"平衡时,这两个组件的"温度"是相同的。
[0031] 在本描述中,术语"工作负荷"、"处理负荷"、"处理工作负荷"以及"码块"被可互 换地使用且一般指向与给定实施例中的给定处理组件相关联的或被指派到给定实施例中 的给定处理组件的处理负担、或处理负担的百分比。在以上定义的内容之外进一步地,"处 理组件"或"热能产生组件"或"热侵源(thermal aggressor) "可以是但不限于中央处理单 元、图形处理单元、核、主核、子核、处理区域、硬件引擎等,或驻留于便携式计算设备内的集 成电路中、或在便携式计算设备内的集成电路外部的任何组件。并且,在术语"热负荷"、"热 分布"、"热特征"、"热处理负荷"等指示可能在处理组件上运行的工作负荷负担的程度上, 本领域普通技术人员将知晓在本公开中这些"热"术语的使用可与处理负荷分布、工作负荷 负担以及功耗有关。
[0032] 在本描述中,术语"热缓解技术"、"热策略"、"热管理"以及"热缓解措施"被可互 换地使用。
[0033] 本领域普通技术人员将认识到,术语"DMIPS"表示每秒处理给定百万条指令所需 的Dhrystone迭代数。在本描述中,该术语在示例性实施例中被用作通用测量单位以指示 处理器性能的相对水平,并且将不被解读为暗示落入本发明范围内的任何给定实施例必须 包括或必须不包括具有任何特定Dhrystone等级的处理器。
[0034] 在本描述中,术语"便携式计算设备"("PCD")用于描述基于有限容量的电源(诸 如电池)进行操作的任何设备。尽管电池运行的P⑶已经被使用了数十年,但可再充电电 池方面的技术进步结合第三代("3G")和第四代("4G")无线技术的到来,已经使得能够 实现具有多种能力的众多P⑶。因此,P⑶可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电 话、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接的膝上型计算 机等。
[0035] 在具有异构处理组件的P⑶中针对QoS最优化来管理处理性能可以通过利用可用 于工作负荷分配的个体处理引擎的不同性能特性来实现。关于在异构处理组件中可包括的 各个处理引擎的不同性能特性,本领域普通技术人员将认识到,性能差异可归因于任何数 目的原因,包括但不限于,不同等级的硅、设计变化等。此外,本领域普通技术人员将认识 至IJ,与任何给定处理组件相关联的性能特性可关于处理组件的工作温度、向该处理单元提 供的功率等而变化。
[0036] 例如,考虑可包括多个不同处理核的示例性异构多核处理器,这多个不同处理核 一般在性能容量方面范围从低至高(值得注意的是,本领域普通技术人员将认识到,还可 以考虑可包括多个不同处理组件的示例性异构多处理器片上系统("SoC"),这多个不同处 理组件各自包含一个或多个核)。如将由本领域普通技术人员理解的,与具有相对高性能容 量的处理核相比,异构处理器内的低性能至中等性能处理核在给定工作负荷容量处将展现 较低的功率泄漏率,并且因而展现较低的热能产生率。与较低容量的核相比,较高容量的核 可以能够在较短时间量里处理给定数目的DMIP。类似地,与以其未加抑制的全容量处理时 相比,处理速度已衰弱的高容量的核可以在给定工作负荷容量下展现较低的功率泄漏率, 并且因而展现较低的热能产生率。
[0037] 尽管如此,取决于这些核可工作的热状况,较低性能的核与高性能核相比在处理 给定数目的DMIP时(在功耗方面)可能更高效或更低效。由此,通过考虑异构处理器内不 同核的个体性能曲线(其中这些性能曲线指示给定核在给定工作温度为处理给定数目的 DMIP所消耗的功率),可以利用热感知调度算法向提供最佳效率的处理核分配工作负荷。 类似地,并且同样基于异构处理器内不同核的个体性能曲线,可以利用热感知调度算法来 分配工作负荷,从而跨整个处理组件的功率密度被最优化,尽管与个体核相关联的处理效 率可能未被最优化。
[0038] 作为非限定性示例,特定码块可由示例性PCD内的中央处理单元("CPU")或图形 处理单元("GPU")来处理。有利的是,代替预先确定特定码块将由CPU或GPU中的一者来 处理,示例性实施例可以在处理该码的需求成熟时选择向这些处理组件中的哪一个指派处 理该码块的任务。即,可以对CPU和GPU的性能曲线的"快照"进行比较,从而工作负荷被 指派给最佳装备成高效地处理该码块的处理器。值得注意的是,将理解,在这些码块退出调 度队列时,针对分配后续工作负荷的后续处理器选择可以实时或近实时地作出。以此方式, 热感知调度模块可以利用与异构处理器中的个体核相关联的工作温度,通过就在工作负荷 分配前选择处理核来使QoS最优化。
[0039] 图1是解说在不同热状况下工作的示例性处理组件的一对性能曲线(核105°C、核 95°C)的示图300。处理组件可以是异构多核处理器内的核,并且可以是高容量、中等容量 或低容量的核。更具体地,如本领域普通技术人员将知晓的,处理组件可以是能够处理给定 码块的任何处理引擎,包括但不限于,CPU、GPU、DSP、可编程阵列等等。此外,如上所述,示 例性处理引擎可以是CPU、GPU等内的核或子核。
[0040] 如从图1的解说中可以看出,在工作负荷3500DMIP处,在95°C环境中工作的示例 性核消耗大约620mW功率(点315),但在同一 3500DMIP工作负荷处,当工作环境达到105°C 时,该核的功耗增加至几乎l〇〇〇mW功率(点310)。类似地,对于给定工作温度,核的处理效 率随着工作负荷的增加而降低。参考核95°C曲线,例如,当工作负荷从3500DMIP增加至大 约4300DMIP时,功耗增加至几乎1000mW (点305)。
[0041] 从图1的解说中可以看出,对于给定处理组件,该处理组件在功耗方面的效率随 着工作温度上升而降低。值得注意的是,本领域普通技术人员将认识到,示例性处理组件工 作温度的上升可能由任何数目的因素或因素的组合而造成,包括但不限于,处理组件内与 更高时钟速度相关联的增加的功率泄漏、Btt邻处理组件的热侵源、Btt邻处理组件的发生故 障的组件等等。此外,本领域普通技术人员将认识到,作为与功耗增加相关联的增加的功率 泄漏率的结果,处理组件上增加的工作负荷将导致工作负荷分配时与处理组件相关联的工 作温度上升。无论处理组件的工作温度为何可以上升或下降,重要的是从图1的解说中注 意到,一般而言,给定处理组件的处理效率随着工作温度增加而反比下降。
[0042] 现在转向图2,描绘了解说在不同热状况下工作的两个示例性处理组件(即,"低 性能" CPU处理组件和"高性能" GPU处理组件)中每一者的一对性能曲线(GPU 10 5 °C、 GPU95°C ;CPU105°C、CPU95°C )的示图400。实质上,图2的示图400描绘了两个不同的示 例性处理组件的性能曲线,其中每一者可由图1的解说来表示。此外,本领域普通技术人员 将认识到,由图2中这些性能曲线对表示的两个示例性处理器GPU、CPU可包含在常见的异 构多处理器片上系统("SoC")中。
[0043] 值得注意的是,通过使示例性引擎GPU、CPU的性能曲线交迭,可以看出各个转接 点或跨接点405、410、415被定义在各条曲线的交叉点处。这些跨接点表示热感知调度模块 可用来选择被最佳定位成高效处理给定码块的各处理组件的可能阈值。
[0044] 例如,当处理器GPU、CPU中的每一者都在95°C工作时,对示例性GPU、CPU处理器 性能曲线的比较性分析可以确定在大约3700DMIP (点410)的工作负荷处两个处理器GPU、 CPU在处理效率方面基本上等同。然而,从比较性分析中还可以看出,CPU处理组件在点410 以下更高效,即,当工作负荷小于3700DMIP时,CPU处理组件每DMIP工作负荷消耗较少功 率。相反,GPU核在点410以上更高效,S卩,当工作负荷超出3700DMIP时,GPU核每DMIP工 作负荷消耗较少功率。
[0045] 因此,依赖于以上相对于示图400中的点410所概括的示例性比较性分析,利用在 给定工作温度95°C处对示例性GPU、CPU性能曲线的比较性分析的热感知调度模块可以规 定超出3700DMIP的工作负荷应调度给GPU处理组件。类似地,同一热感知调度组件可以规 定小于3700DMIP的工作负荷应调度给CPU处理组件。
[0046] 在示图400中,当工作温度在105°C量级时,同样这两个示例性处理组件GPU、CPU 之间的转接点415可以触发符合以上相对于点410所概述的逻辑的处理组件选择。即,热 感知调度模块可以利用对性能曲线(GPU105°C、CPU105°C )的比较性分析来调度工作负荷, 从而当所需DMIP在转接点415以上时偏好GPU处理组件来接收各码块,而在所需DMIP在 转接点415以下时偏好CPU处理组件来接收各码块。
[0047] 此外,将理解,由于任何数目的因素,异构多处理器SoC中的不同处理器和/或核 可以在不同热状况下工作。例如,在图2的解说中,转接点405表示示例性CPU处理组件在 105°C工作的性能曲线与示例性GPU处理组件在95°C工作的性能曲线的交叉点。因此,类似 于上述示例性场景,通过识别示例性处理器在不同温度工作,一实施例可以利用比较性分 析来就在工作负荷分配前确定这些处理器中的哪一个被最佳装备成高效地处理准备供处 理的给定码块。例如,可以将2400DMIP以下的工作负荷指派给CPU处理组件,而将2400DMIP 以上的工作负荷指派给GPU处理组件,以便确保在最高效的状况下处理这些工作负荷。 [0048] 本领域普通技术人员将认识到,以上概述的工作负荷调度的各种场景不表示穷尽 性数量的场景,其中对处理组件性能曲线的比较性分析对于在异构多核处理器和/或异构 多处理器SoC中进行工作负荷调度而言可能是有益的。由此,将理解,预想了可用于比较异 构多核处理器或异构多处理器SoC中的两个或更多个处理核的性能曲线,以根据具体情况 来确定工作负荷分配的任何热感知调度组件或模块。根据各种实施例,对处理组件性能曲 线的比较性分析可用于基于标识在工作负荷分配时可用的最高效的处理组件来在多个处 理组件间调度工作负荷。
[0049] 值得注意的是,预想了热感知调度算法的某些实施例可由热感知调度模块执行, 以便在指派下一码块的情况下基于个体处理组件可经历的聚集工作负荷来比较一个或 多个有资格的处理组件的性能曲线。例如,回头参照图2解说的示例性曲线GPU95°C和 CPU105°C,假定与这些曲线相关联的处理器GPU、CPU中的每一者当前正以2000DMIP速率进 行处理,并且热感知调度模块正设法确定这两个示例性处理器中的哪一个被最佳定位成高 效地处理1000DMIP的附加工作负荷。与当前正处理的2000DMIP工作负荷不同,热感知调 度算法可用于基于所假定的每处理组件(GPU、CPU)3000DMIP的聚集工作负荷(先前分配的 每引擎2000DMIP,加上要分配给这些引擎之一的附加1000DMIP)来比较这些曲线。对于该 非限定性示例,基于图2解说的示例性曲线GPU95°C和CPU105°C,热感知调度模块可以选择 将消耗400mW以下功率的更高效GPU来在3000DMIP进行处理,而非在同一工作负荷下将消 耗500mW以上功率的CPU。
[0050] 热感知调度算法的又一些实施例可用于若要指派附加工作负荷则基于曲线中 的预测偏移来比较各性能曲线。例如,回头参照各自分别在工作温度95°C和105°C下以 2000DMIP速率进行处理的处理器GPU和CPU的示例,热感知调度模块的各实施例可以预测 这些性能曲线中可能源自所分配的附加1000DMIP工作负荷的偏移。值得注意的是,由于附 加1000DMIP工作负荷可能导致被指派的处理组件消耗更多功率,因此热感知调度模块可 以考虑作为附加工作负荷的结果,当前与该处理组件相关联的工作温度将上升,并且由此 设法比较与这些预测温度上升相关联的各性能曲线。
[0051] 返回至该示例,附加1000DMIP工作负荷可能导致GPU的工作温度从95°C增加至 100°C,并且类似地,CPU的工作温度从105°C增加至110°C。因此,热感知调度模块的一个 实施例可以查询并且比较与分别在预测温度100°和110°工作的核GPU和CPU相关联的 各性能曲线(图2中未示出GPUKKTC和CPU1KTC性能曲线)。
[0052] 图3是解说通过跨异构、多核处理组件110的热感知工作负荷调度来在P⑶100中 进行QoS最优化的片上系统102的实施例的功能框图。如以上相对于图1和2的解说所说 明的,跨处理组件的工作负荷分配可以基于与个体核或处理器222、224、226、228唯一地相 关联的各性能曲线的比较性分析。值得注意的是,如本领域普通技术人员将认识到的,处 理组件110仅出于解说性目的而被描绘成一组异构处理引擎,并且可表示具有多个异构核 222、224、226、228或多个异构处理器222、224、226、228(其中每一者可以包括或可以不包 括多个核和/或子核)的单个处理组件。由此,此处引用处理引擎222、224、226和228作 为"核"将被理解为本质上是示例性的,并且将不限制本公开的范围。
[0053] 片上系统可以使用与热策略管理器("TPM")模块101和热感知工作负荷调度 ("TAWS")模块207进行通信的监视器模块114来监视与核222、224、226、228个体地相关 联的温度传感器157。TPM模块101可以从监视器模块114接收温度测量,并且使用该测量 来确定并且应用热管理策略。由TPM模块101应用的热管理策略可以通过工作负荷从一 个处理组件到另一个处理组件的重新分配、处理器时钟速度的衰弱或变化等来管理热能产 生。值得注意的是,通过应用热管理策略,TPM模块101可以减少或减轻以QoS为代价的过 度热能产生。
[0054] 如本领域普通技术人员将认识到的,由TPM模块101所规定的热管理策略可以直 接影响处理核222、224、226、228中的一个或多个处理核的工作温度。即,TPM模块101所 应用的热管理技术可能以被调用以承载增加的工作负荷负担的另一处理引擎的工作温度 为代价导致一个处理引擎的工作温度下降。因此,当各个处理核222、224、226、228的工作 温度波动时(无论此类波动是否归因于所应用的热管理策略、外部热能源等),与那些引擎 222、224、226、228相关联的性能曲线也波动。
[0055] 当与核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,类似于以上附图中描绘和描述的。
[0056] 示例性TAWS模块207被配置成利用对与各种不同的处理组件222、224、226、228 相关联的一条或多条性能曲线的比较性分析。TAWS模块207可以考虑由所比较的性能曲线 的交叉点表示的转接点来为这些核中的每一者确定最优工作负荷范围,并且以核222、224、 226、228中的一个或多个核持续在其最优范围中操作的方式来指派码块。有利的是,通过 使用从监视器模块114接收到的温度读数以从CP数据存储24中查询性能曲线,TAWS模块 207可以通过实时或近实时地向处于高效地处理工作负荷的最佳状况的特定处理引擎指派 工作负荷来使QoS最优化。
[0057] 值得注意的是,本领域普通技术人员将认识到,当处理组件222、224、226、228的 工作温度改变时,TAWS模块207所查询和比较的性能曲线也将改变。由此,在不同时间, TAWS模块207可以选择不同的处理引擎222、224、226、228以供分配重复或类似码块。以此 方式,某些实施例的优点在于,TAWS模块207确保了工作负荷指派被分配给在分配时可用 的最高效的处理组件。
[0058] 图4是无线电话形式的PCD100的示例性非限定性方面的功能框图,用于实现用来 监视热状况、比较性能曲线、以及将工作负荷调度到被最佳定位成供高效处理的处理组件 的方法和系统。如图所示,P⑶100包括片上系统102,该片上系统102包括耦合在一起的异 构多核中央处理单元("CPU")110和模拟信号处理器126。CPU110可包括第零核222、第 一核224、以及第N核230,如本领域普通技术人员所理解的。此外,作为CPU110的替代,也 可采用数字信号处理器("DSP"),如本领域普通技术人员所理解的。此外,如异构多核处 理器领域所理解的,核222、224、230中的每一者可以在类似工作状况下以不同效率处理工 作负荷。
[0059] -般而言,TPM模块101可以负责监视并且应用包括一种或多种热缓解技术的热 策略。应用这些热缓解技术可以帮助P⑶100管理热状况和/或热负荷并且避免经历不利 的热状况,诸如举例而言在维持高水平功能性的同时达到临界温度。热感知工作负荷调度 模块207可以接收与TPM模块101相同或相似的温度数据,还利用该温度数据来查询与核 222、224、230相关联的性能曲线,执行对处理核性能曲线的比较性分析,以及将码块调度到 将最高效地处理该工作负荷的核222、224、230。
[0060] 图4还示出P⑶100可包括监视器模块114。监视器模块114与遍布片上系统102 分布的多个操作传感器(例如,热传感器157)通信,并与rcDlOO的CPU110以及与TPM模 块101和/或TAWS模块207通信。TPM模块101可以与监视器模块114 一起工作以标识可 以保证应用包括工作负荷分配和/或重新分配的一种或多种热缓解技术的热转接点。TAWS 模块207可以与监视器模块114 一起工作以查询与监视器模块114所监视的温度有关的处 理器性能曲线,比较这些曲线,并且选择可用且能够处理码块的最高效的处理器。
[0061] 如图4中所解说的,显示控制器128和触摸屏控制器130被耦合到数字信号处理 器110。外置于片上系统102的触摸屏显示器132被耦合至显示控制器128和触摸屏控制 器 130。
[0062] P⑶100还可包括视频解码器134,例如逐行倒相("PAL")解码器、顺序传送与存 储彩色电视系统("SECAM")解码器、国家电视系统委员会("NTSC")解码器或任何其他 类型的视频解码器134。视频解码器134被耦合至多核中央处理单元("CPU")110。视频 放大器136被耦合至视频解码器134和触摸屏显示器132。视频端口 138被耦合至视频放 大器136。如图4中所描绘的,通用串行总线("USB")控制器140被耦合至CPU110。而 且,USB端口 142被耦合至USB控制器140。存储器112和订户身份模块(SM)卡146还可 被耦合至CPU110。此外,如图4中所示,数字相机148可被耦合至CPU110。在示例性方面, 数字相机148是电荷耦合器件("CCD")相机或互补金属氧化物半导体("CMOS")相机。
[0063] 如图4中进一步解说的,立体声音频编解码器150可被耦合至模拟信号处理器 126。此外,音频放大器152可被耦合至立体声音频编解码器150。在示例性方面中,第一立 体声扬声器154和第二立体声扬声器156被稱合至音频放大器152。图4不出了话筒放大 器158也可被耦合至立体声音频编解码器150。另外,话筒160可被耦合至话筒放大器158。 在特定方面中,调频("FM")无线电调谐器162可被耦合至立体声音频编解码器150。同 样,FM天线164被耦合至FM无线电调谐器162。此外,立体声头戴式受话机166可被耦合 至立体声音频编解码器150。
[0064] 图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电源。
[0065] CPU110还可被耦合至一个或多个内置的片上热传感器157A以及一个或多个外置 的片外热传感器157B。片上热传感器157A可包括一个或多个与绝对温度成比例("PTAT") 式温度传感器,这些传感器基于垂直PNP结构并且通常专用于互补金属氧化物半导体 ("CMOS")超大规模集成("VLSI")电路。片外热传感器157B可包括一个或多个热敏电 阻。热传感器157可产生电压降,该电压降被用模数转换器("ADC")控制器103转换为数 字信号(参见图5A)。然而,可采用其他类型的热传感器157而不脱离本发明的范围。
[0066] 除了由ADC控制器103控制和监视之外,热传感器157还可由一个或多个TPM模 块101和/或TAWS模块207来控制和监视。(诸)TPM模块101和/或TAWS模块207可 包括由CPU110执行的软件。然而,(诸)TPM模块101和/或TAWS模块207还可由硬件和 /或固件形成,而不会脱离本发明的范围。TPM模块101可以负责监视并应用包括一种或多 种热缓解技术的热策略,这些热缓解技术可帮助PCD100避免临界温度,同时维持高水平的 功能性。TAWS模块207可以负责查询处理器性能曲线,并且基于对那些曲线的分析向在工 作负荷分配时最有能力高效地处理该码的处理器指派码块。
[0067] 回到图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来从这些外置设备之中的一者或多者接收一个或多个指示或信号以辅助对 可在P⑶100上操作的资源的实时管理。
[0068] 在特定方面,本文描述的方法步骤中的一个或多个可由存储在存储器112中的、 形成一个或多个TPM模块101和/或TAWS模块207的可执行指令和参数来实现。除了 ADC 控制器103外,形成TPM模块101和/或TAWS模块207的这些指令可由CPU110、模拟信号 处理器126、或另一处理器来执行以执行本文描述的方法。此外,处理器110、126、存储器 112、存储于其中的指令、或者其组合可用作用于执行本文中所描述的一个或多个方法步骤 的装置。
[0069] 图5A是解说用于图4中解说的芯片102的硬件的示例性空间安排的功能框图。根 据这一示例性实施例,应用CPU110位于芯片102的最左侧区域,而调制解调器CPU168U26 位于芯片102的最右侧区域。应用CPU110可包括异构多核处理器,其包含第零核222、第一 核224、和第N核230。应用CPU110可以正在执行TPM模块101A和/或TAWS模块207a(在 以软件实施时),或者可包括TPM模块101A和/或TAWS模块207A (在以硬件实施时)。应 用CPU110被进一步解说为包括操作系统("0/S")模块208和监视器模块114。以下将结 合图5B来描述关于监视器模块114的进一步细节。
[0070] 应用CPU110可被耦合至一个或多个锁相环("PLL")209A、209B,PLL209A、209B毗 邻于应用CPU110放置并位于芯片102的左侧区域。毗邻于PLL209A、209B且在应用CPU110 之下可包括模数("ADC")控制器103,该模数控制器103可包括其自身的热策略管理器 101B和/或TAWS模块207B,该热策略管理器101B和/或TAWS模块207B与应用CPU110 的主模块1〇1Α、207Α协同工作。
[0071] ADC控制器103的热策略管理器101B可负责监视并跟踪可在"片上"102和"片 夕卜" 102提供的多个热传感器157。片上或内置热传感器157A可被放置在各个位置。
[0072] 作为非限定性示例,第一内置热传感器157A1可被置于芯片102的位于应用 CPU110和调制解调器CPU168U26之间并毗邻内置存储器112的顶部中心区域中。第二 内置热传感器157A2可被置于芯片102的右侧区域上在调制解调器CPU168、126之下的地 方。第二内置热传感器157A2还可被置于高级精简指令集计算机("RISC")指令集机器 ("ARM")177和第一图形处理器135A之间。数模控制器("DAC")173可被置于第二内置 热传感器157A2和调制解调器CPU168U26之间。
[0073] 第三内置热传感器157A3可被置于芯片102的最右区域中在第二图形处理器135B 和第三图形处理器135C之间的地方。第四内置热传感器157A4可被置于芯片102的最右 区域中并在第四图形处理器13OT之下的地方。并且第五内置热传感器157A5可被置于芯 片102的最左区域中并毗邻于PLL209和ADC控制器103。
[0074] -个或多个外置热传感器157B也可被耦合至ADC控制器103。第一外置热传感器 157B1可被置于片外并毗邻芯片102的可包括调制解调器CPU168、126、ARM177以及DAC173 的右上象限。第二外置热传感器157B2可被置于片外并毗邻芯片102的可包括第三和第四 图形处理器135CU35D的右下象限。
[0075] 本领域普通技术人员将认识到,可提供图5A中所解说的硬件的各种其它空间安 排,而不脱离本发明的范围。图5A解说了一个示例性空间安排,以及主TPM和TAW模块 101A、207A以及ADC控制器103及其TPM和TAW模块101B、207B如何可识别因变于图5A中 解说的示例性空间安排的热状况、比较性能曲线、并且分配工作负荷以管理热状况。
[0076] 图5B是解说图4和图5A的P⑶100的示例性软件架构200的示意图,其用于支持 标识热状况并且应用利用对处理核性能曲线的比较性分析的算法来选择处理器用于工作 负荷分配。任何数目的算法可以形成至少一种热缓解技术或作为其一部分,该技术可在满 足某些热状况并且分析性能曲线时由热策略管理器101应用。类似地,任何数目的算法可 以形成至少一种热感知调度算法或作为其一部分,该算法可在存在某些热状况并且分析关 联性能曲线时由TAWS模块207来应用。
[0077] 如图5B中所解说的,CPU或数字信号处理器110经由总线211耦合至存储器112。 如以上提及的,CPU110是多核异构处理器,其具有N个核处理器。也就是说,CPU110包括 第一核222、第二核224、和第N核230。如本领域普通技术人员所知的,第一核222、第二核 224、和第N核230中的每一者均可用于支持专用应用或程序,并且作为异构核的一部分,可 以在类似热工作状况下提供不同的性能水平。替换地,一个或多个应用或程序可被分布以 跨两个或更多个可用异构核进行处理。
[0078] CPU110可从可包含软件和/或硬件的TPM模块101接收命令。如果实施为软件, 则TPM模块101包含由CPU110执行的指令,CPU110将命令发至正由CPU110和其它处理器 执行的其它应用程序。
[0079] CPU110的第一核222、第二核224直到第N核230可被集成在单个集成电路管芯 上,或者它们可被集成或耦合在多电路封装中的分开的管芯上。设计者可经由一个或多个 共享高速缓存来耦合第一核222、第二核224、直到第N核230,并且他们可以经由网络拓扑 (诸如,总线、环、网状和纵横拓扑)来实现消息或指令传递。
[0080] 在所解说的实施例中,RF收发机168经由数字电路元件来实现,并包括至少一个 处理器(诸如核处理器210 (标记为"核"))。在这一数字实现中,RF收发机168经由总线 213耦合至存储器112。
[0081] 总线211和总线213中的每一者可包括经由一个或多个有线或无线连接的多条通 信路径,如本领域中已知的。总线211和总线213可具有使得能够进行通信的附加元件,这 些附加元件出于简化起见被省略,诸如控制器、缓冲器(高速缓存)、驱动器、中继器、和接 收机。此外,总线211和总线213可包括地址、控制、和/或数据连接以使得能够在前述组 件间进行恰适的通信。
[0082] 当由PCD100使用的逻辑在如图5B中所示的软件中实现时,应注意到,启动逻辑 250、管理逻辑260、热感知工作负荷调度接口逻辑270、应用存储280中的应用、以及文件系 统290的各部分中的一者或多者可被存储在任何计算机可读介质上以供任何计算机相关 的系统或方法使用或与之结合使用。
[0083] 在本文档的上下文中,计算机可读介质是能包含或存储供计算机相关的系统或方 法使用或结合计算机相关的系统或方法使用的计算机程序和数据的电、磁、光、或其他物理 器件或装置。各种逻辑元件和数据存储可实施于任何计算机可读介质中以供指令执行系 统、装置、或设备(诸如,基于计算机的系统、包含处理器的系统、或者能从指令执行系统、 装置、或设备获取指令并执行这些指令的其他系统)使用或结合其使用。在本文档的上下 文中,"计算机可读介质"可以是能存储、传达、传播、或传输供指令执行系统、装置或设备使 用或者结合指令执行系统、装置或设备使用的程序的任何装置。
[0084] 计算机可读介质可以是例如但不限于:电子、磁、光学、电磁、红外、或半导体系统、 装置、设备,或传播介质。计算机可读介质的更为具体的示例(非穷尽性列表)可包括以 下各项:具有一条或多条导线的电连接(电子的)、便携式计算机软盘(磁的)、随机存取 存储器(RAM)(电子的)、只读存储器(ROM)(电子的)、可擦除可编程只读存储器(EPROM、 EEPR0M、或闪存)(电子的)、光纤(光学的)、和便携式压缩碟只读存储器(CD-ROM)(光学 的)。注意到,计算机可读介质甚至可以是其上印刷有程序的纸张或另一合适介质,因为程 序可被电子捕获,例如通过对纸张或其他介质光学扫描,随后被编译、解读或另行以合适方 式处理(若需要),并随后存储于计算机存储器中。
[0085] 在替换性实施例中,在启动逻辑250、管理逻辑260以及或许热感知工作负荷调度 接口逻辑270中的一者或多者以硬件实现的场合,各种逻辑可以用以下技术中的任何一种 或者组合来实现,这些技术各自是本领域中众所周知的:具有用于对数据信号实现逻辑功 能的逻辑门的(诸)分立逻辑电路、具有恰适的组合逻辑门的专用集成电路(ASIC)、(诸) 可编程门阵列(PGA)、现场可编程门阵列(FPGA)等。
[0086] 存储器112是非易失性数据存储设备,诸如闪存或固态存储器设备。尽管被描绘 为单个设备,但存储器112可以是具有耦合至数字信号处理器和/或RF收发机168中的核 210 (或附加处理器核)的分开数据存储的分布式存储器设备。
[0087]启动逻辑250包括用于选择性地标识、加载、和执行用于热感知比较性分析和选 择一个或多个可用核(诸如,第一核222、第二核224直到第N核230)中的选定程序的一条 或多条可执行指令。
[0088] 管理逻辑260包括用于终止热感知性能曲线分析程序,以及选择性地标识、加载、 和执行更为合适的替换程序以用于热感知比较性分析、选择、以及向一个或多个可用核的 工作负荷分配的一条或多条可执行指令。管理逻辑260被安排成在运行时或者当PCD100 被上电并且正由设备的操作者使用时执行这些功能。替换程序可在嵌入式文件系统290的 程序存储296中找到。
[0089] 替换程序在由数字信号处理器中的核处理器中的一个或多个核处理器和RF收发 机168中的核210执行时可根据由TPM模块101、TAW模块207和监视器模块114提供的一 个或多个信号来工作。就此,模块114可响应于源自TPM101的控制信号而提供事件、过程、 应用、资源状态条件、流逝时间、温度等的一个或多个指示符。
[0090] 接口逻辑270包括用于呈现、管理外部输入以及与外部输入交互以观察、配置、或 以其他方式更新存储于嵌入式文件系统290中的信息的一条或多条可执行指令。在一个 实施例中,接口逻辑270可与经由USB端口 142接收到的制造商输入协同操作。这些输入 可包括要从程序存储296中删除或者要添加到程序存储296的一个或多个程序。替换地, 这些输入可包括对程序存储296中的一个或多个程序的编辑或改变。此外,这些输入可标 识对启动逻辑250和管理逻辑260中的一者或两者的一个或多个改变或全部替换。作为示 例,这些输入可包括指令PCD100在收到信号功率落到标识出的阈值之下时挂起RF收发机 168中的所有性能调节的对管理逻辑260的改变。作为进一步的示例,这些输入可包括指令 P⑶100在视频编解码器134活跃时应用期望程序的对管理逻辑260的改变。
[0091] 接口逻辑270使得制造商能够在P⑶100上所定义的操作条件下可控地配置和调 整最终用户的体验。当存储器112是闪存时,启动逻辑250、管理逻辑260、接口逻辑270、应 用存储280中的应用程序或嵌入式文件系统290中的信息中的一者或多者可被编辑、替换、 或以其他方式修改。在一些实施例中,接口逻辑270可准许PCD100的最终用户或操作者搜 索、定位、修改或替换启动逻辑250、管理逻辑260、应用存储280中的应用和嵌入式文件系 统290中的信息。操作者可使用所得的接口来作出将在PCD100的下一次启动之际实现的 改变。替换地,操作者可使用所得的接口来作出在运行时期间实现的改变。
[0092] 嵌入式文件系统290包括分层安排的核性能数据存储24。就此,文件系统290可 包括其总文件系统容量的一保留部分,用于存储与各个核222、224、226、228在各个工作温 度下的性能曲线相关联的信息。
[0093] 图6是解说用于基于对处理器性能曲线的比较性分析来在P⑶100中跨异构处理 组件进行热感知工作负荷调度的方法600的实施例的逻辑流程图。在图6实施例中,各个 处理核222、224、226、228中的每一者的性能曲线可以基于由监视模块114收集的实际性能 数据来经验地确定,或者在一些实施例中,性能曲线可以是由每个核的性能规范驱动的先 验曲线。
[0094] 在一些实施例中,为根据经验确定各个处理核222、224、226、228的性能曲线,监 视模块114可以与温度传感器157以及对于监视核222、224、226、228的功耗有用的各个其 他电压或电流传感器进行通信。在此种实施例中,本领域普通技术人员将认识到,由监视器 模块114收集的数据可以与接收自TAWS模块207的先前工作负荷分配数据相耦合,并且被 编译成经验性能曲线。这些经验性能曲线可被存储在CP数据存储24中,并且由热感知工 作负荷调度算法来利用。
[0095] 在框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以用于准备好调度的下一 码块。
[0096] 图7是解说用于处理器性能曲线的比较性分析的示例性子方法620的逻辑流程 图,其中所选供比较的功率曲线与有资格的处理组件的当前工作温度相关联。在框705,基 于与这些处理组件中的每一者相关联的以及先前在框610提供给TAWS模块207的温度测 量,从CP数据存储24查询性能曲线。一旦这些处理组件(诸如,异构多核处理器110中的 核222、224、226、228)中的每一者的适当性能曲线被标识,在框710就可以比较这些曲线, 以标识哪一个处理组件在比较时可能正在最高效地工作。值得注意的是,如上所述,所比较 的曲线的转接点可以表示TAWS模块207可用来选择一个处理组件而不是另一个处理组件 的阈值。然而,预想了并非全部所比较的性能曲线必然"跨接"从而存在转接点。在此种情 况下,本领域普通技术人员将认识到,一个处理组件的性能曲线可以指示该处理组件当前 比其相对方在任何或绝大多数工作负荷水平下更高效地运行。
[0097] 返回图7的子方法,由于这些核中的每一者的当前工作负荷水平可在所选曲线上 进行映射,因此TAWS模块207可以确定这些核中的每一者的当前功耗率随后,在框715,可 以计算所比较的处理组件中的每一者的功耗,并且可以将具有最低当前功耗的处理器标识 为可用于附加工作负荷分配的最高效的处理组件。
[0098] 图8是解说用于处理器性能曲线的比较性分析的示例性子方法620的逻辑流程 图,其中所选供比较的功率曲线与有资格的处理组件的当前工作温度相关联。在框805,基 于与这些处理组件中的每一者相关联的以及先前在框610提供给TAWS模块207的温度测 量,从CP数据存储24查询性能曲线。一旦这些处理组件(诸如,异构多核处理器110中的 核222、224、226、228)中的每一者的适当性能曲线被标识,在框810就可以比较这些曲线, 以标识哪一个处理组件在被分配该码块的情况下可以提供最佳处理效率。即,该码块所表 示的附加工作负荷负担可被添加到由标识出的处理组件处理的现有工作负荷。在框810, 可以将预测未来工作负荷映射到性能曲线,并且比较每个处理组件的预测未来功耗。在框 815和625,可以选择在未来工作负荷水平下具有最低预测功耗的处理组件。
[0099] 图9是解说用于处理器性能曲线的比较性分析的示例性子方法620的逻辑流程 图,其中所选供比较的功率曲线与有资格的处理组件的预测工作温度相关联。如上所述, 附加工作负荷负担可导致处理组件消耗更多功率,由此增加其功率泄漏率并且产生附加热 能。如本领域普通技术人员将理解的,所产生热能的耗散可导致给定处理组件工作温度的 增加,并且致使其比替换处理组件效率低。
[0100] 在框905,对于标识出的处理组件中的每一者,计算由添加工作负荷导致的对工作 温度的影响。基于预测工作温度,在910从CP数据存储24查询性能曲线。一旦这些处理 组件(诸如,异构多核处理器110中的核222、224、226、228)中的每一者的适当性能曲线被 标识,在框915就可以比较这些曲线,以标识哪一个处理组件在被分配该码块的情况下可 以提供最佳处理效率。即,该码块所表示的附加工作负荷负担可被添加到正由标识出的处 理组件处理的现有工作负荷,并且可被映射到所查询的性能曲线。随后,可以比较每个处理 组件的预测未来功耗。在框920和625,可以选择在未来工作负荷水平和工作温度下具有最 低预测功耗的处理组件。
[0101] 本说明书中所描述的过程或过程流中的某些步骤自然地位于其他步骤之前以便 本发明如以上所述地运行。然而,如果此类次序或顺序并不改变本发明的功能性,则本发明 并不被限定于所描述的步骤次序。即,认识到某些步骤可在其他步骤之前、之后、或并行地 (基本上同时)执行,而不脱离本发明的范围和精神。在一些实例中,某些步骤可被省却或 不执行,而不脱离本发明。此外,诸如"此后"、"随后"、"接下来"等措辞无意限定这些步骤 的次序。这些措辞仅仅是被用于带领读者遍阅对示例性方法的描述。
[0102] 另外,举例而言,编程领域的普通技术人员能够基于本说明书中的流程图和相关 联的描述来毫无困难地编写计算机代码或标识恰适的硬件和/或电路以实现所公开的发 明。因此,并不认为对特定程序代码指令集或详细硬件设备的公开是充分理解如何作出并 使用本发明所必需的。所要求保护的计算机实现的过程的创新功能性在以上描述中结合可 解说各种过程流的附图更为详细地进行了解释。
[0103] 在一个或多个示例性方面中,所描述的功能可在硬件、软件、固件或其任何组合中 实现。如果在软件中实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介 质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,这些介质包 括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的 任何可用介质。以示例而非限定的方式,此类计算机可读介质可以包括RAM、ROM、EEPR0M、 CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可用以携带或者存储指令或数 据结构形式的期望程序代码且可由计算机访问的任何其它介质。
[0104] 任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤 电缆、双绞线、数字订户线("DSL")、或诸如红外、无线电、以及微波之类的无线技术从web 网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、 无线电、以及微波之类的无线技术就被包括在介质的定义之中。
[0105] 如本文中所使用的,盘(disk)和碟(disc)包括压缩碟("⑶")、激光碟、光碟、数 字多用碟("DVD")、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc) 用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
[0106] 因此,尽管已详细解说和描述了精选的方面,但是将可理解,可在其中作出各种替 换和变更而不会脱离本发明如所附权利要求所定义的精神和范围。
【权利要求】
1. 一种在具有异构多处理器片上系统("SoC")的便携式计算设备中调度工作负荷的 方法,所述方法包括: 监视与所述异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联的温 度读数; 接收要由所述多个个体处理组件之一处理的码块; 标识所述多个处理组件中有资格处理所述码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者唯一地相关联的所述温度读 数,查询每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给定温度下 工作时功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述码块调度到标识出的最高效的处理组件。
2. 如权利要求1所述的方法,其特征在于,比较每个有资格的处理组件的性能曲线以 标识所述更高效的处理组件进一步包括: 比较每个有资格的处理组件的性能曲线,以定义一个或多个转接点,其中转接点是所 述性能曲线中的两条性能曲线相交的点。
3. 如权利要求1所述的方法,其特征在于,所述更高效的处理组件是在其当前工作负 荷下消耗最少功率量的处理组件。
4. 如权利要求1所述的方法,其特征在于,所述更高效的处理组件是被计算为在将包 括所述码块的未来工作负荷下消耗最少功率量的处理组件。
5. 如权利要求1所述的方法,其特征在于,进一步包括: 接收要由所述多个个体处理组件之一处理的第二码块; 标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,查询 每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给定温度下工作时 功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述第二码块调度到标识出的最高效的处理组件。
6. 如权利要求1所述的方法,其特征在于,进一步包括: 为所述有资格的处理组件中的每一者预测可归因于将包括所述码块的未来工作负荷 的所述温度读数的上升;以及 其中所查询的每个有资格的处理组件的性能曲线与所预测的所述温度读数的上升相 关联。
7. 如权利要求6所述的方法,其特征在于,比较每个有资格的处理组件的性能曲线以 标识所述更高效的处理组件进一步包括: 比较每个有资格的处理组件的性能曲线,以定义一个或多个转接点,其中转接点是所 述性能曲线中的两条性能曲线相交的点。
8. 如权利要求6所述的方法,其特征在于,所述更高效的处理组件是在其当前工作负 荷下会消耗最少功率量的处理组件。
9. 如权利要求6所述的方法,其特征在于,所述更高效的处理组件是在将包括所述码 块的未来工作负荷下会消耗最少功率量的处理组件。
10. 如权利要求6所述的方法,其特征在于,进一步包括: 接收要由所述多个个体处理组件之一处理的第二码块; 标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,查询 每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给定温度下工作时 功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述第二码块调度到标识出的最高效的处理组件。
11. 一种在具有异构多处理器片上系统("S〇C")的便携式计算设备中调度工作负荷 的计算机系统,所述系统包括: 监视器模块,被配置成: 监视与所述异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联的温 度读数;以及 热感知工作负荷调度模块,被配置成: 接收要由所述多个个体处理组件之一处理的码块; 标识所述多个处理组件中有资格处理所述码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,在核 性能存储中查询每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给 定温度下工作时功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述码块调度到标识出的最高效的处理组件。
12. 如权利要求11所述的计算机系统,其特征在于,所述热感知工作负荷调度模块被 进一步配置成: 比较每个有资格的处理组件的性能曲线,以定义一个或多个转接点,其中转接点是所 述性能曲线中的两条性能曲线相交的点。
13. 如权利要求11所述的计算机系统,其特征在于,所述更高效的处理组件是在其当 前工作负荷下消耗最少功率量的处理组件。
14. 如权利要求11所述的计算机系统,其特征在于,所述更高效的处理组件是被计算 为在将包括所述码块的未来工作负荷下消耗最少功率量的处理组件。
15. 如权利要求11所述的计算机系统,其特征在于,所述热感知工作负荷调度模块被 进一步配置成: 接收要由所述多个个体处理组件之一处理的第二码块; 标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,在核 性能存储中查询每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给 定温度下工作时功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述第二码块调度到标识出的最高效的处理组件。
16. 如权利要求11所述的计算机系统,其特征在于,所述热感知工作负荷调度模块被 进一步配置成: 为所述有资格的处理组件中的每一者预测可归因于将包括所述码块的未来工作负荷 的所述温度读数的上升;以及 其中所查询的每个有资格的处理组件的性能曲线与所预测的温度读数的上升相关联。
17. 如权利要求16所述的计算机系统,其特征在于,所述热感知工作负荷调度模块还 被配置成: 比较每个有资格的处理组件的性能曲线,以定义一个或多个转接点,其中转接点是所 述性能曲线中的两条性能曲线相交的点。
18. 如权利要求16所述的计算机系统,其特征在于,所述更高效的处理组件是在其当 前工作负荷下会消耗最少功率量的处理组件。
19. 如权利要求16所述的计算机系统,其特征在于,所述更高效的处理组件是在将包 括所述码块的未来工作负荷下会消耗最少功率量的处理组件。
20. 如权利要求16所述的计算机系统,其特征在于,所述热感知工作负荷调度模块还 被配置成: 接收要由所述多个个体处理组件之一处理的第二码块; 标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,在核 性能存储中查询每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给 定温度下工作时功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述第二码块调度到标识出的最高效的处理组件。
21. -种在具有异构多处理器片上系统("SoC")的便携式计算设备中调度工作负荷 的计算机系统,所述系统包括: 用于监视与所述异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联 的温度读数的装置; 用于接收要由所述多个个体处理组件之一处理的码块的装置; 用于标识所述多个处理组件中有资格处理所述码块的两个或更多个处理组件的装 置; 用于基于与所述两个或更多个有资格的处理组件中的每一者相关联的温度读数、查询 每一者的性能曲线的装置,其中所述性能曲线表示对于给定个体处理组件,在给定温度下 工作时功耗与工作负荷处理能力之间的关系; 用于比较每个有资格的处理组件的性能曲线、以标识更高效的处理组件的装置;以及 用于将所述码块调度到标识出的最高效的处理组件的装置。
22. 如权利要求21所述的计算机系统,其特征在于,用于比较每个有资格的处理组件 的性能曲线以标识所述更高效的处理组件的装置进一步包括: 用于比较每个有资格的处理组件的性能曲线、以定义一个或多个转接点的装置,其中 转接点是所述性能曲线中的两条性能曲线相交的点。
23. 如权利要求21所述的计算机系统,其特征在于,所述更高效的处理组件是在其当 前工作负荷下消耗最少功率量的处理组件。
24. 如权利要求21所述的计算机系统,其特征在于,所述更高效的处理组件是被计算 为在将包括所述码块的未来工作负荷下消耗最少功率量的处理组件。
25. 如权利要求21所述的计算机系统,其特征在于,进一步包括: 用于接收要由所述多个个体处理组件之一处理的第二码块的装置; 用于标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件的 装置; 用于基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数, 查询每一者的性能曲线的装置,其中所述性能曲线表示对于给定个体处理组件,在给定温 度下工作时功耗与工作负荷处理能力之间的关系; 用于比较每个有资格的处理组件的性能曲线、以标识更高效的处理组件的装置;以及 用于将所述第二码块调度到标识出的最高效的处理组件的装置。
26. 如权利要求21所述的计算机系统,其特征在于,进一步包括: 用于为所述有资格的处理组件中的每一者预测可归因于将包括所述码块的未来工作 负荷的所述温度读数的上升的装置;以及 其中所查询的每个有资格的处理组件的性能曲线与所预测的温度读数的上升相关联。
27. 如权利要求26所述的计算机系统,其特征在于,用于比较每个有资格的处理组件 的性能曲线以标识所述更高效的处理组件的装置进一步包括: 用于比较每个有资格的处理组件的性能曲线、以定义一个或多个转接点的装置,其中 转接点是所述性能曲线中的两条性能曲线相交的点。
28. 如权利要求26所述的计算机系统,其特征在于,所述更高效的处理组件是在其当 前工作负荷下会消耗最少功率量的处理组件。
29. 如权利要求26所述的计算机系统,其特征在于,所述更高效的处理组件是在将包 括所述码块的未来工作负荷下会消耗最少功率量的处理组件。
30. 如权利要求26所述的计算机系统,其特征在于,进一步包括: 用于接收要由所述多个个体处理组件之一处理的第二码块的装置; 用于标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件的 装置; 用于基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数, 查询每一者的性能曲线的装置,其中所述性能曲线表示对于给定个体处理组件,在给定温 度下工作时功耗与工作负荷处理能力之间的关系; 用于比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件的装置;以及 用于将所述第二码块调度到标识出的最高效的处理组件的装置。
31. -种包括计算机可使用介质的计算机程序产品,所述计算机可使用介质具有实施 于其中的计算机可读程序代码,所述计算机可读程序代码适配成被执行以实现用于在具有 异构多处理器片上系统("SoC")的便携式计算设备中调度工作负荷的方法,所述方法包 括: 监视与所述异构多处理器SoC中的多个个体处理组件中的每一者唯一地相关联的温 度读数; 接收要由所述多个个体处理组件之一处理的码块; 标识所述多个处理组件中有资格处理所述码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,查询 每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给定温度下工作时 功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述码块调度到标识出的最高效的处理组件。
32. 如权利要求31所述的计算机程序产品,其特征在于,所述程序代码实现所述方法 进一步包括: 比较每个有资格的处理组件的性能曲线,以定义一个或多个转接点,其中转接点是所 述性能曲线中的两条性能曲线相交的点。
33. 如权利要求31所述的计算机程序产品,其特征在于,所述更高效的处理组件是在 其当前工作负荷下消耗最少功率量的处理组件。
34. 如权利要求31所述的计算机程序产品,其特征在于,所述更高效的处理组件是被 计算为在将包括所述码块的未来工作负荷下消耗最少功率量的处理组件。
35. 如权利要求31所述的计算机程序产品,其特征在于,所述程序代码实现所述方法 进一步包括: 接收要由所述多个个体处理组件之一处理的第二码块; 标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,查询 每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给定温度下工作时 功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述第二码块调度到标识出的最高效的处理组件。
36. 如权利要求31所述的计算机程序产品,其特征在于,所述程序代码实现所述方法 进一步包括: 为所述有资格的处理组件中的每一者预测可归因于将包括所述码块的未来工作负荷 的所述温度读数的上升;以及 其中所查询的每个有资格的处理组件的性能曲线与所预测的温度读数的上升相关联。
37. 如权利要求36所述的计算机程序产品,其特征在于,所述程序代码实现所述方法 进一步包括: 比较每个有资格的处理组件的性能曲线,以定义一个或多个转接点,其中转接点是所 述性能曲线中的两条性能曲线相交的点。
38. 如权利要求36所述的计算机程序产品,其特征在于,所述更高效的处理组件是在 其当前工作负荷下将消耗最少功率量的处理组件。
39. 如权利要求36所述的计算机程序产品,其特征在于,所述更高效的处理组件是在 将包括所述码块的未来工作负荷下会消耗最少功率量的处理组件。
40. 如权利要求36所述的计算机程序产品,其特征在于,所述程序代码实现所述方法 进一步包括: 接收要由所述多个个体处理组件之一处理的第二码块; 标识所述多个处理组件中有资格处理所述第二码块的两个或更多个处理组件; 基于与所述两个或更多个有资格的处理组件中的每一者相关联的所述温度读数,查询 每一者的性能曲线,其中所述性能曲线表示对于给定个体处理组件,在给定温度下工作时 功耗与工作负荷处理能力之间的关系; 比较每个有资格的处理组件的性能曲线,以标识更高效的处理组件;以及 将所述第二码块调度到标识出的最高效的处理组件。
【文档编号】G06F9/50GK104067199SQ201280067364
【公开日】2014年9月24日 申请日期:2012年10月30日 优先权日:2011年11月21日
【发明者】S·苏尔, J·M·阿特米尔, M·D·古滋, P·T·穆勒, B·瑞奇里克 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1