(57)【要約】【課題】ランダムアクセスとシーケンシャルアクセスが混在している場合でも、処理の高速化を図ることができるようにする。【解決手段】データの先読み処理要求を受けると、圧縮データ取得部１３を起動して、指定のブロックの圧縮データのデータ取得処理を指示し、データ読み出し要求を受けると、圧縮データ取得部１３を起動して、指定のブロックの圧縮データのデータ取得処理と上記ブロックに続く次のブロックの圧縮データのデータ取得処理を指示するとともに、データ伸長処理部１４を起動して、キャッシュメモリ３に書き込まれた指定のブロックの圧縮データに対する伸長処理を指示する。【選択図】図１
2010165151.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックの圧縮データが連結されている連結ファイルが記録されている記録媒体から、指定のブロックの圧縮データを読み込んで、上記圧縮データをキャッシュメモリに書き込むデータ取得処理を実施する圧縮データ取得手段と、上記キャッシュメモリの中に未だ伸長処理が施されていない圧縮データが格納されていれば、上記圧縮データに対する伸長処理を実施するデータ伸長手段と、データの先読み処理要求を受けると、上記圧縮データ取得手段を起動して、指定のブロックの圧縮データのデータ取得処理を指示し、データ読み出し要求を受けると、上記圧縮データ取得手段を起動して、指定のブロックの圧縮データのデータ取得処理と上記ブロックに続く次のブロックの圧縮データのデータ取得処理を指示するとともに、上記データ伸長手段を起動して、上記キャッシュメモリに書き込まれた指定のブロックの圧縮データに対する伸長処理を指示し、上記データ伸長手段による伸長処理と上記圧縮データ取得手段による次のブロックの圧縮データのデータ取得処理を並行して実施させる制御手段とを備えたデータアクセス装置。
【請求項２】
圧縮データ取得手段は、圧縮データをキャッシュメモリに書き込む際、上記キャッシュメモリの容量が不足している場合、上記キャッシュメモリに格納されているデータの中で、先に書き込まれたデータから順番に削除することを特徴とする請求項１記載のデータアクセス装置。
【請求項３】
圧縮データ取得手段は、圧縮データをキャッシュメモリに書き込む際、上記キャッシュメモリの容量が不足している場合、上記キャッシュメモリに格納されているデータの中で、最後にアクセスされた時刻が古いデータから順番に削除することを特徴とする請求項１記載のデータアクセス装置。
【請求項４】
複数のブロックの圧縮データが連結されている連結ファイルが記録されている記録媒体から、指定のブロックの圧縮データを読み込んで、上記圧縮データをキャッシュメモリに書き込むデータ取得処理を実施する圧縮データ取得処理手順と、上記キャッシュメモリの中に未だ伸長処理が施されていない圧縮データが格納されていれば、上記圧縮データに対する伸長処理を実施するデータ伸長処理手順と、データの先読み処理要求を受けると、上記圧縮データ取得処理手順を起動して、指定のブロックの圧縮データのデータ取得処理を指示し、データ読み出し要求を受けると、上記圧縮データ取得処理手順を起動して、指定のブロックの圧縮データのデータ取得処理と上記ブロックに続く次のブロックの圧縮データのデータ取得処理を指示するとともに、上記データ伸長処理手順を起動して、上記キャッシュメモリに書き込まれた指定のブロックの圧縮データに対する伸長処理を指示し、上記データ伸長処理手順による伸長処理と上記圧縮データ取得処理手順による次のブロックの圧縮データのデータ取得処理を並行して実施させる制御処理手順とをコンピュータに実行させるためのデータアクセスプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記録媒体から指定のブロックの圧縮データを読み込んで、その圧縮データをキャッシュメモリに格納し、その圧縮データに対する伸長処理を実施するデータアクセス装置及びデータアクセスプログラムに関するものである。
【背景技術】
【０００２】
以下の特許文献１には、シーケンシャルなデータをアクセスすることが可能なデータアクセス装置が開示されている。
このデータアクセス装置では、文書データを連続して読み出す場合に生じる処理の遅れを防止するため、文書データの読み出し指令を受けて、記録媒体から文書データを読み出した後、次の文書データの読み出し指令を受けると、次の文書データの読み出しと同時に、先に読み出した文書データの伸長処理を実施するようにしている。
これにより、文書データの読み出しと伸長処理が並列に実施されるため、処理の高速化が図られる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−５２２８６号公報（段落番号［０００７］）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のデータアクセス装置は以上のように構成されているので、シーケンシャルなデータを読み出す際の処理の高速化を図ることができるが、例えば、カーナビゲーションシステムのように、ユーザーの操作や自動車の移動に伴って発生するランダムなファイルアクセスには対応することができない。また、先読み処理が可能なデータと即時読み出しが必要なデータが混在する場合には対応することができないなどの課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、ランダムアクセスとシーケンシャルアクセスが混在している場合でも、処理の高速化を図ることができるデータアクセス装置及びデータアクセスプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るデータアクセス装置は、記録媒体から指定のブロックの圧縮データを読み込んで、その圧縮データをキャッシュメモリに書き込むデータ取得処理を実施する圧縮データ取得手段と、そのキャッシュメモリの中に未だ伸長処理が施されていない圧縮データが格納されていれば、その圧縮データに対する伸長処理を実施するデータ伸長手段とを設け、制御手段が、データの先読み処理要求を受けると、その圧縮データ取得手段を起動して、指定のブロックの圧縮データのデータ取得処理を指示し、データ読み出し要求を受けると、その圧縮データ取得手段を起動して、指定のブロックの圧縮データのデータ取得処理と上記ブロックに続く次のブロックの圧縮データのデータ取得処理を指示するとともに、そのデータ伸長手段を起動して、そのキャッシュメモリに書き込まれた指定のブロックの圧縮データに対する伸長処理を指示し、そのデータ伸長手段による伸長処理と圧縮データ取得手段による次のブロックの圧縮データのデータ取得処理を並行して実施させるようにしたものである。
【発明の効果】
【０００７】
この発明によれば、記録媒体から指定のブロックの圧縮データを読み込んで、その圧縮データをキャッシュメモリに書き込むデータ取得処理を実施する圧縮データ取得手段と、そのキャッシュメモリの中に未だ伸長処理が施されていない圧縮データが格納されていれば、その圧縮データに対する伸長処理を実施するデータ伸長手段とを設け、制御手段が、データの先読み処理要求を受けると、その圧縮データ取得手段を起動して、指定のブロックの圧縮データのデータ取得処理を指示し、データ読み出し要求を受けると、その圧縮データ取得手段を起動して、指定のブロックの圧縮データのデータ取得処理と上記ブロックに続く次のブロックの圧縮データのデータ取得処理を指示するとともに、そのデータ伸長手段を起動して、そのキャッシュメモリに書き込まれた指定のブロックの圧縮データに対する伸長処理を指示し、そのデータ伸長手段による伸長処理と圧縮データ取得手段による次のブロックの圧縮データのデータ取得処理を並行して実施させるように構成したので、ランダムアクセスとシーケンシャルアクセスが混在している場合でも、処理の高速化を図ることができる効果がある。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるデータアクセス装置を示す構成図である。
【図２】この発明の実施の形態１によるデータアクセス装置１のアクセス制御処理部１５の処理内容を示すフローチャートである。
【図３】この発明の実施の形態１によるデータアクセス装置１のデータ伸長制御処理部１６の処理内容を示すフローチャートである。
【図４】この発明の実施の形態１によるデータアクセス装置１のデータ取得処理部１３の処理内容を示すフローチャートである。
【図５】この発明の実施の形態１によるデータアクセス装置１のデータ伸長処理部１４の処理内容を示すフローチャートである。
【図６】データ圧縮形式を示す説明図である。
【図７】キャッシュメモリ３に格納されるデータの形式を示す説明図である。
【図８】データの先読み処理要求が連続して発生する場合の処理のタイミングを示す説明図である。
【図９】データの先読み処理要求が発生せずに、シーケンシャルなデータ読み出し要求が連続して発生する場合の処理のタイミングを示す説明図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１はこの発明の実施の形態１によるデータアクセス装置を示す構成図である。
図１において、データアクセス装置１は記録媒体２から指定のブロックの圧縮データを読み込んで、その圧縮データをキャッシュメモリ３に格納し、その圧縮データに対する伸長処理を実施する装置である。
記録媒体２は例えばハードディスクやメモリカードのほか、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどのメモリが該当し、記録媒体２には、複数のブロックの圧縮データ（非圧縮データが一定のサイズ毎（例えば、３２ＫＢｙｔｅ単位）のブロックに分割されて、それぞれのブロック毎に圧縮されたデータ）が連結されている連結ファイルが記録されている。
キャッシュメモリ３はデータアクセス装置１により読み込まれた圧縮データなどを一時的に格納するメモリである。
【００１０】
アプリケーションソフト実行部１１はユーザインターフェースや情報の画面表示などを行うアプリケーションソフトウェアを実行する処理部である。
データアクセス処理部１２はアプリケーションソフト実行部１１におけるデータの先読み処理要求やデータ読み出し要求にしたがって必要なデータに対するアクセスを行う処理部である。
【００１１】
データ取得処理部１３はアクセス制御処理部１５の指示の下、記録媒体２から指定のブロックの圧縮データを読み込んで、その圧縮データをキャッシュメモリ３に書き込むデータ取得処理を実施する。なお、データ取得処理部１３は圧縮データ取得手段を構成している。
データ伸長処理部１４はデータ伸長制御処理部１６の指示の下、キャッシュメモリ３に格納されている圧縮データに対する伸長処理を実施する。
【００１２】
アクセス制御処理部１５はアプリケーションソフト実行部１１からデータの先読み処理要求を受けると、圧縮データ取得処理部１３を起動して、指定のブロックの圧縮データのデータ取得処理を指示し、アプリケーションソフト実行部１１からデータ読み出し要求を受けると、データ取得処理部１３を起動して、指定のブロックの圧縮データのデータ取得処理と上記ブロックに続く次のブロックの圧縮データのデータ取得処理を指示するとともに、データ伸長処理部１４を起動して、キャッシュメモリ３に書き込まれた指定のブロックの圧縮データに対する伸長処理を指示し、データ伸長処理部１４による伸長処理とデータ取得処理部１３による次のブロックの圧縮データのデータ取得処理を並行して実施させる。なお、アクセス制御処理部１５は制御手段を構成している。
【００１３】
データ伸長制御処理部１６はキャッシュメモリ３の中に未だ伸長処理が施されていない圧縮データが格納されていれば、その圧縮データに対する伸長処理をデータ伸長処理部１４に要求するとともに、アクセス制御処理部１５の指示の下、データ伸長処理部１４の起動／停止を制御する処理を実施する。
なお、データ伸長処理部１４及びデータ伸長制御処理部１６からデータ伸長手段が構成されている。
【００１４】
図１の例では、データアクセス装置１の構成要素であるアプリケーションソフト実行部１１、データ取得処理部１３、データ伸長処理部１４、アクセス制御処理部１５及びデータ伸長制御処理部１６のそれぞれが専用のハードウェア（例えば、ＣＰＵを実装している半導体集積回路）で構成されているものを想定しているが、データアクセス装置１がコンピュータで構成される場合には、アプリケーションソフト実行部１１、データ取得処理部１３、データ伸長処理部１４、アクセス制御処理部１５及びデータ伸長制御処理部１６の処理内容が記述されているデータアクセスプログラムを当該コンピュータのメモリに格納し、当該コンピュータのＣＰＵが当該メモリに格納されているデータアクセスプログラムを実行するようにしてもよい。
【００１５】
図２はこの発明の実施の形態１によるデータアクセス装置１のアクセス制御処理部１５の処理内容を示すフローチャートである。
図３はこの発明の実施の形態１によるデータアクセス装置１のデータ伸長制御処理部１６の処理内容を示すフローチャートである。
図４はこの発明の実施の形態１によるデータアクセス装置１のデータ取得処理部１３の処理内容を示すフローチャートである。
図５はこの発明の実施の形態１によるデータアクセス装置１のデータ伸長処理部１４の処理内容を示すフローチャートである。
【００１６】
次に動作について説明する。
データアクセス装置１により読み出されるデータは記録媒体２に記録されているが、読み出し対象のデータである圧縮データは、図６に示すように、非圧縮データが一定のサイズ毎（例えば、３２ＫＢｙｔｅ単位）のブロックに分割されて、それぞれのブロック毎に圧縮されたデータである。
データ圧縮後のデータサイズは一般的に不定となるため、圧縮データには、ヘッダ部が設けられ、圧縮後の各ブロックのファイル内での開始位置情報がヘッダ部に記録されている。
【００１７】
図６の例では、非圧縮データが一定のサイズ毎のブロックに分割されているものを示しているが、非圧縮データをブロック毎に分割する際に、各ブロックのサイズを一定とせずに、例えば、地図データにおけるエリア単位など、データ内容の境界に対応している分割であってもよい。
ただし、この場合、非圧縮データにおける各ブロックの開始位置をブロック番号から求めることができないため、圧縮データのヘッダ部には、各ブロックに対応して非圧縮データでの先頭位置と、圧縮データでの先頭位置を記録しておく必要がある。
【００１８】
図７はキャッシュメモリ３に格納されるデータの形式を示す説明図である。
キャッシュメモリ３に格納されるデータには、ファイル番号、ブロック番号、リードカウント、伸長状態を示す管理情報が先頭に付加されている。
「ファイル番号」はデータのリード元ファイルを示し、個々のファイルと一対一で対応付けられた番号である。
「ブロック番号」はファイル内で先頭から何番目のブロックに対応するデータであるかを示す番号である。
「リードカウント」はデータ取得処理部１３がデータ取得処理を実施する毎にインクリメントされる番号である。この番号を参照することで、キャッシュメモリ３におけるデータの書き込み順序を特定することができる。
「伸長状態」は該当データの伸長処理適用状態を示す情報であり、“未伸長”、“伸長処理中”、“伸長済”のいずれかの状態を明示するものである。
【００１９】
アプリケーションソフト実行部１１は、アプリケーションソフトウェアを実行することで、例えば、ユーザーの操作や自動車の移動に伴って発生するランダムなファイルアクセスや、シーケンシャルなファイルアクセスの要求を受け付ける。
アプリケーションソフト実行部１１は、ファイルアクセスのデータが、先読み処理が可能なデータであれば、データの先読み処理要求をアクセス制御処理部１５に出力し、ファイルアクセスのデータが、即時読み出しが必要なデータであれば、データ読み出し要求をアクセス制御処理部１５に出力する。
なお、アプリケーションソフト実行部１１から出力されるデータの先読み処理要求及びデータ読み出し要求には、読み出し対象のデータを特定するファイル番号とブロック番号が含まれている。
【００２０】
アクセス制御処理部１５は、アプリケーションソフト実行部１１から出力される要求を確認し（図２のステップＳＴ１）、その要求がデータの先読み処理要求であれば、その先読み処理要求に含まれているファイル番号に対応するファイルの中で、その先読み処理要求に含まれているブロック番号に対応するブロックの圧縮データが既にキャッシュメモリ３に格納されているか否かを確認する（ステップＳＴ２）。
アクセス制御処理部１５は、そのブロック番号に対応するブロックの圧縮データが既にキャッシュメモリ３に格納されていれば、記録媒体２から新たに当該圧縮データを読み込む必要がないため、その圧縮データのデータ取得処理を圧縮データ取得処理部１３に要求しないが、その圧縮データがキャッシュメモリ３に格納されていなければ、その圧縮データのデータ取得処理を圧縮データ取得処理部１３に要求する（ステップＳＴ３）。
即ち、アクセス制御処理部１５は、圧縮データ取得処理部１３を起動して、その先読み処理要求に含まれているファイル番号に対応する連結ファイルの中から、その先読み処理要求に含まれているブロック番号に対応するブロックの圧縮データのデータ取得処理を指示する。
【００２１】
以下、圧縮データ取得処理部１３におけるデータ取得処理の内容を具体的に説明する。
圧縮データ取得処理部１３は、アクセス制御処理部１５からデータ取得処理の指示を受けると、新たな圧縮データをキャッシュメモリ３に書き込むに際して、キャッシュメモリ３の容量が足りているか否かを確認する（図４のステップＳＴ３１）。
容量確認の方法としては、例えば、キャッシュメモリ３に格納されるデータの数を管理し、一定数を超える場合には、容量不足と判定する方法がある。
ただし、実際にキャッシュメモリ３に格納されるデータ量をカウントし、そのデータ量が一定値を越える場合に、容量不足と判定するようにしてもよい。
【００２２】
圧縮データ取得処理部１３は、キャッシュメモリ３の容量が足りていない場合、キャッシュメモリ３に格納されているデータの削除を行う（ステップＳＴ３２）。
例えば、キャッシュメモリ３に格納されているデータの中で、先に書き込まれたデータから順番に削除するようにする。
【００２３】
圧縮データ取得処理部１３は、新たな圧縮データを書き込む容量を確保すると、記録媒体２に記録されている複数の連結ファイルの中から、先読み処理要求に含まれているファイル番号に対応する連結ファイルを検索する。
そして、圧縮データ取得処理部１３は、その連結ファイルの中から、先読み処理要求に含まれているブロック番号に対応するブロックの圧縮データを読み込み、その圧縮データをキャッシュメモリ３に格納する（ステップＳＴ３３）。
【００２４】
このとき、圧縮データ取得処理部１３は、その圧縮データの管理情報を設定する（ステップＳＴ３４）。
即ち、圧縮データ取得処理部１３は、図７に示すように、その圧縮データの管理情報として、先読み処理要求に含まれているファイル番号及びブロック番号を設定するとともに、リードカウント及び伸長状態「未伸長」を設定する。
なお、リードカウントについては、その時点において、圧縮データ取得処理部１３が保持しているリードカウント（過去に圧縮データ取得処理部１３が圧縮データをキャッシュメモリ３に書き込んだ回数）をインクリメントした値である。
【００２５】
アクセス制御処理部１５は、圧縮データ取得処理部１３による上記のデータ取得処理が終了するまで待機するが（図２のステップＳＴ４）、データ伸長制御処理部１６に対して、処理の空き時間にデータ伸長処理部１４を起動させる指令を出力しているので、データ伸長処理部１４は、圧縮データ取得処理部１３がデータ取得処理を実施しているとき、キャッシュメモリ３に対する書き込みが完了したファイルの圧縮データから順番にデータ伸長処理を実施する。
【００２６】
以下、データ伸長制御処理部１６及びデータ伸長処理部１４の処理内容を具体的に説明する。
データ伸長制御処理部１６は、キャッシュメモリ３の中に未だ伸長処理が施されていない圧縮データが格納されているか否かを確認する（図３のステップＳＴ２１）。
キャッシュメモリ３に格納されている圧縮データの管理情報における伸長状態を参照して、伸長処理が施されているか否かを確認する。
データ伸長制御処理部１６は、キャッシュメモリ３の中に未だ伸長処理が施されていない圧縮データが格納されていれば、その圧縮データに対する伸長処理をデータ伸長処理部１４に要求する（ステップＳＴ２２）。
【００２７】
データ伸長処理部１４は、データ伸長制御処理部１６から伸長処理要求を受けると、キャッシュメモリ３に格納されている圧縮データに対する伸長処理を実施する。
即ち、データ伸長処理部１４は、データ伸長制御処理部１６から伸長処理要求を受けると、キャッシュメモリ３に格納されている伸長処理対象の圧縮データ（未伸長の圧縮データ）の管理情報における伸長状態を「伸長処理中」に変更する（図５のステップＳＴ４１）。
【００２８】
次に、データ伸長処理部１４は、キャッシュメモリ３から伸長処理対象の圧縮データを取得し（ステップＳＴ４２）、その圧縮データに対する伸長処理を実施する（ステップＳＴ４３）。
そして、データ伸長処理部１４は、伸長処理後のデータをキャッシュメモリ３に格納し（ステップＳＴ４４）、そのデータの管理情報における伸長状態を「伸長済」に変更する（ステップＳＴ４５）。
【００２９】
データ伸長制御処理部１６は、データ伸長処理部１４における伸長処理が終了するまで待機し（図３のステップＳＴ２３）、その伸長処理が終了すると、アクセス制御処理部１５から伸長制御処理停止要求が出力されているか否かを確認する（ステップＳＴ２４）。
伸長制御処理停止要求は、後述するように、アプリケーションソフト実行部１１からデータ読み出し要求を受けたときに、アクセス制御処理部１５から出力される要求である。
データ伸長制御処理部１６は、アクセス制御処理部１５から伸長制御処理停止要求を受けなければ、ステップＳＴ２１〜ＳＴ２３の処理を繰り返し実施するが、アクセス制御処理部１５から伸長制御処理停止要求を受けると、アクセス制御処理部１５から伸長制御処理再開要求を受けるまで待機する（ステップＳＴ２５）。
【００３０】
次に、アクセス制御処理部１５は、アプリケーションソフト実行部１１から出力される要求を確認し（図２のステップＳＴ１）、その要求がデータ読み出し要求であれば、データ伸長処理部１４における伸長処理を一旦停止させるため、伸長制御処理停止要求をデータ伸長制御処理部１６に出力する（ステップＳＴ５）。
次に、アクセス制御処理部１５は、その要求がデータ読み出し要求に含まれているファイル番号に対応するファイルの中で、そのデータ読み出し要求に含まれているブロック番号に対応するブロックの圧縮データが既にキャッシュメモリ３に格納されているか否かを確認する（ステップＳＴ６）。
【００３１】
アクセス制御処理部１５は、そのブロック番号に対応するブロックの圧縮データがキャッシュメモリ３に格納されていなければ、その圧縮データのデータ取得処理を圧縮データ取得処理部１３に要求する（ステップＳＴ７）。
即ち、アクセス制御処理部１５は、圧縮データ取得処理部１３を起動して、そのデータ読み出し要求に含まれているファイル番号に対応する連結ファイルの中から、そのデータ読み出し要求に含まれているブロック番号に対応するブロックの圧縮データのデータ取得処理を指示する。
圧縮データ取得処理部１３におけるデータ取得処理の内容は、先に説明している内容と同様であるため説明を省略する。
アクセス制御処理部１５は、圧縮データ取得処理部１３によるデータ取得処理が終了するまで待機する（ステップＳＴ８）。
【００３２】
アクセス制御処理部１５は、そのブロック番号に対応するブロックの圧縮データが既にキャッシュメモリ３に格納されていれば、その圧縮データが既に伸長されているか否かを確認する（ステップＳＴ９）。
その圧縮データの管理情報における伸長状態を参照して、伸長処理が施されているか否かを確認する。
【００３３】
アクセス制御処理部１５は、その圧縮データの管理情報における伸長状態が「伸長済」である場合、新たに当該圧縮データに対する伸長処理を実施する必要がないため、その圧縮データに対する伸長処理をデータ伸長処理部１４に要求しないが、その圧縮データの管理情報における伸長状態が「未伸長」である場合、データ伸長処理部１４による伸長処理とデータ取得処理部１３による次のブロックの圧縮データのデータ取得処理を並行して実施させるため、次のブロックの圧縮データのデータ取得処理を圧縮データ取得処理部１３に要求するとともに（ステップＳＴ１０）、その圧縮データに対する伸長処理をデータ伸長処理部１４に要求する（ステップＳＴ１１）。
圧縮データ取得処理部１３におけるデータ取得処理の内容と、データ伸長処理部１４による伸長処理の内容は、先に説明している内容と同様であるため説明を省略するが、これにより、指定のブロックの圧縮データの伸長処理と、指定のブロックの次のブロックの圧縮データのデータ取得処理とが並行にして実施される。
【００３４】
また、アクセス制御処理部１５は、その圧縮データの管理情報における伸長状態が「伸長処理中」である場合も、その圧縮データの伸長処理と並行して、次のブロックの圧縮データのデータ取得処理を実施させるため、次のブロックの圧縮データのデータ取得処理を圧縮データ取得処理部１３に要求する（ステップＳＴ１２）。
アクセス制御処理部１５は、データ伸長処理部１４による伸長処理が終了するまで待機する（ステップＳＴ１３）。
【００３５】
アクセス制御処理部１５は、データ伸長処理部１４による伸長処理が終了すると、キャッシュメモリ３から伸長済のデータを読み出し（ステップＳＴ１４）、その伸長済のデータをアプリケーションソフト実行部１１に出力する。
なお、キャッシュメモリ３に格納されている圧縮データの管理情報における伸長状態を参照して、伸長済か否かを確認する。
最後に、アクセス制御処理部１５は、処理の空き時間にデータ伸長処理部１４が伸長処理を実施することができる状態に戻すため、伸長制御処理再開要求をデータ伸長制御処理部１６に出力する（ステップＳＴ１５）。
【００３６】
ここで、図８はデータの先読み処理要求が連続して発生する場合の処理のタイミングを示す説明図である。
アプリケーションソフト実行部１１からデータの先読み処理要求が発生すると、上述したように、記録媒体２に記録されている連結ファイルの中から、先読み処理要求に含まれているファイル番号に対応する連結ファイルが検索され、その連結ファイルの中から、その先読み処理要求に含まれているブロック番号に対応するブロックの圧縮データが読み込まれて、その圧縮データがキャッシュメモリ３に格納される。
また、その圧縮データがキャッシュメモリ３に格納されると、直ちにデータ伸長処理部１４によって、その圧縮データに対する伸長処理が実施される。
【００３７】
その結果、データの先読み処理要求が連続して発生すると、図８に示すように、データ取得処理部１３によるデータ取得処理とデータ伸長処理部１４による伸長処理が並行して実施されることになる。
その後、伸長済のデータに対するデータ読み出し要求がアプリケーションソフト実行部１１から発生したときには、データ取得処理部１３によるデータ取得処理や、データ伸長処理部１４による伸長処理が実施されることなく、キャッシュメモリ３から伸長済のデータを取得することができるようになる。
【００３８】
図９はデータの先読み処理要求が発生せずに、シーケンシャルなデータ読み出し要求が連続して発生する場合の処理のタイミングを示す説明図である。
この場合、データ読み出し要求が発生したとき、データ取得処理部１３によるデータ取得処理とデータ伸長処理部１４による伸長処理とを実施する必要があるが、上述したように、データ伸長処理部１４が伸長処理を実施しているとき、データ取得処理部１３が次のブロックの圧縮データの取得処理を並行して実施するため、処理の高速化を実現することができる。
【００３９】
以上で明らかなように、この実施の形態１によれば、記録媒体２から指定のブロックの圧縮データを読み込んで、その圧縮データをキャッシュメモリ３に書き込むデータ取得処理を実施する圧縮データ取得部１３と、そのキャッシュメモリ３の中に未だ伸長処理が施されていない圧縮データが格納されていれば、その圧縮データに対する伸長処理を実施するデータ伸長処理部１４とを設け、アクセス制御処理部１５が、アプリケーションソフト実行部１１からデータの先読み処理要求を受けると、圧縮データ取得部１３を起動して、指定のブロックの圧縮データのデータ取得処理を指示し、アプリケーションソフト実行部１１からデータ読み出し要求を受けると、圧縮データ取得部１３を起動して、指定のブロックの圧縮データのデータ取得処理と上記ブロックに続く次のブロックの圧縮データのデータ取得処理を指示するとともに、データ伸長処理部１４を起動して、キャッシュメモリ３に書き込まれた指定のブロックの圧縮データに対する伸長処理を指示し、そのデータ伸長処理部１４による伸長処理と圧縮データ取得部１３による次のブロックの圧縮データのデータ取得処理を並行して実施させるように構成したので、ランダムアクセスとシーケンシャルアクセスが混在している場合でも、処理の高速化を図ることができる効果を奏する。
【００４０】
また、この実施の形態１によれば、圧縮データ取得部１３が圧縮データをキャッシュメモリ３に書き込む際、キャッシュメモリ３の容量が不足している場合、キャッシュメモリ３に格納されているデータの中で、先に書き込まれたデータから順番に削除するように構成したので、キャッシュメモリ３の容量が不足している場合でも、記録媒体２から圧縮データを読み込んで、その圧縮データをキャッシュメモリ３に書き込むことができる効果を奏する。
【００４１】
実施の形態２．
上記実施の形態１では、圧縮データ取得部１３が圧縮データをキャッシュメモリ３に書き込む際、キャッシュメモリ３の容量が不足している場合、キャッシュメモリ３に格納されているデータの中で、先に書き込まれたデータから順番に削除するものについて示したが、圧縮データ取得部１３が圧縮データをキャッシュメモリ３に書き込む際、キャッシュメモリ３の容量が不足している場合、キャッシュメモリ３に格納されているデータの中で、最後にアクセスされた時刻が古いデータから順番に削除するようにしてもよく、上記実施の形態１と同様の効果を奏することができる。
【００４２】
ただし、この場合、キャッシュメモリ３に格納されているデータの管理情報として、圧縮データをキャッシュメモリ３に格納する際に設定するリードカウントに加え、該当ファイルに対するデータ読み出し要求発生時に設定するリードカウントが必要となる。
データ読み出し要求発生時のリードカウントは、アクセス制御処理部１５が管理し、データ読み出し要求が発生すると、該当するデータの管理情報におけるリードカウントをインクリメントするようにする。
これにより、最もファイルアクセス履歴が古いファイルのデータは、リードカウントが最も小さいものとなり、削除対象となる。
一度もアクセスされていないファイルが複数存在する場合には、一度もアクセスされていないファイル中で最も小さいリードカウントのデータが削除対象となる。
【符号の説明】
【００４３】
１  データアクセス装置、２  記録媒体、３  キャッシュメモリ、１１  アプリケーションソフト実行部、１２  データアクセス処理部、１３  データ取得処理部（圧縮データ取得手段）、１４  データ伸長処理部（データ伸長手段）、１５  アクセス制御処理部（制御手段）、１６  データ伸長制御処理部（データ伸長手段）。
【図１】
2010165151.tif 000003
【図２】
2010165151.tif 000004
【図３】
2010165151.tif 000005
【図４】
2010165151.tif 000006
【図５】
2010165151.tif 000007
【図６】
2010165151.tif 000008
【図７】
2010165151.tif 000009
【図８】
2010165151.tif 000010
【図９】
2010165151.tif 000011