JP4861270B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP4861270B2
JP4861270B2 JP2007212971A JP2007212971A JP4861270B2 JP 4861270 B2 JP4861270 B2 JP 4861270B2 JP 2007212971 A JP2007212971 A JP 2007212971A JP 2007212971 A JP2007212971 A JP 2007212971A JP 4861270 B2 JP4861270 B2 JP 4861270B2
Authority
JP
Japan
Prior art keywords
unit
arithmetic processing
counter information
performance
counter
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
JP2007212971A
Other languages
English (en)
Other versions
JP2009048373A (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 JP2007212971A priority Critical patent/JP4861270B2/ja
Publication of JP2009048373A publication Critical patent/JP2009048373A/ja
Application granted granted Critical
Publication of JP4861270B2 publication Critical patent/JP4861270B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

この発明は、複数のコアを有するプロセッサに関し、特に、構成を複雑化することなく、プログラムの性能を示す性能指標情報をリアルタイムで出力することができるプロセッサに関する。
最近のプロセッサは、該プロセッサ上で発生する各種イベントの発生回数をパフォーマンスカウンタと呼ばれるレジスタに記録するパフォーマンスアナライザ(イベントモニタ)と呼ばれる機能を備えている。プログラマー等は、かかるパフォーマンスカウンタを参照することで、プログラムのボトルネックとなっている部分を把握できるため、プログラムの最適化を図ることができる。
具体的には、性能測定対象のプログラムの実行が完了し、パフォーマンスカウンタに各種イベントの発生回数(以下、「カウンタ情報」という)が記憶されたならば、このパフォーマンスカウンタの内容を解析プログラムによって読み出し、読み出したカウンタ情報からプログラムの性能評価に関する情報を加工生成することになる。例えば、かかるパフォーマンスカウンタにキャッシュ参照数とキャッシュヒット数が記憶されている場合には、このキャッシュ参照数とキャッシュヒット数からキャッシュヒット率という性能指標情報を加工生成することができる。
このように、従来のパフォーマンスアナライザは、性能指標を加工生成する前提として性能測定対象のプログラムの実行が完了している必要があったが、これだとリアルタイム性に欠けるという問題がある。そこで、このリアルタイム性を確保するための従来技術が知られている。例えば、特許文献1には、性能測定対象のプログラムの実行中に、リアルタイムでカウンタ情報を出力することを可能にするため、プロセッサの外部にカウンタ情報の蓄積、加工および出力を行う機構を設ける技術が開示されている。
特開平5−94342号公報
しかしながら、上記特許文献1によれば、プロセッサとは別個にカウンタ情報の蓄積、加工および出力を行う機構を該プロセッサに隣接して設ける必要があるので、コストの上昇、プロセッサ周辺の配線の複雑化、発熱量の増加等を招くという問題がある。
また、この種の機構は、常時用いられる性質のものではなく、プログラムの開発段階でのみ用いられるものであり、プログラムの開発後の通常の運用時には不必要なものであるので、上記機構をプロセッサの外部に隣接して常駐させるのは現実的ではない。これらのことから、特殊な機構を設けることなく、リアルタイムで性能指標情報を加工生成するプロセッサをいかに実現するかが課題となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、構成を複雑化することなく、プログラムの性能を示す性能指標情報をリアルタイムで出力することができる演算処理装置及び演算処理装置の制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、複数の演算処理部を有するプロセッサにおいて、実行される命令群の性能を評価するためのイベントの発生を検出するイベント検出手段と、前記イベント検出手段において検出されたイベントの数をイベントの種別毎に記録するカウンタとを有する1つあるいは複数の第1の演算処理部と、前記カウンタに記録された値を前記命令群の性能を示す性能指標情報に加工処理する加工処理手段と、前記加工処理手段で加工処理された前記性能指標情報を出力する出力手段とを有する1つあるいは複数の第2の演算処理部とを備えたことを特徴とする。
この発明の態様によれば、複数の演算処理部を備えるプロセッサにおいて、演算処理部の1つあるいは複数を性能指標情報の加工と出力のために機能させることとしたので、専用の機構を設けることなく、性能測定対象のプログラムを実行しながら、性能指標情報をリアルタイムで出力することができる。
また、本発明の他の態様では、上記の発明の態様において、前記第1の演算処理部から書込可能で、かつ、前記第2の演算処理部から読み出し可能な記憶手段を備え、前記第1の演算処理部は、前記カウンタに記録された値を前記記憶手段に書き込む書込手段をさらに有し、前記第2の演算処理部は、前記記憶手段に書き込まれた情報を読み出し、前記加工手段に加工を行わせる情報収集手段をさらに有することを特徴とする。
この発明の態様によれば、カウンタ情報の受け渡しを、演算処理部によって共有されているキャッシュを介して行うこととしたので、カウンタ情報の受け渡しを行うための専用の経路を設ける必要がなく、プロセッサの構成の複雑化を回避することができる。
また、本発明の他の態様では、上記の発明の態様において、前記情報書込手段は、前記カウンタに記録された値を前記記憶手段に書き込んだ後、前記カウンタに記録された値をリセットさせることを特徴とする。
この発明の態様によれば、カウンタ情報を受け渡し用の領域に書き込んだ後、カウンタの値をリセットすることとしたので、カウンタの桁溢れを防止し、測定区間を設定することなく効率よくプログラムの性能測定を行うことができる。
また、本発明の他の態様では、上記の発明の態様において、前記情報書込手段は、前記カウンタに記録された値を書き込んだ前記記憶手段内の領域をリプレース禁止に設定することを特徴とする。
この発明の態様によれば、カウンタ情報の受け渡しのために使用される領域のリプレースを禁止することとしたので、その領域を介してカウンタ情報の受け渡しを行うことにより、キャッシュヒット率等の性能測定結果が不適切な値となることを防止することができる。
また、本発明の他の態様では、上記の発明の態様において、前記第1の演算処理部は、前記カウンタに記録される値の増加率を監視し、増加率が大きいほど、前記情報書込手段と前記情報収集手段の間での情報のやりとりが短い間隔で実行されるように制御するタイミング制御手段をさらに含むことを特徴とする。
この発明の態様によれば、増加率に応じて、カウンタ情報を受け渡すタイミングを制御することとしたので、カウンタの桁溢れを防止しつつ、カウンタ情報を受け渡す頻度をできるだけ少なくし、カウンタ情報の受け渡しによる負荷の増大を最小限に抑えることができる。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明によれば、装置の構成を複雑化することなく、性能測定対象のプログラムを実行しながら、性能指標情報をリアルタイムで出力することができるという効果を奏する。
以下に添付図面を参照して、本発明に係る演算処理装置及び演算処理装置の制御方法の好適な実施の形態を詳細に説明する。
まず、実施例1に係るプロセッサ100を含む情報処理装置10の構成について説明する。図1は、実施例1に係るプロセッサ100を含む情報処理装置10の構成を示すブロック図である。同図に示すように、情報処理装置10は、プロセッサ100と、メモリ101と、ハードディスク102と、ネットワークインターフェース(以下、「ネットワークI/F」という)103と、表示部104と、入力部105とをバス106で接続して構成されている。
プロセッサ100は、各種演算処理を実行する集積回路であり、コア110a〜110cと、コア120とを有する。メモリ101は、プロセッサ100によって実行されるプログラムの命令列やデータが展開される一時記憶デバイスであり、ハードディスク102は、プロセッサ100によって実行されるプログラムの命令列やデータを記憶する不揮発性の記憶デバイスである。ネットワークI/F103は、ネットワーク通信を実現するためのインターフェース装置である。表示部104は、各種情報を表示する表示デバイスであり、例えば、液晶表示装置等からなる。入力部105は、操作指示や情報の入力を受け付ける入力デバイスであり、例えば、キーボード等からなる。
プロセッサ100が有するコア110a〜110cおよびコア120は、それぞれが、独立して演算処理を実行する演算処理部である。通常、コア110a〜110cおよびコア120は、いずれも同様に機能し、プロセッサ100は、4つの処理を並列的に実行する。そして、プログラムの性能測定が必要になった場合には、コア110a〜110cは、測定対象のプログラムを実行しながら、予め指定されたイベントの発生数をカウンタ情報として記録し、コア120は、コア110a〜110cによって記録されたカウンタ情報を収集し、それを加工して表示部104等に出力する。
このように、プロセッサ100が有する複数のコアの1つであるコア120を用いてカウンタ情報の収集、加工および出力を行うことにより、測定対象のプログラムを実行しながらカウンタ情報をリアルタイムで出力することが可能になる。また、通常はコア110a〜110cと同様にプログラムの実行を行うコア120を、プログラムの性能測定が必要になった場合のみ、カウンタ情報の収集、加工および出力のために使用するので、カウンタ情報のリアルタイム出力を実現するために、装置の複雑化やコストの増大が生じることはない。
なお、図1では、プロセッサ100が4つのコアを有する例を示したが、プロセッサ100は、コア120以外に、測定対象のプログラムを実行するためのコアを少なくとも1つ有していれば、いくつのコアを有していても構わない。また、プロセッサ100は、コア120以外に、カウンタ情報の収集、加工および出力を行うコアを有していても構わない。また、コア120がカウンタ情報を出力する先は、ハードディスク102であってもよいし、ネットワークI/F103を介して情報処理装置10とネットワーク接続された他の情報処理装置であってもよい。
次に、図1に示したプロセッサ100の構成についてさらに詳細に説明する。図2は、実施例1に係るプロセッサ100の構成を示すブロック図である。なお、同図では、説明を簡単にするため、コア110bおよび110cの図示を省略しているが、コア110bおよび110cは、コア110aと同様の構成を有する。また、同図では、パフォーマンスアナライザ機能に関連する構成のみを図示しており、以下の説明では、コア110aおよびコア120の各部について、パフォーマンスアナライザ機能を実現するための各構成要素として説明を行うこととする。
図2に示すように、コア110aは、命令実行部111と、イベント検出部112と、カウンタ制御部113と、パフォーマンスカウンタ114a〜114nとを有する。命令実行部111は、測定対象のプログラムに含まれる命令列を実行する処理部である。命令実行部111が実行する命令列には、例えば、算術演算命令、分岐命令、入出力命令等が含まれる。
イベント検出部112は、予め指令されたイベントの発生を検出する処理部である。ここでいうイベントとは、命令実行部111での命令列の実行に関連して発生する事象のうち、命令列(プログラム)の性能(プロセッサ100に対する命令列の最適化の程度)を示す指標となるものであり、例えば、クロック信号の受信、命令の実行完了、キャッシュの参照、キャッシュのヒット等である。
カウンタ制御部113は、イベント検出部112において検出されたイベントの発生回数をパフォーマンスカウンタ114a〜114nに記録する処理部である。どのイベントを検出し、その発生回数をパフォーマンスカウンタ114a〜114nのいずれに記録するかについては、測定対象のプログラムの実行前にドライバプログラム等によって指定され、イベント検出部112およびカウンタ制御部113は、その指定に従って動作する。
また、カウンタ制御部113は、コア120からカウンタ情報の転送要求を受けると、パフォーマンスカウンタ114a〜114nに記録されているカウンタ情報をコア120へ転送し、その後、パフォーマンスカウンタ114a〜114nをリセットし、それらの内容を0に戻す。このように、カウンタ情報をコア120へ転送した後、パフォーマンスカウンタ114a〜114nをリセットすることにより、パフォーマンスカウンタ114a〜114nの桁溢れを防ぐことができる。
パフォーマンスカウンタ114a〜114nに記録できるカウンタ情報の大きさは有限であり、従来は、パフォーマンスカウンタ114a〜114nの桁溢れを防ぐため、測定対象のプログラムの所定区間(例えば、ある関数の最初の命令から最後の命令まで)のみを測定区間とし、その他の区間ではカウンタ情報の記録を行わないようにする対処が取られてきた。そのため、測定区間以外の区間の性能測定が必要になった場合は、測定区間を再設定した後、測定対象のプログラムを再実行する必要があり、非常に作業効率が悪かった。
本実施例に係るプロセッサ100では、適正な間隔でパフォーマンスカウンタ114a〜114nをリセットすることにより、パフォーマンスカウンタ114a〜114nの桁溢れを防止することができるため、プログラムの性能測定を測定区間に限定する必要がなく、効率よく性能測定作業を進めることができる。
パフォーマンスカウンタ114a〜114nは、イベント検出部112において検出されたイベントの数をイベントの種別毎に記録するカウンタである。なお、パフォーマンスカウンタ114a〜114nは、性能測定のために専用に設けられたものである必要はなく、例えば、汎用レジスタの一部をパフォーマンスカウンタ114a〜114nとして活用することとしてもよい。
コア120は、コア110a〜110cにおいて記録されたカウンタ情報を収集し、それを加工して出力する処理を行うコアであり、カウンタ情報収集部121と、タイマ122と、カウンタ情報加工部123と、命令実行部124と、カウンタ情報出力部125とを有する。
カウンタ情報収集部121は、コア110a〜110cからカウンタ情報を収集する処理部である。具体的には、カウンタ情報収集部121は、タイマ122から定期的に信号を受信し、信号を受信すると、コア110a〜110cのカウンタ制御部113に対して転送要求を送信する。そして、その応答として、コア110a〜110cのカウンタ制御部113からカウンタ情報を受信する。タイマ122は、一定の期間ごとにカウンタ情報収集部121に信号を送信する計時手段である。
カウンタ情報加工部123は、カウンタ情報収集部121によって収集されたカウンタ情報に必要な加工を施し、カウンタ情報出力部125へ引き渡す処理部である。例えば、カウンタ情報加工部123は、
クロック数(クロック信号の受信数)/命令実行数(命令の完了数)
を算出することにより、CPI(Cycles Per Instruction)を生成し、
キャッシュヒット数/キャッシュ参照数
を算出することにより、キャッシュヒット率を生成する。なお、カウンタ情報加工部123は、加工の必要がない情報については、そのままカウンタ情報出力部125へ引き渡す。
命令実行部124は、カウンタ情報加工部123がカウンタ情報を加工するために必要な各種演算処理を実行する回路である。命令実行部124は、命令実行部111と同様の構成を有し、プログラムの性能測定が行われるとき以外は、命令実行部111と同様に、プログラムに含まれる命令列の実行を行う。
カウンタ情報出力部125は、カウンタ情報加工部123から引き渡されたカウンタ情報を表示部104等に出力する処理部である。なお、カウンタ情報を出力する方式については、特に限定しないが、例えば、所定のAPI(Application Program Interface)やコマンドを発行することにより、カウンタ情報を表示部104に文字やグラフとして出力することができる。また、カウンタ情報を表示部104に出力する代わりに、ハードディスク102に記録することとしてもよいし、ネットワークI/F103を介して他の情報処理装置へ送信することとしてもよい。
次に、図2に示したコア110aおよびコア120の処理手順について説明する。図3は、測定対象のプログラムを実行するコアであるコア110aの測定処理手順を示すフローチャートである。同図に示すように、コア110aは、まず、指定された内容に従って、どのイベントを検出し、検出したイベント数をパフォーマンスカウンタ114a〜114nのいずれに記録するかを初期設定する(ステップS101)。なお、この指定は、例えば、プログラムの性能測定前に、ユーザがドライバプログラムを設定することで行われる。
そして、命令実行部111が、測定対象のプログラムに含まれる命令を実行し(ステップS102)、予め指定されたイベントが発生すると、イベント検出部112がそれらを検出する(ステップS103)。そして、カウンタ制御部113が、パフォーマンスカウンタ114a〜114nのうち、検出されたイベントに対応するカウンタを更新してイベントの発生数をカウンタ情報として記録する(ステップS104)。
ここで、コア120からカウンタ情報の転送要求があれば(ステップS105肯定)、カウンタ制御部113が、パフォーマンスカウンタ114a〜114nに記録されているカウンタ情報をコア120へ転送し(ステップS106)、その後、パフォーマンスカウンタ114a〜114nをリセットして、それらの内容を0に戻す(ステップS107)。一方、コア120からカウンタ情報の転送要求がなければ(ステップS105否定)、カウンタ情報の転送およびパフォーマンスカウンタ114a〜114nのリセットは行われない。
そして、測定対象のプログラムの実行が完了していなければ(ステップS108否定)、コア110aは、ステップS102以降の処理手順を再実行し、測定対象のプログラムの実行が完了していれば(ステップS108肯定)、処理手順を終了させる。
図4は、カウンタ情報を出力するコアであるコア120の出力処理手順を示すフローチャートである。同図に示すように、コア120は、まず、指定された内容に従って、カウンタ情報をどのように加工するかを初期設定する(ステップS201)。なお、この指定は、例えば、プログラムの性能測定前に、ユーザがドライバプログラムを設定することで行われる。そして、カウンタ情報収集部121は、タイマ122からの通知を待ち受け、所定時間が経過してタイマ122からの通知を受信すると(ステップS202)、コア110a〜110cに対してカウンタ情報の転送要求を送信する(ステップS203)。
そして、カウンタ情報収集部121が、カウンタ情報を受信すると(ステップS204)、カウンタ情報加工部123が、必要な加工をカウンタ情報に加え(ステップS205)、カウンタ情報出力部125が、カウンタ情報を出力する(ステップS206)。ここで、処理の実行完了指示があれば(ステップS207肯定)、コア120は、処理手順を終了させ、さもなければ(ステップS207否定)、ステップS202以降の処理手順を再実行する。
なお、上記実施例では、コア120にタイマ122を設け、コア120の側でカウンタ情報の受け渡しのタイミングを制御することとしたが、コア110a〜110cにタイマ122を設け、コア110a〜110cの側でカウンタ情報の受け渡しのタイミングを制御することとしてもよい。
上述してきたように、本実施例1では、複数のコアを備えるプロセッサにおいて、コアの1つをカウンタ情報の加工と出力のために機能させることとしたので、専用の機構を設けることなく、性能の測定対象のプログラムを実行しながら、カウンタ情報をリアルタイムで出力することができる。
また、本実施例1では、カウンタ情報を記録するコアから、カウンタ情報の加工と出力を行うコアへカウンタ情報を転送するたびに、カウンタ情報を記憶するカウンタをリセットすることとしたので、カウンタの桁溢れを防止し、もって、測定区間を設定することなく効率よくプログラムの性能測定を行うことができる。
実施例1では、カウンタ情報を記録するコアと、カウンタ情報の加工と出力を行うコアの間で、カウンタ情報を直接転送する例を示したが、本実施例2では、プロセッサ上のキャッシュを介してカウンタ情報を転送する例を示す。なお、以下の説明では、既に説明した部分と同様の部分には、既に説明した部分と同一の符号を付し、詳細な説明を省略することとする。
図5は、実施例2に係るプロセッサ200を含む情報処理装置20の構成を示すブロック図である。同図に示すように、情報処理装置20は、プロセッサ200と、メモリ101と、ハードディスク102と、ネットワークI/F103と、表示部104と、入力部105とをバス106で接続して構成されている。
プロセッサ200は、各種演算処理を実行する集積回路であり、コア210a〜210cと、コア220と、キャッシュ230とを有する。コア210a〜210cおよびコア220は、それぞれが、独立して演算処理を実行する演算処理部である。キャッシュ230は、コア210a〜210cおよびコア220によって共有される記憶領域である。なお、キャッシュ230は、いわゆる1次キャッシュであっても、2次キャッシュであってもよいが、少なくとも、コア210a〜210cから書き込みが可能であり、コア220から参照が可能である必要がある。
通常、コア210a〜210cおよびコア220は、いずれも同様に機能し、プロセッサ200は、4つの処理を並列的に実行する。そして、プログラムの性能測定が必要になった場合には、コア210a〜210cは、測定対象のプログラムを実行しながら、予め指定されたイベントの発生数をカウンタ情報として記録し、コア220は、コア210a〜210cによって記録されたカウンタ情報を収集し、それを加工して表示部104等に出力する。
コア210a〜210cとコア220の間でのカウンタ情報の受け渡しは、キャッシュ230を介して行われる。このように、コア210a〜210cおよびコア220によって共有されるキャッシュ230を介してカウンタ情報の受け渡しを行うことにより、コア210a〜210cとコア220の間にデータを伝送するための経路を設ける必要がなくなり、プロセッサ200の構成を簡略化することができる。
次に、図5に示したプロセッサ200の構成についてさらに詳細に説明する。図6は、実施例2に係るプロセッサ200の構成を示すブロック図である。なお、同図では、説明を簡単にするため、コア210bおよび210cの図示を省略しているが、コア210bおよび210cは、コア210aと同様の構成を有する。また、同図では、パフォーマンスアナライザ機能に関連する構成のみを図示しており、以下の説明では、コア210a、コア220およびキャッシュ230の各部について、パフォーマンスアナライザ機能を実現するための各構成要素として説明を行うこととする。
図6に示すように、コア210aは、命令実行部111と、イベント検出部112と、カウンタ制御部213と、パフォーマンスカウンタ114a〜114nと、タイミング制御部215と、カウンタ情報書込部216とを有する。
カウンタ制御部213は、イベント検出部112において検出されたイベントの発生回数をパフォーマンスカウンタ114a〜114nに記録する処理部である。どのイベントを検出し、その発生回数をパフォーマンスカウンタ114a〜114nのいずれに記録するかについては、測定対象のプログラムの実行前にドライバプログラム等によって指定され、イベント検出部112およびカウンタ制御部213は、その指定に従って動作する。
タイミング制御部215は、コア210aとコア220の間でカウンタ情報を受け渡すタイミングを制御する制御部である。具体的には、タイミング制御部215は、カウンタ情報書込部216に対して、所定の期間間隔で、カウンタ情報をキャッシュ230のキャッシュラインに書き込むように指示する。そして、書き込みが完了するのを待って、コア220に割り込みを送信し、カウンタ情報書込部216によってキャッシュラインに書き込まれたカウンタ情報を読み出すように指示する。
タイミング制御部215は、パフォーマンスカウンタ114a〜114nに記録されるカウンタ情報の単位時間当たりの増加率を監視して、カウンタ情報書込部216にカウンタ情報の書き込みを指示する時間間隔を調整する。すなわち、タイミング制御部215は、パフォーマンスカウンタ114a〜114nに記録されるカウンタ情報の単位時間当たりの増加率を監視し、増加率が予め与えられた閾値よりも小さければ、基準時間毎にカウンタ情報の受け渡しが行われるように指示を行う。一方、増加率が予め与えられた閾値以上であれば、増加率が大きいほどカウンタ情報の受け渡しの時間間隔が短くなるように調整する。
このように、増加率に応じて、コア210aとコア220の間でカウンタ情報を受け渡すタイミングを制御することにより、パフォーマンスカウンタ114a〜114nの桁溢れを防止しつつ、コア210aとコア220の間でカウンタ情報を受け渡す頻度をできるだけ少なくし、カウンタ情報の受け渡しによる負荷の増大を最小限に抑えることができる。
カウンタ情報書込部216は、タイミング制御部215によって指示されたタイミングで、パフォーマンスカウンタ114a〜114nに記録されているカウンタ情報を取得してキャッシュ230のキャッシュライン230aに書き込み、その後、パフォーマンスカウンタ114a〜114nをリセットさせる処理部である。カウンタ情報書込部216がカウンタ情報を書き込むキャッシュラインは、測定対象のプログラムを実行するコア毎に予め指定される。また、カウンタ情報の取得とパフォーマンスカウンタ114a〜114nのリセットは、カウンタ制御部213を介して実行される。
ここで、キャッシュ230を介してカウンタ情報の受け渡しを行う場合の問題について説明する。キャッシュ230を介してカウンタ情報の受け渡しを行うこととした場合、キャッシュが汚れてしまい、測定されるキャッシュヒット率が、本来の値よりも低くなってしまうという弊害が起こりうる。
具体的には、カウンタ情報をキャッシュ230のキャッシュラインに書き込むときに、キャッシュリプレースによって、測定対象のプログラムが近い将来アクセスするはずであったデータがキャッシュ230から追い出されてしまうことが起こりうる。このような現象が発生すると、キャッシュヒットとなるべきキャッシュ参照がキャッシュミスとなってしまうため、記録されるキャッシュヒット数が本来の値よりも小さくなり、カウンタ情報が測定対象のプログラムの性能を正しく表さなくなってしまう。
この問題を解決するため、カウンタ情報書込部216は、プログラムの性能測定が行われている間、カウンタ情報の書き込み先として指定されたキャッシュラインのリプレースを禁止する。カウンタ情報の受け渡しに用いられるキャッシュラインのリプレースを禁止することにより、そのキャッシュラインはカウンタ情報の受け渡しのみに使用され、測定対象のプログラムが使用するデータや命令列は、他のキャッシュラインに保持されることになる。このため、カウンタ情報をキャッシュ230のキャッシュラインに書き込むときにキャッシュリプレースが発生して、測定対象のプログラムが近い将来アクセスするはずであったデータをキャッシュ230から追い出してしまう現象は起こらず、キャッシュヒット数が適正に記録される。なお、どのようにしてキャッシュラインのリプレースを禁止するかについては、図7を用いて後述する。
また、カウンタ情報の受け渡しに用いられるキャッシュラインのリプレースを禁止することは、カウンタ情報として記録されるバスアクティブサイクル数を適正化するためにも有効である。カウンタ情報をキャッシュ230のキャッシュラインに書き込むときにキャッシュリプレースが発生してキャッシュミスが増加すると、メモリ101へアクセスする回数も増大するために、バス106がアクティブになるサイクル数が本来の値よりも多く記録されてしまう。カウンタ情報の受け渡しに用いられるキャッシュラインのリプレースを禁止することにより、キャッシュミスの発生回数が本来の回数に抑制されるため、カウンタ情報として記録されるバスアクティブサイクル数も適正化される。
コア220は、コア210a〜210cにおいて記録されたカウンタ情報を収集し、それを加工して出力する処理を行うコアであり、カウンタ情報収集部221と、カウンタ情報加工部123と、命令実行部124と、カウンタ情報出力部125とを有する。
カウンタ情報収集部221は、カウンタ情報書込部216によってキャッシュライン230aに書き込まれたカウンタ情報を収集する処理部である。具体的には、カウンタ情報収集部221は、タイミング制御部215から送信された割り込みが発生するたびに、そのタイミング制御部215を含むコアに対応するキャッシュライン230aから、カウンタ情報を読み出し、カウンタ情報加工部123に引き渡す。
キャッシュ230は、コア210a〜210cおよびコア220によって共有される記憶領域である。キャッシュ230が4WAYセットアソシアティブキャッシュであるものとして、キャッシュ230の詳細を図7に示す。同時に示すように、キャッシュ230は、WAY231a〜231d(以下、それぞれを「WAY1」〜「WAY4」と呼ぶこととする)と、WAY1〜4に1つずつ対応して存在する比較器235a〜235dと、選択器236とを有する。
WAY1〜4は、それぞれ、0x00〜0xffというインデックスに対応する複数のキャッシュラインを有し、各インデックスは、ロックフラグ232と、タグ部233と、データ部234とからなる。ロックフラグ232は、当該のキャッシュラインのリプレースが禁止されているか否かを示す1ビットのフラグであり、当該のキャッシュラインのリプレースが禁止されている場合には「1」の値をとり、さもなければ「0」の値をとる。タグ部233は、当該のキャッシュラインにデータもしくは命令列が保持されている場合に、そのデータもしくは命令列のアドレスのタグが格納される領域である。データ部234は、データもしくは命令列が格納される領域である。
アドレス1を指定してキャッシュ参照が行われた場合、WAY1は、アドレス1のインデックス部1bの値に対応するキャッシュラインのタグ部233の値を比較器235aに送出するとともに、データ部234の値を選択器236に送出する。そして、比較器235aは、送出されたタグ部233の値と、アドレス1のタグ部1aの値とを比較し、それらが同一であるか否かを選択器236へ通知する。
同様に、WAY2〜4は、アドレス1のインデックス部1bの値に対応するキャッシュラインのタグ部233の値を、それぞれ、比較器235b〜235dに送出するとともに、データ部234の値を選択器236に送出する。そして、比較器235b〜235dは、送出されたタグ部233の値と、アドレス1のタグ部1aの値とを比較し、それらが同一であるか否かを選択器236へ通知する。
そして、選択器236は、比較器235a〜235dのいずれか1つから、送出されたタグ部233の値とアドレス1のタグ部1aの値が同一である旨の通知を受けると、その比較器に対応するWAYから送出されたデータ部234の値と、キャッシュヒットを示す信号とを出力する。一方、送出されたタグ部233の値とアドレス1のタグ部1aの値とが同一である旨の通知がなかった場合は、キャッシュミスを示す信号を出力する。
また、キャッシュ230は、新たなデータや命令列を保持することが必要になると、そのデータや命令列のアドレスのインデックス部1bの値を取得し、いずれかのWAYにおいてその値に対応する未使用のキャッシュラインが存在するか否かを確認する。そして、該当するキャッシュラインがあった場合は、データや命令列をそのキャッシュラインに格納し、該当するキャッシュラインがなかった場合は、リプレースを実行する。
リプレースの対象となるキャッシュラインは、インデックス部1bの値に対応するキャッシュラインの中でリプレースが禁止されていないもの、すなわち、ロックフラグの値が「0」であるものから選択される。ロックフラグの値が「0」であるキャッシュラインが複数存在する場合は、一般的なLRU(Least Recently Used)ロジックをもちいてその1つを選択することとしてもよいし、処理を簡単にするために、ランダムに1つを選択することとしてもよい。
キャッシュラインのリプレースの禁止は、例えば、
st reg0001 0xfff00100
のような命令をコア210a等が実行することで実現することができる。
「st」は、データの書き込みを指示する命令であり、「reg0001」は、書き込むべきデータが格納されているレジスタの名前である。書き込み先アドレスである「0xfff00100」は、データの書き込みのキャッシュラインを指定し、そのキャッシュラインのリプレースの禁止を指示する擬似命令である。
具体的には、先頭の12ビットである「fff」は、このアドレスが、キャッシュラインの指定とリプレースの禁止を指示する擬似命令であることを示すフラグである。ここでは、上位12ビットが「fff」であるアドレスは、存在し得ないアドレスであるものと想定しており、存在し得ないアドレスを指定することにより、通常の書き込み命令と同様の形式で、キャッシュラインのリプレースの禁止を実行することができるようになっている。
続く4ビットである「0」は、対象のキャッシュラインを含むWAYを指定する番号である。「0」は、対象のキャッシュラインが最初のWAYであるWAY1に含まれることを意味する。続く8ビットである「01」は、対象のキャッシュラインのインデックスである。すなわち、上記の命令は、「reg0001」という名のレジスタの値を、WAY1のインデックス0x01のキャッシュラインに書き込み、そのキャッシュラインのロックフラグの値を「1」に設定してリプレースを禁止すべき旨を示す。
同様に、キャッシュラインのリプレース禁止の解除は、例えば、
st reg0001 0xffe00100
のような命令をコア220等が実行することで実現することができる。ここでは、上位12ビットが「ffe」であるアドレスは、存在し得ないアドレスであるものと想定しており、リプレースの禁止時とは別の存在し得ないアドレスを指定することにより、通常の書き込み命令と同様の形式で、キャッシュラインのリプレース禁止を解除することができるようにしている。
なお、同一のインデックスに対応するキャッシュラインのリプレースが、複数のWAYにおいて禁止されると、測定対象のプログラムが使用できるキャッシュラインが減少し、スラッシングが発生するおそれがある。このため、カウンタ情報の受け渡しに用いられるキャッシュラインは、測定対象のプログラムを実行するコア毎にインデックスが異なっていることが好ましい。
次に、図6に示したコア210aおよびコア220の処理手順について説明する。図8は、測定対象のプログラムを実行するコアであるコア210aの測定処理手順を示すフローチャートである。同図に示すように、コア210aは、まず、指定された内容に従って、どのイベントを検出し、検出したイベント数をパフォーマンスカウンタ114a〜114nのいずれに記録するかを初期設定する(ステップS301)。
そして、命令実行部111が、測定対象のプログラムに含まれる命令を実行し(ステップS302)、予め指定されたイベントが発生すると、イベント検出部112がそれらを検出する(ステップS303)。そして、カウンタ制御部213が、パフォーマンスカウンタ114a〜114nのうち、検出されたイベントに対応するカウンタを更新してイベントの発生数をカウンタ情報として記録する(ステップS304)。
そして、タイミング制御部215が、後述するタイミング判定処理を実行し(ステップS305)、タイミング制御部215から書き込み指示があった場合は(ステップS306肯定)、カウンタ情報書込部216が、カウンタ情報をキャッシュ230に書き込むとともに、カウンタ情報を書き込んだキャッシュラインのリプレースを禁止する(ステップS307)。そして、カウンタ情報書込部216が、カウンタ制御部213に、パフォーマンスカウンタ114a〜114nをリセットするように指示し(ステップS308)、タイミング制御部215が、コア220にカウンタ情報の読み取りを指示する割り込みを送信する(ステップS309)。一方、タイミング制御部215から書き込み指示がなかった場合は(ステップS306否定)、S307〜S309は実行されない。
そして、コア210aは、測定対象のプログラムの実行が完了していなければ(ステップS310否定)、ステップS302以降の処理手順を再実行し、測定対象のプログラムの実行が完了していれば(ステップS310肯定)、処理手順を終了させる。
図9は、図8に示したタイミング判定処理の判定処理手順を示すフローチャートである。同図に示すように、タイミング制御部215は、パフォーマンスカウンタ114a〜114nを参照してカウンタ値の増加率を算出し(ステップS401)、増加率が所定の閾値よりも小さければ(ステップS402肯定)、基準時間を処理待ち間隔として設定する(ステップS403)。
一方、増加率が所定の閾値以上であれば(ステップS402否定)、タイミング制御部215は、増加率の大きさに応じて処理待ち間隔が小さくなるように、基準時間を増加率で割った値を処理待ち間隔として設定する(ステップS404)。そして、処理待ち間隔が、所定の最小値よりも小さければ(ステップS405肯定)、処理待ち間隔を最小値に設定し直す(ステップS406)。ここで、処理待ち間隔に最小値を設けているのは、カウンタ情報書込部216によって書き込まれたカウンタ情報が、カウンタ情報収集部221によって取得される前に、カウンタ情報書込部216によって上書きされてしまうことを防止するためである。
そして、タイミング制御部215は、カウンタ情報書込部216に対してカウンタ情報の書き込みを前回指示したときから処理待ち間隔が経過していれば(ステップS407肯定)、カウンタ情報書込部216に対してカウンタ情報の書き込みを指示する(ステップS408)。
図10は、カウンタ情報を出力するコアであるコア220の出力処理手順を示すフローチャートである。同図に示すように、コア220は、まず、指定された内容に従って、カウンタ情報をどのように加工するかを初期設定する(ステップS501)。そして、カウンタ情報収集部221は、タイミング制御部215からの割り込みを待ち受け、割り込みを受信すると(ステップS502)、キャッシュ230からカウンタ情報を取得する(ステップS503)。
そして、カウンタ情報加工部123が、必要な加工をカウンタ情報に加え(ステップS504)、カウンタ情報出力部125が、カウンタ情報を出力する(ステップS505)。ここで、処理の実行完了指示があれば(ステップS506肯定)、コア220は、キャッシュラインのリプレース禁止を解除し(ステップS507)、処理手順を終了させる。一方、処理の実行完了指示がなければ(ステップS506否定)、コア220は、ステップS502以降の処理手順を再実行する。
なお、上記実施例では、キャッシュ230を介してカウンタ情報の受け渡しを行う例を示したが、主記憶のアドレス空間の一部としてアクセス可能な記憶領域であるローカルメモリがプロセッサ200上に存在し、そのローカルメモリがコア210a〜210cおよび220からアクセス可能であれば、ローカルメモリを介してカウンタ情報の受け渡しを行うこととしてもよい。
上述してきたように、本実施例2では、コア間でのカウンタ情報の受け渡しを、コアによって共有されているキャッシュを介して行うこととしたので、カウンタ情報の受け渡しを行うための経路をコア間に設ける必要がなく、プロセッサの構成の複雑化を回避することができる。
また、本実施例2では、カウンタ情報の受け渡しのために使用されるキャッシュラインのリプレースを禁止することとしたので、キャッシュを介してカウンタ情報の受け渡しを行うことにより、キャッシュヒット率等の性能測定結果が不適切な値となることを防止することができる。
実施例1および2では、カウンタ情報の加工と出力をハードウェアによって行う例を示したが、カウンタ情報の加工と出力をソフトウェアによって行うこともできる。そこで、本実施例3では、カウンタ情報の加工と出力を性能指標情報出力プログラム340によって行う例について説明することとする。
図11は、実施例3に係る性能指標情報出力プログラム340を実行する情報処理装置30の構成を示すブロック図である。同図に示すように、情報処理装置30は、プロセッサ300と、メモリ101と、ハードディスク102と、ネットワークI/F103と、表示部104と、入力部105とをバス106で接続して構成されている。
プロセッサ300は、各種演算処理を実行する集積回路であり、コア210a〜210cと、コア320と、キャッシュ230とを有する。コア210a〜210cおよびコア320は、それぞれが、独立して演算処理を実行する演算処理部である。
通常、コア210a〜210cおよびコア320は、いずれも同様に機能し、プロセッサ300は、4つの処理を並列的に実行する。そして、プログラムの性能測定が必要になった場合には、コア210a〜210cは、測定対象のプログラムを実行しながら、予め指定されたイベントの発生数をカウンタ情報として記録する。そして、コア320は、性能指標情報出力プログラム340(図中「prg」と表記)を実行し、コア210a〜210cによって記録されたカウンタ情報を収集し、それを加工して表示部104等に出力する処理を性能指標情報出力プログラム340に行わせる。
性能指標情報出力プログラム340は、ハードディスク102や、情報処理装置30とネットワーク接続された他の装置に記憶され、必要に応じて、コア320に読み出されてメモリ101に展開され、実行可能状態となる。そして、キャッシュ230やメモリ101に保持された各種情報を利用して、カウンタ情報の収集処理、加工処理および出力処理を実行する。
次に、性能指標情報出力プログラム340の構成について説明する。図12は、実施例3に係る性能指標情報出力プログラム340の構成を示すブロック図である。同図に示すように、性能指標情報出力プログラム340は、割り込みハンドラ341と、カウンタ情報収集部342と、カウンタ情報加工部343と、カウンタ情報出力部344とを有する。
割り込みハンドラ341は、タイミング制御部215から送信された割り込みを検出し、割り込みを検出した旨をカウンタ情報収集部342に通知する処理部である。カウンタ情報収集部342は、カウンタ情報書込部216によってキャッシュライン230aに書き込まれたカウンタ情報を収集する処理部である。具体的には、カウンタ情報収集部342は、タイミング制御部215から送信された割り込みが割り込みハンドラ341において検出されるたびに、そのタイミング制御部215を含むコアに対応するキャッシュラインから、カウンタ情報を読み出し、それをカウンタ情報加工部343に引き渡す。
カウンタ情報加工部343は、カウンタ情報収集部342によって収集されたカウンタ情報に必要な加工を施し、カウンタ情報出力部344へ引き渡す処理部である。カウンタ情報出力部344は、カウンタ情報加工部343から引き渡されたカウンタ情報を表示部104等に出力する処理部である。例えば、カウンタ情報出力部344は、表示部104に情報表示用のウィンドウを表示し、そのウィンドウ上にカウンタ情報の経時的な変化をグラフとして出力する。
なお、カウンタ情報の加工と出力を性能指標情報出力プログラム340に行わせることとした場合、性能指標情報出力プログラム340の動作によってキャッシュ230等の状態が変化し、測定対象のプログラムの性能を正確に測定できなくなる可能性がある。この可能性を低減するために、性能指標情報出力プログラム340が動作するコア320が使用するキャッシュラインを全てリプレース禁止とし、性能指標情報出力プログラム340の動作によってキャッシュ230の状態が変化しないようにしてもよい。また、図13に示すように、性能指標情報出力プログラム340を実行するコア320が動作している間は、コア210a〜210cが動作しないようにコア320もしくはその他の制御部が制御し、性能指標情報出力プログラム340の動作が、測定対象のプログラムを実行するコア210a〜210cにできるだけ影響を及ぼさないようにしてもよい。
上述してきたように、本実施例3では、カウンタ情報の加工と出力をソフトウェアによって行うこととしたので、カウンタ情報の加工と出力のためのハードウェアが不要となり、プロセッサの構成の複雑化を回避することができる。
(付記1)複数の演算処理部を有するプロセッサにおいて、
実行される命令群の性能を評価するためのイベントの発生を検出するイベント検出手段と、前記イベント検出手段において検出されたイベントの数をイベントの種別毎に記録するカウンタとを有する1つあるいは複数の第1の演算処理部と、
前記カウンタに記録された値を前記命令群の性能を示す性能指標情報に加工処理する加工処理手段と、前記加工処理手段で加工処理された前記性能指標情報を出力する出力手段とを有する1つあるいは複数の第2の演算処理部と
を備えたことを特徴とするプロセッサ。
(付記2)前記第1の演算処理部から書き込み可能で、かつ、前記第2の演算処理部から読み出し可能な記憶手段を備え、
前記第1の演算処理部は、前記カウンタに記録された値を前記記憶手段に書き込む書込手段をさらに有し、前記第2の演算処理部は、前記記憶手段に書き込まれた情報を読み出し、前記加工手段に加工を行わせる情報収集手段をさらに有することを特徴とする付記1に記載のプロセッサ。
(付記3)前記情報書込手段は、前記カウンタに記録された値を前記記憶手段に書き込んだ後、前記カウンタに記録された値をリセットさせることを特徴とする付記2に記載のプロセッサ。
(付記4)前記情報書込手段は、前記カウンタに記録された値を書き込んだ前記記憶手段内の領域をリプレース禁止に設定することを特徴とする付記2または3に記載のプロセッサ。
(付記5)前記情報書込手段は、存在しないアドレスを指定した入出力命令を実行することにより、前記領域をリプレース禁止に設定することを特徴とする付記4に記載のプロセッサ。
(付記6)前記記憶手段は、情報を格納する領域毎にリプレースを禁止するか否かを示すフラグを有することを特徴とする付記4または5に記載のプロセッサ。
(付記7)前記第1の演算処理部は、前記カウンタに記録される値の増加率を監視し、増加率が大きいほど、前記情報書込手段と前記情報収集手段の間での情報のやりとりが短い間隔で実行されるように制御するタイミング制御手段をさらに含むことを特徴とする付記2〜6のいずれか1つに記載のプロセッサ。
(付記8)複数の演算処理部を有する情報処理装置において、
実行される命令群の性能を評価するためのイベントの発生を検出するイベント検出手段と、前記イベント検出手段において検出されたイベントの数をイベントの種別毎に記録するカウンタとを有する1つあるいは複数の第1の演算処理部と、
前記カウンタに記録された値を前記命令群の性能を示す性能指標情報に加工処理する加工処理手段と、前記加工処理手段で加工処理された前記性能指標情報を出力する出力手段とを有する1つあるいは複数の第2の演算処理部と
を備えたことを特徴とする情報処理装置。
(付記9)1つあるいは複数の第1の演算処理部と1つあるいは複数の第2の演算処理部とを備えるプロセッサにおいて実行される命令群の性能を示す性能指標情報を出力する性能指標情報出力プログラムであって、
前記第1の演算処理部において実行される命令群の性能を評価するためのイベントの発生数を前記第1の演算処理部から取得する情報収集手順と、
前記情報収集手順によって収集された値を前記性能指標情報へ加工する加工手順と、
前記加工手順において加工された前記性能指標情報を出力する出力手順と
を前記第2の演算処理部に実行させることを特徴とする性能指標情報出力プログラム。
以上のように、本発明に係る演算処理装置及び演算処理装置の制御方法は、プログラムの性能を示す指標情報を出力するために有用であり、特に、装置の構成を複雑化することなく、プログラムの性能を示す指標情報をリアルタイムで出力することが必要な場合に適している。
実施例1に係るプロセッサを含む情報処理装置の構成を示すブロック図である。 実施例1に係るプロセッサの構成を示すブロック図である。 測定プログラムを実行するコアの測定処理手順を示すフローチャートである。 カウンタ情報を出力するコアの出力処理手順を示すフローチャートである。 実施例2に係るプロセッサを含む情報処理装置の構成を示すブロック図である。 実施例2に係るプロセッサの構成を示すブロック図である。 実施例2に係るプロセッサのキャッシュの構成を示すブロック図である。 測定プログラムを実行するコアの測定処理手順を示すフローチャートである。 タイミング判定処理の判定処理手順を示すフローチャートである。 カウンタ情報を出力するコアの出力処理手順を示すフローチャートである。 実施例3に係る性能指標情報出力プログラムを実行する情報処理装置の構成を示すブロック図である。 実施例3に係る性能指標情報出力プログラムの構成を示す図である。 実施例3に係る性能指標情報出力プログラムの動作タイミングを示す図である。
符号の説明
1 アドレス
1a タグ部
1b インデックス部
10 情報処理装置
100 プロセッサ
101 メモリ
102 ハードディスク
103 ネットワークI/F
104 表示部
105 入力部
106 バス
110a〜110c コア
111 命令実行部
112 イベント検出部
113 カウンタ制御部
114a〜114n パフォーマンスカウンタ
120 コア
121 カウンタ情報収集部
122 タイマ
123 カウンタ情報加工部
124 命令実行部
125 カウンタ情報出力部
20 情報処理装置
200 プロセッサ
210a〜210c コア
213 カウンタ制御部
215 タイミング制御部
216 カウンタ情報書込部
220 コア
221 カウンタ情報収集部
230 キャッシュ
230a キャッシュライン
231a〜231d WAY
232 ロックフラグ
233 タグ部
234 データ部
235a〜235d 比較器
236 選択器
30 情報処理装置
300 プロセッサ
320 コア
340 性能指標情報出力プログラム
341 割り込みハンドラ
342 カウンタ情報収集部
343 カウンタ情報加工部
344 カウンタ情報出力部

Claims (4)

  1. 複数のエントリを有する記憶部と
    命令を実行する命令実行部と、前記命令実行部によって実行された命令の性能を評価するためのイベントを検出する検出部と、前記検出部によって検出されたイベントの数をイベントの種別毎に計数する計数部と、前記計数部によって計数されたイベントの数を前記複数のエントリのいずれかに書込むとともに、イベントの数を書込んだ前記エントリのリプレースを禁止する書込部を有する第1の演算処理部と、
    前記記憶部に書込まれたイベントの数を読み出す読出部と、読み出されたイベントの数を前記命令の性能を示す性能情報加工する加工部と、前記加工部によって加工された性能情報を出力する出力部を有する第2の演算処理部
    有することを特徴とする演算処理装置
  2. 前記書込部は、前記計数されたイベントの数を前記複数のエントリのいずれかに書込んだ後、前記計数されたイベントの数をリセットさせることを特徴とする請求項に記載の演算処理装置
  3. 前記第1の演算処理部は、前記計数されたイベントの数の増加率を監視し、増加率が大きいほど、前記書込部と前記読出部の間での情報のやりとりが短い間隔で実行されるように制御するタイミング制御部をさらに含むことを特徴とする請求項1または2に記載の演算処理装置
  4. 複数のエントリを有する記憶部と、演算処理をそれぞれ行う第1及び第2の演算処理部と、を有する演算処理装置の制御方法において、
    前記第1の演算処理部が有する命令実行部が、命令を実行し、
    前記第1の演算処理部が有する検出部が、実行された命令の性能を評価するためのイベントを検出し、
    前記第1の演算処理部が有する計数部が、検出されたイベントの数をイベントの種別毎に計数し、
    前記第1の演算処理部が有する書込部が、計数されたイベントの数を前記複数のエントリのいずれかに書込むとともに、イベントの数を書込んだエントリのリプレースを禁止し、
    前記第2の演算処理部が有する読出部が、前記記憶部に書込まれたイベントの数を読み出し、
    前記第2の演算処理部が有する加工部が、読み出されたイベントの数を前記命令の性能を示す性能情報に加工し、
    前記第2の演算処理部が有する出力部が、加工された性能情報を出力することを特徴とする演算処理装置の制御方法。
JP2007212971A 2007-08-17 2007-08-17 演算処理装置及び演算処理装置の制御方法 Expired - Fee Related JP4861270B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007212971A JP4861270B2 (ja) 2007-08-17 2007-08-17 演算処理装置及び演算処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007212971A JP4861270B2 (ja) 2007-08-17 2007-08-17 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2009048373A JP2009048373A (ja) 2009-03-05
JP4861270B2 true JP4861270B2 (ja) 2012-01-25

Family

ID=40500534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007212971A Expired - Fee Related JP4861270B2 (ja) 2007-08-17 2007-08-17 演算処理装置及び演算処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP4861270B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5990502B2 (ja) * 2013-10-11 2016-09-14 Mywayプラス株式会社 電力機器の制御装置、制御システム、制御方法および制御プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6425256A (en) * 1987-07-21 1989-01-27 Nec Corp System for observing operation rate of processor
JPH0594342A (ja) * 1991-10-03 1993-04-16 Nec Software Kansai Ltd コンピユータ性能監視装置
JP3119919B2 (ja) * 1991-12-11 2000-12-25 富士通株式会社 計算機システム
JP3129027B2 (ja) * 1993-04-26 2001-01-29 富士電機株式会社 並列処理計算機
JP4700392B2 (ja) * 2005-04-11 2011-06-15 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、コンピュータの制御方法及びプログラム
JP2007280209A (ja) * 2006-04-10 2007-10-25 Hitachi Kokusai Electric Inc マルチコアプロセッサの監視方法
US20090006036A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Shared, Low Cost and Featureable Performance Monitor Unit

Also Published As

Publication number Publication date
JP2009048373A (ja) 2009-03-05

Similar Documents

Publication Publication Date Title
JP4209959B2 (ja) 性能カウンタの高頻度サンプリング装置及び方法
US6360337B1 (en) System and method to perform histogrammic counting for performance evaluation
US6519310B2 (en) Hardware event based flow control of counters
US7962314B2 (en) Mechanism for profiling program software running on a processor
US7870438B2 (en) Method, system and computer program product for sampling computer system performance data
JP4067887B2 (ja) プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
CN101218569B (zh) 用于控制dma任务的执行的装置
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
US7606979B1 (en) Method and system for conservatively managing store capacity available to a processor issuing stores
US20060112310A1 (en) Storage of trace data within a data processing apparatus
US20130111120A1 (en) Enabling A Non-Core Domain To Control Memory Bandwidth
US20100268984A1 (en) Delete Of Cache Line With Correctable Error
JP5499987B2 (ja) 共有キャッシュメモリ装置
US9606923B2 (en) Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program
JP2002163150A (ja) プロセッサ
US7051177B2 (en) Method for measuring memory latency in a hierarchical memory system
JP4861270B2 (ja) 演算処理装置及び演算処理装置の制御方法
US8255632B2 (en) Pre-fetch control apparatus
JP4409620B2 (ja) 演算処理装置、キャッシュメモリ制御装置及び制御方法
JPH06348593A (ja) データ転送制御装置
JP5397771B2 (ja) 性能最適化システム、方法及びプログラム
JP2009217385A (ja) プロセッサ及びマルチプロセッサ
US20090077349A1 (en) Method of managing instruction cache and processor using the method
US8219379B2 (en) System, method and computer program product for testing software
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110912

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees