用于使用处理器中的核的热裕量的系统、方法和设备与流程

文档序号:15884164发布日期:2018-11-09 18:31阅读:412来源:国知局
用于使用处理器中的核的热裕量的系统、方法和设备与流程

本公开涉及处理器中的功率控制,并且更具体地涉及动态调整核功率以减小热设计功率(tdp)与可允许的热负荷之间的热裕量。

附图简述

图1是例示出根据本文公开的实施例的处理器热设计的示意图。

图2是例示出根据本文公开的实施例的被限制为tdp的处理器的图。

图3是例示出根据本文公开的实施例的在被限制为tdp时处理器热裕量的图。

图4是例示出根据本文公开的实施例的控制器实现的组件的图。

图5是例示出根据本文公开的实施例的用于动态温度控制的方法的框图。

图6是例示出根据本文公开的实施例的多核处理器的图。

图7是例示出根据本文公开的实施例的计算机系统的图。

图8是例示出根据本文公开的实施例的设计的模拟、仿真和制造的表示的图。

具体实施方式

以下提供根据本公开的实施例的系统和方法的详细描述。尽管描述了数个实施例,但应该理解的是,本公开不限于任何一个实施例,而是替代地包括许多替代、修改和等同物。此外,尽管在以下描述中阐述了许多具体细节以便提供对本文公开的实施例的透彻理解,但是可以在没有这些细节中的一些或全部的情况下实践一些实施例。此外,出于清楚的目的,相关技术中已知的某些技术材料未被详细描述以避免不必要地模糊本公开。

公开了实现对核功率的动态调整以减小热设计功率(tdp)与可允许的热负荷之间的热裕量的技术、装置和方法。例如,通过明确地直接关注核温度,每核闭环温度控制器(pcltc)可移除由功率1级策略(pl1,一种在持续负荷下针对处理器限定频率和/或功率的策略)引发的保守性,从而当热系统中存在裕量时,允许提高处理器性能。

在一个实施例中,pcltc策略的目标是计算功率预算,使得处理器温度处于期望设定点温度(tsp),该tsp略低于处理器被节流的温度(t_trip(t_断路))。以这种方式,限定了最大可允许的处理器性能。

通过从pl1迁移至动态温度控制,中央处理单元(cpu)用户可在通常存在的各种条件(例如,低于tdp的温度、不同的核热耗散等)下从增强的性能受益。此外,pcltc可允许愿意设计(或已安装)具有改进的冷却能力的热系统或数据中心的客户从此类投资得到直接的性能收益。

某些服务器客户(包括云服务提供商)可能对最大性能预期敏感。因此,涡轮(turbo)功能(或超过稳态tdp稳定频率来运行处理器)是非常有价值的特征。然而,涡轮的性能可能受到现有热保护特征的不必要地限制,这些热保护特征基于功率而不是温度测量来限制在涡轮上花费的时间量。

在一些实施例中,cpu受最大电压、电流和温度可靠性约束的限制。电压约束可通过熔丝设置来管理。电流约束可通过在功率控制器固件、硬件和/或软件(例如,pcode)中实现的iccmax策略来管理。在一些实施例中,服务器处理器可以通过热设置(例如,prochot)和pl1策略特征的组合来维持对最大温度约束的顺应性。对这些特征的限定(prochot和pl1)描述如下。

对于prochot示例,如果处理器超过最大可允许的结温度,则表示已发生灾难性热事件,并且pcode中实现的prochot特征可将处理器的电压和频率激进地节流至功率设置(pm)。这可能是非常不期望的事件,因为其可能会造成严重的性能损失。prochot被断言的温度在本文中被称为t_trip。

对于pl1示例,平台热解决方案被设计成处理器功率的tdp规范。在指定的最大局部环境温度下,参考热解决方案将提供足够的冷却,使得如果cpu功率在长时间段内维持在tdp,则cpu温度将处于t_tdp,该t_tdp低于t_trip(其是将参与prochot的结温度)。

pl1通过动态电压和频率缩放(dvfs)将平均功率维持在tdp来隐含地实现对温度约束的顺应性。这会使性能持续低下,因为不必要地选择了较低的电压/频率(例如,当环境温度低于tdp设计时等)。每核闭环热控制器(pcltc)可取代pl1环并提供显式温度控制。显式温度控制可利用热系统中的裕量(例如,在tdp与实际温度之间)来提供比单独用pl1大的跨工作负荷的可允许性能。通过利用线性系统理论和动态建模,闭环控制器可被调谐至附加性能结果,并进一步使保守性最小化。

然而,某些相关技术——ratl(运行平均温度限制)——不被用于限定最大可允许的瞬时功率预算。相反,ratl被用于限定替代的瞬时可允许的温度结最大温度(tjmax)。ratl被用于改变处理器节流所在的tjmax。ratl允许结温度(tj)在短持续时间内超过tjmax,只要指数加权移动平均(ewma)计算的tj_average(tj_平均)低于tj_max。

图1示出了处理器热设计,包括热关系。衬底118被耦合至硅管芯116和集成热扩散器114。散热器112被耦合至集成热扩散器114。在硅管芯116与集成热扩散器114之间的边界处测量结温度(tj)110。在集成热扩散器114处测量壳温度(tcase(t壳))108。在散热器112处或附近测量环境温度(tla)102。壳至环境热阻(psi_ca)104量化参考散热器的热阻。结至壳热阻(psi_jc)106量化从硅管芯116至散热器112的热阻。

为了例示热裕量如何在系统中呈现其本身,示出相关的稳态热关系:

t_tdp=(p_tdp*psi_jc)+t_case_max(式1)

t_tdp是稳态tdp条件下的稳态结温度(℃)(如通过跨管芯的最大温度来测量的)。p_tdp是指定的封装处理器热设计功率(以瓦特计)。psi_jc106是结至壳热阻(℃/瓦特)。t_case_max(t_壳_最大)是处理器封装的集成热扩散器的顶部中心处的最大温度(即,在稳态tdp下)。

