(57)【特許請求の範囲】
【請求項１】
ブロック単位での書き換えに書き換え回数に寿命の存在するフラッシュメモリを使用した記憶装置であって、
ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックのあつまりである代替領域とを備えるフラッシュメモリと、
ユーザ領域におけるホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を管理するアドレス変換テーブルと、
ホストシステムからユーザ領域のデータ書き換え命令に対して、当該データに該当する物理ブロックと代替領域中の物理ブロックとを交換するようにアドレス管理手段に指示するウェアレべリング制御部と、
当該記憶装置の記憶データを管理しているファイルシステムを用いて、ユーザ領域中でデータが格納されていない論理セクタを検出し、検出された当該論理セクタのアドレスをアドレス管理手段に指示し、当該論理セクタアドレスと物理セクタアドレスとの対応関係を解除するように指示する不使用セクタ検出手段と、
不使用セクタ検出手段から通知された情報に基づき、論理セクタアドレスと物理セクタアドレスとの対応関係を解除する不使用セクタ登録手段と、
フラッシュメモリの消去単位である物理ブロック中の全ての論理セクタアドレスと物理セクタアドレスとの対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する不使用ブロック代替化手段と
を有することを特徴とする記憶装置。
【請求項２】
請求項１の記憶装置において更に、
論理セクタアドレスと物理セクタアドレスとの対応関係を解除された論理セクタアドレスに対してホストシステムからリード命令が指示された場合には、特定のデータをホストシステムに返す不使用セクタデータ通知手段を有することを特徴とする請求項１記載の記憶装置。
【請求項３】
フラッシュメモリを使用した記憶装置とそのホストシステムからなる情報装置であって、
フラッシュメモリ内に、ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックの集まりである代替領域とを備え、
当該ホストシステム内に、当該記憶装置の記憶データを管理しているファイルシステムを用いて、ユーザ領域中でデータが格納されていない論理セクタを検出し、検出された当該論理セクタのアドレスから、当該論理セクタアドレスと物理セクタアドレスとの対応関係を解除するように指示する不使用セクタ検出通知手段を有し、
当該記憶装置内に、
不使用セクタ検出手段から通知された情報に基づき、論理セクタアドレスと物理セクタアドレスとの対応関係を解除する不使用セクタ登録手段と、
フラッシュメモリの消去単位である物理ブロック中の全ての論理セクタアドレスと物理セクタアドレスとの対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する不使用ブロック代替化手段とを有することを特徴とする情報装置。
【請求項４】
請求項３に記載の記憶装置において更に、
論理セクタアドレスと物理セクタアドレスとの対応関係を解除された論理セクタアドレスに対してホストシステムからリード命令が指示された場合には、特定のデータをホストシステムに返す不使用セクタデータ通知手段を記憶装置に有することを特徴とする請求項３記載の情報装置。
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、不揮発性半導体であるフラッシュメモリを記憶媒体とした記憶装置及びそれを搭載する情報機器に関するものである。
【背景技術】
【０００２】情報機器の記憶装置としてはハードディスク（以下ＨＤＤという）が最も一般的である。ＨＤＤでは書き込むファイルをセクタと呼ぶ記憶単位に分割し、記憶媒体の物理的な位置に対応させて記憶する。すなわちあるファイルの書き換えにおいては基本的に同一位置に書き込みが行われる。【０００３】ＨＤＤでは、ホストから指示されたセクタが磁気情報を読み取るヘッドが現在位置から離れている場合には、該当記憶エリアまでヘッドを移動させなければいけない（以下シークという）ので、このような場合にはリード／ライトのパフォーマンスが悪くなる。また、ヘッドの移動や磁気ディスクの回転という機械的機構を必要とするので装置の信頼性が劣るという欠点がある。【０００４】
これに対し半導体メモリ特に電気的に書き換えが可能な不揮発性メモリであるフラッシュメモリ特にＮＡＮＤ型フラッシュメモリを用いた記憶装置が近年脚光を浴びている。記憶媒体として半導体を使用しているので、機械的機構がなく信頼性に優れており、また、ＨＤＤのようにヘッドの移動という行為がないため、リード／ライトにおけるパフォーマンスの劣化が起き難いという特徴がある。
【０００５】しかし、ＮＡＮＤ型フラッシュメモリはブロックと呼ばれる単位で消去を行うが、このブロックにおいては消去書き込み回数の制限が存在し、通常各ブロックあたり１万回〜１０万回の消去書き込み回数しか保証されていない。そのためＮＡＮＤ型フラッシュメモリを用いた記憶装置を構築する場合、特定の物理ブロックに書き込みが集中しないような制御（一般に、ウェアレベリング制御とか分散化処理と呼ばれている。）を行っている【０００６】このウェアーレベリング制御の手法の一つとして、ＮＡＮＤ型フラッシュメモリ内にホストから指示されたデータを記憶しておくために使用する領域であるユーザ領域とウェアレベリング用に消去済みブロックとして確保されている代替領域とを用意しておき、ホストから書き換えを行わない物理アドレスのブロックは、そのまま放置しておき、書き換えを行う物理アドレスのブロックのみを書き換えを行う際に代替領域のブロックと交換することにより、ウェアーレベリング制御を行うようにした制御がある。【０００７】このようなウェアーレベリング制御を用いた技術が特許文献１〜４にも開示されている。【特許文献１】特開2005-209184
【特許文献２】特開2007-280329
【特許文献３】特開2007-293726
【特許文献４】特開2007-323159
【０００８】このようなウェアレベリング制御を用いた従来技術の概要を図１から図３に示す。図１は、全体構成図である。記憶装置１０は、ホスト通信部２、コマンド解析部３、バッファメモリ４、論理−物理アドレス変換部５、ウェアレべリング制御部６、ECC制御部７、Ｆｌａｓｈ  Ｒｅａｄ／Ｗｒｉｔｅ制御部８、ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ９からなる。ホスト通信部２は、ホスト１との通信を行い、一般にＩＤＥｉｆと呼ばれる仕様を有する。コマンド解析部３は、ホストから指令されたコマンドを解析し、その実行を制御する部分である。【０００９】バッファメモリ４は、ホストから送られたデータやホストへ送るデータを一時的に保持しておくための部分である。【００１０】論理−物理アドレス変換部５は、ホストからコマンドと共に指示される論理アドレスとＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ９の物理アドレスとの対応関係を示すＭＡＰテーブルを有している。【００１１】ウェアレべリング制御部８は、ホスト１からライト命令が来た場合に、どの物理アドレスを割り当てるかを決める機能を有している。【００１２】ＥＣＣ制御部７は、エラー訂正制御を行うものであり、ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ９にデータを書き込んだり、読み出したりする際に、ＥＣＣデータの計算を行い、ビットエラーが生じている場合に訂正可能な場合にはエラー訂正を行う機能を有している。【００１３】
図２は、NAND  Flash  Memoryの記憶エリアを明示的に図示したものである。ユーザデータ領域は、ホストから指示されたデータを記憶しておくブロック群からなる。不良ブロック領域は、NAND  Flash  の先天的若しくは後天的に発生した不良ブロック群である。
【００１４】コントローラ管理用領域は、NAND  Flash  Memoryを制御するコントローラが管理用にしようするための各種の情報を記憶しておく領域である。【００１５】
ウェアレベリング用代替領域は、ホストからデータの書き込み指示がされた場合に既存のユーザデータ領域のブロックと交換され、ホストから指示されたデータを新たに記憶するために使用されるブロック群である。
【００１６】ホスト１から記憶装置１０のデータをリードする場合は、ホスト通信部２がその指示を受け、コマンド解析部３がリード命令であることを解析し、論理−物理アドレス変換テーブルに従い、指示された論理アドレスセクタに対応する物理アドレスに変換する。コマンド解析部３は次にFlash  Read/Write  制御６を通じて、NAND  Flash  Memoryからデータをバッファメモリ４へ読み出し、ECC制御部７にてビットエラーが生じていないかどうかを確認する。ビットエラーが生じていない若しくは訂正可能な範囲であればビットエラーを訂正し、ホスト通信部２を通じてホストへデータを送ることで指示を完了する。【００１７】
ホスト１から記憶装置１０へデータをライトする場合は、ホスト通信部２がその指示を受け、コマンド解析部３がライト命令であることを解析し、ホストから受け取った書き込むデータをバッファメモリ４へ一旦書き込む。論理−物理アドレス変換テーブルに従い、指示された論理アドレスセクタに対応する物理アドレスを算出する。ウェアレベリング制御部６は、上記既存の物理アドレスに代わり上記論理アドレスに新たに対応する物理ブロックのアドレスをウェアレベリング用代替領域の中のブロック群から選定する。
【００１８】
次にコマンド解析部３は、Flash  Read/Write  制御部８を通じて、既存の物理アドレスの書き換えを行わないデータ部分を新たなブロックに対して、データコピーを行い、書き換えを行うデータ部分をバッファメモリ４からコピーする。なお、この際にECC制御部７により所定のECC演算が行われその結果も記憶される。最後に上記既存のデータの記憶された物理ブロックは消去され、ウェアレベリング用代替領域のブロック群として再利用される。
【００１９】図３は、上述の書き換え前と書き換え後のNAND  Flash  Memoryの物理ブロックの状態を示したものである。図の左側の状態が書き換え前の状態であり、セクタ０を書き換えた場合、新たに物理ブロック１が選択され、セクタ０のデータ及び物理ブロック０中の書き帰られないデータであるセクタ１〜セクタ２５５のデータが物理ブロック１に書き込まれ、その後物理ブロック０は消去される。
【発明の開示】
【発明が解決しようとする課題】
【００２０】しかし、上記制御のウェアレベリング用代替領域の物理ブロック数は、フラッシュメモリの発生しうる不良ブロックを代替できる程度の数、つまりフラッシュメモリの初期出荷時に発生うる最大不良ブロック数（約２％）と書き換え寿命を保証するために発生しうる最大不良ブロック数（約２％）とを足した約４％程度のブロック数であることがほとんどである。そのため、ホストから特定の論理アドレスへの書き込みが集中した場合には、この４％程度の代替領域の物理ブロック間でしかウェアレベリングが行われないため、装置寿命が早く来てしまうという課題がある。【００２１】本発明の目的は、ファイルシステム管理上使用していなユーザ領域の物理ブロックをウェアレベリング用代替領域として使用することににより、ウェアレベリング用代替領域のブロック数を実質的に増加させ、特定の論理アドレスへの書き込みが集中した場合にも、システムの書き換え回数の実効的な寿命を大幅に改善することが可能な記憶装置を提供することにある。
【課題を解決するための手段】
【００２２】本発明は、ホストシステムからファイルシステムを用いて記憶データの管理をされている記憶装置において、ファイルシステム管理上利用されていないデータが記憶されているフラッシュメモリの物理ブロックを消去状態にして、論理アドレスと物理アドレスとの対応関係を解除し、当該ブロックをウェアレベリング用に使用することを特徴とする。【００２３】
具体的には、一の発明として、ブロック単位での書き換えに書き換え回数に寿命の存在するフラッシュメモリを使用した記憶装置であって、ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックのあつまりである代替領域とを備えるフラッシュメモリと、ユーザ領域におけるホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を管理するアドレス変換テーブルと、ホストシステムからユーザ領域のデータ書き換え命令に対して、当該データに該当する物理ブロックと代替領域中の物理ブロックとを交換するようにアドレス管理手段に指示するウェアレべリング制御部と、当該記憶装置の記憶データを管理しているファイルシステムを用いて、ユーザ領域中でデータが格納されていない論理セクタを検出し、検出された当該論理セクタのアドレスをアドレス管理手段に指示し、当該論理セクタアドレスと物理セクタアドレスとの対応関係を解除するように指示する不使用セクタ検出手段と、不使用セクタ検出手段から通知された情報に基づき、論理セクタアドレスと物理セクタアドレスとの対応関係を解除する不使用セクタ登録手段と、フラッシュメモリの消去単位である物理ブロック中の全ての論理セクタアドレスと物理セクタアドレスとの対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する不使用ブロック代替化手段とを有することを特徴とする記憶装置である。
【００２４】
また、別の発明としては、フラッシュメモリを使用した記憶装置とそのホストシステムからなる情報装置であって、フラッシュメモリ内に、ホストシステムから指示されたデータを記憶しておくためのユーザ領域と、各ブロックは消去済み状態であり、各ブロックの書き換え回数を平均化するために使用されるブロックの集まりである代替領域とを備え、当該ホストシステム内に、当該記憶装置の記憶データを管理しているファイルシステムを用いて、ユーザ領域中でデータが格納されていない論理セクタを検出し、検出された当該論理セクタのアドレスから、当該論理セクタアドレスと物理セクタアドレスとの対応関係を解除するように指示する不使用セクタ検出通知手段を有し、当該記憶装置内に、不使用セクタ検出手段から通知された情報に基づき、論理セクタアドレスと物理セクタアドレスとの対応関係を解除する不使用セクタ登録手段と、フラッシュメモリの消去単位である物理ブロック中の全ての論理セクタアドレスと物理セクタアドレスとの対応関係が解除された物理ブロックを消去し代替領域のブロックとして使用可能化する不使用ブロック代替化手段とを有することを特徴とする情報装置である。
【発明の効果】
【００２５】以上述べたように本発明によれば、初期のウェアレベリング用代替領域を従来例のような全領域の４％程度しかない場合であっても、ファイルシステムが使用していない物理ブロックをウェアレベリング用代替領域化していくので、初期の４％よりも大きくとることができ、ウェアレベリングをより有効に行うことができるので、装置寿命を伸ばすことが可能である。【００２６】また、別の効果として、以下の効果もある。ファイルシステム上にてファイルを削除した場合、通常上記で述べたクラスタのチェイン情報のみを消去するのみであって、実体のデータ部分を消去していないため、従来では、専用のプログラムなどを使用すると消去したはずのファイルを復活することが可能であったため、廃棄パソコンからのデータ復旧による情報漏洩などの問題があった。そのため、ファイルの実体データを完全に消去するには、別途専用のプログラムを実行して消去を行う必要があった。本発明によれば、ファイルシステム上からファイルを消去することすなわちクラスタのチェイン情報を消去するのみでも、ファイルの実体データが記憶されている物理ブロックは使用されていない物理ブロックとなり消去されるので、専用のプログラムを実行しなくてもファイルの実体データまで消去できるという効果もある。
【発明を実施するための最良の形態】
【００２７】以下、本発明の実施形態を図面に関連付けて説明する。図４は本発明の記憶装置の一実施例の構成図である。ホスト１及び記憶装置１０内の不使用セクタ検出手段１０１、不使用セクタ登録手段１０２、不使用ブロック代替化手段１０３以外は、従来例図１で示したものと同じである。また、ホスト１からのリード／ライト時の動作も従来例で示したものと同じである。【００２８】不使用セクタ検出手段１０１は、NAND  Flash  Memory９におけるユーザデータ領域内の実質使用されていないセクタを検出するものである。不使用セクタ登録手段１０２は、不使用セクタ検出手段１０１により検出された不使用セクタの情報を保持しておくものである。【００２９】不使用ブロック代替化手段１０３は、不使用セクタ登録手段１０２に保持された情報からNAND  Flash  Memory９の該当物理ブロックの全領域が該当している場合に、その物理ブロックを消去し、ウェアレベリング用代替ブロックとして使用可能な状態にする機能を有する。【００３０】次に、ホスト１のオペレーティングシステム（以下OSと言う。）にての管理方法について説明するとともに、不使用セクタ検出手段１０１が不使用セクタを検出する方法について説明する。【００３１】図５は、記憶装置の管理によく使用されるフォーマット形式であるFATフォーマットを行った場合の論理アドレスとその内容の関係を示した図である。ここでLBAは論理アドレスのことであり、LBA０から開始される。【００３２】図６は、このLBA０であるMBRの詳細を示した図である。アドレス１BDｈから１６BYTEごとに各パーティションの情報が記載される。この１６BYTEの中のオフセット０４ｈにフォーマット形式に関する情報が、オフセット０８ｈに各パーティションの開始位置であるBPBのアドレス情報が記憶される。【００３３】図７は、パーティションの開始セクタであるBPBの詳細を示した図である。０Dhバイト目にOSが管理する単位であるクラスタのサイズの情報があり、また、FATテーブルのサイズや個数、ルートディレクトリのサイズ情報が記憶されている。【００３４】図８はFATテーブルの最初のセクタの詳細を示した図である。周知のように、FATテーブルは、クラスタのチェーン情報のみからなる。【００３５】図９はディレクトリ情報の詳細を示した図である。ディレクトリ情報は、３２バイトからなり、オフセット１Ahに実体データが記憶されているスタートクラスタの情報が記憶されている。以上のように、上記各情報を解析すれば、使用されていないクラスタすなわち使用されていない論理アドレスセクタ（LBA）が分かるので、不使用セクタ検出手段１０１は、使用されていないLBAを検出することができる。【００３６】図１０は、上記のようにして不使用セクタを検出した場合のNAND  Flash  Memoryの物理ブロックの状態を示した図である。図中左側の図は、本発明を実施する前の状態である。上記にて示したように、本例では、最初のクラスタであるクラスタ０ｘ０００２はLBA５９９から始まり、クラスタサイズは０ｘ２０（３２セクタ）である。図８のFATテーブルで示されているように、本例では、クラスタ０ｘ００１C（２８）までデータが記憶され、それ以外のクラスタにはデータがない状態となっている。ここで、クラスタ０ｘ００１C（２８）はLBA  〜LBA１４��２となる。本発明を実施すると図中の右側のように、使用していない論理セクタのみからなる物理ブロックは消去済み状態となり、消去済み物理ブロックは格段に増える。【００３７】図１１は、別の実施例を示したものである。不使用セクタデータ通知手段１０４以外は、上述の実施例と同じである。不使用セクタ検出手段１０１で検出され、論理セクタアドレスと物理セクタアドレスとの対応関係が解除された論理セクタに対してホスト１がリード命令を発行する場合も想定されるが、不使用セクタデータ通知手段１０４は、このような物理セクタアドレスが解除された論理セクタアドレスに対してリード命令が発行された場合に、ダミーデータ（例えば全てFFｈのデータ）を返すようにする機能を有する。このようにすれば、物理セクタアドレスとの対応がとられている／いないに関係なく、全論理セクタ中のどの論理セクタに対してリード命令が発行されてもデータをホストに返すことができる。【００３８】図１２は、さらに別の実施例を示したものである。本実施例では、ホスト１が不使用セクタ検出通知手段１０５を有し、記憶装置１０は上述した不使用セクタ検出手段１０１を有していない。不使用セクタ検出通知手段１０５が検出する不使用セクタは、上述と同じ方法で検出し、検出した不使用セクタ情報を記憶装置１０に通知する。記憶装置１０は、ホスト１から不使用セクタ情報を受け取り、その後上述したのと同様に不使用セクタ登録手段１０２にて、不使用セクタ情報を保持し、不使用ブロック代替化手段１０３において、その情報からNAND  Flash  Memory９の該当物理ブロックの全領域が該当している場合に、その物理ブロックを消去し、ウェアレベリング用代替ブロックとして使用可能な状態にする。このようにホスト１と記憶装置１０とで機能を分担することにより、記憶装置１０の負担を軽くしたり、種々のファイルシステムに容易に対応することが可能となる。【００３９】図１３は、さらに別の実施例を示したものである。不使用セクタデータ通知手段１０４以外は、図１２で説明したものと同じである。不使用セクタデータ通知手段１０４は、図１１で説明したように、論理セクタアドレスと物理セクタアドレスとの対応関係が解除された論理セクタに対してホスト１がリード命令を発行する場合も想定されるが、不使用セクタデータ通知手段１０４は、このような物理セクタアドレスが解除された論理セクタアドレスに対してリード命令が発行された場合に、ダミーデータ（例えば全てFFｈのデータ）を返すようにする機能を有する。このようにすれば、物理セクタアドレスとの対応がとられている／いないに関係なく、全論理セクタ中のどの論理セクタに対してリード命令が発行されてもデータをホストに返すことができる。
【産業上の利用可能性】
【００４０】コンピュータ関連産業において利用できるものである。
【図面の簡単な説明】
【００４１】
【図１】従来例を示した図
【図２】NAND  Flash  Memory  への記憶状態を示す概略図
【図３】NAND  Flash  Memory  への物理ブロックでの記憶状態を示す図
【図４】本発明の一実施例を示した図
【図５】FATファイルシステムの概略を説明した図
【図６】FATファイルシステムのMBPを説明した図
【図７】FATファイルシステムのBPBを説明した図
【図８】FATファイルシステムのFAT   Tableを説明した図
【図９】FATファイルシステムのディレクトリ情報を説明した図
【図１０】本発明を実施した場合のNAND  Flash  Memory  への物理ブロックでの記憶状態を示す図
【図１１】本発明の別の実施例を示した図
【図１２】本発明の別の実施例を示した図
【図１３】本発明の別の実施例を示した図
【符号の説明】
【００４２】    １  ホスト    ２  ホスト通信制御部    ３  コマンド解析部    ４  バッファメモリ    ５  論理−物理アドレス変換テーブル    ６  ウェアレベリング制御部    ７  ECC制御部    ８  Flash  Read／Write  制御部    ９  NAND  Flash  Memory  １０  記憶装置１０１  不使用セクタ検出手段１０２  不使用セクタ登録手段１０３  不使用ブロック代替化手段１０４  不使用セクタデータ通知手段１０５  不使用セクタ検出手段
【要約】 【課題】書き換え寿命の制限があるフラッシュメモリを使用した記憶装置において、システムの書き換え回数の実効的な寿命を大幅に改善することが可能なシステムを提供する。【解決手段】ファイルシステムとしては使用されていないデータが蓄積されているセクタの論理アドレス（ＬＢＡ）を検出し、該論理アドレスに対応する物理アドレス（ＰＢＡ）のマッピング情報を解除し、フラッシュメモリの各ブロックにおいて、全ての論理アドレスと物理アドレスのマッピング情報が解除されたブロックは、消去を行いウェアレベリング用代替ブロックとして使用する。【選択図】  図４【図１】
0004164118.tif 000002
【図２】
0004164118.tif 000003
【図３】
0004164118.tif 000004
【図４】
0004164118.tif 000005
【図５】
0004164118.tif 000006
【図６】
0004164118.tif 000007
【図７】
0004164118.tif 000008
【図８】
0004164118.tif 000009
【図９】
0004164118.tif 000010
【図１０】
0004164118.tif 000011
【図１１】
0004164118.tif 000012
【図１２】
0004164118.tif 000013
【図１３】
0004164118.tif 000014