JP6855642B1 - プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術 - Google Patents

プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術 Download PDF

Info

Publication number
JP6855642B1
JP6855642B1 JP2020549639A JP2020549639A JP6855642B1 JP 6855642 B1 JP6855642 B1 JP 6855642B1 JP 2020549639 A JP2020549639 A JP 2020549639A JP 2020549639 A JP2020549639 A JP 2020549639A JP 6855642 B1 JP6855642 B1 JP 6855642B1
Authority
JP
Japan
Prior art keywords
read request
request
memory read
speculative
speculative memory
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
Application number
JP2020549639A
Other languages
English (en)
Other versions
JP2021510886A (ja
Inventor
クマール アガルワル タヌジ
クマール アガルワル タヌジ
ボミク アナスア
ボミク アナスア
ベンソン ハント ダグラス
ベンソン ハント ダグラス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of JP6855642B1 publication Critical patent/JP6855642B1/ja
Publication of JP2021510886A publication Critical patent/JP2021510886A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

方法は、ペナルティメイトレベルキャッシュからメインメモリへの投機的メモリ読み出し要求の要求レートを監視することを含む。投機的メモリ読み出し要求は、ペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求に対応する。データ読み出し要求によって要求されたデータについての最終レベルキャッシュの検索のヒット率を監視する。メインメモリへのコアデマンドの投機的メモリ読み出し要求は、要求レート及びヒット率に基づいて、対応するコアデマンドデータ読み出し要求のデータについての最終レベルキャッシュの検索と並行して、選択的に有効にされる。メインメモリへのプリフェッチの投機的メモリ読み出し要求は、要求レート及びヒット率に基づいて、対応するプリフェッチデータ読み出し要求のデータについての最終レベルキャッシュの検索と並行して選択的に有効にされる。【選択図】図9

Description

一般に、プロセッサコアの速度とメインメモリの速度との間のギャップを埋めるために、プロセッサシステムは、マルチレベルキャッシュ階層を使用し、各キャッシュは、先行するキャッシュよりも大きく、後続のキャッシュよりも高速である。図1は、3つのキャッシュレベルを有するマルチレベルキャッシュ階層とメインメモリとを含む例示的な処理システムを示す図である。処理システム100は、レベル2キャッシュ110に接続された分割レベル1キャッシュ(例えば、命令キャッシュ106及びデータキャッシュ108)を有するプロセッサ102を含む。レベル3キャッシュ112は、プロセッサ102の外部にあり、メインメモリ114と通信し、メインメモリは、従来のオフチップダイナミックランダムアクセスメモリ(DRAM)、より高速なオンチップDRAM、及び/又は、メモリ技術(例えば、DRAM、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ、メモリスタ若しくは他のメモリタイプ等)の組み合わせを含むことができる。最終レベルキャッシュ(例えば、レベル3キャッシュ112)からメインメモリ114にアクセスすることによるサービスミスは、長いメモリアクセスレイテンシ(例えば、少なくとも200クロックサイクルのメモリアクセスレイテンシ)を有し、システムパフォーマンスに大きな影響を与える可能性がある。したがって、メモリにアクセスするための改善された技術が望まれる。
(本発明の実施形態の開示)
少なくとも1つの実施形態では、メモリシステムのメモリアクセスレイテンシを低減する方法は、ペナルティメイト(penultimate)レベルキャッシュからメインメモリへの投機的メモリ読み出し要求の要求レートを監視することを含む。投機的メモリ読み出し要求は、ペナルティメイトレベルキャッシュでミスしたデータ読み出し要求に対応する。投機的メモリ読み出し要求の各々は、コアデマンド投機的メモリ読み出し要求、又は、プリフェッチ投機的メモリ読み出し要求である。データ読み出し要求の各々は、コアデマンドデータ読み出し要求、又は、プリフェッチデータ読み出し要求である。この方法は、データ読み出し要求によって要求されたデータに関する最終レベルキャッシュの検索のヒット率を監視することを含む。投機的メモリ読み出し要求の各々は、対応するデータに関する最終レベルキャッシュの検索と並行して発行される。この方法は、要求レート及びヒット率に基づいて、対応するコアデマンドデータ読み出し要求のデータに関する最終レベルキャッシュの検索と並行して、メインメモリへのコアデマンド投機的メモリ読み出し要求を選択的に有効にすることを含む。この方法は、要求レート及びヒット率に基づいて、対応するプリフェッチデータ読み出し要求のデータに関する最終レベルキャッシュの検索と並行して、メインメモリへのプリフェッチ投機的メモリ読み出し要求を選択的に有効にすることを含む。投機的メモリ読み出し要求の各々は、検索と並行して発行される実際の投機的メモリ読み出し要求、又は、未実現の投機的メモリ読み出し要求であってもよい。
少なくとも1つの実施形態では、メモリシステムは、ペナルティメイトレベルキャッシュと、最終レベルキャッシュと、メインメモリと、第1カウンタと、第2カウンタと、ペナルティメイトレベルキャッシュに関連するコントローラと、を含む。第1カウンタは、ペナルティメイトレベルキャッシュからメインメモリへの投機的メモリ読み出し要求の要求レートを記憶するように構成されている。投機的メモリ読み出し要求の各々は、対応するデータ読み出し要求のペナルティメイトレベルキャッシュ内でのミスに応答する。第2カウンタは、ペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求のデータに関する最終レベルキャッシュの検索のヒット率のインジケータを記憶するように構成されている。コントローラは、要求レート、ヒット率、所定の要求レート閾値、及び、所定のヒット率閾値に基づく検索と並行して、メインメモリへのコアデマンド投機的メモリ読み出し要求を選択的に有効にするように構成されている。コントローラは、要求レート、ヒット率、所定の要求レート閾値、及び、所定のヒット率閾値に基づく検索と並行して、メインメモリへのプリフェッチ投機的メモリ読み出し要求を選択的に有効にするように構成されている。投機的メモリ読み出し要求の各々は、コアデマンド投機的メモリ読み出し要求、又は、プリフェッチ投機的メモリ読み出し要求である。投機的メモリ読み出し要求コントローラは、ペナルティメイトレベルキャッシュ内での各ミスに応じて第1カウンタをインクリメントし、最終レベルキャッシュでの各ヒットに応じて第2カウンタをインクリメントし、第1カウンタ及び第2カウンタを定期的にリセットするように構成されてもよい。
少なくとも1つの実施形態では、メモリシステムを動作させる方法は、ペナルティメイトレベルキャッシュ内でミスしたコアデマンドデータ読み出し要求によって要求されたデータに関する最終レベルキャッシュの検索と並行して、メインメモリへのコアデマンド投機的メモリ読み出し要求を有効にすることを含む。この方法は、ペナルティメイトレベルキャッシュ内でミスしたプリフェッチデータ読み出し要求によって要求されたデータについて、メインメモリへのプリフェッチ投機的メモリ読み出し要求を無効にすることを含む。この方法は、ペナルティメイトレベルキャッシュからメインメモリに発行される投機的メモリ読み出し要求の要求レートを監視することを含む。この要求レートは、コアデマンド投機的メモリ読み出し要求と、ペナルティメイトレベルキャッシュ内で欠落したプリフェッチデータ読み出し要求に関する未実現のプリフェッチ投機的メモリ読み出し要求と、に基づいている。この方法は、最終レベルキャッシュの検索のヒット率を監視することを含む。この方法は、要求レートが所定の要求レート閾値未満であり、ヒット率が所定のヒット率閾値未満であることに応じて、コアデマンド投機的メモリ読み出し要求を有効にし、プリフェッチ投機的メモリ読み出し要求を無効にすることを含む。少なくとも1つの実施形態では、この方法は、要求レートが所定の要求レート閾値よりも大きいこと、又は、ヒット率が所定のヒット率閾値よりも大きいことに応じて、コアデマンド投機的メモリ読み出し要求を無効にし、プリフェッチ投機的メモリ読み出し要求を無効にすることを含む。少なくとも1つの実施形態では、この方法は、要求レートが所定の第2要求レート閾値未満であり、ヒット率が所定の第2ヒット率閾値未満であることに応じて、コアデマンド投機的メモリ読み出し要求を有効にし、プリフェッチ投機的メモリ読み出し要求を有効にすることをさらに含む。所定の第2要求レート閾値は、所定の要求レート閾値未満であり、所定の第2ヒット率閾値は、所定のヒット率閾値未満である。
本発明は、添付の図面を参照することによってより良く理解することができ、その多くの目的、特徴及び利点が当業者に明らかになる。
1つの処理コアとマルチレベルメモリシステムとを含む処理システムの機能ブロック図である。 マルチレベルメモリシステムを含むマルチコア処理システムの機能ブロック図である。 要求及びデータフローを示す図2のマルチコア処理システムの別の機能ブロック図である。 図1又は図2の処理コアによって発生したメモリ要求に関するメモリシステムイベント及び関連するレイテンシのシーケンスを示す図である。 図2のマルチコア処理システムによる投機的DRAM読み出し要求の発行についての例示的な情報及び制御フローを示す図である。 図2のマルチコア処理システムの投機的DRAM読み出しのトラフィック、及び、投機的DRAM読み出しの精度を監視するための例示的な情報及び制御フローを示す図である。 図2のマルチコア処理システムに含まれる投機的DRAM読み出しアクティビティコントローラのステートマシン図(状態遷移図)である。 図2の処理コアのクラスタの投機的DRAM読み出しのトラフィック、及び、投機的DRAM読み出し要求の精度を監視するための例示的な情報及び制御フローを示す図である。 本発明の少なくとも1つの実施形態と一致する、図2のマルチコア処理システムにおけるプリフェッチャベースの投機的DRAM読み出し制御のための状態図である。
異なる図面で同じ符号を使用する場合には、類似又は同一の要素を示す。
最終レベルキャッシュ(例えば、レベル3キャッシュ)のミスレイテンシ(miss latency)を低減する技術は、投機的DRAM読み出し要求(すなわち、投機的メモリ読み出し要求)を発行することを含む。この技術は、実際のデマンド読み出し要求の前にメインメモリに投機的にDRAM読み出し要求を発行して、最終レベルキャッシュの平均ミスレイテンシを低減する。投機的DRAM読み出し要求は、システムに対するサイクル当たりの命令を増加させるが、実行時には、従来の投機的DRAM読み出し要求は、メインメモリへのインタフェースにおける輻輳を増加させることにより、システムパフォーマンスに悪影響を及ぼす可能性がある。したがって、従来の投機的DRAM読み出し要求は、メモリシステムのレイテンシを低減するというよりはむしろ増加させる可能性がある。システム内で実行されるスレッドの数が増加すると、競合の増加によって、共有された最終レベルキャッシュのミスが増加するため、メモリシステムのアクセスレイテンシが増加する。
図2及び図3は、複数のプロセッサを含むマルチコア処理システム200を示しており、プロセッサ102、プロセッサ104、プロセッサ106及びプロセッサ108は、それぞれ処理コア202、処理コア204、処理コア206及び処理コア208を含む。各処理コアは、少なくとも2つのスレッドを同時に実行することができ、プライベートな分割レベル1キャッシュ(すなわち、命令キャッシュとデータキャッシュとに分割されたレベル1キャッシュ)と、対応するプライベートな統合レベル2キャッシュと、を含む。プロセッサクラスタのプロセッサ102、プロセッサ104、プロセッサ106及びプロセッサ108は、レベル3キャッシュ(例えば、8MB)を共有し、レベル3キャッシュは、キャッシュスライス218、キャッシュスライス220、キャッシュスライス224及びキャッシュスライス226(例えば、2MBスライス)に分割されている。レベル2キャッシュ210、レベル2キャッシュ212、レベル2キャッシュ214及びレベル2キャッシュ216は、厳密には、対応するレベル1キャッシュを厳密に含む、すなわち、対応するレベル1キャッシュに存在する全てのラインは、レベル2キャッシュ内にも存在する。ただし、レベル2キャッシュは、レベル3キャッシュを殆ど含まない、すなわち、レベル2キャッシュラインの殆どは、レベル3キャッシュに存在しない。また、レベル3キャッシュは、レベル2タグをシャドウタグ構造内に維持し、これらのシャドウタグ構造内のレベル2タグは、特定のラインがマルチコア処理システム200内のプロセッサクラスタの何れかの他のレベル2キャッシュに存在するかどうかを判別するために使用される。
キャッシュ相互接続230は、レベル2キャッシュとレベル3キャッシュとの間の通信を提供する。クラスタ相互接続240は、レベル3キャッシュのキャッシュスライス218、キャッシュスライス220、キャッシュスライス224及びキャッシュスライス226と、メインメモリ114との間の通信を提供する。メモリ要求及び関連するデータは、クラスタ相互接続240を介してメインメモリ114に流れ、応答は、クラスタ相互接続240を介してレベル3キャッシュに戻る。例えば、レベル2キャッシュにおいてメモリ要求がミスした場合、レベル2キャッシュコントローラは、特定のアドレスビットに基づいて、メモリ要求をレベル3キャッシュの特定のスライスに送信する。そのデータラインを記憶するレベル3キャッシュのスライスがレベル3キャッシュのヒットをもたらす場合、レベル3キャッシュは、データを要求元のレベル2キャッシュに送信する。データラインがレベル3キャッシュに存在しない(すなわち、ラインがレベル3キャッシュをミスした)場合、レベル3キャッシュのシャドウタグ構造に記憶されたレベル2タグを検査すること等によって、レベル3キャッシュは、そのラインがプロセッサクラスタの何れかの他のレベル2キャッシュに存在するかどうかを最初に判別する。そのデータラインが何れかの他のコアのレベル2キャッシュに存在する場合、レベル3キャッシュは、レベル2キャッシュから別のレベル2キャッシュへのキャッシュ間転送を開始し、その要求をメインメモリ114に送信しない。しかしながら、データラインがプロセッサクラスタの何れのレベル2キャッシュにも存在しない場合、レベル3キャッシュコントローラは、そのメモリ要求をメインメモリ114に送信する。一般に、キャッシュ間転送は稀であるが、異なる処理コア上で実行される2つ以上のスレッドがデータ又は命令を共有する場合に発生することがある。
図4を参照すると、タイムラインは、処理コアによって発行されるメモリ要求についてのイベントシーケンスを表す。右向きの矢印は、要求元のコアからメモリシステムへの要求パスを表し、左向きの矢印は、メモリシステムから要求元のコアへの応答パスを表す。各矢印は、関連するクロックサイクルの数を表す、関連する重みを含む。ミスに応じて、対応するコントローラは、要求を次のキャッシュ又はメモリコンポーネントに渡す。メモリ要求を処理するのに必要な合計時間は、要求元のコアに対応するノード1と、要求されたデータを含むメモリシステムの第1レベルに対応するノードとの間の閉ループの全てのエッジの合計、すなわち、要求元のコアから要求されたデータラインを記憶するレベルのメモリへの総レイテンシと、そのレベルのメモリから要求元のコアに戻る応答と、の合計である。レイテンシは、メモリコントローラ又は相互接続ネットワークにおける他の競合又は輻輳がない場合の最小のレイテンシである。例えば、ノード3からノード5までのレイテンシは、a3+a4クロックサイクルの最小値であり、これは、レベル2キャッシュでのミスの検出から、プロセッサクラスタのレベル3キャッシュ及び他のレベル2キャッシュでのミスを予測してメモリ要求がメインメモリに送信されるまでの間のレイテンシである。
システム分析(例えば、SPECintベンチマークスイートを使用する)は、レベル3キャッシュ全体を使用してシングルスレッドが処理コアクラスタ上で実行されている場合、レベル2キャッシュをミスした平均して過半数(例えば、54%)のメモリ要求が、レベル3キャッシュもミスすることを示す。複数のスレッドがレベル3キャッシュを共有して同時に実行される場合、そのミス率が増加する。例えば、8つのスレッドがSPECintベンチマークスイートを実行する場合、70%のレベル2キャッシュミスが、レベル3キャッシュもミスし、プロセッサクラスタの他のレベル2キャッシュもミスする。メインメモリ114は、これらのメモリ要求の全てを処理する必要があり、レベル3キャッシュにおいて余分なレイテンシが生じる。このペナルティは、レベル3キャッシュコントローラで輻輳の量が増加すると、増加する。
したがって、レベル2キャッシュメモリコントローラは、投機的DRAM読み出し要求を実行して、メモリレイテンシを低減する。図2、図3及び図5を参照すると、ペナルティメイトレベル(例えば、レベル2)キャッシュコントローラは、前のレベル(例えば、レベル1)のキャッシュコントローラからメモリ要求を受信する。受信したメモリ要求は、対応する処理コア内のプリフェッチロジックによって生成されたプリフェッチ要求であってもよいし、対応する処理コアからのコアデマンド要求であってもよい。
ターゲットデータラインがレベル2キャッシュに存在する(すなわち、レベル2キャッシュにヒットする)場合、レベル2キャッシュはメモリ要求応答を提供する。要求されたデータラインがレベル2キャッシュに存在しない(すなわち、レベル2キャッシュをミスした)場合に(402)、レベル2キャッシュコントローラは、メモリ要求を最終レベルキャッシュ(例えば、レベル3キャッシュの対応するスライス)に転送するのと並行して、投機的DRAM読み出し要求をメインメモリ114に発行する(408)。メモリ要求がレベル3キャッシュの対応するスライスをミスした場合に(404)、レベル3キャッシュコントローラは、メモリ要求をクラスタ相互接続240に転送して、要求されたデータラインが処理コアクラスタの別のコアに関連するレベル2キャッシュに存在するかどうかを判別する。受信したメモリ要求が処理コアクラスタ内でミスした場合に(406)、レベル3キャッシュコントローラは、デマンドメモリ要求をメインメモリ114に転送する(410)。レベル2キャッシュからメインメモリ114に直接送信される(すなわち、レベル3キャッシュ及びクラスタ相互接続240をバイパスする)メモリ要求は、レベル3キャッシュにヒットした投機的DRAM読み出し要求と並行して送信される如何なる従来のメモリ要求もメインメモリ114によって処理される必要がないため、投機的とみなされ、投機的DRAM読み出し要求をレンダリングすることが不要になる。しかしながら、投機的DRAM読み出し要求は、図4を参照して上述したように、レベル3キャッシュをミスするメモリ要求のレイテンシを低減する。
図2及び図3を参照すると、メインメモリ114は、レベル3キャッシュから転送されたメモリ要求と同様に、投機的DRAM読み出し要求を処理し、メインメモリ114から対応するデータを読み出す。しかしながら、投機的DRAM要求データを送信してレベル3キャッシュに戻す代わりに、投機的DRAM読み出し要求データは、メインメモリ114内のローカルバッファに記憶される。コアデマンド要求がメインメモリ114に到達したときに同じメモリアドレスの投機的DRAM要求にヒットした場合、メモリコントローラは、バッファから応答データを送信する。したがって、全体的なメモリ読み出しレイテンシが低減するため、デマンド要求は、投機的DRAM読み出し要求から利益を得る。デマンド要求に対応する投機的DRAM読み出し要求は、システムパフォーマンスを向上させる有益な投機的DRAM読み出し要求とみなされる。ただし、レベル2のキャッシュをミスしたメモリ要求がレベル3キャッシュ又は処理コアクラスタにヒットした場合に、デマンド要求はメモリに送信されない。このようなメモリ要求に対して生成される投機的DRAM読み出し要求は、有用ではなく、不利益な投機的DRAM読み出し要求とみなされる。不利益な投機的DRAM読み出し要求によって読み出されるデータは、ローカルバッファに存在し、最終的に、他の投機的DRAM読み出し要求からのデータが、これらのデータを上書きする。
投機的DRAM要求ポリシーは、レベル2キャッシュをミスする全てのメモリ要求についての投機的DRAM読み出し要求をメインメモリ114に送信する。有益な投機的DRAM読み出し要求は、パフォーマンスを向上させるが、不利益な投機的DRAM読み出し要求は、ローカルバッファにデータを不必要に満たす。投機的DRAM要求が不利益な投機的DRAM読み出し要求によって遅延した後に発行されるコアデマンド要求は、システムの速度を低下させる。シングルスレッドが処理コアクラスタ内で実行される場合に、不利益な投機的DRAM読み出し要求は、システムパフォーマンスを大幅に低下させない。ただし、処理コアクラスタ上で実行されるスレッドの数が増加すると、ネットワーク及びメモリシステムがボトルネックになり、不利益な投機的DRAM読み出し要求は、システムパフォーマンスを大幅に低下させる。したがって、不利益な投機的DRAM読み出し要求は、他のメモリ要求と干渉し、帯域幅を浪費し、システム全体のパフォーマンスを低下させ、消費電力を増加させる。したがって、不利益な投機的DRAM読み出し要求の低減は、投機的DRAM要求の精度、システム全体のパフォーマンスを向上させ、消費電力を低減する。
少なくとも1つの実施形態では、ペナルティメイトレベルキャッシュコントローラは、投機的DRAM読み出し要求のトラフィック及び精度を制御して、システムパフォーマンスを向上させる投機的DRAM要求ポリシーを実装する。このポリシーは、レベル2キャッシュコントローラによって発行される投機的DRAM読み出し要求の数をインテリジェントに調整する。このポリシーは、投機的DRAM読み出し要求の品質を向上させ、最終レベルキャッシュ内の対応するヒットの数によって、投機的DRAM読み出し要求の精度(すなわち、品質や有効性)を測定する。ペナルティメイトレベルキャッシュコントローラは、要求レートカウンタ及びヒット率カウンタを、対応する所定の閾値と定期的に比較する。所定の閾値は、BIOS又は他のシステム初期化シーケンス中に構成されてもよい。何れかのカウンタが対応する所定の閾値を超える場合に、ペナルティメイトレベルキャッシュコントローラは、投機的DRAM読み出し要求がメモリ競合に追加すること又は低精度を有することに効果がないと判別する。ペナルティメイトレベルキャッシュコントローラは、各カウンタが対応する所定の閾値を下回るまで、投機的DRAM読み出し要求の発行を抑制する。ペナルティメイトレベルキャッシュコントローラは、デマンド要求についての未実現の投機的DRAM読み出し要求(すなわち、投機的DRAM読み出し要求を有効にした場合にペナルティメイトレベルキャッシュコントローラが発行する投機的DRAM読み出し要求)に対して、投機的DRAM読み出し要求のトラフィック及び精度を追跡し、メモリ競合及び/又は精度の問題が解決されたかどうかを判別する。両方の問題が解決されると、ペナルティメイトレベルキャッシュコントローラは、投機的DRAM読み出し要求の発行を再開する。この技術は、制御されていない投機的DRAM読み出し要求によるシステムパフォーマンスの低下を低減するのに有効である。ただし、アプリケーションによっては、このスキームは、投機的DRAM読み出し要求を完全には利用しない。
各レベル2キャッシュコントローラは、レベル2キャッシュのミス、及び、レベル3キャッシュのミスについてのカウンタを維持する。これらのカウンタを、レベル2キャッシュ又はキャッシュ相互接続230に含むことができる。レベル2キャッシュコントローラは、これらのカウンタを使用して、投機的DRAM要求レート及び投機的DRAM要求レートの各々の精度を推定する。レベル2キャッシュコントローラは、レベル3キャッシュからの応答とともに受信したレベル3キャッシュコントローラからのフィードバックを使用して、レベル3キャッシュミスカウンタを更新する。レベル2キャッシュコントローラは、不正確な投機的DRAM読み出し要求による干渉を評価し、これに応じて投機的DRAM読み出し要求レートを調整することにより、投機的DRAM読み出し要求の精度を向上させる。
処理コアクラスタとメインメモリ114との間の最終レベルキャッシュコントローラ(又は、クラスタ相互接続ネットワーク240)は、それを通過する投機的DRAM読み出し要求及びデマンド要求をカウントして、競合を測定する。図6を参照すると、受信したメモリ要求がレベル2キャッシュをミスした場合に(502)、クラスタ相互接続ネットワーク240は、対応する投機的DRAM読み出し要求トラフィックカウンタをインクリメントする(504)。サンプル期間が終了した場合に(506)、ペナルティメイトレベルキャッシュコントローラは、投機的DRAM読み出し要求トラフィックカウンタの内容を対応する所定の閾値と比較し、比較結果を使用して(508)、カウンタをリセットする(510)。一方、ペナルティメイトレベルキャッシュコントローラが最終レベルキャッシュ(例えば、レベル3キャッシュのスライス)からヒット応答を受信した場合、ペナルティメイトレベルキャッシュコントローラは、最終レベルキャッシュヒットカウンタをインクリメントする(512)。サンプル期間が終了した場合に(506)、ペナルティメイトレベルキャッシュコントローラは、最終レベルキャッシュヒット率カウンタの内容を対応する所定の閾値と比較し、比較結果を使用して(508)、最終レベルキャッシュヒット率カウンタをリセットする(510)。
図7を参照すると、ペナルティメイトレベルキャッシュコントローラは、比較情報を使用する。所定の閾値は、投機的DRAM読み出し要求レート及び最終レベルキャッシュヒット率の許容値を示す。処理システムが、有効になっている投機的DRAM読み出し要求を有する状態にあり(602)、両方のカウンタが対応する所定の閾値未満の場合に(606)、キャッシュコントローラは、投機的DRAM読み出し要求を発行し続ける。何れかのカウンタが対応する所定の閾値を超えた場合(614)、キャッシュコントローラは、投機的DRAM読み出し要求を無効にする(604)。キャッシュコントローラは、投機的DRAM読み出し要求が無効になっている間、トラフィック及び精度を監視し続ける。何れかのカウンタが対応する所定の閾値を超えた場合、投機的DRAM読み出し要求は、無効のままである(610)。しかしながら、各カウンタが対応する第2の所定の閾値未満の値(例えば、対応する所定の閾値の半分未満の値)を有する場合(612)、ペナルティメイトレベルキャッシュコントローラは、投機的DRAM読み出し要求を有効にする(602)。
図2及び図3を参照すると、少なくとも1つの実施形態では、クラスタ相互接続240は、処理コアクラスタ内の任意の処理コアからメインメモリ114に送信される投機的DRAM読み出し要求の総数を監視する。その情報は、対応するペナルティメイトレベルキャッシュコントローラにフィードバックされてもよく、キャッシュコントローラは、その情報を使用して、所定の閾値レベルを調整してもよい。例えば、図8を参照すると、クラスタ相互接続240は、クラスタの全ての処理コアから投機的DRAM読み出し要求を受信し、受信した投機的DRAM読み出し要求毎に、クラスタレベルの投機的DRAM読み出し要求レートカウンタをインクリメントする(702)。サンプル期間が終了した場合(704)、クラスタ相互接続240は、クラスタレベルの投機的DRAM読み出し要求レートカウンタ値を所定のクラスタレベルの要求レート閾値と比較する(706)。クラスタレベルの投機的DRAM読み出し要求レートカウンタ値が所定のクラスタレベルの要求レート閾値を超えた場合、クラスタ相互接続240は、1つ以上のコアキャッシュコントローラに信号を送信して、要求レート閾値を低減する。クラスタレベルの要求レートカウント値が所定の閾値(又は、所定の閾値に基づいて別々に記憶され若しくは生成され得る第2の所定のクラスタレベルの要求レート閾値)未満の場合、クラスタ相互接続240は、レベル3キャッシュの対応するスライスのキャッシュコントローラに信号を送信して、対応する投機的DRAM読み出し要求レート閾値を緩和する。適切な信号を送信した後に、クラスタ相互接続240は、クラスタレベルの投機的DRAM読み出し要求レートカウンタをリセットする(708)。上記のポリシーは、コアクラスタ上で1つのスレッドを実行するためには良好に機能するが、コアクラスタ上で複数のスレッドを実行するために生成される余分なトラフィックは、システムパフォーマンスを低下させ、1サイクル当たりの命令の大幅な損失を引き起こす。処理コアクラスタの投機的DRAM読み出し要求トラフィックが増加すると閾値レベルがより厳しくなり、これにより、投機的DRAM読み出し要求のより低レベルへの投入の割合を低減することができる。処理コアクラスタの投機的DRAM読み出し要求トラフィックが減少すると、キャッシュコントローラは、閾値レベルを緩和することができる。
投機的DRAM読み出し要求のフローを制御するインテリジェントポリシーは、投機的DRAM読み出し要求のパフォーマンスを向上させることができる。最終レベルキャッシュ内でミスする投機的DRAM読み出し要求のみを発行する投機的DRAM要求ポリシーは、投機的DRAM読み出し要求に対して100%の精度を維持し、メインメモリ114において如何なる不必要なトラフィックも生成しない。ただし、ペナルティメイトレベルキャッシュコントローラは、最終レベルキャッシュにヒットするメモリ要求を100%の精度で予測することができない。投機的DRAM読み出し要求よりもデマンドメモリ要求を優先させることにより、有益な投機的DRAM読み出し要求を遅延させ、その有効性を低下させる可能性がある。有益な投機的DRAM読み出し要求でさえ、状況によっては不利益であることに留意されたい。例えば、メモリ集約型スレッドが計算集約型スレッドと同時に実行される場合、メモリ集約型スレッドからの有益な投機的DRAM読み出し要求は、計算集約型スレッドからのデマンドメモリ要求を遅延させる可能性がある。投機的DRAM読み出し要求は、メモリ集約型スレッドにわずかな改善を提供する可能性があるが、計算集約型スレッドに対してパフォーマンスの大幅な低下を引き起こす可能性もある。
処理コア202、処理コア204、処理コア206及び処理コア208は、かなりの量のプリフェッチ要求を生成して、事前にメインメモリ114からキャッシュにデータをロードし、キャッシュミスの数を減少させる。処理コアのプリフェッチャは、時間的に近接したアプリケーションが必要とするキャッシュラインを予測し、これらの予測に基づいてプリフェッチデータ読み出し要求を生成する。一部のプリフェッチデータ読み出し要求のみが、有用なデータをキャッシュにロードする。プリフェッチデータ読み出し要求が実際のコアデマンド要求に先行することから、投機的DRAM読み出し要求を用いてレベル2プリフェッチ応答を高速化しても、レイテンシを低減することができない場合がある。したがって、投機的DRAM読み出し要求を発行するためのコアデマンド要求に対する優先順位を上げると、投機的DRAM読み出し要求によるメモリシステムでの余分なトラフィックを制限することができる。各レベル2キャッシュコントローラは、実行中の投機的DRAM読み出し要求のフローを調整し、投機的DRAM読み出し要求の精度を向上させ、システム全体のパフォーマンスを向上させる。ただし、投機的DRAM読み出し要求を長期間無効にすることによって、システムは、これらの期間中に、如何なるパフォーマンスの利点も引き出すことができない。さらに、投機的DRAM読み出し要求のパフォーマンスは、所定の閾値の選択に依存し、投機的DRAM読み出し要求レートを適切に制御するために、アプリケーション固有のかなりの量の調整を必要とする。投機的DRAM読み出し要求トラフィック全体を監視することにより、このスキームは、不利益な投機的DRAM読み出し要求から有益な投機的DRAM読み出し要求を分離する機能を欠いている。
プリフェッチャベースの投機的DRAM読み出し要求技術は、カウンタベースのメカニズムを使用してメモリシステムへの投機的DRAM読み出し要求の投入をインテリジェントに制御し、上述した投機的DRAM読み出しのトラフィック及び精度を監視する。ただし、プリフェッチャベースの投機的DRAM読み出し要求技術は、投機的DRAM読み出し要求をシステムに投入するための選択的なアプローチを実施する。プリフェッチャベースの投機的DRAM読み出し要求技術の少なくとも1つの実施形態では、ペナルティメイトレベルキャッシュコントローラは、投機的DRAM読み出し要求の最終レベルキャッシュにおける要求レート又はヒット率のうち少なくとも1つが対応する所定の閾値を超えると判別した場合、先ず、プリフェッチについての投機的DRAM読み出し要求を抑制する。一般に、プリフェッチは要求よりも前に発行されるため、投機的DRAM読み出し要求を使用してそれらのレイテンシを低減させても、さらなる利益が得られない場合がある。さらに、上述したように、全てのプリフェッチが有用であるわけではなく、投機的DRAM読み出し要求を発行することでメモリの競合を増加させる。したがって、プリフェッチャベースの投機的DRAM読み出し要求技術は、先ず、不要なトラフィックをフィルタリングすることによって、投機的DRAM読み出し要求の精度を向上させる。上述したカウンタベースのメカニズムは、投機的DRAM読み出し要求レート、及び、最終レベルキャッシュヒット率を監視する。投機的DRAM読み出し要求レート又は最終レベルキャッシュヒット率が対応する所定の閾値を超えるとペナルティメイトレベルキャッシュコントローラが検出した場合、ペナルティメイトレベルキャッシュコントローラは、プリフェッチ投機的DRAM読み出し要求の発行を無効にし、これにより、投機的DRAM読み出しトラフィックを大幅に減少させる。さらに、プリフェッチが最終レベルキャッシュにヒットした場合、プリフェッチ投機的DRAM読み出し要求のフィルタリングによって、投機的DRAM読み出し要求の精度も向上する。したがって、選択的技術により、システムが重大なコアデマンド要求に対する投機的DRAM読み出し要求のパフォーマンスの利益を引き出すことを可能にし、メモリシステムを過剰な投機的DRAM読み出し要求で溢れさせることがない。
プリフェッチ投機的DRAM読み出し要求を無効にした後に、選択的技術は、さらなる閾値違反の発生に応答して、残りの有効な投機的DRAM読み出し要求(すなわち、コアデマンド投機的DRAM読み出し要求)を無効にする。ペナルティメイトレベルキャッシュコントローラは、投機的DRAM読み出し要求の発行を再開する場合に、先ず、コアデマンド要求に対する投機的DRAM読み出し要求を有効にする。ペナルティメイトレベルキャッシュコントローラは、システムが投機的DRAM読み出しトラフィック全体を処理することができると判別した場合、プリフェッチ要求に対する投機的DRAM読み出し要求も有効にする。
少なくとも1つの実施形態では、プリフェッチャベースの投機的DRAM読み出し要求技術は、トラフィック(例えば、要求レート)及び精度(例えば、最終レベルキャッシュヒット率)についての所定の閾値違反に応答して、次のシーケンスで投機的DRAM読み出し要求を選択的に有効にする。
1.投機的DRAM読み出し要求精度又は投機的DRAM読み出し要求レートが対応する所定の閾値に違反した場合、キャッシュコントローラは、先ず、プリフェッチのための投機的DRAM読み出し要求を無効にする。
2.投機的DRAM読み出し要求がプリフェッチに対してのみ無効にされ、投機的DRAM読み出し要求精度又は投機的DRAM読み出し要求レートが対応する所定の閾値に違反した場合、キャッシュコントローラは、全ての投機的DRAM読み出し要求を無効にする。
選択的技術は、次のような段階で投機的DRAM読み出し要求を再開する。
1.全ての投機的DRAM読み出し要求が無効にされ、投機的DRAM読み出し要求の精度が第2のターゲット範囲内にある場合、キャッシュコントローラは、コアデマンド要求に対してのみ投機的DRAM読み出し要求を有効にする。プリフェッチについての投機的DRAM読み出し要求は無効のままである。
2.コアデマンドの投機的DRAM読み出し要求のみが有効にされ、投機的DRAM読み出しトラフィック及び投機的DRAM読み出し要求の精度が第2のターゲット範囲内にある場合、コントローラは、ペナルティメイトレベルキャッシュ内の全てのミスについて投機的DRAM読み出し要求を有効にする。
図9を参照すると、プリフェッチャベースの投機的DRAM読み出し要求技術の一実施形態では、ペナルティメイトレベルキャッシュコントローラ(例えば、レベル2キャッシュコントローラ)は、投機的DRAM読み出し要求を監視し、要求レートカウンタ及び最終レベルキャッシュヒット率カウンタによって収集された情報を、BIOS又は他のシステム初期化シーケンス中に構成され得る対応する所定の閾値と定期的に比較する。所定の閾値は、投機的DRAM読み出し要求レート(例えば、ペナルティメイトレベルキャッシュのミス率)及び精度(例えば、最終レベルキャッシュにおけるヒット率)の許容値を示す。システムが両方のタイプの投機的DRAM読み出し要求を有効にした状態にあり(902)、トラフィック及び精度カウンタの値が対応する所定の閾値未満の場合(908)、キャッシュコントローラは、プリフェッチ及びコアデマンド要求の両方についての投機的DRAM読み出し要求を発行し続ける。何れかのカウンタが対応する所定の閾値を超えた場合(910)、キャッシュコントローラは、プリフェッチ投機的DRAM読み出し要求を無効にする(904)。キャッシュコントローラは、プリフェッチ投機的DRAM読み出し要求が無効にされ、コアデマンド投機的DRAM読み出し要求が有効にされている間、トラフィック及び精度を監視し続ける。何れかのカウンタが対応する所定の閾値を超えた場合に(912)、投機的DRAM読み出し要求は無効のままであり、キャッシュコントローラは、コアデマンド投機的DRAM読み出し要求をさらに無効にする(906)。しかしながら、各カウンタが対応する第2の所定の閾値未満の値を有する場合(916)、キャッシュコントローラは、コアデマンド投機的DRAM読み出し要求を再度有効にする(904)。第2の所定の閾値は、第1の所定の閾値に基づいて別々に記憶され又は生成されてもよい。第2の所定の閾値は、第1の所定の閾値よりもさらに厳密(例えば、対応する所定の閾値の半分)であってもよい。カウンタ値の各々が、少なくとも一期間、対応する所定の閾値未満のままである場合(918)、プリフェッチ投機的DRAM読み出し要求は無効にされたままであるが、コア投機的DRAM読み出し要求は有効にされたままである(904)。しかしながら、両方のカウンタ値が対応する第2の所定の閾値(例えば、対応する所定の閾値の1/2)を下回ると(920)、ペナルティメイトレベルキャッシュコントローラは、プリフェッチ投機的DRAM読み出し要求を再度有効にする(902)。なお、この技術では、状態902において処理システムを開始するものとして説明しているが、他の実施形態では、有効なコアデマンド投機的DRAM読み出し要求及び無効なプリフェッチ投機的DRAM読み出し要求を有する状態904において処理システム動作が開始されてもよいし、無効なコアデマンド投機的DRAM読み出し要求及び無効なプリフェッチ投機的DRAM読み出し要求を有する状態906において処理システム動作が開始されてもよいことに留意されたい。
プリフェッチャベースの投機的DRAM読み出し要求技術の少なくとも1つの実施形態では、ペナルティメイトレベルキャッシュコントローラは、プリフェッチについての投機的DRAM読み出し要求を無効にした後、条件912が真である場合、状態906に移行する前に、状態904においてトラフィック閾値及び精度閾値を強化する。逆に、ペナルティメイトレベルキャッシュコントローラは、条件920が満たされる場合、プリフェッチについての投機的DRAM読み出し要求を有効にする前に、状態904において、トラフィック閾値及び精度閾値を緩和する。プリフェッチャベースの投機的DRAM読み出し要求技術の少なくとも1つの実施形態では、クラスタ相互接続240からのクラスタレベルフィードバックにより、ペナルティメイトレベルキャッシュコントローラが閾値をより厳密に調整するようになり、個々のコアが閾値に違反するとすぐに、クラスタの処理コアのペナルティメイトレベルキャッシュコントローラが、必要に応じて、プリフェッチ投機的DRAM読み出し要求をコア単位で抑制することができる。プリフェッチャベースの投機的DRAM読み出し要求技術の他の実施形態では、クラスタレベルフィードバックにより、クラスタの全ての処理コアが、プリフェッチ投機的レベルDRAM読み出し要求、及び/又は、コアデマンド投機的レベルDRAM読み出し要求を同時に無効にする。
プリフェッチャベースの投機的DRAM読み出し要求技術の少なくとも1つの実施形態では、投機的DRAM読み出し要求トラフィックは、実際の投機的DRAM読み出し要求及び未実現の投機的DRAM読み出し要求のカウントを含み、投機的DRAM読み出し要求の閾値と比較される、ペナルティメイトレベルキャッシュにおけるミスに基づいて定量化される。未実現の投機的DRAM読み出し要求は、ペナルティメイトレベルキャッシュコントローラによって投機的DRAM読み出し要求が有効にされた場合にメモリシステムに発行される投機的DRAM読み出し要求である。少なくとも1つの実施形態では、精度は、レベル3キャッシュ(すなわち、最終レベルキャッシュ)におけるヒットのカウントに基づいて定量化され、そのカウントは、レベル3キャッシュヒットの所定の閾値と比較される。
選択的技術は、メモリ競合を減少させ、重大なコアデマンド読み出し要求を高速化することによって、パフォーマンスを大幅に向上させることができる。選択的技術は、上述したポリシーと比較して、システムが投機的DRAM読み出し要求を発行しない期間を短縮させる。プリフェッチ投機的DRAM読み出し要求がそのデータのコアデマンドに先行して既に発行されているので、プリフェッチ投機的DRAM読み出し要求を先ず抑制することによって、不利益な可能性のある投機的DRAM読み出し要求から有用な投機的DRAM読み出し要求をフィルタリングする。その結果、ペナルティメイトレベルキャッシュは、コアデマンド投機的DRAM読み出し要求のみを発行するため、不要なメモリ競合を減少させ、サイクル当たりの命令を向上させる。
上述したプリフェッチャベースの投機的DRAM読み出し要求技術の実施形態では、投機的DRAM読み出し要求トラフィックは、投機的DRAM読み出し要求のカウントによって示され、投機的DRAM読み出し要求の閾値と比較され、投機的DRAM読み出し要求の精度は、レベル3キャッシュ(すなわち、最終レベルキャッシュ)でのヒットのカウントを使用して定量化され、そのカウントは、レベル3キャッシュヒットの所定の閾値と比較される。ただし、投機的DRAM読み出し要求トラフィック及び投機的DRAM読み出し要求精度の他のインジケータを使用することができる。例えば、他の実施形態は、精度のために、バッファ内の投機的要求を追跡し、最終レベルキャッシュ内の対応するヒット率を使用する。
本明細書に記載された本発明の説明は例示的なものであり、以下の特許請求の範囲に記載された本発明の範囲を限定することを意図するものではない。例えば、本発明は、メモリシステムが3つのレベルのキャッシュ及びメインメモリを含む実施形態で説明されているが、当業者は、本明細書における教示が、他の階層を含むメモリシステムによって利用される得ることを理解するであろう。さらに、本発明は、メインメモリ114がDRAMである実施形態で説明されているが、当業者は、本明細書における教示が、他のメモリタイプ(例えば、SRAM、相変化メモリ、メモリスタ又は他のメモリタイプ)を含むメインメモリによって利用され得ることを理解するであろう。以下の特許請求の範囲に記載された本発明の範囲から逸脱することなく、本明細書に示された説明に基づいて、本明細書に開示された実施形態の変形及び修正が行われてもよい。

Claims (17)

  1. メモリシステムのメモリアクセスのレイテンシを低減する方法であって、
    ペナルティメイトレベルキャッシュからメインメモリへの投機的メモリ読み出し要求の要求レートを監視することであって、前記投機的メモリ読み出し要求は、前記ペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求に対応しており、前記投機的メモリ読み出し要求の各々は、コアデマンド投機的メモリ読み出し要求又はプリフェッチ投機的メモリ読み出し要求であり、前記データ読み出し要求の各々は、コアデマンドデータ読み出し要求又はプリフェッチデータ読み出し要求である、ことと、
    前記データ読み出し要求によって要求されたデータについての最終レベルキャッシュの検索のヒット率を監視することであって、前記投機的メモリ読み出し要求の各々は、対応するデータについての前記最終レベルキャッシュの検索と並行して発行される、ことと、
    前記要求レート及び前記ヒット率に基づいて、対応するコアデマンドデータ読み出し要求のデータについての前記最終レベルキャッシュの検索と並行して、前記メインメモリへのコアデマンド投機的メモリ読み出し要求を選択的に有効にすることと、
    前記要求レート及び前記ヒット率に基づいて、対応するプリフェッチデータ読み出し要求のデータについての前記最終レベルキャッシュの検索と並行して、前記メインメモリへのプリフェッチ投機的メモリ読み出し要求を選択的に有効にすることと、を含む、
    方法。
  2. 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が有効にされること、及び、前記要求レートが所定の要求レート閾値を超えるか前記ヒット率が所定のヒット率閾値を超えたことに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
    請求項1の方法。
  3. 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが第2の所定の要求レート閾値未満であること、及び、前記ヒット率が第2の所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を有効にすることを含み、
    前記第2の所定の要求レート閾値は、前記所定の要求レート閾値未満であり、前記第2の所定のヒット率閾値は、前記所定のヒット率閾値未満である、
    請求項2の方法。
  4. 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、及び、前記要求レートが所定の要求レート閾値を超えるか前記ヒット率が所定のヒット率閾値を超えることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を無効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
    請求項1の方法。
  5. 前記コアデマンド投機的メモリ読み出し要求が無効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが第2の所定の要求レート閾値未満であること、及び、前記ヒット率が第2の所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含み、
    前記第2の所定の要求レート閾値は、前記所定の要求レート閾値未満であり、前記第2の所定のヒット率閾値は、前記所定のヒット率閾値未満である、
    請求項4の方法。
  6. 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が有効にされること、前記要求レートが所定の要求レート閾値未満であること、及び、前記ヒット率が所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を有効にすることを含む、
    請求項1の方法。
  7. コアデマンド投機的メモリ読み出し要求が有効にされること、プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが所定の要求レート閾値未満であること、及び、前記ヒット率が前記所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
    請求項1の方法。
  8. 前記コアデマンド投機的メモリ読み出し要求が無効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが所定の要求レート閾値未満であること、及び、前記ヒット率が所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を無効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
    請求項1の方法。
  9. 前記メインメモリに接続された複数のペナルティメイトレベルキャッシュに対するクラスタレベルの要求レートを監視することと、
    前記複数のペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求によって要求されたデータについて、共有された最終レベルキャッシュの検索のクラスタレベルのヒット率を監視することと、をさらに含み、
    前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記クラスタレベルの要求レート及び前記クラスタレベルのヒット率にさらに基づいており、
    前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記クラスタレベルの要求レート及び前記クラスタレベルのヒット率にさらに基づいている、
    請求項1、2、3、4、5、6、7又は8の方法。
  10. 所定の要求レート閾値又は所定のヒット率閾値を、前記クラスタレベルの要求レート又は前記クラスタレベルのヒット率に基づいて調整することをさらに含み、
    前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記所定の要求レート閾値及び前記所定のヒット率閾値にさらに基づいており、
    前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記所定の要求レート閾値及び前記所定のヒット率閾値にさらに基づいている、
    請求項9の方法。
  11. 前記投機的メモリ読み出し要求の各々は、前記検索することと並行して発行される実際の投機的メモリ読み出し要求、又は、未実現の投機的メモリ読み出し要求である、
    請求項1、2、3、4、5、6、7又は8の方法。
  12. ペナルティメイトレベルキャッシュと、
    最終レベルキャッシュと、
    メインメモリと、
    前記ペナルティメイトレベルキャッシュから前記メインメモリへの投機的メモリ読み出し要求の要求レートを記憶するように構成される第1カウンタであって、前記投機的メモリ読み出し要求の各々が、対応するデータ読み出し要求の前記ペナルティメイトレベルキャッシュ内でのミスに応答している、第1カウンタと、
    前記ペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求のデータについての前記最終レベルキャッシュの検索のヒット率のインジケータを記憶するように構成された第2カウンタと、
    前記ペナルティメイトレベルキャッシュに関連するコントローラと、を備え、
    前記コントローラは、
    前記要求レート、前記ヒット率、所定の要求レート閾値及び所定のヒット率閾値に基づいて、前記検索と並行して、前記メインメモリへのコアデマンド投機的メモリ読み出し要求を選択的に有効にし、
    前記要求レート、前記ヒット率、前記所定の要求レート閾値及び前記所定のヒット率閾値に基づいて、前記検索と並行して、前記メインメモリへのプリフェッチ投機的メモリ読み出し要求を選択的に有効にする、
    ように構成されており、
    前記投機的メモリ読み出し要求の各々は、コアデマンド投機的メモリ読み出し要求又はプリフェッチ投機的メモリ読み出し要求である、
    メモリシステム。
  13. 前記コントローラは、前記ペナルティメイトレベルキャッシュ内での各ミスに応じて前記第1カウンタをインクリメントし、前記最終レベルキャッシュ内での各ヒットに応じて前記第2カウンタをインクリメントし、前記第1カウンタ及び前記第2カウンタを定期的にリセットするように構成されている、
    請求項12のメモリシステム。
  14. コアデマンドデータ読み出し要求についての前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、第2の所定の要求レート閾値及び第2の所定のヒット率閾値にさらに基づいており、
    プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、第2の所定の要求レート閾値及び第2の所定のヒット率閾値にさらに基づいている、
    請求項12のメモリシステム。
  15. 前記最終レベルキャッシュと前記メインメモリとの間に接続されたクラスタ相互接続構造を備え、
    前記クラスタ相互接続構造は、
    対応するペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求の要求されたデータについての前記最終レベルキャッシュの検索と並行して、コアクラスタ内の何れかのペナルティメイトレベルキャッシュから前記メインメモリへの投機的メモリ読み出し要求のクラスタレベルの要求レートを記憶するように構成された第3カウンタであって、前記最終レベルキャッシュは、前記コアクラスタ内のコアによって共有される、第3カウンタと、
    前記投機的メモリ読み出し要求のクラスタレベルのヒット率のインジケータを、対応するペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求についての前記最終レベルキャッシュに記憶するように構成された第4カウンタと、を備える、
    請求項12のメモリシステム。
  16. 前記第1カウンタ及び前記第2カウンタは、コアクラスタのコアで実行される第1スレッドに関連付けられており、
    前記メモリシステムは、
    前記コアで実行される第2スレッドに関連付けられており、前記ペナルティメイトレベルキャッシュから前記メインメモリに前記第2スレッドについての投機的メモリ読み出し要求の要求レートを記憶するように構成された第3カウンタであって、前記第2スレッドについての前記投機的メモリ読み出し要求の各々が前記第2スレッドの対応するデータ読み出し要求の前記ペナルティメイトレベルキャッシュ内でのミスに応答する、第3カウンタと、
    前記コアで実行される前記第2スレッドに関連付けられており、前記ペナルティメイトレベルキャッシュ内でミスした前記第2スレッドのデータ読み出し要求についての前記最終レベルキャッシュの検索のヒット率のインジケータを記憶するように構成される第4カウンタと、をさらに備える、
    請求項12のメモリシステム。
  17. 前記投機的メモリ読み出し要求は、前記最終レベルキャッシュの前記検索と並行して発行される実際の投機的メモリ読み出し要求、及び、未実現の投機的メモリ読み出し要求を含み、
    前記ヒット率は、前記検索の前記最終レベルキャッシュ内でのヒットに基づいている、
    請求項12、13、14、15又は16のメモリシステム。
JP2020549639A 2018-03-20 2019-02-27 プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術 Active JP6855642B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/925,859 2018-03-20
US15/925,859 US10613983B2 (en) 2018-03-20 2018-03-20 Prefetcher based speculative dynamic random-access memory read request technique
PCT/US2019/019766 WO2019182733A1 (en) 2018-03-20 2019-02-27 Prefetcher based speculative dynamic random-access memory read request technique

Publications (2)

Publication Number Publication Date
JP6855642B1 true JP6855642B1 (ja) 2021-04-07
JP2021510886A JP2021510886A (ja) 2021-04-30

Family

ID=67985065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020549639A Active JP6855642B1 (ja) 2018-03-20 2019-02-27 プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術

Country Status (6)

Country Link
US (1) US10613983B2 (ja)
EP (1) EP3769226B1 (ja)
JP (1) JP6855642B1 (ja)
KR (1) KR102231190B1 (ja)
CN (1) CN111837110B (ja)
WO (1) WO2019182733A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10657057B2 (en) * 2018-04-04 2020-05-19 Nxp B.V. Secure speculative instruction execution in a data processing system
CN110830535B (zh) * 2018-08-10 2021-03-02 网宿科技股份有限公司 一种超热文件的处理方法、负载均衡设备及下载服务器
US10909039B2 (en) 2019-03-15 2021-02-02 Intel Corporation Data prefetching for graphics data processing
KR20200132047A (ko) * 2019-05-15 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치
KR20200119059A (ko) 2019-04-09 2020-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11237973B2 (en) 2019-04-09 2022-02-01 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20210011216A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 메타 데이터 관리 방법 및 장치
KR20210011201A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템 및 그의 온도 조절 방법
KR20210011176A (ko) 2019-07-22 2021-02-01 에스케이하이닉스 주식회사 메모리 시스템의 액세스 동작 방법 및 장치
KR20210014338A (ko) 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 데이터 저장 장치, 데이터 처리 시스템 및 데이터 저장 장치의 동작 방법
US11409643B2 (en) 2019-11-06 2022-08-09 Honeywell International Inc Systems and methods for simulating worst-case contention to determine worst-case execution time of applications executed on a processor
CN112231243B (zh) * 2020-10-29 2023-04-07 海光信息技术股份有限公司 一种数据处理方法、处理器及电子设备
CN112540933A (zh) * 2020-11-26 2021-03-23 华云数据控股集团有限公司 缓存读写方法、装置及电子设备
CN114625672A (zh) * 2020-12-11 2022-06-14 超威半导体(上海)有限公司 用于快速数据访问的统一高速缓存系统
KR20220117747A (ko) * 2021-02-17 2022-08-24 삼성전자주식회사 데이터 프리페치 제어 기능을 갖는 스토리지 컨트롤러, 스토리지 컨트롤러의 동작 방법, 및 스토리지 장치의 동작 방법
US20240111420A1 (en) * 2022-09-29 2024-04-04 Advanced Micro Devices, Inc. Speculative dram request enabling and disabling
US20240201998A1 (en) * 2022-12-16 2024-06-20 Microsoft Technology Licensing, Llc Performing storage-free instruction cache hit prediction in a processor

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622222B2 (en) 2001-04-26 2003-09-16 International Business Machines Corporation Sequencing data on a shared data bus via a memory buffer to prevent data overlap during multiple memory read operations
US7051195B2 (en) 2001-10-26 2006-05-23 Hewlett-Packard Development Company, L.P. Method of optimization of CPU and chipset performance by support of optional reads by CPU and chipset
US7890738B2 (en) 2005-01-20 2011-02-15 International Business Machines Corporation Method and logical apparatus for managing processing system resource use for speculative execution
US20080028150A1 (en) 2006-07-28 2008-01-31 Farnaz Toussi Autonomic Mode Switching for L2 Cache Speculative Accesses Based on L1 Cache Hit Rate
US20080147977A1 (en) 2006-07-28 2008-06-19 International Business Machines Corporation Design structure for autonomic mode switching for l2 cache speculative accesses based on l1 cache hit rate
US7917702B2 (en) * 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
US7930485B2 (en) 2007-07-19 2011-04-19 Globalfoundries Inc. Speculative memory prefetch
US20090089510A1 (en) 2007-09-28 2009-04-02 Mips Technologies, Inc. Speculative read in a cache coherent microprocessor
US20090106498A1 (en) 2007-10-23 2009-04-23 Kevin Michael Lepak Coherent dram prefetcher
US7949830B2 (en) 2007-12-10 2011-05-24 International Business Machines Corporation System and method for handling data requests
US7937533B2 (en) 2007-12-10 2011-05-03 International Business Machines Corporation Structure for handling data requests
US8032713B2 (en) 2007-12-10 2011-10-04 International Business Machines Corporation Structure for handling data access
US9053031B2 (en) 2007-12-10 2015-06-09 International Business Machines Corporation System and method for handling data access
US8281078B2 (en) * 2009-09-29 2012-10-02 Intel Corporation Multi-level cache prefetch
US8443151B2 (en) * 2009-11-09 2013-05-14 Intel Corporation Prefetch optimization in shared resource multi-core systems
US8832415B2 (en) 2010-01-08 2014-09-09 International Business Machines Corporation Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests
US9009414B2 (en) 2010-09-21 2015-04-14 Texas Instruments Incorporated Prefetch address hit prediction to reduce memory access latency
US9836304B2 (en) 2010-11-15 2017-12-05 Advanced Micro Devices, Inc. Cumulative confidence fetch throttling
KR101629879B1 (ko) * 2012-02-06 2016-06-13 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
US9098418B2 (en) * 2012-03-20 2015-08-04 Apple Inc. Coordinated prefetching based on training in hierarchically cached processors
US9201796B2 (en) 2012-09-27 2015-12-01 Apple Inc. System cache with speculative read engine
US9507596B2 (en) 2014-08-28 2016-11-29 Intel Corporation Instruction and logic for prefetcher throttling based on counts of memory accesses to data sources
US10496410B2 (en) 2014-12-23 2019-12-03 Intel Corporation Instruction and logic for suppression of hardware prefetchers
US10180905B1 (en) * 2016-04-07 2019-01-15 Apple Inc. Unified prefetch circuit for multi-level caches
US10430349B2 (en) * 2016-06-13 2019-10-01 Advanced Micro Devices, Inc. Scaled set dueling for cache replacement policies
US10296460B2 (en) * 2016-06-29 2019-05-21 Oracle International Corporation Prefetch bandwidth throttling by dynamically adjusting miss buffer prefetch-dropping thresholds
US9886385B1 (en) 2016-08-25 2018-02-06 Apple Inc. Content-directed prefetch circuit with quality filtering
US10657059B2 (en) 2017-09-12 2020-05-19 International Business Machines Corporation Controlling a rate of prefetching based on bus bandwidth
US10606752B2 (en) * 2017-11-06 2020-03-31 Samsung Electronics Co., Ltd. Coordinated cache management policy for an exclusive cache hierarchy

Also Published As

Publication number Publication date
US20190294546A1 (en) 2019-09-26
EP3769226A1 (en) 2021-01-27
KR102231190B1 (ko) 2021-03-23
WO2019182733A1 (en) 2019-09-26
CN111837110B (zh) 2022-04-05
EP3769226A4 (en) 2021-12-22
JP2021510886A (ja) 2021-04-30
CN111837110A (zh) 2020-10-27
US10613983B2 (en) 2020-04-07
EP3769226B1 (en) 2023-01-11
KR20200123844A (ko) 2020-10-30

Similar Documents

Publication Publication Date Title
JP6855642B1 (ja) プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術
US11675703B2 (en) Memory request throttling to constrain memory bandwidth utilization
US10754778B2 (en) Control of pre-fetch traffic
US8443151B2 (en) Prefetch optimization in shared resource multi-core systems
Ebrahimi et al. Prefetch-aware shared resource management for multi-core systems
US20070239940A1 (en) Adaptive prefetching
EP3676713B1 (en) Utilization-based throttling of hardware prefetchers
US20130246708A1 (en) Filtering pre-fetch requests to reduce pre-fetching overhead
US7246205B2 (en) Software controlled dynamic push cache
US9390010B2 (en) Cache management
US20240345868A1 (en) Pseudo-random way selection
JP2010532904A (ja) データプリフェッチスロットル
CN106372007B (zh) 缓存使用率估计
Yedlapalli et al. Meeting midway: Improving CMP performance with memory-side prefetching
WO2021014338A1 (en) Allocation policy for shared resource accessible in both secure and less secure domains
US8260990B2 (en) Selective preclusion of a bus access request
CN115715390A (zh) 用于自适应混合硬件预取的系统和方法
JP5527477B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US7603522B1 (en) Blocking aggressive neighbors in a cache subsystem
CN118245512B (zh) 一种预取控制方法、装置、电子设备及可读存储介质
OnurMutlu et al. DRAM-Aware Last-Level Cache Replacement

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201113

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201113

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210128

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: 20210216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210317

R150 Certificate of patent or registration of utility model

Ref document number: 6855642

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250