JP2021510886A - プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術 - Google Patents
プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術 Download PDFInfo
- Publication number
- JP2021510886A JP2021510886A JP2020549639A JP2020549639A JP2021510886A JP 2021510886 A JP2021510886 A JP 2021510886A JP 2020549639 A JP2020549639 A JP 2020549639A JP 2020549639 A JP2020549639 A JP 2020549639A JP 2021510886 A JP2021510886 A JP 2021510886A
- 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.)
- Granted
Links
- 238000005516 engineering process Methods 0.000 title description 6
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims description 16
- 238000010586 diagram Methods 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 45
- 230000001627 detrimental effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010587 phase diagram Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000009467 reduction 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/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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- 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/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/1024—Latency reduction
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
少なくとも1つの実施形態では、メモリシステムのメモリアクセスレイテンシを低減する方法は、ペナルティメイト(penultimate)レベルキャッシュからメインメモリへの投機的メモリ読み出し要求の要求レートを監視することを含む。投機的メモリ読み出し要求は、ペナルティメイトレベルキャッシュでミスしたデータ読み出し要求に対応する。投機的メモリ読み出し要求の各々は、コアデマンド投機的メモリ読み出し要求、又は、プリフェッチ投機的メモリ読み出し要求である。データ読み出し要求の各々は、コアデマンドデータ読み出し要求、又は、プリフェッチデータ読み出し要求である。この方法は、データ読み出し要求によって要求されたデータに関する最終レベルキャッシュの検索のヒット率を監視することを含む。投機的メモリ読み出し要求の各々は、対応するデータに関する最終レベルキャッシュの検索と並行して発行される。この方法は、要求レート及びヒット率に基づいて、対応するコアデマンドデータ読み出し要求のデータに関する最終レベルキャッシュの検索と並行して、メインメモリへのコアデマンド投機的メモリ読み出し要求を選択的に有効にすることを含む。この方法は、要求レート及びヒット率に基づいて、対応するプリフェッチデータ読み出し要求のデータに関する最終レベルキャッシュの検索と並行して、メインメモリへのプリフェッチ投機的メモリ読み出し要求を選択的に有効にすることを含む。投機的メモリ読み出し要求の各々は、検索と並行して発行される実際の投機的メモリ読み出し要求、又は、未実現の投機的メモリ読み出し要求であってもよい。
1.投機的DRAM読み出し要求精度又は投機的DRAM読み出し要求レートが対応する所定の閾値に違反した場合、キャッシュコントローラは、先ず、プリフェッチのための投機的DRAM読み出し要求を無効にする。
2.投機的DRAM読み出し要求がプリフェッチに対してのみ無効にされ、投機的DRAM読み出し要求精度又は投機的DRAM読み出し要求レートが対応する所定の閾値に違反した場合、キャッシュコントローラは、全ての投機的DRAM読み出し要求を無効にする。
1.全ての投機的DRAM読み出し要求が無効にされ、投機的DRAM読み出し要求の精度が第2のターゲット範囲内にある場合、キャッシュコントローラは、コアデマンド要求に対してのみ投機的DRAM読み出し要求を有効にする。プリフェッチについての投機的DRAM読み出し要求は無効のままである。
2.コアデマンドの投機的DRAM読み出し要求のみが有効にされ、投機的DRAM読み出しトラフィック及び投機的DRAM読み出し要求の精度が第2のターゲット範囲内にある場合、コントローラは、ペナルティメイトレベルキャッシュ内の全てのミスについて投機的DRAM読み出し要求を有効にする。
Claims (17)
- メモリシステムのメモリアクセスのレイテンシを低減する方法であって、
ペナルティメイトレベルキャッシュからメインメモリへの投機的メモリ読み出し要求の要求レートを監視することであって、前記投機的メモリ読み出し要求は、前記ペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求に対応しており、前記投機的メモリ読み出し要求の各々は、コアデマンド投機的メモリ読み出し要求又はプリフェッチ投機的メモリ読み出し要求であり、前記データ読み出し要求の各々は、コアデマンドデータ読み出し要求又はプリフェッチデータ読み出し要求である、ことと、
前記データ読み出し要求によって要求されたデータについての最終レベルキャッシュの検索のヒット率を監視することであって、前記投機的メモリ読み出し要求の各々は、対応するデータについての前記最終レベルキャッシュの検索と並行して発行される、ことと、
前記要求レート及び前記ヒット率に基づいて、対応するコアデマンドデータ読み出し要求のデータについての前記最終レベルキャッシュの検索と並行して、前記メインメモリへのコアデマンド投機的メモリ読み出し要求を選択的に有効にすることと、
前記要求レート及び前記ヒット率に基づいて、対応するプリフェッチデータ読み出し要求のデータについての前記最終レベルキャッシュの検索と並行して、前記メインメモリへのプリフェッチ投機的メモリ読み出し要求を選択的に有効にすることと、を含む、
方法。 - 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が有効にされること、及び、前記要求レートが所定の要求レート閾値を超えるか前記ヒット率が所定のヒット率閾値を超えたことに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
請求項1の方法。 - 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが第2の所定の要求レート閾値未満であること、及び、前記ヒット率が第2の所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を有効にすることを含み、
前記第2の所定の要求レート閾値は、前記所定の要求レート閾値未満であり、前記第2の所定のヒット率閾値は、前記所定のヒット率閾値未満である、
請求項2の方法。 - 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、及び、前記要求レートが所定の要求レート閾値を超えるか前記ヒット率が所定のヒット率閾値を超えることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を無効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
請求項1の方法。 - 前記コアデマンド投機的メモリ読み出し要求が無効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが第2の所定の要求レート閾値未満であること、及び、前記ヒット率が第2の所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含み、
前記第2の所定の要求レート閾値は、前記所定の要求レート閾値未満であり、前記第2の所定のヒット率閾値は、前記所定のヒット率閾値未満である、
請求項4の方法。 - 前記コアデマンド投機的メモリ読み出し要求が有効にされること、前記プリフェッチ投機的メモリ読み出し要求が有効にされること、前記要求レートが所定の要求レート閾値未満であること、及び、前記ヒット率が所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を有効にすることを含む、
請求項1の方法。 - コアデマンド投機的メモリ読み出し要求が有効にされること、プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが所定の要求レート閾値未満であること、及び、前記ヒット率が前記所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を有効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
請求項1の方法。 - 前記コアデマンド投機的メモリ読み出し要求が無効にされること、前記プリフェッチ投機的メモリ読み出し要求が無効にされること、前記要求レートが所定の要求レート閾値未満であること、及び、前記ヒット率が所定のヒット率閾値未満であることに応じて、前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記コアデマンド投機的メモリ読み出し要求を無効にすることを含み、前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記プリフェッチ投機的メモリ読み出し要求を無効にすることを含む、
請求項1の方法。 - 前記メインメモリに接続された複数のペナルティメイトレベルキャッシュに対するクラスタレベルの要求レートを監視することと、
前記複数のペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求によって要求されたデータについて、共有された最終レベルキャッシュの検索のクラスタレベルのヒット率を監視することと、をさらに含み、
前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記クラスタレベルの要求レート及び前記クラスタレベルのヒット率にさらに基づいており、
前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記クラスタレベルの要求レート及び前記クラスタレベルのヒット率にさらに基づいている、
請求項1、2、3、4、5、6、7又は8の方法。 - 所定の要求レート閾値又は所定のヒット率閾値を、前記クラスタレベルの要求レート又は前記クラスタレベルのヒット率に基づいて調整することをさらに含み、
前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、前記所定の要求レート閾値及び前記所定のヒット率閾値にさらに基づいており、
前記プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、前記所定の要求レート閾値及び前記所定のヒット率閾値にさらに基づいている、
請求項9の方法。 - 前記投機的メモリ読み出し要求の各々は、前記検索することと並行して発行される実際の投機的メモリ読み出し要求、又は、未実現の投機的メモリ読み出し要求である、
請求項1、2、3、4、5、6、7又は8の方法。 - ペナルティメイトレベルキャッシュと、
最終レベルキャッシュと、
メインメモリと、
前記ペナルティメイトレベルキャッシュから前記メインメモリへの投機的メモリ読み出し要求の要求レートを記憶するように構成される第1カウンタであって、前記投機的メモリ読み出し要求の各々が、対応するデータ読み出し要求の前記ペナルティメイトレベルキャッシュ内でのミスに応答している、第1カウンタと、
前記ペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求のデータについての前記最終レベルキャッシュの検索のヒット率のインジケータを記憶するように構成された第2カウンタと、
前記ペナルティメイトレベルキャッシュに関連するコントローラと、を備え、
前記コントローラは、
前記要求レート、前記ヒット率、所定の要求レート閾値及び所定のヒット率閾値に基づいて、前記検索と並行して、前記メインメモリへのコアデマンド投機的メモリ読み出し要求を選択的に有効にし、
前記要求レート、前記ヒット率、前記所定の要求レート閾値及び前記所定のヒット率閾値に基づいて、前記検索と並行して、前記メインメモリへのプリフェッチ投機的メモリ読み出し要求を選択的に有効にする、
ように構成されており、
前記投機的メモリ読み出し要求の各々は、コアデマンド投機的メモリ読み出し要求又はプリフェッチ投機的メモリ読み出し要求である、
メモリシステム。 - 前記コントローラは、前記ペナルティメイトレベルキャッシュ内での各ミスに応じて前記第1カウンタをインクリメントし、前記最終レベルキャッシュ内での各ヒットに応じて前記第2カウンタをインクリメントし、前記第1カウンタ及び前記第2カウンタを定期的にリセットするように構成されている、
請求項12のメモリシステム。 - コアデマンドデータ読み出し要求についての前記コアデマンド投機的メモリ読み出し要求を選択的に有効にすることは、第2の所定の要求レート閾値及び第2の所定のヒット率閾値にさらに基づいており、
プリフェッチ投機的メモリ読み出し要求を選択的に有効にすることは、第2の所定の要求レート閾値及び第2の所定のヒット率閾値にさらに基づいている、
請求項12のメモリシステム。 - 前記最終レベルキャッシュと前記メインメモリとの間に接続されたクラスタ相互接続構造を備え、
前記クラスタ相互接続構造は、
対応するペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求の要求されたデータについての前記最終レベルキャッシュの検索と並行して、コアクラスタ内の何れかのペナルティメイトレベルキャッシュから前記メインメモリへの投機的メモリ読み出し要求のクラスタレベルの要求レートを記憶するように構成された第3カウンタであって、前記最終レベルキャッシュは、前記コアクラスタ内のコアによって共有される、第3カウンタと、
前記投機的メモリ読み出し要求のクラスタレベルのヒット率のインジケータを、対応するペナルティメイトレベルキャッシュ内でミスしたデータ読み出し要求についての前記最終レベルキャッシュに記憶するように構成された第4カウンタと、を備える、
請求項12のメモリシステム。 - 前記第1カウンタ及び前記第2カウンタは、コアクラスタのコアで実行される第1スレッドに関連付けられており、
前記メモリシステムは、
前記コアで実行される第2スレッドに関連付けられており、前記ペナルティメイトレベルキャッシュから前記メインメモリに前記第2スレッドについての投機的メモリ読み出し要求の要求レートを記憶するように構成された第3カウンタであって、前記第2スレッドについての前記投機的メモリ読み出し要求の各々が前記第2スレッドの対応するデータ読み出し要求の前記ペナルティメイトレベルキャッシュ内でのミスに応答する、第3カウンタと、
前記コアで実行される前記第2スレッドに関連付けられており、前記ペナルティメイトレベルキャッシュ内でミスした前記第2スレッドのデータ読み出し要求についての前記最終レベルキャッシュの検索のヒット率のインジケータを記憶するように構成される第4カウンタと、をさらに備える、
請求項12のメモリシステム。 - 前記投機的メモリ読み出し要求は、前記最終レベルキャッシュの前記検索と並行して発行される実際の投機的メモリ読み出し要求、及び、未実現の投機的メモリ読み出し要求を含み、
前記ヒット率は、前記検索の前記最終レベルキャッシュ内でのヒットに基づいている、
請求項12、13、14、15又は16のメモリシステム。
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 JP6855642B1 (ja) | 2021-04-07 |
JP2021510886A true 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)
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 |
KR20210011201A (ko) | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 온도 조절 방법 |
KR20200132047A (ko) * | 2019-05-15 | 2020-11-25 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 |
US11237973B2 (en) | 2019-04-09 | 2022-02-01 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
KR20200119059A (ko) | 2019-04-09 | 2020-10-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20210011216A (ko) | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템의 메타 데이터 관리 방법 및 장치 |
KR20210014338A (ko) | 2019-07-30 | 2021-02-09 | 에스케이하이닉스 주식회사 | 데이터 저장 장치, 데이터 처리 시스템 및 데이터 저장 장치의 동작 방법 |
KR20210011176A (ko) | 2019-07-22 | 2021-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템의 액세스 동작 방법 및 장치 |
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 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017218026A1 (en) * | 2016-06-13 | 2017-12-21 | Advanced Micro Devices, Inc. | Scaled set dueling for cache replacement policies |
Family Cites Families (28)
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 |
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 |
US20080028150A1 (en) | 2006-07-28 | 2008-01-31 | Farnaz Toussi | 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 |
US8032713B2 (en) | 2007-12-10 | 2011-10-04 | International Business Machines Corporation | Structure for handling data access |
US7949830B2 (en) | 2007-12-10 | 2011-05-24 | International Business Machines Corporation | System and method for handling data requests |
US9053031B2 (en) | 2007-12-10 | 2015-06-09 | International Business Machines Corporation | System and method for handling data access |
US7937533B2 (en) | 2007-12-10 | 2011-05-03 | International Business Machines Corporation | Structure for handling data requests |
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 |
US8838906B2 (en) | 2010-01-08 | 2014-09-16 | International Business Machines Corporation | Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution |
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 |
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 |
-
2018
- 2018-03-20 US US15/925,859 patent/US10613983B2/en active Active
-
2019
- 2019-02-27 WO PCT/US2019/019766 patent/WO2019182733A1/en unknown
- 2019-02-27 JP JP2020549639A patent/JP6855642B1/ja active Active
- 2019-02-27 EP EP19772169.9A patent/EP3769226B1/en active Active
- 2019-02-27 CN CN201980018182.6A patent/CN111837110B/zh active Active
- 2019-02-27 KR KR1020207029359A patent/KR102231190B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017218026A1 (en) * | 2016-06-13 | 2017-12-21 | Advanced Micro Devices, Inc. | Scaled set dueling for cache replacement policies |
JP2019517690A (ja) * | 2016-06-13 | 2019-06-24 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | キャッシュ置換ポリシーのスケーリングされたセットデュエリング |
Also Published As
Publication number | Publication date |
---|---|
US10613983B2 (en) | 2020-04-07 |
EP3769226B1 (en) | 2023-01-11 |
CN111837110A (zh) | 2020-10-27 |
CN111837110B (zh) | 2022-04-05 |
EP3769226A1 (en) | 2021-01-27 |
WO2019182733A1 (en) | 2019-09-26 |
JP6855642B1 (ja) | 2021-04-07 |
EP3769226A4 (en) | 2021-12-22 |
KR20200123844A (ko) | 2020-10-30 |
KR102231190B1 (ko) | 2021-03-23 |
US20190294546A1 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6855642B1 (ja) | プリフェッチャベースの投機的ダイナミックランダムアクセスメモリ読み出し要求技術 | |
US11675703B2 (en) | Memory request throttling to constrain memory bandwidth utilization | |
US8443151B2 (en) | Prefetch optimization in shared resource multi-core systems | |
US10754778B2 (en) | Control of pre-fetch traffic | |
Ebrahimi et al. | Prefetch-aware shared resource management for multi-core systems | |
US10013326B2 (en) | Propagating a prefetching profile bit from a prefetch queue to a data cache to indicate that a line was prefetched in response to an instruction within a code region | |
US7757045B2 (en) | Synchronizing recency information in an inclusive cache hierarchy | |
US20070239940A1 (en) | Adaptive prefetching | |
US20130246708A1 (en) | Filtering pre-fetch requests to reduce pre-fetching overhead | |
US7246205B2 (en) | Software controlled dynamic push cache | |
US9390010B2 (en) | Cache management | |
JP2010532904A (ja) | データプリフェッチスロットル | |
US20240345868A1 (en) | Pseudo-random way selection | |
CN106372007B (zh) | 缓存使用率估计 | |
EP4004741A1 (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 |