JP2017532657A - 圧縮アルゴリズムのためのキャッシュバンク分散 - Google Patents
圧縮アルゴリズムのためのキャッシュバンク分散 Download PDFInfo
- Publication number
- JP2017532657A JP2017532657A JP2017513216A JP2017513216A JP2017532657A JP 2017532657 A JP2017532657 A JP 2017532657A JP 2017513216 A JP2017513216 A JP 2017513216A JP 2017513216 A JP2017513216 A JP 2017513216A JP 2017532657 A JP2017532657 A JP 2017532657A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- bank
- cache memory
- access request
- compressed data
- 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.)
- Pending
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 138
- 230000006835 compression Effects 0.000 title claims description 75
- 238000007906 compression Methods 0.000 title claims description 73
- 230000015654 memory Effects 0.000 claims abstract description 298
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000005315 distribution function Methods 0.000 claims description 76
- 230000006870 function Effects 0.000 claims description 38
- 238000013144 data compression Methods 0.000 abstract description 8
- 238000003860 storage Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000001413 cellular effect Effects 0.000 description 9
- 230000000875 corresponding effect Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000002596 correlated effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 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/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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0851—Cache with interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data 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/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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
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)
Abstract
Description
BankSpreading(BaseAddr, CompressionLevel){
PhysicalAddressShift = 0
if ( CompressionLevel == "4:1" or CompressionLevel == "4:2"){
Bit1 = (BaseAddr >> Bit1ToBeUsed) & 1
Bit2 = (BaseAddr >> Bit2ToBeUsed) & 1
PhysicalAddressShift = (Bit1 XOR Bit2) << W
}
return BaseAddr + PhysicalAddressShift
}
12 SoC
14 プロセッサ、マルチコアプロセッサ
16 メモリ
18 通信インターフェース
20 ストレージインターフェース
22 通信構成要素
24 ストレージ構成要素
26 アンテナ
28 ネットワークインターフェース
30 ワイヤレスネットワーク
32 ワイヤレス接続
40 インターネット
44 ワイヤード接続
50 リモートコンピューティングデバイス
200、201、202、203 プロセッサコア
300 キャッシュバンク分散アドレス構成要素
302 キャッシュバンク分散関数構成要素
304 キャッシュメモリコントローラ
306 キャッシュメモリ
308 圧縮構成要素、プログラムソフトウェア圧縮構成要素、プログラマブルハードウェア圧縮構成要素
400、402、404、406、500、502、504、506、600、602、604、606、700、702、704、706 キャッシュ空間
408、410、414、416 キャッシュライン
412、512、612、712 圧縮データ
418、420、422、424 キャッシュバンク
800 テーブル
802 物理アドレス
804 バイナリビット表現(または物理アドレスビット)
806 物理アドレスバンク選択ビット
808 キャッシュバンク分散アドレス
810 バイナリビット表現(またはバンク分散アドレスビット)
812 キャッシュバンク分散アドレスバンク選択ビット
814〜830 物理アドレス
900、1000、1100 方法
1200 モバイルコンピューティングデバイス
1202 プロセッサ
1204 タッチスクリーンコントローラ
1206 内部メモリ
1208 無線信号トランシーバ、トランシーバ
1210 アンテナ
1212 タッチスクリーンパネル
1214 スピーカー
1216 セルラーネットワークワイヤレスモデムチップ
1218 周辺デバイス接続インターフェース
1220 ハウジング
1222 電源
1224 物理ボタン
1226 電源ボタン
1300 ラップトップコンピュータ、コンピュータ
1308 アンテナ
1311 プロセッサ
1312 揮発性メモリ
1313 ディスクドライブ
1314 フロッピーディスクドライブ
1315 コンパクトディスク(CD)ドライブ
1316 ワイヤレスデータリンクおよび/またはセルラー電話トランシーバ
1317 タッチパッドのタッチ面、タッチパッド
1318 キーボード
1319 ディスプレイ
1400 サーバ
1401 マルチコアプロセッサアセンブリ、プロセッサ
1402 揮発性メモリ
1403 ネットワークアクセスポート
1404 ディスクドライブ
1405 ネットワーク
1406 フロッピーディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ
Claims (30)
- コンピューティングデバイス上で圧縮データ用のキャッシュメモリアクセス要求を実行するための方法であって、
キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復するステップと、
前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行するステップと
を含む方法。 - 圧縮データがキャッシュメモリデバイスの単一のキャッシュバンクのキャッシュライン上で適合するかどうかを判定するステップをさらに含み、
キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復するステップが、前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復するステップを含む、
請求項1に記載の方法。 - 前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するかどうかを判定するステップが、前記圧縮データの圧縮比が2:1圧縮比以上であるかどうかを判定するステップを含む、請求項2に記載の方法。
- 前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するかどうかを判定するステップが、前記圧縮データのサイズが前記キャッシュメモリデバイスのキャッシュラインのサイズ以下であるかどうかを判定するステップを含む、請求項2に記載の方法。
- 前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復するステップが、
キャッシュバンク分散関数用の入力を選択するステップと、
前記キャッシュバンク分散関数を実行するステップと、
キャッシュバンク分散値を返すステップと、
前記1つまたは複数のバンク選択ビットを前記キャッシュバンク分散値に置き換えるステップと
を含む、請求項2に記載の方法。 - 前記キャッシュバンク分散関数用の入力を選択するステップが、前記キャッシュバンク分散関数用のオペランドとして、前記キャッシュメモリアクセス要求の前記キャッシュメモリデバイスの前記物理アドレスの保護されたビットの複数の最下位ビットを選択するステップを含み、
前記キャッシュバンク分散関数を実行するステップが、前記オペランドとともに排他的OR演算子を使用するステップを含む、
請求項5に記載の方法。 - 前記キャッシュバンク分散関数を実行するステップが、論理演算、算術演算のうちの1つを使用し、ランダム値を選択し、テーブルから前記キャッシュメモリアクセス要求の前記物理アドレスに関連付けられた前記キャッシュバンク分散アドレスを選択するステップを含む、請求項5に記載の方法。
- 前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行するステップが、
圧縮データを、前記キャッシュメモリアクセス要求のキャッシュメモリデバイスの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される第1のキャッシュバンクに書き込むステップと、
前記圧縮データを、前記キャッシュメモリアクセス要求の前記キャッシュメモリデバイスの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される前記第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される前記第1のキャッシュバンクから読み取るステップと
を含む、請求項1に記載の方法。 - 前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行するステップが、前記キャッシュバンク分散アドレスによって示されるキャッシュメモリデバイスの物理アドレスにおいて前記圧縮データ用の前記キャッシュメモリアクセス要求を実行するステップを含む、請求項1に記載の方法。
- プロセッサと、
前記プロセッサに通信可能に接続され、キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復することを含む動作を実行するように構成されたバンク分散関数構成要素と、
前記バンク分散関数構成要素に通信可能に接続され、前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行することを含む動作を実行するように構成されたキャッシュメモリコントローラと、
前記キャッシュメモリコントローラに通信可能に接続されたキャッシュメモリと
を備えるコンピューティングデバイス。 - 前記バンク分散関数構成要素は、圧縮データがキャッシュメモリの単一のキャッシュバンクのキャッシュライン上で適合するかどうかを判定することをさらに含む動作を実行するように構成され、
前記バンク分散関数構成要素は、キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復することが、前記圧縮データが前記キャッシュメモリの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復することを含むような動作を実行するように構成される、
請求項10に記載のコンピューティングデバイス。 - 前記バンク分散関数構成要素は、前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリの前記単一のキャッシュバンク上で適合するかどうかを判定することが、前記圧縮データの圧縮比が2:1圧縮比以上であるかどうかを判定することを含むような動作を実行するように構成される、請求項11に記載のコンピューティングデバイス。
- 前記バンク分散関数構成要素は、前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリの前記単一のキャッシュバンク上で適合するかどうかを判定することが、前記圧縮データのサイズが前記キャッシュメモリのキャッシュラインのサイズ以下であるかどうかを判定することを含むような動作を実行するように構成される、請求項11に記載のコンピューティングデバイス。
- 前記バンク分散関数構成要素は、前記圧縮データが前記キャッシュメモリの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復することが、
キャッシュバンク分散関数用の入力を選択することと、
前記キャッシュバンク分散関数を実行することと、
キャッシュバンク分散値を返すことと、
前記1つまたは複数のバンク選択ビットを前記キャッシュバンク分散値に置き換えることと
を含むような動作を実行するように構成される、請求項11に記載のコンピューティングデバイス。 - 前記バンク分散関数構成要素は、
前記キャッシュバンク分散関数を実行することが、論理演算、算術演算のうちの1つを使用し、ランダム値を選択し、テーブルから前記キャッシュメモリアクセス要求の前記物理アドレスに関連付けられた前記キャッシュバンク分散アドレスを選択することを含み、
前記キャッシュバンク分散関数用の入力を選択することが、前記キャッシュバンク分散関数用のオペランドとして、前記オペランドとともに排他的OR演算子を使用して、前記キャッシュメモリアクセス要求の前記キャッシュメモリの前記物理アドレスの保護されたビットの複数の最下位ビットを選択することを含む
ような動作を実行するように構成される、請求項14に記載のコンピューティングデバイス。 - 前記キャッシュメモリコントローラは、前記キャッシュメモリ内の前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行することが、
圧縮データを、前記キャッシュメモリアクセス要求の前記キャッシュメモリの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される第1のキャッシュバンクに書き込むことと、
前記圧縮データを、前記キャッシュメモリアクセス要求の前記キャッシュメモリの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される前記第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される前記第1のキャッシュバンクから読み取ることと
を含むような動作を実行するように構成される、請求項10に記載のコンピューティングデバイス。 - プロセッサ、バンク分散関数構成要素、およびキャッシュメモリコントローラに、
キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復することと、
前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行することと
を含む動作を実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記プロセッサ、前記バンク分散関数構成要素、および前記キャッシュメモリコントローラに、圧縮データがキャッシュメモリデバイスの単一のキャッシュバンクのキャッシュライン上で適合するかどうかを判定することをさらに含む動作を実行させるように構成され、
前記記憶されたプロセッサ実行可能命令は、前記プロセッサ、前記バンク分散関数構成要素、および前記キャッシュメモリコントローラに、キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復することが、前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復することを含むような動作を実行させるように構成される、
請求項17に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記プロセッサ、前記バンク分散関数構成要素、および前記キャッシュメモリコントローラに、前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するかどうかを判定することが、前記圧縮データの圧縮比が2:1圧縮比以上であるかどうかを判定することを含むような動作を実行させるように構成される、請求項18に記載の非一時的プロセッサ可読媒体。
- 前記記憶されたプロセッサ実行可能命令は、前記プロセッサ、前記バンク分散関数構成要素、および前記キャッシュメモリコントローラに、前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するかどうかを判定することが、前記圧縮データのサイズが前記キャッシュメモリデバイスのキャッシュラインのサイズ未満であるかどうかを判定することを含むような動作を実行させるように構成される、請求項18に記載の非一時的プロセッサ可読媒体。
- 前記記憶されたプロセッサ実行可能命令は、前記プロセッサ、前記バンク分散関数構成要素、および前記キャッシュメモリコントローラに、前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復することが、
キャッシュバンク分散関数用の入力を選択することと、
前記キャッシュバンク分散関数を実行することと、
キャッシュバンク分散値を返すことと、
前記1つまたは複数のバンク選択ビットを前記キャッシュバンク分散値に置き換えることと
を含むような動作を実行させるように構成される、請求項18に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記プロセッサ、前記バンク分散関数構成要素、および前記キャッシュメモリコントローラに、
前記キャッシュバンク分散関数を実行することが、論理演算、算術演算のうちの1つを使用し、ランダム値を選択し、テーブルから前記キャッシュメモリアクセス要求の前記物理アドレスに関連付けられた前記キャッシュバンク分散アドレスを選択することを含み、
前記キャッシュバンク分散関数用の入力を選択することが、前記キャッシュバンク分散関数用のオペランドとして、前記オペランドとともに排他的OR演算子を使用して、前記キャッシュメモリアクセス要求の前記キャッシュメモリデバイスの前記物理アドレスの保護されたビットの複数の最下位ビットを選択することを含む
ような動作を実行させるように構成される、請求項21に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能命令は、前記プロセッサ、前記バンク分散関数構成要素、および前記キャッシュメモリコントローラに、前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行することが、
圧縮データを、前記キャッシュメモリアクセス要求のキャッシュメモリデバイスの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される第1のキャッシュバンクに書き込むことと、
前記圧縮データを、前記キャッシュメモリアクセス要求の前記キャッシュメモリデバイスの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される前記第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される前記第1のキャッシュバンクから読み取ることと
を含むような動作を実行させるように構成される、請求項17に記載の非一時的プロセッサ可読媒体。 - キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復するための手段と、
前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行するための手段と
を備えるコンピューティングデバイス。 - 圧縮データがキャッシュメモリデバイスの単一のキャッシュバンクのキャッシュライン上で適合するかどうかを判定するための手段をさらに備え、
キャッシュバンク分散アドレスを生成するキャッシュメモリアクセス要求の物理アドレスの1つまたは複数のバンク選択ビットを回復するための手段が、前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復するための手段を備える、
請求項24に記載のコンピューティングデバイス。 - 前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するかどうかを判定するための手段が、前記圧縮データの圧縮比が2:1圧縮比以上であるかどうかを判定するための手段を備える、請求項25に記載のコンピューティングデバイス。
- 前記キャッシュメモリアクセス要求の前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するかどうかを判定するための手段が、前記圧縮データのサイズが前記キャッシュメモリデバイスのキャッシュラインのサイズ以下であるかどうかを判定するための手段を備える、請求項25に記載のコンピューティングデバイス。
- 前記圧縮データが前記キャッシュメモリデバイスの前記単一のキャッシュバンク上で適合するとの判定に応答して、前記キャッシュバンク分散アドレスを生成する前記キャッシュメモリアクセス要求の前記物理アドレスの前記1つまたは複数のバンク選択ビットを回復するための手段が、
キャッシュバンク分散関数用の入力を選択するための手段と、
前記キャッシュバンク分散関数を実行するための手段と、
キャッシュバンク分散値を返すための手段と、
前記1つまたは複数のバンク選択ビットを前記キャッシュバンク分散値に置き換えるための手段と
を備える、請求項25に記載のコンピューティングデバイス。 - 前記キャッシュバンク分散関数を実行するための手段が、論理演算、算術演算のうちの1つを使用し、ランダム値を選択し、テーブルから前記キャッシュメモリアクセス要求の前記物理アドレスに関連付けられた前記キャッシュバンク分散アドレスを選択するための手段を備え、
前記キャッシュバンク分散関数用の入力を選択するための手段が、前記キャッシュバンク分散関数用のオペランドとして、前記オペランドとともに排他的OR演算子を使用して、前記キャッシュメモリアクセス要求の前記キャッシュメモリデバイスの前記物理アドレスの保護されたビットの複数の最下位ビットを選択するための手段を備える、
請求項28に記載のコンピューティングデバイス。 - 前記キャッシュバンク分散アドレスにおいて前記キャッシュメモリアクセス要求を実行するための手段が、
圧縮データを、前記キャッシュメモリアクセス要求のキャッシュメモリデバイスの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される第1のキャッシュバンクに書き込むための手段と、
前記圧縮データを、前記キャッシュメモリアクセス要求の前記キャッシュメモリデバイスの前記物理アドレスの前記1つまたは複数のバンク選択ビットによって示される前記第2のキャッシュバンクとは異なる、前記キャッシュバンク分散アドレスの前記1つまたは複数の回復されたバンク選択ビットによって示される前記第1のキャッシュバンクから読み取るための手段と
を備える、請求項24に記載のコンピューティングデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/483,902 US9355038B2 (en) | 2014-09-11 | 2014-09-11 | Cache bank spreading for compression algorithms |
US14/483,902 | 2014-09-11 | ||
PCT/US2015/041781 WO2016039866A1 (en) | 2014-09-11 | 2015-07-23 | Cache bank spreading for compression algorithms |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017532657A true JP2017532657A (ja) | 2017-11-02 |
JP2017532657A5 JP2017532657A5 (ja) | 2018-08-23 |
Family
ID=53783380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017513216A Pending JP2017532657A (ja) | 2014-09-11 | 2015-07-23 | 圧縮アルゴリズムのためのキャッシュバンク分散 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9355038B2 (ja) |
EP (1) | EP3191967B1 (ja) |
JP (1) | JP2017532657A (ja) |
KR (1) | KR20170053630A (ja) |
CN (1) | CN106687937B (ja) |
WO (1) | WO2016039866A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514047B2 (en) * | 2014-12-17 | 2016-12-06 | Intel Corporation | Apparatus and method to dynamically expand associativity of a cache memory |
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 |
US10176090B2 (en) | 2016-09-15 | 2019-01-08 | Qualcomm Incorporated | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems |
US10445261B2 (en) * | 2016-12-30 | 2019-10-15 | Intel Corporation | System memory having point-to-point link that transports compressed traffic |
US10503652B2 (en) * | 2017-04-01 | 2019-12-10 | Intel Corporation | Sector cache for compression |
US10609172B1 (en) | 2017-04-27 | 2020-03-31 | Chicago Mercantile Exchange Inc. | Adaptive compression of stored data |
US12105716B2 (en) * | 2017-06-23 | 2024-10-01 | Xilinx, Inc. | Parallel compute offload to database accelerator |
US11048419B2 (en) * | 2019-01-30 | 2021-06-29 | EMC IP Holding Company LLC | Adaptively over-allocating storage space for compressed data |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10232838A (ja) * | 1996-11-05 | 1998-09-02 | Hitachi Ltd | ディスク記憶システム |
US6115787A (en) * | 1996-11-05 | 2000-09-05 | Hitachi, Ltd. | Disc storage system having cache memory which stores compressed data |
JP2002182972A (ja) * | 2000-10-18 | 2002-06-28 | Internatl Business Mach Corp <Ibm> | メモリ・ミラーリングを用いるデータ処理システムでの枯渇回復のサポート |
US20060168390A1 (en) * | 2005-01-21 | 2006-07-27 | Speier Thomas P | Methods and apparatus for dynamically managing banked memory |
US20100077146A1 (en) * | 2008-09-19 | 2010-03-25 | Kabushiki Kaisha Toshiba | Instruction cache system, instruction-cache-system control method, and information processing apparatus |
US20100138614A1 (en) * | 2008-12-03 | 2010-06-03 | Glasco David B | Compression Status Bit Cache And Backing Store |
US20110087840A1 (en) * | 2009-10-09 | 2011-04-14 | Glasco David B | Efficient line and page organization for compression status bit caching |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956744A (en) | 1995-09-08 | 1999-09-21 | Texas Instruments Incorporated | Memory configuration cache with multilevel hierarchy least recently used cache entry replacement |
CN1081361C (zh) * | 1997-11-06 | 2002-03-20 | 中国科学院计算技术研究所 | 高速缓冲存储器系统中的地址映射变换技术与装置 |
IL150556A0 (en) | 2000-01-03 | 2003-02-12 | Efeckta Technologies Corp | Efficient and lossless conversion for transmission or storage of data |
US6307790B1 (en) * | 2000-08-30 | 2001-10-23 | Micron Technology, Inc. | Read compression in a memory |
US7266651B1 (en) | 2004-09-07 | 2007-09-04 | Sun Microsystems, Inc. | Method for in-place memory interleaving and de-interleaving |
US7627735B2 (en) * | 2005-10-21 | 2009-12-01 | Intel Corporation | Implementing vector memory operations |
US7705753B2 (en) | 2005-10-22 | 2010-04-27 | Sytex, Inc. | Methods, systems and computer-readable media for compressing data |
US8327057B1 (en) | 2007-04-16 | 2012-12-04 | Juniper Networks, Inc. | Ordering write bursts to memory |
US8918897B2 (en) | 2009-11-24 | 2014-12-23 | Cleversafe, Inc. | Dispersed storage network data slice integrity verification |
CN102129873B (zh) * | 2011-03-29 | 2012-07-04 | 西安交通大学 | 提高计算机末级高速缓存可靠性的数据压缩装置及其方法 |
US20130265305A1 (en) * | 2012-04-04 | 2013-10-10 | Jon N. Hasselgren | Compressed Depth Cache |
US8767501B2 (en) * | 2012-07-17 | 2014-07-01 | International Business Machines Corporation | Self-reconfigurable address decoder for associative index extended caches |
US9026747B2 (en) * | 2012-08-16 | 2015-05-05 | Broadcom Corporation | Memory device with a logical-to-physical bank mapping cache |
-
2014
- 2014-09-11 US US14/483,902 patent/US9355038B2/en not_active Expired - Fee Related
-
2015
- 2015-07-23 WO PCT/US2015/041781 patent/WO2016039866A1/en active Application Filing
- 2015-07-23 EP EP15747325.7A patent/EP3191967B1/en active Active
- 2015-07-23 JP JP2017513216A patent/JP2017532657A/ja active Pending
- 2015-07-23 CN CN201580048563.0A patent/CN106687937B/zh active Active
- 2015-07-23 KR KR1020177006694A patent/KR20170053630A/ko unknown
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10232838A (ja) * | 1996-11-05 | 1998-09-02 | Hitachi Ltd | ディスク記憶システム |
US6115787A (en) * | 1996-11-05 | 2000-09-05 | Hitachi, Ltd. | Disc storage system having cache memory which stores compressed data |
JP2002182972A (ja) * | 2000-10-18 | 2002-06-28 | Internatl Business Mach Corp <Ibm> | メモリ・ミラーリングを用いるデータ処理システムでの枯渇回復のサポート |
US6820182B1 (en) * | 2000-10-18 | 2004-11-16 | International Business Machines Corporation | Support for exhaustion recovery in a data processing system with memory mirroring |
US20060168390A1 (en) * | 2005-01-21 | 2006-07-27 | Speier Thomas P | Methods and apparatus for dynamically managing banked memory |
JP2008529132A (ja) * | 2005-01-21 | 2008-07-31 | クゥアルコム・インコーポレイテッド | バンクメモリを動的に管理する方法及び装置 |
US20100077146A1 (en) * | 2008-09-19 | 2010-03-25 | Kabushiki Kaisha Toshiba | Instruction cache system, instruction-cache-system control method, and information processing apparatus |
JP2010073029A (ja) * | 2008-09-19 | 2010-04-02 | Toshiba Corp | 命令キャッシュシステム |
US20100138614A1 (en) * | 2008-12-03 | 2010-06-03 | Glasco David B | Compression Status Bit Cache And Backing Store |
JP2010134929A (ja) * | 2008-12-03 | 2010-06-17 | Nvidia Corp | 圧縮状態ビットキャッシュ及びバッキング記憶装置 |
US20110087840A1 (en) * | 2009-10-09 | 2011-04-14 | Glasco David B | Efficient line and page organization for compression status bit caching |
Also Published As
Publication number | Publication date |
---|---|
US9355038B2 (en) | 2016-05-31 |
CN106687937B (zh) | 2020-06-23 |
CN106687937A (zh) | 2017-05-17 |
US20160077973A1 (en) | 2016-03-17 |
WO2016039866A1 (en) | 2016-03-17 |
KR20170053630A (ko) | 2017-05-16 |
EP3191967B1 (en) | 2018-12-26 |
EP3191967A1 (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106687937B (zh) | 用于压缩算法的高速缓冲存储体扩展 | |
CN106537360B (zh) | 用于具有动态分区的共享高速缓存的方法和装置 | |
US9652152B2 (en) | Efficient decompression locality system for demand paging | |
US11025271B2 (en) | Compression of high dynamic ratio fields for machine learning | |
US9858196B2 (en) | Power aware padding | |
KR20160039544A (ko) | 실시간 분석을 지원하는 인-메모리 팝 카운트 | |
JP6757299B2 (ja) | メモリモジュール及びその動作方法 | |
US9612971B2 (en) | Supplemental write cache command for bandwidth compression | |
US20190073305A1 (en) | Reuse Aware Cache Line Insertion And Victim Selection In Large Cache Memory | |
US20190087345A1 (en) | Performance By Retaining High Locality Data In Higher Level Cache Memory | |
JP6297208B2 (ja) | システムオンチップ用のメモリを拡張するためのシステムおよび方法 | |
US10642493B2 (en) | Mobile device and data management method of the same | |
EP3510487B1 (en) | Coherent interconnect power reduction using hardware controlled split snoop directories | |
US9600420B2 (en) | Reducing decompression time without impacting compression ratio | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
JP2018511111A (ja) | ビクティムキャッシュモードを向上させるためのプロセススケジューリング | |
US20240037027A1 (en) | Method and device for storing data | |
JP2024514448A (ja) | ディープニューラルネットワーク重みのための圧縮技法 | |
US11907138B2 (en) | Multimedia compressed frame aware cache replacement policy | |
US20190235606A1 (en) | Hybrid Powering Off Of Storage Component Memory Cells |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180709 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180709 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190902 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200330 |