[go: up one dir, main page]

JPH07210324A - Storage device - Google Patents

Storage device

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
Japanese (ja)
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/en
Publication of JPH07210324A publication Critical patent/JPH07210324A/en
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にお
いて必要データブロック数が最小の圧縮回路の中で処理
時間が最短の回路が一つ選択される。 【効果】データブロック数が最小となるデータ圧縮法が
複数存在したとき、その中から最速なデータ圧縮法を選
択するため、データ圧縮による容量削減効果を損なうこ
となく圧縮処理速度を向上させることができる。
(57) [Summary] [Object] To provide a storage device capable of selecting an optimum data compression method in terms of compression rate and processing speed for each input data. A sector number estimation circuit 115, 121, 127 and timers 116, 122, 128 determine the number of data blocks (sectors) and processing time required for storing compressed data for each of a plurality of compression circuits, and calculate the compression circuit. The selecting unit 107 selects one circuit having the shortest processing time among the compression circuits having the minimum required number of data blocks. [Effect] When there are a plurality of data compression methods that minimize the number of data blocks, the fastest data compression method is selected from among them, so that the compression processing speed can be improved without impairing the capacity reduction effect of the data compression. it can.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は記憶装置に係わり、特
に、圧縮機能を具備したディスク制御装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a storage device, and more particularly to a disk control device having a compression function.

【0002】[0002]

【従来の技術】近年の銀行・証券におけるオンラインサ
ービスの拡大等により、磁気ディスク装置等の二次記憶
装置に保存するデータ量が急激に増大する傾向にある。
この結果、二次記憶装置に効率的にデータを保存する必
要が高まっている。解決方法の一つとして、データを圧
縮後、保存する二次記憶装置が提案・実用化されてい
る。具体例として、STK社のディスクアレイ製品Iceb
erg が公知である。
2. Description of the Related Art Due to the recent expansion of online services in banks and securities, the amount of data stored in a secondary storage device such as a magnetic disk device tends to increase rapidly.
As a result, there is an increasing need to efficiently store data in the secondary storage device. As one of the solutions, a secondary storage device that stores data after compressing the data has been proposed and put into practical use. As a specific example, the disk array product Iceb of STK
erg is known.

【0003】データ圧縮とは、圧縮対象データの容量削
減を目的とするデータ符号化法である。ランレングス
(Run Length)法,エルゼット(LZ)法,ハフマン法
等、複数のデータ圧縮法が既知である。各データ圧縮法
の具体的利用例を以下に述べる。
Data compression is a data coding method for the purpose of reducing the capacity of data to be compressed. A plurality of data compression methods such as a run length method, an Erzet (LZ) method, and a Huffman method are known. Specific examples of using each data compression method will be described below.

【0004】Run Length法によるデータ圧縮を二次記憶
装置に適用した製品例として、日立の磁気テープ記憶装
置H−6485−1,H−6481−1が公知である。
またデータ圧縮を行うソフトウェアツールとして、LZ
法とハフマン法を組み合わせた圧縮法を用いたエルエイ
チエイ(LHA)が公知である。LHAはフリーウェア
であり、パーソナルコンピュータユーザの間で広く用い
られている。各データ圧縮法毎に固有なデータ伸張法、
すなわち、圧縮後データを圧縮前データに戻すデータ復
号化法が存在する。圧縮によるデータ容量削減の指標と
して圧縮率があり、数1で与えられる。
Hitachi magnetic tape storage devices H-6485-1 and H-6481-1 are known as product examples in which data compression by the Run Length method is applied to a secondary storage device.
As a software tool for data compression, LZ
LHA (LHA), which uses a compression method that combines the Huffman method and the Huffman method, is known. LHA is freeware and is widely used by personal computer users. Data decompression method unique to each data compression method,
That is, there is a data decoding method for returning compressed data to uncompressed data. There is a compression rate as an index of data volume reduction due to compression, which is given by Equation 1.

【0005】[0005]

【数1】 (圧縮率)=(圧縮前データ長)÷(圧縮後データ長)×100[%] …(1) 圧縮率は各データ圧縮法、及び圧縮対象データによって
異なる。この性質を利用し、複数のデータ圧縮法の中か
ら一つを選択する方式が、特開平4−241681 号,特開平
4−223717 号に記載されている。この方式を用いること
により、単一のデータ圧縮法を用いた場合よりも圧縮後
データの記憶容量を削減することが可能である。
## EQU00001 ## (Compression rate) = (Data length before compression) / (Data length after compression) * 100 [%] (1) The compression rate differs depending on each data compression method and the compression target data. Utilizing this property, a method of selecting one from a plurality of data compression methods is disclosed in JP-A-4-241681 and JP-A-4-241681.
No. 4-223717. By using this method, it is possible to reduce the storage capacity of the compressed data as compared with the case of using the single data compression method.

【0006】この方式では、一つの圧縮対象データに対
し、複数のデータ圧縮法を作用させ、圧縮率を測定し、
圧縮率が最高となるデータ圧縮法を選択する。圧縮後デ
ータには選択したデータ圧縮法を示す識別子を付加す
る。データ伸張時に識別子を参照し、識別子の示すデー
タ圧縮法に対応するデータ伸張法を用いて、圧縮後デー
タの伸張を行う。
In this method, a plurality of data compression methods are applied to one compression target data to measure the compression rate,
Select the data compression method that maximizes the compression rate. An identifier indicating the selected data compression method is added to the compressed data. When decompressing data, the identifier is referred to, and the decompressed data is decompressed using a data decompression method corresponding to the data compression method indicated by the identifier.

【0007】[0007]

【発明が解決しようとする課題】上記従来技術では、デ
ータ圧縮法の選択条件として圧縮率のみに着目してお
り、データ圧縮・伸張の処理速度に関しては考慮されて
いない。各データ圧縮法毎の圧縮率と処理速度は、圧縮
率の高いデータ圧縮法ほど処理速度が遅く、また圧縮率
の低いデータ圧縮法ほど処理速度が速い。
In the above prior art, only the compression rate is focused on as the selection condition of the data compression method, and the processing speed of data compression / decompression is not taken into consideration. Regarding the compression rate and the processing speed for each data compression method, the processing speed is slower as the data compression method having a higher compression rate and faster as the data compression method having a lower compression rate.

【0008】一方、磁気ディスク装置に代表されるデー
タブロック単位でデータ入出力を行う二次記憶装置で
は、データを固定長のデータブロックに分割・格納す
る。データブロックとは磁気ディスク装置の例では1セ
クタ(512バイト程度)に相当するデータ単位であ
る。データ分割の結果、データブロック長に満たない余
りデータが発生すると、二次記憶装置は余りデータ格納
のためにさらに1データブロックを割く必要がある。
On the other hand, in a secondary storage device, which is typified by a magnetic disk device and which inputs and outputs data in units of data blocks, data is divided and stored in fixed-length data blocks. The data block is a data unit corresponding to one sector (about 512 bytes) in the example of the magnetic disk device. If, as a result of the data division, surplus data of less than the data block length is generated, the secondary storage device needs to allocate another data block for storing the surplus data.

【0009】従って、二次記憶装置において複数のデー
タ圧縮法を用いたとき、それぞれのデータ圧縮法での圧
縮後データ長の差がデータブロック長に吸収され、圧縮
後データの格納に必要なデータブロック数が等しくなる
ことがある。この場合、圧縮率が最高のデータ圧縮法を
選択しても、高圧縮率を得るためのデータ圧縮・伸張処
理に費やす時間が増大するだけで、データ格納領域の節
約にはならないという問題がある。
Therefore, when a plurality of data compression methods are used in the secondary storage device, the difference in the compressed data length between the respective data compression methods is absorbed in the data block length, and the data necessary for storing the compressed data is stored. The number of blocks may be equal. In this case, even if the data compression method with the highest compression rate is selected, there is a problem in that the time required for data compression / decompression processing to obtain a high compression rate is increased, and the data storage area is not saved. .

【0010】[0010]

【課題を解決するための手段】上記問題を解決するため
に、本発明では、データブロック単位でデータ入出力を
行う二次記憶装置に対し、一つ以上の異なる圧縮・伸張
アルゴリズムでデータ圧縮・伸張を行う手段を設け、入
力データの一部を各データ圧縮機能の並列動作によって
圧縮し、圧縮後データの保存に必要なデータブロック数
の推定と、圧縮時間の測定を行う手段を設ける。そして
求めた必要データブロック数と圧縮時間より、最適なデ
ータ圧縮法を選択する手段を設ける。さらに選んだデー
タ圧縮法で圧縮対象データの残り部分を圧縮して二次記
憶装置に格納する手段を設ける。
In order to solve the above-mentioned problems, according to the present invention, data compression / decompression is performed by one or more different compression / decompression algorithms for a secondary storage device that inputs / outputs data in units of data blocks. A means for decompressing is provided, a part of the input data is compressed by the parallel operation of the respective data compression functions, and a means for estimating the number of data blocks necessary for storing the compressed data and measuring the compression time is provided. A means for selecting an optimum data compression method is provided based on the obtained required number of data blocks and the compression time. Further, means for compressing the remaining portion of the data to be compressed by the selected data compression method and storing it in the secondary storage device is provided.

【0011】[0011]

【作用】圧縮後データの記憶に必要なデータブロック数
と圧縮処理時間に基づき、最適なデータ圧縮法を選択す
ることで、データ圧縮による容量削減効果を損なうこと
なく圧縮処理速度を向上させることが可能である。
By selecting the optimum data compression method based on the number of data blocks required to store the compressed data and the compression processing time, the compression processing speed can be improved without impairing the capacity reduction effect of the data compression. It is possible.

【0012】[0012]

【実施例】【Example】

(実施例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を具備している。
(Embodiment 1) FIG. 1 shows a block diagram of embodiment 1 of the present invention. The storage device controller 102 is connected to the storage device 103 by the disk control circuit 110. The storage device 103 is composed of a plurality of disk drives 104. The disk drive 104 is called a sector 512
Input and output in units of byte data blocks. Further, the storage device control unit 102 uses the host interface circuit 105.
Is connected to the host processor 101. The host interface circuit 105 includes a data buffer 106, and is 4 KB between the host interface circuit 105 and the host processor 101.
Transfer data in units. The storage device control unit 102 includes a cache memory 109, a compression circuit selection unit 107, an expansion circuit selection unit 108, and three compression / expansion modules 111 and 1.
It is equipped with 17,123.

【0013】圧縮・伸張モジュール111は圧縮回路1
12,伸張回路113,圧縮後データ出力制御部11
4,セクタ数推定回路115,タイマ116,中間バッ
ファ207,中間バッファデータカウンタ211,セク
タ数レジスタ219,圧縮回路モニタ209を含む。圧
縮・伸張モジュール117と圧縮・伸張モジュール12
3は圧縮・伸張モジュール111と同様の構成である。
The compression / expansion module 111 is a compression circuit 1.
12, decompression circuit 113, compressed data output control unit 11
4, a sector number estimation circuit 115, a timer 116, an intermediate buffer 207, an intermediate buffer data counter 211, a sector number register 219, and a compression circuit monitor 209. Compression / expansion module 117 and compression / expansion module 12
3 has the same configuration as the compression / expansion module 111.

【0014】圧縮・伸張モジュール111の圧縮・伸張
アルゴリズムは圧縮処理速度が20MB/sのRun Leng
th法である。圧縮・伸張モジュール117の圧縮・伸張
アルゴリズムは圧縮処理速度が10MB/sのLZ法で
ある。圧縮・伸張モジュール123の圧縮・伸張アルゴ
リズムは圧縮処理速度が4MB/sのLZ−ハフマンの
複合圧縮法である。Run Length法は上記の三つの圧縮ア
ルゴリズムの中で最も単純で高速な圧縮アルゴリズムで
あるが、圧縮率は最も低い。LZ法は上記の三つの圧縮
アルゴリズムの中で処理速度、圧縮率とも中庸に位置す
る。LZ−ハフマンの複合圧縮法は、LZ法とハフマン
法の二つの圧縮法を組み合わせた方法で、上記の三つの
圧縮アルゴリズムの中で最も高い圧縮率を得るが、処理
速度は最も遅い。
The compression / expansion algorithm of the compression / expansion module 111 has a compression processing speed of 20 MB / s Run Leng.
th method. The compression / expansion algorithm of the compression / expansion module 117 is the LZ method with a compression processing speed of 10 MB / s. The compression / expansion algorithm of the compression / expansion module 123 is an LZ-Huffman composite compression method with a compression processing speed of 4 MB / s. The Run Length method is the simplest and fastest compression algorithm among the above three compression algorithms, but the compression rate is the lowest. The LZ method is moderate in processing speed and compression ratio among the above three compression algorithms. The LZ-Huffman composite compression method is a method that combines two compression methods, the LZ method and the Huffman method, and has the highest compression rate of the above three compression algorithms, but the slowest processing speed.

【0015】圧縮回路選択部107,伸張回路選択部1
08,圧縮・伸張モジュール111,117,123の
構成の詳細は後述する。
Compression circuit selection unit 107, expansion circuit selection unit 1
Details of the configurations of the 08 and compression / expansion modules 111, 117, and 123 will be described later.

【0016】実施例1では、ディスクドライブ104の
1セクタ長を512バイト、ホストプロセッサ101と
ホストインターフェース回路105間のデータ転送単位
を4KB、異なる圧縮・伸張回路の組を三つとし、圧縮
アルゴリズムをそれぞれRunLength法,LZ法,LZ−
ハフマンの複合圧縮法としたが、これらの構成が可変で
あることは明らかである。
In the first embodiment, the sector length of the disk drive 104 is 512 bytes, the data transfer unit between the host processor 101 and the host interface circuit 105 is 4 KB, the number of different compression / expansion circuits is three, and the compression algorithm is Run Length method, LZ method, LZ-
The Huffman composite compression method was used, but it is clear that these configurations are variable.

【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へ書き込む。
When writing data, the host processor 10
1 to 4K bytes of write data is data buffer 10
6 is transferred. The host processor 101 also sends a write command to the host interface circuit 105. The host interface circuit 105 sends the compression processing start signal to the compression circuit selection unit 107 and each compression / expansion module 1.
Send to 11, 117, 123. The compression circuit selection unit 107 and each compression / expansion module 111, 117, 123 compress the write data in the data buffer 106 and transfer it to the cache memory 109. Details of operations of the compression circuit selection unit 107 and the compression / expansion modules 111, 117, and 123 will be described later. Next, the host interface circuit 1
05 sends a write signal to the disk control circuit 110.
The disk control circuit 110 writes the compressed data on the cache memory 109 to the disk drive 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へ転送する。
When reading data, the host processor 10
1 is a read command for the host interface circuit 105
Send to. The host interface circuit 105 sends a read signal to the disk control circuit 110. The disk control circuit 110 reads data from the disk drive 104 and transfers it to the cache memory 109. Next, the host interface circuit 105 sends the decompression process start signal to the decompression circuit selection unit 108 and each compression / decompression module 111, 1.
Send to 17,123. Expansion circuit selection unit 108 and each compression
The decompression modules 111, 117, 123 decompress the read data on the cache memory 109 and transfer the decompressed data to the data buffer 106. Expansion circuit selection unit 108 and each compression
Details of the operations of the decompression modules 111, 117, 123 will be described later. The host interface circuit 105 transfers the read data on the data buffer 106 to the host processor 101.

【0019】図2は圧縮・伸張モジュール111を構成
するセクタ数推定回路115の詳細を示した図である。
セクタ数推定回路115はセクタ数を算出するための演
算回路211〜218から構成される。
FIG. 2 is a diagram showing the details of the sector number estimating circuit 115 constituting the compression / expansion module 111.
The sector number estimation circuit 115 is composed of arithmetic circuits 211 to 218 for calculating the number of sectors.

【0020】ホストインターフェース回路105は圧縮
処理の開始を意味する圧縮開始信号204を、圧縮回路
112,中間バッファデータカウンタ211,タイマ1
16に対して送る。圧縮開始信号204を受けた圧縮回
路112はデータバッファ106より書き込みデータを
受け取り、圧縮して中間バッファ207へ転送する。圧
縮開始信号204を受けた中間バッファデータカウンタ
211は0にクリアされ、中間バッファ207上の圧縮
後データ長のカウントを開始する。圧縮後データの保存
に必要なセクタ数は、中間バッファデータカウンタ21
1の値に基づき、演算回路211〜218によって算出
され、セクタ数レジスタ219に保存される。圧縮開始
信号204を受けたタイマ116は0にクリアされ、圧
縮処理時間の測定を開始する。
The host interface circuit 105 sends the compression start signal 204, which means the start of the compression process, to the compression circuit 112, the intermediate buffer data counter 211, and the timer 1.
Send to 16. Upon receiving the compression start signal 204, the compression circuit 112 receives the write data from the data buffer 106, compresses it, and transfers it to the intermediate buffer 207. The intermediate buffer data counter 211 that has received the compression start signal 204 is cleared to 0 and starts counting the post-compression data length on the intermediate buffer 207. The number of sectors required to store the compressed data is determined by the intermediate buffer data counter 21.
Based on the value of 1, it is calculated by the arithmetic circuits 211 to 218 and stored in the sector number register 219. Upon receiving the compression start signal 204, the timer 116 is cleared to 0 and the measurement of the compression processing time is started.

【0021】セクタ数の推定と圧縮処理時間の測定は、
書き込みデータ4Kバイトの内の先頭512バイトに関
して行われる。圧縮回路モニタ209は圧縮回路112
の圧縮処理の進行状況を監視し、512バイトまでの圧
縮処理が終了した時点で、タイマ116の値とセクタ数
レジスタ216の値を圧縮回路選択部107へ送る。圧
縮回路112は圧縮処理を続行する。
The estimation of the number of sectors and the measurement of the compression processing time are performed by
This is performed for the first 512 bytes of the 4 Kbytes of write data. The compression circuit monitor 209 uses the compression circuit 112.
The progress status of the compression process is monitored, and when the compression process up to 512 bytes is completed, the value of the timer 116 and the value of the sector number register 216 are sent to the compression circuit selection unit 107. The compression circuit 112 continues the compression process.

【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に保存す
る。
The number of sectors required to store the compressed data is
The data length after compression of the entire write data of 4 Kbytes,
It is obtained by dividing the sector size by 512 bytes. In the first embodiment, out of the compressed data length of 512 bytes, which is one-eighth of the 4 K-byte write data,
Estimate the number of sectors required to compress and store the entire data.
Therefore, the data length after compression is divided by 64 bytes, which is 1/8 of the sector size of 512 bytes. In the sector number estimation circuit 115, the intermediate buffer data counter 211
Quotient 215 and remainder 21 divided by the constant value 64 (212)
Ask for 4. If the remainder 214 is equal to the constant value 0 (213), the number of sectors required to store the compressed data is the quotient 215.
It is estimated that the quotient 215 is equal to, and the quotient 215 is selected by the data selector 218 and stored in the sector number register 219. If the remainder 214 is not equal to the constant value 0 (213), it is estimated that one sector is needed to store the remainder data, and the value 217 obtained by adding 1 to the quotient 215 is added to the data selector 2.
18 and stores it in the sector number register 219.

【0023】データ圧縮では一般に、入力データの内容
に依存して圧縮率が変動する。入力データの先頭部分の
圧縮率が残り部分の圧縮率より高ければ、上記手段によ
って必要セクタ数を推定した場合、推定値が実際の必要
セクタ数を下回ることがある。そこで必要セクタ数の推
定において、予め圧縮率の変動を考慮したマージンを加
味して計算することが好ましい。実施例1の必要セクタ
数推定において、上記マージンを加味するための変更は
容易である。すなわち、中間バッファデータカウンタ2
11値を、セクタサイズ512バイトの八分の一に当た
る64バイトよりも更に小さい値(例えば60)で割る
ことで、必要セクタ数の推定値にマージンを加えること
ができる。
In data compression, the compression rate generally varies depending on the content of input data. If the compression ratio of the leading part of the input data is higher than the compression ratio of the remaining part, when the required number of sectors is estimated by the above means, the estimated value may be lower than the actual required number of sectors. Therefore, in the estimation of the required number of sectors, it is preferable to perform the calculation in consideration of the margin in which the fluctuation of the compression rate is taken into consideration. In the estimation of the required number of sectors in the first embodiment, it is easy to make a change to take the above margin into consideration. That is, the intermediate buffer data counter 2
A margin can be added to the estimated value of the required number of sectors by dividing the 11 value by a value (for example, 60) smaller than 64 bytes corresponding to 1/8 of the 512-byte sector size.

【0024】図3は圧縮回路選択部107の詳細を示し
た図である。圧縮回路選択部107はデータセレクタ3
05,圧縮ヘッダ付加回路306,必要セクタ数比較回
路307,圧縮処理時間比較回路308,選択信号送信
回路309より構成される。
FIG. 3 is a diagram showing details of the compression circuit selection unit 107. The compression circuit selection unit 107 is the data selector 3
05, a compression header addition circuit 306, a required sector number comparison circuit 307, a compression processing time comparison circuit 308, and a selection signal transmission circuit 309.

【0025】圧縮回路選択部107は各圧縮・伸張モジ
ュール111,117,123毎に求められた必要セク
タ数と圧縮処理時間に基づき、必要セクタ数が最小の圧
縮・伸張モジュールの中で圧縮処理時間が最短の一つを
選択し、圧縮後データをキャッシュメモリ109へ転送
する。しかし必要セクタ数の最小値が、データを圧縮せ
ずに保存する場合に必要なセクタ数以上であれば、デー
タを圧縮する意味はない。この場合データ圧縮は行わ
ず、ホストインターフェース回路105のデータバッフ
ァ106の内容をキャッシュメモリ109へ直接転送す
る。
The compression circuit selection unit 107 determines the compression processing time in the compression / expansion module having the minimum required number of sectors based on the required number of sectors and the compression processing time obtained for each compression / expansion module 111, 117, 123. Selects the shortest one and transfers the compressed data to the cache memory 109. However, if the minimum value of the required number of sectors is equal to or larger than the number of sectors required to store the data without compressing it, there is no point in compressing the data. In this case, data compression is not performed and the contents of the data buffer 106 of the host interface circuit 105 are directly transferred to the cache memory 109.

【0026】実施例1では、キャッシュメモリ109に
転送したデータの先頭に、どの圧縮・伸張モジュールで
圧縮したのか、あるいは圧縮しなかったのかを示す識別
子として、2ビットの圧縮ヘッダを付加する。圧縮ヘッ
ダ値‘0’は圧縮しないデータであることを表す。圧縮
ヘッダ値‘1’,‘2’,‘3’はそれぞれ圧縮・伸張
モジュール111,117,123の圧縮後データであ
ることを表す。
In the first embodiment, a 2-bit compression header is added to the head of the data transferred to the cache memory 109 as an identifier indicating which compression / expansion module has been used for compression or not. The compressed header value “0” indicates that the data is not compressed. The compressed header values “1”, “2”, and “3” represent the data after compression of the compression / expansion modules 111, 117, and 123, respectively.

【0027】図4は圧縮回路選択部107の処理をフロ
ーチャートで表わした図である。全ての圧縮・伸張モジ
ュール111,117,123において、書き込みデー
タ先頭の512バイトの圧縮が終了した時点で圧縮回路
選択部107の処理が開始される。処理ステップ402
において必要セクタ数比較回路1307は、セクタ数レ
ジスタ219,セクタ数レジスタ314,セクタ数レジ
スタ319の値を取得する。各セクタ数レジスタの値
は、各圧縮・伸張モジュールを用いて、書き込みデータ
を圧縮・保存した場合に必要なセクタ数を表す。
FIG. 4 is a flow chart showing the process of the compression circuit selection unit 107. In all the compression / expansion modules 111, 117, 123, the processing of the compression circuit selection unit 107 is started when the compression of the first 512 bytes of the write data is completed. Processing step 402
At 1, the required sector number comparison circuit 1307 obtains the values of the sector number register 219, the sector number register 314, and the sector number register 319. The value of each sector number register represents the number of sectors required when the write data is compressed / stored using each compression / expansion module.

【0028】処理ステップ403において、書き込みデ
ータを圧縮するか否かを判定する。具体的には必要セク
タ数比較回路307において、各セクタ数レジスタの値
が全て定数値9以上か否か判定する。定数値9はデータ
を圧縮せずに保存する場合のセクタ数である。データを
圧縮せずに保存する場合、4KBの圧縮しないデータの
保存に8セクタ、圧縮ヘッダの2ビットの保存に1セク
タの合わせて9セクタが必要となる。
In processing step 403, it is determined whether or not the write data is compressed. Specifically, the required sector number comparison circuit 307 determines whether or not all the values in the respective sector number registers are a constant value 9 or more. The constant value 9 is the number of sectors when data is stored without compression. When data is stored without being compressed, 8 sectors are required to store 4 KB uncompressed data, and 1 sector is required to store 2 bits of the compressed header.

【0029】処理ステップ403の判定結果が偽の場
合、圧縮・伸張モジュールを選択する処理ステップ40
4へ進む。処理ステップ404では、必要セクタ数比較
回路307において、各セクタ数レジスタの最小値を調
べ、圧縮データの保存に必要なセクタ数が最小となる圧
縮・伸張モジュールを選択する。必要セクタ数比較回路
307と圧縮処理時間比較回路308の間には、1ビッ
トの信号線が3本存在する。信号線の各一本ずつが圧縮
・伸張モジュールの一つ一つに対応している。セクタ数
が最小となる圧縮・伸張モジュールに対応する信号線だ
けがオンとなる。セクタ数が最小かつ等しい圧縮・伸張
モジュールが複数存在するなら、該当する圧縮・伸張モ
ジュールに対応する信号線が全てオンとなる。
If the determination result of processing step 403 is false, processing step 40 for selecting a compression / expansion module.
Go to 4. In processing step 404, the required sector number comparison circuit 307 checks the minimum value of each sector number register and selects the compression / decompression module that minimizes the number of sectors required to store the compressed data. There are three 1-bit signal lines between the required sector number comparison circuit 307 and the compression processing time comparison circuit 308. Each signal line corresponds to each compression / expansion module. Only the signal line corresponding to the compression / expansion module with the minimum number of sectors is turned on. When there are a plurality of compression / expansion modules having the smallest and equal number of sectors, all signal lines corresponding to the corresponding compression / expansion modules are turned on.

【0030】処理ステップ405では、セクタ数が最小
となる圧縮・伸張モジュールが複数あるか否かを調べ
る。圧縮処理時間比較回路308において、必要セクタ
数比較回路307からの3本の信号線の内オンの信号線
の数を調べる。オンの信号線の数が一本だけならセクタ
数が最小となる圧縮・伸張モジュールは一つだけであ
る。該信号線に対応する圧縮・伸張モジュールが選択さ
れ処理ステップ408へ進む。オンの信号線の数が複数
ならセクタ数が最小となる圧縮・伸張モジュールは複数
存在し、処理ステップ406へ進む。
In processing step 405, it is checked whether or not there are a plurality of compression / decompression modules having the minimum number of sectors. The compression processing time comparison circuit 308 checks the number of ON signal lines of the three signal lines from the required sector number comparison circuit 307. If the number of ON signal lines is only one, there is only one compression / expansion module that minimizes the number of sectors. The compression / expansion module corresponding to the signal line is selected, and the process proceeds to processing step 408. If there are a plurality of ON signal lines, there are a plurality of compression / decompression modules that minimize the number of sectors, and the process proceeds to processing step 406.

【0031】処理ステップ406において、タイマ11
6,タイマ122,タイマ128の値を取得する。各タ
イマの値は、各圧縮・伸張モジュールを用いて、書き込
みデータの先頭512バイトを圧縮したときの圧縮処理
時間を表す。処理ステップ407において、圧縮処理時
間比較回路308はセクタ数が最小となる複数の圧縮・
伸張モジュールの中で圧縮処理時間が最短となる一つを
選択する。圧縮処理時間比較回路308と選択信号送信
回路309の間には、2ビットの信号線が1本存在す
る。該信号線に選択された圧縮・伸張モジュールを示す
圧縮ヘッダ値が出力される。
In processing step 406, timer 11
6, the values of the timer 122 and the timer 128 are acquired. The value of each timer represents the compression processing time when the first 512 bytes of the write data is compressed using each compression / expansion module. In the processing step 407, the compression processing time comparison circuit 308 outputs a plurality of compression / compression times with the minimum number of sectors.
Select one of the decompression modules that has the shortest compression processing time. There is one 2-bit signal line between the compression processing time comparison circuit 308 and the selection signal transmission circuit 309. A compression header value indicating the selected compression / expansion module is output to the signal line.

【0032】処理ステップ408では、選択信号送信回
路309が選択された圧縮・伸張モジュールに対して、
回路選択信号を送る。処理ステップ409において、選
択信号送信回路309は圧縮ヘッダ付加回路306に対
し選択された圧縮・伸張モジュールに対応する圧縮ヘッ
ダ値の転送を促す。圧縮ヘッダ付加回路306は選択さ
れた圧縮・伸張モジュールに対応する圧縮ヘッダ値をキ
ャッシュメモリ109へ転送する。処理ステップ410
において、選択信号送信回路309は選択された圧縮・
伸張モジュールからの圧縮後データをデータセレクタ3
06によって選択し、キャッシュメモリ109へ転送し
処理を終了する。
In the processing step 408, the selection signal transmission circuit 309 sends the selected compression / decompression module
Send a circuit selection signal. In processing step 409, the selection signal transmission circuit 309 prompts the compression header addition circuit 306 to transfer the compression header value corresponding to the selected compression / decompression module. The compression header adding circuit 306 transfers the compression header value corresponding to the selected compression / expansion module to the cache memory 109. Processing step 410
In the selection signal transmission circuit 309,
Data selector 3 after compressing data from decompression module
The selection is made by 06, the data is transferred to the cache memory 109, and the processing is ended.

【0033】処理ステップ403の判定結果が真の場
合、書き込みデータの圧縮は行わず、処理ステップ41
1へ進む。必要セクタ数比較回路307と圧縮処理時間
比較回路308の間の3本の信号線は全てオフとなる。
圧縮処理時間比較回路308は3本の信号線が全てオフ
の場合、選択信号送信回路309へ圧縮ヘッダ値‘0’
を出力する。処理ステップ411において、選択信号送
信回路309は圧縮ヘッダ付加回路306に対し圧縮ヘ
ッダ値‘0’の転送を促す。圧縮ヘッダ付加回路306
は圧縮ヘッダ値‘0’をキャッシュメモリ109へ転送
する。処理ステップ412において、選択信号送信回路
309はホストインターフェース回路105のデータバッ
ファ106上のデータをデータセレクタ305によって
選択し、キャッシュメモリ109へ転送し処理を終了す
る。
If the judgment result of the processing step 403 is true, the write data is not compressed and the processing step 41 is executed.
Go to 1. All three signal lines between the required sector number comparison circuit 307 and the compression processing time comparison circuit 308 are turned off.
The compression processing time comparison circuit 308 sends a compression header value of “0” to the selection signal transmission circuit 309 when all three signal lines are off.
Is output. In processing step 411, the selection signal transmitting circuit 309 prompts the compressed header adding circuit 306 to transfer the compressed header value “0”. Compression header addition circuit 306
Transfers the compressed header value “0” to the cache memory 109. In processing step 412, the selection signal transmission circuit 309 selects the data in the data buffer 106 of the host interface circuit 105 by the data selector 305, transfers it to the cache memory 109, and ends the processing.

【0034】図5は圧縮後データ出力制御部114の詳
細を示した図である。圧縮後データ出力制御部114は
データ出力切り換え部512と圧縮終了フラグ510と
出力データカウンタ511から構成される。圧縮後デー
タ出力制御部120,圧縮後データ出力制御部126
は、圧縮後データ出力制御部114と同様の構成をと
る。
FIG. 5 is a diagram showing details of the compressed data output control unit 114. The post-compression data output control unit 114 includes a data output switching unit 512, a compression end flag 510, and an output data counter 511. Post-compression data output control unit 120, post-compression data output control unit 126
Has a configuration similar to that of the compressed data output control unit 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を受け取ると
セットされる。
The host interface circuit 105 sends a compression start signal 204, which means the start of compression processing, to the data output switching unit 512, the compression circuit 112, the intermediate buffer data counter 509, the output data counter 511, and the compression end flag 510. . Upon receiving the compression start signal 204, the data output switching unit 512 sets the data selector 507 so that the output destination of the compression circuit 112 is the intermediate buffer 207. The compression circuit 112, which receives the compression start signal 204, compresses the write data in the data buffer 106 and transfers it to the intermediate buffer 207 until either the compression stop signal 514 is received from the data output switching unit 512 or the compression processing is completed. To do. Upon receiving the compression start signal 204, the intermediate buffer data counter 509 and the output data counter 511 are cleared to 0. The compression end flag 510 receiving the compression start signal 204 is reset and set when the compression end signal 506 is received from the compression circuit 112.

【0036】図6は圧縮後データ出力制御部の処理をフ
ローチャートで表わした図である。圧縮回路選択部10
7より回路選択信号329を受けたデータ出力切り換え
部512は、処理ステップ602において圧縮終了フラ
グ510がセットされているか否かを調べる。セットさ
れていなければ処理ステップ603に進み、圧縮停止信
号514を送る。処理ステップ604〜607におい
て、データセレクタ516は中間バッファ207上の圧
縮後データを圧縮回路選択部107へ転送する。すなわ
ち中間バッファデータカウンタ509と出力データカウ
ンタ511の値が等しくなるまで、中間バッファ207
のデータを転送しながら出力データカウンタ511をイ
ンクリメントする。
FIG. 6 is a flow chart showing the process of the compressed data output control section. Compression circuit selection unit 10
The data output switching unit 512 which receives the circuit selection signal 329 from step 7 checks in step 602 whether or not the compression end flag 510 is set. If it is not set, the process proceeds to the processing step 603, and the compression stop signal 514 is sent. In processing steps 604 to 607, the data selector 516 transfers the compressed data in the intermediate buffer 207 to the compression circuit selection unit 107. That is, until the values of the intermediate buffer data counter 509 and the output data counter 511 become equal, the intermediate buffer 207
The output data counter 511 is incremented while the data of 1 is transferred.

【0037】処理ステップ608において、再び圧縮終
了フラグ510がセットされているか否かを調べる。セ
ットされていれば処理を終了し、セットされていなけれ
ば処理ステップ609に進み、圧縮再開信号515を圧
縮回路112へ送る。処理ステップ610では圧縮処理
を再開した圧縮回路112がデータバッファ106上の
書き込みデータを圧縮し、データセレクタ507,51
6を通して、圧縮後データを圧縮回路選択部107へ転
送する。
In processing step 608, it is checked again whether the compression end flag 510 is set. If it is set, the process is ended, and if it is not set, the process proceeds to the processing step 609, and the compression restart signal 515 is sent to the compression circuit 112. In processing step 610, the compression circuit 112, which has restarted the compression processing, compresses the write data in the data buffer 106, and the data selectors 507, 51
The compressed data is transferred to the compression circuit selection unit 107 through 6.

【0038】圧縮後データ出力制御部120,圧縮後デ
ータ出力制御部126は、圧縮後データ出力制御部11
4と同様の動作をする。
The post-compression data output control unit 120 and the post-compression data output control unit 126 are the post-compression data output control unit 11
The same operation as 4 is performed.

【0039】図7は伸張回路選択部108の詳細を示し
た図である。伸張回路選択部108は圧縮ヘッダ読み出
し回路711と二つのデータセレクタ709,710か
ら構成される。
FIG. 7 is a diagram showing the details of the expansion circuit selection unit 108. The decompression circuit selection unit 108 includes a compression header read circuit 711 and two data selectors 709 and 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へ
転送する。
The host interface circuit 105 sends a decompression start signal 702 indicating the start of decompression processing to the decompression circuit 113, the decompression circuit 119, the decompression circuit 125, and the compression header read circuit 711. Expansion start signal 702
The compressed header read circuit 711 that received the data reads the compressed header from the cache memory 109 and checks the read value. When the compressed header value is “0”, the data is stored without being compressed, so the data selectors 709 and 710 expand the contents of the cache memory 109 into the decompression circuits 113, 119 and 1.
The data is transferred to the data buffer 106 without passing 25. When the compressed header value is “1”, “2”, or “3”, the data is compressed and stored, so the data selector 709,
Reference numeral 710 is an expansion circuit 1 for expanding the contents of the cache memory 109.
Data is transferred to the data buffer 106 through 13, 119 and 125.

【0041】図8は実施例における書き込みデータの流
れを示した図である。データバッファ106上の書き込
みデータ4KBの先頭512バイトを圧縮回路112,
118,124により圧縮し、圧縮後データを中間バッフ
ァ207,809,810に保存する。圧縮結果より得
た必要セクタ数と圧縮時間より、最適な圧縮回路118を
選択する。選択結果に基づき、中間バッファ809の内
容をキャッシュメモリ109に転送し、書き込みデータ
の残りも圧縮回路118で圧縮した後、キャッシュメモ
リ109に転送する。
FIG. 8 is a diagram showing the flow of write data in the embodiment. The head 512 bytes of 4 KB of write data on the data buffer 106 are compressed by the compression circuit 112,
The data is compressed by 118 and 124, and the compressed data is stored in the intermediate buffers 207, 809 and 810. The optimum compression circuit 118 is selected based on the required number of sectors and the compression time obtained from the compression result. Based on the selection result, the contents of the intermediate buffer 809 are transferred to the cache memory 109, the rest of the write data is also compressed by the compression circuit 118, and then transferred to the cache memory 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である。
First, the 512 bytes 804 at the beginning of the data are compressed through the compression circuits 112, 118 and 124 and transferred to the intermediate buffers 207, 809 and 810. The 512-byte data 804 passed through the compression circuit 112 is 31
Compressed to 0 bytes of data 811, the intermediate buffer 20
Stored in 7. The compression processing time is 25.6 μs, and the number of sectors required to store the compressed data is 5. Compression circuit 1
The 512-byte data 804 passed through 18 is compressed into 250-byte data 813 and stored in the intermediate buffer 809. The compression processing time is 51.2 μs, and the number of sectors required to store the compressed data is 4. The 512-byte data 804 passing through the compression circuit 124 is compressed into 200-byte data 815 and stored in the intermediate buffer 810. The compression processing time is 128.0 μs, and the number of sectors required to store the compressed data is 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に保存する。
The compression circuits 112 and 118 compress the remaining data 803, and the compressed data 812 and 814 are stored in the intermediate buffers 207 and 809 until the compression circuit 124 having the slowest compression processing speed completes the compression of the first 512 bytes of the data. save. The compression circuit 112 compresses 2048 bytes out of the remaining 3584 bytes 803 and the compressed data 1
Store 230 bytes 812 in the intermediate buffer 112.
The compression circuit 118 compresses 768 bytes out of the remaining 3584 bytes 803, and the compressed data 380 bytes 8
14 is stored in the intermediate buffer 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セクタに収まる。
In the compression circuit selection process, the compression time is 5 out of the compression circuits 118 and 124 having the minimum required number of 4 sectors.
The compression circuit 118 of 1.2 μs is selected. First, the compression header adding circuit 306 transfers the compression header “2” (818) to the cache memory 109. Then, 630 bytes (8 bytes) of the compressed data stored in the intermediate buffer 809 are stored.
13, 814) to the cache memory 109.
Next, the remaining 2 of the write data on the data buffer 106
816 (803) is compressed and transferred to the cache memory 109 to complete the compression process. The length of the compressed data 817 on the cache memory is 2040B in total, and the compressed data 817 including the compressed header 818 fits in 4 sectors.

