(57)【要約】      （修正有）【課題】不揮発性半導体メモリに関してより効果的な平準化を行う。【解決手段】ブロックの単位でデータの消去を行う記憶媒体２４と、外部のホスト装置からの指示に従い、前記記憶媒体に対するデータの書き込みおよび読み出しを制御する制御部２３と、を有する記憶装置２であって、前記制御部は、前記記憶媒体のブロックを、少なくとも、使用中のブロックであるデータブロックと、待機中のブロックである交替ブロックとして別々に前記記憶媒体に記憶させ、前記ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けし、ランク付けした前記消去回数と前記消去時間と前記読み出しエラー訂正値とに基づいて劣化具合の少ないブロックを定めるための指標であるブロックランク値を算出し、算出した前記ブロックランク値が所定値以上の前記交替ブロックと、前記データブロックのうちブロックランク値が最小のデータブロックとを交替させる。【選択図】図１
2014085794.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリＩ／Ｆ制御部と、を有する記憶装置であって、
前記メモリＩ／Ｆ制御部は、
前記不揮発性半導体メモリの物理ブロックを、少なくとも、使用中の物理ブロックであるデータブロックと、待機中の物理ブロックである交替ブロックとして別々に前記不揮発性メモリに記憶させ、前記物理ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けし、ランク付けした前記消去回数と前記消去時間と前記読み出しエラー訂正値とに基づいて劣化具合の少ない物理ブロックを定めるための指標であるブロックランク値を算出し、算出した前記ブロックランク値が所定値以上の前記交替ブロックと、前記データブロックのうちブロックランク値が最小のデータブロックとを交替させる、
ことを特徴とする記憶装置。
【請求項２】
前記メモリＩ／Ｆ制御部は、
前記データブロックを、先入れ先出しのデータ構造であるキュー形式で管理し、前記ブロックランク値が所定値以上の前記交替ブロックと、前記キュー形式で管理されたデータブロックのうち先頭かつ前記ブロックランク値が最小のデータブロックとを交替させる、
ことを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記メモリＩ／Ｆ制御部は、
前記キュー形式で管理されたデータブロックのうち先頭のデータブロックの前記ブロックランク値が最小ではない場合、先頭データブロックを前記ブロックランク値が所定値以上の前記交替ブロックとの交替を行わず、先頭データブロックを前記キュー形式の最後尾に連結する、
ことを特徴とする請求項２に記載の記憶装置。
【請求項４】
前記メモリＩ／Ｆ制御部は、
前記キュー形式で管理した前記データブロックのうち、前記ブロックランク値が同じデータブロックがある場合には、前記消去回数、前記消去時間、前記エラー訂正値に優先順位をつけ、前記優先順位の高い指標のブロックを、より先頭に近くまたは最後尾に近くする、
ことを特徴とする請求項２または３に記載の記憶装置。
【請求項５】
前記メモリＩ／Ｆ制御部は、
前記消去回数、前記消去時間、前記読み出しエラー訂正値を前記記憶装置の使用用途またはこれらの指標の重要度に応じて重み付けをした上で前記ランク付けをする、
ことを特徴とする請求項１〜４のいずれか１項に記載の記憶装置。
【請求項６】
記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリＩ／Ｆ制御部と、を有する記憶装置によるメモリ制御方法であって、
少なくとも、使用中の物理ブロックであるデータブロックと、待機中の物理ブロックである交替ブロックとして別々に前記不揮発性メモリに記憶された物理ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けするランク付けステップと、
ランク付けした前記消去回数と前記消去時間と前記読み出しエラー訂正値とに基づいて劣化具合の少ない物理ブロックを定めるための指標であるブロックランク値を算出する算出ステップと、
算出した前記ブロックランク値が所定値以上の前記交替ブロックと、前記データブロックのうちブロックランク値が最小のデータブロックとを交替させる交替ステップと、
を含むことを特徴とするメモリ制御方法。
【請求項７】
前記交替ステップにおいて、先入れ先出しのデータ構造であるキュー形式で管理された前記データブロックを、前記ブロックランク値が所定値以上の前記交替ブロックと、前記キュー形式で管理されたデータブロックのうち先頭かつ前記ブロックランク値が最小のデータブロックとを交替させる、
ことを特徴とする請求項６に記載のメモリ制御方法。
【請求項８】
前記交替ステップにおいて、前記キュー形式で管理されたデータブロックのうち先頭のデータブロックの前記ブロックランク値が最小ではない場合、先頭データブロックを前記ブロックランク値が所定値以上の前記交替ブロックとの交替を行わず、先頭データブロックを前記キュー形式の最後尾に連結する、
ことを特徴とする請求項７に記載のメモリ制御方法。
【請求項９】
前記交替ステップにおいて、前記キュー形式で管理した前記データブロックのうち、前記ブロックランク値が同じデータブロックがある場合には、前記消去回数、前記消去時間、前記エラー訂正値に優先順位をつけ、前記優先順位の高い指標のブロックを、より先頭に近くまたは最後尾に近くする、
ことを特徴とする請求項７または８に記載のメモリ制御方法。
【請求項１０】
前記ランク付けステップにおいて、前記消去回数、前記消去時間、前記読み出しエラー訂正値を前記記憶装置の使用用途またはこれらの指標の重要度に応じて重み付けをした上で前記ランク付けをする、
ことを特徴とする請求項６〜９のいずれか１項に記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリ等の記憶媒体を用いた記憶装置における長寿命化の技術に関する。
【背景技術】
【０００２】
近年、情報機器の補助記憶装置として、磁気ディスク記憶装置のほかに、耐振性やアクセス速度の面で優れた半導体メモリを記憶媒体とする記憶装置が用いられるようになってきている。その中で、特に、フラッシュメモリなどの電気的に消去可能で再書き込み可能な不揮発性半導体メモリを用いたものが、情報機器の補助記憶装置の主流となってきている。
【０００３】
不揮発性半導体メモリには、一般に、その素子の特性上、データの書き換え回数（消去回数）に上限（例えば１０万回程度）がある。そして、不揮発性半導体メモリでは、物理ブロックごとにデータ消去が行われるので、特定のブロックだけが早く消去回数の上限回数に達しないように工夫すること、つまり、ブロックの消去回数の平準化（以下、単に「平準化」という。）が望まれる。平準化することでブロック全体的にデータ書き換え回数上限値付近まで使用可能となり、記憶装置の寿命が延びるからである。
【０００４】
例えば、特許文献１の技術では、使用中の物理ブロックであるデータブロックのいずれかを、待機中の物理ブロックである交替ブロックと交替させる際に、消去回数の少ない交替ブロックを用いることで平準化を図っている。
【０００５】
さらに、特許文献２の技術では、データブロックと、交替ブロックとに、別々に管理し、物理ブロックごとの書き換え回数を管理し、書き換え回数が所定回数(例えば、９万回)以上の交替ブロックと、データブロックのうち書き換え回数が少ないデータブロックとを交替させることでさらに効果的な平準化を図っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１９６６３４号公報
【特許文献２】特開２０１０−７９８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１および２の技術では、平準化の指標として物理ブロックの書き換え回数(消去回数)しか使用していない。不揮発性半導体メモリでは、ブロック間において品質に差があり、書き換え回数が少ない(書き換え回数上限値に満たない)状態でも使用できなくなる場合や、その反対に書き換え回数が上限値を超えても使用可能なブロックもある。そのため、書き換え回数(消去回数)のみではブロックの劣化具合(寿命)の指標として不十分であり、十分に効果的な平準化とはいえない。
【０００８】
そこで、本発明は、前記問題に鑑みてなされたものであり、不揮発性半導体メモリに関してより効果的な平準化を行うことを課題とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は、制御部は、記憶媒体のブロックを、少なくとも、使用中のブロックであるデータブロックと、待機中のブロックである交替ブロックとして別々に記憶媒体に記憶させ、ブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けし、ランク付けした消去回数と消去時間と読み出しエラー訂正値とに基づいて劣化具合の少ないブロックを定めるための指標であるブロックランク値を算出し、算出したブロックランク値が所定値以上の交替ブロックと、データブロックのうちブロックランク値が最小のデータブロックとを交替させる。
【００１０】
また、本発明は、少なくとも、使用中のブロックであるデータブロックと、待機中のブロックである交替ブロックとして別々に記憶媒体に記憶されたブロックごとに消去回数と消去時間と読み出しエラー訂正値とをランク付けするランク付けステップと、ランク付けした消去回数と消去時間と読み出しエラー訂正値とに基づいて劣化具合の少ないブロックを定めるための指標であるブロックランク値を算出する算出ステップと、算出したブロックランク値が所定値以上の交替ブロックと、データブロックのうちブロックランク値が最小のデータブロックとを交替させる交替ステップとを含む。
【発明の効果】
【００１１】
本発明によれば、不揮発性半導体メモリなどの記憶媒体に関してブロック間の品質の差に依らず、ブロックごとの劣化具合に応じて、より効果的な平準化を行うことが可能となり、記憶装置の信頼性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態の記憶装置のハードウェア構成を含む説明図である。
【図２】本実施形態の不揮発性半導体メモリの内部構成を示した図である。
【図３】メモリ制御部の制御によりフラッシュメモリに関して構築される論理的記憶領域を示した図である。
【図４】論理・物理変換テーブルの構成例を示した図である。
【図５】ブロックランク値の分類例を示した図である。
【図６】ブロック管理テーブルの構成例を示した図である。
【図７】データブロックキューの概念図である。
【図８】交替ブロックキューの概念図である。
【図９】不揮発性半導体メモリに関する平準化処理を示したフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための実施形態について、図面を参照（言及図以外の図も適宜参照）しながら説明する。図１は、本実施形態の記憶装置のハードウェア構成を含む説明図である。
【００１４】
図１に示すように、記憶装置２は、ホスト装置１からの指示に基づいてデータの記憶を行う装置であり、ホスト装置１とデータバス３を介してアクセス可能に接続される。データバス３としては、例えばＳＣＳＩ（Small Computer System Interface）やＡＴＡ（Advanced Technology Attachment）などが用いられるが、ＵＳＢ（Universal Serial Bus）、ＳＤメモリなどの他のデータバスであってもよい。
【００１５】
記憶装置２は、マイクロプロセッサ２１、ホストＩ／Ｆ(インターフェース)制御部２２、メモリＩ／Ｆ制御部２３、不揮発性半導体メモリ２４、メモリ２５を備える。
【００１６】
マイクロプロセッサ２１は、ホスト装置１からの指示に従い、不揮発性半導体メモリ２４に対するデータの書き込みおよび読み出しを制御する。メモリＩ／Ｆ制御部２３は、マイクロプロセッサ２１からの指示により不揮発性半導体メモリ２４およびメモリ２５とのアクセス制御を行う。なお、マイクロプロセッサ２１から不揮発性半導体メモリ２４およびメモリ２５を直接制御可能であれば、メモリＩ／Ｆ制御部２３は必ずしも必要ではない。
【００１７】
ホストＩ／Ｆ制御部２２は、ホスト装置１からのデータの書き込みおよび読み出し要求（指示）に従って、ホスト装置１とのデータの送受信を制御する。なお、ホスト装置１からのデータの書き込みおよび読み出し要求は、不揮発性半導体メモリ２４に関して構築される論理的記憶領域（詳細は後記）に対して行われる。
【００１８】
メモリ２５は、マイクロプロセッサ２１の作業領域であり、例えば、ＳＲＡＭ（StaticRandom Access Memory）、ＤＲＡＭ（Dynamic RAM）、ＭＲＡＭ（Magneto-resistive RAM）などのメモリ素子により実現できる。メモリ２５は、不揮発性半導体メモリ２４の管理情報として、格納情報２５１、論理・物理変換テーブル２５２、データブロックキュー２５３、交替ブロックキュー２５４、消去待ちブロクキュー２５５、消去回数情報２５６、不良ブロック情報２５７、消去時間情報２５８、エラー訂正情報２５９、およびブロック管理テーブル２５Ａ、ランクテーブル２５Ｂを記憶している。なお、メモリ２５内の各情報は、マイクロプロセッサ２１が記憶装置２の電源オン時に不揮発性半導体メモリ２４のデータを読み出すことにより、構築される。
【００１９】
ここで、前提として、不揮発性半導体メモリ２４が、論理・物理変換テーブル２５２および消去回数情報２５６、消去時間情報２５８、エラー訂正情報２５９、ランクテーブル２５Ｂと同一の情報を格納しているものとする。不揮発性半導体メモリ２４が、メモリ２５に記憶されているこれらの情報と同じ情報を記憶しているので、電源オフされた場合であってもその時点の最新の状態を保持することができるようになっている。格納情報２５１は、不揮発性半導体メモリ２４においてそれらの情報（論理・物理変換テーブル２５２、消去回数情報２５６、消去時間情報２５８、および、エラー訂正情報２５９、ランクテーブル２５Ｂと同一の情報）を格納しているブロック番号の情報である。なお、不揮発性半導体メモリ２４は、データの書き込みと読み出しはページ単位（所定の単位）で行われ、データの消去は複数ページからなるブロック単位で行われる。また、ブロックには、すでにデータが格納されているデータブロック、データが未格納で待機中の交替ブロック、ブロックの全領域に書き込まれたデータの消去を待っている状態の消去待ちブロックがある（詳細は後記）。
【００２０】
論理・物理変換テーブル２５２は、ホスト装置１からのアクセス時に示される論理アドレスと不揮発性半導体メモリ２４上の物理アドレス（ブロック番号とページ番号）との対応情報を格納するテーブルである（詳細は図４で後記）。データブロックキュー２５３は、不揮発性半導体メモリ２４のデータブロックをキュー（先入れ先出しのデータ構造）形式で記憶（管理）する情報である。交替ブロックキュー２５４は、不揮発性半導体メモリ２４の交替ブロックをキュー形式で記憶（管理）する情報である。消去待ちブロックキュー２５５は、不揮発性半導体メモリ２４の消去待ちブロックをキュー形式で記憶（管理）する情報である。なお、データブロックキュー２５３、交替ブロックキュー２５４、および、消去待ちブロックキュー２５５の代わりに、テーブルなどの他の形式で記憶（管理）した情報を用いてもよい。
【００２１】
消去回数情報２５６は、不揮発性半導体メモリ２４の物理ブロックごとの消去回数を示す情報である。不良ブロック情報２５７は、書き込み禁止の不良ブロックのアドレスを示す情報である。なお、この不良ブロック情報２５７として、不揮発性半導体メモリ２４の製造時から存在する先天性の不良ブロックの情報と、不揮発性半導体メモリ２４の使用中に発生した後天性の不良ブロックの情報とが別々に記憶されていてもよい。
【００２２】
消去時間情報２５８は、不揮発性半導体メモリ２４の物理ブロックごとの最大消去時間を示す情報である。消去時間は、メモリＩ／Ｆ制御部２３より不揮発性半導体メモリ２４への消去要求後、不揮発性半導体メモリ２４からの消去完了応答がメモリＩ／Ｆ制御部２３に戻ってくるまでの時間をメモリＩ／Ｆ制御部２３にて計測する。なお、この消去時間情報２５８として、物理ブロックごとの複数回の消去時間を記憶しておいてもよい。メモリＩ／Ｆ制御部２３は、前回の消去時間と今回の消去時間とを比較して、長い方の消去時間を消去時間情報として記憶させておく。このように消去時間情報を記憶させることにより、それまでの最大消去時間を効率よく記憶することができる。エラー訂正情報２５９は、不揮発性半導体メモリ２４からのデータ読み出し時に検出した最大エラービット数（エラーとなったビット数（ビット誤り）の最大値）の物理ブロックごとの情報である。なお、エラー訂正情報２５９として、エラー訂正回数を記憶しておいてもよい。
【００２３】
また、メモリ２５は、上記の各情報のほかに、物理ブロックごとに次回の書き込みページを管理するためのテーブルなどを有していてもよいが、それらは本発明の特徴と直接関係がないので、図示や詳細な説明を省略する。
【００２４】
不揮発性半導体メモリ２４は、ホスト装置１からの指示に従ってメモリＩ／Ｆ制御部２３がデータの書き込みおよび読み出しを制御する対象の記憶媒体であり、例えばフラッシュメモリにより実現できる。不揮発性半導体メモリ２４は、ホスト装置１からの指示に従ってメモリＩ／Ｆ制御部２３が書き込むデータ（実データ）のほか、前記したように、メモリ２５に記憶される論理・物理変換テーブル２５２および消去回数情報２５６、消去時間情報２５８、エラー訂正情報２５９、およびランクテーブル２５Ｂと同一の情報を格納している。
【００２５】
図２は、本実施形態の不揮発性半導体メモリ２４の内部構成を示した図である。図２では、不揮発性半導体メモリ２４に関する論理的記憶領域を示している。図１に示したホスト装置１は、記憶装置２に関して、この論理的記憶領域を認識する。
【００２６】
ブロック２４１は、データ消去の最小単位である。ページ２４１１は、データの読み出しおよび書き込みの単位である。図２において、不揮発性半導体メモリ２４の論理的記憶領域は、複数のブロック２４１で構成されており、ブロック２４１は複数のページ２４１１により構成されている。すなわち、不揮発性半導体メモリ２４の論理的記憶領域は、ブロック１からブロックｍ（整数）までのｍ個の各ブロック２４１を有し、それぞれのブロックは、ページ１からページｎ（整数）までのｎ個のページを有している。
【００２７】
図３は、メモリＩ／Ｆ制御部２３の制御により不揮発性半導体メモリ２４に関して構築される論理的記憶領域を示した図である。図３に示すように、不揮発性半導体メモリ２４に関する論理的記憶領域として、データブロック２４２と交替ブロック２４３とを有している。
【００２８】
データブロック２４２は、データを記憶する一つあるいは複数のブロックからなるブロック（ブロックの集合）であり、ブロック１からブロックｐ（整数）までの論理ブロックを有している。各ブロックは、図示のようにデータページ２４２１と交替ページ２４２２で構成されている。
【００２９】
データページ２４２１は、ページ１からページｑ（整数）までのデータを保持するページを有していて、交替ページ２４２２は、ページ（ｑ＋１）からページｎ（整数）までを有している。この交替ページ２４２２は、消去済みの再書込み可能な領域である。
【００３０】
また、交替ブロック２４３は、ブロック（ｐ＋１）からブロックｍ（整数）までの消去済みの交替用のブロックであり、各ブロックは、ページ１からページｎ（整数）までの消去済みページ２４３１で構成されている。消去済みページ２４３１は、消去済みの再書込み可能なページであって、交替ページ２４２２の上書きデータとデータページ２４２１の非上書きデータを交替ブロック２４３に書き写して交替させるための領域である。
【００３１】
データページ２４２１は、ユーザがホスト装置１からの指示に従いデータを読み書きすることができる領域である。このデータページ２４２１には、不揮発性半導体メモリ２４の制約上から上書きができないため、メモリＩ／Ｆ制御部２３の制御による上書き処理後の上書きデータは交替ページ２４２２に記憶される。
【００３２】
そして、交替ページ２４２２に記憶できないときは、新たに交替ブロック２４３を割り当て、書き込みをする。このとき、メモリＩ／Ｆ制御部２３は、上書き処理後の有効部分である、交替ページ２４２２の上書きデータおよびデータページ２４２１の非上書きデータを交替ブロック２４３に書き写して交替させる。さらに、メモリＩ／Ｆ制御部２３は、交替後の交替ページ２４２２およびデータページ２４２１はデータ消去して交替ブロック２４３の候補とする。
【００３３】
なお、図３における「ｐ」および「ｑ」の値は、本実施形態では記憶装置２の製造時に初期値として設定するものである。この「ｐ」および「ｑ」の値の設定方法については、特に限定しないが、予め設定しておくほかに、マイクロプロセッサ２１へデバッガを接続して設定するようにしてもよい。また、ホスト装置１から予め決められたコマンドを発行して設定してもよい。また、「ｐ」および「ｑ」の値を可変としてテーブル管理することも可能であるが、本実施形態では説明を容易にするため、固定値として扱う。
【００３４】
図４は、論理・物理変換テーブル２５２の構成例を示した図である。論理・物理変換テーブル２５２は、ホスト装置１からのアクセス時に示される論理アドレスと、不揮発性半導体メモリ２４の物理アドレス（ブロック番号およびページ番号）とから構成される。
【００３５】
なお、論理アドレスは原則として初期設定状態から不変であるが、物理アドレスはメモリＩ／Ｆ制御部２３による不揮発性半導体メモリ２４に対する書き込み動作などに応じてマイクロプロセッサ２１によって書き換えられる。
【００３６】
図５は、ブロックランク値の算出例を示した図である。ブロックランク値とは、ブロックの劣化具合の少ないものを定めるための指標である。なお、本実施の形態では、ブロックランク値をブロックの劣化具合の少ないブロックを定めるための指標として用いているが、これとは逆にブロックの劣化具合の多いものを定めるための指標として用いてもよい。すなわち、ブロックの劣化具合（劣化の程度）をランク付けして識別するものであればよい。
【００３７】
図５では、ブロックごとに、ブロックの消去回数をランク付けした消去回数ランクテーブル５０１と、ブロックの消去時間をランク付けした消去時間ランクテーブル５０２と、ブロックのエラー訂正情報をランク付けしたエラー訂正ランクテーブル５０３と、これらの各情報についてのランクの合算値をランク付けしたトータルランクテーブル５０４とが、ランクテーブル２５Ｂとしてメモリ２５に記憶されている場合の例を示している。図５に示すように、各テーブルは、消去回数の多さ、消去時間の長さ、ビットエラーの多さに対応してランク付けされている。例えば、消去回数ランクテーブル５０１では、１万回未満の消去回数であれば０ポイント、１万回以上の２万回未満の消去回数であれば０．１ポイント、２万回以上の３万回未満の消去回数であれば０．２ポイントというように、消去回数が多くなるにつれて、消去回数ランク５０１１を表すポイントの値が大きくなるように設定されている。消去時間ランク５０２１、エラー訂正ランク５０３１についても同様に、消去時間が長く、ビットエラーの多いほど、ポイントの値が大きくなるように設定されている。なお、消去回数ランクテーブル５０１、消去時間ランクテーブル５０２、エラー訂正ランクテーブル５０３は、あらかじめ設定されているものとする。
【００３８】
メモリＩ／Ｆ制御部２３は、消去回数情報２５６、消去時間情報２５８、および、エラー訂正情報２５９に応じて各々消去回数ランク、消去時間ランク、および、エラー訂正ランクに分類し、この３つのランクの合計値によりブロックランク値を算出する。したがって、このブロックランク値が低い値ほど、ブロックの劣化具合が少ないと考えることができる。なお、本実施の形態では、消去回数ランクは１万回ごとに分類しているが、他の管理単位にしてもよいし、消去時間ランクについても1ミリ秒ごとに分類しているが、他の管理単位にしてもよい。さらに、エラー訂正ランクについても1ビットエラーごとに分類しているが、他の管理単位にしてもよい。
【００３９】
図６は、ブロック管理テーブル２５Ａの構成例を示した図である。図６に示すように、ブロック管理テーブル２５Ａは、図５に示した消去回数情報２５６、消去時間情報２５８、エラー訂正情報２５９、およびこれらの３つの情報から分類したブロックランク（値）５０４１が対応付けられたテーブルとして構成される。なお、ランク値は単純に消去回数情報２５６、消去時間情報２５８、エラー訂正情報２５９を、図５にて示したようにブロックランク値に分類してもよいが、記憶装置２の使用用途や重要度に合わせ、各要素に任意に重み付けをした値からブロックランクを分類してもよい。例えば、記憶装置２がオンライン更新のように記憶されているデータが頻繁に書き換えられる状況で用いられているような場合では、ランクの値に１．５を乗じて他の消去時間ランクやエラー訂正ランクに比べて、より重要なランクとして重み付けをしてもよい。この場合、より使用用途や重要度に合致したランク付けをすることができる。
【００４０】
なお、図３の説明にて記載した交替ページ２４２２にデータを記憶できない場合において、新たに交替ブロック２４３を割り当てる方法として、メモリＩ／Ｆ制御部２３は、このブロックランク値の低い(ブロック劣化具合が小さい)交替ブロックを割り当ててもよい。この場合、ブロックの劣化具合が小さいブロックから交替ブロック２４３として使用されるので、ブロックがさらに平準化されることとなる。
【００４１】
図７は、データブロックキュー２５３の概念図である。データブロックキュー２５３は、キュー形式で管理されるデータブロック（の識別子）のつながりを示している。先頭から最後尾まで順にデータブロックが連結されて管理されており、メモリＩ／Ｆ制御部２３は、最新の書き換え済みデータブロックを最後尾に連結する。
【００４２】
このようなデータブロックキュー２５３では、統計学的に考えて、先頭に近いほど書き換え回数が少なく、最後尾に近いほど書き換え回数が多いデータブロックが存在する傾向があると考えられる。このようなデータブロックキュー２５３を用いることで、ブロックランク値が高い(劣化具合が大きい)ブロックとデータブロックキューの先頭(読み出ししか行われない、もしくは書き込み回数が少ない論理アドレスに対応するブロック)と交換することで効率よくブロックを管理しつつ平準化を行うことができる。
【００４３】
図８は、交替ブロックキューの概念図である。交替ブロックキュー２５４は、キュー形式で管理される交替ブロック（の識別子）のつながりを示している。交替ブロックキュー２５４は、ランク０、ランク１、ランク２、・・・、ランク１０というように、１１段階に別々のキューとして管理される。なお、ここで管理単位を「１１段階」としているのは一例であり、他の管理単位であってもよい。
【００４４】
次に、図９参照して、不揮発性半導体メモリ２４に関する平準化処理について説明する。図９は、不揮発性半導体メモリに関する平準化処理を示したフローチャートである。
【００４５】
まず、メモリＩ／Ｆ制御部２３は、データブロックキューの最小ブロックランク値よりもブロックランク値が大きい交替ブロックがあるか否かを判定する（ステップＳ９０１）。この判定は、メモリ２５のデータブロックキュー２５３および交替ブロックキュー２５４を参照することにより行うことができる。また、この判定のタイミングは、定期的であってもよいし、あるいは、ブロック管理テーブル２５Ａに変更があったときでもよいし、さらに、マイクロプロセッサ２１の処理動作の空き時間発生時であってもよい。メモリＩ／Ｆ制御部２３は、当該交替ブロックがないと判定した場合（ステップＳ９０１；Ｎｏ）、処理を終了する。
【００４６】
一方、メモリＩ／Ｆ制御部２３は、当該交替ブロックがあると判定した場合（ステップＳ９０１；Ｙｅｓ）、データブロックキュー２５３における先頭のデータブロックのブロックランク値がデータブロックキューの最小ブロックランク値であるか否かを判定する（ステップＳ９０２）。データブロックキューは、図７に示したように書き換え回数の少ない順に管理されているが、この判定が行われることにより、単に書き換え回数が少ないデータブロックを交替させるのではなく、上述したブロックランク値を考慮した交替を可能としている。
【００４７】
メモリＩ／Ｆ制御部２３は、ブロックランク値が最小と判定した場合（ステップＳ９０２；Ｙｅｓ）、当該交替ブロック（ブロックランク値がデータブロックキューの最小ブロックランク値よりも大きい交替ブロック）と、データブロックキュー２５３における先頭のデータブロックとを交替（データを入れ替え）し（ステップＳ９０４）、論理・物理変換テーブル２５２などを更新した上で処理を終了する。
【００４８】
一方、メモリＩ／Ｆ制御部２３は、ブロックランク値が最小ではないと判定した場合（ステップＳ９０２；Ｎｏ）、データブロックキューの先頭データブロックをデータブロックキューの最高尾へ移動させ(ステップＳ９０３)、ステップＳ９０２に戻る。そして、このステップＳ９０２、Ｓ９０３を繰り返し行うことにより、書き換え回数およびブロックランク値の両方の条件（すなわち、書き換え回数が少なく、かつブロックランク値が大きい条件）を満たすデータブロックを交替させることができる。
【００４９】
一般に、不揮発性半導体メモリでは、ブロックの消去回数が増え、ブロックが劣化していくと、ブロックの最大消去時間が延びる傾向にあるため、ブロックの消去時間情報を劣化のひとつの指標とし、また、ブロックの品質が低い、あるいはブロックの劣化が進むとブロックのビット誤りが多くなることがあり、エラー訂正情報も劣化の指標として、これらの消去回数、消去時間およびエラー訂正情報の３つの指標を用いることで、従来技術よりもさらに効果的な平準化を実施することができる。
【００５０】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、前記したランク値は１０段階でなくてもよく、記憶装置の使用用途に合わせて任意に設定することができる。
【００５１】
また、本実施の形態では、各データブロックのブロックランク値が異なっている前提で説明しているが、各データブロックのブロックランク値が同じ場合には、ブロックランク（消去回数、消去時間、エラー訂正回数）に優先順位をつけ、優先順位の高いブロックランクの値が大きいブロックを先頭に近く（あるいは最後尾に近く）するように管理してもよい。例えば、消去回数を重要と考える場合にはそのブロックランクを最優先とし、その値が大きい場合には先頭に近くするように並べてもよい。さらに、各ブロックランクの値に重み付けをしている場合には、これらを組み合わせて並べることとしてもよい。このように、ブロックランク値が同じ場合であっても、優先順位の高いブロックランクの値が大きいブロックを先頭に近く（あるいは最後尾に近く）した場合、より精度よくブロックの平準化を行うことができる。
【００５２】
また、本実施形態の平準化処理と他の平準化処理とを併用してもよい。さらに、ランク値の算出は、エラー訂正情報を用いずに、消去回数情報および消去時間情報のみから算出してもよい。その他、ハードウェア、ソフトウェアの具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００５３】
１・・・ホスト装置
２・・・記憶装置
３・・・データバス
２１・・・マイクロプロセッサ
２２・・・ホストＩ／Ｆ制御部
２３・・・メモリＩ／Ｆ制御部
２４・・・不揮発性半導体メモリ
２５・・・メモリ
２５１・・・格納情報
２５２・・・論理・物理変換テーブル
２５３・・・データブロックキュー
２５４・・・交替ブロックキュー
２５５・・・消去待ちブロックキュー
２５６・・・消去回数情報
２５７・・・不良ブロック情報
２５８・・・消去時間情報
２５９・・・エラー訂正情報
２５Ａ・・・ブロック管理テーブル
２５Ｂ・・・ランクテーブル
２４１・・・ブロック
２４１１・・・ページ
２４２・・・データブロック
２４３・・・交替ブロック
２４２１・・・データページ
２４２２・・・交替ページ
２４３１・・・消去済みページ
【図１】
2014085794.tif 000003
【図２】
2014085794.tif 000004
【図３】
2014085794.tif 000005
【図４】
2014085794.tif 000006
【図５】
2014085794.tif 000007
【図６】
2014085794.tif 000008
【図７】
2014085794.tif 000009
【図８】
2014085794.tif 000010
【図９】
2014085794.tif 000011