(57)【特許請求の範囲】
【請求項１】
第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムであって、
前記第二記憶装置は、前記第一記憶装置よりも、記憶容量が大きいと共に、読み出し速度が遅く、
前記圧縮データファイルは、１つの元データファイルを複数のユニットに分割して当該ユニット毎に圧縮してなる複数の圧縮ユニットにより構成され、
前記第一記憶装置には、前記複数の圧縮ユニットを管理するための管理データファイルが常駐し、
前記管理データファイルに基づいて、前記圧縮データファイルを前記圧縮ユニット単位で前記第二記憶装置から読み出して前記第一記憶装置に展開するデータ読出し部を備え、
前記管理データファイルは、前記圧縮データファイルを構成する全ての前記圧縮ユニットを複数の圧縮ユニット群に分けて管理するように構成され、前記圧縮データファイルの全体を通して割り当てられた通しアドレスでの前記圧縮ユニット群それぞれの先頭アドレスであるオフセットアドレスの情報を有すると共に、各前記圧縮ユニット群内で割り当てられた前記圧縮ユニットそれぞれの先頭アドレスであるローカルアドレスの情報を有し、
各前記圧縮ユニット群における前記ローカルアドレスの最大値が、前記ローカルアドレス用に設定された一定のデータ量のデータを用いて表わせる範囲内となるように、各前記圧縮ユニット群に割り当てられる前記圧縮ユニットの数が前記圧縮ユニット群毎に設定されているデータ読出しシステム。
【請求項２】
前記ローカルアドレス用に設定された前記一定のデータ量は、前記圧縮データファイルにおける前記通しアドレスの最大値を表す場合に必要なデータ量の半分のデータ量に設定されている請求項１に記載のデータ読出しシステム。
【請求項３】
各前記圧縮ユニット群における前記ローカルアドレスの最大値が、前記ローカルアドレス用に設定された前記一定のデータ量のデータを用いて表わせる範囲内となるように、各前記圧縮ユニット群に割り当てられる前記圧縮ユニットの数が、全ての前記圧縮ユニット群で同じ数になるように設定されている請求項１又は２に記載のデータ読出しシステム。
【請求項４】
前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有する請求項１から３のいずれか一項に記載のデータ読出しシステム。
【請求項５】
前記管理データファイルは、それぞれの前記圧縮ユニット群の前記オフセットアドレスの情報に関連付けて、前記圧縮ユニット群のそれぞれにおける先頭の前記圧縮ユニットの識別符号の情報を有する請求項１から４のいずれか一項に記載のデータ読出しシステム。
【請求項６】
前記データ読出し部は、データの読出し要求に基づいて、読み出し対象の前記圧縮ユニットである読出しユニットと、当該読出しユニットが属する前記圧縮ユニット群である読出しユニット群とを決定し、前記管理データファイルから、前記読出しユニット群の前記オフセットアドレスの情報と前記読出しユニットのローカルアドレスの情報とを取得して、前記通しアドレスでの前記読出しユニットの先頭アドレスを決定し、当該先頭アドレスから所定区間のデータを前記読出しユニットのデータとして前記第二記憶装置から読み出す請求項１から５のいずれか一項に記載のデータ読出しシステム。
【請求項７】
前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有し、
前記データ読出し部は、前記第二記憶装置から読み出した前記読出しユニットのデータの先頭部分から、前記データ量の情報を取得し、前記読出しユニットのデータから前記データ量分のデータを取り出して前記第一記憶装置に展開する請求項６に記載のデータ読出しシステム。
【請求項８】
前記データの読出し要求には、前記圧縮データファイルの全体を通して割り当てられた前記通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、
前記データ読出し部は、前記圧縮ユニット群それぞれの前記オフセットアドレスの情報を用いて、前記要求アドレスが含まれる前記圧縮ユニット群を前記読出しユニット群に決定し、前記読出しユニット群に属する前記圧縮ユニットそれぞれの前記ローカルアドレスの情報を用いて、前記要求アドレスから前記読出しユニット群のオフセットアドレスを減算したアドレスが含まれる前記圧縮ユニットを前記読出しユニットに決定する請求項６又は７に記載のデータ読出しシステム。
【請求項９】
前記データの読出し要求には、前記元データファイルの全体を通して割り当てられたアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、
前記データ読出し部は、前記要求アドレスと、前記元データファイルの１つのユニットのデータ量とに基づいて、前記要求アドレスが含まれる前記元データファイルのユニット番号を決定し、当該ユニット番号に基づいて、前記読出しユニット群と前記読出しユニットとを決定する請求項６又は７に記載のデータ読出しシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムに関する。
【背景技術】
【０００２】
上記のようなデータ読出しシステムに関して、例えば下記の特許文献１に記載された技術が既に知られている。この特許文献１に記載されている技術は、元のデータファイルを所定のデータ量毎に複数のユニットに分割し、分割ユニットのそれぞれを圧縮して複数の圧縮ユニットを生成し、当該複数の圧縮ユニットを連結して圧縮データファイルを生成している。そして、特許文献１の技術では、圧縮データファイル中で各圧縮ユニットの配置を示すアドレス情報を有する管理データを、圧縮データファイルの先頭部分に配置している。そして、特許文献１の技術では、データ読出しシステムは、圧縮データファイルの先頭部分を参照し、読出し要求に対応する圧縮ユニットを、第二記憶装置に記憶された圧縮データファイルから読み出して、第一記憶装置に展開（解凍）するように構成されている。
【０００３】
ところで、データ読出しシステムでは、管理データを参照して読出し処理を行う際に、管理データを、中央処理装置（ＣＰＵ）が直接読み書きできるＲＡＭなどの一次記憶装置に読み出し、中央処理装置が、一次記憶装置に記憶された管理データファイルを参照して、読出し処理を行うように構成される場合がある。しかしながら、圧縮データファイルのデータ量が大きい場合は、圧縮ユニット数が大きくなり、各圧縮ユニットのアドレスの最大値が大きくなる場合がある。この場合は、各圧縮ユニットの先頭アドレスの数が大きくなり、先頭アドレスを表すデータのデータ量が大きくなるため、管理データファイルのデータ量が大きくなる。ここで、管理データファイルのデータ量は、圧縮ユニット数と先頭アドレスを表すデータのデータ量との乗算値に比例して大きくなる。
管理データファイルのデータ量が大きくなると、一次記憶装置の記憶容量における管理データファイルのデータ量の占める割合が増加し、他のデータファイル又は演算処理のために確保できる記憶容量が減少して他のデータファイルの記憶又は演算処理に制約が生じ、或いは記憶容量の大きい一次記憶装置を用いることが必要となってコスト上昇の要因となる恐れがあった。
しかしながら、特許文献１の技術では、このような課題に対して、特段の考慮はされていない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−７９５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、複数の圧縮ユニットを管理するための管理データファイルのデータ量を低減して、他のデータファイル又は演算処理のために第一記憶装置の記憶容量を確保することができるデータ読出しシステムが求められる。
【課題を解決するための手段】
【０００６】
本発明に係る、第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムの特徴構成は、前記第二記憶装置は、前記第一記憶装置よりも、記憶容量が大きいと共に、読み出し速度が遅く、前記圧縮データファイルは、１つの元データファイルを複数のユニットに分割して当該ユニット毎に圧縮してなる複数の圧縮ユニットにより構成され、前記第一記憶装置には、前記複数の圧縮ユニットを管理するための管理データファイルが常駐し、前記管理データファイルに基づいて、前記圧縮データファイルを前記圧縮ユニット単位で前記第二記憶装置から読み出して前記第一記憶装置に展開するデータ読出し部を備え、前記管理データファイルは、前記圧縮データファイルを構成する全ての前記圧縮ユニットを複数の圧縮ユニット群に分けて管理するように構成され、前記圧縮データファイルの全体を通して割り当てられた通しアドレスでの前記圧縮ユニット群それぞれの先頭アドレスであるオフセットアドレスの情報を有すると共に、各前記圧縮ユニット群内で割り当てられた前記圧縮ユニットそれぞれの先頭アドレスであるローカルアドレスの情報を有し、各前記圧縮ユニット群における前記ローカルアドレスの最大値が、前記ローカルアドレス用に設定された一定のデータ量のデータを用いて表わせる範囲内となるように、各前記圧縮ユニット群に割り当てられる前記圧縮ユニットの数が前記圧縮ユニット群毎に設定されている点にある。
【０００７】
この特徴構成によれば、各圧縮ユニットの先頭アドレスが、各圧縮ユニット群内で割り当てられたローカルアドレスとされているので、圧縮データファイルの全体を通して割り当てられた通しアドレスの形式とされる場合よりも、圧縮データファイル全体における各圧縮ユニットの先頭アドレスの最大値を小さくできる。よって、小さいデータ量のデータを用いて、各圧縮ユニットの先頭アドレスを表現できる。
特に、圧縮データファイルのデータ量が大きく、圧縮データファイル全体の通しアドレスの最大値が大きい場合は、圧縮ユニット群内のローカルアドレス化により、各圧縮ユニットの先頭アドレスの情報を表すデータのデータ量を小さくできる。当該先頭アドレスの情報を表すデータの圧縮データファイル全体での総データ量は、圧縮ユニット数に比例するので、特に、圧縮データファイルのデータ量が大きく、圧縮ユニット数が大きい場合は、圧縮データファイル全体での総データ量の低減効果が大きくなる。
【０００８】
また、上記の特徴構成によれば、管理データファイルは、各圧縮ユニット群のオフセットアドレスの情報を表すデータを有するが、圧縮ユニット群数は、圧縮ユニット数より小さくなるので、オフセットアドレスの情報を表すデータの圧縮データファイル全体での総データ量の増加を抑制できるとともに、管理データファイル全体に対する増加割合を小さくできる。
従って、管理データファイルのデータ量を低減することが容易になり、他のデータファイル又は演算処理のために第一記憶装置の記憶容量を確保することが容易になる。
【０００９】
ここで、前記ローカルアドレス用に設定された前記一定のデータ量は、前記圧縮データファイルにおける前記通しアドレスの最大値を表す場合に必要なデータ量の半分のデータ量に設定されていると好適である。
また、各前記圧縮ユニット群における前記ローカルアドレスの最大値が、前記ローカルアドレス用に設定された前記一定のデータ量のデータを用いて表わせる範囲内となるように、各前記圧縮ユニット群に割り当てられる前記圧縮ユニットの数が、全ての前記圧縮ユニット群で同じ数になるように設定されていると好適である。
ここで、前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有すると好適である。
【００１０】
この構成によれば、各圧縮ユニットのデータ量の情報を、管理データファイルに有する必要がなくなり、管理データファイルのデータ量を低減することができる。また、各圧縮ユニットのデータ量が異なる場合でも、各圧縮ユニットの読出し処理を容易化できる。
【００１１】
ここで、前記管理データファイルは、それぞれの前記圧縮ユニット群の前記オフセットアドレスの情報に関連付けて、前記圧縮ユニット群のそれぞれにおける先頭の前記圧縮ユニットの識別符号の情報を有すると好適である。
【００１２】
この構成によれば、各圧縮ユニット群の先頭の圧縮ユニットが、圧縮データファイル内におけるどの圧縮ユニットであるか容易に識別可能になる。よって、データの読出し処理を容易化することが可能になる。
特に、各圧縮ユニット群に含まれる圧縮ユニット数が、圧縮ユニット群毎に異なる場合であっても、各圧縮ユニット群の先頭の圧縮ユニットと、圧縮データファイル内における圧縮ユニットの配置との対応を容易に識別することが可能になり、読出し処理を容易化できる。逆の視点では、上記のように構成されているので、圧縮ユニット数を圧縮ユニット群毎に異なるように設定することが容易になる。
また、管理データファイルは、圧縮ユニットの識別符号の情報を、各圧縮ユニット群の先頭の圧縮ユニットのみに有する構成とすることができる。その場合には、識別符号の情報を、全ての圧縮ユニットに有する場合に比べて、管理データファイルのデータ量を低減することができる。
【００１３】
ここで、前記データ読出し部は、データの読出し要求に基づいて、読み出し対象の前記圧縮ユニットである読出しユニットと、当該読出しユニットが属する前記圧縮ユニット群である読出しユニット群とを決定し、前記管理データファイルから、前記読出しユニット群の前記オフセットアドレスの情報と前記読出しユニットのローカルアドレスの情報とを取得して、前記通しアドレスでの前記読出しユニットの先頭アドレスを決定し、当該先頭アドレスから所定区間のデータを前記読出しユニットのデータとして前記第二記憶装置から読み出すと好適である。
【００１４】
この構成によれば、管理データファイルが有しているオフセットアドレスの情報と、ローカルアドレスの情報とを用いて、第二記憶装置から読出しユニットを読み出すことができる。
【００１５】
ここで、前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有し、前記データ読出し部は、前記第二記憶装置から読み出した前記読出しユニットのデータの先頭部分から、前記データ量の情報を取得し、前記読出しユニットのデータから前記データ量分のデータを取り出して前記第一記憶装置に展開すると好適である。
【００１６】
この構成によれば、読み出した読出しユニットのデータの先頭部分に含まれる、読出しユニットのデータ量の情報を用いて、読出しユニットのデータから展開するデータ量分のデータを取り出すことができる。
また、圧縮ユニットのデータに、展開される圧縮データの他に空きデータが含まれる場合であっても、読み出した読出しユニットのデータから空きデータを除いて、展開するデータ量分のデータを取り出すことができる。
【００１７】
ここで、前記データの読出し要求には、前記圧縮データファイルの全体を通して割り当てられた前記通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、前記データ読出し部は、前記圧縮ユニット群それぞれの前記オフセットアドレスの情報を用いて、前記要求アドレスが含まれる前記圧縮ユニット群を前記読出しユニット群に決定し、前記読出しユニット群に属する前記圧縮ユニットそれぞれの前記ローカルアドレスの情報を用いて、前記要求アドレスから前記読出しユニット群のオフセットアドレスを減算したアドレスが含まれる前記圧縮ユニットを前記読出しユニットに決定すると好適である。
【００１８】
この構成によれば、各圧縮ユニット群のオフセットアドレスの情報を用いて、圧縮データファイルの要求アドレスが含まれる圧縮ユニット群を判定して、読み出しユニット群を決定することができる。
また、要求アドレスから読出しユニット群のオフセットアドレスを減算したアドレスを算出することにより、読出しユニット群内でローカルアドレス化された要求アドレスを算出することができる。そして、読出しユニット群に属する各圧縮ユニットのローカルアドレスの情報を用いて、ローカルアドレス化された要求アドレスが含まれる圧縮ユニットを判定して、読み出しユニットを決定することできる。
従って、データの読出し要求に、圧縮データファイルの要求アドレスの情報が含まれる場合であっても、管理データファイルを用いて、読み出しユニット群と読み出しユニットを決定することができ、データの読出し処理を進めることができる。
【００１９】
ここで、前記データの読出し要求には、前記元データファイルの全体を通して割り当てられたアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、前記データ読出し部は、前記要求アドレスと、前記元データファイルの１つのユニットのデータ量とに基づいて、前記要求アドレスが含まれる前記元データファイルのユニット番号を決定し、当該ユニット番号に基づいて、前記読出しユニット群と前記読出しユニットとを決定すると好適である。
【００２０】
この構成によれば、展開データファイルの要求アドレスと、元データファイルの１つのユニットのデータ量とに基づいて、要求アドレスが含まれる元データファイルのユニット番号を決定し、当該ユニット番号に基づいて、読出しユニット群と読出しユニットとを決定することができる。
従って、データの読出し要求に、展開データファイルの要求アドレスの情報が含まれる場合であっても、読み出しユニット群と読み出しユニットを決定することができ、データの読出し処理を進めることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態に係るデータ読出しシステムの構成を示すブロック図である。
【図２】本発明の実施形態に係る展開データファイルと圧縮データファイルを説明するための図である。
【図３】本発明の実施形態及びその比較例に係る圧縮データファイル及び管理データファイルの構成を説明するための図である。
【図４】本発明の実施形態及びその比較例に係る管理データファイルの構成を説明するための図である。
【図５】本発明の実施形態及びその比較例に係る管理データファイルの構成を説明するための図である。
【図６】本発明の実施形態に係るデータ読出し部の処理を説明するためのフローチャートである。
【図７】本発明の実施形態に係るデータ読出し部の処理を説明するためのフローチャートである。
【図８】本発明の実施形態に係るデータ読出し部の処理を説明するための図である。
【図９】本発明の実施形態に係るデータ読出し部の処理を説明するためのフローチャートである。
【図１０】本発明の実施形態に係るデータ読出し部の処理を説明するための図である。
【発明を実施するための形態】
【００２２】
本発明の実施形態について図面に基づいて説明する。図１は、本実施形態に係るデータ読出しシステム１の構成を模式的に示すブロック図である。データ読出しシステム１は、第二記憶装置３に記憶された圧縮データファイル８の一部を読み出して第一記憶装置２に展開するシステムである。第二記憶装置３は、第一記憶装置２よりも、記憶容量が大きいと共に、読み出し速度が遅い。
図１及び図２に示すように、圧縮データファイル８は、１つの元データファイルである展開データファイル９を複数のユニットに分割して当該ユニット毎に圧縮してなる複数の圧縮ユニット１０により構成されている。図１に示すように、第一記憶装置２には、複数の圧縮ユニット１０を管理するための管理データファイル７が常駐している。データ読出しシステム１に備えられたデータ読出し部５は、管理データファイル７に基づいて、圧縮データファイル８を圧縮ユニット１０単位で第二記憶装置３から読み出して第一記憶装置２に展開する。本実施形態では、データ読出し部５は、展開データファイル９のデータを利用するデータ利用部６から伝達されたデータの読出し要求に基づいて、読み出す圧縮ユニット１０である読み出しユニットを決定するように構成されている。
【００２３】
本実施形態では、制御装置４が、データ読出し部５、データ利用部６、及び第一記憶装置２を備えるように構成されている。制御装置４は、演算処理装置であり、中央処理装置（ＣＰＵ）、ＲＯＭ、ＲＡＭ、Ｉ／Ｏインターフェース、これらを接続するバスなどを備えて構成される。データ読出し部５及びデータ利用部６は、ハードウェアまたはソフトウェア（プログラム）或いはその両方により実装されて構成されている。ここで、データ読出し部５及びデータ利用部６がソフトウェア（プログラム）により構成される場合には、当該ソフトウェアは、中央処理装置（ＣＰＵ）が参照可能なＲＡＭやＲＯＭ等に記憶されており、中央処理装置（ＣＰＵ）が当該ソフトウェアを参照して演算処理を行うことにより、データ読出し部５及びデータ利用部６の機能が発揮されるように構成される。
また、本実施形態では、管理データファイル７は、第二記憶装置３に記憶されており、データ読出し部５が、第二記憶装置３から管理データファイル７を読み出して、第一記憶装置２に常駐（コピー、記憶）させるように構成されている。
【００２４】
このような構成において、図３及び図４に示すように、管理データファイル７は、圧縮データファイル８を構成する全ての圧縮ユニット１０を複数の圧縮ユニット１０の群（以下、単に「圧縮ユニット群」と称す）に分けて管理するように構成され、圧縮データファイル８の全体を通して割り当てられた通しアドレスでの圧縮ユニット群それぞれの先頭アドレスであるオフセットアドレスの情報を有すると共に、各圧縮ユニット群内で割り当てられた圧縮ユニット１０それぞれの先頭アドレスであるローカルアドレスの情報を有するように構成されている。
以下、本実施形態に係るデータ読出しシステム１の構成について詳細に説明する。
【００２５】
１．記憶装置
第二記憶装置３は、第一記憶装置２よりも、記憶容量が大きいと共に、読み出し速度が遅い。本実施形態では、第一記憶装置２は、いわゆる一次記憶装置とされ、第二記憶装置３は、二次記憶装置とされている。一次記憶装置とは、中央処理装置（ＣＰＵ）が直接読み書きできる記憶装置である。二次記憶装置とは、中央処理装置（ＣＰＵ）が入出力装置を介して読み書きできる記憶装置である。一次記憶装置は、二次記憶装置より読み書き速度が比較的速いが、記憶容量が比較的小さく、二次記憶装置は、一次記憶装置より読み書き速度が比較的遅いが、記憶容量が比較的大きい。二次記憶装置に大容量のデータが記憶されるように構成され、中央処理装置（ＣＰＵ）は、二次記憶装置から適宜必要なデータを読み出して一次記憶装置に転送して処理に用いるように構成されている。
【００２６】
また、第二記憶装置３は、第一記憶装置２よりも、データを読み出す際のデータ量の単位が大きい。本実施形態では、第一記憶装置２と制御装置４の中央処理装置（ＣＰＵ）との間でデータを読み書きする際のデータ量の単位は、１バイト(byte)に設定されている。第二記憶装置３と制御装置４の中央処理装置（ＣＰＵ）との間でデータを読み書きする際のデータ量の単位は、１バイト(byte)よりデータ量が大きい単位である１セクタ(sector)に設定されている。本実施形態では、１セクタは、５１２バイト(byte)に設定されている。すなわち、第一記憶装置２は、１バイト毎に読み書き可能な記憶装置であり、第二記憶装置３は、１バイトよりデータ量が大きい１セクタ（５１２バイト）毎に少なくとも読み出し可能な記憶装置である。
【００２７】
第一記憶装置２は、読み書き可能な記憶装置とされ、ＲＡＭ（Random Access Memory）などにより構成される。第二記憶装置３は、少なくとも読み出し可能な記憶装置とされ、ハードディスク、ＤＶＤ−ＲＯＭ、フラッシュメモリなどにより構成される。本実施形態では、１つの制御装置４に対して１つの第二記憶装置３が備えられている。しかし、複数の制御装置４に対して１つの第二記憶装置３が備えられていてもよい。この場合は、複数の制御装置４と第二記憶装置３との間が、電話回線、インターネット、及びローカルネット等の各種通信網を介して接続される。本実施形態では、第二記憶装置３と制御装置との間は、有線接続されているが、無線通信装置などを介して無線接続されていてもよい。
【００２８】
２．圧縮データファイル８
図２に示すように、圧縮データファイル８は、１つの元データファイル（展開データファイル９）を複数のユニット（展開ユニット１１）に分割して当該ユニット毎に圧縮してなる複数の圧縮ユニット１０により構成されている。本実施形態では、図２（ａ）に示すように、展開データファイル９は、圧縮のために、展開データファイル９の先頭アドレスから順に所定のセクタ数毎に区切られて、複数の展開ユニット１１に分割される。本例では、展開データファイル９におけるユニットを区切るセクタ数は、１２８セクタに設定されており、１つの展開ユニット１１のデータ量は、１２８セクタ（６５５３６バイト）とされている。なお、ユニットを区切るセクタ数は、１２８以外のセクタ数に設定されてもよい。
【００２９】
そして、展開データファイル９の各展開ユニット１１が、個別に圧縮されたものが圧縮ユニット１０となる。ここで、圧縮とは、コンピュータで元データを加工又は変換する処理を行って、そのデータ量を小さくすることである。展開とは、圧縮されたデータをコンピュータで加工又は変換する処理を行って、圧縮前の元データに復元することである。圧縮には、各種方式があり、各圧縮方式に応じた圧縮処理により、データの加工又は変換が行われる。展開には、各圧縮方式に対応した各種方式があり、各展開方式に応じた展開処理により、データの加工又は変換が行われる。本実施形態では、圧縮は、バイト単位でデータ量を小さくする形式とされている。本実施形態では、１２８セクタ、６５５３６バイトの展開ユニット１１のデータ量が、４０９６０バイト前後のデータ量に圧縮される場合を例に説明する。データ量の圧縮率は、元データの内容、圧縮方式に応じて変化する。このため、図２に示すように、圧縮後のデータ量は、展開ユニット１１毎に４０９６０バイト前後で変化している。なお、４０９６０バイトは、セクタ単位では８０セクタになる。
【００３０】
そして、複数の圧縮データが、圧縮前の展開ユニット１１と同じ順番（ユニット番号の順）で先頭アドレスから順に並べられ、１つのファイルにまとめられて、圧縮データファイル８とされている。この際、第二記憶装置３から圧縮ユニット１０を読み出す際のデータ量の単位がセクタであるため、各圧縮データの先頭アドレスは、セクタ単位のアドレスに一致するように調整されて並べられている。このため、バイト単位のデータ量を有する圧縮データと、圧縮ユニット１０のセクタ単位の区切りとの間にデータの空き（空きデータ）が生じている。本実施形態では、圧縮データは、圧縮ユニット１０の先頭アドレス寄りに詰めて配置されており、圧縮ユニット１０の最終アドレス部に空きが生じている。
【００３１】
３．管理データファイル７
データ読出し部５が、圧縮データファイル８を圧縮ユニット１０単位で第二記憶装置３から読み出す際に、圧縮データファイル８の全体を通して割り当てられた通しアドレスでの、読み出す圧縮ユニット１０の先頭アドレス（セクタ単位）と最終アドレス（セクタ単位）が必要になる。
【００３２】
＜展開データファイル９＞
比較のために、まず展開データファイル９について説明する。展開データファイル９では、各展開ユニット１１のセクタ数（データ量）は、展開ユニット１１毎に異なっておらず、同じセクタ数（本例では、１２８セクタ）に設定されている。よって、展開データファイル９の全体を通して割り当てられた通しアドレスでの展開ユニット１１それぞれの先頭アドレスは、所定のセクタ数（本例では、１２８セクタ）ずつ増加していく。例えば、各展開ユニット１１の通しアドレスでの先頭アドレスは、所定のセクタ数（本例では、１２８セクタ）に、各展開ユニット１１のユニット番号を乗算した値になる。ここで、展開ユニット１１のユニット番号は、展開データファイル９の全体を通して割り当てられた通し番号であり、先頭アドレスがより小さいユニットから順に、０から１つずつ増加していく。このため、各展開ユニット１１の先頭アドレスと最終アドレスは、そのユニット番号に基づいて容易に求められる。
【００３３】
＜圧縮データファイル８＞
一方、圧縮データファイル８では、各圧縮ユニット１０のセクタ数（データ量）は、所定のセクタ数前後（本例では、８０セクタ前後）で圧縮ユニット１０毎に異なっている。よって、圧縮データファイル８の全体を通して割り当てられた通しアドレスでの圧縮ユニット１０それぞれの先頭アドレスは、圧縮ユニット１０毎に異なるセクタ数ずつ増加していく。このため、各圧縮ユニット１０の先頭アドレスと最終アドレスは、上記の展開ユニット１１ように所定のセクタ数にユニット番号を乗算するような演算では求められず、圧縮ユニット１０毎に管理される必要がある。このため、各圧縮ユニット１０の先頭アドレスと最終アドレスの情報を、管理データファイル７で管理できるように構成されている。
【００３４】
本実施形態では、圧縮ユニット１０のデータには、圧縮データと空きデータとが含まれており、データ読出し部５は、読み出した圧縮ユニット１０のデータから、圧縮データに対応するデータ量分のデータを取り出して展開するように構成されており、各圧縮ユニット１０に含まれる圧縮データのデータ量の情報が必要になる。各圧縮ユニット１０に含まれる圧縮データのデータ量（バイト数）は、圧縮ユニット１０のセクタ数が同じでも、圧縮ユニット１０毎に異なっている。このため、各圧縮ユニット１０に含まれる圧縮データのデータ量（バイト数）の情報は、管理される必要がある。なお、圧縮ユニット１０に含まれる圧縮データのデータ量が、本発明における「圧縮ユニットのデータ量」に相当する。
【００３５】
＜比較例＞
本実施形態とは異なる、本実施形態と比較するための比較例では、図３（ａ）、図４（ａ）に示すように、各圧縮ユニット１０の先頭アドレスの情報は、圧縮データファイル８の全体を通して割り当てられた通しアドレスの形式で、ユニットアドレス管理データとして、管理データファイル７に記憶されている。例えば、圧縮データファイル８のデータ量が、２ギガバイト（２３１バイト）の場合は、圧縮データファイル８の全体を通して割り当てられた通しアドレスの最大値は、セクタ単位（１セクタ＝２９バイト）で、２２２セクタになる。当該セクタ単位での通しアドレスの最大値（２２２）は、２バイト（１６ビット、２１６）のデータを用いて表現できないため、比較例では、４バイト（３２ビット、２３２）のデータを用いて表現されている。１つの圧縮ユニット１０のセクタ数が概ね８０セクタであるとすると、圧縮データファイル８のデータ量が２ギガバイト（２２２セクタ）の場合は、圧縮ユニット１０の数は、５２４２９となる。
よって、比較例では、各圧縮ユニット１０の先頭アドレスを表すデータの、圧縮データファイル８全体での総データ量は、４バイト×５２４２９の、２０９７１６バイトになる。
【００３６】
また、比較例では、各圧縮ユニット１０に含まれる圧縮データのデータ量（バイト数）の情報は、ユニットデータ量管理データとして、管理データファイル７に記憶されている。例えば、各圧縮ユニット１０に含まれる圧縮データのデータ量は、当該データ量が４０９６０バイト（２１５．３２バイト）前後で変化する場合は、２バイト（１６ビット、２１６）のデータを用いて表現できる。よって、比較例では、各圧縮ユニット１０に含まれる圧縮データのデータ量の、圧縮データファイル８全体での総データ量は、２バイト×５２４２９の、１０４８５８バイトになる。
以上より、比較例では、管理データファイル７の総データ量は、ユニットアドレス管理データとユニットデータ量管理データとを足し合わせた、３１４５７４バイトになる。
【００３７】
＜本実施形態＞
＜各圧縮ユニット１０の先頭アドレスを表すデータ量の低減＞
本実施形態では、図３（ｂ）、図４（ｂ）に示すように、各圧縮ユニット１０の先頭アドレスの情報は、圧縮データファイル８を構成する全ての圧縮ユニット１０を複数の圧縮ユニット群に分けて管理されるように構成されている。具体的には、圧縮ユニット群それぞれの先頭アドレス（以下、オフセットアドレスと称す）の情報が、圧縮データファイル８の全体を通して割り当てられた通しアドレスの形式で、ユニット群アドレス管理データとして管理データファイル７に追加的に記憶されている。
【００３８】
各圧縮ユニット１０それぞれの先頭アドレス（以下、ローカルアドレスと称す）の情報は、比較例における圧縮データファイル８全体の通しアドレスの形式から、各圧縮ユニット群内で割り当てられたローカルアドレスの形式に変更されて、ユニットアドレス管理データとして管理データファイル７に記憶されている。各圧縮ユニット１０のローカルアドレスの情報は、ユニット番号の順で先頭アドレスから順に並べられ、１つのデータにまとめられて、ユニットアドレス管理データとされている。ここで、ユニット番号は、圧縮データファイル８の全体を通して割り当てられた圧縮ユニット１０の通し番号であり、圧縮データファイル８全体の通しアドレスでの先頭アドレスがより小さい圧縮ユニット１０から順に０から１つずつ増加していく。また、ユニット群番号は、圧縮データファイル８の全体を通して割り当てられた圧縮ユニット群の通し番号であり、オフセットアドレスがより小さい圧縮ユニット群から順に０から１つずつ増加していく。
【００３９】
圧縮ユニット群のオフセットアドレスと圧縮ユニット１０のローカルアドレスとを足し合わせた値が、圧縮データファイル８全体の通しアドレスでの圧縮ユニット１０の先頭アドレスとなる。なお、各圧縮ユニット群のオフセットアドレス及び各圧縮ユニット１０のローカルアドレスは、通しアドレスでの圧縮ユニット１０の先頭アドレスと同じセクタ単位とされている。
【００４０】
各圧縮ユニット群のオフセットアドレスを表すデータのデータ量（バイト数）は、圧縮データファイル８全体の通しアドレスであるため、当該通しアドレスで表す場合に必要なデータ量（バイト数）に設定されている。本例のように、圧縮データファイル８のデータ量が２ギガバイト（２２２セクタ）の場合は、各圧縮ユニット群のオフセットアドレスを表すデータのバイト数は、４バイト（３２ビット、２３２）に設定されている。
【００４１】
また、各圧縮ユニット１０のローカルアドレスを表すデータのデータ量（バイト数）は、圧縮データファイル８全体の通しアドレスで表す場合に必要なデータ量（バイト数）の半分のデータ量（バイト数）に設定されている。本例では、各圧縮ユニット１０のローカルアドレスを表すデータのバイト数は、圧縮データファイル８全体の通しアドレスで表す場合に必要な４バイトの半分の２バイト（１６ビット）に設定されている。
【００４２】
本実施形態では、各圧縮ユニット群におけるローカルアドレスの最大値が、通しアドレスで表す場合に必要なデータ量の半分のデータ量に設定されたデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が、圧縮ユニット群毎に調整されている。本例では、各圧縮ユニット群におけるローカルアドレスの最大値が、４バイトの半分の２バイトのデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が調整されている。本例のように、各圧縮ユニット１０のデータ量が、８０セクタ（２６．３２セクタ）前後で変化する場合は、２バイト（１６ビット）のデータで表現できる最大値６５５３５を８０セクタで除算した値が約８１９．２になるので、各圧縮ユニット群の圧縮ユニット数は、８２０前後に調整される。２ギガバイトのデータ量に対応して、全体で５２４２９のユニット数を有する圧縮データファイル８を、８２０前後の圧縮ユニット数を有する圧縮ユニット群に分割すると、５２４２９を８２０で除算した値が約６３．９になるので、圧縮ユニット群の数は概ね６４となる。
【００４３】
本実施形態では、各圧縮ユニット群のローカルアドレスの最大値が、設定されたデータ量（バイト数）のデータを用いて表現できる最大値以下の範囲内で最大になるように、アドレス及びユニット群番号が小さい圧縮ユニット群から順に、各圧縮ユニット群に割り当てる圧縮ユニット数が設定されている。本例では、各圧縮ユニット群のローカルアドレスの最大値が、２バイト（１６ビット）のデータを用いて表現できる最大値である６５５３５以下の範囲内で最大になるように、アドレス及びユニット群番号が小さい圧縮ユニット群から順に、各圧縮ユニット群の圧縮ユニット数が設定されている。例えば、次の圧縮ユニット１０のローカルアドレスが、６５５３５を超える場合には、当該次の圧縮ユニット１０から、次の圧縮ユニット群に割り当てて、当該次の圧縮ユニット１０のローカルアドレスをゼロに設定する。このような方法で、圧縮ユニット群を割り当てると、全ての圧縮ユニット１０のローカルアドレスを、必ず２バイトのデータで表現できるとともに、圧縮ユニット群の数を最小化することができる。特に、圧縮ユニット１０間でデータ量が大きく変化する場合であっても、精度良く割り当てることができる。
【００４４】
この割り当て方法では、各圧縮ユニット群の圧縮ユニット数は８２０前後で変化し、各圧縮ユニット群における先頭の圧縮ユニット１０のユニット番号は、展開データファイル９のように、所定の圧縮ユニット数にユニット群番号を乗算するような簡単な演算では求められない。このため、各圧縮ユニット群における先頭の圧縮ユニット１０のユニット番号（以下、圧縮ユニット群の先頭ユニット番号と称す）の情報が、各圧縮ユニット群のオフセットアドレスの情報と関連付けられて、管理データファイル７に記憶されている。
【００４５】
本実施形態では、管理データファイル７に、各圧縮ユニット群の先頭ユニット番号及びオフセットアドレスの情報が、ユニット群アドレス管理データとして、管理データファイル７に追加されている。各圧縮ユニット群の先頭ユニット番号及びオフセットアドレスの情報は、ユニット群番号の順で先頭アドレスから順に並べられ、１つのデータにまとめられて、ユニット群アドレス管理データとされている。
【００４６】
本例では、圧縮ユニット群の数は６４であるため、これら追加のデータ量は、２バイト×６４＋４バイト×６４の、３８４バイトになる。圧縮ユニット群の数が小さくなるように、ローカルアドレスを表すデータのデータ量と各圧縮ユニット群の圧縮ユニット数が設定されているので、微小なデータ量の増加に抑制されている。また、各圧縮ユニット１０のローカルアドレスを表すデータの、圧縮データファイル８全体での総データ量は、２バイト×５２４２９の、１０４８５８バイトになる。よって、各圧縮ユニット１０の先頭アドレスを表すための総データ量は、３８４バイト＋１０４８５８バイトの、１０５２４２バイトになる。比較例の２０９７１６バイトと比べると、管理データファイル７のデータ量を約半分に低減できている。
【００４７】
なお、本実施形態と異なり、各圧縮ユニット１０のローカルアドレスを表すデータのバイト数を、圧縮データファイル８全体の通しアドレスで表す場合に必要な４バイトの４分の１の１バイト（２８、８ビット）に設定する場合は、各圧縮ユニット群の圧縮ユニット数は、３前後になり、圧縮ユニット群の数は、１６３８４となる。この場合は、各圧縮ユニット１０の先頭アドレスを表すための総データ量は、６バイト×１６３８４＋１バイト×５２４２９の、２５０７３３バイトになる。比較例の２０９７１６バイトと比べると、管理データファイル７のデータ量が増加する。よって、各圧縮ユニット１０のローカルアドレスを表すデータのバイト数を、圧縮データファイル８全体の通しアドレスで表す場合に必要な４バイトの半分の２バイトに設定することで、管理データファイル７のデータ量を適切に低減できることがわかる。
【００４８】
＜各圧縮ユニット１０のデータ量を表すデータの削減＞
本実施形態では、図３（ｂ）に示すように、圧縮ユニット１０のそれぞれが、圧縮ユニット１０の圧縮データのデータ量（バイト数）の情報を、当該圧縮ユニット１０のデータの先頭部分に有するように構成されている。すなわち、図３及び図４に示すように、比較例では管理データファイル７に記憶されていた、各圧縮ユニット１０に含まれる圧縮データのデータ量の情報が、各圧縮ユニット１０のデータの先頭部分に埋め込まれて、管理データファイル７から削除されている。よって、比較例において、管理データファイル７に含まれた１０４８５８バイトのデータ量を、ゼロに低減することができる。また、各圧縮ユニット１０には、データの空き（空きデータ）が生じているため、圧縮ユニット１０にそのデータ量の情報（本例では２バイトのデータ量）を追加しても、圧縮データファイル８のデータ量の増加を抑制できる。
【００４９】
以上より、本実施形態では、管理データファイル７の総データ量は、１０５２４２バイトになり、比較例の３１４５７４バイトと比べると、約３分の１に低減できている。
【００５０】
＜管理データファイル７の他のデータ項目＞
図５に示すように、管理データファイル７は、上記した各圧縮ユニット１０の先頭アドレス等の情報に加えて、圧縮情報フラグの情報、ユニット数の情報、展開データファイル９のデータ量の情報などの情報を有するように構成されてもよい。また、管理データファイル７は、圧縮データファイル８又は展開データファイル９のファイル名の情報を有するように構成されてもよい。
圧縮情報フラグの情報には、圧縮データファイル８の圧縮方式を表す情報が含まれ、４バイト（３２ビット）のデータ量とされている。圧縮方式は、例えば、４バイトのデータの各ビットのオン／オフ（１／０）の組み合わせで表される。データ読出し部５は、圧縮情報フラグの情報に基づいて、圧縮データファイル８の圧縮方式及び展開方式を判定し、判定した展開方式で圧縮ユニット１０を展開するように構成されている。
ユニット数の情報には、圧縮ユニット１０及び展開ユニット１１のユニット数（本例では、５２４２９）の情報が含まれ、２バイト（１６ビット）のデータ量とされている。展開データファイル９のデータ量の情報には、セクタ単位又はバイト単位での、展開データファイル９のデータ量の情報が含まれ、４バイト（３２ビット）のデータ量とされている。
【００５１】
４．データ読出し部５の処理
次に、管理データファイル７に基づくデータ読出し部５の処理について説明する。
上記のように、データ読出し部５は、管理データファイル７に基づいて、圧縮データファイル８を圧縮ユニット１０単位で第二記憶装置３から読み出して第一記憶装置２に展開する。本実施形態では、データ読出し部５は、展開データファイル９のデータを利用するデータ利用部６から伝達されたデータの読出し要求に基づいて、読み出す圧縮ユニット１０である読み出しユニットを決定するように構成されている。
【００５２】
本実施形態では、図６のフローチャートに示すように、データ読出し部５は、データの読出し要求を取得した場合（ステップ♯０１）に、データの読出し要求に基づいて、読み出し対象の圧縮ユニット１０である読出しユニットと、当該読出しユニットが属する圧縮ユニット群である読出しユニット群とを決定する（ステップ♯０２）。データ読出し部５は、管理データファイル７から、読出しユニット群のオフセットアドレスの情報と読出しユニットのローカルアドレスの情報とを取得する（ステップ♯０３）。データ読み出し部５は、取得したオフセットアドレス及びローカルアドレスの情報に基づいて、圧縮データファイル８の全体を通して割り当てられた通しアドレスでの読出しユニットの先頭アドレスを決定する（ステップ♯０４）。データ読み出し部５は、当該先頭アドレスから所定区間（以下、読出しアドレス区間とも称す）のデータを読出しユニットのデータとして第二記憶装置３から読み出す（ステップ♯０５）。
【００５３】
また、本実施形態では、第二記憶装置３からのデータの読み出しは、セクタ単位で行われるため、読み出す際の先頭アドレス及び所定区間は、セクタ単位で決定される。また、本実施形態では、各圧縮ユニット１０のセクタ数は、８０セクタ前後で変化するため、データ読み出し部５が読み出す、先頭アドレスからの所定区間が、圧縮ユニット１０毎に変化する。そこで、データ読出し部５は、ステップ♯０３において、管理データファイル７から、読出しユニットに加えて、読出しユニットの次の圧縮ユニット１０（以下、隣接読出しユニットとも称する）に対応する、圧縮ユニット群のオフセットアドレスの情報と圧縮ユニット１０のローカルアドレスの情報とを取得するように構成されている。ここで、次の圧縮ユニット１０とは、次のアドレス及びユニット番号の圧縮ユニット１０を意味する。そして、データ読出し部５は、ステップ♯０４において、読出しユニットとその次の圧縮ユニット１０（隣接読出しユニット）とに対応するオフセットアドレス及びローカルアドレスの情報に基づいて、読出しアドレス区間を決定するように構成されている。そして、データ読み出し部５は、ステップ♯０５において、読出しアドレス区間のデータを読出しユニットのデータとして第二記憶装置３から読み出す。ここで、読出しアドレス区間は、圧縮データファイル８の全体を通して割り当てられた通しアドレスでの読出しユニットの先頭アドレスから最終アドレスまでのアドレス区間であり、上記した先頭アドレスから所定区間に対応する。
【００５４】
上記のように、圧縮ユニット１０のそれぞれが、圧縮ユニット１０の圧縮データのデータ量（バイト数）の情報を、当該圧縮ユニット１０のデータの先頭部分に有するように構成されている。
データ読み出し部５は、第二記憶装置３から読み出した読出しユニットのデータの先頭部分から、読出しユニットに含まれる圧縮データのデータ量の情報（バイト数）を取得する（ステップ♯０６）。そして、データ読み出し部５は、読出しユニットのデータからデータ量分のデータを取り出して第一記憶装置２に展開する（ステップ♯０７）。
【００５５】
より詳細には、データ読出し部５は、第二記憶装置３からセクタ単位で読み出した読出しユニットのデータから、圧縮データのデータ量の情報に対応する先頭部分のデータ（２バイト）と、空きデータに対応する、圧縮データのデータ量（バイト数）より後の部分のデータと、をバイト単位で除外して、読出しユニットに含まれていた圧縮データを取り出す。そして、データ読出し部５は、取り出した圧縮データに対して、展開方式に応じた展開処理を行って、圧縮データを圧縮前の元データ（展開ユニット１１）に復元し、当該展開ユニット１１を第一記憶装置２に書き込む。
なお、読出しユニットのデータの先頭部分から取得したデータ量の情報は、圧縮データを取り出すときに用いるだけなので、第一記憶装置２の記憶容量への影響はほぼ無視できる。また、先頭部分からデータ量の情報を取得する処理負荷もほぼ無視できる。
【００５６】
データの読出し要求として、圧縮データファイル８のアドレスが指定される場合と、展開データファイル９のアドレスが指定される場合とがある。それぞれの場合で、図６のステップ♯０２に対応する、読出しユニット群と読出しユニットの決定処理が異なる。
以下では、図７及び図８を用いて、圧縮データファイル８のアドレスが指定された場合の処理を説明し、図９及び図１０を用いて、展開データファイル９のアドレスが指定された場合の処理を説明する。
【００５７】
＜圧縮データファイル８の要求アドレスを取得した場合＞
まず、図７及び図８を用いて、データの読出し要求として、圧縮データファイル８のアドレスが指定された場合における、図６のステップ♯０２に対応する読出しユニット群と読出しユニットの決定処理を説明する。
この場合は、データの読出し要求には、圧縮データファイル８の全体を通して割り当てられた通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれる。
図７のフローチャートに示すように、データ読出し部５は、圧縮データファイル８の要求アドレスの情報を取得した場合（ステップ♯１１）に、管理データファイル７が有する、圧縮ユニット群それぞれのオフセットアドレスの情報を用いて、要求アドレスが含まれる圧縮ユニット群を読出しユニット群に決定する（ステップ♯１２）。データ読出し部５は、管理データファイル７から、読出しユニット群のオフセットアドレスの情報を取得する（ステップ♯１３）。そして、データ読出し部５は、管理データファイル７が有する、読出しユニット群に属する圧縮ユニット１０それぞれのローカルアドレスの情報を用いて、要求アドレスから読出しユニット群のオフセットアドレスを減算したアドレス（検索ローカルアドレス）が含まれる圧縮ユニット１０を読出しユニットに決定する（ステップ♯１４）。
【００５８】
図８に示す具体例を用いて、より詳細に説明する。
データ読出し部５は、取得した要求アドレスがバイト単位である場合は、要求アドレスをセクタ単位で表す。具体的には、バイト単位の要求アドレスが同じセクタに含まれるような、セクタ単位の要求アドレスを算出する。本実施形態では、データ読出し部５は、バイト単位の要求アドレスを、１セクタのバイト数である５１２バイトで除算し、小数点以下を切り捨てて、セクタ単位の要求アドレスを算出する。例えば、要求アドレスが６７１８８１８５０バイトである場合は、当該要求アドレスを５１２バイトで除算した値が、約１３１２２６９．２セクタになり、小数点以下を切り捨てて、１３１２２６９セクタの要求アドレスを算出する。
【００５９】
そして、データ読出し部５は、管理データファイル７のユニット群アドレス管理データが有する、セクタ単位で表された各圧縮ユニット群のオフセットアドレスの情報を用いて、セクタ単位で表された要求アドレスが含まれる（属する）圧縮ユニット群を読出しユニット群に決定する。本実施形態では、ユニット群アドレス管理データが有する各圧縮ユニット群のオフセットアドレスの情報を、最初のユニット群番号から番号順に、要求アドレスで検索して、要求アドレスが、どの番号のオフセットアドレスと、どの番号のオフセットアドレスの間にあるか判定する。すなわち、どの隣り合う番号のオフセットアドレス間にあるか判定する。そして、判定した隣り合う番号の内、小さい方のユニット群番号に対応する圧縮ユニット群を読出しユニット群に決定する。例えば、要求アドレスが１３１２２６９セクタである場合は、隣り合う２０番と２１番に対応する１３１２０００セクタと１３７７６００セクタとのオフセットアドレス間にあると判定され、小さい方の２０番に対応する圧縮ユニット群を読出し圧縮ユニット群に決定する。なお、ユニット群番号の順番は、ユニット群アドレス管理データのアドレスの順番に一致しており、データ読出し部５は、ユニット群アドレス管理データをアドレス順に検索することで、ユニット群番号順の検索を行うことができる。
データ読出し部５は、圧縮ユニット群数は６４と小さいため、要求アドレスでユニット群アドレス管理データを検索するのに要する処理負荷は非常に低い。
【００６０】
そして、データ読出し部５は、管理データファイル７から、読出しユニット群のオフセットアドレス及び先頭ユニット番号の情報を取得する。
データ読出し部５は、セクタ単位で表された要求アドレスから読出しユニット群のオフセットアドレスを減算したアドレスを、検索ローカルアドレスとして設定する。例えば、１３１２２６９セクタの要求アドレスから１３１２０００セクタのオフセットアドレスを減算した２６９セクタを、検索ローカルアドレスとして設定する。
【００６１】
そして、データ読出し部５は、読出しユニット群に属する圧縮ユニット１０それぞれのローカルアドレスの情報を用いて、検索ローカルアドレスが含まれる圧縮ユニット１０を読出しユニットに決定する。本実施形態では、ユニットアドレス管理データが有する各圧縮ユニット１０のローカルアドレスの情報を、読出しユニット群の先頭ユニット番号から番号順に、検索ローカルアドレスで検索して、検索ローカルアドレスが、どの番号のローカルアドレスと、どの番号のローカルアドレスの間にあるか判定する。すなわち、どの隣り合う番号のローカルアドレス間にあるか判定する。そして、判定した隣り合う番号の内、小さい方のユニット番号に対応する圧縮ユニット１０を読出しユニットに決定する。例えば、検索ローカルアドレスが２６９セクタである場合は、隣り合う１６４０３番と１６４０４番に対応する２３９セクタと３１９セクタとのローカルアドレス間にあると判定され、小さい方の１６４０３番のユニット番号に対応する圧縮ユニット１０を読出しユニットに決定する。なお、ユニット番号の順番は、ユニットアドレス管理データのアドレスの順番に一致しており、データ読出し部５は、ユニットアドレス管理データをアドレス順に検索することで、ユニット番号順の検索を行うことができる。
【００６２】
データ読出し部５は、読出しユニットとその次の圧縮ユニット１０（隣接読出しユニット）とに対応するオフセットアドレス及びローカルアドレスの情報に基づいて、読出しアドレス区間を決定する。具体的には、データ読出し部５は、読出しユニット群のオフセットアドレスと読出しユニットのローカルアドレスとを加算して、圧縮データファイル８全体の通しアドレスでの読出しユニットの先頭アドレスを決定する。データ読出し部５は、決定した読出しユニット群及び読出しユニットに基づいて、管理データファイル７から、隣接読出しユニットが属する圧縮ユニット群（以下、隣接読出しユニット群とも称す）のオフセットアドレス、及び隣接読出しユニットのローカルアドレスも取得するように構成されている。データ読出し部５は、隣接読出しユニット群のオフセットアドレスと隣接読出しユニットのローカルアドレスとを加算したアドレスから１セクタを減算して、圧縮データファイル８全体の通しアドレスでの読出しユニットの最終アドレスを決定する。例えば、データ読出し部５は、読出しユニットについて、１３１２０００セクタのオフセットアドレスと２３９セクタのローカルアドレスとを加算した１３１２２３９セクタを読出しユニットの先頭アドレスとして設定する。データ読出し部５は、隣接読出しアドレスについて、１３１２０００セクタのオフセットアドレスと３１９セクタのローカルアドレスとを加算した値から１セクタを減算した１３１２３１８セクタを読出しユニットの最終アドレスとして設定する。データ読出し部５は、１３１２２３９セクタの先頭アドレスから１３１２３１８セクタの最終アドレスまでを読出しアドレス区間として設定する。
【００６３】
＜展開データファイル９の要求アドレスを取得した場合＞
次に、図９及び図１０を用いて、データの読出し要求として、展開データファイル９のアドレスが指定された場合における、図６のステップ♯０２に対応する読出しユニット群と読出しユニットの決定処理を説明する。
この場合は、データの読出し要求には、展開データファイル９の全体を通して割り当てられた通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれる。
図９のフローチャートに示すように、データ読出し部５は、展開データファイル９の要求アドレスの情報を取得した場合（ステップ♯２１）に、要求アドレスと、展開データファイル９の１つの展開ユニット１１のデータ量とに基づいて、要求アドレスが含まれる展開データファイル９のユニット番号（以下、読出しユニット番号と称す）を決定する（ステップ♯２３）。そして、データ読出し部５は、当該読出しユニット番号に基づいて、読出しユニット群と読出しユニットとを決定する（ステップ♯２４）。
【００６４】
図１０に示す具体例を用いて、より詳細に説明する。
本実施形態では、データ読出し部５は、要求アドレスを、１つの展開ユニット１１のデータ量で除算し、小数点以下を切り捨てて、読出しユニット番号を算出する。例えば、要求アドレスが１００７８１８７５２バイトである場合は、当該要求アドレスを、１つの展開ユニット１１のデータ量である６１４４０バイトで除算した値が、約１６４０３．３番になり、小数点以下を切り捨てて、１６４０３番の読出しユニット番号を算出する。
【００６５】
そして、データ読出し部５は、管理データファイル７のユニット群アドレス管理データが有する、各圧縮ユニット群の先頭ユニット番号の情報を用いて、読出しユニット番号が含まれる（属する）圧縮ユニット群を読出しユニット群に決定する。本実施形態では、ユニット群アドレス管理データが有する各圧縮ユニット群の先頭ユニット番号の情報を、最初のユニット群番号から番号順に、読出しユニット番号で検索して、読出しユニット番号が、どの番号の先頭ユニット番号と、どの番号の先頭ユニット番号の間にあるか判定する。すなわち、どの隣り合う番号の先頭ユニット番号間にあるか判定する。そして、判定した隣り合う番号の内、小さい方の先頭ユニット番号に対応する圧縮ユニット群を読出しユニット群に決定する。例えば、読出しユニット番号が１６４０３番である場合は、隣り合う２０番と２１番に対応する１６４００番と１７２２２０番との先頭ユニット番号間にあると判定され、小さい方の２０番に対応する圧縮ユニット群を読出しユニット群に決定する。なお、ユニット群番号の順番は、ユニット群アドレス管理データのアドレスの順番に一致しており、データ読出し部５は、ユニット群アドレス管理データをアドレス順に検索することで、ユニット群番号順の検索を行うことができる。
そして、データ読出し部５は、管理データファイル７から、読出しユニット群のオフセットアドレスの情報を取得する。
【００６６】
また、データ読出し部５は、読出しユニット番号と同じユニット番号の圧縮ユニット１０を読出しユニットに決定する。なお、ユニット番号の順番は、ユニットアドレス管理データのアドレスの順番に一致しているので、データ読出し部５は、読出しユニット番号に対応したユニットアドレス管理データのアドレスから、読出しユニットのローカルアドレスの情報を取得する。
【００６７】
データ読出し部５は、上記した圧縮データファイル８のアドレスが指定された場合と同様の処理で、読出しユニットとその次の圧縮ユニット１０（隣接読出しユニット）とに対応するオフセットアドレス及びローカルアドレスの情報に基づいて、読出しアドレス区間を決定する。
【００６８】
なお、データの読出し要求に含まれる、展開データファイル９又は圧縮データファイル８の要求アドレスの情報が、１点のアドレスではなく、区間のアドレスで指定される場合は、そのアドレス区間の先頭アドレス及び最終アドレスなど、アドレス区間内の任意のアドレスを、上記の要求アドレスとして設定して、読出しユニット群と読出しユニットの決定処理を行うことができる。
【００６９】
〔その他の実施形態〕
最後に、本発明のその他の実施形態について説明する。なお、以下に説明する各実施形態の構成は、それぞれ単独で適用されるものに限られず、矛盾が生じない限り、他の実施形態の構成と組み合わせて適用することも可能である。
【００７０】
（１）上記の実施形態において、第一記憶装置２が、１バイト毎に読み書き可能な記憶装置であり、第二記憶装置３が、１バイトよりデータ量が大きい単位である１セクタ（５１２バイト）毎に少なくとも読み出し可能な記憶装置である場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、第二記憶装置３は、第一記憶装置２よりも、データを読み出す際のデータ量の単位が大きければよく、例えば、第二記憶装置３は、２バイト以上の所定のバイト数毎に読み出し可能な記憶装置とされてもよい。また、１セクタは、５１２バイト以外のバイト数、例えば、２０４８バイトに設定されてもよい。
また、第一記憶装置２が読み書きする際のデータ量の単位は、１バイト以外の所定のデータ量毎であってもよい。
【００７１】
（２）上記の実施形態において、圧縮が、バイト単位でデータ量を小さくする形式とされている場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、圧縮は、第二記憶装置３が読み出す際のデータ量の単位（セクタ単位）でデータ量を小さくする形式とされていてもよい。この場合は、圧縮ユニット１０に空きデータが生じないようにすることができるので、圧縮ユニット１０のそれぞれが、圧縮データのデータ量の情報を、当該圧縮ユニット１０のデータの先頭部分に有しないように構成されてもよい。また、データ読出し部５は、セクタ単位で読み出した圧縮ユニット１０のデータをそのまま展開するように構成されてもよい。
【００７２】
（３）上記の実施形態において、圧縮ユニット１０のそれぞれが、圧縮ユニット１０に含まれる圧縮データのデータ量の情報を、当該圧縮ユニット１０のデータの先頭部分に有する場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、圧縮ユニット１０のそれぞれが、圧縮ユニット１０に含まれる圧縮データのデータ量の情報を、各圧縮ユニット１０のデータのいずれかの部分、例えば最終部分に有するように構成されてもよい。
或いは、圧縮ユニット１０のそれぞれが、圧縮ユニット１０に含まれる圧縮データのデータ量の情報を、各圧縮ユニット１０のデータのいずれの部分にも有しないように構成されてもよい。この場合は、上記した比較例と同様に、管理データファイル７が、各圧縮ユニット１０に含まれる圧縮データのデータ量の情報を有するように構成されてもよい。
【００７３】
（４）上記の実施形態において、各圧縮ユニット群におけるローカルアドレスの最大値が、所定のデータ量のデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が圧縮ユニット群毎に調整されている場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、各圧縮ユニット群におけるローカルアドレスの最大値が、所定のデータ量のデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が、全ての圧縮ユニット群で同じ数になるように調整されるように構成されてもよい。この場合は、各圧縮ユニット群の先頭ユニット番号は、所定の圧縮ユニット数にユニット群番号を乗算するような演算で求めることができるため、管理データファイル７は、各圧縮ユニット群の先頭ユニット番号の情報を有しないように構成されてもよい。この場合は、データ読出し部５は、圧縮ユニット群に割り当てられた所定の圧縮ユニット数に各ユニット群番号を乗算した値のそれぞれを、各圧縮ユニット群の先頭ユニット番号として設定して、読出しユニット群と読出しユニットの決定処理に用いるように構成されてもよい。
【００７４】
（５）上記の実施形態において、各圧縮ユニット１０のデータ量（セクタ数）が、所定のデータ量（セクタ数）前後で圧縮ユニット毎に異なっている場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、各圧縮ユニット１０のデータ量（セクタ数）が、所定のデータ量（セクタ数）に設定され、圧縮ユニット１０毎に異ならないように構成されていてもよい。この場合は、圧縮ユニット１０のデータ量は、各圧縮ユニット１０に含まれる圧縮データのデータ量の最大値以上となる所定のデータ量に設定され、各圧縮ユニット１０のデータの空きが調整される。
【００７５】
（６）上記の実施形態において、圧縮データファイル８のデータ量が２ギガバイトであり、展開ユニット１１のデータ量が、１２８セクタに設定されており、圧縮ユニット１０のデータ量が、４０９６０バイト（８０セクタ）前後である場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、上記の２ギガバイト、１２８セクタ、４０９６０バイト（８０セクタ）は、例示であり、これら以外の所定のデータ量であってもよい。
【００７６】
（７）上記の実施形態において、各圧縮ユニット群の先頭ユニット番号を表すデータに２バイトのデータを用い、各圧縮ユニット群のオフセットアドレスを表すデータに４バイトのデータを用い、各圧縮ユニット１０のローカルアドレスを表すデータに２バイトのデータを用い、各圧縮ユニット１０に含まれる圧縮データのデータ量を表すデータに２バイトのデータを用いる場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、上記の２バイト、４バイト、２バイト、２バイトは、例示であり、これら以外の所定のバイト数であってもよい。
【００７７】
（８）上記の実施形態において、１バイトが８ビットである場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、１バイトが８ビット以外の所定のビット数であってもよい。
【産業上の利用可能性】
【００７８】
本発明は、第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムに好適に利用することができる。
【符号の説明】
【００７９】
１        ：データ読出しシステム
２        ：第一記憶装置
３        ：第二記憶装置
４        ：制御装置
５        ：データ読出し部
６        ：データ利用部
７        ：管理データファイル
８        ：圧縮データファイル
９        ：展開データファイル
１０      ：圧縮ユニット
１１      ：展開ユニット
【図１】
0005700252.tif 000002
【図２】
0005700252.tif 000003
【図３】
0005700252.tif 000004
【図４】
0005700252.tif 000005
【図５】
0005700252.tif 000006
【図６】
0005700252.tif 000007
【図７】
0005700252.tif 000008
【図８】
0005700252.tif 000009
【図９】
0005700252.tif 000010
【図１０】
0005700252.tif 000011