【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が接続され
ている。
(Embodiment 2) FIG. 9 shows a block diagram of Embodiment 2 of the present invention. Host interface circuit 105 of storage device controller 102, compression / expansion module 11
The configurations of 1, 117, 123, the compression circuit selection unit 107, the expansion circuit selection unit 108, and the cache memory 109 are the same as those in the first embodiment. The storage device controller 102 is connected to the storage device 103 by four disk control circuits 904, 905, 906 and 907. The disk control circuit 904 has a data drive 908, the disk control circuit 905 has a data drive 909, the disk control circuit 906 has a data drive 910, and the disk control circuit 907 has an EC.
A C (Error Correcting Code) drive 911 is connected.

【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を並
列に動作させて、ディスク制御回路上のデータを各ディ
スクドライブへ同時に書き込む。
When writing data, the required sector number calculation circuit 901 calculates the number of sectors required for storage from the compressed data length on the cache memory 109, and the data distribution circuit 90.
Inform 2 of the results. The data distribution circuit 902 divides the compressed data on the cache memory 109 into sector units, and the disk control circuits 904, 905, 906 and ECC
It is distributed to the generation circuit 903. The ECC generation circuit 903 generates an ECC from the data passed from the data distribution circuit 902 and transfers it to the disk control circuit 907. The disk control circuits 904, 905, 906 and 907 operate the data drives 908, 909, 910 and the ECC drive 911 in parallel to write the data on the disk control circuit to each disk drive at the same time.

【0047】データ読み出し時、ディスク制御回路90
4,905,906は各データドライブ908,90
9,910からデータを読み出し、データ結合回路91
2へ転送する。データ結合回路912は、各ディスクド
ライブに分割・保存されていたデータを結合しキャッシ
ュメモリ109へ転送する。
When reading data, the disk control circuit 90
4, 905 and 906 are data drives 908 and 90
The data is read out from 9, 910 and the data combining circuit 91
Transfer to 2. The data combination circuit 912 combines the data divided and stored in each disk drive and transfers the combined data to the cache memory 109.

【0048】図10は実施例2における書き込みデータ
の流れを示した図である。ホストプロセッサ101,キ
ャッシュメモリ109間の書き込みデータの流れは実施
例1と同様なので省略する。キャッシュメモリ109上
には圧縮後データがあり、必要セクタ数算定の結果、保
存に5セクタの領域が必要であることが解かっている。
データ分配回路902は圧縮後データを五つのデータブ
ロック100〜1005に分割し、二回に分けて各データド
ライブに書き込む。同時に書き込まれるデータブロック
のグループをECCグループと呼び、各ECCグループ
毎にECCが生成される。
FIG. 10 is a diagram showing the flow of write data in the second embodiment. The flow of write data between the host processor 101 and the cache memory 109 is the same as that in the first embodiment, and will be omitted. There is compressed data on the cache memory 109, and as a result of calculating the required number of sectors, it has been found that an area of 5 sectors is required for storage.
The data distribution circuit 902 divides the compressed data into five data blocks 100 to 1005, and writes the data into each data drive twice. A group of data blocks simultaneously written is called an ECC group, and an ECC is generated for each ECC group.

