(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5683558
(24)【登録日】2015年1月23日
(45)【発行日】2015年3月11日
(54)【発明の名称】フラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラム
(51)【国際特許分類】
G06F 12/16 20060101AFI20150219BHJP
G06F 12/02 20060101ALI20150219BHJP
G06F 12/00 20060101ALI20150219BHJP
【FI】
G06F12/16 310A
G06F12/02 510A
G06F12/02 570A
G06F12/00 597U
【請求項の数】3
【全頁数】9
(21)【出願番号】特願2012-241497(P2012-241497)
(22)【出願日】2012年11月1日
(65)【公開番号】特開2014-92833(P2014-92833A)
(43)【公開日】2014年5月19日
【審査請求日】2013年9月17日
(73)【特許権者】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100074147
【弁理士】
【氏名又は名称】本田 崇
(72)【発明者】
【氏名】平田 宏輝
(72)【発明者】
【氏名】藤垣 民木
(72)【発明者】
【氏名】鎌 康春
【審査官】
松永 稔
(56)【参考文献】
【文献】
特開平06−324954(JP,A)
【文献】
特開2009−054236(JP,A)
【文献】
国際公開第2008/139689(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00 − G06F 12/02
G06F 12/16
(57)【特許請求の範囲】
【請求項1】
複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置において、
時刻情報を取り出し可能である計時手段と、
計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定手段と、
前記決定手段により決定された物理ブロック番号に対応する物理ブロックについてデータ書き込みが可能であるか否かを検出し、データ書き込みが可能である物理ブロックである場合には、この物理ブロックから割り当てを行ってデータを書き込む一方、前記検出結果の物理ブロックがデータ書き込み不可能である場合には、この物理ブロックの物理ブロック番号を1づつ更新してデータ書き込みが可能である物理ブロックを得て、この物理ブロックから割り当てを行ってデータを書き込む処理手段と
を具備することを特徴とするフラッシュメモリ制御装置。
【請求項2】
複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御方法において、
時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出す時刻取出ステップと、
得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定ステップと、
前記決定ステップにより決定された物理ブロック番号に対応する物理ブロックについてデータ書き込みが可能であるか否かを検出し、データ書き込みが可能である物理ブロックである場合には、この物理ブロックから割り当てを行ってデータを書き込む一方、前記検出結果の物理ブロックがデータ書き込み不可能である場合には、この物理ブロックの物理ブロック番号を1づつ更新してデータ書き込みが可能である物理ブロックを得て、この物理ブロックから割り当てを行ってデータを書き込む処理ステップと
を具備することを特徴とするフラッシュメモリ制御方法。
【請求項3】
複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置に用いられるコンピュータを、
時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定手段、
前記決定手段により決定された物理ブロック番号に対応する物理ブロックについてデータ書き込みが可能であるか否かを検出し、データ書き込みが可能である物理ブロックである場合には、この物理ブロックから割り当てを行ってデータを書き込む一方、前記検出結果の物理ブロックがデータ書き込み不可能である場合には、この物理ブロックの物理ブロック番号を1づつ更新してデータ書き込みが可能である物理ブロックを得て、この物理ブロックから割り当てを行ってデータを書き込む処理手段
として機能させることを特徴とするフラッシュメモリ制御用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、フラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラムに関するものである。
【背景技術】
【0002】
NAND型フラッシュメモリについては、以下の特性が知られている。NAND型フラッシュメモリでは、複数物理ブロックを有し、更に各物理ブロックに複数のページが含まれるという構造を採用している。消去については物理ブロック単位で行われ、消去動作はP型半導体層に電圧をかけて浮遊ゲートから電子を引き抜くことで行われる。
【0003】
一方、情報の書き込みについては、量子トンネル効果により電子を浮遊ゲート内に注入することで行われる。この場合、回路基板であるN型半導体を接地電位にし、微小な電流によって制御ゲートに書き込み電圧を印加する。浮遊ゲート内に蓄積された電子が情報を記憶する。ここに、書き込みはページ単位で行われ、同一ページ内の全てのセルに対して、同時に制御ゲートに書き込み電圧を印加することで書き込み動作が行われる。
【0004】
更に、読み出し動作は、ページ単位で行われる。選択しないセルの制御ゲートに電圧をかけ導通状態にする。選択したセルの浮遊ゲートに電子がある一定量ある場合にはソースとドレイン間に電流があまり流れず、この状態が”0”とされる。また、浮遊ゲートに電子がある一定量ない場合にはソースとドレイン間に電流が比較的流れ、この状態が”1”とされる。
【0005】
上記のように消去動作は複数ページを含む物理ブロック単位でしか行えず、また、1動作では上書きができないために、消去してから書き込みを行う必要があるため、1ページの書き換えでも(SLC(Single-Level-Cell )の場合)一度1物理ブロック64ページ全ての内容をNAND型フラッシュメモリの外部に読み出して、一時的に保持しておき、1物理ブロック64ページ全てを消去する必要がある。NAND型フラッシュメモリの外部の記憶領域で必要な書き換えの加工処理を行ってから、その消去済みの物理ブロックに改めて書き戻す動作が行われる。
【0006】
また、NAND型フラッシュメモリでは、その寿命について以下の通りの事項が知られている。まず、NAND型フラッシュメモリでは、書き換え可能回数に上限があるほか、記録内容の保持期間も有限(最大で10年から数十年)であり、劣化により書き込んだ情報はいつか失われる。また回路構造上、NOR型よりもNAND型の方が劣化が進みやすい。更に、データを常に記録するような用途で使用すると、特性上急激な劣化(不良物理ブロック)が発生し、製品寿命が著しく短くなることが予測されると言われている。
【0007】
一般的に、メモリセルに対する読み書きによってゲート酸化膜の劣化が進行すると電荷の蓄積量が当初の設計値とずれてしまい”0”と”1”の差異が判別できなくなることで寿命となるが、読み書きが全く行われない物理ブロックでも近隣セルの動作に伴って電圧が加わるために、「読み出しディスターブ」(Read Disturb)と呼ばれる劣化が進行することも知られている。
【0008】
ここで、一つの例を挙げると、例えばデータ消去回数が0回のとき、データ破壊が始まる可能性が高い読み出し回数は、10万回程度であり、例えばデータ消去回数が6万回のとき、データ破壊が始まる可能性が高い読み出し回数は、1万回程度である。この関係をグラフ化すると
図4の特性線Sの如くなる。
【0009】
上記に明らかな通り、NAND型フラッシュメモリではデータの書き換えおよび消去を繰り返すとセルが劣化し、データを書き込むことができなくなる。このため、特定の物理ブロックのみにデータの書き込み消去が集中するとその物理ブロックだけ早く寿命を迎えてしまうが、寿命となった1物理ブロックを避けてフラッシュメモリを使用することも考えられているが、一般的に1物理ブロックの寿命で当該フラッシュメモリが寿命となるという使用例も多い。
【0010】
この現象を回避するために、ウェアレベリングという手法が用いられている。ウェアレベリングにはいくつかの手法があるが、NAND型フラッシュメモリを使った記憶媒体では、メモリチップ外部からのアドレス信号をチップ内部的に異なるアドレスに変換して、各物理ブロックの書き込み消去回数が平準化するようにする手法が広く用いられている。
【0011】
例えば、データ固有の読み書き頻度情報と、前記不揮発性メインメモリの各領域の読み書き回数を含むメモリ使用情報と、前記不揮発性メインメモリのページサイズ、物理ブロックサイズ、記憶領域ごとの書き換え可能回数及び読み出し可能回数を含むメモリ固有情報とのうちの少なくとも一つに基づいて、ウェアレベリングを行うようにしたメモリ管理装置が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2010−66914号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、上記のメモリ管理装置では、処理が複雑であり、フラッシュメモリ制御のシステム起動時間が短い装置には不向きである。
【0014】
本発明はこのようなフラッシュメモリに関する現状に鑑みてなされたもので、その目的は、構成が簡単で短時間の処理でフラッシュメモリの全物理ブロックを均等に使用することができ、寿命を延ばすことが可能なフラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラムを提供することである。
【課題を解決するための手段】
【0015】
本発明に係るフラッシュメモリ制御装置は、複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置において、時刻情報を取り出し可能である計時手段と、計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定手段と、
前記決定手段により決定された物理ブロック番号に対応する物理ブロックについて
データ書き込みが可能であるか否かを検出し、データ書き込みが可能である物理ブロックである場合には、この物理ブロックから割り当てを行ってデータを書き込む一方、前記検出結果の物理ブロックがデータ書き込み不可能である場合には、この物理ブロックの物理ブロック番号を1づつ更新してデータ書き込みが可能である物理ブロックを得て、この物理ブロックから割り当てを行ってデータを書き込む処理手段とを具備することを特徴とする。
【0017】
本発明に係るフラッシュメモリ制御方法は、複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御方法において、時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出す時刻取出ステップと、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定ステップと、
前記決定ステップにより決定された物理ブロック番号に対応する物理ブロックについて
データ書き込みが可能であるか否かを検出し、データ書き込みが可能である物理ブロックである場合には、この物理ブロックから割り当てを行ってデータを書き込む一方、前記検出結果の物理ブロックがデータ書き込み不可能である場合には、この物理ブロックの物理ブロック番号を1づつ更新してデータ書き込みが可能である物理ブロックを得て、この物理ブロックから割り当てを行ってデータを書き込む処理ステップとを具備することを特徴とする。
【0019】
本発明に係るフラッシュメモリ制御用プログラムは、複数物理ブロックを有するフラッシュメモリの物理ブロック割り当てを制御するフラッシュメモリ制御装置に用いられるコンピュータを、時刻情報を取り出し可能である計時手段を参照し、該計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する決定手段、
前記決定手段により決定された物理ブロック番号に対応する物理ブロックについて
データ書き込みが可能であるか否かを検出し、データ書き込みが可能である物理ブロックである場合には、この物理ブロックから割り当てを行ってデータを書き込む一方、前記検出結果の物理ブロックがデータ書き込み不可能である場合には、この物理ブロックの物理ブロック番号を1づつ更新してデータ書き込みが可能である物理ブロックを得て、この物理ブロックから割り当てを行ってデータを書き込む処理手段として機能させることを特徴とする。
【発明の効果】
【0021】
本発明では、計時手段から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定し、決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込むので、構成が簡単で短時間の処理でフラッシュメモリの全物理ブロックを均等に使用することができ、寿命を延ばすことが可能となる。
【0022】
本発明では、決定された物理ブロック番号に対応する物理ブロックについて
データ書き込みが可能であるか否かを検出し、データ書き込みが可能である物理ブロックである場合には、この物理ブロックから割り当てを行ってデータを書き込む一方、前記検出結果の物理ブロックがデータ書き込み不可能である場合には、この物理ブロックの物理ブロック番号を1づつ更新してデータ書き込みが可能である物理ブロックを得て、この物理ブロックから割り当てを行ってデータを書き込むので、物理ブロックの使用状態に応じて適切な割り当てを行いながら、可能な限り全物理ブロックを均等に使用することができ、寿命を延ばすことが可能となる。
【図面の簡単な説明】
【0023】
【
図1】本発明の実施形態に係るフラッシュメモリ制御装置を採用するコンピュータシステムの要部物理ブロック図。
【
図2】本発明の実施形態に係るフラッシュメモリ制御装置による物理ブロック割り当ての手順を示す図。
【
図3】本発明の実施形態に係るフラッシュメモリ制御装置による物理ブロック割り当ての動作を示すフローチャート。
【
図4】フラッシュメモリの読み出しと消去による劣化特性のグラフを示す図。
【発明を実施するための形態】
【0024】
以下添付図面を参照して本発明に係るフラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラムの実施形態を説明する。
図1は、実施例に係るフラッシュメモリ制御装置を採用するコンピュータシステムの一部である。このシステムは、ソフトウェア1とハードウェア2とにより構成されている。ソフトウェア1はプログラムが記憶される主メモリ或いは外部記憶装置に格納されており、主メモリに呼び出されてプロセッサにより実行される。
【0025】
ソフトウェア1には、ドライバを呼び出してフラッシュメモリへの書込み或いは読み出しを要求するデータアクセスソフトウェア(アプリケーションプログラム)11と、フラッシュメモリ用ドライバソフトウェア(以下、ドライバ)12とが含まれている。ドライバ12は、フラッシュメモリを制御するソフトウェアであり、アプリケーションプログラムからの要求に応じてデータの書込み或いは読み出しを行う他に、本発明に係るフラッシュメモリ制御用プログラムの実施形態を構成し、フラッシュメモリの全物理ブロックを均等に使用することにより寿命を延ばす機能を有している。
【0026】
ハードウェア2は、ドライバ12を動作させると共に各部を統括制御するプロセッサ21を備えている。プロセッサ21には、時刻情報を取り出し可能である計時手段であるHW(ハードウェア)タイマ22、ドライバ12が動作する際に用いられる揮発性メモリ23、フラッシュメモリ25にアクセスするためのフラッシュメモリコントローラ24が接続されている。更に、フラッシュメモリコントローラ24には、制御対象であるフラッシュメモリ25が接続されている。
【0027】
ドライバ12は、決定手段31、処理手段32を備える。決定手段31は、計時手段であるHWタイマ22から時刻情報を取り出し、得られた時刻情報に基づく演算加工により割り当て開始する物理ブロック番号を決定する。処理手段32は、決定手段31により決定された物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込む。
【0028】
更に、処理手段は、決定手段により決定された物理ブロック番号に近い書き込み可能な物理ブロックからデータを書き込む。
【0029】
フラッシュメモリ25については、例えば、
図2に示すように、1〜nまでの複数物理ブロックが集合して構成されたものである。各物理ブロックは、図示しない複数ページにより構成されている。各物理ブロックには、物理ブロックを示す四角枠内に記載されている物理ブロック番号が付与されている。なお、
図2において、物理ブロックを示す四角枠内が白地である場合にはデータが書き込み可能であるものとし、#1〜#7の符号を付してある。また、物理ブロックを示す四角枠内がハッチングされた状態である場合にはデータの書き込みが不可能(例えば、全ページにデータ書き込み済など)なものとする。以上の通りに構成されたコンピュータシステムにおいては、ドライバ12が
図3に示される通りのフローチャートに対応するプログラムを実行することにより、各手段として動作するので、このフローチャートに基づき動作を説明する。
【0030】
所要時にフラッシュメモリ制御用プログラム(フラッシュメモリのデータ書き込みに係る制御システム)が起動されると、
図3のフローチャートがスタートとなり、HWタイマ22より時刻情報を取得する(S11)。次に、取得した時刻情報に基づき演算加工を行って、割り当て開始する物理ブロック番号を求める(S12)。演算加工としては、HWタイマ22が保持している時刻情報(ビット列)をXとして、フラッシュメモリの総物理ブロック数より十分大きな値となるように、上記の情報Xの値を冪乗の値(m回の冪乗では、X
m)を生成し、この冪乗の値を上記総物理ブロック数で除算して剰余を求め、この剰余を、割り当て開始する物理ブロック番号とする手法を挙げることができる。
【0031】
また、演算加工の他の手法としては、ある一定回数のシステム起動時の"HWタイマ22が保持している値"を全て乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
更に第3の手法として、フラッシュメモリ制御ソフトウェアがフラッシュメモリに不定期に保存する管理情報に、保存時点でのハードウェアタイマ値を含め、常時、管理情報にひとつ、もしくは複数の タイマ値を保持する。
そして、システム起動時に、"ハードウェアタイマが保持している値"と"管理情報に保持しているタイマ値"を乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
【0032】
更に第4の手法として、システム起動時に、"ハードウェアタイマが保持している値"と"フラッシュメモリ制御ソフトウェアが保持している各物理ブロックのイレーズカウント(消去回数)を全て加算した値"を乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
第5の手法として、システム起動時に、"ハードウェアタイマが保持している値"と"ハードウェア リアルタイムクロックが保持している値"を乗算し、使用しているフラッシュメモリの総物理ブロック数に対して十分大きな値を生成後、その値と総物理ブロック数の除算の剰余を求めることで行うことも可能である。
【0033】
上記ステップS12に続き、決定された割り当て開始する物理ブロック番号の物理ブロックに近い(アドレスが該当物理ブロックのアドレス以上の)書き込み可能な物理ブロックにデータ書き込みを行う(S13)。この場合、上書きを行うことができないために、データ書き込みがなされている物理ブロックについては1度消去を行ってデータ書き込みを行うことになる。
【0034】
ステップS12に示した物理ブロック番号決定から、データを書き込みまでの処理を
図2を参照して説明する。例1では、決定された物理ブロック番号が#3に対応する物理ブロック番号である場合を示す。この物理ブロック番号が#3に対応する物理ブロック番号の物理ブロックは、書き込み可能であるからこの物理ブロックからデータを書き込むことを示している。識別情報#3に対応する物理ブロック番号にデータを書き込むことを示している。
【0035】
また、例2では、決定された物理ブロック番号が「n−3」である場合を示す。この物理ブロック番号が「n−3」の物理ブロックは、ハッチングされており、書き込み不可であるから、物理ブロック番号を「1」大きくした物理ブロック番号「n−2」を次の割り当て対象とする。この物理ブロック番号「n−2」の物理ブロックは、書き込み可能であるからこの物理ブロックからデータを書き込むことを示している。
【0036】
また、例3では、決定された物理ブロック番号が「2」である場合を示す。この物理ブロック番号が「2」の物理ブロックは、ハッチングされており、書き込み不可であるから、物理ブロック番号を「1」大きくした物理ブロック番号「3」を次の割り当て対象とする。この物理ブロック番号「3」の物理ブロックも書き込み不可であるから物理ブロック番号「4」を次の割り当て対象とする。この物理ブロック番号「4」の物理ブロックは、書き込み可能であるからこの物理ブロックからデータを書き込むことを示している。
【0037】
このようにシステムの起動の度に、HWタイマ22から取得した時刻情報に基づき演算加工して割り当て開始する物理ブロック番号を求め、求めた物理ブロック番号に対応する物理ブロックから割り当てを行ってデータを書き込むので、構成が簡単で短時間の処理でフラッシュメモリの全物理ブロックを均等に使用することができ、寿命を延ばすことが可能となる。
【符号の説明】
【0038】
1 ソフトウェア
2 ハードウェア
11 データアクセスソフトウェア
12 ドライバ
21 プロセッサ
22 HWタイマ
23 揮発性メモリ
24 フラッシュメモリコントローラ
25 フラッシュメモリ
31 決定手段
32 処理手段