具有相同的指令集架构(ISA)的非对称性能多核架构的制作方法

文档序号:25419059发布日期:2021-06-11 21:29阅读:83来源:国知局
具有相同的指令集架构(ISA)的非对称性能多核架构的制作方法

本申请是针对分案申请201810311226.1再次提出的分案申请。分案申请201810311226.1是pct国际申请号为pct/us2012/068274、国际申请日为2012年12月6日、进入中国国家阶段的申请号为201280063860.9,题为“具有相同的指令集架构(isa)的非对称性能多核架构”的申请的分案申请。

本发明的领域通常涉及计算系统架构,且尤其涉及具有相同的指令集架构(isa)的非对称性能多核架构。



背景技术:

图1示出典型的多核处理器100_1。如图1中可见,多核处理器100_1包括在相一半导体管芯100_1上的多个处理器核101_1到101_n。处理器核中的每一个通常包含用于缓存数据和/或指令的至少一个缓存层。交换组织结构102把处理器核101_1到101_n彼此互连起来,并将其互连到一个或多个附加的缓存层103_1到103_n。根据一种方法,处理器101_1到101_n和一个或多个缓存层具有内部一致性逻辑,例如,以便防止两个不同的核并发地修改相同的数据项。

还包括系统存储器接口(它也可以包括附加的一致性逻辑)104。在这里,如果核请求具有所需要的指令或数据项的特定的缓存线,并且,在任何缓存层中都找不到该缓存线,则把该请求提交给系统存储器接口104。如果所寻找的缓存线不在直接耦合到接口104的系统存储器105_1中,则通过系统网络接口106把该请求转发给另一多核处理器,以便从其本地系统存储器(例如,多核处理器100_x的系统存储器105_x)取出所期望的数据/指令。在多处理器核100_1到100_x之间存在分组交换网络107,以便支持这些种类的系统存储器请求。

多处理器核上还包括到系统i/o组件108_1到108_y的接口(例如,诸如硬盘驱动器、打印机、外部网络接口等等的深度非易失性存储)。这些接口可以采取诸如高速以太网接口和/或高速pcie接口等的高速链路接口的形式。

一些多核处理器也可以具有到交换组织结构102的端口105,以便向上扩展与相同的(也向上扩展的)缓存结构相关联的处理器核的数量。例如,如图1可见,多处理器核101_1和101_2通过交换组织结构端口105耦合,以便有效地形成共享公共缓存结构的2n个核的平台(处理器100_2通过到其交换组织结构的相似的端口耦合到处理器100_1)。

附图简要说明

在附图的各图中,作为示例而非限制阐释本发明,附图中,类似的标号指示相似的元素,且附图中:

图1示出多核处理器和周围的计算机系统(现有技术);

图2示出功率管理策略(现有技术);

图3示出逻辑门驱动电路;

图4示出具有支持相同的指令集的高功率核和低功率核的多核处理器;

图5比较高功率核和低功率核的功率消耗;

图6示出第一功率管理方法;

图7示出第二功率管理方法;

图8示出一种设计方法。

具体实施方式

计算系统功率消耗正变得越来越受到关注。因而,多种不同的功率管理方案被合并到现代计算系统中。通常,系统的功率管理组件将随着系统的工作量增加而扩展系统的处理性能,且随着系统的工作量减少而缩减系统的处理性能。由于系统的功率消耗与其性能能力强相关,降低系统的处理性能对应于功率节省。

随工作量缩放处理性能和功率消耗的典型方式响应于系统工作量启用/禁用整个核并提高/降低它们的供电电压和工作频率。例如,如图2可见,在最大性能和功率消耗状态201下,启用所有核,且给每一核提供最大供电电压和最大时钟频率。作为对比,在最小值性能和功率消耗状态202下(此时仍然可以执行程序代码),仅启用一个核。给该单个核提供最小供电电压和最小工作频率。

图3中可见电子电路功率消耗的一些基本概念。在这里,观察到逻辑门311的驱动电路310部分,驱动接下来的一个或多个逻辑门312。具体地,互连的逻辑门311、312的操作速度随着其驱动晶体管302_1、302_2的宽度(对于每一晶体管,沿着垂直于电流方向的半导体表面进行测量)增加且随着它驱动的线304的电容303(以及负载逻辑门312的输入电容)减少而提高。在这里,为了把线上的电压从逻辑低电平提高到逻辑高电平,需要由源晶体管302_1通过线驱动充分强的电流305,以便快速把电荷施加到电容303(且由此提高线上的电压)。类似地,为了把线上的电压从逻辑高电平降低到逻辑低电平,需要由吸收晶体管302_2通过线“吸收”充分强的电流306,以便从电容快速抽取电荷(且由此降低线上的电压)。

本质上,晶体管302_1、302_2将提供/吸收的电流量是它们各自的宽度的函数。即是说,晶体管越宽,它们将提供/吸收的电流就越多。此外,晶体管302_1、302_2将提供/吸收的电流量也是图3中可见的施加到驱动电路310的供电电压vcc的函数。本质上,供电电压越高,提供/吸收电流就越强。

更进一步,晶体管将能够向电容器施加/从其抽取电荷的速度是正在被驱动的线304的电容303的尺寸的函数。具体地,当电容304增加时,晶体管将更慢地施加/抽取电荷,且当电容304减少时,更快地施加/抽取电荷。线的电容304基于其物理尺度。即是说,线更长和更宽,电容304增加,相反,线更短和更窄,电容304减少。一旦制成了电路,线本身是固定尺度。然而,线宽度和线长度是设计师必须考虑的设计参数。线的宽度不能太过狭窄,否则它将具有增加线的阻抗的影响,这也将减慢向电容器施加/从其抽取电荷的速度。

最终的速度因素是线上的信号本身的频率。本质上,相比于具有较慢的时钟信号的电路,用更快的时钟信号驱动的电路将更快地在向线电容304施加/从其抽取电荷之间切换。在这里,更快速的切换对应于更快地发送二进制信息的电路。

以上所描述的用于增加施加/抽取电容器上的电荷的速度的所有因素也引起消耗更多功率的电路。即是说,被设计成具有相对宽的源/吸收晶体管、高的供电电压、短的负载线且接收更高频率的时钟信号的电路将操作得更快,且因此相比于与这些相同的参数定位相反的电路消耗更多的功率。

回忆图1和图2的讨论,注意,已经在其组成核相同的处理器上实现现有技术的多核处理器功率管理方案。即是说,参见图1,核101_1到101_n中在设计上全部都是相同的。在其他方法中,核不是等同的,而且是根本不同。具体地,核中的一个是低功率核,但是,通过相比于其他核剥离相当大量的逻辑电路来实现较低功率特性。更具体地,所剥离的相当大量的逻辑电路对应于执行程序代码指令的逻辑。换句话说,相比于较高性能核,低功率核支持精简指令集。然而,这种方法的问题在于,系统软件难以调整在具有不同的指令集的处理器核之间的切换操作。

图4描述其中核401中的至少一个被设计为具有较低性能且因此比处理器中的其他核402消耗较少功率的新方法。然而,(各)较低功率核401具有与(各)较高功率核402相同的逻辑设计,且因此支持与(各)高功率核402相同的指令集403。(各)低功率核401取得较低功率设计点,通过具有比(各)较高功率核更狭窄的驱动晶体管宽度和/或具有其他功率消耗相关的设计特征,例如以上相对于图3所描述的那些中的任何,它们与较高功率核中的相同的设计特征相反地定位。

根据一种方法,下面更详细地讨论的,在设计多处理器核时,把相同的高级描述(例如,相同的vhdl或verilog描述)用于(各)较高性能/功率核和(各)较低性能/功率核两者。然而,在把高级描述综合到rtl网表时,对于从rtl网表到晶体管级网表的随后综合,相比于(各)高功率核,把不同的技术库用于(各)低功率核。如上面提到的,相比于与用于高功率核的库相关联的“相同的”逻辑门的“相同的”晶体管,与用于(各)低功率核库相关联的逻辑门的驱动晶体管具有更狭窄的各自宽度。

在多处理器的设计方面,参见图5,相比于(各)较高功率核,(各)较低功率核呈现出固有的较低功率消耗(和处理性能)。即是说,对于相同的所施加的时钟或工作频率,例如,因为其更狭窄驱动晶体管宽度,较低功率核将比较高功率核消耗较少的功率。然而,因为更狭窄驱动晶体管宽度,较低功率核具有比较高功率核的最大工作频率更少的最大工作频率。

然而,较低功率核的重要之处在于,多处理器可以接受与已经存在的功率管理策略相同/相似但仍然在较低/最低的性能/功率状态中实现甚至更低的功率消耗的功率管理策略。具体地,简要回忆起图2的功率状态202,其中仅剩下一个核可操作(禁用剩余的核)。在这里,如果一个剩余的可操作核是低功率核,则处理器将呈现出比现有技术低功率状态202甚至更低的功率消耗。

