(57)【要約】【目的】分断化して記録されているデータファイルに効率的にアクセスできるファイルアクセス方法を提供する。【構成】ハードディスク１０へのアクセスを管理するＦＡＴファイルシステムにおいて、曲１データファイル１１Ａを記録する時に、それを構成するクラスタ１３群の記録位置がどの程度分散しているかを計測し、分断化率が所定の閾値を超えれば、曲１データファイル１１Ａを構成するブロックの識別番号を一覧表示するクラスタリンクファイル６０を作成し、曲１データファイル１１Ａを読み出す時にクラスタリンクファイル６０が存在すれば、それを読み出して曲１データファイル１１Ａを構成するブロック群を識別する。【選択図】図１
2005115696.tif 000002
【特許請求の範囲】
【請求項１】
データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行うファイルアクセス方法において、
前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成して前記記録メディアに記録し、
前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別することを特徴とするファイルアクセス方法。
【請求項２】
データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと１対１に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行うファイルアクセス方法において、
前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込み、
前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別することを特徴とするファイルアクセス方法。
【請求項３】
データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行う情報処理装置において、
前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成するファイル記録手段と、
前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別するファイル読み出し手段と、
を有することを特徴とする情報処理装置。
【請求項４】
データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと１対１に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行う情報処理装置において、
前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込むファイル記録手段と、
前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別するファイル読み出し手段と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルアクセス方法及び情報処理装置に関し、特に、ディジタルデータを再生する機器におけるファイルアクセス方法に関する。
【背景技術】
【０００２】
ハードディスク（ＨＤＤ）等のディスク型記録メディアは、その大容量性と高速アクセス性から計算機をはじめとする多様な情報処理装置に記録媒体として使用されている。近年は、動画や音声のリアルタイムストリームを記録するメディアとしても普及し始めている。
【０００３】
ディスク型記録メディアは、情報を光学的信号または磁気的信号として記録できるディスクと、そのディスク上を走査して情報の書込み及び読出しを実行する記録ヘッドから構成される。このため、所望の情報にアクセスするためには、この情報が記録される位置まで記録ヘッドがディスク上を移動する必要がある。この記録ヘッドが移動に要する時間（以下、シーク時間と呼ぶ）は、ディスク上に記録されている情報の配置に依存して変化する。一般的にシーク時間は、実際に情報を転送するのに要する時間（以下、転送時間と呼ぶ）に比べて桁違いに大きい。これは、転送時間はディスクの回転速度に依存しているが、シーク時間はヘッドがディスクの半径方向に移動する速度に依存しており、メカニカルな制限から回転速度の向上は容易であるが半径方向の移動は高速化が困難なためである。
【０００４】
一連のデータがディスク上に分散して記録されている場合、シーク時間が長くなるために、データへのアクセス性能は極端に低下してしまう。このアクセス性能の低下は、リアルタイムストリームの再生時に、コンテンツ読出しのアンダーフローの原因となり、音跳び等の致命的な品質欠陥を発生させることがある。コンテンツのアンダーフローを防止するためには、再生機器内にコンテンツを一時的に保存しておくためのバッファに過大な容量を持たせる必要があり、再生機器のコストが上昇してしまう。そこで、記録メディア上でのデータの分断化を防止する方法、及び、分断記録されたデータへのアクセス性能を改善する方法が考案されている。以下、図面を用いて従来技術の詳細について述べる。
【０００５】
まず、記録メディアであるハードディスクへのデータの記録方法について図１３を用いて説明する。図１３は、ハードディスクＨＤＤ＃３（１０）上へのデータの記録方法を示す図である。データの記録方法はファイルシステムにより制御されるが、ファイルシステムの種類に応じて様々なデータ記録方法が存在する。図１３ではパーソナルコンピュータで広く普及しているＦＡＴ（File Allocation Table）ファイルシステムによるデータ記録方法を示している。
【０００６】
データはファイル１１として保存されるが、そのデータそのものはデータ領域１２にクラスタ１３とよばれる固定長のデータブロックを単位として記録される。１つのファイルを構成するクラスタは、ファイルＡ（１１Ａ）のように連続したクラスタ群である場合もあれば、ファイルＢ（１１Ｂ）のように不連続なクラスタ群の場合もある。
【０００７】
ファイルとそれを構成するクラスタ群を対応付けるためのファイル管理情報を含む領域として、ディレクトリ領域１４とＦＡＴ領域１５とが存在する。ディレクトリ領域１４には、ファイル毎に、その名前と、その属性と、開始クラスタ番号と、ファイルサイズとからなる情報をエントリとするテーブルが存在する。このテーブル中のエントリは、ディレクトリエントリ１６と呼ばれ、記録されているファイル毎に１つ存在する。例えば、図１３に示すディレクトリエントリＤＥＮＴ＃１に対応するファイル名は「ファイルＡ」であり、対応するデータがクラスタ＃６から記録されていて、さらに、そのデータサイズが４５Ｋバイトであることを示している。
【０００８】
ＦＡＴ領域１５には、ファイルを構成するクラスタ群をリストするための情報が存在する。ＦＡＴエントリ１７は、それが何番目のエントリであるかにより、対応するクラスタの番号が決まるが、ＦＡＴエントリそのものの値は対応するクラスタの次に続くクラスタの番号を表す。例えば、６番目のＦＡＴエントリ（ＦＡＴ＃６）は値として７をもつが、これはクラスタ＃６の次にクラスタ＃７が続くことを示している。
【０００９】
以上のように、ディレクトリエントリ１６とＦＡＴエントリ１７とから、ファイルを構成するクラスタ群が同定できる。例えば、図１３に示すように、ディレクトリエントリＤＥＮＴ＃２よりファイルＢはクラスタ＃１３より開始することがわかり、ＦＡＴ＃１３よりその後にクラスタ＃２１が続き、ＦＡＴ＃２１よりさらにクラスタ＃３１が続き、ＦＡＴ＃３１には終端マークＥＯＦが記録されているので、クラスタ＃３１がファイルの終端であることがわかる。
【００１０】
図１４は、ファイル読出し時のハードディスク１０（ＨＤＤ＃３）へのアクセスタイミングを表す図である。以下、図１４を用いて記録データの分断化がアクセス性能に及ぼす影響を説明する。図中の矢印と四角はそれぞれ、記録ヘッドを移動させている時間区分と、実際にデータを転送している時間区分を表す。図１４では、シーク時間２０を示す矢印の長さと、転送時間２１を示す四角の長さを等しく描いてあるが、実際は、矢印の方が１０倍以上長くなる。
【００１１】
図１４（ａ）は、連続クラスタに記録されているファイル（図１３のファイルＡ）を読み出す場合のハードディスク１０（ＨＤＤ＃３）へのアクセスタイミングを表す図である。ファイルアクセスにおいては、まず、ファイルＡのディレクトリエントリＤＥＮＴ＃１が読込まれるが、ディレクトリエントリ１６は、いくつかのエントリがまとめてハードディスクＨＤＤ＃３から読み出される。図１３に示すように、このディレクトリ領域１４へのアクセス単位をディレクトリアクセス単位２２と呼ぶことにする。すなわち、まず、ディレクトリアクセス単位ＤＥＮＴ＿ＡＣＣＥＳＳ＃１を読込む。
【００１２】
次に、読込んだディレクトリエントリ（ＤＥＮＴ＃１）の開始クラスタ番号に対応するＦＡＴエントリ（ＦＡＴ＃２１）を読込む。ＦＡＴエントリ１７も、いくつかのエントリがまとめてハードディスク１０（ＨＤＤ＃３）から読み出される。図１３に示すように、このＦＡＴ領域１５へのアクセス単位をＦＡＴアクセス単位２３と呼ぶことにする。すなわち、ＦＡＴアクセス単位ＦＡＴ＿ＡＣＣＥＳＳ＃１を読込む。
【００１３】
読込んだＦＡＴエントリ１７より、ファイルＡはクラスタ＃６からクラスタ＃８までの連続クラスタで構成されていることがわかるので、これら３つのクラスタを一挙に読出す。ハードディスクの仕様が平均シーク時間を２０ミリ秒、転送速度を１０メガバイト／秒、クラスタサイズを１６キロバイトであるとすると、総アクセス時間は４８ミリ秒となる。
【００１４】
図１４（ｂ）は、クラスタが分断化されているファイル（図１３のファイルＢ）を読み出す場合のハードディスクＨＤＤ＃３へのアクセスタイミングを表す図である。ディレクトリエントリ１６とＦＡＴエントリ１７との読込みでは、図１４（ａ）の場合と同様にＤＥＮＴ＿ＡＣＣＥＳＳ＃１とＦＡＴ＿ＡＣＣＥＳＳ＃１とを読込む。しかしながら、データ領域は不連続なので、各クラスタをアクセスする前にシークが発生する。このため、図１４（ａ）と比較すると、同じハードディスク仕様に対して、総アクセス時間は４０ミリ秒増加して８８ミリ秒となる。
【００１５】
さらに、データの分断化が進むと、１回のＦＡＴアクセス単位２３で読込めるエントリの中に、該当ファイルに対するＦＡＴエントリ１７が１つしか存在しなくなる。例えば、後述する図１６に示す曲Ａ.audファイルにおいては、ＦＡＴアクセス単位（ＦＡＴ＿ＡＣＣＥＳＳ＃２）中で有効なＦＡＴエントリはＦＡＴ＃１１６０のみで、ＦＡＴ＿ＡＣＣＥＳＳ＃３中で有効なＦＡＴエントリはＦＡＴ＃２１７０のみとなっている。図１４（ｃ）は、このようにクラスタが極度に分断化されたファイルを読み出す場合のハードディスクＨＤＤ＃３へのアクセスタイミングを表す図である。この場合、１クラスタ分のデータを読出す毎にヘッドはＦＡＴ領域とデータ領域とを行き来して２回シークが発生するので、３クラスタ分のデータを読むのに要する時間は、図１４（ｂ）の場合よりさらに４０ミリ秒増加して１２８ミリ秒となる。この値は、ファイルが連続クラスタで構成されている図１４（ａ）の場合の約３倍に相当する。
【００１６】
上述のように、データが分断化されてディスク型記録メディア上に記録されると、そのアクセスに要する時間が大きく増加する。以下、この課題を解決するために考案されている２つの従来技術について説明する。
【００１７】
（従来技術１）
まず、データが分断化されて記録されるのを防止して、一定のデータアクセス性能を保証する記録管理方法（例えば、特許文献１参照。）について図１５（ａ）（ｂ）を用いて説明する。
【００１８】
図１５（ａ）（ｂ）は、特許文献１に記載の記録管理方法のデータ分断化防止手順を表す図である。図１５（ａ）は、１クラスタ長のデータ（クラスタ＃６４）からなるファイルＣに対して、新たに１クラスタ分のデータを追加しようとしている状況を表している。この時、クラスタ＃６４に連続するクラスタ、クラスタ＃６５とクラスタ＃６６はファイルＤとして使用されており、その後のクラスタ＃６７もファイルＥとして使用されている。このため、通常の方法でデータ追加を実施すると、ファイルＣは、クラスタ＃６４の次にクラスタ＃６８が続くというように、不連続なクラスタに分断されて記録されることになる。
【００１９】
このことから、特許文献１に示された記録管理方法では、ファイルに対するデータの追加に先だって、使用中のクラスタを並び変えて、ファイルを連続的に保存できるような空きクラスタ系列を作成する。そして、記録メディア上に分断化されて記録されているデータの記録位置を移動させて、記録メディア上で連続的に記録し直す処理を行う。この処理はデフラグ処理２４と呼ばれ、特許文献１の記録管理方法ではファイルの書込みに伴うクラスタの割当て毎にデフラグ処理２４を実行することを特徴としている。
【００２０】
図１５（ａ）においては、クラスタ＃６５とクラスタ＃６６はファイルＤによって使用されているが、これを未使用であるクラスタ＃６８及びクラスタ＃６９と交換する。これで、クラスタ＃６４とクラスタ＃６５とファイルＣを連続的に格納できる空きクラスタが確保できたので、その後、これらのクラスタに対するデータの記録を実行する。その結果、図１５（ｂ）に示すように、ファイルＣは分断化されることなく記録される。
【００２１】
（従来技術２）
また、ファイルの読出しに先だって、予め必要となるＦＡＴエントリ群を読込んで再生機器内に保持しておくことにより、実際のファイルデータへのアクセスを高速化するファイルシステム（例えば特許文献２参照。）も考案されている。
【００２２】
図１６は、特許文献２のファイルシステムを適用したオーディオ再生機器を表す図である。図１６において、オーディオ再生機器３０は、ユーザが再生を希望する曲をキー入力３１として受付けて、対応する曲データをハードディスクＨＤＤ♯３（１０）から読み出してアナログオーディオ信号３２として出力する。
【００２３】
オーディオ再生機器３０は、機器全体の動作を制御するプロセッサＣ（３３）と、プロセッサＣ（３３）が実行する命令コードが記録されている不揮発性メモリＲＯＭ＃３（３４）と、プロセッサＣ（３３）の作業用メモリである主メモリＣ（３５）と、デジタル音楽データをファイルとして記録しているハードディスクＨＤＤ＃３（１０）と、符号化されたデジタルオーディオストリームを入力として対応するアナログオーディオ信号３２を出力するＡｕｄｉｏコントローラ３７と、ユーザのキー入力３１を受付けるキーボードインタフェース３８と、これらの構成要素を結合しているシステムバス３９とからなる。
【００２４】
図１６は、ハードディスクＨＤＤ＃３（１０）に１つのファイル「曲Ａ．aud」が記録されている場合を示している。このファイルは図１４（ｃ）を用いて説明したように、極度に分断化されて記録されている場合に相当する。すなわち、ファイルを構成するクラスタが、クラスタ＃１１６０からクラスタ＃２１７０といったように大きく隔たっているので、各クラスタに対応するＦＡＴエントリ１７（ＦＡＴ＃１１６０、ＦＡＴ＃２１７０など）が異なるＦＡＴアクセス単位２３（ＦＡＴ＿ＡＣＣＥＳＳ＃２、ＦＡＴ＿ＡＣＣＥＳＳ＃３など）に属することになっている。
【００２５】
プロセッサＣ（３３）は、ソフトウェアモジュールであるファイルシステム４４を実行して、ハードディスクＨＤＤ＃３（１０）上のデータに対するアクセスを制御する。主メモリＣ（３５）上には、ファイルシステム４４が使用する管理情報がファイルシステム管理情報Ｃ（４５）として存在する。ファイルシステム管理情報Ｃ（４５）には、ハードディスクのＦＡＴ領域１５内のデータを一時記録するＦＡＴバッファ４６と、ディレクトリ領域１４のデータを一時記録するディレクトリバッファ４７と、データ領域１２のデータを一時記録するデータバッファ４８が存在する。
【００２６】
また、ファイルシステム管理情報Ｃ（４５）には個々のファイルに関する情報を保持しているファイル情報５０が存在する。ファイル情報５０は、現在アクセス中のファイル、すなわち、現在オープンされているファイルに対して１つづつ存在する。ファイル情報５０は、ファイル名５１と、属性５２と、ファイルサイズ５３と、対象ファイルがデータバッファ４８上でどこに保持されているかを示すバッファアドレス５４と、対象ファイルのどのデータバイトに現在アクセス中かを表すファイルポインタ５５をもつ。
【００２７】
特許文献２の記載のファイルシステムでは、さらに、ファイル情報５０中にクラスタリンクテーブル５６をもつことを特徴としている。クラスタリンクテーブル５６は、対象ファイルを構成するクラスタの番号が、構成順序に従って記録されている。図１６では、ファイル「曲Ａ.aud」の先頭クラスタはクラスタ＃１１６０であり、その後、クラスタ＃２１７０、クラスタ＃３２９０と続くことがクラスタリンクテーブル５６からわかる。
【００２８】
クラスタリンクテーブル５６は、対象ファイルへのアクセスに先だって、そのファイルをオープンした時に生成される。ファイルシステム４４は、ファイルのオープン時にそのファイルを構成する全てのクラスタの番号を、ＦＡＴ領域１５を検索してリストアップし、クラスタリンクテーブル５６として保持しておく。これにより、対象ファイルのアクセス時は、ＦＡＴエントリ１７を読込む必要が無くなる。
【００２９】
図１６に示す極度に分断化された曲Ａ.audファイルを通常のファイルシステムでアクセスすると、図１４（ｃ）に示すように１クラスタ毎にＦＡＴエントリ１７にアクセスする必要がある。これに対して、クラスタリンクテーブル５６を用いてアクセスする場合、データアクセス時にＦＡＴエントリの読込みは不要となり、図１４（ｂ）と同様にクラスタの転送時間と、次のクラスタへ移動する時のシーク時間でアクセスできる。すなわち、特許文献２のファイルシステムによれば、高レベルに分断化されている記録データに対しても、中レベルに分断化した場合と同様のデータアクセス性能が実現できる。
【特許文献１】特開２００１−２０２２７４号公報（第７頁、第１図）
【特許文献２】特開２００２−１６３１３６号公報（第１０頁、第１図）
【特許文献３】特開平８−２４１２３０号公報（第８頁、第１図）
【特許文献４】特開２００１−２４９６６９号公報（第５５頁、第２０図）
【発明の開示】
【発明が解決しようとする課題】
【００３０】
以下、上述した、従来技術１、２の問題点について説明する。
まず、従来技術１では、ファイルにデータを追加する時にデフラグ処理２４を行い、そのファイル全体を格納できる連続クラスタを生成するが、このデフラグ処理２４に長い時間かかる可能性がある。図１５（ａ）（ｂ）で説明したように、デフラグ処理２４ではデータ領域１２のクラスタ１３間でのデータ交換が必要となる。デフラグ処理２４で移動するクラスタは、新たに連続クラスタを生成するために移動するクラスタだけでない。その移動に伴って既存ファイルの連続性が損なわれる場合、その連続性を復元するためにクラスタの移動が必要となる。
【００３１】
図１５（ａ）（ｂ）では、クラスタ＃６４の後に新たに１つの空きクラスタを生成すればファイルＣの新たな書き込みに対応できるが、ファイルＤの連続性を保持するためにはクラスタ＃６５とクラスタ＃６６は一緒に移動させる必要がある。このように、ファイルの記録状態によっては、ファイルの書き込みに先だって移動させるクラスタ数が増加し、その所要時間が極端に長くなる可能性がある。例えば、未使用クラスタが極度に分断化しているハードデスクＨＤＤ♯３（１０）に対して、数ギガバイトの動画データを連続的に記録しようとすれば、何十分も時間がかかることがある。すなわち、従来技術１は既存のファイルの記録状態により、新たなファイルデータの追加に長時間を要する可能性があるという課題を有している。
【００３２】
この課題に対して、ファイルの記録単位であるクラスタ１３を固定長でなく可変長とすることで、デフラグ処理２４を効率的に実行する方法が考案されている。（例えば特許文献３参照。）。しかしながら、この方法では、ファイルのフォーマットがＦＡＴファイルシステムと互換性のないものとなるので、ハードディスクＨＤＤ♯３（１０）が記録メディアを交換できるリムーバブル・メディアであっても、広く普及している情報処理端末（例えば、パーソナルコンピュータ）で使用することができないという課題があった。
【００３３】
（従来技術２）
また、図１７に示すように、従来技術２のファイルシステム４４では、対象ファイルのデータへアクセスする前に、クラスタリンクテーブル５６を作成する時間（図１７の「クラスタリンクの作成期間」）が必要となる。すなわち、クラスタリンクテーブル５６を作成すると、ＦＡＴ領域１５にアクセスする必要はなくなるが、クラスタリンクを作成するための時間を考慮すると、対象ファイルをオープンし始めてから全データを一通り読み終えるまでの総所要時間は、図１４（ｃ）で説明した「高レベルのセクタ分断度」の場合と同じ値となる。よって、アクセス性能が改善されるのは、ファイルのデータにランダムアクセスする場合に限られる。つまり、従来技術２は、動画ファイルを再生する時のように一度のファイルオープンでそのファイルのデータを前から順に一通りしかアクセスしない場合には、アクセス性能が改善されないという課題を有している。
【００３４】
本発明は、上述の課題を解決するもので、ファイル作成に長時間を要することなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行でき、かつ、従来のＦＡＴファイルシステムと互換性のあるファイルアクセス方法、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００３５】
上記課題を解決するために、本発明の請求項１に係るファイルアクセス方法は、データファイルをブロック単位で記録する記録メディアに対して前記データファイルの記録及び読み出しを行うファイルアクセス方法において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成して前記記録メディアに記録し、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別することを特徴とする。
【００３６】
また、本発明の請求項２に係るファイルアクセス方法は、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと１対１に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行うファイルアクセス方法において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込み、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別することを特徴とする。
【００３７】
また、本発明の請求項３に係る情報処理装置は、データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行う情報処理装置において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成するファイル記録手段と、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とする。
【００３８】
また、本発明の請求項４に係る情報処理装置は、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと１対１に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行う情報処理装置において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込むファイル記録手段と、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とする。
【発明の効果】
【００３９】
本発明のファイルアクセス方法、及び情報処理装置によれば、ファイルの作成（記録）に長時間を要することがなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行でき、かつ、従来のＦＡＴファイルシステムと互換性のあるファイルアクセスを実現できる。
【００４０】
すなわち、本発明の請求項１に係るファイルアクセス方法によれば、データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行うファイルアクセス方法において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成して前記記録メディアに記録し、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別することを特徴とするので、ファイルの作成（記録）に長時間を要することがなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行することができる効果がある。
【００４１】
また、前記識別ファイルを記録した記録メディアに対して、従来の手順でアクセスすることができ、従来のファイルシステムと互換性のあるファイルアクセスを実現できる効果がある。
【００４２】
また、本発明の請求項２に係るファイルアクセス方法によれば、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと１対１に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行うファイルアクセス方法において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込み、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別することを特徴とするので、ストリームデータファイルに対するシーケンシャルなアクセスを高速に実行することができ、また、分断されたストリームデータファイルに対するシーケンシャルなアクセスにおいても高速に実行することができる効果がある。
【００４３】
また、本発明の請求項３に係る情報処理装置によれば、データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行う情報処理装置において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成するファイル記録手段と、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とするので、ファイルの作成（記録）に長時間を要することがなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行することができる効果がある。
【００４４】
また、前記識別ファイルを記録した記録メディアに対して、従来の手順でアクセスすることができ、従来のファイルシステムと互換性のあるファイルアクセスを実現できる効果がある。
【００４５】
また、本発明の請求項４に係る情報処理装置によれば、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと１対１に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行う情報処理装置において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込むファイル記録手段と、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とするので、ストリームデータファイルに対するシーケンシャルなアクセスを高速に実行することができ、また、分断されたストリームデータファイルに対するシーケンシャルなアクセスにおいても高速に実行することができる効果がある。
【発明を実施するための最良の形態】
【００４６】
（実施の形態１）
以下、本実施の形態１に係るファイルアクセス方法、及び情報処理装置について図を用いて説明する。図１は、本実施の形態１に係る情報処理装置におけるファイルアクセス方法で使用するファイル管理情報を表す図である。
【００４７】
図１において、曲データファイル「曲１．ａｕｄ」１１Ａは、クラスタ＃１１６０、クラスタ＃２１７０等に分割して記録されているが、これらのファイルを構成するクラスタ群は、ＦＡＴエントリ１７のリスト、すなわち、ＦＡＴ＃１１６０、ＦＡＴ＃２１７０、ＦＡＴ＃３２９０、…の単方向リストとして記録されている。また、対応するクラスタリンクファイル「曲１．ｆａｔ」６０にファイルコンテンツとして、クラスタの番号がリストアップされている。
【００４８】
以上のようなファイル管理情報を用いるファイルアクセス方法について説明する。
まず、図１を用いて、曲データファイルを記録する際に、ファイル管理情報がどのように構築されるかを説明する。
【００４９】
最初に、曲データファイル「曲１．ａｕｄ」１１Ａを記録するに際しては、該曲データファイルを構成するクラスタ群の記録位置がどの程度分散配置されているかを表す分断化率を計測する。そして、分断化率が所定の閾値を超えていれば、クラスタリンクファイル「曲１．ｆａｔ」６０を生成し、そのファイルコンテンツとして、「曲１．ａｕｄ」１１Ａを構成するクラスタ番号をリストアップする。これにより、該クラスタリンクファイルよりなるファイル管理情報が構築される。一方、分断化率が前記閾値を超えていなければ、クラスタリンクファイル６０を作成しない。
【００５０】
次に、記録されているデータの読み出し動作について説明する。曲データファイル「曲１．ａｕｄ」１１Ａを読み出す場合、最初に、対応するクラスタリンクファイル「曲１．ｆａｔ」６０が存在するかをチェックする。存在すれば、そのクラスタリンクファイルを読み出して「曲１．ａｕｄ」１１Ａを構成するクラスタ群を同定し、その後、同定したクラスタ群（クラスタ＃１１６０、クラスタ＃２１７０、クラスタ＃３２９０、…）を読出す。クラスタリンクファイル「曲１．ｆａｔ」６０が存在しなければ、ＦＡＴエントリ１７のリストを辿って、「曲１．ａｕｄ」１１Ａを構成するクラスタ群を同定する。
【００５１】
このように、従来のファイルアクセス方法において、データファイルが分断化されていると、そのデータファイルに対応するＦＡＴエントリ１７がＦＡＴ領域１５の広範囲に分散して配置されることから、ＦＡＴエントリ１７のリストからファイルを構成するクラスタ群を特定しようとすればＦＡＴ領域１５に何度もアクセスしなければならないのに対し、本実施の形態１では、データファイルを構成するクラスタ群が広範囲に分断化された場合においても、該データファイルに対応するクラスタリンクファイルを作成し、読み出し時に該クラスタリンクファイルを読み出して、該データファイルを構成するクラスタ群を識別することにより、分断化されたデータファイルの読み出し時におけるＦＡＴ領域１５へのアクセスを少なくすることができる。
【００５２】
次に、上記実施の形態１に係るファイルアクセス方法を適用した情報処理装置の具体例を、図２〜図９を用いて説明する。
図２は、本実施の形態１に係るファイルアクセス方法を適用したオーディオ再生システムの構成を示す図である。
【００５３】
図に示すオーディオ再生システムは、オリジナルの曲ファイル１１Ｂをもつ音源としてのパーソナルコンピュータ９０と、それにＵＳＢ回線９１を介して接続して、オリジナル曲ファイル１１Ｂの複製である曲データファイル１１Ａを作成して保持する携帯オーディオ再生機器３０Ａとを有する。なお、携帯型オーディオ再生機器３０Ａは、パーソナルコンピュータ９０とのＵＳＢ接続を解除した状態では、内部に保持している曲データファイル１１Ａを再生する携帯型のオーディオ再生専用機として動作する。
【００５４】
携帯型オーディオ再生機器３０Ａは、主な構成要素を接続するシステムバス＃１（３９Ａ）と、周辺回路を接続する周辺回路バス９２と、これらのバス上でのデータ転送を制御するＤＭＡＣ９３とを有する。
【００５５】
システムバス＃１（３９Ａ）には、パーソナルコンピュータ９０からデータファイル１１Aを記録する時に、前記データファイルを構成する各クラスタ１３の記録位置がＨＤＤ＃１（１０Ａ）上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、クラスタ１３の識別番号を一覧表示するクラスタリンクファイル６０を作成するファイル記録手段（図示せず）と、該データファイル１１Aを読み出す時に、前記クラスタリンクファイル６０が存在するかを確認し、存在する場合は前記クラスタリンクファイル６０を読み出して、前記データファイル１１Aを構成するクラスタ群を識別するファイル読み出し手段（図示せず）とを有し、機器全体の動作を制御するプロセッサ＃１（３３Ａ）と、プロセッサ＃１（３３Ａ）が実行する命令コードが記録されている不揮発性メモリＲＯＭ＃１（３４Ａ）と、プロセッサ＃１（３３Ａ）の作業用メモリである主メモリ＃１（３５Ａ）と、電源ライン＃１（９９Ａ）からの電力を充電し、機器に蓄積した電力を供給するバッテリー回路９５Ａと、ユーザのキー入力３１Ａを受付けるキーボードインタフェース＃１（３８Ａ）が接続している。
【００５６】
プロセッサ＃１（３３Ａ）は、ソフトウェアモジュールであるファイルシステム４４Ａを実行して、ハードディスクＨＤＤ＃１（１０Ａ）上のデータに対するアクセスを制御するが、主メモリ＃１（３５Ａ）上にはファイルシステム４４Ａが使用する管理情報がローカルファイルシステム管理情報＃１（４５Ａ）として存在する。
【００５７】
周辺回路バス９２には、デジタル音楽データをファイル１１Ａとして記録しているＨＤＤ＃１（１０Ａ）と、符号化されたデジタルオーディオストリームを入力として対応するアナログオーディオ信号３２Ａを出力するデコーダ９６と、ハードディスク１０Ａから読み出されたデジタルオーディオストリームをデコーダ９６に入力されるまでの間一時的に滞留するストリームバッファメモリ９８と、ＵＳＢ回線９１上での通信データを終端するＵＳＢ  Ｉ／Ｆ＃１（９７Ａ）とが接続している。
【００５８】
ＤＭＡＣ９３は、４つの独立したＤＭＡＣ通信チャネル、すなわち、ハードディスク＃１（１０Ａ）と主メモリ＃１（３５Ａ）との間の通信チャネルＣＨ１と、ＵＳＢ Ｉ／Ｆ＃１（９７Ａ）と主メモリ＃１（３５Ａ）との間の通信チャネルＣＨ２と、ＨＤＤ＃１（１０Ａ）からストリームバッファメモリ９８への通信チャネルＣＨ３と、ストリームバッファメモリ９８からデコーダ９６への通信チャネルＣＨ４をもつ。ＣＨ３とＣＨ４は周辺回路バス９２に閉じた転送なので、プロセッサ＃１（３３Ａ）による主メモリ＃１（３５Ａ）へのアクセスといったシステムバス＃１（３９Ａ）に閉じたデータ転送と同時に実行することができる。さらに、ストリームバッファメモリ９８には、２つのストリームバッファ１０１、ストリームバッファ＃１（１０１Ａ）とストリームバッファ＃２（１０１Ｂ）が存在するので、ＣＨ４が一方のストリームバッファからデータを読み出している間に、もう一方のストリームバッファにＣＨ３がデータを書き込むことができる。
【００５９】
次にパーソナルコンピュータ９０の構成について、携帯型オーディオ再生機器３０Ａとの相違部分についてのみ説明する。パーソナルコンピュータ９０では周辺回路バス９２は存在せず全ての構成要素がシステムバス＃２（３９Ｂ）に接続されており、デジタルオーディオストリームを復号するためのデコーダ９６と、デコーダ９６の入力バッファであるストリームバッファメモリ９８は存在しない。
【００６０】
なお、パーソナルコンピュータ９０は、内蔵のＨＤＤ＃２（１０Ｂ）にオリジナルの曲ファイル１１Ｂをもつが、これは、図２には示されていないＣＤ−ＲＯＭインタフェースまたはネットワークインタフェースを介して、ＣＤ−ＲＯＭメディアまたはネットワークから取得されたものである。
【００６１】
パーソナルコンピュータ９０は、このオリジナル曲ファイル１１ＢをＵＳＢ回線９１で接続している携帯型オーディオ再生機器３０Ａに複製するプロセス（曲データのチェックアウトと呼ぶ）を主体的に実行する。このためには、パーソナルコンピュータ９０は、携帯型オーディオ再生機器３０Ａが内蔵しているＨＤＤ＃１（１０Ａ）にアクセスする必要があるが、これはリモートファイルシステム＃２管理情報４５Ｃを用いて実現される。すなわち、パーソナルコンピュータ９０は、内蔵のハードディスクＨＤＤ＃２にアクセスするためのファイルシステムだけでなく、ＵＳＢ回線９１を介してアクセスできるリモートなＨＤＤ＃１用のファイルシステムも有する。
【００６２】
本実施の形態では、曲データのチェックアウトをパーソナルコンピュータ９０が主体的に実施する場合について示したが、携帯型オーディオ再生機器３０Ａが主体的に実行する場合は、３０Ａ側にリモートファイルシステムを持たせれば対応できる。
【００６３】
携帯型オーディオ再生機器３０Ａの内蔵ハードディスクＨＤＤ＃１（１０Ａ）には、図１に示す形式でファイルが記録されている。上述のようにデータ領域１２へのアクセスはクラスタ１３単位で実行されるが、同様にディレクトリ領域１４およびＦＡＴ領域１５へのアクセスに関してもあるまとまった単位で実行した方が効率的である。ディレクトリ領域１４に対してはディレクトリアクセス単位２２でアクセスし、ＦＡＴ領域１５に対してはＦＡＴアクセス単位２３でアクセスする。
【００６４】
ディレクトリエントリ１６の属性において、曲１のデータファイルである「曲１.aud」はＲｅａｄ  Ｏｎｌｙとなっているが、これはこのファイルが一旦作成された後は曲再生時に読み出されるだけである事実を反映している。もし曲データファイルが書き込み可能ならば、ファイルの構成情報がＦＡＴ領域１５とクラスタリンクファイル６０に重複して存在するために、ファイルのサイズが変更されるとこれら２つの構成情報を同期させながら変更しなければならず、ファイル書き込みの処理コストが増加する。したがって、オーディオ再生機器３０Ａのようにファイルの読取りを主に実行する装置の性能改善に寄与するが、通常のデータファイルのように読取りと書き込みをランダムに実行する必要がある装置に対しては、ファイルへのアクセスコストを増加させてしまう。
【００６５】
また、ディレクトリエントリ１６の属性において、クラスタリンクファイル「曲１．fat」のＳｙｓｔｅｍとなっているが、これはこのファイルがファイルシステムにより使用されたもので、ユーザによるアクセスは禁止されていることを表す。
【００６６】
次に、図３により、ファイルシステム管理情報について説明する。図３は、携帯型オーディオ再生機器３０Ａの内蔵ハードディスクＨＤＤ＃１（１０Ａ）を管理するファイルシステムの情報を表しており、図２中のローカルファイルシステム情報＃１管理情報４５Ａ、または、パーソナルコンピュータ９０のリモートファイルシステム＃２管理情報４５Ｃのデータ構造を表している。ここでは、図１６に示すファイルシステム管理情報４５との違いについてのみ説明する。ローカルファイルシステム情報＃１管理情報４５Ａ、リモートファイルシステム＃２管理情報４５Ｃは、図１６に示すファイルシステム管理情報４５とは異なり、ファイル情報５０に分断度１１０とクラスタリンクファイルへのポインタ１１１とを含むことを特徴とする。
【００６７】
分断度１１０は、対応するファイルがどの程度分断化して記録されているかを表す。分断度１１０は、図１３のファイルＡ（１１Ａ）のように連続するクラスタから構成されているファイルに対しては最小値となり、図１の曲１データファイル１１Ａのように、ファイルを構成するクラスタが分散して配置されていると大きな値となる。分断度１１０は、ファイルを作成したり、ファイルに書き込む時に計測され、この値が所定のしきい値を超えた場合にクラスタリンクファイル６０を作成する。
【００６８】
図３のクラスタリンクファイルへのポインタ１１１は、対応するファイルがクラスタリンクファイル６０を伴っている場合に、そのクラスタリンクファイルのファイル情報５０へのポインタが設定される。ファイルを読取る時に、そのファイル情報５０にクラスタリンクファイルへのポインタ１１１が設定されていれば、ＦＡＴエントリ１７を検索する代わりに、そこで指示されたクラスタリンクファイル６０を読み出して、対象ファイルの構成情報を取得する。
【００６９】
次に、携帯型オーディオ再生機器３０Ａおよびパーソナルコンピュータ９０において実行されるソフトウェアについて説明する。図４は、上記２つの機器で実行されるソフトウェアのモジュール構成を表している。
【００７０】
パーソナルコンピュータ９０には、アプリケーションとしてコンテンツチェックアウトモジュール１２０が存在し、これはローカルファイルシステム＃２（４４Ｂ）を用いて内蔵ＨＤＤ＃２（１０Ｂ）にアクセスして、オリジナル曲ファイル１１Ｂを読み出す。その後、読み出した曲データを、リモートファイルシステム＃２（４４Ｃ）を用いて携帯型オーディオ再生機器３０Ａに保存する。リモートファイルシステム＃２（４４Ｃ）は、メディアに対するドライバとしてリモートメディアクライアント１２２を使用するが、リモートメディアクライアント１２２はＵＳＢドライバ＃２（１２３Ｂ）を用いて携帯型オーディオ再生機器３０Ａ内のリモートメディアサーバ１２４との間で情報をやり取りする。リモートメディアサーバ１２４は、ＵＳＢドライバ＃１（１２３Ａ）を介してリモートメディアクライアント１２２からの指示を受け取り、その指示に基づいてＨＤＤドライバ＃１（１２１Ａ）を制御して内蔵ＨＤＤ＃１（１０Ａ）へのファイルの書き込みを実行し、その実行結果をリモートメディアクライアント１２２に返す。
【００７１】
携帯型オーディオ再生機器３０Ａには、アプリケーションとして音楽再生モジュール１２５が存在し、これはローカルファイルシステム＃１（４４Ａ）を用いて内蔵ＨＤＤ＃１（１０Ａ）にアクセスして、曲データファイル１１Ａをストリームバッファ１０１に読み出す。また、音楽再生モジュール１２５はストリームバッファ１０１中のデータをデコーダ９６に転送し、デコーダドライバ１２６により音楽の復号を起動する。
【００７２】
次に、各ソフトウェアモジュールがどのように協調動作するかについて詳細に説明する。
図５は、パーソナルコンピュータ９０から携帯型オーディオ再生機器３０Ａ内のファイルにアクセスするためのリモートファイルシステム＃２（４４Ｃ）を構築する手順を表している。コンテンツチェックアウトモジュール１２０は、ＵＳＢ回線９１を介して携帯型オーディオ再生機器３０Ａが接続されるとリモートメディア検出１３０の通知を受け取る。これを受けてＵＳＢ接続した機器が正しいデバイスであるかどうかをチェックするためのデバイス認証処理１３１を実行する。デバイス認証処理１３１では、リモートメディアクライアント１２２に認証鍵の交換を要求する。リモートメディアクライアント１２２はＵＳＢ回線９１を介して鍵交換要求を携帯型オーディオ再生機器３０Ａ内のリモートメディアサーバ１２４に送付する。リモートメディアサーバ１２４は携帯型オーディオ再生機器３０Ａ固有のデバイス認証鍵を応答としてリモートメディアクライアント１２２に送付する。コンテンツチェックアウトモジュール１２０は、このデバイス認証鍵をリモートメディアクライアント１２２から受け取ると、それが正しいものであるかどうかをチェックし、正しい場合はマウント処理１３２を実行する。
【００７３】
マウント処理１３２では、リモートメディアクライアント１２２を介してマウント要求をリモートメディアサーバ１２４に送付する。リモートメディアサーバ１２４は、ＨＤＤドライバ＃１（１２１Ａ）を用いて内蔵ＨＤＤ＃１（１０Ａ）に関する情報（デバイス情報と呼ぶ）を取得して、これをリモートメディアクライアント１２２に通知する。コンテンツチェックアウトモジュール１２０は、このデバイス情報を取得するとリモートファイルシステム♯２（４４Ｃ）を生成する。
【００７４】
次に、パーソナルコンピュータ９０上の曲ファイルを携帯型オーディオ再生機器３０Ａにチェックアウトする時に、ソフトウェアモジュールがどのように動作するかについて図６を用いて説明する。
【００７５】
コンテンツチェックアウトモジュール１２０は、ユーザからのチェックアウト要求１４０を受けつけると、まずファイル準備処理１４１を実行して、転送元となるファイル（例えば、オリジナル曲ファイル１１Ｂ）をオープンし、転送先のファイルを新規に作成する。この転送先ファイルは、例えば分断配置された複数のクラスタからなるものであり、図１では該複数のクラスタが曲データファイル１１Ａを構成するものとなっている。転送元ファイルのオープンはローカルファイルシステム＃２（４４Ｂ）で直接実行できるが、転送先ファイルの作成はマウント処理１３２で構築したリモートファイルシステム＃２（４４Ｃ）を用いて実行する。
【００７６】
リモートファイルシステム＃２（４４Ｃ）では、それが管理するメディアのドライバソフトウェアとしてリモートメディアクライアント１２２を使用する。リモートメディアクライアント１２２はＵＳＢ回線９１を介して携帯型オーディオ再生機器３０Ａ内のリモートメディアサーバ１２４に要求を伝える。リモートメディアサーバ１２４は受信した要求に基づいてＨＤＤドライバ＃１（１２１Ａ）を制御して携帯型オーディオ再生機器３０Ａに内蔵しているＨＤＤ＃１（１０Ａ）上のファイルにアクセスし、そのアクセス結果をリモートメディアクライアント１２２に応答する。上記のクライアント−サーバ型の協調動作により、リモートメディアクライアント１２２は遠隔地のハードディスク（本例ではＨＤＤ＃１）へのアクセス機能をリモートファイルシステム＃２に提供する。
【００７７】
コンテンツチェックアウトモジュール１２０は、ファイル準備処理１４１において転送元ファイルと転送先ファイルの準備に成功すると、コンテンツ転送処理１４２を実行して転送先ファイル（この時点では新規作成直後なので空のファイル）へ転送元ファイルのコンテンツを転送する。ソースファイルのコンテンツの読出しにおいては、ＦＡＴエントリ１７を読み出してコンテンツが格納されているクラスタを特定し、そのクラスタを読み出す。読み出したコンテンツを転送先ファイルに書き込む場合も、まずＦＡＴエントリ１７を読み出した空きクラスタを確保して、そのクラスタにコンテンツを書き込む。ただし、転送先ファイルは携帯型オーディオ再生機器３０Ａにあるのでファイルへのアクセスはリモートファイルシステム４４Ｃを用いて、前記のクライアント−サーバ型の協調動作により実現されている。
【００７８】
コンテンツ転送処理１４２が完了すると、「転送先ファイルのクローズ処理」１４３を実行して転送先ファイルへの更新を確定する。ディレクトリエントリ１６のファイルサイズを更新し、更新後のエントリをリモートのＨＤＤ＃１（１０Ａ）のディレクトリ領域１４にライトする（ディレクトリエントリ更新１４４）。ＦＡＴエントリ１７についても、転送先ファイルのコンテンツを格納しているクラスタに対応したＦＡＴエントリのチェーンを作成して、リモートのＨＤＤ＃１（１０Ａ）のＦＡＴ領域１５に書き込む。この過程でこのファイルの分断度１１０を計測し、分断度が高い場合は「クラスタリンクファイルの作成」１４６を実行して、このファイルに対するクラスタリンクファイル６０を作成する。
【００７９】
次に、携帯型オーディオ再生機器１００が上記のチェックアウト手順で作成された曲ファイルを再生する時に、ソフトウェアモジュールがどのように動作するかについて図７と図８に基づいて説明する。図８はクラスタリンクファイル６０が存在しない従来のアクセス手順を表しており、図９はクラスタリンクファイル６０を用いるアクセス手順を表している。
【００８０】
まず、図７について説明する。音楽再生モジュール１２５は、ユーザから再生要求１４７を受付けるとそこで指示された曲を再生するために、まず「ファイル再生準備１４８」を実行して対応する曲ファイルをオープンする。ここでは、曲ファイル１１Ａのディレクトリエントリ１６を読み込み、その後、この曲ファイルに対するクラスタリンクファイル６０が存在しないかチェックするためにそのディレクトリエントリの取得を試みる。図８ではクラスタリンクファイル６０が存在せず、このディレクトリエントリの取得が失敗する場合を示している。
【００８１】
その後、音楽再生モジュール１２５は「ストリームバッファ１へのコンテンツのロード１４９」を実行し、曲ファイル１１Ａのコンテンツをストリームバッファ＃１（１０１Ａ）に読み出す。この時、クラスタリンクファイル６０が存在しないので、ＦＡＴエントリ１７を読み込んで曲ファイル１１Ａを構成しているクラスタ１３を識別する必要がある。曲ファイル１１Ａが分断化しており、図１で説明したように１回のＦＡＴアクセス単位２３で１つしか有効なＦＡＴエントリ１７が存在しないならば、コンテンツを１クラスタ分読み出す毎に、ＦＡＴエントリ１７を読み直すことになる。このため、このハードディスクアクセスは、図１４の「高レベルのセクタ分断度」の場合に相当し、転送性能が低下する。
【００８２】
ストリームバッファ＃１（１０１Ａ）へのコンテンツの読み出しが完了すると、音楽再生モジュール１２５は「ストリームバッファ１のデコード起動１５０」を実行し、ストリームバッファ＃１（１０１Ａ）上のデータに対するデコーダ９６による復号処理を起動する。デコーダ９６は一度起動されると、ストリームバッファが空になるまでそこからデータを取り出して復号動作を継続する。
【００８３】
音楽再生モジュール１２５は、このデコーダ９６による音楽データの復号処理と並列に、「ストリームバッファ２へのコンテンツのロード１５１」を実行し、曲ファイル１１Ａのコンテンツをストリームバッファ＃２（１０１Ｂ）に読み出す。この読み出しは、前記の「ストリームバッファ１へのコンテンツのロード１４９」と同様の手順となる。ＨＤＤ＃１（１０Ａ）へのアクセス速度は、デコーダ９６による復号速度より一桁以上高速であるので、「ストリームバッファ２へのコンテンツのロード１５１」はストーリムバッファ１のコンテンツをデコードし終える前に完了する。そうでなければ、ストリームバッファ１０１がアンダーフローとなり音跳びが発生する。
【００８４】
デコーダ９６によるストリームバッファ＃１（１０１Ａ）上のコンテンツの復号が完了すると、音楽再生モジュール１２５は「ストリームバッファ２のデコード起動１５２」を実行する。この後、再度、ストリームバッファ＃１（１０１Ａ）へのコンテンツの読み出しを実行する。以下、曲データファイル１１Ａの終端に達するまでストリームバッファの一方にコンテンツを読み出し、もう一方のストリームバッファ内のコンテンツをデコードする手順を繰り返す。
【００８５】
次に、クラスタリンクファイル６０を用いたファイルアクセスについて図８を用いて説明する。図８の説明としては、前述の図７の相違部分についてのみ説明する。
【００８６】
「ファイル再生準備１４８Ａ」において、曲ファイルに対するクラスタリンクファイル６０のディレクトリエントリの取得を試みる。図８ではクラスタリンクファイル６０が存在することから、このディレクトリエントリの取得に成功する。
【００８７】
その後、「ストリームバッファ１へのコンテンツのロード１４９Ａ」により、曲ファイル１１Ａのコンテンツをストリームバッファ＃１（１０１Ａ）に読み出すが、「曲コンテンツのロード１５４」に先だって、「クラスタリンクファイルのリード１５３」を実行してクラスタリンクファイル６０の内容を１クラスタ１３だけ読み出す。ここで読み出したデータにより曲ファイル１１Ａを構成しているクラスタ１３を識別することができるので、「曲コンテンツのロード１５４」では、ＦＡＴエントリ１７を読み込むことなくコンテンツのみを読み出すことができる。
【００８８】
また、クラスタ１３のサイズを１６キロバイトとすると、１クラスタ分のクラスタリンクファイル６０には５１２個のクラスタ番号が記録されているので、これにより８メガバイト分の曲ファイル１１Ａを読み出すことができる。８メガバイトの曲コンテンツは、曲の再生速度を１６キロバイト／秒とすると約８分に相当するので、通常の曲ならば１曲がすべて収まる。よって、図８の手順では「ストリームバッファ１へのコンテンツのロード１４９Ａ」でクラスタリンクファイル６０を一度読み出せば、その後の「ストリームバッファ２へのコンテンツのロード１５１Ａ」や、再度の「ストリームバッファ１へのコンテンツのロード１４９Ｂ」ではクラスタリンクファイル６０を読み出す必要なく、曲コンテンツをロードできる。
【００８９】
次に、図８の手順に対するハードディスクへのアクセスシーケンスを図９に示す。図９に示すように、曲１データファイルが、クラスタ＃１１６０、クラスタ＃２１７０、クラスタ＃３２９０のように極度に分断化されて記録されている場合でも、それを構成するクラスタ群はクラスタリンクファイルに集約して記録されているので、クラスタリンクファイルを１クラスタ分だけ読み出すと、数メガバイト分の曲１データファイルを読み出すことができるので、ファイル構成を取得するためのハードディスクアクセスの処理負荷は無視できるほど低くなる。これに対して、図１４（ｃ）に示したＦＡＴエントリ１７を用いたファイルアクセスでは、１クラスタの曲１データファイルを読み出すのに１つのＦＡＴエントリ１７を読み込む必要があるため、ハードディスクアクセスの処理負荷は高くなる。
【００９０】
以上のような本発明の実施の形態１に係るファイルアクセス方法は、分断化されたファイルを構成するクラスタ群に対応するクラスタリンクファイル６０を作成し、そのファイルコンテンツとしてクラスタ番号をリストアップし、分断化されたファイルを読み出す時に、読出し対象のクラスタを特定するので、ＨＤＤ１０へアクセスする回数が少なくなり、結果として、分断化されたファイルへのアクセス性能が向上する。
【００９１】
また、クラスタリンクファイル６０の構築のために、既存のファイルを移動させる等の負荷の大きな処理を行う必要は無く、さらに、ＦＡＴエントリ１７のリストを辿るための処理負荷が支配的となるが、これはファイル作成時に既に実行済みであり、その結果が作業メモリ上に残っている可能性があることから、クラスタリンクファイル６０の構築に要する時間は長くならないので、ファイルの作成（記録）に長時間を要することなく、かつ、分断されたデータファイルに対するシーケンシャルなアクセスを高速に実行することができる。
【００９２】
また、クラスタリンクファイル６０が存在するファイルに対してもＦＡＴエントリ１７を用いた従来の手順でアクセスすることができるので、ＨＤＤ１０がリムーバブル・メディアである場合でも、通常のＦＡＴファイルシステムでアクセスすることが可能であり、一般的に普及しているファイルフォーマットと互換性を保つことができる。
【００９３】
（実施の形態２）
以下、本実施の形態２に係るファイルアクセス方法、及び情報処理装置について図を用いて説明する。図１０は、本実施の形態２に係る情報処理装置におけるファイルアクセス方法で使用するファイル構成を示す図である。
【００９４】
まず、図１０に示すファイルを構築する手順について説明する。情報処理装置の記録メディアには、図１０に示すように、１曲に相当する音楽データ（曲データ６５）が、複数のトラックデータファイル６６に分割して記録されている。なお、曲データ６５には、ファイルサイズに上限（ここでは７．６８メガバイト）が設けられている。また、記録メディアには、トラックデータファイル６６と１対１で対応し、トラックデータファイル６６に関する情報としてトラック管理ファイル７０中にトラック情報７１が記録されている。
【００９５】
そしてデータファイル記録時に、各トラックデータファイル６６に関する情報をトラック情報７１にデータファイル情報７２として記録する。データファイル情報７２は、ディレクトリエントリ７４と、クラスタリンク７５とからなる。ディレクトリエントリ７４には、ディレクトリ領域１４中の対応するトラックデータファイル６６のディレクトリエントリ１６が記録される。クラスタリンク７５には、トラックデータファイル６６を構成するクラスタ番号が構成順序に従って記録される。
【００９６】
１つの曲データ６５を分割して格納している各トラックデータファイル６６に対応する各トラック情報７１は、次トラック７３により結合されて単方リストを構成している。曲を再生する順番は、プレイリスト情報ファイル８０において、曲エントリ８１の並びとして表現されている。曲エントリ８１には、対応する曲の先頭のトラック情報７１がトラック管理ファイル７０中で何番目のものかを表すトラック情報番号８２が含まれている。
【００９７】
以上のように構成されるファイルからデータファイルを読み出す手順について説明する。ユーザにより指示されたプレイリスト情報ファイル８０を前から読み込んでいき、読み出された曲エントリ８１に対応する曲を順次再生していく。このとき、ファイル読み出し手段がトラック情報７１を読み出す。トラック情報７１は固定長（ここでは１６キロバイト）であるので、曲エントリ中のトラック識別番号８２で指示されたトラック情報７１が、トラック管理ファイル７０のどこに記録されているかは容易に求まる。ファイル読み出し手段は、トラック情報７１中のデータファイル情報７２からトラックデータファイル６６を構成するクラスタ群を識別する。
【００９８】
以上のようにして、本実施の形態２に係る情報処理装置は、トラック管理ファイル７０中のデータファイル情報７２を用いて、トラックデータファイル６６にアクセスして曲データ６５を再生する。そして、１つのトラックデータファイル６６の再生が完了すると、対応するトラック情報７１中の次トラック７３から後続のトラック情報７１を識別し、対応するトラックデータファイル６６の再生を実行していく。この動作をプレイリスト情報ファイル８０中の全曲エントリ８１に対して実行することにより、所定の順序で曲を再生することができる。
【００９９】
次に、本実施の形態２に係るファイルアクセス方法を適用した情報処理装置について説明する。
【０１００】
なお、本実施の形態２に係るファイルアクセス方法を適用した情報処理装置を説明するために、従来の情報処理装置（例えば特許文献４参照。）と比較する。図１１は、特許文献４に記載の情報処理装置が用いるファイルの構成を示す図である。
【０１０１】
図１１に示すように、ファイル記録手段（図示せず）によって、ＨＤＤのデータ領域１２に記録されたトラック情報７１Ａは、対応するトラックデータファイル６６に関する情報としてそのデータファイル名１６０を保持している。このため、あるトラック（Ｔ＃１）から別のトラック（Ｔ＃２）に遷移する場合は、ファイル読み出し手段（図示せず）によって、Ｔ＃２のデータファイル名１６０からトラック２データファイルの名前を同定し、その名前に対応するディレクトリエントリ１６をディレクトリ領域１４から読み出す必要がある。その後、読み出したディレクトリエントリ１６中の開始クラスタ番号で指示されたクラスタ１３を読み出すことで、トラック２データファイルの先頭コンテンツを読み出すことができる。後続のコンテンツを読み出すためには、ＦＡＴ領域１５からＦＡＴエントリ１７のリストを辿って、トラック２データファイルを構成するクラスタ群を識別する必要がある。このため、トラック切替え時のハードディスクアクセスは図１２に示すシーケンス１７１のようになる。
【０１０２】
図１２のシーケンス１７１に示すように、トラック＃１からトラック＃２への切替えでは、トラック２情報（Ｔ＃２）を読み出す必要があるが、そのためにトラック管理ファイル７０に対するＦＡＴエントリ（ＦＡＴ＃Ｔ２）を予め読み込んでおく。トラック２情報Ｔ＃２を読み出すと、そのデータファイル名１６０で指示されたファイル名をもつディレクトリエントリ（ＤＥＮＴ＃２）を読み込もうとするが、ここでもディレクトリ領域１２に対するＦＡＴエントリ（ＦＡＴ＃Ｄ２）をその前に読み込んでおく必要がある。ディレクトリエントリ（ＤＥＮＴ＃２）を読み込むと、トラック２データファイルＴＤ＃２の先頭クラスタを識別できるが、その後に続くクラスタについてはトラック２データファイルに対するＦＡＴエントリ（ＦＡＴ＃Ｃ２）を読み込んで識別する必要がある。
【０１０３】
これに対して、図１０に示すファイル情報を用いる本実施の形態２に係る情報処理装置では、ファイル記録手段（図示せず）によって記録されたトラック情報７１が、対応するトラックデータファイル６６へのアクセスに必要となる情報を全て保持していることを特徴とする。すなわち、トラック情報７１中のディレクトリエントリ７４とクラスタリンク７５により、ファイル読み出し手段（図示せず）はディレクトリエントリ１６やＦＡＴエントリ１７を読み込む必要なく、トラックデータファイル６６を読み出すことができる。
【０１０４】
したがって、この場合のハードディスクへのアクセスシーケンスは、図１２に示すシーケンス１７２のようになる。すなわち、トラック切替えはトラック２情報（Ｔ＃２）とそれに対するＦＡＴエントリ（ＦＡＴ＃Ｔ２）のみを読み込めばトラックの切替えが完了するので、従来の場合に比べて、トラック切替えに要する時間が半減する。１つの曲の再生時に実行されるトラック切替えでは、音跳びを防止するためにデコーダ９６に対する入力データのアンダーフローが発生しないようにする必要がある。そのためには、デコーダ９６中のストリームＦＩＦＯ（図３参照）にトラック切替え時間以上の曲データを滞留させておく必要があるので、トラック切替え時間はデコーダ９６のハードウェア規模に影響する。このことから、本実施の形態２に係る情報処理装置ではファイルアクセスがハードウエアの規模に与える影響を少なくすることができる。
【０１０５】
さらに、トラック２データファイルＴＤ＃２を構成するクラスタ群は、トラック２情報のクラスタリンク７５に記述されているので、曲コンテンツデータの読み出しにおいてＦＡＴエントリ１７を読み込む必要がなくなり、トラックデータファイルが分断化している場合でも高速に読み出すことができる。
【０１０６】
以上のように本発明の実施の形態２に係るファイルアクセス方法は、曲データ６５を保持しているトラックデータファイル６６へのアクセスを、トラック情報７１中のディレクトリエントリ７４、及び、クラスタリンク７５に基づいて実行するので、ディレクトリ領域１４中のディレクトリエントリ１６や、ＦＡＴ領域１５中のＦＡＴエントリ１７にアクセスする必要がなく、１つのトラック情報７１を読み出せば、対応する１つのトラックデータファイル６６にアクセスするための情報が全て取得できる効果がある。このため、ディレクトリエントリ１６を読み込み、ＦＡＴエントリ１７のリストを辿っていく必要がある通常のＦＡＴファイルシステム方法を用いる場合よりも高速に曲データ６５を読み出すことができる。
【０１０７】
さらに、前述のようにデータ領域１２へのアクセスはクラスタ１３を単位として実行されるが、トラック情報７１を１つのクラスタ１３に収まるサイズ（本実施の形態では１６キロバイト）とすることにより、１つのトラックデータファイル６６を読み出すために必要な管理情報をメディア（例えば、ハードディスク１０）へ１回アクセスするだけで取得でき、高速に曲データ６５を読み出すことが可能となる。
【産業上の利用可能性】
【０１０８】
本発明にかかるファイルアクセス方法は、ファイルの作成に長時間を要することなく、かつ、分断化されたファイルに対するシーケンシャルなアクセスを高速に実行でき、かつ、従来のＦＡＴファイルシステムと互換性のあるファイルアクセスを提供し、情報処理機器、特にリアルタイムストリームの再生機器のファイルシステムとして有用である。
【図面の簡単な説明】
【０１０９】
【図１】本実施の形態１に係るファイルアクセス方法で使用されるファイル管理情報を表す図である。
【図２】本実施の形態１に係るファイルアクセス方法を用いたオーディオ再生システムの構成を示す図である。
【図３】本実施の形態１に係るファイルアクセス方法を用いたオーディオ再生システムで使用されるファイルシステム管理情報を示す図である。
【図４】本実施の形態１に係るファイルアクセス方法を用いたオーディオ再生システムで実行されるソフトウェアのモジュール構成を示す図である。
【図５】本実施の形態１に係るファイルアクセス方法を用いたオーディオ再生システムで実行されるファイルシステム初期化手順を表す図である。
【図６】本実施の形態１に係るファイルアクセス方法を用いたオーディオ再生システムで実行されるファイル書き込み手順を表す図である。
【図７】従来のオーディオ再生システムで実行されるファイル読出し手順を表す図である。
【図８】本実施の形態１に係るファイルアクセス方法を用いたオーディオ再生システムで実行されるファイル読出し手順を表す図である。
【図９】本実施の形態１に係るファイルアクセス方法用いたオーディオ再生システムで実行されるファイル読出し時のハードディスクへのアクセスシーケンスを表す図である。
【図１０】本実施の形態２に係るファイルアクセス方法を用いる情報処理装置のファイル構成を示す図である。
【図１１】従来のオーディオ再生機器が用いるファイルの構成を示す図である。
【図１２】従来のオーディオ再生機器と、本実施の形態２に係るファイルアクセス方法を用いた情報処理装置とのそれぞれにおけるトラック切替え時のハードディスクへのアクセスシーケンスを表す図である。
【図１３】ＦＡＴファイルシステムにおけるファイル管理方法を示す図である。
【図１４（ａ）】従来のファイルシステムにおける連続クラスタに記録されているデータファイルを読み出す場合のハードディスクへのアクセスタイミングを表す図である。
【図１４（ｂ）】従来のファイルシステムにおける分断化されているデータファイルを読み出す場合のハードディスクへのアクセスタイミングを表す図である。
【図１４（ｃ）】従来のファイルシステムにおける極度に分断化されているデータファイルを読み出す場合のハードディスクへのアクセスタイミングを表す図である。
【図１５（ａ）】従来の記録管理方法で使用するデフラグ処理前のファイルの構成を示す図である。
【図１５（ｂ）】従来の記録管理方法で使用するデフラグ処理後のファイルの構成を示す図である。
【図１６】従来のオーディオ再生機器の構成を示す図である。
【図１７】従来のオーディオ再生機器のファイル読出し時のハードディスクへのアクセスシーケンスを表す図である。
【符号の説明】
【０１１０】
１０  ハードディスク
１１  ファイル
１２  データ領域
１３  クラスタ
１４  ディレクトリ領域
１５  ＦＡＴ領域
１６  ディレクトリエントリ
１７  ＦＡＴエントリ
２０  シーク時間
２１  転送時間
２２  ディレクトリアクセス単位
２３  ＦＡＴアクセス単位
２４  デフラグ処理
３０  オーディオ再生機器
３１  キー入力
３２  アナログオーディオ信号
３３  プロセッサ
３４  ＲＯＭ
３５  主メモリ
３７  Ａｕｄｉｏコントローラ
３８  キーボードＩ／Ｆ
３９  システムバス
４４  ファイルシステム
４５  ファイルシステム管理情報
４６  ＦＡＴバッファ
４７  ディレクトリバッファ
４８  データバッファ
５０  ファイル情報
５１  ファイル名
５２  属性
５３  ファイルサイズ
５４  バッファアドレス
５５  ファイルポインタ
５６  クラスタリンクテーブル
６０  クラスタリンクファイル
６５  曲データ
６６  トラックデータファイル
７０  トラック管理ファイル
７１  トラック情報
７２  データファイル情報
７３  次トラック
７４  ディレクトリエントリ
７５  クラスタリンク
８０  プレイリスト情報ファイル
８１  曲エントリ
８２  トラック情報番号
９０  パーソナルコンピュータ
９１  ＵＳＢ回線
９２  周辺回路バス
９３  ＤＭＡＣ
９４  電源ライン
９５  バッテリー回路
９６  デコーダ
９７  ＵＳＢインタフェース
９８  ストリームバッファメモリ
９９  電源ライン
１０１  ストリームバッファ
１１０  分断度
１１１  クラスタリンクファイルへのポインタ
１２０  コンテンツチェックアウトモジュール
１２１  ＨＤＤドライバ
１２２  リモートメディアクライアント
１２３  ＵＳＢドライバ
１２４  リモートメディアサーバ
１２５  音楽再生モジュール
１２６  デコーダドライバ
１３０  リモートメディア検出
１３１  デバイス認証処理
１３２  マウント処理
１４０  チェックアウト要求
１４１  ファイル準備処理
１４２  コンテンツ転送
１４３  転送先ファイルのクローズ処理
１４４  ディレクトリエントリの更新
１４５  ＦＡＴの更新
１４６  クラスタリンクファイルの作成
１４７  再生要求
１４８  ファイル再生準備処理
１４９  ストリームバッファ１へのコンテンツのロード
１５０  ストリームバッファ１のデコード起動
１５１  ストリームバッファ２へのコンテンツのロード
１５２  ストリームバッファ２のデコード起動
１５３  クラスタリンクファイルのリード
１５４  曲コンテンツのロード
１６０  データファイル名
１７１，１７２  アクセスシーケンス
【図１】
2005115696.tif 000003
【図２】
2005115696.tif 000004
【図３】
2005115696.tif 000005
【図４】
2005115696.tif 000006
【図５】
2005115696.tif 000007
【図６】
2005115696.tif 000008
【図７】
2005115696.tif 000009
【図８】
2005115696.tif 000010
【図９】
2005115696.tif 000011
【図１０】
2005115696.tif 000012
【図１１】
2005115696.tif 000013
【図１２】
2005115696.tif 000014
【図１３】
2005115696.tif 000015
【図１４（ａ）】
2005115696.tif 000016
【図１４（ｂ）】
2005115696.tif 000017
【図１４（ｃ）】
2005115696.tif 000018
【図１５（ａ）】
2005115696.tif 000019
【図１５（ｂ）】
2005115696.tif 000020
【図１６】
2005115696.tif 000021
【図１７】
2005115696.tif 000022