JP2014085794A - 記憶装置およびメモリ制御方法 - Google Patents
記憶装置およびメモリ制御方法 Download PDFInfo
- Publication number
- JP2014085794A JP2014085794A JP2012233692A JP2012233692A JP2014085794A JP 2014085794 A JP2014085794 A JP 2014085794A JP 2012233692 A JP2012233692 A JP 2012233692A JP 2012233692 A JP2012233692 A JP 2012233692A JP 2014085794 A JP2014085794 A JP 2014085794A
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- memory
- value
- replacement
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】不揮発性半導体メモリに関してより効果的な平準化を行う。
【解決手段】ブロックの単位でデータの消去を行う記憶媒体24と、外部のホスト装置からの指示に従い、前記記憶媒体に対するデータの書き込みおよび読み出しを制御する制御部23と、を有する記憶装置2であって、前記制御部は、前記記憶媒体のブロックを、少なくとも、使用中のブロックであるデータブロックと、待機中のブロックである交替ブロックとして別々に前記記憶媒体に記憶させ、前記ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けし、ランク付けした前記消去回数と前記消去時間と前記読み出しエラー訂正値とに基づいて劣化具合の少ないブロックを定めるための指標であるブロックランク値を算出し、算出した前記ブロックランク値が所定値以上の前記交替ブロックと、前記データブロックのうちブロックランク値が最小のデータブロックとを交替させる。
【選択図】図1
【解決手段】ブロックの単位でデータの消去を行う記憶媒体24と、外部のホスト装置からの指示に従い、前記記憶媒体に対するデータの書き込みおよび読み出しを制御する制御部23と、を有する記憶装置2であって、前記制御部は、前記記憶媒体のブロックを、少なくとも、使用中のブロックであるデータブロックと、待機中のブロックである交替ブロックとして別々に前記記憶媒体に記憶させ、前記ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けし、ランク付けした前記消去回数と前記消去時間と前記読み出しエラー訂正値とに基づいて劣化具合の少ないブロックを定めるための指標であるブロックランク値を算出し、算出した前記ブロックランク値が所定値以上の前記交替ブロックと、前記データブロックのうちブロックランク値が最小のデータブロックとを交替させる。
【選択図】図1
Description
本発明は、不揮発性半導体メモリ等の記憶媒体を用いた記憶装置における長寿命化の技術に関する。
近年、情報機器の補助記憶装置として、磁気ディスク記憶装置のほかに、耐振性やアクセス速度の面で優れた半導体メモリを記憶媒体とする記憶装置が用いられるようになってきている。その中で、特に、フラッシュメモリなどの電気的に消去可能で再書き込み可能な不揮発性半導体メモリを用いたものが、情報機器の補助記憶装置の主流となってきている。
不揮発性半導体メモリには、一般に、その素子の特性上、データの書き換え回数(消去回数)に上限(例えば10万回程度)がある。そして、不揮発性半導体メモリでは、物理ブロックごとにデータ消去が行われるので、特定のブロックだけが早く消去回数の上限回数に達しないように工夫すること、つまり、ブロックの消去回数の平準化(以下、単に「平準化」という。)が望まれる。平準化することでブロック全体的にデータ書き換え回数上限値付近まで使用可能となり、記憶装置の寿命が延びるからである。
例えば、特許文献1の技術では、使用中の物理ブロックであるデータブロックのいずれかを、待機中の物理ブロックである交替ブロックと交替させる際に、消去回数の少ない交替ブロックを用いることで平準化を図っている。
さらに、特許文献2の技術では、データブロックと、交替ブロックとに、別々に管理し、物理ブロックごとの書き換え回数を管理し、書き換え回数が所定回数(例えば、9万回)以上の交替ブロックと、データブロックのうち書き換え回数が少ないデータブロックとを交替させることでさらに効果的な平準化を図っている。
しかしながら、特許文献1および2の技術では、平準化の指標として物理ブロックの書き換え回数(消去回数)しか使用していない。不揮発性半導体メモリでは、ブロック間において品質に差があり、書き換え回数が少ない(書き換え回数上限値に満たない)状態でも使用できなくなる場合や、その反対に書き換え回数が上限値を超えても使用可能なブロックもある。そのため、書き換え回数(消去回数)のみではブロックの劣化具合(寿命)の指標として不十分であり、十分に効果的な平準化とはいえない。
そこで、本発明は、前記問題に鑑みてなされたものであり、不揮発性半導体メモリに関してより効果的な平準化を行うことを課題とする。
前記課題を解決するために、本発明は、制御部は、記憶媒体のブロックを、少なくとも、使用中のブロックであるデータブロックと、待機中のブロックである交替ブロックとして別々に記憶媒体に記憶させ、ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けし、ランク付けした消去回数と消去時間と読み出しエラー訂正値とに基づいて劣化具合の少ないブロックを定めるための指標であるブロックランク値を算出し、算出したブロックランク値が所定値以上の交替ブロックと、データブロックのうちブロックランク値が最小のデータブロックとを交替させる。
また、本発明は、少なくとも、使用中のブロックであるデータブロックと、待機中のブロックである交替ブロックとして別々に記憶媒体に記憶されたブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けするランク付けステップと、ランク付けした消去回数と消去時間と読み出しエラー訂正値とに基づいて劣化具合の少ないブロックを定めるための指標であるブロックランク値を算出する算出ステップと、算出したブロックランク値が所定値以上の交替ブロックと、データブロックのうちブロックランク値が最小のデータブロックとを交替させる交替ステップとを含む。
本発明によれば、不揮発性半導体メモリなどの記憶媒体に関してブロック間の品質の差に依らず、ブロックごとの劣化具合に応じて、より効果的な平準化を行うことが可能となり、記憶装置の信頼性を向上させることができる。
以下、本発明を実施するための実施形態について、図面を参照(言及図以外の図も適宜参照)しながら説明する。図1は、本実施形態の記憶装置のハードウェア構成を含む説明図である。
図1に示すように、記憶装置2は、ホスト装置1からの指示に基づいてデータの記憶を行う装置であり、ホスト装置1とデータバス3を介してアクセス可能に接続される。データバス3としては、例えばSCSI(Small Computer System Interface)やATA(Advanced Technology Attachment)などが用いられるが、USB(Universal Serial Bus)、SDメモリなどの他のデータバスであってもよい。
記憶装置2は、マイクロプロセッサ21、ホストI/F(インターフェース)制御部22、メモリI/F制御部23、不揮発性半導体メモリ24、メモリ25を備える。
マイクロプロセッサ21は、ホスト装置1からの指示に従い、不揮発性半導体メモリ24に対するデータの書き込みおよび読み出しを制御する。メモリI/F制御部23は、マイクロプロセッサ21からの指示により不揮発性半導体メモリ24およびメモリ25とのアクセス制御を行う。なお、マイクロプロセッサ21から不揮発性半導体メモリ24およびメモリ25を直接制御可能であれば、メモリI/F制御部23は必ずしも必要ではない。
ホストI/F制御部22は、ホスト装置1からのデータの書き込みおよび読み出し要求(指示)に従って、ホスト装置1とのデータの送受信を制御する。なお、ホスト装置1からのデータの書き込みおよび読み出し要求は、不揮発性半導体メモリ24に関して構築される論理的記憶領域(詳細は後記)に対して行われる。
メモリ25は、マイクロプロセッサ21の作業領域であり、例えば、SRAM(StaticRandom Access Memory)、DRAM(Dynamic RAM)、MRAM(Magneto-resistive RAM)などのメモリ素子により実現できる。メモリ25は、不揮発性半導体メモリ24の管理情報として、格納情報251、論理・物理変換テーブル252、データブロックキュー253、交替ブロックキュー254、消去待ちブロクキュー255、消去回数情報256、不良ブロック情報257、消去時間情報258、エラー訂正情報259、およびブロック管理テーブル25A、ランクテーブル25Bを記憶している。なお、メモリ25内の各情報は、マイクロプロセッサ21が記憶装置2の電源オン時に不揮発性半導体メモリ24のデータを読み出すことにより、構築される。
ここで、前提として、不揮発性半導体メモリ24が、論理・物理変換テーブル252および消去回数情報256、消去時間情報258、エラー訂正情報259、ランクテーブル25Bと同一の情報を格納しているものとする。不揮発性半導体メモリ24が、メモリ25に記憶されているこれらの情報と同じ情報を記憶しているので、電源オフされた場合であってもその時点の最新の状態を保持することができるようになっている。格納情報251は、不揮発性半導体メモリ24においてそれらの情報(論理・物理変換テーブル252、消去回数情報256、消去時間情報258、および、エラー訂正情報259、ランクテーブル25Bと同一の情報)を格納しているブロック番号の情報である。なお、不揮発性半導体メモリ24は、データの書き込みと読み出しはページ単位(所定の単位)で行われ、データの消去は複数ページからなるブロック単位で行われる。また、ブロックには、すでにデータが格納されているデータブロック、データが未格納で待機中の交替ブロック、ブロックの全領域に書き込まれたデータの消去を待っている状態の消去待ちブロックがある(詳細は後記)。
論理・物理変換テーブル252は、ホスト装置1からのアクセス時に示される論理アドレスと不揮発性半導体メモリ24上の物理アドレス(ブロック番号とページ番号)との対応情報を格納するテーブルである(詳細は図4で後記)。データブロックキュー253は、不揮発性半導体メモリ24のデータブロックをキュー(先入れ先出しのデータ構造)形式で記憶(管理)する情報である。交替ブロックキュー254は、不揮発性半導体メモリ24の交替ブロックをキュー形式で記憶(管理)する情報である。消去待ちブロックキュー255は、不揮発性半導体メモリ24の消去待ちブロックをキュー形式で記憶(管理)する情報である。なお、データブロックキュー253、交替ブロックキュー254、および、消去待ちブロックキュー255の代わりに、テーブルなどの他の形式で記憶(管理)した情報を用いてもよい。
消去回数情報256は、不揮発性半導体メモリ24の物理ブロックごとの消去回数を示す情報である。不良ブロック情報257は、書き込み禁止の不良ブロックのアドレスを示す情報である。なお、この不良ブロック情報257として、不揮発性半導体メモリ24の製造時から存在する先天性の不良ブロックの情報と、不揮発性半導体メモリ24の使用中に発生した後天性の不良ブロックの情報とが別々に記憶されていてもよい。
消去時間情報258は、不揮発性半導体メモリ24の物理ブロックごとの最大消去時間を示す情報である。消去時間は、メモリI/F制御部23より不揮発性半導体メモリ24への消去要求後、不揮発性半導体メモリ24からの消去完了応答がメモリI/F制御部23に戻ってくるまでの時間をメモリI/F制御部23にて計測する。なお、この消去時間情報258として、物理ブロックごとの複数回の消去時間を記憶しておいてもよい。メモリI/F制御部23は、前回の消去時間と今回の消去時間とを比較して、長い方の消去時間を消去時間情報として記憶させておく。このように消去時間情報を記憶させることにより、それまでの最大消去時間を効率よく記憶することができる。エラー訂正情報259は、不揮発性半導体メモリ24からのデータ読み出し時に検出した最大エラービット数(エラーとなったビット数(ビット誤り)の最大値)の物理ブロックごとの情報である。なお、エラー訂正情報259として、エラー訂正回数を記憶しておいてもよい。
また、メモリ25は、上記の各情報のほかに、物理ブロックごとに次回の書き込みページを管理するためのテーブルなどを有していてもよいが、それらは本発明の特徴と直接関係がないので、図示や詳細な説明を省略する。
不揮発性半導体メモリ24は、ホスト装置1からの指示に従ってメモリI/F制御部23がデータの書き込みおよび読み出しを制御する対象の記憶媒体であり、例えばフラッシュメモリにより実現できる。不揮発性半導体メモリ24は、ホスト装置1からの指示に従ってメモリI/F制御部23が書き込むデータ(実データ)のほか、前記したように、メモリ25に記憶される論理・物理変換テーブル252および消去回数情報256、消去時間情報258、エラー訂正情報259、およびランクテーブル25Bと同一の情報を格納している。
図2は、本実施形態の不揮発性半導体メモリ24の内部構成を示した図である。図2では、不揮発性半導体メモリ24に関する論理的記憶領域を示している。図1に示したホスト装置1は、記憶装置2に関して、この論理的記憶領域を認識する。
ブロック241は、データ消去の最小単位である。ページ2411は、データの読み出しおよび書き込みの単位である。図2において、不揮発性半導体メモリ24の論理的記憶領域は、複数のブロック241で構成されており、ブロック241は複数のページ2411により構成されている。すなわち、不揮発性半導体メモリ24の論理的記憶領域は、ブロック1からブロックm(整数)までのm個の各ブロック241を有し、それぞれのブロックは、ページ1からページn(整数)までのn個のページを有している。
図3は、メモリI/F制御部23の制御により不揮発性半導体メモリ24に関して構築される論理的記憶領域を示した図である。図3に示すように、不揮発性半導体メモリ24に関する論理的記憶領域として、データブロック242と交替ブロック243とを有している。
データブロック242は、データを記憶する一つあるいは複数のブロックからなるブロック(ブロックの集合)であり、ブロック1からブロックp(整数)までの論理ブロックを有している。各ブロックは、図示のようにデータページ2421と交替ページ2422で構成されている。
データページ2421は、ページ1からページq(整数)までのデータを保持するページを有していて、交替ページ2422は、ページ(q+1)からページn(整数)までを有している。この交替ページ2422は、消去済みの再書込み可能な領域である。
また、交替ブロック243は、ブロック(p+1)からブロックm(整数)までの消去済みの交替用のブロックであり、各ブロックは、ページ1からページn(整数)までの消去済みページ2431で構成されている。消去済みページ2431は、消去済みの再書込み可能なページであって、交替ページ2422の上書きデータとデータページ2421の非上書きデータを交替ブロック243に書き写して交替させるための領域である。
データページ2421は、ユーザがホスト装置1からの指示に従いデータを読み書きすることができる領域である。このデータページ2421には、不揮発性半導体メモリ24の制約上から上書きができないため、メモリI/F制御部23の制御による上書き処理後の上書きデータは交替ページ2422に記憶される。
そして、交替ページ2422に記憶できないときは、新たに交替ブロック243を割り当て、書き込みをする。このとき、メモリI/F制御部23は、上書き処理後の有効部分である、交替ページ2422の上書きデータおよびデータページ2421の非上書きデータを交替ブロック243に書き写して交替させる。さらに、メモリI/F制御部23は、交替後の交替ページ2422およびデータページ2421はデータ消去して交替ブロック243の候補とする。
なお、図3における「p」および「q」の値は、本実施形態では記憶装置2の製造時に初期値として設定するものである。この「p」および「q」の値の設定方法については、特に限定しないが、予め設定しておくほかに、マイクロプロセッサ21へデバッガを接続して設定するようにしてもよい。また、ホスト装置1から予め決められたコマンドを発行して設定してもよい。また、「p」および「q」の値を可変としてテーブル管理することも可能であるが、本実施形態では説明を容易にするため、固定値として扱う。
図4は、論理・物理変換テーブル252の構成例を示した図である。論理・物理変換テーブル252は、ホスト装置1からのアクセス時に示される論理アドレスと、不揮発性半導体メモリ24の物理アドレス(ブロック番号およびページ番号)とから構成される。
なお、論理アドレスは原則として初期設定状態から不変であるが、物理アドレスはメモリI/F制御部23による不揮発性半導体メモリ24に対する書き込み動作などに応じてマイクロプロセッサ21によって書き換えられる。
図5は、ブロックランク値の算出例を示した図である。ブロックランク値とは、ブロックの劣化具合の少ないものを定めるための指標である。なお、本実施の形態では、ブロックランク値をブロックの劣化具合の少ないブロックを定めるための指標として用いているが、これとは逆にブロックの劣化具合の多いものを定めるための指標として用いてもよい。すなわち、ブロックの劣化具合(劣化の程度)をランク付けして識別するものであればよい。
図5では、ブロックごとに、ブロックの消去回数をランク付けした消去回数ランクテーブル501と、ブロックの消去時間をランク付けした消去時間ランクテーブル502と、ブロックのエラー訂正情報をランク付けしたエラー訂正ランクテーブル503と、これらの各情報についてのランクの合算値をランク付けしたトータルランクテーブル504とが、ランクテーブル25Bとしてメモリ25に記憶されている場合の例を示している。図5に示すように、各テーブルは、消去回数の多さ、消去時間の長さ、ビットエラーの多さに対応してランク付けされている。例えば、消去回数ランクテーブル501では、1万回未満の消去回数であれば0ポイント、1万回以上の2万回未満の消去回数であれば0.1ポイント、2万回以上の3万回未満の消去回数であれば0.2ポイントというように、消去回数が多くなるにつれて、消去回数ランク5011を表すポイントの値が大きくなるように設定されている。消去時間ランク5021、エラー訂正ランク5031についても同様に、消去時間が長く、ビットエラーの多いほど、ポイントの値が大きくなるように設定されている。なお、消去回数ランクテーブル501、消去時間ランクテーブル502、エラー訂正ランクテーブル503は、あらかじめ設定されているものとする。
メモリI/F制御部23は、消去回数情報256、消去時間情報258、および、エラー訂正情報259に応じて各々消去回数ランク、消去時間ランク、および、エラー訂正ランクに分類し、この3つのランクの合計値によりブロックランク値を算出する。したがって、このブロックランク値が低い値ほど、ブロックの劣化具合が少ないと考えることができる。なお、本実施の形態では、消去回数ランクは1万回ごとに分類しているが、他の管理単位にしてもよいし、消去時間ランクについても1ミリ秒ごとに分類しているが、他の管理単位にしてもよい。さらに、エラー訂正ランクについても1ビットエラーごとに分類しているが、他の管理単位にしてもよい。
図6は、ブロック管理テーブル25Aの構成例を示した図である。図6に示すように、ブロック管理テーブル25Aは、図5に示した消去回数情報256、消去時間情報258、エラー訂正情報259、およびこれらの3つの情報から分類したブロックランク(値)5041が対応付けられたテーブルとして構成される。なお、ランク値は単純に消去回数情報256、消去時間情報258、エラー訂正情報259を、図5にて示したようにブロックランク値に分類してもよいが、記憶装置2の使用用途や重要度に合わせ、各要素に任意に重み付けをした値からブロックランクを分類してもよい。例えば、記憶装置2がオンライン更新のように記憶されているデータが頻繁に書き換えられる状況で用いられているような場合では、ランクの値に1.5を乗じて他の消去時間ランクやエラー訂正ランクに比べて、より重要なランクとして重み付けをしてもよい。この場合、より使用用途や重要度に合致したランク付けをすることができる。
なお、図3の説明にて記載した交替ページ2422にデータを記憶できない場合において、新たに交替ブロック243を割り当てる方法として、メモリI/F制御部23は、このブロックランク値の低い(ブロック劣化具合が小さい)交替ブロックを割り当ててもよい。この場合、ブロックの劣化具合が小さいブロックから交替ブロック243として使用されるので、ブロックがさらに平準化されることとなる。
図7は、データブロックキュー253の概念図である。データブロックキュー253は、キュー形式で管理されるデータブロック(の識別子)のつながりを示している。先頭から最後尾まで順にデータブロックが連結されて管理されており、メモリI/F制御部23は、最新の書き換え済みデータブロックを最後尾に連結する。
このようなデータブロックキュー253では、統計学的に考えて、先頭に近いほど書き換え回数が少なく、最後尾に近いほど書き換え回数が多いデータブロックが存在する傾向があると考えられる。このようなデータブロックキュー253を用いることで、ブロックランク値が高い(劣化具合が大きい)ブロックとデータブロックキューの先頭(読み出ししか行われない、もしくは書き込み回数が少ない論理アドレスに対応するブロック)と交換することで効率よくブロックを管理しつつ平準化を行うことができる。
図8は、交替ブロックキューの概念図である。交替ブロックキュー254は、キュー形式で管理される交替ブロック(の識別子)のつながりを示している。交替ブロックキュー254は、ランク0、ランク1、ランク2、・・・、ランク10というように、11段階に別々のキューとして管理される。なお、ここで管理単位を「11段階」としているのは一例であり、他の管理単位であってもよい。
次に、図9参照して、不揮発性半導体メモリ24に関する平準化処理について説明する。図9は、不揮発性半導体メモリに関する平準化処理を示したフローチャートである。
まず、メモリI/F制御部23は、データブロックキューの最小ブロックランク値よりもブロックランク値が大きい交替ブロックがあるか否かを判定する(ステップS901)。この判定は、メモリ25のデータブロックキュー253および交替ブロックキュー254を参照することにより行うことができる。また、この判定のタイミングは、定期的であってもよいし、あるいは、ブロック管理テーブル25Aに変更があったときでもよいし、さらに、マイクロプロセッサ21の処理動作の空き時間発生時であってもよい。メモリI/F制御部23は、当該交替ブロックがないと判定した場合(ステップS901;No)、処理を終了する。
一方、メモリI/F制御部23は、当該交替ブロックがあると判定した場合(ステップS901;Yes)、データブロックキュー253における先頭のデータブロックのブロックランク値がデータブロックキューの最小ブロックランク値であるか否かを判定する(ステップS902)。データブロックキューは、図7に示したように書き換え回数の少ない順に管理されているが、この判定が行われることにより、単に書き換え回数が少ないデータブロックを交替させるのではなく、上述したブロックランク値を考慮した交替を可能としている。
メモリI/F制御部23は、ブロックランク値が最小と判定した場合(ステップS902;Yes)、当該交替ブロック(ブロックランク値がデータブロックキューの最小ブロックランク値よりも大きい交替ブロック)と、データブロックキュー253における先頭のデータブロックとを交替(データを入れ替え)し(ステップS904)、論理・物理変換テーブル252などを更新した上で処理を終了する。
一方、メモリI/F制御部23は、ブロックランク値が最小ではないと判定した場合(ステップS902;No)、データブロックキューの先頭データブロックをデータブロックキューの最高尾へ移動させ(ステップS903)、ステップS902に戻る。そして、このステップS902、S903を繰り返し行うことにより、書き換え回数およびブロックランク値の両方の条件(すなわち、書き換え回数が少なく、かつブロックランク値が大きい条件)を満たすデータブロックを交替させることができる。
一般に、不揮発性半導体メモリでは、ブロックの消去回数が増え、ブロックが劣化していくと、ブロックの最大消去時間が延びる傾向にあるため、ブロックの消去時間情報を劣化のひとつの指標とし、また、ブロックの品質が低い、あるいはブロックの劣化が進むとブロックのビット誤りが多くなることがあり、エラー訂正情報も劣化の指標として、これらの消去回数、消去時間およびエラー訂正情報の3つの指標を用いることで、従来技術よりもさらに効果的な平準化を実施することができる。
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、前記したランク値は10段階でなくてもよく、記憶装置の使用用途に合わせて任意に設定することができる。
また、本実施の形態では、各データブロックのブロックランク値が異なっている前提で説明しているが、各データブロックのブロックランク値が同じ場合には、ブロックランク(消去回数、消去時間、エラー訂正回数)に優先順位をつけ、優先順位の高いブロックランクの値が大きいブロックを先頭に近く(あるいは最後尾に近く)するように管理してもよい。例えば、消去回数を重要と考える場合にはそのブロックランクを最優先とし、その値が大きい場合には先頭に近くするように並べてもよい。さらに、各ブロックランクの値に重み付けをしている場合には、これらを組み合わせて並べることとしてもよい。このように、ブロックランク値が同じ場合であっても、優先順位の高いブロックランクの値が大きいブロックを先頭に近く(あるいは最後尾に近く)した場合、より精度よくブロックの平準化を行うことができる。
また、本実施形態の平準化処理と他の平準化処理とを併用してもよい。さらに、ランク値の算出は、エラー訂正情報を用いずに、消去回数情報および消去時間情報のみから算出してもよい。その他、ハードウェア、ソフトウェアの具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
1・・・ホスト装置
2・・・記憶装置
3・・・データバス
21・・・マイクロプロセッサ
22・・・ホストI/F制御部
23・・・メモリI/F制御部
24・・・不揮発性半導体メモリ
25・・・メモリ
251・・・格納情報
252・・・論理・物理変換テーブル
253・・・データブロックキュー
254・・・交替ブロックキュー
255・・・消去待ちブロックキュー
256・・・消去回数情報
257・・・不良ブロック情報
258・・・消去時間情報
259・・・エラー訂正情報
25A・・・ブロック管理テーブル
25B・・・ランクテーブル
241・・・ブロック
2411・・・ページ
242・・・データブロック
243・・・交替ブロック
2421・・・データページ
2422・・・交替ページ
2431・・・消去済みページ
2・・・記憶装置
3・・・データバス
21・・・マイクロプロセッサ
22・・・ホストI/F制御部
23・・・メモリI/F制御部
24・・・不揮発性半導体メモリ
25・・・メモリ
251・・・格納情報
252・・・論理・物理変換テーブル
253・・・データブロックキュー
254・・・交替ブロックキュー
255・・・消去待ちブロックキュー
256・・・消去回数情報
257・・・不良ブロック情報
258・・・消去時間情報
259・・・エラー訂正情報
25A・・・ブロック管理テーブル
25B・・・ランクテーブル
241・・・ブロック
2411・・・ページ
242・・・データブロック
243・・・交替ブロック
2421・・・データページ
2422・・・交替ページ
2431・・・消去済みページ
Claims (10)
- 記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリI/F制御部と、を有する記憶装置であって、
前記メモリI/F制御部は、
前記不揮発性半導体メモリの物理ブロックを、少なくとも、使用中の物理ブロックであるデータブロックと、待機中の物理ブロックである交替ブロックとして別々に前記不揮発性メモリに記憶させ、前記物理ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けし、ランク付けした前記消去回数と前記消去時間と前記読み出しエラー訂正値とに基づいて劣化具合の少ない物理ブロックを定めるための指標であるブロックランク値を算出し、算出した前記ブロックランク値が所定値以上の前記交替ブロックと、前記データブロックのうちブロックランク値が最小のデータブロックとを交替させる、
ことを特徴とする記憶装置。 - 前記メモリI/F制御部は、
前記データブロックを、先入れ先出しのデータ構造であるキュー形式で管理し、前記ブロックランク値が所定値以上の前記交替ブロックと、前記キュー形式で管理されたデータブロックのうち先頭かつ前記ブロックランク値が最小のデータブロックとを交替させる、
ことを特徴とする請求項1に記載の記憶装置。 - 前記メモリI/F制御部は、
前記キュー形式で管理されたデータブロックのうち先頭のデータブロックの前記ブロックランク値が最小ではない場合、先頭データブロックを前記ブロックランク値が所定値以上の前記交替ブロックとの交替を行わず、先頭データブロックを前記キュー形式の最後尾に連結する、
ことを特徴とする請求項2に記載の記憶装置。 - 前記メモリI/F制御部は、
前記キュー形式で管理した前記データブロックのうち、前記ブロックランク値が同じデータブロックがある場合には、前記消去回数、前記消去時間、前記エラー訂正値に優先順位をつけ、前記優先順位の高い指標のブロックを、より先頭に近くまたは最後尾に近くする、
ことを特徴とする請求項2または3に記載の記憶装置。 - 前記メモリI/F制御部は、
前記消去回数、前記消去時間、前記読み出しエラー訂正値を前記記憶装置の使用用途またはこれらの指標の重要度に応じて重み付けをした上で前記ランク付けをする、
ことを特徴とする請求項1〜4のいずれか1項に記載の記憶装置。 - 記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリI/F制御部と、を有する記憶装置によるメモリ制御方法であって、
少なくとも、使用中の物理ブロックであるデータブロックと、待機中の物理ブロックである交替ブロックとして別々に前記不揮発性メモリに記憶された物理ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けするランク付けステップと、
ランク付けした前記消去回数と前記消去時間と前記読み出しエラー訂正値とに基づいて劣化具合の少ない物理ブロックを定めるための指標であるブロックランク値を算出する算出ステップと、
算出した前記ブロックランク値が所定値以上の前記交替ブロックと、前記データブロックのうちブロックランク値が最小のデータブロックとを交替させる交替ステップと、
を含むことを特徴とするメモリ制御方法。 - 前記交替ステップにおいて、先入れ先出しのデータ構造であるキュー形式で管理された前記データブロックを、前記ブロックランク値が所定値以上の前記交替ブロックと、前記キュー形式で管理されたデータブロックのうち先頭かつ前記ブロックランク値が最小のデータブロックとを交替させる、
ことを特徴とする請求項6に記載のメモリ制御方法。 - 前記交替ステップにおいて、前記キュー形式で管理されたデータブロックのうち先頭のデータブロックの前記ブロックランク値が最小ではない場合、先頭データブロックを前記ブロックランク値が所定値以上の前記交替ブロックとの交替を行わず、先頭データブロックを前記キュー形式の最後尾に連結する、
ことを特徴とする請求項7に記載のメモリ制御方法。 - 前記交替ステップにおいて、前記キュー形式で管理した前記データブロックのうち、前記ブロックランク値が同じデータブロックがある場合には、前記消去回数、前記消去時間、前記エラー訂正値に優先順位をつけ、前記優先順位の高い指標のブロックを、より先頭に近くまたは最後尾に近くする、
ことを特徴とする請求項7または8に記載のメモリ制御方法。 - 前記ランク付けステップにおいて、前記消去回数、前記消去時間、前記読み出しエラー訂正値を前記記憶装置の使用用途またはこれらの指標の重要度に応じて重み付けをした上で前記ランク付けをする、
ことを特徴とする請求項6〜9のいずれか1項に記載のメモリ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012233692A JP2014085794A (ja) | 2012-10-23 | 2012-10-23 | 記憶装置およびメモリ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012233692A JP2014085794A (ja) | 2012-10-23 | 2012-10-23 | 記憶装置およびメモリ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014085794A true JP2014085794A (ja) | 2014-05-12 |
Family
ID=50788811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012233692A Pending JP2014085794A (ja) | 2012-10-23 | 2012-10-23 | 記憶装置およびメモリ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014085794A (ja) |
-
2012
- 2012-10-23 JP JP2012233692A patent/JP2014085794A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US9298534B2 (en) | Memory system and constructing method of logical block | |
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
US8898370B2 (en) | Data storage method for flash memory, and flash memory controller and flash memory storage system using the same | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
JP4632180B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
TWI423022B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
US10126970B2 (en) | Paired metablocks in non-volatile storage device | |
US8966157B2 (en) | Data management method, memory controller and memory storage apparatus | |
US11645006B2 (en) | Read performance of memory devices | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
JP5570406B2 (ja) | メモリコントローラ、及びデータ記録装置 | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
JP2009230414A (ja) | 複数の不揮発性メモリデバイスを有する記憶装置 | |
JP2015001909A (ja) | 情報処理装置、制御回路、制御プログラム、および制御方法 | |
JP4829202B2 (ja) | 記憶装置及びメモリ制御方法 | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
JP4737223B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
EP2381354A2 (en) | Data recording device | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
CN106469019B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
JP4720891B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2014085794A (ja) | 記憶装置およびメモリ制御方法 |