JP4353990B2 - マルチプロセッサ制御装置 - Google Patents

マルチプロセッサ制御装置 Download PDF

Info

Publication number
JP4353990B2
JP4353990B2 JP2007133131A JP2007133131A JP4353990B2 JP 4353990 B2 JP4353990 B2 JP 4353990B2 JP 2007133131 A JP2007133131 A JP 2007133131A JP 2007133131 A JP2007133131 A JP 2007133131A JP 4353990 B2 JP4353990 B2 JP 4353990B2
Authority
JP
Japan
Prior art keywords
priority
program
frequency
supply voltage
processor core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007133131A
Other languages
English (en)
Other versions
JP2008287592A (ja
Inventor
宏 中村
正章 近藤
崇 南谷
亮 渡辺
Original Assignee
株式会社半導体理工学研究センター
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社半導体理工学研究センター filed Critical 株式会社半導体理工学研究センター
Priority to JP2007133131A priority Critical patent/JP4353990B2/ja
Priority to US12/122,267 priority patent/US8069357B2/en
Publication of JP2008287592A publication Critical patent/JP2008287592A/ja
Application granted granted Critical
Publication of JP4353990B2 publication Critical patent/JP4353990B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Description

本発明は、複数のプロセッサを制御するマルチプロセッサ制御装置関する。
従来から、制約を持つプログラムの消費電力削減手法として、制約を満たす範囲で、できる限り低い周波数・電源電圧を用いプログラムを実行するよう、周波数・電源電圧を制御する手法が提案されている。
ある従来の手法では、プログラムのプロファイル情報に基づき周波数・電源電圧を決定する(第1従来例)。他の従来の手法では、プログラム実行時の情報を用いて、制約を満たしていない場合に、周波数・電源電圧を上げて制約を満たすよう制御し、逆に性能に余裕がある場合に、周波数・電源電圧を下げるなどのフィードバック制御により周波数・電源電圧を決定する(第2従来例)。
なお、非特許文献1では、キャッシュを分割するのではなく、各プロセッサの動作周波数及び電源電圧を動的電源電圧/周波数制御(Dynamic Voltage/Frequency Scaling:DVFS)手法によって制御することにより、公平さ(フェアネス)を向上し、高性能化、及び低消費電力あるいは低消費エネルギーを実現する技術が提案されている。
近藤正章、中村宏、「CMP向け動的電源電圧・周波数制御手法の提案」、情報処理学会研究報告、IPSJ SIG Technical Reports、情報研報 Vol.2005,No.56、2005年5月31日発行、25頁、社団法人 情報処理学会
CMPにおいては、一般的に、例えばメモリバスなどのように複数のプロセッサコアに共有されるリソースが存在する。
そのため、各プロセッサコア上で実行されるプログラムの性能は他のプロセッサコア上で同時に実行されるプログラムの性質に大きく依存し、リソース競合が生じると性能が大きく低下してしまう場合がある。
この場合、上述した第1従来例及び第2従来例では、性能が低下したプログラムの周波数・電源電圧を上げるなどして対処するのみであり、他のプログラムとのリソース競合の影響を考慮した制御は行われないため、エネルギー効率がよくない場合がある。
本発明は、上記実情に鑑みてなされたもので、各プロセッサで実行されるプログラムの共有リソース競合の影響を考慮しつつ、マルチプロセッサ全体の消費電力と消費エネルギーとのうちの少なくとも一方を抑制する制御装置提供する。
上記課題は、複数のプロセッサで実行される各プログラムの性能制約を満たす範囲で、複数のプロセッサの合計消費電力と合計消費エネルギーとのうちの少なくとも一方を抑制する「複数のプロセッサから複数のプロセッサの共有リソースへ発行されるリクエストの優先度」を決定し、各プログラムの性能制約を満たす範囲で、合計消費電力と合計消費エネルギーとのうちの少なくとも一方を抑制する「複数のプロセッサの周波数と電源電圧とのうちの少なくとも一方」を決定する協調制御手段と、協調制御手段によって決定された優先度に応じて、複数のプロセッサからのリクエストを共有リソースへ発行する第1制御手段と、協調制御手段によって決定された周波数と電源電圧とのうちの少なくとも一方に応じて、複数のプロセッサの周波数と電源電圧とのうちの少なくとも一方を制御する第2制御手段、とを具備するマルチプロセッサ制御装置により解決される。
協調制御手段は、緊急性の高いプログラムを実行するプロセッサからのリクエストの優先度を、緊急性の低いプログラムを実行するプロセッサからのリクエストの優先度よりも高くする。さらに協調制御手段は、リクエストの優先度を高くしたプロセッサの周波数と電源電圧とのうちの少なくとも一方を、優先度制御を行わなかった場合と比べて低くする。
本発明によれば、各プロセッサで実行されるプログラムの共有リソース競合の影響を考慮しつつ、この競合による性能への影響をモデル化することにより、マルチプロセッサ全体の消費電力と消費エネルギーとのうちの少なくとも一方を抑制することができる。
以下、本発明の実施の形態について、図面を参照して説明する。
(第1の実施の形態)
本実施の形態においては、例えば複数のプロセッサコアを1チップに搭載したチップマルチプロセッサ(Chip Multi Processor:CMP)を制御する装置について説明する。しかしながら、この制御装置の制御対象は必ずしもCMPである必要はなく、例えば複数のチップで構成されるマルチプロセッサシステムなどでもよい。
本実施の形態においては、各プロセッサコアで実行されるプログラムの共有リソース競合の影響を考慮しつつ、この競合による性能への影響をモデル化することにより、消費電力と消費エネルギーとのうちの少なくとも一方を抑制するマルチプロセッサの制御装置について説明する。なお、以下においては、消費電力を抑制する場合を例として説明するが、消費エネルギーの抑制も同様の制御手法を用いることで可能である。
本実施の形態においては、共有リソース競合による性能への影響を優先度制御により調整し、消費電力の抑制効果を高めることを可能とする。このために、本実施の形態に係るマルチプロセッサは、優先度制御と周波数・電源電圧制御を協調して行い、全体としての消費電力が最小となるように優先度/周波数・電源電圧を制御する。
図1は、本実施の形態に係るマルチプロセッサ制御装置の構成の一例を示すブロック図である。
マルチプロセッサ1は、複数のプロセッサコアPU0〜PUnを1チップ上に搭載している。プロセッサコアPU0〜PUnで実行されるプログラムは性能制約(例えば、何秒以内に終了しなければいけないなどのように実行時間の上限が決まっているなど:レイテンシ(リアルタイム)制約)を持つ。
プロセッサコアPU0〜PUnと主記憶装置2とは、転送管理部3及びメモリバス4により接続されている。転送管理部3は、例えばMMU(Memory Management Unit)3a、バスコントローラ3b、アクセスキュー3cを具備する。
本実施の形態において、マルチプロセッサ1における消費電力の抑制を行うためのマルチプロセッサ制御装置は、アクセスキュー3c、FVP協調制御部5、優先度制御部6、周波数・電源電圧制御部7を具備する。
マルチプロセッサ1の各プロセッサコアPU0〜PUnに対しては、個別に周波数、電源電圧を制御可能である。各プロセッサコアPU0〜PUnから発行された主記憶装置2へのアクセスリクエストは、どのプロセッサコアから発行されたか判別可能であり、発行元のプロセッサコアに応じた優先度にしたがって制御される。なお、本実施の形態において、優先度とは、各プロセッサコアPU0〜PUnからのアクセスが競合したときの待ち時間を、各プロセッサコアPU0〜PUnに分配する割合とする。
マルチプロセッサ制御装置は、マルチプロセッサ1について、各プロセッサコアPU0〜PUnの周波数・電源電圧とリクエストの優先度を協調して制御する。
プロセッサコアPU0〜PUnは、転送管理部3を介し、共有リソースであるメモリバス4、さらには主記憶装置2に接続されている。
FVP協調制御部5は、メモリバス4の競合の状態や、各プロセッサコアPU0〜PUnで動作しているプログラム(アプリケーション、プロセス)の情報に基づいて、性能制約を満たしつつ各プログラムが実行され、かつ全体の消費電力を抑制するために、各プロセッサコアPU0〜PUnのリクエストの優先度と周波数・電源電圧とを協調して制御し、制御信号をそれぞれ優先度制御部6、周波数・電源電圧制御部7に与える。FVP協調制御部5は、リクエストの優先度を高くしたプロセッサコアの周波数と電源電圧とのうちの少なくとも一方を、優先度制御を行わなかった場合と比較して低下させる。優先度を高くすることにより、優先度制御を行わなかった場合と比べて周波数と電源電圧とを下げることができ、低電力化を実現することができる。
優先度制御部6は、FVP協調制御部5から受けた制御信号に基づいて、主記憶装置2に対するアクセスリクエストの優先度を制御する。
周波数・電源電圧制御部7は、FVP協調制御部5から受けた制御信号に基づいて、各プロセッサコアPU0〜PUnの周波数と電源電圧とのうち少なくとも一方(周波数のみ、電源電圧のみ、あるいは周波数と電源電圧の双方)を制御する。
以下に、本実施の形態に係るマルチプロセッサ制御装置によって行われる制御方法について説明する。
図2は、プログラムの性能制約を満たす状況における、プロセッサコアPU0の消費電力、プロセッサコアPU1の消費電力、プロセッサコアPU0及びPU1の消費電力の合計のそれぞれと、リクエストの優先度との関係の一例を示すグラフである。
この図2において、優先度は、プロセッサコアPU0からのリクエストと、プロセッサコアPU1からのリクエストとの間の待ち時間の配分の割合を表す。
優先度0は、プロセッサコアPU0からのリクエストが、プロセッサコアPU1からのリクエストの全てを追い抜くレベルを表す。
優先度0.5は、プロセッサコアPU0からのリクエストと、プロセッサコアPU1からのリクエストとの間で、待ち時間が同じレベルを表す。
優先度1は、プロセッサコアPU1からのリクエストが、プロセッサコアPU0からのリクエストの全てを追い抜くレベルを表す。
優先度が0に向うほど、プロセッサコアPU0からのリクエストが、プロセッサコアPU1からのリクエストより優先される。
逆に、優先度が1に向うほど、プロセッサコアPU1からのリクエストが、プロセッサコアPU0からのリクエストより優先される。
例えば、プロセッサコアPU0の優先度が高く、プロセッサコアPU1の優先度が低い場合、プロセッサコアPU0から共有リソースへのリクエストは、プロセッサコアPU1からのリクエストを追い抜く。このため、プロセッサコアPU0のプログラムは、プロセッサコアPU1のプログラムよりも効率的に実行可能であり、その分、性能制約を満たす範囲でプロセッサコアPU0の周波数・電源電圧を低下させることができる。したがって、プロセッサコアPU0の優先度が高い場合、プロセッサコアPU0の消費電力を低下させることができる。
また、プロセッサコアPU1の優先度がプロセッサコアPU0の優先度よりも低い場合、プロセッサコアPU1から共有リソースへのリクエストは、プロセッサコアPU0からのリクエストに追い抜かれる。このため、プロセッサコアPU1のプログラムは、プロセッサコアPU0のプログラムよりも効率的に実行することが困難となり、その分、性能制約を満たすために、プロセッサコアPU1の周波数・電源電圧を上げることが必要になる。したがって、プロセッサコアPU1の優先度が低い場合、プロセッサコアPU1の消費電力が増加する。
この図2においては、プロセッサコアPU1で実行されるプログラムの方がプロセッサコアPU0で実行されるプログラムよりも緊急性が高く、プロセッサコアPU1の方がプロセッサコアPU0よりも高い処理速度を必要とし、消費電力が大きい。そのため、プロセッサコアPU1についての優先度と消費電力の関係の変化率の方が、プロセッサコアPU0についての優先度と消費電力の関係の変化率よりも大きくなっている。
この図2より、プロセッサコアPU1の優先度をプロセッサコアPU0の優先度よりも高くすることによって、合計の消費電力を抑制することができることがわかる。
本実施の形態では、複数のプロセッサコアPU0〜PUnから共有リソースへのアクセスが競合した場合に、緊急性の高いプログラムからのアクセスを優先させる。これにより、優先度の高いプログラムを実行するプロセッサコアについては、共有リソースに対する待ち状態が短縮されるため、このプロセッサコアの速度(周波数・電源電圧)を低下させることが可能となる。なお、周波数(=処理速度)は電源電圧にほぼ比例する。消費電力は電源電圧の2乗にほぼ比例する。
上記図2の状態においては、消費電力の小さい側のプロセッサコアPU0の優先度を低くし、消費電力の大きい側のプロセッサコアPU1の優先度を高くするとともに、各プロセッサコアPU0,PU1についてプログラムの性能制約を満たす範囲で周波数・電源電圧を抑制することにより、プロセッサコアPU0,PU1の消費電力の合計を抑制することが可能である。
消費電力の合計が最小になる優先度が、「最適な優先度」として制御に用いられる。優先度制御部6は、この最適な優先度となるように、実際のリクエストの発行を制御する。
以下に、優先度と周波数・電源電圧とを制御する制御アルゴリズムの具体例について説明する。なお。この制御アルゴリズムは一例であり、他の手法を用いることもできる。
共有リソースの優先度は、例えば図3に示すように、各プロセッサコアPU0〜PUnからのメモリリクエストを保持するリクエストキュー3cがある場合には、優先度の高いプロセッサコアからのリクエストは先に発行された優先度の低い他のプロセッサコアからのリクエストを何個分か追い越して発行することを許可するなどの手法により制御可能である。
共有リソースの競合が、各プロセッサコアPU0〜PUnの性能に与える影響は、各プログラムの性能制約(例えばレイテンシ制約など)、各プログラムの共有リソースへのアクセス回数、各プログラムの命令実行数、共有リソースの性能(例えば単独実行時の共有リソースアクセスによる待ち時間など)をパラメータとした性能予測モデルを構築し、定式化することができる。これにより、マルチプロセッサ1全体の消費電力が最小となる共有リソースの優先度を求めることができる。
優先度及び各プロセッサコアPU0〜PUnの周波数・電源電圧は、例えばタイムインターバルを用いた手法により制御可能である。
図4は、周波数・電源電圧調整インターバル(DVFS_interval)ごとに周波数・電源電圧を調整し、優先度調整インターバル(優先度調整interval)ごとに優先度を調整する制御手法の一例を示す図である。
FVP協調制御部5は、周波数・電源電圧調整インターバル間隔で、各プロセッサコアPU0〜PUnのプログラムの性能をチェックし、性能制約を満たすために必要な性能が達成されているかを監視し、達成されていないと判断されたプログラムを実行するプロセッサコアについて、周波数と電源電圧とのうち少なくとも一方をアップするなどのフィードバック制御を実行する。
すなわち、FVP協調制御部5は、プログラムの進行状態を周波数・電源電圧調整インターバル間隔でチェックし、性能制約の時刻より早く終了しそうな場合に周波数・電源電圧の少なくとも一方を低下(例えば−1)させ、進行状態が性能制約の時刻に間に合いそうにない場合に周波数・電源電圧の少なくとも一方を増加(例えば+1)する。なお、一度、周波数・電源電圧を変更すると、Silent_intervalの間は周波数・電源電圧を変更しないとする。
さらに、FVP協調制御部5は、優先度調整インターバル間隔で、各プロセッサコアPU0〜PUnから共有リソースへのリクエストの実際の競合の状態を監視し、最適と判断された優先度を満たすように、優先度についてフィードバック制御を実行する。
すなわち、FVP協調制御部5は、上記図2から定まる最適な優先度(最適な待ち合わせの分配)と実際の待ち合わせの分配とを比較し、実際の待ち合わせの分配が、最適な優先度となるように制御する。
一般的に、最低限満たすべき性能制約が存在するプログラムを実行する場合、この性能制約を満たす範囲であれば、低い周波数・電源電圧を用いてプログラムを実行することで消費電力を抑制することができる。
従来のマルチプロセッサでは、メモリバスなどの共有リソースでアクセス競合が発生すると、プログラムの性能低下が生じ、この性能低下を補うために、プロセッサコアをより高い周波数・電源電圧で動作させることが必要になり、消費電力の増大を招く場合がある。
これに対して、本実施の形態においては、FVP協調制御部5が、各プロセッサコアPU0〜PUnで実行しているプログラムの状態に応じて、共有リソースの使用率を優先度制御により適切に制御し、また、この優先度制御に併せて、各プロセッサコアPU0〜PUnの周波数・電源電圧を調整する。これにより、プログラムの性能制約を満たしつつマルチプロセッサ1全体での消費電力が抑制される。
上記のようなマルチプロセッサ制御装置を用いた場合の効果について以下に説明する。
本実施の形態においては、消費電力の大きいプロセッサコアによる共有リソースへのアクセスリクエストの優先度を、消費電力の小さいプロセッサコアによる共有リソースへのアクセスリクエストの優先度よりも高くすることにより、共有リソースへのアクセスが競合する場合であっても消費電力の大きいプロセッサコアの性能が低下することを緩和できる。これにより、マルチプロセッサ1全体での消費電力を抑制することができる。
本実施の形態においては、周波数・電源電圧の制御と優先度制御を独立に行う場合と比べ、マルチプロセッサ1全体の消費電力をさらに削減することができる。
マルチプロセッサ1は、低消費電力化と高性能化の双方を達成可能なアーキテクチャとして期待され、高性能プロセッサや組み込み向けプロセッサにおいても今後の主流になると考えられる。このようなマルチプロセッサ1に対してプログラムの性能制約を満たしつつ、低消費電力化を一層強化できる本実施の形態に係る制御の技術的意義は極めて大きく、ビジネス的にもインパクトは大きい。
(第2の実施の形態)
本実施の形態においては、上記第1の実施の形態と異なる方式で優先度と周波数・電源電圧とを制御する制御アルゴリズムについて説明する。
性能予測モデルによると、各プロセッサコアPU0〜PUnの周波数が等しくなる場合が、最も低電力となる。
そこで、本実施の形態では、FVP協調制御部5は、各プロセッサコアPU0〜PUnの周波数のいずれもが目標範囲に含まれるように(より好ましくは等しくなるように)、優先度を制御する。
例えば、2つのプロセッサコアPU0,PU1について、プロセッサコアPU0の周波数がプロセッサコアPU1の周波数よりも高い場合、FVP協調制御部5は、プロセッサコアPU0の優先度を高くする。
逆に、プロセッサコアPU1の周波数がプロセッサコアPU0の周波数よりも高い場合、FVP協調制御部5は、プロセッサコアPU1の優先度を高くする。
このような制御アルゴリズムを用いた場合にも、上記第1の実施の形態の場合と同様に、マルチプロセッサ1全体での消費電力を抑制することができる。
(第3の実施の形態)
本実施の形態においては、上記第1及び第2の実施の形態における性能予測モデルの一例について説明する。
ここでは、説明を簡略化するために、図5に示すような2個のプロセッサコアPU0、PU1を搭載するマルチプロセッサ(チップマルチプロセッサ)1の場合について説明する。
各プロセッサコアPU0、PU1は、それぞれが、キャッシュL1,L2を内蔵しており、メモリバス4と主記憶装置2とを共有している。各プロセッサコアPU0,PU1は、それぞれ独立なプログラムT0,T1を実行する。各プロセッサコアPU0、PU1は、性能制約としてレイテンシ制約を持つ。
以下においては、メモリバス4のアクセス競合について説明する。
プログラム実行中のプロセッサコアは、図6に示すように、命令の実行を行っている状態(稼動)、キャッシュL2へのアクセスがミスし、そのデータを待ってストールしている状態(ストール)の2つの状態をとる。
プロセッサコアの周波数・電源電圧を変化させると、図7に示すように、命令を実行完了するために必要な稼動時間が変化する。ここで、共有のメモリバス4の周波数・電源電圧は一定であるため、ストール時間は不変である。
図8は、レイテンシ制約と、プログラムの実行開始から実行終了までの時間との関係を表すタイミングチャートである。レイテンシ制約を持つプログラムを実行する場合には、レイテンシ制約内に、プログラムの実行開始から実行終了までの時間が収まる必要がある。
図9に示すように、プログラムの実行開始から実行完了までにおける稼働時間が(レイテンシ制約−ストール時間)と等しくなるように選んだ周波数・電源電圧が、性能制約を満たす範囲で最も低い(消費電力を最小にする)周波数・電源電圧である。
稼動時のプロセッサコアの性能は、周波数に比例するので、周波数選択について(1)式が成り立つ。
Figure 0004353990
以下において、LiはプログラムTiのレイテンシ制約、miはプログラムTiの実行中に発生するキャッシュL2に対するキャッシュミスの回数(=共有リソースへのアクセス回数)、siはプログラムTiの実行中のストール時間の長さ(=単独実行時の共有リソースアクセスによる待ち時間)、lBはキャッシュL2のキャッシュミス1回分のデータを転送するのに共有リソースが必要とする時間(=キャッシュL2のキャッシュミス1回あたりの共有リソース占有時間)、IiはプログラムTiの命令実行数、とする。
まず、プロセッサコアPUiが単独で動作するとき、すなわちアクセス競合がない場合について説明する。この場合、プロセッサコアPUiの実効的な稼働時間Tiは(2)式で与えられる。
Figure 0004353990
すなわち、時間tiの間にプログラムTiの命令をちょうど全て処理できるように、プロセッサコアPUiの周波数・電源電圧を設定すればよい。
よって、プロセッサコアPUiに設定すべき周波数fiは(3)式で表される。なお、cは定数である。
Figure 0004353990
プロセッサコアPUiを周波数fiで動かすのに必要な電源電圧をViとすると、プロセッサコアPUiが1命令を実行する際に消費するエネルギーeiは(4)式で与えられる。なお、kは定数である。
Figure 0004353990
以上より、プロセッサコアPUiの平均消費電力Pi(エネルギー/時間)は(5)式より求められる。
Figure 0004353990
続いて、各プロセッサコアPU0、PU1を同時に動作させた場合について説明する。
プロセッサコアPU0上でキャッシュL2のキャッシュミスが発生し、主記憶装置からデータを取得しようとする場合、プロセッサコアPU1が共有リソースを占有している確率(コンフリクトが発生する確率)は、(6)式で表される。
Figure 0004353990
また、プロセッサコアPU1の共有リソース利用の時間分布が一様であると仮定すると、コンフリクトが発生したときにプロセッサコアPU0の転送が待たされる時間の期待値は、(7)式で表される。
Figure 0004353990
したがって、プロセッサコアPU1との競合によって増加するプロセッサコアPU0のストール時間の、プロセッサコアPU0のキャッシュL2のキャッシュミス1回あたりの期待値は(8)式で表される。
Figure 0004353990
このとき、プロセッサコアPU0の実効稼動時間はt0から(9)式のt0’に変化する。
Figure 0004353990
このt0’より単独動作時と同様に周波数f0’と電源電圧V0’が決まる。
プロセッサコアPU1についても同様に、t1’、f0’、V0’が求まるため、競合がある場合の各プロセッサコアの消費電力Pi’は、(10)式で与えられる。
Figure 0004353990
次に、共有リソースの優先度制御を行うことによる電力の変化について説明する。
プロセッサコアPU0,PU1を同時に動作させるとき、競合によって増加するストール時間の総和は、単位時間あたりの値として(11)式で表される。
Figure 0004353990
totalは、優先度制御を行っても変わることはない。
しかし、以下に説明するように、各プロセッサコアが競合により被るストールの増分(性能ペナルティ)の比率を変えることはできる。
優先度制御を行う場合において、2つのプロセッサコアPU0,PU1が同時に共有リソースを使おうとした場合、プロセッサコアPU0を優先すると、図10に示す状態となる。
一方、プロセッサコアPU1を優先すると、図11に示す状態となる。
この図10及び図11に示したように、待ち時間の総和は不変だが、その配分を変えることは可能である。
そこで、理想的な優先度制御部があると仮定し、この理想的な優先度制御部が、各プロセッサコアPU0,PU1が受ける性能ペナルティの比率を(12)式となるように制御するとする(r=0ならプロセッサコアPU0の転送を必ず先に行う。r=1ならその逆)。
Figure 0004353990
この場合、各プロセッサコアの実効稼働時間ti’は、rの関数として(13)式及び(14)式のように表される。
Figure 0004353990
Figure 0004353990
したがって、マルチプロセッサ1の合計消費電力Ptotal(=P0‘+P1‘)もrの関数であり、優先度制御によって変化する。
以下において、上記のような性能予測モデルにおいて、マルチプロセッサ1の合計消費電力Ptotalを最小にするrの値は一般的にただ一つに決まり、以下に示すdPtotal/drが0になるときに最小となる。
Figure 0004353990
これにより、電力最小の条件としてI0/t0’=I1/t1’、すなわちf0’=f1’が導かれる。各プロセッサコアが制約を満たすために必要な周波数を等しくすると電力最小になる。この場合のrの値は(16)式で与えられる。
Figure 0004353990
このrminより最適な優先度=最適な待ち合わせ時間の分配比が得られる。
(第4の実施の形態)
本実施の形態においては、上記第1の実施の形態で説明した優先度と周波数・電源電圧の制御アルゴリズム(以下、第1制御アルゴリズム)を用いた場合と、上記第2の実施の形態で説明した優先度と周波数・電源電圧の制御アルゴリズム(以下、第2制御アルゴリズム)を用いた場合の評価について説明する。
図13は、第1制御アルゴリズム及び第2制御アルゴリズムを使用しない場合、第1制御アルゴリズムを用いた場合、第2制御アルゴリズムを用いた場合の消費電力の状態の一例を示す図である。
この図13では、2つのプロセッサコアPU0,PU1のうち、プロセッサコアPU0でH264デコーダが実行され、プロセッサコアPU1で他のプログラム「art」又はプログラム「bzip2」が実行された場合の例を示している。
この図13からも分かるように、第1制御アルゴリズム及び第2制御アルゴリズムを使用しない場合よりも、第1制御アルゴリズムを用いた場合、第2制御アルゴリズムを用いた場合の方が、約10%程度消費電力を抑制できている。
なお、この評価値は、プログラムの制約の厳しさ、各プロセッサコアPU0,PU1の負荷のばらつきなどにより変化する。
上記各実施の形態は、その要旨を変更しない範囲において、種々変形可能である。
例えば、共有リソースは、各種メモリ、バンク、PCIバス、ディスプレイ、各種インタフェースなど、各プロセッサコアPU0〜PUnに共有される各種アクセス先であってもよい。
FVP協調制御部5は、ソフトウェアにより実現されるとしてもよい。少なくとも一つのプロセッサコアにより、FVP協調制御部5の機能が実現されるとしてもよい。
上記各実施の形態においては、アクセスキュー3c内のリクエストの追い抜きにより優先度を調整しているが、その他の手法により優先度を調整してもよい。例えば、プロセッサコアごとにリクエスト記憶部を設け、優先度制御部6の制御タイミングにそってリクエスト記憶部から共有リソースにリクエストが発行されるとしてもよい。
優先度と周波数・電源電圧の制御アルゴリズムとしては、他のアルゴリズムを用いることもできる。
上記各実施の形態において、各種の構成要素は自由に組み合わせ又は分離することができる。例えばFVP協調制御部5、優先度制御部6、周波数・電源電圧制御部7は、任意に組み合わせることができる。FVP協調制御部5、優先度制御部6、周波数・電源電圧制御部7のすべてを組み合わせて1ユニットとしてもよい。
本発明の第1の実施の形態に係るマルチプロセッサ制御装置の構成の一例を示すブロック図。 プログラムの性能制約を満たす状況における、プロセッサコアPU0の消費電力、プロセッサコアPU1の消費電力、プロセッサコアPU0及びPU1の消費電力の合計のそれぞれと、リクエストの優先度との関係の一例を示すグラフ。 リクエストキューの一例を示すブロック図。 周波数・電源電圧調整インターバルごとに周波数・電源電圧を調整し、優先度調整インターバルごとに優先度を調整する制御手法の一例を示す図。 本発明の第3の実施の形態に係るマルチプロセッサと共有リソースとの関係の一例を示すブロック図。 プロセッサコアの稼動状態とストール状態との関係の一例を示すタイミングチャート。 周波数が異なる場合のプログラムの実行開始から実行完了までの時間の変化の一例を示すタイミングチャート。 レイテンシ制約と、プログラムの実行開始から実行終了までの時間との関係を表すタイミングチャート。 プロセッサコアの稼働時間の上限とストール時間の総和との関係の一例を示す図。 プロセッサコアPU1よりもプロセッサコアPU0を優先させる状態の一例を示す図。 プロセッサコアPU0よりもプロセッサコアPU1を優先させる状態の一例を示す図。 市販のプロセッサの電圧・周波数の関係を線形近似した結果の一例を示す図。 第1の実施の形態に係るマルチプロセッサ制御装置を適用した場合と第2の実施の形態に係るマルチプロセッサ制御装置を適用した場合の評価の一例を示す図。
符号の説明
1…マルチプロセッサ、PU0〜PUn…プロセッサコア、2…主記憶装置、3…転送管理部、3a…MMU、3b…バスコントローラ、3c…アクセスキュー、4…メモリバス、5…FVP協調制御部、6…優先度制御部、7…周波数・電源電圧制御部

Claims (3)

  1. 複数のプロセッサで実行される各プログラムの性能制約を満たす範囲で、前記複数のプロセッサの合計消費電力と合計消費エネルギーとのうちの少なくとも一方を抑制する「前記複数のプロセッサから前記複数のプロセッサの共有リソースへ発行されるリクエストの優先度」を決定し、前記各プログラムの性能制約を満たす範囲で、前記合計消費電力と合計消費エネルギーとのうちの少なくとも一方を抑制する「前記複数のプロセッサの周波数と電源電圧とのうちの少なくとも一方」を決定する協調制御手段と、
    前記協調制御手段によって決定された優先度に応じて、前記複数のプロセッサからのリクエストを前記共有リソースへ発行する第1制御手段と、
    前記協調制御手段によって決定された周波数と電源電圧とのうちの少なくとも一方に応じて、前記複数のプロセッサの周波数と電源電圧とのうちの少なくとも一方を制御する第2制御手段と
    を具備し、
    前記協調制御手段は、緊急性の高いプログラムを実行するプロセッサからのリクエストの優先度を、緊急性の低いプログラムを実行するプロセッサからのリクエストの優先度よりも高くし、
    さらに前記協調制御手段は、リクエストの優先度を高くしたプロセッサの周波数と電源電圧とのうちの少なくとも一方を、優先度制御を行わなかった場合と比べて低くする
    ことを特徴とするマルチプロセッサ制御装置。
  2. 請求項記載のマルチプロセッサ制御装置において、
    前記協調制御手段は、
    前記複数のプロセッサから前記共有リソースへの実際の競合の状態を監視し、前記実際の競合の状態が、前記優先度となるようにフィードバック制御を実行し、
    前記各プログラムの進行状態を監視し、前記各プログラムを実行するそれぞれのプロセッサについて、前記各プログラムの進行状態が性能予測モデルに基づいて予測された予測結果より早く終了しそうな場合に、周波数と電源電圧とのうちの少なくとも一方を低下させ、前記各プログラムの進行状態が前記予測結果に間に合わなくなりそうな場合に、周波数と電源電圧とのうちの少なくとも一方を増加させるフィードバック制御を行う
    ことを特徴とするマルチプロセッサ制御装置。
  3. 請求項記載のマルチプロセッサ制御装置において、
    前記協調制御手段は、
    前記複数のプロセッサの周波数のいずれもが目標範囲に含まれるように前記複数のプロセッサからのリクエストの優先度を制御することを特徴とするマルチプロセッサ制御装置。
JP2007133131A 2007-05-18 2007-05-18 マルチプロセッサ制御装置 Active JP4353990B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007133131A JP4353990B2 (ja) 2007-05-18 2007-05-18 マルチプロセッサ制御装置
US12/122,267 US8069357B2 (en) 2007-05-18 2008-05-16 Multi-processor control device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007133131A JP4353990B2 (ja) 2007-05-18 2007-05-18 マルチプロセッサ制御装置

Publications (2)

Publication Number Publication Date
JP2008287592A JP2008287592A (ja) 2008-11-27
JP4353990B2 true JP4353990B2 (ja) 2009-10-28

Family

ID=40028738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007133131A Active JP4353990B2 (ja) 2007-05-18 2007-05-18 マルチプロセッサ制御装置

Country Status (2)

Country Link
US (1) US8069357B2 (ja)
JP (1) JP4353990B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5397739B2 (ja) * 2008-03-18 2014-01-22 株式会社リコー 画像処理装置、画像処理方法および画像処理プログラム
US8171187B2 (en) * 2008-07-25 2012-05-01 Freescale Semiconductor, Inc. System and method for arbitrating between memory access requests
US20100057404A1 (en) * 2008-08-29 2010-03-04 International Business Machines Corporation Optimal Performance and Power Management With Two Dependent Actuators
WO2010028028A1 (en) 2008-09-08 2010-03-11 Virginia Tech Intellectual Properties Systems, devices, and methods for managing energy usage
US20100162256A1 (en) * 2008-12-18 2010-06-24 Alexander Branover Optimization of application power consumption and performance in an integrated system on a chip
US20100161368A1 (en) * 2008-12-23 2010-06-24 International Business Machines Corporation Managing energy in a data center
JP5293289B2 (ja) * 2009-03-11 2013-09-18 富士通株式会社 マルチコアプロセッサ及びその制御方法
TWI397808B (zh) * 2009-07-16 2013-06-01 Via Tech Inc 多處理器系統及其動態省電方法
TWI463322B (zh) * 2009-08-06 2014-12-01 Asustek Comp Inc 具有雙主機之電腦系統
WO2011117669A1 (en) * 2010-03-22 2011-09-29 Freescale Semiconductor, Inc. Integrated circuit device, signal processing system, electronic device and method therefor
WO2012014287A1 (ja) * 2010-07-27 2012-02-02 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
US8510740B2 (en) * 2010-09-16 2013-08-13 Qualcomm Incorporated System and method of performing dynamic voltage and frequency scaling operations on a mobile device
US8320898B2 (en) * 2010-09-16 2012-11-27 Qualcomm Incorporated Systems and methods for optimizing the configuration of a set of performance scaling algorithms
WO2012086040A1 (ja) * 2010-12-22 2012-06-28 富士通株式会社 マルチコアプロセッサシステム、および電力制御方法
EP2738683B1 (en) * 2011-07-15 2018-04-04 University of Tsukuba Ultra low power-data driven networking processing device for avoiding overload
JP5776789B2 (ja) 2011-11-15 2015-09-09 富士通株式会社 電力制御装置、電子計算機及び電力制御方法
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
JPWO2014033941A1 (ja) * 2012-09-03 2016-08-08 株式会社日立製作所 計算機システムおよび計算機システムの制御方法
US9594560B2 (en) * 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
JP6263995B2 (ja) * 2013-11-29 2018-01-24 富士通株式会社 情報処理システム、管理装置、情報処理システムの制御方法及び管理装置の制御プログラム
US9541985B2 (en) * 2013-12-12 2017-01-10 International Business Machines Corporation Energy efficient optimization in multicore processors under quality of service (QoS)/performance constraints
JP6223224B2 (ja) * 2014-02-21 2017-11-01 ルネサスエレクトロニクス株式会社 画像処理装置、及びその制御方法
US20170212581A1 (en) * 2016-01-25 2017-07-27 Qualcomm Incorporated Systems and methods for providing power efficiency via memory latency control
US11144318B2 (en) * 2019-08-26 2021-10-12 Arm Limited Method and apparatus for application thread prioritization

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3395394A (en) * 1965-10-20 1968-07-30 Gen Electric Priority selector
FR2500659B1 (fr) * 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
US5894577A (en) * 1993-09-22 1999-04-13 Advanced Micro Devices, Inc. Interrupt controller with external in-service indication for power management within a computer system
US5678026A (en) * 1995-12-28 1997-10-14 Unisys Corporation Multi-processor data processing system with control for granting multiple storage locks in parallel and parallel lock priority and second level cache priority queues
US6799254B2 (en) * 2001-03-14 2004-09-28 Hewlett-Packard Development Company, L.P. Memory manager for a common memory
JP2003337713A (ja) 2002-05-21 2003-11-28 Hitachi Ltd プロセッサの制御方法
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7546475B2 (en) * 2003-05-13 2009-06-09 Hewlett-Packard Development Company, L.P. Power-aware adaptation in a data center
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7779287B2 (en) * 2005-08-22 2010-08-17 Intel Corporation Reducing power consumption in multiprocessor systems
JP4262233B2 (ja) 2005-10-18 2009-05-13 株式会社半導体理工学研究センター 半導体装置とその制御方法
WO2007070193A1 (en) * 2005-12-12 2007-06-21 Linear Technology Corporation Integrated powered device connector in system for supplying power over communication link
JPWO2007141849A1 (ja) * 2006-06-07 2009-10-15 株式会社日立製作所 半導体集積回路
US7949887B2 (en) * 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7818592B2 (en) * 2007-04-18 2010-10-19 Globalfoundries Inc. Token based power control mechanism

Also Published As

Publication number Publication date
JP2008287592A (ja) 2008-11-27
US20080288796A1 (en) 2008-11-20
US8069357B2 (en) 2011-11-29

Similar Documents

Publication Publication Date Title
JP4353990B2 (ja) マルチプロセッサ制御装置
US10613876B2 (en) Methods and apparatuses for controlling thread contention
US9983792B2 (en) Dynamic cache sharing based on power state
US20240029488A1 (en) Power management based on frame slicing
US8799902B2 (en) Priority based throttling for power/performance quality of service
Jeong et al. A QoS-aware memory controller for dynamically balancing GPU and CPU bandwidth use in an MPSoC
US8200905B2 (en) Effective prefetching with multiple processors and threads
US20090089782A1 (en) Method and system for power-management aware dispatcher
US20070208965A1 (en) Method and apparatus for improving bus master performance
JP5485055B2 (ja) 共有メモリシステム及びその制御方法
US20190065243A1 (en) Dynamic memory power capping with criticality awareness
TW200941209A (en) Power-aware thread schedulingard and dynamic use of processors
US9612651B2 (en) Access based resources driven low power control and management for multi-core system on a chip
JP2008257578A (ja) 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
Mi et al. Software-hardware cooperative DRAM bank partitioning for chip multiprocessors
US9740611B2 (en) Memory management for graphics processing unit workloads
US12013780B2 (en) Multi-partition memory sharing with multiple components
US20190391846A1 (en) Semiconductor integrated circuit, cpu allocation method, and program
Wang et al. Shared Last-Level Cache Management and Memory Scheduling for GPGPUs with Hybrid Main Memory
Paul et al. Dynamic and application-driven I-cache partitioning for low-power embedded multitasking
KR20110062926A (ko) 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템
Sahba A real-time per-thread IQ-capping technique for simultaneous multi-threading (smt) processors

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090609

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090728

R150 Certificate of patent or registration of utility model

Ref document number: 4353990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130807

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350