(57)【特許請求の範囲】
【請求項１】
ホスト装置から転送されたデータを記憶するデータ記憶装置であって、
前記データが記録されるデータ領域と、該データを管理するための第１の管理情報と該管理情報と同様の内容を有する第２の管理情報とが記録される管理領域とを有する記憶デバイスと、
前記ホスト装置から所定の順序で転送される前記データと前記第１の管理情報と前記第２の管理情報とを個別に受信する受信手段と、
前記受信したデータを前記データ領域に記録するデータ記録手段と、
前記第１の管理情報および前記第２の管理情報のうち、一方の管理情報を前記ホスト装置から受信した場合に、他方の管理情報の受信を待つことなく、前記受信した管理情報を、前記第１の管理情報および前記第２の管理情報として前記管理領域に記録する管理情報記録手段と、を備え、
前記管理情報記録手段は、前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に返信する
データ記憶装置。
【請求項２】
請求項１に記載のデータ記憶装置であって、
前記管理情報記録手段は、前記第１の管理情報および前記第２の管理情報を、前記管理領域内の連続した位置に記録する
データ記憶装置。
【請求項３】
請求項１に記載のデータ記憶装置であって、
該データ記憶装置は、前記記憶デバイスを複数備えており、
前記管理情報記録手段は、前記第１の管理情報を一の記憶デバイスに記録し、前記第２の管理情報を他の記憶デバイスに記録する
データ記憶装置。
【請求項４】
請求項３に記載のデータ記憶装置であって、
前記データ記録手段は、前記データを前記各記憶デバイスに分散させて記録する
データ記憶装置。
【請求項５】
請求項３に記載のデータ記憶装置であって、
前記データ記録手段は、前記データを一の記憶デバイスに記録し、該データを補正するための補正データを他の記憶デバイスに記録する
データ記憶装置。
【請求項６】
請求項５に記載のデータ記憶装置であって、
前記データ記録手段は、前記補正データとして、前記データをハミング符号化して得られたＥＣＣデータを記録する
データ記憶装置。
【請求項７】
請求項５に記載のデータ記憶装置であって、
前記データ記録手段は、前記補正データとして、前記データと同一内容のデータを記録する
データ記憶装置。
【請求項８】
請求項１ないし請求項７のいずれかに記載のデータ記憶装置であって、
前記管理情報とは、ＦＡＴファイルシステムにおけるファイルアロケーションテーブルに記録するデータである
データ記憶装置。
【請求項９】
請求項１ないし請求項８のいずれかに記載のデータ記憶装置であって、
前記記憶デバイスは、不揮発性の半導体メモリである
データ記憶装置。
【請求項１０】
請求項９に記載のデータ記憶装置であって、
前記不揮発性の半導体メモリとは、フラッシュメモリである
データ記憶装置。
【請求項１１】
請求項１０に記載のデータ記憶装置であって、
前記ホスト装置と当該データ記憶装置とはＵＳＢインタフェースによって接続される
データ記憶装置。
【請求項１２】
データ記憶装置が、ホスト装置から転送されたデータを記憶するデータ記憶方法であって、
前記データ記憶装置は、前記データが記録されるデータ領域と、該データを管理するための第１の管理情報と該管理情報と同様の内容を有する第２の管理情報とが記録される管理領域とを有する記憶デバイスを備えており、
前記ホスト装置から所定の順序で転送される前記データと前記第１の管理情報と前記第２の管理情報とを個別に受信し、
前記第１の管理情報および前記第２の管理情報のうち、一方の管理情報を前記ホスト装置から受信した場合に、他方の管理情報の受信を待つことなく、前記受信した管理情報を、前記第１の管理情報および前記第２の管理情報として前記管理領域に記録し、
前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に返信し、
前記受信したデータを前記データ記憶領域に記録する
データ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置から転送されたデータをデータ記憶装置に記録する技術に関する。
【背景技術】
【０００２】
コンピュータ等のホスト装置が用いるデータを記憶するためのデータ記憶装置として、ハードディスクドライブやメモリカード、ＵＳＢフラッシュメモリ等の種々の記憶装置がある。これらのデータ記憶装置に適用されるファイルシステムとしては、ＦＡＴと呼ばれるファイルシステムが一般的である。このＦＡＴファイルシステムでは、記録したデータの位置を管理するため、ファイルアロケーションテーブルと呼ばれる管理領域がデータ記憶装置内に確保される。このファイルアロケーションテーブルには、管理対象のファイル毎に、そのファイルの構造や記録位置を示すクラスタチェーンと呼ばれる管理情報が記録される。
【０００３】
ファイルアロケーションテーブルは非常に重要な情報であるため、データ記憶装置には、一般的に、同一内容の２つのファイルアロケーションテーブルが確保される。そのため、一方のファイルアロケーションテーブルが損傷したとしても、もう一方のファイルアロケーションテーブルを用いることにより、正常にデータの読み書きを行うことが可能になる（下記特許文献１参照）。
【０００４】
【特許文献１】特開平１１−２４９９６８号公報
【０００５】
このようなファイルシステムを採用するデータ記憶装置では、小さなファイルを多く書き込む場合などには、その書き込み回数だけファイルアロケーションテーブルを書き換える必要があり、その書き込み効率は低下することになる。これに加え、上述のように複数のファイルアロケーションテーブルが確保されている場合には、同一内容の情報を複数回書き込む必要があるため、更に、書き込み効率は低下してしまう。このような問題は、ＦＡＴファイルシステムに限らず、同一内容の２以上の管理情報を記録する必要のある他のファイルシステムを採用するデータ記憶装置にも生じ得る問題である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このような問題を考慮し、本発明が解決しようとする課題は、同一内容の管理情報を複数記録するデータ記憶装置において、データの書き込み効率を向上させることにある。
【課題を解決するための手段】
【０００７】
上記課題を踏まえ、本発明のデータ記憶装置を次のように構成した。すなわち、
ホスト装置から転送されたデータを記憶するデータ記憶装置であって、
前記データが記録されるデータ領域と、該データを管理するための第１の管理情報と該管理情報と同様の内容を有する第２の管理情報とが記録される管理領域とを有する記憶デバイスと、
前記ホスト装置から所定の順序で転送される前記データと前記第１の管理情報と前記第２の管理情報とを個別に受信する受信手段と、
前記受信したデータを前記データ領域に記録するデータ記録手段と、
前記第１の管理情報および前記第２の管理情報のうち、一方の管理情報を前記ホスト装置から受信した場合に、他方の管理情報の受信を待つことなく、前記受信した管理情報を、前記第１の管理情報および前記第２の管理情報として前記管理領域に記録する管理情報記録手段と、を備え、
前記管理情報記録手段は、前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に返信することを要旨とする。
【０００８】
本発明のデータ記憶装置では、同様の内容を有する第１の管理情報と第２の管理情報とのうち、一方の管理情報をホスト装置から受信すると、他方の管理情報の受信を待つことなく、その管理情報を第１の管理情報および第２の管理情報として記憶デバイスの管理領域に記録する。この結果、データを管理するための管理情報の記録効率が向上することになり、ホスト装置によるデータの書き込み効率が全体として向上することになる。
【０００９】
上記構成のデータ記憶装置において、
前記管理情報記録手段は、前記他方の管理情報を受信した場合に、前記管理領域に対して該管理情報の記録を行うことなく、記録が完了した旨を前記ホスト装置に通知する手段を備えるものとしてもよい。
【００１０】
このような構成によれば、ホスト装置に対して、即座に２つ目の管理情報を書き込んだ旨を応答することができる。この結果、ホスト装置は、管理情報の書込処理からすぐに解放され、迅速に他の処理（例えば、データの書き込み）を開始することが可能になる。
【００１１】
上記構成のデータ記憶装置において、
前記管理情報記録手段は、前記第１の管理情報および前記第２の管理情報を、前記管理領域内の連続した位置に記録するものとしてもよい。
【００１２】
このような構成であれば、２つの管理情報を１回の書込処理によって記憶デバイスにまとめて書き込むことが容易となり、書き込み効率を向上させることができる。
【００１３】
上記構成のデータ記憶装置において、
該データ記憶装置は、前記記憶デバイスを複数備えており、
前記管理情報記録手段は、前記第１の管理情報を一の記憶デバイスに記録し、前記第２の管理情報を他の記憶デバイスに記録するものとしてもよい。
【００１４】
このような構成であれば、複数の記憶デバイスに対して、同一内容の管理情報を同時に書き込むことが可能となり、書き込み効率を向上させることができる。なお、１つのＩＣパッケージの中にフラッシュメモリ等の記憶デバイスが複数実装されている場合や、１つだけ実装された記憶デバイスを複数の記憶デバイスとして認識させられるモードを持つ場合には、データ記憶装置はそのＩＣパッケージを１つだけ備えている場合であっても複数の記憶デバイスを備えているといえる。
【００１５】
上記構成のデータ記憶装置において、
前記データ記録手段は、前記データを前記各記憶デバイスに分散させて記録するものとしてもよい。
【００１６】
このような構成によれば、ホスト装置から受信したデータを、複数の記憶デバイスに分散させて同時並列的に記録することができるため、更に、書き込み効率を向上させることができる。
【００１７】
上記構成のデータ記憶装置において、
前記データ記録手段は、前記データを一の記憶デバイスに記録し、該データを補正するための補正データを他の記憶デバイスに記録するものとしてもよい。
【００１８】
このような構成によれば、読み出したデータに対して補正データを用いた補正を行うことができるので、データ読み出し時の信頼性を向上させることができる。
【００１９】
上記構成のデータ記憶装置において、
前記データ記録手段は、前記補正データとして、前記データをハミング符号化して得られたＥＣＣデータを記録するものとしてもよい。
【００２０】
このような構成によれば、データの読み込み時にＥＣＣデータを用いてエラーのチェックや誤り訂正を行うことができる。
【００２１】
上記構成のデータ記憶装置において、
前記データ記録手段は、前記補正データとして、前記データと同一内容のデータを記録するものとしてもよい。
【００２２】
このような構成によれば、読み込み対象のデータと補正データとを比較するだけで容易にエラーのチェックを行うことができる。また、一方のデータにエラーが発生したとしても、エラーの発生していない側のデータを用いることで、正常なデータの読み出しを行うことが可能になる。
【００２３】
上記構成のデータ記憶装置において、
前記管理情報とは、ＦＡＴファイルシステムにおけるファイルアロケーションテーブルに記録するデータとすることができる。
【００２４】
このような構成であれば、２つのファイルアロケーションテーブルを標準的に用いるＦＡＴファイルシステムにおいて、ファイルの書き込み効率を向上させることができる。
【００２５】
上記構成のデータ記憶装置において、
前記記憶デバイスは、不揮発性の半導体メモリとすることができる。
【００２６】
このような構成によれば、携帯性に優れた小型のデータ記憶装置を提供することができる。不揮発性の半導体メモリとしては、例えば、ＮＡＮＤ型やＮＯＲ型の各種フラッシュメモリ、ＥＥＰＲＯＭ、バッテリバックアップされたＤＲＡＭ等を利用することができる。なお、記憶デバイスとしては、半導体メモリ以外にも、例えば、ハードディスクドライブなどを採用することができる。
【００２７】
上記構成のデータ記憶装置において、
前記ホスト装置と当該データ記憶装置とはＵＳＢインタフェースによって接続されるものとしてもよい。
【００２８】
このような構成であれば、コンピュータ等のホスト装置に用意されたＵＳＢポートに本発明のデータ記憶装置を接続するだけで、容易に本発明のデータ記憶装置を利用することができる。そのため、ユーザの利便性を向上させることができる。なお、ＵＳＢインタフェース以外にも、例えば、ＰＣＭＣＩＡインタフェースやシリアルＡＴＡインタフェース、ＩＥＥＥ１３９４インタフェース、ＳＤメモリカードやコンパクトフラッシュ（登録商標）等で使用される各種メモリインタフェースなどによって接続されるものとしてもよい。
【００２９】
なお、本発明は、上述した種々のデータ記憶装置としての構成のほか、データ記憶装置がホスト装置から転送されたデータを記憶するデータ記憶方法としても構成することができる。
【発明を実施するための最良の形態】
【００３０】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
Ａ．第１実施例：
（Ａ１）データ記憶装置の概略構成：
（Ａ２）データ記憶装置の動作概要：
（Ａ３）各種処理（メイン処理、ポインタ設定処理、ライト／リード処理）：
（Ａ４）効果：
Ｂ．第２実施例：
Ｃ．第３実施例：
Ｄ．変形例：
【００３１】
Ａ．第１実施例：
（Ａ１）データ記憶装置の概略構成：
図１は、第１実施例としてのデータ記憶装置１０の概略構成を示す説明図である。図示するように、本実施例のデータ記憶装置１０は、ＵＳＢコネクタ１１０とＵＳＢ制御回路１２０とフラッシュコントローラ１３０とフラッシュメモリＦＬとによって構成されている。
【００３２】
ＵＳＢコネクタ１１０は、データ記憶装置１０の筐体（図中の破線部分）から露出して設けられており、パーソナルコンピュータやプリンタ等のホスト装置に備えられたＵＳＢインタフェースに接続される。
【００３３】
ＵＳＢ制御回路１２０は、ＵＳＢコネクタ１１０とフラッシュコントローラ１３０とに接続されている。ＵＳＢ制御回路１２０は、当該データ記憶装置１０をＵＳＢマスストレージクラスのデバイスとして動作させる回路であり、ＵＳＢプロトコルに基づきホスト装置との通信を制御する回路である。このＵＳＢ制御回路１２０は、更に、ホスト装置から受信したＵＳＢコマンドをＡＴＡコマンドに変換したり、フラッシュコントローラ１３０から受信したデータやステータスをＵＳＢデータに変換する機能を備える。ＡＴＡコマンドとは、ＡＮＳＩ（American National Standard Institute）によって標準化されたコマンドであり、本実施例のデータ記憶装置１０の他、ハードディスクやＰＣカード型メモリ等の種々のデータ記憶装置に対してデータの読み書きを制御するための汎用的なコマンドである。
【００３４】
フラッシュコントローラ１３０は、ＵＳＢ制御回路１２０から転送されたＡＴＡコマンドを解釈し、フラッシュメモリＦＬに対するデータの読み書きを制御する集積回路である。フラッシュコントローラ１３０は、かかる制御を行うために、内部にＣＰＵやＲＯＭ、ＲＡＭ等を備えている。このＲＯＭには、データ記憶装置１０の動作を制御するためのプログラムが記録されている。ＣＰＵは、ＲＡＭをワークエリアとして用いつつ、このプログラムを実行することで、データ記憶装置１０の全般的な動作を制御する。
【００３５】
フラッシュコントローラ１３０は、レジスタ１３５を備えており、このレジスタ１３５には、種々のアドレスポインタが記憶される。フラッシュコントローラ１３０は、このアドレスポインタを参照することで、後述するＦＡＴ領域のアドレス変換を行い、ＦＡＴ領域について効率的な読み書きを行う機能を備えている。かかる機能の詳細については後述する。
【００３６】
図２は、データ記憶装置１０のデータ構造を示す説明図である。データ記憶装置１０は、ホスト装置からのＦＡＴファイルシステムに基づくフォーマット処理により、図の左側に示すような各領域が生成される。具体的には、フラッシュメモリＦＬの先頭アドレスから順に、マスタブートレコード領域（以下、「ＭＢＲ領域」という）、バイオスパラメータブロック領域（以下、「ＢＰＢ領域」という）、ＦＡＴ１領域、ＦＡＴ２領域、ルートディレクトリ領域、ユーザデータ領域、が生成される。
【００３７】
ＭＢＲ領域は、ホスト装置が接続された場合に、最初に読み込まれる領域である。この領域には、ブートストラップコードやパーティションテーブルなどの情報（以下、「ＭＢＲ情報」という）が記録されている。パーティションテーブルには、生成されているパーティションの数や、各パーティションの開始セクタおよび終了セクタ、オフセット、総セクタ数などの情報が記録されている。本実施例では、パーティションは１つだけ生成されているものとする。
【００３８】
ＢＰＢ領域は、各パーティションの先頭セクタに記録されており、そのパーティションのフォーマット形式やセクタ数、ＦＡＴの数などの情報（以下、「ＢＰＢ情報」という）が記録されている。
【００３９】
ＦＡＴ１領域およびＦＡＴ２領域には、ユーザデータ領域に記録された各ファイルの所在およびそのファイルを構成するクラスタの連結状態を表す管理情報が記録されている。このような管理情報は、通常、クラスタチェーン情報と呼ばれる。ＦＡＴ１領域とＦＡＴ２領域とには、データの信頼性を向上させるため同一の管理情報が記録される。
【００４０】
ルートディレクトリ領域には、ユーザデータ領域に記録されたファイルのファイル名や拡張子、属性、そのファイルを構成する最初のクラスタ番号等が記録されている。
【００４１】
データ記憶装置１０は、フラッシュコントローラ１３０の働きにより上述した各領域のうちＦＡＴ１領域とＦＡＴ２領域とについてアドレス変換を行い、図の右側に示すように、これらの領域をまとめてＦＡＴ３領域として管理する。つまり、ホスト装置からは、図２の左側に示すようなアドレスマップにより上述した各領域が記録されているように認識され、実際には、図の右側に示すようなアドレスマップによりフラッシュメモリＦＬ内に各領域が確保されていることになる。なお、以下では、ＦＡＴ１領域、ＦＡＴ２領域、ＦＡＴ３領域のことをまとめて、「ＦＡＴ領域」と記載する場合がある。
【００４２】
フラッシュコントローラ１３０は、ＦＡＴ領域のアドレス変換を行うにあたり、図２に示すアドレスポインタＡＰ１〜ＡＰ３を使用する。これらのアドレスポインタは、フラッシュコントローラ１３０内のレジスタ１３５に記憶されている。図示するように、アドレスポインタＡＰ１は、ＦＡＴ１領域の先頭アドレスＡｃを示し、アドレスポインタＡＰ２は、ＦＡＴ２領域の先頭アドレスＡｄを示している。また、アドレスポインタＡＰ３は、ルートディレクトリ領域の先頭アドレスＡｅを示している。フラッシュコントローラ１３０は、これらのアドレスポインタを参照し、ホスト装置からのアクセス先がＦＡＴ１領域またはＦＡＴ２領域である場合には、アドレス変換を行って、フラッシュメモリＦＬ内のＦＡＴ３領域に対して読み書きを行う。
【００４３】
図３は、ＦＡＴ１，２領域とＦＡＴ３領域との対応関係およびＦＡＴ３領域に対する読み書き動作の概要を示す説明図である。図の左側には、ホスト装置から見たＦＡＴ１領域およびＦＡＴ２領域を示しており、図の右側には、フラッシュコントローラ１３０から見たＦＡＴ３領域を示している。ここでは、ＦＡＴ領域の記録単位である一つの管理情報を「＃１」、「＃２」のように表しており、ＦＡＴ１領域に対して書き込まれる管理情報を「ＦＡＴ１＃１」のように表している。
【００４４】
図３の左側に示すようにホスト装置からは、ＦＡＴ１領域についての管理情報は、アドレスＡｃからアドレスＡｄ−１までの間に順番に記録されているものとしてアクセスされる。また、ＦＡＴ２領域についての管理情報は、アドレスＡｄからアドレスＡｅ−１までの間に順番に記録されているものとしてアクセスされる。
【００４５】
これに対して、フラッシュコントローラ１３０は、ＦＡＴ１領域についての管理情報とＦＡＴ２領域についての管理情報とを、図３の右側に示すようにＦＡＴ３領域に対して交互に配置する。つまり、フラッシュコントローラ１３０は、ＦＡＴ１領域に対してアクセスがあった場合には、下記式（１）によってアドレス変換を行い、ＦＡＴ２領域に対してアクセスがあった場合には、下記式（２）によってアドレス変換を行う。ただし、下記式では、ホスト装置からアクセスのあったアドレスをＡＤ１、変換後のアドレスをＡＤ２として表している。
【００４６】
ＡＤ２＝ＡＰ１＋２＊（ＡＤ１−ＡＰ１）  ...（１）
ＡＤ２＝ＡＰ１＋２＊（ＡＤ１−ＡＰ２）＋１  ...（２）
【００４７】
フラッシュコントローラ１３０は、例えば、ホスト装置から、図３の左側に示すＦＡＴ１領域に対して「ＦＡＴ１＃１」と示した管理情報の書き込み指示を受けると、この管理情報を、図３の右側に示すＦＡＴ３領域において、上記式（１）によってアドレス変換したアドレスに書き込み、さらに、この管理情報と同一内容の管理情報を、そのアドレスに隣接した次のアドレスに、ＦＡＴ２領域の管理情報（ＦＡＴ２＃１）として書き込む。上述したように、ＦＡＴファイルシステムでは、通常、ＦＡＴ１領域とＦＡＴ２領域とには同一の管理情報が書き込まれる。従って、本実施例では、ＦＡＴ１領域に対する管理情報の書き込み指示があると、ホスト装置からＦＡＴ２領域に対する書き込み指示がなされる前に、同一内容の管理情報をＦＡＴ２領域に対して書き込むのである。こうすることで、ＦＡＴ２領域に対する書き込み指示を受信するまでもなく、ＦＡＴ１領域およびＦＡＴ２領域に対する書き込みが完了するので、効率的にＦＡＴ情報の書き込みを行うことが可能になる。また、上述したように、本実施例では、ＦＡＴ１についての管理情報とＦＡＴ２についての管理情報とを連続したアドレスに書き込むので、高速に管理情報の書き込みを行うことが可能になる。なお、ＦＡＴ３領域に記録された管理情報を読み込む際には、上記式（１）または（２）に応じて、ＦＡＴ１またはＦＡＴ２の管理情報を読み込む。
【００４８】
（Ａ２）データ記憶装置の動作概要：
図４は、データ記憶装置１０の動作の概要をホスト装置の動作とともに示す説明図である。ホスト装置がデータ記憶装置１０に対してファイルの書き込みを行うには、大まかに、（ａ）ＦＡＴ１領域に対する管理情報の書き込み、（ｂ）ＦＡＴ２領域に対する管理情報の書き込み、（ｃ）ユーザデータ領域に対するファイル実体の書き込み、という手順が実行される。図４には、この一連の流れを示している。
【００４９】
ホスト装置は、ファイルの書き込みを行おうとすると、まず、書き込みを行うファイルの管理情報をＦＡＴ１領域に書き込むようデータ記憶装置１０に指示する（ステップＳ１００）。ホスト装置からデータ記憶装置１０へは、この指示と同時に管理情報が送信される。
【００５０】
データ記憶装置１０のフラッシュコントローラ１３０は、上記指示および管理情報を受信すると、指定されたＦＡＴ１領域内のアドレスに対応するＦＡＴ３領域内のアドレスに、その管理情報を書き込み、更に、連続したアドレスに、その管理情報をコピーした情報を書き込む（ステップＳ１１０）。
【００５１】
上記ステップＳ１１０における処理の具体例を、図３を参照して説明する。ホスト装置からＦＡＴ１領域のアドレスＡｃに管理情報として、「ＦＡＴ１＃１」と示した情報を書き込むよう指示がなされたとすると、データ記憶装置１０は、そのアドレスに対応するＦＡＴ３領域のアドレスＡｃに、「ＦＡＴ１＃１」を書き込み、その情報と同一内容の情報を、次のアドレスＡｃ＋１に、「ＦＡＴ２＃１」として書き込む。「ＦＡＴ２＃１」とは、本来、ＦＡＴ２領域の先頭アドレスＡｄに書き込まれる情報であるから、ＦＡＴ３領域には、ＦＡＴ１領域とＦＡＴ２領域とに書き込む管理情報が、同時にまとめて書き込まれることとなる。つまり、ＦＡＴファイルシステムではＦＡＴ１領域とＦＡＴ２領域とに同一内容のデータが記録されることを利用し、本実施例のデータ記憶装置１０は、ＦＡＴ３領域に対してＦＡＴ１領域についての管理情報を書き込むと、ホスト装置からの指示を待つことなく、ＦＡＴ２領域についての管理情報もまとめて書き込むのである。
【００５２】
ＦＡＴ３領域に対する書き込みが完了すると（ステップＳ１１５）、フラッシュコントローラ１３０は、ホスト装置に対して、ＦＡＴ１領域への書き込みが終了した旨を表す書込完了通知を返信する（ステップＳ１２０）。
【００５３】
ホスト装置は、フラッシュコントローラ１３０から書込完了通知を受信すると、続いて、ＦＡＴ２領域への管理情報の書き込み指示を送信する（ステップＳ１３０）。ところが、上述したように、既にこのときには、上記ステップＳ１１０においてＦＡＴ２領域に対する管理情報の書き込みが完了した状態になっているため、フラッシュコントローラ１３０は、この書き込み指示を受信すると、即座に、ホスト装置に書込完了通知を返信する（ステップＳ１４０）。
【００５４】
フラッシュコントローラ１３０から、ＦＡＴ２領域への書き込みが完了した旨の通知を受信すると、ホスト装置は、フラッシュコントローラ１３０に対して、ファイルの実体の書き込みを指示する（ステップＳ１５０）。すると、フラッシュコントローラ１３０は、フラッシュメモリＦＬ内のユーザデータ領域に対して、かかるファイルを書き込む（ステップＳ１６０）。フラッシュメモリＦＬへのファイルの書き込みが完了すると（ステップＳ１６５）、フラッシュコントローラ１３０は、ファイルの書き込みが終了した旨を示す書込完了通知をホスト装置に送信する（ステップＳ１７０）。
【００５５】
以上で説明したように、本実施例のデータ記憶装置１０は、ＦＡＴ１領域への書き込みと同時にＦＡＴ２領域への書き込みを行うため、ホスト装置からＦＡＴ２領域の書き込み指示があっても、即座に書き込みが完了した旨の通知を返信することができる。この結果、ホスト装置は、ＦＡＴ２領域への書込処理から迅速に解放され、すぐさま次のデータの書き込みを開始することができる。
【００５６】
なお、本実施例では、ＦＡＴ１領域およびＦＡＴ２領域に対する書き込みを行った後に、ユーザデータ領域に対する書き込みを行うものとしたが、これらは逆の順序で行うものとしてもよい。
【００５７】
（Ａ３）各種処理：
以下、データ記憶装置１０が、図４に示した動作等を実現するための種々の処理について詳細に説明する。
【００５８】
（Ａ３−１）メイン処理：
図５は、データ記憶装置１０が実行するメイン処理のフローチャートである。この処理は、データ記憶装置１０がホスト装置に接続されて電源が供給されたと同時にフラッシュコントローラ１３０が実行を開始する処理である。
【００５９】
この処理が開始されると、まず、フラッシュコントローラ１３０は、アドレスポインタＡＰ１〜ＡＰ３の値を設定するためのポインタ設定処理を行う（ステップＳ２００）。このポインタ設定処理の詳細については後述する。
【００６０】
続いて、フラッシュコントローラ１３０は、ＵＳＢ制御回路１２０を介して、ホスト装置から何らかのコマンドを受信したか否かを判断する（ステップＳ２１０）。コマンドを受信していない場合には（ステップＳ２１０：Ｎｏ）、この処理をループすることでコマンドを受信するまで待機する。一方、コマンドを受信した場合には（ステップＳ２１０：Ｙｅｓ）、そのコマンドの種類を判別する（ステップＳ２２０）。
【００６１】
上記ステップＳ２２０において、受信したコマンドが、データの書き込みを行うライトコマンドであると判断されれば（ステップＳ２２０：「ライト」）、フラッシュコントローラ１３０は、後述するライト処理を行う（ステップＳ２３０）。一方、受信したコマンドが、データの読み込みを行うリードコマンドであると判断されれば（ステップＳ２２０：「リード」）、後述するリード処理を行う（ステップＳ２４０）。そして、これらの処理が完了すれば、処理を上記ステップＳ２１０に戻す。以上で説明したメイン処理によれば、電源供給がストップされるまで、ホスト装置から受信したコマンドに応じた処理がなされることになる。
【００６２】
（Ａ３−２）ポインタ設定処理：
図６は、上述したメイン処理のステップＳ２００で実行されるポインタ設定処理のフローチャートである。この処理は、データ記憶装置１０の電源投入時やフォーマット完了時に、図２や図３に示したアドレスポインタＡＰ１〜ＡＰ３の値を設定するための処理である。
【００６３】
この処理が実行されると、まず、フラッシュコントローラ１３０は、フラッシュメモリＦＬのＭＢＲ領域とＢＰＢ領域とを読み込む（ステップＳ３００）。そして、これらの領域に既にＭＢＲ情報とＢＰＢ情報とが書き込まれているかを判断する（ステップＳ３１０）。
【００６４】
上記ステップＳ３１０において、ＭＢＲ情報とＢＰＢ情報とが書き込まれていないと判断した場合には（ステップＳ３１０：Ｎｏ）、データ記憶装置１０は、未だフォーマットされていない状態であるため、フラッシュコントローラ１３０は、アドレスポインタＡＰ１〜ＡＰ３の値を次のように設定する。すなわち、アドレスポインタＡＰ１の値をフラッシュメモリＦＬの最終アドレスＡｚとし、アドレスポインタＡＰ２、ＡＰ３については設定を行わない（ステップＳ３２０）。こうすることで、後述するライト処理やリード処理において、ＦＡＴ領域の変換などが特に行われなくなるため、ホスト装置は、ＦＡＴファイルシステム以外のファイルシステムによっても、データ記憶装置１０を正常に利用することが可能になる。
【００６５】
上記ステップＳ３２０において、アドレスポインタＡＰ１の値を設定すると、フラッシュコントローラ１３０は、かかる値をレジスタ１３５に記録し（ステップＳ３３０）、当該ポインタ設定処理を終了する。
【００６６】
上記ステップＳ３１０において、ＭＢＲ情報とＢＰＢ情報とが既に書き込まれていると判断した場合には（ステップＳ３１０：Ｙｅｓ）、データ記憶装置１０は、ＦＡＴファイルシステムによって既にフォーマットされた状態であるため、フラッシュコントローラ１３０は、ＭＢＲ領域やＢＰＢ領域に記録されたパーティションテーブルやセクタ数等の情報に基づきＦＡＴ１領域の先頭アドレスＡｃを求め、これをアドレスポインタＡＰ１の値とする（ステップＳ３４０）。同様に、フラッシュコントローラ１３０は、ＦＡＴ２領域の先頭アドレスＡｄを求め、これをアドレスポインタＡＰ２の値とし（ステップＳ３５０）、更に、ルートディレクトリ領域の先頭アドレスＡｅを求め、これをアドレスポインタＡＰ３の値とする（ステップＳ３６０）。最後に、フラッシュコントローラ１３０は、こうして設定したアドレスポインタＡＰ１〜ＡＰ３の値をレジスタ１３５に記録し（ステップＳ３３０）、処理を終了する。
【００６７】
（Ａ３−３）ライト処理：
図７は、上述したメイン処理のステップＳ２３０で実行されるライト処理のフローチャートである。このライト処理は、ホスト装置から受信したデータ（以下、「ライトデータ」という）をフラッシュメモリＦＬに書き込むための処理である。
【００６８】
この処理が実行されると、まず、フラッシュコントローラ１３０は、ホスト装置からＵＳＢ制御回路１２０を介して受信したライトコマンドを解析して書き込み先のアドレス（以下、「ライトアドレスＷＡ」という）を求める（ステップＳ４００）。
【００６９】
続いて、フラッシュコントローラ１３０は、レジスタ１３５を参照して、ライトアドレスＷＡが、アドレスポインタＡＰ１が示すアドレスよりも低いアドレスであるかを判断する（ステップＳ４１０）。この判断の結果、ライトアドレスＷＡが、アドレスポインタＡＰ１が示すアドレスよりも低いアドレスであれば（ステップＳ４１０：Ｙｅｓ）、ホスト装置からのフォーマット処理に伴うＭＢＲ情報やＢＰＢ情報の書き込み、あるいは、ＦＡＴファイルシステム以外のファイルシステムによる書き込みであると判断できる（図２参照）。そのため、フラッシュコントローラ１３０は、アドレス変換等を特に行うことなく、フラッシュメモリＦＬのライトアドレスＷＡに、そのままライトデータを書き込む（ステップＳ４２０）。
【００７０】
ＭＢＲ情報やＢＰＢ情報は、通常、フォーマット時に１回のみ書き込みが行われる。そのため、アドレスポインタＡＰ１よりも低いアドレスにデータの書き込みが行われると、フラッシュコントローラ１３０は、ホスト装置によってフォーマット処理が行われた可能性があると判断し、図６に示したポインタ設定処理を実行する（ステップＳ４３０）。こうすることで、フォーマット終了後においてアドレスポインタＡＰ１〜ＡＰ３を適切に設定することができる。ポインタ設定処理が完了すると、フラッシュコントローラ１３０は、書込完了通知をホスト装置に送信する（ステップＳ４４０）。
【００７１】
上記ステップＳ４１０において、ライトアドレスＷＡが、アドレスポインタＡＰ１が示すアドレスよりも高いアドレスであると判断された場合には（ステップＳ４１０：Ｎｏ）、フラッシュコントローラ１３０は、次に、レジスタ１３５を参照して、ライトアドレスＷＡが、アドレスポインタＡＰ３が示すアドレスよりも高いアドレスであるかを判断する（ステップＳ４５０）。この判断の結果、ライトアドレスＷＡが、アドレスポインタＡＰ３が示すアドレスよりも高いアドレスであると判断されれば（ステップＳ４５０：Ｙｅｓ）、ルートディレクトリ領域またはユーザデータ領域に対する書き込みであると判断できる（図２参照）。そのため、フラッシュコントローラ１３０は、アドレス変換等を特に行うことなく、フラッシュメモリＦＬのライトアドレスＷＡにそのままライトデータを書き込む（ステップＳ４６０）。書き込みが終了すると、フラッシュコントローラ１３０は、ホスト装置に対して、書込完了通知を送信する（ステップＳ４４０）。
【００７２】
上記ステップＳ４５０において、ライトアドレスＷＡが、アドレスポインタＡＰ３が示すアドレスよりも低いアドレスであると判断された場合には（ステップＳ４５０：Ｎｏ）、ライトアドレスＷＡは、ＦＡＴ１領域かＦＡＴ２領域のいずれかを示すことになるので、フラッシュコントローラ１３０は、次に、レジスタ１３５を参照して、ライトアドレスＷＡが、アドレスポインタＡＰ２が示すアドレスよりも低いアドレスであるかを判断する（ステップＳ４７０）。この判断の結果、ライトアドレスＷＡが、アドレスポインタＡＰ２よりも低いアドレスであると判断されれば（ステップＳ４７０：Ｙｅｓ）、ライトアドレスＷＡは、ＦＡＴ１領域内を示すことになる。そこで、フラッシュコントローラ１３０は、図３を用いて説明したように、上記式（１）によるアドレス変換を行う（ステップＳ４８０）。
【００７３】
アドレス変換を行うと、フラッシュコントローラ１３０は、変換されたアドレスに対して、受信したライトデータを管理情報として書き込むとともに、そのアドレスに連続した次のアドレスに、同一内容のデータを書き込む（ステップＳ４９０）。こうすることで、ＦＡＴ３領域に対して、ＦＡＴ１領域とＦＡＴ２領域とに書き込むべき管理情報をまとめて書き込むことができる。こうしてＦＡＴ３領域に対する書き込みが終了すると、フラッシュコントローラ１３０は、ホスト装置に書込完了通知を送信する（ステップＳ４４０）。
【００７４】
上記ステップＳ４７０において、ライトアドレスＷＡが、アドレスポインタＡＰ２よりも高いアドレスであると判断された場合には（ステップＳ４７０：Ｎｏ）、ライトアドレスＷＡは、ＦＡＴ２領域内のアドレスを示していることになる。ＦＡＴ２領域について書き込むべき情報は、上記ステップＳ４９０によって既に書き込みが完了している状態となっている。そのため、この場合、フラッシュコントローラ１３０は、フラッシュメモリＦＬに対して何も書き込むことなく、そのまま書込完了通知をホスト装置に送信する（ステップＳ４４０）。
【００７５】
以上で説明したライト処理によれば、ＦＡＴ領域以外の領域については、ホスト装置から送信されたデータを、アドレス変換等を行うことなくそのまま書き込む。これに対して、ＦＡＴ領域については、ＦＡＴ１領域への書き込み指示があったときにのみ所定のアドレス変換を行ってＦＡＴ３領域にデータを書き込む。このとき、フラッシュコントローラ１３０は、ＦＡＴ２領域へ書き込むべき情報もＦＡＴ３領域にまとめて書き込むので、フラッシュメモリＦＬに対して効率的に管理情報を書き込むことが可能になる。
【００７６】
（Ａ３−４）リード処理：
図８は、上述したメイン処理のステップＳ２４０で実行されるリード処理のフローチャートである。このリード処理は、ホスト装置からの要求に応じてフラッシュメモリＦＬからデータを読み出すための処理である。
【００７７】
この処理が実行されると、まず、フラッシュコントローラ１３０は、ホスト装置からＵＳＢ制御回路１２０を介して受信したリードコマンドを解析して、読み込み先のアドレス（以下、「リードアドレスＲＡ」という）を求める（ステップＳ５００）。
【００７８】
続いて、フラッシュコントローラ１３０は、レジスタ１３５を参照して、リードアドレスＲＡが、アドレスポインタＡＰ１が示すアドレスよりも高く、かつ、アドレスポインタＡＰ３が示すアドレスよりも低いアドレスであるかを判断する（ステップＳ５１０）。この判断の結果、リードアドレスＲＡが、アドレスポインタＡＰ１よりも低い値か、または、アドレスポインタＡＰ３よりも高い値であれば（ステップＳ５１０：Ｎｏ）、リードアドレスＲＡは、ＦＡＴ領域以外の領域のアドレスを示すことになるため、そのままリードアドレスＲＡからデータを読み込み（ステップＳ５２０）、読み込んだデータをホスト装置に転送する（ステップＳ５３０）。
【００７９】
上記ステップＳ５１０において、リードアドレスＲＡが、アドレスポインタＡＰ１が示すアドレスよりも高く、かつ、アドレスポインタＡＰ３が示すアドレスよりも低いアドレスであれば（ステップＳ５１０：Ｙｅｓ）、リードアドレスＲＡは、ＦＡＴ１領域もしくはＦＡＴ２領域内のアドレスを示すこととなる（図２参照）。そこで、フラッシュコントローラ１３０は、更に、そのリードアドレスＲＡが、アドレスポインタＡＰ２が示すアドレスよりも高いアドレスであるかを判断する（ステップＳ５４０）。この判断の結果、リードアドレスＲＡがアドレスポインタＡＰ２よりも低いアドレスであると判断された場合には（ステップＳ５４０：Ｎｏ）、リードアドレスＲＡは、ＦＡＴ１領域内のアドレスとなるため、上記式（１）によってアドレス変換を行い（ステップＳ５５０）、変換後のアドレスからデータ読み込む（ステップＳ５２０）。こうすることで、ＦＡＴ３領域から適切にＦＡＴ１領域についての管理情報を読み込むことができる。フラッシュコントローラ１３０は、ＦＡＴ３領域からデータを読み込むと、これをホスト装置に転送する（ステップＳ５３０）。
【００８０】
一方、上記ステップＳ５４０において、リードアドレスＲＡが、アドレスポインタＡＰ２が示すアドレスよりも高いアドレスであると判断されれば（ステップＳ５４０：Ｙｅｓ）、リードアドレスＲＡは、ＦＡＴ２領域内のアドレスとなるため、フラッシュコントローラ１３０は、上記式（２）によってアドレス変換を行い（ステップＳ５６０）、変換後のアドレスからデータ読み込む（ステップＳ５２０）。こうすることで、ＦＡＴ３領域から適切にＦＡＴ２領域についての管理情報を読み込むことができる。フラッシュコントローラ１３０は、ＦＡＴ３領域からデータを読み込むと、これをホスト装置に転送する（ステップＳ５３０）。
【００８１】
以上で説明したリード処理によれば、ＦＡＴ領域以外の領域からはそのままデータを読み込んでホストに転送することができ、ＦＡＴ１領域またはＦＡＴ２領域については、アドレス変換を行うことで、適切にＦＡＴ３領域からそれぞれの情報を読み込み、ホスト装置に転送することができる。
【００８２】
（Ａ４）効果：
以上で説明した第１実施例のデータ記憶装置１０は、ホスト装置からＦＡＴ１領域に対するデータの書き込み指示があると、ＦＡＴ２領域に対するデータの書き込みも併せて行う。そのため、ホスト装置からＦＡＴ２領域についてのデータの書き込み指示があっても、即座に、書き込みが終了した旨の通知を返信することができる。また、本実施例では、フラッシュメモリＦＬ内のＦＡＴ３領域に、ＦＡＴ１領域とＦＡＴ２領域についての管理情報を隣接したアドレスにまとめて書き込むものとした。そのため、効率的に、データの書き込みを行うことができ、処理速度を向上させることができる。特に、本実施例のデータ記憶装置１０は、記憶デバイスとしてデータの書き込み単位が比較的大きいフラッシュメモリを採用したため、隣接した２つのデータを１回の書き込み動作でまとめて書き込むことが容易であり、処理スピードを大幅に向上させることが可能になる。
【００８３】
Ｂ．第２実施例：
上述した第１実施例では、図１に示したように、データ記憶装置１０は、フラッシュメモリＦＬを１つ備えているものとした。これに対して第２実施例では、フラッシュメモリＦＬを２つ備えているものとする。
【００８４】
図９は、第２実施例としてのデータ記憶装置１０ｂの概略構成を示す説明図である。図示するように、本実施例のデータ記憶装置１０ｂは、第１実施例と同様に、ＵＳＢコネクタ１１０とＵＳＢ制御回路１２０とフラッシュコントローラ１３０とを備えており、更に、２つのフラッシュメモリＦＬａ，ＦＬｂを備えている。
【００８５】
図１０は、データ記憶装置１０ｂのデータ構造を示す説明図である。図１０の左側には、ホスト装置からみたデータ記憶装置１０ｂのアドレスマップを示している。かかるアドレスマップは、第１実施例と同様であるため、説明は省略する。
【００８６】
図１０の右側には、２つのフラッシュメモリＦＬａ，ＦＬｂのアドレスマップを併記して示している。本実施例では、ＦＡＴ領域以外の領域、すなわち、ＭＢＲ領域、ＢＰＢ領域、ルートディレクトリ領域、ユーザデータ領域については、そのアドレス空間を形成する各アドレスが（１）フラッシュメモリＦＬａ、（２）フラッシュメモリＦＬｂの順に交互に割り振られているものとする。つまり、例えば、ＭＢＲ領域の最初のアドレスは、フラッシュメモリＦＬａに存在し、２番目のアドレスはフラッシュメモリＦＬｂに存在する。また、３番目のアドレスは、フラッシュメモリＦＬａに存在し、４番目のアドレスは、フラッシュメモリＦＬｂに存在することになる。このようなアドレス空間であれば、データ記憶装置１０ｂは、データを２つのフラッシュメモリに並列（同時）に書き込むことができる。本実施例では、データ記憶装置１０ｂは、２つのフラッシュメモリＦＬａ，ＦＬｂを備えることにより、そのバス幅が実質的に２倍になるので、上述のようにデータを並列（同時）に書き込めば、高速にデータの読み書きを行うことが可能になる。
【００８７】
本実施例では、ＦＡＴ領域については、フラッシュメモリＦＬａ側にＦＡＴ１領域を確保し、フラッシュメモリＦＬｂ側にＦＡＴ２領域を確保している。そのため、本実施例においてホスト装置からＦＡＴ１領域に対してデータの書き込み指示があると、フラッシュコントローラ１３０は、フラッシュメモリＦＬａのＦＡＴ１領域に対してデータを書き込むとともに、同一の内容のデータをフラッシュメモリＦＬｂのＦＡＴ２領域に書き込む。２つのフラッシュメモリに対する書き込みは、同時並列的に行うことができるため、他方の書込完了を待たずに２つのＦＡＴ情報を書き込むことができる。この結果、第１実施例と同様に、ＦＡＴ領域に対する書き込み効率を向上させることができる。
【００８８】
第２実施例におけるメイン処理、ポインタ設定処理、ライト処理、リード処理については、第１実施例とほぼ同様の処理内容であるため詳細な説明は省略する。ただし、本実施例では、図７や図８に示したライト処理やリード処理において、ＦＡＴ領域以外の領域に対してデータを読み書きする際には、図１０に示したアドレスマップに従って所定のアドレス変換を行った上で、フラッシュメモリＦＬａまたはフラッシュメモリＦＬｂに対して適宜読み書きを行う。また、第１実施例では、図７に示したライト処理のステップＳ４９０において、ＦＡＴ３領域の連続したアドレスに同一の管理情報を２つ書き込むものとしたが、第２実施例では、フラッシュメモリＦＬａのＦＡＴ１領域およびフラッシュメモリＦＬｂのＦＡＴ２領域に対して、それぞれ、同一の管理情報を並列的に書き込む。また、図８のリード処理のステップＳ５５０におけるアドレス変換では、フラッシュメモリＦＬａのＦＡＴ１領域へのアドレス変換を行い、ステップＳ５６０におけるアドレス変換では、フラッシュメモリＦＬｂのＦＡＴ２領域へのアドレス変換をそれぞれ行う。
【００８９】
Ｃ．第３実施例：
上述した第２実施例では、ＦＡＴ領域以外の領域についてはデータを２つのフラッシュメモリに分散して記録するものとした。これに対して、第３実施例では、ＦＡＴ領域以外の領域については、２つのフラッシュメモリに、同一内容のデータが書き込まれるものとする。データ記憶装置１０ｂの装置構成については、図９に示した構成と同一である。
【００９０】
図１１は、第３実施例におけるデータ記憶装置１０ｂのデータ構造を示す説明図である。図１１の左側には、ホスト装置からみたデータ記憶装置１０ｂのアドレスマップを示している。一方、図１１の右側には、２つのフラッシュメモリＦＬａ，ＦＬｂのアドレスマップを示している。本実施例では、ＦＡＴ領域以外の領域、すなわち、ＭＢＲ領域、ＢＰＢ領域、ルートディレクトリ領域、ユーザデータ領域については、フラッシュメモリＦＬａとフラッシュメモリＦＬｂとで同一内容のデータが書き込まれるものとする。このような構成であれば、データの冗長度を高めてフラッシュメモリに記憶させることができるので、一方のフラッシュメモリのデータが損傷したとしても、もう一方のフラッシュメモリに記憶されたデータを用いて、適切にデータを読み込むことが可能になる。
【００９１】
これに対して、ＦＡＴ領域については、第２実施例と同様に、ＦＡＴ１領域がフラッシュメモリＦＬａに確保され、ＦＡＴ２領域がフラッシュメモリＦＬｂに確保されるものとした。こうすることにより、２つのフラッシュメモリに対する書き込みを、同時並列的に行うことができるため、他方の書込完了を待たずに２つの管理情報を書き込むことができる。この結果、第１実施例や第２実施例と同様に、ＦＡＴ領域に対する書き込み効率を向上させることができる。
【００９２】
本実施例では、図１１に示すように、ＦＡＴ２領域以外の領域については、ホスト側から見たアドレスマップと、フラッシュコントローラ１３０から見たアドレス体系は一致している。従って、ＦＡＴ２領域以外の領域については、アドレス変換を行うことなくデータの読み書きを行うことができるため、処理効率を向上させることができる。なお、図１１の右側に示したアドレスマップにおいて、「ＮＵＬＬ」と示した領域は、本来、ＦＡＴ２領域が確保されるべき領域であるため、ホスト装置からは直接認識されない領域となる。しかし、このＮＵＬＬ領域をユーザデータ領域に連結させる所定のアドレス変換を行うことで、かかるＮＵＬＬ領域も、ユーザデータ領域として利用することが可能である。
【００９３】
ところで、本実施例では、フラッシュメモリＦＬａとフラッシュメモリＦＬｂとに同一内容のデータが書き込まれるものとしたが、フラッシュメモリＦＬｂには、フラッシュメモリＦＬａに書き込まれたデータから生成したＥＣＣデータを書き込むものとしてもよい。このような構成であれば、フラッシュメモリＦＬｂに書き込まれたＥＣＣデータに基づきフラッシュメモリＦＬａに書き込まれたデータのエラーチェックやエラー訂正を容易に行うことができるので、記憶されたデータの信頼性を高めることが可能になる。
【００９４】
Ｄ．変形例：
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、以下のような変形が可能である。
【００９５】
（Ｄ１）変形例１：
上記実施例では、データ記憶装置１０は、記憶デバイスとしてフラッシュメモリを備えるものとした。これに対して、例えば、ハードディスクドライブなどの他の記憶デバイスを備えるものとしてもよい。
【００９６】
（Ｄ２）変形例２：
上記実施例では、データ記憶装置１０はＦＡＴ形式によってフォーマットされるものとした。しかし、フォーマットの形式はこれに限られず、同一内容の管理情報が複数書き込まれる他の形式によってフォーマットされるものとしてもよい。
【００９７】
（Ｄ３）変形例３：
上記実施例では、ホスト装置とデータ記憶装置１０とは、ＵＳＢインタフェースによって接続されるものとしたが、インタフェースの種別はこれに限られない。例えば、ＰＣＭＣＩＡインタフェースによって接続されるものとしてもよいし、シリアルＡＴＡインタフェースやＩＥＥＥ１３９４インタフェース等によって接続されるものとしてもよい。
【００９８】
なお、上記実施例では、フラッシュメモリのデータの記憶場所のことを、「アドレス」という用語を用いて説明したが、かかる用語は、適用されるファイルシステムやオペレーティングシステム、記憶デバイスの種類に応じて、「セクタ」や「クラスタ」、「ブロック」などと適宜読み替えることができる。
【図面の簡単な説明】
【００９９】
【図１】第１実施例としてのデータ記憶装置１０の概略構成を示す説明図である。
【図２】データ記憶装置１０のデータ構造を示す説明図である。
【図３】ＦＡＴ１，２領域とＦＡＴ３領域との対応関係およびＦＡＴ３領域に対する読み書き動作の概要を示す説明図である
【図４】データ記憶装置１０の動作の概要をホスト装置の動作とともに示す説明図である。
【図５】メイン処理のフローチャートである。
【図６】ポインタ設定処理のフローチャートである。
【図７】ライト処理のフローチャートである。
【図８】リード処理のフローチャートである。
【図９】第２実施例としてのデータ記憶装置１０ｂの概略構成を示す説明図である。
【図１０】第２実施例におけるデータ構造を示す説明図である。
【図１１】第３実施例におけるデータ構造を示す説明図である。
【符号の説明】
【０１００】
１０，１０ｂ...データ記憶装置
１１０...ＵＳＢコネクタ
１２０...ＵＳＢ制御回路
１３０...フラッシュコントローラ
１３５...レジスタ
ＦＬ，ＦＬａ，ＦＬｂ...フラッシュメモリ
【図１】
0004676378.tif 000002
【図２】
0004676378.tif 000003
【図３】
0004676378.tif 000004
【図４】
0004676378.tif 000005
【図５】
0004676378.tif 000006
【図６】
0004676378.tif 000007
【図７】
0004676378.tif 000008
【図８】
0004676378.tif 000009
【図９】
0004676378.tif 000010
【図１０】
0004676378.tif 000011
【図１１】
0004676378.tif 000012