CN113590021A - 存储系统 - Google Patents
存储系统 Download PDFInfo
- Publication number
- CN113590021A CN113590021A CN202110191201.4A CN202110191201A CN113590021A CN 113590021 A CN113590021 A CN 113590021A CN 202110191201 A CN202110191201 A CN 202110191201A CN 113590021 A CN113590021 A CN 113590021A
- Authority
- CN
- China
- Prior art keywords
- compression
- data
- compressed
- compression method
- unit
- 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
Links
- 238000007906 compression Methods 0.000 claims abstract description 626
- 230000006835 compression Effects 0.000 claims abstract description 624
- 238000000034 method Methods 0.000 claims abstract description 144
- 238000013144 data compression Methods 0.000 claims abstract description 87
- 230000006837 decompression Effects 0.000 claims description 146
- 238000004364 calculation method Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 description 22
- 238000013403 standard screening design Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
Abstract
本发明的目的在于,在存储系统中压缩数据进行保存时,抑制对存储系统的读性能的影响。存储系统内的数据压缩系统利用第一压缩方法对数据进行压缩,而生成压缩数据,判断上述压缩数据的压缩率是否好于预先决定的基准,在判断为上述压缩率好于所述基准的情况下,输出利用第一压缩方法和第二压缩方法中压缩率相对较好的压缩方法压缩数据而得的数据,在判断为上述压缩率与所述基准相同或较差的情况下,输出利用第一压缩方法和第二压缩方法中压缩率相对较差的压缩方法压缩数据而得的数据。
Description
技术领域
本发明涉及存储系统的数据压缩。
背景技术
在存储系统中,对数据进行压缩的技术因降低系统的每单位容量的成本(比特成本),而作为重要的技术受到瞩目。特别是取代现有的用作存储器件的硬盘驱动器(HardDisk Drive:HDD),以高速性优异的快闪存储器为介质的半导体驱动器(Solid StateDrive:SSD)近年来被广泛使用。数据压缩技术作为降低搭载SSD的存储系统的比特成本的技术大受瞩目。
另一方面,存储系统的保存数据的性能也就是将数据写入存储系统的写性能很重要,将所保存的数据取出的性能也就是将数据从存储系统读出的读性能也很重要。如果在保存数据时进行压缩,则当然会影响写性能。之后,由于是以压缩的状态保存数据,所以在数据的取出时需要将压缩数据复原(解压缩),读性能也受到影响。
在压缩数据的计算方法(算法)中,考虑了各种各样的变化方式。有Lempel-Ziv(LZ)法、霍夫曼码等可逆压缩法和图像及声音中使用的JPEG、MPEG等非可逆压缩法。在存储系统中,因为要求正确地取出与所保存的数据相同的数据,所以使用可逆压缩法。
在这些压缩方法中,依赖于数据和算法,压缩后的数据的大小相对于原始的数据的大小的比例,即压缩率(压缩后数据相对于原数据的大小的比例)存在各种变化。对于同一数据,根据各个算法的不同而压缩率不同,在同一算法下数据不同时压缩率也不同。
此外,除压缩率以外,压缩所需的计算处理量和解压缩所需的计算处理量也发生变化。由此,赋予利用CPU进行的软件处理、或利用硬件进行压缩和解压缩的电路等计算处理资源时,各个压缩所需的时间(压缩时间)和解压缩所需的时间(解压缩时间)也发生变化。对存储系统的写性能的影响依赖于该压缩时间,对读性能的影响依赖于解压缩时间。
在专利文献1中,公开有在将具有二种压缩算法的压缩电路放置在存储系统使用的SSD内的情况下,依据SSD内的快闪存储器的访问性能,切换压缩电路中具有的压缩算法的技术。此外,在专利文献2中,公开有准备多个压缩算法,按每个数据块根据过去的履历预测解压缩时间而切换压缩算法的技术。根据这些技术,能够切换压缩算法以提高存储系统的读性能、写性能。
进一步,在专利文献3中,公开有通过将数据暂且按某个压缩算法压缩、执行写命令而保存在存储系统后,尝试利用其它压缩算法进行压缩,根据基于压缩率的加权分数进一步执行写命令的技术。此外,在专利文献4中,还公开有在求取基于输入数据的能够进行选择的所有压缩算法的压缩率的基础上,根据存储系统中能够利用的运算量和容量,根据压缩率和解压缩速度选择压缩算法的技术。
但是,在专利文献1和2的技术中,根据性能的不同,压缩算法改变,压缩率改变。在为压缩率高的数据时,也可能存在压缩算法改变,压缩率降低的情况。此外,在专利文献1的技术中,基于压缩速度(压缩时间)和快闪存储器的访问性能来选择压缩算法,因此不能考虑到对存储系统的读性能产生大的影响的解压缩时间。
进一步,在专利文献2的技术中,由于基于依据过去履历的解压缩性能(解压缩时间)预测,所以在当前的数据为与过去履历不同的解压缩时间时,不能够应对。此外,在专利文献3的技术中,是与解压缩时间无关地、将暂且按某个压缩算法压缩的数据按其它压缩算法重新压缩,因此,仍然不能考虑对存储系统的读性能产生大的影响的解压缩时间。
在专利文献4的技术中,对于能够选择压缩率、解压缩速度的所有压缩算法进行求取,通过还考虑能够在存储系统中利用的运算量和容量等复杂的处理选择压缩算法,由此选择处理的系统开销大。
此外,在专利文献4中,未公开利用压缩率与解压缩速度之间的关系降低该选择处理的系统开销的技术。关于压缩率和解压缩速度,为了加快解压缩速度而选择压缩率差的(数值大的)算法,如果不需要加快解压缩速度,则选择压缩率好的(数值小的)算法。当要加快解压缩速度时(当要缩短解压缩时间时),选择压缩率差的(数值大的)算法,因此压缩率一定变差。
现有技术文献
专利文献
专利文献1:美国专利申请公开第2019/0205035号
专利文献2:美国专利第10346043号
专利文献3:美国专利第9952771号
专利文献4:美国专利申请公开第2017/0235774号
发明内容
发明所要解决的问题
在存储系统的性能中,考察影响读性能的解压缩时间和决定该时间的解压缩性能时,一般在存储系统内,从SSD等存储器件读出所需的压缩数据的速度依赖于SSD的个数、存储系统内的SSD访问方式,因此能够期待不依赖于压缩数据、压缩率的一定值的速度。
在按解压缩后数据的每单位时间的数据量看解压缩性能的情况下,如果压缩率好(数值小)则解压缩后的数据的大小与压缩率相应地扩大,因此解压缩性能高。由此,压缩率好的数据的解压缩性能高,能够提高系统的读性能。
根据以上说明,在准备多个压缩算法进行选择的情况下,压缩率好的(数值小的)压缩算法,解压缩时间多会变大,但只要压缩率足够好(如果数值充分小),就也存在按解压缩数据看的解压缩速度(解压缩性能)保持得较高的可能性。但是,在压缩率差(数值大)时,难以将按解压缩数据看的解压缩速度(解压缩性能)保持得高,存在对存储系统的读性能造成影响的情况。
本发明是鉴于以上的观点完成的,其目的在于,在存储系统中压缩数据进行保存时,抑制对存储系统的读性能的影响。
用于解决问题的技术方案
对本申请中公开的发明中,具有代表性的内容的概要简单说明如下。存储系统包括:与主机进行通信的前端接口;和数据压缩系统,其在将所述前端接口从所述主机接收到的数据保存至存储器件之前进行压缩。所述数据压缩系统进行下述处理:利用第一压缩方法对所述数据进行压缩,而生成压缩数据,判断基于所述第一压缩方法的压缩数据的压缩率是否好于预先决定的基准,在判断为基于所述第一压缩方法的压缩数据的压缩率好于所述基准的情况下,输出利用所述第一压缩方法和第二压缩方法中压缩率相对较好的压缩方法压缩所述数据而得的数据,在判断为基于所述第一压缩方法的压缩数据的压缩率与所述基准相同或较差的情况下,输出利用所述第一压缩方法和第二压缩方法中压缩率相对较差的压缩方法压缩所述数据而得的数据。
本发明的另一个方式的数据压缩系统包括:能够利用第一压缩方法和第二压缩方法压缩数据的压缩部;判断利用所述第一压缩方法压缩了的数据的压缩率是否好于预先决定的基准的判断部;和将利用所述压缩部压缩了的数据输出的输出部。在所述判断部判断为利用所述第一压缩方法压缩了的数据的压缩率好于所述基准的情况下,所述输出部输出利用所述第一压缩方法和第二压缩方法中压缩率相对较好的压缩方法压缩所述数据而得的数据。在所述判断部判断为利用所述第一压缩方法压缩了的数据的压缩率与所述基准相同或较差的情况下,所述输出部输出利用所述第一压缩方法和第二压缩方法中压缩率相对较差的压缩方法压缩所述数据而得的数据。
发明效果
根据本发明的一个方式,能够在存储系统中压缩数据并进行保存时,抑制对存储系统的读性能的影响。
附图说明
图1是进行实施例1的数据的压缩的数据压缩系统的例子。
图2是对进行实施例1的数据的压缩而得的结果的压缩数据解压缩的、数据压缩系统中的进行数据解压缩的部分。
图3是进行实施例1的数据的压缩的流程图的例子。
图4是进行实施例1的数据的解压缩的流程图的例子。
图5是进行实施例2的数据的压缩的数据压缩系统的例子。
图6是进行实施例2的数据的压缩的流程图的例子。
图7是进行实施例3的数据的压缩的数据压缩系统的例子。
图8是进行实施例3的数据的压缩的流程图的例子。
图9是应用数据压缩系统的存储系统的整体结构的例子。
图10是应用数据压缩系统的存储系统的整体结构的其它例子。
图11是对LZ4、GZIP、LZMA三个算法,观测改变压缩大小时的压缩率的变化的例子。
具体实施方式
以下,参照附图,对本发明的几个实施例进行说明。以下,对存储系统中的数据压缩和解压缩进行说明。以下说明的数据压缩系统能够利用二个数据压缩方法进行数据压缩,并将利用所选择的压缩方法压缩后的数据输出。
在按解压缩后数据的每单位时间的数据量看解压缩性能时,如果压缩率好(数值小),则解压缩后的数据的大小与压缩率相应地扩大,因此解压缩性能提高。由此,压缩率好的数据的解压缩性能高,能够提高存储系统的读性能。
在准备多个压缩算法进行选择的情况下,压缩率好的(数值小的)压缩算法,解压缩时间多会变大,但只要压缩率足够好(如果数值足够小),按解压缩数据看的解压缩速度(解压缩性能)能够保持得较高。但是,在压缩率差(数值大)时,难以将按解压缩数据看的解压缩速度(解压缩性能)保持得较高,有对存储系统的读性能造成影响的情况。
在利用该压缩率与解压缩时间的关系,为了减少对读性能的影响,从多个压缩方法选择使用的压缩方法时,对于数据,如果压缩率的大小和解压缩时间的根据算法不同产生的差异是必然确定的,则只要测量基于某一个算法的压缩方法的压缩率,就能够决定选择的压缩方法。由此,在这样的情况下,还能够削減选择处理的系统开销。
作为另一个例子,有某一个压缩方法分为前半部分和后半部分的情况。相对于仅应用前半部分(第一压缩方法)的压缩率和解压缩时间,应用前半部分和后半部分双方(第二压缩方法)的压缩率好,解压缩时间大。
这样的压缩算法的例子之一为Lempel-Ziv-Markov chain-Algorithm(LZMA链算法)。LZMA的前半部分为改良型的LZ法,后半部分通过熵编码构成。关于压缩率,利用前半部分的LZ法得到整体的5~8成左右的效果。另一方面,就解压缩时间而言,后半部分的熵编码的解码的计算量多,需要时间。
由此,当观测前半部分的LZ法的压缩率时,如果压缩率好(如果数值小)则即使进行后半部分的熵编码解,压缩速度也由于压缩率而增大,因此对系统的读性能没有大的影响。但是,如果前半部分的LZ法的压缩率差(如果数值大),则不能抵消后半部分的熵编码的解码所需的时间,存在系统的读性能下降的风险。
此外,作为另一个例子,如果针对某一个算法,使压缩的数据的原始的大小较大,对大的数据进行压缩,则压缩率变好(数值变小)。例如,图11是关于LZ4、GZIP、LZMA三个算法,改变压缩的大小而观测压缩率的变化的例子。其任何算法中通过扩大压缩大小,压缩率均变好(数值变小)。
与此相对,如果使压缩的大小变大,则一般而言返回原始的数据的解压缩时间也变大。由此,如果按大的大小进行压缩而压缩率足够好(如果数值足够小),则一定程度上能够实现解压缩时间的抵消,不过如果压缩率差(如果数值大)则解压缩时间的抵消难以实现,存在对系统的读性能造成影响的情况。
基于上述的观点,以下说明的数据压缩系统利用第一压缩方法对数据进行压缩,判断其压缩率是否好于预先决定的基准。在判断为利用第一压缩方法的压缩率好于基准的情况下,数据压缩系统输出在第一压缩方法和第二压缩方法中利用压缩率相对较好的压缩方法压缩后的数据。在判断为利用上述第一压缩方法的压缩率与基准相同或较差的情况下,数据压缩系统输出在第一压缩方法和第二压缩方法中利用压缩率相对较差的压缩方法压缩数据后的数据。
在压缩率好的情况下,即使存在解压缩时间的增大也能够抑制影响,因此不需要降低压缩率,在压缩率差的情况下也能够抑制解压缩时间的增大。进一步,能够考虑对存储系统的读性能有大幅影响的解压缩时间。此外,因为基于当前的数据的压缩率进行判断,所以即使为与过去的履历不同的解压缩时间也能够应对。
实施例1
使用图1~图4,说明实施例1。图1是关于实施例1的、数据压缩系统的结构的例子。在图1中,数据压缩系统包括第一压缩部101、第二压缩部102、压缩率判断部103、数据选择部104和6种信号线111~116。第一压缩部101和第二压缩部102包含于数据压缩系统的压缩部,数据选择部104是输出数据的输出部。
第一压缩部101使用第一压缩算法对通过输入信号线111从该数据压缩系统外部输入的数据进行压缩,将压缩后的数据向信号线112输出。
这些信号线111和112既可以为按一系列信号模式传输数据的串行传输线,也可以为并行地传输多个数据比特的并行传输线。此外,既可以通过利用图1中未图示的边带的控制信号线传输控制信号的传输定时(timing,时间,时机)的控制信号来进行传输控制,也可以利用相同的信号线传输数据和控制信号。进一步,数据的传送,既可以将数据分割为多个数据包,按每个数据包传输,也可以按一定的定时占用信号线,按任意的定时传输数据。
进一步,第一压缩部101对信号线113输出从信号线111输入的数据的利用第一压缩算法的压缩率(压缩后的数据的大小/压缩前的数据的大小)。该信号线113既可以为串行传输线,也可以为并行传输线。表示压缩率的信号也可以不是数字信号,而是按电平等传输的模拟信号。此外,也可以设置图1中未图示的、与信号传输控制相关的边带信号线,还可以利用同一信号线传输压缩率的数据和控制信号。
第二压缩部102利用与第一压缩算法不同的第二压缩算法,进一步压缩向信号线112输出的由第一压缩部101压缩后的数据,并向信号线114输出。
压缩率判断部103使用由信号线113输入的第一压缩部101的压缩率的信息,利用选择信号线115选择对数据选择部104输出的压缩数据。具体而言,在第一压缩部101的压缩率好于预先决定的阈值(以数值表示,压缩数据的大小/压缩前的数据的大小较小)的情况下,压缩率判断部103选择从信号线114传送的由第二压缩部102压缩的压缩数据。另一方面,在第一压缩部101的压缩率与预先决定的阈值一致或比其差(以数值表示,压缩数据的大小/压缩前的数据的大小较大)的情况下,压缩率判断部103输出从信号线112传送的第一压缩部101的压缩数据。
数据选择部104利用选择信号线115选择由压缩率判断部103指定的数据,向输出信号线116输出。
这些信号线114、116与信号线111、112同样,既可以为串行传输线,也可以为并行传输线。用于进行信号的传输控制的控制信号既可以通过图1中未图示的边带控制信号线传输,也可以将数据和控制信号通过相同的信号线传输。
进一步,数据既可以按每个数据包传送,也可以按一定的定时占用信号线,任意地传输数据。此外,选择信号线115既可以以电平表示选择结果,也可以按一定的定时以脉冲状的信号表示选择结果。进一步,既可以使用图1中未图示的控制线,从压缩率判断部103向数据选择部104指示进行数据选择的定时(timing,时间,时机)及向信号线116输出数据的定时,也可以在数据选择部104的内部生成控制选择数据的定时及输出数据的定时的信号。
例如,第一压缩部101也可以响应来自压缩率判断部103的指示,将压缩数据传送至第二压缩部102。压缩率判断部103在第一压缩部101的压缩率好于预先决定的阈值的情况下,向第一压缩部101指示将压缩数据传送至第二压缩部102。由此,能够省去在第一压缩部101的压缩率差的情况下不必要的由第二压缩部102进行的压缩处理。根据图1那样的结构,在通过对数据进行压缩,由第一压缩部101压缩的压缩率好(数值小)的情况下,即使进一步利用第二压缩部102压缩数据,在数据的解压缩时复原数据也与第一压缩部101的压缩率相应地增大,因此能够使将数据复原的时间相对较短。
此外,在由第一压缩部101压缩的压缩率差(数值大)的情况下,能够输出省略了由第二压缩部102进行的数据的压缩的数据,因此只要在数据的解压缩时仅进行对由第一压缩部101进行的数据压缩的解压缩即可,能够缩短将数据复原的时间。
图2是能够在图1的数据压缩系统中进一步添加使用的、将压缩后的数据复原成原始数据的数据解压缩系统的例子。在图2中,该数据解压缩部包括第一解压缩部203、第二解压缩部201、压缩数据判断部204、数据选择部202和5种信号线211~215。第一解压缩部203按第一解压缩算法将数据解压缩。
第一解压缩部203将按使用图1的第一压缩部101的第一压缩算法压缩的数据复原。第二解压缩部201按与第一解压缩算法不同的第二解压缩算法将数据解压缩。第二解压缩部201将按使用图1的第二压缩部102的第二压缩算法压缩后的数据解压缩。数据选择部202判断输入至数据解压缩部的压缩数据是由图1的第一压缩部101压缩的数据,还是由图1的第二压缩部102压缩的数据。
第二解压缩部201对通过输入信号线211输入的压缩数据,将按图1的第二压缩部102使用的第二压缩算法压缩后的数据,使用第二解压缩算法进行解压缩,将解压缩后的数据向信号线213输出。
向输入信号线211输入的压缩数据,可以是直接输入图1所示的数据压缩系统的压缩数据输出信号线116的压缩数据输出。或者,还考虑在该数据压缩系统的内部设置图1、图2中未图示的压缩数据存储部,将输出至图1的信号线116的压缩数据在该压缩数据存储部暂时存储积累后再向信号线211输入。由此,例如能够比较图2所示的数据解压缩系统输出的解压缩数据与压缩前的原来的数据是否一致,由此能够检查出图1所示的数据压缩系统是否正确地压缩了数据。进一步,还考虑将压缩数据一度向该数据压缩系统的外部输出,然后再从该数据压缩系统外部再次向输入信号线211输入。
压缩数据判断部204判断输入至输入信号线211的压缩数据是由图1的第一压缩部101压缩的数据还是由第二压缩部102压缩的数据,将判断结果向数据选择信号线212输出。
压缩数据判断部204例如基于压缩数据中包含的数据,判断是在第一压缩部101使用的第一压缩算法的压缩数据还是在第二压缩部102使用的第二压缩算法的压缩数据。判断的结果向数据选择信号线212输出。例如,在利用第一算法和/或第二算法的压缩数据的格式总包含规定的数据(值)的情况下,该规定的数据能够识别压缩算法。
在另一个例子中,也可以在压缩数据中添加表示第一压缩部101的压缩数据或第二压缩部102的压缩数据的标记信息。该标记信息既可以在图1中在第一压缩部101和第二压缩部102中添加至各自的压缩数据输出中,也可以由数据选择部104添加。此外,数据选择部104也可以通过图1、图2中未图示的标记信息信号线,向压缩数据判断部204传送标记信息。
进一步,在该数据压缩系统中设置有图1、图2中未图示的压缩数据存储部的情况下,也可以将标记信息添加至该压缩数据,并与该压缩数据同样地进行存储积累。在将压缩数据一度向该数据压缩系统外部输出,然后再从该数据压缩系统外部向信号线211输入压缩数据的情况下,也可以在该压缩数据添加标记信息,将该标记信息与该压缩数据一起向该数据压缩系统外部暂时输出,然后从该数据压缩系统外部通过信号线211将该标记信息与该压缩数据一起输入。
压缩数据判断部204在具有这样的标记信息的情况下,仅接收该标记信息即可,而不需要接收压缩数据本身。进一步,也可以在压缩数据整体的数据形式中使得能够识别压缩方法,而判断是第一压缩部101的压缩数据还是第二压缩部102的压缩数据。
例如,第二解压缩部201也可以响应来自压缩数据判断部204的指示,对所输入的压缩数据进行解压缩。压缩数据判断部204在压缩数据被第二压缩部102压缩的情况下,向第二解压缩部201指示对压缩数据进行解压缩。由此,能够进行正确的解压缩,并且省略不需要的解压缩处理。
数据选择部202按照从压缩数据判断部204输出至数据选择信号线212的判断结果,选择信号线211或信号线213。具体而言,在判断为输入至信号线211的压缩数据是由第一压缩部101压缩的数据的情况下,选择输入至信号线211的压缩数据。在判断为输入至信号线211的压缩数据是由第二压缩部102压缩的数据的情况下,选择由第二解压缩部201解压缩、输出至信号线213的解压缩数据。数据选择部202将所选择的数据向数据选择输出信号线214输出。
数据选择部202进一步在由第二解压缩部201对数据进行解压缩需要时间的情况下,也可以包含图2中未图示的输入数据缓冲器等。数据选择部202也可以将输入至输入信号线211的压缩数据以及由压缩数据判断部204判断的、输出至数据选择信号线212的判断结果暂时存储积累于缓冲器,等待来自第二解压缩部201的解压缩数据被输出至信号线213。
第一解压缩部203使用将根据第一压缩部101使用的第一压缩算法压缩后的数据复原的第一解压缩算法,对输出至数据选择输出信号线214的数据进行解压缩,将解压缩后的数据向输出信号线215输出。
这些信号线211、213、214、215与信号线111、112、114、116一样,既可以为串行传输线,也可以为并行传输线。用于信号的传输控制的控制信号既可以通过图2中未图示的边带的控制信号线传输,也可以将数据与控制信号通过相同的信号线传输。
进一步,数据既可以按每个数据包传送,也可以按一定的定时占用信号线而任意地传输数据。此外,数据选择信号线212与选择信号线115一样,既可以以电平表示选择结果,也可以按一定的定时以脉冲状的信号表示选择结果。进一步,也可以使用图2中未图示的控制线,从压缩数据判断部204,向数据选择部202指示进行数据选择的定时及向信号线214输出数据的定时。还可以在数据选择部202的内部生成控制选择数据的定时及输出数据的定时的信号。
如上所述,如果在数据压缩系统中添加图2那样的数据解压缩系统,则在图1那样的结构中由第一压缩部101压缩的压缩率好(数值小)的情况下,能够将由第一压缩部101和第二压缩部102压缩后的数据正确地解压缩。此外,在由第一压缩部101压缩的压缩率差(数值大)的情况下,能够将省略了由第二压缩部102进行的数据压缩的仅由第一压缩部101得到的压缩数据,正确地解压缩。
图3表示对实施例1的数据进行压缩的方法的流程图。在图3中,在步骤301,第一压缩部101进行压缩的数据的读入。接着,在步骤302,第一压缩部101使用第一压缩算法对在步骤301读入的输入数据进行压缩。在步骤303,第一压缩部101计算在步骤302压缩输入数据的压缩率。
在步骤304,压缩率判断部103判断在步骤303计算出的压缩率是否比预先决定的阈值小(压缩率好)。在比预先决定的阈值小(压缩率好)的情况下(304:是(YES)),流程进一步前进至步骤306。第二压缩部102进一步按第二压缩算法对在步骤302按第一压缩算法压缩了的压缩数据进行压缩。进一步,在步骤307,数据选择部104输出按第二压缩算法压缩后的数据。
在步骤304,在步骤303计算出的压缩率比预先决定的阈值大(压缩率差)的情况下(304:否(NO)),流程前进至步骤305。在步骤305,数据选择部104输出由第一压缩算法压缩了的数据。
如上所述,在本实施例的数据压缩系统中,所述第一压缩方法利用第一压缩算法压缩数据,第二压缩方法在利用第一压缩算法压缩数据后,进一步利用第二压缩算法进行压缩。
在通过以上那样的压缩数据的方法,按第一压缩算法压缩了的压缩率好(数值小)的情况下,即使进一步利用第二压缩算法压缩数据,在数据的解压缩时复原数据也与第一压缩算法的压缩率相应地增大,因此能够相对缩短将数据复原的时间。
此外,在按第一压缩算法压缩的压缩率差(数值大)的情况下,因为输出省略了利用第二压缩算法进行的数据压缩的压缩数据,所以在数据的解压缩时仅对利用第一压缩算法进行的数据压缩进行解压缩即可,能够缩短将数据复原的时间。此外,能够仅按第一压缩算法的压缩率判断是仅利用第一压缩算法进行压缩,还是不仅利用第一压缩算法而且使用第二压缩算法进行压缩。不需要为了进行判断而求取第二压缩算法的压缩率。
图4是对利用图3那样的压缩数据的方法压缩后的数据进行复原的数据的解压缩方法的流程图。在图4中,首先在步骤401,压缩数据判断部204读入压缩数据。接着,在步骤402,压缩数据判断部204判断所读入的压缩数据是在图3的步骤302压缩的第一压缩算法的压缩数据,还是在步骤306压缩的第二压缩算法的压缩数据。
步骤402例如基于压缩数据中包含的数据,判断是在图3的步骤302使用的利用第一压缩算法的压缩数据,还是在步骤306使用的利用第二压缩算法的压缩数据。例如,在利用第一算法和/或第二算法的压缩数据的格式总包含规定的数据(值)的情况下,该规定的数据能够识别压缩算法。
或者,还能够通过参照表示第一压缩部101的压缩数据或者第二压缩部102的压缩数据的标记信息,确定压缩数据的压缩方法。数据解压缩系统基于包括以压缩数据中包含的数据、新追加的标记信息、或者压缩数据整体的数据形式表示的情况的、对压缩后的数据赋予的识别信息,确定是通过第一压缩方法和第二压缩方法中的哪个方法压缩的。
当判断为所接收的数据是在步骤306被压缩的利用第二压缩算法的压缩数据时(402:第二压缩),在步骤403,第二解压缩部201对所输入的利用第二压缩算法的压缩数据进行解压缩,复原按第一压缩算法压缩了的数据。在步骤404,第一解压缩部203对复原的按第一压缩算法压缩的数据进行解压缩,复原压缩前的原始的数据。
当判断为是在步骤306被压缩的利用第二压缩算法的压缩数据时(402:第一压缩),跳过步骤403。在步骤404,第一解压缩部203对跳过利用第二解压缩部201解压缩的压缩数据进行解压缩,复原压缩前的原始的数据。
通过以上的对数据解压缩的方法,利用图3的压缩数据的方法按第一压缩算法压缩的压缩率好(数值小)的情况下,能够将利用第一压缩算法和第二压缩算法压缩了的数据正确地解压缩。进一步,在按第一压缩算法压缩的压缩率差(数值大)的情况下,能够将不进行利用第二压缩算法的压缩而通过第一压缩算法压缩了的数据正确地解压缩。
上述数据压缩系统中的功能部,具体而言,压缩部、压缩率判断部、解压缩部、压缩数据判断部等,能够通过依据程序动作的1个以上的处理器和/或以进行规定的运算的方式构成的逻辑电路来安现。这在其它实施例中也是同样的。
实施例2
接着,根据图5、图6,说明本发明的实施例2。图5是实施例2的数据压缩系统的结构的例子。在图5中,数据压缩系统包括每数据长度A压缩部501、每数据长度B压缩部502、压缩率判断部503、数据选择部504和6种信号线511~516。每数据长度A压缩部501和每数据长度B压缩部502包含于数据压缩系统的数据压缩部,数据选择部504包含于输出数据的输出部。
每数据长度A压缩部501将从输入信号线511输入的数据,按预先决定的每数据长度A分割而生成多个数据段,对各数据段分别利用预先决定的压缩算法进行压缩。压缩结果的压缩数据向输出信号线512输出。进一步,每数据长度A压缩部501经由信号线513向压缩率判断部503传送压缩结果的压缩率的信息。
每数据长度B压缩部502将从输入信号线511输入的数据,按预先决定的每数据长度B分割而生成多个数据段,数据长度B比数据长度A短,对各数据段分别使用与每数据长度A压缩部501相同的压缩算法进行压缩。由此,能够期待每数据长度B压缩部502的压缩数据的解压缩时间,在每数据长度A压缩部501的压缩率差(数值大)的情况下,比每数据长度A压缩部501的压缩数据的解压缩时间短。
压缩率判断部503经由信号线513接收每数据长度A压缩部501的压缩结果的压缩率的信息,如果每数据长度A压缩部501的压缩结果的压缩率好于预先决定的阈值(如果数值小),则以选择每数据长度A压缩部501的压缩数据的方式,向选择信号线515输出对数据选择部504的选择指示信号。
只要每数据长度A压缩部501的压缩结果的压缩率与预先决定的阈值一致或比其差(如果数值大),则压缩率判断部503以选择每数据长度B压缩部502的压缩数据的方式,向选择信号线515输出对数据选择部504的选择指示信号。数据选择部504依据来自压缩率判断部503的对数据选择信号线515输出的选择指示信号,选择每数据长度A压缩部501的向输出信号线512输出的压缩数据、或者每数据长度B压缩部502的向输出信号线514输出的压缩数据,并向输出信号线516输出。
通过如上所述地选择压缩方法,能够提高数据压缩率,并且降低对读性能的影响。另外,在每数据长度A压缩部501的压缩率好的情况下,每数据长度B压缩部502的压缩数据的解压缩时间也可以比每数据长度A压缩部501的压缩数据的解压缩时间短。能够在对读性能的影响为允许的小范围中实现高的数据压缩率。
例如,每数据长度B压缩部502也可以响应来自压缩率判断部503的指示,对所输入的数据进行压缩。压缩率判断部503在每数据长度A压缩部501的压缩率与预先决定的阈值一致或较差的情况下,向每数据长度B压缩部502指示压缩。由此,能够省去在第一压缩部101的压缩率好的情况下不需要的每数据长度B压缩部502的压缩处理。
信号线511、512、514、516与实施例1的图1的信号线111、112等一样,既可以为串行传输线,也可以为并行传输线。用于进行信号的传输控制的控制信号既可以通过图5中未图示的边带控制信号线传输,也可以将数据与控制信号通过相同的信号线传输。进一步,数据既可以按每个数据包传送,也可以按一定的定时占用信号线而任意地传输数据。
此外,每数据长度A压缩部501的压缩结果的压缩率的信息被输出的信号线513与实施例1中的图1的信号线113一样,既可以为串行传输线,也可以为并行传输线。或者也可以不是数字信号,而是以电平等传输的模拟信号。
此外,也可以另外设置与信号传输控制相关的图5中未图示的边带信号线,还可以利用同一信号线传输压缩率的信息和控制信号。进一步,数据选择信号线515与实施例1的图1的选择信号线115一样,既可以以电平表示选择结果,也可以按一定的定时以脉冲状的信号表示选择结果。
进一步,也可以使用图5中未图示的控制线,从压缩率判断部503向数据选择部504指示进行压缩数据的选择的定时及向信号线516输出压缩数据的定时。也可以在数据选择部504的内部生成控制选择压缩数据的定时及输出压缩数据的定时的信号。
如上所述,实施例2中,如果在每数据长度A压缩部501进行的以长的数据长度A进行压缩时压缩率好(如果数值小),则解压缩时间与压缩率好的程度相应地缩短,因此采用以数据长度A进行了压缩的结果。另一方面,如果在以长的数据长度A压缩时压缩率差(如果数值大),则采用以短的数据长度B进行了压缩的结果。由此,能够避免以差的(数值大的)压缩率压缩长的数据长度而引起的解压缩时间的增大。
进一步,一般已知,在利用同一算法进行压缩时,以长的数据长度A压缩的压缩率与以短的数据长度B压缩的压缩率具有以长的数据长度A压缩的压缩率较好的(数值小的)性质。在图11中,对三个算法LZ4、GZIP、LZMA表示其性质。于是,能够利用该压缩算法的一般性质,仅以长的数据长度A求取压缩率,决定是以长的数据长度A进行压缩还是以短的数据长度B进行压缩。不需要为了决定以哪个数据长度进行压缩而求取以短的数据长度B压缩的压缩率。
图6表示实施例2的数据压缩的方法的流程图。在图6中,在步骤601,每数据长度A压缩部501进行压缩的数据的读入。接着,在步骤602,每数据长度A压缩部501按预先决定的数据长度A,使用预先决定的压缩算法进行压缩。在步骤603,每数据长度A压缩部501在步骤602计算用于压缩输入数据的压缩率。
在步骤604,压缩率判断部503判断在步骤603计算出的压缩率是否比预先决定的阈值小(压缩率好)。在为预先决定的阈值以上(压缩率差)的情况下(604:否),流程前进至步骤606。在步骤606,每数据长度B压缩部502按预先决定的数据长度B利用与在步骤602使用的压缩算法相同的压缩算法进行压缩,数据长度B比在步骤602使用的数据长度A短。进一步,在步骤607,数据选择部504将在步骤606压缩后的数据输出。
在步骤604,在步骤603计算出的压缩率比预先决定的阈值小(压缩率好)的情况下(604:是),流程前进至步骤605。在步骤602,数据选择部504将按每数据长度A压缩后的数据输出。
上述数据压缩方法中,如果以长的数据长度A进行压缩时的压缩率好(如果数值小),则进行解压缩时解压缩时间与压缩率好的程度相应地缩短,因此采用以数据长度A压缩的结果。另一方面,如果在以长的数据长度A压缩时压缩率差(如果数值大),则采用以短的数据长度B压缩的结果。由此,能够避免以差的(数值大的)压缩率压缩长的数据长度而引起的解压缩时间的增大。
像这样,数据压缩系统中的第一压缩方法利用预先设定的压缩算法,按预先设定的每第一数据长度(数据长度A)压缩所述数据,第二压缩方法利用相同的压缩算法,按比第一数据长度短的预先决定的每第二数据长度(数据长度B)压缩所述数据。另外,压缩数据的解压缩部(未图示)能够不依赖于压缩数据长度(数据长度A或数据长度B),利用同样的方法,对压缩后的各数据段进行解压缩,复原成原始的数据段。
实施例3
接着,根据图7、图8,说明实施例3。图7是实施例3的数据压缩系统的结构的例子。在图7中,数据压缩系统包括压缩a压缩部701、压缩b压缩部704、压缩率计算部702、解压缩时间计算、判断部703、数据选择部705、6种信号线711~716。压缩a压缩部701和压缩b压缩部704包含于数据压缩系统的压缩部,压缩率计算部702和解压缩时间计算、判断部703包含于判断部,数据选择部705是输出数据的输出部。
压缩a压缩部701使用预先决定的压缩算法a压缩数据。压缩b压缩部704使用预先决定的,已知与压缩算法a相比压缩率较差(数值大)的、解压缩的时间短的压缩算法b进行压缩。压缩率计算部702接收压缩a压缩部701的压缩结果,计算其压缩率。解压缩时间计算、判断部703基于由压缩率计算部702计算出的压缩率计算解压缩时间,判断比预先决定的阈值(基准时间)长还是短。数据选择部705选择输出的压缩数据。
压缩a压缩部701利用预先决定的压缩算法a对从输入信号线711输入的数据进行压缩,将压缩结果的压缩数据向输出信号线712输出。压缩率计算部702接收输出到信号线712的压缩数据,计算其压缩率。计算压缩率得到的结果经由信号线713向解压缩时间计算、判断部703传送。
在压缩率的计算中,需要原始的输入数据的大小。例如,压缩部701既可以使用图7中未图示的其它信号线向压缩率计算部702传送原始的输入数据的大小,也可以使用与压缩数据相同的信号线712传送。或者,压缩a压缩部701也可以将输入数据按预先决定的数据长度分割而压缩,压缩率计算部702使用其数据长度的值来计算压缩率。压缩率计算部702也可以为了进行压缩率的计算而接收压缩数据自身。为了进行压缩率的计算只要知道压缩数据的大小即可,因此压缩a压缩部701也可以提取压缩数据的大小的信息,仅将所提取的压缩数据的大小的信息传送至压缩率计算部702,而不传送压缩数据自身。
压缩b压缩部704使用预先决定的已知与压缩算法a相比压缩率差(数值大)、解压缩的时间短的压缩算法b,压缩输入至信号线711的数据。
解压缩时间计算、判断部703经由信号线713接收在压缩率计算部702计算出的压缩率的信息,基于所接收的压缩率的信息,计算由压缩a压缩部701压缩的数据的解压缩时间。而且,将计算出的数据的解压缩时间与预先决定的阈值进行比较。
在计算出的解压缩时间比预先决定的阈值短的情况下,解压缩时间计算、判断部703以选择压缩a压缩部701的压缩数据的方式,在信号线714对数据选择部705输出数据选择信号。在计算出的解压缩时间比预先决定的阈值长的情况下,解压缩时间计算、判断部703以选择压缩b压缩部704的压缩数据的方式,在信号线714对数据选择部705输出数据选择信号。
数据选择部705按照从解压缩时间计算、判断部703经信号线714输入的数据选择信号,选择由压缩a压缩部701压缩后的压缩数据或由压缩b压缩部704压缩后的压缩数据的任一者,向输出信号线716输出。
如上所述,本实施例的数据压缩系统中,第一压缩方法利用压缩算法a压缩数据,第二压缩方法利用压缩算法b压缩数据。压缩算法b与压缩算法a相比压缩率较差,与压缩算法a的压缩数据的解压缩时间相比解压缩时间较短。此外,数据压缩系统基于压缩率推测解压缩时间,将该解压缩时间与阈值进行比较,由此判断压缩率是否超过规定的基准。
以上,信号线711、712、714、716与实施例1的图1的信号线111、112等一样,既可以为串行传输线,也可以为并行传输线。用于信号的传输控制的控制信号既可以通过图7中未图示的边带控制信号线传输,也可以将数据与控制信号通过相同的信号线传输。
进一步,数据既可以按每个数据包传送,也可以按一定的定时占用信号线,任意地传输数据。传输压缩率计算部702的压缩率的信息的信号线713与实施例1中的图1的信号线113相同,既可以为串行传输线,也可以为并行传输线。或者也可以不是数字信号,而是以电平等传输的模拟信号。此外,既可以设置关于图7中未图示的信号传输控制的边带信号线,也可以利用同一信号线传输压缩率的信息和控制信号。
进一步,传输数据选择信号的信号线714与实施例1的图1的选择信号线115相同,可以以电平表示选择结果,也可以按一定的定时以脉冲状的信号表示选择结果。进一步,也可以使用图7中未图示的控制线,解压缩时间计算、判断部703向数据选择部705指示进行压缩数据的选择的定时及向信号线716输出压缩数据的定时。也可以在数据选择部705的内部生成控制选择压缩数据的定时及输出压缩数据的定时的信号。
如上所述,对于压缩a压缩部701按压缩算法a压缩的结果,压缩率计算部702计算压缩率。进一步,基于压缩率的计算结果,解压缩时间计算、判断部703进行解压缩时间的计算而进行判断。由此,能够确认在对按压缩算法a压缩的结果进行解压缩时解压缩时间比预先决定的阈值短的情况,于是输出由压缩a压缩部701压缩的结果的压缩数据。
此外,在压缩a压缩部701按压缩算法a压缩了的情况下,已知解压缩时间为预先决定的阈值以上时,压缩系统采用由按压缩算法b进行压缩的压缩b压缩部704压缩的结果,已知按压缩算法b压缩时与按压缩算法a压缩时相比解压缩时间较短。由此,能够避免解压缩时间的增大。
进一步,关于使用压缩算法a的压缩结果还是使用压缩算法b的压缩结果,仅计算按压缩算法a压缩的结果的压缩率和基于该压缩率的解压缩时间即可。对于压缩算法b,因为已知与压缩算法a相比压缩率差(数值大)、解压缩时间短,所以不需要为了判断采用按哪个压缩算法压缩的结果而求取其压缩率和解压缩时间。
图8表示实施例3的压缩数据的方法的流程图。在图8中,在步骤801,压缩a压缩部701进行压缩的数据的读入。接着,在步骤802,压缩a压缩部701使用预先决定的压缩算法a进行压缩。在步骤803,压缩率计算部702计算在步骤802按压缩算法a压缩输入数据的压缩率。在步骤804,解压缩时间计算、判断部703基于在步骤803计算出的按压缩算法a压缩输入数据的压缩利率,计算解压缩所需的时间。
在步骤805,解压缩时间计算、判断部703判断在步骤804计算出的解压缩时间是否比预先决定的阈值短。在比预先决定的阈值短的情况下(805:是),流程前进至步骤806。在步骤806,数据选择部705输出在步骤802压缩a压缩部701压缩了的数据。
在步骤805,在步骤804计算出的解压缩时间比预先决定的阈值长的情况下(805:否),流程前进至步骤807。压缩b压缩部704按预先决定的、与在步骤802使用的算法a相比压缩率差(数值大)、解压缩时间短的压缩算法b,压缩在步骤801读入的输入数据。在步骤808,数据选择部705输出在步骤807压缩b压缩部704压缩了的数据。
以上那样的数据压缩方法,对在步骤802按压缩算法a压缩的结果,在步骤803计算压缩率,基于压缩率的计算结果在步骤804进行解压缩时间的计算而进行判断。由此,在将按压缩算法a压缩的结果解压缩时,能够确认解压缩时间比预先决定的阈值短的情况,输出压缩的结果的压缩数据。
此外,上述的压缩方法,在将在步骤802按压缩算法a压缩的结果解压缩时,已知解压缩时间比预先决定的阈值长的情况下,采用在步骤807,按与按压缩算法a压缩时相比解压缩时间较短的压缩算法b压缩的结果。由此,能够避免解压缩时间的增大。
实施例4
图9是应用上述实施例的数据压缩系统的存储系统的整体结构的例子。在图9中,存储系统1001包括进行数据传输和数据处理的存储装置控制器1002和驱动器箱体(驱动器盒)1003。存储装置控制器1002包括前端接口(I/F)部1011、CPU1012、后端I/F部1014和上述实施例的数据压缩系统1010。在图9的结构例中,数据压缩系统1010安装于存储装置控制器1002。
前端I/F部1011从未图示的主机计算机接收对存储系统1001的请求并发送结果。CPU1012控制整个存储系统1001。后端I/F部1014与驱动器箱体1003连接。
驱动器箱体1003包括与存储装置控制器1002连接的驱动器I/F部1021、非易失性半导体存储装置SSD(Solid State Drive:固态硬盘)1022A~G和收纳它们的箱体结构。SSD是在驱动器箱体1003搭载的存储器件的例子。
图9图示了7个SSD1022A~1022G,但SSD的数量并不限定于7个,而可以为任意的数量。图9仅图示一个驱动器I/F部1021,但也可以安装2个驱动器I/F部,将具有2个端口的各SSD1022A~1022G分别连接至2个驱动器I/F部。进一步,也可以设置2个以上驱动器箱体1003。
存储装置控制器1002的数量也不限定于1个,而可以为2个以上。存储装置控制器1002的内部构成要素各自的数量,并不限定于图9那样的1个,也可以分别安装2个以上的前端I/F部1011、CPU1012、存储器1013、后端I/F部1014和数据压缩系统1010。
进一步,图9将存储装置控制器1002和驱动器箱体1003分开图示,但也可以不将它们分开。此时,安装有多个驱动器箱体1003时,至多将1个驱动器箱体1003与存储装置控制器1002融合,剩余的驱动器箱体1003以与图9图示的结构相同的方式与存储装置控制器1002连接即可。
数据压缩系统1010也可以通过CPU1012,一定从存储器1013取得压缩数据,将解压缩数据保存在存储器1013。或者,数据压缩系统1010也可以通过前端I/F部1011,将从主机计算机接收的数据不保存在存储器1013,而直接接受并压缩。
数据压缩系统1010也可以通过后端I/F部1014,将压缩后的数据不保存在存储器1013,而直接保存在SSD1022A~1022G,还可以从SSD1022不保存在存储器1013而直接取出压缩数据并进行解压缩。数据压缩系统1010也可以将解压缩了的数据不保存在存储器1013,而通过前端I/F部1011直接送回主机计算机。
图10是应用上述实施例的数据压缩系统的存储系统的整体结构的另一个例子。在图10中,数据压缩系统1120不处于存储装置控制器1102,而处于驱动器箱体1103的内部。即,存储装置控制器1102包括前端I/F部1111、CPU1112、存储器1113、后端I/F部1114。驱动器箱体1103包括驱动器I/F部1121、数据压缩系统1120、SSD1122A~1122G和收纳它们的外壳。
在图10所示的结构中,存储装置控制器1102、驱动器箱体1103、前端I/F部1111、CPU1112、存储器1113、后端I/F部1114、驱动器I/F部1121、数据压缩系统1120各自的数量至多为一个,SSD1122A~1122G至多为7个。但是,这些构成要素各自的数没有限定,与图9所示的结构同样是任意的。此外,可以将存储装置控制器1102与驱动器箱体1103不特意分开,也可以融合,这与图9的结构例也相同。
在图10所示那样将数据压缩系统1120安装在驱动器箱体1103的内部的结构中,从主机计算机接收的数据在存储装置控制器1102被实施规定的处理后,通过驱动器I/F部1121直接转送至数据压缩系统1120。数据压缩系统1120对数据进行压缩后,直接保存在SSD1122A~1122G。
此外,对在SSD1122A~1122G保存压缩后的数据得到的压缩数据进行解压缩时,不将压缩数据从SSD1122A~1122G一度送向存储装置控制器1102,而是数据压缩系统1120从SSD1122A~1122G接收压缩数据。数据压缩系统1120将压缩数据解压缩后,从数据压缩系统1120通过驱动器I/F部1121,直接向存储装置控制器1102转送解压缩数据。
另外,本发明并不限定于上述的实施例,包括各种各样的变形例。例如,上述的实施例为了将本发明说明得容易明白而进行了详细的说明,但是并不一定限定于包括所说明的所有结构。此外,能够将一个实施例的结构的一部分替换成另一个实施例的结构,此外,还能够在一个实施例的结构中加入另一个实施例的结构。此外,能够对各实施例的结构的一部分进行其它结构的添加、删除、替换。
此外,上述的各结构、功能、处理部等例如也可以通过以集成电路进行设计等而利用硬件实现其一部分或全部。此外,上述各结构、功能等也可以通过处理器对实现各个功能的程序进行解释、执行而以软件实现。实现各功能的程序、图表、文件等信息能够存储于存储器、硬盘、SSD(Solid State Drive:固态硬盘)等记录装置或IC卡、SD卡等记录介质。
此外,对于控制线和信息线,仅展示在说明上所需的部分,并不一定展示产品上的所有的控制线和信息线。实际上也可以认为几乎所有的结构相互连接。
附图标记的说明
101……第一压缩部
102……第二压缩部
103……压缩率判断部
104、202、504、705……数据选择部
201……第二解压缩部
203……第一解压缩部
204……压缩数据判断部
501……每数据长度A压缩部
502……每数据长度B压缩部
503……压缩率判断部
701……压缩a压缩部
702……压缩率计算部
703……解压缩时间计算、判断部
704……压缩b压缩部。
Claims (11)
1.一种存储系统,其特征在于,包括:
与主机进行通信的前端接口;和
数据压缩系统,其在将所述前端接口从所述主机接收到的数据保存至存储器件之前进行压缩,
所述数据压缩系统进行下述处理:
利用第一压缩方法对所述数据进行压缩,而生成压缩数据,
判断基于所述第一压缩方法的压缩数据的压缩率是否好于预先决定的基准,
在判断为基于所述第一压缩方法的压缩数据的压缩率好于所述基准的情况下,输出利用所述第一压缩方法和第二压缩方法中压缩率相对较好的压缩方法压缩所述数据而得的数据,
在判断为基于所述第一压缩方法的压缩数据的压缩率与所述基准相同或较差的情况下,输出利用所述第一压缩方法和第二压缩方法中压缩率相对较差的压缩方法压缩所述数据而得的数据。
2.如权利要求1所述的存储系统,其特征在于:
所述第一压缩方法利用第一压缩算法压缩数据,
所述第二压缩方法在利用所述第一压缩算法压缩数据之后,进一步利用第二压缩算法进行压缩。
3.如权利要求1所述的存储系统,其特征在于:
所述数据压缩系统还进行下述处理:
对所述压缩后的数据赋予识别信息,该识别信息用于识别输出的是利用所述第一压缩方法和所述第二压缩方法中的哪个方法压缩了的数据,
在将所述压缩数据解压缩时,基于赋予所述压缩数据的识别信息,根据与所述第一压缩方法或所述第二压缩方法中任一者的压缩方法对应的解压缩方法,对所述压缩的数据进行解压缩。
4.如权利要求1所述的存储系统,其特征在于:
所述第一压缩方法利用预先设定的压缩算法,按预先设定的每第一数据长度来压缩所述数据,
所述第二压缩方法利用所述预先设定的压缩算法,按预先决定的每第二数据长度来压缩所述数据,所述第二数据长度比所述第一数据长度短。
5.如权利要求1所述的存储系统,其特征在于:
所述第二压缩方法的压缩算法与所述第一压缩方法的压缩算法相比压缩率较差,且与基于所述第一压缩方法的压缩算法的压缩数据的解压缩时间相比,解压缩时间较短。
6.如权利要求1所述的存储系统,其特征在于:
所述数据压缩系统对基于所述第一压缩方法的压缩数据的压缩率与预先设定的阈值进行比较,
在所述压缩率好于所述阈值的情况下,判断所述压缩率好于所述基准,
在所述压缩率与所述阈值相同或较差的情况下,判断所述压缩率与所述基准相同或较差。
7.如权利要求1所述的存储系统,其特征在于:
所述数据压缩系统根据基于所述第一压缩方法的压缩数据的压缩率,利用预先决定的计算方法计算所述压缩数据的解压缩时间,
对所述解压缩时间与预先设定的阈值进行比较,
在所述解压缩时间小于所述阈值的情况下,判断为所述压缩率好于所述基准,
在所述解压缩时间为所述阈值以上的情况下,判断为所述压缩率与所述基准相同或较差。
8.如权利要求1所述的存储系统,其特征在于,包括:
存储器件;和
在所述主机与所述存储器件之间进行数据传输和数据处理的存储装置控制器,
所述前端接口和所述数据压缩系统安装在所述存储装置控制器内。
9.如权利要求1所述的存储系统,其特征在于,包括:
含有多个存储器件的驱动器箱体;和
存储装置控制器,其含有所述前端接口,在所述主机与所述驱动器箱体之间进行数据传输和数据处理,
所述数据压缩系统安装在所述驱动器箱体内。
10.一种数据压缩系统,其特征在于,包括:
能够利用第一压缩方法和第二压缩方法压缩数据的压缩部;
判断利用所述第一压缩方法压缩了的数据的压缩率是否好于预先决定的基准的判断部;和
将利用所述压缩部压缩了的数据输出的输出部,
在所述判断部判断为利用所述第一压缩方法压缩了的数据的压缩率好于所述基准的情况下,所述输出部输出利用所述第一压缩方法和第二压缩方法中压缩率相对较好的压缩方法压缩所述数据而得的数据,
在所述判断部判断为利用所述第一压缩方法压缩了的数据的压缩率与所述基准相同或较差的情况下,所述输出部输出利用所述第一压缩方法和第二压缩方法中压缩率相对较差的压缩方法压缩所述数据而得的数据。
11.一种在存储系统中压缩数据的方法,该方法的特征在于:
利用第一压缩方法对所述数据进行压缩,而生成压缩数据,
判断利用所述第一压缩方法压缩了的压缩数据的压缩率是否好于预先决定的基准,
在判断为利用所述第一压缩方法压缩了的压缩数据的压缩率好于所述基准的情况下,输出利用所述第一压缩方法和第二压缩方法中压缩率相对较好的压缩方法压缩所述数据而得的数据,
在判断为利用所述第一压缩方法压缩了的压缩数据的压缩率与所述基准相同或较差的情况下,输出利用所述第一压缩方法和第二压缩方法中压缩率相对较差的压缩方法压缩所述数据而得的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-080747 | 2020-04-30 | ||
JP2020080747A JP7390251B2 (ja) | 2020-04-30 | 2020-04-30 | ストレージシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590021A true CN113590021A (zh) | 2021-11-02 |
Family
ID=78238089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110191201.4A Pending CN113590021A (zh) | 2020-04-30 | 2021-02-20 | 存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11275505B2 (zh) |
JP (1) | JP7390251B2 (zh) |
CN (1) | CN113590021A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579050B (zh) * | 2022-02-14 | 2024-04-02 | 阿里巴巴(中国)有限公司 | 处理压缩数据的方法以及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020101367A1 (en) * | 1999-01-29 | 2002-08-01 | Interactive Silicon, Inc. | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms |
JP2004173181A (ja) * | 2002-11-22 | 2004-06-17 | Minolta Co Ltd | 画像処理装置 |
CN105094709A (zh) * | 2015-08-27 | 2015-11-25 | 浪潮电子信息产业股份有限公司 | 一种固态盘存储系统的动态数据压缩方法 |
JP2016149786A (ja) * | 2016-03-22 | 2016-08-18 | 富士通株式会社 | 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム |
US20190121549A1 (en) * | 2017-10-20 | 2019-04-25 | Hitachi, Ltd. | Storage device, data management method, and data management program |
CN109683825A (zh) * | 2018-12-24 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种存储系统在线数据压缩方法、装置及设备 |
CN109739444A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 存储系统压缩数据的方法、装置、设备及可读存储介质 |
CN109921801A (zh) * | 2019-03-01 | 2019-06-21 | 迅雷计算机(深圳)有限公司 | 一种数据压缩及解压缩方法、装置、系统及数据处理系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0234038A (ja) * | 1988-07-23 | 1990-02-05 | Hitachi Ltd | データ圧縮装置 |
JP3580982B2 (ja) * | 1997-04-30 | 2004-10-27 | パイオニア株式会社 | 情報記録方法及び装置 |
US7719443B1 (en) | 2008-06-27 | 2010-05-18 | Emc Corporation | Compressing data in a continuous data protection environment |
JP5712609B2 (ja) * | 2010-12-24 | 2015-05-07 | 富士通株式会社 | データ処理装置及びデータ記録方法 |
CN103413335B (zh) * | 2013-07-23 | 2016-01-27 | 沈阳东软医疗系统有限公司 | 数据压缩的方法及装置 |
US10346043B2 (en) | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US9952771B1 (en) | 2016-03-31 | 2018-04-24 | EMC IP Holding Company LLC | Method and system for choosing an optimal compression algorithm |
WO2018087795A1 (ja) * | 2016-11-08 | 2018-05-17 | 株式会社日立製作所 | フラッシュメモリモジュール及びフラッシュメモリモジュールの制御方法 |
-
2020
- 2020-04-30 JP JP2020080747A patent/JP7390251B2/ja active Active
- 2020-09-15 US US17/021,187 patent/US11275505B2/en active Active
-
2021
- 2021-02-20 CN CN202110191201.4A patent/CN113590021A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020101367A1 (en) * | 1999-01-29 | 2002-08-01 | Interactive Silicon, Inc. | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms |
JP2004173181A (ja) * | 2002-11-22 | 2004-06-17 | Minolta Co Ltd | 画像処理装置 |
CN105094709A (zh) * | 2015-08-27 | 2015-11-25 | 浪潮电子信息产业股份有限公司 | 一种固态盘存储系统的动态数据压缩方法 |
JP2016149786A (ja) * | 2016-03-22 | 2016-08-18 | 富士通株式会社 | 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム |
US20190121549A1 (en) * | 2017-10-20 | 2019-04-25 | Hitachi, Ltd. | Storage device, data management method, and data management program |
CN109697025A (zh) * | 2017-10-20 | 2019-04-30 | 株式会社日立制作所 | 存储装置、数据管理方法和数据管理程序的存储介质 |
CN109683825A (zh) * | 2018-12-24 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种存储系统在线数据压缩方法、装置及设备 |
CN109739444A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 存储系统压缩数据的方法、装置、设备及可读存储介质 |
CN109921801A (zh) * | 2019-03-01 | 2019-06-21 | 迅雷计算机(深圳)有限公司 | 一种数据压缩及解压缩方法、装置、系统及数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2021174472A (ja) | 2021-11-01 |
JP7390251B2 (ja) | 2023-12-01 |
US20210342069A1 (en) | 2021-11-04 |
US11275505B2 (en) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101468336B1 (ko) | 데이터 압축률 예측 기법에 기반한 데이터 분산 저장 방법, 이를 이용한 저장 장치 및 시스템 | |
US9319489B2 (en) | Nearstore compression of data in a storage system | |
US6577254B2 (en) | Data compression/decompression system | |
US7924183B2 (en) | Method and system for reducing required storage during decompression of a compressed file | |
US8125364B2 (en) | Data compression/decompression method | |
US11218163B2 (en) | Memory system and information processing system | |
US9374593B2 (en) | Data decompressing device and non-transitory computer readable medium for detecting whether initial portion of compressed image data corresponds to specific pattern | |
EP3889795A1 (en) | Data management system, data management method, and recording medium with data management program recorded thereon | |
US10193579B2 (en) | Storage control device, storage system, and storage control method | |
CN113590021A (zh) | 存储系统 | |
US11829600B2 (en) | Storage system and data processing method using data compression | |
US20230152972A1 (en) | Storage system and data processing method in storage system | |
JPH07210324A (ja) | 記憶装置 | |
US11561738B2 (en) | Memory system | |
EP4280465A1 (en) | Data recording apparatus, data recording method, and data recording program | |
US20190065124A1 (en) | Information processing apparatus, memory controller, and control method for information processing apparatus | |
US10432216B1 (en) | Configurable compression circuit | |
KR101418540B1 (ko) | 압축 해제 방법 및 장치 | |
JPH08180193A (ja) | データ圧縮装置 | |
CN112632021A (zh) | 一种网络文件系统的读写方法、系统、设备及介质 | |
JP2022070104A (ja) | データ圧縮装置及びデータ圧縮方法 | |
CN112083875A (zh) | 用于在存储系统中减少读取端口并加速解压缩的方法 | |
KR20200032648A (ko) | 화상 신장장치, 그 제어방법 및 컴퓨터 프로그램 | |
JPH0774652A (ja) | データ圧縮装置 | |
KR20080045842A (ko) | 이미지 압축 및 복원을 위한 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |