(57)【要約】【課題】不揮発性メモリにエラーが検出された場合であっても、再度、正常か否かを検証することで、不揮発性メモリの使用を可能とする不揮発性メモリ制御技術を提供する。【解決手段】不揮発性メモリＭのバンクに、情報を読み書きする読書部１０ｅ、読書部１０ｅが、バンクに読み書きする情報に基づいて、エラーが発生したか否かを検出する検出部１０ｆ、検出部１０ｆがエラーが発生したことを検出したバンクを、エラー情報として登録する登録部１０ｇ、登録部１０ｇが登録したエラー情報に基づいて、不揮発性メモリＭにおける使用可能なバンクを探索する探索部１０ｄ、探索部１０ｄが探索したバンク以外のバンクについて、使用可能か否かを検証する検証部１０ｉ、検証部１０ｉが使用可能であると検証した領域について、エラー情報の登録を解除する解除部１０ｊを有する。【選択図】図１
2013228876.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリの所定の単位の領域に、情報を読み書きする読書部と、
前記読書部が、前記不揮発性メモリの各領域に読み書きする情報に基づいて、各領域にエラーが発生したか否かを検出する検出部と、
前記検出部がエラーが発生したことを検出した領域を、エラー情報として登録する登録部と、
前記登録部が登録したエラー情報に基づいて、前記不揮発性メモリにおける使用可能な領域を探索する探索部と、
前記不揮発性メモリの所定の領域について、使用可能か否かを検証する検証部と、
前記検証部が使用可能であると検証した領域について、エラー情報の登録を解除する解除部と、
を有することを特徴とする不揮発性メモリ制御装置。
【請求項２】
不揮発性メモリ制御装置の起動を検知する検知部を有し、
前記検証部は、前記検知部が起動を検知した場合に、検証を実行することを特徴とする請求項１記載の不揮発性メモリ制御装置。
【請求項３】
前記検出部が、全ての領域にエラーが発生したと判定すると、前記検知部が起動を検知するまでは、前記読書部による情報の読み書きを制限する制限部を有することを特徴とする請求項１又は請求項２記載の不揮発性メモリ制御装置。
【請求項４】
前記検証部は、前記探索部が使用可能な領域を探索できない場合に、前記不揮発性メモリの全部若しくは一部の領域が、使用可能か否かを検証することを特徴とする請求項１〜３のいずれか１項に記載の不揮発性メモリ制御装置。
【請求項５】
前記検証部は、所定の順序で、前記不揮発性メモリの全部若しくは一部の領域が、使用可能か否かを検証することを特徴とする請求項１〜３のいずれか１項に記載の不揮発性メモリ制御装置。
【請求項６】
電子回路又はコンピュータが、
不揮発性メモリの所定の単位の領域に、情報を読み書きする読書処理と、
前記読書処理により、前記不揮発性メモリの各領域に読み書きする情報に基づいて、各領域にエラーが発生したか否かを検出する検出処理と、
前記検出処理により、エラーが発生したことを検出した領域を、エラー情報として登録する登録処理と、
前記登録処理により登録されたエラー情報に基づいて、前記不揮発性メモリにおける使用可能な領域を探索する探索処理と、
前記不揮発性メモリの所定の領域について、使用可能か否かを検証する検証処理と、
前記検証処理により使用可能であると検証された領域について、エラー情報の登録を解除する解除処理と、
を実行することを特徴とする不揮発性メモリ制御方法。
【請求項７】
コンピュータに、
不揮発性メモリの所定の単位の領域に、情報を読み書きする読書処理と、
前記読書処理により、前記不揮発性メモリの各領域に読み書きする情報に基づいて、各領域にエラーが発生したか否かを検出する検出処理と、
前記検出処理により、エラーが発生したことを検出した領域を、エラー情報として登録する登録処理と、
前記登録処理により登録されたエラー情報に基づいて、前記不揮発性メモリにおける使用可能な領域を探索する探索処理と、
前記不揮発性メモリの所定の領域について、使用可能か否かを検証する検証処理と、
前記検証処理により使用可能であると検証された領域について、エラー情報の登録を解除する解除処理と、
を実行させることを特徴とする不揮発性メモリ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラーが検出された不揮発性メモリについての制御技術に関する。
【背景技術】
【０００２】
現在、ＣＤ、ＤＶＤ、ＵＳＢ等の記録デバイスの記録再生を行うために、種々のプレーヤーやレコーダーが普及している。このようなプレーヤーやレコーダーの制御装置は、従来から、記録媒体としてＥＥＰＲＯＭ等の不揮発性メモリを用いていた。
【０００３】
不揮発性メモリの用途は、主に、リジューム情報やユーザ設定の保存である。リジューム情報は、電源をＯＦＦした直前の状態の情報である。制御装置は、前回の起動中に実行していたプログラムを、次回、電源をＯＮにした時に、リジューム情報を用いて継続して実行できる。
【０００４】
ところで、ＥＥＰＲＯＭは、電荷を保持するための酸化膜が劣化する等の理由から、書き換え回数が有限である。このため、かかる不揮発性メモリは、書き換え回数に応じた一定の寿命がある。
【０００５】
もし、制御装置が、不揮発性メモリをその寿命以上に使用した場合、情報に誤りが発生する可能性がある。すると、記録デバイスのプレーヤーの場合、ユーザは、再生を停止した位置へ再度サーチ操作する手間や、ユーザ設定をやり直す手間が必要となる。
【０００６】
以上のことから、不揮発性メモリの制御には、その信頼性を確保するために、磁気ディスク装置等では必要のなかった制御が必要となる。たとえば、特許文献１には、不揮発性メモリにエラーが発生した場合に、欠陥ページを含むブロックのアドレスを記憶し、代替処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平５−２８２８８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、従来の不揮発性メモリのエラー制御は、エラーの検出処理、エラーを検出した後の代替処理のみの制御だった。したがって、従来のエラー制御は、一旦、エラーが検出された領域については、エラーの要因が不揮発性メモリに直結するものか否かに限らず、不揮発性メモリの欠陥として管理していた。
【０００９】
不揮発性メモリに直結する要因とは、上記のように、不揮発性メモリ自体の寿命による劣化である。一方、不揮発性メモリに直結しない要因として考えられる事象としては、以下の例が挙げられる。
(a) 不揮発性メモリへのＲｅａｄ／Ｗｒｉｔｅ命令を行う通信線へのノイズ
(b) バンクの異常検出処理の不具合
【００１０】
このような不揮発性メモリに直結しない要因によるエラーの場合には、実際には、不揮発性メモリは使用可能な場合がある。ところが、従来のエラー制御では、エラーとして検出された領域は、欠陥のある領域として使用されなくなってしまう。さらに、従来のエラー制御では、全ての領域でエラーが検出されると、不揮発性メモリそのものの交換や破棄が必要であると判定される可能性があった。
【００１１】
本発明は、以上のような従来技術の問題点を解決するために提案されたものであり、その目的は、不揮発性メモリにエラーが検出された場合であっても、再度、正常か否かを検証することで、不揮発性メモリの使用を可能とする不揮発性メモリ制御技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明の不揮発性メモリ制御装置は、不揮発性メモリの所定の単位の領域に、情報を読み書きする読書部と、前記読書部が、前記不揮発性メモリの各領域に読み書きする情報に基づいて、各領域にエラーが発生したか否かを検出する検出部と、前記検出部がエラーが発生したことを検出した領域を、エラー情報として登録する登録部と、前記登録部が登録したエラー情報に基づいて、前記不揮発性メモリにおける使用可能な領域を探索する探索部と、前記不揮発性メモリの所定の領域について、使用可能か否かを検証する検証部と、前記検証部が使用可能であると検証した領域について、エラー情報の登録を解除する解除部と、を有することを特徴とする。
【００１３】
以上のような発明では、検出部がエラーを検出した領域を、登録部がエラー情報として登録した場合であっても、当該領域について、検証部が、再度使用可能か否かを検証して、使用可能な場合には解除部が登録を解除する。このため、実際には使用可能な領域であれば、読書部が再度使用することができる。したがって、使用できない領域に対して無駄な制御処理を行うことを防止して装置の負担軽減を図りつつ、使用可能な領域を有している不揮発性メモリを継続して使用できる。
【００１４】
他の態様は、不揮発性メモリ制御装置の起動を検知する検知部を有し、前記検証部は、前記検知部が起動を検知した場合に、検証を実行することを特徴とする。
以上のような態様では、起動時のみに検証を実行するため、処理の負担が軽減される。また、起動時には周囲のノイズ等の影響が少ないため、検証の誤りを防止できる。
【００１５】
他の態様は、前記検出部が、全ての領域にエラーが発生したと判定すると、前記検知部が起動を検知するまでは、前記読書部による情報の読み書きを制限する制限部を有することを特徴とする。
以上のような態様では、全ての領域についてエラーが検出された場合には、制限部が、読書部による読み書きを制限する。このため、欠陥の可能性の高い領域を使用して再度エラーとなるような無駄な処理を防止できる。また、異常が発生して、予測できない現象に繋がる事態を防止できる。
【００１６】
他の態様は、前記検証部は、前記探索部が使用可能な領域を探索できない場合に、前記不揮発性メモリの全部若しくは一部の領域が、使用可能か否かを検証することを特徴とする。
以上のような態様では、使用可能な領域が存在する場合には検証を行わず、全ての領域がエラー情報として登録されている場合にのみ、検証部が検証を行うので、効率の良い復帰処理が可能となる。
【００１７】
他の態様は、前記検証部は、所定の順序で、前記不揮発性メモリの全部若しくは一部の領域が、使用可能か否かを検証することを特徴とする。
以上のような態様では、各領域にエラーが発生しているか否かにかかわらず、所定の順序で検証を行うことにより、使用可能な領域を再度探索する処理を省略して、処理の高速化を図ることができる。
なお、上記の発明は、不揮発性メモリ制御方法の観点からも、不揮発性メモリ制御プログラムの観点からも捉えることができる。
【発明の効果】
【００１８】
以上説明したように、本発明によれば、不揮発性メモリにエラーが検出された場合であっても、再度、正常か否かを検証することで、不揮発性メモリの使用を可能とする不揮発性メモリ制御技術を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態の一例を示すブロック図である。
【図２】図１の実施形態における不揮発性メモリ初期処理と不揮発性メモリ制御処理の切り替え処理を示すフローチャートである。
【図３】図１の実施形態における不揮発性メモリ制御処理を示すフローチャートである。
【図４】図１の実施形態における不揮発性メモリ制御処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
本発明を実施するための形態（以下、実施形態とする）について、図面を参照して説明する。
［１．構成］
［１−１．概要］
本実施形態の構成を、図１のブロック図を参照して説明する。図１は、不揮発性メモリＭ、制御装置１００、主装置Ｈを示している。本実施形態は、制御装置１００の一部であるメモリ制御部１０として構成されている。
【００２１】
制御装置１００は、不揮発性メモリＭ及び主装置Ｈに接続され、主装置Ｈからの信号に応じて、不揮発性メモリＭを制御する。なお、制御装置１００、不揮発性メモリＭは、主装置Ｈの一部として構成されていてもよい。
【００２２】
［１−２．不揮発性メモリ］
不揮発性メモリＭは、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）である。この不揮発性メモリＭは、データ保存のブロック単位であるバンク（BANK）を複数有している。ただし、不揮発性メモリＭは、複数回の書き込みが可能な不揮発性の半導体メモリであればよい。
【００２３】
［１−３．主装置］
主装置Ｈは、不揮発性メモリＭへの情報の記憶、不揮発性メモリＭからの情報の読み出しを、制御装置１００に要求する装置である。この主装置Ｈの例は、記録デバイスのプレーヤーやレコーダーなどの制御装置である。
【００２４】
ただし、主装置Ｈは、不揮発性メモリＭへの情報の読み書きを必要とするコンピュータ、電子機器、電気機器等を広く含む。また、主装置Ｈは、機械、入力装置、出力装置等を制御する制御装置も含む。さらに、主装置Ｈを、単数若しくは複数のコンピュータによって実行されるプログラム、システムとして捉えることもできる。
【００２５】
主装置Ｈと制御装置１００との間、制御装置１００と不揮発性メモリＭとの間での情報の送受信は、それぞれの通信線を介して行われる。送受信される情報としては、制御要求、データ、指定アドレス等が含まれる。
【００２６】
［１−４．制御装置］
制御装置１００は、メモリ制御部１０、記憶部２０、電源制御部３０、インタフェース部４０を有する。メモリ制御部１０は、検知部１０ａ、準備処理部１０ｂ、要求判定部１０ｃ、探索部１０ｄ、読書部１０ｅ、検出部１０ｆ、登録部１０ｇ、制限部１０ｈ、検証部１０ｉ、解除部１０ｊを有する。
【００２７】
検知部１０ａは、後述する電源制御部３０からの信号に基づいて、メモリ制御部１０の起動を検知する処理部である。準備処理部１０ｂは、不揮発性メモリＭへの電源供給や通信の確立による通信線の設定等のメモリ準備処理を行う処理部である。
【００２８】
要求判定部１０ｃは、主装置Ｈからの制御要求を判定する処理部である。制御要求とは、不揮発性メモリＭへの書き込み若しくは読み込み要求である。探索部１０ｄは、不揮発性メモリＭの使用可能な領域を探索する処理部である。この探索は、後述する登録部１０ｇが、記憶部２０に登録したエラー情報に基づいて行われる。
【００２９】
読書部１０ｅは、不揮発性メモリＭへのデータの書き込み及び読み込みを行う処理部である。つまり、読書部１０ｅは、主装置Ｈから入力された制御要求及びデータに基づいて、不揮発性メモリＭへの書き込みを行う。また、読書部１０ｅは、主装置Ｈから入力された制御要求に応じて、不揮発性メモリＭからの読み込みを行う。書き込み及び読み込みの際のアドレス指定、バンクの選択等の処理の詳細については、周知技術であるため、説明を省略する。
【００３０】
検出部１０ｆは、不揮発性メモリＭの所定の単位の領域について、エラーが発生したか否かを検出する処理部である。本実施形態においては、所定の単位の領域は、ＥＥＰＲＯＭのバンクである。エラーの検出は、たとえば、ベリファイ（Verify)処理によって行う。
【００３１】
ベリファイ処理は、読書部１０ｅがバンクに書き込んだデータを読み込み、検出部１０ｆが、書き込んだデータと比較する処理である。比較の結果、相違がある場合にはエラーが発生したと判定し、相違がない場合にはエラーが無いと判定できる。
【００３２】
登録部１０ｇは、検出部１０ｆがエラーが発生したと判定した場合に、エラー情報を登録する処理部である。エラー情報の登録は、登録部１０ｇが、バンクの識別情報を後述する記憶部２０に記憶することにより行う。このバンクの識別情報は、たとえば、バンク番号である。
【００３３】
制限部１０ｈは、登録部１０ｇによってエラー情報として登録されたバンクについて、電源ＯＦＦ後、再度電源ＯＮにより起動するまで、読書部１０ｅによる読み書きを制限する処理部である。なお、制限部１０ｈは、検知部１０ａによる起動の検知に基づいて、制限を解除する。
【００３４】
検証部１０ｉは、探索部１０ｄによる探索の結果、使用可能でないとされたバンクについて、使用可能か否かを検証する処理部である。この検証は、たとえば、リードライト（Read/Write)テストにより行う。つまり、読書部１０ｅが、所定の検証用データをバンクに書き込み、書き込んだデータを読み込み、検証部１０ｉが所定の検証用データと比較する。比較の結果、相違がある場合には、当該バンクは欠陥があり、相違がない場合には、当該バンクは使用可能である。なお、検証用データは、あらかじめ記憶部２０に記憶されたデータであっても、ランダムに生成したデータであってもよい。
【００３５】
解除部１０ｊは、検証部１０ｉにより、使用可能とされたバンクについて、エラー情報の登録を解除する処理部である。たとえば、解除部１０ｊは、使用可能なバンクのバンク番号を、記憶部２０のエラー情報から削除することにより、エラー情報を更新する。
【００３６】
記憶部２０は、制御装置１００の処理に必要な種々の情報を記憶する処理部である。たとえば、記憶部２０は、エラー情報を記憶する。また、記憶部２０は、読書部１０ｅにより不揮発性メモリＭに書き込まれるデータである書き込み情報、不揮発性メモリＭから読み出されたデータである読み込み情報を記憶する。さらに、記憶部２０は、検証部１０ｉによる検証用のデータを記憶する。これらの情報の記憶領域が、各情報の記憶部として機能する。
【００３７】
電源制御部３０は、主装置Ｈからの制御信号及び供給電力に応じて、制御装置１００及び不揮発性メモリＭの起動及び電圧を制御する処理部である。インタフェース部４０は、主装置Ｈとの間で、制御要求、指定アドレス、データ等の情報の入出力を制御する処理部である。
【００３８】
なお、制御装置１００は、専用の電子回路若しくは所定のプログラムで動作するコンピュータ等によって実現できる。電子回路若しくはコンピュータは、上記の各部の処理を行うＣＰＵ、クロック周波数に基づくタイマ機能等を含む。データを含むソフトウェアで処理する範囲、ハードウェアで処理する範囲をどのように構成するかは自由である。
【００３９】
たとえば、メモリ制御部１０、電源制御部３０、インタフェース部４０を、それぞれオペレーティングシステム上で起動するアプリケーションソフトとして構成することもできる。この場合、各ソフトの処理全体若しくはその一部を、タスクとして捉えることができる。また、主装置Ｈを、コンピュータ若しくはコンピュータにより実行されるプログラムやシステムとして捉えた場合に、制御要求は、イベントやメッセージとして出力される。
【００４０】
また、記憶部２０は、コンピュータを構成する各種の記憶媒体により実現できる。記憶媒体としては、典型的には、内蔵されたＲＯＭ、ＲＡＭ等のメモリにより構成できる。ただし、記憶部２０は、現在又は将来において利用可能なあらゆる記憶媒体を利用可能である。記憶媒体におけるどの記憶領域を活用して、記憶部２０を構成するかも自由である。
【００４１】
一時的な記憶領域として使用されるレジスタ、バッファメモリ等も、記憶部２０に含まれる。したがって、たとえば、書き込み、読み込み、データ比較等、各部の処理のために一時的に記憶される記憶領域であっても、記憶部２０として捉えることができる。さらに、不揮発性メモリＭの一部を、記憶部２０として用いることもできる。
【００４２】
［２．作用］
以上のような構成を有する本実施形態の処理手順を、図２〜４のフローチャートを参照して説明する。なお、以下に説明する手順で本実施形態の動作を制御する方法、コンピュータプログラム及びこれを記録した記録媒体も、本発明の一態様である。
【００４３】
［２−１．メモリ制御処理］
まず、不揮発性メモリＭへのデータの読み書きを行うメモリ制御処理を説明する。すなわち、図２のフローチャートに示すように、検知部１０ａは、主装置Ｈの起動等に応じて、電源制御部３０が、制御装置１００の電源をＯＦＦからＯＮにして起動させたか否かを判定する（ステップＳ０１）。
【００４４】
検知部１０ａが、電源ＯＦＦからＯＮの切り替えではなく、すでに起動中であると判定した場合には（ステップＳ０２のＮＯ）、メモリ制御部１０が、メモリ制御処理を実行する（ステップＳ０４）。
【００４５】
このメモリ制御処理を、図３のフローチャートに示す。まず、要求判定部１０ｃは、主装置Ｈからの不揮発性メモリＭへの制御要求が、インタフェース部４０を介して入力されたか否か判定する（ステップＳ１１）。
【００４６】
不揮発性メモリＭへの制御要求とは、上記のように、不揮発性メモリＭへの書き込み要求又は読み込み要求である。メモリ制御は、不揮発性メモリＭへの書き込み又は読み込み制御である。要求判定部１０ｃが、制御要求がないと判定した場合には（ステップＳ１２のＮＯ）、メモリ制御処理は終了する。
【００４７】
要求判定部１０ｃが、制御要求があったと判定した場合には（ステップＳ１２のＹＥＳ）、探索部１０ｄが、記憶部２０に記憶されたエラー情報に基づいて、正常に使用が可能なバンクを探索する（ステップＳ１３）。探索部１０ｄが、使用が可能なバンクを発見できない場合には、全バンクが使用不能であるとして（ステップＳ１４のＹＥＳ）、不揮発性メモリＭの制御処理は終了する。
【００４８】
探索部１０ｄが、使用可能なバンクを発見した場合は（ステップＳ１４のＮＯ）、読書部１０ｅが、正常なバンクに対して、制御要求に応じたメモリ制御を行う（ステップＳ１５）。つまり、読書部１０ｅは、制御要求が書き込み要求の場合、入力されたデータを不揮発性メモリＭへ書き込む。また、読書部１０ｅは、制御要求が読み出し要求の場合、要求されたデータを不揮発性メモリＭから読み込む。
【００４９】
この読書部１０ｅによるメモリ制御において、検出部１０ｆが、エラーが発生したか否かを検出する（ステップＳ１６）。たとえば、検出部１０ｆ及び読書部１０ｅは、上記のベリファイ処理を行う。検出部１０ｆがエラーを検出しなければ（ステップＳ１７のＮＯ）、メモリ制御処理は終了する。
【００５０】
検出部１０ｆがエラーを検出した場合は（ステップＳ１７のＹＥＳ）、登録部１０ｇは、エラーが発生したバンクを、欠陥のあるバンクとして、記憶部２０に登録する。このように登録されたバンクについては、制限部１０ｈが、読書部１０ｅによる使用を制限するので、以後は、再起動時まで使用されない。
【００５１】
［２−２．メモリ復帰処理］
次に、不揮発性メモリＭの復帰処理を説明する。すなわち、図２のフローチャートに示すように、検知部１０ａは、主装置Ｈの起動に応じて、電源制御部３０が、制御装置１００の電源をＯＦＦからＯＮにして起動させたか否かを判定する（ステップＳ０１）。検知部１０ａが、電源ＯＦＦからＯＮの切り替えによる起動を検知した場合には（ステップＳ０２のＹＥＳ）、メモリ制御部１０が、メモリ復帰処理を実行する（ステップＳ０３）。
【００５２】
このメモリ復帰処理を、図４のフローチャートに示す。なお、検知部１０ａによる起動検知に応じて、制限部１０ｈは、読書部１０ｅによる読み書きの制限を解除している。まず、準備処理部１０ｂは、不揮発性メモリＭへの電源供給や通信線の設定による通信の確立等の準備処理を行う（ステップＳ２１）。また、探索部１０ｄは、記憶部２０に記憶されたエラー情報に基づいて、使用が可能なバンクを探索する（ステップＳ２２）。
【００５３】
探索部１０ｄが、使用可能なバンクを探索できた場合は（ステップＳ２３のＮＯ）、メモリ初期処理は終了し、上記のメモリ制御処理へ移行する。探索部１０ｄが、使用可能なバンクを探索できない場合（ステップＳ２３のＹＥＳ）、検証部１０ｉが、不揮発性メモリＭの検証処理を行う（ステップＳ２４）。たとえば、検証部１０ｉが、上記のリードライトテストを行う。
【００５４】
検証部１０ｉが、全てのバンクが使用不能であると判定した場合には（ステップＳ２５のＮＯ）、メモリ初期処理を終了する。この場合、復帰処理は成功しなかったとして、全てのバンクがエラー情報として登録されたままとなる。これにより、全てのバンクが使用不能の状態が維持される。
【００５５】
検証部１０ｉが、使用可能であると判定したバンクについては（ステップＳ２５のＹＥＳ）、解除部１０ｊが、記憶部２０のエラー情報に登録された当該バンクの情報を解除することにより、エラー情報を更新する。これにより、使用可能なバンクが出現するので、以降、メモリ制御処理において利用可能となる（ステップＳ０４）。
【００５６】
［３．効果］
以上のように、本実施形態によれば、一旦、使用できないバンクとしてエラー情報に登録されたバンクであっても、メモリ復帰処理により、使用可能なバンクとして復帰させることができる。このため、使用できないバンクに対して無駄なメモリ処理を行うことを防止して装置の負担軽減を図りつつ、使用可能となったバンクを有する不揮発性メモリを、交換や破棄することなく継続して使用できる。
【００５７】
また、使用可能なバンクが存在する場合には、検証部１０ｉによる検証は行わず、全てのバンクがエラー情報として登録されている場合にのみ、検証部１０ｉによる検証を行うので、効率の良いメモリ復帰処理が可能となる。
【００５８】
また、検証部１０ｉによる検証は、起動時のみに行うので、処理負担が軽減される。起動時は、不揮発性メモリＭがリセットされるため、復帰できる可能性が高まる。さらに、起動時には周囲のノイズ等の影響が少ないため、検証の誤りを防止できる。
【００５９】
また、全てのバンクについてエラーが検出された場合には、制限部１０ｈが、読書部１０ｅによる読み書きを制限する。このため、欠陥の可能性の高いバンクを使用して再度エラーとなるような無駄な処理を防止できる。そして、異常が発生して予測できない現象に繋がる事態を防止できる。
【００６０】
［４．他の実施形態］
本発明は上記のような実施形態には限定されない。たとえば、上記の実施形態では、全てのバンクが使用できない場合にのみ、検証部１０ｉによる検証を行なっていた。しかし、一部のバンクが使用できる場合にも、エラー情報として登録されたバンクに対して、検証部１０ｉによる検証を行なって、使用可能とされたバンクについて、解除部１０ｊが、エラー情報を解除してもよい。
【００６１】
登録部１０ｇがエラー情報を登録する記憶媒体としては、記憶部２０ではなく、不揮発性メモリＭの正常なバンクを利用してもよい。この場合、不揮発性メモリＭには、エラー情報の登録用の領域として、特別な領域を確保してもよいし、通常の情報の記憶領域を用いてもよい。記憶部２０として、不揮発性メモリＭとは別に設けた不揮発性メモリを使用してもよい。
【００６２】
また、検証部１０ｉによる検証を行う対象は、エラー情報として登録された全バンクであってもよいし、その一部のバンクとしてもよい。使用可能なバンクが発見された段階で、他のバンクの検証処理を省略することで、処理を高速化させることができる。
【００６３】
さらに、上記の実施形態では、不揮発性メモリ復帰処理を行う際に、探索部１０ｄによる探索を行って（ステップＳ２２）、全てのバンクが使用できない場合に（ステップＳ２３のＹＥＳ）、検証部１０ｉによる検証を行っていた（ステップＳ２４）。しかし、このような探索部１０ｄによる探索処理を省略して、不揮発性メモリ準備処理を行った後（ステップＳ２１）、検証部１０ｉによる検証を行ってもよい（ステップＳ２４）。この場合、全バンクを所定の順序で検証してもよいし、エラー情報として登録されたバンクを所定の順序で検証してもよい。所定の順序は、たとえば、バンクの番号順とすることが考えられる。また、この場合も、使用可能なバンクが発見された段階で、他のバンクの検証処理を省略して、処理の高速化を図ってもよい。全てのバンク若しくはエラー情報として登録された全てのバンクを検証して、使用可能なバンクを可能な限り多く確保できるようにしてもよい。
【００６４】
検出部１０ｆや検証部１０ｉによるエラーの検出方法としては、ベリファイやリードライトテストには限定されない。チェックサム、パリティ、ＣＲＣ等、現在又は将来において、メモリのエラーを検出可能なあらゆる手法を含む。たとえば、チェックサムの場合には、所定の計算式を用いて、書き込む前の値の計算結果と、書き込み後の値の計算結果とを比較することにより行う。ベリファイは、通常は、書き込み時に行うが、読み込み時にも、上記のようないずれかのエラー検出方法を用いて、エラーを検出してもよい。
【００６５】
不揮発性メモリＭにおける所定の単位の領域としては、バンクには限定されない。ページ、セグメント、ブロック等、どのような単位の領域であってもよく、実質的に同一で呼び名が異なる場合、実質的に相違するが呼び名が一致するような場合でも、所定の単位の領域に含まれる。物理的に独立した複数の不揮発性メモリを単位の領域としても、各不揮発性メモリの記憶領域を複数に分けたものを単位の領域としてもよい。
【符号の説明】
【００６６】
１０…メモリ制御部
１０ａ…検知部
１０ｂ…準備処理部
１０ｃ…要求判定部
１０ｄ…探索部
１０ｅ…読書部
１０ｆ…検出部
１０ｇ…登録部
１０ｈ…制限部
１０ｉ…検証部
１０ｊ…解除部
２０…記憶部
３０…電源制御部
４０…インタフェース部
１００…制御装置
Ｈ…主装置
Ｍ…不揮発性メモリ
【図１】
2013228876.tif 000003
【図２】
2013228876.tif 000004
【図３】
2013228876.tif 000005
【図４】
2013228876.tif 000006