【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 を
それぞれ書き込む。
First, the data blocks 1001 and 100
The ECC group 1008 composed of 2,1003 is written. The data distribution circuit 902 transfers the data block 1001 to the disk control circuit 904, the data block 1002 to the disk control circuit 905, and the data block 1003 to the disk control circuit 906 from the cache memory 109. Data block 1
001, 1002, 1003 are transferred to the ECC generation circuit 903. The ECC generation circuit 903 uses the data block 10
ECC 1006 is generated from 01, 1002, 1003 and transferred to the disk control circuit 907. Disk control circuit 904
Data block 1001 to the data drive 908,
The disk control circuit 905 writes the data block 1002 to the data drive 909, the disk control circuit 906 writes the data block 1003 to the data drive 910, and the disk control circuit 907 writes the ECC 1006 to the ECC drive 911.

【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 をそれぞれ
書き込む。
Next, the ECC group 1009 consisting of the data blocks 1004 and 1005 is written.
The data distribution circuit 902 transfers the data block 1004 from the cache memory 109 to the disk control circuit 904.
The data block 1005 is transferred to the disk control circuit 905. Also, the data blocks 1004 and 1005 are transferred to the ECC generation circuit 903. ECC generation circuit 90
3 generates ECC 1007 from the data blocks 1004 and 1005 and transfers it to the disk control circuit 907. The disk control circuit 904 writes the data block 1004 to the data drive 908, the disk control circuit 905 writes the data block 1005 to the data drive 909, and the disk control circuit 907 writes the ECC1007 to the ECC drive 911.

【0051】実施例2では、記憶装置103に対するデ
ータ入出力において全てのディスクドライブが同時に動
作するため、ECCグループ1009のデータドライブ
909のセクタには無意味な空データ1010が書き込ま
れる。
In the second embodiment, since all disk drives operate simultaneously for data input / output to / from the storage device 103, the data drives of the ECC group 1009 are
Meaningless empty data 1010 is written in the sector 909.

【0052】実施例2では、圧縮後データの保存に必要
なセクタ数の範囲は1〜9である。最大値9はデータを
圧縮せずに保存する場合のセクタ数である。必要セクタ
数が1〜3の場合、圧縮後データ保存は1ECCグルー
プ、一回の書き込みで行う。必要セクタ数が4〜6の場
合、圧縮後データ保存は2ECCグループ、二回の書き
込みで行う。必要セクタ数が7〜9の場合、圧縮後デー
タ保存は3ECCグループ、三回の書き込みで行う。実
施例2では、圧縮後データ保存に必要なセクタ数がより
少ない圧縮・伸張モジュールを選択しても、保存に必要
なECCグループが同数であればデータ圧縮による容量
削減効果は期待できない。そこで実施例2では、圧縮後
データの保存に必要なECCグループ数が最小となる圧
縮・伸張モジュールの中で、圧縮処理時間が最短となる
一つを選択する。
In the second embodiment, the range of the number of sectors required to store the compressed data is 1-9. The maximum value 9 is the number of sectors when data is stored without compression. When the number of required sectors is 1 to 3, the data storage after compression is performed by one ECC group and one writing. When the required number of sectors is 4 to 6, data storage after compression is performed by writing twice in 2 ECC groups. When the required number of sectors is 7 to 9, data storage after compression is performed by writing 3 times in 3 ECC groups. In the second embodiment, even if a compression / decompression module that requires a smaller number of sectors for storing data after compression is selected, if the number of ECC groups required for storage is the same, the capacity reduction effect by data compression cannot be expected. Therefore, in the second embodiment, one of the compression / decompression modules that minimizes the number of ECC groups required to store the compressed data is selected, which has the shortest compression processing time.

【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と同じ圧縮回路選択処理
を複数回繰り返し、その結果選択された回数が最多の圧
縮法を該ファイルに最適な圧縮法とする。
FIG. 11 is a diagram showing an algorithm for selecting a compression circuit in the second embodiment. The compression circuit selection is performed by the compression circuit selection unit 303 as in the embodiment. In the processing step 1102, the sector number register 219 and the sector number register 31 are the same as the processing in the processing step 402.
4. Obtain the contents of the sector number register 319. The value of each sector number register represents the number of sectors required when the write data is compressed and stored in each compression / expansion module. In the processing step 1103, it is checked whether or not there is a compression / expansion module whose number of ECC groups required for storing the compressed data is 1. Specifically, the required sector number comparison circuit 307 checks whether there is a compression / decompression module having a required sector number of 3 or less. If it exists, go to processing step 1105. If it does not exist, processing step 1104.
Go to. In processing step 1104, it is checked whether or not there is a compression / expansion module having the number of ECC groups of 2 required for storing the compressed data. Specifically, the required sector number comparison circuit 307 checks whether there is a compression / decompression module having a required sector number of 6 or less. If it exists, go to processing step 1105, and if it does not exist, processing step 11
Proceed to 11. In processing steps 1005 to 1010, processing similar to processing steps 405 to 410 is performed. One of the compression / expansion modules that satisfies the conditions of the processing steps 1103 and 1104 is selected and the processing time is the shortest, and the data is transferred to the cache memory 109 after compression. In processing steps 1011 to 1012, processing step 411
The processing similar to the steps 412 to 412 is performed, and the data is transferred to the cache memory 109 without being compressed. (Embodiment 3) FIG. 12 is a block diagram of Embodiment 3 of the present invention. Since individual files, which are the constituent units of the file system 1201, are often composed of data of similar formats, the optimum compression method can be determined for each file. In the third embodiment, when writing the data block of the same file, the same compression circuit selection process as in the first or second embodiment is repeated a plurality of times, and as a result, the compression method with the largest number of times is selected as the optimum compression method for the file. To do.

【0054】記憶装置104に読み書きされるデータブ
ロックの一つ一つに対して、ホストプロセッサ101上
のファイルシステム1201はブロック属性1202を
与える。ブロック属性1202とは各ファイルに固有な
名前、あるいは番号であり、ファイルシステム1201
は、同一ファイルを構成するデータブロックに対して、
同じブロック属性1202を与える。
The file system 1201 on the host processor 101 gives a block attribute 1202 to each data block read from or written to the storage device 104. The block attribute 1202 is a unique name or number for each file.
For the data blocks that make up the same file,
The same block attribute 1202 is given.

【0055】選択履歴テーブル1203には、ブロック
属性1202毎に過去最近4回の圧縮回路選択結果が記
録される。同一ブロック属性を持つデータ書き込みにお
いて、実施例1あるいは2と同じ圧縮回路選択処理は4
回に回1だけ行われ、選択結果が選択履歴テーブル12
03に記録される。残り3回は選択履歴テーブル1203に
記録された選択履歴より、過去最近4回で最も多く選択
された圧縮・伸張モジュールを選ぶが、該選択結果は選
択履歴テーブル1203に記録しない。
In the selection history table 1203, the past four most recent compression circuit selection results are recorded for each block attribute 1202. In writing data having the same block attribute, the same compression circuit selection processing as in the first or second embodiment is 4
Only once for each time, the selection result is the selection history table 12
It is recorded in 03. For the remaining three times, the compression / decompression module selected most frequently in the past four times is selected from the selection history recorded in the selection history table 1203, but the selection result is not recorded in the selection history table 1203.

【0056】実施例1,2では、データの極く一部の圧
縮結果に基づき圧縮・伸張モジュールを選択するため、
データ形式の局所的な変動の影響を受け易く、圧縮・伸
張モジュールの選択を誤り易い。また全ての圧縮・伸張
モジュールが先頭512バイトの圧縮を終了するまで待
つ必要があるため選択に時間がかかる。実施例3では、
同一ファイルのデータに対する過去最近4回の選択結果
に基づき、より正確かつ高速に圧縮・伸張モジュールを
選択できる。
In the first and second embodiments, since the compression / expansion module is selected based on the compression result of a very small part of the data,
It is susceptible to local fluctuations in the data format, and it is easy to make an error in selecting the compression / decompression module. Further, since it is necessary to wait until all the compression / decompression modules finish compressing the first 512 bytes, it takes time to select. In Example 3,
The compression / expansion module can be selected more accurately and at higher speed based on the selection results of the past four most recent times for the data of the same file.

【0057】図13は、実施例3の圧縮回路選択部10
7の詳細を示した図である。圧縮回路選択部107は選
択履歴テーブルインターフェース回路1301を具備す
る。選択履歴テーブルインターフェース回路1301は
選択履歴テーブル1203の検索・更新を行う。選択信
号送信回路310は選択履歴テーブルインターフェース
回路1301と履歴情報の受け渡しを行う。受け渡しの
詳細は後述する。他の構成は実施例1と同様である。
FIG. 13 shows the compression circuit selection unit 10 of the third embodiment.
It is a figure showing the details of No. 7. The compression circuit selection unit 107 includes a selection history table interface circuit 1301. The selection history table interface circuit 1301 searches / updates the selection history table 1203. The selection signal transmission circuit 310 exchanges history information with the selection history table interface circuit 1301. Details of the delivery will be described later. Other configurations are similar to those of the first embodiment.

【0058】図14は、実施例3の圧縮データ選択回路
304の処理をフローチャートで表わした図である。処
理ステップ1401において、ブロック属性1202が
選択履歴テーブル1203に登録されているか否かをチ
ェックする。ホストインターフェース回路105はホス
トプロセッサ101より送られたブロック属性1202を選
択履歴テーブルインターフェース回路1301に渡す。
選択履歴テーブルインターフェース回路1301は、ブ
ロック属性1202のエントリが既に選択履歴テーブル
1203上に存在するか否か、選択履歴テーブル120
3の検索を行う。存在するなら処理ステップ1402
へ、存在しないなら処理ステップ1409へ進む。
FIG. 14 is a flow chart showing the process of the compressed data selection circuit 304 of the third embodiment. In processing step 1401, it is checked whether the block attribute 1202 is registered in the selection history table 1203. The host interface circuit 105 passes the block attribute 1202 sent from the host processor 101 to the selection history table interface circuit 1301.
The selection history table interface circuit 1301 determines whether or not the entry of the block attribute 1202 already exists in the selection history table 1203.
Search for 3. If so, processing step 1402
If it does not exist, the process proceeds to processing step 1409.

【0059】処理ステップ1402において、選択履歴
テーブルインターフェース回路1301は選択履歴テーブル
1203から選択履歴1205を読み出す。選択履歴12
05は四つの選択履歴レコード1207から成る。各選択
履歴レコード1207は3ビットであり、選択履歴12
05は計12ビットである。選択履歴レコード1207の先
頭1ビットは該選択履歴レコード1207に選択結果が
記録されているか否かを示すフラグである。後の2ビッ
トには圧縮ヘッダ値が選択結果として記録される。選択
履歴1205の中で左に位置する選択履歴レコード12
07程新しい選択結果が記録されている。
In processing step 1402, the selection history table interface circuit 1301 reads the selection history 1205 from the selection history table 1203. Selection history 12
05 consists of four selection history records 1207. Each selection history record 1207 has 3 bits, and the selection history 12
05 has a total of 12 bits. The first 1 bit of the selection history record 1207 is a flag indicating whether or not the selection result is recorded in the selection history record 1207. The compressed header value is recorded as the selection result in the latter two bits. Selection history record 12 located on the left in the selection history 1205
As many as 07 selection results are recorded.

【0060】選択処理ステップ1403において、選択
履歴テーブルインターフェース回路1301は選択履歴
レコード1207のフラグを調べ現在記録されている選
択結果の数が4に満たないか否かチェックする。4に満
たないのであれば処理ステップ1410へ進み、4であ
れば処理ステップ1404へ進む。
In the selection processing step 1403, the selection history table interface circuit 1301 checks the flag of the selection history record 1207 to check whether the number of selection results currently recorded is less than 4. If it is less than 4, processing proceeds to processing step 1410, and if it is 4, processing proceeds to processing step 1404.

【0061】処理ステップ1404において、選択履歴
テーブルインターフェース回路1301は選択履歴テーブル
1203からカウンタ1206値を読み出す。カウンタ
1206は2ビットで、同一ブロック属性を持つデータ書き
込み毎に1増やされる。カウンタ1206が最大値3の
時に、実施例1あるいは2と同じ圧縮回路選択処理が行
われ、カウンタ1206値は0にリセットされる。カウ
ンタ1206が最大値3に満たないとき、選択履歴テー
ブルインターフェース回路1301は選択履歴1205
の内容に基づき圧縮・伸張モジュールを選択する。処理
ステップ1404において、カウンタ1206値が3に等し
いか否かを調べる。等しければ処理ステップ1410へ
進み、等しくなければ処理ステップ1406へ進む。
In processing step 1404, the selection history table interface circuit 1301 reads the counter 1206 value from the selection history table 1203. counter
1206 is 2 bits and is incremented by 1 each time data is written having the same block attribute. When the maximum value of the counter 1206 is 3, the same compression circuit selection process as in the first or second embodiment is performed, and the value of the counter 1206 is reset to 0. When the counter 1206 is less than the maximum value 3, the selection history table interface circuit 1301 determines the selection history 1205.
Select the compression / decompression module based on the contents of. In processing step 1404, it is checked whether the counter 1206 value is equal to three. If they are equal, the process proceeds to step 1410, and if they are not equal, the process proceeds to step 1406.

【0062】処理ステップ1406において、選択履歴
テーブルインターフェース回路1301は選択履歴1205
に記録された四つの圧縮ヘッダ値より、最も多く選択さ
れている圧縮・伸張モジュールを選ぶ。圧縮・伸張モジ
ュールが複数存在する場合、最も新しい一つを選ぶ。選
択履歴テーブルインターフェース回路1301は選択信
号送信回路310に対し選択された圧縮・伸張モジュー
ルに対応する圧縮ヘッダ値を送る。処理ステップ140
7において、選択履歴テーブルインターフェース回路1
301は読み出したカウンタ1206値に1加えた値を
選択履歴テーブル1203に書き込む。
At processing step 1406, the selection history table interface circuit 1301 selects the selection history 1205.
The compression / expansion module selected most is selected from the four compression header values recorded in. If there are multiple compression / decompression modules, select the newest one. The selection history table interface circuit 1301 sends the compression header value corresponding to the selected compression / decompression module to the selection signal transmission circuit 310. Processing step 140
7, the selection history table interface circuit 1
301 writes a value obtained by adding 1 to the read counter 1206 value to the selection history table 1203.

【0063】処理ステップ1408において選択信号送
信回路310は、処理ステップ408〜412あるいは1
108〜1112と同様の圧縮後データ転送処理を行
う。処理ステップ1409において、選択履歴テーブル
インターフェース回路1301は選択履歴テーブル12
03に新規エントリを設け、未登録のブロック属性1202
をエントリに登録する。四つの選択履歴レコード120
7のフラグはリセットしておく。
At processing step 1408, the selection signal transmitting circuit 310 causes the processing steps 408 to 412 or 1 to proceed.
The post-compression data transfer processing similar to 108 to 1112 is performed. In processing step 1409, the selection history table interface circuit 1301 causes the selection history table 12
03 with a new entry and unregistered block attribute 1202
To the entry. Four selection history records 120
The flag 7 is reset.

【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にリセットす
る。
In processing step 1410, the selection history table interface circuit 1301 instructs the selection signal transmitting circuit 310 to process steps 402 to 407 or 11.
Prompt to perform the same compression circuit selection processing as 02 to 1107. In processing step 1411, the selection history table interface circuit 1301 sets the compression header value corresponding to the selected compression / decompression module to the selection history 120.
This is recorded in the selection history record 1207 at the left end in the item 5. Specifically, the left 9 bits of the 12-bit selection history 1205 are shifted to the right by 3 bits, the compressed header value is recorded in the leftmost leftmost 3-bit selection history record 1207, and the flag is set. As a result, the selection history record 1207 in the selection history 1205 becomes new from the left. In processing step 1412, the selection history table interface circuit 1301 resets the counter 1206 value to zero.

【0065】実施例3では、選択履歴レコード1207
数を4、カウンタ1206の最大値を3としているが、
これらの構成が可変であることは明らかである。
In the third embodiment, the selection history record 1207
Although the number is 4 and the maximum value of the counter 1206 is 3,
Obviously, these configurations are variable.

【0066】(実施例4)図15に、本発明における実
施例4の構成図を示す。実施例4では、圧縮後データ保
存のために割り当てる空きデータブロックの長さを、圧
縮後データ長に合わせて変える。この結果、固定長デー
タブロックにした場合に発生するディスク上の無駄な領
域を無くすことができる。また各空きデータブロックは
ディスク上で物理的に連続するセクタから成るので、圧
縮後データの高速な読み書きが可能となる。
(Fourth Embodiment) FIG. 15 shows a block diagram of a fourth embodiment of the present invention. In the fourth embodiment, the length of the empty data block allocated for storing the compressed data is changed according to the compressed data length. As a result, it is possible to eliminate a wasteful area on the disk that occurs when a fixed-length data block is used. Further, since each empty data block is composed of physically consecutive sectors on the disk, the compressed data can be read and written at high speed.

【0067】空きデータブロック管理テーブル1510
では、異なる長さの空きデータブロック1511,15
12,1519を管理する。空きデータブロックリスト
1501は1セクタから成る空きデータブロック151
1のリストである。空きデータブロックリスト1502
はディスク上で互いに隣接する2セクタから成る空きデ
ータブロック1512のリストである。空きデータブロ
ック管理テーブル1510には同様の空きデータブロッ
クリストが9まである。圧縮回路選択部107は空きデ
ータブロック管理テーブル1510の状況を調べて、現
在利用可能な最小の空きデータブロックに圧縮後データ
が収まる圧縮・伸張モジュールを選択する。該圧縮・伸
張モジュールが複数存在すれば該圧縮・伸張モジュール
中、圧縮時間が最短の一つを選択する。該圧縮・伸張モ
ジュールが存在しなければ、現在利用可能な、より大き
な空きデータブロックに圧縮後データが収まる圧縮・伸
張モジュールを選択する。
Free data block management table 1510
Then, empty data blocks 1511, 15 of different lengths
12 and 1519 are managed. The free data block list 1501 is a free data block 151 consisting of one sector.
It is a list of 1. Free data block list 1502
Is a list of free data blocks 1512 consisting of two sectors adjacent to each other on the disk. The free data block management table 1510 has up to 9 similar free data block lists. The compression circuit selection unit 107 checks the status of the empty data block management table 1510 and selects the compression / expansion module in which the compressed data fits in the smallest empty data block currently available. If there are a plurality of compression / expansion modules, one of the compression / expansion modules having the shortest compression time is selected. If the compression / decompression module does not exist, the compression / decompression module that can store the compressed data in the larger available data block currently available is selected.

【0068】図16は、実施例4の圧縮回路選択部10
7の詳細を示した図である。圧縮回路選択部107は空
きデータブロック参照回路1601を具備する。空きデ
ータブロック参照回路1601は空きデータブロック管
理テーブル1510を検索し、現在の空きデータブロッ
クの状況を必要セクタ数比較回路311へ知らせる。
FIG. 16 shows the compression circuit selection unit 10 of the fourth embodiment.
It is a figure showing the details of No. 7. The compression circuit selection unit 107 includes an empty data block reference circuit 1601. The empty data block reference circuit 1601 searches the empty data block management table 1510 and notifies the required sector number comparison circuit 311 of the current status of the empty data block.

【0069】図17は、実施例4の圧縮データ選択回路
304の処理をフローチャートで表わした図である。圧
縮・伸張モジュール選択は実施例1と同じく圧縮回路選
択部303において行われる。処理ステップ1701で
は、処理ステップ402の処理と同じくセクタ数レジス
タ219,セクタ数レジスタ314,セクタ数レジスタ
319の内容を取得する。各セクタ数レジスタ値は、各
圧縮・伸張モジュールにおいて書き込みデータを圧縮・
保存した場合に必要なセクタ数を表す。処理ステップ1
702において、セクタ数iを1として処理ステップ1
703へ進む。
FIG. 17 is a flow chart showing the process of the compressed data selection circuit 304 of the fourth embodiment. The compression / decompression module selection is performed by the compression circuit selection unit 303 as in the first embodiment. In the processing step 1701, the contents of the sector number register 219, the sector number register 314, and the sector number register 319 are acquired as in the processing of the processing step 402. Each sector number register value compresses the write data in each compression / expansion module.
Indicates the number of sectors required when saved. Processing step 1
In step 702, the number of sectors i is set to 1 and processing step 1
Proceed to 703.

【0070】処理の流れがA′に達した場合、処理ステ
ップ1702へ戻りセクタ数iに1を加えた後、再び処
理ステップ1703へ進む。処理ステップ1702で
は、セクタ数iが8となるまで上記処理を繰り返す。セ
クタ数iが8の時に処理の流れがA′に達した場合、処
理ステップ1711へ進む。処理ステップ1703で
は、空きデータブロック参照回路1601はデータブロ
ック管理テーブル1510の空きデータブロックリスト
iを調べる。空きデータブロックリストiにセクタ数i
の空きデータブロックが存在するなら処理ステップ17
04へ進み、存在しないなら処理ステップ1702に戻
る。
When the processing flow reaches A ', the process returns to the processing step 1702, 1 is added to the number of sectors i, and then the processing proceeds to the processing step 1703 again. In processing step 1702, the above processing is repeated until the number of sectors i reaches 8. If the processing flow reaches A ′ when the number of sectors i is 8, the process proceeds to processing step 1711. In processing step 1703, the empty data block reference circuit 1601 checks the empty data block list i of the data block management table 1510. The number of sectors i in the free data block list i
If there is a free data block of, processing step 17
04, if not present, return to processing step 1702.

【0071】処理ステップ1704では、必要セクタ数
比較回路311は圧縮後データ保存に必要なセクタ数が
i以下となる圧縮・伸張モジュールの存在の有無を調べ
る。圧縮・伸張モジュールが存在するなら処理ステップ
1705へ進み、存在しないなら処理ステップ1702
に戻る。処理ステップ1705〜1710では、処理ス
テップ405〜410と同様の処理を行う。処理ステッ
プ1704の条件が満たされた圧縮・伸張モジュールの
中で処理時間が最短の回路を一つ選択し、データを圧縮
後キャッシュメモリ109へ転送する。処理ステップ1
711〜1712では、処理ステップ411〜412と同様
の処理を行い、データを圧縮せずにキャッシュメモリ1
09へ転送する。
In processing step 1704, the required sector number comparison circuit 311 checks whether or not there is a compression / expansion module in which the number of sectors required for storing the compressed data is i or less. If the compression / expansion module exists, the processing proceeds to processing step 1705, and if it does not exist, processing step 1702.
Return to. In processing steps 1705 to 1710, processing similar to processing steps 405 to 410 is performed. One circuit having the shortest processing time is selected from the compression / expansion modules satisfying the condition of processing step 1704, and the data is transferred to the cache memory 109 after compression. Processing step 1
In steps 711 to 1712, the same processing as that of processing steps 411 to 412 is performed, and the cache memory 1 is not compressed.
Transfer to 09.

【0072】[0072]

【発明の効果】データブロック数が最小となるデータ圧
縮法が複数存在したとき、その中から最速なデータ圧縮
法を選択するため、データ圧縮による容量削減効果を損
なうことなく圧縮処理速度を向上させることができる。
When there are a plurality of data compression methods that minimize the number of data blocks, the fastest data compression method is selected from among them, so that the compression processing speed is improved without impairing the capacity reduction effect of the data compression. be able to.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明による圧縮方式選択機能を具備した記憶
装置の実施例1のブロック図。
FIG. 1 is a block diagram of a first embodiment of a storage device having a compression method selection function according to the present invention.

【図2】実施例1のセクタ数推定回路のブロック図。FIG. 2 is a block diagram of a sector number estimation circuit according to the first embodiment.

【図3】実施例1の圧縮回路選択部のブロック図。FIG. 3 is a block diagram of a compression circuit selection unit according to the first embodiment.

【図4】実施例1の圧縮回路選択部の処理のフローチャ
ート。
FIG. 4 is a flowchart of processing of a compression circuit selection unit according to the first embodiment.

【図5】実施例1の圧縮後データ出力制御部のブロック
図。
FIG. 5 is a block diagram of a compressed data output control unit according to the first embodiment.

【図6】実施例1の圧縮後データ出力制御部の処理のフ
ローチャート。
FIG. 6 is a flowchart of processing of a post-compression data output control unit according to the first embodiment.

【図7】実施例1の伸張回路選択部のブロック図。FIG. 7 is a block diagram of a decompression circuit selection unit according to the first embodiment.

【図8】実施例1の書き込みデータの流れを示すブロッ
ク図。
FIG. 8 is a block diagram showing the flow of write data according to the first embodiment.

【図9】本発明による圧縮方式選択機能を具備した記憶
装置の実施例2のブロック図。
FIG. 9 is a block diagram of a second embodiment of a storage device having a compression method selection function according to the present invention.

【図10】実施例2の書き込みデータの流れを示すブロ
ック図。
FIG. 10 is a block diagram showing the flow of write data according to the second embodiment.

【図11】実施例2の圧縮回路選択部の処理のフローチ
ャート。
FIG. 11 is a flowchart of processing of a compression circuit selection unit according to the second embodiment.

【図12】本発明による圧縮方式選択機能を具備した記
憶装置の実施例3のブロック図。
FIG. 12 is a block diagram of a storage device having a compression method selection function according to a third embodiment of the present invention.

【図13】実施例3の圧縮回路選択部のブロック図。FIG. 13 is a block diagram of a compression circuit selection unit according to the third embodiment.

【図14】実施例3の圧縮回路選択部の処理のフローチ
ャート。
FIG. 14 is a flowchart of processing of a compression circuit selection unit according to the third embodiment.

【図15】本発明による圧縮方式選択機能を具備した記
憶装置の実施例4のブロック図。
FIG. 15 is a block diagram of a fourth embodiment of a storage device having a compression method selection function according to the present invention.

【図16】実施例4の圧縮回路選択部のブロック図。FIG. 16 is a block diagram of a compression circuit selection unit according to the fourth embodiment.

【図17】実施例4の圧縮回路選択部の処理のフローチ
ャート。
FIG. 17 is a flowchart of processing of a compression circuit selection unit according to the fourth embodiment.

【符号の説明】[Explanation of symbols]

101…ホストプロセッサ、102…記憶装置制御部、
103…記憶装置、105…ホストインターフェース回
路、107…圧縮回路選択部、108…伸張回路選択
部、109…キャッシュメモリ、112…圧縮回路、1
13…伸張回路、114…圧縮後データ出力制御部、1
15…セクタ数推定回路、116…タイマ。
101 ... Host processor, 102 ... Storage device control unit,
103 ... Storage device, 105 ... Host interface circuit, 107 ... Compression circuit selection unit, 108 ... Decompression circuit selection unit, 109 ... Cache memory, 112 ... Compression circuit, 1
13 ... Decompression circuit, 114 ... Compressed data output control unit, 1
15 ... Sector number estimation circuit, 116 ... Timer.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 高本 良史 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Yoshifumi Takamoto 1-280, Higashi Koigokubo, Kokubunji, Tokyo Inside the Central Research Laboratory, Hitachi, Ltd.

Claims (16)

