JP2002215416A - Fault-tolerant computer system - Google Patents

Fault-tolerant computer system

Info

Publication number
JP2002215416A
JP2002215416A JP2001011619A JP2001011619A JP2002215416A JP 2002215416 A JP2002215416 A JP 2002215416A JP 2001011619 A JP2001011619 A JP 2001011619A JP 2001011619 A JP2001011619 A JP 2001011619A JP 2002215416 A JP2002215416 A JP 2002215416A
Authority
JP
Japan
Prior art keywords
information
memory
checkpoint
computer system
stored
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
JP2001011619A
Other languages
Japanese (ja)
Other versions
JP3426216B2 (en
Inventor
Yasuto Omiya
康人 近江谷
Koji Nishikawa
浩司 西川
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2001011619A priority Critical patent/JP3426216B2/en
Publication of JP2002215416A publication Critical patent/JP2002215416A/en
Application granted granted Critical
Publication of JP3426216B2 publication Critical patent/JP3426216B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To detect change of memory (including cache memory) data by using a CPU instruction by using a programmatic method. SOLUTION: In this fault-tolerant computer system, an instruction simulator 132 for recording updated data of the memory and an updated event of the memory is realized by software. The simulator 132 decodes an instruction word, and records the memory updated data or the memory updated even when decoded results accompany memory update. When the decoded results are an I/O instruction, a checkpoint mechanism transmits checkpoint information and the contents of a performance register from an active system to an inactive system through a LAN. The checkpoint reflection mechanism of the inactive system updates the memory on the basis of transmitted data and substitutes for the operation of the active system when the active system becomes inoperable.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、ソフトウェアによ
って計算機システムのフォールトトレラントを実現する
フォールトトレラント計算機システムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a fault-tolerant computer system for realizing fault-tolerance of a computer system by software.

【0002】[0002]

【従来の技術】従来例.従来のフォールトトレラントシ
ステムを実現する発明として「特開平4−21373
6」号公報に記載された「フォールト・トレラント・シ
ステムのためのチェックポイント機構」がある。この従
来例の発明は、相互接続された複数の同一プロセッサを
含むマルチプロセッサ・システム(例えば、2台のサー
バ装置)において、メモリの更新情報を伝達するととも
に、プロセッサの状態はその活動プロセッサの故障とは
相関しないメモリ装置にセーブされ、バックアップ・プ
ロセッサが、その状態を検出することにより、一方のプ
ロセッサがダウンしても引継可能なフォールト・トレラ
ンス機能を実現する。図34に従来の発明によるチェッ
クポイント機構のブロック図を示す。図34において、
装置10−1と装置10−2とは複数の同一プロセッサ
を含むマルチプロセッサ・システムである。従来例によ
るチェックポイント機構は、装置10−1及び10−2
内にそれぞれメモリ変化検出器28−1及び28−2と
ミラーリング制御回路30−1及び30−2を含む。ま
た、装置10−1と10−2の間の専用回路であるミラ
ー・バス34を含む。このミラー・バスは、活動プロセ
ッサとそのバックアッププロセッサの間で状態データを
転送するためのものである。装置10−1が活動装置で
あり、装置10−2がバックアップ装置であると仮定し
て、チェックポイント機構の動作を説明する。装置10
−1は活動装置であるため、メモリ変化検出器28−1
は活動化され、ミラーリング制御回路30−1は非活動
化されている。逆に、メモリ変化検出器28−2は非活
動化され、ミラーリング制御回路30−2は活動化され
ている。メモリ変化検出器28−1は、バス16−1上
の書込み信号に応答して、書込み動作が実行されたと
き、少なくともバス16−1上にあるメモリ・アドレス
とデータを含むメモリ変化のレコードを生成する。生成
されたレコードは、ミラー・バス34を介してバックア
ップ装置10−2の待ち行列32−2に供給され、蓄積
される。また、各タスクの終了時点で、活動プログラム
は、回復点確立命令を出すので、メモリ変化検出器28
−1がこれを検出して、線42−1よりミラーリング制
御回路30−2に供給され、ミラーリング制御回路30
−2はレコードを生成して待ち行列32−2に書込みを
行う。また、ミラーリング制御回路30−2は、読み取
り制御線44−2によって最も新しく到達した回復点ま
での待ち行列内の全てのレコードを、バックアップ装置
10−2のメモリ14−2にダンプされる。また、ST
ORE動作はメモリ変化検出器28−1によって検出さ
れ、対応するメモリ変化レコードが、バックアップ装置
10−2のメモリ14−2にロードすべく、待ち行列3
2−2に入れられる。プログラムが回復点に達する前に
活動プロセッサ12−1が故障した場合は、バックアッ
プ・プロセッサの状態は更新されず、最も新しく到達し
た回復点でセットアップされた値が、メモリ14−2内
にNextEntry Pointアドレスに保持され
る。
2. Description of the Related Art Conventional example. An invention for realizing a conventional fault-tolerant system is disclosed in Japanese Patent Application Laid-Open No. Hei 4-21373.
No. 6 ", there is a" checkpoint mechanism for a fault-tolerant system ". According to this conventional invention, in a multiprocessor system (for example, two server devices) including a plurality of interconnected identical processors, update information of a memory is transmitted, and the state of the processor is determined by the failure of the active processor. The backup processor detects the state saved in a memory device that is not correlated with the processor, thereby realizing a fault tolerance function that can take over even if one processor goes down. FIG. 34 shows a block diagram of a checkpoint mechanism according to the conventional invention. In FIG. 34,
The device 10-1 and the device 10-2 are a multiprocessor system including a plurality of identical processors. The checkpoint mechanism according to the conventional example includes devices 10-1 and 10-2.
Includes memory change detectors 28-1 and 28-2 and mirroring control circuits 30-1 and 30-2, respectively. It also includes a mirror bus 34 which is a dedicated circuit between the devices 10-1 and 10-2. This mirror bus is for transferring state data between the active processor and its backup processor. The operation of the checkpoint mechanism will be described assuming that device 10-1 is the active device and device 10-2 is the backup device. Apparatus 10
Since -1 is an active device, the memory change detector 28-1
Is activated, and the mirroring control circuit 30-1 is deactivated. Conversely, the memory change detector 28-2 has been deactivated, and the mirroring control circuit 30-2 has been activated. The memory change detector 28-1 responds to a write signal on the bus 16-1 and, when a write operation is performed, records a memory change record including at least a memory address and data on the bus 16-1. Generate. The generated record is supplied to the queue 32-2 of the backup device 10-2 via the mirror bus 34 and stored therein. At the end of each task, the active program issues a recovery point establishment command, so that the memory change detector 28
-1 detects this, and is supplied to the mirroring control circuit 30-2 from the line 42-1.
-2 generates a record and writes it to the queue 32-2. Further, the mirroring control circuit 30-2 dumps all the records in the queue up to the recovery point reached most recently by the read control line 44-2 in the memory 14-2 of the backup device 10-2. ST
The ORE operation is detected by the memory change detector 28-1 and the corresponding memory change record is stored in the queue 3 for loading into the memory 14-2 of the backup device 10-2.
2-2. If the active processor 12-1 fails before the program reaches the recovery point, the state of the backup processor is not updated and the value set up at the most recently reached recovery point contains the NextEntry Point in memory 14-2. It is held at the address.

【0003】[0003]

【発明が解決しようとする課題】上記したように、従来
の発明のチェックポイント機構は、メモリ変化検出器に
よってメモリへの書込みを見ているため、ライトバック
形式のキャッシュメモリを使用した場合には、キャッシ
ュメモリの変化を検出できないという問題が発生する。
また、キャッシュメモリに上記したようなチェックポイ
ント機構を設けようとすると、高周波数の計算機では実
装が困難であるという問題が発生する。
As described above, the checkpoint mechanism of the prior art uses a memory change detector to check the writing to the memory. This causes a problem that a change in the cache memory cannot be detected.
Further, if the above-described checkpoint mechanism is provided in the cache memory, there is a problem that it is difficult to mount the checkpoint mechanism on a high-frequency computer.

【0004】上記したような問題点を解決するため、本
発明は以下のことを目的とする。プログラム的な手法を
用いてCPUの命令を使用してメモリ(キャッシュメモ
リを含む)データの変化を検出することを目的とする。
[0004] In order to solve the above problems, the present invention aims at the following. An object of the present invention is to detect a change in memory (including a cache memory) data using a CPU instruction using a program technique.

【0005】[0005]

【課題を解決するために手段】この発明に係る第1の計
算機システムと、上記第1の計算機システムと同じ動作
をすることができる第2の計算機システムとを備え、上
記第2の計算機システムによって上記第1の計算機シス
テムの動作を監視して、監視した結果、上記第1の計算
機システムの動作不能状態を検出した場合に、上記第2
の計算機システムにより上記第1の計算機システムの動
作を引き継ぐフォールトトレラント計算機システムにお
いて、上記フォールトトレラント計算機システムは、上
記第1の計算機システムと上記第2の計算機システムと
を接続して、上記第1の計算機システムの動作を上記第
2の計算機システムによって引き継ぐためのチェックポ
イント情報の通信を行なう通信網を備え、上記第1の計
算機システムは、所定の情報を記憶する第1のメモリ
と、所定の命令を有する処理プログラムを上記所定の命
令に従い実行する場合に、実行の順序を制御するプログ
ラム制御情報を格納する実行用レジスタと、上記実行用
レジスタに格納されている上記プログラム制御情報に従
い、実行する命令を取り出して解析し、上記解析した結
果に従い上記解析した命令を実行するとともに、上記実
行用レジスタに格納されているプログラム制御情報を強
制的に入れ替える割り込み処理の要求を受け付ける第1
の命令シミュレータと、上記第1の命令シミュレータに
より解析された結果が、上記第1のメモリの更新を伴う
場合に、上記第1のメモリの更新履歴をメモリ更新情報
として記録し、上記第1の命令シミュレータにより割り
込み処理の要求を受け付けられた場合に、上記メモリ更
新情報を用いて上記チェックポイント情報を生成して、
生成したチェックポイント情報と上記実行用レジスタに
格納されているプログラム制御情報とを上記通信網を介
して上記第2の計算機システムに送信するチェックポイ
ント機構とを備え、上記第2の計算機システムは、所定
の情報を記憶する第2のメモリと、所定の命令を有する
処理プログラムを上記所定の命令に従い実行する場合
に、実行の順序を制御するプログラム制御情報を格納す
る待機用レジスタと、上記第1の計算機のチェックポイ
ント機構より送信されたチェックポイント情報とプログ
ラム制御情報とを受信して、受信したチェックポイント
情報を上記第2のメモリに反映させるとともに、受信し
たプログラム制御情報を上記待機用レジスタに反映させ
るチェックポイント反映機構と、上記チェックポイント
反映機構により反映された待機用レジスタのプログラム
制御情報に従い、上記チェックポイント反映機構により
反映された上記第2のメモリに記憶されている所定の情
報を用いて、上記第1の計算機システムの動作を上記第
2の計算機システムにより代替する第2の命令シミュレ
ータとを備えたことを特徴とする。
A first computer system according to the present invention, and a second computer system capable of performing the same operation as the first computer system, are provided by the second computer system. The operation of the first computer system is monitored, and as a result of the monitoring, when the inoperable state of the first computer system is detected,
In the fault tolerant computer system taking over the operation of the first computer system by the computer system, the fault tolerant computer system connects the first computer system and the second computer system, and A communication network for communicating checkpoint information for taking over the operation of the computer system by the second computer system, wherein the first computer system has a first memory for storing predetermined information; An execution register for storing program control information for controlling the order of execution when the processing program having the following is executed according to the predetermined instruction, and an instruction to be executed according to the program control information stored in the execution register. And analyze it. And executes the instructions, the receiving a request for forcibly replacing the interrupt processing program control information stored in the execution register 1
When the result analyzed by the first instruction simulator and the first instruction simulator involves updating the first memory, an update history of the first memory is recorded as memory update information, and the first memory is updated. When the instruction simulator accepts a request for interrupt processing, generates the checkpoint information using the memory update information,
A checkpoint mechanism for transmitting the generated checkpoint information and the program control information stored in the execution register to the second computer system via the communication network, wherein the second computer system comprises: A second memory for storing predetermined information; a standby register for storing program control information for controlling an execution order when a processing program having a predetermined instruction is executed according to the predetermined instruction; Receiving the checkpoint information and the program control information transmitted from the checkpoint mechanism of the computer, reflecting the received checkpoint information in the second memory, and storing the received program control information in the standby register. Checkpoint reflection mechanism to be reflected and reflection by the above checkpoint reflection mechanism In accordance with the program control information of the standby register obtained, using the predetermined information stored in the second memory reflected by the checkpoint reflection mechanism, the operation of the first computer system is performed by the second And a second instruction simulator that is replaced by a computer system.

【0006】また、この発明に係るフォールトトレラン
ト計算機システムは、上記第1の命令シミュレータによ
り受け付けられる割り込みは、少なくとも上記第1の計
算機システムが正常に動作している事を上記第2の計算
機システムに報告するためのアライブタイマー割り込み
であり、上記第1の計算機システムは、アライブタイマ
ー割り込みを所定の時間の間隔で発生させることを特徴
とする。
Further, in the fault tolerant computer system according to the present invention, the interrupt received by the first instruction simulator may include an instruction to the second computer system that at least the first computer system is operating normally. This is an alive timer interrupt for reporting, and the first computer system generates an alive timer interrupt at predetermined time intervals.

【0007】また、この発明に係るフォールトトレラン
ト計算機システムは、上記第1の命令シミュレータが、
上記割り込み処理の要求を受け付けた場合に、上記チェ
ックポイント機構によりチェックポイント情報を上記第
2の計算機システムに送信を行った後、上記割り込み処
理の要求に従い、割り込み処理を実行して、その後、再
度、上記チェックポイント機構により上記メモリ更新情
報を用いて上記チェックポイント情報を生成して、生成
したチェックポイント情報と上記実行用レジスタに格納
されているプログラム制御情報とを上記通信網を介して
上記第2の計算機システムに送信することを特徴とす
る。
In a fault tolerant computer system according to the present invention, the first instruction simulator includes:
When the request for the interrupt processing is received, the checkpoint mechanism transmits the checkpoint information to the second computer system, executes the interrupt processing according to the request for the interrupt processing, and then re-executes. Generating the checkpoint information using the memory update information by the checkpoint mechanism, and transmitting the generated checkpoint information and the program control information stored in the execution register via the communication network. 2 is transmitted to the computer system.

【0008】また、この発明に係るフォールトトレラン
ト計算機システムは、上記第1のメモリが、上記所定の
情報を、上記所定の情報の記憶位置を示すアドレスに対
応させて記憶し、上記チェックポイント情報は、上記第
1のメモリのアドレスと、上記第1のメモリのアドレス
に対応して記憶されている所定の情報とを少なくとも有
することを特徴とする。
Further, in the fault-tolerant computer system according to the present invention, the first memory stores the predetermined information in association with an address indicating a storage position of the predetermined information, and the checkpoint information is , At least an address of the first memory and predetermined information stored in correspondence with the address of the first memory.

【0009】また、この発明に係るフォールトトレラン
ト計算機システムは、上記チェックポイント機構が、上
記第1のメモリの更新が行われた場合に、上記メモリ更
新情報として、メモリの更新が行われた順に上記第1の
メモリのアドレスを1つ以上記憶するスタックと、上記
チェックポイント情報を1つ以上記憶して、上記チェッ
クポイント情報の記憶位置がポインタによって管理され
る送信バッファと、上記第1のメモリのアドレスと上記
チェックポイント情報を記憶する送信バッファのポイン
タとを対応させてルックアップ情報として記憶して、上
記ルックアップ情報を上記スタックに記憶されているア
ドレスを元にハッシュ法によって求めたサブアドレスに
よって管理するルックアップテーブルとを備えて、上記
スタックに記憶されているアドレスを記憶されている順
に取り出し、取り出したアドレスをハッシュ法によって
サブアドレスに変換して、変換したサブアドレスによっ
て管理されている上記ルックアップテーブルに記憶され
ているルックアップ情報の有無を確認するとともに、ル
ックアップ情報が管理されている場合には、上記ルック
アップ情報のアドレスと上記スタックより取り出したア
ドレスとを比較して、上記有無を確認した結果と上記ア
ドレスの比較を行った結果とに基づいて、上記ルックア
ップ情報を生成して上記ルックアップテーブルに記憶す
るとともに、生成したルックアップ情報を用いて上記第
1のメモリに記憶されている所定の情報を取得して、取
得した情報と上記ルックアップ情報とを用いて上記チェ
ックポイント情報を生成して、生成したチェックポイン
ト情報を上記ルックアップ情報に基づいて上記送信バッ
ファに記憶することを特徴とする。
Further, in the fault tolerant computer system according to the present invention, when the checkpoint mechanism updates the first memory, the checkpoint mechanism updates the memory as the memory update information in the order in which the memory was updated. A stack for storing one or more addresses of the first memory, a transmission buffer for storing one or more checkpoint information, and a storage location of the checkpoint information managed by a pointer; The address and the pointer of the transmission buffer that stores the checkpoint information are stored as lookup information in association with each other, and the lookup information is managed by a subaddress obtained by a hash method based on the address stored in the stack. And a look-up table to be stored in the stack The extracted addresses are extracted in the order in which they are stored, the extracted addresses are converted into sub-addresses by a hash method, and the presence / absence of lookup information stored in the lookup table managed by the converted sub-addresses is confirmed. If the lookup information is managed, the address of the lookup information is compared with the address taken out of the stack, and based on the result of confirming the presence or absence and the result of comparing the address. And generating the lookup information and storing it in the lookup table. Using the generated lookup information, obtains predetermined information stored in the first memory. The above checkpoint information is generated using the lookup information and the generation is performed. The checkpoint information based on the look-up information and to store to the transmission buffer.

【0010】また、この発明に係るフォールトトレラン
ト計算機システムは、上記チェックポイント機構が、上
記チェックポイント情報を1つ以上記憶して、上記チェ
ックポイント情報の記憶位置がポインタによって管理さ
れる送信バッファと、上記メモリ更新情報を記憶する1
つ以上のエントリを有して、上記エントリを1つ以上の
列と1つ以上の行とにより管理する事象テーブルとを備
えて、上記第1のメモリのアドレスの一部である索引ア
ドレスを用いてハッシュ法によって上記事象テーブルの
列を示す列情報に変換して、変換した列情報と一致する
上記事象テーブルの列のすべてのエントリと上記第1の
メモリのアドレスの上記索引アドレス以外のアドレスの
一部であるページアドレスとを比較して、一致するエン
トリが記憶されていない場合に、上記メモリ更新情報を
記憶していないエントリを発見して、発見できた場合
に、上記発見できたエントリに上記ページアドレスを上
記メモリ更新情報として記憶して、上記メモリ更新情報
を記憶していないエントリを発見できなかった場合に、
上記事象テーブルの上記メモリ更新情報の記憶されてい
るすべてのエントリを対象にして、エントリの順に記憶
されている上記メモリ更新情報を取り出して、上記メモ
リ更新情報を用いて上記第1のメモリに記憶されている
所定の情報を取得し、取得した所定の情報と上記メモリ
更新情報とを用いて上記チェックポイント情報を生成
し、生成したチェックポイント情報を上記送信バッファ
に記憶することを特徴とする。
Further, in the fault tolerant computer system according to the present invention, the checkpoint mechanism stores one or more checkpoint information, and a transmission buffer in which a storage position of the checkpoint information is managed by a pointer; 1 for storing the memory update information
An event table having one or more entries, and managing the entries by one or more columns and one or more rows, using an index address which is a part of the address of the first memory; To the column information indicating the columns of the event table by a hashing method. By comparing with a partial page address, if no matching entry is stored, an entry that does not store the memory update information is found. When the page address is stored as the memory update information and an entry that does not store the memory update information cannot be found,
For all the entries of the event table where the memory update information is stored, the memory update information stored in the order of the entries is extracted and stored in the first memory using the memory update information. The obtained predetermined information is obtained, the checkpoint information is generated using the obtained predetermined information and the memory update information, and the generated checkpoint information is stored in the transmission buffer.

【0011】また、この発明に係るフォールトトレラン
ト計算機システムは、上記チェックポイント機構が、上
記ページアドレスである上記メモリ更新情報を用いて、
上記第1のメモリの上記ページアドレスによって示され
る記憶領域に記憶されているすべての上記所定の情報
を、上記事象テーブルの1つのエントリに記憶されてい
る上記メモリ更新情報から取得することを特徴とする。
Further, in the fault-tolerant computer system according to the present invention, the checkpoint mechanism uses the memory update information as the page address,
Acquiring all the predetermined information stored in the storage area of the first memory indicated by the page address from the memory update information stored in one entry of the event table. I do.

【0012】また、この発明に係るフォールトトレラン
ト計算機システムは、上記第1のメモリが、少なくとも
キャッシュメモリを含むことを特徴とする。
Further, a fault tolerant computer system according to the present invention is characterized in that the first memory includes at least a cache memory.

【0013】また、この発明に係るフォールトトレラン
ト計算機システムは、上記通信網が、LAN(ローカル
エリアネットワーク)であることを特徴とする。
Further, the fault tolerant computer system according to the present invention is characterized in that the communication network is a LAN (local area network).

【0014】[0014]

【発明の実施の形態】実施の形態1.この発明の実施の
形態1のフォールトトレラント計算機システムの一実施
例について、図を用いて説明する。図1は、この発明の
フォールトトレラント計算機システムのハードウェア構
成図である。図1において、実施の形態1のフォールト
トレラント計算機システムは、動作をしている活動系シ
ステム100と、活動系システム100と同じ構成要素
を有して活動系システム100をバックアップする非活
動系システム200との2つの系より構成されている。
101,102,201,202は、CPU(cent
ral processing unit)である。そ
れぞれの系に2つのCPUがあるが、これはマルチプロ
セッサに対応可能にする為であり、発明の特徴ではな
い。103,203はMMU(memory mana
gement unit)であり、104,205のそ
れぞれのメモリをアクセスする。105,205はディ
スクコントローラであり、107,207のそれぞれの
ディスク装置を制御する。106,206はLAN(l
ocal area network)コントローラで
あり、300のLANにそれぞれ接続されている。活動
系システム100と非活動系システム200とは、LA
N300を介して相互にローカルディスクのようにアク
セスすることができる。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiment 1 One example of the fault-tolerant computer system according to the first embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a hardware configuration diagram of the fault-tolerant computer system of the present invention. In FIG. 1, the fault-tolerant computer system according to the first embodiment includes an active system 100 that is operating and an inactive system 200 that has the same components as the active system 100 and backs up the active system 100. And two systems.
101, 102, 201, and 202 are CPUs (cent
ral processing unit). There are two CPUs in each system, but this is to make it compatible with multiprocessors and is not a feature of the invention. 103 and 203 are MMU (memory mana).
and the memory of each of 104 and 205 is accessed. Numerals 105 and 205 denote disk controllers, which control the disk devices 107 and 207, respectively. 106 and 206 are LAN (l
Occasionally, an area network controller is connected to each of the 300 LANs. The active system 100 and the inactive system 200 are LA
Through the N300, they can be mutually accessed like a local disk.

【0015】図2は、この発明の計算機システムのソフ
トウェア構成の一例を示す構成図である。図2におい
て、110は活動系システムのソフトウェア構成を示
し、210は非活動系システムのソフトウェア構成を示
している。非活動系システムのソフトウェア構成210
は、活動系のソフトウェア構成110と同じであるた
め、ここでは活動系システムのソフトウェア構成110
のみ説明する。図2において、111はホスト計算機
(PCサーバ)のOperatingSystem(O
S)であり、例えばマイクロソフト社のWindows
である。PCサーバのOS111は112のカーネル、
113の記憶管理部、114のファイル管理部、115
のネットワーク管理部、116のインプットアウトプッ
ト(I/O)管理部、117のApplication
Programming Interface(AP
I)と、118の命令シミュレータ、119a,119
bのApplication program(AP
P)、120のゲスト計算機のゲストOperatin
g System(OS)、121のインプットアウト
プット(I/O)シミュレータとを備える。I/Oシミ
ュレータ121は、122のディスク(DISK)シミ
ュレータ、123のLANシミュレータとを備える。命
令シミュレータ118とI/Oシミュレータ121とを
備えることによって、PCサーバ(ホスト計算機)上に
仮想(ゲスト)計算機を造りだす。この発明のフォール
トトレラント計算機システムは、プログラム的手法によ
りメモリデータの変化を検出する為に、ホスト計算機の
命令セットを使用して他の計算機(ゲスト計算機)上の
命令をシミュレーション実行するような、図2の環境の
システムにおいて容易に実現できる特徴がある。
FIG. 2 is a configuration diagram showing an example of a software configuration of the computer system of the present invention. In FIG. 2, 110 indicates the software configuration of the active system, and 210 indicates the software configuration of the inactive system. Inactive system software configuration 210
Is the same as the active software configuration 110, so the software configuration 110 of the active system is used here.
I will explain only. In FIG. 2, reference numeral 111 denotes an Operating System (O) of the host computer (PC server).
S), for example, Microsoft Windows
It is. The OS 111 of the PC server has 112 kernels,
Storage management unit 113, file management unit 114, 115
, An input / output (I / O) management unit 116, and an application 117
Programming Interface (AP
I) and 118 instruction simulators, 119a and 119
Application program of b (AP
P), Guest Operatin of 120 guest computers
g System (OS), 121 input / output (I / O) simulator. The I / O simulator 121 includes a disk (DISK) simulator 122 and a LAN simulator 123. By providing the instruction simulator 118 and the I / O simulator 121, a virtual (guest) computer is created on a PC server (host computer). The fault-tolerant computer system of the present invention uses a program-based method to detect a change in memory data by executing a simulation on an instruction on another computer (guest computer) using an instruction set of a host computer. There is a feature that can be easily realized in a system of the second environment.

【0016】図3は、活動系と非活動系それぞれの記憶
構成を説明する図である。図3において、130は活動
系システム100の仮想記憶部であり、仮想記憶部13
0は、131のホスト計算機のカーネル、132の命令
シミュレータ、133のチェックポイント機構、138
の実行用レジスタ領域、134のゲストOS、135
a,135bのAPP、136のDISKシミュレー
タ、137のLANシミュレータとをそれぞれ備える。
ゲスト計算機の主記憶データはAPP135a、135
bとゲストOS134であり、その他の要素はホスト計
算機の仮想記憶データである。つまり、ゲスト計算機の
主記憶データの内容はその時々の実行する処理内容によ
って異なるが、例えば、チェックポイント機構133
は、処理内容にかかわらず常に1つのデータ(プログラ
ム)である。非活動系システム200の仮想記憶部23
0の要素は233のチェックポイント反映機構と、実行
レジスタ領域以外は活動系システム100と同じであ
る。チェックポイント機構133とチェックポイント反
映機構233のそれぞれは、更に図4に示す記憶構成を
している。図4において、チェックポイント機構133
は、スタック、ルックアップテーブル133aと送信バ
ッファ133bとを備え、チェックポイント反映機構2
33は、待機用レジスタ領域233aと受信バッファ2
33bとを備える。この発明の計算機システムの特徴
は、プログラム的手法によりメモリの変化をモニタリン
グすることであった。これを実現するのがチェックポイ
ント機構133とチェックポイント反映機構134であ
る。つまり、チェックポイント機構133とチェックポ
イント反映機構233とはソフトウェアである。
FIG. 3 is a diagram for explaining the storage configuration of each of the active system and the inactive system. In FIG. 3, reference numeral 130 denotes a virtual storage unit of the active system 100;
0 is the kernel of the host computer 131, the instruction simulator 132, the checkpoint mechanism 133, and 138.
Execution register area, guest OS of 134, 135
a, 135b, a 136 DISK simulator, and a 137 LAN simulator.
The main storage data of the guest computer is APP 135a, 135
b and the guest OS 134, and the other elements are virtual storage data of the host computer. In other words, the contents of the main storage data of the guest computer differ depending on the processing contents executed at each time.
Is always one data (program) regardless of the processing content. Virtual storage unit 23 of inactive system 200
The element of 0 is the same as the active system 100 except for the checkpoint reflection mechanism of 233 and the execution register area. Each of the checkpoint mechanism 133 and the checkpoint reflection mechanism 233 further has a storage configuration shown in FIG. In FIG. 4, the checkpoint mechanism 133
Comprises a stack, look-up table 133a, and transmission buffer 133b.
Reference numeral 33 denotes a standby register area 233a and a reception buffer 2
33b. A feature of the computer system of the present invention is that a change in a memory is monitored by a program technique. The checkpoint mechanism 133 and the checkpoint reflection mechanism 134 realize this. That is, the checkpoint mechanism 133 and the checkpoint reflection mechanism 233 are software.

【0017】図5は、活動系システム100と非活動系
システム200のディスク構成とファイル構成を示す。
図5において、活動系システム100のディスク装置1
07は、ミラーリング構成をしている。また、複数のフ
ァイルを1つのボリュームに記憶することができる。活
動系システム100の網掛け部分のDISKデータと非
活動系システム200のDISKデータは同一の内容を
保持するミラー構成になっており、活動系システム10
0のミラーディスクデータを更新するタイミングで非活
動系システム200の該当データも更新する。また、ミ
ラーディスク構成なので、活動系システム100の網掛
け部分が故障した場合は、非活動系システム200のデ
ィスクからデータを読み出す。ミラー動作のため両系の
DISKが正常動作時には両方の網掛けDISKにデー
タを格納し、一方が故障した場合は、故障していない系
のDISKにのみデータを格納する。
FIG. 5 shows a disk configuration and a file configuration of the active system 100 and the inactive system 200.
In FIG. 5, the disk device 1 of the active system 100
07 has a mirroring configuration. Further, a plurality of files can be stored in one volume. The DISK data of the hatched portion of the active system 100 and the DISK data of the inactive system 200 have a mirror configuration that retains the same contents.
The corresponding data of the inactive system 200 is also updated at the timing of updating the 0 mirror disk data. In addition, because of the mirror disk configuration, when the hatched portion of the active system 100 fails, data is read from the disk of the inactive system 200. Due to the mirror operation, when both DISKs operate normally, data is stored in both hatched DISKs, and when one of them fails, the data is stored only in the DISK of the non-failed system.

【0018】図6は、活動系の命令シミュレータ118
のプログラムのフローチャートである。図6のフローチ
ャートに従い、活動系の命令シミュレータの手順を説明
する。始めにS1でディスクシミュレータ122と、L
ANシミュレータ123の初期化を行なう。このS1で
行う初期化は、ディスクシミュレータ122及びLAN
シミュレータ123によって使用されるレジスタやメモ
リの初期化を行う。次に、S2で命令シミュレータ11
8の初期化を行なう。S2の初期化は、命令シミュレー
タ118の使用するレジスタやメモリの初期化を行う。
そして、S3でメモリ104上にゲストOS120用の
記憶領域(ゲストOS134)を確保し、S4でゲスト
計算機のIPL(initial program l
oader)を起動する。IPLを起動後、ゲスト計算
機の命令、つまり、APP119aやAPP119bの
アプリケーションプログラムを構成する命令をシミュレ
ーションする(S5の詳細な処理を図9にて説明す
る)。図7は、非活動系の命令シミュレータのプログラ
ムのフローチャートである。活動系システム100が図
6の手順で動作している時、非活動系システム200は
図7の動作を行う。図7において、始めにS10で命令
シミュレータの初期化を行なう。このS10の初期化は
命令シミュレータが使用するレジスタやメモリの初期化
である。次にS11でメモリ204上にゲストOS用の
記憶領域を確保する。そして、活動系システム100で
動作するゲスト計算機をバックアップするための機能を
起動する(S12)。ゲスト計算機をバックアップする
ための機能を起動するというのは、命令シミュレータが
サービスプロセッサからのレジスタとメモリの初期化指
示を待ち、その初期化指示を受けて命令シミュレータが
レジスタ及びメモリの初期化を行う。この後、バックア
ップモードでなければ、命令の状態とプログラムカウン
タを示すPSW(Program StatusWor
d)に従い各命令のシミュレーションが開始されてしま
うが、バックアップモードのため命令シミュレーション
は行われない。次に、チェックポイント反映プロセス
(図8(A))と、監視タイマープロセス(図8
(B))とを生成する。チェックポイントの反映プロセ
スを図8(A)に従い説明する。チェックポイントの反
映プロセスは、チェックポイント反映機構233によっ
て、行われる。図8(A)では、S170でチェックポ
イント反映機構233は、活動系システム100からの
チェックポイントの作成要求を待つ。要求があったら活
動系システム100から送信されたチェックポイント情
報を非活動系システム200に反映させる(S171、
図13)。監視タイマープロセスの生成手順を図8
(B)に従い説明する。監視タイマープロセスは、チェ
ックポイント反映機構233によって行われる。図8
(B)では、S173でカウンタを初期化する。このカ
ウンタは、活動系システム100が生きていることを確
認する処理を繰り返す回数をカウントする為に用いる。
次に、S174で予め設定された一定時間の間、活動系
システム100からのアライブ通知を待つ。S175で
アライブ通知があるか否かを確認して、アライブ通知が
ある時はS173とS174の処理を繰り返す。アライ
ブ通知がなければ、カウンタより−1する(S17
6)。カウンタが0以下になると(S177)、活動系
システム100の動作を代わって処理する為のフラグを
セットする(S178)。図7の処理に戻り、S14で
は活動系の動作を代替処理するためのフラグがセットさ
れているか確認する(フラグは図8(B)のS178で
セットされる)。S14の確認処理は、一定の時間間隔
で実行される確認処理である。この確認処理と、S13
で生成されたチェックポイント反映プロセス及び監視タ
イマープロセスは並行に動作している。フラグがセット
されていない場合は、再度S14の処理へ戻る。フラグ
がセットされている場合は、S15の活動系代替処理
(図10)を行なう。活動系代替処理が終了した後、つ
まり、図7の一番最後の処理であるS17の代替要求が
起こる要因としては、非活動系システム200が活動系
へ移行した後、活動系100が動作可能になったため、
非活動系に戻れという要求が発生したかどうかを判断し
ている。このため、S17の判断がYESである場合
は、S14の処理へ戻り、NOである場合は、活動系代
替処理(図10)のフローチャートのS164の前に戻
る。そして、再びゲスト計算機の命令シミュレーション
を実行する。
FIG. 6 shows an active instruction simulator 118.
5 is a flowchart of the program of FIG. The procedure of the active instruction simulator will be described with reference to the flowchart of FIG. First, in S1, the disk simulator 122 and L
Initialize the AN simulator 123. The initialization performed in S1 is performed by the disk simulator 122 and the LAN.
The registers and memories used by the simulator 123 are initialized. Next, in S2, the instruction simulator 11
8 is initialized. In initialization of S2, registers and memories used by the instruction simulator 118 are initialized.
Then, in S3, a storage area (guest OS 134) for the guest OS 120 is secured in the memory 104, and in S4, the IPL (initial program l) of the guest computer is acquired.
oda). After activating the IPL, the instruction of the guest computer, that is, the instruction constituting the application program of the APP 119a or the APP 119b is simulated (detailed processing of S5 will be described with reference to FIG. 9). FIG. 7 is a flowchart of the program of the inactive instruction simulator. When the active system 100 operates in the procedure of FIG. 6, the inactive system 200 performs the operation of FIG. In FIG. 7, the instruction simulator is initialized in S10. The initialization in S10 is the initialization of registers and memories used by the instruction simulator. Next, in S11, a storage area for the guest OS is secured in the memory 204. Then, a function for backing up the guest computer operating in the active system 100 is started (S12). To activate the function for backing up the guest computer, the instruction simulator waits for a register and memory initialization instruction from the service processor, and in response to the initialization instruction, the instruction simulator initializes the register and memory. . Thereafter, if the mode is not the backup mode, a PSW (Program Status Wor) indicating the instruction state and the program counter is set.
Simulation of each instruction is started according to d), but instruction simulation is not performed in the backup mode. Next, a checkpoint reflection process (FIG. 8A) and a monitoring timer process (FIG. 8A)
(B)). The checkpoint reflection process will be described with reference to FIG. The checkpoint reflection process is performed by the checkpoint reflection mechanism 233. In FIG. 8A, the checkpoint reflection mechanism 233 waits for a checkpoint creation request from the active system 100 in S170. If there is a request, the checkpoint information transmitted from the active system 100 is reflected on the inactive system 200 (S171,
(FIG. 13). Figure 8 shows the procedure for generating the monitoring timer process.
A description will be given according to (B). The monitoring timer process is performed by the checkpoint reflection mechanism 233. FIG.
In (B), the counter is initialized in S173. This counter is used to count the number of times the process of confirming that the active system 100 is alive is repeated.
Next, in step S174, an alive notification from the active system 100 is waited for a predetermined period of time. In S175, it is checked whether or not there is an alive notification. If there is an alive notification, the processes of S173 and S174 are repeated. If there is no alive notification, the counter is decremented by one (S17).
6). When the counter becomes 0 or less (S177), a flag is set to process the operation of the active system 100 instead (S178). Returning to the processing of FIG. 7, in S14, it is confirmed whether or not a flag for replacing the operation of the active system is set (the flag is set in S178 of FIG. 8B). The confirmation process of S14 is a confirmation process executed at regular time intervals. This confirmation processing and S13
The checkpoint reflection process and the monitoring timer process generated in step (1) operate in parallel. If the flag has not been set, the process returns to S14. If the flag is set, the active-type substitution process (FIG. 10) in S15 is performed. After the completion of the active substitution process, that is, the reason for the occurrence of the substitution request in S17, which is the last process in FIG. Became
Determines whether a request to return to the inactive system has occurred. Therefore, if the determination in S17 is YES, the process returns to S14, and if the determination is NO, the process returns to before S164 in the flowchart of the active-system substitution process (FIG. 10). Then, the instruction simulation of the guest computer is executed again.

【0019】次に順序としては図9の説明であるが、先
に図10の活動系代替処理のフローチャートを説明す
る。図10は、図7のS15の活動系代替処理のフロー
チャートである。図10において、S160で非活動系
システム200を活動系に移行するためDISKシミュ
レータ、LANシミュレータとを初期化し、S161
で、命令シミュレータの部分的初期化を行う。命令シミ
ュレータを部分的に初期化する理由は、図7のフローチ
ャートのS10によって既に命令シミュレータの初期化
の処理が行われている。このS10では、非活動系シス
テム200はバックアップ用に命令シミュレータの初期
化を行っているので、非活動系から活動系へ移行するた
め活動系において必要となる命令シミュレータの初期化
をこのS161で行う。そして、S162で待機用レジ
スタ領域233aに格納されたレジスタ値を実行用のレ
ジスタ領域にコピーする。図3の仮想記憶部230の要
素には実行用レジスタ領域は図示されていないが、図3
の仮想記憶部130に図示されている実行用レジスタ領
域138と同様なレジスタ領域が非活動系システム20
0の仮想記憶部230にも存在するものとする。次に、
S163でPSWの値をプログラムカウンタにコピーす
る。そして、図9のゲスト計算機の命令シミュレーショ
ンの処理を行う(S164)。
Next, the sequence will be described with reference to FIG. 9. First, the flow chart of the active substitution process of FIG. 10 will be described. FIG. 10 is a flowchart of the active substitution process in S15 of FIG. In FIG. 10, in S160, the DISK simulator and the LAN simulator are initialized to shift the inactive system 200 to the active system.
Then, the instruction simulator is partially initialized. The reason for partially initializing the instruction simulator is that the initialization of the instruction simulator has already been performed in S10 of the flowchart of FIG. In this step S10, the inactive system 200 initializes the instruction simulator for backup, so that the instruction simulator necessary in the active system to shift from the inactive system to the active system is initialized in S161. . Then, in S162, the register value stored in the standby register area 233a is copied to the execution register area. Although the execution register area is not shown in the elements of the virtual storage unit 230 in FIG.
A register area similar to the execution register area 138 shown in the virtual storage unit 130 of the inactive system 20
It is assumed that it also exists in the virtual storage unit 230 of “0”. next,
In step S163, the value of the PSW is copied to the program counter. Then, an instruction simulation process of the guest computer shown in FIG. 9 is performed (S164).

