CN108804021B - 数据压缩装置及其数据压缩方法 - Google Patents

数据压缩装置及其数据压缩方法 Download PDF

Info

Publication number
CN108804021B
CN108804021B CN201710485512.5A CN201710485512A CN108804021B CN 108804021 B CN108804021 B CN 108804021B CN 201710485512 A CN201710485512 A CN 201710485512A CN 108804021 B CN108804021 B CN 108804021B
Authority
CN
China
Prior art keywords
data
compressed
processing unit
size
block
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.)
Active
Application number
CN201710485512.5A
Other languages
English (en)
Other versions
CN108804021A (zh
Inventor
张安男
曹世强
李宝鉴
农至刚
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.)
Shanghai Chuanyuan Information Technology Co ltd
Original Assignee
Shanghai Chuanyuan Information Technology Co 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 Shanghai Chuanyuan Information Technology Co ltd filed Critical Shanghai Chuanyuan Information Technology Co ltd
Publication of CN108804021A publication Critical patent/CN108804021A/zh
Application granted granted Critical
Publication of CN108804021B publication Critical patent/CN108804021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3053Block-companding PCM systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提出一种数据压缩装置及其数据压缩方法。所述数据压缩方法包含经由处理单元根据缓存单元中的待压缩数据产生压缩数据,处理单元将压缩数据储存于硬盘的多个实体区块的其中之一,硬盘的每一实体区块具有相同的区块大小,处理单元比对压缩数据的大小与区块大小,当压缩数据的大小小于区块大小时,处理单元将冗余数据储存于实体区块,其中冗余数据的大小与压缩数据的大小的总和等于区块大小。

Description

数据压缩装置及其数据压缩方法
技术领域
本发明是关于一种数据压缩装置及其数据压缩方法。
背景技术
在已知的压缩技术中,不同的压缩文件之间具有不同的文件大小,将此些不同大小的压缩文件储存于磁盘中会产生储存空间破碎(Fragmentation)的问题。举例来说,以压缩文件的大小为100K为例,当磁盘中的剩余储存空间仅包含由70K的储存空间及80K的储存空间形成的不连续储存空间时,虽然总体的剩余储存空间还有150K,但100K的压缩文件并无法储存于破碎的不连续空间中,造成储存空间破碎。
再者,在另一些已知的压缩技术中,压缩文件可被分割为多个较小的分割文件后分别储存在零碎的储存空间中,例如将一个38K的压缩文件分割为四个分别为10K、10K、10K及8K的分割文件,并将前述的四个分割文件分别储存在四个10K的储存空间中;然而,在10K的储存空间中储存8K的分割文件也造成2K的储存空间无法被利用,如此也具有储存空间破碎的问题。
发明内容
有鉴于此,本发明提出一种关于一种数据压缩装置及其数据压缩方法。
在一实施例中,一种数据压缩装置包含缓存单元、硬盘及处理单元。缓存单元用以储存待压缩数据。硬盘包含多个实体区块,每一实体区块具有相同的区块大小。处理单元用以压缩待压缩数据以产生压缩数据,并将压缩数据储存于多个实体区块中的一个实体区块,且处理单元比对压缩数据的大小与区块大小,当压缩数据的大小小于区块大小时,处理单元将冗余数据储存于储存压缩数据实体区块,其中冗余数据的大小与压缩数据的大小的总和等于区块大小。
在一实施例中,前述储存压缩数据的实体区块包含元数据字段,当压缩数据的大小小于区块大小时,处理单元将冗余数据于实体区块中的储存位置储存于元数据字段中。
在一实施例中,前述待压缩数据包含至少一文件的多个数据片段,储存压缩数据的实体区块包含元数据字段,处理单元将压缩数据与数据片段之间的对应关系储存于元数据字段中。
在一实施例中,前述待压缩数据包含至少一文件的多个数据片段,处理单元于压缩待压缩数据时比对第一数量的数据片段及第二数量的数据片段于压缩后的大小与区块大小,当第一数量的数据片段于压缩后的大小小于区块大小且第二数量的数据片段于压缩后的大小大于区块大小时,处理单元根据第三数量的数据片段产生压缩数据,第三数量大于第一数量且小于第二数量。
在一实施例中,前述压缩数据包含同一文件或不同文件的多个数据片段,处理单元根据同一文件或不同文件的数据片段产生压缩数据。
在一实施例中,一种数据压缩方法包含处理单元根据缓存单元中的待压缩数据产生压缩数据,处理单元将压缩数据储存于硬盘的多个实体区块中的一个,硬盘的每一前述实体区块具有相同的区块大小,处理单元比对压缩数据的大小与区块大小,当压缩数据的大小小于区块大小时,处理单元将冗余数据储存于前述储存压缩数据的实体区块,冗余数据的大小与压缩数据的大小的总和等于区块大小。
在一实施例中,当压缩数据的大小小于区块大小时,前述处理单元将冗余数据储存于储存压缩数据的实体区块的步骤包含:处理单元将冗余数据于实体区块中的储存位置储存于储存压缩数据的实体区块的一元数据字段中。
在一实施例中,前述压缩数据包含至少一文件的多个数据片段,前述处理单元将压缩数据储存于储存压缩数据的实体区块的步骤中,处理单元将压缩数据与数据片段之间的对应关系储存于储存压缩数据的实体区块。
在一实施例中,前述处理单元根据待压缩数据产生压缩数据的步骤中,处理单元根据待压缩数据的相同文件的数据片段或不同文件的数据片段产生压缩数据。
在一实施例中,前述待压缩数据包含至少一文件的多个数据片段,前述处理单元产生压缩数据的步骤包含处理单元比对第一数量的数据片段以及第二数量的数据片段于压缩后的大小与区块大小;当第一数量的数据片段于压缩后的大小小于区块大小且第二数量的数据片段于压缩后的大小大于区块大小时,处理单元根据第三数量的数据片段产生压缩数据,第三数量大于第一数量且小于第二数量。
综上所述,根据本发明的数据压缩装置的实施例,硬盘的每一实体区块具有相同的区块大小,处理单元可根据压缩数据的大小将压缩数据直接储存于一实体区块,或是将压缩数据与冗余数据一并储存于一实体区块,以填满实体区块的储存空间,使硬盘不会有空间破碎的问题。
附图说明
图1为根据本发明的数据压缩装置的实施例的功能框图。
图2为图1的数据压缩装置的第一实施例的功能框图。
图3为图1的数据压缩装置的第二实施例的功能框图。
符号说明:
11 处理单元
12 缓存单元
13 硬盘
131-134 实体区块
A1-A6 数据片段
B1-B2 数据片段
C1-C5 数据片段
D1-D10 数据片段
具体实施方式
图1为根据本发明的数据压缩装置的实施例的功能框图。请参照图1,数据压缩装置包含处理单元11、缓存单元12及硬盘13。处理单元11连接缓存单元12及硬盘13。缓存单元12用以暂存待压缩数据,缓存单元12可为非永久性存储器(Volatile memory)或缓存器(register)。
硬盘13包含多个实体区块,图1示例出硬盘13包含四个实体区块131-134,实体区块131-134中的每一实体区块用以储存处理单元11产生的压缩数据。其中,每一实体区块具有相同的区块大小,且每一实体区块对应于一实体地址。举例来说,以区块大小为4K为例,实体区块131-134所对应的实体地址的16进制表示法可分别为“10000”、“10032”、“10064”、“10096”。
在一实施方式中,硬盘13可为固态硬盘(Solid State Disk;SSD),固态硬盘的最小实体储存单位为页面(page),实体区块131-134中的每一实体区块涵盖至少一页面,例如可涵盖一个页面,或是涵盖八个页面。若每一页面的大小为4K,则每一实体区块具有4K或32K的区块大小。再者,硬盘13也可为具读写头的传统硬盘,传统硬盘的最小储存单位为扇区(sector),实体区块131-134中的每一实体区块涵盖至少一扇区,例如可涵盖一个扇区,或是涵盖四个扇区。若每一扇区的大小为0.5K,则每一实体区块具有0.5K或2K的区块大小。
处理单元11可为中央处理器(CPU)或微处理器(MCU),处理单元11用以执行压缩指令,在执行压缩指令时,处理单元11接收缓存单元12输出的待压缩数据,并将待压缩数据进行压缩,以产生压缩数据。接着,处理单元11比对压缩数据的数据大小与实体区块131-134的区块大小,当比对结果为压缩数据小于实体区块131-134的区块大小时,表示压缩数据无法填满实体区块131-134中的任一者,此时处理单元11将小于实体区块的压缩数据及冗余数据一并储存于实体区块131-134中的一个,以借由冗余数据来填补实体区块中的剩余空间;另一方面,当比对结果为压缩数据的数据大小等于实体区块的区块大小时,表示压缩数据可填满实体区块,实体区块不会包含剩余空间,此时处理单元11直接将压缩数据储存于实体区块131-134中的任一者。
举例来说,以前述的区块大小为4K、处理单元11产生的压缩数据为3K且处理单元11将压缩数据储存于实体区块132为例,处理单元11将3K的压缩数据以及1K的冗余数据储存于实体区块132,使实体区块132包含冗余数据及压缩数据而被填满(即,冗余数据与压缩数据的总和大小等于实体区块132的区块大小);以处理单元11产生的压缩数据为4K为例,此时处理单元11直接将4K的压缩数据储存于实体区块132而不将冗余数据储存于实体区块132,使实体区块132包含压缩数据即被填满。在一实施方式中,冗余数据可为任意数值,以冗余数据为数字信号为例,冗余数据的每一位可为逻辑“0”。
相较于现有技术,处理单元11将压缩数据储存于实体区块131-134之后,实体区块131-134不会有因压缩数据的大小不一而造成空间破碎的问题,即便处理单元11将两大小不同的压缩数据先后写入相同的实体区块时,也不会有空间破碎的问题。
在一实施方式中,缓存单元12中储存的待压缩数据包含至少一文件的多个数据片段,处理单元11可依序根据部分的数据片段分别产生压缩数据。详细而言,处理单元11先扫描一部分的数据片段,并根据前述一部分的数据片段的字符关联性产生压缩数据;接着,处理单元11再扫描另一部分的数据片段,并根据前述另一部分的数据片段的字符关联性产生另一压缩数据。举例来说,如图1所示,以缓存单元12中的待压缩数据包含10个数据片段D1-D10为例,处理单元11可先扫描五个数据片段D1-D5,并根据数据片段D1-D5中的字符关联性产生第一个压缩数据;接着,处理单元11可扫描三个数据片段D6-D8,并根据数据片段D6-D8产生第二个压缩数据;接着,处理单元11可扫描两个数据片段D9-D10,并根据数据片段D9-D10产生第三个压缩数据。基此,相较于处理单元11扫描缓存单元12中的全部数据片段后始产生压缩数据,处理单元11仅扫描部分的数据片段即产生压缩数据可减少全部压缩数据产生的总压缩时间。
再者,处理单元11在将每一压缩数据储存于硬盘13时,处理单元11根据一映像表取得与压缩数据对应的实体地址,以将每一压缩数据储存于对应的实体区块。以前述的三个压缩数据分别对应于实体区块131、134、132为例,在第一个压缩数据产生后,处理单元11根据映像表将第一个压缩数据储存于实体地址为“10000”的实体区块131;在第二个压缩数据产生后,处理单元11根据映像表将第二个压缩数据储存于实体地址为“10096”的实体区块134;在第三个压缩数据产生后,处理单元11根据映像表将第三个压缩数据储存于实体地址为“10032”实体区块132。
进一步,处理单元11在产生每一压缩数据的过程中,处理单元11可根据区块大小弹性地选择用以压缩的数据片段的数量,并调整前述数量,并在调整后根据适当数量的数据片段来产生压缩数据,使每一压缩数据小于或等于区块大小而不超过区块大小。举例来说,以处理单元11先以为三的第一数量的数据片段进行压缩为例,当处理单元11判断三个数据片段D1-D3于压缩后的大小小于例如前述为4K的区块大小时,例如2K,处理单元11会增加用以压缩的数据片段的数量,处理单元11以大于第一数量例如为六的第二数量的数据片段进行压缩;接着,处理单元11判断六个数据片段D1-D6于压缩后的大小,当六个数据片段D1-D6于压缩后的大小大于区块大小时,处理单元11再以第一数量与第二数量之间的第三数量的数据片段进行压缩,例如处理单元11以五的第三数量的数据片段进行压缩,当处理单元11判断五个数据片段D1-D5于压缩后的大小等于或小于区块大小时,处理单元11即根据数据片段D1-D5产生前述的第一个压缩数据,使第一个压缩数据的大小不超过区块大小。于是,处理单元11再根据前述的调整程序来产生第二个压缩数据及第三个压缩数据,第二个压缩数据及第三个压缩数据的大小也不超过区块大小。
在实际操作上,处理单元11在将冗余数据储存于实体区块(例如,实体区块131)时,处理单元11会记录冗余数据于实体区块131中的储存位置(为方便描述,以下将冗余数据于实体区块中的储存位置称为冗余数据信息),例如冗余数据位于实体区块131中的第一位至第四百九十二位。并且,前述的冗余数据信息为对应于压缩数据的元数据,处理单元11可将前述的冗余数据信息记录实体区块131的元数据(metadata)字段中,使处理单元11的解压缩模块或其他装置的解压缩模块在进行解压缩时可根据实体区块131的元数据字段中所记录的冗余数据信息来区分压缩数据与冗余数据。并且,将前述的冗余数据信息储存于与其对应的压缩数据相同的实体区块中则不需再进一步记录与压缩数据对应的冗余数据信息的位置信息,例如,不需记录是储存于内存中的哪一者,或是内存中的哪一地址空间,由同一实体区块即可获得压缩数据及与其对应的冗余数据信息;举例来说,以前述的第一个压缩数据及与其对应的冗余数据信息均储存于实体区块131为例,处理单元11可自实体区块131取得第一个压缩数据,并自实体区块131的元数据字段取得与第一个压缩数据对应的冗余数据信息,如此可节省用来记录与压缩数据对应的冗余数据信息的位置信息的储存空间,且适用于各式具有不同压缩格式的压缩数据。
在一实施方式中,于处理单元11扫描一部分的数据片段之后,处理单元11可根据包含较多字符为“0”的数据片段进行压缩,以产生大小较小的压缩数据,此时,当压缩数据的大小小于区块大小时,处理单元11可再将前述的冗余数据信息或其他元数据作为冗余数据来填补不足的数据大小,使压缩数据的大小加上元数据的大小后趋近于区块大小。
图2为图1的数据压缩装置的第一实施例的功能框图,请参照图2,在第一实施例中,处理单元11系将来自于相同文件的数据片段压缩于同一压缩数据,也就是将来自于不同文件的数据片段压缩于不同的压缩数据中,换言之,处理单元11在选择适当数量的数据片段进行压缩时会受限于不同数据片段是否来自于相同文件。如图2所示,缓存单元12中暂存有文件A的八个数据片段A1-A8以及不同于文件A的文件B的五个数据片段B1-B5,以数据片段A1-A5于压缩后的大小为4K且数据片段A6-A8于压缩后的大小为2.2K为例,在处理单元11根据数据片段A1-A5产生压缩数据(为方便描述,以下称为第一压缩数据)后,缓存单元12中的待压缩数据包含数据片段A6-A8、B1-B5,此时,即便数据片段A6-A8于压缩后的大小小于4K,处理单元11不将数据片段A6-A8与数据片段B1-B5中的任一者进行压缩,处理单元11系根据数据片段A6-A8产生一压缩数据(以下称为第二压缩数据),并根据数据片段B1-B5产生其他压缩数据。
图3为图1的数据压缩装置的第二实施例的功能框图,请参照图3,在第二实施例中,处理单元11将来自于不相同文件的数据片段压缩于同一压缩数据。换言之,处理单元11在选择适当数量的数据片段进行压缩时将不受限于数据片段是否来自于相同文件。如图3所示,缓存单元12暂存的待压缩数据包含来自于文件A的数据片段A1-A6、来自于文件B的数据片段B1、B2以及来自于文件C的数据片段C1-C5。处理单元11在选择适当数量的数据片段时可选择将来自于不同文件的数据片段来进行压缩,以产生对应于不同文件的压缩数据,举例来说,处理单元11可根据数据片段B1、C1-C3、A1-A3产生压缩数据(以下称为第三压缩数据),并根据数据片段C4-C5、B2、A4-A6产生另一压缩数据(以下称为第四压缩数据)。基此,相较于第一实施例,处理单元11可选择的数据片段的弹性较大,如此产生的压缩数据的大小较接近区块大小,可减少硬盘13中冗余数据的整体数量。
在一实施方式中,缓存单元12中的待压缩数据来自于硬盘13,处理单元11在执行压缩指令时会读取硬盘13,处理单元11将待压缩数据自硬盘13复制至缓存单元12。再者,缓存单元12为队列,队列具有先进先出(First In First Out;FIFO)的特性,处理单元11在将待压缩数据存入缓存单元12时需进一步考虑不同文件的数据片段的存入顺序。
在第一实施例中,处理单元11先读取硬盘13中的文件A而后读取硬盘13中的文件B,且处理单元11先将数据片段A1-A8储存于缓存单元12而后将数据片段B1-B5储存于缓存单元12(图2示例出数据片段A1-A8、B1-B5于缓存单元12中的顺序性),使缓存单元12根据前述的存入顺序依序输出数据片段A1-A8、B1-B5。于此,处理单元11可根据相同文件的数据片段来产生压缩数据(即,根据数据片段A1-A5产生第一压缩数据,且根据数据片段A6-A8产生第二压缩数据,且根据数据片段B1-B5产生其他压缩数据)。
在第二实施例中,处理单元11是依序读取硬盘13中的文件B、文件C、文件A、文件C、文件B及文件A,且处理单元11依序将数据片段B1、C1、C2、C3、A1、A2、A3、C4、C5、B2、A4、A5、A6储存于缓存单元12(如图3所示的每一数据片段于缓存单元12中的顺序性),使缓存单元12根据前述的存入顺序依序输出数据片段B1、C1、C2、C3、A1、A2、A3、C4、C5、B2、A4、A5、A6。于此,处理单元11可根据不同文件的数据片段来产生压缩数据(即,根据数据片段B1、C1-C3、A1-A3产生第三压缩数据,且根据数据片段C4-C5、B2、A4-A6产生第四压缩数据)。基此,处理单元11在第一实施例中不需重复读取文件A及文件B,在第二实施例中则需重复读取文件A及文件B,因此,将相同文件的数据片段压缩于同一压缩数据可减少处理单元11在硬盘13中搜寻及读取文件的耗时。
在一实施方式中,处理单元11需记录压缩数据与压缩前的待压缩的文件数据片段之间的对应关系,并且,前述对应关系为压缩数据的另一元数据,处理单元11可进一步将前述的对应关系记录于前述的元数据字段中。在第一实施例中,处理单元11需记录第一压缩数据对应于文件A的数据片段A1-A5,且记录第二压缩数据对应于文件A的数据片段A6-A8,使解压缩模块可根据前述对应关系将第一压缩数据及第二压缩数据还原为文件A;在第二实施例中,处理单元11需记录第三压缩数据对应于数据片段B1、C1-C3、A1-A3,且记录第四压缩数据对应于数据片段C4-C5、B2、A4-A6,使解压缩模块可根据前述对应关系将第三压缩数据及第四压缩数据还原为文件A、B、C。
在一实施方式中,缓存单元12的可储存空间有限,在将待压缩数据储存于缓存单元12之前,处理单元11先判断待压缩数据的大小与缓存单元12的可储存空间的大小,当待压缩数据大于缓存单元12的可储存空间时,处理单元11不将待压缩数据自硬盘13复制或搬移至缓存单元12,待处理单元11判断缓存单元12的可储存空间大于或等于待压缩数据的大小之后,处理单元11再将待压缩数据自硬盘13复制或搬移至缓存单元12,以混合使用实时(in-line)压缩技术及不实时(off-line)压缩技术。
在一实施方式中,以硬盘13包含前述的文件A为例,处理单元11会将前述的文件A于硬盘13中的储存位置记录于表(table)中,待处理单元11根据文件A产生压缩数据并将压缩数据储存于硬盘13之后,处理单元11会根据压缩数据于硬盘13中的储存位置修改前述表中文件A于硬盘13中的储存位置。举例来说,以文件A于压缩数据产生前储存于实体地址为“20026”、“20032”、“20148”的实体区块为例,待处理单元11根据文件A产生压缩数据并将前述压缩数据储存于实体区块132之后,处理单元11将前述表中对应于文件A的实体地址“20026”、“20032”、“20148”修改为“10032”,使文件A于硬盘13中的位置指向实体地址“10032”。
综上所述,根据本发明的数据压缩装置的实施例,硬盘的每一实体区块具有相同的区块大小,处理单元可根据压缩数据的大小将压缩数据直接储存于一实体区块,或是将压缩数据与冗余数据一并储存于一实体区块,以填满实体区块的储存空间,使硬盘不会有空间破碎的问题。
虽然本发明已以实施例公开如上,然其并非用以限定本案,任何本领技术人员人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的权利要求书所界定的范围为准。

