(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023146521
(43)【公開日】2023-10-12
(54)【発明の名称】メモリ制御装置、情報処理システム、及びメモリ制御方法
(51)【国際特許分類】
G06F 12/04 20060101AFI20231004BHJP
G06F 12/00 20060101ALI20231004BHJP
【FI】
G06F12/04 530
G06F12/00 560B
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022053735
(22)【出願日】2022-03-29
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100115381
【弁理士】
【氏名又は名称】小谷 昌崇
(74)【代理人】
【識別番号】100136353
【弁理士】
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】油谷 大武
(72)【発明者】
【氏名】達可 敏充
(72)【発明者】
【氏名】田村 満
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CB01
5B160CB03
(57)【要約】
【課題】圧縮データの伸張処理に伴うプロセッサの負荷を軽減することが可能なメモリ制御装置を得る。
【解決手段】メモリ制御装置は、圧縮されたデータが格納されたメモリを制御するメモリ制御装置であって、プロセッサからの要求に応じて前記メモリから読み出されたデータを、ハードウェア処理によって伸張する伸張回路と、前記伸張回路によって伸張されたデータを保持データとして一時的に保持し、前記プロセッサからの要求に応じて前記保持データを前記プロセッサに向けて出力するデータ保持回路と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
圧縮されたデータが格納されたメモリを制御するメモリ制御装置であって、
プロセッサからの要求に応じて前記メモリから読み出されたデータを、ハードウェア処理によって伸張する伸張回路と、
前記伸張回路によって伸張されたデータを保持データとして一時的に保持し、前記プロセッサからの要求に応じて前記保持データを前記プロセッサに向けて出力するデータ保持回路と、
を備える、メモリ制御装置。
【請求項2】
前記伸張回路によるデータの伸張に使用される複数の伸張パラメータを保持し、保持している前記複数の伸張パラメータのうち伸張対象のデータに対応する伸張パラメータを選択し、選択した当該伸張パラメータを前記伸張回路に入力するパラメータ保持回路
をさらに備える、請求項1に記載のメモリ制御装置。
【請求項3】
前記メモリに格納されたデータは第1の圧縮効率で圧縮されており、
前記伸張回路によって伸張されたデータを、前記第1の圧縮効率よりも低い第2の圧縮効率で再圧縮し、再圧縮したデータを前記データ保持回路に入力する圧縮回路
をさらに備え、
前記データ保持回路は、前記圧縮回路から入力されたデータを前記保持データとして保持する、請求項1又は2に記載のメモリ制御装置。
【請求項4】
前記圧縮回路は、第1のパラメータに基づいて、前記第2の圧縮効率を可変に設定する、請求項3に記載のメモリ制御装置。
【請求項5】
前記第1のパラメータは、前記プロセッサの性能、前記プロセッサの処理混雑状況、及び前記プロセッサの通信混雑状況の少なくとも一つを含む、請求項4に記載のメモリ制御装置。
【請求項6】
前記圧縮回路は、第2のパラメータに基づいて前記第2の圧縮効率を変更しつつ、前記データ保持回路が保持している前記保持データを再圧縮する、請求項4に記載のメモリ制御装置。
【請求項7】
前記第2のパラメータは、前記データ保持回路が保持している前記保持データの読み出し頻度、前記プロセッサの性能、前記プロセッサの処理混雑状況、及び前記プロセッサの通信混雑状況の少なくとも一つを含む、請求項4に記載のメモリ制御装置。
【請求項8】
前記第2のパラメータは前記読み出し頻度を含み、
前記圧縮回路は、前記読み出し頻度が第1のしきい値未満である場合に、前記第2の圧縮効率を現在値より高い値に変更する、請求項7に記載のメモリ制御装置。
【請求項9】
前記第2のパラメータは前記読み出し頻度を含み、
前記圧縮回路は、前記読み出し頻度が第1のしきい値以上である場合に、前記第2の圧縮効率を現在値より低い値に変更する、請求項7又は8に記載のメモリ制御装置。
【請求項10】
前記第2のパラメータは前記通信混雑状況を含み、
前記圧縮回路は、前記通信混雑状況が第2のしきい値以上である場合に、前記第2の圧縮効率を現在値より高い値に変更する、請求項7に記載のメモリ制御装置。
【請求項11】
前記第2のパラメータは前記通信混雑状況を含み、
前記圧縮回路は、前記通信混雑状況が第2のしきい値未満である場合に、前記第2の圧縮効率を現在値より低い値に変更する、請求項7又は10に記載のメモリ制御装置。
【請求項12】
プロセッサと、
圧縮されたデータが格納されたメモリと、
前記メモリを制御するメモリ制御装置と、
を備え、
前記メモリ制御装置は、
前記プロセッサからの要求に応じて前記メモリから読み出されたデータを、ハードウェア処理によって伸張する伸張回路と、
前記伸張回路によって伸張されたデータを保持データとして一時的に保持し、前記プロセッサからの要求に応じて前記保持データを前記プロセッサに向けて出力するデータ保持回路と、
を有する、情報処理システム。
【請求項13】
圧縮されたデータが格納されたメモリを制御するメモリ制御方法であって、
伸張回路が、プロセッサからの要求に応じて前記メモリから読み出されたデータを、ハードウェア処理によって伸張し、
データ保持回路が、前記伸張回路によって伸張されたデータを保持データとして一時的に保持し、前記プロセッサからの要求に応じて前記保持データを前記プロセッサに向けて出力する、
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリ制御装置、情報処理システム、及びメモリ制御方法に関する。
【背景技術】
【0002】
下記特許文献1には、圧縮データが格納されたデータ記憶部と、データ記憶部から読み出された圧縮データを伸張するデータ伸張部とを備える計算機システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記特許文献1に開示された計算機システムによると、データ伸張部は、オペレーティングシステムに組み込まれて実現され、又は、オペレーティングシステム上で動作するファイル管理プログラムとして実現されている。つまり、データ伸張部は、データ記憶部から読み出された圧縮データをプロセッサによるソフトウェア処理によって伸張する。
【0005】
従って、圧縮データが高い圧縮効率で圧縮されている場合には、プロセッサのソフトウェア処理による圧縮データの伸張処理に長時間を要し、又は、伸張処理を高速に実行可能な高性能のプロセッサの実装が必要となってコストが増大する。
【0006】
本発明はかかる事情に鑑みて成されたものであり、圧縮データの伸張処理に伴うプロセッサの負荷を軽減することが可能な、メモリ制御装置、情報処理システム、及びメモリ制御方法を得ることを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係るメモリ制御装置は、圧縮されたデータが格納されたメモリを制御するメモリ制御装置であって、プロセッサからの要求に応じて前記メモリから読み出されたデータを、ハードウェア処理によって伸張する伸張回路と、前記伸張回路によって伸張されたデータを保持データとして一時的に保持し、前記プロセッサからの要求に応じて前記保持データを前記プロセッサに向けて出力するデータ保持回路と、を備える。
【0008】
本態様によれば、伸張回路は、プロセッサからの要求に応じてメモリから読み出されたデータを、ハードウェア処理によって伸張する。また、データ保持回路は、伸張回路によって伸張されたデータを保持データとして一時的に保持し、プロセッサからの要求に応じて保持データをプロセッサに向けて出力する。従って、プロセッサのソフトウェア処理による圧縮データの伸張処理が不要となるため、伸張処理に伴うプロセッサの負荷を軽減することが可能となる。また、プロセッサが次回以降に使用するデータをメモリから事前に読み出して、伸張回路によって伸張されたデータをデータ保持回路にバッファリングしておくことができる。これにより、メモリ制御装置は、プロセッサからの当該データの転送要求に対して、データ保持回路からプロセッサに当該データを直ちに転送することが可能となる。
【0009】
上記態様において、前記伸張回路によるデータの伸張に使用される複数の伸張パラメータを保持し、保持している前記複数の伸張パラメータのうち伸張対象のデータに対応する伸張パラメータを選択し、選択した当該伸張パラメータを前記伸張回路に入力するパラメータ保持回路をさらに備える。
【0010】
本態様によれば、パラメータ保持回路は伸張回路によるデータの伸張に使用される伸張パラメータを保持しており、伸張処理前の初期化処理によって伸張パラメータを生成する必要がないため、初期化処理に伴うレイテンシの発生を回避できる。また、パラメータ保持回路は、保持している複数の伸張パラメータのうち伸張対象のデータに対応する伸張パラメータを選択して伸張回路に入力する。従って、伸張回路は、伸張対象のデータに応じた最適な伸張パラメータを使用してデータの伸張を行うことができる。その結果、一の固定パラメータが使用される場合と比較して、データの圧縮効率を高めることが可能となる。
【0011】
上記態様において、前記メモリに格納されたデータは第1の圧縮効率で圧縮されており、前記伸張回路によって伸張されたデータを、前記第1の圧縮効率よりも低い第2の圧縮効率で再圧縮し、再圧縮したデータを前記データ保持回路に入力する圧縮回路をさらに備え、前記データ保持回路は、前記圧縮回路から入力されたデータを前記保持データとして保持する。
【0012】
本態様によれば、圧縮回路は、伸張回路によって伸張されたデータを再圧縮し、再圧縮したデータをデータ保持回路に入力する。従って、データ保持回路は再圧縮されたデータをプロセッサに転送するため、伸張されたデータを転送する場合と比較して、転送スループットを向上することが可能となる。また、圧縮回路は、第1の圧縮効率よりも低い第2の圧縮効率で再圧縮を行うため、第1の圧縮効率で圧縮されたデータを伸張する場合と比較して、圧縮データの伸張処理に伴うプロセッサの負荷を軽減することが可能となる。
【0013】
上記態様において、前記圧縮回路は、第1のパラメータに基づいて、前記第2の圧縮効率を可変に設定する。
【0014】
本態様によれば、伸張回路によって伸張されたデータを圧縮回路が再圧縮する際の第2の圧縮効率を適切に設定することが可能となる。
【0015】
上記態様において、前記第1のパラメータは、前記プロセッサの性能、前記プロセッサの処理混雑状況、及び前記プロセッサの通信混雑状況の少なくとも一つを含む。
【0016】
本態様によれば、伸張回路によって伸張されたデータを圧縮回路が再圧縮する際の第2の圧縮効率を、プロセッサの性能、処理混雑状況、又は通信混雑状況に応じて適切に設定することが可能となる。
【0017】
上記態様において、前記圧縮回路は、第2のパラメータに基づいて前記第2の圧縮効率を変更しつつ、前記データ保持回路が保持している前記保持データを再圧縮する。
【0018】
本態様によれば、データ保持回路が保持している保持データを、第2の圧縮効率を適切に変更しつつ再圧縮することが可能となる。
【0019】
上記態様において、前記第2のパラメータは、前記データ保持回路が保持している前記保持データの読み出し頻度、前記プロセッサの性能、前記プロセッサの処理混雑状況、及び前記プロセッサの通信混雑状況の少なくとも一つを含む。
【0020】
本態様によれば、データ保持回路が保持している保持データを再圧縮する際の第2の圧縮効率を、保持データの読み出し頻度、プロセッサの性能、処理混雑状況、又は通信混雑状況に応じて適切に設定することが可能となる。
【0021】
上記態様において、前記第2のパラメータは前記読み出し頻度を含み、前記圧縮回路は、前記読み出し頻度が第1のしきい値未満である場合に、前記第2の圧縮効率を現在値より高い値に変更する。
【0022】
本態様によれば、圧縮回路は、読み出し頻度が第1のしきい値未満である場合に、第2の圧縮効率を現在値より高い値に変更する。これにより、データ保持回路の保持データ量を削減できるとともに、データ保持回路からプロセッサへのデータ転送における転送スループットを向上することが可能となる。
【0023】
上記態様において、前記第2のパラメータは前記読み出し頻度を含み、前記圧縮回路は、前記読み出し頻度が第1のしきい値以上である場合に、前記第2の圧縮効率を現在値より低い値に変更する。
【0024】
本態様によれば、圧縮回路は、前記読み出し頻度が第1のしきい値以上である場合に、前記第2の圧縮効率を現在値より低い値に変更する。これにより、圧縮データの伸張処理に伴うプロセッサの負荷を軽減することが可能となる。
【0025】
上記態様において、前記第2のパラメータは前記通信混雑状況を含み、前記圧縮回路は、前記通信混雑状況が第2のしきい値以上である場合に、前記第2の圧縮効率を現在値より高い値に変更する。
【0026】
本態様によれば、圧縮回路は、プロセッサの通信混雑状況が第2のしきい値以上である場合に、前記第2の圧縮効率を現在値より高い値に変更する。これにより、データ保持回路からプロセッサへのデータ転送における転送スループットを向上することが可能となる。
【0027】
上記態様において、前記第2のパラメータは前記通信混雑状況を含み、前記圧縮回路は、前記通信混雑状況が第2のしきい値未満である場合に、前記第2の圧縮効率を現在値より低い値に変更する。
【0028】
本態様によれば、圧縮回路は、プロセッサの通信混雑状況が第2のしきい値未満である場合に、第2の圧縮効率を現在値より低い値に変更する。これにより、圧縮データの伸張処理に伴うプロセッサの負荷を軽減することが可能となる。
【0029】
本発明の一態様に係る情報処理システムは、プロセッサと、圧縮されたデータが格納されたメモリと、前記メモリを制御するメモリ制御装置と、を備え、前記メモリ制御装置は、前記プロセッサからの要求に応じて前記メモリから読み出されたデータを、ハードウェア処理によって伸張する伸張回路と、前記伸張回路によって伸張されたデータを保持データとして一時的に保持し、前記プロセッサからの要求に応じて前記保持データを前記プロセッサに向けて出力するデータ保持回路と、を有する。
【0030】
本態様によれば、伸張回路は、プロセッサからの要求に応じてメモリから読み出されたデータを、ハードウェア処理によって伸張する。また、データ保持回路は、伸張回路によって伸張されたデータを保持データとして一時的に保持し、プロセッサからの要求に応じて保持データをプロセッサに向けて出力する。従って、プロセッサのソフトウェア処理による圧縮データの伸張処理が不要となるため、伸張処理に伴うプロセッサの負荷を軽減することが可能となる。また、プロセッサが次回以降に使用するデータをメモリから事前に読み出して、伸張回路によって伸張されたデータをデータ保持回路にバッファリングしておくことができる。これにより、メモリ制御装置は、プロセッサからの当該データの転送要求に対して、データ保持回路からプロセッサに当該データを直ちに転送することが可能となる。
【0031】
本発明の一態様に係るメモリ制御方法は、圧縮されたデータが格納されたメモリを制御するメモリ制御方法であって、伸張回路が、プロセッサからの要求に応じて前記メモリから読み出されたデータを、ハードウェア処理によって伸張し、データ保持回路が、前記伸張回路によって伸張されたデータを保持データとして一時的に保持し、前記プロセッサからの要求に応じて前記保持データを前記プロセッサに向けて出力する。
【0032】
本態様によれば、伸張回路は、プロセッサからの要求に応じてメモリから読み出されたデータを、ハードウェア処理によって伸張する。また、データ保持回路は、伸張回路によって伸張されたデータを保持データとして一時的に保持し、プロセッサからの要求に応じて保持データをプロセッサに向けて出力する。従って、プロセッサのソフトウェア処理による圧縮データの伸張処理が不要となるため、伸張処理に伴うプロセッサの負荷を軽減することが可能となる。また、プロセッサが次回以降に使用するデータをメモリから事前に読み出して、伸張回路によって伸張されたデータをデータ保持回路にバッファリングしておくことができる。これにより、メモリ制御装置は、プロセッサからの当該データの転送要求に対して、データ保持回路からプロセッサに当該データを直ちに転送することが可能となる。
【発明の効果】
【0033】
本発明によれば、圧縮データの伸張処理に伴うプロセッサの負荷を軽減することが可能となる。
【図面の簡単な説明】
【0034】
【
図1】本発明の第1実施形態に係る情報処理システムの構成を簡略化して示す図である。
【
図2】本発明の第2実施形態に係る情報処理システムの構成を簡略化して示す図である。
【
図3】本発明の第2実施形態の変形例に係る情報処理システムの構成を簡略化して示す図である。
【
図4】本発明の第3実施形態に係る情報処理システムの構成を簡略化して示す図である。
【
図5】本発明の第3実施形態の変形例に係る情報処理システムの構成を簡略化して示す図である。
【
図6】本発明の第4実施形態に係る情報処理システムの構成を簡略化して示す図である。
【
図7】本発明の第4実施形態の変形例に係る情報処理システムの構成を簡略化して示す図である。
【
図8】本発明の第5実施形態に係る情報処理システムの構成を簡略化して示す図である。
【発明を実施するための形態】
【0035】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。また、以下に述べる複数の実施形態は任意に組み合わせて適用することが可能である。
【0036】
<第1実施形態>
図1は、本発明の第1実施形態に係る情報処理システム1Aの構成を簡略化して示す図である。情報処理システム1は、パーソナルコンピュータ等のホスト装置11と、ホスト装置11に対して着脱自在に接続可能なメモリ12とを備えている。メモリ12は、例えばNAND型フラッシュメモリを用いたメモリカードとして構成されている。
【0037】
ホスト装置11は、CPU21等のプロセッサと、メモリ12を制御するメモリ制御装置としてのコントローラ22Aとを備えている。コントローラ22Aは、ASIC又はFPGA等のハードウェアを用いて構成されている。コントローラ22Aは、データ保持回路31と伸張回路32とを備えている。
【0038】
なお、コントローラ22Aは、メモリ12内に実装されていても良いし、ホスト装置11とメモリ12との間に介在していても良い。他の実施形態についても同様である。
【0039】
メモリ12には、画像又は音声等の任意のコンテンツに関する圧縮されたデータD1が格納されている。コンテンツデータの肥大化に伴うメモリコストの上昇を抑制すべく、メモリ12に格納されたデータD1は、所定の圧縮効率(第1圧縮効率)で圧縮されている。
【0040】
CPU21は、メモリ12からのデータD1の読み出し要求をコントローラ22Aに入力する。読み出し対象のデータD1は、例えば、CPU21が次回又はそれ以降に使用するデータである。但し、読み出し対象のデータD1は、CPU21が今回使用するデータであっても良い。
【0041】
コントローラ22Aは、CPU21から入力された読み出し要求に従い、メモリ12からデータD1を読み出す。メモリ12から読み出されたデータD1は、伸張回路32に入力される。
【0042】
伸張回路32は、圧縮されているデータD1をハードウェア処理によって伸張し、伸張されたデータD2をデータ保持回路31に入力する。
【0043】
データ保持回路31は、伸張されたデータD2を保持データとして一時的に保持する。これにより、事前に読み出されたデータD1を伸張回路32によって伸張し、その伸張されたデータD2をデータ保持回路31にバッファリングしておくことができる。
【0044】
コントローラ22Aは、CPU21から入力される転送要求に応じて、データD2をデータ保持回路31からCPU21に転送する。
【0045】
本実施形態によれば、伸張回路32は、CPU21からの読み出し要求に応じてメモリ12から読み出されたデータD1を、ハードウェア処理によって伸張する。また、データ保持回路31は、伸張回路32によって伸張されたデータD2を保持データとして一時的に保持し、CPU21からの転送要求に応じてデータD2をCPU21に向けて出力する。従って、CPU21のソフトウェア処理による圧縮データ(データD1)の伸張処理が不要となるため、伸張処理に伴うCPU21の負荷を軽減することが可能となる。また、CPU21が次回以降に使用するデータD1をメモリ12から事前に読み出して、伸張回路32によって伸張されたデータD2をデータ保持回路31にバッファリングしておくことができる。これにより、コントローラ22Aは、CPU21からのデータD2の転送要求に対して、データ保持回路31からCPU21にデータD2を直ちに転送することが可能となる。
【0046】
<第2実施形態>
図2は、本発明の第2実施形態に係る情報処理システム1Bの構成を簡略化して示す図である。
【0047】
ホスト装置11は、CPU21等のプロセッサと、メモリ制御装置としてのコントローラ22Bとを備えている。コントローラ22Bは、データ保持回路31、伸張回路32、及びパラメータ保持回路33を備えている。
【0048】
メモリ12には、圧縮されたデータD1が格納されている。データD1は、Deflate又はZstandard等のエントロピ符号化を採用した圧縮伸張アルゴリズムによって圧縮されている。かかる圧縮伸張アルゴリズムでは、圧縮対象又は伸張対象のデータの所定のブロック単位で圧縮処理及び伸張処理が行われ、圧縮処理前又は伸張処理前の初期化処理によって圧縮パラメータ又は伸張パラメータを動的に生成する処理が必要とされる。圧縮パラメータ又は伸張パラメータは、例えば、ハフマン符号表である。圧縮パラメータ又は伸張パラメータは、上記ブロック単位で生成される。本実施形態では、初期化処理によって伸張パラメータを動的に生成するのではなく、予め設定された複数の伸張パラメータを含む伸張パラメータ群のデータD3が、メモリ12に格納されている。
【0049】
情報処理システム1Bの電源オン時の起動処理において、コントローラ22Bは、メモリ12からデータD3を読み出して、読み出したデータD3をパラメータ保持回路33に入力する。パラメータ保持回路33は、入力されたデータD3を保持する。なお、ハフマン符号表等の伸張パラメータそのものではなくその生成用データをメモリ12に格納しておき、起動処理においてコントローラ22Bがメモリ12から読み出した生成用データに基づいて伸張パラメータを生成し、生成した伸張パラメータをパラメータ保持回路33が保持する構成としても良い。
【0050】
パラメータ保持回路33が揮発性メモリを用いて構成されている場合には、情報処理システム1Bの起動処理毎に、メモリ12からパラメータ保持回路33へのデータD3の転送処理が行われる。パラメータ保持回路33が不揮発性メモリを用いて構成されている場合には、パラメータ保持回路33は一度入力されたデータD3を電源オフ後も継続して保持する。
【0051】
CPU21は、メモリ12からのデータD1の読み出し要求をコントローラ22Bに入力する。
【0052】
コントローラ22Bは、CPU21から入力された読み出し要求に従い、メモリ12からデータD1を読み出す。メモリ12から読み出されたデータD1は、伸張回路32に入力される。
【0053】
データD1の各ブロックのヘッダには、データD3に含まれる複数の伸張パラメータのうち、圧縮時に使用された圧縮パラメータに対応する伸張パラメータを示すパラメータ選択情報が付加されている。パラメータ選択情報は、伸張回路32からパラメータ保持回路33に入力される。パラメータ保持回路33は、保持しているデータD3に含まれる複数の伸張パラメータのうち、入力されたパラメータ選択情報に対応する伸張パラメータを選択し、その選択した伸張パラメータのデータD4を伸張回路32に入力する。
【0054】
伸張回路32は、データD4で示される伸張パラメータを用いて、圧縮されているデータD1をハードウェア処理によって伸張し、伸張されたデータD2をデータ保持回路31に入力する。
【0055】
データ保持回路31は、伸張されたデータD2を保持データとして一時的に保持する。
【0056】
コントローラ22Bは、CPU21から入力される転送要求に応じて、データD2をデータ保持回路31からCPU21に転送する。
【0057】
本実施形態によれば、パラメータ保持回路33は伸張回路32によるデータD1の伸張に使用される伸張パラメータ(データD3)を保持しており、伸張処理前の初期化処理によって伸張パラメータを生成する必要がないため、初期化処理に伴うレイテンシの発生を回避できる。また、パラメータ保持回路33は、保持している複数の伸張パラメータ(データD3)のうち伸張対象のデータD1に対応する伸張パラメータ(データD4)を選択して伸張回路32に入力する。従って、伸張回路32は、伸張対象のデータD1に応じた最適な伸張パラメータを使用してデータD1の伸張を行うことができる。その結果、一の固定パラメータが使用される場合と比較して、データD1の圧縮効率を高めることが可能となる。
【0058】
なお、データD1の各ブロックのヘッダにパラメータ選択情報を付加する上記構成に代えて、データD1に含まれる複数のブロックの各々の識別情報と、データD3に含まれる複数の伸張パラメータの各々の識別情報との対応関係を示すマッピング情報を予め作成し、パラメータ保持回路33が当該マッピング情報を保持する構成としても良い。パラメータ保持回路33は、保持しているデータD3に含まれる複数の伸張パラメータのうち、伸張対象のブロックに対応する伸張パラメータを当該マッピング情報に基づいて選択し、その選択した伸張パラメータのデータD4を伸張回路32に入力する。
【0059】
また、コントローラ22Bは、メモリ12に格納されているデータD1を、読み出し頻度に関する所定のしきい値に基づいて高頻度データと低頻度データとに分類し、高頻度データに関しては本実施形態に係る複数の伸張パラメータからのパラメータ選択を適用し、低頻度データに関しては初期化処理による最適な伸張パラメータの動的生成を適用しても良い。これにより、高頻度データに関するレイテンシの発生の回避と、低頻度データに関する圧縮効率の向上とを両立できる。
【0060】
さらに、メモリ12からのデータD1の事前読み出しを行わないのであれば、データ保持回路31を省略しても良い。
図3は、本発明の第2実施形態の変形例に係る情報処理システム1Bの構成を簡略化して示す図である。
図2に示した構成からデータ保持回路31が省略されている。伸張回路32から出力されたデータD2は、データ保持回路31を介することなくCPU21に直接入力される。
【0061】
<第3実施形態>
図4は、本発明の第3実施形態に係る情報処理システム1Cの構成を簡略化して示す図である。
【0062】
ホスト装置11は、CPU21等のプロセッサと、メモリ制御装置としてのコントローラ22Cとを備えている。コントローラ22Cは、データ保持回路31、伸張回路32、及び圧縮回路34を備えている。
【0063】
CPU21は、メモリ12からのデータD1の読み出し要求をコントローラ22Cに入力する。
【0064】
コントローラ22Cは、CPU21から入力された読み出し要求に従い、メモリ12からデータD1を読み出す。メモリ12から読み出されたデータD1は、伸張回路32に入力される。
【0065】
伸張回路32は、圧縮されているデータD1をハードウェア処理によって伸張し、伸張されたデータD2を圧縮回路34に入力する。
【0066】
圧縮回路34は、伸張回路32から入力されたデータD2を、データD1に関する上記第1圧縮効率よりも低い圧縮効率(第2圧縮効率)で再圧縮し、再圧縮したデータD5をデータ保持回路31に入力する。圧縮回路34の圧縮アルゴリズムとしては、MTF又はASE等の低遅延かつ低圧縮の任意のアルゴリズムを使用することができる。
【0067】
データ保持回路31は、圧縮回路34から入力されたデータD5を保持データとして一時的に保持する。
【0068】
コントローラ22Cは、CPU21から入力される転送要求に応じて、データD5をデータ保持回路31からCPU21に転送する。
【0069】
CPU21は、ソフトウェア処理によってデータD5の伸張処理を行う。
【0070】
本実施形態によれば、圧縮回路34は、伸張回路32によって伸張されたデータD2を再圧縮し、再圧縮したデータD5をデータ保持回路31に入力する。従って、データ保持回路31は再圧縮されたデータD5をCPU21に転送するため、伸張されたデータD2を転送する場合と比較して、転送スループットを向上することが可能となる。また、圧縮回路34は、第1圧縮効率よりも低い第2圧縮効率で再圧縮を行うため、第1圧縮効率で圧縮されたデータD1を伸張する場合と比較して、圧縮データの伸張処理に伴うCPU21の負荷を軽減することが可能となる。
【0071】
なお、メモリ12からのデータD1の事前読み出しを行わないのであれば、データ保持回路31を省略しても良い。
図5は、本発明の第3実施形態の変形例に係る情報処理システム1Cの構成を簡略化して示す図である。
図4に示した構成からデータ保持回路31が省略されている。圧縮回路34から出力されたデータD5は、データ保持回路31を介することなくCPU21に直接入力される。
【0072】
<第4実施形態>
上記第3実施形態において、圧縮回路34によるデータD2の圧縮効率(第2圧縮効率)を可変としても良い。
【0073】
図6は、本発明の第4実施形態に係る情報処理システム1Dの構成を簡略化して示す図である。
【0074】
ホスト装置11は、CPU21等のプロセッサと、メモリ制御装置としてのコントローラ22Dとを備えている。コントローラ22Dは、データ保持回路31、伸張回路32、及び圧縮回路34を備えている。圧縮回路34は、圧縮効率が異なる複数の圧縮回路(この例では3つの圧縮回路34A~34C)と、選択回路35と、切替回路36,37とを備えている。以下の例では、圧縮回路34Bは上記第2圧縮効率を有し、圧縮回路34Aは第2圧縮効率より高い圧縮効率(第3圧縮効率)を有し、圧縮回路34Cは第2圧縮効率より低い圧縮効率(第4圧縮効率)を有する。
【0075】
選択回路35は、選択信号D6によって切替回路36,37を切り替えることにより、圧縮回路34A~34Cのうちの1つを選択可能である。選択回路35は、ホスト装置11に実装されているCPU21の性能(第1のパラメータの一つである)に応じて、圧縮回路34A~34Cを選択する。例えば、CPU21の性能が高レベルである場合には圧縮回路34Aを選択し、CPU21の性能が中レベルである場合には圧縮回路34Bを選択し、CPU21の性能が低レベルである場合には圧縮回路34Cを選択する。あるいは、選択回路35は、CPU21の処理の混雑状況(第1のパラメータの一つである)に応じて、圧縮回路34A~34Cを選択する。例えば、処理の混雑状況の程度が高レベルである場合には圧縮回路34Cを選択し、処理の混雑状況の程度が中レベルである場合には圧縮回路34Bを選択し、処理の混雑状況の程度が低レベルである場合には圧縮回路34Aを選択する。あるいは、選択回路35は、CPU21が接続されているデータバスの通信の混雑状況(第1のパラメータの一つである)に応じて、圧縮回路34A~34Cを選択する。例えば、通信の混雑状況の程度が高レベルである場合には圧縮回路34Aを選択し、通信の混雑状況の程度が中レベルである場合には圧縮回路34Bを選択し、通信の混雑状況の程度が低レベルである場合には圧縮回路34Cを選択する。第1のパラメータは、CPU21の性能、処理混雑状況、及び通信混雑状況の少なくとも一つを含み、コントローラ22Dはそれらの情報をCPU21から取得する。あるいは、コントローラ22D自身が第1のパラメータを検出しても良い。
【0076】
本実施形態によれば、伸張回路32によって伸張されたデータD2を圧縮回路34が再圧縮する際の第2圧縮効率は可変であるため、CPU21の性能又は処理や通信の混雑状況等に応じて第2圧縮効率を適切に設定することが可能となる。
【0077】
なお、メモリ12からのデータD1の事前読み出しを行わないのであれば、データ保持回路31を省略しても良い。
図7は、本発明の第4実施形態の変形例に係る情報処理システム1Dの構成を簡略化して示す図である。
図6に示した構成からデータ保持回路31が省略されている。圧縮回路34から出力されたデータD5は、データ保持回路31を介することなくCPU21に直接入力される。
【0078】
<第5実施形態>
上記第3実施形態又は上記第4実施形態において、データ保持回路31が保持している保持データを、第2のパラメータに基づいて再圧縮しても良い。第2のパラメータは、データ保持回路31が保持している保持データの読み出し頻度、CPU21の性能、CPU21の処理混雑状況、及びCPU21の通信混雑状況の少なくとも一つを含む。コントローラ22Eは、CPU21の性能、処理混雑状況、及び通信混雑状況に関する情報を、CPU21から取得する。あるいは、コントローラ22E自身が第2のパラメータを検出しても良い。
【0079】
図8は、本発明の第5実施形態に係る情報処理システム1Eの構成を簡略化して示す図である。
【0080】
ホスト装置11は、CPU21等のプロセッサと、メモリ制御装置としてのコントローラ22Eとを備えている。コントローラ22Eは、データ保持回路31、伸張回路32、及び圧縮回路34を備えている。圧縮回路34は、圧縮効率が異なる複数の圧縮回路及び複数の伸張回路(この例では3つの圧縮回路34A~34C及び3つの伸張回路40A~40C)と、選択回路35,41と、切替回路36~39,42とを備えている。以下の例では、圧縮回路34B及び伸張回路40Bは上記第2圧縮効率を有し、圧縮回路34A及び伸張回路40Aは第2圧縮効率より高い圧縮効率(第3圧縮効率)を有し、圧縮回路34C及び伸張回路40Cは第2圧縮効率より低い圧縮効率(第4圧縮効率)を有する。
【0081】
選択回路41は、通常処理の実行時においては、選択信号D9によって切替回路42の入力を伸張回路32側に切り替え、データD5の再圧縮処理の実行時においては、選択信号D9によって切替回路42の入力を切替回路39側に切り替える。
【0082】
選択回路35は、選択信号D6によって切替回路36,37を切り替えることにより、圧縮回路34A~34Cのうちの1つを選択可能であり、選択信号D7によって切替回路38,39を切り替えることにより、伸張回路40A~40Cのうちの1つを選択可能である。
【0083】
例えば、データ保持回路31が保持している保持データの読み出し頻度が第1のしきい値未満である場合には、保持データは現在の圧縮効率より高い圧縮効率で再圧縮される。例えば保持データの現在の圧縮効率が第2圧縮効率である場合には、選択回路35が伸張回路40B及び圧縮回路34Aを選択することによって、保持データを第2圧縮効率よりも高い第3圧縮効率で再圧縮し、データ保持回路31内の保持データを上書きする。
【0084】
一方、データ保持回路31が保持している保持データの読み出し頻度が第1のしきい値以上である場合には、保持データは現在の圧縮効率より低い圧縮効率で再圧縮される。例えば保持データの現在の圧縮効率が第2圧縮効率である場合には、選択回路35が伸張回路40B及び圧縮回路34Cを選択することによって、保持データを第2圧縮効率よりも低い第4圧縮効率で再圧縮し、データ保持回路31内の保持データを上書きする。
【0085】
また、CPU21の通信混雑状況が第2のしきい値以上である場合には、保持データは現在の圧縮効率より高い圧縮効率で再圧縮される。例えば保持データの現在の圧縮効率が第2圧縮効率である場合には、選択回路35が伸張回路40B及び圧縮回路34Aを選択することによって、保持データを第2圧縮効率よりも高い第3圧縮効率で再圧縮し、データ保持回路31内の保持データを上書きする。
【0086】
一方、CPU21の通信混雑状況が第2のしきい値未満である場合には、保持データは現在の圧縮効率より低い圧縮効率で再圧縮される。例えば保持データの現在の圧縮効率が第2圧縮効率である場合には、選択回路35が伸張回路40B及び圧縮回路34Cを選択することによって、保持データを第2圧縮効率よりも低い第4圧縮効率で再圧縮し、データ保持回路31内の保持データを上書きする。
【0087】
同様に、CPU21の性能がしきい値以上である場合には、保持データは現在の圧縮効率より高い圧縮効率で再圧縮され、CPU21の性能がしきい値未満である場合には、保持データは現在の圧縮効率より低い圧縮効率で再圧縮される。また、CPU21の処理混雑状況がしきい値未満である場合には、保持データは現在の圧縮効率より高い圧縮効率で再圧縮され、CPU21の処理混雑状況がしきい値以上である場合には、保持データは現在の圧縮効率より低い圧縮効率で再圧縮される。なお、圧縮効率を現在値より高い値に変更する処理、及び、圧縮効率を現在値より低い値に変更する処理は、双方が実行されても良いし、いずれか一方のみが実行されても良い。
【0088】
本実施形態によれば、圧縮回路34は、読み出し頻度が第1のしきい値未満である場合には、保持データを第2圧縮効率よりも高い第3の圧縮効率で再圧縮する。これにより、データ保持回路31の保持データ量を削減できるとともに、データ保持回路31からCPU21へのデータ転送における転送スループットを向上することが可能となる。また、圧縮回路34は、読み出し頻度が第1のしきい値以上である場合には、保持データを第2圧縮効率よりも低い第4圧縮効率で再圧縮する。これにより、圧縮データの伸張処理に伴うCPU21の負荷を軽減することが可能となる。
【0089】
また、圧縮回路34は、CPU21の通信混雑状況が第2のしきい値以上である場合には、保持データを第2圧縮効率よりも高い第3の圧縮効率で再圧縮する。これにより、データ保持回路31からCPU21へのデータ転送における転送スループットを向上することが可能となる。また、圧縮回路34は、CPU21の通信混雑状況が第2のしきい値未満である場合には、保持データを第2圧縮効率よりも低い第4圧縮効率で再圧縮する。これにより、圧縮データの伸張処理に伴うCPU21の負荷を軽減することが可能となる。
【0090】
ここに開示される要素の機能は、当該開示される要素を実行するように構成された、あるいは当該開示される機能を実行するようにプログラミングされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(「特定用途向け集積回路」)、従来の回路構成及び/又はそれらの組み合わせを含む回路構成あるいは処理回路構成が用いられて実装されてもよい。プロセッサは、それが、その中にトランジスタ及び他の回路構成を含むとき、処理回路構成あるいは回路構成として見なされる。本開示において、回路構成、ユニットあるいは手段は、挙げられた機能を実行するハードウェア、あるいは当該機能を実行するようにプログラミングされたハードウェアである。ハードウェアは、挙げられた機能を実行するようにプログラミングされた、あるいは当該機能を実行するように構成された、ここで開示されるいかなるハードウェアあるいは既知の他のものであってもよい。ハードウェアが、あるタイプの回路構成として見なされるかもしれないプロセッサであるとき、回路構成、手段あるいはユニットは、ハードウェアとソフトウェアの組み合わせ、ハードウェアを構成するために用いられるソフトウェア及び/またはプロセッサである。
【符号の説明】
【0091】
1A~1E 情報処理システム
11 ホスト装置
12 メモリ
21 CPU
22A~22E コントローラ
31 データ保持回路
32 伸張回路
33 パラメータ保持回路
34,34A~34C 圧縮回路