説明

データ処理装置、データ処理方法、およびプログラム

【課題】複数のファイルを回転記録媒体に書込むためのファイル配置を最適化する、データ処理装置、データ処理方法、およびプログラムを提供すること。
【解決手段】データ処理装置110は、アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するアプリケーション実行部306と、アプリケーション実行部306が論理シーケンスにしたがってアクセスしたファイルをランタイムに取得したアクセスログ情報をアプリケーションの実行後に取得するランタイムログ情報取得部310と、アクセスログ情報に登録されたファイルを、回転記録媒体から読取りする場合のシークタイムに応じてファイル配置を決定するファイル配置決定部312とを含んでいる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイル管理技術に関し、より詳細には、アプリケーションプログラムを構成する複数のファイルの最適読出しを可能とするように、複数のファイルを回転記録媒体に書込むためのファイル配置を最適化する、データ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【0002】
現在、情報処理装置は、複数の記録媒体を管理することができる。記録媒体としては、ハードディスク、コンパクトディスク(以下、CDとして参照する。)、ディジタルバーサタイルディスク(以下、DVDとして参照する。)または光磁気ディスク(以下、MOとして参照する。)などが知られている。情報処理装置は、上述した記録媒体に記録されたファイルにアクセスして、処理のための必要なデータ、プログラムなどをRAM内に読込んで処理を行っている。
【0003】
一方、情報処理装置が大容量のデータを格納する場合の記録媒体は、アクセス速度などを考慮して、円形の基板上に、磁気材料、光相変化材料、光磁気材料などを保持させ、記録媒体を高速回転させながら、近接配置された磁気ヘッドや光プローブなどのプローブにより書込みや読出しを行う回転記録媒体が主流となっている。回転記録媒体には、円形ディスクに同心円状に形成されたトラックが割当てられており、特定のトラックに規定されたセクタ単位でデータに対する書込みアクセスまたは読取りアクセスが行われる。このため、回転記録媒体にデータを書込む場合や、データを読取る場合、媒体ドライブ装置は、プローブを径方向に移動させながら読書きアクセスを行うことが必要であり、この動作は、シークとして参照されている。
【0004】
情報処理装置は、近年、プロセス技術の進歩により、集積度およびクロックレートが高められた結果高速化されている。また、データ転送技術についても、SCSI、IDE、USB1.0などから、シリアルATA、ULTRASCSI、USB2.0などの高速転送バスのバスアーキテクチャも高速化されている。さらに、データ書込みやデータ読取りのためのキャッシュアーキテクチャやDMA(Direct Memory Access)アーキテクチャを使用することにより、データアクセス速度もさらに高速化されている。
【0005】
インタフェースが低速の場合、回転記録装置からデータを読出す場合のシーク時間は、データ転送時間に比較してそれほど問題とはならない。しかしながら、インタフェースが高速化するにつれ、またプロセッサの処理速度が高速化するにつれ、アプリケーションプログラムの実行にさいしてファイルを読取らせる場合、データ読込速度を向上させることが必要となる。回転記録媒体は、媒体の種類やハードウェア環境によって、データ読取りレートが変動するので、媒体種類によらずにデータ読取り速度を共通して改善する点では、読取りアクセス時のシークタイムを短縮することが好ましい。
【0006】
これまで、回転記録媒体へのデータアクセスを改善するために多くの検討がなされてきている。例えば、特開2000−100083号公報(特許文献1)では、位相比較器と周波数比較器を組み込んだデジタルPLLクロック発生手段を有し、ディスクから読取られた信号情報が、A/D変換器により上記PLLクロック発生手段で生成されたクロックに同期してデジタル化され、上記クロックに同期した再生データを出力するディスク装置において、上記PLLクロック発生手段は、上記A/D変換器の出力信号から位相誤差を算出して位相制御を行う位相制御手段と、上記読みとり信号から周波数誤差を算出して周波数制御を行う周波数制御手段とを有し、上記周波数誤差出力が所定レベルより大きいときには周波数制御を行い、上記周波数誤差出力が所定レベル以下
になったときには位相制御を行い、上記誤差データが無くなるようなクロックを出力することを特徴とするディスク装置が記載されている。
【0007】
また、特開平7−006367号公報(特許文献2)では、ディスク面上の等しい容量の同心トラックにデータが記憶されるタイプのコンパクトディスクにデータを配置する方法であって、a)データ経路及びディレクトリ内のファイルの配置を指定するデータを含む、ディレクトリに配列されたデータファイルの形式の一定の量のデータを第1の記憶手段内で編集するステップと、b)前記第1の記憶手段からデータ配置最適化ステージに前記編集されたデータを転送するステップと、c)前記データ配置最適化ステージで、前記データの前記ディレクトリをユーザがアクセスする頻度を含むディレクトリ頻度統計に基づいて前記コンパクトディスクの前記同心トラック上の前記データの配置指定を決定し、且つ前記データを前記配置指定に従って再配置するステップと、
d)前記配置指定に従って再配置された前記データを前記データ配置最適化ステージから第2の記憶手段に転送するステップと、e)前記配置指定に従って前記データをコンパクトディスクに配置するために前記再配置されたデータを前記第2の記憶手段からコンパクトディスクマスタリング及び複製手段に転送するステップとを含むコンパクトディスクにデータを配置する方法が記載されている。
【0008】
さらに、特開平9−311765号公報(特許文献3)では、回転するディスク状記憶媒体の記録面上の所定位置にヘッドを移動してデータの書き込みと読み出しを行うデータ記憶装置に対しデータを書き込ませる際に、書き込むべきデータを先頭部分から順次所定ビット長に分割した場合に得られる複数のデータブロックについて、後続するデータブロックを、先行するデータブロックを格納する前記記録面上の小領域の位置から一定方向に見て所定間隔を空けた位置に存在する小領域に格納するように、各データブロックを格納する小領域の範囲を決定し、決定された小領域の範囲を指示する情報を前記データ記憶装置に与えることを特徴とするデータ配置制御方法が記載されている。
【0009】
この他、特開平10−340583号公報(特許文献4)では、同一面に多層の情報面を有する光ディスク記録媒体に関連のある複数種類のデータを、複数の層の近接した位置に記録された光ディスク記録媒体における複数層間のフォーカスの切り替えによって、関連データへのアクセスを行うことを特徴とするアクセス方法が記載されている。
【0010】
また、複数の対象の配置などの近似解を求めるため、ヒューリスティックアルゴリズムとして、遺伝的アルゴリズムが知られている。遺伝的アルゴリズムでは、あらかじめ
所定数Nのデータを含む2集合を、現世代および次世代とし、まず、現世代にN個のデータをランダムなシーケンスで生成する。評価関数により、現世代の各データの評価値を計算する。そして、設定された頻度で2データを選択した、交叉処理、選択した1データについて突然変異または複製を行ないながら、次世代のデータセットを生成して行き、次世代のデータがN個となった段階で、現在の次世代を、次回の現世代として上述した処理を反復させる処理を実行する。反復処理の終了は、予め設定された次世代数まで繰り返し、現世代のデータセットのうち、評価値が設定値に最も近いデータセットを、最適解として出力する、ヒューリスティックアルゴリズムである。
【0011】
上述した遺伝的アルゴリズムは、得られたデータセットが真の最適解か否かについての情報は与えるものではないが、極小値に収束してしまう可能性が低く、また計算スケーラビリティも予測性が高い点で、対象とするデータの内容を詳細に分析しなくとも適用でき、またこれとは逆にデータ特徴が多様で、一定していない対象を処理する場合など汎用性が高いことが知られている。
【0012】
上述した遺伝的アルゴリズムは、これまで回転記録媒体へのデータアクセスに適用されており、例えば、特開2003−109227号公報(特許文献5)では、光ディスクの再生特性を最適化するために
光ディスクを再生する光ディスク再生装置において、所定のイコライザ特性値を、遺伝的アルゴリズムを用いて最適化するように構成されていることを特徴とする光ディスク再生装置が記載されている。
【特許文献1】特開2000−100083号公報
【特許文献2】特開平7−006367号公報
【特許文献3】特開平9−311765号公報
【特許文献4】特開平10−340583号公報
【特許文献5】特開2003−109227号公報
【発明の開示】
【発明が解決しようとする課題】
【0013】
情報処理装置が使用するデータは多種多様であり、また例えば、ゲームアプリケーションを記録する回転記録媒体は、実行モジュール、制御データ、およびグラフィックスデータなど大容量で、複数のファイルが記録されている。情報処理装置は、ゲームアプリケーションを実行する場合、データの読取りが完了するまで次処理が実行できないので、ゲームプログラムは、次処理を開始する前の直前の状態でデータのロード期間中、待機状態となる。
【0014】
例えば、ゲーム内容がステージごとに変化するような場合、ステージ間で次のステージのための、実行モジュール、制御データ、またはグラフィックスデータなどを読取る様な場合に、ロード中待機状態となる。また、使用している情報処理装置の処理能力によっては、一連のゲームストーリー内でもデータの読取りが行われる場合も想定される。
【0015】
この様な場合、情報処理装置を使用してゲームを楽しんでいるユーザは、待たされることになりゲームの連続性やリアリティが損なわれてしまうことになる。近年では、ゲームの内容はますます複雑化し、グラフィックスも高精細化してより臨場感の高い内容とされているので、データ量はますます増加し、この結果、データ読取り効率を改善することが必要とされていた。この場合、バスライン、キャッシュアーキテクチャを改善することによっても対応することができる。しかしながら、ゲームアプリケーションなどは、データ/ファイルごとに読取りアクセスを受ける頻度が異なり、また読取りアクセスは、ランダムに発生するのではなく、ゲームストーリーによって定められた一定の論理シーケンスにしたがって発生する。
【0016】
そして、一定の論理シーケンスで読出しアクセスが発生するファイルについては、回転記録媒体の特性に対応し、ファイル配置を制御することによってもシークタイムを回転記録媒体の種類によらず、最適化することができ、アプリケーションのベンダにより異なる媒体形式に柔軟に対応することができる。
【0017】
上記従来技術の課題に鑑みれば、特許文献1では、周波数制御および位相制御を使用してデータにロックしたクロックを生成させることで、シークタイムを短縮させることを可能としている。特許文献1に記載された技術は、ドライブ制御装置のモータ駆動を制御することによりシークタイムを短縮化するものであり、書き込まれるべきデータ内容に依存してシークタイムを短縮化することを課題とするものではない。
【0018】
また、特許文献2は、コンパクトディスクの平均シーク時間および最大距離シーク確率を少なくすることで、シーク時間を短縮させるため、プロセッサステージと、テープ記録ステージとの間のデータ配置最適化ステージを設け、データへのアクセス頻度に対応してディスク上での記録トラックの位置を制御する技術を開示している。特許文献2に記載されたデータ配置最適化ステージは、データのアクセス頻度に対応してシークタイムを最小となるように、データを記録するものである。しかしながら、独立して記録されるデータまたはファイルを一定の順序で読み出す場合に、シークタイムを最低とするように、データやファイルの記録順を制御することを課題とするものではない。
【0019】
特許文献3は、データ記憶装置に、データが書き込まれる位置を指定する情報を与えることにより、無用なシーク動作の発生を防止することで、シーク時間を短縮する技術を記載する。しかしながら、特許文献3に記載された技術についてもファイルのアクセス頻度を考慮してシーク時間を最低化させるように、ファイルの順を決定することを課題とするものではない。さらに特許文献4は、シークタイムの最小化を行うため、回転記録媒体に対するデータ書込処理を制御する技術を開示する。しかしながら、特許文献4においても、回転記録媒体にファイルを書き込む場合にシークタイムを最低化させる様にファイルの記録順を制御するものではない。
【0020】
また、特許文献5は、光ディスクを再生する場合に、イコライザ特性を遺伝的アルゴリズムを使用することで最適化し、再生処理の最適化のためにイコライザ特性の最適化を遺伝的アルゴリズムを使用して短縮することを課題とするものであり、複数のファイルの配置を、回転記録媒体上で、シークタイムが短縮化するように設定することを課題とするものではない。
【0021】
すなわち、これまで、回転記録媒体に対してシークタイムを最低化させるようなファイルシーケンスを生成し、回転記録媒体に書き込みを行うデータ処理装置、データ処理方法およびプログラムが必要とされていた。
【課題を解決するための手段】
【0022】
本発明は上記従来技術の問題点期間が見てなされたものであり、本発明では、アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するアプリケーション実行部と、
前記アプリケーション実行部が前記論理シーケンスにしたがってアクセスした前記ファイルをランタイムに取得するログ取得モジュールと、
前記ログ取得モジュールが取得したアクセスログ情報を前記アプリケーションの実行後に取得するランタイムログ情報取得部と、
前記アクセスログ情報に登録されたファイルを回転機億媒体から読取りする場合にシークタイムを最適化させるようにファイル配置を決定するファイル配置決定部と
を含む、データ処理装置が提供される。
【0023】
本発明の前記ログ取得モジュールは、前記アプリケーションプログラムにランタイムにリンクされる、ランタイムライブラリとすることができる。本発明の前記ランタイムログ情報取得部は、前記ログ取得モジュールが取得した前記アクセスログ情報のうち、前記ファイル配置を決定するために使用する、少なくともロードしたファイル名、データサイズ、読取りコマンドを受領してからファイル読込終了までの時間を含む情報を前記ファイル最適化部に送付することができる。
【0024】
本発明では、前記ファイル配置決定部は、前記アクセスログ情報に登録された前記論理シーケンスに登録された前記ファイルごとに評価関数を使用してシークタイム推定値を計算し、前記論理シーケンスあたりの合計シークタイム推定値を計算することが好ましい。また、本発明では、前記ファイル配置決定部は、前記ファイルを構成する単一または複数のデータ単位をゲノムとし、前記ファイルを現世代セットとしてゲノム単位で交叉または突然変異させる世代更新を実行することによってファイル配置の異なる更新ファイル配置を生成することができる。
【0025】
本発明の前記ファイル配置決定部は、前記更新ファイル配置について前記合計シークタイム推定値の見積もり値を計算し、前記見積もり値が、前記現世代セットについての見積もり値よりも小さい場合に、前記更新ファイル配置を次世代セットとして次の世代更新処理に使用することができる。前記アプリケーションプログラムは、ゲームプログラムであり、前記データ処理装置は、ゲーム実行時に前記回転記録媒体からの前記ゲームプログラムの読取りアクセスについてのシークタイムを最適化し、前記回転記録媒体は、ハードディスク、コンパクトディスク、ディジタルバーサタイルディスク、光磁気ディスクとすることができる。
【発明を実施するための最良の形態】
【0026】
以下、本発明を実施形態をもって具体的に説明するが、本発明は、実施形態に限定されるものではない。図1は、本実施形態のデータ処理装置110を含む情報処理システム100の実施形態を示す。情報処理システム100は、データ処理装置110で処理されたデータを使用して処理を実行する、ゲーム装置118やパーソナルコンピュータ126などの情報処理装置を含んで構成されている。データ処理装置110は、パーソナルコンピュータ、ワークステーション、サーバなどの情報処理装置として実装されている。またデータ処理装置110は、DVDなどの外付ドライブ112を接続していて、データ処理装置110が処理したアプリケーションに関連するデータを外付けドライブ112に書き込み、読出す処理を実行している。
【0027】
データ処理装置110は、PENTIUM(登録商標)、ATHRON(登録商標)、CELERON(登録商標)など、PENTIUM(登録商標)互換チップといった、CISCアーキテクチャのプロセッサ、または、POWER PC(登録商標)などのRISCアーキテクチャのプロセッサを実装することができ、プロセッサは、シングルコアでもマルチコアでもよい。また、データ処理装置110は、WINDOWS(登録商標)200X、WINDOWS(登録商標)VISTA、UNIX(登録商標)、LINUX(登録商標)などのオペレーティング・システム(以下OSとして参照する。)により制御されている。
【0028】
また、データ処理装置110は、C、C++、JAVA(登録商標)、JAVA(登録商標)SCRIPTなどで記述されたプログラムを実行し、その処理結果を生成する。また、データ処理装置110は、サーバとして実装される場合には、上述したプログラミング言語に加え、JAVA(登録商標)、PERL、RUBYなどのプログラミング言語を使用して実装される、CGI、サーブレット、APACHEなどのサーバ・プログラムを実装することができる。
【0029】
データ処理装置110は、アプリケーションを実行することにより、アプリケーションが含むファイルの配置を最適化し、最適化されたファイルを、外付けドライブ112に対して記録する。また、データ処理装置110は、最適化されたファイルを、インターネットなどのネットワーク120を介して伝送可能な形式で、ハードディスク装置などに格納し、外部からの要求に応答して要求元にダウンロードさせている。
【0030】
データ処理装置110が作成したファイルは、ネットワーク120を介して、またはDVD、CD、MOなどの回転記録媒体114を介して情報処理装置が取得し、ファイルを使用した処理を実行する。情報処理装置は、本実施形態では、ゲーム装置118またはパーソナルコンピュータ126として実装することができる。ゲーム装置118は、少なくともアプリケーションを実行するためのプロセッサと、プロセッサがアプリケーションを実行するためのRAMとを含んで構成されている。ゲーム装置118は、ゲーム装置118に接続された外部媒体ドライブから回転記録媒体に格納されたファイルを読込んで、ゲーム装置118に接続されたディスプレイ装置116にアプリケーションの実行画面を表示させ、ジョイスティック、無線コントローラなどからのコマンドを受領してアプリケーション、例えばゲームなどを実行する。
【0031】
また、パーソナルコンピュータ126は、同様にプロセッサと、RAMとを含んで構成されている。パーソナルコンピュータ126は、さらに、ブロードバンドルータ122を介してネットワーク120に接続されていて、データ処理装置110からアプリケーションファイルをダウンロードし、ハードディスク装置132やDVD、CD−RWなどにアプリケーションを格納する。
【0032】
パーソナルコンピュータ126は、上述したダウンロード処理を実行するため、Internet Explorer(商標)、Mozilla、Opera、Netscape Navigator(商標)などのブラウザ・ソフトウェアを実装し、HTTP(Hyper Text Transfer Protocol)などを使用してファイル転送を可能とする。また、パーソナルコンピュータ126は、他の実施形態では、FTP(File Transfer Protocol)を使用してファイル転送を行い、ゲームのために必要なアプリケーションファイルを取得する。また、ゲーム装置118は、アプリケーションファイルをダウンロードするために専用のブラウザまたはFTPクライアントプログラムを実装することで、アプリケーションファイルのダウンロードを行っている。
【0033】
さらに、ゲーム装置118およびパーソナルコンピュータ126は、DVD、CD、MO、ハードディスクなどの格納されたアプリケーションファイルを読出してRAM内にアプリケーションを展開し、プロセッサがマウス130や、無線コントローラ134などを介したユーザからのコマンドに対応してプログラムを実行することでアプリケーションの実行結果をディスプレイ装置124に表示させている。
【0034】
なお、図1に示したデータ処理システム100についての、他の実施形態では、ゲーム装置118が、直接ネットワーク120に接続し、DVDドライブ、ハードディスクドライブなどによりダウンロードしたアプリケーションを回転記録装置に記録して、アプリケーションを実行する構成を採用することもできる。
【0035】
図2は、本実施形態のデータ処理装置110のハードウェアブロック200を示す。データ処理装置110は、プロセッサ(CPU)202と、CPU202が使用するデータの高速アクセスを可能とするキャッシュメモリ204と、CPU202の処理を可能とするRAM、DRAMなどの固体メモリ素子から形成されるシステムメモリ206とを備える。CUP202、キャッシュメモリ204、およびシステムメモリ206は、システム・バス216を介して、データ処理装置110の他のデバイスまたはドライバ、例えば、グラフィックスドライバ210、ネットワークインタフェース(NIC)214へと接続されている。
【0036】
グラフィックスドライバ210は、VGA、XGAなどの規格をサポートするバスを介してディスプレイ装置212に接続され、CPU202による処理結果をディスプレイ画面上に表示させている。また、ネットワークインタフェース214は、トランスポート層レベルおよび物理層レベルで情報処理装置110をネットワーク120へと接続させ、ゲーム装置118またはパーソナルコンピュータ126との間のトランザクションを可能とさせている。
【0037】
システム・バス216には、さらにI/Oバス・ブリッジ208が接続されている。I/Oバス・ブリッジ208の下流側には、PCIなどを使用して実装されるI/Oバス218を介して、IDE、ATA、ATAPI、シリアルATA、SCSI、ULTRASCSI、USBなどにより、ハードディスク220、入力装置222、DVD、CD、MOなどの媒体ドライブ224が接続されている。データ処理装置110は、ハードディスク220に格納された本発明のプログラムをシステムメモリ206内に読込ませ、CPU202がプログラムを実行することにより、媒体ドライブ224やハードディスク220に格納された非最適化ファイル配置状態のアプリケーションを読込んで実行する。
【0038】
アプリケーションのプログラム実行にともなって読取りアクセスされたファイルの論理シーケンスは、読取りアクセスを受けたファイルのファイル名(拡張子も含む)などの識別値としてアクセスログ情報として登録される。アクセスログ情報は、後述する遺伝的アルゴリズムを使用してアプリケーションが含むファイル配置を、そのシークタイムが最小となるようなファイル配置を生成させるために利用される。生成されたファイル配置は、媒体ドライブ224またはハードディスク220にファイル最適配置のアプリケーションプログラムとして格納されている。
【0039】
図3は、本実施形態のデータ処理装置110の機能ブロック300を示す。図に示される機能ブロック300のうち、データ処理装置110が含む各機能ブロック300は、CPU202がプログラムをメモリ内に読込んで各機能を実行させるようにハードウェア資源を機能させることによってデータ処理装置110上に実現されている。
【0040】
データ処理装置110は、ゲームプログラムなどのアプリケーションを実行するためのアプリケーション実行部306と、アプリケーション実行部306の実行に伴ってアクセスされるファイルへのアクセスについてのランタイムログをランタイムに取得するログ取得モジュールを含むランタイムライブラリ308と、ログ取得モジュールが取得したランタイムログを抽出する、ランタイムログ情報取得部310とを含んで構成されている。
【0041】
アプリケーション実行部306は、ユーザからのアプリケーション実施コマンドを受領すると、回転記録媒体を含むドライブ316から対象とするアプリケーションを、アプリケーションを構成する複数のファイルセットとして読込み、実行ファイルを起動してアプリケーションにより処理を開始させる。本実施形態では、ファイルセットは、この段階では、回転記録媒体中に初期配置として格納されている。初期配置は、ファイルが非最適配置で格納されており、非最適配置は、ファイルの作成順、識別番号順などの任意のシーケンスを用いて記録されている。
【0042】
アプリケーション実行部306は、アプリケーションを実行しながら、処理に必要となるファイルが発生すると、当該ファイルを回転記録媒体内から検索し、検索されたファイルをメインメモリ206に読込ませながら処理を実行する。アプリケーションが、特にストーリー性の強いゲームアプリケーションなどの場合、特定のファイルセットが連続して読込まれる場合や、繰返し読込まれる場合など、アプリケーションの内容によって、アクセス頻度に論理シーケンスが発生する。なお、論理シーケンスとは、アプリケーションの実行により定められるファイルシーケンスを意味する。アプリケーション実行部306は、まず、初期配置のファイルセットを回転記録媒体から読込んで、アプリケーションを実行し、アプリケーションが定める論理シーケンスにしたがって処理を継続する。
【0043】
ランタイムライブラリ308は、アプリケーションの実行時にランタイムにリンクされるいわゆるプラグインまたはアドインプログラムの集合体である。本実施形態では、ランタイムライブラリ308は、ログ取得モジュールを含んで構成される。ログ取得モジュールは、アプリケーションの実行に対応して読込まれるファイルについて、アプリケーションからの読込りコマンドを受領してから、指定されたファイルの末尾の読込が完了するまでの時間をモニタし、アクセスログ情報として取得する。
【0044】
ランタイムログ情報取得部310は、アプリケーションの実行が終了した段階でログ取得モジュールが蓄積したアクセスログ情報を取得する。ランタイムログ情報取得部310は、ランタイムログ情報からアクセスログ情報に変換し、ファイル配置決定部312に送付する。アクセスログ情報は、(1)アクセス種類、(2)ロードしたファイル名、(3)オフセット値、(4)ロードサイズ、(5)読取りコマンドを受領してからファイル読込終了までの時間など、ファイル配置最適化に利用するためのデータを含んで構成することができる。なお、処理の要求に応じて、他のいかなるデータを追加することができる。
【0045】
ファイル配置決定部312は、アプリケーションのファイルセットを読込んで、ランタイムログ情報に登録されたファイルを構成するデータセグメントについて、個々のデータセグメントを単位として、データセグメントについて遺伝的アルゴリズムを適用し、ファイル読取り時のシークタイムが採用を与える様なファイル配置を、データセグメントまたはデータセグメントのシーケンスについての交叉・突然変異などの処理を適用し、最適ファイル配置を生成する。生成された最適生成された最適ファイル配置のアプリケーションは、入出力I/O314を介してドライブ316に書き込みが行われる。なお、データセグメントは、本実施形態では、例えば32bit×N(Nは、1以上の自然数)バイナリデータとすることができ、以下、上述したデータセグメントをゲノムとして参照する。
【0046】
入出力I/O314は、アプリケーションを配布する場合の配布形式に対応して、異なるフォーマットでドライブ316の回転記録媒体にアプリケーションを格納する。例えば、アプリケーションがDVDやCD−ROMの形式でユーザに配布される場合には、アプリケーションベンダの指定にしたがったフォーマットで、回転記録媒体に格納する。また、アプリケーションの配布形式がネットワーク120を介したダウンロードである場合、ハードディスクへの標準的な書込み形式、例えばFAT、NTFS、HFS/HFS+などのフォーマットで、ハードディスクに書込みを実行する。なお、本実施形態では、アプリケーションの配布形式に対応していずれの形式でも回転記録媒体に格納することができ、また、遺伝的アルゴリズムを使用して生成される最適ファイル配置を、配布形式に応じて変更することができる。
【0047】
データ処理装置110は、上述した機能ブロックの他、ネットワークインタフェース302、ネットワーク処理部304、ディスプレイ処理部320、入出力処理部を構成するキーボード322、マウス324などを含んで構成されている。入出力処理部は、データ処理装置110に対してコマンドを発行し、ディスプレイ処理部320は、VGA、XGAなどのフォーマットのアナログデータを受領してアプリケーションの実行結果をディスプレイに表示させる。さらに、ネットワーク処理部304は、ネットワーク120を介して、ダウンロード要求を受領し、ハードディスクなどからデータを読み出して、ネットワーク120を介してダウンロード要求の発行元に対してアプリケーションを送付する処理を実行する。
【0048】
図4は、本実施形態のデータ処理装置110のソフトウェアの階層構造400を示す。データ処理装置110のソフトウェアの階層構造400は、アプリケーション層410と、ユーザライブラリ層430と、デバイスドライバ層440を含む構成とされている。また、階層構造400には、ランタイムライブラリ420が、アプリケーション層410と、ユーザライブラリ430の間の階層レベルとして示されている。
【0049】
アプリケーション層410は、本実施形態のファイル配置最適化プログラムを実行し、ファイル配置最適化プログラムからゲームソフトウェアなどのアプリケーションを呼び出して実行する。アプリケーション層410の実行の結果は、ユーザライブラリ430などとして提供されるミドルウェアを介して、デバイスドライバ層440として示された階層レベルに登録された各種デバイスドライバを起動して、記録媒体へのアクセス、スピーカ、ディスプレイ、制御スティックや無線コントローラの制御を行っている。
【0050】
ランタイムライブラリ層420は、本実施形態ではプラグインプログラムやアドインプログラムとして実装することができ、アプリケーションの本体を大きく修正することなく、アプリケーションベンダに提供するアプリケーションを直接使用して、シークタイムを最小化する処理を実行する。ランタイムライブラリ層420は、少なくともログ取得モジュールを含んで構成され、ログ取得モジュールは、アプリケーションの実行に伴って、回転記録媒体から読取られるファイルに関するアクセスログ情報を蓄積する。
【0051】
ログ取得モジュールが取得するアクセスログ情報450は、上述したように、アクセス種類、ファイル名、オフセット値、ロードサイズ、読取りコマンドを受領してからファイル読込終了までの時間などを含み、これらの情報が、アクセス順に登録されている。本実施形態のログ取得モジュールは、ゲームなどのアプリケーションの実行時に、アプリケーションに関連して読取ったファイルを識別し、順次アクセスログ情報として蓄積する。アプリケーションの終了後、ランタイムログ情報取得部310が、ファイル配置最適化プログラムによる、シークタイムを最低化させるためのファイル配置最適化処理に提供する。なお、ゲームアプリケーションのファイルへのアクセスは、アクセス対象のファイルのヘッダ情報やフォーマット情報などのファイル識別情報を使用してログ取得モジュールが判断し、アクセスログ情報への登録処理を実行させることができる。
【0052】
図5は、本実施形態のファイル配置最適化処理のフローチャートである。処理はステップS500から開始し、ステップS501で、初期ファイル配置のアプリケーションを格納したDVD、CD−ROM、ハードディスクなどから、実行ファイルを読込んで、アプリケーションに対してランタイムライブラリを組込む。ステップS502でまず実行ファイルを読取って起動する。そして、ログ取得モジュールにより、アプリケーションがアクセスしたファイルのうち、実行ファイルが読取りアクセスしたファイルを識別して、アクセスログ情報としてランタイムに採取する。ステップS503では、アクセスログ情報をファイル配置決定部に渡し、シークタイムを最小化させるファイル最適配置を、遺伝的アルゴリズムを使用して決定する。
【0053】
なお、遺伝的アルゴリズムを使用することなくファイルの全数検査を実行することも可能ではある。しかしながら、ファイルの全数検査を実行する場合、ファイル数が多くなると並び順の順列組み合わせが多くなり、例えば100ファイルでも検査回数は、100!=9.33262154×10157通りの検査を必要とし、100ファイルのアプリケーションであっても最適化処理プログラムをその回数反復実行させることは現実的ではなく、ファイルサイズの増加に対応して非現実的な実行時間が必要となり、スケーラビリティが著しく低下する。一方、遺伝的プログラムでは、最適解を与えることに対する保証性は低下するものの、スケーラビリティは、ファイル数の増加に対応して概ね線形的に増加するだけで済み、効率的な最適化が可能となる。
【0054】
ステップS504では、ファイル最適配置に従って、回転記録媒体に各ファイルを格納し、ステップS505でファイル配置最適化処理を終了する。なお、本実施形態では、ファイル最適配置とは、回転記録媒体に記録される実行ファイルを除く、データファイル、制御ファイルなど、読取りアクセスに際し、回転記録媒体におけるシークタイムを最低化させるファイル配置を意味する。
【0055】
図6は、図5のステップS503で示した遺伝子的アルゴリズムのフローチャートである。図6の処理は、ステップS600から開始し、ステップS601でファイルリストおよびファイルリストで指定される初期配置のファイルセットを、データ処理装置が読込んで、評価対象セットとして設定する。なお、ファイルリストとは、ファイル識別値、ファイルの先頭アドレス、オフセットなどが、ファイルごとに設定された、媒体アクセス制御ファイルである。ステップS602では、ログ取得モジュールが作成し、メモリの適切な領域に格納したアクセスログ情報を読込む。ステップS603では、アクセスログ情報に従って評価対象セットをRAMに読込ませ、シークタイムの推定値を、評価関数を使用して計算する。
【0056】
評価関数は、単一のファイルの読取りアクセスについてのシークタイムを与える。評価関数は、特定のファイルにアクセスするとの読込コマンドを受領した後、対象ファイルの読込が終了するまでの時間と、対象ファイルのファイルサイズと、読取りレートとを含む、下記式(1)として与えることができる。
【0057】
【数1】

【0058】
上記式(1)中、Taccessは、特定のファイルに対する読取りコマンドを受領してから、対象ファイルの読取りが終了するまで、より具体的にはEOFが検出されるまでの時間であり、file_sizeは、対象ファイルのファイルサイズであり、res_rateは、読取りアクセスのビットあたりの読出し速度(bits/s)であり、データ処理装置110のドライブ装置に依存する定数である。
【0059】
アプリケーション全体の処理に要する合計シークタイム推定値は、上記評価関数を使用して、下記式(2)で与えられる。
【0060】
【数2】

【0061】
上記式(2)中、Tsは、ファイルアクセスするため、回転記録媒体上のトラックをシークするために要したシークタイムの類定値であり、FUNCTION_EVALjは、ファイルjに対する評価関数が与えるシークタイム推定値である。
【0062】
式(1)で与えられる評価関数を使用して、全ファイルについて推定値を合計する式(2)に基づいてシークタイム推定値は、初期配置のファイルについて読取るべき全ファイルのログについて積算され、初期配置について記録されたログに関連する合計シークタイム推定値Tsが計算される。
【0063】
その後、ステップS604では、遺伝的アルゴリズム実行部を呼出し、初期配置のファイルが含むゲノムに対し、読取りアクセス時に、シークタイムを最低化させるように、回転記録媒体に書込むためのファイル配置を修正する。
【0064】
ステップS604の処理は、遺伝子的アルゴリズムを使用してゲノムの交叉または突然変異を行って初期配置を修正し、修正に対応したファイルリストおよび推定値を、次世代セットとして登録し、次世代カウンタを増分させる。世代カウンタは、次世代生成処理が実行された回数をカウントするカウンタであり、次世代生成処理は、遺伝的アルゴリズムでは、設定する上限値まで実行され、生成された次世代セットのうち、最もシークタイム推定値Tsが小さいものを、最適ファイル配置として出力させる。なお、ステップS604についてはより詳細に後述する。
【0065】
ステップS605では、世代カウンタが上限値を超えたか否かを判断し、世代カウンタが世代交代処理の回数である世代カウントに設定した上限値を超えていない場合(no)、処理をステップS606に分岐させ、最新の次世代セットで、評価対象セットを更新し、処理をステップS603に戻す。一方、世代カウントの値が、上限値を超えた場合(yes)、ステップS607で、シークタイムの推定値Tsの中からシークタイムの推定値Tsが最小な次世代セットを、最適ファイル配置を与える結果として登録し、ステップS608で処理を終了させる。その後、データ処理装置110は、最適ファイル配置として選択された次世代セットを与えるファイルリストに記述されたアクセス制御データにしたがって、アプリケーションを回転記録媒体に書込み、以後の読取りアクセスにおけるシークタイムの最低化を可能とする。
【0066】
なお、他の実施形態では、データ処理装置110は、取得した最適ファイル配置のアプリケーションを再度読込んで、これを初期配置として、さらに最適なファイル配置を探索することもできる。
【0067】
図7は、図6のステップS604の処理についての詳細なフローチャートである。図7の処理は、ステップS700で、ステップS603から処理を渡されることにより開始し、ステップS701で現世代セットを評価対象セットとして取得する。なお、現世代セットとは、遺伝的アルゴリズムにおけるゲノム修正により次世代セットを作成するための対象となるファイルセットである。ステップS702では、現世代セットの複数のファイルからゲノムをランダムに抽出する。ステップS703では、指定した回数分、複数のゲノムをランダムに選択した位置で、交叉(cross over)させるか、ゲノムを、他のゲノムで置換して、突然変異(mutation)させる。
【0068】
ステップS703では、生成した更新ファイル配置の合計シークタイム推定値Tsを、ファイルリストに登録されたファイル配置で、アクセスログ情報に従って読取りアクセスした場合のアクセス時間Taccessを見積もる。Taccessの見積もりは、ファイルリストに登録されたセクタ情報、トラック情報、最小シークタイムを使用して計算させることにより実行することができる。ファイルについて得られたアクセス時間は、Taccessjとされ、その後、各Taccessを与えるファイルのデータサイズとともに式(1)に代入してシークタイムの推定値が与えられ、式(2)により、合計シークタイム推定値Tsの計算が実行される。その後、ステップS704で更新ファイルセットについてのTsの値が、現世代セットについてのTsを超えるか否かを判断する。
【0069】
更新ファイル配置についてのシークタイムのTsが、現世代セットのTsを超える場合(yes)処理をステップS703に戻し、更新ファイル配置を次世代セットとし、さらにシークタイムを短縮させる更新ファイル配置を生成させるために、世代交代を実行させる。また、更新ファイル配置のTsが現世代よりも短い場合(no)、処理をステップS705に渡し、ファイルリストおよび見積もった合計シークタイム推定値Tsとともに、次世代セットのファイル配置として格納され、以後の世代交代処理における現世代セットとされる。上述した処理が終了した後、処理は、ステップS706で終了し、処理を、図6のステップS605に処理を渡す。
【0070】
図8は、本実施形態により回転記録媒体上でのファイル配置が最適化されるファイルと、ファイルを構成するゲノムの関係を示した図である。ファイル822は、複数のゲノム単位812を含んで構成されるゲノム配列として生成されている。図8に示した実施形態では、最初に読込まれるファイルであるfile0は、ゲノムa0〜ゲノムa17を含むゲノム配列810から構成されている。また、各file1〜file7についても、ゲノムの内容および数は異なるものの、同様の構成として生成される。
【0071】
特定のファイルは、自己を構成するゲノムについての情報を、ヘッダデータなどとして保持している。データ処理装置のファイル配置決定部312は、特定のゲノムが、そのファイルに帰属されるかについては、各ファイルのヘッダを参照することにより、判断することができる。また、読取るべき新たなゲノムがある場合、当該ゲノムが帰属されるファイル識別値830が順次ファイル配置800に追加されて行く。
【0072】
図8に示したファイル配置は、読取りシーケンスに対応付けて説明したものである。本実施形態では、図8に示したファイル配置を使用してファイルの読取りアクセスにおけるシークタイムを低下させるようにして、ファイル配置を最適化する。ドライブ装置が、実際に回転記録媒体に読取りヘッドがアクセスする場合には、当該データが記録されたセクタに読取りヘッドを移動させるため、シークタイムが発生する。このため、ファイルを、現在のゲノムシーケンスを単位として登録することは、シークタイム短縮化という観点では最適化されたものではない。特に、ゲームアプリケーションのように、同一のデータや制御ファイルが、反復して呼出される場合、ファイルのゲノムシーケンスをそのままの順として回転記録媒体に記録することは、シークタイムの観点から言えば非効率であり、この結果、単一のファイルでも、同一または隣接したセクタやトラックではなく、異なるトラックに登録する方がシークタイムを低減できる。
【0073】
本実施形態では、上記の観点から、ゲノム配列として与えられるファイルに対して遺伝的アルゴリズムを適用し、シークタイムを最低化する。図9は、本実施形態による、データ単位を、ゲノムとした遺伝的アルゴリズムによるファイル最適化処理の作用900を示す。ファイル最適化処理では、交叉および突然変異を使用する。遺伝的アルゴリズムの世代交代としては複製も、交叉および突然変異の仮定において発生し、本実施形態における世代交代処理に使用される。
【0074】
交叉処理では、特定のファイルを構成するゲノム配列910と、ゲノム配列920とを、現世代セットから抽出する。そして、ランダムに設定される位置で、ゲノム配列910およびゲノム配列920から部分配列930および部分配列940を切取り、ゲノム配列910と、ゲノム配列920とから得られた部分配列930と部分配列940とを結合して、ゲノム配列950を生成する。この結果、ゲノム配列950の長さは、0≦ゲノム配列950の長さ≦(ゲノム配列910の長さ)+(ゲノム配列920の長さ)となる。
【0075】
さらに図9を使用して本実施形態の世代交代処理における突然変異処理を説明する。突然変異処理は、特定の位置のゲノムを、他のゲノムで置換する処理である。置換の対象となるゲノムの位置は、交叉処理と同様にランダムに決定される。図9に示した実施例では、ゲノム配列960のゲノム962=c9は、ゲノム配列970のゲノム972=c9′に置換されている。なお、置換されたゲノムc9は、さらに他の突然変異処理に適用することもできるし、交叉処理のためにも使用することができる。
【0076】
交叉処理および突然変異処理は、それぞれ独立して設定される処理回数だけ繰り返されて、全ファイルのゲノムについて処理が終了すると、図7のステップS704におけるシークタイムの見積もり処理が適用され、次世代セットの生存または死滅が判断される。
【0077】
図9に示した処理の結果、読取るべきファイルは、アプリケーションの論理的読取りシーケンスとは異なる、物理媒体上での最適ファイル配置980としてマッピングされる。図9には、本発明の処理により最適配置とされた物理媒体上でのファイル書込みシーケンスを与える最適ファイル配置980を示す。当該シーケンスは、ファイルリストのファイル配置情報として登録され、それぞれ、先頭アドレス、オフセット値、データサイズなどとして対応付けされ、最適ファイル配置を記述するデータとして、アプリケーションのファイルアクセス制御のために利用される。
【0078】
図9に示した遺伝的アルゴリズムによって生成される次世代セットのファイル配置は、各ファイルに帰属されるゲノムの再配置に対応して、例えば最適ファイル配置980として与えられる。初期配置では、アプリケーションプログラム作成や管理上の観点からシークタイムを考慮することなく、特定のファイルが予め設定されたブロックとして配置され、記録媒体に格納される。しかしながら、アプリケーションがファイルの読取りに際して、アプリケーションにより与えられる論理シーケンスで、ドライブ装置がファイルアクセスする場合、必ずしも特定の論理シーケンスに対応付けてファイルを連続したブロックとして格納することは、ファイルの読取りアクセス時において、高速アクセスを与えるものではない。
【0079】
アプリケーションからのファイルアクセスが論理シーケンスを有している場合、本実施形態によって、ファイル配置が修正され、最適ファイル配置980として回転記録媒体に登録される。なお、本実施形態では、アクセスログ情報を採取する場合に、例えばベンダが指定するDVD、CD、MOなどの媒体に初期配置を登録して実際の読取りを実行するので、これまで知られたいかなる回転記録媒体のトラック構成およびセクタ構成であって、対象とする回転記録媒体の構成に柔軟に対応して最適ファイル配置を提供することができる。
【0080】
図10は、本実施形態により作成されるアプリケーションを使用するゲーム装置1000の実施形態を示す。ゲーム装置1000は、ドライブ装置1010と、情報処理装置1050として実装されている。なお、情報処理装置1050と、ドライブ装置1010とは別体として構成する必要は無く、情報処理装置1050と一体とされた内蔵ドライブとして実装することができる。
【0081】
図10に示した実施形態では、ドライブ装置1010は、情報処理装置1050からの読取りコマンドを受領して、データの読取りアクセスを開始する。媒体ドライバ1012と、入出力I/O1016とを含んで構成されている。媒体ドライバ1012と入出力I/O1016とは、内部バス1020で接続されている。また、ドライブ装置1010には、RAMまたはキャッシュメモリ1014が接続されていて、DVD、CD−ROM、MOなどの回転記録媒体1018から読込んだデータをバッファリングまたはキャッシュする。ドライブ装置1010が取得したデータは、情報処理装置1050に送られて、情報処理装置1050による処理のために利用される。
【0082】
情報処理装置1050は、CPU1058と、RAM1060と、コマンド入出力レジスタ1052と、データ転送レジスタ1054と、NIC1056とを含んで構成されている。情報処理装置1050の各機能モジュールは、内部バス1062により相互接続されていて、データやコマンドの送受信を可能としている。また、情報処理装置1050は、アプリケーションを、実行ファイル及びデータファイルなどとともに、ネットワーク1062を介して取得することもできる。ネットワーク1062を介して取得したゲームアプリケーションは、例えはハードディスクや、DVD−ROM、DVD−RW、CD−R、CD−RWなどに格納され、プレーヤーの指示に応答して実行ファイル、データファイル、プライグインプログラム、または制御ファイルなどを読込んでゲームを開始する。
【0083】
情報処理装置1050のプレーヤーが、特定のゲームをプレイしたいと希望する場合、記録媒体1018に格納された実行ファイルなどのファイルセットは、シークタイムを最小化し、さらに、ゲームの進行に伴う論理的シーケンスを再現するファイル配置されている。このため、情報処理装置1050は、ゲームの進行に応じて記録媒体にアクセスする場合に最小のシークタイムで、必要とされるファイルを読込むことが可能とされ、プレーヤーがファイルの読取りの際に浪費する時間を短縮化することができる。
【0084】
以上説明したように、本実施形態のデータ処理装置は、論理シーケンスと物理シーケンスとをマッピングさせ、かつ総シークタイムを最小にするファイル配置を生成することができ、この処理に遺伝的アルゴリズムを使用することで、
(1)アプリケーションが含むファイルの詳細な分析を必要としない、
(2)確実な最小値を保証することはできないものの、評価目的に応じて良好なシークタイムを与える解を確実に提供することができるので、スケーラビリティに優れる、
(3)ローカルミニマムの値ではなく、大局的に見た場合での最小シークタイムを与える、
(4)ファイル最適配置を生成するために、ファイルの用意、回転記録媒体への焼きこみ、テストプレイなど、アプリケーション開発サイドで実際にオペレータが消費する時間を削減する、
ことが可能な、データ処理装置、データ処理方法、プログラムおよび記録媒体を提供することができる。
【0085】
本実施形態の上記機能は、アセンブラ、C、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、プラグインプログラムは、ハードディスク装置、CD−ROM、MO、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【0086】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【0087】
【図1】本実施形態のデータ処理装置110を含む情報処理システム100の実施形態を示した図。
【図2】本実施形態のデータ処理装置110のハードウェアブロック200を示した図。
【図3】本実施形態のデータ処理装置110の機能ブロック300を示した図。
【図4】本実施形態のデータ処理装置110のソフトウェアの階層構造400を示した図。
【図5】本実施形態のファイル配置最適化処理のフローチャート。
【図6】図5のステップS503で示した遺伝的アルゴリズムのフローチャート。
【図7】図6のステップS604の処理についての詳細なフローチャート。
【図8】本実施形態により回転記録媒体上でのファイル配置が最適化されるファイルと、ファイルを構成するゲノムの関係を示した図。
【図9】本実施形態による、データ単位を、ゲノムとした遺伝的アルゴリズムによるファイル最適化処理の作用900を示した図。
【図10】本実施形態により作成されるアプリケーションを使用するゲーム装置1000の実施形態を示した図。
【符号の説明】
【0088】
100…情報処理システム、110…データ処理装置、112…外付けドライブ、114…回転記録媒体、116…ディスプレイ装置、118…ゲーム装置、120…ネットワーク、122…ブロードバンドルータ、124…ディスプレイ装置、126…パーソナルコンピュータ、128…キーボード、130…マウス、132…ハードディスク、134…無線コントローラ

【特許請求の範囲】
【請求項1】
アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するアプリケーション実行部と、
前記アプリケーション実行部が前記論理シーケンスにしたがってアクセスした前記ファイルをランタイムに取得するログ取得モジュールと、
前記ログ取得モジュールが取得したアクセスログ情報を前記アプリケーションの実行後に取得するランタイムログ情報取得部と、
前記アクセスログ情報に登録されたファイルを回転記憶媒体から読取りする場合のシークタイムに応じてファイル配置を決定するファイル配置決定部と
を含む、データ処理装置。
【請求項2】
前記ログ取得モジュールは、前記アプリケーションプログラムにランタイムにリンクされる、ランタイムライブラリである、請求項1に記載のデータ処理装置。
【請求項3】
前記ランタイムログ情報取得部は、前記ログ取得モジュールが取得した前記アクセスログ情報のうち、前記ファイル配置を決定するために使用する、少なくともロードしたファイル名、データサイズ、読取りコマンドを受領してからファイル読込終了までの時間を含む情報を前記ファイル最適化部に送付する、請求項1または2に記載のデータ処理装置。
【請求項4】
前記ファイル配置決定部は、前記アクセスログ情報に登録された前記論理シーケンスに登録された前記ファイルごとに評価関数を使用してシークタイム推定値を計算し、前記論理シーケンスあたりの合計シークタイム推定値を計算する、請求項1〜3のいずれか1項の記載のデータ処理装置。
【請求項5】
前記ファイル配置決定部は、前記ファイルを構成する単一または複数のデータ単位をゲノムとし、前記ファイルを現世代セットとしてゲノム単位で交叉または突然変異させる世代更新を実行することによってファイル配置の異なる更新ファイル配置を生成する、請求項1〜4のいずれか1項に記載のデータ処理装置。
【請求項6】
前記ファイル配置決定部は、前記更新ファイル配置について前記合計シークタイム推定値の見積もり値を計算し、前記見積もり値が、前記現世代セットについての見積もり値よりも小さい場合に、前記更新ファイル配置を次世代セットとして次の世代更新処理に使用する、請求項5に記載のデータ処理装置。
【請求項7】
前記アプリケーションプログラムは、ゲームプログラムであり、前記データ処理装置は、ゲーム実行時に前記回転記録媒体からの前記ゲームプログラムの読取りアクセスについてのシークタイムを最適化し、前記回転記録媒体は、ハードディスク、コンパクトディスク、ディジタルバーサタイルディスク、光磁気ディスクである、請求項1〜6のいずれか1項に記載のデータ処理装置。
【請求項8】
前記ゲーム装置は、ネットワークを介して前記シークタイムの最適化されたゲームプログラムをダウンロードする、請求項7に記載のデータ処理装置。
【請求項9】
アプリケーションプログラムを構成するファイルのファイル配置を最適化する、データ処理装置が実行するデータ処理方法であって、前記データ処理方法は、前記データ処理装置が、
前記アプリケーションプログラムの論理シーケンスにしたがってファイルを読取り、前記ファイルを実行するステップと、
前記論理シーケンスにしたがってアクセスした前記ファイルをランタイムリンクさせたログ取得モジュールによって取得し、前記アプリケーションの実行後にアクセスログ情報を取得するステップと、
前記取得した前記アクセスログ情報のうち、前記ファイル配置を決定するために使用する、少なくともロードしたファイル名、データサイズ、読取りコマンドを受領してからファイル読込終了までの時間を含む情報を受領するステップと、
前記アクセスログ情報に登録されたファイルを回転記録媒体から読取りする場合のシークタイムに応じてファイル配置を決定するステップと
を実行する、データ処理方法。
【請求項10】
前記ファイル配置を決定するステップは、
前記アクセスログ情報に登録された前記論理シーケンスに登録された前記ファイルごとに評価関数を使用してシークタイム推定値を計算するステップと、
前記論理シーケンスあたりの合計シークタイム推定値を計算するステップと、
前記ファイルを構成する単一または複数のデータ単位をゲノムとし、前記ファイルを現世代セットとしてゲノム単位で交叉または突然変異させる世代更新を実行することによってファイル配置の異なる更新ファイル配置を生成するステップと、
前記更新ファイル配置について前記合計シークタイム推定値の見積もり値を計算するステップと、
前記見積もり値が、前記現世代セットについての見積もり値よりも小さい場合に、前記更新ファイル配置を次世代セットとして次の世代更新処理に使用するステップと
を含む、請求項9に記載のデータ処理方法。
【請求項11】
前記アプリケーションプログラムは、ゲームプログラムであり、前記データ処理装置は、ゲーム実行時に前記回転記録媒体からの前記ゲームプログラムの読取りアクセスについてのシークタイムを最適化する、請求項9または10に記載のデータ処理方法。
【請求項12】
請求項1〜8のいずれか1項に記載の機能部として前記データ処理装置を機能させる、コンピュータ実行可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−97674(P2010−97674A)
【公開日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願番号】特願2008−269871(P2008−269871)
【出願日】平成20年10月20日(2008.10.20)
【出願人】(304012596)株式会社CRI・ミドルウェア (8)
【Fターム(参考)】