(57)【要約】【課題】既存のプログラムに修正を加えることなく、当該プログラムに従って行われるデータ処理装置のデータ取得を高速化する。【解決手段】データ処理システム１は、アプリケーションプログラム１１１に従いデータ処理を行う処理手段１１、処理手段１１が処理に用いるデータのオリジナルの記憶場所である第１記憶手段１４、キャッシュメモリとして使用される第２記憶手段１５、処理手段１１から第１記憶手段１４に対し出力されるデータ要求を第２記憶手段１５にリダイレクトするリダイレクト手段１６を備えている。特定手段１２は処理手段１１が現在用いているデータとの間でアプリケーションプログラム１１１に応じた第１条件データ１２１が示す関係を満たすデータをプリフェッチ対象データとして特定し、取得手段１３は当該プリフェッチ対象データを第１記憶手段１４から取得して第２記憶手段１５に記憶させる。【選択図】図２
2014229044.tif 000002
【特許請求の範囲】
【請求項１】
データを取得する取得手段と、
前記取得手段により取得されたデータを用いた処理を行う処理手段と、
データを記憶する記憶手段と
を備え、
第１のプログラムに従い前記取得手段によりデータを取得し、
前記第１のプログラムに従い前記取得手段により取得されたデータを前記記憶手段により記憶し、
第２のプログラムに従い前記処理手段が一のデータを用いた処理を行う際に、前記記憶手段により当該一のデータが記憶されている場合には前記取得手段により前記記憶手段から当該一のデータを取得し、前記記憶手段に当該一のデータが記憶されていない場合には前記取得手段により前記記憶手段とは異なる場所から当該一のデータを取得する
コンピュータに、
前記第２のプログラムに従う前記処理手段による処理に用いられるデータを示すデータであるメタデータを取得する処理と、
前記取得する処理において取得したメタデータにより示されるデータとの間で前記第２のプログラムに応じて予め定められた関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定する処理と、
前記特定する処理において特定したデータを、前記第１のプログラムに従い取得する処理と
を実行させるプログラム。
【請求項２】
前記処理手段は、複数の前記第２のプログラムの各々に従い処理を行い、
前記コンピュータに、
前記特定する処理において、前記複数の前記第２のプログラムの各々に応じた前記予め定められた関係のうち、前記メタデータにより示されるデータを用いた処理を前記処理手段に指示した前記第２のプログラムに応じた前記予め定められた関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定させる
請求項１に記載のプログラム。
【請求項３】
前記処理手段は、前記第２のプログラムに従い、時間軸上に並べられたデータを用いた処理を行い、
前記コンピュータに、
前記特定する処理において、前記メタデータにより示されるデータとの間で前記時間軸上における予め定められた位置関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定させる
請求項１または２に記載のプログラム。
【請求項４】
前記コンピュータに、
前記第１のプログラムに従い前記取得手段により取得され前記記憶手段に記憶されているデータのうち、前記メタデータにより示されるデータとの間で前記第２のプログラムに応じて予め定められた関係を満たすデータの前記記憶手段からの解放を前記記憶手段に指示する処理を実行させる
請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記処理手段は、複数の前記第２のプログラムの各々に従い処理を行い、
前記コンピュータに、
前記指示する処理において、前記複数の前記第２のプログラムの各々に応じた前記予め定められた関係のうち、前記メタデータにより示されるデータを用いた処理を前記処理手段に指示した前記第２のプログラムに応じた前記予め定められた関係を満たすデータの解放を前記記憶手段に指示させる
請求項４に記載のプログラム。
【請求項６】
プログラムに従いデータを取得する取得手段と、
前記プログラムに従い前記取得手段により取得されたデータを用いた処理を行う処理手段と
を備えるコンピュータに、
前記処理手段による処理に用いられるデータとの間で前記プログラムに応じて予め定められた規則を満たすデータをプリフェッチデータとして取得する処理と、
前記プリフェッチデータを記憶する処理と、
前記取得手段が一のデータの取得要求を一の出力先に出力した場合、前記取得要求をインターセプトし、当該一のデータを前記プリフェッチデータとして記憶している場合には前記プリフェッチデータとして記憶している当該一のデータを前記取得要求に対する応答として前記取得手段に引き渡し、当該一のデータを前記プリフェッチデータとして記憶していない場合には前記取得要求を前記一の出力先に出力する処理と
を実行させるプログラム。
【請求項７】
請求項１乃至６のいずれか１項に記載のプログラムをコンピュータに読み取り可能に持続的に記録する記録媒体。
【請求項８】
データを取得する第１の取得手段と、
前記第１の取得手段により取得されたデータを記憶する記憶手段と、
プログラムに従いデータを用いた処理を行う処理手段と、
前記プログラムに従い前記処理手段が一のデータを用いた処理を行う際に、前記記憶手段により当該一のデータが記憶されている場合には前記記憶手段から当該一のデータを取得し、前記記憶手段に当該一のデータが記憶されていない場合には前記記憶手段とは異なる場所から当該一のデータを取得し、取得した当該一のデータを前記処理手段に引き渡す第２の取得手段と
を備えるデータ処理装置との間でデータの受け渡しを行う装置であって、
前記プログラムに従い前記処理手段により処理に用いられるデータを示すデータであるメタデータを取得し、当該メタデータにより示されるデータとの間で前記プログラムに応じて予め定められた関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定し、当該特定したデータの取得を前記第１の取得手段に指示する特定手段
を備える装置。
【請求項９】
プログラムに従いデータを用いた処理を行う処理手段と、
前記処理手段により処理に用いられるデータを取得し前記処理手段に引き渡す第１の取得手段と
を備えるデータ処理装置との間でデータの受け渡しを行う装置であって、
前記処理手段による処理に用いられるデータとの間で前記プログラムに応じて予め定められた関係を満たすデータを取得する第２の取得手段と、
前記第２の取得手段により取得されたデータを記憶する記憶手段と、
前記第１の取得手段が一のデータの取得要求を一の出力先に出力した場合、前記取得要求をインターセプトし、当該一のデータが前記記憶手段に記憶されている場合には前記記憶手段に記憶されている当該一のデータを前記取得要求に対する応答として前記第１の取得手段に引き渡し、当該一のデータが前記記憶手段に記憶されていない場合には前記取得要求を前記一の出力先に出力するリダイレクト手段と
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置のデータ取得を高速化するための技術に関する。
【背景技術】
【０００２】
コンピュータ等のデータ処理装置は、プログラムに従い処理を行う際に、当該処理に用いるデータを自機内の記憶手段もしくは外部の記憶装置から取得する必要がある。このデータの取得に要する時間を短縮することができれば、処理の完了時刻を早めることができる。以下、データの取得に要する時間を短縮することを「データ取得の高速化」という。データ取得を高速化するための技術の１つとして、プリフェッチと呼ばれる技術がある。
【０００３】
プリフェッチとは、一般的に、将来に利用が予測されるデータを、読み出しに長い時間を要する第１の記憶場所（例えば、外部記憶装置）から読み出しに短い時間しか要さない第２の記憶場所（例えば、内部のキャッシュメモリ）へ予めコピーしておき、データ処理装置において処理に用いるデータを取得する必要が発生した際、第２の記憶場所に当該データが記憶されている場合は第２の記憶場所から当該データを読み出すことにより、データ取得を高速化する技術である。
【０００４】
プリフェッチを用いた技術を開示している文献として、例えば特許文献１がある。特許文献１には、データの処理を指示するアプリケーションプログラムの性質（例えば、処理の分岐の多少等）に応じて、プリフェッチするデータのサイズや数を調整することにより、キャッシュメモリの使用効率を高める仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−１２９４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
データ処理装置における処理においてソフトウェアプリフェッチ（以下、単に「プリフェッチ」という）によりデータ取得を高速化するためには、データの処理を指示するプログラムがプリフェッチを行うように記述されているか、もしくはプリフェッチを行う外部のプログラム（例えば、ＯＳに含まれるプログラムモジュール）を利用するように記述されている必要がある。以下、プリフェッチによりデータ取得を高速化するように記述されているプログラムを「プリフェッチ機能を備えたプログラム」という。
【０００７】
従って、ユーザがプリフェッチ機能を備えないプログラムに従い動作するデータ処理装置の処理の速度に不満を感じた場合、プリフェッチ機能を備える同種のプログラム（例えば、新しいバージョンの同じタイトルのプログラム）を新たに入手し、既存のプログラムを新たなプログラムで置き換える必要がある。しかしながら、プリフェッチ機能を備える同種のプログラムが提供されない場合には、ユーザは既存のプログラムを利用し続ける他なく、データ処理装置の処理を高速化する術がない。
【０００８】
また、仮にプリフェッチ機能を備える同種のプログラムが提供される場合であっても、新たなプログラムの購入に費用が発生したり、新たなプログラムの使用に伴う不都合（ユーザインタフェースの変更、データの非互換性、データ処理装置のスペック不足によるパフォーマンス低下、バグによるフリーズ発生の頻度上昇等）が生じたりする場合がある。従って、新しいプログラムの利用は必ずしもユーザにとって望ましい選択肢であるとは限らない。
【０００９】
本発明は上述の背景に鑑みてなされたものであり、既存のプログラムに修正を加えることなく、当該プログラムに従って行われるデータ処理装置のデータ取得を高速化する手段を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、本発明は、一態様として、データを取得する取得手段と、前記取得手段により取得されたデータを用いた処理を行う処理手段と、データを記憶する記憶手段とを備え、第１のプログラムに従い前記取得手段によりデータを取得し、前記第１のプログラムに従い前記取得手段により取得されたデータを前記記憶手段により記憶し、第２のプログラムに従い前記処理手段が一のデータを用いた処理を行う際に、前記記憶手段により当該一のデータが記憶されている場合には前記取得手段により前記記憶手段から当該一のデータを取得し、前記記憶手段に当該一のデータが記憶されていない場合には前記取得手段により前記記憶手段とは異なる場所から当該一のデータを取得するコンピュータに、前記第２のプログラムに従う前記処理手段による処理に用いられるデータを示すデータであるメタデータを取得する処理と、前記取得する処理において取得したメタデータにより示されるデータとの間で前記第２のプログラムに応じた予め定められた関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定する処理と、前記特定する処理において特定したデータを、前記第１のプログラムに従い取得する処理とを実行させるプログラムを提供する。
【００１１】
上記プログラムにおいて、前記処理手段は、複数の前記第２のプログラムの各々に従い処理を行い、前記コンピュータに、前記特定する処理において、前記複数の前記第２のプログラムの各々に応じた前記予め定められた関係のうち、前記メタデータにより示されるデータを用いた処理を前記処理手段に指示した前記第２のプログラムに応じた前記予め定められた関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定させるという構成が採用されてもよい。
【００１２】
また、上記プログラムにおいて、前記処理手段は、前記第２のプログラムに従い、時間軸上に並べられたデータを用いた処理を行い、前記コンピュータに、前記特定する処理において、前記メタデータにより示されるデータとの間で前記時間軸上における予め定められた位置関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定させるという構成が採用されてもよい。
【００１３】
また、上記プログラムにおいて、前記コンピュータに、前記第１のプログラムに従い前記取得手段により取得され前記記憶手段に記憶されているデータのうち、前記メタデータにより示されるデータとの間で前記第２のプログラムに応じた予め定められた関係を満たすデータの前記記憶手段からの解放を前記記憶手段に指示する処理を実行させるという構成が採用されてもよい。
【００１４】
また、上記プログラムにおいて、前記処理手段は、複数の前記第２のプログラムの各々に従い処理を行い、前記コンピュータに、前記指示する処理において、前記複数の前記第２のプログラムの各々に応じた前記予め定められた関係のうち、前記メタデータにより示されるデータを用いた処理を前記処理手段に指示した前記第２のプログラムに応じた前記予め定められた関係を満たすデータの解放を前記記憶手段に指示させるという構成が採用されてもよい。
【００１５】
また、本発明は、他の一態様として、プログラムに従いデータを取得する取得手段と、前記プログラムに従い前記取得手段により取得されたデータを用いた処理を行う処理手段とを備えるコンピュータに、前記処理手段による処理に用いられるデータとの間で前記プログラムに応じた予め定められた規則を満たすデータをプリフェッチデータとして取得する処理と、前記プリフェッチデータを記憶する処理と、前記取得手段が一のデータの取得要求を一の出力先に出力した場合、前記取得要求をインターセプトし、当該一のデータを前記プリフェッチデータとして記憶している場合には前記プリフェッチデータとして記憶している当該一のデータを前記取得要求に対する応答として前記取得手段に引き渡し、当該一のデータを前記プリフェッチデータとして記憶していない場合には前記取得要求を前記一の出力先に出力する処理とを実行させるプログラムを提供する。
【００１６】
また、本発明は、他の一態様として、上記プログラムをコンピュータに読み取り可能に持続的に記録する記録媒体を提供する。
【００１７】
また、本発明は、データを取得する第１の取得手段と、前記第１の取得手段により取得されたデータを記憶する記憶手段と、プログラムに従いデータを用いた処理を行う処理手段と、前記プログラムに従い前記処理手段が一のデータを用いた処理を行う際に、前記記憶手段により当該一のデータが記憶されている場合には前記記憶手段から当該一のデータを取得し、前記記憶手段に当該一のデータが記憶されていない場合には前記記憶手段とは異なる場所から当該一のデータを取得し、取得した当該一のデータを前記処理手段に引き渡す第２の取得手段とを備えるデータ処理装置との間でデータの受け渡しを行う装置であって、前記プログラムに従い前記処理手段により処理に用いられるデータを示すデータであるメタデータを取得し、当該メタデータにより示されるデータとの間で前記プログラムに応じた予め定められた関係を満たすデータを、前記処理手段により将来の処理に用いられる確率が高いデータとして特定し、当該特定したデータの取得を前記第１の取得手段に指示する特定手段を備える装置を提供する。
【００１８】
また、本発明は、他の一態様として、プログラムに従いデータを用いた処理を行う処理手段と、前記処理手段により処理に用いられるデータを取得し前記処理手段に引き渡す第１の取得手段とを備えるデータ処理装置との間でデータの受け渡しを行う装置であって、前記処理手段による処理に用いられるデータとの間で前記プログラムに応じた予め定められた関係を満たすデータを取得する第２の取得手段と、前記第２の取得手段により取得されたデータを記憶する記憶手段と、前記第１の取得手段が一のデータの取得要求を一の出力先に出力した場合、前記取得要求をインターセプトし、当該一のデータが前記記憶手段に記憶されている場合には前記記憶手段に記憶されている当該一のデータを前記取得要求に対する応答として前記第１の取得手段に引き渡し、当該一のデータが前記記憶手段に記憶されていない場合には前記取得要求を前記一の出力先に出力するリダイレクト手段とを備える装置を提供する。
【発明の効果】
【００１９】
本発明によれば、プリフェッチ機能を備えないプログラムに従って行われる処理に用いられるデータに基づき、当該データと予め定められた関係を満たすデータが将来当該プログラムに従って行われる処理に用いられる確率の高いデータとして特定され、当該特定されたデータがプリフェッチされる。従って、プリフェッチ機能を備えないプログラムに修正を加えることなく、当該プログラムに従った処理におけるデータ取得が高速化される。
【図面の簡単な説明】
【００２０】
【図１】一実施形態にかかるデータ処理システムのハードウェア構成を示した図である。
【図２】一実施形態にかかるデータ処理システムの機能構成を示した図である。
【図３】一実施形態にかかるデータ処理システムにおいてプリフェッチ対象データおよび解放対象データの特定に用いられる条件の例を説明するための図である。
【図４】一実施形態にかかるデータ処理システムにおいて用いられるキャッシュテーブルのデータ構造を示した図である。
【発明を実施するための形態】
【００２１】
［実施形態］
以下、図を参照しながら本発明の一実施形態にかかるデータ処理システム１を説明する。データ処理システム１は、プリフェッチ機能を備えないアプリケーションプログラムに従い行われる処理に用いられるデータを、プラグインプログラム等に従いプリフェッチすることにより高速に取得する仕組みを備えたシステムである。
【００２２】
図１はデータ処理システム１のハードウェア構成を模式的に示した図である。データ処理システム１は、汎用コンピュータであるコンピュータ１０と、ユーザの操作に応じた信号をコンピュータ１０に出力することによりユーザによるコンピュータ１０に対するデータ入力を可能とするキーボードやマウス等の操作装置２１、コンピュータ１０から出力される画像データに従い画像を表示する液晶ディスプレイ等の表示装置２２、コンピュータ１０にネットワークを介さずに接続されたＨＤＤや光学ドライブ等の記憶装置２３Ａ、コンピュータ１０に対しネットワークを介してデータの送信を行うデータ配信サーバ装置等の記憶装置２３Ｂ（以下、記憶装置２３Ａと記憶装置２３Ｂを区別しない場合、それらを「記憶装置２３」という）、コンピュータ１０と記憶装置２３Ｂとの間のデータ通信経路を提供するネットワーク２４を備えている。なお、記憶装置２３Ａおよび記憶装置２３Ｂの数は任意である。
【００２３】
コンピュータ１０は通信手段を備えた一般的なコンピュータであり、プロセッサ１０１、メモリ１０２、入出力Ｉ／Ｆ（Interface）１０３、通信Ｉ／Ｆ１０４を備えている。これらはバス１０９を介して互いにデータの受け渡しが可能である。
【００２４】
プロセッサ１０１は例えばＣＰＵであり、メモリ１０２に記憶されている各種プログラムに従い、各種データ処理を行うとともにコンピュータ１０の他の構成部を制御する。メモリ１０２は、例えば、不揮発性メモリ１０２１、ＳＳＤ１０２２、ＨＤＤ１０２３を備えるが、これらの構成は任意に変更可能である。メモリ１０２は、プロセッサ１０１により実行される各種プログラムやプロセッサ１０１による処理において用いられる各種データを記憶するとともに、プロセッサ１０１による処理において一時的に生成されるデータを記憶するワークエリアとしても用いられる。
【００２５】
入出力Ｉ／Ｆ１０３は、例えば、ＵＳＢ端子、ＨＤＭＩ（登録商標）端子等の端子とケーブルを介した有線接続や、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信規格に従った無線接続により、外部装置との間で各種データの入出力を行う。通信Ｉ／Ｆ１０４は、例えば、IEEE802.3等の通信規格に従った有線接続や、IEEE802.11等の通信規格に従った無線接続により、ネットワーク２４を介して外部装置との間で各種データの送受信を行う。
【００２６】
図２は、データ処理システム１の機能構成を模式的に示した図である。すなわち、図１に示されるコンピュータ１０のプロセッサ１０１がメモリ１０２に記憶されている各種プログラムに従った処理を行うことにより、図１に示されるハードウェア構成を備えるデータ処理システム１は、図２に示される構成部を備えるシステムとして機能することになる。
【００２７】
以下に図２を参照しつつ、データ処理システム１の機能構成と各機能構成部の動作を説明する。データ処理システム１は、アプリケーションプログラムに従いデータ処理を行う処理手段１１、第１のプラグインプログラムに従いデータ処理を行う特定手段１２、サービスプログラムに従いデータ処理を行う取得手段１３、処理手段１１が処理に用いるデータを記憶する第１記憶手段１４および第２記憶手段１５、ドライバプログラムに従いデータ処理を行うリダイレクト手段１６、第２のプラグインプログラムに従いデータ処理を行う指示手段１７を備えている。
【００２８】
処理手段１１は、ｎ個（ただし、ｎは任意の自然数）のアプリケーションプログラム（アプリケーションプログラム１１１−１〜１１１−ｎ）の各々に従い、各種データ処理を行う。以下、アプリケーションプログラム１１１−１〜１１１−ｎを区別しない場合、これらを「アプリケーションプログラム１１１」という。
【００２９】
アプリケーションプログラム１１１の種別は動画編集アプリケーション、音楽編集アプリケーション、ワードプロセッサアプリケーション等、その種別はいかなるものであってもよい。ただし、以下の説明の便宜のため、アプリケーションプログラム１１１−１は動画編集アプリケーションであるものとする。
【００３０】
特定手段１２は、処理手段１１に対し、例えば予め定められた時間の経過毎に、処理手段１１が現在使用しているデータを示すデータであるメタデータを要求するメタデータ要求を出力し、当該メタデータ要求に対する応答として処理手段１１からメタデータを取得する。
【００３１】
メタデータは、例えば、処理手段１１により使用されているデータを識別するとともに当該データの種別等の属性を示すファイル名、当該データの記憶場所（オリジナルの記憶場所）を示すＵＲＩ、当該データを使用する処理を指示しているアプリケーションプログラム１１１を識別するアプリケーション名を含む。
【００３２】
なお、メタデータに含まれるＵＲＩにより識別される記憶場所（オリジナルの記憶場所）は、メモリ１０２を構成する不揮発性メモリ１０２１、ＳＳＤ１０２２およびＨＤＤ１０２３、記憶装置２３Ａ、もしくは記憶装置２３Ｂのいずれの場所であってもよいが、一般的には、アクセス速度が低速だが記憶容量が大きいＨＤＤ１０２３、記憶装置２３Ａ、もしくは記憶装置２３Ｂがオリジナルの記憶場所として用いられる。
【００３３】
特定手段１２は、アプリケーションプログラム１１１−１〜１１１−ｎの各々に応じて予め記憶されている第１条件データ１２１−１〜１２１−ｎに従い、処理手段１１から取得したメタデータに基づき、処理手段１１が近い将来に処理に用いる確率が高いデータを特定する。以下、第１条件データ１２１−１〜１２１−ｎを区別しない場合、これらを「第１条件データ１２１」という。また、特定手段１２により特定される、処理手段１１が近い将来に処理に用いる確率が高いデータを以下、「プリフェッチ対象データ」という。また、メタデータにより示される、処理手段１１が現在用いているデータを以下、「使用中データ」という。
【００３４】
第１条件データ１２１は使用中データとプリフェッチ対象データとの間の関係を示すデータである。例えば、アプリケーションプログラム１１１−１（動画編集アプリケーション）に応じた第１条件データ１２１−１には、「アプリケーションプログラム１１１−１に従う処理において現在用いられている画像データを基準とし、動画の再生における時間軸上で正方向に隣接するｍ個（ただし、ｍは任意の自然数）の画像データ（現在用いられている画像データに続いて再生されるｍ個の一連の画像データ）を近い将来に処理に用いられる確率が高いデータとして特定する」という条件を示すデータが含まれている。
【００３５】
図３は、上記に例示した条件（および後述する解放対象データを特定するために用いられる条件の例）を説明するための図である。図３に示される「１０２１．ｂｍｐ」、「１０２２．ｂｍｐ」、・・・は１つの動画を構成する静止画の各々を表す画像データのファイル名である。これらのファイル名の拡張子「．ｂｍｐ」は当該データがビットマップ形式の静止画を表すデータである、という属性を示し、「１０２１」等の数値は、動画の再生における時間軸上の順序を示している。
【００３６】
図３の例では、処理手段１１は現在、アプリケーションプログラム１１１−１に従い、１つの動画データを構成する画像データ「１０２３．ｂｍｐ」を用いた処理を行っている。また、当該動画データは、「１００１．ｂｍｐ」〜「１５００．ｂｍｐ」の計５００個の画像データにより構成され、これらの画像データはＵＲＩ「http://xyz.com/footage/video/3256」で特定される記憶場所から取得可能である。
【００３７】
図３の例の場合、特定手段１２はまず、処理手段１１から取得したメタデータにより、処理手段１１がアプリケーションプログラム１１１−１に従う処理において現在用いているデータ（アプリケーションプログラム１１１−１に関する使用中データ）が「１０２３．ｂｍｐ」であることを特定する。続いて、当該特定した使用中データとの間で上述した条件が示す関係を満たすデータとして、「１０２４．ｂｍｐ」、「１０２５．ｂｍｐ」、・・・といった計ｍ個の一連のデータを特定する。このように特定されるデータが、処理手段１１がアプリケーションプログラム１１１−１に従う処理において近い将来に用いられる確率が高いデータ（アプリケーションプログラム１１１−１に関するプリフェッチ対象データ）である。
【００３８】
特定手段１２はプリフェッチ対象データを特定すると、特定したプリフェッチ対象データの取得を指示する取得指示を取得手段１３に出力する。当該取得指示には、例えば、プリフェッチ対象データを識別するファイル名、プリフェッチ対象データの記憶場所を識別するＵＲＩ、対応するアプリケーションプログラム１１１を識別するアプリケーション名が含まれる。
【００３９】
取得手段１３は、特定手段１２から取得指示を受け取ると、当該取得指示に含まれるＵＲＩに従い、第１記憶手段１４に対しデータ要求を出力（または送信）する。当該データ要求には、取得指示に含まれるＵＲＩとファイル名が含まれる。なお、当該要求データに含まれるＵＲＩは、必要に応じて然るべきタイミングで具体的なデータの記憶場所を示すアドレスに変換され、当該変換により得られたアドレスに従い、第１記憶手段１４へと引き渡される。
【００４０】
第１記憶手段１４は取得手段１３からデータ要求を受け取ると、当該データ要求に従い要求されたデータを読み出して取得手段１３に出力する。取得手段１３はデータ要求に対する応答として第１記憶手段１４からデータを取得すると、第２記憶手段１５に対し当該データの記憶指示を出力する。当該記憶指示には、取得手段１３が第１記憶手段１４から取得したデータ、当該データのメタデータ（ファイル名、ＵＲＩ、対応するアプリケーション名等）が含まれる。
【００４１】
第２記憶手段１５は、第１記憶手段１４よりも高速にデータの読み書きを行うことができる記憶手段である。第２記憶手段１５は、メモリ１０２を構成する不揮発性メモリ１０２１、ＳＳＤ１０２２およびＨＤＤ１０２３、記憶装置２３Ａ、もしくは記憶装置２３Ｂのいずれを用いて実現されてもよいが、一般的には、記憶容量は小さいがアクセス速度が高速な不揮発性メモリ１０２１、もしくはＳＳＤ１０２２が第２記憶手段１５の実現に用いられる。
【００４２】
第２記憶手段１５は、特定手段１２から記憶指示を受け取ると、当該記憶指示に従い指示されたデータをキャッシュデータとして記憶する。第２記憶手段１５はアプリケーションプログラム１１１−１〜１１１−ｎの各々に応じたキャッシュテーブル１５１−１〜１５１−ｎを記憶している。以下、キャッシュテーブル１５１−１〜１５１−ｎを区別しない場合、これらを「キャッシュテーブル１５１」という。第２記憶手段１５は、新たにキャッシュデータを記憶すると、当該キャッシュデータに応じたアプリケーションプログラム１１１に対応するキャッシュテーブル１５１に当該キャッシュデータに関するデータを登録する。
【００４３】
図４は、キャッシュテーブル１５１のデータ構造を模式的に示した図である。キャッシュテーブル１５１は第２記憶手段１５にキャッシュデータとして記憶されているデータの各々に応じたデータレコードの集まりであり、各データレコードにはデータフィールド「ＵＲＩ」、「ファイル名」、「アドレス」が設けられている。データフィールド「ＵＲＩ」には、記憶指示に含まれるＵＲＩ（データのオリジナルの記憶場所を示すＵＲＩ）が格納される。データフィールド「ファイル名」には、記憶指示に含まれるファイル名が格納される。データフィールド「アドレス」には、第２記憶手段１５が備える記憶領域におけるデータの記憶場所を識別するアドレス（例えば、データの先頭アドレス）が格納される。
【００４４】
処理手段１１は、アプリケーションプログラム１１１に従い、まだ取得していないデータを用いる処理を行う際に、第１記憶手段１４に対し、当該データを要求するデータ要求を出力（または送信）する。当該データ要求には、予めアプリケーションプログラム１１１に従う処理によって処理手段１１が特定している当該データのオリジナルの記憶場所を示すＵＲＩと、当該データのファイル名と、当該データを用いる処理を指示しているアプリケーションプログラム１１１のアプリケーション名が含まれる。
【００４５】
リダイレクト手段１６は、処理手段１１から第１記憶手段１４に対し出力されるデータ要求をインターセプトする。すなわち、第１記憶手段１４に宛てて出力されたデータ要求はリダイレクト手段１６により横取りされ、第１記憶手段１４には到達しない。リダイレクト手段１６は、インターセプトしたデータ要求を第２記憶手段１５に出力する。第２記憶手段１５はリダイレクト手段１６から受け取ったデータ要求に含まれるアプリケーション名に応じたキャッシュテーブル１５１の中から、当該データ要求に含まれるＵＲＩおよびファイル名を格納しているデータレコードを検索する。
【００４６】
第２記憶手段１５は、データレコードの検索に成功すると、検索したデータレコードのデータフィールド「アドレス」に示されるアドレスからデータを読み出し、リダイレクト手段１６に出力する。一方、第２記憶手段１５は、データレコードの検索に失敗すると、要求されたデータが第２記憶手段１５にキャッシュデータとして記憶されていないことを示すエラー通知をリダイレクト手段１６に出力する。
【００４７】
リダイレクト手段１６は、第２記憶手段１５に出力したデータ要求に対する応答として、第２記憶手段１５からデータを受け取った場合、先にインターセプトしたデータ要求（処理手段１１から第１記憶手段１４に対し出力されたもの）に対する応答として、第２記憶手段１５から取得したデータを処理手段１１に出力する。その際、リダイレクト手段１６は必要に応じて、当該データの出力元をリダイレクト手段１６ではなく、データ要求の本来の出力先である第１記憶手段１４であると擬装する。従って、処理手段１１はリダイレクト手段１６から出力されるデータを、第１記憶手段１４から出力（または送信）されたデータとして取得する。
【００４８】
一方、リダイレクト手段１６は、第２記憶手段１５に出力したデータ要求に対する応答として、第２記憶手段１５からエラー通知を受け取った場合、先にインターセプトしたデータ要求（処理手段１１から第１記憶手段１４に対し出力されたもの）を第１記憶手段１４に出力（または送信）する。その際、リダイレクト手段１６は必要に応じて、当該データ要求の出力元をリダイレクト手段１６ではなく、データ要求の本来の出力元である処理手段１１であると擬装する。従って、第１記憶手段１４はリダイレクト手段１６から出力されるデータを、処理手段１１から出力（または送信）されたデータ要求として取得する。
【００４９】
第１記憶手段１４は、リダイレクト手段１６から出力（または送信）されたデータ要求を受け取ると、当該データ要求に応じてデータを読み出し、当該データをデータ要求に対する応答として処理手段１１に出力（または送信）する。処理手段１１は第１記憶手段１４から出力（または送信）されるデータを取得する。
【００５０】
処理手段１１は、上記のようにして、第１記憶手段１４に対し出力（または送信）したデータ要求に対する応答として、第１記憶手段１４に擬装されたリダイレクト手段１６、もしくは第１記憶手段１４からデータを取得すると、当該データを用いてアプリケーションプログラム１１１に従う処理を実行する。
【００５１】
指示手段１７は、第２記憶手段１５が取得手段１３から受け取る記憶指示に従い新たにデータをキャッシュデータとして記憶する際に記憶容量が不足しないように、第２記憶手段１５に記憶されているデータのうち、処理手段１１により近い将来に用いられる確率が低いデータの解放を第２記憶手段１５に指示する。すなわち、指示手段１７は、第２記憶手段１５の記憶領域のうち、近い将来に用いられる確率が低いデータの記憶に用いられている記憶領域を他のデータの記憶に用いてもよい記憶領域として指定する。
【００５２】
そのために、指示手段１７は、例えば予め定められた時間の経過毎に、特定手段１２と同様に、処理手段１１に対しメタデータ要求を出力し、その応答として処理手段１１からメタデータ（現在用いているデータを示す）を取得する。また、指示手段１７は、例えば予め定められた時間の経過毎に、第２記憶手段１５に記憶されているキャッシュテーブル１５１を参照し、アプリケーションプログラム１１１−１〜１１１−ｎの各々に応じて予め記憶されている第２条件データ１７１−１〜１７１−ｎに従い、第２記憶手段１５に記憶されているデータのうち処理手段１１が近い将来に処理に用いる確率が低いデータを特定する。以下、第２条件データ１７１−１〜１７１−ｎを区別しない場合、これらを「第２条件データ１７１」という。また、指示手段１７により特定される、処理手段１１が近い将来に処理に用いる確率が低いデータを以下、「解放対象データ」という。
【００５３】
第２条件データ１７１は使用中データと解放対象データとの間の関係を示すデータである。例えば、アプリケーションプログラム１１１−１（動画編集アプリケーション）に応じた第２条件データ１７１−１には、「アプリケーションプログラム１１１−１に従う処理において現在用いられている画像データを基準とし、動画の再生における時間軸上で負方向に隣接するｐ個（ただし、ｐは任意の自然数）の画像データ（現在用いられている画像データに先行して再生されるｐ個の一連の画像データ）を近い将来に処理に用いられる確率が低いデータとして特定する」という条件を示すデータが含まれている。
【００５４】
図３の例の場合、指示手段１７はまず、処理手段１１から取得したメタデータにより、アプリケーションプログラム１１１−１に関する使用中データが「１０２３．ｂｍｐ」であることを特定する。続いて、指示手段１７は、キャッシュテーブル１５１−１のデータフィールド「ＵＲＩ」が「http://xyz.com/footage/video/3256」であり、データフィールド「ファイル名」が、当該特定した使用中データとの間で上述した条件が示す関係を満たすファイル名を示すデータレコードを抽出する。その結果、例えば、・・・、「１０２１．ｂｍｐ」、「１０２２．ｂｍｐ」といった計ｐ個の一連のデータに関するデータレコードが抽出される。このように抽出されるデータレコードに応じたデータが、アプリケーションプログラム１１１−１に関する解放対象データである。
【００５５】
指示手段１７は解放対象データを特定すると、特定した解放対象データの解放を指示する解放指示を第２記憶手段１５に出力する。当該解放指示には、先にキャッシュテーブル１５１から抽出したデータレコードの内容が含まれる。
【００５６】
第２記憶手段１５は、指示手段１７から解放指示を受け取ると、当該解放指示に含まれるデータレコードをキャッシュテーブル１５１から削除する。これにより、第２記憶手段１５は取得手段１３から取得する記憶指示に従い新たなデータを記憶する際、キャッシュテーブル１５１を参照し、キャッシュテーブル１５１に登録されているいずれのキャッシュデータにも使用されていない記憶領域に新たなデータを記憶する。
【００５７】
以上がデータ処理システム１の構成および動作の説明である。上述したデータ処理システム１によれば、アプリケーションプログラム１１１に従い処理手段１１が近い将来に処理に用いる確率が高いデータが予め第２記憶手段１５にプリフェッチされ、当該データが用いられる際に、第１記憶手段１４からではなくより高速なデータの読み出しが可能な第２記憶手段１５から処理手段１１に対するデータの引き渡しが行われる。その結果、プリフェッチが行われない場合と比較し、高い確率でデータ取得が高速化される。
【００５８】
ここで特筆すべき点は、データ取得の高速化がアプリケーションプログラム１１１の修正なく実現される点である。すなわち、データ処理システム１においては、プリフェッチ対象データおよび解放対象データの特定が処理手段１１により行われるのではなく、処理手段１１とは独立して動作する特定手段１２または指示手段１７により行われる。従って、アプリケーションプログラム１１１に従い処理を行う処理手段１１は、メタデータ要求に応じてメタデータを特定手段１２または指示手段１７に対し出力することさえできれば、何らその動作に変更を要さない。
【００５９】
また、プリフェッチによるデータ取得の高速化の効果は、どのような条件でプリフェッチ対象データおよび解放対象データを特定するか、という点に大きく左右される。そして、一般的にアプリケーションプログラム１１１が異なれば、高い効果を得るために採用されるべき条件も異なる。データ処理システム１においては、複数のアプリケーションプログラム１１１の各々に応じた第１条件データ１２１に従い、使用中データとの間で予め定められた関係を満たすデータがプリフェッチ対象データとして、また複数のアプリケーションプログラム１１１の各々に応じた第２条件データ１７１に従い、使用中データとの間で予め定められた関係を満たすデータが解放対象データとして特定される。そのため、第１条件データ１２１および第２条件データ１７１をアプリケーションプログラム１１１毎に適切に準備するだけで、様々なアプリケーションプログラム１１１の各々に関するプリフェッチの効果を高めることができる。
【００６０】
［変形例］
上述した実施形態は本発明の技術的思想の範囲内において様々に変形可能である。以下にそれらの変形の例を示す。なお、これらの変形例は適宜組み合わせられてもよい。
【００６１】
上述した実施形態において、特定手段１２、取得手段１３、リダイレクト手段１６および指示手段１７は個別の構成部であるものとして説明したが、これらのうち２以上が１つの構成部として構成されてもよい。例えば、特定手段１２と指示手段１７が１つの構成部として構成されたり、特定手段１２と取得手段１３が１つの構成部として構成されたりしてもよい。また、特定手段１２、取得手段１３、リダイレクト手段１６および指示手段１７のうちいずれかが互いに連携動作する２つの構成部により構成されてもよい。例えば、指示手段１７が、解放対象データを特定する構成部と、当該構成部により特定された解放対象データの解放を第２記憶手段１５に指示する構成部とにより構成されてもよい。すなわち、特定手段１２、取得手段１３、リダイレクト手段１６および指示手段１７の区別は一例であって、これらの構成部が行う処理を他の構成の構成部で分担するように変形してもよい。従って、特定手段１２、取得手段１３、リダイレクト手段１６および指示手段１７を実現するために用いられるプログラムもこれらの構成部に応じた４つのプログラムにより構成されなくてもよく、その構成は様々に変形可能である。
【００６２】
また、上述した実施形態において、アプリケーションプログラム１１１の各々に応じた第１条件データはアプリケーションプログラム１１１毎に区別されない１つの特定手段１２により使用され、第２条件データはアプリケーションプログラム１１１毎に区別されない１つの指示手段１７により使用されるものとしたが、特定手段１２および指示手段１７の両方もしくは一方を、アプリケーションプログラム１１１毎に設ける構成が採用されてもよい。
【００６３】
また、上述した実施形態の説明において、キャッシュテーブル１５１は第２記憶手段１５が管理するものとしたが、リダイレクト手段１６等の他の構成部によりキャッシュテーブル１５１の管理が行われてもよい。また、キャッシュテーブル１５１を管理する独立した構成部を別途、備える構成としてもよい。
【００６４】
また、上述した実施形態の説明においては、時系列データを時間軸上の一方向に向かい順次用いることが多い動画編集アプリケーションをアプリケーションプログラム１１１の一例として説明に用いた。既述のとおり、動画編集アプリケーションはアプリケーションプログラム１１１の一例であって、他の様々な種別のアプリケーションプログラムがアプリケーションプログラム１１１として採用され得る。
【００６５】
従って、それらのアプリケーションプログラム１１１の各々に応じて用いられる第１条件データ１２１および第２条件データ１７１の内容もまた、使用中データとの間で時間軸上の所定の位置関係を満たすデータをプリフェッチ対象データもしくは解放対象データとして特定するものに限られない。
【００６６】
すなわち、あるアプリケーションプログラムにおいて、第１の属性のデータが用いられた後に、第２の属性のデータが用いられる確率が統計的に有意に高ければ、第１の属性のデータが使用中データである場合に、第２の属性のデータをプリフェッチ対象データとして特定する条件を示すデータが、当該アプリケーションプログラムに応じた第１条件データとして利用可能である。同様に、あるアプリケーションプログラムにおいて、第１の属性のデータが用いられた後に、第２の属性のデータが用いられる確率が統計的に有意に低ければ、第１の属性のデータが使用中データである場合に、第２記憶手段１５に記憶されている第２の属性のデータを解放対象データとして特定する条件を示すデータが、当該アプリケーションプログラムに応じた第２条件データとして利用可能である。
【００６７】
また、データ処理システム１が、過去にアプリケーションプログラム１１１に従い処理手段１１により行われた処理に関し、アプリケーションプログラム１１１の各々に従い第１の属性のデータが使用された後、例えば所定の時間が経過する前に第２の属性のデータが使用された確率に基づいて第１条件データおよび第２条件データの一方もしくは両方により示される条件を更新する条件更新手段を備えるようにしてもよい。
【００６８】
また、第１条件データ１２１に従いプリフェッチ対象データを特定する際、もしくは第２条件データ１７１に従い解放対象データを特定する際に、複数の候補となるデータの各々の優先度を所定の規則に従い算出し、それらの優先度が高い順にプリフェッチ対象データや解放対象データを特定するなど、これらのデータの特定方法は様々に変形可能である。例えば、重要性が高い条件には高いポイントを割り当て、重要性が低い条件には低いポイントを割り当て、満たされる条件に割り当てられたポイントの合計値を優先度の指標として用いることなどが例として考えられる。
【００６９】
また、上述した実施形態の説明においては、動画編集アプリケーションに関する第１条件データが、使用中データに時間軸上の正方向に隣接するデータをプリフェッチ対象データとして特定する条件を示す場合を例示したが、それに加え、使用中データが時間軸上の末端（例えば、動画データの最後のコマを示す静止画データ等）である場合、時間軸上の先頭に位置する、例えば所定数のデータをプリフェッチ対象データとして特定する条件を示すようにしてもよい。動画データの編集のような時系列データを扱うアプリケーションプログラムに従い処理が行われる場合、処理に用いるデータが時間軸上の末端に達した場合、再度、時間軸上の先頭から順にデータの処理が行われる場合が多いためである。
【００７０】
また、上述した実施形態においては、特定手段１２および指示手段１７は、使用中データを示すメタデータを、処理手段１１から取得する構成が採用されているが、特定手段１２もしくは指示手段１７がメタデータを他の方法で取得する構成が採用されてもよい。例えば、処理手段１１が第１記憶手段１４に対し出力するデータ要求により示されるデータは、処理手段１１が今から使用するデータである可能性が高い。従って、特定手段１２もしくは指示手段１７が、処理手段１１から出力されるデータ要求を直接、もしくはリダイレクト手段１６等を介して取得して、当該データ要求により要求されているデータを使用中データとみなして扱う（すなわち、データ要求に含まれるＵＲＩおよびファイル名をメタデータとして用いる）構成が採用されてもよい。
【００７１】
なお、本願において「使用中のデータ」もしくは「処理に用いられるデータ」というとき、そのデータは必ずしも厳密にその時点において使用されているデータである必要はなく、例えば、現時点から所定時間以内だけ前後の期間内に実際に使用されるデータや、使用される予定であるデータ（処理手段により使用可能な状態となっているデータ）等を含む。
【００７２】
また、上述した実施形態においては、特定手段１２、取得手段１３、リダイレクト手段１６および指示手段１７はプロセッサ１０１がプログラムに従った処理を行うことにより機能構成部として実現されるものとしたが、これらの構成部のうち１以上が、いわゆるハードウェアにより実現されてもよい。その場合、ハードウェアにより実現される構成部を備える装置と、少なくともアプリケーションプログラム１１１に従い処理を行う処理手段１１を備えるコンピュータとの間で各種データの受け渡しが行われる構成となる。
【００７３】
また、上述した実施形態において特定手段１２、取得手段１３、リダイレクト手段１６および指示手段１７の実現に用いられるプログラム（第１のプラグインプログラム、サービスプログラム、ドライバプログラム、第２のプラグインプログラム）の少なくとも一部は、ネットワークを介してコンピュータ１０にダウンロードされる形態で提供されるほか、それらのプログラムを持続的に記録するコンピュータ読み取り可能な記録媒体の形態で配布され、当該記録媒体からコンピュータ１０により読み取られる形態で提供されてもよい。
【符号の説明】
【００７４】
１…データ処理システム、１０…コンピュータ、１１…処理手段、１２…特定手段、１３…取得手段、１４…第１記憶手段、１５…第２記憶手段、１６…リダイレクト手段、１７…指示手段、２１…操作装置、２２…表示装置、２３…記憶装置、２４…ネットワーク、１０１…プロセッサ、１０２…メモリ、１０３…入出力Ｉ／Ｆ、１０４…通信Ｉ／Ｆ、１０９…バス、１１１…アプリケーションプログラム、１２１…第１条件データ、１５１…キャッシュテーブル、１７１…第２条件データ、１０２１…不揮発性メモリ、１０２２…ＳＳＤ、１０２３…ＨＤＤ
【図２】
2014229044.tif 000003
【図１】
2014229044.tif 000004
【図３】
2014229044.tif 000005
【図４】
2014229044.tif 000006