JP2011039667A5 - - Google Patents

Download PDF

Info

Publication number
JP2011039667A5
JP2011039667A5 JP2009184675A JP2009184675A JP2011039667A5 JP 2011039667 A5 JP2011039667 A5 JP 2011039667A5 JP 2009184675 A JP2009184675 A JP 2009184675A JP 2009184675 A JP2009184675 A JP 2009184675A JP 2011039667 A5 JP2011039667 A5 JP 2011039667A5
Authority
JP
Japan
Prior art keywords
failure diagnosis
diagnosis
area
storage device
main storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009184675A
Other languages
English (en)
Other versions
JP2011039667A (ja
Filing date
Publication date
Application filed filed Critical
Priority to JP2009184675A priority Critical patent/JP2011039667A/ja
Priority claimed from JP2009184675A external-priority patent/JP2011039667A/ja
Publication of JP2011039667A publication Critical patent/JP2011039667A/ja
Publication of JP2011039667A5 publication Critical patent/JP2011039667A5/ja
Withdrawn legal-status Critical Current

Links

Description

数値制御装置
本発明は、主記憶装置の故障診断を行う数値制御装置に関する。
電子制御機器などの数値制御装置(制御用マイコン)に使用される主記憶装置(メインメモリ)は、数値制御装置のCPU(Central Processing Unit)が主記憶装置の故障診断を行っている。CPUは、例えば、数値制御装置への電源投入時に、主記憶装置の故障診断としてECC(Error Check and Correct)やパリティ等のエラー検出・訂正を行う。このような故障診断では、電子機器などの制御対象機器の動作に影響を与えることなく短時間で主記憶装置を故障診断することが望まれる。
主記憶装置の故障診断方法として、主記憶装置のメモリ部を所定領域毎に分割し、領域毎に故障診断の要不要を予め指定しておく方法がある。この方法では、故障診断の必要な領域だけを故障診断することによって故障診断時間の短縮を図っている(例えば、特許文献1参照)。
また、主記憶装置の記憶領域を分割するとともに時間同期ジョブやタイマ割り込みを使用して、分割した領域を1領域ずつ周期的に故障診断し、主記装置の動作中の故障診断を実現する方法がある(例えば、特許文献2または特許文献3参照)。
特開2001−92724号公報(第7頁、第1図) 特開2000−66963号公報(第5−9頁、第1図〜第5図) 特開平4−542号公報(第5−7頁、第1図〜第6図)
しかしながら、上記第1の従来技術では、故障検出のために、ECCやパリティ等のエラー検出・訂正機能を持つ主記憶装置を使用していたので、全アドレスに対して冗長ビットが必要となり、このため主記憶装置が高価になるという問題があった。
また、上記第2または第3の従来技術のように、数値制御装置の主記憶装置を、主記憶装置の動作中にソフトウェアで故障検出する場合、主記憶装置の通常処理を行いながら主記憶装置は故障診断される。このため、診断領域は予め分割され、ジョブあるいは割り込みを使用して一定期間毎に主記憶装置上にある故障診断プログラムが起動される。そして、主記憶装置上にあるスタック領域、ヒープ領域、グローバル変数領域を使用して、全診断領域が複数回に分けて故障診断される。この場合、故障検出ソフトウェア、スタック領域、ヒープ領域、グローバル変数領域を主記憶装置内に配置しているので、これらの配置領域部分が故障した場合に故障検出ができないという問題があった。また、ジョブあるいは割り込みで故障診断プログラムを呼び出す場合のCPUの状態保存や診断完了後の状態復帰のオーバーヘッドが発生するという問題があった。そのうえ、故障診断処理中は、故障診断領域のメモリを使用できないので、他の割り込み処理を実行できず、割り込み応答速度が低下してしまうという問題があった。さらに、所定の時間が来れば必ず故障診断が実施される。このため、通常処理の負荷が最も重いタイミングと分割領域の故障診断の処理タイミングとが重なる場合があり、このような場合であっても通常処理および故障診断の処理時間が処理周期に収まることを保証する設計をしなければならない。したがって、数値制御装置のように処理周期の短いシステムでは、性能が低下してしまうという問題があった。
本発明は、上記に鑑みてなされたものであって、主記憶装置の何れのアドレスにメモリエラーがある場合であっても、メイン処理の性能を低下させることなく短時間で主記憶装置の故障診断を行う簡易な構成の数値制御装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、故障診断の対象となる領域として複数の故障診断領域を有した主記憶装置と、前記主記憶装置とは異なる領域であって、かつ故障診断を行う故障診断領域のデータを退避させおく故障診断時退避領域と、前記主記憶装置とは異なる領域であって、かつ前記主記憶装置の故障診断を行う際の割り込みスタックを格納しておく割り込みスタック領域と、前記故障診断領域の故障診断を行う故障診断部と、前記主記憶装置の故障診断を行う際に故障診断を行う故障診断領域のデータを前記退避領域にコピーして退避させる診断領域退避部と、前記主記憶装置の故障診断を行う際にスタック領域を前記主記憶装置から前記割り込みスタック領域に変更するとともに前記主記憶装置の故障診断を行う際のCPUの状態を保存する現在状態保存部と、前記故障診断部が前記主記憶装置の故障診断を行なった後に、前記退避領域に退避させておいた前記故障診断領域のデータを前記主記憶装置に戻す診断領域復元部と、前記故障診断部が前記主記憶装置の故障診断を行なった後に、前記割り込みスタック領域内のデータを用いて前記CPUの状態を復元するとともに、前記スタック領域を前記割り込みスタック領域から前記主記憶装置に戻す現在状態復元部と、を備えることを特徴とする。
本発明によれば、故障診断を行う故障診断領域のデータを退避領域に退避させて故障診断領域の故障診断を行うので、主記憶装置の何れのアドレスにメモリエラーがある場合であっても、簡易な構成でメイン処理の性能を低下させることなく短時間で主記憶装置の故障診断を行うことが可能になるという効果を奏する。
図1は、数値制御装置のハードウェア構成を示す図である。 図2は、主記憶装置の構成を示す図である。 図3は、実施の形態1に係るECCテンポラリメモリのメモリイメージを説明するための図である。 図4は、本発明の実施の形態1に係る数値制御装置の機能構成を示すブロック図である。 図5は、実施の形態1に係る数値制御装置の故障診断処理手順を示すフローチャートである。 図6は、実施の形態2に係る数値制御装置の故障診断処理手順を示すフローチャートである。 図7は、実施の形態3に係るECCテンポラリメモリのメモリイメージを説明するための図である。 図8は、実施の形態3に係る数値制御装置の故障診断処理手順を示すフローチャートである。
以下に、本発明の実施の形態に係る数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、数値制御装置のハードウェア構成を示す図である。図1では、数値制御装置10の故障診断機能に関するハードウェア構成を示している。数値制御装置10は、電子機器などを制御するコンピュータなどの装置(制御用マイクロコンピュータなど)である。数値制御装置10は、ECC機能やパリティ機能を備えていない主記憶装置5を有するとともに、領域分割した主記憶装置5の各分割領域(後述の故障診断領域)を、動作中に割り込みにて起動される故障診断プログラムによって故障診断(メモリ診断)する。本実施の形態の数値制御装置10は、故障診断時に故障診断領域のデータを主記憶装置5以外の領域に退避させる。
数値制御装置10は、CPU1、システムバス2、割り込み線3、割り込み発生器4、主記憶装置5、ECCテンポラリメモリ6Aを含んで構成されている。CPU1は、割り込み線3を介して割り込み発生器4に接続されるとともに、システムバス2を介して主記憶装置5、ECCテンポラリメモリ6Aに接続されている。
割り込み発生器4は、故障診断などを行うための割り込み要因を発生させて、割り込み要因をCPU1に送る。主記憶装置5は、領域サイズaでn分割(nは自然数)された故障診断対象のメモリである。ECCテンポラリメモリ6は、図示しない故障診断プログラムPr、割り込みスタック、故障診断用の変数、一時的に退避させる故障診断領域のデータなどを格納する小容量のメモリである。CPU1は、主記憶装置5やECCテンポラリメモリ6Aを制御する。
つぎに、主記憶装置5の構成とECCテンポラリメモリ6Aの構成について説明する。図2は、主記憶装置の構成を示す図である。主記憶装置5は、CPU1が直接アクセスすることのできる記憶装置であり、数値制御装置10内のデータやプログラムを記憶する。主記憶装置5は、領域サイズaでn分割されており、領域サイズaの故障診断領域X1〜Xnで構成されている。
図3は、実施の形態1に係るECCテンポラリメモリ6Aのメモリイメージを説明するための図である。ECCテンポラリメモリ6Aは、故障診断プログラムPrを格納する故障診断プログラム領域61、故障診断用のグローバル変数を格納する故障診断用グローバル変数領域62A、割り込みスタックを格納する割り込みスタック領域66、故障診断時に故障の診断対象領域(故障診断領域X1〜Xnの何れか)を退避させる領域サイズaの故障診断時退避領域67を有している。
故障診断用グローバル変数領域62Aには、故障診断用のグローバル変数として、診断領域サイズP、領域分割数Q、カウンタ値Rが格納される。診断領域サイズPは、故障診断領域X1〜Xnの領域サイズaを格納し、領域分割数Qは、主記憶装置5の分割数nを格納する。カウンタ値Rは、故障診断の済んだ故障診断領域の数(カウント値)を格納する。
数値制御装置10のCPU1は、図示しないROM(Read Only Memory)内に格納されている故障診断プログラムPrを読み出してECCテンポラリメモリ6A内の故障診断プログラム領域61に展開して故障診断に関する各種処理を実行する。この故障診断処理に際して生じる各種データは、ECCテンポラリメモリ6A内の故障診断用グローバル変数領域62Aなどに一時的に格納され、故障診断領域X1〜Xnの故障診断が行われる。
図4は、本発明の実施の形態1に係る数値制御装置の機能構成を示すブロック図である。数値制御装置10は、割り込み発生器4、主記憶装置5、ECCテンポラリメモリ6Aに加えて、制御部11、現在状態保存部12、故障診断用グローバル変数リード部13、診断領域算出部14、診断領域退避部15、故障診断部16、診断領域復元部17、カウンタ値更新部18、現在状態復元部19を有している。
現在状態保存部12は、割り込み発生器4がCPU1に対して割り込みを発生させた場合に、割り込みをロックするとともに、スタック領域を主記憶装置5からECCテンポラリメモリ6上にある割り込みスタック領域66に変更し、現在のCPU状態(CPU1の状態)を保存する。現在状態保存部12は、CPU1が備えている機能である。
故障診断用グローバル変数リード部13は、ECCテンポラリメモリ6上にある故障診断用グローバル変数領域62Aの診断領域サイズPと領域分割数Qとカウンタ値Rとをリードする。
診断領域算出部14は、故障診断用グローバル変数リード部13がリードした診断領域サイズP、領域分割数Q、カウンタ値Rに基づいて、主記憶装置5上にある故障診断領域を算出する。診断領域算出部14は、故障診断領域X1〜Xnの中から診断領域サイズP、領域分割数Q、カウンタ値Rに応じた故障診断領域(診断対象となる故障診断領域)を算出する。
診断領域退避部15は、診断領域算出部14が算出した故障診断領域内のデータ(診断領域の内容)をECCテンポラリメモリ6上にある故障診断時退避領域67にコピーする。故障診断部16は、診断領域算出部14が算出した故障診断領域の故障診断を実施する。
診断領域復元部17は、故障診断部16による故障診断処理がエラーでない場合に、ECCテンポラリメモリ6上にある故障診断時退避領域67に退避させておいデータを主記憶装置5上にある故障診断領域にコピーして戻す。換言すると、診断領域復元部17は、故障診断時退避領域67に退避させておいデータを、コピー元の故障診断領域に復元する。例えば、診断領域復元部17は、故障診断領域Xm(mは1〜nの自然数)のデータを故障診断時退避領域67に退避させていた場合、この退避させておいデータをコピーして故障診断領域Xmに復元する。
カウンタ値更新部18は、故障診断時退避領域67に退避させておいデータを、診断領域復元部17がコピー元の故障診断領域に復元した後、ECCテンポラリメモリ6上にある故障診断用グローバル変数領域62のカウンタ値Rを更新する。
現在状態復元部19は、スタック領域を割り込みスタック領域66から主記憶装置5に戻すことによって、故障診断前の状態(現在状態保存部12が保存したCPU状態)を復元する。現在状態復元部19は、スタック領域を故障診断前の状態に戻した後、割り込みのロックを解除する。現在状態復元部19は、CPU1が備えている機能である。
制御部11は、割り込み発生器4、主記憶装置5、ECCテンポラリメモリ6A、現在状態保存部12、故障診断用グローバル変数リード部13、診断領域算出部14、診断領域退避部15、故障診断部16、診断領域復元部17、カウンタ値更新部18、現在状態復元部19を制御する。
本実施の形態の数値制御装置10で実行される故障診断プログラムPrは、前述の制御部11、現在状態保存部12、故障診断用グローバル変数リード部13、診断領域算出部14、診断領域退避部15、故障診断部16、診断領域復元部17、カウンタ値更新部18を含むモジュール構成となっている。そして、上記各部がECCテンポラリメモリ6A上にロードされ、制御部11、現在状態保存部12、故障診断用グローバル変数リード部13、診断領域算出部14、診断領域退避部15、故障診断部16、診断領域復元部17、カウンタ値更新部18がECCテンポラリメモリ6Aの故障診断プログラム領域61上に生成されるようになっている。
つぎに、実施の形態1に係る数値制御装置10の故障診断処理手順について説明する。図5は、実施の形態1に係る数値制御装置の故障診断処理手順を示すフローチャートである。図5では、故障診断プログラムPrによる故障診断処理手順を示している。
数値制御装置10では、主記憶装置5の故障診断を開始する際に、割り込み発生器4が割り込み要因を発生させ、CPU1に対して割り込みを発生させる。これにより、CPU1(現在状態保存部12)は割り込みをロック(禁止)するとともに、スタック領域を主記憶装置5からECCテンポラリメモリ6上にある割り込みスタック領域66に変更し、現在のCPU状態を保存する。そして、CPU1は、故障診断プログラム領域61内に格納されている故障診断プログラムPrを実行する。
具体的には、故障診断用グローバル変数リード部13は、ECCテンポラリメモリ6上にある故障診断用グローバル変数領域62Aの診断領域サイズPと領域分割数Qとカウンタ値Rとをリードする(ステップS1)。
そして、診断領域算出部14は、故障診断用グローバル変数リード部13がリードした診断領域サイズP、領域分割数Q、カウンタ値Rに基づいて、主記憶装置5上にある故障診断領域を算出する。このとき、診断領域算出部14は、故障診断領域X1〜Xnの中から診断領域サイズP、領域分割数Q、カウンタ値Rに応じた故障診断領域を算出する(ステップS2)。
この後、診断領域退避部15は、診断領域算出部14が算出した故障診断領域内のデータをECCテンポラリメモリ6上にある故障診断時退避領域67にコピーする(ステップS3)。そして、故障診断部16は、診断領域算出部14が算出した故障診断領域の故障診断を実施する(ステップS4)。
故障診断部16による故障診断処理がエラーであった場合(ステップS5、Yes)、CPU1は、故障診断をエラー終了する。一方、故障診断部16による故障診断処理がエラーでなかった場合(ステップS5、No)、診断領域復元部17は、ECCテンポラリメモリ6上にある故障診断時退避領域67に退避させておいデータを主記憶装置5上にある故障診断領域にコピーして戻す(ステップS6)。
この後、カウンタ値更新部18は、ECCテンポラリメモリ6上にある故障診断用グローバル変数領域62Aのカウンタ値Rを更新する(ステップS7)。具体的には、カウンタ値更新部18は、カウンタ値Rの値に1を加える。
CPU1(現在状態復元部19)は、スタック領域を割り込みスタック領域66から主記憶装置5に戻すことによって、故障診断前のCPU状態を復元する。現在状態復元部19は、スタック領域を故障診断前の状態に戻した後、割り込みのロックを解除し、故障診断を正常終了する。
これにより、数値制御装置10は、割り込み要因発生毎に、故障診断プログラムPrと、割り込みスタック領域66と、故障診断用グローバル変数領域62Aと、故障診断時退避領域67を用いて主記憶装置5の一部分の故障診断を行う。
このような数値制御装置10では、領域サイズa×領域数nのサイズを持った主記憶装置5を、割り込み発生器4からの割り込み出力間隔×領域数nの時間で、数値制御装置10の動作中に検査(故障診断)することができる。さらに、ECCテンポラリメモリ6上の故障診断プログラムPrを実行し、ECCテンポラリメモリ6上の故障診断用グローバル変数領域62Aと割り込みスタック領域66と故障診断時退避領域67を用いて故障診断を行うので、主記憶装置5の何れのアドレスにメモリエラーがある場合であってもメモリエラーを検出することが可能になるとともに、メイン処理の性能を低下させることなく動作中の数値制御装置10で主記憶装置5の故障診断を行うことが可能になる。なお、数値制御装置10は、割り込み要因発生毎に、複数の故障診断領域を故障診断してもよい。
このように実施の形態1によれば、主記憶装置5の何れのアドレスにメモリエラーがある場合であっても、メイン処理の性能を低下させることなく短時間で主記憶装置5の故障診断を行うことが可能となる。また、ECCテンポラリメモリ6を用いて故障診断を行うので簡易な構成で故障診断を行うことが可能となる。また、故障診断の割り込みオーバーヘッドの影響がないよう、かつ割り込み応答速度を低下させずにメイン処理の性能を低下させることなく主記憶装置5の故障診断を行うことができる。
実施の形態2.
つぎに、図6を用いてこの発明の実施の形態2について説明する。実施の形態2では、割り込み発生器4が故障診断用の割り込みと故障診断以外の割り込みの両方を発生させる。別言すれば、割り込み発生器4を必ずしも故障診断専用の目的で設置する必要はなく、割り込み発生器4が発生させる割り込みを他の割り込みと共有して用いてもよい。なお、実施の形態2の数値制御装置10は、実施の形態1の数値制御装置10と同様のハードウェア構成を有しているのでその説明は省略する。
図6は、実施の形態2に係る数値制御装置の故障診断処理手順を示すフローチャートである。図6では、主記憶装置5の故障診断を行う際のCPU1の割り込み処理呼び出しルーチンを示している。図6に示す処理のうち、実施の形態1に係る数値制御装置10が行う処理と同様の処理についてはその説明を省略する。
割り込み発生器4が割り込み要因を発生させると、CPU1は図6のフローチャートに示す処理を実行する。具体的には、CPU1(現在状態保存部12)は割り込みをロックするとともに(ステップS11)、スタック領域を主記憶装置5からECCテンポラリメモリ6A上にある割り込みスタック領域66に変更する(ステップS12)。そして、CPU1は、自身の現在の状態(CPU状態)を割り込みスタック領域66に保存し(ステップS13)、割り込み処理に関する繰り返し処理に入る。
割り込み処理に関する繰り返し処理では、CPU1が割り込み要因をチェックする(ステップS14)。CPU1は、割り込み要因がなければ(ステップS15、Yes)、繰り返し処理から抜け出す。一方、CPU1は、割り込み要因があれば(ステップS15、No)、割り込み要因に対応する割り込み処理を行なう(ステップS16)。この後、CPU1は、割り込み処理に対応する割り込み要因をクリアして(ステップS17)、割り込み処理に関する繰り返し処理の先頭に戻る。
CPU1は、割り込み要因が無くなるまでステップS14〜S17の処理を繰り返す。割り込み要因が無くなることによって繰り返し処理から抜け出した後、CPU1はECCテンポラリメモリ6Aに格納された主記憶装置5に対する故障診断プログラムPrを実行する(ステップS18)。数値制御装置10では、実施の形態1の図5で説明した処理手順によって主記憶装置5の故障診断を行う。
そして、CPU1(現在状態復元部19)は、スタック領域をスタック領域66から主記憶装置5に戻すことによって、故障診断前のCPU状態を復元する(ステップS19)。現在状態復元部19は、スタック領域を割り込みスタック領域66から主記憶装置5に戻すことによって、故障診断前のCPU状態を復元する(ステップS20)。さらに、CPU1は、割り込みのロックを解除(割り込みを許可)して(ステップS21)、割り込み処理を終了する。
このような数値制御装置10では、割り込み発生器4が生成する割り込みを、故障診断を行うための割り込みと、故障診断以外の他の割り込みとの両方に用いることが可能となる。また、故障診断プログラムPrは、他の割り込み処理、CPU状態の保存処理(ステップS11〜S13)およびCPU状態の復元処理(ステップS19〜S21)を行いながら、故障診断を実行(処理共有)できるので、実行中の数値制御装置10でオーバーヘッドなく主記憶装置5の故障診断を実行することができる。また、割り込み処理の最後に故障診断プログラムPrを実行するので、他の割り込みへの応答速度は故障診断処理を行わない場合と比較して何ら遜色ない。
このように実施の形態2によれば、故障診断以外の他の割り込み処理を実行した後に故障診断の割り込みを行うので、他の割り込み処理を迅速に実行しつつメイン処理の性能を低下させることなく故障診断を行うことが可能となる。
実施の形態3.
つぎに、図7および図8を用いてこの発明の実施の形態3について説明する。実施の形態3では、メイン処理の負荷状況に応じたタイミングでメイン処理の負荷状況に応じた数の故障診断領域を故障診断する。実施の形態3の数値制御装置10は、実施の形態1の数値制御装置10と比較して、ECCテンポラリメモリ6Aの代わりにECCテンポラリメモリ6Bを有している。なお、実施の形態3の数値制御装置10は、ECCテンポラリメモリ6B以外は実施の形態1の数値制御装置10と同様のハードウェア構成を有しており、重複する機能構成についてはその説明は省略する。
図7は、実施の形態3に係るECCテンポラリメモリのメモリイメージを説明するための図である。なお、図7に示すECCテンポラリメモリ6Bのうち、図3に示したECCテンポラリメモリ6Aと同様の構成を有する領域については重複する説明を省略する。
ECCテンポラリメモリ6Bは、故障診断プログラム領域61、故障診断用グローバル変数領域62B、割り込みスタック領域66、領域サイズaの故障診断時退避領域67を有している。そして、故障診断用グローバル変数領域62Bには、故障診断用のグローバル変数として、診断領域サイズP、領域分割数Q、カウンタ値Rとともに、実行プライオリティW、初回故障診断実施時刻X、現在時刻Y、タイムアウト時間Zが格納される。診断領域サイズP、領域分割数Q、カウンタ値R、実行プライオリティW、初回故障診断実施時刻X、現在時刻Y、タイムアウト時間Zは、故障診断プログラムPrが用いる故障診断用のグローバル変数である。
実行プライオリティWは、故障診断領域毎の故障診断の優先順位を示す情報であり、故障診断領域X1〜Xnに対応付けられている。初回故障診断実施時刻Xは、最初の故障診断実施時刻である。現在時刻Yは、現在の時刻である。タイムアウト時間Zは、全領域の診断処理を完了するまでに許される時間である。タイムアウト時間Zを過ぎた場合に故障診断はエラー終了する。現在時刻Y、タイムアウト時間Zは、OS(Operating System)のTICK割り込みで更新され、故障診断プログラムPrで参照される。
つぎに、実施の形態3に係る数値制御装置10の故障診断処理手順について説明する。図8は、実施の形態3に係る数値制御装置の故障診断処理手順を示すフローチャートである。図8では、故障診断プログラムPrによる故障診断処理手順を示している。図8に示す処理のうち、実施の形態1,2に係る数値制御装置10が行う処理と同様の処理についてはその説明を省略する。
割り込み発生器4が割り込み要因を発生させると、CPU1は割り込みをロックするとともに、スタック領域を主記憶装置5からECCテンポラリメモリ6上にある割り込みスタック領域66に変更する。そして、CPU1は、故障診断プログラム領域61内に格納されている故障診断プログラムPrを実行する。
具体的には、故障診断用グローバル変数リード部13は、ECCテンポラリメモリ6上にある故障診断用グローバル変数領域62Bから、現在時刻Y、初回故障診断実施時刻X、タイムアウト時間Zをリードする(ステップS31)。
CPU1は、現在時刻Yと初回故障診断実施時刻Xを用いて、最初の故障診断を開始してからの経過時間を算出する。タイムアウト時間Zが経過したが全領域の変数診断処理が終わっていない場合(ステップS32、Yes)、CPU1は、故障診断をエラー終了する。タイムアウト時間Zが経過していなければ(ステップS32、No)、故障診断用グローバル変数リード部13は、故障診断用グローバル変数領域62Bから診断領域サイズP、領域分割数Q、カウンタ値R、実行プライオリティWをリードする(ステップS33)。
診断領域算出部14は、最初の故障診断を開始してからの経過時間と、残りの診断領域数と、実行プライオリティWと、を用いて診断領域ブロック位置(診断対象のブロック位置)と診断領域ブロック数(故障診断領域の数)を算出する(ステップS34)。このとき、診断領域算出部14は、最初の故障診断を開始してからの経過時間と、残りの故障診断領域数と、に基づいて、メイン処理の負荷状況を考慮した診断領域ブロック数(診断領域サイズ)を決定する。
例えば、残りの故障診断領域数に対して経過時間が長い場合(タイムアウト時間Zまでの残り時間が短い場合)は、メイン処理の負荷が大きな場合であり、診断領域算出部14は、診断領域ブロック数を少なく設定する。一方、残りの故障診断領域数に対して経過時間が短い場合は、メイン処理の負荷が小さい場合であり、診断領域算出部14は、診断領域ブロック数を多く設定する。なお、残りの診断領域数に対して経過時間が所定時間よりも少ない場合は、診断領域ブロック数を0に設定して、故障診断を行わなくてもよい。これにより、診断領域算出部14は、メイン処理の負荷が軽い時を利用して故障診断を実施する。このように、本実施の形態の診断領域算出部14は、メイン処理の負荷状況に応じて、診断領域ブロック数を動的に決定する。これにより、数値制御装置10は、主記憶装置5の一部分の故障診断を行なう。
また、診断領域算出部14は、実行プライオリティWに基づいて、故障診断領域ブロック位置を決定する。具体的には、診断領域算出部14は、故障診断領域X1〜Xnの中から故障診断の完了していない故障診断領域であって、かつ実行プライオリティWの一番高い故障診断領域を故障診断領域ブロック位置に決定する。そして、診断領域算出部14は、算出した診断領域ブロック位置の先頭領域を診断ターゲット(故障診断領域)に設定し(ステップS35)、繰り返し処理に入る。
繰り返し処理では、診断領域退避部15が、故障診断領域内のデータをECCテンポラリメモリ6上にある故障診断時退避領域67にコピーし(ステップS36)、故障診断部16が、故障診断領域の故障診断を実施する(ステップS37)。
故障診断部16による故障診断処理がエラーであった場合(ステップS38、Yes)、CPU1は、故障診断をエラー終了する。一方、故障診断部16による故障診断処理がエラーでなかった場合(ステップS38、No)、診断領域復元部17は、ECCテンポラリメモリ6上にある故障診断時退避領域67に退避させておいてデータを主記憶装置5上にある故障診断領域にコピーして戻す(ステップS39)。そして、CPU1は、診断領域ブロック数の故障診断処理を終了したか否かを確認する(ステップS40)。
診断領域ブロック数の故障診断処理を終了していなければ(ステップS40、No)、診断領域算出部14は、故障診断処理を行った次の領域を診断ターゲットに設定し(ステップS41)、繰り返し処理の先頭に戻る。CPU1は、割り込み要因が無くなるまでステップS36〜S41の処理を繰り返す。
CPU1は、診断領域ブロック数の故障診断処理を終了していれば(ステップS40、Yes)、繰り返し処理から抜け出す。診断領域ブロック数の故障診断処理を終了することによって繰り返し処理から抜け出した後、カウンタ値更新部18は、故障診断用グローバル変数領域62のカウンタ値Rを更新する(ステップS42)。
故障診断が最初の領域の故障診断であった場合、故障診断用グローバル変数領域62Bの初回故障診断実施時刻Xを更新する(ステップS43)。CPU1は、スタック領域を割り込みスタック領域66から主記憶装置5に戻すことによって、故障診断前のCPU状態を復元する。現在状態復元部19は、スタック領域を故障診断前の状態に戻した後、割り込みのロックを解除し、故障診断を正常終了する。
このような数値制御装置10では、故障診断プログラムPr側でメイン処理の負荷状況を考慮しながら診断速度(診断領域ブロック数)を変更できるようになるので、メイン処理の負荷が軽い時を利用して故障診断を実施することができ、メイン処理の性能を下げずに主記憶装置5の故障診断を行うことができる。
このように実施の形態3によれば、最初の故障診断を開始してからの経過時間と、残りの診断領域数と、実行プライオリティWと、を用いて診断領域ブロック位置と診断領域ブロック数を算出するので、メイン処理の負荷状況に応じたタイミングでメイン処理の負荷状況に応じたサイズの故障診断領域を故障診断することが可能となる。
以上のように、本発明に係る数値制御装置は、主記憶装置の故障診断に適している。
1 CPU
2 システムバス
3 割り込み線
4 割り込み発生器
5 主記憶装置
6A,6B ECCテンポラリメモリ
10 数値制御装置
11 制御部
12 現在状態保存部
13 故障診断用グローバル変数リード部
14 診断領域算出部
15 診断領域退避部
16 故障診断部
17 診断領域復元部
18 カウンタ値更新部
19 現在状態復元部
61 故障診断プログラム領域
62A,62B 故障診断用グローバル変数領域
66 割り込みスタック領域
67 故障診断時退避領域
P 診断領域サイズ
Q 領域分割数
R カウンタ値
W 実行プライオリティ
X1〜Xn 故障診断領域
X 初回故障診断実施時刻
Y 現在時刻
Z タイムアウト時間

Claims (5)

  1. 故障診断の対象となる領域として複数の故障診断領域を有した主記憶装置と、
    前記主記憶装置とは異なる領域であって、かつ故障診断を行う故障診断領域のデータを退避させおく故障診断時退避領域と、
    前記主記憶装置とは異なる領域であって、かつ前記主記憶装置の故障診断を行う際の割り込みスタックを格納しておく割り込みスタック領域と、
    前記故障診断領域の故障診断を行う故障診断部と、
    前記主記憶装置の故障診断を行う際に故障診断を行う故障診断領域のデータを前記退避領域にコピーして退避させる診断領域退避部と、
    前記主記憶装置の故障診断を行う際にスタック領域を前記主記憶装置から前記割り込みスタック領域に変更するとともに前記主記憶装置の故障診断を行う際のCPUの状態を保存する現在状態保存部と、
    前記故障診断部が前記主記憶装置の故障診断を行なった後に、前記退避領域に退避させておいた前記故障診断領域のデータを前記主記憶装置に戻す診断領域復元部と、
    前記故障診断部が前記主記憶装置の故障診断を行なった後に、前記割り込みスタック領域内のデータを用いて前記CPUの状態を復元するとともに、前記スタック領域を前記割り込みスタック領域から前記主記憶装置に戻す現在状態復元部と、
    を備えることを特徴とする数値制御装置。
  2. 前記故障診断部は、前記CPUへの割り込み要因が発生した際に、前記故障診断領域の故障診断を行うことを特徴とする請求項1に記載の数値制御装置。
  3. 前記故障診断部は、前記CPU以外への割り込み処理が実行された後に、前記故障診断領域の故障診断を行うことを特徴とする請求項1に記載の数値制御装置。
  4. 前記故障診断部は、前記CPUによるメイン処理の負荷状況に応じて前記故障診断領域の数を決定し、決定した前記故障診断領域の数だけ前記故障診断領域の故障診断を行うことを特徴とする請求項1に記載の数値制御装置。
  5. 前記各故障診断領域には、故障診断の優先順位が設定され、
    前記故障診断部は、故障診断の完了していない故障診断領域の中から優先順位が一番高い故障診断領域を先頭の故障診断領域に設定して、前記故障診断領域の故障診断を行うことを特徴とする請求項4に記載の数値制御装置。
JP2009184675A 2009-08-07 2009-08-07 数値制御装置 Withdrawn JP2011039667A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009184675A JP2011039667A (ja) 2009-08-07 2009-08-07 数値制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009184675A JP2011039667A (ja) 2009-08-07 2009-08-07 数値制御装置

Publications (2)

Publication Number Publication Date
JP2011039667A JP2011039667A (ja) 2011-02-24
JP2011039667A5 true JP2011039667A5 (ja) 2012-04-19

Family

ID=43767392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009184675A Withdrawn JP2011039667A (ja) 2009-08-07 2009-08-07 数値制御装置

Country Status (1)

Country Link
JP (1) JP2011039667A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6217086B2 (ja) * 2013-01-28 2017-10-25 日本電気株式会社 情報処理装置、エラー検出機能診断方法およびコンピュータプログラム
JP6888251B2 (ja) * 2016-07-15 2021-06-16 富士電機株式会社 制御装置、駆動装置、制御方法、及び制御プログラム
JP7151637B2 (ja) * 2019-06-20 2022-10-12 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム

Similar Documents

Publication Publication Date Title
KR101110490B1 (ko) 정보 처리 장치, 프로세서 및 메모리 관리 방법
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
JPH0820965B2 (ja) プログラムの実行を続行する方法
JP5183542B2 (ja) 計算機システム及び設定管理方法
JP2011039667A5 (ja)
JP6658417B2 (ja) 電子制御装置
JP2011039667A (ja) 数値制御装置
JP6218652B2 (ja) 計算機、障害処理方法及びプログラム
US20130055017A1 (en) Device and method for restoring information in a main storage unit
JP4864056B2 (ja) 制御装置
JP2008003940A (ja) 保護制御装置、保護制御方法及び保護制御プログラム
JPH03259349A (ja) 障害処理方式
JP5978873B2 (ja) 電子制御装置
JP6726136B2 (ja) データアクセス装置及びアクセスエラーの通知方法
JP2020030507A (ja) マルチコア制御装置
JP2007047426A (ja) 映像表示装置及び表示用制御回路
JP2009520290A (ja) 耐故障性があるプロセッサシステム
JP4983806B2 (ja) 二重化タイマを用いたシステム監視装置、および監視方法
JP5645262B2 (ja) 情報処理装置
JP7091853B2 (ja) 電子制御装置
JPH03136153A (ja) マイクロコントローラ
JP2008217665A (ja) マルチプロセッサシステム、タスクスケジューリング方法およびタスクスケジューリングプログラム
JP2017021509A (ja) 記憶装置およびその制御方法
JP5757276B2 (ja) 無停止演算処理装置、無停止演算処理システム、無停止演算処理方法、及び、無停止演算処理プログラム
JP2009301479A (ja) マイクロコンピュータ