专利名称::弹性对称式多处理器系统与架构方法弹性对称式多处理器系统与架构方法
技术领域:
:本发明有关一种对称式多处理器架构,特别是一种可实现弹性对称式多处理器架构的系统与方法。
背景技术:
:一般的对称式多处理器(SMP,symmetricmulti-processor)架构,通常是固定配置于具有多个处理器的计算机系统上。在典型的实施方式中,对称式多处理器架构基本上由硬件架构所定义与限制。通常开机映像区(BIOS)经由系统芯片组,连接到多处理器(或中央处理单元)中的特定一个。连接开机映像区的处理器变成主要处理器(Primaryprocessor),用以初始化系统中剩余的处理器。请参照图1,说明一八信道计算机系统备配有八个CPU芯片/处理器CPUO、CPU1、CPU2、CPU3、CPU4、CPU5、CPU6、及CPU7。只有CPU0经由系统芯片组连接开机映像区。因此,该处理器CPU0将作为主要处理器,并先自行开机,然后再让其它的处理器CPU1、CPU2、CPU3、CPU4、CPU5、CPU6、及CPU7也开机。此即为该八信道系统唯一的一种对称式多处理器架构。也就是说,处理器CPU1、CPU2、CPU3、CPU4、CPU5、CPU6、及CPU7的任一个都无法自己开机,也不能够初始化其它处理器。
发明内容因此,木发明提供一种可以让对称式多处理器架构弹性化的系统与方法。本发明提出的系统包含数个可开机区域(bootabledomains)和一个胶合逻辑(gluelogic)。该些可开机区域包含数个处理器、一或多个开机映像区(bootimage)、与一或多个一桥接界面(bridgeinterface)。每一个可开机区域经由处理器之间的连接,而与其它可开机区域互相连接。胶合逻辑接收并处理架构信号(configurationsignal)且产生致能/禁能信号(enable/disablesignal),以致能/禁能每一个可开机区域,以定义一个或多个实际开机区(actualbootdomain)。被致能可开机区域的处理器,经由桥接接口从开机映像区取得的开机指令而初始化所属的实际开机区。本发明的胶合逻辑包含译码器(decoder)、闩锁单元(latchunit)、与电源状态器(powerstatemachine)。译码器用以译码架构信号且输出已译码架构信号。闩锁单元根据己译码架构信号,送出致能/禁能信号给每一个可开机区域。电源状态器用以致能/禁能闩锁单元。本发明所提出的方法包含下列步骤。首先,提供对应特定对称式多处理器架构的架构信号。接着,根据架构信号产生致能/禁能信号,以致能/禁能每一个可开机区域。然后,根据致能/禁能信号定义一个或多个实际开机区;该实际开机区包含一或多个可开机区域,其中至少一个被致能。之后,以实际开机区的主要处理器(primaryprocessor)经桥接接口从开机映像区存取开机指令;主要处理器系为实际开机区屮被致能可开机区域的第一处理器。最后,借由主要处理器初始化实际开机区。为对本发明的H的、构造特征及其功能有进一歩的/解,兹配合附图详细说明如下图1为先前技术中八信道计算机系统示意图。图2为本发明的第一实施例弹性对称式多处理器架构的系统示意图。图3为图2的特定多处理器架构。图4为图2的胶合逻辑的方块图。图5为图2的四乘二(4-by-2)多处理器的系统架构示意图。图6为图2的二乘四(4-by-2)多处理器的系统架构示意图。图7为图2的一乘八(l-by-8)多处理器的系统架构示意图。图8为本发明的第二实施例的系统示意图。图9为本发明的第三实施例的系统示意图。图10为本发明的弹性对称式多处理器架构的方法流程图。具体实施方式请参照图2。根据本发明第一实施例,弹性对称式多处理器(SMP)架构系统,主要包含四个第一处理器CPUO、CPU2、CPU4、CPU6,四个第二处理器CPU1、CPU3、CPU5、CPU7,四个桥接界面(bridgeinterface)11、12、13、14,四个开机映像区(bootimage)21、22、23、24,及胶合逻辑(glue1ogic)30。在此实施例中所有的处理器、桥接接口、及开机映像区被区分成四个副系统,称为「可开机区域」(bootabledomains)01-04。可开机区域01/02/03/04具有第一处理器CPU0/CPU2/CPU4/CPU6、第二处理器CPU1/CPU3/CPU5/CPU7、桥接界面11/12/13/14、及开机映像区21/22/23/24。为了实现弹性对称式多处理器架构,至少有二个可开机区域存在系统屮。每一个可开机区域01/02/03/04经由第一处理器CPU0、CPU2、CPU4、CPU6之间的连接,而与其它可开机区域互相连接。每一个第一与第二处理器CPU0-CPU7可以是单芯片处理器,安装在处理器插槽中,且配备单一或多个运算核心。本发明系统与方法中的所有处理器都支持各种的对称式多处理器架构,例如l、2、4或8处理器芯片等等。在可开机区域的处理器数目可以改变;任何可以支持多变的对称式多处理器架构的处理器数目皆可。但是必须要有一个第一处理器经由桥接接UI与开机映像区连接以执行开机程序。图2中每^个处理器支持四个连接端口,以连接其它的处理器及/或桥接接口11/12/13/14。对于处理器支持三个连接端口的情况,请参照图3说明可行的多处理器结构。符合图3的一个例子就是由AMD(AdvancedMicroDevices,Inc.)公司所提供,名为Opteron的处理器。经由桥接接口与开机映像区连接、且初始化那些位于实际开机区(例如图5中实际开机区101)中被致能可开机区域的其它处理器的那个处理器,以下称为「主要处理器」(primaryprocessor)。实际开机区包含一或多个可开机区域,至少一个被致能。另方面,被主要处理器所初始化的其它处理器,以下称为「从属处理器」(slaveprocessor)。图2中第一处理器CPU0、CPU2、CPU4、CPU6可以是主要或从属处理器,视实际开机区的范围而定。然而,第二处理器CPU1、CPU3、CPU5、CPU7皆为从属处理器。所有的第一处理器CPU0、CPU2、CPU4、CPU6经由桥接接UII、12、13、14个别连接开机映像区21、22、23、24,在口f开机区域01-04之间也彼此连接;在每个可开机区域01/02/03/04中,第二处理器CPU1/CPU3/CPU5/CPU7连接第一处理器CPU0/CPU2/CPU4/CPU6。此处及后续实施例,每一处理器的拓扑配置,均仅为解释例,并非用以限定本发明。开机映像区21/22/23/24是内建于闪存中执行程序代码的可开机指令映像,用于系统的初始化,一般称为BIOS。位于实际开机区的主要处理器经由桥接接口从开机映像区取得指令,以执行特定的初始化歩骤,并将位在实际开机区内的可开机区域开机。桥接接口11/12/13/14连接于处理器CPU0/CPU2/CPU4/CPU6与开机映像区21/22/23/24之间,对每一个可开机区域01/02/03/04形成开机路径(bootablepath)中最重要的一部份。本发明的桥接接口为处理器与具有开机映像区的内存之间的接U,可以是单一芯片或包含南北桥的多芯片称为「系统芯片组」(systemchipset)。在有些情形仅有南桥芯片也可具有相同运作功能。此处,开机路径是第一处理器与开机映像区及/或BIOS的开机程序之间的必要连接因子(例如总线、输入/输出接脚、输入/输出功能)的组合,可借由来自胶合逻辑30的一或多个致能/禁能信号Sen/Sdis而致能/禁能。也就是说,开机路径包括每一个可开机区域的系统开机所需的硬件手段及/或软件/韧体执行。关于处理器之间的初始化程序与硬件连接,均可为开机路径的一部份。因此,开机路径包含与实际开机区相关的初始化程序及硬件连接。请参照图2与图4。胶合逻辑30接收并处理架构信号(configurationsignal)Sc,且产生四个致能/禁能信号Sen/Sdis,以致能/禁能每一可开机区域01-04。胶合逻辑30包含译码器31、闩锁单元(latchunit)32、及电源状态器(powerstatemachine)33。译码器31接收并译码该架构信号Sc,且输出已译码架构信号Sdc至闩锁单元32。闩锁单元32,根据该己译码架构信号Sdc,输出四个致能/禁能信号Sen/Sdis给每一个可开机区域01-04。电源状态器33,接收有关时序、电源状态及电源控制的控制信号,用以致能/禁能闩锁单元32。除了必要的需求像是致能/禁能信号Sen/Sdis以外,其它的输出信号包含架构信号Sc、时序控制、同步与电源控制都是选择性的。若有需要,时序控制可以利用控制信号改变时序的分配架构。电源控制与同步信号可以使用控制信号而调整电源启动信号与同步化可开机区域之间的电源启动序列(powerups叫uence)。基本上,胶合逻辑30基于架构信号Sc,去设定致能/禁能信号Sen/Sdis的正确信号状态,借此致能/禁能可开机区域,而控制系统的对称式多处理器架构。详细的控制需求是独立建立的,例如去控制时序分配、电源启动序列等而定。图2的实施例允许系统架构可为四乘二(4-by-2)多处理器如图5所示、二乘四(2-by-4)多处理器如图6所示,与一乘八(l-by-8)多处理器如图7所示。在本发明中欲定义对称式多处理器架构可以经由硬件手段或系统管理韧体/软件而实现。架构信号Sc是根据所要求的对称式多处理器架构定义所产生。双列直插式封装(DIP,dualin-linepackage)开关或上拉/下拉电阻所定义的同接信号(hardwiredsignals)、或系统管理韧体/软件所定义的架构码(configurationcode),均可产生架构信号Sc。再者,主要电源开启之前,对称式多处理器架构需要被事先定义。系统架构定义的选择可以经由在前次关闭电源期间(duringlastpower-off)变更硬件架构、或在前次开启电源期间(duringlastpower-on)变更系统管理韧体/软件的设定、或巾断开机程序(terminatingaboot-upprocedure)而简单变更BIOS的设定。电源开启之后,对称式多处理器架构不允许变更,或所有变更将被系统忽略。■四乘二(4-by-2)架构请参照图5。根据图2的系统,四乘二的对称式多处理器架构包含四个实际开机区101、102、103、104,每一个实际开机区只包含一个可开机区域01/02/03/04。根据架构信号Sc,胶合逻辑30产生四个致能信号Sen用以致能所有的开机路径与可开机区域01-04。每一个实际可开机区域101/102/103/104具有二个处理器(CPU0、CPU1)/(CPU2、CPU3)/(CPU4、CPU5)/(CPU6、CPU7)。第一处理器CPU0/CPU2/CPU4/CPU6为主要处理器,从开机映像区21/22/23/24取得开机指令,并分别初始化从属处理器(第二处理器CPU1/CPU3/CPU5/CPU7)与可开机区域01/02/03/04。实际的初始化需求视处理器架构而定。BIOS必需被架构信号Sc所知会,在某些时刻根据目前的对称式多处理器架构而停止初始化。且个别的可开机区域01/02/03/04也可能需要不同的电源启动序列。例如在x86的典型实施例,开机印像区储存于连接至于南桥的闪存上,此南桥可致能/禁能BIOS闪存所连接的总线。在此实施例,只要控制致能/禁能信号Sen/Sdis,用以致能/禁能开机路径与可开机区域。在其它南桥并没有具备前述致能/禁能的特征实施例,胶合逻辑30需要控制信号去读取位在BIOS闪存的开机码。系统管理韧体/软件目前即是用以操作四个双处理器副系统。■二乘四(2-by-4)架构请参照图6。根据图2的系统,二乘四的对称式多处理器架构包含全部二个实际开机区111、112,每一个实际开机区具有二个可开机区域(01、02)/(03、04)。每一个实际开机区具有四个CPU芯片CPU0/CPU/CPU2/CPU3及CPU4/CPU5/CPU6/CPU7。只有二个开机路径(区域)由胶合逻辑30所致能。也就是说,根据架构信号Sc,胶合逻辑30产生二个致能信号Sen用以致能可开机区域Ol、03;且产生二个禁能信号Sdis用以禁能可开机区域02、04。每一个实际开机区111/112具有四个处理器(CPUO、CPU1、CPU2、CPU3)/(CPU4、CPU5、CPU6、CPU7)。第一处理器CPU0/CPU4为主要处理器,从开机映像区21/23取得开机指令,分别初始化从属处理器(包含第一处理器的CPU2/CPU6,与第二处理器(CPU1、CPU3)/(CPU5、CPU7))及可开机区域(Ol、02)/(03、04)。每一个实际可开机区域lll、112,针对二个四处理器的副系统的特定的开机顺序与初始化需求应该被预先定义在BIOS中。且系统管理韧休/软件需要变更,以运作这两个四处理器副系统。■一乘八(l-by-8)架构请参照图7。根据图2的系统,此一乘八的对称式多处理器架构只有包含一个实际开机区121,其具有属于四个可开机区域01-04的八个处理器CPU0-CPU7。只有一个开机路径由胶合逻辑30所致能。第一处理器CPUO为主要处理器,初始化包含第一处理器CPU2、CPU4、CPU6,与第二处理器CPU1、CPU3、CPU5、CPU7等的从属处理器。全部的四个可开机区域现组成一个八处理器系统。上述揭露的所有不同架构,系统管理韧体/软件可预设为一乘八架构,不需进一步改变对称式多处理器的架构设定。除了电源启动序列与时序分配改变外,胶合逻辑针对弹性对称式多处理器系统,可能需要控制其它视实现例而定的需求。请参照图8。为简化系统,支持多重存取之一或多个特定桥接界面15及一个开机映像区25,可以应用于具有四个可开机区域01-04的系统。如此可开机区域01-04不需要多组专属的桥接接口与开机映像区。只要有专属的致能/禁能信号Sen/Sdis,分别致能/禁能所有口f开机区域01-04的初始化。请参照图9。前述的第二处理器并非本发明实施例的要件或限制。在对称式多处理器架构中的可开机区域01/02/03/04只包含一个处理器,就是第一处理器CPU0/CPU2/CPU4/CPU6。除了第二处理器之夕卜,人多数开机程序均维持一致。为初始化前述的本发明的弹性对称式多处理器系统,以下针对各种对称式多处理器架构,提出执行特定开机步骤的方法。请参照图IO。一种针对本发明的弹性对称式多处埋器架构的万法,旭用于前述所揭露的系统。方法的主要步骤包含(1)提供对应一特定对称式多处理器架构的-架构信号Sc(SlO)。架构信号Sc由双列直插式封装开关、上拉/下拉电阻、或系统管理韧体/软件所产生。在系统的主电源开启前,特定的对称式多处理器架构需要预先确定。(2)根据架构信号Sc产生数个致能/禁能信号Sen/Sdis以致能/禁能每一个可开机区域(S20)。胶合逻辑接收并处理架构信号Sc产生致能/禁能信号,以致能/禁能可开机区域,随着开机路径的致能/禁能。(3)根据致能/禁能信号Sen/Sdis定义实际开机区(S30)。一个实际开机区包含至少一可开机区域。欲定义实际开机区,所有的可开机区域需要先被致能或禁能。因此,步骤S30更包含一个步骤,根据致能/禁能信号Sen/Sdis,致能/禁能每一个可开机区域以便初始化。(4)以每一个实际开机区的主耍处理器经由桥接接口从开机映像区存取(access)开机指令(S40)。实际开机区被定义后,主要处理器也可从第一处理器定义出来。主要处理器系为实际开机区的被致能可开机区域的第一处理器,而第一处理器为每一个可开机区域中经由桥接接口连接开机映像区的处理器。主要处理器经由桥接接口的连接存取开机映像区,针对实际开机区执行初始化程序。(5)借由主要处理器初始化每一个实际开机区(S50)。主要处理器将同一个实际开机区中的剩余处理器与组件开机。剩余的处理器为从属处理器,一般包含同一个实际开机区中,被禁能可开机区域屮的其它第一处理器,及/或连接该第一处理器的第二处理器(如果有的话)。因此歩骤S50更包含一个步骤,在每一个实际开机区中初始化从属处理器。为达成以处理器与桥接接口(芯片组)的架构为基础的对称式多处理器操作(SMPoperation),可能需要一些其它的控制特征,例如时序分配(clockdistribution)、电源启动顺序(power-upsequence)等。一些特定的实施例可能须具有独立时序分配系统用以产生时序。有一些桥接接口具有控制电源启动序列的特征,以针对每一个可开机区域与一些需要特别电源启动序列的系统。在可开机区域之间的同步可能也是需要的。权利要求1.一种弹性对称式多处理器系统,其特征在于该系统包括数个可开机区域,包含数个第一处理器、至少一个开机映像区,与连接在该第一处理器与该开机映像区之间的至少一桥接接口,各该可开机区域经由这些第一处理器之间的连结彼此连接;及一胶合逻辑,接收并处理至少一架构信号且产生至少一致能/禁能信号,以致能/禁能各该可开机区域,并定义至少一实际开机区;其中,该被致能可开机区域的该第一处理器,经由该桥接接口从该开机映像区存取开机指令,以初始化该实际开机区。2.如权利要求1所述的系统,其特征在于该胶合逻辑包含一译码器,译码该架构信号且输出一已译码架构信号;一闩锁单元,根据该已译码架构信号,送出该致能/禁能信号给各该可开机区域;以及一电源状态器,根据至少一控制信号以致能/禁能该闩锁单元。3.如权利要求2所述的系统,其特征在于该闩锁单元更输出另一该架构信号与一时序控制信号。4.如权利要求2所述的系统,其特征在于该电源状态器接收一电源状态信号、一电源控制信号、与一时序控制信号,且输出一同歩信号与另一电源控制信号。5.如权利要求1所述的系统,其特征在于该致能/禁能信号用以致能/禁能各该可开机区域的一开机路径,以致能/禁能该可开机区域,该开机路径包含与该实际开机区相关的初始化程序及硬件连接。6.如权利要求1所述的系统,其特征在于每一个该可开机区域更包含数个第二处理器连接该第一处理器,该第二处理器在这些可开机区域之间与另一个该第二处理器连接。7.—种弹性对称式多处理器架构方法,用于具有数个可开机区域的系统,这些可开机区域包含数个第一处理器、一个开机映像区、与一桥接接口,其特征在于该方法包含下列步骤提供对应一特定的对称式多处理器架构的至少一架构信号;根据该架构信号产生数个致能/禁能信号,以致能/禁能各该可开机区域;根据这些致能/禁能信号定义至少一实际开机区,该实际开机区包含一或多个该可开机区域,其中至少一个该可开机区域被致能;以该实际开机区的一主要处理器经由该桥接接口从该开机映像区存取开机指令,该主要处理器系为该实际开机区内该被致能可开机区域的该第一处理器;及借由该主要处理器初始化该实际开机区。8.如权利要求7所述的方法,其特征在于该方法更包含一初始化该实际开机区中至少一从属处理器的步骤,该从属处理器包含在同一该实际开机区内的该被禁能可开机区域的该第一处理器。9.如权利要求8所述的方法,其特征在于该从属处理器更包含至少一第二处理器,其连接在同一该可开机区域中的该第一处理器。10.如权利要求9所述的方法,其特征在于该实际开机区的定义步骤更包含一根据该致能/禁能信号致能/禁能各该可开机区域以便初始化的步骤该致能/禁能信号,用以致能/禁能各该可开机区域的一开机路径,以致能/禁能该可开机区域,该开机路径包含与该实际开机区相关的初始化程序及硬件连接。全文摘要一种弹性对称式多处理器的系统和架构方法;其系统包含数个可开机区域与一胶合逻辑;这些可开机区域包含数个处理器、一或多个开机映像区与一或多个桥接接口每一个可开机区域经由处理器之间的连接,而与其它的可开机区域连接;胶合逻辑接收并处理至少一架构信号且产生致能/禁能信号以致能/禁能各可开机区域,而定义至少一实际开机区;被致能可开机区域的处理器,经由桥接接口从开机映像区取得开机指令以初始化所属的实际开机区。文档编号G06F15/16GK101126986SQ20071009629公开日2008年2月20日申请日期2007年4月10日优先权日2006年8月15日发明者平井智则,钟志明申请人:泰安电脑科技(上海)有限公司;泰安电脑科技股份有限公司