图5中可直接观察所减少的功率节省的量503。在这里,回忆起在对于图2的现有技术低功率状态202讨论的多处理器中所有处理器都是相同的。因而,即使供电电压和操作电压被减少到最小值,功率消耗也将消耗较高功率处理器(例如,具有较宽的驱动晶体管宽度)的功率。这一操作点由图5的点504表示。作为对比,在改进的多处理器的最低功率操作状态中,如果可操作核是低功率核,则它将消耗由图5的点505表示的功率。因而,改进的处理器比现有技术多处理器在较低/最低的性能操作状态处呈现出相对较低的功率消耗,然而,与此同时,完全地支持软件被设计为对其操作的指令集架构。

图6示出可以例如借助于在多处理器(或另一多处理器或分离的控制器等等)上运行的功率管理软件执行的功率管理过程流。相反地,完全可以在多处理器上的硬件中或由这样的硬件和软件的某种组合执行图6的功率管理过程流。

根据图6的过程流,从其中至少一些高功率处理器核和(各)低功率核正在操作的初始状态601开始,响应于对多处理器的需求的持续下降,每当需求的持续下降到低于某个接下来的更低的阈值时,禁用另一高功率核。例如,在具有十六个核的多处理器核中,其中十四个核是高功率核且两个核是低功率核,初始状态601可以对应于其中高功率核中的七个和两个低功率核都操作的状态。

响应于对多处理器设置的持续降低的需求,对于每一个新的更低的需求阈值602,将逐一禁用七个高功率核。举例来说,如在插图610所见,需求水平611调整七个高功率核和两个低功率核的启用。当需求连续下降到接下来的更低的阈值612时,禁用高功率核中的一个613,留下六个可操作的高功率核和两个低功率核。

在禁用高功率核之前,作为设计者的选择,核的自己的工作频率,或经启用的高功率核中的全部(或一些)的工作频率,或经启用的高功率核和低功率核中的全部(或一些)的工作频率,可以被降低到一个或多个更低的工作频率水平。

对于施加到核的供电电压,存在相似的设计者的选择。即是说,在禁用高功率核之前,作为设计者的选择,核的自己的供电电压,或经启用的高功率核中的全部(或一些)的供电电压,或经启用的高功率核和低功率核中的全部(或一些)的供电电压,可以被降低到一个或多个较低的供电电压。供电电压可以与工作频率的降低结合而降低,或者,可以如上所述降低这些参数中的仅一个或者一个都不降低。

最终,随着需求的继续下降,在需求的下降到低于某种较低的阈值614之后,将禁用最后剩余的高功率核615。这仅留下低功率核操作。当需求在水平614下继续下降时,可以同样地降低(各)低功率核的工作频率和/或供电电压。随着需求的继续下降,继续与需求的下降到低于每一接下来的更低的需求阈值604相似的禁用核的过程,直到多处理器核仅保留一个低功率核作为其唯一操作核606。

在其中处理器仅具有一个较低功率核的实现中,当然,随着最后的高功率核的禁用达到状态606。再次,当需求继续下降时,可以降低唯一剩余低功率核的供电电压和/或工作频率。重要的是,在如以上所描述的状态606中,相比于具有相同的功率管理方案但其组成核全都是高功率核的其他多处理器核,多处理器将呈现出更低的功率消耗。如果给唯一操作低功率核提供比施加用到高功率核的最低的工作供电电压和/或工作频率更低的供电电压和/或更低的工作频率,在状态606中可以提供甚至更低的功率消耗。

在禁用了所有高功率核之后,在系统仅在(各)低功率核上运行时,不需要由应用软件、虚拟机或虚拟机监视器或者为它们做出专门的调整。再次,跨越系统中的所有核保留了相同的指令核,这对应于从软件的角度来看对底层核的透明性。借助于较低的核,可以实现较低的性能,但关于指令流的内容的专门调整是不必要的。在各种备选的实现中:1)硬件/机器可读的固件可以监视和控制核组合;或者,2)该硬件可以放弃对操作系统的控制,且使它监视需求并控制核组合。

图7实质上示出了以上所描述的倒转。如图7可见,从其中仅单个低功率核操作的状态701开始,当对多处理器的需求连续地增加时,启用额外的低功率核(如果有更多的话)702。最终,启用高功率核703。值得注意的是,相比于从操作的高功率处理器启用接下来的处理器所需要的需求阈值,从操作的低功率处理器启用接下来的处理器所需要的需求阈值可以对应于较低的需求增量。

即是说,插图710示出,在面临增加的需求时,在首次启用低功率处理器之后触发接下来的处理器的启用所需要的需求711的增加。在面临增加的需求时,在首次启用高功率处理器之后,触发接下来的高功率处理器的启用所需要的需求712的增加大于前述需求711。这是因为高功率处理器可以比低功率处理器处理更多的总需求,且因此不必像低功率处理器那样必须得到附加的“帮助”。

以逻辑上与以上相对于核的启用所描述的相反的方式,在面临增加的需求时,也可以结合核的启用增加工作频率和/或供电电压。

图8示出用于设计与以上所描述的原理一致的多核处理器的设计过程。作为设计过程的一部分,处理器的核中的每一个的高级行为描述800(例如,vhdl或verilog描述)被综合到寄存器传输级(rtl)网表801。借助于对应于较高功率/性能设计(例如具有较宽的驱动晶体管的逻辑电路)的库,rtl网表被综合802到相应的(多个)较高功率核门级网表(每一高功率核一个网表)。借助于对应于较低功率/性能设计(例如具有较宽的驱动晶体管的逻辑电路)的库,rtl网表也被综合803到相应的(多个)较低功率核门级网表(每一低功率核一个网表)。在这里,高功率和低功率核的逻辑设计是相同的,但它们的相应的逻辑电路的设计具有不同的性能/功率设计要点。

然后,把各个核的晶体管电平网表用作执行各自的放置、布线和时序分析806和设计布局807的基础。在这里,由于通过逻辑电路以及在逻辑电路之间的较大的可允许传播延时,较低功率/性能核可以具有较不严格的放置和时序原则。换句话说,从图3的讨论回忆起较长负载线得到较慢的上升时间和下降时间,较低的性能核可以准许在晶体管和门之间的较长的负载线,这是因为这些核被设计为具有较慢的操作(当然,如果负载线被增加得太多,并且包括更狭窄的驱动晶体管,则性能的下降会比所期望的更多)。

在完成布局和时序分析之后,就根据清洁制造接地规则检查808清理各核以便生产。

以上讨论教示的进程可利用程序代码执行,诸如机器可执行指令,其导致机器执行这些指令以实现某些功能。在这种背景下,“机器”可以是将中间形式(或抽象)指令转换成处理器专用指令(例如,抽象执行环境,诸如“虚拟机”(例如,java虚拟机)解释器、公共语言运行时、高级语言虚拟机等)的机器和/或设置在被设计成执行指令的半导体芯片中的电子电路(例如以晶体管实现的“逻辑电路”),诸如通用处理器和/或专用处理器。以上讨论示教的进程还可通过设计成执行进程(或其一部分)的电子电路来执行(替换机器或与机器组合),而不执行程序代码。

相信以上讨论示教的进程也可按各种软件部署框架(例如微软公司的.net、mono、java,甲骨文公司的fusion等)支持的各种面向对象或非面向对象的计算机编程语言(例如,java、c#、vb、python、c、c++、j#、apl、cobol、fortran、pascal、perl等)在源级程序代码中描述。源极程序代码可被转换成中间形式的程序代码(诸如java字节代码、微软中间语言等),可将其理解为抽象执行环境(例如,java虚拟机、公共语言运行时、高级语言虚拟机、解释器等),或者可直接编译成对象代码。

根据各种方法,通过1)编译中间形式的程序代码(例如在运行时(例如jit编译器)),2)解释中间形式的程序代码或3)在运行时编译中间形式的程序代码和解释中间形式的程序代码的组合,抽象执行环境可将中间形式的程序代码转换成处理器专用代码。抽象执行环境可运行在各种操作系统上(诸如unix、linux、包括windows族的微软操作系统、包括macosx的苹果计算机操作系统、sun/solaris、os/2、novell等)。

制品可用于存储程序代码。存储程序代码的制品可体现为但不限于一个或多个存储器(例如,一个或多个闪存、随机存取存储器(静态、动态或其它))、光盘、cd-rom、dvdrom、eprom、eeprom、磁或光卡或适于存储电子指令的其它类型的机器可读介质。还可从远程计算机(例如,服务器)将程序代码作为体现在传播介质中的数据信号(例如,经由通信链路(例如,网络连接))下载至请求计算机(例如,客户机)。

在上述说明书中,已参考本发明具体示例实施例描述了本发明。然而,显然可对这些实施例作出各种修改和改变,而不背离如所附权利要求所述的本发明的更宽泛精神和范围。

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