非对称多处理器上的自适应线程调度设备及方法

文档序号:6595717阅读:236来源:国知局
专利名称:非对称多处理器上的自适应线程调度设备及方法
技术领域
本发明大体来说涉及用于基于泄漏电流及动态功率而调适非对称多处理器系统中的线程调度以在低功率耗损下实现所需性能的技术。
背景技术
例如手机、膝上型计算机、个人数据助理(PDA)及其类似者的许多便携型产品利用执行例如通信及多媒体程序的程序的处理系统。用于所述产品的处理系统可包括多个处理器、用于存储指令及数据的存储器、控制器、例如通信接口的外围装置及配置于(例如) 单芯片上的固定功能逻辑块。同时,便携型产品具有电池形式的有限能源,常常需要所述电池来支持来自处理系统的高性能操作。为增加电池寿命,在可能的情况下需要在减少的功率电平下执行这些操作。许多个人计算机还经开发以支持在低功率汲取(power drain)下的高性能操作以减少总能量消耗。在处理系统内部,多个处理器可配置为若干不同的组织,例如,允许多个处理器之间的选择性负载平衡的非对称多处理组织,其可为不同的且针对特定系统功能或过程(例如,视频、图形或通信处理)而经优化。可将处理功能分成经调度以供在选定处理器上执行的若干个线程或任务。线程被认为是最小可个别调度过程或指令序列,其可与另一线程并行运行。在本发明的上下文中,可能可互换地使用线程与任务。任务或线程可为通常由操作系统(OS)调度器指派给处理器(例如)以满足与系统功能相关联的性能要求的子功能 (sub-function)。由于与执行任务相关联的功率为频率、切换电容及供应电压的平方的函数,所以减少功率使用通常要求减少这些变量中的至少一者。为了更充分优化功率使用,许多处理系统具有对功率使用的一个或一个以上电路域中的频率及操作电压的控制。归因于在便携型装置上操作的例如视频、图形及通信的各种功能的高需求本质,可能需要多个处理器在千兆赫频率下操作以便满足产品的要求。由于对处理系统的功能需求不同,所以通常根据现有系统要求来调适操作频率。以类似方式,降低电压不仅影响功率,而且影响受影响的逻辑及存储器装置的操作频率,此继而又影响控制频率的方式。由于电路密度随着每一新技术产生而增加,所以在闲置或待用状况期间的功率损耗也已增加。电路泄漏电流还倾向于随着增加的电路密度而增加,从而越来越变成大量功率损耗源。为实现允许更高时钟频率的增加的密度及更短电路装置延迟,通常使内部电路装置的阈值电压减小。减小阈值电压通常增加泄漏电流,其也受处理变化及温度影响。高密度芯片的能量使用的显著部分可归因于泄漏电流。在操作系统调度器层级下,多处理系统中的任务指派为困难的问题,甚至在使芯片通过一致处理特性(P)而制造且在恒定及标称操作电压(V)及标称温度(T)内操作的标称操作环境(通常称作标称PVT环境)内也是如此。指派任务的问题归因于便携型装置的本质而变得甚至更困难,因为便携型装置可能使用通过不同工艺制造的多个芯片,且还可能经历在芯片内及芯片之间的处理特性的广泛变化、不同操作电压的使用,其可为可控的且经受周围温度的广泛变化。PVT的变化对芯片的功率利用(包括动态泄漏功率及静态泄漏功率)通常具有极大影响。

发明内容
本发明的一实施例提出一种用于在多个核心上进行自适应线程调度以减少系统能量的方法。线程调度器接收与所述多个核心相关联的泄漏电流信息。使用所述泄漏电流信息以在所述多个核心中的一者上调度线程以减少系统能量使用。本发明的另一实施例提出一种用于在多个核心上进行自适应线程调度以减少系统能量的设备。与所述多个核心相关联的多个传感器提供泄漏电流信息。多个核心运行自适应线程调度器,每一核心具有一所指派的操作频率及源电压电平(取决于待指派给所述核心的任务)。所述自适应线程调度器使用所述泄漏电流信息以在所述多个核心中的一者上调度线程以减少系统能量使用。本发明的另一实施例提出一种计算机可读存储媒体,其内容使非对称多处理器执行用于在多个处理器核心上进行自适应线程调度以减少系统能量的方法。线程调度器接收与所述多个核心相关联的泄漏电流信息。使用所述泄漏电流信息以在所述多个核心中的一者上调度线程以减少系统能量使用。对于所属领域的技术人员来说,本发明的其它实施例将通过以下具体实施方式
变得容易显而易见,其中作为说明展示并描述本发明的各种实施例。应认识到,本发明可用其它及不同的实施例体现且其若干细节能够具有在各种其它方面的修改,其全都不脱离本发明。因此,图式及具体实施方式
应被看作本质上为说明性的而非限制性的。


图1说明示范性无线通信系统;图2A说明功率对操作频率的曲线图,其说明针对示范性双处理器核心的在低温的情况下的特定处理⑵、电压(V)、温度(T)PVT环境;图2B说明功率对操作频率的曲线图,其说明针对图2A的双处理器核心的在高温的情况下的PVT环境;图3为说明示范性非对称多处理器芯片上系统的框图;图4A为说明示范性第一传感器电路的框图;图4B为说明示范性第二传感器电路的框图;图4C为说明示范性第三传感器电路的框图;图5为示范性芯片上传感器校准过程的流程图;图6A为示范性传感器轮询背景过程的流程图;图6B为部分地基于泄漏电流信息的示范性第一自适应线程调度过程的流程图;图7A说明功率对操作频率的曲线图,其说明针对示范性双处理器核心的在低温的情况下的处理⑵、电压(V)、温度(T)PVT环境;图7B说明功率对操作频率的曲线图,其说明针对图7A的示范性双处理器核心的在高温的情况下的PVT环境;图8为部分地基于泄漏电流信息的示范性第二自适应线程调度过程的流程图;及图9为用于根据各种传感器输出确定静态泄漏电流及动态功率的示范性传感器轮询过程的流程图。
具体实施例方式下文结合随附图式所阐述的具体实施方式
意在作为对本发明的各种示范性实施例的描述,且不意在表示可实践本发明的仅有实施例。出于提供对本发明的透彻理解的目的,具体实施方式
包括特定细节。然而,对于所属领域的技术人员应显而易见,可在不具有这些特定细节的情况下实践本发明。在一些例子中,以框图的形式展示众所周知的结构及组件以便避免混淆本发明的概念。可用例如 C、C++、JAVA 、Smalltalk、JavaScript 、Visual Basic 、TSQL、Perl 的高阶编程语言或以各种其它编程语言来撰写在根据本发明的教示执行操作时所操作的或用于根据本发明的教示执行操作的计算机程序代码或“程序代码”。也可用原生汇编语言直接撰写用于目标处理器架构的程序。原生组合程序使用机器级二进制指令的指令助记表示。如在本文中使用的存储于计算机可读存储媒体上的程序代码或程序指代机器语言代码,例如目标代码,其格式可由处理器理解。图1说明可有利地使用本发明的实施例的示范性无线通信系统100。出于说明的目的,图1展示三个远程单元120、130及150及两个基站140。图1还展示从基站140及远程单元120、130及150的前向链路信号180及从远程单元120、130及150到基站140的反向链路信号190。应认识到,常用无线通信系统可具有更多远程单元及基站。远程单元 120、130及150包括硬件组件、软件组件或两者(如由组件125A、125B及125C表示),其已经调适以体现本发明。举例来说,组件125A、125B及125C可包括传感器、处理器及自适应线程调度软件(如下文进一步论述)。在图1中,远程单元120展示为移动电话,远程单元130展示为便携型计算机,且远程单元150展示为无线本地环路系统中的固定位置远程单元。作为实例,所述远程单元可替代地为手机、寻呼机、对讲机、手持型个人通信系统(PCQ单元、例如个人数据助理的便携型数据单元,或例如仪表读取设备的固定位置数据单元。尽管图1说明根据本发明的教示的远程单元,但本发明不限于这些示范性所说明单元。本发明的实施例可合适地用于具有两个或两个以上处理器及传感器(可根据其确定静态泄漏电流及动态功率)的任何装置中(如下文进一步详细描述)。图2A说明以毫瓦(mW)为单位的功率204对以兆赫(MHz)为单位的操作频率206 的曲线图200,其说明针对示范性双处理器核心的在低温(TJ的情况下的处理(P)、电压 (V)、温度(T)PVIY环境。针对核心A的动态功率对频率(PvF)曲线208及针对核心B的 PvF曲线210分别始于功率点212及214处。功率点212及214分别为在PVIY环境下针对核心A及核心B的静态泄漏功率。确切地说,如由功率点212所指示,核心A具有比核心B 高的泄漏功率,但在超出频率F1的高频率下使用比核心B少的每操作动态功率。与核心A 相比,核心B具有较低泄漏功率(如由功率点214所指示),且在低于F1的较低频率下更有效。交叉点(PpF1) 220表示被视为用于取决于双核心的操作频率及PVT环境而将任务分配给核心A或核心B的交叉决策点。图2B说明功率2M对操作频率256的曲线图250,其说明针对图2A的双处理器核心的在高温(Th)的情况下的PVTh环境。针对核心A的动态PvF曲线258及针对核心B的PvF曲线260分别始于功率点262及264处。功率点262及264分别为在PVTh环境下针对核心A及核心B的静态泄漏功率,其中Th > IV。确切地说,如由功率点262所指示,核心A 具有比核心B高的泄漏功率,但在超出频率F2的高频率下使用比核心B小的每操作动态功率。与核心A相比,核心B具有较低泄漏功率(如由功率点264所指示)且在低于&的较低频率下更有效。交叉点(P2、F2) 270表示被视为用于取决于双核心的操作频率及PVT环境而将任务分配给核心A或核心B的另一决策点。曲线图200与250的比较指示,与曲线图250相关联的较高温度使交叉点(P2、 F2) 270与交叉点汜小)220相比处于较高功率电平,P2 > P1,且处于较低频率,F2 < F115对于由两个曲线图200及250表征的示范性双处理器核心来说,将通过将具有低于交叉频率
的选定操作频率的任务分配给核心B,且对于操作频率超出交叉点频率的选定任务将任务分配给核心A而大体上获得较低功率使用。可将图2A及图2B中评估的双核心设计成用于两种不同的制造工艺。举例来说, 可主要通过低电压阈值(Io-Vt)晶体管工艺来制造核心A以实现高性能,但以增加的泄漏电流为代价。可主要通过高阈值(hi-Vt)晶体管工艺来制造核心B以实现伴随低泄漏电流的良好性能。又,可通过hi-Vt晶体管及Io-Vt晶体管的混合(例如,在时序关键性路径电路中使用Io-Vt晶体管)来制造两个核心中的任一者。本发明的技术可应用于通过一个或一个以上工艺而制造的核心,所述一个或一个以上工艺包括上文所提出的制造设计中的任一者以及本发明的原理现在或将来可应用于的其它者。图3说明示范性非对称多处理器芯片上系统(SoC) 300。应注意,图3所示的特定配置为示范性的,且本发明的技术可应用于由多个芯片及具有比图3所示的频率及电压可控功率域多或少的频率及电压可控功率域的芯片组成的其它系统配置。示范性非对称多处理器SoC 300包括中央处理单元A (CPU-A) 304、CPU-B 306、共享存储器1 (SMEM-I) 308、 SMEM-2310、数字信号处理器A(DSP-A)312、DSP-B 314、控制器316、固定功能逻辑318及传感器320至326。放置传感器320至326以(例如)响应于关于非对称多处理器SoC 300 的交叉点信息而监视可影响各种核心(例如,CPU-A 304、CPU-B 306、DSP-A 312及DSP-B 314)上的任务指派及影响控制器316及固定功能逻辑318上的操作的条件。操作系统(OS) 调度器(例如,OS调度器30 可在多处理器系统中的处理器中的一者或一者以上上操作。 如下文更详细描述,所述调度器将基于多处理器系统跨越PVT操作空间的相对功率及性能曲线而对任务进行调度以在处理器上运行。图4A为说明示范性第一传感器电路400的框图。第一传感器电路400包括直接泄漏电流传感器404、数字转换器406及在输出410上输出泄漏电流值的接口端口 408。针对直接泄漏电流传感器404可使用各种类型的泄漏电流传感器。所述泄漏电流感测电路描述于D. H.金(D. H. Kim)、K.罗伊(K. Roy)、S.苏(S. Hsu)、R. K.克里斯纳姆士 (R. K. Krishnamurthy)及S.波卡(S. Borkar)的“用于测量90nm以下的产生中的工艺变化的裸片上 CMOS 泄漏电流传感器(An On-Die CMOS Leakage Current Sensor for Measuring Process Variation in Sub-90nm generations) ”(IEEE 2004VLSI 电路论坛技术论文摘要 (IEEE 2004 Symposium on VLSI Circuits digest of technical papers),第 250 页及第 251页,其以引用的方式并入本文中)中。基于所使用的泄漏电流传感器的类型,针对数字转换器406选择适当数字转换器。还在校准过程中利用输出410上的泄漏电流值(如下文中进一步详细描述)。可在芯片操作期间(例如,在特定电压及频率可控功率域处于闲置或低功率状态时,其中针对所述可控功率域的频率处于零赫兹(Hz))监视泄漏电流值。图4B为说明示范性第二传感器电路430的框图。第二传感器电路430包括环形振荡器434、频率计数器436、接口端口 438及输出440。环形振荡器434可通过在其所关联的可控功率域中所使用的晶体管而建构以确定相关联的可控功率域的泄漏电流。举例来说, 环形振荡器可通过可主要地用于CPU-A 304中的高阈值电压晶体管而建构,且在一频率下操作,根据所述频率可确定与CPU-A 304相关联的泄漏电流。环形振荡器输出435由振荡波形组成,其在固定测量周期期间在频率计数器436中经计数以确定代表泄漏电流的频率计数。频率计数由接口端口 438选择以供输出。在另一实施例中,可基于用于核心中的晶体管的类型而利用多个环形振荡器。举例来说,在通过低阈值电压晶体管与高阈值电压晶体管的组合而建构的核心中,可利用两个环形振荡器。一个环形振荡器是通过低阈值电压晶体管建构,且另一环形振荡器是通过高阈值电压晶体管建构。将测量及读取两个环形振荡器,从而提供关于相关联的核心的泄漏电流信息。在另一实施例中,第二传感器电路430的设计可大体上重复,但通过与用于确定泄漏电流信息及用以计量工艺变化的一组晶体管不同的一组晶体管而建构。图4C为说明示范性第三传感器电路470的框图。第三传感器电路470包括电压传感器474、温度传感器476、数字转换器478、接口端口 480及输出484。电压传感器474 及温度传感器476可针对可控功率域(例如,CPU-A 304)各自产生分别与电压及温度相关联的电压电平。两个传感器的输出电压电平在数字转换器478中转换成数字格式(例如, 使用模拟/数字转换器),且可根据所测量的传感器的类型及其位置而加标签。经转换的电压及温度值接着由接口端口 440选择以供输出。图5为关于芯片上传感器校准过程500的流程图。可用在多处理器OS的框架内操作的软件程序体现所述过程500,多处理器OS还可控制输出以调整测试配置中的环境温度。过程500包括设定在被校准的芯片外部的操作环境;读取芯片上传感器值;评估所读取传感器值;确定交叉决策点;及确定芯片或系统是否针对所期望的应用而操作。又,可在可不控制环境温度的产品系统测试期间运行过程500。在此状况下,校准过程从多个温度传感器对在测试时间的现有温度进行取样,而且将核心的所有可选择操作频率设定为零赫兹;比较多个温度传感器读数,以在处于可接受容差内的读数当中寻得平均温度;及相应地调整校准过程。又,可基于在产品操作条件(其在稍后系统使用时发生)期间获得的新读数而重新校准传感器。在框502处,针对例如图3的CPU-A 304的可控功率域设定初始环境温度、操作电压及操作频率。举例来说,可设定低温、低操作电压及零频率以确定(例如,可与图2A的功率点212相关联的)泄漏电流静态功率值。在框504处,对传感器进行轮询、根据所测量的传感器的类型对读数加标签且加标签到在测试中的可控功率域,且保存读数以用于稍后评估(如下文中更详细描述)。举例来说,读取图3的传感器320,加标签且保存读数。在框 506处,将传感器值与预期值(例如,最小及最大预期值)比较。在决策框508处,确定传感器值是否在可接受范围内。如果传感器值是在可接受范围内,则过程500进行到决策框 510。在决策框510处,确定是否校准所有选定的可控功率域。如果已校准所有选定的可控功率域,那么过程500进行到决策框512。在决策框512处,确定是否已评估所有可设定条件。如果已评估所有可设定条件,则传感器校准过程进行到框516。在框516处,针对适当核心组合、PVT特性及选定频率创建交叉决策点的表。在框518处,传感器校准过程结束, 且可启用系统操作。在被启用之后,图3的OS调度器305可使用各种经校准的传感器读数在各种核心上调度线程(如下文中更详细描述)。返回到决策框508,如果传感器值不在可接受范围内,那么过程500进行到框520。 在框520处,将可控功率域标记为具有不可接受传感器值。在决策框522处,确定系统是否仍可用于当前应用。如果系统仍可用于当前应用,则过程500进行到框524。在框5 处, 向OS调度器305通知硬件损耗。举例来说,在容错系统中,使一个CPU离线(off line)及断电对于系统操作可为可接受的。如果系统不可用于当前应用,则过程500进行到框526。 在决策框5 处,确定系统是否可用于其它应用,例如,不需要电池操作的桌上型系统。如果系统可用于其它应用,则过程500进行到框528。在框5 处,根据传感器值标记部件以用于分级(binning)。举例来说,可根据由传感器提供的泄漏电流信息的范围而对部件进行分级。如果系统不可用于其它应用,则过程500进行到框530。在框530处,向用户通知系统故障。返回到决策框510,如果确定尚未校准所有选定的可控功率域,则过程500进行到框530。在框530处,选择例如CPU-B 306的新的可控功率域以用于图3的传感器321的传感器校准。过程500返回到框502以针对所述新的可控功率域(在需要时)将环境温度、 操作电压及操作频率调整成与在初始可控功率域的传感器的校准中所利用的环境温度、操作电压及操作频率相当的设定。返回到决策框512,如果确定尚未评估所有可设定条件,则过程500进行到框534。 在框534处,标记待设定成新评估状态的条件,且过程500返回到框502以设定新条件。图6A为关于示范性传感器轮询背景过程600的流程图。过程600可用在多处理器OS的框架内操作的软件程序体现。在系统操作期间,(例如)在特定时间周期或在将任务指派给各种可控功率域之前对传感器进行轮询。在框504处,轮询传感器,将读数加标签到对应的可控功率域,且经保存以用于稍后评估。在决策框604处,确定是否需要更新任何交叉点。举例来说,环境温度可能快速改变以使便携型装置影响如通过图2A的曲线图200 及图2B的曲线图250所说明的交叉点。如果交叉点需要更新,则背景过程600进行到框 606。在框606处,更新适当交叉点。返回到决策框604,如果不存在需要更新的交叉点,那么背景过程600进行到决策框608。在决策框608处,确定是否到下一传感器轮询的时间。 如果到下一传感器轮询的时间,则背景过程600进行到框504。如果未到下一传感器轮询的时间,则背景过程600 —直等待到达到传感器轮询时间为止。在背景过程600处于操作中时,其它系统操作继续以满足产品操作要求。图6B为部分地基于泄漏电流信息的示范性第一自适应线程调度过程650的流程图。过程650可用在多处理器OS (例如,图3的OS调度器30 的框架内操作的软件程序体现。针对可将任务指派给例如图3的CPU-A 304及CPU-B 306的两个处理器核心中的一者的示范性状况来说明过程650。多处理器OS调度器或其类似者确定待指派的任务。在框604处,评估待指派的任务以确定用于运行所述任务的适当操作电压及频率。在框606 处,将任务的选定操作频率与可用于任务指派的可控功率域的交叉决策点值比较(作为用以确定哪一可控功率域将指派任务的输入中的一者)。在框608处,确定任务的选定频率是否小于适当交叉频率。如果任务的频率较小,则过程650进行到框610。在框610处,将任务指派给例如CPU-B 306的第一核心可控功率域。如果任务的频率大于或等于适当交叉频率,则过程650进行到框612。在框612处,将任务指派给例如CPU-A 304的第二核心可控功率域。在决策框614处,确定是否存在待指派的任何其它任务。如果存在待指派的其它任务,则过程650返回到框604。如果不存在待指派的其它任务,则过程650返回到调用例程。自适应线程调度过程可调节到两个以上核心。在三个或三个以上可控功率域的状况下,可在确定任务的指派时评估多个交叉点。图7A说明以毫瓦(mW)为单位的功率704对以兆赫(MHz)为单位的操作频率706 的曲线图700,其说明针对示范性双处理器核心的在低温(TJ的情况下的处理(P)、电压 (V)、温度(T) PVTl环境。针对核心A的动态功率对频率(PvF)曲线708及针对核心B的PvF 曲线710分别始于功率点712及714处。功率点712及714分别为在特定PVI;条件下针对核心A及核心B的静态泄漏功率。确切地说,如由功率点712所指示,核心A具有比核心 B高的为约25mW的泄漏功率,但在超出频率F1的高频率下使用比核心B小的每操作动态功率。与核心A相比,核心B具有为约IOmW的较低泄漏功率(如由功率点714所指示)且在低于F1的较低频率下更有效。交叉点(Pp F1) 720表示可视为用于取决于双核心的操作频率及PVT环境而将任务分配给核心A或核心B的交叉点。图7B说明功率7M对操作频率756的曲线图750,其说明针对图7A的示范性双处理器核心的在高温(Th)的情况下的PVTh环境。针对核心A的动态PvF曲线758及针对核心B的PvF曲线760分别始于功率点762及764处。功率点762及764分别为在PVTh条件下针对核心A及核心B的静态泄漏功率,其中TH> IV。确切地说,如由功率点762所指示, 核心A具有比核心B高的为约35mW的泄漏功率,但在超出频率F2的高频率下使用比核心B 小的每操作动态功率。核心B具有为约20mW的较低泄漏功率(如由功率点764所指示), 且在低于F2的较低频率下与核心A相比更有效。交叉点(P2、F2) 770表示可被视为用于取决于双核心的操作频率及PVT环境而将任务分配给核心A或核心B的另一决策点。作为一实例,待将特定任务分配给具有如在图7A中所说明的特性的两个处理器核心中的一者。所述特定任务需要任一核心上的频率X(Fx)满足要求。频率Fx还需要两个核心的最小核心电压源。在如在图7A中所说明的操作温度IY及频率Fx下,核心A将展现与点(Px,u,Fx) 722相关联的动态功率Px,u,且核心B展现与点(Ρχ,Μ,Fx) 724相关联的动态功率Px,^。对于此特定任务,核心A功率包含泄漏功率(Lu)加动态功率(PD,u),这等于(对于此实例)25mW+;35mW = 60mW。核心 B 功率等于 PL,B,L+PD,B,L = 10mff+40mff = 50mW。 基于此分析,应将此特定任务分配给核心B,尽管其超出交叉点720且具有高于核心A的动态功率(35mW)的动态功率分量GOmW)。在点712处的核心A的泄漏功率在确定待将此特定任务指派于何处方面作出显著功率贡献。在如在图7B中所说明的较高温度TH(TH > Tl)下重新考虑所述分析。在操作温度 Th及频率Fx下,核心A将展现与点(Px, A, H, Fx) 772相关联的动态功率Px, A, H,且核心B展现与点(PX,B,H,Fx) 774相关联的动态功率Px, B,H。对于此特定任务,核心A功率包含泄漏功率 (PL, α,Η)加动态功率(PD,A,H),其在Th下等于:35mW+45mW = 80mW。核心B功率等于Pl,b,h+Pd, B, H = 20mff+80mff = 100mW。基于此分析,应将此特定任务分配给核心Α。在较高温度下,核心B的动态功率分量在确定待将此特定任务指派于何处方面作出显著贡献。
基于如在图7A及图7B中说明的分析,可基于线性系统优化使用调度算法。举例来说,在温度“t”下的核心i的功率为Pi, t,其等于泄漏功率i, t)加动态功率(PD, i, t)。 所有核心的功率为P。。res,t =Σ Pi,t。动态功率取决于大体上由方程式(1)管理的核心供应电压(V)、操作频率(F)及切换电容(C)Pd = CV2F(1)其中V为操作电压;F为操作频率;且C为表示被评估的可控功率域的切换电容的常数。需要待分配给一核心的每一任务在针对所述核心的最小频率F(其由软件确定)下操作以便满足要求。还由软件确定供应电压以在提供足够功率以在指定频率F下操作核心的同时减少功率。切换电容由在产品发布之前的设计及制造工艺确定。因此,动态功率可为在无需传感器的情况下由操作系统调度器估算的经计算的值。由于泄漏功率强烈地取决于温度及工艺,所以使用传感器以将泄漏信息提供到调度器。通过基于传感器输入估算泄漏功率及计算在特定频率F及电压V下待分配任务的每一核心的动态功率,调度器可选择具有最低功率额定值的核心。通过利用自适应调度方法, 还可考虑到随着芯片老化而变化的泄漏电流的效应。又,作为容错机制,自适应调度方法可考虑到使泄漏电流增加超过可接受范围的任何芯片上故障。图8为部分地基于泄漏电流信息的示范性第二自适应线程调度过程800的流程图。过程800可用在多处理器OS (例如,图3的OS调度器30 的框架内操作的软件程序体现。已针对在考虑中的核心的操作频率F及电压V评估待指派给多个核心中的一者的任务。在框804处,计算处于所指派的频率F、电压V及指定切换值C下的核心的动态功率。 在框806处,读取与泄漏测量相关联的核心传感器。在框808处,根据传感器读数推断核心泄漏功率。在框810处,将推断出的泄漏功率加到动态功率以寻得核心功率。在决策框812 处,确定是否已计算出待分配此任务的核心的核心功率。如果尚未计算出待分配此任务的核心的功率,那么过程800返回到框804以评估另一核心。过程800继续直到已评估被考虑用于此任务指派的所有核心为止。一旦已评估被考虑用于此任务指派的核心的个别核心功率,则过程800进行到框814。在框814处,将任务指派给具有最低核心功率的核心。在决策框816处,确定是否存在待指派的更多任务。如果存在待指派的更多任务,则过程800 返回到框812。如果不存在待指派的更多任务,则过程800返回到调用例程。图9为用以根据各种传感器输出确定静态泄漏电流及动态功率的示范性传感器轮询过程900的流程图。过程900可用在多处理器OS的框架内操作的软件程序体现。系统过程启用框504以对传感器进行轮询。在框904处,读取例如图4C的电压传感器474的电压传感器。在框906处,读取例如图4C的温度传感器476的温度传感器。在框908处, 从例如图4B的频率计数器436的频率计数器读取频率计数值。在框910处,将所读取的传感器值转换成处理器可读取值,例如,代表所感测条件的数字值。将读数加标签到对应的可控功率域并保存。框910可(在硬件或软件控制下)个别地选择待读取、转换及加标签的传感器。泄漏电流可源于多种因素,例如,漏极到源极泄漏电流与栅极泄漏电流。泄漏电流的主要形式通常根据所使用的工艺技术而变化。在传统工艺中的泄漏电流的最大来源中的一者已为漏极到源极泄漏电流。如在L. T.克拉克(L T. Clark)、Μ·毛罗(Μ. Morrow)及W.布朗(W.Brown)的“用于低效待机功率的反向主体偏压及供应崩溃(Reverse-Body Bias and Supply Collapse for Low Effective Standby Power) ”( “IEEE 超大规模集成(VLSI)系统学报,,(IEEE Transactions on Very Large Scale Integration (VLSI) Systems),第 12 卷,第9期,2004年9月,其以引用的方式并入本文中)中所描述,可利用方程式2近似地计算漏极到源极泄漏电流(I。ff)τ _ ^iSTblO5⑵
1Off ~β其中Vt为阈值电压;S为根据方程式3确定的亚阈值电压摆动5 = —1η(10){1 + ^}(3)其中k为波兹曼常数(Boltzmarm constant) ;T为以开尔文(Kelvin)为单位的操作温度;q为基本电荷 ’Cd为耗尽层电容;且Cra为栅极氧化物电容,使得泄漏电流I。ff取决于在制造被评估的可控功率域的过程中所使用的温度及工艺。基于例如在图9的框504处提供的特定温度传感器读数且利用方程式2及3,可估计泄漏电流信息。泄漏电流也可基于先前校准(如关于图5的校准过程500所描述),其中可校准如在图9中的框908处所提供的频率计数值以用于泄漏电流测量。另外,由图9的框904提供的电压读数也可用于确定泄漏电流信息及确定或验证动态功率利用。可通过通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或经设计以执行本文中所描述的功能的其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路、元件及组件。通用处理器可为微处理器,但在替代例中,处理器可为任何常规处理器、控制器、微控制器或状态机。也可将处理器实施为计算组件的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或适合于所要应用的任何其它所述配置。结合本文中所揭示的实施例而描述的方法可直接用硬件、用由处理器执行的软件模块或用两者的组合体现。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPROM 存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、⑶-R0M,或此项技术中已知的任何其它形式的计算机可读存储媒体中。计算机可读存储媒体可耦合到处理器,使得处理器可从所述计算机可读存储媒体读取信息及将信息写入到所述计算机可读存储媒体。在替代例中,计算机可读存储媒体可与处理器成一体式。尽管在关于在多个核心上的自适应线程调度的说明性实施例的上下文中揭示本发明,但应认识到,所属领域的技术人员可使用与上文论述及所附权利要求书一致的各种各样的实施方案。
权利要求
1.一种用于在多个核心上进行自适应线程调度以减少系统能量的方法,所述方法包含在线程调度器处接收与所述多个核心相关联的泄漏电流信息;以及使用所述泄漏电流信息以在所述多个核心中的一者上调度线程以减少系统能量使用。
2.根据权利要求1所述的方法,其进一步包含 读取所述多个核心中的多个直接泄漏电流传感器以确定与所述多个核心相关联的所述泄漏电流信息。
3.根据权利要求1所述的方法,其进一步包含读取多个温度传感器以确定与对应核心相关联的操作温度,且基于所述操作温度及与所述核心相关联的预定工艺常数,计算与所述多个核心相关联的所述泄漏电流信息。
4.根据权利要求3所述的方法,其中根据/(#来计算所述泄漏电流信息,其中JrTΓI。ff为所述泄漏电流信息;vt为阈值电压;S为根据S =+ 的亚阈值电压摆动,其中k为波兹曼常数;T为以开尔文为单位的所述操作温度;q为基本电荷;Cd为耗尽层电容;且Cox为栅极氧化物电容,且Vt、k、q、Cd及Cra为所述预定工艺常数。
5.根据权利要求1所述的方法,其进一步包含读取所述多个核心中的多个频率传感器,其中所述频率传感器中的至少一者为通过在相关联的核心中利用的晶体管而建构的环形振荡器,其中测量且读取所述环形振荡器的操作频率以确定所述相关联的核心的所述泄漏电流信息。
6.根据权利要求1所述的方法,其中在所述多个核心中的一者上调度线程包含 确定与所述多个核心相关联的至少一个交叉频率;以及在所述多个核心中的在较低所指派频率下具有比所述多个核心中的其它核心低的泄漏功率及高的效率的一个核心上调度所述线程。
7.根据权利要求1所述的方法,其中在所述多个核心中的一者上调度线程包含 针对所述待分配的线程计算处于所指派的频率及电压下的所述多个核心的动态功率;基于所述泄漏电流信息确定所述多个核心的泄漏功率;以及将所述线程指派给具有最低核心功率的核心。
8.根据权利要求1所述的方法,其进一步包含基于在特定环境温度下的传感器读数与预期传感器值的比较而校准用以提供与所述多个核心相关联的泄漏电流信息的芯片上传感器。
9.根据权利要求8所述的方法,其进一步包含确定传感器读数不满足当前应用的预期传感器值,但确实满足另一应用的预期传感器值;以及对部件进行分级以供在其它应用中使用。
10.根据权利要求8所述的方法,其中通过读取多个温度传感器来确定所述特定环境温度,其中将所述核心的操作频率设定为零赫兹以在指定温度范围内寻得选出的温度。
11.一种用于在多个核心上进行自适应线程调度以减少系统能量的设备,所述设备包含与所述多个核心相关联以用于提供泄漏电流信息的多个传感器;以及运行自适应线程调度器的多个核心,每一核心取决于待指派给所述核心的任务而具有所指派的操作频率及源电压电平,所述自适应线程调度器使用所述泄漏电流信息以在所述多个核心中的一者上调度线程以减少系统能量使用。
12.根据权利要求11所述的设备,所述多个传感器包括提供泄漏电流的直接读取以提供所述泄漏电流信息的至少一个传感器。
13.根据权利要求11所述的设备,其中所述多个传感器包括为通过在相关联的核心中利用的晶体管而建构的环形振荡器的至少一个传感器,其中所述环形振荡器的操作频率经测量及读取以确定所述相关联的核心的所述泄漏电流信息。
14.一种计算机可读存储媒体,其内容使非对称多处理器执行用于在多个处理器核心上进行自适应线程调度以减少系统能量的方法,所述计算机可读存储媒体具有用以执行以下步骤的程序在线程调度器处接收与所述多个核心相关联的泄漏电流信息;以及使用所述泄漏电流信息以在所述多个核心中的一者上调度线程以减少系统能量使用。
15.根据权利要求14所述的计算机可读存储媒体,其进一步包含读取所述多个核心中的多个直接泄漏电流传感器以确定与所述多个核心相关联的所述泄漏电流信息。
16.根据权利要求14所述的计算机可读存储媒体,其进一步包含读取多个温度传感器以确定与对应核心相关联的操作温度,且基于所述操作温度及与所述核心相关联的预定工艺常数,计算与所述多个核心相关联的所述泄漏电流信息。
17.根据权利要求14所述的计算机可读存储媒体,其进一步包含读取所述多个核心中的多个频率传感器,其中所述频率传感器中的至少一者为通过在相关联的核心中利用的晶体管而建构的环形振荡器,其中所述环形振荡器的操作频率经测量及读取以确定所述相关联的核心的所述泄漏电流信息。
18.根据权利要求14所述的计算机可读存储媒体,其中在所述多个核心中的一者上调度线程包含针对所述待分配的线程计算处于所指派的频率及电压下的所述多个核心的动态功率;基于所述泄漏电流信息确定所述多个核心的泄漏功率;以及将所述线程指派给具有最低核心功率的核心。
19.根据权利要求14所述的计算机可读存储媒体,其进一步包含基于在特定环境温度下的传感器读数与预期传感器值的比较而校准用以提供与所述多个核心相关联的泄漏电流信息的芯片上传感器。
20.根据权利要求19所述的计算机可读存储媒体,其中所述特定环境温度是通过读取多个温度传感器而确定,其中所述核心的操作频率被设定为零赫兹以在指定温度范围内寻得选出的温度。
全文摘要
本发明描述用于在多个核心上进行自适应线程调度以减少系统能量的技术。在一个实施例中,线程调度器接收与所述多个核心相关联的泄漏电流信息。使用所述泄漏电流信息以在所述多个核心中的一者上调度线程以减少系统能量使用。还描述传感器的芯片上校准。
文档编号G06F9/50GK102246117SQ200980149338
公开日2011年11月16日 申请日期2009年12月11日 优先权日2008年12月11日
发明者迈克尔·威廉·莫罗, 马尼什·加尔吉 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1