JP2004110803A - Fault tolerant computer, its transaction synchronous control method and program - Google Patents

Fault tolerant computer, its transaction synchronous control method and program Download PDF

Info

Publication number
JP2004110803A
JP2004110803A JP2003297389A JP2003297389A JP2004110803A JP 2004110803 A JP2004110803 A JP 2004110803A JP 2003297389 A JP2003297389 A JP 2003297389A JP 2003297389 A JP2003297389 A JP 2003297389A JP 2004110803 A JP2004110803 A JP 2004110803A
Authority
JP
Japan
Prior art keywords
transaction
fault
tolerant computer
transactions
match
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.)
Granted
Application number
JP2003297389A
Other languages
Japanese (ja)
Other versions
JP3821806B2 (en
Inventor
Katsumi Tsukahara
塚原 克美
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2003297389A priority Critical patent/JP3821806B2/en
Publication of JP2004110803A publication Critical patent/JP2004110803A/en
Application granted granted Critical
Publication of JP3821806B2 publication Critical patent/JP3821806B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To propose a fault tolerant computer and a transaction synchronous control program for tolerating out-of-step of a processor with a fixed range. <P>SOLUTION: In the fault tolerant computer 10 in a lock step system which processes the same instruction column by performing clock synchronization by a plurality of CPU modules 20, 30, regarding IO transaction to be issued from the plurality of CPU modules 20, 30, mutual coincidence is checked within fixed time by every device controller of IO modules 50, 60 and IO transaction in which the coincidence is obtained is regarded as non out-of-step. <P>COPYRIGHT: (C)2004,JPO

Description

 本発明は、複数のCPUモジュールで、同じ命令列をクロック同期させて全く同じに処理するロックステップ方式のフォールトトレラントコンピュータ(fault tolerant computer)に関し、特に、複数のCPUモジュールからIOモジュールに対して発行されるIOトランザクションの時間的なずれを許容するフォールトトレラントコンピュータ、そのトランザクション同期制御方法及びトランザクション同期制御プログラムに関する。 The present invention relates to a lock-step type fault tolerant computer in which a plurality of CPU modules process the same instruction sequence in exactly the same way by synchronizing clocks, and in particular, issues a plurality of CPU modules to an IO module. The present invention relates to a fault-tolerant computer that allows a time lag between IO transactions to be performed, a transaction synchronization control method thereof, and a transaction synchronization control program.

 従来のハードウェアを多重化し同一クロックで同期するフォールトトレラントコンピュータは、複数のCPUモジュールと複数のIOモジュールを有し、各IOモジュールは複数のCPUモジュールの動作が同期しているかどうかをチェックする比較装置をそれぞれ有しており、同時にIOトランザクションを入力した場合にCPUモジュールが同期していると判断してIO処理を行い、各CPUモジュールが故障しない限り同期していることを保証していた。 A fault-tolerant computer that multiplexes conventional hardware and synchronizes with the same clock has a plurality of CPU modules and a plurality of IO modules, and each IO module checks whether the operations of the plurality of CPU modules are synchronized. Each device has a device, and when an IO transaction is input at the same time, it is determined that the CPU modules are synchronized, and an IO process is performed to guarantee that the CPU modules are synchronized unless a failure occurs.

 しかし、近年のプロセッサの高速化に伴い、各CPUモジュールに搭載されるプロセッサは、同一のクロックを入力しても完全に同期しない同期外れが発生し、これにより各IOモジュールで複数のCPUモジュールから発行されるIOトランザクション相互に時間的な差分が発生する場合がある。 However, with the recent increase in the speed of processors, out-of-synchronization occurs in which the processors mounted on each CPU module are not completely synchronized even when the same clock is input. There may be a time difference between issued IO transactions.

 このようなCPUモジュールの障害に起因しない同期外れの現象に関しては、CPUモジュールでのハードウェア動作に差異があるものの、プログラム上は同じ動作がなされていることが分かっている。しかし、従来のフォールトトレラントコンピュータでは、障害が原因の同期外れでないにも関わらず、CPUモジュールの縮退状態や再組み込みの動作が発生してしまうことがある。 Regarding the out-of-synchronization phenomenon that is not caused by the failure of the CPU module, it is known that the same operation is performed in the program, although there is a difference in the hardware operation in the CPU module. However, in a conventional fault-tolerant computer, a degraded state of the CPU module or an operation of re-installation may occur even though synchronization is not lost due to a failure.

 上述したように、従来のフォールトトレラントコンピュータでは、各CPUモジュールの同期外れにより、各IOモジュールで複数のCPUモジュールから発行されるIOトランザクション相互に時間的な差分が発生した場合、障害が原因の同期外れでないにも関わらず、CPUモジュールの縮退状態や再組み込みの動作が発生してしまうという問題があった。このことは、またフォールトトレラントコンピュータのMTBF(Mean Time Between Failure:コンピュータシステムが故障してから次に故障するまでの平均時間)を小さくする原因となり、フォールトトレラントコンピュータ本来の利点が損なわれてしまう結果ともなる。 As described above, in a conventional fault-tolerant computer, when a time difference occurs between IO transactions issued from a plurality of CPU modules in each IO module due to loss of synchronization of each CPU module, synchronization caused by a failure occurs. There is a problem in that the CPU module may be degenerated or re-integrated even though it does not come off. This also reduces the Mean Time Between Failure (MTBF) of a fault-tolerant computer, which results in a loss of the inherent advantages of the fault-tolerant computer. Also.

 なお、運用系プロセッサと待機系プロセッサ間で、プロセッサ間のバスのデータ転送開始及び終了の信号を用いて、待機系プロセッサの処理の遅れを待つことにより、短時間で両者の同期をとるといった(例えば、特許文献1参照)、複数のプロセッサ間の同期外れを解決するための従来技術については種々提案されているが、何れもIOコントローラ毎のIOトランザクションの時間的なずれを許容することを特徴とする本発明とは相違する。 It should be noted that between the active processor and the standby processor, by using the data transfer start and end signals of the bus between the processors and waiting for the processing delay of the standby processor, the two can be synchronized in a short time ( For example, Japanese Patent Application Laid-Open No. H10-157, and various conventional techniques for solving the loss of synchronization between a plurality of processors have been proposed, but all of them are characterized by allowing a time lag of an IO transaction for each IO controller. Is different from the present invention.

特開平11−338832号公報JP-A-11-338832

 本発明の課題は、時間的にずれてIOトランザクションが発行されても、論理的なシーケンスの一致が得られれば障害が原因の同期外れではないとみなすことにより、障害が原因の同期外れでないにも関わらずCPUモジュールの縮退や再組み込み動作が発生してしまうのを極力抑え、一定範囲のプロセッサの同期外れを許容することができるフォールトトレラントコンピュータ及びトランザクション同期制御方法を提案することにある。 SUMMARY OF THE INVENTION An object of the present invention is to determine that, even if an IO transaction is issued with a time lag, if a logical sequence match is obtained, synchronization is not caused by a failure. Nevertheless, an object of the present invention is to propose a fault-tolerant computer and a transaction synchronization control method capable of minimizing the occurrence of degeneration or re-incorporation of a CPU module and allowing a certain range of processor out-of-synchronization.

 本発明のフォールトトレラントコンピュータは、同じ命令列をクロック同期して処理する複数のCPUモジュールと、デバイスに対し入出力制御処理を実行する複数のデバイスコントローラを備えた複数のIOモジュールと、前記デバイスコントローラ毎に、前記複数のCPUモジュールの各々から発行されるIOトランザクションのシーケンスの一致をチェックし、一致が得られた場合は同期外れではないとみなすトランザクション同期制御部と、を有することを特徴とする。 A fault tolerant computer according to the present invention comprises: a plurality of CPU modules for processing the same instruction sequence in synchronization with a clock; a plurality of IO modules including a plurality of device controllers for executing input / output control processing on devices; And a transaction synchronization control unit for checking the consistency of the sequence of IO transactions issued from each of the plurality of CPU modules and deeming that the synchronization is not out of synchronization if a match is obtained. .

 請求項2の本発明のフォールトトレラントコンピュータは、前記トランザクション同期制御部が、一定時間を計るタイマ手段と、前記デバイスコントローラ毎に、複数のCPUモジュールから発行される前記IOトランザクションのシーケンスの一致を、前記一定時間待ち合せて判別する比較手段と、を有することを特徴とする。 In the fault tolerant computer according to the second aspect of the present invention, the transaction synchronization control unit may determine whether a sequence of the IO transaction issued from a plurality of CPU modules is identical for each of the device controllers with a timer means for measuring a predetermined time. And comparing means for judging while waiting for the predetermined time.

 請求項3の本発明のフォールトトレラントコンピュータは、前記トランザクション同期制御部が、前記シーケンスの一致が得られたタイミングで、前記IOトランザクションを前記デバイスコントローラに出力する出力制御部を有することを特徴とする。 The fault tolerant computer according to the third aspect of the present invention is characterized in that the transaction synchronization control unit has an output control unit that outputs the IO transaction to the device controller at a timing when the sequence matches are obtained. .

 請求項4の本発明のフォールトトレラントコンピュータは、前記出力制御部が、各CPUモジュールからのIOトランザクションの一致が得られたタイミングで、一致が得られたIOトランザクションを1つづつ、前記デバイスコントローラに出力することを特徴とする。 In the fault tolerant computer according to the fourth aspect of the present invention, the output controller may be configured to send the matched IO transactions one by one to the device controller at a timing when the matched IO transactions from the respective CPU modules are obtained. It is characterized by outputting.

 請求項5の本発明のフォールトトレラントコンピュータは、前記トランザクション同期制御部は、前記複数のCPUモジュールから発行される前記IOトランザクションを格納する複数の格納手段と、該格納手段に格納された前記IOトランザクションのシーケンスを互いに比較する比較手段と、前記一定時間を計るタイマ手段とを備えることを特徴とする。 6. The fault tolerant computer according to claim 5, wherein the transaction synchronization control unit stores a plurality of the IO transactions issued from the plurality of CPU modules, and the IO transaction stored in the storage unit. And a timer means for measuring the predetermined time.

 請求項6の本発明によるフォールトトレラントコンピュータは、前記トランザクション同期制御部が、前記複数のCPUモジュールから発行される前記IOトランザクションを格納する複数の格納手段を備えることを特徴とする。 According to a sixth aspect of the present invention, in the fault tolerant computer, the transaction synchronization control unit includes a plurality of storage units for storing the IO transactions issued from the plurality of CPU modules.

 請求項7の本発明によるフォールトトレラントコンピュータは、前記トランザクション同期制御部が、前記比較手段に入力するIOトランザクションを前記複数の格納手段から入力するか、前記CPUモジュールから入力するかを選択する選択回路を備えることを特徴とする。 8. The fault tolerant computer according to claim 7, wherein the transaction synchronization control unit selects whether the IO transaction to be input to the comparison unit is input from the plurality of storage units or the CPU module. It is characterized by having.

 本発明によれば、複数のCPUモジュールのプロセッサに同期外れが発生しIOモジュールのIOコントローラに対して同じタイミングでIOトランザクションが発行されなくても、IOコントローラ毎にIOトランザクションのシーケンス一致をチェックし、一定時間内にシーケンスの一致が得られれば障害が原因の同期外れではないとみなして、IOトランザクションをIOコントローラに出力するようにしたので、障害が原因の同期外れでないにも関わらずCPUモジュールの縮退や再組み込み動作が発生してしまうのを極力抑え一定範囲のプロセッサの同期外れを許容することができる。 According to the present invention, even if an out-of-synchronization occurs in a processor of a plurality of CPU modules and an IO transaction is not issued to an IO controller of an IO module at the same timing, a sequence match of an IO transaction is checked for each IO controller. If a sequence match is obtained within a certain period of time, it is considered that synchronization has not been lost due to a failure, and the IO transaction is output to the IO controller. The occurrence of the degeneration and the re-integration operation of the processor can be minimized, and the processor can be out of synchronization within a certain range.

 以下、本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明の実施の形態によるフォールトトレラントコンピュータの構成を示すブロック図である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a fault-tolerant computer according to an embodiment of the present invention.

 図1を参照すると、本実施の形態によるフォールトトレラントコンピュータ10は、複数のCPUモジュール20、30を備えている。各CPUモジュール20、30はそれぞれクロック同期して同じ命令列を処理する。本実施の形態によるフォールトトレラントコンピュータ10は、各CPUモジュールの処理結果を比較し、1個のCPUモジュールで故障が発生しても、残りのCPUモジュールにより処理を継続することができるようになっている。このCPUモジュール20、30は、それぞれ1以上のプロセッサと、プロセッサ外部バスと、メモリを有している。なお、図1には、本実施の形態の特徴的な構成のみを記載し、他の一般的な構成については記載を省略してある。 Referring to FIG. 1, the fault tolerant computer 10 according to the present embodiment includes a plurality of CPU modules 20 and 30. Each of the CPU modules 20 and 30 processes the same instruction sequence in synchronization with the clock. The fault tolerant computer 10 according to the present embodiment compares the processing results of the respective CPU modules, so that even if a failure occurs in one CPU module, the processing can be continued by the remaining CPU modules. I have. Each of the CPU modules 20 and 30 has one or more processors, a processor external bus, and a memory. In FIG. 1, only the characteristic configuration of the present embodiment is described, and the description of other general configurations is omitted.

 また、フォールトトレラントコンピュータ10は、第1のIOモジュール50と第2のIOモジュール60を備えている。第1のIOモジュール50と第2のIOモジュール60がそれぞれ上記CPUモジュール20、30の双方に接続されている。 The fault tolerant computer 10 includes a first IO module 50 and a second IO module 60. A first IO module 50 and a second IO module 60 are connected to both the CPU modules 20 and 30, respectively.

 この第1及び第2のCPUモジュール20、30は、互いに同じクロックで動作し、第1及び第2のIOモジュール50、60に対してそれぞれIOトランザクションの発行を行なう。 The first and second CPU modules 20 and 30 operate at the same clock and issue IO transactions to the first and second IO modules 50 and 60, respectively.

 第1及び第2のIOモジュール50、60は、それぞれ2つのIOコントローラ52A、52Bと62A、62Bを備えている。また本実施形態の第1及び第2のIOモジュール50、60は、IOコントローラ毎にトランザクション同期制御部51A、51Bと61A、61Bを備えて構成される。 The first and second IO modules 50 and 60 include two IO controllers 52A and 52B and 62A and 62B, respectively. In addition, the first and second IO modules 50 and 60 of the present embodiment are configured to include the transaction synchronization control units 51A and 51B and 61A and 61B for each IO controller.

 IOコントローラ52A、52Bと62A、62Bには、例えばネットワークコントローラやディスクコントローラ等を含むデバイスが接続される。IOコントローラ52A、52Bと62A、62Bは、これらのデバイスに対してIOトランザクションに従って入出力制御処理を実行する。 Devices that include, for example, a network controller and a disk controller are connected to the IO controllers 52A and 52B and 62A and 62B. The IO controllers 52A and 52B and 62A and 62B execute input / output control processing on these devices according to IO transactions.

 トランザクション同期制御部51A、51B、61A、61Bは、第1及び第2のCPUモジュール20、30からのIOトランザクションについて、そのシーケンスが一致しているかどうかを、対応するIOコントローラ毎にチェックする。ここでシーケンスとは、IOトランザクションの複数まとまった一連の動作を意味している。本実施形態のトランザクション同期制御部51A、51B、61A、61Bは、時間的にずれが発生しても同じIOトランザクションが異なるタイミングで入力される場合を許容する。すなわち、IOトランザクションが異なるタイミングで入力されても予め設定した一定時間だけ待ち合わせ、一定時間内に入力されたIOトランザクションが一致すればシーケンスが一致したものとみなす。なお、一定時間内に一方のCPUモジュールからしかIOトランザクションが入力されなければ、一致しないとみなす。また、同じIOトランザクションが入力されているが、入力された順序が異なる場合も一致しないとみなす。トランザクション同期制御部51A、51B、61A、61Bは、シーケンスが一致したタイミングでIOトランザクションをデバイスに対応したIOコントローラ52A、52B、62A、62Bに対して出力する。 (4) The transaction synchronization control units 51A, 51B, 61A, and 61B check whether the sequences of the IO transactions from the first and second CPU modules 20 and 30 match each other for each corresponding IO controller. Here, the sequence means a series of operations of a plurality of IO transactions. The transaction synchronization control units 51A, 51B, 61A, and 61B of the present embodiment allow the same IO transaction to be input at different timings even if a time lag occurs. That is, even if an IO transaction is input at a different timing, it waits for a predetermined period of time, and if the input IO transactions match within the predetermined time, it is considered that the sequences match. If an IO transaction is input from only one of the CPU modules within a certain time, it is determined that they do not match. Also, when the same IO transaction is input but the input order is different, it is considered that they do not match. The transaction synchronization control units 51A, 51B, 61A, 61B output IO transactions to the IO controllers 52A, 52B, 62A, 62B corresponding to the devices at the timing when the sequences match.

 図4に、トランザクション同期制御部51Aの構成例を示す。ここでは、便宜上トランザクション同期制御部51Aについて示しているが、その他のトランザクション同期制御部についても全く同じ構成である。 FIG. 4 shows a configuration example of the transaction synchronization control unit 51A. Here, the transaction synchronization control unit 51A is shown for convenience, but the other transaction synchronization control units have exactly the same configuration.

 図示のように、トランザクション同期制御部51Aは、第1のCPUモジュール20と第2のCPUモジュール30からIOコントローラ52Aに対して発行されたIOトランザクションをそれぞれ格納する第1のトランザクション格納手段81−1及び第2のトランザクション格納手段81−2と、第1及び第2のトランザクション格納手段81−1、81−2双方のIOトランザクションのシーケンスの一致を比較して判別する比較手段82と、一定時間の経過を計るタイマ手段83と、比較手段82によるIOトランザクションのシーケンスの一致が得られたタイミングでIOトランザクションをIOコントローラに対して出力する出力制御手段84を有する。出力制御手段84は、タイマ手段83による一定時間経過してもIOトランザクションのシーケンスの一致が得られない場合には、障害監視部等に障害を通知する。なお、タイマ手段83により待ち合わせのために設定される時間は、例えば、PCI−BUSのIOのハードウェアシーケンスの10回分程度、長くて100〜1000回分程度に設定される。例えば1回分が約1μ秒程度であれば、10μ秒程度、長くて100μ秒から1m秒程度である。 As illustrated, the transaction synchronization control unit 51A includes a first transaction storage unit 81-1 that stores IO transactions issued from the first CPU module 20 and the second CPU module 30 to the IO controller 52A. A second transaction storage unit 81-2, a comparison unit 82 for comparing and discriminating the coincidence of the IO transaction sequences of both the first and second transaction storage units 81-1 and 81-2, It has timer means 83 for measuring the progress, and output control means 84 for outputting the IO transaction to the IO controller at the timing when the sequence of the IO transaction is obtained by the comparing means 82. The output control unit 84 notifies the failure monitoring unit or the like of the failure when the sequence of the IO transaction cannot be obtained even after a certain period of time has elapsed by the timer unit 83. The time set for the waiting by the timer unit 83 is set to, for example, about 10 times of the hardware sequence of the IO of the PCI-BUS, and at most about 100 to 1000 times. For example, if one time is about 1 μsec, it is about 10 μsec, and at most about 100 μsec to 1 msec.

 なお、図4に示したトランザクション同期制御部の構成例については、あくまでその一構成例を示すものであり、図示の構成に限定されるものではない。 Note that the configuration example of the transaction synchronization control unit shown in FIG. 4 is merely an example of the configuration, and is not limited to the illustrated configuration.

 図5は、トランザクション同期制御部の動作内容を説明するフローチャートである。まず、第1のCPUモジュール20と第2のCPUモジュール30からデバイスの宛先を示すコマンドを含むIOトランザクションを入力しこのコマンドを見て自分のIOトランザクションかどうか判断し必要なものだけそれぞれ対応するトランザクション格納手段に格納し(ステップ501)、第1及び第2のCPUモジュールのIOトランザクションのシーケンスが互いに一致するかどうかを判別する(ステップ502)。ここで、トランザクション格納手段からそれぞれ格納された順に1つずつIOトランザクションが比較手段82に入力され比較され、対応するIOトランザクションが一致すると、トランザクション格納手段に格納された次の対応するIOトランザクション同士が比較手段82に入力され比較されるという処理が繰り返される。 FIG. 5 is a flowchart illustrating the operation of the transaction synchronization control unit. First, an IO transaction including a command indicating a destination of a device is input from the first CPU module 20 and the second CPU module 30, and by seeing this command, it is determined whether or not the own IO transaction is performed. It is stored in the storage means (step 501), and it is determined whether or not the IO transaction sequences of the first and second CPU modules match each other (step 502). Here, one IO transaction is input to the comparing means 82 one by one in the order of storage from the transaction storing means and compared. If the corresponding IO transactions match, the next corresponding IO transaction stored in the transaction storing means is compared with each other. The process of being input to the comparing means 82 and being compared is repeated.

 すべてのIOトランザクションが一致すればシーケンスが一致しているとみなし、入力したIOトランザクションをIOコントローラへ出力する(ステップ503)。 (4) If all the IO transactions match, it is considered that the sequences match, and the input IO transaction is output to the IO controller (step 503).

 ステップ502において一方のCPUモジュールからしかIOトランザクションが届いておらずIOトランザクションのシーケンスが一致していない場合には、一方のCPUモジュールからIOトランザクションが届いてから一定時間が経過しているかを判別する(ステップ504)。一定時間が経過していなければIOトランザクションの入力を待ち合せる。すなわちステップ501にもどり入力されたIOトランザクションのシーケンスを再度比較する処理を一定時間が経過するまで繰り返す。一定時間が経過していれば、フォールトトレラントコンピュータ内に備えられている障害監視部等に障害の発生を通知する。一定時間が経過する前に他方のCPUモジュールからIOトランザクションが届き、シーケンスが一致すればステップ503で入力したIOトランザクションをIOコントローラへ出力する。なお、ステップ502において両方のCPUモジュールからIOトランザクションが届いているが届いたシーケンスが一致していない場合、ステップ504,501,502を繰り返し、一定時間経過後に障害監視部等に障害の発生を通知することになる。 In step 502, when the IO transaction has arrived from only one CPU module and the sequence of the IO transaction does not match, it is determined whether a certain time has elapsed since the IO transaction arrived from one CPU module. (Step 504). If the fixed time has not passed, the input of the IO transaction is waited for. That is, returning to step 501, the process of comparing the input IO transaction sequence again is repeated until a certain time has elapsed. If the predetermined time has elapsed, the occurrence of a fault is notified to a fault monitoring unit provided in the fault-tolerant computer. An IO transaction arrives from the other CPU module before the predetermined time elapses, and if the sequences match, the IO transaction input in step 503 is output to the IO controller. In step 502, if the IO transactions have arrived from both CPU modules but the arrival sequences do not match, steps 504, 501 and 502 are repeated, and after a certain period of time, the failure monitoring unit is notified of the occurrence of the failure. Will do.

 次いで、図1、図2、図3を参照して、第1及び第2のCPUモジュール20、30からどのようにIOトランザクションが発行され、第1及び第2のIOモジュール50、60でどのように一致チェックが行なわれ、IOトランザクションが処理されるかについて具体例をあげて説明する。 Next, referring to FIGS. 1, 2 and 3, how the first and second CPU modules 20 and 30 issue IO transactions, and how the first and second IO modules 50 and 60 issue IO transactions. A description will be given of a specific example as to whether a match check is performed and an IO transaction is processed.

 ここで、プロセッサ同期外れの場合、第1のCPUモジュール20から第1のIOモジュール50へのIOトランザクションが、IOトランザクション(IO−A1)、IOトランザクション(IO−B1)、IOトランザクション(IO−A2)、IOトランザクション(IO−B2)の順で発行されたとする。 Here, in the case of the processor out of synchronization, the IO transaction from the first CPU module 20 to the first IO module 50 includes an IO transaction (IO-A1), an IO transaction (IO-B1), and an IO transaction (IO-A2). ), And IO transactions (IO-B2).

 なお、IOトランザクション(IO−A1)、(IO−A2)はIOコントローラ52Aに対して発行され、IOトランザクション(IO−B1)、(IO−B2)はIOコントローラ52Bに対して発行されるIOトランザクションであるとする。 The IO transactions (IO-A1) and (IO-A2) are issued to the IO controller 52A, and the IO transactions (IO-B1) and (IO-B2) are IO transactions issued to the IO controller 52B. And

 一方、第2のCPUモジュール30から第1のIOモジュール50へのIOトランザクションについては、IOトランザクション(IO−A1)、IOトランザクション(IO−A2)、IOトランザクション(IO−B1)、IOトランザクション(IO−B2)の順番で発行されたとする。 On the other hand, regarding the IO transaction from the second CPU module 30 to the first IO module 50, the IO transaction (IO-A1), the IO transaction (IO-A2), the IO transaction (IO-B1), and the IO transaction (IO-IO) -B2).

 このIOトランザクションの順番を比較すると、図2に示すように、第1及び第2のCPUモジュール20、30から第1及び第2のIOモジュール50、60に対して発行されるIOトランザクションの中で、IOトランザクション(IO−B1)と(IO−A2)の順番が互いに逆となり、2つのIOトランザクションが不一致となっていることが分かる。 Comparing the order of the IO transactions, as shown in FIG. 2, among the IO transactions issued from the first and second CPU modules 20 and 30 to the first and second IO modules 50 and 60, It can be seen that the order of the IO transactions (IO-B1) and (IO-A2) is opposite to each other, and the two IO transactions do not match.

 第1のIOモジュール50は、通常は同じタイミングでIOトランザクションに差分があるため、通常であればどちらかのCPUモジュールを縮退もしくは再組み込みする動作が行われる状況であっても、IOコントローラ毎にIOトランザクションのシーケンス(順序)をチェックするためのトランザクション同期制御部51A、51Bを備えることで、タイミングがずれても同じIOトランザクションと認識して処理を継続する。 Since the first IO module 50 normally has a difference in the IO transaction at the same timing, even if the operation of degenerating or re-incorporating one of the CPU modules is normally performed, By providing the transaction synchronization control units 51A and 51B for checking the sequence (order) of the IO transaction, even if the timing is shifted, it recognizes the same IO transaction and continues the processing.

 例えば、IOコントローラ52Aに対するIOトランザクションをIO−Axとし、IOコントローラ52Bに対するIOトランザクションをIO−Bxとすると、図3に示すように、トランザクション同期制御部51Aで見ると、第1及び第2のCPUモジュールから発行されるIOトランザクションは(IO−A1)−(IO−A2)となって共に一致し、トランザクション同期制御部51Bで見ても第1及び第2のCPUモジュールから発行されるIOトランザクションは(IO−B1)−(IO−B2)で一致する。 For example, assuming that the IO transaction to the IO controller 52A is IO-Ax and the IO transaction to the IO controller 52B is IO-Bx, as shown in FIG. 3, the transaction synchronization control unit 51A shows the first and second CPUs. The IO transactions issued from the modules are (IO-A1)-(IO-A2), which coincide with each other. The IO transactions issued from the first and second CPU modules are also seen from the transaction synchronization control unit 51B. (IO-B1)-(IO-B2).

 このときトランザクション同期制御部51A、51Bは、第1のCPUモジュール20と第2のCPUモジュール30とのIOトランザクションの時間的差分が発生する可能性が高いため、IOコントローラ毎にシーケンスの一致をチェックするのみでIOトランザクションの時間的な一致については判断していない。すなわち、トランザクション同期制御部51A、51Bは、それぞれ第1のCPUモジュール20と第2のCPUモジュール30からの同じIOトランザクションが到着するまで一定時間待ち合わせした後にIOコントローラ52A及び52Bに対してIOトランザクションを出力する。 At this time, the transaction synchronization control units 51A and 51B check the sequence matching for each IO controller because there is a high possibility that a time difference between IO transactions between the first CPU module 20 and the second CPU module 30 occurs. It does not judge the temporal coincidence of IO transactions. That is, the transaction synchronization control units 51A and 51B wait for a certain time until the same IO transaction from the first CPU module 20 and the second CPU module 30 arrives, and then transmit the IO transaction to the IO controllers 52A and 52B. Output.

 IOコントローラ52Aに着目すれば、まず最初のタイミングで第1のCPUモジュール20と第2のCPUモジュール30からの同じIOトランザクション(IO−A1)が発行され、次のタイミングでは第2のCPUモジュール30からの(IO−A2)は届くが、第1のCPUモジュール20からのIOトランザクション(IO−A2)が届かない。IOコントローラ52Aに対応するトランザクション同期制御部51Aは、第1のCPUモジュール20からのIOトランザクション(IO−A2)が受け取るまで一定時間待合せ(IOトランザクション(IO−A1)、(IO−A2)を出力せずに保持し)、さらに次のタイミングで第1のCPUモジュール20からのIOトランザクション(IO−A2)が届くと、IOトランザクションのシーケンスが一致したことを判別し、それらのIOトランザクション(IO−A1)、(IO−A2)を、IOコントローラ52Aに対して出力する。 Focusing on the IO controller 52A, first, the same IO transaction (IO-A1) is issued from the first CPU module 20 and the second CPU module 30 at the first timing, and the second CPU module 30 is issued at the next timing. (IO-A2) from the first CPU module 20, but not the IO transaction (IO-A2) from the first CPU module 20. The transaction synchronization control unit 51A corresponding to the IO controller 52A waits for a predetermined time (IO transactions (IO-A1) and (IO-A2)) until receiving the IO transaction (IO-A2) from the first CPU module 20. When the IO transaction (IO-A2) arrives from the first CPU module 20 at the next timing, it is determined that the sequence of the IO transaction matches, and the IO transaction (IO-A2) is determined. A1) and (IO-A2) are output to the IO controller 52A.

 なお、トランザクション同期制御部51A、51B、61A、61Bによる比較の結果、IOコントローラに対する第1、第2のCPUモジュール20、30からのIOトランザクションのシーケンスが互いに相違している場合には、フォールトトレラントコンピュータ内に備えられている障害監視部等に障害の発生を通知するようにしてもよい。 As a result of the comparison by the transaction synchronization control units 51A, 51B, 61A, 61B, if the sequences of the IO transactions from the first and second CPU modules 20, 30 to the IO controller are different from each other, the fault tolerant The occurrence of a failure may be notified to a failure monitoring unit or the like provided in the computer.

 本発明のフォールトトレラントコンピュータでは、トランザクション同期制御部が実行する各手段の機能をハードウェア的に実現することは勿論として、上記した各手段の機能を実行するトランザクション制御プログラム100をIOコントローラ等のプロセッサ(CPU)にロードして実行することにより、ソフトウェア的に実現することができる。このトランザクション制御プログラム100は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からCPUのメモリにロードされ、CPUで実行されることにより、上述した各機能を実現する。 In the fault-tolerant computer according to the present invention, the function of each unit executed by the transaction synchronization control unit is realized by hardware, and the transaction control program 100 for executing the function of each unit is executed by a processor such as an IO controller. By loading and executing the program on a (CPU), it can be realized as software. The transaction control program 100 is stored in a magnetic disk, a semiconductor memory, or another recording medium, loaded from the recording medium into the memory of the CPU, and executed by the CPU to realize the above-described functions.

 次に、本発明のトランザクション同期制御部の変形例について説明する。上述の例では第1のCPUモジュール20と第2のCPUモジュール30からの同じIOトランザクション(IO−A1)が発行されても、第2のCPUモジュール30からの(IO−A2)は届いて第1のCPUモジュール20からのIOトランザクション(IO−A2)が届かない状態ではIOトランザクション(IO−A1)、(IO−A2)を出力せずに保持するものであったが、本変形例においては、1つのIOトランザクションについて2つのCPUモジュール間で一致した場合は即座にそのIOトランザクションをIOコントローラに対して出力する点で図5の例と異なる。 Next, a modified example of the transaction synchronization control unit of the present invention will be described. In the above example, even if the same IO transaction (IO-A1) is issued from the first CPU module 20 and the second CPU module 30, (IO-A2) from the second CPU module 30 arrives and the In the state where the IO transaction (IO-A2) from the first CPU module 20 has not arrived, the IO transaction (IO-A1) and (IO-A2) are held without being output. 5 is different from the example in FIG. 5 in that when one IO transaction matches between two CPU modules, the IO transaction is immediately output to the IO controller.

 図6は、本変形例のトランザクション同期制御部の動作例を説明するフローチャートである。まず、第1のCPUモジュール20と第2のCPUモジュール30からのIOトランザクションを入力しそれぞれ対応するトランザクション格納手段に格納し(ステップ601)、各トランザクション格納手段に最も早く格納されたIOトランザクションが比較手段82に入力される(ステップ602)。このとき有効なIOトランザクションが格納されていなければ、そのトランザクション格納手段から比較手段にIOトランザクションは入力されない。
各トランザクション格納手段から多くて1つ入力されたIOトランザクションは、比較手段82にて比較される(ステップ603)。比較の結果IOトランザクションが一致していれば、即座に一致したIOトランザクションをIOコントローラへ出力する(ステップ604)。このとき、出力したIOトランザクションは両方のトランザクション格納手段から消去される。最後のIOトランザクションか判断し(ステップ605)、最後でなければステップ602にもどり、次のIOトランザクションが比較手段82に入力されて比較される。
FIG. 6 is a flowchart illustrating an operation example of the transaction synchronization control unit according to the present modification. First, the IO transactions from the first CPU module 20 and the second CPU module 30 are input and stored in the corresponding transaction storage means (step 601), and the earliest IO transaction stored in each transaction storage means is compared. The data is input to the means 82 (step 602). At this time, unless a valid IO transaction is stored, no IO transaction is input from the transaction storage unit to the comparison unit.
At most one IO transaction input from each transaction storage unit is compared by the comparison unit 82 (step 603). If the comparison shows that the IO transactions match, the matching IO transaction is immediately output to the IO controller (step 604). At this time, the output IO transaction is deleted from both transaction storage means. It is determined that the transaction is the last IO transaction (step 605). If it is not the last, the process returns to step 602, and the next IO transaction is input to the comparing means 82 and compared.

 ステップ603において一致しない場合、例えば、一方のCPUモジュールからしかIOトランザクションが届いておらずIOトランザクションのシーケンスが一致していない場合には、一方のCPUモジュールからIOトランザクションが届いてから一定時間が経過しているかを判別する(ステップ606)。
一定時間が経過していなければステップ601にもどりCPUモジュールからIOトランザクションが新たに届いていれば対応するトランザクション格納手段に格納し、新たに各トランザクション格納手段に最も早く格納されたIOトランザクションを再度比較する処理を一定時間が経過するまで繰り返す。ステップ606において一定時間が経過していれば、フォールトトレラントコンピュータ内に備えられている障害監視部等に障害の発生を通知する。
If there is no match in step 603, for example, if the IO transaction has arrived from only one CPU module and the sequence of the IO transaction does not match, a certain time has elapsed since the IO transaction arrived from one CPU module. It is determined whether the operation is performed (step 606).
If the fixed time has not elapsed, the process returns to step 601 and if an IO transaction has newly arrived from the CPU module, the IO transaction is stored in the corresponding transaction storage means, and the IO transaction newly stored in each transaction storage means is compared again. Is repeated until a certain time has elapsed. If the predetermined time has elapsed in step 606, the occurrence of a fault is notified to a fault monitoring unit provided in the fault-tolerant computer.

 一定時間が経過する前に他方のCPUモジュールからIOトランザクションが届き、一致すればステップ603で一致となり、ステップ604において、一致したIOトランザクションをIOコントローラへ出力する。なお、ステップ603において両方のCPUモジュールからIOトランザクションが届いているが届いたシーケンスが一致していない場合、ステップ606,601,602を繰り返し、一定時間経過後に障害監視部等に障害の発生を通知することになる。 (4) An IO transaction arrives from the other CPU module before the given time elapses, and if they match, a match is made in step 603, and in step 604, the matched IO transaction is output to the IO controller. In step 603, if the IO transactions have arrived from both CPU modules but the arrival sequences do not match, steps 606, 601, and 602 are repeated, and after a certain period of time, the failure monitoring unit or the like is notified of the occurrence of the failure. Will do.

 なお、トランザクション同期制御部は、複数のタイマ手段を備え、第1及び第2のトランザクション格納手段は複数のIOトランザクションを格納可能な容量とし、他方のCPUモジュールから入力される前に続けて同じCPUモジュールからIOトランザクションが入力された場合その入力を受け付け、複数のIOトランザクションを待ち合わせることができるよう構成してもよい。 Note that the transaction synchronization control unit includes a plurality of timer means, and the first and second transaction storage means have a capacity capable of storing a plurality of IO transactions. When an IO transaction is input from a module, the input may be received and a plurality of IO transactions may be configured to wait.

 他方のCPUモジュールからの入力を待ち合わせている間に続けて同じCPUモジュールからのIOトランザクション入力された場合には、すでにスタートしているタイマ手段とは別のタイマ手段をスタートし、今回入力されたIOトランザクションを、すでに以前に受信したIOトランザクションが格納されたアドレスとは別のアドレスに格納する。これにより複数のトランザクションを待ち合わせて各CPUモジュールからのIOトランザクションの一致を判断することができる。 If an IO transaction is continuously input from the same CPU module while waiting for an input from the other CPU module, the timer means different from the timer means that has already been started is started, and the input is performed this time. The IO transaction is stored at an address different from the address where the previously received IO transaction is stored. As a result, it is possible to wait for a plurality of transactions and determine whether the IO transactions from each CPU module match.

 本変形例に図2,3に示すIOトランザクションのシーケンスが入力された場合の動作について説明する。まず第1のCPUモジュール20と第2のCPUモジュール30からの同じIOトランザクション(IO−A1)が発行されると、このタイミングでIOトランザクションを比較し、一致したことを判別すると、IOトランザクション(IO−A1)を、IOコントローラ52Aに対して出力する。次のタイミングでは第2のCPUモジュール30からの(IO−A2)は届くが、第1のCPUモジュール20からのIOトランザクション(IO−A2)が届かない。 The operation when the sequence of the IO transaction shown in FIGS. 2 and 3 is input to this modification will be described. First, when the same IO transaction (IO-A1) is issued from the first CPU module 20 and the second CPU module 30, the IO transactions are compared at this timing. -A1) is output to the IO controller 52A. At the next timing, the (IO-A2) from the second CPU module 30 arrives, but the IO transaction (IO-A2) from the first CPU module 20 does not arrive.

 IOコントローラ52Aに対応するトランザクション同期制御部51Aは、第2のCPUモジュール30からの(IO−A2)を第2のトランザクション格納手段81−2に格納し、第1のCPUモジュール20からのIOトランザクション(IO−A2)を受け取るまで一定時間待ち合せ、第1のCPUモジュール20からのIOトランザクション(IO−A2)が届くと、このタイミングで第1のCPUモジュール20からのIOトランザクションと、第2のトランザクション格納手段81−2に格納されていたIOトランザクションとを比較し、一致したことを判別すると、IOトランザクション(IO−A2)を、IOコントローラ52Aに対して出力する。 The transaction synchronization control unit 51A corresponding to the IO controller 52A stores (IO-A2) from the second CPU module 30 in the second transaction storage unit 81-2, and stores the IO transaction from the first CPU module 20. (IO-A2) is waited for a certain period of time, and when an IO transaction (IO-A2) from the first CPU module 20 arrives, an IO transaction from the first CPU module 20 and a second transaction at this timing. The IO transaction is compared with the IO transaction stored in the storage unit 81-2, and when it is determined that they match, the IO transaction (IO-A2) is output to the IO controller 52A.

 次に、本発明のトランザクション同期制御部の他の変形例について説明する。図7は、本発明のトランザクション同期制御部の他の変形例の構成を示すブロック図である。本変形例では、比較手段182に第1及び第2のCPUモジュール20,30が直接接続されるとともに、第1及び第2のCPUモジュール20,30と、第1及び第2のトランザクション格納手段181−1,181−2のどちらからIOトランザクションを入力するか選択する第1及び第2の選択回路185−1,185−2を備えている。 Next, another modification of the transaction synchronization control unit of the present invention will be described. FIG. 7 is a block diagram showing a configuration of another modification of the transaction synchronization control unit of the present invention. In this modified example, the first and second CPU modules 20 and 30 are directly connected to the comparison unit 182, and the first and second CPU modules 20 and 30 and the first and second transaction storage units 181 are connected. The first and second selection circuits 185-1 and 185-2 for selecting from which of the -1 and 181-2 the input of the IO transaction is provided.

 図8は、図7の動作例を説明するフローチャートである。まず、新たなIOトランザクションを比較手段に入力するとき、各トランザクション格納手段に、有効なデータが格納されているか判断する(ステップ801)。有効なデータが格納されている場合、対応する選択回路をトランザクション格納手段側に切り替える(ステップ802)。有効なデータが格納されていない場合、選択回路をCPUモジュール側とする(ステップ802)。したがって、格納手段に未処理のIOトランザクションが格納されておらず、同時にCPUモジュールからIOトランザクションが入力されるような通常の状態ではIOトランザクションは格納手段に格納することなく、比較手段182に直接入力される。 FIG. 8 is a flowchart illustrating an operation example of FIG. First, when a new IO transaction is input to the comparison means, it is determined whether valid data is stored in each transaction storage means (step 801). If valid data is stored, the corresponding selection circuit is switched to the transaction storage means (step 802). If valid data is not stored, the selection circuit is set to the CPU module side (step 802). Therefore, in a normal state in which an unprocessed IO transaction is not stored in the storage unit and the IO transaction is input from the CPU module at the same time, the IO transaction is directly stored in the storage unit without being stored in the storage unit. Is done.

 そしてIOトランザクションのシーケンスが互いに一致するかどうかが判別される(ステップ804)。比較手段182に入力されたIOトランザクションが一致していれば、一致したIOトランザクションをIOコントローラへ出力する(ステップ805)。 Then, it is determined whether or not the IO transaction sequences match each other (step 804). If the IO transactions input to the comparing means 182 match, the matching IO transaction is output to the IO controller (step 805).

 ステップ804において一致しなかった場合、一方のCPUモジュールからしかIOトランザクションが届いておらず、そのIOトランザクションがトランザクション格納手段に格納されていない場合は格納する(ステップ806)。IOトランザクションのシーケンスが一致していない場合には、一方のCPUモジュールからIOトランザクションが届いてから一定時間が経過しているかを判別する(ステップ807)。 (4) If they do not match in step 804, the IO transaction has arrived from only one CPU module, and if the IO transaction has not been stored in the transaction storage means, it is stored (step 806). If the IO transaction sequences do not match, it is determined whether a certain time has elapsed since the IO transaction arrived from one of the CPU modules (step 807).

 一定時間が経過していなければステップ801にもどりIOトランザクションノシーケンスを再度比較する処理を一定時間が経過するまで繰り返す。一定時間が経過していれば、フォールトトレラントコンピュータ内に備えられている障害監視部等に障害の発生を通知する。一定時間が経過する前に他方のCPUモジュールからIOトランザクションが届き、ステップ804において一致すれば、ステップ805において、入力したIOトランザクションをIOコントローラへ出力する。 If the predetermined time has not elapsed, the process returns to step 801 to repeat the process of comparing the IO transaction no sequence again until the predetermined time has elapsed. If the predetermined time has elapsed, the occurrence of a fault is notified to a fault monitoring unit provided in the fault-tolerant computer. An IO transaction arrives from the other CPU module before the fixed time elapses, and if it matches in step 804, the input IO transaction is output to the IO controller in step 805.

 なお、ステップ804において一致せず、両方のCPUモジュールからIOトランザクションが届いているが届いたシーケンスが一致していない場合、一定時間経過後に障害監視部等に障害の発生を通知することになる。 In step 804, if there is no match, and the IO transactions have arrived from both CPU modules but the sequence has reached, they will be notified of the occurrence of a failure to a failure monitoring unit after a certain period of time has elapsed.

 以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。 Although the present invention has been described with reference to the preferred embodiments, the present invention is not necessarily limited to the above embodiments and can be variously modified and implemented within the scope of the technical idea.

