TWI631556B - 資料壓縮裝置及其資料壓縮方法 - Google Patents

資料壓縮裝置及其資料壓縮方法 Download PDF

Info

Publication number
TWI631556B
TWI631556B TW106114895A TW106114895A TWI631556B TW I631556 B TWI631556 B TW I631556B TW 106114895 A TW106114895 A TW 106114895A TW 106114895 A TW106114895 A TW 106114895A TW I631556 B TWI631556 B TW I631556B
Authority
TW
Taiwan
Prior art keywords
data
compressed
size
processing unit
block
Prior art date
Application number
TW106114895A
Other languages
English (en)
Other versions
TW201843676A (zh
Inventor
張安男
曹世強
李寶鑑
農至剛
Original Assignee
英屬開曼群島商捷鼎創新股份有限公司
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 英屬開曼群島商捷鼎創新股份有限公司 filed Critical 英屬開曼群島商捷鼎創新股份有限公司
Priority to TW106114895A priority Critical patent/TWI631556B/zh
Priority to CN201710485512.5A priority patent/CN108804021B/zh
Priority to US15/653,597 priority patent/US9806740B1/en
Application granted granted Critical
Publication of TWI631556B publication Critical patent/TWI631556B/zh
Publication of TW201843676A publication Critical patent/TW201843676A/zh

Links

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)的問題。舉例來說,以壓縮檔案的大小為100 K為例,當磁碟中的剩餘儲存空間僅包含由70 K之儲存空間及80 K之儲存空間形成之不連續儲存空間時,雖然總體之剩餘儲存空間還有150 K,但100 K之壓縮檔案並無法儲存於破碎之不連續空間中,造成儲存空間破碎。
再者,在另一些習知的壓縮技術中,一壓縮檔案可被分割為多個較小的分割檔案後分別儲存在零碎的儲存空間中,例如將一個38 K的壓縮檔案分割為四個分別為10 K、10 K、10 K及8 K之分割檔案,並將前述之四個分割檔案分別儲存在四個10 K的儲存空間中;然而,在10 K之儲存空間中儲存8 K之分割檔案亦造成2 K之儲存空間無法被利用,如此亦具有儲存空間破碎的問題。
有鑑於此,本發明提出一種關於一種資料壓縮裝置及其資料壓縮方法。
在一實施例中,一種資料壓縮裝置包含暫存單元、硬碟及處理單元。暫存單元用以儲存一待壓縮資料。硬碟包含複數實體區塊,每一實體區塊具有相同之一區塊大小。處理單元用以壓縮待壓縮資料以產生一壓縮資料,並將壓縮資料儲存於複數實體區塊中之一實體區塊,且處理單元比對壓縮資料的大小與區塊大小,當壓縮資料的大小小於區塊大小時,處理單元將一冗餘資料儲存於儲存壓縮資料之實體區塊,其中冗餘資料的大小與壓縮資料的大小的總和等於區塊大小。
在一實施例中,前述儲存壓縮資料之實體區塊包含一標籤欄位,當壓縮資料的大小小於區塊大小時,處理單元將冗餘資料於實體區塊中之儲存位置儲存於標籤欄位中。
在一實施例中,前述待壓縮資料包含至少一檔案的複數資料片段,儲存壓縮資料之實體區塊包含一標籤欄位,處理單元將壓縮資料與資料片段之間之對應關係儲存於標籤欄位中。
在一實施例中,前述待壓縮資料包含至少一檔案的複數資料片段,處理單元於壓縮待壓縮資料時比對一第一數量之資料片段及一第二數量之資料片段於壓縮後的大小與區塊大小,當第一數量之資料片段於壓縮後的大小小於區塊大小且第二數量之資料片段於壓縮後的大小大於區塊大小時,處理單元根據一第三數量之資料片段產生壓縮資料,第三數量大於第一數量且小於第二數量。
在一實施例中,前述壓縮資料包含同一檔案或不同檔案之複數資料片段,處理單元根據同一檔案或不同檔案之資料片段產生壓縮資料。
在一實施例中,一種資料壓縮方法包含處理單元根據暫存單元中之待壓縮資料產生一壓縮資料,處理單元將壓縮資料儲存於一硬碟之複數實體區塊中之一,硬碟的每一前述實體區塊具有相同之區塊大小,處理單元比對壓縮資料的大小與區塊大小,當壓縮資料的大小小於區塊大小時,處理單元將冗餘資料儲存於前述儲存壓縮資料之實體區塊,冗餘資料的大小與壓縮資料的大小的總和等於區塊大小。
在一實施例中,當壓縮資料的大小小於區塊大小時,前述處理單元將冗餘資料儲存於儲存壓縮資料之實體區塊之步驟包含:處理單元將冗餘資料於實體區塊中之儲存位置儲存於儲存壓縮資料之實體區塊之一標籤欄位中。
在一實施例中,前述壓縮資料包含至少一檔案的複數資料片段,前述處理單元將壓縮資料儲存於儲存壓縮資料之實體區塊之步驟中,處理單元將壓縮資料與資料片段之間之對應關係儲存於儲存壓縮資料之實體區塊。
在一實施例中,前述處理單元根據待壓縮資料產生壓縮資料之步驟中,處理單元係根據待壓縮資料的相同檔案的資料片段或不同檔案的資料片段產生壓縮資料。
在一實施例中,前述待壓縮資料包含至少一檔案之複數資料片段,前述處理單元產生壓縮資料之步驟包含處理單元比對一第一數量之資料片段以及一第二數量之資料片段於壓縮後的大小與區塊大小;當第一數量之資料片段於壓縮後的大小小於區塊大小且第二數量之資料片段於壓縮後的大小大於區塊大小時,處理單元根據一第三數量之資料片段產生壓縮資料,第三數量大於第一數量且小於第二數量。
綜上所述,根據本發明之資料壓縮裝置之一實施例,硬碟的每一實體區塊具有相同的區塊大小,處理單元可根據壓縮資料的大小將壓縮資料直接儲存於一實體區塊,或是將壓縮資料與冗餘資料一併儲存於一實體區塊,以填滿實體區塊的儲存空間,使硬碟不會有空間破碎的問題。
圖1為根據本發明之資料壓縮裝置之一實施例之功能方塊圖。請參照圖1,資料壓縮裝置包含處理單元11、暫存單元12及硬碟13。處理單元11連接暫存單元12及硬碟13。暫存單元12用以暫存待壓縮資料,暫存單元12可為揮發性記憶體(Volatile memory)或暫存器(register)。
硬碟13包含複數實體區塊,圖1係示例出硬碟13包含四個實體區塊131-134,實體區塊131-134中之每一實體區塊用以儲存處理單元11產生的一壓縮資料。其中,每一實體區塊具有相同的區塊大小,且每一實體區塊係對應於一實體位址。舉例來說,以區塊大小為32 K為例,實體區塊131-134所對應之實體位址之16進制表示法可分別為「10000」、「10032」、「10064」、「10096」。
在一實施態樣中,硬碟13可為固態硬碟(Solid State Disk;SSD),固態硬碟的最小實體儲存單位為頁面(page),實體區塊131-134中之每一實體區塊涵蓋至少一頁面,例如可涵蓋一個頁面,或是涵蓋八個頁面。若每一頁面的大小為4 K,則每一實體區塊具有4 K或32 K之區塊大小。再者,硬碟13亦可為具讀寫頭之傳統硬碟,傳統硬碟的最小儲存單位為磁區(sector),實體區塊131-134中之每一實體區塊涵蓋至少一磁區,例如可涵蓋一個磁區,或是涵蓋四個磁區。若每一磁區的大小為0.5 K,則每一實體區塊具有0.5 K或2 K之區塊大小。
處理單元11可為中央處理器(CPU)或微處理器(MCU),處理單元11用以執行壓縮指令,在執行壓縮指令時,處理單元11接收暫存單元12輸出之待壓縮資料,並將待壓縮資料進行壓縮,以產生一壓縮資料。接著,處理單元11比對壓縮資料的資料大小與實體區塊131-134的區塊大小,當比對結果為壓縮資料小於實體區塊131-134的區塊大小時,表示壓縮資料無法填滿實體區塊131-134中之任一者,此時處理單元11將小於實體區塊之壓縮資料及冗餘資料一併儲存於實體區塊131-134中之一,以藉由冗餘資料來填補實體區塊中之剩餘空間;另一方面,當比對結果為壓縮資料的資料大小等於實體區塊的區塊大小時,表示壓縮資料可填滿實體區塊,實體區塊不會包含剩餘空間,此時處理單元11直接將壓縮資料儲存於實體區塊131-134中之任一者。
舉例來說,以前述之區塊大小為32 K、處理單元11產生之壓縮資料為31 K且處理單元11將壓縮資料儲存於實體區塊132為例,處理單元11將31 K之壓縮資料以及1 K之冗餘資料儲存於實體區塊132,使實體區塊132包含冗餘資料及壓縮資料而被填滿(即,冗餘資料與壓縮資料的總和大小等於實體區塊132的區塊大小);以處理單元11產生之壓縮資料為32 K為例,此時處理單元11直接將32 K之壓縮資料儲存於實體區塊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於壓縮後的大小小於例如前述為32 K之區塊大小時,例如20 K,處理單元11會增加用以壓縮之資料片段之數量,處理單元11以大於第一數量例如為六之第二數量之資料片段進行壓縮;接著,處理單元11判斷六個資料片段D1-D6於壓縮後的大小,當六個資料片段D1-D6於壓縮後的大小大於區塊大小時,處理單元11再以第一數量與第二數量之間之第三數量之資料片段進行壓縮,例如處理單元11以五之第三數量之資料片段進行壓縮,當處理單元11判斷五個資料片段D1-D5於壓縮後的大小等於或小於區塊大小時,處理單元11即根據資料片段D1-D5產生前述之第一個壓縮資料,使第一個壓縮資料的大小不超過區塊大小。於是,處理單元11再根據前述之調整程序來產生第二個壓縮資料及第三個壓縮資料,第二個壓縮資料及第三個壓縮資料的大小亦不超過區塊大小。
在實作上,處理單元11在將冗餘資料儲存於實體區塊(例如,實體區塊131)時,處理單元11會記錄冗餘資料於實體區塊131中之儲存位置,例如冗餘資料位於實體區塊131中之第一位元至第四百九十二位元。處理單元11可將前述資訊記錄實體區塊131之一標籤(tag)欄位中,使處理單元11的解壓縮模組或其他裝置的解壓縮模組在進行解壓縮時可根據實體區塊131之標籤欄位中所記錄之資訊來區分壓縮資料與冗餘資料。
圖2為圖1之資料壓縮裝置之第一實施例之功能方塊圖,請參照圖2,在第一實施例中,處理單元11係將來自於相同檔案的資料片段壓縮於同一壓縮資料,也就是將來自於不同檔案的資料片段壓縮於不同的壓縮資料中,換言之,處理單元11在選擇適當數量之資料片段進行壓縮時會受限於不同資料片段是否來自於相同檔案。如圖2所示,暫存單元12中暫存有檔案A的八個資料片段A1-A8以及不同於檔案A之檔案B的五個資料片段B1-B5,以資料片段A1-A5於壓縮後的大小為32 K且資料片段A6-A8於壓縮後的大小為22 K為例,在處理單元11根據資料片段A1-A5產生一壓縮資料(為方便描述,以下稱為第一壓縮資料)後,暫存單元12中之待壓縮資料包含資料片段A6-A8、B1-B5,此時,即便資料片段A6-A8於壓縮後的大小小於32 K,處理單元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需記錄第一壓縮資料對應於檔案A的資料片段A1-A5,且記錄第二壓縮資料對應於檔案A的資料片段A6-A8,使解壓縮模組可根據前述對應關係將第一壓縮資料及第二壓縮資料還原為檔案A;在第二實施例中,處理單元11需記錄第三壓縮資料對應於資料片段B1、C1-C3、A1-A3,且記錄第四壓縮資料對應於資料片段C4-C5、B2、A4-A6,使解壓縮模組可根據前述對應關係將第三壓縮資料及第四壓縮資料還原為檔案A、B、C。
綜上所述,根據本發明之資料壓縮裝置之一實施例,硬碟的每一實體區塊具有相同的區塊大小,處理單元可根據壓縮資料的大小將壓縮資料直接儲存於一實體區塊,或是將壓縮資料與冗餘資料一併儲存於一實體區塊,以填滿實體區塊的儲存空間,使硬碟不會有空間破碎的問題。
雖然本發明已以實施例揭露如上然其並非用以限定本案,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之專利申請範圍所界定者為準。
11‧‧‧處理單元
12‧‧‧暫存單元
13‧‧‧硬碟
131-134‧‧‧實體區塊
A1-A8‧‧‧資料片段
B1-B5‧‧‧資料片段
C1-C5‧‧‧資料片段
D1-D10‧‧‧資料片段
[圖1] 為根據本發明之資料壓縮裝置之一實施例之功能方塊圖。 [圖2] 為圖1之資料壓縮裝置之第一實施例之功能方塊圖。 [圖3] 為圖1之資料壓縮裝置之第二實施例之功能方塊圖。

