JP2017526039A - レイテンシに基づくメモリ制御装置の電力管理 - Google Patents
レイテンシに基づくメモリ制御装置の電力管理 Download PDFInfo
- Publication number
- JP2017526039A JP2017526039A JP2016572557A JP2016572557A JP2017526039A JP 2017526039 A JP2017526039 A JP 2017526039A JP 2016572557 A JP2016572557 A JP 2016572557A JP 2016572557 A JP2016572557 A JP 2016572557A JP 2017526039 A JP2017526039 A JP 2017526039A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- power
- processor
- memory controller
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 266
- 238000000034 method Methods 0.000 claims description 48
- 230000004044 response Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 18
- 238000003860 storage Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 238000009826 distribution Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- 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
- 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/3419—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 by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
-
- 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)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
Abstract
プロセッサ(100)は、メモリ制御装置(110)が1つ以上のメモリアクセス要求に応答するのにかかる時間を直接的又は間接的に監視する。プログラムスレッドのメモリレイテンシ許容度を超えた(504)ことをメモリアクセスレイテンシが示す場合に、プロセッサは、メモリ制御装置への追加の電力を配分し(506)、これにより、メモリ制御装置がメモリアクセス要求を処理可能な速度を向上させることができる。【選択図】図1
Description
本開示は、概してプロセッサに関し、より具体的には、プロセッサの電力管理に関する。
例えばバッテリで駆動されるプロセッサを有する多くの電子装置に関しては、少なくとも最低限の性能目標を満たしながらプロセッサの消費電力を極力少なくすることが望ましい。これにより、プロセッサには、通常、プロセッサに与えられる電力を表す電圧又は他の特性によって表される電力バジェット(power budget)が割り当てられている。プロセッサは、各モジュールに印加される電圧又は他の特性を、少なくとも最低限の性能目標を満たすように設定することによって、例えばプロセッサコア、メモリ制御装置等の様々なモジュールに電力バジェットを配分する。しかし、各モジュールは、あらゆる状況下で、配分された電力を必要とするわけではない。例えば、実行する動作のないモジュールは、短時間の間、配分された電力を必要とせずに、プロセッサに対して、当該モジュールに配分された電力の一部を異なるモジュールに一時的に割り当て直させることによって、プロセッサ全体の性能を向上し得る。
添付図面を参照することによって、本開示をよりよく理解することができ、本開示の多くの特徴及び利点が当業者に明らかとなる。異なる図面における同一の符号の使用は、類似又は同一のアイテムを示している。
図1〜6は、プログラムスレッドのメモリレイテンシ許容度に基づいてプロセッサのメモリ制御装置に電力を配分する技術を示す図である。プロセッサは、メモリ制御装置が1つ以上のメモリアクセス要求の応答にかかる時間を監視することによって、プログラムスレッドのメモリレイテンシを直接的又は間接的に監視する。例えばキャッシュミス率等の1つ以上の性能特性で示されるようにプログラムスレッドのメモリレイテンシ許容度を超える場合には、プロセッサは、追加の電力をメモリ制御装置へ配分し、これにより、メモリ制御装置によるメモリアクセス要求の処理速度を向上させることができる。プログラムスレッドのメモリレイテンシ許容度を超えない場合には、プロセッサは、メモリ制御装置に配分される電力量を低減させることができる。このようにして、プロセッサは、電力を節約しながらプログラムスレッドの実行性能を向上させる。
いくつかの実施形態において示すように、プロセッサは、メモリ制御装置に与えられるメモリアクセス要求を監視することによって、キャッシュミスを検出する。例えば、キャッシュに与えられたメモリアクセス要求が、キャッシュミスによってメモリ制御装置に転送されることがある。キャッシュのキャッシュミス率(CMR)が閾値を超える場合には、メモリ制御装置は、比較的多数の処理すべきメモリアクセス要求を有する可能性が高く、そのために実行中のプログラムスレッドのメモリアクセスの処理に遅延が生じて、実行中のプログラムスレッドのメモリレイテンシを増大させ、スレッドのメモリレイテンシ許容度を超える場合があると考えられる。それに応じて、プロセッサのアプリケーションパワーマネジメント(APM)モジュールは、メモリ制御装置に印加される電力電圧を増大させることができる。この増大した電力電圧によって、メモリ制御装置のトランジスタをより迅速に切り替えて、メモリ制御装置が待ち状態のメモリアクセス要求を処理し得る全体の速度を向上させることができる。したがって、処理されるメモリアクセス要求が比較的多数存在する場合には、メモリ制御装置に供給された電力の増大によって、メモリアクセスレイテンシが低減する。メモリ制御装置において処理すべきメモリアクセス要求が比較的少数である場合には、CMRが示すように、APMモジュールは、メモリ制御装置に印加される電源電圧を低減させ、それによって電力を節約することができる。
ここで、「メモリレイテンシ(memory latency)」は、メモリアクセス要求の実行が完了するまでにかかる時間を意味する。いくつかの実施形態において、特定のメモリアクセス要求のメモリレイテンシは、メモリ制御装置においてメモリアクセス要求を処理可能な速度を含むいくつかの要因に依存する。さらに、メモリ制御装置への電力の増大によって、メモリ制御装置がメモリアクセス要求をより迅速に処理することが可能になるので、メモリ制御装置への電力の増大は、メモリレイテンシを低減させる。
ここで、「メモリレイテンシ許容度(memory latency tolerance)」は、例えばプロセッサに接続された外部RAM等のメモリ階層の指定されたレベルへのプログラムスレッドのアクセス感度(sensitivity)を意味する。感度は、プログラムスレッドの少なくとも一部の実行にかかる時間、又は、かかると予想される時間として表すことができる。いくつかの実施形態において、プロセッサは、カウンタ又は他のタイミング機構を用いて、メモリ制御装置におけるメモリアクセス要求の処理にかかる時間を測定することによって、プログラムスレッドのメモリアクセス許容度を超えたか否かを測定することができる。いくつかの実施形態において、プロセッサは、例えばキャッシュミス率、メモリ制御装置が受信したメモリアクセス要求の数、又は、他の性能インジケータ等の性能インジケータを用いて、実行中のプログラムスレッドのメモリレイテンシ許容度を超えたか否かを間接的に測定することができる。
本明細書で述べるように、プロセッサは、メモリアクセスレイテンシに基づいて電力をメモリ制御装置に配分することができる。本明細書に記載の実施形態においては、説明のために、メモリ制御装置の1つ以上の基準電圧(VDDと称されることがある)の大きさを変更することによって電力を配分するプロセッサを採用する。いくつかの実施形態において、プロセッサは、メモリ制御装置の1つ以上のノードに流れる電流量を変更する等の他の方法によって電力を配分してもよいことを理解されたい。
図1は、いくつかの実施形態による、電力をメモリ制御装置に配分可能なプロセッサ100を示す図である。例示されたプロセッサ100は、例えばx86命令セットアーキテクチャ(ISA)、ARM ISA等に基づく中央処理装置(CPU)コアであってもよいプロセッサコア102を含む。プロセッサ100は、複数のかかるプロセッサコアを実装可能であり、例えば、プロセッサ100のためにグラフィックス操作を実行する1つ以上のグラフィックス処理装置(GPU)コア等の特別な操作を実行するよう設計又は構成されたプロセッサコアをさらに実装可能である。プロセッサ100は、例えば、ノート型コンピュータ、デスクトップコンピュータ、タブレットコンピュータ、サーバ、コンピューティング可能な携帯電話、携帯情報端末(PDA)、セットトップボックス等の様々な電子装置の何れかに実装することができる。
プロセッサコア102は、電子装置のためにタスクを実行する命令のセット(プログラムスレッドと呼ばれる)を実行する。プログラムスレッドを実行する過程において、プロセッサコア102は、プロセッサコア102の内部レジスタに記憶されていないデータを要求することを表す要求(メモリアクセス要求と呼ばれる)を生成することができる。メモリアクセス要求は、以降の利用に備えて、対応するデータの記憶要求を表すストア操作と、プロセッサコア102による利用に備えて、記憶されたデータの検索要求を表すロード操作と、を含むことができる。
図示された実施例において、プロセッサ100は、対応するデータを記憶するキャッシュラインと呼ばれるエントリのセットを有するキャッシュ103を含む。各ラインは、記憶するデータを識別するメモリアドレスに関連付けられている。キャッシュ103は、メモリアクセス要求に応じて、当該メモリアクセス要求のメモリアドレスによって識別されたデータを記憶するラインを含むか否かを識別する。ラインを含む場合には、キャッシュ103は、データの提供(ロード操作の場合)又はメモリアクセス要求に関連するデータの記憶(ストア操作の場合)の何れかによってキャッシュヒットを示して、メモリアクセス要求を満たす。キャッシュ103は、メモリアクセス要求のメモリアドレスによって識別されたデータを記憶するラインを含まない場合に、キャッシュミスを示して、メモリアクセス要求をメモリ制御装置110に提供する。後述するように、メモリ制御装置110は、メモリアドレスに関連するデータをシステムメモリ(図示省略)から取得し、取得したデータをキャッシュ103に提供することによって、メモリアクセス要求を満たす。キャッシュ103は、これに応じて、キャッシュ置換ポリシーに基づき選択された1つのラインにデータを記憶する。また、上述したように、キャッシュ103は、取得したデータを用いてメモリアクセス要求を満たす。
キャッシュ103は、単一のキャッシュとして図示されているが、いくつかの実施形態では、異なるキャッシュの階層を表している。例えば、キャッシュ103は、プロセッサコア102専用のレベル1(L1)キャッシュと、プロセッサコア102と他のプロセッサコア(図示省略)との間で共有されるレベル2(L2)キャッシュと、1つ以上の追加レベルのキャッシュと、を含むことができる。キャッシュ103は、メモリアクセス要求に応じて、当該メモリアクセス要求のメモリアドレスに対応するラインを有するキャッシュの位置を特定するまで各レベルにて個別にキャッシュミス又はヒットを示すことで、階層内の各キャッシュのチェックを連続的に行うことができる。何れのキャッシュもメモリアクセス要求のメモリアドレスに対応するラインを含まない場合には、キャッシュ103は、上述したように、メモリアクセス要求を満たすために当該メモリアクセス要求をメモリ制御装置110に提供する。
メモリ制御装置110は、例えば、ランダムアクセスメモリ(RAM)モジュール、フラッシュメモリ、ハードディスクドライブ、又は、これらの組み合わせ等の1つ以上のメモリ装置を含むシステムメモリ(図示省略)へのメモリアクセス要求の通信を管理する。さらに、メモリ制御装置110は、複数のメモリアクセス要求をバッファリングし、特定のアービトレーションポリシーに従って各要求を処理することができるように構成されている。メモリアクセス要求の処理には、メモリアクセス要求のバッファリング、バッファに記憶されたメモリアクセス要求と他の待ち状態のメモリアクセス要求との間の調停、メモリアクセス要求をシステムメモリの1つ以上のメモリ装置へ通信する制御シグナリングの生成、メモリアクセス要求に応じてシステムメモリから受信したデータのバッファリング、及び、受信したデータのキャッシュ103への通信を含むことができる。いくつかの実施形態において、メモリ制御装置110は、キャッシュ103と他のプロセッサキャッシュ(図示省略)との間のメモリコヒーレンシの管理、プロセッサコアとシステムモジュールとの間の通信管理等を含む追加的な機能を実行するノースブリッジである。
メモリ制御装置110は、図1では個別に示されていない、トランジスタ及び他の電子部品から構成されたモジュールのセットを含む。これらの電子部品には、「VDD」と呼ばれる基準電圧による電力が供給される。少なくとも一部の電子部品は、VDDの大きさが増大するほど、入力刺激に対して迅速に応答することができるように動作する。例えば、メモリ制御装置110は、入力刺激(例えば、各ゲート電極の電圧)に基づいて導通状態と非導通状態とを切り替えるように構成された1つ以上のトランジスタを含むことができる。VDDの大きさが増大するほど、1つ以上のトランジスタが導通状態と非導通状態とを切り替える速度が向上する。したがって、VDDの大きさが増大することの正味の効果は、メモリ制御装置110がメモリアクセスレイテンシを低減させながらメモリアクセス要求をより迅速に処理可能であるということにある。
プロセッサ100は、VDDの大きさを設定するように構成された電圧レギュレータ121を含む。本明細書で説明するように、プロセッサ100は、プログラムスレッドのメモリアクセス許容度を超えていることに応じて、VDDを調節するために電圧レギュレータ121を制御し、これにより、プロセッサ100全体の処理効率を向上させることができる。
プロセッサ100は、プログラムスレッドのメモリレイテンシの監視を容易にするために、プロセッサコア102、キャッシュ103及びプロセッサ100の他のモジュールでの操作に基づいて性能情報を監視するパフォーマンスモニタ115を含む。パフォーマンスモニタ115は、指定された時間における指定されたイベントの発生を識別して記録する、レジスタ、カウンタ及び他のモジュールのセットを含む。例えば、いくつかの実施形態において、パフォーマンスモニタは、キャッシュ103におけるキャッシュミス率(CMR)を測定して記録する。キャッシュ103が複数のキャッシュを有するキャッシュ階層である場合には、パフォーマンスモニタ115は、複数のキャッシュのうち1つ以上のキャッシュの各々におけるCMRを測定して記録することができる。例えば、いくつかの実施形態において、パフォーマンスモニタ115は、プロセッサコア102と1つ以上の他のプロセッサコアとの間で共有されるL2キャッシュにおけるCMRを記録する。また、パフォーマンスモニタ115は、例えば、プロセッサコア102におけるサイクルあたりの命令(IPC)率、メモリ制御装置110がメモリアクセス要求を受信する割合、メモリ制御装置110がメモリアクセス要求に応じてデータを送信する割合等の他の性能特性を測定して記録することができる。
APMモジュール120は、メモリ制御装置110を含むプロセッサ100の1つ以上のモジュールに供給された電力を、性能情報を用いて調節する電力制御モジュールである。特に、APMモジュール120は、パフォーマンスモニタ115において記録された例えばCMR等の1つ以上の性能測定値を用いて、メモリ制御装置110におけるメモリアクセスレイテンシを識別する。性能測定値が対応する閾値を超え、メモリアクセスレイテンシが、実行中のプログラムスレッドのメモリアクセスレイテンシ許容度を超えたことを示す場合には、APMモジュール120は、電圧レギュレータ121に対してVDDの大きさを増大させて、メモリ制御装置110に供給される電力を増大させる。これにより、メモリ制御装置110によるメモリアクセス要求の処理速度が向上して、メモリアクセスレイテンシを、プログラムスレッドのメモリアクセスレイテンシ許容度未満に低減させる。VDDの大きさが増大した後に所定時間が経過した後に、メモリ制御装置110において閾値数のメモリアクセス要求が処理された後に、又は、1つ以上の他の基準が満たされたことに基づいて、メモリアクセスレイテンシがプログラムスレッド許容度を下回る場合には、APMモジュール120は、VDDの大きさを低減させる。
図示された実施例では、例示のため、プロセッサ100は、メモリ制御装置110におけるメモリアクセスを監視するプリフェッチャ114を含む。プリフェッチャ114は、メモリアクセスにおけるパターンを識別し、これらのパターンに基づいて、プリフェッチ要求をメモリ制御装置110に発行して、間もなく必要になると予想されるデータをキャッシュ103にロードする。したがって、プロセッサコア102によって発行されたメモリアクセス要求が、プリフェッチャ114によって識別された(1つ以上の)パターンに従う限り、キャッシュ103においてメモリアクセス要求が満たされる可能性が高くなり、このため、CMRを低く維持することができる。このように、メモリ制御装置110に提供されたメモリアクセス要求の数は、少ないままである可能性が高く、これにより、メモリアクセスレイテンシについても同様に比較的低く維持することができる。プロセッサコア102がプリフェッチャ114によって識別された(1つ以上の)パターンに従わないいくつかのメモリアクセス要求を発行する場合には、キャッシュ103にてメモリアクセス要求が満たされない可能性が高くなり、CMRが高まる。キャッシュ103にて満たされなかったメモリアクセス要求はメモリ制御装置110に提供され、これにより、より多数のメモリアクセス要求をメモリ制御装置110が処理するのにかかる時間が増大して、メモリアクセスレイテンシが、プロセッサコア102にて実行するプログラムスレッドのメモリアクセス許容度を超える。したがって、CMRが所定の閾値を超えて高まる場合には、メモリアクセスレイテンシは、実行中のプログラムスレッドのメモリレイテンシ許容度を超える可能性が高い。メモリ制御装置110が、より多数のメモリアクセス要求をより迅速に処理することができるように、APMモジュール120は、CMRが所定の閾値を超えたことに応じて、スレッドを実行するためのメモリレイテンシがスレッドを実行するためのメモリアクセスレイテンシ許容度を下回るように、VDDを増大させる。
いくつかの実施形態において、APMモジュール120は、プロセッサ100のモジュールのための電力管理ポリシーを実行し、これにより、電力管理ポリシーは、プロセッサ100のための熱的制限及び他の物理的仕様に対するモジュールごとの割当電力の公称量を示す。また、電力管理ポリシーは、プロセッサ100の異なるモジュールのための優先順位を設定することができ、かかるAPMモジュール120は、1)各モジュールの性能特性、及び、2)各モジュールの優先順位に基づいて、各モジュールに供給される電力を割り当てる。したがって、例えば2つの異なるモジュールの性能特性が追加電力の要求を示す場合には、APMモジュール120は、需要電力がプロセッサ100に対して電力バジェット全体を超えさせるか否かを識別し、超える場合には、2つのモジュールのうち何れのモジュールに追加電力を割り当てるかを識別することができる。
実施例を用いて例示するため、いくつかの実施形態において、プロセッサ100は、電力管理ポリシーに関連付けられており、これにより、プロセッサコア102の所要電力は、メモリ制御装置110の所要電力より優先される。いくつかのシナリオでは、パフォーマンスモニタ115に記憶された性能特性は、プロセッサコア102及びメモリ制御装置110の両方が供給電力の増大によって利益を得られることを示すことができる。例えば、プロセッサコア102が供給電力の増大によって利益を得られることを示すプロセッサコア102では、CMRは、IPCと同時に、メモリ制御装置110がVDDの増大から利益を得られることを示すことができる。APMモジュール120は、先ず、プロセッサ100が、電力バジェット全体を超えることなく、プロセッサコア102に供給された電力及びメモリ制御装置110に供給された電力を両方とも増大させることができるか否かを識別し、増大させることが可能である場合には、各モジュールに供給された電力を増大させる。APMモジュール120は、プロセッサコア102及びメモリ制御装置110の両方に供給された電力の増大によって電力バジェット全体を超えると識別した場合に、プロセッサコア102の電力管理ポリシーの優先順位によって求められたように、プロセッサコア102に供給される電力を増大させる。
図2は、いくつかの実施形態による、実行中のプログラムスレッドのメモリレイテンシ許容度に基づく図1のメモリ制御装置110への電力の配分を例示する図200である。図200のX軸は、時間に対応しており、Y軸は、電圧レギュレータ121によってメモリ制御装置110に供給されたVDDの大きさに対応している。図示された実施例では、時間201において、APMモジュール120が、パフォーマンスモニタ115に記憶された情報に基づいて、キャッシュ103のCMRが閾値を超えること(実行中のプログラムスレッドのメモリレイテンシ許容度が対応する閾値を超える可能性が高いことを示す)を識別する。したがって、APMモジュール120は、電圧レギュレータ121に信号を送り、VDDを、「V1」と表された公称大きさから「V2」と表される大きさへ増大させる。時間202において、VDDの大きさはV2に増大している。これにより、メモリ制御装置110は、待ち状態のメモリアクセス要求をより迅速に処理することが可能になる。
時間203において、APMモジュール120は、キャッシュ103のCMRが閾値を下回ったことを識別し、実行中のプログラムスレッドのメモリレイテンシ許容度をもはや上回っていないことを示す。これに応じて、APMモジュール120は、電圧レギュレータ121に信号を送って、VDDの大きさをV2からV1へと低減させる。時間204までには、VDDの大きさがV1に低減しており、これにより、メモリ制御装置110の消費電力を低減させる。このように、図2に示された実施例において、プロセッサ100は、メモリ制御装置110に供給された電力を増大させることによって、メモリレイテンシに敏感な実行中のプログラムスレッドの性能を向上させるが、プログラムスレッドのメモリレイテンシ許容度を超えた可能性が高い場合には、供給電力を増大させることのみによって、メモリ制御装置の消費電力を制限する。
図3は、いくつかの実施形態による、キャッシュミス率及び命令処理速度に基づくメモリ制御装置110への電力の配分を示す図300である。図300のX軸は、時間に対応しており、Y軸は、電圧レギュレータ121によってメモリ制御装置110に供給されたVDDの大きさに対応している。図示された実施例では、時間301において、APMモジュール120が、パフォーマンスモニタ115に記憶された情報に基づいて、キャッシュ103のCMRが閾値を超えることを識別する。したがって、APMモジュール120は、電圧レギュレータ121に信号を送って、VDDを「V1」と表された公称大きさから「V2」と表された大きさへ増大させる。時間302において、VDDの大きさはV2に増大している。これにより、メモリ制御装置110は、待ち状態のメモリアクセス要求をより迅速に処理することが可能になる。
時間303において、APMモジュール120は、プロセッサコア102におけるIPC率が閾値を下回ったことを識別する。さらに、APMモジュール120は、VDDの大きさをV2に維持しながら追加電力を供給することによって、プロセッサ100が電力バジェット全体を超えることを識別する。また、APMモジュール120は、電力管理ポリシーに基づいて、プロセッサコア102の電力需要がメモリ制御装置110の電力需要より優先さていれることを識別する。これに応じて、APMモジュール120は、電圧レギュレータ121に信号を送って、VDDの大きさをV2からV1に低減させる。時間304までには、VDDの大きさがV1に低減しており、これにより、メモリ制御装置110の消費電力を低減させる。したがって、APMモジュール120は、(例えば、プロセッサコア102に供給される電圧の大きさを増大させることによって)プロセッサコア102に供給される電力を増大させることができる。これにより、プロセッサコア102が命令処理をより迅速に実行して、プロセッサ100に電力バジェット全体を超えさせることなく、そのIPCを低減させることが可能になる。
いくつかの実施形態において、APMモジュール120は、対応する閾値に対するCMRの関係に基づいて、VDDの大きさを、いくつかの潜在的な大きさの何れかに設定することができる。CMRが1つの閾値を超えた場合には、実行スレッドのメモリレイテンシ許容度が、対応する量だけ超えたことを示している。図4は、いくつかの実施形態による、複数の閾値に対するキャッシュミス率に基づくメモリ制御装置110への電力の配分を示す図400である。図400のX軸は、時間に対応しており、Y軸は、電圧レギュレータ121によってメモリ制御装置110に供給されたVDDの大きさに対応している。図示された実施例では、時間401において、APMモジュール120は、パフォーマンスモニタ115に記憶された情報に基づいて、キャッシュ103のCMRが「閾値1」と表された閾値を超えたこと(実行中のプログラムスレッドのメモリレイテンシ許容度が第1の量だけ超えたことを示す)を識別する。したがって、APMモジュール120は、電圧レギュレータ121に信号を送って、「V1」と表された公称大きさから「V2」と表された増大した大きさへVDDを増大させる。時間402において、VDDの大きさがV2に増大しており、これにより、メモリ制御装置110は、待ち状態のメモリアクセス要求をより迅速に処理することが可能になる。
時間403において、APMモジュール120は、キャッシュ103のCMRが「閾値2」と表される別の閾値を超えたことを識別する。閾値2は、閾値1より大きく、実行中のプログラムスレッドのメモリレイテンシ許容度が、閾値1に対応する第1の量より大きい第2の量だけ超えたことを示している。したがって、APMモジュール120は、電圧レギュレータ121に信号を送って、V2から「V3」と表された大きさにVDDを増大させる。時間404において、VDDの大きさはV3に増大しており、これにより、メモリ制御装置110は、待ち状態のメモリアクセス要求をより迅速に処理することが可能になる。時間405において、APMモジュール120は、キャッシュ103のCMRが閾値2を下回ったことを識別する。これに応じて、APMモジュール120は、電圧レギュレータ121に信号を送って、VDDの大きさをV3からV2に低減させる。
いくつかの実施形態において、APMモジュール120は、例えばメモリ帯域幅等の他のメモリアクセス特性に基づいて、VDD電圧を調節することができる。例えば、パフォーマンスモニタ115は、キャッシュ103からのメモリアクセス要求によって必要とされたメモリ帯域幅の量を示す情報を監視して、記憶することができる。時間405において、メモリアクセス要求が用いるメモリ帯域幅の量が閾値を超えたことを示す情報に応じて、APMモジュール120は、電圧レギュレータ121に信号を送って、VDDをV2からV3の大きさに増大させる。
さらに、いくつかの実施形態において、APMモジュールは、キャッシュ103のキャッシュミス率以外の基準、又は、当該キャッシュミス率に加わる基準に基づいて、実行中のプログラムスレッドのメモリレイテンシ許容度を超えたことを識別することができる。例えば、いくつかの実施形態において、APMモジュール120は、メモリ制御装置110のバッファに記憶されたメモリアクセス要求の数に基づいて、メモリ制御装置110のインタフェースで受信した幾つかのメモリアクセス要求に基づいて、又は、メモリ制御装置110がメモリアクセス要求に対して発行した応答の割合に基づく等して、実行中のプログラムスレッドのメモリレイテンシ許容度を識別することができる。
図5は、いくつかの実施形態による、プロセッサのメモリ制御装置への電力の配分方法500のフロー図である。方法は、説明の目的で、図1のプロセッサ100における例示的な実装に関して記載されている。ブロック502において、パフォーマンスモニタ115は、キャッシュ103のキャッシュミス率を監視して記録する。ブロック504において、APMモジュールは、キャッシュ103のCMRが閾値を超えるか否かを識別する。超えない場合には、方法フローはブロック506に移行し、APMモジュール120は、電圧レギュレータ121に対して、VDDが変化することを示さない。したがって、電圧レギュレータ121は、VDDを公称大きさに維持する。
ブロック504において、キャッシュ103のCMRが閾値を超えたことをAPMモジュール120が識別した場合には、方法フローはブロック508に移行し、APMモジュール120は、プロセッサ100の電力管理ポリシーの下、メモリ制御装置110に配分される利用可能な電力が存在するか否かを識別する。(例えば、利用可能な全ての電力が電力管理ポリシーの下でメモリ制御装置110よりも高い優先順位を有するプロセッサ100モジュールに配分されているため)存在しない場合には、方法フローはブロック506に移行し、VDDは、電圧レギュレータ121によってその公称大きさに維持される。ブロック508において、配分するために利用可能な電力が存在する場合には、方法フローはブロック510に移行し、APMモジュール120は、電圧レギュレータ121に信号を送って、VDDの大きさを増大させる。
方法フローはブロック512に進み、パフォーマンスモニタ115は、キャッシュ103のCMRを継続して監視する。ブロック514において、APMモジュール120は、1)キャッシュ103のCMRが閾値を下回ったか否か、又は、2)ブロック510においてメモリ制御装置110に配分された追加電力を、電力管理ポリシーの下でより高い優先順位を有するプロセッサ100のモジュールが必要としているか否かを識別する。これらの何れの条件が真でない場合には、方法フローはブロック512に戻り、VDDは、ブロック510において設定された大きさで維持される。これらの条件の何れかが真である場合には、方法フローはブロック516に移り、APMモジュール120は、電圧レギュレータ121に信号を送って、VDDをその公称大きさへと低減させる。方法フローは、ブロック502に戻る。
いくつかの実施形態において、上述した装置及び技術は、1つ以上の集積回路(IC)装置(集積回路パッケージ又はマイクロチップとも呼ばれる)を含むシステムに実装される。電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールが、これらのIC装置の設計及び製造に利用されてもよい。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表現される。1つ以上のソフトウェアプログラムは、コンピュータシステムによって実行可能なコードを備えており、当該コンピュータシステムが、1つ以上のIC装置の回路を製造する製造システムを設計又は適合するプロセスの少なくとも一部を実行するように当該回路を表すコードに作用するように、当該コンピュータシステムを処理する。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、計算システムにアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、IC装置の設計又は製造の1つ以上のフェーズを表すコードは、同一の又は異なるコンピュータ可読記憶媒体に記憶されてもよいし、これらの媒体からアクセスされてもよい。
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するのに用いられる間に当該コンピュータシステムによるアクセスが可能な任意の記憶媒体又は記憶媒体の組み合わせを含んでもよい。かかる記憶媒体は、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ若しくは磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電子機械システム(MEMS)を用いた記憶媒体を含むことができるが、これらに限定されない。コンピュータ可読記憶媒体は、計算システムに搭載されるもの(例えば、システムRAM又はROM)であってもよいし、計算システムに固着されるもの(例えば、磁気ハードドライブ)であってもよいし、計算システムに取り外し可能に取り付けられるもの(例えば、光ディスク又はユニバーサルシリアルバス(USB)を用いたフラッシュメモリ)であってもよいし、有線又は無線ネットワークを介してコンピュータシステムに接続されるもの(例えば、ネットワークアクセス可能記憶装置(NAS))であってもよい。
図6は、いくつかの実施形態による、1つ以上の実施態様を実装するIC装置の例示的な設計及び製造方法600を示すフロー図である。上述したように、以下の各プロセスのために生成されたコードは、対応する設計ツール又は製造ツールによるアクセス又は利用のために、非一時的なコンピュータ可読記憶媒体に記憶され又は具現化される。
ブロック602において、IC装置の機能仕様が生成される。機能仕様(よくマイクロアーキテクチャ仕様(MAS)と呼ばれる)は、C、C++、システムC、Simulink若しくはMATLABを含む様々なプログラミング言語又はモデリング言語の何れかによって表されてもよい。
ブロック604において、機能仕様を用いて、IC装置のハードウェアを表すハードウェア記述コードが生成される。いくつかの実施形態において、ハードウェア記述コードは、IC装置の回路の形式的記述及び設計のための様々なコンピュータ言語、仕様言語又はモデリング言語の何れかを含む少なくとも1つのハードウェア記述言語(HDL)を用いて表される。生成されたHDLコードは、通常、IC装置の回路の操作、回路の設計及び構成を表し、シミュレーションを通じてIC装置の正しい操作を検証するテストを行う。HDLの実施例は、アナログHDL(AHDL)、Verilog HDL、SystemVerilog HDL及びVHDLを含む。同期式デジタル回路を実装するIC装置では、ハードウェア記述コードは、同期デジタル回路の操作を抽象的に表現するレジスタ転送レベル(RTL)コードを含んでもよい。他のタイプの回路では、ハードウェア記述コードは、回路の操作を抽象的に表現する動作レベルコードを含んでもよい。ハードウェア記述コードによって表されたHDLモデルは、設計検証をパスするために、通常、1以上の回数のシミュレーション及びデバッギングを受ける。
ハードウェア記述コードで表された設計の検証後に、ブロック606において、合成ツールを用いてハードウェア記述コードを合成して、IC装置の回路の初期物理的実装を表現又は定義するコードを生成する。いくつかの実施形態において、合成ツールは、回路装置インスタンス(例えば、ゲート、トランジスタ、レジスタ、コンデンサ、インダクタ、ダイオード等)と、回路装置インスタンス間のネット又は接続と、を含む1つ以上のネットリストを生成する。代替的に、合成ツールを利用することなく、ネットリストの全て又は一部をを手動で生成してもよい。ハードウェア記述コードと同様に、1つ以上のネットリストの最終セットが生成される前に、ネットリストは、1つ以上のテスト及び検証プロセスを受けてもよい。
代替的に、IC装置の回路図を下書きするために、回路図エディタツールを利用してもよく、その後に、結果物としての回路図を保存し、(コンピュータ可読媒体に記憶された)1つ以上のネットリストを生成するために、回路図入力ツールが用いられてもよい。保存された回路図は、その後、テスト及び検証のための1以上の回数のシミュレーションを受けてもよい。
ブロック608において、1つ以上のEDAツールは、ブロック606において生成されたネットリストを用いて、IC装置の回路の物理的なレイアウトを表すコードを生成する。このプロセスは、例えば、IC装置の回路の各要素の位置を決定又は固定するための、ネットリストを利用する配置ツールを含むことができる。さらに、ルーティングツールは、配置プロセスを構築し、(1つ以上の)ネットリストに従って、回路要素の接続に必要なワイヤを追加及びルーティングする。結果物としてのコードは、IC装置の三次元モデルを表す。コードは、例えばグラフィックデータベースシステムII(GDSII)フォーマット等のデータベースファイルフォーマットで表されてもよい。このフォーマットのデータは、通常、形状、テキストラベル及び回路レイアウトに関する他の情報を階層形式で表す。
ブロック610において、物理的なレイアウトコード(例えば、GDSIIコード)が製造設備に(例えば、マスクワークを通じて)提供される。製造設備では、物理的なレイアウトコードを用いて製造設備の製造ツールを構成又は適合して、IC装置を製造する。すなわち、物理的なレイアウトコードは、1つ以上のコンピュータシステムにプログラミングされてもよく、コンピュータシステムは、製造設備のツールの操作若しくは当該製造設備で実行される製造動作の全て又は一部を制御してもよい。
いくつかの実施形態において、上述した技術の特定の実施態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され又はは有形的に具現化された1つ以上の実行可能命令のセットを含む。ソフトウェアは、上述した技術の1つ以上の実施態様を実行するために、1つ以上のプロセッサによる実行時に当該1つ以上のプロセッサの処理を行う命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気又は光ディスク記憶装置、フラッシュメモリ等のソリッドステート記憶装置や、キャッシュ、ランダムアクセスメモリ(RAM)又は(1つ以上の)他の不揮発性メモリ装置を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈され若しくは実行可能な他の命令フォーマットであってもよい。
上述した全てのアクティビティ又は要素の全てが必要とされるわけではなく、特定のアクティビティ又は装置の一部が必要とされなくてもよく、1つ以上の更なるアクティビティが実行されてもよいし、他の要素が含まれてもよいことに留意されたい。さらに、記載したアクティビティの順序は、必ずしも実行時の順序というわけではない。また、概念について具体的な実施形態を参照して記載した。しかし、以下の特許請求の範囲に示すとおり本開示の範囲を逸脱することなく様々な修正及び変更を加えることが可能であることが当業者には理解されるであろう。したがって、本明細書及び図面は、限定的というよりも説明的な意味で考慮されるべきであり、かかる修正の全ては、本開示の範囲内に含まれることが意図される。
利益、他の利点、及び、課題の解決手段について具体的な実施形態を参照して記載した。しかし、利益、利点、課題の解決手段、及び、利益、利点、課題の解決手段を生じさせ又はより顕著になり得る任意の(1つ以上の)特徴は、特許請求の範囲の一部又は全ての重大、必要若しくは必須の特徴とみなされるべきではない。さらに、上述した特定の実施形態は、説明のみを目的としており、本開示の発明は、本明細書の教示の利益を受ける当業者には明らかな方法であって、異なるが同等の方法で変更及び実施されてもよい。本明細書において示された構造又は設計の詳細に対して、以下の特許請求の範囲以外の限定を加えることを意図しない。したがって、上述したような特定の実施形態を変更又は修正することができ、また、かかる変形形態の全ては、開示された発明の範囲内であると考えられることが明白である。したがって、本明細書に求められる保護は、以下の特許請求の範囲に示すとおりである。
Claims (20)
- 実行中のプログラムスレッドのメモリレイテンシ許容度を超えたことを識別したことに応じて(504)、プロセッサ(100)のメモリ制御装置(110)への電力を増大すること(510)を含む、
方法。 - 前記プロセッサのキャッシュでのキャッシュミス率に基づいて、前記実行中のプログラムスレッドのメモリレイテンシ許容度を超えたことを識別すること(504)、をさらに含む、
請求項1に記載の方法。 - 前記実行中のプログラムスレッドのメモリレイテンシ許容度を超えていないことを識別したことに応じて(514)、前記プロセッサのメモリ制御装置への電力を低減すること(516)、をさらに含む、
請求項1に記載の方法。 - 前記メモリ制御装置への電力を増大することは、前記実行中のプログラムスレッドのメモリレイテンシ許容度を第1の量だけ超えたことを識別したことに応じて(401)、前記電力の第1のレベルに増大することと、
前記実行中のプログラムスレッドのメモリレイテンシ許容度を第2の量だけ超えたことを識別したことに応じて、前記メモリ制御装置への電力を第2のレベルに増大することと(403)、をさらに含む、
請求項1に記載の方法。 - 前記メモリ制御装置への電力を増大することは、前記実行中のプログラムスレッドのメモリレイテンシ許容度を第1の量だけ超えたことを識別したことに応じて(301)、前記電力の第1のレベルに増大することを含み、
前記プロセッサのプロセッサコアにおけるサイクルあたりの命令数の比率が第2の閾値未満であることに応じて、前記メモリ制御装置への電力を前記第1のレベルから第2のレベルに低減すること(303)をさらに含む、
請求項1に記載の方法。 - 前記プロセッサにおけるメモリアクセス要求が、閾値を上回る量のメモリ帯域幅を必要とすることを識別したことに応じて、前記メモリ制御装置への電力を増大すること(514)をさらに含む、
請求項1に記載の方法。 - 前記メモリ制御装置において受信したメモリアクセス要求の数に基づいて、前記実行中のプログラムスレッドのメモリレイテンシ許容度を超えたことを識別することをさらに含む、
請求項1に記載の方法。 - 前記メモリ制御装置はノースブリッジを含む、
請求項1に記載の方法。 - プロセッサ(100)におけるキャッシュミス率が第1の閾値を超えたことに応じて(504)、前記プロセッサのメモリ制御装置(110)への電力を増大すること(510)を含む、
方法。 - 前記キャッシュミス率が前記第1の閾値を下回ったことに応じて(514)、前記メモリ制御装置への電力を低減すること(516)をさらに含む、
請求項9に記載の方法。 - 前記メモリ制御装置への電力を増大することは、前記メモリ制御装置への電力を第1のレベルに増大すること(401)を含み、
前記キャッシュミス率が第2の閾値を超えたことに応じて、前記メモリ制御装置への電力を第2のレベルに増大すること(403)をさらに含む、
請求項9に記載の方法。 - 前記プロセッサのプロセッサコアにおけるサイクルあたりの命令数の比率が第2の閾値未満であることに応じて、前記メモリ制御装置への電力を低減すること(303)をさらに含む、
請求項9に記載の方法。 - 前記メモリ制御装置への電力を増大した後に前記メモリ制御装置にて閾値数のメモリアクセス要求を実行したことに応じて、前記メモリ制御装置への電力を低減することをさらに含む、
請求項9に記載の方法。 - メモリアクセス要求を処理するメモリ制御装置(110)と、
プログラムスレッドのメモリレイテンシ許容度を超えたか否かを示す性能情報を監視するパフォーマンスモニタ(115)と、
前記パフォーマンスモニタが、前記プログラムスレッドのメモリレイテンシ許容度を超えたことを示したことに応じて、前記メモリ制御装置への電力を増大させる電力制御モジュール(120)と、を備える、
プロセッサ(100)。 - 前記パフォーマンスモニタは、前記プロセッサのキャッシュでのキャッシュミス率に基づいて、前記プログラムスレッドのメモリレイテンシ許容度を超えたことを示す(504)、
請求項14に記載のプロセッサ。 - 前記電力制御モジュールは、
前記パフォーマンスモニタが、前記プログラムスレッドのメモリレイテンシ許容度を超えていないことを示したことに応じて(514)、前記メモリ制御装置への電力を低減させる、
請求項14に記載のプロセッサ。 - 前記電力制御モジュールは、
前記パフォーマンスモニタが、前記プログラムスレッドのメモリレイテンシ許容度を第1の量だけ超えたことを示したことに応じて(401)、前記メモリ制御装置への電力を第1のレベルに増大させ、
前記パフォーマンスモニタが、前記プログラムスレッドのメモリレイテンシ許容度を第2の量だけ超えたことを示したことに応じて(403)、前記メモリ制御装置への電力を第2のレベルに増大させる、
請求項14に記載のプロセッサ。 - 前記電力制御モジュールは、
前記プログラムスレッドのメモリレイテンシ許容度を超えたことに応じて(301)、前記メモリ制御装置への電力を第1のレベルに増大させ、
前記パフォーマンスモニタが、前記プロセッサのプロセッサコアにおけるサイクルあたりの命令数の比率が閾値未満であることを示したことに応じて、前記メモリ制御装置への電力を前記第1のレベルから第2のレベルに低減させる(303)、
請求項14に記載のプロセッサ。 - 前記電力制御モジュールは、
前記パフォーマンスモニタが、前記メモリアクセス要求が必要とする帯域幅が閾値を超えたことを示したことに応じて、前記メモリ制御装置への電力を増大させる、
請求項14に記載のプロセッサ。 - 前記パフォーマンスモニタは、前記メモリ制御装置において受信したメモリアクセス要求の数に基づいて、前記プログラムスレッドのメモリレイテンシ許容度を超えたことを示す、
請求項14に記載のプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/302,964 | 2014-06-12 | ||
US14/302,964 US20150363116A1 (en) | 2014-06-12 | 2014-06-12 | Memory controller power management based on latency |
PCT/US2015/035344 WO2015191860A1 (en) | 2014-06-12 | 2015-06-11 | Memory controller power management based on latency |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017526039A true JP2017526039A (ja) | 2017-09-07 |
Family
ID=54834317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016572557A Pending JP2017526039A (ja) | 2014-06-12 | 2015-06-11 | レイテンシに基づくメモリ制御装置の電力管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150363116A1 (ja) |
EP (1) | EP3155499A4 (ja) |
JP (1) | JP2017526039A (ja) |
KR (1) | KR20170016365A (ja) |
CN (1) | CN106415438A (ja) |
WO (1) | WO2015191860A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150363116A1 (en) * | 2014-06-12 | 2015-12-17 | Advanced Micro Devices, Inc. | Memory controller power management based on latency |
CN106095566B (zh) * | 2016-05-31 | 2020-03-03 | Oppo广东移动通信有限公司 | 一种响应控制方法及移动终端 |
KR20180074138A (ko) * | 2016-12-23 | 2018-07-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10466766B2 (en) * | 2017-11-09 | 2019-11-05 | Qualcomm Incorporated | Grouping central processing unit memories based on dynamic clock and voltage scaling timing to improve dynamic/leakage power using array power multiplexers |
US11294810B2 (en) * | 2017-12-12 | 2022-04-05 | Advanced Micro Devices, Inc. | Memory request throttling to constrain memory bandwidth utilization |
US11100016B2 (en) * | 2019-07-08 | 2021-08-24 | SK Hynix Inc. | Data storage device, data processing system, and acceleration device therefor |
US10854245B1 (en) | 2019-07-17 | 2020-12-01 | Intel Corporation | Techniques to adapt DC bias of voltage regulators for memory devices as a function of bandwidth demand |
KR20210012439A (ko) | 2019-07-25 | 2021-02-03 | 삼성전자주식회사 | 마스터 지능 소자 및 이의 제어 방법 |
KR20210054188A (ko) * | 2019-11-05 | 2021-05-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 컨트롤러 |
US11086384B2 (en) * | 2019-11-19 | 2021-08-10 | Intel Corporation | System, apparatus and method for latency monitoring and response |
CN115190571A (zh) * | 2022-08-10 | 2022-10-14 | Oppo广东移动通信有限公司 | 信令处理方法、装置、终端设备及存储介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6460125B2 (en) * | 1998-08-07 | 2002-10-01 | Ati Technologies, Inc. | Dynamic memory clock control system and method |
US20020144173A1 (en) * | 2001-03-30 | 2002-10-03 | Micron Technology, Inc. | Serial presence detect driven memory clock control |
US7650481B2 (en) * | 2004-11-24 | 2010-01-19 | Qualcomm Incorporated | Dynamic control of memory access speed |
US7814485B2 (en) * | 2004-12-07 | 2010-10-12 | Intel Corporation | System and method for adaptive power management based on processor utilization and cache misses |
US7610497B2 (en) * | 2005-02-01 | 2009-10-27 | Via Technologies, Inc. | Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory |
US20090019238A1 (en) * | 2007-07-10 | 2009-01-15 | Brian David Allison | Memory Controller Read Queue Dynamic Optimization of Command Selection |
US8458404B1 (en) * | 2008-08-14 | 2013-06-04 | Marvell International Ltd. | Programmable cache access protocol to optimize power consumption and performance |
US8386808B2 (en) * | 2008-12-22 | 2013-02-26 | Intel Corporation | Adaptive power budget allocation between multiple components in a computing system |
US8102724B2 (en) * | 2009-01-29 | 2012-01-24 | International Business Machines Corporation | Setting controller VREF in a memory controller and memory device interface in a communication bus |
US8230239B2 (en) * | 2009-04-02 | 2012-07-24 | Qualcomm Incorporated | Multiple power mode system and method for memory |
US8230176B2 (en) * | 2009-06-26 | 2012-07-24 | International Business Machines Corporation | Reconfigurable cache |
US8443209B2 (en) * | 2009-07-24 | 2013-05-14 | Advanced Micro Devices, Inc. | Throttling computational units according to performance sensitivity |
US8909957B2 (en) * | 2010-11-04 | 2014-12-09 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Dynamic voltage adjustment to computer system memory |
US8575993B2 (en) * | 2011-08-17 | 2013-11-05 | Broadcom Corporation | Integrated circuit with pre-heating for reduced subthreshold leakage |
US8671293B2 (en) * | 2011-09-21 | 2014-03-11 | Empire Technology Development Llc | Multi-core system energy consumption optimization |
US9524012B2 (en) * | 2012-10-05 | 2016-12-20 | Dell Products L.P. | Power system utilizing processor core performance state control |
US9128721B2 (en) * | 2012-12-11 | 2015-09-08 | Apple Inc. | Closed loop CPU performance control |
US9454214B2 (en) * | 2013-03-12 | 2016-09-27 | Intel Corporation | Memory state management for electronic device |
US20150363116A1 (en) * | 2014-06-12 | 2015-12-17 | Advanced Micro Devices, Inc. | Memory controller power management based on latency |
-
2014
- 2014-06-12 US US14/302,964 patent/US20150363116A1/en not_active Abandoned
-
2015
- 2015-06-11 EP EP15807522.6A patent/EP3155499A4/en not_active Withdrawn
- 2015-06-11 KR KR1020167034779A patent/KR20170016365A/ko unknown
- 2015-06-11 WO PCT/US2015/035344 patent/WO2015191860A1/en active Application Filing
- 2015-06-11 JP JP2016572557A patent/JP2017526039A/ja active Pending
- 2015-06-11 CN CN201580030914.5A patent/CN106415438A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20170016365A (ko) | 2017-02-13 |
CN106415438A (zh) | 2017-02-15 |
EP3155499A4 (en) | 2018-05-02 |
EP3155499A1 (en) | 2017-04-19 |
US20150363116A1 (en) | 2015-12-17 |
WO2015191860A1 (en) | 2015-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017526039A (ja) | レイテンシに基づくメモリ制御装置の電力管理 | |
US9261935B2 (en) | Allocating power to compute units based on energy efficiency | |
US9720487B2 (en) | Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration | |
US20140108740A1 (en) | Prefetch throttling | |
US9916265B2 (en) | Traffic rate control for inter-class data migration in a multiclass memory system | |
US20150186160A1 (en) | Configuring processor policies based on predicted durations of active performance states | |
US9727241B2 (en) | Memory page access detection | |
US9262322B2 (en) | Method and apparatus for storing a processor architectural state in cache memory | |
US20170083435A1 (en) | Dynamic Multithreaded Cache Allocation | |
US20160077575A1 (en) | Interface to expose interrupt times to hardware | |
US8909866B2 (en) | Prefetching to a cache based on buffer fullness | |
US20150067357A1 (en) | Prediction for power gating | |
US9886326B2 (en) | Thermally-aware process scheduling | |
US20160077871A1 (en) | Predictive management of heterogeneous processing systems | |
US9298243B2 (en) | Selection of an operating point of a memory physical layer interface and a memory controller based on memory bandwidth utilization | |
US9507410B2 (en) | Decoupled selective implementation of entry and exit prediction for power gating processor components | |
US9851777B2 (en) | Power gating based on cache dirtiness | |
US9256544B2 (en) | Way preparation for accessing a cache | |
US9697146B2 (en) | Resource management for northbridge using tokens | |
US20160246715A1 (en) | Memory module with volatile and non-volatile storage arrays | |
US20160180487A1 (en) | Load balancing at a graphics processing unit | |
US20150268713A1 (en) | Energy-aware boosting of processor operating points for limited duration workloads | |
US20160085219A1 (en) | Scheduling applications in processing devices based on predicted thermal impact | |
US20160378667A1 (en) | Independent between-module prefetching for processor memory modules | |
US20160117247A1 (en) | Coherency probe response accumulation |