t_case_max=(p_tdp*psi_ca)+t_la_max(式2)

psi_ca104是量化参考散热器的热阻的壳至环境热阻(℃/瓦特)。t_la_max(t_la_最大)是指定的最大局部环境温度(以℃计)。

在一些实施例中,所需的psi_ca104被指定给原始设备制造商(oem)以设计散热器。通过此规范,可将持续tdp功率设计成不导致热断路。在上述假设下,保持以下关系:

t_tdp<t_trip(式3)

由于允许处理器以消耗比tdp多的功率的涡轮频率运行,因此pl1可被用于确保相对长间隔(例如,5秒)内的平均处理器功率等于tdp。使用此设计,在热解决方案失败的情形中,处理器可能会超过t_trip。

虽然pl1可以确保式3在指定条件下保持,但其也会强加显著的保守性(例如,热裕量)。在以下条件中的任一条件(或其组合)下,t_tdp和t_trip之间的裕量可能是显著的:(1)局部环境温度低于t_la_max;(2)psi_ca小于指定值(比参考设计好的热解决方案);(3)由于比式2中假设的较不激进的工作负荷特定功率映射,psi_jc小于指定值;以及(4)给定核的温度小于封装温度。

图2和3示出运行工作负荷的处理器的图形示例,其中pl1将性能限制为tdp水平(图2),而最大管芯温度保持低于温度限制(图3)。此热裕量表示针对cpu的性能机会。在图2中,第一核功率202和第二核功率204在tdp附近运行,如由pl1限制。这提供了如图3所示的热裕量306。核304的温度低于温度限制302(例如,t_trip)。

例如,在核的温度低于封装温度(例如,从上数第4个)的情况下,存在交叉管芯热梯度。因此,每个核可处于不同的温度。即使在一个给定核接近断路点时,其他核可具有来自断路点的热裕量。因此,当在每个核的基础上实现时,机会更大。

可实现pcltc策略来与现有功率管理策略协同工作。例如,pcltc可为p状态选择提供最大可允许的功率预算,但可在对照其他pm策略(例如,硬件功率管理(hwpm))进行比较之后选择实际p状态。

存在可确定最大p状态值的系统。例如,如用于pl1的运行平均算法可被应用于最大封装tj。然而,此类系统将提供什么性能保证(即,其将允许多少温度误差)是未知的。闭环性能可设置t_sp与t_trip之间的差异(例如,1度、2度)。动态温度控制(dtc)设定值与断路点之间的差异越小,可能的附加性能就越高。

可通过基于动态模型和用于计算闭环性能的方法来开发控制器、以及估计未建模动力学会如何降低性能来找到用于实现pcltc的方法。例如,可通过以下操作开发控制器设计。可在核的功率与温度之间开发热动力学的模型。可做出在热模型中引入不确定性(例如,环境温度、对流冷却、泄漏温度等)的假设。基于热模型,可设计控制器(例如,pid)。可跨各种工作负荷和环境条件(例如,模拟、经验实验等)验证控制器性能,这些工作负荷和环境条件可以或可以不被显式地建模。如有必要,可重访热模型和控制器设计,以通过解决模型中的已知不确定性(例如,不同环境温度变化;由风扇速度变化引起的不同的对流热传递;非线性核泄漏功率;和/或核至核的热耦合)来实现性能。可开发高级模型/控制器来解决可能将dtc性能限制在期望性能以下的不确定性。

例如,控制器(诸如,用于集成芯片)可被构造成如图4所示。设定点402(诸如,温度设定点t_node_sp)可被输入至控制器中(诸如,通过提供p状态的功率接口)。可在框404中比较设定点402和差异。控制器406(诸如,mimo控制器、pid控制器、pd控制器、pi控制器等)可接收核温度和电压。可在框408中实现核电压限制。框410可从限制接收输入并基于电压估计核功率。块412可获取电压至功率阶段410的输出和活动比率干扰值418。泄漏功率421可与来自框412的积(表示动态功率)进行求和。在框414中,来自框413的和可被用于将功率转换成温度。在框422中,可估计来自框414的温度输出并将该温度输出与标称功率420组合。系统可使用框422的输出来设置和测量实际温度416(诸如,通过测量接口)。

例如,给定核之间的热耦合的存在,多输入多输出控制器设计与解耦的(分开的)单输入单输出控制器(例如,pid)相比将提供益处。系统还可防止可被解决的不确定性,诸如取决于电压和温度的泄漏功率和/或工作负荷活动比率。

在所示实施例中,mimo控制器在状态空间格式中的格式为:

y=cx+du

其中x是(诸)核温度,u是核温度误差,而y是(诸)核电压。

在一个实施例中,可使用以下伪代码将控制器实现于pcode中。可在pcode的每次循环迭代中运行以下代码。为简单起见,假设是pi控制器结构。对变量名称的附加“1”用于指定“核1”,并且将为跨管芯的所有核复制该附加。

计算自上一样本/控制更新以来的时间。如果超出容限,则设置标志位。

基于以下等式为每个核计算温度误差:

error1=setpoint–t1(误差1=设定点–t1)

计算有限样本时间窗口上的误差积分。

如果需要防止积分器饱和,则将积分和限制为预定最大值。

计算控制器输出。例如:

pcontrol1=kp*error1+ki*integralsum1

(p控制1=kp*误差1+ki*积分和1)

通过假设电压和经测量温度的标称(保守)假设,计算温度相关的泄漏的估计。可使用以下关系:

pleak=v1*io1exp^(u1(vref–v))exp^(u2(tref-t))

(p泄露=v1*io1exp^(u1(vref–v))exp^(u2(tref-t)))

基于先前样本的平均来计算活动比率(ar)的估计。可使用先前的样品泄漏和动态功率。

pdyn1=ptotal1–pleak1(pdyn1=p总1–p泄露1)

