(57)【特許請求の範囲】
【請求項１】
ホスト装置から転送されたデータを記憶するデータ記憶装置であって、
前記ホスト装置によるフォーマット処理によって、前記データを記憶するためのデータ記憶領域が確保されるとともに、該データ記憶領域内に記憶された個々のデータの記録位置を管理するための同一内容の複数の管理テーブルと、該管理テーブルの数を示すテーブル数データとが記憶される記憶デバイスと、
前記ホスト装置による前記フォーマット処理後に、前記記憶デバイスに記憶された前記テーブル数データを、該フォーマット処理によって記憶された値よりも少ない値に書き換える書換手段と、
前記ホスト装置からの前記データの転送に先立ち、該ホスト装置からの求めに応じて、前記書き換えたテーブル数データを該ホスト装置に出力する出力手段と
を備えるデータ記憶装置。
【請求項２】
請求項１に記載のデータ記憶装置であって、
前記ホスト装置は、ＦＡＴファイルシステムに基づき前記フォーマット処理を行うものである
データ記憶装置。
【請求項３】
請求項２に記載のデータ記憶装置であって、
前記記憶デバイスは、前記管理テーブルとして、前記ＦＡＴファイルシステムに基づくファイルアロケーションテーブルを記憶するものである
データ記憶装置。
【請求項４】
請求項３に記載のデータ記憶装置であって、
前記記憶デバイスは、前記テーブル数データとして、前記ファイルアロケーションテーブルの数を、前記ＦＡＴファイルシステムに基づき前記記憶デバイスに確保されたバイオスパラメータブロック領域に記憶するものである
データ記憶装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載のデータ記憶装置であって、
前記記憶デバイスは、不揮発性の半導体メモリである
データ記憶装置。
【請求項６】
請求項５に記載のデータ記憶装置であって、
前記不揮発性の半導体メモリとは、フラッシュメモリである
データ記憶装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載のデータ記憶装置であって、
前記ホスト装置と当該データ記憶装置とは、ＵＳＢインタフェースによって接続される
データ記憶装置。
【請求項８】
ホスト装置から転送されたデータを記憶デバイスに記憶するデータ記憶装置の初期化方法であって、
前記ホスト装置によるフォーマット処理を受けて、前記記憶デバイス内に、前記データを記憶するためのデータ記憶領域を確保するとともに、該データ記憶領域内に記憶された個々のデータの記録位置を管理するための同一内容の複数の管理テーブルと、該管理テーブルの数を示すテーブル数データとを記憶し、
前記ホスト装置による前記フォーマット処理後に、前記記憶デバイスに記憶された前記テーブル数データを、該フォーマット処理によって記憶された値よりも少ない値に書き換え、
前記ホスト装置からの前記データの転送に先立ち、該ホスト装置からの求めに応じて、前記書き換えたテーブル数データを該ホスト装置に出力する
初期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置から転送されたデータを記憶するデータ記憶装置の初期化技術に関する。
【背景技術】
【０００２】
コンピュータ等のホスト装置から転送されたデータを記憶するデータ記憶装置として、ハードディスクドライブやメモリカード、ＵＳＢフラッシュメモリ等の種々の装置がある。これらのデータ記憶装置に適用されるファイルシステムとしては、ＦＡＴと呼ばれるファイルシステムが一般的である。このＦＡＴファイルシステムによる初期化（フォーマット）処理では、ファイルアロケーションテーブルと呼ばれる管理テーブルがデータ記憶装置内に記憶される。このファイルアロケーションテーブルには、管理対象のファイル毎に、そのファイルのクラスタ構造や記録位置を示す管理情報が記録される。
【０００３】
上述のように、ファイルアロケーションテーブルには非常に重要な情報が記録されるため、通常、ホスト装置は、データ記憶装置を初期化するに際し、同一内容の２つのファイルアロケーションテーブルを記憶させる。これにより、一方のファイルアロケーションテーブルが損傷したとしても、もう一方のファイルアロケーションテーブルを用いることにより、正常にデータの読み書きを行うことが可能になる（下記特許文献１参照）。
【０００４】
【特許文献１】特開平１１−２４９９６８号公報
【０００５】
しかし、近年のデータ記憶装置は、その装置単体でＥＣＣデータ等に基づくエラー訂正が可能となっているものが多く、データ保存の信頼性が高くなっている。そのため、ホスト装置からのフォーマット処理によって、同一内容のファイルアロケーションテーブルが２つ用意されたとしても、２つ目のファイルアロケーションテーブルが使用されることは極めてまれなことであった。このような場合において、２つ用意されたファイルアロケーションテーブルに対してそれぞれファイルの管理情報を記録することは、ファイルの書き込み効率の低下の要因となっていた。このような問題は、ＦＡＴファイルシステムに限らず、同一内容の２以上の管理テーブルを記録する必要のある他のファイルシステムを採用するデータ記憶装置においても同様の問題であった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このような問題を考慮し、本発明が解決しようとする課題は、ホスト装置からのフォーマット処理により複数の管理テーブルが生成されるデータ記憶装置において、データの書き込み効率を向上させることにある。
【課題を解決するための手段】
【０００７】
上記課題を踏まえ、本発明のデータ記憶装置を次のように構成した。すなわち、
ホスト装置から転送されたデータを記憶するデータ記憶装置であって、
前記ホスト装置によるフォーマット処理によって、前記データを記憶するためのデータ記憶領域が確保されるとともに、該データ記憶領域内に記憶された個々のデータの記録位置を管理するための同一内容の複数の管理テーブルと、該管理テーブルの数を示すテーブル数データとが記憶される記憶デバイスと、
前記ホスト装置による前記フォーマット処理後に、前記記憶デバイスに記憶された前記テーブル数データを、該フォーマット処理によって記憶された値よりも少ない値に書き換える書換手段と、
前記ホスト装置からの前記データの転送に先立ち、該ホスト装置からの求めに応じて、前記書き換えたテーブル数データを該ホスト装置に出力する出力手段と
を備えることを要旨とする。
【０００８】
本発明のデータ記憶装置によれば、ホスト装置によるフォーマット処理によって同一内容の複数の管理テーブルが記憶されたとしても、テーブル数データを書き換えることで、実質的に、その管理テーブルの数を強制的に減ずることができる。そのため、ホスト装置は、管理テーブルに対するデータの書き込み位置の記録を通常よりも少ない回数で済ますことが可能となり、データ記憶装置の書き込み効率を向上させ、動作の高速化を図ることが可能になる。特に、フラッシュメモリやハードディスクといった近年の記憶デバイスは、ホスト装置とは独立してＥＣＣデータ等に基づくエラー訂正が可能となっていることが多い。従って、本願の構成により、管理テーブルの数を減じたとしても、データ保存の信頼性が損なわれる可能性は低い。
【０００９】
上記構成のデータ記憶装置において、
前記ホスト装置は、ＦＡＴファイルシステムに基づき前記フォーマット処理を行うものとしてもよい。この場合、前記記憶デバイスは、前記管理テーブルとして、前記ＦＡＴファイルシステムに基づくファイルアロケーションテーブルを記憶するものとすることができる。また、前記記憶デバイスは、前記テーブル数データとして、前記ファイルアロケーションテーブルの数を、前記ＦＡＴファイルシステムに基づき前記記憶デバイスに確保されたバイオスパラメータブロック領域に記憶するものとすることができる。
【００１０】
このような構成によれば、汎用的なＦＡＴファイルシステムによってフォーマットされたデータ記憶装置の高速化を図ることが可能になり、ユーザの利便性を向上させることができる。
【００１１】
上記構成のデータ記憶装置において、
前記記憶デバイスは、不揮発性の半導体メモリとすることができる。
【００１２】
このような構成によれば、携帯性に優れた小型のデータ記憶装置を提供することができる。不揮発性の半導体メモリとしては、例えば、ＮＡＮＤ型やＮＯＲ型の各種フラッシュメモリ、ＥＥＰＲＯＭ、バッテリバックアップされたＤＲＡＭ等を利用することができる。なお、記憶デバイスとしては、半導体メモリ以外にも、例えば、ハードディスクドライブや、書き換え可能な光ディスクなどを採用することができる。
【００１３】
上記構成のデータ記憶装置において、
前記ホスト装置と当該データ記憶装置とは、ＵＳＢインタフェースによって接続されるものとしてもよい。
【００１４】
このような構成であれば、ホスト装置に用意されたＵＳＢインタフェースに本発明のデータ記憶装置を接続するだけで、容易に本発明のデータ記憶装置を利用することができ、ユーザの利便性を向上させることができる。なお、ＵＳＢインタフェース以外にも、例えば、ＰＣＭＣＩＡインタフェースやシリアルＡＴＡインタフェース、ＩＥＥＥ１３９４インタフェースなどによって接続されるものとしてもよい。
【００１５】
なお、本発明は、上述したデータ記憶装置としての構成のほか、データ記憶装置の初期化方法としても構成することができる。
【発明を実施するための最良の形態】
【００１６】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態を実施例に基づき次の順序で説明する。
Ａ．データ記憶装置の概略構成：
Ｂ．メイン処理：
Ｃ．ＦＡＴ数書換処理：
Ｄ．ライト処理：
Ｅ．リード処理：
Ｆ．効果：
Ｇ．変形例：
【００１７】
Ａ．データ記憶装置の概略構成：
図１は、実施例としてのデータ記憶装置１０とホスト装置２０の概略構成を示す説明図である。ホスト装置２０は、いわゆるパーソナルコンピュータであり、図示するように、ＣＰＵ２００と、ＲＡＭ２１０と、オペレーティングシステムおよびデータ記憶装置１０との通信を制御するためのドライバがインストールされたハードディスクドライブ２２０と、ＵＳＢインタフェース２３０とを備えている。一方、データ記憶装置１０は、ＵＳＢコネクタ１１０とＵＳＢ制御回路１２０とフラッシュコントローラ１３０とフラッシュメモリＦＬとによって構成されている。
【００１８】
ＵＳＢコネクタ１１０は、データ記憶装置１０の筐体から露出して設けられており、ホスト装置２０のＵＳＢインタフェース２３０に接続される。本実施例では、データ記憶装置１０を駆動するため電力は、このＵＳＢコネクタ１１０を通じてホスト装置２０から供給されるものとする。もちろん、電力は、データ記憶装置１０に接続された図示していないＡＣアダプタ等から供給されるものとしてもよい。
【００１９】
ＵＳＢ制御回路１２０は、ＵＳＢコネクタ１１０とフラッシュコントローラ１３０とに接続されている。ＵＳＢ制御回路１２０は、当該データ記憶装置１０をＵＳＢマスストレージクラスのデバイスとして動作させる回路であり、ＵＳＢプロトコルに基づきホスト装置２０との通信を制御する回路である。このＵＳＢ制御回路１２０は、更に、ホスト装置２０から受信したＵＳＢコマンドをＡＴＡコマンドやＳＣＳＩコマンドに変換したり、フラッシュコントローラ１３０から受信したデータやステータス信号をＵＳＢコマンドに変換する機能を備える。ＡＴＡコマンドやＳＣＳＩコマンドは、ＡＮＳＩ（American National Standard Institute）によって標準化されたコマンドであり、本実施例のデータ記憶装置１０の他、ハードディスクやＰＣカード型メモリ等の種々のデータ記憶装置に対してデータの読み書きを制御するための汎用性を有するコマンドである。
【００２０】
フラッシュコントローラ１３０は、ＵＳＢ制御回路１２０から転送されたＡＴＡコマンドを解釈し、フラッシュメモリＦＬに対するデータの読み書きを制御する集積回路である。フラッシュコントローラ１３０は、かかる制御を行うために、内部にＣＰＵやＲＯＭ、ＲＡＭ等を備えている。このＲＯＭには、データ記憶装置１０の動作を制御するためのプログラムが記録されている。ＣＰＵは、ＲＡＭをワークエリアとして用いつつ、このプログラムを実行することで、データ記憶装置１０の全般的な動作を制御する。
【００２１】
フラッシュコントローラ１３０は、ＥＥＰＲＯＭ１３７を備えている。ＥＥＰＲＯＭ１３７には、フラッシュメモリＦＬに確保されるＦＡＴ領域の数を制御するためのＦＡＴコントロールフラグが記憶される。このＦＡＴコントロールフラグの働きについては後で詳細に説明する。
【００２２】
図２は、データ記憶装置１０のデータ構造を示す説明図である。データ記憶装置１０は、ホスト装置２０からのＦＡＴファイルシステムに基づくフォーマット処理により、図の左側に示すような各領域が生成される。具体的には、フラッシュメモリＦＬの先頭アドレスから順に、マスタブートレコード領域（以下、「ＭＢＲ領域」という）、バイオスパラメータブロック領域（以下、「ＢＰＢ領域」という）、ＦＡＴ１領域、ＦＡＴ２領域、ルートディレクトリ領域、ユーザデータ領域、が生成される。
【００２３】
ＭＢＲ領域は、ホスト装置２０が接続された際に、最初に読み込まれる領域である。この領域には、ブートストラップコードやパーティションテーブルなどの情報（以下、「ＭＢＲ情報」という）が記録される。パーティションテーブルには、生成されるパーティションの数や、各パーティションの開始セクタおよび終了セクタ、オフセット、総セクタ数などの情報が記録される。本実施例では、パーティションは１つだけ生成されているものとする。
【００２４】
ＢＰＢ領域は、各パーティションの先頭セクタに記録され、そのパーティションのフォーマット形式やセクタ数、後述するファイルアロケーションテーブルの数を示すＦＡＴ数データ等が記録される（以下、これらの情報をまとめて、「ＢＰＢ情報」という）。ＦＡＴファイルシステムでは、通常、ファイルアロケーションテーブルは２つ用意されるため、ホスト装置２０によるフォーマット処理後には、ＦＡＴ数データとして「２」が設定される。ホスト装置２０は、データ記憶装置１０がＵＳＢインタフェース２３０に接続されると、このＢＰＢ領域内のＦＡＴ数データを参照することで、データ記憶装置１０が有するファイルアロケーションテーブルの数を認識し、その数に応じてファイルアロケーションテーブルへの管理情報の書き込みを行う。
【００２５】
ＦＡＴ１領域およびＦＡＴ２領域には、ユーザデータ領域に書き込まれた各ファイルの所在およびそのクラスタ構造を示すファイルアロケーションテーブルが記録される。ＦＡＴファイルシステムに基づく通常のフォーマット処理では、ＦＡＴ１領域とＦＡＴ２領域とには、同一内容のファイルアロケーションテーブルが用意される。
【００２６】
ルートディレクトリ領域は、ユーザデータ領域に記録されたファイルのファイル名や拡張子、属性、そのファイルを構成する最初のクラスタ番号等が記録される領域である。
【００２７】
ユーザデータ領域は、ホスト装置２０から転送されたファイルの実体が記録される領域である。
【００２８】
データ記憶装置１０は、ホスト装置２０によるフォーマット処理後、電源の再投入時等に、ＢＰＢ領域に「２」と設定したＦＡＴ数データを、図２の右側に示すよう「１」に書き換える機能を有する。ホスト装置２０は、ＵＳＢインタフェース２３０からの抜き差し等によってデータ記憶装置１０の電源が再投入されると、ファイル転送など実際のファイルアクセスに先立って、このＦＡＴ数データを含むＢＰＢ情報やＭＢＲ情報の読み込みをデータ記憶装置１０に要求し、これらの情報に基づき、以降のアクセス態様を決定する。つまり、データ記憶装置１０の電源再投入によってＦＡＴ数データが「２」から「１」に書き換えられると、その値がホスト装置２０によって読み込まれ、以降のファイルアクセスは、ファイルアロケーションテーブルは１つであるものとしてなされることになる。従って、ＦＡＴ数データが「１」に書き換えられれば、ＦＡＴ領域が実際には２つ存在していたとしても、そのうち、一のＦＡＴ領域に対してのみアクセスがなされることになる。
【００２９】
なお、図２の右側には、説明の便宜上、ＦＡＴ２領域を消去したように表しているが、実際には、ＦＡＴ数データのみを書き換え、ＦＡＴ２領域については特に削除などは行わず、そのままの状態で放置する。そのまま放置した場合でも、ＦＡＴ数データが「１」であれば、上述したように、ホスト装置２０からは原則としてＦＡＴ１領域にのみアクセスが行われ、ＦＡＴ２領域にはアクセスされないためである。本実施例では、このようにＦＡＴ２領域については放置するものとしたが、もちろん、ＦＡＴ２領域自体もＦＡＴ数データの書き換えとともに削除するものとしてもよい。この場合、ルートディレクトリ領域以降の領域をＦＡＴ１領域に結合するものとすれば、ＦＡＴ２領域分の容量をユーザデータ領域等として有効に利用することが可能になる。
【００３０】
Ｂ．メイン処理：
図３は、データ記憶装置１０が実行するメイン処理のフローチャートである。この処理は、データ記憶装置１０がホスト装置２０に接続されて電源が供給されたと同時にフラッシュコントローラ１３０が実行を開始する処理である。
【００３１】
この処理が開始されると、まず、フラッシュコントローラ１３０は、ＦＡＴ数データを必要に応じて「２」から「１」に書き換えるためのＦＡＴ数書換処理を行う（ステップＳ１００）。このＦＡＴ数書換処理の詳細については後述する。
【００３２】
続いて、フラッシュコントローラ１３０は、ＵＳＢ制御回路１２０を介して、ホスト装置２０から何らかのコマンドを受信したか否かを判断する（ステップＳ１１０）。コマンドを受信していない場合には（ステップＳ１１０：Ｎｏ）、この処理をループすることでコマンドを受信するまで待機する。一方、コマンドを受信した場合には（ステップＳ１１０：Ｙｅｓ）、そのコマンドの種類を判別する（ステップＳ１２０）。
【００３３】
上記ステップＳ１２０において、受信したコマンドが、データの書き込みを行うライトコマンドであると判断されれば（ステップＳ１２０：「ライト」）、フラッシュコントローラ１３０は、後述するライト処理を行う（ステップＳ１３０）。一方、受信したコマンドが、データの読み込みを行うリードコマンドであると判断されれば（ステップＳ１２０：「リード」）、後述するリード処理を行う（ステップＳ１４０）。そして、これらの処理が完了すれば、処理を上記ステップＳ１１０に戻す。以上で説明したメイン処理によれば、電源供給がストップされるまで、ホスト装置２０から受信したコマンドに応じた処理がなされることになる。
【００３４】
Ｃ．ＦＡＴ数書換処理：
図４は、上述したメイン処理のステップＳ１００で実行されるＦＡＴ数書換処理のフローチャートである。この処理は、例えば、データ記憶装置１０がホスト装置２０に接続されたままホスト装置２０の電源が切断され、その後、電源が再投入されたり、データ記憶装置１０が、ホスト装置２０のＵＳＢインタフェース２３０から抜き差しされたりするなどして、データ記憶装置１０の電源が再投入された際に、ＦＡＴ数データを「２」から「１」に書き換えるための処理である。
【００３５】
データ記憶装置１０の電源が投入されて、このＦＡＴ数書換処理が実行されると、まず、フラッシュコントローラ１３０は、フラッシュメモリＦＬのＭＢＲ領域とＢＰＢ領域とを読み込む（ステップＳ２００）。そして、これらの領域に既にＭＢＲ情報とＢＰＢ情報とが書き込まれているかを判断する（ステップＳ２１０）。
【００３６】
上記ステップＳ２１０において、ＭＢＲ情報とＢＰＢ情報とが書き込まれていないと判断した場合には（ステップＳ２１０：Ｎｏ）、データ記憶装置１０は、未だＦＡＴファイルシステムによってフォーマットされていない状態であるため、フラッシュコントローラ１３０は、ＦＡＴコントロールフラグを「０」にセットして、その値をＥＥＰＲＯＭ１３７に記録する（ステップＳ２２０）。ＦＡＴコントロールフラグは、「１」であれば、ＦＡＴ数データが「２」から「１」に書き換えられたことを表し、「０」であれば、書き換えられていないことを表す。
【００３７】
上記ステップＳ２１０において、ＭＢＲ情報とＢＰＢ情報とが既に書き込まれていると判断した場合には（ステップＳ２１０：Ｙｅｓ）、データ記憶装置１０は、ホスト装置２０からＦＡＴファイルシステムによってフォーマットされた状態であると判断できるため、フラッシュコントローラ１３０は、ＢＰＢ情報に記録されたＦＡＴ数データを参照して、そのＦＡＴ数データが「２」であるか否かを判断する（ステップＳ２３０）。この判断の結果、ＦＡＴ数データが「２」であれば（ステップＳ２３０：Ｙｅｓ）、フラッシュコントローラ１３０は、ＢＰＢ領域のＦＡＴ数データを「１」に書き換える（ステップＳ２４０）。これに対して、ＦＡＴ数データが既に「１」であれば（ステップＳ２３０：Ｎｏ）、かかる書き換えを行わない。
【００３８】
上記ステップＳ２３０において、ＦＡＴ数データが既に「１」であると判断された場合（ステップＳ２３０：Ｎｏ）や、上記ステップＳ２４０によって、ＦＡＴ数データを「１」に書き換えた後には、フラッシュコントローラ１３０は、ＦＡＴコントロールフラグを「１」にセットして、その値をＥＥＰＲＯＭ１３７に記録する（ステップＳ２５０）。
【００３９】
以上で説明したＦＡＴ数書換処理によれば、ホスト装置２０によってフォーマットされた後、最初に電源が投入された際に、上記ステップＳ２４０によって、ＦＡＴ数データが「２」から「１」に書き換えられる。従って、ファイルアロケーションテーブルが実際には２つ存在していたとしても、この書き換えが行われた後には、ホスト装置２０に対して、ファイルアロケーションテーブルを１つのみ有すると認識させることが可能になる。
【００４０】
なお、本実施例では、上述したステップＳ２３０において、ＢＰＢ領域に記録されたＦＡＴ数データの値に応じてＦＡＴ数データを「２」から「１」に書き換えるか否かを判断するものとした。しかし、かかる判断を行なうことなく、上記ステップＳ２１０で「Ｙｅｓ」と判定されれば、常時、ＦＡＴ数データとして「１」とＥＥＰＲＯＭ１３７に書き込むものとしてもよい。上述した説明では、ＦＡＴ数データが「２」の場合には、「１」に書き換えられ、「１」の場合には、かかる書き換えはおこなわれず、そのまま「１」が維持されることになり、結局、ＦＡＴ数データの数は、常に「１」となるからである。このように、毎回「１」と書き込むものとすれば、条件分岐処理が省略されるので、処理を簡略化することが可能となる。
【００４１】
Ｄ．ライト処理：
図５は、上述したメイン処理のステップＳ１３０で実行されるライト処理のフローチャートである。このライト処理は、ホスト装置２０から受信したデータをフラッシュメモリＦＬに書き込むための処理である。
【００４２】
この処理が実行されると、まず、フラッシュコントローラ１３０は、ホスト装置２０からＵＳＢ制御回路１２０を介して受信したデータを、フラッシュメモリＦＬ内の指定されたアドレスに書き込む（ステップＳ３００）。
【００４３】
続いて、フラッシュコントローラ１３０は、ＥＥＰＲＯＭ１３７を参照して、ＦＡＴコントロールフラグＦＣが「１」であるか否かを判断する（ステップＳ３１０）。この判断の結果、ＦＡＴコントロールフラグＦＣが「０」であれば（ステップＳ３１０：Ｎｏ）、現時点では、ＦＡＴ数データが「２」から「１」に未だ書き換えられていないか、もしくは、ＦＡＴファイルシステムによってフォーマットがなされていないことになる。従って、上記ステップＳ３００による書き込み処理に伴って、ＦＡＴ数データの書き換えが必要になる場合があるため、図４に示したＦＡＴ数書換処理と同一の処理を実行し（ステップＳ３２０）、その後、当該ライト処理を終了する。
【００４４】
一方、上記ステップＳ３１０において、ＦＡＴコントロールフラグＦＣが「１」であれば（ステップＳ３１０：Ｙｅｓ）、既に、ＦＡＴ数データが「１」に設定されており、高速なデータ書き込みが実現されているため、ＦＡＴ数書換処理を実行することなく、当該ライト処理を終了する。
【００４５】
以上で説明したライト処理では、上記ステップＳ３００においてフラッシュメモリＦＬのＭＢＲ領域やＢＰＢ領域にＭＢＲ情報やＢＰＢ情報が書き込まれた場合には、ホスト装置２０によってＦＡＴファイルシステムに基づくフォーマットがなされたことになる。従って、この場合に、図４に示したＦＡＴ数書換処理と同一の処理を実行することにより、フォーマット処理後、即座に、ＦＡＴ数データを「２」から「１」に書き換えることができる。つまり、当該ライト処理によれば、電源の再投入を待つまでもなく、ホスト装置２０によってフォーマットされた直後に、ＦＡＴ数データを「２」から「１」に書き換えることが可能になる。
【００４６】
Ｅ．リード処理：
図６は、上述したメイン処理のステップＳ１４０で実行されるリード処理のフローチャートである。このリード処理は、ホスト装置２０からの要求に応じてフラッシュメモリＦＬからデータを読み出すための処理である。
【００４７】
この処理が実行されると、フラッシュコントローラ１３０は、ホスト装置２０からＵＳＢ制御回路１２０を介して受信したリードコマンドを解析して、フラッシュメモリＦＬ内の指定されたアドレスからデータを読み込む（ステップＳ４００）。そして、読み込んだデータをホスト装置に転送する（ステップＳ４１０）。以上の処理によって、本実施例のリード処理は完了する。
【００４８】
ホスト装置２０は、データ記憶装置１０の電源が投入された場合等には、データ記憶装置１０の記憶領域に対するファイルアクセスを適切に行うため、ユーザデータの読み込みや書き込みに先立ち、ＦＡＴ数データを含むＢＰＢ情報やＭＢＲ情報の読み込みを要求する。かかる読み込み要求が行われると、データ記憶装置１０は、当該リード処理によって、ＦＡＴ数データ等をホスト装置２０に出力する。ホスト装置は、こうしてＦＡＴ数データ等をデータ記憶装置１０から受信することで、データ記憶装置１０が有するＦＡＴの数やデータ容量等を適切に認識することが可能になる。このとき、データ記憶装置１０から出力されたＦＡＴ数データが「１」であれば、ホスト装置２０は、データ記憶装置１０が有するＦＡＴの数は「１」であるとして、以降のデータの読み書き処理を１つのＦＡＴを用いて行い、高速なファイルアクセスを実現することが可能になる。
【００４９】
Ｆ．効果：
以上で説明した本実施例のデータ記憶装置１０によれば、ホスト装置２０のフォーマット処理によってファイルアロケーションテーブル（ＦＡＴ領域）が２つ生成されたとしても、ＦＡＴ数データを「２」から「１」に書き換えることで、実質的にファイルアロケーションテーブルの数を１つに減ずることができる。そのため、ホスト装置２０は、ファイルアロケーションテーブルに対する管理情報の書き込みを通常の２回から１回に削減することができるため、データの書き込み効率を飛躍的に向上させることができる。この結果、データ記憶装置１０の動作を高速化することが可能になる。
【００５０】
Ｇ．変形例：
以上、本発明の種々の実施例について説明したが、本発明はこのような実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、以下のような変形が可能である。
【００５１】
（Ｇ１）変形例１：
上記実施例では、データ記憶装置１０は、記憶デバイスとしてフラッシュメモリを備えるものとした。これに対して、例えば、ハードディスクドライブや書き換え可能な光ディスクなどの他の記憶デバイスを備えるものとしてもよい。
【００５２】
（Ｇ２）変形例２：
上記実施例では、データ記憶装置１０はＦＡＴ形式によってフォーマットされるものとした。しかし、フォーマットの形式はこれに限られず、同一内容の管理テーブルが複数書き込まれる他の形式によってフォーマットされるものとしてもよい。
【００５３】
（Ｇ３）変形例３：
上記実施例では、ホスト装置２０とデータ記憶装置１０とは、ＵＳＢインタフェースによって接続されるものとした。しかし、インタフェースの種別はこれに限られない。例えば、ＰＣＭＣＩＡインタフェースによって接続されるものとしてもよいし、シリアルＡＴＡインタフェースやＩＥＥＥ１３９４インタフェース等によって接続されるものとしてもよい。
【００５４】
（Ｇ４）変形例４：
上記実施例では、データ記憶装置１０は、ホスト装置２０によってフォーマットされると、無条件で、ＦＡＴ数データを「２」から「１」に書き換えるものとした。これに対して、書き換えを行うか否かを設定するための機械的なスイッチをデータ記憶装置１０に設けるものとしてもよい。このような構成では、データ記憶装置１０は、電源の投入時にこのスイッチの状態を検出し、その状態に応じてＦＡＴ数データを「２」から「１」に書き換えたり、「２」のまま維持したりする。このような構成であれば、ユーザは、ファイルアロケーションテーブルを２つ使用する通常のモードと、１つに削減して高速なファイルアクセスを実現するモードとを容易に使い分けることが可能になる。
【００５５】
ただし、一度、ＦＡＴ数を１つにすると、上記実施例で説明した各種処理では、これを２つに戻すことはできない。そのため、スイッチを切り換えて、ＦＡＴ数を「１」から「２」にする際には、データ記憶装置１０は、その電源投入時に、ＦＡＴ数データを「２」に再設定するとともに、ＦＡＴ１領域に記録されたデータをＦＡＴ２領域にコピーする処理を行うものとする。こうすることで、一度、ＦＡＴ数を「１」に設定したとしても、適切にファイルアロケーションテーブルを２つ用意することができる。
【００５６】
（Ｇ５）変形例５：
上記実施例では、メイン処理とライト処理の両処理において、ＦＡＴ数書換処理を実行するものとした。これに対して、ライト処理時におけるＦＡＴ数書換処理のみを実行し、メイン処理のＦＡＴ数書換処理は省略するものとしてもよい。また、逆に、ライト処理時におけるＦＡＴ数書換処理を省略して、メイン処理時のＦＡＴ数書換処理のみを実行するものとしてもよい。前者によれば、フォーマット処理の後、即座にＦＡＴ数データを書き換えることができ、後者によれば、電源の再投入を待ってＦＡＴ数データを書き換えるので、安定したホスト装置２０の動作を期待することができる。もちろん、実施例に記載したように、両者を実行するものとしてもよく、この場合には、確実に、ＦＡＴ数データを「２」から「１」に書き換えることが可能になる。
【００５７】
（Ｇ６）変形例６：
上記実施例では、フラッシュメモリ内のデータの記憶場所のことを、「アドレス」という用語を用いて説明したが、かかる用語は、適用されるファイルシステムやオペレーティングシステム、記憶デバイスの種類に応じて、「セクタ」や「クラスタ」、「ブロック」などと適宜読み替えることができる。
【図面の簡単な説明】
【００５８】
【図１】データ記憶装置１０とホスト装置２０の概略構成を示す説明図である。
【図２】データ記憶装置１０のデータ構造を示す説明図である。
【図３】メイン処理のフローチャートである。
【図４】ＦＡＴ数書換処理のフローチャートである。
【図５】ライト処理のフローチャートである。
【図６】リード処理のフローチャートである。
【符号の説明】
【００５９】
１０…データ記憶装置
１１０…ＵＳＢコネクタ
１２０…ＵＳＢ制御回路
１３０…フラッシュコントローラ
１３７…ＥＥＰＲＯＭ
２０…ホスト装置
２００…ＣＰＵ
２１０…ＲＡＭ
２２０…ハードディスクドライブ
２３０…ＵＳＢインタフェース
【図１】
0004663577.tif 000002
【図２】
0004663577.tif 000003
【図３】
0004663577.tif 000004
【図４】
0004663577.tif 000005
【図５】
0004663577.tif 000006
【図６】
0004663577.tif 000007