(57)【要約】【課題】  冗長化されているＣＰＵが使用するデータに対する信頼性を、ＣＰＵ間の通信手段を利用することにより低コストで確保できる冗長化ＣＰＵ装置を提供すること。【解決手段】  マスターＣＰＵとスレーブＣＰＵ相互間で通信を行い、両ＣＰＵは互いのデータを照合するように構成された冗長化ＣＰＵ装置であって、  前記マスターＣＰＵは外部からデータを取り込むとともに、取り込んだデータを前記スレーブＣＰＵに転送することを特徴とするもの。【選択図】                    図１
2006209227.tif 000002
【特許請求の範囲】
【請求項１】
マスターＣＰＵとスレーブＣＰＵ相互間で通信を行い、両ＣＰＵは互いのデータを照合するように構成された冗長化ＣＰＵ装置であって、
前記マスターＣＰＵは外部からデータを取り込むとともに、取り込んだデータを前記スレーブＣＰＵに転送することを特徴とする冗長化ＣＰＵ装置。
【請求項２】
前記マスターＣＰＵは、取り込んだデータについて自己診断を行い、正常な場合には動作条件を決定するとともに、そのデータを前記スレーブＣＰＵに転送することを特徴とする請求項１記載の冗長化ＣＰＵ装置。
【請求項３】
前記スレーブＣＰＵは、マスターＣＰＵから受信したデータについて自己診断を行い、正常な場合には動作条件を決定することを特徴とする請求項２記載の冗長化ＣＰＵ装置。
【請求項４】
前記マスターＣＰＵとスレーブＣＰＵは、絶縁結合素子で絶縁結合されていることを特徴とする請求項１に記載の冗長化ＣＰＵ装置。
【請求項５】
前記スレーブＣＰＵが複数接続されていることを特徴とする請求項１に記載の冗長化ＣＰＵ装置。
【請求項６】
前記データは、マスターＣＰＵとスレーブＣＰＵの動作条件を設定するパラメータまたは動作を制御するプログラムの少なくともいずれかであることを特徴とする請求項１に記載の冗長化ＣＰＵ装置。
【請求項７】
前記マスターＣＰＵは、上位システムまたは不揮発メモリからデータを取り込むことを特徴とする請求項１に記載の冗長化ＣＰＵ装置。
【請求項８】
前記マスターＣＰＵは、上位システムから転送されるデータに基づき不揮発メモリを書き換えることを特徴とする請求項１に記載の冗長化ＣＰＵ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は冗長化ＣＰＵ装置に関し、詳しくは、ＣＰＵが冗長化されている装置におけるデータ等値化の改良に関するものである。
【背景技術】
【０００２】
例えばＣＰＵを用いた装置では、マスターＣＰＵとスレーブＣＰＵを設けてＣＰＵの冗長化を行い、マスターＣＰＵとスレーブＣＰＵ相互間で通信を行いながら両ＣＰＵは互いのデータを照合するように構成し、両ＣＰＵのデータが不一致になった場合にはＣＰＵに異常が発生したと判断することが行われている。
【０００３】
図４は従来例のブロック図であり、プロセス制御システムに用いられる入出力モジュールの関連部分を示している。図４において、マスターＣＰＵ１，スレーブＣＰＵ２は相互に通信が行えるように接続されていて、これらＣＰＵ１，２には、それぞれ個別に独立した不揮発メモリ３，４と内部ＲＡＭとしてのメモリ５，６が設けられている。不揮発メモリ３，４には、入出力モジュールの使用形態情報、入出力モジュールの調整用データ、入出力モジュールに対する診断要否情報など、ＣＰＵ１，２に同一の動作条件を設定するためのパラメータデータが格納されている。マスターＣＰＵ１は、図示しない上位システムとの間で通信を行う。
【０００４】
このような構成において、マスターＣＰＵ１およびスレーブＣＰＵ２は、それぞれ個別に不揮発メモリ３，４から格納されている同一の動作条件データを読み出してそれぞれのメモリ５，６に展開し、所定の処理動作を実行する。その過程において、ＣＰＵ１，２相互間でデータ交換を行いながら両者のデータを照合する。そして、マスターＣＰＵ１は、不一致を検出したら異常が発生したと判断して上位システムとの通信を停止し、入出力モジュールの異常に起因する影響が上位システムに及ばないようにする。
【０００５】
図５は他の従来例のブロック図である。図５において、マスターＣＰＵ７，スレーブＣＰＵ８は相互に通信が行えるように接続されている。これらＣＰＵ７，８には、共通する１つの不揮発メモリ９と内部ＲＡＭとしてのメモリ１０，１１が設けられている。不揮発メモリ９には、入出力モジュールの使用形態情報、入出力モジュールの調整用データ、入出力モジュールに対する診断要否情報など、ＣＰＵ７，８に同一の動作条件を設定するためのパラメータデータが格納されている。マスターＣＰＵ７は、図示しない上位システムとの間で通信を行う。
【０００６】
このような構成において、マスターＣＰＵ７およびスレーブＣＰＵ８は、それぞれ不揮発メモリ９から格納されている動作条件データを読み出してそれぞれのメモリ１０，１１に展開し、所定の処理動作を実行する。その過程において、ＣＰＵ７，８相互間で逐次データ交換を行いながら両者のデータを照合する。そして、マスターＣＰＵ７は、不一致を検出したら異常が発生したと判断して上位システムとの通信を停止し、入出力モジュールの異常に起因する影響が上位システムに及ばないようにする。
【０００７】
【特許文献１】特開２００１−２５６０７０
【０００８】
特許文献１には、異なった命令コードを実行するプロセッサを用いて冗長化することにより、プロセッサの選択を柔軟にした冗長化プロセッサ装置の構成が開示されているが、本発明のような冗長化されたＣＰＵが使用するデータの信頼性を確保することについての言及はない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、図４の構成によれば、マスターＣＰＵ１，スレーブＣＰＵ２のそれぞれは個別に独立した不揮発メモリ３，４を持つことから、それぞれのＣＰＵ１，２で不揮発メモリ３，４から動作条件データを読み出し、互いに両側のデータを交換して両者のデータ一致を確認しなければならず、それらの処理時間が発生することになる。
【００１０】
また、これら不揮発メモリ３，４には必ず同じ動作条件データを格納しておかなければならず、そのための管理工数が発生する。
【００１１】
さらに、２個の不揮発性メモリ３，４が必要になるので、コストアップになる。
【００１２】
一方、図５の構成によれば、マスターＣＰＵ７とスレーブＣＰＵ８とで１つの不揮発メモリ９を共有するので、２つの不揮発メモリを用いる図４の構成と比べると管理工数やコストは削減できる。
【００１３】
しかし、マスターＣＰＵ７とスレーブＣＰＵ８は、１つの不揮発メモリ９を共通資源としてアクセスするので、時間分割（タイムシェアリング）処理などの複雑な制御が必要となる。
【００１４】
また、マスターＣＰＵ７とスレーブＣＰＵ８間の通信ケーブルをフォトカプラなどの絶縁結合素子で絶縁結合する場合には、共通資源である不揮発メモリ９に対するアクセスケーブルにも絶縁素子が必要となる。
【００１５】
本発明は、これらの従来の問題点を解決するものであり、その目的は、冗長化されているＣＰＵが使用するデータに対する信頼性を、ＣＰＵ間の通信手段を利用することにより低コストで確保できる冗長化ＣＰＵ装置を提供することにある。
【課題を解決するための手段】
【００１６】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
マスターＣＰＵとスレーブＣＰＵ相互間で通信を行い、両ＣＰＵは互いのデータを照合するように構成された冗長化ＣＰＵ装置であって、
前記マスターＣＰＵは外部からデータを取り込むとともに、取り込んだデータを前記スレーブＣＰＵに転送することを特徴とする。
【００１７】
請求項２記載の発明は、請求項１記載の冗長化ＣＰＵ装置において、
前記マスターＣＰＵは、取り込んだデータについて自己診断を行い、正常な場合には動作条件を決定するとともに、そのデータを前記スレーブＣＰＵに転送することを特徴とする。
【００１８】
請求項３記載の発明は、請求項２記載の冗長化ＣＰＵ装置において、
前記スレーブＣＰＵは、マスターＣＰＵから受信したデータについて自己診断を行い、正常な場合には動作条件を決定することを特徴とする。
【００１９】
請求項４記載の発明は、請求項１に記載された冗長化ＣＰＵ装置において、
前記マスターＣＰＵとスレーブＣＰＵは、絶縁結合素子で絶縁結合されていることを特徴とする。
【００２０】
請求項５記載の発明は、請求項１に記載された冗長化ＣＰＵ装置において、
前記スレーブＣＰＵが複数接続されていることを特徴とする。
【００２１】
請求項６記載の発明は、請求項１に記載された冗長化ＣＰＵ装置において、
前記データは、マスターＣＰＵとスレーブＣＰＵの動作条件を設定するパラメータまたは動作を制御するプログラムの少なくともいずれかであることを特徴とする。
【００２２】
請求項７記載の発明は、請求項１に記載された冗長化ＣＰＵ装置において、
前記マスターＣＰＵは、上位システムまたは不揮発メモリからデータを取り込むことを特徴とする。
【００２３】
請求項８記載の発明は、請求項１に記載された冗長化ＣＰＵ装置において、
前記マスターＣＰＵは、上位システムから転送されるデータに基づき不揮発メモリを書き換えることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、冗長化されているＣＰＵが使用するデータに対する信頼性を、低コストで確保できる冗長化ＣＰＵ装置を実現できる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明を図面を用いて詳細に説明する。図１は本発明の具体例を示すブロック図である。図１において、マスターＣＰＵ１２，スレーブＣＰＵ１３は相互に通信が行えるように接続されている。マスターＣＰＵ１２には、不揮発メモリ１４と内部ＲＡＭとしてのメモリ１５が設けられている。不揮発メモリ１４には、入出力モジュールの使用形態情報、入出力モジュールの調整用データ、入出力モジュールに対する診断要否情報など、マスターＣＰＵ１２の動作条件を設定するためのパラメータデータが格納されている。マスターＣＰＵ１２は、図示しない上位システムとの間で通信を行う。スレーブＣＰＵ１３には、内部ＲＡＭとしてのメモリ１６が設けられている。
【００２６】
図２は図１のブート時の動作を説明するフローチャートである。
電源がオンされると、マスターＣＰＵ１２，スレーブＣＰＵ１３は、まずそれぞれの初期化処理を行う(SP1,2)。
【００２７】
続いてマスターＣＰＵ１２は、例えば不揮発メモリ１４などの外部からデータを読み込み(SP3)、ＳＵＭチェック，ＣＲＣ-１６チェックなどの自己診断を含む等値化処理を行う(SP4)。マスターＣＰＵ１２は、自己診断結果が正常の場合にはそのデータで自身の動作条件を決定し、異常の場合にはそのデータは使用せず異常状態を上位システムに通知する。
なお、マスターＣＰＵ１２は、自己診断結果が正常の場合にはスレーブＣＰＵ１３へのデータ転送を行い(SP5)、異常の場合にはスレーブＣＰＵ１３へのデータ転送を行わない。
【００２８】
スレーブＣＰＵ１３は、受け取ったデータに対し、ＳＵＭチェック，ＣＲＣ-１６チェックなどの自己診断を含む等値化処理を行う(SP6)。スレーブＣＰＵ１３は、自己診断結果が正常の場合にはそのデータで自身の動作条件を決定し、異常の場合にはそのデータは使用せず異常状態をマスターＣＰＵ１２を経由して上位システムに通知する。
【００２９】
マスターＣＰＵ１２とスレーブＣＰＵ１３は、それぞれの自己診断結果が正常であれば正常状態で通常処理に遷移し(SP7,8)、どちらかが異常であれば異常状態で通常処理に遷移する。
【００３０】
マスターＣＰＵ１２とスレーブＣＰＵ１３は、それぞれのデータが同じにされた状態で通常処理動作を開始する。この状態で、マスターＣＰＵ１２とスレーブＣＰＵ１３が定期的にそれぞれ独立にメモリ１５，１６内のデータチェックを行うことにより、マスターＣＰＵ１２とスレーブＣＰＵ１３で同じデータを使用していることが保障できる。上記の診断を行うことにより、マスターＣＰＵ１２とスレーブＣＰＵ１３間で定期的にデータを交換しながらのチェック処理を行わなくても、同じデータであることが診断できる。
【００３１】
このような冗長化ＣＰＵ装置の構成によれば、マスターＣＰＵ１２とスレーブＣＰＵ１３との間の通信インタフェースを利用してデータを転送することにより、ＣＰＵ１２とスレーブＣＰＵ１３との間で同じデータを保持することができる。
【００３２】
また、回路構成を簡略にできるので、コストダウンが図れる。特に、マスターＣＰＵ１２とスレーブＣＰＵ１３間が絶縁される場合におけるコストダウン効果は大きい。
【００３３】
スレーブＣＰＵ１３側の不揮発メモリを削減したことにより、不揮発メモリの資源はシングル構成となり、データの信頼性を確保するためには十分な診断を行う必要がある。これについては、データを転送するときにマスターＣＰＵ１２とスレーブＣＰＵ１３で診断を行い、マスターＣＰＵ１２とスレーブＣＰＵ１３で正常とならなければ正常状態に遷移させないように処理することで、データの信頼性を確保できる。このような等値化の処理手順例をまとめると、以下のようになる。
処理手順例：
1)  マスターＣＰＵ１２がデータ読み込み
2)  マスターＣＰＵ１２でデータチェック
3)  マスターＣＰＵ１２からスレーブＣＰＵ１３側へデータ転送
4)  ＣＰＵ１３でデータをチェック
5)  両ＣＰＵ１２，１３でのチェックが正常の場合のみ正常状態と判断
【００３４】
この場合、等値化処理時間は従来よりも増えることになるが、両ＣＰＵ１２，１３で用いるデータの信頼性を大幅に高めることができるので、等値化処理時間の増大が許容できる場合については有効である。
【００３５】
さらに、等値化処理後の通常処理において、定期的に各ＣＰＵ１２，１３でそれぞれのデータの自己診断を行うことにより、両側のＣＰＵ１２，１３のデータが同じであることを保障し続けることができる。
【００３６】
すなわち、各ＣＰＵ１２，１３が自身のメモリ１５，１６内のデータを定期的に診断すれば、片方が異常であれば機器全体の異常が判断できる。つまり、定期的にＣＰＵ１２，１３間でのデータ交換処理や、ＣＰＵ１２，１３間でのデータの交換を行いながらのチェック処理を行う必要はない。
【００３７】
従来構成のような両側ＣＰＵ１２，１３がアクセスする共通資源としての不揮発メモリはなくなるので、タイムシェアリングなどの制御が不要になり、複雑なアプリケーションプログラム処理の必要がなくなる。
【００３８】
図３は、本発明の他の動作例を示すフローチャートであり、通常処理中に不揮発性メモリのデータ書き換えがあった場合の動作を示している。
マスターＣＰＵ１２，スレーブＣＰＵ１３は電源オンによりそれぞれの初期化処理を行い(SP9,10)、マスターＣＰＵ１２は前述のような等値化処理を行った後(SP11)、スレーブＣＰＵ１３にデータ転送を行い(SP12)、スレーブＣＰＵ１３も前述のような等値化処理を行って(SP13)、両ＣＰＵ１２，１３のメモリ１５，１６のデータは同一になっていて、両ＣＰＵ１２，１３は通常処理に遷移しているとする(SP14,15)。
【００３９】
このような状態において、上位システムからマスターＣＰＵ１２に対して不揮発メモリ１４に格納されているデータの書き換え要求が発生すると、マスターＣＰＵ１２は不揮発メモリ１４へのデータ書き換えを実行する(SP16)。
【００４０】
マスターＣＰＵ１２からスレーブＣＰＵ１３に対して書き換え処理が発生したことを通知する(SP17)。
【００４１】
マスターＣＰＵ１２は自発的に等値化処理へ状態を遷移し(SP11)、スレーブＣＰＵ１３はマスターＣＰＵ１２からの書き換え処理通知に基づいて等値化処理へ状態を遷移する(SP12)。
【００４２】
両ＣＰＵ１２，１３は、前述と同様な等値化処理を行って両ＣＰＵ１２，１３のデータを同一にする等値化処理完了後、通常処理状態へ遷移する。
【００４３】
両ＣＰＵ１２，１３は、データが同一にされた状態で通常処理動作を開始する。
【００４４】
これにより、不揮発メモリ１４のデータ書き換え要求があったとき、ブート時の等値化処理と同じ処理を行うことでデータを転送・診断できることからブート時と同じような効果が期待でき、アプリケーションの共通化が図れる。
【００４５】
なお、マスターＣＰＵ１２が取り込むデータは、予め不揮発メモリ１４に格納されているパラメータデータやプログラムデータであってもよいし、上位システムから転送されるパラメータデータやプログラムデータであってもよい。
【００４６】
また、１つのマスターＣＰＵに対してスレーブＣＰＵは複数であってもよい。
【００４７】
さらに、本発明の動作は図２，図３に示したフローチャートのような時系列的な順序に限るものではなく、マスターＣＰＵ１２とスレーブＣＰＵ１３のデータチェック結果を照合する前段階までの処理を並列に行うようにしてもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明に基づく冗長化ＣＰＵ装置の具体例を示すブロック図である。
【図２】図１の動作例を示すフローチャートである。
【図３】図１の他の動作例を示すフローチャートである。
【図４】従来例のブロック図である。
【図５】他の従来例のブロック図である。
【符号の説明】
【００４９】
１２  マスターＣＰＵ
１３  スレーブＣＰＵ
１４  不揮発メモリ
１５，１６  メモリ（内部ＲＡＭ）
【図１】
2006209227.tif 000003
【図２】
2006209227.tif 000004
【図３】
2006209227.tif 000005
【図４】
2006209227.tif 000006
【図５】
2006209227.tif 000007