Claims (10)

1.一种数据压缩装置,其特征在于,包含:
缓存单元,用以储存待压缩数据;
硬盘,包含多个实体区块,每一所述实体区块具有相同的区块大小;及
处理单元,用以压缩所述待压缩数据以产生压缩数据,并将所述压缩数据储存于所述实体区块中的其中之一,且所述处理单元比对所述压缩数据的大小与所述区块大小,当所述压缩数据的大小小于所述区块大小时,所述处理单元将冗余数据储存于储存所述压缩数据的所述实体区块,其中所述冗余数据的大小与所述压缩数据的大小的总和等于所述区块大小;
其中,所述待压缩数据包含至少一文件的多个数据片段,所述处理单元于压缩所述待压缩数据时比对第一数量的所述数据片段及第二数量的所述数据片段于压缩后的大小与所述区块大小,当所述第一数量的所述数据片段于压缩后的大小小于所述区块大小且所述第二数量的所述数据片段于压缩后的大小大于所述区块大小时,所述处理单元根据第三数量的所述数据片段产生所述压缩数据,所述第三数量大于所述第一数量且小于所述第二数量。
2.如权利要求1所述的数据压缩装置,其特征在于,储存所述压缩数据的所述实体区块包含元数据字段,当所述压缩数据的大小小于所述区块大小时,所述处理单元将所述冗余数据于所述实体区块中的储存位置储存于所述元数据字段中。
3.如权利要求1所述的数据压缩装置,其特征在于,所述待压缩数据包含至少一文件的多个数据片段,储存所述压缩数据的所述实体区块包含元数据字段,所述处理单元将所述压缩数据与所述数据片段之间的对应关系储存于所述元数据字段中。
4.如权利要求1所述的数据压缩装置,其特征在于,所述压缩数据包含同一文件或不同文件的多个数据片段,所述处理单元根据同一文件或不同文件的所述数据片段产生所述压缩数据。
5.如权利要求1所述的数据压缩装置,其特征在于,所述待压缩数据于储存于所述缓存单元之前储存于所述硬盘中,所述处理单元待所述缓存单元的可储存空间等于或大于所述待压缩数据的大小后始将所述待压缩数据自所述硬盘储存至所述缓存单元,以根据所述缓存单元中的所述待压缩数据产生所述压缩数据。
6.一种数据压缩方法,其特征在于,包含:
经由处理单元根据缓存单元中的待压缩数据产生压缩数据,所述待压缩数据包含至少一文件的多个数据片段;
所述处理单元将所述压缩数据储存于硬盘的多个实体区块的其中之一,其中每一所述实体区块具有相同的区块大小;
所述处理单元比对所述压缩数据的大小与所述区块大小;
当所述压缩数据的大小小于所述区块大小时,所述处理单元将冗余数据储存于储存所述压缩数据的所述实体区块,其中所述冗余数据的大小与所述压缩数据的大小的总和等于所述区块大小;
所述处理单元比对第一数量的所述数据片段以及第二数量的所述数据片段于压缩后的大小与所述区块大小;及
当所述第一数量的所述数据片段于压缩后的大小小于所述区块大小且所述第二数量的所述数据片段于压缩后的大小大于所述区块大小时,所述处理单元根据第三数量的所述数据片段产生所述压缩数据,所述第三数量大于所述第一数量且小于所述第二数量。
7.如权利要求6所述的数据压缩方法,其特征在于,当所述压缩数据的大小小于所述区块大小时,所述处理单元将所述冗余数据储存于储存所述压缩数据的所述实体区块的步骤包含:
所述处理单元将所述冗余数据于所述实体区块中的储存位置储存于所述实体区块的元数据字段中。
8.如权利要求6所述的数据压缩方法,其特征在于,所述待压缩数据包含至少一文件的多个数据片段,所述处理单元将所述压缩数据储存于储存所述压缩数据的所述实体区块的步骤中,所述处理单元将压缩数据与所述数据片段之间的对应关系储存于所述实体区块。
9.如权利要求6所述的数据压缩方法,其特征在于,所述处理单元根据所述待压缩数据产生所述压缩数据的步骤中,处理单元根据所述待压缩数据的相同文件的数据片段或不同文件的数据片段产生所述压缩数据。
10.如权利要求6所述的数据压缩方法,其特征在于,于所述处理单元根据所述缓存单元中的所述待压缩数据产生所述压缩数据之前,所述数据压缩方法还包含:
所述处理单元判断所述待压缩数据的大小与所述缓存单元的可储存空间的大小;
当所述待压缩数据大于所述可储存空间时,所述处理单元将所述待压缩数据储存于所述硬盘中;及
待所述待压缩数据小于或等于所述可储存空间,所述处理单元始将所述待压缩数据自所述硬盘储存于所述缓存单元中。
CN201710485512.5A 2017-05-05 2017-06-23 数据压缩装置及其数据压缩方法 Active CN108804021B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106114895A TWI631556B (zh) 2017-05-05 2017-05-05 資料壓縮裝置及其資料壓縮方法
TW106114895 2017-05-05

Publications (2)

Publication Number Publication Date
CN108804021A CN108804021A (zh) 2018-11-13
CN108804021B true CN108804021B (zh) 2021-12-17

Family

ID=60142536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710485512.5A Active CN108804021B (zh) 2017-05-05 2017-06-23 数据压缩装置及其数据压缩方法

Country Status (3)

Country Link
US (1) US9806740B1 (zh)
CN (1) CN108804021B (zh)
TW (1) TWI631556B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI673958B (zh) * 2018-08-30 2019-10-01 英屬開曼群島商捷鼎創新股份有限公司 基於抽樣猜測之資料壓縮方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761536A (en) * 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
CN1973287A (zh) * 2004-04-26 2007-05-30 斯多维兹有限公司 压缩存储用文件以及对压缩的文件进行操作的方法和系统
CN101346883A (zh) * 2005-10-26 2009-01-14 斯多维兹有限公司 用于块模式访问存储的数据压缩的方法和系统
CN103136109A (zh) * 2013-02-07 2013-06-05 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储系统ftl写入及读取方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627995A (en) * 1990-12-14 1997-05-06 Alfred P. Gnadinger Data compression and decompression using memory spaces of more than one size
IL120788A (en) * 1997-05-06 2000-07-16 Audiocodes Ltd Systems and methods for encoding and decoding speech for lossy transmission networks
US6292847B1 (en) * 1997-12-03 2001-09-18 Kabushiki Kaisha Kobe Seiko Sho. Digital information reproducing apparatus and digital information distributing system
US6003004A (en) * 1998-01-08 1999-12-14 Advanced Recognition Technologies, Inc. Speech recognition method and system using compressed speech data
US6647480B1 (en) * 2000-03-31 2003-11-11 International Business Machines Corporation Data block update utilizing flash memory having unused memory size smaller than the data block size
US7669051B2 (en) * 2000-11-13 2010-02-23 DigitalDoors, Inc. Data security system and method with multiple independent levels of security
JP4474153B2 (ja) * 2003-12-04 2010-06-02 奇美電子股▲ふん▼有限公司 データ圧縮装置、圧縮データ復号装置、データ圧縮方法、データ圧縮プログラムおよび画像表示システム
CN1670701A (zh) * 2004-03-17 2005-09-21 德鑫科技股份有限公司 压缩数据存储方法
EP1939751A1 (en) * 2006-12-22 2008-07-02 Telefonaktiebolaget LM Ericsson (publ) Storing compressed data
US9015301B2 (en) * 2007-01-05 2015-04-21 Digital Doors, Inc. Information infrastructure management tools with extractor, secure storage, content analysis and classification and method therefor
TW200833115A (en) * 2007-01-30 2008-08-01 Beyond Innovation Tech Co Ltd Apparatus and method for compressing data
CN101571744A (zh) * 2008-04-30 2009-11-04 扬智科技股份有限公司 应用于计算机系统中的功率控制装置以及功率控制方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761536A (en) * 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
CN1973287A (zh) * 2004-04-26 2007-05-30 斯多维兹有限公司 压缩存储用文件以及对压缩的文件进行操作的方法和系统
CN101346883A (zh) * 2005-10-26 2009-01-14 斯多维兹有限公司 用于块模式访问存储的数据压缩的方法和系统
CN103136109A (zh) * 2013-02-07 2013-06-05 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储系统ftl写入及读取方法

Also Published As

Publication number Publication date
CN108804021A (zh) 2018-11-13
TWI631556B (zh) 2018-08-01
US9806740B1 (en) 2017-10-31
TW201843676A (zh) 2018-12-16

Similar Documents

Publication Publication Date Title
US10642522B2 (en) Method and system for in-line deduplication in a storage drive based on a non-collision hash
US7188118B2 (en) System and method for detecting file content similarity within a file system
US9319489B2 (en) Nearstore compression of data in a storage system
US9612774B2 (en) Metadata structures for low latency and high throughput inline data compression
US7051152B1 (en) Method and system of improving disk access time by compression
US10338833B1 (en) Method for achieving sequential I/O performance from a random workload
US8230139B2 (en) Method and system for storing memory compressed data onto memory compressed disks
US7958331B2 (en) Storage device with opportunistic address space
US20100250855A1 (en) Computer-readable recording medium storing data storage program, computer, and method thereof
KR20150121703A (ko) 데이터를 저장 및 검색하기 위한 방법 및 시스템
CN110795272B (zh) 用于在可变大小的i/o上促进的原子性和延迟保证的方法和系统
US6571362B1 (en) Method and system of reformatting data blocks for storage as larger size data blocks
CN111966281B (zh) 数据储存装置与数据处理方法
US6353871B1 (en) Directory cache for indirectly addressed main memory
CN108804021B (zh) 数据压缩装置及其数据压缩方法
US20230076729A2 (en) Systems, methods and devices for eliminating duplicates and value redundancy in computer memories
US6615334B2 (en) Method and apparatus for I/O data management with an I/O buffer in compressed memory subsystem
CN111966606B (zh) 数据储存装置与数据处理方法
JP6911443B2 (ja) 情報処理装置
US8065477B2 (en) Disk apparatus and advance data reading method

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant after: British Cayman Islands shangjieding Innovation Co.,Ltd.

Address before: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant before: Jieding Innovation Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200410

Address after: No. 5, 237, 1 Datong Road, Taiwan, Xinbei City, Xinbei City, China

Applicant after: INNODISK Corp.

Address before: Taiwan, Taipei, China, Nanhai District, 6 East section 465, 10

Applicant before: British Cayman Islands shangjieding Innovation Co.,Ltd.

TA01 Transfer of patent application right

Effective date of registration: 20200608

Address after: 04-95, Fanglin building, 531a, upper section of Klaus street, Singapore City, Singapore

Applicant after: Jieding Singapore Pte. Ltd.

Address before: No. 5, 237, 1 Datong Road, Taiwan, Xinbei City, Xinbei City, China

Applicant before: INNODISK Corp.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200805

Address after: Building C, No. 888, Huanhu West 2nd Road, Lingang New Area, Pudong New Area (Shanghai) pilot Free Trade Zone

Applicant after: Shanghai Chuanyuan Information Technology Co.,Ltd.

Address before: Fong Lam building, 531a upper cross street, Singapore City, Singapore 051531

Applicant before: Jieding Singapore Pte. Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant