JP7351060B2 - 浮動小数点データを圧縮するためのシステム - Google Patents
浮動小数点データを圧縮するためのシステム Download PDFInfo
- Publication number
- JP7351060B2 JP7351060B2 JP2019073829A JP2019073829A JP7351060B2 JP 7351060 B2 JP7351060 B2 JP 7351060B2 JP 2019073829 A JP2019073829 A JP 2019073829A JP 2019073829 A JP2019073829 A JP 2019073829A JP 7351060 B2 JP7351060 B2 JP 7351060B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- compressed
- data element
- dictionary
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- 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/6011—Encoder aspects
-
- 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/70—Type of the data to be coded, other than image and sound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- 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/3053—Block-companding PCM systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Description
符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素を(例えば、第1のメモリにより)格納し、
上記複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを(例えば、圧縮エンジンにより)生成する
装置、プロセッサ、システム、機械可読ストレージ、機械可読媒体、ハードウェアおよび/またはソフトウェアベースのロジックまたは方法
を提供し得る。
辞書における任意のエントリの値と一致しない値を第1のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、上記圧縮されたデータブロックに含まれ、
上記辞書における第1のエントリの値と一致する値を第2のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第2のデータ要素の第2のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる。
少なくとも1つの機械可読ストレージ媒体は、その上に格納された命令であって、機械により実行された場合、符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素を格納することと、上記複数のデータ要素に基づいて、上記複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成することとを上記機械にさせる、命令を有し、
辞書における任意のエントリの値と一致しない値を第1のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、上記圧縮されたデータブロックに含まれ、
上記辞書における第1のエントリの値と一致する値を第2のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第2のデータ要素の第2のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる。
システムは、
符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成するプロセッサと、
上記圧縮されたデータブロックを格納するメモリと、
上記プロセッサを上記メモリに結合する複数のチャネルと
を備え、
辞書における任意のエントリの値と一致しない値を第1のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、上記圧縮されたデータブロックに含まれ、
上記辞書における第1のエントリの値と一致する値を第2のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第2のデータ要素の第2のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる。
第1のキャッシュラインは、上記複数のデータ要素を含み、
上記プロセッサは、
上記複数のチャネルの単一のチャネルを介して、上記圧縮されたデータブロックを上記メモリへ送信し、
上記複数のチャネルのうちの2つのチャネルを介して、十分な圧縮比を実現しなかった第2のキャッシュラインを送信する
メモリコントローラ
をさらに備える。 少なくとも1つの実施形態において、上記メモリコントローラは、チャネルを選択し、上記チャネル上で、上記第1のキャッシュラインのアドレスに対して実行されるハッシュ演算に基づいて、上記圧縮されたデータブロックを送信する。 少なくとも1つの実施形態において、上記システムは、
上記プロセッサに通信可能に結合されたバッテリ、
上記プロセッサに通信可能に結合されたディスプレイ、または
上記プロセッサに通信可能に結合されたネットワークインタフェース
をさらに備える。
[項目1]
符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素を格納する第1のメモリと、
回路を有する圧縮エンジンであって、上記複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成する、圧縮エンジンと
を備え、
辞書における任意のエントリの値と一致しない値を第1のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、上記圧縮されたデータブロックに含まれ、
上記辞書における第1のエントリの値と一致する値を第2のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第2のデータ要素の第2のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる、
プロセッサ。
[項目2]
上記辞書における第2のエントリの値と一致する値を第3のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記データ要素の第3のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる、
項目1に記載のプロセッサ。
[項目3]
上記辞書における第3のエントリの値と一致する値を第4のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第4のデータ要素の第4のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる、
項目2に記載のプロセッサ。
[項目4]
第3のデータ要素が、全ての0ビットをその指数フィールドに含んでおり、全ての0ビットをその仮数フィールドに含んでいる、という判断に応答して、第3のタグタイプが、上記圧縮されたデータブロックに含まれ、上記第3のデータ要素からのデータは、上記圧縮されたデータブロックに含まれない、
項目1に記載のプロセッサ。
[項目5]
上記辞書は、複数のエントリを含み、上記辞書の各エントリは、それぞれの対応する指数値を格納する、
項目1に記載のプロセッサ。
[項目6]
上記第2のタグタイプは、上記辞書の複数のエントリ内での上記第1のエントリの位置を示す、
項目1に記載のプロセッサ。
[項目7]
上記辞書は、2つのエントリを含み、上記第1のデータ要素の上記指数フィールドの最下位ビットによりインデックスを付けられている、
項目1に記載のプロセッサ。
[項目8]
上記複数のデータ要素は、第1のデータブロックを形成し、上記辞書は、上記第1のデータブロックより前に圧縮される第2のデータブロックのデータ要素に基づいて、上記第1のデータブロックの圧縮より前に更新され、上記辞書は、上記第1のデータブロックの圧縮中は更新されない、
項目1に記載のプロセッサ。
[項目9]
上記第2のデータブロックは、上記第1のデータブロックの圧縮の直前に上記圧縮エンジンにより圧縮される、
項目8に記載のプロセッサ。
[項目10]
上記第2のデータ要素の上記圧縮された値は、上記第2のデータ要素の符号値および仮数値である、
項目1に記載のプロセッサ。
[項目11]
上記圧縮エンジンはさらに、1または複数のビットを上記圧縮されたブロックの末尾にパッドして、上記圧縮されたブロックをバイト境界で終了させる、
項目1に記載のプロセッサ。
[項目12]
圧縮されたブロックを第2のメモリへの格納用に上記第2のメモリへ送信するメモリコントローラをさらに備える、項目1に記載のプロセッサ。
[項目13]
上記圧縮エンジンは、上記複数のデータ要素に関連付けられたワークロードタイプに基づいて、上記辞書の複数のエントリを初期化する、
項目1に記載のプロセッサ。
[項目14]
上記圧縮エンジンは、上記複数のデータ要素の圧縮より前に圧縮される1または複数のデータセットにおいて指数が出現する頻度のヒストグラムに基づいて、上記辞書の複数のエントリを初期化する、
項目1に記載のプロセッサ。
[項目15]
少なくとも1つの機械可読ストレージ媒体であって、
その上に格納された命令であって、機械により実行された場合、符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素を格納することと、上記複数のデータ要素に基づいて、上記複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成することとを上記機械にさせる、命令を有し、
辞書における任意のエントリの値と一致しない値を第1のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、上記圧縮されたデータブロックに含まれ、
上記辞書における第1のエントリの値と一致する値を第2のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第2のデータ要素の第2のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる、
少なくとも1つの媒体。
[項目16]
上記辞書における第2のエントリの値と一致する値を第3のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第3のデータ要素の第3のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる、
項目15に記載の少なくとも1つの媒体。
[項目17]
符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成するプロセッサと、
上記圧縮されたデータブロックを格納するメモリと、
上記プロセッサを上記メモリに結合する複数のチャネルと
を備え、
辞書における任意のエントリの値と一致しない値を第1のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、上記圧縮されたデータブロックに含まれ、
上記辞書における第1のエントリの値と一致する値を第2のデータ要素がその指数フィールドに含んでいる、という判断に応答して、上記第2のデータ要素の第2のタグタイプおよび圧縮された値が、上記圧縮されたデータブロックに含まれる、
システム。
[項目18]
第1のキャッシュラインは、上記複数のデータ要素を含み、
上記プロセッサは、
上記複数のチャネルの単一のチャネルを介して、上記圧縮されたデータブロックを上記メモリへ送信し、
上記複数のチャネルのうちの2つのチャネルを介して、十分な圧縮比を実現しなかった第2のキャッシュラインを送信する
メモリコントローラ
を有する、
項目17に記載のシステム。
[項目19]
上記メモリコントローラは、チャネルを選択し、上記チャネル上で、上記第1のキャッシュラインのアドレスに対して実行されるハッシュ演算に基づいて、上記圧縮されたデータブロックを送信する、
項目18に記載のシステム。
[項目20]
上記プロセッサに通信可能に結合されたバッテリ、
上記プロセッサに通信可能に結合されたディスプレイ、または
上記プロセッサに通信可能に結合されたネットワークインタフェース
をさらに備える、
項目17に記載のシステム。
Claims (25)
- 符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素を格納する第1のメモリと、
回路を有する圧縮エンジンであって、前記複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成する、圧縮エンジンと
を備え、
辞書における任意のエントリの値と一致しない値を第1のデータ要素が前記第1のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、前記圧縮されたデータブロックに含まれ、
前記辞書における第1のエントリの値と一致する値を第2のデータ要素が前記第2のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第2のデータ要素の第2のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれ、
第3のデータ要素が、全て0のビットを前記第3のデータ要素の指数フィールドに含んでおり、全て0のビットを前記第3のデータ要素の仮数フィールドに含んでいる、という判断に応答して、第3のタグタイプが、前記圧縮されたデータブロックに含まれ、前記第3のデータ要素からのデータは、前記圧縮されたデータブロックに含まれない、
プロセッサ。 - 前記辞書における第2のエントリの値と一致する値を第4のデータ要素が前記第4のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第4のデータ要素の第4のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項1に記載のプロセッサ。 - 前記辞書における第3のエントリの値と一致する値を第5のデータ要素が前記第5のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第5のデータ要素の第5のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項2に記載のプロセッサ。 - 前記複数のデータ要素のそれぞれについて、
前記圧縮されていない値は、圧縮されていない指数値および圧縮されていない仮数値を含み、
前記圧縮された値は、指数値を含まず圧縮されていない仮数値を含む、
請求項1から3のいずれか一項に記載のプロセッサ。 - 前記辞書は、複数のエントリを含み、前記辞書の前記複数のエントリの各々は、それぞれの対応する指数値を格納する、
請求項1から4のいずれか一項に記載のプロセッサ。 - 前記第2のタグタイプは、前記辞書の複数のエントリ内での前記第1のエントリの位置を示す、
請求項1から5のいずれか一項に記載のプロセッサ。 - 前記辞書は、2つのエントリを含み、前記複数のデータ要素のうちの一のデータ要素についての前記辞書のエントリは、前記一のデータ要素の前記指数フィールドの最下位ビットによりインデックスを付けられる、
請求項1から6のいずれか一項に記載のプロセッサ。 - 前記複数のデータ要素は、第1のデータブロックを形成し、前記辞書は、前記第1のデータブロックより前に圧縮される第2のデータブロックのデータ要素に基づいて、前記第1のデータブロックの圧縮より前に更新され、前記辞書は、前記第1のデータブロックの前記圧縮中は更新されない、
請求項1から7のいずれか一項に記載のプロセッサ。 - 前記第2のデータブロックは、前記第1のデータブロックの前記圧縮の直前に前記圧縮エンジンにより圧縮される、
請求項8に記載のプロセッサ。 - 前記第2のデータ要素の前記圧縮された値は、前記第2のデータ要素の符号値および仮数値である、
請求項1から9のいずれか一項に記載のプロセッサ。 - 前記圧縮エンジンはさらに、1または複数のビットを前記圧縮されたブロックの末尾にパッドして、前記圧縮されたブロックをバイト境界で終了させる、
請求項1から10のいずれか一項に記載のプロセッサ。 - 前記圧縮されたブロックを第2のメモリへの格納用に前記第2のメモリへ送信するメモリコントローラをさらに備える、請求項1から11のいずれか一項に記載のプロセッサ。
- 前記圧縮エンジンは、前記複数のデータ要素に関連付けられたワークロードタイプに基づいて、前記辞書の複数のエントリを初期化する、
請求項1から12のいずれか一項に記載のプロセッサ。 - 前記圧縮エンジンは、前記複数のデータ要素の圧縮より前に圧縮される1または複数のデータセットにおいて指数が出現する頻度のヒストグラムに基づいて、前記辞書の複数のエントリを初期化する、
請求項1から13のいずれか一項に記載のプロセッサ。 - 符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素を格納する段階と、
前記複数のデータ要素に基づいて、前記複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成する段階と
を備え、
辞書における任意のエントリの値と一致しない値を第1のデータ要素が前記第1のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、前記圧縮されたデータブロックに含まれ、
前記辞書における第1のエントリの値と一致する値を第2のデータ要素が前記第2のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第2のデータ要素の第2のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれ、
第3のデータ要素が、全て0のビットを前記第3のデータ要素の指数フィールドに含んでおり、全て0のビットを前記第3のデータ要素の仮数フィールドに含んでいる、という判断に応答して、第3のタグタイプが、前記圧縮されたデータブロックに含まれ、前記第3のデータ要素からのデータは、前記圧縮されたデータブロックに含まれない、
方法。 - 前記辞書における第2のエントリの値と一致する値を第4のデータ要素が前記第4のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第4のデータ要素の第4のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項15に記載の方法。 - 前記辞書における第3のエントリの値と一致する値を第5のデータ要素が前記第5のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第5のデータ要素の第5のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項16に記載の方法。 - 前記複数のデータ要素のそれぞれについて、
前記圧縮されていない値は、圧縮されていない指数値および圧縮されていない仮数値を含み、
前記圧縮された値は、指数値を含まず圧縮されていない仮数値を含む、
請求項15から17のいずれか一項に記載の方法。 - 前記辞書は、複数のエントリを含み、前記辞書の前記複数のエントリの各々は、それぞれの対応する指数値を格納する、
請求項15から18のいずれか一項に記載の方法。 - 前記第2のタグタイプは、前記辞書の複数のエントリ内での前記第1のエントリの位置を示す、
請求項15から19のいずれか一項に記載の方法。 - 前記辞書は、2つのエントリを含み、前記複数のデータ要素のうちの一のデータ要素についての前記辞書のエントリは、前記一のデータ要素の前記指数フィールドの最下位ビットによりインデックスを付けられる、
請求項15から20のいずれか一項に記載の方法。 - 前記複数のデータ要素は、第1のデータブロックを形成し、前記辞書は、前記第1のデータブロックより前に圧縮される第2のデータブロックのデータ要素に基づいて、前記第1のデータブロックの圧縮より前に更新され、前記辞書は、前記第1のデータブロックの前記圧縮中は更新されない、
請求項15から21のいずれか一項に記載の方法。 - 請求項15から22のいずれか一項に記載の方法を実行する手段を備えるシステム。
- 符号フィールドと、指数フィールドと、仮数フィールドとを含む浮動小数点フォーマットに従ってエンコードされる複数のデータ要素を格納することと、
前記複数のデータ要素に基づいて、前記複数のデータ要素のデータ要素毎にタグタイプを含む圧縮されたデータブロックを生成することと
を含むオペレーションをプロセッサに実行させるためのコンピュータプログラムであって、
辞書における任意のエントリの値と一致しない値を第1のデータ要素が前記第1のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第1のデータ要素の第1のタグタイプおよび圧縮されていない値が、前記圧縮されたデータブロックに含まれ、
前記辞書における第1のエントリの値と一致する値を第2のデータ要素が前記第2のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第2のデータ要素の第2のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれ、
第3のデータ要素が、全て0のビットを前記第3のデータ要素の指数フィールドに含んでおり、全て0のビットを前記第3のデータ要素の仮数フィールドに含んでいる、という判断に応答して、第3のタグタイプが、前記圧縮されたデータブロックに含まれ、前記第3のデータ要素からのデータは、前記圧縮されたデータブロックに含まれない、
コンピュータプログラム。 - 前記複数のデータ要素のそれぞれについて、
前記圧縮されていない値は、圧縮されていない指数値および圧縮されていない仮数値を含み、
前記圧縮された値は、指数値を含まず圧縮されていない仮数値を含む、
請求項24に記載のコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/977,720 | 2018-05-11 | ||
US15/977,720 US10305508B2 (en) | 2018-05-11 | 2018-05-11 | System for compressing floating point data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019208203A JP2019208203A (ja) | 2019-12-05 |
JP7351060B2 true JP7351060B2 (ja) | 2023-09-27 |
Family
ID=65230032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019073829A Active JP7351060B2 (ja) | 2018-05-11 | 2019-04-08 | 浮動小数点データを圧縮するためのシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10305508B2 (ja) |
EP (1) | EP3567729A1 (ja) |
JP (1) | JP7351060B2 (ja) |
KR (1) | KR20190129702A (ja) |
CN (1) | CN110474645A (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10833701B2 (en) * | 2018-05-02 | 2020-11-10 | EMC IP Holding Company LLC | Process aware data compression |
CN111142676B (zh) * | 2019-12-30 | 2023-08-08 | 歌尔科技有限公司 | 数据传输方法、装置、头戴显示设备和可读存储介质 |
KR20220030106A (ko) | 2020-09-02 | 2022-03-10 | 삼성전자주식회사 | 저장 장치, 저장 장치의 동작 방법 및 이를 포함한 전자 장치 |
US11394396B2 (en) * | 2020-09-25 | 2022-07-19 | Advanced Micro Devices, Inc. | Lossless machine learning activation value compression |
CN114040028B (zh) * | 2021-10-29 | 2023-11-24 | 深圳智慧林网络科技有限公司 | 一种基于三种模式的数据压缩方法和数据解压方法 |
CN114040027B (zh) * | 2021-10-29 | 2023-11-24 | 深圳智慧林网络科技有限公司 | 一种基于双模式的数据压缩方法、装置和数据解压方法 |
KR20240070783A (ko) * | 2022-11-14 | 2024-05-22 | 주식회사 사피온코리아 | 부동 소수점 데이터 압축을 위한 방법 및 장치 |
CN117056296A (zh) * | 2023-02-15 | 2023-11-14 | 中科南京智能技术研究院 | 人脸数据的采集和存储方法及相关设备 |
CN118381513A (zh) * | 2024-06-21 | 2024-07-23 | 上海禹创智能科技有限公司 | 一种基于数据对象的数据压缩传输方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005535175A (ja) | 2002-07-31 | 2005-11-17 | ビーティージー・インターナショナル・リミテッド | ロスレスデータ圧縮 |
JP2014017629A (ja) | 2012-07-06 | 2014-01-30 | Fujitsu Ltd | 復元プログラム、圧縮プログラム、復元装置、圧縮装置、復元方法、および圧縮方法 |
JP2014521273A (ja) | 2011-07-20 | 2014-08-25 | フリースケール セミコンダクター インコーポレイテッド | 画像を符号化する方法および装置 |
WO2016186564A1 (en) | 2015-05-21 | 2016-11-24 | Zeropoint Technologies Ab | Methods, devices and systems for semantic-value data compression and decompression |
WO2016186563A1 (en) | 2015-05-21 | 2016-11-24 | Zeropoint Technologies Ab | Methods, devices and systems for hybrid data compression and decompression |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071151A1 (en) * | 2003-09-30 | 2005-03-31 | Ali-Reza Adl-Tabatabai | Compression-decompression mechanism |
US8208532B2 (en) * | 2008-03-31 | 2012-06-26 | Oracle America, Inc. | Method and apparatus for data compression and decompression |
TWI524265B (zh) * | 2011-06-30 | 2016-03-01 | 艾特拉股份有限公司 | 浮點資料之壓縮 |
US9851945B2 (en) * | 2015-02-16 | 2017-12-26 | Advanced Micro Devices, Inc. | Bit remapping mechanism to enhance lossy compression in floating-point applications |
US10509580B2 (en) | 2016-04-01 | 2019-12-17 | Intel Corporation | Memory controller and methods for memory compression utilizing a hardware compression engine and a dictionary to indicate a zero value, full match, partial match, or no match |
-
2018
- 2018-05-11 US US15/977,720 patent/US10305508B2/en not_active Expired - Fee Related
-
2019
- 2019-04-05 EP EP19167713.7A patent/EP3567729A1/en not_active Withdrawn
- 2019-04-08 JP JP2019073829A patent/JP7351060B2/ja active Active
- 2019-04-09 KR KR1020190041254A patent/KR20190129702A/ko not_active Application Discontinuation
- 2019-04-26 CN CN201910344466.6A patent/CN110474645A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005535175A (ja) | 2002-07-31 | 2005-11-17 | ビーティージー・インターナショナル・リミテッド | ロスレスデータ圧縮 |
JP2014521273A (ja) | 2011-07-20 | 2014-08-25 | フリースケール セミコンダクター インコーポレイテッド | 画像を符号化する方法および装置 |
JP2014017629A (ja) | 2012-07-06 | 2014-01-30 | Fujitsu Ltd | 復元プログラム、圧縮プログラム、復元装置、圧縮装置、復元方法、および圧縮方法 |
WO2016186564A1 (en) | 2015-05-21 | 2016-11-24 | Zeropoint Technologies Ab | Methods, devices and systems for semantic-value data compression and decompression |
WO2016186563A1 (en) | 2015-05-21 | 2016-11-24 | Zeropoint Technologies Ab | Methods, devices and systems for hybrid data compression and decompression |
Non-Patent Citations (1)
Title |
---|
Angelos Arelakis et al.,HyComp: A hybrid cache compression method for selection of data-type-specific compression methods[online],2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO),2017年02月16日,pp.38-49,[検索日:2023.03.28],インターネット<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7856586> |
Also Published As
Publication number | Publication date |
---|---|
KR20190129702A (ko) | 2019-11-20 |
JP2019208203A (ja) | 2019-12-05 |
EP3567729A1 (en) | 2019-11-13 |
CN110474645A (zh) | 2019-11-19 |
US20190044531A1 (en) | 2019-02-07 |
US10305508B2 (en) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7351060B2 (ja) | 浮動小数点データを圧縮するためのシステム | |
JP6456867B2 (ja) | 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法 | |
JP6025986B2 (ja) | 装置、方法、およびシステム | |
CN110879724A (zh) | 用于深度学习和其它算法的fp16-s7e8混合精度 | |
JP6761565B2 (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
JP6082116B2 (ja) | リードマスク及びライトマスクにより制御されるベクトル移動命令 | |
JP7419629B2 (ja) | データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置 | |
US10387148B2 (en) | Apparatus and method to reverse and permute bits in a mask register | |
US9122475B2 (en) | Instruction for shifting bits left with pulling ones into less significant bits | |
US10509580B2 (en) | Memory controller and methods for memory compression utilizing a hardware compression engine and a dictionary to indicate a zero value, full match, partial match, or no match | |
JP2017515177A (ja) | 3ソースオペランド浮動小数点加算プロセッサ、方法、システム、及び命令 | |
US10135463B1 (en) | Method and apparatus for accelerating canonical huffman encoding | |
US20170177361A1 (en) | Apparatus and method for accelerating graph analytics | |
TWI729029B (zh) | 用於向量位元欄壓縮及擴展的指令及邏輯 | |
KR20210028075A (ko) | 범위-특정 계수 세트를 사용하여 단항 함수를 수행하는 시스템 | |
JP2014182796A (ja) | 書き込みマスク・レジスタの末尾の最下位マスキング・ビットを判定するためのシステム、装置、および方法 | |
US10069512B2 (en) | Systems, methods, and apparatuses for decompression using hardware and software | |
US11126663B2 (en) | Method and apparatus for energy efficient decompression using ordered tokens | |
CN107077333B (zh) | 用于实行向量位聚集的方法和装置 | |
TW201712530A (zh) | 用於改善狀態相依計算效能的系統、方法和設備 | |
JP2017538215A (ja) | 逆分離演算を実行するための命令及びロジック | |
US20190163476A1 (en) | Systems, methods, and apparatuses handling half-precision operands | |
KR101635856B1 (ko) | 데이터 요소에 있는 비트들의 제로화를 위한 시스템, 장치, 및 방법 | |
CN117501256A (zh) | 用于大数据集的复杂过滤器硬件加速器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220401 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230327 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230404 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230531 |
|
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: 20230815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230821 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7351060 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |