容错计算机复位方法及其系统的制作方法

文档序号:6651909阅读:130来源:国知局
专利名称:容错计算机复位方法及其系统的制作方法
技术领域
本发明涉及复位具有多个模块的容错(fault tolerate)计算机用的容错计算机复位方法及容错计算机复位系统。
背景技术
作为提供高度可靠性的计算机,有容错计算机。容错计算机是两路复用或多路复用构成系统的硬件模块,分别使所有模块同步动作,例如,即使某个部位产生故障,通过切断该模块,而用正常的模块来继续进行处理,从而提高了耐故障性的计算机。
容错计算机的基本结构由CPU和存储器、I/O设备这样的两路复用或三路复用的硬件模块、与这些模块相连,进行同步操作处理、故障时的切换控制等的容错控制部(下面,称作“FT控制部”)构成。作为一例,图1表示两路复用了CPU、存储器、I/O设备的系统。在该图中,CPU(群)901和主存储器902构成一个CPU子系统903-1,由与其完全相同地构成的另一个CPU子系统903-2来进行两路复用。同样,还两路复用同一结构的I/O设备(群)来构成I/O子系统904。FT控制部位于这些的中心,控制各个模块(CPU子系统903-1、903-2、I/O子系统904),进行CPU子系统903-1、903-2两个系统同步动作的维持、故障的检测和故障模块的切断控制。
一般,容错计算机分为由硬件来两路复用控制各模块的部分和由软件来两路复用控制的部分。
例如,CPU和存储器这样的CPU子系统其本身的软件是操作的基础,其需要由硬件来进行两路复用控制。因此,在CPU子系统内发生错误的情况下,硬件(FT控制部)控制为从系统中切断该CPU和存储器,使得不会对正常操作的CPU和存储器产生影响。
图1中存在两个CPU子系统903-1、903-2,发生故障一侧由FT控制部逻辑切断,一个CPU子系统903-1(或903-2)和I/O子系统904继续动作。
另一方面,在I/O设备故障的情况下,检测出了该故障的FT控制部可以通过对控制I/O设备的软件(下面,称作“I/O设备驱动”)进行出错通知,而用软件来进行I/O设备的切换。这时,I/O设备驱动中止发生故障的I/O设备的使用,代之使用两路复用的其他I/O设备。
其是在I/O子系统904内的使用I/O设备905的切换。
容错计算机的CPU子系统903-1、903-2需要完全在同一时钟下动作,另外,实现开始CPU的动作用的复位解除的定时的同时性也很重要。
现有的方法、例如专利文献1“计算机系统的重新同步复位处理方法”中,记载了与两者的处理器相连的系统间同步部同时向CPU发出复位的技术。
在专利文献1所记载的系统中,由于由一个系统间控制部发出复位,所以向多个CPU同时发出复位很容易,但是由此,由于系统间同步部仅有一个,所以在其有故障的情况下,有系统不能启动的危险。尤其,由于没有涉及两路复用系统间控制部的情况,所以也没有涉及怎样向CPU同时发出复位的情况。
另外,在其他文献中,详细涉及向多个CPU的同步复位控制的也很少。其理由是因为CPU的同步方法中不是以复位为起点,而例如如专利文献2那样,要求将中断的同步性作为起点。例如,作为现有技术中多数使用的方法,有使在CPU上动作的操作系统和系统软件在某个检验点停止,并以从同步控制部输入的中断等为契机来开始同步动作。
但是该方法必须完善把握CPU的内部状态,保证检验点停止的时刻上CPU的内部状态完全相同。若不这样,例如即使同时向CPU施加中断,不仅众多的CPU的内部逻辑不能完全在同一状态下保持,而且不能保证之后动作的同步性。
即,这是因为因操作系统和系统软件,即使在CPU进行等待中断用的循环处理的情况下,从外部看CPU为停止状态时,CPU依然使操作系统和系统软件的循环命令的处理、中断等待用的系统总线的监视等多种逻辑动作。另外,CPU内部为了高速化而进行预测处理,但是还会产生每个CPU预测内容不同的情况。进一步,即使仅主存储器的刷新定时或刷新地址在CPU子系统间不同,也会产生每个CPU内部的状态不同的情况。
在旧式的CPU中以中断作为起点的同步方法可能有效,但是近年来的CPU的内部逻辑巨大化、复杂化增加,一旦开始了动作的CPU通过软件完全转移到同一状态在事实上是不可能的。因此,为了解决该问题,除了复位CPU内部的所有逻辑并使复位信号完全同步后输入到CPU之外没有其他办法。
专利文献1特开平9-128258号公报;专利文献2特开平7-073059号公报。

