(57)【要約】【課題】ロックステップ方式のフォルトトレラントコンピュータシステムで、一時退避用のメモリをリセットすることなく、一時退避用のメモリのデータを同期させることができるようにする。【解決手段】データの一時的な退避用として実装されているＲＡＭ５０に対して、書込データバッファ５１と、書込キューバッファ５２と、読出データバッファ５３と、読出キューバッファ５４ａ、５４ｂとを設ける。書込キューバッファ５２は、ＲＡＭ５０中で、データの書き込み可能なアドレスを順番に格納し、ＲＡＭ５０へのデータの書き込みの順番を保証する。読出キューバッファ５４ａ、５４ｂは、ＲＡＭ５０からの読み出し可能なアドレスを順番に格納し、ＲＡＭ５０からのデータの読み出しの順番を保証する。【選択図】図２
2011065451.tif 000002
【特許請求の範囲】
【請求項１】
同一構成の複数のコンピュータシステムを同期して動作させるフォルトトレラントコンピュータシステムであって、
内部のデータを一時的に退避させるメモリと、
前記メモリへのデータの書き込みの順番のアドレスを格納する書込キューバッファと、
前記メモリへの読み出しの順番のアドレスを格納する読出キューバッファと、
前記メモリにデータを書き込む場合に、前記書込キューバッファで示されるアドレスにデータを書き込み、前記メモリからデータを読み出す場合に、前記読出キューバッファで示されるアドレスからデータを読み出すコントローラと、
を備えることを特徴とするフォルトトレラントコンピュータシステム。
【請求項２】
前記コントローラは、前記書込キューバッファに、前記メモリでデータの書き込み可能なアドレスを順番に格納することを特徴とする請求項１に記載のフォルトトレラントコンピュータシステム。
【請求項３】
前記コントローラは、前記読出キューバッファに、前記メモリでデータの読み出し可能なアドレスを順番に格納することを特徴とする請求項１に記載のフォルトトレラントコンピュータシステム。
【請求項４】
同一構成の複数のコンピュータシステムを同期して動作させるフォルトトレラントコンピュータを用いて、内部のデータを一時的に退避させるメモリのデータ管理方法であって、
書込キューバッファに前記メモリへのデータの書き込みの順番のアドレスを格納し、読出キューバッファに前記メモリからのデータの読み出しの順番のアドレスを格納しておき、
前記メモリにデータを書き込む場合に、前記書込キューバッファで示されるアドレスで前記メモリにデータを書き込み、前記メモリからデータを読み出す場合に、前記読出キューバッファで示されるアドレスで前記メモリからデータを読み出す
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一構成の複数のコンピュータシステムを同期して動作させるフォルトトレラントコンピュータシステム及びそのデータ管理方法に関するもので、特に、内部のデータを一時的に退避させるメモリの管理に関する。
【背景技術】
【０００２】
ロックステップ方式のフォルトトレラントコンピュータシステムでは、例えば特許文献１に示されるように、同一のデバイスで構成された複数のコンピュータシステムを並列に動作させることで、障害の発生に対処している。このようなロックステップ方式のフォルトトレラントコンピュータシステムにおいては、全てのメモリのデータ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のステートなど、全ての状態を複数のコンピュータシステムで同一にする必要がある。またＣＰＵが全ての命令、アドレス等を同一クロックで発行し続けるためには、メモリやＩＯ（Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ）内部の状態も複数のコンピュータシステムで同一にする必要がある。このため、メモリやＩＯのデータを一時的に退避させるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に対しても、クロック同期のリセットを用いて一旦リセットを行い、タイミングを合わせる必要がある。
【０００３】
つまり、図４は、ロックステップ方式のフォルトトレラントコンピュータシステムを構成する２つのコンピュータシステムにおいて、内部のデータを一時的に退避させるＲＡＭ５５０及び６５０の制御を示すものである。
【０００４】
図４において、ＲＡＭ５５０及びＲＡＭ６５０には、”１”〜”５”のアドレスがあるものとする。コンピュータシステムを同期させるために、ＲＡＭ５５０及びＲＡＭ６５０は同期リセットしておく。このように、ＲＡＭ５５０及びＲＡＭ６５０を同期リセットしておくことで、ＲＡＭ５５０及びＲＡＭ６５０の同一アドレスに同一のデータが書き込まれることになる。図４の例では、ＲＡＭ５５０にデータを書き込む場合には、アドレス”３”にデータが書き込まれ、これと同様に、ＲＡＭ６５０でも、アドレス”３”にデータが書き込まれる。また、ＲＡＭ５５０からデータを読み出す場合には、アドレス”５”からデータが読み出され、これと同様に、ＲＡＭ６５０のアドレス”５”からデータが読み出される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１７８６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のフォルトトレラントコンピュータシステムでは、メモリやＩＯの内部の状態を一致させるために、それぞれのコンピュータシステムのメモリの状態を一致させた後、一時的に両方のコンピュータを止め、データを退避させるＲＡＭに対して同期リセットを発行する必要がある。このため、同期リセットを行うリセット回路が必要であり、また同期リセットによる処理が複雑化してしまうという問題がある。
【０００７】
上述の課題を鑑み、本発明は、同期リセットを行うことなく、一時退避用のメモリに対する同期を確保でき、同期リセットを簡略化できるフォルトトレラントコンピュータシステム及びデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するために、本発明は、同一構成の複数のコンピュータシステムを同期して動作させるフォルトトレラントコンピュータシステムであって、内部のデータを一時的に退避させるメモリと、メモリへのデータの書き込みの順番のアドレスを格納する書込キューバッファと、メモリへの読み出しの順番のアドレスを格納する読出キューバッファとを備え、メモリにデータを書き込む場合に、書込キューバッファで示されるアドレスにデータを書き込み、メモリからデータを読み出す場合に、読出キューバッファで示されるアドレスからデータを読み出すことを特徴とする。
【０００９】
本発明は、同一構成の複数のコンピュータシステムを同期して動作させるフォルトトレラントコンピュータで、内部のデータを一時的に退避させるメモリのデータ管理方法であって、書込キューバッファにメモリへのデータの書き込みの順番のアドレスを格納し、読出キューバッファにメモリからのデータの読み出しの順番のアドレスを格納しておき、メモリにデータを書き込む場合に、書込キューバッファで示されるアドレスでメモリにデータを書き込み、メモリからデータを読み出す場合に、読出キューバッファで示されるアドレスでメモリからデータを読み出すことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、一時データ退避用のメモリへのデータの書き込みの順番を保証する書込キューバッファ及びその読み出しの順番を保証する読出キューバッファが設けられる。このため、メモリのアドレスが異なっていても、メモリに書き込み及び読み出されるデータは同期することになり、同期化を図るためのリセット回路を省略できる。
【図面の簡単な説明】
【００１１】
【図１】本発明が適用できるロックステップ方式のフォルトトレラントコンピュータシステムの構成を示すブロック図である。
【図２】本発明の第１の実施形態のロックステップ方式のフォルトトレラントコンピュータシステムにおけるデータ退避用のＲＡＭの制御構成の説明に用いるブロック図である。
【図３】本発明の第１の実施形態のロックステップ方式のフォルトトレラントコンピュータシステムにおけるデータ退避用のＲＡＭの動作説明図である。
【図４】ロックステップ方式のフォルトトレラントコンピュータシステムにおけるデータ退避用のＲＡＭの動作説明図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照しながら説明する。図１は、本発明が適用できるロックステップ方式のフォルトトレラントコンピュータシステムの構成を示すものである。
【００１３】
図１において、コンピュータシステム１０１は、ＣＰＵ１０２ａ及び１０２ｂ、メインメモリ１０３、コントローラ１０４、ＩＯポート１０５ａ及び１０５ｂを備えている。コントローラ１０４は、メモリ・ＩＯコントローラ１０６とＦＴ（Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ：フォルトトレラント）コントローラ１０７とを含んでいる。メモリ・ＩＯコントローラ１０６は、メインメモリ１０３やＩＯポート１０５ａ、１０５ｂの制御を行う。ＦＴコントローラ１０７は、コンピュータシステム１０１とコンピュータシステム２０１との同期状態を制御する。
【００１４】
コンピュータシステム２０１は、ＣＰＵ２０２ａ及び２０２ｂ、メインメモリ２０３、コントローラ２０４、ＩＯポート２０５ａ及び２０５ｂを備えている。コントローラ２０４は、メモリ・ＩＯコントローラ２０６とＦＴコントローラ２０７とを含んでいる。メモリ・ＩＯコントローラ２０６は、メインメモリ２０３やＩＯポート２０５ａ、２０５ｂの制御を行う。ＦＴコントローラ２０７は、コンピュータシステム２０１とコンピュータシステム１０１との同期状態を制御する。
【００１５】
コンピュータシステム１０１とコンピュータシステム２０１とは、メモリ・ＩＯコントローラ１０６及びＦＴコントローラ１０７、メモリ・ＩＯコントローラ２０６及びＦＴコントローラ２０７とを介して接続されている。このコンピュータシステムでは、コンピュータシステム１０１とコンピュータシステム２０１とをクロックに同期させて動作させることで、ロックステップ方式にフォルトトレラントコンピュータシステムを実現している。
【００１６】
図１に示す本発明の第１の実施形態のロックステップ方式のフォルトトレラントコンピュータシステムにおいて、コントローラ１０４及びコントローラ２０４内には、メモリやＩＯのデータの一時的な退避用としてＲＡＭが実装されている。図２は、このようなコントローラ１０４及び２０４内のそれぞれに設けられるＲＡＭ及びその周辺回路のブロック図を示すものである。
【００１７】
図２において、ＲＡＭ５０は、データの一時的な退避用として実装されているＲＡＭである。ＲＡＭ５０に対して、書込データバッファ５１と、書込キューバッファ５２と、読出データバッファ５３と、読出キューバッファ５４ａ、５４ｂとが設けられる。
【００１８】
書込データバッファ５１は、ＲＡＭ５０に書き込むデータを格納するバッファである。書込キューバッファ５２は、ＲＡＭ５０中で、データの書き込み可能なアドレスを順番に格納するキューバッファである。読出データバッファ５３は、ＲＡＭ５０から読み出したデータを格納するバッファである。読出キューバッファ５４ａ、５４ｂは、ＲＡＭ５０からの読み出し可能なアドレスを順番に格納するキューバッファである。なお、キューバッファは、データを先入れ先出しのリスト構造で保持するものである。
【００１９】
ＲＡＭ５０にデータを書き込む場合、メモリ・ＩＯコントローラ１０６または２０６は、書込データバッファ５１に格納されているデータを読み出し、書込キューバッファ５２に格納されているアドレスに従って、ＲＡＭ５０にデータを書き込む。また、ＲＡＭ５０からデータを読み出す場合、メモリ・ＩＯコントローラ１０６または２０６は、読出キューバッファ５４ａ、５４ｂに格納されているアドレスに従って、ＲＡＭ５０からデータを読み出し、読出データバッファ５３に格納する。
【００２０】
本発明の第１の実施形態では、このように、ＲＡＭ５０のアドレスを直接使用せず、ＲＡＭ５０へのデータの書き込みの順番のアドレスを示す書込キューバッファ５２及びその読み出しの順番のアドレスを示す読出キューバッファ５４ａ、５４ｂを設けている。このため、同期リセットが不要になる。このことについて、図３を用いて説明する。
【００２１】
図３において、ＲＡＭ１５０は、コンピュータシステム１０１のコントローラ１０４内に設けられている一時退避用のＲＡＭを示し、ＲＡＭ２５０は、コンピュータシステム２０１のコントローラ２０４内に設けられている一時退避用のＲＡＭを示している。ＲＡＭ１５０及び２５０は、図２におけるＲＡＭ５０に対応している。また、書込キューバッファ１５２及び書込キューバッファ２５２は、それぞれ、図２における書込キューバッファ５２に対応している。また、読出キューバッファ１５４及び読出キューバッファ２５４は、それぞれ、図２における読出キューバッファ５４ａ、５４ｂに対応している。
【００２２】
ここでは、ＲＡＭ１５０及び２５０には、”１”〜”５”のアドレスがあり、これらのアドレスに対応してデータが書き込まれ、また、これらのアドレスに対応してデータが読み出されるものとする。
【００２３】
図３において、コンピュータシステム１０１のＲＡＭ１５０にデータを書き込む順番は、書込キューバッファ１５２により、”１”、”２”の順に示されている。この場合、ＣＰＵ１０２ａ、１０２ｂ、またはコンピュータシステム２０１のＦＴコントローラ２０７が、ＲＡＭ１５０にデータを書き込む指示を出力すると、メモリ・ＩＯコントローラ１０６は、ＲＡＭ１５０のアドレス”１”にデータ”ＡＡＡ”を格納し、アドレス”２”にデータ”ＢＢＢ”を格納する。また、コンピュータシステム１０１のＲＡＭ１５０からデータを読み出す順番は、読出キューバッファ１５４により、”３”、”４”、”５”の順に示されている。この場合、ＣＰＵ１０２ａ、１０２ｂ、またはコンピュータシステム２０１のＦＴコントローラ２０７が、ＲＡＭ１５０からデータを読み出す指示を出力すると、メモリ・ＩＯコントローラ１０６は、アドレス”３”、”４”、”５”に格納されているデータ”ＣＣＣ”、”ＤＤＤ”、”ＥＥＥ”の順に、ＲＡＭ１５０からデータを読み出す。
【００２４】
一方、コンピュータシステム２０１のＲＡＭ２０５にデータを書き込む順番は、書込キューバッファ２５２により、”４”、”５”の順に示されている。この場合、ＣＰＵ２０２ａ、２０２ｂ、またはコンピュータシステム１０１のＦＴコントローラ１０７が、ＲＡＭ２５０にデータを書き込む指示を出力すると、メモリ・ＩＯコントローラ２０６は、ＲＡＭ２５０のアドレス”４”にデータ”ＡＡＡ”を格納し、アドレス”５”にデータ”ＢＢＢ”を格納する。また、コンピュータシステム２０１のＲＡＭ２５０からデータを読み出す順番は、読出キューバッファ２５４により、”１”、”２”、”３”の順に示されている。この場合、ＣＰＵ２０２ａ、２０２ｂ、またはコンピュータシステム１０１のＦＴコントローラ１０７が、ＲＡＭ２５０からデータを読み出す指示を出力すると、メモリ・ＩＯコントローラ２０６は、アドレス”１”、”２”、”３”に格納されているデータ”ＣＣＣ”、”ＤＤＤ”、”ＥＥＥ”の順に、ＲＡＭ２５０からデータを読み出す。
【００２５】
図３に示すように、本発明の第１の実施形態では、コンピュータシステム１０１のＲＡＭ１５０と、コンピュータシステム２０１のＲＡＭ２５０とでは、データが格納されるアドレスが異なっている。しかしながら、ＲＡＭ１５０及び２５０へのデータの書き込みの順番を保証する書込キューバッファ１５２、２５２、及び、その読み出しの順番を保証する読出キューバッファ１５４、２５４が設けられているので、ＲＡＭ１５０、２５０に書き込み及び読み出されるデータは、同期することになる。
【００２６】
以上説明したように、本発明の実施形態では、一時退避用のＲＡＭにデータを書き込み及び読み出す場合に、キューバッファによりデータの書き込み及び読み出しの順番が保証される。このため、同期リセットが不要になる。また、ＣＰＵの命令の転送先が複数あった場合でも、ＲＡＭへの読み出し順を保存しているために、ある１箇所の転送先が待ち状態になった場合でも、別の転送先も一緒にデータ転送待ち状態になることがなく、別の転送先がデータを受け付ける場合には、ＲＡＭへ書かれた順番を追い越して、先にデータを読み出すことができる。このため、ＲＡＭの使用効率が上昇し、全体の性能向上が図れる。
【００２７】
本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【００２８】
５１：書込データバッファ
５２：書込キューバッファ
５３：読出データバッファ
５４ａ，５４ｂ：読出キューバッファ
１０１，１０２：コンピュータシステム
１０３，２０３：メインメモリ
１０４，２０４  コントローラ
１０５ａ，１０５ｂ，２０５ａ，２０５ｂ：ＩＯポート
１０６，２０６：メモリ・ＩＯコントローラ
１０７，２０７：ＦＴコントローラ
【図１】
2011065451.tif 000003
【図２】
2011065451.tif 000004
【図３】
2011065451.tif 000005
【図４】
2011065451.tif 000006