JPH07210324A - 記憶装置 - Google Patents

記憶装置

Info

Publication number
JPH07210324A
JPH07210324A JP6001911A JP191194A JPH07210324A JP H07210324 A JPH07210324 A JP H07210324A JP 6001911 A JP6001911 A JP 6001911A JP 191194 A JP191194 A JP 191194A JP H07210324 A JPH07210324 A JP H07210324A
Authority
JP
Japan
Prior art keywords
data
compression
compressed
storage device
circuit
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.)
Pending
Application number
JP6001911A
Other languages
English (en)
Inventor
Tsunetaka Komachiya
常孝 小町谷
Yoshihisa Kamo
善久 加茂
Hitoshi Tsunoda
仁 角田
Yoshifumi Takamoto
良史 高本
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6001911A priority Critical patent/JPH07210324A/ja
Publication of JPH07210324A publication Critical patent/JPH07210324A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【目的】入力データ毎に圧縮率と処理速度の点で最適な
データ圧縮法を選択できる記憶装置を提供する。 【構成】セクタ数推定回路115,121,127とタ
イマ116,122,128により、複数ある各圧縮回
路毎に圧縮後データの保存に必要なデータブロック(セ
クタ)数と処理時間を求め、圧縮回路選択部107にお
いて必要データブロック数が最小の圧縮回路の中で処理
時間が最短の回路が一つ選択される。 【効果】データブロック数が最小となるデータ圧縮法が
複数存在したとき、その中から最速なデータ圧縮法を選
択するため、データ圧縮による容量削減効果を損なうこ
となく圧縮処理速度を向上させることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は記憶装置に係わり、特
に、圧縮機能を具備したディスク制御装置に関する。
【0002】
【従来の技術】近年の銀行・証券におけるオンラインサ
ービスの拡大等により、磁気ディスク装置等の二次記憶
装置に保存するデータ量が急激に増大する傾向にある。
この結果、二次記憶装置に効率的にデータを保存する必
要が高まっている。解決方法の一つとして、データを圧
縮後、保存する二次記憶装置が提案・実用化されてい
る。具体例として、STK社のディスクアレイ製品Iceb
erg が公知である。
【0003】データ圧縮とは、圧縮対象データの容量削
減を目的とするデータ符号化法である。ランレングス
(Run Length)法,エルゼット(LZ)法,ハフマン法
等、複数のデータ圧縮法が既知である。各データ圧縮法
の具体的利用例を以下に述べる。
【0004】Run Length法によるデータ圧縮を二次記憶
装置に適用した製品例として、日立の磁気テープ記憶装
置H−6485−1,H−6481−1が公知である。
またデータ圧縮を行うソフトウェアツールとして、LZ
法とハフマン法を組み合わせた圧縮法を用いたエルエイ
チエイ(LHA)が公知である。LHAはフリーウェア
であり、パーソナルコンピュータユーザの間で広く用い
られている。各データ圧縮法毎に固有なデータ伸張法、
すなわち、圧縮後データを圧縮前データに戻すデータ復
号化法が存在する。圧縮によるデータ容量削減の指標と
して圧縮率があり、数1で与えられる。
【0005】
【数1】 (圧縮率)=(圧縮前データ長)÷(圧縮後データ長)×100[%] …(1) 圧縮率は各データ圧縮法、及び圧縮対象データによって
異なる。この性質を利用し、複数のデータ圧縮法の中か
ら一つを選択する方式が、特開平4−241681 号,特開平
4−223717 号に記載されている。この方式を用いること
により、単一のデータ圧縮法を用いた場合よりも圧縮後
データの記憶容量を削減することが可能である。
【0006】この方式では、一つの圧縮対象データに対
し、複数のデータ圧縮法を作用させ、圧縮率を測定し、
圧縮率が最高となるデータ圧縮法を選択する。圧縮後デ
ータには選択したデータ圧縮法を示す識別子を付加す
る。データ伸張時に識別子を参照し、識別子の示すデー
タ圧縮法に対応するデータ伸張法を用いて、圧縮後デー
タの伸張を行う。
【0007】
【発明が解決しようとする課題】上記従来技術では、デ
ータ圧縮法の選択条件として圧縮率のみに着目してお
り、データ圧縮・伸張の処理速度に関しては考慮されて
いない。各データ圧縮法毎の圧縮率と処理速度は、圧縮
率の高いデータ圧縮法ほど処理速度が遅く、また圧縮率
の低いデータ圧縮法ほど処理速度が速い。
【0008】一方、磁気ディスク装置に代表されるデー
タブロック単位でデータ入出力を行う二次記憶装置で
は、データを固定長のデータブロックに分割・格納す
る。データブロックとは磁気ディスク装置の例では1セ
クタ(512バイト程度)に相当するデータ単位であ
る。データ分割の結果、データブロック長に満たない余
りデータが発生すると、二次記憶装置は余りデータ格納
のためにさらに1データブロックを割く必要がある。
【0009】従って、二次記憶装置において複数のデー
タ圧縮法を用いたとき、それぞれのデータ圧縮法での圧
縮後データ長の差がデータブロック長に吸収され、圧縮
後データの格納に必要なデータブロック数が等しくなる
ことがある。この場合、圧縮率が最高のデータ圧縮法を
選択しても、高圧縮率を得るためのデータ圧縮・伸張処
理に費やす時間が増大するだけで、データ格納領域の節
約にはならないという問題がある。
【0010】
【課題を解決するための手段】上記問題を解決するため
に、本発明では、データブロック単位でデータ入出力を
行う二次記憶装置に対し、一つ以上の異なる圧縮・伸張
アルゴリズムでデータ圧縮・伸張を行う手段を設け、入
力データの一部を各データ圧縮機能の並列動作によって
圧縮し、圧縮後データの保存に必要なデータブロック数
の推定と、圧縮時間の測定を行う手段を設ける。そして
求めた必要データブロック数と圧縮時間より、最適なデ
ータ圧縮法を選択する手段を設ける。さらに選んだデー
タ圧縮法で圧縮対象データの残り部分を圧縮して二次記
憶装置に格納する手段を設ける。
【0011】
【作用】圧縮後データの記憶に必要なデータブロック数
と圧縮処理時間に基づき、最適なデータ圧縮法を選択す
ることで、データ圧縮による容量削減効果を損なうこと
なく圧縮処理速度を向上させることが可能である。
【0012】
【実施例】
(実施例1)図1に、本発明における実施例1のブロッ
ク図を示す。記憶装置制御部102は、ディスク制御回
路110によって記憶装置103と接続される。記憶装
置103は複数のディスクドライブ104より構成され
ている。ディスクドライブ104はセクタと呼ぶ512
バイトのデータブロック単位に入出力を行う。また記憶
装置制御部102はホストインターフェース回路105
によってホストプロセッサ101と接続される。ホスト
インターフェース回路105はデータバッファ106を
具備しており、ホストプロセッサ101との間で4KB
単位のデータ転送を行う。記憶装置制御部102はキャ
ッシュメモリ109と圧縮回路選択部107と伸張回路
選択部108と三つの圧縮・伸張モジュール111,1
17,123を具備している。
【0013】圧縮・伸張モジュール111は圧縮回路1
12,伸張回路113,圧縮後データ出力制御部11
4,セクタ数推定回路115,タイマ116,中間バッ
ファ207,中間バッファデータカウンタ211,セク
タ数レジスタ219,圧縮回路モニタ209を含む。圧
縮・伸張モジュール117と圧縮・伸張モジュール12
3は圧縮・伸張モジュール111と同様の構成である。
【0014】圧縮・伸張モジュール111の圧縮・伸張
アルゴリズムは圧縮処理速度が20MB/sのRun Leng
th法である。圧縮・伸張モジュール117の圧縮・伸張
アルゴリズムは圧縮処理速度が10MB/sのLZ法で
ある。圧縮・伸張モジュール123の圧縮・伸張アルゴ
リズムは圧縮処理速度が4MB/sのLZ−ハフマンの
複合圧縮法である。Run Length法は上記の三つの圧縮ア
ルゴリズムの中で最も単純で高速な圧縮アルゴリズムで
あるが、圧縮率は最も低い。LZ法は上記の三つの圧縮
アルゴリズムの中で処理速度、圧縮率とも中庸に位置す
る。LZ−ハフマンの複合圧縮法は、LZ法とハフマン
法の二つの圧縮法を組み合わせた方法で、上記の三つの
圧縮アルゴリズムの中で最も高い圧縮率を得るが、処理
速度は最も遅い。
【0015】圧縮回路選択部107,伸張回路選択部1
08,圧縮・伸張モジュール111,117,123の
構成の詳細は後述する。
【0016】実施例1では、ディスクドライブ104の
1セクタ長を512バイト、ホストプロセッサ101と
ホストインターフェース回路105間のデータ転送単位
を4KB、異なる圧縮・伸張回路の組を三つとし、圧縮
アルゴリズムをそれぞれRunLength法,LZ法,LZ−
ハフマンの複合圧縮法としたが、これらの構成が可変で
あることは明らかである。
【0017】データ書き込み時、ホストプロセッサ10
1より書き込みデータ4Kバイトがデータバッファ10
6に転送される。またホストプロセッサ101は書き込
み命令をホストインターフェース回路105へ送る。ホ
ストインターフェース回路105は圧縮処理開始信号
を、圧縮回路選択部107と各圧縮・伸張モジュール1
11,117,123に送る。圧縮回路選択部107と
各圧縮・伸張モジュール111,117,123はデー
タバッファ106上の書き込みデータを圧縮後、キャッ
シュメモリ109へ転送する。圧縮回路選択部107と
各圧縮・伸張モジュール111,117,123の動作
の詳細は後述する。次にホストインターフェース回路1
05は書き込み信号をディスク制御回路110に送る。
ディスク制御回路110はキャッシュメモリ109上の
圧縮後データをディスクドライブ104へ書き込む。
【0018】データ読み出し時、ホストプロセッサ10
1は読み出し命令をホストインターフェース回路105
へ送る。ホストインターフェース回路105は読み出し
信号をディスク制御回路110に送る。ディスク制御回
路110はディスクドライブ104からデータを読み出
しキャッシュメモリ109に転送する。次にホストイン
ターフェース回路105は、伸張処理開始信号を、伸張
回路選択部108と各圧縮・伸張モジュール111,1
17,123に送る。伸張回路選択部108と各圧縮・
伸張モジュール111,117,123はキャッシュメ
モリ109上の読み出しデータを伸張後、データバッフ
ァ106へ転送する。伸張回路選択部108と各圧縮・
伸張モジュール111,117,123の動作の詳細は
後述する。ホストインターフェース回路105はデータ
バッファ106上の読み出しデータをホストプロセッサ
101へ転送する。
【0019】図2は圧縮・伸張モジュール111を構成
するセクタ数推定回路115の詳細を示した図である。
セクタ数推定回路115はセクタ数を算出するための演
算回路211〜218から構成される。
【0020】ホストインターフェース回路105は圧縮
処理の開始を意味する圧縮開始信号204を、圧縮回路
112,中間バッファデータカウンタ211,タイマ1
16に対して送る。圧縮開始信号204を受けた圧縮回
路112はデータバッファ106より書き込みデータを
受け取り、圧縮して中間バッファ207へ転送する。圧
縮開始信号204を受けた中間バッファデータカウンタ
211は0にクリアされ、中間バッファ207上の圧縮
後データ長のカウントを開始する。圧縮後データの保存
に必要なセクタ数は、中間バッファデータカウンタ21
1の値に基づき、演算回路211〜218によって算出
され、セクタ数レジスタ219に保存される。圧縮開始
信号204を受けたタイマ116は0にクリアされ、圧
縮処理時間の測定を開始する。
【0021】セクタ数の推定と圧縮処理時間の測定は、
書き込みデータ4Kバイトの内の先頭512バイトに関
して行われる。圧縮回路モニタ209は圧縮回路112
の圧縮処理の進行状況を監視し、512バイトまでの圧
縮処理が終了した時点で、タイマ116の値とセクタ数
レジスタ216の値を圧縮回路選択部107へ送る。圧
縮回路112は圧縮処理を続行する。
【0022】圧縮後データの保存に必要なセクタ数は、
4Kバイトの書き込みデータ全体の圧縮後データ長を、
セクタサイズ512バイトで割った商より得られる。実
施例1では、4Kバイトの書き込みデータの内、先頭八
分の一に当たる512バイト分の圧縮後データ長より、
データ全体の圧縮・保存に必要なセクタ数を推定する。
そのため圧縮後データ長を、セクタサイズ512バイト
の八分の一に当たる64バイトで割る。セクタ数推定回
路115において、中間バッファデータカウンタ211
値を定数値64(212)で割った商215と余り21
4を求める。余り214が定数値0(213)に等しけ
れば、圧縮後データの保存に必要なセクタ数は商215
に等しいと推定し、商215をデータセレクタ218に
よって選択し、セクタ数レジスタ219に保存する。余
り214が定数値0(213)に等しくなければ、余り
データ格納のためにさらに1セクタが必要であると推定
し、商215に1加算した値217をデータセレクタ2
18によって選択し、セクタ数レジスタ219に保存す
る。
【0023】データ圧縮では一般に、入力データの内容
に依存して圧縮率が変動する。入力データの先頭部分の
圧縮率が残り部分の圧縮率より高ければ、上記手段によ
って必要セクタ数を推定した場合、推定値が実際の必要
セクタ数を下回ることがある。そこで必要セクタ数の推
定において、予め圧縮率の変動を考慮したマージンを加
味して計算することが好ましい。実施例1の必要セクタ
数推定において、上記マージンを加味するための変更は
容易である。すなわち、中間バッファデータカウンタ2
11値を、セクタサイズ512バイトの八分の一に当た
る64バイトよりも更に小さい値(例えば60)で割る
ことで、必要セクタ数の推定値にマージンを加えること
ができる。
【0024】図3は圧縮回路選択部107の詳細を示し
た図である。圧縮回路選択部107はデータセレクタ3
05,圧縮ヘッダ付加回路306,必要セクタ数比較回
路307,圧縮処理時間比較回路308,選択信号送信
回路309より構成される。
【0025】圧縮回路選択部107は各圧縮・伸張モジ
ュール111,117,123毎に求められた必要セク
タ数と圧縮処理時間に基づき、必要セクタ数が最小の圧
縮・伸張モジュールの中で圧縮処理時間が最短の一つを
選択し、圧縮後データをキャッシュメモリ109へ転送
する。しかし必要セクタ数の最小値が、データを圧縮せ
ずに保存する場合に必要なセクタ数以上であれば、デー
タを圧縮する意味はない。この場合データ圧縮は行わ
ず、ホストインターフェース回路105のデータバッフ
ァ106の内容をキャッシュメモリ109へ直接転送す
る。
【0026】実施例1では、キャッシュメモリ109に
転送したデータの先頭に、どの圧縮・伸張モジュールで
圧縮したのか、あるいは圧縮しなかったのかを示す識別
子として、2ビットの圧縮ヘッダを付加する。圧縮ヘッ
ダ値‘0’は圧縮しないデータであることを表す。圧縮
ヘッダ値‘1’,‘2’,‘3’はそれぞれ圧縮・伸張
モジュール111,117,123の圧縮後データであ
ることを表す。
【0027】図4は圧縮回路選択部107の処理をフロ
ーチャートで表わした図である。全ての圧縮・伸張モジ
ュール111,117,123において、書き込みデー
タ先頭の512バイトの圧縮が終了した時点で圧縮回路
選択部107の処理が開始される。処理ステップ402
において必要セクタ数比較回路1307は、セクタ数レ
ジスタ219,セクタ数レジスタ314,セクタ数レジ
スタ319の値を取得する。各セクタ数レジスタの値
は、各圧縮・伸張モジュールを用いて、書き込みデータ
を圧縮・保存した場合に必要なセクタ数を表す。
【0028】処理ステップ403において、書き込みデ
ータを圧縮するか否かを判定する。具体的には必要セク
タ数比較回路307において、各セクタ数レジスタの値
が全て定数値9以上か否か判定する。定数値9はデータ
を圧縮せずに保存する場合のセクタ数である。データを
圧縮せずに保存する場合、4KBの圧縮しないデータの
保存に8セクタ、圧縮ヘッダの2ビットの保存に1セク
タの合わせて9セクタが必要となる。
【0029】処理ステップ403の判定結果が偽の場
合、圧縮・伸張モジュールを選択する処理ステップ40
4へ進む。処理ステップ404では、必要セクタ数比較
回路307において、各セクタ数レジスタの最小値を調
べ、圧縮データの保存に必要なセクタ数が最小となる圧
縮・伸張モジュールを選択する。必要セクタ数比較回路
307と圧縮処理時間比較回路308の間には、1ビッ
トの信号線が3本存在する。信号線の各一本ずつが圧縮
・伸張モジュールの一つ一つに対応している。セクタ数
が最小となる圧縮・伸張モジュールに対応する信号線だ
けがオンとなる。セクタ数が最小かつ等しい圧縮・伸張
モジュールが複数存在するなら、該当する圧縮・伸張モ
ジュールに対応する信号線が全てオンとなる。
【0030】処理ステップ405では、セクタ数が最小
となる圧縮・伸張モジュールが複数あるか否かを調べ
る。圧縮処理時間比較回路308において、必要セクタ
数比較回路307からの3本の信号線の内オンの信号線
の数を調べる。オンの信号線の数が一本だけならセクタ
数が最小となる圧縮・伸張モジュールは一つだけであ
る。該信号線に対応する圧縮・伸張モジュールが選択さ
れ処理ステップ408へ進む。オンの信号線の数が複数
ならセクタ数が最小となる圧縮・伸張モジュールは複数
存在し、処理ステップ406へ進む。
【0031】処理ステップ406において、タイマ11
6,タイマ122,タイマ128の値を取得する。各タ
イマの値は、各圧縮・伸張モジュールを用いて、書き込
みデータの先頭512バイトを圧縮したときの圧縮処理
時間を表す。処理ステップ407において、圧縮処理時
間比較回路308はセクタ数が最小となる複数の圧縮・
伸張モジュールの中で圧縮処理時間が最短となる一つを
選択する。圧縮処理時間比較回路308と選択信号送信
回路309の間には、2ビットの信号線が1本存在す
る。該信号線に選択された圧縮・伸張モジュールを示す
圧縮ヘッダ値が出力される。
【0032】処理ステップ408では、選択信号送信回
路309が選択された圧縮・伸張モジュールに対して、
回路選択信号を送る。処理ステップ409において、選
択信号送信回路309は圧縮ヘッダ付加回路306に対
し選択された圧縮・伸張モジュールに対応する圧縮ヘッ
ダ値の転送を促す。圧縮ヘッダ付加回路306は選択さ
れた圧縮・伸張モジュールに対応する圧縮ヘッダ値をキ
ャッシュメモリ109へ転送する。処理ステップ410
において、選択信号送信回路309は選択された圧縮・
伸張モジュールからの圧縮後データをデータセレクタ3
06によって選択し、キャッシュメモリ109へ転送し
処理を終了する。
【0033】処理ステップ403の判定結果が真の場
合、書き込みデータの圧縮は行わず、処理ステップ41
1へ進む。必要セクタ数比較回路307と圧縮処理時間
比較回路308の間の3本の信号線は全てオフとなる。
圧縮処理時間比較回路308は3本の信号線が全てオフ
の場合、選択信号送信回路309へ圧縮ヘッダ値‘0’
を出力する。処理ステップ411において、選択信号送
信回路309は圧縮ヘッダ付加回路306に対し圧縮ヘ
ッダ値‘0’の転送を促す。圧縮ヘッダ付加回路306
は圧縮ヘッダ値‘0’をキャッシュメモリ109へ転送
する。処理ステップ412において、選択信号送信回路
309はホストインターフェース回路105のデータバッ
ファ106上のデータをデータセレクタ305によって
選択し、キャッシュメモリ109へ転送し処理を終了す
る。
【0034】図5は圧縮後データ出力制御部114の詳
細を示した図である。圧縮後データ出力制御部114は
データ出力切り換え部512と圧縮終了フラグ510と
出力データカウンタ511から構成される。圧縮後デー
タ出力制御部120,圧縮後データ出力制御部126
は、圧縮後データ出力制御部114と同様の構成をと
る。
【0035】ホストインターフェース回路105は圧縮
処理の開始を意味する圧縮開始信号204を、データ出
力切り換え部512,圧縮回路112,中間バッファデ
ータカウンタ509,出力データカウンタ511,圧縮
終了フラグ510に対して送る。圧縮開始信号204を
受けたデータ出力切り換え部512は圧縮回路112の
出力先が中間バッファ207となるようにデータセレク
タ507をセットする。圧縮開始信号204を受けた圧
縮回路112は、データ出力切り換え部512より圧縮
停止信号514を受け取るか、あるいは圧縮処理が終了
するまで、データバッファ106上の書き込みデータを
圧縮し、中間バッファ207へ転送する。圧縮開始信号
204を受けた中間バッファデータカウンタ509,出
力データカウンタ511は0にクリアされる。圧縮開始
信号204を受けた圧縮終了フラグ510はリセットさ
れ圧縮回路112から圧縮終了信号506を受け取ると
セットされる。
【0036】図6は圧縮後データ出力制御部の処理をフ
ローチャートで表わした図である。圧縮回路選択部10
7より回路選択信号329を受けたデータ出力切り換え
部512は、処理ステップ602において圧縮終了フラ
グ510がセットされているか否かを調べる。セットさ
れていなければ処理ステップ603に進み、圧縮停止信
号514を送る。処理ステップ604〜607におい
て、データセレクタ516は中間バッファ207上の圧
縮後データを圧縮回路選択部107へ転送する。すなわ
ち中間バッファデータカウンタ509と出力データカウ
ンタ511の値が等しくなるまで、中間バッファ207
のデータを転送しながら出力データカウンタ511をイ
ンクリメントする。
【0037】処理ステップ608において、再び圧縮終
了フラグ510がセットされているか否かを調べる。セ
ットされていれば処理を終了し、セットされていなけれ
ば処理ステップ609に進み、圧縮再開信号515を圧
縮回路112へ送る。処理ステップ610では圧縮処理
を再開した圧縮回路112がデータバッファ106上の
書き込みデータを圧縮し、データセレクタ507,51
6を通して、圧縮後データを圧縮回路選択部107へ転
送する。
【0038】圧縮後データ出力制御部120,圧縮後デ
ータ出力制御部126は、圧縮後データ出力制御部11
4と同様の動作をする。
【0039】図7は伸張回路選択部108の詳細を示し
た図である。伸張回路選択部108は圧縮ヘッダ読み出
し回路711と二つのデータセレクタ709,710か
ら構成される。
【0040】ホストインターフェース回路105は伸張
処理の開始を意味する伸張開始信号702を、伸張回路
113,伸張回路119,伸張回路125,圧縮ヘッダ
読み出し回路711に対して送る。伸張開始信号702
を受けた圧縮ヘッダ読み出し回路711は、キャッシュ
メモリ109より圧縮ヘッダを読み出し値を調べる。圧
縮ヘッダ値が‘0’の場合、データは圧縮せずに保存さ
れているのでデータセレクタ709,710は、キャッ
シュメモリ109の内容を伸張回路113,119,1
25を通さずにデータバッファ106へ転送する。圧縮
ヘッダ値が‘1’,‘2’,‘3’の場合、データは圧
縮されて保存されているので、データセレクタ709,
710は、キャッシュメモリ109の内容を伸張回路1
13,119,125を通してデータバッファ106へ
転送する。
【0041】図8は実施例における書き込みデータの流
れを示した図である。データバッファ106上の書き込
みデータ4KBの先頭512バイトを圧縮回路112,
118,124により圧縮し、圧縮後データを中間バッフ
ァ207,809,810に保存する。圧縮結果より得
た必要セクタ数と圧縮時間より、最適な圧縮回路118を
選択する。選択結果に基づき、中間バッファ809の内
容をキャッシュメモリ109に転送し、書き込みデータ
の残りも圧縮回路118で圧縮した後、キャッシュメモ
リ109に転送する。
【0042】最初にデータ先頭の512バイト804が
圧縮回路112,118,124を通して圧縮され、中
間バッファ207,809,810に転送される。圧縮
回路112を通った512バイトのデータ804は31
0バイトのデータ811に圧縮され、中間バッファ20
7に保存される。圧縮処理時間は25.6μs 、圧縮後
データの保存に必要なセクタ数は5である。圧縮回路1
18を通った512バイトのデータ804は250バイ
トのデータ813に圧縮され、中間バッファ809に保
存される。圧縮処理時間は51.2μs 、圧縮後データ
の保存に必要なセクタ数は4である。圧縮回路124を
通った512バイトのデータ804は200バイトのデ
ータ815に圧縮され、中間バッファ810に保存され
る。圧縮処理時間は128.0μs 、圧縮後データの保
存に必要なセクタ数は4である。
【0043】圧縮処理速度が最も遅い圧縮回路124が
データ先頭512バイトの圧縮を完了するまで、圧縮回
路112と118はデータ残り803を圧縮し、圧縮後
データ812,814を中間バッファ207,809に
保存する。圧縮回路112は残りデータ3584バイト
803のうち2048バイトを圧縮し、圧縮後データ1
230バイト812を中間バッファ112に保存する。
圧縮回路118は残りデータ3584バイト803のう
ち768バイトを圧縮し、圧縮後データ380バイト8
14を中間バッファ809に保存する。
【0044】圧縮回路選択処理では、必要セクタ数が最
小値4の圧縮回路118と124のうち、圧縮時間が5
1.2μs の圧縮回路118が選択される。まず圧縮ヘ
ッダ付加回路306より圧縮ヘッダ‘2’(818)をキ
ャッシュメモリ109へ転送する。続いて中間バッファ
809に保存されている圧縮後データ630バイト(8
13,814)をキャッシュメモリ109へ転送する。
次にデータバッファ106上の書き込みデータの残り2
816(803)を圧縮し、キャッシュメモリ109へ転
送し圧縮処理を完了する。キャッシュメモリ上の圧縮後
データ817の長さは全体で2040Bとなり、圧縮ヘ
ッダ818を含めて4セクタに収まる。
【0045】(実施例2)図9に本発明における実施例
2の構成図を示す。記憶装置制御部102のホストイン
ターフェース回路105,圧縮・伸張モジュール11
1,117,123,圧縮回路選択部107,伸張回路
選択部108,キャッシュメモリ109の構成は実施例
1と同様である。記憶装置制御部102は四つのディス
ク制御回路904,905,906,907によって記
憶装置103と接続される。ディスク制御回路904に
はデータドライブ908,ディスク制御回路905には
データドライブ909,ディスク制御回路906にはデ
ータドライブ910,ディスク制御回路907にはEC
C(Error Correcting Code)ドライブ911が接続され
ている。
【0046】データ書き込み時、必要セクタ数算定回路
901はキャッシュメモリ109上の圧縮後データ長よ
り、保存に必要なセクタ数を算定しデータ分配回路90
2に結果を知らせる。データ分配回路902はキャッシ
ュメモリ109上の圧縮後データをセクタ単位に分割
し、ディスク制御回路904,905,906とECC
生成回路903へ分配する。ECC生成回路903はデ
ータ分配回路902より渡されたデータからECCを生
成し、ディスク制御回路907に転送する。ディスク制
御回路904,905,906,907はデータドライ
ブ908,909,910,ECCドライブ911を並
列に動作させて、ディスク制御回路上のデータを各ディ
スクドライブへ同時に書き込む。
【0047】データ読み出し時、ディスク制御回路90
4,905,906は各データドライブ908,90
9,910からデータを読み出し、データ結合回路91
2へ転送する。データ結合回路912は、各ディスクド
ライブに分割・保存されていたデータを結合しキャッシ
ュメモリ109へ転送する。
【0048】図10は実施例2における書き込みデータ
の流れを示した図である。ホストプロセッサ101,キ
ャッシュメモリ109間の書き込みデータの流れは実施
例1と同様なので省略する。キャッシュメモリ109上
には圧縮後データがあり、必要セクタ数算定の結果、保
存に5セクタの領域が必要であることが解かっている。
データ分配回路902は圧縮後データを五つのデータブ
ロック100〜1005に分割し、二回に分けて各データド
ライブに書き込む。同時に書き込まれるデータブロック
のグループをECCグループと呼び、各ECCグループ
毎にECCが生成される。
【0049】最初にデータブロック1001,100
2,1003から成るECCグループ1008の書き込
みが行われる。データ分配回路902は、キャッシュメ
モリ109よりデータブロック1001をディスク制御
回路904へ、データブロック1002をディスク制御
回路905へ、データブロック1003をディスク制御
回路906へそれぞれ転送する。またデータブロック1
001,1002,1003をECC生成回路903へ
転送する。ECC生成回路903はデータブロック10
01,1002,1003よりECC1006 を生成し、ディ
スク制御回路907 へ転送する。ディスク制御回路904
はデータドライブ908にデータブロック1001を、
ディスク制御回路905はデータドライブ909にデー
タブロック1002を、ディスク制御回路906はデー
タドライブ910にデータブロック1003を、ディス
ク制御回路907はECCドライブ911にECC1006 を
それぞれ書き込む。
【0050】次にデータブロック1004,1005か
ら成るECCグループ1009の書き込みが行われる。
データ分配回路902は、キャッシュメモリ109より
データブロック1004をディスク制御回路904へ、
データブロック1005をディスク制御回路905へそ
れぞれ転送する。またデータブロック1004,1005を
ECC生成回路903へ転送する。ECC生成回路90
3はデータブロック1004,1005よりECC1007 を
生成し、ディスク制御回路907へ転送する。ディスク
制御回路904はデータドライブ908にデータブロッ
ク1004を、ディスク制御回路905はデータドライ
ブ909にデータブロック1005を、ディスク制御回
路907はECCドライブ911にECC1007 をそれぞれ
書き込む。
【0051】実施例2では、記憶装置103に対するデ
ータ入出力において全てのディスクドライブが同時に動
作するため、ECCグループ1009のデータドライブ
909のセクタには無意味な空データ1010が書き込ま
れる。
【0052】実施例2では、圧縮後データの保存に必要
なセクタ数の範囲は1〜9である。最大値9はデータを
圧縮せずに保存する場合のセクタ数である。必要セクタ
数が1〜3の場合、圧縮後データ保存は1ECCグルー
プ、一回の書き込みで行う。必要セクタ数が4〜6の場
合、圧縮後データ保存は2ECCグループ、二回の書き
込みで行う。必要セクタ数が7〜9の場合、圧縮後デー
タ保存は3ECCグループ、三回の書き込みで行う。実
施例2では、圧縮後データ保存に必要なセクタ数がより
少ない圧縮・伸張モジュールを選択しても、保存に必要
なECCグループが同数であればデータ圧縮による容量
削減効果は期待できない。そこで実施例2では、圧縮後
データの保存に必要なECCグループ数が最小となる圧
縮・伸張モジュールの中で、圧縮処理時間が最短となる
一つを選択する。
【0053】図11は実施例2における圧縮回路選択の
アルゴリズムを示した図である。圧縮回路選択は実施例
と同じく圧縮回路選択部303において行われる。処理
ステップ1102では、処理ステップ402の処理と同
じくセクタ数レジスタ219,セクタ数レジスタ31
4,セクタ数レジスタ319の内容を取得する。各セク
タ数レジスタの値は、各圧縮・伸張モジュールにおいて
書き込みデータを圧縮・保存した場合に必要なセクタ数
を表す。処理ステップ1103では、圧縮後データの保
存に必要なECCグループ数が1の圧縮・伸張モジュー
ルが存在するか否かを調べる。具体的には必要セクタ数
比較回路307が必要セクタ数が3以下の圧縮・伸張モ
ジュールの存在の有無を調べる。存在するならば処理ス
テップ1105へ、存在しないならば処理ステップ1104
へ進む。処理ステップ1104では、圧縮後データの保
存に必要なECCグループ数が2の圧縮・伸張モジュー
ルが存在するか否かを調べる。具体的には必要セクタ数
比較回路307が必要セクタ数が6以下の圧縮・伸張モ
ジュールの存在の有無を調べる。存在するならば処理ス
テップ1105へ、存在しないならば処理ステップ11
11へ進む。処理ステップ1005〜1010では、処
理ステップ405〜410と同様の処理を行う。処理ス
テップ1103,1104の条件が満たされた圧縮・伸
張モジュールの中で処理時間が最短の一つを選択し、デ
ータを圧縮後キャッシュメモリ109へ転送する。処理
ステップ1011〜1012では、処理ステップ411
〜412と同様の処理を行い、データを圧縮せずにキャ
ッシュメモリ109へ転送する。 (実施例3)図12に、本発明における実施例3の構成
図を示す。ファイルシステム1201の構成単位である個々
のファイルは、類似の形式のデータから成る場合が多い
ので、ファイル毎に最適な圧縮法を定めることができ
る。実施例3では、同一ファイルのデータブロック書き
込みの際、実施例1あるいは2と同じ圧縮回路選択処理
を複数回繰り返し、その結果選択された回数が最多の圧
縮法を該ファイルに最適な圧縮法とする。
【0054】記憶装置104に読み書きされるデータブ
ロックの一つ一つに対して、ホストプロセッサ101上
のファイルシステム1201はブロック属性1202を
与える。ブロック属性1202とは各ファイルに固有な
名前、あるいは番号であり、ファイルシステム1201
は、同一ファイルを構成するデータブロックに対して、
同じブロック属性1202を与える。
【0055】選択履歴テーブル1203には、ブロック
属性1202毎に過去最近4回の圧縮回路選択結果が記
録される。同一ブロック属性を持つデータ書き込みにお
いて、実施例1あるいは2と同じ圧縮回路選択処理は4
回に回1だけ行われ、選択結果が選択履歴テーブル12
03に記録される。残り3回は選択履歴テーブル1203に
記録された選択履歴より、過去最近4回で最も多く選択
された圧縮・伸張モジュールを選ぶが、該選択結果は選
択履歴テーブル1203に記録しない。
【0056】実施例1,2では、データの極く一部の圧
縮結果に基づき圧縮・伸張モジュールを選択するため、
データ形式の局所的な変動の影響を受け易く、圧縮・伸
張モジュールの選択を誤り易い。また全ての圧縮・伸張
モジュールが先頭512バイトの圧縮を終了するまで待
つ必要があるため選択に時間がかかる。実施例3では、
同一ファイルのデータに対する過去最近4回の選択結果
に基づき、より正確かつ高速に圧縮・伸張モジュールを
選択できる。
【0057】図13は、実施例3の圧縮回路選択部10
7の詳細を示した図である。圧縮回路選択部107は選
択履歴テーブルインターフェース回路1301を具備す
る。選択履歴テーブルインターフェース回路1301は
選択履歴テーブル1203の検索・更新を行う。選択信
号送信回路310は選択履歴テーブルインターフェース
回路1301と履歴情報の受け渡しを行う。受け渡しの
詳細は後述する。他の構成は実施例1と同様である。
【0058】図14は、実施例3の圧縮データ選択回路
304の処理をフローチャートで表わした図である。処
理ステップ1401において、ブロック属性1202が
選択履歴テーブル1203に登録されているか否かをチ
ェックする。ホストインターフェース回路105はホス
トプロセッサ101より送られたブロック属性1202を選
択履歴テーブルインターフェース回路1301に渡す。
選択履歴テーブルインターフェース回路1301は、ブ
ロック属性1202のエントリが既に選択履歴テーブル
1203上に存在するか否か、選択履歴テーブル120
3の検索を行う。存在するなら処理ステップ1402
へ、存在しないなら処理ステップ1409へ進む。
【0059】処理ステップ1402において、選択履歴
テーブルインターフェース回路1301は選択履歴テーブル
1203から選択履歴1205を読み出す。選択履歴12
05は四つの選択履歴レコード1207から成る。各選択
履歴レコード1207は3ビットであり、選択履歴12
05は計12ビットである。選択履歴レコード1207の先
頭1ビットは該選択履歴レコード1207に選択結果が
記録されているか否かを示すフラグである。後の2ビッ
トには圧縮ヘッダ値が選択結果として記録される。選択
履歴1205の中で左に位置する選択履歴レコード12
07程新しい選択結果が記録されている。
【0060】選択処理ステップ1403において、選択
履歴テーブルインターフェース回路1301は選択履歴
レコード1207のフラグを調べ現在記録されている選
択結果の数が4に満たないか否かチェックする。4に満
たないのであれば処理ステップ1410へ進み、4であ
れば処理ステップ1404へ進む。
【0061】処理ステップ1404において、選択履歴
テーブルインターフェース回路1301は選択履歴テーブル
1203からカウンタ1206値を読み出す。カウンタ
1206は2ビットで、同一ブロック属性を持つデータ書き
込み毎に1増やされる。カウンタ1206が最大値3の
時に、実施例1あるいは2と同じ圧縮回路選択処理が行
われ、カウンタ1206値は0にリセットされる。カウ
ンタ1206が最大値3に満たないとき、選択履歴テー
ブルインターフェース回路1301は選択履歴1205
の内容に基づき圧縮・伸張モジュールを選択する。処理
ステップ1404において、カウンタ1206値が3に等し
いか否かを調べる。等しければ処理ステップ1410へ
進み、等しくなければ処理ステップ1406へ進む。
【0062】処理ステップ1406において、選択履歴
テーブルインターフェース回路1301は選択履歴1205
に記録された四つの圧縮ヘッダ値より、最も多く選択さ
れている圧縮・伸張モジュールを選ぶ。圧縮・伸張モジ
ュールが複数存在する場合、最も新しい一つを選ぶ。選
択履歴テーブルインターフェース回路1301は選択信
号送信回路310に対し選択された圧縮・伸張モジュー
ルに対応する圧縮ヘッダ値を送る。処理ステップ140
7において、選択履歴テーブルインターフェース回路1
301は読み出したカウンタ1206値に1加えた値を
選択履歴テーブル1203に書き込む。
【0063】処理ステップ1408において選択信号送
信回路310は、処理ステップ408〜412あるいは1
108〜1112と同様の圧縮後データ転送処理を行
う。処理ステップ1409において、選択履歴テーブル
インターフェース回路1301は選択履歴テーブル12
03に新規エントリを設け、未登録のブロック属性1202
をエントリに登録する。四つの選択履歴レコード120
7のフラグはリセットしておく。
【0064】処理ステップ1410において、選択履歴
テーブルインターフェース回路1301は選択信号送信回路
310に対し処理ステップ402〜407あるいは11
02〜1107と同様の圧縮回路選択処理を行うよう促
す。処理ステップ1411において、選択履歴テーブル
インターフェース回路1301は選択された圧縮・伸張
モジュールに対応する圧縮ヘッダ値を、選択履歴120
5中の左端の選択履歴レコード1207に記録する。具
体的には、12ビットの選択履歴1205の左9ビット
を右へ3ビットシフトし、空いた左端3ビットの選択履
歴レコード1207に圧縮ヘッダ値を記録し、フラグを
セットする。この結果、選択履歴1205中の選択履歴
レコード1207は左から順に新しくなる。処理ステッ
プ1412において、選択履歴テーブルインターフェー
ス回路1301はカウンタ1206値を0にリセットす
る。
【0065】実施例3では、選択履歴レコード1207
数を4、カウンタ1206の最大値を3としているが、
これらの構成が可変であることは明らかである。
【0066】(実施例4)図15に、本発明における実
施例4の構成図を示す。実施例4では、圧縮後データ保
存のために割り当てる空きデータブロックの長さを、圧
縮後データ長に合わせて変える。この結果、固定長デー
タブロックにした場合に発生するディスク上の無駄な領
域を無くすことができる。また各空きデータブロックは
ディスク上で物理的に連続するセクタから成るので、圧
縮後データの高速な読み書きが可能となる。
【0067】空きデータブロック管理テーブル1510
では、異なる長さの空きデータブロック1511,15
12,1519を管理する。空きデータブロックリスト
1501は1セクタから成る空きデータブロック151
1のリストである。空きデータブロックリスト1502
はディスク上で互いに隣接する2セクタから成る空きデ
ータブロック1512のリストである。空きデータブロ
ック管理テーブル1510には同様の空きデータブロッ
クリストが9まである。圧縮回路選択部107は空きデ
ータブロック管理テーブル1510の状況を調べて、現
在利用可能な最小の空きデータブロックに圧縮後データ
が収まる圧縮・伸張モジュールを選択する。該圧縮・伸
張モジュールが複数存在すれば該圧縮・伸張モジュール
中、圧縮時間が最短の一つを選択する。該圧縮・伸張モ
ジュールが存在しなければ、現在利用可能な、より大き
な空きデータブロックに圧縮後データが収まる圧縮・伸
張モジュールを選択する。
【0068】図16は、実施例4の圧縮回路選択部10
7の詳細を示した図である。圧縮回路選択部107は空
きデータブロック参照回路1601を具備する。空きデ
ータブロック参照回路1601は空きデータブロック管
理テーブル1510を検索し、現在の空きデータブロッ
クの状況を必要セクタ数比較回路311へ知らせる。
【0069】図17は、実施例4の圧縮データ選択回路
304の処理をフローチャートで表わした図である。圧
縮・伸張モジュール選択は実施例1と同じく圧縮回路選
択部303において行われる。処理ステップ1701で
は、処理ステップ402の処理と同じくセクタ数レジス
タ219,セクタ数レジスタ314,セクタ数レジスタ
319の内容を取得する。各セクタ数レジスタ値は、各
圧縮・伸張モジュールにおいて書き込みデータを圧縮・
保存した場合に必要なセクタ数を表す。処理ステップ1
702において、セクタ数iを1として処理ステップ1
703へ進む。
【0070】処理の流れがA′に達した場合、処理ステ
ップ1702へ戻りセクタ数iに1を加えた後、再び処
理ステップ1703へ進む。処理ステップ1702で
は、セクタ数iが8となるまで上記処理を繰り返す。セ
クタ数iが8の時に処理の流れがA′に達した場合、処
理ステップ1711へ進む。処理ステップ1703で
は、空きデータブロック参照回路1601はデータブロ
ック管理テーブル1510の空きデータブロックリスト
iを調べる。空きデータブロックリストiにセクタ数i
の空きデータブロックが存在するなら処理ステップ17
04へ進み、存在しないなら処理ステップ1702に戻
る。
【0071】処理ステップ1704では、必要セクタ数
比較回路311は圧縮後データ保存に必要なセクタ数が
i以下となる圧縮・伸張モジュールの存在の有無を調べ
る。圧縮・伸張モジュールが存在するなら処理ステップ
1705へ進み、存在しないなら処理ステップ1702
に戻る。処理ステップ1705〜1710では、処理ス
テップ405〜410と同様の処理を行う。処理ステッ
プ1704の条件が満たされた圧縮・伸張モジュールの
中で処理時間が最短の回路を一つ選択し、データを圧縮
後キャッシュメモリ109へ転送する。処理ステップ1
711〜1712では、処理ステップ411〜412と同様
の処理を行い、データを圧縮せずにキャッシュメモリ1
09へ転送する。
【0072】
【発明の効果】データブロック数が最小となるデータ圧
縮法が複数存在したとき、その中から最速なデータ圧縮
法を選択するため、データ圧縮による容量削減効果を損
なうことなく圧縮処理速度を向上させることができる。
【図面の簡単な説明】
【図1】本発明による圧縮方式選択機能を具備した記憶
装置の実施例1のブロック図。
【図2】実施例1のセクタ数推定回路のブロック図。
【図3】実施例1の圧縮回路選択部のブロック図。
【図4】実施例1の圧縮回路選択部の処理のフローチャ
ート。
【図5】実施例1の圧縮後データ出力制御部のブロック
図。
【図6】実施例1の圧縮後データ出力制御部の処理のフ
ローチャート。
【図7】実施例1の伸張回路選択部のブロック図。
【図8】実施例1の書き込みデータの流れを示すブロッ
ク図。
【図9】本発明による圧縮方式選択機能を具備した記憶
装置の実施例2のブロック図。
【図10】実施例2の書き込みデータの流れを示すブロ
ック図。
【図11】実施例2の圧縮回路選択部の処理のフローチ
ャート。
【図12】本発明による圧縮方式選択機能を具備した記
憶装置の実施例3のブロック図。
【図13】実施例3の圧縮回路選択部のブロック図。
【図14】実施例3の圧縮回路選択部の処理のフローチ
ャート。
【図15】本発明による圧縮方式選択機能を具備した記
憶装置の実施例4のブロック図。
【図16】実施例4の圧縮回路選択部のブロック図。
【図17】実施例4の圧縮回路選択部の処理のフローチ
ャート。
【符号の説明】
101…ホストプロセッサ、102…記憶装置制御部、
103…記憶装置、105…ホストインターフェース回
路、107…圧縮回路選択部、108…伸張回路選択
部、109…キャッシュメモリ、112…圧縮回路、1
13…伸張回路、114…圧縮後データ出力制御部、1
15…セクタ数推定回路、116…タイマ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 高本 良史 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】固定長のデータブロック単位でデータ入出
    力を行う記憶装置において、一つ以上の異なるデータ圧
    縮・伸張機能を具備し、入力データ毎に圧縮後データの
    保存に必要なデータブロック数が最小かつ同数となるデ
    ータ圧縮・伸張機能を全て選択し、選択されたデータ圧
    縮・伸張機能が唯一の場合は、前記データ圧縮・伸張機
    能を用いて前記入力データを圧縮した後保存し、選択さ
    れたデータ圧縮・伸張機能が複数の場合は、前記データ
    圧縮・伸張機能の中で圧縮処理時間が最短のデータ圧縮
    ・伸張機能一つを用いて前記入力データを圧縮した後保
    存することを特徴とする記憶装置。
  2. 【請求項2】請求項1において、前記入力データを部分
    的に数百バイト圧縮した結果から入力データ全体の圧縮
    後データ長の推定が可能なとき、入力データの1/nが
    数百バイトとなるような正定数nを設定し、入力データ
    1/nだけの圧縮後データ長をデータブロック長の1/
    nで割った商より、入力データ全体の圧縮後データの保
    存に必要なデータブロック数を推定する記憶装置。
  3. 【請求項3】請求項2において、データブロック数推定
    の際、入力データ1/nだけの圧縮後データ長の除数を
    データブロック長の1/nよりも数バイト少ない値とす
    ることで、入力データ毎の圧縮率の変動を考慮したマー
    ジンを加える記憶装置。
  4. 【請求項4】請求項1において、圧縮後データ保存に必
    要なデータブロック数が圧縮されないデータの保存に必
    要なデータブロック数以上の場合、圧縮されないデータ
    を記憶装置に保存する記憶装置。
  5. 【請求項5】固定長のデータブロック単位でデータ入出
    力を行う記憶装置において、一つ以上の異なるデータ圧
    縮・伸張機能を具備し、入力データ毎に圧縮後データの
    保存に必要なデータブロック数が一定数以下となるデー
    タ圧縮・伸張機能を全て選択し、選択されたデータ圧縮
    ・伸張機能が唯一の場合は、前記データ圧縮・伸張機能
    を用いて前記入力データを圧縮した後保存し、選択され
    たデータ圧縮・伸張機能が複数の場合は、前記データ圧
    縮・伸張機能の中で圧縮処理時間が最短のデータ圧縮・
    伸張機能一つを用いて前記入力データを圧縮した後保存
    することを特徴とする記憶装置。
  6. 【請求項6】請求項5において、入力データを部分的に
    数百バイト圧縮した結果から入力データ全体の圧縮後デ
    ータ長の推定が可能なとき、入力データの1/nが数百
    バイトとなるような正定数nを設定し、入力データ1/
    nだけの圧縮後データ長をデータブロック長の1/nで
    割った商より、入力データ全体の圧縮後データの保存に
    必要なデータブロック数を推定する記憶装置。
  7. 【請求項7】請求項6において、データブロック数推定
    の際、入力データ1/nだけの圧縮後データ長の除数を
    データブロック長の1/nよりも数バイト少ない値とす
    ることで、入力データ毎の圧縮率の変動を考慮したマー
    ジンを加える記憶装置。
  8. 【請求項8】請求項5において、圧縮後データ保存に必
    要なデータブロック数が圧縮されないデータの保存に必
    要なデータブロック数以上の場合、圧縮されないデータ
    を記憶装置に保存する記憶装置。
  9. 【請求項9】請求項1または5において、固定長のデー
    タブロック単位でデータ入出力を行い、一つ以上の異な
    るデータ圧縮・伸張機能と、圧縮・伸張機能の選択手段
    を具備し、同一ファイル毎に過去の選択結果の履歴を記
    録し、同一ファイルに対する書き込みが発生した場合、
    選択結果の履歴より過去最も多く選ばれた圧縮・伸張機
    能を選択する記憶装置。
  10. 【請求項10】請求項9において、入力データを部分的
    に数百バイト圧縮した結果から入力データ全体の圧縮後
    データ長の推定が可能なとき、入力データの1/nが数
    百バイトとなるような正定数nを設定し、入力データ1
    /nだけの圧縮後データ長をデータブロック長の1/n
    で割った商より、入力データ全体の圧縮後データの保存
    に必要なデータブロック数を推定する記憶装置。
  11. 【請求項11】請求項10において、データブロック数
    推定の際、入力データ1/nだけの圧縮後データ長の除
    数をデータブロック長の1/nよりも数バイト少ない値
    とすることで、入力データ毎の圧縮率の変動を考慮した
    マージンを加える記憶装置。
  12. 【請求項12】請求項9において、圧縮後データ保存に
    必要なデータブロック数が圧縮されないデータの保存に
    必要なデータブロック数以上の場合、圧縮されないデー
    タを記憶装置に保存する記憶装置。
  13. 【請求項13】固定長のデータブロック単位でデータ入
    出力を行う記憶装置において、一つ以上の異なるデータ
    圧縮・伸張機能を具備し、異なる長さの空きデータブロ
    ックの数とディスク上の存在位置を管理し、前記管理情
    報に基づき現在利用可能な最小の空きデータブロックに
    圧縮後データが収まるデータ圧縮・伸張機能を全て選択
    し、選択されたデータ圧縮・伸張機能が唯一の場合は、
    前記データ圧縮・伸張機能を用いて前記入力データを圧
    縮した後保存し、選択されたデータ圧縮・伸張機能が複
    数の場合は、前記データ圧縮・伸張機能の中で圧縮処理
    時間が最短のデータ圧縮・伸張機能を用いて前記入力デ
    ータを圧縮した後保存し、前記データ圧縮・伸張機能が
    存在しなければ、順により大きな空きデータブロックに
    圧縮後データが収まるデータ圧縮・伸張機能を選択する
    ことを特徴とする記憶装置。
  14. 【請求項14】請求項13において、入力データを部分
    的に数百バイト圧縮した結果から入力データ全体の圧縮
    後データ長の推定が可能なとき、入力データの1/nが
    数百バイトとなるような正定数nを設定し、入力データ
    1/nだけの圧縮後データ長をデータブロック長の1/
    nで割った商より、入力データ全体の圧縮後データの保
    存に必要なデータブロック数を推定する記憶装置。
  15. 【請求項15】請求項14において、データブロック数
    推定の際、入力データ1/nだけの圧縮後データ長の除
    数をデータブロック長の1/nよりも数バイト少ない値
    とすることで、入力データ毎の圧縮率の変動を考慮した
    マージンを加える記憶装置。
  16. 【請求項16】請求項13において、圧縮後データ保存
    に必要なデータブロック数が圧縮されないデータの保存
    に必要なデータブロック数以上の場合、圧縮されないデ
    ータを記憶装置に保存する記憶装置。
JP6001911A 1994-01-13 1994-01-13 記憶装置 Pending JPH07210324A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6001911A JPH07210324A (ja) 1994-01-13 1994-01-13 記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6001911A JPH07210324A (ja) 1994-01-13 1994-01-13 記憶装置

Publications (1)

Publication Number Publication Date
JPH07210324A true JPH07210324A (ja) 1995-08-11

Family

ID=11514771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6001911A Pending JPH07210324A (ja) 1994-01-13 1994-01-13 記憶装置

Country Status (1)

Country Link
JP (1) JPH07210324A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002501241A (ja) * 1998-01-07 2002-01-15 マイクロソフト コーポレイション 低ビット・レート伝送チャネルを通じてデータ・コンテンツを配信するシステム。
JP2003524983A (ja) * 2000-02-25 2003-08-19 フィジィカル オプティクス コーポレーション 複数コーダを用いる最適化ロスレス圧縮のための方法及び装置
JP2005293224A (ja) * 2004-03-31 2005-10-20 Hitachi Computer Peripherals Co Ltd バックアップシステム及びバックアップ方法
JP2011049764A (ja) * 2009-08-26 2011-03-10 Toshiba Corp データ圧縮伸長装置
EP2579466A2 (en) 2011-10-07 2013-04-10 Fujitsu Limited Data compression apparatus and data compression method
US9329787B2 (en) 2014-04-28 2016-05-03 International Business Machines Corporation Adapting to predicted changes in host transmission rates
JPWO2018087795A1 (ja) * 2016-11-08 2019-06-24 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
GB2584567A (en) * 2018-08-09 2020-12-09 Memoscale As Data compression
JP2022516000A (ja) * 2018-12-26 2022-02-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュメモリの階層内のキャッシュメモリに記憶するデータの圧縮
CN115617259A (zh) * 2021-07-13 2023-01-17 株式会社日立制作所 文件存储器

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002501241A (ja) * 1998-01-07 2002-01-15 マイクロソフト コーポレイション 低ビット・レート伝送チャネルを通じてデータ・コンテンツを配信するシステム。
JP2003524983A (ja) * 2000-02-25 2003-08-19 フィジィカル オプティクス コーポレーション 複数コーダを用いる最適化ロスレス圧縮のための方法及び装置
JP2005293224A (ja) * 2004-03-31 2005-10-20 Hitachi Computer Peripherals Co Ltd バックアップシステム及びバックアップ方法
JP2011049764A (ja) * 2009-08-26 2011-03-10 Toshiba Corp データ圧縮伸長装置
EP2579466A2 (en) 2011-10-07 2013-04-10 Fujitsu Limited Data compression apparatus and data compression method
US8633839B2 (en) 2011-10-07 2014-01-21 Fujitsu Limited Data compression apparatus by a plurality of types of algorithms and a method
US9329787B2 (en) 2014-04-28 2016-05-03 International Business Machines Corporation Adapting to predicted changes in host transmission rates
JPWO2018087795A1 (ja) * 2016-11-08 2019-06-24 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
GB2584567A (en) * 2018-08-09 2020-12-09 Memoscale As Data compression
GB2584567B (en) * 2018-08-09 2021-04-28 Memoscale As Controlling the throughput of a data compression module by compressing part of the data and not compressing the remainder
JP2022516000A (ja) * 2018-12-26 2022-02-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュメモリの階層内のキャッシュメモリに記憶するデータの圧縮
CN115617259A (zh) * 2021-07-13 2023-01-17 株式会社日立制作所 文件存储器

Similar Documents

Publication Publication Date Title
US8364929B2 (en) Enabling spanning for a storage device
US5237460A (en) Storage of compressed data on random access storage devices
JP2534465B2 (ja) デ―タ圧縮装置および方法
US6883079B1 (en) Method and apparatus for using data compression as a means of increasing buffer bandwidth
US9564918B2 (en) Real-time reduction of CPU overhead for data compression
EP3296996B1 (en) Method for processing data, storage apparatus, solid state disk and storage system
JP2915568B2 (ja) テープドライブシステムのための適応データ圧縮装置
US9792350B2 (en) Real-time classification of data into data compression domains
US9252807B2 (en) Efficient one-pass cache-aware compression
JP6692448B2 (ja) ストレージ装置及びストレージ装置の制御方法
CN112306974B (zh) 一种数据处理方法、装置、设备及存储介质
CN103516369A (zh) 一种自适应数据压缩和解压缩的方法和系统及存储装置
US8595199B2 (en) Real-time selection of compression operations
JP2017511521A (ja) フラッシュメモリ圧縮
CN115599757A (zh) 数据压缩方法、装置、计算设备及存储系统
CN108139972B (zh) 用于管理硬件辅助数据压缩中的存储器碎片的方法和设备
WO2014188528A1 (ja) メモリ装置、計算機システム及びメモリ装置の制御方法
US20140114936A1 (en) Method for generating data in storage system having compression function
JPH07210324A (ja) 記憶装置
CN111625531A (zh) 基于可编程装置的合并装置、数据合并方法及数据库系统
US9122620B2 (en) Storage system with reduced hash key memory
US20080222500A1 (en) Data relay apparatus, data relay method and data relay integrated circuit
CN113590021B (zh) 存储系统
US20230021108A1 (en) File storage
CN117827775A (zh) 数据压缩方法、装置、计算设备及存储系统