(57)【特許請求の範囲】
【請求項１】
書き換え可能な不揮発性メモリーの一部のブロックを前記不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当手段と、
情報処理装置から受け取ったデータをウェアレベリングを行いながら前記監視領域以外の前記不揮発性メモリーのブロックに書き込むユーザデータ書込み手段と、
前記監視領域以外の前記不揮発性メモリーの最も書き換え回数の多いブロックにデータが１回書き込まれた場合に前記監視領域にデータ保持能力の監視用のデータを１回以上書き込む監視用データ書込み手段と、
前記監視領域のデータと前記監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出手段と
を備えたメモリー管理回路であって、
前記所定のタイミングにおける時間間隔は、前記劣化検出手段における負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ前記不揮発性メモリーにおける前記データ保持能力の劣化が進行する時間に比べて十分に短い
ことを特徴とするメモリー管理回路。
【請求項２】
前記劣化を検出した場合に、前記監視領域以外の前記不揮発性メモリーのブロックのユーザデータのリフレッシュ処理を実行するリフレッシュ手段
を更に備えたことを特徴とする請求項１に記載のメモリー管理回路。
【請求項３】
前記監視領域割当手段は、前記監視領域に劣化促進用のデータを所定の回数だけ書き込む
ことを特徴とする請求項１又は請求項２に記載のメモリー管理回路。
【請求項４】
前記監視用のデータは、すべてのビットが１のデータである
ことを特徴とする請求項１乃至３のいずれか１項に記載のメモリー管理回路。
【請求項５】
前記監視用のデータは、すべてのビットが０のデータである
ことを特徴とする請求項１乃至３のいずれか１項に記載のメモリー管理回路。
【請求項６】
請求項１から５のいずれか一項に記載の前記メモリー管理回路
を備えたことを特徴とする記憶装置。
【請求項７】
前記メモリー管理回路は、前記劣化を検出した場合に、前記監視領域以外の前記不揮発性メモリーのブロックのユーザデータのリフレッシュ処理を実行するリフレッシュ手段を更に備えたことを特徴とする請求項６に記載の記憶装置。
【請求項８】
書き換え可能な不揮発性メモリーの一部のブロックを前記不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当て、
情報処理装置から受け取ったデータをウェアレベリングを行いながら前記監視領域以外の前記不揮発性メモリーのブロックに書き込み、
前記監視領域以外の前記不揮発性メモリーの最も書き換え回数の多いブロックにデータが１回書き込まれた場合に前記監視領域にデータ保持能力の監視用のデータを１回以上書き込み、
前記監視領域のデータと前記監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する
メモリー管理方法であって、
前記所定のタイミングにおける時間間隔は、前記劣化検出手段における負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ前記不揮発性メモリーにおける前記データ保持能力の劣化が進行する時間に比べて十分に短い
ことを特徴とするメモリー管理方法。
【請求項９】
書き換え可能な不揮発性メモリーの一部のブロックを前記不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当処理と、
情報処理装置から受け取ったデータをウェアレベリングを行いながら前記監視領域以外の前記不揮発性メモリーのブロックに書き込むユーザデータ書込み処理と、
前記監視領域以外の前記不揮発性メモリーの最も書き換え回数の多いブロックにデータが１回書き込まれた場合に前記監視領域にデータ保持能力の監視用のデータを１回以上書き込む監視用データ書込み処理と、
前記監視領域のデータと前記監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出処理と
をコンピュータに実行させるメモリー管理プログラムであって、
前記所定のタイミングにおける時間間隔は、前記劣化検出手段における負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ前記不揮発性メモリーにおける前記データ保持能力の劣化が進行する時間に比べて十分に短い
ことを特徴とするメモリー管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え可能な不揮発性メモリーの、メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラムに関する。
【背景技術】
【０００２】
フラッシュメモリー等の書き換え可能な不揮発性メモリーは、一旦書き込まれたデータを非通電状態においても保持できる。そのため、書き換え可能な不揮発性メモリーは、データの保存用や、電子機器のプログラムや設定データの保存用等に広く使われる。
【０００３】
書き換え可能な不揮発性メモリーでは、電子を蓄積することによりデータが保持されるが、書き換え回数の増加や温度の上昇等によってデータ保持能力が劣化するという問題がある。例えば、電子機器の不揮発性メモリーのデータ保持能力の劣化によってプログラムが正常に読み出せなくなると、電子機器は動作不能になる。
【０００４】
データ保持能力の劣化を検出するメモリー管理技術の一例が、特許文献１に開示されている。特許文献１のフラッシュメモリー書込方法では、データ収納領域とテスト領域を有するフラッシュメモリーに対して、データの書き込みが発生すると、書き込み用データがデータ収納領域に書き込まれる。同時に、複数種の中から選択した１つのパターンデータがテスト領域に複数回書き込まれ、書き込まれたデータが読み出される。そして、書き込まれたパターンデータと読み出されたパターンデータとの同一性が判定され、同一性が損なわれている場合にアラームが発報される。上記の動作の結果、特許文献１のフラッシュメモリー書込方法では、使用中のフラッシュメモリーのデータ収納領域の寿命が到来する以前に、フラッシュメモリーの寿命を前もって知ることができる。
【０００５】
データ保持能力の劣化に起因する読出しデータの誤りを回避するために、書き換え可能な不揮発性メモリー上のデータを定期的に書き換える処理（リフレッシュ処理）が行われることがある。
【０００６】
データ保持能力の劣化の検出時にリフレッシュ処理を行うメモリー管理技術の一例が、特許文献２に開示されている。特許文献２の半導体記憶装置は、データ消去の単位であるブロックにデータを記憶することが可能な不揮発性メモリを備えた半導体記憶装置において、書込みデータに誤り訂正符号を付加して不揮発性メモリに書き込む。また、特許文献２の半導体記憶装置は、不揮発性メモリからのデータの読出し時には、不揮発性メモリに書込まれたデータを読み出し、誤り訂正符号を利用して誤り訂正するとともに、ブロック毎の誤り数を記憶する。そして、特許文献２の半導体記憶装置は、ブロックのうちから選択された監視対象ブロックに記憶されたデータの誤り数を所定の時間間隔で監視する。そして、特許文献２の半導体記憶装置は、データの誤り数が所定の閾値以上である監視対象ブロックに対してリフレッシュ処理を行う。上記の動作の結果、特許文献２の半導体記憶装置では、データの誤り数が多いブロックを対象に、リフレッシュ処理を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１４７８６２号公報
【特許文献２】特開２００９−２０５５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
書き換え可能な不揮発性メモリーのデータ保持能力の劣化を検出するメモリー管理技術では、劣化を検出するための処理の負荷が低いことが望ましい。
【０００９】
しかしながら、特許文献１のフラッシュメモリー書込方法では、書き込みデータの発生毎に、パターンデータがテスト領域に書き込まれ、書き込まれたパターンデータと読み出されたパターンデータとの同一性が判定される。そのため、特許文献１のフラッシュメモリー書込方法では、フラッシュメモリーのデータ保持能力の劣化を判定する処理が高頻度で発生するので、処理の負荷が高いという問題点がある。
【００１０】
また、特許文献２の半導体記憶装置では、データの読出し毎に、誤り訂正符号を利用して、読出したデータの誤り数が計算される。そのため、特許文献２の半導体記憶装置では、不揮発性メモリのデータ保持能力の劣化を検出する処理が高頻度で発生するので、処理の負荷が高いという問題点がある。
（発明の目的）
本発明の主たる目的は、上述した問題点を解決する、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を低負荷で検出することができる記憶装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明のメモリー管理回路は、書き換え可能な不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当手段と、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込むユーザデータ書込み手段と、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが１回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを１回以上書き込む監視用データ書込み手段と、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出手段と、を備えることを特徴とする。
【００１２】
本発明の記憶装置は、書き換え可能な不揮発性メモリー、及びメモリー管理回路を備え、メモリー管理回路は、不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当手段と、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込むユーザデータ書込み手段と、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが１回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを１回以上書き込む監視用データ書込み手段と、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出手段と、を備えることを特徴とする。
【００１３】
本発明のメモリー管理方法は、書き換え可能な不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当て、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込み、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが１回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを１回以上書き込み、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出することを特徴とする。
【００１４】
本発明のメモリー管理プログラムは、書き換え可能な不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当処理と、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込むユーザデータ書込み処理と、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが１回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを１回以上書き込む監視用データ書込み処理と、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を低負荷で検出することができるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態の記憶装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態の記憶装置の動作を示すフローチャートである。
【図３】本発明の第１の実施形態の記憶装置の不揮発性メモリー１４０のデータ保持能力の劣化を説明するための図である。
【図４】本発明の第２の実施形態の記憶装置の構成の一例を示すブロック図である。
【図５】本発明の第２の実施形態の記憶装置の不揮発性メモリーのブロックの構成の一例を示す図である。
【図６】本発明の第２の実施形態の記憶装置の動作を示すフローチャートである。
【図７】本発明の第２の実施形態の記憶装置の処理の具体例を説明するための図である。
【図８】本発明の第２の実施形態の記憶装置の処理の別の具体例を説明するための図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
本実施形態における構成について説明する。
【００１８】
図１は、本発明の第１の実施形態の記憶装置の構成の一例を示すブロック図である。
【００１９】
記憶装置１００は、外部の情報処理装置（不図示）により読み書きされるデータ（以下、「ユーザデータ」という）を保持する。記憶装置１００は、書き換え可能な不揮発性メモリー１４０と、メモリー管理回路１５０とを含む。
【００２０】
不揮発性メモリー１４０は、ブロック（「セクター」ともいう）単位で書き換え可能な不揮発性メモリーである。不揮発性メモリー１４０は、例えば、フラッシュメモリー、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、抵抗変化型メモリー、強誘電体メモリー、又は磁気抵抗メモリーである。なお、本実施形態では、不揮発性メモリー１４０は、「ウェアレベリング」機能を有しないものとする。「ウェアレベリング」とは、書き換え回数の少ないブロックを優先してデータを書き込むことにより、ブロック毎の書き換え回数を均等化することである。
【００２１】
メモリー管理回路１５０は、不揮発性メモリー１４０の管理機能を提供する。具体的には、メモリー管理回路１５０は、不揮発性メモリー１４０のブロックの一部を、不揮発性メモリー１４０のデータ保持能力の劣化を判定するためのブロック（以下、「監視領域」という）として用いる。また、メモリー管理回路１５０は、監視領域を除く不揮発性メモリー１４０のブロック（以下、「ユーザ領域」という）において、ユーザデータを保持する。なお、ユーザデータの書き込みにおいて、メモリー管理回路１５０は、ウェアレベリングを行う。そして、メモリー管理回路１５０は、ユーザ領域の最も書き換え回数の多いブロックにおいて１回の書き換えが行われたら、監視領域において１回以上の書き換えを行うことにより、監視領域のデータ保持能力をユーザ領域と同等か又はユーザ領域に先行して劣化させる。なお、メモリー管理回路１５０は、ユーザ領域の最も書き換え回数の多いブロックにおいて１回の書き換えが行われた際に監視領域において１回の書き換えを行う場合には、記憶装置１００の初回起動時に監視領域に劣化促進用のデータを書き込んでもよい。監視領域に劣化促進用のデータを所定の回数だけ書き込むことにより、監視領域の劣化はユーザ領域の劣化に比べて確実に先行させられる。そして、メモリー管理回路１５０は、監視領域におけるデータ保持能力の劣化を検出すると、不揮発性メモリー１４０の全体としての劣化が近いことを検出する。なお、メモリー管理回路１５０は、監視領域において、特定のビットパターンを持つデータ（以下、「監視用データ」という）を書きこむ。そして、メモリー管理回路１５０は、監視領域のビットパターンが監視用データと一致するか否かを所定のタイミングで監視することにより、監視領域のデータ保持能力の劣化を検出する。メモリー管理回路１５０は、ユーザデータ書込み手段１１０と、監視領域割当手段１２０と、監視用データ書込み手段１３０と、劣化検出手段１６０とを含む。
【００２２】
ユーザデータ書込み手段１１０は、外部の情報処理装置から受け取ったユーザデータを、ウェアレベリングを行いながら、不揮発性メモリー１４０に書き込む。つまり、ユーザデータ書込み手段１１０は、書き換え回数の少ないブロックを優先して、ユーザデータを不揮発性メモリー１４０に書き込む。
【００２３】
監視領域割当手段１２０は、不揮発性メモリー１４０の一部のブロックを、監視領域として割り当てる。
【００２４】
監視用データ書込み手段１３０は、ユーザ領域の最も書き換え回数の多いブロックにデータが１回書き込まれた場合に、ただちに監視領域に監視用データを１回以上書き込む。従って、監視領域は、ユーザ領域に比べてデータ保持能力の劣化が進んだ状態にある（詳細は後述）。なお、監視用データは、監視領域の大きさ以下の大きさを有する任意のデータである。監視用データは、例えば、すべてのビットが“０”のデータ、又はすべてのビットが“１”のデータである。
【００２５】
劣化検出手段１６０は、監視領域のデータと監視用データとの一致を所定のタイミングで判定する。一致すれば、劣化検出手段１６０は、監視領域において不揮発性メモリー１４０のデータ保持能力の劣化が発生していないものと判定する。一致しなければ、劣化検出手段１６０は、監視領域において不揮発性メモリー１４０のデータ保持能力の劣化が発生したものと判定する。監視領域は、ユーザ領域に比べてデータ保持能力の劣化が進んだ状態にあるので、監視領域においてデータ保持能力の劣化が発生すれば、いずれユーザ領域においてもデータ保持能力の劣化が発生することが予想される。そこで、劣化検出手段１６０は、監視領域においてデータ保持能力の劣化を検出すると、不揮発性メモリー１４０全体としてのデータ保持能力の劣化が近いことを検出する。なお、判定処理の時間間隔は、判定処理の負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ不揮発性メモリー１４０のデータ保持能力の劣化が進行する時間に比べて十分短い、任意の時間である。判定処理の時間間隔は、例えば、１時間、１日である。また、判定処理の時間間隔は、ユーザデータの書き換え量に応じて、増減されてもよい。劣化検出手段１６０は、例えば、所定の閾値をユーザデータの書き換え量で除算することにより判定処理の時間間隔を決定してもよい。
【００２６】
なお、監視用データの大きさが大きいほど、データ保持能力の劣化が検出される可能性が高い。また、監視用データは、データ保持能力の劣化により、不揮発性メモリー１４０のビットが変化する傾向に基づいて、選択されることが望ましい。まず、データ保持能力の劣化により、不揮発性メモリー１４０のビット“０”がビット“１”に変化する可能性が、ビット“１”がビット“０”に変化する可能性よりも大きい場合について説明する。この場合には、ビット“０”がビット“１”より多い監視用データは、ビット“１”がビット“０”より多い監視用データに比べて、データ保持能力の劣化を検出できる可能性が高い。一方、データ保持能力の劣化により、不揮発性メモリー１４０のビット“１”がビット“０”に変化する可能性が、ビット“０”がビット“１”に変化する可能性よりも大きい場合について説明する。この場合には、ビット“１”がビット“０”より多い監視用データは、ビット“０”がビット“１”より多い監視用データに比べて、データ保持能力の劣化を検出できる可能性が高い。
【００２７】
また、劣化検出手段１６０は、不揮発性メモリー１４０のデータ保持能力の劣化を検出した際に、劣化をユーザに通知してもよい。あるいは、劣化検出手段１６０は、不揮発性メモリー１４０のデータ保持能力の劣化を検出した際に、不揮発性メモリー１４０上のユーザデータの劣化を抑制する処理を実行してもよい。ユーザデータの劣化を抑制する処理は、例えば、ユーザデータを別のブロックへ書き換える処理（以下、「リフレッシュ処理」という）である。リフレッシュ処理により、ユーザデータの保持時間が延長される。
【００２８】
また、監視領域割当手段１２０は、監視領域の劣化を促進するために、記憶装置１００の初回起動時に監視領域に劣化促進用のデータを所定の回数だけ書き込んでもよい。劣化促進用のデータの書き込みは、記憶装置１００の初回起動時にはユーザ領域と監視領域の劣化の程度に差が無いので、監視領域の劣化をユーザ領域の劣化に比べて確実に先行させるために行われる。劣化促進用のデータは、監視領域の大きさ以下の大きさを有する任意のデータである。劣化促進用のデータは、例えば、すべてのビットが“０”のデータ、又はすべてのビットが“１”のデータである。なお、劣化促進用のデータは、監視用データと同一であってもよい。
【００２９】
次に、本実施形態における動作について説明する。
【００３０】
図２は、本発明の第１の実施形態の記憶装置１００の動作を示すフローチャートである。具体的には、図２（ａ）は、監視領域割当手段１２０の動作を示すフローチャートである。図２（ｂ）は、監視用データ書込み手段１３０の動作を示すフローチャートである。図２（ｃ）は、劣化検出手段１６０の動作を示すフローチャートである。なお、図２に示されるフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００３１】
監視領域割当手段１２０は、不揮発性メモリー１４０の一部のブロックを、監視領域として割り当てる（ステップＳ１１０）。
【００３２】
監視用データ書込み手段１３０は、ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれたか否かを判定する（ステップＳ２１０）。ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれていない場合には（ステップＳ２１０：Ｎｏ）、監視用データ書込み手段１３０は、ステップＳ２１０の処理へ戻る。ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれた場合には（ステップＳ２１０：Ｙｅｓ）、監視用データ書込み手段１３０は、ただちに監視領域に監視用データを１回以上書き込み（ステップＳ２２０）、ステップＳ２１０の処理へ戻る。
【００３３】
劣化検出手段１６０は、所定の時間だけ待機した（ステップＳ３１０）後に、監視領域のデータと監視用データとの一致を判定する（ステップＳ３２０）。監視領域のデータと監視用データとが一致した場合には（ステップＳ３２０：Ｙｅｓ）、劣化検出手段１６０は、ステップＳ３１０の処理へ戻る。監視領域のデータと監視用データとが一致しない場合には（ステップＳ３２０：Ｎｏ）、劣化検出手段１６０は、不揮発性メモリー１４０全体としてのデータ保持能力の劣化を検出し（ステップＳ３３０）、ステップＳ３１０の処理へ戻る。
【００３４】
図３は、本発明の第１の実施形態の記憶装置１００の不揮発性メモリー１４０のデータ保持能力の劣化を説明するための図である。横軸は不揮発性メモリー１４０のデータの書き換え回数を、縦軸は不揮発性メモリー１４０のデータ保持時間を示す。なお、図３は、書き換え回数とデータ保持時間の相関を説明するためのものであり、数値は一例である。
【００３５】
図３に示されるように、フラッシュメモリーのような不揮発性メモリーでは、書き換え回数の増加に伴い、データ保持時間が減少する。つまり、不揮発性メモリー１４０では、書き換え回数の増加に伴い、データ保持能力が劣化する。すなわち、監視領域におけるデータの書き換え回数が、ユーザ領域におけるデータの書き換え回数よりも多ければ、監視領域におけるデータ保持能力の劣化は、ユーザ領域におけるデータ保持能力の劣化よりも先行する。監視用データ書込み手段１３０は、監視領域における書き換え回数がユーザ領域における書き換え回数以上になるように、監視用データを書き換える。従って、監視用データ書込み手段１３０は、監視領域がユーザ領域に比べてデータ保持能力の劣化が進んだ状態を維持する。
【００３６】
以上説明したように、本実施形態の記憶装置１００は、監視領域のデータ保持能力の劣化がユーザ領域のデータ保持能力の劣化に常に先行するように、監視領域のデータを書き換える。そして、本実施形態の記憶装置１００は、読み出したデータが書き込んだ監視用データと一致するか否かを所定のタイミングで判定することにより、監視領域のデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置１００は、監視領域のデータ保持能力の劣化の所定のタイミングでの判定結果に基づいて、不揮発性メモリー１４０の全体としての劣化が近いことを検出する。従って、本実施形態の記憶装置１００では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を低負荷で検出することができるという効果がある。
【００３７】
また、本実施形態の記憶装置１００では、ユーザデータ書込み手段１１０はウェアレベリング機能を提供する。すなわち、ユーザデータ書込み手段１１０は、ユーザ領域のブロック毎の書き換え回数を均等化する。一方、書き換え可能な不揮発性メモリーでは、ブロック毎の書き換え回数が増加すると、データの保持時間が短くなる。従って、本実施形態の記憶装置１００では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化の発生を遅らせることができるという効果がある。
【００３８】
また、本実施形態の記憶装置１００では、監視用データ書込み手段１３０は、ユーザ領域の最も書き換え回数の多いブロックにデータが１回書き込まれた場合に、監視領域に監視用データを１回以上書き込む。つまり、本実施形態の記憶装置１００では、ユーザデータの書き込み毎に監視用データを書き込む必要がない。従って、本実施形態の記憶装置１００では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
【００３９】
また、本実施形態の記憶装置１００は、監視用データにおけるビットの変化を検出することによりデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置１００では、誤り検出符号等を用いた劣化の検出に比べて、少ない計算量で劣化が検出される。従って、本実施形態の記憶装置１００では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
【００４０】
また、本実施形態の記憶装置１００は、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を検出するために、温度センサー等の専用の回路を必要としない。従って、本実施形態の記憶装置１００では、記憶装置１００の製造コストを低減できるという効果がある。
（第２の実施形態）
次に、上述した第１の実施形態の記憶装置を基本とする、本発明の第２の実施形態の記憶装置について説明する。本実施形態の記憶装置は、不揮発性メモリーのデータ保持能力の劣化を検出した場合に、ユーザデータのリフレッシュ処理を実行する。また、すべてのビットが“０”の監視用データを使用する。以下の説明において、第１の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
【００４１】
本実施形態における構成について説明する。
【００４２】
図４は、本発明の第２の実施形態の記憶装置の構成の一例を示すブロック図である。
【００４３】
記憶装置１０５は、書き換え可能な不揮発性メモリー１４５と、不揮発性メモリー１４５の管理機能を提供するメモリー管理回路１５５とを含む。
【００４４】
メモリー管理回路１５５は、本発明の第１の実施形態のメモリー管理回路１５０の構成要素に加えて、リフレッシュ手段１７０を更に含む。
【００４５】
リフレッシュ手段１７０は、不揮発性メモリー１４５のデータ保持能力の劣化が検出された場合に、ユーザデータのリフレッシュ処理を実行する。
【００４６】
不揮発性メモリー１４５は、セクター単位で書き換え可能な不揮発性メモリーである。不揮発性メモリー１４５は、例えば、フラッシュメモリーである。
【００４７】
図５は、本発明の第２の実施形態の記憶装置１０５の不揮発性メモリー１４５の記憶領域の構成の一例を示す図である。
【００４８】
不揮発性メモリー１４５の記憶領域は、複数のセクターを含む。セクターは、不揮発性メモリー１４５上のデータを消去する際の最小単位である。図５は、不揮発性メモリー１４５上の記憶領域が５１２セクターを含む場合の例を示す。
【００４９】
セクター［０］、セクター［１］は、外部の情報処理装置（不図示）のブートプログラムを格納するための、書き換えが行われない記憶領域である。以下、この記憶領域を「静的使用領域」という。
【００５０】
セクター［２］〜セクター［５１０］は、外部の情報処理装置（不図示）により必要に応じて読み書きされる、書き換え可能な記憶領域である。以下、この記憶領域を「動的使用領域」という。
【００５１】
セクター［５１１］は、監視領域である。
【００５２】
記憶装置１０５のその他の構成は、本発明の第１の実施形態の記憶装置１００の構成と同じである。
【００５３】
次に、本実施形態における動作について説明する。
【００５４】
図６は、本発明の第２の実施形態の記憶装置１０５の動作を示すフローチャートである。具体的には、図６は、リフレッシュ手段１７０の動作を示すフローチャートである。なお、図６に示されるフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００５５】
リフレッシュ手段１７０は、リフレッシュ処理を未実施のユーザデータの有無を判定する（ステップＳ４１０）。リフレッシュ処理を未実施のユーザデータがなければ（ステップＳ４１０：Ｎｏ）、リフレッシュ手段１７０は、ステップＳ４１０の処理へ戻る。リフレッシュ処理を未実施のユーザデータがあれば（ステップＳ４１０：Ｙｅｓ）、リフレッシュ手段１７０は、未処理のユーザデータのリフレッシュ処理を実行し（ステップＳ４２０）、ステップＳ４１０の処理へ戻る。なお、リフレッシュ手段１７０は、ウェアレベリングを行いながら、リフレッシュ処理を実行する。つまり、リフレッシュ手段１７０は、ユーザデータの書き換え先として書き換え回数の少ないセクターを優先的に選択して、ユーザデータのリフレッシュ処理を実行する。
【００５６】
記憶装置１０５のその他の動作は、本発明の第１の実施形態の記憶装置１００の動作と同じである。
【００５７】
次に、本実施形態における処理の具体例について説明する。
【００５８】
図７は、本発明の第２の実施形態の記憶装置１０５の処理の具体例を説明するための図である。具体的には、図７は、初期状態、システムプログラムのリフレッシュ後、設定データのリフレッシュ後の各タイミングにおける、不揮発性メモリー１４５の各セクターに格納されるデータの例を示す。
【００５９】
不揮発性メモリー１４５には、ブートプログラム、システムプログラム、システムプログラムの設定データ、監視用データの４種類のデータが書き込まれる。ブートプログラムは、外部の情報処理装置（不図示）により起動時に読み込まれるプログラムである。システムプログラムは、ブートプログラムにより起動されて各種の処理を実行するプログラムである。設定データは、システムプログラムの設定等を保持するためのデータである。
【００６０】
情報処理装置は、起動時に、ブートプログラムを不揮発性メモリー１４５から読み出して、ブートプログラムを実行する。ブートプログラムはハードウェアの設定等を行うプログラムであり、プログラムは書き換えられない。そのため、ブートプログラムは、静的使用領域に保持される。
【００６１】
また、情報処理装置は、システムプログラムを不揮発性メモリー１４５から読み出して、システムプログラムを実行する。また、情報処理装置は、設定データを不揮発性メモリー１４５から読み出して、設定データに基づいて、システムプログラムを動作させる。
【００６２】
システムプログラムは、機能追加や不具合改善のために書き換えられることがある。また、設定データは、ユーザによる設定の変更によって書き換えられることがある。そのため、システムプログラム及び設定データは、動的使用領域に保持される。
【００６３】
図７の「初期状態」の列に、記憶装置１０５の初期状態における不揮発性メモリー１４５の各セクターの使用状況の一例を示す。セクター［０］、［１］には、ブートプログラムが格納されている。セクター［２］〜［９］には、システムプログラムが格納されている。セクター［１０］には、設定データが格納されている。セクター［１１］〜［５１０］には、ユーザデータが存在しない（「空き」で示される）。セクター［５１１］には、監視用データとして、すべてのビットが“０”のデータが書き込まれている。なお、動的使用領域において、「空き」のセクターはＮ（Ｎは０以上の整数）回だけ書き換えられており、「空き」以外のセクターはＮ＋１回だけ書き換えられているものとする。また、監視領域のセクターの書き換え回数は、動的使用領域における最大の書き換え回数（Ｎ＋１）以上であるものとする。
【００６４】
一般的に、フラッシュメモリー等の不揮発性メモリーでは、データ保持能力の劣化は、電子を保持する能力の低下により、本来“０”であるべきビットが“１”に変化する現象として発生することが多い。このため、すべてのビットが“０”のデータを監視用データとして書き込み、監視用データにおける“１”のビットを検出することにより、不揮発性メモリー１４５のデータ保持能力の劣化を効率的に検出することができる。
【００６５】
なお、記憶装置１０５は、初回起動時に、セクター［５１１］に対して劣化促進用のデータで所定の回数だけ書き換えを行ってもよい。例えば、記憶装置１０５は、初回起動時に、セクター［５１１］の消去及びすべてのビットが“０”のデータの書き込みを１００回だけ繰り返す。不揮発性メモリー１４５内部のメモリーセルには、製造時のばらつきによってデータ保持能力の差が存在する可能性がある。劣化促進用のデータの書き込みによりセクター［５１１］のデータ保持能力を初回起動時に意図的に劣化させることで、監視領域において不揮発性メモリー１４５の中で最も早く劣化を発生させることができる。
【００６６】
リフレッシュ手段１７０は、セクター［５１１］で劣化が検出された場合に、ユーザデータが含まれるセクターのリフレッシュ処理を実行する。なお、リフレッシュ手段１７０は、ウェアレベリングを行いながら、リフレッシュ処理を実行する。
【００６７】
図７の「システムプログラムのリフレッシュ後」の列に、記憶装置１０５のシステムプログラムのリフレッシュ処理後における、不揮発性メモリー１４５の各セクターの使用状況の一例を示す。リフレッシュ手段１７０は、初期状態（左欄）におけるセクター［２］〜［９］のシステムプログラム（ユーザデータ）の複製をセクター［１１］〜［１８］に書き込む。リフレッシュ手段１７０は、セクター［２］〜［９］のユーザデータを消去する（「空き」で示される）。なお、リフレッシュ手段１７０は、ウェアレベリングのために、セクター［１１］〜［１８］へのユーザデータのコピー後に、セクター［２］〜［９］のユーザデータの消去を行っている。
【００６８】
図７の「設定データのリフレッシュ後」の列に、記憶装置１０５のシステムプログラムの設定データのリフレッシュ処理後における不揮発性メモリー１４５の各セクターの使用状況の一例を示す。リフレッシュ手段１７０は、設定データをセクター［１９］に書き込み、セクター［１０］の設定データを消去する（「空き」で示される）。
【００６９】
このとき、セクター［５１１］では、ユーザ領域の最も書き換え回数の多いセクター（セクター［２］〜［１０］）にユーザデータが書き込まれていないので、監視用データ書込み手段１３０により書き換えの処理は行われない。
【００７０】
続いて、上述のシステムプログラム及び設定データのリフレッシュと同様の処理が５５回だけ実行された後の、不揮発性メモリー１４５の各セクターに格納されるデータの状態について説明する。
【００７１】
リフレッシュ手段１７０は、同様なリフレッシュ処理をセクター［５１０］に対して行った後には、セクター［２］に戻ってリフレッシュ処理を行う。
【００７２】
図８は、本発明の第２の実施形態の記憶装置１０５の処理の別の具体例を説明するための図である。具体的には、図８は、システムプログラム及び設定データのリフレッシュ５５回実行後、システムプログラムのリフレッシュ５６回実行後、設定データの５６回実行後の各タイミングにおける、不揮発性メモリー１４５の各セクターに格納されるデータの例を示す。
【００７３】
図８の「設定データの５５回目のリフレッシュ後」の列に、記憶装置１０５の設定データの５５回目のリフレッシュ後における、不揮発性メモリー１４５の各セクターの使用状況の一例を示す。セクター［０］、［１］には、ブートプログラムが格納されている。セクター［２］〜［４９６］には、ユーザデータが存在しない。セクター［４９７］〜［５０４］には、システムプログラムが格納されている。セクター［５０５］には、設定データが格納されている。セクター［５０６］〜［５１０］には、ユーザデータが存在しない。セクター［５１１］には、監視用データとして、すべてのビットが“０”のデータが書き込まれている。なお、セクター［２］〜［５０５］における書き換え回数はＮ＋１回である。また、セクター［５０６］〜［５１０］における書き換え回数はＮ回である。
【００７４】
図８の「システムプログラムの５６回目のリフレッシュ後」の列に、記憶装置１０５のシステムプログラムの５６回目のリフレッシュ後における、不揮発性メモリー１４５の各セクターの使用状況の一例を示す。リフレッシュ手段１７０は、設定データの５５回目のリフレッシュ後（左欄）におけるセクター［４９７］〜［５０４］のシステムプログラム（ユーザデータ）の複製をセクター［５０６］〜［５１０］及びセクター［２］〜［４］に書き込む。リフレッシュ手段１７０は、セクター［４９７］〜［５０４］のユーザデータを消去する。なお、リフレッシュ手段１７０は、ウェアレベリングのために、セクター［５０６］〜［５１０］及びセクター［２］〜［４］へのユーザデータのコピー後に、セクター［４９７］〜［５０４］のユーザデータの消去を行っている。
【００７５】
システムプログラムのリフレッシュの５６回目の実行中に、ユーザ領域の最も書き換え回数の多い（Ｎ＋１回）セクターであるセクター［２］にユーザデータが書き込まれる。そこで、セクター［５１１］では、監視用データ書込み手段１３０により書き換えの処理が行われる。監視用データ書込み手段１３０は、セクター［５１１］の監視用データを消去した後に、セクター［５１１］にすべてのビットが“０”の監視用データを書き込む。監視用データ書込み手段１３０は、上述の書き換えの処理を所定の回数だけ繰り返してもよい。なお、書き換えの処理の繰り返しは、監視領域（セクター［５１１］）のデータ保持能力の劣化をユーザ領域（セクター［０］〜［５１０］）のデータ保持能力の劣化に比べて先行させる。つまり、書き換えの処理の繰り返しにより、不揮発性メモリー１４５のデータ保持能力の劣化が検出されやすくなる。
【００７６】
劣化検出手段１６０は、１時間に１回、あるいは１日に１回等、所定のタイミングで監視領域のデータを読み出し、すべてのビットが“０”であるか否かを確認する。監視領域にビット“１”が１つでもあれば、劣化検出手段１６０は、不揮発性メモリー１４５の全体としての劣化が近いことを検出する。
【００７７】
ユーザ領域では監視領域よりも書き換え回数が少ないので、劣化検出の時点ではユーザ領域のユーザデータは保持されている可能性が高い。そこで、リフレッシュ手段１７０は、監視領域における劣化検出を契機にリフレッシュ処理を行うことにより、ユーザ領域におけるユーザデータの正常性を保持する。
【００７８】
以上説明したように、本実施形態の記憶装置１０５は、本発明の第１の実施形態の記憶装置１００の構成要素をすべて含む。従って、本実施形態の記憶装置１０５は、本発明の第１の実施形態の記憶装置１００が有する効果を含む。
【００７９】
また、本実施形態の記憶装置１０５は、すべてのビットが“０”のデータを監視用データとして書き込み、監視用データにおける“１”のビットを検出することにより、不揮発性メモリー１４５のデータ保持能力の劣化を検出する。一般的に、フラッシュメモリー等の不揮発性メモリーでは、データ保持能力の劣化は、本来“０”であるべきビットが“１”に変化する現象として発生することが多い。つまり、本実施形態の記憶装置１０５は、監視用データに“１”のビットを含む場合に比べて、データ保持能力の劣化を検出できる可能性が高い。従って、本実施形態の記憶装置１０５では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより確実に検出することができるという効果がある。
【００８０】
また、本実施形態の記憶装置１０５は、監視用データにおける“１”のビットを検出することによりデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置１０５では、任意のビットパターンや誤り検出符号等を用いた劣化の検出に比べて、少ない計算量で劣化が検出される。従って、本実施形態の記憶装置１０５では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
【００８１】
なお、上述の説明では、リフレッシュ手段１７０がリフレッシュ処理を実行する場合について説明した。しかしながら、本実施形態の記憶装置１０５は、外部の情報処理装置（不図示）にリフレッシュ処理の実行を指示することにより、外部の情報処理装置にリフレッシュ処理を実行させてもよい。
【００８２】
また、上述の説明では、監視領域が１セクターである場合について説明した。しかしながら、本実施形態の記憶装置１０５は、検出の確度を上げるために、複数のセクターを監視領域に割り当ててもよい。
【００８３】
また、上述の説明では、監視領域が書き換え可能な不揮発性メモリーの末尾に設けられた場合について説明した。しかしながら、本実施形態の記憶装置１０５の監視領域は、書き換え可能な不揮発性メモリーの任意の位置に設けられても良い。
【００８４】
また、上述の説明では、リフレッシュ処理が先頭のセクターから順次行われる場合について説明した。しかしながら、リフレッシュ処理におけるユーザデータの書き換え先として書き換え回数の少ないセクターが優先的に選択されるならば、各セクターに対して任意の順序でリフレッシュ処理が行われてもよい。
【００８５】
また、上述した本発明の各実施形態の記憶装置は、専用の装置によって実現してもよいが、コンピュータ（情報処理装置）によっても実現可能である。この場合、係るコンピュータは、メモリ（不図示）に格納されたソフトウェア・プログラムをＣＰＵ（Central Processing Unit、不図示）に読み出し、読み出したソフトウェア・プログラムをＣＰＵにおいて実行することにより、実行結果を、例えば、ユーザ・インタフェースに出力する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図１に示した記憶装置１００の各手段、図４に示した記憶装置１０５の各手段の各手段の機能を実現可能な記述がなされていればよい。ただし、記憶装置１００、及び記憶装置１０５の各手段には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム（コンピュータ・プログラム）は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【００８６】
以上、本発明を、上述した各実施形態およびその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態およびその変形例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【産業上の利用可能性】
【００８７】
本発明は、データ又はプログラムを、書き換え可能な不揮発性メモリーに格納する電子機器において、利用できる。
【符号の説明】
【００８８】
１００、１０５  記憶装置
１１０  ユーザデータ書込み手段
１２０  監視領域割当手段
１３０  監視用データ書込み手段
１４０、１４５  不揮発性メモリー
１５０、１５５  メモリー管理回路
１６０  劣化検出手段
１７０  リフレッシュ手段
【図１】
0006306548.tif 000002
【図２】
0006306548.tif 000003
【図３】
0006306548.tif 000004
【図４】
0006306548.tif 000005
【図５】
0006306548.tif 000006
【図６】
0006306548.tif 000007
【図７】
0006306548.tif 000008
【図８】
0006306548.tif 000009