【0020】次に図9に戻って図9のゲスト計算機にお
ける命令シミュレーションの処理手順を説明する。図9
に示す処理手順は、この発明におけるフォールトトレラ
ント計算機システムを実現するための命令シミュレーシ
ョンが行う主な処理である。この図9の処理において、
命令シミュレーションは、バックアップ計算機である非
活動系システム200に対して送信するチェックポイン
ト情報を生成するとともに、生成したチェックポイント
情報を非活動系システム200へ送信する。以下に図9
の詳細な処理を説明する。始めに、命令シミュレーショ
ン118は、S50にて割り込み処理の発生を確認す
る。S50で確認する割り込み処理の種類は非活動系シ
ステム200のチェックポイント反映機構233によっ
て行われているアライブタイマー割り込みと、例えばJ
OB Aに10秒、JOB Bに2秒というタイマーが
設定されていて、設定された時間によってCPUの資源
をJOB AとJOB Bとに切り替えて割り当てるよ
うな場合に発生するタイマー割り込みと、周辺装置から
周辺装置に対するアクセスの処理が終了したことを通知
するためのコードを受信するI/O割り込みの、3つの
割り込み処理を想定している。割り込みがない場合、S
51でプログラムカウンタの示すメモリから命令を取り
出し、S52で取り出した命令の解読を行なう。上記S
51とS52の処理は通常のアプリケーションプログラ
ムを実行する場合の命令シミュレータの処理と同じ動作
である。そして、解読結果に従いS53a、S53b、
S53cのいずれかに分岐する。S53aに分岐するの
は、解読結果がメモリ更新を伴わない一般命令である
時、S53bに分岐するのは、解読結果がメモリ更新を
伴う一般命令またはメモリ更新を伴う制御命令である
時、S53cに分岐するのは、解読結果がI/O命令で
ある時である。S53aに分岐した後は、通常のアプリ
ケーションプログラムを構成する命令を実行するのと同
じように命令の模擬実行を行ない、プログラムカウンタ
を更新し(S54a)、停止要求があれば、そのまま図
9の処理を終了して、停止要求がなければS50の処理
から繰り返す(S55a)。S55aで発生する停止要
求は主に以下に記載する3つのケースが考えられる。 (1)仮想操作パネルや実操作パネルなどより人手によ
り停止指示が来たとき (2)ホスト計算機のシャットダウン指示がされたと
き、或いは、シミュレータプログラムがプロセス自身ま
たはI/Oシミュレータやサービスプロセッサプロセス
よりその通知を受けたとき (3)自動運転により停止時刻を予め指定され、その時
刻に達し、ゲストOSによりゲストシステムのシャット
ダウン処理が終了し、ゲスト計算機を停止する指示をゲ
ストOSより命令により指示された時。 S53bに分岐した後は、命令の模擬実行を行ない(S
53b)、メモリ更新データまたはメモリ更新事象の記
録を行なう(S54b)。メモリ更新データの記録の処
理手順は図14に記載し、メモリ更新事象の記録の処理
手順は図20に記載する。その後S54aの処理へ分岐
する。S54bの処理でメモリ更新データの記録を行う
のはメモリ更新を伴う一般命令であるときであり、メモ
リ更新事象の記録を行うのはメモリ更新を伴う制御命令
であるときである。S53cに分岐した後は、チェック
ポイント情報の作成を行ない(図11)、S54cでI
/O命令の模擬実行を行なう(図27)。そして、再度
S55cでチェックポイント情報の作成を行なう(図1
1)。S50の処理で割り込みがあった場合は、S53
dでチェックポイント情報の作成を行ない(図11)、
割り込み処理を行ない(S54d、図25)、S55d
でチェックポイント情報の作成を行なう(図11)。図
9のフローチャートよりわかるように、割り込みが発生
した時と、I/O命令が現れた時にチェックポイント情
報の作成を行なっている。また、チェックポイント情報
を生成するための基の情報となるメモリ更新データ、或
いはメモリ更新事象の記録は、メモリ更新を伴う一般命
令或いは制御命令が実行されたときに行っている。
Next, returning to FIG. 9, the processing procedure of the instruction simulation in the guest computer of FIG. 9 will be described. FIG.
The processing procedure shown in FIG. 7 is a main processing performed by an instruction simulation for realizing the fault-tolerant computer system according to the present invention. In the processing of FIG.
The instruction simulation generates checkpoint information to be transmitted to the inactive system 200 that is the backup computer, and transmits the generated checkpoint information to the inactive system 200. Figure 9 below
Will be described in detail. First, the instruction simulation 118 confirms the occurrence of the interrupt processing in S50. The types of the interrupt processing to be confirmed in S50 include the alive timer interrupt performed by the checkpoint reflection mechanism 233 of the inactive system 200 and, for example, J
A timer interrupt that occurs when a timer of 10 seconds is set for OB A and 2 seconds for JOB B, and a CPU resource is switched and allocated to JOB A and JOB B according to the set time, and a peripheral device. And I / O interrupts for receiving a code for notifying that the access processing to the peripheral device has been completed from the CPU. If there is no interrupt, S
At 51, an instruction is fetched from the memory indicated by the program counter, and at S52, the fetched instruction is decoded. The above S
The processing of 51 and S52 is the same operation as the processing of the instruction simulator when a normal application program is executed. Then, S53a, S53b,
The process branches to one of S53c. When branching to S53a is a general instruction without a memory update, branching to S53b is performed when the decryption result is a general instruction with a memory update or a control instruction with a memory update. The branch occurs when the decoding result is an I / O instruction. After branching to S53a, a simulated execution of the instruction is performed in the same manner as the execution of the instruction constituting the normal application program, and the program counter is updated (S54a). Is ended, and if there is no stop request, the processing is repeated from S50 (S55a). The stop request generated in S55a is mainly considered in the following three cases. (1) When a stop instruction is manually input from a virtual operation panel or a real operation panel, etc. (2) When a shutdown instruction of the host computer is issued, or when the simulator program is executed by the process itself or the I / O simulator or the service processor process When the notification is received (3) The stop time is specified in advance by the automatic operation. When the stop time is reached, the guest OS shuts down the guest system, and the guest OS issues an instruction to stop the guest computer. When. After branching to S53b, a simulated execution of the instruction is performed (S53b).
53b), and record the memory update data or memory update event (S54b). The processing procedure for recording the memory update data is described in FIG. 14, and the processing procedure for recording the memory update event is described in FIG. Thereafter, the flow branches to the processing of S54a. In the process of S54b, recording of the memory update data is performed when a general instruction involving a memory update is performed, and recording of a memory update event is performed when a control instruction involving a memory update is performed. After branching to S53c, checkpoint information is created (FIG. 11).
Simulated execution of the / O instruction is performed (FIG. 27). Then, checkpoint information is created again in S55c (FIG. 1).
1). If there is an interruption in the process of S50, the process proceeds to S53.
In step d, checkpoint information is created (FIG. 11).
Interrupt processing is performed (S54d, FIG. 25), and S55d
To create checkpoint information (FIG. 11). As can be seen from the flowchart of FIG. 9, checkpoint information is created when an interrupt occurs and when an I / O instruction appears. Also, recording of memory update data or memory update event as base information for generating checkpoint information is performed when a general instruction or a control instruction accompanied by memory update is executed.

【0021】次にチェックポイント情報を作成する処理
の内容を説明する。図11は、図9のチェックポイント
情報の作成S53cとS55cとS53dとS55dの
処理の詳細である。図11において、始めにメモリ更新
データまたはメモリ更新事象データを加工してメモリの
差分データを作成する(S530,図16または図2
2)。そして作成したメモリの差分データを非活動系シ
ステム200に対してLAN300を介して送信する
(S531)。さらに、レジスタの値も非活動系システ
ム200に対してLAN300を介して送信する(S5
32)。チェックポイント情報のデータ例を図12に示
す。図12は、送信バッファ及び受信バッファのデータ
の例を示す図である。チェックポイント情報はLAN3
00を介して活動系から非活動系に送信されて引継が行
われる。活動系からは、送信バッファ133bに格納さ
れて送信され、非活動系にて受信バッファ233bにて
受信する。送信(受信)バッファは図12のように、チ
ェックポイントの開始コマンド10とチェックポイント
の終了コマンド40とを有し、チェックポイントの開始
コマンド10とチェックポイントの終了コマンド40と
の間にメモリの差分データやレジスタ値を格納する。活
動系のメモリの内容はメモリデータの開始20とメモリ
データの終了29との間にセットされる。レジスタのデ
ータはレジスタデータの開始30からレジスタデータの
終了39との間にセットされる。メモリデータは図16
と図26のフローチャートで説明する処理によって格納
される。チェックポイント情報24は、アドレス21と
上位データ22と下位データ23とによって構成され、
アドレス及びデータはメモリ更新データまたはメモリ更
新事象データを記録する処理によって格納される。レジ
スタデータ31は1からn個存在し、値のセットは図1
1のS532の処理で行う。図12に示したように送信
バッファはチェックポイント情報とレジスタ情報の2つ
を有している。しかし、図11で説明したフローチャー
トではS531によってメモリの差分データを非活動系
に送信し、S5322でレジスタの値を送信している。
この処理では、メモリ差分データとレジスタの値とを別
々に非活動系に対して送信しているので、チェックポイ
ントは図12のようではなく、メモリ情報とレジスタ情
報とをそれぞれ別々に有する2つの送信バッファが必要
となる。メモリ情報とレジスタ情報とを同時に非活動系
に送信する、つまり、531とS532の処理を1つに
まとめて行うのであれば、送信バッファは図12のよう
な内容であることが望ましい。活動系から非活動系に対
してメモリの差分データとレジスタの情報とを送信すれ
ば、非活動系は、活動系の処理を代替できるので、必要
な情報を2度に分けて送っても、1度の送信処理で送っ
ても、非活動系が代替処理をする事には影響はない。そ
の後、非活動系から通知されるチェックポイントの受信
通知を待ち(S533)、通知を受信したらメモリ更新
完了のカウンタまたはフラグをリセットする(S53
4,図29(A)及び図29(B))。
Next, the contents of the process for creating checkpoint information will be described. FIG. 11 shows the details of the processing in steps S53c, S55c, S53d, and S55d for creating the checkpoint information in FIG. In FIG. 11, first, memory update data or memory update event data is processed to create memory difference data (S530, FIG. 16 or FIG. 2).
2). Then, the created difference data in the memory is transmitted to the inactive system 200 via the LAN 300 (S531). Further, the value of the register is also transmitted to the inactive system 200 via the LAN 300 (S5).
32). FIG. 12 shows a data example of the checkpoint information. FIG. 12 is a diagram illustrating an example of data in the transmission buffer and the reception buffer. Checkpoint information is LAN3
The data is transmitted from the active system to the non-active system via 00 to be taken over. From the active system, it is stored and transmitted in the transmission buffer 133b, and received by the reception buffer 233b in the inactive system. As shown in FIG. 12, the transmission (reception) buffer has a checkpoint start command 10 and a checkpoint end command 40, and a memory difference between the checkpoint start command 10 and the checkpoint end command 40. Stores data and register values. The contents of the active memory are set between the start 20 of the memory data and the end 29 of the memory data. The register data is set between the start 30 of the register data and the end 39 of the register data. The memory data is shown in FIG.
Are stored by the processing described in the flowchart of FIG. The checkpoint information 24 is composed of an address 21, upper data 22, and lower data 23,
The address and data are stored by a process of recording memory update data or memory update event data. There are 1 to n register data 31, and the value set is shown in FIG.
This is performed in the process of S532 of FIG. As shown in FIG. 12, the transmission buffer has two items, checkpoint information and register information. However, in the flowchart described with reference to FIG. 11, the difference data in the memory is transmitted to the inactive system in S531, and the value of the register is transmitted in S5322.
In this processing, since the memory difference data and the register value are separately transmitted to the inactive system, the checkpoint is not as shown in FIG. 12, and two check points each having memory information and register information are separately provided. A transmission buffer is required. If the memory information and the register information are simultaneously transmitted to the inactive system, that is, if the processes of 531 and S532 are collectively performed, the transmission buffer desirably has the contents as shown in FIG. If the difference data in the memory and the information of the register are transmitted from the active system to the inactive system, the inactive system can substitute the processing of the active system. Therefore, even if the necessary information is transmitted twice, Sending in one transmission process does not affect that the inactive system performs the substitution process. Thereafter, the process waits for a checkpoint reception notification from the inactive system (S533), and upon receiving the notification, resets the memory update completion counter or flag (S53).
4, FIG. 29 (A) and FIG. 29 (B)).

【0022】図13は、図8(A)のチェックポイント
の反映処理S171の詳細なフローチャートである。図
13において、S1710で非活動系システム200
は、メモリの差分データとレジスタ値を活動系システム
100よりLAN300を介して受信し、全データを受
信したことを確認するまでS1710の処理を繰り返
す。S1710の処理は所定の時間内に処理を繰り返す
ようになっているので、全データを受信していない場合
は(S1711,No)タイムアウトを確認し(S17
15)、タイムアウトになったら、つまり、非活動系シ
ステム200によって所定の時間内にチェックポイント
情報を受信することが出来なかったということになり、
非活動系システム200が活動系システム100の処理
を代替することができないと判断する。この判断に基づ
いて、もともと活動系として動作していた活動系システ
ム100に対して、処理を代替することを要求するフラ
グをセットする(S1716)。全データを受信すると
(S1711)、受信したメモリの差分データに基づい
て非活動系システム200のメモリ204の更新を行な
う(S1712,図30)。そして、待機用レジスタ領
域233aにレジスタ値を更新する(S1713)。S
1712,S1713の処理を行なうことでチェックポ
イント情報とレジスタ値の反映が完了したので、処理の
完了を非活動系システム200から活動系システム10
0に対してLAN300を介して通知する(S171
4)。このS1714で行う通知は、上記図11のS5
33で受信する終了通知である。
FIG. 13 is a detailed flowchart of the checkpoint reflection processing S171 of FIG. 8A. In FIG. 13, in S1710, the inactive system 200
Receives the difference data and the register value of the memory from the active system 100 via the LAN 300, and repeats the process of S1710 until it is confirmed that all the data has been received. Since the processing in S1710 is repeated within a predetermined time, if all data has not been received (S1711, No), a timeout is confirmed (S1711).
15) If a timeout occurs, that is, the inactive system 200 cannot receive the checkpoint information within a predetermined time,
It is determined that the inactive system 200 cannot substitute the processing of the active system 100. Based on this determination, a flag is set for the active system 100, which originally operated as the active system, requesting that processing be substituted (S1716). When all the data is received (S1711), the memory 204 of the inactive system 200 is updated based on the received difference data of the memory (S1712, FIG. 30). Then, the register value is updated in the standby register area 233a (S1713). S
Since the reflection of the checkpoint information and the register value is completed by performing the processing of 1712 and S1713, the completion of the processing is notified from the inactive system 200 to the active system 10.
0 is notified via the LAN 300 (S171).
4). The notification performed in S1714 is the same as the notification in S5 of FIG.
33 is an end notification received.

