CN1821973A - 容错计算机***及其中断控制方法 - Google Patents
容错计算机***及其中断控制方法 Download PDFInfo
- Publication number
- CN1821973A CN1821973A CN200510133818.1A CN200510133818A CN1821973A CN 1821973 A CN1821973 A CN 1821973A CN 200510133818 A CN200510133818 A CN 200510133818A CN 1821973 A CN1821973 A CN 1821973A
- Authority
- CN
- China
- Prior art keywords
- control section
- cpu
- ioapic
- main
- interrupt request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1633—Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1691—Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
一种容错计算机***,其包括主用***和辅助***。主用***包括:第一CPU(2A);与第一CPU相连的第一FT控制部分(10A);和在电气及操作上与第一FT控制部分相连的第一南桥(6A)。辅助***包括:第二CPU(2B);与第二CPU相连的第二FT控制部分(10B);和第二南桥(6B),其电气上与第二FT控制部分相连而操作上不与第二FT控制部分相连。第一FT控制部分和第二FT控制部分通过链路部分(8)相连,主用***和辅助***利用链路部分同步操作,第二南桥除外。
Description
技术领域
本发明一般涉及双重控制器***。更具体地说,本发明针对双重中断控制的容错计算机***。
背景技术
容错计算机***是众所周知的一种高可靠性计算机***。在容错计算机***中,计算机***的所有硬件模块是双重或多重的。这些硬件模块彼此同步操作,即使一个硬件模块的某一部分发生故障,发生故障的硬件模块也会被从上述容错计算机***断开,由剩下的正常硬件模块继续操作。因此,抗故障特性得到改善。
图1示出容错计算机***配置的一个例子。这个例子的容错计算机***备有容错(FT)控制部分10和硬件模块,例如CPU、存储器和I/O设备,它们是双重的。FT控制部分10与硬件模块相连,当发生故障时进行同步处理和切换控制。
在图1所示的容错计算机***中,CPU(或CPU组)2A、存储器3A和FT控制部分10的一部分组成一个CPU子***,而另一CPU子***具有与CPU子***1A完全相同的配置。因此,两组CPU子***1A和1B是重复的。类似地,有相同配置的I/O设备(I/O组)5A和5B也是重复的,构成I/O子***。FT控制部分10是这些硬件模块的核心,控制这些硬件模块例如CPU子***1A和1B和I/O设备组5a和5B,以保持CPU子***之间的同步操作并检测故障。另外,FT控制部分10也控制发生故障的硬件模块从容错计算机***断开。图1的计算机***中虽然有两组CPU子***1A和1B,但发生故障的子***在逻辑上从FT控制部分10断开,由剩下的CPU子***和I/O子***继续其进程。
一般来说,容错计算机***分成以硬件方式重复的部分和以软件方式重复的部分。例如,CPU子***1A和1B是软件在其中执行的基础,这些CPU子***1A和1B必须以硬件方式重复。当一个CPU子***发生故障时,FT控制部分10将CPU子***发生故障的CPU或者存储器从计算机***断开,并进行控制使不利的影响不损害正常操作的CPU和存储器。另一方面,当I/O设备发生故障时,FT控制部分10检测故障并将故障的发生通知软件,从而控制I/O设备(以下称为“I/O设备驱动器”)。因此,就有可能以软件方式切换I/O设备。在这种情况下,I/O设备驱动器停止驱动发生故障的I/O设备,转而去驱动双重I/O设备中的另一I/O设备。这就是使用在I/O子***中的I/O设备的切换实现的。
但是,某些I/O设备在软件方式中不能重复。例如中断控制器就是这类设备之一,它不能以软件方式重复。中断控制器接收各I/O设备或诸如此类发布的中断请求并将中断请求通知CPU。中断请求由操作***(OS)指配一个叫做“IRQ”的中断号码。在某些情况下,多个I/O设备被指配单一的中断号码。中断控制器将各设备发布的中断请求转换为预定的中断号码,然后将中断号码通知CPU。这时,在CPU现行执行与某个中断号码相应的中断处理时,中断控制器并不通知具有相同中断号码的中断请求,或者管理多个设备发布的中断请求使中断请求不丢失。为此,中断控制器内部执行一种处理以保持与执行的中断请求相应的状态。如果在中断控制器中发生故障,所有关于中断请求的数据将会丢失。结果是在软件中不可能将中断控制器恢复成原来的状态。
进一步说,虽然现有的操作***(OS)例如“Windows”(注册商标)和“Linux”允许存在多个中断控制器,但这些操作***不能用操作期间中断控制器增加或减少这样的状态复制。因此,当计算机起动时已经存在的中断控制器必须存在直至操作***停止运行,并且必须以正常状态继续运行。
还有,现在的PC服务器趋向于开放***,当PC服务器以低廉成本制造时,Intel兼容(Intel为注册商标)的CPU和低价商品电子元件是必然的选择。Windows和Linux是现在的PC服务器的主要操作***,并且已基于Intel兼容的结构设计出来。但在开放***PC服务器中,当容错计算机***以低价配置时,存在许多问题。
例如,大多数I/O设备和大多数操作***如“Windows”在设计中没有考虑容错计算机***。因此,即使设备是重复的,PC服务器也不能完全复制对故障的故障切换处理。在Intel兼容的PC服务器中,中断控制依赖于特定的I/O设备,这种设备精心于叫做“南桥”的传统功能。特别是由于中断控制是***操作的核心功能,所以操作***直接进入南桥控制南桥的操作。因此,如果一旦在南桥中发生故障,这个操作***的功能就完全丧失,结果引起***停机。所以对操作***例如已主要用在开放***PC服务器的Windows进行修改以适应容错计算机***,实际上是不可能的。
与上述有关,日本专利申请公报(JP-A-Heisei 9-251443)披露了一种信息处理***的处理器故障恢复方法。在这个常规例子中,信息处理***具有多个处理器,其中的至少一个操作为***支持处理器。余下的处理器操作为指令处理器。在这一信息处理***中,当一个处理器发生故障时,一个中断被发送至操作***(OS),它控制至少一个指令处理器。当中断发送时,操作***判明指令处理器中发生故障,便停止在指令处理器中正在执行的应用程序,然后用***支持处理器代替上述指令处理器。
发明内容
本发明的一个目的是提供一种容错计算机***,其中两个***是重复的,并且彼此同步地操作。
本发明的另一目的是提供一种容错计算机***,其中当***从现用***切换为备用***时,中断请求可以被保持。
本发明的另一目的是提供一种容错计算机***,其中南桥的故障能对CPU隐藏。
本发明的另一目的是提供一种容错计算机***,其中即使当容错控制部分被新的容错控制部分替代时,也可以完全恢复同步操作。
本发明的另一目的是提供一种容错计算机***,其中即使是在装有未考虑容错计算机***的现有的OS和现有的南桥的计算机***(服务器)中,也能够重复设置中断控制器。
本发明的一方面,一种容错(FT)计算机***,其包括主用***和辅助***。主用***包括第一CPU;与第一CPU相连的第一FT控制部分;和在电气上和操作上与第一FT控制部分相连的第一南桥。辅助***包括第二CPU;与第二CPU相连的第二FT控制部分;和在电气上与第二FT控制部分相连但操作上与第二FT控制部分不相连的第二南桥。第一FT控制部分和第二FT控制部分通过链路部分相连,主用***和辅助***利用链路部分彼此同步操作,第二南桥除外。
在这里,第一CPU和第二CPU在相同的操作***上运行,第二南桥从操作***是不可见的。第一FT控制部分最好具有第一主I/O高级可编程中断控制器(IOAPIC)控制部分,第二FT控制部分具有第二主IOAPIC控制部分。第一南桥具有PIC控制部分和IOAPIC控制部分。第一南桥中的IOAPIC控制部分地址空间与第一主IOAPIC控制部分地址空间的一部分相同,第二南桥中IOAPIC控制部分的地址空间与第二主IOAPIC控制部分的地址空间的一部分相同。
另外,第一和第二FT控制部分具有为分别存储主用和辅助***的设置数据和状态数据而配置的第一和第二配置/状态存储部分。当主用***和辅助***分别作为现用***和备用***同步操作时,如果第一南桥发生故障,在第一FT控制部分的第一配置/状态存储部分中的设置数据和状态数据被发送至第二FT控制部分中的第二配置/状态存储部分。然后辅助***作为现用***运行。
另外,主用***进一步包括与第一FT控制部分相连的第一PCI桥和与第一PCI桥相连的第一I/O设备组。辅助***进一步包括与第二FT控制部分相连的第二PCI桥和与第二PCI桥相连的第二I/O设备组。在操作***还没有操作的传统方式中,当主用***被设置为现用***和辅助***被设置为备用***而与主用***同步操作时。来自第一I/O设备组的一个I/O设备的第一中断请求,经过第一南桥的PIC控制部分和第一主IOAPIC控制部分发送至第一CPU。
在这种情况下,第一中断请求最好经过链路和第二FT控制部分的第二主IOAPIC控制部分发送至第二CPU,并在预定的延迟时间之后发送至第一FT控制部分的第一主IOAPIC控制部分。
另外,在传统方式之后操作***运行的扩展方式中,来自第一南桥的第二中断请求最好经过第一IOAPIC控制部分发送至第一CPU,经过链路和第二FT控制部分的第二IOAPIC控制部分发送至第二CPU。
在这种情况下,在扩展方式中,来自第一I/O设备组的一个I/O设备的第二中断请求最好经过第一主IOAPIC控制部分发送至第一CPU,并经过链和第二主IOAPIC控制部分发送至第二CPU。
还有,在扩展方式中,来自第二I/O设备的一个I/O设备的第三中断请求最好经过第二主IOAPIC控制部分发送至第二CPU,并经过链路和第一主IOAPIC控制部分发送至第一CPU。
另外,第一和第二FT控制部分进一步包括第一和第二状态存储部分,其分别存储主用和辅助***的设置数据以及表示主用和辅助***状态的状态数据。第一IOAPIC控制部分将除第一中断请求以外的所收到的中断请求和当时主用***的状态数据存储到第一状态存储部分。第二IOAPIC控制部分将除第一中断请求以外的所收到的中断请求和当时主用***的状态数据存储到第二状态存储部分中。
还有,第一和第二FT控制部分可具有第一和第二状态存储部分,其分别存储主用和辅助***的设置数据以及表示主用和辅助***的状态的状态数据。当第一CPU和第二CPU彼此同步操作时,如果检测出第一和第二状态存储部分之间存储的数据不一致,则SMI(***管理中断)处理器停止第一CPU和第二CPU的操作,并控制第一和第二FT控制部分使存储在第一和第二状态存储部分的设置数据/状态数据彼此符合。
本发明的另一方面,一种容错计算机***,包括主用***和辅助***。主用***包括第一CPU、与第一CPU相连的第一FT控制部分、与第一FT控制部分在电气上和操作上相连的第一南桥、与第一FT控制部分相连的第一PCI桥和与第一PCI桥相连的第一I/O设备组。辅助***包括第二CPU、与第二CPU相连的第二FT控制部分、与第二FT控制部分在电气上相连但操作上不相连的第二南桥、与第二FT控制部分相连的第二PCI桥和与第二PCI桥相连的第二I/O设备组。第一FT控制部分和第二FT控制部分通过链路部分相连,第一FT控制部分具有第一主IOAPIC控制部分,第二FT控制部分具有第二主IOAPIC控制部分。第一CPU和第二CPU具有第一中断路径和第二中断路径。在起动时在主用***中产生的第一中断,经过第一和第二主IOAPIC控制部分和第一中断路径发送至第一和第二CPU,在操作时在主用***或辅助***中产生的第二中断,经过第一和第二主IOAPIC控制部分和第二中断路径发送至第一和第二CPU。
本发明的另一方面,一种中断控制方法,其通过提供包括主用***和辅助***的容错计算机***而实现,其中主用***包括第一CPU、与第一CPU相连的第一FT控制部分、与第一FT控制部分在电气上和操作上相连的第一南桥、与第一FT控制部分相连的第一PCI桥和与第一PCI桥相连的第一I/O设备组,辅助***包括第二CPU、与第二CPU相连的第二FT控制部分、与第二FT控制部分在电气上相连但操作上不相连的第二南桥、与第二FT控制部分相连的第二PCI桥和与第二PCI桥相连的第二I/O设备组。第一FT控制部分和第二FT控制部分通过链路部分相连,第一FT控制部分具有第一主IOAPIC控制部分,第二FT控制部分具有第二主IOAPIC控制部分。中断控制方法这样不定期实现:当主用***被设置为现用***而辅助***设置为备用***并与主用***同步操作时,在操作***还没有运行的传统方式中,将第一I/O设备组的一个I/O设备发布的第一中断请求进一步传送至第一主IOAPIC控制部分;将第一中断请求经过链路部分发送第二FT控制部分的第二主IOAPIC控制部分;通过将第一中断请求经过第一南桥的PIC控制部分传送至第一主IOAPIC控制部分,将第一中断请求从第一主IOAPIC控制部分发送至第一CPU;和通过将第一中断请求经过第二南桥的PIC控制部分传送至第二主制的方法,将第一中断请求从第二主IOAPIC控制部分发送至第二CPU。
这里,第一中断请求到达第一主IOAPIC控制部分的定时与第一中断请求到达第二主IOAPIC控制部分的定时相同。
另外,中断控制方法也可以这样实现,即在传统方式之后,以扩展方式将第二南桥发布的第二中断请求从第一IOAPIC控制部分发送至第一CPU;和将第二中断请求从第二FT控制部分的第二IOAPIC控制部分经过链路发送至第二CPU。
中断控制方法也可以这样来实现,即在扩展方式中,将第二中断请求经第一主IOAPIC控制部分发送至第一CPU;和将第二中断请求经过链路和第二主IOAPIC控制部分发送至第二CPU。
中断控制方法也可以这样实现,即在扩展方式中,将来自第二I/O设备组的一个I/O设备的第三中断请求经过第二主IOAPIC控制部分发送至第二CPU;和将第三中断请求经过链路和第一主IOAPIC控制部分发送至第一CPU。
中断控制方法也可以这样实现,即将收到的除第一中断请求以外的中断请求和当时主用***的状态数据存储至第一FT控制部分的第一状态存储部分中;和将收到的除第一中断请求以外的中断请求和当时主用***的状态数据存储至第二FT控制部分的第二状态存储部分。
中断控制方法也可以这样实现,即当第一CPU和第二CPU彼此同步操作时,如果检测出第一和第二状态存储部分之间存储的数据不一致,则SMI(***管理中断)处理器停止第一CPU和第二CPU的操作;和控制第一和第二FT控制部分使存储在第一和第二状态存储部分中的设置数据和状态数据彼此符合;和当第一和第二状态存储部分之间的设置数据和状态数据彼此符合时,重新起动第一CPU和第二CPU的操作。
附图说明
图1是常规容错计算机***的配置示例方框图;
图2是根据本发明实施例的容错计算机***的基本配置方框图;
图3是图2所示容错计算机***的PCI(***部件互连)分层结构方框图;
图4是非双重PC服务器的中断路由选择示意方框图;
图5是示出根据本发明实施例的容错计算机***的中断控制器双重***的中断路由选择的方框示意图;
图6是容错(FT)控制部分的主IOAPIC(IO高级可编程中断控制器)的配置示意方框图;
图7是根据本发明实施例的容错计算机***的***地址映象实例示意图;
图8是相同的设置命令通过路由器发送至现用南桥的状态示意图;
图9是容错(FT)控制部分的主IOAPIC中的IRQ表和南桥的IOAPIC的IRQ表之间的关系图;
图10是根据本发明容错计算机***在传统方式中的中断控制操作示意图;
图11是根据本发明容错计算机***在扩展方式中的中断控制示意图。
具体实施方式
下面将参考附图详细描述根据本发明容错计算机***。例如,本发明的容错计算机***能应用于服务器***。
图2是根据本发明的容错计算机***基本配置方框图。如图2所示,实施例的容错计算机***有两个具有相同配置的***,即主用***#1和辅助***#2。主用***#1和辅助***#2各包括容错(FT)控制器10(10A、10B)、CPU(中央处理器)2(2A、2B)、主存储器3、南桥6(6A、6B)、PCI(***部件互连)桥7(7A、7B)和I/O设备5(5A、5B)。注意,上述后缀“A”指示主用***,另一后缀“B”表示辅助***。FT控制部分10A通过FT链路8连接至FT控制部分10B。在本实施例中,FT控制部分是双重的,本发明的中断控制器装在FT控制部分10A和10B中。
为了能用正常部件代替故障部件,希望主用***#1和辅助***#2安排在分立的板上。最好容错计算机***由四块或更多的板组成,以使含有CPU2和主存储器3和CPU子***与I/O子***能够分开。两个CPU子***各包括一个CPU组(在这个实施例中为单一CPU)、主存储器3和包含中断控制器的FT控制部分10的上半部分。两个CPU子***完全同步操作,包括时钟。I/O子***提供有I/O设备5、PCI桥7和南桥组6,它们是双重的。主I/O子***和次I/O子***有完全相同的硬件配置。PCI桥7将I/O设备5连接至FT控制部分10。
图3是图2所示根据本实施例容错计算机***的PCI分层结构的方框图。所有可访问的设备都有按照PCI规范的PCI总线号码、PCI设备号码和PCI功能号码。根据本实施例的容错计算机***还具有分层结构,其中CPU设置为最高层。虽然只有南桥6具有完全相同的设备号码,但在正常操作中只使用一个南桥6。在下面的陈述中,正在使用的南桥6称为“现用南桥”6,而其他的南桥6则称为“备用南桥”6。备用南桥6逻辑上与FT控制部分10断开,在故障切换之前不允许进入备用南桥6。
图4是非双重部件的一般PC服务器的中断路由选择示意图。各I/O设备组(本示例中的PIC设备)最大能有四条中断线(#A至#D),这些中,断线#A至#D一次地连接至PCI桥7。PCI桥7以线“或”方式连接多组中断线,四条线“或”连接的中断线连接至南桥6的PIC或IOAPIC(IO高级可编程中断控制器)当中的一个。本PC服务器以传统方式起动。在这种情况下,PIC用作中断控制器。当OS(操作***)例如Windows和Linux进行操作时,PIC的操作被停止,而使用具有比PIC更高功能的IOAPIC。
图5是根据本发明的容错计算机***和中断路由选择的配置示意方框图,其中中断控制器为双重配置。
FT控制部分10(10A、10B)提供有图2中的错误检测单元11(11A、11B),图5中的主IOAPIC 12(12A、12B),图5中的消息转换器14(14A、14B),图8中的FT比较器15(15A、15B),图8中的路由器18(18A、18B)和图9中的定时器19(19A、19B)。虽未表示,但FT控制部分10还提供有用于保证主CPU子***和辅CPU子***同步操作的同步操作保证控制部分。
错误检测器11检查从CPU或者I/O设备发布的请求,以检测发生在内部单元或I/O子***中的错误。当检测到任何错误时,错误检测器11产生SMI(***管理中断)。主IOAPIC 12以扩展方式(操作***(OS)使CPU2运行)管理或控制中断请求,并以传统方式(其中OS尚未起动)将与来自I/O子***的中断请求相应的中断消息发送至南桥6。应当注意,主和辅助***两者CPU的OS是相同的。主IOAPIC 12以传统方式将来自南桥6的中断请求传送至CPU2。消息转换器14将从I/O子***发布的中断请求转换为中断消息。FT比较器15比较两个值,并将从CPU2发送来的设置命令经过路由器18发送至现用南桥6。门控制器16将来自主IOAPIC 12的中断请求连接至南桥6,并将来自南桥6的中断请求连接至主IOAPIC 12。路由器18将CPU发送来的数据/命令发送至主存储器3或者I/O子***,并将数据/命令和来自I/O子***的中断请求传送至主存储器3或者CPU。主用***中的FT控制部分的路由器18A将中断请求经过FT链路8,发送至辅助***中的FT控制部分10B的主IOAPIC12B。从FT控制部分10B的路由器18B来的中断请求至FT控制部分10A的主IOAPIC 12A的发送是同样的。应当注意,由于向另一***中主IOAPIC 12的通报是经过FT链路8进行的,所以产生时间延迟。但是,由于上述中断消息是在预定的时间周期之后,基于这个时滞通知它自身***的主IOAPIC的,所以中断消息能以基本上相同的时间通知主IOAPIC 12A和12B。
FT(容错)链路8将主用***中的FT控制部分#1 10A和辅助***中的FT控制部分#2 10B连接起来。FT链路8用于从主用***的I/O设备进入辅助***,或者从辅助***进入主用***。因此,主用***中的FT控制部分#1 10A只将对PCI桥#1 7A和由这个PCI桥#1 7A管理的I/O设备5A的访问请求,经过FT链路8发送至辅助***中的FT控制部分#2 10B。类似地,辅助***中的FT控制部分#210B接收发自主用***中FT控制部分#1 10A的访问请求,并只将对PCI桥#2 7B和由这个PCI桥#2 7B管理的I/O设备5B的访问请求,经过FT链路8发送至主用***中的FT控制部分#1 10A。因此,主和辅助***两者同步检查的范围限于上述范围。换句话说,在本发明的容错计算机***中,由FT控制部分10以分布方式进行同步检查。
因为现有的开放***设备和OS能用于这种容错计算机***,所以能成功利用双重配置而不必考虑上述操作。FT控制部分10(10A、10B)中的主IOAPIC 12(12A、12B)从OS来看是可见的,是作为唯一的中断控制器出现的。在主和辅助***的FT控制部分10中提供的两组主中断控制器12,彼此完全同步操作。
南桥6备有或者连接至称作“传统设备”的设备,例如串行端口、并行端口、鼠标、键盘、定时器和时钟,所有这些设备都未示出,它们在***中各自单独出现。这些传统设备在***中有预定的地址,不允许***多于一个设备出现。另外经常直接从OS进入这些传统设备。南桥6使用与其他I/O设备5不同的中断控制,并且在软件上不能重复,不像其他I/O设备5。即使在本发明的容错计算机***中,主用***和辅助***中也只有一个南桥工作为现用南桥。另一南桥处于备用状态,直至现用南桥6出现故障。因此,备用南桥从OS来看是不可见的。
图6是FT控制部分10和南桥6之间传送中断请求的配置示意图。南桥6(6A、6B)具有通用的配置,备有中断路由选择逻辑32(32A、32B),PIC 34(34A、34B)和IOAPIC 36(36A、36B)。中断路由选择逻辑32接收从外部设备或内部设备发布的中断请求,或者向PIC 34或者向IOAPIC 36通报目的地,随操作方式而变。PIC 34是以传统方式作为操作方式的中断控制器,以传统方式起动对传统设备的中断控制。IOAPIC36是以扩展方式作为操作方式的中断控制器,一般用于Intel兼容的PC服务器。IOAPIC 36管理和控制涉及南桥6的中断请求,并向FT控制部分10的主IOAPIC 12发送所收到的中断请求。
FT控制部分10(10A、10B)提供有路由器18和主IOAPIC 12(12A、12B),主IOAPIC 12(12A、12B)提供有IOAPIC 24(24A、24B),配置/状态存储部分(寄存器组)22(22A、22B)和中断路由选择逻辑20(20A、20B)。从南桥6的PIC 34来的中断请求经过主IOAPIC 12作为中断(INTR)输出。中断路由选择逻辑20接收来自PCI桥7的INT#x消息,向IOAPIC 24发送INT#x消息或者经门控制器(图5所示)向南桥6的中断路由选择逻辑32发送INT#x消息,取决于操作方式。
主IOAPIC 12的配置/状态存储部分22中设置所有的设置数据,并从存储部分22能知道状态。存储部分22存储指示中断控制器状态的数据。***软件在故障切换时参考存储部分22。当在容错计算机***主用***的FT控制部分10模块中发生故障时,故障模块被新的模块代替。这时,故障模块的状态能在辅助***的中断控制器中完全重现。存储部分22保存如下数据:
·IOAPIC的设置数据;
·FT控制部分10中IOAPIC控制逻辑的内部状态(注意,内部状态表示为二进制数值,***软件处理时不检查这一数值,而这一内部状态纯粹用于复制内部状态);
·PIC的设置数据(虽然FT控制部分10没有PIC功能,但在故障切换时FT控制部分10使用这一设置数据进行南桥6中的设置);
·FT控制部分10中PIC控制逻辑的内部状态(二进制状态);
·中断控制器的其他设置数据(限于FT控制部分等的寄存器设置数据);和
·中断控制器逻辑的其他内部状态(二进制条件)。
存储部分22的所有存储内容复制至新模块的存储部分22。因此,主IOAPIC 12能设置为与复制源完全相同的设置和完全相同的操作状态。结果,一个***中的新FT模块能与另一***中的FT模块完全同步操作。
图7是根据本发明容错计算机***的***地址映象实例的示意图。主IOAPIC 12映象至例如FEC0_0000h至FEC8_FFFFh,并在这个空间进行配置/状态的设置。南桥6中IOAPIC 36的地址空间与主IOAPIC 12的地址空间的一部分重叠。因此,在本发明的容错计算机***中,提供在现用南桥6中的IOAPIC 36从CPU2或者OS看是隐藏的,不可见的。但是,现用南桥6中的IOAPIC 36的设置必须进行。为了这个目的,南桥6中的IOAPIC 36的地址空间由主IOAPIC 12的地址空间复盖。
图9示出各类设备和中断号码(IRQs)之间的关系。左侧的IRQ表提供在现用南桥6的IOAPIC 36中,右侧的IRQ表提供在FT控制部分10的主IOAPIC 12的IOAPIC 24中。在收到中断原因后,IOAPIC 24将IRQ直接向CPU通报。为了这个目的,在IOAPIC 24中备有IRQ表。南桥6中IOAPIC 36的IRQ表具有通用的配置,特别是IRQ0至IRQ15固定地确定在Intel兼容的CPU***中。南桥6中IOAPIC 36的IRQ表的设置操作实际上是通过对主IOAPIC 12的IOAPIC 24设置数据进行的。相同的设置命令从CPU 2A通过路由器18发送至主用***中的现用南桥6A和辅助***中的备用南桥6B。因此,现用南桥6A中IOAPIC 36的IRQ表和备用南桥6B中IOAPIC 36的IRQ36表被设置为相同的内容,FT控制部分10A中IOAPIC 24的IRQ表和FT控制部分10B中IOAPIC 24的IRQ表被设置为相同的内容。另外,IOAPIC 24的IRQ表内容包含IOAPIC36的IRQ表内容。从现用现桥6A发布的中断消息被直接替代为中断请求发送至主IOAPIC 12。从PCI桥7发布的中断请求被分配给例如IRQ20至IRQ27中的一个。
图8是相同的设置命令通过路由器18(18A、18B)发送至现用南桥的状态示意图。
如图8所示,FT控制部分10进一步提供有外部插脚(图8)和现用南桥寄存器(未示)。外部插脚指示含有FT控制部分10的模块的实际位置,也就是说指示FT控制部分10出现在或者主用***或者辅助***。现用南桥寄存器指示现用南桥6的地址单元。
如图8所示,从CPU2发布的设置命令通过路由器18发送至主IOAPIC 12,并设置在主IOAPIC 12中。在设置命令中,与南桥6的IOAPIC36重叠的命令部分通过路由器18发送至FT比较器15。FT比较器15将设置命令与一组模块的实际位置数据和现用南桥寄存器的数据进行比较,当不一致时则将设置命令发送至现用南桥6。因此,南桥6的IOAPIC36的设置状态等效地出现在主IOAPIC 12上。因此,可以设置主IOAPIC12的IOAPIC 24中的设置重叠部分和IOAPIC 36。换句话说,能产生具有完全相同设置的IOAPIC的复制品。
主IOAPIC 12是主中断控制器,并管理整个***的中断。主IOAPIC12是扩展的中断控制器。当出现了中断因素时,主IOAPIC 12向CPU2连同消息形式中的中断号码一起通报中断出现。提供在FT控制部分10A和10B中的两个主中断控制器12A和12B和辅助***,通过同步操作保证控制器进行彼此完全同步的操作。从中断线#A至#D中任何一个来的PCI桥7A和PCI桥7B发布的中断请求通过消息转换器14转换为INT #x断言消息或INT #x非断言消息(图5),然后通过路由器18将消息同时通报主和辅助***中的主IOAPIC 12A和12B。
PIC(可编程中断控制器)34和IOAPIC(IO高级可编程中断控制器)12和36彼此不同之处有如下几点。也就是说,PIC 34是继承以往传统的传统中断控制器。当出现中断因素时,PIC 34通过使用一条中断线(INTR)向CPU2输出中断请求作为INTR信号。在收到INTR信号后,CPU2向PIC 34发布中断应答命令并识别中断号码。另一方面,主IOAPIC 12或36进一步扩展中断控制器。当中断因素出现时,主IOAPIC 12或36将中断请求连同消息形式中的中断号码通报给CPU2。由于存在上述不同点,在每个主和辅助***中存在两个向CPU2通报中断的***。
如上所述,在本计算机***中,PIC 34在OS起动之前在传统方式中使用,而主IOAPIC 12和36是在OS起动之后在扩展方式中使用。因此,中断请求路径被切换。
如上所述,现用/备用门控制器16(图5)出现在FT控制部分10中。南桥6在电气上连接至备用方的FT控制部分10,但在逻辑上与FT控制部分10断开。结果,向备用门控制器16那一方的南桥6发出的任何中断通报被阻断。
应当注意,错误检测器11由定时器19周期性地激活,主和辅助***中的状态存储单元22可彼此进行比较。作为比较的结果,当被检测的状态不一致时,将状态的不一致通报给SMI处理器。SMI处理器停止CPU2的操作并执行数据传送处理,使主和辅助***中状态存储单元22的存储数据彼此相同。此后,SMI处理器重新起动CPU2的操作。照这样,每次经过预定的时间周期,能消除由累积引起的错误。每次经过预定时间周期后,当错误检测器11检测到在南桥6或其他位置两者之一中出现故障,或者响应从CPU2或I/O设备5两者之一发布的请求时,将所检测的故障通报给SMI处理器。SMI处理器停止CPU2的操作。在出现故障的板被新板替换之后,SMI处理器执行数据传送处理,以使主和辅助***之间状态存储单元22的存储数据彼此相同。此后,SMI处理器重新起动CPU2的操作。
在传统方式中,通过使南桥6中的PIC 34用作容错计算机***中的唯一的中断控制器,将INT #x消息返回中断线#A至#D,就有一个输出将PCI桥7发布的INT #x消息连接至南桥6。利用主IOAPIC进行至CPU2的中断。由南桥6的PIC 34发布的中断请求INTR和IOAPIC 36发布的中断消息经过现用/备用门控制器16连接至主IOAPIC 12。因此,主IOAPIC 12具有一条INTR中断线的路径,使南桥6来的中断请求INTR能经过它直接到CPU2,和一条在这个主IOAPIC 12中处理的中断消息的路径。两条路径连接至CPU2。
在传统方式之后的扩展方式中,对于CPU2的所有中断请求的接收和发送都经过主IOAPIC 12进行。在扩展方式中,主IOAPIC 12管理和控制来自南桥6的中断和来自PCI桥7的中断两者。由于这个原因,主IOAPIC 12的一部分可以从现用南桥6的IOAPIC 36直接观察。因此,各南桥6中的IOAPIC 36从计算机***来看是可见的。这是考虑在南桥6中发生故障的结果。当故障发生在现用南桥6中时,主IOAPIC 12的中断控制直接由备用南桥6的IOAPIC 36代替。因此,从OS方面来看,不会发生IOAPIC的增加和减少。
其次,在本发明实施例图2所示的计算机***中,假定主用***方的南桥6称作“现用南桥”,并且用作正常处理。
下面将描述传统方式中的现用南桥6的操作。在传统方式中,PIC 34起中断控制的核心作用。当使用PIC 34时,这个PIC 34只是计算机***中的一个中断控制器,控制来自所有设备的中断。虽然FT控制部分10能监视来自PCI桥7控制下的I/O设备5-1和5-2的中断状态,但是FT控制部分10不能掌握南桥6中设备的状态。因此,使用现用南桥6中的PIC 34。
参考图10,断言来自PCI设备#1b的中断信号。这时,中断请求经过PCI桥#1 7A被通报给FT控制部分10中的消息转换器14A(步骤S1)。消息转换器14A将信号线的状态即中断请求转换为INT #x断言消息,然后将这个INT #x断言消息通报给主IOAPIC 12A和12B(步骤S2)。在与这个消息发送至主IOAPIC 12B相应的预定延时之后,将这个INT #x断言消息经过FT链路8通报给FT控制部分#2 10B,并通报给主IOAPIC12A。结果是,主和辅助***中的主IOAPIC 12A和12B同时收到中断请求,由此能以完全同步的方式进行操作。
主IOAPIC 12A和12B分别将INT #x断言消息发送至门控制器16A和16B(步骤S3)。当门控制器16A基于板位置插脚和现用南桥寄存器的数值判断门控制器16本身是现用的时候,门控制器16A将INT #x断言消息返回至中断信号线INT #x,向南桥6通报(步骤S4)。一般地说,南桥6具有图6所示的配置,外部进入的中断被提供给路由选择逻辑32。应当注意,来自外部设备例如最初出现在南桥6的串行端口、并行端口、鼠标、定时器、键盘和时钟的中断请求同样提供给路由选择逻辑32。在这种情况下,中断通报从这一内部设备开始。
由于南桥6中的路由选择逻辑32用的是传统方式,所以路由选择逻辑32向PIC 34通报中断请求。PIC 34将中断线断言为INTR信号(步骤S5)。门控制器16A将INTR信号转换为INTR断言消息,然后将所转换的断言消息向主IOAPIC 12A和12B通报。这时,INTR断言消息经过FT链路8向备用方面的主IOAPIC 12B通报。在实际情况中,由于INTR断言消息经过和上述INT #x消息相同的路径,所以INTR断言消息能同时通报给主IOAPIC 12A和12B(步骤S6)。当主IOAPIC 12A和12B接受INTR断言消息时,主IOAPIC 12A和12B同时将INTR断言给CPU2(步骤S7)。
当故障以传统方式发生在现用南桥6中时,中断被通报给CPU2指示南桥6的故障的发生,以便调用容错控制的***软件。最高级的中断用来调用***软件。例如,在Intel兼容的CPU中使用***管理中断(SMI)。结果是,在CPU2中正在执行的所有进程一度停止。在这些进程停止时,SMI处理器将现用南桥6的所有设置数据复制到备用方,并改变现用南桥寄存器的数值。在SMI处理器的进程结束之后,一度停止的CPU2中的进程被重新起动。这时,曾替换过南桥6的事实完全被隐藏。
下面将描述使用IOAPIC的扩展方式中的中断控制。
图11示出使用IOAPIC时的操作。假定I/O设备#2b 5-2A断言一个INTR信号(步骤S1)。另外,假定中断经过PCI桥#27B被通报给FT控制部分#2 10B作为中断信号“INT #C”。消息转换器14B接收这个中断信号INT #C,并将INT #C断言消息通报给主用***和辅助***中的主IOAPIC 12A和12B(步骤S2)。主IOAPIC 12A和12B将PCI桥#2 7B发布的中断“INT #C”判断作为中断IRQ 26,然后将中断消息通报给CPU2(步骤S3)。虽然省略详细的说明,但是南桥6发布的中断经过相同的路径。
如上所述,根据本发明,在使用IOAPIC的扩展方式中,当在南桥6中发生故障时,SMI处理器像传统方式一样能参照主IOAPIC 12A和12B的配置/状态存储单元22,并能设置与备用方的南桥6的IOAPIC 36中完全相同的设置数据。结果是从CPU2看,南桥6的故障能被隐藏。
另外,即使在传统方式和扩展方式两者中,主IOAPIC 12A和12B也彼此同步地操作。因此,即使当FT控制部分10本身中的一个出现故障并且CPU子***在逻辑上被断开时,正常操作也能通过另一FT控制部分10的主IOAPIC 12继续下去。因此,因此,中断请求不会丢失。
还有,当故障FT控制部分10由新的FT控制部分10代替时,新模块中的主IOAPIC 12和南桥6中的IOAPIC 36的所有设置数据和状态完全丢失。但是,***软件(SMI处理器)参照正在继续操作的***中主IOAPIC 12的配置/状态存储部分22,并复制设置数据和状态数据。因此,能恢复完全同步的状态。
如上所述具有保存配置/状态的存储部分22的主IOAPIC 12安装在FT控制部分10中,进行中断路由选择控制。所以,中断控制器能是双重的。结果是,即使在没有考虑容错计算机***的情况下生产的并且其中装有现有的OS和现有的南桥的服务器中,中断控制器也能双重配置。
Claims (20)
1.一种容错(FT)计算机***,其包括主用***和辅助***,其特征在于:
所述主用***包括:
第一CPU;
与所述第一CPU相连的第一FT控制部分;和
与所述第一FT控制部分在电气和操作上相连的第一南桥,
所述辅助***包括:
第二CPU;
与所述第二CPU相连的第二FT控制部分;和
与所述第二FT控制部分在电气上相连但操作上不相连的第二南桥,
所述第一FT控制部分和所述第二FT控制部分通过链接部分相连,和
所述主用***和所述辅助***利用链接部分彼此同步操作,所述第二南桥除外。
2.根据权利要求1所述的容错计算机***,其特征在于:
所述第一CPU和所述第二CPU以相同的操作***运行,和
所述第二南桥从操作***是不可见的。
3.根据权利要求1所述的容错计算机***,其特征在于:
所述第一FT控制部分具有第一主I/O高级可编程中断控制器(IOAPIC)控制部分,和
所述第二FT控制部分具有第二主IOAPIC控制部分,
所述第一南桥具有PIC控制部分和IOAPIC控制部分,
所述第一南桥中的所述IOAPIC控制部分的地址空间与所述第一主IOAPIC控制部分的地址空间的一部分相同,和
所述第二南桥中的所述IOAPIC控制部分的地址空间与所述第二主IOAPIC控制部分的地址空间的一部分相同。
4.根据权利要求1至3中的任一权利要求所述的容错计算机***,其特征在于:
所述第一和第二FT控制部分具有第一和第二配置/状态存储部分,是分别为存储所述主用和辅助***的设置数据和状态数据而配置的,和
当所述主用***和辅助***分别作为现用***和备用***同步操作时,如果在所述第一南桥中发生故障,在所述第一FT控制部分的所述第一配置/状态存储部分中的所述设置数据和所述状态数据被发送至所述第二FT控制部分的所述第二配置/状态存储部分,和
然后,所述辅助***作为现用***运行。
5.根据权利要求3所述的容错计算机***,其特征在于:
所述主用***进一步包括与所述第一FT控制部分相连的第一PCI桥,和与所述第一PCI桥相连的第一I/O设备组,
所述辅助***进一步包括与所述第二FT控制部分相连的第二PCI桥,和与所述第二PCI桥相连的第二I/O设备组,
在操作***还没有操作的传统方式中,当所述主用***设置为现用***和所述辅助***设置为备用***而与所述主用***同步操作时,来自所述第一I/O设备组的一个I/O设备的第一中断请求,经过所述第一南桥的所述PIC控制部分和所述第一主IOAPIC控制部分被发送至所述第一CPU。
6.根据权利要求5所述的容错计算机***,其特征在于:
所述第一中断请求经过所述链路和所述第二FT控制部分的所述第二主IOAPIC控制部分,被发送至所述第二CPU,并在预定的延迟时间以后发送至所述第一FT控制部分的所述第一主IOAPIC控制部分。
7.根据权利要求5或6所述的容错计算机***,其特征在于:
在所述传统方式之后的所述操作***已运行的扩展方式中,来自所述第一南桥的第二中断请求经过所述第一IOAPIC控制部分被发送至所述第一CPU,并经过所述链路和所述第二FT控制部分的所述第二IOAPIC控制部分被发送至所述第二CPU。
8.根据权利要求5或6所述的容错计算机***,其特征在于:
在扩展方式中,来自所述第一I/O设备组的一个I/O设备的第二中断请求,经过所述第一主IOAPIC控制部分,被发送至所述第一CPU,并经过所述链路和所述第二主IOAPIC控制部分,被发送至所述第二CPU。
9.根据权利要求5或6所述的容错计算机***,其特征在于:
在扩展方式中,来自所述第二I/O设备组的一个I/O设备的第三中断请求,经过所述第二主IOAPIC控制部分被发送至所述第二CPU,并经过所述链路和所述第一主IOAPIC控制部分被发送至所述第一CPU。
10.根据权利要求5或6所述的容错计算机***,其特征在于:
所述第一和第二FT控制部分进一步包括所述第一和第二状态存储部分,其分别存储主用和辅助***的设置数据和表示主用和辅助***状态的状态数据,
所述第一IOAPIC控制部分将除第一中断请求之外的所收到的中断请求和当时所述主用***的状态数据,存储在所述第一状态存储部分中,
所述第二IOAPIC控制部分将除第一中断请求之外的所收到的中断请求和当时所述主用***的状态数据,存储在所述第二状态存储部分中。
11.根据权利要求1至3中的任一权利要求所述的容错计算机***,其特征在于:
所述第一和第二FT控制部分具有第一和第二状态存储部分,其分别存储主用和辅助***的设置数据和表示主用和辅助***状态的状态数据,和
当所述第一CPU和所述第二CPU彼此同步操作时,如果检测出所述第一和第二状态存储部分之间存储的数据不一致,则SMI(***管理中断)处理器停止所述第一CPU和所述第二CPU的操作,控制所述第一和第二FT控制部分,使存储在所述第一和第二状态存储部分中的设置数据/状态数据彼此符合。
12.根据权利要求5或6所述的容错计算机***,其特征在于:
所述第一和第二FT控制部分具有第一和第二状态存储部分,其分别存储主用和辅助***的设置数据和表示主用和辅助***状态的状态数据,
当所述第一CPU和所述第二CPU彼此同步操作时,如果检测出所述第一和第二状态存储部分之间存储的数据不一致,则***管理中断(SMI)处理器停止所述第一CPU和所述第二CPU的操作,控制所述第一和第二FT控制部分,使存储在所述第一和第二状态存储部分中的设置数据/状态数据彼此符合。
13.一种容错计算机***,包括主用***和辅助***,其特征在于:
所述主用***包括:第一CPU,与所述第一CPU相连的第一FT控制部分,与所述第一FT控制部分在电气和操作上相连的第一南桥,与所述第一FT控制部分相连的第一PCI桥,和与所述第一PCI桥相连的第一I/O设备组,
所述辅助***包括:第二CPU,与所述第二CPU相连的第二FT控制部分,与所述第二FT控制部分在电气上相连但操作上不相连的第二南桥,与所述第二FT控制部分相连的第二PCI桥,和与所述第二PCI桥相连的第二I/O设备组,
所述第一FT控制部分和所述第二FT控制部分通过链接部分相连,
所述第一FT控制部分具有第一主IOAPIC控制部分,所述第二FT控制部分具有第二主IOAPIC控制部分,
所述第一CPU和所述第二CPU各具有第一中断路径和第二中断路径,
在起动时在所述主用***中产生的第一中断经过所述第一和第二主IOAPIC控制部分和所述第一中断路径,被发送至所述第一和第二CPU,
在操作时在所述主用***或所述辅助***中产生的第二中断经过所述第一和第二主IOAPIC控制部分和所述第二中断路径,被发送至所述第一和第二CPU。
14.一种中断控制方法,其特征在于包括:
提供容错计算机***,包括主用***和辅助***,其中,
所述主用***包括:第一CPU,与所述第一CPU相连的第一FT控制部分,与所述第一FT控制部分在电气和操作上相连的第一南桥,与所述第一FT控制部分相连的第一PCI桥,和与第一PCI桥相连的第一I/O设备组,
所述辅助***包括:第二CPU,与所述第二CPU相连的第二FT控制部分,与所述第二FT控制部分电气上相连但操作上不相连的第二南桥,与所述第二FT控制部分相连的第二PCI桥,和与第二PCI桥相连的第二I/O设备组,
所述第一FT控制部分和所述第二FT控制部分通过链接部分相连,和
所述第一FT控制部分具有第一主IOAPIC控制部分,所述第二FT控制部分具有第二主IOAPIC控制部分;
当所述主用***被设置为现用***而所述辅助***被设置为备用***并与所述主用***同步操作时,在操作***还没有运行的传统方式中,将所述第一I/O设备组的一个I/O设备发布的第一中断请求传送至所述第一主IOAPIC控制部分;
将所述第一中断请求经过所述链路部分发送至所述第二FT控制部分的所述第二主IOAPIC控制部分;
通过将所述第一中断请求经过所述第一南桥的所述PIC控制部分传送至所述第一主IOAPIC控制部分,将所述第一中断请求从所述第一IOAPIC控制部分传送至所述第一CPU;和
通过将所述第一中断请求经过所述第二南桥的所述PIC控制部分传送至所述第二主IOAPIC控制部分,将所述第一中断请求从所述第二IOAPIC控制部分传送至所述第二CPU。
15.根据权利要求14所述的中断控制方法,其特征在于:
所述第一中断请求到达所述第一主IOAPIC控制部分的定时与所述第一中断请求到达所述第二主IOAPIC控制部分的定时相同。
16.根据权利要求14或15所述的中断控制方法,其特征在于进一步包括:
在所述传统方式之后,在所述操作***已操作的扩展方式中,将所述第二南桥发布的第二中断请求从所述第一IOAPIC控制部分发送至所述第一CPU;
将所述第二中断请求从所述第二FT控制部分的所述第二IOAPIC控制部分经过所述链路发送至所述第二CPU。
17.根据权利要求16所述的中断控制方法,其特征在于进一步包括:
在所述扩展方式中,将所述第二中断请求经过所述第一主IOAPIC控制部分发送至所述第一CPU;和
将所述第二中断请求经过所述链路和所述第二主IOAPIC控制部分发送至所述第二CPU。
18.根据权利要求14或15所述的中断控制方法,其特征在于进一步包括:
在所述扩展方式中,将来自所述第二I/O设备组的一个I/O设备的第三中断请求,经过所述第二主IOAPIC控制部分发送至所述第二CPU;和
将所述第三中断请求经过所述链路和所述第一主IOAPIC控制部分发送至所述第一CPU。
19.根据权利要求14或15所述的中断控制方法,其特征在于进一步包括:
将收到的除所述第一中断请求以外的中断请求和当时所述主用***的状态数据,存储在所述第一FT控制部分的第一状态存储部分中;和
将收到的除所述第一中断请求以外的中断请求和当时所述主用***的状态数据,存储在所述第二FT控制部分的第二状态存储部分中。
20.根据权利要求19所述的中断控制方法,其特征在于进一步包括:
当所述第一CPU和所述第二CPU彼此同步操作时,如果检测出所述第一和第二状态存储部分之间存储的数据不一致,则***管理中断(SMI)处理器停止所述第一CPU和所述第二CPU的操作;和
控制所述第一和第二FT控制部分,使所述第一和第二状态存储部分的设置数据和状态数据彼此符合;和
当所述第一和第二状态存储部分之间所述设置数据和所述状态数据彼此符合时,重新起动所述第一CPU和所述第二CPU的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004369875A JP4182948B2 (ja) | 2004-12-21 | 2004-12-21 | フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法 |
JP2004369875 | 2004-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1821973A true CN1821973A (zh) | 2006-08-23 |
Family
ID=36084265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510133818.1A Pending CN1821973A (zh) | 2004-12-21 | 2005-12-21 | 容错计算机***及其中断控制方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7441150B2 (zh) |
EP (1) | EP1675006A2 (zh) |
JP (1) | JP4182948B2 (zh) |
CN (1) | CN1821973A (zh) |
AU (1) | AU2005246990A1 (zh) |
CA (1) | CA2530913A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102455951A (zh) * | 2011-07-21 | 2012-05-16 | 中标软件有限公司 | 一种虚拟机容错方法和*** |
CN104035843A (zh) * | 2013-03-06 | 2014-09-10 | 英飞凌科技股份有限公司 | 用于提高锁步核可用性的***和方法 |
CN106055501A (zh) * | 2015-04-03 | 2016-10-26 | 发那科株式会社 | 具有连接联锁总线与分支总线的桥式电路的总线*** |
CN106844113A (zh) * | 2017-03-10 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种采用冗余pch的服务器故障恢复***及方法 |
CN108563557A (zh) * | 2018-02-08 | 2018-09-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
CN115167933A (zh) * | 2022-09-08 | 2022-10-11 | 深圳市恒运昌真空技术有限公司 | 一种双处理器设备及其控制方法和处理器 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100416484C (zh) * | 2006-09-06 | 2008-09-03 | 威盛电子股份有限公司 | 具磁盘阵列控制功能的核心逻辑单元及磁盘阵列控制方法 |
CN100410866C (zh) * | 2006-09-06 | 2008-08-13 | 威盛电子股份有限公司 | 具磁盘阵列控制功能的计算机***及磁盘阵列控制方法 |
US7870417B2 (en) | 2007-04-20 | 2011-01-11 | International Business Machines Corporation | Apparatus, system, and method for adapter card failover |
KR101143684B1 (ko) * | 2007-04-20 | 2012-05-09 | 인터내셔널 비지네스 머신즈 코포레이션 | 어댑터 카드 장애극복 장치, 시스템 및 방법 |
US8103816B2 (en) * | 2008-10-28 | 2012-01-24 | Intel Corporation | Technique for communicating interrupts in a computer system |
JP2012128697A (ja) * | 2010-12-16 | 2012-07-05 | Hitachi Ltd | 情報処理装置 |
US8595546B2 (en) | 2011-10-28 | 2013-11-26 | Zettaset, Inc. | Split brain resistant failover in high availability clusters |
JP6098778B2 (ja) * | 2012-03-29 | 2017-03-22 | 日本電気株式会社 | 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム |
JP6069951B2 (ja) * | 2012-08-23 | 2017-02-01 | 日本電気株式会社 | フォールトトレラントコンピュータシステム、フォールトトレラントコンピュータシステムの起動方法およびフォールトトレラントコンピュータシステムの起動プログラム |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2407241A1 (de) * | 1974-02-15 | 1975-08-21 | Ibm Deutschland | Verfahren und anordnung zur erhoehung der verfuegbarkeit eines digitalrechners |
US4412281A (en) * | 1980-07-11 | 1983-10-25 | Raytheon Company | Distributed signal processing system |
GB8310003D0 (en) * | 1983-04-13 | 1983-05-18 | Gen Electric Co Plc | Input signal handling apparatus |
US4610013A (en) * | 1983-11-08 | 1986-09-02 | Avco Corporation | Remote multiplexer terminal with redundant central processor units |
US4979108A (en) * | 1985-12-20 | 1990-12-18 | Ag Communication Systems Corporation | Task synchronization arrangement and method for remote duplex processors |
EP0306211A3 (en) * | 1987-09-04 | 1990-09-26 | Digital Equipment Corporation | Synchronized twin computer system |
US5204952A (en) * | 1988-07-18 | 1993-04-20 | Northern Telecom Limited | Duplex processor arrangement for a switching system |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
NL193573C (nl) * | 1989-04-04 | 2000-02-02 | Yokogawa Electric Corp | Duplex-computerstelsel. |
DE58908047D1 (de) * | 1989-04-25 | 1994-08-18 | Siemens Ag | Verfahren zur Synchronisation von Datenverarbeitungsanlagen. |
US5157663A (en) * | 1990-09-24 | 1992-10-20 | Novell, Inc. | Fault tolerant computer system |
US5689689A (en) * | 1992-12-17 | 1997-11-18 | Tandem Computers Incorporated | Clock circuits for synchronized processor systems having clock generator circuit with a voltage control oscillator producing a clock signal synchronous with a master clock signal |
US5384769A (en) * | 1993-03-19 | 1995-01-24 | Apple Computer, Inc. | Method and apparatus for a bus transceiver incorporating a high speed binary data transfer mode with a ternary control transfer mode having a full duplex, dominant logic transmission scheme |
JP3047275B2 (ja) * | 1993-06-11 | 2000-05-29 | 株式会社日立製作所 | バックアップ切り換え制御方法 |
AU680974B2 (en) * | 1993-12-01 | 1997-08-14 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
JPH07262034A (ja) * | 1994-03-18 | 1995-10-13 | Fujitsu Ltd | データ引き継ぎシステム |
EP0690597A1 (en) * | 1994-06-30 | 1996-01-03 | Hughes Aircraft Company | A system utilizing built-in redundancy switchover control |
JP3132744B2 (ja) * | 1995-05-24 | 2001-02-05 | 株式会社日立製作所 | 二重化cpu保守交換時の動作一致検証方式 |
JPH09251443A (ja) | 1996-03-18 | 1997-09-22 | Hitachi Ltd | 情報処理システムのプロセッサ障害回復処理方法 |
US6141769A (en) * | 1996-05-16 | 2000-10-31 | Resilience Corporation | Triple modular redundant computer system and associated method |
JPH10150479A (ja) * | 1996-11-19 | 1998-06-02 | Fujitsu Ltd | 二重化装置の障害時における誤動作防止装置 |
US5951669A (en) * | 1996-12-27 | 1999-09-14 | Apple Computer, Inc. | Method and apparatus for serialized interrupt transmission |
JPH10240557A (ja) * | 1997-02-27 | 1998-09-11 | Mitsubishi Electric Corp | 待機冗長化システム |
JP2001523855A (ja) * | 1997-11-14 | 2001-11-27 | マラソン テクノロジーズ コーポレイション | 故障回復/耐故障計算機 |
US6243829B1 (en) * | 1998-05-27 | 2001-06-05 | Hewlett-Packard Company | Memory controller supporting redundant synchronous memories |
DE19832060C2 (de) * | 1998-07-16 | 2000-07-06 | Siemens Ag | Doppelbare Prozessoreinrichtung |
DE19836347C2 (de) * | 1998-08-11 | 2001-11-15 | Ericsson Telefon Ab L M | Fehlertolerantes Computersystem |
US6948092B2 (en) * | 1998-12-10 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | System recovery from errors for processor and associated components |
KR100279929B1 (ko) * | 1998-12-24 | 2001-02-01 | 서평원 | 교환기에서의 이중화 프로세서_ |
US6327670B1 (en) * | 1999-01-22 | 2001-12-04 | Lucent Technologies Inc. | Duplex processor with an update bus and method for operating the update bus |
US6715099B1 (en) * | 1999-06-02 | 2004-03-30 | Nortel Networks Limited | High-availability architecture using high-speed pipes |
US6510529B1 (en) * | 1999-09-15 | 2003-01-21 | I-Bus | Standby SBC backplate |
US6578158B1 (en) * | 1999-10-28 | 2003-06-10 | International Business Machines Corporation | Method and apparatus for providing a raid controller having transparent failover and failback |
US6687851B1 (en) * | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
JP4054509B2 (ja) * | 2000-04-19 | 2008-02-27 | 株式会社東芝 | フィールド機器制御システムおよびコンピュータが読取り可能な記憶媒体 |
KR100709888B1 (ko) * | 2000-08-04 | 2007-04-20 | 엘지노텔 주식회사 | 웜 스탠바이 이중화 장치의 구현방법 |
GB2366012B (en) * | 2000-08-14 | 2002-08-14 | Sun Microsystems Inc | A computer system |
US6708285B2 (en) * | 2001-03-15 | 2004-03-16 | Hewlett-Packard Development Company, L.P. | Redundant controller data storage system having system and method for handling controller resets |
US7065672B2 (en) * | 2001-03-28 | 2006-06-20 | Stratus Technologies Bermuda Ltd. | Apparatus and methods for fault-tolerant computing using a switching fabric |
US6978398B2 (en) * | 2001-08-15 | 2005-12-20 | International Business Machines Corporation | Method and system for proactively reducing the outage time of a computer system |
US6918062B2 (en) * | 2001-09-28 | 2005-07-12 | Intel Corporation | System and method to implement a cost-effective remote system management mechanism using a serial communication controller and interrupts |
US7146448B2 (en) * | 2001-09-28 | 2006-12-05 | Dot Hill Systems Corporation | Apparatus and method for adopting an orphan I/O port in a redundant storage controller |
US6874103B2 (en) * | 2001-11-13 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | Adapter-based recovery server option |
GB0206604D0 (en) * | 2002-03-20 | 2002-05-01 | Global Continuity Plc | Improvements relating to overcoming data processing failures |
US7003692B1 (en) * | 2002-05-24 | 2006-02-21 | Cisco Technology, Inc. | Dynamic configuration synchronization in support of a “hot” standby stateful switchover |
JP2004046599A (ja) * | 2002-07-12 | 2004-02-12 | Nec Corp | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
US7178058B2 (en) * | 2002-08-30 | 2007-02-13 | Nec Corporation | Fault tolerant computer and transaction synchronization control method |
US7197664B2 (en) * | 2002-10-28 | 2007-03-27 | Intel Corporation | Stateless redundancy in a network device |
US7194652B2 (en) * | 2002-10-29 | 2007-03-20 | Brocade Communications Systems, Inc. | High availability synchronization architecture |
US7028218B2 (en) * | 2002-12-02 | 2006-04-11 | Emc Corporation | Redundant multi-processor and logical processor configuration for a file server |
US7181642B1 (en) * | 2003-01-17 | 2007-02-20 | Unisys Corporation | Method for distributing the processing among multiple synchronization paths in a computer system utilizing separate servers for redundancy |
US7206963B2 (en) * | 2003-06-12 | 2007-04-17 | Sun Microsystems, Inc. | System and method for providing switch redundancy between two server systems |
JP4490745B2 (ja) * | 2004-06-29 | 2010-06-30 | 株式会社日立製作所 | ホットスタンバイシステム |
US7366948B2 (en) * | 2004-10-25 | 2008-04-29 | Hewlett-Packard Development Company, L.P. | System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor |
JP4289293B2 (ja) * | 2004-12-20 | 2009-07-01 | 日本電気株式会社 | 起動制御方法、二重化プラットフォームシステム及び情報処理装置 |
JP2006178636A (ja) * | 2004-12-21 | 2006-07-06 | Nec Corp | フォールトトレラントコンピュータ、およびその制御方法 |
US7669073B2 (en) * | 2005-08-19 | 2010-02-23 | Stratus Technologies Bermuda Ltd. | Systems and methods for split mode operation of fault-tolerant computer systems |
-
2004
- 2004-12-21 JP JP2004369875A patent/JP4182948B2/ja not_active Expired - Fee Related
-
2005
- 2005-12-20 CA CA002530913A patent/CA2530913A1/en not_active Abandoned
- 2005-12-20 US US11/311,404 patent/US7441150B2/en not_active Expired - Fee Related
- 2005-12-21 EP EP05112572A patent/EP1675006A2/en not_active Withdrawn
- 2005-12-21 AU AU2005246990A patent/AU2005246990A1/en not_active Abandoned
- 2005-12-21 CN CN200510133818.1A patent/CN1821973A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102455951A (zh) * | 2011-07-21 | 2012-05-16 | 中标软件有限公司 | 一种虚拟机容错方法和*** |
CN104035843A (zh) * | 2013-03-06 | 2014-09-10 | 英飞凌科技股份有限公司 | 用于提高锁步核可用性的***和方法 |
CN104035843B (zh) * | 2013-03-06 | 2016-09-14 | 英飞凌科技股份有限公司 | 用于提高锁步核可用性的***和方法 |
CN106055501A (zh) * | 2015-04-03 | 2016-10-26 | 发那科株式会社 | 具有连接联锁总线与分支总线的桥式电路的总线*** |
CN106055501B (zh) * | 2015-04-03 | 2018-10-23 | 发那科株式会社 | 具有连接联锁总线与分支总线的桥式电路的总线*** |
CN106844113A (zh) * | 2017-03-10 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种采用冗余pch的服务器故障恢复***及方法 |
CN106844113B (zh) * | 2017-03-10 | 2020-09-29 | 苏州浪潮智能科技有限公司 | 一种采用冗余pch的服务器故障恢复***及方法 |
CN108563557A (zh) * | 2018-02-08 | 2018-09-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
CN108563557B (zh) * | 2018-02-08 | 2020-01-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
CN115167933A (zh) * | 2022-09-08 | 2022-10-11 | 深圳市恒运昌真空技术有限公司 | 一种双处理器设备及其控制方法和处理器 |
CN115167933B (zh) * | 2022-09-08 | 2022-12-02 | 深圳市恒运昌真空技术有限公司 | 一种双处理器设备及其控制方法和处理器 |
Also Published As
Publication number | Publication date |
---|---|
JP4182948B2 (ja) | 2008-11-19 |
AU2005246990A1 (en) | 2006-07-06 |
US7441150B2 (en) | 2008-10-21 |
CA2530913A1 (en) | 2006-06-21 |
JP2006178659A (ja) | 2006-07-06 |
US20060150005A1 (en) | 2006-07-06 |
EP1675006A2 (en) | 2006-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1821973A (zh) | 容错计算机***及其中断控制方法 | |
US7426657B2 (en) | System and method for predictive processor failure recovery | |
US7251746B2 (en) | Autonomous fail-over to hot-spare processor using SMI | |
CN106776159B (zh) | 具有故障转移的快速***元件互连网络***与操作方法 | |
US8745441B2 (en) | Processor replacement | |
CN1991783A (zh) | 检测以及校正挂起i2c总线的i2c总线监视器和方法 | |
US8990632B2 (en) | System for monitoring state information in a multiplex system | |
CN1729456A (zh) | 高可靠性处理器的片上机制 | |
CN104137077B (zh) | 处理器*** | |
JP2014026567A (ja) | 監視装置、情報処理装置、及び監視方法 | |
US10379931B2 (en) | Computer system | |
US6449729B1 (en) | Computer system for dynamically scaling busses during operation | |
JPH0934809A (ja) | 高信頼化コンピュータシステム | |
US20040193735A1 (en) | Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processor units | |
JP2003132005A (ja) | 稼働中のコンピュータシステムのコアi/0ハードウェアを取り外し及び交換するためのシステム | |
US9128838B2 (en) | System and method of high integrity DMA operation | |
US20060195849A1 (en) | Method for synchronizing events, particularly for processors of fault-tolerant systems | |
CN1158614C (zh) | 高集成度热主备工控主板 | |
CN1547088A (zh) | 中断信号控制方法 | |
WO2014068774A1 (ja) | 情報処理装置、演算処理装置、及びカウンタ同期方法 | |
JP2007094609A (ja) | Ioカード保守が容易なコンピュータシステム | |
Blakeney et al. | An application-oriented multiprocessing system, II: Design characteristics of the 9020 system | |
JP2001175545A (ja) | サーバシステムおよび障害診断方法ならびに記録媒体 | |
JPH11249714A (ja) | プログラマブルコントローラ | |
JP2016151907A (ja) | コアi/oフェールオーバー制御システムおよびコアi/oフェールオーバー制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |