JP2017527884A - セットおよびウェイによるコンポーネントキャッシュへの柔軟なキャッシュパーティショニングのための方法および装置 - Google Patents
セットおよびウェイによるコンポーネントキャッシュへの柔軟なキャッシュパーティショニングのための方法および装置 Download PDFInfo
- Publication number
- JP2017527884A JP2017527884A JP2017501680A JP2017501680A JP2017527884A JP 2017527884 A JP2017527884 A JP 2017527884A JP 2017501680 A JP2017501680 A JP 2017501680A JP 2017501680 A JP2017501680 A JP 2017501680A JP 2017527884 A JP2017527884 A JP 2017527884A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- component cache
- component
- feature
- configuration table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/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/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
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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
- 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
-
- 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/12—Replacement control
-
- 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/1021—Hit rate 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/601—Reconfiguration of cache memory
-
- 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/6042—Allocation of cache space to multiple users or processors
- G06F2212/6046—Using a specific cache allocation policy other than replacement policy
-
- 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)
Abstract
Description
本出願は、その内容全体が参照により本明細書に組み込まれている、本出願と同時に出願された米国特許出願第14/334,010号、名称「Method And Apparatus For A Shared Cache With Dynamic Partitioning」に関する。
12 SoC
14 プロセッサ
16 メモリ
18 通信インターフェース
20 ストレージインターフェース
22 通信コンポーネント
24 ストレージコンポーネント
26 アンテナ
28 ネットワークインターフェース
30 ワイヤレスネットワーク
32 ワイヤレス接続
40 インターネット
44 有線接続、有線ネットワーク
50 リモートコンピューティングデバイス
200 プロセッサコア0
201 プロセッサコア1
202 プロセッサコア2
203 プロセッサコア3
300 システムハブ
302 システムキャッシュ
304 システムキャッシュコントローラ
306 CPUクラスタ
308 プロトコルコンバータ
310 GPU
312 モデムDSP
314 アプリケーションDSP
316 メモリインターフェース
318 カメラサブシステム
320 ビデオサブシステム
322 ディスプレイサブシステム
324 システムネットワークオンチップ(NoC)
326 メモリコントローラ
328 ランダムアクセスメモリ(RAM)
400 システムキャッシュ
402 ウェイ
404 ウェイ
406 ウェイ
408 ウェイ
410 ウェイ
412 ウェイ
414 ウェイ
416 ウェイ
418 N個のセット
420 システムキャッシュ
422 セットグループ
424 セットグループ
430 システムキャッシュ
432 セットグループ
434 セットグループ
436 セットグループ
438 セットグループ
440 システムキャッシュ
442 セットグループ
444 セットグループ
446 セットグループ
448 セットグループ
450 セットグループ
452 セットグループ
454 セットグループ
456 セットグループ
500 コンポーネントキャッシュ構成テーブル
502 コンポーネントキャッシュ識別子フィールド
504 有効性インジケータ特色フィールド
506 セットシフト特色フィールド
508 セットオフセット特色フィールド
510 ターゲットウェイ特色フィールド
512 全ウェイプローブ特色フィールド
514 インデックスモード特色フィールド
516 置換ポリシー特色フィールド
518 行
520 行
522 行
524 行
526 行
528 キャッシュラインサイズ特色フィールド
600 システムキャッシュ
602 コンポーネントキャッシュ
604 コンポーネントキャッシュ
606 コンポーネントキャッシュ
608 コンポーネントキャッシュ
610 コンポーネントキャッシュ
700 プロセッサコアA
702 プロセッサコアB
704 プロセッサコアC
706 プロセッサコアD
708 プロセッサコアE
710 システムメモリ管理ユニットA
712 システムメモリ管理ユニットB
716 システムメモリ管理ユニットD
718 システムメモリ管理ユニットE
720 コンポーネントキャッシュA
722 コンポーネントキャッシュB
724 コンポーネントキャッシュC
726 デフォルトコンポーネントキャッシュD
800 システムキャッシュメモリ空間
802 タグ
804 セットインデックス
806 ブロックオフセット
808 カスタムインデックス
810 選択
812 破棄(またはシフト)および連結動作
814 コンポーネントキャッシュ
816 タグ
818 セットインデックス
820 ブロックオフセット
900 最上位ビット
902 セットオフセット特色
904 最上位ビット
906 残りのビット
908 同一のビット
1000 下位ビット
1002 同一のビット
1004 中央ビット
1006 中央ビット
1100 コンポーネントキャッシュアクティブ化/非アクティブ化制御コマンド
1102 トリガ
1104 動作コード
1106 コンポーネントキャッシュ識別子
1108 ターゲットウェイ適用
1110 ターゲットウェイ
1200 コンポーネントキャッシュアクティブ化/非アクティブ化制御状況
1202 終了レジスタ
1300 コンポーネントキャッシュアクティブウェイテーブル
1302 コンポーネントキャッシュ識別子フィールド
1304 アクティブウェイフィールド
1400 コンポーネントキャッシュ予約テーブル
1402 ウェイ列
1404 ウェイ列
1406 ウェイ列
1408 ウェイ列
1410 ウェイ列
1412 ウェイ列
1414 ウェイ列
1416 ウェイ列
1418 セットグループ行
1420 セットグループ行
1422 セットグループ行
1424 セットグループ行
1426 セットグループ行
1428 セットグループ行
1430 セットグループ行
1432 セットグループ行
1500 システムキャッシュメモリ
1502 ウェイ
1504 ウェイ
1506 ウェイ
1508 ウェイ
1510 ウェイ
1512 ウェイ
1514 ウェイ
1518 ウェイ
1520 ウェイ
1522 ウェイ
1524 ウェイ
1526 ウェイ
1528 ウェイ
1530 ウェイ
1532 ウェイ
1534 ウェイ
1536 予約済みキャッシュウェイ
1538 予約済みキャッシュウェイ
1540 予約済みキャッシュウェイ
1542 非予約済みキャッシュウェイ
1600 予約済みキャッシュウェイ
1700 予約済みキャッシュウェイ
1702 予約済みキャッシュウェイ
1704 非予約済みキャッシュウェイ
1800 予約済みキャッシュウェイ
1900 態様方法
2000 態様方法
2100 態様方法
2200 態様方法
2300 態様方法
2400 態様方法
2500 モバイルデバイス
2502 プロセッサ
2504 タッチスクリーンコントローラ
2506 内部メモリ
2508 無線信号トランシーバ
2510 アンテナ
2512 タッチスクリーンパネル
2514 スピーカ
2516 セルラーネットワークワイヤレスモデムチップ
2518 周辺デバイス接続インターフェース
2520 ハウジング
2522 電源
2524 物理ボタン
2526 電源ボタン
2600 ラップトップコンピュータ
2608 アンテナ
2611 プロセッサ
2612 揮発性メモリ
2613 ディスクドライブ
2614 フロッピーディスクドライブ
2615 コンパクトディスク(CD)ドライブ
2616 セルラー電話トランシーバ
2617 タッチパッドタッチ面
2618 キーボード
2619 ディスプレイ
Claims (36)
- システムキャッシュをパーティショニングするための方法であって、
前記システムキャッシュ内のセットグループの個数を示すように構成されたセットシフト特色と、コンポーネントキャッシュがその中に配置されるセットグループを示すように構成されたセットオフセット特色と、前記コンポーネントキャッシュがその中に配置される1つまたは複数のウェイを示すように構成されたターゲットウェイ特色とに相関された複数のコンポーネントキャッシュ識別子を記憶するように構成されたコンポーネントキャッシュ構成テーブルをロードするステップであって、0より大きい前記セットシフト特色は、複数のセットグループによってパーティショニングされるコンポーネントキャッシュを示す、ロードするステップと、
クライアントからコンポーネントキャッシュ識別子を含むシステムキャッシュアクセス要求を受け取るステップと、
前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されたセットシフト特色、セットオフセット特色、およびターゲットウェイ特色を前記コンポーネントキャッシュ構成テーブルから取り出すステップと、
前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色によって定義されるシステムキャッシュ位置を前記コンポーネントキャッシュにパーティショニングするステップと
を含む、方法。 - 前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取るステップは、前記システムキャッシュの物理アドレスおよびカスタムインデックスを受け取るステップを含む、請求項1に記載の方法。
- 前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されるインデックスモードを前記コンポーネントキャッシュ構成テーブルから取り出すステップと、
前記インデックスモードが物理インデクシングを示すか、それともカスタムインデクシングを示すかを判定するステップと、
前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの物理アドレスに変換するステップと、
前記コンポーネントキャッシュの前記物理アドレスから読み取りまたは前記物理アドレスに書き込むために前記コンポーネントキャッシュの前記物理アドレスにアクセスするステップと
をさらに含む、請求項2に記載の方法。 - 前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの前記物理アドレスに変換するステップは、
前記システムキャッシュの前記物理アドレスのセットインデックスのビットの第1のセットを前記システムキャッシュの前記物理アドレスのタグと組み合わせるステップであって、前記セットインデックスのビットの前記第1のセットの個数は、前記セットシフト特色の値によって決定される、組み合わせるステップと、
前記セットインデックスのビットの前記第1のセットを前記セットオフセット特色の値に置換するステップと、
前記インデックスモードを判定する前記ステップがカスタムインデクシングを示す時に、前記セットインデックスのビットの第2のセットをカスタムインデックスに置換するステップと
を含む、請求項3に記載の方法。 - 前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取るステップは、
前記コンポーネントキャッシュの1つまたは複数の特色を受け取るステップと、
前記コンポーネントキャッシュ識別子に相関される前記受け取られた1つまたは複数の特色に対応する前記コンポーネントキャッシュ構成テーブル内の1つまたは複数の特色を更新するステップと
を含む、請求項1に記載の方法。 - 前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在するかどうかを判定するステップと、
前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在しないとの判定に応答して、前記コンポーネントキャッシュ構成テーブル内に前記コンポーネントキャッシュ識別子のレコードを作成するステップと
をさらに含む、請求項1に記載の方法。 - コンピューティングデバイスのブート時に前記コンポーネントキャッシュ構成テーブルをロードするステップと、
前記ロードされたコンポーネントキャッシュ構成テーブル内に前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色のすべての可能な組合せを含めるステップであって、各組合せは、異なるコンポーネントキャッシュ識別子と相関される、含めるステップと
をさらに含む、請求項1に記載の方法。 - 各コンポーネントキャッシュの前記ターゲットウェイ特色に従って、コンポーネントキャッシュごとにアソシアティビティを静的にまたはランタイムに動的にカスタマイズするステップと、
各コンポーネントキャッシュの置換ポリシー特色に従って、コンポーネントキャッシュごとに置換ポリシーをカスタマイズするステップと
をさらに含む、請求項1に記載の方法。 - 1コンポーネントキャッシュあたりのキャッシュラインサイズをカスタマイズするステップをさらに含む、請求項1に記載の方法。
- プロセッサと、
前記プロセッサに接続され、データを記憶し取り出すための高速アクセスを提供するように構成されたシステムキャッシュと、
前記プロセッサおよび前記システムに通信可能に接続され、
前記システムキャッシュ内のセットグループの個数を示すように構成されたセットシフト特色と、コンポーネントキャッシュがその中に配置されるセットグループを示すように構成されたセットオフセット特色と、前記コンポーネントキャッシュがその中に配置される1つまたは複数のウェイを示すように構成されたターゲットウェイ特色とに相関された複数のコンポーネントキャッシュ識別子を記憶するように構成されたコンポーネントキャッシュ構成テーブルをロードする動作であって、0より大きい前記セットシフト特色は、複数のセットグループによってパーティショニングされるコンポーネントキャッシュを示す、ロードする動作と、
クライアントからコンポーネントキャッシュ識別子を含むシステムキャッシュアクセス要求を受け取る動作と、
前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されたセットシフト特色、セットオフセット特色、およびターゲットウェイ特色を前記コンポーネントキャッシュ構成テーブルから取り出す動作と、
前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色によって定義されるシステムキャッシュ位置を前記コンポーネントキャッシュにパーティショニングする動作と
を含む動作を実行するように構成されたシステムキャッシュコントローラと
を含む、コンピューティングデバイス。 - 前記システムキャッシュコントローラは、前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取る動作が、前記システムキャッシュの物理アドレスおよびカスタムインデックスを受け取る動作を含むような動作を実行するようにさらに構成される、請求項10に記載のコンピューティングデバイス。
- 前記システムキャッシュコントローラは、
前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されるインデックスモードを前記コンポーネントキャッシュ構成テーブルから取り出す動作と、
前記インデックスモードが物理インデクシングを示すか、それともカスタムインデクシングを示すかを判定する動作と、
前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの物理アドレスに変換する動作と、
前記コンポーネントキャッシュの前記物理アドレスから読み取りまたは前記物理アドレスに書き込むために前記コンポーネントキャッシュの前記物理アドレスにアクセスする動作と
をさらに含む動作を実行するように構成される、請求項11に記載のコンピューティングデバイス。 - 前記システムキャッシュコントローラは、前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの前記物理アドレスに変換する動作が、
前記システムキャッシュの前記物理アドレスのセットインデックスのビットの第1のセットを前記システムキャッシュの前記物理アドレスのタグと組み合わせる動作であって、前記セットインデックスのビットの前記第1のセットの個数は、前記セットシフト特色の値によって決定される、組み合わせる動作と、
前記セットインデックスのビットの前記第1のセットを前記セットオフセット特色の値に置換する動作と、
前記インデックスモードを判定する前記動作がカスタムインデクシングを示す時に、前記セットインデックスのビットの第2のセットをカスタムインデックスに置換する動作と
を含むような動作を実行するように構成される、請求項12に記載のコンピューティングデバイス。 - 前記システムキャッシュコントローラは、前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取る動作が、
前記コンポーネントキャッシュの1つまたは複数の特色を受け取る動作と、
前記コンポーネントキャッシュ識別子に相関される前記受け取られた1つまたは複数の特色に対応する前記コンポーネントキャッシュ構成テーブル内の1つまたは複数の特色を更新する動作と
を含むような動作を実行するように構成される、請求項10に記載のコンピューティングデバイス。 - 前記システムキャッシュコントローラは、
前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在するかどうかを判定する動作と、
前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在しないとの判定に応答して、前記コンポーネントキャッシュ構成テーブル内に前記コンポーネントキャッシュ識別子のレコードを作成する動作と
をさらに含む動作を実行するように構成される、請求項10に記載のコンピューティングデバイス。 - 前記システムキャッシュコントローラは、
コンピューティングデバイスのブート時に前記コンポーネントキャッシュ構成テーブルをロードする動作と、
前記ロードされたコンポーネントキャッシュ構成テーブル内に前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色のすべての可能な組合せを含める動作であって、各組合せは、異なるコンポーネントキャッシュ識別子と相関される、含める動作と
をさらに含む動作を実行するように構成される、請求項10に記載のコンピューティングデバイス。 - 前記システムキャッシュコントローラは、
各コンポーネントキャッシュの前記ターゲットウェイ特色に従って、コンポーネントキャッシュごとにアソシアティビティを静的にまたはランタイムに動的にカスタマイズする動作と、
各コンポーネントキャッシュの置換ポリシー特色に従って、コンポーネントキャッシュごとに置換ポリシーをカスタマイズする動作と
をさらに含む動作を実行するように構成される、請求項10に記載のコンピューティングデバイス。 - 前記システムキャッシュコントローラは、1コンポーネントキャッシュあたりのキャッシュラインサイズをカスタマイズする動作をさらに含む動作を実行するように構成される、請求項10に記載のコンピューティングデバイス。
- プロセッサおよびシステムキャッシュコントローラに、
システムキャッシュ内のセットグループの個数を示すように構成されたセットシフト特色と、コンポーネントキャッシュがその中に配置されるセットグループを示すように構成されたセットオフセット特色と、前記コンポーネントキャッシュがその中に配置される1つまたは複数のウェイを示すように構成されたターゲットウェイ特色とに相関された複数のコンポーネントキャッシュ識別子を記憶するように構成されたコンポーネントキャッシュ構成テーブルをロードする動作であって、0より大きい前記セットシフト特色は、複数のセットグループによってパーティショニングされるコンポーネントキャッシュを示す、ロードする動作と、
クライアントからコンポーネントキャッシュ識別子を含むシステムキャッシュアクセス要求を受け取る動作と、
前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されたセットシフト特色、セットオフセット特色、およびターゲットウェイ特色を前記コンポーネントキャッシュ構成テーブルから取り出す動作と、
前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色によって定義されるシステムキャッシュ位置を前記コンポーネントキャッシュにパーティショニングする動作と
を含む動作を実行させるプロセッサ実行可能ソフトウェア命令をその上に記憶された、非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取る動作が、前記システムキャッシュの物理アドレスおよびカスタムインデックスを受け取る動作を含むような動作を実行させるように構成される、請求項19に記載の非一時的プロセッサ可読媒体。
- 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、
前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されるインデックスモードを前記コンポーネントキャッシュ構成テーブルから取り出す動作と、
前記インデックスモードが物理インデクシングを示すか、それともカスタムインデクシングを示すかを判定する動作と、
前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの物理アドレスに変換する動作と、
前記コンポーネントキャッシュの前記物理アドレスから読み取りまたは前記物理アドレスに書き込むために前記コンポーネントキャッシュの前記物理アドレスにアクセスする動作と
をさらに含む動作を実行させるように構成される、請求項20に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの前記物理アドレスに変換する動作が、
前記システムキャッシュの前記物理アドレスのセットインデックスのビットの第1のセットを前記システムキャッシュの前記物理アドレスのタグと組み合わせる動作であって、前記セットインデックスのビットの前記第1のセットの個数は、前記セットシフト特色の値によって決定される、組み合わせる動作と、
前記セットインデックスのビットの前記第1のセットを前記セットオフセット特色の値に置換する動作と、
前記インデックスモードを判定する前記動作がカスタムインデクシングを示す時に、前記セットインデックスのビットの第2のセットをカスタムインデックスに置換する動作と
を含むような動作を実行させるように構成される、請求項21に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取る動作が、
前記コンポーネントキャッシュの1つまたは複数の特色を受け取る動作と、
前記コンポーネントキャッシュ識別子に相関される前記受け取られた1つまたは複数の特色に対応する前記コンポーネントキャッシュ構成テーブル内の1つまたは複数の特色を更新する動作と
を含むような動作を実行させるように構成される、請求項19に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、
前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在するかどうかを判定する動作と、
前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在しないとの判定に応答して、前記コンポーネントキャッシュ構成テーブル内に前記コンポーネントキャッシュ識別子のレコードを作成する動作と
をさらに含む動作を実行させるように構成される、請求項19に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、
コンピューティングデバイスのブート時に前記コンポーネントキャッシュ構成テーブルをロードする動作と、
前記ロードされたコンポーネントキャッシュ構成テーブル内に前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色のすべての可能な組合せを含める動作であって、各組合せは、異なるコンポーネントキャッシュ識別子と相関される、含める動作と
をさらに含む動作を実行させるように構成される、請求項19に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、
各コンポーネントキャッシュの前記ターゲットウェイ特色に従って、コンポーネントキャッシュごとにアソシアティビティを静的にまたはランタイムに動的にカスタマイズする動作と、
各コンポーネントキャッシュの置換ポリシー特色に従って、コンポーネントキャッシュごとに置換ポリシーをカスタマイズする動作と
をさらに含む動作を実行させるように構成される、請求項19に記載の非一時的プロセッサ可読媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサおよび前記システムキャッシュコントローラに、1コンポーネントキャッシュあたりのキャッシュラインサイズをカスタマイズする動作をさらに含む動作を実行させるように構成される、請求項19に記載の非一時的プロセッサ可読媒体。
- システムキャッシュ内のセットグループの個数を示すように構成されたセットシフト特色と、コンポーネントキャッシュがその中に配置されるセットグループを示すように構成されたセットオフセット特色と、前記コンポーネントキャッシュがその中に配置される1つまたは複数のウェイを示すように構成されたターゲットウェイ特色とに相関された複数のコンポーネントキャッシュ識別子を記憶するように構成されたコンポーネントキャッシュ構成テーブルをロードするための手段であって、0より大きい前記セットシフト特色は、複数のセットグループによってパーティショニングされるコンポーネントキャッシュを示す、ロードするための手段と、
クライアントからコンポーネントキャッシュ識別子を含むシステムキャッシュアクセス要求を受け取るための手段と、
前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されたセットシフト特色、セットオフセット特色、およびターゲットウェイ特色を前記コンポーネントキャッシュ構成テーブルから取り出すための手段と、
前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色によって定義されるシステムキャッシュ位置を前記コンポーネントキャッシュにパーティショニングするための手段と
を含む、コンピューティングデバイス。 - 前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取るための手段は、前記システムキャッシュの物理アドレスおよびカスタムインデックスを受け取るための手段を含む、請求項28に記載のコンピューティングデバイス。
- 前記コンポーネントキャッシュ構成テーブル内の前記コンポーネントキャッシュ識別子と相関されるインデックスモードを前記コンポーネントキャッシュ構成テーブルから取り出すための手段と、
前記インデックスモードが物理インデクシングを示すか、それともカスタムインデクシングを示すかを判定するための手段と、
前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの物理アドレスに変換するための手段と、
前記コンポーネントキャッシュの前記物理アドレスから読み取りまたは前記物理アドレスに書き込むために前記コンポーネントキャッシュの前記物理アドレスにアクセスするための手段と
をさらに含む、請求項29に記載のコンピューティングデバイス。 - 前記システムキャッシュの前記物理アドレスを前記コンポーネントキャッシュの前記物理アドレスに変換するための手段は、
前記システムキャッシュの前記物理アドレスのセットインデックスのビットの第1のセットを前記システムキャッシュの前記物理アドレスのタグと組み合わせるための手段であって、前記セットインデックスのビットの前記第1のセットの個数は、前記セットシフト特色の値によって決定される、組み合わせるための手段と、
前記セットインデックスのビットの前記第1のセットを前記セットオフセット特色の値に置換するための手段と、
前記インデックスモードを判定することがカスタムインデクシングを示す時に、前記セットインデックスのビットの第2のセットをカスタムインデックスに置換するための手段と
を含む、請求項30に記載のコンピューティングデバイス。 - 前記クライアントから前記コンポーネントキャッシュ識別子を含む前記システムキャッシュアクセス要求を受け取るための手段は、
前記コンポーネントキャッシュの1つまたは複数の特色を受け取るための手段と、
前記コンポーネントキャッシュ識別子に相関される前記受け取られた1つまたは複数の特色に対応する前記コンポーネントキャッシュ構成テーブル内の1つまたは複数の特色を更新するための手段と
を含む、請求項28に記載のコンピューティングデバイス。 - 前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在するかどうかを判定するための手段と、
前記コンポーネントキャッシュ識別子が前記コンポーネントキャッシュ構成テーブル内に存在しないとの判定に応答して、前記コンポーネントキャッシュ構成テーブル内に前記コンポーネントキャッシュ識別子のレコードを作成するための手段と
をさらに含む、請求項28に記載のコンピューティングデバイス。 - コンピューティングデバイスのブート時に前記コンポーネントキャッシュ構成テーブルをロードするための手段と、
前記ロードされたコンポーネントキャッシュ構成テーブル内に前記セットシフト特色、前記セットオフセット特色、および前記ターゲットウェイ特色のすべての可能な組合せを含めるための手段であって、各組合せは、異なるコンポーネントキャッシュ識別子と相関される、含めるための手段と
をさらに含む、請求項28に記載のコンピューティングデバイス。 - 各コンポーネントキャッシュの前記ターゲットウェイ特色に従って、コンポーネントキャッシュごとにアソシアティビティを静的にまたはランタイムに動的にカスタマイズするための手段と、
各コンポーネントキャッシュの置換ポリシー特色に従って、コンポーネントキャッシュごとに置換ポリシーをカスタマイズするための手段と
をさらに含む、請求項28に記載のコンピューティングデバイス。 - 1コンポーネントキャッシュあたりのキャッシュラインサイズをカスタマイズするための手段をさらに含む、請求項28に記載のコンピューティングデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/333,981 US9612970B2 (en) | 2014-07-17 | 2014-07-17 | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
US14/333,981 | 2014-07-17 | ||
PCT/US2015/037681 WO2016010706A1 (en) | 2014-07-17 | 2015-06-25 | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017527884A true JP2017527884A (ja) | 2017-09-21 |
JP6214815B2 JP6214815B2 (ja) | 2017-10-18 |
Family
ID=55074693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017501680A Expired - Fee Related JP6214815B2 (ja) | 2014-07-17 | 2015-06-25 | セットおよびウェイによるコンポーネントキャッシュへの柔軟なキャッシュパーティショニングのための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9612970B2 (ja) |
EP (1) | EP3170085B1 (ja) |
JP (1) | JP6214815B2 (ja) |
CN (1) | CN106537361B (ja) |
TW (1) | TWI610172B (ja) |
WO (1) | WO2016010706A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2547191B (en) * | 2016-02-05 | 2020-01-08 | Advanced Risc Mach Ltd | An apparatus and method for supporting multiple cache features |
TWI636363B (zh) * | 2017-08-08 | 2018-09-21 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 |
US10678690B2 (en) * | 2017-08-29 | 2020-06-09 | Qualcomm Incorporated | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems |
CN109508302B (zh) * | 2017-09-14 | 2023-04-18 | 华为技术有限公司 | 一种内容填充方法和存储器 |
CN107861819B (zh) * | 2017-12-07 | 2021-07-16 | 郑州云海信息技术有限公司 | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 |
US10747679B1 (en) * | 2017-12-11 | 2020-08-18 | Amazon Technologies, Inc. | Indexing a memory region |
US10915326B1 (en) | 2019-07-31 | 2021-02-09 | Micron Technology, Inc. | Cache systems and circuits for syncing caches or cache sets |
US11048636B2 (en) | 2019-07-31 | 2021-06-29 | Micron Technology, Inc. | Cache with set associativity having data defined cache sets |
US11194582B2 (en) | 2019-07-31 | 2021-12-07 | Micron Technology, Inc. | Cache systems for main and speculative threads of processors |
US11200166B2 (en) | 2019-07-31 | 2021-12-14 | Micron Technology, Inc. | Data defined caches for speculative and normal executions |
US10908915B1 (en) | 2019-07-31 | 2021-02-02 | Micron Technology, Inc. | Extended tags for speculative and normal executions |
US11010288B2 (en) | 2019-07-31 | 2021-05-18 | Micron Technology, Inc. | Spare cache set to accelerate speculative execution, wherein the spare cache set, allocated when transitioning from non-speculative execution to speculative execution, is reserved during previous transitioning from the non-speculative execution to the speculative execution |
CN116185886B (zh) * | 2022-12-13 | 2023-10-13 | 中国科学院声学研究所 | 一种匹配表系统 |
CN117234431B (zh) * | 2023-11-14 | 2024-02-06 | 苏州元脑智能科技有限公司 | 缓存管理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01251386A (ja) * | 1988-03-30 | 1989-10-06 | Toshiba Corp | システム拡張方式 |
JP2005316842A (ja) * | 2004-04-30 | 2005-11-10 | Nec Corp | キャッシュメモリおよびキャッシュ制御方法 |
JP2007034514A (ja) * | 2005-07-25 | 2007-02-08 | Fuji Xerox Co Ltd | 情報処理装置 |
US20070143550A1 (en) * | 2005-12-19 | 2007-06-21 | Intel Corporation | Per-set relaxation of cache inclusion |
WO2011045931A1 (ja) * | 2009-10-14 | 2011-04-21 | パナソニック株式会社 | 情報処理装置 |
JP2015064863A (ja) * | 2013-08-26 | 2015-04-09 | 富士ゼロックス株式会社 | 情報処理装置、演算処理装置及びプログラム |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05324468A (ja) | 1992-05-21 | 1993-12-07 | Fujitsu Ltd | 階層化キャッシュメモリ |
US5434992A (en) | 1992-09-04 | 1995-07-18 | International Business Machines Corporation | Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace |
US5479627A (en) | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
US5781926A (en) | 1996-05-20 | 1998-07-14 | Integrated Device Technology, Inc. | Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of line fill |
US7558920B2 (en) | 2004-06-30 | 2009-07-07 | Intel Corporation | Apparatus and method for partitioning a shared cache of a chip multi-processor |
JP4336848B2 (ja) * | 2004-11-10 | 2009-09-30 | 日本電気株式会社 | マルチポートキャッシュメモリ及びマルチポートキャッシュメモリのアクセス制御方式 |
US7430145B2 (en) * | 2005-09-16 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | System and method for avoiding attempts to access a defective portion of memory |
US7613898B2 (en) | 2006-01-17 | 2009-11-03 | Globalfoundries Inc. | Virtualizing an IOMMU |
US20070239661A1 (en) | 2006-03-28 | 2007-10-11 | Sun Microsystems, Inc. | Systems and methods for a distributed in-memory database and distributed cache |
US7685401B2 (en) | 2006-12-27 | 2010-03-23 | Intel Corporation | Guest to host address translation for devices to access memory in a partitioned system |
US8285757B2 (en) * | 2007-01-31 | 2012-10-09 | Agency For Science, Technology And Research | File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system |
US9015399B2 (en) | 2007-08-20 | 2015-04-21 | Convey Computer | Multiple data channel memory module architecture |
CN101135994B (zh) * | 2007-09-07 | 2010-06-23 | 杭州华三通信技术有限公司 | 一种划分缓存空间的方法和装置以及缓存控制器 |
CN100492323C (zh) * | 2007-09-10 | 2009-05-27 | 杭州华三通信技术有限公司 | 对缓存内容进行保护的方法和装置以及缓存控制器 |
TWI382426B (zh) * | 2007-10-04 | 2013-01-11 | Realtek Semiconductor Corp | 預測快取記憶體之存取位置的方法及系統 |
US8055847B2 (en) * | 2008-07-07 | 2011-11-08 | International Business Machines Corporation | Efficient processing of data requests with the aid of a region cache |
US20100115233A1 (en) | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
CN101482851B (zh) * | 2008-12-31 | 2011-02-16 | 中国科学院计算技术研究所 | 二进制翻译器中线程共享目标本地码缓存替换方法及系统 |
US8745618B2 (en) | 2009-08-25 | 2014-06-03 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments |
US8533399B2 (en) | 2010-01-15 | 2013-09-10 | International Business Machines Corporation | Cache directory look-up re-use as conflict check mechanism for speculative memory requests |
US8386749B2 (en) | 2010-03-16 | 2013-02-26 | Advanced Micro Devices, Inc. | Address mapping in virtualized processing system |
JP2012203729A (ja) | 2011-03-25 | 2012-10-22 | Fujitsu Ltd | 演算処理装置および演算処理装置の制御方法 |
US8813085B2 (en) | 2011-07-19 | 2014-08-19 | Elwha Llc | Scheduling threads based on priority utilizing entitlement vectors, weight and usage level |
US9098418B2 (en) * | 2012-03-20 | 2015-08-04 | Apple Inc. | Coordinated prefetching based on training in hierarchically cached processors |
-
2014
- 2014-07-17 US US14/333,981 patent/US9612970B2/en active Active
-
2015
- 2015-06-25 WO PCT/US2015/037681 patent/WO2016010706A1/en active Application Filing
- 2015-06-25 EP EP15734019.1A patent/EP3170085B1/en not_active Not-in-force
- 2015-06-25 CN CN201580038378.3A patent/CN106537361B/zh active Active
- 2015-06-25 JP JP2017501680A patent/JP6214815B2/ja not_active Expired - Fee Related
- 2015-07-14 TW TW104122750A patent/TWI610172B/zh not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01251386A (ja) * | 1988-03-30 | 1989-10-06 | Toshiba Corp | システム拡張方式 |
JP2005316842A (ja) * | 2004-04-30 | 2005-11-10 | Nec Corp | キャッシュメモリおよびキャッシュ制御方法 |
JP2007034514A (ja) * | 2005-07-25 | 2007-02-08 | Fuji Xerox Co Ltd | 情報処理装置 |
US20070143550A1 (en) * | 2005-12-19 | 2007-06-21 | Intel Corporation | Per-set relaxation of cache inclusion |
WO2011045931A1 (ja) * | 2009-10-14 | 2011-04-21 | パナソニック株式会社 | 情報処理装置 |
JP2015064863A (ja) * | 2013-08-26 | 2015-04-09 | 富士ゼロックス株式会社 | 情報処理装置、演算処理装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20160019157A1 (en) | 2016-01-21 |
EP3170085A1 (en) | 2017-05-24 |
US9612970B2 (en) | 2017-04-04 |
JP6214815B2 (ja) | 2017-10-18 |
WO2016010706A1 (en) | 2016-01-21 |
CN106537361B (zh) | 2018-09-28 |
CN106537361A (zh) | 2017-03-22 |
TW201617891A (zh) | 2016-05-16 |
EP3170085B1 (en) | 2018-08-15 |
TWI610172B (zh) | 2018-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6378417B2 (ja) | 動的パーティショニングを用いる共有されるキャッシュのための方法および装置 | |
JP6214815B2 (ja) | セットおよびウェイによるコンポーネントキャッシュへの柔軟なキャッシュパーティショニングのための方法および装置 | |
CN107636625B (zh) | 用于共享系统高速缓存的虚拟化控制的方法和装置 | |
JP7091203B2 (ja) | メモリシステムおよび制御方法 | |
US9734070B2 (en) | System and method for a shared cache with adaptive partitioning | |
US20190073305A1 (en) | Reuse Aware Cache Line Insertion And Victim Selection In Large Cache Memory | |
US20200004687A1 (en) | Performance By Retaining High Locality Data In Higher Level Cache Memory | |
US9043570B2 (en) | System cache with quota-based control | |
US20140089600A1 (en) | System cache with data pending state | |
JP2018528515A (ja) | 効率的な並列コンピューティングのための簡略化されたタスクベースランタイムのための方法 | |
US20190042415A1 (en) | Storage model for a computer system having persistent system memory | |
US9311251B2 (en) | System cache with sticky allocation | |
CN109791510B (zh) | 在异构计算中管理数据流 | |
US20140095777A1 (en) | System cache with fine grain power management | |
TWI788476B (zh) | 用於機器學習的系統及方法 | |
JP2018511111A (ja) | ビクティムキャッシュモードを向上させるためのプロセススケジューリング | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
US10725675B2 (en) | Management apparatus, information processing apparatus, management method, and computer program product | |
JP2019164411A (ja) | 管理装置、情報処理装置、管理方法、およびプログラム | |
US11714753B2 (en) | Methods and nodes for handling memory | |
JP2022111330A (ja) | メモリシステムおよび制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170801 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170801 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170801 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170814 |
|
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: 20170821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170919 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6214815 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |