JP2013131146A - データ読出しシステム - Google Patents

データ読出しシステム Download PDF

Info

Publication number
JP2013131146A
JP2013131146A JP2011281842A JP2011281842A JP2013131146A JP 2013131146 A JP2013131146 A JP 2013131146A JP 2011281842 A JP2011281842 A JP 2011281842A JP 2011281842 A JP2011281842 A JP 2011281842A JP 2013131146 A JP2013131146 A JP 2013131146A
Authority
JP
Japan
Prior art keywords
data
unit
address
compression
data file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011281842A
Other languages
English (en)
Other versions
JP5700252B2 (ja
Inventor
Yoshihiro Tanabe
好宏 田邊
誠滋 ▲高▼畠
Masashige Takahata
Hajime Morikawa
元 森川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisin AW Co Ltd
Original Assignee
Aisin AW Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Aisin AW Co Ltd filed Critical Aisin AW Co Ltd
Priority to JP2011281842A priority Critical patent/JP5700252B2/ja
Publication of JP2013131146A publication Critical patent/JP2013131146A/ja
Application granted granted Critical
Publication of JP5700252B2 publication Critical patent/JP5700252B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】管理データファイルのデータ量を低減して、他のデータファイル又は演算処理のために第一記憶装置の記憶容量を確保できるデータ読出しシステムが求められる。
【解決手段】第二記憶装置の圧縮データファイルを読み出して第一記憶装置に展開するデータ読出しシステムであって、圧縮データファイルは、複数の圧縮ユニットにより構成され、前記第一記憶装置には、管理データファイルが常駐し、管理データファイルに基づいて、圧縮ユニット単位で第二記憶装置から読み出して第一記憶装置に展開するデータ読出し部を備え、管理データファイルは、圧縮データファイルを複数の圧縮ユニット群に分けて管理するように構成され、各圧縮ユニット群のオフセットアドレスの情報を有すると共に各圧縮ユニットのローカルアドレスの情報を有するデータ読出しシステム。
【選択図】図3

Description

本発明は、第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムに関する。
上記のようなデータ読出しシステムに関して、例えば下記の特許文献1に記載された技術が既に知られている。この特許文献1に記載されている技術は、元のデータファイルを所定のデータ量毎に複数のユニットに分割し、分割ユニットのそれぞれを圧縮して複数の圧縮ユニットを生成し、当該複数の圧縮ユニットを連結して圧縮データファイルを生成している。そして、特許文献1の技術では、圧縮データファイル中で各圧縮ユニットの配置を示すアドレス情報を有する管理データを、圧縮データファイルの先頭部分に配置している。そして、特許文献1の技術では、データ読出しシステムは、圧縮データファイルの先頭部分を参照し、読出し要求に対応する圧縮ユニットを、第二記憶装置に記憶された圧縮データファイルから読み出して、第一記憶装置に展開(解凍)するように構成されている。
ところで、データ読出しシステムでは、管理データを参照して読出し処理を行う際に、管理データを、中央処理装置(CPU)が直接読み書きできるRAMなどの一次記憶装置に読み出し、中央処理装置が、一次記憶装置に記憶された管理データファイルを参照して、読出し処理を行うように構成される場合がある。しかしながら、圧縮データファイルのデータ量が大きい場合は、圧縮ユニット数が大きくなり、各圧縮ユニットのアドレスの最大値が大きくなる場合がある。この場合は、各圧縮ユニットの先頭アドレスの数が大きくなり、先頭アドレスを表すデータのデータ量が大きくなるため、管理データファイルのデータ量が大きくなる。ここで、管理データファイルのデータ量は、圧縮ユニット数と先頭アドレスを表すデータのデータ量との乗算値に比例して大きくなる。
管理データファイルのデータ量が大きくなると、一次記憶装置の記憶容量における管理データファイルのデータ量の占める割合が増加し、他のデータファイル又は演算処理のために確保できる記憶容量が減少して他のデータファイルの記憶又は演算処理に制約が生じ、或いは記憶容量の大きい一次記憶装置を用いることが必要となってコスト上昇の要因となる恐れがあった。
しかしながら、特許文献1の技術では、このような課題に対して、特段の考慮はされていない。
特開2010−79535号公報
そこで、複数の圧縮ユニットを管理するための管理データファイルのデータ量を低減して、他のデータファイル又は演算処理のために第一記憶装置の記憶容量を確保することができるデータ読出しシステムが求められる。
本発明に係る、第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムの特徴構成は、前記第二記憶装置は、前記第一記憶装置よりも、記憶容量が大きいと共に、読み出し速度が遅く、前記圧縮データファイルは、1つの元データファイルを複数のユニットに分割して当該ユニット毎に圧縮してなる複数の圧縮ユニットにより構成され、前記第一記憶装置には、前記複数の圧縮ユニットを管理するための管理データファイルが常駐し、前記管理データファイルに基づいて、前記圧縮データファイルを前記圧縮ユニット単位で前記第二記憶装置から読み出して前記第一記憶装置に展開するデータ読出し部を備え、前記管理データファイルは、前記圧縮データファイルを構成する全ての前記圧縮ユニットを複数の圧縮ユニット群に分けて管理するように構成され、前記圧縮データファイルの全体を通して割り当てられた通しアドレスでの前記圧縮ユニット群それぞれの先頭アドレスであるオフセットアドレスの情報を有すると共に、各前記圧縮ユニット群内で割り当てられた前記圧縮ユニットそれぞれの先頭アドレスであるローカルアドレスの情報を有する点にある。
この特徴構成によれば、各圧縮ユニットの先頭アドレスが、各圧縮ユニット群内で割り当てられたローカルアドレスとされているので、圧縮データファイルの全体を通して割り当てられた通しアドレスの形式とされる場合よりも、圧縮データファイル全体における各圧縮ユニットの先頭アドレスの最大値を小さくできる。よって、小さいデータ量のデータを用いて、各圧縮ユニットの先頭アドレスを表現できる。
特に、圧縮データファイルのデータ量が大きく、圧縮データファイル全体の通しアドレスの最大値が大きい場合は、圧縮ユニット群内のローカルアドレス化により、各圧縮ユニットの先頭アドレスの情報を表すデータのデータ量を小さくできる。当該先頭アドレスの情報を表すデータの圧縮データファイル全体での総データ量は、圧縮ユニット数に比例するので、特に、圧縮データファイルのデータ量が大きく、圧縮ユニット数が大きい場合は、圧縮データファイル全体での総データ量の低減効果が大きくなる。
また、上記の特徴構成によれば、管理データファイルは、各圧縮ユニット群のオフセットアドレスの情報を表すデータを有するが、圧縮ユニット群数は、圧縮ユニット数より小さくなるので、オフセットアドレスの情報を表すデータの圧縮データファイル全体での総データ量の増加を抑制できるとともに、管理データファイル全体に対する増加割合を小さくできる。
従って、管理データファイルのデータ量を低減することが容易になり、他のデータファイル又は演算処理のために第一記憶装置の記憶容量を確保することが容易になる。
ここで、前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有すると好適である。
この構成によれば、各圧縮ユニットのデータ量の情報を、管理データファイルに有する必要がなくなり、管理データファイルのデータ量を低減することができる。また、各圧縮ユニットのデータ量が異なる場合でも、各圧縮ユニットの読出し処理を容易化できる。
ここで、前記管理データファイルは、それぞれの前記圧縮ユニット群の前記オフセットアドレスの情報に関連付けて、前記圧縮ユニット群のそれぞれにおける先頭の前記圧縮ユニットの識別符号の情報を有すると好適である。
この構成によれば、各圧縮ユニット群の先頭の圧縮ユニットが、圧縮データファイル内におけるどの圧縮ユニットであるか容易に識別可能になる。よって、データの読出し処理を容易化することが可能になる。
特に、各圧縮ユニット群に含まれる圧縮ユニット数が、圧縮ユニット群毎に異なる場合であっても、各圧縮ユニット群の先頭の圧縮ユニットと、圧縮データファイル内における圧縮ユニットの配置との対応を容易に識別することが可能になり、読出し処理を容易化できる。逆の視点では、上記のように構成されているので、圧縮ユニット数を圧縮ユニット群毎に異なるように設定することが容易になる。
また、管理データファイルは、圧縮ユニットの識別符号の情報を、各圧縮ユニット群の先頭の圧縮ユニットのみに有する構成とすることができる。その場合には、識別符号の情報を、全ての圧縮ユニットに有する場合に比べて、管理データファイルのデータ量を低減することができる。
ここで、前記データ読出し部は、データの読出し要求に基づいて、読み出し対象の前記圧縮ユニットである読出しユニットと、当該読出しユニットが属する前記圧縮ユニット群である読出しユニット群とを決定し、前記管理データファイルから、前記読出しユニット群の前記オフセットアドレスの情報と前記読出しユニットのローカルアドレスの情報とを取得して、前記通しアドレスでの前記読出しユニットの先頭アドレスを決定し、当該先頭アドレスから所定区間のデータを前記読出しユニットのデータとして前記第二記憶装置から読み出すと好適である。
この構成によれば、管理データファイルが有しているオフセットアドレスの情報と、ローカルアドレスの情報とを用いて、第二記憶装置から読出しユニットを読み出すことができる。
ここで、前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有し、前記データ読出し部は、前記第二記憶装置から読み出した前記読出しユニットのデータの先頭部分から、前記データ量の情報を取得し、前記読出しユニットのデータから前記データ量分のデータを取り出して前記第一記憶装置に展開すると好適である。
この構成によれば、読み出した読出しユニットのデータの先頭部分に含まれる、読出しユニットのデータ量の情報を用いて、読出しユニットのデータから展開するデータ量分のデータを取り出すことができる。
また、圧縮ユニットのデータに、展開される圧縮データの他に空きデータが含まれる場合であっても、読み出した読出しユニットのデータから空きデータを除いて、展開するデータ量分のデータを取り出すことができる。
ここで、前記データの読出し要求には、前記圧縮データファイルの全体を通して割り当てられた前記通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、前記データ読出し部は、前記圧縮ユニット群それぞれの前記オフセットアドレスの情報を用いて、前記要求アドレスが含まれる前記圧縮ユニット群を前記読出しユニット群に決定し、前記読出しユニット群に属する前記圧縮ユニットそれぞれの前記ローカルアドレスの情報を用いて、前記要求アドレスから前記読出しユニット群のオフセットアドレスを減算したアドレスが含まれる前記圧縮ユニットを前記読出しユニットに決定すると好適である。
この構成によれば、各圧縮ユニット群のオフセットアドレスの情報を用いて、圧縮データファイルの要求アドレスが含まれる圧縮ユニット群を判定して、読み出しユニット群を決定することができる。
また、要求アドレスから読出しユニット群のオフセットアドレスを減算したアドレスを算出することにより、読出しユニット群内でローカルアドレス化された要求アドレスを算出することができる。そして、読出しユニット群に属する各圧縮ユニットのローカルアドレスの情報を用いて、ローカルアドレス化された要求アドレスが含まれる圧縮ユニットを判定して、読み出しユニットを決定することできる。
従って、データの読出し要求に、圧縮データファイルの要求アドレスの情報が含まれる場合であっても、管理データファイルを用いて、読み出しユニット群と読み出しユニットを決定することができ、データの読出し処理を進めることができる。
ここで、前記データの読出し要求には、前記元データファイルの全体を通して割り当てられたアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、前記データ読出し部は、前記要求アドレスと、前記元データファイルの1つのユニットのデータ量とに基づいて、前記要求アドレスが含まれる前記元データファイルのユニット番号を決定し、当該ユニット番号に基づいて、前記読出しユニット群と前記読出しユニットとを決定すると好適である。
この構成によれば、展開データファイルの要求アドレスと、元データファイルの1つのユニットのデータ量とに基づいて、要求アドレスが含まれる元データファイルのユニット番号を決定し、当該ユニット番号に基づいて、読出しユニット群と読出しユニットとを決定することができる。
従って、データの読出し要求に、展開データファイルの要求アドレスの情報が含まれる場合であっても、読み出しユニット群と読み出しユニットを決定することができ、データの読出し処理を進めることができる。
本発明の実施形態に係るデータ読出しシステムの構成を示すブロック図である。 本発明の実施形態に係る展開データファイルと圧縮データファイルを説明するための図である。 本発明の実施形態及びその比較例に係る圧縮データファイル及び管理データファイルの構成を説明するための図である。 本発明の実施形態及びその比較例に係る管理データファイルの構成を説明するための図である。 本発明の実施形態及びその比較例に係る管理データファイルの構成を説明するための図である。 本発明の実施形態に係るデータ読出し部の処理を説明するためのフローチャートである。 本発明の実施形態に係るデータ読出し部の処理を説明するためのフローチャートである。 本発明の実施形態に係るデータ読出し部の処理を説明するための図である。 本発明の実施形態に係るデータ読出し部の処理を説明するためのフローチャートである。 本発明の実施形態に係るデータ読出し部の処理を説明するための図である。
本発明の実施形態について図面に基づいて説明する。図1は、本実施形態に係るデータ読出しシステム1の構成を模式的に示すブロック図である。データ読出しシステム1は、第二記憶装置3に記憶された圧縮データファイル8の一部を読み出して第一記憶装置2に展開するシステムである。第二記憶装置3は、第一記憶装置2よりも、記憶容量が大きいと共に、読み出し速度が遅い。
図1及び図2に示すように、圧縮データファイル8は、1つの元データファイルである展開データファイル9を複数のユニットに分割して当該ユニット毎に圧縮してなる複数の圧縮ユニット10により構成されている。図1に示すように、第一記憶装置2には、複数の圧縮ユニット10を管理するための管理データファイル7が常駐している。データ読出しシステム1に備えられたデータ読出し部5は、管理データファイル7に基づいて、圧縮データファイル8を圧縮ユニット10単位で第二記憶装置3から読み出して第一記憶装置2に展開する。本実施形態では、データ読出し部5は、展開データファイル9のデータを利用するデータ利用部6から伝達されたデータの読出し要求に基づいて、読み出す圧縮ユニット10である読み出しユニットを決定するように構成されている。
本実施形態では、制御装置4が、データ読出し部5、データ利用部6、及び第一記憶装置2を備えるように構成されている。制御装置4は、演算処理装置であり、中央処理装置(CPU)、ROM、RAM、I/Oインターフェース、これらを接続するバスなどを備えて構成される。データ読出し部5及びデータ利用部6は、ハードウェアまたはソフトウェア(プログラム)或いはその両方により実装されて構成されている。ここで、データ読出し部5及びデータ利用部6がソフトウェア(プログラム)により構成される場合には、当該ソフトウェアは、中央処理装置(CPU)が参照可能なRAMやROM等に記憶されており、中央処理装置(CPU)が当該ソフトウェアを参照して演算処理を行うことにより、データ読出し部5及びデータ利用部6の機能が発揮されるように構成される。
また、本実施形態では、管理データファイル7は、第二記憶装置3に記憶されており、データ読出し部5が、第二記憶装置3から管理データファイル7を読み出して、第一記憶装置2に常駐(コピー、記憶)させるように構成されている。
このような構成において、図3及び図4に示すように、管理データファイル7は、圧縮データファイル8を構成する全ての圧縮ユニット10を複数の圧縮ユニット10の群(以下、単に「圧縮ユニット群」と称す)に分けて管理するように構成され、圧縮データファイル8の全体を通して割り当てられた通しアドレスでの圧縮ユニット群それぞれの先頭アドレスであるオフセットアドレスの情報を有すると共に、各圧縮ユニット群内で割り当てられた圧縮ユニット10それぞれの先頭アドレスであるローカルアドレスの情報を有するように構成されている。
以下、本実施形態に係るデータ読出しシステム1の構成について詳細に説明する。
1.記憶装置
第二記憶装置3は、第一記憶装置2よりも、記憶容量が大きいと共に、読み出し速度が遅い。本実施形態では、第一記憶装置2は、いわゆる一次記憶装置とされ、第二記憶装置3は、二次記憶装置とされている。一次記憶装置とは、中央処理装置(CPU)が直接読み書きできる記憶装置である。二次記憶装置とは、中央処理装置(CPU)が入出力装置を介して読み書きできる記憶装置である。一次記憶装置は、二次記憶装置より読み書き速度が比較的速いが、記憶容量が比較的小さく、二次記憶装置は、一次記憶装置より読み書き速度が比較的遅いが、記憶容量が比較的大きい。二次記憶装置に大容量のデータが記憶されるように構成され、中央処理装置(CPU)は、二次記憶装置から適宜必要なデータを読み出して一次記憶装置に転送して処理に用いるように構成されている。
また、第二記憶装置3は、第一記憶装置2よりも、データを読み出す際のデータ量の単位が大きい。本実施形態では、第一記憶装置2と制御装置4の中央処理装置(CPU)との間でデータを読み書きする際のデータ量の単位は、1バイト(byte)に設定されている。第二記憶装置3と制御装置4の中央処理装置(CPU)との間でデータを読み書きする際のデータ量の単位は、1バイト(byte)よりデータ量が大きい単位である1セクタ(sector)に設定されている。本実施形態では、1セクタは、512バイト(byte)に設定されている。すなわち、第一記憶装置2は、1バイト毎に読み書き可能な記憶装置であり、第二記憶装置3は、1バイトよりデータ量が大きい1セクタ(512バイト)毎に少なくとも読み出し可能な記憶装置である。
第一記憶装置2は、読み書き可能な記憶装置とされ、RAM(Random Access Memory)などにより構成される。第二記憶装置3は、少なくとも読み出し可能な記憶装置とされ、ハードディスク、DVD−ROM、フラッシュメモリなどにより構成される。本実施形態では、1つの制御装置4に対して1つの第二記憶装置3が備えられている。しかし、複数の制御装置4に対して1つの第二記憶装置3が備えられていてもよい。この場合は、複数の制御装置4と第二記憶装置3との間が、電話回線、インターネット、及びローカルネット等の各種通信網を介して接続される。本実施形態では、第二記憶装置3と制御装置との間は、有線接続されているが、無線通信装置などを介して無線接続されていてもよい。
2.圧縮データファイル8
図2に示すように、圧縮データファイル8は、1つの元データファイル(展開データファイル9)を複数のユニット(展開ユニット11)に分割して当該ユニット毎に圧縮してなる複数の圧縮ユニット10により構成されている。本実施形態では、図2(a)に示すように、展開データファイル9は、圧縮のために、展開データファイル9の先頭アドレスから順に所定のセクタ数毎に区切られて、複数の展開ユニット11に分割される。本例では、展開データファイル9におけるユニットを区切るセクタ数は、128セクタに設定されており、1つの展開ユニット11のデータ量は、128セクタ(65536バイト)とされている。なお、ユニットを区切るセクタ数は、128以外のセクタ数に設定されてもよい。
そして、展開データファイル9の各展開ユニット11が、個別に圧縮されたものが圧縮ユニット10となる。ここで、圧縮とは、コンピュータで元データを加工又は変換する処理を行って、そのデータ量を小さくすることである。展開とは、圧縮されたデータをコンピュータで加工又は変換する処理を行って、圧縮前の元データに復元することである。圧縮には、各種方式があり、各圧縮方式に応じた圧縮処理により、データの加工又は変換が行われる。展開には、各圧縮方式に対応した各種方式があり、各展開方式に応じた展開処理により、データの加工又は変換が行われる。本実施形態では、圧縮は、バイト単位でデータ量を小さくする形式とされている。本実施形態では、128セクタ、65536バイトの展開ユニット11のデータ量が、40960バイト前後のデータ量に圧縮される場合を例に説明する。データ量の圧縮率は、元データの内容、圧縮方式に応じて変化する。このため、図2に示すように、圧縮後のデータ量は、展開ユニット11毎に40960バイト前後で変化している。なお、40960バイトは、セクタ単位では80セクタになる。
そして、複数の圧縮データが、圧縮前の展開ユニット11と同じ順番(ユニット番号の順)で先頭アドレスから順に並べられ、1つのファイルにまとめられて、圧縮データファイル8とされている。この際、第二記憶装置3から圧縮ユニット10を読み出す際のデータ量の単位がセクタであるため、各圧縮データの先頭アドレスは、セクタ単位のアドレスに一致するように調整されて並べられている。このため、バイト単位のデータ量を有する圧縮データと、圧縮ユニット10のセクタ単位の区切りとの間にデータの空き(空きデータ)が生じている。本実施形態では、圧縮データは、圧縮ユニット10の先頭アドレス寄りに詰めて配置されており、圧縮ユニット10の最終アドレス部に空きが生じている。
3.管理データファイル7
データ読出し部5が、圧縮データファイル8を圧縮ユニット10単位で第二記憶装置3から読み出す際に、圧縮データファイル8の全体を通して割り当てられた通しアドレスでの、読み出す圧縮ユニット10の先頭アドレス(セクタ単位)と最終アドレス(セクタ単位)が必要になる。
<展開データファイル9>
比較のために、まず展開データファイル9について説明する。展開データファイル9では、各展開ユニット11のセクタ数(データ量)は、展開ユニット11毎に異なっておらず、同じセクタ数(本例では、128セクタ)に設定されている。よって、展開データファイル9の全体を通して割り当てられた通しアドレスでの展開ユニット11それぞれの先頭アドレスは、所定のセクタ数(本例では、128セクタ)ずつ増加していく。例えば、各展開ユニット11の通しアドレスでの先頭アドレスは、所定のセクタ数(本例では、128セクタ)に、各展開ユニット11のユニット番号を乗算した値になる。ここで、展開ユニット11のユニット番号は、展開データファイル9の全体を通して割り当てられた通し番号であり、先頭アドレスがより小さいユニットから順に、0から1つずつ増加していく。このため、各展開ユニット11の先頭アドレスと最終アドレスは、そのユニット番号に基づいて容易に求められる。
<圧縮データファイル8>
一方、圧縮データファイル8では、各圧縮ユニット10のセクタ数(データ量)は、所定のセクタ数前後(本例では、80セクタ前後)で圧縮ユニット10毎に異なっている。よって、圧縮データファイル8の全体を通して割り当てられた通しアドレスでの圧縮ユニット10それぞれの先頭アドレスは、圧縮ユニット10毎に異なるセクタ数ずつ増加していく。このため、各圧縮ユニット10の先頭アドレスと最終アドレスは、上記の展開ユニット11ように所定のセクタ数にユニット番号を乗算するような演算では求められず、圧縮ユニット10毎に管理される必要がある。このため、各圧縮ユニット10の先頭アドレスと最終アドレスの情報を、管理データファイル7で管理できるように構成されている。
本実施形態では、圧縮ユニット10のデータには、圧縮データと空きデータとが含まれており、データ読出し部5は、読み出した圧縮ユニット10のデータから、圧縮データに対応するデータ量分のデータを取り出して展開するように構成されており、各圧縮ユニット10に含まれる圧縮データのデータ量の情報が必要になる。各圧縮ユニット10に含まれる圧縮データのデータ量(バイト数)は、圧縮ユニット10のセクタ数が同じでも、圧縮ユニット10毎に異なっている。このため、各圧縮ユニット10に含まれる圧縮データのデータ量(バイト数)の情報は、管理される必要がある。なお、圧縮ユニット10に含まれる圧縮データのデータ量が、本発明における「圧縮ユニットのデータ量」に相当する。
<比較例>
本実施形態とは異なる、本実施形態と比較するための比較例では、図3(a)、図4(a)に示すように、各圧縮ユニット10の先頭アドレスの情報は、圧縮データファイル8の全体を通して割り当てられた通しアドレスの形式で、ユニットアドレス管理データとして、管理データファイル7に記憶されている。例えば、圧縮データファイル8のデータ量が、2ギガバイト(231バイト)の場合は、圧縮データファイル8の全体を通して割り当てられた通しアドレスの最大値は、セクタ単位(1セクタ=2バイト)で、222セクタになる。当該セクタ単位での通しアドレスの最大値(222)は、2バイト(16ビット、216)のデータを用いて表現できないため、比較例では、4バイト(32ビット、232)のデータを用いて表現されている。1つの圧縮ユニット10のセクタ数が概ね80セクタであるとすると、圧縮データファイル8のデータ量が2ギガバイト(222セクタ)の場合は、圧縮ユニット10の数は、52429となる。
よって、比較例では、各圧縮ユニット10の先頭アドレスを表すデータの、圧縮データファイル8全体での総データ量は、4バイト×52429の、209716バイトになる。
また、比較例では、各圧縮ユニット10に含まれる圧縮データのデータ量(バイト数)の情報は、ユニットデータ量管理データとして、管理データファイル7に記憶されている。例えば、各圧縮ユニット10に含まれる圧縮データのデータ量は、当該データ量が40960バイト(215.32バイト)前後で変化する場合は、2バイト(16ビット、216)のデータを用いて表現できる。よって、比較例では、各圧縮ユニット10に含まれる圧縮データのデータ量の、圧縮データファイル8全体での総データ量は、2バイト×52429の、104858バイトになる。
以上より、比較例では、管理データファイル7の総データ量は、ユニットアドレス管理データとユニットデータ量管理データとを足し合わせた、314574バイトになる。
<本実施形態>
<各圧縮ユニット10の先頭アドレスを表すデータ量の低減>
本実施形態では、図3(b)、図4(b)に示すように、各圧縮ユニット10の先頭アドレスの情報は、圧縮データファイル8を構成する全ての圧縮ユニット10を複数の圧縮ユニット群に分けて管理されるように構成されている。具体的には、圧縮ユニット群それぞれの先頭アドレス(以下、オフセットアドレスと称す)の情報が、圧縮データファイル8の全体を通して割り当てられた通しアドレスの形式で、ユニット群アドレス管理データとして管理データファイル7に追加的に記憶されている。
各圧縮ユニット10それぞれの先頭アドレス(以下、ローカルアドレスと称す)の情報は、比較例における圧縮データファイル8全体の通しアドレスの形式から、各圧縮ユニット群内で割り当てられたローカルアドレスの形式に変更されて、ユニットアドレス管理データとして管理データファイル7に記憶されている。各圧縮ユニット10のローカルアドレスの情報は、ユニット番号の順で先頭アドレスから順に並べられ、1つのデータにまとめられて、ユニットアドレス管理データとされている。ここで、ユニット番号は、圧縮データファイル8の全体を通して割り当てられた圧縮ユニット10の通し番号であり、圧縮データファイル8全体の通しアドレスでの先頭アドレスがより小さい圧縮ユニット10から順に0から1つずつ増加していく。また、ユニット群番号は、圧縮データファイル8の全体を通して割り当てられた圧縮ユニット群の通し番号であり、オフセットアドレスがより小さい圧縮ユニット群から順に0から1つずつ増加していく。
圧縮ユニット群のオフセットアドレスと圧縮ユニット10のローカルアドレスとを足し合わせた値が、圧縮データファイル8全体の通しアドレスでの圧縮ユニット10の先頭アドレスとなる。なお、各圧縮ユニット群のオフセットアドレス及び各圧縮ユニット10のローカルアドレスは、通しアドレスでの圧縮ユニット10の先頭アドレスと同じセクタ単位とされている。
各圧縮ユニット群のオフセットアドレスを表すデータのデータ量(バイト数)は、圧縮データファイル8全体の通しアドレスであるため、当該通しアドレスで表す場合に必要なデータ量(バイト数)に設定されている。本例のように、圧縮データファイル8のデータ量が2ギガバイト(222セクタ)の場合は、各圧縮ユニット群のオフセットアドレスを表すデータのバイト数は、4バイト(32ビット、232)に設定されている。
また、各圧縮ユニット10のローカルアドレスを表すデータのデータ量(バイト数)は、圧縮データファイル8全体の通しアドレスで表す場合に必要なデータ量(バイト数)の半分のデータ量(バイト数)に設定されている。本例では、各圧縮ユニット10のローカルアドレスを表すデータのバイト数は、圧縮データファイル8全体の通しアドレスで表す場合に必要な4バイトの半分の2バイト(16ビット)に設定されている。
本実施形態では、各圧縮ユニット群におけるローカルアドレスの最大値が、通しアドレスで表す場合に必要なデータ量の半分のデータ量に設定されたデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が、圧縮ユニット群毎に調整されている。本例では、各圧縮ユニット群におけるローカルアドレスの最大値が、4バイトの半分の2バイトのデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が調整されている。本例のように、各圧縮ユニット10のデータ量が、80セクタ(26.32セクタ)前後で変化する場合は、2バイト(16ビット)のデータで表現できる最大値65535を80セクタで除算した値が約819.2になるので、各圧縮ユニット群の圧縮ユニット数は、820前後に調整される。2ギガバイトのデータ量に対応して、全体で52429のユニット数を有する圧縮データファイル8を、820前後の圧縮ユニット数を有する圧縮ユニット群に分割すると、52429を820で除算した値が約63.9になるので、圧縮ユニット群の数は概ね64となる。
本実施形態では、各圧縮ユニット群のローカルアドレスの最大値が、設定されたデータ量(バイト数)のデータを用いて表現できる最大値以下の範囲内で最大になるように、アドレス及びユニット群番号が小さい圧縮ユニット群から順に、各圧縮ユニット群に割り当てる圧縮ユニット数が設定されている。本例では、各圧縮ユニット群のローカルアドレスの最大値が、2バイト(16ビット)のデータを用いて表現できる最大値である65535以下の範囲内で最大になるように、アドレス及びユニット群番号が小さい圧縮ユニット群から順に、各圧縮ユニット群の圧縮ユニット数が設定されている。例えば、次の圧縮ユニット10のローカルアドレスが、65535を超える場合には、当該次の圧縮ユニット10から、次の圧縮ユニット群に割り当てて、当該次の圧縮ユニット10のローカルアドレスをゼロに設定する。このような方法で、圧縮ユニット群を割り当てると、全ての圧縮ユニット10のローカルアドレスを、必ず2バイトのデータで表現できるとともに、圧縮ユニット群の数を最小化することができる。特に、圧縮ユニット10間でデータ量が大きく変化する場合であっても、精度良く割り当てることができる。
この割り当て方法では、各圧縮ユニット群の圧縮ユニット数は820前後で変化し、各圧縮ユニット群における先頭の圧縮ユニット10のユニット番号は、展開データファイル9のように、所定の圧縮ユニット数にユニット群番号を乗算するような簡単な演算では求められない。このため、各圧縮ユニット群における先頭の圧縮ユニット10のユニット番号(以下、圧縮ユニット群の先頭ユニット番号と称す)の情報が、各圧縮ユニット群のオフセットアドレスの情報と関連付けられて、管理データファイル7に記憶されている。
本実施形態では、管理データファイル7に、各圧縮ユニット群の先頭ユニット番号及びオフセットアドレスの情報が、ユニット群アドレス管理データとして、管理データファイル7に追加されている。各圧縮ユニット群の先頭ユニット番号及びオフセットアドレスの情報は、ユニット群番号の順で先頭アドレスから順に並べられ、1つのデータにまとめられて、ユニット群アドレス管理データとされている。
本例では、圧縮ユニット群の数は64であるため、これら追加のデータ量は、2バイト×64+4バイト×64の、384バイトになる。圧縮ユニット群の数が小さくなるように、ローカルアドレスを表すデータのデータ量と各圧縮ユニット群の圧縮ユニット数が設定されているので、微小なデータ量の増加に抑制されている。また、各圧縮ユニット10のローカルアドレスを表すデータの、圧縮データファイル8全体での総データ量は、2バイト×52429の、104858バイトになる。よって、各圧縮ユニット10の先頭アドレスを表すための総データ量は、384バイト+104858バイトの、105242バイトになる。比較例の209716バイトと比べると、管理データファイル7のデータ量を約半分に低減できている。
なお、本実施形態と異なり、各圧縮ユニット10のローカルアドレスを表すデータのバイト数を、圧縮データファイル8全体の通しアドレスで表す場合に必要な4バイトの4分の1の1バイト(2、8ビット)に設定する場合は、各圧縮ユニット群の圧縮ユニット数は、3前後になり、圧縮ユニット群の数は、16384となる。この場合は、各圧縮ユニット10の先頭アドレスを表すための総データ量は、6バイト×16384+1バイト×52429の、250733バイトになる。比較例の209716バイトと比べると、管理データファイル7のデータ量が増加する。よって、各圧縮ユニット10のローカルアドレスを表すデータのバイト数を、圧縮データファイル8全体の通しアドレスで表す場合に必要な4バイトの半分の2バイトに設定することで、管理データファイル7のデータ量を適切に低減できることがわかる。
<各圧縮ユニット10のデータ量を表すデータの削減>
本実施形態では、図3(b)に示すように、圧縮ユニット10のそれぞれが、圧縮ユニット10の圧縮データのデータ量(バイト数)の情報を、当該圧縮ユニット10のデータの先頭部分に有するように構成されている。すなわち、図3及び図4に示すように、比較例では管理データファイル7に記憶されていた、各圧縮ユニット10に含まれる圧縮データのデータ量の情報が、各圧縮ユニット10のデータの先頭部分に埋め込まれて、管理データファイル7から削除されている。よって、比較例において、管理データファイル7に含まれた104858バイトのデータ量を、ゼロに低減することができる。また、各圧縮ユニット10には、データの空き(空きデータ)が生じているため、圧縮ユニット10にそのデータ量の情報(本例では2バイトのデータ量)を追加しても、圧縮データファイル8のデータ量の増加を抑制できる。
以上より、本実施形態では、管理データファイル7の総データ量は、105242バイトになり、比較例の314574バイトと比べると、約3分の1に低減できている。
<管理データファイル7の他のデータ項目>
図5に示すように、管理データファイル7は、上記した各圧縮ユニット10の先頭アドレス等の情報に加えて、圧縮情報フラグの情報、ユニット数の情報、展開データファイル9のデータ量の情報などの情報を有するように構成されてもよい。また、管理データファイル7は、圧縮データファイル8又は展開データファイル9のファイル名の情報を有するように構成されてもよい。
圧縮情報フラグの情報には、圧縮データファイル8の圧縮方式を表す情報が含まれ、4バイト(32ビット)のデータ量とされている。圧縮方式は、例えば、4バイトのデータの各ビットのオン/オフ(1/0)の組み合わせで表される。データ読出し部5は、圧縮情報フラグの情報に基づいて、圧縮データファイル8の圧縮方式及び展開方式を判定し、判定した展開方式で圧縮ユニット10を展開するように構成されている。
ユニット数の情報には、圧縮ユニット10及び展開ユニット11のユニット数(本例では、52429)の情報が含まれ、2バイト(16ビット)のデータ量とされている。展開データファイル9のデータ量の情報には、セクタ単位又はバイト単位での、展開データファイル9のデータ量の情報が含まれ、4バイト(32ビット)のデータ量とされている。
4.データ読出し部5の処理
次に、管理データファイル7に基づくデータ読出し部5の処理について説明する。
上記のように、データ読出し部5は、管理データファイル7に基づいて、圧縮データファイル8を圧縮ユニット10単位で第二記憶装置3から読み出して第一記憶装置2に展開する。本実施形態では、データ読出し部5は、展開データファイル9のデータを利用するデータ利用部6から伝達されたデータの読出し要求に基づいて、読み出す圧縮ユニット10である読み出しユニットを決定するように構成されている。
本実施形態では、図6のフローチャートに示すように、データ読出し部5は、データの読出し要求を取得した場合(ステップ♯01)に、データの読出し要求に基づいて、読み出し対象の圧縮ユニット10である読出しユニットと、当該読出しユニットが属する圧縮ユニット群である読出しユニット群とを決定する(ステップ♯02)。データ読出し部5は、管理データファイル7から、読出しユニット群のオフセットアドレスの情報と読出しユニットのローカルアドレスの情報とを取得する(ステップ♯03)。データ読み出し部5は、取得したオフセットアドレス及びローカルアドレスの情報に基づいて、圧縮データファイル8の全体を通して割り当てられた通しアドレスでの読出しユニットの先頭アドレスを決定する(ステップ♯04)。データ読み出し部5は、当該先頭アドレスから所定区間(以下、読出しアドレス区間とも称す)のデータを読出しユニットのデータとして第二記憶装置3から読み出す(ステップ♯05)。
また、本実施形態では、第二記憶装置3からのデータの読み出しは、セクタ単位で行われるため、読み出す際の先頭アドレス及び所定区間は、セクタ単位で決定される。また、本実施形態では、各圧縮ユニット10のセクタ数は、80セクタ前後で変化するため、データ読み出し部5が読み出す、先頭アドレスからの所定区間が、圧縮ユニット10毎に変化する。そこで、データ読出し部5は、ステップ♯03において、管理データファイル7から、読出しユニットに加えて、読出しユニットの次の圧縮ユニット10(以下、隣接読出しユニットとも称する)に対応する、圧縮ユニット群のオフセットアドレスの情報と圧縮ユニット10のローカルアドレスの情報とを取得するように構成されている。ここで、次の圧縮ユニット10とは、次のアドレス及びユニット番号の圧縮ユニット10を意味する。そして、データ読出し部5は、ステップ♯04において、読出しユニットとその次の圧縮ユニット10(隣接読出しユニット)とに対応するオフセットアドレス及びローカルアドレスの情報に基づいて、読出しアドレス区間を決定するように構成されている。そして、データ読み出し部5は、ステップ♯05において、読出しアドレス区間のデータを読出しユニットのデータとして第二記憶装置3から読み出す。ここで、読出しアドレス区間は、圧縮データファイル8の全体を通して割り当てられた通しアドレスでの読出しユニットの先頭アドレスから最終アドレスまでのアドレス区間であり、上記した先頭アドレスから所定区間に対応する。
上記のように、圧縮ユニット10のそれぞれが、圧縮ユニット10の圧縮データのデータ量(バイト数)の情報を、当該圧縮ユニット10のデータの先頭部分に有するように構成されている。
データ読み出し部5は、第二記憶装置3から読み出した読出しユニットのデータの先頭部分から、読出しユニットに含まれる圧縮データのデータ量の情報(バイト数)を取得する(ステップ♯06)。そして、データ読み出し部5は、読出しユニットのデータからデータ量分のデータを取り出して第一記憶装置2に展開する(ステップ♯07)。
より詳細には、データ読出し部5は、第二記憶装置3からセクタ単位で読み出した読出しユニットのデータから、圧縮データのデータ量の情報に対応する先頭部分のデータ(2バイト)と、空きデータに対応する、圧縮データのデータ量(バイト数)より後の部分のデータと、をバイト単位で除外して、読出しユニットに含まれていた圧縮データを取り出す。そして、データ読出し部5は、取り出した圧縮データに対して、展開方式に応じた展開処理を行って、圧縮データを圧縮前の元データ(展開ユニット11)に復元し、当該展開ユニット11を第一記憶装置2に書き込む。
なお、読出しユニットのデータの先頭部分から取得したデータ量の情報は、圧縮データを取り出すときに用いるだけなので、第一記憶装置2の記憶容量への影響はほぼ無視できる。また、先頭部分からデータ量の情報を取得する処理負荷もほぼ無視できる。
データの読出し要求として、圧縮データファイル8のアドレスが指定される場合と、展開データファイル9のアドレスが指定される場合とがある。それぞれの場合で、図6のステップ♯02に対応する、読出しユニット群と読出しユニットの決定処理が異なる。
以下では、図7及び図8を用いて、圧縮データファイル8のアドレスが指定された場合の処理を説明し、図9及び図10を用いて、展開データファイル9のアドレスが指定された場合の処理を説明する。
<圧縮データファイル8の要求アドレスを取得した場合>
まず、図7及び図8を用いて、データの読出し要求として、圧縮データファイル8のアドレスが指定された場合における、図6のステップ♯02に対応する読出しユニット群と読出しユニットの決定処理を説明する。
この場合は、データの読出し要求には、圧縮データファイル8の全体を通して割り当てられた通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれる。
図7のフローチャートに示すように、データ読出し部5は、圧縮データファイル8の要求アドレスの情報を取得した場合(ステップ♯11)に、管理データファイル7が有する、圧縮ユニット群それぞれのオフセットアドレスの情報を用いて、要求アドレスが含まれる圧縮ユニット群を読出しユニット群に決定する(ステップ♯12)。データ読出し部5は、管理データファイル7から、読出しユニット群のオフセットアドレスの情報を取得する(ステップ♯13)。そして、データ読出し部5は、管理データファイル7が有する、読出しユニット群に属する圧縮ユニット10それぞれのローカルアドレスの情報を用いて、要求アドレスから読出しユニット群のオフセットアドレスを減算したアドレス(検索ローカルアドレス)が含まれる圧縮ユニット10を読出しユニットに決定する(ステップ♯14)。
図8に示す具体例を用いて、より詳細に説明する。
データ読出し部5は、取得した要求アドレスがバイト単位である場合は、要求アドレスをセクタ単位で表す。具体的には、バイト単位の要求アドレスが同じセクタに含まれるような、セクタ単位の要求アドレスを算出する。本実施形態では、データ読出し部5は、バイト単位の要求アドレスを、1セクタのバイト数である512バイトで除算し、小数点以下を切り捨てて、セクタ単位の要求アドレスを算出する。例えば、要求アドレスが671881850バイトである場合は、当該要求アドレスを512バイトで除算した値が、約1312269.2セクタになり、小数点以下を切り捨てて、1312269セクタの要求アドレスを算出する。
そして、データ読出し部5は、管理データファイル7のユニット群アドレス管理データが有する、セクタ単位で表された各圧縮ユニット群のオフセットアドレスの情報を用いて、セクタ単位で表された要求アドレスが含まれる(属する)圧縮ユニット群を読出しユニット群に決定する。本実施形態では、ユニット群アドレス管理データが有する各圧縮ユニット群のオフセットアドレスの情報を、最初のユニット群番号から番号順に、要求アドレスで検索して、要求アドレスが、どの番号のオフセットアドレスと、どの番号のオフセットアドレスの間にあるか判定する。すなわち、どの隣り合う番号のオフセットアドレス間にあるか判定する。そして、判定した隣り合う番号の内、小さい方のユニット群番号に対応する圧縮ユニット群を読出しユニット群に決定する。例えば、要求アドレスが1312269セクタである場合は、隣り合う20番と21番に対応する1312000セクタと1377600セクタとのオフセットアドレス間にあると判定され、小さい方の20番に対応する圧縮ユニット群を読出し圧縮ユニット群に決定する。なお、ユニット群番号の順番は、ユニット群アドレス管理データのアドレスの順番に一致しており、データ読出し部5は、ユニット群アドレス管理データをアドレス順に検索することで、ユニット群番号順の検索を行うことができる。
データ読出し部5は、圧縮ユニット群数は64と小さいため、要求アドレスでユニット群アドレス管理データを検索するのに要する処理負荷は非常に低い。
そして、データ読出し部5は、管理データファイル7から、読出しユニット群のオフセットアドレス及び先頭ユニット番号の情報を取得する。
データ読出し部5は、セクタ単位で表された要求アドレスから読出しユニット群のオフセットアドレスを減算したアドレスを、検索ローカルアドレスとして設定する。例えば、1312269セクタの要求アドレスから1312000セクタのオフセットアドレスを減算した269セクタを、検索ローカルアドレスとして設定する。
そして、データ読出し部5は、読出しユニット群に属する圧縮ユニット10それぞれのローカルアドレスの情報を用いて、検索ローカルアドレスが含まれる圧縮ユニット10を読出しユニットに決定する。本実施形態では、ユニットアドレス管理データが有する各圧縮ユニット10のローカルアドレスの情報を、読出しユニット群の先頭ユニット番号から番号順に、検索ローカルアドレスで検索して、検索ローカルアドレスが、どの番号のローカルアドレスと、どの番号のローカルアドレスの間にあるか判定する。すなわち、どの隣り合う番号のローカルアドレス間にあるか判定する。そして、判定した隣り合う番号の内、小さい方のユニット番号に対応する圧縮ユニット10を読出しユニットに決定する。例えば、検索ローカルアドレスが269セクタである場合は、隣り合う16403番と16404番に対応する239セクタと319セクタとのローカルアドレス間にあると判定され、小さい方の16403番のユニット番号に対応する圧縮ユニット10を読出しユニットに決定する。なお、ユニット番号の順番は、ユニットアドレス管理データのアドレスの順番に一致しており、データ読出し部5は、ユニットアドレス管理データをアドレス順に検索することで、ユニット番号順の検索を行うことができる。
データ読出し部5は、読出しユニットとその次の圧縮ユニット10(隣接読出しユニット)とに対応するオフセットアドレス及びローカルアドレスの情報に基づいて、読出しアドレス区間を決定する。具体的には、データ読出し部5は、読出しユニット群のオフセットアドレスと読出しユニットのローカルアドレスとを加算して、圧縮データファイル8全体の通しアドレスでの読出しユニットの先頭アドレスを決定する。データ読出し部5は、決定した読出しユニット群及び読出しユニットに基づいて、管理データファイル7から、隣接読出しユニットが属する圧縮ユニット群(以下、隣接読出しユニット群とも称す)のオフセットアドレス、及び隣接読出しユニットのローカルアドレスも取得するように構成されている。データ読出し部5は、隣接読出しユニット群のオフセットアドレスと隣接読出しユニットのローカルアドレスとを加算したアドレスから1セクタを減算して、圧縮データファイル8全体の通しアドレスでの読出しユニットの最終アドレスを決定する。例えば、データ読出し部5は、読出しユニットについて、1312000セクタのオフセットアドレスと239セクタのローカルアドレスとを加算した1312239セクタを読出しユニットの先頭アドレスとして設定する。データ読出し部5は、隣接読出しアドレスについて、1312000セクタのオフセットアドレスと319セクタのローカルアドレスとを加算した値から1セクタを減算した1312318セクタを読出しユニットの最終アドレスとして設定する。データ読出し部5は、1312239セクタの先頭アドレスから1312318セクタの最終アドレスまでを読出しアドレス区間として設定する。
<展開データファイル9の要求アドレスを取得した場合>
次に、図9及び図10を用いて、データの読出し要求として、展開データファイル9のアドレスが指定された場合における、図6のステップ♯02に対応する読出しユニット群と読出しユニットの決定処理を説明する。
この場合は、データの読出し要求には、展開データファイル9の全体を通して割り当てられた通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれる。
図9のフローチャートに示すように、データ読出し部5は、展開データファイル9の要求アドレスの情報を取得した場合(ステップ♯21)に、要求アドレスと、展開データファイル9の1つの展開ユニット11のデータ量とに基づいて、要求アドレスが含まれる展開データファイル9のユニット番号(以下、読出しユニット番号と称す)を決定する(ステップ♯23)。そして、データ読出し部5は、当該読出しユニット番号に基づいて、読出しユニット群と読出しユニットとを決定する(ステップ♯24)。
図10に示す具体例を用いて、より詳細に説明する。
本実施形態では、データ読出し部5は、要求アドレスを、1つの展開ユニット11のデータ量で除算し、小数点以下を切り捨てて、読出しユニット番号を算出する。例えば、要求アドレスが1007818752バイトである場合は、当該要求アドレスを、1つの展開ユニット11のデータ量である61440バイトで除算した値が、約16403.3番になり、小数点以下を切り捨てて、16403番の読出しユニット番号を算出する。
そして、データ読出し部5は、管理データファイル7のユニット群アドレス管理データが有する、各圧縮ユニット群の先頭ユニット番号の情報を用いて、読出しユニット番号が含まれる(属する)圧縮ユニット群を読出しユニット群に決定する。本実施形態では、ユニット群アドレス管理データが有する各圧縮ユニット群の先頭ユニット番号の情報を、最初のユニット群番号から番号順に、読出しユニット番号で検索して、読出しユニット番号が、どの番号の先頭ユニット番号と、どの番号の先頭ユニット番号の間にあるか判定する。すなわち、どの隣り合う番号の先頭ユニット番号間にあるか判定する。そして、判定した隣り合う番号の内、小さい方の先頭ユニット番号に対応する圧縮ユニット群を読出しユニット群に決定する。例えば、読出しユニット番号が16403番である場合は、隣り合う20番と21番に対応する16400番と172220番との先頭ユニット番号間にあると判定され、小さい方の20番に対応する圧縮ユニット群を読出しユニット群に決定する。なお、ユニット群番号の順番は、ユニット群アドレス管理データのアドレスの順番に一致しており、データ読出し部5は、ユニット群アドレス管理データをアドレス順に検索することで、ユニット群番号順の検索を行うことができる。
そして、データ読出し部5は、管理データファイル7から、読出しユニット群のオフセットアドレスの情報を取得する。
また、データ読出し部5は、読出しユニット番号と同じユニット番号の圧縮ユニット10を読出しユニットに決定する。なお、ユニット番号の順番は、ユニットアドレス管理データのアドレスの順番に一致しているので、データ読出し部5は、読出しユニット番号に対応したユニットアドレス管理データのアドレスから、読出しユニットのローカルアドレスの情報を取得する。
データ読出し部5は、上記した圧縮データファイル8のアドレスが指定された場合と同様の処理で、読出しユニットとその次の圧縮ユニット10(隣接読出しユニット)とに対応するオフセットアドレス及びローカルアドレスの情報に基づいて、読出しアドレス区間を決定する。
なお、データの読出し要求に含まれる、展開データファイル9又は圧縮データファイル8の要求アドレスの情報が、1点のアドレスではなく、区間のアドレスで指定される場合は、そのアドレス区間の先頭アドレス及び最終アドレスなど、アドレス区間内の任意のアドレスを、上記の要求アドレスとして設定して、読出しユニット群と読出しユニットの決定処理を行うことができる。
〔その他の実施形態〕
最後に、本発明のその他の実施形態について説明する。なお、以下に説明する各実施形態の構成は、それぞれ単独で適用されるものに限られず、矛盾が生じない限り、他の実施形態の構成と組み合わせて適用することも可能である。
(1)上記の実施形態において、第一記憶装置2が、1バイト毎に読み書き可能な記憶装置であり、第二記憶装置3が、1バイトよりデータ量が大きい単位である1セクタ(512バイト)毎に少なくとも読み出し可能な記憶装置である場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、第二記憶装置3は、第一記憶装置2よりも、データを読み出す際のデータ量の単位が大きければよく、例えば、第二記憶装置3は、2バイト以上の所定のバイト数毎に読み出し可能な記憶装置とされてもよい。また、1セクタは、512バイト以外のバイト数、例えば、2048バイトに設定されてもよい。
また、第一記憶装置2が読み書きする際のデータ量の単位は、1バイト以外の所定のデータ量毎であってもよい。
(2)上記の実施形態において、圧縮が、バイト単位でデータ量を小さくする形式とされている場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、圧縮は、第二記憶装置3が読み出す際のデータ量の単位(セクタ単位)でデータ量を小さくする形式とされていてもよい。この場合は、圧縮ユニット10に空きデータが生じないようにすることができるので、圧縮ユニット10のそれぞれが、圧縮データのデータ量の情報を、当該圧縮ユニット10のデータの先頭部分に有しないように構成されてもよい。また、データ読出し部5は、セクタ単位で読み出した圧縮ユニット10のデータをそのまま展開するように構成されてもよい。
(3)上記の実施形態において、圧縮ユニット10のそれぞれが、圧縮ユニット10に含まれる圧縮データのデータ量の情報を、当該圧縮ユニット10のデータの先頭部分に有する場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、圧縮ユニット10のそれぞれが、圧縮ユニット10に含まれる圧縮データのデータ量の情報を、各圧縮ユニット10のデータのいずれかの部分、例えば最終部分に有するように構成されてもよい。
或いは、圧縮ユニット10のそれぞれが、圧縮ユニット10に含まれる圧縮データのデータ量の情報を、各圧縮ユニット10のデータのいずれの部分にも有しないように構成されてもよい。この場合は、上記した比較例と同様に、管理データファイル7が、各圧縮ユニット10に含まれる圧縮データのデータ量の情報を有するように構成されてもよい。
(4)上記の実施形態において、各圧縮ユニット群におけるローカルアドレスの最大値が、所定のデータ量のデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が圧縮ユニット群毎に調整されている場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、各圧縮ユニット群におけるローカルアドレスの最大値が、所定のデータ量のデータを用いて表現できるように、各圧縮ユニット群に割り当てられる圧縮ユニット数が、全ての圧縮ユニット群で同じ数になるように調整されるように構成されてもよい。この場合は、各圧縮ユニット群の先頭ユニット番号は、所定の圧縮ユニット数にユニット群番号を乗算するような演算で求めることができるため、管理データファイル7は、各圧縮ユニット群の先頭ユニット番号の情報を有しないように構成されてもよい。この場合は、データ読出し部5は、圧縮ユニット群に割り当てられた所定の圧縮ユニット数に各ユニット群番号を乗算した値のそれぞれを、各圧縮ユニット群の先頭ユニット番号として設定して、読出しユニット群と読出しユニットの決定処理に用いるように構成されてもよい。
(5)上記の実施形態において、各圧縮ユニット10のデータ量(セクタ数)が、所定のデータ量(セクタ数)前後で圧縮ユニット毎に異なっている場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、各圧縮ユニット10のデータ量(セクタ数)が、所定のデータ量(セクタ数)に設定され、圧縮ユニット10毎に異ならないように構成されていてもよい。この場合は、圧縮ユニット10のデータ量は、各圧縮ユニット10に含まれる圧縮データのデータ量の最大値以上となる所定のデータ量に設定され、各圧縮ユニット10のデータの空きが調整される。
(6)上記の実施形態において、圧縮データファイル8のデータ量が2ギガバイトであり、展開ユニット11のデータ量が、128セクタに設定されており、圧縮ユニット10のデータ量が、40960バイト(80セクタ)前後である場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、上記の2ギガバイト、128セクタ、40960バイト(80セクタ)は、例示であり、これら以外の所定のデータ量であってもよい。
(7)上記の実施形態において、各圧縮ユニット群の先頭ユニット番号を表すデータに2バイトのデータを用い、各圧縮ユニット群のオフセットアドレスを表すデータに4バイトのデータを用い、各圧縮ユニット10のローカルアドレスを表すデータに2バイトのデータを用い、各圧縮ユニット10に含まれる圧縮データのデータ量を表すデータに2バイトのデータを用いる場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、上記の2バイト、4バイト、2バイト、2バイトは、例示であり、これら以外の所定のバイト数であってもよい。
(8)上記の実施形態において、1バイトが8ビットである場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。すなわち、1バイトが8ビット以外の所定のビット数であってもよい。
本発明は、第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムに好適に利用することができる。
1 :データ読出しシステム
2 :第一記憶装置
3 :第二記憶装置
4 :制御装置
5 :データ読出し部
6 :データ利用部
7 :管理データファイル
8 :圧縮データファイル
9 :展開データファイル
10 :圧縮ユニット
11 :展開ユニット

Claims (7)

  1. 第二記憶装置に記憶された圧縮データファイルの一部を読み出して第一記憶装置に展開するデータ読出しシステムであって、
    前記第二記憶装置は、前記第一記憶装置よりも、記憶容量が大きいと共に、読み出し速度が遅く、
    前記圧縮データファイルは、1つの元データファイルを複数のユニットに分割して当該ユニット毎に圧縮してなる複数の圧縮ユニットにより構成され、
    前記第一記憶装置には、前記複数の圧縮ユニットを管理するための管理データファイルが常駐し、
    前記管理データファイルに基づいて、前記圧縮データファイルを前記圧縮ユニット単位で前記第二記憶装置から読み出して前記第一記憶装置に展開するデータ読出し部を備え、
    前記管理データファイルは、前記圧縮データファイルを構成する全ての前記圧縮ユニットを複数の圧縮ユニット群に分けて管理するように構成され、前記圧縮データファイルの全体を通して割り当てられた通しアドレスでの前記圧縮ユニット群それぞれの先頭アドレスであるオフセットアドレスの情報を有すると共に、各前記圧縮ユニット群内で割り当てられた前記圧縮ユニットそれぞれの先頭アドレスであるローカルアドレスの情報を有する、データ読出しシステム。
  2. 前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有する請求項1に記載のデータ読出しシステム。
  3. 前記管理データファイルは、それぞれの前記圧縮ユニット群の前記オフセットアドレスの情報に関連付けて、前記圧縮ユニット群のそれぞれにおける先頭の前記圧縮ユニットの識別符号の情報を有する請求項1又は2に記載のデータ読出しシステム。
  4. 前記データ読出し部は、データの読出し要求に基づいて、読み出し対象の前記圧縮ユニットである読出しユニットと、当該読出しユニットが属する前記圧縮ユニット群である読出しユニット群とを決定し、前記管理データファイルから、前記読出しユニット群の前記オフセットアドレスの情報と前記読出しユニットのローカルアドレスの情報とを取得して、前記通しアドレスでの前記読出しユニットの先頭アドレスを決定し、当該先頭アドレスから所定区間のデータを前記読出しユニットのデータとして前記第二記憶装置から読み出す請求項1から3のいずれか一項に記載のデータ読出しシステム。
  5. 前記圧縮ユニットのそれぞれが、当該圧縮ユニットのデータ量の情報を、当該圧縮ユニットのデータの先頭部分に有し、
    前記データ読出し部は、前記第二記憶装置から読み出した前記読出しユニットのデータの先頭部分から、前記データ量の情報を取得し、前記読出しユニットのデータから前記データ量分のデータを取り出して前記第一記憶装置に展開する請求項4に記載のデータ読出しシステム。
  6. 前記データの読出し要求には、前記圧縮データファイルの全体を通して割り当てられた前記通しアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、
    前記データ読出し部は、前記圧縮ユニット群それぞれの前記オフセットアドレスの情報を用いて、前記要求アドレスが含まれる前記圧縮ユニット群を前記読出しユニット群に決定し、前記読出しユニット群に属する前記圧縮ユニットそれぞれの前記ローカルアドレスの情報を用いて、前記要求アドレスから前記読出しユニット群のオフセットアドレスを減算したアドレスが含まれる前記圧縮ユニットを前記読出しユニットに決定する請求項4又は5に記載のデータ読出しシステム。
  7. 前記データの読出し要求には、前記元データファイルの全体を通して割り当てられたアドレスでの、読み出しが要求されたデータのアドレスである要求アドレスの情報が含まれ、
    前記データ読出し部は、前記要求アドレスと、前記元データファイルの1つのユニットのデータ量とに基づいて、前記要求アドレスが含まれる前記元データファイルのユニット番号を決定し、当該ユニット番号に基づいて、前記読出しユニット群と前記読出しユニットとを決定する請求項4又は5に記載のデータ読出しシステム。
JP2011281842A 2011-12-22 2011-12-22 データ読出しシステム Active JP5700252B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011281842A JP5700252B2 (ja) 2011-12-22 2011-12-22 データ読出しシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011281842A JP5700252B2 (ja) 2011-12-22 2011-12-22 データ読出しシステム

Publications (2)

Publication Number Publication Date
JP2013131146A true JP2013131146A (ja) 2013-07-04
JP5700252B2 JP5700252B2 (ja) 2015-04-15

Family

ID=48908624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011281842A Active JP5700252B2 (ja) 2011-12-22 2011-12-22 データ読出しシステム

Country Status (1)

Country Link
JP (1) JP5700252B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512800A (ja) * 1991-07-04 1993-01-22 Matsushita Electric Ind Co Ltd データ圧縮機能を備えた情報記録再生装置と情報記録媒体
JPH0869400A (ja) * 1994-08-30 1996-03-12 Sony Corp 圧縮データ記録方法
JPH1185583A (ja) * 1997-09-10 1999-03-30 Teac Corp 画像記録媒体及び画像再生方法
JP2002232844A (ja) * 2001-02-02 2002-08-16 Matsushita Electric Ind Co Ltd 情報記録媒体、録画装置及び方法、再生装置及び方法並びにプログラム記憶媒体
JP2007180670A (ja) * 2005-12-27 2007-07-12 Sony Corp 再生装置、再生方法および再生プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512800A (ja) * 1991-07-04 1993-01-22 Matsushita Electric Ind Co Ltd データ圧縮機能を備えた情報記録再生装置と情報記録媒体
JPH0869400A (ja) * 1994-08-30 1996-03-12 Sony Corp 圧縮データ記録方法
JPH1185583A (ja) * 1997-09-10 1999-03-30 Teac Corp 画像記録媒体及び画像再生方法
JP2002232844A (ja) * 2001-02-02 2002-08-16 Matsushita Electric Ind Co Ltd 情報記録媒体、録画装置及び方法、再生装置及び方法並びにプログラム記憶媒体
JP2007180670A (ja) * 2005-12-27 2007-07-12 Sony Corp 再生装置、再生方法および再生プログラム

Also Published As

Publication number Publication date
JP5700252B2 (ja) 2015-04-15

Similar Documents

Publication Publication Date Title
JP5162701B2 (ja) 統合重複排除システム、データ格納装置、及びサーバ装置
US20160321015A1 (en) Controller, data storage device, and computer program product
US9305005B2 (en) Merging entries in a deduplication index
JP2017511521A (ja) フラッシュメモリ圧縮
JP2012525633A5 (ja)
WO2014188528A1 (ja) メモリ装置、計算機システム及びメモリ装置の制御方法
US8189912B2 (en) Efficient histogram storage
JP2012074026A5 (ja)
JPWO2014147671A1 (ja) 圧縮装置、圧縮方法、伸張装置、伸張方法および情報処理システム
JP7261317B2 (ja) 圧縮データの記憶及び取得の最適化
CN110908589A (zh) 数据文件的处理方法、装置、系统和存储介质
JP2010061518A (ja) データ保存装置及びデータ保存方法並びにプログラム
US9122620B2 (en) Storage system with reduced hash key memory
JP2016139309A (ja) 文字データ変換プログラム、文字データ変換装置および文字データ変換方法
US20150161158A1 (en) Method of compressing compression target data, method of decompressing data in file, and system
US9455740B2 (en) Data compression apparatus and method
WO2014097359A1 (ja) 圧縮プログラム、圧縮方法、圧縮装置およびシステム
US9798793B1 (en) Method for recovering an index on a deduplicated storage system
KR20180014124A (ko) 정보 처리 장치 및 데이터 관리 방법
CN117112004A (zh) 差分数据确定方法、差分还原方法、装置、设备及介质
JP5700252B2 (ja) データ読出しシステム
US9219497B2 (en) Compression device, compression method, and recording medium
US10083121B2 (en) Storage system and storage method
JP6931442B2 (ja) 符号化プログラム、インデックス生成プログラム、検索プログラム、符号化装置、インデックス生成装置、検索装置、符号化方法、インデックス生成方法および検索方法
CN112241336A (zh) 用于备份数据的方法、设备和计算机程序产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140320

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150204

R150 Certificate of patent or registration of utility model

Ref document number: 5700252

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150