(57)【要約】【課題】コントローラが冗長化動作を開始できるまでの時間を短縮した冗長化制御システムを実現する。【解決手段】複数のコントローラを冗長化動作させる冗長化制御システムに関する。各コントローラは、二重化された第１及び第２のカード間通信バスにより接続され、制御演算及び各コントローラとのアクセスを実行するプロセッサと、データのうち上位ビットデータを格納する上位メモリ及び下位ビットデータを格納する下位メモリと、上位メモリ及び下位メモリとそれぞれ上位メモリ用バス及び下位メモリ用バスで接続され、アクセスを制御するメモリアクセスコントローラと、第１及び第２のカード間通信バスのうち使用するカード間通信バスを選択するバスセレクターと、第１及び第２のカード間通信バスとのアクセスをそれぞれ制御する第１及び第２のカード間通信バスコントローラとを設けた。【選択図】図１
2008210183.tif 000002
【特許請求の範囲】
【請求項１】
複数のコントローラを冗長化動作させる冗長化制御システムにおいて、
各コントローラは、二重化された第１及び第２のカード間通信バスにより接続され、
制御演算及び各コントローラとのアクセスを実行するプロセッサと、
データのうち上位ビットデータを格納する上位メモリ及び下位ビットデータを格納する下位メモリと、
該上位メモリ及び下位メモリとそれぞれ上位メモリ用バス及び下位メモリ用バスで接続され、アクセスを制御するメモリアクセスコントローラと、
前記第１及び第２のカード間通信バスのうち使用するカード間通信バスを選択するバスセレクターと、
前記第１及び第２のカード間通信バスとのアクセスをそれぞれ制御する第１及び第２のカード間通信バスコントローラと、
を備えることを特徴とする冗長化制御システム。
【請求項２】
前記バスセレクターは、各コントローラ間において通常アクセス時は、前記第１及び第２のカード間通信バスコントローラのうち一方にアクセス要求を出し、高速アクセス時は、前記第１及び第２のカード間通信バスコントローラの両方にアクセス要求を出し、一方を上位ビットデータ用、他方を下位ビットデータ用として使用することを特徴とする請求項１記載の冗長化制御システム。
【請求項３】
前記高速アクセス時は、各コントローラ間でメモリの内容を同一にする等値化処理時であることを特徴とする請求項２記載の冗長化制御システム。
【請求項４】
前記上位メモリ及び下位メモリは、それぞれ上位チェックビットメモリ及び下位チェックビットメモリを備え、上位ビットデータ及び下位ビットデータを別々に診断することを特徴とする請求項１乃至３のいずれかに記載の冗長化制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信頼性を向上させるために複数のコントローラを冗長化動作させる冗長化制御システムに関し、特に冗長化されたコントローラ間の等値化処理を向上させた冗長化制御システムに関するものである。
【背景技術】
【０００２】
冗長化されたコントローラ間の通信は、それぞれがさらに二重化されたカード間通信バスを介して行われ、一方のバスによる通信が異常の場合は、他方のバスに切り換えることで通信の信頼性を高める構成をとっている。
【０００３】
図３は従来の冗長化制御システムの動作説明図である。
冗長化制御システムは、各コントローラ１ａ，１ｂにより冗長化され、それぞれがさらに二重化された第１及び第２のカード間通信バス２，３で接続されており、互いにアクセスし、データの等値化、処理の同期等を行う。冗長化された各コントローラ１ａ，１ｂは常に同じ処理を実行しており、故障等により一方のコントローラが停止した場合でも他方のコントローラに瞬時に切り替えることで処理を継続して動作可能となっている。
【０００４】
各コントローラ１ａ，１ｂは、プロセッサ１０ａ，１０ｂ、インターフェースコントローラ２０ａ，２０ｂ、メインメモリ４０ａ，４０ｂ、カード間通信バスコントローラ３１ａ，３１ｂ，３２ａ，３２ｂからなる。
プロセッサ１０ａ，１０ｂは、制御演算及び各コントローラとのアクセスを実行する。
【０００５】
インターフェースコントローラ２０ａ，２０ｂにはバスセレクター２１ａ，２１ｂとメモリアクセスコントローラ２２ａ，２２ｂがある。
バスセレクター２１ａ，２１ｂは、第１のカード間通信バス２を使用して他のコントローラと通信するか、第２のカード間通信バス３を使用して他のコントローラと通信するかを選択する。
メモリアクセスコントローラ２２ａ，２２ｂは、第１及び第２のカード間通信バス２，３からくるアクセスに対し、メインメモリ４０ａ，４０ｂへのアクセス権を調停し、アクセスを実行する。
【０００６】
第１のカード間通信バスコントローラ３１ａ，３１ｂは、第１のカード間通信バスのアクセスを制御し、第２のカード間通信バスコントローラ３２ａ，３２ｂは、第２のカード間通信バスのアクセスを制御する。
メインメモリ４０ａ，４０ｂは、上位ビットデータ用４１ａ，４１ｂ、下位ビットデータ用４２ａ，４２ｂ及びチェックビット用４３ａ，４３ｂの３つのメモリ部から構成されている。
【０００７】
コントローラ１ａが動作している状態で、コントローラ１ｂを追加した場合、冗長化制御システムとして冗長化動作を実現するためには、コントローラ１ｂを起動させる前にコントローラ１ｂのメインメモリ４０ｂの内容をコントローラ１ａのメインメモリ４０ａの内容と同じにする必要がある。このため、コントローラ１ａのメインメモリ４０ａのデータをコントローラ１ｂのメインメモリ４０ｂにコピー（等値化処理）を行う。
コントローラ１ａはコピー動作を行うためにメインメモリ４０ａからデータのリードアクセス（Ａ）を実行し、コントローラ１ｂのメインメモリ４０ｂにライトアクセス（Ｂ）を行う。
【０００８】
ライトアクセス（Ｂ）は、プロセッサ１０ａからの要求を受けたバスセレクター２１ａが第１及び第２のカード間通信バス２，３のうちどちらのバスを使用するかを選択する。バスセレクター２１ａが第１のカード間通信バス２を使用することを選択した場合、第１のカード間通信バスコントローラ３１ａにアクセス要求をかける。第１のカード間通信バスコントローラ３１ａは第１のカード間通信バス２のバス権を獲得した後、アクセスを開始する。コントローラ１ｂの第１のカード間通信バスコントローラ３１ｂを経由し、メモリアクセスコントローラ２２ｂでメインメモリ４０ｂのメモリアクセス権を獲得した後、メインメモリ４０ｂに対してライトが行われる。
【０００９】
これを繰り返してコントローラ１ｂのメインメモリ４０ｂの内容をコントローラ１ａのメインメモリ４０ａの内容と同じにした後、コントローラ１ｂの動作を開始させることでコントローラ１ａ，１ｂの冗長化が可能となる。
【００１０】
冗長化動作中は、コントローラ１ａ，１ｂは、メインメモリ４０ａ，４０ｂへのアクセス（Ａ），（ａ）の他、冗長化動作の同期処理のためのアクセス（Ｂ），（ｂ）が二重化された第１及び第２のカード間通信バス２，３を使用して定期的に行われている。第１及び第２のカード間通信バス２，３の片側が故障した場合は、他方のバスを互いにシェアしながら使用することで同期処理を継続する。
【００１１】
【特許文献１】特開２００１−２５６０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
コントローラの冗長化時、他のコントローラへのメモリのコピー動作は、二重化されたカード間通信バスの一方のみを使用して行われ、また、カード間通信バスのバンド幅が小さいためアクセス自体のスピードが遅くなり、容量の大きいメモリのコピー動作を完了させるまでに多くの時間がかかってしまい、冗長化動作の開始が遅れてしまうという問題点があった。
【００１３】
本発明は上述した問題点を解決するためになされたものであり、他のコントローラへのメモリのコピー動作を高速に行い、コントローラが冗長化動作を開始可能となるまでの時間を短縮した冗長化制御システムを実現することを目的とする。
【課題を解決するための手段】
【００１４】
このような課題を達成するために、本発明は次のとおりの構成になっている。
（１）複数のコントローラを冗長化動作させる冗長化制御システムにおいて、
各コントローラは、二重化された第１及び第２のカード間通信バスにより接続され、
制御演算及び各コントローラとのアクセスを実行するプロセッサと、
データのうち上位ビットデータを格納する上位メモリ及び下位ビットデータを格納する下位メモリと、
該上位メモリ及び下位メモリとそれぞれ上位メモリ用バス及び下位メモリ用バスで接続され、アクセスを制御するメモリアクセスコントローラと、
前記第１及び第２のカード間通信バスのうち使用するカード間通信バスを選択するバスセレクターと、
前記第１及び第２のカード間通信バスとのアクセスをそれぞれ制御する第１及び第２のカード間通信バスコントローラと、
を備えることを特徴とする冗長化制御システム。
【００１５】
（２）前記バスセレクターは、各コントローラ間において通常アクセス時は、前記第１及び第２のカード間通信バスコントローラのうち一方にアクセス要求を出し、高速アクセス時は、前記第１及び第２のカード間通信バスコントローラの両方にアクセス要求を出し、一方を上位ビットデータ用、他方を下位ビットデータ用として使用することを特徴とする（１）記載の冗長化制御システム。
【００１６】
（３）前記高速アクセス時は、各コントローラ間でメモリの内容を同一にする等値化処理時であることを特徴とする（２）記載の冗長化制御システム。
【００１７】
（４）前記上位メモリ及び下位メモリは、それぞれ上位チェックビットメモリ及び下位チェックビットメモリを備え、上位ビットデータ及び下位ビットデータを別々に診断することを特徴とする（１）乃至（３）のいずれかに記載の冗長化制御システム。
【発明の効果】
【００１８】
本発明によれば次のような効果がある。
二重化されたカード間通信バスを、コントローラの冗長化動作のためのコピー動作時のみ両方使用することにより、コントローラが冗長化動作を開始可能となるまでの時間を短縮することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を用いて本発明を詳細に説明する。
図１は本発明の一実施例を示す構成図である。前出の図と同一のものは同一符号を付け、従来技術と同じ部分は説明を省略する。
冗長化制御システムは、各コントローラ１００ａ，１００ｂにより冗長化され、それぞれがさらに二重化されたカード間通信バス２，３で接続されており、互いにアクセスし、データの等値化、処理の同期等を行う。冗長化された各コントローラ１００ａ，１００ｂは常に同じ処理を実行しており、故障等により一方のコントローラが停止した場合でも他方のコントローラに瞬時に切り替えることで処理を継続して動作可能となっている。
【００２０】
各コントローラ１００ａ，１００ｂのメモリは、上位メモリ５０ａ，５０ｂと下位メモリ６０ａ，６０ｂに分かれており、それぞれに独立してアクセルできるように、上位メモリ用バス２５０ａ，２５０ｂと下位メモリ用バス２６０ａ，２６０ｂの別々のバスが用意されている。
上位メモリ５０ａ，５０ｂは、上位ビットデータ用メモリ５１ａ，５１ｂと、そのチェックビット用メモリ５２ａ，５２ｂとから構成されている。下位メモリ６０ａ，６０ｂは、下位ビットデータ用メモリ６１ａ，６１ｂと、そのチェックビット用メモリ６２ａ，６２ｂとから構成されている。
【００２１】
このように、上位ビットデータと下位ビットデータは別々に格納される。また、それぞれのチェックビットも別々に格納され、データの送受信が正しく行われたかどうかの照合も上位ビットと下位ビットごとに診断される。
【００２２】
コントローラ１００ａが動作している状態で、コントローラ１００ｂを追加した場合、冗長化制御システムとして冗長化動作を実現するためには、コントローラ１００ｂを起動させる前にコントローラ１００ｂの上位メモリ５０ｂ及び下位メモリ６０ｂの内容をコントローラ１００ａの上位メモリ５０ａ及び下位メモリ６０ａの内容と同じにする必要がある。このため、コントローラ１００ａの上位メモリ５０ａ及び下位メモリ６０ａのデータをコントローラ１００ｂの上位メモリ５０ｂ及び下位メモリ６０ｂにコピーする必要がある。
【００２３】
プロセッサ１０ａが出したライトアクセス（Ｃ）に対し、バスセレクター２１０ａは、第１及び第２のカード間通信バス２，３の両方が正常であれば、第１及び第２のカード間通信バスコントローラ３１ａ，３２ａの両方にアクセス要求をかける。この際、バスセレクター２１０ａは、第１のカード間通信バスコントローラ３１ａに対してライトデータの下位ビット（又は上位ビット）のみを渡し、第２のカード間通信バスコントローラ３２ａに対してライトデータの上位ビット（又は下位ビット）のみを渡してライト要求をかける。
【００２４】
第１のカード間通信バスコントローラ３１ａは、第１のカード間通信バス２のバス権を獲得した後、コントローラ１００ｂの第１のカード間通信バスコントローラ３１ｂを経由してメモリアクセスコントローラ２２０ｂにライトアクセス要求をかける（Ｄ１）。メモリアクセルコントローラ２２０ｂは通常時に行う第１及び第２のカード間通信バスコントローラ３１ｂ，３２ｂ間の調停を行わず、そのまま下位メモリ６０ｂ（又は上位メモリ５０ｂ）に対してのみライトアクセスを実行する（Ｅ１）。
【００２５】
同様に、第２のカード間通信バスコントローラ３２ａは、第２のカード間通信バス３のバス権を獲得した後、コントローラ１００ｂの第２のカード間通信バスコントローラ３２ｂを経由してメモリアクセスコントローラ２２０ｂにライトアクセス要求をかける（Ｄ２）。メモリアクセスコントローラ２２０ｂは通常時に行う第１及び第２のカード間通信バスコントローラ３１ｂ，３２ｂ間の調停を行わず、そのまま上位メモリ５０ｂ（又は下位メモリ６０ｂ）に対してのみライトアクセスを実行する（Ｅ２）。この際、メモリアクセスコントローラ２２０ｂは、第１及び第２のカード間通信バスコントローラ３１ｂ，３２ｂの要求に対し、独立して動作する。
【００２６】
これを繰り返してコントローラ１００ｂの上位メモリ５０ｂ及び下位メモリ６０ｂの内容をコントローラ１００ａの上位メモリ５０ａ及び下位メモリ６０ａの内容と同じにした後、コントローラ１００ｂの動作を開始させることでコントローラ１００ａ，１００ｂの冗長化が可能となる。
【００２７】
冗長化動作中（通常動作中）は、コントローラ１００ａ，１００ｂ間のアクセスは第１及び第２のカード間通信バス２，３のうち一方のバスを使用して行われる。メモリアクセスコントローラ２２０ａ，２２０ｂは、別々に分かれている上位メモリ用バス２５０ａ，２５０ｂと下位メモリ用バス２６０ａ，２６０ｂを共通に使用し、上位メモリ５０ａ，５０ｂと下位メモリ６０ａ，６０ｂに同時にアクセスを行う。
【００２８】
なお、等値化処理時に第１及び第２のカード間通信バス２，３のうち一方が故障していた場合は、バスセレクター２１０ａ，２１０ｂは第１のカード間通信バスコントローラ３１ａ，３１ｂ及び第２のカード間通信バスコントローラ３２ａ，３２ｂの両方に要求を出すことを止め、正常な片側のバスを使用して従来通りの等値化処理を行う。
【００２９】
本発明では、故障時に切り替えて使用するために二重化されたカード間通信バスを、コントローラの等値化処理時のみ両方使用してデータのコピー動作を行うことで、コントローラの等値化処理の時間を短縮することができる。また、カード間通信バスのバンド幅が少なくても多くのデータのコピー動作を実行することができる。
【００３０】
図２は本発明の他の実施形態の説明図である。
コントローラ１００ａ，１００ｂ，１００ｃで冗長化され、それぞれがさらに二重化された第１及び第２のカード間通信バス２，３で接続されてマルチマスターの構成となっている。
通常時、各コントローラ１００ａ，１００ｂ，１００ｃは第１及び第２のカード間通信バス２，３のうち一方のカード間通信バスを使用してアクセスを実行している。他方のカード間通信バスは、メインバスとして一方のカード間通信バスと交互に使用される場合や、故障時や診断時のみに使用される場合がある。
【００３１】
コントローラ１００ａは二重化された第１及び第２のカード間通信バス２，３の両方が使用可能であることを確認し、コントローラ１００ｂに対して第１及び第２のカード間通信バス２，３の両方を使用して高速ライトアクセスを実行する。
その際、例えば第１のカード間通信バス２がコントローラ１００ｃに使用されている場合であっても、コントローラ１００ａは空いている第２のカード間通信バス３を使用して下位ビットデータのアクセスを継続するため、無駄な待ち時間をなくすことができる。
【００３２】
また、第１のカード間通信バス２には上位ビットデータ、第２のカード間通信バス３には下位ビットデータを割り振るというように、二重化されたカード間通信バスで上位ビットデータと下位ビットデータを別々に送信しているため、一方のカード間通信バスが使用されていて、他方のライトが遅れた場合であっても、最終的にライトされるデータの順番は変更されることがなく、データの上書き等の心配がなくなる。これにより効率的で安全なデータアクセスをすることができる。
【００３３】
また、二重化された第１及び第２のカード間通信バス２，３が両方正常である場合、両方のカード間通信バスを使用して実行することにより、等値化処理に限らず、高速アクセスをしたい際にパフォーマンスを改善することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の他の実施形態の説明図である。
【図３】従来の冗長化制御システムの動作説明図である。
【符号の説明】
【００３５】
２  第１のカード間通信バス
３  第２のカード間通信バス
１０ａ，１０ｂ  プロセッサ
３１ａ，３１ｂ  第１のカード間通信バスコントローラ
３２ａ，３２ｂ  第２のカード間通信バスコントローラ
５０ａ，５０ｂ  上位メモリ
５２ａ，５２ｂ  上位チェックビットメモリ
６０ａ，６０ｂ  下位メモリ
６２ａ，６２ｂ  下位チェックビットメモリ
１００ａ，１００ｂ，１００ｃ  コントローラ
２１０ａ，２１０ｂ  バスセレクター
２２０ａ，２２０ｂ  メモリアクセスコントローラ
２５０ａ，２５０ｂ  上位メモリ用バス
２６０ａ，２６０ｂ  下位メモリ用バス
【図１】
2008210183.tif 000003
【図２】
2008210183.tif 000004
【図３】
2008210183.tif 000005