首页> 中国专利> 确定在处理器中应保持活跃的执行核数量的装置及方法

确定在处理器中应保持活跃的执行核数量的装置及方法

摘要

描述了一种包括多个执行核的处理器。该处理器还包括功率管理电路,用于动态确定活跃时会使得处理器工作在大致线性的功耗对频率工作区的执行核的数量,从而使得在使用所述数量的执行核的情况下,作为功耗增量的函数的性能增益相比在已确立的功率包络中的其他任何数量的活跃执行核更高。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-30

    授权

    授权

  • 2015-08-26

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

    实质审查的生效

  • 2015-07-29

    公开

    公开

说明书

发明领域

发明领域主要涉及计算系统,更具体而言,涉及确定在处理器中应保持活 跃的执行核数量的装置及方法。

背景

图1示出了示例性多核处理器100的架构。如图1中所见,处理器包括: 1)多个处理核101_1至101_N;2)互连网络102;3)末级缓存系统103;4) 存储控制器104以及I/O中枢105。每个处理核包含一个或多个用以执行程序 代码指令的指令执行流水线。互连网络102用于将核101_1至101_N中的每一 个互连至彼此以及其他元件103、104、105。末级缓存系统103在指令和/或数 据被放至系统存储器106之前用作处理器中的最后一层缓存。

存储器控制器104从/至系统存储器106读/写数据和指令。I/O中枢105管 理处理器和“IO”设备(如非易失性存储设备和/或网络接口)之间的通信。端 口107源自于互连网络102以连接多个处理器,使得具有超过N核的系统可以 被实现。图形处理器108执行图形计算。功率管理电路109管理着处理器整体 上(“封装级”)的性能和功率状态,以及处理器中独立单元(例如独立核101_1 至101_N、图形处理器108等)的性能和功率状态的各方面。为方便起见,其 他具有意义的功能模块,例如锁相环(PLL)电路,在图1中未被绘出。

随着计算机系统的功耗开始受到关注,大多现今的系统包括精巧的功率管 理功能。一种常见的构架是同时定义“性能”状态和“功率”状态。进入和/ 或离开这些状态中的任何一个,可由,例如,功率管理电路109来进行控制。 逻辑模块的性能对应着其在设定时间周期内的工作能力。也就是说,逻辑模块 的性能状态越高,在设定时间周期内其所做的工作就越多。这里,对于一个逻 辑模块的固定配置,决定逻辑模块性能的主要因素是其工作的频率。具体而言, 应用于逻辑模块的时钟频率越高,其性能就越高。通常,为了在更高频率下正 常工作,逻辑模块的供电电压也需要被提高。时钟速度和供电电压水平两者可 在运行时(runtime)期间,例如由功率管理电路109进行调节。

另一个可以影响逻辑模块性能的因素是其可工作的内部单元中有多少被 启用(enabled)。例如,一种典型的图形处理器108具有多个内部执行核120_1 至120_Z,其中的每一个都被设计为实际执行代表计算机显示器上所呈现图像 的图形程序代码的片段(shippets)。通常,图形处理器108被设计成支持对应于 不同数量的被启用执行核的不同工作配置。例如,第一种配置可将所有执行核 120_1至120_Z启用,而另一种配置可仅将一半的核启用。启用核的数量也影 响了处理器工作的能力,并且因此也影响其性能。因此,图形处理器实际的“性 能”是启用核数量和应用于核的时钟信号频率的复杂混合。

不幸的是,逻辑模块的功耗随其频率和性能而增加这一事实更加重了复杂 度。

附图说明

本发明是以示例而非限制附图图形的方式进行说明,其中相同的参考指代 类似的元素,而其中:

图1示出了一种处理器的实施例;

图2示出了对于一种图形处理器配置的作为频率的函数的功耗;

图3a示出了对于一对图形处理器配置的作为频率的函数的功耗;

图3b示出了对于一对图形处理器配置的作为功耗的函数的性能;

图4示出了对于M种不同图形处理器配置的作为频率的函数的功耗;

图5示出了一种功率管理方法。

详细说明

