図1は本発明の第1の実施の形態に係わる制御装置の構成図である。ここで、制御装置は、たとえば、発電プラントなどのプラントを制御する制御装置であり、制御データを格納するためにECCメモリ12が利用される。メモリ診断手段11は、制御装置のECCメモリ12を診断するものであり、制御装置の電源投入のときに電源投入ステータスをセットしてECCメモリ12を診断する。再起動手段13はメモリ診断手段11の診断結果に基づき制御装置に再起動を掛けるものである。また、動作処理手段14はECCメモリ12を使用して制御装置の制御動作を行うものである。
図2は、本発明の第1の実施の形態に係わる制御装置の処理内容を示す一例のフローチャートである。まず、制御装置の電源が投入されると(S1)、電源投入ステータスをセットし(S2)、システムを起動する(S3)。そして、メモリ診断手段11はECCメモリを診断し(S4)、修正不可能エラーを検出したか否かを判定する(S5)。修正不可能エラーを検出した場合はステップS3に戻り制御装置を再起動する。従って、修正不可能エラーが発生している場合には、ステップS3〜S5の処理が繰り返され結果として通常動作に進まない。適切な動作ができない状態で通常動作を進めるのは危険であるが、通常動作に進めないようにすることができる。
ステップS5の判定で、修正不可能エラーでない場合は修正可能エラーを検出したか否かを判定する(S6)。修正可能エラーを検出しないときは、電源投入ステータスをリセットし(S7)、動作処理手段14は通常動作を行う(S8)。一方、ステップS6の判定で、修正可能エラーを検出したときは、電源投入ステータス中か否かを判定し(S9)、電源投入ステータス中であるときはステップS3に戻り制御装置を再起動する。
このように、ECCメモリ12を用いた制御装置において、電源投入による起動時にメモリ診断を行い、データ読み出し時に誤り訂正があった場合は再起動を行う(S6、S9)。メモリ診断手段11でのメモリ診断は、永久故障を検出すべき全メモリエリアに対してデータを書き込み、その値を読み出すことにより行う。実際にはこれに加えて修正不可能な誤りを検出した場合も再起動する(S5)。誤りの修正が不可能であると言うことは適切な動作をすることも不可能である可能性があるためである。
再起動はソフトリセットによるものとなるため、電源等投入時に必ずセットされる電源投入ステータスを設け、システム起動時に、この電源投入ステータスをセットするようにする。この電源投入ステータスがセットされているときは、ソフトリセットによる起動でも電源投入による起動と判断することとする。
ソフトエラーによる誤り訂正があった場合、再起動後の誤りはなくなり、通常動作(S8)へと移行するが、永久故障による誤り訂正があった場合は、再起動後も誤り訂正して再度再起動するため、結果的に永久故障がある装置は通常動作(S8)へ移行できず、起動しなくなる。
この一例によれば、ECCメモリ12に永久故障が存在するとシステムが起動しなくなるため、ECCメモリ12の永久故障の存在を知ることができ、永久故障が累積して、予兆ないまま修正不可能となることを避けることができる。
なお、図2のフローで、修正不可能エラーを検出するステップ(S5)を省略することもできる。
図3は、本発明の第1の実施の形態に係わる制御装置の処理内容を示す他の一例のフローチャートである。この他の一例は、図2に示した一例に対し、電源投入ステータスリセット後に生じたソフトリセットによる再起動時もメモリ診断を行い、誤り訂正があった場合は再起動を行うようにしたものであり、電源投入ステータスリセット後に生じたソフトリセット時の誤り訂正による連続再起動回数を制限し、制限を越えた場合は、その旨の通知だけを行い通常動作(S8)に移るようにしたものである。図2と同一ステップには同一符号を付し重複する説明は省略する。
図3に示すように、ステップS6の判定で、修正可能エラーを検出しないときは、電源投入ステータスをリセットするとともに再起動回数をクリアし(S10)、動作処理手段14は通常動作を行う(S8)。一方、ステップS6の判定で、修正可能エラーを検出したときは、電源投入ステータス中かどうかを判定し(S11)、電源投入ステータス中であるときは、ステップS3に戻り制御装置を再起動する。ステップS11の判定で、電源投入ステータス中でないときは再起動回数が設定回数以下か否かを判定し(S13)、再起動回数が設定回数以下であるときは再起動回数をカウントアップし(S12)、ステップS3に戻り制御装置を再起動する。ステップS13の判定で再起動回数が設定回数以下でないときは永久故障通知を出力し(S14)、電源投入ステータスをリセットするとともに再起動回数をクリアし(S10)、動作処理手段14は通常動作を行う(S8)。
ここで、ステップS13における「設定回数」はたとえば1回であって、その場合は、初めての再起動のときに限って再起動回数のカウントアップ(S12)があり、2回目以降の再起動のときは永久故障通知(S14)がなされる。
このように、電源投入ステータスリセット後に生じたソフトリセットによる起動時もメモリ診断を行い、誤り訂正があった場合は再起動を行う。ただし電源投入ステータスリセット後に生じたソフトリセット時は誤り訂正による連続再起動回数を制限し、制限を越えた場合は、その旨の通知だけを行い通常動作に移る。
この一例によれば、電源投入後のシステム動作中にもシステムを止めることなく永久故障の存在を知ることができるため、永久故障が累積して予兆ないまま修正不可能となることを避けることができる。
図4は、本発明の第1の実施の形態に係わる制御装置の処理内容を示す別の他の一例のフローチャートである。この別の他の一例は、図3に示した他の一例に対し、再起動回数を制限するのは永久故障を検出した要素が多重化されていない場合のみとしたものである。図3と同一ステップには同一符号を付し重複する説明は省略する。
図4に示すように、ステップS6の判定で、修正可能エラーを検出しないときは、電源投入ステータスをリセットするとともに再起動回数をクリアし(S10)、動作処理手段14は通常動作を行う(S8)。一方、ステップS6の判定で、修正可能エラーを検出したときは、修正可能エラーを検出した要素が多重化されているかどうかを判定し(S15)、多重化されているときはステップS3に戻り制御装置を再起動する。このように、修正可能エラーを検出した要素が多重化されているときは、直接再起動を掛ける。この場合、永久故障が存在するこのECCメモリの系の起動が阻止される。それに応じて、永久故障が存在しないECCメモリの系に動作が移行し、それによって制御装置としては通常動作を行うことができる。
この一例によれば、多重化システムではECCメモリの永久故障が存在する系の起動を阻止することができるため、メモリの永久故障が存在する系を保全することができ、永久故障が累積して予兆ないまま修正不可能となることを避けることができる。また、他系故障して1重で動作時は永久故障が存在しても、システムを止めることなく稼働率を上げることができる。
図5は本発明の第2の実施の形態に係わる制御装置の構成図である。動作処理手段14はECCメモリ12を使用して制御動作を行うものであり、修正可能エラー検出手段15はECCメモリ12の修正可能エラーを検出するものである。永久故障判定手段16は、ECCメモリ12のデータ読み出し時に、誤り訂正があった場合に該当アドレスに正しいデータを記憶した後に再度同アドレスからデータを読み出し、このときに誤り訂正があった場合は該当するアドレスの永久故障として通知するものである。
図6は本発明の第2の実施の形態に係わる制御装置の永久故障判定手段の処理内容の一例を示すフローチャートである。修正可能エラー検出手段15により修正可能エラーが検出されると(S21)、該当アドレスに修正されたデータを記憶し(S22)、該当アドレスからデータを読み出す(S23)。このときに誤り訂正があったかどうか、つまり修正可能エラー検出があるかどうかを判定し(S24)、修正可能エラー検出があった場合は、該当するアドレスの永久故障として通知する(S25)。
このように、ECCメモリ12を用いた制御装置において、データ読み出し時に誤り訂正があった場合、該当アドレスに正しいデータを記憶した後、再度同アドレスからデータを読み出し、この時に誤り訂正があった場合は、該当するアドレスの永久故障として通知する。これにより、ECCメモリ12の永久故障の存在を知ることができ、永久故障が累積して予兆ないまま修正不可能となることを避けることができる。
図7は本発明の第2の実施の形態に係わる制御装置の永久故障判定手段の処理内容の他の一例を示すフローチャートである。修正可能エラー検出手段15により修正可能エラーが検出されると(S31)、当該アドレスのデータは修正されたことがあるかどうかを判定し(S32)、修正されたことがない場合には修正アドレスを記憶する(S33)。修正されたことがある場合には永久故障通知を行う(S34)。
このように、ECCメモリ12を用いた制御装置において、データ読み出し時に誤り訂正があった場合、該当アドレスを記憶しておき、再度同じアドレスで誤り訂正があった場合は、該当するアドレスの永久故障として通知する。これにより、ECCメモリ12の永久故障の存在を知ることができ、永久故障が累積して予兆ないまま修正不可能となることを避けることができる。
この図7の処理では、修正可能エラー検出時のメモリへのアクセス動作が少ないため、ハードウェアで実現することが容易であり、ハードウェアで実現することによりソフトウェアに負荷をかけることなく実現できる。ただし、頻繁にデータの書き込みが行われないメモリエリアではエラー検出精度が劣る。
図8は、本発明の第2の実施の形態に係わる制御装置の永久故障判定手段の処理内容のさらに他の一例を示すフローチャートである。この例の場合は、修正可能エラー検出手段15により修正可能エラーが検出されると(S31)、図6の処理と同様に、該当アドレスに修正されたデータを記憶する(S22)。その後の処理は、図7におけるステップS32以下の処理と同様である。
この図8の処理によれば、ハードウェアで実現することが容易であり、ハードウェアで実現することによりソフトウェアに負荷をかけることなく実現できる。
図9は本発明の第3の実施の形態に係わる制御装置の構成図である。この第3の実施の形態は、図5に示した第2の実施の形態に対し、系切替手段17を追加して設けたものである。図5に示した第2の実施の形態と同一要素には同一符号を付し重複する説明は省略する。
系切替手段17は、永久故障判定手段16により永久故障を検出した要素が多重化されており、かつその要素が常用系である場合には待機系に系切替するものである。
図10は本発明の第3の実施の形態に係わる制御装置の永久故障判定手段16及び系切替手段17の処理内容の一例を示すフローチャートである。修正可能エラー検出手段15により修正可能エラーが検出されると(S21)、該当アドレスに修正されたデータを記憶し(S22)、該当アドレスからデータを読み出す(S22)。このときに誤り訂正があったかどうか、つまり修正可能エラー検出があるかどうかを判定し(S24)、修正可能エラー検出があった場合は、該当するアドレスの永久故障として通知する(S25)。そして、永久故障を検出した要素が多重化されており、かつその要素が常用系であるか否かを判定し(S26)、そうであるときは待機系に系切替を行う(S27)。
図11は本発明の第3の実施の形態に係わる制御装置の永久故障判定手段16及び系切替手段17の処理内容の他の一例を示すフローチャートである。修正可能エラー検出手段15により修正可能エラーが検出されると(S31)、当該アドレスのデータは修正されたことがあるかどうかを判定し(S32)、修正されたことがない場合には修正アドレスを記憶する(S33)。修正されたことがある場合には永久故障通知を行う(S34)。そして、永久故障を検出した要素が多重化されており、かつその要素が常用系であるか否かを判定し(S35)、そうであるときは待機系に系切替を行う(S36)。
このように、系切替手段17は、永久故障を検出した要素が多重化されていて、かつ常用系の場合は系切替する。これにより、ECCメモリ12の永久故障が存在する系を保全することができ、永久故障が累積して予兆ないまま修正不可能となることを避けることができる。また、他系故障して1重で動作時は永久故障検出時は通知のみ行うため、システムを止めることなく稼働率を上げることができる。
この図11の処理では、図7の処理と同様に、修可能エラー検出時のメモリへのアクセス動作が比較的少ないため、ハードウェアで実現することが容易であり、ハードウェアで実現することによりソフトウェアに負荷をかけることなく実現できる。
図12は、本発明の第3の実施の形態に係わる制御装置の永久故障判定手段の処理内容のさらに他の一例を示すフローチャートである。この例では、修正可能エラー検出手段15により修正可能エラーが検出されると(S31)、図10の処理と同様に、該当アドレスに修正されたデータを記憶する(S22)。その後の処理は、図11におけるステップS32以下の処理と同様である。
この図12の処理によれば、ハードウェアで実現することが容易であり、ハードウェアで実現することによりソフトウェアに負荷をかけることなく実現できる。
図13は本発明の第4の実施の形態に係わる制御装置の構成図である。この第4の実施の形態は、図5に示した第2の実施の形態に対し、永久故障判定手段16に代えて、メモリ修正回数出力手段18を設けたものである。メモリ修正回数出力手段18は、ECCメモリ12のデータ読み出し時に誤り訂正があった場合に修正回数をカウントアップしカウント値を出力する。
図14は本発明の第4の実施の形態に係わる制御装置のメモリ修正回数出力手段18の処理内容の一例を示すフローチャートである。修正可能エラー検出手段15で修正可能エラーが検出されると(S41)、メモリ修正回数をカウンタでカウントアップする(S42)。そして、メモリ修正カウンタ通知を行う(S43)。このように、ECCメモリ12を用いた制御装置において、データ読み出し時に誤り訂正があった場合にカウンタでカウントアップし、カウンタ値を通知する。
ECCメモリ12で修正可能な永久故障が発生すると、当該箇所が読み出されるたびにカウンタがカウントアップするため、永久故障が発生した時点から、カウンタがカウントアップされる間隔は永久故障が発生する以前よりも短くなることが考えられるため、この機能により、ECCメモリ12の永久故障の存在を知ることができ、永久故障が累積して予兆ないまま修正不可能となることを避けることができる。
図15は本発明の第5の実施の形態に係わる制御装置の構成図である。この第5の実施の形態は、図5に示した第2の実施の形態に対し、永久故障判定手段16に代えて、ログ手段19を設けたものである。ログ手段19は、ECCメモリ12のデータ読み出し時に誤り訂正があった場合に訂正した旨を時系列でログをする。図16は本発明の第5の実施の形態に係わる制御装置のログ手段19の処理内容の一例を示すフローチャートである。修正可能エラー検出手段15で修正可能エラーが検出されると(S51)、ログ手段19は修正可能エラーをログする(S52)。
これにより、ECCメモリ12を用いた制御装置において、データ読み出し時に誤り訂正があった場合、訂正した旨を時系列でログをする。永久故障が発生すると、該当箇所が読み出されるたびにログされるため、永久故障が発生した時点から、ログされる間隔は永久故障が発生する以前よりも短くなることが考えられる。したがって、このログを定期的に回収することにより、ECCメモリ12の永久故障の存在を知ることができ、永久故障が累積して予兆ないまま修正不可能となることを避けることができる。