Claims (10)

  1. 一種資料壓縮裝置,包含: 一暫存單元,用以儲存一待壓縮資料; 一硬碟,包含複數實體區塊,每一該實體區塊具有相同之一區塊大小;及 一處理單元,用以壓縮該待壓縮資料以產生一壓縮資料,並將該壓縮資料儲存於該些實體區塊中的其中之一,且該處理單元比對該壓縮資料的大小與該區塊大小,當該壓縮資料的大小小於該區塊大小時,該處理單元將一冗餘資料儲存於儲存該壓縮資料之該實體區塊,其中該冗餘資料的大小與該壓縮資料的大小的總和等於該區塊大小。
  2. 如請求項1所述之資料壓縮裝置,其中儲存該壓縮資料之該實體區塊包含一標籤欄位,當該壓縮資料的大小小於該區塊大小時,該處理單元將該冗餘資料於該實體區塊中之儲存位置儲存於該標籤欄位中。
  3. 如請求項1所述之資料壓縮裝置,其中該待壓縮資料包含至少一檔案的複數資料片段,儲存該壓縮資料之該實體區塊包含一標籤欄位,該處理單元將該壓縮資料與該些資料片段之間之對應關係儲存於該標籤欄位中。
  4. 如請求項1所述之資料壓縮裝置,其中該待壓縮資料包含至少一檔案的複數資料片段,該處理單元於壓縮該待壓縮資料時比對一第一數量之該些資料片段及一第二數量之該些資料片段於壓縮後的大小與該區塊大小,當該第一數量之該些資料片段於壓縮後的大小小於該區塊大小且該第二數量之該些資料片段於壓縮後的大小大於該區塊大小時,該處理單元根據一第三數量之該些資料片段產生該壓縮資料,該第三數量大於該第一數量且小於該第二數量。
  5. 如請求項1所述之資料壓縮裝置,其中該壓縮資料包含同一檔案或不同檔案之複數資料片段,該處理單元根據同一檔案或不同檔案之該些資料片段產生該壓縮資料。
  6. 一種資料壓縮方法,包含: 經由一處理單元根據一暫存單元中之一待壓縮資料產生一壓縮資料; 該處理單元將該壓縮資料儲存於一硬碟之複數實體區塊的其中之一,其中每一該實體區塊具有相同之一區塊大小; 該處理單元比對該壓縮資料的大小與該區塊大小;及 當該壓縮資料的大小小於該區塊大小時,該處理單元將一冗餘資料儲存於儲存該壓縮資料之該實體區塊,其中該冗餘資料的大小與該壓縮資料的大小的總和等於該區塊大小。
  7. 如請求項6所述之資料壓縮方法,其中當該壓縮資料的大小小於該區塊大小時,該處理單元將該冗餘資料儲存於儲存該壓縮資料之該實體區塊之步驟包含: 該處理單元將該冗餘資料於該實體區塊中之儲存位置儲存於該實體區塊之一標籤欄位中。
  8. 如請求項6所述之資料壓縮方法,其中該待壓縮資料包含至少一檔案的複數資料片段,該處理單元將該壓縮資料儲存於儲存該壓縮資料之該實體區塊之步驟中,該處理單元將壓縮資料與該些資料片段之間之對應關係儲存於該實體區塊。
  9. 如請求項6所述之資料壓縮方法,其中該處理單元根據該待壓縮資料產生該壓縮資料之步驟中,處理單元係根據該待壓縮資料的相同檔案的資料片段或不同檔案的資料片段產生該壓縮資料。
  10. 如請求項6所述之資料壓縮方法,其中該待壓縮資料包含至少一檔案之複數資料片段,該處理單元產生該壓縮資料之步驟包含: 該處理單元比對一第一數量之該些資料片段以及一第二數量之該些資料片段於壓縮後的大小與該區塊大小;及 當該第一數量之該些資料片段於壓縮後的大小小於該區塊大小且該第二數量之該些資料片段於壓縮後的大小大於該區塊大小時,該處理單元根據一第三數量之該些資料片段產生該壓縮資料,該第三數量大於該第一數量且小於該第二數量。