【特許請求の範囲】[Claims] 【請求項1】固定長のデータブロック単位でデータ入出
力を行う記憶装置において、一つ以上の異なるデータ圧
縮・伸張機能を具備し、入力データ毎に圧縮後データの
保存に必要なデータブロック数が最小かつ同数となるデ
ータ圧縮・伸張機能を全て選択し、選択されたデータ圧
縮・伸張機能が唯一の場合は、前記データ圧縮・伸張機
能を用いて前記入力データを圧縮した後保存し、選択さ
れたデータ圧縮・伸張機能が複数の場合は、前記データ
圧縮・伸張機能の中で圧縮処理時間が最短のデータ圧縮
・伸張機能一つを用いて前記入力データを圧縮した後保
存することを特徴とする記憶装置。
1. A storage device for inputting and outputting data in fixed-length data block units, comprising one or more different data compression / decompression functions, and the number of data blocks required for storing compressed data for each input data. Select all the data compression / decompression functions that have the smallest number and the same number, and if the selected data compression / decompression function is the only one, compress the input data using the data compression / decompression function, save it, and then select When there are a plurality of data compression / decompression functions that have been compressed, the input data is compressed and stored using one of the data compression / decompression functions that has the shortest compression processing time. And storage device.
【請求項2】請求項1において、前記入力データを部分
的に数百バイト圧縮した結果から入力データ全体の圧縮
後データ長の推定が可能なとき、入力データの1/nが
数百バイトとなるような正定数nを設定し、入力データ
1/nだけの圧縮後データ長をデータブロック長の1/
nで割った商より、入力データ全体の圧縮後データの保
存に必要なデータブロック数を推定する記憶装置。
2. When the data length after compression of the entire input data can be estimated from the result of partially compressing the input data by several hundred bytes, 1 / n of the input data is several hundred bytes. Set a positive constant n such that the compressed data length of the input data 1 / n is 1 / n of the data block length.
A storage device that estimates the number of data blocks required to store the compressed data of the entire input data from the quotient divided by n.
【請求項3】請求項2において、データブロック数推定
の際、入力データ1/nだけの圧縮後データ長の除数を
データブロック長の1/nよりも数バイト少ない値とす
ることで、入力データ毎の圧縮率の変動を考慮したマー
ジンを加える記憶装置。
3. The method according to claim 2, wherein when the number of data blocks is estimated, the divisor of the compressed data length of only the input data 1 / n is set to a value smaller than 1 / n of the data block length by several bytes. A storage device that adds a margin in consideration of the variation of the compression rate for each data.
【請求項4】請求項1において、圧縮後データ保存に必
要なデータブロック数が圧縮されないデータの保存に必
要なデータブロック数以上の場合、圧縮されないデータ
を記憶装置に保存する記憶装置。
4. The storage device according to claim 1, wherein when the number of data blocks required for storing the compressed data is equal to or larger than the number of data blocks required for storing the uncompressed data, the uncompressed data is stored in the storage device.
【請求項5】固定長のデータブロック単位でデータ入出
力を行う記憶装置において、一つ以上の異なるデータ圧
縮・伸張機能を具備し、入力データ毎に圧縮後データの
保存に必要なデータブロック数が一定数以下となるデー
タ圧縮・伸張機能を全て選択し、選択されたデータ圧縮
・伸張機能が唯一の場合は、前記データ圧縮・伸張機能
を用いて前記入力データを圧縮した後保存し、選択され
たデータ圧縮・伸張機能が複数の場合は、前記データ圧
縮・伸張機能の中で圧縮処理時間が最短のデータ圧縮・
伸張機能一つを用いて前記入力データを圧縮した後保存
することを特徴とする記憶装置。
5. A storage device for inputting / outputting data in fixed-length data block units, comprising one or more different data compression / expansion functions, and the number of data blocks required to store compressed data for each input data. Select all data compression / decompression functions that are less than a certain number, and if the selected data compression / decompression function is the only one, compress the input data using the data compression / decompression function, save it, and then select If there are multiple data compression / decompression functions that have been compressed, the data compression / decompression function with the shortest compression processing time among the data compression / decompression functions
A storage device, which stores the input data after compressing the input data using one decompression function.
【請求項6】請求項5において、入力データを部分的に
数百バイト圧縮した結果から入力データ全体の圧縮後デ
ータ長の推定が可能なとき、入力データの1/nが数百
バイトとなるような正定数nを設定し、入力データ1/
nだけの圧縮後データ長をデータブロック長の1/nで
割った商より、入力データ全体の圧縮後データの保存に
必要なデータブロック数を推定する記憶装置。
6. When the data length after compression of the entire input data can be estimated from the result of partially compressing the input data by several hundred bytes, 1 / n of the input data becomes several hundred bytes. Set a positive constant n such as
A storage device that estimates the number of data blocks required to store the compressed data of the entire input data from the quotient obtained by dividing the compressed data length of n by 1 / n of the data block length.
【請求項7】請求項6において、データブロック数推定
の際、入力データ1/nだけの圧縮後データ長の除数を
データブロック長の1/nよりも数バイト少ない値とす
ることで、入力データ毎の圧縮率の変動を考慮したマー
ジンを加える記憶装置。
7. The method according to claim 6, wherein when estimating the number of data blocks, the divisor of the compressed data length of only the input data 1 / n is set to a value that is smaller than 1 / n of the data block length by several bytes. A storage device that adds a margin in consideration of the variation of the compression rate for each data.
【請求項8】請求項5において、圧縮後データ保存に必
要なデータブロック数が圧縮されないデータの保存に必
要なデータブロック数以上の場合、圧縮されないデータ
を記憶装置に保存する記憶装置。
8. The storage device according to claim 5, wherein when the number of data blocks required for storing the compressed data is equal to or larger than the number of data blocks required for storing the uncompressed data, the uncompressed data is stored in the storage device.
【請求項9】請求項1または5において、固定長のデー
タブロック単位でデータ入出力を行い、一つ以上の異な
るデータ圧縮・伸張機能と、圧縮・伸張機能の選択手段
を具備し、同一ファイル毎に過去の選択結果の履歴を記
録し、同一ファイルに対する書き込みが発生した場合、
選択結果の履歴より過去最も多く選ばれた圧縮・伸張機
能を選択する記憶装置。
9. The same file according to claim 1, wherein data input / output is performed in fixed-length data block units, one or more different data compression / decompression functions and compression / decompression function selection means are provided. A history of past selection results is recorded for each, and when writing to the same file occurs,
A storage device that selects the most selected compression / expansion function in the past from the history of selection results.
【請求項10】請求項9において、入力データを部分的
に数百バイト圧縮した結果から入力データ全体の圧縮後
データ長の推定が可能なとき、入力データの1/nが数
百バイトとなるような正定数nを設定し、入力データ1
/nだけの圧縮後データ長をデータブロック長の1/n
で割った商より、入力データ全体の圧縮後データの保存
に必要なデータブロック数を推定する記憶装置。
10. When the data length after compression of the entire input data can be estimated from the result of partially compressing the input data by several hundred bytes, 1 / n of the input data becomes several hundred bytes. Set a positive constant n such as
Compressed data length of / n is 1 / n of data block length
A storage device that estimates the number of data blocks required to store the compressed data of the entire input data from the quotient divided by.
【請求項11】請求項10において、データブロック数
推定の際、入力データ1/nだけの圧縮後データ長の除
数をデータブロック長の1/nよりも数バイト少ない値
とすることで、入力データ毎の圧縮率の変動を考慮した
マージンを加える記憶装置。
11. The method according to claim 10, wherein when estimating the number of data blocks, the divisor of the compressed data length of only the input data 1 / n is set to a value that is smaller than 1 / n of the data block length by several bytes. A storage device that adds a margin in consideration of the variation of the compression rate for each data.
【請求項12】請求項9において、圧縮後データ保存に
必要なデータブロック数が圧縮されないデータの保存に
必要なデータブロック数以上の場合、圧縮されないデー
タを記憶装置に保存する記憶装置。
12. The storage device according to claim 9, wherein when the number of data blocks required for storing the compressed data is equal to or larger than the number of data blocks required for storing the uncompressed data, the uncompressed data is stored in the storage device.
【請求項13】固定長のデータブロック単位でデータ入
出力を行う記憶装置において、一つ以上の異なるデータ
圧縮・伸張機能を具備し、異なる長さの空きデータブロ
ックの数とディスク上の存在位置を管理し、前記管理情
報に基づき現在利用可能な最小の空きデータブロックに
圧縮後データが収まるデータ圧縮・伸張機能を全て選択
し、選択されたデータ圧縮・伸張機能が唯一の場合は、
前記データ圧縮・伸張機能を用いて前記入力データを圧
縮した後保存し、選択されたデータ圧縮・伸張機能が複
数の場合は、前記データ圧縮・伸張機能の中で圧縮処理
時間が最短のデータ圧縮・伸張機能を用いて前記入力デ
ータを圧縮した後保存し、前記データ圧縮・伸張機能が
存在しなければ、順により大きな空きデータブロックに
圧縮後データが収まるデータ圧縮・伸張機能を選択する
ことを特徴とする記憶装置。
13. A storage device for inputting / outputting data in fixed-length data block units, comprising one or more different data compression / expansion functions, the number of empty data blocks of different lengths, and the existence position on the disk. And selecting all the data compression / decompression functions in which the data after compression fits in the smallest available data block currently available based on the management information, and if the selected data compression / decompression function is the only one,
The input data is compressed and saved using the data compression / expansion function, and when there are a plurality of selected data compression / expansion functions, the data compression with the shortest compression processing time among the data compression / expansion functions. After storing the input data after compressing it using the decompression function, and if the data compression / decompression function does not exist, select a data compression / decompression function that allows the compressed data to fit in a larger empty data block in order. Characteristic storage device.
【請求項14】請求項13において、入力データを部分
的に数百バイト圧縮した結果から入力データ全体の圧縮
後データ長の推定が可能なとき、入力データの1/nが
数百バイトとなるような正定数nを設定し、入力データ
1/nだけの圧縮後データ長をデータブロック長の1/
nで割った商より、入力データ全体の圧縮後データの保
存に必要なデータブロック数を推定する記憶装置。
14. When the data length after compression of the entire input data can be estimated from the result of partially compressing the input data by several hundred bytes, 1 / n of the input data becomes several hundred bytes. Set a positive constant n such that the compressed data length of the input data 1 / n is 1 / n of the data block length.
A storage device that estimates the number of data blocks required to store the compressed data of the entire input data from the quotient divided by n.
【請求項15】請求項14において、データブロック数
推定の際、入力データ1/nだけの圧縮後データ長の除
数をデータブロック長の1/nよりも数バイト少ない値
とすることで、入力データ毎の圧縮率の変動を考慮した
マージンを加える記憶装置。
15. The method according to claim 14, wherein, when estimating the number of data blocks, the divisor of the compressed data length of the input data 1 / n is set to a value smaller than 1 / n of the data block length by several bytes. A storage device that adds a margin in consideration of the variation of the compression rate for each data.
【請求項16】請求項13において、圧縮後データ保存
に必要なデータブロック数が圧縮されないデータの保存
に必要なデータブロック数以上の場合、圧縮されないデ
ータを記憶装置に保存する記憶装置。
16. The storage device according to claim 13, wherein when the number of data blocks required for storing the compressed data is equal to or larger than the number of data blocks required for storing the uncompressed data, the uncompressed data is stored in the storage device.
JP6001911A 1994-01-13 1994-01-13 Storage device Pending JPH07210324A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6001911A JPH07210324A (en) 1994-01-13 1994-01-13 Storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6001911A JPH07210324A (en) 1994-01-13 1994-01-13 Storage device

Publications (1)

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

Family

ID=11514771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6001911A Pending JPH07210324A (en) 1994-01-13 1994-01-13 Storage device

Country Status (1)

Country Link
JP (1) JPH07210324A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002501241A (en) * 1998-01-07 2002-01-15 マイクロソフト コーポレイション A system that delivers data content over a low bit rate transmission channel.
JP2003524983A (en) * 2000-02-25 2003-08-19 フィジィカル オプティクス コーポレーション Method and apparatus for optimized lossless compression using multiple coders
JP2005293224A (en) * 2004-03-31 2005-10-20 Hitachi Computer Peripherals Co Ltd Backup system and backup method
JP2011049764A (en) * 2009-08-26 2011-03-10 Toshiba Corp Data compression and decompression device
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 (en) * 2016-11-08 2019-06-24 株式会社日立製作所 Storage device and control method of storage device
GB2584567A (en) * 2018-08-09 2020-12-09 Memoscale As Data compression
JP2022516000A (en) * 2018-12-26 2022-02-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Compression of data stored in the cache memory in the cache memory hierarchy

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002501241A (en) * 1998-01-07 2002-01-15 マイクロソフト コーポレイション A system that delivers data content over a low bit rate transmission channel.
JP2003524983A (en) * 2000-02-25 2003-08-19 フィジィカル オプティクス コーポレーション Method and apparatus for optimized lossless compression using multiple coders
JP2005293224A (en) * 2004-03-31 2005-10-20 Hitachi Computer Peripherals Co Ltd Backup system and backup method
JP2011049764A (en) * 2009-08-26 2011-03-10 Toshiba Corp Data compression and decompression device
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 (en) * 2016-11-08 2019-06-24 株式会社日立製作所 Storage device and control method of storage device
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 (en) * 2018-12-26 2022-02-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Compression of data stored in the cache memory in the cache memory hierarchy

Similar Documents

Publication Publication Date Title
US10628060B2 (en) Smart storage management based on dynamic logic capacity for the storage
US8364929B2 (en) Enabling spanning for a storage device
US5237460A (en) Storage of compressed data on random access storage devices
US5237675A (en) Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor
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
JP2915568B2 (en) Adaptive data compression system for tape drive systems.
US9792350B2 (en) Real-time classification of data into data compression domains
US9252807B2 (en) Efficient one-pass cache-aware compression
JP6692448B2 (en) Storage device and storage device control method
CN103516369A (en) Method and system for self-adaptation data compression and decompression and storage device
JP2017511521A (en) Flash memory compression
JPH07200247A (en) Equipment and method for data compression
US8903781B2 (en) Real-time selection of compression operations
WO2014188528A1 (en) Memory device, computer system, and memory device control method
CN115599757A (en) Data compression method, device, computing device and storage system
JP6685334B2 (en) Storage device
US20140114936A1 (en) Method for generating data in storage system having compression function
US9378214B2 (en) Method and system for hash key memory reduction
JPH07210324A (en) Storage device
US20080222500A1 (en) Data relay apparatus, data relay method and data relay integrated circuit
CN117827775A (en) Data compression method, device, computing equipment and storage system
CN113590021B (en) Storage system
US20230021108A1 (en) File storage
EP0490239A2 (en) Storage of compressed data on random access storage devices