(57)【特許請求の範囲】
【請求項１】
処理部、キャッシュメモリ及び主記憶装置をそれぞれ含む現用系モジュールと予備系モジュールとを備える二重化システムにおいて、前記現用系モジュールにおけるライトスルー動作の際に、前記現用系モジュールの主記憶装置への書き込みを行うことなく、前記予備系モジュールの主記憶装置に対して書き込みを行う書き込み先変更手段を設けたことを特徴とする二重化システム。
【請求項２】
請求項１に記載の二重化システムにおいて、
前記書き込み先変更手段は、
ライトスルー動作時のみ書き込み先アドレスに対して予め定められた変換を行って変換済アドレスを出力し、それ以外は未変換アドレスを出力するアドレス変換手段と、
前記変換済アドレスを前記現用系モジュールと前記予備系モジュールとを接続する外部バスへ出力するとともに、前記未変換アドレスを前記現用系モジュールの主記憶装置へ出力する振分手段と、
前記外部バスからの前記変換済アドレスを逆変換するアドレス逆変換手段と、
を含むことを特徴とする二重化システム。
【請求項３】
請求項２に記載の二重化システムにおいて、
前記アドレス変換手段が、前記処理部及び前記キャッシュメモリを備えるＣＰＵデバイス内に設けられたアドレス変換部であることを特徴とする二重化システム。
【請求項４】
請求項１に記載の二重化システムにおいて、
キャッシュミスの際、キャッシュ書き戻しを行う書き戻し手段を有することを特徴とする二重化システム。
【請求項５】
請求項１に記載の二重化システムにおいて、
現用系・予備系切り換えの際、キャッシュ書き戻しを行う書き戻し手段を有することを特徴とする二重化システム。
【請求項６】
処理部、キャッシュメモリ及び主記憶装置をそれぞれ含む現用系モジュールと予備系モジュールとを備える二重化システムのメモリコピー方法において、前記現用系モジュールにおけるライトスルー動作の際に、書き込み先変更手段により書き込み先を変更し、前記現用系モジュールの主記憶装置への書き込みを行うことなく、前記予備系モジュールの主記憶装置に対して書き込みを行うようにしたことを特徴とするメモリコピー方法。
【請求項７】
請求項６に記載のメモリコピー方法において、
前記現用系モジュールのアドレス変換手段により、ライトスルー動作時のみ書き込み先アドレスに対して予め定められた変換を行って変換済アドレスを出力し、それ以外は未変換アドレスを出力するステップと、
前記現用系モジュールの振分手段により、前記変換済アドレスを現用系と予備系を接続する外部バスへ出力し、前記未変換アドレスを前記現用系モジュールの主記憶装置へ出力するステップと、
前記予備系モジュールのアドレス逆変換手段により、前記外部バスからの前記変換済アドレスを逆変換するステップと、
を含むことを特徴とするメモリコピー方法。
【請求項８】
請求項７に記載のメモリコピー方法において、
前記現用系モジュールのＣＰＵデバイス内に設けられた前記アドレス変換手段により、前記書き込み先アドレスに対して予め定められた変換を行うことを特徴とするメモリコピー方法。
【請求項９】
請求項６に記載のメモリコピー方法において、
キャッシュミスの際、前記現用系モジュールのキャッシュ書き戻し手段により、キャッシュ書き戻しを行うステップを含むことを特徴とするメモリコピー方法。
【請求項１０】
請求項６に記載のメモリコピー方法において、
現用系・予備系切り換えの際、前記現用系モジュールのキャッシュ書き戻し手段により、キャッシュ書き戻しを行うステップを含むことを特徴とするメモリコピー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化システムに関し、特に、現用系・予備系切り替え時に処理継続を可能にするためのメモリコピー方法に関する。
【背景技術】
【０００２】
通信サービスに用いられる通信装置は高い信頼性が求められ、一瞬でも停止することは許されない。そのため、この種の通信装置では冗長構成が採用される。
【０００３】
冗長構成を採用する二重化システムにおいて、現用系のデータ処理モジュールから予備系のデータ処理モジュールへの切り換えを行う前後で、処理を継続するには、現用系モジュールの主記憶装置及びキャッシュメモリの内容と予備系モジュールの主記憶装置及びキャッシュメモリの内容とが一致していなければならない。
【０００４】
これら主記憶装置及びキャッシュメモリの内容を互いに一致させておく方法として、現用系モジュールの主記憶装置にデータが書き込まれるたびに、予備系モジュールの主記憶装置へも同じデータを書き込む方法がある（例えば、特許文献１又は２参照）。
【０００５】
【特許文献１】特開昭６４−１９４３８号公報
【特許文献２】特開２００１−９２６８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
現用系モジュールの主記憶装置にデータが書き込まれるたびに、予備系モジュールの主記憶装置へも同じデータを書き込む方法は、処理に時間がかかるという問題点がある。上記特許文献１には、この問題点を解決するための方法も記載されているが、ＦＩＦＯを設けなければならず、構成及び制御が複雑になるという別の問題点がある。
【０００７】
そこで、本発明は、簡易な構成及び制御で主記憶装置の内容を一致させることができる二重化システム及びそのメモリコピー方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一形態によれば、処理部、キャッシュメモリ及び主記憶装置をそれぞれ含む現用系モジュールと予備系モジュールとを備える二重化システムにおいて、前記現用系モジュールにおけるライトスルー動作の際に、前記現用系モジュールの主記憶装置への書き込みを行うことなく、前記予備系モジュールの主記憶装置に対して書き込みを行う書き込み先変更手段を設けたことを特徴とする二重化システムが得られる。
【０００９】
また、本発明の他の形態によれば、処理部、キャッシュメモリ及び主記憶装置をそれぞれ含む現用系モジュールと予備系モジュールとを備える二重化システムのメモリコピー方法において、前記現用系モジュールにおけるライトスルー動作の際に、書き込み先変更手段により書き込み先を変更し、前記現用系モジュールの主記憶装置への書き込みを行うことなく、前記予備系モジュールの主記憶装置に対して書き込みを行うようにしたことを特徴とするメモリコピー方法が得られる。
【発明の効果】
【００１０】
本発明によれば、アドレス変換部を設け、ライトスルー動作の際に、現用系の主記憶装置ではなく予備系の主記憶装置へ書き込みを行うようにしたことで、簡易な構成及び制御で、短時間で現用系と予備系の主記憶装置の内容を一致させることができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００１２】
まず、本発明の原理について説明する。
【００１３】
一般に、コンピュータシステムでは、処理部とメインメモリ（主記憶装置）との間に、これらの動作速度の差を補うキャッシュメモリが設けられる。データの書き込みは、データキャッシュメモリに対して行われ、同時にあるいは後に、データキャッシュメモリに書き込まれたデータがメインメモリに書き込まれる。データキャッシュメモリへデータを書き込むと同時にメインメモリへそのデータを書き出す方式は、ライトスルーと呼ばれる。
【００１４】
二重化システムにおいても、現用系及び予備系の各モジュールにおいて同様の構成が採用される。そして、各モジュールごとに、処理部がメインメモリに対してデータをライト、リードするとき、ＣＰＵ内のデータキャッシュメモリを利用する。
【００１５】
通常、データキャッシュメモリとメインメモリとの間のコヒーレンスを保つためのデータキャッシュメモリの書き戻しやライトスルーは、データキャッシュメモリのデータをメインメモリの該当番地にライトすることにより行われる。
【００１６】
これに対し、本発明では、ライトスルーの場合のみ、現用系のデータキャッシュメモリに書き込んだデータを現用系のメインメモリの該当番地にライトせず、待機側の（予備系）モジュールのメインメモリの該当番地へライトする。現用系のデータキャッシュメモリとメインメモリとの間のコヒーレンスは、データキャッシュメモリの書き戻しにより実現される。これにより、現用系のメインメモリの内容を予備系のメインメモリへコピーする動作を行うことなく、それらの記憶内容を一致させることができる。
【００１７】
このような動作を実現するため、本発明の二重化システムは、ライトスルーされるデータをＰＣＩ等の外部バス側に送出し、予備モジュール側にデータを渡す書き込み先変更部を有している。この書き込み先変更部は、ライトスルーを検出したとき、ＣＰＵから外部へ出力されるアドレス値をＰＣＩ等の外部バス側を示すアドレス値に変更するアドレス変更部、変更されたアドレスを元に戻すＰＣＩバス等の外部バスに接続される外部バスインタフェース、アドレス値に応じてアドレス信号を振り分けるアドレスデコーダを含む。
【００１８】
以上のように、本発明の二重化システムでは、ライトスルー動作を利用することにより、コピー動作と同じ結果を得ることができ、コピー専用の動作が不要となる。
【００１９】
本発明は、冗長構成のデータ処理モジュールで、切り替え時において、無瞬断で切り替え、及び処理の継続性が求められる通信システムにおける冗長構成のデータ処理モジュールに適用される。
【００２０】
次に、本発明の一実施の形態に係る二重化システムついて説明する。
【００２１】
図１の二重化システムは、一対の同一構成のモジュール１００及び２００を有し、一方が現用系（運用中）、他方が予備系（待機中）として用いられる冗長構成になっている。
【００２２】
モジュール１００は、ＣＰＵデバイス１１０、ＣＰＵデバイス１１０から出力されたアドレス信号をデコードするアドレスデコーダ１２０、アドレスデコーダ１２０で指定されるメインメモリ１４０、及びＰＣＩインタフェース１３０を含む。
【００２３】
また、ＣＰＵデバイス１１０は、処理部１１１とデータキャッシュメモリ１１２、及びデータキャッシュメモリ１１２から出力されたアドレス信号を変換するアドレス変換部１１３を含む。なおアドレス変換部１１３はライトスルーのときのみアドレス変換を行い、それ以外ではアドレス変換を行わない。
【００２４】
同様に、モジュール２００は、ＣＰＵデバイス２１０、ＣＰＵデバイス２１０から出たアドレスをデコードするアドレスデコーダ２２０、アドレスデコーダ２２０で指定されるメインメモリ２４０、及びＰＣＩインタフェース２３０を含む。
【００２５】
また、ＣＰＵデバイス２１０は、処理部２１１とデータキャッシュメモリ２１２、及びデータキャッシュメモリ２１２から出力されたアドレス信号を変換するアドレス変換部２１３を含む。なおアドレス変換部２１３はライトスルーのときのみアドレス変換を行い、それ以外ではアドレス変換を行わない。
【００２６】
モジュール１００とモジュール２００は、ＰＣＩインタフェース１３０，２３０を介してＰＣＩバスで接続されており、相互にデータの転送を行うことができる。
【００２７】
次に、図１の二重化システムの動作について、図２乃至図８をも参照して、詳細に説明する。なお、以下では、その説明を簡単にするため、データキャッシュメモリ１１２及び２１２が、夫々二つのアドレス・データの組を格納することができるエリアを有するものとする。また、アドレスやデータの具体的な数値は、便宜的なものに過ぎない。
【００２８】
まず、図１の状態では、モジュール１００が運用中で、モジュール２００が待機中である。この状態で、ＣＰＵデバイス１１０の処理部１１１から、“０３５００”番地に“５４８２”のデータをライトする要求が出たとする。
【００２９】
図１に示すように、データキャッシュメモリ１１２は、処理部１１１からの要求を受けて内部を検索し、“０３５００”番地が存在することを見つけ、キャッシュヒットと判断する。そして、データキャッシュメモリ１１２は、“０３５００”番地に“５４８２”のデータをライトする。同時に、データキャッシュメモリ１１２は、ライトスルー動作として、“０３５００”番地に“５４８２”のデータをライトする要求をアドレス変換部１１３へ渡す。
【００３０】
アドレス変換部１１３は、ライトスルーのときアドレス変換動作を行い、それ以外のときアドレス変換動作を行わない。即ち、アドレス変換部１１３は、ライトスルーのときのみアドレス変換手段として動作する。アドレス変換動作は、例えばメインメモリ１４０，２４０のアドレスが０〜９９９９のとき、変換後のアドレスがその範囲外の値となるように行われる。ここでは、入力されたアドレスに対して＋４００００の処理を行うものとする。この結果、ライトスルー動作として、“０３５００”番地に“５４８２”のデータをライトする要求を受けた、アドレス変換部１１３は、“４３５００”番地に“５４８２”のデータをライトする要求をアドレスデコーダ１２０に出力する。
【００３１】
アドレスデコーダ１２０は、入力されたアドレスに応じて、メインメモリ１４０にアクセスし、あるいはＰＣＩインタフェース１３０へその要求を引き渡す。即ち、アドレスデコーダ１２０は、振分手段として機能する。ここでは、入力されたアドレスが０〜９９９９のとき、メインメモリ１４０にアクセスし、アドレス４００００〜４９９９９のとき、ＰＣＩインタフェース１３０へそのアクセス要求を引き渡す。
【００３２】
ＰＣＩインタフェース１３０は、入力されたアクセス要求をＰＣＩバスを介してモジュール２００のＰＣＩインタフェース２３０へ送る。
【００３３】
ＰＣＩインタフェース２３０は、モジュール１００からのアクセス要求に含まれるアドレスを内部アドレスに変換する。即ち、ＰＣＩインタフェース２３０は、アドレス逆変換手段として機能する。ここでは、入力されたアドレスに対して−４００００の処理を行う。そして、ＰＣＩインタフェース２３０は、その結果をアドレスデコーダ２２０へ出力する。その結果、モジュール１００の発した“０３５００”番地に“５４８２”のデータをライトするというアクセス要求が、モジュール２００のアドレスデコーダ２２０に入力される。
【００３４】
アドレスデコーダ２２０は“０３５００”番地が、メインメモリ２４０向けの番地であると判断し、このアクセス要求をメインメモリ２４０に渡す。こうして、メインメモリ２４０の“０３５００”番地にデータ“５４８２”がライトされる。
【００３５】
以上のように、アドレス変換部１１３、アドレスデコーダ１２０、及びＰＣＩインタフェース２３０が、書き込み先変更手段として機能する。
【００３６】
次に、ＣＰＵデバイス１１０の処理部１１１から、“０３２００”番地に“１３５７”のデータをライトする要求が出たとする。
【００３７】
図２に示すように、データキャッシュメモリ１１２は、処理部１１１からの要求を受けて内部を検索し、“０３２００”番地が存在することを見つけ、キャッシュヒットと判断する。そして、データキャッシュメモリ１１２は、“０３２００”番地に“１３５７”のデータをライトする。同時に、データキャッシュメモリ１１２は、ライトスルー動作として、“０３２００”番地に“１３５７”のデータをライトする要求をアドレス変換部１１３へ渡す。
【００３８】
アドレス変換部１１３は、入力されたアドレスに対して＋４００００の処理を行い、“４３２００”番地に“１３５７”のデータをライトする要求をアドレスデコーダ１２０に出力する。
【００３９】
アドレスデコーダ１２０は、入力されたアドレスが“４３２００”番地なので、そのアクセス要求をＰＣＩインタフェース１３０へ引き渡す。
【００４０】
ＰＣＩインタフェース１３０は、入力されたアクセス要求をＰＣＩバスを介してモジュール２００のＰＣＩインタフェース２３０へ送る。
【００４１】
ＰＣＩインタフェース２３０は、モジュール１００から入力されたアドレスに対して−４００００の処理を行い、アドレスデコーダ２２０へ出力する。その結果、モジュール１００の発した“０３２００”番地に“１３５７”のデータをライトするというアクセス要求が、モジュール２００のアドレスデコーダ２２０に入力される。
【００４２】
アドレスデコーダ２２０は“０３２００”番地が、メインメモリ２４０向けの番地であると判断し、このアクセス要求をメインメモリ２４０に渡す。こうして、メインメモリ２４０の“０３２００”番地にデータ“１３５７”がライトされる。
【００４３】
図２の動作を終了した時点で、データキャッシュメモリ１１２は二つの格納エリアを使い切っている。この状態で、ＣＰＵデバイス１１０の処理部１１１から、“０３８００”番地に“１６４２”のデータをライトする要求が出たとする。
【００４４】
図３に示すように、データキャッシュメモリ１１２は、内部を検索して“０３８００”番地を探すが見つからないので、キャッシュミスかつキャッシュ空きなしと判断する。それからデータキャッシュメモリ１１２は、二つの格納エリアの一方のデータを、メインメモリ１４０の対応番地に書き戻し、格納エリアに空きを作る。このとき、処理部１１１及びデータキャッシュメモリ１１２は、キャッシュ書き戻し手段として機能する。
【００４５】
ライトスルー動作の場合とは異なり、書き戻し動作の際、アドレス変換部１１３はアドレス変換動作を行わない。つまり、“０３５００”番地に“５４８２”をライトするアクセス要求が、ＣＰＵデバイス１１０からアドレスデコーダに渡される。
【００４６】
アドレスデコーダ１２０は、“０３５００”番地がメインメモリ１４０向けの番地であると判断し、このアクセス要求をメインメモリ１４０に渡す。その結果、メインメモリ１４０の“０３５００”番地にデータ“５４８２”がライトされる。こうして、データキャッシュメモリ１１２に空き領域が一つできる。また、メインメモリ１４０と２４０の“０３５００”番地のデータが一致する。
【００４７】
続いて、先にＣＰＵデバイス１１０の処理部１１１から出された“０３８００”番地に“１６４２”のデータをライトする要求の処理が再開される。
【００４８】
図４に示すように、“０３８００”番地に“１６４２”のデータをライトする要求に応じて、キャッシュメモリ１１２の空き領域にアドレス“０３８００”とデータ“１６４２”が書き込まれる。同時にライトスルー動作でアドレス変換部１１３にアクセス要求が渡される。
【００４９】
アドレス変換部１１３は、アドレスに対して＋４００００の処理を行う。これにより、ＣＰＵデバイス１１０からアドレス“４３８００”番地に“１６４２”をライトするアクセス要求がアドレスデコーダ１２０に渡される。
【００５０】
アドレスデコーダ１２０は“４３８００”番地がＰＣＩバス向けの番地と判断し、このアクセス要求をメインメモリ１４０に渡さず、ＰＣＩインタフェース１３０に渡す。
【００５１】
ＰＣＩインタフェース１３０は、ＰＣＩバスを介して、待機中のモジュール２００のＰＣＩインタフェース２３０にこのアクセス要求を渡す。
【００５２】
ＰＣＩインタフェース２３０は、内部アドレス変換のために入力されたアドレスに対して−４００００の処理を行い、アドレスデコーダ２２０に対して、アドレス“０３８００”番地にデータ“１６４２”をライトするアクセス要求として渡す。
【００５３】
アドレスデコーダ２２０は、“０３８００”番地がメインメモリ２４０向けの番地と判断し、このアクセス要求をメインメモリ２４０に渡す。こうして、メインメモリ２４０の“０３８００”番地にデータ“１６４２”がライトされる。
【００５４】
次に、ＣＰＵデバイス１１０の処理部１１１から“０３２００”番地のリード要求が出たとする。この場合、図５に示すように、データキャッシュメモリ１１２が内部を検索し、キャッシュヒットと判断して、データキャッシュメモリ１１２の“０３２００”番地からデータ“１３５７”をリードする。このアクセスでは、メインメモリ１４０へのアクセスは行われず、データキャッシュメモリ１１２からのリードとなる。したがって、処理部１１１は特別な処理時間を要しない。
【００５５】
次に、モジュール１００，２００間で、現用系−予備系の切り替えを行う場合の動作について説明する。
【００５６】
まず、図６に示すように、運用中のモジュール１００が待機状態へと切り替えられる。
【００５７】
詳述すると、処理部１１１よりデータキャッシュメモリ１１２の記憶内容を全てメインメモリ１４０に書き戻すためのキャッシュ全書き戻し指示が出力される。
【００５８】
データキャッシュメモリ１１２は、キャッシュ全書き戻し指示に応じて、記憶領域にある全てのデータをメインメモリ１４０に書き戻す処理を行う。このとき、処理部１１１とデータキャッシュメモリ１１２は、書き戻し手段として機能する。
【００５９】
アドレス変換部１１３は、書き戻し動作なのでアドレス変換を行わず、データキャッシュメモリ１１２内のアドレスがそのままＣＰＵデバイス１１２からアドレスデコーダ１２０に渡される。
【００６０】
アドレスデコーダ１２０は、入力されるアドレスがメインメモリ１４０を示しているので、そのアクセス要求をメインメモリ１４０に渡す。メインメモリ１４０は、アクセス要求に応じて、書き戻しデータを対応するアドレスにライトする。
【００６１】
データキャッシュメモリ１１２の内容が全てメインメモリ１４０に書き戻されたとき、メインメモリ１４０とメインメモリ２４０の記憶内容は完全に一致する。しかも、データキャッシュメモリ１１２，２１２は、メインメモリ１４０，２４０に比べて容量が非常に少ないので、データキャッシュメモリ１１２，２１２のデータを全てを書き戻す時間は特に問題にならない。
【００６２】
なお、モジュール２００のメインメモリ２４０には、モジュール１００のキャッシュ全書き戻しが行われる前であっても、正しいデータが格納されている。したがって、モジュール２００は、いつでも運用動作への移行が可能である。しかしながら、モジュール２００を運用中にしてしまうと、モジュール２００でのモジュール２００でのライトスルー動作によるメインメモリ１４０へのライトと、モジュール１００のキャッシュ全書き戻し動作が競合する。それゆえ、モジュール２００は、モジュール１００のデータキャッシュメモリのキャッシュ全書き戻し動作が終わるまで、運用動作は行わない。
【００６３】
モジュール１００のキャッシュ全書き戻し動作が終了した後、モジュール２００を運用中に変更されたとする。また、その後、ＣＰＵデバイス２１０の処理部２１１から“０３２５０”番地に“３３６６”のデータをライトする要求が出力されたとする。
【００６４】
図７に示すように、データキャッシュメモリ２１２は、“０３２５０”番地を検索し、キャッシュヒットではないが、キャッシュに空きがあることを認識する。そして、データキャッシュメモリ２１２は、空き領域に“０３２５０”番地とデータ“３３６６”とを互いに対応付けてライトする。同時に、データキャッシュメモリ２１２は、ライトスルー動作でアドレス変換部２１３にアクセス要求を渡す。
【００６５】
アドレス変換部２１３は、入力されたアドレスに対して＋４００００の処理を行う。これにより、ＣＰＵデバイス２１０からアドレス“４３２５０”番地に“３３６６”をライトするアクセス要求がアドレスデコーダ２２０に渡される。
【００６６】
アドレスデコーダ２２０は、“４３２５０”番地がＰＣＩ向けの番地であると判断し、このアクセス要求をメインメモリ２４０に渡さず、ＰＣＩインタフェース２３０に渡す。
【００６７】
ＰＣＩインタフェース２３０は、待機中のモジュール１００のＰＣＩインタフェース１３０にこのアクセス要求を渡す。
【００６８】
ＰＣＩインタフェース１３０は、内部アドレス変換のために入力されたアドレスに対して−４００００の処理を行う。そして、ＰＣＩインタフェース１３０は、アドレスデコーダ１２０に対して、アドレス“０３２５０”番地に“３３６６”をライトするアクセスとして渡す。
【００６９】
アドレスデコーダ１２０は、“０３２５０”番地がメインメモリ１４０向けの番地と判断し、このアクセスをメインメモリ１４０に渡す。メインメモリ１４０は、“０３２５０”番地にデータ“３３６６”をライトする。
【００７０】
次に、ＣＰＵデバイス２１０の処理部２１１から“０３２００”番地のリード要求が出されたとする。
【００７１】
図８に示すように、データキャッシュメモリ２１２は、内部を検索し、“０３２００”番地が存在しないので、キャッシュミスと判断する。そして、データキャッシュメモリ２１２は、メインメモリ２４０にアクセスするためリード要求をアドレス変換部２１３へ渡す。
【００７２】
このリード要求は、ライトスルー動作ではないので、アドレス変換部２１３はアドレス変換を行わない。その結果、ＣＰＵデバイス２１０から“０３２００”番地のリードアクセス要求がアドレスデコーダ２２０に渡される。
【００７３】
アドレスデコーダ２２０は、“０３２００”番地がメインメモリ２４０向けの番地であると判断して、このアクセス要求をメインメモリ２４０に渡す。メインメモリ２４０は、“０３２００”番地に格納されたデータ“１３５７”をリードデータとして返す。
【００７４】
リードデータ“１３５７”は処理部２１１に渡されると同時にデータキャッシュメモリ２１２にも書き込まれる。
【００７５】
以上説明したように、本実施の形態に係る二重化システムでは、データキャッシュメモリのライトスルー動作時のみライトデータのアドレスを変換することにより、運用中モジュールのライトデータがリアルタイムで待機中モジュールにコピーされる。これにより、モジュールの切り替え後に、これから運用中になるモジュールは直ちに運用可能状態になる。しかも運用中モジュールのデータライト時のデータコピー動作は処理能力に影響しない。つまり、この二重化システムでは、ＣＰＵのライト動作において、ライトのたびに別モジュールにライトデータのコピーをしているにもかかわらず、キャッシュ動作が可能であるため、メモリアクセス時間を犠牲にせず、データコピー動作を行うことができる。
【００７６】
また、本実施の形態に係る二重化システムは、関連する二重化システムにアドレス変換部を追加するのみで実現可能であり、このアドレス変換部はＣＰＵデバイス内に持つことができるので、コストをかけずに作製することができる。
【００７７】
さらに、アドレス変換にてアクセスを制御するため、アドレス変換部をＣＰＵデバイス内に持たせた場合、ＣＰＵデバイスに新たな端子を追加することなく実現できるので、ＣＰＵデバイスのコスト増加がほとんど無い。
【００７８】
以上、本発明について一実施の形態に即して詳細に説明したが、本発明は上記実施の形態に限定されるものではない。
【００７９】
例えば、上記実施の形態では、ＰＣＩバス及びＰＣＩインタフェースにて二つのモジュールを接続しているが、他のバス及び／又はインタフェース等、例えばＲＩＯ（ラピッドＩＯ）や、ＣＰＵバスを用いることもできる。
【００８０】
また、アドレスデコーダにおいて、アドレスを細かくデコードすることで、データのコピー先をアドレスに応じて分けるようにしてもよい。
【００８１】
さらに、ＰＣＩインタフェース及びアドレスデコーダをＣＰＵデバイスに取り込み、ＣＰＵデバイスからは、ＰＣＩインタフェースの端子、及びメインメモリの端子を出す構成にするようにしてもよい。
【００８２】
さらにまた、待機中のモジュールにおいてデータライト動作が行われた時に、待機中のモジュールから運用中のモジュールにＰＣＩバスを通してデータのライトが来ないように、待機中のＣＰＵデバイスはデータキャッシュメモリを禁止状態としておいてもよい。または、データキャッシュメモリのモードをライトスルー禁止としておいてもよい。
【図面の簡単な説明】
【００８３】
【図１】本発明の一実施の形態に係る二重化システムの構成及び動作を説明するためのブロック図である。
【図２】図１の二重化システムの動作を説明するためのブロック図である。
【図３】図１の二重化システムの動作を説明するためのブロック図である。
【図４】図１の二重化システムの動作を説明するためのブロック図である。
【図５】図１の二重化システムの動作を説明するためのブロック図である。
【図６】図１の二重化システムの動作を説明するためのブロック図である。
【図７】図１の二重化システムの動作を説明するためのブロック図である。
【図８】図１の二重化システムの動作を説明するためのブロック図である。
【符号の説明】
【００８４】
１００，２００    モジュール
１１０，２１０    ＣＰＵデバイス
１１１，２１１    処理部
１１２，２１２    データキャッシュメモリ
１１３，２１３    アドレス変換部
１２０，２２０    アドレスデコーダ
１３０，２３０    ＰＣＩインタフェース
１４０，２４０    メインメモリ
【図１】
0005321782.tif 000002
【図２】
0005321782.tif 000003
【図３】
0005321782.tif 000004
【図４】
0005321782.tif 000005
【図５】
0005321782.tif 000006
【図６】
0005321782.tif 000007
【図７】
0005321782.tif 000008
【図８】
0005321782.tif 000009