JP7296197B2 - 損失データ圧縮方法 - Google Patents

損失データ圧縮方法 Download PDF

Info

Publication number
JP7296197B2
JP7296197B2 JP2018111018A JP2018111018A JP7296197B2 JP 7296197 B2 JP7296197 B2 JP 7296197B2 JP 2018111018 A JP2018111018 A JP 2018111018A JP 2018111018 A JP2018111018 A JP 2018111018A JP 7296197 B2 JP7296197 B2 JP 7296197B2
Authority
JP
Japan
Prior art keywords
data
data compression
storage device
compression
drive
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
JP2018111018A
Other languages
English (en)
Other versions
JP2019009774A (ja
JP2019009774A5 (ja
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019009774A publication Critical patent/JP2019009774A/ja
Publication of JP2019009774A5 publication Critical patent/JP2019009774A5/ja
Application granted granted Critical
Publication of JP7296197B2 publication Critical patent/JP7296197B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/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)

Description

本発明はデータ圧縮に係り、より詳しくは、ホストの支援なしに、損失データ圧縮を知能的に遂行できる損失データ圧縮方法、データ圧縮方法、及びデータ圧縮システムに関する。
データ圧縮は、ハードストレージ装置のようなデータストレージ容量の効率的な使用を増加させるための、よく知られた有用な技術である。しかしながら、一部のデータ圧縮方式又はアルゴルズムは、特定のタイプのデータに対してより有利に作用する。データ圧縮は圧縮されたバージョンから正確な原本データが獲得できる「無損失(lossless)」のデータ圧縮、又は圧縮されたバージョンから正確な入力データが復元できない「損失(lossy)」のデータ圧縮である。
一般的なデータ圧縮はホストで遂行され、圧縮されたデータは圧縮されたデータファイルとしてドライブ(例えば、ハードストレージドライブ(hard storage device: HDD)又はソリッドステートドライブ(solid state drive: SSD))に伝送される。また、オンドライブ(on-drive)のデータ圧縮はドライブがロー(raw)の圧縮されないデータファイルをホストから受信し、受信したデータを圧縮してから、圧縮されたデータファイルを格納する。
従来のオンドライブのデータ圧縮方法は、データを「愚かに(dumbly)」圧縮したり、ドライブにより受信される全てのローデータファイル(raw data file)が同一のデータ圧縮方法又はアルゴリズムを使用して圧縮される非知能型(unintelligently)/単純化し過ぎた(oversimplified)データ圧縮を遂行する。その次に、ドライブは圧縮されたデータを圧縮されたデータファイルとして格納する。即ち、非知能型オンドライブのデータ圧縮はドライブがホストから受信した全てのデータを同一のデータ圧縮アルゴリズムにより圧縮してから、ドライブに圧縮されたデータファイルを格納する。
非知能型データ圧縮を使用する時、ドライブは、データがホストにより圧縮されたか、データが以前に暗号化されたか、ドライブの使用者がどんな等級又はどんなパラメーターによってデータが圧縮されることを望むか、及び多様な他の要素などを示す特性のようなデータの特別な特性を無視する。なお、非知能型データの圧縮が使用される時、ドライブは、特定のタイプのデータは他のタイプのデータより1つ以上の特定のデータ圧縮方式により、もっと容易に圧縮される事実を無視する。
従来具現された「愚かな(dumb)」又は非知能型データ圧縮(例えば、一般的なデータ圧縮)はドライブにデータを格納しようとする使用者が重要なデータの損失をもたらす損失データの圧縮方式を望まないと仮定して動作した。従って、従来具現された知能型データの圧縮は、損失データの圧縮と異なり、無損失データ圧縮である。即ち、損失データ圧縮は特定のタイプ(例えば、データベース、作業データファイルなど)を害し得るし、潜在的にはデータ損傷をもたらすので、データインテグリティ(data integrity)を維持するため無損失データの圧縮方式のみが具現された。
また、従来具現された損失データの圧縮方式は、いつもホストにより遂行され、データはドライブにより圧縮されなかった。代わりに、ドライブはホストから伝送された圧縮されたファイルを単純に受信し、格納する。ホストは、一般的にデータ圧縮及び格納を試みる使用者の中央処理装置(CPU)/コンピュータのプロセッサに対応する。不幸にも、そのような損失データ圧縮と関連されたコンピューティングの動作は、一般的に多くの数のCPUサイクルを必要とし、なお対応する多量のエネルギーを使用する。
前記情報は、ただ開示の背景に対する理解を向上させるために開示したものであり、従来の技術を構成しない情報を包含する。
米国登録特許第5892847号公報 米国登録特許第8036265B1号公報 米国登録特許第8435998B2号公報 米国登録特許第8386444B2号公報 米国登録特許第8427346B2号公報 米国登録特許第8442818B2号公報 米国登録特許第9118345B2号公報 米国登録特許第9235905B2号公報 米国公開特許第2008/0037880A1号公報
CHYE, En Un et al.,"Selection Criteria of the Compression Algorithm in Information Measuring System",2nd International Conference on Industrial Engineering, Applications and Manufacturing(ICIEAM), June 30,2016,(4pages). LARSSON, Anders et al., "SOC Test Optimization with Compression-Technique Selection", IEEE International Test Conference, Santa Clara, CA June 30, 2008,(1page).
本発明は、ホストの支援なしに、損失データ圧縮を知能的に遂行できるドライブを提供する。
本開示の実施例は、ホストの支援なしに、損失データ圧縮を知能的に遂行できるドライブを提供する。
一実施例によると、損失データ圧縮方法は、ストレージ装置からローデータ(raw data)を受信するステップと、圧縮を要請するフラッグを受信するステップと、損失データ圧縮方式に各々対応する多様なデータ圧縮アルゴリズムを含むオンボード(onboard)データの圧縮アルゴルズムのライブラリーにアクセスするステップと、パラメーターに基づいて前記データ圧縮アルゴリズムの中の1つを選択するステップと、選択されたデータアルゴリズムをオンライン又はオフラインで実行するステップと、を包含する。前記オンラインは前記ローデータが受信される時、前記ストレージ装置により圧縮され、圧縮されたデータを前記ストレージ装置に格納して、前記オフラインは前記ローデータが一旦前記ストレージ装置に格納され、選択されたデータ圧縮アルゴリズムに従って前記ストレージ装置により後で圧縮され、圧縮されたデータを前記ストレージ装置に再格納される。
前記パラメーターは前記ローデータに対応するキー-バリューのペアのキー内又はストレージ装置と連関されたサービス品質(QoS)の優先データファイル内に包含される。
前記方法は、前記パラメーターを提供するため前記ローデータを圧縮するように使用者の要請を誘導するステップをさらに包含する。
前記方法は、客体署名又は客体拡張子に対応する前記ローデータ内に含まれたメタデータを読み出すステップと、前記ストレージ装置上の客体署名辞典又は前記ストレージ装置上の客体拡張辞典にアクセスして、前記客体署名又は前記客体拡張子に各々基づいて前記ローデータのデータタイプを判別するステップと、前記判別されたデータタイプに基づいて、前記データ圧縮アルゴリズムを選択するステップと、を更に包含する。
他の実施例によると、データ圧縮方法はストレージ装置からローデータを受信するステップと、前記ストレージ装置が損失データ圧縮方式により前記ローデータを圧縮し、圧縮されたデータを生成するステップと、前記圧縮されたデータを前記ストレージ装置に格納するステップを包含する。
前記方法は、前記ストレージ装置が前記ローデータ圧縮のためのデータ圧縮方式を決定するステップをさらに包含する。
前記方法は、圧縮方式及びパラメーターに関する情報を含むサービス品質(QoS)の優先データを具備するステップと、前記ストレージ装置によって、前記ローデータに対応する客体ファイルを識別するステップと、前記情報及び前記客体ファイルに従い、前記ローデータを圧縮するためのデータ圧縮方式を決定するステップと、をさらに包含する。
前記方法は、前記ローデータに対応するキー-バリューペアのキーのメタデータを読み出すステップと、前記メタデータに従い前記ストレージ装置上のデータ圧縮アルゴリズムのライブラリーからデータ圧縮アルゴリズムを選択するステップと、前記選択されたデータ圧縮アルゴリズムにより前記ローデータを圧縮するためのデータ圧縮方式を遂行するステップと、をさらに包含する。
前記ローデータは、客体署名又は客体拡張子を含み、前記方法は、前記ストレージ装置上の客体署名辞典又は前記ストレージ装置上の客体拡張子辞典にアクセスし、前記客体署名又は前記客体拡張子の各々に基づいて前記ローデータのデータタイプを判別するステップと、前記判別されたデータタイプに基づいてデータ圧縮方式を遂行するステップと、を更に包含する。
前記方法は、使用者要請に従いホストコンピュータから前記ストレージ装置に前記ローデータを伝送するステップをさらに包含する。
前記方法は、使用者が情報を提供するように誘導するためのメニューを提供するステップと、前記使用者の提供情報に従い、前記ローデータを圧縮するためのデータ圧縮アルゴリズムを決定するステップと、をさらに包含する。
前記方法は、前記ストレージ装置に前記ローデータを格納するステップと、前記ストレージ装置に対応する可用できる時間又はリソースを推定するステップと、十分な時間及びリソースが可用できると判別されれば、前記ローデータを圧縮するステップと、をさらに包含する。
他の実施例によると、データ圧縮システムは、ホスト及び前記ホストからローデータを受信するように構成されたストレージ装置を含み、前記ストレージ装置は、メモリー及び命令を実行するように構成されたプロセッサを含み、前記命令が前記プロセッサによって実行される時、前記プロセッサに、前記ストレージ装置が損失データ圧縮方式に従い前記ローデータを圧縮して圧縮されたデータを生成させ、ストレージ装置が前記圧縮されたデータを前記ストレージ装置に格納するようにさせることを特徴にするデータ圧縮システム。
前記命令は、前記プロセッサにより実行される時、前記プロセッサに、前記ストレージ装置が前記ローデータを圧縮するためのデータ圧縮方式を決定するようにさせる。
前記命令は、前記プロセッサにより実行される時、前記プロセッサに、前記ストレージ装置が圧縮方式及びパラメーターに関する情報を格納するサービス品質(QoS)の優先データファイルをアクセスし、前記ローデータに対応する客体ファイルを識別し、前記情報及び前記客体ファイルに従い前記ローデータを圧縮するための前記データ圧縮方式を決定するようにさせる。
前記命令は、前記プロセッサにより実行される時、前記プロセッサに、前記ストレージ装置が前記ローデータに対応するキー-バリューペアのキーのメタデータを読み出し、前記メタデータによりデータ圧縮アルゴリズムのライブラリーからデータ圧縮アルゴリズムを選択し、前記選択されたデータ圧縮アルゴリズムにより前記ローデータを圧縮するための前記データ圧縮方式を遂行するようにさせる。
前記ローデータは、客体署名又は客体拡張子を含み、前記命令は、前記プロセッサにより実行される時、前記プロセッサに、前記ストレージ装置が前記ストレージ装置上の客体署名辞典又は前記ストレージ装置上の客体拡張子辞典をアクセスし、前記客体署名又は前記客体拡張子の各々に基づいて前記ローデータのデータタイプを決定し、前記決定されたデータタイプに基づいて前記データ圧縮方式を遂行するようにさせる。
前記命令は、前記プロセッサにより実行される時、前記プロセッサに、前記ストレージ装置が使用者の要請に従いホストコンピュータから前記ローデータを受信するようにさせる。
前記命令は、前記プロセッサにより実行される時、前記プロセッサに、前記使用者が圧縮される前記ローデータを要請して情報を提供するように誘導するメニューを、ホストが提供するように、前記使用者の提供情報に従い前記ストレージ装置が前記ローデータを圧縮するためのデータ圧縮アルゴリズムを決定するように、させる。
前記命令は、前記プロセッサにより実行される時、前記プロセッサに、前記ストレージ装置が、前記ローデータを前記ストレージ装置に格納し、前記ストレージ装置に対応する可用時間及びリソースを推定し、十分な時間及びリソースが可用できる時、前記ローデータを圧縮するようにさせる。
開示された実施例によるドライブは、ローデータを受信でき、ローデータに対して損失データ圧縮を遂行することで、使用者がデータ圧縮に対応する特定のパラメーターに対する多様な制御レベルを許容する。よって、ドライブは損失データ圧縮の作業をオフローディング(offloading)してホストのCPUサイクルを自由にでき、そうではないと使用者システムに相対的に多くの負荷が生じる。一部の実施例において、ドライブはドライブ上に追加又は増加されたハードウェアリソースを具現できたり、オペレーティングシステム(OS)のレベル及び/又はドライバーレベルの変更を具現できたりする。
本開示の実施例はデータ圧縮の実行において、対応するホストの支援なしに損失データ圧縮及び格納を遂行して、他の使用者の活動にホストのCPUを開放できるSSD(Solid State Drive)のようなストレージ装置を提供できる。
一部の実施例は添付した図面と共に次の説明により、より詳細に理解できる。
従来の損失データ圧縮方法と本願の損失データ圧縮方法を比較した図である。 本願の実施例による、ホストの支援なしに知能型損失データ圧縮を遂行できる損失圧縮ドライブを示す図である。
本発明の概念及びその実施方法の特徴は、次の実施例及び添付図面の詳細な説明を参照すれば、より容易に理解できる。以下、添付した図面を参照して実施例は詳細に説明し、同一の参照番号は同一の要素を指し示す。しかし、本発明は多様な形態に具体化でき、ここに示した実施例だけに限定されると解釈されてはいけない。これらの実施例を本開示が徹底かつ完全に達成されるように当業者に本発明の態様及び特徴を十分に伝達できるように例として提供する。従って、本発明の態様及び特徴の完全な理解のため当業者に不必要なプロセス、要素、及び技術は説明しない。他の言及がない限り、添付した図面及び詳細な説明の全般にわたって同一な参照符号は同一な要素を示し、従ってその説明は反復しない。図面において、エレメント、層及び領域の相対的な大きさは明確性のため誇張される。
以下の説明において、説明の目的のため、多くの特定の詳細で多様な実施例が完全な理解を提供するため説明する。しかし、多様な実施例が斯かる特定の細部事項なしに又は1つ以上の等価の構成なしに実施されるのは自明である。他の例において、構造及び装置は不必要に多様な実施例を曖昧にすることを避けるためブロック図の形態で図示する。
エレメント、階層、領域又は構成要素が他のエレメント、階層、領域又はコンポネントに「連結された」又は「結合された」のものと言及する時、これは他のエレメント、階層、領域又は構成要素に直接的に連結されたり、結合されたり、又は1つ以上の介在されたエレメント、階層、領域又は構成要素が存在できたりする。しかし、「直接的に連結された/直接的に結合された」は1つの構成要素が中間の構成要素なしに他の構成要素に直接的に連結又は結合されることを示す。一方、「間に」、「すぐ間に」又は「隣接した」そして「直接的に隣接した」のような構成要素間の関係を説明する表現は同様に解釈できる。なお、1つのエレメント又は階層が2つのエレメント又は階層の「間に」あるとして言及する時、2つのエレメント又は層間の唯一なエレメント又は階層、又は1つ以上の中間にあるエレメント又は階層が存在することもできる。
本明細書に使用する用語は、特定の実施態様を説明するためだけのものであり、本発明を制限しようとするものではない。本出願に使用する単数形態は、文脈上異なるように指示しない限り、複数形態を含む。本明細書において、使用する「包含する」、「包含された」、「具備する」及び「具備された」の用語は、明示した特徴、整数、ステップ、動作、エレメント及び/又は構成要素の存在を特定し、1つ以上の他の特徴、整数、ステップ、動作、エレメント、構成要素及び/又はこれらのグループの存在又は追加を排除しないことが理解される。本明細書に使用するように、「及び/又は」という用語は1つ以上の関連で列挙された項目の任意の及び全ての組み合わせを包含する。「少なくとも」のような表現は、エレメントの前でエレメントの全体の目録を修飾し、目録の個別のエレメントを修飾しない。
本明細書に使用する、用語の「実質的に」、「約」及び類似した用語は、近似の用語として使用され、程度(degree)の用語として使用されずに、測定された又は計算された値の固有の変化を説明するためのものであり、これは当業者にとって認識されるはずである。本明細書で使用する「約」又は「大略」は言及された値を含み、該当分野の当業者により判別される特定の値に対する偏差の許容可能な範囲以内を意味する。本明細書で使用する「大略(about)」「大略(approximately)」は明示した値を含み、不確実な測定及び特定の量の測定と関連された誤差(例えば、測定システムの限界)を考慮し、当該分野の当業者により決定された特定の値に対する許容偏差以内を意味する。例えば、「約」は1つ以上の標準偏差内で又は明示された値の±30%、20%、10%、5%以内を意味できる。なお、「~であり得る」の使用は、本発明の説明する実施例が「本発明の1つ以上の実施例」を示す。本明細書で使用する用語の「使用する」、「使用する~」及び「使用される」は、「活用する」及び「活用される」と同義語と見なされる。なお、「例示的な」の用語は事例又は例示を表す。
特定の実施例が異なるように具現されうる時、特定のプロセス順序は説明した順序と異なるように遂行できる。例えば、説明した2つの連続するプロセスは、実質的に同時に又は説明した順序と反対の順序に遂行できる。
多様な実施例を、実施例及び/又は中間構造の概略図である断面図を参照して、ここで説明する。結果としての図面の形状からの変化は、例えば、製造技術及び/又は許容誤差と共に予想されなければならない。従って、本明細書に開示する実施例は、図示する特定の形状に限定されるものとして解釈されてはいけないし、例えば、製造上の形状偏差を含まなければならない。例えば、直四角形で図示された注入領域は典型的に、注入された領域から注入されない領域への二進変化(binary change)であるよりは、丸い又は曲線の特性及び/又はエッジ(edge)での注入濃度の勾配(gradient)を有するはずである。同様に、注入により形成された埋立ての領域は、埋立て領域と注入が起こる表面間の領域とに若干の注入をもたらす。従って、図面に図示した領域は、本質的に概略的であり、その形状は装置の領域の実際形状を例示するものではないし、制限しようとするものではない。なお、当業者が理解できるように、説明する実施例は本開示の思想又は範囲を逸脱せずに、多様な他の方式で修正できる。
本明細書に説明する本発明の実施例による電子又は電気装置及び/又は任意の他の関連装置又は構成要素は、任意の適合したハードウェア、ファームウェア(例えば、注文型集積回路)、ソフトウェア、又はソフトウェア、ファームウェア及びハードウェアの組み合わせを利用して具現されうる。例えば、これらの装置の多様な構成要素は、1つの集積回路(IC)チップ上に又は個別ICチップ上に形成される。なお、これらの多様な構成要素はフレキシブル印刷回路フィルム、テープキャリアーパッケージ(TCP)、印刷回路基板(PCB)又は1つの基板上に具現できる。なお、これらの多様な構成要素は、1つ以上のコンピューティング装置内の1つ以上のプロセッサで実行され、コンピュータのプログラム命令を実行し、ここで説明する多様な機能を遂行するために、他のシステムの構成要素と相互作用するプロセス又はスレッド(thread)であり得る。コンピュータのプログラム命令は、例えば、RAM(Random Access Memory)のような標準メモリー装置を使用するコンピューティング装置にて具現されうるメモリーに格納される。コンピュータのプログラム命令は、例えばCD-ROM、フラッシュドライブなどの他の非一時的なコンピュータ判読可能な媒体に格納される。なお、当業者は、本発明の例示的な実施例の思想及び範囲を逸脱しない限り、多様なコンピューティング装置の機能が単一のコンピューティング装置に結合されたり、統合されることができたりし、又は特定のコンピューティング装置の機能が1つ以上の他のコンピューティング装置にかけて分散されうることを認識しなければならない。
別に定義しない限り、本明細書に使用する全ての用語(技術用語及び科学用語を包含)は、本発明が属する技術分野の当業者により一般的に理解されるものと同一な意味を有する。なお、一般的に使用される辞典で定義された用語のような用語は、関連技術及び/又は本明細書と関連して、その意味と一致する意味を有するものと解釈されるべきであり、理想的とか過度に形式的とかの意味で解釈されていけない。
前述したように、ホストの支援なしにハードストレージ装置により遂行される従来の非知能型データ圧縮は、常に非損失圧縮の形態であった。さらに、従来の全ての損失データ圧縮は、ドライブによってではなく、ホスト/ホストコンピュータ/ホストCPUにより遂行された。しかしながら、(例えば、音楽データファイル、ビデオデータファイル又は他のマルチメディアデータファイルを編集及び/又は格納する時)損失データ圧縮が許容できたり、好ましかったりする時、データに高い水準の圧縮が適用されるシナリオが存在する。また、ホストCPUが圧縮を遂行する場合のリソースを開放し、ドライブにおいてローデータファイルを圧縮することが有用である。
本開示の実施例は、データ圧縮の実行において、対応するホストの支援なしに損失データ圧縮及び格納を遂行して、他の使用者の活動にホストのCPUを開放できるSSD(Solid State Drive)のようなストレージ装置を提供する。
図1は、従来の損失データ圧縮方法と本願の損失データ圧縮方法を比較した図である。
図1を参照すれば、上述したように、従来のドライブ116はホスト112の支援なしに損失データ圧縮の遂行ができない。代わりに、図1に図示したように、従来の損失データ圧縮方式110は、ホスト112がデータ圧縮113し、圧縮されたデータファイル114を格納するためドライブ116に伝送する前に、ローデータファイル118をホスト112に提供することにより遂行されるのでホスト112のシステムリソースが不足する。即ち、従来は、ローデータファイル118(例えば、PCMフォーマットのローサウンド/オーディオデータファイル)の圧縮が進行される時、使用者はホスト112がローデータファイル118を圧縮されたデータファイル114(例えば、MP3データファイル)にデータ圧縮113するよう指示し、ホスト112はデータ圧縮113を遂行して圧縮されたデータファイル114を格納するためドライブ116へ伝送する。
従って、従来技術はドライブ116がローデータファイル118に対し、データの忠実度を維持する無損失データ圧縮を遂行するが、ドライブ116は損失データ圧縮を遂行できない。データの忠実度の損失が使用者により容認され、許容されたり要求されたりする時(例えば、音楽及びビデオ編集の場合のように、使用者が多量の損失データ圧縮を選好する場合)、損失データ圧縮は通常、対応するホスト装置(例えば、ホスト112)上の多くのプロセッサのサイクルを占有する。
上述した観点から、損失データ圧縮の作業が、使用者の基本CPU内に位置したホストから切り離されれば(offroad)有用である。従って、本開示の実施例によるドライブ126(例えば、ハードストレージドライブ又はSSD(Solid State Drive)はホスト/ホストコンピュータ/ホストCPU122から非圧縮されたデータ/ローデータファイル128を受信し、ローデータファイル128を圧縮した圧縮されたデータファイル124を生成する1つ以上の本発明の損失データ圧縮方式120を遂行する。圧縮されたデータファイル124はドライブ126に保管/格納される。
本実施例によると、使用者が(例えば、CPUが「圧縮要請」のフラッグを設定するように命令することにより)ホストにローデータファイル128をデータ圧縮123するように命令でき(例えば、使用者がドライブ126に圧縮された形態で格納されるビデオ又はオーディオデータファイルの編集を完了した時)、これによりドライブ126が損失データ圧縮を行いローデータファイル128を自動的にデータ圧縮123して、ホスト122の支援なしにドライブ126に圧縮されたデータファイル124を生成する。知能型損失データ圧縮のドライブ126は、データ分析により(例えば、データファイルのタイプ、可能なデータ圧縮方法及びアルゴリズム、使用者パラメーター及びサービス品質QoS(Quality of Service)の要求などの分析により)自動データ圧縮を許容し、損失方式のデータ圧縮123が適切かを確認する。その次に、ドライブ126は選択されたデータ圧縮方式に従い損失方式のデータ圧縮123を遂行し、圧縮されたデータファイル124を自身に格納する。ドライブ126は、命令通りにローデータファイル128をデータ圧縮123するか、又はデータ圧縮123して圧縮されたデータファイル124を格納する前に一定の時間非圧縮のフォーマットによりデータを格納する。
図2は、本願の実施例による、ホストの支援なしに知能型損失データ圧縮を遂行できる損失圧縮ドライブを示す図である。
図2を参照すれば、前述したように、使用者はホスト122からのローデータファイル128(例えば、PCMフォーマットのローサウンドデータ)をドライブ126へ直接伝送できる。その後、ドライブ126は、ローデータファイル128が損失する圧縮されたデータファイル124に適切に変換できるローデータファイルであるかを識別する。その次に、ドライブ126は損失方式のデータ圧縮123を遂行してドライブ126内の圧縮されたファイル124(例えば、MP3データファイル)を生成できるので、ローデータファイル128は損失する圧縮されたデータファイル124に変換され、損失する圧縮されたデータファイル124はドライブ126に保管/格納される。よって、本実施例は、自動的に又は半自動的に制御される損失方式のデータ圧縮123を遂行できる格納装置(例えば、ドライブ)であり、従って、従来データ圧縮を遂行するためホスト122により使用されたCPUクロックサイクル及びリソースを、他の活動へ自由に活用できる。
「スマート圧縮(smart compress)」のドライブ126は、データ管理のための命令及び制御プロトコル、そして相対的に向上したオンディスク(例えば、on-SSD)のリソースを包含する。例えば、従来のハードディスクと異なってドライブ126は、多様な損失データ圧縮のメカニズムを含むデータ圧縮アルゴリズムのライブラリー17を包含する。オンボードエンコーディングのライブラリー/データ圧縮アルゴルズムのライブラリー17は、多様な損失データ圧縮方式及びエンコーディング方式を遂行するための多様なデータ圧縮アルゴリズムに対応するコードを包含する。なお、ドライブ126は、損失データ圧縮のパラメーターを含むように拡張されたサービス品質QoSの優先データファイル14を包含する。斯かるパラメーターはローデータファイル128がどのように圧縮されるかを判別するためドライブ126によって使用される。
使用者からの各損失データ圧縮の要請は、最終的に圧縮されるローデータファイル128と関連される。データ圧縮の要請は、データ圧縮123の結果となるファイルのフォーマットを明確に示す直接命令、又はデータ圧縮123を遂行する間に、ドライブ126を案内するパラメーターを明確に示す直接命令を包含する。代案的に、データ圧縮の要請は、キー-メタデータに含まれた内蔵命令に対応でき、ドライブ126はキー-メタデータに基づいてデータ圧縮123をどのように遂行するかを決定する。
ドライブ126が損失方式でデータ圧縮123するために、ドライブ126は、要請されたデータ圧縮アルゴリズム又は最終フォーマットのような情報を使用してどのような圧縮方式を使用するか(例えば、データ圧縮アルゴリズムのライブラリー17からいずれのデータ圧縮アルゴリズムを選択するか)を決定する。即ち、ドライブ126は、ドライブ126が特定の損失データ圧縮のアルゴリズムを使用してローデータファイル128を圧縮して、最終的に特定の損失格納フォーマット(例えば、MP3データファイル、JPEGデータファイル、MPEGデータファイルなど)に従い圧縮されたデータファイル124を格納するために多様な情報を使用する。
代案的に、ドライブ126は、(例えば、QoSの優先データファイル14に包含された)パラメーター及びセッティングを使用して、いつどのようにしてデータを損失圧縮するのかを決定できる。例えば、QoSファイルは特定の拡張子の全てのファイルがJPEGデータファイルに圧縮されるべきことを表す。QoSファイルは、例えば、使用者の特定のデータ圧縮方式又は品質設定の選択、調節、サブサンプリングの量の設定、又は多様な他のパラメーターの制御を許容する圧縮アルゴリズムに対する圧縮の細部事項をさらに包含する。
従って、ドライブ126は情報を使用し、受信して与えられたローデータファイルに対して、要求されるデータ圧縮フォーマット及び関連されたパラメーターを理解する。本開示の実施例によると、データ圧縮フォーマット及びパラメーターは少なくとも三つの他のオプションの中の一つ以上のオプションにより伝達及び判別され、以下説明するように、ドライブ126が情報を学習することを可能にする。
ドライブ126の向上した特徴の他の例示によると、ドライブ126はエンコーディング加速ハードウェア(encoding acceleration hardware)を包含し、インライン(inline)又はオフラインでデータ重複除去を遂行し、オンライン(online)又はオフラインにおいて無損失データ圧縮を遂行する。損失方式のデータ圧縮123がオンライン動作で遂行される時、ローデータファイル128がドライブ126により受信される時又はその近傍でデータは圧縮される。損失方式のデータ圧縮123がオフラインモードで遂行される時、非圧縮のローデータファイル128は、ドライブに無期限格納される。ドライブ126が十分な時間/リソースを有していると判別する時又はドライブ126に格納された非圧縮のローデータファイル128を作業することを決定する時、ローデータファイル128は圧縮され、そして圧縮されたデータファイル124としてドライブ126に再格納される。ドライブ126がオンライン又はオフラインで動作するかの決定は、圧縮のため必要な可用時間及び/又はシステムリソースの推定された量に対応するドライブ126の予測に依存する。
前記予測はマシンラーニング予測に基づき、ドライブ126のオンボードの装置性能のプロファイル15の分析に基づいて決定される。例えば、装置性能のプロファイル15はドライブ126の進行中の物理的性能の記録(例えば、可用メモリー、プロセッサ能力など)に対応する情報を包含し、圧縮アルゴリズム性能のチャート16は与えられた作業により要求される可用リソースの総量を予測するため使用される。装置性能のプロファイル15及び圧縮アルゴリズム性能のチャート16に含まれた情報に基づいて、ドライブ126は圧縮されるローデータファイル128のタイプの決定に基づいてデータ圧縮アルゴリズムのライブラリー17のいずれの圧縮アルゴリズムが可用装置のリソースを一番効率的に利用できるかを判別する。
圧縮アルゴリズム性能のチャート16は、複数の圧縮アルゴリズムに対する情報(例えば、各圧縮アルゴリズムに対する平均圧縮比率、各圧縮アルゴリズムに対する処理量、各圧縮アルゴリズムに対するメモリーリソースの要求など)を包含し、ファイルタイプ、(QoSの優先データファイル14により決定される)可能な処理量及び装置性能のプロファイル15に基づいた装置性能に基づいて、データ圧縮アルゴリズムのライブラリー17から特定のデータ圧縮アルゴリズムの選択を行う。
ドライブ126の他の向上した特徴は、ローメディアのデータファイルの相異なるタイプを知るようにする(例えば、ローデータファイル128の拡張子及び署名を認識することにより)エントロピー(entropy)推定アルゴリズムのライブラリー6、客体署名辞典5及び/又は客体拡張子辞典4を包含することである。
エントロピー推定アルゴリズムのライブラリー6は、任意のサンプルデータのエントロピーをテストするためのコードを含んでいるので、ローデータファイル128の圧縮率レベルを判別できる。エントロピー基盤の計算は、ファイルが圧縮可能な程度を予測するためバリュー(value)2の一部を検索のために使用する。エントロピー基盤の計算は、エントロピック(entropic)な又はランダムなデータがより圧縮し難いという原理で機能する(例えば、既に圧縮されたファイルは高いエントロピックな特性を有し、圧縮されないファイルはさらに圧縮可能なデータを有する可能性が高い)。客体署名辞典5は、各々の圧縮技術に対応する既知の客体/ファイル署名を包含する。客体拡張子辞典4は、多様な圧縮技術の各々に対してこれらの客体のタイプがどのくらい圧縮可能であるか評価された既知の客体/ファイル拡張子のリストを包含する。斯かる情報は、圧縮を容易にするために客体拡張子辞典4により、データ圧縮予測器3へ提供される。
従って、ローデータファイル128が受信される時、ドライブ126の多様な構成要素は圧縮されるローデータファイル128のタイプを識別するために使用され、これはデータ圧縮予測器3及び圧縮器7の動作に影響し、データ圧縮アルゴリズムのライブラリー17から適切なデータ圧縮アルゴリズムを選択するのに使用される。例えば、データ圧縮予測器3は客体拡張子辞典4、客体署名辞典5及び/又はエントロピー推定アルゴリズムのライブラリー6に含まれた情報を使用してバリュー2の圧縮率を決定する。
その後、圧縮器7は指示されたパラメーターに基づいてデータ圧縮を遂行する。データ圧縮予測器3及び圧縮器7は、データファイルを識別し、それがどのようなタイプのデータファイルであるかを認識し、その時の使用者要求、ドライブ126のその時の性能、QoSの優先データファイル14によるQoS要求(これは、あるデータ圧縮方式がデータ圧縮に使用されるべきであるかを決定するため使用される)、圧縮アルゴリズムの性能チャート16内に収納されたヒストリカル(historical)データ圧縮アルゴリズムの性能などのファクター(factor)に基づいて一番効率的な損失データの圧縮アルゴリズムを知能的に提供する。なお、データ圧縮予測器3及び圧縮器7は、利用可能なもっと良好なデータ圧縮アルゴリズムの存在(例えば、もっと多くのプロセッサ空間が利用可能になったり、もっと多くのバッファー空間が利用可能になったりするなど)を後で判別できる。
ローデータファイル128をどのように圧縮するかに対して、データ圧縮予測器3による決定が行われると、受信スイッチ11へ情報が提供され、受信スイッチ11はデータを圧縮器7へ出力するか、損失圧縮が必要と確認されないファイルタイプが受信され、圧縮しないと決定されると、出力13のためデータを出口スイッチ12へ伝送することにより圧縮器7をバイパスするかを分別する。よって、データ圧縮予測器3は、どのように圧縮がなされるかを決定し、受信スイッチ11はデータを圧縮器7又は出口スイッチ12へ伝送する。
以下は、ドライブ126により、受信されたローデータファイル128を圧縮するための適切な圧縮方式及びパラメーターを決定するための三つのオプションを表す。
第1のオプションとして、データ圧縮フォーマット及びパラメーターは、格納命令の明示的な部分として決定される。
従来のシステムにおいて、ドライブ126に格納される各ローデータファイル128は、ドライブ126への最終的な格納命令を包含し、それによってドライブ126に対する明示的な指示を表示して、特定のデータ圧縮タイプ及び特定のデータ圧縮パラメーターと共に特定のローデータファイル128を格納する。
対照的に、本オプションにおいて、使用者がホスト122にドライブ126がローデータファイル128を圧縮されたデータファイル124として格納するように命令する時、データ圧縮フォーマット及びパラメーターは格納命令の一部として明瞭に判別される。本願の三つのオプションの中で、このオプションは、一般的に(ブロック基盤のストレージ装置は、以下で説明する第2のオプションによりキー(key)-バリューのメタデータのオプションを有さないから)ブロック基盤のストレージ装置と共に使用される。しかし、この第1のオプションの具現は、伝統的なブロック基盤のデータファイルシステムのドライバー/OS階層の変更を要求する。
ドライバー/OS階層の変更は、ローデータファイル128を損失方式のデータ圧縮123する意図又は機会の存在を判別するため、ドライブ126へのライト(write)命令をもたらす全ての使用者活動(例えば、使用者が意図的にビットマップ(bitmap)をJPEGとして格納したり、ビットマップを圧縮されないドライブから他のドライブに移動したりすること)をスキャニングすることを包含する。ドライバー/OS階層の変更は、使用者の意図を確認するため、そして使用者がデータ圧縮123のパラメーターに関する情報を提供するように誘導するため、データ圧縮要請を遮る(interrupt)ことを含む(例えば、使用者は損失方式のデータ圧縮123に関するパラメーターを選択できるホスト122におけるメニューに影響を与える)。さらに、付加的な修正命令はアイデンティティ(identity)及びパラメーター情報を伝送するため、そしてドライブ126がいずれかの論理的ブロックアドレス(Logical Block Addresses: LBAs)が目標データファイルと連関されるかを識別するため使用される。
ドライバー/OS階層に対する1つ以上の提案された変更と関連された情報を獲得してから、ローデータファイル128はドライブ126へ伝送され、オペレーティングシステム及びドライバーはホスト122からドライブ126に使用者により選択された情報を伝達する。このオプションはドライブ126との通信の特定の向上したプロトコルをさらに具現する。
第2のオプションとして、データ圧縮フォーマット及び関連されたパラメーターは、キー1及びバリュー2(KVペア)のキー1に明示的にエンコーディングされる。ドライブ126は改善された命令語又は命令語セットに応答したり、ローデータファイル128と関連された濃縮されたキー1を検出でき、損失-圧縮可能なデータのライト(write)は、「圧縮要請」のフラッグ、データ圧縮フォ-マットの識別及び/又はデータ圧縮フォーマットのパラメーターによる。
本オプションによるKV基盤のシステムにおいて、データ圧縮フォーマット及びパラメーターの関連情報は、データがどのように格納されなければならないかを示すキー1のメタデータの部分に包含される。例えば、キー1は、圧縮されたデータファイル124が特定のデータ圧縮設定及び特定のサブサンプリングの量を有するJPEGデータファイルとして格納されなければならないことを示すメタデータを包含する。例えば、ドライブ126のデータ圧縮予測器3及び圧縮器7は、ローデータファイル128が修正/圧縮されなければならないかを、また、データ圧縮123がどのように遂行されなければならないかを判別するためキー1に含まれた情報(例えば、メタデータ)を使用する。
さらに、キー1はローデータファイル128のタイプを示すファイル/客体拡張子を包含し、これは圧縮が遂行されるか/どのように遂行されるかに関する情報を提供する。既知の客体拡張子のリストは客体拡張子辞典4に維持され、客体拡張子辞典4からの情報はデータ圧縮123のタイプを判別するため、データ圧縮予測器3により使用される。
なお、キー1はファイル/客体署名を包含し、これはKVペアのバリュー2内に包含されたローデータファイル128のタイプに関する情報を提供するコードラインである。データのタイプに関する既知の署名のリストは客体署名辞典5に維持され、客体署名辞典5からの情報は、使用するデータ圧縮123のタイプを決定するためデータ圧縮予測器3へ提供される。
従って、受信されたデータがローメディアのデータファイルであることを示すキー1はドライブ126により受信され、キー1はデータ圧縮がどのように遂行されなければならないかのパラメーターを包含する。従って、客体署名辞典5又は客体拡張子辞典4は、キー1の情報/メタデータを読み出すことにより、バリュー2に対応する受信されたローデータファイル128が圧縮されなければならないことを検出でき、データ圧縮アルゴリズムのライブラリー17からどのデータ圧縮アルゴリズムが使用されなければならないかを判別するため、メタデータを使用する。
データをどのように圧縮するかを決定するため、ドライブ126はキー1のメタデータの部分をリード(read)する。データファイル28が、KV客体としてKVストア(store)へ伝送される時、KVストアはキー1をリードし、メタデータ部分を認識してリードし、ドライブ126が表示されたデータ圧縮フォーマット及びパラメーターを使用することにより、損失方式のデータ圧縮123の選択されたタイプで圧縮されたデータファイル124を格納する命令であることを判別する。メタデータの部分に包含された情報の使用により、ドライブ126は指定されたデータ圧縮アルゴリズム及びパラメーターに連関されたローデータファイル128をデータ圧縮123する。
従って、データ圧縮フォーマット及びパラメーターは、KVストレージシステムの明確な部分になる。KVペアのキー1は隠された情報を含むメタデータの部分を包含し、パラメーターはドライブ126により圧縮可能なデータの識別が可能であるようにエンコーディングされる。そのようなメタデータ情報の使用者レベルエントリーはKVストレージソフトウェアスタックで達成される。即ち、使用者は、どのローデータファイル128が損失圧縮されるかKVペアのキー1内に包含されたタグに対応する情報を付加できる。
本オプションは「細密な(fine-grained)」の制御を使用者に提供し、本オプションは具現し易く、また僅かな変更で具現できる。このオプションによると、使用者は所定のタイプのローデータファイル128がドライブ126に格納される時、データが圧縮されることを理解できる。
第3のオプションとして、データ圧縮フォーマット及びパラメーターが、より大きなサービス品質QoSの優先データファイル14の一部として、暗示的に行われる。QoSの優先データファイル14は(例えば、使用者により)生成され、正確な又は一般的な損失圧縮及び格納オプションを明示するため、ドライブ126と共に設定される。QoSの優先データファイル14は(例えば、デフォルトデータ圧縮のタイプ及び与えられたタイプの全てのローデータファイル128に適用されるパラメーターを示し、保存されるローデータファイル128のバックアップのコピーを要求し、与えられた状況下での損失方式のデータ圧縮123を禁止又は遅延させるためなど)データ圧縮政策の特定及び/又は包括的な具現のための設定を包含する。
QoSの優先データファイル14は、ドライブ126が客体のローデータファイル128を識別するため、使用する情報(例えば、キー1内の情報、データファイル拡張子、ヘッダー署名など)を包含する。QoSの優先データファイル14に対応するメディアのデータファイルのドライブ126による認識時、QoSの優先データファイル14に含まれたオプションは、知能型ドライブにより自動的に具現される。ドライブ126はQoSの優先データファイル14内の情報を使用して適切なデータ圧縮のアルゴリズム及びパラメーターを選択して自動的に適用する。一部の実施例において、包括的なQoSの要求は相反する使用者命令又はキー-フィールド指定を無視(override)したり遅延(delay)させる。
従って、使用者がホスト122に特定のタイプのローデータファイル128をドライブ126に伝送させる時、ドライブ126はQoSの優先データファイル14による対応する方式によりデータ圧縮123して格納125できるように構成される。このオプションは、理論的に数千個のローデータファイル128に適用される一般規則の初期構成後に使用者に、より少ない制御を提供して使用者からの多くの制御を除去する。しかし、このオプションは包括的なデータの圧縮制御を許容して、QoSの優先データファイル14がデータ圧縮メカニズムの包括的な構成を許容し、侵入する使用者の相互作用を減少させる。本実施例によるドライブ126は、もっと速いコントローラープロセッサ、もっと大きなライト(write)バッファー、もっと大きなコントローラープロセッサRAM割り当て及び/又はデータ圧縮/エンコーディング加速器の中の1つ以上の付加的なハードウェアリソースを包含できる。
従って、前述した実施例は、知能型損失データ圧縮が可能な自足的(self-sufficient)ストレージ装置を提供する。
前述した内容は、例示的な実施例を説明するためのものであり、本発明を制限するものと解釈してはならない。いくつかの例示的な実施例を説明したが、当業者は例示的な実施例の新規な教示及び利点から実質的に逸脱せずに、例示的な実施例から多くの修正が可能であることを容易に理解するはずである。従って、そのような全ての修正は、例示的な実施例の範囲内に含まれる。請求の範囲において、手段と機能が結合された表現は構造的等価物だけではなく等価の構造を列挙して、ここに説明した構造を包含する。従って、前記説明は例示的な実施例を説明するためのものであり、開示した特定の実施例に限定されるものと解釈してはならないし、開示した例示的な実施例だけではなく、他の例示的な実施例に対する修正が含まれるものと理解しなければならない。本発明の概念は特許請求の範囲により定義され、特許請求の範囲の均等物も包含される。
本発明は、損失データ圧縮を知能的に遂行できるドライブ装置の提供に有用である。
1 キー
2 バリュー
3 データ圧縮予測器
4 客体拡張子辞典
5 客体署名辞典
6 エントロピー推定アルゴリズムのライブラリー
7 圧縮器
11 受信スイッチ
12 出口スイッチ
13 出力
14 QoSの優先データファイル
15 装置性能のプロファイル
16 圧縮アルゴリズム性能のチャート
17 データ圧縮アルゴリズムのライブラリー
110 従来の損失データ圧縮方式
120 本発明の損失データ圧縮方式
112、122 ホスト
113、123 データ圧縮
114、124 圧縮されたデータファイル
116、126 ドライブ
118、128 ローデータファイル
125 格納

Claims (2)

  1. ストレージ装置による損失データの圧縮方法であって、
    ストレージ装置でローデータ(raw data)を受信するステップと、
    圧縮する要請を受信するステップと、
    損失データ圧縮方式にそれぞれ対応する多様なデータ圧縮アルゴリズムを含むデータ圧縮アルゴルズムのライブラリーにアクセスするステップと、
    前記ローデータに対応するキー-バリューのペアのキーに関連するメタデータに基づいて前記データ圧縮アルゴリズムの中の1つを選択するステップと、
    前記選択されたデータ圧縮アルゴリズムを実行するステップと、を有し、
    前記データ圧縮アルゴリズムの中の1つを選択するステップは、
    客体署名又は客体拡張子に対応する前記ローデータに関連付けられたメタデータを読み出すステップと、
    前記ストレージ装置上の客体署名辞典又は前記ストレージ装置上の客体拡張子辞典にアクセスして、前記客体署名又は前記客体拡張子に基づいて前記ローデータのデータタイプをそれぞれ判別するステップと、
    前記判別されたデータタイプに基づいて前記データ圧縮アルゴリズムを選択するステップと、を含み、
    前記キーは、前記受信されたデータがローデータであることを示し、前記ローデータの圧縮がどのように遂行されるかに関する情報を含み、
    前記キーに関連するメタデータは、前記ローデータが修正/圧縮されなければならないか、またデータ圧縮がどのように遂行されなければならないかを判別するために使用され、
    ここで、前記ストレージ装置は、
    前記受信されたローデータが前記ストレージ装置により圧縮され、圧縮されたデータとして前記ストレージ装置に格納されるように、前記選択されたデータ圧縮アルゴリズムがオンラインで実行される第1モード、又は
    前記ローデータが一旦前記ストレージ装置に格納され、前記選択されたデータ圧縮アルゴリズムに従い前記ストレージ装置により後で圧縮され、圧縮されたデータとして前記ストレージ装置に再格納されるように、前記選択されたデータ圧縮アルゴリズムがオフラインで実行される第2モード、に従って前記データ圧縮アルゴリズムを遂行するように構成され
    前記ストレージ装置は、オンライン又はオフラインで動作するかの決定を、圧縮のために必要な可用時間及び/又はシステムリソースの推定された量に対応する前記ストレージ装置の予測に依存することを特徴とする損失データ圧縮方法。
  2. 前記メタデータを提供するために前記ローデータを圧縮するように使用者要請を促すステップを更に含むことを特徴とする請求項1に記載の損失データ圧縮方法。
JP2018111018A 2017-06-20 2018-06-11 損失データ圧縮方法 Active JP7296197B2 (ja)

Applications Claiming Priority (6)

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

Publications (3)

Publication Number Publication Date
JP2019009774A JP2019009774A (ja) 2019-01-17
JP2019009774A5 JP2019009774A5 (ja) 2021-07-26
JP7296197B2 true JP7296197B2 (ja) 2023-06-22

Family

ID=64656692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018111018A Active JP7296197B2 (ja) 2017-06-20 2018-06-11 損失データ圧縮方法

Country Status (5)

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

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891758B2 (en) 2018-07-23 2021-01-12 Google Llc Geometry encoder
US10318891B1 (en) * 2018-07-23 2019-06-11 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
WO2021016728A1 (zh) * 2019-07-26 2021-02-04 华为技术有限公司 存储系统中数据处理方法、装置及计算机存储可读存储介质
CN111294055B (zh) * 2020-02-21 2021-10-22 南京航空航天大学 一种基于自适应字典的数据压缩的编解码方法
US12105973B2 (en) * 2020-03-25 2024-10-01 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6121903A (en) 1998-01-27 2000-09-19 Infit Communications Ltd. On-the-fly data re-compression

Family Cites Families (31)

* 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
JP2000511363A (ja) 1994-07-14 2000-08-29 ジョンソン、グレイス、カンパニー 画像を圧縮するための方法及び装置
US7386046B2 (en) * 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
WO2003027876A1 (en) 2001-09-26 2003-04-03 Jodie Lynn Reynolds System and method for communicating media signals
JP2004078787A (ja) * 2002-08-22 2004-03-11 Alpine Electronics Inc 車載オーディオ装置およびデータ転送方法
US7210004B2 (en) * 2003-06-26 2007-04-24 Copan Systems Method and system for background processing of data in a storage system
US8099273B2 (en) * 2003-06-05 2012-01-17 Mentor Graphics Corporation Compression of emulation trace data
US20050210054A1 (en) * 2004-03-22 2005-09-22 Michael Harris Information management system
US8363837B2 (en) 2005-02-28 2013-01-29 HGST Netherlands B.V. Data storage device with data transformation capability
US20070237176A1 (en) * 2006-03-30 2007-10-11 Sbc Knowledge Ventures L.P. System and method for enhancing data speed over communication lines
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
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC Apparatus, system, and method for conditional and 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
US10102148B2 (en) * 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6121903A (en) 1998-01-27 2000-09-19 Infit Communications Ltd. On-the-fly data re-compression

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7296197B2 (ja) 損失データ圧縮方法
US9048862B2 (en) Systems and methods for selecting data compression for storage data in a storage system
US9471620B2 (en) Sub-block partitioning for hash-based deduplication
US11797204B2 (en) Data compression processing method and apparatus, and computer-readable storage medium
US8918375B2 (en) Content aware chunking for achieving an improved chunk size distribution
US8595199B2 (en) Real-time selection of compression operations
US8176292B2 (en) Controlling configurable variable data reduction
US20140215170A1 (en) Block Compression in a Key/Value Store
US9792350B2 (en) Real-time classification of data into data compression domains
US10585856B1 (en) Utilizing data access patterns to determine compression block size in data storage systems
US20180285014A1 (en) Data storage method and apparatus
US9684665B2 (en) Storage apparatus and data compression method
US10116329B1 (en) Method and system for compression based tiering
US20160147800A1 (en) Data Processing Method and System and Client
US10860489B2 (en) Byte select cache compression
CN113296709B (zh) 用于去重的方法和设备
CN105094709A (zh) 一种固态盘存储系统的动态数据压缩方法
US10394453B1 (en) Method and system for choosing an optimal compression algorithm considering resources
CN105068875A (zh) 一种智能数据处理方法及装置
WO2021082926A1 (zh) 一种数据压缩的方法及装置
CN107783990B (zh) 一种数据压缩方法及终端
KR102195239B1 (ko) 대역폭을 고려한 하둡의 데이터 압축 전송 방법, 이를 수행하기 위한 기록 매체 및 장치
US10324660B2 (en) Determining whether to compress data prior to storage thereof
US11256422B2 (en) Storage system and compressed sensor data recording method for sensors grouped based on parameters
JP2023503034A (ja) パターンベースのキャッシュブロック圧縮

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210602

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220607

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220607

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220616

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220621

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20220826

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20220830

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230221

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230328

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230411

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20230418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230612

R150 Certificate of patent or registration of utility model

Ref document number: 7296197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150