(58)【調査した分野】(Int.Cl.,DB名)
前記メモリー管理回路は、前記劣化を検出した場合に、前記監視領域以外の前記不揮発性メモリーのブロックのユーザデータのリフレッシュ処理を実行するリフレッシュ手段を更に備えたことを特徴とする請求項6に記載の記憶装置。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
(第1の実施形態)
本実施形態における構成について説明する。
【0018】
図1は、本発明の第1の実施形態の記憶装置の構成の一例を示すブロック図である。
【0019】
記憶装置100は、外部の情報処理装置(不図示)により読み書きされるデータ(以下、「ユーザデータ」という)を保持する。記憶装置100は、書き換え可能な不揮発性メモリー140と、メモリー管理回路150とを含む。
【0020】
不揮発性メモリー140は、ブロック(「セクター」ともいう)単位で書き換え可能な不揮発性メモリーである。不揮発性メモリー140は、例えば、フラッシュメモリー、EEPROM(Electrically Erasable Programmable Read-Only Memory)、抵抗変化型メモリー、強誘電体メモリー、又は磁気抵抗メモリーである。なお、本実施形態では、不揮発性メモリー140は、「ウェアレベリング」機能を有しないものとする。「ウェアレベリング」とは、書き換え回数の少ないブロックを優先してデータを書き込むことにより、ブロック毎の書き換え回数を均等化することである。
【0021】
メモリー管理回路150は、不揮発性メモリー140の管理機能を提供する。具体的には、メモリー管理回路150は、不揮発性メモリー140のブロックの一部を、不揮発性メモリー140のデータ保持能力の劣化を判定するためのブロック(以下、「監視領域」という)として用いる。また、メモリー管理回路150は、監視領域を除く不揮発性メモリー140のブロック(以下、「ユーザ領域」という)において、ユーザデータを保持する。なお、ユーザデータの書き込みにおいて、メモリー管理回路150は、ウェアレベリングを行う。そして、メモリー管理回路150は、ユーザ領域の最も書き換え回数の多いブロックにおいて1回の書き換えが行われたら、監視領域において1回以上の書き換えを行うことにより、監視領域のデータ保持能力をユーザ領域と同等か又はユーザ領域に先行して劣化させる。なお、メモリー管理回路150は、ユーザ領域の最も書き換え回数の多いブロックにおいて1回の書き換えが行われた際に監視領域において1回の書き換えを行う場合には、記憶装置100の初回起動時に監視領域に劣化促進用のデータを書き込んでもよい。監視領域に劣化促進用のデータを所定の回数だけ書き込むことにより、監視領域の劣化はユーザ領域の劣化に比べて確実に先行させられる。そして、メモリー管理回路150は、監視領域におけるデータ保持能力の劣化を検出すると、不揮発性メモリー140の全体としての劣化が近いことを検出する。なお、メモリー管理回路150は、監視領域において、特定のビットパターンを持つデータ(以下、「監視用データ」という)を書きこむ。そして、メモリー管理回路150は、監視領域のビットパターンが監視用データと一致するか否かを所定のタイミングで監視することにより、監視領域のデータ保持能力の劣化を検出する。メモリー管理回路150は、ユーザデータ書込み手段110と、監視領域割当手段120と、監視用データ書込み手段130と、劣化検出手段160とを含む。
【0022】
ユーザデータ書込み手段110は、外部の情報処理装置から受け取ったユーザデータを、ウェアレベリングを行いながら、不揮発性メモリー140に書き込む。つまり、ユーザデータ書込み手段110は、書き換え回数の少ないブロックを優先して、ユーザデータを不揮発性メモリー140に書き込む。
【0023】
監視領域割当手段120は、不揮発性メモリー140の一部のブロックを、監視領域として割り当てる。
【0024】
監視用データ書込み手段130は、ユーザ領域の最も書き換え回数の多いブロックにデータが1回書き込まれた場合に、ただちに監視領域に監視用データを1回以上書き込む。従って、監視領域は、ユーザ領域に比べてデータ保持能力の劣化が進んだ状態にある(詳細は後述)。なお、監視用データは、監視領域の大きさ以下の大きさを有する任意のデータである。監視用データは、例えば、すべてのビットが“0”のデータ、又はすべてのビットが“1”のデータである。
【0025】
劣化検出手段160は、監視領域のデータと監視用データとの一致を所定のタイミングで判定する。一致すれば、劣化検出手段160は、監視領域において不揮発性メモリー140のデータ保持能力の劣化が発生していないものと判定する。一致しなければ、劣化検出手段160は、監視領域において不揮発性メモリー140のデータ保持能力の劣化が発生したものと判定する。監視領域は、ユーザ領域に比べてデータ保持能力の劣化が進んだ状態にあるので、監視領域においてデータ保持能力の劣化が発生すれば、いずれユーザ領域においてもデータ保持能力の劣化が発生することが予想される。そこで、劣化検出手段160は、監視領域においてデータ保持能力の劣化を検出すると、不揮発性メモリー140全体としてのデータ保持能力の劣化が近いことを検出する。なお、判定処理の時間間隔は、判定処理の負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ不揮発性メモリー140のデータ保持能力の劣化が進行する時間に比べて十分短い、任意の時間である。判定処理の時間間隔は、例えば、1時間、1日である。また、判定処理の時間間隔は、ユーザデータの書き換え量に応じて、増減されてもよい。劣化検出手段160は、例えば、所定の閾値をユーザデータの書き換え量で除算することにより判定処理の時間間隔を決定してもよい。
【0026】
なお、監視用データの大きさが大きいほど、データ保持能力の劣化が検出される可能性が高い。また、監視用データは、データ保持能力の劣化により、不揮発性メモリー140のビットが変化する傾向に基づいて、選択されることが望ましい。まず、データ保持能力の劣化により、不揮発性メモリー140のビット“0”がビット“1”に変化する可能性が、ビット“1”がビット“0”に変化する可能性よりも大きい場合について説明する。この場合には、ビット“0”がビット“1”より多い監視用データは、ビット“1”がビット“0”より多い監視用データに比べて、データ保持能力の劣化を検出できる可能性が高い。一方、データ保持能力の劣化により、不揮発性メモリー140のビット“1”がビット“0”に変化する可能性が、ビット“0”がビット“1”に変化する可能性よりも大きい場合について説明する。この場合には、ビット“1”がビット“0”より多い監視用データは、ビット“0”がビット“1”より多い監視用データに比べて、データ保持能力の劣化を検出できる可能性が高い。
【0027】
また、劣化検出手段160は、不揮発性メモリー140のデータ保持能力の劣化を検出した際に、劣化をユーザに通知してもよい。あるいは、劣化検出手段160は、不揮発性メモリー140のデータ保持能力の劣化を検出した際に、不揮発性メモリー140上のユーザデータの劣化を抑制する処理を実行してもよい。ユーザデータの劣化を抑制する処理は、例えば、ユーザデータを別のブロックへ書き換える処理(以下、「リフレッシュ処理」という)である。リフレッシュ処理により、ユーザデータの保持時間が延長される。
【0028】
また、監視領域割当手段120は、監視領域の劣化を促進するために、記憶装置100の初回起動時に監視領域に劣化促進用のデータを所定の回数だけ書き込んでもよい。劣化促進用のデータの書き込みは、記憶装置100の初回起動時にはユーザ領域と監視領域の劣化の程度に差が無いので、監視領域の劣化をユーザ領域の劣化に比べて確実に先行させるために行われる。劣化促進用のデータは、監視領域の大きさ以下の大きさを有する任意のデータである。劣化促進用のデータは、例えば、すべてのビットが“0”のデータ、又はすべてのビットが“1”のデータである。なお、劣化促進用のデータは、監視用データと同一であってもよい。
【0029】
次に、本実施形態における動作について説明する。
【0030】
図2は、本発明の第1の実施形態の記憶装置100の動作を示すフローチャートである。具体的には、
図2(a)は、監視領域割当手段120の動作を示すフローチャートである。
図2(b)は、監視用データ書込み手段130の動作を示すフローチャートである。
図2(c)は、劣化検出手段160の動作を示すフローチャートである。なお、
図2に示されるフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【0031】
監視領域割当手段120は、不揮発性メモリー140の一部のブロックを、監視領域として割り当てる(ステップS110)。
【0032】
監視用データ書込み手段130は、ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれたか否かを判定する(ステップS210)。ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれていない場合には(ステップS210:No)、監視用データ書込み手段130は、ステップS210の処理へ戻る。ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれた場合には(ステップS210:Yes)、監視用データ書込み手段130は、ただちに監視領域に監視用データを1回以上書き込み(ステップS220)、ステップS210の処理へ戻る。
【0033】
劣化検出手段160は、所定の時間だけ待機した(ステップS310)後に、監視領域のデータと監視用データとの一致を判定する(ステップS320)。監視領域のデータと監視用データとが一致した場合には(ステップS320:Yes)、劣化検出手段160は、ステップS310の処理へ戻る。監視領域のデータと監視用データとが一致しない場合には(ステップS320:No)、劣化検出手段160は、不揮発性メモリー140全体としてのデータ保持能力の劣化を検出し(ステップS330)、ステップS310の処理へ戻る。
【0034】
図3は、本発明の第1の実施形態の記憶装置100の不揮発性メモリー140のデータ保持能力の劣化を説明するための図である。横軸は不揮発性メモリー140のデータの書き換え回数を、縦軸は不揮発性メモリー140のデータ保持時間を示す。なお、
図3は、書き換え回数とデータ保持時間の相関を説明するためのものであり、数値は一例である。
【0035】
図3に示されるように、フラッシュメモリーのような不揮発性メモリーでは、書き換え回数の増加に伴い、データ保持時間が減少する。つまり、不揮発性メモリー140では、書き換え回数の増加に伴い、データ保持能力が劣化する。すなわち、監視領域におけるデータの書き換え回数が、ユーザ領域におけるデータの書き換え回数よりも多ければ、監視領域におけるデータ保持能力の劣化は、ユーザ領域におけるデータ保持能力の劣化よりも先行する。監視用データ書込み手段130は、監視領域における書き換え回数がユーザ領域における書き換え回数以上になるように、監視用データを書き換える。従って、監視用データ書込み手段130は、監視領域がユーザ領域に比べてデータ保持能力の劣化が進んだ状態を維持する。
【0036】
以上説明したように、本実施形態の記憶装置100は、監視領域のデータ保持能力の劣化がユーザ領域のデータ保持能力の劣化に常に先行するように、監視領域のデータを書き換える。そして、本実施形態の記憶装置100は、読み出したデータが書き込んだ監視用データと一致するか否かを所定のタイミングで判定することにより、監視領域のデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置100は、監視領域のデータ保持能力の劣化の所定のタイミングでの判定結果に基づいて、不揮発性メモリー140の全体としての劣化が近いことを検出する。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を低負荷で検出することができるという効果がある。
【0037】
また、本実施形態の記憶装置100では、ユーザデータ書込み手段110はウェアレベリング機能を提供する。すなわち、ユーザデータ書込み手段110は、ユーザ領域のブロック毎の書き換え回数を均等化する。一方、書き換え可能な不揮発性メモリーでは、ブロック毎の書き換え回数が増加すると、データの保持時間が短くなる。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化の発生を遅らせることができるという効果がある。
【0038】
また、本実施形態の記憶装置100では、監視用データ書込み手段130は、ユーザ領域の最も書き換え回数の多いブロックにデータが1回書き込まれた場合に、監視領域に監視用データを1回以上書き込む。つまり、本実施形態の記憶装置100では、ユーザデータの書き込み毎に監視用データを書き込む必要がない。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
【0039】
また、本実施形態の記憶装置100は、監視用データにおけるビットの変化を検出することによりデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置100では、誤り検出符号等を用いた劣化の検出に比べて、少ない計算量で劣化が検出される。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
【0040】
また、本実施形態の記憶装置100は、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を検出するために、温度センサー等の専用の回路を必要としない。従って、本実施形態の記憶装置100では、記憶装置100の製造コストを低減できるという効果がある。
(第2の実施形態)
次に、上述した第1の実施形態の記憶装置を基本とする、本発明の第2の実施形態の記憶装置について説明する。本実施形態の記憶装置は、不揮発性メモリーのデータ保持能力の劣化を検出した場合に、ユーザデータのリフレッシュ処理を実行する。また、すべてのビットが“0”の監視用データを使用する。以下の説明において、第1の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
【0041】
本実施形態における構成について説明する。
【0042】
図4は、本発明の第2の実施形態の記憶装置の構成の一例を示すブロック図である。
【0043】
記憶装置105は、書き換え可能な不揮発性メモリー145と、不揮発性メモリー145の管理機能を提供するメモリー管理回路155とを含む。
【0044】
メモリー管理回路155は、本発明の第1の実施形態のメモリー管理回路150の構成要素に加えて、リフレッシュ手段170を更に含む。
【0045】
リフレッシュ手段170は、不揮発性メモリー145のデータ保持能力の劣化が検出された場合に、ユーザデータのリフレッシュ処理を実行する。
【0046】
不揮発性メモリー145は、セクター単位で書き換え可能な不揮発性メモリーである。不揮発性メモリー145は、例えば、フラッシュメモリーである。
【0047】
図5は、本発明の第2の実施形態の記憶装置105の不揮発性メモリー145の記憶領域の構成の一例を示す図である。
【0048】
不揮発性メモリー145の記憶領域は、複数のセクターを含む。セクターは、不揮発性メモリー145上のデータを消去する際の最小単位である。
図5は、不揮発性メモリー145上の記憶領域が512セクターを含む場合の例を示す。
【0049】
セクター[0]、セクター[1]は、外部の情報処理装置(不図示)のブートプログラムを格納するための、書き換えが行われない記憶領域である。以下、この記憶領域を「静的使用領域」という。
【0050】
セクター[2]〜セクター[510]は、外部の情報処理装置(不図示)により必要に応じて読み書きされる、書き換え可能な記憶領域である。以下、この記憶領域を「動的使用領域」という。
【0051】
セクター[511]は、監視領域である。
【0052】
記憶装置105のその他の構成は、本発明の第1の実施形態の記憶装置100の構成と同じである。
【0053】
次に、本実施形態における動作について説明する。
【0054】
図6は、本発明の第2の実施形態の記憶装置105の動作を示すフローチャートである。具体的には、
図6は、リフレッシュ手段170の動作を示すフローチャートである。なお、
図6に示されるフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【0055】
リフレッシュ手段170は、リフレッシュ処理を未実施のユーザデータの有無を判定する(ステップS410)。リフレッシュ処理を未実施のユーザデータがなければ(ステップS410:No)、リフレッシュ手段170は、ステップS410の処理へ戻る。リフレッシュ処理を未実施のユーザデータがあれば(ステップS410:Yes)、リフレッシュ手段170は、未処理のユーザデータのリフレッシュ処理を実行し(ステップS420)、ステップS410の処理へ戻る。なお、リフレッシュ手段170は、ウェアレベリングを行いながら、リフレッシュ処理を実行する。つまり、リフレッシュ手段170は、ユーザデータの書き換え先として書き換え回数の少ないセクターを優先的に選択して、ユーザデータのリフレッシュ処理を実行する。
【0056】
記憶装置105のその他の動作は、本発明の第1の実施形態の記憶装置100の動作と同じである。
【0057】
次に、本実施形態における処理の具体例について説明する。
【0058】
図7は、本発明の第2の実施形態の記憶装置105の処理の具体例を説明するための図である。具体的には、
図7は、初期状態、システムプログラムのリフレッシュ後、設定データのリフレッシュ後の各タイミングにおける、不揮発性メモリー145の各セクターに格納されるデータの例を示す。
【0059】
不揮発性メモリー145には、ブートプログラム、システムプログラム、システムプログラムの設定データ、監視用データの4種類のデータが書き込まれる。ブートプログラムは、外部の情報処理装置(不図示)により起動時に読み込まれるプログラムである。システムプログラムは、ブートプログラムにより起動されて各種の処理を実行するプログラムである。設定データは、システムプログラムの設定等を保持するためのデータである。
【0060】
情報処理装置は、起動時に、ブートプログラムを不揮発性メモリー145から読み出して、ブートプログラムを実行する。ブートプログラムはハードウェアの設定等を行うプログラムであり、プログラムは書き換えられない。そのため、ブートプログラムは、静的使用領域に保持される。
【0061】
また、情報処理装置は、システムプログラムを不揮発性メモリー145から読み出して、システムプログラムを実行する。また、情報処理装置は、設定データを不揮発性メモリー145から読み出して、設定データに基づいて、システムプログラムを動作させる。
【0062】
システムプログラムは、機能追加や不具合改善のために書き換えられることがある。また、設定データは、ユーザによる設定の変更によって書き換えられることがある。そのため、システムプログラム及び設定データは、動的使用領域に保持される。
【0063】
図7の「初期状態」の列に、記憶装置105の初期状態における不揮発性メモリー145の各セクターの使用状況の一例を示す。セクター[0]、[1]には、ブートプログラムが格納されている。セクター[2]〜[9]には、システムプログラムが格納されている。セクター[10]には、設定データが格納されている。セクター[11]〜[510]には、ユーザデータが存在しない(「空き」で示される)。セクター[511]には、監視用データとして、すべてのビットが“0”のデータが書き込まれている。なお、動的使用領域において、「空き」のセクターはN(Nは0以上の整数)回だけ書き換えられており、「空き」以外のセクターはN+1回だけ書き換えられているものとする。また、監視領域のセクターの書き換え回数は、動的使用領域における最大の書き換え回数(N+1)以上であるものとする。
【0064】
一般的に、フラッシュメモリー等の不揮発性メモリーでは、データ保持能力の劣化は、電子を保持する能力の低下により、本来“0”であるべきビットが“1”に変化する現象として発生することが多い。このため、すべてのビットが“0”のデータを監視用データとして書き込み、監視用データにおける“1”のビットを検出することにより、不揮発性メモリー145のデータ保持能力の劣化を効率的に検出することができる。
【0065】
なお、記憶装置105は、初回起動時に、セクター[511]に対して劣化促進用のデータで所定の回数だけ書き換えを行ってもよい。例えば、記憶装置105は、初回起動時に、セクター[511]の消去及びすべてのビットが“0”のデータの書き込みを100回だけ繰り返す。不揮発性メモリー145内部のメモリーセルには、製造時のばらつきによってデータ保持能力の差が存在する可能性がある。劣化促進用のデータの書き込みによりセクター[511]のデータ保持能力を初回起動時に意図的に劣化させることで、監視領域において不揮発性メモリー145の中で最も早く劣化を発生させることができる。
【0066】
リフレッシュ手段170は、セクター[511]で劣化が検出された場合に、ユーザデータが含まれるセクターのリフレッシュ処理を実行する。なお、リフレッシュ手段170は、ウェアレベリングを行いながら、リフレッシュ処理を実行する。
【0067】
図7の「システムプログラムのリフレッシュ後」の列に、記憶装置105のシステムプログラムのリフレッシュ処理後における、不揮発性メモリー145の各セクターの使用状況の一例を示す。リフレッシュ手段170は、初期状態(左欄)におけるセクター[2]〜[9]のシステムプログラム(ユーザデータ)の複製をセクター[11]〜[18]に書き込む。リフレッシュ手段170は、セクター[2]〜[9]のユーザデータを消去する(「空き」で示される)。なお、リフレッシュ手段170は、ウェアレベリングのために、セクター[11]〜[18]へのユーザデータのコピー後に、セクター[2]〜[9]のユーザデータの消去を行っている。
【0068】
図7の「設定データのリフレッシュ後」の列に、記憶装置105のシステムプログラムの設定データのリフレッシュ処理後における不揮発性メモリー145の各セクターの使用状況の一例を示す。リフレッシュ手段170は、設定データをセクター[19]に書き込み、セクター[10]の設定データを消去する(「空き」で示される)。
【0069】
このとき、セクター[511]では、ユーザ領域の最も書き換え回数の多いセクター(セクター[2]〜[10])にユーザデータが書き込まれていないので、監視用データ書込み手段130により書き換えの処理は行われない。
【0070】
続いて、上述のシステムプログラム及び設定データのリフレッシュと同様の処理が55回だけ実行された後の、不揮発性メモリー145の各セクターに格納されるデータの状態について説明する。
【0071】
リフレッシュ手段170は、同様なリフレッシュ処理をセクター[510]に対して行った後には、セクター[2]に戻ってリフレッシュ処理を行う。
【0072】
図8は、本発明の第2の実施形態の記憶装置105の処理の別の具体例を説明するための図である。具体的には、
図8は、システムプログラム及び設定データのリフレッシュ55回実行後、システムプログラムのリフレッシュ56回実行後、設定データの56回実行後の各タイミングにおける、不揮発性メモリー145の各セクターに格納されるデータの例を示す。
【0073】
図8の「設定データの55回目のリフレッシュ後」の列に、記憶装置105の設定データの55回目のリフレッシュ後における、不揮発性メモリー145の各セクターの使用状況の一例を示す。セクター[0]、[1]には、ブートプログラムが格納されている。セクター[2]〜[496]には、ユーザデータが存在しない。セクター[497]〜[504]には、システムプログラムが格納されている。セクター[505]には、設定データが格納されている。セクター[506]〜[510]には、ユーザデータが存在しない。セクター[511]には、監視用データとして、すべてのビットが“0”のデータが書き込まれている。なお、セクター[2]〜[505]における書き換え回数はN+1回である。また、セクター[506]〜[510]における書き換え回数はN回である。
【0074】
図8の「システムプログラムの56回目のリフレッシュ後」の列に、記憶装置105のシステムプログラムの56回目のリフレッシュ後における、不揮発性メモリー145の各セクターの使用状況の一例を示す。リフレッシュ手段170は、設定データの55回目のリフレッシュ後(左欄)におけるセクター[497]〜[504]のシステムプログラム(ユーザデータ)の複製をセクター[506]〜[510]及びセクター[2]〜[4]に書き込む。リフレッシュ手段170は、セクター[497]〜[504]のユーザデータを消去する。なお、リフレッシュ手段170は、ウェアレベリングのために、セクター[506]〜[510]及びセクター[2]〜[4]へのユーザデータのコピー後に、セクター[497]〜[504]のユーザデータの消去を行っている。
【0075】
システムプログラムのリフレッシュの56回目の実行中に、ユーザ領域の最も書き換え回数の多い(N+1回)セクターであるセクター[2]にユーザデータが書き込まれる。そこで、セクター[511]では、監視用データ書込み手段130により書き換えの処理が行われる。監視用データ書込み手段130は、セクター[511]の監視用データを消去した後に、セクター[511]にすべてのビットが“0”の監視用データを書き込む。監視用データ書込み手段130は、上述の書き換えの処理を所定の回数だけ繰り返してもよい。なお、書き換えの処理の繰り返しは、監視領域(セクター[511])のデータ保持能力の劣化をユーザ領域(セクター[0]〜[510])のデータ保持能力の劣化に比べて先行させる。つまり、書き換えの処理の繰り返しにより、不揮発性メモリー145のデータ保持能力の劣化が検出されやすくなる。
【0076】
劣化検出手段160は、1時間に1回、あるいは1日に1回等、所定のタイミングで監視領域のデータを読み出し、すべてのビットが“0”であるか否かを確認する。監視領域にビット“1”が1つでもあれば、劣化検出手段160は、不揮発性メモリー145の全体としての劣化が近いことを検出する。
【0077】
ユーザ領域では監視領域よりも書き換え回数が少ないので、劣化検出の時点ではユーザ領域のユーザデータは保持されている可能性が高い。そこで、リフレッシュ手段170は、監視領域における劣化検出を契機にリフレッシュ処理を行うことにより、ユーザ領域におけるユーザデータの正常性を保持する。
【0078】
以上説明したように、本実施形態の記憶装置105は、本発明の第1の実施形態の記憶装置100の構成要素をすべて含む。従って、本実施形態の記憶装置105は、本発明の第1の実施形態の記憶装置100が有する効果を含む。
【0079】
また、本実施形態の記憶装置105は、すべてのビットが“0”のデータを監視用データとして書き込み、監視用データにおける“1”のビットを検出することにより、不揮発性メモリー145のデータ保持能力の劣化を検出する。一般的に、フラッシュメモリー等の不揮発性メモリーでは、データ保持能力の劣化は、本来“0”であるべきビットが“1”に変化する現象として発生することが多い。つまり、本実施形態の記憶装置105は、監視用データに“1”のビットを含む場合に比べて、データ保持能力の劣化を検出できる可能性が高い。従って、本実施形態の記憶装置105では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより確実に検出することができるという効果がある。
【0080】
また、本実施形態の記憶装置105は、監視用データにおける“1”のビットを検出することによりデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置105では、任意のビットパターンや誤り検出符号等を用いた劣化の検出に比べて、少ない計算量で劣化が検出される。従って、本実施形態の記憶装置105では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
【0081】
なお、上述の説明では、リフレッシュ手段170がリフレッシュ処理を実行する場合について説明した。しかしながら、本実施形態の記憶装置105は、外部の情報処理装置(不図示)にリフレッシュ処理の実行を指示することにより、外部の情報処理装置にリフレッシュ処理を実行させてもよい。
【0082】
また、上述の説明では、監視領域が1セクターである場合について説明した。しかしながら、本実施形態の記憶装置105は、検出の確度を上げるために、複数のセクターを監視領域に割り当ててもよい。
【0083】
また、上述の説明では、監視領域が書き換え可能な不揮発性メモリーの末尾に設けられた場合について説明した。しかしながら、本実施形態の記憶装置105の監視領域は、書き換え可能な不揮発性メモリーの任意の位置に設けられても良い。
【0084】
また、上述の説明では、リフレッシュ処理が先頭のセクターから順次行われる場合について説明した。しかしながら、リフレッシュ処理におけるユーザデータの書き換え先として書き換え回数の少ないセクターが優先的に選択されるならば、各セクターに対して任意の順序でリフレッシュ処理が行われてもよい。
【0085】
また、上述した本発明の各実施形態の記憶装置は、専用の装置によって実現してもよいが、コンピュータ(情報処理装置)によっても実現可能である。この場合、係るコンピュータは、メモリ(不図示)に格納されたソフトウェア・プログラムをCPU(Central Processing Unit、不図示)に読み出し、読み出したソフトウェア・プログラムをCPUにおいて実行することにより、実行結果を、例えば、ユーザ・インタフェースに出力する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、
図1に示した記憶装置100の各手段、
図4に示した記憶装置105の各手段の各手段の機能を実現可能な記述がなされていればよい。ただし、記憶装置100、及び記憶装置105の各手段には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム(コンピュータ・プログラム)は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【0086】
以上、本発明を、上述した各実施形態およびその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態およびその変形例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。