JP2023506264A - アクセスタイプの優先度に基づくキャッシュ管理 - Google Patents
アクセスタイプの優先度に基づくキャッシュ管理 Download PDFInfo
- Publication number
- JP2023506264A JP2023506264A JP2022536763A JP2022536763A JP2023506264A JP 2023506264 A JP2023506264 A JP 2023506264A JP 2022536763 A JP2022536763 A JP 2022536763A JP 2022536763 A JP2022536763 A JP 2022536763A JP 2023506264 A JP2023506264 A JP 2023506264A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- access type
- counter
- demand
- last
- 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
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims description 11
- 230000014759 maintenance of location Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 abstract description 11
- 230000007246 mechanism Effects 0.000 abstract description 5
- 238000005265 energy consumption Methods 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- 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
アクセスタイプの優先度に基づくキャッシュ管理のためのシステム、装置及び方法が開示される。システムは、少なくともプロセッサとキャッシュとを含む。プログラムの実行フェーズ中に、特定のアクセスタイプがキャッシュにおいてデマンドヒットを引き起こす可能性は、他のアクセスタイプよりも高い。デマンドヒットは、キャッシュに対するロードヒット及びストアヒットである。デマンドヒットを引き起こす可能性がより高いアクセスタイプを見いだすためにランタイムプロファイリングメカニズムを用いる。プロファイリングの結果に基づいて、今後アクセスされそうなキャッシュラインがそれらの最新のアクセスタイプに基づいて保持される。デマンドヒットを増やし、それによってシステムパフォーマンスを向上させることが目標である。効率的なキャッシュ置換ポリシーにより、冗長なデータ移動を減らし、それによってシステムパフォーマンスを向上させ、エネルギー消費を減らせる可能性がある。【選択図】図5
Description
本発明は、ローレンスリバモアナショナルセキュリティ(米国エネルギー省(DOE)から発注された、主要契約番号:DE-AC52-07NA27344、サブ契約番号:B620717)によるPathForward Projectの下、政府の支援を受けて行われたものである。米国政府は、本発明について一定の権利を有する。
(関連技術の説明)
コンピュータシステムは、通常、安価で高密度のダイナミックランダムアクセスメモリ(DRAM)チップで形成されたメインメモリを使用する。しかしながら、DRAMチップは、比較的長いアクセス時間に悩まされる。パフォーマンスを向上させるために、データプロセッサには、通常、キャッシュとして知られるローカルな高速メモリが少なくとも1つ含まれている。キャッシュには、プロセッサが頻繁にアクセスするデータのブロックがストアされる。本明細書で用いられる場合、「ブロック」は、連続する記憶域にストアされるバイトのセットであり、それらは、コヒーレンシの目的で単位として扱われる。本明細書で使用される場合、「キャッシュブロック」、「ブロック」、「キャッシュライン」及び「ライン」という用語はそれぞれ交換可能である。いくつかの実施形態では、ブロックは、キャッシュのアロケーション及びアロケーション解除の単位であってよい。ブロックのバイト数は、設計上の選択に応じて変動し、任意のサイズであってもよい。さらに、「キャッシュタグ」、「キャッシュラインタグ」及び「キャッシュブロックタグ」という用語はそれぞれ交換可能である。
コンピュータシステムは、通常、安価で高密度のダイナミックランダムアクセスメモリ(DRAM)チップで形成されたメインメモリを使用する。しかしながら、DRAMチップは、比較的長いアクセス時間に悩まされる。パフォーマンスを向上させるために、データプロセッサには、通常、キャッシュとして知られるローカルな高速メモリが少なくとも1つ含まれている。キャッシュには、プロセッサが頻繁にアクセスするデータのブロックがストアされる。本明細書で用いられる場合、「ブロック」は、連続する記憶域にストアされるバイトのセットであり、それらは、コヒーレンシの目的で単位として扱われる。本明細書で使用される場合、「キャッシュブロック」、「ブロック」、「キャッシュライン」及び「ライン」という用語はそれぞれ交換可能である。いくつかの実施形態では、ブロックは、キャッシュのアロケーション及びアロケーション解除の単位であってよい。ブロックのバイト数は、設計上の選択に応じて変動し、任意のサイズであってもよい。さらに、「キャッシュタグ」、「キャッシュラインタグ」及び「キャッシュブロックタグ」という用語はそれぞれ交換可能である。
キャッシュの記憶容量が限られているので、対応するキャッシュ領域が満杯である場合、何れのキャッシュラインを置換のために選択するかをキャッシュ管理ポリシーにより決定する。アプリケーションのパフォーマンスを向上させるために、効率的なキャッシュ管理ポリシーが重要である。しかしながら、「least recently used」(LRU)原則に基づくポリシー等のように、一部の従来のキャッシュ管理ポリシーは、キャッシュラインへの不規則なアクセスを処理する場合の効率が低い、又は、比較的複雑な回路実装を要するため適応性が制限され得る。
添付図面と共に以下の説明を参照することによって、本明細書で説明する方法及びメカニズムの利点をより良く理解することができる。
以下の説明では、本明細書で提示される方法及びメカニズムの十分な理解をもたらすために、多数の特定の詳細が示されている。しかしながら、当業者は、これらの特定の詳細を用いないで、様々な実施形態を実施し得ることを認識するはずである。いくつかの例では、本明細書で説明する手法を不明瞭にすることを回避するために、周知の構造、構成要素、信号、コンピュータプログラム命令、及び、技術が詳細に示されていない。説明を簡単且つ明確にするために、図面に示す要素は必ずしも縮尺通りに描かれていないことを理解されたい。例えば、いくつかの要素の寸法は、他の要素に対して誇張される場合がある。
アクセスタイプの優先度に基づくキャッシュ管理のための様々なシステム、装置及び方法が本明細書に開示される。一実施形態では、システムは、少なくともプロセッサとキャッシュとを含む。プログラムの実行フェーズ中に、特定のアクセスタイプがキャッシュにおいてデマンドヒットを引き起こす可能性は、他のアクセスタイプよりも高い。デマンドヒットは、キャッシュに対するロードヒット及びストアヒットである。デマンドヒットを引き起こす可能性がより高いアクセスタイプを見いだすために実行時(ランタイム)プロファイリングメカニズムを用いる。プロファイリングの結果に基づいて、今後アクセスされそうなキャッシュラインがそれらの最新のアクセスタイプに基づいて保持される。デマンドヒットを増やし、それによってシステムパフォーマンスを向上させることが目標である。効率的なキャッシュ置換ポリシーにより、冗長なデータ移動を減らし、それによってシステムパフォーマンスを向上させ、エネルギー消費を減らせる可能性がある。
図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、少なくともプロセッサ(複数可)110と、ファブリック120と、入出力(I/O)インタフェース(複数可)125と、メモリインタフェース130と、周辺装置(複数可)135と、メモリサブシステム140と、を含む。他の実施形態では、コンピューティングシステム100は、他の構成要素を含んでもよく、コンピューティングシステム100は、説明する構成要素を欠いてもよく、及び/又は、コンピューティングシステム100は、異なる構成とすることができる。一実施形態では、各プロセッサ110は、キャッシュサブシステム115を含む。キャッシュサブシステム115は、実施形態に応じて変更され得る様々なタイプのキャッシュのうち何れかを有する任意の数のキャッシュレベルを有する。場合によっては、キャッシュサブシステム115のキャッシュ階層内の1つ以上のキャッシュを、プロセッサ(複数可)110の外部の他の場所に配置することができる。
一実施形態では、キャッシュサブシステム115の1つ以上のキャッシュは、アクセスタイプの優先度に基づくキャッシュ管理スキームを用いる。例えば、ある実施形態では、キャッシュコントローラは、何れのアクセスタイプがデマンドヒットを引き起こす可能性が高いかを判断する。デマンドヒットは、ロード操作又はストア操作によって引き起こされるキャッシュへのヒットである。プロファイリングフェーズ中に、キャッシュコントローラは、複数のアクセスタイプの中から、何れのアクセスタイプが最も少ない数のデマンドヒットを引き起こしたかを判断する。次に、置換中、キャッシュコントローラは、複数のアクセスタイプのうちデマンドヒットの数が最も少ないアクセスタイプに一致する最終アクセスタイプの記録を有するキャッシュラインのエビクションを試みる。言い換えると、キャッシュコントローラは、キャッシュラインへのロードヒット又はストアヒットに先行する可能性が最も高いアクセスのタイプを動的に判定する。次に、キャッシュコントローラは、ロードヒット又はストアヒットに先行する可能性が最も高いアクセスタイプによって最近アクセスされたキャッシュラインを保護する。アクセスタイプの優先度に基づいてキャッシュ置換ポリシーを管理するために使用される手法のさらなる詳細は、この開示の残りの部分を通して提供される。
プロセッサ(複数可)110は、任意の数及びタイプの処理ユニット(例えば、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC))を表す。メモリサブシステム140は、任意の数及びタイプのメモリデバイスを含む。例えば、メモリサブシステム140のメモリのタイプには、高帯域幅メモリ(HBM)、不揮発性メモリ(NVM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(FeRAM)等が含まれ得る。I/Oインタフェース(複数可)125は、任意の数及びタイプのI/Oインタフェース(例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCIエクステンデッド(PCI-X)、PCIE(PCI Express)バス、ギガビットイーサネット(登録商標)(GBE)バス、ユニバーサルシリアルバス(USB))を表す。様々なタイプの周辺装置135(複数可)がI/Oインタフェース125(複数可)に結合されてもよい。そのような周辺装置(複数可)135は、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティック又は他のタイプのゲームコントローラ、メディア記録デバイス、外部ストレージデバイス、ネットワークインタフェースカード等を含む(が、これらに限定されない)。
様々な実施形態において、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、ゲームコンソール、サーバ、ストリーミングデバイス、ウェアラブルデバイス、又は、他の様々なタイプのうち何れかのコンピューティングシステム若しくはデバイスである。コンピューティングシステム100の構成要素の数は、実施形態ごとに異なることに留意されたい。例えば、他の実施形態では、図1に示す数よりも多い又は少ない構成要素が存在する。他の実施形態では、コンピューティングシステム100は、図1に示されていない他の構成要素を含むことにも留意されたい。加えて、他の実施形態では、コンピューティングシステム100は、図1に示す以外の方法で構成される。
図2を参照すると、コンピューティングシステム200の一実施形態のブロック図が示されている。図示したように、システム200は、デスクトップコンピュータ210、ラップトップコンピュータ220、サーバ230、モバイルデバイス240等のチップ、回路、構成要素等を表す。他のデバイスも可能であり、考慮される。図示した実施形態では、システム200は、(図1の)キャッシュサブシステム115の少なくとも1つのインスタンスを含む。図2には示されていないが、システム200は、1つ以上のプロセッサ、1つ以上のメモリデバイス、1つ以上の周辺装置等のように、任意の数及びタイプの他の構成要素を含むことができる。キャッシュサブシステム115は、アクセスタイプ優先度に基づくキャッシュ管理スキームを用いる任意の数のキャッシュレベルを含む。
図3を参照すると、各キャッシュラインの最終アクセスタイプを追跡するキャッシュ300の一実施形態のブロック図が示されている。様々な実施形態では、キャッシュ300は、システムメモリとは別の、低遅延で高帯域幅のメモリである。いくつかの実施形態では、キャッシュ300は、キャッシュメモリサブシステム(例えば、図1のキャッシュサブシステム115)における最終レベルのキャッシュとして使用される。他の実施形態では、キャッシュ300は、キャッシュメモリサブシステム内の別のレベルである。
読み取り又は書き込み要求がキャッシュ300によって受信されると、タグストア302のルックアップが、要求の対象であるアドレスのタグを使用して実行される。ルックアップ結果がヒットであり、データストア304のキャッシュラインへのアクセスが実行される場合、アクセスタイプは、タグストレージ302の対応するエントリ306の最終アクセスタイプフィールド308にストアされる。一実施形態では、タグストア302及びデータストア304がアレイとして構成されるが、他の構成も可能であり、企図される。いくつかの実施形態では、タグストレージ302及びデータストレージ304の各々は別のエンティティである一方、他の実施形態では、それらは単一のストレージエンティティ(デバイス)に組み合わされている。何れの場合も、タグ302及びデータ304ストアは、単にデータストア又はデータストレージデバイスと呼ばれることがある。一実施形態では、異なる可能なアクセスタイプは、ロード、ストア、プリフェッチ、ライトバックを含む。本明細書で使用される場合、「ロード操作」又は「ロードアクセス」は、記憶域からプロセッサ又は実行ユニットへのデータの転送を指定する操作として定義される。「ストア操作」又は「ストアアクセス」は、プロセッサ又は実行ユニットから記憶域へのデータの転送を指定する操作として定義される。「プリフェッチ操作」又は「プリフェッチアクセス」は、データがデマンド操作によって要求される前に、記憶域からキャッシュへのデータの転送を指定する操作として定義される。プリフェッチアクセスの対象となるデータは、誤った予測に基づいている場合、実行ユニットによって使用されずに終わる可能性がある。「ライトバック操作」又は「ライトバックアクセス」は、ダーティキャッシュラインを下位レベルのキャッシュ又は記憶域に転送することとして定義される。「ダーティキャッシュライン」は、変更され、下位レベルのキャッシュ又はメインメモリに未だ書き込まれていないキャッシュラインとして定義される。
第2タグストア302へのルックアップが失敗し、キャッシュラインを要求にアロケーションする場合、キャッシュコントローラ320は、新しいキャッシュラインをストアできるように何れのキャッシュラインをエビクションするかを決定する。一実施形態では、キャッシュコントローラ320は、第2タグストア302の対応するセットの各エントリにストアされた最終アクセスタイプフィールド308を使用して、何れのキャッシュラインを第2データストア304からエビクションするかを決定する。例えば、一実施形態では、キャッシュコントローラ320は、各アクセスタイプに関連する優先度をリストするソートされた優先度350を取得する。キャッシュコントローラ320がソートされた優先度350を取得すると、キャッシュコントローラ320は、ソートされた優先度350に従って最終アクセスタイプが最低の優先度であるキャッシュラインを検索する。キャッシュコントローラ320は、制御ユニット又は制御ロジックと呼ばれる場合があることに留意されたい。
一実施形態では、キャッシュ300は、各アクセスタイプのデマンドヒットの数を追跡するためのカウンタ340を含む。デマンドヒットとは、ロード操作又はストア操作が最終アクセスタイプフィールド308のエントリにヒットすることを指す。一実施形態では、カウンタ340は、異なるアクセスタイプごとのカウンタを含む。例えば、プリフェッチアクセスタイプのカウンタ340は、最終アクセスタイプフィールド308がプリフェッチエンコーディングで符号化されているキャッシュラインにデマンドアクセスがヒットしたときにインクリメントされる。一実施形態では、カウンタ340の値は、各アクセスタイプの優先度を決定するために使用される。例えば、カウンタ値が大きいほど、対応するアクセスタイプの優先度が高くなる。一実施形態では、定期的に、キャッシュコントローラ320は、カウンタ340の値を取得し、値を降順でソートする。次に、キャッシュコントローラ320は、カウンタ340のソートされた値に基づいてソートされた優先度350を生成し、最も高い優先度が、カウンタが最も高い値を有するアクセスタイプに割り当てられる。他のアクセスタイプには、カウンタの値に基づいて降順で優先度が割り当てられる。
一実施形態に従って使用することができる最終アクセスタイプエンコーディングの一例は、最終アクセスタイプエンコーディング表330に示されている。例えば、ビット「00」は、最終アクセスタイプがロードであったことを示す。ビット「01」の場合、これは最終アクセスタイプがストアであったことを示す。ビット「10」の場合、これは最終アクセスタイプがプリフェッチであったことを示す。ビット「11」の場合、これは最終アクセスタイプがライトバックであったことを示す。他の実施形態では、第2タグストア302のエントリの最終アクセスタイプフィールド308は、2以外の他のビット数を有することができる。また、他の実施形態では、最終アクセスタイプのエンコーディング表330に示されているものとは異なる他のエンコーディングを使用することができる。
図4を参照すると、各アクセスタイプによって引き起こされたデマンドヒットの数を追跡するためのカウンタを保持するキャッシュ400の一実施形態のブロック図が示されている。所定のアドレスに対してキャッシュ400のルックアップが実行される場合、所定のアドレスのタグ410、セット415及びオフセット420の各部分が、キャッシュ400の様々な構造にアクセスするために使用される。アドレスのセット部分415がキャッシュ400の所定のセットを選択するために使用され、次いで、アドレスのタグ部分410がコンパレータ425によって、所定のセットのウェイ405にストアされたタグと比較される。図示した例では、所定のキャッシュのセット400は、4つのウェイ405(ウェイ0~ウェイ3)を含むが、他のキャッシュにおいては、より多く又はより少ないウェイを実装することができる。
アドレスのタグ部分410のウェイ405の1つで一致が見つかった場合、対応する最終アクセスタイプフィールド430から最終アクセスタイプが取得される。アクセスがデマンドヒット(すなわち、ロードヒット又はストアヒット)である場合、最終アクセスタイプが比較ロジック440に提供される。最終アクセスタイプに応じて、対応するカウンタがインクリメントされる。例えば、最終アクセスタイプがロードであった場合、ロードカウンタ445がインクリメントされる。最終アクセスタイプがストアであった場合、ストアカウンタ450がインクリメントされる。最終アクセスタイプがプリフェッチであった場合、プリフェッチカウンタ455がインクリメントされる。そうではなく、最終アクセスタイプがライトバックであった場合、ライトバックカウンタ460がインクリメントされる。
アクセス数が一定のプログラム可能な閾値数に達すると、キャッシュコントローラは、ソートフェーズ465を実行して、カウンタ445,450,455,460をそれらのカウント値に従って降順でソートする。次に、キャッシュコントローラは、優先度割り当てフェーズ470を実行して、ソートされたカウンタ445,450,455,460に優先度を割り当てる。カウント値が最も高いカウンタが最も高い優先度を取得し、次にカウント値が高いカウンタが次に高い優先度を取得する等である。次に、エビクションするキャッシュラインをキャッシュコントローラが検索する場合、優先度を使用して置換ポリシーを決定する。言い換えると、キャッシュコントローラがキャッシュラインをエビクションする必要がある場合、キャッシュコントローラは、優先度が最低のキャッシュラインをエビクションする。
図5を参照すると、最終アクセスタイプに基づいてキャッシュラインの優先度をセットするための方法500の一実施形態が示されている。説明のために、この実施形態のステップ及び図6のステップは、順番に示されている。しかしながら、説明する方法の様々な実施形態においては、説明する要素のうち1つ以上が同時に実行されてもよいし、図示した順序と異なる順序で実行されてもよいし、完全に省略されてもよいことに留意されたい。他の追加の要素も必要に応じて実行される。本明細書に記載される様々なシステム又は装置の何れも、方法500を実施するように構成されている。
カウンタは、異なるアクセスタイプごとにキャッシュコントローラによって保持される(ブロック505)。一実施形態では、ロード、ストア、プリフェッチ、ライトバックの4つの個別のアクセスタイプに対する4つのカウンタがある。他の実施形態では、他の数のカウンタにより、他の数の異なるアクセスタイプを追跡できる。例えば、別の実施形態では、複数のカウンタが複数の異なるタイプのロードを追跡でき、第1のカウンタは第1のアプリケーションからのロードを追跡し、第2のカウンタは第2のアプリケーションからのロードを追跡することができる等である。他のカウンタが、個別のアプリケーションの各々からのストア、個別のアプリケーションの各々からのプリフェッチ、及び、アプリケーションの各々からのライトバックを追跡できる。他の実施形態では、アクセスタイプの他のタイプをキャッシュコントローラによって追跡できる。一実施形態では、キャッシュ内の全てのセットがアクセスタイプカウンタの同じグループを共有する。別の実施形態では、カウンタの複数のグループがあり、カウンタのグループの各々がキャッシュセットの一部によって共有される。さらなる実施形態では、カウンタの単一のグループが、キャッシュ全体ではなく、いくつかの代表的なセットを追跡する。
キャッシュによって受信された要求がデマンドヒット(例えば、ロードヒット、ストアヒット)の結果となる場合、ヒットしたキャッシュラインに対応する最終アクセスタイプフィールドが取得される(ブロック510)。次に、取得された最終アクセスタイプフィールドで指定されたアクセスタイプに対応するカウンタがインクリメントされる(ブロック515)。閾値数より少ない数のキャッシュアクセスが行われた場合(条件付きブロック520:「いいえ」)、方法500はブロック510に戻る。キャッシュアクセスの数が閾値数に達した場合(条件付きブロック520:「はい」)、アクセスタイプカウンタが降順でソートされ、ソートされた順序に基づいてアクセスタイプに優先度が割り当てられる(ブロック525)。次に、優先度を使用して、エビクションするキャッシュラインを選択するための置換ポリシーが決定される(ブロック530)。例えば、プリフェッチアクセスタイプのカウンタが全てのカウンタの中で最低の値を有する場合、キャッシュコントローラは、プリフェッチアクセスによって最後にアクセスされたエビクションキャッシュラインの選択を優先する。別の例では、ロードアクセスタイプカウンタが全てのカウンタの中で最も高い値を有している場合、キャッシュコントローラはロードアクセスによって最後にアクセスされたキャッシュラインの保持を試みる。ブロック530の後、方法500は終了する。方法500は、定期的に実行することができ、又は、何らかのイベント(例えば、アプリケーションの新しいフェーズの開始)の検出に応じて実行して、異なるアクセスタイプの優先度を更新することができることに留意されたい。
図6を参照すると、エビクションのためのキャッシュラインを選択するための方法600の一実施形態が示されている。キャッシュコントローラは、所定の要求のキャッシュミスを検出する(ブロック605)。ミスの検出に応じて、キャッシュコントローラは、所定の要求の対象となるデータ用のスペースを空けるために、エビクションするキャッシュラインを検索する(ブロック610)。次に、キャッシュコントローラは、最新の追跡間隔に基づいて、何れのアクセスタイプが最低の優先度を有するかを判定する(ブロック615)。様々な実施形態では、間隔は、所定の期間、所定のクロックサイクル数、所定の数のトランザクション又はアクセス等である。最新の追跡間隔に基づいて何れのアクセスタイプが最低の優先度を有するかを決定する一例は、(図5の)方法500に関連する説明に記載されている。次に、キャッシュコントローラは、最終アクセスタイプフィールドが最も優先度の低いアクセスタイプと一致するキャッシュラインを検索する(ブロック620)。
最低の優先度のアクセスタイプにセットされた最終アクセスタイプフィールドを有するキャッシュラインが見つかった場合(条件付きブロック625:「はい」)、キャッシュコントローラは、このキャッシュラインをエビクションする(ブロック630)。それ以外の場合、最終アクセスフィールドが最低の優先度のアクセスタイプにセットされたキャッシュラインが見つからない場合(条件付きブロック625:「no」)、キャッシュコントローラは、他の残りのアクセスタイプのうち何れのアクセスタイプが最低の優先度を有するかを判定する(ブロック640)。この次に最も低い優先度のアクセスタイプにセットされた最終アクセスフィールドを有するキャッシュラインが見つかった場合(条件付きブロック645:「はい」)、キャッシュコントローラは、このキャッシュラインをエビクションする(ブロック650)。そうではなく、最終アクセスフィールドがこの次に低い優先度のアクセスタイプにセットされたキャッシュラインが見つからない場合(条件付きブロック645:「no」)、方法600はブロック640に戻り、他の残りのアクセスタイプのうち何れのアクセスタイプが最低の優先度を有するかをキャッシュコントローラが判定する。ブロック630及び650の後、キャッシュコントローラは、エビクションされたキャッシュラインのウェイに新しいキャッシュラインをストアする(ブロック635)。ブロック650の後、方法600が終了する。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令は、本明細書で説明する方法及び/又はメカニズムを実施するために使用される。例えば、汎用又は専用プロセッサによって実行可能なプログラム命令が企図される。様々な実施形態において、そのようなプログラム命令は、高水準のプログラミング言語によって表現される。他の実施形態では、プログラム命令は、高レベルプログラミング言語からバイナリ形式、中間形式又は他の形式にコンパイルされる。或いは、プログラム命令は、ハードウェアの動作又は設計を記述するように書かれる。このようなプログラム命令は、C等の高水準のプログラミング言語によって表現される。或いは、Verilog等のハードウェア設計言語(HDL)が使用される。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体のうち何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に、そのようなコンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
上述した実施形態が、実施形態の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に理解されれば、多くの変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含するように解釈されることが意図される。
Claims (20)
- プロセッサと、
キャッシュと、を備えるシステムであって、
前記キャッシュは、
複数のキャッシュラインの各々の最終アクセスタイプ指標を保持することと、
複数のカウンタを保持することであって、前記複数のカウンタの各々は、複数の異なるアクセスタイプの各々の数を追跡する、ことと、
デマンドヒットの数が最も少ないカウンタに対応する所定のアクセスタイプに対して最低の優先度を割り当てることであって、デマンドヒットは、ロード操作又はストア操作のために前記キャッシュにヒットすることである、ことと、
キャッシュミスを検出したことに応じて、最低の優先度が割り当てられた前記所定のアクセスタイプが最終アクセスタイプフィールドに設定されたキャッシュラインのエビクションを優先することと、
を行うように構成されている、
システム。 - 第1のキャッシュラインへのデマンドヒットを検出したことに応じて、
前記キャッシュは、
プリフェッチアクセスタイプが前記第1のキャッシュラインの最終アクセスタイプフィールドに設定されていることを検出したことに応じて、第1のカウンタをインクリメントすることと、
ライトバックアクセスタイプが前記第1のキャッシュラインの最終アクセスタイプフィールドに設定されていることを検出したことに応じて、第2のカウンタをインクリメントすることと、
を行うように構成されている、
請求項1のシステム。 - 前記キャッシュは、
デマンドヒット数が最も多いカウンタを有する第1のアクセスタイプに最高の優先度を割り当てることと、
前記第1のアクセスタイプが最終アクセスタイプフィールドに設定されているキャッシュラインを保持することを優先することと、
を行うように構成されている、
請求項1のシステム。 - 前記キャッシュは、最新の時間間隔内のカウンタごとのデマンドヒットの数に従って、前記複数のカウンタをソートするように構成されている、
請求項1のシステム。 - 前記キャッシュは、前記最終アクセスタイプ指標を、対応するキャッシュラインの第1のタグエントリの最終アクセスタイプフィールドにストアするように構成されている、
請求項1のシステム。 - 前記所定のアクセスタイプは、プリフェッチアクセスタイプである、
請求項1のシステム。 - 前記所定のアクセスタイプは、ライトバックアクセスタイプである、
請求項1のシステム。 - キャッシュが、複数のキャッシュラインの各々の最終アクセスタイプ指標を保持することと、
複数のカウンタを保持することであって、前記複数のカウンタの各々は、複数の異なるアクセスタイプの各々の数を追跡する、ことと、
デマンドヒットの数が最も少ないカウンタに対応する所定のアクセスタイプに対して最低の優先度を割り当てることであって、デマンドヒットは、ロード操作又はストア操作のために前記キャッシュにヒットすることである、ことと、
キャッシュミスを検出したことに応じて、最低の優先度が割り当てられた前記所定のアクセスタイプが最終アクセスタイプフィールドに設定されたキャッシュラインのエビクションを優先することと、を含む、
方法。 - 第1のキャッシュラインへのデマンドヒットを検出したことに応じて、
前記方法は、
プリフェッチアクセスタイプが前記第1のキャッシュラインの最終アクセスタイプフィールドに設定されていることを検出したことに応じて、第1のカウンタをインクリメントすることと、
ライトバックアクセスタイプが前記第1のキャッシュラインの最終アクセスタイプフィールドに設定されていることを検出したことに応じて、第2のカウンタをインクリメントすることと、を含む、
請求項8の方法。 - 前記複数のカウンタのうちデマンドヒット数が最も多いカウンタを有する第1のアクセスタイプに最高の優先度を割り当てることと、
前記第1のアクセスタイプが最終アクセスタイプフィールドに設定されているキャッシュラインを保持することを優先することと、を含む、
請求項8の方法。 - 最新の時間間隔内のカウンタごとのデマンドヒットの数に従って、前記複数のカウンタをソートすることをさらに含む、
請求項8の方法。 - 前記最終アクセスタイプ指標を、対応するキャッシュラインの第1のタグエントリの最終アクセスタイプフィールドにストアすることを含む、
請求項8の方法。 - 所定のアクセスタイプは、プリフェッチアクセスタイプである、
請求項8の方法。 - 所定のアクセスタイプは、ライトバックアクセスタイプである、
請求項8の方法。 - データストアと、
キャッシュコントローラと、を備えるキャッシュであって、
前記データストア内の複数のキャッシュラインの各々の最終アクセスタイプ指標を前記データストア内に保持することと、
複数のカウンタを保持することであって、前記複数のカウンタの各々は、複数の異なるアクセスタイプの各々の数を追跡する、ことと、
デマンドヒットの数が最も少ないカウンタに対応する所定のアクセスタイプに対して最低の優先度を割り当てることであって、デマンドヒットは、ロード操作又はストア操作のために前記キャッシュへのヒットすることである、ことと、
キャッシュミスを検出したことに応じて、最低の優先度が割り当てられた前記所与のアクセスタイプが最終アクセスタイプフィールドに設定されたキャッシュラインのエビクションを優先することと、
を行うように構成されている、
キャッシュ。 - 第1のキャッシュラインへのデマンドヒットを検出したことに応じて、
前記キャッシュコントローラは、
プリフェッチアクセスタイプが前記第1のキャッシュラインの最終アクセスタイプフィールドに設定されていることを検出したことに応じて、第1のカウンタをインクリメントすることと、
ライトバックアクセスタイプが前記第1のキャッシュラインの最終アクセスタイプフィールドに設定されていることを検出したことに応じて、第2のカウンタをインクリメントすることと、
を行うように構成されている、
請求項15のキャッシュ。 - 前記キャッシュコントローラは、
複数のカウンタのうちデマンドヒット数が最も多いカウンタを有する第1のアクセスタイプに最高の優先度を割り当てることと、
前記第1のアクセスタイプが最終アクセスタイプフィールドに設定されているキャッシュラインを保持することを優先することと、
を行うように構成されている、
請求項15のキャッシュ。 - 前記キャッシュコントローラは、最新の時間間隔内のカウンタごとのデマンドヒットの数に従って、複数のカウンタをソートするように構成されている、
請求項15のキャッシュ。 - 前記所定のアクセスタイプは、プリフェッチアクセスタイプである、
請求項15のキャッシュ。 - 前記所定のアクセスタイプは、ライトバックアクセスタイプである、
請求項15のキャッシュ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/716,194 US11768779B2 (en) | 2019-12-16 | 2019-12-16 | Cache management based on access type priority |
US16/716,194 | 2019-12-16 | ||
PCT/US2020/064884 WO2021126777A1 (en) | 2019-12-16 | 2020-12-14 | Cache management based on access type priority |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023506264A true JP2023506264A (ja) | 2023-02-15 |
Family
ID=74175955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022536763A Pending JP2023506264A (ja) | 2019-12-16 | 2020-12-14 | アクセスタイプの優先度に基づくキャッシュ管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11768779B2 (ja) |
EP (1) | EP4078387B1 (ja) |
JP (1) | JP2023506264A (ja) |
KR (1) | KR20220110225A (ja) |
CN (1) | CN114830101A (ja) |
WO (1) | WO2021126777A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778693B (zh) * | 2021-11-12 | 2022-02-08 | 北京壁仞科技开发有限公司 | 缓存操作方法、缓存操作装置、电子设备及处理器 |
KR102579319B1 (ko) | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
KR102579320B1 (ko) | 2023-04-19 | 2023-09-18 | 메티스엑스 주식회사 | 캐시 메모리 장치 및 이를 이용하는 캐시 스케줄링 구현 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003131946A (ja) * | 2001-10-19 | 2003-05-09 | Nec Corp | キャッシュメモリ制御装置及び方法 |
US8688915B2 (en) | 2011-12-09 | 2014-04-01 | International Business Machines Corporation | Weighted history allocation predictor algorithm in a hybrid cache |
US10152421B2 (en) * | 2015-11-23 | 2018-12-11 | Intel Corporation | Instruction and logic for cache control operations |
EP3388935B1 (en) * | 2016-01-06 | 2021-09-29 | Huawei Technologies Co., Ltd. | Cache management method, cache controller and computer system |
US10007614B2 (en) * | 2016-02-02 | 2018-06-26 | Cavium, Inc. | Method and apparatus for determining metric for selective caching |
US10268600B2 (en) | 2017-09-12 | 2019-04-23 | Intel Corporation | System, apparatus and method for prefetch-aware replacement in a cache memory hierarchy of a processor |
US11429529B2 (en) * | 2019-11-21 | 2022-08-30 | Arm Limited | Prefetching based on detection of interleaved constant stride sequences of addresses within a sequence of demand target addresses |
-
2019
- 2019-12-16 US US16/716,194 patent/US11768779B2/en active Active
-
2020
- 2020-12-14 WO PCT/US2020/064884 patent/WO2021126777A1/en unknown
- 2020-12-14 KR KR1020227020575A patent/KR20220110225A/ko unknown
- 2020-12-14 EP EP20839190.4A patent/EP4078387B1/en active Active
- 2020-12-14 JP JP2022536763A patent/JP2023506264A/ja active Pending
- 2020-12-14 CN CN202080087186.2A patent/CN114830101A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4078387A1 (en) | 2022-10-26 |
EP4078387B1 (en) | 2023-11-15 |
CN114830101A (zh) | 2022-07-29 |
US20210182216A1 (en) | 2021-06-17 |
WO2021126777A1 (en) | 2021-06-24 |
KR20220110225A (ko) | 2022-08-05 |
US11768779B2 (en) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387315B2 (en) | Region migration cache | |
US11809322B2 (en) | Region based directory scheme to adapt to large cache sizes | |
US7552288B2 (en) | Selectively inclusive cache architecture | |
US9158685B2 (en) | System cache with cache hint control | |
US10007614B2 (en) | Method and apparatus for determining metric for selective caching | |
US20140181402A1 (en) | Selective cache memory write-back and replacement policies | |
EP4078387B1 (en) | Cache management based on access type priority | |
CN111344684A (zh) | 多层缓存安置机制 | |
KR102453192B1 (ko) | 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체 | |
JP7377952B2 (ja) | 圧縮キャッシュに対するフレキシブルな辞書共有 | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US20180113815A1 (en) | Cache entry replacement based on penalty of memory access | |
US11782848B2 (en) | Home agent based cache transfer acceleration scheme | |
US9128856B2 (en) | Selective cache fills in response to write misses | |
US20210182213A1 (en) | Cache line re-reference interval prediction using physical page address | |
US11321235B2 (en) | Cache memory device, system including the same, and method of operating the same | |
KR101823983B1 (ko) | 메모리 디바이스들 및 방법들 | |
US10545875B2 (en) | Tag accelerator for low latency DRAM cache | |
EP3506112A1 (en) | Multi-level system memory configurations to operate higher priority users out of a faster memory level | |
Jokar et al. | Cooperative nv-numa: prolonging non-volatile memory lifetime through bandwidth sharing | |
CN111480151A (zh) | 将高速缓存线从共用存储器页面冲洗到存储器 | |
EP4035015B1 (en) | System probe aware last level cache insertion bypassing | |
US10552325B2 (en) | Reducing write-backs to memory by controlling the age of cache lines in lower level cache | |
US9734071B2 (en) | Method and apparatus for history-based snooping of last level caches | |
US11526448B2 (en) | Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231110 |