首页> 中国专利> 芯片上的异构的多处理器系统中的模态工作负载调度

芯片上的异构的多处理器系统中的模态工作负载调度

摘要

公开了用于包含异构的多处理器片上系统(“SoC”)的便携式计算设备(“PCD”)中基于模式的工作负载重新分配的方法和系统的各个实施例。因为异构的多处理器SoC中的个体处理组件可以展示不同的性能能力或强度,并且因为这些处理组件中的一个以上的处理组件可能能够处理给定的代码块,因此,可以通过以满足操作模式的性能目标的方式,实时或接近实时地向最能够处理代码块的处理组件分配工作负载,利用基于模式的重新分配系统和方法来优化服务质量(“QoS”)。操作模式可以通过PCD中的一个或多个模式决策条件的识别来确定。

著录项

  • 公开/公告号CN104737094A

    专利类型发明专利

  • 公开/公告日2015-06-24

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201380055032.5

  • 发明设计人 A·K·杜;T·A·莫里森;H-J·朴;

    申请日2013-09-24

  • 分类号

  • 代理机构永新专利商标代理有限公司;

  • 代理人张扬

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 09:38:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-05

    授权

    授权

  • 2015-11-18

    实质审查的生效 IPC(主分类):G06F1/32 申请日:20130924

    实质审查的生效

  • 2015-06-24

    公开

    公开

说明书

背景技术

便携式计算设备(“PCD”)在个人和专业层次上正在变成人们的必需 品。这些设备可以包括蜂窝电话、便携式数字助理(“PDA”)、便携式游戏 控制台、掌上计算机以及其它便携式电子设备。

PCD的一个独特之处在于:它们通常不具有往往在较大的计算设备(诸 如笔记本电脑和台式电脑中)能找到的像风扇那样的主动散热设备。因此, 热能产生在PCD中通常通过各种热管理技术的应用来管理,这些热管理技 术可以包括以处理性能的为代价来衰弱或关闭电子元件。在PCD中使用热 管理技术力争在减轻热能生成和影响由PCD提供的服务质量(“QoS”)之 间寻求平衡。然而,当过量的热能产生不是问题时,可以通过以最大频率 等级在PCD中运行处理组件来使QoS最大。

在具有异构的处理组件的PCD中,各个处理组件不是平等的。因此, 当热能产生在异构的处理器中不是问题时,以由最慢处理组件指示的最大 频率等级来运行所有处理组件会使得没有充分利用PCD中可用的实际处理 能力。类似地,当异构PCD中的情况指示功率节省优先于处理速度时(例 如当热能生成是问题时),假设所有的处理组件以给定的降低的处理速度等 同地运行会导致消耗超过必要功率的工作负载分配。

因此,本领域中需要用于在考虑个体处理组件的已知性能特性的前提 下,在异构的处理组件之间分配PCD中的工作负载,以满足与PCD的操作 模式相关联的性能目标的方法和系统。

发明内容

公开了用于包含异构的多处理器片上系统(“SoC”)的便携式计算设备 中基于模式的工作负载重新分配的方法和系统的各个实施例。因为异构的 多处理器SoC中的个体处理组件可以展示不同的性能能力或强度,并且因 为这些处理组件中的一个以上的处理组件可能能够处理给定的代码块,因 此,可以通过以满足操作模式的性能目标的方式,实时或接近实时地向最 能够处理代码块的处理组件分配工作负载,利用基于模式的重新分配系统 和方法来优化服务质量(“QoS”)。

一种这样的方法涉及:确定异构的多处理器SoC中的多个个体处理组 件中的每个处理组件的性能能力。性能能力可以包括最大处理频率以及由 每个处理组件表现出的静态电源电流。值得注意的是,本领域普通技术人 员会认识到:那些具有相对较高的最大处理频率的处理组件可能最适合于 在PCD处于高性能处理(“HPP”)模式时来处理工作负载,而表现出相对 较低的静态电源电流的那些处理组件可能最适合于在PCD处于功率节省 (“PS”)模式时来处理工作负载。

监测PCD中的一个或多个模式决策条件的指示符。基于识别出的模式 决策条件中的任意一个或多个模式决策条件的存在,确定与PCD的某些性 能目标相关联的操作模式。例如,电池充电器已经插入PCD从而提供基本 上无限的功率源的指示可以触发HPP操作模式,所述HPP操作模式具有以 最快可能的速度对工作负载进行处理的相关联的性能目标。类似地,电池 容量已经下降到低于预先确定的门限从而造成PCD可能断电的风险的指示 可以触发PS操作模式,所述PS操作模式具有以最低量的功率开销对工作 负载进行处理的相关联的性能目标。

基于操作模式和相关联的性能目标,可以基于每个处理组件的个体性 能能力在处理组件之间重新分配处理组件的活动工作负载。以这种方式, 对被最佳地安置为以满足操作模式的性能目标的方式来处理工作负载的那 些处理组件被区分优先次序用于工作负载的分配。

附图说明

在附图中,除非另有指示,否则相同的参考标号在各个图中指代相同 的部分。对于具有字母字符标示的参考标号,例如“102A”或“102B”,字 母字符标示可以区分同一附图中出现的两个相同的部分或元件。当参考标 号旨在涵盖所有附图中具有相同参考标号的所有部分时,可以省略参考标 号的字母字符标示。

图1是示出与便携式计算设备(“PCD”)的给定四核芯片组中的示例 性内核0、1、2和3相关联的处理能力和泄漏率的图表。

图2是示出可以指示PCD的操作模式的示例性条件或触发的图。

