(57)【要約】  圧縮率の低下の抑制を図りつつデータを記憶する処理を高速化する。  圧縮処理部（１ａ）は、データが分割された分割ブロックについてアルゴリズム実行部（１ａ１，１ａ２）により複数種類の圧縮ブロックを生成する。比較処理部（１ｂ）は、最もサイズが小さい圧縮ブロックの比較結果情報を記憶部（１ｅ）に記憶させる。書き込み開始判定部（１ｃ）は、比較結果情報で示された圧縮ブロックのサイズの書き込み速度で除した商が経過時間以下であると判定した場合には、書き込みブロックの書き込み処理と次のブロックの圧縮処理との開始を決定する。書き込み処理部（１ｄ）は、生成された圧縮ブロックのうち開始が決定された時点において最もサイズが小さい圧縮ブロックを書き込みブロック（１ｆ１〜１ｆ３，・・・）として決定してブロック記憶部（１ｆ）に書き込む。
2012025974.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックに分割された記憶対象のデータについて、分割ブロック毎に、圧縮した圧縮ブロックの書き込みと並行して次の分割ブロックの圧縮を行うデータ記憶装置であって、
記憶対象のデータの１つの分割ブロックをそれぞれ異なるアルゴリズムで並行して圧縮して圧縮ブロックを生成するアルゴリズム実行部を複数有し、前記複数のアルゴリズム実行部により１つの分割ブロックについて複数種類の圧縮ブロックを生成する圧縮処理部と、
前記圧縮処理部で生成された圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶する記憶部と、
各アルゴリズム実行部で生成された圧縮ブロックのサイズを比較し、前記圧縮ブロックのうち最もサイズが小さい圧縮ブロックの比較結果情報を前記記憶部に記憶させる比較処理部と、
圧縮ブロックを書き込み可能なブロック記憶部と、
前記記憶部に記憶されている比較結果情報で示された圧縮ブロックのサイズを、当該圧縮ブロックの書き込み処理における書き込み速度で除した商が、１つ前の分割ブロックの圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定し、前記商が前記経過時間以下であると判定した場合には、前記生成された圧縮ブロックの前記ブロック記憶部への書き込み処理と前記記憶対象のデータの次のブロックの圧縮処理とを開始を決定する書き込み開始判定部と、
前記書き込み開始判定部により開始が決定された場合、前記記憶部に記憶されている比較結果情報に基づいて、前記圧縮処理部で生成された圧縮ブロックのうち書き込み開始判定部により開始が決定された時点において最もサイズが小さい圧縮ブロックを書き込みブロックとして決定し、前記決定した書き込みブロックを前記ブロック記憶部に書き込む書き込み処理部と、
を有することを特徴とするデータ記憶装置。
【請求項２】
前記比較処理部は、前記アルゴリズム実行部で生成された圧縮ブロックのサイズと共に圧縮していない分割ブロックのサイズを比較し、前記アルゴリズム実行部の各々で生成された圧縮ブロックおよび前記分割ブロックのうち最もサイズが小さいブロックの比較結果情報を前記記憶部に記憶させることを特徴とする請求の範囲第１項記載のデータ記憶装置。
【請求項３】
前記書き込み開始判定部は、前記開始判定において、前記圧縮処理部による分割ブロックの圧縮処理が開始してから所定時間が経過したか否かを判定し、前記所定時間が経過したと判定した場合には、前記生成された圧縮ブロックの前記ブロック記憶部への書き込み処理と前記記憶対象のデータの次のブロックの圧縮処理との開始を決定することを特徴とする請求の範囲第１項記載のデータ記憶装置。
【請求項４】
前記書き込み開始判定部は、前記開始判定において、すべてのアルゴリズム実行部による分割ブロックの圧縮処理が完了したか否かを判定し、すべてのアルゴリズム実行部による圧縮処理が完了したと判定した場合には、前記生成された圧縮ブロックの前記ブロック記憶部への書き込み処理と前記記憶対象のデータの次のブロックの圧縮処理との開始を決定することを特徴とする請求の範囲第１項記載のデータ記憶装置。
【請求項５】
前記比較処理部は、前記アルゴリズム実行部において圧縮処理が完了する都度、前記記憶部に記憶されている比較結果情報に示されている圧縮ブロックのサイズと前記アルゴリズム実行部で新たに生成された圧縮ブロックのサイズとを比較し、前記アルゴリズム実行部で新たに生成された圧縮ブロックのサイズの方が小さい場合には、前記アルゴリズム実行部で新たに生成された圧縮ブロックの比較結果情報により前記記憶部に記憶されている比較結果情報を更新することを特徴とする請求の範囲第１項記載のデータ記憶装置。
【請求項６】
前記書き込み開始判定部は、前記書き込み処理部による１つ前の書き込みブロックの書き込み処理が完了した場合には、前記開始判定を行うことを特徴とする請求の範囲第１項記載のデータ記憶装置。
【請求項７】
前記書き込み開始判定部は、前記比較処理部により前記記憶部に記憶されている比較結果情報が更新された場合に、前記開始判定を行うことを特徴とする請求の範囲第１項記載のデータ記憶装置。
【請求項８】
前記書き込み開始判定部は、所定時間経過毎に、前記開始判定を行うことを特徴とする請求の範囲第１項記載のデータ記憶装置。
【請求項９】
複数のブロックに分割された記憶対象のデータについて、分割ブロック毎に、圧縮した圧縮ブロックの書き込みと並行して次の分割ブロックの圧縮を行うデータ記憶装置制御方法であって、
圧縮処理部が、それぞれ異なるアルゴリズムで並行して圧縮する複数のアルゴリズム実行部により記憶対象のデータの１つの分割ブロックを圧縮して、複数種類の圧縮ブロックを生成し、
比較処理部が、複数のアルゴリズム実行部で生成された圧縮ブロックのサイズを比較し、前記圧縮ブロックのうち最もサイズが小さい圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶部に記憶させ、
書き込み開始判定部が、前記記憶部に記憶されている比較結果情報が示す圧縮ブロックのサイズを書き込み処理時の書き込み速度で除した商が、１つ前の分割ブロックの圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定し、
前記商が前記経過時間以下であると判定した場合には、前記圧縮ブロックのブロック記憶部への書き込み処理と、前記記憶対象のデータの次のブロックの圧縮処理の開始とを決定し、
書き込み処理部が、前記書き込み開始判定部により開始が決定された場合、前記記憶部に記憶されている比較結果情報に基づいて、前記書き込み開始判定部により開始が決定された時点で前記圧縮処理部で生成された圧縮ブロックのうち最もサイズが小さい圧縮ブロックを書き込みブロックとして決定し、
決定した書き込みブロックをブロック記憶部に書き込む、
ことを特徴とするデータ記憶装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、データ記憶装置およびデータ記憶装置制御方法に関する。
【背景技術】
【０００２】
従来、情報処理システムでは、使用するデータをハードディスクドライブ（ＨＤＤ：Hard Disk Drive）等のストレージ装置に記憶すると共に、ストレージ装置に記憶しているデータは、障害の発生等に備えてバックアップする等、情報処理システムでは一般的に、記憶媒体に大量にデータを保存する作業が行われている。ここで、例えばバックアップの際には、大容量であって記憶容量あたりのコストに優れた磁気テープ（magnetic tape）が記憶媒体として使用される場合がある。また、データの書き込み時において、データを圧縮してから書き込むことにより、データ量を削減して記憶媒体の利用効率を向上させることが行われている。【０００３】
また、データを圧縮して記憶媒体に書き込む場合、データを複数のブロックに分割して、分割したブロックを圧縮する処理と、圧縮したブロックを記憶媒体に書き込む処理とを並行して行うことにより、全体の処理時間の短縮を図ることが知られている。また、このような場合に、同一のブロックを複数の異なるアルゴリズムで圧縮し、最も圧縮率のよいブロックを書き込む技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２９３２２４号公報
【特許文献２】特開２０００−２２２２５７号公報
【特許文献３】特表２００４−５３５７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、データの書き込み時にデータを分割したブロックを圧縮する処理と、圧縮したブロックを書き込む処理を並行して行った場合には、ブロックを圧縮する処理が完了しても、１つ前の圧縮したブロックが書き込み中であった場合、書き込みが完了するまで次の圧縮したブロックの書き込みを開始することができず、圧縮処理に待ち時間が生じてしまう場合がある。また、圧縮したブロックの書き込みが完了したときにも、次のブロックがまだ圧縮中であった場合、圧縮が完了するまで次のブロックの書き込みを待たなくてはならず、書き込み処理に待ち時間が生じてしまう場合がある。これらにより、処理時間が長期化し、作業効率が低下するという問題点があった。【０００６】
本件はこのような点に鑑みてなされたものであり、圧縮率の低下を抑制しながらデータを記憶する処理を高速化可能なデータ記憶装置およびデータ記憶装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために以下のような複数のブロックに分割された記憶対象のデータについて、分割ブロック毎に、圧縮した圧縮ブロックの書き込みと並行して次の分割ブロックの圧縮を行うデータ記憶装置が提供される。このデータ記憶装置では、圧縮処理部は、記憶対象のデータの１つの分割ブロックをそれぞれ異なるアルゴリズムで並行して圧縮して圧縮ブロックを生成するアルゴリズム実行部を複数有し、複数のアルゴリズム実行部により１つの分割ブロックについて複数種類の圧縮ブロックを生成する。記憶部は、圧縮処理部で生成された圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶する。比較処理部は、各アルゴリズム実行部で生成された圧縮ブロックのサイズを比較し、圧縮ブロックのうち最もサイズが小さい圧縮ブロックの比較結果情報を記憶部に記憶させる。ブロック記憶部は、圧縮ブロックを書き込み可能である。書き込み開始判定部は、記憶部に記憶されている比較結果情報で示された圧縮ブロックのサイズを、当該圧縮ブロックの書き込み処理における書き込み速度で除した商が、１つ前の分割ブロックの圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定し、商が経過時間以下であると判定した場合には、生成された圧縮ブロックのブロック記憶部への書き込み処理と記憶対象のデータの次のブロックの圧縮処理とを開始を決定する。書き込み処理部は、書き込み開始判定部により開始が決定された場合、記憶部に記憶されている比較結果情報に基づいて、圧縮処理部で生成された圧縮ブロックのうち書き込み開始判定部により開始が決定された時点において最もサイズが小さい圧縮ブロックを書き込みブロックとして決定し、決定した書き込みブロックをブロック記憶部に書き込む。【０００８】
また、上記目的を達成するために以下のような複数のブロックに分割された記憶対象のデータについて、分割ブロック毎に、圧縮した圧縮ブロックの書き込みと並行して次の分割ブロックの圧縮を行うデータ記憶装置制御方法が提供される。このデータ記憶装置制御方法では、圧縮処理部が、それぞれ異なるアルゴリズムで並行して圧縮する複数のアルゴリズム実行部により記憶対象のデータの１つの分割ブロックを圧縮して、複数種類の圧縮ブロックを生成する。比較処理部が、複数のアルゴリズム実行部で生成された圧縮ブロックのサイズを比較し、圧縮ブロックのうち最もサイズが小さい圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶部に記憶させる。書き込み開始判定部が、記憶部に記憶されている比較結果情報が示す圧縮ブロックのサイズを書き込み処理時の書き込み速度で除した商が、１つ前の分割ブロックの圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定する。商が経過時間以下であると判定した場合には、圧縮ブロックのブロック記憶部への書き込み処理と、記憶対象のデータの次のブロックの圧縮処理の開始とを決定する。書き込み処理部が、書き込み開始判定部により開始が決定された場合、記憶部に記憶されている比較結果情報に基づいて、書き込み開始判定部により開始が決定された時点で圧縮処理部で生成された圧縮ブロックのうち最もサイズが小さい圧縮ブロックを書き込みブロックとして決定する。決定した書き込みブロックをブロック記憶部に書き込む。
【発明の効果】
【０００９】
開示のデータ記憶装置およびデータ記憶装置制御方法によれば、圧縮率の低下の抑制を図りつつデータを記憶する処理を高速化することが可能となる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態のデータ記憶装置を示す図である。
【図２】第２の実施の形態のシステム構成を示す図である。
【図３】第２の実施の形態のバックアップ装置のハードウェア構成を示す図である。
【図４】第２の実施の形態のバックアップ装置の機能を示すブロック図である。
【図５】第２の実施の形態の圧縮処理部および蓄積部の動作を示す図である。
【図６】第２の実施の形態の比較結果テーブルを示す図である。
【図７】第２の実施の形態の書き込み開始判定テーブルを示す図である。
【図８】第２の実施の形態の圧縮処理および書き込み処理の様子を示す図である。
【図９】第２の実施の形態のバックアップ処理の手順を示すフローチャートである。
【図１０】第２の実施の形態のバックアップ処理の手順を示すフローチャートである。
【図１１】第２の実施の形態のバックアップ処理の手順を示すフローチャートである。
【図１２】第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。
【図１３】第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。
【図１４】第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。
【図１５】第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。
【図１６】第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。
【図１７】第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。
【図１８】第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。
【図１９】第２の実施の形態の実行例および比較例の設定条件を示す図である。
【図２０】第２の実施の形態の実行例の実行結果を示す図である。
【図２１】第２の実施の形態における各ブロックの処理の結果を示す図である。
【図２２】第２の実施の形態における各ブロックの処理の結果を示す図である。
【図２３】第２の実施の形態の実行例および比較例の実行結果の対比を示す図である。
【図２４】第２の実施の形態の実行例および比較例のタイムチャートを示す図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のデータ記憶装置を示す図である。本実施の形態のデータ記憶装置１は、複数のブロック２に分割された記憶対象のデータについて、ブロック２に示す分割ブロック毎に、圧縮した圧縮ブロックの書き込みと並行して次の分割ブロックの圧縮の開始を行うために、圧縮処理部１ａ、比較処理部１ｂ、書き込み開始判定部１ｃ、書き込み処理部１ｄ、記憶部１ｅ、ブロック記憶部１ｆを有する。また、圧縮処理部１ａは、アルゴリズム実行部１ａ１，１ａ２を有する。
【００１２】
本実施の形態のデータ記憶装置１は、データを分割したブロック２を複数のアルゴリズムで圧縮可能である。データ記憶装置１は、ブロック２の圧縮処理に要する時間および圧縮ブロックのブロック記憶部１ｆへの書き込み処理に要する時間ならびに圧縮後のブロックのサイズに基づいて、いずれのアルゴリズムで圧縮された圧縮データを実際に書き込むデータとして採用するかを動的に判断する。
【００１３】
ここで、データ記憶装置１は、記憶対象のデータの分割ブロックを通信回線を介して他の装置から取得してもよく、テープストレージやハードディスクドライブ等の記憶媒体を介して取得してもよい。また、データ記憶装置１は、データを分割して分割ブロックを生成する機能を有し、データを取得すると共に取得したデータを分割して分割ブロックを生成し、生成した分割データについて圧縮処理および書き込み処理を行ってもよい。
【００１４】
圧縮処理部１ａは、記憶対象のデータの１つの分割ブロックを、それぞれ異なるアルゴリズムで並行して圧縮することにより圧縮ブロックを生成する複数のアルゴリズム実行部（例えば、アルゴリズム実行部１ａ１，１ａ２）を有し、アルゴリズム実行部１ａ１，１ａ２により１つの分割ブロックについて異なるアルゴリズムで圧縮された複数種類の圧縮ブロックを生成する。
【００１５】
また、圧縮処理部１ａでは、アルゴリズム実行部１ａ１，１ａ２のいずれかにおいて、開始決定時点で圧縮処理が完了していない場合には、完了していない圧縮処理が中断される。そして、書き込み処理部１ｄは、決定した書き込みブロックの書き込み処理を開始すると共に、圧縮処理部１ａは、次のブロックの圧縮処理を開始する。これにより、あるアルゴリズムにおいて分割ブロックの圧縮に長時間を要する場合にも、全体の処理の遅延を防止することができる。
【００１６】
比較処理部１ｂは、アルゴリズム実行部１ａ１，１ａ２で生成された各圧縮ブロックのサイズを比較し、アルゴリズム実行部１ａ１，１ａ２で生成された圧縮ブロックのうち最もサイズが小さい圧縮ブロックおよび当該圧縮ブロックのサイズを示す比較結果情報を記憶部１ｅに記憶させる。
【００１７】
書き込み開始判定部１ｃは、記憶部１ｅに記憶されている比較結果情報で示された圧縮ブロックのサイズを、書き込み処理時における書き込み速度で除した商が、１つ前の分割ブロックにおける圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定する開始判定を行う。そして、書き込み開始判定部１ｃは、商が経過時間以下であると判定した場合には、生成された圧縮ブロックのブロック記憶部１ｆへの書き込み処理と記憶対象のデータの次のブロックの圧縮処理との開始を決定する。
【００１８】
書き込み処理部１ｄは、書き込み開始判定部１ｃにより開始が決定された場合、記憶部１ｅに記憶されている比較結果情報に基づいて、圧縮処理部１ａで生成された圧縮ブロックのうち書き込み開始判定部１ｃにより開始が決定された時点において最もサイズが小さい圧縮ブロックを書き込みブロック１ｆ１，１ｆ２，１ｆ３，・・・として決定し、決定した書き込みブロック１ｆ１〜１ｆ３，・・・をブロック記憶部１ｆに書き込む。
【００１９】
記憶部１ｅは、圧縮処理部１ａで生成された圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶する。
ブロック記憶部１ｆは、圧縮ブロックを記憶可能な記憶領域を有する。ブロック記憶部１ｆには、書き込み処理部１ｄにより書き込みブロック１ｆ１〜１ｆ３，・・・が書き込まれる。ブロック記憶部１ｆは、磁気テープを用いたテープストレージであってもよく、ハードディスクドライブ、フレキシブルディスク（ＦＤ）等の磁気ドライブ、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等の光ドライブ、ＭＯ（Magneto-Optical disk）等の光磁気ドライブ、Ｆｌａｓｈ  ＳＳＤ（Solid State Drive）等の不揮発性半導体メモリやその他のデータの記憶が可能な記憶装置を用いてもよい。
【００２０】
このように、データ記憶装置１では、書き込み開始判定部１ｃが開始判定を行い、開始判定の結果に基づいて圧縮ブロックの書き込み処理および次のブロックの圧縮処理の開始を決定する。また、書き込み開始判定部１ｃにより開始が決定されると、アルゴリズム実行部１ａ１，１ａ２のいずれかにおいて、開始決定時点で圧縮処理が完了していない場合には、完了していない圧縮処理が中断されると共に、開始決定時点で圧縮が完了していた圧縮ブロックのうちサイズが最小のものが書き込みブロックとして決定される。また、書き込み処理部１ｄによる決定された書き込みブロックの書き込み処理および圧縮処理部１ａによる次のブロックの圧縮処理が開始される。これにより、圧縮率の低下の抑制を図りつつデータを記憶する処理を高速化することが可能となる。
【００２１】
［第２の実施の形態］
次に、図１に示したデータ記憶装置１の、データが分割された複数のブロックを複数のアルゴリズムで圧縮して圧縮ブロックを生成すると共に、圧縮ブロックの書き込みおよび次のブロックの圧縮処理の開始時に圧縮結果に基づいて書き込むブロックを決定し、決定したブロックを記憶する機能をバックアップ装置１００に適用した実施の形態を、第２の実施の形態として説明する。
【００２２】
図２は、第２の実施の形態のシステム構成を示す図である。図２に示すバックアップシステムは、バックアップ装置１００、ホストコンピュータ３００を有する。バックアップ装置１００、ホストコンピュータ３００は、それぞれ互いにＬＡＮ（Local Area Network）等のネットワーク２００を介して通信可能に接続されている。
【００２３】
バックアップ装置１００は、ホストコンピュータ３００が使用しているデータ３００ａを、磁気テープを記憶媒体に用いたテープストレージ１２０等の記憶デバイスに対して書き込み処理を行うことにより、データ３００ａのバックアップを行う。
【００２４】
バックアップ装置１００は、ホストコンピュータ３００から送信されたデータ３００ａを受信すると、受信したデータ３００ａのバックアップを実行する。バックアップ装置１００は、バックアップを実行する場合には、受信したデータ３００ａを所定のサイズ（例えば、２００ＭＢｙｔｅ）毎に分割することにより、複数のブロック３００ｂを生成する。次に、バックアップ装置１００は、詳しくは後述するように、生成したブロック３００ｂの各ブロックについて、先頭のブロックから順に、１つのブロックに対して複数種類のアルゴリズムによって同時に圧縮を開始することにより、複数種類の異なるアルゴリズムで圧縮された圧縮ブロック３００ｃを生成する。次に、バックアップ装置１００は、生成した圧縮ブロック３００ｃのブロックのうちの１つの圧縮ブロックをテープストレージ１２０に書き込む書き込みブロックに決定し、決定した書き込みブロックをテープストレージ１２０に書き込んで保存する。バックアップ装置１００は、以上の処理をブロック３００ｂの最後のブロックまで繰り返す。これにより、バックアップ装置１００は、受信したデータ３００ａのバックアップを行う。
【００２５】
ホストコンピュータ３００は、データ３００ａを内部に記憶している。また、ホストコンピュータ３００は、記憶しているデータ３００ａを使用して業務処理を実行する。なお、ホストコンピュータ３００は、データ３００ａを外部のストレージ装置（図示省略）に記憶させ、必要に応じてデータ３００ａをストレージ装置から読み出して使用してもよい。
【００２６】
また、ホストコンピュータ３００は、データ３００ａのバックアップ装置１００によるバックアップのスケジュール管理や実行制御、バックアップ装置１００によってバックアップされているデータを使用したリストアの実行制御等を行う。
【００２７】
なお、本実施の形態のバックアップ装置１００では、テープストレージ１２０を用いてバックアップを行うが、テープストレージ１２０は記憶デバイスの一例であり、ハードディスクドライブ、半導体メモリ、光ディスクドライブ等、任意の記憶装置を用いることができる。
【００２８】
図３は、第２の実施の形態のバックアップ装置のハードウェア構成を示す図である。バックアップ装置１００は、装置全体の制御を行う制御部１１０、ホストコンピュータ３００から送信されたデータ３００ａのバックアップデータを記憶するテープストレージ１２０を有する。
【００２９】
制御部１１０は、ＣＰＵ（Central Processing Unit）１１１、キャッシュメモリ１１２、ストレージインタフェース１１３を有する。
ＣＰＵ１１１は、ＯＳ（オペレーティングシステム）等に従って処理を実行し、各種制御を行う。また、ＣＰＵ１１１は、タイマを有しており、圧縮処理部１０３（図４において後述）によるブロックの圧縮処理の開始からの経過時間を計測する。
【００３０】
キャッシュメモリ１１２は、ＣＰＵ１１１がバックアップ装置１００を制御するために必要な制御データを記憶する。また、キャッシュメモリ１１２は、テープストレージ１２０で読み書きされる入出力データを一時的に記憶する。
【００３１】
ストレージインタフェース１１３は、テープストレージ１２０との接続制御を行う。
テープストレージ１２０は、交換可能な磁気テープに対して、データの読み書きを行うテープドライブであり、ホストコンピュータ３００から送信されたシステムの利用者のデータのバックアップデータを記憶する。
【００３２】
なお、本実施の形態のバックアップ装置１００は、テープストレージ１２０にバックアップデータの読み書きを行うが、例えば、ハードディスクドライブ、フレキシブルディスク等の磁気ドライブ、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷ等の光ドライブ、ＭＯ等の光磁気ドライブ、Ｆｌａｓｈ  ＳＳＤ等の不揮発性半導体メモリやその他のデータの記憶が可能な記憶装置を用いてもよい。
【００３３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図４は、第２の実施の形態のバックアップ装置の機能を示すブロック図である。本実施の形態のバックアップ装置１００は、ホストコンピュータ３００とネットワーク２００で接続されている。バックアップ装置１００は、ホストコンピュータ３００から送信されたバックアップの対象であるデータ３００ａを、ネットワーク２００を介して取得し、さらに受信したデータ３００ａを分割して図２において前述したブロック３００ｂとすると共にブロック３００ｂを複数種類のアルゴリズムで圧縮して複数種の圧縮ブロック３００ｃを生成する。次にバックアップ装置１００は、複数種類のアルゴリズムで圧縮することにより生成した圧縮ブロック３００ｃの中からテープストレージ１２０に書き込む書き込みブロック１２１ｂ，１２２ｂ，１２３ｂ，・・・を決定し、決定した書き込みブロック１２１ｂ〜１２３ｂ，・・・および書き込みブロックの制御情報である判定フラグ１２１ａ，１２２ａ，１２３ａ，・・・をテープストレージ１２０に書き込んで記憶する。バックアップ装置１００は、受信処理部１０１、分割処理部１０２、圧縮処理部１０３、蓄積部１０４、比較処理部１０５、書き込み開始判定部１０６、書き込み処理部１０７、テープストレージ１２０、比較結果情報記憶部１５１、書き込み開始判定情報記憶部１５２を有する。
【００３４】
受信処理部１０１は、ホストコンピュータ３００からネットワーク２００を介してバックアップの対象データを取得する。
分割処理部１０２は、受信処理部１０１で取得したバックアップの対象のデータを所定のサイズ（例えば、２００ＭＢｙｔｅ）毎に分割する。分割処理部１０２で分割されたブロックを圧縮処理部１０３で複数種類のアルゴリズムで圧縮して圧縮ブロックが生成され、生成された圧縮ブロックを蓄積部１０４に記憶するのと並行して、分割されたブロックが圧縮されない状態で、圧縮ブロックと同様に蓄積部１０４に直接記憶される。
【００３５】
圧縮処理部１０３は、記憶対象のデータが分割された１つのブロックについて、それぞれ異なるアルゴリズムで並行して圧縮することにより圧縮ブロックを生成する複数のアルゴリズム実行部（図５において後述）を有し、各アルゴリズム実行部により１つのブロックについて異なるアルゴリズムで圧縮された複数種類の圧縮ブロックを生成する。
【００３６】
蓄積部１０４は、圧縮処理部１０３で圧縮された圧縮ブロックおよび分割処理部１０２で分割されたが圧縮処理部１０３で圧縮されていないブロックを一時的に記憶する。
比較処理部１０５は、アルゴリズム実行部で生成された各圧縮ブロックのサイズと、圧縮されていない分割ブロックのサイズを比較し、各アルゴリズム実行部で生成された圧縮ブロックおよび分割されたブロックのうち最もサイズが小さいブロックおよび当該ブロックのサイズを示す比較結果情報を比較結果情報記憶部１５１に記憶させる。また、比較処理部１０５は、書き込み開始判定部１０６により開始が決定された場合、圧縮されていないブロック（これから圧縮される対象のブロック）の比較結果情報を生成して比較結果情報記憶部１５１に記憶させる。なお、これ以降、「圧縮ブロック」には、特に記載がない限り、分割処理部１０２で分割されたが、圧縮処理部１０３によって圧縮されていないブロックを含むものとする。
【００３７】
比較処理部１０５は、アルゴリズム実行部において新たに圧縮処理が完了する都度、比較結果情報記憶部１５１に記憶されている比較結果情報に示されている圧縮ブロックのサイズと、アルゴリズム実行部で新たに生成された圧縮ブロックのサイズとを比較する。そして比較処理部１０５は、アルゴリズム実行部で新たに生成された圧縮ブロックのサイズの方が小さい場合には、アルゴリズム実行部で新たに生成された圧縮ブロックの比較結果情報により、比較結果情報記憶部１５１に記憶されている比較結果情報を更新する。
【００３８】
書き込み開始判定部１０６は、比較結果情報記憶部１５１に記憶されている比較結果情報で示された圧縮ブロックのサイズを書き込み処理における書き込み速度で除した商が、１つ前のブロックにおける圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定する開始判定を行う。商が経過時間以下であると判定した場合には、書き込み開始判定部１０６は、生成された圧縮ブロックのテープストレージ１２０への書き込み処理と記憶対象のデータの次のブロックの圧縮処理との開始を決定する。
【００３９】
また、書き込み開始判定部１０６は、開始判定において、分割ブロックの圧縮処理部１０３による圧縮処理が開始されてから上限時間（例えば、１５秒）が経過したか否かを判定する。書き込み開始判定部１０６は、上限時間が経過したと判定した場合には、生成された圧縮ブロックのテープストレージ１２０への書き込み処理および記憶対象のデータの次のブロックの圧縮処理の開始を決定する。
【００４０】
また、書き込み開始判定部１０６は、開始判定において、すべてのアルゴリズム実行部による分割されたブロックの圧縮処理が完了したか否かを判定する。書き込み開始判定部１０６は、すべてのアルゴリズム実行部による圧縮処理が完了したと判定した場合には、生成された圧縮ブロックのテープストレージ１２０への書き込み処理および記憶対象のデータの次のブロックの圧縮処理の開始を決定する。
【００４１】
ここで、書き込み開始判定部１０６は、書き込み処理部１０７による１つ前の書き込みブロックの書き込み処理が完了した場合、または比較処理部１０５により比較結果情報記憶部１５１に記憶されている比較結果情報が更新された場合に、開始判定を行う。また、書き込み開始判定部１０６は、予め定められた所定時間（例えば、１秒）経過毎に、開始判定を行ってもよい。
【００４２】
書き込み処理部１０７は、書き込み開始判定部１０６により開始が決定された場合、比較結果情報記憶部１５１に記憶されている比較結果情報に基づいて、圧縮処理部１０３で生成された圧縮ブロックのうち、書き込み開始判定部１０６により開始が決定された時点において最もサイズが小さい圧縮ブロックを書き込みブロック１２１ｂ〜１２３ｂ，・・・として決定し、決定した書き込みブロック１２１ｂ〜１２３ｂ，・・・を、蓄積部１０４から読み出してテープストレージ１２０に書き込む。このとき書き込み処理部１０７は、書き込みブロック１２１ｂ〜１２３ｂ，・・・と共に、書き込みブロック１２１ｂ〜１２３ｂ，・・・に対応付けられており、書き込みブロック１２１ｂ〜１２３ｂ，・・・の制御情報を示す判定フラグ１２１ａ〜１２３ａ，・・・をテープストレージ１２０に書き込む。判定フラグ１２１ａ〜１２３ａ，・・・は、書き込みブロック１２１ｂ〜１２３ｂ，・・・がいずれのアルゴリズムで圧縮されているかや、書き込みブロックのデータ長等を示しており、それぞれ対応する書き込みブロック１２１ｂ〜１２３ｂ，・・・の前に書き込まれる。なお、判定フラグ１２１ａ〜１２３ａ，・・・は、対応する書き込みブロック１２１ｂ〜１２３ｂ，・・・の後ろに書き込んでもよく、磁気テープの他の箇所や他の磁気テープ、その他の記憶媒体等に纏めて書き込んでもよい。
【００４３】
テープストレージ１２０には、圧縮ブロックを書き込み可能な磁気テープをセット可能である。テープストレージ１２０では、セットされた磁気テープに対して書き込み処理部１０７により書き込みブロック１２１ｂ〜１２３ｂ，・・・が書き込まれる。テープストレージ１２０は、ブロック記憶部として機能する。
【００４４】
比較結果情報記憶部１５１は、圧縮処理部１０３で生成された圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶する。比較処理部１０５は、比較結果情報記憶部１５１に記憶されている最新の状態の比較結果情報を参照して、圧縮ブロックのサイズ同士を比較し、新たに圧縮された圧縮ブロックのサイズが最小である場合には比較結果情報を更新する。比較結果情報記憶部１５１は、記憶部の一例である。
【００４５】
書き込み開始判定情報記憶部１５２は、書き込み開始判定部１０６が開始判定に使用する書き込み開始判定情報を記憶する。書き込み開始判定情報は、分割処理部１０２がデータ３００ａを分割するサイズ、１つ前のブロックの圧縮処理の開始から書き込み処理の開始までの経過時間、書き込み処理部１０７によるテープストレージ１２０に対する書き込み速度、圧縮処理部１０３が有するアルゴリズム実行部による当該時点における圧縮処理の状況、圧縮処理部１０３によるブロックの圧縮処理の上限時間を示す。
【００４６】
なお、本実施の形態のバックアップ装置１００は、ネットワーク２００を介してホストコンピュータ３００からデータを受信するが、これに限らず、テープストレージ１２０や他のテープストレージ、図示しないハードディスクドライブ等の記憶デバイスを介してデータを取得してもよい。
【００４７】
図５は、第２の実施の形態の圧縮処理部および蓄積部の動作を示す図である。本実施の形態の圧縮処理部１０３は、アルゴリズム実行部１０３ａ，１０３ｂ，１０３ｃ，１０３ｄを有する。また、蓄積部１０４は、バッファ１０４ａ１，１０４ａ２，１０４ｂ１，１０４ｂ２，１０４ｃ１，１０４ｃ２，１０４ｄ１，１０４ｄ２，１０４ｅ１，１０４ｅ２を有する。
【００４８】
アルゴリズム実行部１０３ａ，１０３ｂ，１０３ｃ，１０３ｄは、それぞれ異なる圧縮用のアルゴリズムで圧縮処理を実行する。アルゴリズム実行部１０３ａ〜１０３ｄで実行されるアルゴリズムは、例えば、ＡＬＤＣ（Adaptive Lossless Data Compression）、ＤＣＬＺ（Data Compression according to Lempel and Ziv）、ＺＩＰ、ＣＡＢ（CABinet）、ＬＺＡ、ＧＣＡ（G Compression Archiver）やその他の圧縮アルゴリズムを用いることができる。本実施の形態では、アルゴリズム実行部１０３ａで実行される圧縮用のアルゴリズムを、アルゴリズムＡとする。同様に、アルゴリズム実行部１０３ｂで実行される圧縮用のアルゴリズムを、アルゴリズムＢとする。アルゴリズム実行部１０３ｃで実行される圧縮用のアルゴリズムを、アルゴリズムＣとする。アルゴリズム実行部１０３ｄで実行される圧縮用のアルゴリズムを、アルゴリズムＤとする。
【００４９】
バッファ１０４ａ１，１０４ａ２，１０４ｂ１，１０４ｂ２，１０４ｃ１，１０４ｃ２，１０４ｄ１，１０４ｄ２，１０４ｅ１，１０４ｅ２は、データが分割されたブロックについて交互に使用される。バッファ１０４ａ１，１０４ａ２，１０４ｂ１，１０４ｂ２，１０４ｃ１，１０４ｃ２，１０４ｄ１，１０４ｄ２は、対応するアルゴリズム実行部１０３ａ〜１０３ｄで圧縮された圧縮ブロック（圧縮処理済）を交互に一時的に記憶する。バッファ１０４ｅ１，１０４ｅ２は、圧縮されていないブロック（圧縮処理なし）を交互に一時的に記憶する。
【００５０】
具体的には、分割されたデータ３００ａの最初のブロックについて圧縮処理が開始されたものとする。この場合、まず、最初のブロックが圧縮されることなく、圧縮されていないブロックを記憶するバッファ１０４ｅ１，１０４ｅ２のうち、例えばバッファ１０４ｅ１に記憶される。また、アルゴリズム実行部１０３ａで圧縮されて圧縮ブロックが生成されたものとすると、アルゴリズム実行部１０３ａで生成された圧縮ブロックが、アルゴリズム実行部１０３ａと対応付けられているバッファ１０４ａ１，１０４ａ２のうち、バッファ１０４ａ１に記憶される。アルゴリズム実行部１０３ｂ〜１０３ｄで圧縮ブロックが生成された場合にも、各アルゴリズム実行部で生成された圧縮ブロックが、バッファ１０４ｂ１〜１０４ｄ２のうちそれぞれ圧縮ブロックを生成したアルゴリズム実行部１０３ｂ〜１０３ｄに対応するバッファ１０４ｂ１，１０４ｃ１，１０４ｄ１に記憶される。
【００５１】
次に、書き込み開始判定部１０６により開始が決定され、データ３００ａの２番目のブロックの圧縮処理が開始されたときには、圧縮されていないブロックを記憶するバッファ１０４ｅ１，１０４ｅ２のうち、最初のブロックで使用されていないバッファ１０４ｅ２に記憶される。同様に、アルゴリズム実行部１０３ａで圧縮されて圧縮ブロックが生成されたものとすると、生成された圧縮ブロックが同様にアルゴリズム実行部１０３ａと対応付けられているバッファ１０４ａ１，１０４ａ２のうち、最初のブロックの圧縮ブロックで使用されていないバッファ１０４ａ２に記憶される。アルゴリズム実行部１０３ｂ〜１０３ｄで圧縮ブロックが生成された場合にも、生成された圧縮ブロックが同様にバッファ１０４ｂ１〜１０４ｄ２のうち、それぞれ対応するバッファ１０４ｂ２，１０４ｃ２，１０４ｄ２に記憶される。３番目のブロックの圧縮処理が開始された場合には、バッファ１０４ａ１，１０４ｂ１，１０４ｃ１，１０４ｄ１，１０４ｅ１に記憶されている圧縮ブロックが廃棄された後に使用される。４番目のブロックの圧縮処理が開始された場合には、バッファ１０４ａ２，１０４ｂ２，１０４ｃ２，１０４ｄ２，１０４ｅ２に記憶されている圧縮ブロックが廃棄された後に使用される。
【００５２】
本実施の形態の蓄積部１０４では、このようにバッファ１０４ａ１，１０４ｂ１，１０４ｃ１，１０４ｄ１，１０４ｅ１およびバッファ１０４ａ２，１０４ｂ２，１０４ｃ２，１０４ｄ２，１０４ｅ２が、ブロック毎に交互に使用されるので、次のブロックの圧縮処理が開始してからも前の圧縮ブロックが保持される。これにより、前のブロックの書き込み処理中に次のブロックの圧縮処理を実行することができるので、前のブロックの書き込み処理の完了を待たずに次のブロックの圧縮処理を実行することができ、処理時間の短縮を図ることができる。
【００５３】
図６は、第２の実施の形態の比較結果テーブルを示す図である。図６に示す比較結果テーブル１５１ａは、バックアップ装置１００が有する比較結果情報記憶部１５１に記憶されている。比較結果テーブル１５１ａは、バックアップ装置１００が有する比較処理部１０５による比較処理の結果、有るブロックについての圧縮処理中における当該時点において、圧縮処理が完了した圧縮ブロックのうち最もサイズが小さい圧縮ブロックに関する情報を示す比較結果情報を記憶するテーブルである。
【００５４】
比較結果テーブル１５１ａには、項目として“圧縮ブロックサイズ”、“アルゴリズム”、“記憶バッファ”が設けられている。比較結果テーブル１５１ａにおいて、各項目の横方向に並べられた情報同士が比較結果情報として互いに関連付けられている。
【００５５】
圧縮ブロックサイズは、当該時点における比較処理部１０５による比較の結果、最もサイズが小さいと判定された圧縮ブロックのサイズをＭＢｙｔｅで示す情報である。なお、圧縮されていないブロックが当該時点で最もサイズが小さいと判定された場合には、圧縮されていないブロックのサイズが圧縮ブロックサイズの欄に設定される。
【００５６】
アルゴリズムは、当該時点における比較処理部１０５による比較の結果、当該時点で最もサイズが小さいと判定された圧縮ブロックの圧縮処理を行ったアルゴリズムを示す情報である。
【００５７】
記憶バッファは、当該時点における比較処理部１０５による比較の結果、最もサイズが小さいと判定された圧縮ブロックが記憶されているバッファを示す情報である。本実施の形態のバックアップ装置１００では、圧縮処理部１０３が有するアルゴリズム実行部１０３ａ〜１０３ｄおよび非圧縮データのそれぞれに対応して、蓄積部１０４にはそれぞれ２つのバッファ１０４ａ１〜１０４ｅ２が設けられている。ここで、アルゴリズム実行部１０３ａにはバッファ１０４ａ１，１０４ａ２が対応付けられている。アルゴリズム実行部１０３ｂにはバッファ１０４ｂ１，１０４ｂ２が対応付けられている。アルゴリズム実行部１０３ｃにはバッファ１０４ｃ１，１０４ｃ２が対応付けられている。アルゴリズム実行部１０３ｄにはバッファ１０４ｄ１，１０４ｄ２が対応付けられている。非圧縮のデータにはバッファ１０４ｅ１，１０４ｅ２が対応付けられている。
【００５８】
本実施の形態では、比較結果テーブル１５１ａの記憶バッファ欄に設定された情報により、比較結果情報によって示されている、アルゴリズム実行部１０３ａ〜１０３ｄで圧縮された圧縮ブロックおよび圧縮されていないブロックである圧縮ブロックが、対応付けられた２つのバッファのうちのいずれに記憶されているかが示される。例えば、比較結果情報によって示されているアルゴリズム実行部１０３ｄにより圧縮された圧縮ブロックが、アルゴリズム実行部１０３ｄに対応するバッファ１０４ｄ１，１０４ｄ２のうちバッファ１０４ｄ１に記憶されている場合には、図６に示すように記憶バッファには“１”が設定されるものとする。また、比較結果情報によって示されているアルゴリズム実行部１０３ｄにより圧縮された圧縮ブロックが、バッファ１０４ｄ２に記憶されている場合には、記憶バッファには“２”が設定されるものとする。
【００５９】
ここで、比較処理部１０５による圧縮ブロックのサイズの判定は暫定的なものである。すなわち、比較処理部１０５は、まず、圧縮されていないブロックについて比較結果情報を生成し、生成した比較結果情報を比較結果情報記憶部１５１に記憶させる。次に、いずれかのアルゴリズムによる圧縮処理が完了した場合、比較処理部１０５は、新たに圧縮処理が完了した圧縮ブロックの圧縮時の圧縮ブロックサイズと、比較結果情報記憶部１５１に記憶されている圧縮されていないブロックのブロックサイズとを比較する。比較処理部１０５は、比較の結果、比較結果情報記憶部１５１に記憶されている比較結果情報の圧縮ブロックサイズの方が小さい場合には、比較結果情報記憶部１５１の比較結果情報を更新しない。一方、比較処理部１０５は、比較の結果、新たに圧縮処理が完了した圧縮ブロックの圧縮ブロックサイズの方が小さい場合には、新たに圧縮処理が完了した圧縮ブロックの比較結果情報を生成し、生成した新たに圧縮処理が完了した圧縮ブロックの比較結果情報により、比較結果情報記憶部１５１の比較結果情報を更新する。比較処理部１０５は、以後、同様にして、新たにアルゴリズムの圧縮処理が完了する都度、比較結果情報記憶部１５１の比較結果情報の圧縮ブロックサイズと新たに圧縮処理が完了した圧縮ブロックの圧縮ブロックサイズとを比較し、比較結果に基づいて比較結果情報の更新を行う。
【００６０】
図７は、第２の実施の形態の書き込み開始判定テーブルを示す図である。図７に示す書き込み開始判定テーブル１５２ａは、バックアップ装置１００が有する書き込み開始判定情報記憶部１５２に記憶されている。書き込み開始判定テーブル１５２ａは、バックアップ装置１００が有する書き込み処理の開始判定部１０６により圧縮ブロックの書き込みの開始および次のブロックの圧縮処理の開始の判定に用いられる書き込み開始判定情報を記憶するテーブルである。
【００６１】
書き込み開始判定テーブル１５２ａには、項目として“分割ブロックサイズ”、“経過時間”、“書き込み速度”、“圧縮処理状況”、“上限時間”が設けられている。書き込み開始判定テーブル１５２ａにおいて、各項目の横方向に並べられた情報同士が書き込み開始判定情報として互いに関連付けられている。
【００６２】
分割ブロックサイズは、分割処理部１０２によるデータのブロックへの分割のサイズをＭＢｙｔｅで示す情報である。分割処理部１０２は、ホストコンピュータ３００から送信されたデータ３００ａを分割ブロックサイズ毎に分割する。
【００６３】
経過時間は、１つ前のステップが完了するまでに要した時間を秒で示す情報である。ここで、１つ前のステップが完了するまでに要した時間とは、あるステップの前に互いに並行して実行された、直近に完了した圧縮処理および直近に完了した書き込みブロックの書き込み処理の開始から、当該圧縮処理および当該書き込み処理が共に完了するまでに要した時間とする。
【００６４】
書き込み速度は、テープストレージ１２０が磁気テープに圧縮ブロックを書き込む際の速度をＭＢｙｔｅ／秒で示す情報である。書き込まれる圧縮ブロックのサイズを書き込み速度で除した商が、経過時間となる。
【００６５】
圧縮処理状況は、現在の圧縮中のブロックについての圧縮処理部１０３のアルゴリズム実行部１０３ａ〜１０３ｄによる圧縮処理が完了したか否かを示す情報である。あるアルゴリズムによる圧縮処理が完了していれば、当該アルゴリズムに対応する項目に“完了”が設定され、あるアルゴリズムによる圧縮処理が完了していなければ、当該アルゴリズムに対応する欄に“未完了”が設定される。
【００６６】
上限時間は、ブロックの圧縮処理を中断し、書き込みブロックの書き込み処理の開始および次のブロックの圧縮処理の開始を行う上限の時間を秒で示す情報である。圧縮処理の中断は、ブロックの圧縮処理が完了していないアルゴリズムがあっても実行される。比較処理部１０５は、１つ前のブロックの書き込み処理が完了している場合であって、かつ、すべてのアルゴリズムによる当該ブロックの圧縮処理の終了、あるいは当該ブロックの圧縮処理の開始時からの上限時間の経過、または判定条件式の成立のいずれかが満たされたときには、当該ブロックの圧縮処理を中断して、その時点で比較結果情報記憶部１５１に記憶されている比較結果情報で示された圧縮ブロックのテープストレージ１２０への書き込み処理を開始すると共に、次のブロックの各アルゴリズムによる圧縮処理を開始する。
【００６７】
ここで、分割ブロックサイズおよび上限時間は、任意に設定可能である。書き込み速度は、バックアップ装置１００およびテープストレージ１２０の処理性能に応じて決定される。経過時間は、１つ前のブロックに対する圧縮処理の完了の都度、変化する。圧縮処理状況は、圧縮処理部１０３のアルゴリズム実行部１０３ａ〜１０３ｄによる圧縮処理の完了の都度、変化する。
【００６８】
また、判定条件式を、式（１）に示す。
ＳＩＺＥ／ＳＰＥＥＤ＜＝ＴＩＭＥ                          （１）
ここで、ＳＩＺＥは、当該ブロックにおける比較結果情報で示された圧縮ブロックのサイズ（ＭＢｙｔｅ）である。また、ＳＰＥＥＤは、テープストレージ１２０に対する書き込み速度である。また、ＴＩＭＥは、１つ前のブロックにおける圧縮処理および書き込み処理の開始から当該ブロックの圧縮処理および書き込み処理の開始までの経過時間である。ＴＩＭＥは、当該ブロックがデータ３００ａの最初のブロックである場合には、当然「１つ前のブロック」は存在しないので、経過時間も０となるために、ＴＩＭＥ＝０とする。
【００６９】
なお、比較処理部１０５は、データ３００ａの最初のブロックでは、当然「１つ前のブロック」は存在しないので、データ３００ａの最初のブロックについては、１つ前のブロックの書き込み処理が完了しているか否かの判定を省略してもよい。また、比較処理部１０５は、データ３００ａの最初のブロックでは、当然「１つ前のブロック」は存在しないことから判定条件式は成立しないので、データ３００ａの最初のブロックについては、判定条件式が成立するか否かの判定を省略してもよい。
【００７０】
図８は、第２の実施の形態の圧縮処理および書き込み処理の様子を示す図である。図８に従って、本実施の形態のバックアップ装置１００における圧縮処理および書き込み処理の実行時の様子を説明する。
【００７１】
バックアップ装置１００は、ブロックの圧縮処理および書き込み処理を並行して実行することができる。図８における各行は、時間の経過と共に処理されるステップを示す。 “圧縮対象ブロック”は、各ステップにおける圧縮処理の対象であるブロックを示す。“書き込みブロック”は、各ステップにおける書き込み処理の対象である圧縮ブロックを示す。同一の行に示されているブロック同士についてそれぞれのステップにおいて同時に圧縮処理および書き込み処理が実行される。また、このとき各ステップにおいて、書き込み処理部１０７が書き込み処理を実行する圧縮ブロックは、１つ前のステップにおいて圧縮処理部１０３が圧縮処理を実行して生成された圧縮ブロックである。
【００７２】
具体的には、バックアップ装置１００において、最初のステップではホストコンピュータ３００から受信したデータの最初のブロックであるブロック１の圧縮処理が実行される一方、最初のステップでは圧縮処理が完了した圧縮ブロックがないため、圧縮ブロックの書き込み処理は実行されない。
【００７３】
２番目のステップでは、２番目のブロックであるブロック２の圧縮処理および最初のステップで圧縮処理が完了したブロック１の書き込み処理が実行される。３番目のステップでは、３番目のブロックであるブロック３の圧縮処理および２番目のステップで圧縮処理が完了したブロック２の書き込み処理が実行される。
【００７４】
同様に、ｎ番目のステップでは、ｎ番目のブロックであるブロックｎの圧縮処理およびｎ−１番目のステップで圧縮処理が完了したブロックｎ−１の書き込み処理が実行される。ｎ＋１番目のステップでは、ｎ＋１番目のブロックであるブロックｎ＋１の圧縮処理およびｎ番目のステップで圧縮処理が完了したブロックｎの書き込み処理が実行される。
【００７５】
また、ｍ番目のステップでは、ｍ番目のブロックであるブロックｍの圧縮処理およびｍ−１番目のステップで圧縮処理が完了したブロックｍ−１の書き込み処理が実行される。最後のステップ（ｍ＋１番目のステップ）では、すべてのブロックについて圧縮処理が完了しているため、圧縮処理は実行されない一方、ｍ番目のステップで圧縮されたブロックｍの書き込み処理が実行される。
【００７６】
図９から図１１は、第２の実施の形態のバックアップ処理の手順を示すフローチャートである。本実施の形態のバックアップ装置１００は、ホストコンピュータ３００から送信されたデータを受信すると、受信したデータを複数のブロックに分割し、ブロック毎に圧縮してテープストレージ１２０に書き込むことにより、ホストコンピュータ３００のデータをバックアップする。本実施の形態のバックアップ装置１００は、稼働中はバックアップ処理を実行しており、ホストコンピュータ３００からのデータの送信に備えて待機している。以下では、図９から図１１に示すバックアップ処理をフローチャートのステップ番号に沿って説明する。
【００７７】
［ステップＳ１１］受信処理部１０１は、ホストコンピュータ３００から送信されたデータを受信する。
［ステップＳ１２］分割処理部１０２は、ステップＳ１１で受信処理部１０１が受信したデータを、所定のサイズ（例えば、２００ＭＢｙｔｅ）毎に複数のブロックに分割する。
【００７８】
［ステップＳ１３］圧縮処理部１０３は、ステップＳ１２でデータを分割した各ブロックを先頭から１つずつ、アルゴリズム実行部１０３ａ〜１０３ｄの各アルゴリズムで圧縮処理を開始する。各アルゴリズムで圧縮された圧縮ブロックは、蓄積部１０４に記憶される。
【００７９】
［ステップＳ１４］比較処理部１０５は、アルゴリズム実行部１０３ａ〜１０３ｄのいずれかにより新たに圧縮が完了した圧縮ブロックがあるか否かを判定する。新たに圧縮が完了した圧縮ブロックがあれば（ステップＳ１４  ＹＥＳ）、処理はステップＳ１５に進められる。一方、新たに圧縮が完了した圧縮ブロックがなければ（ステップＳ１４  ＮＯ）、処理はステップＳ１７に進められる。
【００８０】
［ステップＳ１５］比較処理部１０５は、ステップＳ１４で判定された新たに圧縮が完了した圧縮ブロックの圧縮ブロックサイズを比較結果情報記憶部１５１に記憶されている比較結果情報の圧縮ブロックサイズと比較して、新たに圧縮が完了した圧縮ブロックのサイズが最小であるか否かを判定する。これにより、新たに圧縮処理が完了した圧縮ブロックの圧縮ブロックサイズが、同一のブロックを他のアルゴリズムで圧縮し、先に圧縮処理が完了した圧縮ブロックのうち、圧縮ブロックが最小である圧縮ブロックの圧縮ブロックサイズと比較される。新たに圧縮が完了したブロックのサイズが最小であれば（ステップＳ１５  ＹＥＳ）、処理はステップＳ１６に進められる。一方、新たに圧縮が完了したブロックのサイズが最小でなければ（ステップＳ１５  ＮＯ）、処理はステップＳ１７に進められる。
【００８１】
［ステップＳ１６］比較処理部１０５は、比較結果情報記憶部１５１に記憶されている比較結果情報を、ステップＳ１５で圧縮ブロックサイズが最小であると判定された圧縮ブロックの比較結果情報で更新する。
【００８２】
［ステップＳ１７］比較処理部１０５は、既に圧縮処理が完了すると共にテープストレージ１２０に書き込まれることが決定された書き込みブロックの書き込み処理部１０７による書き込み処理中であるか否かを判定する。書き込み処理部１０７による書き込み処理中であれば（ステップＳ１７  ＹＥＳ）、処理はステップＳ１４に進められる。一方、書き込み処理部１０７による書き込み処理中でなければ（ステップＳ１７  ＮＯ）、処理はステップＳ２１（図１０）に進められる。
【００８３】
［ステップＳ２１］書き込み開始判定部１０６は、すべてのアルゴリズム実行部１０３ａ〜１０３ｄにおいてステップＳ１３で選択したブロックの圧縮処理が完了しているか否かを判定する。すべてのアルゴリズム実行部１０３ａ〜１０３ｄにおいて圧縮処理が完了していれば（ステップＳ２１  ＹＥＳ）、処理はステップＳ２４に進められる。一方、アルゴリズム実行部１０３ａ〜１０３ｄのうちいずれかにおいて圧縮処理が完了していなければ（ステップＳ２１  ＮＯ）、処理はステップＳ２２に進められる。
【００８４】
［ステップＳ２２］書き込み開始判定部１０６は、書き込み開始判定情報に基づいて判定条件式が成立するか否かを判定する。判定条件式が成立すれば（ステップＳ２２  ＹＥＳ）、処理はステップＳ２４に進められる。一方、判定条件式が成立しなければ（ステップＳ２２  ＮＯ）、処理はステップＳ２３に進められる。
【００８５】
なお、データの最初のブロックについては、１つ前の圧縮ブロックが存在しないことから１つ前の圧縮ブロックの経過時間は“０”となるため、常に判定条件式は成立しない。また、データの最初のブロックについては、判定を省略してもよい。
【００８６】
［ステップＳ２３］書き込み開始判定部１０６は、タイマによって圧縮処理部１０３によるブロックの圧縮開始からの経過時間をチェックし、書き込み開始判定情報に示された上限時間に達したか否かを判定する。上限時間に達していれば（ステップＳ２３  ＹＥＳ）、処理はステップＳ２４に進められる。一方、上限時間に達していなければ（ステップＳ２３  ＮＯ）、処理はステップＳ１４に進められる。
【００８７】
［ステップＳ２４］書き込み開始判定部１０６は、比較結果情報記憶部１５１に記憶されている比較結果情報を参照し、比較結果情報記憶部１５１に比較結果情報が記憶されている圧縮ブロック（圧縮されていないブロックを含む）を、テープストレージ１２０に書き込む圧縮ブロックである書き込みブロックとして決定する。
【００８８】
［ステップＳ２５］圧縮処理部１０３は、アルゴリズム実行部１０３ａ〜１０３ｄにおいて圧縮処理中のブロックがある場合には、圧縮処理を中止する。
［ステップＳ２６］書き込み処理部１０７は、ステップＳ２４で決定した書き込みブロックのテープストレージ１２０に対する書き込み処理を開始する。その後、処理はステップＳ３１（図１１）に進められる。
【００８９】
［ステップＳ３１］比較処理部１０５は、受信したデータ３００ａから分割されたブロックのうち未だに圧縮処理が実行されていないブロックがあるか否かを判定する。圧縮処理が実行されていないブロックがあれば（ステップＳ３１  ＹＥＳ）、処理はステップＳ１３に進められる。一方、すべてのブロックの圧縮処理が実行されていれば（ステップＳ３１  ＮＯ）、処理はステップＳ３２に進められる。
【００９０】
［ステップＳ３２］比較処理部１０５は、受信したデータ３００ａから分割された最後のブロックの書き込みブロックについての書き込み処理部１０７による書き込み処理が完了したか否かについて判定する。最後のブロックの書き込み処理が完了していれば（ステップＳ３２  ＹＥＳ）、処理は終了する。一方、最後のブロックの書き込み処理が完了していなければ（ステップＳ３２  ＮＯ）、ステップＳ３２の処理が繰り返される。
【００９１】
図１２から図１８は、第２の実施の形態のバックアップ装置で実行される処理の手順を示すシーケンス図である。本実施の形態のバックアップ装置１００では、ホストコンピュータ３００から受信したデータから分割された最初のブロック（ブロック１）の圧縮が完了した後は、圧縮処理部１０３による圧縮処理と書き込み処理部１０７による書き込み処理が並行して実行される。以下に、図１２から図１８に従って、本実施の形態のバックアップ装置１００において実行される、ブロック１の圧縮処理が完了した後の処理について説明する。なお、図１２から図１８では、説明の便宜上、圧縮処理部１０３は、アルゴリズム実行部１０３ａ，１０３ｂの２つを有するものとする。
【００９２】
図１２および図１３のステップＳ１０１からステップＳ１１８に、１番目のブロック（ブロック１）の書き込みおよび２番目のブロック（ブロック２）の圧縮の処理の手順を示す。図１２および図１３は、アルゴリズム実行部１０３ａ，１０３ｂの圧縮処理（ブロック２の圧縮）が完了してから書き込み処理部１０７の書き込み処理が完了した場合の例である。
【００９３】
［ステップＳ１０１］書き込み開始判定部１０６は、圧縮処理部１０３によるブロック１の圧縮処理が完了し、書き込み開始判定で、ブロック１の書き込みおよびブロック２の圧縮の開始を決定すると、書き込み処理部１０７に対してブロック１の書き込み処理の開始指示を通知すると共に、アルゴリズム実行部１０３ａ，１０３ｂに対してブロック２の圧縮処理の開始指示を通知する。
【００９４】
［ステップＳ１０２］書き込み処理部１０７は、ステップＳ１０１で通知されたブロック１の書き込み処理の開始指示を受信すると、比較結果情報記憶部１５１に記憶されている比較結果情報に対応するブロック１の書き込みブロックをテープストレージ１２０に書き込む書き込み処理を開始する。
【００９５】
［ステップＳ１０３ａ］アルゴリズム実行部１０３ａは、ステップＳ１０１で通知されたブロック２の圧縮処理の開始指示を受信すると、ブロック２をアルゴリズムＡで圧縮する圧縮処理を開始する。
【００９６】
［ステップＳ１０３ｂ］アルゴリズム実行部１０３ｂは、ステップＳ１０１で通知されたブロック２の圧縮処理の開始指示を受信すると、ブロック２をアルゴリズムＢで圧縮する圧縮処理を開始する。なお、ステップＳ１０２，Ｓ１０３ａ，Ｓ１０３ｂは、それぞれ書き込み処理部１０７、アルゴリズム実行部１０３ａ，１０３ｂによって並行して実行される。
【００９７】
［ステップＳ１０４］アルゴリズム実行部１０３ｂが、ステップＳ１０３ｂで開始したブロック２の圧縮処理を完了したものとする。
［ステップＳ１０５］アルゴリズム実行部１０３ｂは、ステップＳ１０４における圧縮処理の完了に基づいて、比較処理部１０５に対して圧縮結果通知を送信する。
【００９８】
［ステップＳ１０６］比較処理部１０５は、ステップＳ１０５で送信された圧縮結果通知に基づいて、アルゴリズム実行部１０３ｂでアルゴリズムＢにより圧縮されたブロック２の圧縮ブロックのサイズと、比較結果情報記憶部１５１に記憶されている比較結果情報が示すブロック（この時点では圧縮されていないブロック２）のサイズとを比較する。ここでは、比較処理部１０５による比較の結果、アルゴリズム実行部１０３ｂによって圧縮された圧縮ブロックの方がサイズが小さかったものとする。
【００９９】
［ステップＳ１０７］比較処理部１０５は、ステップＳ１０６における比較の結果、アルゴリズム実行部１０３ｂによって圧縮された圧縮ブロックの方がサイズが小さかった場合、比較結果情報記憶部１５１に記憶されているブロック２の比較結果情報を、アルゴリズム実行部１０３ｂによって圧縮された圧縮ブロックに対応する比較結果情報で更新する。また、比較処理部１０５は、書き込み開始判定部１０６に対して比較結果情報を更新したことを通知する比較結果更新通知を送信する。なお、この時点ではブロック１の書き込み処理が完了していないため、書き込み開始判定部１０６は、ステップＳ１０７の比較結果更新通知を受信しても書き込み開始判定を行わない。
【０１００】
［ステップＳ１１１］アルゴリズム実行部１０３ａが、ステップＳ１０３ａで開始したブロック２の圧縮処理を完了したものとする。
［ステップＳ１１２］アルゴリズム実行部１０３ａは、ステップＳ１１１における圧縮処理の完了に基づいて、比較処理部１０５に対して圧縮結果通知を送信する。
【０１０１】
［ステップＳ１１３］比較処理部１０５は、ステップＳ１１２で送信された圧縮結果通知に基づいて、アルゴリズム実行部１０３ａでアルゴリズムＡにより圧縮されたブロック２の圧縮ブロックのサイズと、比較結果情報記憶部１５１に記憶されている比較結果情報が示すブロック（この時点ではアルゴリズム実行部１０３ｂで圧縮されたブロック２の圧縮ブロック）のサイズとを比較する。ここでは、比較処理部１０５による比較の結果、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックの方がサイズが小さかったものとする。
【０１０２】
［ステップＳ１１４］比較処理部１０５は、ステップＳ１１３における比較の結果、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックの方がサイズが小さかった場合に、比較結果情報記憶部１５１に記憶されているブロック２の比較結果情報を、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックに対応する比較結果情報で更新する。また、比較処理部１０５は、書き込み開始判定部１０６に対して比較結果情報を更新したことを通知する比較結果更新通知を送信する。なお、この時点ではブロック１の書き込み処理が完了していないため、書き込み開始判定部１０６は、ステップＳ１１４の比較結果更新通知を受信しても書き込み開始判定を行わない。
【０１０３】
［ステップＳ１１５］書き込み処理部１０７が、ステップＳ１０２で開始したブロック１の書き込みブロックの書き込み処理を完了したものとする。
［ステップＳ１１６］書き込み処理部１０７は、ステップＳ１１５における書き込み処理の完了に基づいて、書き込み開始判定部１０６に対して書き込み完了通知を送信する。
【０１０４】
［ステップＳ１１７］書き込み開始判定部１０６は、ステップＳ１１６で送信された書き込み完了通知を受信すると、比較結果情報記憶部１５１に記憶されているブロック２のアルゴリズム実行部１０３ａによる圧縮ブロックの比較結果情報を参照する。
【０１０５】
［ステップＳ１１８］書き込み開始判定部１０６は、ステップＳ１１７で参照した比較結果情報に基づく書き込み開始判定の結果、判定条件式が満たされたものと判断し、ブロック２の書き込みを開始すると共に、ブロック２に続くブロック３の圧縮を開始する旨を判定したものとする。これにより、ブロック１の書き込みおよびブロック２の圧縮の処理が完了し、以下に示すブロック２の書き込みおよびブロック３の圧縮の処理が開始される。
【０１０６】
図１４および図１５のステップＳ２０１からステップＳ２１４に、ブロック２の書き込みおよび３番目のブロック（ブロック３）の圧縮の処理の手順を示す。図１４および図１５は、アルゴリズム実行部１０３ｂの圧縮処理の完了前にアルゴリズム実行部１０３ａの圧縮処理が判定条件式を満たしたことによって書き込み開始判定による開始が決定される場合の例である。
【０１０７】
［ステップＳ２０１］書き込み開始判定部１０６は、ステップＳ１１８の書き込み開始判定で、ブロック２の書き込みおよびブロック３の圧縮の開始を決定すると、書き込み処理部１０７に対してブロック２の書き込み処理の開始指示を通知すると共に、アルゴリズム実行部１０３ａ，１０３ｂに対してブロック３の圧縮処理の開始指示を通知する。
【０１０８】
［ステップＳ２０２］書き込み処理部１０７は、ステップＳ２０１で通知されたブロック２の書き込み処理の開始指示を受信すると、比較結果情報記憶部１５１に記憶されている比較結果情報に対応するブロック２の書き込みブロックをテープストレージ１２０に書き込む書き込み処理を開始する。
【０１０９】
［ステップＳ２０３ａ］アルゴリズム実行部１０３ａは、ステップＳ２０１で通知されたブロック３の圧縮処理の開始指示を受信すると、ブロック３をアルゴリズムＡで圧縮する圧縮処理を開始する。
【０１１０】
［ステップＳ２０３ｂ］アルゴリズム実行部１０３ｂは、ステップＳ２０１で通知されたブロック３の圧縮処理の開始指示を受信すると、ブロック３をアルゴリズムＢで圧縮する圧縮処理を開始する。なお、ステップＳ２０２，Ｓ２０３ａ，Ｓ２０３ｂは、それぞれ書き込み処理部１０７、アルゴリズム実行部１０３ａ，１０３ｂによって並行して実行される。
【０１１１】
［ステップＳ２０４］アルゴリズム実行部１０３ａが、ステップＳ２０３ａで開始したブロック３の圧縮処理を完了したものとする。
［ステップＳ２０５］アルゴリズム実行部１０３ａは、ステップＳ２０４における圧縮処理の完了に基づいて、比較処理部１０５に対して圧縮結果通知を送信する。
【０１１２】
［ステップＳ２０６］比較処理部１０５は、ステップＳ２０５で送信された圧縮結果通知に基づいて、アルゴリズム実行部１０３ａでアルゴリズムＡにより圧縮されたブロック３の圧縮ブロックのサイズと、比較結果情報記憶部１５１に記憶されている比較結果情報が示すブロック（この時点では圧縮されていないブロック３）のサイズとを比較する。ここでは、比較処理部１０５による比較の結果、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックの方がサイズが小さかったものとする。
【０１１３】
［ステップＳ２０７］比較処理部１０５は、ステップＳ２０６における比較の結果、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックの方がサイズが小さかった場合には、比較結果情報記憶部１５１に記憶されているブロック３の比較結果情報を、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックに対応する比較結果情報で更新する。また、比較処理部１０５は、書き込み開始判定部１０６に対して比較結果情報を更新したことを通知する比較結果更新通知を送信する。
【０１１４】
［ステップＳ２１１］書き込み処理部１０７が、ステップＳ２０２で開始したブロック２の書き込みブロックの書き込み処理を完了したものとする。
［ステップＳ２１２］書き込み処理部１０７は、ステップＳ２１１における書き込み処理の完了に基づいて、書き込み開始判定部１０６に対して書き込み完了通知を送信する。
【０１１５】
［ステップＳ２１３］書き込み開始判定部１０６は、ステップＳ２１２で送信された書き込み完了通知を受信すると、比較結果情報記憶部１５１に記憶されているブロック３のアルゴリズム実行部１０３ａによる圧縮ブロックの比較結果情報を参照する。
【０１１６】
［ステップＳ２１４］書き込み開始判定部１０６は、ステップＳ２１３で参照した比較結果情報に基づく書き込み開始判定の結果、判定条件式が満たされたものと判定し、ブロック３の書き込みを開始すると共にブロック３に続くブロック４の圧縮を開始する旨を判定したものとする。これにより、ブロック２の書き込みおよびブロック３の圧縮の処理が完了する。なお、ステップＳ２１４では、アルゴリズム実行部１０３ｂによるブロック３の圧縮処理が完了する前に、ブロック３の書き込みおよびブロック４の圧縮の開始が決定されている。このため、後述するようにアルゴリズム実行部１０３ｂは、ブロック３の圧縮処理を中断する。次に、以下に示すブロック３の書き込みおよびブロック４の圧縮の処理が開始される。
【０１１７】
図１６から図１８の前半のステップＳ３０１からステップＳ３２２に、ブロック３の書き込みおよび４番目のブロック（ブロック４）の圧縮の処理の手順を示す。図１６から図１８の前半は、アルゴリズム実行部１０３ｂの圧縮処理の完了時において書き込み開始判定により判定条件を満たさず、アルゴリズム実行部１０３ａの圧縮処理が判定条件式を満たしたことによって書き込み開始判定による開始が決定される場合の例である。また、図１８の後半のステップＳ４０１からステップＳ４０３ａ，４０３ｂに、ブロック４の書き込みおよび５番目のブロック（ブロック５）の圧縮の処理の手順の一部を示す。図１８の後半は、図１６から図１８の前半の処理の完了に基づいて、ブロック４の書き込みおよびブロック５の圧縮の処理を開始する例である。
【０１１８】
［ステップＳ３０１］書き込み開始判定部１０６は、圧縮処理部１０３によるブロック３の圧縮処理が完了し、書き込み開始判定で、ブロック３の書き込みおよびブロック４の圧縮の開始を決定すると、書き込み処理部１０７に対してブロック３の書き込み処理の開始指示を通知すると共に、アルゴリズム実行部１０３ａ，１０３ｂに対してブロック４の圧縮処理の開始指示を通知する。
【０１１９】
［ステップＳ３０２］書き込み処理部１０７は、ステップＳ３０１で通知されたブロック３の書き込み処理の開始指示を受信すると、比較結果情報記憶部１５１に記憶されている比較結果情報に示されているブロック３の書き込みブロックをテープストレージ１２０に書き込む書き込み処理を開始する。
【０１２０】
［ステップＳ３０３ａ］アルゴリズム実行部１０３ａは、ステップＳ３０１で通知されたブロック４の圧縮処理の開始指示を受信すると、ブロック４をアルゴリズムＡで圧縮する圧縮処理を開始する。
【０１２１】
［ステップＳ３０３ｂ］アルゴリズム実行部１０３ｂは、ステップＳ３０１で通知されたブロック４の圧縮処理の開始指示を受信すると、完了していなかったブロック３をアルゴリズムＢで圧縮する圧縮処理を中止し、ブロック４をアルゴリズムＢで圧縮する圧縮処理を開始する。なお、ステップＳ３０２，Ｓ３０３ａ，Ｓ３０３ｂは、それぞれ書き込み処理部１０７、アルゴリズム実行部１０３ａ，１０３ｂによって並行して実行される。
【０１２２】
［ステップＳ３０４］アルゴリズム実行部１０３ｂが、ステップＳ３０３ｂで開始したブロック４の圧縮処理を完了したものとする。
［ステップＳ３０５］アルゴリズム実行部１０３ｂは、ステップＳ３０４における圧縮処理の完了に基づいて、比較処理部１０５に対して圧縮結果通知を送信する。
【０１２３】
［ステップＳ３０６］比較処理部１０５は、ステップＳ３０５で送信された圧縮結果通知に基づいて、アルゴリズム実行部１０３ｂでアルゴリズムＢにより圧縮されたブロック４の圧縮ブロックのサイズと、比較結果情報記憶部１５１に記憶されている比較結果情報が示すブロック（この時点では圧縮されていないブロック４）のサイズとを比較する。ここでは、比較処理部１０５による比較の結果、アルゴリズム実行部１０３ｂによって圧縮された圧縮ブロックの方がサイズが小さかったものとする。
【０１２４】
［ステップＳ３０７］比較処理部１０５は、ステップＳ３０６における比較の結果、アルゴリズム実行部１０３ｂによって圧縮された圧縮ブロックの方がサイズが小さかったことに基づいて、比較結果情報記憶部１５１に記憶されているブロック４の比較結果情報を、アルゴリズム実行部１０３ｂによって圧縮された圧縮ブロックを示す比較結果情報で更新する。また、比較処理部１０５は、書き込み開始判定部１０６に対して比較結果情報を更新したことを通知する比較結果更新通知を送信する。なお、この時点ではブロック３の書き込み処理が完了していないため、書き込み開始判定部１０６は、ステップＳ３０７の比較結果更新通知を受信しても書き込み開始判定を行わない。
【０１２５】
［ステップＳ３１１］書き込み処理部１０７は、ステップＳ３０２で開始したブロック３の書き込みブロックの書き込み処理を完了したものとする。
［ステップＳ３１２］書き込み処理部１０７は、ステップＳ３１１における書き込み処理の完了に基づいて、書き込み開始判定部１０６に対して書き込み完了通知を送信する。
【０１２６】
［ステップＳ３１３］書き込み開始判定部１０６は、ステップＳ３１２で送信された書き込み完了通知を受信すると、比較結果情報記憶部１５１に記憶されているブロック４のアルゴリズム実行部１０３ｂによる圧縮ブロックの比較結果情報を参照する。ここでは、ステップＳ３１３において、アルゴリズム実行部１０３ｂによる圧縮ブロックの圧縮ブロックサイズが比較的大きかったものとし、アルゴリズム実行部１０３ｂの判定条件式が成立しなかったものとする。
【０１２７】
［ステップＳ３１４］書き込み開始判定部１０６は、ステップＳ３１３で参照した比較結果情報に基づく書き込み開始判定の結果、判定条件式が成立しなかったため、ブロック４の書き込みおよびブロック５の圧縮を開始しない旨を判定したものとする。
【０１２８】
［ステップＳ３１５］アルゴリズム実行部１０３ａは、ステップＳ３０３ａで開始したブロック４の圧縮処理を完了したものとする。
［ステップＳ３１６］アルゴリズム実行部１０３ａは、ステップＳ３１５における圧縮処理の完了に基づいて、比較処理部１０５に対して圧縮結果通知を送信する。
【０１２９】
［ステップＳ３１７］比較処理部１０５は、ステップＳ３１６で送信された圧縮結果通知に基づいて、アルゴリズム実行部１０３ａでアルゴリズムＡにより圧縮されたブロック４の圧縮ブロックのサイズと、比較結果情報記憶部１５１に記憶されている比較結果情報が示すブロック（この時点ではアルゴリズム実行部１０３ｂで圧縮されたブロック４の圧縮ブロック）のサイズとを比較する。ここでは、比較処理部１０５による比較の結果、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックの方がサイズが小さかったものとする。
【０１３０】
［ステップＳ３１８］比較処理部１０５は、ステップＳ３１７における比較の結果、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックの方がサイズが小さかった場合に、比較結果情報記憶部１５１に記憶されているブロック４の比較結果情報を、アルゴリズム実行部１０３ａによって圧縮された圧縮ブロックを示す比較結果情報で更新する。また、比較処理部１０５は、書き込み開始判定部１０６に対して比較結果情報を更新したことを通知する比較結果更新通知を送信する。
【０１３１】
［ステップＳ３２１］書き込み開始判定部１０６は、既にステップＳ３１２で書き込み完了通知を受信しているので、ステップＳ３１８で送信された比較結果通知を受信すると、比較結果情報記憶部１５１に記憶されているブロック４のアルゴリズム実行部１０３ａによる圧縮ブロックの比較結果情報を参照する。ここでは、ステップＳ３２１において、アルゴリズム実行部１０３ａによる圧縮ブロックの圧縮ブロックサイズが十分小さかったものとし、アルゴリズム実行部１０３ａの判定条件式が成立したものとする。
【０１３２】
［ステップＳ３２２］書き込み開始判定部１０６は、ステップＳ３２１で参照した比較結果情報に基づく書き込み開始判定の結果、判定条件式が成立したため、ブロック４の書き込みを開始すると共にブロック５の圧縮を開始する旨を判定したものとする。これにより、ブロック３の書き込みおよびブロック４の圧縮の処理が完了し、以下に示すブロック４の書き込みおよびブロック５の圧縮の処理が開始される。
【０１３３】
［ステップＳ４０１］書き込み開始判定部１０６は、圧縮処理部１０３によるブロック４の圧縮処理が完了し、書き込み開始判定で、ブロック４の書き込みおよびブロック５の圧縮の開始を決定すると、書き込み処理部１０７に対してブロック４の書き込み処理の開始指示を通知すると共に、アルゴリズム実行部１０３ａ，１０３ｂに対してブロック５の圧縮処理の開始指示を通知する。
【０１３４】
［ステップＳ４０２］書き込み処理部１０７は、ステップＳ４０１で通知されたブロック４の書き込み処理の開始指示を受信すると、比較結果情報記憶部１５１に記憶されている比較結果情報に示されているブロック４の書き込みブロックをテープストレージ１２０に書き込む書き込み処理を開始する。
【０１３５】
［ステップＳ４０３ａ］アルゴリズム実行部１０３ａは、ステップＳ４０１で通知されたブロック５の圧縮処理の開始指示を受信すると、ブロック５をアルゴリズムＡで圧縮する圧縮処理を開始する。
【０１３６】
［ステップＳ４０３ｂ］アルゴリズム実行部１０３ｂは、ステップＳ４０１で通知されたブロック５の圧縮処理の開始指示を受信すると、ブロック５をアルゴリズムＢで圧縮する圧縮処理を開始する。なお、ステップＳ４０２，Ｓ４０３ａ，Ｓ４０３ｂは、それぞれ書き込み処理部１０７、アルゴリズム実行部１０３ａ，１０３ｂによって並行して実行される。
【０１３７】
次に、図１９から図２４に従って、本実施の形態のバックアップ装置１００の実行例および比較例を対比して示す。
図１９は、第２の実施の形態の実行例および比較例の設定条件を示す図である。以下では、本実施の形態の事項例および比較例は、図１９に示す設定条件に基づいて動作するものとする。
【０１３８】
図１９に示す“データサイズ”は、ホストコンピュータ３００から送信され、実行例および比較例のそれぞれでバックアップの対象となるデータ３００ａのサイズをＭＢｙｔｅで示したものである。ここでは、データサイズは、一例として１０００ＭＢｙｔｅとする。
【０１３９】
“分割ブロックサイズ”は、ホストコンピュータ３００から送信されたデータ３００ａを、実行例および比較例のそれぞれでブロック３００ｂの各ブロックに分割する際のサイズをＭＢｙｔｅで示したものである。ここでは、ブロックサイズは、一例として２００ＭＢｙｔｅとする。
【０１４０】
“書き込み速度”は、分割されたブロック３００ｂの各ブロックが圧縮された圧縮ブロック３００ｃを実行例および比較例のそれぞれでテープストレージ１２０等の記憶媒体に書き込む際の速度をＭＢｙｔｅ／秒で示したものである。ここでは、書き込む速度は、一例として２０ＭＢｙｔｅ／秒とする。
【０１４１】
“上限時間”は、実行例および比較例のそれぞれにおいて、ブロックの圧縮処理が完了していないアルゴリズムがあっても当該ブロックの圧縮処理を中断し、書き込みブロックの書き込み処理の開始および次のブロックの圧縮処理の開始を行う上限の時間を秒で示したものである。ここでは、上限時間は、一例として１５秒とする。
【０１４２】
図２０は、第２の実施の形態の実行例の実行結果を示す図である。図２０に、本実施の形態のバックアップ装置１００の図１９に示した設定条件に基づく実行例の実行結果を示す。
【０１４３】
“圧縮ブロック”は、実行結果の元となった圧縮処理部１０３による圧縮処理の対象のブロックを示す。例えば、“１”は、データ３００ａが分割された最初のブロックであるブロック１の圧縮ブロックの実行結果であることを示す。ここで、図１９の設定条件に示したように、データ３００ａのデータサイズは１０００ＭＢｙｔｅであり、分割ブロックサイズは２００ＭＢｙｔｅであるため、データ３００ａは５つのブロックに分割される。また、圧縮ブロックの下から２番目の行の“書き込み”は、最後のブロックであるブロック５の書き込みブロックの書き込み処理の実行結果であることを示す。また、最後の行の“合計”は、各項目の合計値である。
【０１４４】
“圧縮時間”は、圧縮処理部１０３が有するアルゴリズム実行部１０３ａ〜ｄのそれぞれで実行されるアルゴリズムによる各ブロックの圧縮処理に要した時間を秒で示す。ここで、下線が引かれている項目は、当該アルゴリズムによって圧縮された圧縮ブロックが書き込み処理を行う書き込みブロックに決定されたことを示す。また、括弧に囲まれている項目は、当該アルゴリズムによる圧縮処理が書き込み開始判定部１０６による書き込み開始判定の結果中断されたことを示し、実行例においては、圧縮処理は完了していないが、説明の便宜上記載したものである。
【０１４５】
“圧縮ブロックサイズ”は、圧縮処理部１０３が有するアルゴリズム実行部１０３ａ〜ｄのそれぞれで実行されるアルゴリズムにより各ブロックが圧縮された圧縮ブロックのサイズをＭＢｙｔｅで示す。ここで、“圧縮時間”と同様に、下線が引かれている項目は、当該アルゴリズムによって圧縮された圧縮ブロックが書き込み処理を行う書き込みブロックに決定されたことを示す。また、括弧に囲まれている項目は、当該アルゴリズムによる圧縮処理が書き込み開始判定部１０６による書き込み開始判定の結果中断されたことを示し、実行例においては、圧縮処理は完了していないが、説明の便宜上記載したものである。また、圧縮ブロックサイズについては、本実施の形態のバックアップ装置１００で書き込まれる場合がある圧縮処理部１０３によって圧縮されていないブロックのサイズを示す“非圧縮”が設けられている。
【０１４６】
“経過時間”は、圧縮処理部１０３による圧縮処理および書き込み処理部１０７における書き込み処理（ブロック１の圧縮処理のステップでは圧縮処理のみ）が開始されてから、書き込み開始判定部１０６により書き込まれる書き込みブロックが決定されるまでに要した時間を秒で示す。
【０１４７】
“書き込みブロックサイズ”は、書き込み開始判定部１０６によって判定された書き込まれる圧縮ブロックのサイズをＭＢｙｔｅで示す。
図２１および図２２は、第２の実施の形態における各ブロックの処理の結果を示す図である。次に、図２１および図２２に従って、図２０における本実施の形態の実行例のブロック１〜５の圧縮処理の結果について説明する。図２１（Ａ）に、ブロック１の圧縮処理結果を示す。図２１（Ｂ）に、ブロック２の圧縮処理結果を示す。図２１（Ｃ）に、ブロック３の圧縮処理結果を示す。図２２（Ａ）に、ブロック４の圧縮処理結果を示す。図２２（Ｂ）に、ブロック５の圧縮処理結果を示す。図２２（Ｃ）に、ブロック５の書き込み処理結果を示す。
【０１４８】
図２１および図２２において、“決定アルゴリズム”は、バックアップ装置１００におけるブロック２の圧縮処理の結果、テープストレージ１２０に書き込まれる書き込みブロックとして決定された圧縮ブロックが圧縮されたアルゴリズムを示す。なお、圧縮していないブロックが書き込みブロックに決定された場合には、決定アルゴリズムは“非圧縮”とする。
【０１４９】
“書き込みブロックサイズ”は、バックアップ装置１００におけるブロック１の圧縮処理の結果、テープストレージ１２０に書き込まれる書き込みブロックとして決定された圧縮ブロックのサイズをＭＢｙｔｅで示す。
【０１５０】
“経過時間”は、バックアップ装置におけるブロック１の圧縮処理の開始から書き込み開始判定部１０６によるブロック１の書き込みブロックの書き込み処理が開始されるまでに経過した時間を秒で示す。
【０１５１】
本実施の形態の実行例において、図２１（Ａ）に示すブロック１は、バックアップ装置１００によって、データ３００ａにおける最初に圧縮されるブロックであり、１つ前のブロックの圧縮処理が行われておらず、前のステップの経過時間が“０”である。このため、式（１）の判定条件式の右辺が“０”となり、判定条件式（ブロック１の圧縮ブロックの最小サイズ／書き込み速度（２０ＭＢｙｔｅ）＜＝０）が成立することはない。従って、書き込み開始判定部１０６は、図２０の“圧縮時間”に示したように、ブロック１の圧縮処理の開始から、最も処理の完了が遅いアルゴリズムＣが完了した、１１秒が経過した時点で、ブロック１の書き込みを開始すると判定する。これにより、ステップ１の経過時間は１１秒となる。このとき書き込み処理部１０７は、比較結果情報記憶部１５１に記憶されている比較結果情報によって示された、ブロック１のアルゴリズムＡ〜Ｄによる圧縮ブロックおよび圧縮されていないブロックのサイズ（図２０参照）のうち最もサイズが小さいアルゴリズムＣの圧縮ブロック（８０ＭＢｙｔｅ）を書き込みブロックに決定し、決定したアルゴリズムＣの圧縮ブロックを次のステップでテープストレージ１２０に書き込む。
【０１５２】
次に、本実施の形態の実行例では、図２１（Ｂ）に示すブロック２の圧縮処理およびブロック１の書き込みブロックの書き込み処理が行われる。ここで、書き込み速度が２０ＭＢｙｔｅ／秒であるため、ブロック２の圧縮処理の開始から４秒経過後に８０ＭＢｙｔｅのブロック１の書き込みブロックの書き込み処理部１０７による書き込みが完了し、この時点で書き込み開始判定部１０６がブロック２の書き込みを開始するとの判定を行ったものとする。このとき、ブロック１の圧縮処理の経過時間が“１１”であるので、式（１）の判定条件式の右辺が“１１”となる。また、ブロック２の圧縮処理の開始から４秒経過後の時点では、図２０に示すように、アルゴリズムＡ〜Ｄによるブロック２の圧縮処理はいずれも完了していないので、圧縮されていないブロック２の比較結果情報が比較結果情報記憶部１５１に記憶される。これに基づき、ブロック１の書き込みブロックの書き込み完了時において、判定条件式（ブロック２の圧縮ブロックの最小サイズ（２００ＭＢｙｔｅ）／書き込み速度（２０ＭＢｙｔｅ）＝１０＜＝１１）が成立する。これにより、ブロック２の圧縮処理が完了したものと判定され、圧縮されていないブロック２が、ブロック２の書き込みブロックに決定される。また、これらにより、書き込み開始判定部１０６は、ブロック１の書き込みブロックの書き込み処理が完了した時点でブロック２の書き込みを開始すると判定する。また、これにより、ブロック２の経過時間は、、ブロック１の書き込むブロックの書き込みに要する時間である４秒となる。このとき書き込み処理部１０７は、比較結果情報記憶部１５１に記憶されている比較結果情報によって示された、ブロック２の圧縮されていないブロック（２００ＭＢｙｔｅ）を書き込みブロックに決定し、決定した圧縮されていないブロックを次のステップでテープストレージ１２０に書き込む。
【０１５３】
次に、本実施の形態の実行例では、図２１（Ｃ）に示すブロック３の圧縮処理およびブロック２の書き込みブロックの書き込み処理が行われる。ここで、ブロック３の圧縮処理の開始から１０秒経過後に２００ＭＢｙｔｅのブロック２の書き込みブロックの書き込み処理部１０７による書き込みが完了し、書き込み開始判定部１０６がブロック３の書き込み開始の判定を行ったものとする。このとき、ブロック２の経過時間が“４”であるので、式（１）の判定条件式の右辺が“４”となる。また、ブロック２の圧縮処理の開始から１０秒経過後の時点では、図２０に示すように、アルゴリズムＡによるブロック３の圧縮ブロックの比較結果情報が比較結果情報記憶部１５１に記憶されている。これに基づき、ブロック２の書き込みブロックの書き込み開始時において、判定条件式（ブロック３の圧縮ブロックの最小サイズ（１６２ＭＢｙｔｅ）／書き込み速度（２０ＭＢｙｔｅ）＝８．１＞４）は成立しない。
【０１５４】
また、図２０の例では、その後経過時間の上限時間である１５秒が経過するまでアルゴリズムＡの圧縮ブロックが最小サイズであることは変化せず、書き込み開始の判定式条件は満たされない。これにより、書き込み開始判定部１０６は、上限時間が経過した時点でブロック３の書き込みを開始すると判定する。これにより、ステップ３の経過時間は、上限時間である１５秒となる。このとき書き込み処理部１０７は、上限時間の経過時において、比較結果情報記憶部１５１に記憶されている比較結果情報によって示された、ブロック３のアルゴリズムＡの圧縮ブロック（１６２ＭＢｙｔｅ）を書き込みブロックに決定し、決定したアルゴリズムＡの圧縮ブロックを次のステップでテープストレージ１２０に書き込む。
【０１５５】
次に、本実施の形態の実行例では、図２２（Ａ）に示すブロック４の圧縮処理およびブロック３の書き込みブロックの書き込み処理が行われる。ここで、ブロック４の圧縮処理の開始から８．１秒経過後に１６２ＭＢｙｔｅのブロック３の書き込みブロックの書き込み処理部１０７による書き込みが完了し、書き込み開始判定部１０６がブロック４の書き込み開始判定を行ったものとする。このとき、ブロック３の経過時間が“１５”であるので、式（１）の判定条件式の右辺が“１５”となる。また、ブロック３の圧縮処理の開始から８．１秒経過後の時点では、図２０に示すように、アルゴリズムＣによるブロック４の圧縮ブロックの比較結果情報が比較結果情報記憶部１５１に記憶されている。これに基づき、ブロック３の書き込みブロックの書き込み開始時において、判定条件式（ブロック４の圧縮ブロックの最小サイズ（１９０ＭＢｙｔｅ）／書き込み速度（２０ＭＢｙｔｅ）＝９．５＜＝１５）が成立する。これにより、ブロック４の圧縮処理が完了したものと判定され、ブロック４のアルゴリズムＣによる圧縮ブロックが、ブロック４の書き込みブロックに決定される。また、これらにより、ステップ４の経過時間は、ブロック３の書き込むブロックの書き込みに要する時間である８．１秒となる。このとき書き込み処理部１０７は、比較結果情報記憶部１５１に記憶されている比較結果情報によって示された、ブロック４のアルゴリズムＣの圧縮ブロック（１９０ＭＢｙｔｅ）を書き込みブロックに決定し、決定したアルゴリズムＣの圧縮ブロックを次のステップでテープストレージ１２０に書き込む。
【０１５６】
次に、本実施の形態の実行例では、図２２（Ｂ）に示すブロック５の圧縮処理およびブロック４の書き込みブロックの書き込み処理が行われる。ここで、ブロック５の圧縮処理の開始から９．５秒経過後に１９０ＭＢｙｔｅのブロック４の書き込みブロックの書き込み処理部１０７による書き込みが完了し、書き込み開始判定部１０６がブロック５の書き込み開始判定を行ったものとする。このとき、ブロック４の経過時間が“８．１”であるので、式（１）の終了判定条件式の右辺が“８．１”となる。また、ブロック４の圧縮処理の開始から９．５秒経過後の時点では、図２０に示すように、アルゴリズムＤによるブロック５の圧縮ブロックの比較結果情報が比較結果情報記憶部１５１に記憶されている。これに基づき、ブロック４の書き込みブロックの書き込み開始時において、判定条件式（ブロック５の圧縮ブロックの最小サイズ（１０９ＭＢｙｔｅ）／書き込み速度（２０ＭＢｙｔｅ）＝５．４５≒５．５＜＝８．１）が成立する。これにより、ブロック５の圧縮処理が完了したものと判定され、ブロック５のアルゴリズムＤによる圧縮ブロックが、ブロック５の書き込みブロックに決定される。また、これらにより、ステップ５の経過時間は、ブロック４の書き込むブロックの書き込みに要する時間である９．５秒となる。このとき書き込み処理部１０７は、比較結果情報記憶部１５１に記憶されている比較結果情報によって示された、ブロック５のアルゴリズムＤの圧縮ブロック（１０９ＭＢｙｔｅ）を書き込みブロックに決定し、決定したアルゴリズムＤの圧縮ブロックを次の書き込みステップでテープストレージ１２０に書き込む。
【０１５７】
次に、本実施の形態の実行例では、図２２（Ｃ）に示すブロック５の書き込みブロックの書き込み処理が行われる。ここで、ブロック５の書き込みブロックの書き込み処理の開始から５．５秒経過後に１０９ＭＢｙｔｅのブロック５の書き込みブロックの書き込み処理部１０７による書き込みが完了する。
【０１５８】
図２３は、第２の実施の形態の実行例および比較例の実行結果の対比を示す図である。図２４は、第２の実施の形態の実行例および比較例のタイムチャートを示す図である。図２３および図２４では、図２０から図２２に示した本実施の形態の実行例および比較例を対比して示す。ここで、図２３および図２４に示した比較例は、図１９の設定条件に基づき、「圧縮処理の開始から上限時間（１５秒）経過時において、本実施の形態のバックアップ装置１００と同様のアルゴリズムＡ〜Ｄおよび圧縮されていないブロックのうち、最小サイズのものを書き込みブロックに決定する」という判定のルールで圧縮処理およびテープストレージに対する書き込み処理の開始を判定したものである。
【０１５９】
図２３および図２４に示すように、本実施の形態の実行例では、ブロック１からブロック５のバックアップに要した時間は５３．１秒である。一方、比較例では、ブロック１からブロック５のバックアップに要した時間は６９．５秒である。これらの例では、本実施の形態のバックアップ装置１００では、バックアップに要した時間が比較例に対して約２４％短縮されている。
【０１６０】
また、図２４に示すように、比較例では圧縮処理に要する時間が書き込み処理に要する時間よりも長いことから、書き込み処理において待機時間が必ず発生することになる。また、一般的にも、圧縮処理に要する時間と書き込み処理とが異なるために、圧縮処理または書き込み処理のいずれか要する時間が短い処理に待機時間が発生することになる。これに対して、本実施の形態では、例えば、図２４におけるブロック２の圧縮処理およびブロック１の書き込み処理、ブロック４の圧縮処理およびブロック３の書き込み処理、ブロック５の圧縮処理およびブロック４の書き込み処理のように、書き込み開始判定部１０６の判定に基づき、書き込み処理の終了に合わせて圧縮処理を切り上げる。これにより、書き込み処理の待機時間を減らすことで、全体のバックアップに要する時間を短縮することができる。
【０１６１】
なお、バックアップ装置１００は、ホストコンピュータ３００から送信されたデータ３００ａのバックアップを行うが、これに限らず、自己が記憶し、使用しているデータのバックアップや、他のコンピュータから送信されたデータや自己が生成したデータの記憶を行ってもよい。
【０１６２】
また、バックアップ装置１００は、ホストコンピュータ３００から送信されたデータ３００ａを分割処理部１０２で分割してブロック３００ｂを生成するが、これに限らず、ホストコンピュータ３００から既に分割されたブロック３００ｂを受信し、受信したブロック３００ｂについて先頭から順に処理を行ってもよい。
【０１６３】
このように、第２の実施の形態のバックアップ装置１００では、書き込み開始判定部１０６が開始判定を行い、開始判定の結果に基づいて書き込みブロックの書き込み処理および次のブロックの圧縮処理の開始を決定する。また、書き込み開始判定部１０６により開始が決定されると、完了していない圧縮処理が中断されると共に、その時点で圧縮が完了していたアルゴリズムの圧縮ブロックのうちサイズが最小のものが書き込みブロックとして決定される。また、書き込み処理部１０７による決定された書き込みブロックの書き込みおよび圧縮処理部１０３による次のブロックの圧縮処理が開始される。これにより、圧縮率の低下の抑制を図りつつ書き込み処理を高速化することが可能となる。
【０１６４】
また、比較処理部１０５は圧縮されていないブロックを比較対象および書き込み対象に含めているので、例えば、圧縮対象のブロックについていずれのアルゴリズムでも圧縮処理に長時間を要する場合や１つ圧縮処理と並行して書き込まれる書き込みブロックのサイズが小さい場合等に、処理時間を短縮することができる。
【０１６５】
また、書き込み開始判定部１０６は、圧縮処理を開始してから上限時間が経過した場合には、開始の決定を行って圧縮処理を中断し、その時点までに圧縮処理が完了した圧縮ブロックから書き込みブロックを決定するので、例えば、圧縮対象のブロックについていずれのアルゴリズムでも圧縮処理に長時間を要する場合等に、処理時間を短縮することができる。
【０１６６】
また、書き込み開始判定部１０６は、すべてのアルゴリズムで圧縮処理が完了した場合には、開始の決定を行って書き込みブロックを決定するので、例えば、圧縮対象のブロックについていずれのアルゴリズムでも短時間で圧縮処理が完了した場合等に、処理時間を短縮することができる。
【０１６７】
また、比較処理部１０５は、アルゴリズム実行部１０３ａ〜１０３ｄのいずれかにおいて新たに圧縮処理が完了する都度、圧縮ブロックのサイズを比較するので、サイズが小さい圧縮ブロックが生成された場合に直ちに比較結果情報に反映させることができ、処理時間を短縮することができる。
【０１６８】
また、書き込み開始判定部１０６は、１つ前のブロックの書き込み処理が完了すると開始判定を行うので、書き込み処理の完了時において既にすべてのアルゴリズムで圧縮ブロックの生成が完了していた場合や、十分サイズが小さい圧縮ブロックが生成されていた場合に、直ちに次の書き込み処理および圧縮処理に移行することができ、処理時間を短縮することができる。
【０１６９】
また、書き込み開始判定部１０６は、比較処理部１０５により比較結果情報が更新されると開始判定を行うので、すべてのアルゴリズムで圧縮ブロックの生成が完了した場合や、新たに十分サイズが小さい圧縮ブロックが生成された場合に、直ちに次の書き込み処理および圧縮処理に移行することができ、処理時間を短縮することができる。
【０１７０】
また、書き込み開始判定部１０６は、所定時間が経過する毎に開始判定を行うことにより、簡潔な処理で開始判定を実行するか否かを判定することができ、処理負荷の増大を抑制することで処理時間を短縮することができる。
【０１７１】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、開示の技術は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１７２】
１  データ記憶装置
１ａ  圧縮処理部
１ａ１，１ａ２  アルゴリズム実行部
１ｂ  比較処理部
１ｃ  書き込み開始判定部
１ｄ  書き込み処理部
１ｅ  比較結果情報記憶部
１ｆ  ブロック記憶部
１ｆ１，１ｆ２，１ｆ３  圧縮ブロック
２  ブロック
【図１】
2012025974.tif 000003
【図２】
2012025974.tif 000004
【図３】
2012025974.tif 000005
【図４】
2012025974.tif 000006
【図５】
2012025974.tif 000007
【図６】
2012025974.tif 000008
【図７】
2012025974.tif 000009
【図８】
2012025974.tif 000010
【図９】
2012025974.tif 000011
【図１０】
2012025974.tif 000012
【図１１】
2012025974.tif 000013
【図１２】
2012025974.tif 000014
【図１３】
2012025974.tif 000015
【図１４】
2012025974.tif 000016
【図１５】
2012025974.tif 000017
【図１６】
2012025974.tif 000018
【図１７】
2012025974.tif 000019
【図１８】
2012025974.tif 000020
【図１９】
2012025974.tif 000021
【図２０】
2012025974.tif 000022
【図２１】
2012025974.tif 000023
【図２２】
2012025974.tif 000024
【図２３】
2012025974.tif 000025
【図２４】
2012025974.tif 000026
【手続補正書】
【提出日】平成25年2月25日(2013.2.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のブロックに分割された記憶対象のデータについて、分割ブロック毎に、圧縮した圧縮ブロックの書き込みと並行して次の分割ブロックの圧縮を行うデータ記憶装置であって、
記憶対象のデータの１つの分割ブロックをそれぞれ異なるアルゴリズムで並行して圧縮して圧縮ブロックを生成するアルゴリズム実行部を複数有し、前記複数のアルゴリズム実行部により１つの分割ブロックについて複数種類の圧縮ブロックを生成する圧縮処理部と、
前記圧縮処理部で生成された圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶する記憶部と、
各アルゴリズム実行部で生成された圧縮ブロックのサイズを比較し、前記圧縮ブロックのうち最もサイズが小さい圧縮ブロックの比較結果情報を前記記憶部に記憶させる比較処理部と、
圧縮ブロックを書き込み可能なブロック記憶部と、
前記記憶部に記憶されている比較結果情報で示された圧縮ブロックのサイズを、当該圧縮ブロックの書き込み処理における書き込み速度で除した商が、１つ前の分割ブロックの圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定し、前記商が前記経過時間以下であると判定した場合には、前記生成された圧縮ブロックの前記ブロック記憶部への書き込み処理と前記記憶対象のデータの次のブロックの圧縮処理とを開始を決定する書き込み開始判定部と、
前記書き込み開始判定部により開始が決定された場合、前記記憶部に記憶されている比較結果情報に基づいて、前記圧縮処理部で生成された圧縮ブロックのうち書き込み開始判定部により開始が決定された時点において最もサイズが小さい圧縮ブロックを書き込みブロックとして決定し、前記決定した書き込みブロックを前記ブロック記憶部に書き込む書き込み処理部と、
を有することを特徴とするデータ記憶装置。
【請求項２】
前記比較処理部は、前記アルゴリズム実行部で生成された圧縮ブロックのサイズと共に圧縮していない分割ブロックのサイズを比較し、前記アルゴリズム実行部の各々で生成された圧縮ブロックおよび前記分割ブロックのうち最もサイズが小さいブロックの比較結果情報を前記記憶部に記憶させることを特徴とする請求項１記載のデータ記憶装置。
【請求項３】
前記書き込み開始判定部は、前記開始判定において、前記圧縮処理部による分割ブロックの圧縮処理が開始してから所定時間が経過したか否かを判定し、前記所定時間が経過したと判定した場合には、前記生成された圧縮ブロックの前記ブロック記憶部への書き込み処理と前記記憶対象のデータの次のブロックの圧縮処理との開始を決定することを特徴とする請求項１記載のデータ記憶装置。
【請求項４】
前記書き込み開始判定部は、前記開始判定において、すべてのアルゴリズム実行部による分割ブロックの圧縮処理が完了したか否かを判定し、すべてのアルゴリズム実行部による圧縮処理が完了したと判定した場合には、前記生成された圧縮ブロックの前記ブロック記憶部への書き込み処理と前記記憶対象のデータの次のブロックの圧縮処理との開始を決定することを特徴とする請求項１記載のデータ記憶装置。
【請求項５】
前記比較処理部は、前記アルゴリズム実行部において圧縮処理が完了する都度、前記記憶部に記憶されている比較結果情報に示されている圧縮ブロックのサイズと前記アルゴリズム実行部で新たに生成された圧縮ブロックのサイズとを比較し、前記アルゴリズム実行部で新たに生成された圧縮ブロックのサイズの方が小さい場合には、前記アルゴリズム実行部で新たに生成された圧縮ブロックの比較結果情報により前記記憶部に記憶されている比較結果情報を更新することを特徴とする請求項１記載のデータ記憶装置。
【請求項６】
複数のブロックに分割された記憶対象のデータについて、分割ブロック毎に、圧縮した圧縮ブロックの書き込みと並行して次の分割ブロックの圧縮を行うデータ記憶装置制御方法であって、
圧縮処理部が、それぞれ異なるアルゴリズムで並行して圧縮する複数のアルゴリズム実行部により記憶対象のデータの１つの分割ブロックを圧縮して、複数種類の圧縮ブロックを生成し、
比較処理部が、複数のアルゴリズム実行部で生成された圧縮ブロックのサイズを比較し、前記圧縮ブロックのうち最もサイズが小さい圧縮ブロックと当該圧縮ブロックのサイズとを示す比較結果情報を記憶部に記憶させ、
書き込み開始判定部が、前記記憶部に記憶されている比較結果情報が示す圧縮ブロックのサイズを書き込み処理時の書き込み速度で除した商が、１つ前の分割ブロックの圧縮処理の開始から書き込み処理の開始までに要した経過時間以下であるか否かを判定し、
前記商が前記経過時間以下であると判定した場合には、前記圧縮ブロックのブロック記憶部への書き込み処理と、前記記憶対象のデータの次のブロックの圧縮処理の開始とを決定し、
書き込み処理部が、前記書き込み開始判定部により開始が決定された場合、前記記憶部に記憶されている比較結果情報に基づいて、前記書き込み開始判定部により開始が決定された時点で前記圧縮処理部で生成された圧縮ブロックのうち最もサイズが小さい圧縮ブロックを書き込みブロックとして決定し、
決定した書き込みブロックをブロック記憶部に書き込む、
ことを特徴とするデータ記憶装置制御方法。
【国際調査報告】
2012025974.tif 000027
2012025974.tif 000028
2012025974.tif 000029