(57)【要約】【課題】複数のファイルを回転記録媒体に書込むためのファイル配置を最適化する、データ処理装置、データ処理方法、およびプログラムを提供すること。【解決手段】データ処理装置１１０は、アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するアプリケーション実行部３０６と、アプリケーション実行部３０６が論理シーケンスにしたがってアクセスしたファイルをランタイムに取得したアクセスログ情報をアプリケーションの実行後に取得するランタイムログ情報取得部３１０と、アクセスログ情報に登録されたファイルを、回転記録媒体から読取りする場合のシークタイムに応じてファイル配置を決定するファイル配置決定部３１２とを含んでいる。【選択図】図２
2010097674.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するアプリケーション実行部と、
前記アプリケーション実行部が前記論理シーケンスにしたがってアクセスした前記ファイルをランタイムに取得するログ取得モジュールと、
前記ログ取得モジュールが取得したアクセスログ情報を前記アプリケーションの実行後に取得するランタイムログ情報取得部と、
前記アクセスログ情報に登録されたファイルを回転記憶媒体から読取りする場合のシークタイムに応じてファイル配置を決定するファイル配置決定部と
を含む、データ処理装置。
【請求項２】
前記ログ取得モジュールは、前記アプリケーションプログラムにランタイムにリンクされる、ランタイムライブラリである、請求項１に記載のデータ処理装置。
【請求項３】
前記ランタイムログ情報取得部は、前記ログ取得モジュールが取得した前記アクセスログ情報のうち、前記ファイル配置を決定するために使用する、少なくともロードしたファイル名、データサイズ、読取りコマンドを受領してからファイル読込終了までの時間を含む情報を前記ファイル最適化部に送付する、請求項１または２に記載のデータ処理装置。
【請求項４】
前記ファイル配置決定部は、前記アクセスログ情報に登録された前記論理シーケンスに登録された前記ファイルごとに評価関数を使用してシークタイム推定値を計算し、前記論理シーケンスあたりの合計シークタイム推定値を計算する、請求項１〜３のいずれか１項の記載のデータ処理装置。
【請求項５】
前記ファイル配置決定部は、前記ファイルを構成する単一または複数のデータ単位をゲノムとし、前記ファイルを現世代セットとしてゲノム単位で交叉または突然変異させる世代更新を実行することによってファイル配置の異なる更新ファイル配置を生成する、請求項１〜４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記ファイル配置決定部は、前記更新ファイル配置について前記合計シークタイム推定値の見積もり値を計算し、前記見積もり値が、前記現世代セットについての見積もり値よりも小さい場合に、前記更新ファイル配置を次世代セットとして次の世代更新処理に使用する、請求項５に記載のデータ処理装置。
【請求項７】
前記アプリケーションプログラムは、ゲームプログラムであり、前記データ処理装置は、ゲーム実行時に前記回転記録媒体からの前記ゲームプログラムの読取りアクセスについてのシークタイムを最適化し、前記回転記録媒体は、ハードディスク、コンパクトディスク、ディジタルバーサタイルディスク、光磁気ディスクである、請求項１〜６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記ゲーム装置は、ネットワークを介して前記シークタイムの最適化されたゲームプログラムをダウンロードする、請求項７に記載のデータ処理装置。
【請求項９】
アプリケーションプログラムを構成するファイルのファイル配置を最適化する、データ処理装置が実行するデータ処理方法であって、前記データ処理方法は、前記データ処理装置が、
前記アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するステップと、
前記論理シーケンスにしたがってアクセスした前記ファイルをランタイムリンクさせたログ取得モジュールによって取得し、前記アプリケーションの実行後にアクセスログ情報を取得するステップと、
前記取得した前記アクセスログ情報のうち、前記ファイル配置を決定するために使用する、少なくともロードしたファイル名、データサイズ、読取りコマンドを受領してからファイル読込終了までの時間を含む情報を受領するステップと、
前記アクセスログ情報に登録されたファイルを回転記録媒体から読取りする場合のシークタイムに応じてファイル配置を決定するステップと
を実行する、データ処理方法。
【請求項１０】
前記ファイル配置を決定するステップは、
前記アクセスログ情報に登録された前記論理シーケンスに登録された前記ファイルごとに評価関数を使用してシークタイム推定値を計算するステップと、
前記論理シーケンスあたりの合計シークタイム推定値を計算するステップと、
前記ファイルを構成する単一または複数のデータ単位をゲノムとし、前記ファイルを現世代セットとしてゲノム単位で交叉または突然変異させる世代更新を実行することによってファイル配置の異なる更新ファイル配置を生成するステップと、
前記更新ファイル配置について前記合計シークタイム推定値の見積もり値を計算するステップと、
前記見積もり値が、前記現世代セットについての見積もり値よりも小さい場合に、前記更新ファイル配置を次世代セットとして次の世代更新処理に使用するステップと
を含む、請求項９に記載のデータ処理方法。
【請求項１１】
前記アプリケーションプログラムは、ゲームプログラムであり、前記データ処理装置は、ゲーム実行時に前記回転記録媒体からの前記ゲームプログラムの読取りアクセスについてのシークタイムを最適化する、請求項９または１０に記載のデータ処理方法。
【請求項１２】
請求項１〜８のいずれか１項に記載の機能部として前記データ処理装置を機能させる、コンピュータ実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル管理技術に関し、より詳細には、アプリケーションプログラムを構成する複数のファイルの最適読出しを可能とするように、複数のファイルを回転記録媒体に書込むためのファイル配置を最適化する、データ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
現在、情報処理装置は、複数の記録媒体を管理することができる。記録媒体としては、ハードディスク、コンパクトディスク（以下、ＣＤとして参照する。）、ディジタルバーサタイルディスク（以下、ＤＶＤとして参照する。）または光磁気ディスク（以下、ＭＯとして参照する。）などが知られている。情報処理装置は、上述した記録媒体に記録されたファイルにアクセスして、処理のための必要なデータ、プログラムなどをＲＡＭ内に読込んで処理を行っている。
【０００３】
一方、情報処理装置が大容量のデータを格納する場合の記録媒体は、アクセス速度などを考慮して、円形の基板上に、磁気材料、光相変化材料、光磁気材料などを保持させ、記録媒体を高速回転させながら、近接配置された磁気ヘッドや光プローブなどのプローブにより書込みや読出しを行う回転記録媒体が主流となっている。回転記録媒体には、円形ディスクに同心円状に形成されたトラックが割当てられており、特定のトラックに規定されたセクタ単位でデータに対する書込みアクセスまたは読取りアクセスが行われる。このため、回転記録媒体にデータを書込む場合や、データを読取る場合、媒体ドライブ装置は、プローブを径方向に移動させながら読書きアクセスを行うことが必要であり、この動作は、シークとして参照されている。
【０００４】
情報処理装置は、近年、プロセス技術の進歩により、集積度およびクロックレートが高められた結果高速化されている。また、データ転送技術についても、ＳＣＳＩ、ＩＤＥ、ＵＳＢ１．０などから、シリアルＡＴＡ、ＵＬＴＲＡＳＣＳＩ、ＵＳＢ２．０などの高速転送バスのバスアーキテクチャも高速化されている。さらに、データ書込みやデータ読取りのためのキャッシュアーキテクチャやＤＭＡ(Direct Memory Access)アーキテクチャを使用することにより、データアクセス速度もさらに高速化されている。
【０００５】
インタフェースが低速の場合、回転記録装置からデータを読出す場合のシーク時間は、データ転送時間に比較してそれほど問題とはならない。しかしながら、インタフェースが高速化するにつれ、またプロセッサの処理速度が高速化するにつれ、アプリケーションプログラムの実行にさいしてファイルを読取らせる場合、データ読込速度を向上させることが必要となる。回転記録媒体は、媒体の種類やハードウェア環境によって、データ読取りレートが変動するので、媒体種類によらずにデータ読取り速度を共通して改善する点では、読取りアクセス時のシークタイムを短縮することが好ましい。
【０００６】
これまで、回転記録媒体へのデータアクセスを改善するために多くの検討がなされてきている。例えば、特開２０００−１０００８３号公報（特許文献１）では、位相比較器と周波数比較器を組み込んだデジタルＰＬＬクロック発生手段を有し、ディスクから読取られた信号情報が、Ａ／Ｄ変換器により上記ＰＬＬクロック発生手段で生成されたクロックに同期してデジタル化され、上記クロックに同期した再生データを出力するディスク装置において、上記ＰＬＬクロック発生手段は、上記Ａ／Ｄ変換器の出力信号から位相誤差を算出して位相制御を行う位相制御手段と、上記読みとり信号から周波数誤差を算出して周波数制御を行う周波数制御手段とを有し、上記周波数誤差出力が所定レベルより大きいときには周波数制御を行い、上記周波数誤差出力が所定レベル以下
になったときには位相制御を行い、上記誤差データが無くなるようなクロックを出力することを特徴とするディスク装置が記載されている。
【０００７】
また、特開平７−００６３６７号公報（特許文献２）では、ディスク面上の等しい容量の同心トラックにデータが記憶されるタイプのコンパクトディスクにデータを配置する方法であって、ａ）データ経路及びディレクトリ内のファイルの配置を指定するデータを含む、ディレクトリに配列されたデータファイルの形式の一定の量のデータを第１の記憶手段内で編集するステップと、ｂ）前記第１の記憶手段からデータ配置最適化ステージに前記編集されたデータを転送するステップと、ｃ）前記データ配置最適化ステージで、前記データの前記ディレクトリをユーザがアクセスする頻度を含むディレクトリ頻度統計に基づいて前記コンパクトディスクの前記同心トラック上の前記データの配置指定を決定し、且つ前記データを前記配置指定に従って再配置するステップと、
ｄ）前記配置指定に従って再配置された前記データを前記データ配置最適化ステージから第２の記憶手段に転送するステップと、ｅ）前記配置指定に従って前記データをコンパクトディスクに配置するために前記再配置されたデータを前記第２の記憶手段からコンパクトディスクマスタリング及び複製手段に転送するステップとを含むコンパクトディスクにデータを配置する方法が記載されている。
【０００８】
さらに、特開平９−３１１７６５号公報（特許文献３）では、回転するディスク状記憶媒体の記録面上の所定位置にヘッドを移動してデータの書き込みと読み出しを行うデータ記憶装置に対しデータを書き込ませる際に、書き込むべきデータを先頭部分から順次所定ビット長に分割した場合に得られる複数のデータブロックについて、後続するデータブロックを、先行するデータブロックを格納する前記記録面上の小領域の位置から一定方向に見て所定間隔を空けた位置に存在する小領域に格納するように、各データブロックを格納する小領域の範囲を決定し、決定された小領域の範囲を指示する情報を前記データ記憶装置に与えることを特徴とするデータ配置制御方法が記載されている。
【０００９】
この他、特開平１０−３４０５８３号公報（特許文献４）では、同一面に多層の情報面を有する光ディスク記録媒体に関連のある複数種類のデータを、複数の層の近接した位置に記録された光ディスク記録媒体における複数層間のフォーカスの切り替えによって、関連データへのアクセスを行うことを特徴とするアクセス方法が記載されている。
【００１０】
また、複数の対象の配置などの近似解を求めるため、ヒューリスティックアルゴリズムとして、遺伝的アルゴリズムが知られている。遺伝的アルゴリズムでは、あらかじめ
所定数Ｎのデータを含む２集合を、現世代および次世代とし、まず、現世代にＮ個のデータをランダムなシーケンスで生成する。評価関数により、現世代の各データの評価値を計算する。そして、設定された頻度で２データを選択した、交叉処理、選択した１データについて突然変異または複製を行ないながら、次世代のデータセットを生成して行き、次世代のデータがＮ個となった段階で、現在の次世代を、次回の現世代として上述した処理を反復させる処理を実行する。反復処理の終了は、予め設定された次世代数まで繰り返し、現世代のデータセットのうち、評価値が設定値に最も近いデータセットを、最適解として出力する、ヒューリスティックアルゴリズムである。
【００１１】
上述した遺伝的アルゴリズムは、得られたデータセットが真の最適解か否かについての情報は与えるものではないが、極小値に収束してしまう可能性が低く、また計算スケーラビリティも予測性が高い点で、対象とするデータの内容を詳細に分析しなくとも適用でき、またこれとは逆にデータ特徴が多様で、一定していない対象を処理する場合など汎用性が高いことが知られている。
【００１２】
上述した遺伝的アルゴリズムは、これまで回転記録媒体へのデータアクセスに適用されており、例えば、特開２００３−１０９２２７号公報（特許文献５）では、光ディスクの再生特性を最適化するために
光ディスクを再生する光ディスク再生装置において、所定のイコライザ特性値を、遺伝的アルゴリズムを用いて最適化するように構成されていることを特徴とする光ディスク再生装置が記載されている。
【特許文献１】特開２０００−１０００８３号公報
【特許文献２】特開平７−００６３６７号公報
【特許文献３】特開平９−３１１７６５号公報
【特許文献４】特開平１０−３４０５８３号公報
【特許文献５】特開２００３−１０９２２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
情報処理装置が使用するデータは多種多様であり、また例えば、ゲームアプリケーションを記録する回転記録媒体は、実行モジュール、制御データ、およびグラフィックスデータなど大容量で、複数のファイルが記録されている。情報処理装置は、ゲームアプリケーションを実行する場合、データの読取りが完了するまで次処理が実行できないので、ゲームプログラムは、次処理を開始する前の直前の状態でデータのロード期間中、待機状態となる。
【００１４】
例えば、ゲーム内容がステージごとに変化するような場合、ステージ間で次のステージのための、実行モジュール、制御データ、またはグラフィックスデータなどを読取る様な場合に、ロード中待機状態となる。また、使用している情報処理装置の処理能力によっては、一連のゲームストーリー内でもデータの読取りが行われる場合も想定される。
【００１５】
この様な場合、情報処理装置を使用してゲームを楽しんでいるユーザは、待たされることになりゲームの連続性やリアリティが損なわれてしまうことになる。近年では、ゲームの内容はますます複雑化し、グラフィックスも高精細化してより臨場感の高い内容とされているので、データ量はますます増加し、この結果、データ読取り効率を改善することが必要とされていた。この場合、バスライン、キャッシュアーキテクチャを改善することによっても対応することができる。しかしながら、ゲームアプリケーションなどは、データ／ファイルごとに読取りアクセスを受ける頻度が異なり、また読取りアクセスは、ランダムに発生するのではなく、ゲームストーリーによって定められた一定の論理シーケンスにしたがって発生する。
【００１６】
そして、一定の論理シーケンスで読出しアクセスが発生するファイルについては、回転記録媒体の特性に対応し、ファイル配置を制御することによってもシークタイムを回転記録媒体の種類によらず、最適化することができ、アプリケーションのベンダにより異なる媒体形式に柔軟に対応することができる。
【００１７】
上記従来技術の課題に鑑みれば、特許文献１では、周波数制御および位相制御を使用してデータにロックしたクロックを生成させることで、シークタイムを短縮させることを可能としている。特許文献１に記載された技術は、ドライブ制御装置のモータ駆動を制御することによりシークタイムを短縮化するものであり、書き込まれるべきデータ内容に依存してシークタイムを短縮化することを課題とするものではない。
【００１８】
また、特許文献２は、コンパクトディスクの平均シーク時間および最大距離シーク確率を少なくすることで、シーク時間を短縮させるため、プロセッサステージと、テープ記録ステージとの間のデータ配置最適化ステージを設け、データへのアクセス頻度に対応してディスク上での記録トラックの位置を制御する技術を開示している。特許文献２に記載されたデータ配置最適化ステージは、データのアクセス頻度に対応してシークタイムを最小となるように、データを記録するものである。しかしながら、独立して記録されるデータまたはファイルを一定の順序で読み出す場合に、シークタイムを最低とするように、データやファイルの記録順を制御することを課題とするものではない。
【００１９】
特許文献３は、データ記憶装置に、データが書き込まれる位置を指定する情報を与えることにより、無用なシーク動作の発生を防止することで、シーク時間を短縮する技術を記載する。しかしながら、特許文献３に記載された技術についてもファイルのアクセス頻度を考慮してシーク時間を最低化させるように、ファイルの順を決定することを課題とするものではない。さらに特許文献４は、シークタイムの最小化を行うため、回転記録媒体に対するデータ書込処理を制御する技術を開示する。しかしながら、特許文献４においても、回転記録媒体にファイルを書き込む場合にシークタイムを最低化させる様にファイルの記録順を制御するものではない。
【００２０】
また、特許文献５は、光ディスクを再生する場合に、イコライザ特性を遺伝的アルゴリズムを使用することで最適化し、再生処理の最適化のためにイコライザ特性の最適化を遺伝的アルゴリズムを使用して短縮することを課題とするものであり、複数のファイルの配置を、回転記録媒体上で、シークタイムが短縮化するように設定することを課題とするものではない。
【００２１】
すなわち、これまで、回転記録媒体に対してシークタイムを最低化させるようなファイルシーケンスを生成し、回転記録媒体に書き込みを行うデータ処理装置、データ処理方法およびプログラムが必要とされていた。
【課題を解決するための手段】
【００２２】
本発明は上記従来技術の問題点期間が見てなされたものであり、本発明では、アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するアプリケーション実行部と、
前記アプリケーション実行部が前記論理シーケンスにしたがってアクセスした前記ファイルをランタイムに取得するログ取得モジュールと、
前記ログ取得モジュールが取得したアクセスログ情報を前記アプリケーションの実行後に取得するランタイムログ情報取得部と、
前記アクセスログ情報に登録されたファイルを回転機億媒体から読取りする場合にシークタイムを最適化させるようにファイル配置を決定するファイル配置決定部と
を含む、データ処理装置が提供される。
【００２３】
本発明の前記ログ取得モジュールは、前記アプリケーションプログラムにランタイムにリンクされる、ランタイムライブラリとすることができる。本発明の前記ランタイムログ情報取得部は、前記ログ取得モジュールが取得した前記アクセスログ情報のうち、前記ファイル配置を決定するために使用する、少なくともロードしたファイル名、データサイズ、読取りコマンドを受領してからファイル読込終了までの時間を含む情報を前記ファイル最適化部に送付することができる。
【００２４】
本発明では、前記ファイル配置決定部は、前記アクセスログ情報に登録された前記論理シーケンスに登録された前記ファイルごとに評価関数を使用してシークタイム推定値を計算し、前記論理シーケンスあたりの合計シークタイム推定値を計算することが好ましい。また、本発明では、前記ファイル配置決定部は、前記ファイルを構成する単一または複数のデータ単位をゲノムとし、前記ファイルを現世代セットとしてゲノム単位で交叉または突然変異させる世代更新を実行することによってファイル配置の異なる更新ファイル配置を生成することができる。
【００２５】
本発明の前記ファイル配置決定部は、前記更新ファイル配置について前記合計シークタイム推定値の見積もり値を計算し、前記見積もり値が、前記現世代セットについての見積もり値よりも小さい場合に、前記更新ファイル配置を次世代セットとして次の世代更新処理に使用することができる。前記アプリケーションプログラムは、ゲームプログラムであり、前記データ処理装置は、ゲーム実行時に前記回転記録媒体からの前記ゲームプログラムの読取りアクセスについてのシークタイムを最適化し、前記回転記録媒体は、ハードディスク、コンパクトディスク、ディジタルバーサタイルディスク、光磁気ディスクとすることができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明を実施形態をもって具体的に説明するが、本発明は、実施形態に限定されるものではない。図１は、本実施形態のデータ処理装置１１０を含む情報処理システム１００の実施形態を示す。情報処理システム１００は、データ処理装置１１０で処理されたデータを使用して処理を実行する、ゲーム装置１１８やパーソナルコンピュータ１２６などの情報処理装置を含んで構成されている。データ処理装置１１０は、パーソナルコンピュータ、ワークステーション、サーバなどの情報処理装置として実装されている。またデータ処理装置１１０は、ＤＶＤなどの外付ドライブ１１２を接続していて、データ処理装置１１０が処理したアプリケーションに関連するデータを外付けドライブ１１２に書き込み、読出す処理を実行している。
【００２７】
データ処理装置１１０は、ＰＥＮＴＩＵＭ（登録商標）、ＡＴＨＲＯＮ（登録商標）、ＣＥＬＥＲＯＮ（登録商標）など、ＰＥＮＴＩＵＭ（登録商標）互換チップといった、ＣＩＳＣアーキテクチャのプロセッサ、または、ＰＯＷＥＲ  ＰＣ（登録商標）などのＲＩＳＣアーキテクチャのプロセッサを実装することができ、プロセッサは、シングルコアでもマルチコアでもよい。また、データ処理装置１１０は、ＷＩＮＤＯＷＳ（登録商標）２００Ｘ、ＷＩＮＤＯＷＳ（登録商標）ＶＩＳＴＡ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのオペレーティング・システム（以下ＯＳとして参照する。）により制御されている。
【００２８】
また、データ処理装置１１０は、Ｃ、Ｃ＋＋、ＪＡＶＡ（登録商標）、ＪＡＶＡ（登録商標）ＳＣＲＩＰＴなどで記述されたプログラムを実行し、その処理結果を生成する。また、データ処理装置１１０は、サーバとして実装される場合には、上述したプログラミング言語に加え、ＪＡＶＡ（登録商標）、ＰＥＲＬ、ＲＵＢＹなどのプログラミング言語を使用して実装される、ＣＧＩ、サーブレット、ＡＰＡＣＨＥなどのサーバ・プログラムを実装することができる。
【００２９】
データ処理装置１１０は、アプリケーションを実行することにより、アプリケーションが含むファイルの配置を最適化し、最適化されたファイルを、外付けドライブ１１２に対して記録する。また、データ処理装置１１０は、最適化されたファイルを、インターネットなどのネットワーク１２０を介して伝送可能な形式で、ハードディスク装置などに格納し、外部からの要求に応答して要求元にダウンロードさせている。
【００３０】
データ処理装置１１０が作成したファイルは、ネットワーク１２０を介して、またはＤＶＤ、ＣＤ、ＭＯなどの回転記録媒体１１４を介して情報処理装置が取得し、ファイルを使用した処理を実行する。情報処理装置は、本実施形態では、ゲーム装置１１８またはパーソナルコンピュータ１２６として実装することができる。ゲーム装置１１８は、少なくともアプリケーションを実行するためのプロセッサと、プロセッサがアプリケーションを実行するためのＲＡＭとを含んで構成されている。ゲーム装置１１８は、ゲーム装置１１８に接続された外部媒体ドライブから回転記録媒体に格納されたファイルを読込んで、ゲーム装置１１８に接続されたディスプレイ装置１１６にアプリケーションの実行画面を表示させ、ジョイスティック、無線コントローラなどからのコマンドを受領してアプリケーション、例えばゲームなどを実行する。
【００３１】
また、パーソナルコンピュータ１２６は、同様にプロセッサと、ＲＡＭとを含んで構成されている。パーソナルコンピュータ１２６は、さらに、ブロードバンドルータ１２２を介してネットワーク１２０に接続されていて、データ処理装置１１０からアプリケーションファイルをダウンロードし、ハードディスク装置１３２やＤＶＤ、ＣＤ−ＲＷなどにアプリケーションを格納する。
【００３２】
パーソナルコンピュータ１２６は、上述したダウンロード処理を実行するため、Internet Explorer（商標）、Mozilla、Opera、Netscape Navigator（商標）などのブラウザ・ソフトウェアを実装し、ＨＴＴＰ(Hyper Text Transfer Protocol)などを使用してファイル転送を可能とする。また、パーソナルコンピュータ１２６は、他の実施形態では、ＦＴＰ(File Transfer Protocol)を使用してファイル転送を行い、ゲームのために必要なアプリケーションファイルを取得する。また、ゲーム装置１１８は、アプリケーションファイルをダウンロードするために専用のブラウザまたはＦＴＰクライアントプログラムを実装することで、アプリケーションファイルのダウンロードを行っている。
【００３３】
さらに、ゲーム装置１１８およびパーソナルコンピュータ１２６は、ＤＶＤ、ＣＤ、ＭＯ、ハードディスクなどの格納されたアプリケーションファイルを読出してＲＡＭ内にアプリケーションを展開し、プロセッサがマウス１３０や、無線コントローラ１３４などを介したユーザからのコマンドに対応してプログラムを実行することでアプリケーションの実行結果をディスプレイ装置１２４に表示させている。
【００３４】
なお、図１に示したデータ処理システム１００についての、他の実施形態では、ゲーム装置１１８が、直接ネットワーク１２０に接続し、ＤＶＤドライブ、ハードディスクドライブなどによりダウンロードしたアプリケーションを回転記録装置に記録して、アプリケーションを実行する構成を採用することもできる。
【００３５】
図２は、本実施形態のデータ処理装置１１０のハードウェアブロック２００を示す。データ処理装置１１０は、プロセッサ（ＣＰＵ）２０２と、ＣＰＵ２０２が使用するデータの高速アクセスを可能とするキャッシュメモリ２０４と、ＣＰＵ２０２の処理を可能とするＲＡＭ、ＤＲＡＭなどの固体メモリ素子から形成されるシステムメモリ２０６とを備える。ＣＵＰ２０２、キャッシュメモリ２０４、およびシステムメモリ２０６は、システム・バス２１６を介して、データ処理装置１１０の他のデバイスまたはドライバ、例えば、グラフィックスドライバ２１０、ネットワークインタフェース（ＮＩＣ）２１４へと接続されている。
【００３６】
グラフィックスドライバ２１０は、ＶＧＡ、ＸＧＡなどの規格をサポートするバスを介してディスプレイ装置２１２に接続され、ＣＰＵ２０２による処理結果をディスプレイ画面上に表示させている。また、ネットワークインタフェース２１４は、トランスポート層レベルおよび物理層レベルで情報処理装置１１０をネットワーク１２０へと接続させ、ゲーム装置１１８またはパーソナルコンピュータ１２６との間のトランザクションを可能とさせている。
【００３７】
システム・バス２１６には、さらにＩ／Ｏバス・ブリッジ２０８が接続されている。Ｉ／Ｏバス・ブリッジ２０８の下流側には、ＰＣＩなどを使用して実装されるＩ／Ｏバス２１８を介して、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、シリアルＡＴＡ、ＳＣＳＩ、ＵＬＴＲＡＳＣＳＩ、ＵＳＢなどにより、ハードディスク２２０、入力装置２２２、ＤＶＤ、ＣＤ、ＭＯなどの媒体ドライブ２２４が接続されている。データ処理装置１１０は、ハードディスク２２０に格納された本発明のプログラムをシステムメモリ２０６内に読込ませ、ＣＰＵ２０２がプログラムを実行することにより、媒体ドライブ２２４やハードディスク２２０に格納された非最適化ファイル配置状態のアプリケーションを読込んで実行する。
【００３８】
アプリケーションのプログラム実行にともなって読取りアクセスされたファイルの論理シーケンスは、読取りアクセスを受けたファイルのファイル名（拡張子も含む）などの識別値としてアクセスログ情報として登録される。アクセスログ情報は、後述する遺伝的アルゴリズムを使用してアプリケーションが含むファイル配置を、そのシークタイムが最小となるようなファイル配置を生成させるために利用される。生成されたファイル配置は、媒体ドライブ２２４またはハードディスク２２０にファイル最適配置のアプリケーションプログラムとして格納されている。
【００３９】
図３は、本実施形態のデータ処理装置１１０の機能ブロック３００を示す。図に示される機能ブロック３００のうち、データ処理装置１１０が含む各機能ブロック３００は、ＣＰＵ２０２がプログラムをメモリ内に読込んで各機能を実行させるようにハードウェア資源を機能させることによってデータ処理装置１１０上に実現されている。
【００４０】
データ処理装置１１０は、ゲームプログラムなどのアプリケーションを実行するためのアプリケーション実行部３０６と、アプリケーション実行部３０６の実行に伴ってアクセスされるファイルへのアクセスについてのランタイムログをランタイムに取得するログ取得モジュールを含むランタイムライブラリ３０８と、ログ取得モジュールが取得したランタイムログを抽出する、ランタイムログ情報取得部３１０とを含んで構成されている。
【００４１】
アプリケーション実行部３０６は、ユーザからのアプリケーション実施コマンドを受領すると、回転記録媒体を含むドライブ３１６から対象とするアプリケーションを、アプリケーションを構成する複数のファイルセットとして読込み、実行ファイルを起動してアプリケーションにより処理を開始させる。本実施形態では、ファイルセットは、この段階では、回転記録媒体中に初期配置として格納されている。初期配置は、ファイルが非最適配置で格納されており、非最適配置は、ファイルの作成順、識別番号順などの任意のシーケンスを用いて記録されている。
【００４２】
アプリケーション実行部３０６は、アプリケーションを実行しながら、処理に必要となるファイルが発生すると、当該ファイルを回転記録媒体内から検索し、検索されたファイルをメインメモリ２０６に読込ませながら処理を実行する。アプリケーションが、特にストーリー性の強いゲームアプリケーションなどの場合、特定のファイルセットが連続して読込まれる場合や、繰返し読込まれる場合など、アプリケーションの内容によって、アクセス頻度に論理シーケンスが発生する。なお、論理シーケンスとは、アプリケーションの実行により定められるファイルシーケンスを意味する。アプリケーション実行部３０６は、まず、初期配置のファイルセットを回転記録媒体から読込んで、アプリケーションを実行し、アプリケーションが定める論理シーケンスにしたがって処理を継続する。
【００４３】
ランタイムライブラリ３０８は、アプリケーションの実行時にランタイムにリンクされるいわゆるプラグインまたはアドインプログラムの集合体である。本実施形態では、ランタイムライブラリ３０８は、ログ取得モジュールを含んで構成される。ログ取得モジュールは、アプリケーションの実行に対応して読込まれるファイルについて、アプリケーションからの読込りコマンドを受領してから、指定されたファイルの末尾の読込が完了するまでの時間をモニタし、アクセスログ情報として取得する。
【００４４】
ランタイムログ情報取得部３１０は、アプリケーションの実行が終了した段階でログ取得モジュールが蓄積したアクセスログ情報を取得する。ランタイムログ情報取得部３１０は、ランタイムログ情報からアクセスログ情報に変換し、ファイル配置決定部３１２に送付する。アクセスログ情報は、（１）アクセス種類、（２）ロードしたファイル名、（３）オフセット値、（４）ロードサイズ、（５）読取りコマンドを受領してからファイル読込終了までの時間など、ファイル配置最適化に利用するためのデータを含んで構成することができる。なお、処理の要求に応じて、他のいかなるデータを追加することができる。
【００４５】
ファイル配置決定部３１２は、アプリケーションのファイルセットを読込んで、ランタイムログ情報に登録されたファイルを構成するデータセグメントについて、個々のデータセグメントを単位として、データセグメントについて遺伝的アルゴリズムを適用し、ファイル読取り時のシークタイムが採用を与える様なファイル配置を、データセグメントまたはデータセグメントのシーケンスについての交叉・突然変異などの処理を適用し、最適ファイル配置を生成する。生成された最適生成された最適ファイル配置のアプリケーションは、入出力Ｉ／Ｏ３１４を介してドライブ３１６に書き込みが行われる。なお、データセグメントは、本実施形態では、例えば３２ｂｉｔ×Ｎ（Ｎは、１以上の自然数）バイナリデータとすることができ、以下、上述したデータセグメントをゲノムとして参照する。
【００４６】
入出力Ｉ／Ｏ３１４は、アプリケーションを配布する場合の配布形式に対応して、異なるフォーマットでドライブ３１６の回転記録媒体にアプリケーションを格納する。例えば、アプリケーションがＤＶＤやＣＤ−ＲＯＭの形式でユーザに配布される場合には、アプリケーションベンダの指定にしたがったフォーマットで、回転記録媒体に格納する。また、アプリケーションの配布形式がネットワーク１２０を介したダウンロードである場合、ハードディスクへの標準的な書込み形式、例えばＦＡＴ、ＮＴＦＳ、ＨＦＳ／ＨＦＳ＋などのフォーマットで、ハードディスクに書込みを実行する。なお、本実施形態では、アプリケーションの配布形式に対応していずれの形式でも回転記録媒体に格納することができ、また、遺伝的アルゴリズムを使用して生成される最適ファイル配置を、配布形式に応じて変更することができる。
【００４７】
データ処理装置１１０は、上述した機能ブロックの他、ネットワークインタフェース３０２、ネットワーク処理部３０４、ディスプレイ処理部３２０、入出力処理部を構成するキーボード３２２、マウス３２４などを含んで構成されている。入出力処理部は、データ処理装置１１０に対してコマンドを発行し、ディスプレイ処理部３２０は、ＶＧＡ、ＸＧＡなどのフォーマットのアナログデータを受領してアプリケーションの実行結果をディスプレイに表示させる。さらに、ネットワーク処理部３０４は、ネットワーク１２０を介して、ダウンロード要求を受領し、ハードディスクなどからデータを読み出して、ネットワーク１２０を介してダウンロード要求の発行元に対してアプリケーションを送付する処理を実行する。
【００４８】
図４は、本実施形態のデータ処理装置１１０のソフトウェアの階層構造４００を示す。データ処理装置１１０のソフトウェアの階層構造４００は、アプリケーション層４１０と、ユーザライブラリ層４３０と、デバイスドライバ層４４０を含む構成とされている。また、階層構造４００には、ランタイムライブラリ４２０が、アプリケーション層４１０と、ユーザライブラリ４３０の間の階層レベルとして示されている。
【００４９】
アプリケーション層４１０は、本実施形態のファイル配置最適化プログラムを実行し、ファイル配置最適化プログラムからゲームソフトウェアなどのアプリケーションを呼び出して実行する。アプリケーション層４１０の実行の結果は、ユーザライブラリ４３０などとして提供されるミドルウェアを介して、デバイスドライバ層４４０として示された階層レベルに登録された各種デバイスドライバを起動して、記録媒体へのアクセス、スピーカ、ディスプレイ、制御スティックや無線コントローラの制御を行っている。
【００５０】
ランタイムライブラリ層４２０は、本実施形態ではプラグインプログラムやアドインプログラムとして実装することができ、アプリケーションの本体を大きく修正することなく、アプリケーションベンダに提供するアプリケーションを直接使用して、シークタイムを最小化する処理を実行する。ランタイムライブラリ層４２０は、少なくともログ取得モジュールを含んで構成され、ログ取得モジュールは、アプリケーションの実行に伴って、回転記録媒体から読取られるファイルに関するアクセスログ情報を蓄積する。
【００５１】
ログ取得モジュールが取得するアクセスログ情報４５０は、上述したように、アクセス種類、ファイル名、オフセット値、ロードサイズ、読取りコマンドを受領してからファイル読込終了までの時間などを含み、これらの情報が、アクセス順に登録されている。本実施形態のログ取得モジュールは、ゲームなどのアプリケーションの実行時に、アプリケーションに関連して読取ったファイルを識別し、順次アクセスログ情報として蓄積する。アプリケーションの終了後、ランタイムログ情報取得部３１０が、ファイル配置最適化プログラムによる、シークタイムを最低化させるためのファイル配置最適化処理に提供する。なお、ゲームアプリケーションのファイルへのアクセスは、アクセス対象のファイルのヘッダ情報やフォーマット情報などのファイル識別情報を使用してログ取得モジュールが判断し、アクセスログ情報への登録処理を実行させることができる。
【００５２】
図５は、本実施形態のファイル配置最適化処理のフローチャートである。処理はステップＳ５００から開始し、ステップＳ５０１で、初期ファイル配置のアプリケーションを格納したＤＶＤ、ＣＤ−ＲＯＭ、ハードディスクなどから、実行ファイルを読込んで、アプリケーションに対してランタイムライブラリを組込む。ステップＳ５０２でまず実行ファイルを読取って起動する。そして、ログ取得モジュールにより、アプリケーションがアクセスしたファイルのうち、実行ファイルが読取りアクセスしたファイルを識別して、アクセスログ情報としてランタイムに採取する。ステップＳ５０３では、アクセスログ情報をファイル配置決定部に渡し、シークタイムを最小化させるファイル最適配置を、遺伝的アルゴリズムを使用して決定する。
【００５３】
なお、遺伝的アルゴリズムを使用することなくファイルの全数検査を実行することも可能ではある。しかしながら、ファイルの全数検査を実行する場合、ファイル数が多くなると並び順の順列組み合わせが多くなり、例えば１００ファイルでも検査回数は、１００！＝９．３３２６２１５４×１０１５７通りの検査を必要とし、１００ファイルのアプリケーションであっても最適化処理プログラムをその回数反復実行させることは現実的ではなく、ファイルサイズの増加に対応して非現実的な実行時間が必要となり、スケーラビリティが著しく低下する。一方、遺伝的プログラムでは、最適解を与えることに対する保証性は低下するものの、スケーラビリティは、ファイル数の増加に対応して概ね線形的に増加するだけで済み、効率的な最適化が可能となる。
【００５４】
ステップＳ５０４では、ファイル最適配置に従って、回転記録媒体に各ファイルを格納し、ステップＳ５０５でファイル配置最適化処理を終了する。なお、本実施形態では、ファイル最適配置とは、回転記録媒体に記録される実行ファイルを除く、データファイル、制御ファイルなど、読取りアクセスに際し、回転記録媒体におけるシークタイムを最低化させるファイル配置を意味する。
【００５５】
図６は、図５のステップＳ５０３で示した遺伝子的アルゴリズムのフローチャートである。図６の処理は、ステップＳ６００から開始し、ステップＳ６０１でファイルリストおよびファイルリストで指定される初期配置のファイルセットを、データ処理装置が読込んで、評価対象セットとして設定する。なお、ファイルリストとは、ファイル識別値、ファイルの先頭アドレス、オフセットなどが、ファイルごとに設定された、媒体アクセス制御ファイルである。ステップＳ６０２では、ログ取得モジュールが作成し、メモリの適切な領域に格納したアクセスログ情報を読込む。ステップＳ６０３では、アクセスログ情報に従って評価対象セットをＲＡＭに読込ませ、シークタイムの推定値を、評価関数を使用して計算する。
【００５６】
評価関数は、単一のファイルの読取りアクセスについてのシークタイムを与える。評価関数は、特定のファイルにアクセスするとの読込コマンドを受領した後、対象ファイルの読込が終了するまでの時間と、対象ファイルのファイルサイズと、読取りレートとを含む、下記式（１）として与えることができる。
【００５７】
【数１】
2010097674.tif 000003
【００５８】
上記式（１）中、Taccessは、特定のファイルに対する読取りコマンドを受領してから、対象ファイルの読取りが終了するまで、より具体的にはＥＯＦが検出されるまでの時間であり、file_sizeは、対象ファイルのファイルサイズであり、res_rateは、読取りアクセスのビットあたりの読出し速度（bits／s）であり、データ処理装置１１０のドライブ装置に依存する定数である。
【００５９】
アプリケーション全体の処理に要する合計シークタイム推定値は、上記評価関数を使用して、下記式（２）で与えられる。
【００６０】
【数２】
2010097674.tif 000004
【００６１】
上記式（２）中、Tsは、ファイルアクセスするため、回転記録媒体上のトラックをシークするために要したシークタイムの類定値であり、FUNCTION_EVALjは、ファイルｊに対する評価関数が与えるシークタイム推定値である。
【００６２】
式（１）で与えられる評価関数を使用して、全ファイルについて推定値を合計する式（２）に基づいてシークタイム推定値は、初期配置のファイルについて読取るべき全ファイルのログについて積算され、初期配置について記録されたログに関連する合計シークタイム推定値Tsが計算される。
【００６３】
その後、ステップＳ６０４では、遺伝的アルゴリズム実行部を呼出し、初期配置のファイルが含むゲノムに対し、読取りアクセス時に、シークタイムを最低化させるように、回転記録媒体に書込むためのファイル配置を修正する。
【００６４】
ステップＳ６０４の処理は、遺伝子的アルゴリズムを使用してゲノムの交叉または突然変異を行って初期配置を修正し、修正に対応したファイルリストおよび推定値を、次世代セットとして登録し、次世代カウンタを増分させる。世代カウンタは、次世代生成処理が実行された回数をカウントするカウンタであり、次世代生成処理は、遺伝的アルゴリズムでは、設定する上限値まで実行され、生成された次世代セットのうち、最もシークタイム推定値Tsが小さいものを、最適ファイル配置として出力させる。なお、ステップＳ６０４についてはより詳細に後述する。
【００６５】
ステップＳ６０５では、世代カウンタが上限値を超えたか否かを判断し、世代カウンタが世代交代処理の回数である世代カウントに設定した上限値を超えていない場合（ｎｏ）、処理をステップＳ６０６に分岐させ、最新の次世代セットで、評価対象セットを更新し、処理をステップＳ６０３に戻す。一方、世代カウントの値が、上限値を超えた場合（ｙｅｓ）、ステップＳ６０７で、シークタイムの推定値Tsの中からシークタイムの推定値Tsが最小な次世代セットを、最適ファイル配置を与える結果として登録し、ステップＳ６０８で処理を終了させる。その後、データ処理装置１１０は、最適ファイル配置として選択された次世代セットを与えるファイルリストに記述されたアクセス制御データにしたがって、アプリケーションを回転記録媒体に書込み、以後の読取りアクセスにおけるシークタイムの最低化を可能とする。
【００６６】
なお、他の実施形態では、データ処理装置１１０は、取得した最適ファイル配置のアプリケーションを再度読込んで、これを初期配置として、さらに最適なファイル配置を探索することもできる。
【００６７】
図７は、図６のステップＳ６０４の処理についての詳細なフローチャートである。図７の処理は、ステップＳ７００で、ステップＳ６０３から処理を渡されることにより開始し、ステップＳ７０１で現世代セットを評価対象セットとして取得する。なお、現世代セットとは、遺伝的アルゴリズムにおけるゲノム修正により次世代セットを作成するための対象となるファイルセットである。ステップＳ７０２では、現世代セットの複数のファイルからゲノムをランダムに抽出する。ステップＳ７０３では、指定した回数分、複数のゲノムをランダムに選択した位置で、交叉(cross over)させるか、ゲノムを、他のゲノムで置換して、突然変異(mutation)させる。
【００６８】
ステップＳ７０３では、生成した更新ファイル配置の合計シークタイム推定値Tsを、ファイルリストに登録されたファイル配置で、アクセスログ情報に従って読取りアクセスした場合のアクセス時間Taccessを見積もる。Taccessの見積もりは、ファイルリストに登録されたセクタ情報、トラック情報、最小シークタイムを使用して計算させることにより実行することができる。ファイルについて得られたアクセス時間は、Taccessjとされ、その後、各Taccessｊを与えるファイルのデータサイズとともに式（１）に代入してシークタイムの推定値が与えられ、式（２）により、合計シークタイム推定値Tsの計算が実行される。その後、ステップＳ７０４で更新ファイルセットについてのTsの値が、現世代セットについてのTsを超えるか否かを判断する。
【００６９】
更新ファイル配置についてのシークタイムのTsが、現世代セットのTsを超える場合（ｙｅｓ）処理をステップＳ７０３に戻し、更新ファイル配置を次世代セットとし、さらにシークタイムを短縮させる更新ファイル配置を生成させるために、世代交代を実行させる。また、更新ファイル配置のTsが現世代よりも短い場合（ｎｏ）、処理をステップＳ７０５に渡し、ファイルリストおよび見積もった合計シークタイム推定値Tsとともに、次世代セットのファイル配置として格納され、以後の世代交代処理における現世代セットとされる。上述した処理が終了した後、処理は、ステップＳ７０６で終了し、処理を、図６のステップＳ６０５に処理を渡す。
【００７０】
図８は、本実施形態により回転記録媒体上でのファイル配置が最適化されるファイルと、ファイルを構成するゲノムの関係を示した図である。ファイル８２２は、複数のゲノム単位８１２を含んで構成されるゲノム配列として生成されている。図８に示した実施形態では、最初に読込まれるファイルであるｆｉｌｅ０は、ゲノムａ０〜ゲノムａ１７を含むゲノム配列８１０から構成されている。また、各ｆｉｌｅ１〜ｆｉｌｅ７についても、ゲノムの内容および数は異なるものの、同様の構成として生成される。
【００７１】
特定のファイルは、自己を構成するゲノムについての情報を、ヘッダデータなどとして保持している。データ処理装置のファイル配置決定部３１２は、特定のゲノムが、そのファイルに帰属されるかについては、各ファイルのヘッダを参照することにより、判断することができる。また、読取るべき新たなゲノムがある場合、当該ゲノムが帰属されるファイル識別値８３０が順次ファイル配置８００に追加されて行く。
【００７２】
図８に示したファイル配置は、読取りシーケンスに対応付けて説明したものである。本実施形態では、図８に示したファイル配置を使用してファイルの読取りアクセスにおけるシークタイムを低下させるようにして、ファイル配置を最適化する。ドライブ装置が、実際に回転記録媒体に読取りヘッドがアクセスする場合には、当該データが記録されたセクタに読取りヘッドを移動させるため、シークタイムが発生する。このため、ファイルを、現在のゲノムシーケンスを単位として登録することは、シークタイム短縮化という観点では最適化されたものではない。特に、ゲームアプリケーションのように、同一のデータや制御ファイルが、反復して呼出される場合、ファイルのゲノムシーケンスをそのままの順として回転記録媒体に記録することは、シークタイムの観点から言えば非効率であり、この結果、単一のファイルでも、同一または隣接したセクタやトラックではなく、異なるトラックに登録する方がシークタイムを低減できる。
【００７３】
本実施形態では、上記の観点から、ゲノム配列として与えられるファイルに対して遺伝的アルゴリズムを適用し、シークタイムを最低化する。図９は、本実施形態による、データ単位を、ゲノムとした遺伝的アルゴリズムによるファイル最適化処理の作用９００を示す。ファイル最適化処理では、交叉および突然変異を使用する。遺伝的アルゴリズムの世代交代としては複製も、交叉および突然変異の仮定において発生し、本実施形態における世代交代処理に使用される。
【００７４】
交叉処理では、特定のファイルを構成するゲノム配列９１０と、ゲノム配列９２０とを、現世代セットから抽出する。そして、ランダムに設定される位置で、ゲノム配列９１０およびゲノム配列９２０から部分配列９３０および部分配列９４０を切取り、ゲノム配列９１０と、ゲノム配列９２０とから得られた部分配列９３０と部分配列９４０とを結合して、ゲノム配列９５０を生成する。この結果、ゲノム配列９５０の長さは、０≦ゲノム配列９５０の長さ≦（ゲノム配列９１０の長さ）＋（ゲノム配列９２０の長さ）となる。
【００７５】
さらに図９を使用して本実施形態の世代交代処理における突然変異処理を説明する。突然変異処理は、特定の位置のゲノムを、他のゲノムで置換する処理である。置換の対象となるゲノムの位置は、交叉処理と同様にランダムに決定される。図９に示した実施例では、ゲノム配列９６０のゲノム９６２＝ｃ９は、ゲノム配列９７０のゲノム９７２＝ｃ９′に置換されている。なお、置換されたゲノムｃ９は、さらに他の突然変異処理に適用することもできるし、交叉処理のためにも使用することができる。
【００７６】
交叉処理および突然変異処理は、それぞれ独立して設定される処理回数だけ繰り返されて、全ファイルのゲノムについて処理が終了すると、図７のステップＳ７０４におけるシークタイムの見積もり処理が適用され、次世代セットの生存または死滅が判断される。
【００７７】
図９に示した処理の結果、読取るべきファイルは、アプリケーションの論理的読取りシーケンスとは異なる、物理媒体上での最適ファイル配置９８０としてマッピングされる。図９には、本発明の処理により最適配置とされた物理媒体上でのファイル書込みシーケンスを与える最適ファイル配置９８０を示す。当該シーケンスは、ファイルリストのファイル配置情報として登録され、それぞれ、先頭アドレス、オフセット値、データサイズなどとして対応付けされ、最適ファイル配置を記述するデータとして、アプリケーションのファイルアクセス制御のために利用される。
【００７８】
図９に示した遺伝的アルゴリズムによって生成される次世代セットのファイル配置は、各ファイルに帰属されるゲノムの再配置に対応して、例えば最適ファイル配置９８０として与えられる。初期配置では、アプリケーションプログラム作成や管理上の観点からシークタイムを考慮することなく、特定のファイルが予め設定されたブロックとして配置され、記録媒体に格納される。しかしながら、アプリケーションがファイルの読取りに際して、アプリケーションにより与えられる論理シーケンスで、ドライブ装置がファイルアクセスする場合、必ずしも特定の論理シーケンスに対応付けてファイルを連続したブロックとして格納することは、ファイルの読取りアクセス時において、高速アクセスを与えるものではない。
【００７９】
アプリケーションからのファイルアクセスが論理シーケンスを有している場合、本実施形態によって、ファイル配置が修正され、最適ファイル配置９８０として回転記録媒体に登録される。なお、本実施形態では、アクセスログ情報を採取する場合に、例えばベンダが指定するＤＶＤ、ＣＤ、ＭＯなどの媒体に初期配置を登録して実際の読取りを実行するので、これまで知られたいかなる回転記録媒体のトラック構成およびセクタ構成であって、対象とする回転記録媒体の構成に柔軟に対応して最適ファイル配置を提供することができる。
【００８０】
図１０は、本実施形態により作成されるアプリケーションを使用するゲーム装置１０００の実施形態を示す。ゲーム装置１０００は、ドライブ装置１０１０と、情報処理装置１０５０として実装されている。なお、情報処理装置１０５０と、ドライブ装置１０１０とは別体として構成する必要は無く、情報処理装置１０５０と一体とされた内蔵ドライブとして実装することができる。
【００８１】
図１０に示した実施形態では、ドライブ装置１０１０は、情報処理装置１０５０からの読取りコマンドを受領して、データの読取りアクセスを開始する。媒体ドライバ１０１２と、入出力Ｉ／Ｏ１０１６とを含んで構成されている。媒体ドライバ１０１２と入出力Ｉ／Ｏ１０１６とは、内部バス１０２０で接続されている。また、ドライブ装置１０１０には、ＲＡＭまたはキャッシュメモリ１０１４が接続されていて、ＤＶＤ、ＣＤ−ＲＯＭ、ＭＯなどの回転記録媒体１０１８から読込んだデータをバッファリングまたはキャッシュする。ドライブ装置１０１０が取得したデータは、情報処理装置１０５０に送られて、情報処理装置１０５０による処理のために利用される。
【００８２】
情報処理装置１０５０は、ＣＰＵ１０５８と、ＲＡＭ１０６０と、コマンド入出力レジスタ１０５２と、データ転送レジスタ１０５４と、ＮＩＣ１０５６とを含んで構成されている。情報処理装置１０５０の各機能モジュールは、内部バス１０６２により相互接続されていて、データやコマンドの送受信を可能としている。また、情報処理装置１０５０は、アプリケーションを、実行ファイル及びデータファイルなどとともに、ネットワーク１０６２を介して取得することもできる。ネットワーク１０６２を介して取得したゲームアプリケーションは、例えはハードディスクや、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＷ、ＣＤ−Ｒ、ＣＤ−ＲＷなどに格納され、プレーヤーの指示に応答して実行ファイル、データファイル、プライグインプログラム、または制御ファイルなどを読込んでゲームを開始する。
【００８３】
情報処理装置１０５０のプレーヤーが、特定のゲームをプレイしたいと希望する場合、記録媒体１０１８に格納された実行ファイルなどのファイルセットは、シークタイムを最小化し、さらに、ゲームの進行に伴う論理的シーケンスを再現するファイル配置されている。このため、情報処理装置１０５０は、ゲームの進行に応じて記録媒体にアクセスする場合に最小のシークタイムで、必要とされるファイルを読込むことが可能とされ、プレーヤーがファイルの読取りの際に浪費する時間を短縮化することができる。
【００８４】
以上説明したように、本実施形態のデータ処理装置は、論理シーケンスと物理シーケンスとをマッピングさせ、かつ総シークタイムを最小にするファイル配置を生成することができ、この処理に遺伝的アルゴリズムを使用することで、
（１）アプリケーションが含むファイルの詳細な分析を必要としない、
（２）確実な最小値を保証することはできないものの、評価目的に応じて良好なシークタイムを与える解を確実に提供することができるので、スケーラビリティに優れる、
（３）ローカルミニマムの値ではなく、大局的に見た場合での最小シークタイムを与える、
（４）ファイル最適配置を生成するために、ファイルの用意、回転記録媒体への焼きこみ、テストプレイなど、アプリケーション開発サイドで実際にオペレータが消費する時間を削減する、
ことが可能な、データ処理装置、データ処理方法、プログラムおよび記録媒体を提供することができる。
【００８５】
本実施形態の上記機能は、アセンブラ、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなどのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、プラグインプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００８６】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００８７】
【図１】本実施形態のデータ処理装置１１０を含む情報処理システム１００の実施形態を示した図。
【図２】本実施形態のデータ処理装置１１０のハードウェアブロック２００を示した図。
【図３】本実施形態のデータ処理装置１１０の機能ブロック３００を示した図。
【図４】本実施形態のデータ処理装置１１０のソフトウェアの階層構造４００を示した図。
【図５】本実施形態のファイル配置最適化処理のフローチャート。
【図６】図５のステップＳ５０３で示した遺伝的アルゴリズムのフローチャート。
【図７】図６のステップＳ６０４の処理についての詳細なフローチャート。
【図８】本実施形態により回転記録媒体上でのファイル配置が最適化されるファイルと、ファイルを構成するゲノムの関係を示した図。
【図９】本実施形態による、データ単位を、ゲノムとした遺伝的アルゴリズムによるファイル最適化処理の作用９００を示した図。
【図１０】本実施形態により作成されるアプリケーションを使用するゲーム装置１０００の実施形態を示した図。
【符号の説明】
【００８８】
１００…情報処理システム、１１０…データ処理装置、１１２…外付けドライブ、１１４…回転記録媒体、１１６…ディスプレイ装置、１１８…ゲーム装置、１２０…ネットワーク、１２２…ブロードバンドルータ、１２４…ディスプレイ装置、１２６…パーソナルコンピュータ、１２８…キーボード、１３０…マウス、１３２…ハードディスク、１３４…無線コントローラ
【図１】
2010097674.tif 000005
【図２】
2010097674.tif 000006
【図３】
2010097674.tif 000007
【図４】
2010097674.tif 000008
【図５】
2010097674.tif 000009
【図６】
2010097674.tif 000010
【図７】
2010097674.tif 000011
【図８】
2010097674.tif 000012
【図９】
2010097674.tif 000013
【図１０】
2010097674.tif 000014