智能功率管理的目的在于,对于单位频率增量,以较少量的功率增加得到 更多量的性能增长。就处理器而言,例如具有多个执行核的图形处理器,根据 被启用的执行核的数量,该处理器基本表现出不同的性能/频率对(vs.)功率的 曲线。也就是说,例如,具有第一种数量的启用执行核的图形处理器相比具有 不同数量的启用核的同一个处理器会表现出不同的性能和功率曲线。

因此有见地的功率管理会试图将图形处理器的性能和功率曲线定义为其 启用核的函数,并且,选择将被启用核的数量,该数量相比具有其他启用核数 量的可选配置,会得到对于单位频率增量以较少量功率增加得到更多量的性能 增长的图形处理器。

图2示出了一种图形处理器的功率对频率曲线200。图2中的曲线200对 于任何启用执行核的数量是通用的。也就是说,具有特定数量启用核的任何配 置应该有一个功率对频率的折衷,其表现出如图2中所见曲线200的大体形状。

处理器中的“性能”可假定随频率而缩放。这样,纵坐标也可被视作处理 器的性能。曲线200由较低频率中的线性区201和较高频率中的非线性区202 来表征。

线性区201中的动态功耗可被近似为:

Dyn_Pwr=CV2f   式1

其中:1)C为处理器中的总开关电容,包括启用核的开关电容;2)V为 加在图形处理器上的供电电压;以及,3)f为工作频率。在一种实施例中,至 少在线性区201的较低的频率区域,供电电压不需要随递增的频率而增加。因 此项V2在式1中作为常数。C也表现得像一个常数。因此,假设图形处理器的 活跃等级保持为常数,式1基本对应于动态功率,表现出与频率f的线性关系。

在非线性区202中,供电电压V需要随增加的频率而增加,以支持合适的 电路操作。因此,V2项表现得并不像是常数,这进而使得式1表现得更像是一 个非线性的多项式。并且,更高频率所需的更高供电电压使得“泄露功率”开 始产生明显的影响。在功率对频率曲线200的非线性区202中,该泄露功率导 致更为非线性的行为。

回想一下,所希望的是工作在对于单位频率增量具有更高性能增益和更少 功率增量的区域中,需要注意的是,线性区201相比非线性区202能更好地满 足该条件。对现象的考查在开始处(in onset)203被描绘,其比较了曲线在相 同频率增量206_1和206_2下(即,频率增量206_1等于频率增量206_2), 两个区域201、202功耗增量204、205的变化。非线性区202中的功耗增量205 比线性区201中的功耗增量204更大。对于两个频率增量206_1、206_2将处 理器性能增量近似估算是相同的,很明显,对于相同的性能增量,线性区201 比非线性区202产生更少的功耗增量。这对应着更理想的工作区域。

图3a示出了两个不同图形处理器配置的一对曲线300_1及300_2。也就是 说,每一条曲线对于特定数量的启用执行核来表示处理器的行为,其中,每一 条曲线对应着不同的启用执行核的数量。曲线300_1对应着更少启用核的数量 (例如,一半核被启用)而曲线300_2对应着更多的启用核数量,(例如,所 有核被启用)。

对比两条曲线300_1、300_2,注意,对于相同的功耗水平,采用更多数量 核的配置300_2比采用较少数量核的配置300_1具有更低的频率。这直接源于 这样的事实,即采用更多核的配置具有更大的使用电路表面积,因此相比采用 更少数量核的配置,可以在更慢的速度下做与有更少数量核的配置相同数量的 工作。

这里,尽管可以说相对性能沿着任意特定曲线随频率而缩放,并不像图2 中的分析那样,两条曲线300_1、300_2之间的处理器性能顺着横坐标(功耗) 比顺着纵坐标(频率)更好地被观察。也就是说,两条曲线300_1、300_2之 间的处理器性能可被视为在相同的功耗水平下(特别是当两条曲线在各自曲线 中相同的线性或非线性区时)比在相同的频率水平下更有可比性。值得注意的 是,使用更多执行核的曲线300_2比使用较少执行核的曲线300_1在更高的功 耗/性能下保持在线性区。这与一观念相一致,即为了完成相同数量的工作,更 多执行核不必与较少执行核工作得同样快。

回想一下,所希望的是保持处理器工作在线性区而不是非线性区,并且, 认识到具有更多启用执行核的处理器配置会在更高的性能水平进入非线性区, 因此,这也就是为什么对于任何特定的性能水平,智能功率管理方案会基于该 准则决定合适的执行核的数量的原因。也就是说,智能功率管理方案会试图将 线性区映射到处理器被设计要支持的每一个性能状态。针对性能状态被选择的 线性区决定了对于该性能状态要被启用的执行核的数量。