TW106114895A 2017-05-05 2017-05-05 資料壓縮裝置及其資料壓縮方法 TWI631556B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106114895A TWI631556B (zh) 2017-05-05 2017-05-05 資料壓縮裝置及其資料壓縮方法
CN201710485512.5A CN108804021B (zh) 2017-05-05 2017-06-23 数据压缩装置及其数据压缩方法
US15/653,597 US9806740B1 (en) 2017-05-05 2017-07-19 Device and method for data compression

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
TWI631556B true TWI631556B (zh) 2018-08-01
TW201843676A TW201843676A (zh) 2018-12-16

Family

ID=60142536

Family Applications (1)

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

Country Status (3)

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

Cited By (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 (8)

* 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
US6292847B1 (en) * 1997-12-03 2001-09-18 Kabushiki Kaisha Kobe Seiko Sho. Digital information reproducing apparatus and digital information distributing system
US6389006B1 (en) * 1997-05-06 2002-05-14 Audiocodes Ltd. Systems and methods for encoding and decoding speech for lossy transmission networks
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
TW200520401A (en) * 2003-12-04 2005-06-16 Chi Mei Optoelectronics Corp Data compression device, data decompression device, data compression method, data compression program, and image display system
TW200833115A (en) * 2007-01-30 2008-08-01 Beyond Innovation Tech Co Ltd Apparatus and method for compressing data
TW200839515A (en) * 2006-12-22 2008-10-01 Ericsson Telefon Ab L M Storing compressed data
US7669051B2 (en) * 2000-11-13 2010-02-23 DigitalDoors, Inc. Data security system and method with multiple independent levels of security

Family Cites Families (8)

* 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
US6003004A (en) * 1998-01-08 1999-12-14 Advanced Recognition Technologies, Inc. Speech recognition method and system using compressed speech data
CN1670701A (zh) * 2004-03-17 2005-09-21 德鑫科技股份有限公司 压缩数据存储方法
WO2005103878A2 (en) * 2004-04-26 2005-11-03 Storewiz, Inc. Method and system for compression of files for storage and operation on compressed files
CN101346883A (zh) * 2005-10-26 2009-01-14 斯多维兹有限公司 用于块模式访问存储的数据压缩的方法和***
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
CN101571744A (zh) * 2008-04-30 2009-11-04 扬智科技股份有限公司 应用于计算机***中的功率控制装置以及功率控制方法
CN103136109B (zh) * 2013-02-07 2016-06-15 中国科学院苏州纳米技术与纳米仿生研究所 一种具有压缩功能的固态存储***ftl写入及读取方法

Patent Citations (9)

* 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
US6389006B1 (en) * 1997-05-06 2002-05-14 Audiocodes Ltd. Systems and methods for encoding and decoding speech for lossy transmission networks
US20020159472A1 (en) * 1997-05-06 2002-10-31 Leon Bialik Systems and methods for encoding & 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
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
TW200520401A (en) * 2003-12-04 2005-06-16 Chi Mei Optoelectronics Corp Data compression device, data decompression device, data compression method, data compression program, and image display system
TW200839515A (en) * 2006-12-22 2008-10-01 Ericsson Telefon Ab L M Storing compressed data
TW200833115A (en) * 2007-01-30 2008-08-01 Beyond Innovation Tech Co Ltd Apparatus and method for compressing data

Cited By (1)

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

Also Published As

Publication number Publication date
CN108804021A (zh) 2018-11-13
CN108804021B (zh) 2021-12-17
TW201843676A (zh) 2018-12-16
US9806740B1 (en) 2017-10-31

Similar Documents

Publication Publication Date Title
US10140065B2 (en) Method and apparatus for storing information using an intelligent block storage controller
US10140064B2 (en) Method and apparatus for storing information using an intelligent block storage controller
US20190087115A1 (en) Method and system for in-line deduplication in a storage drive based on a non-collision hash
TWI548990B (zh) 記憶體儲存裝置及其還原方法與記憶體控制器
US10037245B2 (en) Raid system performance enhancement using compressed data and byte addressable storage devices
US10338833B1 (en) Method for achieving sequential I/O performance from a random workload
US20080148004A1 (en) Storage device with opportunistic address space
CN110795272B (zh) 用于在可变大小的i/o上促进的原子性和延迟保证的方法和***
WO2015145647A1 (ja) ストレージ装置とデータ処理方法及びストレージシステム
US11379447B2 (en) Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
US10884654B2 (en) System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US11074124B2 (en) Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US11347653B2 (en) Persistent storage device management
US10437667B2 (en) Raid system performance enhancement using compressed data
US9213486B2 (en) Writing new data of a first block size to a second block size using a write-write mode
TWI631556B (zh) 資料壓縮裝置及其資料壓縮方法
US6266671B1 (en) Data storage apparatus, method, and medium with variable data storage structure
US8139874B2 (en) Disk sector allocation for high performance access to images
US20200136656A1 (en) Combined blocks of parts of erasure coded data portions
JP6451769B2 (ja) ストレージ制御装置、及びストレージ制御プログラム
JPWO2016084228A1 (ja) ストレージ装置
US20070089023A1 (en) System and method for system resource access
JP6911443B2 (ja) 情報処理装置
US11907068B2 (en) Read request response for reconstructed data in a degraded drive
JP2024044792A (ja) メモリシステム