JP6678207B2 - メモリ圧縮を実行するシステム及び方法 - Google Patents
メモリ圧縮を実行するシステム及び方法 Download PDFInfo
- Publication number
- JP6678207B2 JP6678207B2 JP2018142253A JP2018142253A JP6678207B2 JP 6678207 B2 JP6678207 B2 JP 6678207B2 JP 2018142253 A JP2018142253 A JP 2018142253A JP 2018142253 A JP2018142253 A JP 2018142253A JP 6678207 B2 JP6678207 B2 JP 6678207B2
- Authority
- JP
- Japan
- Prior art keywords
- group
- word
- hardware
- words
- input
- 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
- 238000007906 compression Methods 0.000 title claims description 129
- 230000006835 compression Effects 0.000 title claims description 114
- 230000015654 memory Effects 0.000 title claims description 34
- 238000000034 method Methods 0.000 title claims description 29
- 239000000872 buffer Substances 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 10
- 238000011161 development Methods 0.000 claims description 2
- 230000006837 decompression Effects 0.000 description 57
- 238000010586 diagram Methods 0.000 description 29
- 238000012545 processing Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000001419 dependent effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 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
- 230000002085 persistent effect Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004148 unit process Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008685 targeting 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
- 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/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
-
- 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/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
Description
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の群に含まれ、かつ前記所与のハードウェアレーンに割り当てられた入力ワードより古い入力ワードのうち、最も若い入力ワードである、請求項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つ以上のハードウェアレーンのハードウェアレーンごとに、当該ハードウェアレーンに割り当てられた入力ワードと、前記テーブルから読み取られた入力ワードを比較する、請求項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 US10331558B2 (en) | 2017-07-28 | 2017-07-28 | Systems and methods for performing memory compression |
US15/663,115 | 2017-07-28 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020045008A Division JP7005670B2 (ja) | 2017-07-28 | 2020-03-16 | メモリ圧縮を実行するシステム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019029023A JP2019029023A (ja) | 2019-02-21 |
JP6678207B2 true JP6678207B2 (ja) | 2020-04-08 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020045008A Active JP7005670B2 (ja) | 2017-07-28 | 2020-03-16 | メモリ圧縮を実行するシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10331558B2 (ja) |
EP (2) | EP3671471B1 (ja) |
JP (2) | JP6678207B2 (ja) |
KR (2) | KR102155648B1 (ja) |
CN (2) | CN116841920A (ja) |
Families Citing this family (16)
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 |
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 |
US20220129266A1 (en) | 2019-03-15 | 2022-04-28 | Intel Corporation | Graphics processors and graphics processing units having dot product accumulate instruction for hybrid floating point format |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
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 | 深圳市大疆创新科技有限公司 | 数据解压缩的方法、系统、处理器及计算机存储介质 |
US20220197659A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Application programming interface for fine grained low latency decompression within processor core |
US20220197643A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Speculative decompression within processor core caches |
US20220197799A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Instruction and Micro-Architecture Support for Decompression on 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 |
Family Cites Families (28)
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 |
US5729228A (en) * | 1995-07-06 | 1998-03-17 | International Business Machines Corp. | Parallel compression and decompression using a cooperative dictionary |
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 |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
US6822589B1 (en) * | 1999-01-29 | 2004-11-23 | Quickshift, Inc. | System and method for performing scalable embedded parallel data decompression |
US6208273B1 (en) * | 1999-01-29 | 2001-03-27 | Interactive Silicon, Inc. | System and method for performing scalable embedded parallel data compression |
GB0102572D0 (en) * | 2001-02-01 | 2001-03-21 | Btg Int Ltd | Apparatus to provide fast data compression |
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 |
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 |
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 |
CN103891150B (zh) * | 2011-10-01 | 2017-02-15 | 英特尔公司 | 用于字典压缩的系统、方法和设备 |
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 |
US8766827B1 (en) * | 2013-03-15 | 2014-07-01 | Intel Corporation | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and Huffman encoding for deflate compression |
GB2513987B (en) * | 2013-03-15 | 2016-01-06 | Intel Corp | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and huffman encoding for deflate compression |
US9934234B2 (en) * | 2014-08-12 | 2018-04-03 | Tidal Systems, Inc. | Adaptive rate compression hash processor |
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 CN202310872581.7A patent/CN116841920A/zh active Pending
- 2018-07-26 CN CN201810830354.7A patent/CN109308192B/zh active Active
- 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
Also Published As
Publication number | Publication date |
---|---|
EP3435240B1 (en) | 2020-02-19 |
EP3671471B1 (en) | 2022-01-12 |
US10331558B2 (en) | 2019-06-25 |
EP3435240A1 (en) | 2019-01-30 |
US20190294541A1 (en) | 2019-09-26 |
CN116841920A (zh) | 2023-10-03 |
KR102155648B1 (ko) | 2020-09-14 |
KR20200107910A (ko) | 2020-09-16 |
CN109308192A (zh) | 2019-02-05 |
KR102248649B1 (ko) | 2021-05-04 |
KR20190013538A (ko) | 2019-02-11 |
US10769065B2 (en) | 2020-09-08 |
US20190034333A1 (en) | 2019-01-31 |
JP7005670B2 (ja) | 2022-01-21 |
JP2019029023A (ja) | 2019-02-21 |
EP3671471A1 (en) | 2020-06-24 |
CN109308192B (zh) | 2023-07-21 |
JP2020102258A (ja) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6678207B2 (ja) | メモリ圧縮を実行するシステム及び方法 | |
JP4567789B2 (ja) | Tlbロックインジケータ | |
TWI622880B (zh) | 比較及取代動態位址轉譯表項之電腦程式產品、電腦系統及方法 | |
US6963964B2 (en) | Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses | |
US8566607B2 (en) | Cryptography methods and apparatus used with a processor | |
TWI698745B (zh) | 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體 | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
TW201312461A (zh) | 微處理器及縮短尋訪時間之方法 | |
JP2023531650A (ja) | バイナリ変換を実行するためのシステム及び方法 | |
JPH0619793A (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
JP2000276404A (ja) | 仮想記憶装置および仮想記憶方法、並びに記録媒体 | |
TWI522910B (zh) | 微處理器、選擇性解壓縮微程式碼方法、產生選擇性壓縮微程式碼方法、產生描述方法以及電腦程式產品 | |
JP5630568B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
US9886212B2 (en) | Mechanism for copying data in memory | |
CN109564543B (zh) | 用于多线程式模式中的功率降低的方法和装置 | |
JP2024503229A (ja) | アドレス変換サービスバッファ | |
US11500638B1 (en) | Hardware compression and decompression engine | |
US20170315807A1 (en) | Hardware support for dynamic data types and operators | |
JP2005071351A (ja) | プロセッサおよびプロセッサの動作方法 | |
JP3697990B2 (ja) | ベクトル処理装置のオペランドキャッシュ | |
TW202225978A (zh) | 用於具有大的碼覆蓋區的工作負載的動態共享快取劃分 | |
CN116340034A (zh) | 用于压缩操作期间的常量检测的装置和方法 | |
CN115145837A (zh) | 预取数据的方法、装置和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180801 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190520 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190816 |
|
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: 20200114 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20200213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200316 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6678207 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |