JP6599898B2 - 中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 - Google Patents
中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 Download PDFInfo
- Publication number
- JP6599898B2 JP6599898B2 JP2016568010A JP2016568010A JP6599898B2 JP 6599898 B2 JP6599898 B2 JP 6599898B2 JP 2016568010 A JP2016568010 A JP 2016568010A JP 2016568010 A JP2016568010 A JP 2016568010A JP 6599898 B2 JP6599898 B2 JP 6599898B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- physical address
- cmc
- read
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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/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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1004—Defragmentation
-
- 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
- G06F2212/1024—Latency reduction
-
- 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/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
- G06F2212/2532—Centralized memory comprising a plurality of modules
-
- 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/622—State-only directory, i.e. not recording identity of sharing or owning nodes
-
- 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 Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Description
本出願は、その全体が参照により本明細書に組み込まれている、2014年5月21日に出願した、「MEMORY CONTROLLERS EMPLOYING MEMORY CAPACITY AND/OR BANDWIDTH COMPRESSION, AND RELATED PROCESSOR-BASED SYSTEMS AND METHODS」と題する、米国仮特許出願第62/001,545号の優先権を主張するものである。
本開示の上記の説明は、当業者が本開示を製作または使用することを可能にするために提供される。本開示に対する様々な修正は、当業者には容易に明らかになり、本明細書で定義された一般的な原理は、本開示の要旨または範囲から逸脱することなく、他の変形例に適用され得る。したがって、本開示は、本明細書で説明する例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
10" SoC
12' CPU搭載システム
14(1)〜14(N) CPUブロック
16(1)、16(2) CPU
18(1)〜18(N) 共有L2キャッシュ
20 共有L3キャッシュ
22 内部システムバス
24 メモリコントローラ
26 周辺機器
28 ストレージ
30 エクスプレス周辺機器構成要素相互接続(PCI)(PCI-e)インターフェース
32 ダイレクトメモリアクセス(DMA)コントローラ
34 統合メモリコントローラ(IMC)
36 CMC
38 システムメモリ
40(1)〜40(R) 二重データレート(DDR)ダイナミックランダムアクセスメモリ(DRAM)
44 半導体ダイ
46(1)、46(2) 半導体ダイ
48(1)〜48(P) メモリインターフェース(MEM I/F)
50 圧縮コントローラ
52 ローカルメモリ
54 スタティックランダムアクセスメモリ(SRAM)
55 L4コントローラ
56 内部メモリ
58 内部メモリコントローラ
60 メモリ帯域幅圧縮機構
62 メモリライン
64 CI
66 マスタディレクトリ
68 エントリ
70 CIキャッシュ
72 キャッシュエントリ
74 キャッシュライン
76 CI
78 L4キャッシュ
80(0)〜80(X) メモリライン
82(0)〜82(Z) メモリブロック
84(0)〜84(Z) メモリブロック
86(0)〜86(Z) ECCビット
88(0)〜88(Z) ECCビット
90(0)〜90(Z) CI
92(0)〜92(Z) CI
94(0)〜94(Y) マスタディレクトリメモリブロック
96(0)〜96(W) CI
98(0)〜98(W) CI
100(0)〜100(W) CI
102 メモリ読出し要求
104 物理アドレス
106 矢印
108 矢印
110 矢印
112 破線の矢印
114 メモリ書込み要求
116 矢印
118 書込みデータ
120 CI
122 矢印
124 矢印
126 矢印
158(0)〜158(T) CIキャッシュエントリ
160(0)〜160(W) キャッシュされたCI
162(0)〜162(W) キャッシュされたCI
164(0)〜164(W) キャッシュされたCI
166 矢印
168 矢印
170 破線の矢印
172 矢印
174 早期メモリ読出し要求
176 矢印
178 矢印
180 矢印
182 矢印
184 矢印
186 矢印
246 頻出パターン圧縮データ圧縮機構
248 ソースデータフォーマット
250 圧縮データフォーマット
252 プリフィックスコード列
254 頻出パターン符号化テーブル
256 パターン符号化列
258 データサイズ列
260 32ビット頻出パターン圧縮データ圧縮機構
262 ソースデータフォーマット
264 圧縮データフォーマット
266 新しい圧縮データフォーマット
268 プリフィックスコード列
270 頻出パターン符号化テーブル
272 パターン符号化列
274 データサイズ列
276 32ビット頻出パターン圧縮データ圧縮機構
278 ソースデータフォーマット
280 圧縮データフォーマット
282 新しい圧縮データフォーマット
284 プリフィックスコード列
286 頻出パターン符号化テーブル
288 パターン符号化列
290 データサイズ列
292 64ビット頻出パターン圧縮データ圧縮機構
294 ソースデータフォーマット
296 新しい圧縮データフォーマット
298 プリフィックスコード列
300 プリフィックスコード列
302 頻出パターン符号化テーブル
304 パターン符号化列
306 パターン符号化列
308 データサイズ列
310 データサイズ列
312 64ビット頻出パターン圧縮データ圧縮機構
314 ソースデータフォーマット
316 新しい圧縮データフォーマット
318 プリフィックスコード列
320 プリフィックスコード列
322 頻出パターン符号化テーブル
324 パターン符号化列
326 パターン符号化列
328 データサイズ列
330 データサイズ列
332 テーブル
334 パターン列
336 長さ列
338 パターン定義列
340 フラグ定義テーブル
342 フラグ列
344 フラグ値列
346 フラグ定義列
348 64ビット頻出パターン圧縮データ圧縮機構
350 ソースデータフォーマット
352 新しい圧縮データフォーマット
354 プリフィックスコード列
356 プリフィックスコード列
358 頻出パターン符号化テーブル
360 パターン符号化列
362 パターン符号化列
364 データサイズ列
366 データサイズ列
368 プロセッサ搭載システム
370 CPU
372 プロセッサ
374 キャッシュメモリ
376 システムバス
378 メモリコントローラ
380 メモリシステム
382 入力デバイス
384 出力デバイス
386 ネットワークインターフェースデバイス
388 ディスプレイコントローラ
390 ネットワーク
392(0)〜392(N) メモリユニット
394 ディスプレイ
396 ビデオプロセッサ
Claims (12)
- システムバスを介してシステムメモリにアクセスするように構成されたメモリインターフェースと、
前記システムメモリ内のマスタディレクトリの以前に読み出されたマスタディレクトリメモリブロックを記憶するように各々が構成された複数のCIキャッシュエントリを備える圧縮インジケータ(CI)キャッシュと
を備える圧縮メモリコントローラであって、
前記システムメモリ内のメモリライン内のアクセスされるべきメモリブロックの物理アドレスを備えるメモリ読出し要求を受信し、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応するかどうかを決定し、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応しないことを決定することに応答して、
前記マスタディレクトリから前記物理アドレスに対応するCIを含むマスタディレクトリメモリブロックを読み出し、
前記CIキャッシュのCIキャッシュエントリに前記マスタディレクトリメモリブロックを書き込み、
前記CIキャッシュの前記CIキャッシュエントリから前記CIを読出し、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応することを決定することに応答して、前記CIキャッシュの前記CIキャッシュエントリから前記CIを読み出し、
前記CIに基づいて、前記メモリ読出し要求のために読み出す前記システムメモリ内の前記メモリライン内のメモリブロックの数を決定し、
前記CIが前記マスタディレクトリから読み出されるべきであることを確率的に決定することに応答して、前記物理アドレスにおいて開始する前記システムメモリ内の前記メモリライン内の前記決定された数のメモリブロックを読み出すように構成され、
前記CIが前記マスタディレクトリから読み出されるべきではないことを確率的に決定することに応答して、前記メモリブロックに関連付けられた1つまたは複数の誤り訂正コード(ECC)ビットから前記CIを読み出すようさらに構成された、圧縮メモリコントローラ。 - 前記CIキャッシュの前記CIキャッシュエントリに前記マスタディレクトリメモリブロックを書き込む前に、
前記CIキャッシュの現在のCIキャッシュエントリが追い出されるべきであるかどうかを決定し、
現在のCIキャッシュエントリが追い出されるべきであることを決定することに応答して、
前記現在のCIキャッシュエントリが修正されているかどうかを決定し、
前記現在のCIキャッシュエントリが修正されていることを決定することに応答して、前記マスタディレクトリに前記現在のCIキャッシュエントリを書き込むようにさらに構成された、請求項1に記載の圧縮メモリコントローラ。 - 前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちの前記CIキャッシュエントリに対応するかどうかを決定することに並行して、前記システムメモリに早期メモリ読出し要求を送信するようにさらに構成され、
前記圧縮メモリコントローラが、前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちの前記CIキャッシュエントリに対応することを決定することに応答して、前記CIに基づいて前記早期メモリ読出し要求を修正するように構成されていることによって、前記決定された数のメモリブロックを読み出すように構成された、請求項1に記載の圧縮メモリコントローラ。 - 前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちの前記CIキャッシュエントリに対応するかどうかを決定することに並行して、レベル4(L4)キャッシュ上のキャッシュ読出し動作を実行するようにさらに構成された、請求項1に記載の圧縮メモリコントローラ。
- 前記CIによって示された圧縮パターンを決定するように構成されていることによって、前記CIに基づいて、前記メモリ読出し要求のために読み出す前記システムメモリ内の前記メモリライン内のメモリブロックの前記数を決定するように構成された、請求項1に記載の圧縮メモリコントローラ。
- 前記CIが、ゼロのメモリブロックが読み出されるべきであることを示すゼロラインインジケータを備えることを決定するように構成されていることによって、前記CIによって示される前記圧縮パターンを決定するように構成された、請求項5に記載の圧縮メモリコントローラ。
- システムバスを介してシステムメモリにアクセスするように構成されたメモリインターフェースと、
前記システムメモリ内のマスタディレクトリの以前に読み出されたマスタディレクトリメモリブロックを記憶するように各々が構成された複数のCIキャッシュエントリを備える圧縮インジケータ(CI)キャッシュと
を備える圧縮メモリコントローラであって、
書込みデータと、前記システムメモリ内のメモリライン内の書き込まれるべきメモリブロックの物理アドレスとを備えるメモリ書込み要求を受信し、
前記書込みデータのための圧縮パターンを決定し、
前記圧縮パターンに基づいて前記書込みデータのためのCIを生成し、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応するかどうかを決定し、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応しないことを決定することに応答して、
前記マスタディレクトリ内の前記物理アドレスに対応する記憶されたCIを、前記生成されたCIで更新し、
前記CIキャッシュのCIキャッシュエントリに前記記憶されたCIを書き込み、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応することを決定することに応答して、
前記CIキャッシュの前記CIキャッシュエントリを前記生成されたCIで更新し、
前記生成されたCIに基づいて、前記システムメモリ内の前記メモリライン内の1つまたは複数のメモリブロックに前記書込みデータを書き込み、
前記システムメモリ内の前記メモリライン内の前記1つまたは複数のメモリブロックの各々の1つまたは複数の誤り訂正コード(ECC)ビット内に前記生成されたCIを書き込むように構成された、圧縮メモリコントローラ。 - 前記CIが前記マスタディレクトリ内で更新されるべきであることを確率的に決定することに応答して、前記記憶されたCIを更新するように構成された、請求項7に記載の圧縮メモリコントローラ。
- 前記マスタディレクトリが更新されるべきであることを確率的に決定することにさらに応答して、前記記憶されたCIを更新し、前記CIキャッシュの前記CIキャッシュエントリに前記記憶されたCIを書き込むように構成された、請求項7に記載の圧縮メモリコントローラ。
- 前記CIキャッシュの前記CIキャッシュエントリに前記記憶されたCIを書き込む前に、
前記CIキャッシュの現在のCIキャッシュエントリが追い出されるべきかどうかを決定し、
現在のCIキャッシュエントリが追い出されるべきであると決定することに応答して、
前記現在のCIキャッシュエントリが修正されているかどうかを決定し、
前記現在のCIキャッシュエントリが修正されていることを決定することに応答して、前記マスタディレクトリに前記CIキャッシュエントリを書き込むようにさらに構成された、請求項7に記載の圧縮メモリコントローラ。 - メモリ読出し要求のためのメモリ帯域幅の圧縮を提供するための方法であって、
圧縮メモリコントローラによって、システムバスを介して、システムメモリ内のメモリライン内のアクセスされるべきメモリブロックの物理アドレスを備えるメモリ読出し要求を受信するステップと、
前記物理アドレスが圧縮インジケータ(CI)キャッシュの複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応するかどうかを決定するステップと、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応しないことを決定することに応答して、
前記システムメモリ内のマスタディレクトリから前記物理アドレスに対応する圧縮インジケータ(CI)を含むマスタディレクトリメモリブロックを読み出すステップと、
前記CIキャッシュのCIキャッシュエントリに前記マスタディレクトリメモリブロックを書き込むステップと、
前記CIキャッシュの前記CIキャッシュエントリから前記CIを読み出すステップと、
前記物理アドレスが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリに対応することを決定することに応答して、
前記CIキャッシュの前記CIキャッシュエントリから前記CIを読み出すステップと、
前記CIに基づいて、前記メモリ読出し要求のために読み出す前記システムメモリ内の前記メモリライン内のメモリブロックの数を決定するステップと、
前記CIが前記マスタディレクトリから読み出されるべきであることを確率的に決定することに応答して、前記物理アドレスにおいて開始する前記システムメモリ内の前記メモリライン内の前記決定された数のメモリブロックを読み出すステップと、
前記CIが前記マスタディレクトリから読み出されるべきではないことを確率的に決定することに応答して、前記メモリブロックに関連付けられた1つまたは複数の誤り訂正コード(ECC)ビットから前記CIを読み出すステップと、
を備える方法。 - メモリ書込み要求のためのメモリ帯域幅の圧縮を提供するための方法であって、
圧縮メモリコントローラによって、システムバスを介して、書込みデータと、システムメモリ内のメモリライン内の書き込まれるべきメモリブロックの物理アドレスとを備えるメモリ書込み要求を受信するステップと、
前記書込みデータのための圧縮パターンを決定するステップと、
前記圧縮パターンに基づいて前記書込みデータのための圧縮インジケータ(CI)を生成するステップと、
前記物理アドレスに対応するCIがCIキャッシュの複数のCIキャッシュエントリのうちのCIキャッシュエントリ内に存在するかどうかを決定するステップと、
前記物理アドレスに対応するCIが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリ内に存在しないことを決定することに応答して、
マスタディレクトリ内の前記物理アドレスに対応する記憶されたCIを前記生成されたCIで更新するステップと、
前記CIキャッシュのCIキャッシュエントリに前記記憶されたCIを書き込むステップと、
前記物理アドレスに対応するCIが前記CIキャッシュの前記複数のCIキャッシュエントリのうちのCIキャッシュエントリ内に存在することを決定することに応答して、
前記CIキャッシュの前記CIキャッシュエントリを前記生成されたCIで更新するステップと、
前記生成されたCIに基づいて、前記システムメモリ内の前記メモリライン内の1つまたは複数のメモリブロックに前記書込みデータを書き込むステップと、
前記システムメモリ内の前記メモリライン内の前記1つまたは複数のメモリブロックの各々の1つまたは複数の誤り訂正コード(ECC)ビット内に前記生成されたCIを書き込むステップと
を備える方法。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462001545P | 2014-05-21 | 2014-05-21 | |
US62/001,545 | 2014-05-21 | ||
US201462092326P | 2014-12-16 | 2014-12-16 | |
US201462092409P | 2014-12-16 | 2014-12-16 | |
US62/092,326 | 2014-12-16 | ||
US62/092,409 | 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 |
US14/717,552 US10503661B2 (en) | 2014-05-21 | 2015-05-20 | Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system |
US14/717,552 | 2015-05-20 | ||
PCT/US2015/031913 WO2015179606A1 (en) | 2014-05-21 | 2015-05-21 | PROVIDING MEMORY BANDWIDTH COMPRESSION USING COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017519286A JP2017519286A (ja) | 2017-07-13 |
JP2017519286A5 JP2017519286A5 (ja) | 2018-06-14 |
JP6599898B2 true JP6599898B2 (ja) | 2019-10-30 |
Family
ID=53277113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016568010A Expired - Fee Related JP6599898B2 (ja) | 2014-05-21 | 2015-05-21 | 中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10503661B2 (ja) |
EP (1) | EP3146434B1 (ja) |
JP (1) | JP6599898B2 (ja) |
KR (1) | KR20170012233A (ja) |
CN (1) | CN106462496B (ja) |
WO (1) | WO2015179606A1 (ja) |
Families Citing this family (15)
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 |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US20160179387A1 (en) * | 2014-12-19 | 2016-06-23 | Jayesh Gaur | Instruction and Logic for Managing Cumulative System Bandwidth through Dynamic Request Partitioning |
US10033411B2 (en) * | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
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 |
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 |
US10515006B2 (en) * | 2016-07-29 | 2019-12-24 | Samsung Electronics Co., Ltd. | Pseudo main memory 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 |
US10176090B2 (en) | 2016-09-15 | 2019-01-08 | Qualcomm Incorporated | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-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 |
US11086526B2 (en) * | 2018-06-07 | 2021-08-10 | Micron Technology, Inc. | Adaptive line width cache systems and methods |
SE544272C2 (en) * | 2018-11-14 | 2022-03-22 | Zeropoint Tech Ab | Accessing compressed computer memory |
US11487616B2 (en) * | 2019-05-24 | 2022-11-01 | Texas Instruments Incorporated | Write control for read-modify-write operations in cache memory |
US11023172B2 (en) * | 2019-07-26 | 2021-06-01 | Micron Technology, Inc. | Selecting read voltage using write transaction data |
Family Cites Families (56)
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 |
US6341325B2 (en) | 1999-01-12 | 2002-01-22 | International Business Machines Corporation | Method and apparatus for addressing main memory contents including a directory structure in a computer system |
US6353871B1 (en) | 1999-02-22 | 2002-03-05 | International Business Machines Corporation | Directory cache for indirectly addressed main 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 |
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 |
US6944740B2 (en) | 2002-03-27 | 2005-09-13 | International Business Machines Corporation | Method for performing compressed I/O with memory expansion technology |
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 |
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 |
US8122216B2 (en) | 2006-09-06 | 2012-02-21 | International Business Machines Corporation | Systems and methods for masking latency of memory reorganization work in a compressed memory system |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8554880B2 (en) * | 2008-03-07 | 2013-10-08 | JVC Kenwood Corporation | System for classification, location and transmission of music playlists |
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 |
JP2013530448A (ja) * | 2010-05-05 | 2013-07-25 | マーベル ワールド トレード リミテッド | キャッシュストレージアダプタアーキテクチャ |
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 |
US8539163B1 (en) | 2010-12-17 | 2013-09-17 | Amazon Technologies, Inc. | Speculative reads |
WO2012168960A1 (en) | 2011-06-07 | 2012-12-13 | Hitachi, Ltd. | Semiconductor storage apparatus and method of controlling semiconductor storage apparatus |
US10031850B2 (en) | 2011-06-07 | 2018-07-24 | Sandisk Technologies Llc | System and method to buffer data |
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 |
US9148172B2 (en) | 2012-06-22 | 2015-09-29 | Micron Technology, Inc. | Data compression and management |
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 |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
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 |
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-20 US US14/717,552 patent/US10503661B2/en not_active Expired - Fee Related
- 2015-05-21 CN CN201580026643.6A patent/CN106462496B/zh not_active Expired - Fee Related
- 2015-05-21 EP EP15726846.7A patent/EP3146434B1/en not_active Not-in-force
- 2015-05-21 KR KR1020167032011A patent/KR20170012233A/ko unknown
- 2015-05-21 WO PCT/US2015/031913 patent/WO2015179606A1/en active Application Filing
- 2015-05-21 JP JP2016568010A patent/JP6599898B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN106462496B (zh) | 2019-05-03 |
KR20170012233A (ko) | 2017-02-02 |
JP2017519286A (ja) | 2017-07-13 |
US10503661B2 (en) | 2019-12-10 |
WO2015179606A1 (en) | 2015-11-26 |
US20150339239A1 (en) | 2015-11-26 |
EP3146434B1 (en) | 2018-06-20 |
CN106462496A (zh) | 2017-02-22 |
EP3146434A1 (en) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6599898B2 (ja) | 中央処理装置(cpu)搭載システム内の圧縮メモリコントローラ(cmc)を使用したメモリ帯域圧縮の提供 | |
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 | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
US10176090B2 (en) | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems | |
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 | |
US20180173623A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations | |
US10152261B2 (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: 20180501 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180501 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190415 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190716 |
|
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: 20190909 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191003 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6599898 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |