JP2005115696A - ファイルアクセス方法及び情報処理装置 - Google Patents
ファイルアクセス方法及び情報処理装置 Download PDFInfo
- Publication number
- JP2005115696A JP2005115696A JP2003349982A JP2003349982A JP2005115696A JP 2005115696 A JP2005115696 A JP 2005115696A JP 2003349982 A JP2003349982 A JP 2003349982A JP 2003349982 A JP2003349982 A JP 2003349982A JP 2005115696 A JP2005115696 A JP 2005115696A
- Authority
- JP
- Japan
- Prior art keywords
- file
- data file
- data
- cluster
- stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【目的】分断化して記録されているデータファイルに効率的にアクセスできるファイルアクセス方法を提供する。
【構成】ハードディスク10へのアクセスを管理するFATファイルシステムにおいて、曲1データファイル11Aを記録する時に、それを構成するクラスタ13群の記録位置がどの程度分散しているかを計測し、分断化率が所定の閾値を超えれば、曲1データファイル11Aを構成するブロックの識別番号を一覧表示するクラスタリンクファイル60を作成し、曲1データファイル11Aを読み出す時にクラスタリンクファイル60が存在すれば、それを読み出して曲1データファイル11Aを構成するブロック群を識別する。
【選択図】図1
【構成】ハードディスク10へのアクセスを管理するFATファイルシステムにおいて、曲1データファイル11Aを記録する時に、それを構成するクラスタ13群の記録位置がどの程度分散しているかを計測し、分断化率が所定の閾値を超えれば、曲1データファイル11Aを構成するブロックの識別番号を一覧表示するクラスタリンクファイル60を作成し、曲1データファイル11Aを読み出す時にクラスタリンクファイル60が存在すれば、それを読み出して曲1データファイル11Aを構成するブロック群を識別する。
【選択図】図1
Description
本発明は、ファイルアクセス方法及び情報処理装置に関し、特に、ディジタルデータを再生する機器におけるファイルアクセス方法に関する。
ハードディスク(HDD)等のディスク型記録メディアは、その大容量性と高速アクセス性から計算機をはじめとする多様な情報処理装置に記録媒体として使用されている。近年は、動画や音声のリアルタイムストリームを記録するメディアとしても普及し始めている。
ディスク型記録メディアは、情報を光学的信号または磁気的信号として記録できるディスクと、そのディスク上を走査して情報の書込み及び読出しを実行する記録ヘッドから構成される。このため、所望の情報にアクセスするためには、この情報が記録される位置まで記録ヘッドがディスク上を移動する必要がある。この記録ヘッドが移動に要する時間(以下、シーク時間と呼ぶ)は、ディスク上に記録されている情報の配置に依存して変化する。一般的にシーク時間は、実際に情報を転送するのに要する時間(以下、転送時間と呼ぶ)に比べて桁違いに大きい。これは、転送時間はディスクの回転速度に依存しているが、シーク時間はヘッドがディスクの半径方向に移動する速度に依存しており、メカニカルな制限から回転速度の向上は容易であるが半径方向の移動は高速化が困難なためである。
一連のデータがディスク上に分散して記録されている場合、シーク時間が長くなるために、データへのアクセス性能は極端に低下してしまう。このアクセス性能の低下は、リアルタイムストリームの再生時に、コンテンツ読出しのアンダーフローの原因となり、音跳び等の致命的な品質欠陥を発生させることがある。コンテンツのアンダーフローを防止するためには、再生機器内にコンテンツを一時的に保存しておくためのバッファに過大な容量を持たせる必要があり、再生機器のコストが上昇してしまう。そこで、記録メディア上でのデータの分断化を防止する方法、及び、分断記録されたデータへのアクセス性能を改善する方法が考案されている。以下、図面を用いて従来技術の詳細について述べる。
まず、記録メディアであるハードディスクへのデータの記録方法について図13を用いて説明する。図13は、ハードディスクHDD#3(10)上へのデータの記録方法を示す図である。データの記録方法はファイルシステムにより制御されるが、ファイルシステムの種類に応じて様々なデータ記録方法が存在する。図13ではパーソナルコンピュータで広く普及しているFAT(File Allocation Table)ファイルシステムによるデータ記録方法を示している。
データはファイル11として保存されるが、そのデータそのものはデータ領域12にクラスタ13とよばれる固定長のデータブロックを単位として記録される。1つのファイルを構成するクラスタは、ファイルA(11A)のように連続したクラスタ群である場合もあれば、ファイルB(11B)のように不連続なクラスタ群の場合もある。
ファイルとそれを構成するクラスタ群を対応付けるためのファイル管理情報を含む領域として、ディレクトリ領域14とFAT領域15とが存在する。ディレクトリ領域14には、ファイル毎に、その名前と、その属性と、開始クラスタ番号と、ファイルサイズとからなる情報をエントリとするテーブルが存在する。このテーブル中のエントリは、ディレクトリエントリ16と呼ばれ、記録されているファイル毎に1つ存在する。例えば、図13に示すディレクトリエントリDENT#1に対応するファイル名は「ファイルA」であり、対応するデータがクラスタ#6から記録されていて、さらに、そのデータサイズが45Kバイトであることを示している。
FAT領域15には、ファイルを構成するクラスタ群をリストするための情報が存在する。FATエントリ17は、それが何番目のエントリであるかにより、対応するクラスタの番号が決まるが、FATエントリそのものの値は対応するクラスタの次に続くクラスタの番号を表す。例えば、6番目のFATエントリ(FAT#6)は値として7をもつが、これはクラスタ#6の次にクラスタ#7が続くことを示している。
以上のように、ディレクトリエントリ16とFATエントリ17とから、ファイルを構成するクラスタ群が同定できる。例えば、図13に示すように、ディレクトリエントリDENT#2よりファイルBはクラスタ#13より開始することがわかり、FAT#13よりその後にクラスタ#21が続き、FAT#21よりさらにクラスタ#31が続き、FAT#31には終端マークEOFが記録されているので、クラスタ#31がファイルの終端であることがわかる。
図14は、ファイル読出し時のハードディスク10(HDD#3)へのアクセスタイミングを表す図である。以下、図14を用いて記録データの分断化がアクセス性能に及ぼす影響を説明する。図中の矢印と四角はそれぞれ、記録ヘッドを移動させている時間区分と、実際にデータを転送している時間区分を表す。図14では、シーク時間20を示す矢印の長さと、転送時間21を示す四角の長さを等しく描いてあるが、実際は、矢印の方が10倍以上長くなる。
図14(a)は、連続クラスタに記録されているファイル(図13のファイルA)を読み出す場合のハードディスク10(HDD#3)へのアクセスタイミングを表す図である。ファイルアクセスにおいては、まず、ファイルAのディレクトリエントリDENT#1が読込まれるが、ディレクトリエントリ16は、いくつかのエントリがまとめてハードディスクHDD#3から読み出される。図13に示すように、このディレクトリ領域14へのアクセス単位をディレクトリアクセス単位22と呼ぶことにする。すなわち、まず、ディレクトリアクセス単位DENT_ACCESS#1を読込む。
次に、読込んだディレクトリエントリ(DENT#1)の開始クラスタ番号に対応するFATエントリ(FAT#21)を読込む。FATエントリ17も、いくつかのエントリがまとめてハードディスク10(HDD#3)から読み出される。図13に示すように、このFAT領域15へのアクセス単位をFATアクセス単位23と呼ぶことにする。すなわち、FATアクセス単位FAT_ACCESS#1を読込む。
読込んだFATエントリ17より、ファイルAはクラスタ#6からクラスタ#8までの連続クラスタで構成されていることがわかるので、これら3つのクラスタを一挙に読出す。ハードディスクの仕様が平均シーク時間を20ミリ秒、転送速度を10メガバイト/秒、クラスタサイズを16キロバイトであるとすると、総アクセス時間は48ミリ秒となる。
図14(b)は、クラスタが分断化されているファイル(図13のファイルB)を読み出す場合のハードディスクHDD#3へのアクセスタイミングを表す図である。ディレクトリエントリ16とFATエントリ17との読込みでは、図14(a)の場合と同様にDENT_ACCESS#1とFAT_ACCESS#1とを読込む。しかしながら、データ領域は不連続なので、各クラスタをアクセスする前にシークが発生する。このため、図14(a)と比較すると、同じハードディスク仕様に対して、総アクセス時間は40ミリ秒増加して88ミリ秒となる。
さらに、データの分断化が進むと、1回のFATアクセス単位23で読込めるエントリの中に、該当ファイルに対するFATエントリ17が1つしか存在しなくなる。例えば、後述する図16に示す曲A.audファイルにおいては、FATアクセス単位(FAT_ACCESS#2)中で有効なFATエントリはFAT#1160のみで、FAT_ACCESS#3中で有効なFATエントリはFAT#2170のみとなっている。図14(c)は、このようにクラスタが極度に分断化されたファイルを読み出す場合のハードディスクHDD#3へのアクセスタイミングを表す図である。この場合、1クラスタ分のデータを読出す毎にヘッドはFAT領域とデータ領域とを行き来して2回シークが発生するので、3クラスタ分のデータを読むのに要する時間は、図14(b)の場合よりさらに40ミリ秒増加して128ミリ秒となる。この値は、ファイルが連続クラスタで構成されている図14(a)の場合の約3倍に相当する。
上述のように、データが分断化されてディスク型記録メディア上に記録されると、そのアクセスに要する時間が大きく増加する。以下、この課題を解決するために考案されている2つの従来技術について説明する。
(従来技術1)
まず、データが分断化されて記録されるのを防止して、一定のデータアクセス性能を保証する記録管理方法(例えば、特許文献1参照。)について図15(a)(b)を用いて説明する。
まず、データが分断化されて記録されるのを防止して、一定のデータアクセス性能を保証する記録管理方法(例えば、特許文献1参照。)について図15(a)(b)を用いて説明する。
図15(a)(b)は、特許文献1に記載の記録管理方法のデータ分断化防止手順を表す図である。図15(a)は、1クラスタ長のデータ(クラスタ#64)からなるファイルCに対して、新たに1クラスタ分のデータを追加しようとしている状況を表している。この時、クラスタ#64に連続するクラスタ、クラスタ#65とクラスタ#66はファイルDとして使用されており、その後のクラスタ#67もファイルEとして使用されている。このため、通常の方法でデータ追加を実施すると、ファイルCは、クラスタ#64の次にクラスタ#68が続くというように、不連続なクラスタに分断されて記録されることになる。
このことから、特許文献1に示された記録管理方法では、ファイルに対するデータの追加に先だって、使用中のクラスタを並び変えて、ファイルを連続的に保存できるような空きクラスタ系列を作成する。そして、記録メディア上に分断化されて記録されているデータの記録位置を移動させて、記録メディア上で連続的に記録し直す処理を行う。この処理はデフラグ処理24と呼ばれ、特許文献1の記録管理方法ではファイルの書込みに伴うクラスタの割当て毎にデフラグ処理24を実行することを特徴としている。
図15(a)においては、クラスタ#65とクラスタ#66はファイルDによって使用されているが、これを未使用であるクラスタ#68及びクラスタ#69と交換する。これで、クラスタ#64とクラスタ#65とファイルCを連続的に格納できる空きクラスタが確保できたので、その後、これらのクラスタに対するデータの記録を実行する。その結果、図15(b)に示すように、ファイルCは分断化されることなく記録される。
(従来技術2)
また、ファイルの読出しに先だって、予め必要となるFATエントリ群を読込んで再生機器内に保持しておくことにより、実際のファイルデータへのアクセスを高速化するファイルシステム(例えば特許文献2参照。)も考案されている。
また、ファイルの読出しに先だって、予め必要となるFATエントリ群を読込んで再生機器内に保持しておくことにより、実際のファイルデータへのアクセスを高速化するファイルシステム(例えば特許文献2参照。)も考案されている。
図16は、特許文献2のファイルシステムを適用したオーディオ再生機器を表す図である。図16において、オーディオ再生機器30は、ユーザが再生を希望する曲をキー入力31として受付けて、対応する曲データをハードディスクHDD♯3(10)から読み出してアナログオーディオ信号32として出力する。
オーディオ再生機器30は、機器全体の動作を制御するプロセッサC(33)と、プロセッサC(33)が実行する命令コードが記録されている不揮発性メモリROM#3(34)と、プロセッサC(33)の作業用メモリである主メモリC(35)と、デジタル音楽データをファイルとして記録しているハードディスクHDD#3(10)と、符号化されたデジタルオーディオストリームを入力として対応するアナログオーディオ信号32を出力するAudioコントローラ37と、ユーザのキー入力31を受付けるキーボードインタフェース38と、これらの構成要素を結合しているシステムバス39とからなる。
図16は、ハードディスクHDD#3(10)に1つのファイル「曲A.aud」が記録されている場合を示している。このファイルは図14(c)を用いて説明したように、極度に分断化されて記録されている場合に相当する。すなわち、ファイルを構成するクラスタが、クラスタ#1160からクラスタ#2170といったように大きく隔たっているので、各クラスタに対応するFATエントリ17(FAT#1160、FAT#2170など)が異なるFATアクセス単位23(FAT_ACCESS#2、FAT_ACCESS#3など)に属することになっている。
プロセッサC(33)は、ソフトウェアモジュールであるファイルシステム44を実行して、ハードディスクHDD#3(10)上のデータに対するアクセスを制御する。主メモリC(35)上には、ファイルシステム44が使用する管理情報がファイルシステム管理情報C(45)として存在する。ファイルシステム管理情報C(45)には、ハードディスクのFAT領域15内のデータを一時記録するFATバッファ46と、ディレクトリ領域14のデータを一時記録するディレクトリバッファ47と、データ領域12のデータを一時記録するデータバッファ48が存在する。
また、ファイルシステム管理情報C(45)には個々のファイルに関する情報を保持しているファイル情報50が存在する。ファイル情報50は、現在アクセス中のファイル、すなわち、現在オープンされているファイルに対して1つづつ存在する。ファイル情報50は、ファイル名51と、属性52と、ファイルサイズ53と、対象ファイルがデータバッファ48上でどこに保持されているかを示すバッファアドレス54と、対象ファイルのどのデータバイトに現在アクセス中かを表すファイルポインタ55をもつ。
特許文献2の記載のファイルシステムでは、さらに、ファイル情報50中にクラスタリンクテーブル56をもつことを特徴としている。クラスタリンクテーブル56は、対象ファイルを構成するクラスタの番号が、構成順序に従って記録されている。図16では、ファイル「曲A.aud」の先頭クラスタはクラスタ#1160であり、その後、クラスタ#2170、クラスタ#3290と続くことがクラスタリンクテーブル56からわかる。
クラスタリンクテーブル56は、対象ファイルへのアクセスに先だって、そのファイルをオープンした時に生成される。ファイルシステム44は、ファイルのオープン時にそのファイルを構成する全てのクラスタの番号を、FAT領域15を検索してリストアップし、クラスタリンクテーブル56として保持しておく。これにより、対象ファイルのアクセス時は、FATエントリ17を読込む必要が無くなる。
図16に示す極度に分断化された曲A.audファイルを通常のファイルシステムでアクセスすると、図14(c)に示すように1クラスタ毎にFATエントリ17にアクセスする必要がある。これに対して、クラスタリンクテーブル56を用いてアクセスする場合、データアクセス時にFATエントリの読込みは不要となり、図14(b)と同様にクラスタの転送時間と、次のクラスタへ移動する時のシーク時間でアクセスできる。すなわち、特許文献2のファイルシステムによれば、高レベルに分断化されている記録データに対しても、中レベルに分断化した場合と同様のデータアクセス性能が実現できる。
特開2001−202274号公報(第7頁、第1図)
特開2002−163136号公報(第10頁、第1図)
特開平8−241230号公報(第8頁、第1図)
特開2001−249669号公報(第55頁、第20図)
以下、上述した、従来技術1、2の問題点について説明する。
まず、従来技術1では、ファイルにデータを追加する時にデフラグ処理24を行い、そのファイル全体を格納できる連続クラスタを生成するが、このデフラグ処理24に長い時間かかる可能性がある。図15(a)(b)で説明したように、デフラグ処理24ではデータ領域12のクラスタ13間でのデータ交換が必要となる。デフラグ処理24で移動するクラスタは、新たに連続クラスタを生成するために移動するクラスタだけでない。その移動に伴って既存ファイルの連続性が損なわれる場合、その連続性を復元するためにクラスタの移動が必要となる。
まず、従来技術1では、ファイルにデータを追加する時にデフラグ処理24を行い、そのファイル全体を格納できる連続クラスタを生成するが、このデフラグ処理24に長い時間かかる可能性がある。図15(a)(b)で説明したように、デフラグ処理24ではデータ領域12のクラスタ13間でのデータ交換が必要となる。デフラグ処理24で移動するクラスタは、新たに連続クラスタを生成するために移動するクラスタだけでない。その移動に伴って既存ファイルの連続性が損なわれる場合、その連続性を復元するためにクラスタの移動が必要となる。
図15(a)(b)では、クラスタ#64の後に新たに1つの空きクラスタを生成すればファイルCの新たな書き込みに対応できるが、ファイルDの連続性を保持するためにはクラスタ#65とクラスタ#66は一緒に移動させる必要がある。このように、ファイルの記録状態によっては、ファイルの書き込みに先だって移動させるクラスタ数が増加し、その所要時間が極端に長くなる可能性がある。例えば、未使用クラスタが極度に分断化しているハードデスクHDD♯3(10)に対して、数ギガバイトの動画データを連続的に記録しようとすれば、何十分も時間がかかることがある。すなわち、従来技術1は既存のファイルの記録状態により、新たなファイルデータの追加に長時間を要する可能性があるという課題を有している。
この課題に対して、ファイルの記録単位であるクラスタ13を固定長でなく可変長とすることで、デフラグ処理24を効率的に実行する方法が考案されている。(例えば特許文献3参照。)。しかしながら、この方法では、ファイルのフォーマットがFATファイルシステムと互換性のないものとなるので、ハードディスクHDD♯3(10)が記録メディアを交換できるリムーバブル・メディアであっても、広く普及している情報処理端末(例えば、パーソナルコンピュータ)で使用することができないという課題があった。
(従来技術2)
また、図17に示すように、従来技術2のファイルシステム44では、対象ファイルのデータへアクセスする前に、クラスタリンクテーブル56を作成する時間(図17の「クラスタリンクの作成期間」)が必要となる。すなわち、クラスタリンクテーブル56を作成すると、FAT領域15にアクセスする必要はなくなるが、クラスタリンクを作成するための時間を考慮すると、対象ファイルをオープンし始めてから全データを一通り読み終えるまでの総所要時間は、図14(c)で説明した「高レベルのセクタ分断度」の場合と同じ値となる。よって、アクセス性能が改善されるのは、ファイルのデータにランダムアクセスする場合に限られる。つまり、従来技術2は、動画ファイルを再生する時のように一度のファイルオープンでそのファイルのデータを前から順に一通りしかアクセスしない場合には、アクセス性能が改善されないという課題を有している。
また、図17に示すように、従来技術2のファイルシステム44では、対象ファイルのデータへアクセスする前に、クラスタリンクテーブル56を作成する時間(図17の「クラスタリンクの作成期間」)が必要となる。すなわち、クラスタリンクテーブル56を作成すると、FAT領域15にアクセスする必要はなくなるが、クラスタリンクを作成するための時間を考慮すると、対象ファイルをオープンし始めてから全データを一通り読み終えるまでの総所要時間は、図14(c)で説明した「高レベルのセクタ分断度」の場合と同じ値となる。よって、アクセス性能が改善されるのは、ファイルのデータにランダムアクセスする場合に限られる。つまり、従来技術2は、動画ファイルを再生する時のように一度のファイルオープンでそのファイルのデータを前から順に一通りしかアクセスしない場合には、アクセス性能が改善されないという課題を有している。
本発明は、上述の課題を解決するもので、ファイル作成に長時間を要することなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行でき、かつ、従来のFATファイルシステムと互換性のあるファイルアクセス方法、及び情報処理装置を提供することを目的とする。
上記課題を解決するために、本発明の請求項1に係るファイルアクセス方法は、データファイルをブロック単位で記録する記録メディアに対して前記データファイルの記録及び読み出しを行うファイルアクセス方法において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成して前記記録メディアに記録し、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別することを特徴とする。
また、本発明の請求項2に係るファイルアクセス方法は、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと1対1に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行うファイルアクセス方法において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込み、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別することを特徴とする。
また、本発明の請求項3に係る情報処理装置は、データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行う情報処理装置において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成するファイル記録手段と、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とする。
また、本発明の請求項4に係る情報処理装置は、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと1対1に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行う情報処理装置において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込むファイル記録手段と、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とする。
本発明のファイルアクセス方法、及び情報処理装置によれば、ファイルの作成(記録)に長時間を要することがなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行でき、かつ、従来のFATファイルシステムと互換性のあるファイルアクセスを実現できる。
すなわち、本発明の請求項1に係るファイルアクセス方法によれば、データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行うファイルアクセス方法において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成して前記記録メディアに記録し、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別することを特徴とするので、ファイルの作成(記録)に長時間を要することがなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行することができる効果がある。
また、前記識別ファイルを記録した記録メディアに対して、従来の手順でアクセスすることができ、従来のファイルシステムと互換性のあるファイルアクセスを実現できる効果がある。
また、本発明の請求項2に係るファイルアクセス方法によれば、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと1対1に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行うファイルアクセス方法において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込み、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別することを特徴とするので、ストリームデータファイルに対するシーケンシャルなアクセスを高速に実行することができ、また、分断されたストリームデータファイルに対するシーケンシャルなアクセスにおいても高速に実行することができる効果がある。
また、本発明の請求項3に係る情報処理装置によれば、データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行う情報処理装置において、前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成するファイル記録手段と、前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とするので、ファイルの作成(記録)に長時間を要することがなく、かつ、分断されたファイルに対するシーケンシャルなアクセスを高速に実行することができる効果がある。
また、前記識別ファイルを記録した記録メディアに対して、従来の手順でアクセスすることができ、従来のファイルシステムと互換性のあるファイルアクセスを実現できる効果がある。
また、本発明の請求項4に係る情報処理装置によれば、データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと1対1に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行う情報処理装置において、前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込むファイル記録手段と、前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別するファイル読み出し手段と、を有することを特徴とするので、ストリームデータファイルに対するシーケンシャルなアクセスを高速に実行することができ、また、分断されたストリームデータファイルに対するシーケンシャルなアクセスにおいても高速に実行することができる効果がある。
(実施の形態1)
以下、本実施の形態1に係るファイルアクセス方法、及び情報処理装置について図を用いて説明する。図1は、本実施の形態1に係る情報処理装置におけるファイルアクセス方法で使用するファイル管理情報を表す図である。
以下、本実施の形態1に係るファイルアクセス方法、及び情報処理装置について図を用いて説明する。図1は、本実施の形態1に係る情報処理装置におけるファイルアクセス方法で使用するファイル管理情報を表す図である。
図1において、曲データファイル「曲1.aud」11Aは、クラスタ#1160、クラスタ#2170等に分割して記録されているが、これらのファイルを構成するクラスタ群は、FATエントリ17のリスト、すなわち、FAT#1160、FAT#2170、FAT#3290、…の単方向リストとして記録されている。また、対応するクラスタリンクファイル「曲1.fat」60にファイルコンテンツとして、クラスタの番号がリストアップされている。
以上のようなファイル管理情報を用いるファイルアクセス方法について説明する。
まず、図1を用いて、曲データファイルを記録する際に、ファイル管理情報がどのように構築されるかを説明する。
まず、図1を用いて、曲データファイルを記録する際に、ファイル管理情報がどのように構築されるかを説明する。
最初に、曲データファイル「曲1.aud」11Aを記録するに際しては、該曲データファイルを構成するクラスタ群の記録位置がどの程度分散配置されているかを表す分断化率を計測する。そして、分断化率が所定の閾値を超えていれば、クラスタリンクファイル「曲1.fat」60を生成し、そのファイルコンテンツとして、「曲1.aud」11Aを構成するクラスタ番号をリストアップする。これにより、該クラスタリンクファイルよりなるファイル管理情報が構築される。一方、分断化率が前記閾値を超えていなければ、クラスタリンクファイル60を作成しない。
次に、記録されているデータの読み出し動作について説明する。曲データファイル「曲1.aud」11Aを読み出す場合、最初に、対応するクラスタリンクファイル「曲1.fat」60が存在するかをチェックする。存在すれば、そのクラスタリンクファイルを読み出して「曲1.aud」11Aを構成するクラスタ群を同定し、その後、同定したクラスタ群(クラスタ#1160、クラスタ#2170、クラスタ#3290、…)を読出す。クラスタリンクファイル「曲1.fat」60が存在しなければ、FATエントリ17のリストを辿って、「曲1.aud」11Aを構成するクラスタ群を同定する。
このように、従来のファイルアクセス方法において、データファイルが分断化されていると、そのデータファイルに対応するFATエントリ17がFAT領域15の広範囲に分散して配置されることから、FATエントリ17のリストからファイルを構成するクラスタ群を特定しようとすればFAT領域15に何度もアクセスしなければならないのに対し、本実施の形態1では、データファイルを構成するクラスタ群が広範囲に分断化された場合においても、該データファイルに対応するクラスタリンクファイルを作成し、読み出し時に該クラスタリンクファイルを読み出して、該データファイルを構成するクラスタ群を識別することにより、分断化されたデータファイルの読み出し時におけるFAT領域15へのアクセスを少なくすることができる。
次に、上記実施の形態1に係るファイルアクセス方法を適用した情報処理装置の具体例を、図2〜図9を用いて説明する。
図2は、本実施の形態1に係るファイルアクセス方法を適用したオーディオ再生システムの構成を示す図である。
図2は、本実施の形態1に係るファイルアクセス方法を適用したオーディオ再生システムの構成を示す図である。
図に示すオーディオ再生システムは、オリジナルの曲ファイル11Bをもつ音源としてのパーソナルコンピュータ90と、それにUSB回線91を介して接続して、オリジナル曲ファイル11Bの複製である曲データファイル11Aを作成して保持する携帯オーディオ再生機器30Aとを有する。なお、携帯型オーディオ再生機器30Aは、パーソナルコンピュータ90とのUSB接続を解除した状態では、内部に保持している曲データファイル11Aを再生する携帯型のオーディオ再生専用機として動作する。
携帯型オーディオ再生機器30Aは、主な構成要素を接続するシステムバス#1(39A)と、周辺回路を接続する周辺回路バス92と、これらのバス上でのデータ転送を制御するDMAC93とを有する。
システムバス#1(39A)には、パーソナルコンピュータ90からデータファイル11Aを記録する時に、前記データファイルを構成する各クラスタ13の記録位置がHDD#1(10A)上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、クラスタ13の識別番号を一覧表示するクラスタリンクファイル60を作成するファイル記録手段(図示せず)と、該データファイル11Aを読み出す時に、前記クラスタリンクファイル60が存在するかを確認し、存在する場合は前記クラスタリンクファイル60を読み出して、前記データファイル11Aを構成するクラスタ群を識別するファイル読み出し手段(図示せず)とを有し、機器全体の動作を制御するプロセッサ#1(33A)と、プロセッサ#1(33A)が実行する命令コードが記録されている不揮発性メモリROM#1(34A)と、プロセッサ#1(33A)の作業用メモリである主メモリ#1(35A)と、電源ライン#1(99A)からの電力を充電し、機器に蓄積した電力を供給するバッテリー回路95Aと、ユーザのキー入力31Aを受付けるキーボードインタフェース#1(38A)が接続している。
プロセッサ#1(33A)は、ソフトウェアモジュールであるファイルシステム44Aを実行して、ハードディスクHDD#1(10A)上のデータに対するアクセスを制御するが、主メモリ#1(35A)上にはファイルシステム44Aが使用する管理情報がローカルファイルシステム管理情報#1(45A)として存在する。
周辺回路バス92には、デジタル音楽データをファイル11Aとして記録しているHDD#1(10A)と、符号化されたデジタルオーディオストリームを入力として対応するアナログオーディオ信号32Aを出力するデコーダ96と、ハードディスク10Aから読み出されたデジタルオーディオストリームをデコーダ96に入力されるまでの間一時的に滞留するストリームバッファメモリ98と、USB回線91上での通信データを終端するUSB I/F#1(97A)とが接続している。
DMAC93は、4つの独立したDMAC通信チャネル、すなわち、ハードディスク#1(10A)と主メモリ#1(35A)との間の通信チャネルCH1と、USB I/F#1(97A)と主メモリ#1(35A)との間の通信チャネルCH2と、HDD#1(10A)からストリームバッファメモリ98への通信チャネルCH3と、ストリームバッファメモリ98からデコーダ96への通信チャネルCH4をもつ。CH3とCH4は周辺回路バス92に閉じた転送なので、プロセッサ#1(33A)による主メモリ#1(35A)へのアクセスといったシステムバス#1(39A)に閉じたデータ転送と同時に実行することができる。さらに、ストリームバッファメモリ98には、2つのストリームバッファ101、ストリームバッファ#1(101A)とストリームバッファ#2(101B)が存在するので、CH4が一方のストリームバッファからデータを読み出している間に、もう一方のストリームバッファにCH3がデータを書き込むことができる。
次にパーソナルコンピュータ90の構成について、携帯型オーディオ再生機器30Aとの相違部分についてのみ説明する。パーソナルコンピュータ90では周辺回路バス92は存在せず全ての構成要素がシステムバス#2(39B)に接続されており、デジタルオーディオストリームを復号するためのデコーダ96と、デコーダ96の入力バッファであるストリームバッファメモリ98は存在しない。
なお、パーソナルコンピュータ90は、内蔵のHDD#2(10B)にオリジナルの曲ファイル11Bをもつが、これは、図2には示されていないCD−ROMインタフェースまたはネットワークインタフェースを介して、CD−ROMメディアまたはネットワークから取得されたものである。
パーソナルコンピュータ90は、このオリジナル曲ファイル11BをUSB回線91で接続している携帯型オーディオ再生機器30Aに複製するプロセス(曲データのチェックアウトと呼ぶ)を主体的に実行する。このためには、パーソナルコンピュータ90は、携帯型オーディオ再生機器30Aが内蔵しているHDD#1(10A)にアクセスする必要があるが、これはリモートファイルシステム#2管理情報45Cを用いて実現される。すなわち、パーソナルコンピュータ90は、内蔵のハードディスクHDD#2にアクセスするためのファイルシステムだけでなく、USB回線91を介してアクセスできるリモートなHDD#1用のファイルシステムも有する。
本実施の形態では、曲データのチェックアウトをパーソナルコンピュータ90が主体的に実施する場合について示したが、携帯型オーディオ再生機器30Aが主体的に実行する場合は、30A側にリモートファイルシステムを持たせれば対応できる。
携帯型オーディオ再生機器30Aの内蔵ハードディスクHDD#1(10A)には、図1に示す形式でファイルが記録されている。上述のようにデータ領域12へのアクセスはクラスタ13単位で実行されるが、同様にディレクトリ領域14およびFAT領域15へのアクセスに関してもあるまとまった単位で実行した方が効率的である。ディレクトリ領域14に対してはディレクトリアクセス単位22でアクセスし、FAT領域15に対してはFATアクセス単位23でアクセスする。
ディレクトリエントリ16の属性において、曲1のデータファイルである「曲1.aud」はRead Onlyとなっているが、これはこのファイルが一旦作成された後は曲再生時に読み出されるだけである事実を反映している。もし曲データファイルが書き込み可能ならば、ファイルの構成情報がFAT領域15とクラスタリンクファイル60に重複して存在するために、ファイルのサイズが変更されるとこれら2つの構成情報を同期させながら変更しなければならず、ファイル書き込みの処理コストが増加する。したがって、オーディオ再生機器30Aのようにファイルの読取りを主に実行する装置の性能改善に寄与するが、通常のデータファイルのように読取りと書き込みをランダムに実行する必要がある装置に対しては、ファイルへのアクセスコストを増加させてしまう。
また、ディレクトリエントリ16の属性において、クラスタリンクファイル「曲1.fat」のSystemとなっているが、これはこのファイルがファイルシステムにより使用されたもので、ユーザによるアクセスは禁止されていることを表す。
次に、図3により、ファイルシステム管理情報について説明する。図3は、携帯型オーディオ再生機器30Aの内蔵ハードディスクHDD#1(10A)を管理するファイルシステムの情報を表しており、図2中のローカルファイルシステム情報#1管理情報45A、または、パーソナルコンピュータ90のリモートファイルシステム#2管理情報45Cのデータ構造を表している。ここでは、図16に示すファイルシステム管理情報45との違いについてのみ説明する。ローカルファイルシステム情報#1管理情報45A、リモートファイルシステム#2管理情報45Cは、図16に示すファイルシステム管理情報45とは異なり、ファイル情報50に分断度110とクラスタリンクファイルへのポインタ111とを含むことを特徴とする。
分断度110は、対応するファイルがどの程度分断化して記録されているかを表す。分断度110は、図13のファイルA(11A)のように連続するクラスタから構成されているファイルに対しては最小値となり、図1の曲1データファイル11Aのように、ファイルを構成するクラスタが分散して配置されていると大きな値となる。分断度110は、ファイルを作成したり、ファイルに書き込む時に計測され、この値が所定のしきい値を超えた場合にクラスタリンクファイル60を作成する。
図3のクラスタリンクファイルへのポインタ111は、対応するファイルがクラスタリンクファイル60を伴っている場合に、そのクラスタリンクファイルのファイル情報50へのポインタが設定される。ファイルを読取る時に、そのファイル情報50にクラスタリンクファイルへのポインタ111が設定されていれば、FATエントリ17を検索する代わりに、そこで指示されたクラスタリンクファイル60を読み出して、対象ファイルの構成情報を取得する。
次に、携帯型オーディオ再生機器30Aおよびパーソナルコンピュータ90において実行されるソフトウェアについて説明する。図4は、上記2つの機器で実行されるソフトウェアのモジュール構成を表している。
パーソナルコンピュータ90には、アプリケーションとしてコンテンツチェックアウトモジュール120が存在し、これはローカルファイルシステム#2(44B)を用いて内蔵HDD#2(10B)にアクセスして、オリジナル曲ファイル11Bを読み出す。その後、読み出した曲データを、リモートファイルシステム#2(44C)を用いて携帯型オーディオ再生機器30Aに保存する。リモートファイルシステム#2(44C)は、メディアに対するドライバとしてリモートメディアクライアント122を使用するが、リモートメディアクライアント122はUSBドライバ#2(123B)を用いて携帯型オーディオ再生機器30A内のリモートメディアサーバ124との間で情報をやり取りする。リモートメディアサーバ124は、USBドライバ#1(123A)を介してリモートメディアクライアント122からの指示を受け取り、その指示に基づいてHDDドライバ#1(121A)を制御して内蔵HDD#1(10A)へのファイルの書き込みを実行し、その実行結果をリモートメディアクライアント122に返す。
携帯型オーディオ再生機器30Aには、アプリケーションとして音楽再生モジュール125が存在し、これはローカルファイルシステム#1(44A)を用いて内蔵HDD#1(10A)にアクセスして、曲データファイル11Aをストリームバッファ101に読み出す。また、音楽再生モジュール125はストリームバッファ101中のデータをデコーダ96に転送し、デコーダドライバ126により音楽の復号を起動する。
次に、各ソフトウェアモジュールがどのように協調動作するかについて詳細に説明する。
図5は、パーソナルコンピュータ90から携帯型オーディオ再生機器30A内のファイルにアクセスするためのリモートファイルシステム#2(44C)を構築する手順を表している。コンテンツチェックアウトモジュール120は、USB回線91を介して携帯型オーディオ再生機器30Aが接続されるとリモートメディア検出130の通知を受け取る。これを受けてUSB接続した機器が正しいデバイスであるかどうかをチェックするためのデバイス認証処理131を実行する。デバイス認証処理131では、リモートメディアクライアント122に認証鍵の交換を要求する。リモートメディアクライアント122はUSB回線91を介して鍵交換要求を携帯型オーディオ再生機器30A内のリモートメディアサーバ124に送付する。リモートメディアサーバ124は携帯型オーディオ再生機器30A固有のデバイス認証鍵を応答としてリモートメディアクライアント122に送付する。コンテンツチェックアウトモジュール120は、このデバイス認証鍵をリモートメディアクライアント122から受け取ると、それが正しいものであるかどうかをチェックし、正しい場合はマウント処理132を実行する。
図5は、パーソナルコンピュータ90から携帯型オーディオ再生機器30A内のファイルにアクセスするためのリモートファイルシステム#2(44C)を構築する手順を表している。コンテンツチェックアウトモジュール120は、USB回線91を介して携帯型オーディオ再生機器30Aが接続されるとリモートメディア検出130の通知を受け取る。これを受けてUSB接続した機器が正しいデバイスであるかどうかをチェックするためのデバイス認証処理131を実行する。デバイス認証処理131では、リモートメディアクライアント122に認証鍵の交換を要求する。リモートメディアクライアント122はUSB回線91を介して鍵交換要求を携帯型オーディオ再生機器30A内のリモートメディアサーバ124に送付する。リモートメディアサーバ124は携帯型オーディオ再生機器30A固有のデバイス認証鍵を応答としてリモートメディアクライアント122に送付する。コンテンツチェックアウトモジュール120は、このデバイス認証鍵をリモートメディアクライアント122から受け取ると、それが正しいものであるかどうかをチェックし、正しい場合はマウント処理132を実行する。
マウント処理132では、リモートメディアクライアント122を介してマウント要求をリモートメディアサーバ124に送付する。リモートメディアサーバ124は、HDDドライバ#1(121A)を用いて内蔵HDD#1(10A)に関する情報(デバイス情報と呼ぶ)を取得して、これをリモートメディアクライアント122に通知する。コンテンツチェックアウトモジュール120は、このデバイス情報を取得するとリモートファイルシステム♯2(44C)を生成する。
次に、パーソナルコンピュータ90上の曲ファイルを携帯型オーディオ再生機器30Aにチェックアウトする時に、ソフトウェアモジュールがどのように動作するかについて図6を用いて説明する。
コンテンツチェックアウトモジュール120は、ユーザからのチェックアウト要求140を受けつけると、まずファイル準備処理141を実行して、転送元となるファイル(例えば、オリジナル曲ファイル11B)をオープンし、転送先のファイルを新規に作成する。この転送先ファイルは、例えば分断配置された複数のクラスタからなるものであり、図1では該複数のクラスタが曲データファイル11Aを構成するものとなっている。転送元ファイルのオープンはローカルファイルシステム#2(44B)で直接実行できるが、転送先ファイルの作成はマウント処理132で構築したリモートファイルシステム#2(44C)を用いて実行する。
リモートファイルシステム#2(44C)では、それが管理するメディアのドライバソフトウェアとしてリモートメディアクライアント122を使用する。リモートメディアクライアント122はUSB回線91を介して携帯型オーディオ再生機器30A内のリモートメディアサーバ124に要求を伝える。リモートメディアサーバ124は受信した要求に基づいてHDDドライバ#1(121A)を制御して携帯型オーディオ再生機器30Aに内蔵しているHDD#1(10A)上のファイルにアクセスし、そのアクセス結果をリモートメディアクライアント122に応答する。上記のクライアント−サーバ型の協調動作により、リモートメディアクライアント122は遠隔地のハードディスク(本例ではHDD#1)へのアクセス機能をリモートファイルシステム#2に提供する。
コンテンツチェックアウトモジュール120は、ファイル準備処理141において転送元ファイルと転送先ファイルの準備に成功すると、コンテンツ転送処理142を実行して転送先ファイル(この時点では新規作成直後なので空のファイル)へ転送元ファイルのコンテンツを転送する。ソースファイルのコンテンツの読出しにおいては、FATエントリ17を読み出してコンテンツが格納されているクラスタを特定し、そのクラスタを読み出す。読み出したコンテンツを転送先ファイルに書き込む場合も、まずFATエントリ17を読み出した空きクラスタを確保して、そのクラスタにコンテンツを書き込む。ただし、転送先ファイルは携帯型オーディオ再生機器30Aにあるのでファイルへのアクセスはリモートファイルシステム44Cを用いて、前記のクライアント−サーバ型の協調動作により実現されている。
コンテンツ転送処理142が完了すると、「転送先ファイルのクローズ処理」143を実行して転送先ファイルへの更新を確定する。ディレクトリエントリ16のファイルサイズを更新し、更新後のエントリをリモートのHDD#1(10A)のディレクトリ領域14にライトする(ディレクトリエントリ更新144)。FATエントリ17についても、転送先ファイルのコンテンツを格納しているクラスタに対応したFATエントリのチェーンを作成して、リモートのHDD#1(10A)のFAT領域15に書き込む。この過程でこのファイルの分断度110を計測し、分断度が高い場合は「クラスタリンクファイルの作成」146を実行して、このファイルに対するクラスタリンクファイル60を作成する。
次に、携帯型オーディオ再生機器100が上記のチェックアウト手順で作成された曲ファイルを再生する時に、ソフトウェアモジュールがどのように動作するかについて図7と図8に基づいて説明する。図8はクラスタリンクファイル60が存在しない従来のアクセス手順を表しており、図9はクラスタリンクファイル60を用いるアクセス手順を表している。
まず、図7について説明する。音楽再生モジュール125は、ユーザから再生要求147を受付けるとそこで指示された曲を再生するために、まず「ファイル再生準備148」を実行して対応する曲ファイルをオープンする。ここでは、曲ファイル11Aのディレクトリエントリ16を読み込み、その後、この曲ファイルに対するクラスタリンクファイル60が存在しないかチェックするためにそのディレクトリエントリの取得を試みる。図8ではクラスタリンクファイル60が存在せず、このディレクトリエントリの取得が失敗する場合を示している。
その後、音楽再生モジュール125は「ストリームバッファ1へのコンテンツのロード149」を実行し、曲ファイル11Aのコンテンツをストリームバッファ#1(101A)に読み出す。この時、クラスタリンクファイル60が存在しないので、FATエントリ17を読み込んで曲ファイル11Aを構成しているクラスタ13を識別する必要がある。曲ファイル11Aが分断化しており、図1で説明したように1回のFATアクセス単位23で1つしか有効なFATエントリ17が存在しないならば、コンテンツを1クラスタ分読み出す毎に、FATエントリ17を読み直すことになる。このため、このハードディスクアクセスは、図14の「高レベルのセクタ分断度」の場合に相当し、転送性能が低下する。
ストリームバッファ#1(101A)へのコンテンツの読み出しが完了すると、音楽再生モジュール125は「ストリームバッファ1のデコード起動150」を実行し、ストリームバッファ#1(101A)上のデータに対するデコーダ96による復号処理を起動する。デコーダ96は一度起動されると、ストリームバッファが空になるまでそこからデータを取り出して復号動作を継続する。
音楽再生モジュール125は、このデコーダ96による音楽データの復号処理と並列に、「ストリームバッファ2へのコンテンツのロード151」を実行し、曲ファイル11Aのコンテンツをストリームバッファ#2(101B)に読み出す。この読み出しは、前記の「ストリームバッファ1へのコンテンツのロード149」と同様の手順となる。HDD#1(10A)へのアクセス速度は、デコーダ96による復号速度より一桁以上高速であるので、「ストリームバッファ2へのコンテンツのロード151」はストーリムバッファ1のコンテンツをデコードし終える前に完了する。そうでなければ、ストリームバッファ101がアンダーフローとなり音跳びが発生する。
デコーダ96によるストリームバッファ#1(101A)上のコンテンツの復号が完了すると、音楽再生モジュール125は「ストリームバッファ2のデコード起動152」を実行する。この後、再度、ストリームバッファ#1(101A)へのコンテンツの読み出しを実行する。以下、曲データファイル11Aの終端に達するまでストリームバッファの一方にコンテンツを読み出し、もう一方のストリームバッファ内のコンテンツをデコードする手順を繰り返す。
次に、クラスタリンクファイル60を用いたファイルアクセスについて図8を用いて説明する。図8の説明としては、前述の図7の相違部分についてのみ説明する。
「ファイル再生準備148A」において、曲ファイルに対するクラスタリンクファイル60のディレクトリエントリの取得を試みる。図8ではクラスタリンクファイル60が存在することから、このディレクトリエントリの取得に成功する。
その後、「ストリームバッファ1へのコンテンツのロード149A」により、曲ファイル11Aのコンテンツをストリームバッファ#1(101A)に読み出すが、「曲コンテンツのロード154」に先だって、「クラスタリンクファイルのリード153」を実行してクラスタリンクファイル60の内容を1クラスタ13だけ読み出す。ここで読み出したデータにより曲ファイル11Aを構成しているクラスタ13を識別することができるので、「曲コンテンツのロード154」では、FATエントリ17を読み込むことなくコンテンツのみを読み出すことができる。
また、クラスタ13のサイズを16キロバイトとすると、1クラスタ分のクラスタリンクファイル60には512個のクラスタ番号が記録されているので、これにより8メガバイト分の曲ファイル11Aを読み出すことができる。8メガバイトの曲コンテンツは、曲の再生速度を16キロバイト/秒とすると約8分に相当するので、通常の曲ならば1曲がすべて収まる。よって、図8の手順では「ストリームバッファ1へのコンテンツのロード149A」でクラスタリンクファイル60を一度読み出せば、その後の「ストリームバッファ2へのコンテンツのロード151A」や、再度の「ストリームバッファ1へのコンテンツのロード149B」ではクラスタリンクファイル60を読み出す必要なく、曲コンテンツをロードできる。
次に、図8の手順に対するハードディスクへのアクセスシーケンスを図9に示す。図9に示すように、曲1データファイルが、クラスタ#1160、クラスタ#2170、クラスタ#3290のように極度に分断化されて記録されている場合でも、それを構成するクラスタ群はクラスタリンクファイルに集約して記録されているので、クラスタリンクファイルを1クラスタ分だけ読み出すと、数メガバイト分の曲1データファイルを読み出すことができるので、ファイル構成を取得するためのハードディスクアクセスの処理負荷は無視できるほど低くなる。これに対して、図14(c)に示したFATエントリ17を用いたファイルアクセスでは、1クラスタの曲1データファイルを読み出すのに1つのFATエントリ17を読み込む必要があるため、ハードディスクアクセスの処理負荷は高くなる。
以上のような本発明の実施の形態1に係るファイルアクセス方法は、分断化されたファイルを構成するクラスタ群に対応するクラスタリンクファイル60を作成し、そのファイルコンテンツとしてクラスタ番号をリストアップし、分断化されたファイルを読み出す時に、読出し対象のクラスタを特定するので、HDD10へアクセスする回数が少なくなり、結果として、分断化されたファイルへのアクセス性能が向上する。
また、クラスタリンクファイル60の構築のために、既存のファイルを移動させる等の負荷の大きな処理を行う必要は無く、さらに、FATエントリ17のリストを辿るための処理負荷が支配的となるが、これはファイル作成時に既に実行済みであり、その結果が作業メモリ上に残っている可能性があることから、クラスタリンクファイル60の構築に要する時間は長くならないので、ファイルの作成(記録)に長時間を要することなく、かつ、分断されたデータファイルに対するシーケンシャルなアクセスを高速に実行することができる。
また、クラスタリンクファイル60が存在するファイルに対してもFATエントリ17を用いた従来の手順でアクセスすることができるので、HDD10がリムーバブル・メディアである場合でも、通常のFATファイルシステムでアクセスすることが可能であり、一般的に普及しているファイルフォーマットと互換性を保つことができる。
(実施の形態2)
以下、本実施の形態2に係るファイルアクセス方法、及び情報処理装置について図を用いて説明する。図10は、本実施の形態2に係る情報処理装置におけるファイルアクセス方法で使用するファイル構成を示す図である。
以下、本実施の形態2に係るファイルアクセス方法、及び情報処理装置について図を用いて説明する。図10は、本実施の形態2に係る情報処理装置におけるファイルアクセス方法で使用するファイル構成を示す図である。
まず、図10に示すファイルを構築する手順について説明する。情報処理装置の記録メディアには、図10に示すように、1曲に相当する音楽データ(曲データ65)が、複数のトラックデータファイル66に分割して記録されている。なお、曲データ65には、ファイルサイズに上限(ここでは7.68メガバイト)が設けられている。また、記録メディアには、トラックデータファイル66と1対1で対応し、トラックデータファイル66に関する情報としてトラック管理ファイル70中にトラック情報71が記録されている。
そしてデータファイル記録時に、各トラックデータファイル66に関する情報をトラック情報71にデータファイル情報72として記録する。データファイル情報72は、ディレクトリエントリ74と、クラスタリンク75とからなる。ディレクトリエントリ74には、ディレクトリ領域14中の対応するトラックデータファイル66のディレクトリエントリ16が記録される。クラスタリンク75には、トラックデータファイル66を構成するクラスタ番号が構成順序に従って記録される。
1つの曲データ65を分割して格納している各トラックデータファイル66に対応する各トラック情報71は、次トラック73により結合されて単方リストを構成している。曲を再生する順番は、プレイリスト情報ファイル80において、曲エントリ81の並びとして表現されている。曲エントリ81には、対応する曲の先頭のトラック情報71がトラック管理ファイル70中で何番目のものかを表すトラック情報番号82が含まれている。
以上のように構成されるファイルからデータファイルを読み出す手順について説明する。ユーザにより指示されたプレイリスト情報ファイル80を前から読み込んでいき、読み出された曲エントリ81に対応する曲を順次再生していく。このとき、ファイル読み出し手段がトラック情報71を読み出す。トラック情報71は固定長(ここでは16キロバイト)であるので、曲エントリ中のトラック識別番号82で指示されたトラック情報71が、トラック管理ファイル70のどこに記録されているかは容易に求まる。ファイル読み出し手段は、トラック情報71中のデータファイル情報72からトラックデータファイル66を構成するクラスタ群を識別する。
以上のようにして、本実施の形態2に係る情報処理装置は、トラック管理ファイル70中のデータファイル情報72を用いて、トラックデータファイル66にアクセスして曲データ65を再生する。そして、1つのトラックデータファイル66の再生が完了すると、対応するトラック情報71中の次トラック73から後続のトラック情報71を識別し、対応するトラックデータファイル66の再生を実行していく。この動作をプレイリスト情報ファイル80中の全曲エントリ81に対して実行することにより、所定の順序で曲を再生することができる。
次に、本実施の形態2に係るファイルアクセス方法を適用した情報処理装置について説明する。
なお、本実施の形態2に係るファイルアクセス方法を適用した情報処理装置を説明するために、従来の情報処理装置(例えば特許文献4参照。)と比較する。図11は、特許文献4に記載の情報処理装置が用いるファイルの構成を示す図である。
図11に示すように、ファイル記録手段(図示せず)によって、HDDのデータ領域12に記録されたトラック情報71Aは、対応するトラックデータファイル66に関する情報としてそのデータファイル名160を保持している。このため、あるトラック(T#1)から別のトラック(T#2)に遷移する場合は、ファイル読み出し手段(図示せず)によって、T#2のデータファイル名160からトラック2データファイルの名前を同定し、その名前に対応するディレクトリエントリ16をディレクトリ領域14から読み出す必要がある。その後、読み出したディレクトリエントリ16中の開始クラスタ番号で指示されたクラスタ13を読み出すことで、トラック2データファイルの先頭コンテンツを読み出すことができる。後続のコンテンツを読み出すためには、FAT領域15からFATエントリ17のリストを辿って、トラック2データファイルを構成するクラスタ群を識別する必要がある。このため、トラック切替え時のハードディスクアクセスは図12に示すシーケンス171のようになる。
図12のシーケンス171に示すように、トラック#1からトラック#2への切替えでは、トラック2情報(T#2)を読み出す必要があるが、そのためにトラック管理ファイル70に対するFATエントリ(FAT#T2)を予め読み込んでおく。トラック2情報T#2を読み出すと、そのデータファイル名160で指示されたファイル名をもつディレクトリエントリ(DENT#2)を読み込もうとするが、ここでもディレクトリ領域12に対するFATエントリ(FAT#D2)をその前に読み込んでおく必要がある。ディレクトリエントリ(DENT#2)を読み込むと、トラック2データファイルTD#2の先頭クラスタを識別できるが、その後に続くクラスタについてはトラック2データファイルに対するFATエントリ(FAT#C2)を読み込んで識別する必要がある。
これに対して、図10に示すファイル情報を用いる本実施の形態2に係る情報処理装置では、ファイル記録手段(図示せず)によって記録されたトラック情報71が、対応するトラックデータファイル66へのアクセスに必要となる情報を全て保持していることを特徴とする。すなわち、トラック情報71中のディレクトリエントリ74とクラスタリンク75により、ファイル読み出し手段(図示せず)はディレクトリエントリ16やFATエントリ17を読み込む必要なく、トラックデータファイル66を読み出すことができる。
したがって、この場合のハードディスクへのアクセスシーケンスは、図12に示すシーケンス172のようになる。すなわち、トラック切替えはトラック2情報(T#2)とそれに対するFATエントリ(FAT#T2)のみを読み込めばトラックの切替えが完了するので、従来の場合に比べて、トラック切替えに要する時間が半減する。1つの曲の再生時に実行されるトラック切替えでは、音跳びを防止するためにデコーダ96に対する入力データのアンダーフローが発生しないようにする必要がある。そのためには、デコーダ96中のストリームFIFO(図3参照)にトラック切替え時間以上の曲データを滞留させておく必要があるので、トラック切替え時間はデコーダ96のハードウェア規模に影響する。このことから、本実施の形態2に係る情報処理装置ではファイルアクセスがハードウエアの規模に与える影響を少なくすることができる。
さらに、トラック2データファイルTD#2を構成するクラスタ群は、トラック2情報のクラスタリンク75に記述されているので、曲コンテンツデータの読み出しにおいてFATエントリ17を読み込む必要がなくなり、トラックデータファイルが分断化している場合でも高速に読み出すことができる。
以上のように本発明の実施の形態2に係るファイルアクセス方法は、曲データ65を保持しているトラックデータファイル66へのアクセスを、トラック情報71中のディレクトリエントリ74、及び、クラスタリンク75に基づいて実行するので、ディレクトリ領域14中のディレクトリエントリ16や、FAT領域15中のFATエントリ17にアクセスする必要がなく、1つのトラック情報71を読み出せば、対応する1つのトラックデータファイル66にアクセスするための情報が全て取得できる効果がある。このため、ディレクトリエントリ16を読み込み、FATエントリ17のリストを辿っていく必要がある通常のFATファイルシステム方法を用いる場合よりも高速に曲データ65を読み出すことができる。
さらに、前述のようにデータ領域12へのアクセスはクラスタ13を単位として実行されるが、トラック情報71を1つのクラスタ13に収まるサイズ(本実施の形態では16キロバイト)とすることにより、1つのトラックデータファイル66を読み出すために必要な管理情報をメディア(例えば、ハードディスク10)へ1回アクセスするだけで取得でき、高速に曲データ65を読み出すことが可能となる。
本発明にかかるファイルアクセス方法は、ファイルの作成に長時間を要することなく、かつ、分断化されたファイルに対するシーケンシャルなアクセスを高速に実行でき、かつ、従来のFATファイルシステムと互換性のあるファイルアクセスを提供し、情報処理機器、特にリアルタイムストリームの再生機器のファイルシステムとして有用である。
10 ハードディスク
11 ファイル
12 データ領域
13 クラスタ
14 ディレクトリ領域
15 FAT領域
16 ディレクトリエントリ
17 FATエントリ
20 シーク時間
21 転送時間
22 ディレクトリアクセス単位
23 FATアクセス単位
24 デフラグ処理
30 オーディオ再生機器
31 キー入力
32 アナログオーディオ信号
33 プロセッサ
34 ROM
35 主メモリ
37 Audioコントローラ
38 キーボードI/F
39 システムバス
44 ファイルシステム
45 ファイルシステム管理情報
46 FATバッファ
47 ディレクトリバッファ
48 データバッファ
50 ファイル情報
51 ファイル名
52 属性
53 ファイルサイズ
54 バッファアドレス
55 ファイルポインタ
56 クラスタリンクテーブル
60 クラスタリンクファイル
65 曲データ
66 トラックデータファイル
70 トラック管理ファイル
71 トラック情報
72 データファイル情報
73 次トラック
74 ディレクトリエントリ
75 クラスタリンク
80 プレイリスト情報ファイル
81 曲エントリ
82 トラック情報番号
90 パーソナルコンピュータ
91 USB回線
92 周辺回路バス
93 DMAC
94 電源ライン
95 バッテリー回路
96 デコーダ
97 USBインタフェース
98 ストリームバッファメモリ
99 電源ライン
101 ストリームバッファ
110 分断度
111 クラスタリンクファイルへのポインタ
120 コンテンツチェックアウトモジュール
121 HDDドライバ
122 リモートメディアクライアント
123 USBドライバ
124 リモートメディアサーバ
125 音楽再生モジュール
126 デコーダドライバ
130 リモートメディア検出
131 デバイス認証処理
132 マウント処理
140 チェックアウト要求
141 ファイル準備処理
142 コンテンツ転送
143 転送先ファイルのクローズ処理
144 ディレクトリエントリの更新
145 FATの更新
146 クラスタリンクファイルの作成
147 再生要求
148 ファイル再生準備処理
149 ストリームバッファ1へのコンテンツのロード
150 ストリームバッファ1のデコード起動
151 ストリームバッファ2へのコンテンツのロード
152 ストリームバッファ2のデコード起動
153 クラスタリンクファイルのリード
154 曲コンテンツのロード
160 データファイル名
171,172 アクセスシーケンス
11 ファイル
12 データ領域
13 クラスタ
14 ディレクトリ領域
15 FAT領域
16 ディレクトリエントリ
17 FATエントリ
20 シーク時間
21 転送時間
22 ディレクトリアクセス単位
23 FATアクセス単位
24 デフラグ処理
30 オーディオ再生機器
31 キー入力
32 アナログオーディオ信号
33 プロセッサ
34 ROM
35 主メモリ
37 Audioコントローラ
38 キーボードI/F
39 システムバス
44 ファイルシステム
45 ファイルシステム管理情報
46 FATバッファ
47 ディレクトリバッファ
48 データバッファ
50 ファイル情報
51 ファイル名
52 属性
53 ファイルサイズ
54 バッファアドレス
55 ファイルポインタ
56 クラスタリンクテーブル
60 クラスタリンクファイル
65 曲データ
66 トラックデータファイル
70 トラック管理ファイル
71 トラック情報
72 データファイル情報
73 次トラック
74 ディレクトリエントリ
75 クラスタリンク
80 プレイリスト情報ファイル
81 曲エントリ
82 トラック情報番号
90 パーソナルコンピュータ
91 USB回線
92 周辺回路バス
93 DMAC
94 電源ライン
95 バッテリー回路
96 デコーダ
97 USBインタフェース
98 ストリームバッファメモリ
99 電源ライン
101 ストリームバッファ
110 分断度
111 クラスタリンクファイルへのポインタ
120 コンテンツチェックアウトモジュール
121 HDDドライバ
122 リモートメディアクライアント
123 USBドライバ
124 リモートメディアサーバ
125 音楽再生モジュール
126 デコーダドライバ
130 リモートメディア検出
131 デバイス認証処理
132 マウント処理
140 チェックアウト要求
141 ファイル準備処理
142 コンテンツ転送
143 転送先ファイルのクローズ処理
144 ディレクトリエントリの更新
145 FATの更新
146 クラスタリンクファイルの作成
147 再生要求
148 ファイル再生準備処理
149 ストリームバッファ1へのコンテンツのロード
150 ストリームバッファ1のデコード起動
151 ストリームバッファ2へのコンテンツのロード
152 ストリームバッファ2のデコード起動
153 クラスタリンクファイルのリード
154 曲コンテンツのロード
160 データファイル名
171,172 アクセスシーケンス
Claims (4)
- データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行うファイルアクセス方法において、
前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成して前記記録メディアに記録し、
前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別することを特徴とするファイルアクセス方法。 - データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと1対1に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行うファイルアクセス方法において、
前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込み、
前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別することを特徴とするファイルアクセス方法。 - データファイルをブロック単位で記録する記録メディアに対して、前記データファイルの記録及び読み出しを行う情報処理装置において、
前記データファイルを記録する時に、前記データファイルを構成する各ブロックの記録位置が前記記録メディア上でどの程度分散しているかを示す分断化率を計測し、かつ、前記分断化率が所定の閾値を超えれば、前記データファイルを構成するブロックの識別番号を一覧表示する識別ファイルを作成するファイル記録手段と、
前記データファイルを読み出す時に、前記識別ファイルが存在するかを確認し、存在する場合は前記識別ファイルを読み出して、前記データファイルを構成するブロック群を識別するファイル読み出し手段と、
を有することを特徴とする情報処理装置。 - データファイルをブロック単位で記録する記録メディアに対して、ストリームデータファイルと、該ストリームデータファイルと1対1に対応し、該対応するストリームデータファイルに関する情報を保持しているストリーム管理ファイルとを記録し、該記録メディアに記録したストリームデータファイルの再生を行う情報処理装置において、
前記ストリームデータファイルを記録する時に、該ストリームデータファイルを構成する各ブロックの識別番号をリストアップした情報を、前記ストリーム管理ファイルに書き込むファイル記録手段と、
前記ストリームデータファイルを読み出す時に、前記ストリーム管理ファイルに保持されている情報を読み出して、前記ストリームデータファイルを構成するブロック群を識別するファイル読み出し手段と、
を有することを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003349982A JP2005115696A (ja) | 2003-10-08 | 2003-10-08 | ファイルアクセス方法及び情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003349982A JP2005115696A (ja) | 2003-10-08 | 2003-10-08 | ファイルアクセス方法及び情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005115696A true JP2005115696A (ja) | 2005-04-28 |
Family
ID=34541694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003349982A Pending JP2005115696A (ja) | 2003-10-08 | 2003-10-08 | ファイルアクセス方法及び情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005115696A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100714709B1 (ko) * | 2006-01-11 | 2007-05-04 | 삼성전자주식회사 | 숨김 영역 관리 장치 및 방법 |
JP2007265010A (ja) * | 2006-03-28 | 2007-10-11 | Nec Electronics Corp | ファイル再生装置およびファイル再生方法ならびにプログラム |
-
2003
- 2003-10-08 JP JP2003349982A patent/JP2005115696A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100714709B1 (ko) * | 2006-01-11 | 2007-05-04 | 삼성전자주식회사 | 숨김 영역 관리 장치 및 방법 |
JP2007265010A (ja) * | 2006-03-28 | 2007-10-11 | Nec Electronics Corp | ファイル再生装置およびファイル再生方法ならびにプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0971358B1 (en) | Data processing apparatus and file management method therefor | |
US20110122759A1 (en) | Data Recording Apparatus and System Having Sustained High Transfer Rates | |
JPH04141867A (ja) | ファイル管理方法 | |
JP4227931B2 (ja) | 情報記憶装置、情報格納方法及び情報記憶処理プログラム | |
JP4256075B2 (ja) | ファイルシステム及び記憶領域の管理方法 | |
KR100982118B1 (ko) | Fat 방식으로 포맷된 정보 기록 매체에 데이터 파일을 기록하는 기록 장치, 방법, 및 프로그램이 기록되어 있는 컴퓨터가 판독가능한 기록 매체 | |
JP2005339262A (ja) | ファイルシステムおよびその制御方法 | |
JP4106702B2 (ja) | 情報処理装置、データ記録再生方法、データ記録再生方法のプログラム及びデータ記録再生方法のプログラムを記録した記録媒体 | |
US20050259542A1 (en) | Reproduction device and method, recording medium, and program | |
JP4211563B2 (ja) | 再生記録装置 | |
JP2005115696A (ja) | ファイルアクセス方法及び情報処理装置 | |
JP2007108853A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP3521165B2 (ja) | ファイル管理システム及び方法 | |
JP2002041341A (ja) | データ記録媒体、並びにそれを取り扱うデータ記録装置およびデータ再生装置 | |
JP4470471B2 (ja) | 記録再生装置及び方法、並びに記録再生システム | |
WO2001008013A1 (fr) | Procede de gestion de support sur disque | |
US7649822B2 (en) | Recording and reproducing apparatus and recording method | |
JP2002041336A (ja) | データ記録媒体、並びにそれを取り扱うデータ記録装置およびデータ再生装置 | |
JP4304569B2 (ja) | データ記憶装置、データ記憶装置の制御方法、データ記憶装置の制御プログラム及びデータ記憶装置の制御プログラムを記録した記録媒体 | |
JP2000149427A (ja) | 記録装置および方法、再生装置および方法、記録再生装置および方法、並びに提供媒体 | |
KR100497365B1 (ko) | 개선된 파일 시스템, 이에 적합한 기록 매체 및 파일액세스 방법 | |
JP2001043662A (ja) | ディスク媒体管理方法 | |
JP2007265010A (ja) | ファイル再生装置およびファイル再生方法ならびにプログラム | |
JPH02299036A (ja) | 情報記録再生方法 | |
JP2001325135A (ja) | データ記憶再生装置及びデータ記憶再生方法 |