本発明の実施の形態によるフォールトトレラントコンピュータの構成を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration of a fault-tolerant computer according to an embodiment of the present invention. 本発明の実施の形態によるフォールトトレラントコンピュータの各CPUモジュールから発行されるIOトランザクションの具体例を説明する図である。FIG. 4 is a diagram illustrating a specific example of an IO transaction issued from each CPU module of the fault-tolerant computer according to the embodiment of the present invention. 本発明の実施の形態によるフォールトトレラントコンピュータの具体的な動作例を説明する図である。FIG. 9 is a diagram illustrating a specific operation example of the fault-tolerant computer according to the embodiment of the present invention. 本発明の実施の形態によるフォールトトレラントコンピュータに備えられるトランザクション同期制御部の構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration example of a transaction synchronization control unit provided in the fault-tolerant computer according to the embodiment of the present invention. 本発明の実施の形態によるフォールトトレラントコンピュータに備えられるトランザクション同期制御部の動作例を説明するフローチャートである。5 is a flowchart illustrating an operation example of a transaction synchronization control unit provided in the fault-tolerant computer according to the embodiment of the present invention. トランザクション同期制御部の変形例の動作例を説明するフローチャートである。13 is a flowchart illustrating an operation example of a modification of the transaction synchronization control unit. トランザクション同期制御部の他の変形例の構成を示すブロック図である。FIG. 21 is a block diagram illustrating a configuration of another modification of the transaction synchronization control unit. 図7の動作例を説明するフローチャートである。8 is a flowchart illustrating an operation example of FIG. 7.