【0023】図14は、図9のS54bの「メモリ更新
データまたは更新事象の記録」の処理のうち、「メモリ
更新データの記録」の処理を説明するフローチャートで
ある。メモリ更新を伴う一般命令である場合には、図1
4のメモリ更新データの記録の処理を行う。この実施の
形態1ではメモリ更新データの記録を行う処理のため
に、メモリ更新が行われたメモリのアドレスを記憶する
テーブルとしてスタックを用いる。スタックは図15に
示すようなスタックカウンタ0からスタックカウンタ
(SC+N)個のアドレスを記憶することができる。ス
タックカウンタ0から順にアドレスをスタックに格納し
ていき、スタックがいっぱいになってアドレスを記憶す
る領域がなくなったときに、上記図11で説明したチェ
ックポイントの作成処理を行う。図14のフローチャー
トに従いメモリ更新データの記録処理を説明する。図1
4のS5430ではスタックカウンタ(SC)とスタッ
クサイズを比較して、スタックカウンタの方がスタック
サイズと同じか大きい場合は、つまり、図15に示した
ようなスタックに記憶されているアドレスの数がスタッ
クカウンタ(SC)+Nまでフルに記憶されていて空き
領域が存在しない場合は、S5431でチェックポイン
トの作成処理(図11)を行ってからS5432へ進
む。小さい場合、つまり、スタックにアドレスを記憶す
る領域がまだある状態の場合は、S5432の処理へ進
む。S5432では、スタックカウンタをポインタとし
てスタックにメモリ更新の行われたアドレスをセット
し、スタックカウンタに1を加算する。図15に示すス
タックの例ではSC−1までアドレスが格納されて使用
されている。スタックにはスタックサイズが一杯になる
まで(スタックカウンタがSC+nになるまで)アドレ
スを格納することができ、スタックカウンタがSC+n
になるとS5430の判断処理で図11のチェックポイ
ント情報の作成処理を行なう。
FIG. 14 is a flowchart for explaining the process of “recording memory update data” in the process of “recording memory update data or update event” in S54b of FIG. If the instruction is a general instruction accompanied by a memory update,
The recording process of the memory update data of No. 4 is performed. In the first embodiment, a stack is used as a table for storing an address of a memory whose memory has been updated for a process of recording memory update data. The stack can store addresses from the stack counter 0 to the stack counter (SC + N) as shown in FIG. The addresses are sequentially stored in the stack from the stack counter 0, and when the stack becomes full and there is no more area for storing addresses, the checkpoint creation processing described with reference to FIG. 11 is performed. The recording process of the memory update data will be described with reference to the flowchart of FIG. Figure 1
In S5430 of No. 4, the stack counter (SC) is compared with the stack size. If the stack counter is equal to or larger than the stack size, that is, if the number of addresses stored in the stack as shown in FIG. If the stack counter (SC) + N is fully stored and there is no free area, a check point creation process (FIG. 11) is performed in S5431, and the process proceeds to S5432. If it is smaller, that is, if there is still an area for storing an address in the stack, the process proceeds to S5432. In S5432, the address at which the memory has been updated is set in the stack using the stack counter as a pointer, and 1 is added to the stack counter. In the example of the stack shown in FIG. 15, addresses up to SC-1 are stored and used. An address can be stored in the stack until the stack size becomes full (until the stack counter becomes SC + n), and the stack counter becomes SC + n.
Then, the process of creating checkpoint information in FIG. 11 is performed in the determination process of S5430.

【0024】図16は、図11のS530の「メモリ更
新データまたは更新事象データを加工し差分データを作
成する」処理の内「メモリ更新データを加工し差分デー
タを作成する」処理を説明するフローチャートである。
上記図14で説明したスタックを用いて図12に示した
チェックポイント情報24を生成する。図12のチェッ
クポイント情報24にメモリ差分データをセットするた
めに、図16の処理では、ルックアップテーブルを用い
る。図17にルックアップテーブルの構成を示す。図1
7に示すルックアップテーブルは、0〜255までのサ
ブアドレスによって管理されて、256個のルックアッ
プ情報を記憶することができる。ルックアップ情報は、
メモリ更新の行われたメモリのアドレスと送信バッファ
のポインタとを有している。図18にスタックとルック
アップテーブルとチェックポイント情報を2つ以上記憶
する送信バッファの関係を説明する。図18において、
スタック50には更新が行われたアドレスが記憶されて
いる。ルックアップテーブルにはスタックに記憶されて
いるアドレスが重複している場合は1つにまとめて記憶
し、スタックに格納されているアドレスが重複していな
いアドレスについてはそのままルックアップテーブルに
アドレスを記憶する。そして、アドレスに対応して記憶
されているメモリのデータとアドレスとを送信バッファ
に記憶させるため、送信バッファのポインタをルックア
ップテーブルにそのアドレスに対応させて記憶する。例
えば、図18のスタックにはスタックカウンタ(3)
と、スタックカウンタ(5)に同じアドレス(10)が
記憶されている。ルックアップテーブルには重複したア
ドレスは1つにまとめて記憶されるので、スタックカウ
ンタ(3)とスタックカウンタ(5)に記憶されている
アドレス(10)はルックアップテーブルのエントリ
(10)に記憶される。そして、ルックアップテーブル
は、アドレスに対応する送信バッファのポインタも記憶
するので、エントリ(10)に記憶されているアドレス
(10)に対応する送信バッファのポインタは(5)と
記憶されている。ルックアップテーブルに記憶されてい
る送信バッファのポインタは、送信バッファに記憶する
チェックポイント情報の記憶位置を示すものである。チ
ェックポイント情報は、図18に示すようにアドレスと
アドレスに記憶されているメモリのデータを有するもの
であり、データは4バイトずつに分割されて記憶され
る。送信バッファのポインタは、アドレスを記憶する開
始位置を示しているので次の送信バッファのポインタを
求める場合は、直前の送信バッファのポインタに3を加
算して新しい送信バッファのポインタとする。図16の
フローチャートは図18に示した送信バッファを生成す
るためのチェックポイント機構133の動作手順を示し
ている。以下に図16のフローチャートの手順を説明す
る。図16において、S5300では、送信バッファに
記憶するチェックポイント情報のポインタ(b)を0に
セットする。ポインタ(b)は送信バッファの記憶位置
を管理するための情報である。そして、S5301でル
ックアップテーブルの全エントリを無効化する。ルック
アップテーブル51は、図16の処理を行うたびに全エ
ントリを無効化される。次に、S5302でsを0にセ
ットする。sは、スタック50の参照するアドレスが記
憶されているスタックカウンタを指定するための指標で
ある。S5303からS5309までの処理を繰り返し
て、チェックポイント情報を生成して、送信バッファに
格納する。S5303において、s<SCを判断して、
s<SCであればS5304へ進み、s≧SCである場
合は図16の処理を終了する。SCは、スタック50の
アドレスが記憶されている最後の位置を示すカウンタで
ある。sの初期値は0であるため、スタックカウンタ0
の位置にあるアドレスから順に処理を行う。S5304
で、スタック(s)よりアドレスを取り出し(取り出し
たアドレスをaとする)、aのビット10−3の8ビッ
トを切り出してX(Xはルックアップテーブル51のエ
ントリを示すサブアドレス)とする。aのビット10−
3の8ビットを切出してXを求めているが、これは既に
過去にそのアドレスをチェックして送信したかどうかを
全サーチすると処理時間がかかるため、ルックアップテ
ーブルによるある種のハッシュ処理を行っていることを
示している。このハッシュ処理におけるハッシュキーと
してアドレスのビット10−3を使用している。S53
04で切り出したXをルックアップテーブルのサブアド
レスに使用して、ルックアップテーブルエントリ(X)
が無効であるか確認する(S5305)。無効である場
合は、S5306でルックアップテーブルエントリ
(X)に、S5304で取り出したアドレスaを格納す
るとともに、bを送信バッファのポインタとしてセット
する。S5307で送信バッファにチェックポイント情
報を格納する。送信バッファのチェックポイント情報を
格納する位置は、ルックアップテーブルのポインタbで
ある。このため、送信バッファのポインタbの位置にア
ドレスaをセットし、送信バッファのポインタb+1の
位置にメモリ上のアドレスaの位置からデータを4バイ
ト分取得して格納し、送信バッファのポインタb+2の
位置にメモリ上のアドレスa+4の位置から4バイト分
を取得して格納し、ポイントbに3を加算して、次に送
信バッファにチェックポイント情報を格納するための位
置を求めておく。送信バッファにチェックポイント情報
を1つ格納した後、スタック50より次のアドレスを取
り出すため、スタックカウンタを示す指標であるsに1
を加算して(S5308)、S5303の処理へ戻る。
S5305で、ルックアップテーブルエントリ(X)が
無効でない、つまり、既にルックアップテーブルエント
リ(X)にデータが格納されていると、ルックアップテ
ーブルエントリ(X)のアドレスとアドレスaとを比較
して、同じであれば、メモリ上のデータには変化がない
ので、S5308の処理へ進む。異なるアドレスであれ
ば、S5306へ進む。S5306では、のルックアッ
プテーブルにアドレスaと送信バッファのポインタbと
を格納するとともに、S5307で送信バッファにアド
レスとデータを格納する処理を行う。S5309でNO
であるということは、ルックアップテーブルのエントリ
あふれを意味する。その場合には、FIFO(Firs
t In First Out)のアルゴリズムを適用
するために「aをセット」している。以上がメモリ更新
を伴う一般命令が実行された場合の、メモリ更新データ
の記録処理とチェックポイント情報を送信バッファに格
納する為の処理である。
FIG. 16 is a flowchart for explaining the process of "processing the memory update data and generating the difference data" in the process of "processing the memory update data or update event data and generating the difference data" in S530 of FIG. It is.
The checkpoint information 24 shown in FIG. 12 is generated using the stack described in FIG. In order to set the memory difference data in the checkpoint information 24 of FIG. 12, a lookup table is used in the processing of FIG. FIG. 17 shows the configuration of the lookup table. Figure 1
The lookup table shown in FIG. 7 is managed by sub-addresses from 0 to 255, and can store 256 pieces of lookup information. Lookup information is
It has the address of the memory where the memory was updated and the pointer of the transmission buffer. FIG. 18 illustrates the relationship between a stack, a lookup table, and a transmission buffer that stores two or more checkpoint information. In FIG.
The stack 50 stores the updated address. If the addresses stored in the stack are duplicated in the look-up table, they are stored together as one, and if the addresses stored in the stack are not duplicated, the addresses are directly stored in the look-up table. I do. Then, in order to store the data and the address of the memory stored corresponding to the address in the transmission buffer, the pointer of the transmission buffer is stored in the lookup table corresponding to the address. For example, the stack in FIG. 18 has a stack counter (3).
And the same address (10) is stored in the stack counter (5). Since the duplicated addresses are collectively stored in the lookup table, the addresses (10) stored in the stack counter (3) and the stack counter (5) are stored in the entry (10) of the lookup table. Is done. Since the lookup table also stores the pointer of the transmission buffer corresponding to the address, the pointer of the transmission buffer corresponding to the address (10) stored in the entry (10) is stored as (5). The transmission buffer pointer stored in the look-up table indicates the storage position of the checkpoint information stored in the transmission buffer. As shown in FIG. 18, the checkpoint information has an address and data of a memory stored in the address, and the data is divided into four bytes and stored. Since the pointer of the transmission buffer indicates the starting position for storing the address, when obtaining the pointer of the next transmission buffer, 3 is added to the pointer of the immediately preceding transmission buffer to obtain a new transmission buffer pointer. The flowchart of FIG. 16 shows the operation procedure of the checkpoint mechanism 133 for generating the transmission buffer shown in FIG. Hereinafter, the procedure of the flowchart of FIG. 16 will be described. In FIG. 16, in S5300, the pointer (b) of the checkpoint information stored in the transmission buffer is set to 0. The pointer (b) is information for managing the storage position of the transmission buffer. Then, in step S5301, all entries in the lookup table are invalidated. All entries in the look-up table 51 are invalidated each time the processing in FIG. 16 is performed. Next, s is set to 0 in S5302. s is an index for designating a stack counter in which an address referred to by the stack 50 is stored. By repeating the processing from S5303 to S5309, checkpoint information is generated and stored in the transmission buffer. In S5303, s <SC is determined,
If s <SC, the process advances to step S5304. If s ≧ SC, the process in FIG. 16 ends. SC is a counter indicating the last position where the address of the stack 50 is stored. Since the initial value of s is 0, the stack counter 0
The processing is performed in order from the address at the position. S5304
Then, an address is fetched from the stack (s) (the fetched address is assumed to be a), and 8 bits of bit 10-3 of a are cut out to be X (X is a subaddress indicating an entry of the lookup table 51). bit 10- of a
The X is obtained by cutting out the 8 bits of 3. However, since it takes a long time to perform a full search to check whether or not the address has been transmitted in the past, a certain type of hash processing using a lookup table is performed. It indicates that. Bit 10-3 of the address is used as a hash key in this hash processing. S53
04 is used as the sub-address of the look-up table, and the X extracted at step 04 is used for the lookup table entry (X).
Is invalid (S5305). If invalid, the address a extracted in S5304 is stored in the lookup table entry (X) in S5306, and b is set as a pointer of the transmission buffer. In step S5307, check point information is stored in the transmission buffer. The position where the checkpoint information of the transmission buffer is stored is the pointer b of the lookup table. Therefore, the address a is set at the position of the pointer b in the transmission buffer, the data of 4 bytes is acquired and stored from the position of the address a on the memory at the position of the pointer b + 1 in the transmission buffer, and the pointer b + 2 of the transmission buffer is set. Four bytes from the address a + 4 on the memory are acquired and stored in the position, 3 is added to the point b, and a position for storing the checkpoint information in the transmission buffer is obtained in advance. After one checkpoint information is stored in the transmission buffer, the next address is taken out of the stack 50.
Is added (S5308), and the process returns to S5303.
In step S5305, if the lookup table entry (X) is not invalid, that is, if data is already stored in the lookup table entry (X), the address of the lookup table entry (X) is compared with the address a. If they are the same, there is no change in the data on the memory, and the process proceeds to S5308. If the addresses are different, the process advances to step S5306. In step S5306, the address a and the pointer b of the transmission buffer are stored in the lookup table, and in step S5307, the address and data are stored in the transmission buffer. NO in S5309
Means that the lookup table has overflowed. In that case, the FIFO (Firs
“Set a” to apply the algorithm of “t In First Out”. The above is the processing for recording the memory update data and the processing for storing the checkpoint information in the transmission buffer when the general instruction accompanied by the memory update is executed.

【0025】次に、図20を用いて図9のS54bのメ
モリ更新事象の記録の処理について処理手順を説明す
る。図20は、図9のS54bの「メモリ更新データま
たは更新事象の記録」の処理のうち「メモリ更新事象の
記録」の処理のフローチャートである。図20のメモリ
更新事象の記録の処理では、図21に示す事象テーブル
52を使用してメモリ更新事象の記録を行う。図21に
示す事象テーブル52は、網がけで示したエントリを1
つ以上記憶する。エントリはメモリ更新事象を記憶する
ためのものである。エントリは行と列によってその記憶
位置を管理されている。事象テーブル52は、列方向に
0から255までの256のセットを有しており行方向
に0から7までの8個のウェイを有している。上記エン
トリはこのセットとウェイとによってその記憶位置を特
定される。アドレスは0から31までの32ビットの情
報であり、エントリにはアドレスのビット31−28が
格納される。また、アドレスのビット27−20を切り
出して、切り出した値をセットとして用いる。図20に
おいて、S5490は、メモリの更新が行われたアドレ
スのビット27−20を切り出して事象テーブルのセッ
ト(s)を求める。求めたセットに対して事象テーブル
の全ウェイ(セット(s)のウェイ0からウェイ7)を
調べて、アドレスのビット31−28が一致するウェイ
(w)を求める。上記したように、図21の事象テーブ
ル52の行方向がウェイであり、wにより対象とするウ
ェイを決定される。ウェイは0から7までの8ウェイあ
る。列方向がセットであり、sにより対象とするセット
を決定される。セットは0から255までの256セッ
トある。ウェイとセットとで決定される位置がエントリ
であり、エントリには4ビットの情報が格納されてい
る。この4ビットの情報は、S5496でエントリに格
納されるアドレスのビット31−28である。図20に
戻る。S5491で一致するウェイがあれば、図20の
処理を終了する。一致するウェイがなければ、S549
2以降の処理を行う。S5492では、S5490で求
めたセット(s)のウェイ0から7に無効なエントリ
(値がオール1であるエントリ)があるか否かを探す。
見つかったエントリのウェイをeとする。S5493で
セット(s)の空いているウェイが無い場合(つまり値
がオール1であるエントリが見つからない場合)は、S
5494の処理である図11のチェックポイント情報の
作成の処理を行う。つまり、セット(s)のウェイ0か
らウェイ7全てのエントリに情報が格納されている場合
に、チェックポイント情報の作成処理を行う。チェック
ポイント情報の作成処理を行うと事象テーブル52がク
リアされるので、S5495でセット(s)のウェイ0
〜ウェイ7のうち任意の0〜7をeとする。eが決まっ
たらセット(s)のウェイeのエントリに対して、アド
レスのビット31−28をセットする(S5496)。
図20のS5490でアドレスのビット27−20を切
り出して事象テーブル52のセット(s)を求めていた
が、これはハッシュ処理である。ハッシュキーとしてア
ドレスのビット27−20を用いている。このフォール
トトレラント計算機システムのメモリのページの単位を
4KBとして、ページ毎の管理をするものと仮定してい
る。従って、アドレスのビット19−0は無視される事
になる。全ページを見ると1M個のハッシュエントリが
必要になるので、8ビット使った256個にセットを制
限している。また、エントリにはアドレスの31−28
の4ビットを格納している。これはハッシュキーがダイ
レクトハッシュとなっているので、事象テーブル52を
検索したときに既にアドレスビット27−20はセット
(s)に含まれている。このため、セット(s)に含ま
れていないアドレスの上位のビット31−28のみの情
報を、エントリに格納するようにしている。勿論、冗長
な情報であるビット31−20や31−0(下位20ビ
ットはオール0である)がエントリに格納されても構わ
ない。
Next, the processing procedure for recording the memory update event in S54b of FIG. 9 will be described with reference to FIG. FIG. 20 is a flowchart of the process of “recording a memory update event” in the process of “recording memory update data or update event” in S54b of FIG. In the process of recording the memory update event in FIG. 20, the memory update event is recorded using the event table 52 shown in FIG. The event table 52 shown in FIG.
Remember one or more. The entry is for storing a memory update event. An entry has its storage location managed by row and column. The event table 52 has 256 sets from 0 to 255 in the column direction, and has eight ways from 0 to 7 in the row direction. The storage location of the entry is specified by the set and the way. The address is 32-bit information from 0 to 31, and bits 31 to 28 of the address are stored in the entry. Also, bits 27-20 of the address are cut out, and the cut out value is used as a set. In FIG. 20, in S5490, bits 27-20 of the address at which the memory has been updated are cut out to determine the event table set (s). By examining all the ways (way 0 to way 7 of the set (s)) in the event table with respect to the obtained set, a way (w) in which bits 31 to 28 of the address match is obtained. As described above, the row direction of the event table 52 in FIG. 21 is the way, and the target way is determined by w. There are 8 ways from 0 to 7. The set is in the column direction, and the target set is determined by s. There are 256 sets from 0 to 255. A position determined by the way and the set is an entry, and the entry stores 4-bit information. This 4-bit information is bits 31-28 of the address stored in the entry in S5496. Referring back to FIG. If there is a matching way in S5491, the process of FIG. 20 ends. If there is no matching way, S549
The processing after 2 is performed. In S5492, a search is made to determine whether there are any invalid entries (entries whose values are all 1) in ways 0 to 7 of the set (s) obtained in S5490.
Let e be the way of the found entry. If there is no empty way of the set (s) in S5493 (that is, if an entry having a value of all 1 is not found),
The process of creating the checkpoint information of FIG. 11 which is the process of 5494 is performed. That is, when information is stored in all entries of way 0 to way 7 of the set (s), checkpoint information creation processing is performed. Since the event table 52 is cleared when the checkpoint information creation processing is performed, the way 0 of the set (s) is set in S5495.
Arbitrary 0 to 7 among the ways 7 are defined as e. When e is determined, bits 31-28 of the address are set for the entry of way e in set (s) (S5496).
Although bits 27-20 of the address are cut out in S5490 in FIG. 20 to obtain the set (s) of the event table 52, this is a hash process. Bits 27-20 of the address are used as the hash key. It is assumed that the page unit of the memory of the fault-tolerant computer system is set to 4 KB, and management is performed for each page. Therefore, bits 19-0 of the address will be ignored. Since all pages require 1M hash entries, the set is limited to 256 using 8 bits. The entry contains the address 31-28.
Are stored. Since the hash key is a direct hash, when the event table 52 is searched, the address bits 27-20 are already included in the set (s). Therefore, information of only the upper bits 31 to 28 of the address not included in the set (s) is stored in the entry. Of course, bits 31-20 and 31-0 (the lower 20 bits are all 0) which are redundant information may be stored in the entry.

【0026】図22は、図10のチェックポイント情報
の生成処理のS530の「メモリ更新データまたは更新
事象データを加工し、差分データを作成」する処理のう
ち、メモリ更新事象データを加工し、つまり、事象テー
ブル52を用いて差分データを作成する処理のフローチ
ャートである。図22において、S5310で送信バッ
ファのポインタbを0にセットする。送信バッファは、
1つ以上のチェックポイント情報を記憶して、活動系シ
ステム100から非活動系システム200に送信され
る。以下に説明するS5320の処理で、チェックポイ
ント情報が生成される。S5311でsに0をセットす
る。sは、図21に示した事象テーブルのセットを指定
するための変数に用いる。図21で説明したように、セ
ットは0から255まであり、つまり、sは0から最大
255まで変化するので、S5312でs<256であ
るかを確認して、事象テーブルの全てのセットの走査が
終了したかを確認する。sが256以上であれば図22
の処理を終了する。sが256より小さければS531
3の処理へ進む。S5313では、wに0をセットす
る。wは図21に示した事象テーブルのウェイを指定す
るための変数に用いる。図21で説明したようにウェイ
は0から7まであり、つまり、wは0から最大7まで変
化するので、S5314でw<8であるかを確認し、1
つのセットについて全てのウェイの走査の終了を確認す
る。wが8以上であれば、次のセットの走査を行うた
め、sに1を加算する(S5315)。その後、S53
12から処理を繰り返す。wが8より小さい場合は、S
5315以降の処理を行う。S5315では、事象テー
ブルのエントリ(s,w)の値がオール1であるか確認
する。オール1であるということは、初期値がセットさ
れたままの未使用状態を示している。未使用であれば、
送信バッファに格納する必要ではないので、次のウェイ
を走査するため、S5319でwに1を加算し、S53
14の処理へ戻る。事象テーブル(s,w)がオール1
でなければ、S5316でビット31−0の32ビット
の情報を持つaに、事象テーブルのエントリ(s,w)
に格納されている値を取り出して、aの31ビットから
28ビットにセットし、セット(s)のsの値をaの2
7ビットから20ビットにセットし、残りの19ビット
から0ビットに0をセットする。S5316の処理を図
23に示す。図23に示すようにaの19ビットから0
ビットまでは0がセットされているので、有効となる値
はaの31ビットから20ビットにセットされている値
である。次に、S5317でcに0をセットする。上記
したようにエントリに記憶されている情報はページアド
レスである。このため、cは1ページ内のデータ転送の
カウンタとして使っている。これから説明するS532
0の処理は、aによって示されるページのアドレスと、
データとをチェックポイント情報として送信バッファに
格納するための処理である。1ページ内の転送データは
4096バイトであるため、S5318によってcが4
096バイト以上であるかどうかを確認している。S5
318でcが4096バイト以上の時は、次のウェイの
処理を行うためS5319でwに1を加算し、S531
4へ戻る。cが4096バイトより小さいときは、送信
バッファのポインタ(b)にa+c(「a+c」はアド
レス)を格納し、送信バッファのポインタの位置をずら
してb+1の位置に、メモリのアドレス「a+c」から
4バイトをセットし、さらに、送信バッファのポインタ
をずらしてb+2の位置に、メモリのアドレス「a+c
+4」から4バイトをセットし、bに3を加算し、cに
8を加算する(S5320)。その後、S5318へ戻
り処理を繰り返す。図24に送信バッファにアドレスと
データであるチェックポイント情報を格納する例を示
す。図24に示すように送信バッファのポインタbの位
置にアドレスを格納し、ポインタb+1とポインタb+
2の位置にデータをそれぞれ4バイトずつ格納する。こ
の処理をS5320によって、256回繰り返す。以上
が、メモリ更新を伴う制御命令が発生した場合のメモリ
更新事象の記録処理とメモリ更新事象を用いたチェック
ポイント情報の生成処理の手順である。
FIG. 22 shows processing of the memory update event data in the process of processing the memory update data or update event data to create difference data in S530 of the checkpoint information generation processing of FIG. 12 is a flowchart of a process for creating difference data using the event table 52. In FIG. 22, the pointer b of the transmission buffer is set to 0 in S5310. The transmission buffer is
One or more checkpoint information is stored and transmitted from active system 100 to inactive system 200. Checkpoint information is generated in the process of S5320 described below. In step S5311, s is set to 0. s is used as a variable for specifying the set of the event table shown in FIG. As described with reference to FIG. 21, the number of sets is from 0 to 255, that is, s changes from 0 to a maximum of 255. Check if has finished. If s is 256 or more, FIG.
Is completed. If s is smaller than 256, S531
Proceed to step 3. In S5313, 0 is set to w. w is used as a variable for designating a way in the event table shown in FIG. As described with reference to FIG. 21, the number of ways is from 0 to 7, that is, w changes from 0 to a maximum of 7. Therefore, in S5314, it is checked whether w <8 and 1 is set.
Confirm the end of scanning of all ways for one set. If w is 8 or more, 1 is added to s to perform the next set of scans (S5315). Then, S53
The process is repeated from step 12. If w is less than 8, S
The processing after 5315 is performed. In S5315, it is checked whether the value of the entry (s, w) in the event table is all 1s. All 1s indicate an unused state in which the initial value is still set. If unused,
Since it is not necessary to store in the transmission buffer, 1 is added to w in S5319 to scan the next way, and
It returns to the process of 14. Event table (s, w) is all 1
If not, the entry (s, w) of the event table is added to a having 32-bit information of bits 31-0 in S5316.
Is taken out and set from 31 bits to 28 bits of a, and the value of s of set (s) is set to 2 of a.
7 bits are set to 20 bits, and 0 bits are set to 0 bits from the remaining 19 bits. FIG. 23 shows the process of S5316. As shown in FIG.
Since 0 is set up to the bit, the effective value is the value set in the 31st to 20th bits of a. Next, 0 is set to c in S5317. The information stored in the entry as described above is the page address. Therefore, c is used as a counter for data transfer within one page. S532 to be described below
The processing of 0 is the address of the page indicated by a,
This is a process for storing data and checkpoint information in the transmission buffer. Since the transfer data in one page is 4096 bytes, c is set to 4 by S5318.
It is checked whether it is 096 bytes or more. S5
If c is equal to or more than 4096 bytes in 318, 1 is added to w in S5319 to perform processing of the next way, and S531
Return to 4. When c is smaller than 4096 bytes, a + c (“a + c” is an address) is stored in the pointer (b) of the transmission buffer, and the position of the pointer in the transmission buffer is shifted to a position of b + 1 from the address “a + c” of the memory. 4 bytes are set, and further, the pointer of the transmission buffer is shifted to a position of b + 2 at a memory address “a + c”.
Four bytes are set from "+4", 3 is added to b, and 8 is added to c (S5320). Thereafter, the process returns to S5318 to repeat the processing. FIG. 24 shows an example of storing address and checkpoint information as data in a transmission buffer. As shown in FIG. 24, the address is stored at the position of the pointer b in the transmission buffer, and the pointer b + 1 and the pointer b +
The data is stored in each of the four locations in 4 bytes. This processing is repeated 256 times by S5320. The above is the procedure of the memory update event recording process and the checkpoint information generation process using the memory update event when a control instruction involving a memory update occurs.

【0027】図25は、図9のS54dの命令シミュレ
ータによる割り込み処理の詳細なフローチャートであ
る。図25において、割り込み処理では割り込みの種類
を判断して種類毎に処理を行なう(S540)。割り込
みの種類はこの実施の形態1では3種類あり、活動系よ
り非活動系に対して動作可能であることを確認する「ア
ライブタイマーの割り込み」と、「I/O割り込み」
と、予めJOB毎に処理時間を定めておき、処理時間に
なったJOBに対してタイマー割り込みを実行し、当該
JOBを終了させてべつのJOBを起動させるために強
制的にPSWの値をセットする処理を行なう「タイマー
割り込み」との3種類である。割り込みの種類毎に処理
の内容を説明する。「アライブタイマー割り込み」が発
生すると、非活動系は活動系が動作可能状態であること
を確認するので(S541)、活動系が動作可能状態で
あれば非活動系に対してLAN300を介してアライブ
通知を行ない(S542)、次に再度アライブタイマー
の割り込み処理を行なう為のタイマーをセットする。こ
のアライブタイマー割り込みの処理は、図7のS13に
よって生成された監視タイマープロセスによって行われ
る。「I/O割り込み」が発生すると、旧PSWの値を
メモリへ格納し(S544)、I/O動作によるメモリ
更新データまたはメモリ更新事象の記録を行なう(S5
46,図26)。次に、新PSWの値をメモリより取り
出してセットする。プログラムカウンタも更新する(S
547)。本来はPSWはハードウェアのレジスタであ
るが、この発明の場合はソフトウェアにてハード動作を
模擬しているので、PSWは「命令シミュレータ」にあ
るメモリ変数である。「タイマー割り込み」が発生する
と、旧PSWの値をメモリへ格納し(S548)、メモ
リ更新データまたはメモリ更新事象の記録を行なう(S
549,図14,図20)。次に、新PSWの値をメモ
リより取り出してセットする。プログラムカウンタも更
新する(S550)。
FIG. 25 is a detailed flowchart of the interrupt processing by the instruction simulator in S54d of FIG. In FIG. 25, in the interrupt processing, the type of the interrupt is determined and the processing is performed for each type (S540). In the first embodiment, there are three types of interrupts. An "alive timer interrupt" and an "I / O interrupt" are used to confirm that operation is possible from an active system to an inactive system.
A processing time is determined in advance for each job, a timer interrupt is executed for the job that has reached the processing time, and the value of the PSW is forcibly set in order to terminate the job and start another job. And “timer interrupt” for performing the process. The contents of the processing will be described for each type of interrupt. When the "alive timer interrupt" occurs, the inactive system confirms that the active system is operable (S541), and if the active system is operable, alive the inactive system via the LAN 300. A notification is made (S542), and a timer for interrupting the alive timer is set again. The processing of the alive timer interrupt is performed by the monitoring timer process generated in S13 of FIG. When the "I / O interrupt" occurs, the old PSW value is stored in the memory (S544), and the memory update data or the memory update event by the I / O operation is recorded (S5).
46, FIG. 26). Next, the value of the new PSW is retrieved from the memory and set. Also update the program counter (S
547). Originally, the PSW is a hardware register, but in the case of the present invention, since the hardware operation is simulated by software, the PSW is a memory variable in the “instruction simulator”. When the "timer interrupt" occurs, the old PSW value is stored in the memory (S548), and the memory update data or the memory update event is recorded (S548).
549, FIGS. 14, 20). Next, the value of the new PSW is retrieved from the memory and set. The program counter is also updated (S550).

【0028】図26は、図25のS546の「I/O動
作によるメモリ更新データまたはメモリ更新事象の記
録」の処理のフローチャートである。図26において、
S5460でCCW(channel command
word)の先頭アドレスを求めて、求めたアドレス
をPとする。そして、S5461で、Pにより示された
メモリの内容よりCCWの値を取り出す。CCWは、何
をするか指示されたオーダコードとデータ所在を示した
情報からできている。DISKの例でいうと、DISK
から呼んでメモリに書く、メモリから呼んでDISKに
書く、といったオーダが存在する。他の情報としては、
DISK上のアドレス(シリンダ、セレクタ、オフセッ
ト等からなる)、メモリ上のアドレスなどがある。S5
462では、メモリへの更新の有無のチェックを行って
いる。ここでの調査はメモリへの書き込みオーダが対象
であり、DISKの場合は「DISKのREADオー
ダ」が該当する。S5463で、書き込み動作があれ
ば、S5464へ進み、なければ図26の処理を終了す
る。S5464で、aにCCWより取り出したメモリア
ドレスをセットし、cにCCWより取り出した転送バイ
ト長/8をセットする。次に、S5465でcが0より
大きいときはS5466へ進み、cが0以下の時は図2
6の処理を終了する。S5466では、図14のメモリ
更新データの記録処理、又は、図20のメモリ更新事象
の記録処理のいずれかを行い、その後、S5467でa
に8を加算し、cより1を減算する。そして、S546
5へ戻る。S5466とS5467の処理はc回繰り返
すということになる。
FIG. 26 is a flowchart of the process of "recording memory update data or memory update event by I / O operation" in S546 of FIG. In FIG. 26,
In S5460, CCW (channel command)
word), and the obtained address is defined as P. Then, in S5461, the value of the CCW is extracted from the contents of the memory indicated by P. The CCW is made up of an order code instructed what to do and information indicating the data location. In the case of DISK, DISK
There is an order of writing from the memory and writing to the memory, and calling from the memory and writing to the DISK. For other information,
There are addresses on the disk (consisting of cylinders, selectors, offsets, etc.) and addresses on the memory. S5
At 462, it is checked whether or not the memory has been updated. The investigation here is directed to the order of writing to the memory, and in the case of DISK, it corresponds to the “DISK READ order”. If it is determined in step S5463 that a write operation has been performed, the process advances to step S5464; otherwise, the process in FIG. 26 ends. In S5464, a is set to the memory address extracted from the CCW, and c is set to the transfer byte length / 8 extracted from the CCW. Next, when c is larger than 0 in S5465, the process proceeds to S5466, and when c is 0 or less, FIG.
The processing of 6 is ended. In S5466, either the memory update data recording process of FIG. 14 or the memory update event recording process of FIG. 20 is performed.
, And subtract 1 from c. And S546
Return to 5. The processing of S5466 and S5467 is repeated c times.

【0029】図27は、図9のS54cのI/O命令の
模擬実行処理を詳細に説明するフローチャート図であ
る。図27において、S5400でCCWアドレスとデ
バイスアドレスをセットし、S5401で該当するI/
Oシミュレータ(I/OシミュレータはLANシミュレ
ータ123,ディスクシミュレータ122とを有する)
を起動通知する。この起動では、ディスクシミュレータ
のプログラム自身は1回だけ起動される。「起動通知す
る」は、プログラムの起動ではなく、「I/O命令によ
り該当デバイス」への「オーダ」起動のことである。オ
ーダはディスクの所定の領域からデータを読め、或いは
書けといった動作指示である。ディスクシミュレータを
例にすると、複数のデバイス番号に対応した複数デバイ
スを持っている。図5の例では、左側に円筒型のディス
クの絵があるが、これがゲスト計算機上の物理ディスク
である。この物理ディスクは、ホスト計算機上の3つの
ファイル(図5のディスク107のフォルダ上の絵によ
って記載されてるもの)にマッピングされている。
FIG. 27 is a flow chart for explaining in detail the simulation execution processing of the I / O instruction in S54c of FIG. In FIG. 27, the CCW address and the device address are set in S5400, and the corresponding I / O is set in S5401.
O simulator (I / O simulator has LAN simulator 123 and disk simulator 122)
Start notification. In this activation, the disk simulator program itself is activated only once. “Notification of activation” does not mean activation of a program, but refers to activation of an “order” to an “applicable device by an I / O command”. The order is an operation instruction such as reading or writing data from a predetermined area of the disc. Taking a disk simulator as an example, it has a plurality of devices corresponding to a plurality of device numbers. In the example of FIG. 5, there is a picture of a cylindrical disk on the left side, which is a physical disk on the guest computer. This physical disk is mapped to three files (depicted by pictures on the folder of the disk 107 in FIG. 5) on the host computer.