图3是示出用于异构的多核PCD中基于模式的工作负载重新分配的片 上系统的实施例的功能框图。

图4是用于实现用于基于模式的工作负载重新分配的方法和系统的无 线电话形式的PCD的示例性非限制方面的功能框图。

图5A是示出图4中示出的芯片的硬件的示例性空间布置的功能框图。

图5B是示出用于支持基于模式的工作负载重新分配的图4的PCD的 示例性软件架构的示意图。

图6是示出用于图4的PCD中的异构的处理组件之间的基于模式的工 作负载重新分配的方法的实施例的逻辑流程图。

图7是示出基于模式的工作负载重新分配子例程的实施例的逻辑流程 图。

具体实施方式

本文中使用的“示例性的”一词意指“用作示例、实例或说明”。在本 文中被描述为“示例性的”的任何方面不一定被解释为排他的、优选的或 者比其它方面更有优势的。

在本说明书中,术语“应用”还可以包括具有可执行内容的文件,诸 如:对象代码、脚本、字节代码、标记语言文件和补丁。此外,“应用”在 本文中还可以包括在性质上不可执行的文件,诸如需要被打开的文档或需 要被访问的其它数据文件。

如本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”、 “热能产生组件”、“处理组件”、“处理引擎”、“应用处理器”等旨在指代 计算机相关的实体,它们是硬件、固件、硬件和软件的组合、软件、或者 执行中的软件,并且表示用于提供功能并在本说明中描述的过程或过程流 中执行某些步骤的示例性模块。例如,组件可以是但不限于是运行在处理 器上的过程、处理器、对象、可执行程序,所执行的线程、程序、和/或计 算机。通过说明的方式,在计算设备上运行的应用和计算设备都可以是组 件。一个或多个组件可以位于过程和/或所执行的线程之内,并且组件可以 位于一台计算机上和/或分布在两台或更多台计算机之间。此外,这些组件 可以从具有各种数据结构存储在其上的各种计算机可读介质执行。组件可 以诸如根据具有一个或多个数据分组通过本地和/或远程过程进行通信(例 如,来自与本地系统、分布式系统和/或跨越例如互联网的网络中的另一个 组件进行交互、通过信号的方式与其他系统进行交互的一个组件的数据)。

在本说明书中,术语“中央处理单元(‘CPU’)”、“数字信号处理器’ (‘DSP’)”、“芯片”和“芯片组”是可位于PCD中的处理组件的非限制性 示例,并且除非另有指示否则可互换使用。此外,如同本文中所区分的, CPU、DSP或者芯片或芯片组可以包括通常在本文中被称为“内核”和“子 核”的一个或多个不同的处理组件。

在本说明书中,将理解的是:术语“热”和“热能”可以与能够产生 或消耗可以以“温度”为单位测量的能量的设备或组件关联使用。因此, 还将理解的是:术语“温度”,参考某个标准值,设想可以指示“热能”产 生设备或组件的相对温度或缺少热的任何测量。例如,当两个组件处于“热” 平衡时,两个组件的“温度”相同。

在本说明书中,术语“工作负载”、“处理负载”、“处理工作负载”和 “代码块”可互换使用,并通常指向处理负荷,或者处理负荷的百分比, 其与给定实施例中的给定处理组件相关联,或者分配给给定实施例中的给 定处理组件。相对于上文所定义的更进一步,“处理组件”可以是但不限于: 中央处理单元、图形处理单元、内核、主核、子核、处理区域、硬件引擎 等,或者位于便携式计算设备内的集成电路中或在其之外的任何组件。此 外,在某种程度上,术语“热负载”、“热分布”、“热信号”、“热处理负载” 等表示可以在处理组件上运行的工作负载负荷,本领域普通技术人员将认 识到:本公开内容中这些“热”术语的使用可与处理负载分布、工作负载 负荷和功耗有关。

在本说明书中,术语“热减轻技术”、“热策略”、“热管理”和“热减 轻措施”可以互换使用。

本领域普通技术人员将认识到:术语“DMIPS”表示每秒要处理给定 数量的几百万条指令的整数运算(Dhrystone)迭代的数量。在本说明书中, 术语被用作测量的一般单位来指示示例性实施例中处理器性能的相对水 平,并将不会被解释为暗示落入本公开内容的范围之内的任何给定的实施 例必须包括或必须不包括具有任何特定的整数运算等级的处理器。

在本说明书中,术语“分配”和“重新分配”通常可互换使用。术语 “分配”的使用不局限于初始分配,并且因此固有地包括重新分配。

在本说明书中,术语“便携式计算设备”(“PCD”)用于描述靠有限容 量电源(例如电池)来起作用的任何设备。虽然靠电池来起作用的PCD已 经使用了几十年,但可充电电池技术的进步加上第三代(“3G”)和第四代 (“4G”)无线技术的到来已经使得大量PCD具有多种能力。因此,除了别 的之外,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导 航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接 的膝上型计算机。

在本说明书中,术语“性能”通常用于指代一个处理组件与另一个处 理组件相比较的效率,并且因此可以根据其使用的上下文用各种单位来进 行量化。例如,当上下文是以内核可以处理给定工作负载的MHz为单位的 速度时,高容量内核可以表现出比低容量内核更好的性能。类似地,当上 下文是在处理给定的工作负载时与内核相关联的静态电源电流(“IDDq”), 即,以mA为单位的功耗时,低容量内核可以表现出比高容量内核要好的 性能。

对具有异构的处理组件的PCD中的用于QoS优化的处理性能进行管理 可以通过利用可用于工作负载分配的个体处理引擎的不同性能特性来实 现。关于可以包括在异构的处理组件中的各个处理引擎的不同性能特性, 本领域普通技术人员将认识到:性能差异可归因于任何数量的原因,这些 原因包括但不限于不同级别的硅,设计变化等。此外,本领域普通技术人 员将认识到:与给定处理组件相关联的性能特性可以根据该处理组件的操 作温度、向该处理组件提供的功率等而不同。

例如,考虑可以包括在性能容量上通常从低到高评级的多个不同处理 内核的示例性异构的多核处理器(值得注意的是,本领域普通技术人员将 认识到:也可以考虑可以包括多个不同处理组件(每个处理组件包含一个 或多个内核)的示例性异构多处理器片上系统(“SoC”))。本领域普通技术 人员将理解:异构的处理器中的低容量至中等容量处理内核将在给定工作 负载容量处表现出低功率泄漏率,并且因此与具有相对较高性能容量的处 理内核相比表现出较低速率的热能生成。与较低容量的内核相比,较高容 量的内核能够在较短量的时间内处理给定数量的DMIP。出于这些原因,本 领域普通技术人员将认识到:当PCD处于“高性能”模式时,会更期望高 容量内核用于工作负载分配,而当PCD处于“功率节省”模式时,会更期 望低容量内核(其具有较低的电流泄漏等级)用于工作负载分配。

认识到当PCD处于某些操作模式时,异构的处理器中的某些内核比其 它内核更适合于处理给定的工作负载,可以利用基于模式的工作负载重新 分配算法来向在给定模式的上下文中提供最佳性能的处理内核或一些内核 重新分配工作负载。例如,PCD中的某些条件可以指示PCD处于高性能模 式,在其中,性能是以处理速度为单位测量的。因此,通过认识到PCD处 于高性能模式,基于模式的工作负载重新分配算法可以指示工作负载由表 现出最高处理速度的异构的处理器中的那些某些内核来处理。相反,如果 PCD中的条件指示PCD处于功率节省模式,在其中,性能是以与电流泄漏 相关联的单位测得的,那么基于模式的工作负载重新分配算法可以指示工 作负载由表现出最低IDDq等级的异构的处理器中的那些某些内核来处理。

作为非限制性示例,特定的代码块可由示例性PCD中的中央处理单元 (“CPU”)或图形处理单元(“GPU”)中的任一个来处理。优选地,示例 性实施例可以基于与给定模式相关联的PCD中的条件的识别来选择处理组 件中的哪个处理组件将被分配处理代码块的任务,而不是预先确定特定代 码块将由CPU或GPU中的一个来处理。也就是说,基于PCD的操作模式, 向被装备得最好的用于高效地处理代码块的处理器分配工作负载。值得注 意的是,将理解:当PCD的操作模式变化时,用于随后的工作负载的重新 分配的随后的处理器选择可以实时或接近实时地进行。以这种方式,模态 分配管理器(“MAM”)模块可以利用与异构的处理器中的个体内核相关联 的性能特性,通过基于与PCD的操作模式相关联的性能优先级对处理内核 进行选择来优化QoS。

图1是示出与PCD的给定四核(quad)芯片组中的示例性内核0、1、 2和3相关联的处理能力和泄漏率的图表。值得注意的是,虽然相对于四核 芯片组在本文中描述了各个实施例的某些特征和方面,但本领域普通技术 人员将认识到:实施例可以应用于任何多核芯片。在示例性图示中,内核0 表示具有最高处理能力的内核(内核0最大频率),并且因此会是当PCD 处于“高性能”模式时最期望用于工作负载分配的内核。相反,内核3表 示具有最低电流泄漏等级的内核(内核3泄漏),并且因此会是当PCD处 于“功率节省”模式时最期望用于工作负载分配的内核。这些内核可以位 于能够处理给定代码块的任何处理引擎中,这些处理引擎包括但不限于 CPU、GPU、DSP、可编程阵列等。

可以从图1的图示看出,这些内核中的每个内核在处理速度和功耗方 面表现出独特的性能特性。内核0能够以相对高的处理速度(内核0最大 频率)来处理工作负载,然而其也具有相对高的IDDq(内核0泄漏)。内 核1能够以比内核2和内核3高的速度来处理工作负载,但其速度不像内 核0那么快。因此,内核1在处理速度方面是这些内核中第二高效的。内 核1的IDDq等级(内核1泄漏)也使其在泄漏率方面是这些内核中第二高 效的。内核2表现出相对较慢的处理速度(内核2最大频率)和相对较高 的IDDq等级(仅被内核1的IDDq等级超过)。并且内核3表现出这些内 核中最慢的处理速度,但有利的是,其也在所有的内核之中消耗最少量的 功率(内核3泄漏)。

优选地,最大处理频率中的内核到内核的变化以及静态泄漏率可由 MAM模块利用来选择当PCD处于给定操作模式时被最佳地安置为高效处 理给定代码块的处理组件。例如,当PCD处于功率节省模式时,MAM模 块可以首先向内核3,然后向内核1,接下来向内核2并最后向内核0分配 或重新分配工作负载,从而使得电流泄漏最小化。类似地,但PCD处于高 性能模式时,MAM模块可以根据需要首先向内核0,然后向内核1,接下 来向内核2并最后向内核3分配或重新分配工作负载,以便使工作负载被 处理的速度最大化。

本领域普通技术人员将认识到:上面概述的工作负载调度的各种场景 并不表示性能特性的比较分析可以有利于异构的多核处理器和/或异构的多 处理器SoC中的工作负载分配的场景的穷举数量。因此,将理解的是:可 以设想可操作为对异构的多核处理器或异构的多处理器SoC(视情况而定) 中的两个或更多个处理内核的性能特性进行比较,以确定工作负载分配或 重新分配的任何工作负载分配组件或模块。根据各个实施例的处理组件性 能特性的比较分析可用于基于根据操作模式可用的最高效处理组件的识 别,来在多个处理组件之间分配工作负载。

图2是示出可以指示PCD的操作模式的示例性条件或触发的图。基于 触发中一个或多个触发的识别,MAM模块可以确定操作模式,并且随后基 于与给定的操作模式相关联的性能目标向处理内核来分配或重新分配工作 负载。

例如,电池充电器向PCD的连接可以触发MAM模块将操作模式指定 为高性能处理(“HPP”)模式。因此,可以向具有最高处理频率的那些一个 或多个处理组件(例如图1的内核0)分配工作负载。作为另一个示例,识 别出PCD中的电池容量较低可以导致MAM模块将操作模式指定为功率节 省(“PS”)模式。因此,因为与功率节省模式相关联的性能目标包括节约 功率,所以可以离开高频率内核而向表现出更高效的功耗特性的较低频率 内核(例如,图1的内核3)重新分配工作负载。

值得注意的是,设想MAM模块的一些实施例可以识别多个模式决策 条件的出现。就识别出的条件指向不同操作模式来说,某些实施例可以对 这些条件排列优先级或以其它方式调和这些条件以便确定最佳操作模式。 例如,假设PCD的用户预先将模式设置为HPP模式,并且还插入在电池充 电器中,但同时热策略管理器(“TPM”)模块活跃地参与热减轻措施的应 用。在这样的场景中,MAM模块可以将正在进行的热减轻的优先级排列为 高于用户设置和充电器的可用性,从而确定操作模式应该是PS模式。

图2中示出的作为HPP模式的可能触发的其它示例性模式决策条件包 括:性能基准的检测、内核利用率大于某个门限(例如,>90%)、用户接 口响应时间大于某个门限(例如,>100msec(毫秒))、对接状态的识别、 以及具有高处理速度需求的用例(例如,游戏用例)。值得注意的是,图2 的图表中概述的HPP模式决策条件并不是作为可以用于将MAM模块指向 HPP模式的触发的穷举列表提供的,并且因此,本领域普通技术人员将认 识到:PCD中的其它触发或条件可以用于指示应该向具有高频率处理能力 的处理组件分配或重新分配工作负载。此外,本领域普通技术人员将认识 到:HPP模式决策条件可以与需要更多处理能力的场景相关联,以便优化 QoS和/或可用功率充足的场景。

图2中示出的作为PS模式的可能触发的其它示例性模式决策条件包 括:电池容量低于某个门限(例如,<10%剩余)的识别、向PS模式的用 户设置、一个或多个热减轻技术的应用、相对高的片上温度读数的检测、 低处理能力用例(例如,从待机模式苏醒、OS背景任务、工作负载要求低 于与最慢处理组件相关联的最大频率、所有内核正在以相对于低的频率运 行以便处理活动工作负载等等)。值得注意的是,图2的图表中概述的PS 模式决策条件并不是作为可以用于将MAM模块指向PS模式的触发的穷举 列表提供的,并且因此,本领域普通技术人员将认识到:PCD中的其它触 发或条件可用于指示应该向具有低功耗特性的处理组件分配或重新分配工 作负载。此外,本领域普通技术人员将认识到:PS模式决策条件可以与不 需要高处理能力的场景相关联,以便优化QoS和/或可用功率有限的场景。

图3是示出用于异构的多核PCD 100中基于模式的工作负载重新分配 的片上系统102的实施例的功能框图。如同上文中针对图1和图2的图示 解释的,处理组件222、224、226、228之间的工作负载重新分配可以基于 操作模式的确定。取决于给定操作模式的性能目标,模态分配管理器 (“MAM”)模块207可以导致工作负载将在各个处理组件222、224、226、 228之间重新分配,从而达到与给定操作模式相关联的性能目标。值得注意 的是,本领域普通技术人员将认识到:处理组件110被描绘为一组异构的 处理引擎222、224、226、228仅是出于说明的目的,并且可以表示具有多 个异构内核222、224、226、228的单个处理组件或多个异构的处理器222、 224、226、228,其中的每一个可以包括或者可以不包括多个内核和/或子核。 因此,本文中将处理引擎222、224、226和228称为“内核”将被理解为 在性质上是示例性的,并且将不限制本公开内容的范围。

片上系统可以监测温度传感器157,例如,这些温度传感器各自与具有 监测器模块114的内核22、224、226、228相关联,监测器模块114与热 策略管理器(“TPM”)模块101和模态分配管理器(“MAM”)模块207相 通信。如上所述,温度测量可以表示MAM模块207可以依据其做出模式 决定的条件。此外,虽然没有在图3的图示中明确地描绘出,但将理解的 是:监测器模块114还可以对可用作用于从一种操作模式切换到另一种操 作模式的触发的PCD中的其它组件或条件进行监测。

TPM模块101可以从监测器模块114接收温度测量,并使用该测量来 确定和应用热管理策略。由TPM模块101应用的热管理策略可以通过工作 负载从一个处理组件向另一个处理组件的重新分配、处理器时钟速度的衰 弱或变化等来管理热能产生。值得注意的是,通过热管理策略的应用,TPM 模块101可以以QoS为代价来降低或减少热能的过度产生。

在一些实施例中设想由TPM模块101指示的工作负载分配可以在本质 上“胜过”由MAM模块207驱动的工作负载重新分配。返回上面提供的 示例,假设PCD 100的用户预先将模式设置为HPP模式,并且还插入在电 池充电器中,但同时TPM模块101活跃地参与热减轻措施的应用。在这样 的场景中,MAM模块207可以将正在进行的热减轻的优先级排列为高于用 户设置和充电器的可用性,从而确定操作模式应该是PS模式而不是与触发 相关联的HPP模式。或者,在相同的示例性场景下,MAM模块207的其 它实施例可以不考虑模式决策条件而简单地推迟向TPM模块101的工作负 载分配。

随着模式决策条件变化或变得明显,监测器模块114识别出这些条件 并发送向MAM模块207指示这些条件的数据。各个模式决策条件中的一 个或多个条件的出现可以触发MAM模块207参考内核特性(“CC”)数据 存储24来查询内核222、224、226、228中的一个或多个内核的性能特性。 随后,MAM模块207可以选择在查询的时刻被装备得最好的用于根据与识 别出的模式决策条件相关联的操作模式的性能目标来高效处理给定代码块 的内核222、224、226、228。例如,如果PS模式的性能目标是使电流泄漏 最小化,那么MAM模块207将向所查询的具有最高效IDDq等级的特定内 核222、224、226、228分配代码块。类似地,如果HPP模式的性能目标是 以可能的最快速度处理工作负载,那么MAM模块207将向所查询的具有 最高处理频率的特定可用内核222、224、226、228分配代码块。值得注意 的是,针对需要一个以上处理组件的代码块,设想实施例将向最能够满足 特定操作模式的性能目标的可用处理器的组合分配工作负载。

返回图3的图示,可以根据本领域的普通技术人员所理解的基准测试 和平台表征,在内核222、224、226、228中的每个内核上凭经验收集CC 数据存储24的内容。本质上,性能特性包括:可以针对处理组件222、224、 226、228中的每个处理组件“在工厂”测得并存储在CC数据存储24中的 最大操作频率和IDDq泄漏率。根据该数据,MAM模块207可以确定内核 222、224、226、228中的哪个内核是被装备得最好的用于根据给定操作模 式的性能目标来处理给定的工作负载。本领域普通技术人员将理解的是: CC数据存储24可以以硬件和/或软件形式存在,这取决于特定实施例。此 外,本领域普通技术人员将理解的是:硬件中的CC数据存储24可以融合 在硅内部,而软件形式的CC数据存储24可以存储在固件中。

图4是用于实现用于基于模式的工作负载重新分配的方法和系统的无 线电话形式的PCD 100的示例性非限制方面的功能框图。如图所示,PCD 100包括:包括耦合在一起的异构的多核中央处理单元(“CPU”)110和模 拟信号处理器126的片上系统102。本领域普通技术人员将理解:CPU 110 可以包括第零内核222、第一内核224、以及第N内核230。此外,本领域 普通技术人员将理解:还可以使用数字信号处理器(“DSP”)而不使用CPU 110。此外,如同在异构的多核处理器领域中所理解的:内核222、224、230 中的每个内核可以用不同的最大电压频率来处理工作负载并表现出不同的 IDDq泄漏率。

总的来说,TPM模块101可以负责监测和应用包括一种或多种热减轻 技术的热策略。热减轻技术的应用可以帮助PCD 100来管理热条件和/或热 负载,并在保持高水平功能的同时避免经历不利的热条件(诸如,例如, 达到临界温度)。模态分配管理器(“MAM”)模块207可以接收与TPM模 块101相同或相似的温度数据,以及其它条件指示符,并利用该数据来限 定操作模式。基于操作模式,MAM模块207可以根据与各个内核222、224、 230相关联的性能特性来分配或重新分配工作负载。以这种方式,MAM模 块207可以使得工作负载将由那些最能以满足与给定操作模式相关联的性 能目标的方式处理工作负载的一个或多个内核来处理。

图4还示出了PCD 100可以包括监测器模块114。监测器模块114与分 布在整个片上系统102上的多个操作传感器(例如,热传感器157)和组件 通信,并且与PCD 100的CPU 110以及与TPM模块101和/或MAM模块 207通信。值得注意的是,监测器模块114还可以与片外组件通信和/或监 测片外组件,片外组件诸如但不限于电源188、触摸屏132、RF开关170 等。MAM模块207可以与监测器模块114一起工作以便识别可以触发操作 模式切换并影响工作负载分配和/或重新分配的模式决策条件。

如图4中所示,显示控制器128和触摸屏控制器130耦合到CPU 110。 在片上系统102外部的触摸屏显示器132耦合到显示控制器128和触摸屏 控制器130。

PCD 100还可以包括:视频解码器134,例如,相位交替行(“PAL”) 解码器、顺序存储彩电制式(sequential couleur avec memoire,“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还示出了电源188(例如,电池)经由功率管理集成 电路(“PMIC”)180耦合到片上系统102。在特定方面中,电源188包括 可再充电的DC电池或DC电源,其是从去往连接到交流电流(“AC”)电 源的DC变压器的AC得到的。

CPU 110还可以耦合到一个或多个内部的片上热传感器157A和157B 以及一个或多个外部的片外热传感器157C。片上热传感器157A、157B可 以包括一个或多个与绝对温度成比例(“PTAT”)的温度传感器,其基于垂 直PNP结构,并通常专用于互补金属氧化物半导体(“CMOS”)超大规模 集成(“VLSI”)电路。片外热传感器157C可以包括一个或多个热敏电阻。 热传感器157可以产生压降,使用模数转换(“ADC”)控制器103(见图 5A)将该压降转换成数字信号。然而,可以在不脱离本发明的范围的前提 下使用其它类型的热传感器157。

热传感器157除了受控于ADC控制器103并由ADC控制器103监测 之外,还可以受控于一个或多个TPM模块101、监测器模块114和/或MAM 模块207并由它们监测。TPM模块101、监测器模块114和/或MAM模块 207可以包括由CPU 110执行的软件。然而,在不脱离本发明的范围的前 提下,TPM模块101、监测器模块114和/或MAM模块207还可以由硬件 和/或固件形成。TPM模块101可以负责监测和应用热策略,热策略包括可 以在保持高水平功能的同时帮助PCD 100避免临界温度的一种或多种热减 轻技术。MAM模块207可以负责查询处理器性能特性,并基于操作模式的 识别来向最能够高效处理代码的处理器分配代码块。

返回图4,触摸屏显示器132、视频端口138、USB端口142、摄像头 148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天 线164、立体声耳机166、RF开关170、RF天线172、键区174、单声道耳 机176、振动器178、热传感器157C、PMIC 180和电源188在片上系统102 外部。然而,应该理解的是:监测器模块114还可以通过模拟信号处理器 126和CPU 110协助对PCD 100上可操作的资源的实时管理的方式,从这 些外部设备中的一个或多个设备接收一个或多个指示或信号。

在特定方面中,本文中描述的方法步骤中的一个或多个方法步骤可以 由形成一个或多个TPM模块101以及和/或MAM模块207的、存储在存储 器112中的可执行指令和参数来实现。除了用于执行本文中描述的方法的 ADC控制器103之外,形成TPM模块101以及和/或MAM模块207的这 些指令可以由CPU 110、模拟信号处理器126、GPU 182或其它处理器来执 行。此外,处理器110、126、存储器112、存储在其中的指令、或者它们 的组合可以用作用于执行本文中描述的方法步骤中的一个或多个方法步骤 的单元。

图5A是示出图4中示出的芯片102的硬件的示例性空间布置的功能框 图。根据该示例性实施例,应用CPU 110位于芯片102的最左侧区域,而 调制解调器CPU 168、126位于芯片102的最右侧区域。应用CPU 110可以 包括:包括第零内核222、第一内核224和第N内核230的异构的多核处 理器。应用CPU 110可以在执行TPM模块101A和/或MAM模块207A(当 以软件实现时),或者其可以包括TPM模块101A和/或MAM模块207A(当 以硬件实现时)。应用CPU 110还被示为包括操作系统(“O/S”)模块208 和监测器模块114。

应用CPU 110可以耦合到一个或多个锁相环(“PLL”)209A、209B, 这些锁相环可以与应用CPU 110相邻,并在芯片102的左侧区域。与PLL 209A、209B相邻并且在应用CPU 110的下方可以包括模拟-数字(“ADC”) 控制器103,其可以包括其自己的热策略管理器101B和/或结合应用CPU 110的主模块101A、207A工作的MAM模块207B。

ADC控制器103的热策略管理器101B可以负责监测和跟踪可以在“片 上”102和“片外”102提供的多个热传感器157。片上或内部热传感器157A 可以置于不同的位置。

作为非限制性示例,第一内部热传感器157A1可以置于芯片102的顶 部中心区域,在应用CPU 110与调制解调器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相邻。

一个或多个外部热传感器157C还可以耦合到ADC控制器103。第一 外部热传感器157C1可以置于片外,并与可以包括调制解调器CPU 168、 126、ARM 177和DAC 173的芯片102的右上象限相邻。第二外部热传感 器157C2可以置于片外,并与可以包括第三和第四图形处理器135C、135D 的芯片102的右下象限相邻。

本领域普通技术人员将认识到:可以在不脱离本发明的范围的前提下 提供图5A中示出的硬件的各种其它空间布置。图5A示出了一种示例性空 间布置以及主TPM和MAM模块101A、207A和具有其TPM和MAM模 块101B、207B的ADC控制器103可以怎样识别作为图5A中示出的示例 性空间布置的函数的热条件,确定操作模式并分配工作负载,以便管理热 条件和/或满足与给定操作模式相关联的性能目标。

图5B是示出用于支持基于模式的工作负载重新分配的图4和图5A的 PCD 100的示例性软件架构200的示意图。任何数量的算法可以形成在识 别出PCD 100中的某些模式决策条件时可由MAM模块207应用的基于模 式的工作负载重新分配方法或作为该方法的一部分。

如图5B中所示,CPU或数字信号处理器110经由总线211耦合到存储 器112。如上所述,CPU 110是具有N核处理器的多核、异构的处理器。也 就是说,CPU 110包括第一内核222、第二内核224和第N内核230。如同 本领域普通技术人员已知的,第一内核222、第二内核224和第N内核230 中的每个内核可用于支持专用应用或程序,并且作为异构内核的一部分可 以表现出不同的最大处理频率和不同的IDDq电流泄漏水平。或者,可以在 可用异构内核中的两个或更多个内核之间分配用于进行处理的一个或多个 应用或程序。

CPU 110可以从可包括软件和/或硬件的TPM模块101和/或MAM模 块207接收命令。如果体现为软件,TPM模块101和/或MAM模块207包 括由向由CPU 110执行的指令,CPU 110向由CPU 110和其它处理器执行 的其它应用程序发布命令。

CPU 110的第一内核222、第二内核224至第N内核230可以集成在 单个集成电路裸片(die)上,或者它们可以集成或耦合在多个电路封装中 的单独的裸片上。设计者可以经由一个或多个共享高速缓冲存储器来耦合 第一内核222、第二内核224至第N内核230,并且它们可以经由诸如总线、 环、网(mesh)和交叉开关(crossbar)拓扑结构的网络拓扑结构来实现消 息或指令传送。

如本领域中已知的:总线211可以包括经由一个或多个有线或无线连 接的多个通信路径。总线211可以具有能够用来进行通信的额外的单元(为 了简单起见而省略了),诸如控制器、缓冲器(高速缓冲存储器)、驱动器、 转发器和接收机。此外,总线211可以包括能够在上述组件之间进行合适 的通信的地址、控制和/或数据连接。

当由PCD 100使用的逻辑单元在软件中实现时(如图5B中所示),应 该指出的是:启动逻辑单元250、管理逻辑单元260、模态工作负载分配接 口逻辑单元270、应用存储280中的应用以及文件系统290的一些部分中的 一个或多个可以存储在任何计算机可读介质上,用于由任何计算机相关的 系统或方法使用或者与之结合。

在本文档的上下文中,计算机可读介质是可以包含或存储由计算机相 关的系统或方法使用或者与之结合的计算机程序和数据的电子的、磁的、 光的或其它物理设备或单元。各种逻辑元件和数据存储可以体现在任何计 算机可读介质中,用于由指令执行系统、装置或设备(诸如基于计算机的 系统、处理器包含的系统,或可以从指令执行系统、装置或设备取回指令 并执行这些指令的其它系统)使用或与之结合。在本文档的上下文中,“计 算机可读介质”可以是可以存储、传送、传播或传输用于由指令执行系统、 装置或设备使用或与之结合的程序的任何单元。

计算机可读存储介质可以是,例如但不限于:电子的、磁的、光的、 电磁的、红外的或半导体系统、装置、设备,或传播介质。计算机可读介 质的更具体的示例(非穷举列表)将包括下列各项:具有一条或多条线的 电连接(电子的)、便携式计算机磁盘(磁的)、随机存取存储器(RAM) (电子的)、只读存储器(ROM)(电子的)、可擦除可编程只读存储器 (EPROM、EEPROM或闪存)(电子的)、光纤(光的)以及便携式压缩盘 只读存储器(CDROM)(光的)。注意:计算机可读介质甚至可以是纸或在 其上对程序进行印刷的另一种合适的介质,因为程序可以通过电的方式捕 捉(例如,经由对纸或其它介质的光学扫描),然后进行编译、解释或者如 果必要的话用合适的方法以其它方式处理,并且然后存储在计算机存储器 中。

在启动逻辑单元250、管理逻辑单元260以及可能模态工作负载分配接 口逻辑单元270实现为硬件的替换实施例中,各个逻辑单元可以用下列技 术(每项技术都是本领域公知的)中的任何技术或它们的组合来实现:具 有用于对数据信号实现逻辑功能的逻辑门的分立逻辑电路、其具有合适的 组合逻辑门的专用集成电路(ASIC)、可编程门阵列(PGA)、现场可编程 门阵列(FPGA)等。

存储器112是诸如闪存器或固态存储器设备的非易失性数据存储设备。 虽然被描绘为单个设备,但存储器112可以是耦合到数字信号处理器110 (或额外的处理器内核)的具有单独数据存储的分布式存储器设备。

启动逻辑单元250包括用于基于操作模式来选择性识别、加载和执行 用于确定操作模式和选择可用于工作负载分配的内核(诸如第一内核222、 第二内核224至第N内核230)中的一个或多个内核的选择程序的一个或 多个可执行指令。管理逻辑单元260包括用于终止基于模式的工作负载分 配程序以及选择性地识别、加载和执行更合适的替代程序的一个或多个可 执行指令。管理逻辑单元260被安排为在运行时或者在PCD 100加电并由 设备操作者使用时执行这些功能。可以在嵌入式文件系统290的程序存储 296中找到替代程序。

当替代程序由数字信号处理器中的内核处理器中的一个或多个内核处 理器执行时,其可以根据由TPM模块101、MAM模块207和监测器模块 114提供的一个或多个信号来操作。在这一方面,模块114可以响应于源自 TPM 101或MAM模块207的控制信号来提供事件、过程、应用、资源状 态条件、流逝时间、温度等的一个或多个指示符。

接口逻辑单元270包括用于呈现、管理外部输入以及与外部输入进行 交互,以便对存储在嵌入式文件系统290中的信息进行观察、配置或以其 它方式更新的一个或多个可执行指令。在一个实施例中,接口逻辑单元270 可以结合经由USB端口142接收的制造商输入来进行操作。这些输入可以 包括将要从程序存储296删除或向程序存储296添加的一个或多个程序。 或者,这些输入可以包括对程序存储296中的程序中的一个或多个程序的 编辑或改变。此外,这些输入可以标识对启动逻辑单元250和管理逻辑单 元260中的一个或二者的一个或多个改变,或者对其的整体替换。通过举 例的方式,输入可以包括对管理逻辑单元260的改变,所述管理逻辑单元 260在视频编解码器134活动时指示MAM模块207将操作模式识别为HPP 模式。

接口逻辑单元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)的性能特性在框605处 表征并存储在CC数据存储24中。值得注意的是,如上所述,多核、异构 SoC中的各个处理组件的个体性能特性是独特的。也就是说,某些处理组 件可以表现出比相同SoC中的其它处理组件要高的处理频率。此外,某些 其它处理组件可以表现出比其它处理组件要低的功率泄漏率。优选地,运 行并实现基于模式的重新分配算法的MAM模块207可以利用异构的处理 组件的性能特性的固有差异来向被装备得最好的用于处理与操作目标(诸 如功率节省或高处理速度)一致的工作负载的特定处理组件分配或重新分 配工作负载。

