JP6306548B2 - メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム - Google Patents

メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム Download PDF

Info

Publication number
JP6306548B2
JP6306548B2 JP2015175688A JP2015175688A JP6306548B2 JP 6306548 B2 JP6306548 B2 JP 6306548B2 JP 2015175688 A JP2015175688 A JP 2015175688A JP 2015175688 A JP2015175688 A JP 2015175688A JP 6306548 B2 JP6306548 B2 JP 6306548B2
Authority
JP
Japan
Prior art keywords
data
deterioration
monitoring
monitoring area
nonvolatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015175688A
Other languages
English (en)
Other versions
JP2017054173A (ja
Inventor
加藤 哲也
哲也 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2015175688A priority Critical patent/JP6306548B2/ja
Publication of JP2017054173A publication Critical patent/JP2017054173A/ja
Application granted granted Critical
Publication of JP6306548B2 publication Critical patent/JP6306548B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、書き換え可能な不揮発性メモリーの、メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラムに関する。
フラッシュメモリー等の書き換え可能な不揮発性メモリーは、一旦書き込まれたデータを非通電状態においても保持できる。そのため、書き換え可能な不揮発性メモリーは、データの保存用や、電子機器のプログラムや設定データの保存用等に広く使われる。
書き換え可能な不揮発性メモリーでは、電子を蓄積することによりデータが保持されるが、書き換え回数の増加や温度の上昇等によってデータ保持能力が劣化するという問題がある。例えば、電子機器の不揮発性メモリーのデータ保持能力の劣化によってプログラムが正常に読み出せなくなると、電子機器は動作不能になる。
データ保持能力の劣化を検出するメモリー管理技術の一例が、特許文献1に開示されている。特許文献1のフラッシュメモリー書込方法では、データ収納領域とテスト領域を有するフラッシュメモリーに対して、データの書き込みが発生すると、書き込み用データがデータ収納領域に書き込まれる。同時に、複数種の中から選択した1つのパターンデータがテスト領域に複数回書き込まれ、書き込まれたデータが読み出される。そして、書き込まれたパターンデータと読み出されたパターンデータとの同一性が判定され、同一性が損なわれている場合にアラームが発報される。上記の動作の結果、特許文献1のフラッシュメモリー書込方法では、使用中のフラッシュメモリーのデータ収納領域の寿命が到来する以前に、フラッシュメモリーの寿命を前もって知ることができる。
データ保持能力の劣化に起因する読出しデータの誤りを回避するために、書き換え可能な不揮発性メモリー上のデータを定期的に書き換える処理(リフレッシュ処理)が行われることがある。
データ保持能力の劣化の検出時にリフレッシュ処理を行うメモリー管理技術の一例が、特許文献2に開示されている。特許文献2の半導体記憶装置は、データ消去の単位であるブロックにデータを記憶することが可能な不揮発性メモリを備えた半導体記憶装置において、書込みデータに誤り訂正符号を付加して不揮発性メモリに書き込む。また、特許文献2の半導体記憶装置は、不揮発性メモリからのデータの読出し時には、不揮発性メモリに書込まれたデータを読み出し、誤り訂正符号を利用して誤り訂正するとともに、ブロック毎の誤り数を記憶する。そして、特許文献2の半導体記憶装置は、ブロックのうちから選択された監視対象ブロックに記憶されたデータの誤り数を所定の時間間隔で監視する。そして、特許文献2の半導体記憶装置は、データの誤り数が所定の閾値以上である監視対象ブロックに対してリフレッシュ処理を行う。上記の動作の結果、特許文献2の半導体記憶装置では、データの誤り数が多いブロックを対象に、リフレッシュ処理を行う。
特開2001−147862号公報 特開2009−205578号公報
書き換え可能な不揮発性メモリーのデータ保持能力の劣化を検出するメモリー管理技術では、劣化を検出するための処理の負荷が低いことが望ましい。
しかしながら、特許文献1のフラッシュメモリー書込方法では、書き込みデータの発生毎に、パターンデータがテスト領域に書き込まれ、書き込まれたパターンデータと読み出されたパターンデータとの同一性が判定される。そのため、特許文献1のフラッシュメモリー書込方法では、フラッシュメモリーのデータ保持能力の劣化を判定する処理が高頻度で発生するので、処理の負荷が高いという問題点がある。
また、特許文献2の半導体記憶装置では、データの読出し毎に、誤り訂正符号を利用して、読出したデータの誤り数が計算される。そのため、特許文献2の半導体記憶装置では、不揮発性メモリのデータ保持能力の劣化を検出する処理が高頻度で発生するので、処理の負荷が高いという問題点がある。
(発明の目的)
本発明の主たる目的は、上述した問題点を解決する、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を低負荷で検出することができる記憶装置を提供することにある。
本発明のメモリー管理回路は、書き換え可能な不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当手段と、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込むユーザデータ書込み手段と、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが1回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを1回以上書き込む監視用データ書込み手段と、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出手段と、を備えることを特徴とする。
本発明の記憶装置は、書き換え可能な不揮発性メモリー、及びメモリー管理回路を備え、メモリー管理回路は、不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当手段と、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込むユーザデータ書込み手段と、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが1回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを1回以上書き込む監視用データ書込み手段と、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出手段と、を備えることを特徴とする。
本発明のメモリー管理方法は、書き換え可能な不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当て、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込み、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが1回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを1回以上書き込み、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出することを特徴とする。
本発明のメモリー管理プログラムは、書き換え可能な不揮発性メモリーの一部のブロックを不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当処理と、情報処理装置から受け取ったデータをウェアレベリングを行いながら監視領域以外の不揮発性メモリーのブロックに書き込むユーザデータ書込み処理と、監視領域以外の不揮発性メモリーの最も書き換え回数の多いブロックにデータが1回書き込まれた場合に監視領域にデータ保持能力の監視用のデータを1回以上書き込む監視用データ書込み処理と、監視領域のデータと監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出処理と、をコンピュータに実行させることを特徴とする。
本発明によれば、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を低負荷で検出することができるという効果がある。
本発明の第1の実施形態の記憶装置の構成の一例を示すブロック図である。 本発明の第1の実施形態の記憶装置の動作を示すフローチャートである。 本発明の第1の実施形態の記憶装置の不揮発性メモリー140のデータ保持能力の劣化を説明するための図である。 本発明の第2の実施形態の記憶装置の構成の一例を示すブロック図である。 本発明の第2の実施形態の記憶装置の不揮発性メモリーのブロックの構成の一例を示す図である。 本発明の第2の実施形態の記憶装置の動作を示すフローチャートである。 本発明の第2の実施形態の記憶装置の処理の具体例を説明するための図である。 本発明の第2の実施形態の記憶装置の処理の別の具体例を説明するための図である。
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
(第1の実施形態)
本実施形態における構成について説明する。
図1は、本発明の第1の実施形態の記憶装置の構成の一例を示すブロック図である。
記憶装置100は、外部の情報処理装置(不図示)により読み書きされるデータ(以下、「ユーザデータ」という)を保持する。記憶装置100は、書き換え可能な不揮発性メモリー140と、メモリー管理回路150とを含む。
不揮発性メモリー140は、ブロック(「セクター」ともいう)単位で書き換え可能な不揮発性メモリーである。不揮発性メモリー140は、例えば、フラッシュメモリー、EEPROM(Electrically Erasable Programmable Read-Only Memory)、抵抗変化型メモリー、強誘電体メモリー、又は磁気抵抗メモリーである。なお、本実施形態では、不揮発性メモリー140は、「ウェアレベリング」機能を有しないものとする。「ウェアレベリング」とは、書き換え回数の少ないブロックを優先してデータを書き込むことにより、ブロック毎の書き換え回数を均等化することである。
メモリー管理回路150は、不揮発性メモリー140の管理機能を提供する。具体的には、メモリー管理回路150は、不揮発性メモリー140のブロックの一部を、不揮発性メモリー140のデータ保持能力の劣化を判定するためのブロック(以下、「監視領域」という)として用いる。また、メモリー管理回路150は、監視領域を除く不揮発性メモリー140のブロック(以下、「ユーザ領域」という)において、ユーザデータを保持する。なお、ユーザデータの書き込みにおいて、メモリー管理回路150は、ウェアレベリングを行う。そして、メモリー管理回路150は、ユーザ領域の最も書き換え回数の多いブロックにおいて1回の書き換えが行われたら、監視領域において1回以上の書き換えを行うことにより、監視領域のデータ保持能力をユーザ領域と同等か又はユーザ領域に先行して劣化させる。なお、メモリー管理回路150は、ユーザ領域の最も書き換え回数の多いブロックにおいて1回の書き換えが行われた際に監視領域において1回の書き換えを行う場合には、記憶装置100の初回起動時に監視領域に劣化促進用のデータを書き込んでもよい。監視領域に劣化促進用のデータを所定の回数だけ書き込むことにより、監視領域の劣化はユーザ領域の劣化に比べて確実に先行させられる。そして、メモリー管理回路150は、監視領域におけるデータ保持能力の劣化を検出すると、不揮発性メモリー140の全体としての劣化が近いことを検出する。なお、メモリー管理回路150は、監視領域において、特定のビットパターンを持つデータ(以下、「監視用データ」という)を書きこむ。そして、メモリー管理回路150は、監視領域のビットパターンが監視用データと一致するか否かを所定のタイミングで監視することにより、監視領域のデータ保持能力の劣化を検出する。メモリー管理回路150は、ユーザデータ書込み手段110と、監視領域割当手段120と、監視用データ書込み手段130と、劣化検出手段160とを含む。
ユーザデータ書込み手段110は、外部の情報処理装置から受け取ったユーザデータを、ウェアレベリングを行いながら、不揮発性メモリー140に書き込む。つまり、ユーザデータ書込み手段110は、書き換え回数の少ないブロックを優先して、ユーザデータを不揮発性メモリー140に書き込む。
監視領域割当手段120は、不揮発性メモリー140の一部のブロックを、監視領域として割り当てる。
監視用データ書込み手段130は、ユーザ領域の最も書き換え回数の多いブロックにデータが1回書き込まれた場合に、ただちに監視領域に監視用データを1回以上書き込む。従って、監視領域は、ユーザ領域に比べてデータ保持能力の劣化が進んだ状態にある(詳細は後述)。なお、監視用データは、監視領域の大きさ以下の大きさを有する任意のデータである。監視用データは、例えば、すべてのビットが“0”のデータ、又はすべてのビットが“1”のデータである。
劣化検出手段160は、監視領域のデータと監視用データとの一致を所定のタイミングで判定する。一致すれば、劣化検出手段160は、監視領域において不揮発性メモリー140のデータ保持能力の劣化が発生していないものと判定する。一致しなければ、劣化検出手段160は、監視領域において不揮発性メモリー140のデータ保持能力の劣化が発生したものと判定する。監視領域は、ユーザ領域に比べてデータ保持能力の劣化が進んだ状態にあるので、監視領域においてデータ保持能力の劣化が発生すれば、いずれユーザ領域においてもデータ保持能力の劣化が発生することが予想される。そこで、劣化検出手段160は、監視領域においてデータ保持能力の劣化を検出すると、不揮発性メモリー140全体としてのデータ保持能力の劣化が近いことを検出する。なお、判定処理の時間間隔は、判定処理の負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ不揮発性メモリー140のデータ保持能力の劣化が進行する時間に比べて十分短い、任意の時間である。判定処理の時間間隔は、例えば、1時間、1日である。また、判定処理の時間間隔は、ユーザデータの書き換え量に応じて、増減されてもよい。劣化検出手段160は、例えば、所定の閾値をユーザデータの書き換え量で除算することにより判定処理の時間間隔を決定してもよい。
なお、監視用データの大きさが大きいほど、データ保持能力の劣化が検出される可能性が高い。また、監視用データは、データ保持能力の劣化により、不揮発性メモリー140のビットが変化する傾向に基づいて、選択されることが望ましい。まず、データ保持能力の劣化により、不揮発性メモリー140のビット“0”がビット“1”に変化する可能性が、ビット“1”がビット“0”に変化する可能性よりも大きい場合について説明する。この場合には、ビット“0”がビット“1”より多い監視用データは、ビット“1”がビット“0”より多い監視用データに比べて、データ保持能力の劣化を検出できる可能性が高い。一方、データ保持能力の劣化により、不揮発性メモリー140のビット“1”がビット“0”に変化する可能性が、ビット“0”がビット“1”に変化する可能性よりも大きい場合について説明する。この場合には、ビット“1”がビット“0”より多い監視用データは、ビット“0”がビット“1”より多い監視用データに比べて、データ保持能力の劣化を検出できる可能性が高い。
また、劣化検出手段160は、不揮発性メモリー140のデータ保持能力の劣化を検出した際に、劣化をユーザに通知してもよい。あるいは、劣化検出手段160は、不揮発性メモリー140のデータ保持能力の劣化を検出した際に、不揮発性メモリー140上のユーザデータの劣化を抑制する処理を実行してもよい。ユーザデータの劣化を抑制する処理は、例えば、ユーザデータを別のブロックへ書き換える処理(以下、「リフレッシュ処理」という)である。リフレッシュ処理により、ユーザデータの保持時間が延長される。
また、監視領域割当手段120は、監視領域の劣化を促進するために、記憶装置100の初回起動時に監視領域に劣化促進用のデータを所定の回数だけ書き込んでもよい。劣化促進用のデータの書き込みは、記憶装置100の初回起動時にはユーザ領域と監視領域の劣化の程度に差が無いので、監視領域の劣化をユーザ領域の劣化に比べて確実に先行させるために行われる。劣化促進用のデータは、監視領域の大きさ以下の大きさを有する任意のデータである。劣化促進用のデータは、例えば、すべてのビットが“0”のデータ、又はすべてのビットが“1”のデータである。なお、劣化促進用のデータは、監視用データと同一であってもよい。
次に、本実施形態における動作について説明する。
図2は、本発明の第1の実施形態の記憶装置100の動作を示すフローチャートである。具体的には、図2(a)は、監視領域割当手段120の動作を示すフローチャートである。図2(b)は、監視用データ書込み手段130の動作を示すフローチャートである。図2(c)は、劣化検出手段160の動作を示すフローチャートである。なお、図2に示されるフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
監視領域割当手段120は、不揮発性メモリー140の一部のブロックを、監視領域として割り当てる(ステップS110)。
監視用データ書込み手段130は、ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれたか否かを判定する(ステップS210)。ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれていない場合には(ステップS210:No)、監視用データ書込み手段130は、ステップS210の処理へ戻る。ユーザ領域の最も書き換え回数の多いブロックにデータが書き込まれた場合には(ステップS210:Yes)、監視用データ書込み手段130は、ただちに監視領域に監視用データを1回以上書き込み(ステップS220)、ステップS210の処理へ戻る。
劣化検出手段160は、所定の時間だけ待機した(ステップS310)後に、監視領域のデータと監視用データとの一致を判定する(ステップS320)。監視領域のデータと監視用データとが一致した場合には(ステップS320:Yes)、劣化検出手段160は、ステップS310の処理へ戻る。監視領域のデータと監視用データとが一致しない場合には(ステップS320:No)、劣化検出手段160は、不揮発性メモリー140全体としてのデータ保持能力の劣化を検出し(ステップS330)、ステップS310の処理へ戻る。
図3は、本発明の第1の実施形態の記憶装置100の不揮発性メモリー140のデータ保持能力の劣化を説明するための図である。横軸は不揮発性メモリー140のデータの書き換え回数を、縦軸は不揮発性メモリー140のデータ保持時間を示す。なお、図3は、書き換え回数とデータ保持時間の相関を説明するためのものであり、数値は一例である。
図3に示されるように、フラッシュメモリーのような不揮発性メモリーでは、書き換え回数の増加に伴い、データ保持時間が減少する。つまり、不揮発性メモリー140では、書き換え回数の増加に伴い、データ保持能力が劣化する。すなわち、監視領域におけるデータの書き換え回数が、ユーザ領域におけるデータの書き換え回数よりも多ければ、監視領域におけるデータ保持能力の劣化は、ユーザ領域におけるデータ保持能力の劣化よりも先行する。監視用データ書込み手段130は、監視領域における書き換え回数がユーザ領域における書き換え回数以上になるように、監視用データを書き換える。従って、監視用データ書込み手段130は、監視領域がユーザ領域に比べてデータ保持能力の劣化が進んだ状態を維持する。
以上説明したように、本実施形態の記憶装置100は、監視領域のデータ保持能力の劣化がユーザ領域のデータ保持能力の劣化に常に先行するように、監視領域のデータを書き換える。そして、本実施形態の記憶装置100は、読み出したデータが書き込んだ監視用データと一致するか否かを所定のタイミングで判定することにより、監視領域のデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置100は、監視領域のデータ保持能力の劣化の所定のタイミングでの判定結果に基づいて、不揮発性メモリー140の全体としての劣化が近いことを検出する。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を低負荷で検出することができるという効果がある。
また、本実施形態の記憶装置100では、ユーザデータ書込み手段110はウェアレベリング機能を提供する。すなわち、ユーザデータ書込み手段110は、ユーザ領域のブロック毎の書き換え回数を均等化する。一方、書き換え可能な不揮発性メモリーでは、ブロック毎の書き換え回数が増加すると、データの保持時間が短くなる。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化の発生を遅らせることができるという効果がある。
また、本実施形態の記憶装置100では、監視用データ書込み手段130は、ユーザ領域の最も書き換え回数の多いブロックにデータが1回書き込まれた場合に、監視領域に監視用データを1回以上書き込む。つまり、本実施形態の記憶装置100では、ユーザデータの書き込み毎に監視用データを書き込む必要がない。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
また、本実施形態の記憶装置100は、監視用データにおけるビットの変化を検出することによりデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置100では、誤り検出符号等を用いた劣化の検出に比べて、少ない計算量で劣化が検出される。従って、本実施形態の記憶装置100では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
また、本実施形態の記憶装置100は、書き換え可能な不揮発性メモリーのデータ保持能力の劣化を検出するために、温度センサー等の専用の回路を必要としない。従って、本実施形態の記憶装置100では、記憶装置100の製造コストを低減できるという効果がある。
(第2の実施形態)
次に、上述した第1の実施形態の記憶装置を基本とする、本発明の第2の実施形態の記憶装置について説明する。本実施形態の記憶装置は、不揮発性メモリーのデータ保持能力の劣化を検出した場合に、ユーザデータのリフレッシュ処理を実行する。また、すべてのビットが“0”の監視用データを使用する。以下の説明において、第1の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
本実施形態における構成について説明する。
図4は、本発明の第2の実施形態の記憶装置の構成の一例を示すブロック図である。
記憶装置105は、書き換え可能な不揮発性メモリー145と、不揮発性メモリー145の管理機能を提供するメモリー管理回路155とを含む。
メモリー管理回路155は、本発明の第1の実施形態のメモリー管理回路150の構成要素に加えて、リフレッシュ手段170を更に含む。
リフレッシュ手段170は、不揮発性メモリー145のデータ保持能力の劣化が検出された場合に、ユーザデータのリフレッシュ処理を実行する。
不揮発性メモリー145は、セクター単位で書き換え可能な不揮発性メモリーである。不揮発性メモリー145は、例えば、フラッシュメモリーである。
図5は、本発明の第2の実施形態の記憶装置105の不揮発性メモリー145の記憶領域の構成の一例を示す図である。
不揮発性メモリー145の記憶領域は、複数のセクターを含む。セクターは、不揮発性メモリー145上のデータを消去する際の最小単位である。図5は、不揮発性メモリー145上の記憶領域が512セクターを含む場合の例を示す。
セクター[0]、セクター[1]は、外部の情報処理装置(不図示)のブートプログラムを格納するための、書き換えが行われない記憶領域である。以下、この記憶領域を「静的使用領域」という。
セクター[2]〜セクター[510]は、外部の情報処理装置(不図示)により必要に応じて読み書きされる、書き換え可能な記憶領域である。以下、この記憶領域を「動的使用領域」という。
セクター[511]は、監視領域である。
記憶装置105のその他の構成は、本発明の第1の実施形態の記憶装置100の構成と同じである。
次に、本実施形態における動作について説明する。
図6は、本発明の第2の実施形態の記憶装置105の動作を示すフローチャートである。具体的には、図6は、リフレッシュ手段170の動作を示すフローチャートである。なお、図6に示されるフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
リフレッシュ手段170は、リフレッシュ処理を未実施のユーザデータの有無を判定する(ステップS410)。リフレッシュ処理を未実施のユーザデータがなければ(ステップS410:No)、リフレッシュ手段170は、ステップS410の処理へ戻る。リフレッシュ処理を未実施のユーザデータがあれば(ステップS410:Yes)、リフレッシュ手段170は、未処理のユーザデータのリフレッシュ処理を実行し(ステップS420)、ステップS410の処理へ戻る。なお、リフレッシュ手段170は、ウェアレベリングを行いながら、リフレッシュ処理を実行する。つまり、リフレッシュ手段170は、ユーザデータの書き換え先として書き換え回数の少ないセクターを優先的に選択して、ユーザデータのリフレッシュ処理を実行する。
記憶装置105のその他の動作は、本発明の第1の実施形態の記憶装置100の動作と同じである。
次に、本実施形態における処理の具体例について説明する。
図7は、本発明の第2の実施形態の記憶装置105の処理の具体例を説明するための図である。具体的には、図7は、初期状態、システムプログラムのリフレッシュ後、設定データのリフレッシュ後の各タイミングにおける、不揮発性メモリー145の各セクターに格納されるデータの例を示す。
不揮発性メモリー145には、ブートプログラム、システムプログラム、システムプログラムの設定データ、監視用データの4種類のデータが書き込まれる。ブートプログラムは、外部の情報処理装置(不図示)により起動時に読み込まれるプログラムである。システムプログラムは、ブートプログラムにより起動されて各種の処理を実行するプログラムである。設定データは、システムプログラムの設定等を保持するためのデータである。
情報処理装置は、起動時に、ブートプログラムを不揮発性メモリー145から読み出して、ブートプログラムを実行する。ブートプログラムはハードウェアの設定等を行うプログラムであり、プログラムは書き換えられない。そのため、ブートプログラムは、静的使用領域に保持される。
また、情報処理装置は、システムプログラムを不揮発性メモリー145から読み出して、システムプログラムを実行する。また、情報処理装置は、設定データを不揮発性メモリー145から読み出して、設定データに基づいて、システムプログラムを動作させる。
システムプログラムは、機能追加や不具合改善のために書き換えられることがある。また、設定データは、ユーザによる設定の変更によって書き換えられることがある。そのため、システムプログラム及び設定データは、動的使用領域に保持される。
図7の「初期状態」の列に、記憶装置105の初期状態における不揮発性メモリー145の各セクターの使用状況の一例を示す。セクター[0]、[1]には、ブートプログラムが格納されている。セクター[2]〜[9]には、システムプログラムが格納されている。セクター[10]には、設定データが格納されている。セクター[11]〜[510]には、ユーザデータが存在しない(「空き」で示される)。セクター[511]には、監視用データとして、すべてのビットが“0”のデータが書き込まれている。なお、動的使用領域において、「空き」のセクターはN(Nは0以上の整数)回だけ書き換えられており、「空き」以外のセクターはN+1回だけ書き換えられているものとする。また、監視領域のセクターの書き換え回数は、動的使用領域における最大の書き換え回数(N+1)以上であるものとする。
一般的に、フラッシュメモリー等の不揮発性メモリーでは、データ保持能力の劣化は、電子を保持する能力の低下により、本来“0”であるべきビットが“1”に変化する現象として発生することが多い。このため、すべてのビットが“0”のデータを監視用データとして書き込み、監視用データにおける“1”のビットを検出することにより、不揮発性メモリー145のデータ保持能力の劣化を効率的に検出することができる。
なお、記憶装置105は、初回起動時に、セクター[511]に対して劣化促進用のデータで所定の回数だけ書き換えを行ってもよい。例えば、記憶装置105は、初回起動時に、セクター[511]の消去及びすべてのビットが“0”のデータの書き込みを100回だけ繰り返す。不揮発性メモリー145内部のメモリーセルには、製造時のばらつきによってデータ保持能力の差が存在する可能性がある。劣化促進用のデータの書き込みによりセクター[511]のデータ保持能力を初回起動時に意図的に劣化させることで、監視領域において不揮発性メモリー145の中で最も早く劣化を発生させることができる。
リフレッシュ手段170は、セクター[511]で劣化が検出された場合に、ユーザデータが含まれるセクターのリフレッシュ処理を実行する。なお、リフレッシュ手段170は、ウェアレベリングを行いながら、リフレッシュ処理を実行する。
図7の「システムプログラムのリフレッシュ後」の列に、記憶装置105のシステムプログラムのリフレッシュ処理後における、不揮発性メモリー145の各セクターの使用状況の一例を示す。リフレッシュ手段170は、初期状態(左欄)におけるセクター[2]〜[9]のシステムプログラム(ユーザデータ)の複製をセクター[11]〜[18]に書き込む。リフレッシュ手段170は、セクター[2]〜[9]のユーザデータを消去する(「空き」で示される)。なお、リフレッシュ手段170は、ウェアレベリングのために、セクター[11]〜[18]へのユーザデータのコピー後に、セクター[2]〜[9]のユーザデータの消去を行っている。
図7の「設定データのリフレッシュ後」の列に、記憶装置105のシステムプログラムの設定データのリフレッシュ処理後における不揮発性メモリー145の各セクターの使用状況の一例を示す。リフレッシュ手段170は、設定データをセクター[19]に書き込み、セクター[10]の設定データを消去する(「空き」で示される)。
このとき、セクター[511]では、ユーザ領域の最も書き換え回数の多いセクター(セクター[2]〜[10])にユーザデータが書き込まれていないので、監視用データ書込み手段130により書き換えの処理は行われない。
続いて、上述のシステムプログラム及び設定データのリフレッシュと同様の処理が55回だけ実行された後の、不揮発性メモリー145の各セクターに格納されるデータの状態について説明する。
リフレッシュ手段170は、同様なリフレッシュ処理をセクター[510]に対して行った後には、セクター[2]に戻ってリフレッシュ処理を行う。
図8は、本発明の第2の実施形態の記憶装置105の処理の別の具体例を説明するための図である。具体的には、図8は、システムプログラム及び設定データのリフレッシュ55回実行後、システムプログラムのリフレッシュ56回実行後、設定データの56回実行後の各タイミングにおける、不揮発性メモリー145の各セクターに格納されるデータの例を示す。
図8の「設定データの55回目のリフレッシュ後」の列に、記憶装置105の設定データの55回目のリフレッシュ後における、不揮発性メモリー145の各セクターの使用状況の一例を示す。セクター[0]、[1]には、ブートプログラムが格納されている。セクター[2]〜[496]には、ユーザデータが存在しない。セクター[497]〜[504]には、システムプログラムが格納されている。セクター[505]には、設定データが格納されている。セクター[506]〜[510]には、ユーザデータが存在しない。セクター[511]には、監視用データとして、すべてのビットが“0”のデータが書き込まれている。なお、セクター[2]〜[505]における書き換え回数はN+1回である。また、セクター[506]〜[510]における書き換え回数はN回である。
図8の「システムプログラムの56回目のリフレッシュ後」の列に、記憶装置105のシステムプログラムの56回目のリフレッシュ後における、不揮発性メモリー145の各セクターの使用状況の一例を示す。リフレッシュ手段170は、設定データの55回目のリフレッシュ後(左欄)におけるセクター[497]〜[504]のシステムプログラム(ユーザデータ)の複製をセクター[506]〜[510]及びセクター[2]〜[4]に書き込む。リフレッシュ手段170は、セクター[497]〜[504]のユーザデータを消去する。なお、リフレッシュ手段170は、ウェアレベリングのために、セクター[506]〜[510]及びセクター[2]〜[4]へのユーザデータのコピー後に、セクター[497]〜[504]のユーザデータの消去を行っている。
システムプログラムのリフレッシュの56回目の実行中に、ユーザ領域の最も書き換え回数の多い(N+1回)セクターであるセクター[2]にユーザデータが書き込まれる。そこで、セクター[511]では、監視用データ書込み手段130により書き換えの処理が行われる。監視用データ書込み手段130は、セクター[511]の監視用データを消去した後に、セクター[511]にすべてのビットが“0”の監視用データを書き込む。監視用データ書込み手段130は、上述の書き換えの処理を所定の回数だけ繰り返してもよい。なお、書き換えの処理の繰り返しは、監視領域(セクター[511])のデータ保持能力の劣化をユーザ領域(セクター[0]〜[510])のデータ保持能力の劣化に比べて先行させる。つまり、書き換えの処理の繰り返しにより、不揮発性メモリー145のデータ保持能力の劣化が検出されやすくなる。
劣化検出手段160は、1時間に1回、あるいは1日に1回等、所定のタイミングで監視領域のデータを読み出し、すべてのビットが“0”であるか否かを確認する。監視領域にビット“1”が1つでもあれば、劣化検出手段160は、不揮発性メモリー145の全体としての劣化が近いことを検出する。
ユーザ領域では監視領域よりも書き換え回数が少ないので、劣化検出の時点ではユーザ領域のユーザデータは保持されている可能性が高い。そこで、リフレッシュ手段170は、監視領域における劣化検出を契機にリフレッシュ処理を行うことにより、ユーザ領域におけるユーザデータの正常性を保持する。
以上説明したように、本実施形態の記憶装置105は、本発明の第1の実施形態の記憶装置100の構成要素をすべて含む。従って、本実施形態の記憶装置105は、本発明の第1の実施形態の記憶装置100が有する効果を含む。
また、本実施形態の記憶装置105は、すべてのビットが“0”のデータを監視用データとして書き込み、監視用データにおける“1”のビットを検出することにより、不揮発性メモリー145のデータ保持能力の劣化を検出する。一般的に、フラッシュメモリー等の不揮発性メモリーでは、データ保持能力の劣化は、本来“0”であるべきビットが“1”に変化する現象として発生することが多い。つまり、本実施形態の記憶装置105は、監視用データに“1”のビットを含む場合に比べて、データ保持能力の劣化を検出できる可能性が高い。従って、本実施形態の記憶装置105では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより確実に検出することができるという効果がある。
また、本実施形態の記憶装置105は、監視用データにおける“1”のビットを検出することによりデータ保持能力の劣化を検出する。つまり、本実施形態の記憶装置105では、任意のビットパターンや誤り検出符号等を用いた劣化の検出に比べて、少ない計算量で劣化が検出される。従って、本実施形態の記憶装置105では、書き換え可能な不揮発性メモリーのデータ保持能力の劣化をより低負荷で検出することができるという効果がある。
なお、上述の説明では、リフレッシュ手段170がリフレッシュ処理を実行する場合について説明した。しかしながら、本実施形態の記憶装置105は、外部の情報処理装置(不図示)にリフレッシュ処理の実行を指示することにより、外部の情報処理装置にリフレッシュ処理を実行させてもよい。
また、上述の説明では、監視領域が1セクターである場合について説明した。しかしながら、本実施形態の記憶装置105は、検出の確度を上げるために、複数のセクターを監視領域に割り当ててもよい。
また、上述の説明では、監視領域が書き換え可能な不揮発性メモリーの末尾に設けられた場合について説明した。しかしながら、本実施形態の記憶装置105の監視領域は、書き換え可能な不揮発性メモリーの任意の位置に設けられても良い。
また、上述の説明では、リフレッシュ処理が先頭のセクターから順次行われる場合について説明した。しかしながら、リフレッシュ処理におけるユーザデータの書き換え先として書き換え回数の少ないセクターが優先的に選択されるならば、各セクターに対して任意の順序でリフレッシュ処理が行われてもよい。
また、上述した本発明の各実施形態の記憶装置は、専用の装置によって実現してもよいが、コンピュータ(情報処理装置)によっても実現可能である。この場合、係るコンピュータは、メモリ(不図示)に格納されたソフトウェア・プログラムをCPU(Central Processing Unit、不図示)に読み出し、読み出したソフトウェア・プログラムをCPUにおいて実行することにより、実行結果を、例えば、ユーザ・インタフェースに出力する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図1に示した記憶装置100の各手段、図4に示した記憶装置105の各手段の各手段の機能を実現可能な記述がなされていればよい。ただし、記憶装置100、及び記憶装置105の各手段には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム(コンピュータ・プログラム)は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
以上、本発明を、上述した各実施形態およびその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態およびその変形例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
本発明は、データ又はプログラムを、書き換え可能な不揮発性メモリーに格納する電子機器において、利用できる。
100、105 記憶装置
110 ユーザデータ書込み手段
120 監視領域割当手段
130 監視用データ書込み手段
140、145 不揮発性メモリー
150、155 メモリー管理回路
160 劣化検出手段
170 リフレッシュ手段

Claims (9)

  1. 書き換え可能な不揮発性メモリーの一部のブロックを前記不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当手段と、
    情報処理装置から受け取ったデータをウェアレベリングを行いながら前記監視領域以外の前記不揮発性メモリーのブロックに書き込むユーザデータ書込み手段と、
    前記監視領域以外の前記不揮発性メモリーの最も書き換え回数の多いブロックにデータが1回書き込まれた場合に前記監視領域にデータ保持能力の監視用のデータを1回以上書き込む監視用データ書込み手段と、
    前記監視領域のデータと前記監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出手段と
    を備えたメモリー管理回路であって、
    前記所定のタイミングにおける時間間隔は、前記劣化検出手段における負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ前記不揮発性メモリーにおける前記データ保持能力の劣化が進行する時間に比べて十分に短い
    ことを特徴とするメモリー管理回路。
  2. 前記劣化を検出した場合に、前記監視領域以外の前記不揮発性メモリーのブロックのユーザデータのリフレッシュ処理を実行するリフレッシュ手段
    を更に備えたことを特徴とする請求項1に記載のメモリー管理回路。
  3. 前記監視領域割当手段は、前記監視領域に劣化促進用のデータを所定の回数だけ書き込む
    ことを特徴とする請求項1又は請求項2に記載のメモリー管理回路。
  4. 前記監視用のデータは、すべてのビットが1のデータである
    ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリー管理回路。
  5. 前記監視用のデータは、すべてのビットが0のデータである
    ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリー管理回路。
  6. 請求項1から5のいずれか一項に記載の前記メモリー管理回路
    を備えたことを特徴とする記憶装置。
  7. 前記メモリー管理回路は、前記劣化を検出した場合に、前記監視領域以外の前記不揮発性メモリーのブロックのユーザデータのリフレッシュ処理を実行するリフレッシュ手段を更に備えたことを特徴とする請求項6に記載の記憶装置。
  8. 書き換え可能な不揮発性メモリーの一部のブロックを前記不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当て、
    情報処理装置から受け取ったデータをウェアレベリングを行いながら前記監視領域以外の前記不揮発性メモリーのブロックに書き込み、
    前記監視領域以外の前記不揮発性メモリーの最も書き換え回数の多いブロックにデータが1回書き込まれた場合に前記監視領域にデータ保持能力の監視用のデータを1回以上書き込み、
    前記監視領域のデータと前記監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する
    メモリー管理方法であって、
    前記所定のタイミングにおける時間間隔は、前記劣化検出手段における負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ前記不揮発性メモリーにおける前記データ保持能力の劣化が進行する時間に比べて十分に短い
    ことを特徴とするメモリー管理方法。
  9. 書き換え可能な不揮発性メモリーの一部のブロックを前記不揮発性メモリーのデータ保持能力の劣化を判定するための監視領域として割り当てる監視領域割当処理と、
    情報処理装置から受け取ったデータをウェアレベリングを行いながら前記監視領域以外の前記不揮発性メモリーのブロックに書き込むユーザデータ書込み処理と、
    前記監視領域以外の前記不揮発性メモリーの最も書き換え回数の多いブロックにデータが1回書き込まれた場合に前記監視領域にデータ保持能力の監視用のデータを1回以上書き込む監視用データ書込み処理と、
    前記監視領域のデータと前記監視用のデータとの一致を所定のタイミングで判定し、一致しない場合にデータ保持能力の劣化を検出する劣化検出処理と
    をコンピュータに実行させるメモリー管理プログラムであって、
    前記所定のタイミングにおける時間間隔は、前記劣化検出手段における負荷が所定の上限以下に抑えられる時間間隔に比べて長く、且つ前記不揮発性メモリーにおける前記データ保持能力の劣化が進行する時間に比べて十分に短い
    ことを特徴とするメモリー管理プログラム。
JP2015175688A 2015-09-07 2015-09-07 メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム Active JP6306548B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015175688A JP6306548B2 (ja) 2015-09-07 2015-09-07 メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015175688A JP6306548B2 (ja) 2015-09-07 2015-09-07 メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム

Publications (2)

Publication Number Publication Date
JP2017054173A JP2017054173A (ja) 2017-03-16
JP6306548B2 true JP6306548B2 (ja) 2018-04-04

Family

ID=58316697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015175688A Active JP6306548B2 (ja) 2015-09-07 2015-09-07 メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム

Country Status (1)

Country Link
JP (1) JP6306548B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585625B2 (en) * 2018-07-12 2020-03-10 Micron Technology, Inc. Determination of data integrity based on sentinel cells
WO2020161981A1 (ja) * 2019-02-06 2020-08-13 ソニー株式会社 メモリ診断装置およびメモリ診断方法
WO2022091240A1 (ja) * 2020-10-28 2022-05-05 三菱電機株式会社 フラッシュメモリ管理装置、及びフラッシュメモリ管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147862A (ja) * 1999-11-22 2001-05-29 Alps Electric Co Ltd フラッシュメモリ書込方法
JP2002061535A (ja) * 2000-08-17 2002-02-28 Denso Corp 異常検出装置
JP3812933B2 (ja) * 2001-04-19 2006-08-23 シャープ株式会社 ファイルシステムおよびその制御方法
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
JP2013069183A (ja) * 2011-09-26 2013-04-18 Toshiba Corp コントローラおよびメモリシステム

Also Published As

Publication number Publication date
JP2017054173A (ja) 2017-03-16

Similar Documents

Publication Publication Date Title
TWI569273B (zh) 非揮發性記憶體裝置讀取干擾管理方法
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
CN102750191B (zh) 用于启动固态非易失性存储设备内的刷新操作的方法
CN104572489B (zh) 磨损均衡方法及装置
US8266481B2 (en) System and method of wear-leveling in flash storage
US20140250346A1 (en) Memory System And Operation Method Thereof
US20100125696A1 (en) Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
US9465537B2 (en) Memory system and method of controlling memory system
US10241678B2 (en) Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted
US20100199020A1 (en) Non-volatile memory subsystem and a memory controller therefor
JP2014241158A (ja) メモリの複数のブロックの寿命の向上
CN112053733B (zh) 故障敏感存储器页面的选择性加速取样
WO2013077962A1 (en) Scrub techniques for use with dynamic read
CN113539342B (zh) 主动读取干扰缓解
JP5815388B2 (ja) メモリアクセス制御装置および方法
US20090024787A1 (en) Data writing method and apparatus
TW201611018A (zh) 非揮發性記憶體裝置進行耗損管理之方法
US10545810B2 (en) Method and apparatus for monitoring non-volatile memory read errors using background media scan
US20150220394A1 (en) Memory system and method of controlling memory system
US20140344641A1 (en) Memory system and cache management method of the same
JP6306548B2 (ja) メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム
US9430339B1 (en) Method and apparatus for using wear-out blocks in nonvolatile memory
JP2007094921A (ja) メモリカードとその制御方法
US20120042118A1 (en) Method for Flash Memory and Associated Controller
JP5494086B2 (ja) 不揮発性記憶装置および不揮発性メモリコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180308

R150 Certificate of patent or registration of utility model

Ref document number: 6306548

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150