ar=(cdyn*v1^2*freq1)/pdyn1

通过假设上文计算的活动比率,针对剩余动态功率来计算相关联p状态电压。

从电压计算选择相关联p状态。

应该认识到,本文描述的操作可无序、并行、有序等地执行。给定实施例的示例,其可按次序描述操作以在清楚方面予以帮助。然而,其他次序是可能的。

图5是例示出用于动态温度控制的方法500的框图。可通过包括结合图1、4、6和7描述的那些系统的系统来实现方法500。例如,在框502中,功率单元可测量核的温度。在框504中,功率单元可确定可允许的热负荷。在框506中,功率单元可确定温度相关的泄漏。在框508中,功率单元可至少部分地基于活动比率、温度相关的泄漏和可用的总功率来计算可用功率。在框510中,功率单元可至少部分地基于可用功率来确定p状态电压。在框512中,功率单元可选择针对该核的p状态。

如本文中所使用的,术语“电路系统”可指代包括专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的、或组)和/或存储器(共享的、专用的、或组)、组合逻辑电路和/或提供所描述功能的其他合适的硬件组件,或者是以上组件的部分。在一些实施例中,电路系统可在一个或多个软件或固件模块中实现,或者与电路相关联的功能可由一个或多个软件或固件模块实现。在一些实施例中,电路系统可包括能在硬件中至少部分地操作的逻辑。

贯穿本公开,附图标记的带连字符号的形式是指元件的特定实例,而附图标记的未带连字符号的形式一般地或共同地指代元件。因此,小部件(widget)12-1指的是小部件类的实例,其可被统称为小部件12,并且其中的任何一个一般可被称为小部件12。

图6例示出与至少一个实施例结合使用的多核处理器。在至少一个实施例中,处理器包括核区域620和非核622。在一些实施例中,核区域620包括多个处理核602,但是所公开的功能可适用于多处理器系统中的单核处理器。在一些实施例中,处理器601包括第一处理核602-1,第二处理核602-2等,直到第n处理核602-n。

在一些实施例中,处理核602包括提供整体功能的不同方面的子元件或群集。在一些实施例中,处理核602包括前端604、执行流水线606和核外围628。核外围628可包括第一级(l1)数据高速缓存608、c6存储630和高级可编程中断控制器(apic)632。在至少一个实施例中,前端604可操作用于从指令高速缓存(未描绘出)取出指令并调度所取出指令以供执行。在一些实施例中,执行流水线606结合寄存器文件(未描绘出)和l1数据高速缓存608来解码并执行各种数学的、逻辑的存储器访问和流控制指令。因此,在一些实施例中,前端604可负责确保稳定的指令流被馈送至执行流水线606,而执行流水线606可负责执行指令和处理结果。在一些实施例中,执行流水线606可包括并行的两个或更多个算术流水线、并行的两个或更多个存储器访问或加载/存储流水线、以及两个或更多个流控制或分支流水线。在至少一个实施例中,执行流水线606可进一步包括一个或多个浮点流水线。在一些实施例中,执行流水线606可包括用于无序地执行指令、推测性地执行指令或两者的寄存器和逻辑资源。超线程核是能够并行执行两个或更多指令的核。核的每个执行流水线606被称为超线程。超线程可作为逻辑核来暴露给操作系统。

核外围628可包括支持前端604和执行流水线606(包括管理存储和中断)的逻辑。核外围628可包括l1数据高速缓存608、c6存储630和高级可编程中断控制器(apic)632。当处理核602转变至低功率状态(诸如,c6状态)时,c6存储630可存储处理核602的上下文(或状态)。外围控制器(例如,apic632)可为处理核602管理中断,包括标识哪些中断应用于相关联的处理核602以及管理可被用于标识相关联核的apicid。

在至少一个实施例中,在执行存储器访问指令期间,执行流水线606试图通过访问驻留在高速缓存存储器子系统的最低级高速缓存存储器中的可应用存储器地址的副本来执行指令,该高速缓存存储器子系统可包括以分层配置布置的两个或更多个高速缓存存储器。在至少一个实施例中,高速缓存存储器子系统包括l1数据高速缓存608和非核622中的末级高速缓存(llc)618。在至少一个实施例中,高速缓存存储器子系统的其他元件可包括结合前端604和一个或多个每核中间高速缓存(未示出)来操作的每核指令高速缓存(未描绘出)。在至少一个实施例中,用于处理器601的高速缓存存储器子系统包括每个核的l1数据和指令高速缓存、每个核的包括指令和数据两者的中间或l2高速缓存存储器、以及包括指令和数据且在多个处理核602之间共享的llc618。在一些实施例中,如果存储器访问指令在l1数据高速缓存608中未命中,则在高速缓存存储器子系统访问各种高速缓存存储器直到找到可应用存储器地址的副本时,可应用程序或线程的执行可能停止或减慢。

在至少一个实施例中,处理器601、第一处理核602-1、第二处理核602-2和处理核602-n经由交叉开关612进行通信,该交叉开关612可支持数据排队、点对点协议和多核接口。处理器601的其他实施例可采用共享总线互连或者直接核到核互连和协议。在至少一个实施例中,交叉开关612用作将处理核602与llc618互连的非核控制器。在一些实施例中,非核622包括高速缓存控制器617,该高速缓存控制器617用于实现高速缓存一致性策略,以及结合存储器控制器(未描绘出)来维持系统存储器(未描绘出)与各种高速缓存存储器之间的一致性。

在至少一个实施例中,功率控制单元(pcu)624包括放置控制器634。放置控制器634可监视处理核602的工作负荷并确定哪些工作可被移动至不同的核以提高效率。可在热输出、功率使用和/或完成的工作中测量效率。例如,能够通过移动核之间的由于管芯内变化(更低的热输出、降低的功率使用、寿命使用管理或执行更多工作)而不同的线程来提高效率。可通过维持核的低电压操作来提高效率,而通过不提供高于阈值的工作负荷(即,移动核之间的线程以防止核在阈值之上操作,这也被称为对核“加压力”)来维持核的低电压操作。可通过将多个线程组合在单个超线程核上来提高效率,这节省了多核开销的功率。可通过将线程放置在物理地分开以实现处理器管芯上的较大热扩散的核上来提高效率。可通过扩散热量来提高效率,而通过将线程按顺序从物理处理器移动至物理处理器以加热处理器管芯的不同部分来扩散热量。可通过在指令将不使用失效算术单元时使用具有该失效算术单元的核和/或当指令将使用失效算术单元时在核之间迁移线程来提高效率。可通过执行用于寿命使用管理和/或热管理的负荷平衡来提高效率。

在一些实施例中,随着核被使用和/或被用于执行大的工作负荷,核的效率降低。效率降低可能是由于较大的操作电压和/或较大的热输出。在一些实施例中,可管理核的寿命使用,并且在核之间转变工作负荷用于扩展核的寿命使用。在一个实施例中,处理器可报告比实际上在处理器上可用的核计数低的核计数。工作负荷可在核之间扩展以增加核的整体寿命和效率,超过在没有额外的未报告的核的情形下将是可能的核的整体寿命和效率。在一些实施例中,可从核转离线程以隔离该核。被隔离的核可被测试和/或确定核的性能特性。在一个实施例中,可结合虚拟机管理器方案来使用核隔离。在其他实施例中,被隔离的核可被用于支持其他专用的、隐藏的执行布置。

在一些实施例中,pcu624可决定核与可用超线程资源之中的线程放置。逻辑处理器可被枚举至os。然而,逻辑处理器的数量可少于处理器中存在的物理核和/或超线程的数量(即,可存在比枚举至os的处理器资源多的处理器资源)。os在对其可见的逻辑处理器上布置工作,并且处理器(例如,pcu624)可在后续时间将线程迁移至不同的资源。例如,pcu624可发起节省核的上下文、将上下文重新存储至不同的核以及将先前核的本地apicid重定向至新核的序列。此迁移可在核或线程级发生。替代地,硬件可通过操作系统接口626向os提供迁移暗示,并且os可将工作从一个核或线程移动至另一个。

在至少一个实施例中,除处理核602之外,核区域620可包括用于每个处理核602的电压调节器/时钟发生器(vrcg)电路614。在一些实施例中,结合pcu624生成的并且提供给每个处理核602的每核供给电压信号和时钟频率信号,vrcg电路614通过将可应用供给电压信号和时钟频率信号指示的功率状态应用于可应用处理核602以及应用于非核622来支持每核功率状态。

在一些实施例中,当第二处理核602-2的性能特性使得第二处理核602-2比第一处理核602-1更好地适于达到期望的效率目标时,pcu624进一步操作用于为执行特定线程选择处理核602以及将线程和其对应的性能目标或上下文信息从第一核(例如,第一处理核602-1)迁移至第二核(例如,第二处理核602-2)。参见例如图2和3来得到对迁移的更详细的描述。

在一些实施例中,处理器601可包括对核的混合分类,除处理核602之外,这些核包括图形核和其他类型的核逻辑。在这些混合核实施例中,pcu624不仅为处理核602,还为核区域620中的其他类型的核元件确定最佳的或期望的功率状态。类似地,在至少一个实施例中,处理器601包括为非核622提供功率状态的vrcg电路614-u,并且在此实施例中,pcu624可为非核622确定最佳的或优选的功率状态。在一些实施例中,处理器601支持用于每个处理核602、核区域620中的任何其他类型的核、以及非核622的个性化功率状态。其他实施例可支持用于整个核区域620的一个功率状态以及用于非核622的一个功率状态。

pcu624还可包括操作系统接口626。在一些实施例中,pcu624可通过操作系统接口626向操作系统提供用于工作放置或迁移的推荐。操作系统随后可执行核之间的线程迁移。例如,操作系统可能不具有足够的信息来识别出两个逻辑处理器实际上与一个超线程核相关联。pcu624可向操作系统推荐在两个逻辑处理器上合并两个线程,这可消除多核开销。

实施例可在许多不同平台中实现。图7例示出结合至少一个实施例使用的计算机系统700。在至少一个实施例中,处理器系统的处理器、存储器、和输入/输出设备通过多个点对点(p-p)接口互连,如将进一步详细描述的那样。然而,在其他实施例中,处理器系统可采用不同的总线架构,诸如前端总线、多分支总线、和/或另一实现。尽管为了描述清楚而在图7中示出一处理器,但在各种实施例中,可使用所例示架构的元件来采用不同数量的处理器。

在至少一个实施例中,系统700是点对点互连系统且包括处理器701。虽然在一些实施例中系统700可仅包括单个处理器,但在其他实施例中,系统700可支持多个处理器。在至少一个实施例中,处理器701是多核处理器,包括第一处理核702-1和第二处理核702-2。注意,除处理核702之外,处理器701的其他元件可被称为非核723,而处理核702还可被称为核区域721。在不同的实施例中,特定处理器中可存在不同数量的核。在至少一个实施例中,处理核702可包括提供整体功能的不同方面的多个子元件(图7中未示出),也称为群集。在一些实施例中,处理核702可各自包括能包含一个或多个级别的高速缓存存储器的存储器群集(图7中未示出)。在一些实施例中,处理核702中的其他群集(图7中未示出)可包括前端群集和执行流水线群集。在至少一个实施例中,处理核702可包括l1数据高速缓存。在一些实施例中,非核723可包括交叉开关712、llc718、存储器控制器(mc)77、pcu724和p-p接口776。在一些实施例中,pcu724可被用于基于管芯上的每个核的个体特性和任务需求来选择特定核。

