TWI729284B - 資料壓縮系統、有損資料壓縮的方法和資料壓縮的方法 - Google Patents

資料壓縮系統、有損資料壓縮的方法和資料壓縮的方法 Download PDF

Info

Publication number
TWI729284B
TWI729284B TW107112343A TW107112343A TWI729284B TW I729284 B TWI729284 B TW I729284B TW 107112343 A TW107112343 A TW 107112343A TW 107112343 A TW107112343 A TW 107112343A TW I729284 B TWI729284 B TW I729284B
Authority
TW
Taiwan
Prior art keywords
data
storage device
data compression
original data
original
Prior art date
Application number
TW107112343A
Other languages
English (en)
Other versions
TW201905689A (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 南韓商三星電子股份有限公司
Publication of TW201905689A publication Critical patent/TW201905689A/zh
Application granted granted Critical
Publication of TWI729284B publication Critical patent/TWI729284B/zh

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
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies
    • H03M7/6088Selection strategies according to the data type
    • 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
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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
    • 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/064Management of blocks
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • 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/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一種用於有損資料壓縮的方法,所述方法包括:在儲存 裝置處接收原始資料;接收對旗標壓縮的請求;存取板載資料壓縮演算法庫,其包含分別與有損資料壓縮方案對應的各種資料壓縮演算法;基於多個參數來選擇資料壓縮演算法之一;線上運行所選擇的資料壓縮演算法,使得當接收到原始資料時原始資料被儲存裝置壓縮,且接著原始資料被作為壓縮資料儲存在儲存裝置上;或者離線運行所選擇的資料壓縮演算法,使得原始資料儲存在儲存裝置處,此後由儲存裝置根據所選擇的資料壓縮演算法壓縮原始資料,且原始資料被作為壓縮資料重新保存在儲存裝置處。

Description

資料壓縮系統、有損資料壓縮的方法和資料壓 縮的方法 [相關申請的交叉參考]
本申請主張在2017年8月7日提出申請的美國臨時專利申請第62/542,008號的優先權及權利,且還主張在2017年6月20日提出申請的美國臨時專利申請第62/522,423號的優先權及權利,並與同樣主張所述美國臨時專利申請第62/522,423號的優先權及權利且在2017年8月28日提出申請的美國非臨時專利申請第15/688,779號相關,以上美國臨時專利申請及美國非臨時專利申請全文併入本申請供參考。
本公開的一些實施例大體來說涉及一種包括資料壓縮方案的驅動裝置。
資料壓縮是用於提高對資料儲存容量(例如硬儲存裝 置)的有效使用的眾所周知且有用的技術。然而,一些資料壓縮方案或演算法對於某些類型的資料而言比對於其他資料而言更行之有效。資料壓縮可被稱為“無損”資料壓縮或“有損”資料壓縮,在“無損”資料壓縮中,可從經壓縮版本獲得準確的原始資料(original data),而在“有損”資料壓縮情形中,則無法從經壓縮版本恢復準確的輸入資料。
一般來說,資料壓縮是在主機處發生的,主機接著將經壓縮資料作為經壓縮資料檔案發送到驅動器(例如,硬碟驅動器(hard disk drive,HDD)或固態驅動器(solid state drive,SSD))。然而,驅動器上資料壓縮(on-drive data compression)是驅動器從主機接收原始的、未經壓縮的資料檔案、對所述資料進行壓縮且接著將經壓縮的資料檔案儲存在驅動器上。
之前的驅動器上資料壓縮方法“笨拙地”對資料進行壓縮,或者執行非智慧的/過於簡單化的資料壓縮,其使用相同的資料壓縮方法或演算法對驅動器接收到的每一個原始資料檔案進行壓縮。之後,驅動器將經壓縮的資料作為經壓縮的資料檔案儲存在驅動器上。也就是說,非智慧的驅動器上資料壓縮是指驅動器取得從主機接收的每一資料,且使用相同的資料壓縮演算法對每一資料進行壓縮,且接著將經壓縮的資料檔案儲存在驅動器上。
當使用非智慧資料壓縮時,驅動器會忽略資料的區別性特性,例如可指示以下的特性:資料是否已被主機壓縮過;資料之前是否被加密過;驅動器的使用者是否想要對資料進行壓縮、以及想要壓縮到何種程度、或者想要根據什麼參數來進行壓縮;以及各種其他因素。另外,當使用非智慧資料壓縮時,驅動器會 忽略某些類型的資料與其他類型的資料相比更易於根據一種或多種特定的資料壓縮方案來進行壓縮的事實。
之前實施的“笨拙的”或非智慧的資料壓縮版本(例如,通用資料壓縮)是基於使用者在力圖將資料保存在驅動器上時不想採用會導致損失重要資料有損資料壓縮方案這一假設來進行的。之前實施的非智慧資料壓縮版本因此總是涉及無損資料壓縮,而非有損資料壓縮。也就是說,由於有損資料壓縮對特定類型的資料(例如,資料庫、工作資料檔案等)而言是有害的,且可能會潛在地引起資料毀壞,因此為維持資料的完整性,之前只實施無損資料壓縮方案。
另外,之前實施的有損資料壓縮方案總是由主機執行,且資料不被驅動器壓縮。而是,驅動器簡單地接收並儲存從主機發送的經壓縮的資料檔案。主機通常對應於力圖壓縮及儲存資料的使用者的中央處理器(central processing unit,CPU)/電腦處理器。遺憾的是,與這種有損資料壓縮相關聯的計算操作通常佔用大量的中央處理器迴圈,且還消耗對應的大量能量。
公開以上資訊僅是為了增強對本公開的背景的理解,且因此可能含有並非構成現有技術的資訊。
本公開的實施例提供一種驅動器,所述驅動器無需主機的輔助便能夠智慧地執行有損資料壓縮。
根據一個實施例,提供一種用於有損資料壓縮的方法,所述方法包括:在儲存裝置處接收原始資料;接收請求壓縮旗標; 存取板載資料壓縮演算法庫,所述板載資料壓縮演算法庫包含分別與有損資料壓縮方案對應的各種資料壓縮演算法;基於多個參數來選擇所述資料壓縮演算法中的一者;線上運行所述資料壓縮演算法,使得當接收到所述原始資料時所述原始資料被所述儲存裝置壓縮,且接著所述原始資料被作為壓縮資料儲存在所述儲存裝置上;或者離線運行所述資料壓縮演算法,使得所述原始資料儲存在所述儲存裝置處,此後由所述儲存裝置根據所選擇的所述資料壓縮演算法來壓縮所述原始資料,且所述原始資料被作為壓縮資料重新保存在所述儲存裝置處。
所述參數可包含在與所述原始資料對應的金鑰值對的增強金鑰中,或者包含在與所述儲存裝置相關聯的服務品質(QoS)偏好資料檔案中。
所述方法還可包括提醒請求壓縮所述原始資料的使用者提供所述參數。
所述方法還可包括:讀取包含在所述原始資料中的與物件簽名或物件擴展對應的中繼資料;存取所述儲存裝置上的物件簽名詞典或所述儲存裝置上的物件擴展詞典,以分別基於所述物件簽名或所述物件擴展確定所述原始資料的資料類型;以及基於所確定的所述資料類型來選擇所述資料壓縮演算法。
根據另一個實施例,提供一種資料壓縮方法,所述方法包括:在儲存裝置處接收原始資料;使用所述儲存裝置根據有損資料壓縮方案對所述原始資料進行壓縮,以產生壓縮資料;以及將經壓縮的所述資料儲存在所述儲存裝置上。
所述方法還可包括使用所述儲存裝置確定用於對所述 原始資料進行壓縮的資料壓縮方案。
所述方法還可包括:建立包含與壓縮方案及參數有關的資訊的服務品質(QoS)偏好資料檔案;由所述儲存裝置識別與所述原始資料對應的目的檔;以及根據所述資訊及所述目的檔來確定用於對所述原始資料進行壓縮的所述資料壓縮方案。
所述方法還可包括:讀取與所述原始資料對應的金鑰值對的金鑰的中繼資料;根據所述中繼資料從所述儲存裝置上的資料壓縮演算法庫選擇資料壓縮演算法;以及根據所選擇的所述資料壓縮演算法來執行用於對所述原始資料進行壓縮的所述資料壓縮方案。
所述原始資料可包括物件簽名或物件擴展,所述方法還包括:存取所述儲存裝置上的物件簽名詞典或所述儲存裝置上的物件擴展詞典,以分別基於所述物件簽名或所述物件擴展確定所述原始資料的資料類型;以及基於所確定的所述資料類型來執行所述資料壓縮方案。
所述方法還可包括根據使用者請求將所述原始資料從主機電腦發送到所述儲存裝置。
所述方法還可包括:提供用於提醒使用者提供資訊的功能表;以及根據由所述使用者提供的所述資訊來確定用於對所述原始資料進行壓縮的資料壓縮演算法。
所述方法還可包括將所述原始資料儲存在所述儲存裝置上;估算與所述儲存裝置對應的可用時間或資源;以及在確定有足夠的時間及資源可用時,對所述原始資料進行壓縮。
根據另一個實施例,提供一種資料壓縮系統,所述資料 壓縮系統包括:主機;以及儲存裝置,被配置成從所述主機接收原始資料,且包括記憶體及處理器,所述處理器被配置成執行指令,所述指令在由所述處理器執行時使所述處理器:使所述儲存裝置根據有損資料壓縮方案對所述原始資料進行壓縮以產生經壓縮的資料;以及使所述儲存裝置將經壓縮的所述資料儲存在所述儲存裝置上。
所述指令在由所述處理器執行時還可使所述處理器使所述儲存裝置確定用於對所述原始資料進行壓縮的資料壓縮方案。
所述指令在由所述處理器執行時還可使所述處理器使所述儲存裝置:存取包含與壓縮方案及參數有關的資訊的服務品質(QoS)偏好資料檔案;識別與所述原始資料對應的目的檔;以及根據所述資訊及所述目的檔來確定用於對所述原始資料進行壓縮的所述資料壓縮方案。
所述指令在由所述處理器執行時還可使所述處理器使所述儲存裝置:讀取與所述原始資料對應的金鑰值對的金鑰的中繼資料;根據所述中繼資料從資料壓縮演算法庫選擇資料壓縮演算法;以及根據所選擇的所述資料壓縮演算法來執行用於對所述原始資料進行壓縮的所述資料壓縮方案。
所述原始資料可包括物件簽名或物件擴展,且所述指令在由所述處理器執行時還可使所述處理器使所述儲存裝置:存取所述儲存裝置上的物件簽名詞典或所述儲存裝置上的物件擴展詞典,以分別基於所述物件簽名或所述物件擴展確定所述原始資料的資料類型;以及基於所確定的所述資料類型來執行所述資料壓 縮方案。
所述指令在由所述處理器執行時還使所述處理器使所述儲存裝置根據使用者請求從主機電腦接收所述原始資料。
所述指令在由所述處理器執行時還可使所述處理器:使所述主機提供用於提醒正在請求對所述原始資料進行壓縮的使用者提供資訊的功能表;以及使所述儲存裝置根據由所述使用者提供的所述資訊來確定用於對所述原始資料進行壓縮的資料壓縮演算法。
所述指令在由所述處理器執行時還可使所述處理器使所述儲存裝置:將所述原始資料儲存在所述儲存裝置上;估算與所述儲存裝置對應的可用時間或資源;以及當有足夠的時間及資源可用時,對所述原始資料進行壓縮。
本文所公開的根據實施例的驅動器能夠接收原始資料以及對所述原始資料執行有損資料壓縮,從而允許用戶改變與資料壓縮對應的特定參數的控制級別。因此,通過卸載原本可能會對使用者系統造成相對實質性的負擔的有損資料壓縮活動,驅動器能夠將主機中央處理器迴圈空出來。在一些實施例中,驅動器可在驅動器上實施額外的或增加的硬體資源,或者可實施作業系統(operating system,OS)級別及/或驅動器級別變化。
1:金鑰
2:值
3:資料壓縮預測器
4:物件擴展詞典
5:對象簽名詞典
6:熵估算演算法庫
7:壓縮器
11:接收開關
12:出口開關
13:輸出
14:服務品質偏好資料檔案
15:板載裝置性能簡檔/裝置性能簡檔
16:壓縮演算法性能表
17:資料壓縮演算法庫/板載編碼庫
110、120:有損資料壓縮方案
112:主機
113:壓縮/資料壓縮/無損資料壓縮
114:經壓縮的資料檔案
116:驅動器
118:原始資料檔案/原始資料
122:主機/主機電腦/主機中央處理器
123:壓縮/有損資料壓縮/有損壓縮/資料壓縮
124:經壓縮的資料檔案/經壓縮的資料/經壓縮的有損資料檔案
125:儲存/保存/重新保存
126:驅動器/智慧有損資料壓縮驅動器/儲存裝置/智慧壓縮驅 動器
128:未經壓縮的資料/原始資料檔案/原始資料/資料檔案/原始的未經壓縮的資料/資料/物件原始資料檔案
結合附圖閱讀以下說明可更詳細地理解一些實施例,在附圖中: 圖1繪示有損資料壓縮的傳統方法的實例與根據本公開實施例的有損資料壓縮的方法的實例之間的比較。
圖2繪示根據本公開實施例的無需主機的輔助便能夠在驅動器處執行智慧有損資料壓縮的有損壓縮驅動器。
通過參照對實施例及附圖的以下詳細說明,可更容易地理解本發明概念的特徵及其實現方法。在下文中,將參照附圖更詳細地闡述實施例。然而,本發明可被實施為各種不同形式,而不應被視為僅限於本文所示出的實施例。確切來說,提供這些實施例作為實例是為了使本公開將透徹及完整,並將向所屬領域中的技術人員充分傳達本發明的各個方面及特徵。因此,可不再闡述對於所屬領域中的一般技術人員完整地理解本發明的各個方面及特徵而言並非必需的工藝、元件及技術。除非另外注明,否則在所有附圖及書面說明通篇中相同的參考編號表示相同的元件,且因此,將不再對其予以重複說明。另外,為使說明清楚起見,可不再示出與實施例的說明無關的部件。在圖式中,為清晰起見,可誇大各個元件、各個層及各個區的相對大小。
在以下說明中,出於解釋目的,闡述各種具體細節來提供對各種實施例的透徹理解。然而,顯而易見的是,可不使用這些具體細節或者可使用一種或多種等效配置來實踐各種實施例。在其他實例中,以方塊圖形式示出眾所周知的結構及裝置以避免不必要地混淆各種實施例。
應理解,當稱一元件、層、區或元件位於另一元件、層、 區或元件“上(on)”、“連接到(connected to)”或“耦合到(coupled to)”另一元件、層、區或元件時,所述元件、層、區或元件可直接位於所述另一元件、層、區或元件上、直接連接到或直接耦合到所述另一元件、層、區或元件,抑或可存在一個或多個中間元件、層、區或元件。然而,“直接連接/直接耦合(directly connected/directly coupled)”則是指一個元件與另一個元件直接連接或直接耦合,而不具有中間元件。同時,例如“位於...之間(between)”、“直接位於...之間(immediately between)”或者“相鄰於...(adjacent to)”及“緊鄰於...(directly adjacent to)”等闡述各個元件之間的關係的其他表達可類似地加以解釋。另外,還應理解,當稱一元件或層“位於”兩個元件或層“之間(between)”時,所述元件或層可為所述兩個元件或層之間的唯一元件或層,抑或也可存在一個或多個中間元件或層。
本文所用術語僅是出於闡述特定實施例的目的而並非旨在限制本發明。除非上下文清楚地另外指明,否則本文所用單數形式“一(a及an)”旨在也包括複數形式。還應理解,當在本說明書中使用用語“包括(comprises、comprising)”、“具有(have、having)”及“包含(includes、including)”時,是指明所陳述特徵、整數、步驟、操作、元件及/或元件的存在,但不排除一個或多個其他特徵、整數、步驟、操作、元件、元件及/或其群組的存在或添加。本文所用用語“及/或”包括相關列出項中的一個或多個項的任意及所有組合。
本文所用用語“實質上(substantially)”、“大約(about)”及類似用語用作近似用語、而並非作為程度用語,並 且旨在考慮到所屬領域中的一般技術人員將知的測量值或計算值的固有偏差。本文所述“大約”或“近似地”包括所闡述值且意指處於所屬領域中的一般技術人員所確定的特定值的偏差的可接受範圍內,此考慮到所說的測量以及與特定品質的測量相關聯的誤差(即,測量系統的限制)。舉例來說,“大約”可意指處於一個或多個標準差範圍內,或處於所述值的±30%、20%、10%、5%內。另外,在闡述本發明的實施例時使用“可(may)”是指“本發明的一個或多個實施例”。本文所用用語“使用(use)”、“正使用(using)”及“被使用(used)”可被視為分別與用語“利用(utilize)”、“正利用(utilizing)”及“被利用(utilized)”同義。另外,用語“示例性(exemplary)”旨在指實例或例示。
當某一實施例可被以不同方式實施時,特定工藝次序可與所闡述的次序不同地執行。舉例來說,兩個連續闡述的工藝可實質上同時執行或以與所闡述的次序相反的次序執行。
在本文中參照剖視圖闡述各種實施例,所述剖視圖為實施例及/或中間結構的示意性例示。因此,預期會因例如製造技術及/或容差而導致相對於例示形狀的變化。另外,本文所公開的具體結構說明或功能說明僅是例示性的,目的在於闡述根據本公開概念的實施例。因此,本文所公開的實施例不應被視為僅限於各個區的特定例示形狀,而是應包含由例如製造引起的形狀偏差。舉例來說,被例示為矩形的植入區通常應具有圓形特徵或曲線特徵及/或在其邊緣存在植入濃度的梯度而非從植入區到非植入區為二元變化。同樣地,通過植入而形成的隱埋區可在所述隱埋區與在進行植入時所經過的表面之間的區中引起一些植入。因此,圖 式中所例示的區為示意性的且其形狀並非旨在例示裝置的區的實際形狀且並非旨在進行限制。另外,如所屬領域中的技術人員應認識到,可採用各種不同的方式來對所闡述的實施例進行修改,而此完全不背離本公開的精神及範圍。
根據本文所述本發明的實施例的電子裝置或電裝置及/或任何其他相關裝置或元件可使用任何適合的硬體、韌體(例如,應用專用積體電路(application-specific integrated circuit))、軟體、或軟體、韌體、及硬體的組合來實施。舉例來說,可將這些裝置的各種元件形成在一個積體電路(integrated circuit,IC)晶片上或單獨的積體電路晶片上。此外,可將這些裝置的各種元件實施在柔性印刷電路膜(flexible printed circuit film)、帶載封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上、或形成在一個襯底上。此外,這些裝置的各種元件可為在一個或多個計算裝置中由一個或多個處理器運行、執行電腦程式指令並與用於執行本文所述各種功能性的其他系統元件進行交互的過程或執行緒(thread)。電腦程式指令儲存在可在使用例如(舉例來說)隨機存取記憶體(random access memory,RAM)等標準記憶體裝置的計算裝置中實施的記憶體中。電腦程式指令也可儲存在例如(舉例來說)緊湊型光碟唯讀記憶體(compact disc read only memory,CD-ROM)、快閃記憶體驅動器(flash drive)或類似元件等其他非暫時性電腦可讀媒體中。另外,所屬領域中的技術人員應知,在不背離本發明示例性實施例的精神及範圍的條件下,可將各種計算裝置的功能性組合或整合成單一的計算裝置,或者可使一特定計算裝置的功能性跨越一個或多個其他計算裝置 分佈。
除非另外定義,否則本文所用所有用語(包括技術及科學用語)的含義均與本發明所屬領域中的普通技術人員所通常理解的含義相同。還應理解,用語(例如在常用詞典中所定義的用語)應被解釋為具有與其在相關技術的上下文及/或本說明書中的含義一致的含義,且除非在本文中明確定義,否則不應將其解釋為具有理想化或過於正式的意義。
如上所述,在傳統上,在無需主機的輔助的條件下由硬儲存裝置執行的非智慧資料壓縮總是為無損壓縮的形式。另外,在傳統上,所有的有損資料壓縮均是由主機/主機電腦/主機中央處理器執行的,而不是由驅動器執行的。然而,可存在其中不同類型的資料適合於較高程度壓縮的情景,在這些情景中有損資料壓縮是可接受的或者甚至是所期望的(例如,當編輯及/或儲存音樂資料檔案、視頻資料檔案或其他多媒體資料檔案時)。此外,可能會存在以下情況:在驅動器處壓縮原始資料檔案、同時將原本被主機中央處理器消耗用於執行壓縮的資源空出來可能是有用的。
本公開的實施例提供一種儲存裝置(例如固態驅動器(SSD)),所述儲存裝置能夠執行有損資料壓縮及儲存而在執行資料壓縮時無需對應主機的輔助,從而將主機的中央處理器空出來用於其他用戶活動。
圖1繪示有損資料壓縮的傳統方法的實例與根據本公開實施例的有損資料壓縮的方法的實例之間的比較。
參照圖1,如前面所闡述,傳統的驅動器116沒有在無需主機112的輔助的條件下執行有損資料壓縮。而是,如圖1所 示,通過以下步驟來執行有損資料壓縮方案110:在主機112對資料進行壓縮113之前將原始資料檔案118提供到主機112;以及將經壓縮的資料檔案114發送到驅動器116以進行儲存,從而會耗盡主機112的系統資源。也就是說,在傳統上,如果要對原始資料檔案118(例如,脈衝碼調制(PCM)格式的原始聲音/音訊資料檔案)進行壓縮,則使用者向主機112發出指令來將原始資料檔案118壓縮113成經壓縮的資料檔案114(例如,壓縮成動態圖像專家壓縮標準音頻層面3(MP3)資料檔案),且主機112將接著執行資料壓縮113來創建經壓縮的資料檔案114。之後,主機112會將經壓縮的資料檔案114發送到驅動器116以在驅動器116上進行儲存。
因此,儘管之前的技術使驅動器116能夠對原始資料118執行無損資料壓縮113(此將會保護資料保真度(data fidelity)),然而驅動器116不能夠執行有損資料壓縮。當資料保真度損失對於用戶而言是可接受的且被允許的、或者是用戶請求時(例如,當使用者偏好高容量的有損資料壓縮時,例如可能是對音樂及視頻進行編輯的情形),有損資料壓縮在傳統上將在對應的主機機器上(例如,在主機112上)佔用大量處理器迴圈。
有鑒於上述,如果有損資料壓縮的任務可被從位於使用者的主要中央處理器中的主機卸載,則可有所助益。因此,根據本公開實施例的驅動器126(例如,硬儲存裝置或固態驅動器(SSD))在從主機/主機電腦/主機中央處理器122接收原始的未經壓縮的資料/原始資料檔案128之後執行一個或多個有損資料壓縮方案120,並對原始資料檔案128進行壓縮123以產生經壓縮的 資料檔案124,經壓縮的資料檔案124會接著被儲存/保存125在驅動器126上。
根據本實施例,使用者可指令主機122(例如,通過指令中央處理器設定“請求壓縮”旗標)壓縮123原始資料128(例如,當用戶已完成對將以經壓縮的形式被保存在驅動器126上的視頻或音訊資料檔案進行編輯時),從而使驅動器126能夠使用有損資料壓縮來自動地對原始資料檔案128進行壓縮123以在驅動器126上產生經壓縮的資料檔案124,而無需使用主機122的資源。智慧有損資料壓縮驅動器126能夠通過對資料進行分析(例如,通過對資料檔案的類型、可用資料壓縮方法及演算法、使用者參數及服務品質(quality of service,QoS)要求等進行分析)以識別適合進行有損資料壓縮123的情形來實現自動資料壓縮。之後,驅動器126可根據所選擇的資料壓縮方案來執行有損資料壓縮123,且可將經壓縮的資料檔案124保存125在驅動器126上。應注意,驅動器126可在接收到資料128後便對資料128進行壓縮123,或者可在對資料進行壓縮123及將經壓縮的資料124儲存125在驅動器126上之前將資料以未經壓縮格式儲存少量的時間。
圖2繪示根據本公開實施例的無需主機的輔助便能夠在驅動器處執行智慧有損資料壓縮的有損壓縮驅動器。
參照圖2,如上所述,用戶可將原始資料檔案128(例如,PCM格式的原始聲音資料檔案)從主機122直接發送到驅動器126。之後,驅動器126能夠將原始資料檔案128識別為可被適合轉換成有損的、經壓縮的資料檔案124的原始資料檔案。之後, 驅動器126可執行有損資料壓縮123來在驅動器126內創建經壓縮的資料檔案124(例如,MP3資料檔案),從而將原始資料檔案128轉換成經壓縮的有損資料檔案124,且之後將經壓縮的有損資料檔案124儲存/保存125在驅動器126自身上。因此,本實施例是一種儲存裝置(例如,驅動器)126,其能夠自動地或半自動地執行得到良好控制的有損資料壓縮123、從而將原本將由主機122用來執行資料壓縮113的中央處理器時脈迴圈及資源空出來以用於其他活動。
“智慧壓縮(smart compress)”驅動器126可包括用於資料管理的命令及控制協定以及相對增強的盤上(例如,固態驅動器上)資源。舉例來說,不同于傳統的硬碟,驅動器126可包括資料壓縮演算法庫17,資料壓縮演算法庫17包括各種有損資料壓縮機制。板載編碼庫/資料壓縮演算法庫17可含有與用於執行各種有損資料壓縮方案及編碼方案的各種資料壓縮演算法對應的代碼。驅動器126還可包括被擴展成包含有損資料壓縮參數的服務品質(QoS)偏好資料檔案14。驅動器126可使用這些參數來確定如何對原始資料128進行壓縮。
來自用戶的每一個有損資料壓縮請求最終均與將進行壓縮123的原始資料檔案128相關聯。資料壓縮請求可含有明確地指明作為壓縮123的結果所應採用的檔案格式的直接命令、或者明確地指明用於引導驅動器126執行壓縮123的參數的直接命令。作為另外一種選擇,資料壓縮請求可對應於金鑰中繼資料中含有的嵌入式命令,且驅動器126可基於金鑰中繼資料來確定如何執行壓縮123。
在驅動器126以有損方式對檔進行壓縮123時,驅動器126可使用例如請求資料壓縮演算法或最終格式等資訊來確定使用何種壓縮方案(例如,從資料壓縮演算法庫17選擇哪一種資料壓縮演算法)。也就是說,驅動器126可使用各種資訊來得知驅動器126應使用某一種有損資料壓縮演算法對原始資料檔案128進行壓縮、或者得知驅動器126最終應根據特定的有損儲存格式(例如,MP3資料檔案、聯合圖像專家小組(JPEG)資料檔案、動態圖像專家小組(MPEG)資料檔案等)來保存經壓縮的資料檔案124。
作為另外一種選擇,驅動器126可使用參數及設定值(例如,被儲存在服務品質偏好資料檔案14中)來確定何時及如何對資料進行有損壓縮。舉例來說,服務品質檔可指示將某種擴展形式的所有檔案壓縮123成JPEG資料檔案。服務品質檔還可含有壓縮演算法的壓縮細節,例如使用戶可對具體資料壓縮方案或品質設定值進行選擇或微調、設定子採樣量或對各種其他參數進行控制。
因此,驅動器126可使用資訊來理解所接收到的任意給定原始資料檔案所需要的資料壓縮格式及相關聯的參數。根據本公開的實施例,可作為至少三個不同的選項中的一者或多者來遞送及確定資料壓縮格式及參數以使驅動器126能夠得知這些資訊,此將在以下進一步闡述。
作為驅動器126的增強特徵的另一個實例,驅動器126可包括編碼加速硬體(encoding acceleration),且可能夠連線地或離線地執行重復資料刪除(dedupe)且還能夠線上地或離線地進 行無損資料壓縮。當有損資料壓縮123是以線上操作執行時,資料是在(或近乎/實質上在)驅動器126接收到原始資料檔案128時被壓縮123。當有損資料壓縮123是以離線模式執行時,未經壓縮的資料128可在驅動器126上儲存不確定的時間量。接著,當驅動器126確定有足夠的時間/資源時,或者當驅動器126決定使用儲存在驅動器126上的未經壓縮的資料128來工作時,資料檔案128可被壓縮123並且可作為經壓縮的資料檔案124被重新保存125到驅動器126。驅動器126是決定進行線上操作還是進行離線操作可根據由驅動器126作出的與壓縮所需的可用時間及/或系統資源的估算量對應的估算而定。
這種估算可基於機器學習預測,且可基於對驅動器126的板載裝置性能簡檔(onboard device performance profile)15的分析來確定。舉例來說,裝置性能簡檔15可包括與驅動器126的正在使用的物理能力的記錄對應的資訊(例如,空閒的記憶體、處理器能力等),且可使用壓縮演算法性能表16來預測給定任務可能需要的空閒資源的量。基於裝置性能簡檔15及壓縮演算法性能表16中含有的資訊,驅動器126可基於對將要進行壓縮的原始資料檔案128的類型的判斷來確定來自資料壓縮演算法庫17的哪一種壓縮演算法將最有效地利用可用裝置資源。
壓縮演算法性能表16可含有關於多種壓縮演算法的資訊(例如,每一種壓縮演算法的平均壓縮比、每一種壓縮演算法的輸送量、每一種壓縮演算法的計算及記憶體資源要求等),且可能夠基於檔案類型及可用輸送量(可通過來自服務品質偏好資料檔案14的服務品質需求來確定)從資料壓縮演算法庫17選擇特 定資料壓縮演算法,且可能夠基於裝置性能簡檔15選擇裝置能力。
驅動器126的其他增強特徵可包括熵估算演算法庫6、物件簽名詞典5及/或物件擴展詞典4,它們能夠辨識不同類型的原始媒體資料檔案(例如,通過識別原始資料檔案的擴展或簽名)。
熵估算演算法庫6可含有用於對任意經採樣資料的熵進行測試從而確定資料檔案128的壓縮係數級別的代碼。基於熵的計算可用於搜索值2的一些部分以預測檔可被壓縮到何種程度。基於熵的計算基於熵資料或隨機資料更難壓縮這一原則(例如,已經過壓縮的檔具有較高的熵特性,且未經壓縮的檔更有可能具有更可壓縮的有序資料)來進行。物件簽名詞典5可含有已知的物件/檔簽名,所述已知的物件/檔簽名可對應於相應的壓縮技術。物件擴展詞典4可含有一系列已知的物件/檔擴展以及對這些類型的物件對於各種壓縮技術中的每一種而言可壓縮程度如何的評估。物件擴展詞典4將這一資訊提供到資料壓縮預測器3以便於壓縮。因此,物件擴展詞典4及物件簽名詞典5可向資料壓縮預測器提供資訊以便於壓縮(部分地通過對已經過無損壓縮的檔進行檢測,且不再對它們進行重複壓縮)。
因此,當接收到原始資料檔案128時,可使用驅動器126的各個元件來識別將要進行壓縮的原始資料128的類型,所述類型可用於影響資料壓縮預測器3及壓縮器7的操作,此又可用於從資料壓縮演算法庫17選擇恰當的資料壓縮演算法。舉例來說,資料壓縮預測器3可使用物件擴展詞典4、物件簽名詞典5及/或熵估算演算法庫6中含有的資訊來確定或說明確定值2的壓縮係數。
之後,壓縮器7可基於所指示的參數來執行資料壓縮。資料壓縮預測器3及壓縮器7可識別資料檔案,辨識資料檔案是何種類型,並基於例如以下因素來智慧地應用最有效的有損資料壓縮演算法:直接使用者需求、驅動器126的瞬態性能、根據服務品質偏好資料檔案14而定的服務品質需求(其可用于確定應使用何種資料壓縮方案來對資料進行壓縮)、儲存在壓縮演算法性能表16中的歷史資料壓縮演算法性能等。資料壓縮預測器3及壓縮器7隨後也可確定存在更好的資料壓縮演算法可用(例如,如果更多處理器空間變得可用,有更多緩衝器空間變得可用等)。
一旦資料壓縮預測器3確定了如何對原始資料檔案128進行壓縮,則將資訊提供到接收開關11,接收開關11接著在以下兩者之間切換:將資料(例如,值2)輸出到壓縮器7;或者通過將資料發送到出口開關12進行輸出13來對壓縮器7進行旁通(如果決定不進行壓縮,例如當接收到未被識別為需要進行無損壓縮的檔案類型時)。因此,資料壓縮預測器3確定壓縮應如何發生,且接收開關11將資料發送到壓縮器7或將資料發送到出口開關12進行輸出13。
以下提出確定用於對驅動器126接收到的原始資料檔案128進行壓縮123的恰當的壓縮方案及參數的三種選項。
作為第一選項,資料壓縮格式及參數可被確定為增強保存命令的顯式部分(explicit part)。
在傳統的系統中,被保存到驅動器126的每一個原始資料檔案128均可包括對驅動器126的最終保存命令(order),從而向驅動器126指示顯式指令來使用某一種資料壓縮類型及使用某 些資料壓縮參數保存某一種原始資料檔案128。
相比之下,使用這一選項,當使用者向主機122發出指令來命令驅動器126將原始資料檔案128保存為經壓縮的資料檔案124時,資料壓縮格式及參數可被作為保存命令的一部分得到明確確定。在本文中所提出的三個選項中,這一選項一般來說可與基於區塊的儲存裝置一起使用(這是因為根據以下所述第二選項,基於區塊的儲存裝置不具有金鑰值中繼資料選項)。然而,這一第一選項的實施方式可能需要對傳統的基於區塊的資料檔案系統的驅動器/作業系統層進行改變。
對於驅動器/作業系統層的改變可包括對引起向驅動器126發出寫入命令的所有使用者活動進行掃描以確定存在對原始資料檔案128進行有損壓縮123的意圖或機會(例如,用戶有意將點陣圖保存為JPEG,或者有意將點陣圖從未經壓縮驅動器移動到驅動器126)。對驅動器/作業系統層的另一種改變可包括中斷資料壓縮請求來確認用戶的意圖、以及提醒用戶提供關於壓縮123的參數的資訊(例如,使用者可在主機122處與功能表進行交互以使得使用者能夠選擇關於有損資料壓縮123的參數)。另外,可使用額外的經修改命令來傳送身份及參數資訊以及使驅動器126能夠識別哪些邏輯區塊位址(logical block address,LBA)與目標資料檔案相關聯。
在獲得與所建議的對驅動器/作業系統層的改變中的一者或多者相關聯的資訊之後,可將原始資料檔案128發送到驅動器126,且作業系統及驅動器可將使用者選擇的資訊從主機122轉發到驅動器126。這一選項還可實施與驅動器126進行通信的某 些增強協議。
作為第二選項,可將資料壓縮格式及相關聯的參數明確地編碼在金鑰1及值2((KV)對)的金鑰1中。驅動器126可對增強命令或命令集作出回應,或者可檢測與原始資料128相關聯的充實金鑰1,其中可有損壓縮資料的寫入伴隨有“請求壓縮”旗標、資料壓縮格式識別、及/或資料壓縮格式參數。
在根據這一選項的基於KV的系統(KV-based system)中,可將資料壓縮格式及參數的相關資訊儲存在金鑰1的用於指示應如何儲存資料的中繼資料部分中。舉例來說,金鑰1可具有指示經壓縮的資料檔案124應使用某一資料壓縮設定值及某一子採樣量而被儲存為JPEG資料檔案的中繼資料。舉例來說,驅動器126的資料壓縮預測器3及壓縮器7可使用金鑰1中含有的資訊(例如,中繼資料)來判斷是否應對資料檔案128進行修改/壓縮以及應如何執行資料壓縮。
另外,金鑰1可含有指示資料檔案128的類型的檔/物件擴展,所述檔/物件擴展可提供關於是否執行壓縮/如何執行壓縮的資訊。在物件擴展詞典4中可維持有一系列已知的物件擴展,且資料壓縮預測器3可使用來自物件擴展詞典4的資訊來確定資料壓縮123的類型。
金鑰1還可含有檔/物件簽名,即一行代碼,所述一行代碼提供關於儲存在KV對的值2中的資料檔案128的類型的資訊。在物件簽名詞典5中可維持有一系列已知的資料類型的簽名,且來自物件簽名詞典5的資訊可被提供到資料壓縮預測器3以確定壓縮123使用的類型。
因此,驅動器126可接收金鑰1來指示所接收到的資料是原始媒體資料檔案,且金鑰1可含有應如何進行資料壓縮的參數。因此,物件特徵詞典5或物件擴展詞典4可通過讀取金鑰1的資訊/中繼資料來檢測與值2對應的所接收到的原始資料檔案128應被壓縮,且可使用中繼資料來確定應使用來自資料壓縮演算法庫17的何種資料壓縮演算法。
驅動器126可讀取金鑰1的中繼資料部分以確定如何對資料進行壓縮123。當資料檔案128被作為KV物件發送到KV儲存體時,KV儲存體可讀取金鑰1,可辨識並讀取中繼資料部分,且可確定驅動器126被指令使用所指示的資料壓縮格式及參數以所選擇類型的有損資料壓縮123來保存125經壓縮的資料檔案124。通過使用中繼資料部分中含有的資訊,驅動器126可使用所指定的資料壓縮演算法及參數來對相關聯的原始資料檔案128進行壓縮123。
因此,資料壓縮格式及參數可為KV儲存系統的顯式部分。KV對的金鑰1可含有包含隱藏資訊的中繼資料部分,其中可對參數進行編碼以使驅動器126能夠識別可壓縮的資料。這種中繼資料資訊的使用者級輸入(user-level entry)可使用KV儲存軟體堆疊來完成。也就是說,用戶可對想要進行有損壓縮123的資料檔案128標記標籤,與所述標籤對應的資訊包括在KV對的金鑰1中。
這一選項為使用者提供“細粒度”控制,容易實施,且可在作出非常小的改變的條件下實施。根據這一選項,使用者可理解當某一類型的原始資料檔案被保存到驅動器126時,將對所 述資料進行壓縮。
作為第三選項,資料壓縮格式及參數可作為較大的服務品質(QoS)偏好資料檔案14的一部分被以隱式方式進行。服務品質偏好資料檔案14可產生(例如,通過用戶)且使用驅動器126來建立以規定確切的或通用的有損壓縮及儲存選項。服務品質偏好資料檔案14可含有資料壓縮策略的特定及/或全域實施方式的設定值(例如,以指示將應用於給定類型的所有資料檔案128的默認資料壓縮類型及參數、以要求預留原始資料檔案128的備份副本、以在給定狀況下阻止或延遲有損資料壓縮123等)。
服務品質偏好資料檔案14可含有由驅動器126用於識別物件原始資料檔案128的資訊(例如,金鑰1中的資訊、資料檔案擴展、首標籤名(header signature)等)。在驅動器126識別到與服務品質偏好資料檔案14適配的媒體資料檔案後,可通過智慧驅動器126來自動地實施服務品質偏好資料檔案14中所含有的選項。驅動器126可使用服務品質偏好資料檔案14中的資訊來選擇並自動應用恰當的資料壓縮演算法及參數。在一些實施例中,全域服務品質需求可對衝突的使用者指令或關鍵字段指定(key-field designation)進行覆蓋或延遲。
因此,驅動器126可被配置成當使用者使主機122向驅動器126發送特定類型的原始資料檔案128時,驅動器126可根據服務品質偏好資料檔案14以對應的方式來壓縮123及保存125資料。這一選項在理論上使得在對通用規則進行初始配置之後使用者的控制較少,此可應用於數以千計的資料檔案128,從而不再需要來自使用者的一些精細控制。然而,這一選項能夠實現全域 資料壓縮控制,以使得服務品質偏好資料檔案14可能夠實現資料壓縮機制的全域配置,且可減少侵入性的用戶交互。應注意,根據本實施例的驅動器126可包括額外的硬體資源,例如較快的控制器處理器、較大的寫入緩衝器、較大的控制器處理器隨機存取記憶體分配、及/或資料壓縮/編碼加速器中的一者或多者。
因此,上述實施例提供一種能夠進行智慧有損資料壓縮的自給自足的儲存裝置。
以上是對示例性實施例的例示,而不應被視為對示例性實施例的限制。儘管已闡述了幾個示例性實施例,但是所屬領域中的技術人員將容易地理解,在不實質上背離示例性實施例的新穎教示及優點的條件下,在示例性實施例中可進行許多修改。因此,所有這些修改均旨在包含在由權利要求書所界定的示例性實施例的範圍內。在權利要求書中,手段附加功能條款旨在涵蓋執行所述功能的本文所述結構,且不僅涵蓋結構等效形式且更涵蓋等效結構。因此,應理解,以上是對示例性實施例的例示,而不應被視為僅限於所公開的具體實施例,且對所公開的示例性實施例的修改形式以及其他示例性實施例也旨在包含於所附權利要求書的範圍內。本發明概念是由以上權利要求書界定,其中所述權利要求書的等效形式包含在本文中。
110、120:有損資料壓縮方案
112:主機
113:壓縮/資料壓縮/無損資料壓縮
114:經壓縮的資料檔案
116:驅動器
118:原始資料檔案/原始資料
122:主機/主機電腦/主機中央處理器
123:壓縮/有損資料壓縮/有損壓縮/資料壓縮
124:經壓縮的資料檔案/經壓縮的資料/經壓縮的有損資料檔案
125:儲存/保存/重新保存
126:驅動器/智慧有損資料壓縮驅動器/儲存裝置/智慧壓縮驅動器
128:未經壓縮的資料/原始資料檔案/原始資料/資料檔案/原始的未經壓縮的資料/資料/物件原始資料檔案

Claims (17)

  1. 一種用於有損資料壓縮的方法,所述方法包括:在儲存裝置處接收原始資料;接收壓縮的請求;存取資料壓縮演算法庫,所述資料壓縮演算法庫包含分別與有損資料壓縮方案對應的資料壓縮演算法;基於與所述原始資料對應的金鑰值對中的金鑰相關聯的中繼資料來選擇所述資料壓縮演算法中的一者;以及運行所選擇的所述資料壓縮演算法,其中所述儲存裝置被配置成根據第一模式或第二模式執行所述資料壓縮演算法,在所述第一模式中所選擇的所述資料壓縮演算法是線上運行,使得所接收到的原始資料被所述儲存裝置壓縮,且所述原始資料被作為經壓縮的資料儲存在所述儲存裝置上,在所述第二模式中所選擇的所述資料壓縮演算法是離線運行,使得所述原始資料儲存在所述儲存裝置處,由所述儲存裝置根據所選擇的所述資料壓縮演算法來壓縮所述原始資料,且所述原始資料被作為經壓縮的資料重新保存在所述儲存裝置處。
  2. 如申請專利範圍第1項所述的方法,更包括提醒請求壓縮所述原始資料的使用者提供參數。
  3. 如申請專利範圍第1項所述的方法,更包括:讀取在所述原始資料中相關聯的與物件簽名或物件擴展對應的中繼資料;存取所述儲存裝置上的物件簽名詞典或所述儲存裝置上的物 件擴展詞典,以分別基於所述物件簽名或所述物件擴展確定所述原始資料的資料類型;以及基於所確定的所述資料類型來選擇所述資料壓縮演算法。
  4. 一種資料壓縮方法,所述方法包括:在儲存裝置處接收原始資料;使用所述儲存裝置根據有損資料壓縮方案對所述原始資料進行壓縮,以產生經壓縮的資料;將所述經壓縮的資料儲存在所述儲存裝置上;讀取與所述原始資料對應的金鑰值對的金鑰的中繼資料;根據所述中繼資料從所述儲存裝置上的資料壓縮演算法庫選擇資料壓縮演算法;以及根據所選擇的所述資料壓縮演算法來執行用於對所述原始資料進行壓縮的資料壓縮方案。
  5. 如申請專利範圍第4項所述的方法,更包括使用所述儲存裝置確定用於對所述原始資料進行壓縮的所述資料壓縮方案。
  6. 如申請專利範圍第5項所述的方法,更包括:建立包含與壓縮方案及參數有關的資訊的服務品質偏好資料檔案;由所述儲存裝置識別與所述原始資料對應的目的檔;以及根據所述資訊及所述目的檔來確定用於對所述原始資料進行壓縮的所述資料壓縮方案。
  7. 如申請專利範圍第4項所述的方法,其中所述原始資料包括物件簽名或物件擴展,所述方法更包括: 存取所述儲存裝置上的物件簽名詞典或所述儲存裝置上的物件擴展詞典,以分別基於所述物件簽名或所述物件擴展確定所述原始資料的資料類型;以及基於所確定的所述資料類型來執行資料壓縮方案。
  8. 如申請專利範圍第4項所述的方法,更包括根據使用者請求將所述原始資料從主機電腦發送到所述儲存裝置。
  9. 如申請專利範圍第8項所述的方法,更包括:提供用於提醒使用者提供資訊的功能表;以及根據由所述使用者提供的所述資訊來確定用於對所述原始資料進行壓縮的資料壓縮演算法。
  10. 如申請專利範圍第4項所述的方法,更包括將所述原始資料儲存在所述儲存裝置上;估算與所述儲存裝置對應的可用時間或資源;以及在確定有足夠的時間及資源可用時,對所述原始資料進行壓縮。
  11. 一種資料壓縮系統,包括:主機;以及儲存裝置,被配置成從所述主機接收原始資料,且包括:記憶體;以及處理器,被配置成執行指令,所述指令在由所述處理器執行時使所述處理器:使所述儲存裝置根據有損資料壓縮方案對所述原始資料進行壓縮以產生經壓縮的資料;以及 使所述儲存裝置將所述經壓縮的資料儲存在所述儲存裝置上;讀取與所述原始資料對應的金鑰值對的金鑰的中繼資料;根據所述中繼資料從資料壓縮演算法庫選擇資料壓縮演算法;以及根據所選擇的所述資料壓縮演算法來執行用於對所述原始資料進行壓縮的資料壓縮方案。
  12. 如申請專利範圍第11項所述的系統,其中所述指令在由所述處理器執行時更使所述處理器使所述儲存裝置確定用於對所述原始資料進行壓縮的資料壓縮方案。
  13. 如申請專利範圍第12項所述的系統,其中所述指令在由所述處理器執行時更使所述處理器使所述儲存裝置:存取包含與壓縮方案及參數有關的資訊的服務品質偏好資料檔案;識別與所述原始資料對應的目的檔;以及根據所述資訊及所述目的檔來確定用於對所述原始資料進行壓縮的所述資料壓縮方案。
  14. 如申請專利範圍第12項所述的系統,其中所述原始資料包括物件簽名或物件擴展,且其中所述指令在由所述處理器執行時更使所述處理器使所述儲存裝置:存取所述儲存裝置上的物件簽名詞典或所述儲存裝置上的物件擴展詞典,以分別基於所述物件簽名或所述物件擴展確 定所述原始資料的資料類型;以及基於所確定的所述資料類型來執行所述資料壓縮方案。
  15. 如申請專利範圍第11項所述的系統,其中所述指令在由所述處理器執行時更使所述處理器使所述儲存裝置根據使用者請求從主機電腦接收所述原始資料。
  16. 如申請專利範圍第15項所述的系統,其中所述指令在由所述處理器執行時更使所述處理器:使所述主機提供用於提醒正在請求對所述原始資料進行壓縮的使用者提供資訊的功能表;以及使所述儲存裝置根據由所述使用者提供的所述資訊來確定用於對所述原始資料進行壓縮的資料壓縮演算法。
  17. 如申請專利範圍第11項所述的系統,其中所述指令在由所述處理器執行時更使所述處理器使所述儲存裝置:將所述原始資料儲存在所述儲存裝置上;估算與所述儲存裝置對應的可用時間或資源;以及當有足夠的時間及資源可用時,對所述原始資料進行壓縮。
TW107112343A 2017-06-20 2018-04-11 資料壓縮系統、有損資料壓縮的方法和資料壓縮的方法 TWI729284B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762522423P 2017-06-20 2017-06-20
US62/522,423 2017-06-20
US201762542008P 2017-08-07 2017-08-07
US62/542,008 2017-08-07
US15/728,261 US10715177B2 (en) 2017-06-20 2017-10-09 Lossy compression drive
US15/728,261 2017-10-09

Publications (2)

Publication Number Publication Date
TW201905689A TW201905689A (zh) 2019-02-01
TWI729284B true TWI729284B (zh) 2021-06-01

Family

ID=64656692

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107112343A TWI729284B (zh) 2017-06-20 2018-04-11 資料壓縮系統、有損資料壓縮的方法和資料壓縮的方法

Country Status (5)

Country Link
US (1) US10715177B2 (zh)
JP (1) JP7296197B2 (zh)
KR (1) KR102435046B1 (zh)
CN (1) CN109101522A (zh)
TW (1) TWI729284B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318891B1 (en) * 2018-07-23 2019-06-11 Google Llc Geometry encoder
US10891758B2 (en) 2018-07-23 2021-01-12 Google Llc Geometry encoder
US11106374B2 (en) * 2018-08-03 2021-08-31 EMC IP Holding Company LLC Managing inline data de-duplication in storage systems
US11209984B2 (en) * 2019-02-18 2021-12-28 Silicon Motion, Inc. Method and apparatus for performing data-compression management in a storage server
EP3971700A4 (en) * 2019-07-26 2022-05-25 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DATA PROCESSING IN A STORAGE SYSTEM AND COMPUTER-READABLE STORAGE MEDIUM
CN111294055B (zh) * 2020-02-21 2021-10-22 南京航空航天大学 一种基于自适应字典的数据压缩的编解码方法
US20210303156A1 (en) * 2020-03-25 2021-09-30 Samsung Electronics Co., Ltd. Dynamic quantization in storage devices using machine learning
CN111552669A (zh) * 2020-04-26 2020-08-18 北京达佳互联信息技术有限公司 数据处理方法、装置、计算设备和存储介质
CN111817722A (zh) * 2020-07-09 2020-10-23 北京奥星贝斯科技有限公司 数据压缩方法、装置及计算机设备
CN111966648B (zh) * 2020-07-29 2023-09-08 国机智能科技有限公司 一种工业数据的处理方法和电子设备
US11456754B2 (en) 2020-10-13 2022-09-27 Western Digital Technologies, Inc. Fixed size soft bit lossy compression in flash memory
US11431350B1 (en) * 2021-02-05 2022-08-30 Cox Communications, Inc. Lossy statistical data compression
CN113076293B (zh) * 2021-04-15 2024-03-08 湖南甲万科技有限公司 一种用于智能终端的数据扩容方法
US11456758B1 (en) 2021-04-23 2022-09-27 Western Digital Technologies, Inc. Adaptive soft-bit compression in flash memory
US11770434B1 (en) * 2022-10-18 2023-09-26 Dell Products L.P. Compression on-demand in a stream data platform

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020191692A1 (en) * 2001-02-13 2002-12-19 Realtime Data, Llc Bandwidth sensitive data compression and decompression
US20050210054A1 (en) * 2004-03-22 2005-09-22 Michael Harris Information management system
US20050243610A1 (en) * 2003-06-26 2005-11-03 Copan Systems Method and system for background processing of data in a storage system
US20070237176A1 (en) * 2006-03-30 2007-10-11 Sbc Knowledge Ventures L.P. System and method for enhancing data speed over communication lines
WO2014200526A1 (en) * 2013-06-13 2014-12-18 Microsoft Corporation Page-based compressed storage management

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309110A (ja) * 1993-04-20 1994-11-04 Kawasaki Steel Corp 複合型記憶装置
US5463772A (en) * 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
WO1996002895A1 (en) 1994-07-14 1996-02-01 Johnson Grace Company Method and apparatus for compressing images
US6121903A (en) 1998-01-27 2000-09-19 Infit Communications Ltd. On-the-fly data re-compression
BR0213596A (pt) 2001-09-26 2004-10-26 Interact Devices Inc Sistema e metodo para transmitir sinais de midia
JP2004078787A (ja) * 2002-08-22 2004-03-11 Alpine Electronics Inc 車載オーディオ装置およびデータ転送方法
US8099273B2 (en) * 2003-06-05 2012-01-17 Mentor Graphics Corporation Compression of emulation trace data
US8363837B2 (en) 2005-02-28 2013-01-29 HGST Netherlands B.V. Data storage device with data transformation capability
US20080037880A1 (en) 2006-08-11 2008-02-14 Lcj Enterprises Llc Scalable, progressive image compression and archiving system over a low bit rate internet protocol network
US8386444B2 (en) 2006-12-29 2013-02-26 Teradata Us, Inc. Techniques for selective compression of database information
US7941409B2 (en) * 2007-09-11 2011-05-10 Hitachi, Ltd. Method and apparatus for managing data compression and integrity in a computer storage system
GB0915766D0 (en) 2009-09-09 2009-10-07 Apt Licensing Ltd Apparatus and method for multidimensional adaptive audio coding
US8463944B2 (en) * 2010-01-05 2013-06-11 International Business Machines Corporation Optimal compression process selection methods
WO2011129818A1 (en) 2010-04-13 2011-10-20 Empire Technology Development Llc Adaptive compression
US10013354B2 (en) 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
US8345998B2 (en) 2010-08-10 2013-01-01 Xerox Corporation Compression scheme selection based on image data type and user selections
US8549518B1 (en) * 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8751830B2 (en) 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
US9048862B2 (en) * 2012-04-11 2015-06-02 Netapp, Inc. Systems and methods for selecting data compression for storage data in a storage system
US9118345B2 (en) 2012-10-04 2015-08-25 Altera Corporation Data compression profiler for configuration of compression
CN103023982B (zh) * 2012-11-22 2015-04-29 中国人民解放军国防科学技术大学 一种云存储客户端的低延迟元数据访问方法
CN103902632B (zh) 2012-12-31 2018-01-02 华为技术有限公司 键值存储系统中构建文件系统的方法、装置及电子设备
US9235905B2 (en) 2013-03-13 2016-01-12 Ologn Technologies Ag Efficient screen image transfer
US9448738B2 (en) 2013-03-15 2016-09-20 Western Digital Technologies, Inc. Compression and formatting of data for data storage systems
US9438426B2 (en) 2014-10-03 2016-09-06 Seagate Technology Llc Key-value data storage device with hybrid architecture
KR20160070512A (ko) * 2014-12-10 2016-06-20 삼성전자주식회사 반도체 장치 및 그 동작 방법
US9779023B1 (en) * 2015-06-30 2017-10-03 EMC IP Holding Company LLC Storing inline-compressed data in segments of contiguous physical blocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020191692A1 (en) * 2001-02-13 2002-12-19 Realtime Data, Llc Bandwidth sensitive data compression and decompression
US20050243610A1 (en) * 2003-06-26 2005-11-03 Copan Systems Method and system for background processing of data in a storage system
US20050210054A1 (en) * 2004-03-22 2005-09-22 Michael Harris Information management system
US20070237176A1 (en) * 2006-03-30 2007-10-11 Sbc Knowledge Ventures L.P. System and method for enhancing data speed over communication lines
WO2014200526A1 (en) * 2013-06-13 2014-12-18 Microsoft Corporation Page-based compressed storage management

Also Published As

Publication number Publication date
US20180367161A1 (en) 2018-12-20
KR20180138127A (ko) 2018-12-28
TW201905689A (zh) 2019-02-01
KR102435046B1 (ko) 2022-08-22
US10715177B2 (en) 2020-07-14
JP7296197B2 (ja) 2023-06-22
CN109101522A (zh) 2018-12-28
JP2019009774A (ja) 2019-01-17

Similar Documents

Publication Publication Date Title
TWI729284B (zh) 資料壓縮系統、有損資料壓縮的方法和資料壓縮的方法
US8171251B2 (en) Data storage management method and device
US10423508B2 (en) Method and system for a high-priority read based on an in-place suspend/resume write
EP3108371B1 (en) Modified memory compression
US9471620B2 (en) Sub-block partitioning for hash-based deduplication
US8595199B2 (en) Real-time selection of compression operations
US9792350B2 (en) Real-time classification of data into data compression domains
CN105474200A (zh) 具有占位符的水合和脱水
JP7169098B2 (ja) ストレージドライブ、及びその圧縮システム並びにそのデータ圧縮方法
US9684665B2 (en) Storage apparatus and data compression method
WO2014188528A1 (ja) メモリ装置、計算機システム及びメモリ装置の制御方法
US10474385B2 (en) Managing memory fragmentation in hardware-assisted data compression
US10394453B1 (en) Method and system for choosing an optimal compression algorithm considering resources
US10324660B2 (en) Determining whether to compress data prior to storage thereof
TWI553462B (zh) 可降低耗電之硬碟裝置以及降低硬碟裝置耗電之方法
WO2024002077A1 (zh) 数据传输的方法、多核芯片
TWI813876B (zh) 解壓縮系統、記憶體系統以及解壓縮的方法
CN116301659A (zh) 特定写入模式下的固态硬盘写入性能提升方法和装置