符号の説明Explanation of reference numerals

 10 フォールトトレラントコンピュータ
 20 第1のCPUモジュール
 30 第2のCPUモジュール
 50 第1のIOモジュール
 60 第2のIOモジュール
 51A、51B、61A、61B トランザクション同期制御部
 52A、52B、62A、62B IOコントローラ
 81−1 第1のトランザクション格納手段
 81−2 第2のトランザクション格納手段
 82 比較手段
 83 タイマ手段
 84 出力制御手段
DESCRIPTION OF SYMBOLS 10 Fault-tolerant computer 20 1st CPU module 30 2nd CPU module 50 1st IO module 60 2nd IO module 51A, 51B, 61A, 61B Transaction synchronization control part 52A, 52B, 62A, 62B IO controller 81- DESCRIPTION OF SYMBOLS 1 1st transaction storage means 81-2 2nd transaction storage means 82 comparison means 83 timer means 84 output control means

Claims (20)

同じ命令列をクロック同期して処理する複数のCPUモジュールと、
 デバイスに対し入出力制御処理を実行する複数のデバイスコントローラを備えた複数のIOモジュールと、
前記デバイスコントローラ毎に、前記複数のCPUモジュールの各々から発行されるIOトランザクションのシーケンスの一致をチェックし、一致が得られた場合は同期外れではないとみなすトランザクション同期制御部と、
 を有することを特徴とするフォールトトレラントコンピュータ。