考虑一个示例,其中图形处理器最初被置于较低的性能状态中,而后被要 求不断提高其性能水平。在这种情况下,处理器的性能逐渐从其最低性能状态 扫掠(scan)至其最高性能状态。这里,再次比较图3a中的两条曲线300_1、 300_2,注意,具有较少执行核的曲线300_1的线性区301_1相比具有更多执 行核的曲线300_2的线性区301_2,有着更大的斜率。这直接源于这样的事实, 即当工作于相同频率时,更多执行核会比较少执行核消耗更多功率。更大的斜 率对应着对于单位增加频率的更少的功率增量。因此,具有较少执行核的曲线 300_1的线性区301_1是处理器更好的工作区。

因此,功率管理方案应该最初选择具有较少执行核的曲线300_1的线性区 301_1作为图形处理器在较低性能水平下的初始工作区。因此,功率管理方案 应该选择具有较少执行核的配置。在最低性能水平下的初始工作点被绘作图3a 中的点A。随着图形处理器渐进式地步入更高性能水平,所使用的频率会增加, 但启用执行核的数量将保持固定。换言之,功率管理方案如箭头310、311所 示地沿着曲线300_1的线性区301_1“行进”。

然而,图形处理器将最终到达曲线300_1的线性区上的点B大致对应的区 域。点B是相关的(pertinent),因为它代表了在何处曲线300_1开始脱离线 性区301_1,而进入非线性区301_2。因此,在实施例中,功率管理方案改变 处理器配置并启用更多执行核,这样处理器开始沿着曲线300_2中的线性区 301_2工作,而不是曲线300_1中的非线性区301_2。换言之,当处理器被要 求工作在大约图3a中点B附近的性能状态时,功率管理方案将图形处理器重 新配置以用更多执行核进行工作,这样图形处理器开始工作于曲线300_2的点 C且线性区301_2朝前推进。这样一来,图形处理器继续工作在线性区中,且 因此保持对于单位频率增量所可消耗的较低功率代价。

图3b给出了另一种观察相同或相似功率管理方案的方法。图3a示出了频 率对(vs.)功耗,而图3b示出了性能对(vs.)功耗。图3b的曲线300_11和300_22 分别对应着图3a中300_1和300_2的性能对功耗曲线。也就是说,曲线300_11 对应着启用较少执行核配置的性能对功耗趋势,而曲线300_22对应着启用更 多执行核的配置。图3b中的点X是交叉点,在其之上,移至具有更多启用执 行核数量的图形配置开始变得更节能。换言之,留在现有配置中的“代价”开 始变得太高。这里,图3b的点X在功耗方面与图3a的点B大约是在相同的区 域。值得注意的是,在点X以上的功率水平处,曲线300_11早已进入了非线 性的频率对功率缩放区,从而使得增加性能(及频率)的功率开销比在低得多 的频率下开启额外执行单元以满足相同的性能水平的开销更大(如曲线300_22 所表示)。图3a的曲线300_1上的点B对应着一个频率,在其之上,移至更 大执行单元的数量变得更节能。

或者,如果处理器正采用更大执行单元数量沿着曲线300_22运行,随着 总的可用功率包络被降低(例如,随着图形处理器的最大允许功耗被降低), 工作性能沿图3b中的曲线300_22降低。当达到图3b中的点X时,保持大量 执行核活跃的代价显著地消耗了可被用于增加所有活跃执行核频率的功率余 量。因此,在该点处,减少启用执行核的数量并利用所节省的功率余量来增加 较少活跃执行核的工作频率变得更节能。再回到图3a,当我们在功率方面沿着 曲线300_2向下走,在点C处,减少活跃执行核数量并转移至曲线301_1开始 变得更节能。

图4示出了一种图形处理器更实际的工作区域。尽管图3仅给出了两种不 同数量的启用执行核的曲线300_1、300_2,相比之下,图4示出了多条曲线 400_1至400_M,其分别对应不同数量的启用执行核。曲线400_1对应着最少 数量的启用执行核(例如一个执行单元)而曲线400_M对应着最多数量的启用 执行核(例如所有执行核)。轨迹410循着功率管理方案根据递增的性能的函 数将会把图形处理器置于其中的诸个工作区(同样,尽管图4实际上将功耗沿 横坐标显示,横坐标也可以被视为性能的衡量,因为具有相同功耗的两条不同 的曲线,特别是在线性工作区中,应表现出相似的性能)。本领域的普通技术 人员能理解,M可因实施例而不同,对于任意给定的处理器配置有多少执行核 被启用亦可因实施例而不同。

根据一个实施例,和轨迹410相当的信息,和/或可以从中确定轨迹410 的信息被有效地映射到处理器的功率管理电路中。功率管理电路依靠或不依靠 软件的协助,有效地执行与以上讨论原理相一致的功率管理方案。轨迹信息410 嵌入功率管理电路和/或软件的方式可因实施例而不同。例如,切换至新配置的 决定可基于留在现有配置“代价”太高的判断。

根据一个实施例,存在一种认识,即图形处理器得曲线可在运行期间“漂 移(drift)”或改变。示例包括管芯温度的增加或图形处理器活跃程度的改变。 例如,管芯温度的增加可导致提前出现漏泄,并因此提前出现非线性区(也就 是说,曲线和没有提前出现漏泄的情况相比,在更低的频率处开始表现出非线 性区)。更高的活跃程度相比较低的活跃程度也会消耗更多功率,导致非线性 区的提前出现。

与该观点相一致,根据一个实施例,存在一种认识,即由于一些生产因素, 作为启用执行单元数量的函数的泄露和动态功率可因管芯而异。这样,管芯的 特定属性(例如,用于帮助确定参考漏泄及开关电容如何随温度和电压比例缩 放)可被编程至非易失性存储器空间内,以帮助动态估计从一种启用/活跃执行 核数量到一种不同的启用核数量的“交叉(corss-over)”点。为了详细说明, 根据一种实现,被用于确定两种配置间交叉点的信息(如被加入“代价”方程 中的常数/系数)可被编程至处理器中。因此,交叉点可以不是纯粹基于是否脱 离了线性V-F范围。例如,根据一种方法,实际上是通过观察各种关心的工作 量的性能数据,并经验性地确定应在何频率时增加启用执行核数量,而选择每 个交叉点的。基于该经验性研究,在制造过程中,交叉点或用于动态确定交叉 点的信息(如代价方程式的系数)被编程到处理器管芯中的非易失性配置空间 内。这里,交叉点通常会在V-F曲线的拐点周围(即在电压频率曲线从线性移 向非线性区间的点的周围),但并不一定正好在该点处。

在一个实施例中,代价函数,如上述代价函数采用以下形式,代价=(A* (一段时间间隔内配置的平均频率))+(B*(该段时间间隔内配置的泄露功 率))+(C*(该段时间间隔内配置的动态功率))+(D*(非图形处理器元 件的功耗))。

因此,功率管理电路,例如图1的功率管理电路109,被改进以包括用于 计算算法或其他对于多种配置(每种具有不同启用执行核数量)的每一种描述 图形处理器功耗的公式的电路。尤其是,对于处理器的每种不同配置,功率管 理电路计算作为频率变化的函数的功耗变化——把图形处理器的当前状态,如 温度和活跃等级考虑进去。然后,所述功率管理电路确定哪些配置对应于作为 频率的函数的功耗的最低变化,然后为图形处理器选择该配置。

图5将这种过程的实施例显示为流程方法。如过程501_1至501_M中可见, 功率管理电路为处理器所支持的M种不同配置(启用执行核的数量)的每一配 置确定:i)总功耗;以及,ii)作为频率变化的函数的功耗变化。用于这些计 算的输入变量可以是动态的以及静态的。这里,值得注意的是,在不背离其本 意的情况下,可采用与图5中相异的方法。例如,以上(和以下)所述“功耗 方面的机会”计算可改为“代价”的函数,例如上文所讨论的代价函数,其衡 量留在当前配置下的代价,而非留在当前配置下的好处。

