(57)【要約】【課題】不揮発性半導体メモリからデータを読み出す際の処理速度を向上させることが可能なデータ記憶装置及びデータ管理方法を提供すること。【解決手段】  不揮発性半導体メモリ１の各ブロック２１には、複数の種類のデータＩＤに対応するデータが書き込まれるようになっており、各ブロック２１にデータが書き込まれる際、各ブロック２１の最終書き込み済みページの冗長エリア２４には、当該ページに書き込まれたデータのデータＩＤと、他のデータＩＤに対応するデータが最後に書きこまれたページの位置を示す情報とが記憶される。ホスト機器は、この冗長エリア２４の情報を基に即座にＩＤ／ページマップ６１を作成して所望のデータにアクセスすることができるため、データへ読み出す際の処理速度を格段に向上させることができる。【選択図】  図４
2008299455.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に着脱自在なデータ記憶装置であって、
前記データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリと、
前記各ブロックのうち第１のブロックの各ページのうち第１のデータが最後に書き込まれた第１のページの前記冗長領域に、当該第１のデータの書き込み以前に当該第１のデータとは異なる第２のデータが最後に書き込まれた第２のページの前記半導体メモリ上での位置を示す第１の位置情報を記憶するよう制御する制御手段と
を具備することを特徴とするデータ記憶装置。
【請求項２】
請求項１に記載のデータ記憶装置であって、
前記制御手段は、前記第１のページの直後の第３のページに前記第２のデータが書き込まれる際に、前記第１の位置情報を基に、前記第３のページの前記冗長領域に、前記第１のデータが最後に書き込まれた前記第１のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶するよう制御することを特徴とするデータ記憶装置。
【請求項３】
請求項１に記載のデータ記憶装置であって、
前記制御手段は、前記第１のデータの書き込み後に前記第２のデータを書き込む場合であって、前記各ブロックのうち第１のブロック内に前記第２のデータを書き込み可能なページが存在しない場合に、前記第２のデータを前記第１のブロックとは異なる第２のブロックの先頭の第４のページへ書き込み、前記第１のデータを前記第４のページの直後の第５のページへ書き込み、当該第５のページの冗長領域に、前記第２のデータが最後に書き込まれた前記第４のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶し、前記第１のブロックを消去するよう制御することを特徴とするデータ記憶装置。
【請求項４】
データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリを有し、ホスト機器に着脱自在なデータ記憶装置におけるデータ管理方法であって、
前記各ブロックのうち第１のブロックの各ページのうち第１のデータが最後に書き込まれた第１のページの前記冗長領域に、当該第１のデータの書き込み以前に当該第１のデータとは異なる第２のデータが最後に書き込まれた第２のページの前記半導体メモリ上での位置を示す第１の位置情報を記憶し、
前記第１のページの前記冗長領域から前記第１の位置情報を読み出し、前記第１及び第２のデータの、前記半導体メモリ上における位置と、前記ホスト機器により割り当てられた論理空間における位置との対応関係を示す対応情報を生成する
ことを特徴とするデータ管理方法。
【請求項５】
請求項４に記載のデータ管理方法であって、
前記第１のページの直後の第３のページに前記第２のデータが書き込まれる際に、前記第１の位置情報を基に、前記第３のページの前記冗長領域に、前記第１のデータが最後に書き込まれた前記第１のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶し、
前記記憶された第２の位置情報を基に、前記対応情報を更新する
ことを特徴とするデータ管理方法。
【請求項６】
請求項４に記載のデータ管理方法であって、
前記対応情報を当該データ記憶装置または前記ホスト機器の所定の記憶領域へ記憶し、
前記記憶された対応情報を基に前記第２のページから前記第２のデータを読み出し、
前記読み出しが終了したときに前記記憶領域から前記対応情報を消去する
ことを特徴とするデータ管理方法。
【請求項７】
請求項４に記載のデータ管理方法であって、
前記第１のデータの書き込み後に前記第２のデータを書き込む場合であって、前記各ブロックのうち第１のブロック内に前記第２のデータを書き込み可能なページが存在しない場合に、前記第２のデータを前記第１のブロックとは異なる第２のブロックの先頭の第４のページへ書き込み、
前記第１のデータを前記第４のページの直後の第５のページへ書き込み、
前記第５のページの冗長領域に、前記第２のデータが最後に書き込まれた前記第４のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶し、
前記第１のブロックを消去し、
前記第５のページの前記冗長領域から読み出した前記第２の位置情報を基に前記対応情報を更新する
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリを記憶媒体とし、ホスト機器に着脱自在なデータ記憶装置及びこのデータ記憶装置におけるデータ管理方法に関する。
に関する。
【背景技術】
【０００２】
従来から、ＮＡＮＤ型の不揮発性半導体メモリ（フラッシュメモリ）を主たる記憶媒体とし、例えばＰＣ（Personal Computer）や携帯電話機、携帯型ＡＶ（Audio/Video）機器等のホスト機器に着脱自在な可搬性のデータ記憶装置（いわゆるメモリカード）が知られている。このメモリカードにおいては、例えばＦＡＴ（File Allocation Tables）ファイルシステム等のホスト機器側のファイル管理システムによってデータの書き込み及び読み出しの管理が行われる。また、メモリカード内部では、不揮発性半導体メモリ内の物理領域は複数のブロックに分割され、当該ブロックがデータの消去単位となっている。また、ブロックはさらに複数のページに分割され、当該ページがデータの書き込み及び読み出し単位となっている。
【０００３】
上記ファイル管理システムを用いてデータの書き込み、読み出し及び消去を行う際には、ホスト機器のシステム側から与えられる論理アドレスと、不揮発性半導体メモリ内の上記ページの物理アドレスとが一意に対応していないため、その対応関係をメモリカード内部で管理する必要がある。この管理の方法の一つとして、論理アドレスと物理アドレスとの対応関係を、メモリカード内部の不揮発性半導体メモリ上に記録し、対応関係に変化がある度に更新するという方法がある。しかしながら、この方法では、システム全体の処理速度が低下してしまうという欠点や、処理中の電源切断によって管理情報が消失した場合の復旧が困難であるという欠点がある。
【０００４】
そこで上記欠点を補うための方法として、システムの起動時（電源投入時）等の必要なときに、不揮発性半導体メモリ内部の状態を基に、論理アドレスと物理アドレスとの対応関係を示す変換テーブルを作成するという方法がある（例えば、特許文献１参照）。  
【特許文献１】特開平１１−１１０２８３号公報（図１０等）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載の方法を実現するためには、少なくとも、データが書き込まれている全てのページに対して読み出しを行わなければならないため、莫大な回数の読み出し処理が発生し、システムの処理速度が低下してしまうことになる。
【０００６】
以上のような事情に鑑み、本発明の目的は、不揮発性半導体メモリからデータを読み出す際の処理速度を向上させることが可能なデータ記憶装置及びデータ管理方法を提供することにある。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明の主たる観点に係るデータ記憶装置は、ホスト機器に着脱自在なデータ記憶装置であって、前記データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリと、前記各ブロックのうち第１のブロックの各ページのうち第１のデータが最後に書き込まれた第１のページの前記冗長領域に、当該第１のデータの書き込み以前に当該第１のデータとは異なる第２のデータが最後に書き込まれた第２のページの前記半導体メモリ上での位置を示す第１の位置情報を記憶するよう制御する制御手段とを具備する。
【０００８】
ここでホスト機器とは例えばＰＣ、ＡＶ機器、ゲーム機器、ディジタルスチルカメラ、ディジタルビデオカメラ、携帯電話機等の電子機器であり、不揮発性の半導体メモリとは例えばＮＡＮＤ型のメモリであり、データ記憶装置とは例えばいわゆるメモリカード等である。また第１及び第２のデータは、それぞれ複数のページに書き込まれる場合もあり、上記第１及び第２のページはそれらの第１及び第２のデータがそれぞれ最後に書き込まれたページである。また上記第２のページとは、単一のページのみを指す概念ではなく、複数の異なるページであってもよい。この場合上記第２のデータはその各ページに書き込まれた複数の異なるデータである。第１の位置情報は、第２のページの位置が一意に識別できる情報であれば、物理ページ番号（物理アドレス）でも、論理ページ番号（論理アドレス）でもよいし、第１のページからの相対位置を示す情報でも構わない。
【０００９】
この構成によれば、第１のデータが最後に書き込まれた第１のページの冗長領域に、第２のデータが最後に書き込まれた第２のページの位置情報が記憶されているため、ホスト機器側は、当該第１のページにアクセスして当該位置情報を参照することで、第２のページに対して読み出し処理を行うことなく、第２のデータのページ位置を把握することができる。また、第２のデータが上記第２のページ以外の複数のページにも書き込まれている場合であっても、当該複数のページの読み出しを行うことなく第２のデータのページ位置を把握することができる。したがって、ホスト機器は、当該位置情報を基に、ホスト機器側から見たデータの論理アドレスと、半導体メモリ内部の物理アドレスとの対応関係を示すアドレス対応情報を即座に構築することができるため、データ記憶装置へアクセスする際のホスト機器側の処理速度を格段に向上させることができる。また、上記アドレス対応情報を半導体メモリ上に予め別途用意しておく必要がないため、ホスト機器の処理中にデータ記憶装置への電源供給が遮断されてしまった場合でも、上記位置情報を基に上記アドレス対応情報を容易に構築することができる。
【００１０】
上記データ記憶装置において、前記制御手段は、前記第１のページの直後の第３のページに前記第２のデータが書き込まれる際に、前記第１の位置情報を基に、前記第３のページの前記冗長領域に、前記第１のデータが最後に書き込まれた前記第１のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶するよう制御してもよい。
【００１１】
これにより、新たなページにデータが書き込まれる度に当該ページの冗長領域に新たな位置情報を記憶することができるため、ホスト機器は常に最新の位置情報を基にアドレス対応情報を容易に構築することができる。
【００１２】
上記データ記憶装置において、前記制御手段は、前記第１のデータの書き込み後に前記第２のデータを書き込む場合であって、前記各ブロックのうち第１のブロック内に前記第２のデータを書き込み可能なページが存在しない場合に、前記第２のデータを前記第１のブロックとは異なる第２のブロックの先頭の第４のページへ書き込み、前記第１のデータを前記第４のページの直後の第５のページへ書き込み、当該第５のページの冗長領域に、前記第２のデータが最後に書き込まれた前記第４のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶し、前記第１のブロックを消去するよう制御しても構わない。
【００１３】
これにより、書き込み対象のブロックが移動した場合でも、当該新たなブロックにおいて、最終書き込み対象のページの冗長領域に第２の位置情報を記憶させ、上記アドレス対応情報を構築させることができる。
【００１４】
本発明の他の観点に係るデータ管理方法は、データの消去単位である複数のブロックに分割され、かつ、前記各ブロックが、前記データの読み出し及び書き込み単位であってそれぞれ冗長領域を有する複数のページに分割された不揮発性の半導体メモリを有し、ホスト機器に着脱自在なデータ記憶装置におけるデータ管理方法であって、前記各ブロックのうち第１のブロックの各ページのうち第１のデータが最後に書き込まれた第１のページの前記冗長領域に、当該第１のデータの書き込み以前に当該第１のデータとは異なる第２のデータが最後に書き込まれた第２のページの前記半導体メモリ上での位置を示す第１の位置情報を記憶し、前記第１のページの前記冗長領域から前記第１の位置情報を読み出し、前記第１及び第２のデータの、前記半導体メモリ上における位置と、前記ホスト機器により割り当てられた論理空間における位置との対応関係を示す対応情報を生成することを特徴とする。
【００１５】
この構成により、ホスト機器は、上記第１の位置情報から生成した対応情報を基に第２のデータへ即座にアクセスすることが可能となる。
【００１６】
上記データ管理方法において、前記第１のページの直後の第３のページに前記第２のデータが書き込まれる際に、前記第１の位置情報を基に、前記第３のページの前記冗長領域に、前記第１のデータが最後に書き込まれた前記第１のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶し、前記記憶された第２の位置情報を基に、前記対応情報を更新するようにしてもよい。
【００１７】
上記データ管理方法において、前記対応情報を当該データ記憶装置または前記ホスト機器の所定の記憶領域へ記憶し、前記記憶された対応情報を基に前記第２のページから前記第２のデータを読み出し、前記読み出しが終了したときに前記記憶領域から前記対応情報を消去するようにしても構わない。
【００１８】
これにより、上記記憶領域の容量を最小限に抑えることができる。
【００１９】
上記データ管理方法において、前記第１のデータの書き込み後に前記第２のデータを書き込む場合であって、前記各ブロックのうち第１のブロック内に前記第２のデータを書き込み可能なページが存在しない場合に、前記第２のデータを前記第１のブロックとは異なる第２のブロックの先頭の第４のページへ書き込み、前記第１のデータを前記第４のページの直後の第５のページへ書き込み、前記第５のページの冗長領域に、前記第２のデータが最後に書き込まれた前記第４のページの前記半導体メモリ上での位置を示す第２の位置情報を記憶し、前記第１のブロックを消去し、前記第５のページの前記冗長領域から読み出した前記第２の位置情報を基に前記対応情報を更新するようにしてもよい。
【発明の効果】
【００２０】
以上のように、本発明によれば、不揮発性半導体メモリからデータを読み出す際の処理速度を向上させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に基づき説明する。
【００２２】
図１は本発明の一実施形態に係るデータ記憶装置の構成を示すブロック図である。  
同図に示すように、データ記憶装置１０は、不揮発性半導体メモリ１、制御部としてのプロセッサ２、内部ＲＡＭ３、バッファＲＡＭ４、及びインターフェース部５を有する。データ記憶装置１０は、例えばカード状の形態のいわゆるメモリカードであり、ＰＣやディジタルカメラ等のホスト機器（図示を省略）に対して抜き差し可能なリムーバブルメモリとして用いられる。
【００２３】
不揮発性半導体メモリ１は、複数のマルチレベルセルにより構成され、例えば各セルが４値（２ビット）を記憶するＮＡＮＤフラッシュメモリである。
【００２４】
プロセッサ２は、データ記憶装置１０の各ブロックを統括的に制御しながら、内部ＲＡＭ３またはバッファＲＡＭ４と不揮発性半導体メモリ１との間でデータ転送を行い、データの読み出し、書き込み及び消去を行う。
【００２５】
内部ＲＡＭ３は、プロセッサ２の作業用の記憶領域として用いられ、例えば、ホスト機器から転送されるプロセッサ２に対する動作制御コマンドや、当該コントロールコマンドを実行する際に必要な諸処のパラメータ、データ記憶装置１０内の内部状態等を一時的に記憶する。また内部ＲＡＭ３は、不揮発性半導体メモリ１から読み出されたデータを再度不揮発性半導体メモリ１へ書き込む際に、当該書き込みデータを一旦蓄える。
【００２６】
バッファＲＡＭ４は、いわゆるページバッファとして機能し、インターフェース部５を介してホスト機器側から転送された書き込みデータを一旦蓄えると共に、不揮発性半導体メモリ１から読み出されインターフェース部５を介してホスト機器側に転送されるデータを一旦蓄える。
【００２７】
インターフェース部５は、ホスト機器のホストインターフェース部１１との間のインターフェースを取るためのものである。インターフェース部５は、例えば、シリアルプロトコルにより３本の信号線を用いてデータ転送を行うシリアルインターフェースと、パラレルプロトコルにより６本の信号線を用いてデータ転送を行うパラレルインターフェースとを有する。
【００２８】
図２は不揮発性半導体メモリ１における記憶領域の構成を示す図である。  
同図に示すように、この記憶領域は、複数のブロック（物理ブロック）２１（ブロック０、ブロック１・・・）に分割されている。この各ブロック２１はデータの消去単位となる。各ブロック２１は、データの書き込み単位または読み出し単位である複数のページ（物理ページ）２２（ページ０、ページ１・・・）に分割されている。
【００２９】
図３は、１つのブロック２１の各ページ２２の構成を示した図である。  
同図に示すように、１つのブロック２１は例えば１６個のページ２２で構成され、各ページ２２は、データ（実データ）の書き込み領域である複数（例えば４個）のセクタ２３（セクタ０〜セクタ３）と、エラー訂正符号やその他のメタデータの記憶領域である冗長エリア２４とを有している。
【００３０】
図４は、本実施形態における冗長エリア２４に記憶された情報の一例を示した図である。
本実施形態においては、各ブロック２１には、予め複数の種類のデータを識別するためのデータＩＤ（例えばＡ〜Ｆ）が割り当てられており、各ブロック２１の各ページ２２には、その割り当てられた何れかのデータＩＤを有するデータしか書き込めないようになっている。より具体的には、データＩＤは、ホスト機器により割り当てられた論理空間上での各データの論理ブロックアドレス（ＬＢＡ：Logical Block Address）に対応付けられている。例えば、データＩＤ：Ａ〜Ｆは、ＬＢＡ：０〜５に対応している。
【００３１】
同図に示すように、各ページ２２の冗長エリア２４には、そのページ２２に書き込まれているデータのデータＩＤと、その他の各データＩＤに対応する最新データ（最後に書き込まれたデータ）が書き込まれたページ２２の位置（ページ番号）を示す情報が記憶されている。例えば、同図の例においては、ページ１０に書き込まれているデータはデータＩＤ：Ｆを有するデータであり、その他のデータＩＤ：Ａ〜Ｅを有するデータの各最新データは、それぞれページ５、ページ８、ページ９、ページ３、ページ０に書き込まれていることを示している。
【００３２】
各ブロック２１には、同一のデータＩＤを有するデータが複数のページ２２に書き込まれる場合もあるが、冗長エリア２４には、あくまでそれら複数の同一データのうち、最後に書き込まれたデータが書き込まれたページ位置を示す情報が記憶される。すなわち、冗長エリア２４には、同一データが書き込まれた複数のページのうち、最大のページ番号が記憶される。同図の例では、同図のページ１、２、５〜７に示された「ｘ」は、それらのページに書き込まれたデータと同一のデータが後のページにも書き込まれていることを示している。
【００３３】
各データＩＤは、そのページ２２に書き込まれているデータを一意に識別できるものであれば、アルファベットのほか、数値であっても、文字列であっても構わない。またその他のデータＩＤに対応する最新データのページ位置を示す情報は、当該ページ位置が一意に識別できるものであれば、物理ページ番号のほか、論理ページ番号であってもよいし、そのページからの相対位置を示す情報であっても構わない。
【００３４】
図５は、本実施形態における冗長エリア２４に記憶された情報の他の例を示した図である。  
同図に示すように、必ずしも各ブロック２１に割り当てられたデータＩＤの全てに対応するデータが存在しない場合もある。同図の例では、このブロック２１にはデータＩＤ：Ａに対応するデータがどのページ２２にも存在しないため、ページ１０の冗長エリア２４には、そのことを示す情報（「nonexistence」）が記憶される。もちろん、何れかのＩＤに対応するデータが存在しないことを示す情報は、文字列であっても、数字であっても構わない。
【００３５】
次に、上記のように構成されたデータ記憶装置１０及びホスト機器の動作について説明する。
【００３６】
ホスト機器が各ブロック２１にアクセス（読み出し／書き込み）する際には、各ブロック２１内部の最終使用（書き込み）済みページの冗長エリア２４の情報を読み出し、各ブロックに割り当てられている全てのデータＩＤに対応するデータがどのページ２２に存在しているかを示す対応情報を生成する。本実施形態においては、この対応情報をＩＤ／ページマップと称する。なお、最終使用済みページを検索する手法としては、例えば、各ページ２２の冗長エリア２４に書き込みが発生しているか否かを条件として、各ブロック２１の最後のページ（最大のページ番号を有するページ）から前のページへ順に読み出しを行っていく手法（線形検索）や、２分検索、木検索等の周知の手法が用いられる。
【００３７】
図６は、当該ＩＤ／ページマップの例を示した図である。  
同図（ａ）は、各ブロック２１に割り当てられたデータＩＤの全てに対応するデータが存在している場合のＩＤ／ページマップ６１を示している。この例では、上記図４に示したページ１０の冗長エリア２４を基に生成されたＩＤ／ページマップ６１が示されている。
【００３８】
同図（ｂ）は、各ブロック２１に割り当てられたデータＩＤのうちいずれかのＩＤに対応するデータが存在しない場合のＩＤ／ページマップ６１を示している。この例では、上記図５に示したページ１０の冗長エリア２４を基に生成されたＩＤ／ページマップ６１が示されている。
【００３９】
このＩＤ／ページマップ６１は、ホスト機器の揮発性メモリ（図示せず）上や、データ記憶装置１０の内部ＲＡＭ３に保持され、例えばホスト機器からのアクセスが完了する毎に消去される。また、ＩＤ／ページマップ６１は、ホスト機器がＩＤ／ページマップ６１が生成されたブロック２１へアクセスする可能性がある間は保持され続けるようにしても構わない。
【００４０】
次に、不揮発性半導体メモリ１にアクセス（書き込み／読み出し）がある場合のホスト機器及びデータ記憶装置１０の動作についてより詳細に説明する。
【００４１】
図７は、不揮発性半導体メモリ１にデータを書き込む際の動作を示したフローチャートである。
【００４２】
同図に示すように、ホスト機器は、各ブロック２１に書き込みを行うに際し、まず、そのブロック２１について既に生成済みのＩＤ／ページマップ６１が存在するか否かを判断する（ステップ７１）。ＩＤ／ページマップがまだ生成されていない場合には（Ｎｏ）、書き込みを行うページの直前のページの冗長エリア２４を読み出し、当該冗長エリア２４に記憶された情報を基にＩＤ／ページマップ６１を生成する（ステップ７２）。
【００４３】
次に、ホスト機器は、生成されたＩＤ／ページマップ６１を、書き込み対象のページに応じて更新する（ステップ７３）。このとき、データ記憶装置１０は、この更新済みのＩＤ／ページマップ６１に応じて、書き込み対象のページの冗長エリア２４にデータＩＤとページ位置についての情報を生成する（ステップ７４）。
【００４４】
そして、データ記憶装置１０は、ホスト機器から指定されたデータと、上記生成した冗長エリア２４の情報を、不揮発性半導体メモリ１の書き込み対象のページへ書き込む（ステップ７５）。
【００４５】
図８は、データの書き込みに際して各ページの冗長エリア２４の情報が順次記憶されていく様子を示した図である。  
同図（ａ）に示すように、ブロックＮのページ５の冗長エリア２４には、データＩＤ：Ｆのデータが書き込まれており、またデータＩＤ：Ａ〜Ｅに対応するデータは、それぞれページ１、ページ２、ページ３、ページ０及びページ４に書き込まれていることを示す情報が記憶されている。この状態から、次のページ６にデータＩＤ：Ａのデータを書き込む場合には、上記ページ５の冗長エリア２４の情報を基に生成されたＩＤ／ページマップ６１がその書き込みに対応して更新される。
【００４６】
そして、同図（ｂ）に示すように、当該更新されたＩＤ／ページマップ６１を基に、ページ６の冗長エリア２４には、当該ページ６にはデータＩＤ：Ａのデータが書き込まれ、またデータＩＤ：Ｂ〜Ｆに対応するデータは、それぞれページ２、ページ３、ページ０、ページ４及びページ５に書き込まれていることを示す情報が記憶される。
【００４７】
この状態から、次のページ７にデータＩＤ：Ｂのデータを書き込む場合にも、同様に上記ページ６の冗長エリア２４の情報を基に生成されたＩＤ／ページマップ６１がその書き込みに対応して更新される。
【００４８】
そして、同図（ｃ）に示すように、当該更新されたＩＤ／ページマップ６１を基に、ページ７の冗長エリア２４には、当該ページ７にはデータＩＤ：Ｂのデータが書き込まれ、またデータＩＤ：Ａ、Ｃ〜Ｆに対応するデータは、それぞれページ６、ページ３、ページ０、ページ４及びページ５に書き込まれていることを示す情報が記憶される。
【００４９】
以上の動作により、各ページ２２にデータの書き込みを行う度に、書き込み対象のページ２２の冗長エリア２４の情報が更新されていくため、ホスト機器は、最終使用済みページの冗長エリア２４を読み出すことで、そのブロック２１内のＩＤ／ページマップ６１を即座に構築し、論理アドレスと物理アドレスとの対応関係を容易に把握することができる。
【００５０】
なお、ブロック２１内に書き込みを行えるページ２２が存在しない場合（全てのページ２２に書き込みが行われている場合）には、書き込もうとしているデータを新たな別のブロック２１へ書き込み、その後、書き込み対象以外の各データＩＤを有するデータを古いブロックから当該別のブロック２１へコピーし、コピー終了後、古いブロック２１のデータを消去する。図９は、この場合に各ページの新たなブロック２１の冗長エリア２４の情報が更新される様子を示した図である。
【００５１】
同図に示すように、データＩＤ：Ｄのデータの書き込み指令が発生し、ブロックＮに書き込み可能なページがない場合には、データ記憶装置１０は、まず、当該データＩＤ：Ｄのデータを新たなブロックＭの先頭のページ０に書き込む。このとき、このページ０への書き込みに対応したＩＤ／ページマップ６１が生成される。それとともに、同図（ａ）に示すように、ブロックＭのページ０の冗長エリア２４には、このページに書き込まれたデータがデータＩＤ：Ｄのデータであり、その他のデータＩＤ：Ａ〜Ｃ、Ｅ及びＦに対応するデータはいずれも当該ブロックＭには存在しないことを示す情報が記憶される。
【００５２】
続いて、ブロックＭのページ１にデータＩＤ：Ａのデータがコピーされる場合には、当該ページ１への書き込みに対応して上記生成されたＩＤ／ページマップ６１が生成される。それとともに、同図（ｂ）に示すように、ブロックＭのページ１の冗長エリア２４には、このページに書き込まれたデータはデータＩＤ：Ａのデータであり、データＩＤ：Ｄのデータはページ０に書き込まれ、その他のデータＩＤ：Ｂ、Ｃ、Ｅ及びＦに対応するデータはいずれも当該ブロックＭには存在しないことを示す情報が記憶される。
【００５３】
続いて、ブロックＭのページ２にデータＩＤ：Ｂのデータがコピーされる場合にも同様に、当該ページ２への書き込みに対応して上記生成されたＩＤ／ページマップ６１が生成される。それとともに、同図（ｃ）に示すように、ブロックＭのページ２の冗長エリア２４には、このページに書き込まれたデータはデータＩＤ：Ｂのデータであり、データＩＤ：Ａ、Ｄのデータはそれぞれページ１、０に書き込まれ、その他のデータＩＤ：Ｂ、Ｃ、Ｅ及びＦに対応するデータはいずれも当該ブロックＭには存在しないことを示す情報が記憶される。
【００５４】
ブロックＭのページ３及び４にデータＣ及びＥがそれぞれコピーされる場合にも、当該コピーに応じてＩＤ／ページマップ６１が更新されるとともに各ページの冗長エリア２４の情報も更新されていく（図示せず）。
【００５５】
そして、ブロックＭのページ５にデータＩＤ：Ｆのデータがコピーされる場合にも、当該ページ５への書き込みに対応して上記生成されたＩＤ／ページマップ６１が生成される。それとともに、同図（ｄ）に示すように、ブロックＭのページ５の冗長エリア２４には、このページに書き込まれたデータはデータＩＤ：Ｆのデータであり、データＩＤ：Ａ〜Ｅのデータはそれぞれページ１、ページ２、ページ３、ページ０、ページ４に書き込まれていることを示す情報が記憶される。以上の処理が終了すると、ブロックＮは消去される。
【００５６】
このように、書き込み対象のブロックが変更される場合にも、前のブロックからのコピー処理に応じて各ページ２２の冗長エリア２４の情報が順次書き込まれていくため、ホスト機器は、各データＩＤに対応するデータが書き込まれている最新のページ位置を常に把握してＩＤ／ページマップ６１を即座に構築することができる。なお、新たなブロックへのコピー処理の途中段階のページ（図８の例ではブロックＭのページ０〜４）においては、冗長エリア２４の情報さえ記憶されていればＩＤ／ページマップ６１の更新処理は行わなくてもよく、コピー処理が終了した最終ページ（図８の例ではブロックＭのページ５）についてのみＩＤ／ページマップ６１を生成するようにしてもよい。
【００５７】
図１０は、不揮発性半導体メモリ１に書き込まれたデータを読み込む際の動作を示したフローチャートである。  
同図に示すように、データを読み出す場合には、まず、ホスト機器は、読み出し対象のブロック２１についてＩＤ／ページマップ６１が生成されているか否かを判断し（ステップ１０１）、ＩＤ／ページマップ６１生成されていない場合（Ｎｏ）には、ホスト機器は、書き込み対象のブロック２１の最終使用済みページを検索し、当該ページの冗長エリア２４の情報からＩＤ／ページマップ６１を生成する（ステップ１０２）。
【００５８】
そして、ホスト機器は、生成されたＩＤ／ページマップ６１を基に、読み出し対象のデータのページ位置を取得し（ステップ１０３）、取得したページ位置を基に、読み出し対象のデータを不揮発性半導体メモリ１から読み出す（ステップ１０４）。
【００５９】
このように、ホスト機器は、最終使用済みページの冗長エリア２４の情報から即座にＩＤ／ページマップ６１を生成し、所望のデータへ即座にアクセスすることができる。
【００６０】
本発明は上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００６１】
上述の実施形態における各ページ２２の冗長エリア２４の情報は、そのページ２２に書き込まれたデータのデータＩＤと、他のデータＩＤに対応するデータが書き込まれた最新ページ位置を示す情報であったが、例えば図１１に示すように、各ブロック２１に割り当てられた全てのデータＩＤに対応するデータが書き込まれた各最新ページを記憶する形でも構わない。
【００６２】
上述の実施形態においては、各ブロック２１に割り当てられたデータＩＤは６個（Ａ〜Ｆ）であったが、もちろんこの数に限られるものではなく、冗長エリアの容量に応じて適宜変更することが可能である。
【００６３】
上述の実施形態においては、各ブロック２１毎にＩＤ／ページマップ６１を生成及び更新していたが、不揮発性半導体メモリ１の全てのブロック２１について生成されたＩＤ／ページマップ６１を統合した１つのＩＤ／ページマップ６１を生成するようにしても構わない。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係るデータ記憶装置の構成を示すブロック図である。
【図２】本発明の一実施形態における不揮発性半導体メモリ１の記憶領域の構成を示す図である。
【図３】本発明の一実施形態における１つのブロック２１の各ページ２２の構成を示した図である。
【図４】本発明の一実施形態における冗長エリア２４に記憶された情報の一例を示した図である。
【図５】本発明の一実施形態における冗長エリア２４に記憶された情報の他の例を示した図である。
【図６】本発明の一実施形態におけるＩＤ／ページマップの例を示した図である。
【図７】本発明の一実施形態において、不揮発性半導体メモリ１にデータを書き込む際の動作を示したフローチャートである。
【図８】本発明の一実施形態において、データの書き込みに際して冗長エリア２４の情報が記憶されていく様子を示した図である。
【図９】本発明の一実施形態において、新たなブロックへのデータの書き込みに際して冗長エリア２４の情報が記憶されていく様子を示した図である。
【図１０】本発明の一実施形態において不揮発性半導体メモリ１に書き込まれたデータを読み込む際の動作を示したフローチャートである。
【図１１】本発明の他の実施形態における冗長エリア２４に記憶された情報の一例を示した図である。
【符号の説明】
【００６５】
１…不揮発性半導体メモリ
２…プロセッサ
３…内部ＲＡＭ
４…バッファＲＡＭ
５…インターフェース部
１０…データ記憶装置
１１…インターフェース部
１１…ホストインターフェース部
２１…ブロック
２２…ページ
２３…セクタ
２４…冗長エリア
６１…ＩＤ／ページマップ
【図１】
2008299455.tif 000003
【図２】
2008299455.tif 000004
【図３】
2008299455.tif 000005
【図４】
2008299455.tif 000006
【図５】
2008299455.tif 000007
【図６】
2008299455.tif 000008
【図７】
2008299455.tif 000009
【図８】
2008299455.tif 000010
【図９】
2008299455.tif 000011
【図１０】
2008299455.tif 000012
【図１１】
2008299455.tif 000013