在特定实施例中,处理器701内的处理核702没有配备彼此通信的直接装置,而是经由交叉开关712进行通信,交叉开关712可包括智能功能,诸如高速缓存控制、数据排队、p-p协议、以及多核对接。在一些实施例中,交叉开关712因此可表示智能非核控制器,该智能非核控制器将处理核702与mc772、llc718和p-p接口776以及其他元件互连。具体而言,为了改进此类架构中的性能,在一些实施例中,交叉开关712内的高速缓存控制器功能可实现对包括llc718和处理核702中存在的一个或多个高速缓存的高速缓存层级内的数据的选择性高速缓存。在至少一个实施例中,交叉开关712被称为全局队列。

在至少一个实施例中,llc718可分别被耦合至一对处理核702。在一些实施例中,llc718可由第一处理核702-1和第二处理核702-2共享。在一些实施例中,可完全共享llc718,使得处理核702中的任何单一处理核可填充或访问llc718的完整存储容量。另外,在一些实施例中,mc772可经由存储器接口782提供处理器701对存储器732的直接访问。在一些实施例中,存储器732可以是双倍数据速率(ddr)型动态随机存取存储器(dram),同时存储器接口782和mc772符合ddr接口规范。在至少一个实施例中,存储器732可表示一组存储器接口(或插槽),这些接口(或插槽)可用用于期望dram容量的对应存储器电路来填充。

在一些实施例中,处理器701还可与系统700的其他元件(诸如,近集线器790和远集线器719)通信,这些其他元件也被统称为支持处理器701的芯片组。在至少一个实施例中,处理器701可使用p-p接口776来经由互连链路752与近集线器790通信。在某些实施例中,使用英特尔快速路径互连(quickpathinterconnect)架构来实现p-p接口776、794和互连链路752。在至少一个实施例中,近集线器790包括用于将近集线器790与第一总线716耦合的接口792,第一总线716可支持与对应总线设备(诸如,图形738和/或其他总线设备)的高性能i/o。在一些实施例中,图形738可表示向显示设备(图7中未示出)输出的高性能图形引擎。在至少一个实施例中,第一总线716是外围组件互连(pci)总线,诸如pci快速(pcie)总线和/或另一计算机扩展总线。在一些实施例中,近集线器790还可经由互连链路756在接口796处耦合至远集线器719。在某些实施例中,接口796被称为南桥。在一些实施例中,远集线器719可为各种计算机系统外围设备和接口提供i/o互连,并且可提供与传统计算机系统外围设备和接口的后向兼容性。因此,在至少一个实施例中,远集线器719提供网络接口730和音频i/o734,以及至第二总线720、第三总线722和第四总线721的接口,如将进一步详细描述的那样。

在一些实施例中,第二总线720可支持用于具有i/o设备712和触摸屏控制器714的系统700的扩展功能,并且可以是pci型计算机总线。在至少一个实施例中,第三总线722可以是用于终端用户消费者设备的外围总线,该终端用户消费者设备由桌面设备725和通信设备726表示,其可包括各种类型的键盘、计算机鼠标、通信设备、数据存储设备、总线扩展设备等。在某些实施例中,第三总线722表示通用串行总线(usb)或类似的外围互连总线。在一些实施例中,第四总线721可表示用于连接大容量存储设备(诸如,硬盘驱动器、光盘驱动器和磁盘阵列)的计算机接口总线,这些大容量存储设备一般通过可由处理器701执行的永久存储器728来表示。

在至少一个实施例中,系统700合并促进手持或平板类型操作的各种特征以及促进膝上型或台式操作的其他特征。另外,在一些实施例中,系统700包括协作以激进地保存功率同时减少与传统功率保存性能目标相关联的等待时间的特征。

在至少一个实施例中,系统700包括可被完全或部分地存储在永久存储器728中的操作系统740。在一些实施例中,操作系统740可包括在不同程度上暴露系统700的各种硬件和软件特征的各种模块、应用编程接口等。在至少一个实施例中,系统700包括传感器应用编程接口(api)742、恢复模块744、连接模块746以及触摸屏用户界面748。在一些实施例中,系统700还可包括各种硬件/固件特征,包括电容式或电阻式触摸屏控制器714和第二永久存储源,诸如固态驱动器(ssd)750。

在一些实施例中,传感器api742向可被包括在系统700中的一个或多个传感器(未描绘出)提供应用程序访问。在一些实施例中,系统700可具有的传感器包括加速度计、全球定位系统(gps)设备、陀螺仪、倾斜计和光传感器。在一些实施例中,恢复模块744可被实现为软件,该软件在被执行时执行用于在将系统700从功率保存性能目标转变至操作性能目标时减少等待时间的操作。在至少一个实施例中,恢复模块744可结合ssd750来工作,以减少系统700进入功率保存模式时所需的ssd存储量。在一些实施例中,恢复模块744可在转变至睡眠模式之前刷新备用和临时存储器页。在一些实施例中,通过减少系统700在进入低功率状态之际需要保留的系统存储器空间量,恢复模块744有利地减少执行从低功率状态到操作性能目标的转变所需的时间量。在至少一个实施例中,连接模块746可包括软件指令,该软件指令在被执行时执行用于保存功率同时减少与传统“唤醒”序列相关联的等待时间或延迟量的互补功能。在一些实施例中,连接模块746可周期性地更新包括电子邮件和社交网络应用的某些“动态”应用,使得当系统700从低功率模式唤醒时,常常最可能需要刷新的应用是最新的。在至少一个实施例中,触摸屏用户界面748支持触摸屏控制器714,该触摸屏控制器714经由传统上为手持应用保留的触摸屏实现用户输入。在一些实施例中,对触摸屏支持的包含结合对通信设备726的支持使系统700能够提供传统上在专用平板设备中找到的特征以及在专用膝上型和台式系统中发现的特征。

