JP6505132B2 - メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 - Google Patents
メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 Download PDFInfo
- Publication number
- JP6505132B2 JP6505132B2 JP2016567858A JP2016567858A JP6505132B2 JP 6505132 B2 JP6505132 B2 JP 6505132B2 JP 2016567858 A JP2016567858 A JP 2016567858A JP 2016567858 A JP2016567858 A JP 2016567858A JP 6505132 B2 JP6505132 B2 JP 6505132B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- compressed
- physical buffer
- 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.)
- Active
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/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/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/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 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(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 (15)
- システムメモリにアクセスするように構成されたメモリインターフェースと、
コントローラとを備え、前記コントローラが、
システムバスにわたって前記システムメモリ内でアクセスされるべき物理アドレス(PA)を含むメモリアクセス要求を受信することと、
前記受信されたメモリアクセス要求に対する前記PAが、トランスレーションルックアサイドバッファ(TLB)内の複数のTLBエントリの間のTLBエントリに含まれるかどうかを決定することであって、前記複数のTLBエントリの間の各TLBエントリが、
PAに対応するタグアレイ内のタグと、
前記PAに対応する前記システムメモリ内の少なくとも1つの物理バッファアドレスと、
前記システムメモリ内の複数の異なるサイズの物理バッファプールの間の物理バッファプールを示すプールインジケータであって、各異なるサイズの物理バッファプールが異なる圧縮サイズの圧縮データに対応する、プールインジケータと、
を備えるマスターディレクトリからのエントリを記憶するように構成される、決定することと、
前記PAが前記TLB内の前記TLBエントリに含まれる場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記PAを含む前記TLBエントリ内の前記少なくとも1つの物理バッファアドレスの物理バッファアドレスとして変換することと、
前記PAが前記TLB内の前記TLBエントリに含まれない場合、それぞれがPAに対応し、複数のデータラインから成る前記システムメモリ内のデータラインアドレスを含む複数の物理バッファアドレスを含む前記マスターディレクトリ内の前記エントリにおける前記物理バッファアドレスに前記PAをマッピングすることに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに基づいて前記システムメモリ内の前記データラインアドレスにアクセスすることとを行うように構成される、圧縮メモリコントローラ。 - 前記コントローラが、前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに対するオフセットと前記マスターディレクトリ内の前記エントリと関連付けられた長さとに基づいて、前記システムメモリにアクセスするように構成される、請求項1に記載の圧縮メモリコントローラ。
- 前記コントローラが、書込みデータを含む前記メモリアクセス要求と前記システムメモリ内に書き込まれるべき前記PAを含むメモリ書込み動作とを受信するように構成され、
前記コントローラが、
前記メモリ書込み動作内で受信された前記書込みデータを圧縮書込みデータに圧縮することと、
前記圧縮書込みデータに基づいて前記メモリ書込み動作に対して前記システムメモリ内の利用可能な物理バッファアドレスを決定することとを行うようにさらに構成され、
前記圧縮メモリコントローラが、前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記決定された利用可能な物理バッファアドレスに基づいて前記システムメモリにアクセスするように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記コントローラが、前記PAに対応する前記マスターディレクトリの前記エントリにおける前記メモリ書込み動作に対する前記物理バッファアドレスを記憶するために前記マスターディレクトリを更新するようにさらに構成される、請求項3に記載の圧縮メモリコントローラ。
- 前記メモリコントローラが、前記物理バッファアドレスに対するオフセットと前記マスターディレクトリ内の前記エントリと関連付けられた長さとを記憶するようにさらに構成されることによって、前記マスターディレクトリを更新するように構成される、請求項3に記載の圧縮メモリコントローラ。
- 前記コントローラが、前記メモリ書込み動作に対する前記書込みデータが固定パターンであるかどうかを決定するようにさらに構成され、
前記メモリ書込み動作に対する前記書込みデータが、前記固定パターンである場合、前記コントローラが、
前記メモリ書込み動作に対する前記固定パターンを示すために、前記PAに対応する前記マスターディレクトリ内の前記エントリを更新し、かつ
前記システムメモリ内の前記物理バッファアドレスにおける前記メモリ書込み動作に対する前記圧縮書込みデータを書き込まないように構成される、請求項3に記載の圧縮メモリコントローラ。 - 前記コントローラが、
前記メモリ書込み動作に対する前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定することと、
前記物理バッファアドレスに基づいて前記システムメモリ内の前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記システムメモリ内の前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプールにアクセスすることとを行うように構成され、
前記コントローラが、前記物理バッファアドレスからのオフセットに基づいて前記システムメモリ内の前記メモリ書込み動作に対する前記圧縮書込みデータを記憶するために、前記システムメモリ内の前記物理バッファアドレス内の前記プールインジケータに対応する前記物理バッファプールにアクセスするように構成される、請求項3に記載の圧縮メモリコントローラ。 - 前記コントローラが、前記システムメモリ内の少なくとも1つのフリー物理バッファアドレスを示す前記物理バッファプールに対応するフリーノードリストから、前記メモリ書込み動作に対する前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定するように構成され、
前記コントローラが、前記フリーノードリスト内の利用可能な物理バッファアドレスの数が定義されたしきい値より小さくなるときに、オペレーティングシステム(OS)に知らせるようにさらに構成され、
前記物理バッファプール内の前記利用可能な物理バッファアドレスを決定することに応答して、前記コントローラが、少なくとも1つのフリー物理バッファを、前記フリーノードリストから前記利用可能な物理バッファアドレスに対するローカルプルバッファ内に引き込むように構成される、請求項7に記載の圧縮メモリコントローラ。 - 前記コントローラが、
前記システムメモリ内で読み取られるべき前記PAを含むメモリ読取り動作を含む前記メモリアクセス要求を受信することと、
圧縮読取りデータを読み取るために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスすることと、
前記圧縮読取りデータを解凍読取りデータに展開することと、
前記メモリ読取り動作に対して前記システムバス上に前記解凍読取りデータを供給することとを行うように構成され、
前記コントローラが、前記メモリ読取り動作に対する前記圧縮読取りデータが所定の固定パターンを含むかどうかを決定するようにさらに構成され、
前記メモリ読取り動作に対する前記圧縮読取りデータが前記所定の固定パターンを含む場合、前記コントローラが、前記圧縮読取りデータを読み取るために、前記物理バッファアドレスに基づいて前記システムメモリにアクセスしないようにさらに構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記メモリアクセス要求が、メモリ書込み動作から成り、
前記コントローラが、利用可能な物理バッファアドレスに対するメモリ書込み動作の圧縮ラインサイズに基づいて、前記複数の異なるサイズの物理バッファプールの中の前記物理バッファプールを選択するように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記選択された物理バッファプールが、利用可能な物理バッファアドレスをまったく含まない場合、前記コントローラが、より大きい物理バッファに割り当てられた別の物理バッファプールから前記物理バッファアドレスを割り振るように割り当てられた前記物理バッファプールを選択するように構成され、
前記物理バッファアドレスが前記より大きい物理バッファに割り当てられた前記物理バッファプール内で利用可能でない場合、前記コントローラが、
前記より大きい物理バッファに割り当てられた前記物理バッファアドレスに対する前記物理バッファプールに対応するフリーノードリストに前記物理バッファアドレスを戻すようにさらに構成される、請求項10に記載の圧縮メモリコントローラ。 - 前記コントローラが、
前記システムメモリ内の開始位置およびデータページアドレスからの長さに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記マスターディレクトリ内の前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記システムメモリ内の前記開始位置における、前記データページアドレスからの前記長さの圧縮データにアクセスすることとを行うように構成され、
前記データページアドレスが、データページサイズにそれぞれ割り当てられた複数のデータページの中の前記システムメモリ内の1つのデータページを含み、
前記コントローラが、前記受信されたPAの少なくとも一部に基づいて、前記開始位置および前記長さを、前記マスターディレクトリ内の前記データページアドレスと関連付けられた複数の開始位置および長さから選択するようにさらに構成されることによって、前記受信されたPAを変換するように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記コントローラが、
前記受信されたPAに対応するデータページ、前記データページ内の開始データブロック、および前記開始データブロックからのデータブロック長に基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、ブロックアドレスを含む前記物理バッファアドレスに変換することと、
前記受信されたメモリアクセス要求を実施するために、前記システムメモリ内の前記開始データブロックにおける、ページバッファ内の前記ブロックアドレスからの前記開始データブロックで前記データブロック長の圧縮データにアクセスすることとを行うように構成され、
前記コントローラが、複数の等しいサイズのデータページの中の前記データページ、前記受信されたPAに対応する前記データページ、前記データページ内の開始データブロック、および前記開始データブロックからのデータブロック長に基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記ブロックアドレスを含む前記物理バッファアドレスに変換するように構成される、請求項1に記載の圧縮メモリコントローラ。 - 前記PAが前記TLB内の前記TLBエントリ内に含まれない場合、前記コントローラが、
前記TLB内の前記TLBエントリを立ち退かせることと、
前記受信されたメモリアクセス要求に対する前記PAに対応する前記マスターディレクトリに前記エントリを記憶することとを行わせるようにさらに構成される、請求項1に記載の圧縮メモリコントローラ。 - 中央処理装置(CPU)ベースシステム内のシステムメモリへのメモリアクセス要求に対するデータを圧縮する方法であって、
システムバスにわたってシステムメモリ内でアクセスされるべき物理アドレス(PA)を含むメモリアクセス要求を受信するステップと、
前記受信されたメモリアクセス要求に対する前記PAが、トランスレーションルックアサイドバッファ(TLB)内の複数のTLBエントリの間のTLBエントリに含まれるかどうかを決定するステップであって、前記複数のTLBエントリの間の各TLBエントリが、
PAに対応するタグアレイ内のタグと、
前記PAに対応する前記システムメモリ内の少なくとも1つの物理バッファアドレスと、
前記システムメモリ内の複数の異なるサイズの物理バッファプールの間の物理バッファプールを示すプールインジケータであって、各異なるサイズの物理バッファプールが異なる圧縮サイズの圧縮データに対応する、プールインジケータとを備えるマスターディレクトリからのエントリを記憶するように構成される、決定するステップと、
前記PAが前記TLB内の前記TLBエントリに含まれる場合、前記受信されたメモリアクセス要求内の前記受信されたPAを、前記PAを含む前記TLBエントリ内の前記物理バッファアドレスとして変換するステップと、
前記PAが前記TLB内の前記TLBエントリに含まれない場合、それぞれがPAに対応し、複数のデータラインから成る前記システムメモリ内のデータラインアドレスを含む複数の物理バッファアドレスを含む前記マスターディレクトリ内の前記エントリにおける前記物理バッファアドレスに前記PAをマッピングすることに基づいて、前記受信されたメモリアクセス要求内の前記受信されたPAを前記物理バッファアドレスに変換するステップと、
前記受信されたメモリアクセス要求を実施するために、前記物理バッファアドレスに基づいて前記システムメモリ内の前記データラインアドレスにアクセスするステップとを含む、方法。
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,326 | 2014-12-16 | ||
US62/092,409 | 2014-12-16 | ||
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/716,001 | 2015-05-19 | ||
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 JP2017516232A (ja) | 2017-06-15 |
JP2017516232A5 JP2017516232A5 (ja) | 2018-06-14 |
JP6505132B2 true 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) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
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 |
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 |
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 |
US10236917B2 (en) * | 2016-09-15 | 2019-03-19 | Qualcomm Incorporated | Providing memory bandwidth compression in chipkill-correct memory architectures |
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控股有限责任公司 | 用于数据处理的方法、设备和计算机可读介质 |
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 | 北京泽石科技有限公司 | 固态非易失存储设备中数据的管理方法以及管理装置 |
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 | 北京图森智途科技有限公司 | 数据通信方法、通信系统及计算机可读存储介质 |
US20230101310A1 (en) * | 2021-09-29 | 2023-03-30 | 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 |
Family Cites Families (64)
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 |
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 |
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 |
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 |
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 |
WO2009110605A1 (ja) | 2008-03-07 | 2009-09-11 | 日本ビクター株式会社 | サーバ装置、端末装置、再生装置 |
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 |
US20110276746A1 (en) | 2010-05-05 | 2011-11-10 | Arvind Pruthi | Caching storage adapter architecture |
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 |
US8806108B2 (en) | 2011-06-07 | 2014-08-12 | 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 |
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 |
JP6323445B2 (ja) | 2013-03-15 | 2018-05-16 | 日本電気株式会社 | ストレージ装置と方法及びプログラム |
CN104133780B (zh) | 2013-05-02 | 2017-04-05 | 华为技术有限公司 | 一种跨页预取方法、装置及系统 |
CN107608912B (zh) | 2013-08-20 | 2020-10-16 | 华为技术有限公司 | 内存物理地址查询方法和装置 |
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 | 华为技术有限公司 | 分布式文件系统列式存储的元数据更新方法、装置、主机 |
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 |
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 |
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 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
WO2016144291A1 (en) | 2015-03-06 | 2016-09-15 | 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 KR KR1020167032264A patent/KR20170008233A/ko unknown
- 2015-05-20 JP JP2016567858A patent/JP6505132B2/ja active Active
- 2015-05-20 CN CN201580026204.5A patent/CN106462494B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106462494B (zh) | 2019-07-30 |
WO2015179483A1 (en) | 2015-11-26 |
JP2017516232A (ja) | 2017-06-15 |
KR20170008233A (ko) | 2017-01-23 |
CN106462494A (zh) | 2017-02-22 |
EP3146433A1 (en) | 2017-03-29 |
US20150339228A1 (en) | 2015-11-26 |
US10838862B2 (en) | 2020-11-17 |
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)を使用したメモリ帯域圧縮の提供 | |
KR101379596B1 (ko) | Tlb 프리페칭 | |
US9158685B2 (en) | System cache with cache hint control | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
US11409663B2 (en) | Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes | |
JP2005528695A (ja) | キャッシュ置換ポリシーの簡略化した実施態様を用いたマルチスレッド化キャッシュのための方法および装置 | |
JP7377952B2 (ja) | 圧縮キャッシュに対するフレキシブルな辞書共有 | |
CN112540939A (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
JP2018503924A (ja) | 中央処理ユニット(cpu)ベースのシステム内の圧縮メモリコントローラ(cmc)による連続読取り動作を使用するメモリ帯域幅圧縮の提供 | |
US10140211B2 (en) | Cache device and method for storing tag data and cache data in cache device | |
KR102355374B1 (ko) | 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 | |
US10565111B2 (en) | Processor | |
US20050071566A1 (en) | Mechanism to increase data compression in a cache | |
US9934150B1 (en) | Data caching circuit and method | |
US7143239B2 (en) | Cache structure and methodology | |
JPH01106149A (ja) | 情報処理装置 |
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 |