A plurality of CPU modules for processing the same instruction sequence in clock synchronization;
A plurality of IO modules including a plurality of device controllers for executing input / output control processing on the device;
For each of the device controllers, a transaction synchronization control unit that checks a match of a sequence of IO transactions issued from each of the plurality of CPU modules, and considers that it is not out of synchronization if a match is obtained,
A fault-tolerant computer comprising:
前記トランザクション同期制御部は、一定時間を計るタイマ手段と、
前記デバイスコントローラ毎に、複数のCPUモジュールから発行される前記IOトランザクションのシーケンスの一致を、前記一定時間待ち合せて判別する比較手段と、
を有することを特徴とする請求項1に記載のフォールトトレラントコンピュータ。
The transaction synchronization control unit, timer means for measuring a certain time,
A comparing unit configured to wait, for each of the device controllers, to determine whether a sequence of the IO transactions issued from a plurality of CPU modules matches each other by waiting for the predetermined time;
The fault tolerant computer according to claim 1, comprising:
前記トランザクション同期制御部は、前記シーケンスの一致が得られたタイミングで、前記IOトランザクションを前記デバイスコントローラに出力する出力制御部を有することを特徴とする請求項2に記載のフォールトトレラントコンピュータ。 The fault tolerant computer according to claim 2, wherein the transaction synchronization control unit includes an output control unit that outputs the IO transaction to the device controller at a timing when the sequence matches. 前記出力制御部は、各CPUモジュールからのIOトランザクションの一致が得られたタイミングで、一致が得られたIOトランザクションを1つづつ、前記デバイスコントローラに出力することを特徴とする請求項3に記載のフォールトトレラントコンピュータ。 4. The output controller according to claim 3, wherein the output unit outputs the matched IO transactions one by one to the device controller at a timing when the matching of the IO transactions from the respective CPU modules is obtained. Fault tolerant computer. 前記出力制御部は、一定時間内にシーケンスの一致が得られない場合、あるいはIOトランザクションのシーケンスが互いに相違している場合に、障害の通知を出力することを特徴とする請求項2から請求項4の何れかに記載のフォールトトレラントコンピュータ。 3. The output control unit outputs a failure notification when a sequence match cannot be obtained within a predetermined time, or when IO transaction sequences are different from each other. 4. The fault tolerant computer according to any one of 4. 前記トランザクション同期制御部は、
 前記複数のCPUモジュールから発行される前記IOトランザクションを格納する複数の格納手段を備えることを特徴とする請求項2から請求項5の何れか1項に記載のフォールトトレラントコンピュータ。
