JP2022031735A - ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム - Google Patents
ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム Download PDFInfo
- Publication number
- JP2022031735A JP2022031735A JP2021185947A JP2021185947A JP2022031735A JP 2022031735 A JP2022031735 A JP 2022031735A JP 2021185947 A JP2021185947 A JP 2021185947A JP 2021185947 A JP2021185947 A JP 2021185947A JP 2022031735 A JP2022031735 A JP 2022031735A
- Authority
- JP
- Japan
- Prior art keywords
- data
- compression
- hybrid
- block
- decompression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013144 data compression Methods 0.000 title claims abstract description 241
- 230000006837 decompression Effects 0.000 title claims abstract description 216
- 238000000034 method Methods 0.000 title claims abstract description 198
- 238000007906 compression Methods 0.000 claims abstract description 240
- 230000006835 compression Effects 0.000 claims abstract description 238
- 230000015654 memory Effects 0.000 claims description 104
- 238000004891 communication Methods 0.000 claims description 38
- 230000007246 mechanism Effects 0.000 claims description 30
- 238000007689 inspection Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 22
- 238000012546 transfer Methods 0.000 claims description 21
- 230000002123 temporal effect Effects 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 9
- 230000008901 benefit Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 239000002096 quantum dot Substances 0.000 claims 2
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005056 compaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000010257 thawing Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
- H03M7/6088—Selection strategies according to the data type
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3071—Prediction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
- H03M7/48—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6017—Methods or arrangements to increase the throughput
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本特許出願は、2015年5月21日出願のスウェーデン国特許出願第1550644-7号、名称「METHODS,DEVICES AND SYSTEMS FOR DATA COMPRESSION AND DECOMPRESSION」の優先権を主張し、その内容を参照により全体として本明細書に援用する。また、本特許出願は、2016年1月29日に出願のスウェーデン国特許出願第1650119-9号、名称「METHODS,DEVICES AND SYSTEMS FOR DECOMPRESSING DATA」の優先権を主張し、その内容を参照により全体として本明細書に援用する。
本特許出願の開示は、一般に、例えば、コンピュータシステムのキャッシュ/メモリサブシステムおよび/またはデータ転送サブシステム、またはデータ通信システムにおけるデータ圧縮および解凍の分野に関する。
・整数:整数は、統計的圧縮スキーム(図18では「S」と表示されている)に関連付けられている。これは、かかるスキームが、可変長符号化を用いることにより、他のスキームよりも高頻度で使われる整数に、より高密度の符号を割り当てることによる。
・ポインタ:ポインタは、デルタ圧縮スキーム(図18では「D」と表示されている)に関連付けられている。これは、ポインタが、通常、空間的な値のローカリティ、すなわち値が、ベース値へのデルタとして効率的に符号化できる少量の差のある値を表すことによる。
・浮動小数点数:浮動小数点数は、浮動小数点データを効果的に圧縮するため特殊化された特定の圧縮スキーム(図18では「FP」と表示されている)に関連付けられている。FP圧縮方法の一例が、本特許出願と同時に出願された特許出願METHODS, DEVICES AND SYSTEMS FOR SEMANTIC-VALUE DATA COMPRESSION AND DECOMPRESSIONに開示されており、同じ出願人および発明者を共有し、上記出願の内容は、参照によりその全体として本明細書に援用され、これは、提示される値のローカリティを増大するため、仮数を2つまたは複数のサブフィールドさらに分割した後、分離された各浮動小数点数の意味的に重要なデータ値を符号化(圧縮)する。
・ヌル(null)ブロック:ヌルブロックは、前記ブロックを単一ビットだけで符号化するヌルブロック圧縮スキーム(図18では「N」と表示されている)に関連付けられている。ヌルブロックのバリエーションは一般的であり、ブロックが負符号ゼロ浮動小数点値を含む場合もこれに含まれる。発明者らはかかるブロックを負のヌルブロックと称する。
・フェーズI(検査):未圧縮データブロックはセグメントに分割される。各セグメントの特定のビット位置(検査部分-IP(Inspection Portion)と言う)が、全ての前記セグメントについてそのセグメントのデータ型を推測するために検査され、前記ブロック内の各予測データ型の出現をカウントする。このセグメントは、データ値と同じ粒度を持つように選択できるが、但し、データブロックは種々の粒度の値(大方はデータ型の如何による)を含むので、フェーズIは同じ粒度のデータ(例えば、64ビットのセグメント)を処理することにより単純化することができる。
・フェーズII(判定):フェーズIからの個別のセグメントの型特徴識別に基づいて、主として支配的なデータ型に基づいて、ブロックに対する最適の圧縮スキームが選択される。選択された圧縮スキームが、前記ブロックの全セグメントに適用される。
・整数:IPは、セグメントの最上位4バイトである。IPが0x00000000(すなわち正の整数)もしくは0xFFFFFFFF(すなわち負の整数)である場合、セグメントは整数として特徴識別され、それぞれのカウンタ(#Int)がインクリメントされる。図20のブロック図は、データブロック2010内で整数データ型を特徴識別することを目的とした検査プロセスの例示の実施形態を示す。0x00000000との比較はコンパレータ2024a、b、cなどで行われ、0xFFFFFFFFとの比較はコンパレータ2028a、b、cなどで行われる。この比較の結果(例えば、マッチに対して「1」)は、マスク2034および2038中にマークされる。このマスクは、セグメントの数と同じ多さのビットを含む。2つのマスクの合併集合演算が行われ(これらマスクは、ロジックすなわちORゲート2040と組み合される)、カウンタ2050は「1」の数をカウントし、これは、特徴識別された整数の数(すなわち#Intカウント)である。
・ポインタ:IPは、セグメントの最上位4バイトである。IPの2つの最上位バイトが、0x0000に等しく、IPの2つの最下位バイトが0x0000と不等の場合、当該セグメントはポインタとして特徴識別され、それぞれのカウンタ(#Ptr)がインクリメントされる。前記の特定の手法で最上位4バイトを検査する背後の理論的根拠は、48ビットポンタを検出することにあり、このような例示幅は、現今のコンピュータシステムのキャッシュ/メモリサブシステム中のアドレスによって使われている。前記検査方策の1つの限界は、小さなポインタがポインタの代わりに整数として特徴識別されることである。図21のブロック図は、データブロック2110内でポインタデータ型を特徴識別することを目的とする検査プロセスの例示の実施形態を示す。0x0000との比較はコンパレータ2124a、b、cなどで行われ、0x0000との不等の比較はコンパレータ2128a、b、cなどで行われる。この比較の結果(例えば、マッチに対して「1」)は、マスク2134および2138中にマークされる。このマスクは、セグメントの数と同じ多さのビットを含む。2つのマスクのAND演算が行われ(これら2つのマスクは、両方の状態が保持されなければならないので、ロジックすなわちANDゲート2140と組み合される)、カウンタ2150は「1」の数をカウントし、これは、特徴識別されたポインタの数(すなわち#Ptrカウント)である。
・ 浮動小数点数:IPは、セグメントの最上位ビットの次の7ビットである。この理論的根拠は、ブロック中に包含される浮動小数点データ値が、しばしば同じ指数を有するか、またはそれら指数がクラスタ化されていることであり、しかして、7ビットのIPを相互に比較すれば(IEEE‐754規格によれば、セグメントが浮動小数点データ型である場合、IPは指数の部分である)、それらまたはそれらのサブセットが指数のクラスタを形成するかどうかを明らかにできる。図22のブロック図は、データブロック2210内で浮動小数点データ型を特徴識別することを目的とした検査プロセスの例示の実施形態を示す。前記実施形態では、ブロックセグメントのIPは、ペアで2つの手法、A)相互から0の距離を有するセグメント(すなわち、隣接するセグメント)のIPのペア方式での比較2224と、B)相互から1の距離を有するセグメント(すなわち、両者の間に第三のセグメントを有するセグメントの比較)のIPのペア方式での比較2228と、で比較される。この比較の結果(例えば、マッチに対して「1」)は、マスク2234および2238中にマークされる。次いで、これらの比較の手法の各々に対し、それぞれのカウントがカウンタ2244および2248によってインクリメントされ、最終的に、2つ(すなわち、#FP_Aおよび#FP_B)の間で最大のカウントが選択される。セグメントのサイズが8バイトなので、対象浮動小数点データ型は倍精度である。当業者は、単精度(または他の精度)の符号小数点数を検出することが可能な、または他の浮動小数点規格による、前記予測方法の別の実施形態を実現することもできよう。
・ (負の)ヌルブロック:IPはセグメント全体である。各セグメントがゼロ値に等しい場合(0x00...0)、ブロックはヌルブロックとして特徴識別され、各セグメントが負のゼロ値に等しい場合(0x80...0)、ブロックは負のヌルブロックとして特徴識別される。図23aは、データブロック2310をヌルブロックとして特徴識別することを目的とした検査プロセスの例示の実施形態を示し、また、図23bは、データブロック2310を負のヌルブロックとして特徴識別することを目的とした検査プロセスの別の例示の実施形態を示す。
・(例えば、ハフマン圧縮、カノニカルハフマン圧縮、算術符号化などの)統計的(可変長)符号化、
・ディクショナリベースの圧縮、
・デルタ符号化、
・パターンベースの圧縮、
・有意ベースの圧縮、または
・(例えば、ヌルブロック圧縮などの)共通ブロック値圧縮、
のうちの2つとして選択されたロスレス圧縮スキームである。
・コンピュータシステム中のキャッシュの中にストレージするためのキャッシュライン、キャッシュセット、キャッシュブロック、またはキャッシュセクタ、
・メモリ中へのストレージまたはコンピュータシステム内での転送のためのメモリ行、メモリページ、もしくはメモリセクタ、および
・データ通信システム中の送信リンクを介して転送するためのパケット、フリット、ペイロード、またはヘッダ、
のうちの1つであってよい。
・複数の圧縮サイクルの過程で、それぞれの支配的なデータ型に対するデータコンプレッサの理想的な選択に対して、それぞれの選択された推定最適データコンプレッサをモニタし、
・特定の支配的なデータ型の圧縮性に関し、別のデータコンプレッサがさらに効率的であった可能性を検知し、および
・今後の圧縮サイクルについて、当該特定の支配的なデータ型に対し、最適データコンプレッサを前記別のデータコンプレッサに変更する、ようにさらに構成される。
・ (例えば、ハフマン解凍、カノニカルハフマン解凍、算術復号などの)統計的(可変長)復号、
・ ディクショナリベースの解凍、
・ デルタ復号、
・ パターンベースの解凍、
・ 有意ベースの解凍、または
・ (例えば、ヌルブロック解凍などの)共通ブロック値解凍、
のうちの2つとして選択されるロスレス解凍スキームである。
・コンピュータシステム中のキャッシュの中にストレージするためのキャッシュライン、キャッシュセット、キャッシュブロック、またはキャッシュセクタ、
・メモリ中へのストレージまたはコンピュータシステム内での転送のためのメモリ行、メモリページ、もしくはメモリセクタ、および
・データ通信システム中の送信リンクを介して転送するためのパケット、フリット、ペイロード、またはヘッダ、
のうちの1つであってよい。
Claims (96)
- 未圧縮データブロック(1805、2505)を圧縮データブロック(1818、2518)に圧縮するためのハイブリッドデータ圧縮デバイス(1810、2510)であって、前記未圧縮データブロックは1つまたは複数のデータ型の1つまたは複数のデータ値を含み、前記ハイブリッドデータ圧縮デバイスは、
各コンプレッサがそれぞれのデータ圧縮スキーム(1814-1...1814-n、2514-1...2514-n)用に構成された、複数のデータコンプレッサ(1814、2514)と、
前記未圧縮データブロック(1805、2505)のデータ値のデータ型を予測し、主たる基準として前記予測データ型のうちの支配的なデータ型を用いて、前記複数のデータコンプレッサの中から推定最適データコンプレッサを選択するように構成された予測器メカニズム(1812、2512)と、
を含み、
前記ハイブリッドデータ圧縮デバイスは、前記選択された推定最適データコンプレッサに前記未圧縮データブロックの全体を圧縮させることによって、前記圧縮データブロック(1818、2518)を生成するように構成される、
ハイブリッドデータ圧縮デバイス。 - 前記ハイブリッドデータ圧縮デバイスは、前記圧縮データブロック(1818、2518)に関連付けられ、前記選択された推定最適データコンプレッサの前記データ圧縮スキームを識別する役割を果たすメタデータ(1824、2524、3024)を生成する(1816、2516、3016)ように構成される、請求項1に記載のハイブリッドデータ圧縮デバイス(1810、2510、3010)。
- 前記ハイブリッドデータ圧縮デバイスは、前記生成されたメタデータを、前記圧縮データブロック(1818、2518)と一緒にデータストレージ(1820、2520)の中に格納するように構成され、前記データストレージにはデータ解凍デバイス(1830、2530)がアクセス可能である、請求項2に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記ハイブリッドデータ圧縮デバイスは、前記生成されたメタデータ(3024)を前記圧縮データブロック(3018)と一緒に、リンク(3020)を介してデータ解凍デバイス(3030)に送信するように構成される、請求項2に記載のハイブリッドデータ圧縮デバイス(3010)。
- 前記複数のデータコンプレッサ(1814、2514)は、
・ 第一データ圧縮スキーム用に構成された第一データコンプレッサと、
・ 前記第一圧縮スキームとは異なる第二データ圧縮スキーム用に構成された第二データコンプレッサと、
を含み、
前記第一および第二データ圧縮スキームは各々、ロスレス圧縮スキームまたはロッシー圧縮スキームである、
請求項1~4のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記第一および第二データ圧縮スキームは、
・ 統計的(可変長)符号化、
・ ディクショナリベースの圧縮、
・ デルタ符号化、
・ パターンベースの圧縮、
・ 有意ベースの圧縮、または
・ 共通ブロック値圧縮、
のうちの2つとして選択されたロスレス圧縮スキームである、請求項5に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記第一データ圧縮スキームは、第一データ型のデータ値の間のデータローカリティを利用するように設計され、前記データローカリティは、時間的、空間的、またはこれらの組み合せであり、
前記第二データ圧縮スキームは、第二データ型のデータ値の間のデータローカリティを利用するように設計され、前記データローカリティは、時間的、空間的、またはこれらの組み合せである、
請求項5または6に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記データブロックは、
コンピュータシステム中のキャッシュの中にストレージするためのキャッシュライン、キャッシュセット、キャッシュブロック、またはキャッシュセクタ、
メモリ中へのストレージまたはコンピュータシステム内での転送のためのメモリ行、メモリページ、もしくはメモリセクタ、および
データ通信システム中の送信リンクを介して転送するためのパケット、フリット、ペイロード、またはヘッダ、
のうちの1つである、請求項1~7のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記データ値の前記データ型は、
整数、ポインタ、浮動小数点数、文字、ストリング、ブール値、コード命令、または特定のフォーマットもしくは規格によって定義されたデータ型、
のいずれかである、請求項1~8のいずれかに記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記予測器メカニズム(1812、2512)は、
前記未圧縮データブロック(1805、2505)をセグメントに分割し、
全セグメントに対し、前記セグメントを複数の候補データ型のうちの一予測データ型として分類するため、各セグメントの検査ビット部分を検査し、
前記未圧縮データブロックの前記支配的なデータ型を判定するために、全セグメントの前記予測データ型の出現頻度を比較する、
ように構成される、請求項1~9のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記候補データ型は、整数、ポインタ、浮動小数点数、文字、ストリング、ブール値、共通データ値ブロック、データコード命令、または特定のフォーマットもしくは規格によって定義されたデータ型、のうちの2つ以上である、請求項10に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記検査ビット部分は、相異なる候補データ型に対して異なっている、請求項10または11に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記候補データ型の1つは整数であり、
前記データブロックのサイズはmバイトであり、
前記セグメントのサイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分は前記セグメントの最上位のpバイトであり、
n/pが2である、
請求項10~12のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記予測器メカニズム(1812、2512)は、前記検査ビット部分がいくつかの事前定義されたpバイト値のいずれかに等しい場合、前記セグメントを整数として分類するように構成される、請求項13に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記候補データ型の1つはポインタであり、
前記データブロックの前記サイズはmバイトであり、
前記セグメントの前記サイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分は前記セグメントの最上位のpバイトであり、
n/pが2である、
請求項10~14のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記予測器メカニズム(1812、2512)は、前記検査ビット部分の最上位2バイトが事前定義されたp/2バイト値に等しく、だが最下位の2バイトは不等の場合、前記セグメントをポインタとして分類するように構成される、請求項15に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記候補データ型の1つは浮動小数点数であり、
前記データブロックの前記サイズはmバイトであり、
前記セグメントの前記サイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分は前記セグメントの最上位ビットの次の最上位のqビットである、
請求項10~16のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記予測器メカニズム(1812、2512)は、前記セグメントの前記検査ビット部分を、前記データブロック中の、同じまたはクラスタ化された浮動小数点指数を示す隣接のセグメントの検査ビット部分と突き合わせることによって、前記セグメントを浮動小数点数として分類するように構成される、請求項17に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記候補データ型の1つは共通データ値であり、
前記データブロックの前記サイズはmバイトであり、
前記セグメントの前記サイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分はセグメント全体である、
請求項10~18のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記予測器メカニズム(1812、2512)は、前記セグメントを、その全データ値が同じ共通データ値を有するとき、共通データ値として分類するように構成される、請求項19に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記共通データ値がヌル値である、請求項20に記載のハイブリッドデータ圧縮デバイス。
- 前記ハイブリッドデータ圧縮デバイスは、前記未圧縮データブロック(1805、2505)の全セグメントが共通データ値として分類されたとき、前記推定最適データコンプレッサとして、データ圧縮スキームとして共通ブロック値圧縮を有するデータコンプレッサ(1814、2514)を選択するように構成される、請求項10~21のいずれかに記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記予測器メカニズム(1812、2512)は、前記未圧縮データブロックの前記支配的なデータ型を判定する際に、前記セグメントの2つの異なる予測データ型が同じ出現頻度を有するとき、一方を他方よりも優先するように構成される、請求項10~22のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記予測器メカニズム(1812、2512)は、前記未圧縮データブロックの前記支配的なデータ型を判定する際に、ポインタおよび浮動小数点数よりも整数を、且つ浮動小数点数よりもポインタを、優先するように構成される、請求項23に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記予測器メカニズム(1812、2512)は、前記セグメントのどの予測データ型の出現もないとき、前記推定最適データコンプレッサとしてデフォルトデータコンプレッサを選択するように構成される、請求項10~24のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記予測器メカニズム(1812、2512)は、前記セグメントのどの予測データ型の出現もないとき、推定最適データコンプレッサの代わりに無圧縮を選択し、前記未圧縮データブロックの圧縮を取り止めるように構成される、請求項10~24のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 複数の圧縮サイクルの過程で、前記それぞれの支配的なデータ型について、データコンプレッサの理想的な選択と対比して前記それぞれの選択された推定最適データコンプレッサをモニタし、
特定の支配的なデータ型の圧縮性に関し、別のデータコンプレッサがさらに効率的であった可能性のあることを検出し、
今後の圧縮サイクルについて、前記特定の支配的なデータ型に対し、前記最適データコンプレッサを前記別のデータコンプレッサに変更する、
ようにさらに構成される、請求項1~26のいずれか一項に記載のハイブリッドデータ圧縮デバイス(1810、2510)。 - 前記それぞれの支配的なデータ型のためのデータコンプレッサの前記理想的な選択がオラクルセレクタによって提供され、前記オラクルセレクタは、前記複数の全てのデータコンプレッサ(1814、2514)の前記データ圧縮スキームを使って前記未圧縮のデータブロックを圧縮し、前記それぞれの理想的選択として、前記それぞれの未圧縮データブロックの最善の圧縮性が得られる前記データ圧縮スキームを有する前記コンプレッサを選定する、請求項27に記載のハイブリッドデータ圧縮デバイス(1810、2510)。
- 前記複数のデータコンプレッサは、
共通ブロック値圧縮スキームである第一データ圧縮スキーム用に構成された第一データコンプレッサ(1630)と、
前記第一データ圧縮スキームとは異なる、統計的(可変長)符号化、ディクショナリベースの圧縮、デルタ符号化、パターンベースの圧縮、および有意ベースの圧縮のうちの1つである第二データ圧縮スキーム用に構成された第二データコンプレッサ(1620)と、
を含み、
前記ハイブリッドデータ圧縮デバイスは、前記予測器メカニズム(1630)によって前記未圧縮データブロック(1605)で共通データ値が支配的であることが判明した場合、前記第一データコンプレッサ(1630)に、前記未圧縮データブロック(1605)の全体を圧縮共通値データブロックに圧縮させることによって、前記圧縮データブロック(1618)を生成するように構成され、それ以外の場合は、前記第二データコンプレッサ(1630)に、前記第二データ圧縮スキームに従い前記未圧縮データブロック(1605)の全体を圧縮させることによって、前記圧縮データブロック(1618)を生成するように構成される、
請求項1~28のいずれか一項に記載のハイブリッドデータ圧縮デバイス。 - 前記圧縮共通値データブロックは単一ビットを包含する、請求項29に記載のハイブリッドデータ圧縮デバイス。
- 前記予測器メカニズム(1630)は前記第一データコンプレッサ(1630)と組み込まれる、請求項29または30に記載のハイブリッドデータ圧縮デバイス。
- 前記予測器メカニズム(1630)は、前記未圧縮データブロック(1605)の全データ値が前記共通データ値を有する場合、前記未圧縮データブロックで前記共通データ値が支配的であることを見いだすように構成される、請求項29~31のいずれか一項に記載のハイブリッドデータ圧縮デバイス。
- 前記共通データ値はヌル値である、請求項29~32のいずれか一項に記載のハイブリッドデータ圧縮デバイス。
- 未圧縮データブロック(1805、2505)を圧縮データブロック(1818、2518)に圧縮するためのハイブリッドデータ圧縮方法であって、前記未圧縮データブロックは1つまたは複数のデータ型の1つまたは複数のデータ値を含み、前記ハイブリッドデータ圧縮方法は、
前記未圧縮データブロック(1805、2505)のデータ値のデータ型を予測するステップ(2810)と、
主たる基準として前記予測データ型中の支配的なデータ型を用いて、複数のデータ圧縮スキーム(1814-1...1814-n、2514-1...2514-n)の中から推定最適データ圧縮スキームを選択するステップ(2820)と、
前記圧縮データブロック(1818、2518)を生成するために、前記選択された推定最適データ圧縮スキームによって前記未圧縮データブロックの全体を圧縮するステップ(2830)と、
を含む、ハイブリッドデータ圧縮方法。 - 前記圧縮データブロック(1818、2518)に関連付けられたメタデータ(1824、2524、3024)を生成するステップ(1816、2516、3016)であって、前記メタデータは、前記選択された推定最適データ圧縮スキームを識別する役割を果たす、ステップをさらに含む、請求項34に記載のハイブリッドデータ圧縮方法。
- 前記ハイブリッドデータ圧縮デバイスは、前記生成されたメタデータを前記圧縮データブロック(1818、2518)と一緒にデータストレージ(1820、2520)中に格納するように構成され、前記データストレージにはデータ解凍デバイス(1830、2530)がアクセス可能である、請求項35に記載のハイブリッドデータ圧縮方法。
- 前記生成されたメタデータ(3024)を前記圧縮データブロック(3018)と一緒にリンク(3020)を介して、データ解凍デバイス(3030)に送信するステップをさらに含む、請求項35に記載のハイブリッドデータ圧縮方法。
- 前記複数のデータ圧縮スキーム(1814-1...1814-n、2514-1...2514-n)は、
・ 第一データ圧縮スキームと、
・ 前記第一データ圧縮スキームとは異なる第二データ圧縮スキームと、
を含み、
前記第一および第二データ圧縮スキームは各々、ロスレス圧縮スキームまたはロッシー圧縮スキームである、
請求項34~37のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記第一および第二データ圧縮スキームは、
・ 統計的(可変長)符号化、
・ ディクショナリベースの圧縮、
・ デルタ符号化、
・ パターンベースの圧縮、
・ 有意ベースの圧縮、または
・ 共通ブロック値圧縮、
のうちの2つとして選択されたロスレス圧縮スキームである、請求項38に記載のハイブリッドデータ圧縮方法。 - 前記第一データ圧縮スキームは、第一データ型のデータ値の間のデータローカリティを利用するように設計され、前記データローカリティは、時間的、空間的、またはこれらの組み合せであり、
前記第二データ圧縮スキームは、第二データ型のデータ値の間のデータローカリティを利用するように設計され、前記データローカリティは、時間的、空間的、またはこれらの組み合せである、
請求項38または39に記載のハイブリッドデータ圧縮方法。 - 前記データブロックは、
コンピュータシステム中のキャッシュの中にストレージするためのキャッシュライン、キャッシュセット、キャッシュブロック、またはキャッシュセクタ、
メモリ中へのストレージまたはコンピュータシステム内での転送のためのメモリ行、メモリページ、もしくはメモリセクタ、および
データ通信システム中の送信リンクを介して転送するためのパケット、フリット、ペイロード、またはヘッダ、
のうちの1つである、請求項34~40のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記データ値の前記データ型は、
整数、ポインタ、浮動小数点数、文字、ストリング、ブール値、コード命令、または特定のフォーマットもしくは規格によって定義されたデータ型、
のいずれかである、請求項34~41のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記未圧縮データブロック(1805、2505)をセグメントに分割するステップと、
全セグメントに対し、前記セグメントを複数の候補データ型のうちの一予測データ型として分類するため、各セグメントの検査ビット部分を検査するステップと、
前記未圧縮データブロックの前記支配的なデータ型を判定するために、全セグメントの前記予測データ型の出現頻度を比較するステップと、
をさらに含む、請求項34~42のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記候補データ型は、整数、ポインタ、浮動小数点数、文字、ストリング、ブール値、共通データ値ブロック、データコード命令、または特定のフォーマットもしくは規格によって定義されたデータ型、のうちの2つ以上である、請求項43に記載のハイブリッドデータ圧縮方法。
- 前記検査ビット部分は相異なる候補データ型に対して異なっている、請求項43または44に記載のハイブリッドデータ圧縮方法。
- 前記候補データ型の1つは整数であり、
前記データブロックのサイズはmバイトであり、
前記セグメントのサイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分は前記セグメントの最上位のpバイトであり、
n/pが2である、
請求項43~45のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記検査ビット部分がいくつかの事前定義されたpバイト値のいずれかに等しい場合、前記セグメントを整数として分類するステップをさらに含む、請求項46に記載のハイブリッドデータ圧縮方法。
- 前記候補データ型の1つはポインタであり、
前記データブロックの前記サイズはmバイトであり、
前記セグメントの前記サイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分は前記セグメントの最上位のpバイトであり、
n/pが2である、
請求項43~47のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記検査ビット部分の最上位の2バイトが事前定義されたp/2バイト値に等しく、だが最下位の2バイトは不等である場合、前記セグメントをポインタとして分類するステップをさらに含む、請求項48に記載のハイブリッドデータ圧縮方法。
- 前記候補データ型の1つは浮動小数点数であり、
前記データブロックの前記サイズはmバイトであり、
前記セグメントの前記サイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分は前記セグメントの最上位ビットの次の最上位のqビットである、
請求項43~49のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記セグメントの前記検査ビット部分を、前記データブロック中の、同じまたはクラスタ化された浮動小数点指数を示す隣接のセグメントの検査ビット部分と突き合わせることによって、前記セグメントを浮動小数点数として分類するステップをさらに含む、請求項50に記載のハイブリッドデータ圧縮方法。
- 前記候補データ型の1つは共通データ値であり、
前記データブロックの前記サイズはmバイトであり、
前記セグメントの前記サイズはnバイトであり、
m/nは2の倍数であり、
前記検査ビット部分はセグメント全体である、
請求項43~51のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記セグメントの全データ値が同じ共通データ値を有するとき、前記セグメントを共通データ値として分類するステップをさらに含む、請求項52に記載のハイブリッドデータ圧縮方法。
- 前記共通データ値はヌル値である、請求項53に記載のハイブリッドデータ圧縮デバイス。
- 前記未圧縮データブロック(1805、2505)の全セグメントが共通データ値として分類されたとき、前記推定最適データ圧縮スキームとして、共通ブロック値圧縮であるデータ圧縮スキームを選択するステップをさらに含む、請求項43~54のいずれか一項に記載のハイブリッドデータ圧縮方法。
- 前記未圧縮データブロックの前記支配的なデータ型を判定する際に、前記セグメントの2つの異なる予測データ型が同じ出現頻度を有するとき、一方を他方よりも優先するステップをさらに含む、請求項43~55のいずれか一項に記載のハイブリッドデータ圧縮方法。
- 前記未圧縮データブロックの前記支配的なデータ型を判定する際に、ポインタおよび浮動小数点数よりも整数を、且つ浮動小数点数よりもポインタを優先するステップをさらに含む、請求項56に記載のハイブリッドデータ圧縮方法。
- 前記セグメントのどの予測データ型の出現もないとき、推定最適データコンプレッサとしてデフォルトデータコンプレッサを選択するステップをさらに含む、請求項43~57のいずれか一項に記載のハイブリッドデータ圧縮方法。
- 前記セグメントのどの予測データ型の出現もないとき、推定最適データコンプレッサの代わりに無圧縮を選択し、前記未圧縮データブロックの圧縮を取り止めるステップをさらに含む、請求項43~57のいずれか一項に記載のハイブリッドデータ圧縮方法。
- 複数の圧縮サイクルの過程で、前記それぞれの支配的なデータ型のためのデータ圧縮スキームの理想的な選択と対比して、前記それぞれの選択された推定最適データ圧縮スキームをモニタするステップと、
特定の支配的なデータ型の圧縮性に関し、別のデータ圧縮スキームがさらに効率的であった可能性のあることを検出するステップと、
今後の圧縮サイクルについて、前記特定の支配的なデータ型に対し、前記最適のデータ圧縮スキームを前記別のデータ圧縮スキームに変更するステップと、
をさらに含む、請求項34~59のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記それぞれの支配的なデータ型のためのデータ圧縮スキームの前記理想的な選択がオラクルセレクタによって提供され、前記オラクルセレクタは、前記複数の全てのデータ圧縮スキームを使って前記未圧縮のデータブロックを圧縮し、前記それぞれの理想的選択として、前記それぞれの未圧縮データブロックの最善の圧縮性が得られる前記データ圧縮スキームを選定する、請求項60に記載のハイブリッドデータ圧縮方法。
- 前記複数のデータ圧縮スキーム(1814-1...1814-n、2514-1...2514-n)は、
共通ブロック値圧縮スキームである第一データ圧縮スキームと、
前記第一データ圧縮スキームとは異なった、統計的(可変長)符号化、ディクショナリベースの圧縮、デルタ符号化、パターンベースの圧縮、および有意ベースの圧縮のうちの1つである第二データ圧縮スキームと、
を含み、
前記方法は、前記未圧縮データブロック(1605)で共通データ値が支配的であることが判明した場合、前記未圧縮データブロック(1605)の全体を、前記第一ロスレスデータ圧縮スキームにより圧縮共通値データブロックに圧縮することによって、前記圧縮データブロック(1618)を生成するステップと、それ以外の場合は、前記第二データ圧縮スキームによって前記未圧縮データブロック(1605)の全体を圧縮することによって、前記圧縮データブロック(1618)を生成するステップとを含む、
請求項34~61のいずれか一項に記載のハイブリッドデータ圧縮方法。 - 前記圧縮共通値データブロックは単一ビットを包含する、請求項62に記載のハイブリッドデータ圧縮方法。
- 前記未圧縮データブロック(1605)の全データ値が前記共通データ値を有するとき、前記共通データ値が前記未圧縮データブロック(1605)で支配的であることが見いだされる、請求項62または63に記載のハイブリッドデータ圧縮方法。
- 前記共通データ値はヌル値である、請求項62~64のいずれか一項に記載のハイブリッドデータ圧縮方法。
- 圧縮データブロック(1834、2534)を、1つまたは複数のデータ型の1つまたは複数のデータ値を含む解凍データブロック(1895、2595)に解凍するためのハイブリッドデータ解凍デバイス(1830、2530)であって、前記ハイブリッドデータ解凍デバイスは、
各デコンプレッサがそれぞれのデータ解凍スキーム(1835-1...1835-n、2535-1...2535-n)用に構成された、複数のデータデコンプレッサ(1835、2535)、
を含み、
前記ハイブリッドデータ解凍デバイスは、前記複数のデータデコンプレッサ(1814、2514)の中から選択された推定最適データデコンプレッサに、前記圧縮データブロックの全体を解凍させることによって、前記解凍データブロック(1895、2595)を生成するように構成される、
ハイブリッドデータ解凍デバイス。 - 前記ハイブリッドデータ解凍デバイスは、前記圧縮データブロック(1834、2534)に関連付けられたメタデータ(1824、2524、3024)を読み出して(1832、2532、3032)、前記メタデータに基づいて前記推定最適データデコンプレッサを選択するように構成される、請求項66に記載のハイブリッドデータ解凍デバイス(1830、2530)。
- 前記ハイブリッドデータ解凍デバイスは、前記メタデータを前記圧縮データブロック(1834、2534)と一緒にデータストレージ(1820、2520)から読み出すように構成され、前記データストレージにはデータ圧縮デバイス(1810、2510)がアクセス可能である、請求項67に記載のハイブリッドデータ解凍デバイス(1830、2530)。
- 前記ハイブリッドデータ解凍デバイスは、前記メタデータ(3034)を前記圧縮データブロック(3038)と一緒に、リンク(3020)を介してデータ圧縮デバイス(3010)から受信するように構成される、請求項67に記載のハイブリッドデータ解凍デバイス(3030)。
- 前記複数のデータデコンプレッサ(1835、2535)は、
・ 第一データ解凍スキーム用に構成された第一データデコンプレッサと、
・ 前記第一データ解凍スキームとは異なる第二データ解凍スキーム用に構成された第二データデコンプレッサと、
を含み、
前記第一および第二データ解凍スキームの各々はロスレス解凍スキームまたはロッシー解凍スキームである、
請求項67~69のいずれか一項に記載のハイブリッドデータ解凍デバイス(1830、2530)。 - 前記第一および第二データ解凍スキームは、
・ 統計的(可変長)復号、
・ ディクショナリベースの解凍、
・ デルタ復号、
・ パターンベースの解凍、
・ 有意ベースの解凍、または
・ 共通ブロック値解凍、
のうちの2つとして選択されたロスレス解凍スキームである、請求項70に記載のハイブリッドデータ解凍デバイス(1830、2530)。 - 前記データブロックは、
コンピュータシステム中のキャッシュの中にストレージするためのキャッシュライン、キャッシュセット、キャッシュブロック、またはキャッシュセクタ、
メモリ中へのストレージまたはコンピュータシステム内での転送のためのメモリ行、メモリページ、もしくはメモリセクタ、および
データ通信システム中の送信リンクを介して転送するためのパケット、フリット、ペイロード、またはヘッダ、
のうちの1つである、請求項70または71に記載のハイブリッドデータ解凍デバイス(1830、2530)。 - 前記データ値の前記データ型は、
整数、ポインタ、浮動小数点数、文字、ストリング、ブール値、コード命令、または特定のフォーマットもしくは規格によって定義されたデータ型、
のいずれかである、請求項70~72のいずれか一項に記載のハイブリッドデータ解凍デバイス(1830、2530)。 - 前記複数のデータデコンプレッサは、
共通ブロック値解凍スキームである第一データ解凍スキーム用に構成された第一データデコンプレッサ(1720)と、
前記第一データ解凍スキームとは異なる、統計的(可変長)復号、ディクショナリベースの解凍、デルタ復号、パターンベースの解凍、および有意ベースの解凍のうちの1つである第二データ解凍スキーム用に構成された第二データデコンプレッサ(1710)と、
を含み、
前記ハイブリッドデータ解凍デバイスは、前記圧縮データブロック(1705)が圧縮共通値データブロックであるかどうかをチェックし、そうである場合は、前記第一データデコンプレッサ(1720)に、前記圧縮データブロック(1705)の全体を、解凍共通値データブロックに解凍させることによって、前記解凍データブロック(1795)を生成し、そうでない場合は、前記第二データデコンプレッサ(1710)に、前記圧縮データブロック(1705)を、前記第二データ解凍スキームに従って解凍させることによって、前記解凍データブロック(1795)を生成するように構成される、
請求項66~73のいずれか一項に記載のハイブリッドデータ解凍デバイス。 - 前記圧縮共通値データブロックは、単一ビットを包含する、請求項74に記載のハイブリッドデータ圧縮デバイス。
- 前記第一データデコンプレッサ(1720)は、前記解凍共通値データブロックに共通の値を充填することによって、前記圧縮データブロック(1705)の全体を前記解凍共通値データブロックに解凍するように構成される、請求項74または75に記載のハイブリッドデータ圧縮デバイス。
- 前記共通データ値はヌル値である、請求項76に記載のハイブリッドデータ解凍デバイス。
- 圧縮データブロック(1834、2534)を、1つまたは複数のデータ型の1つまたは複数のデータ値を含む解凍データブロック(1895、2595)に解凍するためのハイブリッドデータ解凍方法であって、前記ハイブリッドデータ解凍方法は、
前記複数のデータ解凍スキーム(1835-1...1835-n、2535-1...2535-n)の中から推定最適データ解凍スキームを選択するステップ(2910)と、
前記解凍データブロック(1895、2595)を生成するために、前記選択された推定最適データ圧縮スキームによって、前記圧縮データブロック(1834、2534)の全体を解凍するステップ(2920)と、
を含む、ハイブリッドデータ解凍方法。 - 前記圧縮データブロック(1834、2534)に関連付けられたメタデータ(1824、2524、3024)を読み出すステップ(1832、2532、3032)と、前記メタデータに基づいて前記推定最適データ解凍スキームを選択するステップとをさらに含む、請求項78に記載のハイブリッドデータ解凍方法。
- 前記メタデータは、データストレージ(1820、2520)から前記圧縮データブロック(1834、2534)と一緒に読み出され、前記データストレージには、データ圧縮デバイス(1810、2510)がアクセス可能である、請求項79に記載のハイブリッドデータ解凍方法。
- 前記メタデータ(3034)は、リンク(3020)を介して、データ圧縮デバイス(3010)から、前記圧縮データブロック(3038)と一緒に受信される、請求項79に記載のハイブリッドデータ解凍方法。
- 前記複数のデータ解凍スキーム(1835、2535)は、
・ 第一データ解凍スキームと、
・ 前記第一データ解凍スキームとは異なる第二データ解凍スキームと、
を含み、
前記第一および第二データ解凍スキームの各々は、ロスレス解凍スキームまたはロッシー解凍スキームである、
請求項78~81のいずれか一項に記載のハイブリッドデータ解凍方法。 - 前記第一および第二データ解凍スキームは、
・ 統計的(可変長)復号、
・ ディクショナリベースの解凍、
・ デルタ復号、
・ パターンベースの解凍、
・ 有意ベースの解凍、または
・ 共通ブロック値解凍、
のうちの2つとして選択されたロスレス解凍スキームである、請求項78~82のいずれか一項に記載のハイブリッドデータ解凍方法。 - 前記データブロックは、
コンピュータシステム中のキャッシュの中にストレージするためのキャッシュライン、キャッシュセット、キャッシュブロック、またはキャッシュセクタ、
メモリ中へのストレージまたはコンピュータシステム内での転送のためのメモリ行、メモリページ、もしくはメモリセクタ、および
データ通信システム中の送信リンクを介して転送するためのパケット、フリット、ペイロード、またはヘッダ、
のうちの1つである、請求項78~83のいずれか一項に記載のハイブリッドデータ解凍方法。 - 前記データ値の前記データ型は、
整数、ポインタ、浮動小数点数、文字、ストリング、ブール値、コード命令、または特定のフォーマットもしくは規格によって定義されたデータ型、
のいずれかである、請求項78~84のいずれか一項に記載のハイブリッドデータ解凍方法。 - 前記複数のデータ解凍スキーム(1835、2535)は、
共通ブロック値解凍スキームである第一データ解凍スキームと、
前記第一データ解凍スキームとは異なる、統計的(可変長)復号、ディクショナリベースの解凍、デルタ復号、パターンベースの解凍、および有意ベースの解凍のうちの1つである第二データ解凍スキームと、
を含み、
前記方法は、前記圧縮データブロック(1705)が圧縮共通値データブロックであるかどうかをチェックするステップと、そうである場合は、前記第一データデコンプレッサ(1720)に、前記圧縮データブロック(1705)の全体を、解凍共通値データブロックに解凍させることによって、前記解凍データブロック(1795)を生成するステップと、そうでない場合は、前記第二データデコンプレッサ(1710)に、前記圧縮データブロック(1705)を、前記第二データ解凍スキームに従って解凍させることによって、前記解凍データブロック(1795)を生成するステップと、をさらに含む、
請求項78~85のいずれか一項に記載のハイブリッドデータ解凍方法。 - 前記圧縮共通値データブロックは、単一ビットを包含する、請求項86に記載のハイブリッドデータ解凍方法。
- 前記方法は、前記解凍共通値データブロックに共通の値を充填することによって、前記圧縮データブロック(1705)の全体を前記解凍共通値データブロックに解凍するステップを含む、請求項86または87に記載のハイブリッドデータ解凍方法。
- 前記共通データ値はヌル値である、請求項88に記載のハイブリッドデータ解凍方法。
- 処理デバイスによってロードされ実行されると、請求項34に記載の方法を遂行させるコード命令を含む、コンピュータプログラム製品。
- 請求項34に記載の方法を遂行するように構成されたロジック回路を含むデバイス。
- 処理デバイスによってロードされ実行されると請求項78に記載の方法を遂行させるコード命令を含む、コンピュータプログラム製品。
- 請求項78に記載の方法を遂行するように構成されたロジック回路を含むデバイス。
- 1つ以上のメモリ(3110)と、請求項1~33のいずれか一項に記載のデータ圧縮デバイス(1500、2000、2200)と、請求項66~77のいずれか一項に記載のデータ解凍デバイス(1700、2100、2400)とを含むシステム(3100)。
- 前記システムは、コンピュータシステム(100、200、300、400、500)であり、前記1つ以上のメモリ(3110)は、
キャッシュメモリ(L1~L3)と、
ランダムアクセスメモリ(130、230、330、430、530)と、
補助的ストレージと、
から成る群からのものである、請求項94に記載のシステム(3100)。 - 前記システムは、データ通信システム(600、700)であり、前記1つ以上のメモリ(3110)はデータバッファである、請求項94に記載のシステム(3100)。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE1550644-7 | 2015-05-21 | ||
SE1550644 | 2015-05-21 | ||
SE1650119 | 2016-01-29 | ||
SE1650119-9 | 2016-01-29 | ||
PCT/SE2016/050462 WO2016186563A1 (en) | 2015-05-21 | 2016-05-20 | Methods, devices and systems for hybrid data compression and decompression |
JP2017560651A JP7010548B2 (ja) | 2015-05-21 | 2016-05-20 | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017560651A Division JP7010548B2 (ja) | 2015-05-21 | 2016-05-20 | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022031735A true JP2022031735A (ja) | 2022-02-22 |
Family
ID=57320929
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017560651A Active JP7010548B2 (ja) | 2015-05-21 | 2016-05-20 | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム |
JP2021185947A Pending JP2022031735A (ja) | 2015-05-21 | 2021-11-15 | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017560651A Active JP7010548B2 (ja) | 2015-05-21 | 2016-05-20 | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム |
Country Status (7)
Country | Link |
---|---|
US (2) | US10476520B2 (ja) |
EP (1) | EP3304746B1 (ja) |
JP (2) | JP7010548B2 (ja) |
KR (1) | KR102578689B1 (ja) |
CN (1) | CN107925418B (ja) |
CA (1) | CA2986555A1 (ja) |
WO (1) | WO2016186563A1 (ja) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2986555A1 (en) * | 2015-05-21 | 2016-11-24 | Zeropoint Technologies Ab | Methods, devices and systems for hybrid data compression and decompression |
US10063422B1 (en) * | 2015-12-29 | 2018-08-28 | Amazon Technologies, Inc. | Controlled bandwidth expansion in compressed disaggregated storage systems |
SE540178C2 (en) | 2016-01-29 | 2018-04-24 | Zeropoint Tech Ab | Methods, devices and systems for compressing and decompressing data |
US20180131749A1 (en) * | 2016-11-10 | 2018-05-10 | Ingram Micro Inc. | System and Method for Optimizing Data Transfer using Selective Compression |
CN106507107B (zh) * | 2016-12-08 | 2019-07-05 | 北京数码视讯科技股份有限公司 | 数据的处理方法和装置 |
US10445261B2 (en) * | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
US10061698B2 (en) | 2017-01-31 | 2018-08-28 | Qualcomm Incorporated | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur |
US10599935B2 (en) * | 2017-02-22 | 2020-03-24 | Arm Limited | Processing artificial neural network weights |
GB2561036A (en) | 2017-03-31 | 2018-10-03 | Cirrus Logic Int Semiconductor Ltd | Methods and apparatus for buffering and compression of data |
US10438569B2 (en) | 2017-04-17 | 2019-10-08 | Intel Corporation | Consolidation of data compression using common sectored cache for graphics streams |
US10902546B2 (en) * | 2017-04-21 | 2021-01-26 | Intel Corporation | Efficient skipping of data compression processes at computing devices |
KR20210107136A (ko) | 2017-06-26 | 2021-08-31 | 스티븐 타린 | 큰 데이터를 더 작은 표현으로 변환하고 더 작은 표현을 원래의 큰 데이터로 재변환하기 위한 시스템들 및 방법들 |
US10402111B1 (en) * | 2017-08-14 | 2019-09-03 | Xilinx, Inc. | Systems and methods for data storage compression |
US10250899B1 (en) | 2017-09-22 | 2019-04-02 | Qualcomm Incorporated | Storing and retrieving high bit depth image data |
US10419022B2 (en) | 2017-11-30 | 2019-09-17 | International Business Machines Corporation | Run-length base-delta encoding for high-speed compression |
US10642602B2 (en) * | 2017-12-12 | 2020-05-05 | Nxp Usa, Inc. | NVM architecture with OTA support |
GB201805628D0 (en) * | 2018-04-05 | 2018-05-23 | Qatar Found Education Science & Community Dev | Method and system for data specific transceiver design for efficient ioT devices |
US10305508B2 (en) * | 2018-05-11 | 2019-05-28 | Intel Corporation | System for compressing floating point data |
US10665006B2 (en) * | 2018-06-29 | 2020-05-26 | Intel Corporation | Efficient prediction of most commonly occuring values in data blocks in computing environments |
US11604738B2 (en) * | 2018-09-28 | 2023-03-14 | Advanced Micro Devices, Inc. | Device and method for data compression using a metadata cache |
CN109167919B (zh) * | 2018-10-11 | 2020-05-15 | 北京文香信息技术有限公司 | 一种图片压缩方法及装置 |
US11144506B2 (en) * | 2018-10-29 | 2021-10-12 | EMC IP Holding Company LLC | Compression of log data using field types |
WO2020130929A1 (en) * | 2018-12-21 | 2020-06-25 | Zeropoint Technologies Ab | Methods, devices and systems for efficient compression and decompression for higher throughput |
US10795825B2 (en) * | 2018-12-26 | 2020-10-06 | Advanced Micro Devices, Inc. | Compressing data for storage in cache memories in a hierarchy of cache memories |
JP7107877B2 (ja) * | 2019-03-22 | 2022-07-27 | 株式会社日立製作所 | ストレージシステム、及び、記憶コスト適正化方法 |
CN109962711B (zh) * | 2019-04-09 | 2022-07-08 | 深圳市道通智能航空技术股份有限公司 | 一种数据压缩方法、电子设备及存储介质 |
US20190243780A1 (en) * | 2019-04-10 | 2019-08-08 | Vinodh Gopal | Scalable application-customized memory compression |
US10749546B1 (en) * | 2019-05-15 | 2020-08-18 | Dell Products L.P. | Method and system of content based dynamic data compression |
CN112099725A (zh) * | 2019-06-17 | 2020-12-18 | 华为技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN111010189B (zh) * | 2019-10-21 | 2021-10-26 | 清华大学 | 一种对数据集的多路压缩方法、装置及存储介质 |
US11854022B2 (en) | 2019-10-22 | 2023-12-26 | Sap Se | Proactively predicting transaction dates based on sparse transaction data |
EP3817236B1 (en) * | 2019-11-04 | 2024-10-16 | Samsung Electronics Co., Ltd. | Neural network data processing method and apparatus |
JP7355622B2 (ja) * | 2019-11-29 | 2023-10-03 | 株式会社日立製作所 | エンコーダを有するストレージシステム |
CN113055017A (zh) * | 2019-12-28 | 2021-06-29 | 华为技术有限公司 | 数据压缩方法及计算设备 |
US11474949B2 (en) * | 2020-04-03 | 2022-10-18 | Microsoft Technology Licensing, Llc | Physical memory compression |
US11405622B2 (en) | 2020-04-22 | 2022-08-02 | Apple Inc. | Lossless compression techniques |
US11664816B2 (en) | 2020-04-22 | 2023-05-30 | Apple Inc. | Lossy compression techniques |
US11362672B2 (en) * | 2020-05-08 | 2022-06-14 | Qualcomm Incorporated | Inline decompression |
US11429294B2 (en) * | 2020-05-22 | 2022-08-30 | Dell Products L.P. | Efficient compressed track size classification to reduce disk fragmentation and increase probability of in-place compressed writes |
SE544557C2 (en) * | 2020-12-01 | 2022-07-12 | Zeropoint Tech Ab | Systems, methods and devices for exploiting value similarity in computer memories |
WO2022188953A2 (en) * | 2021-03-09 | 2022-09-15 | Huawei Technologies Co., Ltd. | Memory controller and method for improved deduplication |
CN113176853A (zh) * | 2021-04-26 | 2021-07-27 | 深圳市华沃表计科技有限公司 | 数据压缩存储方法 |
CN113364467B (zh) * | 2021-06-04 | 2022-07-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种哈夫曼解码系统、方法、设备及存储介质 |
CN113487025B (zh) * | 2021-07-02 | 2023-09-08 | 浙江大学 | 面向神经网络检查点数据的智能压缩存储方法和系统 |
US20230009824A1 (en) * | 2021-07-09 | 2023-01-12 | Qualcomm Incorporated | Transmission of previously compressed packets to avoid throughput drop |
CN118020057A (zh) * | 2021-09-29 | 2024-05-10 | 美光科技公司 | 使用内联元数据对压缩状态的早期检测 |
JP2023064241A (ja) * | 2021-10-26 | 2023-05-11 | 株式会社日立製作所 | ストレージシステム及びストレージシステムにおけるデータ処理方法 |
US12007948B1 (en) * | 2022-07-31 | 2024-06-11 | Vast Data Ltd. | Similarity based compression |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5467087A (en) * | 1992-12-18 | 1995-11-14 | Apple Computer, Inc. | High speed lossless data compression system |
US20020097172A1 (en) * | 1998-12-11 | 2002-07-25 | Fallon James J. | Content independent data compression method and system |
JP2014116017A (ja) * | 2012-12-11 | 2014-06-26 | Samsung Electronics Co Ltd | モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法 |
JP7010548B2 (ja) * | 2015-05-21 | 2022-01-26 | ゼロポイント テクノロジーズ アーベー | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3224906B2 (ja) * | 1993-06-03 | 2001-11-05 | 株式会社日立製作所 | 信号記録方法、信号記録装置、信号再生方法及び信号再生装置 |
WO1995029437A1 (fr) | 1994-04-22 | 1995-11-02 | Sony Corporation | Dispositif et methode pour transmettre des donnees et dispositif et methode pour enregistrer des donnees |
US7190284B1 (en) | 1994-11-16 | 2007-03-13 | Dye Thomas A | Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent |
JPH08237208A (ja) * | 1995-02-23 | 1996-09-13 | Daihatsu Motor Co Ltd | 情報送信装置及び情報受信装置 |
US6272453B1 (en) | 1998-01-05 | 2001-08-07 | Trw Inc. | Concurrent legacy and native code execution techniques |
US6492991B1 (en) | 1998-08-28 | 2002-12-10 | Ati International Srl | Method and apparatus for controlling compressed Z information in a video graphics system |
US6731814B2 (en) * | 2000-05-01 | 2004-05-04 | Xerox Corporation | Method for compressing digital documents with control of image quality and compression rate |
JP2002262102A (ja) * | 2001-03-05 | 2002-09-13 | Matsushita Electric Ind Co Ltd | 画像符号化装置、画像符号化方法、及びその記憶媒体 |
US7162583B2 (en) * | 2003-12-29 | 2007-01-09 | Intel Corporation | Mechanism to store reordered data with compression |
JP4479530B2 (ja) | 2004-12-28 | 2010-06-09 | カシオ電子工業株式会社 | データ圧縮装置、及びデータ復元装置 |
US7961960B2 (en) | 2006-08-24 | 2011-06-14 | Dell Products L.P. | Methods and apparatus for reducing storage size |
JP5018060B2 (ja) * | 2006-12-14 | 2012-09-05 | 日本電気株式会社 | 情報処理装置および情報処理方法 |
US20080228998A1 (en) | 2007-03-16 | 2008-09-18 | Spansion Llc | Memory storage via an internal compression algorithm |
WO2009022531A1 (ja) * | 2007-08-13 | 2009-02-19 | Nec Corporation | データ圧縮伸張方法 |
US8208532B2 (en) | 2008-03-31 | 2012-06-26 | Oracle America, Inc. | Method and apparatus for data compression and decompression |
CN102576378B (zh) | 2009-09-21 | 2015-06-17 | X环技术有限公司 | 计算机断层成像数据的容错压缩和解压缩的方法和系统 |
CN102843142B (zh) * | 2011-06-23 | 2013-07-31 | 深圳市国微电子有限公司 | 可编程逻辑器件配置数据流压缩、解压缩处理方法及系统 |
US9047118B2 (en) | 2011-06-30 | 2015-06-02 | Altera Corporation | Computationally efficient compression of floating-point data |
US8497788B1 (en) | 2012-04-25 | 2013-07-30 | Pure Storage Inc. | Efficient techniques for aligned fixed-length compression |
US9330001B2 (en) | 2012-05-21 | 2016-05-03 | Zeropoint Technologies Ab | Cache system and a method of operating a cache memory |
US9118345B2 (en) * | 2012-10-04 | 2015-08-25 | Altera Corporation | Data compression profiler for configuration of compression |
WO2016186564A1 (en) | 2015-05-21 | 2016-11-24 | Zeropoint Technologies Ab | Methods, devices and systems for semantic-value data compression and decompression |
SE540178C2 (en) | 2016-01-29 | 2018-04-24 | Zeropoint Tech Ab | Methods, devices and systems for compressing and decompressing data |
WO2017131578A1 (en) | 2016-01-29 | 2017-08-03 | Zeropoint Technologies Ab | Methods, devices and systems for compressing and decompressing data |
-
2016
- 2016-05-20 CA CA2986555A patent/CA2986555A1/en active Pending
- 2016-05-20 KR KR1020177036796A patent/KR102578689B1/ko active IP Right Grant
- 2016-05-20 EP EP16796838.7A patent/EP3304746B1/en active Active
- 2016-05-20 WO PCT/SE2016/050462 patent/WO2016186563A1/en active Application Filing
- 2016-05-20 US US15/575,007 patent/US10476520B2/en active Active
- 2016-05-20 JP JP2017560651A patent/JP7010548B2/ja active Active
- 2016-05-20 CN CN201680042384.0A patent/CN107925418B/zh active Active
-
2019
- 2019-10-15 US US16/653,610 patent/US10819369B2/en active Active
-
2021
- 2021-11-15 JP JP2021185947A patent/JP2022031735A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5467087A (en) * | 1992-12-18 | 1995-11-14 | Apple Computer, Inc. | High speed lossless data compression system |
US20020097172A1 (en) * | 1998-12-11 | 2002-07-25 | Fallon James J. | Content independent data compression method and system |
JP2014116017A (ja) * | 2012-12-11 | 2014-06-26 | Samsung Electronics Co Ltd | モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法 |
JP7010548B2 (ja) * | 2015-05-21 | 2022-01-26 | ゼロポイント テクノロジーズ アーベー | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム |
Also Published As
Publication number | Publication date |
---|---|
EP3304746A4 (en) | 2019-01-09 |
US10819369B2 (en) | 2020-10-27 |
JP2018522457A (ja) | 2018-08-09 |
US10476520B2 (en) | 2019-11-12 |
CN107925418B (zh) | 2021-06-01 |
JP7010548B2 (ja) | 2022-01-26 |
CN107925418A (zh) | 2018-04-17 |
EP3304746A1 (en) | 2018-04-11 |
CA2986555A1 (en) | 2016-11-24 |
WO2016186563A1 (en) | 2016-11-24 |
US20200044663A1 (en) | 2020-02-06 |
KR20180019597A (ko) | 2018-02-26 |
EP3304746B1 (en) | 2021-04-07 |
KR102578689B1 (ko) | 2023-09-15 |
US20180138921A1 (en) | 2018-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7010548B2 (ja) | ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム | |
US10846218B2 (en) | Methods, devices and systems for compressing and decompressing data | |
CN109075798B (zh) | 可变大小符号基于熵的数据压缩 | |
US10268380B2 (en) | Methods, devices and systems for semantic-value data compression and decompression | |
CN108702160B (zh) | 用于压缩和解压缩数据的方法、设备和系统 | |
US11043963B1 (en) | System and components for encoding integers | |
WO2021103013A1 (zh) | 一种数据编码、数据解码方法、设备及存储介质 | |
JP2023064241A (ja) | ストレージシステム及びストレージシステムにおけるデータ処理方法 | |
WO2024138981A1 (zh) | 数据压缩和解压缩方法、装置、电子设备及存储介质 | |
US20120293344A1 (en) | Compressing and decompressing data | |
US8593310B1 (en) | Data-driven variable length encoding of fixed-length data | |
US20210281276A1 (en) | Encoded block format | |
US20240204796A1 (en) | Code table generation device, memory system, and code table generation method | |
CN118611678A (zh) | 一种数据压缩方法、处理器、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211210 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221122 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230620 |