(57)【要約】【課題】誤り訂正できなくなる可能性を低くし、未使用部分に関してもエラーの検出ができるメモリデータ保護方法を提供する。【解決手段】不揮発性メモリに、誤り訂正符号で符号化した情報を書き込み、不揮発性メモリの未使用部分も誤り訂正符号を付加したデータで埋め尽くし、定期的に全領域の復号を行い、エラーの発生がないことを確認することにより、現在は使用していない領域もエラーのないことを保証し、新たな領域を使用するときに書き込めなくなることを防止する。【選択図】　　　　図４
2004005062.tif 000002
【特許請求の範囲】
【請求項１】
ＦＬＡＳＨ　ＲＯＭのような書き込み可能な不揮発性のメモリに、各種情報を書き込む機器において、
不揮発性メモリには誤り訂正符合で符号化した情報を書き込み、不揮発性メモリの未使用部分も誤り訂正符号を負荷したデータで埋め尽くし、定期的に全領域の書き込みと復号を行いエラーの発生がないことを確認する手段と、
エラー発生時にはエラー発生情報を記録し、それまでのエラー発生状況に応じた処理を行う手段を有することを特徴とするメモリデータ保護方式。
【請求項２】
前記ＦＬＡＳＨ　ＲＯＭは、書き込み可能な不揮発性のメモリに、各種情報を書き込む機器において、
前記不揮発性メモリには、誤りが連続しないように並び替えを行った後、誤り訂正符号で符号化した情報を書き込み、デバイス内部での断線や組み付け不良により連続したデータが読み込めなくなった場合でも情報が失われる可能性を低くすることを特徴とするメモリデータ保護方式。
【請求項３】
前記ＦＬＡＳＨ　ＲＯＭは、データの並べ替えを行っているため並べ替えの規則を知らないと容易には元のデータがわからないことから、ユーザの入力した情報を保護することができることを特徴とする請求項２記載のメモリデータ保護方式。
【請求項４】
前記ＦＬＡＳＨ　ＲＯＭは、書き込み可能な前記不揮発性のメモリを有し、そこに課金情報やユーザ設定などの情報を書き込む機器において、不揮発性メモリには誤り訂正符合で符号化した情報を書き込み、不揮発性メモリの未使用部分も誤り訂正符号を付加したデータで埋め尽くし、定期的に全領域の復号を行いエラーの発生がないことを確認する確認手段と、
現在は使用していない領域もエラーのないことを保証し、新たな領域を使用するときに書き込めなくなることを防止する防止手段を有することを特徴とするメモリデータ保護方式。
【請求項５】
前記ＦＬＡＳＨ　ＲＯＭは、機器中に複数の前記不揮発性メモリや他の記憶手段を有する場合には、情報に誤り訂正可能なエラーを発見した場合、情報のバックアップを他の不揮発性メモリに書き込むことにより情報の消失を防ぐことを特徴とする請求項４記載のメモリデータ保護方式。
【請求項６】
前記記憶手段は、エラーの発生した部分を記憶しておき、その部分を使用しないことによりエラーの発生があっても問題なく使用を継続できることを特徴とする請求項４または５記載のメモリデータ保護方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明のメモリデータ保護方式に関し、特に、不揮発性半導体メモリのデータ保護、磁気ディスク、揮発性半導体メモリのデータ保護に関する。
【０００２】
【従来の技術】
従来のプリンタやコピーなどのコントローラでは、不揮発性メモリが課金情報やユーザ設定の保存に使用されているが、もしここに誤りが発生すると金銭的な問題や再設定の手間などの問題が発生する。そのため従来はチェックサムなどで誤りの検出を行っていた。
【０００３】
【発明が解決しようとする課題】
プリンタやコピーなどのコントローラでは、不揮発性メモリが課金情報やユーザ設定の保存使われている。このため、もしここに誤りが発生すると金銭的な問題や再設定の手間などの問題が発生する。そのため従来はチェックサムで誤りを検出したり、誤り訂正符号で誤りの検出・訂正したりしていた。
しかし、誤りの検出・訂正は書き込んだ情報に関してのみ行っており、未使用の部分については何のチェックも行っていなかったため、これまで未使用だった部分にエラーがある場合もその部分に情報を書き込むようになるまでエラーがあることがわからなかった。
【０００４】
またＦＬＡＳＨ　ＲＯＭの場合、電荷の抜けによりデータ化けがおこることがあるが、これは書き込んですぐには正常に読み出せることがある。このため書き込み直後に読み出して正常に書かれていることを確認しても、その後時間だ経ってからデータが化けていることがある。
【０００５】
さらに、もしエラーが発生した場合にはデバイス、または組み付けの不良と見なし、コントローラ自体を不良としていたが、他の部分は正常に動作しているため、そのまま不良品として破棄するのは無駄がある。
【０００６】
本発明は係る問題に鑑みてなされたものであり、エラーの発生状況を保存し、それまでのエラー発生状況に応じた処理を行うことを目的とする。
【０００７】
また、誤り訂正できなくなる可能性を低くし、書き込む情報の並び替えを行うことにより内容を容易に読み出されることを防ぐことを目的とする。
【０００８】
また、未使用部分に関してもエラーの検出ができることを目的とし、また書き込み後時間が経ってエラーが発生する場合にも誤りを検出できることを目的とする。
【０００９】
また、複数の不揮発性メモリや他の記憶手段を有する場合に、誤り訂正符合の誤り訂正ができる程度の誤りが発生したときに誤りの発生したものとは違うデバイスに情報のバックアップを書き込むことで情報が完全に消えてしまうことを防ぐことを目的とする。
【００１０】
さらに、不揮発性メモリの一部の領域で恒久的なエラーが発生した場合でも継続して使用できることを目的とする。
【００１１】
なお、エラーが発生した場合には、エラーの発生した領域を記憶し、その後異常の起きた領域には情報を書き込まないようにすることでエラーの発生したコントローラを継続して使用できるようにする。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載のメモリデータ保護方式は、ＦＬＡＳＨ　ＲＯＭのような書き込み可能な不揮発性のメモリに、各種情報を書き込む機器において、不揮発性メモリには誤り訂正符合で符号化した情報を書き込み、不揮発性メモリの未使用部分も誤り訂正符号を負荷したデータで埋め尽くし、定期的に全領域の書き込みと復号を行いエラーの発生がないことを確認する手段と、エラー発生時にはエラー発生情報を記録し、それまでのエラー発生状況に応じた処理を行う手段を有することを特徴とする。
【００１３】
請求項２記載のメモリデータ保護方式は、ＦＬＡＳＨ　ＲＯＭは、書き込み可能な不揮発性のメモリに、各種情報を書き込む機器において、不揮発性メモリには、誤りが連続しないように並び替えを行った後、誤り訂正符号で符号化した情報を書き込み、デバイス内部での断線や組み付け不良により連続したデータが読み込めなくなった場合でも情報が失われる可能性を低くすることを特徴とする。
【００１４】
請求項３記載のメモリデータ保護方式は、ＦＬＡＳＨ　ＲＯＭは、データの並べ替えを行っているため並べ替えの規則を知らないと容易には元のデータがわからないためユーザの入力した情報を保護することができることを特徴とする。
【００１５】
請求項４記載のメモリデータ保護方式は、ＦＬＡＳＨ　ＲＯＭは、書き込み可能な不揮発性のメモリを有し、そこに課金情報やユーザ設定などの情報を書き込む機器において、不揮発性メモリには誤り訂正符合で符号化した情報を書き込み、不揮発性メモリの未使用部分も誤り訂正符号を付加したデータで埋め尽くし、定期的に全領域の復号を行いエラーの発生がないことを確認することにより、現在は使用していない領域もエラーのないことを保証し、新たな領域を使用するときに書き込めなくなることを防止する防止手段を有することを特徴とする。
【００１６】
請求項５記載のメモリデータ保護方式は、機器中に複数の不揮発性メモリや他の記憶手段を有する場合には、情報に誤り訂正可能なエラーを発見した場合、情報のバックアップを他の不揮発性メモリに書き込むことにより情報の消失を防ぐことを特徴とする。
【００１７】
請求項６記載のメモリデータ保護方式は、記憶手段は、エラーの発生した部分を記憶しておき、その部分を使用しないことによりエラーの発生があっても問題なく使用を継続できることを特徴とする。
【００１８】
【発明の実施の形態】
本発明の実施形態を、図を参照して説明する。
図１は、エラー発生状況によりエラー通知の変更をする処理を示すフローチャートである。
最初に、エラーがあるかの判断を行う（ステップＳ１００）。エラーがない場合は（ステップＳ１００／ＮＯ）、そのまま終了となる。エラーがある場合は（ステップＳ１００／ＹＥＳ）、誤り訂正可能なエラーかの判断を行う（ステップＳ１０１）。誤り訂正が可能の場合は（ステップＳ１０１／ＹＥＳ）、エラー自動訂正を行い（ステップＳ１０２）、終了となる。誤り訂正可能でない場合は（ステップＳ１０１／ＮＯ）、さらにユーザ入力可能な情報かどうかの判断を行う（ステップＳ１０３）。ユーザ入力可能な情報でない場合は（ステップＳ１０３／ＮＯ）、サービスマンコールを行い（ステップＳ１０６）、終了となる。ユーザ入力可能な情報の場合は（ステップＳ１０３／ＹＥＳ）、次にエラー頻度が高いかどうかの判断を行う（ステップＳ１０４）。エラー頻度が高い場合は（ステップＳ１０６／ＹＥＳ）、サービスマンコールを行い（ステップＳ１０６）、終了となる。エラー頻度が高くない場合は（ステップＳ１０４／ＮＯ）、情報再入力を行い（ステップＳ１０５）、終了となる。
【００１９】
誤りを検出し、ある程度の誤りならば訂正を行うことのできる誤り訂正符号で符号化した情報を不揮発性メモリに書き込み、不揮発性メモリの未使用部分も誤り訂正符号を付加したデータで埋め尽くし、定期的に全領域の復号を行いエラーの発生がないことを確認することにより、現在は使用していない領域もエラーのないことを保証し、新たな領域を使用するときに書き込めなくなることを防止する。
【００２０】
具体的には、最初に書き込みを行う前に不揮発性メモリの全領域に誤り訂正符合で符号化した穴埋めデータを書き込み、情報を書き込む場合も情報を同じ誤り訂正符号で符号化し、書き込みを行う。ここで誤り訂正符合はリード・ソロモン符号やＢＣＨ符号など既知の誤り訂正符号を用いるものとする。
【００２１】
その後、定期的に全領域を読み出して復号し、誤りのないことを確認する。定期的な確認はタイマーを用い、一定時間ごとにいっても良いし、起動ごとや、あらかじめ決められた回数、起動する毎に行うようにしても良い。
【００２２】
ここで誤り訂正ができる誤りが見つかった場合は、誤りを修正し再書き込みを行う。誤り訂正のできないような誤りの発生した場合にはエラーとして扱い誤りの発生したアドレスを期待値とを読み出した値を出力するようにする。
【００２３】
誤りを検出した場合は、異常の内容を記録する。
・異常の発生したアドレス
・書き込み時のエラーか読み出し時のエラーか
・どのようなエラーか（１→０か０→１か）
・そのアドレスで何回目か
・トータルで何回目のエラーか
・そのアドレスでのエラーの発生日時
・トータルでのエラーの発生日時
上記のように発生した日時を示す時計機能を設けていない機器の場合は、
・何回目の起動か
・起動中の累積時間
といった場合でもよい。
【００２４】
エラーの発生状況により以下のようにユーザへ、エラー通知を変更する。
・エラー訂正できる誤りであり、エラー発生の頻度が低い場合には、単に誤り訂正を行いユーザへの通知は行わない。
・エラー訂正できない誤りや、ユーザが再入力できる情報（ユーザ設定条件など）に関するものである場合は、エラー発生表示をし、正しい情報の入力を求める。
・エラー訂正できない誤りであり、ユーザが入力できない情報の場合やエラー訂正できる場合でもエラー発生の頻度が高い場合にはサービスマンを呼ぶようなメッセージを表示する。
【００２５】
ＦＬＡＳＨ　ＲＯＭのような書き込み可能な不揮発性のメモリに、各種情報を書き込む機器において、不揮発性メモリには誤りが連続しないように並び替えを行った後、誤り訂正符合で符号化した情報を書き込み、デバイス内部での断線や組み付け不良により連続したデータが読み込めなくなった場合でも情報が失われる可能性を低くする。
【００２６】
図２は、２ビットの誤り訂正能力を有する情報８ビット、誤り訂正ビット８ビットの計１６ビットの誤り訂正符号を示した図である。
図３は、順番のまま２バイトの連続するデータとしてメモリに書き込んだ場合を示した図である。
アドレス００００または０００１がデバイス内部での断線や組み付け不良により正しく読み出せなくなった場合、訂正能力を超えてしまうため、誤りを訂正することができなくなる。
【００２７】
図４は、符号化データの書き込み位置を示した図である。
図２、３で示したようなことを防ぐために、符号化データの第１ビットは、アドレス００００の第１ビット、第２ビットはアドレス０００１の第１ビットというように書き込み、灰色部分には他のデータが同様にして書き込まれる。こうすることで、デバイス内部での断線や組み付け不良により００００から０００Ｆまでのある１つのアドレスが読み出せなくなるような事態が発生しても符号化データとしては、１ビットの誤りでしかないため誤り訂正が可能になる。
【００２８】
データの並べ替えを行っているため、この並べ替えの規則を知らないと容易には、元のデータがわからないためユーザの入力した情報を保護することができる。
【００２９】
図５は、メモリデータ保護方式における全領域の復号を行い、エラー発生がないことを確認する処理を示したフローチャートである。
まず、最初の書き込みかどうかの判断を行う（ステップＳ２００）。最初の書き込みの場合は（ステップＳ２００／ＹＥＳ）、全領域に穴埋めデータを書き込み（ステップＳ２０１）、ステップ２以降を行う。最初の書き込みでない場合（ステップＳ２００／ＮＯ）、全領域チェックまたは情報読み出しの判断を行う（ステップＳ２０２）。全領域チェックまたは情報読み出しがない場合は（ステップＳ２０２／）、もう一度同じ判断を繰り返す。全領域チェックまたは情報読み出しがある場合は（ステップＳ２０２／ＹＥＳ）、復号を行い（ステップＳ２０３）、誤り検出を行う（ステップＳ２０４）。誤りがない場合は（ステップＳ２０４／ＮＯ）、もう一度、全領域チェックまたは情報読み出し（ステップＳ２０２）を行う。誤りがある場合は（ステップＳ２０４／ＹＥＳ）、訂正可能かどうかの判断を行う（ステップＳ２０５）。訂正可能の場合は（ステップＳ２０５／ＹＥＳ）、エラー訂正を行い（ステップＳ２０６）、さらに、全領域チェックまたは情報読み出し（ステップＳ２０２）を行う。訂正可能でない場合は（ステップＳ２０５／ＮＯ）、エラー通知を出し（ステップＳ２０７）終了となる。
【００３０】
以上のことから、ＦＬＡＳＨ　ＲＯＭの場合、電荷の抜けによりデータ化けが起こることがあるが、このような異常を書き込みことにより、すぐに読み出した場合は、正常に読み出せる。
定期的に読み出して確認を行うだけでなく、定期的に書き込み、読み出しを行うようにして書き込み時の誤りの有無を確認する。書き込みを行う場合は、デバイスによって、書き込み回数の制限があるため書き込みの頻度は読み出しより低くする。
【００３１】
図６は、メモリデータ保護方式における誤りが発生したデバイスとは別のデバイスに情報を保存する処理を示したフローチャートである。
まず、最初の書き込みかどうかの判断を行う（ステップＳ３００）。最初の書き込みの場合は（ステップＳ３００／ＹＥＳ）、全領域に穴埋めデータを書き込み（ステップＳ３０１）、ステップＳ３０２以降の処理を行う。最初の書き込みでない場合は（ステップＳ３００／ＮＯ）、全領域チェックまたは情報読み出しかどうかの判断をする（ステップＳ３０２）。全領域チェックまたは情報読み出しでない場合（ステップＳ３０２／ＮＯ）、もう一度、全領域チェックまたは情報読み出し（ステップＳ３０２）の処理を行う。全領域チェックまたは情報読み出しを行う場合は（ステップＳ３０２／ＹＥＳ）、復号を行う（ステップＳ３０３）。次に、誤りの検出を行う（ステップＳ３０４）。誤りがない場合は（ステップＳ３０４／ＮＯ）、全領域チェックまたは情報読み出し（ステップＳ３０２）を行う。誤りがある場合は（ステップＳ３０４／ＹＥＳ）、訂正可能かどうかの判断を行う（ステップＳ３０５）。訂正可能でない場合は（ステップＳ３０５／ＮＯ）、エラー通知を発行し（ステップＳ３０８）、終了となる。訂正可能の場合は（ステップＳ３０５／ＹＥＳ）、エラー訂正を行い（ステップＳ３０６）、別デバイスにバックアップ書き込みを行い（ステップＳ３０７）、全領域チェックまたは情報読み出し（ステップＳ３０２）の処理へ戻る。
【００３２】
以上のことから、複数の不揮発性メモリまたは他の記憶手段（ハードディスク等）を有する場合に、情報に誤りが検出されたときは、そのデバイス自体の不良や組み付け不良の可能性もあり、誤りを訂正して再度書き込んだとしても、再度誤りが発生する可能性がある。そのため、誤り訂正できる誤りを検出した場合は、誤りが発生したデバイスとは別にデバイスに情報を保存することで、情報が失われることを防止し、誤り訂正不可能な誤りを検出した場合はエラーとして通知する。
【００３３】
別デバイスは、例えばＦＬＡＳＨ　ＲＯＭが複数ＣＨＩＰ構成の時は、ＦＬＡＳＨ　ＲＯＭに書き込むようにしても良い。またはＦＬＡＳＨ　ＲＯＭとＮＶＲＡＭ、ＨＤＤなど全く異なるデバイスでもよい。
【００３４】
図７は、メモリデータ保護方式におけるエラーの発生した部分を記憶する処理を示したフローチャートである。
まず、エラーは未使用領域かどうかの判断をする（ステップＳ４００）。エラーが未使用領域の場合は（ステップＳ４００／ＹＥＳ）、エラーのあったアドレスを記憶し（ステップＳ４０４）、終了となる。エラーが未使用領域でない場合は（ステップＳ４００／ＮＯ）、次に訂正可能かどうかの判断をする（ステップＳ４０１）。訂正可能でない場合は（ステップＳ４０１／ＮＯ）、エラー通知を発行し（ステップＳ４０２）、終了となる。訂正可能の場合（ステップＳ４０１／ＹＥＳ）、誤り訂正し、異常のないアドレスに書き込む（ステップＳ４０３）。さらに、エラーのあったアドレスを記憶する（ステップＳ４０４）。
【００３５】
以上のことから、アドレス単位でなくブロック単位での管理にすることにより、従来は、デバイス自体の問題や組み付け不良によりデバイス中に１つでも不良部分があれば、不良品として扱っていたが誤りの発生した部分を回避して使用することにより継続して使用が可能になる。
【００３６】
【発明の効果】
請求項１記載の発明は、誤りが検出された結果を保存しているため、それまでのエラー発生状況に応じて適切なメッセージをユーザに対して表示することができる。
【００３７】
請求項２記載の発明は、符号化データ内で誤りが連続しないように並び替えを行っているので誤り訂正が出来なくなる可能性を低くすることができる。
【００３８】
請求項３記載の発明は、ネットワークＩ／Ｆを有する機械ではＩＰアドレスなどネットワーク情報を不揮発性メモリに格納するが、このようなユーザ情報が、機器が破棄されたときなどに悪意ある第三者により不揮発性メモリを読むことで流出する恐れがある。
データの並べ替えを行っているため、この並べ替えの規則を知らないと容易には、元のデータが分からないためユーザの入力した情報を保護することができる。
【００３９】
請求項４記載の発明は、未使用の部分に関しても誤り訂正符合で符号化した穴埋めのためのデータを書き込み、定期的に全領域を復号し、誤りが発生していないことを確認しているので、現在情報の書かれていない領域に関してもエラーがないことを保証できる。
また、定期的にエラーの発生を確認しているため書き込み後時間が経ってから発生するエラーも検出することができる。
【００４０】
請求項５記載の発明は、誤り訂正ができる誤りが発生した場合は、誤りが発生したデバイスとは別のデバイスに情報のバックアップを作成するため情報の消失の可能性を低くすることができる。
【００４１】
請求項６記載の発明は、異常の発見されたアドレスまたは領域を記憶し、そのアドレスまたは領域には、情報を書き込まないようにしているので、エラーの再発を防ぐことができる。また、１つのエラーだけで全体を不良とは見なさないため機器は継続して使用することができる。
【図面の簡単な説明】
【図１】本発明のメモリデータ保護方式におけるエラー発生状況により、エラー通知の変更をする処理を示すフローチャートである。
【図２】本発明のメモリデータ保護方式における１６ビットの誤り訂正符号を示した図である。
【図３】本発明のメモリデータ保護方式における２ビットの連続するデータを示した図である。
【図４】本発明のメモリデータ保護方式における符号化データの書き込み位置を示した図である。
【図５】本発明のメモリデータ保護方式における全領域の復号を行い、エラー発生がないことを確認する処理を示したフローチャートである。
【図６】本発明のメモリデータ保護方式における誤りが発生したデバイスとは別のデバイスに情報を保存する処理を示したフローチャートである。
【図７】本発明のメモリデータ保護方式におけるエラーの発生した部分を記憶する処理を示したフローチャートである。
【図１】
2004005062.tif 000003
【図２】
2004005062.tif 000004
【図３】
2004005062.tif 000005
【図４】
2004005062.tif 000006
【図５】
2004005062.tif 000007
【図６】
2004005062.tif 000008
【図７】
2004005062.tif 000009