(57)【要約】【課題】構成が簡単で短時間の処理でフラッシュメモリの全物理ブロックを均等に使用することができ、寿命を延ばす。【解決手段】複数物理ブロックを有するフラッシュメモリ２４の物理ブロック割り当てを制御するフラッシュメモリ制御装置において、時刻情報を取り出し可能である計時手段のＨＷタイマ２２と、このＨＷタイマ２２から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定手段３１と、決定手段３１により決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む処理手段３２と、を具備する。【選択図】図１
2014092833.tif 000002
【特許請求の範囲】
【請求項１】
複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置において、
時刻情報を取り出し可能である計時手段と、
計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定手段と、
決定手段により決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む処理手段と、
を具備することを特徴とするフラッシュメモリ制御装置。
【請求項２】
処理手段は、決定手段により決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込むことを特徴とする請求項１に記載のフラッシュメモリ制御装置。
【請求項３】
複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御方法において、
時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出す時刻取出ステップと、
得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定ステップと、
決定ステップにより決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む処理ステップと、
を具備することを特徴とするフラッシュメモリ制御方法。
【請求項４】
処理ステップでは、決定ステップにより決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込むことを特徴とする請求項３に記載のフラッシュメモリ制御方法。
【請求項５】
複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置に用いられるコンピュータを、
時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工によりエラーチェックを行うページを決定する決定手段、
決定手段により決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む処理手段、
として機能させることを特徴とするフラッシュメモリ制御用プログラム。
【請求項６】
処理手段は、決定手段により決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込むことを特徴とする請求項５に記載のフラッシュメモリ制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、フラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラムに関するものである。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリについては、以下の特性が知られている。ＮＡＮＤ型フラッシュメモリでは、複数物理ブロックを有し、更に各物理ブロックに複数のページが含まれるという構造を採用している。消去については物理ブロック単位で行われ、消去動作はＰ型半導体層に電圧をかけて浮遊ゲートから電子を引き抜くことで行われる。
【０００３】
一方、情報の書き込みについては、量子トンネル効果により電子を浮遊ゲート内に注入することで行われる。この場合、回路基板であるＮ型半導体を接地電位にし、微小な電流によって制御ゲートに書き込み電圧を印加する。浮遊ゲート内に蓄積された電子が情報を記憶する。ここに、書き込みはページ単位で行われ、同一ページ内の全てのセルに対して、同時に制御ゲートに書き込み電圧を印加することで書き込み動作が行われる。
【０００４】
更に、読み出し動作は、ページ単位で行われる。選択しないセルの制御ゲートに電圧をかけ導通状態にする。選択したセルの浮遊ゲートに電子がある一定量ある場合にはソースとドレイン間に電流があまり流れず、この状態が”０”とされる。また、浮遊ゲートに電子がある一定量ない場合にはソースとドレイン間に電流が比較的流れ、この状態が”１”とされる。
【０００５】
上記のように消去動作は複数ページを含む物理ブロック単位でしか行えず、また、１動作では上書きができないために、消去してから書き込みを行う必要があるため、１ページの書き換えでも（ＳＬＣ（Single-Level-Cell ）の場合）一度１物理ブロック６４ページ全ての内容をＮＡＮＤ型フラッシュメモリの外部に読み出して、一時的に保持しておき、１物理ブロック６４ページ全てを消去する必要がある。ＮＡＮＤ型フラッシュメモリの外部の記憶領域で必要な書き換えの加工処理を行ってから、その消去済みの物理ブロックに改めて書き戻す動作が行われる。
【０００６】
また、ＮＡＮＤ型フラッシュメモリでは、その寿命について以下の通りの事項が知られている。まず、ＮＡＮＤ型フラッシュメモリでは、書き換え可能回数に上限があるほか、記録内容の保持期間も有限（最大で１０年から数十年）であり、劣化により書き込んだ情報はいつか失われる。また回路構造上、ＮＯＲ型よりもＮＡＮＤ型の方が劣化が進みやすい。更に、データを常に記録するような用途で使用すると、特性上急激な劣化（不良物理ブロック）が発生し、製品寿命が著しく短くなることが予測されると言われている。
【０００７】
一般的に、メモリセルに対する読み書きによってゲート酸化膜の劣化が進行すると電荷の蓄積量が当初の設計値とずれてしまい”０”と”１”の差異が判別できなくなることで寿命となるが、読み書きが全く行われない物理ブロックでも近隣セルの動作に伴って電圧が加わるために、「読み出しディスターブ」(Read Disturb)と呼ばれる劣化が進行することも知られている。
【０００８】
ここで、一つの例を挙げると、例えばデータ消去回数が０回のとき、データ破壊が始まる可能性が高い読み出し回数は、１０万回程度であり、例えばデータ消去回数が６万回のとき、データ破壊が始まる可能性が高い読み出し回数は、１万回程度である。この関係をグラフ化すると図４の特性線Ｓの如くなる。
【０００９】
上記に明らかな通り、ＮＡＮＤ型フラッシュメモリではデータの書き換えおよび消去を繰り返すとセルが劣化し、データを書き込むことができなくなる。このため、特定の物理ブロックのみにデータの書き込み消去が集中するとその物理ブロックだけ早く寿命を迎えてしまうが、寿命となった１物理ブロックを避けてフラッシュメモリを使用することも考えられているが、一般的に1物理ブロックの寿命で当該フラッシュメモリが寿命となるという使用例も多い。
【００１０】
この現象を回避するために、ウェアレベリングという手法が用いられている。ウェアレベリングにはいくつかの手法があるが、ＮＡＮＤ型フラッシュメモリを使った記憶媒体では、メモリチップ外部からのアドレス信号をチップ内部的に異なるアドレスに変換して、各物理ブロックの書き込み消去回数が平準化するようにする手法が広く用いられている。
【００１１】
例えば、データ固有の読み書き頻度情報と、前記不揮発性メインメモリの各領域の読み書き回数を含むメモリ使用情報と、前記不揮発性メインメモリのページサイズ、物理ブロックサイズ、記憶領域ごとの書き換え可能回数及び読み出し可能回数を含むメモリ固有情報とのうちの少なくとも一つに基づいて、ウェアレベリングを行うようにしたメモリ管理装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１０−６６９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記のメモリ管理装置では、処理が複雑であり、フラッシュメモリ制御のシステム起動時間が短い装置には不向きである。
【００１４】
本発明はこのようなフラッシュメモリに関する現状に鑑みてなされたもので、その目的は、構成が簡単で短時間の処理でフラッシュメモリの全物理ブロックを均等に使用することができ、寿命を延ばすことが可能なフラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラムを提供することである。
【課題を解決するための手段】
【００１５】
本発明に係るフラッシュメモリ制御装置は複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置において、時刻情報を取り出し可能である計時手段と、計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定手段と、決定手段により決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む処理手段と、を具備することを特徴とする。
【００１６】
本発明に係るフラッシュメモリ制御装置では、処理手段は、決定手段により決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込むことを特徴とする。
【００１７】
本発明に係るフラッシュメモリ制御方法は、複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御方法において、時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出す時刻取出ステップと、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定ステップと、決定ステップにより決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む処理ステップと、を具備することを特徴とする。
【００１８】
本発明に係るフラッシュメモリ制御方法は、処理ステップでは、決定ステップにより決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込むことを特徴とする。
【００１９】
本発明に係るフラッシュメモリ制御用プログラムは、複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置に用いられるコンピュータを、時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工によりエラーチェックを行うページを決定する決定手段、決定手段により決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む処理手段、として機能させることを特徴とする。
【００２０】
本発明に係るフラッシュメモリ制御用プログラムでは、処理手段は、決定手段により決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込むことを特徴とする。
【発明の効果】
【００２１】
本発明では、計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定し、決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込むので、構成が簡単で短時間の処理でフラッシュメモリの全物理ブロックを均等に使用することができ、寿命を延ばすことが可能となる。
【００２２】
本発明では、決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込むので、物理ブロックの使用状態に応じて適切な割り当てを行いながら、可能な限り全物理ブロックを均等に使用することができ、寿命を延ばすことが可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係るフラッシュメモリ制御装置を採用するコンピュータシステムの要部物理ブロック図。
【図２】本発明の実施形態に係るフラッシュメモリ制御装置による物理ブロック割り当ての手順を示す図。
【図３】本発明の実施形態に係るフラッシュメモリ制御装置による物理ブロック割り当ての動作を示すフローチャート。
【図４】フラッシュメモリの読み出しと消去による劣化特性のグラフを示す図。
【発明を実施するための形態】
【００２４】
以下添付図面を参照して本発明に係るフラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラムの実施形態を説明する。図１は、実施例に係るフラッシュメモリ制御装置を採用するコンピュータシステムの一部である。このシステムは、ソフトウェア１とハードウェア２とにより構成されている。ソフトウェア１はプログラムが記憶される主メモリ或いは外部記憶装置に格納されており、主メモリに呼び出されてプロセッサにより実行される。
【００２５】
ソフトウェア１には、ドライバを呼び出してフラッシュメモリへの書込み或いは読み出しを要求するデータアクセスソフトウェア（アプリケーションプログラム）１１と、フラッシュメモリ用ドライバソフトウェア（以下、ドライバ）１２とが含まれている。ドライバ１２は、フラッシュメモリを制御するソフトウェアであり、アプリケーションプログラムからの要求に応じてデータの書込み或いは読み出しを行う他に、本発明に係るフラッシュメモリ制御用プログラムの実施形態を構成し、フラッシュメモリの全物理ブロックを均等に使用することにより寿命を延ばす機能を有している。
【００２６】
ハードウェア２は、ドライバ１２を動作させると共に各部を統括制御するプロセッサ２１を備えている。プロセッサ２１には、時刻情報を取り出し可能である計時手段であるＨＷ（ハードウェア）タイマ２２、ドライバ１２が動作する際に用いられる揮発性メモリ２３、フラッシュメモリ２５にアクセスするためのフラッシュメモリコントローラ２４が接続されている。更に、フラッシュメモリコントローラ２４には、制御対象であるフラッシュメモリ２５が接続されている。
【００２７】
ドライバ１２は、決定手段３１、処理手段３２を備える。決定手段３１は、計時手段であるＨＷタイマ２２から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する。処理手段３２は、決定手段３１により決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む。
【００２８】
更に、処理手段は、決定手段により決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込む。
【００２９】
フラッシュメモリ２５については、例えば、図２に示すように、１〜ｎまでの複数物理ブロックが集合して構成されたものである。各物理ブロックは、図示しない複数ページにより構成されている。各物理ブロックには、物理ブロックを示す四角枠内に記載されている物理ブロック番号が付与されている。なお、図２において、物理ブロックを示す四角枠内が白地である場合にはデータが書き込み可能であるものとし、＃１〜＃７の符号を付してある。また、物理ブロックを示す四角枠内がハッチングされた状態である場合にはデータの書き込みが不可能（例えば、全ページにデータ書き込み済など）なものとする。以上の通りに構成されたコンピュータシステムにおいては、ドライバ１２が図３に示される通りのフローチャートに対応するプログラムを実行することにより、各手段として動作するので、このフローチャートに基づき動作を説明する。
【００３０】
所要時にフラッシュメモリ制御用プログラム（フラッシュメモリのデータ書き込みに係る制御システム）が起動されると、図３のフローチャートがスタートとなり、ＨＷタイマ２２より時刻情報を取得する（Ｓ１１）。次に、取得した時刻情報に基づき演算加工を行って、割り当て開始する物理ブロック番号を求める（Ｓ１２）。演算加工としては、ＨＷタイマ２２が保持している時刻情報（ビット列）をＸとして、フラッシュメモリの総物理ブロック数より十分大きな値となるように、上記の情報Ｘの値を冪乗の値（ｍ回の冪乗では、Ｘm）を生成し、この冪乗の値を上記総物理ブロック数で除算して剰余を求め、この剰余を、割り当て開始する物理ブロック番号とする手法を挙げることができる。
【００３１】
また、演算加工の他の手法としては、ある一定回数のシステム起動時の"ＨＷタイマ２２が保持している値"を全て乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
更に第３の手法として、フラッシュメモリ制御ソフトウェアがフラッシュメモリに不定期に保存する管理情報に、保存時点でのハードウェアタイマ値を含め、常時、管理情報にひとつ、もしくは複数の タイマ値を保持する。
そして、システム起動時に、"ハードウェアタイマが保持している値"と"管理情報に保持しているタイマ値"を乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
【００３２】
更に第４の手法として、システム起動時に、"ハードウェアタイマが保持している値"と"フラッシュメモリ制御ソフトウェアが保持している各物理ブロックのイレーズカウント（消去回数）を全て加算した値"を乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
第５の手法として、システム起動時に、"ハードウェアタイマが保持している値"と"ハードウェア リアルタイムクロックが保持している値"を乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
【００３３】
上記ステップＳ１２に続き、決定された割り当て開始する物理ブロック番号の物理ブロックに近い（アドレスが該当物理ブロックのアドレス以上の）書き込み可能な物理ブロックにデータ書き込みを行う（Ｓ１３）。この場合、上書きを行うことができないために、データ書き込みがなされている物理ブロックについては１度消去を行ってデータ書き込みを行うことになる。
【００３４】
ステップＳ１２に示した物理ブロック番号決定から、データを書き込みまでの処理を図２を参照して説明する。例１では、決定された物理ブロック番号が＃３に対応する物理ブロック番号である場合を示す。この物理ブロック番号が＃３に対応する物理ブロック番号の物理ブロックは、書き込み可能であるからこの物理ブロックからデータを書き込むことを示している。識別情報＃３に対応する物理ブロック番号にデータを書き込むことを示している。
【００３５】
また、例２では、決定された物理ブロック番号が「ｎ−３」である場合を示す。この物理ブロック番号が「ｎ−３」の物理ブロックは、ハッチングされており、書き込み不可であるから、物理ブロック番号を「１」大きくした物理ブロック番号「ｎ−２」を次の割り当て対象とする。この物理ブロック番号「ｎ−２」の物理ブロックは、書き込み可能であるからこの物理ブロックからデータを書き込むことを示している。
【００３６】
また、例３では、決定された物理ブロック番号が「２」である場合を示す。この物理ブロック番号が「２」の物理ブロックは、ハッチングされており、書き込み不可であるから、物理ブロック番号を「１」大きくした物理ブロック番号「３」を次の割り当て対象とする。この物理ブロック番号「３」の物理ブロックも書き込み不可であるから物理ブロック番号「４」を次の割り当て対象とする。この物理ブロック番号「４」の物理ブロックは、書き込み可能であるからこの物理ブロックからデータを書き込むことを示している。
【００３７】
このようにシステムの起動の度に、ＨＷタイマ２２から取得した時刻情報に基づき演算加工して割り当て開始する物理ブロック番号を求め、求めた物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込むので、構成が簡単で短時間の処理でフラッシュメモリの全物理ブロックを均等に使用することができ、寿命を延ばすことが可能となる。
【符号の説明】
【００３８】
１  ソフトウェア
２  ハードウェア
１１  データアクセスソフトウェア
１２  ドライバ
２１  プロセッサ
２２  ＨＷタイマ
２３  揮発性メモリ
２４  フラッシュメモリコントローラ
２５  フラッシュメモリ
３１  決定手段
３２  処理手段
【図１】
2014092833.tif 000003
【図２】
2014092833.tif 000004
【図３】
2014092833.tif 000005
【図４】
2014092833.tif 000006