(57)【要約】【課題】同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復すること。【解決手段】ＣＰＵ１は、全ての領域Ｒ０〜ＲＮの同一オフセットアドレスのワードデータを１ワード分だけフラッシュＲＯＭ６から読み出し、ワードデータが同じならば次の１ワード分のワードデータを読み出し、ワードデータが１個でも異なるならば、全ての領域Ｒ０〜ＲＮのワードデータをマージすることでワードデータを再構築する。【選択図】        図１
2012059035.tif 000002
【特許請求の範囲】
【請求項１】
同一のブートプログラムが複数の領域に記憶された記憶部と、
同一のブートプログラムが記憶された全ての領域に破壊された部分が存在する場合、全ての領域のデータをマージすることで前記データを再構築するＣＰＵとを備えることを特徴とするデータ修復装置。
【請求項２】
前記ＣＰＵは、同一のブートプログラムが記憶された全ての領域に破壊された部分が存在する場合、全ての領域の同一オフセットアドレスのワードデータの比較結果に基づいて、前記ワードデータを再構築することを特徴とする請求項１に記載のデータ修復装置。
【請求項３】
前記ＣＰＵは、全ての領域の同一オフセットアドレスのワードデータを１ワード分だけ前記記憶部から読み出し、前記ワードデータが同じならば次の１ワード分のワードデータを読み出し、前記ワードデータが１個でも異なるならば、全ての領域のワードデータをマージすることで前記ワードデータを再構築することを特徴とする請求項２に記載のデータ修復装置。
【請求項４】
前記ＣＰＵは、全ての領域の同一オフセットアドレスのワードデータを１ワード分だけ前記記憶部から読み出した時に前記ワードデータが１個でも異なるならば、最も出現頻度の高いワードデータを前記オフセットアドレスのワードデータとして採用することを特徴とする請求項３に記載のデータ修復装置。
【請求項５】
前記ＣＰＵは、全ての領域の同一オフセットアドレスのワードデータを１ワード分だけ前記記憶部から読み出した時に前記ワードデータの同一ビットの０の数と、１の数をカウントし、多い方の値を前記ワードデータのビットデータとして採用することを特徴とする請求項３に記載のデータ修復装置。
【請求項６】
前記ＣＰＵは、全ての領域の全てのデータを再構築した後、前記再構築結果に破壊がないかどうかを確認し、破壊がない場合には、前記再構築したデータを前記記憶部に書き込むことを特徴とする請求項１から５のいずれか１項に記載のデータ修復装置。
【請求項７】
前記ブートプログラムの破壊がないことが一定期間内に確認できない場合、前記ＣＰＵをリセットするパルス信号を生成するインターバルタイマとを備えることを特徴とする請求項１から６のいずれか１項に記載のデータ修復装置。
【請求項８】
前記ＣＰＵは、前記ブートプログラムの破壊がないことが確認できた場合、前記インターバルタイマを停止させることを特徴とする請求項７に記載のデータ修復装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ修復装置に関し、特に、フラッシュＲＯＭをブートデバイスとして使用した数値制御装置のフラッシュＲＯＭの修復方法に関する。
【背景技術】
【０００２】
従来の数値制御装置においては、ブートデバイスの内容が破壊された場合、ブートデバイスを外部記憶装置に切り替え、その外部記憶装置からブートを行い、ブート用フラッシュＲＯＭを上書きして修理していた。
【０００３】
また、特許文献１には、ＣＰＵは不揮発性メモリへのデータ書き込み時は、ブロックの相対的に等しいアドレスに同一データを書き込み、不揮発性メモリの読み出し時にはブロックの相対的に等しいアドレスのデータを読み出し、３つのデータを比較して記憶されているデータの判定を行う技術が開示されている。
【０００４】
また、特許文献２には、三つのエリアに記憶されているデータが全て一致しないと判断された時は、どのエリアのデータが他の二つのエリアのデータと不一致なのか判断し、その判断結果に基づいて不一致エリアのデータを他の二つの正常なエリアのデータに基づいて修復する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６２−３４２６０号公報
【特許文献２】特開２００２−５５８８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の技術によれば、ブートデバイスを外部記憶装置に切り替え、その外部記憶装置からブートを行う方法では、手間がかかるという問題があった。
【０００７】
さらに、数値制御装置に必要とされるフラッシュＲＯＭの容量の増加に伴って、数値制御装置一台当たりに必要なフラッシュＲＯＭの個数が増加し、データ破壊を起こす数値制御装置の台数も多くなってきている。
【０００８】
また、特許文献１、２に開示された方法では、同一のデータが書き込まれた全ての領域に破壊された部分が存在すると、破壊されたデータを修復することができないという問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復することが可能なデータ修復装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明のデータ修復装置は、同一のブートプログラムが複数の領域に記憶された記憶部と、同一のブートプログラムが記憶された全ての領域に破壊された部分が存在する場合、全ての領域のデータをマージすることで前記データを再構築するＣＰＵとを備えることを特徴とする。
【発明の効果】
【００１１】
この発明によれば、同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復することが可能という効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明に係るデータ修復装置の実施の形態１の概略構成を示すブロック図である。
【図２】図２は、図１のＣＰＵ１の動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本発明に係るデータ修復装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
図１は、本発明に係るデータ修復装置の実施の形態１の概略構成を示すブロック図である。図１において、データ修復装置には、同一のブートプログラムが複数の領域Ｒ０〜ＲＮ（Ｎは２以上の整数）に記憶されたフラッシュＲＯＭ６、同一のブートプログラムが記憶された全ての領域Ｒ０〜ＲＮに破壊された部分が存在する場合、全ての領域Ｒ０〜ＲＮのデータをマージすることでデータを再構築するＣＰＵ１、ブートプログラムの破壊がないことが一定期間内に確認できない場合、ＣＰＵ１をリセットするパルス信号１０を生成するインターバルタイマ７が設けられている。なお、ＣＰＵ１は、バス２を介してフラッシュＲＯＭ６に接続されている。
【００１５】
なお、同一のブートプログラムが複数記憶する記憶部としては、フラッシュＲＯＭ６の他にＥＥＰＲＯＭなどの不揮発性半導体メモリを用いるようにしてもよいし、書き換えが不可能な読み出し専用のＲＯＭを用いるようにしてもよい。これらのブートプログラムには、セルフチェック機能を設けることができる。
【００１６】
そして、電源が投入されると、インターバルタイマ７が起動される。また、ＣＰＵ１は、バス２を介して領域Ｒ０を指定するアドレスをフラッシュＲＯＭ６に出力する。
【００１７】
そして、領域Ｒ０を指定するアドレスがフラッシュＲＯＭ６に出力されると、ブートプログラムが領域Ｒ０からバス２を介してＣＰＵ１に読み出され、そのブートプログラムの破壊の有無がチェックされる。
【００１８】
そして、領域Ｒ０から読み出されたブートプログラムに破壊された部分がない場合、ＣＰＵ１はタイマ停止信号９を出力し、インターバルタイマ７を停止させる。そして、ＣＰＵ１は、ブートプログラムの残りの部分を実行する。
【００１９】
一方、領域Ｒ０から読み出されたブートプログラムに破壊された部分がある場合、インターバルタイマ７の動作が継続される。そして、ＣＰＵ１は、バス２を介して領域Ｒ１を指定するアドレスをフラッシュＲＯＭ６に出力する。
【００２０】
そして、領域Ｒ１を指定するアドレスがフラッシュＲＯＭ６に出力されると、ブートプログラムが領域Ｒ１からバス２を介してＣＰＵ１に読み出され、そのブートプログラムの破壊の有無がチェックされる。
【００２１】
そして、領域Ｒ１から読み出されたブートプログラムに破壊された部分がない場合、ＣＰＵ１はタイマ停止信号９を出力し、インターバルタイマ７を停止させる。そして、ＣＰＵ１は、ブートプログラムの残りの部分を実行する。
【００２２】
一方、領域Ｒ１から読み出されたブートプログラムに破壊された部分がある場合、インターバルタイマ７の動作が継続される。以後、ＣＰＵ１は、今回指定した領域Ｒ０〜ＲＮから読み出したブートプログラムに破壊された部分がある場合、その次の領域Ｒ０〜ＲＮからブートプログラムを読み出し、そのブートプログラムに破壊された部分がない場合には、タイマ停止信号９を出力し、インターバルタイマ７を停止させる。そして、ＣＰＵ１は、そのブートプログラムの残りの部分を実行する。
【００２３】
一方、全ての領域Ｒ０〜ＲＮのブートプログラムに破壊された部分がある場合、ＣＰＵ１は、全ての領域Ｒ０〜ＲＮの同一オフセットアドレスのワードデータの比較結果に基づいて、ワードデータを再構築する。
【００２４】
例えば、ＣＰＵ１は、全ての領域Ｒ０〜ＲＮの同一オフセットアドレスのワードデータを１ワード分だけフラッシュＲＯＭ６から読み出し、ワードデータが同じならば次の１ワード分のワードデータを読み出し、ワードデータが１個でも異なるならば、全ての領域Ｒ０〜ＲＮのワードデータをマージすることでワードデータを再構築することができる。
【００２５】
すなわち、各領域Ｒ０〜ＲＮには、オフセットアドレスＰ０〜ＰＭが付されているものとすると、例えば、全ての領域Ｒ０〜ＲＮのオフセットアドレスＰ１のワードデータを１ワード分だけフラッシュＲＯＭ６から読み出し、これらのワードデータを比較することでオフセットアドレスＰ１のワードデータを再構築することができる。他のオフセットアドレスＰ０、Ｐ２〜ＰＭのワードデータについても同様である。
【００２６】
図２は、図１のＣＰＵ１の動作を示すフローチャートである。図２において、ＣＰＵ１は起動後、バス２を介してフラッシュＲＯＭ６の領域Ｒ０〜ＲＮに書き込まれたブートプログラムをリードして実行する。
【００２７】
ブートプログラムが起動されると、ＣＰＵ１は、Ｓ１０１にて操作対象を領域Ｒ０にセットして、Ｓ１０２にて操作対象の領域の破壊があるかどうか調査を行い、Ｓ１０３にて破壊がなければ、Ｓ１０４にてタイマ停止信号９を出力することでインターバルタイマ７を停止して、Ｓ１０５にてその領域の残りの部分を実行し、Ｓ１０３にて破壊がありＳ１０６にて全領域の調査が完了していなければ、Ｓ１１１にて次の領域を対象としてＳ１０２に戻る。
【００２８】
一方、Ｓ１０６にて全領域の調査が完了していれば、全領域が破壊されていることが判明するため、Ｓ１０７にてデータを再構築し、Ｓ１０８にて再構築したデータに対して破壊調査を行い、Ｓ１０９にて再構築したデータに破壊がなければ、Ｓ１１０にて再構築したデータを採用して、Ｓ１０４にてタイマ停止信号９を出力することでインターバルタイマ７を停止して、Ｓ１０５にて再構築したデータに含まれるブートプログラムの残りの部分を実行し、Ｓ１０９にて再構築したデータに破壊があれば、ブートプログラムの残りの部分を実行しない。
【００２９】
このような仕組みを持ったデータ修復装置では、Ｓ１０３にて領域Ｒ０〜ＲＮに破壊があったとしても、別の領域Ｒ０〜ＲＮを使用してブートプログラムを起動することができる。
【００３０】
また、Ｓ１０６にて全領域Ｒ０〜ＲＮが破壊されていたとしても、Ｓ１０７にてデータの再構築を試みるため、ブートプログラムを起動することが可能である。
【００３１】
さらに、Ｓ１０４のインターバルタイマ停止を実行できなかった場合は、一定期間経過後にパルス信号１０が出力される。その結果、ＣＰＵ１がリセットされるため、ブートプログラムを誤って起動することを確実に防止できる。
【００３２】
実施の形態２．
図１において、ＣＰＵ１は、全ての領域Ｒ０〜ＲＮの同一オフセットアドレスのワードデータを１ワード分だけフラッシュＲＯＭ６から読み出した時にワードデータが１個でも異なるならば、そのオフセットアドレスのワードデータとして最も出現頻度の高いワードデータを採用するようにしてもよい。ＣＰＵ１は、このような再構築処理を領域サイズ分実行することができる。
【００３３】
このような仕組みを持ったデータ修復装置では、フラッシュＲＯＭ６上のすべての領域Ｒ０〜ＲＮに破壊が含まれていた場合にも、正しいデータを再構築することができる。
【００３４】
実施の形態３．
図１において、ＣＰＵ１は、全ての領域Ｒ０〜ＲＮの同一オフセットアドレスのワードデータを１ワード分だけフラッシュＲＯＭ６から読み出した時にワードデータの同一ビットの０の数と、１の数をカウントし、多い方の値をワードデータのビットデータとして採用するようにしてもよい。ＣＰＵ１は、このような再構築処理を領域サイズ分実行することができる。
【００３５】
実施の形態４．
図２において、ＣＰＵ１は、Ｓ１０９にて再構築データに破壊がないことが確認できた後、再構築したデータをフラッシュＲＯＭ６の全領域Ｒ０〜ＲＮに書き込むことができる。
【００３６】
このような仕組みを持ったデータ修復装置では、破壊のあるフラッシュＲＯＭ６を自己修復することができる。
【産業上の利用可能性】
【００３７】
以上のように本発明に係るデータ修復装置は、同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復することが可能となり、フラッシュＲＯＭをブートデバイスとして使用した数値制御装置のフラッシュＲＯＭの修復方法に適している。
【符号の説明】
【００３８】
１  ＣＰＵ
２  バス
６  フラッシュＲＯＭ
７  インターバルタイマ
９  タイマ停止信号
１０  パルス信号
Ｒ０〜ＲＮ  領域
【図１】
2012059035.tif 000003
【図２】
2012059035.tif 000004