配置在多重处理器核心之间的分散式电源管理的制作方法

文档序号:6442731阅读:472来源:国知局
专利名称:配置在多重处理器核心之间的分散式电源管理的制作方法
技术领域
本发明涉及多核心微处理器设计的领域,特别是涉及供多核心及多核心处理器的多核心域(domain)用的受限制的操作状态的管理与实现。
背景技术
现代化的微处理器减少它们的电源消耗的一种主要方式,是减少微处理器操作时的频率和/或电压。此外,在某些实例中,微处理器可能允许时钟信号对于其电路的多个部分禁能。最后,在某些实例中,微处理器可能甚至对于其电路的多个部分一起移除电源。再者,有时候微处理器需要尖峰性能,以使其需要于其最高电压及频率下操作。微处理器采取电源管理动作以控制微处理器的电压与频率电平以及时钟与电源禁能。典型地,微处理器采取电源管理动作,以因应来自操作系统的指导(direction)。熟知的x86MWAIT指令为一种让操作系统可能执行以要求进入至一从属于实现的最佳化状态的指令的一例子,此操作系统使用此状态以执行进阶的电源管理。最佳化状态可能是休眠或闲置状态。熟知的进阶配置电源接口(ACPI)规格,藉由界定操作或电源管理相关的状态(例如"C-状态" 及"P-状态")以促进操作系统导向的电源管理。因为多数的现代化微处理器是多核心处理器(其中多重处理核心共用一个或多个电源管理相关的资源)的事实,所以执行电源管理动作是复杂的。举例而言,多个核心可能共用电压源和/或时钟源。再者,包含一多核心处理器的计算系统亦典型地包含一芯片组,其包含多个用以桥接处理器总线至系统的其他总线(例如,至周边I/O总线)的总线桥,并包含一个用以连接多核心处理器至一系统存储器的存储器控制器。芯片组可能密切地参与各种电源管理动作,且在本身与多核心处理器之间可能需要协调。更明确而言,于某些系统中,利用多核心处理器的允许,芯片组可能禁能一个位于处理器总线上的时钟信号,处理器接收并使用此时钟信号以产生其本身的内部时钟信号的大部分。在多核心处理器的情况下,所有使用总线时钟的核心必须备妥芯片组以禁能总线时钟。亦即,直到为芯片组准备好所有核心以这样做,芯片组才能给予允许以禁能总线时钟。另外,芯片组正常地窥探处理器总线上的快取存储器。举例而言,当一周边装置于一周边总线上产生一存储器存取时,芯片组附和于处理器总线上的存储器存取,能使处理器可窥探其快取存储器以判定其是否支持于窥探地址的数据。举例而言,众人皆知USB装置是用以定期地轮询存储器位置,这会于处理器总线上产生周期性的窥探循环。在某些系统中,多核心处理器可能进入一深休眠状态,于其中其刷新其快取存储器并对快取禁能时钟信号,以便节省电源。于此情况下,对多核心处理器而言,唤醒以因应处理器总线上的窥探循环以窥探其快取(因为它们是空的,所以其将不会传回一击中),然后回到休眠时是浪费的。因此,利用多核心处理器的允许,芯片组可能被授权不要产生处理器总线上的窥探循环,以便达成额外的电源节约。然而,再者,所有的核心必须备妥芯片组以关闭窥探。亦即, 直到为芯片组准备好所有核心以这样做为止,芯片组才能给予允许以关闭窥探。
发证给Naveh等人(以下以Naveh代表)的美国专利第7,451,333号揭示一种包含多重处理核心的多核心微处理器。每一个核心能检测一个要求核心转变成一闲置状态的命令。多核心处理器亦包含硬件协调逻辑(HCL)。HCL接收来自核心的闲置状态状况,并基于命令与核心的闲置状态状况管理核心的电源消耗。更明确而言,HCL决定是否所有核心已检测一项要求对一共通状态的一转变的命令。如果不是的话,则HCL选择在命令的闲置状态之间的一最浅状态以作为每个核心的闲置状态。然而,如果HCL检测一项要求转变成一共通状态的命令,则HCL可以开始共用的电源节约特征,例如性能状态减少、一共用的锁相回路(PLL)的关闭或处理器的一执行情况的节省。HCL亦可防止外部中断事件到达核心, 并可将所有核心转变成共通状态。尤其,HCL可利用芯片组实施一握手顺序以将核心转变成共通状态。在由Alon Naveh等人所写的论文中,名称为"英特尔酷睿核心处理器中的电源及热管理(Power and Thermal Managment in the Intel Core Duo Processor)“,其出现在 2006年5月15日发行的英特尔科技期刊中,Naveh等人说明一种使用设置于晶粒或平台的共用区域中的非核心硬件协调逻辑(HCL)的相容C-状态控制结构,其作为在个别核心与晶粒及平台上的共用资源之间的一层。HCL基于核心的个别需求决定所需要的CPU的C-状态, 控制共用资源的状态,并模仿一传统的(legacy)单核心处理器,用以利用芯片组实现C-状态进入协定。在由Naveh参考文献两者所揭示的机制中,HCL是集中在核心它们自己外部的非核心逻辑,其执行代表所有核心的电源管理动作。这种集中化非核心逻辑解决方法可能是不利的,特别是如果因要大晶粒尺寸而可能高良率致使HCL被要求存在于与核心相同的晶粒上,尤其在期望在晶粒上包含多数核心的组态中。