发明内容
本发明所要解决的技术问题是提供一种可以在模块之间完全同步容错计算机来进行复位的容错计算机复位方法和容错计算机复位系统。
根据本发明,提供了一种复位具有多个模块的容错计算机用的方法,其特征在于,包括步骤由其中一个模块来生成复位请求信号;将所述复位请求信号分为第一复位请求信号和第二复位请求信号;将所述第二复位请求信号传到其他模块;在所述一个模块内使所述第一复位请求信号延迟将所述第二复位请求信号传送到其他模块所需的时间;用以在所述一个模块内延迟的所述第一复位请求信号为基础生成的第一CPU复位信号来复位在所述一个模块中含有的至少一个CPU;用以传送到所述其他模块的所述第二复位请求信号为基础生成的第二CPU复位信号来复位在所述其他模块中含有的至少一个CPU。
在所述方法中,也可进一步具有步骤在所述一个模块中,生成锁定命令;将所述锁定命令传送到所述一个模块的I/O接口桥;将所述锁定命令传送到所述其他模块的I/O接口桥;在接收了所述锁定命令的所述一个模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第一锁定完成;在接收了所述锁定命令的所述其他模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第二锁定完成。若在所述一个模块的I/O接口桥中生成了所述第一锁定完成,且在所述其他模块的I/O接口桥中生成了所述第二锁定完成,则生成所述复位请求信号。
在上述方法中,也可进一步包括步骤用以在所述一个模块内延迟的所述第一复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述一个模块的主存储器;用以传送到所述其他模块的所述第二复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述其他模块的主存储器。
在上述方法中,也可进一步包括步骤判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致;在两个命令不一致的情况下,重新复位所述一个模块中含有的所述至少一个CPU和所述其他模块中含有的所述至少一个CPU。
在上述方法中,也可进一步包括步骤将所述其他模块中含有的所述至少一个复位后的CPU发出的命令传到所述一个模块;使所述一个模块中含有的所述至少一个复位后的CPU发出的命令延迟将所述命令从所述其他模块传送到所述一个模块所需的时间。在判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致的步骤中,判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令,即延迟后的命令和所述其他模块中含有的所述至少一个复位后的CPU发出的命令,即传送的命令是否一致。
根据本发明的第二观点,提供了一种复位具有多个模块的容错计算机用的系统,其特征在于,包括由其中一个模块来生成复位请求信号的单元;将所述复位请求信号分为第一复位请求信号和第二复位请求信号的单元;将所述第二复位请求信号传到其他模块的单元;在所述一个模块内使所述第一复位请求信号延迟将所述第二复位请求信号传送到其他模块所需的时间的单元;用以在所述一个模块内延迟的所述第一复位请求信号为基础生成的第一CPU复位信号来复位在所述一个模块中含有的至少一个CPU的单元;用以传送到所述其他模块的所述第二复位请求信号为基础生成的第二CPU复位信号来复位在所述其他模块中含有的至少一个CPU的单元。
在上述系统中,也可进一步具有在所述一个模块中,生成锁定命令的单元;将所述锁定命令传送到所述一个模块的I/O接口桥的单元;将所述锁定命令传送到所述其他模块的I/O接口桥的单元;在接收了所述锁定命令的所述一个模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第一锁定完成的单元;在接收了所述锁定命令的所述其他模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第二锁定完成的单元。若在所述一个模块的I/O接口桥中生成了所述第一锁定完成,且在所述其他模块的I/O接口桥中生成了所述第二锁定完成,则生成所述复位请求信号。
在上述系统中,也可进一步包括用以在所述一个模块内延迟的所述第一复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述一个模块的主存储器的单元;用以传送到所述其他模块的所述第二复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述其他模块的主存储器的单元。
在上述系统中,也可进一步包括判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致的单元;在两个命令不一致的情况下,重新复位所述一个模块中含有的所述至少一个CPU和所述其他模块中含有的所述至少一个CPU的单元。
在上述系统中,也可进一步包括将所述其他模块中含有的所述至少一个复位后的CPU发出的命令传到所述一个模块的单元;使所述一个模块中含有的所述至少一个复位后的CPU发出的命令延迟将所述命令从所述其他模块传送到所述一个模块所需的时间的单元;判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致单元判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令,即延迟后的命令和所述其他模块中含有的所述至少一个复位后的CPU发出的命令,即传送的命令是否一致。
根据本发明的第三观点,提供了一种在具有多个模块的容错计算机中所用的容错控制装置,其特征在于,包括复位请求信号生成单元,生成复位请求信号;分路单元,将所述复位请求信号分为第一复位请求信号和第二复位信号;传送单元,向该装置包含的模块之外的模块中含有的容错控制装置传送所述第二复位请求信号;第一延迟单元使所述第一复位请求信号延迟将所述第二复位请求信号传送到该装置包含的模块之外的模块中含有的容错控制装置所需的时间;CPU复位单元,用以延迟后的所述第一复位请求信号为基础生成的第一CPU复位信号来复位该装置包含的模块中含有的至少一个CPU。
在上述装置中,也可进一步具有锁定命令生成单元,生成锁定命令;第一锁定命令传送单元,将所述锁定命令传送到该装置中含有的I/O接口桥;第二锁定命令传送单元,向该装置含有的模块之外的模块含有的容错控制装置含有的I/O接口桥传送所述锁定命令;锁定完成生成单元,在接收了所述锁定命令的该装置中含有的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第一锁定完成的单元;若该装置中含有的所述I/O接口桥中,生成所述第一锁定完成且在该装置含有的模块之外的模块中含有的所述容错控制装置中含有的I/O接口桥中,生成了所述第二锁定完成,则所述复位请求信号生成单元生成所述复位请求信号。
在上述装置中,也可进一步具有刷新单元,用以由所述第一延迟单元延迟后的所述第一复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新该装置包含的模块中含有的主存储器。
在上述装置中,也可进一步具有一致判断单元,判断该装置含有的模块中含有的所述至少一个复位后的CPU发出的命令和该装置含有的模块之外的模块中含有的所述至少一个复位后的CPU发出的命令是否一致;重新复位单元,在两个命令不一致的情况下,再次复位该装置含有的模块中含有的所述至少一个CPU。
在上述装置中,也可进一步具有第二延迟单元,使该装置含有的模块中含有的所述至少一个复位后的CPU发出的命令延迟将所述命令从该装置包含的模块之外的模块传送到该装置包含的模块所需的时间;所述一致判断单元判断该装置含有的模块中含有的所述至少一个复位后的CPU发出的命令,即通过所述第二延迟单元延迟后的命令和该装置含有的模块之外的模块中含有的所述至少一个复位后的CPU发出的命令即传送的命令是否一致。
根据本发明,由于使第一复位请求信号在一个模块内延迟将第二复位请求信号传送到其他模块所需的时间,所以可以与其他模块中含有的至少一个CPU同时复位一个模块中含有的至少一个CPU。


