(57)【特許請求の範囲】
【請求項１】
同一の入力データを用いた演算をそれぞれ実行する第１の演算ユニットおよび第２の演算ユニットを備える二重化制御システムにおいて、
前記第１の演算ユニットは、前記第１の演算ユニットに入力される入力データを、前記第１の演算ユニットのための記憶領域に予め設けられた第１の等値化作業領域から前記第２の演算ユニットのための記憶領域に予め設けられた第２の等値化作業領域に向けてミラードライト機能によりバースト転送することで、当該入力データを前記第２の演算ユニットに与える転送手段を備え、
前記第２の演算ユニットは、前記転送手段による前記入力データの転送が終了するまで、前記第２の演算ユニットに与えられる入力データを無効化する無効化手段を備え、
前記第１の演算ユニットおよび前記第２の演算ユニットは、同期合わせを行った後に、前記転送手段および前記無効化手段による処理を同期合わせを挟むことなく並行して実行し、その後に同期合わせを実行することを特徴とする二重化制御システム。
【請求項２】
前記第１の演算ユニットは制御側のユニットであり、前記第２の演算ユニットは待機側のユニットであることを特徴とする請求項１に記載の二重化制御システム。
【請求項３】
前記無効化手段は、第２の演算ユニットのキャッシュに乗っている前記第２の等値化作業領域の前記入力データを、キャッシュ・インバリッド命令を用いて無効化することを特徴とする請求項１または２に記載の二重化制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一の入力データを用いた演算を実行する２つの演算ユニットを備える二重化制御システムに関する。
【背景技術】
【０００２】
フィールドコントローラの制御動作を二重化する場合、フィールドコントローラを制御側と待機側の２つのＣＰＵカードで構成し、両者のＣＰＵカード間で同期を取りながら動作させる。このような二重化運転は、同一の入力に対しては同一の出力結果が得られるという前提の下に成立しているため、両者のＣＰＵカードは外部からの入力データ（例えば、入出力モジュールやＶｎｅｔ通信などのデータ）として、同一データを用いて処理を実行する必要がある。
【特許文献１】特開２００７−２８０３１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、外部からの入力データは、それを取得するタイミングによって値に差を生じるため、従来のシステムでは、一方のＣＰＵカード（入力実施側のカード）が入力データを取得した後、もう他方のＣＰＵカードにこの入力データを受け渡すという処理を実行している。このような処理により、両者のＣＰＵカードに与える入力データを等値化（同一化）している。
【０００４】
従来の処理として一般的な手順を以下に示す。
（１）同期ポイントにおいて制御側と待機側が同期合わせを行う。
（２）制御側がＩＯ空間から入力データを取得する。ここでは、制御側は入力データを自らの側のメモリにキャッシュライトする。このとき、待機側は次の同期ポイントで待ち合わせをしている。
（３）次の同期ポイントにおいて制御側と待機側が同期合わせを行う。
（４）待機側が制御側のメモリを読み込み、自らの側（待機側）のメモリに書き込む。ここでは、待機側は制御側空間を非キャッシュアクセスし、自らの側のメモリにキャッシュライトする。このとき、制御側は次の同期ポイントで待ち合わせしている。
（５）次の同期ポイントにおいて制御側と待機側が同期合わせを行う。
【０００５】
以上のように、従来の処理では、同期合わせによりタイミングを計りながら制御側がデータを取得し（入力処理）、待機側が制御側からデータを取得する（等値化処理）という処理を、シーケンシャルに実行している。
【０００６】
しかし、ＣＰＵカードの処理能力の向上によるフィールドコントローラの大容量化や処理の高速化に伴い、外部から取得する入力データ量が増加する。このため、ＣＰＵカードの処理能力の向上と同等に、データ入力処理および等値化処理の能力を向上させないと、二重化処理に要する時間の比率が増大し、制御処理のための実行時間が制約されてしまう。
【０００７】
本発明の目的は、二重化制御に特有の処理に要する実行時間を削減することができる二重化制御システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の二重化制御システムは、同一の入力データを用いた演算をそれぞれ実行する第１の演算ユニットおよび第２の演算ユニットを備える二重化制御システムにおいて、前記第１の演算ユニットは、前記第１の演算ユニットに入力される入力データを、前記第１の演算ユニットのための記憶領域に予め設けられた第１の等値化作業領域から前記第２の演算ユニットのための記憶領域に予め設けられた第２の等値化作業領域に向けてミラードライト機能によりバースト転送することで、当該入力データを前記第２の演算ユニットに与える転送手段を備え、前記第２の演算ユニットは、前記転送手段による前記入力データの転送が終了するまで、前記第２の演算ユニットに与えられる入力データを無効化する無効化手段を備え、前記第１の演算ユニットおよび前記第２の演算ユニットは、同期合わせを行った後に、前記転送手段および前記無効化手段による処理を同期合わせを挟むことなく並行して実行し、その後に同期合わせを実行することを特徴とする。
この二重化制御システムによれば、第１の演算ユニットに入力される入力データを、第１の等値化作業領域から第２の等値化作業領域に向けてミラードライト機能によりバースト転送するので、等値化処理に要する時間を短縮できる。
【０００９】
前記第１の演算ユニットは制御側のユニットであり、前記第２の演算ユニットは待機側のユニットであってもよい。
【００１０】
前記無効化手段は、第２の演算ユニットのキャッシュに乗っている前記第２の等値化作業領域の前記入力データを、キャッシュ・インバリッド命令を用いて無効化してもよい。
【発明の効果】
【００１１】
本発明の二重化制御システムによれば、第１の演算ユニットに入力される入力データを、第１の等値化作業領域から第２の等値化作業領域に向けてミラードライト機能によりバースト転送するので、等値化処理に要する時間を短縮できる。
【発明を実施するための最良の形態】
【００１２】
以下、図１〜図２を参照して、本発明による二重化制御システムの一実施形態について説明する。
【００１３】
図１は、本実施形態の二重化制御システムの構成を示すブロック図である。
【００１４】
本実施形態の二重化制御システムは、同一の入力データが与えられ、同一演算を実行するＣＰＵ１１およびＣＰＵ２１を備える。ＣＰＵ１１に対してはキャッシュ１２が、ＣＰＵ２１に対してはキャッシュ２２が、それぞれ設けられている。図１は、ＣＰＵ１１が待機側として、ＣＰＵ２１が制御側として、それぞれ機能している状態を示している。なお、本実施形態の二重化制御システムは、ホットスタンバイ方式およびコールドスタンバイ方式のいずれにも適用できる。
【００１５】
図１に示すように、本実施形態の二重化制御システムでは、ＣＰＵ１１に対応する送信側の等値化作業領域３１Ａおよび受信側の等値化作業領域３１ＢがＲＡＭ３１の専用領域として、ＣＰＵ２１に対応する受信側の等値化作業領域３２Ｂおよび送信側の等値化作業領域３２ＡがＲＡＭ３２の専用領域として、それぞれ用意されている。これらの領域はミラードライトを行うための領域であり、ハードウェアレジスタで指定する必要がある。しかし、この指定作業を入力処理のたびに行うと処理時間を要するため、本実施形態では、専用領域をあらかじめ設定している。また、制御側から待機側への等値化および待機側から制御側への等値化という双方向の等値化が存在するため、ＣＰＵ１１およびＣＰＵ２１のそれぞれについて、受信側／送信側の領域を持つ構成としている。
【００１６】
ミラードライト機能は、本発明における転送手段に相当し、ＣＰＵが等値化作業領域（送信側）に書き込みを実行した場合に、相手方のＣＰＵの等値化作業領域（受信側）に対してもバックボードバスを通して書き込みを行う機能である。本実施形態の二重化制御システムでは、このようなミラードライト機能により、入力処理と等値化処理を同時に実行している。また、本実施形態の二重化制御システムは、等値化作業領域（送信側）への書き込みがブロックライトであった場合に、バースト転送を利用することでバックボードバスにブロックライトのフレーム（８ワード）をそのまま通すことを特徴としている。このように、バックボードのバースト転送を利用することで、一度に８ワードずつのデータが転送できる。
【００１７】
図２は、本実施形態の二重化制御システムにおいて、データ入力およびデータ等値化に関する動作を示すフローチャートである。図２において、ステップＳ１およびステップＳ１１〜ステップＳ１４は制御側ＣＰＵ２１の動作に、ステップＳ１およびステップＳ２１〜ステップＳ２４は待機側ＣＰＵ１１の動作にそれぞれ対応する。
【００１８】
ステップＳ１では、自らのＣＰＵがデータ入力を受けるＣＰＵか否か判断する。判断が肯定されればステップＳ１１へ進み、判断が否定されればステップＳ２１へ進む。
【００１９】
ステップＳ１１およびステップＳ２１では、同期ポイントにおいて制御側ＣＰＵ２１および待機側ＣＰＵ１１の間で同期合わせを行う。
【００２０】
次に、ステップＳ１２では、制御側ＣＰＵ２１がＩＯ空間から入力データを取得し、送信側の等値化作業領域３２Ａにキャッシュライトする。また、キャッシュミスヒットの発生によりキャッシュ２２に書き込まれたデータも送信側の等値化作業領域３２Ａに反映される。送信側の等値化作業領域３２Ａは、ミラードライトにより待機側における受信側の等値化作業領域３１Ｂに反映され、両者のデータは同一となる。
【００２１】
ステップＳ１２の実行中、待機側は、ステップＳ２２において、キャッシュ２２に乗っていた受信側の等値化作業領域３１Ｂのデータを、キャッシュ・インバリッド命令によりすべてインバリッドにする。この処理により、待機側が次に等値化作業領域３１Ｂのデータを参照したとき、そのデータは新しく等値化されたデータ、すなわちミラードライト機能により更新済みのデータとなる。ステップＳ２２の処理は、本発明における無効化手段の機能に相当する。
【００２２】
次に、ステップＳ１３では、制御側はキャッシュ２２に乗っていた送信側の等値化作業領域３２Ａのデータをフラッシュによりライトバックする。この処理によってキャッシュ２２の等値化作業領域３２Ａの入力データがキャッシュフラッシュされ、等値化作業領域３２Ａのデータに反映される。さらに、この入力データは、ミラードライト機能により待機側における受信側の等値化作業領域３１Ｂにも反映される。
【００２３】
ステップＳ１４およびステップＳ２４では、同期ポイントにおいてそれぞれの制御側ＣＰＵおよび待機側ＣＰＵの間で同期合わせを行い、処理を終了する。
【００２４】
以上のように、本実施形態の二重化制御システムでは、等値化作業領域を設けるとともに、ミラードライト機能を利用することで、入力処理と等値化処理とを同時に実行している。また、ＣＰＵカード間（等値化作業領域間）のデータ転送をバックボードのバースト転送とすることで、一度に転送できるデータが８ワードずつになる。等値化に要する時間は実質的にバックボード転送時間が占めているため、バースト転送を利用することにより、１ワードずつの転送に比べて等値化にかかる時間を約１／８に短縮できる。
【００２５】
これらの効果により、二重化オーバーヘッドである二重化処理にかかる時間が大幅に短縮されパフォーマンスが向上することで、二重化運転中の制御処理の実行時間を増大させることができる。
【００２６】
以上説明したように、本発明の二重化制御システムによれば、第１の演算ユニットに入力される入力データを、第１の等値化作業領域から第２の等値化作業領域に向けてミラードライト機能によりバースト転送するので、等値化処理に要する時間を短縮できる。
【００２７】
本発明の適用範囲は上記実施形態に限定されることはない。本発明の二重化制御システムは、フィールド制御システム、安全計装システム、その他の制御システムに広く適用できる。
【図面の簡単な説明】
【００２８】
【図１】一実施形態の二重化制御システムの構成を示すブロック図。
【図２】データ入力およびデータ等値化に関する動作を示すフローチャート。
【符号の説明】
【００２９】
１１，２１  ＣＰＵ（第１の演算ユニット、第２の演算ユニット）
１２，２２  キャッシュ
３１Ａ，３１Ｂ，３２Ａ，３２Ｂ  等値化作業領域
【図１】
0005207208.tif 000002
【図２】
0005207208.tif 000003