(57)【特許請求の範囲】
【請求項１】
ディスク媒体に記録されたファイルシステムのディレクトリ情報を一時的に保持するキャッシュと、
前記ディスク媒体上のファイルにアクセスする際、前記キャッシュに保持されたディレクトリ情報を参照することにより、アクセス対象のファイルの前記ディスク媒体上の位置情報を取得するプロセッサと、
前記ディスク媒体からの信号を検出するためのピックアップ部を前記位置情報で示される場所に移動させてアクセス対象のファイルのデータを読み出すディスクコントローラとを含み、
前記プロセッサは、前記ディスク媒体のマウント時に検出されるメディアタイプに応じて、前記ディレクトリ情報を前記キャッシュに保持するか否かを決定することを特徴とするディスクアクセス装置。
【請求項２】
前記キャッシュは、前記ディスク媒体よりもシーク時間が速いハードディスク上に設けられたことを特徴とする請求項１に記載のディスクアクセス装置。
【請求項３】
前記ディレクトリ情報は前記ディスク媒体のマウント時に読み取られ、前記キャッシュに一時的に保持されることを特徴とする請求項１または２に記載のディスクアクセス装置。
【請求項４】
前記プロセッサは、前記ディスク媒体のマウント時に前記ディレクトリ情報をキャッシュするために前記ディスクコントローラに前記ディレクトリ情報を読み取らせた後は、前記ディスクコントローラに前記ディスク媒体が再マウントされるまではキャッシュされた前記ディレクトリ情報を利用し、前記ディスクコントローラに再度前記ディレクトリ情報を読み取らせることはしないことを特徴とする請求項３に記載のディスクアクセス装置。
【請求項５】
前記ディスク媒体には情報を記録する層が少なくとも２層設けられており、前記ディレクトリ情報は前記ディスク媒体の複数の記録層の内、光ビームの照射方向から見て最も遠い位置にある層である第１の記録層に記録され、ファイルは前記ディレクトリ情報が記録された前記第１の記録層、または前記複数の記録層の内の前記第１の記録層とは異なるいずれか一つの層である第２の記録層に記録されている場合、前記ディスクコントローラは、前記ディスク媒体のマウント時に、前記ディレクトリ情報を読み取るために前記第１の記録層の深さに合わせて前記ピックアップ部の光学系の焦点深度を調整し、前記ディスク媒体のマウント後は、ファイルを読み取るために前記第１の記録層または前記第２の記録層の深さに合わせて前記焦点深度を調整する制御を行うことを特徴とする請求項１から４のいずれかに記載のディスクアクセス装置。
【請求項６】
ディスク媒体のマウント時に検出されるメディアタイプに応じて、前記ディスク媒体に記録されたファイルシステムのディレクトリ情報をキャッシュに保持するか否かを決定し、前記ディレクトリ情報を前記キャッシュに保持すると決定した場合、前記ディスク媒体に記録された前記ディレクトリ情報を読み取り、当該ディスク媒体よりも読み取り速度の速い記憶媒体に前記ディレクトリ情報をキャッシュしておき、前記ファイルシステムのファイルにアクセスする際、キャッシュされたディレクトリ情報を参照することにより、前記ディスク媒体上のディレクトリ情報にアクセスすることなく、アクセス対象のファイルの前記ディスク媒体上の位置情報を取得し、前記ディスク媒体上の前記位置情報で示される場所からアクセス対象のファイルのデータを読み出すことを特徴とするディスクアクセス方法。
【請求項７】
少なくとも２層の記録構造をもつディスク媒体の複数の記録層の内、光ビームの照射方向から見て最も遠い位置にある層である第１の層に記録されたファイルシステムのディレクトリ情報をキャッシュする機能と、
前記ディスク媒体上の前記ディレクトリ情報が記録された前記第１の層、または前記複数の記録層の内の前記第１の層とは異なるいずれか一つの層である第２の層に記録されたファイルにアクセスする際、キャッシュされたディレクトリ情報を参照することにより、前記第１の層に記録されたディレクトリ情報にはアクセスすることなく、アクセス対象のファイルの前記ディスク媒体上の位置情報を取得する機能と、
前記ディスク媒体上の前記位置情報で示される場所からアクセス対象のファイルのデータを読み出す機能と、
前記ディスク媒体のマウント時に検出されるメディアタイプに応じて、前記ディレクトリ情報をキャッシュするか否かを決定する機能とをコンピュータに実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ディスク媒体上のファイルをアクセスするためのディスクアクセス装置およびディスクアクセス方法に関する。
【背景技術】
【０００２】
ＤＶＤ（Digital Versatile Disc）などの大容量の光ディスクメディアを再生可能なメディアプレーヤやパーソナルコンピュータが普及しており、高品質のゲームコンテンツや映像コンテンツがＤＶＤなどに格納されて提供されている。また、ＤＶＤレコーダやパーソナルコンピュータに装着されたＤＶＤ記録装置を用いて、ユーザは写真やビデオなどを手軽にＤＶＤに記録することができる。
【０００３】
またハイビジョンクラスの映像やゲームなどのコンテンツを記録できる光ディスクメディアとしてブルーレイディスク（商標または登録商標）（Blu-ray Disk；ＢＤ）が開発され、高画質の魅力的なコンテンツが提供され始めた。
【０００４】
光ディスクに格納された映像コンテンツを読み出して再生する機能を有するゲーム機も存在する（たとえば特許文献１参照）。
【特許文献１】米国特許第６５６３９９９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＣＤ（Compact Disc）やＤＶＤなどの光ディスクをアクセスする際、光ピックアップ部の構成を含むヘッドを読み取り位置に移動させる必要があり、シーク時間が大きく、ファイルの読み出しに時間がかかる。ハードディスクのファイルシステムに比べて、光ディスクに記録されたファイルシステムはアクセスに時間がかかるという難点がある。
【０００６】
光ディスクの読み取り速度の問題は音楽やビデオなどのコンテンツの入ったディスクを再生するときにはあまり意識されることがない。音楽やビデオの場合、サイズの大きい一つのファイルを連続的に読み出すため、再生開始までの待ち時間は気になるものの、再生が開始された後は、データの読み取りにかかるレーテンシは隠蔽されてしまうからである。
【０００７】
しかしながら、ゲームコンテンツが格納された光ディスクの場合、ゲームアプリケーションの開始時だけでなく、ゲームの進行中にもいろいろなファイルをオープンして読み出すため、ゲームプレイ中に光ディスクのアクセス待ちになることがある。また、ゲームアプリケーションが扱う個々のファイルはサイズが小さく、ファイルがランダムアクセスに近いアクセスパターンでアクセスされるため、光ディスクのシークに時間がかかる。このようにゲームコンテンツが記録された光ディスクでは、光ディスクのアクセス時間がゲームのリアルタイム性に悪影響を及ぼすことがある。
【０００８】
また、ＢＤではＤＶＤと同様、複数の層に分けて情報を記録する方式が採用されており、特にＢＤにおいては、高密度の記録層にレーザビームの焦点深度を正確に合わせるために、サーボモータを利用して、レーザ光を照射しながら焦点深度を微調整することが必要不可欠であり、光ディスクのピックアップ部の駆動系の負荷が大きくなっている。
【０００９】
本発明はこうした課題に鑑みてなされたものであり、その目的は、ディスク媒体に記録されたファイルシステムに効率的にアクセスするためのディスクアクセス技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある態様のディスクアクセス装置は、ディスク媒体に記録されたファイルシステムのディレクトリ情報を一時的に保持するキャッシュと、前記ディスク媒体上のファイルにアクセスする際、前記キャッシュに保持されたディレクトリ情報を参照することにより、アクセス対象のファイルの前記ディスク媒体上の位置情報を取得するプロセッサと、前記ディスク媒体からの信号を検出するためのピックアップ部を前記位置情報で示される場所に移動させてアクセス対象のファイルのデータを読み出すディスクコントローラとを含む。
【００１１】
前記ディスク媒体には情報を記録する層が少なくとも２層設けられており、前記ディレクトリ情報は前記ディスク媒体の第１の記録層に、ファイルは第１または第２の記録層に記録されていてもよい。
【００１２】
本発明の別の態様は、ディスクアクセス方法である。この方法は、ディスク媒体に記録されたファイルシステムのディレクトリ情報を読み取り、当該ディスク媒体よりも読み取り速度の速い記憶媒体に前記ディレクトリ情報をキャッシュしておき、前記ファイルシステムのファイルにアクセスする際、キャッシュされたディレクトリ情報を参照することにより、前記ディスク媒体上のディレクトリ情報にアクセスすることなく、アクセス対象のファイルの前記ディスク媒体上の位置情報を取得し、前記ディスク媒体上の前記位置情報で示される場所からアクセス対象のファイルのデータを読み出す。
【００１３】
本発明のさらに別の態様は、コンピュータプログラムである。このプログラムは、少なくとも２層の記録構造をもつディスク媒体の第１の層に記録されたファイルシステムのディレクトリ情報をキャッシュする機能と、前記ディスク媒体上の第１または第２の層に記録されたファイルにアクセスする際、キャッシュされたディレクトリ情報を参照することにより、第１の層に記録されたディレクトリ情報にはアクセスすることなく、アクセス対象のファイルの前記ディスク媒体上の位置情報を取得する機能と、前記ディスク媒体上の前記位置情報で示される場所からアクセス対象のファイルのデータを読み出す機能とをコンピュータに実現させる。
【００１４】
このプログラムは、ディスク媒体の読み書きの基本的な制御を行なうためにディスクコントローラなどの機器に組み込まれるファームウエアの一部として提供されてもよい。このファームウエアは、たとえば、機器内のＲＯＭやフラッシュメモリなどの半導体メモリに格納される。また、このプログラムは、オペレーティングシステムに組み込まれる基本ソフトウエアもしくはライブラリの一部として提供されてもよい。このようなファームウエア、基本ソフトウエアまたはライブラリを提供するため、あるいはこれらの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。
【００１５】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、ディスク媒体に記録されたファイルシステムに効率的にアクセスすることができる。
【発明を実施するための最良の形態】
【００１７】
図１は、実施の形態に係るディスクアクセス装置の構成図である。ディスクアクセス装置のディスク読み取り部には光ディスク１０が挿入される。光ディスク１０に記録された情報を読み取るために、光ディスク１０にレーザビームが照射される。レーザビームは、光ディスク１０の情報が記録された層に焦点が合うようにレンズの焦点距離が調整されて照射される。光ディスク１０からの反射光は光ピックアップ部１２の光検出部に入射される。
【００１８】
光ピックアップ部１２は捕捉した反射光を電気信号に変換し、信号処理部１７に渡す。信号処理部１７は電気信号を復調して、光ディスク１０に記録されたデータを復元し、ディスクＩ／Ｏコントローラ２０に渡す。
【００１９】
駆動部１４は、対物レンズの焦点深度を調整し、光ピックアップ部１２を光ディスク１０の径方向に移動させる。サーボＬＳＩ１６は、レーザビームの焦点深度が光ディスク１０の記録層に合うように対物レンズのフォーカスを調整するための制御信号を生成し、駆動部１４に与える。また、サーボＬＳＩ１６は、レーザビームが所望のトラックに正確に収束するように、光ピックアップ部１２を光ディスク１０の径方向に移動させて光軸を微調整するための制御信号を生成し、駆動部１４に与える。
【００２０】
ディスクＩ／Ｏコントローラ２０は、プロセッサ４０から光ディスク１０の読み出し位置の情報を受け取り、光ディスク１０から指定されたデータを読み取る。ディスクＩ／Ｏコントローラ２０は、サーボＬＳＩ１６に光ピックアップ部１２を読み取り位置に移動させるための制御信号を与える。ディスクＩ／Ｏコントローラ２０は、光ディスク１０から読み出されたデータを信号処理部１７から受け取り、バッファ２２に蓄積する。
【００２１】
駆動部１４、サーボＬＳＩ１６、信号処理部１７、ディスクＩ／Ｏコントローラ２０、およびバッファ２２は、光ディスク１０を読み取るためのディスクアクセスユニットを構成する。ディスクアクセスユニットは専用ハードウエアによって、あるいは、ハードウエアとソフトウエアの組合せによって実現される。ディスクアクセスユニットは、一例として、パーソナルコンピュータに内蔵または外付けされる汎用のディスクドライブユニットや、ゲーム機などの専用機に内蔵または外付けされる専用のディスクドライブユニットであってもよい。
【００２２】
ディスクＩ／Ｏコントローラ２０によって光ディスク１０から読み取られ、バッファ２２に蓄積されたデータは、ＤＭＡコントローラ３４によって、メインメモリ３６にＤＭＡ転送される。
【００２３】
プロセッサ４０は、メインメモリ３６に転送されたデータを利用して各種の処理を行う。また、プロセッサ４０は、メインメモリ３６に転送されたデータの一部をキャッシュメモリ１８にキャッシュしたり、ハードディスク３０に保存してもよい。外部Ｉ／Ｏコントローラ３２は、プロセッサ４０からの命令を受けて、ハードディスク３０に対するデータの読み書きを制御する。後述のように、光ディスク１０のアクセスの効率化のために、プロセッサ４０は、光ディスク１０のファイルシステムのディレクトリ構造をキャッシュメモリ１８にキャッシュし、全ディレクトリのレコードをハードディスク３０にキャッシュする。
【００２４】
図２（ａ）〜（ｃ）は、光ディスク１０に記録されるファイルシステムのデータ構造を説明する図である。ここでは、光ディスク１０のファイルシステムの一例として、ＩＳＯ９６６０フォーマットを取り上げて説明するが、実施の形態は、特に特定のフォーマットに限定されるものではない。ＩＳＯ９６６０は、国際標準化機構（ＩＳＯ）が定めたＣＤ−ＲＯＭのファイルシステムの規格であり、様々なオペレーティングシステムで読み取ることができ、その読み取り互換性が高いことから幅広く利用されている。ＩＳＯ９６６０は、ＤＶＤやブルーレイディスクのファイルシステムとしても利用することができる。ＩＳＯ９６６０に代わるファイルシステムとして、記録再生の両方が可能なＵＤＦ（Universl Disk Format）を利用することもできる。また、ＵＤＦに対応していないオペレーティングシステムでもＩＳＯ９６６０による再生を可能にして互換性を確保したＵＤＦブリッジフォーマットを利用してもよい。
【００２５】
図２（ａ）は、光ディスク１０に格納されたファイルシステム１００のフォーマットを示す。光ディスク１０の先頭にはシステムエリア１０２が設けられ、それに続いて、ボリューム記述子１０４、パステーブル１１０、ディレクトリエリア１７０、およびファイルデータ１３０が格納される。ボリューム記述子１０４には、当該光ディスク１０のボリュームに関する情報、すなわちボリューム名や作成者の名前、パステーブルやルートディレクトリの位置などが含まれる。
【００２６】
パステーブル１１０は、ボリューム内の全ディレクトリのパス情報を幅優先探索順に配列したテーブルであり、ディレクトリ検索を高速化するために参照される。光ディスクのシーク時間はハードディスクのシーク時間よりも長いため、ハードディスクのファイルシステムのようにルートから順にディレクトリを辿ってサブディレクトリを検索することはきわめて効率が悪い。そのため、ディレクトリ構造を格納したパステーブル１１０を光ディスク１０のマウント時にキャッシュメモリ１８にキャッシュしておくことで、深い位置にあるサブディレクトリでも短時間でアクセスすることが可能になる。
【００２７】
図２（ｂ）に示すように、パステーブル１１０には、ルート１１２から開始して、ディレクトリＤ１、Ｄ２、…、Ｄｎ（符号１１４ａ、１１４ｂ、…、１１４ｃ）のパス情報が幅優先探索順に格納される。各ディレクトリのパス情報には、ディレクトリ名に相当するディレクトリ識別子、ディレクトリ識別子の長さ、ディレクトリの位置、親ディレクトリの番号などが記録される。
【００２８】
ディレクトリエリア１７０は、ボリューム内の全ディレクトリのディレクトリレコード１２０を配列したものである。各ディレクトリレコード１２０は、当該ディレクトリに含まれるファイルとサブディレクトリの情報を記録した構造体である。なお、ディレクトリエリア１７０に格納された全部もしくは一部のディレクトリのディレクトリレコード１２０の集合体をディレクトリテーブル１８０と呼び、ディレクトリテーブル１８０は後述のようにハードディスク３０にキャッシュされる。
【００２９】
図２（ｃ）は、ディレクトリＤｉのディレクトリレコード１２０を示す。ディレクトリレコード１２０は、ディレクトリＤｉの親ディレクトリＰ（符号１２４）、ディレクトリＤｉの直下の子ディレクトリＣ１、Ｃ２（符号１２６ａ、１２６ｂ）、ディレクトリＤｉに含まれるファイルＦ１、Ｆ２（符号１２８ａ、１２８ｂ）の各レコードを含む。先頭フィールド１２２は、単に当該ディレクトリレコード１２０をポインタで指すときの対象であり、実装上は当該ディレクトリレコード１２０が格納された領域の先頭アドレスである。ディレクトリまたはファイルの各レコードには、レコード長、ディレクトリまたはファイルの先頭位置、大きさ、識別子などの情報が格納される。
【００３０】
図３は、ファイルシステム１００におけるディレクトリ構造の一例を示す図である。ルートＲの直下に第１ディレクトリＤ１、第２ディレクトリＤ２、第３ディレクトリＤ３があり、第２ディレクトリＤ２の直下には、サブディレクトリとして第４ディレクトリＤ４がある。第２ディレクトリＤ２にはファイルＦ１が含まれ、第３ディレクトリＤ３にはファイルＦ３が含まれ、第２ディレクトリのサブディレクトリＤ４にはファイルＦ２が含まれる。
【００３１】
図４は、図３のディレクトリ構造に対応して設けられたパステーブル１１０とディレクトリレコード１２０のデータ構造を説明する図である。パステーブル１１０には、ルートＲから開始して幅優先探索順にディレクトリＤ１、Ｄ２、Ｄ３、Ｄ４の各パス情報が格納されている。プロセッサ４０は、パステーブル１１０に格納されたルートＲのパス情報からルートＲのディレクトリレコード１２０ａへのポインタを取得し、ルートＲのディレクトリレコード１２０ａを参照する（符号１４０）。
【００３２】
ルートＲのディレクトリレコード１２０ａには、子ディレクトリＤ１、Ｄ２、Ｄ３の各レコードが格納されている。プロセッサ４０は、これらのレコードから第１、第２、第３ディレクトリＤ１、Ｄ２、Ｄ３のディレクトリレコード１２０ｂ、１２０ｃ、１２０ｄ（以下、それぞれ「第１、第２、第３ディレクトリレコード」と呼ぶ）へのポインタを取得し、これらのディレクトリレコード１２０ｂ、１２０ｃ、１２０ｄを参照する（符号１４１、１４２、１４３）。
【００３３】
第１ディレクトリＤ１にはファイルもサブディレクトリもないため、第１ディレクトリレコード１２０ｂには、親ディレクトリであるルートＲのレコードだけが格納されている。
【００３４】
第２ディレクトリＤ２にはサブディレクトリＤ４とファイルＦ１が含まれるため、第２ディレクトリレコード１２０ｃには、親ディレクトリのルートＲのレコードの他、子ディレクトリであるディレクトリＤ４のレコードと、ファイルＦ１のレコードが格納されている。
【００３５】
第３ディレクトリＤ３にはサブディレクトリがないが、ファイルＦ３が含まれるため、第３ディレクトリレコード１２０ｄには、親ディレクトリのルートＲのレコードの他、ファイルＦ４のレコードが格納されている。
【００３６】
プロセッサ４０は、第２ディレクトリレコード１２０ｃの子ディレクトリＤ４のレコードから第４ディレクトリＤ４のディレクトリレコード１２０ｅ（以下、「第４ディレクトリレコード」と呼ぶ）へのポインタを取得し、第４ディレクトリレコード１２０ｅを参照する（符号１４４）。第４ディレクトリレコード１２０ｅには、親ディレクトリＤ２のレコードの他、ファイルＦ２のレコードが格納されている。
【００３７】
サブディレクトリＤ４に格納されたファイルＦ２にアクセスするために、プロセッサ４０は、パステーブル１１０を参照してルートＲ、第２ディレクトリＤ２、第４ディレクトリＤ４の順（すなわち符号１４０、１４２、１４４の順）にディレクトリレコード１２０ａ、１２０ｃ、１０２ｅを辿ることによって、ファイルＦ２のレコードに到達することができ、ファイルＦ２のレコードからファイルＦ２の位置情報を取得することができる。
【００３８】
このようにルートから順にディレクトリを辿る方法とは別に、プロセッサ４０は、パステーブル１１０を参照して、ファイルＦ２が格納されているディレクトリＤ４のパス情報に直接アクセスし、第４ディレクトリレコード１２０ｅへのポインタを取得し、第４ディレクトリレコード１２０ｅを直接参照してもよい（符号１４６）。
【００３９】
ディレクトリ構造を格納したパステーブル１１０をキャッシュメモリ１８にキャッシュしておけば、パステーブル１１０を参照すれば、ルートから順にディレクトリのツリー構造を辿らなくても直接サブディレクトリのディレクトリレコード１２０にアクセスすることができる。もっとも、パステーブル１１０がなくても、全ディレクトリのディレクトリレコード１２０を並べたディレクトリテーブル１８０さえあれば、ルートから順にディレクトリを辿っていくことで、どのサブディレクトリにあるファイルにもアクセスできる。したがって、パステーブル１１０のキャッシングは任意である。
【００４０】
図５は、光ディスク１０の物理的な層構造を説明する図である。ＤＶＤやＢＤではディスクに複数の層を設けて情報を記録する方式が採用されている。ここでは、光ディスク１０に２層が設けられた場合を示す。第１層１５０と第２層１５２では記録層の深さが異なるため、各層に記録された情報を正確に読み取るには、照射されるレーザビームの焦点深度を各層に正確に合わせることが要求される。第１層１５０に記録された情報を読み取るには、光ピックアップ部１２からのレーザビームの焦点を第１層１５０の深さにぴったり合わせ、第２層１５２に記録された情報を読み取るには、レーザビームの焦点を第２層１５２の深さにぴったり合わせる必要がある。
【００４１】
特にＢＤは、高記録密度のため、レーザ光を照射しながら、焦点深度を正確に調整する必要があり、光ピックアップ部１２の駆動部１４はサーボモータを用いて細かな数値制御が必要となる。そのため、異なる記録層をまたいで情報にアクセスするために「レイヤジャンプ」を行うときは、記録層が変わる度に焦点深度の調整が必要となり、処理時間がかかり、また連続的にモータを駆動させるため、熱が発生する。
【００４２】
図６は、光ディスク１０の論理的な層構造を説明する図である。ここでは一般的な２層の例で説明する。３層以上であってもよい。光ディスク１０には、図２（ａ）で説明したファイルシステム１００が第１層１５０と第２層１５２に分けて記録される。第１層１５０には、先頭からシステムエリア１０２、ボリューム記述子１０４、パステーブル１１０、およびディレクトリエリア１７０が記録される。個々のファイルは第１層１５０または第２層１５２に記録される。ここでは、図３で説明したディレクトリ構造に格納されたファイルＦ１、Ｆ２、Ｆ３の内、ファイルＦ１は第１層１５０に記録され（符号１６０）、ファイルＦ２、Ｆ３はともに第２層１５２に記録されている（符号１６２、１６４）。
【００４３】
このように、ディレクトリレコード１２０が記録されたディレクトリエリア１７０は光ディスク１０の第１層１５０に配置されているため、通常のディスクアクセス方式では、まず始めにオペレーティングシステムが第１層１５０のディレクトリエリア１７０にアクセスしてディレクトリレコード１２０を読み出し、次にアプリケーションが第２層１５２に配置されたファイルにアクセスすることになる。複数のファイルを短期間にアクセスしようとすると、頻繁にレイヤジャンプ（レイヤチェンジといってもよい）が発生し、光ピックアップ部１２のモータ駆動系がひっきりなしに動作している状態になり、ファイルのアクセスに時間がかかり、アプリケーションの応答速度が悪くなる。
【００４４】
本実施の形態では、レイヤジャンプに伴うコストを軽減するために、光ディスク１０の全ディレクトリのディレクトリレコード１２０をディレクトリテーブル１８０としてハードディスク３０にキャッシュして参照する方法を採用する。まず、比較のために、図７において、ディレクトリレコード１２０をキャッシュしない場合の光ピックアップ部１２の動作を説明し、その後、図８および図９を参照して、本実施の形態の方法を説明する。
【００４５】
図７（ａ）〜（ｆ）は、ディレクトリレコード１２０をキャッシュしない場合の光ピックアップ部１２の動作を説明する図である。ここでは、図３のディレクトリ構造の例にしたがって、光ディスク１０の第１層１５０のディレクトリエリア１７０には第１〜第４ディレクトリＤ１〜Ｄ４のディレクトリレコードＤＲ１〜ＤＲ４（以下、簡単のため「第１〜第４ディレクトリレコード」と呼ぶ）が記録されており、第２ディレクトリＤ２に属するファイルＦ１は第１層１５０に、第４ディレクトリＤ４に属するファイルＦ２と第３ディレクトリＤ３に属するファイルＦ３は第２層１５２にそれぞれ記録されている。光ディスク１０からファイルＦ１、Ｆ２、Ｆ３の順に読み出すとき、光ピックアップ部１２がどのように移動するかを説明する。
【００４６】
プロセッサ４０がファイルＦ１をオープンするコマンドを実行する際、プロセッサ４０は、まず、光ディスク１０からファイルＦ１が属するディレクトリＤ２のディレクトリレコードＤＲ２を読み出すために、第２ディレクトリテーブルＤＲ２の位置情報をディスクＩ／Ｏコントローラ２０に与える。
【００４７】
ここで、第２ディレクトリレコードＤＲ２の位置情報は、キャッシュメモリ１８にキャッシュされたパステーブル１１０に格納された第２ディレクトリＤ２のパス情報を用いて直接的に取得することができる。パステーブル１１０を利用しない場合は、図４で説明したように、プロセッサ４０は、まず、ディレクトリテーブル１８０の先頭位置をディスクＩ／Ｏコントローラ２０に与えて、ディレクトリテーブル１８０をルートから読み出し、ルートからディレクトリを探索することで、第２ディレクトリＤ２に到達し、第２ディレクトリレコードＤＲ２の位置情報を取得することができる。
【００４８】
ディスクＩ／Ｏコントローラ２０は、図７（ａ）のように、光ピックアップ部１２のレンズフォーカスをディレクトリエリア１７０が存在する第１層１５０に合うように調整した上で、光ピックアップ部１２を第２ディレクトリレコードＤＲ２の先頭位置まで移動させ、ディレクトリレコードＤＲ２を読み取る。プロセッサ４０は第２ディレクトリレコードＤＲ２からファイルＦ１の位置情報を取得する。
【００４９】
プロセッサ４０は、ファイルＦ１を読み出すために、取得したファイルＦ１の位置情報をディスクＩ／Ｏコントローラ２０に与える。ディスクＩ／Ｏコントローラ２０は、ファイルＦ１の位置情報からファイルＦ１は第１層１５０にあると判定する。ディスクＩ／Ｏコントローラ２０は、図７（ｂ）のように、光ピックアップ部１２のレンズフォーカスはそのままの状態にして、光ピックアップ部１２をファイルＦ１の先頭位置まで移動させ、ファイルＦ１のデータを読み出す。
【００５０】
次に、プロセッサ４０がファイルＦ２をオープンするコマンドを実行する際、プロセッサ４０は、まず、光ディスク１０からファイルＦ２が属するディレクトリＤ４のディレクトリレコードＤＲ４を読み出すために、第４ディレクトリレコードＤＲ４の位置情報をディスクＩ／Ｏコントローラ２０に与える。
【００５１】
ディスクＩ／Ｏコントローラ２０は、図７（ｃ）のように、光ピックアップ部１２を第４ディレクトリレコードＤＲ４の先頭位置に移動させ、第４ディレクトリレコードＤＲ４を読み取る。プロセッサ４０は、第４ディレクトリレコードＤＲ４からファイルＦ２の位置情報を取得する。
【００５２】
プロセッサ４０は、ファイルＦ２を読み出すために、取得したファイルＦ２の位置情報をディスクＩ／Ｏコントローラ２０に与える。ディスクＩ／Ｏコントローラ２０は、ファイルＦ２の位置情報からファイルＦ２は第２層１５２にあると判定する。ディスクＩ／Ｏコントローラ２０は、図７（ｄ）のように、光ピックアップ部１２のレンズフォーカスを第２層１５２に合うように調整した上で、光ピックアップ部１２をファイルＦ２の先頭位置まで移動させ、ファイルＦ２のデータを読み出す。
【００５３】
さらに、プロセッサ４０がファイルＦ３をオープンするコマンドを実行する際、プロセッサ４０は、まず、光ディスク１０からファイルＦ３が属するディレクトリＤ３のディレクトリレコードＤＲ３を読み出すために、第３ディレクトリレコードＤＲ３の位置情報をディスクＩ／Ｏコントローラ２０に与える。
【００５４】
ディスクＩ／Ｏコントローラ２０は、図７（ｅ）のように、光ピックアップ部１２のレンズフォーカスをディレクトリエリア１７０が存在する第１層１５０に合うように調整した上で、光ピックアップ部１２を第３ディレクトリレコードＤＲ３の先頭位置まで戻して第３ディレクトリレコードＤＲ３を読み取る。プロセッサ４０は第３ディレクトリレコードＤＲ３からファイルＦ３の位置情報を取得する。
【００５５】
プロセッサ４０は、ファイルＦ３を読み出すために、取得したファイルＦ３の位置情報をディスクＩ／Ｏコントローラ２０に与える。ディスクＩ／Ｏコントローラ２０は、ファイルＦ３の位置情報からファイルＦ３は第２層１５２にあると判定し、図７（ｆ）のように、光ピックアップ部１２のレンズフォーカスを第２層１５２に合うように調整した上で、光ピックアップ部１２をファイルＦ３の先頭位置まで移動させ、ファイルＦ３のデータを読み出す。
【００５６】
このように、ディレクトリレコード１２０をハードディスク３０に保持しない場合、異なるファイルをオープンする度に、ディレクトリエリア１７０が存在する第１層１５０に光ピックアップ部１２を移動させてファイルが属するディレクトリのディレクトリレコードを読み出すことが必要になる。オープンするファイルがディレクトリレコードが存在する第１層１５０とは異なる層（ここでは第２層１５２）にある場合は、レイヤジャンプが発生し、光ピックアップ部１２のレンズフォーカスの調整のためにモータ駆動が必要になり、時間がかかる上、モータ駆動が連続すると熱が発生する。
【００５７】
仮に、オープンするファイルがディレクトリレコードと同じ第１層１５０にあったとしても、第１層１５０において連続した位置にある複数のファイルを読み出すときでさえ、ファイルをオープンする度に、いったん第１層１５０の先頭付近にあるディレクトリレコードにまで光ピックアップ部１２を戻すことが必要であり、ディレクトリレコードの位置とファイルの位置の間をヘッドが光ディスク１０の径方向に移動するのに要するシーク時間が余分に発生する。
【００５８】
そこで、本実施の形態では光ディスク１０のディレクトリエリア１７０にある全ディレクトリのディレクトリレコード１２０をディスクマウント時に一括して読み出し、ディレクトリテーブル１８０としてハードディスク３０にキャッシュする。
【００５９】
図８は、プロセッサ４０がハードディスク３０にキャッシュされたディレクトリテーブル１８０を参照して光ディスク１０のファイルシステムをアクセスするための構成を説明する図である。パステーブル１１０はキャッシュメモリ１８にキャッシュされ、ディレクトリテーブル１８０はハードディスク３０にキャッシュされる。ディレクトリテーブル１８０は、オペレーティングシステムがキャッシュとして参照できるシステム予約領域に書き込まれる。
【００６０】
ディレクトリｄｉにファイルｆｉをオープンする命令が発行されると、プロセッサ４０は、キャッシュメモリ１８にキャッシュされたパステーブル１１０を参照して、オープンすべきファイルｆｉが格納されたディレクトリｄｉの位置情報ｄｐを取得する。次にプロセッサ４０は、ディレクトリの位置情報ｄｐにもとづいて、ハードディスク３０にキャッシュされたディレクトリテーブル１８０から当該ディレクトリｄｉのディレクトリレコード１２０を参照し、ディレクトリｄｉに格納されたファイルｆｉの位置情報ｆｐを取得する。
【００６１】
プロセッサ４０は、ファイルｆｉの位置情報ｆｐをディスクＩ／Ｏコントローラ２０に与える。ディスクＩ／Ｏコントローラ２０は、ファイルｆｉの位置情報ｆｐにもとづいてファイルｆｉが光ディスク１０のどの層に記録されているかを判定し、光ピックアップ部１２のレンズフォーカスをファイルｆｉが記録された層に合わせて調整した上で、光ピックアップ部１２をファイルｆｉの記録位置の先頭まで移動させる。ディスクＩ／Ｏコントローラ２０はファイルｆｉのデータを読み出し、プロセッサ４０に与える。
【００６２】
図９（ａ）〜（ｃ）は、ハードディスク３０にキャッシュされたディレクトリテーブル１８０を参照して、光ディスク１０のファイルをアクセスする場合の光ピックアップ部１２の動作を説明する図である。ここでも、図７（ａ）〜（ｆ）と比較するために、図３のディレクトリ構造に格納されたファイルＦ１、Ｆ２、Ｆ３にこの順でアクセスする場合を説明する。
【００６３】
プロセッサ４０は、第２ディレクトリＤ２にあるファイルＦ１をオープンするコマンドを実行する際、ハードディスク３０に保持されたディレクトリテーブル１８０内の第２ディレクトリレコード１２０ｃを参照することにより、光ディスク１０上のディレクトリエリア１７０にある第２ディレクトリレコードＤＲ２にアクセスすることなく、ファイルＦ１の位置情報を取得することができる。ディスクＩ／Ｏコントローラ２０は、プロセッサ４０から与えられたファイルＦ１の位置情報をもとに、図９（ａ）のように、光ピックアップ部１２のレンズフォーカスをファイルＦ１が格納された第１層１５０に合わせて調整した上で、ファイルＦ１の先頭位置まで光ピックアップ部１２を移動させ、ファイルＦ１のデータを読み出す。
【００６４】
次に、プロセッサ４０は、第４ディレクトリＤ４にあるファイルＦ２をオープンするコマンドを実行する際、ハードディスク３０に保持されたディレクトリテーブル１８０内の第４ディレクトリレコード１２０ｅを参照することにより、ファイルＦ２の位置情報を取得することができる。ディスクＩ／Ｏコントローラ２０は、プロセッサ４０からファイルＦ２の位置情報を受け取り、図９（ｂ）のように、光ピックアップ部１２のレンズフォーカスをファイルＦ２が格納された第２層１５２に合わせて調整した上で、ファイルＦ２の先頭位置まで光ピックアップ部１２を移動させ、ファイルＦ２のデータを読み出す。
【００６５】
さらに、プロセッサ４０は、第３ディレクトリＤ３にあるファイルＦ３をオープンするコマンドを実行する際、ハードディスク３０に保持されたディレクトリテーブル１８０内の第３ディレクトリレコード１２０ｄを参照することにより、ファイルＦ３の位置情報を取得することができる。ディスクＩ／Ｏコントローラ２０は、プロセッサ４０からファイルＦ３の位置情報を受け取る。ファイルＦ３は、直前に読み出したファイルＦ２と同じ第２層１５２にあるため、光ピックアップ部１２のレンズフォーカスを変える必要はない。ディスクＩ／Ｏコントローラ２０は、ファイルＦ３の先頭位置まで光ピックアップ部１２を移動させ、ファイルＦ３のデータを読み出す。
【００６６】
このように、ディレクトリテーブル１８０をハードディスク３０にキャッシュしておけば、光ディスク１０の第１層１５０のディレクトリエリア１７０にある該当するディレクトリレコードを毎回読み出す必要はないため、光ピックアップ部１２をディレクトリエリア１７０に移動させるためのシーク時間を要しない。ディレクトリエリア１７０が存在する第１層１５０とは異なる層にある複数のファイルにアクセスする場合でも、ディレクトリエリア１７０が存在する第１層１５０に戻らなくてよいため、光ピックアップ部１２のレンズフォーカスを調整する必要がなく、モータ駆動を減らすことができる。
【００６７】
特に、ディレクトリエリア１７０が存在しない第２層１５２の連続した領域にある複数のファイルにアクセスする場合、ディレクトリエリア１７０が存在する第１層にアクセスする必要がないため、光ピックアップ部１２のレンズフォーカスを変えることなく、光ピックアップ部１２を径方向に連続的に移動させながら第２層１５２の複数のファイルにアクセスでき、ディレクトリテーブル１８０をキャッシュすることの効果が大きく現れる。
【００６８】
特に次世代ゲームソフトウエアは、大容量のデータを記録可能な２層構造のＢＤを使用することが主流になると考えられる。ディレクトリテーブル１８０をキャッシュしないとすると、２層目のファイルにアクセスするときに、レイヤジャンプが必ず発生し、応答速度が重要なゲームソフトウエアでは２層目にあるファイルを利用することに制限が加わることになってしまう。光ディスク１０が大容量になり、ファイル数が増え、ファイルアクセスパターンが複雑になるほど、また、ディレクトリ構造が複雑になるほど、ディレクトリテーブル１８０をキャッシュすることの効果は大きくなる。
【００６９】
図１０は、図１のディスクアクセス装置による光ディスク１０のマウント処理の手順を説明するフローチャートである。
【００７０】
光ディスク１０が挿入されると（Ｓ１０）、プロセッサ４０は、光ディスク１０からボリューム記述子を読み取る（Ｓ１２）。プロセッサ４０は、ボリューム記述子を参照してパステーブル１１０の位置情報を取得し、光ディスク１０からパステーブル１１０を読み取り、キャッシュメモリ１８にキャッシュする（Ｓ１４）。
【００７１】
プロセッサ４０は、光ディスク１０が音楽またはビデオのディスクであるか否かを判定する（Ｓ１６）。システム本体のオペレーティングシステムなどのシステムソフトウエアがディスクＩ／Ｏコントローラ２０に対してディスク種別を問い合わせるコマンドを発行し、システムソフトウエアがディスクＩ／Ｏコントローラ２０からその応答を取得することによって、ディスクの種別を把握することができる。一般に、ディスクドライブユニットには、挿入された光ディスクの種別を識別し、ディスク種別を示す情報を、ディスクドライブユニットが接続された本体側のパーソナルコンピュータやゲーム機などのシステムに提供する機能が備えられている。本体側のオペレーティングシステムは、ディスクドライブユニットからディスク種別を示す情報の供給を受けることができる。別の方法として、ディスクの種別は、ボリューム記述子を参照して光ディスク１０のメディアタイプを取得することによっても判別することができる。
【００７２】
光ディスク１０が音楽またはビデオのディスクである場合（Ｓ１６のＹ）、ディレクトリレコード１２０をキャッシュすることなく、マウント処理を終了する。音楽またはビデオのディスクの場合、ディレクトリ構造は単純であり、個々のファイルのサイズが大きく、記録されているファイル数は少ないため、ディレクトリレコード１２０をキャッシュしてファイルアクセスを効率化するメリットが少ないからである。特にビデオのディスクの場合は、ファイルが１つまたは数個しかなく、ファイルをランダムにアクセスすることはきわめてまれである。
【００７３】
次に、プロセッサ４０は、光ディスク１０がユーザが個人用途で作成したディスクであるか否かを判定する（Ｓ１８）。ユーザが作成したディスクであるかどうかは、ボリューム識別子を参照して、ボリュームの属性を調べることで判別することができる。
【００７４】
光ディスク１０がユーザ作成ディスクである場合（Ｓ１８のＹ）、ディレクトリレコード１２０をキャッシュすることなく、マウント処理を終了する。これは、ユーザ作成ディスクの場合、ディレクトリ数やファイル数が任意であるため、ディレクトリテーブル１８０のサイズが、オペレーティングシステムのシステム領域内であらかじめ規定されたキャッシュサイズを超え、エラーが発生しうるからである。特に、ユーザがデジタルカメラで撮影した画像を記録したディスクの場合、ディレクトリ数またはファイル数が膨大になる可能性があり、ディレクトリテーブル１８０のサイズをあらかじめ予想することは難しい。
【００７５】
光ディスク１０が音楽またはビデオのディスクではなく（Ｓ１６のＮ）、かつ、ユーザ作成ディスクでもない（Ｓ１８のＮ）場合、プロセッサ４０は、光ディスク１０のディレクトリエリア１７０から全ディレクトリのディレクトリレコード１２０を読み出し、ディレクトリテーブル１８０としてハードディスク３０にキャッシュし（Ｓ２０）、光ディスク１０のマウント処理を終了する。たとえば、光ディスク１０がゲームソフトウエアを記録した媒体である場合、ディレクトリテーブル１８０がハードディスク３０にキャッシュされる。
【００７６】
ゲームソフトウエアの作成ツールにおいて、光ディスク１０にゲームソフトウエアの全ファイルを記録する際、全ディレクトリのディレクトリレコード１２０のサイズの合計がオペレーティングシステムのシステム領域内で規定されたキャッシュサイズを超える場合、警告を出して、光ディスク１０への記録を禁止してもよい。ゲームソフトウエアの開発者は、警告に対処するためにディレクトリの構成やファイルの構成を変更し、全ディレクトリレコードのサイズを削減するようになる。これにより、ディレクトリテーブル１８０が規定サイズを超えてディスクマウント時にエラーが発生するようなゲームソフトウエアの光ディスク１０は生成されることがないことを保証することができる。
【００７７】
上記のディスクのマウント処理の手順において、ディスク認証に合格したかどうかでディレクトリテーブル１８０をキャッシュするかどうかを決めてもよい。光ディスク１０に特定の認証コードが入っているかどうかをチェックする機能を光ディスクのドライバが有し、本体側のシステムソフトウエアに認証結果を渡すように構成してもよい。たとえば、当該ディスクアクセス装置がゲーム機に搭載される場合、ゲーム機のシステムソフトウエアが、光ディスク１０に格納されたゲームソフトウエアが当該ゲーム機の機種やバージョンに対応した適正な認証コードを有しているかどうかを調べ、認証に合格した場合はディレクトリテーブル１８０をキャッシュし、そうでない場合はディレクトリテーブル１８０をキャッシュしないように制御してもよい。
【００７８】
また、上記のディスクのマウント処理の手順において、光ディスク１０に格納されたゲームソフトウエアのバージョン情報や対応ゲーム機のバージョン情報を取得して、最新バージョンの場合は、ディレクトリテーブル１８０をハードディスク３０にキャッシュし、古いバージョンの場合は、ディレクトリテーブル１８０をハードディスク３０にキャッシュしないようにしてもよい。あるいは、マウント処理の際、本体側のシステムソフトウエアが、光ディスク１０に格納されたゲームソフトウエアのＩＤを参照し、そのゲームソフトウエアがディレクトリテーブル１８０のキャッシュを許可しているかどうかを判断してもよい。この目的のために、システムソフトウエアは、ディレクトリテーブル１８０のキャッシュが許可されるゲームソフトウエアのＩＤを格納したデータベースもしくはテーブルを参照することができるように構成されてもよい。
【００７９】
さらには、ディスクドライバが光ディスク１０が１層であるか２層（あるいはそれ以上）であるかを判定し、光ディスク１０が１層である場合はディレクトリテーブル１８０をキャッシュせず、２層（あるいはそれ以上）である場合はディレクトリテーブル１８０をキャッシュするようにしてもよい。また、認証コードの合否を組み合わせて、２層以上であれば、ディレクトリテーブル１８０をキャッシュし、１層でかつ認証に合格した場合はディレクトリテーブル１８０をキャッシュするが、１層でも認証に合格しない場合はディレクトリテーブル１８０をキャッシュしないようにするなど、キャッシュするかしないかの判断基準は必要に応じて、様々な組み合わせが考えられる。
【００８０】
旧世代のゲーム機に対応して作成されたゲームソフトウエアの中には、読み込み速度が遅い光ディスク１０からデータを読み出すことを前提として、ウエイトタイムが設定されていたり、光ディスク１０からデータを読み出す間に、他の処理を並行して実行するようにプログラムが組まれていることがある。そのような場合に、ディレクトリテーブル１８０をハードディスク３０にキャッシュすることで光ディスク１０の読み込み速度が改善すると、タイミングが合わなくなり、プログラムの実行にかえって支障を来すことがある。そのため、バージョン情報によって旧世代のゲーム機用のゲームソフトを記録した光ディスク１０であることが判明した場合は、ディレクトリテーブル１８０をあえてキャッシュしないようにすることも互換性を考慮する上では必要になることがある。
【００８１】
上記のディスクマウント処理の手順において、光ディスク１０の種別等に応じてディレクトリテーブル１８０をキャッシュしない選択肢を設けたのは、次の理由からである。光ディスク１０はそもそもアクセスに時間がかかるので、光ディスク１０からディレクトリレコードのような情報をマウント時に読み込んで収集することにマウントに要する通常の時間以上の時間をかけるメリットが求められる。ビデオディスクのようなディレクトリレコードを収集するメリットが少ない場合は、ディレクトリテーブル１８０のキャッシュを無効にしないと、かえって不都合が生じるから、キャッシュしない選択をすることでマウント処理を早く終わらせた方がよい。
【００８２】
上記の手順では、ディレクトリテーブル１８０を光ディスク１０のマウント時に読み取り、キャッシュしたが、マウント処理を早期に終わらせるニーズがあるのであれば、マウント時以外の任意のタイミング、たとえばシステムがアイドル状態である時間帯にディレクトリテーブル１８０を光ディスク１０から読み取ってキャッシュしてもよい。また、光ディスク１０をいったんマウントすると、光ディスク１０を取り出すまではキャッシュされたディレクトリテーブル１８０を利用するようにして、光ディスク１０のディレクトリエリア１７０にはアクセスしないようにオペレーティングシステムが制御し、光ディスク１０が取り出されて再マウントされたときは、以前にキャッシュされたディレクトリテーブル１８０は破棄し、再度、光ディスク１０のディレクトリエリア１７０にアクセスして全てのディレクトリレコード１２０を読み出して、ディレクトリテーブル１８０を再構築してもよい。
【００８３】
図１１は、図１のディスクアクセス装置による光ディスク１０からのファイルの読み出し処理の手順を説明するフローチャートである。
【００８４】
あるディレクトリに格納された指定ファイルをオープンするコマンドが発行される（Ｓ３０）と、プロセッサ４０は、キャッシュメモリ１８にキャッシュされたパステーブル１１０を参照し、ディレクトリの位置情報を取得する（Ｓ３２）。プロセッサ４０は、ディレクトリの位置情報をもとに、ハードディスク３０にキャッシュされたディレクトリテーブル１８０内の該当するディレクトリレコード１２０を参照し、当該ディレクトリに格納された指定ファイルの位置情報を取得する（Ｓ３４）。ディスクＩ／Ｏコントローラ２０は、プロセッサ４０から指定ファイルの位置情報を受け取り、光ピックアップ部１２を指定ファイルの先頭位置に移動させ（Ｓ３６）、指定ファイルのデータを読み出す（Ｓ３８）。
【００８５】
パステーブル１１０をキャッシュメモリ１８ではなく、ハードディスク３０にキャッシュしてもよい。また、光ディスク１０のファイルシステムの全ディレクトリのディレクトリレコード１２０をディレクトリテーブル１８０としてハードディスク３０にキャッシュする代わりに、一部のディレクトリのディレクトリレコード１２０だけをディレクトリテーブル１８０としてハードディスク３０にキャッシュし、残りのディレクトリのディレクトリレコード１２０は光ディスク１０から読み出すようにしてもよい。
【００８６】
また、ディレクトリテーブル１８０内の各ディレクトリレコードをキャッシュエントリのように扱い、頻繁に参照されるディレクトリレコードだけがディレクトリテーブル１８０に留まり、参照されないディレクトリレコードはディレクトリテーブル１８０から消去されるようにしてもよい。すなわち、ハードディスク３０に保持されるディレクトリテーブル１８０は、光ディスク１０上のディレクトリエリア１７０内のディレクトリレコード１２０に対して、文字通りのキャッシュとして作用してもよい。また、その場合、ディレクトリテーブル１８０は、キャッシュメモリ１８の方に保持するようにしてもよい。
【００８７】
パステーブル１１０およびディレクトリテーブル１８０の少なくとも一部をメインメモリ３６またはキャッシュメモリ１８に格納してもよい。パステーブル１１０およびディレクトリテーブル１８０は、光ディスク１０よりもアクセス時間が短い任意の記憶媒体もしくは記録装置に格納されてもよい。
【００８８】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８９】
ＩＳＯ９６６０フォーマットのパステーブルやディレクトリレコードを例示して実施の形態を説明したが、何らかのディレクトリに関する情報がファイルデータとは別に格納されたフォーマットであれば、光ディスクのファイルシステムはいかなるフォーマットであってもよい。光ディスクのマウント時にディレクトリに関する情報をあらかじめ読み出してハードディスクにキャッシュすることで実施の形態の手順でファイルアクセスの効率化は図ることができる。
【図面の簡単な説明】
【００９０】
【図１】実施の形態に係るディスクアクセス装置の構成図である。
【図２】図２（ａ）〜（ｃ）は、光ディスクに記録されるファイルシステムのデータ構造を説明する図である。
【図３】ファイルシステムにおけるディレクトリ構造の一例を示す図である。
【図４】図３のディレクトリ構造に対応して設けられたパステーブルとディレクトリレコードのデータ構造を説明する図である。
【図５】図１の光ディスクの物理的な層構造を説明する図である。
【図６】図１の光ディスクの論理的な層構造を説明する図である。
【図７】図７（ａ）〜（ｆ）は、ディレクトリレコードをキャッシュしない場合の光ピックアップ部の動作を説明する図である。
【図８】プロセッサがハードディスクにキャッシュされたディレクトリテーブルを参照して光ディスクのファイルシステムをアクセスするための構成を説明する図である。
【図９】図９（ａ）〜（ｃ）は、ハードディスクにキャッシュされたディレクトリテーブルを参照して、光ディスクのファイルをアクセスする場合の光ピックアップ部の動作を説明する図である。
【図１０】図１のディスクアクセス装置による光ディスクのマウント処理の手順を説明するフローチャートである。
【図１１】図１のディスクアクセス装置による光ディスクからのファイルの読み出し処理の手順を説明するフローチャートである。
【符号の説明】
【００９１】
１０  光ディスク、  １２  光ピックアップ部、  １４  駆動部、  １６  サーボＬＳＩ、  １７  信号処理部、  １８  キャッシュメモリ、  ２０  ディスクＩ／Ｏコントローラ、  ２２  バッファ、  ３０  ハードディスク、  ３２  外部Ｉ／Ｏコントローラ、  ３４  ＤＭＡコントローラ、  ３６  メインメモリ、  ３８  バス、  ４０  プロセッサ、  １００  ファイルシステム、  １１０  パステーブル、  １２０  ディレクトリレコード、  １７０  ディレクトリエリア、  １８０  ディレクトリテーブル。
【図１】
0005038115.tif 000002
【図２】
0005038115.tif 000003
【図３】
0005038115.tif 000004
【図４】
0005038115.tif 000005
【図５】
0005038115.tif 000006
【図６】
0005038115.tif 000007
【図７】
0005038115.tif 000008
【図８】
0005038115.tif 000009
【図９】
0005038115.tif 000010
【図１０】
0005038115.tif 000011
【図１１】
0005038115.tif 000012