包括增强的基于温度的电压控制的用于能效和节能的方法、装置和系统的制作方法

文档序号:6497719阅读:198来源:国知局
包括增强的基于温度的电压控制的用于能效和节能的方法、装置和系统的制作方法
【专利摘要】描述了包括增强的基于温度的电压控制的用于能效和节能的系统、装置和方法的实施例。在一个实施例中,装置包括处理器和耦合于该处理器的控制器。在一个实施例中,控制器接收对应于处理器的当前温度的温度测量。在一个实施例中,控制器还至少部分地基于温度测量和所述处理器的多个内部限制来确定对于正被施加给处理器的电压的调整,其中所确定的对电压的调整是基于处理器的工作频率和电压中的至少一项同温度之间的逆向温度依赖性关系的。在一个实施例中,控制器将所确定的对电压的调整提供给电压调节器接口。
【专利说明】包括增强的基于温度的电压控制的用于能效和节能的方法、装置和系统
【技术领域】
[0001]本公开涉及集成电路中的能效和节能,以及用于在集成电路上执行的代码,并且具体但非排他性地涉及使用逆向温度依赖性来动态调整施加给处理器的电压以减少功率消耗。
【背景技术】
[0002]半导体处理和逻辑设计领域的进步已经允许增加集成电路器件上可存在的逻辑数量。结果,计算机系统配置已从系统中的单个或多个集成电路演变至多硬件线程、多核、多设备和/或完善的各集成电路上的系统。附加地,随着集成电路的密度增长,计算系统的功率需求(从嵌入式系统至服务器)也已逐步升级。此外,软件效率低及其对硬件的需要也已造成计算设备能耗的增加。事实上,一些研究表明,计算设备消耗整个国家(例如美国)的电力供给的相当大百分比。结果,对于与集成电路关联的能效和节能具有至关重要的需求。随着服务器、台式计算机、笔记本电脑、超级本、平板计算机、移动电话、处理器、嵌入式系统等设备变得越来越盛行(从包含在典型计算机、汽车和电视机中乃至到生物技术),这些需求将增加。
[0003]附图简述
[0004]在附图的图形中作为示例而非限制地说明了本发明,其中相同的附图标记指示类似的元件,并且其中:
[0005]图1例示了用于利用逆向温度依赖性来调节应用于处理器的电压以减少功率消耗的系统的框图。
[0006]图2例示了用于基于给定温度动态调节电压的方法的一个实施例。
[0007]图3A是示出根据本发明的实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线二者的框图。
[0008]图3B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。
[0009]图4A-B描述更具体的示例性的有序核架构的框图。
[0010]图5是处理器的框图。
[0011]图6-9是示例性计算机架构的框图。
[0012]图10是根据本发明的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
[0013]图1lA例示根据实施例的图表。
[0014]图1lB例示根据实施例的图表。
【具体实施方式】
[0015]在下面的描述中,阐述了很多具体细节。然而,应当理解,本发明的各实施例可以在不具有这些具体细节的情况下得到实施。在其他实例中,未详细示出公知的电路、结构和技术以免混淆对本描述的理解。
[0016]在说明书中对“一个实施例”、“一实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但并不一定每个实施例都需要包括该特定特征、结构或特性。此外,这样的短语不一定是指同一个实施例。此外,当结合一个实施例描述特定特征、结构或特性时,我们认为,可本领域技术人员的学识范围内,与其他实施例相结合地影响这样的特征、结构或特性,无论是否对此明确描述。
[0017]尽管参考特定集成电路中(诸如计算平台或微处理器中)的节能和能效描述了以下实施例,但是其它实施例适用于其它类型的集成电路和逻辑器件。本文描述的实施例的相似技术和教义可适用于可从更好的能效和节能中得益的其它类型的电路或半导体器件。例如,所披露的实施例不限于台式计算机系统,并也可用于其它设备,例如手持设备、芯片上系统(SoC)以及嵌入式应用。手持式设备的一些示例包括:蜂窝电话、互联网协议设备、数码相机、个人数字助理(PDA)、手持式PC。嵌入式应用典型包括:微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、或可执行如下所教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而是也涉及对节能和能效的软件优化。如将在以下描述中变得显而易见的,本文描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是它们的组合)对于“绿色技术”(诸如,用在涵盖美国经济很大部分的产品中的节能和能效)的前景是至关重要的。
[0018]图1例示了利用逆向温度依赖性来调节应用于处理器的电压以减少功率消耗的系统100的框图。在一个实施例中,系统100是更大处理系统(如下文中在图6-9中所例示的)的一部分。在一个实施例中,系统100包括控制器110、一个或多个热传感器120、电压调节器130、和处理器140。在一个实施例中,控制器110、热传感器120、和电压调节器130是处理器140的一部分。
[0019]在一个实施例中,处理器140可以是中央处理单元(CPU)、图形处理器、或其他处理器,其执行指令以运行图1和图6-9的系统的算术、逻辑、和输入/输出操作。在一个实施例中,控制器110 (其可为微控制器)、微处理器、或其他处理单元,测量处理器140的当前温度。在一个实施例中,控制器110以周期性的间隔来测量处理器140的当前温度。在一个实施例中,且如下文结合图1lA和IlB所更为详细讨论的,当处理器的当前温度适用于多个内部电压要求(诸如晶体管速度电压要求和处理器阵列电压要求时),控制器可测量处理器的当前温度。在一个实施例中,当前温度是适用于诸如晶体管速度电压要求和处理器阵列电压要求的所有内部电压约束的单个温度测量。然而,如图1lA中所例示的,不同的内部电压约束,例如晶体管速度和处理器阵列电压关系,可具有不同的温度依赖性关系。
[0020]在一个实施例中,由电压调节器130基于处理器140的当前温度和期望工作频率或速度而动态地向处理器140加电压。在一个实施例中,随着处理器140的温度下降,处理器140中的晶体管就变慢了,藉此降低了处理器的工作频率。为了维持处理器140的期望工作频率,要被加给处理器140的电压随着温度下降而升高,这形成了电压和温度之间的逆向温度依赖性。在一个实施例中,控制器110由此调节其向电压调节器(VR)接口 135请求的电压,VR接口 135使得电压调节器130基于当前温度调节提供给处理器140的电压。在一个实施例中,处理器110通过在需要时(诸如在处理器温度下降时)将额外电压加给处理器140来进行电压调节。因为额外电压是在其被需要时且不是在最差情况场景模型中被加给处理器140的,当处理器140较热时不需要施加电压,藉此减少处理器140的功耗,并且减少图1的系统100和图6-9的系统所用的总体功耗。此外,在较低温度下(例如,当处理器140较冷时)源自处理器140的硅的能量泄露较低,因此,在较低温度下所加的电压被处理器140更为高效地使用。
[0021]在一个实施例中,控制器110利用当前温度、处理器140的一个或多个参数、以及所需的工作频率,来确定动态电压调节。在一个实施例中,控制器110从一个或多个热传感器120获得处理器140的当前温度。在一个实施例中,热传感器120报告处理器140的每个核的温度数据。在一个实施例中,控制器110进一步获得处理器140的电压、频率和温度参数125。在一个实施例中,参数125描述了在处理器的制造和测试期间所产生的处理器140的工作属性。在一个实施例中,基于参数125、从热传感器(多个)120获得的处理器140的当前温度、处理器的期望工作频率、以及处理器140的其他内部限制项,控制器110针对当前工作点决定将被施加给处理器140的电压。在一个实施例中,基于处理器140的工作频率和温度的逆向依赖性来调节电压。
[0022]在一个实施例中,控制器110向电压调节器接口 135通知所确定的电压调节。在一个实施例中,电压调节器接口 135利用一个或多个电压控制方法来使用电压调节器130将处理器变换至所确定的电压设定。在一个实施例中,电压调节器接口 135利用用于控制电压调节器130的电压控制方法,例如,串行电压识别(SVID)接口,其用于从可完全可控的SVID兼容的电压调节器130动态地请求将要施加给处理器140的不同电压。在另一个实施例中,电压调节器130可以是不太昂贵的半混合的(sem1-fixed)电压调节器,其中VR接口 135通过在VR接口 135和电压调节器130之间切换一个或多个接线连接而在若干分立的电压水平间移动。
[0023]在一个实施例中,控制器110基于用于电压最小值的截止温度阈值来确定电压调节。就是说,当处理器140的温度超过给定阈值温度时,电压调节器130可施加更低的电压。然而,当处理器140的温度低于温度阈值时,电压调节器130可施加更高的电压。在一个实施例中,电压调节器130基于当前温度和期望的工作频率而动态地将电压切换得更高或更低,从而维持处理器140的工作特性。例如,图1IA例示了当控制器110决定什么电压应被施加给处理器140时控制器110所使用的示例性温度阈值曲线。图1lA描绘了图表,X轴是频率,y轴是电压。在一个实施例中,例示了用于最小晶体管速度电压的热和冷阈值曲线1102,1104以及用于最小处理器阵列电压的热和冷阈值曲线1112、1114。在所例示的实施例中,阈值曲线可以基于处理器140在制造、测试时确定的规格、设计规格等。在一个实施例中,控制器110确定用于晶体管速度和处理器阵列电压最小值的不同电压调节,从而选择将满足两个最小值的单个调节。在一个实施例中,当晶体管速度和处理器阵列具有不同的逆向温度依赖性关系时,分开的处理优化了处理器140的功率利用和性能。
[0024]在另一个实施例中,如图1lB中所示,可求解用于晶体管速度和阵列的冷电压曲线和热电压曲线。在这个实施例中,通过取图1lA的冷晶体管速度Vmin曲线1102和冷处理器阵列Vmin曲线1104的最大值并且取图1lA的热晶体管速度Vmin曲线1112和热处理器阵列Vmin曲线1114的最大值,来解析这些曲线从而获得图1lB的解析出的冷Vmin曲线1152和解析出的热Vmin曲线1154。如果晶体管速度和处理器阵列最小值都将被组合到单一电压/频率曲线中并随后以组合ITD调节法来调节,则结果将是添加至最差情况电压最小值的最差情况电压调节。通过使用添加至最差情况电压最小值的最差情况电压调节,比所需电压更多的电压将被添加至处理器,从而导致能量使用方面的低效。然而,在一个实施例中,针对晶体管速度和处理器阵列电压,控制器110分别确定基于基线Vmin和逆向温度依赖性调节所要求的最终电压,并随后选择这二者中较高者作为处理器140的最终电压。在一个实施例中,控制器110所选择的最终电压满足基于图1lA的两个曲线1152、1154的四个阈值。在一个实施例中,结果是节约提供给处理器140的能量的最佳情况电压调节。
[0025]在一个实施例中,当处理器140处于空闲状态时,控制器110进一步执行施加给处理器140的电压的动态调节。在一个实施例中,控制器110施加足够的功率以允许处理器140的寄存器保持它们的状态和存储在所述寄存器内的多个状态变量,但是不提供用以处理操作的充足功率。在一个实施例中,控制器110确定将要施加给处理器140用于保持(即,没有活动的零频率)的电压调节,该电压调节对应于保持在空闲状态中的处理器140。通过基于温度是否高于或低于阈值而在若干分立的电压水平间切换,或基于温度的连续函数而调节电压,控制器110不需要基于冷温度的最差情况场景为了保持的目的而将电压添加给处理器140。相反,如本文所讨论的,控制器110基于逆向温度依赖性和电压最小值而动态调节电压。在一个实施例中,由此使得处理器140的功耗即便在处理器处于空闲状态时变得更为有效率。
[0026]在一个实施例中,也可以使用半固定的电压调节器来管理处理器140的逆向温度依赖性,所述半固定的电压调节器一般被用于将若干静态电压水平中的一个提供给处理器140或计算机处理系统(例如,图6-9中的计算机处理系统)中的特定供电平面(powerplane)。例如,通常向处理器140中的系统代理供电平面提供若干静态电压水平中的一个,但是基于温度高于或低于分立的阈值,可上调/下调系统代理的电压。基于给定的温度和阈值,控制器110可在分立的水平之间调节VR接口 135的被请求电压。在一个实施例中,电压调节器接口 135作出的调节包括:切换电压调节器接口 135的一个或多个固定连线,以使得电压基于处理器140的当前温度而被调高或调低。在一个实施例中,然而,可根据本文所述的实施例来向系统代理提供功率。
[0027]图2例示了用于基于给定温度动态调节电压的方法200的一个实施例。方法200是由处理逻辑执行的,处理逻辑可包括硬件(电路、专用逻辑等)、软件(例如,运行在通用计算机系统上或专用机器上)、固件、或其组合。
[0028]在一个实施例中,方法开始于处理逻辑接收处理器的温度测量(处理框202)。在一个实施例中,由热传感器来提供温度测量。在一个实施例中,温度测量对应于处理器的当前温度。在一个实施例中,处理器可以是活动的。
[0029]在另一个实施例中,处理器可以在空闲状态中。
[0030]在一个实施例中,处理逻辑至少部分地基于温度、同处理器相关联的一组参数、和处理器的期望工作频率,来确定对正在施加给处理器的电压的调节。在一个实施例中,所述一组参数是对应于在处理器的制造和测试期间所确定的电压、频率和温度工作参数的参数。在一个实施例中,处理逻辑利用所述一组参数和期望的工作频率来基于当前温度在上电压阈值和下电压阈值之间调节电压。在一个实施例中,阈值定义为使处理器以给定频率和温度工作而应该被施加给处理器的最小电压。图1lA和IIB例示可被处理逻辑所使用的示例性Vmin阈值曲线。
[0031 ] 在一个实施例中,处理逻辑向电压调节器(处理框206)提供电压调节。在一个实施例中,电压调节致使正被施加给处理器的电压从当前电压变换到在处理框204所确定的电压。
[0032]在本文所讨论的实施例中,动态电压调节实现了处理器,以及处理器置于其中的处理系统的更为有效的功率利用。例如,本文所讨论的动态电压调节实现了当处理器降温时添加额外电压给处理器,但当处理器是热的时未必施加该额外电压。然而,由于在较低温度下施加的较高电压被较低的温度(因为处理器中的漏泄功率在较低温度时下降了)所补偿,总体功耗可不受影响。
[0033]示例性核架构、处理器和计算机架构
[0034]可以不同的方式、出于不同目的、且在不同处理器中实现诸处理器核。
[0035]例如,这样的核的实现可以包括:1)旨在用于通用计算的通用有序核;2)旨在用于通用计算的高性能通用无序核;3)主要旨在用于图形和/或科学(吞吐量)计算的专用核。不同处理器的实现可包括:包括预期用于通用计算的一个或多个通用有序核和/或预期用于通用计算的一个或多个通用无序核的CPU ;以及2)包括主要预期用于图形和/或科学(吞吐量)的一个或多个专用核的协处理器。这样的不同处理器导致不同的计算机系统架构,其可包括:1)在与CPU分开的芯片上的协处理器;2)在与CPU相同的封装中但分开的管芯上的协处理器;3)与CPU在相同管芯上的协处理器(在该情况下,这样的协处理器有时被称为诸如集成图形和/或科学(吞吐量)逻辑等的专用逻辑,或被称为专用核);以及4)可以将所描述的CPU (有时被称为应用核或应用处理器)、以上描述的协处理器和附加功能包括在同一管芯上的片上系统。接着描述示例性核架构,随后描述示例性处理器和计算机架构。
[0036]示例性核架构
[0037]有序和无序核框图
[0038]图3A是示出根据本发明的实施例的示例性有序流水线和示例性寄存器重命名的乱序发布/执行流水线二者的框图。图3B是示出根据本发明的实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名、无序发布/执行架构核的框图。图3A-B中的实线框示出了有序流水线和有序核,而虚线框中的可选附加项示出了寄存器重命名的、无序发布/执行流水线和核。考虑到有序方面是无序方面的子集,将描述无序方面。
[0039]在图3A中,处理器流水线300包括提取(fetch)级302、长度解码级304、解码级306、分配级308、重命名级310、调度(也称为分派或发布)级312、寄存器读取/存储器读取级314、执行级316、写回/存储器写入级318、异常处理级322和提交级324。
[0040]图3B示出了包括耦合到执行引擎单元350的前端单元330的处理器核390,且执行引擎单元和前端单元两者都耦合到存储器单元370。核390可以是精简指令集合计算(RISC)核、复杂指令集合计算(CISC)核、超长指令字(VLIW)核、或混合或替代核类型。作为又一选项,核390可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理器单元(GPGPU)核、图形核等等。[0041]前端单元330包括耦合到指令高速缓存单元332的分支预测单元334,该指令高速缓存单元334被耦合到指令转换后备缓冲器(TLB) 336,该指令转换后备缓冲器336被耦合到指令获取单元338,指令获取单元338被耦合到解码单元340。解码单元340 (或解码器)可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元340可使用各种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核390包括存储(例如,在解码单元340中或否则在前端单元330内的)特定宏指令的微代码的微代码ROM或其他介质。解码单元340耦合至执行引擎单元350中的重命名/分配器单元352。
[0042]执行引擎单元350包括重命名/分配器单元352,该重命名/分配器单元352耦合至引退单元354和一个或多个调度器单元(多个)356的集合。调度器单元(多个)356表示任何数目的不同调度器,包括预留站(reservations stations)、中央指令窗等。调度器单元(多个)356被耦合到物理寄存器组(多个)单元(多个)358。每个物理寄存器组(多个)单元(多个)358表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或多种不同的数据类型,诸如标量整数、标量浮点、打包整数、打包浮点、矢量整数、矢量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器组(多个)单元358包括矢量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构矢量寄存器、矢量掩码寄存器、和通用寄存器。物理寄存器组(多个)单元(多个)358与引退单元354重叠以示出可以用来实现寄存器重命名和无序执行的各种方式(例如,使用记录器缓冲器(多个)和引退寄存器组(多个);使用将来的文件(多个)、历史缓冲器(多个)和引退寄存器组(多个);使用寄存器映射和寄存器池等等)。引退单元354和物理寄存器组(多个)单元(多个)358被耦合到执行群集(多个)360。执行群集(多个)360包括一个或多个执行单元362的集合和一个或多个存储器访问单元364的集合。执行单元362可以执行各种操作(例如,移位、加法、减法、乘法),以及对各种类型的数据(例如,标量浮点、打包整数、打包浮点、向量整数、向量浮点)执行。尽管某些实施例可以包括专用于特定功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有函数的仅一个执行单元或多个执行单元。调度器单元(多个)356、物理寄存器组(多个)单元(多个)358和执行群集(多个)360被示为可能有多个,因为某些实施例为某些类型的数据/操作(例如,标量整型流水线、标量浮点/打包整型/打包浮点/矢量整型/矢量浮点流水线,和/或各自具有其自己的调度器单元、物理寄存器组(多个)单元和/或执行群集的存储器访问流水线一以及在分开的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访问单元(多个)364的某些实施例)创建分开的流水线。还应当理解,在分开的流水线被使用的情况下,这些流水线中的一个或多个可以为无序发布/执行,并且其余流水线可以为有序发布/执行。
[0043]存储器访问单元364的集合被耦合到存储器单元370,该存储器单元372包括耦合到数据高速缓存单元374的数据TLB单元376,其中该数据高速缓存单元374耦合到二级(L2)高速缓存单元376。在一个示例性实施例中,存储器访问单元364可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合至存储器单元370中的数据TLB单元1372。指令高速缓存单元334还耦合到存储器单元370中的二级(L2)高速缓存单元376。L2高速缓存单元376被耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。
[0044]作为示例,示例性寄存器重命名的、无序发布/执行核架构可以如下实现流水线300:1)指令获取338执行取指和长度解码级302和304 ;2)解码单元340执行解码级306 ;3)重命名/分配器单元352执行分配级308和重命名级310 ;4)调度器单元(多个)356执行调度级312 ;5)物理寄存器组(多个)单元(多个)358和存储器单元370执行寄存器读取/存储器读取级314 ;执行群集360执行执行级316 ;6)存储器单元370和物理寄存器组(多个)单元(多个)358执行写回/存储器写入级318 ;7)各单元可牵涉到异常处理级322 ;以及8)引退单元354和物理寄存器组(多个)单元(多个)358执行提交级324。
[0045]核390可支持一个或多个指令集合(例如,x86指令集合(具有与较新版本一起添加的某些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集合;加利福尼州桑尼维尔市的ARM控股的ARM指令集合(具有诸如NEON等可选附加扩展)),其中包括本文中描述的各指令。在一个实施例中,核390包括支持打包数据指令集合扩展(例如,AVX1、AVX2)的逻辑,由此允许被许多多媒体应用使用的操作将使用打包数据来执行。
[0046]应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其中单个物理核为物理核正同步多线程化的各线程中的每一个线程提供逻辑核)、或其组合(例如,时分取指和解码以及此后诸如用Intel?超线程化技术来同步多线程化)。
[0047]尽管在无序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所例示的处理器的实施例还包括分开的指令和数据高速缓存单元334/374以及共享L2高速缓存单元376,但替换实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如一级(LI)内部高速缓存或多个级别的内部缓存。在某些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。
[0048]具体的示例性有序核架构
[0049]图4A-B示出了更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块之一(包括相同类型和/或不同类型的其他核)。这些逻辑块通过高带宽的互连网络(例如,环形网络)与某些固定的功能逻辑、存储器I/o接口和其它必要的I/O逻辑通信,这依赖于应用。
[0050]图4A是根据本发明的各实施例的单个处理器核连同它与管芯上互连网络402的连接以及其二级(L2)高速缓存404的本地子集的框图。在一个实施例中,指令解码器400支持具有打包数据指令集合扩展的x86指令集。LI高速缓存406允许对高速缓存存储器的低等待时间访问进入标量和矢量单元。尽管在一个实施例中(为了简化设计),标量单元408和矢量单元410使用分开的寄存器集合(分别为标量寄存器412和矢量寄存器414),并且在这些寄存器之间转移的数据被写入到存储器并随后从一级(LI)高速缓存406读回,但是本发明的替换实施例可以使用不同的方法(例如使用单个寄存器集合,或包括允许数据在这两个寄存器组之间传输而无需被写入和读回的通信路径)。
[0051]L2高速缓存的本地子集404是全局L2高速缓存的一部分,该全局L2高速缓存被划分成多个分开的本地子集,即每个处理器核一个本地子集。每个处理器核具有到其自己的L2高速缓存404的本地子集的直接访问路径。被处理器核读出的数据被存储在其L2高速缓存子集404中,并且可以被快速访问,该访问与其他处理器核访问它们自己的本地L2高速缓存子集并行。被处理器核写入的数据被存储在其自己的L2高速缓存子集404中,并在必要的情况下从其它子集清除。环形网络确保共享数据的一致性。环形网络是双向的,以允许诸如处理器核、L2高速缓存和其它逻辑块之类的代理在芯片内彼此通信。每个环形数据路径为每个方向1012比特宽。
[0052]图4B是根据本发明的各实施例的图4A中的处理器核的一部分的展开图。图4B包括LI高速缓存404的LI数据高速缓存406A部分,以及关于矢量单元410和矢量寄存器414的更多细节。具体地说,矢量单元410是16宽矢量处理单元(VPU)(见16宽ALU428),该单元执行整型、单精度浮点以及双精度浮点指令中的一个或多个。该VPU支持通过混合单元420混合寄存器输入、通过数值转换单元422A-B进行数值转换,以及通过复制单元424进行对存储器输入的复制。写掩码寄存器426允许判定(predicating)所得的矢量写入。
[0053]具有集成存储器控制器和图形器件的处理器
[0054]图5是根据本发明的实施例的可具有一个以上的核、可具有集成存储器控制器、并且可具有集成图形功能的处理器500的方框图。图5的实线框示出了处理器500,处理器500具有单个核心502A、系统代理(agent) 510、一组一个或多个总线控制器单元516,而可选附加的虚线框示出了替代的处理器500,其具有多个核心502A-N、系统代理单元510中的一组一个或多个集成存储器控制器单元514以及专用逻辑508。
[0055]因此,处理器500的不同实现可包括:I) CPU,其中专用逻辑508是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核502A-N是一个或多个通用核(例如,通用的有序核、通用的无序核、这两者的组合);2)协处理器,其中核502A-N是主要旨在用于图形和/或科学(吞吐量)的大量专用核;以及3)协处理器,其中核502A-N是大量通用有序核。因此,处理器500可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU (通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器500可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOSXMOS或NMOS等的多个加工技术中的任何一个技术将其实现在一个或多个衬底上。
[0056]存储器层次结构包括在各核内的一个或多个级别的高速缓存、一组或一个或多个共享高速缓存单元506、以及耦合至集成存储器控制器单元514的集合的外部存储器(未示出)。该共享高速缓存单元506的集合可以包括一个或多个中间级高速缓存,诸如二级(L2)、三级(L3)、四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)、和/或其组合。尽管在一个实施例中,基于环的互连单元512将集成图形逻辑508、共享高速缓存单元506的集合以及系统代理单元510/集成存储器控制器单元(多个)514互连,但替代实施例可使用任何数量的公知技术来将这些单元互连。在一个实施例中,在一个或多个高速缓存单元506与核502-A-N之间维持相干性。
[0057]在某些实施例中,核502A-N中的一个或多个核能够多线程化。系统代理510包括协调和操作核502A-N的那些组件。系统代理单元510可包括例如功率控制单元(P⑶)和显示单元。P⑶可以是或包括调整核502A-N和集成图形逻辑508的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
[0058]核502A-N在架构指令集合方面可以是同构的或异构的;8卩,这些核502A-N中的两个或更多个核可以能够执行相同的指令集合,而其他核可以能够执行该指令集合的仅仅子集或不同的指令集合。
[0059]示例性计算机架构
[0060]图6-9是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般来说,能够含有本文中所公开的处理器和/或其它执行逻辑的大量系统和电子设备一般都是合适的。
[0061]现在参考图6,所示出的是根据本发明一个实施例的系统600的框图。系统600可以包括一个或多个处理器610、615,这些处理器耦合到控制器中枢620。在一个实施例中,控制器中枢620包括图形存储器控制器中枢(GMCH) 690和输入/输出中枢(IOH) 650 (其可以在分开的芯片上);GMCH690包括存储器和图形控制器,存储器640和协处理器645耦合到该图形控制器;10H650将输入/输出(I/O)设备660耦合到GMCH690。替换地,存储器和图形控制器中的一个或两个集成在处理器(如本文中所描述的)内,存储器640和协处理器645直接耦合到处理器610,且控制器中枢620与10H650在单一芯片中。
[0062]附加处理器615的可选性质用虚线表不在图6中。每一处理器610、615可包括本文中描述的处理核中的一个或多个,并且可以是处理器500的某一版本。
[0063]存储器640可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢620经由诸如前侧总线(FSB)之类的多分支总线(mult1-drop bus)、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接695与处理器610、615进行通信。
[0064]在一个实施例中,协处理器645是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢620可以包括集成图形加速器。
[0065]按照包括体系结构、微体系结构、热、功耗特征等等优点的度量谱,物理资源610、915之间存在各种差别。在一个实施例中,处理器610执行控制一般类型的数据处理操作的指令。嵌入在这些指令中的可以是协处理器指令。处理器610将这些协处理器指令识别为应当由附连的协处理器645执行的类型。因此,处理器610在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器645。协处理器(多个)645接受并执行所接收的协处理器指令。
[0066]现在参照图7,所示出的是根据本发明实施例的更具体的第一示例性系统700的框图。如图7所示,多处理器系统700是点对点互连系统,并包括经由点对点互连750耦合的第一处理器770和第二处理器780。处理器770和780中的每一个都可以是处理器500的某一版本。在本发明的一个实施例中,处理器770和780分别是处理器610和615,而协处理器738是协处理器645。在另一实施例中,处理器770和780分别是处理器610和协处理器645。
[0067]处理器770和780被示为分别包括集成存储器控制器(MC)单元772和782。处理器770还包括作为其总线控制器单元的一部分的点对点(P-P)接口 776和778 ;类似地,第二处理器780包括点对点接口 786和788。处理器770、780可以使用点对点(P-P)电路778、788经由P-P接口 750来交换信息。如图7所示,MC772和782将诸处理器耦合至相应的存储器,即存储器732和存储器734,这些存储器可以是本地附连至相应的处理器的主存储器的一部分。
[0068]处理器770、780各自可使用点对点接口电路776、794、786、798经由单独的P-P接口 752、754与芯片组790交换信息。芯片组790可以可选地经由高性能接口 738与协处理器739交换信息。在一个实施例中,协处理器738是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。
[0069]共享高速缓存(未示出)可以被包括在两个处理的任一个之内或被包括两个处理器外部但仍经由P-P互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将任一处理器或两个处理器的本地高速缓存信息存储在该共享高速缓存中。
[0070]芯片组790可经由接口 796耦合至第一总线716。在一个实施例中,第一总线716可以是外围部件互连(PCI)总线,或诸如PCI Express总线或其它第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。
[0071]如图7所示,各种I/O设备714可以连同总线桥718耦合到第一总线716,总线桥718将第一总线716耦合至第二总线720。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器(诸如例如图形加速器或数字信号处理器(DSP)单元)、现场可编程门阵列或任何其他处理器的一个或多个附加处理器715被耦合到第一总线716。在一个实施例中,第二总线720可以是低引脚计数(LPC)总线。各种设备可以被耦合至第二总线720,在一个实施例中这些设备包括例如键盘/鼠标722、通信设备727以及诸如可包括指令/代码和数据730的盘驱动器或其它海量存储设备的存储单元728。此外,音频I/0724可以被耦合至第二总线720。注意,其它体系结构是可能的。例如,取代图7的点对点体系结构,系统可以实现多分支总线或其它这类体系结构。
[0072]现在参考图8,示出了根据本发明的一个实施例的更具体的第二示例性系统800的方框图。图7和图8中的相同部件用相同附图标记表示,并从图8中省去了图7中的某些方面,以避免使图8的其它方面变得难以理解。
[0073]图8例示了处理器770、780可分别包括集成存储器和I/O控制逻辑(CL) 772和782。因此,CL772、782包括集成存储器控制器单元并包括I/O控制逻辑。图8例示出,不仅存储器732和734耦合至CL772、782,而且I/O设备814也耦合至控制逻辑772、782。传统I/O设备815被耦合至芯片组790。
[0074]现在参照图9,所示出的是根据本发明一个实施例的SoC900的框图。在图5中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图9中,互连单元(多个)902被耦合至:应用处理器910,该应用处理器包括一个或多个核202A-N的集合以及共享高速缓存单元(多个)506 ;系统代理单元510 ;总线控制器单元(多个)516 ;集成存储器控制器单元(多个)514 ;—组或一个或多个协处理器920,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元930 ;直接存储器存取(DMA)单元932 ;以及用于耦合至一个或多个外部显示器的显示单元940。在一个实施例中,协处理器(多个)920包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
[0075]本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0076]可将程序代码(诸如图7中示出的代码730)应用于输入指令,以执行本文描述的各功能并生成输出信息。输出信息可以按已知方式被应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
[0077]程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。程序代码也可以在需要的情况下用汇编语言或机器语言来实现。事实上,本文中描述的机制不仅限于任何特定编程语言的范围。在任一情形下,语言可以是编译语言或解译
;五古
P口口 ο
[0078]至少一个实施例的一个或多个方面可以由存储在机器可读介质上的代表性指令来实现,该指令表示处理器中的各种逻辑,该指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给各种客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
[0079]这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形成的制品的非瞬态、有形配置,其包括存储介质,诸如硬盘;任何其它类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)的以及磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其它类型的介质。
[0080]因此,本发明的各实施例还包括非瞬态、有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特性。这些实施例也被称为程序产品。
[0081]仿真(包括二进制变换、代码变形等)
[0082]在某些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形(morph)、仿真或以其它方式将指令转换成将由核来处理的一个或多个其它指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上部分在处理器外。
[0083]图10是根据本发明的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软件指令转换器,但作为替代该指令转换器可以用软件、固件、硬件或其各种组合来实现。图10示出了用高级语言1002的程序可以使用X86编译器1004来编译,以生成可以由具有至少一个x86指令集核1016的处理器原生执行的x86 二进制代码1006。具有至少一个x86指令集核1016的处理器表示任何处理器,这些处理器能通过兼容地执行或以其他方式处理以下内容来执行与具有至少一个x86指令集核的英特尔处理器基本相同的功能:1)英特尔x86指令集核的指令集的本质部分(substantial portion),或2)目标旨在在具有至少一个x86指令集核的英特尔处理器上运行的应用或其它程序的对象代码版本,以便取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果。x86编译器1004表示用于生成x86 二进制代码1006(例如,对象代码)的编译器,该二进制代码1006可通过或不通过附加的可链接处理在具有至少一个x86指令集核1016的处理器上执行。类似地,图10示出用高级语言1002的程序可以使用替代的指令集编译器1008来编译,以生成可以由不具有至少一个x86指令集核1014的处理器(例如具有执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集,和/或执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器)来原生执行的替代指令集二进制代码1010。指令转换器1012被用来将x86 二进制代码1006转换成可以由不具有x86指令集核1014的处理器原生执行的代码。该经转换的代码不大可能与替换性指令集二进制代码1010相同,因为能够这样做的指令转换器难以制造;然而,转换后的代码将完成一般操作并由来自替换性指令集的指令构成。因此,指令转换器1012表示:通过仿真、模拟或任何其它过程来允许不具有x86指令集处理器或核的处理器或其它电子设备得以执行x86 二进制代码1006的软件、固件、硬件或其组合。
[0084]同样,尽管附图中的流程图示出本发明的某些实施例的特定操作顺序,应该理解该顺序是示例性的(例如,可选实施例可按不同顺序执行操作、组合某些操作、使某些操作重置等)。
[0085]在以上描述中,出于解释的目的,阐明了众多具体细节以提供对本发明的实施例的透彻理解。然而,对本领域技术人员而言将是明显的是,不用这些具体细节中的一些也可实践一个或多个其他实施例。提供所描述的具体实施例不是为了限制本发明而是为了说明本发明的实施例。本发明的范围不是由所提供的具体示例确定,而是仅由所附权利要求确定。
【权利要求】
1.一种用于高效能耗的装置,包括: 处理器;以及 与所述处理器耦合的控制器,用于: 接收对应于所述处理器的当前温度的温度测量, 至少部分地基于所述温度测量和所述处理器的多个内部限制来确定对正被施加给所述处理器的电压的调整,其中所确定的对电压的调整是基于所述处理器的工作频率和电压中的至少一项同温度之间的逆向温度依赖性关系的,以及将所确定的对电压的调节提供给电压调节器接口。
2.如权利要求1所述的装置,其特征在于,所确定的对电压的调整进一步是基于同所述处理器相关联的一组工作参数和所述处理器的期望工作频率的。
3.如权利要求1所述的装置,其特征在于,所述处理器在空闲状态,并且所确定的电压调节对正在施加给所述处理器的当前电压进行调节以使所述处理器得以维持多个状态变量。
4.如权利要求1所述的装置,其特征在于,所述控制器为所述处理器的所述多个内部限制中的每一个确定单独的电压调节值,并且从所述单独的电压调节值中选择将被提供给所述电压调节器接口的 单一电压调节。
5.如权利要求4所述的装置,其特征在于,所述多个内部限制包括晶体管速度电压最小值和处理器阵列电压最小值。
6.如权利要求1所述的装置,其特征在于,所述控制器基于所述当前温度是否高于或低于温度阈值而在若干分立电压水平之间进行选择。
7.如权利要求6所述的装置,其特征在于,所述电压调节器接口通过在电压调节器接口和半固定的电压调节器之间切换一个或多个接线连接来在多个分立的电压水平间移动。
8.一种用于高效能耗的方法,包括: 接收对应于处理器的当前温度的温度测量; 至少部分地基于所述温度测量和所述处理器的多个内部限制来确定对正被施加给所述处理器的电压的调整,其中所确定的对电压的调整是基于所述处理器的工作频率和电压中的至少一项同温度之间的逆向温度依赖性关系的;以及将所确定的对电压的调节提供给电压调节器接口。
9.如权利要求8所述的方法,其特征在于,所确定的对电压的调节进一步是基于同所述处理器相关联的一组工作参数和所述处理器的期望工作频率的。
10.如权利要求8所述的方法,其特征在于,所述处理器在空闲状态,并且所确定的电压调节对正在施加给所述处理器的当前电压进行调节以使所述处理器得以维持多个状态变量。
11.如权利要求8所述的方法,其特征在于,所述控制器为所述处理器的所述多个内部限制中的每一个确定单独的电压调节值,并且从所述单独的电压调节值中选择将被提供给所述电压调节器接口的单一电压调节。
12.如权利要求11所述的方法,其特征在于,所述多个内部限制包括晶体管速度电压最小值和处理器阵列电压最小值。
13.如权利要求8所述的方法,其特征在于,还包括:基于所述当前温度高于或低于温度阈值来在若干分立的电压水平间进行选择。
14.如权利要求13所述的方法,其特征在于,所述电压调节器接口通过在电压调节器接口和半固定的电压调节器之间切换一个或多个接线连接来在多个分立的电压水平间移动。
15.一种包含指令的非瞬态计算机可读存储介质,所述指令在由处理系统执行时使所述处理系统执行一种方法,所述方法包括: 接收对应于处理器的当前温度的温度测量; 至少部分地基于所述温度测量和所述处理器的多个内部限制来确定对正被施加给所述处理器的电压的调整,其中所确定的对电压的调整是基于所述处理器的工作频率和电压中的至少一项同温度之间的逆向温度依赖性关系的;以及将所确定的对电压的调节提供给电压调节器接口。
16.如权利要求15所述的计算机可读存储介质,其特征在于,所述处理器在空闲状态,并且所确定的电压调节对正在施加给所述处理器的当前电压进行调节以使所述处理器得以维持多个状态变量。
17.如权利要求15所述的计算机可读存储介质,其特征在于,所述控制器为所述处理器的所述多个内部限制中的每一个确定单独的电压调节值,并且从所述单独的电压调节值中选择将被提供给所述电压调节器接口的单一电压调节。
18.如权利要求17所述的计算机可读存储介质,其特征在于,所述多个内部限制包括晶体管速度电压最小值和处理器阵列电压最小值。
19.如权利要求15所述的计算机可读存储介质,其特征在于,还包括: 基于所述当前温度高于或低于温度阈值来在若干分立的电压水平间进行选择。
20.如权利要求19所述的计算机可读存储介质,其特征在于,所述电压调节器接口通过在电压调节器接口和半固定的电压调节器之间切换一个或多个接线连接来在多个分立的电压水平间移动。
【文档编号】G06F9/46GK104011621SQ201280063043
【公开日】2014年8月27日 申请日期:2012年12月5日 优先权日:2011年12月22日
【发明者】R·D·威尔斯, U·萨松, I·M·索迪, S·加哈吉达 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1