(57)【要約】【課題】  ファイル・データ・ブロックのデータとキャッシュ・ブロックの最新のデータとのマージ処理を高速化することのできるデータ記憶装置およびその制御方法を提供する。【解決手段】  キャッシュ・ブロックとして使用されている論理ブロックＰに同一のＦＤ Ｉｎｄｅｘのデータが重複して書き込まれているかどうかを判断し、重複して書き込まれていない場合、ファイル・データ・ブロックとして使用されている論理ブロックＭのデータのうち、キャッシュ・ブロックとして使用されている論理ブロックＰに書き込まれたＦＤ Ｉｎｄｅｘ以外のデータを論理ブロックＰにコピーして、論理ブロックＰをファイル・データ・ブロックに変更し、論理ブロックＭのデータを消去してキャッシュ・ブロックを解放する。【選択図】  図７
2008299513.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性半導体メモリの消去単位を物理ブロックとして、複数の物理ブロックを論理ブロックとして管理し、前記論理ブロックは所定数のセクタを組み合わせた論理ページの単位で分割されたデータ記憶装置であって、
第１の論理ブロックをファイル・データ・ブロックとして設定してデータを書き込み、前記ファイル・データ・ブロックに書き込まれたデータを書き換えるとき、第２の論理ブロックをキャッシュ・ブロックとして設定して書き換えデータを書き込み、前記第２の論理ブロックに同一アドレスのデータの重複が存在するかどうかを判断し、重複が存在しない場合、前記第１の論理ブロックのデータのうち前記第２の論理ブロックに書き込まれたアドレス以外のデータを前記第２の論理ブロックにコピーして前記第２の論理ブロックを前記ファイル・データ・ブロックとするように制御を行う制御部を有することを特徴とするデータ記憶装置。
【請求項２】
請求項１記載のデータ記憶装置であって、
前記制御部は、別のファイル・データ・ブロックとして設定された第３の論理ブロックに書き込まれたデータに対する書き換え命令が発生した時、前記第２の論理ブロックに同一アドレスのデータの重複が存在するかどうかを判断し、重複が存在しない場合、前記第１の論理ブロックのデータのうち前記第２の論理ブロックに書き込まれたアドレス以外のデータを前記第２の論理ブロックにコピーして前記第２の論理ブロックを前記ファイル・データ・ブロックとするように制御を行い、前記第２の論理ブロックのデータを消去するように制御を行うことを特徴とするデータ記憶装置。
【請求項３】
不揮発性半導体メモリの消去単位を物理ブロックとして、複数の物理ブロックを論理ブロックとして管理し、前記論理ブロックは所定数のセクタを組み合わせた論理ページの単位で分割されたデータ記憶装置の制御方法であって、
第１の論理ブロックをファイル・データ・ブロックとして設定してデータを書き込むステップと、
前記ファイル・データ・ブロックに書き込まれたデータを書き換えるとき、第２の論理ブロックをキャッシュ・ブロックとして設定して書き換えデータを書き込むステップと、  前記第２の論理ブロックに同一アドレスのデータの重複が存在するかどうかを判断し、重複が存在しない場合、前記第１の論理ブロックのデータのうち前記第２の論理ブロックに書き込まれたアドレス以外のデータを前記第２の論理ブロックにコピーして前記第２の論理ブロックを前記ファイル・データ・ブロックに設定するマージステップと
を具備することを特徴とするデータ記憶装置の制御方法。
【請求項４】
請求項３記載のデータ記憶装置の制御方法であって、
前記マージステップは、別のファイル・データ・ブロックとして設定された第３の論理ブロックに書き込まれたデータに対する書き換え命令が発生した時、前記第２の論理ブロックに同一アドレスのデータの重複が存在するかどうかを判断し、重複が存在しない場合、前記第１の論理ブロックのデータのうち前記第２の論理ブロックに書き込まれたアドレス以外のデータを前記第２の論理ブロックにコピーして前記第２の論理ブロックを前記ファイル・データ・ブロックとするように制御を行い、前記第２の論理ブロックのデータを消去することを特徴とするデータ記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶装置およびその制御方法に関するものである。
【背景技術】
【０００２】
従来から、ＮＡＮＤ型の不揮発性半導体メモリ（フラッシュメモリ）を主たる記憶媒体とし、例えばＰＣ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ）や携帯電話機、携帯型ＡＶ（Ａｕｄｉｏ／Ｖｉｄｅｏ）機器等のホスト装置に着脱自在な可搬性のデータ記憶装置（いわゆるデータ記憶装置）が知られている。このデータ記憶装置においては、例えばＦＡＴ（Ｆｉｌｅ Ａｌｌｏｃａｔｉｏｎ Ｔａｂｌｅｓ）ファイルシステム等のホスト装置側のファイル管理システムによってデータの書き込み及び読み出しの管理が行われる。また、データ記憶装置内部では、不揮発性半導体メモリ内の物理領域は複数の物理ブロックに分割され、当該物理ブロックがデータの消去単位となっている。また、物理ブロックはさらに複数の物理ページに分割され、当該ページがデータの書き込み及び読み出し単位となっている（特許文献１参照）。
【特許文献１】特開２００３−３０８２４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
データ記憶装置内で複数の物理ブロックを論理ブロックとして管理してデータの読み出しおよび書き込みを行うとき、論理ブロックはホストデータを書き込むためにファイル・データ・ブロックとして使用される場合と、ファイル・データ・ブロックに対して書き込みが行えない場合の、書き換え用のデータの一時書き込み用領域であるキャッシュ・ブロックとして使用される場合とがある。
【０００４】
あるファイル・データ・ブロックでキャッシュ・ブロックを使用しているとき、別のファイル・データ・ブロックに書き込まれているデータに対する書き換えのためにキャッシュ・ブロックを使用したい場合には、ファイル・データ・ブロックのデータとキャッシュ・ブロックのデータとのマージ処理を行う。これにより、キャッシュ・ブロックは不要になるので、キャッシュ・ブロックを解放して、別のファイル・データ・ブロックに割り当てる。
【０００５】
ファイル・データ・ブロックに書き込まれるアドレス範囲は論理ページ単位で分割してＦＤ Ｉｎｄｅｘと呼ばれるアドレッシングで管理される。ファイル・データ・ブロックには同じＦＤ Ｉｎｄｅｘが複数存在することは許されず、もし同じＦＤ Ｉｎｄｅｘを書き込む必要がある場合はキャッシュ・ブロックを取得して、キャッシュ・ブロックへの書き込みが行われる。
【０００６】
しかしながら、この方式では、ファイル・データ・ブロックのデータとキャッシュ・ブロックの最新のデータとをマージする際に、論理ブロック内の論理ページの数だけ新規の論理ブロックへのコピー処理が発生してしまい、マージ処理の速度が非常に遅くなってしまう。
【０００７】
本発明は、かかる実情に鑑み、ファイル・データ・ブロックのデータとキャッシュ・ブロックの最新のデータとのマージ処理を高速化することのできるデータ記憶装置およびその制御方法を提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明のデータ記憶装置は、不揮発性半導体メモリの消去単位を物理ブロックとして、複数の物理ブロックを論理ブロックとして管理し、前記論理ブロックは所定数のセクタを組み合わせた論理ページの単位で分割されたデータ記憶装置であって、第１の論理ブロックをファイル・データ・ブロックとして設定してデータを書き込み、前記ファイル・データ・ブロックに書き込まれたデータを書き換えるとき、第２の論理ブロックをキャッシュ・ブロックとして設定して書き換えデータを書き込み、別のファイル・データ・ブロックとして設定された第３の論理ブロックに書き込まれているデータの書き換えを可能にするために、前記第２の論理ブロックに同一アドレスのデータの重複が存在するかどうかを判断し、重複が存在しない場合、前記第１の論理ブロックのデータのうち前記第２の論理ブロックに書き込まれたアドレス以外のデータを前記第２の論理ブロックにコピーして前記第２の論理ブロックを前記ファイル・データ・ブロックとするように制御を行う制御部を有することを特徴とする。
【０００９】
また、本発明のデータ記憶装置において、前記制御部は、別のファイル・データ・ブロックとして設定された第３の論理ブロックに書き込まれたデータに対する書き換え命令が発生した時、前記第２の論理ブロックに同一アドレスのデータの重複が存在するかどうかを判断し、重複が存在しない場合、前記第１の論理ブロックのデータのうち前記第２の論理ブロックに書き込まれたアドレス以外のデータを前記第２の論理ブロックにコピーして前記第２の論理ブロックを前記ファイル・データ・ブロックとするように制御を行い、前記第２の論理ブロックのデータを消去するように制御を行うこととしてもよい。
【００１０】
本発明のデータ記憶装置によれば、マージ処理のためのコピー回数を、ファイル・データ・ブロックとして使用されている論理ブロックのデータのうち、キャッシュ・ブロックとして使用されている論理ブロックに書き込まれたアドレス以外のデータの個数だけで済むので、マージ処理を高速に行うことができる。
【発明の効果】
【００１１】
本発明のデータ記憶装置およびその制御方法によれば、ファイル・データ・ブロックのデータとキャッシュ・ブロックの最新のデータとのマージ処理を高速化することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面に基づき説明する。  
【００１３】
図１は本発明の一実施形態に係るデータ記憶装置の構成を示すブロック図である。
【００１４】
同図に示すように、データ記憶装置１０は、不揮発性半導体メモリ１、制御部としてのプロセッサ２、内部ＲＡＭ３、バッファＲＡＭ４、及びインターフェース部５を有する。データ記憶装置１０は、例えばカード状の形態のいわゆるデータ記憶装置であり、ＰＣやディジタルカメラ等のホスト装置（図示を省略）に対して抜き差し可能なリムーバブルメモリとして用いられる。
【００１５】
不揮発性半導体メモリ１は、複数のマルチレベルセルにより構成され、例えば各セルが４値（２ビット）を記憶するＮＡＮＤフラッシュメモリである。
【００１６】
プロセッサ２は、データ記憶装置１０の各ブロックを統括的に制御しながら、内部ＲＡＭ３またはバッファＲＡＭ４と不揮発性半導体メモリ１との間でデータ転送を行い、データの読み出し、書き込み及び消去を行う。
【００１７】
内部ＲＡＭ３は、プロセッサ２の作業用の記憶領域として用いられ、例えば、ホスト装置から転送されるプロセッサ２に対する動作制御コマンドや、当該コントロールコマンドを実行する際に必要な諸処のパラメータ、データ記憶装置１０内の内部状態等を一時的に記憶する。また内部ＲＡＭ３は、不揮発性半導体メモリ１から読み出されたデータを再度不揮発性半導体メモリ１へ書き込む際に、当該書き込みデータを一旦蓄える。
【００１８】
バッファＲＡＭ４は、いわゆるページバッファとして機能し、インターフェース部５を介してホスト装置側から転送された書き込みデータを一旦蓄えると共に、不揮発性半導体メモリ１から読み出されインターフェース部５を介してホスト装置側に転送されるデータを一旦蓄える。
【００１９】
インターフェース部５は、ホスト装置のホストインターフェース部１１との間のインターフェースを取るためのものである。インターフェース部５は、例えば、シリアルプロトコルにより３本の信号線を用いてデータ転送を行うシリアルインターフェースと、パラレルプロトコルにより６本の信号線を用いてデータ転送を行うパラレルインターフェースとを有する。
【００２０】
図２は不揮発性半導体メモリ１における物理ブロック、論理ブロック、および論理ページ及び、ＦＤ Ｉｎｄｅｘの関係を説明する図である。
【００２１】
不揮発性半導体メモリ１の記憶領域は消去単位である複数の物理ブロック２１からなる。物理ブロック２１は、データの読み出し単位である複数の物理ページ２２からなる。論理ブロック３１は複数の物理ページ３２を論理的に１つのブロックとして管理する単位である。不揮発性半導体メモリ１のメモリ領域を５１２バイトに区切った単位をセクタを呼び、論理ページ３２は論理ブロック３１を複数のセクタ単位で分割した単位である。ＦＤ Ｉｎｄｅｘは、論理ブロック３１が持つ、ホスト装置から見たときのアドレス範囲を論理ページ３１単位に分割してそれぞれのアドレス範囲に順番に番号を付けたものである。論理ブロック３１をファイル・データ・ブロックとして使用する場合、論理ブロック３１には一つのファイルのみのデータが書き込まれる。
【００２２】
図３は論理ブロックに割り当てられるホスト装置から見たときのアドレス範囲を０〜２０４７とし、論理ページのセクタ数を４としたこの場合の、ＦＤ Ｉｎｄｅｘとホストから見たアドレス範囲との関係の例を示している。この例では、ＦＤ Ｉｎｄｅｘ １はホストから見たときのアドレス０〜３の範囲に相当し、ＦＤ Ｉｎｄｅｘ １はホストから見たときのアドレス４〜７の範囲に相当し、ＦＤ Ｉｎｄｅｘ ２はホストから見たときのアドレス８〜１１の範囲に相当する。
【００２３】
次に、このデータ記憶装置においてファイル・データ・ブロックにファイルのデータを書き込む時の動作を説明する。
【００２４】
図４はホスト装置から見て８〜１５のアドレスについてのデータをファイル・データ・ブロックに書き込みときの動作の例を示す図である。ファイル・データ・ブロックとして設けられた論理ブロックＭに対して、ホスト装置から見て８〜１５のアドレスについて書き込み命令が発行された場合、プロセッサ２は、論理ブロックＭの先頭の論理ページにＦＤ Ｉｎｄｅｘ ２のデータを書き込み、次の論理ページにＦＤ Ｉｎｄｅｘ ３のデータを書き込むように制御を行う。
【００２５】
図５はホスト装置から再度８〜１５のアドレスについてデータを書き込むときの動作を示す図である。この場合、プロセッサ２は、ファイル・データ・ブロックとして設定された論理ブロックＭの８〜１５のアドレスに既にデータが書き込まれていることを判断して、別の論理ブロックＰを論理ブロックＭに対するキャッシュ・ブロックとして割り当てる。そして、プロセッサ２は、このキャッシュ・ブロックの先頭の論理ページから順に、ホスト装置からのＦＤ Ｉｎｄｅｘ ２、ＦＤ Ｉｎｄｅｘ ３のデータを書き込むように制御を行う。
【００２６】
次に、上記のように論理ブロックＰが論理ブロックＭに対するキャッシュ・ブロックとして割り当てられているときに、別のファイル・データ・ブロックとして設定された別の論理ブロックに書き込まれているデータに対する書き換え命令が発生したことを契機として行われる、ファイル・データ・ブロックとキャッシュ・ブロックのマージ処理について説明する。
【００２７】
図６はこのマージ処理の動作を示すフローチャートである。図７および図８はこのマージ処理の具体例を示す図である。
【００２８】
まず、プロセッサ２は、キャッシュ・ブロックとして設定されている論理ブロックＰに書き込まれているＦＤ Ｉｎｄｅｘを確認して（ステップＳ１０１）、同一のＦＤ Ｉｎｄｅｘのデータが重複して書き込まれているかどうかを判断する（ステップＳ１０２）。図７の例では、キャッシュ・ブロックとして使用されている論理ブロックＰに同一のＦＤ Ｉｎｄｅｘのデータが重複して書き込まれていない場合を示し、一方、図８の例では、論理ブロックＰに同一のＦＤ Ｉｎｄｅｘのデータが重複して書き込まれている場合を示している。
【００２９】
キャッシュ・ブロックとして使用されている論理ブロックＰに同一のＦＤ Ｉｎｄｅｘのデータが重複して書き込まれていない場合、プロセッサ２は、ファイル・データ・ブロックとして使用されている論理ブロックＭのデータのうち、キャッシュ・ブロックとして使用されている論理ブロックＰに書き込まれたＦＤ Ｉｎｄｅｘ以外のデータを論理ブロックＰにコピーして（ステップＳ１０３）、論理ブロックＰをファイル・データ・ブロックに変更し、論理ブロックＭのデータを消去する（ステップＳ１０４）。
【００３０】
これにより、キャッシュ・ブロックが解放されたので、プロセッサ２は、新たに別の論理ブロックを取得し、これを、データの書き換えが行われようとしている別の論理ブロックのキャッシュ・ブロックとして割り当てる。この場合、マージ処理のためのコピー回数は、ファイル・データ・ブロックとして使用されている論理ブロックＭのデータのうち、キャッシュ・ブロックとして使用されている論理ブロックＰに書き込まれたＦＤ Ｉｎｄｅｘ以外のデータの個数だけで済む。例えば、図７の例では、論理ブロックＭに書き込まれているＦＤ Ｉｎｄｅｘ ０とＦＤ Ｉｎｄｅｘ １の２つのデータを論理ブロックＰにコピーするだけでマージ処理が完了する。これにより、高速なマージ処理が実現される。
【００３１】
一方、ステップＳ１０２の判断で、キャッシュ・ブロックとして使用されている論理ブロックＰに同一のＦＤ Ｉｎｄｅｘのデータが重複して書き込まれている場合には、次のような方法でマージ処理が行われる。すなわち、プロセッサ２は、図８に示すように、新規に論理ブロックＱを取得し、この論理ブロックＱに、キャッシュ・ブロックとして設定されている論理ブロックＰ内の有効な書き換えデータをコピーするとともに、ファイル・データ・ブロックとして設定された論理ブロックＭに書き込まれたデータのうち、論理ブロックＰ内の有効な書き換えデータのＦＤ Ｉｎｄｅｘ以外のデータをコピーする（ステップＳ１０５）。この後、プロセッサ２は、論理ブロックＱを新たなファイル・データ・ブロックとして設定し、論理ブロックＭおよび論理ブロックＰのデータを消去する（ステップ１０６）。これにより、キャッシュ・ブロックが解放されるので、プロセッサ２は、新たに別の論理ブロックを取得し、これを、データの書き換えが行われようとしている別の論理ブロックのキャッシュ・ブロックとして割り当てる。
【００３２】
従来のマージ処理方式では、ファイル・データ・ブロックのデータとキャッシュ・ブロックの最新のデータとをマージする際に、論理ブロック内の論理ページの数だけ新規の論理ブロックへのコピー処理が発生してしまうためにマージ処理に時間がかかってしまうのに対し、この実施の形態のデータ記憶装置によれば、マージ処理に必要な物理ページ単位でのコピー処理の回数を大幅に減らすことができ、マージ処理に要する時間を大幅に短縮することができる。
【００３３】
特に、ＦＡＴファイルシステムによって不揮発性半導体メモリ１に対するデータの書き込み及び読み出しの管理が行われる場合、サブディレクトリエントリが書き込まれる論理ブロックには同じＦＤ Ｉｎｄｅｘが複数回書き込まれることが予想される。この場合、本実施形態で説明したマージ処理方式を採用することによって、格段にマージ処理にかかる時間を短縮することができる。具体的な例として、論理ブロック内のＦＤ Ｉｎｄｅｘの数が５１２であるとき、サブディレクトリエントリに使用するＦＤ Ｉｎｄｅｘの数が４つだったとすると、一般的なマージ処理方式では５１２回のコピー処理が発生するが、本実施形態で説明したマージ処理方式によると４回のコピー処理を行うことでマージ処理が終了する。
【００３４】
尚、本発明のデータ記憶装置およびその制御方法は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に係るデータ記憶装置の構成を示すブロック図である。
【図２】不揮発性半導体メモリにおける物理ブロック、論理ブロック、および論理ページ及び、ＦＤ Ｉｎｄｅｘの関係を説明する図である。
【図３】ＦＤ Ｉｎｄｅｘとホストから見たアドレス範囲との関係の例を示す図である。
【図４】ファイル・データ・ブロックへのデータの書き込み動作の例を示す図である。
【図５】ファイル・データ・ブロックのデータを書き換える動作の例を示す図である。
【図６】本発明にかかるマージ処理の動作を示すフローチャートである。
【図７】本発明にかかるマージ処理の具体例を示す図である。
【図８】マージ処理の他の具体例を示す図である。
【符号の説明】
【００３６】
１    不揮発性半導体メモリ
２    プロセッサ
３    内部ＲＡＭ
４    バッファＲＡＭ
５    インターフェース部
１０    データ記憶装置
２１    物理ブロック
２２    物理ページ
３１    論理ブロック
３２    論理ページ
【図１】
2008299513.tif 000003
【図２】
2008299513.tif 000004
【図３】
2008299513.tif 000005
【図４】
2008299513.tif 000006
【図５】
2008299513.tif 000007
【図６】
2008299513.tif 000008
【図７】
2008299513.tif 000009
【図８】
2008299513.tif 000010