The transaction synchronization control unit,
The fault tolerant computer according to any one of claims 2 to 5, further comprising a plurality of storage units for storing the IO transactions issued from the plurality of CPU modules.
前記トランザクション同期制御部は、
 前記比較手段に入力するIOトランザクションを前記複数の格納手段から入力するか、前記CPUモジュールから入力するかを選択する選択回路を備えることを特徴とする請求項2から請求項5の何れか1項に記載のフォールトトレラントコンピュータ。
The transaction synchronization control unit,
6. The apparatus according to claim 2, further comprising a selection circuit for selecting whether to input the IO transaction to the comparing unit from the plurality of storage units or the CPU module. Fault tolerant computer as described in.
同じ命令列をクロック同期して処理する複数のCPUモジュールからIOモジュールへの複数かつ同一のIOトランザクションを入力する第1のステップと、
入力されたIOトランザクションについて、前記IOモジュールに備えられた複数のデバイスコントローラ毎にシーケンスの一致をチェックし、一致が得られた場合、同期外れではないとみなす第2のステップとを有することを特徴とするフォールトトレラントコンピュータのトランザクション同期制御方法。
A first step of inputting a plurality of identical IO transactions from a plurality of CPU modules that process the same instruction sequence in clock synchronization to an IO module;
A second step of checking the sequence of the input IO transaction for each of a plurality of device controllers provided in the IO module and, if a match is obtained, assuming that the synchronization is not out of synchronization. Transaction synchronous control method of fault tolerant computer.
前記第2のステップは、互いのIOトランザクションのシーケンスの一致を、一定時間待ち合せて判別することを特徴とする請求項8に記載のフォールトトレラントコンピュータのトランザクション同期制御方法。 9. The transaction synchronization control method for a fault-tolerant computer according to claim 8, wherein the second step waits for a certain period of time to determine whether the sequences of the IO transactions match each other. シーケンスの一致が得られたタイミングで、前記IOトランザクションを前記デバイスコントローラに出力する第3のステップをさらに有することを特徴とする請求項9に記載のフォールトトレラントコンピュータのトランザクション同期制御方法。 The method according to claim 9, further comprising a third step of outputting the IO transaction to the device controller at a timing at which a sequence match is obtained. 前記第1のステップは、前記複数のCPUモジュールから発行される前記IOトランザクションをデバイスコントローラ毎に複数の格納手段に格納し、
前記第2のステップは、各CPUモジュールから入力されたIOトランザクションを比較手段に入力してIOトランザクションを比較し、一致しなかった場合、一定時間経過しているか判定し一定時間経過していない場合は同期外れではないとみなす、
ことを特徴とする請求項9に記載のフォールトトレラントコンピュータのトランザクション同期制御方法。
The first step stores the IO transaction issued from the plurality of CPU modules in a plurality of storage units for each device controller,
In the second step, the IO transaction input from each CPU module is input to the comparing means, and the IO transactions are compared. If the IO transactions do not match, it is determined whether a predetermined time has elapsed. Is not out of sync,
The transaction synchronization control method for a fault-tolerant computer according to claim 9, wherein:
入力されたIOトランザクションの一致が得られたタイミングで、一致が得られたIOトランザクションを1つづつ、前記デバイスコントローラに出力することを特徴とする請求項11に記載のフォールトトレラントコンピュータのトランザクション同期制御方法。 12. The transaction synchronization control of a fault-tolerant computer according to claim 11, wherein at the timing when the coincidence of the input IO transactions is obtained, the IO transactions with the coincidence are output one by one to the device controller. Method. 一定時間内にシーケンスの一致が得られない場合、障害の通知を出力するステップをさらに有することを特徴とする請求項9から請求項12の何れかに記載のフォールトトレラントコンピュータのトランザクション同期制御方法。 13. The transaction synchronization control method for a fault-tolerant computer according to claim 9, further comprising a step of outputting a notification of a failure when a sequence match cannot be obtained within a predetermined time. 新たなIOトランザクションを比較手段に入力するとき、前記複数の格納手段から入力するか、前記CPUモジュールから入力するかを選択するステップを有することを特徴とする請求項11から請求項13の何れか1項に記載のフォールトトレラントコンピュータのトランザクション同期制御方法。 14. The method according to claim 11, further comprising the step of selecting whether to input a new IO transaction from the plurality of storage units or from the CPU module when inputting the new IO transaction to the comparison unit. 2. The transaction synchronization control method for a fault-tolerant computer according to claim 1. 前記複数の格納手段から入力するか、前記CPUモジュールから入力するかを選択するステップは、格納手段に有効なデータが格納されていない場合にはCPUモジュールからの入力に切り替えることを特徴とする請求項14に記載のフォールトトレラントコンピュータのトランザクション同期制御方法。 The step of selecting whether to input from the plurality of storage units or input from the CPU module switches to input from a CPU module when valid data is not stored in the storage unit. Item 15. A method for controlling transaction synchronization of a fault-tolerant computer according to item 14. 複数のCPUモジュールで、同じ命令列をクロック同期させて処理するフォールトトレラントコンピュータにおいて実行され、
 複数のCPUモジュールからIOモジュールへの複数かつ同一のIOトランザクションを入力する第1の処理と、入力されたIOトランザクションについて、前記IOモジュールに備えられた複数のデバイスコントローラ毎にシーケンスの一致をチェックし、一致が得られた場合、同期外れではないとみなす第2の処理を行うことを特徴とするフォールトトレラントコンピュータのトランザクション同期制御プログラム。
