JP2020102258A - メモリ圧縮を実行するシステム及び方法 - Google Patents
メモリ圧縮を実行するシステム及び方法 Download PDFInfo
- Publication number
- JP2020102258A JP2020102258A JP2020045008A JP2020045008A JP2020102258A JP 2020102258 A JP2020102258 A JP 2020102258A JP 2020045008 A JP2020045008 A JP 2020045008A JP 2020045008 A JP2020045008 A JP 2020045008A JP 2020102258 A JP2020102258 A JP 2020102258A
- Authority
- JP
- Japan
- Prior art keywords
- word
- group
- hardware
- input
- words
- 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
- 238000007906 compression Methods 0.000 title claims abstract description 130
- 230000006835 compression Effects 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000015654 memory Effects 0.000 title claims description 33
- 230000006837 decompression Effects 0.000 claims description 64
- 239000000872 buffer Substances 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 23
- 238000010586 diagram Methods 0.000 description 29
- 230000001419 dependent effect Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/6017—Methods or arrangements to increase the throughput
- H03M7/6023—Parallelization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/102—Compression or decompression of data before storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
Description
このような説明は、「〜するように構成される」という語句を含むと解釈されるべきである。1つ以上のタスクを実行するように構成されたユニット/回路/構成要素の記載は、そのユニット/回路/構成要素について米国特許法第112条(f)の解釈を援用しないことを明示的に意図している。
Claims (20)
- 複数の入力ワードを記憶するように構成された第1のバッファと、
複数のエントリを含むテーブルと、
第1の複数のハードウェアレーンを含む圧縮回路であって、圧縮命令の指示を受け取ることに応答して、
前記複数の入力ワードからの第1の群の2つ以上の入力ワードを前記第1の複数のハードウェアレーンに割り当てることと、
前記第1の群の2つ以上の入力ワードのうちの少なくとも2つが前記テーブルの同じエントリに対応すると判定することと、
前記第1の群の入力ワード間の依存関係を判定する前に、
前記第1の群の前記入力ワードのいずれかで前記テーブルを更新するか否かを判定することと、
前記複数の入力ワードからの第2の群の入力ワードを前記第1の複数のハードウェアレーンに割り当てることであって、前記第2の群は前記第1の群とは異なる、ことと、 前記複数の入力ワードに対応するデータを記憶する圧縮パケットを生成することと、 を行うように構成された、圧縮回路と、
を備える、装置。 - 前記圧縮回路が、
前記第1の群の入力ワード間の依存関係を判定することと、
前記複数のハードウェアレーンのうちの各ハードウェアレーンについて、前記第1の群の入力ワード間の前記依存関係に基づいて、圧縮パケットのタイプを指定するコマンドを生成することと、
を行うように更に構成された、請求項1に記載の装置。 - アクセスされようとする各テーブルエントリについて、前記圧縮回路が、
前記第1の群の最も若い入力ワードを判定することと、
前記第1の群の入力ワード間の依存関係を判定する前に、前記第2の群に前記最も若いワードを転送することと、
を行うように更に構成された、請求項1に記載の装置。 - アクセスされようとする各テーブルエントリについて、前記圧縮回路が、
前記第1の群の最も古い入力ワードを判定することと、
前記複数のハードウェアレーンのうち前記最も古い入力ワードに割り当てられたハードウェアレーンのみから前記テーブル内の入力ワードの読み取り要求を送ることと、
を行うように更に構成された、請求項1に記載の装置。 - 前記複数のハードウェアレーンのうちの各ハードウェアレーンについて、前記第1の群の入力ワード間の依存関係を判定することが、前記ハードウェアレーンに割り当てられた入力ワードを第2の入力ワードと比較することを含む、請求項4に記載の装置。
- 前記第2の入力ワードが、前記ハードウェアレーンに割り当てられた前記入力ワードについて判定された前記テーブルのエントリに記憶された入力ワードである、請求項5に記載の装置。
- 前記第2の入力ワードが、
前記第1の群の前記最も古い入力ワードに割り当てられた前記ハードウェアレーンについては、前記第1の群の各入力ワードについて判定された前記テーブルのエントリに記憶された入力ワードであり、
前記第1の群の前記最も古い入力ワードに割り当てられていない所与のハードウェアレーンについては、前記所与のハードウェアレーンに割り当てられた入力ワードより古い前記最も若い入力ワードである前記第1の群の入力ワードである、請求項5に記載の装置。 - 前記圧縮回路が、圧縮パケットのタイプを特定する生成されたコマンドが前記テーブルの更新を指示すると判定することに応答して、前記テーブルに前記第1の群の前記最も若い入力ワードを記憶するように更に構成された、請求項3に記載の装置。
- 前記圧縮回路が、圧縮パケットのタイプを特定する生成されたコマンドが前記テーブルの更新を指示すると判定する前に、前記テーブルに前記第1の群の前記最も若い入力ワードを記憶するように更に構成された、請求項3に記載の装置。
- 第2の複数のハードウェアレーンを備える展開回路を更に備え、展開命令の指示の受信に応答して、前記展開回路が、
複数の圧縮パケットからの2つ以上の圧縮パケットの第3の群を前記第2の複数のハードウェアレーンに割り当てることであって、前記第3の群の各圧縮パケットが前記テーブルの同じエントリにアクセスするものとして指示される、ことと、
前記第2の複数のハードウェアレーンの各ハードウェアレーンについて、割り当てられた圧縮パケットのワードを提供するソースが前記テーブルであるか、又は前記割り当てられた圧縮パケットであるかを判定することと、
前記判定されたソースから前記ワードを書き込みバッファに書き込むことと、
を行うように構成された、請求項1に記載の装置。 - 前記展開回路が、
前記第3の群の最も若い圧縮パケットを判定することと、
前記第2の複数のハードウェアレーンのうち前記最も若い圧縮パケットに割り当てられたハードウェアレーンについて、前記ハードウェアレーンの前記ワードを前記テーブルに記憶することと、
を行うように更に構成された、請求項10に記載の装置。 - 複数の入力ワードを第1のバッファに記憶することと、
圧縮命令の指示を受信することに応答して、
前記複数の入力ワードからの2つ以上の入力ワードの第1の群を第1の複数のハードウェアレーンに割り当てることと、
前記第1の群の2つ以上の入力ワードのうちの少なくとも2つが、複数のエントリを備えるテーブルの同じエントリに対応すると判定することと、
前記第1の群の入力ワード間の依存関係を判定する前に、
前記第1の群の前記入力ワードのいずれかで前記テーブルを更新するか否かを判定することと、
前記複数入力ワードからの入力ワードの第2の群を前記第1の複数のハードウェアレーンに割り当てることであって、前記第2の群は前記第1の群とは異なる、ことと、
前記複数の入力ワードに対応するデータを記憶する圧縮パケットを生成することと
を含む、方法。 - 前記2つ以上の割り当てられた入力ワードのそれぞれが、前記テーブル内の複数のエントリのうち同じエントリを指す、対応するインデックスを有する、請求項12に記載の方法。
- アクセスされようとする前記テーブル内の各エントリについて、
前記第1の群の最も古い入力ワードを判定することと、
前記テーブル内の入力ワードの読み取り要求を、前記複数のハードウェアレーンのうち前記最も古い入力ワードに割り当てられたハードウェアレーンのみから送ることと
を更に含む、請求項12に記載の方法。 - 前記2つ以上のハードウェアレーンのハードウェアレーンごとの前記第2の入力ワードが、前記テーブルから読み取られた前記入力ワードである、請求項14に記載の方法。
- 展開命令の指示の受信に応答して、
記憶された複数の圧縮パケットのうちの2つ以上の圧縮パケットを展開するために選択することと、
前記選択された2つ以上の圧縮パケットに第2の複数のハードウェアレーンのうちの2つ以上のハードウェアレーンを割り当てることと、
前記第2の複数のハードウェアレーンのうちの前記2つ以上のハードウェアレーンのハードウェアレーンごとに、前記圧縮パケットのためのワードを提供するソースが前記テーブルであるか、又は前記圧縮パケットであるかを判定することと、
前記判定されたソースから前記ワードを書き込みバッファに書き込むことと、
を更に含む、請求項12に記載の方法。 - メモリと、
キャッシュメモリと、
プロセッサであって、
複数の入力ワードを前記キャッシュメモリにフェッチすることと、
前記複数の入力ワードからの第1の群の2つ以上の入力ワードを第1の複数のハードウェアレーンに割り当てることと、
前記第1の群の2つ以上の入力ワードのうちの少なくとも2つが、テーブル内の複数のエントリのうちの同じエントリに対応すると判定することと、
前記第1の群の入力ワード間の依存関係を判定する前に、
前記第1の群の前記入力ワードのいずれかで前記テーブルを更新するか否かを判定することと、
前記複数の入力ワードからの第2の群の入力ワードを前記第1の複数のハードウェアレーンに割り当てることであって、前記第2の群は前記第1の群とは異なる、ことと、 前記複数の入力ワードに対応するデータを記憶する圧縮パケットを生成することと、 を行うように構成されたプロセッサと、
を備えるシステム。 - 前記2つ以上の割り当てられた入力ワードのそれぞれが、前記テーブル内の複数のエントリのうち同じエントリを指す、対応するインデックスを有する、請求項17に記載のシステム。
- アクセスされようとする前記テーブルの各エントリについて、前記プロセッサが、
前記第1の群の最も古い入力ワードを判定することと、
前記複数のハードウェアレーンのうち前記最も古い入力ワードに割り当てられたハードウェアレーンのみから前記テーブル内の入力ワードの読み取り要求を送ることと、
を行うように更に構成された、請求項17に記載のシステム。 - 展開命令の指示の受信に応答して、前記プロセッサが、
複数のパケットのうちの2つ以上のパケットを選択することと、
第2の複数のハードウェアレーンのうちの2つ以上のハードウェアレーンを、前記選択された2つ以上のパケットに割り当てることと、
前記第2の複数のハードウェアレーンのうちの前記2つ以上のハードウェアレーンのハードウェアレーンごとに、前記圧縮パケットのワードを提供するソースが前記テーブルであるか、又は前記圧縮パケットであるかを判定することと、
前記判定されたソースから前記ワードを書き込みバッファに書き込むことと、
を行うように構成された、請求項17に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/663,115 | 2017-07-28 | ||
US15/663,115 US10331558B2 (en) | 2017-07-28 | 2017-07-28 | Systems and methods for performing memory compression |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018142253A Division JP6678207B2 (ja) | 2017-07-28 | 2018-07-30 | メモリ圧縮を実行するシステム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020102258A true JP2020102258A (ja) | 2020-07-02 |
JP7005670B2 JP7005670B2 (ja) | 2022-01-21 |
Family
ID=63047156
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018142253A Active JP6678207B2 (ja) | 2017-07-28 | 2018-07-30 | メモリ圧縮を実行するシステム及び方法 |
JP2020045008A Active JP7005670B2 (ja) | 2017-07-28 | 2020-03-16 | メモリ圧縮を実行するシステム及び方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018142253A Active JP6678207B2 (ja) | 2017-07-28 | 2018-07-30 | メモリ圧縮を実行するシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10331558B2 (ja) |
EP (2) | EP3671471B1 (ja) |
JP (2) | JP6678207B2 (ja) |
KR (2) | KR102155648B1 (ja) |
CN (2) | CN109308192B (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US10483981B2 (en) * | 2016-12-30 | 2019-11-19 | Microsoft Technology Licensing, Llc | Highspeed/low power symbol compare |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US10331558B2 (en) | 2017-07-28 | 2019-06-25 | Apple Inc. | Systems and methods for performing memory compression |
US10587284B2 (en) * | 2018-04-09 | 2020-03-10 | International Business Machines Corporation | Multi-mode compression acceleration |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
CN113424148A (zh) | 2019-03-15 | 2021-09-21 | 英特尔公司 | 用于检测跨分片访问、提供多分片推理缩放和提供最佳页迁移的多分片存储器管理 |
US10707897B1 (en) * | 2019-09-04 | 2020-07-07 | Advanced Micro Devices, Inc. | Command processor with multiple string copy engines for a decompression system |
US11144207B2 (en) * | 2019-11-07 | 2021-10-12 | International Business Machines Corporation | Accelerating memory compression of a physically scattered buffer |
JP2021149416A (ja) * | 2020-03-18 | 2021-09-27 | キオクシア株式会社 | メモリシステム |
WO2021237510A1 (zh) * | 2020-05-27 | 2021-12-02 | 深圳市大疆创新科技有限公司 | 数据解压缩的方法、***、处理器及计算机存储介质 |
US20220197799A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Instruction and Micro-Architecture Support for Decompression on Core |
US20220197643A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Speculative decompression within processor core caches |
US12028094B2 (en) | 2020-12-23 | 2024-07-02 | Intel Corporation | Application programming interface for fine grained low latency decompression within processor core |
KR20230012872A (ko) * | 2021-07-16 | 2023-01-26 | 주식회사 쏠리드 | 프론트홀 다중화 장치 |
GB2619341A (en) * | 2022-06-01 | 2023-12-06 | Advanced Risc Mach Ltd | Circuitry and method |
US11791835B1 (en) * | 2022-06-13 | 2023-10-17 | International Business Machines Corporation | Compression improvement in data replication |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
JP2002536863A (ja) * | 1999-01-29 | 2002-10-29 | イントラクティブ シリコン インコーポレイテッド | 拡張可能な埋込み型のパラレルデータを圧縮及び圧縮解除するためのシステムと方法 |
JP2004530318A (ja) * | 2001-02-01 | 2004-09-30 | ビーティージー・インターナショナル・リミテッド | 高速データ圧縮を提供する装置 |
US6822589B1 (en) * | 1999-01-29 | 2004-11-23 | Quickshift, Inc. | System and method for performing scalable embedded parallel data decompression |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
US7447814B1 (en) * | 2005-10-14 | 2008-11-04 | Sun Microsystems, Inc. | Method and apparatus for fast loss-less memory data compression wherein data corresponds to a cache line of data in cache |
US20130082851A1 (en) * | 2011-10-01 | 2013-04-04 | Ilan Pardo | Compression format for high bandwidth dictionary compression |
JP2014182810A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置 |
GB2513987A (en) * | 2013-03-15 | 2014-11-12 | Intel Corp | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and huffman encoding for deflate compression |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4761731A (en) * | 1985-08-14 | 1988-08-02 | Control Data Corporation | Look-ahead instruction fetch control for a cache memory |
US6002411A (en) * | 1994-11-16 | 1999-12-14 | Interactive Silicon, Inc. | Integrated video and memory controller with data processing and graphical processing capabilities |
JP2840589B2 (ja) * | 1996-02-09 | 1998-12-24 | 富士通株式会社 | データ圧縮装置及びデータ復元装置 |
JP3989999B2 (ja) | 1996-05-03 | 2007-10-10 | 株式会社リコー | データ圧縮システム |
US5864547A (en) * | 1996-08-21 | 1999-01-26 | Hughes Electronics Corporation | Method and system for controlling uplink power in a high data rate satellite communication system employing on-board demodulation and remodulation |
US6820181B2 (en) * | 2002-08-29 | 2004-11-16 | Micron Technology, Inc. | Method and system for controlling memory accesses to memory modules having a memory hub architecture |
FR2889328B1 (fr) * | 2005-07-26 | 2007-09-28 | Atmel Nantes Sa Sa | Dispositif d'interfacage unidirectionnel de type fifo entre un bloc maitre et un bloc esclave, bloc maitre et bloc esclave correspondants |
US8108650B2 (en) * | 2009-05-29 | 2012-01-31 | Apple Inc. | Translation lookaside buffer (TLB) with reserved areas for specific sources |
US9569348B1 (en) * | 2009-09-22 | 2017-02-14 | Nvidia Corporation | Method for automatic page table compression |
US8615541B2 (en) * | 2009-09-23 | 2013-12-24 | Nvidia Corporation | Extended-precision integer arithmetic and logical instructions |
US8959291B2 (en) * | 2010-06-04 | 2015-02-17 | Lsi Corporation | Two-port memory capable of simultaneous read and write |
KR102070199B1 (ko) * | 2012-05-11 | 2020-01-28 | 삼성전자주식회사 | 재구성가능 프로세서 및 재구성가능 프로세서의 코드 압축해제 방법 |
US8847798B2 (en) * | 2012-12-17 | 2014-09-30 | Maxeler Technologies, Ltd. | Systems and methods for data compression and parallel, pipelined decompression |
US10565099B2 (en) | 2012-12-28 | 2020-02-18 | Apple Inc. | Methods and apparatus for compressed and compacted virtual memory |
WO2016025591A1 (en) * | 2014-08-12 | 2016-02-18 | Tidal Systems, Inc. | Adaptive rate compression hash processing device |
CN104331269B (zh) * | 2014-10-28 | 2017-08-15 | 中国科学院自动化研究所 | 一种嵌入式***可执行代码压缩方法及代码解压缩*** |
US9678872B2 (en) * | 2015-01-16 | 2017-06-13 | Oracle International Corporation | Memory paging for processors using physical addresses |
US9753666B2 (en) | 2015-03-27 | 2017-09-05 | Intel Corporation | Efficient data compression for solid-state memory |
US10331558B2 (en) | 2017-07-28 | 2019-06-25 | Apple Inc. | Systems and methods for performing memory compression |
-
2017
- 2017-07-28 US US15/663,115 patent/US10331558B2/en active Active
-
2018
- 2018-07-24 KR KR1020180085954A patent/KR102155648B1/ko active IP Right Grant
- 2018-07-25 EP EP20156598.3A patent/EP3671471B1/en active Active
- 2018-07-25 EP EP18185386.2A patent/EP3435240B1/en active Active
- 2018-07-26 CN CN201810830354.7A patent/CN109308192B/zh active Active
- 2018-07-26 CN CN202310872581.7A patent/CN116841920A/zh active Pending
- 2018-07-30 JP JP2018142253A patent/JP6678207B2/ja active Active
-
2019
- 2019-06-10 US US16/436,635 patent/US10769065B2/en active Active
-
2020
- 2020-03-16 JP JP2020045008A patent/JP7005670B2/ja active Active
- 2020-09-08 KR KR1020200114479A patent/KR102248649B1/ko active IP Right Grant
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
JP2002536863A (ja) * | 1999-01-29 | 2002-10-29 | イントラクティブ シリコン インコーポレイテッド | 拡張可能な埋込み型のパラレルデータを圧縮及び圧縮解除するためのシステムと方法 |
US6822589B1 (en) * | 1999-01-29 | 2004-11-23 | Quickshift, Inc. | System and method for performing scalable embedded parallel data decompression |
JP2004530318A (ja) * | 2001-02-01 | 2004-09-30 | ビーティージー・インターナショナル・リミテッド | 高速データ圧縮を提供する装置 |
US7447814B1 (en) * | 2005-10-14 | 2008-11-04 | Sun Microsystems, Inc. | Method and apparatus for fast loss-less memory data compression wherein data corresponds to a cache line of data in cache |
US20130082851A1 (en) * | 2011-10-01 | 2013-04-04 | Ilan Pardo | Compression format for high bandwidth dictionary compression |
JP2014182810A (ja) * | 2013-03-15 | 2014-09-29 | Intel Corp | デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置 |
GB2513987A (en) * | 2013-03-15 | 2014-11-12 | Intel Corp | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and huffman encoding for deflate compression |
Also Published As
Publication number | Publication date |
---|---|
US10769065B2 (en) | 2020-09-08 |
CN109308192B (zh) | 2023-07-21 |
CN109308192A (zh) | 2019-02-05 |
CN116841920A (zh) | 2023-10-03 |
EP3435240A1 (en) | 2019-01-30 |
EP3671471B1 (en) | 2022-01-12 |
KR20200107910A (ko) | 2020-09-16 |
JP2019029023A (ja) | 2019-02-21 |
KR102248649B1 (ko) | 2021-05-04 |
KR20190013538A (ko) | 2019-02-11 |
US10331558B2 (en) | 2019-06-25 |
KR102155648B1 (ko) | 2020-09-14 |
EP3435240B1 (en) | 2020-02-19 |
JP6678207B2 (ja) | 2020-04-08 |
EP3671471A1 (en) | 2020-06-24 |
US20190034333A1 (en) | 2019-01-31 |
JP7005670B2 (ja) | 2022-01-21 |
US20190294541A1 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6678207B2 (ja) | メモリ圧縮を実行するシステム及び方法 | |
JP4567789B2 (ja) | Tlbロックインジケータ | |
US6963964B2 (en) | Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses | |
EP2591420B1 (en) | System and method to manage a translation lookaside buffer | |
TWI698745B (zh) | 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體 | |
JPH0619793A (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
TW201312461A (zh) | 微處理器及縮短尋訪時間之方法 | |
JP2023531650A (ja) | バイナリ変換を実行するためのシステム及び方法 | |
US10877755B2 (en) | Processor load using a bit vector to calculate effective address | |
JP2011150691A (ja) | 演算処理装置、情報処理装置及び制御方法 | |
TW201516861A (zh) | 微處理器、選擇性解壓縮微程式碼方法、產生選擇性壓縮微程式碼方法、產生描述方法以及電腦程式產品 | |
US20160307611A1 (en) | Memory Device with Internal Combination Logic | |
US9886212B2 (en) | Mechanism for copying data in memory | |
CN109564543B (zh) | 用于多线程式模式中的功率降低的方法和装置 | |
US11500638B1 (en) | Hardware compression and decompression engine | |
TW202225978A (zh) | 用於具有大的碼覆蓋區的工作負載的動態共享快取劃分 | |
US20170315807A1 (en) | Hardware support for dynamic data types and operators | |
US20050044326A1 (en) | Processor and processor method of operation | |
JP3697990B2 (ja) | ベクトル処理装置のオペランドキャッシュ | |
BR102022023763A2 (pt) | Aparelho e método para detecção de constante durante operações de compactação | |
CN116340034A (zh) | 用于压缩操作期间的常量检测的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200323 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200323 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210325 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211112 |
|
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: 20211206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7005670 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |