JP6355853B2 - マルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムおよび方法 - Google Patents
マルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP6355853B2 JP6355853B2 JP2017535789A JP2017535789A JP6355853B2 JP 6355853 B2 JP6355853 B2 JP 6355853B2 JP 2017535789 A JP2017535789 A JP 2017535789A JP 2017535789 A JP2017535789 A JP 2017535789A JP 6355853 B2 JP6355853 B2 JP 6355853B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- processor
- cluster
- workload
- processor cluster
- 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
Links
- 238000000034 method Methods 0.000 title claims description 31
- 238000012545 processing Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000013508 migration Methods 0.000 description 8
- 230000005012 migration Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- 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
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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/1028—Power efficiency
-
- 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
101 キャッシュコントローラ
102 プロセッサクラスタ、Littleプロセッサクラスタ
103 システムオンチップ(SoC)、オンチップシステム
104 プロセッサクラスタ、Bigプロセッサクラスタ
105 RAMカード
106 プロセッサクラスタ
108 中央処理ユニット(CPU)コア、LittleクラスタCPUコア、CPU
110 中央処理ユニット(CPU)コア、LittleクラスタCPUコア、CPU
111 キャッシュ相互接続
112 L2キャッシュ
114 CPUコア、BigクラスタCPUコア、CPU
116 CPUコア、BigクラスタCPUコア、CPU
118 L2キャッシュ
120 GPUコア
122 GPUコア
124 L2キャッシュ
126 キャッシュモニタ
128 キャッシュモニタ
130 キャッシュモニタ
140 キャッシュスケジューラ
144 メインメモリ、メモリ
150 動的キャッシュ拡張モジュール
152 動的キャッシュ再割振りモジュール
202 データ入力、入力、プロセッサ使用入力データ
204 データ入力、入力、L2キャッシュ使用/ミス率入力データ
206 キャッシュ拡張モード
208 タスク移行モード
210 デフォルト分割L2モード
300 テーブル
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(USB)コントローラ、USBコントローラ
342 USBポート
348 デジタルカメラ、カメラ
350 ステレオオーディオコーダデコーダ(コーデック)、ステレオオーディオコーデック
352 オーディオ増幅器
354 第1のステレオスピーカー
356 第2のステレオスピーカー
360 マイクロフォン
362 周波数変調(FM)無線チューナー、FM無線チューナー
364 FMアンテナ
366 ステレオヘッドフォン
368 無線周波数(RF)トランシーバ、RFトランシーバ
370 RFスイッチ
372 RFアンテナ
376 モノヘッドセット
378 バイブレータデバイス、バイブレータ
380 電源
400 方法
502 一部分
504 一部分
602 物理キャッシュ
604 論理キャッシュ
700 マッピングテーブル
802 現在のタスク、タスク
901 低電力モードドライバ
902 タスクウェイクアップ入力
903 タイムアウト選択アルゴリズム
905 オペレーティングシステム
907 スケジューラ
909 移行元L2キャッシュ
1000 ポータブルコンピューティングデバイス(PCD)、PCD
1006 タッチスクリーンコントローラ、タッチスクリーンディスプレイ
Claims (26)
- ポータブルコンピューティングデバイス内のマルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するための方法であって、
第1のプロセッサクラスタと、関連する第2のキャッシュを有する第2のプロセッサクラスタとを備える前記マルチクラスタ異種プロセッサアーキテクチャにおいて、前記第1のプロセッサクラスタおよび関連する第1のキャッシュについてのプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取るステップと、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定するステップと、前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定するステップと、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも一部分を前記第1のキャッシュの拡張として使用するステップと、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行するステップと
を含む方法。 - 前記第1のキャッシュに関連付けられたスヌープヒットカウンタを監視するステップと、
前記スヌープヒットカウンタがしきい値を下回るか、または省電力状態のためのタイマが満了した場合、前記第1のキャッシュを省電力状態にさせるステップと
をさらに含む、請求項1に記載の方法。 - 前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項1に記載の方法。
- 前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含む、請求項1に記載の方法。
- 前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項1に記載の方法。
- 前記第1のプロセッサクラスタが、第1のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備え、前記第2のプロセッサクラスタが、第2のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備える、請求項1に記載の方法。
- 前記第1のプロセッサタイプおよび前記第2のプロセッサタイプが、マルチコアプロセッサ、中央処理ユニット(CPU)、グラフィックスプロセッサユニット(GPU)、およびデジタル信号プロセッサ(DSP)のうちの1つまたは複数を含む、請求項6に記載の方法。
- 前記マルチクラスタ異種プロセッサアーキテクチャが、前記第1のプロセッサクラスタが、前記第2のプロセッサクラスタを備える1つまたは複数のプロセッサコアよりも低い電力を有する1つまたは複数のプロセッサコアを備える、異種アーキテクチャを備え、前記第1のプロセッサクラスタ内の前記第1のキャッシュが、前記第2のプロセッサクラスタ内の前記第2のキャッシュよりも小さいサイズを有する、請求項1に記載の方法。
- 前記第1のキャッシュおよび前記第2のキャッシュが、前記関連するプロセッサクラスタのためのレベル2(L2)キャッシュを備え、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも前記一部分を前記第1のキャッシュの拡張として使用する前記ステップが、前記第2のキャッシュを前記第1のプロセッサクラスタのためのレベル3(L3)キャッシュとして使用するステップを含む、請求項1に記載の方法。
- ポータブルコンピューティングデバイス内のマルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムであって、
第1のプロセッサクラスタと、関連する第2のキャッシュを有する第2のプロセッサクラスタとを備える前記マルチクラスタ異種プロセッサアーキテクチャにおいて、前記第1のプロセッサクラスタおよび関連する第1のキャッシュについてのプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取るための手段と、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定する手段と、前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定するための手段と、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも一部分を前記第1のキャッシュの拡張として使用するための手段と、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行するための手段と
を備えるシステム。 - 前記第1のキャッシュに関連付けられたスヌープヒットカウンタを監視するための手段と、
前記スヌープヒットカウンタがしきい値を超えるか、または省電力状態のためのタイマが満了した場合、前記第1のキャッシュを省電力状態にさせるための手段と
をさらに備える、請求項10に記載のシステム。 - 前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項10に記載のシステム。
- 前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含む、請求項10に記載のシステム。
- 前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項10に記載のシステム。
- 前記第1のプロセッサクラスタが、第1のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備え、前記第2のプロセッサクラスタが、第2のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備える、請求項10に記載のシステム。
- 前記第1のプロセッサタイプおよび前記第2のプロセッサタイプが、マルチコアプロセッサ、中央処理ユニット(CPU)、グラフィックスプロセッサユニット(GPU)、およびデジタル信号プロセッサ(DSP)のうちの1つまたは複数を含む、請求項15に記載のシステム。
- 前記マルチクラスタ異種プロセッサアーキテクチャが、前記第1のプロセッサクラスタが、前記第2のプロセッサクラスタを備える1つまたは複数のプロセッサコアよりも低い電力を有する1つまたは複数のプロセッサコアを備える、異種アーキテクチャを備え、前記第1のプロセッサクラスタ内の前記第1のキャッシュが、前記第2のプロセッサクラスタ内の前記第2のキャッシュよりも小さいサイズを有する、請求項10に記載のシステム。
- 前記第1のキャッシュおよび前記第2のキャッシュが、前記関連するプロセッサクラスタのためのレベル2(L2)キャッシュを備え、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも前記一部分を前記第1のキャッシュの拡張として使用するための前記手段が、前記第2のキャッシュを前記第1のプロセッサクラスタのためのレベル3(L3)キャッシュとして使用するための手段を備える、請求項10に記載のシステム。
- コンピュータ可読記憶媒体において具現化され、ポータブルコンピューティングデバイス内のマルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためにプロセッサによって実行可能なコンピュータプログラムであって、
第1のプロセッサクラスタと、関連する第2のキャッシュを有する第2のプロセッサクラスタとを備える前記マルチクラスタ異種プロセッサアーキテクチャにおいて、前記第1のプロセッサクラスタおよび関連する第1のキャッシュについてのプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取り、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定し、
前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも一部分を前記第1のキャッシュの拡張として使用し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行する
ように構成されたロジックを備えるコンピュータプログラム。 - 前記第1のキャッシュに関連付けられたスヌープヒットカウンタを監視し、
前記スヌープヒットカウンタがしきい値を超えるか、または省電力状態のためのタイマが満了した場合、前記第1のキャッシュを省電力状態にさせる
ように構成されたロジックをさらに備える、請求項19に記載のコンピュータプログラム。 - 前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項19に記載のコンピュータプログラム。
- 前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項19に記載のコンピュータプログラム。
- 動的キャッシュ拡張を提供するためのマルチクラスタ異種プロセッサアーキテクチャを有するシステムであって、
第1のレベル2(L2)キャッシュを備える第1のプロセッサクラスタと、
第2のL2キャッシュを備える第2のプロセッサクラスタと、
前記第1のL2キャッシュおよび前記第2のL2キャッシュと通信しているコントローラとを備え、前記コントローラが、
前記第1のプロセッサクラスタからプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取り、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定し、
前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のL2キャッシュの少なくとも一部分を前記第1のL2キャッシュの拡張として使用し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行する
ように構成される、システム。 - 前記コントローラが、
前記第1のL2キャッシュに関連付けられたスヌープヒットカウンタを監視し、
前記スヌープヒットカウンタがしきい値を超えるか、または省電力状態のためのタイマが満了した場合、前記第1のL2キャッシュを省電力状態にさせる
ようにさらに構成される、請求項23に記載のシステム。 - 前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項23に記載のシステム。
- 前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項23に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/595,998 US9697124B2 (en) | 2015-01-13 | 2015-01-13 | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture |
US14/595,998 | 2015-01-13 | ||
PCT/US2016/012374 WO2016114961A1 (en) | 2015-01-13 | 2016-01-06 | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018505476A JP2018505476A (ja) | 2018-02-22 |
JP6355853B2 true JP6355853B2 (ja) | 2018-07-11 |
Family
ID=55310902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017535789A Active JP6355853B2 (ja) | 2015-01-13 | 2016-01-06 | マルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9697124B2 (ja) |
EP (1) | EP3245587B1 (ja) |
JP (1) | JP6355853B2 (ja) |
KR (1) | KR101799253B1 (ja) |
CN (1) | CN107111553B (ja) |
WO (1) | WO2016114961A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6451538B2 (ja) * | 2015-07-22 | 2019-01-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US11289133B2 (en) * | 2015-09-16 | 2022-03-29 | Arm Limited | Power state based data retention |
CN105744342B (zh) * | 2016-01-28 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 移动终端的数据传输方法和装置 |
KR101887741B1 (ko) * | 2016-04-11 | 2018-09-11 | 전자부품연구원 | 적응적 블록 캐시 운용 방법 및 이를 적용한 dbms |
US10275280B2 (en) | 2016-08-10 | 2019-04-30 | International Business Machines Corporation | Reserving a core of a processor complex for a critical task |
US10248457B2 (en) | 2016-08-10 | 2019-04-02 | International Business Machines Corporation | Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task |
US10152243B2 (en) * | 2016-09-15 | 2018-12-11 | Qualcomm Incorporated | Managing data flow in heterogeneous computing |
US10223164B2 (en) | 2016-10-24 | 2019-03-05 | International Business Machines Corporation | Execution of critical tasks based on the number of available processing entities |
US10248464B2 (en) | 2016-10-24 | 2019-04-02 | International Business Machines Corporation | Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex |
CN108614782B (zh) * | 2018-04-28 | 2020-05-01 | 深圳市华阳国际工程造价咨询有限公司 | 一种用于数据处理系统的高速缓存访问方法 |
CN111124947B (zh) * | 2018-10-31 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其装置 |
US11360891B2 (en) * | 2019-03-15 | 2022-06-14 | Advanced Micro Devices, Inc. | Adaptive cache reconfiguration via clustering |
GB2579682B (en) * | 2019-03-25 | 2021-03-24 | Trustonic Ltd | Trusted execution environment migration method |
CN113392604B (zh) * | 2021-06-04 | 2023-08-01 | 中国科学院计算技术研究所 | 基于先进封装技术的多cpu共封架构下高速缓存的动态扩容方法及系统 |
US11734180B2 (en) * | 2021-07-28 | 2023-08-22 | EMC IP Holding Company LLC | Memory efficient approach to extending cache |
US20230094030A1 (en) * | 2021-09-30 | 2023-03-30 | Advanced Micro Devices, Inc. | Cache resizing based on processor workload |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6021466A (en) | 1996-03-14 | 2000-02-01 | Compaq Computer Corporation | Transferring data between caches in a multiple processor environment |
EP1182559B1 (en) | 2000-08-21 | 2009-01-21 | Texas Instruments Incorporated | Improved microprocessor |
US7076609B2 (en) * | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
US7822105B2 (en) | 2003-09-02 | 2010-10-26 | Sirf Technology, Inc. | Cross-correlation removal of carrier wave jamming signals |
US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
US7554909B2 (en) * | 2005-03-21 | 2009-06-30 | Intel Corporation | Dynamic service management for multicore processors |
US20070294693A1 (en) * | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Scheduling thread execution among a plurality of processors based on evaluation of memory access data |
JP2008046685A (ja) * | 2006-08-10 | 2008-02-28 | Fujitsu Ltd | 二重化システム及び系切り換え方法 |
US20080235454A1 (en) | 2007-03-22 | 2008-09-25 | Ibm Corporation | Method and Apparatus for Repairing a Processor Core During Run Time in a Multi-Processor Data Processing System |
US8725953B2 (en) * | 2009-01-21 | 2014-05-13 | Arm Limited | Local cache power control within a multiprocessor system |
US20110066830A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Cache prefill on thread migration |
US8392659B2 (en) * | 2009-11-05 | 2013-03-05 | International Business Machines Corporation | Extending cache capacity on multiple-core processor systems |
KR101697937B1 (ko) | 2010-01-08 | 2017-02-01 | 삼성전자주식회사 | 멀티프로세서 시스템에서 동적 태스크 마이그레이션을 위한 방법 및 시스템 |
US8533505B2 (en) * | 2010-03-01 | 2013-09-10 | Arm Limited | Data processing apparatus and method for transferring workload between source and destination processing circuitry |
US8438338B2 (en) * | 2010-08-15 | 2013-05-07 | International Business Machines Corporation | Flexible use of extended cache using a partition cache footprint |
US8522251B2 (en) | 2011-01-10 | 2013-08-27 | International Business Machines Corporation | Organizing task placement based on workload characterizations |
US9038088B2 (en) * | 2011-03-10 | 2015-05-19 | Nec Laboratories America, Inc. | Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases |
US9311250B2 (en) * | 2011-12-19 | 2016-04-12 | Intel Corporation | Techniques for memory de-duplication in a virtual system |
US8924644B2 (en) | 2011-12-28 | 2014-12-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Extending cache in a multi-processor computer |
US8943343B2 (en) | 2012-06-20 | 2015-01-27 | Intel Corporation | Controlling an asymmetrical processor |
WO2014196976A1 (en) * | 2013-06-06 | 2014-12-11 | Empire Technology Development, Llc | Shared cache data movement in thread migration |
US20150324234A1 (en) * | 2013-11-14 | 2015-11-12 | Mediatek Inc. | Task scheduling method and related non-transitory computer readable medium for dispatching task in multi-core processor system based at least partly on distribution of tasks sharing same data and/or accessing same memory address(es) |
US9632958B2 (en) * | 2014-07-06 | 2017-04-25 | Freescale Semiconductor, Inc. | System for migrating stash transactions |
US20160077871A1 (en) * | 2014-09-17 | 2016-03-17 | Advanced Micro Devices, Inc. | Predictive management of heterogeneous processing systems |
-
2015
- 2015-01-13 US US14/595,998 patent/US9697124B2/en active Active
-
2016
- 2016-01-06 JP JP2017535789A patent/JP6355853B2/ja active Active
- 2016-01-06 KR KR1020177018990A patent/KR101799253B1/ko active IP Right Grant
- 2016-01-06 WO PCT/US2016/012374 patent/WO2016114961A1/en active Application Filing
- 2016-01-06 CN CN201680005459.8A patent/CN107111553B/zh active Active
- 2016-01-06 EP EP16703371.1A patent/EP3245587B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107111553B (zh) | 2018-10-12 |
EP3245587A1 (en) | 2017-11-22 |
US20160203083A1 (en) | 2016-07-14 |
EP3245587B1 (en) | 2020-07-15 |
US9697124B2 (en) | 2017-07-04 |
KR20170093234A (ko) | 2017-08-14 |
JP2018505476A (ja) | 2018-02-22 |
WO2016114961A1 (en) | 2016-07-21 |
KR101799253B1 (ko) | 2017-12-12 |
CN107111553A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6355853B2 (ja) | マルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムおよび方法 | |
US9626295B2 (en) | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring | |
US11586451B2 (en) | Resource management with dynamic resource policies | |
EP3155521B1 (en) | Systems and methods of managing processor device power consumption | |
CN109074331B (zh) | 具有系统高速缓存和本地资源管理的功率降低存储器子系统 | |
JP2018533112A (ja) | コマンドストリームヒントを使用したgpu作業負荷の特徴づけおよび電力管理 | |
US9411649B2 (en) | Resource allocation method | |
US20170212581A1 (en) | Systems and methods for providing power efficiency via memory latency control | |
US10064141B2 (en) | Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit | |
JP2018527676A (ja) | メモリ状態遷移タイマを動的に調整するためのシステムおよび方法 | |
US9501299B2 (en) | Minimizing performance loss on workloads that exhibit frequent core wake-up activity | |
JP2013516711A (ja) | 電子デバイスにおける電力を制御するシステムおよび方法 | |
US20220300421A1 (en) | Memory Sharing | |
US20120297106A1 (en) | Method and System for Dynamically Managing a Bus of a Portable Computing Device | |
CN108885587B (zh) | 具有系统高速缓存和本地资源管理的功率降低存储器子系统 | |
US20240330061A1 (en) | Systems and methods for prioritizing and assigning threads in a heterogeneous processor architecture | |
JP2018505489A (ja) | システムオンチップにおける動的メモリ利用 | |
WO2024206942A1 (en) | Systems and methods for prioritizing and assigning threads in a heterogeneous processor architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180207 |
|
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: 20180514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6355853 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |