用于每瓦特最优性能的智能多核控制的制作方法
【专利说明】用于每瓦特最优性能的智能多核控制
[0001] 相关申请
[0002] 本申请要求享有于2013年8月8日提交的、题目为"Intel 1 igent Mul ticore Control For Optimal Performance Per Watt"的美国临时专利申请No.61/863,554的优 先权,该申请的全部内容故W引用方式并入本文。
【背景技术】
[0003] 当前,制造商们通过抑制多处理器内核的处理时钟频率来管理多核设备中的功耗 和发热问题。对多核设备的多处理器内核的处理时钟频率进行抑制可W通过降低由多核处 理器完成的工作的速率来帮助管理功耗和发热问题。然而,运种技术关注于W性能为代价 来管理运些问题。
[0004] 移动设备正越来越多地纳入多核处理器来处理在该移动设备上同时运行的系统 和应用软件的需求。由于具有受限制的功率预算,移动设备在达到更高的性能水平或在处 理更大的软件处理需求的同时维持性能水平方面受到限制,其中,移动设备消耗的功率越 多,该受限制的功率预算耗尽的越快。然而,软件处理需求正日益增长,用户期望在处理速 度和电池寿命方面,在它们的移动设备上维持特定的性能水平。在移动设备上维持用户所 期望的性能水平造成了运样一个两难问题:在管理多核处理器的发热问题时,是牺牲性能 换取寿命,还是牺牲寿命换取性能。
【发明内容】
[0005] 提供了用于多核集成电路的多个处理器内核的控制的各个方面的方法和装置,包 括:将所述多个处理器内核的溫度读数与溫度口限进行比较;基于处理器内核信息和多种 假定情况来计算针对所述多个处理器内核的映射;当所述溫度读数小于所述溫度口限时, 识别处理器内核的第一配置W优化针对给定工作负载的功耗;当所述溫度读数大于所述溫 度口限时,识别处理器内核的第二配置W优化针对给定功率预算的性能;W及基于所识别 的配置来控制所述多个处理器内核中的每一个处理器内核的活动状态。在示例性方法中, 基于所述处理器内核信息和所述多种假定情况来计算针对所述多个处理器内核的所述映 射可W包括:当所述溫度读数小于所述溫度口限时,计算功率映射,所述功率映射指示针对 所述给定工作负载的给定代表值的所述多个处理器内核的组合的功耗和溫度之间的关系; W及当所述溫度读数大于所述溫度口限时,计算性能映射,所述性能映射指示针对给定溫 度的所述多个处理器内核的组合的功耗和工作负载之间的关系。
[0006] 在示例性方法中,处理器内核的所述第一配置和所述第二配置可W指示活动处理 器内核的数量。在示例性方法中,处理器内核的所述第一配置和所述第二配置可W指示所 述多个处理器内核中的哪些处理器内核是活动处理器内核。在示例性方法中,处理器内核 的所述第一配置和所述第二配置可W包括:针对给定频率,具有最低泄漏量、最低溫度或最 低电压电平的所述处理器内核。
[0007] 示例性方法还可W包括:读取与每一个处理器内核相关联的所述处理器内核信 息,其中,所述处理器内核信息包括:泄漏电流、处理器内核速度、处理器电压设置表、最大 时钟频率、溫度读数和当前工作负载;W及将所述当前工作负载转换为所述当前工作负载 的代表值。在示例性方法中,所述处理器内核信息可W包括动态信息,所述动态信息包括所 述溫度读数和所述当前工作负载;并且所述示例性方法还可W包括重复地读取所述动态信 息
[0008] 在示例性方法中,所述多核集成电路的所述处理器内核可W包括从包括中央处理 单元、图形处理单元的着色器处理器、所述图形处理单元的纹理管道(texture pipe)或数 字信号处理器的群组中选择的一种或多种处理器内核类型。
[0009] -个方面包括一种装置,所述装置包括具有多个处理器内核的多核集成电路,其 中,所述多核集成电路被配置为具有处理器可执行指令W执行上文所描述的一种或多种示 例性方法的操作。
[0010] -个方面包括一种用于多核集成电路的多个处理器内核的多核控制的装置,其包 括用于执行上文所描述的一种或多种示例性方法的功能的单元。
[0011] 一个方面包括一种非暂时性处理器可读介质,具有存储于其上的处理器可执行软 件指令,所述处理器可执行软件指令被配置为使得多核集成电路执行上文所描述的一种或 多种示例性方法的操作。
【附图说明】
[0012] 被并入本文并且构成本说明书的一部分的附图示出了本发明的示例性方面,并且 与上文给出的总体描述和下文给出的【具体实施方式】一起用于解释本发明的特征。
[0013] 图IA是示出了在多个显示器上由示例性多核设备呈现的多个视频表示的图。
[0014] 图IB是示出了在多核设备的显示器上由示例性多核设备呈现的多个视频表示的 图。
[0015] 图2A是示出了针对在示例性多核设备上由标准元件处理的恒定工作负载的功耗 和热输出方面的变化的图。
[0016] 图2B是示出了针对在示例性多核设备上由慢速元件处理的恒定工作负载的功耗 和热输出方面的变化的图。
[0017] 图3是示出了多核设备上的示例性智能多核控制的方框图。
[0018] 图4是用于多核设备的智能多核控制的示例性功率映射的一系列图。
[0019] 图5A是用于多核设备的智能多核控制的示例性性能映射的图。
[0020] 图5B是用于多核设备的智能多核控制的示例性性能映射的图。
[0021 ]图6是示出了用于多核设备的示例性智能多核控制方法的过程流程图。
[0022] 图7是示出了用于智能多核控制的多核图形集成电路的例子的部件方框图。
[0023] 图8是示出了适用于示例性智能多核控制方法的示例性多核设备的部件图。
【具体实施方式】
[0024] 将参照附图详细描述各个方面。只要可能,将贯穿附图使用相同的附图标记来指 代相同或类似部分。对特定例子和实施方式进行的引用是出于说明性的目的,而不是要限 制本发明或权利要求书的保护范围。
[0025] 如本文所使用的,术语"计算设备"指的是W下各项中的任何一项或全部:智能电 话、膝上型计算机、个人计算机、服务器、平板型计算机、掌上型计算机、W及单独地包括可 编程处理器和存储器W及用于将信号发送给集成电路(IC)的电路的类似电子设备。
[0026] 如本文所使用的,术语"多核设备"指的是具有具备多个处理器内核的IC/片上系 统(SoC)/处理器的任何计算设备。本文中的示例性多核设备被描述为具有多核1C。W多核 IC来描述多核设备意味着是示例性的而绝不是限制性的。对多核IC的描述可W是与多核 SoC和多核处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、物 理处理单元(PPU)、数字信号处理器(DSP)、多处理器W及其它可编程逻辑器件)可互换的。
[0027] 如本文所使用的,术语"娃泄漏"、"泄漏"、"IDDQ" W及"泄漏电流"可W被互换地使 用,并且指的是当设备被关断时流过半导体的绝缘区域或半导体的导电区域的电流。随着 溫度的不断上升,泄漏电流呈指数型增长。
[0028] 由多核设备的多核IC所增加的功耗常常会导致多核IC的热福射的增加或溫度的 增加,W及电池寿命的减少。当多核IC的溫度上升时,其可能会导致过度发热并且当达到临 界溫度时通过关断处理器来降低多核设备的性能,降低用户体验。增加的功耗可能会极大 地减少具有受限制的功率预算的多核设备的电池寿命,也会降低用户体验。当前,多核设备 中的发热和功率管理可能设及抑制或降低处理器内核的处理器时钟频率。较慢的处理器时 钟会造成较少的热量输出并且会使用较少的功率,但是也会降低处理器的工作负载的吞吐 量。
[0029] 各个方面的方法和设备提供了通过控制用于执行过程任务的多核设备中的多核 IC内的处理器内核的数量W及控制使用其中的哪些处理器内核来执行过程任务W便达到 所消耗的功率中的每瓦的最优性能来管理多核设备中的发热和功率问题的替代方式。由于 泄漏和动态功率的趋势,针对相同的工作负载的功耗随着运行该工作负载的活动处理器内 核的数量而变化。在各个方面中,可W基于各种因素(例如,溫度、速度、泄漏量、元件类型W 及总工作负载)来确定用于每瓦特最佳性能的活动内核的最优数量。
[0030] 对于具有受限制的功率预算的多核设备来说,多核设备上的并发多媒体过程需要 相当大的功率分布(profile)。运样的多媒体过程的例子包括对一个或多个设备上的一个 或多个输出进行图形、物理学、视频、图像、音频W及通信处理。图IA和图IB示出了运行并发 多媒体过程的示例性多核设备1〇(例如,智能电话)。在图IA中,多核设备10可W通过无线 (或有线)连接14而连接到显示设备12。多核设备10可W发送用于显示多媒体过程输出16的 数据。例如,多核设备10可W发送可用于W每秒60帖(fps)、1080p的分辨率来显示视频游戏 图形的数据。显示设备12可W使用经由无线连接14从多核设备10接收到的数据来呈现该多 媒体过程输出。在运个例子中,显示设备12可W是任何计算设备、连接的电视机或监视器、 或另一多核设备。同时,多核设备10可W呈现不同的多媒体过程输出18。例如,多核设备10 可W呈现不同的游戏场景、通信界面、游戏控制器、或游戏、应用或移动设备用户界面,其可 W具有与在显示设备12上呈现的多媒体过程输出相比不同的复杂度。多核设备10和显示设 备12二者都可W显示例
如用户的对手和/或多核设备10的用户的一个或多个进一步的图像 或视频。
[0031] 图IB中示出的例子示出了多核设备10可W能够并发地呈现多个多媒体过程输出。 在运个例子中,多核设备10可W在其显示器20上并发地呈现多媒体过程输出16和一个或多 个不同的多媒体过程输出18。多媒体过程输出16可W包括例如具有60fps、1080p分辨率的 视频游戏图形,并且该一个或多个不同的多媒体过程输出18可W包括例如具有30fps、 108化分辨率的用户的对手和/或用户的视频。显示器20可W通过多种已知的显示技术来实 现,并且支持一系列的分辨率和刷新率。在图IA和图IB二者中示出的例子中,多核设备10和 显示设备12可W呈现其它的多媒体过程输出,例如,视频游戏的音频部分和/或用户与其对 手之间的通信。多核设备10还可W提供触觉反馈,例如与该呈现相关的振动。用于处理所有 多媒体过程并且呈现运些例子中所设及到的输出的多核设备10的工作负载可能会导致多 核IC的热量输出和功耗的显著增加。
[0032] 图2A和图2B中的图示出了针对在各个溫度水平处由多核设备上的标准元件和慢 速元件所处理的恒定工作负载的功耗的变化。工作负载的量可W被测量并且被指示为 MIPS,其代表百万条指令每秒。在大规模生产运营中,由于多核IC的组成材料中的内在的、 固有的差异,每一个多核IC可能具有略微不同的物理和性能特性,运可能带来一批中的每 一个多核IC的处理速度和热性能的差异。性能的差异可能会导致多核IC被分类为快速多核 1C、标准/额定多核1C、或慢速多核1C。性能的差异还可能是由于多核IC中的内核与内核之 间的不同、处理器和/或内核被构造成具有不同的容量和/或用于不同的目的W及工作负载 的分布而导致的。即使在内核具有相同的电路设计的情况下,出于若干原因(例如,娃的制 造范围、根据工作负载的不同而发生的动态溫度变化、由于内核的位置而导致的散热不同、 W及来自娃管忍平面布置图上的附近的其它功能块的热传导),相同娃管忍上的内核的特 性也可能会发生变化。多核IC所达到的性能还取决于晶体管结点的溫度。图2A和图2B中的 图分别表示具有两个、=个和四个活动处理器内核的标准和慢速多核IC的情况。描绘标准 多核IC的性能的图200示出了当=个活动处理器内核的溫度在大约25摄氏度和90摄氏度之 间时,示例性多核IC如何可W最优地运行(例如,使用最少的功率),W利用运=个活动处理 器内核来执行恒定的工作负载(线204)。当高于大约90摄氏度时,相同的多核IC可W最优地 运行W利用两个活动处理器内核来执行恒定的工作负载(线206)。在运个例子中,对于该示 例性多核IC来说,在所示溫度范围内,激活第四个处理器内核来处理相同量的工作负载(线 208)可能不是最优的。对于示例性慢速多核IC来说,在相同的溫度范围内,图202示出了利 用=个活动处理器内核来处理恒定的工作负载(线210)可能是最优的,而不是利用两个活 动处理器内核(线212)或四个活动处理器内核(线214)。针对最低功耗的活动内核的最优数 量可W随着溫度、IC速度W及工作负载的量(所需要的MIPS或MHz)而变化。
[0033] 图3示出了用于控制多核IC中应当被激活的多个处理器内核的数量W及其中具体 的那几个处理器内核的示例性智能多核控制。运个例子中的多核IC 300包括四个处理器内 核302,其被标记为内核0、内核1、内核2和内核3。在任何多核IC 300中的处理器内核302的 数量可W变化,并且可W多于或少于图3中所描绘的四个处理器内核。每一个处理器内核 302可W与可从处理器内核302访问的或可从单独的处理器(未示出)或存储器(未示出)访 问的各种处理器内核(或娃)信息304相关联。处理器内核信息304可W包括I孤Q测试结果或 泄漏电流、元件类型或处理器内核(或娃)速度(例如,慢速、标准/额定、或快速)、处理器电 压换算(processor vo:Uage scaling,PVS)表、最大时钟频率(Fmax)、溫度读数W及当前工 作负载。
[0034] 为了确定需要激活的处理器内核302的最优数量W及激活其中的哪些,工作负载 分析器306可W收集具有针对每一个处理器内核302的处理器内核信息304的信号316。工作 负载分析器306可W与可用于存储来自处理器内核302的某些静态信息的存储器(未示出) 相关联。处理器内核302的静态信息可W是为常数的处理器内核信息304,例如,泄漏量、PVS 表、元件类型或速度W及最大时钟频率。存储该静态信息可W减少用于取回该处理器内核 302的静态信息的开销,由此减少用于确定处理器内核302的最优组合所需要的时间和功 率。该静态信息可能源自处理器内核302的制造商说明书和/或处理器内核302的制造过程 期间的测试。制造商可W在制造期间将该静态信息存储在处理器内核302、单独的处理器或 存储器上,W使在处理器内核302被用户使用之前,该静态信息就被包含在多核设备之内。 剩余的处理器内核信息304可W是动态信息,其可W随时间而变化。运样的动态信息可W包 括处理器内核302的溫度读数和工作负载。工作负载分析器306可W根据需要(例如,用于每 次确定处理器内核302的最优组合)来取回运样的动态信息。工作负载分析器306可W将处 理器内核302的当前工作负载信息转换为处理器内核302的工作负载的代表值。例如,可W 通过MIPS、处理器利用率、时钟频率或某些性能计数器值来表示工作负载。当前工作负载信 息和工作负载的代表值可W是针对个别处理器内核302的或者是针对处理器内核302群组 的。
[0035] 实时多核功率模型308可W接收信号318,其具有一些或全部处理器内核信息304, 包括经转换的工作负载代表值。实时多核功率模型308可W使用处理器内核信息304来计算 针对当前所提供的处理器内核信息304和针对一系列假定情况的处理器内核信息304的功 耗。运些假定情况可W包括在工作负载值处、一溫度范围内的活动处理器内核302的各种组 合。实时多核功率模型308可W创建由实际和假定计算和/或计算结果组成的功率映射或数 据集,指示针对给定工作负载(或给定工作负载的代表值)的处理器内核302的组合的功耗 和溫度之间的关系。假定情况还可W包括在给定溫度处、一工作负载范围内的活动处理器 内核302的各种组合。类似地,实时多核功率模型308可W基于当前所提供的处理器内核信 息304和针对一系列假定情况的处理器内核信息304来创建性能映射或数据集。该计算指示 针对在所选溫度处的处理器内核302的组合的功耗和工作负载(例如,由吞吐量或每秒所执 行的指令来表示)之间的关系。功率映射和性能映射可W与用于确定运些映射的因素(例 如,溫度和代表工作负载值、W及一些或全部处理器内核信息304) -起被实时多核功率模 型308作为信号320输出。
[0036] 实时多核功率模型308可W根据当前的优化策略来创建功率映射或性能映射,当 前的优化策略可W是针对给定工作负载的最低功率或针对给定功率预算的最高性能中的 一个。在另一方面中,实时多核功率模型308是创建功率映射还是创建性能映射可W取决于 特定的因素。例如,可W应用溫度口限来确定创建哪个映射。当溫度读数低于口限时,实时 多核功率模型308可W创建功率映射来帮助确定针对给定工作负载的最低功耗。运可W在 保持尽可能低的功耗的同时,使多核设备能够满足工作负载的需求,由此延长电池寿命。保 持尽可能低的功耗的结果还在于:在仍然达到针对工作负载的性能目标的同时,保持尽可 能低的溫度。针对给定的功率预算或水平,当溫度读数高于口限时,实时多核功率模型308 可W创建性能映射来帮助确定最低功耗处的最佳性能或最高工作负载。运可W使多核设备 能够提供具有最小功率量的最高工作负载,由此在提供在运些参数内的最佳用户体验的同 时,对溫度的上升具有最小的影响,或者甚至能够维持或降低溫度。
[0037] 在创建运些映射的过程中,实时多核功率模型308可W基于个别处理器内核302的 各种组合来使用每一个处理器内核302的处理器内核信息304来计算运些结果。例如,实时 多核功率模型308可W选择对具有最低溫度、最低泄漏量、最高速度和/或最低工作负载的 处理器内核302进行组合。在另一方面中,实时多核功率模型308可W在其计算过程中作出 某些假设。运样的假设可W包括:属于相同多核IC 300的每一个处理器内核302可W共享某 些特性,比如处理器内核静态信息。其它方面可W要求实时多核功率模型308在创建处理器 内核302的组合的过程中遵守某些规则,例如,处理器内核的组合必须只包括邻近的处理器 内核302 (例如,内核0和内核1;内核1和内核2;内核2和内核3;内核3和内核4;内核0、内核1 和内核2;内核1、内核2和内核3; W及内核2、内核3和内核4),或者只可W组合相同类型的处 理器内核302。邻近的处理器内核302不必物理地邻近,可W通过规则将它们指定为邻近。
[0038] 性能/瓦特优化引擎310可W从实时多核功率模型308接收作为信号320的映射和 因素,并且还可W从系统功率预算管理器314接收作为信号322的功率预算。运些因素可W 包括用于确定映射的因素,例如,溫度和代表工作负载值、W及一些或全部处理器内核信息 304。优化引擎310可W执行多维空间中的性能优化算法W确定或识别针对当前工作负载的 处理器内核302的最优配置。该配置可W包括:活动的和/或不活动的处理器内核302的数 量、和/或哪些处理器内核302应当被指定为活动的和/或不活动的。需要激活的处理器内核 302的数量可W从使用运些映射(并且在一
些实例中也使用运些因素)的性能优化算法中推 导出。类似于实时多核功率模型308,优化引擎310可W基于个别信息、基于某些假设、或基 于规则集合来作出处理器内核302的任何组合。可W基于个别处理器内核302的处理器内核 信息304的任何单个部分或组合来选择活动的和/或不活动的处理器内核302。例如,针对给 定频率,优化引擎310可W选择具有最低泄漏量、最低溫度和/或最低电压电平的活动处理 器内核302。优化引擎310可W识别针对单位测量量(uni t measurement)(例如,时间、工作 负载、功耗量和/或溫度水平)有多少处理器内核302和/或哪些处理器内核302是活动的和/ 或不活动的。
[0039] 多核管理器312可W从优化引擎310接收具有所识别的处理器内核信息的信号 324。多核管理器312可W控制每一个处理器内核302的活动状态,由此控制针对该单位测量 量有多少处理器内核302和/或哪些处理器内核是活动的和/或不活动的。在一个方面中,多 核管理器312可W利用状态信号326来向多核IC 300或个别处理器内核302发信号,该状态 信号326在特定处理器内核302或处理器内核302群组中引起活动状态和/或不活动状态。在 一个方面中,多核管理器312对调度器(未示出)进行控制或与调度器进行交互,W仅调度被 优化引擎310视为活动的处理器内核302的过程。在另一方面中,多核管理器312对调度器进 行控制或与调度器进行交互,W调度活动的处理器内核302的过程并且避免调度被优化引 擎310视为不活动的处理器内核302的过程。
[0040] 在一个方面中,多核设备可W具有一个或多个多核IC 300。多核设备可W进一步 包括工作负载分析器306、实时多核功率模型308、优化引擎310和多核管理器312中的每一 个的一个或多个。运些部件中的每一个可W与一个或多个多核IC 300配对。
[0041 ]可W将工作负载分析器306、实时多核功率模型308、优化引擎310和多核管理器 312中的每一个实现为存储在多核设备的存储器(参见图8)上并且由多核设备的处理器(参 见图8)执行的软件。
[0042] 图4示出了用于多核设备的智能多核控制的示例性图形化功率映射的例子。图形 表示400、402、404和406描绘了得到功率映射的四种情况。每一个图形表示400、402、404和 406均包括对由实时多核功率模型在一溫度范围内、在给定的代表工作负载值处、针对指定 数量的处理器内核所计算的功耗进行表示的个别图形。第一示例性功率映射的图形表示 400是针对标准类型的多核IC和中等工作负载(例如,中等MIPS数)的。对于在该第一示例性 功率映射的创建过程中所设及的示例性多核IC来说,一到四个处理器内核可W能够处理该 工作负载。箭头408指示在大约110摄氏度处,使用两个活动处理器内核得到了最低的功耗, 与此同时仍然能够处理所指定的工作负载。
[0043] 第二示例性功率映射的图形表示402也是针对标准类型的多核IC的,但是其具有 较重的工作负载(例如,较高的MIPS数)。在运个实例中,用于生成该第二示例性功率映射的 示例性多核IC可能需要二到四个处理器内核来处理该工作负载。在运种情况下,箭头410指 示在大约120摄氏度处,使用=个活动处理器内核得到了最低的功耗,与此同时仍然能够处 理所指定的工作负载。
[0044] 第=示例性功率映射的图形表示404与此前的两种图形表示400、402不同,因为它 是针对慢速类型的多核IC的,但是使用与第一示例性功率映射的图形表示400相同的工作 负载。在运样例子中,一到四个处理器内核可W处理该工作负载,并且箭头412指示在大约 110摄氏度处,使用两个活动处理器内核得到了用于处理该工作负载的最低功耗。
[0045] 第四示例性功率映射的图形表示406是针对慢速类型的多核IC的,但是使用与第 二示例性功率映射的图形表示402相同的较重的工作负载。在运个例子中,二到四个处理器 内核可W处理该工作负载,并且箭头414指示在大约110摄氏度处,使用四个活动处理器内 核得到了用于处理该工作负载的最低功耗。
[0046] 图5A和图5B示出了用于多核设备的智能多核控制的示例性性能映射。图形表示 500和502描绘了得到性能映射的两种情况。每一个图形表示均包括对由实时多核功率模型 针对各个工作负载、针对指定数量的处理器内核所计算的功耗进行表示的图。运些计算中 的溫度(未示出)可W是常数。第一示例性性能映射的图形表示500是针对标准类型的多核 IC的。对于在该性能映射的创建过程中所设及的示例性多核IC来说,一到四个处理器内核 可W能够处理可变工作负载。箭头504指示在P2mW的功率预算处,使用两个活动处理器内核 得到了X2 MIPS的最佳性能,而在功率预算大约相同的地方,一个活动处理器内核可W处理 较少的MIPS,并且S或四个处理器内核可W处理甚至更少的MIPS。
[0047] 第二示例性性能映射的图形表示502也是针对标准类型的多核IC的,其具有能够 处理可变工作负载的二到四个处理器内核。在运种情况下,箭头506指示在P5mW的功率预算 处,使用四个活动处理器内核得到了 X4MWS的最佳性能,而在功率预算大约相同的地方,S 个活动处理器内核可W处理较少的MIPS,并且两个活动内核可W处理甚至更少的MIPS。
[0048] 图6是示出了用于多核设备的示例性智能多核控制方法600的过程流程图。当多核 设备具有多个多核I別寸,针对特定多核IC的处理器内核,多核设备可W选择执行本文所描 述的一些或全部方框。例如,多核设备可W包括用于通用计算任务的多核IC和专用于多媒 体处理和擅染的另一个多核1C。可W将具体任务分配给不同的多核1C。当多核设备执行该 智能多核控制方法600时,针对特定的多核IC的具体任务的工作负载,其可W运样做。在运 样的实例中,多核设备可W为该工作负载选择合适的多核1C,并且执行智能多核控制方法 600中的与所选多核IC的处理器内核有关的方框。
[0049] 在方框602中,多核设备可W读取与多核设备的一些或全部处理器内核相关联的 静态信息。处理器内核的静态信息可W是为常数的处理器内核信息,例如,泄漏量、PVS(处 理器电压调节)表、W及元件类型或娃速度。在方框604中,多核设备可W读取与多核设备的 处理器内核相关联的动态信息。该动态信息可W随时间而变化,并且可W包括处理器内核 的溫度读数和工作负载。在方框606中,多核设备可W将当前的工作负载读数转换成代表工 作负载值。例如,可W通过MIPS、处理器利用率、操作时钟频率或某种性能计数器值来表示 工作负载。
[0050] 在确定方框608中,多核设备可W通过将溫度读数与溫度口限进行比较来确定溫 度读数与溫度口限的关系。可W用各种方式来作出运种关系的确定。多核设备可W将每一 个处理器内核的溫度读数与溫度口限进行比较。可W W处理器内核为基础在处理器内核上 作出该确定,并且可W根据少数服从多数的规则来作出总体确定。例如,在确定方框608中, 当大多数处理器内核溫度读数都小于溫度口限时,出于确定的目的,将整个处理器内核群 组视为具有低于口限的溫度读数。在一个方面中,在确定方框608中,出于确定的目的,可W 单独地对待每一个处理器内核。在进一步的方面中,在确定方框608中,出于确定的目的,可 W使用该组处理器内核群组的平均溫度或中间溫度来与溫度口限进行比较,并且将处理器 内核当作一个群组来对待。
[0051] 取决于所确定的关系,多核设备可W计算功率映射或性能映射。当在确定方框608 中确定处理器内核的溫度读数(作为群组或作为个体)大于溫度口限时,在方框610中,多核 设备可W计算性能映射,该性能映射将用于达到针对给定功率预算的最优或最佳性能。在 一个方面中,当溫度读数等于口限时,在方框610中,多核设备可W计算性能映射。在方框 612中,多核设备可W识别处理器内核的配置,其可W优化针对给定功率预算的性能。在一 个方面中,该配置可W包括活动/不活动的处理器内核的数量和/或哪些活动/不活动处理 器内核可W优化针对给定功率预算的性能。在方框618中,多核设备可W控制处理器内核的 活动状态,由此控制数量和/或哪些处理器内核是活动的和/或不活动的,W针对给定功率 预算执行达到最佳性能的参数内的工作负载。
[0052] 当在确定方框608中确定处理器内核的溫度读数(作为群组或作为个体)小于溫度 口限时,在方框614中,多核设备可W计算功率映射,该功率映射将用于达到针对给定工作 负载的最优或最低功率。在一个方面中,当溫度读数等于口限时,在方框614中,多核设备可 W计算功率映射。在方框616中,多核设备可W识别处理器内核的配置,其可W优化针对给 定工作负载的功率。在一个方面中,该配置可W包括活动/不活动处理器内核的数量和/或 哪些活动/不活动处理器内核可W优化针对给定工作负载的功率。在方框618中,多核设备 可W控制处理器内核的活动状态,由此控制数量和/或哪些处理器内核是活动的和/或不活 动的,W针对给定工作负载执行达到最低功率的参数内的工作负载。
[0053] 针对要被执行的过程中的每一个工作负载,多核设备可W重复地执行该智能多核 控制方法600。在一个方面中,可能没有必要重复方框602,运是由于静态信息可能不会改 变。在运样的情况下,多核设备可W通过读取处理器内核的动态信息从方框604开始重复该 智能多核控制方法600。
[0054] 图7提供了适于使用如本文所描述的智能多核控制的多核IC 300架构的
简化部件 框图。如可能适用于高端计算设备(例如,台式计算机)的那样,图7所示的例子中的多核IC 300是图形处理单元(GPU),其具有多个处理器内核,其中一组是着色器处理器(SP)700,并 且一组是纹理管道(tex化re pipe,TP)702。可W将着色器处理器700和纹理管道702安排为 彼此并行地执行过程。可W针对处理器内核的任何集合来实现智能多核控制,所述处理器 内核的任何集合被安排为彼此并行地执行过程。处理器内核可W全都在多核IC 300内。在 一个方面中,可W使用智能多核控制来跨越类似的多核IC 300管理处理器内核。例如,潜在 的未来多核设备具有若干个多媒体多核IC 300。多媒体多核IC 300中的每一个可W具有用 于处理多媒体任务的类似的处理能力。多核设备可W使用智能多核控制来从一个W上的多 媒体多核IC 300中选择处理器内核W执行给定的工作负载。在另一方面中,多核设备可W 使用智能多核控制来优化一个多核IC 300内的处理器内核群组(相对于另一个类似的多核 IC 300而言)。如在此前例子中所描述的,使用若干个多媒体多核IC 300的例子可W设及使 用智能多核控制来从多媒体多核IC 300群组中的一个多媒体多核IC 300中选择处理器内 核来执行给定工作负载的多核设备。
[0化5] 图7还示出了每一个处理器内核、着色器处理器700W及纹理管道702均可W连接 到工作负载分析器306和多核管理器312。该示图是多核管理器312和着色器处理器700之间 的关系的简化,运是由于与纹理管道702紧密集成的着色器处理器700可W完全由完成着色 器工作负载的分布的硬件块来驱动。可W将工作分析器306连接到实时多核功率模型308, 该实时多核功率模型308可W连接到性能/瓦特优化引擎310,该性能/瓦特优化引擎310可 W连接到多核管理器312。运样,图7中示出的部件可W能够实现本文所描述的智能多核控 制。
[0056] 可W使用模块化着色器处理器/纹理管道单元来实现各个方面。该架构允许GPU差 异的创建,其可W在着色器和纹理处理能力方面变化。着色器处理仅仅是由GPU执行的图形 处理中的许多步骤中的一个,因而上文关于着色器处理器/纹理管道单元的讨论仅仅设及 完整工作核屯、中的一部分。着色器处理器/纹理管道单元可W完全由前述硬件块来驱动,并 且不可W从单独地通过软件控制。然而,未来的计算系统架构可能会允许通过软件来控制 着色器处理器/纹理管道单元。
[0057] 图8示出了用于使用智能多核控制的示例性多核设备800。在各个实施例中,多核 设备800可W包括禪合到触摸屏控制器804和内部存储器806的处理器802。处理器802可W 是被指定用于通用或专用处理任务的一个或多个多核1C。内部存储器806可W是易失性的 或非易失性的存储器,并且还可W是安全存储器和/或加密存储器,或非安全存储器和/或 非加密存储器,或其任何组合。触摸屏控制器804和处理器802还可W禪合到触摸屏面板 812,例如,电阻式感应触摸屏、电容式感应触摸屏、红外式感应触摸屏等。多核设备800可W 具有彼此禪合和/或禪合到处理器802的一个或多个无线信号收发机808 (例如, Pean山吸、蓝'才饭、Zigbee饭、Wi-Fi、RF无线单元)和天线810W用于发送和接收。收发 机808和天线810可W与上文所提及的电路一起使用,W实现各个无线传输协议找和接口。 多核设备800可W包括蜂窝网络无线调制解调器忍片816,其支持经由蜂窝网络的通信,并 且禪合到处理器。多核设备800可W包括禪合到处理器802的外围设备连接接口 818。可W将 外围设备连接接口 818单独地配置为接受一种类型的连接,或多样地配置为接受各种类型 的通用或专用的物理和通信连接,例如,USB、火线(。^6胖^6)、化1111(16&〇1*或?(:16。还可^ 将外围设备连接接口818禪合到类似配置的外围设备连接端口(未示出)。多核设备800还可 W包括用于提供语音输出的扬声器814。多核设备800还可W包括由塑料、金属或组合材料 所构造的外壳820, W用于容纳本文所讨论的全部或一些部件。多核设备800可W包括禪合 到处理器802的电源822,例如,一次性电池或可充电电池。还可W将可充电电池禪合到外围 设备连接端口,W从多核设备800外部的电源接收充电电流。
[0058]提供前述的方法描述和过程流程图仅仅作为说明性的例子,而并非旨在要求或暗 示必须按照给出的顺序执行各种方面的步骤。如本领域技术人员将意识到的,可W按照任 何顺序执行前述方面中的步骤顺序。诸如"其后"、"然后"、"接下来"等词汇并非旨在限制步 骤的顺序;运些词汇仅用于引导读者阅读对方法的描述。此外,W单数形式(例如使用冠词 "一个"、"一"或"该")对权利要求元素进行的任何引用都不应被解释为将元素限制为单数。 [0化 9]如本申请中所使用的,术语"部件"、"模块"、"系统"、"引擎"、"生成器"、"管理器" 等旨在包括被配置为执行特定操作或功能的计算机相关实体,例如但不限于:硬件、固件、 硬件和软件的组合、软件、或执行中的软件。例如,部件可W是但不限于:运行在处理器上的 过程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。举例而言,运行在计算设 备上的应用和计算设备二者都可W被称为部件。一个或多个部件可W驻留在过程和/或执 行的线程内,并且部件可W位于一个处理器或内核上和/或分布在两个或更多个处理器或 内核之间。另外,可W通过其上存储有各种指令和/或数据结构的各种非暂时性计算机可读 介质来执行运些部件。部件可W通过W下方式来进行通信:本地和/或远程过程、函数或过 程调用、电子信号、数据分组、存储器读/写、W及其它已知的网络、计算机、处理器、和/或与 过程有关的通信方法。
[0060] 结合本文公开的方面描述的各种说明性逻辑框、模块、电路和算法步骤可W被实 现为电子硬件、计算机软件或运二者的组合。为了清楚地说明硬件和软件的运种可互换性, W上各种说明性部件、方框、模块、电路和步骤均围绕它们的功能来概括性描述。运样的功 能被实现为硬件还是软件取决于具体应用和施加在整个系统上的设计约束。技术人员可W 针对各个具体应用W变通方式来实现所描述的功能,但是运样的实现决策不应当被解释为 使得脱离本发明的保护范围。
[0061] 可W利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、 专用集成电路(ASIC)、现场可编程口阵列(FPGA)或其它可编程逻辑电路、分立口或晶体管 逻辑器件、分立硬件部件或其任何组合来实现或执行用于实现结合本文所公开的方面来描 述的各种说明性逻辑单元、逻辑块、模块和电路的硬件。通用处理器可W是微处理器,但在 替代方案中,处理器可W是任何常规处理器、控制器、微控制器或状态机。处理器还可W实 现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、一个或多个微处理器与 DSP内核结合,或任何其它运样的配置。或者,一些步骤或方法可W由特定于针对给定功能 的电路来执行。
[0062] 在一个或多个示例性方面中,可W使用硬件、软件、固件或其任何组合来实现所描 述的功能。如果使用软件来实现,则可W将该功能作为一个或多个指令或代码存储在非暂 时性计算机可读介质或非暂时性处理器可读介质上。本文所公开的方法或算法的步骤可W 体现在可驻留在非暂时性计算机可读或处理器可读存储介质上的处理器可执行的软件模 块中。非暂时性计算机可读或处理器可读存储介质可W是可由计算机或处理器存取的任何 存储介质。通过举例而非限制性的方式,运样的非暂时性计算机可读或处理器可读介质可 W包括RAM、ROM、EEPROM、化A細存储器、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储 设备,或可W用于存储呈指令或数据结构的形式的期望的程序代码且可通过计算机存取的 任何其它介质。如本文所使用的,磁盘(Disk)与光盘(disc)包含压缩光盘(CD)、激光光盘、 光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘利用激 光来光学地复制数据。上述内容的组合也应当被包含在非暂时性计算机可读和处理器可读 介质的范围内。另外,方法或算法的操作可W作为代码和/或指令中的一个、或其任意组合、 或集合而驻留在可W并入到计算机程序产品中的非暂时性处理器可读介质和/或计算机可 读介质上。
[0063]提供前面对公开的方面的描述W使本领域任何技术人员能够实施或使用本发明。 对本领域技术人员而言,对运些的各种修改将是显而易见的,并且可W将本文所定义的一 般性原理应用于其它变型而不脱离本发明的精神或保护范围。因而,本发明并不旨在要受 限于本文示出的方面,而是要符合与所附权利要求和本文所公开的原理和新颖性特征相一 致的最广泛的范围。
【主权项】
1. 一种用于多核集成电路的多个处理器内核的多核控制的方法,包括: 将所述多个处理器内核的温度读数与温度门限进行比较; 基于处理器内核信息和多种假定情况来计算针对所述多个处理器内核的映射; 当所述温度读数小于所述温度门限时,识别处理器内核的第一配置以优化针对给定工 作负载的功耗; 当所述温度读数大于所述温度门限时,识别处理器内核的第二配置以优化针对给定功 率预算的性能;以及 基于所识别的配置来控制所述多个处理器内核中的每一个处理器内核的活动状态。2. 根据权利要求1所述的方法,其中,基于所述处理器内核信息和所述多种假定情况来 计算针对所述多个处理器内核的所述映射包括: 当所述温度读数小于所述温度门限时,计算功率映射,所述功率映射指示针对所述给
定工作负载的给定代表值的所述多个处理器内核的组合的功耗和温度之间的关系;以及 当所述温度读数大于所述温度门限时,计算性能映射,所述性能映射指示针对给定温 度的所述多个处理器内核的组合的功耗和工作负载之间的关系。3. 根据权利要求1所述的方法,其中,处理器内核的所述第一配置和所述第二配置指示 活动处理器内核的数量。4. 根据权利要求1所述的方法,其中,处理器内核的所述第一配置和所述第二配置指示 所述多个处理器内核中的哪些处理器内核是活动处理器内核。5.根据权利要求1所述的方法,其中,处理器内核的所述第一配置和所述第二配置包 括:针对给定频率,具有最低泄漏量、最低温度或最低电压电平的所述处理器内核。6. 根据权利要求1所述的方法,还包括: 读取与每一个处理器内核相关联的所述处理器内核信息,其中,所述处理器内核信息 包括:泄漏电流、处理器内核速度、处理器电压设置表、最大时钟频率、温度读数和当前工作 负载;以及 将所述当前工作负载转换为所述当前工作负载的代表值。7.根据权利要求6所述的方法,其中,所述处理器内核信息包括动态信息,所述动态信 息包括所述温度读数和所述当前工作负载, 所述方法还包括重复地读取所述动态信息。8. 根据权利要求1所述的方法,其中,所述多核集成电路的所述处理器内核包括从包括 中央处理单元、图形处理单元的着色器处理器、所述图形处理单元的纹理管道或数字信号 处理器的群组中选择的一种或多种处理器内核类型。9.一种装置,包括: 具有多个处理器内核的多核集成电路,其中,所述多核集成电路被配置为具有处理器 可执行指令以执行操作,所述操作包括: 将所述多个处理器内核的温度读数与温度门限进行比较; 基于处理器内核信息和多种假定情况来计算针对所述多个处理器内核的映射; 当所述温度读数小于所述温度门限时,识别处理器内核的第一配置以优化针对给定工 作负载的功耗; 当所述温度读数大于所述温度门限时,识别处理器内核的第二配置以优化针对给定功 率预算的性能;以及 基于所识别的配置来控制所述多个处理器内核中的每一个处理器内核的活动状态。10. 根据权利要求9所述的装置,其中,所述多核集成电路被配置为具有处理器可执行 指令以执行操作,以使基于所述处理器内核信息和所述多种假定情况来计算针对所述多个 处理器内核的所述映射包括: 当所述温度读数小于所述温度门限时,计算功率映射,所述功率映射指示针对所述给 定工作负载的给定代表值的所述多个处理器内核的组合的功耗和温度之间的关系;以及 当所述温度读数大于所述温度门限时,计算性能映射,所述性能映射指示针对给定温 度的所述多个处理器内核的组合的功耗和工作负载之间的关系。11. 根据权利要求9所述的装置,其中,处理器内核的所述第一配置和所述第二配置指 示活动处理器内核的数量。12. 根据权利要求9所述的装置,其中,处理器内核的所述第一配置和所述第二配置指 示所述多个处理器内核中的哪些处理器内核是活动处理器内核。13. 根据权利要求9所述的装置,其中,处理器内核的所述第一配置和所述第二配置包 括:针对给定频率,具有最低泄漏量、最低温度或最低电压电平的所述处理器内核。14. 根据权利要求9所述的装置,其中,所述多核集成电路被配置为具有处理器可执行 指令以执行操作,所述操作还包括: 读取与每一个处理器内核相关联的所述处理器内核信息,其中,所述处理器内核信息 包括:泄漏电流、处理器内核速度、处理器电压设置表、最大时钟频率、温度读数和当前工作 负载;以及 将所述当前工作负载转换为所述当前工作负载的代表值。15. 根据权利要求14所述的装置,其中,所述处理器内核信息包括动态信息,所述动态 信息包括所述温度读数和所述当前工作负载, 所述多核集成电路被配置为具有处理器可执行指令以执行操作,所述操作还包括:重 复地读取所述动态信息。16. 根据权利要求9所述的装置,其中,所述多核集成电路的所述处理器内核包括从包 括中央处理单元、图形处理单元的着色器处理器、所述图形处理单元的纹理管道或数字信 号处理器的群组中选择的一种或多种处理器内核类型。17. -种用于多核集成电路的多个处理器内核的多核控制的装置,包括: 用于将所述多个处理器内核的温度读数与温度门限进行比较的单元; 用于基于处理器内核信息和多种假定情况来计算针对所述多个处理器内核的映射的 单元; 用于当所述温度读数小于所述温度门限时,识别处理器内核的第一配置以优化针对给 定工作负载的功耗的单元; 用于当所述温度读数大于所述温度门限时,识别处理器内核的第二配置以优化针对给 定功率预算的性能的单元;以及 用于基于所识别的配置来控制所述多个处理器内核中的每一个处理器内核的活动状 态的单元。18. 根据权利要求17所述的装置,其中,用于基于所述处理器内核信息和所述多种假定 情况来计算针对所述多个处理器内核的所述映射的单元包括: 用于当所述温度读数小于所述温度门限时,计算功率映射的单元,所述功率映射指示 针对所述给定工作负载的给定代表值的所述多个处理器内核的组合的功耗和温度之间的 关系;以及 用于当所述温度读数大于所述温度门限时,计算性能映射的单元,所述性能映射指示 针对给定温度的所述多个处理器内核的组合的功耗和工作负载之间的关系。19. 根据权利要求17所述的装置,其中,处理器内核的所述第一配置和所述第二配置指 示活动处理器内核的数量。20. 根据权利要求17所述的装置,其中,处理器内核的所述第一配置和所述第二配置指 示所述多个处理器内核中的哪些处理器内核是活动处理器内核。21. 根据权利要求17所述的装置,其中,处理器内核的所述第一配置和所述第二配置包 括:针对给定频率,具有最低泄漏量、最低温度或最低电压电平的所述处理器内核。22. 根据权利要求17所述的装置,还包括: 用于读取与每一个处理器内核相关联的所述处理器内核信息的单元,其中,所述处理 器内核信息包括:泄漏电流、处理器内核速度、处理器电压设置表、最大时钟频率、温度读数 和当前工作负载;以及 用于将所述当前工作负载转换为所述当前工作负载的代表值的单元。23. 根据权利要求22所述的装置,其中,所述处理器内核信息包括动态信息,所述动态 信息包括所述温度读数和所述当前工作负载, 所述装置还包括:用于重复地读取所述动态信息的单元。24. 根据权利要求17所述的装置,其中,所述多核集成电路的所述处理器内核包括从包 括中央处理单元、图形处理单元的着色器处理器、所述图形处理单元的纹理管道或数字信 号处理器的群组中选择的一种或多种处理器内核类型。25. -种非暂时性处理器可读介质,具有存储于其上的处理器可执行软件指令,所述处 理器可执行软件指令被配置为使得多核集成电路执行操作,所述操作包括: 将多个处理器内核的温度读数与温度门限进行比较; 基于处理器内核信息和多种假定情况来计算针对所述多个处理器内核的映射; 当所述温度读数小于所述温度门限时,识别处理器内核的第一配置以优化针对给定工 作负载的功耗; 当所述温度读数大于所述温度门限时,识别处理器内核的第二配置以优化针对给定功 率预算的性能;以及 基于所识别的配置来控制所述多个处理器内核中的每一个处理器内核的活动状态。26. 根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行软 件指令被配置为使得所述多核集成电路执行操作,以使基于所述处理器内核信息和所述多 种假定情况来计算针对所述多个处理器内核的所述映射包括: 当所述温度读数小于所述温度门限时,计算功率映射,所述功率映射指示针对所述给 定工作负载的给定代表值的所述多个处理器内核的组合的功耗和温度之间的关系;以及 当所述温度读数大于所述温度门限时,计算性能映射,所述性能映射指示针对给定温 度的所述多个处理器内核的组合的功耗和工作负载之间的关系。27. 根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行软 件指令被配置为使得所述多核集成电路执行操作,所述操作还包括: 读取与每一个处理器内核相关联的所述处理器内核信息,其中,所述处理器内核信息 包括:泄漏电流、处理器内核速度、处理器电压设置表、最大时钟频率、温度读数和当前工作 负载;以及 将所述当前工作负载转换为所述当前工作负载的代表值。28. 根据权利要求27所述的非暂时性处理器可读介质,其中,所述处理器内核信息包括 动态信息,所述动态信息包括所述温度读数和所述当前工作负载, 所存储的处理器可执行软件指令被配置为使得所述多核集成电路执行操作,所述操作 还包括:重复地读取所述动态信息。
【专利摘要】各个方面提供了用于多核集成电路的多个处理器内核的智能多核控制的设备和方法。这些方面可以识别并且激活处理器内核的最优集合,以达到针对给定工作负载的最低水平的功耗或针对给定功率预算的最高性能。处理器内核的最优集合可以是活动处理器内核的数量或特定活动处理器内核的指定。当处理器内核的温度读数低于门限,可以选择一组处理器内核来提供针对给定工作负载的最低功耗。当处理器内核的温度读数高于门限时,可以选择一组处理器内核来提供针对给定功率预算的最佳性能。
【IPC分类】G06F1/32, G06F1/20, G06F9/50
【公开号】CN105492993
【申请号】CN201480043992
【发明人】H-J·朴, S·汤姆森, R·F·奥尔顿, E·雷吉尼, S·戈韦尔丹, P-L·D·贝克尔
【申请人】高通股份有限公司
【公开日】2016年4月13日
【申请日】2014年8月7日
【公告号】EP3030946A1, US9292293, US20150046685, WO2015021329A1