发明内容
在本发明的一个实施样态中,提供一种多核心处理器,其包含多个实体处理核心以及在每个核心中的核心间状态发现微码。核心间状态发现微码可使核心参与一分散式核心间电源状态发现过程。与此相关的,一分散式微码实现方法提供发现一多核心处理器的电源状态,多核心处理器包含参与一分散式核心间状态发现过程的至少两个核心。核心间状态发现过程经由在每个参与核心上执行的微码以及通过旁带非系统总线通讯配线在核心之间交换的信号的组合而被实现。发现过程是不通过任何集中式非核心逻辑。此外,在多数实施例中,核心间状态发现过程依据一种使用链锁式核心间通讯的适当的或选择的阶层式协调系统而被实现。在其他实施样态中,提供核心间状态发现过程,以供微处理器组态(包含促使核心启动及多少核心被启动的资源的利用率与分布)以及微处理器的阶层式协调构造与系统(包含域与域主识别)的发现用。在本发明的另一实施样态中,提供一种多核心处理器,其包含多个致能的实体处理核心,以及一由两个以上的核心共用的可配置的资源,其中资源的组态影响共享资源的核心利用其能够运作的电源、速度或效率。对每个核心而言,处理器还包含设定每个核心的组态的内部核心电源状态管理逻辑,用以参与在核心之间被实现的一种分散式核心间电源状态发现过程,而无须集中式非核心逻辑的协助。如果核心为了设定共用资源的组态的目的而被指定为一主控核心,且复合目标电源状态经由分散式核心间电源状态发现过程而被发现,则内部核心电源管理逻辑设定核心的组态以唆使设定共用资源的组态的一复合目标电源状态的实现。对共用资源而言,复合目标电源状态为一种最节能型的电源状态,其将不会干涉共享资源的每个核心的任何对应的目标电源状态。在一个相关的实施样态中,提供一种供一多核心处理器用的管理电源状态的分散方法。一核心接收影响在本身及至少一其他核心之间所共用的一可配置的资源的一目标电源状态,其中目标电源状态定义将影响共享资源的核心利用其能够运作的电源、速度或效率的资源的组态。核心参与一核心间电源状态发现过程,其包含不通过任何集中式非核心逻辑而与共享该资源的至少一其他核心的电源状态的一交换。如果核心是为了设定共用资源的组态的目的而被指定为一主控核心,且复合目标电源状态经由分散式核心间电源状态发现过程而被发现,则核心唆使用以设定共用资源的组态的一复合目标电源状态的实现。在另一实施样态中,本发明提供一多核心处理器。多核心处理器的每个核心包含电源状态管理微码,用以设定那个核心的组态以参与一分散式核心间复合电源状态发现过程。电源状态管理微码可使每个核心接收一状态转变要求,用以依据多个预定电源状态 (包含一有效操作状态及一个或多个渐进地较不敏感的状态)的任何要求的目标的其中一个设定其设成为本身的组态。当一核心接收一要求以转变成为一受限制的电源状态(例如会干涉由其他核心所共用的资源的一电源状态)时,则其电源状态管理微码开始一分散式核心间复合电源状态发现过程,用以决定是否所有其他受影响的核心做好那个受限制的电源状态的准备。如果参与发现过程的核心确认受限制的电源状态为复合电源状态,则授权的其中一个核心经由其电源状态管理微码实现或启动受限制的电源状态的植入。具体而言,授权核心将实现最限制的或节能型的操作状态,其可藉由核心而被实现,而不会干涉其他核心的对应的目标操作状态。在另一实施样态中,每个核心的电源管理微码的一部分或常式为同步逻辑,其组态被设计成用以与其他节点地连接核心交换电源状态信息来决定混合电源状态。同步逻辑的每个实施实例(instance)被设计成用以在尚未同步节点地连接的核心(其为节点地连接至本身的核心,且同步逻辑的一同步化实例尚未为其实施)中至少有条件地产生同步逻辑的从属实例,以作为一复合电源状态发现过程的一部分。于一实施例中,核心的电源管理微码被设计成用以实现;一目标电源状态,而无须实施其同步逻辑的一原生性实例,如果核心的目标电源状态并非一种不需要与其他核心协调的受限制的电源状态核心。否则,电源管理逻辑设定核心的组态以实现目标电源状态的非限制实施样态或一附属电源状态的非限制实施样态(例如局部电源节约动作)于核心上,且亦实施其同步逻辑的一原生性实例,以为受限制的电源状态所应用到的核心的最大域开始复合电源状态发现过程。在发现对应到目标受限制的电源状态的一复合电源状态时,授权以实现复合电源状态的一核心(典型地最大影响范围的主控核心)的电源管理微码启动和/或进行复合电源状态的实现。在另一实施样态中,本发明提供一种供一多核心处理器(例如,如上所述地被设计的处理器)用的管理电源的分散方法。此方法包含接收针对任一种核心的一状态转变要求,以依据一目标电源状态设定那个核心(“原生性核心")的组态。如果目标电源状态为一受限制的电源状态,则执行于原生性核心上的电源管理逻辑实施同步逻辑的一原生性实例以开始一分散式核心间复合电源状态发现过程,于其中此核心与其他核心交换电源状态。此方法还包含评估发现的电源状态,以及回应地有条件地实现或启动受限制的电源状态的实现。同步逻辑的每个原生性实例产生在一个或多个节点地连接核心上的同步逻辑的一个或多个从属实例。这些从属实例因而可操作的以产生它们的同步逻辑的额外从属实例。同步逻辑的每个实例决定至少一混合电源状态,及递归地产生(除非由一终止条件所终止,如果有个话)同步逻辑的又更进一步的从属实例逻辑于尚未同步的节点地远端核心上,直到有同步逻辑的同步化实例位于核心潜在地冲击域的每一个核心为止。在发现复合电源状态等于受限制的电源状态时,执行于一授权核心上的电源管理逻辑启动和/或进行实现。在另一实施样态中,本发明提供微码,其被编码在包含分散式核心间状态发现与上述的电源管理逻辑的一多核心处理器的一实体核心的一计算机可读取的储存媒体中。


图1为显示一计算机系统的一个实施例的方块图,计算机系统执行分配在一双晶粒四核心微处理器的多重处理核心之间的分散式电源管理。图2为详细显示图1的代表的其中一个核心的方块图。图3为显示执行分配在多核心微处理器的多重处理核心之间的分散式电源管理的一系统的一电源状态管理常式的一个实施例的藉由一核心的操作的流程图。图4A-图4C为显示整合至图3的系统的复合电源状态发现过程的一电源状态同步常式的一个实施例的藉由一核心的操作的流程图。图5为显示一唤起与重新开始常式以因应从一休眠状态将其唤醒的一事件的一个实施例的藉由一核心的操作的流程图。图6为显示一核心间中断处理常式以因应接收一核心间中断的藉由一核心的操作的流程图。图7为显示依据图3至6的说明的一复合电源状态发现过程的操作的一例子的流程图。图8为显示依据图3至6的说明的一复合电源状态发现过程的操作的另一个例子的流程图。图9为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器(其在单一封装上具有四个双核心晶粒)的多重处理核心之间的分散式电源管理。图IOA-图IOC为显示整合至图9的系统的一复合电源状态发现过程的一电源状态同步常式的一个实施例的藉由一核心的操作的流程图。图11为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器的多重处理核心之间的分散式电源管理,八核心微处理器具有四个双核心晶粒,其使用图10的电源状态同步常式而分配在两个封装上。图12为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器的多重处理核心之间的分散式电源管理,依据一较深的阶层式协调系统, 八核心微处理器像图11具有四个双核心晶粒,但其核心不像图11而是彼此相互关连的。图13A-图13D为显示整合至图12的系统的一复合电源状态发现过程的一电源状态同步常式的一个实施例的藉由一核心的操作的流程图。图14为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器的多重处理核心之间的分散式电源管理,依据一较深的阶层式协调系统, 八核心微处理器像图9在单一封装上具有四个双核心晶粒,但其核心不像图9而是彼此相互关连的。图15为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器(其在单一封装上具有两个四核心晶粒)的多重处理核心之间的分散式电
源管理。图16为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器的多重处理核心之间的分散式电源管理。图17A-图17C为显示整合至图16的系统的一复合电源状态发现过程的一电源状态同步常式的一个实施例的藉由一核心的操作的流程图。图18为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种双核心、单一晶粒微处理器的核心之间的分散式电源管理。图19为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在具有两个单核心晶粒的一种双核心微处理器的核心之间的分散式电源管理。图20为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在具有两个单核心、单一晶粒封装的一双核心微处理器的核心之间的分散式电源管理。图21为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器的核心之间的分散式电源管理,八核心微处理器具有两个封装,其中一个具有三个双核心晶粒,而其另一个具有单一双核心晶粒。图22为显示一计算机系统的另一实施例的方块图,计算机系统执行分配在一种八核心微处理器的核心之间的分散式电源管理,八核心微处理器类似于图21,但具有一较深的阶层式协调系统。图23为显示在一核心上实现的操作状态同步逻辑的另一实施例的流程图,其支持一种域区别的(domain-differentiated)操作状态层次协调系统且对于不同的域深度是可计量的。附图符号说明P、P1-P8:接脚100 计算机系统102 多核心微处理器/封装104 单核心晶粒/封装106 核心108 焊垫112:核心间通讯配线114:芯片组
116:总线118:通讯配线202 指令快取204 指令译码器206 微序列器207 微码存储器208 微码212 注册别名表(RAT)214 保留站216 执行单元218 撤退单元222 数据快取M4 总线接口单元(BIU)226 锁相回路(PLL)228 =BSP 指示器232 主控指示器234 =CSR236 =CSR238 特别模块寄存器(MSR)M2 核心时钟信号900 计算机系统902 多核心微处理器/封装1100:计算机系统1102:四核心微处理器1133:封装间通讯配线1200 计算机系统1201 第二封装1202 多核心微处理器/封装1400 计算机系统1402 多核心微处理器/封装1500 计算机系统1502 多核心微处理器/封装1504 晶粒1600 计算机系统1602 多核心微处理器1802 双核心微处理器1902 双核心微处理器2002 双核心微处理器2202 八核心处理器
2300:逻辑2302 :sync_state
具体实施例方式于此所说明的为藉由使用固有的且被复制在每个核心上的分散式的分配逻辑,用以协调、同步、管理以及实现一多核心处理器上的电源、休眠或操作状态的系统与方法的实施例。在说明表示详细的实施例的每一张图之前,先将本发明的更一般的适用概念介绍于下。I.多层多核心处理器概念如于此所使用的,一种多核心处理器通常表示一个包含多个致能的实体核心的处理器,每个致能的实体核心被设计成用以提取、解码并执行遵循一指令集架构的指令。一般而言,多核心处理器藉由一系统总线(最后由所有核心所共用)而耦接至一芯片组,藉以提供存取至周边总线到达各种装置。在某些实施例中,系统总线为一前侧总线,其为从处理器至其余计算机系统的一外部接口。在某些实施例中,芯片组亦集中存取至一共用的主存储器以及一共用的图形控制器。多核心处理器的核心可能被封装在包含多重核心的一个或多个晶粒中,如说明于申请案序号61/似6,470的段落中,其申请日为2010年12月22日,名称为〃多核心处理器内部旁通总线(Multi-Core Processor Internal Bypass Bus)",以及其同时申请的非临时(nonprovisional)申请案(CNTR. 2503),其于此并入作参考。如于其中所提出的,一种典型的晶粒为已被切成或切割为单一物理实体的一片半导体晶圆,且一般具有至少一组的实体1/0软性着陆焊垫。例如,某些双核心晶粒具有两组1/0焊垫,一组供其核心的每一个用。其他双核心晶粒具有单一组的1/0焊垫,其是在其双核心之间被共用。某些四核心晶粒具有两组1/0焊垫,一组供两组双核心的每一个用。多重组态是可能的。再者,一种多核心处理器亦可能提供一种主宰多重晶粒的一封装。一种〃封装〃 为上面存在或安装有晶粒的一基板。此"封装"可能提供单一组的接脚,以供连接至一主机板以及相关的处理器总线。封装的基板包含将晶粒的焊垫连接至封装的共用接脚的配线网或线路。更进一步的分层的层次是可能的。举例而言,于此说明为一"平台"的一额外层, 可能设置在安装于那个平台的多重封装以及一下层主机板之间。平台依多数方式可能像上述的封装,其包含一个基板,此基板具有连接每个封装的接脚与平台的共用接脚的配线网或线路。应用上述概念,在一个例子中,一种多封装处理器可被视为N2个封装的一平台, 每个封装具有W个晶粒,且每个晶粒具有NO个核心,于此N2、Nl以及NO每个大于或等于 1,且N2、N1以及NO的至少一者大于或等于2。II.核心间通讯构造如上所述,非核心但晶粒上的硬件协调逻辑(HCL)的使用以实现要求核心间协调的限制活动的一些缺点包含更复杂的、较不对称的且较低良率的晶粒设计以及缩放挑战。 一替代方式是藉由使用芯片组本身来执行所有这种协调,但这潜在地需要在每个核心与系统总线上的芯片组之间的传输,以便传递适合数值给芯片组。这种协调典型地亦需要经由例如BIOS的系统软件来实现,通过它制造商可能受限制或根本无法控制。为了克服两种习知方法的缺点,本发明的某些实施例利用在多核心处理器的核心之间的旁带连接。这些旁带连接并未连接至封装的实体接脚;因此,它们并未从封装传送信号;经由它们交换的通讯也不会要求系统总线上的对应的传输。举例而言,如说明于CNTR. 2503,每个晶粒可能提供一条在晶粒的核心之间的旁通总线。旁通总线并未连接至晶粒的实体焊垫;因此其并未传送信号离开双核心晶粒。旁通总线亦提供在核心之间的改善的品质信号,并可使核心彼此传递或协调而无须使用系统总线。可考虑多重变化。举例而言,如说明于CNTR. 2503,一种四核心晶粒可能提供一条在两组双核心之间的旁通总线。或者,如说明于以下的一个实施例,一种四核心晶粒可能提供在一晶粒的两组核心的每一个之间的旁通总线,以及在从两组选择的核心之间的另一条旁通总线。在另一实施例中,一种四核心晶粒可能提供在每一个核心之间的核心间旁通总线,如下关于图16所述。另外,在另一实施例中,一种四核心晶粒可能提供在第一与第二核心、第二核心与第三核心、第三与第四核心以及第一与第四核心之间的核心间旁通总线,而无须提供在第一与第三核心之间或在第二与第四核心之间的核心间旁通总线。一种类似的旁带组态(即使在分配在两个双核心晶粒上的核心之间)是显示于申请案序号 61/似6,470的段落中,申请日为2010年12月22日,名称为〃共用电源对多核心微处理器白勺分配 (Distributed Management of a Shared Power Source to a Multi-Core Microprocessor)“,以及其同时申请的非临时(nonprovisional)申请案(CNTR. 25;34),其是于此并入作参考。另外,本发明考虑到比CNTR. 2503的旁通总线较不广泛的核心间通讯配线组, 例如说明于申请案序号61/4 ,470的段落中的替代实施例,申请日为2010年12月22 日,名称为〃光罩设置修改以产生多核心晶粒(Reticle Set Modification to Produce Multi-Core Dies)“,以及其同时申请的非临时(nonprovisional)申请案(CNTR. 25 ), 其是于此并入作参考。核心间通讯配线的一种较不广泛组的一个例子显示于CNTR. 2534,其是于此并入作参考。核心间通讯配线组在包含配线的数目上,视需要尽可能小,用以启动如于此所说明的协调活动。核心间通讯配线亦可能依一种类似于以下更进一步说明的晶粒间通讯线的方式而被设计并介设在核心之间。再者,一封装可能提供在一封装的晶粒之间的晶粒间通讯线,而一平台可能提供在平台的封装之间的封装间通讯线。如以下将更完全说明的,晶粒间通讯线的实现可能需要每个晶粒上的至少一额外实体输出焊垫。同样地,封装间通讯线的实现可能需要每个封装上的至少一额外实体输出焊垫。另外,如以下更进一步说明的,某些实现提供超过一最低限度足够数目的输出焊垫的额外输出焊垫,用以在协调核心中允许更大的挠性。为了任何这些各种可能的核心间通讯实现,较好是他们不需要任何一个核心外部的有效逻辑 (active logic)。如此,期望本发明的各种实施例的实现通过使用一种非核心HCL或其他有效非核心逻辑以协调核心的实现提供某些优点,如于此明显做出的。III.阶层式概念再次重申,本发明说明除非另有规定,否则并未受限于多核心多处理器的数个实施例,其提供旁带通讯配线且通过系统总线优先使用这种配线以协调核心,以便实现或允许某些构造或限制活动的实现。在多数这些实施例中,这些实体实现是与阶层式协调系统相关联地被使用,以执行期望的硬件协调。于此所说明的某些阶层式协调系统是非常复杂的。举例而言,图1、9、11、12、14、15、16、18、19、20、21以及22说明具有组织并促进例如电源状态管理的核心间协调活动的各种阶层式协调系统的多核心处理器的实施例。此说明书亦提供数个阶层式协调系统的渐进更抽象的特性记述,以及甚至更精巧及复杂的阶层式协调系统的例子。因此,在进入用以允许一构造或限制活动的实现的核心间协调过程的高度特定例子之前,说明于此考虑到的各种阶层式协调系统的各种实施样态是有益的。如于此所使用的,一种阶层式协调系统表示一种为了某些恰当或预定活动或目的,将核心设计成用以以一种至少局部受限或组织的阶层式方式彼此协调的系统。于此,这与一相等的端对端(peer-to-peer)协调系统(于其中,每个核心同等享有特权并可直接与任何其他核心(以及与芯片组)协调以执行一恰当活动)有所区别。举例而言,一种节点树构造(于其中,为了某些限制活动,核心仅与优越的排名或下方的排名的节点连接核心协调,以及关于节点树构造,在任何两个节点之间只存在有一条单一路径)将构成一严密的阶层式协调系统。如于此所使用的,除非更严格地定义,否则一阶层式协调系统亦包含较为松散的阶层式的协调系统,例如一种允许在至少一群组的核心之内的对等协调的系统, 但要求在至少两个核心群组之间的阶层式协调。于此呈现严格及松松的阶层式协调系统两者的例子。于一实施例中,假设一种阶层式协调系统对应至一微处理器中的核心的一配置, 微处理器具有多个封装,每个封装具有多个晶粒,且每个晶粒具有多个核心。将每层视为一"域(domain)"时是有用的。举例而言,一种双核心晶粒可被视为由其核心所组成的域, 一种双晶粒封装可被视为由其晶粒所组成的一域,以及一双封装平台或微处理器可被视为由其封装所组成的一域。将核心本身说明为一域亦是有用的。这种"域"的概念化在表示例如一快取、一电压源或一时钟源的一资源上亦是有用的,此资源由一域的核心所共用,但此资源以别的方法位于那个域的近端(亦即,并未由那个域的外部的核心所共用)。当然, 适合于任何既定的多核心处理器的域深度以及每个域的成份的数目(例如,于此,一晶粒为一域,封装为一域,等等)可依据核心的数目、它们的分层以及各种资源由核心所共用的方式改变并放大或缩小。为不同型式的域之间的关系命名亦是有用的。如于此所使用的,在一种多核心晶粒上的所有致能的实体核心被视为那个晶粒的"成份(constituents)"以及彼此的"共同成份(co-constituents)“。同样地,在一多晶粒封装上的所有致能的实体晶粒被视为那个封装的成份以及彼此的共同成份。同样地,在一种多封装处理器上的所有致能的实体封装将被视为那个处理器的成份以及彼此的共同成份。再者,这种表现可能延伸至像设有多核心处理器一样的域深度的多数层次。一般而言,每个非终端域层次是由一个或多个成份所定义,每一个成份包含阶层式构造的下一个较低的域层次。在某些多核心处理器实施例中,对每个多核心域(例如,对每个晶粒,对每个封装,对每个平台等等)而言,其的唯一一个核心被指定为并设有供那个域用的一"主控 (master)“的一对应的功能把关或协调角色。举例而言,每个多核心晶粒的单一核心(如果有的话)被指定为那个晶粒的一"晶粒主控",每个封装的单一核心被指定为那个封装的一"封装主控"(PM),以及(对如此成层的一处理器而言)每个平台的单一核心是被指定为供那个平台用的"平台主控"等等。一般而言,此阶层的最高域的主控核心作为多核心处理器的唯一的"总线服务处理器"(BSP)核心,其中只有BSP被授权以使某些型式的活动与芯片组协调。可注意到,为了便利性,于此采用例如"主控"的专门用语,且除"主控"之外的标签(例如"委派(delegate)")可被应用以说明这种功能角色。更进一步的关系定义在每个域主控核心与核心之间,为预定目的或活动(为其所标示的),利用核心允许其直接协调。于最低域层次(例如,一晶粒),对于那个晶粒的致能的非主控核心的每一个,一种多核心晶粒的晶粒主控核心可能被视为一"朋友(pal)"。一般而言,对于相同晶粒的其他核心的任何一个,一晶粒的每一个核心是被视为一朋友。但在一替代特性记述中,朋友指定被限定为在晶粒主控核心与一种多核心晶粒的其他核心之间的附属关系。将这种替代特性记述应用至一种四核心晶粒,晶粒主控核心将具有三个朋友, 但其他核心的每一个将被视为只具有单一朋友(晶粒主控核心)。于下一个域层次(例如封装),对于相同封装上的其他主控核心的每一个,一封装的PM核心可能被视为一"伙伴(buddy)"。一般而言,对于相同封装的彼此晶粒主控核心, 一封装的每一个晶粒主控核心被视为一伙伴。但在一替代特性记述中,伙伴指定限定于一封装主控核心与那个封装的其他主控核心之间的附属关系。将这种替代特性记述应用至一种四晶粒封装,PM核心将具有三个朋友,但其他晶粒主控核心的每一个将被视为只具有单一朋友(PM核心)。在另一种替代特性记述(例如在图11中所提出的)中,对于处理器中的其他主控核心的每一个(包含在处理器的一不同封装上的主控核心),一主控核心被视为一〃伙伴"。于下一个域层次(例如,具有这种深度的一种多核心处理器的平台),对于平台的其他PM核心的每一个,BSP(或平台主控(master))核心被视为一〃好友(chum) 〃。一般而言,对于相同平台的彼此PM核心,每一个PM核心是关于一好友。但在一替代特性记述中, 好友指定是限定于在一 BSP封装主控核心与一平台的其他PM核心之间的附属关系。将这种替代特性记述应用至一种四封装平台,BSP核心将具有三个朋友,但其他PM核心的每一个将被视为只具有单一朋友(BSP)。上述的朋友/伙伴/好友关系于此一般更被视为〃同属性(kinship)丨'关系。每个"朋友"核心属于一个同属性群组,每个"伙伴"核心属于一较高层次的同属性群组, 以及每个"好友"核心属于又更高层次的同属性群组。换言之,上述阶层式协调系统的各种域定义对应的"同属性"群组(例如,朋友的一个或多个群组、伙伴的群组以及好友的群组)。此外,一特定核心的每个"朋友"、“伙伴"以及"好友"核心(如果有的话)一般可更被视为一〃家族(kin)“核心。如于此所使用的,一同属性群组的概念是略不同于一域的概念。如上所述,一域是由在其域中的所有核心所组成。举例而言,一封装域一般是由封装上的所有核心所组成。相较之下,一同属性群组相较之下一般是由相对应的域的选择组成核心所组成。例如,一封装域一般将定义一对应的同属性群组,其由封装上的只有由主控核心(其中一个亦为一封装主控核心)所构成,而非任何一个朋友核心所构成。一般而言,只有终端多核心域(亦即, 不具有组成域的域)将定义包含所有其核心的一对应的同属性群组。举例而言,一双核心晶粒一般将定义一终端多核心域,其具有包含晶粒的核心两者的一对应的同属性群组。将注意到把每个核心看成界定其自己的域亦是适当的,因为每个核心一般包含位于在本身的近端且未被其他核心所共用的资源,其可能藉由各种操作状态而被设计。
将明白在上述的朋友/伙伴/好友阶层,非一主控核心的每个核心只是一朋友,并属于只由相同晶粒上的核心所构成的单一同属性群组。每个晶粒主控核心第一属于由相同晶粒上的朋友核心所组成的最低层次同属性群组,而第二属于由相同封装上的伙伴核心所组成的一同属性群组。每个封装主控核心第一属于由相同晶粒上的朋友核心所组成的一最低层次同属性群组,第二属于由相同封装上的伙伴核心所组成的一同属性群组,而第三属于由相同平台上的好友核心所组成的一同属性群组。简言之,每个核心属于W同属性群组, 于此W等于同属性群组(那核心是一主控核心)的数目加上1。为了更进一步叙述同属性群组的阶层式本质的特征,任何既定核心的"最接近的"或"最直接的"同属性群组对应至那个核心为其的一部分的最低层次多核心域。在一个例子中,无论一特定核心具有多少主控指定核心,其最直接的同属性群组包含其在相同晶粒上的朋友。一主控核心亦将具有一第二接近的同属性群组,其包含在相同封装上的核心的伙伴或伙伴们。一封装主控核心亦将具有包含核心的好友的一第三接近的同属性群组。值得注意的是,上述的同属性群组对于一多层次多核心处理器(其中至少两个层次Nx具有多重成份)将是半独占的。亦即,对这种处理器而言,没有既定的同属性群组将包含那个处理器的所有核心。上述的同属性群组概念甚至可更进一步藉由不同的协调模型而被特征化,一同属性群组可能采用在其组成核心之间。如于此所使用的,在一"主控仲裁的"同属性群组中,在核心之间的直接协调被限定为在主控核心及其非主控核心之间的协调。在同属性群组之内的非主控核心无法彼此直接协调,但只间接地经由主控核心。在一"同侪合作"同属性群组中,相较之下,同属性群组的任何两个核心可能彼此直接协调,而无须主控核心的仲裁。在一同侪合作同属性群组中,对于主控的一种更功能性地相容专门用语将是一"委派",因为其作为一协调看门人,只为了与较高层次域协调,而不为了与在同属性群组织同侪之间协调。应注意到,于此定义在一"主控仲裁"及"同侪合作"同属性群组之间的区另|J,只有对于具有三个或三个以上的核心的同属性群组是有意义的。一般而言,对某些预定活动而言,任何既定核心只可与其同属性群组的成份或共同成份协调,及相关于其的任何主控仲裁的同属性群组,其为一部分,只适合地具有其较优的"共同成份"或较差成份。从一节点阶层的节点与节点连接的角度说明上面的阶层式协调系统亦是适当的。如于此所使用的,一节点阶层为每个节点是多核心处理器的核心的唯一的一个,其中一个核心(例如,BSP核心)为根节点,且在任两个节点之间存在有一连续不断的协调" 路径"(包含中间节点,如果适合的话)。每个节点是"节点连接"至至少一另一个节点, 而非所有其他节点,且为了为协调系统所应用到的活动的目的,只可与"节点连接的"核心协调。为了更进一步区别这些节点连接,于此将把一主控核心的附属节点地连接核心看成〃成份"核心或者看成"附属家族"核心,“附属家族"核心是与一核心的节点地连接的"共同成份核心"有所区别,而"共同成份核心"为并非附属于本身的节点地连接核心。更进一步说清楚,一核心的节点地连接的"共同成份"核心包含其主控核心(如果有的话),以及其是节点地连接的任何同等阶级的核心(例如,在其的一同侪协调同属性群组,核心为一部分)。另外,不具有附属家族核心的任何核心于此亦被称为"终端"节点或〃终端〃核心。
直到这一点,为了清楚的目的,已说明阶层式协调系统,于其中这些域对应至核心的一实体上清楚的巢状配置(例如,一清楚的域对应至每个适合的核心、晶粒、封装以及平台)。举例而言,图1、9、12、16以及22,所有显示的阶层式协调系统相容于处理器所显示的核心的实体上清楚的巢状封装。图22为一有兴趣的相容例子。其显示具有多个不对称封装的八核心处理器2202,其中一个具有三个双核心晶粒而其余具有单核心晶粒。然而,与利用其封装核心的实体上清楚的巢状方式相符,假设旁带配线定义一对应的三个层次阶层式协调系统,其具有相关作为好友的封装主控,相关作为伙伴的晶粒主控,以及相关作为朋友的晶粒核心。但是,依据一处理器的核心间、晶粒间以及封装间旁带配线(如果有的话)的组态,在核心之间的阶层式协调系统可能被建立,相较在处理器的核心中的巢状实体配置是被封装,其具有一不同深度及分层。数个这种例子是设置于图11、14、15以及21中。图11 显示具有两个封装的八核心处理器,其中每个封装具有两个晶粒,而每个晶粒具有两个核心。在图11中,设置促进二阶阶层式协调系统的多条旁带配线,能使所有的主控核心可能是最高层次同属性群组的一部分,且每个主控核心亦属于包含本身及其朋友的一不同的最低层次同属性群组。图14显示具有在单一封装上的四个双核心晶粒的八核心处理器。在图14中,设置需要朋友、伙伴以及好友的三层次阶层式协调系统的多条旁带配线。图15显示具有两个四核心晶粒的一处理器,于此在每个晶粒之内的核心间配线需要在它们之间的二阶阶层式协调系统,以及多条晶粒间配线,假使一第三阶层式层次的协调设置在每个晶粒的主控(亦即,好友)之间。图21显示像图22具有两个不对称封装的另一种八核心处理器,其中一个不对称封装具有三个双核心晶粒而另一个具有单一双核心晶粒。但是,像图 11 一样,晶粒间及封装间旁带配线是假设促进在核心之间的二阶阶层式协调系统,其中两个封装上的所有的主控核心为相同的同属性群组的一部分。如上所述,不同深度与协调模型的阶层式协调系统,可依期望被应用或适用于提供作为一多核心处理器的共用资源的分布,假若其与多核心处理器的构造能力与限制相符的话。为了更进一步说明,图16显示一种设置足够的旁带通讯配线以促进在每个四核心晶粒的所有核心之间的一同侪合作协调模型的处理器。然而,在图17中,更多限制的主控仲裁协调模型为每个四核心晶粒的核心而建立。此外,如图15所显示的,具有两个朋友同属性群组以及一个主控同属性群组的一多层次协调阶层,如果需要的话,亦可只藉由使用 (为了为协调系统所应用的活动的目的)少于所有可得到的核心间配线而为图16的四核心微处理器的核心而建立。因为图16中的每个四核心晶粒提供在每一个其核心之间的旁带配线,所以晶粒是能够促进阶层式协调系统的所有三种型式。一般而言,不管域、同属性群组以及一多核心处理器的节点的本质与数目为何,每个域的核心的唯一一个以及每个对应的同属性群组将被指定为那个域的主控以及对应的同属性群组。域可具有组成的域,再者,每个域的核心的一个且只有一个以及对应的同属性群组将被指定为那个域的主控。协调系统的最高级核心亦被称为一"根节点"。IV.电源状态管理在介绍关于多核心组态、旁带通讯能力以及阶层式关系的各种概念以后,现在此说明书介绍关于电源状态管理系统的特定考虑的实施例的某些概念。然而,应该明白到,本发明适用于除电源状态管理以外的多样化活动的协调。
在于此所说明的分配式多核心电源管理实施例中,多核心处理器的每个核心包含分散式与分配式可计量电源管理逻辑,复制于常驻在每个核心上的一个或多个微码常式中。电源管理逻辑是可操作以接收一目标电源状态,确定其是否为一受限制的电源状态,开始包含核心间协调的一复合电源状态发现过程,并适当地反应。一般而言,一目标状态为任何需求或期望的预定操作状态(例如C-状态、P-状态、 电压ID(VID)值或时钟比率值)的其中一个一等级。一般而言,一预定群组的操作状态界定包含多个处理器操作状态,其基于一个或多个电源、电压、频率、性能、操作、响应性、共用资源或限制实现特征而可订定。相对于一处理器的其他期望的操作特征,操作状态可能被提供以最佳地管理电源。于一实施例中,预定操作状态包含一有效操作状态(例如CO状态)及多个渐进地较不有效或敏感的状态(例如C1,C2,C3等状态)。如于此使用的,一渐进地较不敏感的或有效状态表示一种相对于更有效或敏感的状态的节省电源的配置或操作状态,或不知何故地相对不太敏感的(例如,较慢、较不完全致能、受到例如存取例如快取存储器的资源的某种障碍、或较易休眠及较难唤醒)。于某些实施例中,基于衍生自或兼容于ACPI规格,预定操作状态构成但并非需要受限于C-状态或休眠状态。于其他实施例中,预定操作状态构成或包含各种电压及频率状态(例如,渐进地较低电压和/或较低频率状态),或两者。另外, 一组预定操作状态可能包含或包含各种可程序化操作配置,例如待执行于程序顺序的强制指令,强制只有一个指令待发布于每时钟周期,每时钟周期格式化只有单一指令,每时钟周期转换只有单一的微指令,每时钟周期收回只有单一的指令,和/或以串联形式存取各种快取存储器,使用的技术例如那些说明于美国申请案序号61/469,515,申请日为2011年3 月30日,名称为〃经由每时钟操作的减少的指令执行状态电源节约(Running State Power Saving Via Reduced Instructions Per Clock Operation) " (CNTR. 2550),其于此并入作参考。将理解到,一种微处理器可能依据不同及独立组或部分独立组的操作状态而可配置的。影响电源消耗、性能和/或响应性的各种操作配置可被分配到不同等级的电源状态, 其的每个等级可能依据一对应的阶层式协调系统而独立实施,其每个具有其本身的独立界定的域、域主控及同属性群组协调模型。一般而言,一个等级的预定操作状态可被分成至少两个类别(1)主近端操作状态,其影响到只有位于核心的近端的资源,或者,相关于共同的实际应用,主要只影响到特定核心的性能;及( 受限制的操作状态,其冲击一个或多个由其他核心共用的资源,或者,相关于共同的实际应用,其相对地更有可能干涉其他核心的性能。冲击共用资源的操作状态是相关于干涉共享那资源的其他核心电源、性能,效率或响应性的相对较大的可能性。 主近端操作状态的实现一般而言并不值得与其他核心协调,或早于来自其他核心协调的允许。相较之下,限制操作状态的实现值得与其他核心协调及备妥性。在更进阶的实施例中,预定操作状态可被分成更多阶层式类别,取决于各种资源是如何共用及共用的程度。例如,一第一组操作状态可能界定位于一核心的近端的资源的配置,一第二组操作状态可能界定由一晶粒的核心共用但不像那样位于那晶粒的近端的资源的配置,一第三组操作状态可能界定由一封装的核心等等共用的资源的配置。一操作状态的实现值得与其他核心共享一个由适合的操作状态配置的资源协调及备妥性质。
一般而言,一种关于任何既定域的复合操作状态为一个属于那个域的每个致能的实体核心的适合的操作状态的极值(亦即最大或最小值)。于一实施例中,一实体核心的适合的操作状态为核心的最近且及仍然正确的目标或需求的操作状态,如果有的话,或者,如果核心并不具有一最近的正确的目标或需求的操作状态的话,实体核心的适合的操作状态为某些预设值。预设值可能是零(例如,复合操作状态被计算为最小值的状况),预定操作状态的最大值(例如,复合操作状态被计算为最大值的状况),或者核心的目前实施的操作状态。于一例子中,一核心的适合的操作状态为一电源或操作状态,例如核心所期望的或需求的电压ID(VID)或时钟比率值。于另一例子中,一核心的适合的操作状态为核心已经从适合的系统软件接收的最近的正确的C-状态。在另一实施例中,一实体核心的适合的操作状态为核心的最近的及仍然正确的目标或需求的操作状态的一极值(如果有的话),以及将影响位于最高域(如果有的话,核心为此最高域具有主控凭据)的近端的资源的最极端操作状态。因此,关于处理器的复合操作状态整体看来将是那处理器的所有的致能的实体核心的适合的电源状态的最大值或最小值。一种封装的复合电源状态将是那封装的所有致能的实体核心适合的电源状态的最大值或最小值。一种晶粒的复合电源状态将是那晶粒的所有的致能的实体核心的适合的电源状态的最大值或最小值。在说明于此的分散式电源状态管理实施例中,每个核心的电源管理逻辑的一部分或常式为同步逻辑,其被设计成用以至少有条件地与其他节点地连接核心(亦即,同一同属性群组的其他核心)交换电源状态信息,以决定一混合电源状态。一种混合电源状态为对应于原生性及同步逻辑的至少一节点地连结实例的核心的至少适合的电源状态的一极值。在某些而非必要所有情况之下,由一同步常式计算及传回的一混合电源状态将准确地对应至关于一适合范围的一复合电源状态。每个同步逻辑的实施的实例被设计成用以在尚未同步节点地连接的核心中,至少有条件地产生同步逻辑的从属实例,开始于最立即同属性群组的节点地连接核心,继续至渐进地较高层次同属性群组的节点地连接核心(如果有的话,而同步逻辑实例属于于其上的核心)。尚未同步的节点地连接核心为节点地连接至本身(关于其的同步逻辑同步化实例尚未被实施为一复合电源状态发现过程的一部分)的核心。此种发现过程进行至同步逻辑的每个实例,其递归地产生(至少有条件地)同步逻辑的又更进一步的从属实例于尚未同步的节点地远端核心,直到有同步逻辑的同步化的实例执行于适合潜在地冲击域的每一个核心上为止。在发现关于适合范围的一复合电源状态时,执行于一核心上的电源管理逻辑的一实例(被指定为被授权以致能或执行关于那范围的复合电源状态的实现)可致能/或进行实现。V.特定说明的实施例现在将注意力转至图所显示的特定实施例。于一实施例中,同步逻辑的每个实例经由与系统总线不同的旁带通讯或旁通总线线(核心间通讯配线112、晶粒间通讯配线118以及封装间通讯配线1133)而与其他核心上的逻辑的同步化实例相通,用以利用一种分散式的分配方式执行电源管理。这可允许核心实体上设置在多重晶粒上或甚至在多重封装上,藉以可能地降低晶粒尺寸并改善良率,且提供系统中的核心数的高度的可量测性,而无须对现代化的微处理器晶粒与封装的焊垫与接脚限制施加不当压力。现在参考图1所显示的方块图,其显示依据本发明执行分配在一多核心微处理器 102的多重处理核心106之间的分散式电源管理的一计算机系统100的一实施例。系统100 包含藉由一系统总线116耦接至多核心微处理器102的单一芯片组114。多核心微处理器 102封装包含两个以晶粒0及晶粒1表示的双核心晶粒104。晶粒104安装于封装的一基板上。基板包含配线网(或只简单称为"配线")或者线路,其将晶粒104的焊垫连接至封装102的接脚。除其他因素以外,接脚可能连接至总线116。基板配线亦包含互连晶粒 104的晶粒间通讯配线118(以下讨论更多的)以促进它们之间的通讯,用以执行分配在多核心微处理器102的核心106之间的分散式电源管理。每一个双核心晶粒104包含两个处理核心106。晶粒0包含核心0及核心1,而晶粒1包含核心2及核心3。每个晶粒104具有一标示的主控核心106。于图1的本实施例中,核心0为晶粒0的主控核心106,而核心2为晶粒1的主控核心106。于一实施例中,每个核心106包含配置熔丝(configuration fuses)。晶粒104的制造商可能吹制配置熔丝以标示核心106何者为晶粒104的主控核心。此外,晶粒104的制造商可能吹制配置熔丝以标示其实例至每个核心106,亦即,核心106是否为核心0、核心1、核心2或核心3。如上所述, 专门用语"朋友"用以表示在彼此沟通的相同晶粒104上的核心106 ;因此,于图1的本实施例中,核心0及核心1为朋友,而核心2及核心3为朋友。专门用语"伙伴"于此用以表示在彼此沟通的不同晶粒104上的主控核心106 ;因此,于图1的本实施例中,核心0及核心 2为伙伴。依据一个实施例,偶数核心106为每个晶粒104的主控核心。依据一个实施例, 核心0标示为多核心微处理器102的启动服务处理器(boot service processor (BSP))。 其单独被授权以与芯片组114协调某些限制活动,包含允许某些复合电源状态的实现。依据一个实施例,BSP核心106通知芯片组114其可能需求移除总线116时钟的允许以减少电源消耗和/或避免在总线116上产生窥探循环,如以下相关于图3的方块322所讨论的。 于一实施例中,BSP为核心106,其总线需求输出是耦接至总线116上的BREQO信号。在每个晶粒104之内的两个核心106经由位于晶粒104内部的核心间通讯配线 112沟通。更明确而言,核心间通讯配线112允许在一晶粒104之内的核心106彼此中断并彼此传递讯息,用以执行分配在多核心微处理器102的核心106之间的分散式电源管理。 于一实施例中,核心间通讯配线112包含平行总线。于一实施例中,核心间通讯配线112是类似于说明于CNTR. 2528的那些。此外,核心106经由晶粒间通讯配线118沟通。更明确而言,晶粒间通讯配线118 允许个别的晶粒104上的主控核心106彼此中断并彼此传递讯息,用以执行分配在多核心微处理器102的核心106之间的分散式电源管理。于一实施例中,晶粒间通讯配线118以总线116时钟频率执行。于一实施例中,核心106传输32位讯息至彼此。传送或广播的核心106设立其供一个总线116时钟用的单一配线晶粒间通讯配线118,用以表示其即将传输一讯息,然后,传递在下一个各自的31个总线116时钟上的31位的一序列。于每个晶粒间通讯配线118的末端为一 32位移位寄存器,其累积被接收成为32位讯息的单一位。于一实施例中,32位讯息包含多个信息字段(field)。一个信息字段载明依据说明于CNTR. 2534 中的所共用的VRM分配式管理机制而使用的一 7位需求的VID值。其他信息字段包含关于电源状态(例如C-状态)同步的讯息,例如C-状态需求值与回报,其在核心106之间交换,如于此所讨论的。此外,一特殊讯息值可使一传送的核心106中断一接收的核心106。于图1的本实施例中,每个晶粒104包含耦接至四个各自的接脚 (以〃 Pl"、“ P2"、“ P3"以及〃 P4"表示)的四个焊垫108。关于四个焊垫108,其中一个为一输出焊垫(以〃 OUT"表示),而另外三个为输入焊垫(以IN U IN 2以及IN 3表示)。晶粒间通讯配线118被设计如下。晶粒0的OUT焊垫与晶粒1的IN 1焊垫经由单一配线网耦接至接脚Pl ;晶粒1的OUT焊垫与晶粒0的IN 3焊垫经由单一配线网耦接至接脚P2;晶粒0的IN 2焊垫与晶粒1的IN 3焊垫经由单一配线网耦接至接脚P 3 ;而晶粒0的IN 1焊垫与晶粒1的IN 2焊垫经由单一配线网耦接至接脚P4。于一实施例中,核心106包含在每个讯息中的一识别符,其传输离开在其晶粒间通讯配线118(或以下相关于图11所说明的封装间通讯配线1133)上的其OUT焊垫108。此识别符独特地确认此讯息预定到达的目标核心106,其在于此所说明的实施例(其中此讯息被广播至多重接受者核心 106)中是有用的。于一实施例中,每个晶粒104是基于在多核心微处理器102的制造期间吹制的一配置熔丝,而将四个焊垫108的其中一个指定为其输出焊垫(OUT)。当晶粒0的主控核心0想要与晶粒1的主控核心2沟通时,其将在其OUT焊垫上的信息传输至晶粒ι的IN 1焊垫;同样地,当晶粒1的主控核心2想要与晶粒0的主控核心0沟通时,其将在其OUT焊垫上的信息传输至晶粒0的IN 3焊垫。因此,于图1的本实施例中,每个晶粒104只需要一个输入焊垫108而非三个。然而,制造具有三个输入焊垫108 的晶粒104的一项优点为其允许相同的晶粒104在图1的四核心多核心微处理器102以及例如图9所示的八核心多核心微处理器902两者中被被设计。此外,于图1的本实施例中, 两个接脚P是不需要的。然而,制造具有四个接脚P的晶粒104的一项优点为其允许相同的四核心微处理器102在图1的单一四核心微处理器102以及在例如图11所示的具有两个四核心微处理器1102的八核心系统1100两者中被被设计。然而,考虑四核心实施例,于其中可能移除未使用的接脚P与焊垫108以在需要时减少焊垫以及接脚数,例如显示于图 12与14至16的本实施例中。此外,考虑例如显示于图19与20的本实施例中的双核心实施例,于其中可能移除未使用的接脚P与焊垫108以减少焊垫以及接脚数,或在需要时为另一个目的而被部署。依据一个实施例,总线116包含允许芯片组114与多核心微处理器102经由类似于熟知的Pentium 4总线协定的一总线协定传递的数个信号。总线116包含由芯片组114 提供给多核心微处理器102的一总线时钟信号,核心106使用其以产生它们的内部核心时钟信号,其频率一般为总线方块频率的比率。总线116亦包含一 STPCLK信号(被芯片组 114设立),以需求来自核心106的允许以移除总线时钟信号,亦即,允许以停止提供总线时钟信号。多核心微处理器102以从一预先决定的1/0连接端口地址执行在总线116上的一 1/0读取传输,表示其可能设立STPCLK至芯片组114,只有其中一个核心106执行它。如以下所讨论的,较佳的是,多重核心106经由核心间通讯配线112与晶粒间通讯配线118而彼此沟通,用以决定单一核心106何时可执行1/0读取传输。依据一个实施例,在芯片组114 设立STPCLK之后,每一个核心106发布一 STOP GRANT讯息给芯片组114 ;一旦每个核心106 已发布一 STOP GRANT讯息,芯片组114就可能移除总线时钟。在另一实施例中,芯片组114 具有一配置选择,以使其在其移除总线时钟之前只期望来自多核心微处理器102的单一的STOP GRANT 讯息。 现在参考图2所显示的方块图,其详细显示依据本发明的图1的核心106的其中一个代表。依据一个实施例,核心106微结构包含功能单元的一超标量(superscalar)、乱序执行管线。一指令快取202快取从一系统存储器提取的指令(未显示)。一指令译码器204耦接以接收来自指令快取202的指令(例如x86指令集架构指令)。一注册别名表 (RAT) 212耦接以接收来自指令译码器204及来自一微序列器206的译码微指令,并产生译码微指令的依存信息。保留站214耦接以接收来自RAT 212的译码微指令以及依存信息。 执行单元216耦接以接收来自保留站214的译码微指令并接收供译码微指令用的指令运算元。运算元可能来自核心106的寄存器(例如通用寄存器及可读取且可写入的特别模块寄存器(MSR) 238,以及来自耦接至执行单元216的一数据快取222。一撤退单元218耦接以接收起因于执行单元216的指令,使结果撤退至核心106的架构状态。数据快取222耦接至一总线接口单元(BIU) 224,其使核心106接口连接至图1的总线116。一锁相回路(PLL) 2 接收来自总线116的总线时钟信号,以及从其产生一核心时钟信号242至核心106的各种功能单元。PLL 2 可能经由执行单元216而受控制,例如被禁能。
执行单元216接收一 BSP指示器228以及一主控指示器232,其分别表示核心106 是否为晶粒104的主控核心与多核心微处理器102的BSP核心。如上所述,BSP指示器228 与主控指示器232可能包含可程序化熔丝。于一实施例中,BSP指示器228与主控指示器 232储存于一特别模块寄存器(MSR) 238中,其首先填充有可程序化熔丝值,但其可能藉由软件写入至MSR238而被更新。执行单元216亦读取并写入控制与状态寄存器(CSR) 234与 236,用以与其他核心106沟通。尤其,核心106使用CSR 236,用以经由核心间通讯配线112 而与相同晶粒104上的核心106沟通,且核心106使用CSR 234,用以通过焊垫108经由晶粒间通讯配线118而与其他晶粒104上的核心106沟通,如以下详细说明的。微序列器206包含设计成用以储存包含电源管理逻辑微码208的微码的一微码存储器207。为本说明书的目的,于此所使用的专门用语"微码"表示由相同的核心106所执行的指令,其执行通知核心106转变成一电源管理相关的状态(于此称为一休眠状态、闲置状态、C-状态或电源状态)的架构指令(例如MWAIT指令)。亦即,一状态转变指令的实例是核心106特有的,且为因应状态转变指令实例所执行的微码208在那个核心106上执行。处理核心106是对称的,因为它们每个具有相同的指令集架构并被设计以执行包含来自指令集架构的指令的使用者程序。除了核心106以外,多核心微处理器102可能包含一附属或服务处理器(未显示),其并不具有与核心106相同的指令集架构。然而,依据本发明,核心106它们本身(而非附属或服务处理器且而非任何其他非核心逻辑元件)执行分配在多核心微处理器102的多重处理核心106之间的分散式电源管理,以因应状态转变指令,其可能胜过一种具有代表核心执行电源管理的专用硬件的设计而有利地提供提高的可调(尺寸的)能力、可重组性、良率特性、电源减少和/或晶粒实际地区减少。电源管理逻辑微码208指令因应至少两个条件而被实施。首先,可能实施电源管理逻辑微码208以实行核心106的指令集架构的一指令。于一实施例中,X86MWAIT与IN 指令等实行在微码208中。亦即,当指令译码器204遇到一 X86MWAIT或IN指令时,指令译码器204中止提取目前执行的使用者程序指令,并将控制传送至微序列器206以开始提取实行X86MWAIT或IN指令的电源管理逻辑微码208中的一常式。其次,电源管理逻辑微码208可能被实施以因应一中断事件。亦即,当一中断事件产生时,核心106中止提取目前的使用者程序指令,并将控制传送至微序列器206以开始提取操纵中断事件的电源管理逻辑微码208中的一常式。中断事件包含架构中断、例外、错误或捕捉(t rap s),例如由x86指令集架构所界定的那些。一中断事件的一例子为总线116上的一 I/O读取传输对于与电源管理相关的一些预先决定的I/O地址的其中一个的检测。中断事件亦包含非架构界定的事件。于一实施例中,非架构界定的中断事件包含经由图1的核心间通讯配线118发送信号或经由图1的晶粒间通讯配线118发送信号(或经由图11的封装间通讯配线1133发送信号,以下所讨论的)的一核心间中断需求(例如与图5与6相关所说明的);以及藉由芯片组的一 STPCLK设立或解除设立的检测。于一实施例中,电源管理逻辑微码208指令为核心 106的微架构指令组的指令。在另一实施例中,微码208指令为不同的指令组的指令,其取得转变成为核心106的微架构指令组的指令。图1的系统100执行分配在多重处理核心106之间的分散式电源管理。更明确而言,每个核心实施其原生性电源管理逻辑微码208以响应对转变成一目标电源状态的一状态转变需求。一目标电源状态为多个预定电源状态(例如C-状态)的任何需求的其中一个。预定电源状态包含一参考或主动操作状态(例如ACPI的CO状态)以及多个渐进地且相对不太敏感的状态(例如ACP I的Cl、C2、C3等状态)。现在参考图3所显示的流程图,其依据本发明显示图1的系统100的操作,用以执行分配在多核心微处理器102的多重处理核心106之间的分散式电源管理。具体而言,流程图显示电源管理逻辑微码208的一部分的操作,因应于遭遇一 MWAI T指令或类似的命令, 以转变成一新电源状态。更明确而言,图3所显示的电源管理逻辑微码208的部分为电源管理逻辑的一状态转变需求处理逻辑(STRHL)常式。为了促进对图3的更佳理解,MWAIT指令与C-状态架构的实施样态是在说明每一个图3的个别方块之前被说明。MWAIT指令可能包含在操作系统(例如, Windows 、Linux 、MacOS )或其他系统软件中。举例而言,如果系统软件知道系统上的工作量目前是低或不存在的,则系统软件可能执行一 MWAIT指令以允许核心106进入一低电源状态,直到一事件(例如从一周边装置的一中断)要求由核心106服务为止。关于另一例子,在核心106上执行的软件可能是与在另一核心106上执行的软件的共享数据, 以需要在存取至由两个核心106所共用的数据之间的经由例如一信号机(semaphore)的同步;如果可能一段显著的时间量可能在另一核心106执行储存至信号机之前通过,则在瞬间核心106上执行的软件允许瞬间核心106经由MWAIT指令进入低电源状态,直到储存至信号机发生为止。MWAIT指令详细说明于2009年3月的^itelR 64与IA-32架构软件开发人员手册 (Architectures Software Deve loper' s Manual),卷 2A 指令集参考(A-M)的第 3-761 至3764页,而监视(MONITOR)指令详细说明于相同的第3-637至3-639页,其为所有目的全部藉此并入作参考。MWAIT指令可能指定一目标C-状态。依据一个实施例,C-状态0为一执行状态, 而大于O的C-状态为休眠状态;1及较高的C-状态为停止状态,于其中核心106不做提取并执行指令;以及2及较高的C-状态为核心106可能执行额外动作以减少其电源消耗,例如禁能其快取存储器并降低其电压和/或频率的状态。
依据一个实施例,2或较高的C-状态被视为并预先决定成为一受限制的电源状态。在2或较高的C-状态中,芯片组114可能移除总线116时钟,藉以有效地禁能核心106 时钟,以便大幅地减少由核心106的电源消耗。关于每个后段较高的C-状态,允许核心106 执行个别需要较长的时间(由其恢复至执行状态)的更积极的电源节约动作。可能使核心 106退出低电源状态的事件的例子为一中断及藉由另一处理器储存至由一以前执行的监视 (MONITOR)指令而特别指定的一地址范围。明显地,对C-状态的ACP I编号机制使用较高的C号码以表示渐进地较不敏感、 较深的休眠状态。藉由使用这种编号机制,任何既定的主顾群组(亦即晶粒、封装、平台) 的复合电源状态将是那个主顾群组的所有致能核心的适合的C-状态的最小值,于此如果核心并不具有一正确最近的有效要求的C-状态,则每个核心的适合C-状态是其最近有效要求的C-状态(如果有的话)与零。然而,其他等级的电源状态使用渐进较高的号码以表示渐进更敏感的状态。举例而言,CNTR. 2534说明一种指示一期望的电压识别符(VID)至一电压调节器模组(VRM)的协调系统。较高的VID对应至较高电压电平,其因而对应至较快的(因而是更敏感的)性能状态。但协调一复合VID涉及决定核心的需求的VID值的最大值。因为一电源状态编号机制可依上升或下降次序被指定,所以此说明书的部分将复合电源状态界定为一"极值",其相关核心的适合电源状态的最小值或最大值。然而,将明白即使需求的VID及时钟比率值是朝与它们的已知的顺序相反的一方向"可订定"(譬如使用负的原始值);因此不管它们传统上界定的方向为何,甚至更特别界定的阶层式协调系统,于此通常适合于电源状态。虽然图3说明一实施例,于其中核心106响应一 MWAIT指令以执行分散式电源管理,但是核心106亦可能响应通知核心106其可能进入一低电源状态的其他形式的输入。举例而言,总线接口单元2M可能产生一信号,用以使核心106捕捉微码208以因应检测在总线116上的一 I/O读取传输至一预先决定的I/O端口范围。再者,考虑到核心106捕捉微码208以因应由核心106所接收的其他外部信号的实施例,且实施例并未受限于x86指令集架构实施例或受限于包含一 Pentium 4型式处理器总线的系统的实施例。再者,一核心 106的既定目标状态可能内部地被产生,如经常出现具有期望的电压与时钟数值的情况。现在焦点放在图3的个别的功能方块,流程于方块302开始。于方块302,图2的指令译码器204遇到一MWAIT指令并捕捉电源管理逻辑微码208,且特别是实现MWAIT指令的STRHL常式。MWAIT指令载明以〃 X"表示的一目标C-状态,并通知核心106其可能进入一最佳化状态同时等待一事件发生。具体而言,最佳化状态可能是一低电源状态,于其中核心106消耗比核心106遇到MWAIT指令的执行状态更少的电源。流程继续至方块303。微码将"X"储存成为核心的适合的或最近的有效要求的电源状态,以"Y"表示。可注意到,如果核心106尚未遇到一MWAIT指令,或如果因为从那时起那指令已被取代或变成陈旧的(譬如藉由一后来的STPCLK解除设立)且核心是处于一正常执行状态,则储存为核心的适合或最近的有效要求的电源状态的数值"Y"为0。流程继续至方块304。于方块304,微码208(更详细而言是STRHL常式)检验"X",其为对应于目标C-状态的一数值。如果"X"小于2(亦即,目标C-状态为1), 则流程继续至方块306;而,如果目标C-状态大于或等于2(亦即,“X"对应至一受限制的电源状态),则流程继续至方块308。于方块306,微码208将核心106置于休眠。亦即,微码208的STRHL常式将控制寄存器写入在核心106之内,用以使其终止提取并执行指令。 因此,核心106消耗比当其正处于一执行状态时更少的电源。最好是,当核心106正休眠时, 微序列器206亦没有提取并执行微码208指令。流程于方块306结束。图5说明为因应从休眠被唤醒的核心106的操作。方块308表示一条路径,微码208的STRHL常式判断〃 X"是否为对应于一受限制的电源状态的2或更多。如上所述,于一实施例中,2或更多的一种C-状态涉及移除总线116时钟。总线116时钟为由核心106所共用的一资源。因此,当一核心设有2或较高的一目标C-状态时,核心106较佳是如于此所说明的以一种分配式与协调方式沟通,用以确认每个核心106已被通知其可能在连接至芯片组114(其可能移除总线116时钟)之前转变成2或更大的一 C-状态。在方块308中,微码208的STRHL常式基于由于方块302所遇到的MWAIT指令而特别指定的目标C-状态,执行相关的电源节约动作(PSA)。一般而言,由核心106所采取的 PSA包含独立于其他核心106的动作。举例而言,每个核心106包含其自己的快取存储器, 其是位于核心106本身(例如,指令快取202与数据快取22 的近端,而PSA包含刷新局部快取、移除它们的时钟以及使它们断电。在另一实施例中,多核心微处理器102可能亦包含由多重核心106所共用的快取。于本实施例中,共用的快取无法被刷新,使它们的时钟被移除,或被断电,直到核心106彼此沟通以决定所有核心106已接收指定一适当的目标C-状态的一 MWAIT为止,在这种情况下,它们可能在通知芯片组114其可能需求移除总线116时钟和/或抑制在总线116上产生窥探循环的允许之前,刷新共用的快取、移除它们的时钟并使它们断电(参见方块322)。于一实施例中,核心106共用一电压调节器模组(VRM)。 CNTR. 2534说明一种利用一种分配式的分散方式以管理由多重核心所共用的一 VRM的设备及方法。于一实施例中,每个核心106具有其本身的PLL 226,如于图2的本实施例中,以使核心106可减少其频率或禁能PLL 226以节省电源而不会影响其他核心106。然而,在其他实施例中,一晶粒104上的核心106可能共用一 PLL。CNTR. 2534说明一种利用一种分配式的分散方式以管理由多重核心所共用的一 PLL的设备及方法。于此所说明的电源状态管理与相关的同步逻辑的实施例亦可能(或选择地)被应用,以利用一种分配式的分散方式来管理由多重核心所共用的一 PLL。流程继续至方块312。于方块312,电源状态管理微码208的STRHL常式呼叫以 sync_C-状态表示的另一电源状态管理微码208常式(其相关于图4而详细说明的),用以与其他节点地连接核心106沟通并为多核心微处理器102获得一合成的C-状态,在图3 中以Z表示。相对于正在核心上执行的实例,Sync_C-状态常式的每个实施实例于此称为 synC_C-状态常式的一〃原生〃实例。微码208的STRHL常式实施具有一输入参数或探测(probe)电源状态数值的 synC_C-状态常式,探测电源状态数值等于核心的适合电源状态(亦即,其最近的有效要求的目标电源状态),其为于由MWAIT指令所特别指定的方块302所接收的"X"的数值。实施synC_C-状态常式开始一复合电源状态发现过程,如与图4相关而更进一步说明的。每个实施的synC_C-状态常式计算一〃混合〃 C-状态并使〃混合〃 C-状态回复至呼叫或实施它(于此是STRHL常式)的任何过程。"混合"C-状态为探测C-状态数值 (其由实施过程所接收)、其上执行sync_C-状态常式的核心的适合的C-状态,以及任何混合C-状态(其由sync_C-状态常式的任何从属产生的实例所接收)的最小值。在说明于下的某些情况下,混合C-状态为共通于原生性sync_c-状态常式与同步化sync_c-状态常式(其所依附)两者的域的复合电源状态。在说明于下的其他情况中,混合C-状态可能只是域的一局部合成的C-状态。一般而言,一域的一复合电源状态为那个域的所有核心的适合的电源状态的一极值(在ACPI电源状态机制中是最小值)。举例而言,一晶粒104的合成的C-状态为晶粒的所有核心106的适合的C-状态(例如,最近的有效要求的C-状态,如果所有核心具有这样的数值的话)的最小值。整体看来,供多核心微处理器102用的合成的C-状态为多核心微处理器102的所有核心106的适合的C-状态的最小值。然而,一种混合电源状态可能是供一适合域用的一复合电源状态,或正好是一局部的复合电源状态。一局部的复合电源状态将是两个以上但小于全部的一适合域的核心的适合电源状态的一极值。在一些部分中,此说明书表示一种"至少局部合成的电源状态" 以包含任何变化的计算的混合电源状态。在一混合电源状态与一复合电源状态之间的电位 (即使是细微的)区别将相关于图4C、10及17关而变得更显清楚。预先注意到,供一多核心微处理器102用的一非零数值合成的C-状态表示每个核心106已看见载明一非执行C-状态(亦即,具有1或更大的数值的C-状态)的MWAIT ;而一零数值合成的C-状态表示并非每个核心106已看到MWAIT。再者,大于或等于2的数值表示多核心微处理器102的所有核心106已接收载明2或更大的C-状态的MWAIT指令。流程继续至决定方块314。于决定方块314中,微码208的STRHL常式检查于方块 312所决定的混合C-状态〃 Z"。如果〃 Z"大于或等于2,则流程继续至决定方块318。 否则,流程继续至方块316。于方块316,微码208的STRHL常式将核心106置于休眠。流程于方块316结束。于决定方块318,微码208的STRHL常式决定核心106是否为BSP。如果是,则流程继续至方块322 ;否则,流程继续至方块324。于方块322,BSP 106通知芯片组114其可能需求移除总线116时钟和/或抑制在总线116上产生窥探循环的允许。于一实施例中,依据熟知的Pentium 4总线协定,唯一被授权以允许较高的电源管理状态的BSP 106,通知芯片组114其可能需求藉由开始在总线116上的一 I/O读取传输至一预先决定的I/O端口,来移除总线116时钟和/或抑制在总线116上产生窥探循环的允许。然后,芯片组114设立在总线116上的STPCLK信号以需求移除总线116时钟的允许。于一实施例中,在通知芯片组114其可于方块322(或方块608)设立STPCLK之后,执行于BSP核心106上的微码208的STRHL常式等待芯片组114以设立STPCLK,而非前进至休眠(于方块3 或方块614),然后,通知其他核心106有关此STPCLK设立(assertion), 发布其STOP GRANT讯息,然后进行到休眠。依据由I/O读取传输而特别指定的预先决定的 I/O连接端口地址,芯片组114可能接着抑制在总线116上产生窥探循环。流程继续至方块324。于方块324,微码208将核心106置于休眠。流程于方块 324结束。现在参考图4,一流程图显示用以执行分配在多核心微处理器102的多重处理核心106之间的分散式电源管理的图1的系统100的另一元件的操作。更明确而言,流程图显示图3(与图6)的电源状态管理微码208的synC_C-状态常式的一实例的操作。虽然图 4为显示微码208的synC_C-状态常式的单一实例的功能性的流程图,但将从下面理解到其经由那个常式的多重同步化实例实现一合成C-状态发现过程。流程于方块402开始。于方块402,一核心106上的微码208 (〃 sync_C_状态微码208 〃)的sync_C-状态常式的一实例被实施,并接收一输入探测C-状态,在图4中以"A"表示。synC_C-状态常式的一实例可能从MWAIT指令微码208被原生地实施,如相关于图3所说明,在这种情况下,sync_C-状态常式构成synC_C-状态常式的一初始实例。此外,sync_C-状态常式的一实例可能藉由源自另一核心的一同步需求(于此称为一外部地产生的同步需求)而产生, 在这种情况下,sync_C-状态常式构成synC_C-状态常式的一从属实例。尤其,执行于另一个节点地连接核心上的Sync_C-状态常式的一原有的实例,可能藉由将一适当的核心间中断传送至原生性核心来产生Sync_C-状态常式的原生性实例。如相关于图6更详细说明的, 电源声明管理微码208的一核心间中断处理常式(ICIH)操纵由节点地连接核心106所接收的核心间中断。流程继续至决定方块404。于决定方块404,如果synC_C-状态常式的这个实例 (亦即,"原生性实例")为一初始实例,亦即,如果其是从图3的MWAIT指令微码208被实施,则流程继续至方块406。否则,原生性实例为藉由执行于一节点地连接核心上的synC_ C-状态常式的一外部或非原生性实例产生的一从属实例,而流程继续至决定方块432。于方块406,sync_C-状态微码208藉由程序化图2的CSR 236来产生在其朋友核心上的一从属Sync_C-状态常式,用以将于方块402所接收的"A"值传送至其朋友并用以中断朋友。这要求朋友计算一混合C-状态并将其传回至原生性核心106,如以下更详细说明的。流程继续至方块408。于方块408,synC_C-状态微码208程序化CSR 236,用以检测朋友已传回一混合C-状态至核心106,如果是,则获得朋友的混合C-状态,在图4中以"B"表示。可注意到,如果朋友位于其最有效执行状态,则"B"的数值将是零。于一实施例中,微码208等待朋友以响应在一回圈中于方块406做出的请求,此回圈为一预先决定的数值轮询CSR 236,用以检测朋友已传回一混合C-状态。于一实施例中,此回圈包含一逾时计数器;如果逾时计数器到期,则微码208假设朋友核心106不再被启动且可使用,在任何后来的Sync_C-状态计算中并不包含供那个朋友用的一适合或假设C-状态,以及接着并未试图与朋友核心106沟通。再者,在与其他核心106(亦即,伙伴核心与好友核心)通讯方面,微码208以类似方式操作,不管其是否经由核心间通讯配线112或晶粒间通讯配线 118(或于下所说明的封装间通讯配线113 而与另一个核心106相通。流程继续至方块412。于方块412,synC_C-状态微码208藉由计算〃 A"与〃 B" 值的最小值,而为核心106属于其的一部分的晶粒104计算一混合C-状态,其以"C"表示。在一双核心晶粒中,〃 C"将必定是合成C-状态,因为〃 A"及〃 B"值表示晶粒上的所有(两个)核心的适合的C-状态。流程继续至决定方块414。于决定方块414,如果于方块412所计算的"C"值小于2,或原生性核心106并非是主控核心106,则流程继续至方块416。否则,‘‘C"值至少是2且原生性核心106为一主控核心,而流程继续至方块422。于方块416,常式回复至唤起其(于此是STRHL常式)于方块412所计算的"C"值的呼叫过程。流程于方块416结束。于方块422,sync_C-状态微码208藉由程序化图2的CSR 234产生在其伙伴核心上的synC_C-状态常式的一从属实例,用以将于方块412所计算的"C"值传送至其伙伴并用以中断伙伴。这要求伙伴计算并传回一混合C-状态,并提供其回到这个核心106,如以下更详细说明的。在这一点上,应注意到synC_C-状态微码208并未在伙伴核心中产生synC_C-状态常式的从属实例,直到其已经决定其自己的晶粒的合成的C-状态为止。的确,于本说明书中所说明的所有的sync_C-状态常式依据一相容巢状域走访顺序操作。亦即,每个synC_ C-状态常式渐进地且有条件地发现合成的C-状态,有关其最低域的第一者,其为一部分 (例如,晶粒),然后,是否其为下一个较高层次域(于其中它被巢状化)(例如,在图1的情况下是处理器本身)的那个域的主控等等。随后讨论的图13,更进一步显示这种走访顺序, 其中synC_C-状态常式有条件地且渐进地首先发现核心为晶粒的合成的C-状态的一部分, 接着发现它为封装的(是否核心亦为那个晶粒的一主控)的一部分,最后发现整个处理器或系统的(是否核心亦为处理器的BSP)。流程继续至方块424。于方块424,synC_C-状态微码208程序化CSR 234以检测伙伴已传回一混合C-状态,并获得混合C-状态,在图4中以"D"表示。在某些情况下,“D"将会但并不需要全部(如以下与图C中的一对应的数值"L"相关的说明)构成伙伴的晶粒合成的C-状态。流程继续至方块426。于方块426,synC_C-状态微码208藉由计算〃 C"及〃 D" 值的最小值而为多核心微处理器102计算一混合C-状态,其以"E"表示。假设"D"为伙伴的晶粒合成的C-状态,则"E"将需要构成处理器的合成的C-状态,因为"E"将是"C"(如上所述,我们知道的这种晶粒的合成的C-状态)及"D"(伙伴的晶粒合成的 C-状态)的最小值,且在处理器上没有已从计算中被省略的核心。如果不是的话,则"E" 可能构成处理器的只有一部分的合成的C-状态(亦即,这个晶粒上的核心与伙伴核心的适合的C-状态的最小值,而非亦属于伙伴的朋友)。流程继续至决定方块428。于方块428,常式使于方块似6所计算的"E"值传回至其呼叫者。流程于方块 428结束。于决定方块432,如果图6的核心间中断处理常式实施synC_C-状态常式以因应从核心的朋友的一中断(亦即,一朋友实施此常式),则流程继续至方块434。否则,核心间中断处理常式实施Sync_C-状态常式以因应从核心的伙伴的一中断(亦即,伙伴产生此常式),而流程继续至方块466。于方块434,核心106被其朋友所中断,所以Sync_C-状态微码208程序化CSR 236,用以获得由朋友所递送的探测C-状态以及其产生常式,在图4中以"F"表示。流程继续至方块436。于方块436,Sync_C-状态微码208藉由计算其本身适合的C-状态〃 Y"与探测 C-状态"F"(其由其朋友所接收)的最小值而为其晶粒104计算一混合C-状态,其结果以〃 G"表示。在一双核心晶粒中,“G"将需要是供包含核心106的晶粒104用的合成的C-状态,因为在那种情况下,“Y"及"F"必须表示供那个晶粒的所有(两个)核心用的各个适合的C-状态。
流程继续至决定方块438。于决定方块438,如果于方块436所计算的"G"值小于2或核心106并非是主控核心106,则流程继续至方块442。否则,如果〃 G"为至少2且核心为一主控核心,则流程继续至方块446。于方块442,为因应经由从其朋友的核心间中断的请求,synC_C-状态微码208程序化CSR 236,用以将于方块436所计算的"G"值传送至其朋友。流程继续至方块444。 于方块444,synC_C-状态微码208将于方块436所计算的〃 G"值传回至实施其的过程。 流程于方块444结束。于方块446,sync_C-状态微码208藉由程序化图2的CSR 234而在其伙伴核心上产生synC_C-状态常式的一从属实例,用以将于方块436所计算的"G"值传送至其伙伴, 并用以中断伙伴。这要求伙伴计算一混合C-状态并将其传回至这个核心106,如以下更详细说明的。流程继续至方块448。于方块448,synC_C-状态微码208程序化CSR 234以检测伙伴已传回一混合C-状态至核心106,并获得混合C-状态,在图4中以"H"表示。在至少某些而不需要全部的情况(如与图4C中的对应的数值"L"相关的说明)中,“H"将构成伙伴的晶粒的合成的 C-状态。流程继续至方块452。于方块452,synC_C-状态微码208藉由计算〃 G"及〃 H"值的最小值为多核心微处理器102计算一混合C-状态,以"J"表示。假设"H"为伙伴的晶粒合成的C-状态, 贝U" J"将需要构成处理器的合成的C-状态,因为"J"将是"G"(如上所述,我们知道的这种晶粒的合成的C-状态)及"H"(伙伴的晶粒合成的C-状态)的最小值,且在处理器上没有已从计算被省略的核心。如果不是的话,则"J"可能构成处理器的只有一部分的合成的C-状态(亦即,这个晶粒上的核心与伙伴核心的适合的C-状态的最小值,而非亦属于伙伴的朋友)。因此,“H"构成处理器的"至少局部地合成的"C-状态。流程继续至方块454。于方块454,为因应经由从其朋友的核心间中断的请求, synC_C-状态微码208程序化CSR 236,用以将于方块452所计算的〃 J"值传送至其朋友。 流程继续至方块456。于方块456,常式将于方块452所计算的"J"值传回至实施其的过程。流程于方块456结束。于方块466,核心106被其伙伴所中断,所以Sync_C-状态微码208程序化CSR 234,用以获得由伙伴所递送的输入探测C-状态于产生常式中,在图4中以"K"表示。由于synC_C-状态常式的阶层式走访顺序,伙伴将不会中断此种核心,除非其已经发现其晶粒的合成的C-状态,所以"K"必定是产生伙伴的合成的C-状态。另外,可注意到因为其被一伙伴所中断,所以这就表示核心106为其晶粒104的主控核心106。流程继续至方块468。于方块468,sync_C-状态微码208藉由计算其本身适合的 C-状态"Y"与所接收的伙伴合成的C-状态"K"值的最小值来计算处理器的一至少局部的合成的C-状态,其结果以"L"表示。如果"L"为1,则"L"无法是处理器的合成的C-状态,因为其并未合并其朋友的适合的C-状态。如果其朋友的适合的C-状态为0,则(未被精确发现)供处理器用的合成的C-状态必定是0。然而,纵使不需要被精确发现,处理器的合成的C-状态可以不大于〃 L"。在揭示于这个特定的阈值触发实施例的电源管理逻辑中,一旦发现一混合C-状态小于2,就知道处理器的合成的C-状态亦小于2。小于2的C-状态的实现将只具有主要地局部效果,所以更精确的判定合成的C-状态并非理所当然的。因此合成的C-状态发现过程可能逐渐结束并终止,如于此所显示的。然而,如果"L"为0,则其必然是处理器的合成的C-状态,因为(如上所述)处理器的合成的C-状态无法超过处理器的任何混合C-状态。承认这种微妙的处在于规格的部分表示sync_c-状态常式成为计算一"至少局部的合成数值"。流程继续至决定方块472。于决定方块472,如果于方块468所计算的"L"值小于2,则流程继续至方块 474。否则,流程继续至方块478。应注意到本发明的其他实施例可能省略这种阈值条件(例如,L < 2 ?)用以继续一合成的C-状态发现过程。在这样的实施例中,处理器的每个致能的核心将无条件地决定处理器的合成的C-状态。于方块474,为因应经由从其伙伴的核心间中断的请求,sync_C-状态微码208程序化CSR 234,用以将于方块468所计算的"L"值传送至其伙伴。再者,可注意到当伙伴接收"L"时,其正接收可能构成处理器的只有一局部的合成数值。然而,因为"L"小于 2,所以处理器的合成数值亦必定小于2,藉以为了处理器的合成数值的一更精确判定排除任何刺激(如果"L"为1)。流程继续至方块476。于方块476,常式将于方块468所计算的〃 L"值传回至其呼叫者。流程于方块476结束。于方块478,sync_C-状态微码208藉由程序化CSR 236在其朋友核心上实施一从属synC_C-状态常式,用以将于方块468所计算的"L"值传送至其朋友并用以中断朋友。 这要求朋友计算一混合C-状态并将其提供给核心106。可注意到在图1的四核心实施例 (图4的synC_C-状态微码208为其而作说明)中,这将相当于请求朋友提供其最近的需求的C-状态,如果有的话。流程继续至方块482。于方块482,sync_C-状态微码208程序化CSR 236以检测朋友已传回一混合C-状态至核心106,并获得朋友的混合C-状态,在图4中以〃 M"表示。 可注意到如果朋友处于其最有效执行状态,则"M"的数值将是零。流程继续至方块484。于方块484,synC_C-状态微码208藉由计算〃 L"及〃 M"值的最小值而为多核心微处理器102计算一混合C-状态,以"N"表示。可注意到,在图1的四核心实施例(图 4的synC_C-状态微码208为其而作说明)中,"N"必定是处理器的合成的C-状态,因为其包含伙伴的晶粒合成的C-状态K、核心的自己适合的C-状态A以及朋友的适合的C-状态(后者是并入由朋友所传回的混合电源状态M)的最小值,这三个状态一起包含所有四个核心的适合的C-状态。流程继续至方块486。于方块486,为因应经由从其伙伴的核心间中断的请求, synC_C-状态微码208程序化CSR 234,用以将于方块484所计算的〃 N"值传送至其伙伴。 流程继续至方块488。于方块488,常式将于方块484所计算的"N"值传回至其呼叫者。 流程于方块488结束。现在参考图5所显示的流程图,其显示依据本发明的用以执行分配在多核心微处理器102的多重处理核心106之间的分散式电源管理的图1的系统100的操作。更明确而言,此流程图显示藉由电源状态管理微码208的一唤起与重新开始常式的一核心以因应从一休眠状态(例如从图3的方块306、316或324,或从图6的方块614进入)唤醒核心106 的一事件的操作。流程于方块502开始。于方块502,核心106从其休眠状态醒来以因应一事件,并藉由提取及执行微码208的一指令处理程序而重新开始。事件可能包含但并未受限于一核心间中断,亦即,经由核心间通讯配线112或晶粒间通讯配线118(或图11的实施例的封装间通讯配线1133) 从另一核心106的中断;藉由芯片组114的总线116上的STPCLK信号的设立;藉由芯片组 114的总线116上的STPCLK信号的解除设立(deassertion);以及另一型式的中断,例如一外部中断要求信号的设立,例如可能藉由一周边装置(例如USB装置)而产生。流程继续至决定方块504。于决定方块504,唤起与重新开始常式决定核心106是否被从另一核心106的中断所唤起。如果是,则流程继续至方块506 ;否则,流程继续至决定方块508。于方块506,一核心间中断常式操纵核心间中断,如相关于图6所详细说明的。流程于方块506结束。于决定方块508,唤起与重新开始常式决定核心106是否被藉由芯片组114的总线 116上的STPCLK信号的设立所唤起。如果是,则流程继续至方块512 ;否则,流程继续至决定方块516。于方块512,为因应于图3的方块322或于图6的方块608所执行的I/O读取传输,芯片组114已设立STPCLK需求移除总线116时钟的允许。回应于此,核心106微码208 发布在总线116上的一 STOP GRANT讯息,以通知芯片组114其可能移除总线116时钟。如上所述,于一实施例中,芯片组114等待,直到所有核心106已发布直到其移除总线116时钟为止的一 ST0PGRANT讯息,而在另一实施例中,在单一核心106已发布STOP GRANT讯息之后,芯片组114移除总线116时钟。流程继续至方块514。于方块514,核心106返回至休眠。最近地,芯片组114将移除总线116时钟,以便减少因多核心微处理器102的电源消耗,如上所述。最后,芯片组114将恢复总线116时钟,然后,解除设立STPCLK,以便使核心106回复至它们的执行状态,能使它们可以执行使用者指令。流程于方块514结束。于决定方块516,唤起与重新开始常式决定核心106是否被藉由芯片组114的总线 116上的STPCLK信号的解除设立所唤起。如果是,则流程继续至方块518 ;否则,流程继续至方块M6。于方块518,为因应一事件(例如系统计时器中断或周边中断),芯片组114已恢复总线116时钟并解除设立STPCLK以使核心106再开始执行。回应于此,唤起与重新开始常式复原于方块308所执行的电源节约动作。举例而言,微码208可能使电源恢复至核心 106局部快取,增加核心106时钟频率,或增加核心106操作电压。此外,核心106可能使电源恢复至共用快取,举例而言,如果核心106为BSP。流程继续至方块522。于方块522,唤起与重新开始常式读取并写入CSR 234与236,用以通知所有其他核心106这个核心106醒着且再执行。唤起与重新开始常式可能亦储存"0"以作为核心的适合的或者最新的有效要求的C-状态。流程继续至方块524。于方块524,唤起与重新开始常式离去并恢复控制返回至指令译码器204,以重新开始译码提取的使用者程序指令(例如,x86指令)。具体而言,典型的使用者指令提取与执行将在MWAIT指令之后于指令下重新开始。流程于方块5M结束。于方块526,唤起与重新开始常式操纵其他中断事件,例如上述相关于方块502的那些。流程于方块526结束。
现在参考图6所显示的流程图,其显示依据本发明的用以执行分配在多核心微处理器102的多重处理核心106之间的分散式电源管理的图1的系统100的操作。更明确而言,此流程图显示微码208的一核心间中断处理常式(ICIHR)的操作以因应接收一核心间中断,亦即,经由核心间通讯配线112或晶粒间通讯配线118(例如可能于图4的方块406、 422、446或478所产生的)从另一核心106的中断。微码208可能藉由轮询(如果微码208 已经执行)采取一核心间中断,或者微码208可能采取一核心间中断以作为在使用者程序指令之间的一真正的中断,或者中断可能使微码208从核心106正休眠的状态唤醒。流程于方块604开始。于方块604,中断核心106的ICIHR依据图4呼叫一原生性 synC_C-状态常式,以继续在另一核心开始的一同步化电源状态发现过程。回应于此,其获得供多核心微处理器102用的一至少局部合成C-状态,图6中以"PC"表示。ICIHR呼叫具有一输入值"Y"的sync_C-状态微码208,其为由外部synC_C-状态常式所递送的探测 C-状态,而原生性Sync_C-状态常式将依附于外部synC_C-状态常式。另外,大于或等于2 的数值表示"PC"为一种多核心微处理器102的所有核心106的完全且非仅局部的合成 C-状态,并表示处理器的所有核心106已接收指定"PC"的一 C-状态或更大的一 MWAIT 指令。流程继续至方块606。于方块606,微码208决定于方块604所获得的〃 PC"的数值是否大于或等于2,以及核心106是否被授权以实现或允许"PC" C-状态的实现(例如,核心106为BSP)。如果是,则流程继续至方块608 ;否则,流程继续至决定方块612。于方块608,核心106 (例如,当BSP核心106被授权如此做时)通知芯片组114其可能需求移除总线116时钟的允许,如于上述的方块322。流程继续至决定方块612。于决定方块612,微码208决定其是否从休眠被唤起。如果是,则流程继续至方块 614 ;否则,流程继续至方块616。于方块614,微码208返回至休眠。流程于方块614结束。于方块616,微码208离去并恢复控制返回至指令译码器204,以重新开始译码提取的使用者程序指令。流程于方块616结束。现在参考图7所显示的流程图,其显示依据本发明的依据图3至6的说明的图1 的系统100的操作的一例子。在图7的例子中,使用者程序同时有效地在核心106上执行, 每个执行一 MWAI T指令。相较之下,在图8的例子中,使用者程序有效地在核心106上执行,每个于不同的时间执行一 MWAIT指令,亦即在另一核心已在执行一 MWAIT指令之后进入休眠之后。这些例子一起显示核心106的微码208的特征以及它们的能力,以操纵各种核心106上的不同顺序的MWAIT指令。图7包含四行,每行对应于图1的四个核心106的每一个。如所显示的以及如上相关于图1所述的,核心0与核心2为它们的晶粒104的主控核心,而核心0为多核心微处理器102的BSP。图7的每行表示由各个核心106所采取的动作。图7的每列中的动作的向下流程表示时间的经过。首先,每个核心106遇到一个具有所载明的各种C-状态的MWAIT指令(于方块 302)。在图7的例子中,至核心0与至核心3的MWAIT指令指定4的C-状态,而至核心1 与至核心2的MWAIT指令指定5的C-状态。每一个核心106回应地执行其相关的电源节约动作(于方块308),并将接收的目标C-状态(“X")储存为其适合且最近的有效要求的C-状态〃 Y"。
其次,每个核心106将其适合的C-状态"Y"作为一探测C-状态传送至其朋友 (于方块406),如以具有"A"的标记值的箭号表示。每个核心106接着接收其朋友的探测 C-状态(于方块408),并计算其晶粒104合成的C-状态"C"(于方块412)。在此例子中,由每个核心106所计算的〃 C"值为4。因为核心1及核心3并非是主控核心,所以它们两者前进至休眠(于方块324)。因为核心0与核心2为主控核心,所以它们彼此(亦即,它们的伙伴)传送它们各自的"C"值(于方块422),如以具有"C"的标记值的箭号所表示。它们每个接收它们的伙伴的晶粒合成的C-状态(于方块424),并计算多核心微处理器102合成的C-状态〃 E〃(于方块426)。在此例子中,由每一个核心0与核心2所计算的〃 E〃值为4。因为核心2并非是BSP核心106,所以其进行到休眠(于方块324)。因为核心0为BSP,所以其通知芯片组114可能需求移除总线116时钟的允许(于方块322),例如,以设立STPCLK。更明确而言,核心0通知芯片组114有关多核心微处理器 102合成的C-状态为4。然后,核心0进行到休眠(于方块324)。依据由于方块322开始的I/O读取传输而特别指定的预先决定的I/O连接端口地址,芯片组114可能接着抑制在总线116上产生窥探循环。虽然所有的核心106正休眠,但芯片组114设立STPCLK,其唤醒每一个核心 106 (于方块502)。每一个核心106回应地发布一 STOP GRANT讯息给芯片组114 (于方块 512),并返回至休眠(于方块514)。核心106可能休眠持续一段不明确的时间量,在没有电源节约动作与休眠的益处的情况下,较佳是消耗比它们正常来得更少的电源。最后,发生一唤醒事件。在此例子中,芯片组114解除设立STPCLK,其唤醒每一个核心106(于方块502)。每一个核心106回应地恢复其先前的电源节约动作(于方块518), 并离去其微码208且回复至提取并执行使用者码(于方块524)。现在参考图8所显示的流程图,其显示依据本发明依据图3至6的说明的图1的系统100的操作的一第二例子。图8的流程图类似于图7 ;然而,在图8的例子中,每个有效地在核心106上执行的使用者程序于不同的时间执行一 MWAIT指令,亦即在另一个核心在执行一 MWAIT指令之后已前进至休眠之后。核心3首先遇到具有4的一特定目标C-状态〃 X"的一 MWAIT指令(于方块302)。 核心3回应地执行其相关的电源节约动作(于方块308),并将"X"储存为其适合的C-状态,以下更进一步以"Y"表示。核心3接着将其适合的C-状态作为一探测C-状态传送至其朋友,核心2,(于方块406),如以具有"A"的标记值的箭号所表示,其中断核心2。核心2是被其朋友核心3所中断(于方块604)。因为核心2仍然处于一执行状态,所以其自己适合的C-状态为0,以"Y"表示(在方块604中)。核心2接收核心3的探测C-状态(于方块434),以"F"表示并具有4的数值。核心2接着计算其晶粒104合成的C-状态"G"(于方块436),并将0的"G"值传回至其朋友核心3 (于方块442)。然后,核心2离去其微码208并回复至使用者码(于方块616)。核心3接收其朋友核心2的0的同步C-状态〃 B"(于方块408)。核心3接着又计算其晶粒104合成的C-状态"C"(于方块412)。因为"C"的数值为0,所以核心 3进行到休眠(于方块316)。核心2随后遇到具有5的一特定目标C-状态〃 X"的一 MWAIT指令(于方块302)。核心2回应地执行其相关的电源节约动作(于方块308),并将"X"储存为其适合的C-状态,后来对核心2以"Y"表示。核心2接着将"Y"(其为幻作为一探测C-状态传送至其朋友,核心3,(于方块406),如以具有"A"的标记值的箭号所表示,其中断核心3。核心3是被唤醒核心3的其朋友核心2所中断(于方块502)。因为核心3以前遇到载明4的一 C-状态的一 MWAIT指令,且那个数值仍然是正确的,其适合的C-状态为4, 以"Y"表示(在方块604中)。核心3接收核心2的探测C-状态(于方块434),以"F" 表示并具有5的数值。核心3接着计算其晶粒104合成的C-状态"G"(于方块436)以作为探测C-状态(亦即,5)与其自己适合的C-状态(亦即,5)的一最小值,并将4的"G" 值作为一混合C-状态传回至其朋友核心2 (于方块442)。核心3接着返回至休眠(于方块 444)。核心2接收其朋友核心3的混合C-状态(于方块408),以〃 B"表示并具有4的数值,然后,计算其晶粒104合成的C-状态"C"值(于方块412)作为混合C-状态(亦艮口,4)与其自己适合的C-状态(亦即,4)的一最小值。因为核心2已发现供其最低层次域用的至少2的一合成的C-状态,但作为那个域的一主控的核心2亦属于一较高层次的同属性群组,所以其接着将其4的"C"值传送至其伙伴核心0(于方块42 ,其中断核心0。核心0是被其伙伴核心2所中断(于方块604)。因为核心0是处于一执行状态,所以其适合的C-状态为0,以〃 Y"表示(在方块604中)。核心0接收核心2的探测C-状态 (于方块466),以"K"表示并具有4的数值。然后,核心0计算其混合C-状态"L"(于方块468),并将0的“L"值传送至其伙伴核心2 (于方块474)。接着,核心0离去其微码 208并回复至使用者码(于方块616)。核心2接收其伙伴核心0的混合C-状态(于方块424),以〃 D"表示并具有0的数值,然后,计算其自己混合C-状态(于方块426),其以"E"表示。因为"E"值为0,所以核心2进行到休眠(于方块316)。核心0接着遇到具有4的一特定目标C-状态〃 X"的一MWAIT指令(于方块302)。 核心0回应地执行其相关的电源节约动作(于方块308),并将"X"储存为其适合的C-状态,以"Y"表示。然后,核心0将"Y"(其为4)作为一探测C-状态传送至其朋友,核心 1,(于方块406),以具有"A"的标记值的箭号表示,其中断核心1。核心1是被其朋友核心0所中断(于方块604)。因为核心1仍然处于一执行状态,所以其适合的C-状态为0,以"Y"表示(在方块604中)。核心1接收核心0的探测 C-状态(于方块434),以"F"表示并具有4的数值。核心1接着计算其晶粒104合成的 C-状态〃 G〃(于方块436),并将0的〃 G"值传回至其朋友核心0(于方块442)。然后, 核心1离去其微码208并回复至使用者码(于方块616)。核心0接收其朋友核心1的0的混合C-状态〃 B"(于方块408)。核心0接着计算其晶粒104合成的C-状态"C"(于方块412)。因为"C"的数值为0,所以核心0 进行到休眠(于方块316)。核心1随后遇到具有3的一特定目标C-状态〃 X"的一 MWAIT指令(于方块 302)。核心1回应地将"X"储存为其适合的电源状态"Y",并执行其相关的电源节约动作(于方块308)。然后,核心1将其适合的3的C-状态"Y"传送至其朋友,核心0,(于方块406),如以具有"A"的标记值的箭号表示,其中断核心0。
核心0被唤醒核心0的其朋友核心1所中断(于方块502)。因为核心0以前遇到载明4的一目标C-状态的一 MWAIT指令,所以其适合的C-状态为4,以"Y"表示(在方块604中)。核心0接收核心1的探测C-状态(于方块434),以"F"表示并具有3的数值。核心0接着计算其晶粒104合成的C-状态"G"(于方块436),并将3的"G"值传送至其伙伴核心2 (于方块446),其中断核心2。核心2是被其伙伴核心0所中断(于方块604),伙伴核心0唤醒核心2 (于方块 502)。因为核心2以前遇到载明5的一 C-状态的一 MWAIT指令,所以其适合的C-状态为5,以"Y"表示(在方块604中)。核心2接收核心0的探测C-状态(于方块466), 以〃 K〃表示并具有3的数值。核心2接着计算一〃混合〃 C-状态〃 L〃(于方块468), 并将3的"L"值传送至其朋友核心3 (于方块474),其中断核心3。核心3是被唤醒核心3的其朋友核心2所中断(于方块502)。因为核心3以前遇到载明4的一 C-状态的一 MWAIT指令,所以其适合的C-状态为4,以"Y"表示(在方块604中)。核心3接收核心2的C-状态(于方块434),以"F"表示并具有3的数值。 核心3接着计算一混合C-状态〃 G〃(于方块436),并将3的〃 G"值传送至其朋友核心 2(于方块442)。因为〃 G"现在负责每一个核心的适合的C-状态,所以〃 G"构成多核心处理器102合成的C-状态。然而,因为核心3并非是BSP且从休眠被唤起,所以核心3返回至休眠(于方块614)。核心2接收其朋友核心3的3的混合C-状态〃 M〃(于方块482)。核心2接着计算一混合C-状态〃 N"(于方块484)。然后,核心2将3的〃 N"值传送至其伙伴核心 0(于方块486)。再者,因为"N"负责每一个核心的适合的C-状态,所以"N"亦需要构成多核心处理器102合成的C-状态。然而,因为核心2并非是BSP且从休眠被唤起,所以核心2返回至休眠(于方块614)。核心0接收其伙伴核心2的3的C-状态〃 H"(于方块448)。核心0接着又计算 3的一混合C-状态"J"(于方块452),并将其传送至其朋友核心1(于方块454)。再者, 因为"J"负责每一个核心的适合的C-状态,所以"J"亦需要构成多核心处理器102合成的C-状态。又因为核心0为BSP,所以其通知芯片组114可能需求移除总线116时钟的允许(于方块608)。更明确而言,核心0通知芯片组114多核心微处理器102合成的C-状态为3。然后,核心0进行到休眠(于方块614)。核心1接收其朋友核心0的3的C-状态〃 B"(于方块408)。核心1亦计算一混合C-状态"C"(于方块412),其为3且其亦构成多核心处理器102合成的C-状态。因为核心1并非是BSP,所以核心1进行到休眠(于方块316)。现在所有核心106就像它们在图7的例子中的在休眠,且事件类似于相关于图7 所说明的方式,从那里进行,亦即,芯片组114设立STPCLK并唤醒核心106,等等。明显地,藉由这个最终同步化电源状态发现过程已完成的这段时间,所有的核心已各别计算多核心处理器102合成的C-状态。于一实施例中,微码208被设计成使其无法被中断。因此,在图7的例子中,当每个核心106的微码208被实施以处理其各个MWAIT指令时,微码208并未在另一个核心106 试图中断它时被中断。取而代的的是,举例而言,核心0看到核心1已送出其C-状态,并于方块408获得来自核心1的C-状态,料想核心1于方块406送出其C-状态以因应核心0中断核心1。同样地,核心1看到核心0已送出其C-状态,并于方块408获得来自核心1的 C-状态,料想核心0于方块406送出其C-状态以因应核心1中断核心0。因为核心0与核心1每个在其计算一至少局部合成的C-状态时将其他核心106的C-状态纳入考量,所以每个核心106计算一至少局部合成的C-状态。因此,举例而言,核心1计算一至少局部合成的C-状态,无论核心0是否将其C-状态送出至核心1以因应接收来自核心1的一中断或者以因应遇到一 MWAIT指令,在这种情况下,两个C-状态或许同时跨越核心间通讯配线 112(或跨越晶粒间通讯配线118,或跨越封装间通讯配线1133,于图11的本实施例中)。因此,微码208最好是适当地操作,用以执行在多核心微处理器102的核心106之间的分散式电源管理,而不管相关于藉由各种核心106接收MWAIT指令的事件的顺序。如可从前文观察到的,广义来说,当一核心106遇到一MWAI T指令时,其首先与其朋友交换C-状态信息,且两个核心106基于两个核心106的C-状态而为晶粒104计算一至少局部合成的C-状态,在一双核心晶粒的情况下,其譬如将是相同的数值。主控核心106 只在计算晶粒104合成的C-状态之后,接着与它们的伙伴交换C-状态信息,且两者基于两个晶粒104的合成的C-状态而为多核心微处理器102计算一合成的C-状态,其将是相同的数值。依据此种方法,较佳是,不管核心106接收它们的MWAIT指令的顺序为何,所有核心106计算相同的合成的C-状态。再者,较佳是,不管核心106接收它们的MWAIT指令的顺序为何,它们以一种分配式方式彼此协调,以使多核心微处理器102作为单一实体而与芯片组114沟通有关其可能需求参与相对于多核心微处理器102是全域性的电源节约动作的允许,例如移除总线116时钟。较佳是,这种分配式C-状态同步以达成电源管理的一实施样态,是在不需要用以执行电源管理的核心106外部的晶粒104上的专用硬件的情况下被执行,其可能提供下述优点可调(尺寸的)能力、可重组性、良率特性、电源减少以和/ 或晶粒实际地区减少。可注意到,具有不同数目及配置的核心106的其他多核心微处理器实施例的每个核心106可能采用类似的微码208,如相关于图3至6所说明的。举例而言,一种在单一晶粒104(例如图18所示)中具有两个核心106的双核心微处理器1802实施例的每个核心 106可能采用类似的微码208,如相关于认定每个核心106只具有一朋友且没有伙伴的图3 至6所所说明的。同样地,一种具有两个单核心晶粒104(例如图19所示)的双核心微处理器1902实施例的每个核心106可能采用类似的微码208,如相关于认定每个核心106只具有一伙伴且没有朋友(或者再指派核心106为伙伴)的图3至6所说明的。同样地,一种具有单核心单一晶粒封装104(例如图20所示)的双核心微处理器2002实施例的每个核心106可能采用类似的微码208,如相关于认定每个核心106只具有一好友且没有伙伴或朋友(或或者再指派核心106为伙伴)的图3至6所说明的。再者,其他具有核心106的不对称配置(例如图21及22所显示那些)的多核心微处理器实施例的每个核心106,可能采用相对于图3至6改变的类似的微码208,例如以下相关于图10、13以及17所述。再者,考虑除于此所说明的具有不同数目及配置的核心106 和/或封装(其采用以下相关于图3至6以及10、13与17所说明的核心106和(?)微码208的操作的组合)的那些之外的系统实施例。现在参考图9所显示的方块图,其显示依据本发明的执行分配在一多核心微处理器902的多重处理核心106之间的分散式电源管理的一计算机系统900的一替代实施例。系统900类似于图1的系统,而多核心微处理器902类似于图1的多核心微处理器102 ;然而,多核心微处理器902为一种八核心微处理器902,其包含组织在单一微处理器封装上的四个双核心晶粒104,以晶粒0、晶粒1、晶粒2以及晶粒3表示。晶粒0包含核心0与核心 1,而晶粒1包含核心2与核心3,类似于图1 ;此外,晶粒2包含核心4与核心5,而晶粒3包含核心6与核心7。在每个晶粒之内,核心为彼此的朋友,但每个晶粒的一选择核心被标示为那个晶粒的主控。封装上的晶粒主控具有多条将每个晶粒连接至每隔一个晶粒的晶粒间通讯配线。 这允许一协调系统的实现,于其中晶粒主控包含一同侪合作同属性群组的构件;亦即,每个晶粒主控能够与封装上的任何其他晶粒主控协调。晶粒间通讯配线118被设计如下。晶粒 0的OUT焊垫、晶粒1的IN 1焊垫、晶粒2的IN 2接脚以及晶粒3的IN 3接脚经由单一配线网耦接至接脚Pl ;晶粒1的OUT焊垫、晶粒2的IN 1焊垫、晶粒3的IN 2焊垫以及晶粒0的IN 3焊垫经由单一配线网耦接至接脚P2 ;晶粒2的OUT焊垫、晶粒3的1附焊垫、 晶粒0的IN 2焊垫以及晶粒1的IN 3焊垫经由单一配线网耦接至接脚P 3;晶粒3的OUT 焊垫、晶粒0的IN 1焊垫、晶粒1的IN 2焊垫以及晶粒2的IN 3焊垫经由单一配线网耦接至接脚P4。当每一个主控核心106想要与其他晶粒104沟通时,其传输其OUT焊垫108上的信息,且此信息广播至其他晶粒104,并藉由它们各自的主控核心106而经由适当的IN焊垫 108被接收。如可从图9观察到的,较佳是每个晶粒104上的焊垫108的数目与封装902上的接脚P的数目(亦即,关于分配在于此所说明的多重核心之间的分散式电源管理的焊垫与接脚;而,当然多核心微处理器102包含用于其他目的的其他焊垫与接脚,例如数据、地址以及控制总线)为不大于晶粒104的数目,其为一相当小的数目。这在一焊垫有限的和 /或接脚有限的设计上特别有利,其可能是共通的,其乃因为标准焊垫/接脚计算存在于标准晶粒/封装上,且其对于试图遵循标准值的微处理器制造商而言是经济有效的,且可能已经使用大部分的焊垫/接脚。再者,替代实施例说明于下,于其中每个晶粒104上的焊垫 108的数目为或可能为小于晶粒104的数目。现在参考图10所显示的流程图,其显示依据本发明的用以执行分配在八核心微处理器902的多重处理核心106之间的分散式电源管理的图9的系统900的操作。更明确而言,图10的流程图显示图3 (与图6)的synC_C-状态微码208的操作,类似于图4的流程图,其在许多方面是相似的,且相同号码的方块是类似的。然而,在图10的流程图中所说明的核心106的synC_C-状态微码208负责八个核心106的存在而非于图1的本实施例中的四个核心106,而现在说明差异。尤其,一晶粒104的每个主控核心106具有三个伙伴核心106而非一个伙伴核心106。此外,主控核心106 —起界定一同侪合作同属性群组,于其中任何伙伴可以直接地与任何其他伙伴协调,而无须藉由封装主控或BSP来仲裁。流程开始于图10中的方块402,并继续经由方块416,如相关于图4所说明的。然而,图10并不包含方块422、424、似6或428。反之,流程继续从决定方块414离开〃 N0" 分支至决定方块1018。于决定方块1018,Sync_C-状态微码208决定所有其伙伴是否已被造访,亦即,核心106是否已经经由方块1022与10M而与其的每一个伙伴交换一 C-状态。如果是,则流程继续至方块416 ;否则,流程继续至方块1022。
于方块1022,synC_C-状态微码208藉由程序化图2的CSR 234在其下一个伙伴上产生Sync_C-状态的新实例,用以将"C"值传送至其下一个伙伴,并用以中断伙伴。在第一伙伴的情况下,送出的"C"值是于方块412被计算出;在剩下的伙伴的情况下,"C"值是于方块10 被计算出。在包含方块414、1018、1022、10M以及10 的回圈中,微码208 掌握其已造访的伙伴的行踪,用以确保其造访它们每一个(除非于决定方块414被发现是真实的状况)。流程继续至方块ΙΟΜ。于方块1024,sync_C-状态微码208程序化CSR234以检测下一个伙伴已传回一混合C-状态,并获得混合C-状态,以"D"表示。流程继续至方块1(^6。于方块1(^6,synC_C-状态微码208藉由计算〃 C" 与〃 D"值的最小值,来计算一最近计算的原生性混合C-状态,以"C"表示。流程回复至决定方块414。流程继续从图10中的方块434,并继续经由方块444,如相关于图4所说明的。 然而,图10并不包含方块446、448、452、454或456。反之,流程继续从决定方块438离开〃 NO"分支至决定方块1045。于决定方块1045,Sync_C-状态微码208决定所有其伙伴是否已被造访,亦即,核心106是否已经经由方块1046与1048而与其的每一个伙伴交换一 C-状态。如果是,则流程继续至方块442 ;否则,流程继续至方块1046。于方块1046,sync_C-状态微码208藉由程序化CSR 234在其下一个伙伴上产生 synC_C-状态常式的新实例,用以将"G"值传送至其下一个伙伴,并用以中断伙伴。在第一伙伴的情况下,送出的"G"值是于方块436所计算;在剩下的伙伴的情况下,“G"值是于方块1052被计算出。流程继续至方块1048。于方块1048,微码208程序化CSR 234以检测下一个伙伴已传回一混合C-状态至核心106,并获得混合C-状态,以〃 H"表示。流程继续至方块1052。于方块1052,synC_C-状态微码208藉由计算〃 G" 与〃 H"值的最小值来计算一最近计算的原生性混合C-状态,以"G"表示。流程回复至决定方块438。流程继续从图10中的方块466,并继续经由方块476,如相关于图4所说明。可注意到于方块474,伙伴(核心106传送"L"值给它)为中断核心106的伙伴。此外,流程继续从图10中的决定方块472离开"NO"分支,并继续经由方块484,如相关于图4所说明的。然而,图10并不包含方块486或488。反之,流程继续从方块484至决定方块1085。于决定方块1085,如果〃 L"值小于2,则流程继续至方块474 ;否则,流程继续至决定方块1087。在流程从方块484继续至决定方块1085的情况下,“L"值是于方块484 被计算出;在流程从方块1093继续至决定方块1085的情况下,“L"值是于方块1093被计算出。流程继续至决定方块1087。于决定方块1087,synch_C-状态微码208决定所有其伙伴是否已被造访,亦即,核心106是否已经与其的每一个伙伴交换一 C-状态或从其的每一个伙伴接收一 C-状态。在中断伙伴的情况下,C-状态经由方块466被接收(且将经由方块474被送出);因此,中断的伙伴被视为已经被造访;在剩下的伙伴的情况下,C-状态经由方块1089与1091被交换。 如果所有其伙伴已被造访,则流程继续至方块474 ;否则,流程继续至方块1089。
于方块1089,微码208藉由程序化CSR 234在其下一个伙伴上产生sync_C-状态常式的一新实例,用以将"L"值传送至其下一个伙伴,并用以中断伙伴。在第一伙伴的情况下,送出的"L"值是于方块484被计算出;在剩下的伙伴的情况下,“L"值是于方块 1093被计算出。流程继续至方块1091。于方块1091,微码208程序化CSR 234以检测下一个伙伴已传回一混合C-状态至核心106,并获得混合C-状态,以〃 M"表示。流程继续至方块1093。于方块1093,sync_C-状态微码208藉由计算〃 L “ 与〃 M"值的最小值来计算原生性混合C-状态的一最近计算的数值,以"L"表示。流程回复至决定方块1085。现在参考图11所显示的方块图,其显示依据本发明的执行分配在两个多核心微处理器102的多重处理核心106之间的分散式电源管理的一计算机系统1100的一种替代实施例。系统1100类似于图1的系统100,且两个多核心微处理器102每个类似于图1的多核心微处理器102 ;然而,此系统包含耦接在一起的两个多核心微处理器102,用以提供一种八核心系统1100。因此,图11的系统1100亦类似于图9的系统900在于其包含四个双核心晶粒104,以晶粒0、晶粒1、晶粒2以及晶粒3表示。晶粒0包含核心0与核心1,晶粒1包含核心2与核心3,晶粒2包含核心4与核心5,而晶粒3包含核心6与核心7。然而,晶粒0与晶粒1包含在第一多核心微处理器封装102中,而晶粒2与晶粒3包含在第二多核心微处理器封装102中。因此,虽然核心106被分配在图11的本实施例中的多重多核心微处理器封装102之间,然而核心106共用某些电源管理相关的资源,亦即由芯片组114 与芯片组114的政策所提供用以窥探或不窥探的总线116时钟在处理器总线上快取,以使芯片组114由预先决定的I/O连接端口地址,期望总线116上的单一 I/O读取传输。此外, 两个封装102的核心106潜在地共用一 VRM,以及一晶粒104的核心106可能共用一 PLL, 如上所述。较佳是,图11的系统1100的核心106(尤其核心106的微码208)被设计成与彼此沟通,用以如于此所说明的,藉由使用核心间通讯配线112、晶粒间通讯配线118以及封装间通讯配线1133(说明于下)而以一种分散方式,以及在CNTR. 2534中协调共用电源管理相关的资源的控制。第一多核心微处理器102的晶粒间通讯配线118如在图1中被设计。然而,第二多核心微处理器102的接脚以〃 P5"、“ P6"、“ VT'以及〃 P8"表示,且第二多核心微处理器102的晶粒间通讯配线118被设计如下。晶粒2的IN 2焊垫与晶粒3的IN 3焊垫经由单一配线网耦接至接脚P5;晶粒2的IN 1焊垫与晶粒3的IN 2焊垫经由单一配线网耦接至接脚P6 ;晶粒2的OUT焊垫与晶粒3的IN 1焊垫经由单一配线网耦接至接脚P7 ; 晶粒3的OUT焊垫与晶粒2的IN 3焊垫经由单一配线网耦接至接脚P8。再者,经由系统 1100的一主机板的封装间通讯配线1133,第一多核心微处理器102的接脚Pl耦接至第二多核心微处理器102的接脚P7,以使晶粒0的OUT焊垫、晶粒1的IN 1焊垫、晶粒2的IN 2焊垫,以及晶粒3的IN 3焊垫经由单一配线网而全部耦接在一起;第一多核心微处理器 102的接脚P2耦接至第二多核心微处理器102的接脚P8,以使晶粒1的OUT焊垫、晶粒2 的IN 1焊垫、晶粒3的IN 2焊垫,以及晶粒0的IN 3焊垫经由单一配线网而全部耦接在一起;第一多核心微处理器102的接脚P3耦接至第二多核心微处理器102的接脚P5,以使晶粒0的OUT焊垫、晶粒1的IN 1焊垫、晶粒2的IN 2焊垫,以及晶粒3的IN 3焊垫经由单一配线网而全部耦接在一起;而第一多核心微处理器102的接脚P4耦接至第二多核心微处理器102的接脚P6,以使晶粒0的OUT焊垫、晶粒1的IN 1焊垫、晶粒2的IN 2焊垫, 以及晶粒3的IN 3焊垫经由单一配线网而全部耦接在一起。图2的CSR 234亦耦接至封装间通讯配线1133,用以允许微码208又程序化CSR 234以经由封装间通讯配线1133而与其他核心106沟通。因此,每个晶粒104的主控核心106被致能以经由封装间通讯配线 1133与晶粒间通讯配线118而与彼此晶粒104的主控核心106(亦即,其伙伴)沟通。当每一个主控核心106想要与其他晶粒104沟通时,其传输在其OUT焊垫108上的信息,且此信息广播至其他晶粒104并藉由它们各自的主控核心106而经由适当的IN焊垫108被接收。 如可能从图11观察到的,较佳是,相关于每个多核心微处理器102,每个晶粒104上的焊垫 108的数目与封装102上的接脚P的数目不大于晶粒104的数目,其为相当小的数目。再者,请注意到对于一晶粒104的一既定主控核心106而言,每隔一个晶粒104的主控核心106为既定主控核心106的一〃伙伴〃核心106,可能从图11观察到核心0、核心 2、核心4以及核心6为类似于图9中的配置的伙伴,纵使在图9中,所有的四个晶粒104包含于单一个八核心微处理器封装902中,而在图11中,四个晶粒104包含于两个分离的四核心微处理器封装102中。因此,相关于图10所说明的微码208被设计成用以又在图11 的系统1100中操作。此外,所有四个伙伴核心106—起形成一同侪合作同属性群组,其中每个伙伴核心106在没有仲裁的情况下被致能,以藉由无论哪一个伙伴核心106被指定为 BSP核心都可直接与任何其他的伙伴核心106协调。更进一步注意到,虽然接脚P在多处理器实施例(例如图11与图12的那些)中是需要的,但如果必要的话,接脚可能在单一多核心微处理器102实施例中被省略,虽然它们对于除错目的是有益的。现在参考图12所显示的方块图,其显示依据本发明的执行分配在两个多核心微处理器1202的多重处理核心106之间的分散式电源管理的一计算机系统1200的一替代实施例。系统1200类似于图11的系统1100,而多核心微处理器1202类似于图11的多核心微处理器102。然而,系统1200的八个核心依据一较深的阶层式协调系统而藉由旁带配线被组织并在实体上连接。每个晶粒104只具有三个焊垫108 (OUT、IN 1以及IN 2),用以耦合至晶粒间通讯配线118 ;每个封装1202只具有两个接脚,在第一多核心微处理器1202上以Pl与P2表示, 以及在第二多核心微处理器1202上以P3与P4表示;而连接图12的两个多核心微处理器 1202的晶粒间通讯配线118与封装间通讯配线1133具有不同于图11的它们的相对物的配置。在图12的系统1200中,核心0与核心4被指定为它们各自的多核心微处理器1202 的"封装主控"或“P主控"。再者,除非另有说明,否则专门用语"好友"于此用以表示彼此沟通的不同封装1202上的主控核心106 ;因此,于图12的本实施例中,核心0与核心4为好友。第一多核心微处理器1202的晶粒间通讯配线118被设计如下。在第一封装 1202之内,晶粒0的OUT焊垫与晶粒1的IN 1焊垫经由单一配线网耦接至接脚Pl ;晶粒1 的OUT焊垫与晶粒0的IN 1焊垫经由单一配线网耦接;而晶粒0的IN 2焊垫耦接至接脚 P2。在第二封装1201之内,晶粒2的OUT焊垫与晶粒3的IN 1焊垫经由单一配线网耦接至接脚P3;晶粒3的OUT焊垫与晶粒2的IN 1焊垫经由单一配线网耦接;而晶粒2的IN 2焊垫耦接至接脚P4。再者,经由系统1200的主机板的封装间通讯配线1133,接脚Pl耦接至接脚P4,以使晶粒0的OUT焊垫、晶粒1的IN 1焊垫,而晶粒2的IN 2焊垫经由单一配线网而全部耦接在一起;以及接脚P2耦接至接脚P3,以使晶粒2的OUT焊垫、晶粒3的IN 1焊垫,以及晶粒0的IN 2焊垫经由单一配线网而全部耦接在一起。因此,不像在图9的系统900中以及在图11的系统1100中,于其中每个主控核心106可与每隔一个主控核心106沟通,在图12的系统1200中,只有主控核心0与主控核心4可与彼此沟通(亦即,是经由于此所说明的旁带配线之间)。图12的实施例胜过图11 的一项优点为相关于每个多核心微处理器1202,每个晶粒104上的焊垫108的数目比晶粒 104的数目小(1),以及每个封装1202上的接脚P的数目比晶粒104的数目小0),其为一相当小的数目。此外,在核心106之间的C-状态交换的数目可能更少。于一实施例中,为了除错的目的,第一多核心微处理器1202亦包含耦接至晶粒1的OUT焊垫108的一第三接脚,而第二多核心微处理器1202亦包含耦接至晶粒3的OUT焊垫108的一第三接脚。现在参考图13所显示的流程图,其显示依据本发明的用以执行分配在双四核心微处理器1202(八个核心)系统1200的多重处理核心106之间的分散式电源管理的图12 的系统1200的操作。更明确而言,图13的流程图显示图3(与图6)的Sync_C-状态微码 208的操作,类似于图4与10的流程图,其在许多方面是相似的,且相同号码的方块是类似的。然而,在图13的流程图中所说明的核心106的Sync_C-状态微码208负责晶粒间通讯配线118及封装间通讯配线1133的配置在图12的系统1200与图11的系统1100之间是不同的事实,特别是某些主控核心106(亦即核心2及核心4)并未被设计成用以与系统1200 的所有其他主控核心106直接沟通,但取而代的的是好友(核心0及核心4)以一种阶层式方式向下传递至它们的伙伴(分别为核心2与核心6),其依序向下传递至它们的朋友核心 106。现在说明这些差异。流程开始于图13中的方块402,并继续经由方块424,如相关于图4所说明的。然而,图10并未包含方块似6或428。反之,流程继续从方块似4至方块13沈。此外,于决定方块432,如果中断的核心106为一好友而非一朋友或伙伴,则流程继续至方块1301。于方块1326,synC_C-状态微码208藉由计算〃 C"与〃 D"值的最小值来计算 (原生性)混合C-状态的一最近计算的数值,以"C"表示。流程继续至决定方块1327。于决定方块1327,如果于方块13 所计算的〃 C"值小于2或核心106并非是封装主控核心106,则流程继续至方块416 ;否则,流程继续至方块 1329 ο于方块1329,sync_C_状态微码208藉由程序化CSR 234在其好友上产生sync_ C-状态的新实例,用以将于方块13 所计算的"C"值传送至其好友并用以中断好友。这要求好友计算并传回一混合C-状态(其在类似于上述与图4相关说明的情况下可能构成整个处理器的合成的C-状态),并要求好友将其提供回到这个核心106。流程继续至方块1331。于方块1331,sync_C-状态微码208程序化CSR2;34以检测好友已传回一混合C-状态至核心106,并获得混合C-状态,以〃 D"表示。流程继续至方块1333。于方块1333,synC_C-状态微码208藉由计算〃 C" 与〃 D"值的最小值来计算一最近计算的混合C-状态,以"C"表示。可注意到,假设D 至少2,然后,一旦流程继续至方块1333,就会于方块1333,在"C"值的合成的C-状态计算中已考量系统1200中的每个核心106的C-状态;因此,合成的C-状态于此被称为系统 1200合成的C-状态。流程继续至方块416。流程继续从图13中的方块434,并继续经由方块444与448,如相关于图4所说明的。然而,图13并不包含方块452、妨4或456。反之,流程继续从方块448至方块1352。于方块1352,synC_C-状态微码208藉由计算〃 G"与〃 H"值的最小值来计算一最近计算的原生性混合C-状态,以"G"表示。流程继续至决定方块1353。于决定方块1353,如果于方块1352所计算的〃 G"值小于2或核心106并非是封装主控核心106,则流程继续至方块442 ;否则,流程继续至方块 1355。于方块1355,sync_C-状态微码208藉由程序化CSR 234在其好友上产生sync_ C-状态的新实例,用以将于方块1352所计算的"G"值传送至其好友,并用以中断好友。这要求好友计算并传回一混合C-状态回到这个核心106。流程继续至方块1357。于方块1357,sync_C_状态微码208程序化CSR234以检测好友已传回一混合C-状态至核心106,并获得混合C-状态,以"H"表示。流程继续至方块1359。于方块1359,synC_C-状态微码208藉由计算〃 G"与〃 H"值的最小值来计算一最近计算的原生性混合C-状态,以"G"表示。可注意到,假设H至少为2,则一旦流程继续至方块1359,就会于方块1359,在"G"值的合成的C-状态计算中已考量系统1200中的每个核心106的C-状态;因此,合成的C-状态于此被称为系统1200合成的C-状态。流程继续至方块442。流程继续从图13中的方块466,并继续经由方块476与482,如相关于图4所说明的。然而,图13并不包含方块484、486或488。反之,流程继续从方块482至方块1381。于方块1381,synC_C-状态微码208藉由计算〃 L"与〃 M"值的最小值来计算一最近计算的原生性混合C-状态,以"L"表示。流程继续至决定方块1383。于决定方块1383,如果于方块1381所计算的〃 L"值小于2或核心106并非是封装主控核心106,则流程继续至方块474 ;否则,流程继续至方块 1385。于方块1385,sync_C-状态微码208藉由程序化CSR 234在其好友上产生sync_ C-状态的新实例,用以将于方块1381所计算的"L"值传送至其好友,并用以中断好友。这要求好友计算并传回一混合C-状态回到这个核心106。流程继续至方块1387。于方块1387,sync_C_状态微码208程序化CSR234以检测好友已传回一混合C-状态至核心106,并获得混合C-状态,以"M"表示。流程继续至方块1389。于方块1389,synC_C-状态微码208藉由计算〃 L"与〃 M"值的最小值来计算一最近计算的原生性synced C-状态,以〃 L"表示。可注意到,假设M是至少2,则一旦流程继续至方块1389,就会于方块1389,在"L"值的合成的C-状态计算中已考量系统1200中的每个核心106的C-状态;因此,合成的C-状态于此被称为系统1200合成的C-状态。流程继续至方块474。如上所述,于决定方块432,如果中断的核心106为一好友而非一朋友或伙伴,则流程继续至方块1301。
于方块1301,核心106被其好友所中断,所以微码208程序化CSR 234,用以从其好友获得好友的合成的C-状态,在图13中以"Q"表示。可注意到,好友不会已实施 synch_C-状态的这种实例,如果其尚未为至少2的其封装决定一合成的C-状态的话。流程继续至方块1303。于方块1303,sync_C-状态微码208计算一原生性混合 C-状态(以〃 R"表示)作为其适合的于方块1301所接收的C-状态〃 Y"值与〃 Q〃值的最小值。流程继续至决定方块1305。于决定方块1305,如果于方块1303所计算的〃 R"值小于2,则流程继续至方块1307 ;否则,流程继续至方块1311。于方块1307,为因应经由核心间中断来自其好友的请求,微码208程序化CSR 234 以将于方块1303所计算的"R"值传送至其好友。流程继续至方块1309。于方块1309,常式将于方块1303所计算的"R"值传回至其呼叫者。流程于方块1309结束。于方块1311,sync_C-状态微码208藉由程序化CSR 236在其朋友上产生sync_ C-状态的新实例,用以将于方块1303所计算的"R"值传送至其朋友,并用以中断朋友。这要求朋友计算并传回一混合C-状态至核心106。流程继续至方块1313。于方块1313,sync_C-状态微码208程序化CSR236以检测朋友已传回一混合C-状态至核心106,并获得朋友混合C-状态,在图13中以〃 S"表示。流程继续至方块1315。于方块1315,synC_C-状态微码208藉由计算〃 R" 与〃 S"值的最小值来计算一最近计算的原生性混合C-状态,以"R"表示。流程继续至决定方块1317。于决定方块1317,如果于方块1315所计算的〃 R"值小于2,则流程继续至方块1307 ;否则,流程继续至方块1319。于方块1319,sync_C-状态微码208藉由程序化CSR 234在其伙伴上产生sync_ C-状态的新实例,用以将于方块1315所计算的"R"值传送至其伙伴,并用以中断伙伴。这要求伙伴计算并传回一混合C-状态至这个核心106。流程继续至方块1321。于方块1321,sync_C-状态微码208程序化CSR2;34以检测伙伴已传回一混合C-状态至核心106,并获得混合C-状态,以〃 S"表示。流程继续至方块1323。于方块1323,synC_C-状态微码208藉由计算〃 R" 与〃 S"值的最小值来计算一最近计算的原生性混合C-状态,以"R"表示。可注意到,假设S是至少2,然后,一旦流程继续至方块1323,就会于方块1323,在"R"值的计算中已考量系统1200中的每个核心106的C-状态;因此,丨‘R〃构成系统1200的合成的C-状态。 流程继续至方块1307。现在参考图14所显示的方块图,其显示依据本发明的执行分配在一多核心微处理器1402的多重处理核心106之间的分散式电源管理的一计算机系统1400的一替代实施例。系统1400在某些方法上类似于图9的系统900,因为其包含在单一封装上具有经由晶粒间通讯配线118耦接在一起的四个双核心晶粒104的单一八核心微处理器1402。然而, 系统1400的八个核心是依据一较深的三层的阶层式协调系统而藉由旁带配线被组织且实体上被连接。首先,晶粒间通讯配线118的配置与图9不同,如下所述。值得注意的,系统1400 在某些方法上类似于图12的系统1200,于其中核心依据一种三层的阶层式协调系统而又被组织且实体上被连接。四个晶粒104的每一个包含用以耦接至晶粒间通讯配线118的三个焊垫108,亦即OUT焊垫、IN 1焊垫以及IN 2焊垫。图14的多核心微处理器1402包含以〃 Pl"、“ P2"、“ P3"以及〃 P4"表示的四个接脚。图14的多核心微处理器1402 的晶粒间通讯配线118的配置如下。晶粒0的OUT焊垫、晶粒1的IN 1焊垫,以及晶粒2 的IN 2焊垫经由耦接至接脚Pl的单一配线网而全部耦接在一起;晶粒1的OUT焊垫与晶粒0的IN 1焊垫经由耦接至接脚P2的单一配线网而耦接在一起;晶粒2的OUT焊垫、晶粒 3的IN 1焊垫以及晶粒0的IN 2焊垫经由耦接至接脚P 3的单一配线网而全部耦接在一起;晶粒3的OUT焊垫与晶粒2的mi焊垫经由耦接至接脚P4的单一配线网而耦接在一起。对核心0与核心4纵使它们位于相同的封装1402(与上述相关于图12所规定的专门用语"好友"的意思相反)仍被视为好友,以及好友于图14的本实施例中经由晶粒间通讯配线118而非经由图12的封装间通讯配线1133而彼此沟通的理解,图14的核心106 被设计成用以依据图13的说明操作。于此注意到除处理器的实体模型以外,核心依据一种较深的且具有三个层次的域的阶层式协调系统而被设计。现在参考图15所显示的方块图,其显示依据本发明的执行分配在一种多核心微处理器1502的多重处理核心106之间的分散式电源管理的一计算机系统1500的一替代实施例。系统1500在某些方法上类似于图14的系统1400,因为其包含单一个八核心微处理器1502,其具有以核心0至核心7表示的八个核心106。然而,多核心微处理器1502包含经由晶粒间通讯配线118耦接在一起的两个四核心晶粒1504。两个晶粒1504的每一个包含用以耦接至晶粒间通讯配线118的两个焊垫108,亦即一 OUT焊垫以及IN 1、IN 2和IN 3焊垫。多核心微处理器1502包含以〃 Pl"与〃 P2"表示的两个接脚。多核心微处理器 1502的晶粒间通讯配线118的配置如下。晶粒0的OUT焊垫与晶粒1的IN 1焊垫经由耦接至接脚P2的单一配线网而耦接在一起,而晶粒1的OUT焊垫与晶粒0的IN 1焊垫经由耦接至接脚Pl的单一配线网而耦接在一起。此外,四核心晶粒1504的核心间通讯配线112将每个核心106耦接至晶粒1504的其他核心106,用以促进分配在一种多核心微处理器1502 的多重处理核心106之间的分散式电源管理。对下述的理解,图15的核心106被设计成用以依据图13的说明操作。首先,每个晶粒本身具有其核心,其依据一双层的阶层式协调系统藉由旁带配线而被组织且实体上被连接。晶粒O具有两个朋友同属性群组(核心0与核心1 ;核心2与核心幻以及一个伙伴同属性群组(核心0与核心2、。同样地,晶粒1具有两个朋友同属性群组(核心4与核心 5 ;核心6与核心7)以及一个伙伴同属性群组(核心4与核心6)。于此注意到伙伴核心纵使它们是位于相同的晶粒(与上述相关于图1所规定的的"伙伴"的特性记述相反)仍被视为伙伴。此外,伙伴于图15的本实施例中经由核心间通讯配线112而非经由图12的晶粒间通讯配线118而彼此沟通。其次,封装本身界定一第三阶层式范围及对应的好友同属性群组。换言之,核心0 及核心4纵使它们位于相同的封装1502(与上述相关于图12所规定的专门用语"好友" 的意思相反),仍被视为好友。另外,好友于图15的本实施例中经由晶粒间通讯配线118而非经由图12的封装间通讯配线1133而彼此沟通。现在参考图16所显示的方块图,其显示依据本发明的执行分配在一种多核心微处理器1602的多重处理核心106之间的分散式电源管理的一计算机系统1600的一替代实施例。系统1600在某些方法上类似于图15的系统1500,因为其包含单一个八核心微处理器1602,其具有以核心0至核心7所表示的八个核心106。然而,每个晶粒104包含多条在每一个核心106之间的核心间通讯配线112,用以允许每个核心106与晶粒104中的彼此核心106沟通。因此,为图16的每个核心106的微码208的操作的说明的目的(1)核心 0、核心1、核心2以及核心3被视为朋友,而核心4、核心5、核心6以及核心7被视为朋友; (2)核心0及核心4被视为伙伴。因此,系统1600是依据由朋友与伙伴同属性群组所组成的一双层阶层式协调系统而藉由旁带配线被组织且实体上被连接。此外,在晶粒的每一个核心之间的核心间通讯配线112的存在,促进供晶粒所界定的朋友同属性群组用的一同侪合作协调模型。虽然能够依据一同侪合作协调模型操作,但图17说明一种供核心之间的分散式电源管理用的主控合作协调模型。现在参考图17所显示的流程图,其显示依据本发明的用以执行分配在多核心微处理器102的多重处理核心106之间的分散式电源管理的图16的系统1600的操作。更明确而言,图17的流程图显示图3 (与图6)的Sync_C-状态微码208的操作,类似于图4的流程图,其在许多方面是相似的,且相同号码的方块是类似的。然而,在图17的流程图中所说明的核心106的微码208负责八个核心106的存在而非于图1的本实施例中的四个核心 106,具体地说四个核心106的存在为两个晶粒104的每一个,而现在说明差异。尤其,一晶粒104的每个主控核心106具有三个朋友核心106而非一个朋友核心106。流程开始于图17中的方块402,并继续经由决定方块404且离开决定方块404 的"NO"分支至决定方块432,如相关于图4所说明的。然而,图17并不包含方块406至 418。反之,流程继续从决定方块404离开〃 YES〃分支至方块1706。于方块1706,sync_C-状态微码208藉由程序化图2的CSR 236在一朋友上产生 sync_C-状态常式的新实例,用以将于方块402所接收或于方块1712所产生(讨论于下) 的"A"值传送至其下一个朋友,并用以中断朋友。这要求朋友计算并传回一混合C-状态至核心106。在包含方块1706、1708、1712、414以及1717的回圈中,微码208掌握其已造访的朋友的行踪,用以确保其造访它们每一个(除非于决定方块414被发现是真实的状况)。 流程继续至方块1708。于方块1708,sync_C-状态微码208程序化CSR 236以检测下一个朋友已传回一混合C-状态至核心106,并获得朋友的混合C-状态,在图17以"B"表示。流程继续至方块 1712。于方块1712,s ync_C-状态微码208藉由计算〃 A"及〃 B"值的最小值来计算一最近计算的原生性混合C-状态,其以"A"表示。流程继续至决定方块1714。于决定方块1714,如果于方块1712所计算的〃 A"值小于2或核心106并非是主控核心106,则流程继续至方块1716 ;否则,流程继续至决定方块1717。于方块1716,synC_C-状态微码208将于方块1712所计算的〃 A"值传回至其呼叫者。流程于方块1716结束。于决定方块1717,Sync_C-状态微码208决定所有其朋友是否已被造访,亦即,核心106是否已经经由方块1706与1708而与每一个其朋友交换混合C-状态。如果是,则流程继续至方块1719 ;否则,流程回复至方块1706。于方块1719,synC_C-状态微码208决定于方块1712所计算的〃 A"值成为其晶粒合成的C-状态,其以"C"表示,且流程继续至方块422并继续进行经由至方块428,如上相关于图4所述。流程继续从决定方块438的〃 NO 〃分支至决定方块1739。于决定方块1739,Sync_C-状态微码208决定所有其朋友是否已被造访,亦即,核心106是否已经经由方块1741及1743(讨论于下)而与每一个其朋友交换一混合C-状态。 如果是,流程继续至方块446,并继续进行经由至方块456,如上相关于图4所述;否则,流程继续至方块1741。于方块1741,sync_C-状态微码208藉由程序化图2的CSR 236在其下一个朋友上产生synC_C-状态常式的新实例,用以将于方块436或于方块1745 (讨论于下)所计算的"G"值传送至其下一个朋友,并用以中断朋友。这要求朋友计算并传回一混合C-状态至核心106。在包含方块438、1739、1741、1743以及1745的回圈中,微码208掌握其已造访的朋友的行踪,用以确保其造访它们每一个(除非于决定方块438被发现是真实的状况)。 流程继续至方块1743。于方块1743,sync_C-状态微码208程序化CSR 236以检测下一个朋友已传回一混合C-状态至核心106,并获得朋友的混合C-状态,在图17中以"F"表示。流程继续至方块1745。于方块1745,synC_C-状态微码208藉由计算〃 F"及〃 G"值的最小值来计算一最近计算的原生性混合C-状态,其以"G"表示。流程回复至决定方块438。图17并不包含方块478至方块488。取而代的的是,流程继续离开决定方块472 的〃 NO"分支至决定方块1777。于决定方块1777,Sync_C-状态微码208决定所有其朋友是否已被造访,亦即,核心106是否已经经由方块1778及1782 (讨论于下)而与每一个其朋友交换一混合C-状态。 如果是,流程继续至方块474并继续进行经由至方块476,如上相关于图4所述;否则,流程继续至方块1778。于方块1778,sync_C-状态微码208藉由程序化图2的CSR 236在下一个朋友上产生synC_C-状态常式的新实例,用以将于方块468或于方块1784 (讨论于下)所计算的"L"值传送至其下一个朋友,并用以中断朋友。这要求朋友计算并传回一混合C-状态至核心106。在包含方块472、1777、1778、1782以及1784的回圈中,微码208掌握其已造访的朋友的行踪,用以确保其造访它们每一个(除非于决定方块472被发现是真实的状况)。 流程继续至方块1782。于方块1782,sync_C-状态微码208程序化CSR 236以检测下一个朋友已传回一混合C-状态至核心106,并获得朋友的混合C-状态,在图17以"M"表示。流程继续至方块 1784。于方块1784,s ync_C-状态微码208藉由计算〃 L"及〃 M"值的最小值来计算一最近计算的原生性混合C-状态,其以"L"表示。流程回复至决定方块472。如较早所陈述的,如应用至图16的图17显示一主控仲裁的阶层式协调模型至一微处理器1602的应用,其旁带配线促进对于至少某些的核心同属性群组的一同侪合作协调模型。这种组合提供各种优点。在一方面,微处理器1602的实体构造提供在界定与再界定阶层式域以及指定与再指定域主控上的挠性,如与申请案序号61/似6,470的段落相关所说明的,前述申请案的申请日为2010年12月22日,名称为"在一多核心处理器中的动态及选择性核心禁能(Dynamic and Selective Core Disablement)“,及其同时申请的非临时申请案(CNTR. 2536),其于此并入作参考。此外,在提供这种核心间协调挠性的一微处理器上,可能利用一个以上的协调模式提供依据预定情况或配置设定可以行动的一阶层式协调系统。举例而言,一阶层式协调系统可藉由使用供一既定同属性群组用的标示的主控核心而优先地采用协调的一主控仲裁的模型,但是在某些预定或检测条件下,将一不同的核心标示为供那个同属性群组用的一暂时主控,或者切换成供一既定同属性群组用的一同侪合作协调模型。可能的模型切换条件的例子包含无反应或禁能的标示的主控核心,处于基于它们的状态或紧急性限制中断的一限制中断模式的标示的主控,或处于将某些把关或协调角色的委派授权给一个或多个其成份的一状态的标示的主控。在上述图中,已显示受限制的电源状态(例如C-状态>=2),只有等于供处理器用的复合电源状态时其是可实施的。在诸如此类的情况下,已说明可操作以在实施受限制的电源状态之前负责处理器中的每个核心的适合的电源状态的复合电源状态发现过程。然而且如较早在规格中所陈述的,将理解到可考虑可订定电源状态的不同配置与等级。此外,亦考虑包含多重域-特定层次的受限制的电源状态的电源状态的非常进阶的设定,于此渐进较高层次的受限制的电源状态将适合于处理器的渐进较高的域。举例而言,在具有多重多核心晶粒的一多核心多处理器中,每个晶粒提供在晶粒的核心之间被共用的一 PLL,但由微处理器的所有核心所共用的单一 VRM,如譬如在 CNTR. 2534中所说明的,一域-受限制的电源状态阶层可被界定包含尤其适合于一核心内部(且非外部被共用)的资源的第一组电源状态,尤其适合于由晶粒上的核心所共用,而非以别的方法被晶粒的外部所共用的资源(例如PLL与快取)的下一组的电源状态,且特别适合于整个微处理器的另一组的电源状态(例如电压值与总线时钟)。因此,于一实施例中,每个域具有其本身的复合电源状态。另外,对每个域而言,存在有单一适当凭据的核心(例如那个域的主控),其具有实施或允许一受限制的电源状态的实现的授权,其如由一对应的域-区别的电源状态阶层协调系统所界定的,受限在其对那个域的冲击上。这种进阶配置尤其相当适合包含譬如CNTR. 2534所显示的那些实施例, 于其中副群组的处理器的核心共用快取、PLL等等。亦考虑数个实施例,于其中一分散式同步过程用以利用一种不需要唤醒所有核心的方式来不仅管理一受限制的电源状态的实现,而且选择性地实施一受限制的电源状态的一唤起状态或撤销。这种进阶实施例与像图5的系统形成对比,于其中一芯片组STPCLK解除设立可能完全唤醒所有核心。现在移到图23,一方块图描绘出譬如在微码中实施的用以有条件地实施并选择性地撤销一限制操作状态的synC_State逻辑2300的一个实施例。如下所述,sync_state逻辑2300支持一种域-区别的电源状态阶层协调系统的实现。较佳是,sync_state逻辑2300 是相当可计量的,因为其可被延伸至实际地任何期望的域-层次深度的阶层式协调系统。 另外,逻辑2300可能整体看来不仅以对一微处理器的一全域方式,而且以只对在一微处理器之内的特定群组的核心(例如,只对一晶粒的核心,如以下譬如关于方块2342所说明的) 的更多限制的方式被实施。此外,synC_state逻辑2300可能利用不同的相应地界定的阶层式协调系统、适合的操作状态以及域层次阈值,而独立应用至不同群组的操作状态。
在类似于synC_C-状态微码208的较早显示的实施例的实施样态中,sync_state 逻辑2300可能在递送一探测状态值"P"的一常式中原生或外部地被实施及被实行。例如,一电源状态管理微码常式可接收由一 MWAIT指令所递送,或如与CNTR. 2534相关所讨论的一目标操作状态,利用供核心用的原生性核心逻辑产生一目标操作状态(例如一要求的 VID或频率比率值)。接着,电源状态管理微码常式可将目标值储存为核心的目标操作状态 0TARGET,然后,藉由将0TARGET递送成为探测状态值〃 P"来实施ync_state逻辑2300。 或者,在类似于先前实施例所讨论的那些实施样态,sync_state逻辑2300可能藉由响应一外部产生的同步需求一中断常式而被实施。为简化之便,这种实例被称为sync_state逻辑 2300的外部实施的实例。在更进一步继续前进以前,应注意到,再为简化之便,图23显示以一种适合管理操作状态的形式的SynC_State逻辑2300,操作状态是以渐进地较高需求的状态(举例而言,如适合于C-状态)要求渐进地更大程度的核心间协调的这样的方式被界定或被命令。 将理解本领域技术人员可利用谨慎应用的逻辑来修改s ync_state逻辑2300以支援一操作状态阶层(例如VID或频率比率状态),于其中操作状态朝相反方向被界定。或者,因传统或选择而朝一个方向被界定的操作状态会根据定义而一般"可订定"在相反方向中。因此,sync_state逻辑2300可能只藉由重新命令它们,并施加相反指示的基准值(例如负的原始值)而被应用至操作状态(例如需求的VID与频率比率状态)。亦注意到图23显示sync_state逻辑2300是尤其为一严格地阶层式协调系统而设计,于其中所有包含的同属性群组依据一主控仲裁协调模型操作。如相关于顺应某些程度的对等合作的较早显示的同步逻辑实施例所证明的,本发明不应被理解成受限于严格地阶层式协调系统,除非并到达明确指出的程度。流程于方块2302开始,于此sync_state逻辑2300接收探测状态值〃 P"。流程继续至方块2304,于此sync_state逻辑2300亦获得原生性核心的目标操作状态0TARGET、 可由原生性核心实行的最大的操作状态0ΜΑΧ、由原生性核心所控制的最大的域层次DMAX, 以及并未涉及或干涉一既定域D的外部资源的最大可利用的域-特定状态MD。应注意到, sync_state逻辑2300获得或计算方块2304的值的方式或年表(chronology)并不重要。 在流程图中的方块2304的位置仅对介绍适合于sync_state逻辑2300的重要变数有用。在一个例示的但非限制的实施例中,域层次D被界定如下单一核心为0 ;多核心晶粒为1 ;多晶粒封装为2,等等。0与1的操作状态是不受限制的(意指一核心可能实施它们而无须与其他核心协调),2与3的操作状态是相关于相同晶粒的核心而受限(意指它们可能在一晶粒的核心上被实施以与其他晶粒上的核心协调,但不需要与在其他晶粒上的其他核心协调),而4与5的操作状态相关于相同封装的核心而受限(意指它们可能在与那个封装的核心协调之后而在那个封装上被实施,但不需要与其他封装上的其他核心协调, 如果有的话),等等。因此,相对应的最大可利用的域-特定状态MD为MO = 1 ;M1 = 3 ;以及M2 = 5。再者,由一核心所控制的最大的域层次DMAX与可由核心实行的最大的操作状态 0ΜΑΧ,两者为那个核心的主控凭据(如果有的话)的函数。因此,于此例子中,一非主控核心将具有0的一 DMAX以及1的一对应的最大的可自我实行的操作状态OMAX ; —晶粒主控核心将具有1的DMAX以及3的一对应的最大的可自我实行的操作状态OMAX ;以及一封装主控或BSP核心将具有2的DMAX以及5的一对应的最大的可自我实行的操作状态0ΜΑΧ。
流程继续至方块2306,于此sync_state逻辑2300计算等于探测值〃 P"与原生性核心的目标操作状态0TARGET的最小值的初始混合值"B"。另外,如果P是由一附属家族核心所接收,且其值小于或等于最大可利用的域-特定操作状态MD (家族核心据以为凭据来实施),则基于这里所说明的逻辑,这一般表示一附属家族核心对撤销由原生性或一较高阶级的核心所实行的任何潜在干涉的较易休眠的状态的需求。此乃因为在一般配置中, 附属家族核心已经实行相对更清醒的P状态至其所能够的程度,但其无法在没有较高层次协调的情况下,单方面地撤销经由一个其不能控制的域所实行的一干涉较易休眠状态。流程继续至方块2308,于此一域层次变数D被初始化为零。在上述所显示的例子中,一个0的D表示一个核心。流程继续至决定方块2310。如果D等于DMAX,则流程继续至方块2340。否则,流程继续至决定方块2312。举例而言,在没有实行显示在方块2312-2320之间的任何一逻辑的情况下,在一非主控核心上实施的一 synC_State常式将总是继续至方块2340。此乃因为显示在方块2312-2320之间的逻辑被提供给一主控核心的有条件地同步化附属家族核心。 关于另一例子,如果一晶粒主控核心不具有其他主控凭据,则其DMAX等于1。首先,D为0, 所以一条件同步过程可能依据方块2312-2320而在晶粒的其他核心上被实现。但在完成任何这种同步(假设依据决定方块2312,其并非有条件地越早被终止)且已将D增加1(方块 2316)之后,流程将继续(经由决定方块2310)至方块2340。现在移到决定方块2312,如果B > MD,则流程继续至决定方块2314。否则,流程继续至方块2340。为了以另一种方式陈述,如果原生性核心目前计算的混合值B将不会涉及或干涉由变数D所界定的域的外部资源,则不需要与任何更进一步的附属家族核心同步。 举例而言,如果目前计算的混合值B为1,则需要没有更进一步与附属家族核心同步的只冲击位于一既定核心的近端的资源的数值。关于另一例子,假设原生性核心为一好友核心,其具有足够凭据以关闭或冲击共通于多重晶粒的资源。但亦假设好友的目前计算的混合值B 为3,其为一个将只冲击位于好友的晶粒而非好友所主宰的其他晶粒的近端的资源的数值。 又假设好友已依据方块2314、2318以及2320而完成与其本身晶粒上的每一个核心的同步, 藉以使变数D增加至1 (方块2316),并使新的MD = Ml = 3纳入考量(方块2312)。在这些情况之下,好友并不需要更进一步与其他晶粒上的附属家族核心(例如伙伴)同步,因为 3或更少的数值的好友的实现无论如何将不会影响其他晶粒。现在移到决定方块2314,sync_state逻辑2300评估在由D+1所界定的域中是否有任何(更多)不同步的附属家族核心。如果有任何这种核心,则流程继续至方块2318。 如果不是的话,则流程首先继续至方块2316 (于此D被增加),然后至决定方块2310,于此再次评估目前增加的D的值,如上所述。现在移到方块2318,因为一种不同步的附属家族核心已被检测(方块2318),所以其可能受目前计算的混合值"B"的实现(方块231 影响,因为其将影响由附属家族核心所共用的资源,所以sync_state逻辑2300的原生性实例在不同步的附属家族核心上实施一种syncjtate逻辑2300的新的从属实例。原生性实例递送其目前计算的混合值〃 B" 以作为对于sync_state逻辑2300的从属实例的一探测值。如由sync_state逻辑2300的逻辑所显而易见的,从属实例最后将传回不大于"B"的原生性值(方块2306)且不小于附属家族核心的最大可利用的域-特定状态MD (方块2346)的数值,其为将不会干涉在原生性与附属家族核心之间所共用的任何资源的最大值。因此,当流程继续至方块2320时, SynC_State逻辑2300的原生性实例采用由从属实例所传回的数值作为其本身的"B"值。到现在为止,已将焦点指向用以有条件地同步化附属家族核心的SynC_State逻辑2300的一部分。现在,将聚焦于方块2340-2348,其说明用以执行一目标和/或同步化状态的逻辑,包含与较优的家族核心(亦即,较高层次主控)有条件地协调。现在移到方块2340,原生性核心实施其目前混合值"B"至其可以的程度。尤其, 其实行B及OMAX的最小值,可由原生性核心实行的最大状态。可注意到,相关于属于域主控的核心,方块2340设成为这种核心以实行或允许供其域用的一复合电源状态的最小值(方块2306或2320的"B")与适合于其域的最大受限制的电源状态(亦即0ΜΑΧ)的实现。流程继续至决定方块2342,于此syncjtate逻辑2300评估原生性核心是否为供微处理器用的BSP。如果是,则没有较优的核心以协调,且流程继续至方块2348。如果否, 则流程继续至决定方块2344。应注意到,在sync_state逻辑2300以对微处理器较不全域方式地被应用至控制操作状态的实施例中,方块2342藉由以预定组的操作状态所属的" 最高适合的域主控〃置换〃 BSP"而改变。举例而言,如果sync_state逻辑2300仅应用至对由CNTR. 2534中所说明的一晶粒所共用的一 PLL的期望的频率时钟比率的采用,则将以"晶粒主控〃置换〃 BSP"。在决定方块2344中,sync_state逻辑2300评估sync_state的原生性实例是否藉由一主控核心而实施。如果是,则原生性核心根据定义已经与其主控同步,所以流程继续至方块2348。如果否,则流程继续至方块2346。现在移到方块2346,sync_state逻辑2300在其主控核心上实施一个sync_state 的从属实例。其将核心的最终混合值B与核心的最大可利用的域-特定状态MD的最大值递送作无探测值P。提供说明选择这个探测值P的两个例子。在第一例子中,假设B高于原生性核心的最大可自我实行的操作状态OMAX(方块 2340)。换言之,在没有较高层次协调的情况下,原生性核心无法单方面导致B的完全实现。 在这样的情况下,方块2346表示原生性核心对其主控核心的一恳求,要求其更完全实施B, 如果可能的话。将明白依据图23所提出的逻辑,主控核心如果其并非与其本身的目标状态与其他潜在影响的核心的适合状态相符的话,将婉拒恳求。否则,主控核心将实施此恳求到达其与那些状态相符的程度,上达其本身最大的可自我实行的状态OMAX的一最大值(方块 2340)。依据方块2346,如果有的话,主控核心亦将恳求其本身具有原始核心的B值等等的混合以及可能等于原始核心的B值的数值的较优的核心,所有方式通过此阶层。依此方式, 如果满足数个适合条件,则sync_state逻辑2300完全实施原生性核心的最终混合值B。在第二例子中,假设B小于原生性核心的最大可自我实行的操作状态OMAX(方块 2340)。假设没有影响原生性核心的控制的外部资源的较高的干涉操作状态在实施中,而后在方块2340中,原生性核心已完全实行B。但是如果较高的干涉的操作状态生效,而后原生性核心无法单方面地撤销干涉操作状态。在这种情况,方块2346表示原生性核心对其主控核心的一恳求,要求其撤销一既存的干涉操作状态到达不再干涉B的完整实现的一层次 (亦即,原生性核心最大可利用的域-特定状态MD)。将明白到,依据图23所提出的逻辑, 主控核心将遵从那个恳求,藉以实行不大于且将可能小于原生性核心的MD的状态。应注意至IJ,方块2346可能或者恳求主控只实行B。但如果B < MD,则这可能使主控核心实行一种比为原生性核心完全实行B所需要的更清醒的状态。因此,使用等于原生性核心的最终混合值B与原生性核心的最大可利用的域-特定状态MD的最大值的一探测值是较佳的。因此,将明白sync_state 2302支持一种对于实现休眠状态及唤起状态两者的极简方法。
现在移到方块2348, sync_state逻辑2300将一数值传回至呼叫或实施等于核心的最终混合值B与核心的最大可利用的域-特定状态MD的最大值的过程。如以方块2346 作说明,应注意到方块2348可能或者刚好传回B的数值。但如果B < MD,则这可能使一实施的主控核心(方块2318)实行一种比本身所需要更清醒的状态。因此,传回核心的最终混合值B与核心的最大可利用的域-特定状态MD的最大值是较佳的。再者,将明白依此方式,sync_state 2302支持一种对于实现休眠状态与唤起状态两者的极简方法。
在另一实施例中,一个或多个额外决定方块介设于方块2344与2346之间,更进一步调整一从属sync_state常式的方块2346的实施。举例而言,在一个适合条件之下,如果 B > 0MAX,则流程将继续至方块2346。在另一个适合条件下,如果只有于一较高域层次可撤销的一干涉操作状态目前正被应用至原生性核心,则流程将继续至方块2346。如果所应用的这两个替代条件都不是,则流程将继续至方块2346。依此方式,synC_state 2302将支持一种对于实现唤起状态甚至更极简的方法。然而,应该观察到这个替代实施例假设原生性核心可检测一干涉操作状态是否正被应用。在原生性核心不一定能检测一干涉操作状态的存在的一实施例中,则图23所描绘出的较少条件的实施方法是较佳的。
亦将明白在图23中,当为了实行一目标的较深操作状态(或其的较浅型式)的目的所需要时,复合操作状态发现过程藉由使用一种依最低至最高(或最靠近至最远离的同属性群组)顺序渐进地横越核心的走访顺序,而只横越共用受目标的操作状态影响的资源的最高层次域(其包含其巢状域)的核心(也不需要所有的核心)。另外,当为实行一较浅的操作状态的目的所需要时,复合操作状态发现过程只横越经由相继较高的主控。此外,在上述直接说明的替代实施例中,这种横越延伸只要是撤销一目前实行的干涉操作状态所需要的。
因此,在将一较早的示范图例应用至图23,2或3的目标受限制的电源状态将只触发在适合晶粒中的核心的一复合电源状态发现过程。4或5的目标受限制的电源状态将只触发在适合封装中的核心的一复合电源状态发现过程。
图23可更进一步以一种域-特定(除了核心-特定以外)方式叙述其特征。继续上述的例示图例,一晶粒将具有2与3的适合的域-特定电源状态。举例而言,如果晶粒主控核心发现只有I的供其晶粒用的复合电源状态作为一种原生或外部开始的复合电源状态发现过程的一部分,则因为I并非是适合的域-特定电源状态,所以晶粒主控核心将不会实施它。如果晶粒主控核心发现5的供其晶粒用的复合电源状态(或晶粒的复合电源状态与一节点地连接的核心的探测电源状态数值的混合等于5)作为一替代例子,以及如果晶粒主控核心并不具有任何较高的主控凭据,则(假设其没有这样做)晶粒主控核心将实行或允许3的电源状态的实现,其为3 (晶粒的最大适合的域-特定电源状态)与5(晶粒的复合电源状态或其的一混合)的最小值。再者,可注意到于此例子中,晶粒主控核心将继续至为其晶粒实施或允许3的电源状态的实现,而不用管任何适合于一较高域(它为较高域的一部分)的实际或局部的复合电源状态(例如,2或4或5)。
进行上述的图例,于此一晶粒主控发现5的一晶粒复合电源状态或其的混合,与其伙伴相关联的晶粒主控将着手一复合电源状态发现过程,如果有的话,其将需要包含独立于供其晶粒用的3的电源状态的晶粒主控的中间实现以外的横越下一个较高层次域(例如,封装或整个处理器)。这是因为5大于3,晶粒的最大适合的域-特定电源状态,所以一较高受限制的电源状态的实现将需要取决于适合于一个或多个较高域的电源状态。此外, 下一个较高层次域特有的一较高受限制的电源状态的实现可能只藉由那个域的主控而被致能和/或被实现(例如,一多封装处理器的封装主控或单一封装处理器的BSP)。值得提醒的是,晶粒主控可能亦同时保持相关的封装主控或BSP凭据。
因此,在上述例子中,在发现过程中于某些点,晶粒主控核心将与一伙伴交换其晶粒复合电源状态(或其的混合)。在某些条件之下,这个发现过程将供较高域(例如封装) 用的一至少局部的复合电源状态(其小于2)传回至晶粒主控核心。另外,这将不会导致3 的电源状态的撤销,其为晶粒主控核心已为晶粒而实施。在其他条件之下,此种发现过程将产生一复合电源状态(例如4或更多),其对应至4或更多的受限制的电源状态。如果是, 则那个域的主控(例如封装主控)将实施一较高受限制的电源状态,其为较高层次域的复合电源状态(例如4或5)与适合于较高层次域的最大的受限制的电源状态(于此是5)的最小值。如果适合的发现过程正测试一甚至更高的受限制的电源状态,则此种附有条件的域-特定电源-状态实现过程将延伸至又更高的域层次,如果有的话。
如由上述内容可看见的,图23显示一种可操作以合并域-从属受限制的电源状态及相关阈值的阶层式域-特定受限制的电源状态管理协调系统。据此,其适合于对于个别核心及群组的核心的电源状态管理的微调域-特定分散方法。
将注意到图23显示以一种分散式分配方式提供转变成更清醒的状态的电源状态协调逻辑。然而,将明白某些电源状态实施例包含数个电源状态,在缺乏藉由芯片组或其他核心的先前电源-状态-撤销动作之下,一特定核心可能不能从此等电源状态唤起。举例而言,在上述C-状态结构中,2或更高的C-状态可能与移除总线时钟相关,其可能使一既定核心不能响应通过系统总线被传送的一指令,用以转变成为一更清醒的状态。电源或时钟源可能选择性地从一核心或一晶粒被移除的其他微处理器配置可以被考虑。图5说明觉醒逻辑的一实施例,其藉由唤醒所有核心以因应一 STPCLK解除设立来适应于这些情况。然而, 觉醒逻辑的更多选择性实施例可被考虑。在一个例子中,考虑由系统软件(例如操作系统或BIOS)所实施的觉醒逻辑,其中系统软件将首先发布一唤起或觉醒需求给一特定核心, 且如果在一段期望时间间隔之内,并未接收一响应,或核心并不遵从,则逻辑依需要递回地发布唤起或觉醒需求给相继较高的主控及潜在地芯片组,直到接收到一期望的响应或检测到适当的顺从为止。觉醒逻辑所实行的这种软件系统将以一种优先分散方式(于此每个目标的核心藉由使用其本身的微码开始转变)而使用于与图23的电源状态协调逻辑协调以转变成更清醒的状态,到达核心是可操作以这样做的程度,以及当抑制核心这样做时,以一种中心协调的方式完成。觉醒逻辑的本实施例仅是用以选择性地唤起无法唤起它们自己的核心的数个可能的实施例的说明与例示的实施例。
VI.延伸实施例及应用
虽然已说明具有一特定数目的核心106的实施例,但可考虑具有其他数目的核心 106的其他实施例。举例而言,虽然图10、13以及17所说明的微码208是被设计用以执行在八个核心之间的分配式电源管理,但微码208藉由包含检查核心106的存在或缺乏而在一种具有更少核心106的系统中适当地发生效用,例如相关于申请案序号61/426,470的段落所说明的,前述申请案的申请日为2010年12月22日,名称为"动态多核心微处理器配置(Dynamic MuLTi-Core Microprocessor Configuration)",及其同时申请的非临时申请案(CNTR. 2533),其说明书附属于此。亦即,如果一核心106是缺席的,则微码208并未与缺席核心106交换C-状态信息,并有效地假设缺席核心的C-状态将是最高可能的C-状态 (例如5的C-状态)。因此,为了制造能力的效率的目的,核心106可能被制造成具有微码 208,其被设计用以执行在八个核心之间的分配式电源管理,纵使核心106可能包含在具有更少核心106的系统中。再者,考虑到此系统包含八个以上的核心,且于此所说明的微码被延伸以利用一种类似于已经说明的那些的方式与附加核心106沟通的实施例。关于实例, 图9及11的系统可能被扩增以包含具有八个伙伴的16个核心106,而图12、14及15的系统可能被扩增以包含具有四个好友的16个核心106,类似于图9及11的系统同步化在四个伙伴之间的C-状态的方法,且图16的系统可能藉由具有16个朋友(每个晶粒八个核心乘以两个晶粒,或每个晶粒四个核心乘以四个晶粒)而被扩增以包含16个核心106,藉以综合图4、10、13以及17的方法的相关特征。
亦可考虑独立实现不同等级的电源状态(例如,C-状态、P-状态、需求的VID、需求的频率比率,等)的协调的实施例。举例而言,每个核心可为每个等级的电源状态(例如, 各别适合的VID、频率比率、C-状态以及P-状态)而具有不同的适合电源状态,具有应用至此的不同的域-特定限制,以及具有用以计算混合状态并发现复合状态(例如,C-状态的最小值对需求的VID的最大值)的不同的极值。不同的阶层式协调系统(例如,不同的域深度、不同的域主顾(domain constituencies)、不同标示的域主控和/或不同的同属性群组协调模型)可能为不同等级的电源状态而建立。此外,某些电源状态可能只需要顶多与一域(例如晶粒)上的其他核心协调,此域只包含微处理器上的所有核心的一子集。对于这种电源状态,可考虑只有节点地连结那个域、协调在那个域之内的核心、以及发现适合于那个域或在那个域之内的复合电源状态的阶层式协调系统。
一般而言,已显示所有的操作状态是依一种渐进地上升或下降基础而可严格且线性地订定的实施例。但是,可考虑操作状态被排成层列且沿着每个层(tier)以上升或下降方式可订定的其他实施例(包含数层可独立于其他层订定的实施例)。举例而言,一预定组的电源状态可能以可分离层A. B,A. B. C,等的复合形式叙述其特征,于此每一层A、B、C等关于一不同的特征或特征的等级。举例而言,一电源状态可能以C. P或P. C的复合形式叙述其特征,于此P表示一种ACPI P-状态,而C表示一种ACPI C-状态。再者,受限制的电源状态的等级可能由混合界定的电源状态的特定组成(例如A或B或C)的数值所界定,以及受限制的电源状态的另一等级可能由混合界定的电源状态的另一组成的数值所界定。此外,在受限制的电源状态的任何既定层之内,于此一层表示混合界定的电源状态的其中一个组成的数值(例如C.P),除施加至此层的限制以外,对一既定核心而言,另一种组成的数值(例如C.P中的P)可能不受限制,或受到不同等级的限制。举例而言,一个具有C. P的目标的电源状态的核心可能受到相关于其目标的电源状态的C及P部分的实现的独立限制及协调需求,于此P表不其P-状态,而C表不其需求的C-状态。在复合电源状态实施例中,任何两个电源状态的一"极值"对计算极值的一既定核心而言,可能表示复合电源状态的组成部分的极值的一复合,或复合电源状态的少于所有组成部分的极值的一复合,而对其他组成部分而言,以别的方法选择的或确定的数值。
另外,考虑在一系统中的多重核心106执行分配式分散式电源管理以明确地执行电源信贷(power credit)功能性的实施例,如说明于美国申请案13/157,436 (CNTR. 2517) 中,申请日为2011年6月10日,其为所有目的全部藉此并入作参考,但是使用核心间通讯配线112、晶粒间通讯配线118以及封装间通讯配线1133,而非使用如CNTR. 2517所说明的一共用的存储器区域。这种实施例的优点为其对于系统韧体(例如BIOS)及系统软件是透明的,且并不需要信赖系统韧体或软件以提供一共用的存储器区域,因为微处理器制造商可能未必具有控制系统韧体或软件的发布的能力,所以其是受欢迎的。
另外,考虑除了一探测值以外递送其他值的同步逻辑的实施例。于一实施例中,相关于任何其他同时操作发现过程,一同步常式递送区别地确认发现过程的一数值(其为发现过程的一部分)。在另一实施例中,同步常式递送一数值,藉由此数值可能识别同步或尚未同步的核心。举例而言,一种八核心实施例可能递送一 8位值,于此每个位代表八核心处理器的一特定核心,且每个位表示核心是否已被同步成为瞬间发现过程的一部分。同步常式亦可能递送确认开始瞬间发现过程的核心的一数值。
亦考虑促进执行核心的有规则的横越的同步化发现过程的额外实施例。在一个例子中,每个核心储存确认成员的位遮蔽的同属性群组(它为其的一部分)。举例而言,在一种利用三个层次深的阶层式协调构造的八核心实施例中,每个核心储存三个8位"同属性"遮蔽、一"最接近"同属性遮蔽、一第二层同属性遮蔽以及一顶端层同属性遮蔽,于此每个遮蔽的位值确认属于以遮蔽表示的同属性群组中的核心的家族,如果有的话。在另一例子中,每个核心储存一地图、一G6de I号码或其的组合,由其可正确地及唯一地决定核心的节点阶层,包含确认每个域主控。在另一种例子中,此核心储存确认共用资源(例如,电压源、时钟源以及快取),以及它们所属且共用的特定核心或对应的域的信息。
另外,虽然此说明书的焦点主要放在电源状态管理,但将明白上述阶层式协调系统的各种实施例可能被应用以协调其他型式的操作与限制活动,而非只是电源状态或电源相关的状态信息。举例而言,在某些实施例中,上述的各种阶层式协调系统是利用与复制在每个核心上的分散逻辑协调,来用于动态发现譬如在CNTR. 2533中的一多核心微处理器的配置,例如如上所述。
此外,应注意到除非有特别声明,否则本发明并不需要使用上述任何一个阶层式协调系统以便执行预定限制活动。的确,除非另有特别规定至某种程度,否则本发明适合于在核心之间的纯粹对等协调系统。然而,如本说明书可明显看出,一种阶层式协调系统的使用尤其在依赖旁带通讯(于此,微处理器的旁带通讯线的构造并不允许一完全相等的对等协调系统)时,可提供数个优点。
如可能从上文观察到,相较于例如上述包含集中化非核心硬件协调逻辑(HCL)的 Naveh的解决方法,将电源管理功能同等分配在于此所说明的核心106之间的分散实施例, 较佳是不需要额外的非核心逻辑。虽然非核心逻辑可被包含在一晶粒104中,但于所说明的实施例中,所需要的为实施分散分配式电源管理机制是硬件及微码与多核心-每晶粒实施例中的核心间通讯配线112、多晶粒实施例中的晶粒间通讯配线118以及多封装实施例中的封装间通讯配线1133在一起地、完全地实体上及逻辑地在它们本身的核心106之内。因为于此所说明的执行分配在多重处理核心106之间的电源管理的分散实施例的结果,核心106可能位于各别晶粒或甚至各别封装上。这潜在地降低晶粒尺寸并改善良率,提供更多配置弹性,以及提供一高层次的系统中的核心数的可调(尺寸的)能力。
在其他实施例中,核心106在各种实施样态方面与图2的代表实施例不同,并提供一种取代或附加的高度平行的构造,例如适合于一图形处理单元(GPU)的构造,如于此所说明的供活动(例如电源状态管理、核心配置发现以及核心重新规划)用的协调系统被应用至图形处理单元。
虽然于此已说明本发明的各种实施例,但应理解到已经由举例而非限制地提出它们。本领域的技术人员将明白在不背离本发明的范畴之下,可作出各种在形式及细节方面的改变。举例而言,软件可允许于此所说明的设备及方法的譬如功能、制造、模拟试验、模拟、说明和/或测试。这可经由使用一般程序设计语言(例如C、C++),包含Verilog HDL、 VHDL等等的硬件记述语言(HDL),或其他可利用的程序来达成。这种软件可被配置在任何已知的计算机可用媒体中,例如半导体、磁盘或光盘(例如,⑶-ROM、DVD-ROM等)。于此所说明的设备及方法的实施例可能包含在例如一微处理器核心的半导体知识产权核心(例如,具体化在HDL中),并改变成在集成电路的产品中的硬件。此外,于此所说明的设备及方法可能具体化为硬件及软件的组合。因此,本发明不应被任何一个于此所说明的例示实施例所限制,但应该只依据以下申请专利范围及它们的等效设计而被界定。具体而言,本发明可能在可能使用于通用计算机的微处理器装置之内被实现。最后,本领域的技术人员应明白他们可轻易地使用所揭示的概念及具体的实施例作为用以设计或修改其他构造的基础, 用以在不背离由本发明的权利要求所界定的本发明的范畴之下完成本发明的相同目的。
权利要求
1 一种多核心处理器,包含 多个致能的实体处理核心;一可配置的资源,由两个以上的所述核心共用,其中该共用资源的组态影响共享该资源的该核心利用其能够运作的电源、速度或效率;对每个核心而言,内部核心电源状态管理逻辑设定该核心的组态,用以参与在该核心之间被实现的一种分散式核心间电源状态发现过程,而无须集中式非核心逻辑的协助; 其中,该内部核心电源管理逻辑被复制于每个核心中;其中,如果该核心为了设定该共用资源的组态的目的而被指定为一主控核心,且该复合目标电源状态经由该分散式核心间电源状态发现过程而被发现,则该内部核心电源管理逻辑设定该核心的组态以唆使设定该共用资源的组态的一复合目标电源状态的实现;其中,对该共用资源而言,该复合目标电源状态为一种最节能型的电源状态,其将不会干涉共享该资源的每个核心的任何对应的目标电源状态。
2.如权利要求1所述的多核心处理器,还包含多条旁带通讯配线,其不同于连接这些核心至一芯片组的一系统总线,并在这些核心之间,且其中,多个分散式核心间电源状态发现过程是通过这些旁带通讯配线而携带有在这些核心之间被交换的多个电源状态值。
3 如权利要求1所述的多核心处理器,其中 这些目标电源状态为C-状态;该共用资源为由所有核心所共用并连接至一芯片组的一系统总线;以及该主控核心获得与该芯片组协调的独占权,以实行影响该总线的操作的一 C-状态。
4.如权利要求1所述的多核心处理器,其中该共用资源为由这些核心的至少某些所共用的一电压源; 一目标电源状态是以一需求的电压改变需求信号表示;以及该主控核心独占多个电压改变需求信号,其被送至该电压源,其要求被提供至共享该电压源的这些核心的一电压电平的一改变。
5.如权利要求1所述的多核心处理器,其中该共用资源为由这些核心的至少某些所共用的一时钟源; 一目标电源状态是以一需求的时钟比率信号表示;以及该主控核心独占多个时钟比率需求信号,其被送至该时钟源,其将导致藉由该时钟源提供给共享该时钟源的这些核心的时钟频率的一改变。
6.如权利要求1所述的多核心处理器,其中共享该资源的这些核心的只有单一一个为了唆使该复合目标电源状态的实现的目的而被指定为该主控核心;以及这些核心包含可程序化逻辑,其经由系统软件允许其被设定组态,用以为了设定该共用资源的组态的目的增加或移除一主控指定。
7.如权利要求6所述的多核心处理器,其中该内部核心电源管理逻辑被设计成用以评估该可程序化逻辑,用以决定其核心是否为了唆使该复合目标电源状态的实现的目的而被标示为主控。
8.如权利要求1所述的多核心处理器,其中一目标电源状态为多个预定电源状态的其中一个,该电源状态管理逻辑为其被设计成用以唆使一实现,其中该多个预定电源状态包含于该核心的内部影响一未共用资源的至少一不受限制的电源状态,且每个核心的该内部核心电源管理逻辑被设计成用以在没有核心间协调的情况下实施一原生性核心目标电源状态,如果其为一不受限制的电源状态的话。
9.如权利要求1所述的多核心处理器,其中该电源状态管理逻辑设定每个核心的组态以实施该分散式核心间电源状态发现过程,以因应接收转变成为将设定该共用资源的组态的一目标电源状态的一需求。
10.如权利要求1所述的多核心处理器,其中该电源状态管理逻辑设定每个核心的组态以参与一种外部实施的分散式核心间电源状态发现过程。
11.如权利要求1所述的多核心处理器,其中一分散式核心间电源状态发现过程包含相同的核心间电源状态发现微码的多个同步化实例,其参与交换多个电源状态的过程而在各该核心被执行。
12.如权利要求11所述的多核心处理器,其中一既定核心与生俱来的核心间电源状态发现微码的每个实例与另一个核心交换一电源状态;且其中该原生性实例按照下述值的至少两个计算一混合电源状态该原生性核心目标电源状态,如果有的话;由一实施过程所接收的一探测电源状态数值;以及由该核心间电源状态发现微码的一从属实施的实例传回的一电源状态值。
13.如权利要求11所述的多核心处理器,其中该分散式核心间电源状态发现过程包含该核心间电源状态发现微码的多个实例,其在经由一条互相连接核心的阶层式路径共享该共用资源的其他核心上,递归地实施该核心间电源状态发现微码的从属实例且与其同步。
14.一种供一多核心处理器用的管理电源状态的分散方法,该多核心处理器具有多个致能的实体核心以及由这些核心的至少某些所共用的一资源,该方法包含一核心接收影响在本身及至少一其他核心之间所共用的一可配置的资源的一原生性核心目标电源状态,其中该原生性核心目标电源状态定义将影响共享该资源的这些核心利用其能够运作的电源、速度或效率的该资源的一组态;该核心参与一核心间电源状态发现过程,其包含不通过任何集中式非核心逻辑而与共享该资源的至少一其他核心的电源状态的一交换;以及如果该核心为了设定该共用资源的组态的目的而被指定为一主控核心,且该复合目标电源状态经由该分散式核心间电源状态发现过程而被发现,则该核心为了设定该共用资源的组态的目的唆使一复合目标电源状态的实现;其中,对该共用资源而言,该复合目标电源状态为一种最节能型的电源状态,其将不会干涉共享该资源的每个核心的任何对应的目标电源状态。
15.如权利要求14所述的方法,还包含经由在这些核心之间的多条旁带通讯配线参与该核心间电源状态发现过程,其中这些旁带通讯配线是与将这些核心连接至一芯片组的一系统总线不同,且其中,在这些核心之间交换的多个电源状态通过这些旁带通讯配线而交换。
16.如权利要求14所述的方法,其中这些目标电源状态为C-状态;该共用资源为由所有核心所共用并连接至一芯片组的一系统总线;以及该主控核心获得与该芯片组协调的独占权以实行影响该总线的操作的一 C-状态。CN 102541237 A
17.如权利要求14所述的方法,其中该共用资源为由这些核心的至少某些所共用的一电压源; 一目标电源状态是以一需求的电压改变需求信号表示;以及该主控核心独占多个电压改变需求信号,其被送至该电压源,其要求被提供至共享该电压源的这些核心的一电压电平的一改变。
18.如权利要求14所述的方法,其中该共用资源为由这些核心的至少某些所共用的一时钟源; 一目标电源状态是以一需求的时钟比率信号表示;以及该主控核心独占多个时钟比率需求信号,其被送至该时钟源,其将导致藉由该时钟源提供给共享该时钟源的这些核心的时钟频率的一改变。
19.如权利要求14所述的方法,还包含经由参与由另一个核心所实施的一核心间电源状态发现过程,该主控核心发现并唆使用以设定该共用资源的组态的一复合目标电源状态的实现。
20.在一多核心处理器的一实体核心的一计算机可读取的储存媒体中被编码的微码, 该微码包含用以执行下述码接收设定由两个以上的这些核心所共用的一可配置资源的组态的一需求,其中该共用资源的多个组态影响共享该资源的这些核心利用其能够运作的该电源、速度或效率;参与在这些核心之间被实现的一种分散式核心间电源状态发现过程,而无须集中式非核心逻辑的协助;以及如果该核心为了设定该共用资源的组态的目的而被指定为一主控核心,且该复合目标电源状态经由该分散式核心间电源状态发现过程而被发现,则设定该核心的组态以为了设定该共用资源的组态唆使一复合目标电源状态的实现;其中,对于该共用资源而言,该复合目标电源状态为一种最节能型的电源状态,其将不会干涉共享该资源的每个核心的任何对应的目标电源状态。
21.一种多核心处理器,包含 多个实体处理核心;以及核心间状态发现微码,在各所述核心中致能该核心,用以经由不通过任何集中式非核心逻辑、而从其他核心接收或传送至其他核心的信号来参与分散式核心间状态发现过程。
22.如权利要求21所述的多核心处理器,其中该核心间状态发现微码,经由独立于将该多核心处理器连接至一芯片组的一系统总线的多条旁带通讯配线来与其他核心交换信号;以及该核心间状态发现微码,无任何集中式非核心逻辑的协助下判断一可用的状态值,其是一功能,至少是另一核心的一状态。
23.如权利要求21所述的多核心处理器,其中该核心间状态发现微码包括同步逻辑,提供至每个核心,其具有的同步实例为了一核心间状态发现过程的多个目的是可操作的以在多核心上实施;以及其中每个原生性实例是可操作的以在其他核心上实施该同步逻辑的多个新实例,及响应实施于该原生性实例的另一核心上该同步逻辑的任何先前实例。
24.如权利要求23所述的多核心处理器,其中每个核心具有一目标操作状态;该处理器包含一领域,其包括该微处理器的核心的至少其中的二; 该处理器提供一资源至该领域,其资源是由该领域的所述核心所共用; 该同步逻辑是组态成用以发现是否该领域是准备于实现一受限电源节能操作状态供该资源将限制共享该资源的这些核心利用其能够运作的电源、速度或效率;以及其中该领域是准备于实现该受限电源节能操作状态若且为若在该领域共享该资源的每个致能核心具有至少限制性的作为该受限操作状态的一目标操作状态。
25.如权利要求M所述的多核心处理器,其中 该共享资源连接至一芯片组的一系统总线;该领域包含该多核心处理器的全部的致能核心;以及该受限操作状态是一 C-状态,其是禁能该系统总线的一总线时钟。
26.如权利要求M所述的多核心处理器,其中该共享资源是在该微处理器的一多核心晶粒上的一锁相回路;该领域包含全部的致能核心,其时钟信号由该锁相回路供应;以及该受限操作状态是可共享该锁相回路的所述核心所使用的一低于最大效能频率比。
27.如权利要求M所述的多核心处理器,其中 该共享资源是一电压资源;该领域包含全部并限于共享该电压资源的该微处理器的致能核心;以及该受限操作状态是可共享该电压资源的所述核心所使用的一低于最大效能电压电平。
28.如权利要求M所述的多核心处理器,其中同步逻辑的每个实例组态为,除非由一终止条件早先地终止,用以递归地在其他核心上实施该同步逻辑的多个实例,直到该同步逻辑的同步实例已经实施在该处理器的一可用的领域的全部核心;以及其中该同步逻辑组态为随一终止条件用以停止在其他尚未同步核心上同步逻辑的实例的实施,如果其发现一核心具有的一目标操作状态是较低限制性于该受限电源节能操作状态;其中该同步逻辑组态为协调一最低限度足够数目的其他核心用以发现是否该可用的领域是准备于实现一受限电源节能操作状态。
29.如权利要求23所述的多核心处理器,其中 每个核心具有一目标操作状态;该处理器包含一领域,其包括该微处理器的核心的至少其中的二; 该处理器提供一资源至该领域,其资源是由该领域的所述核心所共用; 该同步逻辑组态成用以发现是否该领域共享该资源的其中一个该致能核心具有一目标操作状态较低限制性于一目前实现电源节能操作状态;致能该核心,如果其授权以协调其资源,以撤销对该资源的一电源节能操作状态,若该同步逻辑已经发现该领域的一致能核心具有一目标操作状态较低限制性于一目前实现电源节能操作状态。
30.如权利要求23所述的多核心处理器,其中该同步逻辑的每个实例组态成根据在一阶层式方式组织核心间协调的一阶层式协调系统用以在该多核心处理器的其他核心上实施该同步逻辑的从属实例。
31.如权利要求23所述的多核心处理器,其中该阶层式协调系统是根据在所述领域内所述核心所共享的资源将所述核心聚集至所述领域,其中对每个领域而言,为了所述资源的一协调组态的目的,一个单一核心被指定为那个域的主控。
32.如权利要求23所述的多核心处理器,其中该阶层式协调系统是将所述核心聚集至多个领域层级,至少包含 一最高地位的首要层级领域,具有全部的所述核心;以及二个或二个以上对等次一地位的第二层级领域,最紧接于该最高地位,其是该首要层级领域的成分并成巢于内,每个第二层级领域群组分别包括所述核心的独占副群组; 对每个多核心领域层级,一个单一核心是被指定为该领域的一主控; 该最低层级多核心领域以外的每个多核心领域是定义一同属性群组,其是由最紧随以下地位的成分领域的主控核心所组成;每个最低层级多核心领域定义一同属性群组,其是由其全部的核心所组成; 每个核心属于至少一同属性群组;以及该同步逻辑的每个原生性实例是受限于将该同步逻辑的新实例实施至非属于一原生性核心同属性群组的多个核心。
33.如权利要求23所述的多核心处理器,其中该多核心处理器的多个核心的其中一个指定为对该阶层式协调系统的每个多核心领域的一主控。
34.如权利要求23所述的多核心处理器,其中每个核心组态为用以采用其分散式核心间状态发现微码来发现是否该多核心处理器的其他核心为禁能。
35.如权利要求23所述的多核心处理器,其中每个核心组态为用以采用其分散式核心间状态发现微码来发现该多核心处理器具有多少个致能核心。
36.如权利要求23所述的多核心处理器,其中每个核心组态为用以采用其分散式核心间状态发现微码来发现该多核心处理器的一阶层式协调系统。
37.一种多核心处理器的发现状态的分散式微码实现方法,该多核心处理器包括多个实体处理核心,该方法包括至少二核心经由不通过任何集中式非核心逻辑、而由核心交换的信号来参与一分散式核心间状态发现过程。
38.如权利要求37所述的方法,其中该方法施行于发现下述状态的至少其中之一 对该处理器的一复合电源状态;对该处理器的一领域的一复合电源状态,该领域包括多个核心的一群组,其根据多个组态的其中的一为了电源节能的目的而共享可操作地被组态的一可组态资源; 另一核心的一目标电源状态;共享一可组态资源的多个核心的一群组任一者的一最低限制性目标电源状态; 一最高限制性目标电源状态,其是由不妨碍其他核心的对应目标操作状态的一核心所实现;一核心是否致能或禁能;该多核心处理器具有多少个核心为致能;共享资源及多个核心的领域的一识别,在其中各样的可组态资源被共享;所述核心的一阶层式协调系统,用于经营共享资源;在多核心处理器内多条旁带通讯配线以协调核心的一利用率,其旁带通讯配线是独立于将该多核心处理器连接至一芯片组的一系统总线;以及所述核心的一阶层式协调系统,施行于旁带通讯配线上的核心间通讯,旁带通讯配线独立于将该多核心处理器连接至一芯片组的一系统总线。
39.如权利要求38所述的方法,其中每个参与的核心使用旁带通讯配线与另一参与的核心交换状态相关信号,旁带通讯配线是独立于将该多核心处理器连接至一芯片组的一系统总线。
40.如权利要求38所述的方法,还包括参与该分散式核心间状态发现过程来发现另一核心的一目标电源状态。
41.如权利要求38所述的方法,还包括参与该分散式核心间状态发现过程来发现核心的群组的一复合电源状态。
42.如权利要求38所述的方法,还包括有关一限制其是该资源的组态将影响该电源、 速度、或效率随共享资源能够操作的一核心,参与该分散式核心间状态发现过程来限制操作状态的实现供组态一共享资源至一操作状态,其是不再限制于共享该资源的任何核心的该最低限制目标操作状态。
43.如权利要求38所述的方法,还包括每个核心接收一目标操作状态;每个核心,回应于接收该目标操作状态,实施同步逻辑的一原生性实例,具体化于该核心的微码,用以发现一可用的状态;其中该可用的状态是不大于该核心所拥有的目标操作状态的一最高限制性操作状态, 其是由不妨碍其他核心的对应目标操作状态的该核心所实现;同步逻辑的该原生性实例在另一核心实施该同步逻辑读至少一新的从属实例,及递送该原生性核心的目标操作状态至该其他核心;以及该从属实例计算一混合操作状态为至少是目标操作状态可用于自身及从其他原生性核心接收的该目标操作状态的一功能,及传回该混合操作状态至该原生性核心。
44.如权利要求43所述的方法,还包括同步逻辑的每个实例,除非由一终止条件早先地终止,递归地在其他仍未同步的核心上实施该同步逻辑的多个实例,直到该同步逻辑的同步实例已经实施在该处理器的一可用的领域的全部核心。
45.如权利要求44所述的方法,还包括同步逻辑的每个实例条件性地防止同步逻辑的从属实例更在其他尚未同步的核心上实施,如果其实例发现一核心具有的一目标操作状态是非较多限制性于该资源的最低受限操作状态;其中该同步逻辑组态为协调一最低限度足够数目的其他核心用以发现是否一受限操作状态能施行于该共享资源。
46.一种微码常式被编码在一多核心处理器的一实体处理核心的一计算机可读取的储存媒体中,该微码常式包括码供经由不通过任何集中式非核心逻辑、而由核心交换的信号来使用一分散式核心间状态发现过程,用以发现该多核心处理器的一可用的状态; 其中该可用的状态为下述状态的其中之一 对该处理器的一复合电源状态;对该处理器的一领域的一复合电源状态,该领域包括多个核心的一群组,其根据多个组态的其中的一为了电源节能的目的而共享可操作地被组态的一可组态资源; 另一核心的一目标电源状态;共享一可组态资源的多个核心的一群组任一者的一最低限制性目标电源状态; 一最高限制性目标电源状态,其是由不妨碍其他核心的对应目标操作状态的一核心所实现;一核心是否致能或禁能;该多核心处理器具有多少个核心为致能;共享资源及多个核心的领域的一识别,在其中各样的可组态资源被共享; 所述核心的一阶层式协调系统,用于经营共享资源;在多核心处理器内多条旁带通讯配线以协调核心的一利用率,其旁带通讯配线是独立于将该多核心处理器连接至一芯片组的一系统总线;以及所述核心的一阶层式协调系统,施行于旁带通讯配线上的核心间通讯,旁带通讯配线是独立于将该多核心处理器连接至一芯片组的一系统总线。
全文摘要
一种配置在多重处理器核心之间的分散式电源管理。多核心处理器提供由两个以上的核心所共用的可配置的资源,资源的组态影响共享资源的核心利用其能够运作的电源、速度或效率。内部核心电源状态管理逻辑设定每个核心的组态以参与一分散式核心间电源状态发现过程,用以发现对于共用资源而言是一种最受限制的或最节能型的状态的复合目标电源状态,其将不会干涉共享资源的每个核心的任何一个相对应的目标电源状态。内部核心电源状态管理逻辑决定核心是否为被授权以设定资源的组态的一主控核心,且若有,设定在发现的复合电源状态中的那个资源的组态。分散式电源状态发现过程是在旁带的非系统总线线上的核心之间被实现,而无须集中式非核心逻辑的协助。
文档编号G06F1/32GK102541237SQ201110436098
公开日2012年7月4日 申请日期2011年12月22日 优先权日2010年12月22日
发明者G.葛兰.亨利, 达鲁斯.D.嘉斯金斯 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1