JP5299161B2 - 計算機装置および消費電力のサンプリング方法 - Google Patents

計算機装置および消費電力のサンプリング方法 Download PDF

Info

Publication number
JP5299161B2
JP5299161B2 JP2009187169A JP2009187169A JP5299161B2 JP 5299161 B2 JP5299161 B2 JP 5299161B2 JP 2009187169 A JP2009187169 A JP 2009187169A JP 2009187169 A JP2009187169 A JP 2009187169A JP 5299161 B2 JP5299161 B2 JP 5299161B2
Authority
JP
Japan
Prior art keywords
core
power consumption
power
counter
sampling
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.)
Expired - Fee Related
Application number
JP2009187169A
Other languages
English (en)
Other versions
JP2010191937A (ja
Inventor
昌生 山本
耕一 久門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009187169A priority Critical patent/JP5299161B2/ja
Priority to US12/545,447 priority patent/US8645718B2/en
Publication of JP2010191937A publication Critical patent/JP2010191937A/ja
Application granted granted Critical
Publication of JP5299161B2 publication Critical patent/JP5299161B2/ja
Expired - Fee Related 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Power Sources (AREA)

Description

本発明は、CPU(Central Processing Unit )の消費電力を測定する技術に関する。
従来、プログラムの動作分析や性能チューニングのために、サンプリング情報がよく用いられている。具体的には、命令アドレスやPID(Process Identification)など、後で実行プログラムや関数と紐付けできる様な情報をサンプリングしておき、その採取データからプロファイル分析を行うことにより、プログラムの動作状況の把握や、性能改善箇所を特定することが一般になされている。
このサンプリング情報の採取方式として、タイムベースによるサンプリング方式がよく用いられている。それは、コンピュータ設計やプログラミング、システムの構築や管理において、これまでは時間性能や処理性能が要件として高く求められてきたからである。
しかし、現在は、電力消費もそれらの第一要件となってきている。そのため、動作プログラムや命令に関し、消費電力に基づいたデータサンプリング手段が必要となってきている。
これに対し、消費電力という観点における従来のプログラム動作分析方法としては、プロセッサに既に備わっているパフォーマンスカウンタを利用する手法がある。まず、電力消費に関連するいくつかのイベントの発生回数をパフォーマンスカウンタでカウントし、解析時に、各イベントに対応する電力換算値あるいは算出式を用いて消費電力を見積もる手法である(例えば、非特許文献1参照)。
しかし、この手法では、以下の様な問題点があった。先ず、消費電力プロファイル(動作プログラムによる電力消費の内訳分析)はできないという点。即ち、単に測定期間におけるシステム全体の消費電力がわかるだけで、その内訳となるプログラム毎の電力消費率はわからないという問題である。これに対し非特許文献1では、カーネルを改造してプログラム毎にカウンタ値を保存しプログラムの消費電力に基づくプロファイルを可能としているが、一般カーネルでは利用できず汎用性に欠ける。
また、精度面での問題を抱える。そもそも、同手法は見積もり値であり、完全には正しく消費電力を反映していない。さらに、パフォーマンスカウンタが有限個のためプロセッサによっては電力算出に必要なイベントを同時に採取できないという問題もある。その場合は何度かに分けてイベントを採取し、解析時に合成算出するので、正しい消費電力を反映していない可能性がますます高くなり信頼性や精度面での不安が残る。
上述した問題に対し、特許文献1では、タイムベースによるサンプリングにおいて、サンプリング毎に命令アドレス情報などとともに消費電力も記録していき、見積もりではない実測ベースの消費電力のプロファイルを実現している。
F. Bellosa, "The Benefits of Event-Driven Energy Accounting in Power-Sensitive Systems," Proc. SIGOPS European Workshop, ACM Press, 2000, pp.37-42.
特開2005−25754号公報
しかしながら、特許文献1では、消費電力の大きいプログラムを正しく見つけることが難しいケースがある。
例えば、図13に示すように(タイムベースによるサンプリング結果を、横軸を時間、縦軸を消費電力として、タイムベースによるサンプリング結果をグラフ化)、電力消費は小さいが実行時間の大部分を占める「プログラムA」と、実行時間はわずかだが消費電力の大きい「プログラムB」が実行されているようなケースである。このケースでは、見つけ出したいのは「プログラムB」の方であるにもかかわらず、「プログラムB」は、各サンプリング時刻とズレを生じているため抽出できていない。
このように、タイムベースサンプリングは、一定時間毎(例では1ms毎)に分析に必要な情報をサンプリング(採取)し、その採取データからサンプリング数ベースで動作プログラムの内訳を分析(プロファイル)するための手法であり、統計的に意味のある分析ができるのは時間に関してのものだけとなる。
こうした消費電力測定とそのプロファイルに乖離が生じるのは、消費電力のプロファイルを行うのに、タイムベースでサンプリングしているところに問題がある。つまり、消費電力のプロファイルを行うためには、データ採取も消費電力ベースで行うことが求められる。
そこで、上述してきた従来技術の問題を解決するため、本発明では、測定時に消費電力ベースでサンプリングを行うことによって、正確で高精度な消費電力のプロファイリングを実現する。
本発明は、上の目的を実現するために、実測消費電力に基づいたサンプリング手段を提供するものである。
その一つの発明は、マルチコアのCPUで構成された計算機装置であって、任意の一定時間毎に消費電力の測定を行う消費電力測定手段と、前記CPUの各コアに対応したコア毎の前記消費電力の測定値を積算していく積算電力カウンタと、前記消費電力と比例関係にありコア単位で測定可能なコア電力指標を参照し、該コア電力指標に基づいて前記消費電力の測定値を前記コア毎の積算電力カウンタに分配する分配器と、前記コア毎の積算電力カウンタのいずれかがオーバーフローしたときに前記CPUに割込みをかける割込み手段と、前記割込みがあると、割込み発生時の命令アドレスとプロセスIDを含むトレース情報を採取する採取手段と、を有することを特徴とする計算機装置に関する。
また、別な発明では、サンプリングプログラムを、タイマー割込みを利用し、一定間隔毎の消費電力を測定および積算し、予め設定された閾値を超えた時点で、プロファイルに必要な情報をサンプリングする構成とすることによって、一定の消費電力量を単位とした分析情報のサンプリングを可能としている。
以上、一態様の発明によれば、一定の消費電力量を単位として、分析に必要な情報をサンプリング(採取)することが可能となり、消費電力の大きいプログラムを特定することが可能となる。
本発明の実施の形態になる計算機装置の構成例(その1)を示す図である。 本発明の実施の形態になるオーバーフロー割込み制御によるサンプリングの動作フローを示す図である。 本発明の実施の形態になる計算機装置の構成例(その2)を示す図である。 本発明の実施の形態になるプログラム内の積算電力カウンタによる消費電力サンプリングの処理フローを示す図である。 本発明の実施の形態になる消費電力ベースのサンプリングによって抽出されるプログラムデータを示す図である。 消費電力サンプリング時の遅延による影響を説明する図である。 本発明の実施の形態になるバッファリング手段による消費電力サンプリング時の遅延補正の構成例を示す図である。 本発明に適用するリングバッファの仕組みを説明する図である。 本発明の実施の形態になる遅延補正を加えた時刻突き合わせによるデータ抽出を説明する図である。 本発明の実施の形態になるCPUコア毎の分配積算による測定電力値採取の構成例(その1)を示す図である。 本発明の実施の形態になるCPUコア毎の分配積算による測定電力値採取の構成例(その2)を示す図である。 本発明の実施の形態になるCPUコア単位での重み付けによる消費電力採取の構成例を示す図である。 従来のタイムベースのサンプリングによって抽出されるプログラムデータの例を示す図である。
以下、図面にもとづいて本発明の実施形態を説明する。本発明は、計算機の設計、システムの構築・管理、プログラミングの技術に関する。とくに、省電力化を要件とした際の計算機設計やシステム構築・管理やプログラム最適化のための基礎データ採取において利用される。また、OS(Operating System)が行うプロセススケジューリングのためのトリガーとしての利用も考えられる。
本発明は、それらの利用を目的とし、計算機システム上での動作プログラムによるプロファイル(例えば、消費時間の動作プログラムによる内訳分析)用のデータサンプリングに関する技術となる。また、本発明が実装される応用製品としては、プロセッサやマザボードなどが想定され、本発明の仕組みを利用する応用製品としては、プロファイラなどの性能ツールやOSなどが考えられる。
以下では、3つのケースを取り上げる。実施例1では、積算電力カウンタがオーバーフローしたときに、CPUに割込みを入れて必要情報のサンプリングを行う消費電力ベースのサンプリング手法を示す。また、実施例2では、プログラム内の積算電力カウンタが予め設定された閾値を超えたときに、必要情報のサンプリングを行うタイムベースプログラムによるサンプリング手法を示す。また、実施例3では、サンプリング時に遅延があったとしても、正しい動作プログラムの情報の採取ができる手法を示す。
さらに、実施例4では、CPUが複数のコアからなる場合に、コア単位で消費電力プロファイルを実現する手法について示す。
なお、実施例1〜4で使用する図中の共通の構成要素に対し符号は同一としている。
(実施例1)
図1は、本発明の実施の形態になる計算機装置の構成例(その1)を示す。計算機装置1は、積算電力カウンタ4の動作制御を行う電力監視設定レジスタ2、電源からCPUに供給される電力を所定時間毎に測定する消費電力測定手段3を有する。更に、計算機装置1は、時間毎の消費電力を積算する積算電力カウンタ4、積算電力カウンタ4がオーバーフローしたらCPUコア(以降、単にCPUと表現する)6にサンプリング用の割込みを入れるオーバーフロー割込み手段5、受け取った割込みを実行制御するCPU6を有する。更に、オーバーフロー割込み毎に、命令アドレス、プロセスID等のプロファイルに必要な情報の採取を行うサンプリングプログラム(採取手段)10の実行モジュールと、採取したデータを保持するメモリ7を有する。
なお、積算電力カウンタ4は、プログラムによって読出し/書込みが可能なものであり、実施例では、1カウント当たり1W分の電力積算で32bitカウンタとしている。
また、電力監視設定レジスタ2は、プログラムから設定可能で、以下の制御ビット(bit)によって積算電力カウンタ4の動作を制御している。
bit#0:「カウンタ」停止ビット(counter freeze bit)であり、”1”のとき、カウント動作を停止し、”0”のとき、カウント動作を有効とする。
bit#1:「オーバーフロー割込み」有効ビット(overflow interrupt bit)であり、”1”のとき、積算電力カウンタ4がオーバーフローした時に割り込みを入れ、かつ、counter freeze bitを”1 ”にセット(設定)して、ハード的に自動でカウンタを一旦停止する。”0”のときには、積算電力カウンタ4がオーバーフローしても割込みやfreeze bitのセットを行わないようにしている。
図2は、本発明の実施の形態になるオーバーフロー割込み制御によるサンプリングの動作フローを示す。
まず、ステップS11において、サンプリングプログラム10は、電力監視設定レジスタ2のoverflow interrupt bitを”1 ”に設定する。
また、ステップS12において、サンプリングプログラム10により、サンプリングレートを設定する。具体的には、積算電力カウンタ4に、期待値Rでオーバーフローするような初期値がセットされる。例えば、サンプリングレートが50kWの場合、積算電力カウンタ4が、50,000カウント(50,000=0xc350)毎に、オーバーフローするように、サンプリングプログラムから0xffff_ffff−0xc350=0xc350=「0xffff3caf」を積算電力カウンタ4の初期値として書き込んでおく。
さらに、ステップS13において、サンプリングプログラム10により、電力監視設定レジスタ2のcounter freeze bitを”0 ”にセットして、積算電力カウンタ4の動作を開始させる。
ステップS14において、動作有効となった積算電力カウンタ4は、所定時間毎に(例えば、1μsec.)消費電力を測定し、その測定値である消費電力を積算電力カウンタ4に積算していく。
そして、ステップS15において、オーバーフロー割込み手段5は、積算電力カウンタ4がオーバーフローしたら、ステップS16において、CPU6に割込みを入れ、割込みと同時に、電力監視設定レジスタ2のfreeze bitを”1 ”にしてカウンタ動作を自動的に停止させる。ステップS15で、オーバーフローしていなければ、ステップS14に戻り、消費電力の測定、および積算を繰り返す。
つぎに、ステップS17において、サンプリングプログラム10では、先ず、プロファイル分析に必要な、つまり、その割込み発生時の実行中プログラムを分析時に特定できる命令アドレスやプロセスIDなどの情報をサンプリング(採取)する。
そして、ステップS18において、サンプリングプログラム10は、一連の消費電力サンプリングが全て終了か否かを、例えば、予め決めておいた所定の測定時間などをもとに判定し、まだ終了でなければ、ステップS12以降の処理を繰り返す。
(実施例2)
図3は、本発明の実施の形態になる計算機装置の構成例(その2)を示す。本実施例では、タイムベースのサンプリングプログラム10が消費電力ベースのサンプリングを行う例を示している。
計算機装置1は、電源からCPUに供給される電力を所定時間毎に測定する消費電力測定手段3と、タイマー8を利用したサンプリングを行うサンプリングプログラム10を制御するCPU6を有する。更に、計算機装置1は、プログラム内に消費電力測定手段3からの測定値を取込む積算電力カウンタ11及びサンプリング閾値12を備え、分析に必要な情報の採取を行うサンプリングプログラム10の実行モジュールと、採取したデータを保持するメモリ7を有する。
なお、消費電力測定手段3において測定されたデータは、プログラムによって読出し可能となっている。
図4は、本発明の実施の形態になるプログラム内の積算電力カウンタによる消費電力サンプリングの処理フローを示す。
まず、ステップS21において、サンプリングプログラム10は、該プログラム内のサンプリング閾値12の閾値(すなわち、サンプリングレート)を設定する。
そして、ステップS22において、サンプリングプログラム10は、該プログラム内の積算電力カウンタ11をゼロに初期化し、カウンタ動作を開始する。
ステップS23において、サンプリングプログラム10は、タイマー8による既存のタイマー割込み等を利用し、一定時間毎にサンプリングプログラム10を実行する。
つぎに、ステップS24において、サンプリングプログラム10は、実行される度にCPUの消費電力測定を行い、ステップS25において、その測定値を積算電力カウンタ11に積算していく。
さらに続けて、ステップS26において、サンプリングプログラム10は、積算後の積算電力カウンタ11のカウンタ値とサンプリング閾値12に設定された閾値とを比較し、カウンタ値が閾値を越えた場合に、ステップS27において、サンプリングプログラム10は、プロファイル分析に必要な情報として命令アドレスやプロセスID等の情報をサンプリング(採取)する。
そして、ステップS28において、サンプリングプログラム10は、積算電力カウンタ11をゼロクリアし、再びカウンタ動作を開始させる。さらに、ステップS29において、予め設定しておいた所定の測定時間が経過したかどうかを判定し、まだ測定時間が残っている場合には、ステップS23以降の処理を繰り返す。
図5は、本発明の実施の形態になる消費電力ベースのサンプリングによって抽出されるプログラムデータの例を示す。本例は、消費電力ベースのサンプリングの結果について、横軸に時間、縦軸に消費電力をとってグラフ化したものである。本発明によって、実測消費電力量(電力×時間)に基づく高確度・高精度なプログラムのプロファイルが可能となる。従来タイムベースでは正しく抽出されなかった大きな消費電力の掛かる「プログラムB」を抽出可能とする。
(実施例3)
以下の実施例では、実施例1の延長として、測定遅延がある場合の消費電力データのサンプリングの例を示す。ここでは、図1に示したように、電力測定がCPU外部で行われる場合を扱う。
図6は、消費電力サンプリング時の遅延による影響を説明する図である。
積算電力カウンタがオーバーフローしてから、その割込みをCPUに挙げ、サンプリングプログラムに制御が移行するまで、サンプリングとしては無視できない時間、即ち「遅延」の生じることが考えられる。その場合、サンプリングプログラムで、実際にサンプリングするタイミングは既にズレてしまっており、誤った情報を採取してしまう可能性がある。
図6に示すように、消費電力測定手段によって所定時間毎に測定された消費電力の測定値が積算電力カウンタに積算され、積算電力カウンタがオーバーフローしたらCPUへ割込みを挙げ、所定のサンプリングプログラムに実行制御を移行する。
採取される消費電力データには、タイマーによるタイムスタンプ、プロセスID、アドレスなどの情報が紐付けられる。
例えば、遅延が0.4msあったとした場合、サンプリングすべき本当の時刻(T)において採取すべきプログラム(正解)はプログラムBであるが、電力測定に遅延があるためにプログラムAに関する情報を採取してしまう懸念がある。
図7は、本発明の実施の形態になるバッファリング手段による消費電力サンプリング時の遅延補正の構成例を示す。本例では、消費電力に基づいたサンプリング方法において、上述した「電力測定の遅延問題」を解消する手法を説明する。
計算機装置1は、必要な情報をサイクリックに記録するバッファリング手段20とその記録先となるリングバッファ200を備え、採取トリガー発生毎に、電力測定後のプロファイル分析に必要な情報(例えば、仮想マシンID(識別子)、プロセスID、命令アドレス(分岐元、分岐先)等)と、タイムスタンプカウンタ(TSCと略す)によるタイムスタンプ(カウンタ値)とを採取し、トレース情報21としてリングバッファ200に記録する。
本実施例では、積算電力カウンタのオーバーフロー割込みによる消費電力サンプリングにおいて、プロファイル分析に必要なトレース情報21を、バックグラウンドでトリガー発生毎にリングバッファ200へ記録しておき、オーバーフロー割込み毎に、サンプリング時のタイムスタンプから遅延補正した時刻とリングバッファ200に保存されたデータのタイムスタンプとを突合せ、該当する適正な情報を抽出して採取データ格納領域100に記録することを特徴としている。
なお、電力積算カウンタからのオーバーフロー割込み時のサンプリングには、以下の2通りの手法が考えられる。
第一の手法は、割込み時にリングバッファから該当プログラムの割り出しに必要な情報だけを記録するもので、オーバーフロー割込みのタイミングにおいて、TSCとリングバッファ200のタイムスタンプのデータからオーバーフロー要因となった該当プログラムを割り出す手法である。
第二の手法は、割込みのタイミングでは、TSCとリングバッファ200を丸ごと回収して記録しておき、測定後のプロファイル分析時に、オーバーフロー要因となった該当プログラムを割り出す手法である。第二の手法は、第一の手法に比べて採取データ量が膨大になるというデメリットがある反面、サンプリングプログラムによる測定中の負荷が軽減できるというメリットがある。
このオーバーフロー要因となる該当プログラムは、該測定環境での遅延時間を予め補正値として把握しておき、リングバッファ200上のタイムスタンプをサンプリング時のタイムスタンプを補正した時刻で突き合わせることにより求めることができる。
すなわち、本発明は、プロファイルに用いるべき正しい該当プログラムの情報をリングバッファ上の採取データとタイムスタンプから求めることを特徴とする。
図8は、本発明に適用するリングバッファの仕組みを説明する図である。(a)は、バッファがフルになると停止する通常バッファ例を示し、(b)は、循環してデータを上書き記録し続けるリングバッファの例(この場合、古いデータから順に消される)を示している。
実施例は、タイムスタンプ、プロセスID、および命令アドレスからなるトレース情報21を1ブロックとする8ブロック構成のバッファ例を示している。(a)の通常バッファでは、全ブロックが充満すると停止状態となるが、(b)のリングバッファ200では、ブロック#1からブロック#8まで、充満されたらサイクリックにデータが上書きされる。したがって、前回のデータがブロック#3(Top)であれば、次のブロック#4に最新データが記録されることとなる。
上記リングバッファ200に記録されるデータは、バッファリング手段20によって、オーバーフロー割込みとは別にバックグラウンドで自動的にサンプリングされたものである。例えば、タイムスタンプ、プロセスID、およびアドレスからなるトレース情報21が、分岐命令、仮想マシンの切替、プロセスの切替などのイベントをトリガーとする採取トリガー22毎に、1ブロックとしてリングバッファ200に記録される(分岐発生をトリガーとする場合は、命令アドレスとして、分岐元と分岐先の両アドレスを記録することが考えられる)。
図9は、本発明の実施の形態になる遅延補正を加えた時刻突き合わせによるデータ抽出を説明する図である。
プロファイル分析に用いるデータ抽出のプロセスを以下に示す。
(1)電力積算カウンタ4からのオーバーフロー割込みによる仮のサンプリングとして、タイムスタンプ4と遅延時間(0.4ms)よりサンプリングすべき本来の時刻(T)を求める。
(2)リングバッファ200に記録されているトレース情報21であるタイムスタンプと時刻(T)を突合わせる。
(3)その結果、サンプリングすべきプログラムの箇所は、「命令アドレス1」〜「命令アドレス2」の間ということが分かり、その間の任意のアドレス(または仮想マシンIDやプロセスIDなど)のサンプリングデータとしてプログラムBが採取され、正しい消費電力のプロファイルが可能となる。
(実施例4)
CPUがマルチコアで構成され、かつ電力測定がチップ全体を測定対象としている場合、上記実施例1〜3だけでは、コア毎の消費電力プロファイルを求めることはできない。そこで、マルチコアCPUの場合でも、「どのコアの、どのプログラムが電力を多く消費しているか」まで判断できるプロファイルの手法が求められる。
これまで、実施例1〜3では、CPUチップ単位での電力測定について述べてきたが、本実施例では、測定CPUがマルチコア構成となっている場合に、コア単位での消費電力プロファイルを実現する手法について述べる。
なお、以下の説明で使用する「コア電力指標」は、消費電力と比例関係にあるCPU上の指標値であり、かつコア単位で容易に測定可能なもので、例えば、「温度」、「CPU使用率」、「実行命令数」などが相当する。本例では、「コア電力指標」は「実行命令数」を例として説明する。この「コア電力指標」の測定は、図示していないが、例えば、性能イベントカウンタ等を各コアに備えることによって測定可能である。また、実施例では、コア数を4個の場合を取り上げているが、本発明はこれに限定されるものではない。
図10には、CPUコア毎の分配積算による測定電力値採取の構成例(その1)を示す。
本実施例の計算機装置1は、マルチコアCPU60(#0〜#3の4コアの場合を例としている)、コア毎に用意した各コアに対応する積算電力カウンタ40(#0〜#3の各コア用の積算電力カウンタ)、および消費電力測定手段3によって実行される定期的な電力測定毎に、その測定結果についてコア電力指標を基に分配積算する分配器30を備え、いずれかのコア毎の積算電力カウンタ(#1〜#4)がオーバーフローしたら、オーバーフロー割込み手段5がマルチコアCPU60に割込みを入れ、サンプリングプログラム(採取手段)10によって該当カウンタに対応するコアの動作プログラム情報が採取され、割込み時の採取情報101として当該コアのプログラム情報(命令アドレスとプロセスIDを含むとトレース情報及びコア電力指標)がメモリ7の採取データ格納領域100に格納される。
測定電力値のコア単位での分配積算のプロセスは以下の通りである。
(1)消費電力測定手段3は、定期的な電力測定時に、マルチコアCPU60の各コアの「コア電力指標」として実行命令数を測定する。
(2)つぎに、分配器30は、その時のコア間の実行命令数に比例して測定電力値を傾斜配分し、各配分値を対応するコア毎の積算電力カウンタ40に分配積算していく。
(3)その結果、各積算電力カウンタ40からのオーバーフロー割込みは、バラバラに発生し、例えば、コア#2用の積算電力カウンタ40からの割込みだった場合は、コア#2上の動作プログラム情報のみサンプリング(採取)する。
また、図11には、CPUコア毎の分配積算による測定電力値採取の構成例(その2)を示す。本実施例は、図10の変形例で、定期的な電力測定のための第一段目のカウンタとして、積算電力カウンタ(第1の積算電力カウンタ)4を、消費電力測定手段3と分配器30の間に設けたことを特徴している。
第一段目の積算電力カウンタ4がオーバーフローしたときに、分配器30は、その積算分の電力値をCPUコア毎に対応させて第二段目のカウンタとして用意した積算電力カウンタ40(#0〜#3)に、電力測定結果を「コア電力指標」に応じて分配積算する。そして、コア毎の積算電力カウンタ40のいずれかのカウンタがオーバーフローした場合、該当するカウンタに対応するコアの動作プログラム情報だけが採取される。
以上述べてきたように、図10の実施例では、消電力測定手段3からの電力測定値が、直接、コア毎の積算電力カウンタ40に分配されるため、ある程度の測定周期が必要とされるのに対し、図11の実施例では、測定周期の短い場合への対応が可能となり、分解能を上げることが可能となる。
さらに、図12には、消費電力ベースサンプリングのコア単位での重み付けによる消費電力採取の構成例を示している。
(1)オーバーフロー割込み時に、サンプリングプログラム(採取手段)10は、各コア上の動作プログラムの情報とともに、各コアの「コア電力指標」として、例えば、実行命令数を採取し、毎回保存しておく。
(2)そして、サンプリング終了後の解析処理時に、コア間での実行命令数の比によるコア毎の重み付けを集計し、コア毎のプロファイル結果を出力する。
または、(1)の割込み処理において、オーバーフロー割込み毎に、実行命令数の比に基づいて、コア毎に重み付けカウントも採取情報として付加しておき(実行命令数は保存せずにその場で参照する)、(2)の解析処理時において、その重み付け用のカウント値にしたがってコア毎に重み付け集計を行い、コア単位のプロファイル分析を行うこととしても良い。
以上、実施例4により、測定CPUがマルチコア構成の場合でも、コア単位で消費電力ベースのサンプリングが可能となる。
本発明の利用分野としては、計算機の設計、システムの構築・管理、プログラミングに関する分野が挙げられる。とくに、「省電力化」を要件とする「計算機設計やシステム構築・管理やプログラム最適化」のための基礎データ採取において利用される。
1 計算機装置
2 電力監視設定レジスタ
3 消費電力測定手段
4 積算電力カウンタ
5 オーバーフロー割込み手段
6 CPUコア
7 メモリ
8 タイマー
10 サンプリングプログラム
11 積算電力カウンタ
12 サンプリング閾値
20 バッファリング手段
21 トレース情報
22 採取トリガー
30 分配器
40 コア毎の専用積算電力カウンタ
60 マルチコアCPU
100 採取データ格納領域
101 割込み時の採取情報
200 リングバッファ

Claims (9)

  1. マルチコアのCPUで構成された計算機装置であって、
    任意の一定時間毎に消費電力の測定を行う消費電力測定手段と、
    前記CPUの各コアに対応したコア毎の前記消費電力の測定値を積算していく積算電力カウンタと、
    前記消費電力と比例関係にありコア単位で測定可能なコア電力指標を参照し、該コア電力指標に基づいて前記消費電力の測定値を前記コア毎の積算電力カウンタに分配する分配器と、
    前記コア毎の積算電力カウンタのいずれかがオーバーフローしたときに前記CPUに割込みをかける割込み手段と、
    前記割込みがあると、割込み発生時の命令アドレスとプロセスIDを含むトレース情報を採取する採取手段と、
    を有することを特徴とする計算機装置。
  2. 前記積算電力カウンタは、オーバーフロー後、積算の停止および再開を行うことを特徴とする請求項1に記載の計算機装置。
  3. 前記計算機装置は、リングバッファを備え、採取トリガー発生毎にプロファイルに必要なトレース情報を前記リングバッファへサイクリックに記録しておき、前記電力積算カウンタによるオーバーフロー割込み時に、その時のタイムスタンプから遅延補正した時刻と前記リングバッファに保存された各データのタイムスタンプを突き合わせることによって前記トレース情報を抽出することを特徴とする請求項1に記載の計算機装置。
  4. 前記計算機装置は、前記電力積算カウンタによるオーバーフロー割込み時に、一旦前記リングバッファに蓄積したデータを回収し、測定後の分析時に、記録されたタイムスタンプに基づいて前記トレース情報を求めて分析することを特徴とする請求項1に記載の計算機装置。
  5. 前記分配器の前段に前記消費電力の測定値を積算する第1の積算電力カウンタを設け、前記第1の積算電力カウンタがオーバーフローしたときに、前記分配器は、その積算値を前記コア電力指標に基づいて前記コア毎の積算カウンタに分配することを特徴とする請求項1に記載の計算機装置。
  6. 前記採取手段は、前記CPUの全コアのトレース情報を採取するとともに、前記消費電力と比例関係にありコア単位で測定可能なコア電力指標を採取することを特徴とする請求項1に記載の計算機装置。
  7. マルチコアのCPUで構成された計算機装置であって、
    任意の一定時間毎に消費電力の測定を行う消費電力測定手段と、
    前記CPUの各コアに対応したコア毎の前記消費電力の測定値を積算していく積算電力カウンタと、
    前記消費電力と比例関係にありコア単位で測定可能なコア電力指標を参照し、該コア電力指標に基づいて前記消費電力の測定値を前記コア毎の積算電力カウンタに分配する分配器と、
    前記積算電力カウンタが閾値を超えると、前記積算電力カウンタをクリアし、命令アドレスとプロセスIDを含むトレース情報を採取する採取手段と、
    を有することを特徴とする計算機装置。
  8. マルチコアのCPUで構成された計算機装置における消費電力のサンプリング方法であって、
    任意の一定時間毎に消費電力の測定を行う消費電力測定ステップと、
    前記CPUの各コアに対応したコア毎の前記消費電力の測定値を積算していく積算ステップと、
    前記消費電力と比例関係にありコア単位で測定可能なコア電力指標を参照し、該コア電力指標に基づいて前記消費電力の測定値を前記コア毎の積算電力カウンタに分配器によって分配する分配ステップと、
    前記コア毎の積算電力カウンタのいずれかがオーバーフローしたときに前記CPUに割込みをかける割込みステップと、
    前記割込みがあると、割込み発生時の命令アドレスとプロセスIDを含むトレース情報を採取する採取ステップと、
    を有することを特徴とする消費電力のサンプリング方法。
  9. マルチコアのCPUで構成された計算機装置における消費電力のサンプリング方法であって、
    任意の一定時間毎に消費電力の測定を行う消費電力測定ステップと、
    前記CPUの各コアに対応したコア毎の前記消費電力の測定値を積算電力カウンタに積算していく積算ステップと、
    前記消費電力と比例関係にありコア単位で測定可能なコア電力指標を参照し、該コア電力指標に基づいて前記消費電力の測定値を前記コア毎の積算電力カウンタに分配器によって分配する分配ステップと、
    前記積算電力カウンタが閾値を超えると、前記積算電力カウンタをクリアし、命令アドレスとプロセスIDを含むトレース情報を採取する採取ステップと、
    を有することを特徴とする消費電力のサンプリング方法。
JP2009187169A 2008-08-22 2009-08-12 計算機装置および消費電力のサンプリング方法 Expired - Fee Related JP5299161B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009187169A JP5299161B2 (ja) 2008-08-22 2009-08-12 計算機装置および消費電力のサンプリング方法
US12/545,447 US8645718B2 (en) 2008-08-22 2009-08-21 Apparatus and method for sampling power consumption

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2008213545 2008-08-22
JP2008213545 2008-08-22
JP2009013858 2009-01-26
JP2009013858 2009-01-26
JP2009187169A JP5299161B2 (ja) 2008-08-22 2009-08-12 計算機装置および消費電力のサンプリング方法

Publications (2)

Publication Number Publication Date
JP2010191937A JP2010191937A (ja) 2010-09-02
JP5299161B2 true JP5299161B2 (ja) 2013-09-25

Family

ID=41727049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009187169A Expired - Fee Related JP5299161B2 (ja) 2008-08-22 2009-08-12 計算機装置および消費電力のサンプリング方法

Country Status (2)

Country Link
US (1) US8645718B2 (ja)
JP (1) JP5299161B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012001779A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム
US20130073232A1 (en) * 2011-09-15 2013-03-21 Electronic Systems Protection, Inc. Source Power Anomaly and Load Power Consumption Monitoring and Analysis
JP5725213B2 (ja) 2012-01-31 2015-05-27 日本電気株式会社 情報処理装置、及び情報処理装置の使用電力算出方法
JP5835465B2 (ja) 2012-03-30 2015-12-24 富士通株式会社 情報処理装置、制御方法、及びプログラム
US9495169B2 (en) * 2012-04-18 2016-11-15 Freescale Semiconductor, Inc. Predicate trace compression
US9348391B1 (en) * 2012-06-28 2016-05-24 Amazon Technologies, Inc. Managing resource power states in shared environments
US9292060B1 (en) * 2012-06-28 2016-03-22 Amazon Technologies, Inc. Allowing clients to limited control on power consumed by the cloud while executing the client's tasks
US9547353B1 (en) 2012-09-19 2017-01-17 Amazon Technologies, Inc. Processor energy monitoring and dynamic adjustment
US8984308B2 (en) * 2012-12-03 2015-03-17 Qualcomm Incorporated System and method of adaptive voltage scaling
JP6119331B2 (ja) * 2013-03-15 2017-04-26 株式会社リコー 情報処理システム、情報送信方法およびプログラム
JP6544013B2 (ja) * 2015-04-16 2019-07-17 富士通株式会社 情報処理装置、消費電力計測プログラムおよび消費電力計測方法
JP6544054B2 (ja) * 2015-06-02 2019-07-17 富士通株式会社 情報処理装置、実行情報記録プログラムおよび実行情報記録方法
JP6646201B2 (ja) * 2015-07-27 2020-02-14 富士通株式会社 情報処理装置、電力推定プログラム及び電力推定方法
JP2017167930A (ja) * 2016-03-17 2017-09-21 富士通株式会社 情報処理装置、電力測定方法及び電力測定プログラム
JP6790913B2 (ja) * 2017-02-24 2020-11-25 富士通株式会社 情報処理装置、情報処理方法及びプログラム
KR20200084987A (ko) 2019-01-03 2020-07-14 삼성전자주식회사 전력을 제어하기 위한 전자 회로
JP2023132295A (ja) * 2022-03-10 2023-09-22 富士通株式会社 電力制御プログラム、情報処理装置および電力制御方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01230136A (ja) * 1988-03-10 1989-09-13 Nec Corp 暴走防止回路
JPH07168726A (ja) 1993-12-16 1995-07-04 Matsushita Electric Ind Co Ltd 電子計算機及びマルチプロセスオペレーティングシステムのスケジューリング方法
JP3351725B2 (ja) * 1997-01-08 2002-12-03 株式会社東芝 パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体
JP2000305670A (ja) * 1999-04-19 2000-11-02 Toshiba Corp 省電力制御装置、省電力制御方法及び情報処理装置
JP2001034499A (ja) * 1999-07-23 2001-02-09 Nec Ic Microcomput Syst Ltd インサーキットエミュレータ
US7149636B2 (en) * 2002-04-04 2006-12-12 Texas Instruments Incorporated Method and apparatus for non-obtrusive power profiling
EP1351148A3 (en) 2002-04-04 2008-05-07 Texas Instruments Incorporated Power profiling system and method for correlating runtime information
US7290246B2 (en) * 2002-04-04 2007-10-30 Texas Instruments Incorporated Power profiling system and method for correlating runtime information
US7337433B2 (en) * 2002-04-04 2008-02-26 Texas Instruments Incorporated System and method for power profiling of tasks
US7243243B2 (en) * 2002-08-29 2007-07-10 Intel Corporatio Apparatus and method for measuring and controlling power consumption of a computer system
US20040268159A1 (en) 2003-06-30 2004-12-30 Microsoft Corporation Power profiling
JP4469576B2 (ja) * 2003-08-19 2010-05-26 株式会社東芝 トレースデータ処理装置、トレースデータ処理方法およびトレースデータ処理プログラム
US7529947B2 (en) * 2004-03-31 2009-05-05 Marvell International Ltd. Determining power consumption of an application
JP4412105B2 (ja) * 2004-08-09 2010-02-10 ソニー株式会社 光導波装置
US7430672B2 (en) * 2004-10-27 2008-09-30 Intel Corporation Method and apparatus to monitor power consumption of processor
US7613935B2 (en) * 2005-07-29 2009-11-03 Hewlett-Packard Development Company, L.P. Power monitoring for processor module
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
US7721128B2 (en) * 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
CN100517176C (zh) 2006-06-21 2009-07-22 国际商业机器公司 实现热调节逻辑的数据处理系统和方法
US7970566B2 (en) * 2007-11-27 2011-06-28 Microsoft Corporation Correlating power consumption with CPU activity

Also Published As

Publication number Publication date
US20100058079A1 (en) 2010-03-04
US8645718B2 (en) 2014-02-04
JP2010191937A (ja) 2010-09-02

Similar Documents

Publication Publication Date Title
JP5299161B2 (ja) 計算機装置および消費電力のサンプリング方法
US7222030B2 (en) Method and apparatus for profiling power performance of software applications
CN100407147C (zh) 为记录事件提供前置与后置处理程序的方法
EP2239664B1 (en) Context switch sampling
US10140216B2 (en) Measuring address translation latency
US9032375B2 (en) Performance bottleneck identification tool
CN100504808C (zh) 一种测量多任务操作系统任务cpu占用率的方法
CN102722434A (zh) 一种针对Linux进程调度的性能测试方法和工具
CN106293881B (zh) 一种基于非一致性i/o访问构架的性能监控器及其监控方法
JP2009223451A (ja) 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置
CN109690497B (zh) 用于通过输入参数来区分函数性能的系统和方法
CN100501694C (zh) 处理器利用率的测量装置及方法
JP6790913B2 (ja) 情報処理装置、情報処理方法及びプログラム
US8141044B2 (en) Method and system for identifying sources of operating system jitter
CN101101565A (zh) 一种实时检测定位硬件复位原因的装置及其方法
US10114725B2 (en) Information processing apparatus, method, and computer readable medium
Çavdar et al. Quantifying the brown side of priority schedulers: Lessons from big clusters
CN107451038B (zh) 硬件事件采集方法、处理器和计算系统
US9195524B1 (en) Hardware support for performance analysis
US20140075417A1 (en) Method and Arrangement for Enabling Analysis of a Computer Program Execution
JP2003050721A (ja) 並列効率計算方法及び装置
US20150067661A1 (en) Software code profiling
US7971190B2 (en) Machine learning performance analysis tool
CN118312344A (en) Task time consumption detection method, medium, device and computing equipment
Kim et al. L4oprof: a performance-monitoring-unit-based software-profiling framework for the l4 microkernel

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130603

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees