(57)【要約】【課題】不揮発性半導体メモリのデータに読み出し及び書き込みを行う際の処理速度を向上させることが可能なデータ記憶装置及びデータ管理方法を提供すること。【解決手段】データ記憶装置１０の不揮発性半導体メモリ１はデータの消去単位である複数の物理ブロックに分割され、当該各物理ブロック２１は、それぞれ冗長エリア２３を有する複数の物理ページ２２に分割されている。各物理ページ２２の冗長エリア２３には、当該各物理ページ２２に書き込まれているデータに対応する論理ページ番号と、当該論理ページに連続する他の論理ページの数を示すページチェーン数とが記憶される。ホスト機器は当該冗長エリア２３のページチェーン数を読み出すことで、他の連続する論理ページが書き込まれた物理ページの冗長エリアの読み出しを省略できるため、各論理ページが格納された物理ページの情報を取得する際の処理速度を格段に向上させることができる。【選択図】  図８
2008299456.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に着脱自在なデータ記憶装置であって、
前記データの消去単位である複数の物理ブロックに分割され、かつ、前記各物理ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数の連続番号を付された物理ページに分割され、少なくとも１つの物理ブロック及び物理ページがそれぞれ前記ホスト機器の論理空間上の任意の１つの論理ブロック及び論理ページに割り当てられた不揮発性の半導体メモリと、
前記各物理ページの各冗長領域に、当該各物理ページに対応する第１の論理ページを示す対応論理ページ情報と、当該第１の論理ページと連続関係を有する第２の論理ページの数を示す連続論理ページ数情報とを記憶するよう制御する制御手段と
を具備することを特徴とするデータ記憶装置。
【請求項２】
請求項１に記載のデータ記憶装置であって、
前記制御手段は、前記データの書き込み対象の第１の物理ページの直前の第２の物理ページの前記冗長領域に記憶された前記対応論理ページ情報を参照することで前記第１の物理ページの前記冗長領域に前記連続論理ページ情報を記憶するよう制御することを特徴とするデータ記憶装置。
【請求項３】
データの消去単位である複数の物理ブロックに分割され、かつ、前記各物理ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数の連続番号を付された物理ページに分割され、少なくとも１つの物理ブロック及び物理ページがそれぞれ前記ホスト機器の論理空間上の任意の１つの論理ブロック及び論理ページに割り当てられた不揮発性の半導体メモリを有し、ホスト機器に着脱自在なデータ記憶装置におけるデータ管理方法であって、
前記各物理ページの各冗長領域に、当該各物理ページに対応する第１の論理ページを示す対応論理ページ情報と、当該第１の論理ページと連続関係を有する第２の論理ページの数を示す連続論理ページ数情報とを記憶し、
前記記憶された対応論理ページ情報及び連続論理ページ数情報を基に、前記物理ページのアドレスと前記論理ページのアドレスとの対応関係を示す情報を生成する
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリを記憶媒体とし、ホスト機器に着脱自在なデータ記憶装置及びこのデータ記憶装置におけるデータ管理方法に関する。
【背景技術】
【０００２】
従来から、ＮＡＮＤ型の不揮発性半導体メモリ（フラッシュメモリ）を主たる記憶媒体とし、例えばＰＣ（Personal Computer）や携帯電話機、携帯型ＡＶ（Audio/Video）機器等のホスト機器に着脱自在な可搬性のデータ記憶装置（いわゆるメモリカード）が知られている。このメモリカード内部では、不揮発性半導体メモリ内の物理領域は複数の物理ブロックに分割され、当該物理ブロックがデータの消去単位となっている。また、物理ブロックはさらに複数の物理ページに分割され、当該物理ページがデータの書き込み及び読み出し単位となっている。
【０００３】
一方、ホスト機器側は、例えばＦＡＴ（File Allocation Tables）ファイルシステム等、上記メモリカードのデータ管理システムとは異なるファイル管理システムによって、各種データを管理している。この異なるシステムを対応させるため、ホスト機器側は、上記不揮発性半導体メモリの１つまたは複数の物理ブロックを１つの論理ブロックとして捉え、メモリカードへのデータの書き込み及び読み出しの管理を行う。各論理ブロックは上記物理ブロックの各ページのサイズに対応した複数の論理ページに分割される。
【０００４】
この論理ブロックと物理ブロックとの対応関係及び論理ページと物理ページとの対応関係を管理する手法の一つとして、各物理ページの各冗長エリアに、論理ページのアドレスを書き込むことが考えられる。しかしながら、論理ブロック内の全ての論理ページのアドレスを取得しようとする場合、論理ブロック内の全ての冗長エリアを読み出す必要がある。この方式だと、論理ブロックのサイズが大きくなるにつれて、論理ページのアドレスを取得するために膨大な時間を要することとなり、実用的ではない。
【０００５】
また、下記特許文献１には、ホスト機器が、論理ページアドレスと物理ページアドレスとの対応関係をアドレスマッピングテーブルとしてＲＡＭ上に構築する際、論理ページ及び物理ページの番号が連続して配列される場合に、その連続する論理ページの初期の論理ページ番号と、連続する物理ページの初期の物理ページ番号と、連続する物理ページの個数とをアドレスマッピングテーブルに記憶することが記載されている。これにより、アドレスマッピングテーブルの記憶に必要なＲＡＭの容量を削減することが可能となっている。  
【特許文献１】特開２００６−２２１６３６号公報（段落［００１０］、［００３４］、［００３５］、図２、図３等）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の技術においては、上述のように、各物理ページの情報とは別にアドレスマッピングテーブルを用意し、かつ、全ての論理ページアドレスと物理ページアドレスとの対応関係を記憶せずにアドレスマッピングテーブル自体の構成を簡略化しているため、データの読み出し及び書き込みを行う場合には、その読み出し及び書き込みの度に、上記初期の論理ページ番号、初期の物理ページ番号及び連続する物理ページの個数から実際の物理ページ番号を特定するための演算が必要となる。したがって、上記特許文献１に記載の技術では、アドレスマッピングテーブルの記憶に要するＲＡＭの容量を削減することはできても、データの読み出し及び書き込みの際の処理速度を向上させることはできない。
【０００７】
以上のような事情に鑑み、本発明の目的は、不揮発性半導体メモリのデータに読み出し及び書き込みを行う際の処理速度を向上させることが可能なデータ記憶装置及びデータ管理方法を提供することにある。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明の主たる観点に係るデータ記憶装置は、ホスト機器に着脱自在なデータ記憶装置であって、前記データの消去単位である複数の物理ブロックに分割され、かつ、前記各物理ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数の連続番号を付された物理ページに分割され、少なくとも１つの物理ブロック及び物理ページがそれぞれ前記ホスト機器の論理空間上の任意の１つの論理ブロック及び論理ページに割り当てられた不揮発性の半導体メモリと、前記各物理ページの各冗長領域に、当該各物理ページに対応する第１の論理ページを示す対応論理ページ情報と、当該第１の論理ページと連続関係を有する第２の論理ページの数を示す連続論理ページ数情報とを記憶するよう制御する制御手段とを具備する。
【０００９】
ここでホスト機器とは例えばＰＣ、ＡＶ機器、ゲーム機器、ディジタルスチルカメラ、ディジタルビデオカメラ、携帯電話機等の電子機器であり、不揮発性の半導体メモリとは例えばＮＡＮＤ型のメモリであり、データ記憶装置とは例えばいわゆるメモリカード等である。
【００１０】
この構成によれば、各物理ページの冗長領域に上記対応論理ページ情報及び連続論理ベージ数情報とが記憶されるため、連続する論理ページが存在する場合には、ホスト機器は、これらの情報を参照することで、全ての物理ページを読み込むことなく、論理ページアドレスと物理ページアドレスとの対応関係を即座に構築することができ、データの読み出し及び書き込みの際の処理速度を格段に向上させることができる。
【００１１】
上記データ記憶装置において、前記制御手段は、前記データの書き込み対象の第１の物理ページの直前の第２の物理ページの前記冗長領域に記憶された前記対応論理ページ情報を参照することで前記第１の物理ページの前記冗長領域に前記連続論理ページ情報を記憶するよう制御するようにしても構わない。
【００１２】
これにより、データを書き込む際には、別々に書き込まれたデータであっても、既にデータが書き込まれた直前の物理ページの対応論理ページ情報との関係を考慮して連続論理ページ情報を確実に記憶させることができ、物理ページと論理ページの対応関係を構築する際の処理速度をさらに向上させることができる。
【００１３】
本発明の他の観点に係るデータ管理方法は、データの消去単位である複数の物理ブロックに分割され、かつ、前記各物理ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数の連続番号を付された物理ページに分割され、少なくとも１つの物理ブロック及び物理ページがそれぞれ前記ホスト機器の論理空間上の任意の１つの論理ブロック及び論理ページに割り当てられた不揮発性の半導体メモリを有し、ホスト機器に着脱自在なデータ記憶装置におけるデータ管理方法であって、前記各物理ページの各冗長領域に、当該各物理ページに対応する第１の論理ページを示す対応論理ページ情報と、当該第１の論理ページと連続関係を有する第２の論理ページの数を示す連続論理ページ数情報とを記憶し、前記記憶された対応論理ページ情報及び連続論理ページ数情報を基に、前記物理ページのアドレスと前記論理ページのアドレスとの対応関係を示す情報を生成することを特徴とする。
【発明の効果】
【００１４】
以上のように、本発明によれば、不揮発性半導体メモリのデータに読み出し及び書き込みを行う際の処理速度を向上させることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面に基づき説明する。
【００１６】
図１は本発明の一実施形態に係るデータ記憶装置の構成を示すブロック図である。  
同図に示すように、データ記憶装置１０は、不揮発性半導体メモリ１、制御部としてのプロセッサ２、内部ＲＡＭ３、バッファＲＡＭ４、及びインターフェース部５を有する。データ記憶装置１０は、例えばカード状の形態のいわゆるメモリカードであり、ＰＣやディジタルカメラ等のホスト機器（図示を省略）に対して抜き差し可能なリムーバブルメモリとして用いられる。
【００１７】
不揮発性半導体メモリ１は、複数のマルチレベルセルにより構成され、例えば各セルが４値（２ビット）を記憶するＮＡＮＤフラッシュメモリである。
【００１８】
プロセッサ２は、データ記憶装置１０の各ブロックを統括的に制御しながら、内部ＲＡＭ３またはバッファＲＡＭ４と不揮発性半導体メモリ１との間でデータ転送を行い、データの読み出し、書き込み及び消去を行う。
【００１９】
内部ＲＡＭ３は、プロセッサ２の作業用の記憶領域として用いられ、例えば、ホスト機器から転送されるプロセッサ２に対する動作制御コマンドや、当該コントロールコマンドを実行する際に必要な諸処のパラメータ、データ記憶装置１０内の内部状態等を一時的に記憶する。また内部ＲＡＭ３は、不揮発性半導体メモリ１から読み出されたデータを再度不揮発性半導体メモリ１へ書き込む際に、当該書き込みデータを一旦蓄える。
【００２０】
バッファＲＡＭ４は、いわゆるページバッファとして機能し、インターフェース部５を介してホスト機器側から転送された書き込みデータを一旦蓄えると共に、不揮発性半導体メモリ１から読み出されインターフェース部５を介してホスト機器側に転送されるデータを一旦蓄える。
【００２１】
インターフェース部５は、ホスト機器のホストインターフェース部１１との間のインターフェースを取るためのものである。インターフェース部５は、例えば、シリアルプロトコルにより３本の信号線を用いてデータ転送を行うシリアルインターフェースと、パラレルプロトコルにより６本の信号線を用いてデータ転送を行うパラレルインターフェースとを有する。
【００２２】
図２は不揮発性半導体メモリ１における記憶領域の構成を示す図である。  
同図に示すように、この記憶領域は、複数の物理ブロック２１に分割されている。この各物理ブロック２１はデータの消去単位となる。各物理ブロック２１は、データの書き込み単位または読み出し単位である複数の物理ページ２２に分割され、０〜Ｐまでの連続した物理ページ番号（物理ページアドレス）が割り当てられている。
【００２３】
また、１つまたは複数の物理ブロック２１は、ホスト機器の論理空間上における１つの論理ブロック３１に対応付けられている。各論理ブロック３１には少なくともＰ＋１個の論理ページ３２が存在し、この各論理ページ３２にはそれぞれ連続した論理ページ番号（論理ページアドレス）が割り当てられている。この論理ページ３２のサイズは上記物理ページ２２のサイズと対応している。
【００２４】
本実施形態においては、論理ブロック３１に対してどの論理ページ３２から書き込みを行うかは任意とされるが、論理ブロック３１と対応する未書き込みの物理ブロック２１に対しては必ず物理ページ０から順に書き込みが行われる。すなわち、物理ページ番号と論理ページ番号とは必ずしも一致しないようになっている。
【００２５】
また、各物理ページ２２は、データ（実データ）の書き込み領域である複数のセクタ（図示せず）と、エラー訂正符号やその他のメタデータの記憶領域である冗長エリア２３とを有している。
【００２６】
図３は、上記各物理ページ２２の各冗長エリア２３の構成を示した図である。  
同図に示すように、各物理ページ２２の各冗長エリア２３には、対応する論理ページ３２の論理ページ番号と、その論理ページ番号が、前の物理ページ２２の冗長エリア２３に記憶された論理ページ番号との関係において連続している数（以下、ページチェーン数と称する）とが記憶されている。このページチェーン数は０から開始され、連続した物理ページ２２に連続した論理ページ３２に対応するデータが書き込まれた場合に、１ずつその値が増加する。同図の例においては、物理ブロックＮの物理ページ０〜２には、連続する論理ページ番号１０〜１２に対応するデータが書き込まれ、その論理ページ番号が各物理ページ０〜２の各冗長エリア２３にそれぞれ記憶されている。またこの場合論理ページ番号は３つ連続しているため、物理ページ０〜２の各冗長エリア２３には、ページチェーン数０〜２がそれぞれ記憶されている。
【００２７】
次に、以上のように構成されたデータ記憶装置１０及びホスト機器の動作について説明する。
【００２８】
図４は、データの書き込みに際して、上記各冗長エリア２３に論理ページ番号及びページチェーン数を書き込む場合におけるデータ記憶装置１０の動作の流れを示したフローチャートである。  
同図に示すように、ホスト機器からデータの書き込み指令があった場合、データ記憶装置１０はまず、書き込み対象である物理ページの直前の物理ページに書き込まれている論理ページ番号及びページチェーン数を確認する（ステップ４１）。続いて、データ記憶装置１０は、当該確認した論理ページ番号を基に、直前の物理ページに書き込まれている論理ページ番号と、書き込み対象の論理ページ番号とが連続しているか否かを確認する（ステップ４２）。
【００２９】
そして、書き込み対象の論理ページ番号が直前の物理ページの論理ページ番号と連続している場合には（Ｙｅｓ）、データ記憶装置１０は、上記確認したページチェーン数を基に、書き込み対象の物理ページにおけるページチェーン数を、当該書き込み対象の物理ページの直前の物理ページに設定されているページチェーン数＋１の値に設定する（ステップ４３）。
【００３０】
また、書き込み対象の論理ページ番号が直前の物理ページの論理ページ番号と連続していない場合には（Ｎｏ）、データ記憶装置１０は、書き込み対象の物理ページにおけるページチェーン数を０に設定する（ステップ４４）。
【００３１】
そして、データ記憶装置１０は、書き込み対象のページデータを当該書き込み対象の物理ページのセクタに書き込むとともに、対応する論理ページ番号及び上記設定したページチェーン数を書き込み対象の物理ページの冗長エリアに書き込む（ステップ４５）。
【００３２】
図５及び図６は、上記冗長エリア２３に論理ページ番号及びページチェーン数を書き込む場合の様子をそれぞれ示した図である。
【００３３】
図５に示すように、例えば物理ブロックＮの物理ページ０〜２に論理ページ番号１０〜１２に対応するデータが書き込まれている状態において、物理ページ３に、論理ページ番号１３に対応するデータを書き込む場合、直前の物理ページ３に書き込まれている論理ページ番号と書き込み対象の論理ページ番号とが連続しているため、データ記憶装置１０は、直前の物理ページ２に設定されているページチェーン数２に１を加えたページチェーン数３を物理ページ３の冗長エリア２３に書き込む。
【００３４】
図６に示すように、例えば物理ブロックＮの物理ページ０〜２に論理ページ番号１０〜１２に対応するデータが書き込まれている状態において、物理ページ３に、論理ページ番号２０に対応するデータを書き込む場合、直前の物理ページ３に書き込まれている論理ページ番号と書き込み対象の論理ページ番号とが連続していないため、データ記憶装置１０は、ページチェーン数０を物理ページ３の冗長エリア２３に書き込む。
【００３５】
次に、書き込みが行われた物理ブロック２１の各物理ページ２２の情報をホスト機器が取得する際の動作について説明する。図７は、当該動作の流れを示したフローチャートである。
【００３６】
同図に示すように、まずホスト機器は、情報取得対象の物理ブロックの、最終書き込み済みの物理ページ番号を取得する（ステップ７１）。なお、最終書き込み済みの物理ページの検索は、例えば冗長エリア２３に書き込みが発生しているか否かを判断条件として、線形検索、２分検索、木検索等の周知の検索手法を用いて行われる。
【００３７】
続いて、ホスト機器は、上記取得した最終書き込み済みの物理ページ番号を、冗長エリア２３を読み出すべき物理ページ番号：Ｎに設定する（ステップ７２）。そして、ホスト機器は、当該Ｎに設定された最終書き込み済みの物理ページの冗長エリア２３から、ページチェーン数を読み出す（ステップ７３）。
【００３８】
続いて、ホスト機器は、読み出したページチェーン数が０でないか否かを判断する（ステップ７４）。ページチェーン数が０でない場合、すなわち連続した論理ページが存在している場合には（Ｙｅｓ）、ホスト機器は、次に読み出すべき物理ページ番号：Ｎを、（現在のＮ−ページチェーン数−１）に設定する（ステップ７５）。一方、ページチェーン数が０である場合（Ｎｏ）には、次に読み出すべき物理ページ番号：Ｎを（Ｎ−１）に設定する（ステップ７６）。
【００３９】
ホスト機器は、上記ステップ７３〜７６までの動作を、全ての物理ページについて対応する論理ページ番号が取得できるまで繰り返す（ステップ７７）。すなわち、ホスト機器は、冗長エリア２３を読み出した物理ページ番号からページチェーン数を引いた値が０になるか、物理ページ番号０の冗長エリア２３を読み出すまで上記動作を繰り返す。
【００４０】
そして、全ての物理ページについて対応する論理ページ番号が取得できた場合（Ｙｅｓ）には、当該取得できた情報を基に、物理ページ番号と論理ページ番号との対応情報を生成する（ステップ７８）。
【００４１】
図８は、上記ページチェーン数を基に冗長エリア２３を読み出す様子を概念的に示した図である。  
同図に示す例の場合、ホスト機器は、まず最終書き込み物理ページである物理ページ番号７を検索する。  
この物理ページ番号７の冗長エリア２３に記憶されたページチェーン数が２であるため、この物理ページ番号７までに論理ページが３つ連続していることが分かる。  
よって、ホスト機器は、物理ページ番号７から３を引いた物理ページ番号４の冗長エリア２３を読み出す。  
この物理ページ番号４の冗長エリアに記憶されたページチェーン数が１であるため、この物理ページ番号４までに論理ページが２つ連続していることが分かる。  
よって、ホスト機器は、物理ページ番号４から２を引いた物理ページ番号２の冗長エリア２３を読み出す。  
この物理ページ番号２の冗長エリア２３に記憶されたページチェーン数が２であるため、この物理ページ番号２までに論理ページが物理ページ番号０から３つ連続していることが分かり、これにより全ての物理ページの情報が取得できたことになる。
【００４２】
以上の読み出し処理により、ページチェーン数を取得することで、連続する論理ページが書き込まれた物理ページの冗長エリアの読み出しを省略することができる。したがって、上記物理ブロックＮにおいては、物理ページ０〜７の８個の物理ページにデータの書き込みが発生しているにも関わらず、３個の物理ページ（物理ページ７、４及び２）の冗長エリア２３を読み出すだけで全ての論理ページが格納された物理ページの情報を取得することができる。したがって、この物理ページの情報を取得するまでの処理速度を大幅に向上させることができる。
【００４３】
例えば、仮に論理ブロック３１内の論理ページ３２が２０４８ページ存在した場合、本実施形態のようなページチェーン数を記憶しない場合には、冗長エリア２３に対して合計２０４８回の読み出し処理を実行する必要がある。しかし、本実施形態によれば、例えば２０４８ページの論理ページが連続して物理ブロックに書き込まれていた場合には、冗長エリア２３を１回読み出すだけで、論理ブロック内の論理ページが格納されている物理ページの情報を全て取得することができる。
【００４４】
ホスト機器は、この取得した論理ページの情報を基に、例えば図９に示すような、物理ページ番号と論理ページ番号との対応関係を示す対応情報９１を生成する。この対応情報９１を生成することで、その後のデータの読み出しまたは書き込み処理を即座に行うことが可能となる。
【００４５】
本発明は上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００４６】
上述の実施形態においては、全ての物理ページの冗長エリアにページチェーン数を記憶するようにしていたが、連続している論理ページのうち最後の論理ページが書き込まれる物理ページの冗長エリアにのみページチェーン数を記憶するようにしても構わない。
【００４７】
上述の実施形態において、１つの論理ブロックが複数の物理ブロックと対応している場合には、論理ページ番号と物理ページ番号との対応情報９１は、当該複数の物理ブロックの各物理ページの情報が取得できた段階で生成するようにしても構わない。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態に係るデータ記憶装置の構成を示すブロック図である。
【図２】本発明の一実子形態における不揮発性半導体メモリ１における記憶領域の構成を示す図である。
【図３】本発明の一実施形態における各物理ページ２２の各冗長エリア２３の構成を示した図である。
【図４】本発明の一実施形態において各冗長エリア２３に論理ページ番号及びページチェーン数を書き込む場合のデータ記憶装置１０の動作を示したフローチャートである。
【図５】本発明の一実施形態において冗長エリア２３に論理ページ番号及びページチェーン数を書き込む場合の一例を示した図である。
【図６】本発明の一実施形態において冗長エリア２３に論理ページ番号及びページチェーン数を書き込む場合の他の例を示した図である。
【図７】本発明の一実施形態において書き込みが行われた物理ブロック２１の各物理ページ２２の情報をホスト機器が取得する際の動作を示したフローチャートである。
【図８】本発明の一実施形態においてページチェーン数を基に冗長エリア２３を読み出す様子を概念的に示した図である。
【図９】本発明の一実施形態における物理ページ番号と論理ページ番号との対応関係を示す対応情報の例を示した図である。
【符号の説明】
【００４９】
１…不揮発性半導体メモリ
２…プロセッサ
３…内部ＲＡＭ
４…バッファＲＡＭ
５…インターフェース部
１０…データ記憶装置
１１…ホストインターフェース部
２１…物理ブロック
２２…物理ページ
２３…冗長エリア
３１…論理ブロック
３２…論理ページ
９１…対応情報
【図１】
2008299456.tif 000003
【図２】
2008299456.tif 000004
【図３】
2008299456.tif 000005
【図４】
2008299456.tif 000006
【図５】
2008299456.tif 000007
【図６】
2008299456.tif 000008
【図７】
2008299456.tif 000009
【図８】
2008299456.tif 000010
【図９】
2008299456.tif 000011