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