JP2019208203A - 浮動小数点データを圧縮するためのシステム - Google Patents
浮動小数点データを圧縮するためのシステム Download PDFInfo
- Publication number
- JP2019208203A JP2019208203A JP2019073829A JP2019073829A JP2019208203A JP 2019208203 A JP2019208203 A JP 2019208203A JP 2019073829 A JP2019073829 A JP 2019073829A JP 2019073829 A JP2019073829 A JP 2019073829A JP 2019208203 A JP2019208203 A JP 2019208203A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data element
- compressed
- value
- 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.)
- Granted
Links
- 238000007667 floating Methods 0.000 title claims abstract description 35
- 230000015654 memory Effects 0.000 claims abstract description 197
- 238000007906 compression Methods 0.000 claims abstract description 105
- 230000006835 compression Effects 0.000 claims abstract description 105
- 230000004044 response Effects 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 23
- 238000013461 design Methods 0.000 description 20
- 238000004519 manufacturing process Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 230000006837 decompression Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 101100511858 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) LSB1 gene Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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)
-
- 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
- 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
-
- 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)
Abstract
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のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
プロセッサ。 - 前記辞書における第2のエントリの値と一致する値を第3のデータ要素が前記第3のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第3のデータ要素の第3のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項1に記載のプロセッサ。 - 前記辞書における第3のエントリの値と一致する値を第4のデータ要素が前記第4のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第4のデータ要素の第4のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項2に記載のプロセッサ。 - 第3のデータ要素が、全ての0ビットを前記第3のデータ要素の指数フィールドに含んでおり、全ての0ビットを前記第3のデータ要素の仮数フィールドに含んでいる、という判断に応答して、第3のタグタイプが、前記圧縮されたデータブロックに含まれ、前記第3のデータ要素からのデータは、前記圧縮されたデータブロックに含まれない、
請求項1から3のいずれか一項に記載のプロセッサ。 - 前記辞書は、複数のエントリを含み、前記辞書の前記複数のエントリの各々は、それぞれの対応する指数値を格納する、
請求項1から4のいずれか一項に記載のプロセッサ。 - 前記第2のタグタイプは、前記辞書の複数のエントリ内での前記第1のエントリの位置を示す、
請求項1から5のいずれか一項に記載のプロセッサ。 - 前記辞書は、2つのエントリを含み、前記第1のデータ要素の前記指数フィールドの最下位ビットによりインデックスを付けられている、
請求項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のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
方法。 - 前記辞書における第2のエントリの値と一致する値を第3のデータ要素が前記第3のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第3のデータ要素の第3のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項15に記載の方法。 - 前記辞書における第3のエントリの値と一致する値を第4のデータ要素が前記第4のデータ要素の指数フィールドに含んでいる、という判断に応答して、前記第4のデータ要素の第4のタグタイプおよび圧縮された値が、前記圧縮されたデータブロックに含まれる、
請求項16に記載の方法。 - 第3のデータ要素が、全ての0ビットを前記第3のデータ要素の指数フィールドに含んでおり、全ての0ビットを前記第3のデータ要素の仮数フィールドに含んでいる、という判断に応答して、第3のタグタイプが、前記圧縮されたデータブロックに含まれ、前記第3のデータ要素からのデータは、前記圧縮されたデータブロックに含まれない、
請求項15から17のいずれか一項に記載の方法。 - 前記辞書は、複数のエントリを含み、前記辞書の前記複数のエントリの各々は、それぞれの対応する指数値を格納する、
請求項15から18のいずれか一項に記載の方法。 - 前記第2のタグタイプは、前記辞書の複数のエントリ内での前記第1のエントリの位置を示す、
請求項15から19のいずれか一項に記載の方法。 - 前記辞書は、2つのエントリを含み、前記第1のデータ要素の前記指数フィールドの最下位ビットによりインデックスを付けられている、
請求項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 true JP2019208203A (ja) | 2019-12-05 |
JP7351060B2 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[on", 2015 48TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO), JPN6023013072, 16 February 2017 (2017-02-16), pages 38 - 49, ISSN: 0005026692 * |
Also Published As
Publication number | Publication date |
---|---|
KR20190129702A (ko) | 2019-11-20 |
JP7351060B2 (ja) | 2023-09-27 |
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) | 浮動小数点データを圧縮するためのシステム | |
US11645135B2 (en) | Hardware apparatuses and methods for memory corruption detection | |
JP6456867B2 (ja) | 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法 | |
CN108369511B (zh) | 用于基于通道的跨步存储操作的指令和逻辑 | |
JP6025986B2 (ja) | 装置、方法、およびシステム | |
CN115421686A (zh) | 用于深度学习和其它算法的fp16-s7e8混合精度 | |
KR101966713B1 (ko) | 마스크 레지스터에서의 비트들을 반전 및 치환하기 위한 장치 및 방법 | |
US10135463B1 (en) | Method and apparatus for accelerating canonical huffman encoding | |
TWI588740B (zh) | 包括用於移位和(shift-sum)乘法器之指令及邏輯的處理器及系統,以及用於移位和乘法的方法 | |
TW201732564A (zh) | 用於使用monitor及mwait架構之使用者層級執行緒同步的方法及裝置 | |
CN110659129A (zh) | 用于数据表示之间的一致、加速的转换的装置和方法 | |
US20170177361A1 (en) | Apparatus and method for accelerating graph analytics | |
TWI752034B (zh) | 用以校驗具有指示校驗位元值之位元的位元校驗處理器、方法、系統與指令 | |
TWI729029B (zh) | 用於向量位元欄壓縮及擴展的指令及邏輯 | |
US10437562B2 (en) | Apparatus and method for processing sparse data | |
EP3786780B1 (en) | System to perform unary functions using range-specific coefficient sets | |
US9886318B2 (en) | Apparatuses and methods to translate a logical thread identification to a physical thread identification | |
US11126663B2 (en) | Method and apparatus for energy efficient decompression using ordered tokens | |
US10069512B2 (en) | Systems, methods, and apparatuses for decompression using hardware and software | |
TW201712530A (zh) | 用於改善狀態相依計算效能的系統、方法和設備 | |
US20190163476A1 (en) | Systems, methods, and apparatuses handling half-precision operands | |
TWI773654B (zh) | 處理器、運算系統及用於執行以向量為基礎的位元操控之方法 | |
KR20140113579A (ko) | 데이터 요소에 있는 비트들의 제로화를 위한 시스템, 장치, 및 방법 |
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 |