芯片上的异构的多处理器系统中的模态工作负载调度的制作方法
【专利说明】
【背景技术】
[0001]便携式计算设备(“pro”)在个人和专业层次上正在变成人们的必需品。这些设备可以包括蜂窝电话、便携式数字助理(“PDA”)、便携式游戏控制台、掌上计算机以及其它便携式电子设备。
[0002]PCD的一个独特之处在于:它们通常不具有往往在较大的计算设备(诸如笔记本电脑和台式电脑中)能找到的像风扇那样的主动散热设备。因此,热能产生在PCD中通常通过各种热管理技术的应用来管理,这些热管理技术可以包括以处理性能的为代价来衰弱或关闭电子元件。在PCD中使用热管理技术力争在减轻热能生成和影响由PCD提供的服务质量(“QoS”)之间寻求平衡。然而,当过量的热能产生不是问题时,可以通过以最大频率等级在P⑶中运行处理组件来使QoS最大。
[0003]在具有异构的处理组件的P⑶中,各个处理组件不是平等的。因此,当热能产生在异构的处理器中不是问题时,以由最慢处理组件指示的最大频率等级来运行所有处理组件会使得没有充分利用PCD中可用的实际处理能力。类似地,当异构PCD中的情况指示功率节省优先于处理速度时(例如当热能生成是问题时),假设所有的处理组件以给定的降低的处理速度等同地运行会导致消耗超过必要功率的工作负载分配。
[0004]因此,本领域中需要用于在考虑个体处理组件的已知性能特性的前提下,在异构的处理组件之间分配PCD中的工作负载,以满足与PCD的操作模式相关联的性能目标的方法和系统。
【发明内容】
[0005]公开了用于包含异构的多处理器片上系统(“SoC”)的便携式计算设备中基于模式的工作负载重新分配的方法和系统的各个实施例。因为异构的多处理器SoC中的个体处理组件可以展示不同的性能能力或强度,并且因为这些处理组件中的一个以上的处理组件可能能够处理给定的代码块,因此,可以通过以满足操作模式的性能目标的方式,实时或接近实时地向最能够处理代码块的处理组件分配工作负载,利用基于模式的重新分配系统和方法来优化服务质量(“QoS”)。
[0006]一种这样的方法涉及:确定异构的多处理器SoC中的多个个体处理组件中的每个处理组件的性能能力。性能能力可以包括最大处理频率以及由每个处理组件表现出的静态电源电流。值得注意的是,本领域普通技术人员会认识到:那些具有相对较高的最大处理频率的处理组件可能最适合于在rcD处于高性能处理(“HPP”)模式时来处理工作负载,而表现出相对较低的静态电源电流的那些处理组件可能最适合于在P⑶处于功率节省(“PS”)模式时来处理工作负载。
[0007]监测PCD中的一个或多个模式决策条件的指示符。基于识别出的模式决策条件中的任意一个或多个模式决策条件的存在,确定与PCD的某些性能目标相关联的操作模式。例如,电池充电器已经插入P⑶从而提供基本上无限的功率源的指示可以触发HPP操作模式,所述HPP操作模式具有以最快可能的速度对工作负载进行处理的相关联的性能目标。类似地,电池容量已经下降到低于预先确定的门限从而造成PCD可能断电的风险的指示可以触发PS操作模式,所述PS操作模式具有以最低量的功率开销对工作负载进行处理的相关联的性能目标。
[0008]基于操作模式和相关联的性能目标,可以基于每个处理组件的个体性能能力在处理组件之间重新分配处理组件的活动工作负载。以这种方式,对被最佳地安置为以满足操作模式的性能目标的方式来处理工作负载的那些处理组件被区分优先次序用于工作负载的分配。
【附图说明】
[0009]在附图中,除非另有指示,否则相同的参考标号在各个图中指代相同的部分。对于具有字母字符标示的参考标号,例如“102A”或“102B”,字母字符标示可以区分同一附图中出现的两个相同的部分或元件。当参考标号旨在涵盖所有附图中具有相同参考标号的所有部分时,可以省略参考标号的字母字符标示。
[0010]图1是示出与便携式计算设备(“pro”)的给定四核芯片组中的示例性内核ο、ι、2和3相关联的处理能力和泄漏率的图表。
[0011]图2是示出可以指示PCD的操作模式的示例性条件或触发的图。
[0012]图3是示出用于异构的多核PCD中基于模式的工作负载重新分配的片上系统的实施例的功能框图。
[0013]图4是用于实现用于基于模式的工作负载重新分配的方法和系统的无线电话形式的PCD的示例性非限制方面的功能框图。
[0014]图5A是示出图4中示出的芯片的硬件的示例性空间布置的功能框图。
[0015]图5B是示出用于支持基于模式的工作负载重新分配的图4的PCD的示例性软件架构的示意图。
[0016]图6是示出用于图4的P⑶中的异构的处理组件之间的基于模式的工作负载重新分配的方法的实施例的逻辑流程图。
[0017]图7是示出基于模式的工作负载重新分配子例程的实施例的逻辑流程图。
【具体实施方式】
[0018]本文中使用的“示例性的”一词意指“用作示例、实例或说明”。在本文中被描述为“示例性的”的任何方面不一定被解释为排他的、优选的或者比其它方面更有优势的。
[0019]在本说明书中,术语“应用”还可以包括具有可执行内容的文件,诸如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,“应用”在本文中还可以包括在性质上不可执行的文件,诸如需要被打开的文档或需要被访问的其它数据文件。
[0020]如本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”、“热能产生组件”、“处理组件”、“处理引擎”、“应用处理器”等旨在指代计算机相关的实体,它们是硬件、固件、硬件和软件的组合、软件、或者执行中的软件,并且表示用于提供功能并在本说明中描述的过程或过程流中执行某些步骤的示例性模块。例如,组件可以是但不限于是运行在处理器上的过程、处理器、对象、可执行程序,所执行的线程、程序、和/或计算机。通过说明的方式,在计算设备上运行的应用和计算设备都可以是组件。一个或多个组件可以位于过程和/或所执行的线程之内,并且组件可以位于一台计算机上和/或分布在两台或更多台计算机之间。此外,这些组件可以从具有各种数据结构存储在其上的各种计算机可读介质执行。组件可以诸如根据具有一个或多个数据分组通过本地和/或远程过程进行通信(例如,来自与本地系统、分布式系统和/或跨越例如互联网的网络中的另一个组件进行交互、通过信号的方式与其他系统进行交互的一个组件的数据)。
[0021]在本说明书中,术语“中央处理单元(‘CPU’)”、“数字信号处理器’(‘DSP’)”、“芯片”和“芯片组”是可位于PCD中的处理组件的非限制性示例,并且除非另有指示否则可互换使用。此外,如同本文中所区分的,CPU、DSP或者芯片或芯片组可以包括通常在本文中被称为“内核”和“子核”的一个或多个不同的处理组件。
[0022]在本说明书中,将理解的是:术语“热”和“热能”可以与能够产生或消耗可以以“温度”为单位测量的能量的设备或组件关联使用。因此,还将理解的是:术语“温度”,参考某个标准值,设想可以指示“热能”产生设备或组件的相对温度或缺少热的任何测量。例如,当两个组件处于“热”平衡时,两个组件的“温度”相同。
[0023]在本说明书中,术语“工作负载”、“处理负载”、“处理工作负载”和“代码块”可互换使用,并通常指向处理负荷,或者处理负荷的百分比,其与给定实施例中的给定处理组件相关联,或者分配给给定实施例中的给定处理组件。相对于上文所定义的更进一步,“处理组件”可以是但不限于:中央处理单元、图形处理单元、内核、主核、子核、处理区域、硬件引擎等,或者位于便携式计算设备内的集成电路中或在其之外的任何组件。此外,在某种程度上,术语“热负载”、“热分布”、“热信号”、“热处理负载”等表示可以在处理组件上运行的工作负载负荷,本领域普通技术人员将认识到:本公开内容中这些“热”术语的使用可与处理负载分布、工作负载负荷和功耗有关。
[0024]在本说明书中,术语“热减轻技术”、“热策略”、“热管理”和“热减轻措施”可以互换使用。
[0025]本领域普通技术人员将认识到:术语“DMIPS”表示每秒要处理给定数量的几百万条指令的整数运算(Dhrystone)迭代的数量。在本说明书中,术语被用作测量的一般单位来指示示例性实施例中处理器性能的相对水平,并将不会被解释为暗示落入本公开内容的范围之内的任何给定的实施例必须包括或必须不包括具有任何特定的整数运算等级的处理器。
[0026]在本说明书中,术语“分配”和“重新分配”通常可互换使用。术语“分配”的使用不局限于初始分配,并且因此固有地包括重新分配。
[0027]在本说明书中,术语“便携式计算设备”(“PCD”)用于描述靠有限容量电源(例如电池)来起作用的任何设备。虽然靠电池来起作用的PCD已经使用了几十年,但可充电电池技术的进步加上第三代(“3G”)和第四代(“4G”)无线技术的到来已经使得大量TCD具有多种能力。因此,除了别的之外,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接的膝上型计算机。
[0028]在本说明书中,术语“性能”通常用于指代一个处理组件与另一个处理组件相比较的效率,并且因此可以根据其使用的上下文用各种单位来进行量化。例如,当上下文是以内核可以处理给定工作负载的MHz为单位的速度时,高容量内核可以表现出比低容量内核更好的性能。类似地,当上下文是在处理给定的工作负载时与内核相关联的静态电源电流(“IDDq”),S卩,以mA为单位的功耗时,低容量内核可以表现出比高容量内核要好的性能。
[0029]对具有异构的处理组件的P⑶中的用于QoS优化的处理性能进行管理可以通过利用可用于工作负载分配的个体处理引擎的不同性能特性来实现。关于可以包括在异构的处理组件中的各个处理引擎的不同性能特性,本领域普通技术人员将认识到:性能差异可归因于任何数量的原因,这些原因包括但不限于不同级别的硅,设计变化等。此外,本领域普通技术人员将认识到:与给定处理组件相关联的性能特性可以根据该处理组件的操作温度、向该处理组件提供的功率等而不同。
[0030]例如,考虑可以包括在性能容量上通常从低到高评级的多个不同处理内核的示例性异构的多核处理器(值得注意的是,本领域普通技术人员将认识到:也可以考虑可以包括多个不同处理组件(每个处理组件包含一个或多个内核)的示例性异构多处理器片上系统(“SoC”))。本领域普通技术人员将理解:异构的处理器中的低容量至中等容量处理内核将在给定工作负载容量处表现出低功率泄漏率,并且因此与具有相对较高性能容量的处理内核相比表现出较低速率的热能生成。与较低容量的内核相比,较高容量的内核能够在较短量的时间内处理给定数量的DMIP。出于这些原因,本领域普通技术人员将认识到:当PCD处于“高性能”模式时,会更期望高容量内核用于工作负载分配,而当PCD处于“功率节省”模式时,会更期望低容量内核(其具有较低的电流泄漏等级)用于工作负载分配。
[0031]认识到当P⑶处于某些操作模式时,异构的处理器中的某些内核比其它内核更适合于处理给定的工作负载,可以利用基于模式的工作负载重新分配算法来向在给定模式的上下文中提供最佳性能的处理内核或一些内核重新分配工作负载。例如,PCD中的某些条件