(57)【要約】【課題】不揮発性メモリのデータ信頼性向上と読出アクセス時間の高速化及び安定化【解決手段】不揮発性メモリに記憶されたデータについて、近い将来リフレッシュが必要となるか否か、つまりリフレッシュ機会が近接しているか否かを推測する。この推測にはアクセス時のビットエラー数などを記憶した評価用情報を用いる。そしてリフレッシュ機会が近接していると判定されるデータについて、そのデータをオリジナルデータとして、オリジナルデータと同一のクローンデータを、不揮発性メモリ内に生成する。その場合、アクセス実行の際にオリジナルデータとクローンデータのいずれか一方がアクセス対象となるように、管理情報を更新する。【選択図】図８
2012238259.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに記憶されたデータであって、リフレッシュ必要性に関する評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、上記不揮発性メモリ内に生成する処理を行うクローン生成処理部と、
上記オリジナルデータと上記クローンデータのいずれか一方が、アクセス実行の際のアクセス対象となるように、管理情報を更新する管理情報処理部と、
上記不揮発性メモリに記憶されたデータのアクセス時に、該データについての上記評価用情報を生成する評価用情報処理部と、
を備えた制御装置。
【請求項２】
上記管理情報処理部は、上記クローンデータが生成されたデータについては、上記クローンデータがアクセス対象となる主データとし、上記オリジナルデータがアクセス対象とはならない副データとして管理されるように、上記管理情報を更新する請求項１に記載の制御装置。
【請求項３】
上記主データがリフレッシュ機会に至ったと判断される場合、上記管理情報処理部は、上記オリジナルデータがアクセス対象の主データとして管理されるように、上記管理情報を更新する請求項２に記載の制御装置。
【請求項４】
上記オリジナルデータが上記主データとされた後、該主データがリフレッシュ機会に至ったと判断される場合に、上記オリジナルデータについてのリフレッシュ動作制御を行うリフレッシュ制御部を、さらに備える請求項３に記載の制御装置。
【請求項５】
上記管理情報処理部は、上記不揮発性メモリの起動時において、上記クローンデータが生成されているデータについて、上記主データ又は上記副データの一方が破棄されるように、上記管理情報を更新する請求項２に記載の制御装置。
【請求項６】
上記評価用情報処理部は、上記クローン生成処理部が上記クローンデータの生成処理を行ったデータに関する上記評価用情報をクリアする請求項２に記載の制御装置。
【請求項７】
上記クローン生成処理部は、上記不揮発性メモリの起動時に、不揮発性メモリに記憶されたデータについて、上記評価用情報に基づいてリフレッシュ機会が近接しているか否かを判定し、リフレッシュ機会が近接していると判定したデータについて、上記クローンデータの生成処理を行う請求項１に記載の制御装置。
【請求項８】
上記評価用情報処理部は、上記不揮発性メモリに記憶されたデータのアクセス時に、該データについて、リフレッシュ機会が近接しているか否かを判定し、リフレッシュ機会が近接していると判定した場合に、該データについての上記評価用情報を生成し、
上記クローン生成処理部は、上記不揮発性メモリの起動時に、上記評価用情報に基づいて、リフレッシュ機会が近接していると判定されたデータについて、上記クローンデータの生成処理を行う請求項１に記載の制御装置。
【請求項９】
上記管理情報処理部は、上記クローンデータが生成されたデータについては、上記オリジナルデータがアクセス対象となる主データとし、上記クローンデータがアクセス対象とはならない副データとして管理されるように、上記管理情報を更新する請求項１に記載の制御装置。
【請求項１０】
上記主データがリフレッシュ機会に至った場合、上記管理情報処理部は、上記クローンデータがアクセス対象の主データとして管理されるように、上記管理情報を更新する請求項９に記載の制御装置。
【請求項１１】
上記管理情報処理部は、上記不揮発性メモリの起動時において、上記クローンデータが生成されているデータについて、上記主データ又は上記副データの一方が破棄されるように、上記管理情報を更新する請求項８に記載の制御装置。
【請求項１２】
上記評価用情報は、所定データ単位についての、ビットエラー発生数、読出回数、消去回数の、少なくとも１つを含む請求項１に記載の制御装置。
【請求項１３】
不揮発性メモリと、
上記不揮発性メモリに記憶されたデータであって、リフレッシュ必要性に関する評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、上記不揮発性メモリ内に生成する処理を行うクローン生成処理部と、
上記オリジナルデータと上記クローンデータのいずれか一方が、アクセス実行の際のアクセス対象となるように、管理情報を更新する管理情報処理部と、
上記不揮発性メモリに記憶されたデータのアクセス時に、該データについての上記評価用情報を生成する評価用情報処理部と、
を備えた記憶装置。
【請求項１４】
不揮発性メモリに記憶されたデータであって、リフレッシュ必要性に関する評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、上記不揮発性メモリ内に生成する処理を行うクローン生成ステップと、
上記オリジナルデータと上記クローンデータのいずれか一方が、アクセス実行の際のアクセス対象となるように、管理情報を更新する管理情報処理ステップと、
上記不揮発性メモリに記憶されたデータのアクセス時に、該データについての上記評価用情報を生成する評価用情報処理ステップと、
を備えた制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御装置、記憶装置、読出制御方法に関し、特に不揮発性メモリの信頼性向上やアクセスタイムの高速化、安定化を実現する技術に関する。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特開２００９−７００９８号公報
【特許文献２】特開２００７−３３４８５２号公報
【特許文献３】特開２００７−１９３８３８号公報
【特許文献４】特開２００７−５８８４０号公報
【背景技術】
【０００３】
例えばＮＡＮＤ型フラッシュメモリなどの不揮発性メモリを用いた記憶装置が普及している。不揮発性メモリは、例えば各種電子機器、情報処理装置などで使用されるメモリカード、ＳＳＤ（Solid State Drive）、ｅＭＭＣ（Embedded MultiMedia Card）などで利用されている。
上記特許文献１〜４にはフラッシュメモリを用いた記憶装置が開示されている。
【０００４】
不揮発性メモリでは、物理的な記憶領域のアドレスとして物理アドレスが使用される。これにより物理ブロック、物理ページ、物理セクタが設定されている。複数の物理セクタで物理ページが構成され、また複数の物理ページで物理ブロックが構成される。
消去（イレーズ）は物理ブロック単位で行われ、書込（プログラム）及び読出（リード）は物理ページ単位で可能とされる。
ホスト側やメモリ制御部側からのアドレス指定は、論理アドレスが用いられる。論理アドレスによる論理ブロック、論理ページ、論理セクタが、上記の物理アドレスに対応づけられる。これによりアクセス要求時には論理アドレスが物理アドレスに変換されて、実際のフラッシュメモリへのアクセスが実行される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところでＮＡＮＤ型フラッシュメモリでは、書き込まれたデータを読み出した際に、ビット化け（ビットエラー）などが発生した場合に備えて、誤り訂正符号を用いて、データの信頼性を高めてきた。
しかし、近年、ＮＡＮＤ型フラッシュメモリのプロセス微細化により、書き込まれたデータを繰り返し読み出し続けるとデータのビット化けが発生する現象が発生しやすくなっており、訂正しきれないほどのビット化けが発生しやすくなってきている。
【０００６】
こうした状況に対して、ビット化けが発生したものを訂正するだけではなく、訂正が可能なうちにデータのリフレッシュ動作を行うことにより、ビット化けが発生しにくい状況にする手法が知られている。
従来のリフレッシュ手法は、ビット化けの発生数や、読み出しや書き換えの回数などが、一定の閾値を超えたら、リフレッシュ機会に至ったと判断し、リフレッシュ動作を行うものである。
【０００７】
ところがこうした従来手法を用いると、閾値を超える状態が発生すると、すぐにリフレッシュ動作を開始するため、読出アクセスの際の処理速度を低下させてしまうという問題がある。またリフレッシュ動作が起きる場合と起きない場合とで処理速度にバラつきが生じる。
【０００８】
本開示ではこのような問題に鑑みて、不揮発性メモリに記憶されたデータの信頼性を高めるとともに、アクセスの際の処理速度の高速化、安定化を実現することを目的とする。
【課題を解決するための手段】
【０００９】
本開示の制御装置は、不揮発性メモリに記憶されたデータであって、リフレッシュ必要性に関する評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、上記不揮発性メモリ内に生成する処理を行うクローン生成処理部と、上記オリジナルデータと上記クローンデータのいずれか一方が、アクセス実行の際のアクセス対象となるように、管理情報を更新する管理情報処理部と、上記不揮発性メモリに記憶されたデータのアクセス時に、該データについての上記評価用情報を生成する評価用情報処理部とを備える。
【００１０】
本開示の記憶装置は、不揮発性メモリと、上記不揮発性メモリに記憶されたデータであって、リフレッシュ必要性に関する評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、上記不揮発性メモリ内に生成する処理を行うクローン生成処理部と、上記オリジナルデータと上記クローンデータのいずれか一方が、アクセス実行の際のアクセス対象となるように、管理情報を更新する管理情報処理部と、上記不揮発性メモリに記憶されたデータのアクセス時に、該データについての上記評価用情報を生成する評価用情報処理部とを備える。
【００１１】
本開示の制御方法は、不揮発性メモリに記憶されたデータであって、リフレッシュ必要性に関する評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、上記不揮発性メモリ内に生成する処理を行うクローン生成ステップと、上記オリジナルデータと上記クローンデータのいずれか一方が、アクセス実行の際のアクセス対象となるように、管理情報を更新する管理情報処理ステップと、上記不揮発性メモリに記憶されたデータのアクセス時に、該データについての上記評価用情報を生成する評価用情報処理ステップとを備える。
【００１２】
これらの本開示の技術では、記憶されたデータについての信頼性を表す値が一定の閾値を超えた時などのリフレッシュ動作が必要に迫られた場合（リフレッシュ機会に至った場合）ではなく、信頼性を示す値を記憶した評価用情報を用いて、リフレッシュ動作がいずれ必要となる可能性が高いデータを推測する。そして事前にそのデータについてクローンデータを複製することで、読み出し時の処理速度の低下させることなく信頼性低下を防ぐ。
即ち、リフレッシュ動作が近いうちに必要となると推測されるデータについてクローンデータを複製し、同一内容のデータを２重に保持する。そしてオリジナルデータとクローンデータのいずれか一方をアクセス対象の主データとして管理し、他方をアクセス対象でない副データとする。そのデータを読み出す際には、主データ（例えばクローンデータ）から読み出しを行い、繰り返しの読出により信頼性の低下が起こった場合、その時点でリフレッシュを行うことなく、論理的な管理情報において主データと副データを入れ替えたうえで新たな主データ（例えばオリジナルデータ）から読出が行われるようにする。
これにより、読出時に信頼性低下が起きた場合でも、即時のリフレッシュ動作が不要となる。
【発明の効果】
【００１３】
本開示の技術によれば、信頼性が比較的低下傾向にあるデータについて、クローンデータを生成し、データ内容を２重に保持するため、データの信頼性を向上できる。特にクローンデータ側を主データとして読出アクセスの対象とすれば、リフレッシュと同様の新たなデータであるため、信頼性が回復した状態となる。
さらにその上で、読み出していた方の主データについてリフレッシュ機会に至ったら、主データと副データを入れ替えて、以降は新たな主データに対して読出を行うようにする。これらのことにより、リフレッシュ動作を実行する機会を非常に希とすることができ、殆どの場合で、リフレッシュを伴わないことで、アクセス速度の高速化、安定化を実現できる。
【図面の簡単な説明】
【００１４】
【図１】本開示の実施の形態のメモリカードの構成のブロック図である。
【図２】実施の形態の制御部の機能構成の説明図である。
【図３】従来手法でリフレッシュが実行される場合、及び信頼性低下の説明図である。
【図４】リフレッシュの実行によるアクセス時間の変動の説明図である。
【図５】実施の形態でのアクセス時間の安定化の説明図である。
【図６】第１、第２の実施の形態のクローンデータ生成に伴う動作の説明図である。
【図７】実施の形態の評価用情報の一例の説明図である。
【図８】第１の実施の形態の起動時の処理のフローチャートである。
【図９】第１の実施の形態のリード時の処理のフローチャートである。
【図１０】実施の形態のリフレッシュ機会近接推定の説明図である。
【図１１】実施の形態の動作によるデータ読出回数の説明図である。
【図１２】第２の実施の形態の評価用情報の更新の説明図である。
【図１３】第２の実施の形態の起動時の処理のフローチャートである。
【図１４】第２の実施の形態のリード時の処理のフローチャートである。
【図１５】第３の実施の形態のクローンデータ生成に伴う動作の説明図である。
【発明を実施するための形態】
【００１５】
以下、実施の形態について次の順序で説明する。なお、実施の形態で示すメモリカード１が請求項でいう記憶装置の実施の形態となる。またメモリカード１内の制御部１１が、請求項でいう制御装置の実施の形態であり、制御部１１による処理が請求項でいう制御方法の実施の形態となる。
＜１．メモリカード構成＞
＜２．リフレッシュによる処理速度の低下及びバラツキの解消＞
＜３．第１の実施の形態＞
［３−１：動作概要］
［３−２：評価用情報］
［３−３：処理例］
＜４．第２の実施の形態＞
＜５．第３の実施の形態＞
＜６．変形例＞
【００１６】
＜１．メモリカード構成＞
図１に実施の形態のメモリカード１の構成例を示す。
メモリカード１はホスト機器２に接続され、記憶装置として用いられる。ホスト機器２とは、例えばパーソナルコンピュータ、デジタルスチルカメラ、ビデオカメラ、オーディオプレーヤ、ビデオプレーヤ、ゲーム機器、携帯電話機、ＰＤＡ（Personal Digital Assistant）等の情報端末など、各種の電子機器、情報処理装置が想定される。
【００１７】
メモリカード１は、制御部（ＣＰＵ：Central Processing Unit）１１、ＳＲＡＭ（Static Random Access Memory）１２、デバイスインターフェース１３、バッファＲＡＭ、及び不揮発性メモリ（Non-Volatile Memory）１５を備える。
【００１８】
制御部１１はメモリカード１の全体を制御する。このため制御部１１はＳＲＡＭ１２に置かれた命令コードを逐次実行する。主に制御部１１は、ホスト機器２からのコマンドに応じたデータの書込や読出を実行させる。このため制御部１１は、デバイスインターフェース１３のホスト機器２とのデータ送受信動作制御、バッファＲＡＭ１４の書込／読出動作の制御、不揮発性メモリ１５へのアクセス動作の制御を行う。
ＳＲＡＭ１２は、制御部１１が実行するプログラム（ファームウェア）の記憶や、ワーク領域として使用される。
デバイスインターフェース１３はホスト機器２との間の通信を行う。
バッファＲＡＭ１４はホスト機器２との間の転送データ（書込データや読出データ）のバッファリングに用いられる。
不揮発性メモリ１５は、例えばＮＡＮＤ型フラッシュメモリである。
【００１９】
メモリカード１の基本的な動作としては、データ書込時には、ホスト機器２から書込要求とともに、書込アドレス、データサイズ、さらに書き込むべきデータが送られてくる。
ホスト機器２から送られてくる書き込むデータは、デバイスインターフェース１３で受信されてバッファＲＡＭ１４にバッファリングされる。そして制御部１１の制御の元、データが不揮発性メモリ１５に書き込まれる。制御部１１は書込要求、書込アドレス、データサイズに応じてこれらの動作を制御する。
データ読出時にはホスト機器２から読出要求とともに、読出アドレス、データサイズが送られてくる。制御部１１は、読出アドレス、データサイズに基づいて不揮発性メモリ１５から指示されたデータの読出を行い、バッファＲＡＭ１４にバッファリングする。また制御部１１はバッファリングされた読出データに対してエラー訂正処理等を行う。そして読出データはバッファＲＡＭ１４からデバイスインターフェース１３に転送され、ホスト機器２に送信される。
【００２０】
ところで不揮発性メモリ１５は、物理的な記憶領域のアドレスとして物理アドレスが使用される。これにより物理ブロック（Physical Block）、物理ページ（Physical Page）、物理セクタ（Physical Sector）が設定されている。複数の物理セクタで物理ページが構成され、また複数の物理ページで物理ブロックが構成される。
消去（イレーズ）は物理ブロック単位で行われ、書込（プログラム）及び読出（リード）は物理ページ単位で可能とされる。
ホスト機器２側からのアドレス指定は、論理アドレスが用いられる。論理アドレスによる論理ブロック、論理ページ、論理セクタが、上記の物理アドレスに対応づけられる。即ち制御部１１は論理アドレスと物理アドレスを対応づける管理情報を有し、ホスト機器２からのアクセス要求時には、指定される論理アドレスを管理情報を参照して物理アドレスに変換する。そして物理アドレスにより、実際の不揮発性メモリ１５へのアクセスを実行する。
【００２１】
ここで本実施の形態の場合、後述する動作を実行するための機能（ソフトウエアにより実現される処理機能）として、図２に示すようにアクセス制御部３１、クローン生成処理部３２、管理情報処理部３３、評価用情報処理部３４、リフレッシュ制御部３５を備える。
なお、ここではこれらの機能部位がＣＰＵ１１の処理として発現するソフトウエア機能として設けられているとするが、これらがハードウエアにより形成されてもかまわない。
また制御部１１の管理のもと、例えばＳＲＡＭ１２に、管理情報部４１、評価用情報テーブル４２としての領域が用意され、管理情報や評価用情報が記憶される。
【００２２】
管理情報部４１は、上述の論理アドレスと物理アドレスの変換情報や、不揮発性メモリ１５に記憶されているデータのディレクトリ情報等の管理情報を記憶する。即ち、ホスト機器２からのコマンドに応じて、制御部１１が不揮発性メモリ１５への書込や読出を実行させるために必要となる情報である。
なお、管理情報では、後述するクローンデータが生成されたデータについては、オリジナルデータとクローンデータの一方をアクセス対象として管理する。つまり或る論理アドレスに対応して、オリジナルデータとクローンデータの一方の物理アドレスが導かれる状態とする。他方のデータについては、アクセス対象ではないデータであって、アクセス対象のデータと同一のデータであるものとして管理する。
【００２３】
評価用情報テーブル４２は、詳しくは後述するが、各データ単位（一例としては物理ブロック単位）について、信頼性の度合いを評価するための情報としての評価用情報を記憶する。本実施の形態の場合、評価用情報は、各データ単位について、近い将来にリフレッシュ機会に至るか否かを推定するための情報となる。例えば所定のデータ単位毎についての、ビットエラー発生数、読出回数、消去回数の、少なくとも１つを含む情報である。
【００２４】
なお、管理情報，評価用情報の一方又は両方は、不揮発性メモリ１５に常時格納されても良いし、不揮発性メモリ１５内に記憶され、起動時にＳＲＡＭ１２に展開されて制御部１１によって参照・更新されるようにしてもよい。或いは不揮発性メモリ１５以外に不揮発的な記憶領域を用意して、そこに格納してもよい。
即ち管理情報、評価用情報は、不揮発的に保持され、メモリカード１の起動中に制御部１１が参照・更新できるようにされていれば、どのような形態で保持されていても良い。
【００２５】
制御部１１におけるアクセス制御部３１は、ホスト機器２からのコマンドに応じて不揮発性メモリ１５へのデータ書込アクセス又はデータ読出アクセスを実行制御する機能である。アクセス制御部３１は管理情報部４１の管理情報を参照して、ホスト機器２からのコマンドに対応した不揮発性メモリ１５へのアクセスを実行する。
【００２６】
クローン生成処理部３２は、不揮発性メモリ１５に記憶されたデータであって、リフレッシュ必要性に関する評価用情報テーブル４２の評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、不揮発性メモリ１５内に生成する処理を行う機能である。
例えば後述する第１、第３の実施の形態では、クローン生成処理部３２は、メモリカード１の起動時に、不揮発性メモリ１５に記憶されたデータについて、評価用情報に基づいてリフレッシュ機会が近接しているか否かを判定する。そしてリフレッシュ機会が近接していると判定したデータについて、クローンデータの生成処理を行う。
また第２の実施の形態では、メモリカード１の起動時に、既にリフレッシュ機会が近接しているデータ単位について記憶された評価用情報を参照し、そのデータについてクローンデータの生成処理を行う。
【００２７】
管理情報処理部３３は、管理情報部４１の内容（管理情報）の更新を行う。特にクローン生成処理部３２によってクローンデータが生成された場合は、オリジナルデータとクローンデータのいずれか一方がアクセス対象となるように、管理情報を更新する。
例えば第１、第２の実施の形態では、管理情報処理部３３は、クローンデータが生成されたデータについては、クローンデータがアクセス対象となる主データとし、オリジナルデータがアクセス対象とはならない副データとして管理されるように、管理情報を更新する。
さらにその場合において、主データがリフレッシュ機会に至ったと判断される場合、管理情報処理部３３は、主副データを入れ替える。つまりオリジナルデータがアクセス対象の主データとして管理されるように、管理情報を更新する。
また管理情報処理部３３は、起動時において、クローンデータが生成されているデータについて、主データ又は副データの一方が破棄されるように、管理情報を更新する。
【００２８】
また第３の実施の形態では、管理情報処理部３３は、クローンデータが生成されたデータについては、オリジナルデータがアクセス対象となる主データとし、クローンデータがアクセス対象とはならない副データとして管理されるように、管理情報を更新する。
その場合において主データがリフレッシュ機会に至った場合、管理情報処理部３３は主副データを入れ替える。つまり、クローンデータがアクセス対象の主データとして管理されるように管理情報を更新する。この場合も管理情報処理部３３は、起動時において、クローンデータが生成されているデータについて、主データ又は副データの一方が破棄されるように、管理情報を更新する。
【００２９】
評価用情報処理部３４は、不揮発性メモリ１５に記憶されたデータのアクセス時に、該データについての信頼性の評価用情報（ビットエラー数等の値）を検出或いは生成し、評価用情報テーブル４２に追加・更新を行う。
また評価用情報処理部３４は、クローン生成処理部３２がクローンデータの生成処理を行ったデータに関する評価用情報を、評価用情報テーブル４２からクリアする処理も行う。
また第２の実施の形態の場合、評価用情報処理部３４は、不揮発性メモリ１５に記憶されたデータのアクセス時に、該データについて、リフレッシュ機会が近接しているか否かを判定し、リフレッシュ機会が近接していると判定した場合に、該データについての上記評価用情報を生成し、評価用情報テーブル４２に追加する処理を行う。
【００３０】
リフレッシュ制御部３５は、不揮発性メモリ１５に記憶されているデータのリフレッシュ動作の実行を制御する機能である。リフレッシュ動作は、簡単に言えば、或るデータ単位で、当該データについて、不揮発性メモリ１５内の他の領域にコピーする動作である。実質的には、上述のクローンデータ生成と同様の動作となる。本実施の形態の場合、リフレッシュ動作に至ることは希となるが、リフレッシュを行う場合は、リフレッシュ制御部３５が不揮発性メモリ１５上でのデータコピーによるリフレッシュの実行を制御することになる。
【００３１】
＜２．リフレッシュによる処理速度の低下及びバラツキの解消＞
ここで、本実施の形態に至る従前のアクセスの場合の処理速度に関して説明した上で、本実施の形態で処理速度の低下及び速度バラツキを解消する手法の概要について説明する。
【００３２】
まず図３で、従前の方式でリフレッシュが行われる場合を説明する。
先にも述べたように、近年、ＮＡＮＤ型フラッシュメモリのプロセス微細化により、書き込まれたデータを繰り返し読み出し続けるとデータのビット化けが発生する現象が発生しやすくなっており、訂正しきれないほどのビット化けが発生しやすくなってきている。
図３Ｂには、半導体不揮発性メモリに対するリード／ライト回数と信頼性の関係を示している。図示のように、半導体不揮発性メモリは、読み出し処理や書き換え処理を繰り返し行うことによりデータの信頼性が低下する特性を持つ。
こうした半導体不揮発性メモリを用いた記憶システムにおいて、データの信頼性低下を防ぐ方法として、信頼性を表す値が一定の閾値を超えた場合に、不揮発性メモリ上のデータのリフレッシュを行う手法が用いられている。
具体的には、リード時等にビット化けの発生数や、読み出しや書き換えの回数などが、一定の閾値を超えた場合に即座にリフレッシュ動作を行うようにしていた。
【００３３】
図３Ａにその動作を示す。図３では、ホスト機器３、制御部１１、不揮発性メモリ１５の動作として、従来手法を実行する場合を示している。
ホスト機器２からリードコマンドが送信されると、制御部１１は不揮発性メモリ１５に対してのリードオペレーションを実行する。これにより不揮発性メモリ１５からバッファＲＡＭ１４にデータが読み出される。この間、不揮発性メモリ１５はビジー状態となる。
制御部１１はバッファＲＡＭ１４に読み出したデータに対して、エラー検出、エラー訂正を行い、またエラー検出の結果としてのビット化け数等を判定する。即ち今回読み出したデータについてリフレッシュが必要か否かを判定する。
そしてリフレッシュが必要と判定したら、制御部１１はリフレッシュオペレーションを実行する。即ち不揮発性メモリ１５において、今回のデータを、不揮発性メモリ１５内の他の領域にコピーして、元のデータをコピーデータに置き換える処理を行う。この間、不揮発性メモリ１５はビジー状態となる。
リフレッシュが完了したら、読み出したデータを、ホスト機器２に転送する。
【００３４】
このように、ビット化け数等の評価指標を用い、それが閾値を超えたら直ぐにリフレッシュを行うことで、訂正しきれないほどのエラーが生じることとなる前にデータを置き換え、信頼性を回復させる。
ところが、このようにリフレッシュ動作を行うと、ホスト機器２からみての処理速度が低下することになる。つまりコマンド発行からリードデータ受信までの時間が長くなる。
【００３５】
また、リフレッシュ動作が起きる場合と起きない場合とで処理速度にバラつきが生じるということもある。
図４は、リフレッシュ動作が行われない場合と行われる場合の処理時間を示している。
ホスト機器２が時点ｔｓ１にリードコマンドを送信して、制御部１１がリードオペレーションを実行したとする。この場合は、リフレッシュが必要とは判断されず、時点ｔｓ２でリードデータがホスト機器２に転送されたとしている。
一方、ホスト機器２が時点ｔｓ３にもリードコマンドを送信して、制御部１１がリードオペレーションを実行したとする。この場合は、リフレッシュが必要と判断され、リフレッシュオペレーションが実行され、その後、時点ｔｓ４でリードデータがホスト機器２に転送されたとしている。
この各場合のように、リフレッシュ動作が実行されるか否かで、ホスト機器２からみての処理時間は、時間Ｔ１、Ｔ２と大きく異なる。
【００３６】
これらの状況に対し、本実施の形態では、不揮発性メモリ１５のデータの信頼性を維持しつつ、リフレッシュ動作が行われる機会を最小限とし、処理速度低下の防止や処理時間のバラツキを殆ど発生しなくなるようにする。
このため本実施の形態では、データの信頼性を表す値が一定の閾値を超えた時など、リフレッシュ動作が必要に迫られた場合ではなく、信頼性を示す値（評価用情報）を用いてリフレッシュ動作がいずれ必要となる可能性が高いデータを推測し、事前にそのデータをクローンデータとして複製する。これにより読み出し時の処理速度を低下させることなく信頼性低下を防ぐ。
【００３７】
具体例は第１〜第３の実施の形態として後述するが、本例の場合、処理時間に関しては殆どの場合、図５に示すようになる。
図５において、ホスト機器２が時点ｔｓ１１にリードコマンドを送信して、制御部１１がリードオペレーションを実行したとする。この場合は、リフレッシュが必要とは判断されず、時点ｔｓ１２でリードデータがホスト機器２に転送されたとしている。
一方、ホスト機器２が時点ｔｓ１３にもリードコマンドを送信して、制御部１１がリードオペレーションを実行したとする。この場合は、リフレッシュが必要と判断される状況だったとする。しかしこの場合、リフレッシュオペレーションは実行せず、管理情報を更新する。これは、それまでクローンデータとオリジナルデータの一方が、管理情報上でアクセス対象のデータとされていたところ、これを入れ替えて、他方をアクセス対象のデータとする処理である。
この処理を行って、時点ｔｓ１４でリードデータをホスト機器２に転送する。
【００３８】
管理情報の更新は、リフレッシュ動作に比べて極めて短い時間で完了できる。この結果、リフレッシュ必要性の判定に関わらず、ホスト機器２からみての処理時間は、時間Ｔ３、Ｔ４で殆ど変わらない。
また、リフレッシュ必要性の判定がなされたとしても、その後は、アクセス対象がクローンデータとオリジナルデータの間で置き換えられているため、次回のアクセス時からのデータの信頼性は回復されている。
【００３９】
＜３．第１の実施の形態＞
［３−１：動作概要］
以下、具体的な処理例として第１の実施の形態を説明する。
第１の実施の形態は、メモリカード１の起動時に、信頼性を表す値をもとに記録した評価用情報を用いて、不揮発性メモリ１５に記憶されている各データにつき、リフレッシュ動作が近い将来に必要となるか否かを推測する。
この判定の対象の各データとは、例えば物理ブロック単位のデータとして説明するが、これに限られない。消去単位が物理ブロックであるため、少なくとも物理ブロック単位の以上の単位のデータであればよい。例えば管理情報上で、１つのデータファイルとして管理される単位でもよいし、データファイルをいくつかに分割した単位でもよい。また複数の物理ブロックの単位でもよい。
【００４０】
リフレッシュ動作が近く必要になると判定されたデータについては、事前に（起動時に）クローンデータを複製する。即ち該当データを、不揮発性メモリ１５内でオリジナルデータとクローンデータという形で２重に保持する。管理情報上では、クローンデータとオリジナルデータの一方をアクセス対象のデータとして管理する。
なお、管理情報において、アクセス対象として管理されるデータ、つまりホストからのコマンドに応じてアクセスされるデータを説明上「主データ」とし、他方を「副データ」ということとする。
第１の実施の形態では、クローンデータ側を主データとする。
【００４１】
実際に、ホスト機器２からのアクセス要求があった場合は、制御部１１は管理情報に基づいて主データのアクセスを行い、読み出されたデータをホスト機器２に転送する。
この場合に、読み出したデータが、即時リフレッシュが必要な状態になっていたら、主データと副データを入れ替える。これによりデータ信頼性を回復させる。
【００４２】
このような動作を、図６で、不揮発性メモリ１５内の或るデータＤＴを代表例として、その変遷を模式的に示す。状態ＳＴ０〜ＳＴ６として、各時点での不揮発性メモリ１５内でのデータＤＴに関する状態を示している。データＤＴとは、例えば１つの物理ブロック単位などである。
【００４３】
例えば起動時に、図６の状態ＳＴ０であるとする。即ち不揮発性メモリ１５内にあるデータＤＴが記憶されているとする。ここでデータＤＴについて、図６では「ＤＴｍ」「ＤＴｓ」の表記をしているが、「ＤＴｍ」は、上記の主データ、つまり管理情報において、リードコマンドに応じたアクセス対象として管理されているデータを意味する。一方、「ＤＴｓ」は、アクセス対象としては管理されていない副データを意味する。クローンデータが形成されていないデータＤＴについては、当然「ＤＴｍ］となる。
【００４４】
まず起動時に、制御部１１は各データ単位について、リフレッシュ動作が近く必要になるか否かを判定する。状態ＳＴ０におけるデータＤＴｍが、リフレッシュ動作が近く必要に成るデータでは無いと判断したときは、そのままである。即ち状態ＳＴ１として、その後のリードコマンドに対しては、データＤＴｍがアクセス対象となる。
【００４５】
一方、データＤＴｍについて、リフレッシュ機会が近接していると判断される場合は、状態ＳＴ２に示すように、クローンデータを生成する。
さらに、状態ＳＴ３として、生成したクローンデータを主データ、オリジナルデータを副データとするように管理情報の更新を行う。
従ってその後のリードコマンドに対しては、クローンデータであるデータＤＴｍがアクセス対象となる。クローンデータは、この時点でフレッシュなデータであり、オリジナルデータに比して信頼性が回復されたものとなっている。そのため、その後のリード機会があっても、かなりのリード回数までは、即時リフレッシュ必要と判定されることは、殆ど無い。
【００４６】
この状態ＳＴ３で通常のメモリカード１の動作が継続して行われた後、一旦、ホスト機器２からの接続が解消、或いはホスト機器２電源オフなどに伴って、メモリカード１の動作がオフとされたとする。そしてその後、ホスト機器２との接続、或いはホスト機器２の電源オンなどに伴って、メモリカード１が起動されたとする。
その場合の起動時は、状態ＳＴ５となっている。この場合には、主データと副データの一方、例えば副データＤＴｓを破棄（消去）する。そして状態ＳＴ０に戻り、上記同様の処理を行う。副データ（オリジナルデータ側）を破棄するのは、そのオリジナルデータが、前回の起動時においてリフレッシュ機会近接と判断され、信頼性が比較的低下しているためである。つまり主データ（クローンデータ側）を残した方が、信頼性の点で好適と考えられるためである。
なお、クローンデータ側も、前回の起動中に非常に多数回アクセスされるなどして、信頼性が低下し、リフレッシュ機会が近接している場合もある。ところがその場合は、今回の起動時に状態ＳＴ０→ＳＴ２として、前回のクローンデータをオリジナルとして、新たにクローンデータが生成されることとなるため、信頼性は回復される。
【００４７】
ところで、上記のように状態ＳＴ３で通常のメモリカード１の動作が継続して行われた場合において、或る時点でのデータＤＴｍのリードの際に、即時リフレッシュが必要と判断されることがある。
その場合は、状態ＳＴ４として示すように、主データと副データを入れ替えるように管理情報を更新する。この場合、クローンデータが主データとされていたところを、オリジナルデータが主データとされるように管理情報を更新する。
従って、その後のリード機会が発生すると、オリジナルデータ側がアクセスされることとなる。
【００４８】
オリジナルデータ側は起動時に、リフレッシュ機会近接と判断されたデータであるが、これは、即時リフレッシュが必要とされるレベルではない。従って、まだ正常なデータ読出は十分に可能である。
従ってこの場合は、もしもクローンデータ側がリフレッシュ必要の状態までも信頼性が悪化したとしても、オリジナルデータ側で伴うことで、そのリード時点で即時のリフレッシュを行う必要性を解消するという意味を持つ。
そもそも、状態ＳＴ３においてはフレッシュなデータであるクローンデータ側が主データとされているため、継続起動中に、そのクローンデータ側が即時リフレッシュ必要と判定されることは希である。起動中によほどの回数のリードが、同一のデータに集中したような場合である。このような希な場合であったとしても、もしデータＤＴｍ（クローンデータ側）が即時リフレッシュ必要とされた場合は、オリジナルデータ側を用いることで、即時のリフレッシュ動作を不要とできるということである。
【００４９】
この状態ＳＴ４で通常のメモリカード１の動作が継続して行われた後、オフとされ、さらにその後メモリカード１が起動された場合は、状態ＳＴ６となっている。この場合も、主データと副データの一方、例えば副データＤＴｓを破棄（消去）する。そして状態ＳＴ０に戻り、上記同様の処理を行う。
ここで副データ（この場合はクローンデータ側）を破棄するのは、そのクローンデータが、既に即時リフレッシュ必要と判断され、信頼性が低下しているためである。つまり主データ（オリジナルデータ側）を残した方が、まだ信頼性の点で好適と考えられるためである。
なお、この場合のオリジナルデータ側は、前回の起動時にリフレッシュ機会近接と判断されているため、信頼性はさほど高くない。ところが、今回の起動時に状態ＳＴ０→ＳＴ２として、再び当該オリジナルデータ側をオリジナルとして、新たにクローンデータが生成されることとなるため、信頼性は回復される。
【００５０】
上記の状態ＳＴ４で、通常のメモリカード１の動作が継続して行われた場合において、或る時点でのデータＤＴｍ（この場合オリジナルデータ側）のリードの際に、即時リフレッシュが必要と判断されることがある。
その場合は、信頼性低下に対処するため、データＤＴｍについてのリフレッシュ動作を行う。
上述のようにそもそも状態ＳＴ４に至ること（クローンデータ側が即時リフレッシュ必要となること）ことが希である。その上で、状態ＳＴ４において動作が継続され、オリジナルデータ側も即時リフレッシュ必要となるのは、さらに希である。従って、実際上、リフレッシュ動作を実行する機会は殆ど無いと言える。但し、皆無とは言えないため、その場合の補償として、リフレッシュ動作が用意される。
【００５１】
リフレッシュ動作が行われた後は、状態ＳＴ４に戻ると考えれば良い。但しその場合のデータＤＴｍは、信頼性が回復されている。
その後、メモリカード１の動作がオフとされ、さらにその後メモリカード１が起動された場合は、状態ＳＴ６となっている。この場合も、主データと副データの一方、例えば副データＤＴｓを破棄（消去）する。そして状態ＳＴ０に戻り、上記同様の処理を行う。
ここで副データ（この場合はクローンデータ側）を破棄するのは、そのクローンデータが、既に即時リフレッシュ必要と判断され、信頼性が低下しているためである。一方、この場合の主データは、リフレッシュデータであり、信頼性が回復されているためである。
なお、リフレッシュデータ側も、前回の起動中のリフレッシュ後に非常に多数回アクセスされるなどして、信頼性が低下し、リフレッシュ機会が近接している場合もある。ところがその場合は、今回の起動時に状態ＳＴ０→ＳＴ２として、前回のリフレッシュデータをオリジナルとして、新たにクローンデータが生成されることとなるため、信頼性は回復される。
【００５２】
第１の実施の形態では、概略以上のようにデータＤＴが変遷し、これによって信頼性の維持と、リフレッシュ動作の最小限化によるアクセス時間の減少、安定化が実現できる。
【００５３】
［３−２：評価用情報］
ここで、制御部１１が起動時に行うリフレッシュ機会近接の判断のための評価用情報について説明する。
上記の図６で例示したデータＤＴ（ＤＴｍ、ＤＴｓ）とは、一例としては物理ブロック単位のデータである。その場合、不揮発性メモリ１５に記憶されているデータについて、リフレッシュ機会近接の判断を行うには、評価用情報が、物理ブロック毎に、信頼性を評価できる情報となっていればよい。
【００５４】
消去単位とされる物理ブロックは、図７Ａのように複数の物理ページＰＵで構成される（ページナンバ０〜ｎの物理ページ）。
１つの物理ブロックに対する評価用情報としては、物理ブロック全体に対して各種の値を記憶しても良いし、物理ページ毎に各種の値を記憶してもよい。
【００５５】
図７Ｂに、或る１つの物理ブロックＰＢｘに対応する評価用情報の例を示す。
この例では、物理ページ毎に、エマージェンシーレベル、前回のエマージェンシーレベル、前々回のエマージェンシーレベル、エマージェンシーレベルの累積数、エマージェンシーレベルの最大数、リード回数、消去（書換）回数の各値を、評価用情報とするものとしている。
また、この物理ブロックＰＢｘ全体としての、エマージェンシーレベルの累積数、エマージェンシーレベルの最大数、リード回数、消去（書換）回数も記憶するものとしている。
【００５６】
エマージェンシーレベルとは、例えばリード時のビットエラー（ビット化け）数をそのまま用いてもよい。或いは、ビットエラー数を複数の範囲に区切って、該当する緊急レベルの値を形成するようにしてもよい。いずれにしてもエマージェンシーレベルとは、リフレッシュの必要性が推測できる情報であればよい。
そしてエマージェンシーレベルとしては、例えば各物理ページでのリード時のビットエラー数として、今回（リード時）と、前回、前々回の数を記憶する。もちろん、さらに過去のリード時にさかのぼって記憶しておいてもよい。
またビットエラーの累積数、これまでの最大数も、信頼性の推測に利用できる。
また、各物理ページ毎のリード回数、消去回数も、信頼性の推測に利用できる。
【００５７】
この図７Ｂは、あくまでも評価用情報の内容の一例に過ぎない。
例えばあくまでも物理ブロック単位で、データの信頼性を評価できれば良いため、物理ページ毎の情報を評価用情報に含めなくても良い。即ち図７Ｂの右端の物理ブロックＰＢｘ全体についてのエマージェンシーレベルの累積数、エマージェンシーレベルの最大数、リード回数、消去（書換）回数のみを、評価用情報の内容としてもよい。
或いは、各物理ページ毎の情報を記憶しておけば、物理ブロック単位での各情報の値は算出できるため、各物理ページ毎の情報のみを評価用情報の内容としてもよい。
また、例えばページナンバ０の物理ページなど、１つ（或いは複数）の物理ページのみのビットエラー数等を記憶し、それを物理ブロックを代表する評価値として扱っても良い。
また、評価用情報に含める情報内容は、上記以外にも考えられる。エマージェンシーレベルのみでも良いし、リード回数のみでもよい。また消去回数のみでもよい。
【００５８】
ここでは上述のクローンデータ生成を物理ブロック単位で行う場合を想定して、評価用情報は物理ブロック単位で持つ必要としたが、例えばクローンデータ生成を複数物理ブロックの単位や、データファイル単位などとすることも考えられる。その場合、その複数物理ブロック単位であったり、データファイル単位毎に、評価用情報が設けられれば良い。それらの場合は、各物理ブロックのエマージェンシーレベル等が記憶されても良いし、代表する一部の物理ブロックのエマージェンシーレベル等が記憶されても良い。もちろんその場合に物理ページでのエマージェンシーレベル等の情報が記憶されても良い。
【００５９】
第１の実施の形態では、このような評価用情報の各値を、リード時やライト（消去／書換）時に、追加又は更新して記憶していく。
或る物理ブロックＰＢｘや物理ページＰＵに対しての、リード或いはライトの際に毎回、その物理ブロックＰＢｘ或いは物理ページＰＵに対しての情報内容を更新していってもよいし、所定アクセス回数おきに更新するようにしてもよい。またリード回数が所定値ｍで割り切れる場合のみエマージェンシーレベルを記憶するなどとしてもよいし、或いはリード回数や消去（書換／ライト回数が所定の回数（例えば１回目、１０回目、５０回目、１００回目・・・など）となったときに、エマージェンシーレベルを記憶するような例も考えられる。これらのように或る条件に合致した場合のみ、評価用情報を更新記録するようにしても良い。
【００６０】
また、保持しておく情報数は、物理ページ単位或いは物理ブロック単位ごとに１つと限定しない。
例えば１つの物理ブロックＰＢｘについて、今回のエマージェンシーレベルを時点ｋ０の評価用情報として記憶するとしたときに、時点ｋ１，ｋ２・・・という各時点で、物理ブロックＰＢｘに対する評価用情報を追加的に記憶保持していくことも考えられる。
【００６１】
評価用情報のリセット（クリア）は、起動時、クローンデータ生成時、または、対応するデータ単位（物理ブロック等）の書き換え（消去）時などとするとよい。但し、書き換え(消去)回数の情報を含める場合は、書換回数の値は原則リセット（クリア）しないものとすることが適切である。
【００６２】
このような評価用情報は、情報を更新するたびに不揮発性メモリ１５上に記録しても良いし、システム内のＳＲＡＭ１２などに一時的に記録し、一定のタイミングで、不揮発性メモリ１５に記録するようにしても良い。
【００６３】
起動時のリフレッシュ機会近接の判断の際には、その時点で記憶されている各物理ブロックについてのエマージェンシーレベル、リード回数、消去回数等から、各物理ブロックが、近い将来にリフレッシュが必要となるか否かを推定する情報（信頼性の情報）を算出する。或いは、記憶されている各情報を、そのまま信頼性の情報として用いても良い。
【００６４】
［３−３：処理例］
第１の実施の形態として、図６で説明した動作を実現するための制御部１１の処理を説明する。以下説明する処理は、制御部１１が図２で説明した各機能を備えることで実行されるものである。
【００６５】
図８はメモリカード１の起動時に制御部１１が実行する処理を示している。図２の機能構成に沿っていえば、ステップＦ１０１は管理情報処理部３３の機能、ステップＦ１０２〜Ｆ１０４はクローン生成処理部３２の機能、ステップＦ１０５は管理情報処理部３３と評価用情報処理部３４の機能により実行される。
【００６６】
ステップＦ１０１で制御部１１は、主副データの一方を破棄する処理を行う。不揮発性メモリ１５に記憶されている各データ単位については、過去にクローンデータ生成が行われ、管理情報上で主データと副データが存在するものがある。そのため、起動時には一旦この状態を解消する目的で、主副データが存在するデータ単位を管理情報から検索し、該当するデータ単位について、主副データの一方を破棄する。
具体的には、主データ又は副データの一方の管理状態を解消するように管理情報を更新すればよく、実際にこの時点で、不揮発性メモリ１５上でデータ消去を行う必要は無い。
第１の実施の形態の場合、図６の状態ＳＴ５，ＳＴ６で説明したように、副データを破棄することとなる。
このステップＦ１０１の処理により、不揮発性メモリ１５に記憶された全てのデータは、起動時に図６の状態ＳＴ０のようになる。
【００６７】
ステップＦ１０２で制御部１１は、各データについて評価用情報の解析を行う。例えばデータ記憶が為されている各物理ブロックについて、それぞれ評価用情報を解析し、その物理ブロックが、近い将来にリフレッシュ機会となるであろう程度に信頼性が低下しているか否かを判定する。判定の具体例は後述する。
【００６８】
全てのデータについて、リフレッシュ機会近接ではないと判断した場合は、ステップＦ１０３から図８の処理を終える。これは全てのデータが図６の状態ＳＴ１となる場合である。
【００６９】
少なくとも１つ以上のデータについて、リフレッシュ機会近接と判断した場合、制御部１１はステップＦ１０３からＦ１０４に進み、クローンデータ生成を行う。即ちそのリフレッシュ機会近接と判断したデータについて、コピーデータを不揮発性メモリ１５内の他の領域に生成する。当該データは図６の状態ＳＴ２となる。
さらに制御部１１は、ステップＦ１０５で管理情報の更新及び不要な評価用情報のクリアを行う。
管理情報については、生成したクローンデータをアクセス対象の主データとし、オリジナルデータを副データとするように更新する。即ち図６の状態ＳＴ３とする。
評価用情報としては、クローンデータを生成したデータについては、その時点ではオリジナルデータの物理ブロックの、それまでの評価用情報であり、現時点以降はクローンデータがアクセスされることから、不要としてクリアする。
但し、図６で状態ＳＴ４においてオリジナルデータ側がアクセスされ、その後、状態ＳＴ０に至ることもあり、その際に必要として、クリアしないような処理も考えられる。（付言すれば、この場合でも、実際にオリジナルデータ側がアクセスされることで新たに評価用情報が生成されるため、必ずしもクリアしないで保存しておく必要は無い。）
【００７０】
以上のように、クローンデータ生成が行われた場合、リフレッシュ機会近接と判断されたデータ（例えば物理ブロック単位）は図６の状態ＳＴ３となり、他のデータは状態ＳＴ１となる。
制御部１１は以上の処理を起動時に行った後、ホスト機器２からのコマンドを待機する。
【００７１】
図９は、ホスト機器２からのリードコマンドが送信された際の制御部１１の処理を示している。
図２の機能構成に即していえば、ステップＦ１５１、Ｆ１５８はアクセス制御部３１の機能、ステップＦ１５２は評価用情報処理部３４の機能、ステップＦ１５３→Ｆ１５４→Ｆ１５６はリフレッシュ制御部３５の機能、ステップＦ１５３→Ｆ１５４→Ｆ１５５は管理情報処理部３３の機能、ステップＦ１５７は管理情報処理部３３及び評価用情報処理部３４の機能として実行される。
【００７２】
ホスト機器２からのリードコマンドがあると、制御部１１はステップＦ１５１で不揮発性メモリ１５へのリードオペレーションを実行する。即ちリードコマンドにおいて論理アドで指定されたデータについて管理情報を参照して物理アドレスに変換し、不揮発性メモリ１５の当該物理アドのデータを読み出してバッファＲＡＭ１４に転送させる。また、制御部１１はバッファＲＡＭ１４に取り込んだデータについて、エラー検出・エラー訂正処理を行う。
【００７３】
ステップＦ１５２で制御部１１は、評価用情報の更新を行う。例えば今回のリードにおけるビットエラー数を、評価用情報に追加し、またリード回数を＋１するように評価用情報を更新する。
【００７４】
ここで制御部１１はステップＦ１５３で、例えばビットエラー数が所定の閾値を超えた数値であったか否か、或いはリード回数が閾値以上となったか否かなどとして、今回のリードデータについて信頼性判断を行う。ここでいう信頼性判断とは、即時リフレッシュが必要な程度にまで信頼性が低下しているか否かの判断である。
それらの条件に該当せず、信頼性が維持されていると判断された場合は、そのままステップＦ１５８に進んで、リードデータをホスト機器２に送信させる。つまりバッファＲＡＭ１４に取り込み、エラー訂正をしたデータを、デバイスインターフェース１３を介してホスト機器２に送信させる。
【００７５】
一方、ステップＦ１５３の時点で信頼性低下、即ち今後の信頼性維持のためにはリフレッシュが必要な状況と判断された場合は、制御部１１はステップＦ１５４で、現在の主データ、つまり今回読み出したデータが、起動時にクローンデータとして生成したものか、オリジナルデータであるかにより、処理を分岐する。
【００７６】
ステップＦ１５４の時点で、主データがクローンデータであるのは、図６の状態ＳＴ３の場合である。この場合は、制御部１１はステップＦ１５５に進み、管理情報の更新を行う。この場合は、主データと副データを入れ替えるように管理情報を更新する。従って、起動時のオリジナルデータ側を主データとし、クローンデータ側を副データとする。即ち図６の状態ＳＴ４とする。
そしてステップＦ１５８でリードデータを転送してアクセスコマンドに対応した処理を終える。
この場合、次のリードコマンド発生時には、起動時のオリジナルデータ側が主データとして読み出されることになる。
【００７７】
またステップＦ１５４で、主データがクローンデータでないのは、図６の状態ＳＴ４、又は状態ＳＴ１の場合である。
ここで状態ＳＴ４となっている場合とは、クローンデータがリフレッシュ必要となった後、さらにオリジナルデータ側までもがリフレッシュ必要な状況に至った場合となる。
そこで、制御部１１はステップＦ１５６でデータのリフレッシュ動作を実行させる。
そしてリフレッシュ動作に伴って、ステップＦ１５７で管理情報と評価用情報を更新する。管理情報については、リフレッシュ動作でコピーした新たなデータを、主データとするように更新する。評価用情報については、今回のリフレッシュ動作により、これまでの評価用情報は不要となるため、これをクリアする。
そしてステップＦ１５８でリードデータを転送してアクセスコマンドに対応した処理を終える。
【００７８】
なお、ステップＦ１５４で状態ＳＴ１であって、主データがクローンデータでないと判断される場合もリフレッシュ動作、及び管理情報の更新と評価用情報のクリアが行われる。ただし、状態ＳＴ１となっているのは、起動時にリフレッシュ機会が未だ遠いと判断されたデータであるので、このような事態は希である。
【００７９】
制御部１１が以上の図８，図９の処理を行うことで、図６で説明した動作が実現されることとなる。
【００８０】
ここで、図８のステップＦ１０２での評価用情報を用いたリフレッシュ機会近接の判定処理の例を述べておく。
ここでは、ビットエラー発生数、リード回数、書換（消去）回数を含む評価用情報を用いて、リフレッシュ動作が近く必要となるか否かを推測するのに用いる判断基準値を導きだす例を３例示す。
第１例と第２例では、記録したビットエラー発生数、リード回数をもとに一次方程式を求め、不揮発性メモリ１５から読み出しができなくなる限界を迎えるまでの読み出し回数を逆算する。そして限界を迎えるまでの残り読み出し回数が少ないデータ（物理ブロック等）を、リフレッシュ機会近接と判断するものである。
第３例は、ビットエラー発生数、リード回数をそのまま判断基準値とするものである。
【００８１】
・第１例
データ毎（例えば物理ブロック毎）に、当該データ内のリード回数（ｘ）の時のビットエラー累積数（ｙ）と、その後の時点のリード回数（ｘ＋ｎ）の時のビットエラー発生数の累積数（ｙ＋ｍ）の２点の値から一次方程式を導き出す。このとき、上記２点の間隔(ｎ)は、書換（消去）回数の累積数をもとに決定するとする。但し任意の間隔でもよい。例えばｎ＝５０とした場合、例えばリード回数５０回目と１００回目の値となる。実際の判定の際には、どのリード回数時点での評価用情報が保存されているかにも依存するが、例えば最も新しいリード回数時点と、それよりもｎ回前のリード回数時点の値とすればよい。
【００８２】
図１０Ａに、リード回数とエマージェンシーレベルの座標上の一次方程式を破線で示している。エマージェンシーレベルとは、この場合ビットエラー累積数に相当する。
導き出した一次方程式を用いて、不揮発性メモリ１５から読み出しできなくなる限界を迎える読み出し回数を算出する。例えばビットエラー累積数Ｅ１が、信頼性限度とすると、一次方程式から、リード回数の限界はＮ１回となる。
ここで、限界を迎える迄の残りのリード回数はＮ１−Ｎ２のＮＲ回となる。このＮＲ回を、或る閾値と比較し、残り回数が少ないか否かを判定することで、リフレッシュ機会近接か否かを判定できる。
【００８３】
・第２例
各データについて、リード回数が一定の回数に達するごとに、その時のビットエラー発生数の最大数をもとに、最小二乗法を用いて一次方程式の近似式を算出する。図１０Ｂに近似式で求めた一次方程式を破線で示している。
導き出した一次方程式（近似式）を用いて、上記の第１例と同様、不揮発性メモリ１５が読み出しできなくなる限界を迎える読み出し回数を逆算する。例えばリード回数の限界数Ｎ１回を求める。そして、限界を迎える迄の残りのリード回数はＮ１−Ｎ２のＮＲ回を求め、このＮＲ回を、或る閾値と比較し、残り回数が少ないか否かを判定する。これによりリフレッシュ機会近接か否かを判定できる。
【００８４】
なお、第１例、第２例のどちらの場合も、必要に応じて、一次方程式の傾きに書換（消去）回数の累積回数を係数として考慮しても良い。
【００８５】
・第３例
各データ（例えば各物理ブロック）でのビットエラー発生数の最大数を判断基準値とし、最大数が多い上位一定数のデータ（例えば物理ブロック）を、リフレッシュ機会近接と判断する。つまり、各物理ブロックのうちで、相対的にビットエラー発生数の多い物理ブロックを抽出し、それを、リフレッシュ機会近接の物理ブロックとする。
最大数が同数となる物理ブロックが、複数存在する場合には、物理ブロックでのリード回数も併せて判断基準値として用い、リード回数が多い方を優先とするものとする。
なお、ビットエラー発生数の最大数は少ないが、物理ブロックでのリード回数は一定の基準値以上あるような場合、上記の別枠として、リフレッシュ機会近接の物理ブロックと判断するようにしてもよい。
【００８６】
以上、第１の実施の形態について説明してきたが、第１の実施の形態により次のような効果が得られる。
従来手法では、リフレッシュ動作が必要となった場合には即座にリフレッシュ動作を行ってしまうため、リード時のパフォーマンスの低下を引き起こす。また、対象のデータのビットエラーの発生数がある閾値を超えたか否かなど内部的な要因によってリフレッシュ動作を開始するため、リード時のパフォーマンスにバラつきが起こる。
これに対して本実施の形態の手法では、まず図６の状態ＳＴ３の場合には、主データ（クローンデータ側）について、読出限界の回数まで繰り返しリードできる。つまり図１１で信頼性限度Ｅ１となるようなリード回数Ｎ１まで、リードし続けることができる。さらに繰り返し読み出し続けたことによりデータのビット化けが多くなるなどでリフレッシュ必要となった場合でも、状態ＳＴ４に移行して、主データ（オリジナルデータ側）について、さらに読出限界の回数まで繰り返しリードできる。
結局、データの信頼性を維持したままで、リード時にリフレッシュ動作を行うという機会を殆ど無くすことができ、リード時のパフォーマンス（読出処理時間）の低下やバラツキは殆どなくなる。
【００８７】
また、起動時に複製したクローンデータを主データとして管理し、オリジナルデータ側を副データとすることで、クローンデータを複製するごとに評価用情報もリセット（クリア）できる。このため、次回の起動時には、リフレッシュ動作がいずれ必要となると推測される可能性が下がる。
このため、１起動内において特定のデータへの読み出し回数が著しく多い場合を除き、起動するたびに、前回の起動時のオリジナルデータとは別のデータ（前回のクローンデータ）からのクローンデータが必要であれば複製される。よって、起動をくり返すような使用状況下においては、リフレッシュ動作が近く必要となるようなデータが存在しない、データとしての信頼性が高い状態を維持することができる。
【００８８】
また、クローンデータを複製する前提条件としてのリフレッシュ機会近接の判定において、上記の第１例、第２例では、限界を迎える迄の残りリード回数が一定の基準回数以上に満たないデータをリフレッシュ機会近接とする。これにより、近々にリフレッシュ動作の必要となる対象データがないような場合に、無駄に不揮発性メモリ１５の記憶領域を使用してのクローンデータ複製をしないようにすることができる。これは不揮発性メモリ１５の各領域の使用頻度を必要以上に多くしないことになり好適である。
第３例のように、ビットエラー発生数の最大数が一定の基準数以上あるものをリフレッシュ機会近接と判断してクローンデータ生成対象とする場合も、同様である。
【００８９】
＜４．第２の実施の形態＞
続いて第２の実施の形態について説明する。
第２の実施の形態は、制御部１１（評価用情報処理部３４）が、不揮発性メモリ１５に記憶されたデータのアクセス時に、該データについて、リフレッシュ機会が近接しているか否かを判定し、リフレッシュ機会が近接していると判定した場合に、該データについての評価用情報を生成するようにするものである。そして制御部１１（クローン生成処理部３２）は、起動時に、評価用情報に基づいて、リフレッシュ機会が近接していると判定されたデータについて、クローンデータの生成処理を行う
【００９０】
例えば図１２Ａに示すように、評価用情報テーブル４２として、ｘ個の記憶枠を設定しておく。ここでは物理ブロック単位で評価用情報を記憶するとした場合に、物理ブロックナンバと、その物理ブロックのリード時に発生したビットエラー数を、必要に応じて評価用情報として各記憶枠に記憶するものとする。
例えば或る物理ブロックに対してリードを行った場合に、その物理ブロックから読み出したデータにおいて発生したビットエラー数が所定数以上の場合に、リフレッシュ機会近接と判定し、当該物理ブロックのナンバ（物理ブロックアドレス）と、ビットエラー数を、評価用情報テーブル４２に追加する。
【００９１】
図１２に示しているのは、一例として、ビットエラー数が４個以上の場合に、リフレッシュ機会近接と判断して、評価用情報テーブル４２を更新する例である。
図１２Ａは、起動後に行われたアクセスにおいて、物理ブロックＰＢ１０５、ＰＢ８、ＰＢ３５、ＰＢ３６において、ビットエラー数が４以上だった場合に、その時点で評価用情報テーブル４２に記憶された評価用情報の内容を示している。
その後も、ホスト機器２からのリードコマンドに応じてデータ読出が行われるが、例えば物理ブロックＰＢ２１０のリード時にビットエラー数が６であったとしたら、その情報が図１２Ｂの斜線部のように評価用情報テーブル４２に追加される。以降も同様にビットエラー数の多い物理ブロックの情報が評価用情報として追加される。
【００９２】
図１２Ｃは、さらに斜線部の評価用情報が追加され、評価用情報テーブル４２のｘ個の記憶枠が全て埋まった状態を示している。
このような状態になった後のアクセスにより、例えばビットエラー数の多い、物理ブロックが発見されたら、例えば記憶されている評価用情報においてビットエラー数の少ない物理ブロックの内容を書き換えるようにするとよい。
例えば新たに物理ブロックＰＢ５１１のアクセス時にビットエラー数が６であったとしたら、図１２Ｃの時点の評価用情報テーブル内でビットエラー数が最小の４である物理ブロックＰＢ３６を削除し、図１２Ｄの斜線部のように、物理ブロックＰＢ５１１の評価用情報を記憶させる。
【００９３】
このようにすることで評価用情報テーブル４２は、リフレッシュ機会近接と推定されるｘ個以下の物理ブロックが示されることとなる。
起動時には、制御部１１は評価用情報テーブル４２に挙げられている物理ブロックは、自動的にリフレッシュ機会近接の物理ブロックと判断すれば良い。
なお、ここでは物理ブロックを単位として評価用情報を記憶することとしたが、もちろん評価用情報を生成する単位の「データ」としては、データファイル単位、複数の物理ブロック単位などでもよい。
【００９４】
図１３、図１４で第２の実施の形態の処理を説明する。
なお第２の実施の形態においてデータ状態の変遷は、図６で説明した第１の実施の形態のものと同様であるため、図６を参照しながら説明する。
【００９５】
図１３はメモリカード１の起動時に制御部１１が実行する処理を示している。図２の機能構成に沿っていえば、ステップＦ２０１は管理情報処理部３３の機能、ステップＦ２０２、Ｆ２０３はクローン生成処理部３２の機能、ステップＦ２０４は管理情報処理部３３と評価用情報処理部３４の機能により実行される。
【００９６】
ステップＦ２０１で制御部１１は、主副データの一方を破棄する処理を行う。第１の実施の形態の場合と同様、図６の状態ＳＴ５，ＳＴ６で説明したように副データを破棄する。
このステップＦ２０１の処理により、不揮発性メモリ１５に記憶された全てのデータは、起動時に図６の状態ＳＴ０となる。
【００９７】
ステップＦ２０２で制御部１１は、クローンデータ生成の必要性により、処理を分岐する。この第２の実施の形態の場合、上述したように、評価用情報テーブル４２に挙げられているデータ（物理ブロック単位等）があれば、それがリフレッシュ機会近接のデータとされる。即ちステップＦ２０２では、制御部１１は評価用情報テーブル４２に１以上のデータが記憶されているか否かを判定する。
評価用情報テーブル４２に１つもデータが挙げられていなければ、ステップＦ２０２から図１３の処理を終える。これは全てのデータが図６の状態ＳＴ１となる場合である。
【００９８】
少なくとも１つ以上のデータが評価用情報テーブル４２に挙げられていた場合、制御部１１はステップＦ２０２からＦ２０３に進み、クローンデータ生成を行う。即ちリフレッシュ機会近接と判断されていたデータについて、コピーデータを不揮発性メモリ１５内の他の領域に生成する。当該データは図６の状態ＳＴ２となる。
さらに制御部１１は、ステップＦ２０４で管理情報の更新及び不要な評価用情報のクリアを行う。第１の実施の形態の図８のステップＦ１０５と同様の処理である。
結果として、クローンデータ生成が行われたデータ（例えば物理ブロック単位）は図６の状態ＳＴ３となり、他のデータは状態ＳＴ１となる。
制御部１１は以上の処理を起動時に行った後、ホスト機器２からのコマンドを待機する。
【００９９】
図１４は、ホスト機器２からのリードコマンドが送信された際の制御部１１の処理を示している。
図２の機能構成に即していえば、ステップＦ２５１、Ｆ２５９はアクセス制御部３１の機能、ステップＦ２５２→Ｆ２５５→Ｆ２５７はリフレッシュ制御部３５の機能、ステップＦ２５２→Ｆ２５５→Ｆ２５６は管理情報処理部３３の機能、ステップＦ２５３，Ｆ２５４は評価用情報処理部３４の機能、ステップＦ２５８は管理情報処理部３３及び評価用情報処理部３４の機能として実行される。
【０１００】
ホスト機器２からのリードコマンドがあると、制御部１１はステップＦ２５１で不揮発性メモリ１５へのリードオペレーションを実行する。即ちリードコマンドにおいて論理アドで指定されたデータについて管理情報を参照して物理アドレスに変換し、不揮発性メモリ１５の当該物理アドのデータを読み出してバッファＲＡＭ１４に転送させる。また、制御部１１はバッファＲＡＭ１４に取り込んだデータについて、エラー検出・エラー訂正処理を行う。
【０１０１】
ここで制御部１１はステップＦ２５２で、例えばビットエラー数が所定の閾値を超えた数値であったか否か、或いはリード回数が閾値以上となったか否かなどとして、今回のリードデータについて信頼性判断を行う。即ち、即時リフレッシュが必要な程度にまで信頼性が低下しているか否かの判断である。
【０１０２】
それらの条件に該当せず、信頼性が維持されていると判断された場合は、ステップＦ２５３に進む。ここで制御部１１は、当該アクセス対象のデータが、近い将来にリフレッシュ機会となるであろう程度に信頼性が低下しているか否かを判定する。
この場合、例えばステップＦ２５２の信頼性判断より緩い条件で、信頼性が低下傾向にあるか否かを判断することなどが考えられる。
例えばビットエラー数がｐ回というのを第１の閾値として、ステップＦ２５２の信頼性判断に用いる場合に、ｑ回（但しｑ＜ｐ）というのをリフレッシュ機会近接の判断のための第２の閾値とする。
リード回数や書換回数なども管理しておき、それらについて、即時リフレッシュ必要か否かの信頼性判断よりも緩やかな条件でリフレッシュ機会近接判断にもちいてもよい。
【０１０３】
アクセス対象のデータについて、リフレッシュ機会近接ではないと判断した場合は、制御部１１はそのままステップＦ２５９に進み、リードデータをホスト機器２に送信させる。つまりバッファＲＡＭ１４に取り込み、エラー訂正をしたデータを、デバイスインターフェース１３を介してホスト機器２に送信させる。
【０１０４】
一方、ステップＦ２５３でリフレッシュ機会近接と判断した場合は、制御部１１は、そのデータに関する評価用情報を評価用情報テーブル４２に追加するように、評価用情報テーブル４２の更新を行う。即ち、図１２で説明した処理である。このステップＦ２５４で追加され、その後も評価用情報テーブル４２に評価用情報が保持されたデータが、次の起動時に図１３のステップＦ２０３でのクローンデータ生成対象のデータとなる。
【０１０５】
一方、ステップＦ２５２の時点で信頼性低下、即ち今後の信頼性維持のためにはリフレッシュが必要な状況と判断された場合は、制御部１１はステップＦ２５５で、現在の主データ、つまり今回読み出したデータが、起動時にクローンデータとして生成したものか、オリジナルデータであるかにより、処理を分岐する。
【０１０６】
ステップＦ２５５の時点で、主データがクローンデータであるのは、図６の状態ＳＴ３の場合である。この場合は、制御部１１はステップＦ２５６に進み、管理情報の更新を行う。この場合は、主データと副データを入れ替えるように管理情報を更新する。従って、起動時のオリジナルデータ側を主データとし、クローンデータ側を副データとする。即ち図６の状態ＳＴ４とする。
そしてステップＦ２５９でリードデータを転送してアクセスコマンドに対応した処理を終える。この場合、次のリードコマンド発生時には、起動時のオリジナルデータ側が主データとして読み出されることになる。
【０１０７】
またステップＦ２５５で、主データがクローンデータでないのは、図６の状態ＳＴ４、又は状態ＳＴ１の場合である。
ここで状態ＳＴ４となっている場合とは、クローンデータがリフレッシュ必要となった後、さらにオリジナルデータ側までもがリフレッシュ必要な状況に至った場合となる。
そこで、制御部１１はステップＦ２５７でデータのリフレッシュ動作を実行させる。
そしてリフレッシュ動作に伴って、ステップＦ２５８で管理情報と評価用情報を更新する。管理情報については、リフレッシュ動作でコピーした新たなデータを、主データとするように更新する。評価用情報については、今回のリフレッシュ動作により、これまでの評価用情報は不要となるため、これをクリアする。
そしてステップＦ２５９でリードデータを転送してアクセスコマンドに対応した処理を終える。
なお、ステップＦ２５５の時点で状態ＳＴ１であって、主データがクローンデータでないと判断される場合もリフレッシュ動作、及び管理情報の更新と評価用情報のクリアが行われる。
【０１０８】
制御部１１が以上の図１３，図１４の処理を行うことで、図６で説明した動作であって、かつ評価用情報に追加更新時にリフレッシュ機会近接の判断が行われる第２の実施の形態の動作が実現されることとなる。
【０１０９】
このような第２の実施の形態では、第１の実施の形態の効果に加え、次の効果が得られる。即ち。第１の実施の形態では、起動時に評価用情報をもとに判断基準値を導き、リフレッシュ機会近接判断を行う例を示したが、第２の実施の形態では、起動時にはこのような判断を全データについて行う必要は無い。従って起動時の制御部１１の処理負担が軽減される。
また、リフレッシュ動作が近い将来に必要となる判断（推測）されるデータが存在しない場合には、評価用情報テーブル４２には何も評価用情報が記録されない。従って、評価用情報の記録量（サイズ）を絞ることができる。
【０１１０】
なお、図１２では、評価用情報テーブル４２において保存する評価用情報の記憶枠をｘ個としたが、特に制限を設けず、ステップＦ２５３でリフレッシュ機会近接と判断されるデータは全て（容量的に可能な限り）評価用情報を保存するようにしてもよい。
また評価用情報の内容としては、図１２のような物理ブロックに対応するビットエラー数だけでなく、リード回数、書換回数を用いても良いし、これらを併用してもよい。
さらに、結果的に評価用情報テーブル４２に挙げられたデータ（物理ブロック等）を全てクローンデータ生成対象とするのであれば、評価用情報テーブル４２には、リード時にリフレッシュ機会近接と判断されたデータの識別情報（例えば物理ブロックアドレス）のみを記憶するようにしても良い。
【０１１１】
また、アクセス実行毎に、アクセス対象のデータの評価用情報を評価用情報テーブル４２に追加することも考えられる。但し、その場合に評価用情報テーブル４２に図１２のようにｘ個の記憶枠を設定しておき、図１２Ｃ→図１２Ｄで説明したように、例えばビットエラー数が多いものが残るように更新していく。もちろんリード回数や書換回数を用いても良い。
すると、評価用情報テーブル４２には、アクセス対象となったデータの中で、ビットエラー数が多かったｘ個のデータが残ることになり、結果的にアクセス時にリフレッシュ機会近接の判断が行われたこととなる。その場合も起動時は、評価用情報テーブル４２に挙げられているデータ（物理ブロック）をクローンデータ生成対象とすればよい。
【０１１２】
もちろん、その場合に、評価用情報テーブル４２に残されたデータの内で、所定のビットエラー数以上のデータをクローンデータ生成対象としたり、上位所定数個のデータをクローンデータ生成対象とするなど、評価用情報テーブル４２に挙げられた内の一部をクローンデータ生成対象としてもよい。
【０１１３】
＜５．第３の実施の形態＞
第３の実施の形態を図１５で説明する。図１５は図６と同様にデータの変遷を示したものである。
第３の実施の形態は、起動時にクローンデータが生成されたデータについては、当初は、オリジナルデータがアクセス対象となる主データとし、クローンデータがアクセス対象とはならない副データとして管理されるようにする例である。
そして主データ（オリジナルデータ側）がリフレッシュ機会に至った場合、クローンデータがアクセス対象の主データとして管理されるように、上記管理情報を更新する。
【０１１４】
起動時を状態ＳＴ１０とする。起動時に、制御部１１は各データ単位について、リフレッシュ動作が近く必要になるか否かを判定する。状態ＳＴ０におけるデータＤＴｍが、リフレッシュ動作が近く必要に成るデータでは無いと判断したときは、そのまま状態ＳＴ１１として、その後のリードコマンドに対しては、データＤＴｍがアクセス対象となる。
【０１１５】
一方、データＤＴｍについて、リフレッシュ機会が近接していると判断される場合は、状態ＳＴ１２に示すように、クローンデータを生成する。
この第３の実施の形態では、生成したクローンデータを副データとして管理し、主データはオリジナルデータのままである。
従ってその後のリードコマンドに対しては、オリジナルデータであるデータＤＴｍがアクセス対象となる。
オリジナルデータ側は起動時に、リフレッシュ機会近接と判断されたデータであるが、これは、即時リフレッシュが必要とされるレベルではない。従って、まだ正常なデータ読出は十分に可能である。
【０１１６】
この状態ＳＴ１２で通常のメモリカード１の動作が継続して行われた後、一旦、メモリカード１の動作がオフとされ、その後起動されたとする。
その場合の起動時は、状態ＳＴ１４となっている。この場合に、主データと副データの一方を破棄する。
この場合は、主データＤＴｍ（オリジナルデータ側）を破棄し、同時に副データＤＴｓ（クローンデータ側）を主データＤＴｍに変更するように管理情報を更新することが好ましい。なぜならこの場合では、主データＤＴｍ（オリジナルデータ側）は、前回の起動時にリフレッシュ機会近接と判断され、比較的信頼性が低くなっており、一方、副データＤＴｓ（クローンデータ側）はフレッシュなデータである。従って、クローンデータ側を残した方が、信頼性の点でも、また当該データについてリフレッシュ機会を遠ざけるためにも、好適と考えられるためである。換言すれば、この場合の管理情報の更新は、リフレッシュを行ったのと同等な状態となる。
【０１１７】
なお、この場合に副データＤＴｓ（クローンデータ側）を破棄することとすることも考えられないわけではない。その場合は、今回の起動時に、主データＤＴｍ（オリジナルデータ側）はリフレッシュ機会近接としてクローンデータ生成対象となる。
【０１１８】
ところで、上記のように状態ＳＴ１２で通常のメモリカード１の動作が継続して行われた場合において、或る時点でのデータＤＴｍ（オリジナルデータ側）のリードの際に、即時リフレッシュが必要と判断されることがある。
その場合は、状態ＳＴ１３として示すように、主データと副データを入れ替えるように管理情報を更新する。この場合、オリジナルデータが主データとされていたところを、クローンデータが主データとされるように管理情報を更新する。
従って、その後のリード機会が発生すると、クローンデータ側がアクセスされることとなる。
即ち、この場合、オリジナルデータが、フレッシュ必要の状態にまで信頼性が悪化したときに、リード対象をクローンデータに置き換えることで、即時のリフレッシュを行う必要性を解消するという意味を持つ。
【０１１９】
この状態ＳＴ１３で通常のメモリカード１の動作が継続して行われた後、オフとされ、さらにその後メモリカード１が起動された場合は、状態ＳＴ１５となっている。この場合も、主データと副データの一方を破棄（消去）する。そして状態ＳＴ０に戻り、上記同様の処理を行う。
この場合は、この時点での副データ（オリジナルデータ側）を破棄することが適切である。オリジナルデータ側は、前回の起動中にリフレッシュ必要と判断されたデータだからである。
【０１２０】
上記の状態ＳＴ１３で、通常のメモリカード１の動作が継続して行われた場合において、或る時点でのデータＤＴｍ（この場合クローンデータ側）のリードの際に、即時リフレッシュが必要と判断されることがある。
その場合は、信頼性低下に対処するため、データＤＴｍについてのリフレッシュ動作を行う。
状態ＳＴ１３としては、フレッシュなクローンデータ側が主データＤＴｍとされたものであるため、状態ＳＴ１３において即時リフレッシュ必要となることは希である。従って、実際上、リフレッシュ動作を実行する機会は殆ど無いと言える。但し、皆無では無いため、その場合の補償として、リフレッシュ動作が用意される。
【０１２１】
リフレッシュ動作が行われた後は、状態ＳＴ１３に戻ると考えれば良い。但しその場合のデータＤＴｍは、信頼性が回復されている。
その後、メモリカード１の動作がオフとされ、さらにその後メモリカード１が起動された場合は、状態ＳＴ１５となっている。この場合も、副データＤＴｓを破棄（消去）することが適切である。この場合の副データＤＴｓとは、前回の起動中にリフレッシュ必要と判断されたオリジナルデータ側のデータだからである。
そして状態ＳＴ０に戻り、上記同様の処理を行う。
【０１２２】
第３の実施の形態では、概略以上のようにデータＤＴが変遷し、これによって信頼性の維持と、リフレッシュ動作の最小限化によるアクセス時間の減少、安定化が実現できる。
この第３の実施の形態のための制御部１１の処理は、基本的には図８，図９のとおりであるが、詳細な点として、以下の点を異なるようにすればよい。
【０１２３】
まず図８のステップＦ１０１では、図１５の状態ＳＴ１４の場合は主データＤＴｍを破棄し、状態ＳＴ１５の場合は副データＤＴｓを破棄することとする。
ステップＦ１０５では、管理情報の更新は、生成したクローンデータを副データＤＴｓとして管理するように更新すればよい。
また評価用情報については次のようにする。
状態ＳＴ１４→ＳＴ１０と遷移した場合は、主データＤＴｍは前回起動時に作成されたクローンデータであり、そのクローンデータについてはまだリードされていない。従って、当該データに関してはそれまでの評価用情報はクリアすれば良い。
状態ＳＴ１５→ＳＴ１０と遷移した場合であって、リフレッシュが行われていない場合は、主データＤＴｍは、前回起動時に作成されたクローンデータである。しかしそのクローンデータについてはリードされている可能性がある。従って、当該データに関してはそれまでの評価用情報は維持するとよい。
【０１２４】
図９のステップＦ１５５では、図１５の状態ＳＴ１２からＳＴ１３に遷移する処理となるが、従って管理情報の更新とは、オリジナルデータ側を副データＤＴｓとし、クローンデータ側を主データＤＴｍとする処理とすればよい。
【０１２５】
＜６．変形例＞
以上、実施の形態について説明してきたが、本開示の技術には次のような変形例も考えられる。
第３の実施の形態では、第１の実施の形態と同様に、起動時に各データについてリフレッシュ機会近接の判断を行うようにしたが、第２の実施の形態のように、リード時に、そのデータについてのリフレッシュ機会近接の判断を行って評価用情報を記憶するような処理を適用することもできる。
【０１２６】
評価用情報の内容としては、ビットエラー数、リード回数、書換回数などとしたが、他の例も考えられる。
またビットエラー数、リード回数、書換回数などのそれぞれに異なる重みづけを与えたうえで、それらのデータから、リフレッシュ機会近接の判断の指標を求めてもよい。
【０１２７】
実施の形態では、クローンデータ生成を起動時に行うとしたが、起動時以外に行うことも考えられる。例えば動作をオフとする際や、メモリカード１の取り外し時などに行うことも可能である。
【０１２８】
また実施の形態ではメモリカード１の例を挙げたが、不揮発性メモリ１５と、制御部１１が別体の構成の場合でも本開示の技術は適用可能である。例えば不揮発性メモリに対しての読出・書込アクセスを制御する制御装置としても実現できる。
本開示の技術は、各種メモリカード、ＳＳＤ、ｅＭＭＣなどに適用できる。
【０１２９】
なお本技術は以下のような構成も採ることができる。
（１）不揮発性メモリに記憶されたデータであって、リフレッシュ必要性に関する評価用情報に基づいてリフレッシュ機会が近接していると判定されるデータについて、該データをオリジナルデータとして、オリジナルデータと同一のクローンデータを、上記不揮発性メモリ内に生成する処理を行うクローン生成処理部と、
上記オリジナルデータと上記クローンデータのいずれか一方が、アクセス実行の際のアクセス対象となるように、管理情報を更新する管理情報処理部と、
上記不揮発性メモリに記憶されたデータのアクセス時に、該データについての上記評価用情報を生成する評価用情報処理部と、
を備えた制御装置。
（２）上記管理情報処理部は、上記クローンデータが生成されたデータについては、上記クローンデータがアクセス対象となる主データとし、上記オリジナルデータがアクセス対象とはならない副データとして管理されるように、上記管理情報を更新する上記（１）に記載の制御装置。
（３）上記主データがリフレッシュ機会に至ったと判断される場合、上記管理情報処理部は、上記オリジナルデータがアクセス対象の主データとして管理されるように、上記管理情報を更新する上記（２）に記載の制御装置。
（４）上記オリジナルデータが上記主データとされた後、該主データがリフレッシュ機会に至ったと判断される場合に、上記オリジナルデータについてのリフレッシュ動作制御を行うリフレッシュ制御部を、さらに備える上記（３）に記載の制御装置。
（５）上記管理情報処理部は、上記不揮発性メモリの起動時において、上記クローンデータが生成されているデータについて、上記主データ又は上記副データの一方が破棄されるように、上記管理情報を更新する上記（２）乃至（４）のいずれかに記載の制御装置。
（６）上記評価用情報処理部は、上記クローン生成処理部が上記クローンデータの生成処理を行ったデータに関する上記評価用情報をクリアする上記（２）乃至（５）のいずれかに記載の制御装置。
（７）上記クローン生成処理部は、上記不揮発性メモリの起動時に、不揮発性メモリに記憶されたデータについて、上記評価用情報に基づいてリフレッシュ機会が近接しているか否かを判定し、リフレッシュ機会が近接していると判定したデータについて、上記クローンデータの生成処理を行う上記（１）乃至（６）のいずれかに記載の制御装置。
（８）上記評価用情報処理部は、上記不揮発性メモリに記憶されたデータのアクセス時に、該データについて、リフレッシュ機会が近接しているか否かを判定し、リフレッシュ機会が近接していると判定した場合に、該データについての上記評価用情報を生成し、
上記クローン生成処理部は、上記不揮発性メモリの起動時に、上記評価用情報に基づいて、リフレッシュ機会が近接していると判定されたデータについて、上記クローンデータの生成処理を行う上記（１）乃至（６）のいずれかに記載の制御装置。
（９）上記管理情報処理部は、上記クローンデータが生成されたデータについては、上記オリジナルデータがアクセス対象となる主データとし、上記クローンデータがアクセス対象とはならない副データとして管理されるように、上記管理情報を更新する上記（１）に記載の制御装置。
（１０）上記主データがリフレッシュ機会に至った場合、上記管理情報処理部は、上記クローンデータがアクセス対象の主データとして管理されるように、上記管理情報を更新する上記（９）に記載の制御装置。
（１１）上記管理情報処理部は、上記不揮発性メモリの起動時において、上記クローンデータが生成されているデータについて、上記主データ又は上記副データの一方が破棄されるように、上記管理情報を更新する上記（９）又は（１０）に記載の制御装置。
（１２）上記評価用情報は、所定データ単位についての、ビットエラー発生数、読出回数、消去回数の、少なくとも１つを含む上記（１）乃至（１１）のいずれかに記載の制御装置。
【符号の説明】
【０１３０】
１  メモリカード、２  ホスト機器、１１  制御部、１２  ＳＲＡＭ、１３  デバイスインターフェース、１４  バッファＲＡＭ、１５  不揮発性メモリ
【図１】
2012238259.tif 000003
【図２】
2012238259.tif 000004
【図３】
2012238259.tif 000005
【図４】
2012238259.tif 000006
【図５】
2012238259.tif 000007
【図６】
2012238259.tif 000008
【図７】
2012238259.tif 000009
【図８】
2012238259.tif 000010
【図９】
2012238259.tif 000011
【図１０】
2012238259.tif 000012
【図１１】
2012238259.tif 000013
【図１２】
2012238259.tif 000014
【図１３】
2012238259.tif 000015
【図１４】
2012238259.tif 000016
【図１５】
2012238259.tif 000017