【0030】図27のS5401で起動通知されたI/
Oシミュレータのうちディスクシミュレータについて図
28を用いて説明する。図28は、図27のS5401
で起動通知されるディスクシミュレータの処理のフロー
チャートである。図28において、S5402では、デ
ィスクコントローラ105の初期化を行うとともに、デ
バイス毎の情報を初期化する。S5403では、デバイ
ス毎のスレッドを生成する(ディスクシミュレータが複
数のディスクを管理してしている場合を想定してデバイ
ス毎のスレッドを生成する。スレッドは、各ディスクを
起動することである。)。以下に説明するS5404か
らS5421の処理は、1つのディスクについての処理
であり、複数のディスクが存在する場合は、ディスクの
数に相当する処理が存在する。まず、S5404でデバ
イスが起動されたかを確認する。起動されていれば、S
5405の処理へ進み、起動されていなければ、S54
04の処理を繰り返す。S5405で、CCWをメモリ
104より取り出して、取り出したCCWの解読を行い
(S5406)、解読結果が“WRITE”の指示であ
ればS5407へ進み、“READ”の指示であればS
5413へ進み、どちらでもない場合はS5419ヘ進
む。S5407の“WRITE”の指示である場合の処
理を説明する。S5407で、マスタDISK107a
の動作可能状態を確認して、動作可能ならば、ゲストO
Sの仮想DISKボリュームに対応するファイルの指定
された位置にメモリデータを書き込む。S5407で動
作可能でなければS5409の処理へ進む。S5409
では、ミラーDISK107bの動作可能状態を確認す
る。動作可能であれば、S5410でゲストOSの仮想
DISKボリュームに対応するミラーファイルの指定さ
れた位置にメモリデータを書き込む。S5409で動作
可能でなければS5411の処理へ進む。S5411で
はCSW(channel status word)
のセットを行い、DISKシミュレータは、割り込み通
知を行う。割り込み通知を命令シミュレータによって受
け取られたら、S5404からの処理を繰り返す(S5
412)。S5412で割り込み通知を受けたられたこ
とが確認できるまで確認を続ける。次に、S5413の
“READ”の指示であるときの処理を説明する。S5
413では、マスタDISK107aの動作可能状態を
確認して、動作可能ならば、ゲストOSの仮想DISK
ボリュームに対応するファイルの指定された位置からの
データをメモリ104に書き込む(S5414)。S5
413で動作可能でなければS5419の処理へ進む。
S5415では、エラーの発生やタイムアウトの発生が
あるか否かを確認する。発生していなければ、S541
1の処理へ分岐する。発生していれば、S5416でマ
スタDISK107aが動作不能であることを示すフラ
グをセットし、S5417でミラーDISKが動作可能
であるか確認する。動作可能であれば、S5419へ分
岐する。動作不能であれば、S5418でCSWにデバ
イスエラーであることをセットし、S5411へ進む。
“WRITE”命令でもなく“READ”命令でもない
場合の処理は省略する。S5419では、ゲストOSの
仮想DISKボリュームに対応するミラーファイル10
7bの指定された位置からのデータをメモり104に書
き込む。S5420でエラーの発生やタイムアウトの発
生が無いことを確認する。発生がない場合は、S541
1へ進む。発生がある時は、S5421でミラーDIS
Kディスク107bが動作不能であることを示すフラグ
をセットする。そして、S5418の処理へ進む。
The I / O notified in S5401 of FIG.
A disk simulator of the O simulator will be described with reference to FIG. FIG. 28 is a diagram showing S5401 of FIG.
5 is a flowchart of a process of the disk simulator notified of startup in the step S1. In FIG. 28, in S5402, the disk controller 105 is initialized and information for each device is initialized. In step S5403, a thread is generated for each device (a thread is generated for each device assuming that the disk simulator manages a plurality of disks. The thread is to activate each disk.) . The processing of S5404 to S5421 described below is processing for one disk, and when there are a plurality of disks, processing corresponding to the number of disks exists. First, it is checked in step S5404 whether the device has been activated. If started, S
Proceeding to the process of 5405, if not started, S54
Step 04 is repeated. In step S5405, the CCW is extracted from the memory 104, and the extracted CCW is decoded (S5406). If the decoding result indicates "WRITE", the process proceeds to S5407; if the decoding result indicates "READ", the process proceeds to S5407.
The process proceeds to 5413, and if neither is the case, the process proceeds to S5419. The processing in the case where the instruction is “WRITE” in S5407 will be described. In S5407, the master DISK 107a
Check the operable state of
The memory data is written to the specified position of the file corresponding to the S virtual DISK volume. If operable in step S5407, the process advances to step S5409. S5409
Then, the operable state of the mirror DISK 107b is confirmed. If operable, the memory data is written to the designated position of the mirror file corresponding to the virtual DISK volume of the guest OS in S5410. If it is not operable in S5409, the process proceeds to S5411. In S5411, CSW (channel status word)
Is set, and the DISK simulator issues an interrupt notification. When the interrupt notification is received by the instruction simulator, the processing from S5404 is repeated (S5404).
412). The confirmation is continued until it is confirmed that the interruption notification is received in S5412. Next, processing when the instruction is “READ” in S5413 will be described. S5
In 413, the operable state of the master DISK 107a is confirmed, and if operable, the virtual DISK of the guest OS is
The data from the designated position of the file corresponding to the volume is written to the memory 104 (S5414). S5
If it is not operable in 413, the process proceeds to S5419.
In step S5415, it is checked whether an error has occurred or a timeout has occurred. If not, S541
The process branches to processing 1. If it has occurred, a flag indicating that the master DISK 107a is inoperable is set in S5416, and it is confirmed in S5417 whether the mirror DISK is operable. If operable, the flow branches to S5419. If the operation is not possible, a device error is set in the CSW in step S5418, and the flow advances to step S5411.
The processing in the case where the instruction is neither the “WRITE” instruction nor the “READ” instruction is omitted. At S5419, the mirror file 10 corresponding to the virtual DISK volume of the guest OS is
The data from the designated position of 7b is written to the memory 104. In S5420, it is confirmed that no error or timeout has occurred. If there is no occurrence, S541
Proceed to 1. If there is, a mirror DIS is generated in S5421.
A flag indicating that the K disk 107b is inoperable is set. Then, the process proceeds to S5418.

【0031】図29(A)は、図11のS534の「メ
モリ更新完了のカウンタまたはフラグをリセットする」
のルックアップテーブルを無効化する処理を説明するフ
ローチャートである。図29(A)において、S534
0ではルックアップテーブルの全エントリを無効化する
(オール1をセットする)。次に、スタックポインタS
Cを0にセットする(S5431)。図29(B)は図
11のS534の「メモリ更新完了のカウンタまたはフ
ラグをリセットする」の事象テーブルを無効化する処理
を説明するフローチャートである。図29(B)におい
て、S5342では、事象テーブルの全エントリを無効
化する(オール1をセットする)。次に、スタックポイ
ンタSCを0にセットする(S5343)。
FIG. 29A shows "Reset the memory update completion counter or flag" in S534 of FIG.
9 is a flowchart illustrating a process of invalidating a lookup table of FIG. In FIG. 29A, S534
At 0, all entries in the lookup table are invalidated (all 1s are set). Next, the stack pointer S
C is set to 0 (S5431). FIG. 29B is a flowchart illustrating the process of invalidating the event table of “Resetting the memory update completion counter or flag” in S534 of FIG. In FIG. 29B, in S5342, all entries in the event table are invalidated (all 1s are set). Next, the stack pointer SC is set to 0 (S5343).

【0032】上記図9から図29によって活動系の命令
シミュレータ118及びチェックポイント機構133、
チェックポイント反映機構233との動作について説明
を行った。図9から図29に説明した動作を行うと非活
動系システムに対して活動系システムからチェックポイ
ント情報が送信される。図32に受信したチェックポイ
ント情報を用いて非活動系システムにおいて活動系シス
テムの動作を代替するための準備処理について説明を行
う。図30は、図13のS1712のメモリの差分デー
タをメモリに書き込む処理のフローチャートである。図
30において、S17120でポインタsに初期値とし
て受信バッファのメモリ更新データの先頭のアドレスを
セットする。受信バッファのイメージは、図12の送信
バッファのイメージと同じである。このため、ポインタ
sに初期値としてセットされるアドレスは図12のチェ
ックポイント情報24の1番上つまりメモリデータ開始
の直ぐ下のアドレスの記憶位置を示すポインタがセット
される。次に、S17121で受信バッファ(s)をa
にセットする。a、つまり受信バッファ(s)にオール
1がセットされているとそれ以降の受信バッファは未使
用であることを示しているため、aに初期値オール1が
セットされていることをS17122で確認し、処理の
終了を判断する。aにオール1がセットされていたら図
30の処理を終了する。aにオール1がセットされてい
ない場合は、受信バッファ(s+1)のデータをメモリ
(a)から4バイト目の位置に格納し、さらに、受信バ
ッファ(s+2)のデータをメモリ(a+4)の位置に
格納する。そして、sに3を加算する(S1712
3)。このように図30に示した手順によって活動系シ
ステムから送信されたチェックポイント情報を非活動系
システムのメモリに反映させる。
According to FIGS. 9 to 29, the active instruction simulator 118 and the checkpoint mechanism 133,
The operation with the checkpoint reflection mechanism 233 has been described. When the operations described with reference to FIGS. 9 to 29 are performed, checkpoint information is transmitted from the active system to the inactive system. A preparation process for substituting the operation of the active system in the inactive system using the received checkpoint information will be described with reference to FIG. FIG. 30 is a flowchart of the process of writing the difference data of the memory to the memory in S1712 of FIG. In FIG. 30, in S17120, the head address of the memory update data in the reception buffer is set as an initial value in the pointer s. The image of the reception buffer is the same as the image of the transmission buffer in FIG. Therefore, as the address set as the initial value in the pointer s, a pointer indicating the storage position of the address at the top of the checkpoint information 24 in FIG. 12, that is, immediately below the start of the memory data is set. Next, the reception buffer (s) is set to a in S17121.
Set to. If a, that is, all 1s are set in the reception buffer (s), it indicates that the subsequent reception buffers are unused, and it is confirmed in S17122 that the initial value all 1 is set in a. Then, the end of the process is determined. If "1" is set in "a", the processing in FIG. If all 1s are not set to a, the data of the reception buffer (s + 1) is stored at the fourth byte position from the memory (a), and the data of the reception buffer (s + 2) is stored at the position of the memory (a + 4). To store. Then, 3 is added to s (S1712)
3). In this way, the checkpoint information transmitted from the active system is reflected in the memory of the inactive system by the procedure shown in FIG.

【0033】図31は、活動系システム及び非活動系シ
ステムがともに正常に動作しているとき、何らかの原因
によって活動系システムと非活動系システムの何れか一
方に故障が発生し、故障が発生した系の動作が不能とな
った場合の状態を説明する図である。図31において、
1番上に図示されている状態は活動系システム100及
び非活動系システム200とがともに正常に動作してい
る状態を示している。例えば活動系システム100で
は、(1)によってディスク動作が行われディスク動作
とともに(2)によってLAN300を介して非活動系
システム200のミラーディスクに対して、上記(1)
のディスク動作と同様のディスク動作が行われる。そし
て、活動系システム100から非活動系システム200
に対してLAN300を介してアライブ状態を示す情報
を送信するとともに、活動系システム100から非活動
系システム200に対してLAN300を介してチェッ
クポイント情報の送信が行われる。これが活動系システ
ム100と非活動系システム200とが正常に動作して
いる状態である。この状態で(A)に状態が移る。
(A)では、何らかの原因で活動系システム100に故
障が発生した場合を示している。活動系システム100
に故障が発生すると、非活動系システム200が新たに
活動系システム100の動作を代替し、新たな活動系と
なる。新たな活動系では、(1)のディスク動作やLA
N300を介して他のシステムと行う(2)のLAN動
作が行われる。故障していた元の活動系システム100
の修理が完了すると(C)の状態に遷移する。(C)の
状態では、新たな活動系はそのまま活動系として動作を
続け、故障の修理が完了した元の活動系システム100
は非活動系システムとして新たな活動系システムよりチ
ェックポイント情報の送信やアライブ状態の情報の送信
を受ける。このように、システムの故障が完了した後
は、元の活動系システム100は新たな非活動系システ
ムとして動作を行う。また、(B)の状態では、非活動
系システム200が何らかの原因によって故障をした場
合を説明している。この場合、活動系システム100は
(3)のミラーディスクの書き込み処理と(4)のアラ
イブ状態を示す情報の送信およびチェックポイント情報
の送信の処理を中止する。但し、活動系システム100
は正常に動作しているので(1)のディスク動作と
(2)のLAN動作はそのまま通常通り行う。但し
(2)の動作は故障の発生している非活動系システム2
00以外のシステムとの通信である。
FIG. 31 shows that, when both the active system and the inactive system are operating normally, a failure occurs in one of the active system and the inactive system for some reason, and the failure occurs. It is a figure explaining the state when operation of a system has become impossible. In FIG.
The state illustrated at the top indicates that both the active system 100 and the inactive system 200 are operating normally. For example, in the active system 100, the disk operation is performed by (1), and the disk operation is performed together with the disk operation by (2) with respect to the mirror disk of the inactive system 200 via the LAN 300 (1).
A disk operation similar to the disk operation described above is performed. Then, from the active system 100 to the inactive system 200
, The information indicating the alive state is transmitted via the LAN 300 to the active system 100, and the checkpoint information is transmitted from the active system 100 to the inactive system 200 via the LAN 300. This is a state in which the active system 100 and the inactive system 200 are operating normally. In this state, the state moves to (A).
(A) shows a case where a failure has occurred in the active system 100 for some reason. Activity system 100
, The inactive system 200 replaces the operation of the active system 100 and becomes a new active system. In the new active system, (1) disk operation and LA
The LAN operation (2) performed with another system via the N300 is performed. Original active system 100 that has failed
Is completed, the state transits to the state (C). In the state (C), the new active system continues to operate as the active system as it is, and the original active system 100 in which the repair of the failure is completed.
Receives the transmission of checkpoint information and the information of the alive state from the new active system as an inactive system. Thus, after the system failure is completed, the original active system 100 operates as a new inactive system. In the state (B), the case where the inactive system 200 has failed for some reason is described. In this case, the active system 100 stops the process (3) of writing the mirror disk and the process (4) of transmitting the information indicating the alive state and transmitting the checkpoint information. However, the activity system 100
Is operating normally, the disk operation of (1) and the LAN operation of (2) are performed as usual. However, the operation of (2) is the inactive system 2 in which a failure has occurred.
Communication with a system other than 00.

【0034】このように、活動系システム100と非活
動系システム200はともに正常に動作している状態か
ら一方が故障によって動作不能状態になったときに、動
作不能状態になった方の系のシステムを、正常に動作し
ている方の系によって引き継ぎを行う。また故障した系
が修理完了した場合は、そのときに非活動系システム2
00が新たな活動系システムとなって動作している場合
は、元の活動系システム100が新たな非活動系システ
ムとして動作を行う。
As described above, when one of the active system 100 and the inactive system 200 becomes inoperable due to a failure from the state of normal operation, the other system becomes inoperable. The system is taken over by the system that is operating normally. If the failed system has been repaired, the inactive system 2
When 00 is operating as a new active system, the original active system 100 operates as a new inactive system.

【0035】実施の形態2.上記実施の形態1において
説明したフォールトトレラント計算機システムの一例で
は、活動系と非活動系の別々のシステムによって発明を
構成する例を説明した。この実施の形態2では、1つの
システムが活動系と非活動系の2つの系を有する場合を
説明する。図32は、実施の形態2におけるフォールト
トレラント計算機システムを構成するハードウェア構成
の一例を示す図である。図32において、システム10
00は2つのCPUを有し、CPU Aを活動系、CP
U Bを非活動系として動作させている。また、システ
ム2000は、2つのCPUを有し、CPU Aを非活
動系CPU Bを活動系として動作させている。このよ
うなシステムにおいて、システム1000に故障が発生
した場合(A)に状態が遷移する。システム1000に
故障が発生し、動作不能になるとシステム2000のC
PU Aが活動系として動作して、システム1000の
動作を代替するようになる。システム2000のCPU
Bはもとのまま活動系として動作を行う。そして、シ
ステム1000の故障の修理が完了すると(B)に状態
が遷移し、再度図32の上の図のようにシステム100
0はCPU Aが活動系、CPU Bが非活動系、シス
テム2000はCPU Aが非活動系、CPU Bが活
動系として動作を行うようになる。
Embodiment 2 In the example of the fault-tolerant computer system described in the first embodiment, an example has been described in which the present invention is configured by separate active and inactive systems. In the second embodiment, a case will be described in which one system has two systems, an active system and an inactive system. FIG. 32 is a diagram illustrating an example of a hardware configuration configuring a fault-tolerant computer system according to the second embodiment. In FIG. 32, the system 10
00 has two CPUs, CPU A is active, CP
UB is operated as an inactive system. Further, the system 2000 has two CPUs, and operates the CPU A as an inactive CPU B as an active CPU. In such a system, when a failure occurs in the system 1000, the state transitions to (A). If the system 1000 fails and becomes inoperable, the C
PU A operates as an active system to replace the operation of system 1000. System 2000 CPU
B operates as an active system as it is. When the repair of the failure of the system 1000 is completed, the state transits to (B), and the system 100 is again restored as shown in the upper diagram of FIG.
0 indicates that CPU A is active, CPU B is inactive, and system 2000 operates as CPU A is inactive and CPU B is active.

【0036】このように1つのシステムが活動系システ
ムと非活動系システムとを有するようなシステムを2つ
接続して、どちらかのシステムが故障した場合に動作可
能状態である方のシステムのCPUを、非活動系から活
動系に状態を遷移し、故障した方のシステムの修理が完
了すると元のようなシステムの状態に戻すことも可能で
ある。
As described above, two systems in which one system has an active system and an inactive system are connected, and the CPU of the system which is operable when one of the systems fails. Can be changed from the inactive system to the active system, and when the repair of the failed system is completed, the original system state can be restored.

【0037】実施の形態3.この実施の形態3では上記
実施の形態2の図32と同様のハードウェア構成をした
フォールトトレラント計算機システムの構成に対して、
更に、システム1000とシステム2000によって共
有に使用することができるRAIDディスク装置300
0を新たに備える。共有のRAIDディスク装置300
0を備えることによって(A)のように、システム10
00が故障した場合、システム2000のCPU Aが
活動系となり、システム1000の動作を引き継いで共
有ディスクであるRAIDディスク装置3000に対し
てアクセスを行い、システム1000の動作中と何ら代
わらない動作を実現することができる。システム100
0の故障が完了して動作可能状態になると(B)に状態
が遷移し、故障が発生する前と同じ状態でシステム10
00とシステム2000とがともにそれぞれ活動系と非
活動系とを有して動作を行うことができるようになる。
Embodiment 3 In the third embodiment, the configuration of a fault-tolerant computer system having the same hardware configuration as that of FIG.
Furthermore, a RAID disk device 300 that can be shared by the system 1000 and the system 2000
0 is newly provided. Shared RAID disk device 300
0, as in (A), the system 10
When the system failure occurs, the CPU A of the system 2000 becomes active, accesses the RAID disk device 3000 as a shared disk by taking over the operation of the system 1000, and realizes an operation that does not change during the operation of the system 1000. can do. System 100
0 is completed and the system becomes operable, the state transits to (B), and the system 10 remains in the same state as before the failure occurred.
00 and system 2000 can both operate with active and inactive systems, respectively.

【0038】上記実施の形態1から実施の形態3におい
て、この発明のフォールトトレラント計算機システムが
備える命令シミュレータは、メモリの変更が発生するよ
うな命令ではそのメモリの変更履歴を記憶する。そし
て、I/O命令の前後にチェックポイント情報を生成す
るとともに、チェックポイント情報を非活動系システム
に対して送信する処理を行う。送信処理レジスタの最新
の値とメモリの変更履歴とをLANによって非活動系シ
ステムに転送する。また、I/Oシミュレータは、ディ
スクと非活動系システム上においたミラーディスクの両
者に対して書き込み動作を行う。また、チェックポイン
トを受信した非活動系システムでは、受信したチェック
ポイント情報を基にメモリへの反映を行った後、反映が
完了したことを活動系システムに対して通知する。活動
系システムは非活動系よりチェックポイント情報の反映
が完了したことが通知されるまで次の動作に移らない。
このようなフォールトトレラント計算機システムの一例
を説明した。以上のことにより、互いに活動系システム
と非活動系システムは、互いの動作を完全に複写するこ
とができ、ファイルなどの状態も再現可能となる。ま
た、命令シミュレータとチェックポイント機構及びチェ
ックポイント反映機構とは、ソフトウェアによってその
動作を実行している。このため、キャッシュメモリに対
して更新が行われた場合も、その更新履歴を把握し、チ
ェックポイント情報として活動系システムから非活動系
システムに送信し、非活動系システムでは、キャッシュ
メモリの更新を反映することが可能である。また、実施
の形態2及び実施の形態3のように、1つのシステムが
活動系と非活動系とを有し、このようなシステムを2つ
接続しているような場合に、1つのシステムがダウンし
て動作不能状態となったとき、動作可能状態であるシス
テムの非活動系システムを活動系システムに状態を遷移
し、つまり、もう一組の命令シミュレータとI/Oシミ
ュレータを立ち上げ、故障によって動作不能状態となっ
たシステムの動作を引き継ぐことができる。
In the first to third embodiments, the instruction simulator provided in the fault-tolerant computer system of the present invention stores a change history of the memory for an instruction that causes a change in the memory. Then, a process of generating checkpoint information before and after the I / O command and transmitting the checkpoint information to the inactive system is performed. The latest value of the transmission processing register and the change history of the memory are transferred to the inactive system via the LAN. The I / O simulator performs a write operation on both the disk and the mirror disk on the inactive system. In addition, the inactive system that has received the checkpoint reflects the received checkpoint information in the memory, and then notifies the active system that the reflection has been completed. The active system does not move to the next operation until the inactive system notifies that the reflection of the checkpoint information has been completed.
An example of such a fault-tolerant computer system has been described. As described above, the active system and the inactive system can completely copy each other's operations, and the state of the file and the like can be reproduced. The instruction simulator, the checkpoint mechanism and the checkpoint reflection mechanism execute their operations by software. For this reason, even when the cache memory is updated, the update history is grasped and transmitted as checkpoint information from the active system to the inactive system. It is possible to reflect. Further, as in the second and third embodiments, when one system has an active system and an inactive system and two such systems are connected, one system is used. When the system goes down and becomes inoperable, the inactive system of the operable system changes its state to the active system, that is, another set of instruction simulator and I / O simulator is started, and a failure occurs. As a result, the operation of the system that has become inoperable can be taken over.

【0039】[0039]

【発明の効果】第1の計算機システムと第2の計算機シ
ステムとを通信網によって接続し、第1の計算機システ
ムが動作不能状態になった場合に、第1の計算機システ
ムの動作を第2の計算機システムによって引き継ぐた
め、第1の計算機システムの命令シミュレータは、メモ
リの更新が発生するような命令を実行する場合はメモリ
の更新履歴をメモリ更新情報として記録し、割り込み処
理の要求を受け付けた場合にチェックポイント情報を生
成して、生成したチェックポイント情報と実行用レジス
タに格納されているプログラム制御情報とを上記通信網
を介して第2の計算機システムに送信するチェックポイ
ント機構を備えた。そして、第2の計算機システムは、
送信されたチェックポイント情報を第2の計算機システ
ムの第2のメモリに反映させるとともにプログラム制御
情報を第2の計算機システムの待機用レジスタに反映さ
せるチェックポイント反映機構を備えた。そして、第2
の計算機システムは、第2の命令シミュレータによって
チェックポイント反映機構によって反映された第2のメ
モリに記憶されている情報を用いて待機用レジスタのプ
ログラム制御情報に従い、第1の計算機システムの動作
を第2の計算機システムによって代替するようにした。
このため、第1の計算機システムの第1のメモリの内容
を確実に第2の計算機システムの第2のメモリへ反映さ
せることができ、第2の計算機システムによって第1の
計算機システムの動作を確実に引き継ぐことができる効
果がある。
The first computer system and the second computer system are connected by a communication network, and when the first computer system becomes inoperable, the operation of the first computer system is changed to the second computer system. The instruction simulator of the first computer system records an update history of the memory as memory update information when executing an instruction that causes a memory update, and accepts an interrupt processing request because the instruction simulator takes over the instruction by the computer system. A checkpoint mechanism for generating checkpoint information and transmitting the generated checkpoint information and the program control information stored in the execution register to the second computer system via the communication network. And the second computer system is:
A checkpoint reflection mechanism is provided for reflecting the transmitted checkpoint information in the second memory of the second computer system and for reflecting the program control information in the standby register of the second computer system. And the second
Uses the information stored in the second memory reflected by the second instruction simulator by the checkpoint reflection mechanism and according to the program control information of the standby register, to execute the operation of the first computer system in the second instruction simulator. 2 was replaced by a computer system.
For this reason, the contents of the first memory of the first computer system can be reliably reflected in the second memory of the second computer system, and the operation of the first computer system can be reliably performed by the second computer system. There is an effect that can be taken over.

【0040】また、第1の計算機システムは、所定の時
間の間隔で監視タイマー割り込みを第2の計算機システ
ムに対して発生させる。これにより、第2の計算機シス
テムは、第1の計算機システムの動作不能状態を確認す
ることができ、第1の計算機システムの動作を第2の計
算機システムによって直ちに引き継ぐことができる効果
がある。
Further, the first computer system generates a monitoring timer interrupt for the second computer system at predetermined time intervals. Thus, the second computer system can confirm the inoperable state of the first computer system, and has an effect that the operation of the first computer system can be immediately taken over by the second computer system.

【0041】また、第1の命令シミュレータは割り込み
処理を実行する前と後とにチェックポイント機構により
チェックポイントの情報を生成し、第2の計算機システ
ムに対して生成したチェックポイント情報を送信する処
理を行うようにした。このため、割り込み処理の実行中
に別のジョブによってメモリの更新が発生した場合であ
っても、割り込み処理の実行を行った後にもチェックポ
イント情報の生成及び送信を行っているので、第1のメ
モリの更新履歴を第2のメモリへ確実に反映させること
ができる効果がある。
Further, the first instruction simulator generates checkpoint information by the checkpoint mechanism before and after executing the interrupt processing, and transmits the generated checkpoint information to the second computer system. To do. For this reason, even when the memory is updated by another job during the execution of the interrupt processing, the checkpoint information is generated and transmitted after the execution of the interrupt processing. There is an effect that the update history of the memory can be reliably reflected on the second memory.

【0042】また、チェックポイント情報は、第1のメ
モリのアドレスと第1のメモリのアドレスに対応して記
憶されている所定の情報とを少なくとも有している。こ
のため、チェックポイント反映機構は、チェックポイン
ト情報の第1のメモリのアドレスと同じアドレスの第2
のメモリへ、チェックポイント情報の第1のメモリのア
ドレスに対応して記憶されている所定の情報を、第2の
メモリのアドレスに対応する情報として記憶させること
ができる。このため、第1のメモリの内容は確実に第2
のメモリへ反映させることができる効果がある。
The checkpoint information has at least an address of the first memory and predetermined information stored in correspondence with the address of the first memory. For this reason, the checkpoint reflection mechanism uses the second address of the same address as the first memory address of the checkpoint information.
Of the checkpoint information can be stored as information corresponding to the address of the second memory. This ensures that the contents of the first memory are
There is an effect that can be reflected in the memory.

【0043】また、チェックポイント機構は、送信バッ
ファに1つ以上のチェックポイント情報を記憶するため
に、ルックアップテーブルとスタックを用いるようにし
た。ルックアップテーブルは、第1のメモリの同一のア
ドレスに対して複数回更新が行われた場合に最新のメモ
リの内容を記憶するような構成とした。このため、チェ
ックポイント情報として第2の計算機システムに送信さ
れる第1のメモリの内容は、最新の第1のメモリの内容
であるため、第2のメモリの内容を第1のメモリの内容
と同じ内容になるようにチェックポイント情報を反映す
るとき、同一のアドレスに対しては1度だけ反映をさせ
れば第1のメモリの内容と同じ内容になる。このことに
より、チェックポイント情報の反映の処理を速く行うこ
とができる効果がある。
The checkpoint mechanism uses a look-up table and a stack to store one or more pieces of checkpoint information in the transmission buffer. The look-up table is configured to store the latest contents of the memory when the same address of the first memory is updated a plurality of times. Therefore, the content of the first memory transmitted to the second computer system as the checkpoint information is the latest content of the first memory. When the checkpoint information is reflected so as to have the same contents, if the same address is reflected only once, the contents become the same as the contents of the first memory. Thus, there is an effect that the process of reflecting the checkpoint information can be performed quickly.

【0044】また、チェックポイント機構は送信バッフ
ァに1つ以上のチェックポイント情報を記憶させるため
に事象テーブルを用いる。事象テーブルは1つ以上のエ
ントリを有し、エントリには第1のメモリの同一のアド
レスに対して複数回更新が行われた場合であってもその
アドレスは1つのメモリ更新情報として記憶する。事象
テーブルを基にチェックポイント情報が生成されて第2
の計算機に送信されるので、第2の計算機のチェックポ
イント反映機構は、チェックポイント情報の第1のメモ
リのアドレスと同じアドレスの第2のメモリのアドレス
に対して、第1のメモリの所定の情報を反映させる処理
を1回行う。このため、第1のメモリの内容を第2のメ
モリへ反映させる処理を速く行うことができる効果があ
る。
The checkpoint mechanism also uses an event table to store one or more pieces of checkpoint information in a transmission buffer. The event table has one or more entries, and even if the same address in the first memory is updated a plurality of times, the address is stored as one piece of memory update information. Checkpoint information is generated based on the event table.
The check point reflection mechanism of the second computer sends a predetermined address of the first memory to the address of the second memory at the same address as the address of the first memory of the check point information. The process of reflecting the information is performed once. Therefore, there is an effect that the process of reflecting the contents of the first memory to the second memory can be performed quickly.

【0045】また、チェックポイント情報に記憶されて
いる第1のメモリのアドレスは、ページアドレスである
ため、ページアドレスによって示される第2のメモリの
記憶領域に対して、第1のメモリの同じページアドレス
によって示される記憶領域に記憶されている全ての所定
の情報を、第2のメモリに反映させることができる。こ
のため、チェックポイント反映機構によって第1のメモ
リの内容を第2のメモリへ反映させる場合に、ページ単
位に反映が行われるので、ページング処理が多発するこ
とを防ぐことができ、効率よく第2のメモリを更新する
ことができる効果がある。
Further, since the address of the first memory stored in the checkpoint information is a page address, the same page of the first memory is stored in the storage area of the second memory indicated by the page address. All the predetermined information stored in the storage area indicated by the address can be reflected in the second memory. For this reason, when the content of the first memory is reflected in the second memory by the checkpoint reflection mechanism, the reflection is performed in page units, so that paging processing can be prevented from occurring frequently, and the second memory can be efficiently performed. This has the effect that the memory can be updated.

【0046】上記第1のメモリは少なくともキャッシュ
メモリを含む。このため、ハードウェアによってフォー
ルトトレラント計算機システムを実現するためのチェッ
クポイント情報を生成する処理では、キャッシュメモリ
の更新を把握することができなかった。しかし、この発
明のフォールトトレラント計算機システムは、ソフトウ
ェアによって構成された命令シミュレータ及びチェック
ポイント生成機構及びチェックポイント反映機構とを有
しているためキャッシュメモリに対して更新が行われた
場合でも、その内容を把握することができるので、第2
の計算機システムによって第1の計算機システムの動作
を確実に引き継ぐことができる効果がある。
The first memory includes at least a cache memory. For this reason, in the process of generating checkpoint information for realizing a fault-tolerant computer system by hardware, it was not possible to grasp the update of the cache memory. However, the fault-tolerant computer system of the present invention has an instruction simulator, a checkpoint generation mechanism, and a checkpoint reflection mechanism configured by software. Can be grasped, the second
There is an effect that the operation of the first computer system can be reliably taken over by the computer system.

【0047】また、通信網はLANであるため、従来か
らあるネットワークシステムに接続されている計算機シ
ステムをこの発明のフォールトトレラント計算機システ
ムに容易に対応させることが出来る効果がある。
Further, since the communication network is a LAN, there is an effect that a computer system connected to a conventional network system can be easily adapted to the fault-tolerant computer system of the present invention.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 実施の形態1のフォールトトレラント計算機
システムのハードウェア構成図。
FIG. 1 is a hardware configuration diagram of a fault-tolerant computer system according to a first embodiment.

【図2】 実施の形態1のフォールトトレラント計算機
システムのソフトウェア構成の一例を示す図。
FIG. 2 is a diagram showing an example of a software configuration of the fault-tolerant computer system according to the first embodiment.

【図3】 実施の形態1における活動系と非活動系それ
ぞれの記憶構成を示す図。
FIG. 3 is a diagram illustrating a storage configuration of each of an active system and an inactive system according to the first embodiment;

【図4】 この発明のチェックポイント機構とチェック
ポイント反映機構の一例を示す構成図。
FIG. 4 is a configuration diagram showing an example of a checkpoint mechanism and a checkpoint reflection mechanism of the present invention.

【図5】 実施の形態1における活動系システムと非活
動系システムのディスク構成とファイル構成を示す図。
FIG. 5 is a diagram showing a disk configuration and a file configuration of an active system and an inactive system according to the first embodiment.

【図6】 実施の形態1の活動系システムの命令シミュ
レータのプログラムのフローチャート図。
FIG. 6 is a flowchart diagram of a program of an instruction simulator of the active system according to the first embodiment;

【図7】 実施の形態1の非活動系の命令シミュレータ
のプログラムを示すフローチャート図。
FIG. 7 is a flowchart showing a program of an inactive instruction simulator according to the first embodiment;

【図8】 (A)実施の形態1のチェックポイント反映
プロセスのフローチャート図。(B)実施の形態1の監
視タイマーのフローチャート図。
FIG. 8A is a flowchart of a checkpoint reflection process according to the first embodiment. (B) The flowchart figure of the monitoring timer of Embodiment 1.

【図9】 実施の形態1のゲスト計算機における命令シ
ミュレーションの処理手順を説明する図。
FIG. 9 is an exemplary view for explaining the procedure of instruction simulation in the guest computer of the first embodiment;

【図10】 図7の活動系代替処理のフローチャート
図。
FIG. 10 is a flowchart of an activity-based substitution process in FIG. 7;

【図11】 実施の形態1のチェックポイント情報の作
成の処理の詳細フローチャート図。
FIG. 11 is a detailed flowchart of a process for creating checkpoint information according to the first embodiment;

【図12】 送信バッファの構成の一例を示す図。FIG. 12 is a diagram illustrating an example of a configuration of a transmission buffer.

【図13】 図8(A)のチェックポイントの反映処理
の詳細なフローチャート図。
FIG. 13 is a detailed flowchart of the checkpoint reflection process of FIG.

【図14】 図9の「メモリ更新データの記録」の処理
を説明するフローチャート図。
FIG. 14 is a flowchart illustrating a process of “recording memory update data” in FIG. 9;

【図15】 実施の形態1のスタックを示す図。FIG. 15 is a diagram showing a stack according to the first embodiment.

【図16】 図11の「メモリ更新データを加工し、差
分データを作成する」処理を説明するフローチャート
図。
FIG. 16 is a flowchart illustrating processing of “processing memory update data and creating difference data” in FIG. 11;

【図17】 実施の形態1のルックアップテーブルの例
を示す図。
FIG. 17 illustrates an example of a look-up table according to the first embodiment.

【図18】 実施の形態1のスタックとルックアップテ
ーブルと送信バッファの関係を説明する図。
FIG. 18 is a diagram illustrating a relationship among a stack, a lookup table, and a transmission buffer according to the first embodiment;

【図19】 実施の形態1の送信バッファの例を示す
図。
FIG. 19 is a diagram illustrating an example of a transmission buffer according to the first embodiment;

【図20】 図9の「メモリ更新事象の記録」の処理の
フローチャート図。
FIG. 20 is a flowchart of the process of “recording a memory update event” in FIG. 9;

【図21】 実施の形態1の事象テーブルの例を示す
図。
FIG. 21 illustrates an example of an event table according to the first embodiment.

【図22】 図11の「メモリ更新事象データを加工
し、差分データを作成する処理」のフローチャート図。
FIG. 22 is a flowchart of “processing for processing memory update event data and creating difference data” in FIG. 11;

【図23】 実施の形態1の事象テーブルのエントリの
例を示す図。
FIG. 23 is a diagram illustrating an example of an entry of an event table according to the first embodiment;

【図24】 実施の形態1の送信バッファの例を示す
図。
FIG. 24 is a diagram illustrating an example of a transmission buffer according to the first embodiment;

【図25】 図9の割り込み処理の詳細なフローチャー
ト図。
FIG. 25 is a detailed flowchart of the interrupt processing of FIG. 9;

【図26】 図25の「I/O動作によるメモリ更新デ
ータまたはメモリ更新事象の記録」の処理のフローチャ
ート図。
FIG. 26 is a flowchart of a process of “recording memory update data or memory update event by I / O operation” in FIG. 25;

【図27】 図9の「I/O命令の模擬」実行処理を詳
細に説明するフローチャート図。
FIG. 27 is a flowchart illustrating the “simulation of an I / O instruction” execution process in FIG. 9 in detail;

【図28】 図27のディスクシミュレータの処理のフ
ローチャート図。
FIG. 28 is a flowchart of the process of the disk simulator of FIG. 27;

【図29】 (A)、(B)図11の「メモリ更新完了
のカウンタまたはフラグをリセットする」の処理を説明
するフローチャート図。
29A and 29B are flowcharts for explaining the process of “resetting the memory update completion counter or flag” in FIG. 11;

【図30】 図13の「メモリの差分データをメモリに
書き込む」処理のフローチャート図。
FIG. 30 is a flowchart of the “write difference data of a memory to a memory” process of FIG. 13;

【図31】 実施の形態1における活動系と非活動系の
何れか一方に故障が発生した場合のそれぞれの系の状態
の遷移を説明する図。
FIG. 31 is a diagram for explaining a state transition of each system when a failure occurs in one of the active system and the inactive system according to the first embodiment;

【図32】 実施の形態2におけるフォールトトレラン
ト計算機システムを構成するハードウェア構成図。
FIG. 32 is a hardware configuration diagram of a fault-tolerant computer system according to the second embodiment.

【図33】 実施の形態3におけるフォールトトレラン
ト計算機システムを構成するハードウェア構成図。
FIG. 33 is a hardware configuration diagram of a fault-tolerant computer system according to the third embodiment.

【図34】 従来のフォールトトレラント計算機システ
ムのハードウェア構成図。
FIG. 34 is a hardware configuration diagram of a conventional fault-tolerant computer system.

【符号の説明】[Explanation of symbols]

1 送信バッファ、10 チェックポイント開始コマン
ド、20 メモリデータ開始、21 アドレス、22,
23 データ、24,24a,24b チェックポイン
ト情報、29 メモリデータ終了、30 レジスタデー
タ開始、31レジスタデータ、39 レジスタデータ終
了、40 チェックポイント終了コマンド、50 スタ
ック、51 ルックアップテーブル、100 活動系シ
ステム、101,201,102,202 CPU、1
03,203 MMU、104,204 メモリ、10
5,205 ディスクコントロール、106,206L
ANコントロール、107 マスターディスク、107
a,107b マスターディスクのファイル、110
活動系のソフトウェア、111 PCサーバのOS、1
12 カーネル、113 記憶管理部、114 ファイ
ル管理部、115 ネットワーク管理部、116 I/
O管理部、118 命令シミュレータ、119a,11
9b APP、120 ゲストOS、121 I/Oシ
ミュレータ、122 ディスクシミュレータ、123
LANシミュレータ、130 活動系の記憶部、131
カーネル、132 命令シミュレータ、133 チェ
ックポイント機構、133a スタック、ルックアップ
テーブル、133b 送信バッファ、134 ゲストO
S、135a,135b APP、136 ディスクシ
ミュレータ、137 LANシミュレータ、138 実
行用レジスタ領域、200 非活動系システム、207
ミラーディスク、207a,207b ミラーディス
クのファイル、210 非活動系のソフトウェア、23
0 非活動系の記憶部、233 チェックポイント反映
機構、233a 待機用レジスタ領域、233b 受信
バッファ、300 LAN、1000 計算機システ
ム、2000 計算機システム、3000 RAID
ディスク装置。
1 transmission buffer, 10 checkpoint start command, 20 memory data start, 21 address, 22,
23 data, 24, 24a, 24b checkpoint information, 29 memory data end, 30 register data start, 31 register data, 39 register data end, 40 checkpoint end command, 50 stack, 51 lookup table, 100 active system, 101, 201, 102, 202 CPU, 1
03,203 MMU, 104,204 memory, 10
5,205 disk control, 106,206L
AN control, 107 master disk, 107
a, 107b Master disk file, 110
Active software, 111 PC server OS, 1
12 kernel, 113 storage management unit, 114 file management unit, 115 network management unit, 116 I /
O management unit, 118 instruction simulator, 119a, 11
9b APP, 120 guest OS, 121 I / O simulator, 122 disk simulator, 123
LAN simulator, 130 Active storage unit, 131
Kernel, 132 instruction simulator, 133 checkpoint mechanism, 133a stack, lookup table, 133b transmission buffer, 134 guest O
S, 135a, 135b APP, 136 disk simulator, 137 LAN simulator, 138 execution register area, 200 inactive system, 207
Mirror disk, 207a, 207b mirror disk file, 210 inactive software, 23
0 Inactive storage unit, 233 Checkpoint reflection mechanism, 233a Standby register area, 233b Receive buffer, 300 LAN, 1000 computer system, 2000 computer system, 3000 RAID
Disk device.

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B005 JJ01 MM01 VV01 WW02 WW13 5B018 GA04 HA05 HA22 KA02 KA14 MA01 MA03 QA15 5B034 BB02 CC01 CC02 DD05 DD07 5B060 AA06 AA20  ──────────────────────────────────────────────────続 き Continued on the front page F term (reference) 5B005 JJ01 MM01 VV01 WW02 WW13 5B018 GA04 HA05 HA22 KA02 KA14 MA01 MA03 QA15 5B034 BB02 CC01 CC02 DD05 DD07 5B060 AA06 AA20

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 第1の計算機システムと、上記第1の計
算機システムと同じ動作をすることができる第2の計算
機システムとを備え、上記第2の計算機システムによっ
て上記第1の計算機システムの動作を監視して、監視し
た結果、上記第1の計算機システムの動作不能状態を検
出した場合に、上記第2の計算機システムにより上記第
1の計算機システムの動作を引き継ぐフォールトトレラ
ント計算機システムにおいて、 上記フォールトトレラント計算機システムは、上記第1
の計算機システムと上記第2の計算機システムとを接続
して、上記第1の計算機システムの動作を上記第2の計
算機システムによって引き継ぐためのチェックポイント
情報の通信を行なう通信網を備え、 上記第1の計算機システムは、 所定の情報を記憶する第1のメモリと、 所定の命令を有する処理プログラムを上記所定の命令に
従い実行する場合に、実行の順序を制御するプログラム
制御情報を格納する実行用レジスタと、 上記実行用レジスタに格納されている上記プログラム制
御情報に従い、実行する命令を取り出して解析し、上記
解析した結果に従い上記解析した命令を実行するととも
に、上記実行用レジスタに格納されているプログラム制
御情報を強制的に入れ替える割り込み処理の要求を受け
付ける第1の命令シミュレータと、 上記第1の命令シミュレータにより解析された結果が、
上記第1のメモリの更新を伴う場合に、上記第1のメモ
リの更新履歴をメモリ更新情報として記録し、上記第1
の命令シミュレータにより割り込み処理の要求を受け付
けられた場合に、上記メモリ更新情報を用いて上記チェ
ックポイント情報を生成して、生成したチェックポイン
ト情報と上記実行用レジスタに格納されているプログラ
ム制御情報とを上記通信網を介して上記第2の計算機シ
ステムに送信するチェックポイント機構とを備え、 上記第2の計算機システムは、 所定の情報を記憶する第2のメモリと、 所定の命令を有する処理プログラムを上記所定の命令に
従い実行する場合に、実行の順序を制御するプログラム
制御情報を格納する待機用レジスタと、 上記第1の計算機のチェックポイント機構より送信され
たチェックポイント情報とプログラム制御情報とを受信
して、受信したチェックポイント情報を上記第2のメモ
リに反映させるとともに、受信したプログラム制御情報
を上記待機用レジスタに反映させるチェックポイント反
映機構と、 上記チェックポイント反映機構により反映された待機用
レジスタのプログラム制御情報に従い、上記チェックポ
イント反映機構により反映された上記第2のメモリに記
憶されている所定の情報を用いて、上記第1の計算機シ
ステムの動作を上記第2の計算機システムにより代替す
る第2の命令シミュレータとを備えたことを特徴とする
フォールトトレラント計算機システム。
1. A computer system comprising: a first computer system; and a second computer system capable of performing the same operation as the first computer system. The operation of the first computer system is performed by the second computer system. In the fault-tolerant computer system that takes over the operation of the first computer system by the second computer system when the inoperable state of the first computer system is detected as a result of the monitoring, The tolerant computer system uses the first
And a communication network for communicating checkpoint information for taking over the operation of the first computer system by the second computer system by connecting the computer system to the second computer system. A first memory for storing predetermined information, and an execution register for storing program control information for controlling an execution order when a processing program having a predetermined instruction is executed according to the predetermined instruction. According to the program control information stored in the execution register, an instruction to be executed is taken out and analyzed, and the analyzed instruction is executed according to the result of the analysis, and the program stored in the execution register is executed. A first instruction simulator for receiving an interrupt processing request for forcibly replacing control information; The result analyzed by the first instruction simulator is
When updating the first memory, an update history of the first memory is recorded as memory update information, and the first memory is updated.
When the request for interrupt processing is accepted by the instruction simulator, the checkpoint information is generated using the memory update information, and the generated checkpoint information and the program control information stored in the execution register are generated. And a checkpoint mechanism for transmitting to the second computer system via the communication network, the second computer system comprises: a second memory for storing predetermined information; and a processing program having predetermined instructions. Is executed in accordance with the predetermined instruction, a standby register storing program control information for controlling the order of execution, and the checkpoint information and program control information transmitted from the checkpoint mechanism of the first computer. When the received checkpoint information is reflected in the second memory, In addition, a checkpoint reflection mechanism that reflects the received program control information in the standby register, and the checkpoint reflection mechanism reflected by the checkpoint reflection mechanism according to the program control information of the standby register reflected by the checkpoint reflection mechanism. A second instruction simulator for replacing the operation of the first computer system by the second computer system using predetermined information stored in a second memory. Computer system.
【請求項2】 上記第1の命令シミュレータにより受け
付けられる割り込みは、少なくとも上記第1の計算機シ
ステムが正常に動作している事を上記第2の計算機シス
テムに報告するためのアライブタイマー割り込みであ
り、 上記第1の計算機システムは、アライブタイマー割り込
みを、所定の時間の間隔で発生させることを特徴とする
請求項1記載のフォールトトレラント計算機システム。
2. An interrupt accepted by the first instruction simulator is an alive timer interrupt for reporting at least that the first computer system is operating normally to the second computer system. 2. The fault tolerant computer system according to claim 1, wherein said first computer system generates an alive timer interrupt at predetermined time intervals.
【請求項3】 上記第1の命令シミュレータは、上記割
り込み処理の要求を受け付けた場合に、上記チェックポ
イント機構によりチェックポイント情報を上記第2の計
算機システムに送信を行った後、上記割り込み処理の要
求に従い、割り込み処理を実行して、その後、再度、上
記チェックポイント機構により上記メモリ更新情報を用
いて上記チェックポイント情報を生成して、生成したチ
ェックポイント情報と上記実行用レジスタに格納されて
いるプログラム制御情報とを上記通信網を介して上記第
2の計算機システムに送信することを特徴とする請求項
1または2記載のフォールトトレラント計算機システ
ム。
3. The first instruction simulator, when receiving the interrupt processing request, sends checkpoint information to the second computer system by the checkpoint mechanism, and then executes the interrupt processing. In accordance with the request, interrupt processing is executed, and then the checkpoint information is generated again by the checkpoint mechanism using the memory update information, and the checkpoint information is stored in the generated checkpoint information and the execution register. 3. The fault tolerant computer system according to claim 1, wherein program control information is transmitted to said second computer system via said communication network.
【請求項4】 上記第1のメモリは、上記所定の情報
を、上記所定の情報の記憶位置を示すアドレスに対応さ
せて記憶し、 上記チェックポイント情報は、上記第1のメモリのアド
レスと、上記第1のメモリのアドレスに対応して記憶さ
れている所定の情報とを少なくとも有することを特徴と
する請求項1記載のフォールトトレラント計算機システ
ム。
4. The first memory stores the predetermined information in association with an address indicating a storage location of the predetermined information, wherein the checkpoint information includes an address of the first memory; 2. The fault tolerant computer system according to claim 1, further comprising at least predetermined information stored in correspondence with the address of said first memory.
【請求項5】 上記チェックポイント機構は、上記第1
のメモリの更新が行われた場合に、上記メモリ更新情報
として、メモリの更新が行われた順に上記第1のメモリ
のアドレスを1つ以上記憶するスタックと、 上記チェックポイント情報を1つ以上記憶して、上記チ
ェックポイント情報の記憶位置がポインタによって管理
される送信バッファと、 上記第1のメモリのアドレスと上記チェックポイント情
報を記憶する送信バッファのポインタとを対応させてル
ックアップ情報として記憶して、上記ルックアップ情報
を上記スタックに記憶されているアドレスを元にハッシ
ュ法によって求めたサブアドレスによって管理するルッ
クアップテーブルとを備えて、 上記スタックに記憶されているアドレスを記憶されてい
る順に取り出し、取り出したアドレスをハッシュ法によ
ってサブアドレスに変換して、変換したサブアドレスに
よって管理されている上記ルックアップテーブルに記憶
されているルックアップ情報の有無を確認するととも
に、ルックアップ情報が管理されている場合には、上記
ルックアップ情報のアドレスと上記スタックより取り出
したアドレスとを比較して、上記有無を確認した結果と
上記アドレスの比較を行った結果とに基づいて、上記ル
ックアップ情報を生成して上記ルックアップテーブルに
記憶するとともに、生成したルックアップ情報を用いて
上記第1のメモリに記憶されている所定の情報を取得し
て、取得した情報と上記ルックアップ情報とを用いて上
記チェックポイント情報を生成して、生成したチェック
ポイント情報を上記ルックアップ情報に基づいて上記送
信バッファに記憶することを特徴とする請求項4記載の
フォールトトレラント計算機システム。
5. The checkpoint mechanism according to claim 1, wherein
When the memory is updated, a stack for storing one or more addresses of the first memory in the order in which the memory is updated, and one or more checkpoint information are stored as the memory update information. Then, the transmission buffer in which the storage position of the checkpoint information is managed by a pointer, the address of the first memory and the pointer of the transmission buffer storing the checkpoint information are stored in association with each other as lookup information. A lookup table for managing the lookup information by subaddresses obtained by a hash method based on the addresses stored in the stack, and fetching the addresses stored in the stack in the order of storage. , And convert the fetched address to a subaddress by hashing The presence / absence of the lookup information stored in the lookup table managed by the converted subaddress, and if the lookup information is managed, the address of the lookup information and the stack Comparing the retrieved address, based on the result of confirming the presence / absence and the result of comparing the address, generates the lookup information and stores it in the lookup table, and generates the lookup information. Obtaining predetermined information stored in the first memory using the information; generating the checkpoint information using the obtained information and the look-up information; 2. The method according to claim 1, wherein the information is stored in the transmission buffer based on lookup information. Fault-tolerant computer system as set forth.
【請求項6】 上記チェックポイント機構は、 上記チェックポイント情報を1つ以上記憶して、上記チ
ェックポイント情報の記憶位置がポインタによって管理
される送信バッファと、 上記メモリ更新情報を記憶する1つ以上のエントリを有
して、上記エントリを1つ以上の列と1つ以上の行とに
より管理する事象テーブルとを備えて、 上記第1のメモリのアドレスの一部である索引アドレス
を用いてハッシュ法によって上記事象テーブルの列を示
す列情報に変換して、変換した列情報と一致する上記事
象テーブルの列のすべてのエントリと上記第1のメモリ
のアドレスの上記索引アドレス以外のアドレスの一部で
あるページアドレスとを比較して、一致するエントリが
記憶されていない場合に、上記メモリ更新情報を記憶し
ていないエントリを発見して、発見できた場合に、上記
発見できたエントリに上記ページアドレスを上記メモリ
更新情報として記憶して、上記メモリ更新情報を記憶し
ていないエントリを発見できなかった場合に、上記事象
テーブルの上記メモリ更新情報の記憶されているすべて
のエントリを対象にして、エントリの順に記憶されてい
る上記メモリ更新情報を取り出して、上記メモリ更新情
報を用いて上記第1のメモリに記憶されている所定の情
報を取得し、取得した所定の情報と上記メモリ更新情報
とを用いて上記チェックポイント情報を生成し、生成し
たチェックポイント情報を上記送信バッファに記憶する
ことを特徴とする請求項4、または、5記載のフォール
トトレラント計算機システム。
6. The checkpoint mechanism stores at least one checkpoint information, a transmission buffer in which a storage position of the checkpoint information is managed by a pointer, and at least one memory for storing the memory update information. And an event table that manages the entry by one or more columns and one or more rows, and includes a hash using an index address that is a part of the address of the first memory. To the column information indicating the columns of the event table, and all the entries of the columns of the event table that match the converted column information and a part of the addresses of the first memory other than the index addresses. Is compared with the page address, and if no matching entry is stored, the entry that does not store the memory update information If the entry is found, the page address is stored in the found entry as the memory update information, and if an entry that does not store the memory update information cannot be found, the event For all entries in the table where the memory update information is stored, the memory update information stored in the order of the entries is extracted, and stored in the first memory using the memory update information. 5. The method according to claim 4, further comprising: obtaining predetermined information, generating the checkpoint information using the obtained predetermined information and the memory update information, and storing the generated checkpoint information in the transmission buffer. Or the fault tolerant computer system according to 5.
【請求項7】 上記チェックポイント機構は、上記ペー
ジアドレスである上記メモリ更新情報を用いて、上記第
1のメモリの上記ページアドレスによって示される記憶
領域に記憶されているすべての上記所定の情報を、上記
事象テーブルの1つのエントリに記憶されている上記メ
モリ更新情報から取得することを特徴とする請求項6記
載のフォールトトレラント計算機システム。
7. The check point mechanism uses the memory update information, which is the page address, to delete all the predetermined information stored in a storage area of the first memory indicated by the page address. 7. The fault tolerant computer system according to claim 6, wherein the information is acquired from the memory update information stored in one entry of the event table.
【請求項8】 上記第1のメモリは、少なくともキャッ
シュメモリを含むことを特徴とする請求項1記載のフォ
ールトトレラント計算機システム。
8. The fault tolerant computer system according to claim 1, wherein said first memory includes at least a cache memory.
【請求項9】 上記通信網は、LAN(ローカルエリア
ネットワーク)であることを特徴とする請求項1記載の
フォールトトレラント計算機システム。
9. The fault tolerant computer system according to claim 1, wherein said communication network is a LAN (Local Area Network).
JP2001011619A 2001-01-19 2001-01-19 Fault-tolerant computer system Expired - Fee Related JP3426216B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001011619A JP3426216B2 (en) 2001-01-19 2001-01-19 Fault-tolerant computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001011619A JP3426216B2 (en) 2001-01-19 2001-01-19 Fault-tolerant computer system

Publications (2)

Publication Number Publication Date
JP2002215416A true JP2002215416A (en) 2002-08-02
JP3426216B2 JP3426216B2 (en) 2003-07-14

Family

ID=18878735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001011619A Expired - Fee Related JP3426216B2 (en) 2001-01-19 2001-01-19 Fault-tolerant computer system

Country Status (1)

Country Link
JP (1) JP3426216B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009528620A (en) * 2006-02-28 2009-08-06 マイクロソフト コーポレーション Move virtual machines with resources such as hardware devices
JP2009211517A (en) * 2008-03-05 2009-09-17 Nec Corp Virtual computer redundancy system
JP2010160660A (en) * 2009-01-07 2010-07-22 Nec Corp Network interface, computer system, operation method therefor, and program
WO2010106593A1 (en) * 2009-03-19 2010-09-23 株式会社日立製作所 High-reliability computer system and configuration method therefor

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009528620A (en) * 2006-02-28 2009-08-06 マイクロソフト コーポレーション Move virtual machines with resources such as hardware devices
US8769530B2 (en) 2006-02-28 2014-07-01 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US9535745B2 (en) 2006-02-28 2017-01-03 Microsoft Technology Licensing, Llc Migrating a virtual machine that owns a resource such as a hardware device
US10552208B2 (en) 2006-02-28 2020-02-04 Microsoft Technology Licensing, Llc Migrating a virtual machine that owns a resource such as a hardware device
JP2009211517A (en) * 2008-03-05 2009-09-17 Nec Corp Virtual computer redundancy system
JP2010160660A (en) * 2009-01-07 2010-07-22 Nec Corp Network interface, computer system, operation method therefor, and program
WO2010106593A1 (en) * 2009-03-19 2010-09-23 株式会社日立製作所 High-reliability computer system and configuration method therefor
JP2010218481A (en) * 2009-03-19 2010-09-30 Hitachi Ltd High-reliability computer system and configuring method therefor

Also Published As

Publication number Publication date
JP3426216B2 (en) 2003-07-14

Similar Documents

Publication Publication Date Title
US6934879B2 (en) Method and apparatus for backing up and restoring data from nonvolatile memory
US8381032B2 (en) System-directed checkpointing implementation using a hypervisor layer
US7107411B2 (en) Apparatus method and system for fault tolerant virtual memory management
US7366887B2 (en) System and method for loading programs from HDD independent of operating system
JP3085899B2 (en) Multiprocessor system
US7650467B2 (en) Coordination of multiprocessor operations with shared resources
US6728791B1 (en) RAID 1 read mirroring method for host adapters
JPH0454260B2 (en)
TW200414041A (en) Method and system for maintaining firmware versions in a data processing system
KR970071285A (en) Method and apparatus for maintaining cache continuity in RAID controller with redundant cache
US6944789B2 (en) Method and apparatus for data backup and recovery
US7734842B2 (en) Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
US6636984B1 (en) System and method for recovering data from mirror drives following system crash
JP2002123424A (en) System and method for dynamically reallocating memory in computer system
US20060053260A1 (en) Computing system with memory mirroring and snapshot reliability
US7130973B1 (en) Method and apparatus to restore data redundancy and utilize spare storage spaces
JPH05134812A (en) Method and apparatus for controlling memory device in mirror mode
JP3426216B2 (en) Fault-tolerant computer system
JPWO2004081791A1 (en) Virtual machine system and firmware update method in virtual machine system
US6772289B1 (en) Methods and apparatus for managing cached CRC values in a storage controller
US11074003B2 (en) Storage system and restoration method
JPH0574101B2 (en)
US6701385B1 (en) Raid 1 write mirroring method for host adapters
JP3348420B2 (en) Information processing device with memory copy function
JP2003330737A (en) Computer system

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030422

LAPS Cancellation because of no payment of annual fees