(57)【要約】【課題】システムの停止を抑制して、システムの性能及び信頼性の向上を図ることができるロックステップ方式のフォルトトレラントコンピュータシステムを提供すること。【解決手段】プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムであって、各コンピュータシステムの同期処理のずれを検出する同期ずれ検出手段と、同期ずれが検出された後に、所定のコンピュータシステムのメモリに対して書き込まれるデータを他のコンピュータシステムのメモリに送信して、各コンピュータシステムに装備された各メモリの同期を取るデータ同期手段と、を備えた。【選択図】図１
2009098988.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムであって、
前記各コンピュータシステムの同期処理のずれを検出する同期ずれ検出手段と、
同期ずれが検出された後に、所定の前記コンピュータシステムのメモリに対して書き込まれるデータを他の前記コンピュータシステムのメモリに送信して、前記各コンピュータシステムに装備された各メモリの同期を取るデータ同期手段と、
を備えたことを特徴とするフォルトトレラントコンピュータシステム。
【請求項２】
前記データ同期手段は、前記同期ずれ検出手段にて同期ずれが検出された後に前記所定のコンピュータシステムのメモリに対する所定のデータの書き込みを検出する書込検出手段と、この書込検出手段にて検出された書込データを前記他のコンピュータシステムのメモリに送信する書込データ送信手段と、を備えた、
ことを特徴とする請求項１記載のフォルトトレラントコンピュータシステム。
【請求項３】
前記書込検出手段は、前記プロセッサから前記メモリへの書き込みアクセスを監視して当該メモリへのデータの書き込みを検出する、
ことを特徴とする請求項２記載のフォルトトレラントコンピュータシステム。
【請求項４】
前記データ同期手段は、前記所定のコンピュータから前記他のコンピュータシステムへの接続経路が複数ある場合に、全ての接続経路から前記他のコンピュータシステムに対して前記書込データを送信する、
ことを特徴とする請求項１，２又は３記載のフォルトトレラントコンピュータシステム。
【請求項５】
稼動状態である前記コンピュータシステムと、スタンバイ状態である前記コンピュータシステムと、がそれぞれ備えた前記各メモリ内のデータを同期する初期同期手段を備えた、
ことを特徴とする請求項１，２，３又は４記載のフォルトトレラントコンピュータシステム。
【請求項６】
プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムにおける、前記コンピュータシステムの動作を制御する制御部に、
前記各コンピュータシステムの同期処理のずれを検出する同期ずれ検出手段と、
同期ずれが検出された後に、所定の前記コンピュータシステムのメモリに対して書き込まれるデータを他の前記コンピュータシステムのメモリに送信して、前記各コンピュータシステムに装備された各メモリの同期を取るデータ同期手段と、
を実現させるためのプログラム。
【請求項７】
前記データ同期手段は、前記同期ずれ検出手段にて同期ずれが検出された後に前記所定のコンピュータシステムのメモリに対する所定のデータの書き込みを検出する書込検出手段と、この書込検出手段にて検出された書込データを前記他のコンピュータシステムのメモリに送信する書込データ送信手段と、を備えた、
ことを特徴とする請求項６記載のプログラム。
【請求項８】
プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムにおけるデータ同期方法であって、
前記各コンピュータシステムの同期処理のずれを検出する同期ずれ検出工程と、
同期ずれが検出された後に、所定の前記コンピュータシステムのメモリに対して書き込まれるデータを他の前記コンピュータシステムのメモリに送信して、前記各コンピュータシステムに装備された各メモリの同期を取るデータ同期工程と、
を有することを特徴とするデータ同期方法。
【請求項９】
前記データ同期工程は、前記同期ずれ検出手段にて同期ずれが検出された後に前記所定のコンピュータシステムのメモリに対する所定のデータの書き込みを検出する書込検出工程と、この書込検出工程にて検出された書込データを前記他のコンピュータシステムのメモリに送信する書込データ送信工程と、を有する、
ことを特徴とする請求項８記載のデータ同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォルトトレラントコンピュータシステムにかかり、特に、ロックステップ式のフォルトトレラントコンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムの信頼性の向上を図るべく、システムの一部に何らかの障害が発生した場合であっても、システムを停止せずに継続処理できるようにしたフォルトトレラントコンピュータシステムが開発されている。このフォルトトレラントコンピュータシステムは、ＣＰＵやメモリといったコンピュータを構成するデバイスあるいはコンピュータシステム自体を多重化しておくことで実現可能である。
【０００３】
そして、特に、特許文献１に示すように、複数のコンピュータシステムにて同じ命令列を同期して実行するロックステップ方式のフォルトトレラントコンピュータシステムが実現されている。ところが、ロックステップ方式のコンピュータシステムでは、何らかの障害によりロックステップ外れが発生する場合がある。この場合に、再同期化のための処理を実行する必要があり、再同期化機能を装備している。
【０００４】
【特許文献１】特開２００４−４６６１１号公報
【特許文献２】特開２００３−１５９０１号公報
【特許文献３】特開２００６−２６８７０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、フォルトトレラントコンピュータシステムにおけるメモリの再同期化処理においては、メモリのアクセスを制限して、つまり、システムの運用状態を停止して、メモリの再同期化を行わなければならない。また、再同期化処理においては、再同期化するメモリのデータ量に比例して、システムの停止時間が長くなる、という問題がある。
【０００６】
ここで、特許文献２は、運用系と待機系とを備えた冗長化システムを開示している。この特許文献２の冗長化システムは、運用系に書き込まれた情報を共有メモリに記憶し、これを後に待機系が読み取る、という構成を採っている。また、特許文献３も運用系と待機系とを備えた冗長化システムを開示している。この特許文献３の冗長化システムは、運用系のメモリに書き込みを検出すると、その情報を待機系に送信する、という構成を採っている。
【０００７】
しかし、上記特許文献２，３に開示の冗長化システムは、上述したように運用系と待機系とを備えた冗長化システムであり、ロックステップ方式のフォルトトレラントコンピュータシステムではないため、待機系へのデータの同期を取る際には、システム停止の問題を考慮していない。このため、上述したロックステップ式フォルトトレラントコンピュータシステムのデータの再同期におけるシステムの停止を抑制する技術については開示されていない。さらには、同期を取るタイミングが常に運用系へのデータの書き込み時であるため、当該運用系の処理負荷が高くなる、という問題がある。
【０００８】
このため、本発明の目的は、上述した課題である、システムの停止を抑制して、システムの性能及び信頼性の向上を図ることができるロックステップ方式のフォルトトレラントコンピュータシステムを提供すること、である。
【課題を解決するための手段】
【０００９】
そこで、本発明の一形態であるフォルトトレラントコンピュータシステムは、
プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムであって、
各コンピュータシステムの同期処理のずれを検出する同期ずれ検出手段と、
同期ずれが検出された後に、所定のコンピュータシステムのメモリに対して書き込まれるデータを他のコンピュータシステムのメモリに送信して、各コンピュータシステムに装備された各メモリの同期を取るデータ同期手段と、
を備えた、
という構成を採る。
【発明の効果】
【００１０】
本発明は、以上のように構成されるため、同期ずれが生じた場合であっても、システムの停止を抑制してデータの同期を取ることができ、システムの性能及び信頼性の向上を図ることができる、という従来にない優れた効果を有する。
【発明を実施するための最良の形態】
【００１１】
本発明の一形態であるフォルトトレラントコンピュータシステムは、
プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムであって、
各コンピュータシステムの同期処理のずれを検出する同期ずれ検出手段と、
同期ずれが検出された後に、所定のコンピュータシステムのメモリに対して書き込まれるデータを他のコンピュータシステムのメモリに送信して、各コンピュータシステムに装備された各メモリの同期を取るデータ同期手段と、を備えた、という構成を採る。
【００１２】
そして、上記データ同期手段は、同期ずれ検出手段にて同期ずれが検出された後に所定のコンピュータシステムのメモリに対する所定のデータの書き込みを検出する書込検出手段と、この書込検出手段にて検出された書込データを他のコンピュータシステムのメモリに送信する書込データ送信手段と、
を備えた、という構成を採る。
【００１３】
また、上記書込検出手段は、プロセッサからメモリへの書き込みアクセスを監視して当該メモリへのデータの書き込みを検出する、という構成を採る。また、上記データ同期手段は、所定のコンピュータから他のコンピュータシステムへの接続経路が複数ある場合に、全ての接続経路から他のコンピュータシステムに対して書込データを送信する、という構成を採る。さらに、上記稼動状態であるコンピュータシステムと、スタンバイ状態であるコンピュータシステムと、がそれぞれ備えた各メモリ内のデータを同期する初期同期手段を備えた、という構成を採る。
【００１４】
上記発明によると、まず、複数のコンピュータシステムは、メモリ内のデータの同期を取る。そして、同一クロックにて、同期処理を実行する。その後、何らかの要因で同期処理にずれが生じると、これを検出する。そして、同期処理にずれが生じた後は、所定のコンピュータシステム内のメモリへの書込みアクセスを監視し、書き込みが検出されると、その書込データを他のコンピュータシステムに送信する。すると、他のコンピュータシステムのメモリにも、所定のコンピュータのメモリに書き込まれたデータが書き込まれるため、メモリの同期を取ることができる。従って、プロセッサからのアクセスを停止することなく各コンピュータシステムのメモリの同期を取ることができる。その結果、同期を回復させるといった、コンピュータシステム自体をリセットするなどの最低限必要な停止時間は必要と成るが、システムの停止を抑制して、システムの性能及び信頼性の向上を図ることができる。
【００１５】
また、本発明の他の形態であるプログラムは、
プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムにおける、コンピュータシステムの動作を制御する制御部に、
各コンピュータシステムの同期処理のずれを検出する同期ずれ検出手段と、
同期ずれが検出された後に、所定のコンピュータシステムのメモリに対して書き込まれるデータを他のコンピュータシステムのメモリに送信して、各コンピュータシステムに装備された各メモリの同期を取るデータ同期手段と、
を実現させる、という構成を採る。
【００１６】
そして、上記データ同期手段は、同期ずれ検出手段にて同期ずれが検出された後に所定のコンピュータシステムのメモリに対する所定のデータの書き込みを検出する書込検出手段と、この書込検出手段にて検出された書込データを他のコンピュータシステムのメモリに送信する書込データ送信手段と、を備えた、という構成を採る。
【００１７】
また、本発明の他の形態であるデータ同期方法は、
プロセッサと、メモリと、を備えたコンピュータシステムを複数接続して備え、各コンピュータシステムがクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムにおけるデータ同期方法であって、
各コンピュータシステムの同期処理のずれを検出する同期ずれ検出工程と、
同期ずれが検出された後に、所定のコンピュータシステムのメモリに対して書き込まれるデータを他のコンピュータシステムのメモリに送信して、各コンピュータシステムに装備された各メモリの同期を取るデータ同期工程と、
を有する、という構成を採る。
【００１８】
そして、上記データ同期工程は、同期ずれ検出手段にて同期ずれが検出された後に所定のコンピュータシステムのメモリに対する所定のデータの書き込みを検出する書込検出工程と、この書込検出工程にて検出された書込データを他のコンピュータシステムのメモリに送信する書込データ送信工程と、を有する、という構成を採る。
【００１９】
上記構成のプログラム及びデータ同期方法の発明であっても、上述したフォルトトレラントシステムと同様に作用するため、上述した本発明の目的を達成することができる。以下、実施形態にて本発明の具体的な構成及び動作を説明する。
【００２０】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図３を参照して説明する。図１は、フォルトトレラントコンピュータシステムの全体構成を示すブロック図である。図２は、フォルトトレラントコンピュータシステムを構成するコンピュータシステムの構成を示すブロック図である。図３は、コンピュータシステムの動作を示すフローチャートである。
【００２１】
［構成］
図１に示すように、本実施形態におけるフォルトトレラントコンピュータシステムは、２つのコンピュータシステム１，２から構成されている。そして、これら２つのコンピュータシステム１，２は、相互にクロック同期して同一の処理を行うロックステップ方式のフォルトトレラントコンピュータシステムである。ここでは、符号１のコンピュータシステム１が稼動状態であるシステム（所定のコンピュータシステム）であり、符号２のコンピュータシステム２がスタンバイ状態であるコンピュータシステム（他のコンピュータシステム）である。
【００２２】
なお、本発明におけるフォルトトレラントコンピュータシステムは、２つのコンピュータシステムにて構成されていることに限定されず、さらに多くのコンピュータシステムにて構成されていてもよい。その場合には、１つのコンピュータシステムが複数の接続経路にて全ての他のコンピュータシステムに接続されている。
【００２３】
そして、コンピュータシステム１は、ＣＰＵ１１と、メインメモリ１３と、ＩＯ１４と、これらの動作を制御するコントローラ１２と、を備えている。なお、他のコンピュータシステム２の構成も同様であるため、詳細な説明は省略する。そして、ＣＰＵ１１（プロセッサ）は、ＣＰＵが発行する命令をクロック毎に同期させて作動する。また、メインメモリ１３（メモリ）は、ＣＰＵ１１が発行した命令及び処理データを格納する。
【００２４】
また、コントローラ１２（制御部）は、所定のプログラムが組み込まれることにより、ＣＰＵ１１から発行されるＩＯ命令をデコードするRouting制御機能と、ＣＰＵ１１から発行された命令を他系の同期制御部へ転送するデータ転送機能と、クロック毎の同期状態を監視する同期制御機能と、複数の実装されたデバイスへのアクセスを実施するＩＯ制御機能と、を備えている。具体的に、コントローラ１２は、所定のプログラムが組み込まれることにより、図２に示すように、メインメモリ１３へのデータの書き込みあるいは読み出しを制御するメモリコントローラ４０と、他のコンピュータシステム２とのメモリ内のデータを同期する同期化制御回路５０と、ライト検出部３１及びデータ転送部３２から成るデータ同期回路３０（データ同期手段）と、を備えている。
【００２５】
そして、上記同期化制御回路５０は、ＣＰＵ１１から発行され、内部のパス及び他のコンピュータシステムのデータ転送機能から送られた命令のデータの差異をチェックして、同期処理のずれを検出する機能（同期ずれ検出手段）を有する。そして、同期ずれを検出すると、ライト検出部３１に通知する。
【００２６】
上記ライト検出部３１（書込検出手段）は、同期ずれの検出通知を受けると、ＣＰＵ１あるいはＩＯからのメインメモリ１３に対するデータの書き込みアクセスを検出する。そして、書き込みアクセスを検出すると、書込データを取り出し、データ転送部３２に渡す。
【００２７】
データ転送部３２（書込データ送信手段）は、書込データを、同期化制御回路５０を介して他のコンピュータシステム２のメインメモリ２３に記憶するよう送信する。つまり、他のコンピュータシステム２のコントローラ２２は、稼動状態のコンピュータシステム１から送信された書込データをメインメモリ２３に記憶する機能を有する。これにより、各コンピュータシステム１，２のメインメモリ１３，２３内のデータの同期を取る。なお、データ転送部３２は、他のコンピュータシステム２への接続経路が複数ある場合には、全ての接続経路から他のコンピュータシステムに対して書込データを送信する。
【００２８】
さらに、同期化制御回路５０は、同期処理開始前に、稼動状態であるコンピュータシステム１と、スタンバイ状態である他のコンピュータシステム２と、がそれぞれ備えた各メモリ内のデータを同期する初期同期機能（初期同期手段）を備えている。
【００２９】
［動作］
次に、上記構成のフォルトトレラントコンピュータシステムの動作、特に、稼動状態となるコンピュータシステム１の動作を、図３のフローチャートを参照して説明する。
【００３０】
同期動作させる複数のコンピュータシステム１，２間では、まず、各メインメモリ１３，２３の内容を全て同じ内容にする必要がある。そのため、あらかじめ稼動状態のコンピュータシステム１からスタンバイ状態となっているコンピュータシステム２にメモリデータの転送を行い、メモリの内容を完全に一致させる（ステップＳ１、初期同期工程）。そして、一旦リセットを行い、多重化されたフォルトトレラントコンピュータシステムの動作を同時に開始する。すると、各コンピュータシステム１，２は、クロック毎に同期して動作する（ステップＳ２）。
【００３１】
その後、何らかの障害の発生によりロックステップ外れが発生する。すると、ＩＯ命令やメモリアクセスを監視しているコンピュータシステム１のコントローラ１２が同期ずれを検出する（ステップＳ３でイエス、同期ずれ検出工程）。このように同期ずれを検出すると、コントローラ１２は、その後に発生するメインメモリ１２に対する書込みアクセスを監視する。そして、メインメモリ１２への書込みアクセスの発生を検出すると（ステップＳ４でイエス、書込検出工程）、この書込アクセスに伴って発生したメインメモリ１３に対して書き込まれる書込データを取り出して、他のコンピュータシステム２に送信する（ステップＳ５、書込データ送信工程）。なお、このとき、他系のコンピュータシステムとをつなぐ経路が複数ある場合のシステムでは、最新データを保障するため、すべての経路に対してデータの転送を行う。
【００３２】
すると、コンピュータシステム１では、書込みアクセスに応じてメインメモリ１３に書込データが記憶されると共に、他のコンピュータシステム２では送信された書込データをメインメモリ２３が記憶される。これによって、各コンピュータシステム１，２内のメインメモリ１３，２３の同期を取ることができる（データ同期工程）。その後は、リセット等を行うことで、再度、各コンピュータシステム１，２は、相互に同期処理に復帰する。
【００３３】
ここで、仮に上記構成ではないフォルトトレラントコンピュータシステムにおけるデータ同期方法について説明する。上記ライト検出部３１及びデータ転送部３２を有しないコンピュータシステムでは、コントローラが同期ずれを検出すると、それ以降の差分情報を保存する。そして、コントローラは、保存された差分情報を元に、メインメモリに対してリードリクエストを発行し、読み出したデータをスタンバイ側のコンピュータシステム２に対して送信する。すると、その際に読み出すアドレスに規則性がないため、プロセッサおよびＩＯからのアクセスを停止する必要が生じる。従って、このアクセスを停止している間は、システムが停止した状態になり、一時的に性能劣化が発生する、という問題が生じる。特に、差分情報が多く蓄積した場合には、停止する時間も長くなる、という問題が生じうる。
【００３４】
一方で、上述した発明におけるフォルトトレラントコンピュータシステムでは、同期ずれを検出後は、書き込みが生じる毎に書込データを転送して同期を取っているため、メモリのデータの同期処理時にＣＰＵからのアクセスを停止する必要は無い。そして、再同期処理を開始する際に、リセットするなど必要最低限の停止時間は必要となるが、停止時間を最小限に短くして、システムの停止を抑制し、システムの性能及び信頼性の向上を図ることができる。
【産業上の利用可能性】
【００３５】
本発明は、多重化して使用するロックステップ方式のフォルトトレラントコンピュータシステムに利用することができ、産業上の利用可能性を有する。
【図面の簡単な説明】
【００３６】
【図１】フォルトトレラントコンピュータシステムの全体構成を示すブロック図である。
【図２】図１に開示したコンピュータシステムの構成を示すブロック図である。
【図３】図１に開示したコンピュータシステムの動作を示すフローチャートである。
【符号の説明】
【００３７】
１，２  コンピュータシステム
１１，２１  ＣＰＵ
１２，２２  コントローラ
１３，２３  メインメモリ
３１  ライト検出部
３２  データ転送部
４０  メモリコントローラ
５０  同期化制御回路
【図１】
2009098988.tif 000003
【図２】
2009098988.tif 000004
【図３】
2009098988.tif 000005