一旦确定了各个处理内核222、224、226、228的性能特性,在框610 处可以对这些内核评级,并针对它们各自的性能强度来对其进行识别。例 如,再次参考图1和图3,可以将内核226识别为具有最快处理频率的内核 (例如图1的内核0)。类似地,可以将内核222识别为具有最低泄漏率的 内核(例如图1的内核3)。以这种方式,可以根据性能特性对这些内核中 的每个内核相对于其对等体来进行评级。

在框615处,MAM模块207结合监测器模块114来跟踪异构内核222、 224、226、228之间的活动工作负载分配。在框620处,监测器模块114对 各个模式决策条件(诸如但不限于图2中概述的条件)进行轮询。基于在 框620处对模式决策条件的轮询,识别出的条件由监测器模块114和/或 MAM模块207基于优先级来进行调和。随后,在决策框630处,利用经调 和的模式决策条件来确定PCD 110的操作模式。操作模式继而可以触发 MAM模块207来在子例程635处在异构内核222、224、226、228之间重 新分配工作负载。如上所述,MAM模块207对工作负载的重新分配是基于 在框605和610处确定的性能特性的评级的。在工作负载重新分配之后, 该过程返回框615,并且活动工作负载受到监测直到活动工作负载的变化或 操作模式的变化使随后的重新分配成为必需。

转到图7,基于模式的工作负载重新分配子例程635在决策框630之后 开始。如果决策框630确定PCD 110处于高性能处理模式,那么接下来进 行“HPP”分支。然而,如果决策框630确定PCD 110处于功率节省模式, 那么接下来进行“PS”分支。

跟随着在决策框630之后的HPP分支,子例程635移动到框640。在 框640处,识别出在框605和610处确定的表现出最高处理频率能力的内 核。例如,暂时地参考回图1的图示,这些内核根据最高处理频率性能的 评级顺序将是内核0和内核1,随后是内核2,然后是内核3。接下来,在 框645处,按照来自MAM模块207的指示对处理内核222、224、226、228 上的活动工作负载进行重新分配,从而使得向具有最高最大处理频率的内 核分配工作负载任务。该过程返回图6的框615。

跟随着在决策框630之后的PS分支,子例程635移动到框650。在框 650处,识别出在框605和610处确定的表现出最低功率泄漏特性的内核。 例如,暂时地参考回图1的图示,这些内核根据最低功率泄漏性能的评级 顺序将是内核3和内核1,随后是内核2,然后是内核0。接下来,在框655 处,按照来自MAM模块207的指示对处理内核222、224、226、228上的 活动工作负载进行重新分配,从而使得向具有最低功率泄漏的内核分配工 作负载任务。该过程返回图6的框615。

为了本发明如所述那样运作,本说明中描述的过程或过程流中的某些 步骤自然地先于其它步骤。然而,本发明并不局限于所描述的步骤的次序, 如果这种次序或顺序并不改变本发明的功能的话。也就是说,应该认识到: 在不脱离本发明的范围和精神的前提下,一些步骤可以在其它步骤之前、 之后或与其它步骤并行(基本上同时)执行。在某些情况下,可以在不脱 离本发明的情况下省略或不执行某些步骤。此外,诸如“此后”、“然后”、 “接下来”等等的词并不旨在限制这些步骤的次序。这些词语只是用于通 过示例性方法的描述来引导读者。

另外,编程领域的普通技术人员能够写计算机代码或识别合适的硬件 和/或电路,以便例如基于本说明中的流程图和相关联的描述没有困难地实 现所公开的发明。因此,特定集合的程序代码指令或详细硬件设备的公开 不应该被认为是要充分理解怎样实现和使用本发明所必要的。在上文的描 述中并且结合可以示出各个处理流的附图更详细地解释了所要求保护的计 算机实现的过程的创造性功能。

在一个或多个示例性方面中,本文中所描述的功能可以用硬件、软件、 固件或它们的任意组合来实现。如果用软件实现,则功能可以存储在计算 机可读介质上或者作为计算机可读介质上的一个或多个指令或代码发送。 计算机可读介质包括计算机存储介质和通信介质二者,通信介质包括有助 于将计算机程序从一个地点传输到另一个地点的任意介质。存储介质可以 是可以由计算机访问的任何可用介质。通过举例而非限制的方式,这种计 算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存 储、磁盘存储或其它磁存储设备、或者可以用于携带或存储具有指令或数 据结构形式的所期望的程序代码并可以由计算机访问的任何其它介质。

此外,任何连接可以被适当地称为计算机可读介质。例如,如果使用 同轴电缆、光纤光缆、双绞线、数字用户线(“DSL”)、或者诸如红外线、 无线电和微波的无线技术,从网站、服务器、或其它远程源发送软件,那 么同轴电缆、光纤光缆、双绞线、DSL、或者诸如红外线、无线电和微波的 无线技术包含在介质的定义中。

如本文中所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(“CD”)、 激光光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光光盘,其中磁盘 通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述各项的组 合也应该包括在计算机可读介质的范围之内。

因此,虽然已经示出并详细描述了所选择的方面,但将理解的是:如 同所附权利要求所限定的,可以在不脱离本发明的精神和范围的前提下进 行各种替换和改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号