2つのCPU間でのデータ転送と、1つめのCPUがダウンした時に転送されたデータをもとに予備CPU上でアプリケーションのホットリスタートを実装するようにします。
原理
-
1. CPUはそれぞれ「マスタCPU」と「スレーブCPU」とします。
2. アプリケーションコードはあらかじめ両方のCPU環境下にダウンロードしておきます。
3. はじめは「マスタCPU」側のみ起動しておきます。スレーブ側は停止状態です。
4. 毎サイクル、マスタ側からスレーブ側にデータをコピーします。
5. マスタ側の異常を検知した場合、スレーブ側をいわゆる「ホットリスタート」モードで起動します。このとき、マスタから転送されていたデータを元にアプリケーションの実行を開始します。
これは元々あるISaGRAFのユーザによって実装されたものです。CPU間のデータの転送にはファーストイーサネットを使って実現していますが、共有メモリなど他の方法でも実現は可能です。
ISaGRAFはターゲットソースレベルで以下のような機能を提供しています。
-
1. マスタCPU側からのデータ転送を可能にするフック関数
2. ホットリスタートモードで起動するためのカーネル側のオプションコード
3. どのようなデータを転送すべきかという情報はCJ Internationalから提供されます。
注意事項
ISaGRAF自身には
- データ転送
- CPUエラーの検出
- スレーブCPUの起動
上記のフック関数やソフトウェアはISaGRAF開発ツールキット(NSS-I3-IDK)で提供されています。ただし、マニュアル内には「ホットリスタート」の説明は、一切なされていません。ドキュメントや機能の説明は別途テクニカルサポートの対象となります。