图8例示出对实现所公开技术的设计的模拟、仿真和制造的表示。表示设计的数据可用数种方式来表示该设计。首先,如在模拟中有用的,可使用硬件描述语言或另一功能描述语言来表示硬件,这些语言基本上提供了预期所设计硬件如何执行的计算机化模型。在至少一个实施例中,硬件模型814可被存储在诸如计算机存储器之类的存储介质810中,使得可使用模拟软件812来模拟硬件模型814,该模拟软件812将特定测试套件应用于硬件模型814以确定其是否确实按意图运作。在一些实施例中,模拟软件812未被记录、捕获或包含在存储介质810中。

另外,可在设计过程的一些阶段产生具有逻辑和/或晶体管门的电路级模型。此模型可被类似地模拟,有时通过使用可编程逻辑形成模型的专用硬件模拟器来模拟。在一定程度上进一步,这种类型的模拟可以是仿真技术。在任何情况下,可重配置硬件是另一实施例,其可涉及存储采用所公开技术的模型的有形机器可读介质。

此外,大多数设计在一些阶段都达到表示硬件模型中各种设备的物理布置的数据水平。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定在用于制造集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。同样,表示集成电路的此数据具体化了所公开的技术,因为可模拟或制造数据中的电路系统或逻辑以执行这些技术。

在任何设计表示中,数据可以被存储在任何形式的有形机器可读介质中。在一些实施例中,经调制或以其他方式生成以传送此类信息的光或电波840、存储器830、或者诸如盘之类的磁或光存储820可以是有形机器可读介质。这些介质中的任何一种可以“承载”设计信息。因此,术语“承载”(例如,运送信息的有形机器可读介质)覆盖存储在存储设备上的信息或者被编码或调制到载波中或载波上的信息。描述设计或设计的特定部分的比特集(当在诸如载体或存储介质之类的机器可读介质中具体化时)是能以其自身出售或由其他人用于进一步设计或制造的物品。

示例

以下示例涉及进一步的实施例。

示例1是一种用于估计集成芯片中的动态功率的装置。装置包括测量接口、功率接口、以及一个或多个处理器。测量接口被设计成接收针对各种核的温度测量。功率接口被设计成针对来自一组核的每个核提供p状态。来自一个或多个处理器中的所述一组核的每个核被设计成:测量核的温度;确定可允许的热负荷;确定温度相关的泄漏;部分地基于活动比率、温度相关的泄漏以及可用的总功率来计算可用功率;部分地基于可用功率来确定p状态电压;以及针对核选择p状态。

示例2中,示例1或本文所描述示例中的任一项的主题可进一步包括,活动比率基于相对于p状态电压的核工作负荷的。

示例3中,示例1或本文所描述示例中的任一项的主题可进一步包括,温度相关的泄漏部分地基于电压和温度。

示例4中,示例1或本文所描述示例中的任一项的主题可进一步包括,温度相关的泄漏将至少部分地基于电压和经测量温度来估计。

示例5中,示例1或本文所描述示例中的任一项的主题可进一步包括确定可允许的热负荷,其进一步包括计算自上一更新以来的时间;计算针对每个核的温度误差;计算有限样本时间窗口上的误差的积分;以及计算控制器输出。

示例6中,示例5或本文所描述示例中的任一项的主题可进一步包括将积分和限制为预定最大值以防止积分器饱和。

示例7中,示例6或本文所描述示例中的任一项的主题可进一步包括在自上一更新以来的时间超过容限时设置标志位。

示例8中,示例5或本文所描述示例中的任一项的主题可进一步包括,计算针对每个核的温度误差包括确定使用等式error=setpoint–temperature(误差=设定点–温度)来确定误差。

示例9中,示例5或本文所描述示例中的任一项的主题可进一步包括,计算控制器输出包括使用等式pcontrol=kp*error+ki*integralsum。

示例10中,示例1或本文所描述示例中的任一项的主题可进一步包括,计算可用功率(pdyn1)包括使用等式pdyn1=ptotal1–pleak1。

示例11中,示例1或本文所描述示例中的任一项的主题可进一步包括,基于等式来计算活动比率(ar)。

示例12中,示例1或本文所描述示例中的任一项的主题可进一步包括,确定可允许的热负荷进一步包括基于将功率和温度联合的模型来从可允许的热负荷确定可允许的功率。

示例13中,示例1或本文所描述示例中的任一项的主题可进一步包括,确定可允许的热负荷进一步包括确定核之间的热耦合。

示例14中,示例1或本文所描述示例中的任一项的主题可进一步包括,一个或多个处理器针对多输入、多输出控制器设计被设计成管理每个核的温度。

示例15是一种用于在热预算内动态地调整功率的处理器系统。处理器系统包括中央处理单元、一组温度传感器、功率接口、用于向核提供的功率与核温度之间的热动力学的模型的存储、以及一个或多个处理器。中央处理单元包括一组核。所述一组温度传感器被附连至一组核。功率接口被设计成向来自一组核的每个核提供p状态。一个或多个处理器被设计成:部分地基于模型来确定针对每个核的控制器输出;计算针对每个核的温度相关的泄漏的估计;部分地基于先前样本的平均来计算针对每个核的活动与功率比率的估计;部分地基于活动比率来针对剩余动态功率计算针对每个核的相关联的p状态电压;以及选择针对每个核的与相关联的p状态电压相关联的p状态。

示例16中,示例15或本文所描述示例中的任一项的主题可进一步包括,控制器输出进一步包括:计算自上一控制更新以来的时间;计算针对每个核的温度误差;计算有限样本时间窗口上的误差的积分;将积分和限制为最大值;以及基于误差和积分和来计算控制器输出。

示例17中,示例15或本文所描述示例中的任一项的主题可进一步包括,一个或多个处理器被配置成在至少下一采样周期内实现每个核的相关联的p状态电压。

示例18中,示例15或本文所描述示例中的任一项的主题可进一步包括,模型进一步包括pid控制器、pd控制器或pi控制器。

示例19中,示例15或本文所描述示例中的任一项的主题可进一步包括,模型进一步包括关于核之间热耦合的数据。