Executed by a plurality of CPU modules in a fault-tolerant computer that processes the same instruction sequence in clock synchronization;
A first process of inputting a plurality of identical IO transactions from a plurality of CPU modules to an IO module, and for input IO transactions, checking a sequence match for each of a plurality of device controllers provided in the IO module. A synchronous processing program for a fault-tolerant computer, which performs a second process in which, if a match is obtained, it is considered that synchronization is not lost.
前記第2の処理は、互いのIOトランザクションのシーケンスの一致を、一定時間待ち合せて判別することを特徴とする請求項16に記載のフォールトトレラントコンピュータのトランザクション同期制御プログラム。 17. The computer-readable storage medium according to claim 16, wherein the second process waits for a certain period of time to determine whether the sequences of the IO transactions match each other. シーケンスの一致が得られたタイミングで、前記IOトランザクションを前記デバイスコントローラに出力する第3の処理を実行することを特徴とする請求項17に記載のフォールトトレラントコンピュータのトランザクション同期制御プログラム。 18. The transaction synchronization control program for a fault-tolerant computer according to claim 17, wherein a third process of outputting the IO transaction to the device controller is executed at a timing when a sequence match is obtained. 一定時間内にシーケンスの一致が得られない場合、あるいはIOトランザクションのシーケンスが互いに相違している場合に、障害の通知を出力する処理を実行することを特徴とする請求項16から請求項18の何れかに記載のフォールトトレラントコンピュータのトランザクション同期制御プログラム。 19. A process for outputting a notification of a failure when a sequence match cannot be obtained within a predetermined time or when IO transaction sequences are different from each other. A transaction synchronization control program for a fault-tolerant computer according to any one of the above. 前記第1の処理は、前記複数のCPUモジュールから発行される前記IOトランザクションをデバイスコントローラ毎に複数の格納手段に格納する処理を有し、前記第2の処理は、各CPUモジュールから入力された前記IOトランザクションを比較手段に入力してIOトランザクションを比較する処理と、一致しなかった場合、前記一定時間の経過を経過しているか判定し一定時間経過していない場合は同期外れではないとみなす処理とを実行することを特徴とする請求項17から請求項19の何れか1項に記載のフォールトトレラントコンピュータのトランザクション同期制御プログラム。
The first process includes a process of storing the IO transaction issued from the plurality of CPU modules in a plurality of storage units for each device controller, and the second process includes inputting the IO transaction from each CPU module. The process of inputting the IO transaction to the comparing means and comparing the IO transaction is not performed. If they do not match, it is determined whether or not the predetermined time has elapsed. The transaction synchronization control program for a fault-tolerant computer according to any one of claims 17 to 19, wherein the program executes a process.
JP2003297389A 2002-08-30 2003-08-21 Fault tolerant computer, transaction synchronization control method and program thereof Expired - Fee Related JP3821806B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003297389A JP3821806B2 (en) 2002-08-30 2003-08-21 Fault tolerant computer, transaction synchronization control method and program thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002255388 2002-08-30
JP2003297389A JP3821806B2 (en) 2002-08-30 2003-08-21 Fault tolerant computer, transaction synchronization control method and program thereof

Publications (2)

Publication Number Publication Date
JP2004110803A true JP2004110803A (en) 2004-04-08
JP3821806B2 JP3821806B2 (en) 2006-09-13

Family

ID=32301386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003297389A Expired - Fee Related JP3821806B2 (en) 2002-08-30 2003-08-21 Fault tolerant computer, transaction synchronization control method and program thereof

Country Status (1)

Country Link
JP (1) JP3821806B2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046942A (en) * 2006-08-18 2008-02-28 Nec Corp Fault tolerant computer and transaction synchronous control method therefor
JP2008225752A (en) * 2007-03-12 2008-09-25 Nec Corp Fault tolerant computer and synchronization control method in fault tolerant computer
JP2008234141A (en) * 2007-03-19 2008-10-02 Nec Corp Fault tolerant computer system and data transmission control method
US7474581B2 (en) 2006-02-07 2009-01-06 Nec Corporation Memory synchronization method and refresh control circuit
US7500139B2 (en) 2004-12-21 2009-03-03 Nec Corporation Securing time for identifying cause of asynchronism in fault-tolerant computer
US7519856B2 (en) 2004-12-21 2009-04-14 Nec Corporation Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
US7694176B2 (en) 2004-12-21 2010-04-06 Nec Corporation Fault-tolerant computer and method of controlling same
JP2010152831A (en) * 2008-12-26 2010-07-08 Nec Corp Server device
JP2011090553A (en) * 2009-10-23 2011-05-06 Nec System Technologies Ltd Information processing apparatus, synchronization control method and program
JP2013105494A (en) * 2011-11-15 2013-05-30 Ge Aviation Systems Llc Method of providing high integrity processing
JP2016212485A (en) * 2015-04-30 2016-12-15 日本電信電話株式会社 Virtual machine synchronous system, virtual machine synchronous method and virtual machine synchronous program
JP2020184184A (en) * 2019-05-08 2020-11-12 三菱電機株式会社 I/o control device

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500139B2 (en) 2004-12-21 2009-03-03 Nec Corporation Securing time for identifying cause of asynchronism in fault-tolerant computer
US7694176B2 (en) 2004-12-21 2010-04-06 Nec Corporation Fault-tolerant computer and method of controlling same
US7519856B2 (en) 2004-12-21 2009-04-14 Nec Corporation Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
US7474581B2 (en) 2006-02-07 2009-01-06 Nec Corporation Memory synchronization method and refresh control circuit
JP2008046942A (en) * 2006-08-18 2008-02-28 Nec Corp Fault tolerant computer and transaction synchronous control method therefor
JP2008225752A (en) * 2007-03-12 2008-09-25 Nec Corp Fault tolerant computer and synchronization control method in fault tolerant computer
JP4640359B2 (en) * 2007-03-12 2011-03-02 日本電気株式会社 Fault tolerant computer and synchronization control method in fault tolerant computer
JP2008234141A (en) * 2007-03-19 2008-10-02 Nec Corp Fault tolerant computer system and data transmission control method
JP2010152831A (en) * 2008-12-26 2010-07-08 Nec Corp Server device
JP2011090553A (en) * 2009-10-23 2011-05-06 Nec System Technologies Ltd Information processing apparatus, synchronization control method and program
JP2013105494A (en) * 2011-11-15 2013-05-30 Ge Aviation Systems Llc Method of providing high integrity processing
JP2016212485A (en) * 2015-04-30 2016-12-15 日本電信電話株式会社 Virtual machine synchronous system, virtual machine synchronous method and virtual machine synchronous program
JP2020184184A (en) * 2019-05-08 2020-11-12 三菱電機株式会社 I/o control device
JP7224237B2 (en) 2019-05-08 2023-02-17 三菱電機株式会社 I/O controller

Also Published As

Publication number Publication date
JP3821806B2 (en) 2006-09-13

Similar Documents

Publication Publication Date Title
JP5459807B2 (en) Debug signaling in multiprocessor data processing systems
JP3982353B2 (en) Fault tolerant computer apparatus, resynchronization method and resynchronization program
JP3821806B2 (en) Fault tolerant computer, transaction synchronization control method and program thereof
US20060149986A1 (en) Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
JP4479930B2 (en) Node system, server switching method, server device, data takeover method, and program
US9619300B2 (en) Reduction operation device, a processor, and a computer system
EP1672504A2 (en) Method and system for resetting fault tolerant computer system
US7178058B2 (en) Fault tolerant computer and transaction synchronization control method
JP5013309B2 (en) Fault tolerant computer and its transaction synchronous control method
US9043283B2 (en) Opportunistic database duplex operations
US10949203B2 (en) Technologies for ensuring functional safety of an electronic device
JP6083480B1 (en) Monitoring device, fault tolerant system and method
KR100583214B1 (en) Information processing apparatus
EP2615548B1 (en) Computing device
JP5537140B2 (en) SAFETY CONTROL DEVICE AND SAFETY CONTROL PROGRAM
US7120828B2 (en) System and method for in-order queue draining
JP5061674B2 (en) Fault tolerant computer system and data transmission control method
JP4640359B2 (en) Fault tolerant computer and synchronization control method in fault tolerant computer
JPH086800A (en) Data processor and microprocessor
JP3415636B2 (en) Processor unit
JPH11136309A (en) Data processing system
JP5604799B2 (en) Fault tolerant computer
JP6214346B2 (en) Dual system controller
JP2001175545A (en) Server system, fault diagnosing method, and recording medium
JP2005182693A (en) Multiplexed system and processor module

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040915

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060620

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees