JP2017516232A - メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 - Google Patents
メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 Download PDFInfo
- Publication number
- JP2017516232A JP2017516232A JP2016567858A JP2016567858A JP2017516232A JP 2017516232 A JP2017516232 A JP 2017516232A JP 2016567858 A JP2016567858 A JP 2016567858A JP 2016567858 A JP2016567858 A JP 2016567858A JP 2017516232 A JP2017516232 A JP 2017516232A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- compressed
- data
- compression
- controller
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 825
- 238000007906 compression Methods 0.000 title claims abstract description 318
- 230000006835 compression Effects 0.000 title claims abstract description 318
- 238000000034 method Methods 0.000 title claims abstract description 48
- 239000000872 buffer Substances 0.000 claims abstract description 174
- 238000013519 translation Methods 0.000 claims abstract description 19
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 238000013507 mapping Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 2
- 230000001413 cellular effect Effects 0.000 claims 1
- 238000013500 data storage Methods 0.000 abstract description 4
- 238000013144 data compression Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 9
- 108091026890 Coding region Proteins 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 101150047061 tag-72 gene Proteins 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000037452 priming Effects 0.000 description 4
- 238000004513 sizing Methods 0.000 description 4
- 230000006837 decompression Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000000779 depleting effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/04—Addressing variable-length words or parts of words
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- 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/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- 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
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本出願は、その全体が参照により本明細書に組み込まれている、2014年5月21日に出願した「MEMORY CONTROLLERS EMPLOYING MEMORY CAPACITY AND/OR BANDWIDTH COMPRESSION, AND RELATED PROCESSOR-BASED SYSTEMS AND METHODS」と題する米国仮特許出願第62/001,545号の優先権を主張するものである。
10(1) SOC
10(2) SOC
10' SOC
12 CPUベースシステム
12' CPUベースシステム
14(1) CPUブロック
14(N) CPUブロック
16 CPU
16(1) CPU
16(2) CPU
18(1) キャッシュ
18(N) キャッシュ
20 キャッシュ
22 内部システムバス
24 メモリコントローラ
26 周辺機器
28 記憶装置
30 高速周辺機器相互接続(PCI)(PCI-e)インターフェース
32 直接メモリアクセス(DMA)コントローラ
34 IMC
36 圧縮メモリコントローラ
38 システムメモリ
40(1) ダブルデータレート(DDR)ダイナミックランダムアクセスメモリ(DRAM)
40(R) ダブルデータレート(DDR)ダイナミックランダムアクセスメモリ(DRAM)
42 圧縮キャッシュ
44 半導体ダイ
46(1) 半導体ダイ
46(2) 半導体ダイ
48(1) DRAMインターフェース
48(2) DRAMインターフェース
48(P) DRAMインターフェース
50 圧縮コントローラ
52 ローカルメモリ
54 SRAM
55 L4コントローラ
56 内部メモリ
58 内部メモリコントローラ
60 行ベースバッファメモリ容量圧縮方式
62 ビット長プール
62(1) ビット長プール、PBプール
62(2) ビット長プール、PBプール
62(3) PBプール
62(4) PBプール
62(Q) ビット長プール、PBプール
64 フリーノードリスト
64(1) フリーノードリスト
66 マスターディレクトリ
68 トランスレーションルックアサイドバッファ(TLB)
70 タグアレイ
72 タグ
74 TLBエントリ
76 データアレイ
78 アドレス長
80 2ビットの符号化
82 ページベースメモリ容量圧縮方式
84 TLB
86 TLBエントリ
88 タグ
90 タグアレイ
92 データアレイ
96 フリーノードリスト
98(1) DPAフリーリスト
98(2) DPAフリーリスト
98(R) DPAフリーリスト
100(1) フリーDPA
100(2) フリーDPA
100(R) フリーDPA
102 ローカルプルバッファ
104 ヘッドポインタ
106 テールポインタ
108 ローカルプッシュバッファ
110 ハイブリッド行/ページベースバッファメモリ容量圧縮方式
112(1) 物理ブロック
112(2) 物理ブロック
112(3) 物理ブロック
112(4) 物理ブロック
112(Q) 物理ブロック
114 バッファポインタ
114(1) バッファポインタ
114(4) バッファポインタ
114(S) バッファポインタ
116 メモリデータブロック
118 ページ情報
142 キャッシュ
144 圧縮PA(CPA)
146 履歴バッファ
148 CPA履歴バッファ
150 ホストOS
152(1) ゲストOS
152(2) ゲストOS
152(T) ゲストOS
154 メモリコントローラドライバ
156(1) データ圧縮ドライバ(DCD)
156(2) データ圧縮ドライバ(DCD)
156(T) データ圧縮ドライバ(DCD)
158 圧力データ
160 メモリ帯域幅圧縮方式
162 データライン
165 エントリ
166 ECC圧縮インジケータ
168 圧縮インジケータ(CI)キャッシュ
170 キャッシュエントリ
172 キャッシュライン
174 圧縮インジケータ
180 頻出パターン圧縮データ圧縮方式
182 ソースデータフォーマット
184 圧縮データフォーマット
186 プレフィックスコード列
188 頻出パターン符号化表
190 パターン符号化列
192 データサイズ列
194 頻出パターン圧縮データ圧縮方式
196 ソースデータフォーマット
198 圧縮データフォーマット
200 圧縮データフォーマット
202 プレフィックスコード列
204 頻出パターン符号化表
206 パターン符号化列
208 データサイズ列
210 頻出パターン圧縮データ圧縮方式
212 ソースデータフォーマット
214 圧縮データフォーマット
216 圧縮データフォーマット
218 プレフィックスコード列
220 頻出パターン符号化表
222 パターン符号化列
224 データサイズ列
226 頻出パターン圧縮データ圧縮方式
228 ソースデータフォーマット
230 圧縮データフォーマット
232 プレフィックスコード列
234 プレフィックスコード列
236 頻出パターン符号化表
238 パターン符号化列
240 パターン符号化列
242 データサイズ列
244 データサイズ列
246 頻出パターン圧縮データ圧縮方式
248 ソースデータフォーマット
250 圧縮データフォーマット
252 プレフィックスコード列
254 プレフィックスコード列
256 頻出パターン符号化表
258 パターン符号化列
260 パターン符号化列
262 データサイズ列
264 データサイズ列
266 表
268 パターン列
270 長さ列
272 パターン定義列
274 フラグ定義表
276 フラグ列
278 フラグ値列
280 フラグ定義列
282 頻出パターン圧縮データ圧縮方式
284 ソースデータフォーマット
286 圧縮データフォーマット
288 プレフィックスコード列
290 プレフィックスコード列
292 頻出パターン符号化表
294 パターン符号化列
296 パターン符号化列
298 データサイズ列
300 データサイズ列
Claims (30)
- システムメモリにアクセスするように構成されたメモリインターフェースと、
圧縮コントローラとを備え、前記圧縮コントローラが、
システムバスにわたって前記システムメモリ内でアクセスされるべき物理アドレス(PA)を含むメモリアクセス要求を受信することと、
前記システムメモリ内のPAにそれぞれ対応する複数の物理バッファアドレスを含むマスターディレクトリ内のエントリにおける物理バッファアドレスに前記PAをマッピングすることに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスすることとを行うように構成される、圧縮メモリコントローラ。 - 前記圧縮コントローラが、前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに対するオフセットと前記マスターディレクトリ内の前記エントリと関連付けられた長さとに基づいて、前記システムメモリにアクセスするように構成される、請求項1に記載の圧縮メモリコントローラ。
- 前記圧縮コントローラが、書込みデータを含む前記メモリアクセス要求と前記システムメモリ内に書き込まれるべき前記PAを含むメモリ書込み動作とを受信するように構成され、
前記圧縮コントローラが、
前記メモリ書込み動作内で受信された前記書込みデータを圧縮書込みデータに圧縮することと、
前記圧縮書込みデータに基づいて前記メモリ書込み動作に対して前記システムメモリ内の利用可能な物理バッファアドレスを決定することとを行うようにさらに構成され、
前記圧縮メモリコントローラが、前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記決定された利用可能な物理バッファアドレスに基づいて前記システムメモリにアクセスするように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記圧縮コントローラが、前記PAに対応する前記マスターディレクトリの前記エントリにおける前記メモリ書込み動作に対する前記物理バッファアドレスを記憶するために前記マスターディレクトリを更新するようにさらに構成される、請求項3に記載の圧縮メモリコントローラ。
- 前記圧縮メモリコントローラが、前記物理バッファアドレスに対するオフセットと前記マスターディレクトリ内の前記エントリと関連付けられた長さとを記憶するようにさらに構成されることによって、前記マスターディレクトリを更新するように構成される、請求項3に記載の圧縮メモリコントローラ。
- 前記圧縮コントローラが、前記メモリ書込み動作に対する前記書込みデータが固定パターンであるかどうかを決定するようにさらに構成され、
前記メモリ書込み動作に対する前記書込みデータが、前記固定パターンである場合、前記圧縮コントローラが、
前記メモリ書込み動作に対する前記固定パターンを示すために、前記PAに対応する前記マスターディレクトリ内の前記エントリを更新し、かつ
前記システムメモリ内の前記物理バッファアドレスにおける前記メモリ書込み動作に対する前記圧縮書込みデータを書き込まないように構成される、請求項3に記載の圧縮メモリコントローラ。 - 前記マスターディレクトリ内の前記エントリが、前記PAの前記物理バッファアドレスへの前記マッピングに基づいて、前記システムメモリ内の物理バッファプールを示すプールインジケータをさらに含み、
前記圧縮コントローラが、
前記メモリ書込み動作に対する前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定することと、
前記物理バッファアドレスに基づいて前記システムメモリ内の前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記システムメモリ内の前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプールにアクセスすることとを行うように構成される、請求項3に記載の圧縮メモリコントローラ。 - 前記圧縮コントローラが、前記物理バッファアドレスからのオフセットに基づいて前記システムメモリ内の前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記システムメモリ内の前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプールにアクセスするように構成される、請求項7に記載の圧縮メモリコントローラ。
- 前記圧縮コントローラが、前記システムメモリ内の少なくとも1つのフリー物理バッファアドレスを示す前記物理バッファプールに対応するフリーノードリストから、前記メモリ書込み動作に対する前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定するように構成される、請求項7に記載の圧縮メモリコントローラ。
- 前記圧縮コントローラが、前記フリーノードリスト内の利用可能な物理バッファアドレスの数が定義されたしきい値より小さくなるときに、オペレーティングシステム(OS)に知らせるようにさらに構成される、請求項9に記載の圧縮メモリコントローラ。
- 前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定することに応答して、前記圧縮コントローラが、少なくとも1つのフリー物理バッファを、前記フリーノードリストから前記利用可能な物理バッファアドレスに対するローカルプルバッファ内に引き込むように構成される、請求項9に記載の圧縮メモリコントローラ。
- 前記フリーノードリストが、前記システムメモリに記憶される、請求項9に記載の圧縮メモリコントローラ。
- 前記圧縮コントローラが、
前記システムメモリ内で読み取られるべき前記PAを含むメモリ読取り動作を含む前記メモリアクセス要求を受信することと、
圧縮読取りデータを読み取るために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスすることと、
前記圧縮読取りデータを解凍読取りデータに展開することと、
前記メモリ読取り動作に対して前記システムバス上に前記解凍読取りデータを供給することとを行うように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記圧縮コントローラが、前記メモリ読取り動作に対する読取りデータが所定の固定パターンを含むかどうかを決定するようにさらに構成され、
前記メモリ読取り動作に対する前記圧縮読取りデータが前記所定の固定パターンを含む場合、前記圧縮コントローラが、前記圧縮読取りデータを読み取るために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスしないようにさらに構成される、請求項13に記載の圧縮メモリコントローラ。 - 前記圧縮コントローラが、
前記受信されたメモリアクセス要求内の前記受信されたPAを、複数のデータラインから成る前記システムメモリ内のデータラインアドレスを含む前記マスターディレクトリ内の前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記システムメモリ内の前記データラインアドレスにアクセスすることとを行うように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記マスターディレクトリ内の前記エントリが、前記PAの前記物理バッファアドレスへの前記マッピングに基づいて、前記システムメモリ内の複数の異なるサイズの物理バッファプールの中の物理バッファプールを示すプールインジケータをさらに含む、請求項15に記載の圧縮メモリコントローラ。
- 前記メモリアクセス要求が、メモリ書込み動作から成り、
前記圧縮コントローラが、利用可能な物理バッファアドレスに対するメモリ書込み動作の圧縮ラインサイズに基づいて、前記複数の異なるサイズの物理バッファプールの中の前記物理バッファプールを選択するように構成される、請求項16に記載の圧縮メモリコントローラ。 - 前記選択された物理バッファプールが、利用可能な物理バッファアドレスをまったく含まない場合、前記圧縮コントローラが、より大きい物理バッファに割り当てられた別の物理バッファプールから前記物理バッファアドレスを割り振るように割り当てられた前記物理バッファプールを選択するように構成される、請求項17に記載の圧縮メモリコントローラ。
- 前記物理バッファアドレスが前記より大きい物理バッファに割り当てられた前記物理バッファプール内で利用可能でない場合、前記圧縮コントローラが、
前記より大きい物理バッファに割り当てられた前記物理バッファアドレスに対する前記物理バッファプールに対応するフリーノードリストに前記物理バッファアドレスを戻すようにさらに構成される、請求項18に記載の圧縮メモリコントローラ。 - 前記圧縮コントローラが、
前記システムメモリ内の開始位置およびデータページアドレスからの長さに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記マスターディレクトリ内の前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記システムメモリ内の前記開始位置における、前記データページアドレスからの前記長さの圧縮データにアクセスすることとを行うように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記データページアドレスが、データページサイズにそれぞれ割り当てられた複数のデータページの中の前記システムメモリ内の1つのデータページを含む、請求項20に記載の圧縮メモリコントローラ。
- 前記圧縮コントローラが、前記受信されたPAの少なくとも一部に基づいて、前記開始位置および前記長さを、前記マスターディレクトリ内の前記データページアドレスと関連付けられた複数の開始位置および長さから選択するようにさらに構成されることによって、前記受信されたPAを変換するように構成される、請求項20に記載の圧縮メモリコントローラ。
- 前記圧縮コントローラが、
前記受信されたPAに対応するデータページ、前記データページ内の開始データブロック、および前記開始データブロックからのデータブロック長に基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、ブロックアドレスを含む前記物理バッファに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記システムメモリ内の前記開始データブロックにおける、ページバッファ内の前記ブロックアドレスからの前記データブロック長の圧縮データにアクセスすることとを行うように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記圧縮コントローラが、複数の等しいサイズのデータページの中の前記データページ、前記受信されたPAに対応する前記データページ、前記データページ内の開始データブロック、および前記開始データブロックからのデータブロック長に基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記ブロックアドレスを含む前記物理バッファに変換するように構成される、請求項23に記載の圧縮メモリコントローラ。
- タグアレイおよびデータアレイ内の複数のトランスレーションルックアサイドバッファ(TLB)エントリから成るTLBであって、
前記複数のTLBエントリの間の各TLBエントリが、前記PAに対応するデータを圧縮するために、前記PAに対応する前記タグアレイ内のタグと、前記システムメモリへの少なくとも1つの物理バッファアドレスとを含む、前記マスターディレクトリからのエントリを記憶するように構成される、TLBと、
前記圧縮コントローラとをさらに備え、前記圧縮コントローラが、
前記受信されたメモリアクセス要求に対する前記PAが、前記TLB内のTLBエントリ内に含まれるかどうかを決定することと、
前記PAが前記TLB内の前記TLBエントリに含まれる場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記PAを含む前記TLBエントリ内の前記物理バッファアドレスとして変換することと、
前記PAが前記TLB内の前記TLBエントリに含まれない場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記マスターディレクトリ内の前記PAに対応する前記エントリにおける前記物理バッファアドレスとして変換することとを行うように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記PAが前記TLB内の前記TLBエントリ内に含まれない場合、前記圧縮コントローラが、
前記TLB内の前記TLBエントリを立ち退かせることと、
前記受信されたメモリアクセス要求に対する前記PAに対応する前記マスターディレクトリに前記エントリを記憶することとを行わせるようにさらに構成される、請求項25に記載の圧縮メモリコントローラ。 - 集積回路(IC)に組み込まれる、請求項1に記載の圧縮メモリコントローラ。
- セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなるグループから選択されるデバイスに組み込まれる、請求項1に記載の圧縮メモリコントローラ。
- 中央処理装置(CPU)ベースシステム内のシステムメモリへのメモリアクセス要求に対するデータを圧縮する方法であって、
システムバスにわたってシステムメモリ内でアクセスされるべき物理アドレス(PA)を含むメモリアクセス要求を受信するステップと、
前記システムメモリ内の前記PAにそれぞれ対応する複数の物理バッファアドレスを含むマスターディレクトリ内のエントリにおける物理バッファアドレスに前記PAをマッピングすることに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを前記物理バッファアドレスに変換するステップと、
前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスするステップとを含む、方法。 - システムバスと、
前記システムバスに通信可能に結合された少なくとも1つのCPUコアと、
前記システムバスに通信可能に結合された圧縮メモリコントローラと、
前記システムバスに通信可能に結合され、メモリデータを記憶するように構成されたシステムメモリと、
タグアレイおよびデータアレイ内の複数のトランスレーションルックアサイドバッファ(TLB)エントリから成るTLBであって、
前記複数のTLBエントリの間の各TLBエントリが、物理アドレス(PA)に対応するデータを圧縮するために、前記PAに対応する前記タグアレイ内のタグと、前記システムメモリへの少なくとも1つの物理バッファアドレスとを含む、マスターディレクトリからのエントリを記憶するように構成される、TLBと、
前記システムバスに通信可能に結合され、前記PAに対応する解凍メモリデータを記憶するようにそれぞれ構成された複数のキャッシュエントリを含む、キャッシュとを備え、
前記キャッシュが、
前記少なくとも1つのCPUコアおよび前記システムバス上の前記圧縮メモリコントローラからのメモリアクセス要求を受信することと、
前記PAが前記キャッシュ内のキャッシュエントリに含まれる場合、前記受信されたメモリアクセス要求の前記PAに対応する前記メモリデータを供給することとを行うように構成され、
前記圧縮メモリコントローラが、前記システムバスにわたって前記システムメモリ内でアクセスされるべき前記PAを含む前記メモリアクセス要求を受信するように構成され、
前記メモリアクセス要求の前記PAが、前記キャッシュ内の前記キャッシュエントリに含まれない場合、前記圧縮メモリコントローラが、
前記受信されたメモリアクセス要求に対する前記PAが、前記TLB内のTLBエントリ内に含まれるかどうかを決定することと、
前記PAが前記TLB内の前記TLBエントリに含まれる場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記PAを含む前記TLBエントリ内の前記物理バッファアドレスとして変換することと、
前記PAが前記TLB内の前記TLBエントリに含まれない場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記マスターディレクトリ内の前記PAに対応する前記エントリにおける前記物理バッファアドレスとして変換することと、
前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスすることとを行うようにさらに構成される、中央処理装置(CPU)システム。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462001545P | 2014-05-21 | 2014-05-21 | |
US62/001,545 | 2014-05-21 | ||
US201462092409P | 2014-12-16 | 2014-12-16 | |
US201462092326P | 2014-12-16 | 2014-12-16 | |
US62/092,409 | 2014-12-16 | ||
US62/092,326 | 2014-12-16 | ||
US14/716,001 | 2015-05-19 | ||
US14/716,001 US10838862B2 (en) | 2014-05-21 | 2015-05-19 | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
PCT/US2015/031717 WO2015179483A1 (en) | 2014-05-21 | 2015-05-20 | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017516232A true JP2017516232A (ja) | 2017-06-15 |
JP2017516232A5 JP2017516232A5 (ja) | 2018-06-14 |
JP6505132B2 JP6505132B2 (ja) | 2019-04-24 |
Family
ID=53276320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016567858A Active JP6505132B2 (ja) | 2014-05-21 | 2015-05-20 | メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10838862B2 (ja) |
EP (1) | EP3146433A1 (ja) |
JP (1) | JP6505132B2 (ja) |
KR (1) | KR20170008233A (ja) |
CN (1) | CN106462494B (ja) |
WO (1) | WO2015179483A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024054306A (ja) * | 2019-07-02 | 2024-04-16 | マイクロソフト テクノロジー ライセンシング,エルエルシー | ハードウェアベースのメモリ圧縮 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9740621B2 (en) | 2014-05-21 | 2017-08-22 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
US10503661B2 (en) | 2014-05-21 | 2019-12-10 | Qualcomm Incorporated | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
US9703722B2 (en) * | 2014-11-14 | 2017-07-11 | Cavium, Inc. | Method and system for compressing data for a translation look aside buffer (TLB) |
US10884945B2 (en) * | 2015-06-30 | 2021-01-05 | International Business Machines Corporation | Memory state indicator check operations |
US20170161203A1 (en) * | 2015-12-03 | 2017-06-08 | Intel Corporation | Increased memory capacity |
JP6605323B2 (ja) * | 2015-12-24 | 2019-11-13 | ルネサスエレクトロニクス株式会社 | 半導体装置、データ処理システム及び半導体装置の制御方法 |
US10474385B2 (en) * | 2016-02-23 | 2019-11-12 | Google Llc | Managing memory fragmentation in hardware-assisted data compression |
US10191850B2 (en) | 2016-03-31 | 2019-01-29 | Qualcomm Incorporated | Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system |
US10067706B2 (en) * | 2016-03-31 | 2018-09-04 | Qualcomm Incorporated | Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system |
US20180060235A1 (en) * | 2016-08-30 | 2018-03-01 | Intel Corporation | Non-volatile memory compression devices and associated methods and systems |
US10191682B2 (en) * | 2016-09-08 | 2019-01-29 | Qualcomm Incorporated | Providing efficient lossless compression for small data blocks in processor-based systems |
US10236917B2 (en) * | 2016-09-15 | 2019-03-19 | Qualcomm Incorporated | Providing memory bandwidth compression in chipkill-correct memory architectures |
US10176090B2 (en) | 2016-09-15 | 2019-01-08 | Qualcomm Incorporated | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems |
US10055158B2 (en) * | 2016-09-22 | 2018-08-21 | Qualcomm Incorporated | Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems |
US10061698B2 (en) * | 2017-01-31 | 2018-08-28 | Qualcomm Incorporated | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur |
US10198362B2 (en) | 2017-02-07 | 2019-02-05 | Qualcomm Incorporated | Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems |
CN106980541B (zh) * | 2017-03-10 | 2019-11-19 | 浙江大学 | 一种大页内存压缩回收系统及方法 |
US10169246B2 (en) * | 2017-05-11 | 2019-01-01 | Qualcomm Incorporated | Reducing metadata size in compressed memory systems of processor-based systems |
CN110609708B (zh) * | 2018-06-15 | 2023-10-27 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、设备和计算机可读介质 |
US20210256427A1 (en) * | 2018-06-21 | 2021-08-19 | Google Llc | Automated Computer Operating System Optimization |
US20190243780A1 (en) * | 2019-04-10 | 2019-08-08 | Vinodh Gopal | Scalable application-customized memory compression |
CN110399314B (zh) * | 2019-06-25 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种cpu、一种电子设备以及一种cpu缓存控制方法 |
CN113448891B (zh) * | 2020-03-25 | 2023-07-21 | 澜起科技股份有限公司 | 存储器控制器以及用于监测对存储模块的访问的方法 |
CN111597128B (zh) * | 2020-05-21 | 2023-07-14 | 北京泽石科技有限公司 | 固态非易失存储设备中数据的管理方法以及管理装置 |
WO2022027499A1 (en) | 2020-08-06 | 2022-02-10 | Alibaba Group Holding Limited | Memory controller |
US11875036B2 (en) * | 2021-01-13 | 2024-01-16 | Samsung Electronics Co., Ltd. | Computing system including host and storage system and having increased write performance |
CN115525417A (zh) * | 2021-06-24 | 2022-12-27 | 北京图森智途科技有限公司 | 数据通信方法、通信系统及计算机可读存储介质 |
WO2023055459A1 (en) * | 2021-09-29 | 2023-04-06 | Micron Technology, Inc. | Early detection of compression status using inline metadata |
US11868244B2 (en) * | 2022-01-10 | 2024-01-09 | Qualcomm Incorporated | Priority-based cache-line fitting in compressed memory systems of processor-based systems |
US11829292B1 (en) | 2022-01-10 | 2023-11-28 | Qualcomm Incorporated | Priority-based cache-line fitting in compressed memory systems of processor-based systems |
US20240036726A1 (en) * | 2022-07-27 | 2024-02-01 | Rambus Inc. | Memory compression |
US20250165143A1 (en) * | 2023-11-17 | 2025-05-22 | Qualcomm Incorporated | System and method for reducing memory footprint for data stored in a compressed memory subsystem |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000227874A (ja) * | 1999-01-12 | 2000-08-15 | Internatl Business Mach Corp <Ibm> | コンピュ―タ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置 |
US6353871B1 (en) * | 1999-02-22 | 2002-03-05 | International Business Machines Corporation | Directory cache for indirectly addressed main memory |
US20030188110A1 (en) * | 2002-03-27 | 2003-10-02 | International Business Machines Corporation | Method for performing compressed I/O with memory expansion technology |
US20080059728A1 (en) * | 2006-09-06 | 2008-03-06 | David Michael Daly | Systems and methods for masking latency of memory reorganization work in a compressed memory system |
WO2013192548A1 (en) * | 2012-06-22 | 2013-12-27 | Micron Technology, Inc. | Data compression and management |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2831602B2 (ja) * | 1995-01-13 | 1998-12-02 | 富士通株式会社 | 圧縮データ管理装置及び圧縮データ管理方法 |
US5696927A (en) | 1995-12-21 | 1997-12-09 | Advanced Micro Devices, Inc. | Memory paging system and method including compressed page mapping hierarchy |
JPH09259040A (ja) | 1996-03-25 | 1997-10-03 | Sharp Corp | キャッシュメモリ装置 |
US6212603B1 (en) | 1998-04-09 | 2001-04-03 | Institute For The Development Of Emerging Architectures, L.L.C. | Processor with apparatus for tracking prefetch and demand fetch instructions serviced by cache memory |
US6523102B1 (en) | 2000-04-14 | 2003-02-18 | Interactive Silicon, Inc. | Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules |
US7047382B2 (en) | 2000-11-29 | 2006-05-16 | Quickshift, Inc. | System and method for managing compression and decompression and decompression of system memory in a computer system |
US6779049B2 (en) * | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US6735673B2 (en) | 2002-01-10 | 2004-05-11 | Hewlett-Packard Development Company, L.P. | Apparatus and methods for cache line compression |
US6640283B2 (en) | 2002-01-16 | 2003-10-28 | Hewlett-Packard Development Company, L.P. | Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size |
US6795897B2 (en) | 2002-05-15 | 2004-09-21 | International Business Machines Corporation | Selective memory controller access path for directory caching |
US6981119B1 (en) | 2002-08-29 | 2005-12-27 | Advanced Micro Devices, Inc. | System and method for storing performance-enhancing data in memory space freed by data compression |
JP3808058B2 (ja) | 2003-05-27 | 2006-08-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 複数のホストが圧縮データを記憶するメモリ・セクタの集合を共用できるようにするための装置 |
US7512750B2 (en) | 2003-12-31 | 2009-03-31 | Intel Corporation | Processor and memory controller capable of use in computing system that employs compressed cache lines' worth of information |
US7702964B2 (en) | 2004-05-11 | 2010-04-20 | Qualcomm Incorporated | Compression of data traces for an integrated circuit with multiple memories |
US7225297B2 (en) | 2004-05-28 | 2007-05-29 | International Business Machines Corporation | Compressed cache lines incorporating embedded prefetch history data |
CN100414519C (zh) * | 2004-11-24 | 2008-08-27 | 中国科学院计算技术研究所 | 一种从虚拟地址向物理地址变换的方法及其装置 |
US20060143396A1 (en) | 2004-12-29 | 2006-06-29 | Mason Cabot | Method for programmer-controlled cache line eviction policy |
US7636813B2 (en) | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7533497B2 (en) * | 2006-07-10 | 2009-05-19 | Dallaire Industries Ltd. | Snubber system for windows |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
EP2259251A4 (en) | 2008-03-07 | 2011-07-27 | Victor Company Of Japan | SERVER DEVICE, TERMINAL, PLAYBACK DEVICE |
US8595437B1 (en) | 2008-11-21 | 2013-11-26 | Nvidia Corporation | Compression status bit cache with deterministic isochronous latency |
US8700862B2 (en) | 2008-12-03 | 2014-04-15 | Nvidia Corporation | Compression status bit cache and backing store |
US7987162B2 (en) | 2009-03-06 | 2011-07-26 | Bluearc Uk Limited | Data compression in a file storage system |
US8341501B2 (en) | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
TWI435215B (zh) | 2009-08-26 | 2014-04-21 | Phison Electronics Corp | 下達讀取指令與資料讀取方法、控制器與儲存系統 |
US8341380B2 (en) | 2009-09-22 | 2012-12-25 | Nvidia Corporation | Efficient memory translator with variable size cache line coverage |
US8627041B2 (en) | 2009-10-09 | 2014-01-07 | Nvidia Corporation | Efficient line and page organization for compression status bit caching |
US8838853B2 (en) * | 2010-01-18 | 2014-09-16 | Marvell International Ltd. | Access buffer |
JP2013530448A (ja) | 2010-05-05 | 2013-07-25 | マーベル ワールド トレード リミテッド | キャッシュストレージアダプタアーキテクチャ |
CH703561A1 (de) * | 2010-08-06 | 2012-02-15 | Ferag Ag | Vorrichtung zur Ausrichtung eines flächigen Produktes. |
US8880847B2 (en) | 2010-09-28 | 2014-11-04 | Texas Instruments Incorporated | Multistream prefetch buffer |
US8683135B2 (en) | 2010-10-31 | 2014-03-25 | Apple Inc. | Prefetch instruction that ignores a cache hit |
US8356153B2 (en) * | 2010-11-19 | 2013-01-15 | International Business Machines Corporation | Adaptive wear leveling via monitoring the properties of memory reference stream |
US8539163B1 (en) | 2010-12-17 | 2013-09-17 | Amazon Technologies, Inc. | Speculative reads |
US10031850B2 (en) | 2011-06-07 | 2018-07-24 | Sandisk Technologies Llc | System and method to buffer data |
WO2012168960A1 (en) | 2011-06-07 | 2012-12-13 | Hitachi, Ltd. | Semiconductor storage apparatus and method of controlling semiconductor storage apparatus |
US9164676B2 (en) | 2011-11-30 | 2015-10-20 | International Business Machines Corporation | Storing multi-stream non-linear access patterns in a flash based file-system |
KR101888074B1 (ko) | 2012-01-09 | 2018-08-13 | 삼성전자주식회사 | 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법 |
US8751830B2 (en) | 2012-01-23 | 2014-06-10 | International Business Machines Corporation | Memory address translation-based data encryption/compression |
FR2992453B1 (fr) * | 2012-06-22 | 2014-07-04 | Ldl Technology | Dispositif de communication d'un systeme de surveillance des roues d'un vehicule et procede de communication |
US9003123B2 (en) | 2012-06-26 | 2015-04-07 | Arm Limited | Data processing apparatus and method for reducing storage requirements for temporary storage of data |
US8830716B2 (en) | 2012-09-29 | 2014-09-09 | Intel Corporation | Intelligent far memory bandwith scaling |
WO2014142337A1 (ja) | 2013-03-15 | 2014-09-18 | 日本電気株式会社 | ストレージ装置と方法及びプログラム |
CN104133780B (zh) | 2013-05-02 | 2017-04-05 | 华为技术有限公司 | 一种跨页预取方法、装置及系统 |
CN104424117B (zh) | 2013-08-20 | 2017-09-05 | 华为技术有限公司 | 内存物理地址查询方法和装置 |
US10817178B2 (en) * | 2013-10-31 | 2020-10-27 | Hewlett Packard Enterprise Development Lp | Compressing and compacting memory on a memory device wherein compressed memory pages are organized by size |
CN104866497B (zh) | 2014-02-24 | 2018-06-15 | 华为技术有限公司 | 分布式文件系统列式存储的元数据更新方法、装置、主机 |
US9740621B2 (en) | 2014-05-21 | 2017-08-22 | Qualcomm Incorporated | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods |
US10503661B2 (en) | 2014-05-21 | 2019-12-10 | Qualcomm Incorporated | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9639472B2 (en) | 2014-07-15 | 2017-05-02 | International Business Machines Corporation | Prefetch list management in a computer system |
US20160025310A1 (en) * | 2014-07-25 | 2016-01-28 | David Gurrola | Accessory Clip System |
US9658963B2 (en) | 2014-12-23 | 2017-05-23 | Intel Corporation | Speculative reads in buffered memory |
US9569357B1 (en) | 2015-01-08 | 2017-02-14 | Pure Storage, Inc. | Managing compressed data in a storage system |
KR20160104387A (ko) | 2015-02-26 | 2016-09-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10303622B2 (en) | 2015-03-06 | 2019-05-28 | Hewlett Packard Enterprise Development Lp | Data write to subset of memory devices |
JP2017072981A (ja) | 2015-10-07 | 2017-04-13 | 富士通株式会社 | 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム |
US10282808B2 (en) | 2016-05-27 | 2019-05-07 | Intel Corporation | Hierarchical lossless compression and null data support |
-
2015
- 2015-05-19 US US14/716,001 patent/US10838862B2/en active Active
- 2015-05-20 WO PCT/US2015/031717 patent/WO2015179483A1/en active Application Filing
- 2015-05-20 EP EP15726485.4A patent/EP3146433A1/en not_active Withdrawn
- 2015-05-20 JP JP2016567858A patent/JP6505132B2/ja active Active
- 2015-05-20 CN CN201580026204.5A patent/CN106462494B/zh active Active
- 2015-05-20 KR KR1020167032264A patent/KR20170008233A/ko not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000227874A (ja) * | 1999-01-12 | 2000-08-15 | Internatl Business Mach Corp <Ibm> | コンピュ―タ・システムにおいてディレクトリ構造を含むメイン・メモリの内容にアドレスするための方法および装置 |
US6353871B1 (en) * | 1999-02-22 | 2002-03-05 | International Business Machines Corporation | Directory cache for indirectly addressed main memory |
US20030188110A1 (en) * | 2002-03-27 | 2003-10-02 | International Business Machines Corporation | Method for performing compressed I/O with memory expansion technology |
US20080059728A1 (en) * | 2006-09-06 | 2008-03-06 | David Michael Daly | Systems and methods for masking latency of memory reorganization work in a compressed memory system |
WO2013192548A1 (en) * | 2012-06-22 | 2013-12-27 | Micron Technology, Inc. | Data compression and management |
JP2015525423A (ja) * | 2012-06-22 | 2015-09-03 | マイクロン テクノロジー, インク. | データ圧縮および管理 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024054306A (ja) * | 2019-07-02 | 2024-04-16 | マイクロソフト テクノロジー ライセンシング,エルエルシー | ハードウェアベースのメモリ圧縮 |
Also Published As
Publication number | Publication date |
---|---|
CN106462494A (zh) | 2017-02-22 |
US20150339228A1 (en) | 2015-11-26 |
KR20170008233A (ko) | 2017-01-23 |
JP6505132B2 (ja) | 2019-04-24 |
US10838862B2 (en) | 2020-11-17 |
EP3146433A1 (en) | 2017-03-29 |
CN106462494B (zh) | 2019-07-30 |
WO2015179483A1 (en) | 2015-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6505132B2 (ja) | メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 | |
US9740621B2 (en) | Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods | |
JP6599898B2 (ja) | 中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 | |
US8392658B2 (en) | Cache implementing multiple replacement policies | |
KR101379596B1 (ko) | Tlb 프리페칭 | |
US9158685B2 (en) | System cache with cache hint control | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
JP7377952B2 (ja) | 圧縮キャッシュに対するフレキシブルな辞書共有 | |
CN112540939A (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
CN112631962A (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
US10198362B2 (en) | Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems | |
US11321235B2 (en) | Cache memory device, system including the same, and method of operating the same | |
CN108694133B (zh) | 用于即时高速缓存关联性的装置、方法和系统 | |
US20160224241A1 (en) | PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM | |
KR20210037216A (ko) | 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 | |
US9934150B1 (en) | Data caching circuit and method | |
US20050071566A1 (en) | Mechanism to increase data compression in a cache | |
US10565111B2 (en) | Processor | |
US10067706B2 (en) | Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180426 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180426 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190213 |
|
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: 20190225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190326 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6505132 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |