(57)【要約】【課題】圧縮処理の処理時間の向上および消費電力低減を図る。【解決手段】本発明の情報処理装置は、圧縮伸張エンジン１４における圧縮状況を観測する圧縮状況観測モニタ１８を設けている。圧縮状況観測モニタ１８は、圧縮伸張エンジン１４から出力された圧縮済出力データのデータサイズが無圧縮入力データのデータサイズを上回ったことを検出した場合には、圧縮伸張エンジン１４に対して、圧縮処理を中止し、無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、ＤＭＣＡ１３に対して、無圧縮入力データの全領域を無圧縮のまま主記憶装置１６のＲＡＭ  Ｄｉｓｋ領域１７に転送して保持させるよう指示する。【選択図】図１
2008152339.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、前記記憶装置へのアクセスを行う情報処理ユニットと、前記記憶装置へのスワップアウト時に、無圧縮入力データの圧縮処理を行い、圧縮されたデータを圧縮済出力データとして前記記憶装置に逐次出力する圧縮手段とを有してなる情報処理装置において、
前記圧縮手段における圧縮状況を観測し、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示する圧縮状況観測手段をさらに有することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記圧縮状況観測手段は、前記圧縮手段における圧縮状況を観測すると同時に、前記無圧縮入力データのうち圧縮が行われていないデータを理論的な最高圧縮効率で圧縮した場合のデータサイズを算出し、算出したデータサイズと前記圧縮手段から出力された前記圧縮済出力データのデータサイズとを加算し、加算したデータサイズが規定サイズを上回った場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することを特徴とする情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置において、
前記圧縮状況観測手段は、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出し、算出した圧縮効率が規定値よりも低い場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することを特徴とする情報処理装置。
【請求項４】
請求項１から３のいずれか１項に記載の情報処理装置において、
前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、圧縮完了後の前記圧縮済出力データのデータサイズを前記記憶装置に保持させることを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置において、
前記圧縮手段は、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記圧縮済出力データのデータサイズを基に、圧縮効率を予測することを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
前記圧縮手段は、圧縮効率の予測結果を基に、圧縮効率が高い無圧縮入力データを優先して圧縮処理を行うことを特徴とする情報処理装置。
【請求項７】
請求項１から６のいずれか１項に記載の情報処理装置において、
前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、前記無圧縮入力データの性質を前記記憶装置に保持させ、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記無圧縮入力データの性質に応じた圧縮アルゴリズムを選択して圧縮処理を行うことを特徴とする情報処理装置。
【請求項８】
記憶装置と、前記記憶装置へのスワップアウト時に、無圧縮入力データの圧縮処理を行い、圧縮されたデータを圧縮済出力データとして前記記憶装置に逐次出力する圧縮手段とを有してなる情報処理装置による情報処理方法であって、
前記圧縮手段における圧縮状況を観測するステップと、
前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、前記圧縮手段に圧縮処理を中止させて前記無圧縮入力データおよび圧縮後のデータを破棄させるとともに、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるステップとを有することを特徴とする情報処理方法。
【請求項９】
請求項８に記載の情報処理方法において、
前記圧縮手段における圧縮状況を観測すると同時に、前記無圧縮入力データのうち圧縮が行われていないデータを理論的な最高圧縮効率で圧縮した場合のデータサイズを算出するステップと、
前記算出したデータサイズと前記圧縮手段から出力された前記圧縮済出力データのデータサイズとを加算するステップと、
前記加算したデータサイズが規定サイズを上回った場合には、前記圧縮手段に圧縮処理を中止させて前記無圧縮入力データおよび圧縮後のデータを破棄させるとともに、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるステップとをさらに有することを特徴とする情報処理方法。
【請求項１０】
請求項８または９に記載の情報処理方法において、
前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出するステップと、
前記算出した圧縮効率が規定値よりも低い場合には、前記圧縮手段に圧縮処理を中止させて前記無圧縮入力データおよび圧縮後のデータを破棄させるとともに、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるステップとをさらに有することを特徴とする情報処理方法。
【請求項１１】
請求項８から１０のいずれか１項に記載の情報処理方法において、
圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、圧縮完了後の前記圧縮済出力データのデータサイズを前記記憶装置に保持させるステップをさらに有することを特徴とする情報処理方法。
【請求項１２】
請求項１１に記載の情報処理方法において、
圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定するステップと、
前記識別子が存在する場合には、該識別子に関連付けて保持された前記圧縮済出力データのデータサイズを基に、圧縮効率を予測するステップとをさらに有することを特徴とする情報処理方法。
【請求項１３】
請求項１２に記載の情報処理方法において、
圧縮効率の予測結果を基に、圧縮効率が高い無圧縮入力データを優先して圧縮処理を行うステップをさらに有することを特徴とする情報処理方法。
【請求項１４】
請求項８から１３のいずれか１項に記載の情報処理方法において、
圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、前記無圧縮入力データの性質を前記記憶装置に保持させるステップと、
圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定するステップと、
前記識別子が存在する場合には、該識別子に関連付けて保持された前記無圧縮入力データの性質に応じた圧縮アルゴリズムを選択して圧縮処理を行うステップとをさらに有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの圧縮処理を行う情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来、携帯機器、ＰＣ（Personal Computer）などの情報処理装置では、データを、オンチップＳＲＡＭ、ＤＲＡＭ、外付けのＳＤＲＡＭなどの半導体メモリで構成される主記憶装置に格納し、さらには、ハードディスクドライブ、フラッシュメモリなどで構成される２次記憶装置に格納することによって、必要な情報処理を行っている。
【０００３】
この種の情報処理装置では、要求される情報処理が高度化すると、必要なメモリ容量も増加するが、これによって半導体メモリのコストが上昇することにも繋がる。また、所望のメモリ容量を一定の大きさのパッケージ内に収めることが困難となることもある。
【０００４】
ところで、ＰＣなどでは、ＯＳ（Operating System）の機能として、２次記憶装置に保存するデータを可逆圧縮することにより、２次記憶装置の実質的な容量を増加させる圧縮伸張方式が適用されている。この圧縮伸張方式では、ソフトウェアによって、２次記憶装置への書き込み時にデータを圧縮し、２次記憶装置からの読み出し時にデータを伸張することにより、２次記憶装置の見かけ上の容量の増加を図っている。
【０００５】
その一方、携帯機器の中には、コスト的な要求から専用の２次記憶装置を持たない構成のものもある。そのため、携帯機器に圧縮伸張方式を適用する場合には、主記憶装置を直接圧縮する技術、または、主記憶装置上に２次記憶領域としてＲＡＭ  Ｄｉｓｋ領域を論理的に用意し、参照頻度の低いデータを圧縮して一時的にスワップアウトし、参照時にスワップインする仮想記憶を導入した技術のいずれかが必要である。
【０００６】
前者の技術は、主記憶装置を直接圧縮するため、圧縮の効果の適用範囲を広げることが可能である。しかし、ハードウェアエンジンによってメモリアクセス毎に圧縮伸張を行う必要があるため、この圧縮伸張の処理時間によって情報処理装置の性能に大きな影響を与える可能性がある。
【０００７】
一方、後者の技術は、ＲＡＭ  Ｄｉｓｋ領域のみが圧縮対象となるので、圧縮の効果は限定されるが、比較的大きなメモリ単位での圧縮が可能となる。また、後者の技術は、スワップインおよびスワップアウト時以外は圧縮伸張を行わなくてもよいので、通常実行時には、情報処理装置の性能に影響を与えにくく、また、圧縮伸張をソフトウェアでも実現可能であることなどから、容易に情報処理装置への導入が可能である。
【０００８】
しかしながら、データを圧縮する場合、そのデータの持つ冗長性を利用して符号化変換を行うため、データの種類に応じて圧縮効率（圧縮前のデータに対する、圧縮後のデータのデータサイズの比率）は大きく異なる。特に、不可逆圧縮によってデータサイズを削減している画像データや音声データなどは、冗長性がほとんど除去されているため、これ以上の圧縮は非常に困難である。
【０００９】
仮に、不可逆圧縮されたデータに対してさらなる圧縮を試みた場合には、圧縮後のデータサイズが圧縮前に比べて、逆に大きくなってしまうことも生じうる。このため、圧縮後データを一時的に格納する圧縮一時出力バッファの容量は、圧縮前のデータサイズに比して余裕をとって大きめにする必要がある。また、圧縮後のデータサイズが決まってから、そのデータサイズに応じて２次記憶領域に実際のデータ格納場所を確保する必要があるため、圧縮後のデータを圧縮一時出力データバッファに一時的に退避させ、２次記憶領域にデータ格納場所を確保してからデータを転送する必要がある。
【００１０】
図５を参照すると、本従来例の情報処理装置は、ＣＰＵ（Central Processing Unit）１１、ＤＳＰ（Digital Signal Processor）１２、ＤＭＡＣ（Direct Memory Access Controller）１３、および圧縮伸張エンジン１４が、システムバス１５を介して、主記憶装置１６に接続された構成となっている。また、主記憶装置１６の中には、ＲＡＭ  Ｄｉｓｋ領域１７が確保されており、このＲＡＭ  Ｄｉｓｋ領域１７を、圧縮伸張エンジン１４により圧縮されて出力された圧縮済出力データの格納場所としている。
【００１１】
図５および図６を参照すると、圧縮を行う際には、圧縮伸張エンジン１４は、圧縮モードに設定される。圧縮伸張エンジン１４は、主記憶装置１６内に存在する無圧縮入力データ２１を読み出して圧縮処理を行い、圧縮されたデータを圧縮済出力データとして圧縮一時出力バッファ６１に逐次出力する。このとき、圧縮効率が１を上回り、圧縮完了後の圧縮済出力データのデータサイズが無圧縮入力データ２１のデータサイズを上回ってしまう可能性がある。そこで、データサイズの増加に対応するために、圧縮一時出力バッファ６１の他に、圧縮予備領域６２を用意する。なお、圧縮一時出力バッファ６１および圧縮予備領域６２は、主記憶装置１６または圧縮伸張エンジン１４のいずれにも配置可能であるが、ここでは主記憶装置１６に配置されるものとする。
【００１２】
圧縮が完了すると、主記憶装置１６内のＲＡＭ  Ｄｉｓｋ領域１７に、圧縮完了後の圧縮済出力データのデータサイズと同じサイズのデータ格納場所２２を確保した後、圧縮済出力データが圧縮一時出力バッファ６１からデータ格納場所２２にコピーされる。
【００１３】
上述のように圧縮を行う場合、圧縮一時出力バッファ６１および圧縮予備領域６２からデータ格納場所２２へコピーする処理がオーバヘッドとなる。このような事例に対応するために、特許文献１の発明では、データの記憶領域以外に補償記憶領域も確保し、この補償記憶領域に対してもデータを転送する方法が提案されている。
【００１４】
また、上述のように圧縮を行う場合、結局は無圧縮入力データ２１を圧縮せずにそのまま出力してスワップアウトする方が記憶領域の有効利用につながる。ただし、最終的に無圧縮入力データを格納する手法では、圧縮機構で圧縮処理に要した処理時間と消費電力が無駄になるという課題もあった。これらの課題は、２次記憶領域を、ハードディスクドライブ等とする場合も同様に生じるものである。
【特許文献１】特開２００６−１８６４８０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
すなわち、従来技術では、圧縮効率がどの程度であるかの揺らぎを考慮せず、圧縮完了後に生じる問題について対処している。そのため、圧縮によって無圧縮入力データのデータサイズを上回ってしまった場合のための圧縮一時出力バッファが必要になったり、圧縮処理に要した処理時間や消費電力が無駄になったりするという課題があった。
【００１６】
また、スワップイン／スワップアウトを繰り返すことにより、圧縮伸張を繰り返す無圧縮入力データに対して、過去の履歴を活かした圧縮処理が行えず、必ずしも記憶装置の使用効率がよくならないという課題があった。
【００１７】
そこで、本発明の目的は、圧縮処理の処理時間の向上および消費電力低減を図ることができる情報処理装置および情報処理方法を提供することにある。
【００１８】
また、本発明の他の目的は、過去の履歴を活かした圧縮処理を行うことができる情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するために本発明の情報処理装置は、
記憶装置と、前記記憶装置へのアクセスを行う情報処理ユニットと、前記記憶装置へのスワップアウト時に、無圧縮入力データの圧縮処理を行い、圧縮されたデータを圧縮済出力データとして前記記憶装置に逐次出力する圧縮手段とを有してなる情報処理装置において、
前記圧縮手段における圧縮状況を観測し、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示する圧縮状況観測手段とを有することを特徴とするものである。
【００２０】
この構成によれば、圧縮済出力データが無圧縮入力データのデータサイズを上回ることがないため、圧縮済出力データを一時的に格納するための圧縮一時出力バッファが不要となる。よって、圧縮一時出力バッファを省くことによるコストダウンを図れる。また、圧縮済出力データが無圧縮入力データのデータサイズを上回った以降の圧縮処理や、圧縮一時出力バッファから記憶装置のデータ格納場所への転送処理といった無駄な処理が不要になるため、圧縮処理の処理速度の向上および消費電力低減を図れる。
【００２１】
また、圧縮済出力データが無圧縮入力データのデータサイズを上回った場合は、記憶装置には無圧縮入力データを出力するため、記憶装置に確保するデータ格納場所を無圧縮入力データのデータサイズと同じサイズにすることが可能である。
【００２２】
また、このことを利用すれば、無圧縮入力データのデータサイズと同じサイズのデータ格納場所を記憶装置に確保し、圧縮済出力データを書き込んだ上で、データ格納場所の中で圧縮済出力データが書き込まれなかった未使用領域を開放するという処理も可能である。
【００２３】
なお、前記圧縮状況観測手段は、前記圧縮手段における圧縮状況を観測すると同時に、前記無圧縮入力データのうち圧縮が行われていないデータを理論的な最高圧縮効率で圧縮した場合のデータサイズを算出し、算出したデータサイズと前記圧縮手段から出力された前記圧縮済出力データのデータサイズとを加算し、加算したデータサイズが規定サイズを上回った場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することとしても良い。
【００２４】
この構成よれば、圧縮完了後の圧縮済出力データが無圧縮入力データのデータサイズよりも大きくなることを、圧縮処理の途中で検知し、無駄な処理となる圧縮処理を、早期に中断できる。これよっても、圧縮処理の処理速度の向上および消費電力低減を図れる。
【００２５】
また、前記圧縮状況観測手段は、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出し、算出した圧縮効率が規定値よりも低い場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することとしても良い。
【００２６】
この構成よれば、圧縮完了後の圧縮済出力データが無圧縮入力データのデータサイズよりも大きくなることを、圧縮処理の途中で検知し、無駄な処理となる圧縮処理を、早期に中断できる。これよっても、圧縮処理の処理速度の向上および消費電力低減を図れる。
【００２７】
また、前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、圧縮完了後の前記圧縮済出力データのデータサイズを前記記憶装置に保持させることとしても良い。
【００２８】
この構成よれば、過去の履歴を基に圧縮処理を行うことが可能になるため、記憶装置の使用効率の向上に寄与することが可能になる。
【００２９】
また、前記圧縮手段は、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記圧縮済出力データのデータサイズを基に、圧縮効率を予測することとしても良い。
【００３０】
この構成よれば、過去の履歴を基に圧縮効率を予測し、圧縮処理を行うことが可能になるため、記憶装置の使用効率の向上に寄与することが可能になる。
【００３１】
また、前記圧縮手段は、圧縮効率の予測結果を基に、圧縮効率が高い無圧縮入力データを優先して圧縮処理を行うこととしても良い。
【００３２】
この構成よれば、圧縮効率の低い無圧縮入力データよりも圧縮効率の高い無圧縮入力データを優先してスワップアウトすることが可能になるため、より多くのデータをスワップアウトすることが可能となり、それにより、記憶装置の使用効率を向上させることが可能となる。
【００３３】
また、前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、前記無圧縮入力データの性質を前記記憶装置に保持させ、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記無圧縮入力データの性質に応じた圧縮アルゴリズムを選択して圧縮処理を行うこととしても良い。
【００３４】
この構成よれば、無圧縮入力データの性質に応じて適切な圧縮アルゴリズムを選択して圧縮処理を行うことが可能であるため、効率的な圧縮処理を行うことが可能である。
【発明の効果】
【００３５】
以上説明したように本発明によれば、圧縮状況観測手段において、圧縮手段から出力された圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、圧縮手段に対して、圧縮処理を中止し、無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、情報処理ユニットに対して、無圧縮入力データの全領域を無圧縮のまま記憶装置に転送して保持させるよう指示する。
【００３６】
したがって、圧縮済出力データが無圧縮入力データのデータサイズを上回ることがないため、圧縮済出力データを一時的に格納するための圧縮一時出力バッファが不要となる。よって、圧縮済出力データが無圧縮入力データのデータサイズを上回った以降の圧縮処理や、一時出力バッファから記憶装置のデータ格納場所への転送処理といった無駄な処理が不要になることから、圧縮処理の処理速度の向上および消費電力低減を図れるという効果が得られる。
【発明を実施するための最良の形態】
【００３７】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００３８】
（第１の実施形態）
図１を参照すると、本実施形態の情報処理装置は、図５に示した従来例と比較して、圧縮状況観測モニタ１８を追加した点が異なる。
【００３９】
ＣＰＵ１１、ＤＳＰ１２およびＤＭＡＣ１３は、情報処理ユニットとして動作する。なお、情報処理ユニットの数は、図１のように３つに限定されず、１つ以上であればよい。
【００４０】
また、圧縮伸張エンジン１４は、圧縮手段として動作する。なお、圧縮伸張エンジン１４を設けずに、圧縮伸張エンジン１４が行う全ての処理を、ＣＰＵ１１上で動作するソフトウェアが代行することも可能である。この場合、上記ソフトウェアが圧縮手段として動作することになる。
【００４１】
本実施形態の特徴は、圧縮伸張エンジン１４により圧縮されて出力された圧縮済出力データを、主記憶装置１６上のＲＡＭ  Ｄｉｓｋ領域１７に直接書き込む点にある。
【００４２】
以下、主記憶装置１６上にＲＡＭ  Ｄｉｓｋ領域１７を展開し、圧縮伸張エンジン１４から出力された圧縮済出力データをＲＡＭ  Ｄｉｓｋ領域１７にスワップアウトする事例について、図１および図２を参照して説明する。なお、本発明の範囲は、この事例に制限されるものではなく、他の方式で圧縮伸張を行うものや、ＣＰＵ１１上で動作するソフトウェアによって圧縮伸張処理を行うものなども含まれる。
【００４３】
ステップ１：まず、ＣＰＵ１１上で動作するＯＳなどによって、ＲＡＭ  Ｄｉｓｋ領域１７にスワップアウトされるページが選択される。例えば、参照頻度が低いページが選択されたり、ランダムにページが選択されたりする。
【００４４】
ステップ２：次に、圧縮伸張エンジン１４は、ステップ１で選択されたページのデータである無圧縮入力データ２１のデータサイズと同じサイズのデータ格納場所２２を、ＲＡＭ  Ｄｉｓｋ領域１７に確保する。
【００４５】
ステップ３：次に、圧縮伸張エンジン１４は、無圧縮入力データ２１の圧縮処理を行い、圧縮されたデータを圧縮済出力データとしてデータ格納場所２２に逐次出力する。これと並行して、圧縮状況観測モニタ１８は、圧縮伸張エンジン１４における圧縮状況を観測する。
【００４６】
ステップ４：圧縮済出力データのデータサイズが無圧縮入力データ２１のデータサイズを上回った場合には、これを圧縮状況観測モニタ１８が検出する。そして、圧縮状況観測モニタ１８は、圧縮伸張エンジン１４に対して、圧縮処理を中止し、無圧縮入力データ２１および圧縮後のデータを破棄するよう指示し、代わりに、ＤＭＡＣ１３に対して、無圧縮入力データ２１の全領域を無圧縮のままデータ格納場所２２に転送して保持させるよう指示する。これにより、データ格納場所２２には、圧縮済出力データを上書きする形で、無圧縮入力データ２１が書き込まれることになる。その後、圧縮状況観測モニタ１８は、データ格納場所２２は無圧縮入力データ２１でスワップアウトされたことを示す情報をＯＳに出力する。
【００４７】
ステップ５：一方、圧縮済出力データのデータサイズが無圧縮入力データ２１のデータサイズを上回らなかった場合には、圧縮伸張エンジン１４は、圧縮完了後、圧縮済出力データのデータサイズを基にして、データ格納場所２２の中で圧縮済出力データが書き込まれなかった未使用領域２３のデータサイズを計算し、データ格納場所２２から未使用領域２３を開放する。
【００４８】
以上のステップによって、ＲＡＭ  Ｄｉｓｋ領域１７に対する、圧縮済出力データのスワップアウトの処理が完了する。
【００４９】
上述したように本実施形態によれば、圧縮済出力データが無圧縮入力データ２１のデータサイズを上回ることがないため、圧縮済出力データを一時的に格納するための圧縮一時出力バッファが不要となる。よって、圧縮一時出力バッファを省くことによるコストダウンを図れる。また、圧縮済出力データが無圧縮入力データ２１のデータサイズを上回った以降の圧縮処理や、圧縮一時出力バッファからデータ格納場所２２への転送処理といった無駄な処理が不要になるため、圧縮処理の処理速度の向上および消費電力低減を図れる。
【００５０】
また、圧縮済出力データが無圧縮入力データ２１のデータサイズを上回った場合は、データ格納場所２２には無圧縮入力データ２１を出力するため、ＲＡＭ  Ｄｉｓｋ領域１７に確保するデータ格納場所２２を無圧縮入力データ２１のデータサイズと同じサイズにすることが可能である。
【００５１】
また、このことを利用して、無圧縮入力データ２１のデータサイズと同じサイズのデータ格納場所２２をＲＡＭ  Ｄｉｓｋ領域１７に確保し、圧縮済出力データを書き込んだ上で、データ格納場所２２の中で圧縮済出力データが書き込まれなかった未使用領域２３を開放することも可能である。
【００５２】
なお、本実施形態においては、圧縮伸張エンジン１４は、高い圧縮効率が予め期待できる場合には、ＲＡＭ  Ｄｉｓｋ領域１７に確保するデータ格納場所２２を無圧縮入力データ２１のデータサイズよりも小さくすることが可能である。この場合、データ格納場所２２の容量が足りなくなった時点で、圧縮伸張エンジン１４は、一旦データ格納場所２２を開放し、大きなデータ格納場所２６を確保し直したり、追加で新たなデータ格納場所２２を確保したりすることが可能であり、また、圧縮状況観測モニタ１８は、圧縮の継続、再実行、または無圧縮入力データ２１の転送への切り替えなどの処理を行うことが可能である。
【００５３】
また、本実施形態においては、圧縮状況観測モニタ１８は、圧縮効率が１を上回ること、すなわち圧縮完了後の圧縮済出力データが無圧縮入力データ２１のデータサイズを上回ることを、圧縮処理の途中で検知することが可能である。例えば、圧縮状況観測モニタ１８は、以下の数式（１）を満たす場合に、これを検知する。
【００５４】
Ｏｓｉｚｅ＜（Ｄｓｉｚｅ＋Ｒｂｅｓｔｓｉｚｅ）・・・（１）
なお、数式（１）において、各記号の意味は以下の通りである。
【００５５】
Ｏｓｉｚｅ＝オリジナルデータサイズ（無圧縮入力データ２１のデータサイズ）
Ｄｓｉｚｅ＝圧縮済みデータサイズ（圧縮伸張エンジン１４からすでに出力された圧縮済出力データのデータサイズ）
Ｒｂｅｓｔｓｉｚｅ＝無圧縮入力データ２１のうち圧縮が行われていないデータを最高の圧縮効率で圧縮した場合のデータサイズ
Ｒｂｅｓｔｓｉｚｅは、最小圧縮単位の圧縮を行うたびに算出することができる。例えば、８ｂｙｔｅが最小圧縮単位であり、８ｂｙｔｅの無圧縮入力データを最高の圧縮効率で圧縮した場合に１０ｂｉｔになると仮定する。この場合、８Ｋｂｙｔｅの無圧縮入力データ２１がまだ圧縮処理されていないとすると、Ｒｂｅｓｔｓｉｚｅは次のように算出することができる。
【００５６】
８Ｋｂｙｔｅ／８ｂｙｔｅ＊１０ｂｉｔ＝１２８０ｂｙｔｅ
このとき、Ｏｓｉｚｅが３２Ｋｂｙｔｅ、Ｄｓｉｚｅが３１Ｋｂｙｔｅであれば、数式（１）は満たされたことになるため、ステップ４と同等の処理を行う。これにより、早期にステップ４に移行することが可能となるため、圧縮処理の処理速度の向上および消費電力低減を図れる。
【００５７】
また、本実施形態においては、Ｒｂｅｓｔｓｉｚｅを算出する際に、理想的な最高の圧縮効率を用いずに、現実的に期待できる中での最高の圧縮効率を用いて同じ数式（１）により算出を行うことにより、早期にステップ４に移行することも可能である。この場合には、圧縮済出力データの方が、無圧縮入力データ２１よりもデータサイズが小さくなる可能性もあるがその確率は低いと考えられること、また、圧縮効率が高くはならないと考えられることから、実質的な圧縮効率の悪化はわずかである。
【００５８】
また、本実施形態においては、圧縮状況観測モニタ１８は、圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出し、算出した圧縮効率が規定値よりも低い場合には、圧縮完了後の圧縮済出力データが無圧縮入力データ２１のデータサイズよりも大きくなると判断し、ステップ４に移行することも可能である。これよっても、圧縮処理の処理速度の向上および消費電力低減を図れる。
【００５９】
（第２の実施形態）
図３を参照すると、本実施形態の情報処理装置は、図１に示した第１の実施形態と比較して、圧縮履歴テーブル１９を追加した点が異なる。
【００６０】
圧縮履歴テーブル１９は、ＯＳで管理する各プロセスのページを示す無圧縮入力データ２１の識別子と、無圧縮入力データ２１の圧縮完了後の圧縮済出力データのデータサイズとを関連付けたエントリを記憶する。
【００６１】
図４を参照すると、圧縮履歴テーブル１９は、エントリの有効ビット４１と、プロセスＩＤ４２と、ページアドレス４３と、圧縮完了後の圧縮済みデータのデータサイズ４４とを示すエントリから構成される。なお、本実施形態では、圧縮履歴テーブル１９を、ハードウェアによって実現した事例を示しているが、本発明はこれに限定されず、ソフトウェアで実現し、主記憶装置１６上に圧縮履歴テーブル１９のテーブル情報を展開してもよい。
【００６２】
本実施形態の特徴は、圧縮完了時に圧縮効率の履歴を残し、次回の圧縮時に、前回までの履歴を参照して、圧縮効率の予測を行うとともに、圧縮効率の高いページを優先的にスワップアウトさせる点にある。
【００６３】
以下、本実施形態の情報処理装置の動作について説明する。ここでは、第１の実施形態で説明した動作ステップとは異なる処理を中心に説明する。
【００６４】
ステップ１：ＲＡＭ  Ｄｉｓｋ領域１７にスワップアウトされるページが選択されると、圧縮伸張エンジン１４は、圧縮履歴テーブル１９を検索し、有効ビット４１が有効なエントリの中に、上記で選択されたページと同一のプロセスＩＤ４２およびページアドレス４３が存在するか否かを判定する。もし、存在している場合には、圧縮伸張エンジン１４は、圧縮完了後のデータサイズ４４の値を読み出す。
【００６５】
ステップ２：ステップ１で存在していた場合には、圧縮伸張エンジン１４は、圧縮完了後のデータサイズ４４の値に一定の値を掛け合わせたサイズのデータ格納場所２２を、ＲＡＭ  Ｄｉｓｋ領域１７に確保する。一方、ステップ１で存在しない場合には、圧縮伸張エンジン１４は、ステップ１で選択されたページの無圧縮入力データ２１のデータサイズと同じサイズまたは圧縮完了後のデータサイズ４４の値に一定の値を掛け合わせたサイズのデータ格納場所２２を、ＲＡＭ  Ｄｉｓｋ領域１７に確保する。ここで、一定の値を掛け合わせるのは、前回のスワップアウト時から、ページデータが書き換わったことで圧縮効率が変化する可能性を考慮したものである。もし、ページデータが書き換わっていないことが保証できる場合には、同一のデータサイズを確保する方が効率的である。
【００６６】
ステップ３〜５の処理は、第１の実施形態と同様である。
【００６７】
ステップ６：圧縮伸張エンジン１４は、圧縮処理が完了した際に、無圧縮入力データ２１の識別子に関連付けて、圧縮完了後の圧縮済出力データのデータサイズ４４を圧縮履歴テーブル１９に書き込む。
【００６８】
上述したように本実施形態においては、圧縮履歴テーブル１９を用いることにより、ＲＡＭ  Ｄｉｓｋ領域１７に確保するデータ格納場所２２のサイズが、実際に使用するサイズに近い値となる。したがって、ステップ５で開放する未使用領域２６のサイズを小さくすることができるため、ＲＡＭ  Ｄｉｓｋ領域１７の残容量が少ない場合に特に効率的にＲＡＭ  Ｄｉｓｋ領域１７を使用することが可能になる。
【００６９】
なお、本実施形態においては、ステップ１において、スワップアウトするページを選択する際に、既存技術である参照頻度が低いページを選択したり、ランダムにページを選択したりすること以外に、次のようにページを選択することができる。
【００７０】
すなわち、まず、圧縮履歴テーブル１９を参照し、選択候補のページと同一のプロセスＩＤ４２およびページアドレス４３が存在するか否かを判定する。もし、存在している場合には、圧縮完了後のデータサイズ４４の値を基に圧縮効率を予測し、圧縮効率が高いページを優先して選択する。このように選択することによって、より多くのページをＲＡＭ  Ｄｉｓｋ領域１７上にスワップアウト可能となるため、資源が限られている主記憶装置１６およびＲＡＭ  Ｄｉｓｋ領域１７をより有効に利用することが可能である。ただし、圧縮履歴テーブル１９のエントリ数は限りがあるため、古くなったエントリを破棄するなどの仕組みを導入する必要がある。
【００７１】
また、本実施形態においては、ステップ２において、圧縮効率が低い無圧縮入力データ２１をスワップアウトすると判断した場合には、初めから圧縮をせず、無圧縮入力データ２１を、ＤＭＡＣ１３を用いるなどして、そのままＲＡＭ  Ｄｉｓｋ領域１７に転送することも可能である。
【００７２】
また、本実施形態においては、アプリケーション毎に、アプリケーションに関連付けて履歴を記録しておき、アプリケーションを再度実行する際には履歴を予め圧縮履歴テーブル１９に再ロードすることにより、初回の圧縮処理から履歴を利用することが可能である。
【００７３】
（第３の実施形態）
本実施形態の構成は、第２の実施形態と同様である。
【００７４】
本実施形態の特徴は、圧縮伸張エンジン１４が、複数の圧縮伸張アルゴリズムに対応している点にある。
【００７５】
圧縮効率は、無圧縮入力データ２１の性質によって異なることが知られている。そのため、無圧縮入力データ２１の性質に応じた圧縮アルゴリズムを用いることで、圧縮効率を向上させることが可能である。
【００７６】
本実施形態では、圧縮履歴テーブル１９を拡張し、圧縮処理が完了した時点で、圧縮完了後の圧縮済出力データのデータサイズ４４以外に、無圧縮入力データ２１の性質も書き込むこととする。
【００７７】
以下、本実施形態の情報処理装置の動作について説明する。ここでは、第２の実施形態で説明した動作ステップとは異なる処理を中心に説明する。
【００７８】
ステップ１：圧縮履歴テーブル１９を検索した結果、スワップアウトされるページと同一のプロセスＩＤ４２およびページアドレス４３が存在していた場合、圧縮伸張エンジン１４は、圧縮完了後のデータサイズ４４の値の他、無圧縮入力データ２１の性質も読み出す。
【００７９】
ステップ２：ステップ１で存在していた場合には、圧縮伸張エンジン１４は、無圧縮入力データ２１の性質に応じて適切な圧縮アルゴリズムを選択する。一方、ステップ１で存在しない場合には、圧縮伸張エンジン１４は、標準的な圧縮アルゴリズムを選択するか、または、データの性質が類似する無圧縮入力データ２１に関連付けられている圧縮アルゴリズムを選択する。
【００８０】
より具体的には、例えば、無圧縮入力データ２１が、８ｂｙｔｅ長のデータ列を一定期間繰り返すといった性質である場合、この繰り返しを判定して、８ｂｙｔｅごとに、高密度な圧縮を行う圧縮アルゴリズムを選択する。または、無圧縮入力データ２１が、テキストデータのようにｂｙｔｅごとにデータが圧縮されるといった性質である場合、ｂｙｔｅ単位でデータの比較を行う圧縮アルゴリズムを選択する。
【００８１】
ステップ３：圧縮伸張エンジン１４は、圧縮処理中に、無圧縮入力データ２１の性質を統計カウンタなどを用いて判断する。無圧縮入力データ２１の性質の例としては、データ列の長さ、データ“０”の出現頻度などがある。また、基本的な圧縮アルゴリズムにおいては、辞書にデータパターンを予め登録しておき、新たなデータが出現した場合には、そのデータと同じデータパターンが存在するか否かを判定し、存在していれば辞書のエントリ番号にデータを置き換えることを行うが、この場合に辞書に存在する確率を表すヒット率なども、無圧縮入力データ２１の性質の例として挙げられる。
【００８２】
ステップ４，５の処理は、第２の実施形態と同様である。
【００８３】
ステップ６：圧縮伸張エンジン１４は、ステップ２で選択した圧縮アルゴリズムを用いて圧縮処理を行い、圧縮処理が完了した時点で、無圧縮入力データ２１の識別子に関連付けて、圧縮完了後の圧縮済出力データのデータサイズ４４と無圧縮入力データ２１の性質とを圧縮履歴テーブル１９に書き込む。
【００８４】
上述したように本実施形態においては、ＲＡＭ  Ｄｉｓｋ領域１７からデータをスワップインした後に、再度スワップアウトする際には、無圧縮入力データ２１の性質に応じて適切な圧縮アルゴリズムを選択して圧縮処理を行うことが可能であるため、効率的な圧縮処理を行うことが可能である。
【００８５】
なお、本実施形態においては、無圧縮入力データ２１の性質に応じて圧縮アルゴリズムを選択する事例について説明したが、本発明はこの事例に限定されない。例えば、圧縮アルゴリズムによって、圧縮時間が異なるような事例では、スワップアウトするときのシステム負荷状態やＲＡＭ  Ｄｉｓｋ領域１７の使用状況に応じて、圧縮アルゴリズムを選択することも可能である。この場合に、ユーザが圧縮時間を優先すれば、圧縮時間が短くて圧縮効率が低い圧縮アルゴリズムを選択し、ユーザが圧縮効率を優先すれば、圧縮時間が長くて圧縮効率が高い圧縮アルゴリズムかを選択する。このような選択を行うことも、情報処理装置としての処理効率向上の方策として有効である。
【図面の簡単な説明】
【００８６】
【図１】本発明の第１の実施形態の情報処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態の情報処理装置の動作を説明する模式図である。
【図３】本発明の第２および第３の実施形態の情報処理装置の構成を示すブロック図である。
【図４】本発明の第２の実施形態に係る圧縮履歴テーブルの構成を示す図である。
【図５】従来の情報処理装置の一構成例を示すブロック図である。
【図６】従来の情報処理装置の動作を説明する模式図である。
【符号の説明】
【００８７】
１１    ＣＰＵ（中央プロセッシングユニット）
１２    ＤＳＰ（ディジタルシグナルプロセッサ）
１３    ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）
１４    圧縮伸張エンジン
１５    システムバス
１６    主記憶装置
１７    ＲＡＭ  Ｄｉｓｋ領域
１８    圧縮状況観測モニタ
１９    圧縮履歴テーブル
２１    無圧縮入力データ
２２    データ格納場所
２３    データ格納場所の未使用領域
４１    有効ビット
４２    プロセスＩＤ
４３    ページアドレス
４４    圧縮完了後データサイズ
【図１】
2008152339.tif 000003
【図２】
2008152339.tif 000004
【図３】
2008152339.tif 000005
【図４】
2008152339.tif 000006
【図５】
2008152339.tif 000007
【図６】
2008152339.tif 000008