JP2008152339A - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP2008152339A
JP2008152339A JP2006336958A JP2006336958A JP2008152339A JP 2008152339 A JP2008152339 A JP 2008152339A JP 2006336958 A JP2006336958 A JP 2006336958A JP 2006336958 A JP2006336958 A JP 2006336958A JP 2008152339 A JP2008152339 A JP 2008152339A
Authority
JP
Japan
Prior art keywords
compression
data
information processing
input data
uncompressed input
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
JP2006336958A
Other languages
English (en)
Other versions
JP5018060B2 (ja
Inventor
Atsushi Torii
淳 鳥居
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2006336958A priority Critical patent/JP5018060B2/ja
Publication of JP2008152339A publication Critical patent/JP2008152339A/ja
Application granted granted Critical
Publication of JP5018060B2 publication Critical patent/JP5018060B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】圧縮処理の処理時間の向上および消費電力低減を図る。
【解決手段】本発明の情報処理装置は、圧縮伸張エンジン14における圧縮状況を観測する圧縮状況観測モニタ18を設けている。圧縮状況観測モニタ18は、圧縮伸張エンジン14から出力された圧縮済出力データのデータサイズが無圧縮入力データのデータサイズを上回ったことを検出した場合には、圧縮伸張エンジン14に対して、圧縮処理を中止し、無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、DMCA13に対して、無圧縮入力データの全領域を無圧縮のまま主記憶装置16のRAM Disk領域17に転送して保持させるよう指示する。
【選択図】図1

Description

本発明は、データの圧縮処理を行う情報処理装置および情報処理方法に関する。
従来、携帯機器、PC(Personal Computer)などの情報処理装置では、データを、オンチップSRAM、DRAM、外付けのSDRAMなどの半導体メモリで構成される主記憶装置に格納し、さらには、ハードディスクドライブ、フラッシュメモリなどで構成される2次記憶装置に格納することによって、必要な情報処理を行っている。
この種の情報処理装置では、要求される情報処理が高度化すると、必要なメモリ容量も増加するが、これによって半導体メモリのコストが上昇することにも繋がる。また、所望のメモリ容量を一定の大きさのパッケージ内に収めることが困難となることもある。
ところで、PCなどでは、OS(Operating System)の機能として、2次記憶装置に保存するデータを可逆圧縮することにより、2次記憶装置の実質的な容量を増加させる圧縮伸張方式が適用されている。この圧縮伸張方式では、ソフトウェアによって、2次記憶装置への書き込み時にデータを圧縮し、2次記憶装置からの読み出し時にデータを伸張することにより、2次記憶装置の見かけ上の容量の増加を図っている。
その一方、携帯機器の中には、コスト的な要求から専用の2次記憶装置を持たない構成のものもある。そのため、携帯機器に圧縮伸張方式を適用する場合には、主記憶装置を直接圧縮する技術、または、主記憶装置上に2次記憶領域としてRAM Disk領域を論理的に用意し、参照頻度の低いデータを圧縮して一時的にスワップアウトし、参照時にスワップインする仮想記憶を導入した技術のいずれかが必要である。
前者の技術は、主記憶装置を直接圧縮するため、圧縮の効果の適用範囲を広げることが可能である。しかし、ハードウェアエンジンによってメモリアクセス毎に圧縮伸張を行う必要があるため、この圧縮伸張の処理時間によって情報処理装置の性能に大きな影響を与える可能性がある。
一方、後者の技術は、RAM Disk領域のみが圧縮対象となるので、圧縮の効果は限定されるが、比較的大きなメモリ単位での圧縮が可能となる。また、後者の技術は、スワップインおよびスワップアウト時以外は圧縮伸張を行わなくてもよいので、通常実行時には、情報処理装置の性能に影響を与えにくく、また、圧縮伸張をソフトウェアでも実現可能であることなどから、容易に情報処理装置への導入が可能である。
しかしながら、データを圧縮する場合、そのデータの持つ冗長性を利用して符号化変換を行うため、データの種類に応じて圧縮効率(圧縮前のデータに対する、圧縮後のデータのデータサイズの比率)は大きく異なる。特に、不可逆圧縮によってデータサイズを削減している画像データや音声データなどは、冗長性がほとんど除去されているため、これ以上の圧縮は非常に困難である。
仮に、不可逆圧縮されたデータに対してさらなる圧縮を試みた場合には、圧縮後のデータサイズが圧縮前に比べて、逆に大きくなってしまうことも生じうる。このため、圧縮後データを一時的に格納する圧縮一時出力バッファの容量は、圧縮前のデータサイズに比して余裕をとって大きめにする必要がある。また、圧縮後のデータサイズが決まってから、そのデータサイズに応じて2次記憶領域に実際のデータ格納場所を確保する必要があるため、圧縮後のデータを圧縮一時出力データバッファに一時的に退避させ、2次記憶領域にデータ格納場所を確保してからデータを転送する必要がある。
図5を参照すると、本従来例の情報処理装置は、CPU(Central Processing Unit)11、DSP(Digital Signal Processor)12、DMAC(Direct Memory Access Controller)13、および圧縮伸張エンジン14が、システムバス15を介して、主記憶装置16に接続された構成となっている。また、主記憶装置16の中には、RAM Disk領域17が確保されており、このRAM Disk領域17を、圧縮伸張エンジン14により圧縮されて出力された圧縮済出力データの格納場所としている。
図5および図6を参照すると、圧縮を行う際には、圧縮伸張エンジン14は、圧縮モードに設定される。圧縮伸張エンジン14は、主記憶装置16内に存在する無圧縮入力データ21を読み出して圧縮処理を行い、圧縮されたデータを圧縮済出力データとして圧縮一時出力バッファ61に逐次出力する。このとき、圧縮効率が1を上回り、圧縮完了後の圧縮済出力データのデータサイズが無圧縮入力データ21のデータサイズを上回ってしまう可能性がある。そこで、データサイズの増加に対応するために、圧縮一時出力バッファ61の他に、圧縮予備領域62を用意する。なお、圧縮一時出力バッファ61および圧縮予備領域62は、主記憶装置16または圧縮伸張エンジン14のいずれにも配置可能であるが、ここでは主記憶装置16に配置されるものとする。
圧縮が完了すると、主記憶装置16内のRAM Disk領域17に、圧縮完了後の圧縮済出力データのデータサイズと同じサイズのデータ格納場所22を確保した後、圧縮済出力データが圧縮一時出力バッファ61からデータ格納場所22にコピーされる。
上述のように圧縮を行う場合、圧縮一時出力バッファ61および圧縮予備領域62からデータ格納場所22へコピーする処理がオーバヘッドとなる。このような事例に対応するために、特許文献1の発明では、データの記憶領域以外に補償記憶領域も確保し、この補償記憶領域に対してもデータを転送する方法が提案されている。
また、上述のように圧縮を行う場合、結局は無圧縮入力データ21を圧縮せずにそのまま出力してスワップアウトする方が記憶領域の有効利用につながる。ただし、最終的に無圧縮入力データを格納する手法では、圧縮機構で圧縮処理に要した処理時間と消費電力が無駄になるという課題もあった。これらの課題は、2次記憶領域を、ハードディスクドライブ等とする場合も同様に生じるものである。
特開2006−186480号公報
すなわち、従来技術では、圧縮効率がどの程度であるかの揺らぎを考慮せず、圧縮完了後に生じる問題について対処している。そのため、圧縮によって無圧縮入力データのデータサイズを上回ってしまった場合のための圧縮一時出力バッファが必要になったり、圧縮処理に要した処理時間や消費電力が無駄になったりするという課題があった。
また、スワップイン/スワップアウトを繰り返すことにより、圧縮伸張を繰り返す無圧縮入力データに対して、過去の履歴を活かした圧縮処理が行えず、必ずしも記憶装置の使用効率がよくならないという課題があった。
そこで、本発明の目的は、圧縮処理の処理時間の向上および消費電力低減を図ることができる情報処理装置および情報処理方法を提供することにある。
また、本発明の他の目的は、過去の履歴を活かした圧縮処理を行うことができる情報処理装置および情報処理方法を提供することにある。
上記目的を達成するために本発明の情報処理装置は、
記憶装置と、前記記憶装置へのアクセスを行う情報処理ユニットと、前記記憶装置へのスワップアウト時に、無圧縮入力データの圧縮処理を行い、圧縮されたデータを圧縮済出力データとして前記記憶装置に逐次出力する圧縮手段とを有してなる情報処理装置において、
前記圧縮手段における圧縮状況を観測し、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示する圧縮状況観測手段とを有することを特徴とするものである。
この構成によれば、圧縮済出力データが無圧縮入力データのデータサイズを上回ることがないため、圧縮済出力データを一時的に格納するための圧縮一時出力バッファが不要となる。よって、圧縮一時出力バッファを省くことによるコストダウンを図れる。また、圧縮済出力データが無圧縮入力データのデータサイズを上回った以降の圧縮処理や、圧縮一時出力バッファから記憶装置のデータ格納場所への転送処理といった無駄な処理が不要になるため、圧縮処理の処理速度の向上および消費電力低減を図れる。
また、圧縮済出力データが無圧縮入力データのデータサイズを上回った場合は、記憶装置には無圧縮入力データを出力するため、記憶装置に確保するデータ格納場所を無圧縮入力データのデータサイズと同じサイズにすることが可能である。
また、このことを利用すれば、無圧縮入力データのデータサイズと同じサイズのデータ格納場所を記憶装置に確保し、圧縮済出力データを書き込んだ上で、データ格納場所の中で圧縮済出力データが書き込まれなかった未使用領域を開放するという処理も可能である。
なお、前記圧縮状況観測手段は、前記圧縮手段における圧縮状況を観測すると同時に、前記無圧縮入力データのうち圧縮が行われていないデータを理論的な最高圧縮効率で圧縮した場合のデータサイズを算出し、算出したデータサイズと前記圧縮手段から出力された前記圧縮済出力データのデータサイズとを加算し、加算したデータサイズが規定サイズを上回った場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することとしても良い。
この構成よれば、圧縮完了後の圧縮済出力データが無圧縮入力データのデータサイズよりも大きくなることを、圧縮処理の途中で検知し、無駄な処理となる圧縮処理を、早期に中断できる。これよっても、圧縮処理の処理速度の向上および消費電力低減を図れる。
また、前記圧縮状況観測手段は、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出し、算出した圧縮効率が規定値よりも低い場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することとしても良い。
この構成よれば、圧縮完了後の圧縮済出力データが無圧縮入力データのデータサイズよりも大きくなることを、圧縮処理の途中で検知し、無駄な処理となる圧縮処理を、早期に中断できる。これよっても、圧縮処理の処理速度の向上および消費電力低減を図れる。
また、前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、圧縮完了後の前記圧縮済出力データのデータサイズを前記記憶装置に保持させることとしても良い。
この構成よれば、過去の履歴を基に圧縮処理を行うことが可能になるため、記憶装置の使用効率の向上に寄与することが可能になる。
また、前記圧縮手段は、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記圧縮済出力データのデータサイズを基に、圧縮効率を予測することとしても良い。
この構成よれば、過去の履歴を基に圧縮効率を予測し、圧縮処理を行うことが可能になるため、記憶装置の使用効率の向上に寄与することが可能になる。
また、前記圧縮手段は、圧縮効率の予測結果を基に、圧縮効率が高い無圧縮入力データを優先して圧縮処理を行うこととしても良い。
この構成よれば、圧縮効率の低い無圧縮入力データよりも圧縮効率の高い無圧縮入力データを優先してスワップアウトすることが可能になるため、より多くのデータをスワップアウトすることが可能となり、それにより、記憶装置の使用効率を向上させることが可能となる。
また、前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、前記無圧縮入力データの性質を前記記憶装置に保持させ、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記無圧縮入力データの性質に応じた圧縮アルゴリズムを選択して圧縮処理を行うこととしても良い。
この構成よれば、無圧縮入力データの性質に応じて適切な圧縮アルゴリズムを選択して圧縮処理を行うことが可能であるため、効率的な圧縮処理を行うことが可能である。
以上説明したように本発明によれば、圧縮状況観測手段において、圧縮手段から出力された圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、圧縮手段に対して、圧縮処理を中止し、無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、情報処理ユニットに対して、無圧縮入力データの全領域を無圧縮のまま記憶装置に転送して保持させるよう指示する。
したがって、圧縮済出力データが無圧縮入力データのデータサイズを上回ることがないため、圧縮済出力データを一時的に格納するための圧縮一時出力バッファが不要となる。よって、圧縮済出力データが無圧縮入力データのデータサイズを上回った以降の圧縮処理や、一時出力バッファから記憶装置のデータ格納場所への転送処理といった無駄な処理が不要になることから、圧縮処理の処理速度の向上および消費電力低減を図れるという効果が得られる。
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
(第1の実施形態)
図1を参照すると、本実施形態の情報処理装置は、図5に示した従来例と比較して、圧縮状況観測モニタ18を追加した点が異なる。
CPU11、DSP12およびDMAC13は、情報処理ユニットとして動作する。なお、情報処理ユニットの数は、図1のように3つに限定されず、1つ以上であればよい。
また、圧縮伸張エンジン14は、圧縮手段として動作する。なお、圧縮伸張エンジン14を設けずに、圧縮伸張エンジン14が行う全ての処理を、CPU11上で動作するソフトウェアが代行することも可能である。この場合、上記ソフトウェアが圧縮手段として動作することになる。
本実施形態の特徴は、圧縮伸張エンジン14により圧縮されて出力された圧縮済出力データを、主記憶装置16上のRAM Disk領域17に直接書き込む点にある。
以下、主記憶装置16上にRAM Disk領域17を展開し、圧縮伸張エンジン14から出力された圧縮済出力データをRAM Disk領域17にスワップアウトする事例について、図1および図2を参照して説明する。なお、本発明の範囲は、この事例に制限されるものではなく、他の方式で圧縮伸張を行うものや、CPU11上で動作するソフトウェアによって圧縮伸張処理を行うものなども含まれる。
ステップ1:まず、CPU11上で動作するOSなどによって、RAM Disk領域17にスワップアウトされるページが選択される。例えば、参照頻度が低いページが選択されたり、ランダムにページが選択されたりする。
ステップ2:次に、圧縮伸張エンジン14は、ステップ1で選択されたページのデータである無圧縮入力データ21のデータサイズと同じサイズのデータ格納場所22を、RAM Disk領域17に確保する。
ステップ3:次に、圧縮伸張エンジン14は、無圧縮入力データ21の圧縮処理を行い、圧縮されたデータを圧縮済出力データとしてデータ格納場所22に逐次出力する。これと並行して、圧縮状況観測モニタ18は、圧縮伸張エンジン14における圧縮状況を観測する。
ステップ4:圧縮済出力データのデータサイズが無圧縮入力データ21のデータサイズを上回った場合には、これを圧縮状況観測モニタ18が検出する。そして、圧縮状況観測モニタ18は、圧縮伸張エンジン14に対して、圧縮処理を中止し、無圧縮入力データ21および圧縮後のデータを破棄するよう指示し、代わりに、DMAC13に対して、無圧縮入力データ21の全領域を無圧縮のままデータ格納場所22に転送して保持させるよう指示する。これにより、データ格納場所22には、圧縮済出力データを上書きする形で、無圧縮入力データ21が書き込まれることになる。その後、圧縮状況観測モニタ18は、データ格納場所22は無圧縮入力データ21でスワップアウトされたことを示す情報をOSに出力する。
ステップ5:一方、圧縮済出力データのデータサイズが無圧縮入力データ21のデータサイズを上回らなかった場合には、圧縮伸張エンジン14は、圧縮完了後、圧縮済出力データのデータサイズを基にして、データ格納場所22の中で圧縮済出力データが書き込まれなかった未使用領域23のデータサイズを計算し、データ格納場所22から未使用領域23を開放する。
以上のステップによって、RAM Disk領域17に対する、圧縮済出力データのスワップアウトの処理が完了する。
上述したように本実施形態によれば、圧縮済出力データが無圧縮入力データ21のデータサイズを上回ることがないため、圧縮済出力データを一時的に格納するための圧縮一時出力バッファが不要となる。よって、圧縮一時出力バッファを省くことによるコストダウンを図れる。また、圧縮済出力データが無圧縮入力データ21のデータサイズを上回った以降の圧縮処理や、圧縮一時出力バッファからデータ格納場所22への転送処理といった無駄な処理が不要になるため、圧縮処理の処理速度の向上および消費電力低減を図れる。
また、圧縮済出力データが無圧縮入力データ21のデータサイズを上回った場合は、データ格納場所22には無圧縮入力データ21を出力するため、RAM Disk領域17に確保するデータ格納場所22を無圧縮入力データ21のデータサイズと同じサイズにすることが可能である。
また、このことを利用して、無圧縮入力データ21のデータサイズと同じサイズのデータ格納場所22をRAM Disk領域17に確保し、圧縮済出力データを書き込んだ上で、データ格納場所22の中で圧縮済出力データが書き込まれなかった未使用領域23を開放することも可能である。
なお、本実施形態においては、圧縮伸張エンジン14は、高い圧縮効率が予め期待できる場合には、RAM Disk領域17に確保するデータ格納場所22を無圧縮入力データ21のデータサイズよりも小さくすることが可能である。この場合、データ格納場所22の容量が足りなくなった時点で、圧縮伸張エンジン14は、一旦データ格納場所22を開放し、大きなデータ格納場所26を確保し直したり、追加で新たなデータ格納場所22を確保したりすることが可能であり、また、圧縮状況観測モニタ18は、圧縮の継続、再実行、または無圧縮入力データ21の転送への切り替えなどの処理を行うことが可能である。
また、本実施形態においては、圧縮状況観測モニタ18は、圧縮効率が1を上回ること、すなわち圧縮完了後の圧縮済出力データが無圧縮入力データ21のデータサイズを上回ることを、圧縮処理の途中で検知することが可能である。例えば、圧縮状況観測モニタ18は、以下の数式(1)を満たす場合に、これを検知する。
Osize<(Dsize+Rbestsize)・・・(1)
なお、数式(1)において、各記号の意味は以下の通りである。
Osize=オリジナルデータサイズ(無圧縮入力データ21のデータサイズ)
Dsize=圧縮済みデータサイズ(圧縮伸張エンジン14からすでに出力された圧縮済出力データのデータサイズ)
Rbestsize=無圧縮入力データ21のうち圧縮が行われていないデータを最高の圧縮効率で圧縮した場合のデータサイズ
Rbestsizeは、最小圧縮単位の圧縮を行うたびに算出することができる。例えば、8byteが最小圧縮単位であり、8byteの無圧縮入力データを最高の圧縮効率で圧縮した場合に10bitになると仮定する。この場合、8Kbyteの無圧縮入力データ21がまだ圧縮処理されていないとすると、Rbestsizeは次のように算出することができる。
8Kbyte/8byte*10bit=1280byte
このとき、Osizeが32Kbyte、Dsizeが31Kbyteであれば、数式(1)は満たされたことになるため、ステップ4と同等の処理を行う。これにより、早期にステップ4に移行することが可能となるため、圧縮処理の処理速度の向上および消費電力低減を図れる。
また、本実施形態においては、Rbestsizeを算出する際に、理想的な最高の圧縮効率を用いずに、現実的に期待できる中での最高の圧縮効率を用いて同じ数式(1)により算出を行うことにより、早期にステップ4に移行することも可能である。この場合には、圧縮済出力データの方が、無圧縮入力データ21よりもデータサイズが小さくなる可能性もあるがその確率は低いと考えられること、また、圧縮効率が高くはならないと考えられることから、実質的な圧縮効率の悪化はわずかである。
また、本実施形態においては、圧縮状況観測モニタ18は、圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出し、算出した圧縮効率が規定値よりも低い場合には、圧縮完了後の圧縮済出力データが無圧縮入力データ21のデータサイズよりも大きくなると判断し、ステップ4に移行することも可能である。これよっても、圧縮処理の処理速度の向上および消費電力低減を図れる。
(第2の実施形態)
図3を参照すると、本実施形態の情報処理装置は、図1に示した第1の実施形態と比較して、圧縮履歴テーブル19を追加した点が異なる。
圧縮履歴テーブル19は、OSで管理する各プロセスのページを示す無圧縮入力データ21の識別子と、無圧縮入力データ21の圧縮完了後の圧縮済出力データのデータサイズとを関連付けたエントリを記憶する。
図4を参照すると、圧縮履歴テーブル19は、エントリの有効ビット41と、プロセスID42と、ページアドレス43と、圧縮完了後の圧縮済みデータのデータサイズ44とを示すエントリから構成される。なお、本実施形態では、圧縮履歴テーブル19を、ハードウェアによって実現した事例を示しているが、本発明はこれに限定されず、ソフトウェアで実現し、主記憶装置16上に圧縮履歴テーブル19のテーブル情報を展開してもよい。
本実施形態の特徴は、圧縮完了時に圧縮効率の履歴を残し、次回の圧縮時に、前回までの履歴を参照して、圧縮効率の予測を行うとともに、圧縮効率の高いページを優先的にスワップアウトさせる点にある。
以下、本実施形態の情報処理装置の動作について説明する。ここでは、第1の実施形態で説明した動作ステップとは異なる処理を中心に説明する。
ステップ1:RAM Disk領域17にスワップアウトされるページが選択されると、圧縮伸張エンジン14は、圧縮履歴テーブル19を検索し、有効ビット41が有効なエントリの中に、上記で選択されたページと同一のプロセスID42およびページアドレス43が存在するか否かを判定する。もし、存在している場合には、圧縮伸張エンジン14は、圧縮完了後のデータサイズ44の値を読み出す。
ステップ2:ステップ1で存在していた場合には、圧縮伸張エンジン14は、圧縮完了後のデータサイズ44の値に一定の値を掛け合わせたサイズのデータ格納場所22を、RAM Disk領域17に確保する。一方、ステップ1で存在しない場合には、圧縮伸張エンジン14は、ステップ1で選択されたページの無圧縮入力データ21のデータサイズと同じサイズまたは圧縮完了後のデータサイズ44の値に一定の値を掛け合わせたサイズのデータ格納場所22を、RAM Disk領域17に確保する。ここで、一定の値を掛け合わせるのは、前回のスワップアウト時から、ページデータが書き換わったことで圧縮効率が変化する可能性を考慮したものである。もし、ページデータが書き換わっていないことが保証できる場合には、同一のデータサイズを確保する方が効率的である。
ステップ3〜5の処理は、第1の実施形態と同様である。
ステップ6:圧縮伸張エンジン14は、圧縮処理が完了した際に、無圧縮入力データ21の識別子に関連付けて、圧縮完了後の圧縮済出力データのデータサイズ44を圧縮履歴テーブル19に書き込む。
上述したように本実施形態においては、圧縮履歴テーブル19を用いることにより、RAM Disk領域17に確保するデータ格納場所22のサイズが、実際に使用するサイズに近い値となる。したがって、ステップ5で開放する未使用領域26のサイズを小さくすることができるため、RAM Disk領域17の残容量が少ない場合に特に効率的にRAM Disk領域17を使用することが可能になる。
なお、本実施形態においては、ステップ1において、スワップアウトするページを選択する際に、既存技術である参照頻度が低いページを選択したり、ランダムにページを選択したりすること以外に、次のようにページを選択することができる。
すなわち、まず、圧縮履歴テーブル19を参照し、選択候補のページと同一のプロセスID42およびページアドレス43が存在するか否かを判定する。もし、存在している場合には、圧縮完了後のデータサイズ44の値を基に圧縮効率を予測し、圧縮効率が高いページを優先して選択する。このように選択することによって、より多くのページをRAM Disk領域17上にスワップアウト可能となるため、資源が限られている主記憶装置16およびRAM Disk領域17をより有効に利用することが可能である。ただし、圧縮履歴テーブル19のエントリ数は限りがあるため、古くなったエントリを破棄するなどの仕組みを導入する必要がある。
また、本実施形態においては、ステップ2において、圧縮効率が低い無圧縮入力データ21をスワップアウトすると判断した場合には、初めから圧縮をせず、無圧縮入力データ21を、DMAC13を用いるなどして、そのままRAM Disk領域17に転送することも可能である。
また、本実施形態においては、アプリケーション毎に、アプリケーションに関連付けて履歴を記録しておき、アプリケーションを再度実行する際には履歴を予め圧縮履歴テーブル19に再ロードすることにより、初回の圧縮処理から履歴を利用することが可能である。
(第3の実施形態)
本実施形態の構成は、第2の実施形態と同様である。
本実施形態の特徴は、圧縮伸張エンジン14が、複数の圧縮伸張アルゴリズムに対応している点にある。
圧縮効率は、無圧縮入力データ21の性質によって異なることが知られている。そのため、無圧縮入力データ21の性質に応じた圧縮アルゴリズムを用いることで、圧縮効率を向上させることが可能である。
本実施形態では、圧縮履歴テーブル19を拡張し、圧縮処理が完了した時点で、圧縮完了後の圧縮済出力データのデータサイズ44以外に、無圧縮入力データ21の性質も書き込むこととする。
以下、本実施形態の情報処理装置の動作について説明する。ここでは、第2の実施形態で説明した動作ステップとは異なる処理を中心に説明する。
ステップ1:圧縮履歴テーブル19を検索した結果、スワップアウトされるページと同一のプロセスID42およびページアドレス43が存在していた場合、圧縮伸張エンジン14は、圧縮完了後のデータサイズ44の値の他、無圧縮入力データ21の性質も読み出す。
ステップ2:ステップ1で存在していた場合には、圧縮伸張エンジン14は、無圧縮入力データ21の性質に応じて適切な圧縮アルゴリズムを選択する。一方、ステップ1で存在しない場合には、圧縮伸張エンジン14は、標準的な圧縮アルゴリズムを選択するか、または、データの性質が類似する無圧縮入力データ21に関連付けられている圧縮アルゴリズムを選択する。
より具体的には、例えば、無圧縮入力データ21が、8byte長のデータ列を一定期間繰り返すといった性質である場合、この繰り返しを判定して、8byteごとに、高密度な圧縮を行う圧縮アルゴリズムを選択する。または、無圧縮入力データ21が、テキストデータのようにbyteごとにデータが圧縮されるといった性質である場合、byte単位でデータの比較を行う圧縮アルゴリズムを選択する。
ステップ3:圧縮伸張エンジン14は、圧縮処理中に、無圧縮入力データ21の性質を統計カウンタなどを用いて判断する。無圧縮入力データ21の性質の例としては、データ列の長さ、データ“0”の出現頻度などがある。また、基本的な圧縮アルゴリズムにおいては、辞書にデータパターンを予め登録しておき、新たなデータが出現した場合には、そのデータと同じデータパターンが存在するか否かを判定し、存在していれば辞書のエントリ番号にデータを置き換えることを行うが、この場合に辞書に存在する確率を表すヒット率なども、無圧縮入力データ21の性質の例として挙げられる。
ステップ4,5の処理は、第2の実施形態と同様である。
ステップ6:圧縮伸張エンジン14は、ステップ2で選択した圧縮アルゴリズムを用いて圧縮処理を行い、圧縮処理が完了した時点で、無圧縮入力データ21の識別子に関連付けて、圧縮完了後の圧縮済出力データのデータサイズ44と無圧縮入力データ21の性質とを圧縮履歴テーブル19に書き込む。
上述したように本実施形態においては、RAM Disk領域17からデータをスワップインした後に、再度スワップアウトする際には、無圧縮入力データ21の性質に応じて適切な圧縮アルゴリズムを選択して圧縮処理を行うことが可能であるため、効率的な圧縮処理を行うことが可能である。
なお、本実施形態においては、無圧縮入力データ21の性質に応じて圧縮アルゴリズムを選択する事例について説明したが、本発明はこの事例に限定されない。例えば、圧縮アルゴリズムによって、圧縮時間が異なるような事例では、スワップアウトするときのシステム負荷状態やRAM Disk領域17の使用状況に応じて、圧縮アルゴリズムを選択することも可能である。この場合に、ユーザが圧縮時間を優先すれば、圧縮時間が短くて圧縮効率が低い圧縮アルゴリズムを選択し、ユーザが圧縮効率を優先すれば、圧縮時間が長くて圧縮効率が高い圧縮アルゴリズムかを選択する。このような選択を行うことも、情報処理装置としての処理効率向上の方策として有効である。
本発明の第1の実施形態の情報処理装置の構成を示すブロック図である。 本発明の第1の実施形態の情報処理装置の動作を説明する模式図である。 本発明の第2および第3の実施形態の情報処理装置の構成を示すブロック図である。 本発明の第2の実施形態に係る圧縮履歴テーブルの構成を示す図である。 従来の情報処理装置の一構成例を示すブロック図である。 従来の情報処理装置の動作を説明する模式図である。
符号の説明
11 CPU(中央プロセッシングユニット)
12 DSP(ディジタルシグナルプロセッサ)
13 DMAC(ダイレクトメモリアクセスコントローラ)
14 圧縮伸張エンジン
15 システムバス
16 主記憶装置
17 RAM Disk領域
18 圧縮状況観測モニタ
19 圧縮履歴テーブル
21 無圧縮入力データ
22 データ格納場所
23 データ格納場所の未使用領域
41 有効ビット
42 プロセスID
43 ページアドレス
44 圧縮完了後データサイズ

Claims (14)

  1. 記憶装置と、前記記憶装置へのアクセスを行う情報処理ユニットと、前記記憶装置へのスワップアウト時に、無圧縮入力データの圧縮処理を行い、圧縮されたデータを圧縮済出力データとして前記記憶装置に逐次出力する圧縮手段とを有してなる情報処理装置において、
    前記圧縮手段における圧縮状況を観測し、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示する圧縮状況観測手段をさらに有することを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置において、
    前記圧縮状況観測手段は、前記圧縮手段における圧縮状況を観測すると同時に、前記無圧縮入力データのうち圧縮が行われていないデータを理論的な最高圧縮効率で圧縮した場合のデータサイズを算出し、算出したデータサイズと前記圧縮手段から出力された前記圧縮済出力データのデータサイズとを加算し、加算したデータサイズが規定サイズを上回った場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することを特徴とする情報処理装置。
  3. 請求項1または2に記載の情報処理装置において、
    前記圧縮状況観測手段は、前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出し、算出した圧縮効率が規定値よりも低い場合には、前記圧縮手段に対して、圧縮処理を中止し、前記無圧縮入力データおよび圧縮後のデータを破棄するよう指示するとともに、前記情報処理ユニットに対して、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるよう指示することを特徴とする情報処理装置。
  4. 請求項1から3のいずれか1項に記載の情報処理装置において、
    前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、圧縮完了後の前記圧縮済出力データのデータサイズを前記記憶装置に保持させることを特徴とする情報処理装置。
  5. 請求項4に記載の情報処理装置において、
    前記圧縮手段は、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記圧縮済出力データのデータサイズを基に、圧縮効率を予測することを特徴とする情報処理装置。
  6. 請求項5に記載の情報処理装置において、
    前記圧縮手段は、圧縮効率の予測結果を基に、圧縮効率が高い無圧縮入力データを優先して圧縮処理を行うことを特徴とする情報処理装置。
  7. 請求項1から6のいずれか1項に記載の情報処理装置において、
    前記圧縮手段は、圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、前記無圧縮入力データの性質を前記記憶装置に保持させ、圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定し、該識別子が存在する場合には、該識別子に関連付けて保持された前記無圧縮入力データの性質に応じた圧縮アルゴリズムを選択して圧縮処理を行うことを特徴とする情報処理装置。
  8. 記憶装置と、前記記憶装置へのスワップアウト時に、無圧縮入力データの圧縮処理を行い、圧縮されたデータを圧縮済出力データとして前記記憶装置に逐次出力する圧縮手段とを有してなる情報処理装置による情報処理方法であって、
    前記圧縮手段における圧縮状況を観測するステップと、
    前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズを上回ったことを検出した場合には、前記圧縮手段に圧縮処理を中止させて前記無圧縮入力データおよび圧縮後のデータを破棄させるとともに、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるステップとを有することを特徴とする情報処理方法。
  9. 請求項8に記載の情報処理方法において、
    前記圧縮手段における圧縮状況を観測すると同時に、前記無圧縮入力データのうち圧縮が行われていないデータを理論的な最高圧縮効率で圧縮した場合のデータサイズを算出するステップと、
    前記算出したデータサイズと前記圧縮手段から出力された前記圧縮済出力データのデータサイズとを加算するステップと、
    前記加算したデータサイズが規定サイズを上回った場合には、前記圧縮手段に圧縮処理を中止させて前記無圧縮入力データおよび圧縮後のデータを破棄させるとともに、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるステップとをさらに有することを特徴とする情報処理方法。
  10. 請求項8または9に記載の情報処理方法において、
    前記圧縮手段から出力された前記圧縮済出力データのデータサイズが規定サイズになった時点で、その時点までの圧縮効率を算出するステップと、
    前記算出した圧縮効率が規定値よりも低い場合には、前記圧縮手段に圧縮処理を中止させて前記無圧縮入力データおよび圧縮後のデータを破棄させるとともに、前記無圧縮入力データの全領域を無圧縮のまま前記記憶装置に転送して保持させるステップとをさらに有することを特徴とする情報処理方法。
  11. 請求項8から10のいずれか1項に記載の情報処理方法において、
    圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、圧縮完了後の前記圧縮済出力データのデータサイズを前記記憶装置に保持させるステップをさらに有することを特徴とする情報処理方法。
  12. 請求項11に記載の情報処理方法において、
    圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定するステップと、
    前記識別子が存在する場合には、該識別子に関連付けて保持された前記圧縮済出力データのデータサイズを基に、圧縮効率を予測するステップとをさらに有することを特徴とする情報処理方法。
  13. 請求項12に記載の情報処理方法において、
    圧縮効率の予測結果を基に、圧縮効率が高い無圧縮入力データを優先して圧縮処理を行うステップをさらに有することを特徴とする情報処理方法。
  14. 請求項8から13のいずれか1項に記載の情報処理方法において、
    圧縮処理が完了した際に、前記無圧縮入力データの識別子と関連付けて、前記無圧縮入力データの性質を前記記憶装置に保持させるステップと、
    圧縮処理を開始する際に、前記無圧縮入力データと同一の識別子が前記記憶装置に存在するか否かを判定するステップと、
    前記識別子が存在する場合には、該識別子に関連付けて保持された前記無圧縮入力データの性質に応じた圧縮アルゴリズムを選択して圧縮処理を行うステップとをさらに有することを特徴とする情報処理方法。
JP2006336958A 2006-12-14 2006-12-14 情報処理装置および情報処理方法 Expired - Fee Related JP5018060B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006336958A JP5018060B2 (ja) 2006-12-14 2006-12-14 情報処理装置および情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006336958A JP5018060B2 (ja) 2006-12-14 2006-12-14 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2008152339A true JP2008152339A (ja) 2008-07-03
JP5018060B2 JP5018060B2 (ja) 2012-09-05

Family

ID=39654481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006336958A Expired - Fee Related JP5018060B2 (ja) 2006-12-14 2006-12-14 情報処理装置および情報処理方法

Country Status (1)

Country Link
JP (1) JP5018060B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118987A (ja) * 2010-11-30 2012-06-21 Internatl Business Mach Corp <Ibm> メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ)
US9116631B2 (en) 2012-12-11 2015-08-25 Samsung Electronics Co., Ltd. Mobile device and method of managing data using swap thereof
JP2018522457A (ja) * 2015-05-21 2018-08-09 ゼロポイント テクノロジーズ アーベー ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム
US10146680B2 (en) 2013-03-12 2018-12-04 Samsung Electronics Co., Ltd. Data processing system and method of operating the same

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07245685A (ja) * 1994-03-07 1995-09-19 Ricoh Co Ltd 印刷装置
JPH0816792A (ja) * 1994-07-04 1996-01-19 Ricoh Co Ltd 画像記憶装置
JPH08274999A (ja) * 1995-03-29 1996-10-18 Nec Eng Ltd 画像データ処理方法および画像処理装置
JPH09174962A (ja) * 1995-12-26 1997-07-08 Ricoh Co Ltd 印刷装置
JP2000326571A (ja) * 1999-05-24 2000-11-28 Canon Inc 印刷制御装置及びその印刷制御方法ならびに記録媒体
JP2003228516A (ja) * 2002-02-04 2003-08-15 Sony Corp データ処理装置とデータ処理システム及びデータ処理方法
JP2006186480A (ja) * 2004-12-27 2006-07-13 Kyocera Mita Corp データ圧縮装置及びデータ圧縮プログラム
JP2006303962A (ja) * 2005-04-21 2006-11-02 Canon Inc データ処理装置装置およびデータ処理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07245685A (ja) * 1994-03-07 1995-09-19 Ricoh Co Ltd 印刷装置
JPH0816792A (ja) * 1994-07-04 1996-01-19 Ricoh Co Ltd 画像記憶装置
JPH08274999A (ja) * 1995-03-29 1996-10-18 Nec Eng Ltd 画像データ処理方法および画像処理装置
JPH09174962A (ja) * 1995-12-26 1997-07-08 Ricoh Co Ltd 印刷装置
JP2000326571A (ja) * 1999-05-24 2000-11-28 Canon Inc 印刷制御装置及びその印刷制御方法ならびに記録媒体
JP2003228516A (ja) * 2002-02-04 2003-08-15 Sony Corp データ処理装置とデータ処理システム及びデータ処理方法
JP2006186480A (ja) * 2004-12-27 2006-07-13 Kyocera Mita Corp データ圧縮装置及びデータ圧縮プログラム
JP2006303962A (ja) * 2005-04-21 2006-11-02 Canon Inc データ処理装置装置およびデータ処理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118987A (ja) * 2010-11-30 2012-06-21 Internatl Business Mach Corp <Ibm> メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ)
US9116631B2 (en) 2012-12-11 2015-08-25 Samsung Electronics Co., Ltd. Mobile device and method of managing data using swap thereof
US10146680B2 (en) 2013-03-12 2018-12-04 Samsung Electronics Co., Ltd. Data processing system and method of operating the same
JP2018522457A (ja) * 2015-05-21 2018-08-09 ゼロポイント テクノロジーズ アーベー ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム
JP7010548B2 (ja) 2015-05-21 2022-01-26 ゼロポイント テクノロジーズ アーベー ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム

Also Published As

Publication number Publication date
JP5018060B2 (ja) 2012-09-05

Similar Documents

Publication Publication Date Title
JP5592009B2 (ja) 変換索引バッファを管理するためのシステムおよび方法
TWI578225B (zh) 移動裝置和使用交換其的資料管理方法
US7302543B2 (en) Compressed memory architecture for embedded systems
JP4399020B1 (ja) 情報処理装置およびメモリ管理方法
US9146933B2 (en) Compressed storage access system with uncompressed frequent use data
US10402114B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program
US10592148B2 (en) Information processing system, storage control apparatus, storage control method, and storage control program for evaluating access performance to a storage medium
US10482021B2 (en) Priority-based storage and access of compressed memory lines in memory in a processor-based system
TWI493446B (zh) 記憶體管理方法及記憶體管理裝置
JP5018060B2 (ja) 情報処理装置および情報処理方法
JP2000276404A (ja) 仮想記憶装置および仮想記憶方法、並びに記録媒体
US20110191553A1 (en) Data Storage Control Apparatus and Data Storage Control Method
JP2018063505A (ja) メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム
JP2008278258A (ja) データ展開装置及びデータ展開方法
JP2002202912A (ja) 記録装置、記録制御方法、及びプログラム
JP6254986B2 (ja) 情報処理装置、アクセスコントローラ、および情報処理方法
JP6243884B2 (ja) 情報処理装置、プロセッサ、および情報処理方法
JP4910785B2 (ja) 電子機器、電子機器の電源制御プログラムおよび電源制御方法
JP5505195B2 (ja) メモリの制御装置、及び制御方法
JP5206103B2 (ja) ストレージ装置、ストレージ装置制御システム、ストレージ装置の制御方法、及びプログラム
JP2007004720A (ja) ストレージ装置およびストレージ装置のデータ転送方法
JP2008226082A (ja) データ圧縮伸張装置、コンピュータに実行させるためのプログラム、及びデータ圧縮伸張方法
JP2003203486A (ja) 半導体記憶装置及びその制御方法
JP2010186411A (ja) プログラム実行装置、プログラム実行方法、及びプログラム
JP2010277495A (ja) 圧縮記録装置および圧縮記録方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120420

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: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120528

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees