(57)【要約】【課題】  運用を停止することなくアクティブ側のメモリのデータをスタンバイ側コンピュータにコピーできるようにする。【解決手段】  同期制御部13からメモリコントローラ121へ順次リードリクエストを行いその都度カウンタ1223をインクリメントする。そのリクエストに対し読み出しが行われたらカウンタ1224をインクリメントすると共にそのデータをスタンバイ側コンピュータへ転送する。メモリコピーの工程中にメモリライトの命令が発行された場合には、アドレス比較器1221はそのライトアドレス(RA)とカウンタ1223,1224のカウント値とを比較し、RAが1223のカウント値より大きい場合には単にメモリライトを許可する。RAが1223のカウント値に等しい場合にはデータ読み出しが終わるのを待って、またRAがそれ以外の場合は直ちにライトを許可し、ライトデータを同期制御部13へ転送する。【選択図】  図２
2006172243.tif 000002
【特許請求の範囲】
【請求項１】
１ないし複数個のプロセッサと、メインメモリと、ルーティング制御部と同期化制御部とを含み各部間の接続を制御するブリッジ回路と、を含むコンピュータシステムを複数備え、各コンピュータシステムがクロック同期して同じ命令列を処理するフォルトトレラントコンピュータ装置において、メインメモリのデータを他のコンピュータシステムのメインメモリにコピーする際には同期化制御部を介してメインメモリのデータを読み出してこれを他のコンピュータシステムの同期化制御部へ転送するように構成されており、前記ルーティング制御部には、メインメモリのデータを同期化制御部を介して読み出す際にその読み出しの進行状態を把握するためのカウンタ機構と、そのカウンタ機構のカウント値とプロセッサからライト命令が発行された際にその書き込みの行われるアドレス（以下、ライトアドレスと記す）とを比較するアドレス比較器と、を含むメモリアクセス監視機構が備えられており、非動作中のコンピュータシステム（以下、スタンバイコンピュータシステムと記す）を動作中のコンピュータシステム（以下、アクティブコンピュータシステムと記す）へ同期化させるために、アクティブコンピュータシステムのメインメモリのデータをスタンバイコンピュータシステムへ順次転送している際にプロセッサよりメインメモリに対するライト命令が発行された場合に、前記メモリアクセス監視機構は、前記アドレス比較部の比較結果に応じて既にデータ読み出しの完了しているアドレスのライトデータおよび現にデータ読み出し作業の行われているアドレスのライトデータのみをアクティブコンピュータシステム側の前記同期化制御部へ転送することを特徴とするフォルトトレラントコンピュータ装置。
【請求項２】
前記カウンタ機構には、読み出しが開始されたデータのアドレスを記憶するリードリクエストカウンタと、その読み出しが完了したデータのアドレスを記憶するリード終了カウンタと、が備えられていることを特徴とする請求項１に記載のフォルトトレラントコンピュータ装置。
【請求項３】
前記アドレス比較器が、ライトアドレスが未だリードリクエストの行われていないアドレスであると判断した場合は、単にメモリライトを許可し、ライトアドレスが既にデータ読み出しの終了しているアドレスであると判断した場合は、メモリライトを許可すると共にライトデータを同期化制御部へ転送し、それ以外の場合には、現に行われている読み出しが終了した後にメモリライトを許可すると共にライトデータを同期化制御部へ転送することを特徴とする請求項２に記載のフォルトトレラントコンピュータ装置。
【請求項４】
ライトデータの前記同期化制御部への転送のタイミングは、前記リード終了カウンタのカウント値が変化するタイミングによって決定されることを特徴とする請求項２または３に記載のフォルトトレラントコンピュータ装置。
【請求項５】
１ないし複数個のプロセッサと、メインメモリと、ルーティング制御部と同期化制御部とを含み各部間の接続を制御するブリッジ回路と、を含むコンピュータシステムを複数備え、各コンピュータシステムがクロック同期して同じ命令列を処理するフォルトトレラントコンピュータ装置において、メインメモリのデータを他のコンピュータシステムのメインメモリにコピーする際には同期化制御部を介してメインメモリのデータを読み出してこれを他のコンピュータシステムの同期化制御部へ転送するように構成されており、前記ルーティング制御部には、メインメモリのデータを同期化制御部を介して読み出す際にその読み出しの進行状態を把握するためのカウンタ機構と、そのカウンタ機構のカウント値とプロセッサからライト命令が発行された際にそのライトアドレスとを比較するアドレス比較器と、を含むメモリアクセス監視機構が備えられており、スタンバイコンピュータシステムをアクティブコンピュータシステムへ同期化させるために、アクティブコンピュータシステムのメインメモリのデータをスタンバイコンピュータシステムへ順次転送している際にプロセッサよりメインメモリに対するライト命令が発行された場合に、前記メモリアクセス監視機構は、前記アドレス比較部の比較結果に応じて既にデータ読み出しの完了しているアドレスおよび現にデータ読み出し作業の行われているアドレスに対してのライト命令である場合に、ライト命令を実行すると共に割込みを提起し、前記同期化制御部はその提起された割込み処理を行う際にライトデータを取得することを特徴とするフォルトトレラントコンピュータ装置。
【請求項６】
前記カウンタ機構には、読み出しが開始されたデータのアドレスを記憶するリードリクエストカウンタ、または、読み出しが終了したデータのアドレスを記憶するリード終了カウンタが備えられていることを特徴とする請求項５に記載のフォルトトレラントコンピュータ装置。
【請求項７】
前記アドレス比較器が、ライトアドレスが未だ同期化制御部によってリードリクエストの行われていないアドレスであると判断した場合は、割込みを提起することなく単にライト命令を許可することを特徴とする請求項５または６に記載のフォルトトレラントコンピュータ装置。
【請求項８】
前記メモリアクセス監視機構により提起された割込みは、現に行われているデータ読み出し作業の終了後次のデータ読み出しが開始される前に実行されることを特徴とする請求項５から７のいずれかに記載のフォルトトレラントコンピュータ装置。
【請求項９】
１ないし複数個のプロセッサと、メインメモリと、ルーティング制御部と同期化制御部とを含み各部間の接続を制御するブリッジ回路と、を含むコンピュータシステムを複数備え、各コンピュータシステムがクロック同期して同じ命令列を処理するフォルトトレラントコンピュータ装置について、アクティブコンピュータシステムへスタンバイコンピュータシステムを同期化させるフォルトトレラントコンピュータ装置の同期化方法において、アクティブコンピュータシステムのメインメモリのデータをスタンバイコンピュータシステムのメインメモリへ転送する際に、既にデータ転送の完了したアドレスに対するライト命令が発行された場合、および、スタンバイコンピュータシステムへのデータ転送のためにリードが開始されたアドレスに対するライト命令が発行された場合には、そのライト命令のデータをスタンバイ側のコンピュータシステムへ転送することにより、アクティブコンピュータを停止させることなく同期化を行うことを特徴とするフォルトトレラントコンピュータ装置の同期化方法。
【請求項１０】
ライト命令のデータのスタンバイコンピュータシステムへの転送はメインメモリを介在させることなく行われることを特徴とする請求項９に記載のフォルトトレラントコンピュータ装置の同期化方法。
【請求項１１】
フォルトトレラントコンピュータ装置は、メインメモリのデータを他のコンピュータシステムのメインメモリにコピーする際には同期化制御部を介してメインメモリのデータを読み出してこれを他のコンピュータシステムの同期化制御部へ転送するように構成されていることを特徴とする請求項９または１０に記載のフォルトトレラントコンピュータ装置の同期化方法。
【請求項１２】
前記ルーティング制御部には、メインメモリのデータを同期化制御部を介して読み出す際にその読み出しの進行状態を把握するためのカウンタ機構と、そのカウンタ機構のカウント値とプロセッサからライト命令が発行された際にその書き込みの行われるアドレスとを比較するアドレス比較器と、を含むメモリアクセス監視機構が備えられていることを特徴とする請求項９から１１のいずれかに記載のフォルトトレラントコンピュータ装置の同期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュータシステムが、同じ命令列をクロック同期して同時に処理するロックステップ方式のフォルトトレラントコンピュータ （ｆａｕｌｔ  ｔｏｌｅｒａｎｔ  ｃｏｍｐｕｔｅｒ）装置とその同期化方法に関し、特に、コンピュータシステム間の同一動作性が崩れた場合（ロックステップが外れた場合）の再同期化処理（組み込み処理）を、フォルトトレラントコンピュータ装置から切り離されたコンピュータシステム以外のコンピュータシステムによる通常運用を停止させることなく実行できるようにしたフォルトトレラントコンピュータ装置およびその同期化方法に関するものである。
【背景技術】
【０００２】
従来のロックステップ方式のフォルトトレラントコンピュータ装置では、同じ命令列を同期して実行している複数のコンピュータシステムの中で、故障あるいはその他の外的あるいは内的要因により、他のコンピュータシステムと異なる出力を行うコンピュータシステム、すなわち障害が発生したコンピュータシステムを検出した場合は、その障害が発生したコンピュータシステムを一旦運用状態から切り離し、ロックステップが外れる要因に応じて必要によりコンピュータシステムを交換し、あるいは交換を必要としない場合は必要に応じた再初期化処理等を行うことにより、運用状態に組み込む操作が行われている。
【０００３】
この運用状態への組み込みは、従来のロックステップ方式のフォルトトレラントコンピュータ装置では、障害により交換されたコンピュータもしくは初期の立ち上げ時のスタンバイ側のコンピュータのメモリをアクティブ側のコンピュータのメモリの内容と一致させるために、運用状態のコンピュータシステムのもつメインメモリのデータを全て、再組み込みするコンピュータシステムのもつメインメモリへコピーする必要がある。
【０００４】
従来のロックステップ方式のフォルトトレラントコンピュータ装置は、障害の発生したコンピュータシステムの交換や障害の発生原因の部位に応じた再初期化処理などを実施した後、再度運用状態に組み込む場合に、運用状態にあったコンピュータシステムを停止させている（例えば、特許文献１参照）。
すなわち、この従来のロックステップ方式のフォルトトレラントコンピュータ装置では、障害の発生したコンピュータシステムの再組み込み処理の間、フォルトトレラントコンピュータ装置全体が長期間（一般に３〜５秒間、乃至分オーダの時間）、業務を停止させなければならなかった。
【０００５】
その理由は、障害により外されたコンピュータシステムを運用状態に組み込むために、運用を継続していたコンピュータシステムのメインメモリの内容を、再度組み込もうとしているコンピュータシステムのメインメモリにコピーする際に、運用を継続しているとメインメモリの内容が更新されてしまう恐れがあるためである。コピー作業が行われている際にコピー元コンピュータシステム側が運用を継続していると、コピー済みアドレスのデータが更新されると、運用を継続しているコンピュータシステムのメインメモリの内容が組み込みの行われるコンピュータシステムのメインメモリに正確にコピーされないことになる。
そこで、転送の完了した領域のアドレスを保持するレジスタを用意し、ライト命令がが発生した場合にはそのライトアドレスが既に転送の完了した領域のアドレスに対するライト命令であるか否かを調べ、転送の完了した領域のアドレスに対する要求である場合には、そのアドレスを記憶して置き、メモリコピーが完了した後に、そのアドレスに対して読み出しを行いそのデータを転送先コンピュータへ転送することが提案されている（例えば、特許文献２参照）。
【特許文献１】特開２００４−０４６４５５号公報
【特許文献２】特開２００１−２６５７５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のロックステップのフォルトトレラントコンピュータ装置では、何らかの要因による障害により切り離されたコンピュータシステムを、運用状態に再組み込みする際に動作中のコンピュータシステムも一旦停止させてメインメモリのコピーを行っている。而して、現在のコンピュータシステム内のメモリの容量は、数ギガバイトに及んでいることから、メモリの全領域をコピーするには長時間を要することになり、長時間の運用停止が問題となってきている。この問題に対処して、正常に動作している側のコンピュータシステム（アクティブ側）においてメモリアクセスを制限しつつメインメモリの内容を再組み込みが行われる側のコンピュータシステム（スタンバイ側）へコピーする方法も提案されているが、ソフトウェアに特別の処理が要求される上に運用を継続しているコンピュータシステムの性能が大幅に低下するなどの問題があった。
また、特許文献２により提案された方式では、メモリコピーのためにメモリリードを実行しようとしている際にそのメモリリードのアドレスに対するメモリライト命令が発生するとライト命令が先行してしまう可能性があり、転送元メモリの内容を完全に転送先メモリに転送できない可能性がある。また、特許文献２に記載されたような、メモリライトの実行されたアドレスのデータを読み出して転送する方式では、ライトデータの転送のために長い時間がかかるという問題点があった。
本発明の課題は、上述した従来技術の問題点を解決することであって、その目的は、第１に、アクティブ側のコンピュータシステムの運用を停止することなくスタンバイ側コンピュータシステムの再組み込み処理を実現できるようにすることであり、第２に、ソフトウェアに特別の処理を要求しなくても済むようにすることであり、第３に、再組み込み処理時にアクティブ側のコンピュータシステムの性能低下を招くことのないようにすることであり、第４に、極力すくないプロセスにてデータ転送を完了できるようにして同期化を短時間で実現できるようにすることである。
【課題を解決するための手段】
【０００７】
上記の目的を達成するため、本発明によれば、１ないし複数個のプロセッサと、メインメモリと、ルーティング制御部と同期化制御部とを含み各部間の接続を制御するブリッジ回路と、を含むコンピュータシステムを複数備え、各コンピュータシステムがクロック同期して同じ命令列を処理するフォルトトレラントコンピュータ装置において、メインメモリのデータを他のコンピュータシステムのメインメモリにコピーする際には同期化制御部を介してメインメモリのデータを読み出してこれを他のコンピュータシステムの同期化制御部へ転送するように構成されており、前記ルーティング制御部には、メインメモリのデータを同期化制御部を介して読み出す際にその読み出しの進行状態を把握するためのカウンタ機構と、そのカウンタ機構のカウント値とプロセッサからライト命令が発行された際にその書き込みの行われるアドレス（以下、ライトアドレスと記す）とを比較するアドレス比較器と、を含むメモリアクセス監視機構が備えられており、非動作中のコンピュータシステム（以下、スタンバイコンピュータシステムと記す）を動作中のコンピュータシステム（以下、アクティブコンピュータシステムと記す）へ同期化させるために、アクティブコンピュータシステムのメインメモリのデータをスタンバイコンピュータシステムへ順次転送している際にプロセッサよりメインメモリに対するライト命令が発行された場合に、前記メモリアクセス監視機構は、前記アドレス比較部の比較結果に応じて既にデータ読み出しの完了しているアドレスのライトデータおよび現にデータ読み出し作業の行われているアドレスのライトデータのみをアクティブコンピュータシステム側の前記同期化制御部へ転送することを特徴とするフォルトトレラントコンピュータ装置、が提供される。
【０００８】
また、上記の目的を達成するため、本発明によれば、１ないし複数個のプロセッサと、メインメモリと、ルーティング制御部と同期化制御部とを含み各部間の接続を制御するブリッジ回路と、を含むコンピュータシステムを複数備え、各コンピュータシステムがクロック同期して同じ命令列を処理するフォルトトレラントコンピュータ装置において、メインメモリのデータを他のコンピュータシステムのメインメモリにコピーする際には同期化制御部を介してメインメモリのデータを読み出してこれを他のコンピュータシステムの同期化制御部へ転送するように構成されており、前記ルーティング制御部には、メインメモリのデータを同期化制御部を介して読み出す際にその読み出しの進行状態を把握するためのカウンタ機構と、そのカウンタ機構のカウント値とプロセッサからライト命令が発行された際にそのライトアドレスとを比較するアドレス比較器と、を含むメモリアクセス監視機構が備えられており、スタンバイコンピュータシステムをアクティブコンピュータシステムへ同期化させるために、アクティブコンピュータシステムのメインメモリのデータをスタンバイコンピュータシステムへ順次転送している際にプロセッサよりメインメモリに対するライト命令が発行された場合に、前記メモリアクセス監視機構は、前記アドレス比較部の比較結果に応じて既にデータ読み出しの完了しているアドレスおよび現にデータ読み出し作業の行われているアドレスに対してのライト命令である場合に、ライト命令を実行すると共に割込みを提起し、前記同期化制御部はその提起された割込み処理を行う際にライトデータを取得することを特徴とするフォルトトレラントコンピュータ装置、が提供される。
【０００９】
また、上記の目的を達成するため、本発明によれば、１ないし複数個のプロセッサと、メインメモリと、ルーティング制御部と同期化制御部とを含み各部間の接続を制御するブリッジ回路と、を含むコンピュータシステムを複数備え、各コンピュータシステムがクロック同期して同じ命令列を処理するフォルトトレラントコンピュータ装置について、アクティブコンピュータシステムへスタンバイコンピュータシステムを同期化させるフォルトトレラントコンピュータ装置の同期化方法において、アクティブコンピュータシステムのメインメモリのデータをスタンバイコンピュータシステムのメインメモリへ転送する際に、既にデータ転送の完了したアドレスに対するライト命令が発行された場合、および、スタンバイコンピュータシステムへのデータ転送のためにリードが開始されたアドレスに対するライト命令が発行された場合には、そのライト命令のデータをスタンバイ側のコンピュータシステムへ転送することにより、アクティブコンピュータを停止させることなく同期化を行うことを特徴とするフォルトトレラントコンピュータ装置の同期化方法、が提供される。
【発明の効果】
【００１０】
本発明の第１の効果は、スタンバイ側コンピュータシステムの同期化を、アクティブ側のコンピュータシステムの運用を停止することなく、すなわち通常運用の状態を維持したまま実現できることである。
第２の効果は、アクティブ側のコンピュータシステムのメインメモリへのライトアクセスをソフトウェアに対して制限してないためにソフトウェアのメモリアクセスについて特に意識する必要がなくなり、通常運用時と同様にコンピュータを使用することが可能となり、ソフトウェアの制御が複雑化することを回避することができることである。
第３の効果は、ソフトウェア、ファームウェアに対してメモリへのアクセスを制限してないために、コンピュータシステムの性能低下が同期化処理のためのメモリアクセスに限られ、システムのメモリアクセスを止めた場合に比べはるかに高速に同期化処理を終了することが可能となることである。
第４の効果は、同期化処理中にメインメモリに対するライト命令が発行されてもこのライトデータのスタンバイ側コンピュータシステムへの２重転送を最低限にとどめることができ、システムの性能低下を最小限に抑えることができることである。
【発明を実施するための最良の形態】
【００１１】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、本発明の第１の実施の形態の概略の構成を示すブロック図である。なお、図１において、各部を結ぶ線はバスないし配線を意味しており、また矢印は信号の伝達方向を示している（図２、図６においても同様である）。図１に示すように、本実施の形態のフォルトトレラントコンピュータ装置１００は、コンピュータシステム１０１と、これと同一構成のコンピュータシステム１０２とによって構成されている。本実施の形態では、接続されるコンピュータシステムは２つのみであるが３個以上のコンピュータシステムによってフォルトトレラントコンピュータ装置が構成されていてもよい。コンピュータシステム１０１と１０２には、それぞれＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｕｉｔ）１０１、１０２；２０１、２０２が装備されている。本実施の形態では、各コンピュータシステムにはＣＰＵは２個ずつ備えられているが、ＣＰＵは１個のみであっても３個以上であってもよい。ＣＰＵ１０１、１０２（２０１、２０２）はバスを介してブリッジ回路１１（２１）に接続されている。ブリッジ回路１１（２１）には、ルーティング制御部１２（２２）、同期制御部１３（２３）、ＩＯ制御部１４（２４）が備えられており、ルーティング制御部１２（２２）はメインメモリ１５（２５）に、ＩＯ制御部１４（２４）はＩＯ機器１６、１７（２６、２７）にそれぞれ接続されている。
【００１２】
フォルトトレラントコンピュータ装置１００の通常運用時には、コンピュータシステム１０１とコンピュータシステム１０２とは同期して同一の動作を行っている。すなわち、コンピュータシステム１０１とコンピュータシステム１０２とは同一のクロックにより動作しており、ＣＰＵ１０１、１０２とＣＰＵ２０１、２０２とは、同時に同一の命令を発行する。その命令はそれぞれブリッジ回路１１、２１へ伝達され、これを介してメインメモリ１５、２５へのアクセスが行われ、またＩＯ機器１６、１７；２６、２７に対する制御が行われる。
コンピュータシステム１０１のＣＰＵ１０１、１０２から発行された命令の一部は、ルーティング制御部１２を介してコンピュータシステム１０２の同期制御部２３へ伝達され、一方、同一の命令はＣＰＵ２０１、２０２からも発行され、その命令はルーティング制御部２２を介して同期制御部２３へ伝達され、両方のＣＰＵから発行された命令のタイミングのずれが同期制御部２３において検証される。同様に、同期制御部１３においても両方のＣＰＵから発行された命令のタイミングのずれが検証される。
【００１３】
図２は、図１のブリッジ回路１１のより詳細な構成を示すブロック図である（但し、図２ではＩＯ制御部の図示は省略されている）。図２に示すように、ルーティング制御部１２には、メインメモリ１５へのアクセスを制御するメモリコントローラ１２１と、メモリアクセス監視機構１２２とが備えられている（ルーティング制御部１２にはバスコントローラなどの他の制御回路も備えられているがそれらの図示は省略されている）。メモリアクセス監視機構１２２は、メインメモリ１５のデータがメモリコントローラ１２１、同期制御部１３を介してコンピュータシステム１０２へ転送されているプロセス中にＣＰＵよりメモリライトの命令が発行された場合のそのライトデータの同期制御部１３への転送を制御する。
メモリアクセス監視機構１２２には、同期制御部１３がメモリコントローラ１２１に対してリードリクエストを行う度にカウントアップされるリードリクエストカウンタ１２２３と、リードが完了する度にカウントアップされるリード終了カウンタ１２２４と、メモリライト命令が発行された際にそのライトアドレスとカウンタ１２２３、１２２４のカウント値とを比較する比較器１２２１と、ライトデータの同期制御部１３への転送を行うライトデータ送受信部１２２２とが備えられている。なお、メインメモリ１５のコンピュータシステム１０２への転送は昇順で行うことも降順で行うこともできるが本明細書では便宜上昇順にて転送が行われるものとする。
【００１４】
図３は、コンピュータシステム１０２を再組み込みするためにメインメモリ１５のデータをコンピュータシステム１０２へ転送する際の手順を示す流れ図であり、図４は、メモリコピーの行われているプロセス中にメモリライト命令が発行された場合のブリッジ回路１１での処理の手順を示す流れ図であり、図５は、メインメモリ１５のデータをコンピュータシステム１０２へ転送する際の命令およびデータの動きを示す流れ図である。図は、リードリクエストカウンタ１２２３とリード終了カウンタ１２２４のカウント値が“５”であって、６番地のデータが転送される場合の状態が示されている、次に、図３〜図５を参照して、図１、図２に示される本実施の形態の装置における同期化の手順について、説明する。なお、本実施の形態の説明では、コンピュータシステム１０１がアクティブ側で、コンピュータシステム１０２がスタンバイ側であるものとしているが、当然逆の場合も起こりうる。
図３のフローにおいて、ステップＳ１０１にてコンピュータシステム１０１のＣＰＵより同期化開始命令が同期制御部１３宛に発行されると、ステップＳ１０２にてカウンタ１２２３、１２２４がリセットされる。その後、同期制御部１３からメモリリクエストが発行されそのリードリプライが同期制御部１３に戻されそのデータがコンピュータシステム１０２宛に転送され、カウンタが順次カウントアップされるが、今リードリクエストカウンタ１２２３とリード終了カウンタ１２２４のカウント値が“５”であって、５番地までメモリデータの転送が完了した状態にあるものとする。ステップＳ１０３にて同期制御部１３よりルーティング制御部１２宛６番地のリードリクエストが発行されると、ルーティング制御部１２は、ＣＰＵにそのキャッシュに６番地のデータを持っていないかどうかを問い合わせる（図５のａ）。ＣＰＵからの回答の如何によらずルーティング制御部１２はそのメモリコントローラ１２１宛にリードリクエストが発行され（図５のｂ）、ステップＳ１０４にてリードリクエストカウンタ１２２３が更新され、メインメモリに対してリードが開始される（図５のｃ）。ステップＳ１０５にてリードデータリプライが行われる（図５のｄ）とそのリードデータ（そのデータをＡとする）はステップＳ１０６にて同期制御部１３へ転送される。すると、ステップＳ１０７にてリード終了カウンタ１２２４の更新が行われ、更にそのリードデータはステップＳ１０８にてコンピュータシステム１０２の同期制御部へ転送される（図５のe）。次いで、ステップＳ１０９にてメインメモリ１５の全領域のデータの転送が完了したか否かがチェックされ、完了していない場合にはステップＳ１０３に戻って上記のフローが繰り返される。ステップＳ１０９にてデータの転送が完了したと判断された場合には、同期化が終了したことになるのでメモリのコピー作業は終了する。そして、コンピュータシステム１０１と１０２によるフォルトトレラントコンピュータ装置１００の通常運用が開始される。
なお、図３のフローにおいて、ステップＳ１０６とＳ１０７とはいずれか先であってもよくまた同時であってもよい。
【００１５】
図５に示す流れ図において、リードリクエストカウンタが更新される前の時点およびリードリ終了カウンタが更新された後の時点でＣＰＵよりメモリライト命令が発行された場合（すなわち、両カウンタのカウント値が一致している場合）、同期制御部１３からのメモリリードよりもＣＰＵからのメモリライト命令が優先されて処理されるため、メモリライト命令によってメモリリードの行われているアドレスのデータが書き換えられてしまうという問題は考える必要がない。これに対して、リードリクエストカウンタが更新された後でリード終了カウンタが更新される前の期間では、リードリクエスト対象のアドレスに対してメモリライト命令が実行されるとリードリプライの行われたアドレスのデータが書き換えられる可能性が発生する。そこで、本発明においては、この期間内においてはリードリクエストのあったアドレスに対するライト命令は一時停止される。
【００１６】
図４に示すように、待機中（メモリコピーの行われているプロセス中にメモリライト命令を待つ状態）にステップＳ２０１にてＣＰＵよりメモリコントローラ１２１に対してメモリライト命令が発行されると、そのライトアドレスはアドレス比較器１２２１に伝達され、ステップＳ２０２にてそのライトアドレスが同期制御部１３によってリードリクエストされたアドレスであるか否か、リードリクエストされてリプライされているか否かがチェックされる。アドレス比較器１２２１は、ライトアドレスとリードリクエストカウンタ１２２３のカウント値およびリード終了カウンタ１２２４のカウント値との比較を行い、ライトアドレスがリードリクエストカウンタ１２２３のカウント値より大きい場合には、未だリードリクエストが発行されていないアドレスに対するライト命令であると判断して、ステップＳ２０３にてメモリコントローラ１２１に対しメモリライトの許可を与え待機状態に戻る。ステップＳ２０２にてアドレス比較器１２２１が、ライトアドレスがリード終了カウンタ１２２４のカウント値と同じかこれより小さいことを検出した場合には、既にメモリコピーの終了したアドレスに対するライト命令であると判断してステップＳ２０４にてライトデータ送受信部１２２２を介してライトデータを同期制御部１３へ転送する。同期制御部１３はステップＳ２０５にてこのライトデータをコンピュータシステム１０２の同期制御部へ転送する。そして、ステップＳ２０３にてメモリコントローラ１２１に対しメモリライトの許可を与え待機状態に戻る。
【００１７】
ステップＳ２０２にてアドレス比較器１２２１が、ライトアドレスがリードリクエストカウンタ１２２３のカウント値と同じで且つリード終了カウンタ１２２４のカウント値より大きいことを検出した場合には、ライト命令が現在メモリリードの行われているアドレスに対するものであると判断してステップＳ２０６にてリード終了カウンタ１２２４のカウント値が更新されるのを待ってステップＳ２０４へ進む。今、リードリクエストカウンタ１２２３のカウント値が“５”でリード終了カウンタ１２２４のカウント値が“６”であるものとすると、図５のｆに示されるようにライト命令（そのデータをＢとする）が発行されると、リード終了カウンタが更新されるのを待って、図５のｇに示すように、ライトデータをライトデータ送受信部１２２２、同期制御部１３を介してコンピュータシステム１０２の同期制御部へ転送する（ステップＳ２０４、Ｓ２０５）。そして、ステップＳ２０３にてメモリコントローラ１２１に対しメモリライトの許可を与え（図５のｈに示すように、メモリライトが実行され）、待機状態に戻る。
なお、図４のフローにおいて、ステップＳ２０４とＳ２０３とはいずれか先であってもよくまた同時であってもよい。
【００１８】
［第２の実施の形態］
図６は、本発明の第２の実施の形態のブリッジ回路１１の構成を示すブロック図である（第２の実施の形態の全体の構成図は図１に示される第１の実施の形態のものと同じである）。図６において、図２に示される第１の実施の形態のブロック図と同等の部分には同一の参照符号が付せられているので、ブリッジ回路１１に関する重複する説明は省略する。本実施の形態においては、リード終了カウンタは削除され、リードリクエストカウンタ１２２３のみが用いられる。
【００１９】
図７は、第２の実施の形態においてメインメモリ１５のデータをスタンバイ側であるコンピュータシステム１０２へ転送する際の手順を示す流れ図である。
ステップＳ３０１において、コンピュータシステム１０１のＣＰＵより同期化開始命令が同期制御部１３宛に発行されると、ステップＳ３０２にてリードリクエストカウンタ１２２３がリセットされる。ステップＳ３０３にて同期制御部１３よりメモリコントローラ１２１宛リードリクエストが発行され、ステップＳ３０４にてリードリクエストカウンタ１２２３が更新され、メモリリードが開始される。ステップＳ３０５にてリードデータリプライが行われるとそのリードデータはステップＳ３０６にて同期制御部１３へ転送される。そのリードデータはステップＳ３０７にてコンピュータシステム１０２の同期制御部へ転送される。次いで、ステップＳ３０８にて割込みが提起されているか否かがチェックされ、提起されていない場合にはステップＳ３１０にてメインメモリ１５の全領域のデータの転送が完了したか否かがチェックされ、完了していない場合にはステップＳ３０３に戻って上記のフローが繰り返される。
【００２０】
ステップＳ３０８にて割込みが提起されていることが判明した場合にはステップＳ３０９へ進み割込み処理が実行される。割込み処理では、ステップＳ３０９１にてライトデータ送受信部１２２２を介してライトデータが同期制御部１３へ転送され、ステップＳ３０９２にてそのライトデータがコンピュータシステム１０２の同期制御部へ転送され、割込み処理は完了する。ステップＳ３１０にてメインメモリ１５の全データの転送が完了したと判断された場合には、同期化が終了したことになりメモリのコピー作業は終了する。
【００２１】
図８は、メモリコピーの行われているプロセス中にメモリライト命令が発行された場合のブリッジ回路１１において行われる処理の手順を示す流れ図である。待機中にステップＳ４０１にてＣＰＵよりメモリコントローラ１２１に対してメモリライト命令が発行されると、そのライトアドレスはアドレス比較器１２２１に伝達され、ステップＳ４０２にてそのライトアドレスが同期制御部１３によって既にリードリクエストされたアドレスであるか否かがチェックされる。アドレス比較器１２２１は、ライトアドレスとリードリクエストカウンタ１２２３のカウント値との比較を行い、ライトアドレスがリードリクエストカウンタ１２２３のカウント値より大きい場合には、未だリードリクエストが発行されていないアドレスに対するライトであると判断して、ステップＳ４０３にてメモリコントローラ１２１に対しメモリライトの許可を与え待機状態に戻る。ステップＳ４０２にてアドレス比較器１２２１が、ライトアドレスがリードリクエストカウンタ１２２３のカウント値と同じかこれより小さいことを検出した場合には、既にリードリクエストがなされたアドレスに対するライト命令であると判断してステップＳ４０４にてメモリコントローラ１２１に対しメモリライトの許可を与え、ステップＳ４０５にて割込みを提起した後、待機状態に戻る。
【００２２】
なお、図３のフローにおいて、ステップＳ４０４とＳ４０５とはいずれか先であってもよくまた同時であってもよい。
本実施の形態では、リードリクエストカウンタのみが用いられていたが、これを削除しリード終了カウンタのみを用いるようにしても良い。この場合には、リード終了カウンタのカウント値に１を加算して先の説明と同様の方法を実行すればよい。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施の形態の全体の構成を示すブロック図。
【図２】本発明の第１の実施の形態のブリッジ回路の構成を示すブロック図。
【図３】本発明の第１の実施の形態のメモリコピーの処理の手順を示す流れ図。
【図４】本発明の第１の実施の形態において、メモリコピーのプロセス中にメモリライト命令が発行された場合の処理の手順を示す流れ図。
【図５】本発明の第１の実施の形態における命令およびデータの動きを示す流れ図。
【図６】本発明の第２の実施の形態のブリッジ回路の構成を示すブロック図。
【図７】本発明の第２の実施の形態のメモリコピーの処理の手順を示す流れ図。
【図８】本発明の第２の実施の形態において、メモリコピーのプロセス中にメモリライト命令が発行された場合の処理の手順を示す流れ図。
【図１】
2006172243.tif 000003
【図２】
2006172243.tif 000004
【図３】
2006172243.tif 000005
【図４】
2006172243.tif 000006
【図５】
2006172243.tif 000007
【図６】
2006172243.tif 000008
【図７】
2006172243.tif 000009
【図８】
2006172243.tif 000010