示例20中,示例15或本文所描述示例中的任一项的主题可进一步包括,模型进一步包括关于向核提供的功率与处理器温度之间的热动力学的数据。

示例21中,示例15或本文所描述示例中的任一项的主题可进一步包括,模型进一步包括关于温度相关的泄露的数据。

示例22中,示例15或本文所描述示例中的任一项的主题可进一步包括,温度相关的泄漏部分地基于电压和经测量温度。

示例23中,示例22或本文所描述示例中的任一项的主题可进一步包括,使用等式来确定温度相关的泄露(pleak)。

示例24中,示例22或本文所描述示例中的任一项的主题可进一步包括,计算可用功率(pdyn1)进一步包括使用等式pdyn1=ptotal1–pleak1。

示例25中,示例22或本文所描述示例中的任一项的主题可进一步包括,基于等式来计算活动比率(ar)。

示例26是计算机程序产品。该计算机产品包括存储程序代码的计算机可读存储介质。程序代码使一个或多个处理器执行方法。方法包括:测量中央处理单元(cpu)中的多个核的温度;确定核的实际温度与热设计功率温度之间的热裕量;基于电压和经测量温度来计算针对核的温度相关的泄露;基于热裕量和温度相关的泄露来确定可用功率;针对可用功率和核需求来确定相关联的p状态电压;以及使用相关联的p状态电压更新核p状态。

示例27中,示例26或本文所描述示例中的任一项的主题可进一步包括,基于热裕量和温度相关的泄露来确定可用功率进一步包括在热设计功率温度与经测量温度之间设置温度设定点。

示例28中,示例26或本文所描述示例中的任一项的主题可进一步包括,部分地基于电压和实际温度来估计温度相关的泄漏。

示例29中,示例26或本文所描述示例中的任一项的主题可进一步包括,基于热裕量和温度相关的泄露来确定可用功率进一步包括将热裕量转换成导致热裕量的功率的估计。

示例30是用于功率状态选择的方法。方法包括:计算核的温度相关的泄漏的估计;基于先前样本的平均来计算核的活动比率的估计;通过假设经计算的活动比率来针对剩余动态功率计算核的相关联的p状态电压;使用相关联的p状态电压选择针对所述核的p状态。

示例31中,示例30或本文所描述示例中的任一项的主题可进一步包括计算自上一更新以来的时间;计算针对所述核的温度误差;计算有限样本时间窗口上的针对所述核的误差的积分;将针对所述核的积分和限制为预定最大值;以及计算针对所述核的控制器输出。

示例32中,示例31或本文所描述示例中的任一项的主题可进一步包括,计算自上一更新以来的时间包括计算自上一样本更新或控制更新以来的时间。

示例33中,示例30或本文所描述示例中的任一项的主题可进一步包括,方法被应用于一组核。

示例34中,示例30或本文所描述示例中的任一项的主题可进一步包括,确定核的可允许的热负荷,以及使用核的可允许的热负荷来估计可用于核的总功率。

示例35中,示例34或本文所描述示例中的任一项的主题可进一步包括,确定其他核与所述核的热耦合效应。

示例36是装置,该装置包括用于执行如示例30-32中的任一项所标识的方法的方式。

示例37可包括机器可读存储,包括机器可读指令,当执行该机器可读指令时,该机器可读指令实现如示例30-32中任一项所标识的方法或装置。

示例38是一种机器可读介质,包括代码,该代码在被执行时使机器执行示例30-32中的任一项的方法。

本描述的系统和方法的实施例和实现可包括各种操作,这些操作可在由计算机系统执行的机器可执行指令中被具体化。计算机系统可包括一个或多个通用或专用计算机(或其他电子设备)。计算机系统可包括硬件组件(包括用于执行操作的特定逻辑)或者可包括硬件、软件和/或固件的组合。

计算机系统和计算机系统中的计算机可经由网络来连接。本文描述的用于配置和/或使用的合适的网络包括一个或多个局域网、广域网、城域网和/或因特网或ip网络,诸如万维网、私有因特网、安全因特网、增值网络、虚拟私有网络、外联网、内联网、或甚至通过介质的物理传输与其他机器通信的独立机器。特别地,合适的网络可由两个或更多个其他网络的部分或整体形成,包括使用不同硬件和网络通信技术的网络。

一个合适的网络包括服务器和一个或多个客户端;其他合适的网络可包含服务器、客户端和/或对等节点的其他组合,并且给定计算机系统可既作为客户端又作为服务器来起作用。每个网络至少包括两个计算机或计算机系统,诸如服务器和/或客户端。计算机系统可包括工作站、膝上型计算机、可断开连接的移动计算机、服务器、大型机、集群、所谓“网络计算机”或“薄客户端”、平板、智能电话、个人数字助理或其他手持计算设备、“智能”消费者电子设备或器具、医疗设备或其组合。

合适的网络可包括通信或联网软件,诸如可从和其他供应商获得的软件,并且可使用tcp/ip、spx、ipx和其他协议通过双绞线、同轴或光缆、电话线、无线电波、卫星、微波继电器、经调制ac功率线、物理介质传递和/或本领域技术人员已知的其他数据传送“线”来进行操作。网络可包含较小的网络和/或是通过网关或类似机制而可连接至其他网络的。

各种技术或者它们的特定方面或部分可以采取体现于有形介质中的程序代码(即,指令)的形式,所述有形介质诸如软盘、cd-rom、硬驱、磁卡或光卡、固态存储器设备、非瞬态计算机可读存储介质或者任何其他机器可读存储介质,其中在程序代码被加载到机器(诸如计算机)中和由机器执行时,机器成为用于实现各种技术的装置。在可编程计算机上的程序代码执行的情况下,计算设备可以包括处理器、可由处理器读取的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。易失性和非易失性的存储器和/或存储元件可以是ram、eprom、闪驱、光驱、磁性硬驱或者用于存储电子数据的其他介质。可以实现或使用此处所述的各种技术的一个或多个程序可以使用应用编程接口(api)、可再用控件等等。这种程序可以用高级的面向过程或面向对象的编程语言实现以便与计算机系统通信。然而,若需要,程序(一个或多个)可以用汇编语言或机器语言实现。在任一情况下,语言可以是编译的或解译的语言,并且与硬件实现方式组合。

