説明

データ修復装置

【課題】同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復すること。
【解決手段】CPU1は、全ての領域R0〜RNの同一オフセットアドレスのワードデータを1ワード分だけフラッシュROM6から読み出し、ワードデータが同じならば次の1ワード分のワードデータを読み出し、ワードデータが1個でも異なるならば、全ての領域R0〜RNのワードデータをマージすることでワードデータを再構築する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ修復装置に関し、特に、フラッシュROMをブートデバイスとして使用した数値制御装置のフラッシュROMの修復方法に関する。
【背景技術】
【0002】
従来の数値制御装置においては、ブートデバイスの内容が破壊された場合、ブートデバイスを外部記憶装置に切り替え、その外部記憶装置からブートを行い、ブート用フラッシュROMを上書きして修理していた。
【0003】
また、特許文献1には、CPUは不揮発性メモリへのデータ書き込み時は、ブロックの相対的に等しいアドレスに同一データを書き込み、不揮発性メモリの読み出し時にはブロックの相対的に等しいアドレスのデータを読み出し、3つのデータを比較して記憶されているデータの判定を行う技術が開示されている。
【0004】
また、特許文献2には、三つのエリアに記憶されているデータが全て一致しないと判断された時は、どのエリアのデータが他の二つのエリアのデータと不一致なのか判断し、その判断結果に基づいて不一致エリアのデータを他の二つの正常なエリアのデータに基づいて修復する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開昭62−34260号公報
【特許文献2】特開2002−55885号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記従来の技術によれば、ブートデバイスを外部記憶装置に切り替え、その外部記憶装置からブートを行う方法では、手間がかかるという問題があった。
【0007】
さらに、数値制御装置に必要とされるフラッシュROMの容量の増加に伴って、数値制御装置一台当たりに必要なフラッシュROMの個数が増加し、データ破壊を起こす数値制御装置の台数も多くなってきている。
【0008】
また、特許文献1、2に開示された方法では、同一のデータが書き込まれた全ての領域に破壊された部分が存在すると、破壊されたデータを修復することができないという問題があった。
【0009】
本発明は、上記に鑑みてなされたものであって、同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復することが可能なデータ修復装置を得ることを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、本発明のデータ修復装置は、同一のブートプログラムが複数の領域に記憶された記憶部と、同一のブートプログラムが記憶された全ての領域に破壊された部分が存在する場合、全ての領域のデータをマージすることで前記データを再構築するCPUとを備えることを特徴とする。
【発明の効果】
【0011】
この発明によれば、同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復することが可能という効果を奏する。
【図面の簡単な説明】
【0012】
【図1】図1は、本発明に係るデータ修復装置の実施の形態1の概略構成を示すブロック図である。
【図2】図2は、図1のCPU1の動作を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下に、本発明に係るデータ修復装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0014】
実施の形態1.
図1は、本発明に係るデータ修復装置の実施の形態1の概略構成を示すブロック図である。図1において、データ修復装置には、同一のブートプログラムが複数の領域R0〜RN(Nは2以上の整数)に記憶されたフラッシュROM6、同一のブートプログラムが記憶された全ての領域R0〜RNに破壊された部分が存在する場合、全ての領域R0〜RNのデータをマージすることでデータを再構築するCPU1、ブートプログラムの破壊がないことが一定期間内に確認できない場合、CPU1をリセットするパルス信号10を生成するインターバルタイマ7が設けられている。なお、CPU1は、バス2を介してフラッシュROM6に接続されている。
【0015】
なお、同一のブートプログラムが複数記憶する記憶部としては、フラッシュROM6の他にEEPROMなどの不揮発性半導体メモリを用いるようにしてもよいし、書き換えが不可能な読み出し専用のROMを用いるようにしてもよい。これらのブートプログラムには、セルフチェック機能を設けることができる。
【0016】
そして、電源が投入されると、インターバルタイマ7が起動される。また、CPU1は、バス2を介して領域R0を指定するアドレスをフラッシュROM6に出力する。
【0017】
そして、領域R0を指定するアドレスがフラッシュROM6に出力されると、ブートプログラムが領域R0からバス2を介してCPU1に読み出され、そのブートプログラムの破壊の有無がチェックされる。
【0018】
そして、領域R0から読み出されたブートプログラムに破壊された部分がない場合、CPU1はタイマ停止信号9を出力し、インターバルタイマ7を停止させる。そして、CPU1は、ブートプログラムの残りの部分を実行する。
【0019】
一方、領域R0から読み出されたブートプログラムに破壊された部分がある場合、インターバルタイマ7の動作が継続される。そして、CPU1は、バス2を介して領域R1を指定するアドレスをフラッシュROM6に出力する。
【0020】
そして、領域R1を指定するアドレスがフラッシュROM6に出力されると、ブートプログラムが領域R1からバス2を介してCPU1に読み出され、そのブートプログラムの破壊の有無がチェックされる。
【0021】
そして、領域R1から読み出されたブートプログラムに破壊された部分がない場合、CPU1はタイマ停止信号9を出力し、インターバルタイマ7を停止させる。そして、CPU1は、ブートプログラムの残りの部分を実行する。
【0022】
一方、領域R1から読み出されたブートプログラムに破壊された部分がある場合、インターバルタイマ7の動作が継続される。以後、CPU1は、今回指定した領域R0〜RNから読み出したブートプログラムに破壊された部分がある場合、その次の領域R0〜RNからブートプログラムを読み出し、そのブートプログラムに破壊された部分がない場合には、タイマ停止信号9を出力し、インターバルタイマ7を停止させる。そして、CPU1は、そのブートプログラムの残りの部分を実行する。
【0023】
一方、全ての領域R0〜RNのブートプログラムに破壊された部分がある場合、CPU1は、全ての領域R0〜RNの同一オフセットアドレスのワードデータの比較結果に基づいて、ワードデータを再構築する。
【0024】
例えば、CPU1は、全ての領域R0〜RNの同一オフセットアドレスのワードデータを1ワード分だけフラッシュROM6から読み出し、ワードデータが同じならば次の1ワード分のワードデータを読み出し、ワードデータが1個でも異なるならば、全ての領域R0〜RNのワードデータをマージすることでワードデータを再構築することができる。
【0025】
すなわち、各領域R0〜RNには、オフセットアドレスP0〜PMが付されているものとすると、例えば、全ての領域R0〜RNのオフセットアドレスP1のワードデータを1ワード分だけフラッシュROM6から読み出し、これらのワードデータを比較することでオフセットアドレスP1のワードデータを再構築することができる。他のオフセットアドレスP0、P2〜PMのワードデータについても同様である。
【0026】
図2は、図1のCPU1の動作を示すフローチャートである。図2において、CPU1は起動後、バス2を介してフラッシュROM6の領域R0〜RNに書き込まれたブートプログラムをリードして実行する。
【0027】
ブートプログラムが起動されると、CPU1は、S101にて操作対象を領域R0にセットして、S102にて操作対象の領域の破壊があるかどうか調査を行い、S103にて破壊がなければ、S104にてタイマ停止信号9を出力することでインターバルタイマ7を停止して、S105にてその領域の残りの部分を実行し、S103にて破壊がありS106にて全領域の調査が完了していなければ、S111にて次の領域を対象としてS102に戻る。
【0028】
一方、S106にて全領域の調査が完了していれば、全領域が破壊されていることが判明するため、S107にてデータを再構築し、S108にて再構築したデータに対して破壊調査を行い、S109にて再構築したデータに破壊がなければ、S110にて再構築したデータを採用して、S104にてタイマ停止信号9を出力することでインターバルタイマ7を停止して、S105にて再構築したデータに含まれるブートプログラムの残りの部分を実行し、S109にて再構築したデータに破壊があれば、ブートプログラムの残りの部分を実行しない。
【0029】
このような仕組みを持ったデータ修復装置では、S103にて領域R0〜RNに破壊があったとしても、別の領域R0〜RNを使用してブートプログラムを起動することができる。
【0030】
また、S106にて全領域R0〜RNが破壊されていたとしても、S107にてデータの再構築を試みるため、ブートプログラムを起動することが可能である。
【0031】
さらに、S104のインターバルタイマ停止を実行できなかった場合は、一定期間経過後にパルス信号10が出力される。その結果、CPU1がリセットされるため、ブートプログラムを誤って起動することを確実に防止できる。
【0032】
実施の形態2.
図1において、CPU1は、全ての領域R0〜RNの同一オフセットアドレスのワードデータを1ワード分だけフラッシュROM6から読み出した時にワードデータが1個でも異なるならば、そのオフセットアドレスのワードデータとして最も出現頻度の高いワードデータを採用するようにしてもよい。CPU1は、このような再構築処理を領域サイズ分実行することができる。
【0033】
このような仕組みを持ったデータ修復装置では、フラッシュROM6上のすべての領域R0〜RNに破壊が含まれていた場合にも、正しいデータを再構築することができる。
【0034】
実施の形態3.
図1において、CPU1は、全ての領域R0〜RNの同一オフセットアドレスのワードデータを1ワード分だけフラッシュROM6から読み出した時にワードデータの同一ビットの0の数と、1の数をカウントし、多い方の値をワードデータのビットデータとして採用するようにしてもよい。CPU1は、このような再構築処理を領域サイズ分実行することができる。
【0035】
実施の形態4.
図2において、CPU1は、S109にて再構築データに破壊がないことが確認できた後、再構築したデータをフラッシュROM6の全領域R0〜RNに書き込むことができる。
【0036】
このような仕組みを持ったデータ修復装置では、破壊のあるフラッシュROM6を自己修復することができる。
【産業上の利用可能性】
【0037】
以上のように本発明に係るデータ修復装置は、同一のデータが書き込まれた全ての領域に破壊された部分が存在する場合においても、破壊されたデータを修復することが可能となり、フラッシュROMをブートデバイスとして使用した数値制御装置のフラッシュROMの修復方法に適している。
【符号の説明】
【0038】
1 CPU
2 バス
6 フラッシュROM
7 インターバルタイマ
9 タイマ停止信号
10 パルス信号
R0〜RN 領域

【特許請求の範囲】
【請求項1】
同一のブートプログラムが複数の領域に記憶された記憶部と、
同一のブートプログラムが記憶された全ての領域に破壊された部分が存在する場合、全ての領域のデータをマージすることで前記データを再構築するCPUとを備えることを特徴とするデータ修復装置。
【請求項2】
前記CPUは、同一のブートプログラムが記憶された全ての領域に破壊された部分が存在する場合、全ての領域の同一オフセットアドレスのワードデータの比較結果に基づいて、前記ワードデータを再構築することを特徴とする請求項1に記載のデータ修復装置。
【請求項3】
前記CPUは、全ての領域の同一オフセットアドレスのワードデータを1ワード分だけ前記記憶部から読み出し、前記ワードデータが同じならば次の1ワード分のワードデータを読み出し、前記ワードデータが1個でも異なるならば、全ての領域のワードデータをマージすることで前記ワードデータを再構築することを特徴とする請求項2に記載のデータ修復装置。
【請求項4】
前記CPUは、全ての領域の同一オフセットアドレスのワードデータを1ワード分だけ前記記憶部から読み出した時に前記ワードデータが1個でも異なるならば、最も出現頻度の高いワードデータを前記オフセットアドレスのワードデータとして採用することを特徴とする請求項3に記載のデータ修復装置。
【請求項5】
前記CPUは、全ての領域の同一オフセットアドレスのワードデータを1ワード分だけ前記記憶部から読み出した時に前記ワードデータの同一ビットの0の数と、1の数をカウントし、多い方の値を前記ワードデータのビットデータとして採用することを特徴とする請求項3に記載のデータ修復装置。
【請求項6】
前記CPUは、全ての領域の全てのデータを再構築した後、前記再構築結果に破壊がないかどうかを確認し、破壊がない場合には、前記再構築したデータを前記記憶部に書き込むことを特徴とする請求項1から5のいずれか1項に記載のデータ修復装置。
【請求項7】
前記ブートプログラムの破壊がないことが一定期間内に確認できない場合、前記CPUをリセットするパルス信号を生成するインターバルタイマとを備えることを特徴とする請求項1から6のいずれか1項に記載のデータ修復装置。
【請求項8】
前記CPUは、前記ブートプログラムの破壊がないことが確認できた場合、前記インターバルタイマを停止させることを特徴とする請求項7に記載のデータ修復装置。

【図1】
image rotate

【図2】
image rotate