JP7031828B2 - 意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム - Google Patents

意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム Download PDF

Info

Publication number
JP7031828B2
JP7031828B2 JP2017560792A JP2017560792A JP7031828B2 JP 7031828 B2 JP7031828 B2 JP 7031828B2 JP 2017560792 A JP2017560792 A JP 2017560792A JP 2017560792 A JP2017560792 A JP 2017560792A JP 7031828 B2 JP7031828 B2 JP 7031828B2
Authority
JP
Japan
Prior art keywords
data
mantissa
compressed
compression
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.)
Active
Application number
JP2017560792A
Other languages
English (en)
Other versions
JP2018520576A (ja
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 JP2018520576A publication Critical patent/JP2018520576A/ja
Application granted granted Critical
Publication of JP7031828B2 publication Critical patent/JP7031828B2/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
    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3071Prediction
    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • 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/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization
    • 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

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)

Description

関連出願との相互参照
本特許出願は、2015年5月21日に提出され、「METHODS, DEVICES AND SYSTEMS FOR DATA COMPRESSION AND DECOMPRESSION」という名称を有するスウェーデン特許出願第1550644-7号の優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
本特許出願の開示は、概ね、例えばコンピュータシステムのキャッシュ/メモリサブシステム及び/もしくはデータ転送サブシステムにおける又はデータ通信システムにおけるデータ圧縮及び解凍の分野に関する。
データ圧縮はデータのサイズを縮小するために使用される確立された技術である。これは、メモリ容量を増加させるためにコンピュータシステムのメモリサブシステムに保存されるデータに適用される。これはまた、データがコンピュータシステム内の様々なサブシステム間で転送される場合、又は一般に転送が、通信ネットワークを備えるデータ通信システムにおいて2つの点間で行われる場合、の何れでも使用される。
データ圧縮は、1)非圧縮データを入力として受け取り、データ値をそれぞれの符号語(文献では符号化物、暗号化物、又は記号としても記載されている)で置き換えることによって非圧縮データを圧縮データに変換する圧縮(符号化とも呼ばれる)、及び2)圧縮データを入力として受け取り、符号語をそれぞれのデータ値で置き換えることによって、圧縮データを非圧縮に変換する解凍(復号化とも呼ばれる)という2つの基本的な動作を必要とする。データ圧縮は、圧縮後の実際のデータ値が圧縮される前の元のデータ値と正確に同じ(ロスレス)であるかどうか、又は解凍後のデータ値が元の値と異なり、元の値を読み出すことができない(ロッシー)かどうか、に応じて、ロスレス又はロッシーとすることができる。圧縮及び解凍は、それぞれの方法、装置、及びシステムを実現するソフトウェアもしくはハードウェア又はソフトウェア及びハードウェアの組み合わせで実装されることができる。
コンピュータシステム100の一例が図1に示されている。コンピュータシステム100は、例えば相互接続ネットワークなどの通信手段を使用してメモリ階層110に接続されている1つ又は複数の処理ユニットP1…Pnを備える。各処理ユニットは、プロセッサ(又はコア)を備え、CPU(中央処理装置:Central Processing Unit)、GPU(グラフィック処理装置:Graphics Processing Unit)、又は一般に計算を実行するブロックとすることができる。一方、メモリ階層110は、コンピュータシステム100の記憶サブシステムを構成し、1つ又は複数のレベルL1~L3に編成されることができるキャッシュメモリ120及びメモリ130(別称、一次メモリ)を備える。メモリ130は、二次記憶装置(例えば、ハードディスクドライブ、ソリッドステートドライブ、又はフラッシュメモリ)に接続されることもできる。メモリ130は、幾つかのレベル、例えば、高速メインメモリ(例えば、DDR)及びフラッシュメモリに編成されることができる。この例のキャッシュメモリ120は3つのレベルを備え、ここで処理ユニットP1~Pnの各々が専用のL1/L2キャッシュに接続されているので、L1及びL2はプライベートキャッシュであり、一方L3は全ての処理ユニットP1~Pnの間で共有されている。代替的な例は、全てが当業者によって容易に実現されるように、より多くのキャッシュレベル、より少ないキャッシュレベル、又はゼロキャッシュレベル及びプライベートもしくは共有の専用キャッシュを有する又は有さないキャッシュ階層、様々な数の処理ユニットを有する様々なメモリレベル、並びに、一般的に、処理ユニットとメモリサブシステムとの間の様々な組み合わせを実現することができる。
データ圧縮は様々な方法でコンピュータシステムに適用されることができる。図2は、例えば図1のシステム100のようなコンピュータシステムの例200を示し、データはそのようなコンピュータシステムのメモリ、例えばメインメモリ内で圧縮される。これは、データが上述したようなそれぞれの圧縮動作によってメモリに保存される前に圧縮され、データがメモリから去る場合に解凍されることを意味する。
図3に示されているコンピュータシステムの代替例300では、データ圧縮はキャッシュシステムのL3キャッシュに適用されることができる。前の例と同様に、圧縮は、データがキャッシュに保存される前に必要とされ、解凍は、データがキャッシュを去る(例えば、データが圧縮されていない他のキャッシュレベル(L2)へ又はメモリ330へ行く)前に必要とされる。代替例では、データはキャッシュ階層の任意のレベルで圧縮されて保存されることができる。
データは、コンピュータシステム内の様々なサブシステム間で転送される場合にのみ圧縮されることもできる。図4に示されているコンピュータシステムの代替例400では、データは、それぞれの通信手段を使用してL3キャッシュとメモリ430との間で転送される場合に圧縮される。前の例と同様に、圧縮及び解凍は、データが転送される前に圧縮され、他方の端部で受信される場合に解凍されるように、通信手段の両端部に存在する必要がある。
コンピュータシステムの代替例500では、図5に示すように、データ圧縮は、サブシステムの結合において適用されることができる。この例では、データはメモリ530に保存される場合に、及びメモリ530とキャッシュ階層520との間で転送される場合に圧縮される。このように、データがキャッシュ階層520からメモリ530に移動される場合に、データはL3キャッシュから転送される前にのみ圧縮される必要がある可能性がある。代替的に、メモリ530を去りキャッシュ階層520に行く圧縮データは、メモリ530をキャッシュ階層520に接続する通信手段の他端部で受信される場合にのみ、解凍される必要がある可能性がある。コンピュータシステムにおける様々なサブシステムへ圧縮を適用する組み合わせに関しては、任意の例が可能であり、当業者によって実現されることができる。
データの転送は、通信ネットワーク内の2つの任意の点の間で行われることもできる。図6は、データが送信機610によって転送され、受信機620によって受信される2点間の通信ネットワーク605を備えるデータ通信システム600の例を示す。このような例では、これらの点は、ネットワーク内の2つの中間ノードもしくは通信リンクのソースノード及びデスティネーションノード、又はこれらの場合の組み合わせとすることができる。データ圧縮は、図7の例示的なシステム700に示されているように、このようなデータ通信システムに適用されることができる。圧縮は、データが送信機710によって通信ネットワーク705に送信される前に適用される必要があり、一方、解凍は受信機720によって受信された後に適用される必要がある。
データ圧縮を実現するための様々な異なるアルゴリズムがある。データ圧縮アルゴリズムの1つのファミリは統計的圧縮アルゴリズムであり、それは、データに依存し、データ値の統計的特性に基づいて可変長(可変幅とも呼ばれる)コードを割り当てるため、エントロピーに近い圧縮効率を提供することができる。短い符号語は頻繁に出現するデータ値を符号化するために使用され、より長い符号語はより少ない頻度で出現するデータ値を符号化する。ハフマン符号化は既知の統計的圧縮アルゴリズムである。
解凍を加速するために使用されるハフマン符号化の既知の変形は、標準ハフマン符号化である。これに基づいて、符号語は、同じ長さの符号語が連続する整数であることを意味する数列特性を有する。
標準ハフマンベースの圧縮及び解凍機構の例は、従来技術で提示されている。そのような圧縮及び解凍機構は、ハフマンベースの圧縮及び解凍を実現するために、前述の例で使用されることができる。
ハフマン符号化、例えば標準ハフマン符号化を実装する従来技術によるコンプレッサ900の一例が図9に示されている。それは、データ値のストリームであり、本開示を通して、一般にv1、v2、…、vnで示される1つ又は複数のデータ値を備える非圧縮ブロックを入力として取る。非圧縮ブロックからのデータ値の記憶ユニット又は抽出器とすることができるユニット910は、可変長符号化ユニット920にデータ値を供給する。可変長符号化ユニット920は、コードテーブル(CT:Code Table)922及び符号語(CW:codeword)セレクタ928を備える。CT922は、ルックアップテーブル(LUT:Look Up Table)又は(任意の関連性の)コンピュータキャッシュメモリとして実装されることができ、且つ1つ又は複数のエントリを含むテーブルである。各エントリは、符号語を使用して圧縮されることができる値923、CW925、及び符号語長(cL:codeword-length)927を備える。統計的圧縮アルゴリズムによって使用される一組の様々な符号語は可変長であるので、各エントリが固定サイズの幅(符号語925)を有するCT922に保存される場合に、それらはゼロで埋められる必要がある。符号語長927は、可変長符号化の実際の長さを(例えば、ビット単位で)保持する。CWセレクタ928は、実際のCWを識別し、埋められたゼロを破棄するためにcLを使用する。次に、符号化値は、圧縮ブロックを一緒に形成する圧縮値の他の部分に連結される。前述したような圧縮ステップに続く圧縮方法の例示的なフローチャートが図11に示される。
先行技術からのデコンプレッサ1000の一例が図10に示されている。標準ハフマン解凍は、符号語検出及び値読み出しの2つのステップに分けられることができる。これらのステップの各々は、(1)符号語検出ユニット(CDU:Codeword Detection Unit)1020及び(2)値読み出しユニット(VRU:Value Retrieve Unit)1030によって実装される。CDU1020の目的は、圧縮列(圧縮データ値の符号語の列)内に有効な符号語を見つけることである。CDU1020は、一組の比較器1022及び優先順位符号器1024を備える。各比較器1022a、b、cは、各出現する可能性のあるビット列を既知の符号語と比較し、この符号語は、この例では特定の長さに対する(コード生成時に)最初に割り当てられた標準ハフマン符号語(FCW:Huffman codeword)である。別の実装形態では、最後に割り当てられた標準ハフマン符号語も使用することができるであろうが、その場合、行われた比較は厳密には異なるであろう。(例えば、FIFO又はフリップフロップとして実装される)記憶ユニット1010に保存されることができ、且つ比較器の数及びそれらのうちの最も広いものの最大幅を決定する、上述の比較されるべきビット列の最大サイズは、コード生成時に決定される有効なハフマン符号語の最大長(mCL:maximum length of a valid Huffman codeword)に依存する。しかしながら、この最大長さは、そのようなデコンプレッサの選択された(例えば、ソフトウェア又はハードウェアでの)実装に応じて、設計時、コンパイル時、構成時、又は実行時における特定の値に限定されることができる。比較器1022の出力は、一致符号語の長さ(図10において「一致長」と呼ばれている)を出力する優先順位符号器のような構造体1024に挿入される。これに基づいて、検出された有効符号語(一致符号語)は、記憶ユニット1010に保存されているビット列から抽出され、CDU1020が次の有効な符号語を決定することができるように、ビット列は、「一致長」が定義する数の位置だけシフトされ、空の部分は圧縮列の次のビットでロードされる。
一方、値読み出しユニット(VRU)1030は、オフセットテーブル1034、減算器ユニット1036、及び解凍ルックアップテーブル(DeLUT:Decompression Look Up Table)1038を備える。前のステップからの「一致長」は、DeLUT1038のアドレスを取得するために、前のステップでも決定された、一致符号語の算術値から減算(1036)される必要がある(オフセットテーブル1034に保存されている)オフセット値を決定するために使用され、検出された符号語に対応する元のデータ値がそこから読み出され、解凍ブロック1040に保持されている解凍値の他の部分に添付されることができる。デコンプレッサの動作は、(図10の圧縮ブロックとして言及されている)入力圧縮列の中に圧縮されて保存されている全ての値が非圧縮データ値v1、v2、…、vnとして読み出されるまで繰り返される。
前述の解凍ステップに従う解凍方法の例示的なフローチャートが図12に示されている。
前述のコンプレッサ及びデコンプレッサは、データのブロックを可変長ハフマン符号化を用いて迅速且つ効果的に圧縮し、可変長ハフマン符号化を用いて圧縮されているデータブロックを解凍することができる。デルタベース、パターンベースなどのような他の圧縮及び解凍アルゴリズムを実装するコンプレッサ及びデコンプレッサを備える他の圧縮スキームも使用されることができる。前記方式の共通の特徴は、それらが圧縮又は/及び解凍待ち時間を短縮するために値の局所性について設計時に仮定をしていることである。共通の仮定は、値の局所性が固定サイズのデータ型(例えば、32ビット整数)によって最も有効に利用されるということである。しかしながら、前記方式は、圧縮すべき値が意味論的に意味のあるデータフィールドを備える場合、効果的に圧縮することができない。本発明者らは、データの圧縮及び解凍の技術分野において改良の余地があることを認識した。
本発明の目的は、データ圧縮及び解凍の技術分野において改良を提供することである。
この開示は、圧縮が、例えばコンピュータシステム及び/又はデータ通信システムにおけるキャッシュサブシステム及び/又はメモリサブシステム及び/又はデータ転送サブシステムに適用される場合、データ値のデータセットを圧縮し、且つデータ値の圧縮データセットを解凍する方法、装置、及びシステムを一般に開示する。例えば、エントロピーベースの可変長符号化を使用して前記サブシステムでデータを効果的に圧縮する様々な方法、装置、及びシステムが存在し、1つのそのような方法はハフマン符号化を用いることである。しかしながら、前記方法、装置、及びシステムは、前記データセットのデータ値が複数の意味論的に意味のあるデータフィールドを備える場合、効果的に圧縮しない。従って、本発明の開示の第1の概念によれば、圧縮は、各データ値全体に適用されるのではなく、その代わりに、各データ値の意味論的に意味のあるデータフィールドの少なくとも1つに、圧縮データフィールドを生成するために、前記データ値の他の意味論的に意味のあるデータフィールドから切り離されて、適用され、圧縮データフィールドは、帰着集約圧縮データセットに含まれる。第2の概念によれば、同じ意味論的意味を共有するデータフィールドは一緒にグループ化される。これは、様々な圧縮アルゴリズムが様々なグループを圧縮するのに使用されるので、複数のコンプレッサ及びデコンプレッサが並列に使用され且つ圧縮効率を向上させることができる故に、圧縮及び解凍を加速することができる。本発明の開示の第3の概念はシステムであり、そのシステムにおいて、方法及び装置は、値の局所性を高め、圧縮率を向上させるために最初に前記少なくとも1つのフィールド(例えば、仮数)を2つ又は複数のサブフィールドに更に分割することを考慮した後に、浮動小数点数の意味論的に意味のあるデータフィールドの圧縮及び解凍を実行する。前記浮動小数点特定圧縮及び解凍方法並びに装置は、浮動小数点値のサブフィールドを効果的に圧縮し、圧縮及び解凍待ち時間を更に低減するように調整され、前記浮動小数点特定圧縮及び解凍方法及び装置は、メタデータによる領域オーバヘッドの追加を回避しながら、コンピュータシステム及び/又は通信ネットワークにおけるキャッシュサブシステム及び/又はメモリサブシステム及び/又はデータ転送サブシステムの性能のために重要である。
本発明の第1の態様は、非圧縮データセットを圧縮データセットに圧縮するデータ圧縮デバイスであり、非圧縮データセットは複数のデータ値を備える。データ圧縮デバイスは、データセット内の各データ値を複数の意味論的に意味のあるデータフィールドに分割するように構成されるセパレータを備える。データ圧縮デバイスはまた、1つ又は複数の圧縮ユニットを備えるコンプレッサを備え、前記圧縮ユニットのうちの第1の圧縮ユニットは、各データ値の意味論的に意味のあるデータフィールドの少なくとも1つに対して、第1のデータ圧縮スキームをそのデータフィールドに、圧縮データフィールドを生成するために、データ値の意味論的に意味のあるデータフィールドのうちの他のものから切り離して、適用するように構成される。データ圧縮デバイスはまた、圧縮データセットを生成するために、帰着集約圧縮データセットに圧縮データフィールドを含めるように構成されるアグリゲータを備える。データ圧縮デバイスは、データ値レベルではなくデータフィールドレベルで値の局所性の利用を可能にすることによって、改善されたデータ圧縮を提供する。
本発明の第2の態様は、非圧縮データセットを圧縮データセットに圧縮するデータ圧縮方法であり、非圧縮データセットは複数のデータ値を含む。データ圧縮方法は、データセット内の各データ値に対して、データ値を複数の意味論的に意味のあるデータフィールドに分割するステップと、各データ値の意味論的に意味のあるデータフィールドの少なくとも1つに対して、第1データ圧縮スキームをそのデータフィールドに、圧縮データフィールドを生成するために、データ値の意味論的に意味のあるデータフィールドのうちの他のものから分離して、適用するステップと、圧縮データセットを生成するために、帰着集約圧縮データセット内に圧縮データフィールドを含めるステップを備える。データ圧縮方法は、データ値レベルではなくデータフィールドレベルで値の局所性の利用を可能にすることによって、改善されたデータ圧縮を提供する。
本発明の第3の態様は、処理装置によってロードされ実行されると、上記の第2の態様による方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品である。
本発明の第4の態様は、上記の第2の態様による方法を実行するように構成される論理回路を備える装置である。
本発明の第5の態様は圧縮データセットを解凍データセットに解凍するデータ解凍デバイスであり、圧縮データセットは、それらのうちの各々が複数の意味論的に意味のあるデータフィールドを有するデータ値を表し、それらのうちの少なくとも1つは意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮されている。データ解凍デバイスは、1つ以上の解凍ユニットを備えるデコンプレッサを備え、前記解凍ユニットのうちの第1の解凍ユニットは、各データ値の前記少なくとも1つの圧縮データフィールドに対して、解凍データフィールドを生成するために、第1のデータ解凍スキームをその圧縮データフィールドに適用するように構成される。データ解凍デバイスは、解凍データセットの帰着データ値に各解凍データフィールドを含めることによって、解凍データセットを生成するように構成される機構を備える。
本発明の第6の態様は、圧縮データセットを解凍データセットに解凍するデータ解凍方法であり、圧縮データセットは、それらのうちの各々が複数の意味論的に意味のあるデータフィールドを有するデータ値を表し、それらのうちの少なくとも1つが意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮されている。データ解凍方法は、各データ値の前記少なくとも1つの圧縮データフィールドに対して、解凍データフィールドを生成するために第1データ解凍スキームをその圧縮データフィールドに適用するステップと、解凍データセットの帰着データ値に各解凍データフィールドを含めることによって解凍データセットを生成するステップと、を備える。
本発明の第7の態様は、処理装置によってロードされ実行されると、上記の第6の態様による方法の実行を引き起こすコード命令を備えるコンピュータプログラム製品である。
本発明の第8の態様は、上記の第6の態様による方法を実行するように構成される論理回路を備える装置である。
本発明の第9の態様は、1つ以上のメモリと、上記の第1の態様によるデータ圧縮デバイスと、上記の第5の態様によるデータ解凍デバイスと、を備えるシステムである。
開示された実施形態の他の態様、目的、特徴、及び利点は、以下の詳細な開示から、添付の従属請求項から、並びに図面から現れるであろう。一般に、特許請求の範囲で使用される全ての用語は、本明細書で明示的に定義されない限り、技術分野における通常の意味に従って解釈されるべきである。
不定冠詞/定冠詞(a/an/the)を伴う「要素、装置、構成要素、手段、ステップ等」への全ての言及は、特に明記しない限り、要素、装置、構成要素、手段、ステップ等のうちの少なくとも1つの例を参照するものとして公然と解釈されるべきである。本明細書に開示されている任意の方法のステップは、明示的に述べられていない限り、開示されているものと全く同じ順序で実行される必要はない。
以下の図面に関して、背景技術からの例及び本発明の態様の実施形態が説明される。
それぞれが3レベルのキャッシュ階層及びメインメモリに接続されるn個の処理コアを備えるコンピュータシステムのブロック図を示す。 メインメモリがデータを圧縮形式で保存する図1のブロック図を示す。 L3キャッシュが圧縮形式でデータを保存する図1のブロック図を示す。他のキャッシュレベルも、データを圧縮形式で保存することができる。 データが通信手段で例えばメモリとキャッシュ階層との間で転送される場合に圧縮される図1のブロック図を示す。 圧縮が、メインメモリ及びメインメモリをキャッシュ階層に接続するリンクに適用されることができる図1のブロック図を示す。一般に、圧縮は、キャッシュ階層、転送手段(例えば、メモリをキャッシュサブシステムに接続するリンク)、及びメインメモリのような要素の任意の組み合わせに適用されることができる。 通信ネットワーク内の2つの点を接続するデータ伝送リンクのブロック図を示す。これらの点は、ネットワーク内の2つの中間ノード又は通信リンクのソースノード及びデスティネーションノードあるいはこれらの場合の組み合わせとすることができる。 図6のデータ伝送リンクのブロック図を示し、転送されるデータは、圧縮された形態であるために、送信機で圧縮され、受信機で解凍される必要がある可能性がある。 左側にデータ値の非圧縮ブロックを示し、右側に同じブロックを、ハフマン符号化を使用して生成された可変長符号化を使用して圧縮形式で示す。非圧縮ブロックの全てのデータ値は、それぞれのハフマン符号語で置き換えられる。 図8に示すようにハフマン符号化を使用してブロックを圧縮(又は符号化)するために使用されるコンプレッサを示す。 標準ハフマン符号化を使用して圧縮されたブロックを復号化(又は解凍)するために使用されるデコンプレッサを示す。 可変長符号化(例えば、ハフマン)を使用してブロックを圧縮する圧縮方法の例示的なフローチャートを示す。 可変長符号化(例えば、標準ハフマン)を使用して圧縮されている圧縮ブロックを解凍する解凍方法の例示的なフローチャートを示す。 複数の64ビット倍精度浮動小数点値を備えるデータセットを示し、各値は、IEEE-754規格による3つの意味論的ビットフィールド(符号、指数、及び仮数)を更に備える。 或るデータ型の複数の値を備えるデータセットを示し、各値は、データ構造フォーマットに従って、既知の型の3つの意味論的ビットフィールドを更に備える。 最初に前記ビットフィールドを3つのグループに分類することによって、図14のデータセットの全ての値の3つの意味論的ビットフィールドを圧縮する例示的なデータ圧縮デバイスのブロック図を示す。 図15におけるデータ圧縮デバイスの実施形態によって使用されることができる意味論的ビットフィールド分離器方法の例示的なフローチャートを示す。 図14のデータセットの全ての値の圧縮された意味論的ビットフィールドを解凍し、次いで、初期データセットを再構築する例示的なデータ解凍デバイスのブロック図を示す。 図17におけるデータ解凍デバイスの実施形態によって使用されることができる初期データセット再構築方法の例示的なフローチャートを示す。 様々なデータ型の複数の値を備えるデータ値のブロックを示す。 データセットの浮動小数点値を4つのサブフィールドに分割する例示的なデータ圧縮デバイスのブロック図を示し、3つはIEEE-754規格による意味論的ビットフィールドに基づいており、その3つのうちの1つ(すなわち、仮数)は、より高い程度の値の局所性が現れるように、更に2つのサブフィールド、仮数上位及び仮数下位、に更に分割される。このデータ圧縮デバイスは、指数、仮数上位、及び仮数下位を圧縮する。 解凍を加速するような方法で圧縮サブフィールドの4つのグループのうちの3つを解凍する例示的なデータ解凍デバイスのブロック図を示す。 本発明による一般的なデータ圧縮デバイスを示す。 図22Aにおける一般的なデータ圧縮デバイスの変形を示す。 本発明による一般的なデータ圧縮方法を示す。 本発明による一般的なデータ解凍デバイスを示す。 本発明による一般的なデータ解凍方法を示す。 本発明によるデータ圧縮デバイス及びデータ解凍デバイスを備える一般的なシステムを示す。
本開示は、圧縮がコンピュータシステム及び/又はデータ通信システムにおけるキャッシュサブシステム及び/又はメモリサブシステム及び/又はデータ転送サブシステムに適用される場合、データ値の1つ又は複数のデータセットを圧縮し、データ値の1つ又は複数の圧縮データセットを解凍する方法、装置、及びシステムを開示する。各前記データセットは、或るデータ型の1つ又は複数のデータ値を含み、任意のサイズとすることができる。データセット内の各データ値に対して、データ値は複数の意味論的に意味のあるデータフィールドを備える。これらの開示された方法、装置、及びシステムでは、圧縮は、データ値全体に適用されるのではなく、各データ値の意味論的に意味のあるデータフィールドの少なくとも1つに対して、圧縮データフィールドを生成するためにデータ値の意味論的に意味のあるデータフィールドの他のものから切り離されて、適用され、その後圧縮データフィールドは帰着集約圧縮データセットに含まれる。適用される圧縮はロスレス又はロッシーとすることができるが、一方様々な圧縮方法、装置、及びシステムが様々な意味論的に意味のあるデータフィールドを圧縮するのに使用されることができる。
意味論的に意味のあるデータフィールドの全てがデータ圧縮の対象となる必要はない可能性がある。有利にも、意味論的に意味のあるデータフィールドの値の局所性が考慮され、高い程度の値の局所性を示す意味論的に意味のあるデータフィールドのうちの1つ(複数)が、値の局所性に基づいて良好な圧縮率を得るのに適するデータ圧縮を受ける。
データ型は、整数、浮動小数点、文字、文字列などとすることができ、又はコード命令とすることができるが、データ構造型、オブジェクト型などの抽象データ型とすることもできる。幾つかのデータ型のデータは、ビデオフォーマット、オーディオフォーマットなどの特定のフォーマット、又はASCIIフォーマットに従う文字、IEEE-754規格に従う浮動小数点データなどの特定の規格に従うことができる。図13の例示的なデータセットは、IEEE-754規格に準拠するフォーマットに従う倍精度の4つの浮動小数点値を備える。前記規格によれば、浮動小数点データ値は、符号、指数、及び仮数(仮数:significand)の3つのデータフィールドを備える。前記ビットフィールドの幅は選択された精度に応じて変化する。選択された精度が2倍(64ビット)である図13の例示的な実施形態では、符号ビットフィールドは1ビットであり、指数ビットフィールドは11ビットであり、仮数ビットフィールドは52ビットである。圧縮は、例えば、データセットの値の符号及び指数ビットフィールドに、それらが仮数ビットフィールドとは対照的に、典型的には高い値の局所性を示すので、適用されると決定されることができる。他の規格に従う浮動小数点値の代替データセットも考慮されることができる。或る規格に従う或る型の値を備える更に別の代替データセットは、Unicode規格(例えば、UTF-8、UTF-16)によって定義されるテキスト型である。
別の代替データセットが図14に示され、8つの値を備える。これらの値の各々は、データ構造(すなわち、抽象データ型)であり、短整数型のビットフィールド(16ビット)、文字ビットフィールド(8ビット)、及びブール型のビットフィールドの3つのフィールドを備える。前の実施形態と同様に、圧縮は、示されている値の局所性に応じて、全てのフィールド又はそれらのサブセットに適用されるように選択されることができる。
帰着集約圧縮データセットは、圧縮データフィールドが集約圧縮データセット内で互いに隣接して現れるように、様々なデータ値から同じ意味論的意味を共有する圧縮データフィールドを一緒にグループ化することによって有利に生成されることができる。これは、様々なデータフィールドは様々な方法、装置、システムで圧縮されることができ、それ故に様々な符号化を使用することができ、従って様々なコンプレッサ及びデコンプレッサを必要とするので、圧縮効率を向上させ、圧縮及び特に解凍を加速させ、且つメタデータ及び全体的な複雑性を大幅に削減することができる。具体的には、同じデータフィールドの圧縮データが互いに隣接して現れる場合、それらは全て、様々なデコンプレッサを切り替える必要なく、又は1つのデコンプレッサが複数のビットフィールドを解凍することができるように設計を複雑にする必要なく、同じデコンプレッサを利用するであろう。更に、様々な圧縮フィールドのデコンプレッサは並列に使用されることができ、解凍スループットを上げることができる。
本開示において、これから続くものは、上記に従って動作するように構成されるデータ圧縮デバイス及びデータ解凍デバイスの或る実施形態の説明である。この説明は、図15~図21を参照して行われるであろう。次に、本開示は、図15~図21に示される特定の実施形態にわたって一般化されている一般的な発明の態様を提示するであろう。これら一般的な発明の態様は、図22~図26を参照して説明されるであろう。
同じ意味論的意味を共有する非圧縮データセット1510のデータフィールドを一緒にグループ化し、続いて、幾つかのグループの各々を切り離して圧縮することによって、図14の例示的なデータセットを圧縮するデータ圧縮デバイス1500の実施形態のブロック図が、図15に示されている。データ圧縮デバイス1500は、意味論的ビットフィールド分類器1520の形態でのセパレータ、幾つかグループ用の記憶ユニット1525、1つ又は複数のデータ圧縮ユニット1530(本開示ではコンプレッサ又はコンプレッサエンジンとも呼ばれる)、及び連結ユニット1540の形態でのアグリゲータを備える。初期データセットは、最初に意味論的ビットフィールド分離器1520に挿入される。分類器1520はまた、入力1522、1523として、データセットの値が構成する意味論的ビットフィールドの数及び様々な意味論的ビットフィールドのサイズを受け取る。分類器1520の動作は図16の例示的な方法で更に説明される。分類器1520の出力は、記憶ユニット(複数)1525に保存される非圧縮ビットフィールドの複数のグループである。この特定の実施形態では、ビットフィールドの3つのグループ、1)(記憶ユニット1525aに保存されている)短(整数)フィールドのグループ、2)(記憶ユニット1525bに保存されている)文字フィールドのグループ、及び3)(記憶ユニット1525cに保存されている)ブール型フィールドのグループ、が存在する。ビットフィールドの幾つかグループは、複数のコンプレッサ1530によって圧縮されることになる。これらのコンプレッサの各々は特定のグループを符号化し、前記グループに適した特定の圧縮アルゴリズム(すなわちスキーム(方式))を実装することができる。従って、コンプレッサS 1530aは、短整数ビットフィールドのグループを圧縮し、コンプレッサC 1530bは、文字フィールドのグループを圧縮し、コンプレッサB 1530cはブール型フィールドのグループを圧縮する。前記コンプレッサは、ロスレス又はロッシー圧縮アルゴリズム(方式)を実行する又は前記コンプレッサは、後述するように型を推測すること又は前記型に関する情報を提供することの何れかによって、前記ビットフィールドの目標の全く同一の型に基づいて幾つか圧縮アルゴリズムの中から適宜に構成されることができる。
幾つかの実施形態では、コンプレッサ1530a、1530b、1530cは、意味論的に意味のあるデータフィールドの値の局所性が、このビットフィールドのグループに対して効率的な圧縮をもたらすのに又は他の理由で不適切であると考えられる場合、(図15の「Cmp?」として示されている)入力パラメータ1532a、1532b、1532cを適宜に設定することによって特定のグループを全く圧縮しないように構成されることができる。最後に、ビットフィールドの圧縮されたグループは、図15の下部に示されるように、圧縮データセット1590を形成する連結ユニット1540によって連結される。従って、圧縮データセット1590は、それぞれの圧縮ユニット(コンプレッサ)1530a、1530b、1530cによって適用される圧縮スキームからの結果として、データ型短整数のデータフィールドの圧縮グループ1542a、次のデータ型文字のデータフィールドの圧縮グループ1542b、及び最後のデータ型ブール型のデータフィールドの圧縮グループ1542cを備える。
図15のデータ圧縮デバイス1500の実施形態の分類器ユニット1520によって実装される意味論的ビットフィールド分類器方法の例示的なフローチャートが図16に示されている。この方法は、入力として、B値を備えるデータセット、(ビット単位で測定される)意味論的ビットフィールドのサイズ、及び各値が構成する意味論的ビットフィールドの数、これはAである、とを備える。この方法の出力は、サイズA×Bの2次元配列として編成される意味論的ビットフィールドのグループである。データセットiの各値に対して、ビットフィールドjの各々が前記値から反復的に抽出される。意味論的ビットフィールドのサイズが事前に知られているので、各値に対するビットフィールド抽出は逐次的とする又は並列されるとすることができる。同様に、データセットの複数の値に対するビットフィールド抽出も、逐次的とする又は並列されるとすることができる。前記分類器方法が、図14のデータセットの値の意味論的ビットフィールドをグループ化するために使用されると仮定すると、意味論的ビットフィールドAの数は3(短整数、文字、及びブール型)、データセット値Bの数は8である。目標の実装に応じて、前記分類器方法は、当業者によってソフトウェア又は論理回路で実装されることができる。前記方法の代替実施形態はまた、当業者によって実現されることができる。
意味論的ビットフィールドの数及びサイズを備え、分類器(例えば、図15における1520)によって必要とされる情報(例えば、図15における1522、1523)は1つの例示的な実施形態において抽出されることができ、意味論的ビットフィールドを備えるデータセットは、アプリケーションバイナリ又はプログラミング言語プリミティブからのデータ構造である。次に、前記例示的な実施形態が、コンピュータシステム内のキャッシュサブシステム及び/又はメモリサブシステム及び/又はデータ転送サブシステムに適用されるコンプレッサである場合、前記抽出された情報は、システムソフトウェアによる下線のハードウェアへの特殊化されたコマンド(ただしこれに限定されない)を介して分類器に提供される。コンプレッサがメディアデータ(例えば、例示的なビデオフォーマットに従うデータ)に対応するデータに適用される代替的な実施形態では、前記情報はメディアセンターによって提供されることができる。前記コンプレッサが特定の規格又はフォーマット、例えばIEEE-754規格による浮動小数点データに従うデータに適用される更に別の代替的な実施形態では、前記情報は前記使用された規格に基づいて生成されることができる。前記意味論的ビットフィールドのデータ型に関する情報は、意味論的ビットフィールドの数及びサイズに対して行われたのと同様の方法で、コンプレッサエンジンが複数の圧縮アルゴリズムの中の1つで構成されることができる実施形態の場合、ビットフィールドの様々なグループに対して前記コンプレッサエンジン(例えば、図15における1530)を適宜に構成するために、コンプレッサに提供されることができる。当業者は、このような前記情報を他の実施形態用に提供又は生成する代替的な方法を実現することができる。
例示的な圧縮データセット1710を解凍するデータ解凍デバイス1700の実施形態のブロック図が図17に示されている。図15のデータ圧縮デバイス1500によって生成された可能性がある圧縮データセット1710は、データ型短整数のデータフィールドの圧縮グループ1712a、続いてデータ型文字のデータフィールドの圧縮グループ1712b、及び最後にデータ型ブール型のデータフィールドの圧縮グループ1712cを備える。データ解凍デバイス1700は、複数の解凍ユニット1730(本開示ではデコンプレッサ又は解凍エンジンとも呼ばれる)、ビットフィールドの解凍グループ用の記憶ユニット1735、及び解凍データセット1790を生成するように構成される再構築器ユニット1740の形態での機構を備える。最初に、圧縮データフィールドの様々なグループ1712a、1712b、1712cの各々はそれぞれの解凍ユニット1730a、1730b、1730cによって解凍され、それらの各々は、グループ1712a、1712b、1712cのそれぞれを解凍するように構成される。様々なグループの解凍は、逐次的に又は並列に行われることができる。しかしながら、並列解凍では、圧縮フィールドの様々なグループの境界、は、メタデータとして保存されているか又は符号化サイズが固定されているという理由によるかの何れかにより既知である必要がある。それ以後、解凍フィールドの各グループは記憶ユニット1735に保存され、その後、全てのグループは、図17の下部に示されているように、データ値の解凍されたデータセット1790を生成する再構築ユニット1740によって処理される。
図17のデータ解凍デバイス1700の再構築ユニット1740によって実装される初期データセット再構築方法の例示的なフローチャートが図18に示されている。この方法は、入力として、図17のデコンプレッサ1730によって解凍され、サイズA×Bの2次元配列として編成される意味論的ビットフィールドのグループ及び(ビット単位で測定された)意味論的ビットフィールドのサイズと各値が構成する意味論的ビットフィールドの数、これはAである、を受け取る。この方法の出力はB値を備えるデータセットである。各ビットフィールドグループの最初のエントリから開始し、全てのビットフィールドグループの2番目、3番目などのエントリに繰り返して続けると、各値は、ビットフィールドの集約されたサイズによって示されるように、値からフォームへそれぞれのビット位置に配置することによって様々なグループの意味論的ビットフィールドを組み合わせることで形成される。例えば、再構築法が図14のデータセットを解凍するために使用されると仮定すると、データセットの各データ値は、ビット位置0が値の始め(左)に対応し、31が値の終わり(右)に対応すると仮定して、左から右にビットフィールド「短整数」、「文字」、及び「ブール値」を一緒に結合し、それらをビット位置0~15、16~23、及び24~31にそれぞれ置くことによって形成される。各値は、データセット内の再構築値の他の部分に連結される。意味論的ビットフィールドのサイズは事前に知られているので、各値に対するビットフィールドの結合は逐次的又は並列とすることができる。同様に、データセットの複数の値に対する値再構築は、逐次的とすることができるし又は並列とすることもできる。目標の実装に応じて、前記再構築方法は当業者によってソフトウェア又は論理回路で実装されることができる。前記方法の代替的な実施形態はまた、当業者によって実現されることができる。
図15のコンプレッサ及び図17のデコンプレッサの前述の実施形態は、それぞれ3つのコンプレッサユニット1530及び3つのデコンプレッサユニット1730を有する。従って、それらは、最大3つの異なるフィールドのグループの圧縮をサポートすることができるが、代替の実施形態は、当業者によって、構成されることができるより多くの利用可能なコンプレッサ/デコンプレッサを有するように実現されることができる。前記コンプレッサの数は、ターゲットシステムが再構築可能なロジック、例えばFPGA、を含むシステムでない限り、従って、可変数のコンプレッサ/デコンプレッサが実行時に構成されることができない限り、前記コンプレッサ及びデコンプレッサによってサポートされるビットフィールドの最大数に限定される必要がある。
図19は、図13及び図14のデータセットとは異なり、様々な型の1つ又は複数のデータ値を備えるデータ値のブロックを示し、各データ値は必ずしも複数の意味論的に意味のあるデータフィールド又は同じ意味論的意味を共有する複数のデータフィールドを備えていない。図19に示される前記ブロックの例は、6つの値を備え、3つは整数型であり、1つの値は、図14の実施形態のようなデータ構造であり、他の2つの値は、各々がIEEE-754規格に従って3つの意味論的ビットフィールド(符号、指数、及び仮数)を備える倍精度浮動小数点値(64ビット)である。データ値の前記ブロックは、データ値のブロックをデータ値の特定のデータセットとして扱うこと又は同じ意味論的ビットフィールドを備えるデータ値を各データセットに含めることで前記データ値のブロック内に1つ又は複数のデータ値のデータセットを形成することの何れかによって、本開示の方法、装置、及びシステムによって圧縮されることができる。データ値の他の部分は、圧縮されないままにするか又は従来の圧縮方法、装置、及びシステムを使用して圧縮されることもできる。
コンピュータシステムの実施形態では、図1に示すように、データ値のブロックは、1)データのブロックがキャッシュ階層に保存される場合、キャッシュライン、キャッシュセット、キャッシュセクタなど、2)データのブロックがメモリに保存されるか又はそのようなコンピュータシステム内の通信手段で転送される場合、キャッシュライン、メモリページ、メモリセクタなどと代替的に呼ばれることができる。一方、図6に示されるようなデータ通信システム内の伝送リンクの実施形態では、データのブロックはまた、パケット、フリット、ペイロード、ヘッダなどを指すこともできる。
データセットの値の或るデータ型が有利にも任意の利用可能な規格に準じる浮動小数点数であり、意味論的に意味のあるデータフィールドがそのような浮動小数点数の符号、指数、及び仮数を含む可能性がある場合、1つ以上のデータフィールドは、例えば、仮数を2つのサブフィールド、仮数上位及び仮数下位、に分割することによってのように、更に細分割されることができる。仮数を圧縮するのが難しいのは、仮数の最下位ビットが、図13で観察されることができるように、提示された実数の少しの変化でも急激に変化するので、高い不規則性(すなわち、仮数の最下位ビットのビットが1(又は0)である確率は50%である)を示すからである。一方、仮数を圧縮することは、それが浮動小数点数の主要部分であるので、最終的には浮動小数点圧縮率を大幅に向上させるであろう。このため、仮数を2又は複数のサブフィールドに分割することは、一部のサブフィールドが値の局所性を示し、従って仮数が部分的に圧縮可能となる可能性があることを明らかにすることができる。例えば、図13のデータセットの実施形態では、仮数の20個の最上位ビット(すなわち、x4D86E)は、前記データセットの4個の仮数ビットフィールドのうちの3個に対して同じであり、同様に、仮数の16個の最上位ビット(すなわち、x4D86)は、前記データセットの全ての仮数ビットフィールドに対して同じである。従って、例えば、仮数を2つのサブフィールドに分割することによって仮数部からこれらの16又は20ビットを抽出することは、仮数の全体の圧縮率を向上させることができる。
浮動小数点数の意味論的に意味のあるデータフィールドの圧縮及び解凍を実行し、更に仮数を2つ又は複数のサブフィールドに分割することを考慮する例示的なシステムのデータ圧縮デバイス2000及びデータ解凍デバイス2100の実施形態が図20及び図21にそれぞれ示されている。前記例示的なシステムはFP-Hと呼ばれる。
FP-Hのデータ圧縮デバイス2000の実施形態のブロック図が図20に示されている。データ圧縮デバイス2000は、記憶ユニット及び/又は抽出ユニット2015、意味論的ビットフィールド分類器2020の形態のセパレータ、意味論的ビットフィールドのグループ用の記憶ユニット2025、前記様々な意味論的に意味のあるデータフィールドを圧縮するように構成される圧縮ユニット(コンプレッサ)2030、及び連結ユニット2040の形態でのアグリゲータを備える。記憶/抽出ユニット2015は、非圧縮データセット2010の浮動小数点値を、図16の例示的な分類器と同様の方法で構築される分類器2020の中に保持及び/又は抽出するために使用される。この例示的なコンプレッサのデータセットは、IEEE-754規格に従ってフォーマットされる複数の8つの倍精度浮動小数点値を備える。代替的なコンプレッサの実施形態は、他の浮動小数点精度、他の浮動小数点表現(例えば、10進数)、又は他の規格をサポートすることができ、一方データセットは如何なる任意のサイズとすることができる。
圧縮は以下のステップで実行される。
(ステップ1)入力された非圧縮データセット2010の浮動小数点値の各々は、分類器2020によって4つのサブフィールドに分割され、これらは一緒に編成され、記憶ユニット2025に格納される。4つのサブフィールドは、符号(複数)、指数(e又はexpと呼ばれる)、仮数上位(mH)、及び仮数下位(mL)であり、仮数を分割する際に現れる値の局所性の程度に基づいて、仮数フィールドが分割されたmH及びmLサブフィールドのサイズは、静的又は動的に決定されることができる。
(ステップ2)各サブフィールドは、それぞれのコンプレッサ2030によってサブフィールドの他の部分と独立に且つ並列に圧縮される。他のロスレス又はロッシー圧縮アルゴリズムが使用されることができるが、例示的なFP-Hシステムは、提示される高い値の局所性を積極的に利用することができるので、ハフマン符号化のような可変長統計圧縮を採用する。従って、図9の例示的なコンプレッサはコンプレッサ2030の各々を実装するために使用されることができる。
(ステップ3)FP-Hデータ圧縮デバイス2000は、符号が浮動小数点値の小さいほんの一部しか構成しないので、符号を除く全てのデータサブフィールドの圧縮を試みることを選択する。しかしながら、代替の実施形態は、符号の圧縮も対象とすることもできる。グループに編成された圧縮サブフィールドは、図20の下部に示すように、圧縮データセット2090を形成するように連結ユニット2040によって或る順序(すなわち、符号、圧縮mL、圧縮exp、圧縮mH)で一緒に連結される。様々な可変長符号化が使用されるので、フィールドのグループ化は必要ではないが有益であり、圧縮データセット2090のデータを再構築するこの方法は、様々な圧縮サブフィールドの境界を定義するためにメタデータを保持する必要がなく、解凍を劇的に加速することができる。可変長統計的圧縮が仮数サブフィールドの圧縮に対して及び指数に対して使用されるので、各サブフィールドの値-周波数統計値は、サンプリング(又はトレーニング)フェーズ中に、例示的な値頻度表(VFT:Value Frequency Table)構造(又は値テーブル)、e-VFT2034a、mH-VFT2034b、mL-VFT2034c、を使用して監視される。共通に所有されている米国特許出願第13/897,385号は、前記VT及び前記トレーニングフェーズの例示的な実施形態を記載している。
FP-Hのデータ解凍デバイス2100の実施形態のブロック図が図21に示されている。データ解凍デバイス2100は、入力圧縮データセット2110を保持する記憶ユニット2105、仮数サブフィールドデコンプレッサ2130a及び2130bと指数デコンプレッサ2130cを含む複数の解凍ユニット、並びに解凍及び再構築データセット2190を保持する記憶ユニット2145を備える。圧縮データセットの境界は公知であり、図21に示されているように開始が「X」で終わりが「Y」で表されている。コンプレッサ実施形態で前に説明したように、メタデータは領域オーバヘッドを増加させ、従って圧縮の利点を減少させるので、可変長圧縮mH及び指数(e)サブフィールドの境界及び正確なオフセット/サイズに関する情報を保持するメタデータは存在しない。従って、これらのサブフィールドの各々に対しての解凍は、前のサブフィールドの解凍が完了するのを待つ必要があり、最初にmLを解凍し、次いでe及び最終的にmHを解凍する。圧縮mLサブフィールドのグループは、非圧縮符号ビットのグループが圧縮データセットの先頭(すなわち、X)に置かれるので、圧縮データセット2110の第8番目のビット位置に置かれる。可変長ハフマン符号化の解凍は本質的に逐次的であるので、これは解凍待ち時間を大幅に増加させるであろう。
図21のFP-Hデータ解凍デバイス2100は、代わりに、2フェーズ解凍プロセスを使用する。フェーズIでは、圧縮mH及びmLサブフィールドのグループは並列に解凍され、次に、フェーズIIにおいて、圧縮指数のグループが解凍される。mH及びmLの並列解凍は、圧縮データセットの最後に圧縮mHサブフィールドのグループを逆順に保存することによって可能となる(「Y」は圧縮mHのグループの最初のビットを指す)。デコンプレッサ2130a及び2130bが各々8個の値を解凍した後に、mH及びmLに対する解凍が完了される。その時点で、圧縮指数サブフィールドの境界が既知となるので、解凍はデコンプレッサ2130cによって直ちに開始することができる(フェーズII)。図10のハフマンベースの標準デコンプレッサは、デコンプレッサ2130a、2130b、及び2130cの各々を実装するために使用されることができる。図21のデータ解凍デバイス2100は、解凍データセット2190が、最後の指数フィールドが解凍されたときに準備完了であるように、記憶ユニット2145に保持されている完全に解凍されているデータセットのそれぞれのビット位置に、解凍サブフィールド(mL、mH)及び解凍データフィールド(e)を直接配置する。従って、デコンプレッサ2130a、2130b、及び2130cは、解凍データセット2190を生成する機構を、これに対して如何なる個別の機構もなしに、実装している。その代わりに、代替の実施形態が、当業者によって容易に実現されるように、解凍データセット2190を生成する機構を実装するために別個の再構築器ユニットを使用して、図17のものと同様に設計されることができるであろう。
FP-Hシステムの代替の実施形態では、mLグループは、仮数の最下位ビットの不規則性に起因する期待される値の局所性の低さのために非圧縮のままにするように選択されることができる。これは、フェーズI(mH及び指数の並列解凍)のみが必要とされることによって、解凍を加速することができる。
データセットの値の指数フィールドは、高い値の局所性、時間的局所性(すなわち、同じ値が頻繁に出現する)、それだけではなく空間的局所性(すなわち、値は空間的に近い、つまり、値がお互いに比較された場合値の差は小さい)、を示すことが観察される。これにより、より軽量の圧縮アルゴリズム、例えば、デルタ符号化、を使用して指数を圧縮しようとするFP-Hシステムの代替の実施形態が実現されることができる。FP-Hシステムの前述の実施形態と比較して、これは圧縮効率に僅かな悪影響を及ぼすことがあるが、しかしながら、解凍は、第2フェーズにおけるハフマンベースの圧縮指数の本質的に逐次的な解凍とは対照的に、大幅に加速されることができる。
FP-Hシステムの代替の実施形態では、指数は、データセットの値の指数フィールドが通常クラスタリングされることができるので、デルタベースのコンプレッサを使用して圧縮されることができる(仮数サブフィールドは前のように圧縮され、解凍される)。興味深いことに、デルタベースの解凍はほんの数サイクルしか必要としない。これは、代替のFP-Hデコンプレッサの実施形態における第2の解凍フェーズの待ち時間を低減することができるであろう。この代替の実施形態のシステムはFP-H-デルタと呼ばれる。特に前記データセットが例示的なコンピュータシステム及び/又はデータ通信システムにおける例示的なキャッシュサブシステム及び/又は例示的なメモリサブシステム及び/又は例示的なデータ転送サブシステム内のブロックである場合、2つの指数クラスタが前記データセットごとに頻繁に現れる。従って、2つのベースが、2つの指数クラスタを表すことができるために必要となる。従って、圧縮指数のグループは、2つのベース(各々11ビット、倍精度浮動小数点値の非圧縮指数の幅に類似している)、(2ビットの幅の)8つのデルタ、及びマスク(8×1ビット)の3つの部分を備える。マスクは、解凍中にどのベースが使用されるかを定義するが、デルタ幅は、指数クラスタによってカバーされる範囲目標に応じて任意のサイズとすることができる。図20のFP-Hデータ圧縮デバイス2000のコンプレッサ2030a及び図21のFP-Hデータ解凍デバイス2100のデコンプレッサ2130aは、公開された論文、Gennady Pekhimenko, Vivek Seshadri, Onur Mutlu, Phillip B. Gibbons, Michael A. Kozuch, and Todd C. Mowry, 2012, Base-delta-immediate compression: practical data compression for on-chip caches, in Proceedings of the 21st international conference on Parallel architectures and compilation techniques (PACT ’12)、に開示されているように、当業者によって、それぞれのコンプレッサ及びデコンプレッサを調整することによって実装されることができる。
本明細書で開示されるデータ圧縮及び解凍装置の圧縮及び解凍ユニット(すなわち、コンプレッサ及びデコンプレッサ)は、処理スループットを増加させ、及び/又は圧縮及び解凍待ち時間を短縮するために、当業者によってパイプライン化及び/又は並列化されることができる。
開示された発明及びその実施形態の方法及びブロック図は、好ましくは、プロセッサ装置/プロセッサチップ又はメモリ装置/メモリチップに含まれる、又は関連する任意の論理回路によって実行時に実行されることができる。従って、更なる本発明の態様は、上述の方法及びブロック図を実行するように構成される論理回路、プロセッサ装置/プロセッサチップ、及びメモリ装置/メモリチップを含む。
明示的に開示されたもの以外の他の実施形態が、それぞれの発明の範囲内で同様に可能であることに留意されるべきである。
この開示で言及されているエンティティ(例えば、データセット、データ型、データ値、データフィールド、データブロック、キャッシュブロック、キャッシュライン、データチャンクなど)のうちの何れかのデータサイズにも一般的に特別な制限は存在しない。
図22~図26を参照して、図15~図21に示される特定の実施形態にわたって一般化された一般的な発明の態様がこれから説明されるであろう。同様の参照番号が使用される。図22A~図26の図面のうちの1つにおけるXXnnのフォーマットを有する参照番号は、一般に、図22~図26又は図15~図21の他の図面の何れかにおける同じ又は少なくとも対応する要素YYnnを表す。
図22Aは、非圧縮データセット2210を圧縮データセット2290に圧縮するデータ圧縮デバイス2200を開示する。非圧縮データセット2210は、複数のデータ値2212a~mを備える。データ圧縮デバイス2200は、データセット内の各データ値を複数の意味論的に意味のあるデータフィールド2214a~nに分割するように構成されるセパレータ2220を備える。セパレータ2220は、例えば、前述の分類器ユニット1520、2020の何れかとすることができる。
データ圧縮デバイス2200はまた、1つ又は複数の圧縮ユニット2230a、2230bを備えるコンプレッサ2230を備え、圧縮ユニットのうちの第1の圧縮ユニット2230aは、各データ値の意味論的に意味のあるデータフィールドの少なくとも1つ、2214a、に対して、第1のデータ圧縮スキームをそのデータフィールド2214aに、圧縮データフィールド2232aを生成するために、データ値の意味論的に意味のあるデータフィールドのうちの他のデータフィールド2214b、2214nから切り離して、適用するように構成される。データ圧縮ユニット2230は、例えば、前述のデータ圧縮ユニット又はコンプレッサ1530、2030の何れかとすることができる。
更に、データ圧縮デバイス2200は、圧縮データセット2290を生成するために、帰着集約圧縮データセットに圧縮データフィールドを含めるように構成されるアグリゲータ2240を備える。アグリゲータ2240は、例えば、前述の連結ユニット1540、2040の何れかとすることができる。
データ圧縮デバイス2200は、データ値レベルではなく、データフィールドレベルでの値の局所性の利用を可能にすることによって、改善されたデータ圧縮を提供する。
有利にも、データ圧縮デバイス2200のコンプレッサ2230は、第1の圧縮ユニット2230aの第1のデータ圧縮スキームとは異なる第2のデータ圧縮スキームを適用するように構成される第2の圧縮ユニット2230bを備える(コンプレッサ2230は、第3のデータ圧縮スキームを適用するように構成される第3の圧縮ユニット2230cを備えても良い可能性がある、など)。
有利にも、図15~図21における上記の実施形態の説明から明らかなように、第1及び第2のデータ圧縮スキームのうちの少なくとも1つは、例えば、以下のロスレスデータ圧縮スキーム、統計的圧縮(例えば、ハフマン圧縮、標準ハフマン圧縮、算術符号化など)、デルタ符号化、辞書ベースの圧縮、パターンベースの圧縮、有意性ベースの圧縮、ヌルデータセット圧縮、の何れかのロスレスデータ圧縮スキームである。
しかしながら、代替の実施形態では、第1及び第2のデータ圧縮スキームのうちの少なくとも1つは、その代わりに、ロッシーデータ圧縮スキームである。
第1の圧縮ユニット2230aの第1のデータ圧縮スキームは、第1のデータ圧縮スキームが全データ値2212a全体に適用された場合よりも良好な圧縮率が得られるように、意味論的に意味のあるデータフィールド2214a~nの少なくとも1つ、2214a、の値の局所性を利用するように適合されることができる。
データ圧縮デバイス2200の幾つかの実施形態では、意味論的に意味のあるデータフィールド2214a~nのうちの少なくとも1つは、圧縮ユニット2230a、2230bの何れによっても圧縮されないで、非圧縮のままにされ、生成された圧縮データセット2290内に非圧縮形式でアグリゲータ2240によって含められる。これは、例えば、図20の実施形態における符号データフィールドの場合である。
データ圧縮デバイス2200の幾つかの実施形態では、アグリゲータ2240は、生成された圧縮データセット2290において非圧縮データセット2210からのデータフィールド2214a~nの元の順序を維持するように構成される。
しかしながら、好ましくは、例えば、図15の実施形態の場合のように、データ圧縮デバイス2200のセパレータ2220は、データ値2212a~mからのそれぞれの第1の意味論的に意味のあるデータフィールド2214aを第1のデータフィールドグループ(例えば、図15のグループ1525a)に一緒にグループ化し、第1のデータフィールドグループを第1の圧縮ユニット2230a(例えば、コンプレッサS 1530a)に提供するように構成され、一方、セパレータ2220は、データ値2212a~mからのそれぞれの第2の意味論的に意味のあるデータフィールド2214bを第2のデータフィールドグループ(例えば、グループ1525b)に一緒にグループ化し、第2のデータフィールドグループを第2の圧縮ユニット2230b(例えば、コンプレッサC 1530b)に提供するように構成される。アグリゲータ2240(例えば、連結ユニット1540)は、第1圧縮ユニットからの圧縮データフィールド2232aの第1グループ(例えば1542a)を形成し、第2圧縮ユニットからの圧縮データフィールド2232bの第2グループ(例えば、1542b)を形成し、生成された圧縮データセット2290において第1のグループ及び第2のグループを連結するように構成される。第1のデータフィールドグループ(例えば、1525a)内のそれぞれの第1の意味論的に意味のあるデータフィールド2214aは、同じ意味論的意味を共有することができ、第2のデータフィールドグループ(例えば、1525b)内のそれぞれの第2の意味的データフィールド2214bは、同じ意味論的意味を共有することができる。そのような同じ意味論的意味は、例えば、第1又は第2のデータフィールドグループ(例えば、1525a、1525b)内のそれぞれの第1又は第2の意味論的に意味のあるデータフィールド2214a、2214bが、同じデータ型であるか又は共通データ型の同じサブフィールドであるということとすることができる。
このような実施形態は、複数のコンプレッサ(及びデコンプレッサ)を並列に使用することができ、様々なグループを様々な圧縮アルゴリズムを使用して圧縮することによって圧縮効率を向上させることができるので、圧縮(及び解凍)を加速することができる故に、特に有利である。従って、第1及び第2圧縮部2230a~b(例えば、1530a、1530b)は、それぞれ第1及び第2データフィールドグループ(例えば、1525a、1525b)のデータフィールドを圧縮する場合に並列に動作するように構成されることができる。
データ圧縮デバイス2200の実施形態では、非圧縮データセット2210のデータ値2212a~mは、例えば、次の標準データ型:整数、浮動小数点、文字、文字列、の何れかのような標準データ型である。それはまた、コード命令又は特定の規格に従うデータとすることもできる。
代替的に、データ圧縮デバイス2200の実施形態では、非圧縮データセット2210のデータ値2212a~mは、例えばデータ構造型もしくはオブジェクト型、又は、ビデオフォーマット、オーディオフォーマットなどの特定のフォーマットに従うデータなどの抽象データ型である。抽象データ型がデータ構造型である場合、それは、例えば、上述の標準データ型並びにブール値及びポインタのうちの1つ以上の組み合わせを備えることができる。
図22Bの2230a~bに見られるように、データ圧縮デバイス2200の第1及び第2圧縮ユニット2230a~bは、それぞれの圧縮ユニットがそれぞれのデータ圧縮スキームを適用することによってデータ圧縮を実行すべきか否か及びそれぞれのデータ圧縮スキーム用の、複数のデータ圧縮アルゴリズムから選択可能であるデータ圧縮アルゴリズムのうちの少なくとも1つを決定するように制御可能とすることができる。このような制御の例は、図15の1532a~1532cで見られる。第1及び第2の圧縮ユニット2230a~bの制御は、意味論的に意味のあるデータフィールド2214a~nのそれぞれのデータ型に基づくことができる。
図22Bの2222で見られるように、データ圧縮デバイス2200のセパレータ2220は、意味論的に意味のあるデータフィールド2214a~nの数及びサイズに関する構造データフィールド情報を受け取るように構成されることができる。そのような構造データフィールド情報は、例えば、図15の実施形態用の情報1522、1523の形態とすることができる。
幾つかの有利な実施形態では、データ圧縮デバイス2200は浮動小数点数を圧縮するのに使用される。これは、例えば図20の実施例の場合である。従って、非圧縮データセット2210(例えば2010)のデータ値2212a~mは浮動小数点数であり、意味論的に意味のあるデータフィールド2214a~nは符号(s)、指数(e)、及び仮数(mH、mL)とすることができる。指数(e)及び仮数(mH、mL)データフィールドは、コンプレッサ2230(例えば、2030)のそれぞれの圧縮ユニット2230a~c(例えば、2030a~c)によって圧縮されることができる。幾つかの代替では、図20と同様に、符号(s)データフィールドは非圧縮のままであり、コンプレッサ2230(例えば、2030)の圧縮ユニット2230a~c(例えば2030a~c)の何れによっても圧縮されない。
データの局所性を更に利用するために、データ圧縮デバイス2200のセパレータ2220は、意味論的に意味のあるデータフィールド2214a~nのうちの少なくとも1つを2つ以上のサブフィールドに更に分割するように構成されることができ、コンプレッサユニットの少なくとも1つは、サブフィールドのうちの少なくとも1つに対して、データ圧縮スキームをそのサブフィールドに、圧縮サブフィールドを生成するためにサブフィールドのうちの他のサブフィールドから切り離して、適用するように構成され、アグリゲータ2240は、圧縮データセット2290を生成するために、帰着集約圧縮データセット内に圧縮サブフィールドを含めるように構成される。
これは、再び、例えば図20の実施形態の場合である。サブフィールドは仮数上位(mH)及び仮数下位(mL)であり、仮数上位(mH)及び仮数下位(mL)サブフィールドのうちの少なくとも1つは、仮数上位及び仮数下位サブフィールドの他のものから切り離されて圧縮される。有利にも、仮数データフィールドの少なくとも仮数上位(mH)サブフィールドは統計的圧縮によって圧縮され、指数(e)データフィールドは、統計的圧縮、デルタ符号化、又は他の圧縮スキームのうちの1つによって圧縮される。
例えば、図20などの有益な実施形態では、仮数データフィールドの仮数上位(mH)及び仮数下位(mL)サブフィールドと指数(e)データフィールドは全て、コンプレッサ2230(2030)のそれぞれの圧縮ユニット(2030c、2030b、2030)によって圧縮され、アグリゲータ2240(例えば、2040)は、次の順序で圧縮データセット2290(2090)に保存することによって、圧縮データセット2290(2090)を生成するように構成される。
i) 符号(s)データフィールドを備える第1のグループ(2042~1)、
ii) 次に、仮数データフィールドの圧縮仮数下位(mL)サブフィールドを備える第2のグループ(2042~2)、
iii) 次に、圧縮指数(e)データフィールドを備える第3のグループ(2042~3)、
iv) 次に、非圧縮データセット(2010)とは逆の順序での仮数データフィールドの圧縮仮数上位(mH)サブフィールドを備える第4のグループ(2042~4)。
この配置は効率的な解凍を可能にするであろう。
一般的な本発明のデータ圧縮方法が図23に示されている。図23の2310~2330に開示されている機能に加えて及び/又は機能の改良として、この一般的な本発明のデータ圧縮方法は、上述したようなデータ圧縮デバイス2200の様々な実施形態の機能的特徴の何れか又は全てを有することができる。
図24は、圧縮データセット2410を解凍データセット2490に解凍するデータ解凍デバイス2400を開示する。圧縮データセット2410はデータ値2482を表し、それらの各々は、複数の意味論的に意味のあるデータフィールド2484を有し、それらのうちの少なくとも1つ2432aは、意味論的に意味のあるデータフィールドの他のものから分離されて圧縮されている。解凍データセット2490は、例えば、上記のデータ圧縮デバイス2200、1500、2000の何れかによって生成された可能性がある。データ解凍デバイス2400は、1つ又は複数の解凍ユニット2430a、2430bを備えるデコンプレッサ2430を備える。解凍ユニットの中の第1の解凍ユニット2430aは、解凍データフィールド(2484a)を生成するために、各データ値の少なくとも1つの圧縮データフィールド2432aに対して、第1のデータ解凍スキームをその圧縮データフィールド2432aに適用するように構成される。データ解凍ユニット2430は、例えば、前述のデータ解凍ユニット又はデコンプレッサ1730、2130a~2130cの何れかとすることができる。
データ解凍デバイス2400は、解凍データセット2490の帰着データ値(2482a)に各解凍データフィールド2484aを含めることによって解凍データセット2490を生成するように構成される機構2440を備える。
有利にも、データ解凍デバイス2400のデコンプレッサ2430は、第1の解凍ユニット2430aの第1のデータ解凍スキームとは異なる第2のデータ解凍スキームを適用するように構成される第2の圧縮ユニット2430bを備える(デコンプレッサ2430はまた、第3のデータ解凍スキームを適用するように構成される第3の圧縮ユニット2430cを備えても良い可能性がある、など)。
有利にも、上記の説明から明らかなように、前記第1及び第2のデータ解凍スキームのうちの少なくとも1つは、ロスレスデータ解凍スキームである。しかしながら、代替の実施形態では、前記第1及び第2のデータ解凍スキームのうちの少なくとも1つは、その代わりに、ロッシーデータ解凍スキームである。
データ解凍デバイス2400の幾つかの実施形態では、圧縮データセット2410のデータフィールド2484のうちの少なくとも1つは圧縮されず、解凍データセットを生成するように構成される機構2440によって解凍データセット2490の帰着データ値2482の中に非圧縮形式で含められる。
データ解凍デバイス2400の幾つかの実施形態では、機構2440は、生成された解凍データセット2490内に圧縮データセット2410からの圧縮データフィールド2432a、2432bの順序を維持するように構成される。
有利にも、例えば図17の実施形態の場合のように、解凍デバイス2430(例えば1730)の解凍ユニット2430a(例えば1730a~1730c)は、圧縮データセット2410(例えば、1710)から圧縮データフィールドのそれぞれのグループ(例えば1712a~1712c)を受け取り、それぞれのグループの圧縮データフィールドを解凍し、解凍データフィールドのそれぞれのグループ(例えば1735a~1735c)を機構2440(例えば1740)に提供するように構成される。機構2440(例えば、1740)は、それぞれの解凍ユニット2430a、2430b(例えば、1730a~1730c)によって解凍された解凍データフィールドのグループ(例えば、1735a~1735c)に対して、圧縮前に、生成された解凍データセット2490の中に、元のデータセットのデータ値における元の順序のデータフィールドを再構築するように構成される。
このような実施形態は、複数のデコンプレッサが並列に使用されることができ、様々なグループを解凍するために様々な解凍アルゴリズムを使用することによって解凍効率を向上させることができるので、解凍を加速することができる故に、特に有利である。従って、デコンプレッサ2430(例えば、1730)の解凍ユニット2430a、2430b(例えば、1730a~1730c)は、並列に動作するように構成されることができる。
データ解凍デバイス2400の実施形態では、解凍データセット2490のデータ値2482は標準データ型である。代替的に、解凍データセット2490のデータ値2482は抽象データ型とすることができる。
デコンプレッサ2430(例えば、1730)の解凍ユニット2430a、2430b(例えば、1730a~1730c)は、それぞれの解凍ユニットがそれぞれのデータ解凍スキームを適用することによってデータ解凍を実行すべきか否かと、それぞれのデータ解凍スキーム用の、複数のデータ解凍アルゴリズムから選択可能であるデータ解凍アルゴリズムと、のうちの少なくとも1つを決定するように制御可能とすることができる。このような制御の例は、図17の1732a~1732cに見られる。第1及び第2の解凍ユニット2430a~b(例えば、1730a~1730c)の制御は、意味論的に意味のあるデータフィールド2484のそれぞれのデータ型に基づくとすることができる。
データ解凍デバイス2400の機構2440は、意味論的に意味のあるデータフィールド2484の数及びサイズについての構造データフィールド情報(例えば、図17の1742、1743)を受け取るように構成されることができる。
幾つかの有利な実施形態では、データ解凍デバイス2400は浮動小数点数を圧縮するために使用される。これは、例えば図21の実施形態の場合である。従って、解凍データセット2490のデータ値2482は浮動小数点数であり、意味論的に意味のあるデータフィールド2484は符号(s)、指数(e)、及び仮数(mH、mL)とすることができる。圧縮データセット2410(例えば、2110)の圧縮指数(e)及び仮数(mH、mL)データフィールド2432a、2432bは、デコンプレッサ2430のそれぞれの解凍ユニット2430a、2430b(例えば2130a~2130c)によって解凍されることができる。幾つかの代替では、図21と同様に、圧縮データセット2410(例えば、2110)の符号(s)データフィールドは非圧縮であり、デコンプレッサ2430の解凍ユニット2430a、2430b(例えば、2130a~2130c)の何れによっても解凍されない。
図20のデータ圧縮デバイスについて説明したように、圧縮データセット2410は、意味論的に意味のあるデータフィールドの少なくとも1つの圧縮サブフィールド(mH、mL)を備えることができる。従って、図21のデータ解凍デバイス2100の場合のように、解凍デバイス2400(例えば、2130a、2130b)のうちの少なくとも1つ(例えば2130a)は、解凍サブフィールドを生成するために、データ解凍スキームを前記少なくとも1つのサブフィールド(mL)に適用するように構成され、機構2440(例えば、2130a)は、解凍データセット2490の帰着データ値に解凍サブフィールドを含めるように構成されることができる。
先と同様に、これも、例えば図21の実施形態の場合である。サブフィールドは仮数上位(mH)及び仮数下位(mL)とすることができ、仮数上位(mH)及び仮数下位(mL)のサブフィールドのうちの少なくとも1つは、仮数上位及び仮数下位サブフィールドのうちの他方のサブフィールドから切り離されて解凍される。有利にも、仮数データフィールドうちの少なくとも仮数上位(mH)サブフィールドは、統計的解凍によって解凍され、指数(e)データフィールドは統計的解凍、デルタ復号化、又は別の解凍スキームのうちの1つによって解凍される。
例えば、図21などの有益な実施形態では、圧縮データセット2210(例えば、2110)は、次の順序で、
i) 符号(s)データフィールドを備える第1のグループ、
ii) 次に、仮数データフィールドの圧縮仮数下位(mL)サブフィールドを備える第2のグループ、
iii) 次に、圧縮指数(e)データフィールドを備える第3のグループ、及び
iv) 次に、圧縮前の元のデータセットのデータ値における元の順序とは逆の順序で、仮数データフィールドの圧縮仮数上位(mH)サブフィールドを備える第4のグループ、を備える。
この実施形態では、デコンプレッサ2430は、2フェーズ動作アーキテクチャを有することができ、
・ 第1のフェーズにおいて、仮数データフィールドの仮数上位(mH)及び仮数下位(mL)サブフィールドは、デコンプレッサ2430の第1及び第2の解凍ユニット(例えば、2130a、2130b)によって統計的解凍で並列に解凍され、
・ 第2のフェーズにおいて、指数(e)データフィールドは、デコンプレッサ2430の第3の解凍ユニット(例えば、2130c)によって統計的解凍、デルタ復号化、又は別の解凍スキームで解凍される。
この配置は効率的な解凍を可能にするであろう。
有利にも、第1、第2及び第3の解凍ユニット(例えば、2130a、2130b、2130c)は、それぞれの解凍仮数上位(mH)及び仮数下位(mL)サブフィールドと解凍指数(e)データフィールドを、解凍データセット2490(例えば2190)に直接配置するように構成され、それにより前記機構2440を実装し、(図17の再構築器ユニット1740のような)別個の機構の必要性を排除する。
一般的な本発明のデータ解凍方法が図25に示されている。図25の2510~2530に開示されている機能に加えて及び/又は機能の改良として、この一般的な本発明のデータ解凍方法は、上述したデータ解凍デバイス2400の様々な実施形態の機能的特徴の何れか又は全てを有することができる。
本明細書で開示されているそれぞれのデータ圧縮デバイスは、例えば、ハードウェアで、例えば、集積回路内のデジタル回路として、専用装置(例えば、メモリコントローラ)として、プログラム可能処理装置(例えば、中央処理装置(CPU:central processing unit)又はデジタル信号プロセッサ(DSP:digital signal processor)として、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、又は他の論理回路などとして実装されることができる。本明細書に記載されているそれぞれのデータ圧縮方法の機能は、例えば、適切に構成されているそれぞれのデータ圧縮デバイスの何れかによって、又は、一般的に、それぞれのデータ圧縮方法を実行するように構成される(例えば、プロセッサ装置/プロセッサチップ又はメモリ装置/メモリチップに含まれるか、又はそれに関連付けられる)論理回路を備える装置によって、あるいは、代替的に、CPU又はDSP(例えば、図1~図5の処理ユニットP1…Pnの何れか)などの汎用処理装置によってロードされ且つ実行されると、それぞれの方法の実行を引き起こすコード命令を備えるそれぞれのコンピュータプログラム製品によって、実行されることができる。
本明細書で開示されているそれぞれのデータ解凍デバイスは、例えば、ハードウェアで、例えば、集積回路内のデジタル回路として、専用装置(例えば、メモリコントローラ)として、プログラム可能処理装置(例えば、中央処理装置(CPU)又はデジタル信号プロセッサ(DSP))として、フィールドプログラマブルゲートアレイ(FPGA)、又は他の論理回路などとして実装されることができる。本明細書に記載されているそれぞれのデータ解凍方法の機能は、例えば、適切に構成されているそれぞれのデータ解凍デバイスの何れかによって、又は、一般的に、それぞれのデータ解凍方法を実行するように構成される(例えば、プロセッサ装置/プロセッサチップ又はメモリ装置/メモリチップに含まれるか、又はそれに関連付けられる)論理回路を備える装置によって、あるいは、代替的に、CPU又はDSP(例えば、図1~図5の処理ユニットP1…Pnの何れか)などの汎用処理装置によってロードされ且つ実行されると、それぞれの方法の実行を引き起こすコード命令を備えるそれぞれのコンピュータプログラム製品によって、実行されることができる。
図26は本発明による一般的なシステム2600を示す。このシステムは、1つ以上のメモリ2610、データ圧縮デバイス2620(例えば、データ圧縮デバイス1500、2000、2200の何れか)、及びデータ解凍デバイス2630(例えば、データ解凍デバイス1700、2100、2400の何れか)を備える。有利にも、システム2600は、コンピュータシステム(例えば、図1~図5のコンピュータシステム100~500の何れか)であり、前記1つ以上のメモリ2610は、キャッシュメモリ/メモリ(複数)(例えば、図1~図5のキャッシュメモリL1~L3の何れか)、ランダムアクセスメモリ/メモリ(複数)(例えば、図1~図5のメモリ130~530の何れか)、又は二次記憶装置/記憶装置(複数)である。代替的に、システム2600は、データ通信システム(例えば、図6~7の通信ネットワーク600、700など)であり、前記1つ又は複数のメモリ2610は、データ通信システム(例えば、図6~7の送信機610、710及び受信機620、720)の送信ノード及び受信ノードに関連するデータバッファとすることができる。

Claims (10)

  1. 非圧縮データセット(2010)を圧縮データセット(2090)に圧縮するデータ圧縮デバイス(2000)であって、前記非圧縮データセット(2010)は複数のデータ値を備え、
    前記データセット内の各データ値を複数の意味論的に意味のあるデータフィールドに分割するように構成されるセパレータ(2020)と、
    圧縮ユニット(2030a-c)を備えるコンプレッサ(2030)であって、前記圧縮ユニットのうちの第1の圧縮ユニットは、各データ値の前記意味論的に意味のあるデータフィールドのうちの少なくとも1つに対して、第1のデータ圧縮スキームを前記データフィールドに、圧縮データフィールドを生成するために、前記データ値の前記意味論的に意味のあるデータフィールドの他のものから切り離して、適用するように構成される、コンプレッサ(2030)と、
    前記圧縮データセット(2090)を生成するために、集約圧縮データセットに前記圧縮データフィールドを含めるように構成されるアグリゲータ(2040)と、を備え、
    前記セパレータ(2020)は、前記意味論的に意味のあるデータフィールドのうちの少なくとも1つを2つ以上のサブフィールド(mH、mL)に更に分割するように構成され、
    前記圧縮ユニット(2030ac)の少なくとも1つ(2030c)は、前記サブフィールドの少なくとも1つ(mL)に対して、データ圧縮スキームを前記サブフィールド(mL)に、圧縮サブフィールドを生成するために、前記サブフィールドの他のサブフィールド(mH)から切り離して、適用するように構成され、
    前記アグリゲータ(2040)は、前記圧縮データセット(2090)を生成するために、前記集約圧縮データセットに前記圧縮サブフィールドを含めるように構成され、
    前記非圧縮データセット(2010)の前記データ値は浮動小数点数であり、
    前記意味論的に意味のあるデータフィールドは、符号(s)、指数(e)、及び仮数(mH、mL)であり、
    前記サブフィールドは仮数上位(mH)及び仮数下位(mL)であり、
    前記仮数上位(mH)及び仮数下位(mL)サブフィールドの少なくとも1つは、前記仮数上位及び仮数下位サブフィールドの他のものから切り離されて圧縮され、
    前記仮数データフィールドの少なくとも前記仮数上位(mH)サブフィールドは、統計的圧縮によって圧縮され、
    前記指数(e)データフィールドは、統計的圧縮、デルタ符号化、又は他の圧縮スキームのうちの1つによって圧縮され、
    前記仮数データフィールドの前記仮数上位(mH)及び仮数下位(mL)サブフィールドと前記指数(e)データフィールドは、前記コンプレッサ(2030)のそれぞれの圧縮ユニット(2030b、2030c、2030a)によって圧縮され、
    前記アグリゲータ(2040)は、
    符号(s)データフィールドを備える第1のグループ(2042‐1)、
    次に、前記仮数データフィールドの圧縮仮数下位(mL)サブフィールドを備える第2のグループ(2042‐2)、
    次に、圧縮指数(e)データフィールドを備える第3のグループ(2042‐3)、
    次に、前記非圧縮データセット(2010)とは逆の順序で前記仮数データフィールドの圧縮仮数上位(mH)サブフィールドを備える第4のグループ(2042‐4)、の順序で、前記圧縮データセット(2090)を、その中に保存することによって、生成するように構成されるデータ圧縮デバイス(2000)。
  2. 前記符号(s)データフィールドは、前記圧縮ユニット(2030a-c)の何れによっても圧縮されず、非圧縮のままにされ、前記生成された圧縮データセット(2090)内に前記アグリゲータ(2040)によって非圧縮形式で含められる、請求項1に記載のデータ圧縮デバイス(2000)。
  3. 非圧縮データセット(2010)を圧縮データセット(2090)に圧縮するデータ圧縮方法であって、前記非圧縮データセット(2010)は複数のデータ値を備え、
    前記データセット内の各データ値に対して、前記データ値を複数の意味論的に意味のあるデータフィールドに分割するステップ(2310)と、
    各データ値の前記意味論的に意味のあるデータフィールドのうちの少なくとも1つに対して、第1のデータ圧縮スキームを前記データフィールドに、圧縮データフィールドを生成するために、前記データ値の前記意味論的に意味のあるデータフィールドの他のものから切り離して、適用するステップ(2320)と、
    前記圧縮データセット(2090)を生成する(2330)ために、集約圧縮データセットに前記圧縮データフィールドを含めるステップと、を備え、
    データ圧縮方法は、前記意味論的に意味のあるデータフィールドのうちの少なくとも1つを2つ以上のサブフィールド(mH、mL)に更に分割するステップと、
    前記サブフィールドの少なくとも1つ(mL)に対して、データ圧縮スキームを前記サブフィールド(mL)に、圧縮サブフィールドを生成するために、前記サブフィールドの他のサブフィールド(mH)から切り離して、適用するステップと、
    前記圧縮データセット(2090)を生成するために、前記集約圧縮データセットに前記圧縮サブフィールドを含めるステップと、を備え、
    前記非圧縮データセット(2010)の前記データ値は浮動小数点数であり、
    前記意味論的に意味のあるデータフィールドは、符号(s)、指数(e)、及び仮数(mH、mL)であり、
    前記サブフィールドは仮数上位(mH)及び仮数下位(mL)であり、
    前記仮数上位(mH)及び仮数下位(mL)サブフィールドの少なくとも1つは、前記仮数上位及び仮数下位サブフィールドの他のものから切り離されて圧縮され、
    前記仮数データフィールドの少なくとも前記仮数上位(mH)サブフィールドは、統計的圧縮によって圧縮され、
    前記指数(e)データフィールドは、統計的圧縮、デルタ符号化、又は他の圧縮スキームのうちの1つによって圧縮され、
    前記仮数データフィールドの前記仮数上位(mH)及び仮数下位(mL)サブフィールドと前記指数(e)データフィールドは、コンプレッサ(2030)のそれぞれの圧縮ユニット(2030b、2030c、2030a)によって圧縮され、
    前記圧縮データセット(2090)は、
    符号(s)データフィールドを備える第1のグループ(2042‐1)、
    次に、前記仮数データフィールドの圧縮仮数下位(mL)サブフィールドを備える第2のグループ(2042‐2)、
    次に、圧縮指数(e)データフィールドを備える第3のグループ(2042‐3)、
    次に、前記非圧縮データセット(2010)とは逆の順序で前記仮数データフィールドの圧縮仮数上位(mH)サブフィールドを備える第4のグループ(2042‐4)、の順序で、その中に保存することによって、生成するように構成されるデータ圧縮方法。
  4. 前記符号(s)データフィールドは、前記圧縮ユニット(2030a-c)の何れによっても圧縮されず、非圧縮のままにされ、前記生成された圧縮データセット(2090)内に非圧縮形式で含められる、請求項3に記載のデータ圧縮方法。
  5. 請求項3又は4に記載の方法を実行するように構成される論理回路を備える装置。
  6. 圧縮データセット(2110)を解凍データセット(2190)に解凍するデータ解凍デバイス(2100)であって、前記圧縮データセット(2110)はデータ値を表し、前記データ値の各々は複数の意味論的に意味のあるデータフィールドを有し、前記データ値のうちの少なくとも1つは、前記意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮され、
    1つ又は複数の解凍ユニット(2130a-c)を備えるデコンプレッサであって、前記解凍ユニットのうちの第1の解凍ユニットは、各データ値の前記少なくとも1つの圧縮データフィールドに対して、解凍データフィールドを生成するために第1のデータ解凍スキームを前記圧縮データフィールドに適用するように構成される、デコンプレッサと、
    前記解凍データセットのデータ値内に各解凍データフィールドを含めることによって、前記解凍データセット(2190)を生成するように構成される機構と、を備え、
    前記圧縮データセット(2110)は、意味論的に意味のあるデータフィールドの少なくとも1つの圧縮サブフィールド(mH、mL)を備え、
    前記解凍ユニット(2130a-c)の少なくとも1つ(2130a)は、解凍サブフィールドを生成するためにデータ解凍スキームを前記少なくとも1つのサブフィールド(mL)に適用するように構成され、
    前記機構は、前記解凍データセット(2190)のデータ値に前記解凍サブフィールドを含めるように構成され、
    前記解凍データセット(2190)の前記データ値は浮動小数点数であり、
    前記意味論的に意味のあるデータフィールドは符号(s)、指数(e)、及び仮数(mH、mL)であり、
    前記サブフィールドは仮数上位(mH)及び仮数下位(mL)であり、
    前記仮数上位(mH)及び仮数下位(mL)サブフィールドのうちの少なくとも1つは、前記仮数上位及び仮数下位サブフィールドのうちの他方のサブフィールドから切り離されて解凍され、
    前記仮数データフィールドの少なくとも前記仮数上位(mH)サブフィールドは統計的解凍によって解凍され、
    前記指数(e)データフィールドは統計的解凍、デルタ復号化、又は別の解凍スキームの1つによって解凍され、
    前記圧縮データセット(2110)は、以下の順序で、
    i)符号(s)データフィールドを備える第1のグループと、
    ii)次に、前記仮数データフィールドの圧縮仮数下位(mL)サブフィールドを備える第2のグループと、
    iii)次に、圧縮指数(e)データフィールドを備える第3のグループと、
    iv)次に、圧縮前の元のデータセットの前記データ値における元の順序とは逆の順序で、前記仮数データフィールドの圧縮仮数上位(mH)サブフィールドを備える第4のグループと、を備え、
    前記デコンプレッサは2フェーズ動作アーキテクチャを有し、ここで、
    ・第1フェーズにおいて、前記仮数データフィールドの前記仮数上位(mH)及び仮数下位(mL)サブフィールドは、前記デコンプレッサの第1及び第2解凍ユニット(2130b、2130a)によって統計的解凍によって並列に解凍され、
    ・第2のフェーズにおいて、前記指数(e)データフィールドは、統計的解凍、デルタ復号化、又は別の解凍スキームによって、前記デコンプレッサの第3の解凍ユニット(2130c)によって解凍されるデータ解凍デバイス(2100)。
  7. 前記圧縮データセット(2110)の前記符号(s)データフィールドは、圧縮されず、前記解凍データセット(2190)を生成するように構成される前記機構によって前記解凍データセット(2190)のデータ値に非圧縮形式で含められる、請求項6に記載のデータ解凍デバイス(2100)。
  8. 圧縮データセット(2110)を解凍データセット(2190)に解凍するデータ解凍方法であって、前記圧縮データセット(2110)はデータ値を表し、前記データ値の各々は複数の意味論的に意味のあるデータフィールドを有し、前記データ値のうちの少なくとも1つは、前記意味論的に意味のあるデータフィールドの他のものから切り離されて圧縮されており、
    各データ値の前記少なくとも1つの圧縮データフィールドに対して、解凍データフィールド(2484a)を生成するために、第1のデータ解凍スキームを前記圧縮データフィールドに適用するステップ(2520)と、
    前記解凍データセットのデータ値に各解凍データフィールドを含めることによって、前記解凍データセット(2190)を生成するステップ(2530)と、を備え、
    前記圧縮データセット(2110)は、意味論的に意味のあるデータフィールドの少なくとも1つの圧縮サブフィールド(mH、mL)を備え、
    前記方法は、更に、解凍サブフィールドを生成するためにデータ解凍スキームを前記少なくとも1つのサブフィールド(mL)に適用するステップと、
    前記解凍データセット(2190)のデータ値に前記解凍サブフィールドを含めるステップと、を備え、
    前記解凍データセット(2190)の前記データ値は浮動小数点数であり、
    前記意味論的に意味のあるデータフィールドは符号(s)、指数(e)、及び仮数(mH、mL)であり、
    前記サブフィールドは仮数上位(mH)及び仮数下位(mL)であり、
    前記仮数上位(mH)及び仮数下位(mL)サブフィールドのうちの少なくとも1つは、前記仮数上位及び仮数下位サブフィールドのうちの他方のサブフィールドから切り離されて解凍され、
    前記仮数データフィールドの少なくとも前記仮数上位(mH)サブフィールドは統計的解凍によって解凍され、
    前記指数(e)データフィールドは統計的解凍、デルタ復号化、又は別の解凍スキームの1つによって解凍され、
    前記圧縮データセット(2110)は、以下の順序で、
    i)符号(s)データフィールドを備える第1のグループと、
    ii)次に、前記仮数データフィールドの圧縮仮数下位(mL)サブフィールドを備える第2のグループと、
    iii)次に、圧縮指数(e)データフィールドを備える第3のグループと、
    iv)次に、圧縮前の元のデータセットの前記データ値における元の順序とは逆の順序で、前記仮数データフィールドの圧縮仮数上位(mH)サブフィールドを備える第4のグループと、を備え、
    データ解凍方法は2フェーズ動作アーキテクチャを有し、ここで、
    ・第1フェーズにおいて、前記仮数データフィールドの前記仮数上位(mH)及び仮数下位(mL)サブフィールドは、統計的解凍によって並列に解凍され、
    ・第2のフェーズにおいて、前記指数(e)データフィールドは、統計的解凍、デルタ復号化、又は別の解凍スキームによって、解凍されるデータ解凍方法。
  9. 前記圧縮データセット(2110)の前記符号(s)データフィールドは、圧縮されず、前記解凍データセット(2190)のデータ値に非圧縮形式で含められる、請求項8に記載のデータ解凍方法。
  10. 請求項8又は9に記載の方法を実行するように構成される論理回路を備える装置。
JP2017560792A 2015-05-21 2016-05-20 意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム Active JP7031828B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE1550644 2015-05-21
SE1550644-7 2015-05-21
PCT/SE2016/050463 WO2016186564A1 (en) 2015-05-21 2016-05-20 Methods, devices and systems for semantic-value data compression and decompression

Publications (2)

Publication Number Publication Date
JP2018520576A JP2018520576A (ja) 2018-07-26
JP7031828B2 true JP7031828B2 (ja) 2022-03-08

Family

ID=57320837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017560792A Active JP7031828B2 (ja) 2015-05-21 2016-05-20 意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム

Country Status (7)

Country Link
US (1) US10268380B2 (ja)
EP (2) EP3298695B1 (ja)
JP (1) JP7031828B2 (ja)
KR (2) KR102616804B1 (ja)
CN (2) CN107836083B (ja)
CA (1) CA2986559A1 (ja)
WO (1) WO2016186564A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925418B (zh) 2015-05-21 2021-06-01 零点科技公司 用于混合式数据压缩和解压缩的方法、设备和系统
SE540178C2 (en) * 2016-01-29 2018-04-24 Zeropoint Tech Ab Methods, devices and systems for compressing and decompressing data
US10222853B2 (en) * 2016-03-03 2019-03-05 Qualcomm Incorporated Power saving techniques for memory systems by consolidating data in data lanes of a memory bus
DE102019002951A1 (de) * 2018-04-25 2019-10-31 Avago Technologies International Sales Pte. Limited Pixelspeicherung für graphische Bildspeicher
US10305508B2 (en) * 2018-05-11 2019-05-28 Intel Corporation System for compressing floating point data
CN110909870B (zh) * 2018-09-14 2022-12-09 中科寒武纪科技股份有限公司 训练装置及方法
US11880368B2 (en) * 2018-10-15 2024-01-23 Ocient Holdings LLC Compressing data sets for storage in a database system
CN111384968B (zh) * 2018-12-28 2022-08-09 上海寒武纪信息科技有限公司 数据压缩解压装置和数据解压方法
CN113228653B (zh) * 2018-12-21 2024-03-15 零点科技公司 用于高效压缩和解压缩以获得更高吞吐量的方法、设备和系统
CN114503439A (zh) 2019-09-09 2022-05-13 谷歌有限责任公司 压缩表现混合压缩性的数据
KR20220015556A (ko) 2020-07-31 2022-02-08 삼성전자주식회사 이미지 처리 장치 및 프레임 버퍼 컴프레서
CN112291341A (zh) * 2020-10-28 2021-01-29 维沃移动通信有限公司 文件传输方法、装置和设备
CN113268460B (zh) * 2021-05-28 2022-10-14 中科计算技术西部研究院 基于多层次并行的基因数据无损压缩方法及装置
CN116208170B (zh) * 2023-03-01 2023-10-27 山东华科信息技术有限公司 分布式能源并网监测的数据解压缩系统、方法及其设备
CN118244993A (zh) * 2024-05-22 2024-06-25 北京灵汐科技有限公司 数据存储方法、数据处理方法及装置、电子设备、介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044459A (ja) 2001-08-02 2003-02-14 Hitachi Software Eng Co Ltd 構造化データに対するデータ圧縮方法およびデータ交換方法
JP2003050696A (ja) 2001-08-07 2003-02-21 Hitachi Ltd 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ
WO2005025072A1 (ja) 2003-09-02 2005-03-17 Nippon Telegraph And Telephone Corporation 浮動小数点信号可逆符号化方法、復号化方法、及びそれらの装置、プログラム及びその記録媒体
JP2006186531A (ja) 2004-12-27 2006-07-13 Nanao Corp 画像データ伝送システム
WO2011033381A1 (en) 2009-09-21 2011-03-24 Gideon Kaempfer A method and system for error resilient compression and decompression of computed tomography data
US20130007076A1 (en) 2011-06-30 2013-01-03 Samplify Systems, Inc. Computationally efficient compression of floating-point data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07131655A (ja) * 1993-11-02 1995-05-19 Fujitsu Commun Syst Ltd 動的多値化データ圧縮装置
US7143046B2 (en) * 2001-12-28 2006-11-28 Lucent Technologies Inc. System and method for compressing a data table using models
US6990505B2 (en) * 2002-05-09 2006-01-24 Sun Microsystems, Inc. Method/apparatus for conversion of higher order bits of 64-bit integer to floating point using 53-bit adder hardware
US7230551B2 (en) * 2003-06-20 2007-06-12 Nippon Telegraph And Telephone Corporation Floating-point type digital signal reversible encoding method, decoding method, apparatuses therefor, and programs therefor
US8300823B2 (en) * 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
US8208532B2 (en) 2008-03-31 2012-06-26 Oracle America, Inc. Method and apparatus for data compression and decompression
US8285687B2 (en) * 2008-08-27 2012-10-09 Netapp, Inc. System and method for file system level compression using compression group descriptors
KR101703207B1 (ko) * 2009-09-30 2017-02-06 알테라 코포레이션 압축 및 압축해제를 이용한 향상된 멀티 프로세서 파형 데이터 교환
CN103731154B (zh) * 2013-11-01 2017-01-11 陕西理工学院 一种基于语义分析的数据压缩算法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044459A (ja) 2001-08-02 2003-02-14 Hitachi Software Eng Co Ltd 構造化データに対するデータ圧縮方法およびデータ交換方法
JP2003050696A (ja) 2001-08-07 2003-02-21 Hitachi Ltd 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ
WO2005025072A1 (ja) 2003-09-02 2005-03-17 Nippon Telegraph And Telephone Corporation 浮動小数点信号可逆符号化方法、復号化方法、及びそれらの装置、プログラム及びその記録媒体
JP2006186531A (ja) 2004-12-27 2006-07-13 Nanao Corp 画像データ伝送システム
WO2011033381A1 (en) 2009-09-21 2011-03-24 Gideon Kaempfer A method and system for error resilient compression and decompression of computed tomography data
US20130007076A1 (en) 2011-06-30 2013-01-03 Samplify Systems, Inc. Computationally efficient compression of floating-point data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Martin Isenburg et al.,Lossless compression of predicted floating-point geometry,Comuter-Aided Design,2005年07月,Volume 37, Issue 8,Pages 869-877

Also Published As

Publication number Publication date
CA2986559A1 (en) 2016-11-24
EP4012928B1 (en) 2023-06-14
WO2016186564A1 (en) 2016-11-24
CN107836083A (zh) 2018-03-23
JP2018520576A (ja) 2018-07-26
CN113810057A (zh) 2021-12-17
KR20180019598A (ko) 2018-02-26
CN107836083B (zh) 2021-09-21
CN113810057B (zh) 2024-05-14
EP3298695B1 (en) 2022-01-05
EP3298695A4 (en) 2019-01-16
EP3298695A1 (en) 2018-03-28
EP4012928A1 (en) 2022-06-15
US10268380B2 (en) 2019-04-23
US20180143770A1 (en) 2018-05-24
KR20240001326A (ko) 2024-01-03
KR102616804B1 (ko) 2023-12-26

Similar Documents

Publication Publication Date Title
JP7031828B2 (ja) 意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム
US10831655B2 (en) Methods, devices and systems for compressing and decompressing data
US8090027B2 (en) Data compression using an arbitrary-sized dictionary
CN114244373B (zh) Lz系列压缩算法编解码速度优化方法
CN107545066B (zh) 用于在易失性存储器内保持关系型数据的列向量的技术
US10187081B1 (en) Dictionary preload for data compression
CN108886367B (zh) 用于压缩和解压缩数据的方法、设备和系统
US9094039B2 (en) Efficient deflate decompression
US20090058693A1 (en) System and method for huffman decoding within a compression engine
US6310563B1 (en) Method and apparatus for enhanced decompressor parsing
JP7425526B2 (ja) 動的ハフマン表生成のためのハードウェア領域を節約するためのラッチカウントの削減
Funasaka et al. Adaptive loss‐less data compression method optimized for GPU decompression
Ledwon et al. Design and evaluation of an fpga-based hardware accelerator for deflate data decompression
US6985633B2 (en) Device and method for decoding class-based codewords
US20210281276A1 (en) Encoded block format
Hoang et al. Dictionary selection using partial matching
Ledwon Design of FPGA-based accelerators for Deflate compression and decompression using high-level synthesis
Doshi et al. “Quad-Byte Transformation as a Pre-processing to Arithmetic Coding
Shravana et al. Review on lossless data compression using x-matchpro algorithm
SMADI et al. A MODIFIED LEMPEL-ZIV WELCH SOURCE CODING ALGORITHM FOR EFFICIENT DATA COMPRESSION.
Katsu et al. Low-latency lossless compression codec design for high-throughput data-buses
Tu et al. A novel classified multi-dictionary code compression for embedded systems
Yeo et al. Experimental Performance Evaluation to Enhance Database Compression on Commercial Servers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190509

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200728

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201019

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211111

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

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211111

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20211125

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

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20211130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220215

R150 Certificate of patent or registration of utility model

Ref document number: 7031828

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150