图1是表示容错计算机的基本结构的框图;图2是表示本发明的实施方式容错计算机的结构框图;图3是从一个CPU的观点来描绘图2所示的容错计算机的框图;图4是表示图2所示的容错控制部的结构等的框图;图5是表示图4所示的LOB/RIB·I/O·FT-链路控制器的结构框图;图6是表示图5所示的延迟控制器的结构框图;图7是表示通过本发明的实施方式,命令分组同时到达本地路由器和远程路由器的情况的时序图;图8是表示图4所示的CPU比较器的结构框图;图9是说明基于本发明的实施方式的CPU复位方法用的第一图;图10是说明基于本发明的实施方式的CPU复位方法用的第二图;图11是说明基于本发明的实施方式的CPU复位方法用的第三图;图12是表示通过基于本发明的实施方式的CPU复位方法来复位DRAM的情况的时序图;图13是表示通过本发明的实施方式,由CPU比较器来检测不同步,而重新复位CPU的情况的时序图。
图中121CPU子系统;122I/O子系统;
101-1、101-2CPU;102-1、102-2主存储器;103-1、103-2容错控制部(FT控制部);104-1、104-2南桥,105-1-1、105-1-2、105-2-1、105-2-2I/O设备;201-1、201-2系统总线控制器;202-1、202-2系统总线;203-1、203-2路由器;204-1、204-2复位控制器;205-1、205-2存储控制器;206-1、206-2同步命令生成器;207-1、207-2I/O接口桥;208-1、208-2/O比较器;209-1、209-2LOB/RIB·I/O·FT-链路控制器;210-1、210-2LOB/RIB·I/O·FT-链路控制器;211-1、211-2中断控制器。
具体实施例方式
下面,参照附图来详细说明实施本发明用的最佳实施方式。
本发明的CPU复位方法和CPU复位系统通过在容错计算机系统中,完全同步多路复用的CPU子系统的复位信号并输入到CPU,从而保证各系统的CPU的同步动作。另外,近年来的CPU的复位采用与时钟不同步的非同步复位的情况很多,根据情况,有即使通过时钟基准来同步输入复位,也不能达到CPU的完全同步的情况。在该情况中,具有在复位解除后,监视来自附近的CPU的请求,在定时检测出偏差的情况下,立即再次输入复位,来提高同步性的机构。
进一步,这些复位控制装置在每个CPU子系统中存在,而成为增强抗故障性的结构成为可能。
图2表示实现基于本发明的实施方式的容错计算机复位方法和容错计算机复位系统的容错计算机的基本结构图。
图2的容错计算机是两路复用系统,为方便区分为主要和次要来进行称呼。作为装置,为了可更换发生故障的部位,主要/次要由不同的主板(board)构成。
CPU子系统121的上半部分包括CPU群(包含CPU101-1和CPU101-2)、主存储器102-1、102-2、FT控制部103-1、103-2中的复位控制部,在主要/次要中,包含时钟在内都完全同步地进行动作。FT控制部103在inter(注册商标)结构的北桥(north bridge)功能部中追加了用于实现容错计算机系统的功能部。
还将I/O设备122分为主要/次要,但是两者具有相同的结构。另外,I/O子系统122由I/O设备群构成。图2表示了主要侧的I/O设备群包括I/O设备105-1-1、105-1-2,次要侧的I/O设备群包括I/O设备105-2-1、105-2-2。各I/O设备不同步动作,在两个I/O设备群都有故障时,通过软件来切换使用设备。
在FT控制部103-1和FT控制部103-2之间设置I/O FT-链路111-1、111-2。I/O FT-链路111-1主要用于从主要侧的CPU子系统访问次要侧的I/O设备。I/O FT-链路111-2主要用于从次要侧的CPU子系统访问主要侧的I/O设备,但是其还用于其他用途。
由此,仅从FT控制部#1(103-1)前馈(forward)对属下的I/O设备#1a、b(105-1-1、105-1-2)的访问,两个系统的I/O访问的同步检验也限于前馈到I/O比较器208-1(参考图4)的I/O访问的范围。同样,FT控制部#2(103-2)接收对I/O比较器208-2属下的I/O设备#2a、b(105-2-1、105-2-2)的访问的同步检验。
因此,在本系统中,I/O访问的同步检验在主要系统、次要系统之间分散进行。
图3是从图2的系统中的一个CPU的观点,来图式化系统的图。虽然两路复用了CPU子系统,但是由于I/O子系统在每个设备中用软件来进行两路复用,所以可以看作如图所示的结构。
在FT控制部103-1中内置了I/O接口桥210-1,在FT控制部103-2上内置了I/O接口桥210-2。主要系统的CPU101-1经I/O·FT·链路111-1来访问次要系统的I/O接口桥210-2,次要系统的CPU101-2经I/O·FT·链路111-2来访问主要系统的I/O接口桥210-1。
图4是FT控制部103-1、103-2内的细节图。参考图4,以主要系统为基础来进行说明,但是通过将各部分的后缀“-1”改变为“-2”,将各部分的后缀“-2”改变为“-1”,可以变为以次要系统为基础的情况下的说明。
系统总线控制器201-1经系统总线202-1进行与来自CPU101-1的请求有关的控制。将所接收的请求送到路由器203-1。另外,从路由器203-1接收对于来自I/O设备105-1的入站请求(inbound request)和出站请求(outbound request)的完成,而返回到CPU101-1。这里,一般将从CPU向I/O设备的请求称作出站请求,将I/O设备向CPU/存储器的请求称作入站请求。将对于引导(lead)等的非邮递性(non-posted)系统请求,结果有数据等的回复称作完成,将对于出站请求的完成称作出站请求完成,将对于入站请求的完成称作入站请求完成。
复位控制器204-1除通过来自路由器203-1的指示,向CPU101-1供给复位信号之外,还进行对存储控制器205-1的同步复位指示。
存储控制器205-1以从路由器203-1路由的存储请求为基础,进行包含对主存储器102-1的请求的发送的DRAM控制。另外,通过来自复位控制器204-1的同步复位指示,立即进行DRAM刷新、刷新计数器的清除。
同步命令生成器206-1是FT控制部103-1内部的I/O设备,通过来自CPU101-1的指示,将特殊的命令作为入站请求发送。
同步命令生成器206-1还进行CPU的同步复位命令的发送。
路由器203-1进行通过FT控制部103-1的内部的请求和完成的路由。若从各请求者接收了请求,则进行从该请求所描述的地址决定路由端,并将该请求传送到所决定的路由端的处理。
作为路由端,有主存储器102-1、CPU101-1、本地(自身FT控制部103-1内的)I/O接口桥207-1、远程(相对侧的FT控制部103-2内的)I/O接口桥207-2、同步命令生成器206-1和复位控制器204-1。
请求和完成为了容易进行同步,将地址/命令/数据聚集在一起打包后,经过FT控制部103-1的内部和I/O·FT-链路111-1的内部。之后,将请求和完成单纯称作分组(packet)。
路由器203-1为所有都接受共同的格式的分组的结构,各请求或完成的打包由系统总线控制器201-1、存储控制器205-1、I/O接口桥207-1、同步命令生成器206-1、LOB/RIB·I/O·FT-链路控制器208-1、LOB/RIB·I/O·FT-链路控制器209-1等的控制器来进行。另外,这里,LOB是本地出站请求的简称,RIB是远程入站请求的简称。
在将出站请求路由到本地I/O接口桥207-1的情况下,路由器203-1向自身I/O比较器208-1路由请求。
在将出站请求路由到远程I/O接口桥207-2的情况下,将请求传到LOB/RIB·I/O·FT-链路控制器209-1,进一步,经远程侧的ROB/LIB·I/O·FT-链路控制器210-2,将请求传到远程I/O接口桥207-2。
来自各I/O设备105-1的入站请求经I/O接口桥207-1和LIB/ROB·I/O·FT-链路控制器210-1向本地路由器203-1、远程路由器203-2或其两者传送。
另外,向本地路由器203-1和远程路由器203-2的路由因主要系统和次要系统是同步状态还是非同步状态而不同。
图5是LIB/ROB·I/O·FT-链路控制器210-1的内部细节图。LIB/ROB·I/O·FT-链路控制器210-2与LIB/ROB·I/O·FT-链路控制器210-1相同,这里,取LIB/ROB·I/O·FT-链路控制器210-1为例来进行说明。
从远程侧接收的分组由FT-链路输入控制器221来进行接收,并由解码器222为进行请求/完成判断而进行解码。
在将从远程侧接收的分组判断为出站请求或入站请求完成的情况下,传送到I/O比较器208-1,最终,经I/O接口桥207-1前馈到各I/O设备105-1。
另外,在将从远程侧接收的分组判断为入站请求或出站请求完成的情况下,传送到路由器203,最终,前馈到作为CPU子系统121内的设备的CPU101-1、主存储器102-1、复位控制器204-1的其中之一。
来自内部的入站请求或出站请求完成的路由考虑如下三种。
(1)主要系统和次要系统完全同步,将入站请求或出站请求完成前馈到两者的CPU子系统中。
(2)主要系统和次要系统不同步,与自身FT控制部103-1相连的CPU子系统是有效侧,与另一FT控制部103-2相连的CPU子系统是备用侧,来自本地的I/O接口桥207-1和远程的I/O接口桥207-2的请求或完成仅前馈到自身CPU子系统中。
(3)主要系统和次要系统不同步,与自身FT控制部103-1相连的CPU子系统是备用侧,与另一FT控制部103-2相连的CPU子系统是有效侧,来自本地的I/O接口桥207-1和远程的I/O接口桥207-2的请求或完成仅前馈到远程侧的CPU子系统中。
将这些状态设置在有效/备用寄存器223和同步/非同步·状态寄存器224中。
在两个系统是完全状态的(1)的情况下,来自I/O设备105-2的请求或完成在通过仲裁器(arbiter)225后,传到延迟控制器226和FT-链路输出控制器227两者。结果,将来自I/O设备105-2的请求或完成传到两者的FT控制部103-1、103-2的路由器203-1、203-2。但是,因为是容错计算机,故需要包含路由器203-1、203-2的CPU子系统完全同步,来自I/O设备105-2的请求或完成也完全同步地传到路由器203-1、203-2。
由于向其他系统的分组的前馈经过I/O·FT-链路111-2,所以产生了某种程度的时滞。因此,在将分组传送到自身系统的路由器203-1的情况下,经过延迟控制器226。将该时滞称作迁移时间(flight time)。
LIB/ROB·I/O·FT-链路控制器209在LIB/ROB·I/O·FT-链路控制器210的构成要素中仅包含FT-链路输入控制器221和FT-链路输出控制器227。
图6是延迟控制器的细节图。
将通过了仲裁器225的请求和完成的分组存储到按每个时钟移位的FIFO结构的移位寄存器231上。
开关233选择来自移位寄存器231的多个节点中的对应于I/O·FT-链路迁移时间寄存器232中存储的迁移时间的节点的请求或完成,传到路由器203-1中。
即,向路由器203-1传送的请求或命令与经I/O·FT-链路111-2向路由器203-2传送的请求或完成延迟相同的时间(迁移时间)。
另外,迁移时间依赖于安装,例如,在出厂时,在安装状态下测量迁移时间,并将所测量出的迁移时间存储到预定的区域(EEPROM等)中,在系统启动时,设置在I/O·FT-链路迁移时间寄存器232中。
通过以上的功能,在同一状态下,入站请求或出站请求完成的分组成为完全在同一定时下传到路由器203-1、203-2。
图7表示假设迁移时间为4T的情况下的分组的时序图。另外,由于从本地FT-链路输出控制器227输出的分组通过远程FT-链路输入控制器222与时钟同步,所以迁移时间为时钟周期T的整数倍。
在主要系统和次要系统为非同步状态,主要系统为有效(2)的情况下,如图5的符号228所示那样,将分组从仲裁器225直接前馈到路由器203,而不传到FT-链路输出控制器227。
相反,在主要系统和次要系统为非同步状态,次要系统为有效(3)的情况下,由于自身系统的CPU子系统为作为备用状态从系统切断了的状态,所以仅将分组前馈到FT-链路输出控制器227。
图4所示的CPU比较器212-1、212-2是在彼此的CPU子系统间由CPU·FT-链路213相连,彼此发送接收CPU发出的请求信息,并检验同步性的部分。图8表示其细节。
CPU比较器212具有与维持I/O FT-链路的同步性的延迟控制器(包括移位寄存器231、I/O·FT-链路迁移时间寄存器232和开关233)相同的延迟控制器(包括移位寄存器241、CPU·FT-链路迁移时间寄存器242和开关243)。将自身系统的CPU101-1的命令存储到按每个时钟进行移位的FIFO结构的移位寄存器241上,在CPU·FT-链路迁移时间寄存器242设置的定时下,通过开关243从移位寄存器241中取出命令,而传到检验器244。
另外,该迁移时间也依赖于安装,例如,在出厂时,在安装状态下测量迁移时间,将所测量出的迁移时间存储到预定的区域(EEPROM等)中,在系统启动时,设置在CPU·FT-链路迁移时间寄存器242中。
检验器244还经CPU·FT-链路213来接收远程系统的CPU命令。检验器244监视在主要系统和次要系统中,在同一定时下是否发出同一CPU的命令。
该功能主要用于确认CPU·复位解除之后的CPU的同步性,在通过检验器244确认了基于复位解除的CPU的同步化失败的情况下,立即将失败的内容通知给本地的复位控制器204,敦促再次复位CPU。
I/O接口桥207-1具有将分组前馈到下层的I/O接口的功能,或打包来自下层的I/O设备105-1的请求或完成而前馈到LIB/ROB·I/O·FT-链路控制器210-1的功能。
在通过CPU101-1、101-2的复位来同步两个系统的情况下,需要暂时停止I/O设备105-1-1、105-1-2、105-2-1、105-2-2。
这是因为例如,在CPU101-1、101-2的复位中产生了来自I/O设备105-1-1的中断或DMA的情况下,CPU101-1、101-2不能对应于该情况。但是,需要缩短停止时间。这是因为长时间上的系统停止意味着业务的停止,对用户不利。
可以对CPU101-1、101-2调用系统管理中断管理器(SMI处理器(handler))等位于操作系统的上层的系统软件,来暂时停止操作系统。另外,同步处理用的控制也通过由中断控制器221-1、211-2产生的SMI调用的系统软件来进行。
但是,由于不知道各I/O设备105的特性,系统软件不能控制I/O设备105,所以不能使I/O设备105停止。
一般,I/O设备105的控制经操作系统的接口通过按每个I/O设备105存在的I/O设备驱动来进行。因此,为了停止I/O设备105,需要调用各I/O设备105的驱动,逐一输出停止设备的请求。
另外,在同步完成后,需要再次同样调用各I/O设备105的驱动,开始设备的使用。
其意味着为了在结果上同步,相当于停止了所有业务,在长时间上停止了系统。
为了避免该情况,在本系统中,使I/O接口桥207具有锁定功能。
I/O接口桥207完全存储对各I/O设备105发出的非邮递性(non-posted)出站请求(完成为必须的情况),在返回完成,并进行打包后,向LOB/RIB·I/O·FT-链路控制器210传送的时刻进行该请求的清除。
若从系统软件执行过程中的CPU101接收锁定分组来作为出站请求,则I/O接口桥207在所有结构中的非邮递性(non-posted)请求没有的时刻,截断一切入站请求,将锁定完成返回到路由器203。
即,I/O接口桥207在接收锁定分组后,锁定完成变为从I/O接口桥207发送的最后的入站分组。
由此,完全截断来自I/O接口桥207的分组,结果I/O设备105变为暂时停止的状态。
另外,在同步后,通过从执行BIOS中的CPU101发出开锁命令,来解除锁定状态。
由此,由于不是使各I/O设备105停止处理,而是在进行复位同步的期间封住了I/O接口,所以与进行调用设备驱动的停止、启动的情况相比,可以大幅度缩短时间。
假定为图2的系统中,两个系统是非同步状态,主要侧为有效,由操作系统进行的业务工作的状态。另外,假定为次要侧为备用,通过由故障造成的主板的替换等,基于CPU101-2的业务停止的状态。
另外,假定为I/O·FT-链路111-1、111-2已经为工作状态,可从有效侧利用备用侧的I/O设备105-2的状态。
这时,同步/非同步状态寄存器224为表示非同步的设置,另外,将主要侧的有效/备用寄存器223设为有效,将次要侧的有效/备用寄存器223设为备用。
因此,一切的分组不从有效侧到达次要侧的备用状态的CPU子系统的路由器203-2,另外,路由器203-2也截断来自备用侧的一切出站请求,所以变为逻辑上切断的状态。
参照图9到图11,下面表示从该状态起使主要系统和次要系统同步动作用的动作顺序。
为了进行备用侧的同步,由比操作系统上层的中断(例如SMI)来调用系统软件(例如SMI处理器)。在该时刻暂时中断操作系统的动作。
执行系统软件的CPU101-1对路由器203-1要求锁定命令的发出(图9的1)。
路由器203-1对本地/远程两者的I/O接口桥207-1、207-2发出锁定命令(图9的2)。
接收了其的I/O接口桥207-1、207-2(图9的3)在返回对于结构中的所有的非邮递性(non-posted)出站请求的非邮递性(non-posted)出站请求完成的同时,锁定来自I/O设备105-1、105-2的所有入站请求。并且,I/O接口桥207-1、207-2若返回最后的非邮递性(non-posted)出站请求完成,则返回锁定完成(图10的4)。
路由器203-1确认从两者的I/O接口桥207-1、207-2中返回了锁定完成(图10的5),并进行对CPU101-1的通知(图10的6)。
作为对CPU101-1的通知方法,通过由执行系统软件的CPU101-1对表示锁定完成的返回状况的路由器203-1内的寄存器进行轮询来进行。
另外,在本实施方式中虽然没有详细描述,但是将有效侧的主存储器102-1的内容通过FT控制部103-1的内部的DMA引擎持续复制到备用侧的主存储器102-1中,其在操作系统操作中由后台来进行。
进一步,具有在同步处理用的系统软件启动后,基于I/O接口桥207-1、207-2的锁定的I/O设备105-1、105-2停止对主存储器102-1的DMA的期间,还将通过DMA写入到有效侧的存储器102-1的内容前馈到备用侧的存储器102-2,而自动保持相同性的机构。
即,路由器203-1确认从两个I/O接口桥207-1、207-2返回了锁定完成(图10的5),在进行对CPU101-1的通知的时刻,与两个FT控制部103-1、103-2相连的主存储器102-1、102-2完全为同一状态。
接着,执行系统软件的CPU101-1对同步命令生成器206-1请求同步CPU复位命令的发送。其通过向同步命令生成器206-1控制寄存器的写入来进行。
同步命令生成器206-1向LIB/ROB·I/O·FT-链路控制器210-1通知同步CPU复位命令的分组(图11的8)。
LIB/ROB·I/O·FT-链路控制器210-1在接收同步CPU复位命令后,自动将同步/非同步状态寄存器224切换为同步状态。
由此,主要系统和次要系统看作在同步动作中,同步CPU复位命令前馈到延迟控制器226、I/O·FT-链路输出控制器227(图11的9)。
由于有效侧通过延迟控制器226,无效侧通过I/O·FT-链路111-2,所以同步CPU复位命令同时到达路由器203-1、203-2(图11的10)。
进一步,路由器203-1、203-2分别将同步CPU复位命令前馈到复位控制器204-1、204-2(图11的11)。复位控制器204-1、204-2分别对CPU101-1、101-2在一定期间宣告复位(图11的12)。由于路由器203-1、203-2上层的部分完全同步动作,所以同时施加CPU复位。
另外,复位控制器204-1、204-2分别对存储控制器205-1、205-2发送同步复位脉冲。
如图12的时序图所示那样,接收了同步复位脉冲的存储控制器205-1、205-2分别对作为主存储器102-1、102-2的DRAM发出刷新命令,同时复位DRAM刷新计数器(图11的13)。为了复位DRAM复位计数器,从存储控制器205-1、205-2分别对主存储器102-1、102-2提供DRAM刷新计数器复位信号。
由此,在两个CPU子系统中不会在非同步下动作,而变为完全的锁定步骤的同步状态。
若解除了CPU101-1、101-2的复位,CPU比较器212-1、212-2开始动作,来监视双方CPU101-1、101-2的复位的发送定时(图11的14)。
使用了CPU比较器212-1、212-2的重新复位的功能是考虑如前所述,CPU101-1、101-2的复位为非同步复位的情况很多,即使将同步于时钟的复位脉冲提供给CPU101-1、101-2,CPU101-1、101-2也彼此不同步的情况的功能。
如图13所示那样,在复位解除后附近的请求产生了定时偏差的情况下,CPU比较器212-1、212-2两者同时检测出错误。CPU比较器212-1、212-2分别立即将错误通知给复位控制器204-1、204-2。由此,从图11的12所示的位置重新启动上述的同步CPU复位的顺序。
另外,基于CPU比较器检验的CPU101-1、101-2的重新同步复位是限于主存储器访问前的基于BIOS的ROM提取(fetch)阶段,高速进行重新同步用的功能。
若没有问题地进行同步,则继续进行位于由CPU101-1、101-2的复位矢量所示的地址上的BIOS的ROM提取。执行BIOS的CPU101-1、101-2分别在知道CPU比较器检验的结果是肯定的,重新同步处理成功后,为解除I/O接口桥207-1、207-2的锁定,对路由器203-1、203-2请求开锁命令的发送。其通过向路由器203-1、203-2内的控制寄存器的写入来进行。
接收了开锁命令的I/O接口桥207-1、207-2解除锁定状态。由此,I/O设备105-1、105-2重新开始动作。
另外,BIOS在通过自身SMI调用系统软件,在操作系统停止前进行了恢复用的上下文恢复后,以从SMI返回的形式,恢复到停止前,而完成同步处理。
权利要求
1.一种复位具有多个模块的容错计算机用的方法,其特征在于,包括步骤由其中一个模块来生成复位请求信号;将所述复位请求信号分为第一复位请求信号和第二复位请求信号;将所述第二复位请求信号传到其他模块;在所述一个模块内使所述第一复位请求信号延迟将所述第二复位请求信号传送到其他模块所需的时间;通过以在所述一个模块内延迟的所述第一复位请求信号为基础生成的第一CPU复位信号来复位在所述一个模块中含有的至少一个CPU;通过以传送到所述其他模块的所述第二复位请求信号为基础生成的第二CPU复位信号来复位在所述其他模块中含有的至少一个CPU。
2.根据权利要求1所述的方法,其特征在于,进一步具有步骤在所述一个模块中,生成锁定命令;将所述锁定命令传送到所述一个模块的I/O接口桥;将所述锁定命令传送到所述其他模块的I/O接口桥;在接收了所述锁定命令的所述一个模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第一锁定完成;在接收了所述锁定命令的所述其他模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第二锁定完成;若在所述一个模块的I/O接口桥中生成了所述第一锁定完成,且在所述其他模块的I/O接口桥中生成了所述第二锁定完成,则生成所述复位请求信号。
3.根据权利要求1所述的方法,其特征在于,进一步包括步骤用以在所述一个模块内延迟的所述第一复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述一个模块的主存储器;用以传送到所述其他模块的所述第二复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述其他模块的主存储器。
4.根据权利要求1所述的方法,其特征在于,进一步包括步骤判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致;在两个命令不一致的情况下,重新复位所述一个模块中含有的所述至少一个CPU和所述其他模块中含有的所述至少一个CPU。
5.根据权利要求4所述的方法,其特征在于,进一步包括步骤将所述其他模块中含有的所述至少一个复位后的CPU发出的命令传到所述一个模块;使所述一个模块中含有的所述至少一个复位后的CPU发出的命令延迟将所述命令从所述其他模块传送到所述一个模块所需的时间;在判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致的步骤中,判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令,即延迟后的命令和所述其他模块中含有的所述至少一个复位后的CPU发出的命令,即传送的命令是否一致。
6.一种复位具有多个模块的容错计算机用的系统,其特征在于,包括由其中一个模块来生成复位请求信号的单元;将所述复位请求信号分为第一复位请求信号和第二复位请求信号的单元;将所述第二复位请求信号传到其他模块的单元;在所述一个模块内使所述第一复位请求信号延迟将所述第二复位请求信号传送到其他模块所需的时间的单元;用以在所述一个模块内延迟的所述第一复位请求信号为基础生成的第一CPU复位信号来复位在所述一个模块中含有的至少一个CPU的单元;用以传送到所述其他模块的所述第二复位请求信号为基础生成的第二CPU复位信号来复位在所述其他模块中含有的至少一个CPU的单元。
7.根据权利要求6所述的系统,其特征在于,进一步具有在所述一个模块中,生成锁定命令的单元;将所述锁定命令传送到所述一个模块的I/O接口桥的单元;将所述锁定命令传送到所述其他模块的I/O接口桥的单元;在接收了所述锁定命令的所述一个模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第一锁定完成的单元;在接收了所述锁定命令的所述其他模块的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第二锁定完成的单元;若在所述一个模块的I/O接口桥中生成了所述第一锁定完成,且在所述其他模块的I/O接口桥中生成了所述第二锁定完成,则生成所述复位请求信号。
8.根据权利要求6所述的系统,其特征在于,进一步包括用以在所述一个模块内延迟的所述第一复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述一个模块的主存储器的单元;用以传送到所述其他模块的所述第二复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新所述其他模块的主存储器的单元。
9.根据权利要求6所述的系统,其特征在于,进一步包括判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致的单元;在两个命令不一致的情况下,重新复位所述一个模块中含有的所述至少一个CPU和所述其他模块中含有的所述至少一个CPU的单元。
10.根据权利要求9所述的系统,其特征在于,进一步包括将所述其他模块中含有的所述至少一个复位后的CPU发出的命令传到所述一个模块的单元;使所述一个模块中含有的所述至少一个复位后的CPU发出的命令延迟将所述命令从所述其他模块传送到所述一个模块所需的时间的单元;判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令与所述其他模块中含有的所述至少一个复位后的CPU发出的命令是否一致的单元判断所述一个模块中包含的所述至少一个复位后的CPU发出的命令,即延迟后的命令和所述其他模块中含有的所述至少一个复位后的CPU发出的命令,即传送的命令是否一致。
11.一种在具有多个模块的容错计算机中所用的容错控制装置,其特征在于,包括复位请求信号生成单元,生成复位请求信号;分路单元,将所述复位请求信号分为第一复位请求信号和第二复位信号;传送单元,向该装置包含的模块之外的模块中含有的容错控制装置传送所述第二复位请求信号;第一延迟单元,使所述第一复位请求信号延迟将所述第二复位请求信号传送到该装置包含的模块之外的模块中含有的容错控制装置所需的时间;CPU复位单元,用以延迟后的所述第一复位请求信号为基础生成的第一CPU复位信号来复位该装置包含的模块中含有的至少一个CPU。
12.根据权利要求11所述的装置,其特征在于,进一步具有锁定命令生成单元,生成锁定命令;第一锁定命令传送单元,将所述锁定命令传送到该装置中含有的I/O接口桥;第二锁定命令传送单元,向该装置含有的模块之外的模块中含有的容错控制装置含有的I/O接口桥传送所述锁定命令;锁定完成生成单元,在接收了所述锁定命令的该装置中含有的I/O接口桥中,锁定入站请求,同时,若对应于接收所述锁定命令之前的所有非邮递性出站请求的非邮递性出站请求完成的返回完成,则生成第一锁定完成;若在该装置中含有的所述I/O接口桥中,生成所述第一锁定完成且在该装置含有的模块之外的模块中含有的所述容错控制装置中含有的I/O接口桥中,生成了所述第二锁定完成,所述复位请求信号生成单元生成所述复位请求信号。
13.根据权利要求11所述的装置,其特征在于,进一步具有刷新单元,用以由所述第一延迟单元延迟后的所述第一复位请求信号为基础生成的刷新命令和刷新计数器复位信号,来刷新该装置包含的模块中含有的主存储器。
14.根据权利要求11所述的装置,其特征在于,进一步具有一致判断单元,判断该装置含有的模块中含有的所述至少一个复位后的CPU发出的命令和该装置含有的模块之外的模块中含有的所述至少一个复位后的CPU发出的命令是否一致;重新复位单元,在两个命令不一致的情况下,再次复位该装置含有的模块中含有的所述至少一个CPU。
15.根据权利要求14所述的装置,其特征在于,进一步具有第二延迟单元,使该装置含有的模块中含有的所述至少一个复位后的CPU发出的命令延迟将所述命令从该装置包含的模块之外的模块传送到该装置包含的模块所需的时间;所述一致判断单元判断该装置含有的模块中含有的所述至少一个复位后的CPU发出的命令,即通过所述第二延迟单元延迟后的命令和该装置含有的模块之外的模块中含有的所述至少一个复位后的CPU发出的命令即传送的命令是否一致。
全文摘要
本发明所要解决的问题是可以在模块之间完全同步地复位容错计算机。包括步骤由其中一个模块来生成复位请求信号;将复位请求信号分为第一复位请求信号和第二复位请求信号;将第二复位请求信号传到其他模块;在一个模块内使第一复位请求信号延迟将第二复位请求信号传送到其他模块所需的时间;用以在一个模块内延迟的第一复位请求信号为基础生成的第一CPU复位信号来复位在一个模块中含有的至少一个CPU;用以传送到其他模块的第二复位请求信号为基础生成的第二CPU复位信号来复位在其他模块中含有的至少一个CPU。
文档编号G06F11/16GK1794135SQ20051013691
公开日2006年6月28日 申请日期2005年12月20日 优先权日2004年12月20日
发明者阿部晋树 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1