每个计算机系统包括一个或多个处理器和/或存储器;计算机系统还可包括各种输入设备和/或输出设备。处理器可包括通用设备,诸如或其他“现成”微处理器。处理器可包括专用处理设备,诸如asic、soc、sip、fpga、pal、pla、fpla、pld或者其他定制或可编程设备。存储器可包括静态ram、动态ram、闪存、一个或多个触发器、rom、cd-rom、dvd、磁盘、磁带、或者磁、光或其他计算机存储介质。输入设备(一个或多个)可包括键盘、鼠标、触摸屏、光笔、平板、麦克风、传感器或具有伴随固件和/或软件的其他硬件。输出设备(一个或多个)可包括监视器或其他显示器、打印机、话音或文本合成器、开关、信号线或具有伴随固件和/或软件的其他硬件。

应该理解的是,本说明书中描述的许多功能单元可被实现为一个或多个组件,一个或多个组件是用于更特别强调其实现独立性的术语。例如,组件可被实现成硬件电路,该硬件电路包括定制的极大规模集成(vlsi)电路或门阵列、现成半导体器件(诸如逻辑芯片、晶体管之类)、或其他分立组件。组件也可在可编程硬件器件中实现,该可编程硬件器件诸如场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等等。

组件还可用供各类处理器执行的软件来实现。具有可执行代码的已标识组件可例如包括计算机指令的一个或多个物理或逻辑块,计算机指令可以例如被组织为对象、过程或函数。然而,已标识组件的可执行文件不需要在实体上位于一起,但可以包括存储在不同位置的不同指令,这些不同指令在逻辑上连在一起时构成该组件并且实现该组件的所述目的。

实际上,具有可执行代码的组件可以是单个指令、或许多指令,并且可以甚至在几个不同的代码段上、在不同的程序之间以及跨几个存储器器件而分布。类似地,操作数据在此可以被标识或图示于组件内,并且可以以任何适当形式被体现并且被组织在任何适当类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在不同位置上(包括分布在不同的存储器件上),并且可以至少部分地仅作为系统或网络上的电信号而存在。组件可以是被动的或主动的,包括可用于执行期望功能的代理。

所描述实施例的几个方面将作为软件模块或组件来例示。如本文所使用的,软件模块或组件可包括位于存储设备内的任何类型的计算机指令或计算机可执行代码。例如,软件模块可包括可被组织成执行一个或多个任务或实现特定数据类型的例程、程序、对象、组件、数据结构等的计算机指令的一个或多个物理或逻辑块。将理解的是,代替软件或除了软件之外,软件模块可以用硬件和/或固件来实现。本文描述的一个或多个功能模块可被分成子模块和/或组合成单个或较少数量的模块。

在某个实施例中,特定软件模块可包括存储在存储设备不同位置、不同存储设备或不同计算机的不同指令,这些指令一起实现该模块的所述功能。实际上,模块可包括单个指令或许多指令,并且可在几个不同的代码段上、在不同的程序之间以及跨几个存储器器件分布。一些实施例可在其中由通过通信网络链接的远程处理设备执行任务的分布式计算环境中实现。在分布式计算环境中,软件模块可以位于本地和/或远程存储器存储设备中。此外,数据库记录中一起被连结或呈现的数据可驻留在相同存储器设备中,或横跨若干存储器设备,并且可在跨网络的数据库的记录字段中被联合在一起。

本说明书通篇引用“示例”意指结合该示例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,短语“在示例中”在说明书各处的出现不一定全部指同一实施例。

如此处使用的,为方便起见,多个条目、结构元件、组成元件和/或材料可以被呈现在公共列表中。然而,这些列表应被视为好像该列表的每个成员都被个别地标识为单独的且唯一的成员。因此,如无相反指明,这种列表的没有一个个别成员应当仅基于其在公共组中的演示而被视为同一列表的任何其他成员的事实等价物。另外,在本文中,各实施例和示例可连同其各组件的替换方案一起被引用。要理解,这样的实施例、示例、以及替换方案不应被解释为彼此的实际等效方案,而是要被解释为分开且自主的表示。

而且,所述的特征、结构或特征可以以任何适当方式被组合在一个或多个实施例中。在以下描述中,提供了许多具体细节,诸如材料、频率、尺寸、长度、宽度、形状等的示例,以提供对实施例的透彻理解。然而,相关领域内技术人员将理解实施例可省去一个或多个特定细节而实现,或通过其它方法、组件、材料等实现。在其它例子中,公知的结构、材料或操作不被示出或详细说明以避免对实施例的某些方面产生混淆。

应该认识到,本文描述的系统包括特定实施例的描述。这些实施例可组合成单个系统、部分组合成其他系统、分割成多个系统或者以其他方式划分或组合。另外,预期一个实施例的参数/属性/方面/等等可在另一个实施例中使用。参数/属性/方面/等仅为了清楚而在一个或多个实施例中描述,并且认识到参数/属性/方面/等可结合或替代另一实施例的参数/属性/等,除非本文明确放弃该权利。

尽管为了清楚的目的已经详细描述了上述内容,但显而易见的是,可以在不脱离其原理的情况下进行某些改变和修改。应该注意的是,存在实现本文描述的过程和装置的许多替代方式。因此,本实施例被认为是示例性的而非限制性的,并且实施例不限于本文给出的细节,而是可以在所附权利要求的范围和等同物内进行修改。

本领域技术人员将理解,可对上述实施例的细节进行许多改变,而不背离基本原则。因此,本公开和实施例的范围应当仅由所附权利要求确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1