动态变量,如上文所讨论的,对应能在运行时(runtime)期间改变的变量, 如温度、活跃等级、供电电压和频率。静态变量对应更为固定的处理器特征, 如执行核的总开关电容,以及用于确定泄露功率的参考电流Iref。例如,开关电 容和参考电流Iref可通过非易失性配置空间(如“熔丝”或其他在大批量制造期 间只读和/或非易失性的储存和/或存储空间)被编程到处理器内。例如,开关电 容和Iref参数可取决于制造过程。因此它们可在管芯制造和测试之后被确定。 这些参数可以是管芯本身特有的(如,两颗不同的管芯可与不同的开关电容和 Iref参数相关联)。启用执行核的数量对于501_1至501_M的每个计算也对应 着固定的变量,其对于501_1至501_M的每个计算是不同的。

然后,对于图形处理器必须保持在内的给定“功率包络(power envelope)”, 功率管理电路确定在功率包络以内的诸个配置中具有作为频率函数的功耗的 最低变化的配置。也就是说,总功耗计算被用于确定哪些配置未超过功率包络 (即图形处理器能消耗的最大功率)502。一旦未超过功率包络的一组配置被 确定502,具有每频率变化下最低功耗变化的配置从该组中被选择503。

这一方法应如上文中根据图4所讨论地那样,跨不同配置地大致跟踪图形 处理器的线性工作区,其中动态变化仍被考虑在内。需要注意的是,根据图5 的过程,计算以周期间隔进行,从而使得图形处理器可以适应其配置,并且根 据处理器环境的任何变化(诸如任何可反映在计算501_1至501_M的动态输入 中的任何变化)而保持更好的功率效率。另外,注意,功率包络也是影响所述 一组合适配置的确定502的动态变量。对图形处理器给出的功率包络可,例如, 作为处理器中其他元件的功耗(如通用处理核的功耗)的函数进行变化。

功率管理电路可被实现为专用电路或是被设计为执行某种程序代码以达 成功率管理的功能的电路(如微控制器)。这些方法的组合也可被实现。在一 种实施例中,功率管理电路实际上并不在性能状态中强加任何变化,而是向软 件(如图形处理驱动软件)建议性能状态的变化。然后,软件做出最终决定, 图形处理器性能状态的变化是否要发生,且若是如此则将实施该变化。功率管 理电路可通过中断,门铃寄存器等的方式通信至驱动。该驱动可通过写入设置 图形处理器性能状态的处理器中的寄存器来建立性能状态。这也可包括规定需 要启用的执行核数量,以及可能规定其他功率管理参数,如施加于图形处理器 的供电电压和图形处理器和/或执行核的工作频率。软件实体可查询编程到处理 器上非易失性储存空间中的制造参数,跟踪处理器的活跃水平并动态估计要保 持活跃的执行单元数量。作为替代,功率管理电路可完全在硬件中完成所有这 些功能。再或者,某些硬件和软件的组合可完成这些过程。

值得注意的是,据信本讨论适用于任何由数个相同/相似执行核构成的处理 器(例如,以上所讨论的诸过程可潜在地被用于确定多核处理器中需要启用的 通用处理核数量的过程)。

由于上述讨论所授的任何过程可由控制器,微控制器或类似元件完成,这 样的过程可以是程序代码,例如,使得执行这些指令的机器完成特定功能的机 器可执行指令。上述讨论所教示的过程,作为执行程序编码的替代,或与执行 程序代码相结合,也可由设计为完成所述过程(或其部分)的电子电路来完成。

据信上述讨论所教示的过程也可用不同的面向对象或非面向对象的计算 机编程语言以源级程序代码来加以描述。一种制品可被用于储存程序代码。储 存程序编码的制品可体现为,但不限于,一种或多种存储器(如一种或多种闪 存、随机存取存储器,静态、动态或其他)、光盘、CD-ROM、DVD ROM、 EPROM、EEPROM、磁卡或光卡或其他类型适合于储存电子指令的机器可读介 质。程序代码也可通过体现于传播介质中(如通过通信链路(如网络连接)) 的数据信号的方式从远程计算机(如服务器)下载至请求计算机(如客户端)。

在前述的说明中,本发明参照其具体示例性实施例进行描述。然而,显而 易见的是,在不背离如所附权利要求中阐述的本发明的更宽泛的精神和范围的 情况下,各种修改和改变可对其进行实施。说明和附图相应地被认为是说明性 的,而非限制性意义的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号