JP2002342125A - イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム - Google Patents

イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム

Info

Publication number
JP2002342125A
JP2002342125A JP2001149166A JP2001149166A JP2002342125A JP 2002342125 A JP2002342125 A JP 2002342125A JP 2001149166 A JP2001149166 A JP 2001149166A JP 2001149166 A JP2001149166 A JP 2001149166A JP 2002342125 A JP2002342125 A JP 2002342125A
Authority
JP
Japan
Prior art keywords
count value
event
storage unit
counting
value
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.)
Granted
Application number
JP2001149166A
Other languages
English (en)
Other versions
JP4445160B2 (ja
Inventor
Mitsuru Sato
充 佐藤
Koichi Kumon
耕一 久門
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 JP2001149166A priority Critical patent/JP4445160B2/ja
Priority to US10/079,546 priority patent/US7020808B2/en
Publication of JP2002342125A publication Critical patent/JP2002342125A/ja
Application granted granted Critical
Publication of JP4445160B2 publication Critical patent/JP4445160B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】不必要なオーバヘッドを避けながら且つ少ない
ハードウェア物量で長時間に亘る情報収集やメモリ空間
全体に亘る情報収集を可能にし、比較的小型のプロセッ
サにおいても性能測定や性能チューニングを確実に行な
えるようにする。 【解決手段】プロセッサ20におけるイベントの発生回
数を計数する計数部33(31〜33)と、この計数部
33によって得られた計数値を保存する保存部34と、
この保存部34に対する計数値の書込を制御する制御部
32とをそなえ、制御部32が、重要度の高い計数値を
保存部34に残しながら、計数部33によって得られる
新たな計数値を保存部34に書き込むように書込を制御
するように構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機等を含むプ
ロセッサの性能測定あるいは性能チューニングを行なう
べく、そのプロセッサにおけるイベントの発生回数を計
測するための技術に関する。
【0002】
【従来の技術】一般に、計算機の処理を高速化するため
には、プログラム実行時の計算機の挙動を把握すること
が必要不可欠である。計算機の挙動を細かく調査するた
めに、計算機内部での各種イベントの発生回数を測定す
るという手法が一般的に広く用いられている。そのた
め、現代の計算機には、性能測定用の内部カウンタが装
備されていることが多い。
【0003】性能測定用カウンタを用いると、例えば、
プログラムの実行クロック数,プログラムの実行中に行
なったメモリアクセスの回数などを取得することができ
る。これらの挙動は全て「イベント」として取り扱わ
れ、イベントが発生する度にカウンタ(計数値)を1ず
つカウントアップするという方式でイベントの発生回数
を記録している。より具体的に説明すると、先の例の実
行クロック数の測定に際しては、「1クロック経過」を
一つのイベントとして取り扱うことで1クロック経過す
る度にイベントが発生することになり、その都度、カウ
ンタが1ずつカウントアップされる。イベントには様々
なものがあり、例えば、分岐命令の実行,キャッシュミ
ス,メモリリード,メモリライトなど、性能測定に必要
な挙動の全てが網羅されている。
【0004】近年の計算機システムでは、各部にこのよ
うなカウンタを設け、性能測定などに使えるようにして
いる場合が多い。例えばIntel社のプロセッサであるPen
tiumProにおいては、性能測定用のカウンタが2本設け
られており、各カウンタに対し、独立に、(1)イベント
の選択,(2)値の読出,(3)値の設定,(4)値のクリア,
(5)オーバフロー時の割込みなどを設定することができ
るようになっている。さらに、同様のカウンタが、メモ
リコントローラにも設けられており、メモリバス周りの
イベントも測定できるようになっている。
【0005】このようなカウンタを用いることにより、
イベント発生回数全体の合計値を見ることができるだけ
でなく、一定時間毎に値をカウンタによる計数値をサン
プリングすることで、イベントの発生回数の時間的変動
を見ることができる。これにより、イベント発生回数が
安定しているか否か、あるいは、イベント発生回数の変
動の激しさ、イベント発生が特定の時間帯に処理が集中
しているかなど、様々な情報を得ることができ、これら
の情報を、単なる性能測定だけでなく、システムのチュ
ーニングに役立てることができる。
【0006】上述した性能測定カウンタは、プログラム
を実行した結果を計測するのみではなく、動的なプログ
ラム最適化にも用いることができる。即ち、プログラム
実行中に、OS(Operating System)やプログラム自身
がカウンタの値を参照し、プログラムの動作を変えてい
くという手法で動的最適化を行なうことができる。
【0007】例えば図14に示すような分散共有メモリ
型の並列計算機において、メモリアクセスをOSによっ
て動的に最適化することを考える。分散共有メモリ型の
並列計算機は、図14に示すごとく、複数のノード10
0を、相互結合網200を介して相互に通信可能に接続
することにより構成されている。各ノード100は、C
PU(Central Processing Unit)101,メモリ10
2,メモリコントローラ103およびネットワークイン
タフェース104をそなえて構成されている。
【0008】各ノード100のCPU101は、そのC
PU101自体が属するノード100内のメモリ102
に対しても、他のノード100内のメモリに対しても、
自由にアクセスすることができる。このため、あるCP
U101から見ると、高速にアクセスできるメモリ10
2と、アクセスするのに時間がかかるメモリ102とが
存在することになる。なお、上述のような並列計算機に
おいて、各ノード100のメモリコントローラ103が
上述した性能測定カウンタ(図示省略)としての機能を
有しているものとする。
【0009】OSは、プログラムからメモリ要求が発生
すると、プログラムに対してメモリ102を割り当て
る。メモリ102の割当に際して、このメモリ102が
どのような使われ方をするのか分からないので、CPU
101と同じノード100に属するメモリ102を割り
当てればよいか、他のノード100に属するメモリ10
2を割り当てればよいか分からない。一般的には、同じ
ノード100内のメモリ102を割り当てた方がよい
が、場合によってはそうでないこともある。
【0010】ここで、メモリコントローラ103内にそ
なえられた2本の性能測定カウンタ1,2により、それ
ぞれ、以下のようなイベントを計数する。 カウンタ1:同じノード100内のCPU101からメ
モリアクセスがあった場合に、計数値を1だけカウント
アップする。 カウンタ2:他のノード100のCPU101からメモ
リアクセスがあった場合に、計数値を1だけカウントア
ップする。
【0011】この状態でプログラムを実行し、一定時間
毎にカウンタの値をチェックする。カウンタ1による計
数値が0に近く、カウンタ2による計数値が充分に大き
い場合は、このメモリ102を必要としているCPU1
01は他のノード100に属しているということが分か
る。このような場合、OSはメモリ102の割付を変
え、実際にメモリ102を必要としているCPU101
のそばにデータを移動させる。これによって、CPU1
01から見たとき、CPU101が必要なデータのほと
んどが高速にアクセスできるメモリ102に載っている
ことになり、プログラムの実行が高速化される。
【0012】このような目的のために、例えばSGI
(Sillicon Graphics Inc.)のOrigin2000という計算機
では、メモリ脇にメモリアクセス集計用のカウンタがそ
なえ付けられている。このカウンタは、ページ単位毎に
備え付けられており、OSから一定時間毎に参照するこ
とによって、ページ毎のアクセス数を計測することがで
きる。
【0013】
【発明が解決しようとする課題】しかしながら、上述し
た従来の計測手法では、長時間サンプリングをしようと
したり、メモリ空間の全体に亘ってメモリブロック毎の
イベント発生回数を測定しようとすると、カウンタによ
って得られる計数値の量は莫大なものとなってしまう。
そのため、従来の計測手法は、コストを充分かけてよい
大型の計算機に対しては適用が可能であったが、コスト
をできるだけ切り詰めなくてはならない小型の計算機に
対しては適用できず、少ないカウンタをやりくりしてデ
ータを採取するしかなかった。
【0014】例えば、先にあげたSGIのOrigin 2000
の例について考える。Origin 2000では、ページ毎に6
4ノード分の参照カウンタがそなえ付けられている。仮
に、ページサイズが4KB、カウンタによって得られる
計数値の保存領域(この領域のことをカウンタと呼ぶ場
合がある)が一つ32ビットとすると、カウンタのため
に全メモリの128分の1のメモリサイズが必要とな
る。これは、LSI内部にはとうてい収まりきらず、外
付けメモリとして実現することになる。このようにして
カウンタのための領域を確保することは、ハードウェア
の物量の増加を招くだけでなく、ハードウェアの設計を
複雑化するという問題も生じさせることになり、特に、
コスト重視の比較的小型の計算機では実現できない手法
である。
【0015】小容量のカウンタを用いて計測を行なう場
合、保存対象の計数値がカウンタの容量を超えると、従
来、一旦、保存領域からメモリへ計数値を書き出した
り、カウンタによる計数値を、保存領域において順番に
計数値を上書きしたりするなどの手法を採っている。
【0016】前者の手法では、計数値をメモリへ書き出
すためのオーバヘッドが存在し、さらにソフトウェアや
複雑なハードウェアを用いた制御が必要となる。しか
し、性能測定を行なう場合、できるだけ測定誤差を減ら
すために不必要なオーバヘッドは避けることが望まし
く、その点で、前者の手法には問題がある。また、後者
の手法では、単に順番に計数値の上書きを行なっている
ため、カウンタ(保存領域)には、カウンタ観測時点に
ごく近い時点に計測された計数値しか残っておらず、性
能についての全体的な判断を行なえるような情報(性能
を判断するために必要になる、重要な計数値)を得るこ
とができない。
【0017】一方、特開平10−260869号公報で
は、プロセッサの性能をサンプリングする性能カウンタ
を、ハッシュテーブルを用いて効率的に管理する手法が
開示されている。しかし、この手法を用いても、性能カ
ウンタの管理は効率化されるが、カウンタの物量自体が
減ることはなく、かえって管理のために必要なハードウ
ェアを追加しなくてはならず、コスト重視の比較的小型
の計算機に適用できるものではない。
【0018】本発明は、このような課題に鑑み創案され
たもので、不必要なオーバヘッドを避けながら且つ少な
いハードウェア物量で、長時間に亘る情報収集やメモリ
空間全体に亘る情報収集を可能にし、比較的小型のプロ
セッサにおいても性能測定や性能チューニングを確実に
行なえるようにした、イベント計測装置および方法並び
にイベント計測プログラムおよび同プログラムを記録し
たコンピュータ読取可能な記録媒体並びにプロセッサシ
ステムを提供することを目的とする。
【0019】
【課題を解決するための手段】上記目的を達成するため
に、本発明のイベント計測装置(請求項1)は、プロセ
ッサにおけるイベントの発生回数を計数する計数部と、
該計数部によって得られた計数値を保存する保存部と、
該保存部に対する該計数値の書込を制御する制御部とを
そなえ、該制御部が、重要度の高い計数値を該保存部に
残しながら、該計数部によって得られる新たな計数値を
該保存部に書き込むように該書込を制御することを特徴
としている。
【0020】なお、該計数部が、所定時間毎に、該所定
時間内の該イベントの発生回数を計数し、該制御部が、
該所定時間毎に、該計数部による計数値を、該新たな計
数値として、当該計数値の計測時刻とともに該保存部に
書き込んでもよい(請求項2)。このとき、該重要度
を、該計数値そのものとする(請求項3)。
【0021】また、該計数部が、イベントの種類毎に、
該保存部における計数値を更新しながら計数を行なうと
ともに、該計数部が、該保存部に保存されていない新た
な種類のイベントの発生回数の計数を開始する際には、
該制御部が、該新たな種類のイベントの発生回数の計数
値を保存すべき保存領域を該保存部上に確保し、その保
存領域に、該新たな種類のイベントの発生回数の計数値
を該新たな計数値として書き込んでもよい(請求項
4)。このとき、該重要度を、該計数部による該計数値
の更新時刻とする(請求項5)。
【0022】さらに、上述したイベント計測装置に、該
保存部において該新たな計数値を上書きすることによっ
て破棄される計数値の合計値を、誤差として計測して保
持する誤差計測部をそなえてもよい(請求項6)。一
方、本発明のイベント計測方法(請求項7)は、プロセ
ッサにおけるイベントの発生回数を計数する計数ステッ
プと、該計数ステップにより新たな計数値が得られた場
合、重要度の高い計数値を保存部に残しながら、該新た
な計数値を該保存部に書き込む書込ステップとを含むこ
とを特徴としている。
【0023】また、本発明のイベント計測プログラム
(請求項8)は、上述した計数部および制御部としてコ
ンピュータを機能させるものであり、本発明のコンピュ
ータ読取可能な記録媒体(請求項9)は、上述したイベ
ント発生回数計測プログラムを記録したものである。さ
らに、本発明のプロセッサシステム(請求項10)は、
情報処理を行なうプロセッサと、上述した計数部,保存
部および制御部とをそなえたことを特徴としている。
【0024】本発明では、少ないハードウェア物量、例
えばLSI内部に収まる程度のメモリ容量で、多くの計
数値を取り扱うことができる仕組みをつくる。プロセッ
サの性能測定や性能チューニングを行なう際、必ずしも
全ての計数値が必要になるわけではなく、単位時間当た
りの計数値がピークになる時刻と、そのピーク値とが分
かれば充分な場合が多い。
【0025】また、例えばメモリシステムにおいて、頻
繁にアクセスされたブロック(ページ等)に関する情報
を採取しようとした場合、一般に、頻繁にアクセスされ
るブロックというのは、全メモリ空間に対してごく少量
である。そのため、メモリ空間の全てのブロック用の計
数値保存領域を用意しても、ほとんどの領域が無駄にな
り効率が悪い。
【0026】そこで、各計数値に関して重要度という要
素を付加し、重要度の高いもののみをシステム(保存
部)内に残すことにする。これにより、必要性の高い値
のみを採取することができ、不必要なオーバヘッドを避
けながら且つ少ないハードウェア物量(少ないメモリ容
量)で、長時間に亘る情報収集やメモリ空間全体に亘る
情報収集が可能になる。
【0027】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。 〔1〕第1実施形態の説明 図1は本発明の第1実施形態としてのイベント計測装置
(性能測定カウンタ)およびプロセッサシステムの構成
を示すブロック図、図2は第1実施形態における値保存
部の構成を示す図である。
【0028】図1に示すように、第1実施形態のプロセ
ッサシステム10は、プロセッサ20と性能測定カウン
タ30とから構成されている。プロセッサ20は、情報
処理を行なうものであって、性能測定対象(イベント発
生回数の計測対象)である。
【0029】性能測定カウンタ(イベント計測装置)3
0は、プロセッサ20に内蔵され、このプロセッサ20
内における計測対象イベントの発生回数を計測するため
のもので、イベント選択器31,カウンタ制御器32,
カウンタ33および値保存部34をそなえて構成されて
いる。なお、第1実施形態の性能測定カウンタ30で
は、所定時間毎に、その所定時間内に発生したイベント
の数(発生回数)が計数・収集されるようになってい
る。以下、上記所定時間のことを、サンプリング時間も
しくはサンプリング周期という場合がある。
【0030】ここで、イベント選択器31は、プロセッ
サ20の各部からイベント信号を受け取って、以下のよ
うに機能するものである。各イベント信号は、特定のイ
ベント(例えば、1クロック経過,メモリ読出し発生,
ジャンプ命令実行など)が発生する都度、プロセッサ2
0からイベント選択器31に送られる。イベント選択器
31には、外部からイベント条件が設定されるようにな
っている。例えば、イベントAが発生したとき、あるい
はイベントAとイベントBとが同時に発生したときな
ど、様々なイベント条件の設定が可能になっている。そ
のイベント条件が満たされた場合に、イベント選択器3
1は、カウンタ制御器32に対して信号を送り、カウン
タ33による計数値を1だけカウントアップするよう指
示する。
【0031】カウンタ制御器32は、カウンタ33の値
を制御するとともに、値保存部34に対する計数値の書
込を制御する制御部としての機能を果たすもので、サン
プリング周期毎に得られる計数値を値保存部34に書き
込む際に、後述するごとく重要度の高い計数値を値保存
部34に残すような書込制御を行なうように構成されて
いる。カウンタ制御器32は、イベント選択器31から
の信号を受け取ると、カウンタ33による計数値を1だ
けカウントアップする。
【0032】また、カウンタ制御器32には、上記所定
時間を計測するためのタイマ(図示省略)がそなえられ
ている。上記所定時間は、外部から任意に指定できるよ
うになっている。このタイマを用いて、指定した所定時
間内に起こったイベントの数が計数されるようになって
いる。指定された所定時間が経過すると、カウンタ制御
器32は、カウンタ33の値を値保存部34に送り、カ
ウンタ33の値をクリアする。そして、タイマをクリア
して、タイマによる所定時間の計測を再び開始する。
【0033】なお、カウンタ制御器32は、外部からの
指示に応じて、カウンタ33の計数値を、“0”にクリ
アしたり任意の値に設定したりすることができる。ま
た、カウンタ制御器32は、カウンタ33による計数値
に応じて(例えば、カウンタ33による計数値がオーバ
フローした場合などに)、プロセッサ20に対して割り
込みを発生する機能も有している。また、上述したイベ
ント選択器31,カウンタ制御器32およびカウンタ3
3により、プロセッサ20におけるイベントの発生回数
を計数する計数部としての機能が実現されている。
【0034】値保存部(保存部)34は、上記計数部の
機能によって得られた計数値(サンプリング周期毎に得
られる計数値)を保存するもので、図2に示すように、
計数値保存領域341および誤差計測カウンタ342を
そなえて構成されている。計数値保存領域(保存領域)
341は、サンプリング周期毎に得られる計数値(以
下、サンプリング値という場合がある)を保持しうる、
所定数のレコードを有している。各レコードは、サンプ
リング時刻とサンプリング値とを保持するとともに、そ
のレコードが有効であるか無効であるかを表わす有効/
無効ビット(図中ではVと表記)を有している。この有
効/無効ビットVには、レコードが有効である場合に例
えば“1”がセットされる一方、レコードが無効である
場合に例えば“0”がセットされる。本実施形態では、
計数値(サンプリング値)そのものを、その計数値の重
要度として取り扱う。このため、計数値保存領域341
には、重要度を保持するための領域はそなえられていな
い。
【0035】また、誤差計測カウンタ(誤差計測部)3
42は、計数値保存領域341からあふれた値の合計値
を記録するものである。つまり、誤差計測カウンタ34
2は、値保存部34の計数値保存領域341において新
たな計数値を上書きすることによって破棄される計数値
の合計値を、誤差として計測して保持するものである。
【0036】上述した値保存部34では、カウンタ制御
器32からカウンタ33の値(サンプリング値)を受け
取ると、現在の時刻(サンプリング時刻)とともにその
値がレコード単位で保存される。このように保存を行な
う際には、サンプリング値の大きなものから順に並ぶよ
うにソートが行なわれる。計数値保存領域341がいっ
ぱいになっている場合、即ち全てのレコードの有効/無
効ビットVが“有効”になっている場合には、新しいサ
ンプリング値と、計数値保存領域341に既に保存され
ているサンプリング値のうち最小のものとを比較し、新
しいサンプリング値の方が大きければ、保存されていた
最小のサンプリング値が廃棄され、新たなサンプリング
値がサンプリング時刻とともに上書き保存される。その
後、サンプリング値の大きなものから順に並ぶように、
サンプリング値全体がソートされる。廃棄されたサンプ
リング値は、誤差計測カウンタ342に送られ、このカ
ウンタ342による現在の計数値に加算されるようにな
っている。
【0037】上述したイベント選択器31およびカウン
タ制御器32(計数部および制御部)は、専用ソフトウ
ェア(イベント計測プログラム)によって実現される。
このイベント計測プログラムは、例えばフレキシブルデ
ィスク,CD−ROM等の、コンピュータ読取可能な記
録媒体に記録された形態で提供される。第1実施形態で
は、性能測定カウンタ30を成すROM(Read Only Me
mory;図示省略)等に予めイベント計測プログラムを格
納しておき、このイベント計測プログラムを、やはり性
能測定カウンタ30を成すCPU(図示省略)によって
読み出し実行することで、上述したイベント選択器31
およびカウンタ制御器32としての機能が実現される。
また、カウンタ33や値保存部34は、性能測定カウン
タ30を成すRAM(Random Access Memory;図示省
略)等によって実現される。なお、イベント計測プログ
ラムは、例えば磁気ディスク,光ディスク,光磁気ディ
スク等の記憶装置(記録媒体)に記録しておき、その記
憶装置から通信経路を介してコンピュータに提供されて
もよい。
【0038】次に、図3および図4を参照しながら、上
述のごとく構成された第1実施形態の性能測定カウンタ
30の動作について説明する。図3に示すフローチャー
ト(ステップS11〜S18)に従って、第1実施形態
におけるプロセッサ20の性能情報収集手順について説
明する。まず、ユーザは、情報を収集したいイベント
(例えばキャッシュミス回数など)を選び出し、計測対
象のイベントとしてイベント選択器31に設定するとと
もに(ステップS11)、サンプリング時間(サンプリ
ング周期;例えば1秒)を選び、前記所定時間としてカ
ウンタ制御器32に設定する(ステップS12)。
【0039】この後、性能測定カウンタ30(イベント
選択器31およびカウンタ制御器32)に対して開始信
号を送りイベント計測を開始する(ステップS13)。
これにより、図4を参照しながら後述するイベント計測
処理が実行される(ステップS14)。イベント計測処
理を終了する場合(ステップS15のYESルート)に
は、性能測定カウンタ30に対して停止信号を送り、性
能測定カウンタ30による計測動作を停止させる(ステ
ップS16)。
【0040】そして、ユーザは、値保存部34から収集
されたデータを取り出し、サンプリング値の大きい時刻
の情報や、そのときのサンプリング値を得るとともに
(ステップS17)、値保存部34に保存されているサ
ンプリング値の合計値と、誤差計測カウンタ342の値
とを比較することにより、サンプリング値全体に対して
どれくらいの割合のサンプリング値が廃棄されたかを認
識し、最終的に得られたサンプリング値(値保存部34
に残っている値)の確からしさを判断する(ステップS
18)。
【0041】ついで、図4に示すフローチャート(ステ
ップS21〜S36)に従って、第1実施形態における
イベント計測手順(図3のステップS14のイベント計
測処理)について説明する。性能測定カウンタ30にお
いては、開始信号を受信すると(ステップS21のYE
Sルート)、カウンタ制御器32におけるタイマが
“0”にクリアされ、カウンタ制御器32により、カウ
ンタ33,計数値保存領域341や誤差計測カウンタ3
42の値が全て“0”にセットされるとともに、計数値
保存領域341の各レコードにおける有効/無効ビット
Vが“無効”にセットされる(ステップS22)。
【0042】開始信号の受信に伴って、イベント選択器
31は、カウンタ33を1ずつカウントアップするため
の信号をカウンタ制御器32へ出力できる状態になり、
所定の条件を満たすイベント(計測対象のイベント)が
発生すると(ステップS23のYESルート)、カウン
トアップ信号をカウンタ制御器32へ出力し、カウンタ
33による計数値を1だけカウントアップする(ステッ
プS24)。なお、イベント選択器31は、図3のステ
ップS16による停止信号を受けると、そのカウントア
ップ信号の出力を停止するようになっている。
【0043】カウンタ制御器32では、イベントの発生
の有無に関係無く、タイマにより所定のサンプリング時
間が計測されており、サンプリング時間が経過したか否
かを常に判断し(ステップS24からステップS25、
または、ステップS23のNOルートからステップS2
5)、サンプリング時間が経過するまで、ステップS2
3〜S25の処理が繰り返し実行される。
【0044】そして、サンプリング時間が経過すると
(ステップS25のYESルート)、カウンタ制御器3
2は、計数値保存領域341に空きレコード(即ち、有
効/無効ビットVが無効状態である無効レコード)が有
るか否かを判断する(ステップS26)。
【0045】無効レコードが有る場合(ステップS26
のYESルート)、その無効レコードに、その時点での
カウンタ33による計数値(サンプリング値)と、サン
プリング時刻とが書き込まれるとともに(ステップS2
7)、その無効レコードにおける有効/無効ビットVが
無効状態から有効状態に切り替えられる(ステップS2
8)。この後、サンプリング値の大きなものから順に並
ぶようにレコードのソートが行なわれ(ステップS2
9)、カウンタ33およびタイマを再び“0”にセット
してから(ステップS30)、ステップS23へ戻る。
【0046】一方、計数値保存領域341の全レコード
が有効状態であり、無効レコードが存在しない場合(ス
テップS26のNOルート)、計数値保存領域341の
全レコードの中から、最小のサンプリング値を保持して
いるもの(一番下に位置するもの)を選択し(ステップ
S31)、今回サンプリングされた計数値(新しい計数
値)と、ステップS31で選択されたレコード(以下、
選択レコードという)のサンプリング値とを比較する
(ステップS32)。
【0047】その比較の結果、新しい計数値の方が大き
い場合(ステップS33のYESルート)、選択レコー
ドにおけるサンプリング値が、誤差計測カウンタ342
の値に加算された上で(ステップS34)、その新しい
計数値とサンプリング時刻とが、選択レコードに上書き
保存される(ステップS35)。
【0048】このような保存処理を行なった後、もしく
は、ステップS31で選択レコードのサンプリング値が
新しい計数値以上であった場合(ステップS33のNO
ルート)、サンプリング値の大きなものから順に並ぶよ
うにレコードのソートが行なわれ(ステップS29)、
カウンタ33およびタイマを再び“0”にセットしてか
ら(ステップS30)、ステップS23へ戻る。
【0049】なお、本実施形態では、上述したステップ
S23〜S25によって、プロセッサ20における、サ
ンプリング周期毎のイベントの発生回数を計数する計数
ステップが実現されている。また、上述したステップS
26〜S35によって、重要度の高いサンプリング値を
計数値保存領域341に残しながら、上記計数ステップ
で得られた新たなサンプリング値を計数値保存領域34
1に書き込む書込ステップが実現されている。
【0050】このように、本発明の第1実施形態では、
値保存部34の計数値保存領域341に保存される各計
数値に、「重要度」という属性(本実施形態では計数値
そのもの)を付与しておくことで、値保存部34の計数
値保存領域341の容量を超えて、書き込むべき計数値
が発生した場合、重要度の低いレコードに新たな計数値
が上書きされる。これにより、常に重要度の大きな値と
結び付けられている計数値(サンプリング値)が値保存
部34に残るようになる。
【0051】ここで、第1実施形態の性能測定カウンタ
30で記録する事象について具体的に考える。広大な領
域を計測対象として効率的に情報を収集する場合には、
その領域が時間的に広大な場合と空間的に広大な場合と
の2つが考えられる。計測対象の領域が時間的に広大な
場合、一定時間毎に計数値をサンプリングし、それを記
録し続けるということが考えられる。このとき、限られ
た大きさの計数値保存領域341でそれを実現しようと
すると、直ぐにデータがあふれて全てのデータを記録す
ることができない。
【0052】第1実施形態の性能測定カウンタ30は、
このような場合に対応したもので、小容量の計数値保存
領域341を用意し、各レコードにサンプリング値およ
びサンプリング時刻を保存するとともに、サンプリング
値自体を重要度として用いている。そして、新しくサン
プリングした計数値を追加する際、空きレコードが無け
れば重要度の最も低いレコードから計数値を追い出し、
そこに新たな計数値を記録する。
【0053】このようにして、値保存部34の容量が少
なくても、必要性の高い計数値を確実に且つ効率よく採
取することができ、長時間に亘ってサンプリング値を所
定周期で採取しても、統計情報を得るために必要なデー
タのみが値保存部34に残り、最終的にプロセッサ20
の性能について全体的な判断を行なうのに有用なデータ
を得ることができる。
【0054】従って、不必要なオーバヘッドを避けなが
ら且つ少ないハードウェア物量(例えばLSI内に収ま
る程度のメモリ容量)で、長時間に亘る情報収集が可能
になり、比較的小型のプロセッサにおいても性能測定や
性能チューニングを確実に行なえる。換言すると、重要
な情報のみが値保存部34に保存され、重要度の低い情
報が追い出されるので、サンプリング値をメモリに退避
させたり特別なソフトウェアを起動したりすることな
く、小容量の保存部を用いて、長時間に亘るデータを効
率よく採取することができる。
【0055】重要度の判定基準としては、まず考えられ
るのが、第1実施形態において説明したごとく、サンプ
リング値そのものである。つまり、大きなサンプリング
値は重要であり、小さなサンプリング値はあまり重要で
ないとし、小さなサンプリング値が新たなサンプリング
値で上書きされて廃棄され、大きなサンプリング値が優
先的に値保存部34に残される。
【0056】従って、イベントの発生回数が多かった時
刻とその発生数とを長時間に亘って採取することができ
る。これにより、イベント発生のピーク値とそのピーク
の発生時刻とを採取できるので、例えばキャッシュミス
が多いページを見つけて、その部分のデータ構造の見直
しが可能になり、プログラムの性能向上に役立つデータ
を得ることができる。
【0057】上述のごとく重要度の低いサンプリング値
を廃棄してしまうと、上書きされて消えてしまったサン
プリング値が、どの程度、重要でなかったのかを判断す
ることができない。例えば全てのサンプリング値の重要
度が同じであった場合、計数値保存領域341に残って
いるサンプリング値は、たまたま残った値であり、廃棄
されたサンプリング値と比べて重要な値というわけでは
なくなる。
【0058】そこで、第1実施形態では、重要度の低い
サンプリング値を廃棄する際に、そのサンプリング値の
合計値を誤差として誤差計測カウンタ342にて計測・
保持することにより、上書きによって値保存部34から
廃棄された全サンプリング値の大きさ(合計値)と、最
終的に値保存部34(計数値保存領域341)に残った
サンプリング値とを比較することが可能になる。
【0059】これにより、廃棄されたサンプリング値各
々の大きさは分からないが、サンプリング値全体に対し
てどれくらいの割合のサンプリング値が廃棄されたかを
認識することができる。つまり、最終的に値保存部34
に残っている値が、サンプリング値全体をどの程度反映
しているかを認識でき、値保存部34に残ったサンプリ
ング値の確からしさを判断することができる。
【0060】なお、第1実施形態において、重要度とし
て、サンプリング値に代えて、第2実施形態にて後述す
るようなアクセス時刻(更新時刻)を用いることは意味
がない。なぜならば、第1実施形態のサンプリング値
は、計数値保存領域341のレコードに一旦書き込まれ
ると、その後、上書きによって廃棄されることはあって
も新たな計数値に更新されることはなく、計数値保存領
域341が単なるリングバッファと同じになってしまう
からである。
【0061】〔2〕第2実施形態の説明 図5は本発明の第2実施形態としてのイベント計測装置
(性能測定カウンタ)の構成を示すブロック図、図6は
第2実施形態における値保存部の構成を示す図である。
図5に示すように、第2実施形態のプロセッサシステム
10Aも、図1に示す第1実施形態とほぼ同様、プロセ
ッサ20と性能測定カウンタ30Aとから構成されてい
る。
【0062】第2実施形態の性能測定カウンタ(イベン
ト計測装置)30Aも、プロセッサ20に内蔵され、こ
のプロセッサ20内における計測対象イベントの発生回
数を計測するためのもので、イベント選択器31A,カ
ウンタ制御器32A,カウンタ331,332および値
保存部34Aをそなえて構成されている。この性能測定
カウンタ30Aでも、図1に示した性能測定カウンタ3
0と同様に、所定時間毎に、その所定時間内に発生した
イベントの数を計数・収集しているが、性能測定カウン
タ30では、カウンタ33が一つだけそなえられていた
のに対し、第2実施形態の性能測定カウンタ30Aで
は、2つのカウンタ331,332をそなえ2種類のイ
ベントの発生回数を計測している。
【0063】また、第1実施形態の性能測定カウンタ3
0では、サンプリング値(計数値)そのものを重要度と
して用いていたのに対し、第2実施形態の性能測定カウ
ンタ30Aでは、後述するごとく、計数値(サンプリン
グ値)を所定関数に代入することによって算出された値
を、重要度として用いている。ここで、イベント選択器
31Aは、上述したイベント選択器31と同様のもので
あるが、第2実施形態では、2種類のイベント条件を設
定され、各イベント条件を満たすイベントの発生を検知
すると、対応するカウンタ331または332による計
数値を1だけカウントアップするように、カウンタ制御
器32Aに対して信号を送るように構成されている。
【0064】カウンタ制御器32Aは、上述したカウン
タ制御器32と同様のものであり、第2実施形態では、
2つのカウンタ331,332の値を制御するととも
に、値保存部34Aに対する計数値の書込を制御する制
御部としての機能を果たすもので、サンプリング周期毎
に得られる計数値を値保存部34Aに書き込む際に、後
述するごとく重要度の高い計数値を値保存部34Aに残
すような書込制御を行なうように構成されている。カウ
ンタ制御器32Aは、イベント選択器31Aからの信号
を受け取ると、イベントの種類に対応するカウンタ33
1または332による計数値を1だけカウントアップす
る。
【0065】また、カウンタ制御器32Aも、上述した
ものと同様のタイマ(図示省略)を有しており、このタ
イマにより所定時間の経過を検知すると、カウンタ制御
器32Aは、カウンタ331および332による計数値
を値保存部34Aに送り、カウンタ331および332
の値をクリアするとともに、タイマをクリアする。
【0066】さらに、カウンタ制御器32Aは、カウン
タ331および332によって得られた計数値(サンプ
リング値)を、それぞれ所定の関数に代入して、各計数
値に対応した重要度を算出する機能を有している。この
ようにして、異なる基準で測定された2種類の計数値
を、共通の基準の下で比較できるようにしている。例え
ば、一方の計数値については、第1実施形態と同様、そ
の計数値そのものを重要度とし、他方の計数値について
は、その計数値の定数倍を重要とする。
【0067】値保存部(保存部)34Aは、上述した値
保存部34と同様のもので、図6に示すように、計数値
保存領域341Aおよび誤差計測カウンタ342Aをそ
なえて構成されている。ただし、第2実施形態におい
て、計数値保存領域(保存領域)341Aは、上述した
2つのカウンタ331,332により得られる2種類の
サンプリング値を保持しうる、所定数のレコードを有し
ている。各レコードは、サンプリング時刻およびサンプ
リング値を保持する領域と、有効/無効ビットVとを有
するほか、上述のごとく算出された重要度を保持する領
域を有している。さらに、イベントの種類を識別するた
めの識別情報を保持する領域をそなえてもよい。
【0068】また、誤差計測カウンタ(誤差計測部)3
42Aは、上述した誤差計測カウンタ342と同様、値
保存部34Aの計数値保存領域341Aにおいて新たな
計数値を上書きすることによって破棄される計数値の合
計値を、誤差として計測して保持するほか、第2実施形
態では、破棄された計数値に付与された重要度の合計値
も保持している。なお、これらの合計値は、イベントの
種類に関係無く算出して保持してもよいし、イベント毎
に算出して保持してもよい。
【0069】なお、第1実施形態と同様、上述したイベ
ント選択器31A,カウンタ制御器32Aおよびカウン
タ33Aにより、プロセッサ20におけるイベントの発
生回数を計数する計数部としての機能が実現されてい
る。また、上述したイベント選択器31Aおよびカウン
タ制御器32A(計数部および制御部)も、第1実施形
態と同様、専用ソフトウェア(イベント計測プログラ
ム)によって実現される。
【0070】次に、図7を参照しながら、上述のごとく
構成された第2実施形態の性能測定カウンタ30Aの動
作について説明する。なお、基本的な、プロセッサ20
の性能情報収集手順は図3に示したものと同様であるの
で、その説明は省略し、図7に示すフローチャート(ス
テップS21〜S27,S30,S36〜S45)に従
って、第2実施形態におけるイベント計測手順(図3の
ステップS14のイベント計測処理)について説明す
る。なお、図7において、図4に示したステップ番号と
同一のステップ番号を付されたステップでは、図4を参
照しながら前述したものと同様の処理が実行される。
【0071】性能測定カウンタ30Aにおいては、開始
信号を受信すると(ステップS21のYESルート)、
カウンタ制御器32Aにおけるタイマが“0”にクリア
され、カウンタ制御器32Aにより、カウンタ331,
332,計数値保存領域341Aや誤差計測カウンタ3
42Aの値が全て“0”にセットされるとともに、計数
値保存領域341Aの各レコードにおける有効/無効ビ
ットVが“無効”にセットされる(ステップS22)。
【0072】開始信号の受信に伴って、イベント選択器
31Aは、カウンタ331,332を1ずつカウントア
ップするための信号をカウンタ制御器32Aへ出力でき
る状態になり、所定の条件(ここでは2種類の条件)を
満たすイベントが発生すると(ステップS23のYES
ルート)、カウントアップ信号をカウンタ制御器32A
へ出力し、イベントの種類に対応したカウンタ331ま
たは332による計数値を1だけカウントアップする
(ステップS24)。なお、イベント選択器31Aは、
図3のステップS16による停止信号を受けると、その
カウントアップ信号の出力を停止するようになってい
る。
【0073】カウンタ制御器32Aでは、イベントの発
生の有無に関係無く、タイマにより所定のサンプリング
時間が計測されており、サンプリング時間が経過したか
否かを常に判断し(ステップS24からステップS2
5、または、ステップS23のNOルートからステップ
S25)、サンプリング時間が経過するまで、ステップ
S23〜S25の処理が繰り返し実行される。そして、
サンプリング時間が経過すると(ステップS25のYE
Sルート)、カウンタ制御器32Aは、計数値保存領域
341Aに空きレコード(即ち、有効/無効ビットVが
無効状態である無効レコード)が有るか否かを判断する
(ステップS26)。
【0074】無効レコードが少なくとも2つ有る場合
(ステップS26のYESルート)、その無効レコード
に、その時点でのカウンタ331,332による計数値
(サンプリング値)とサンプリング時刻とが、それぞ
れ、異なるレコードに書き込まれる(ステップS2
7)。このとき、各計数値についての重要度が所定の関
数を用いて算出され(ステップS36)、その重要度も
各レコードに書き込まれる(ステップS37)。そし
て、有効/無効ビットVが無効状態から有効状態に切り
替えた後(ステップS38)、重要度の大きなものから
順に並ぶようにレコードのソートが行なわれ(ステップ
S39)、カウンタ331,332およびタイマを再び
“0”にセットしてから(ステップS30)、ステップ
S23へ戻る。
【0075】一方、計数値保存領域341の全レコード
が有効状態であり、無効レコードが存在しない場合(ス
テップS26のNOルート)には、まず、各計数値につ
いての重要度を、所定の関数を用いて算出してから(ス
テップS40)、計数値保存領域341Aの全レコード
の中から、重要度の最も低いもの(一番下に位置するも
の)を2つ選択し(ステップS41)、今回サンプリン
グされた2つの計数値(新しい計数値)と、ステップS
41で選択された2つのレコード(以下、選択レコード
という)の重要度とを比較する(ステップS42)。
【0076】そして、比較を行なった4つの重要度のう
ち、重要度の高い2つのサンプリング値を、計数値保存
領域341Aに残す、もしくは、上書きする。新たな計
数値を上書きする場合(ステップS43のYESルー
ト)、選択レコードにおけるサンプリング値および重要
度をそれぞれ誤差計測カウンタ342Aの値に加算した
上で(ステップS44)、その新しい計数値とサンプリ
ング時刻と重要度とを選択レコードに上書き保存し(ス
テップS45)、ステップS39へ移行する。新たな計
数値を上書きせず選択レコード内の情報を残す場合(ス
テップS43のNOルート)には、ステップS44およ
びS45の処理を実行することなく、ステップS39へ
移行する。
【0077】なお、ステップS26における判断の結
果、無効レコードが1つしかない場合には、2つのサン
プリング値のうち一方に対して、上述したステップS2
7,S36〜S38の処理を実行するとともに、他方に
対して、上述したステップS40〜S45の処理を実行
することになる。
【0078】また、第2実施形態においても、上述した
ステップS23〜S25によって、プロセッサ20にお
ける、サンプリング周期毎のイベントの発生回数を計数
する計数ステップが実現されている。また、上述したス
テップS26,S27,S30,S36〜S45によっ
て、重要度の高いサンプリング値を計数値保存領域34
1Aに残しながら、上記計数ステップで得られた新たな
サンプリング値を計数値保存領域341Aに書き込む書
込ステップが実現されている。
【0079】このように、本発明の第2実施形態によれ
ば、第1実施形態と同様の作用効果が得られるほか、2
種類のイベント発生回数についてのピーク値とそのピー
ク発生時刻とを、一つの値保存部43Aによって計測す
ることが可能になる。また、重要度として、計数値(サ
ンプリング値)を所定関数に代入することによって算出
された値を用いることで、異なる基準で測定された複数
種類(第2実施形態では2種類)の計数値を、共通の基
準の下で比較することが可能になる。これにより、一つ
の値保存部34Aにおいて、異なる基準で測定された複
数種類の計数値が混在していても、種類に関係なく、よ
り重要度の高い計数値を残すことができる。
【0080】なお、第2実施形態では、2種類のイベン
トの発生回数をそれぞれカウンタ331,332によっ
て計数する場合について説明したが、本発明は、これに
限定されるものではなく、3以上のカウンタをそなえ、
3種類以上のイベントの発生回数を計数する場合に適用
されてもよく、この場合も、上述した第2実施形態と同
様の作用効果が得られることはいうまでもない。
【0081】〔3〕第3実施形態の説明 図8は本発明の第3実施形態としてのイベント計測装置
(性能測定カウンタ)およびプロセッサシステムの構成
を示すブロック図、図9は第3実施形態における値保存
部の構成を示す図である。図8に示すように、第3実施
形態のプロセッサシステム10Bは、プロセッサ20と
性能測定カウンタ40とから構成されている。
【0082】プロセッサ20は、第1実施形態と同様、
情報処理を行なうものであって、性能測定対象(イベン
ト発生回数の計測対象)である。性能測定カウンタ(イ
ベント計測装置)40もプロセッサ20に内蔵され、こ
のプロセッサ20内における計測対象イベントの発生回
数を計測するためのものであるが、第3実施形態の性能
測定カウンタ40は、イベント選択器41,カウンタ制
御器42および値保存部43をそなえて構成され、主に
メモリアクセスに関する情報を収集するものである。特
に、第3実施形態では、プロセッサ20における全メモ
リ空間を複数のブロックに分割し、イベント選択器41
やカウンタ制御器42が、各ブロックのアドレスをイベ
ントの種類として認識しながら各ブロックに対するアク
セス回数をイベントの発生回数として計数するものとす
る。
【0083】ここで、イベント選択器41は、プロセッ
サ20の各部からイベント信号とイベントID(イベン
トが発生した時のメモリアドレス)とを受け取って、以
下のように機能するものである。各イベント信号は、特
定のイベントが発生する度に送られる。第3実施形態で
のイベントとは、例えばメモリの読出/書込などであ
り、イベントIDは、そのときのメモリアドレスであ
る。イベント選択器41には、第1実施形態と同様、外
部から、様々なイベント条件を設定することができる。
そのイベント条件が満たされた場合に、イベント選択器
41は、カウンタ制御器42に対してイベントが発生し
たことを表わす信号と、イベントIDとを送り、そのイ
ベントIDに基づいて、値保存部43(計数値保存領域
431)内の対応レコード(カウンタ)を1だけカウン
トアップするよう指示する。
【0084】カウンタ制御器42は、値保存部43(計
数値保存領域431)内の対応レコード(カウンタ)に
おける計数値を制御する、つまり、値保存部43の各レ
コードに対する計数値の書込を制御する制御部としての
機能を果たすものである。より具体的に説明すると、カ
ウンタ制御器42は、イベントの種類毎に(本実施形態
ではイベントID毎に)、値保存部43の各レコードに
おける計数値を更新しながら計数を行なう。つまり、カ
ウンタ制御器42は、イベント選択器41から上記の信
号およびイベントIDを受け取ると、そのイベントID
に対応するレコードを値保存部43から検索し、対応す
るレコードが存在する場合、そのレコードにおける計数
値を1だけカウントアップする。
【0085】対応するレコードが存在しない場合、即
ち、値保存部43に保存されていない新たな種類(新た
なイベントID)のイベントの発生回数の計数を開始す
る際には、そのイベントの発生回数の計数値を保存すべ
きレコード(保存領域)を値保存部43上に確保し、そ
のレコードに新たな計数値やイベントIDを書き込む。
その際、カウンタ制御器42は、後述するごとく重要度
の高い計数値を値保存部34に残すような書込制御を行
なうように構成されている。
【0086】なお、カウンタ制御器42も、上述したカ
ウンタ制御器32と同様、外部からの指示に応じて、値
保存部43の各レコードにおける計数値を、“0”にク
リアしたり任意の値に設定したりすることができる。ま
た、カウンタ制御器42は、各レコードにおける計数値
に応じて(例えば、その計数値がオーバフローした場合
などに)、プロセッサ20に対して割り込みを発生する
機能も有している。また、上述したイベント選択器41
およびカウンタ制御器42と、値保存部43の各レコー
ドとにより、プロセッサ20におけるイベントの発生回
数を計数する計数部としての機能が実現されている。
【0087】値保存部(保存部)43は、上記計数部の
機能によって得られた計数値を保存するもので、この値
保存部43においては、図9に示すように、計数値を保
持する領域全体が、ハッシュテーブルを用いて複数(図
中、n個)のセットに分割され、各セット内で計数値の
更新時刻に基づいて新たな計数値の上書きを行なうセッ
ト・アソシアティブ方式が採用されている。値保存部4
3の全体は、上記セットの配列として表わされる。
【0088】そして、各セットは、計数値保存領域43
1,LRU情報保持領域432および誤差計測カウンタ
433を有している。計数値保存領域(保存領域)43
1は、計数値を保持しうる、所定数のレコードを有して
いる。各レコードは、イベントIDとそのイベントID
に対応するイベントの発生回数(計数値)との組を保持
するとともに、そのレコードが有効であるか無効である
かを表わす有効/無効ビット(図中ではVと表記)を有
している。
【0089】LRU(Least Recently Used)情報保持
領域432は、セット内の各レコードの更新情報を保持
するものである。第3実施形態では、計数値の更新時刻
を重要度として用いて計数値の追い出し処理を行なうべ
く、LRU情報保持領域432には、LRU情報、即
ち、各レコードにおける計数値のアクセス順序(更新順
序)に関する情報が記録されている。
【0090】誤差計測カウンタ(誤差計測部)433
は、セット内の各レコードから追い出された計数値の合
計値を記録するものである。つまり、誤差計測カウンタ
433は、セット内のレコードにおいて新たな計数値を
上書きすることによって破棄される計数値の合計値を、
誤差として計測して保持するものである。なお、本実施
形態では、誤差計測カウンタ433をセット毎にそなえ
ているが、同様の誤差計測カウンタを、値保存部43
(計数値保存領域431の全体)に対して一つだけそな
えてもよい。
【0091】上述した値保存部43では、レコード(カ
ウンタ)は、イベントIDをキーとするハッシュ関数を
インデックスとして配置されている。ここで用いられる
ハッシュ関数は、イベントID(メモリアドレス)の下
位ビットをインデックスとして取り出す関数である。イ
ンデックスにより、一つのセットが選択されるので、セ
ット内の各イベントIDと、カウンタ制御器42から渡
されたイベントIDとを比較することにより、イベント
IDの一致するレコード(対応レコード)を検索する。
【0092】対応レコードが見つかれば、その対応レコ
ードにおける計数値を1だけカウントアップし、LRU
情報保持領域432におけるLRU情報を書き換える。
対応レコードが見つからなければ、LRU情報に従っ
て、追い出すべき計数値を保持するレコードを決め、そ
の計数値を誤差計測カウンタ433に足し込んだ後、そ
のレコードに、新しいイベントIDおよび新しい計数値
を上書きする。このときの新たな計数値は、当然、
“1”となる。なお、上述したイベント選択器41およ
びカウンタ制御器42(計数部および制御部)も、第1
や第2実施形態と同様、専用ソフトウェア(イベント計
測プログラム)によって実現される。
【0093】次に、図10および図11を参照しなが
ら、上述のごとく構成された第3実施形態の性能測定カ
ウンタ30Bの動作について説明する。図10に示すフ
ローチャート(ステップS51〜S58)に従って、第
3実施形態におけるプロセッサ20の性能情報収集手順
について説明する。まず、ユーザは、情報を収集したい
イベント(例えばリモートノードアクセス回数など)を
選び出し、計測対象のイベントとしてイベント選択器4
1に設定するとともに(ステップS51)、プロセッサ
20における全メモリ空間の分割単位であるブロックの
大きさ(例えばページ単位,キャッシュブロック単位な
ど)を指定する(ステップS52)。
【0094】この後、性能測定カウンタ30B(イベン
ト選択器41およびカウンタ制御器42)に対して開始
信号を送りイベント計測を開始する(ステップS5
3)。これにより、図11を参照しながら後述するイベ
ント計測処理が実行される(ステップS54)。イベン
ト計測処理を終了する場合(ステップS55のYESル
ート)には、性能測定カウンタ30Bに対して停止信号
を送り、性能測定カウンタ30Bによる計測動作を停止
させる(ステップS56)。
【0095】そして、ユーザは、値保存部43から収集
されたデータを取り出し、計数値の大きいブロックのイ
ベントID(メモリアドレス)を得るとともに(ステッ
プS57)、セット毎に、各レコードに保存されている
計数値の合計値と、誤差計測カウンタ433の値とを比
較することにより、計数値全体に対してどれくらいの割
合の計数値が廃棄されたかを認識し、最終的に得られた
計数値(各レコードに残っている値)の確からしさを判
断する(ステップS58)。
【0096】ついで、図11に示すフローチャート(ス
テップS61〜S75)に従って、第3実施形態におけ
るイベント計測手順(図10のステップS54のイベン
ト計測処理)について説明する。性能測定カウンタ30
Bにおいては、開始信号を受信すると(ステップS61
のYESルート)、カウンタ制御器42により、計数値
保存領域431(各レコード)や誤差計測カウンタ43
3の値が全て“0”にセットされるとともに、各レコー
ドにおける有効/無効ビットVが“無効”にセットされ
る(ステップS62)。
【0097】開始信号の受信に伴って、イベント選択器
41は、計数値を1ずつカウントアップするための信号
とイベントIDとをカウンタ制御器42へ出力できる状
態になり、所定の条件を満たすイベント(計測対象のイ
ベント)が発生すると、カウントアップ信号およびイベ
ントIDがカウンタ制御器42へ出力される(ステップ
S63のYESルート)。なお、イベント選択器41
は、図10のステップS56による停止信号を受ける
と、カウントアップ信号やイベントIDの出力を停止す
るようになっている。
【0098】カウンタ制御器42では、受け取ったイベ
ントIDをハッシュ関数にかけ、インデックスを得て
(ステップS64)、そのインデックスに対応したセッ
トを、値保存部43の中から取り出す(ステップS6
5)。そして、セット内のイベントIDと、イベント選
択器41からのイベントID(今回発生したイベントの
ID)とを比較し(ステップS66)、一致するイベン
トIDが存在するか否かを判断する(ステップS6
7)。
【0099】一致するイベントIDが存在する場合(ス
テップS67のYESルート)、そのイベントIDを保
持するレコードにおける計数値を1だけカウントアップ
更新し(ステップS68)、LRU情報保持領域433
において、今回更新したレコードが最新のものとなるよ
うにLRU情報を更新した後(ステップS69)、ステ
ップS63に戻る。これに対し、一致するイベントID
が存在しない場合(ステップS67のNOルート)、カ
ウンタ制御器42は、そのセット内に空きレコード(即
ち、有効/無効ビットVが無効状態である無効レコー
ド)が有るか否かを判断する(ステップS70)。
【0100】無効レコードが有る場合(ステップS70
のYESルート)、その無効レコードに、新たな計数値
“1”とイベントIDとが書き込まれるとともに(ステ
ップS71)、その無効レコードにおける有効/無効ビ
ットVを、無効状態から有効状態に切り替え(ステップ
S72)、今回更新したレコードが最新のものとなるよ
うにLRU情報を更新した後(ステップS69)、ステ
ップS63に戻る。
【0101】一方、セット内の全レコードが有効状態で
あり、無効レコードが存在しない場合(ステップS70
のNOルート)、カウンタ制御器42は、LRU情報保
持領域433を参照し、セット内の全レコードの中か
ら、最も古い計数値を保持しているレコード(つまり、
最も長い間、アクセス・更新されていないレコード)を
選択し(ステップS73)、選択されたレコード(以
下、選択レコードという)の計数値を、誤差計測カウン
タ433の値に加算した上で(ステップS74)、その
選択レコードに、新しい計数値“1”とイベントIDと
が上書き保存される(ステップS75)。そして、今回
更新したレコードが最新のものとなるようにLRU情報
を更新した後(ステップS69)、ステップS63に戻
る。
【0102】このように、本発明の第3実施形態におい
ても、値保存部43の計数値保存領域431に保存され
る各計数値に、「重要度」という属性(本実施形態では
LRU情報つまり更新時刻)を付与しておくことで、値
保存部43の計数値保存領域431の容量を超えて、書
き込むべき計数値が発生した場合、重要度の低いレコー
ドに新たな計数値が上書きされる。これにより、常に重
要度の大きな値と結び付けられている計数値が値保存部
43に残るようになる。
【0103】ここで、第3実施形態の性能測定カウンタ
30Bで記録する事象について具体的に考える。第1や
第2実施形態が、計測対象の領域が時間的に広大な場合
に対応したものであったのに対し、第3実施形態では、
計測対象の領域が空間的に広大な場合に対応したもので
ある。例えば、アドレス空間全体に対するデータを収集
しようとすると、従来手法では、計数値を保存するため
にメモリ全体と同じレベルのメモリが必要となってしま
う。そこで、第3実施形態の性能測定カウンタ30B
は、小容量の値保存部43を用いながら、メモリ空間全
体の状況を効率的に把握可能なデータを採取できるよう
に構成されている。
【0104】このようにして、値保存部43の容量が少
なくても、必要性の高い計数値を確実に且つ効率よく採
取することができ、全メモリ空間といった広大な空間に
関するイベント情報を採取しても、統計情報を得るため
に必要なデータのみが値保存部43に残り、最終的にプ
ロセッサ20の性能について全体的な判断を行なうのに
有用なデータを得ることができる。
【0105】従って、不必要なオーバヘッドを避けなが
ら且つ少ないハードウェア物量(例えばLSI内に収ま
る程度のメモリ容量)で、メモリ空間全体に亘る情報収
集が可能になり、比較的小型のプロセッサにおいても性
能測定や性能チューニングを確実に行なえる。換言する
と、重要な情報のみが値保存部43に保存され、重要度
の低い情報が追い出されるので、計数値をメモリに退避
させたり特別なソフトウェアを起動したりすることな
く、小容量の値保存部43を用いて、広範囲に亘るデー
タを効率よく採取することができる。
【0106】特に、第3実施形態では、プロセッサ20
における全メモリ空間を複数のブロックに分割し、各ブ
ロックのアドレスをイベントの種類(イベントID)と
して認識しながら各ブロックに対するアクセス回数をイ
ベントの発生回数として計数することにより、小容量の
値保存部43を用いて、広大なメモリ空間全体において
イベントの発生回数の多かったブロックとその発生数と
を効率よく採取することができる。
【0107】一方、第1や第2実施形態では、計数値や
重要度の大きさ順にソートし、最小の計数値や最低の重
要度を見つけるという手法を採っているが、このような
手法では、計数値更新の度に実行されるソート処理のた
めに、どうしてもオーバヘッドが生じてしまう。
【0108】そこで、第3実施形態では、重要度として
別の基準を採用している。キャッシュメモリなどでは、
キャッシュブロックの追い出しの判断として、LRU方
式を用いることが多い。これは、最も最近アクセスされ
たブロックの優先度が最も高く、長い間、アクセスされ
ていないブロックの優先度が低いという優先度付けの方
式である。このキャッシュメモリにおける優先度の基準
を、第3実施形態の重要度の基準として採用する。即
ち、最も最近更新されたレコードにおける計数値の重要
度が最も高く、更新された時刻が最も古いレコードにお
ける計数値から順に廃棄する。
【0109】第3実施形態では、LRU方式を採用する
ことにより、レコードにおける計数値が更新されるのと
同時にそのレコードの重要度を最も高く設定するだけ
で、ソート処理を行なう必要が無くなる。従って、第1
や第2実施形態の手法に比べ、第3実施形態では、オー
バヘッドをより小さくすることができる。また、値保存
部43において、計数値を保持する領域全体が、ハッシ
ュテーブルを用いて複数のセットに分割され、各セット
内で計数値の更新時刻に基づいて新たな計数値の上書き
を行なうセット・アソシアティブ方式を採用することに
より、複数種類の計数値を、更新時刻に従って容易かつ
確実に管理することができる。
【0110】さらに、第3実施形態においても、第1実
施形態の誤差計測カウンタ342と同様の誤差計測カウ
ンタ433を用い、セット毎に、破棄された計数値の合
計値を計測・保持することにより、上書きによって値保
存部43から廃棄された全計数値の大きさ(合計値)
と、最終的に値保存部43に残った計数値とを比較する
ことが可能になる。
【0111】これにより、廃棄された計数値各々の大き
さは分からないが、セット内において、計数値全体に対
してどれくらいの割合の計数値が廃棄されたかを認識す
ることができる。つまり、最終的に値保存部43に残っ
ている値が、計数値全体をどの程度反映しているかを認
識でき、値保存部43に残った計数値の確からしさをセ
ット毎に判断することができる。
【0112】〔3−1〕第3実施形態の第1変形例の説
明 さて、第3実施形態の第1変形例においても、図8およ
び図9を参照した性能測定カウンタ40が用いられる。
上述した第3実施形態の性能測定カウンタ40では、プ
ロセッサ20におけるメモリ空間を成す各ブロックのメ
モリアドレスをイベントIDとして認識しながら、各ブ
ロックに対するアクセス回数を計数している。
【0113】これに対し、第3実施形態の第1変形例で
は、同じ性能測定カウンタ40を用いて、主に命令実行
に関する情報を収集する。より具体的には、イベントの
発生要因である命令のアドレスをイベントID(イベン
トの種類)として認識しながらイベントの発生回数を計
数する。つまり、メモリアドレスに代えて命令のアドレ
スをイベントIDとして用い、イベントの発生回数を、
そのイベントの発生要因となった命令のアドレスととも
に値保存部43に記録することにより、全実行命令につ
いて、イベントを発生させた回数の多かった命令のアド
レスとその発生数とを記録できるようになっている。
【0114】ただし、本変形例においては、イベント選
択器41が、イベントIDの取得手法が、上述した第3
実施形態と異なっている。つまり、本変形例において、
イベント選択器41は、プロセッサ20の各部からイベ
ント信号とイベントID(イベント発生元のインストラ
クションアドレス)とを受け取る。各イベント信号は、
特定のイベントが発生する度に送られる。本変形例のイ
ベントとは、例えばジャンプ命令の実行などであり、イ
ベントIDは、そのときのインストラクションアドレス
である。イベント選択器41には、第3実施形態と同
様、外部から、様々なイベント条件を設定することがで
きる。そのイベント条件が満たされた場合に、イベント
選択器41は、カウンタ制御器42に対してイベントが
発生したことを表わす信号と、イベントIDとを送り、
そのイベントIDに基づいて、値保存部43(計数値保
存領域431)内の対応レコード(カウンタ)を1だけ
カウントアップするよう指示する。
【0115】次に、図12に示すフローチャート(ステ
ップS81〜S87)に従って、第3実施形態の第1変
形例による、プロセッサ20の性能情報収集手順につい
て説明する。まず、ユーザは、情報を収集したいイベン
ト(例えばブランチ予測ミスの発生など)を選び出し、
計測対象のイベントとしてイベント選択器41に設定す
る(ステップS81)。
【0116】この後、性能測定カウンタ30B(イベン
ト選択器41およびカウンタ制御器42)に対して開始
信号を送りイベント計測を開始する(ステップS8
2)。これにより、図11を参照しながら前述したイベ
ント計測処理が実行される(ステップS83)。このス
テップS83では、イベントIDをメモリアドレスから
命令のアドレスに代えるだけで、図11に示した手順と
同様にしてイベント計測処理が行なわれる。イベント計
測処理を終了する場合(ステップS84のYESルー
ト)には、性能測定カウンタ30Bに対して停止信号を
送り、性能測定カウンタ30Bによる計測動作を停止さ
せる(ステップS85)。
【0117】そして、ユーザは、値保存部43から収集
されたデータを取り出し、計数値の大きいイベントのイ
ベントID、即ち、そのイベントの発生要因となった命
令のアドレスを得るとともに(ステップS86)、セッ
ト毎に、各レコードに保存されている計数値の合計値
と、誤差計測カウンタ433の値とを比較することによ
り、計数値全体に対してどれくらいの割合の計数値が廃
棄されたかを認識し、最終的に得られた計数値(各レコ
ードに残っている値)の確からしさを判断する(ステッ
プS87)。
【0118】このように、本発明の第3実施形態の第1
変形例では、上述した第3実施形態のごとくメモリを分
割するのではなく、値保存部43において命令のアドレ
ス毎にレコード(カウンタ)を用意することにより、例
えば、どの命令がキャッシュミスを起こしやすいか、ど
の命令が分岐予測ミスを引き起こしやすいかなどの情報
を収集することができる。
【0119】その際、イベントの発生要因である命令の
アドレスをイベントIDとして認識しながらイベントの
発生回数を計数することにより、計数値をメモリに退避
させたり特別なソフトウェアを起動したりすることな
く、小容量の値保存部43を用いて、全実行命令におい
てイベントを発生させた回数の多かった命令とその発生
数とを効率よく採取することができる。つまり、プログ
ラム全体といった広大な空間に関するイベント情報も、
少量の領域を用意するだけで効率よく収集することがで
きる。
【0120】〔3−2〕第3実施形態の第2変形例の説
明 さて、第3実施形態の第2変形例においても、図8およ
び図9を参照した性能測定カウンタ40が用いられる
が、この第2変形例では、性能測定カウンタ40により
収集される情報は、上述のごとく、イベントの発生回数
の多かったブロックとその発生数との組や、イベントを
発生させた回数の多かった命令のアドレスとその発生数
との組に限定されるものでなく、各種イベントの発生回
数と、そのイベントの種類を特定しうるイベントID
と、重要度と採取するものである。
【0121】この第2変形例では、上述した値保存部4
3に代えて、図13に示すような値保存部(保存部)4
4がそなえられている。図13は第3実施形態の第2変
形例における値保存部44の構成を示す図である。図1
3に示すように、値保存部(保存部)44は、計数値保
存領域441をそなえるほか、第1〜第3実施形態と同
様の誤差計測カウンタ(誤差計測部;図示省略)をそな
えていてもよい。
【0122】この値保存部44における計数値保存領域
(保存領域)441も、所定数のレコードを有してい
る。ただし、各レコードは、上述したイベント選択器4
1およびカウンタ制御器42により更新される計数値を
保持する領域と、その計数値に対応するイベントID
(イベントの種類)を保持する領域と、有効/無効ビッ
トVと、例えば第2実施形態と同様にして算出された重
要度を保持する領域とを有している。
【0123】値保存部43に代えて、上述のような値保
存部44を含む性能測定カウンタ40を用いることによ
り、新たな種類のイベントの発生回数の計数を開始する
際、その計数値を書き込むための空きレコードが値保存
部44に無い場合、重要度の最も低い計数値を値保存部
44から追い出し、そこに新たな計数値を書き込む。こ
れにより、重要な種類の情報のみが値保存部44に保存
され、重要度の低い種類の情報が追い出されるので、計
数値をメモリに退避させたり特別なソフトウェアを起動
したりすることなく、小容量の値保存部44を用いて、
プロセッサ20の性能測定や性能チューニングに必要
な、多種類のデータを効率よく採取することができる。
【0124】〔4〕その他 なお、本発明は上述した実施形態に限定されるものでは
なく、本発明の趣旨を逸脱しない範囲で種々変形して実
施することができる。
【0125】〔5〕付記 (付記1) プロセッサにおけるイベントの発生回数を
計数する計数部と、該計数部によって得られた計数値を
保存する保存部と、該保存部に対する該計数値の書込を
制御する制御部とをそなえ、該制御部が、重要度の高い
計数値を該保存部に残しながら、該計数部によって得ら
れる新たな計数値を該保存部に書き込むように該書込を
制御することを特徴とする、イベント計測装置。
【0126】(付記2) 該計数部が、所定時間毎に、
該所定時間内の該イベントの発生回数を計数し、該制御
部が、該所定時間毎に、該計数部による計数値を、該新
たな計数値として、当該計数値の計測時刻とともに該保
存部に書き込むことを特徴とする、付記1記載のイベン
ト計測装置。
【0127】(付記3) 該重要度が、該計数値そのも
のであることを特徴とする、付記2記載のイベント計測
装置。 (付記4) 該重要度が、該計数値を所定関数に代入す
ることによって算出された値であることを特徴とする、
付記2記載のイベント計測装置。
【0128】(付記5) 該計数部が、イベントの種類
毎に、該保存部における計数値を更新しながら計数を行
なうとともに、該計数部が、該保存部に保存されていな
い新たな種類のイベントの発生回数の計数を開始する際
には、該制御部が、該新たな種類のイベントの発生回数
の計数値を保存すべき保存領域を該保存部上に確保し、
その保存領域に、該新たな種類のイベントの発生回数の
計数値を該新たな計数値として書き込むことを特徴とす
る、付記1記載のイベント計測装置。
【0129】(付記6) 該重要度が、該計数部による
該計数値の更新時刻であることを特徴とする、付記5記
載のイベント計測装置。 (付記7) 該保存部において、該計数値を保持する領
域全体を、ハッシュテーブルを用いて複数のセットに分
割し、各セット内で該計数値の更新時刻に基づいて該新
たな計数値の上書きを行なうセット・アソシアティブ方
式を採用したことを特徴とする、付記6記載のイベント
計測装置。
【0130】(付記8) 該プロセッサにおける全メモ
リ空間を複数のブロックに分割し、該計数部が、各ブロ
ックのアドレスを該イベントの種類として認識しながら
各ブロックに対するアクセス回数を該イベントの発生回
数として計数することを特徴とする、付記5〜付記7の
いずれか一つに記載のイベント計測装置。 (付記9) 該計数部が、該イベントの発生要因である
命令のアドレスを該イベントの種類として認識しながら
該イベントの発生回数を計数することを特徴とする、付
記5〜付記7のいずれか一つに記載のイベント計測装
置。
【0131】(付記10) 該保存部において該新たな
計数値を上書きすることによって破棄される計数値の合
計値を、誤差として計測して保持する誤差計測部をさら
にそなえたことを特徴とする、付記1〜付記6,付記
8,付記9のいずれか一つに記載のイベント計測装置。 (付記11) 該保存部において該新たな計数値を上書
きすることによって破棄される計数値の合計値を、誤差
として計測して保持する誤差計測部を、該領域全体に対
して一つだけそなえたことを特徴とする、付記7記載の
イベント計測装置。
【0132】(付記12) 該保存部において該新たな
計数値を上書きすることによって破棄される計数値の合
計値を、誤差として計測して保持する誤差計測部を、該
セット毎にそなえたことを特徴とする、付記7記載のイ
ベント計測装置。 (付記13) プロセッサにおけるイベントの発生回数
を計数する計数ステップと、該計数ステップにより新た
な計数値が得られた場合、重要度の高い計数値を保存部
に残しながら、該新たな計数値を該保存部に書き込む書
込ステップとを含むことを特徴とする、イベント計測方
法。
【0133】(付記14) プロセッサにおけるイベン
トの発生回数を計数する計数部、および、重要度の高い
計数値を保存部に残しながら、該計数部によって得られ
る新たな計数値を該保存部に書き込むように、該保存部
に対する該計数値の書込を制御する制御部としてコンピ
ュータを機能させることを特徴とする、イベント計測プ
ログラム。
【0134】(付記15) プロセッサにおけるイベン
トの発生回数を計数する計数部、および、重要度の高い
計数値を保存部に残しながら、該計数部によって得られ
る新たな計数値を該保存部に書き込むように、該保存部
に対する該計数値の書込を制御する制御部としてコンピ
ュータを機能させるイベント計測プログラムを記録した
コンピュータ読取可能な記録媒体。
【0135】(付記16) 情報処理を行なうプロセッ
サと、該プロセッサにおけるイベントの発生回数を計数
する計数部と、該計数部によって得られた計数値を保存
する保存部と、該保存部に対する該計数値の書込を制御
する制御部とをそなえ、該制御部が、重要度の高い計数
値を該保存部に残しながら、該計数部によって得られる
新たな計数値を該保存部に書き込むように該書込を制御
することを特徴とする、プロセッサシステム。
【0136】
【発明の効果】以上詳述したように、本発明のイベント
計測装置(請求項1〜請求項6)および方法(請求項
7)並びにイベント計測プログラム(請求項8)および
同プログラムを記録したコンピュータ読取可能な記録媒
体(請求項9)並びにプロセッサシステム(請求項1
0)によれば、以下のような効果ないし利点を得ること
ができる。
【0137】(1)保存対象の計数値が保存部の容量を
超えると、重要度の高い計数値を保存部に残しながら新
たな計数値を保存部に上書きすることにより、保存部の
容量が少なくても、必要性の高い計数値を確実に採取す
ることができる。つまり、長時間あるいは広範囲に亘っ
てイベント発生回数を計測しても、統計情報を得るため
に必要なデータのみが保存部に残り、最終的にプロセッ
サの性能について全体的な判断を行なうのに有用なデー
タを得ることができる。従って、不必要なオーバヘッド
を避けながら且つ少ないハードウェア物量(例えばLS
I内に収まる程度のメモリ容量)で、長時間に亘る情報
収集やメモリ空間全体に亘る情報収集が可能になり、比
較的小型のプロセッサにおいても性能測定や性能チュー
ニングを確実に行なえる(請求項1,請求項7〜請求項
10)。
【0138】(2)所定時間毎に、その所定時間内に発
生したイベントの数を計数し、その計数値を書き込むた
めの空き領域が保存部に無い場合、重要度の最も低い計
数値を保存部から追い出し、そこに新たな計数値を計測
時刻とともに書き込む。これにより、重要な情報のみが
保存部に保存され、重要度の低い情報が追い出されるの
で、計数値をメモリに退避させたり特別なソフトウェア
を起動したりすることなく、小容量の保存部を用いて、
長時間に亘るデータを効率よく採取することができる
(請求項2)。
【0139】(3)このとき、重要度を計数値そのもの
とすることで、最も小さい計数値から順に保存部から廃
棄され、計数値の大きいものほど重要度が高いものとし
て扱われ、大きな計数値が優先的に保存部に残される。
従って、イベントの発生回数を所定時間毎に計測時刻と
ともに計測し保存部で保存することにより、イベントの
発生回数が多かった時刻とその発生数とを長時間に亘っ
て採取することができる。これにより、イベント発生の
ピーク値とそのピークの発生時刻とを採取でき、例え
ば、キャッシュミスが多い部分のデータ構造の見直しが
可能になり、プログラムの性能向上に役立つデータを得
ることができる(請求項3)。
【0140】(4)また、重要度として、計数値を所定
関数に代入することによって算出された値を用いること
で、異なる基準で測定された複数種類の計数値を、共通
の基準の下で比較することが可能になる。これにより、
一つの保存部において、異なる基準で測定された複数種
類の計数値が混在していても、種類に関係なく、より重
要度の高い計数値を残すことができる。
【0141】(5)新たな種類のイベントの発生回数の
計数を開始する際、その計数値を書き込むための空き領
域が保存部に無い場合、重要度の最も低い計数値を保存
部から追い出し、そこに新たな計数値を書き込む。これ
により、重要な種類の情報のみが保存部に保存され、重
要度の低い種類の情報が追い出されるので、計数値をメ
モリに退避させたり特別なソフトウェアを起動したりす
ることなく、小容量の保存部を用いて、広範囲に亘るデ
ータや多種類のデータを効率よく採取することができる
(請求項4)。
【0142】(6)このとき、重要度を、計数部による
計数値の更新時刻とすることで、更新された時刻が最も
古い計数値から順に保存部から破棄され、最も最近更新
された計数値の重要度が最も高く、更新時刻が最近の計
数値が優先的に保存部に残される。このように更新時刻
を重要度として用いた場合、例えば計数値そのものを重
要度として計数値のソート処理を行なう場合に比べて、
オーバヘッドをより小さくすることができる(請求項
5)。
【0143】(7)保存部において、計数値を保持する
領域全体を、ハッシュテーブルを用いて複数のセットに
分割し、各セット内で計数値の更新時刻に基づいて新た
な計数値の上書きを行なうセット・アソシアティブ方式
を採用することにより、複数種類の計数値を、更新時刻
に従って容易かつ確実に管理することができる。
【0144】(8)プロセッサにおける全メモリ空間を
複数のブロックに分割し、各ブロックのアドレスをイベ
ントの種類として認識しながら各ブロックに対するアク
セス回数をイベントの発生回数として計数することによ
り、計数値をメモリに退避させたり特別なソフトウェア
を起動したりすることなく、小容量の保存部を用いて、
広大なメモリ空間全体においてイベントの発生回数の多
かったブロックとその発生数とを効率よく採取すること
ができる。
【0145】(9)イベントの発生要因である命令のア
ドレスをイベントの種類として認識しながらイベントの
発生回数を計数することにより、計数値をメモリに退避
させたり特別なソフトウェアを起動したりすることな
く、小容量の保存部を用いて、全実行命令においてイベ
ントを発生させた回数の多かった命令とその発生数とを
効率よく採取することができる。
【0146】(10)重要度の低い計数値を廃棄する際
に、廃棄される計数値の合計値を誤差として計測・保持
することにより、上書きによって保存部から廃棄された
全計数値の大きさ(合計値)と、最終的に保存部に残っ
た計数値とを比較することが可能になる。これにより、
計数値全体に対してどれくらいの割合の計数値が廃棄さ
れたかを認識することができる。つまり、最終的に保存
部に残っている値が、計数値全体をどの程度反映してい
るかを認識でき、保存部に残った計数値の確からしさを
判断することができる(請求項6)。
【図面の簡単な説明】
【図1】本発明の第1実施形態としてのイベント計測装
置(性能測定カウンタ)およびプロセッサシステムの構
成を示すブロック図である。
【図2】第1実施形態における値保存部の構成を示す図
である。
【図3】第1実施形態におけるプロセッサの性能情報収
集手順を説明するためのフローチャートである。
【図4】第1実施形態におけるイベント計測手順を説明
するためのフローチャートである。
【図5】本発明の第2実施形態としてのイベント計測装
置(性能測定カウンタ)の構成を示すブロック図であ
る。
【図6】第2実施形態における値保存部の構成を示す図
である。
【図7】第2実施形態におけるイベント計測手順を説明
するためのフローチャートである。
【図8】本発明の第3実施形態としてのイベント計測装
置(性能測定カウンタ)およびプロセッサシステムの構
成を示すブロック図である。
【図9】第3実施形態における値保存部の構成を示す図
である。
【図10】第3実施形態におけるプロセッサの性能情報
収集手順を説明するためのフローチャートである。
【図11】第3実施形態におけるイベント計測手順を説
明するためのフローチャートである。
【図12】第3実施形態の第1変形例におけるプロセッ
サの性能情報収集手順を説明するためのフローチャート
である。
【図13】第3実施形態の第2変形例における値保存部
の構成を示す図である。
【図14】一般的な分散共有メモリ型の並列計算機の構
成を示すブロック図である。
【符号の説明】
10,10A,10B プロセッサシステム 20 プロセッサ 30 性能測定カウンタ(イベント計測装置) 31,31A イベント選択器(計数部) 32,32A カウンタ制御器(計数部,制御部) 33,331,332 カウンタ(計数部) 34,34A 値保存部(保存部) 341,341A 計数値保存領域(保存領域) 342,342A 誤差計測カウンタ(誤差計測部) 40 性能測定カウンタ(イベント計測装置) 41 イベント選択器(計数部) 42 カウンタ制御器(計数部,制御部) 43,44 値保存部(保存部) 431,441 計数値保存領域(保存領域) 432 LRU情報保持領域 433 誤差計測カウンタ(誤差計測部)

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサにおけるイベントの発生回数
    を計数する計数部と、 該計数部によって得られた計数値を保存する保存部と、 該保存部に対する該計数値の書込を制御する制御部とを
    そなえ、 該制御部が、重要度の高い計数値を該保存部に残しなが
    ら、該計数部によって得られる新たな計数値を該保存部
    に書き込むように該書込を制御することを特徴とする、
    イベント計測装置。
  2. 【請求項2】 該計数部が、所定時間毎に、該所定時間
    内の該イベントの発生回数を計数し、 該制御部が、該所定時間毎に、該計数部による計数値
    を、該新たな計数値として、当該計数値の計測時刻とと
    もに該保存部に書き込むことを特徴とする、請求項1記
    載のイベント計測装置。
  3. 【請求項3】 該重要度が、該計数値そのものであるこ
    とを特徴とする、請求項2記載のイベント計測装置。
  4. 【請求項4】 該計数部が、イベントの種類毎に、該保
    存部における計数値を更新しながら計数を行なうととも
    に、 該計数部が、該保存部に保存されていない新たな種類の
    イベントの発生回数の計数を開始する際には、該制御部
    が、該新たな種類のイベントの発生回数の計数値を保存
    すべき保存領域を該保存部上に確保し、その保存領域
    に、該新たな種類のイベントの発生回数の計数値を該新
    たな計数値として書き込むことを特徴とする、請求項1
    記載のイベント計測装置。
  5. 【請求項5】 該重要度が、該計数部による該計数値の
    更新時刻であることを特徴とする、付記4記載のイベン
    ト計測装置。
  6. 【請求項6】 該保存部において該新たな計数値を上書
    きすることによって破棄される計数値の合計値を、誤差
    として計測して保持する誤差計測部をさらにそなえたこ
    とを特徴とする、請求項1〜請求項5のいずれか1項に
    記載のイベント計測装置。
  7. 【請求項7】 プロセッサにおけるイベントの発生回数
    を計数する計数ステップと、 該計数ステップにより新たな計数値が得られた場合、重
    要度の高い計数値を保存部に残しながら、該新たな計数
    値を該保存部に書き込む書込ステップとを含むことを特
    徴とする、イベント計測方法。
  8. 【請求項8】 プロセッサにおけるイベントの発生回数
    を計数する計数部、および、 重要度の高い計数値を保存部に残しながら、該計数部に
    よって得られる新たな計数値を該保存部に書き込むよう
    に、該保存部に対する該計数値の書込を制御する制御部
    としてコンピュータを機能させることを特徴とする、イ
    ベント計測プログラム。
  9. 【請求項9】 プロセッサにおけるイベントの発生回数
    を計数する計数部、および、 重要度の高い計数値を保存部に残しながら、該計数部に
    よって得られる新たな計数値を該保存部に書き込むよう
    に、該保存部に対する該計数値の書込を制御する制御部
    としてコンピュータを機能させるイベント計測プログラ
    ムを記録したコンピュータ読取可能な記録媒体。
  10. 【請求項10】 情報処理を行なうプロセッサと、 該プロセッサにおけるイベントの発生回数を計数する計
    数部と、 該計数部によって得られた計数値を保存する保存部と、 該保存部に対する該計数値の書込を制御する制御部とを
    そなえ、 該制御部が、重要度の高い計数値を該保存部に残しなが
    ら、該計数部によって得られる新たな計数値を該保存部
    に書き込むように該書込を制御することを特徴とする、
    プロセッサシステム。
JP2001149166A 2001-05-18 2001-05-18 イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム Expired - Lifetime JP4445160B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001149166A JP4445160B2 (ja) 2001-05-18 2001-05-18 イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム
US10/079,546 US7020808B2 (en) 2001-05-18 2002-02-22 Event measuring apparatus and method, computer readable record medium in which an event measuring program is stored, and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001149166A JP4445160B2 (ja) 2001-05-18 2001-05-18 イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2002342125A true JP2002342125A (ja) 2002-11-29
JP4445160B2 JP4445160B2 (ja) 2010-04-07

Family

ID=18994368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001149166A Expired - Lifetime JP4445160B2 (ja) 2001-05-18 2001-05-18 イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム

Country Status (2)

Country Link
US (1) US7020808B2 (ja)
JP (1) JP4445160B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005339107A (ja) * 2004-05-26 2005-12-08 Nec Electronics Corp パフォーマンス・モニタ回路
JP2008140380A (ja) * 2006-11-30 2008-06-19 Internatl Business Mach Corp <Ibm> プロセッサ性能計測のための重み付けされたイベント計数方法、プロセッサ、および重み付け性能カウンタ回路(プロセッサ性能計測のための重み付けされたイベント計数システムおよび方法)
JP2008165797A (ja) * 2006-12-29 2008-07-17 Intel Corp Pcuにプロセッサアーキテクチャイベントをファクタリングすることによる電力使用の最適化
JP2008186080A (ja) * 2007-01-26 2008-08-14 Toshiba Corp パフォーマンスモニタ装置および情報処理装置
JP2009129301A (ja) * 2007-11-27 2009-06-11 Nec Electronics Corp 自己診断回路及び自己診断方法
JP2010003057A (ja) * 2008-06-19 2010-01-07 Fujitsu Microelectronics Ltd プロセッサ、性能プロファイリング装置、性能プロファイリングプログラムおよび性能プロファイリング方法
JP2010020767A (ja) * 2008-07-09 2010-01-28 Arm Ltd データ処理装置の監視およびその監視データの集計
JP2010244393A (ja) * 2009-04-08 2010-10-28 Renesas Electronics Corp パフォーマンス評価装置、及びパフォーマンス評価方法
JP4931804B2 (ja) * 2005-04-11 2012-05-16 パナソニック株式会社 システム性能プロファイリング装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302616B2 (en) * 2003-04-03 2007-11-27 International Business Machines Corporation Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory
US7213169B2 (en) * 2003-04-03 2007-05-01 International Business Machines Corporation Method and apparatus for performing imprecise bus tracing in a data processing system having a distributed memory
US7272754B2 (en) * 2003-09-27 2007-09-18 International Business Machines Corporation Implementation-efficient multiple-counter value hardware performance counter
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US20050149809A1 (en) * 2003-12-10 2005-07-07 International Business Machines Corporation Real time determination of application problems, using a lightweight diagnostic tracer
US7580905B2 (en) * 2003-12-15 2009-08-25 Intel Corporation Adaptive configuration of platform
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
US7895382B2 (en) 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7346813B1 (en) * 2004-04-05 2008-03-18 Sun Microsystems, Inc. Distributed event reporting hierarchy
US7523359B2 (en) * 2005-03-31 2009-04-21 International Business Machines Corporation Apparatus, system, and method for facilitating monitoring and responding to error events
US20070089094A1 (en) * 2005-10-13 2007-04-19 Levine Frank E Temporal sample-based profiling
US7719996B2 (en) * 2006-09-25 2010-05-18 Hewlett-Packard Development Company, L.P. Encoding timestamps
JP5326708B2 (ja) * 2009-03-18 2013-10-30 富士通株式会社 演算処理装置および演算処理装置の制御方法
US20120226477A1 (en) * 2011-03-04 2012-09-06 International Business Machines Corporation Reducing Overhead and Increasing Precision with Code Instrumentation
US20120254822A1 (en) * 2011-03-28 2012-10-04 Microsoft Corporation Processing optimization load adjustment
US9055711B2 (en) * 2012-07-16 2015-06-09 HGST Netherlands B.V. System and method for maintaining data integrity on a storage medium
US8879180B2 (en) 2012-12-12 2014-11-04 HGST Netherlands B.V. System, method and apparatus for data track usage sequence to reduce adjacent track interference effect
US10578499B2 (en) 2013-02-17 2020-03-03 Microsoft Technology Licensing, Llc Piezo-actuated virtual buttons for touch surfaces
US9448631B2 (en) 2013-12-31 2016-09-20 Microsoft Technology Licensing, Llc Input device haptics and pressure sensing
KR102440948B1 (ko) 2016-02-11 2022-09-05 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4339657A (en) * 1980-02-06 1982-07-13 International Business Machines Corporation Error logging for automatic apparatus
US4845615A (en) * 1984-04-30 1989-07-04 Hewlett-Packard Company Software performance analyzer
WO1992010908A2 (en) * 1990-12-14 1992-06-25 Battelle Memorial Institute High-speed video instrumentation system
US5530705A (en) * 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US5606563A (en) * 1995-05-18 1997-02-25 Pmc-Sierra, Inc. Programmable jump window for sonet compliant bit error monitoring
EP2088437A1 (en) * 1996-10-22 2009-08-12 Elster Electricity, LLC Energy Meter with Power Quality Monitoring and Diagnostic Systems
US5796939A (en) * 1997-03-10 1998-08-18 Digital Equipment Corporation High frequency sampling of processor performance counters
JPH1132017A (ja) * 1997-07-11 1999-02-02 Fujitsu Ltd 伝送装置のpmパラメータ処理装置
US6263458B1 (en) * 1997-12-31 2001-07-17 Alcatel Usa Sourcing, L.P. Regulated push method of data collection
US6591383B1 (en) * 1999-11-19 2003-07-08 Eci Telecom Ltd. Bit error rate detection
GB2357230B (en) * 1999-12-11 2002-05-08 Marconi Comm Ltd High dynamic range error rate monitor
US6785851B1 (en) * 2000-09-26 2004-08-31 Intel Corporation Statistical counters in high speed network integrated circuits
EP1415307A2 (en) * 2001-08-06 2004-05-06 Mercury Interactive Corporation System and method for automated analysis of load testing results

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005339107A (ja) * 2004-05-26 2005-12-08 Nec Electronics Corp パフォーマンス・モニタ回路
JP4504737B2 (ja) * 2004-05-26 2010-07-14 ルネサスエレクトロニクス株式会社 パフォーマンス・モニタ回路
JP4931804B2 (ja) * 2005-04-11 2012-05-16 パナソニック株式会社 システム性能プロファイリング装置
JP2008140380A (ja) * 2006-11-30 2008-06-19 Internatl Business Mach Corp <Ibm> プロセッサ性能計測のための重み付けされたイベント計数方法、プロセッサ、および重み付け性能カウンタ回路(プロセッサ性能計測のための重み付けされたイベント計数システムおよび方法)
JP2008165797A (ja) * 2006-12-29 2008-07-17 Intel Corp Pcuにプロセッサアーキテクチャイベントをファクタリングすることによる電力使用の最適化
US11144108B2 (en) 2006-12-29 2021-10-12 Intel Corporation Optimizing power usage by factoring processor architectural events to PMU
JP2008186080A (ja) * 2007-01-26 2008-08-14 Toshiba Corp パフォーマンスモニタ装置および情報処理装置
JP2009129301A (ja) * 2007-11-27 2009-06-11 Nec Electronics Corp 自己診断回路及び自己診断方法
JP2010003057A (ja) * 2008-06-19 2010-01-07 Fujitsu Microelectronics Ltd プロセッサ、性能プロファイリング装置、性能プロファイリングプログラムおよび性能プロファイリング方法
JP2010020767A (ja) * 2008-07-09 2010-01-28 Arm Ltd データ処理装置の監視およびその監視データの集計
US9858169B2 (en) 2008-07-09 2018-01-02 Arm Limited Monitoring a data processing apparatus and summarising the monitoring data
JP2010244393A (ja) * 2009-04-08 2010-10-28 Renesas Electronics Corp パフォーマンス評価装置、及びパフォーマンス評価方法

Also Published As

Publication number Publication date
JP4445160B2 (ja) 2010-04-07
US20020174389A1 (en) 2002-11-21
US7020808B2 (en) 2006-03-28

Similar Documents

Publication Publication Date Title
JP2002342125A (ja) イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム
US10831678B2 (en) Multi-tier cache placement mechanism
US7185155B2 (en) Methods and mechanisms for proactive memory management
US8176258B2 (en) System and method for cache management
US6557080B1 (en) Cache with dynamic control of sub-block fetching
TWI483109B (zh) 半導體儲存裝置
US7921260B2 (en) Preferred write-mostly data cache replacement policies
US6023747A (en) Method and system for handling conflicts between cache operation requests in a data processing system
US20100223305A1 (en) Infrastructure for spilling pages to a persistent store
US6578065B1 (en) Multi-threaded processing system and method for scheduling the execution of threads based on data received from a cache memory
US20080120469A1 (en) Systems and Arrangements for Cache Management
JP7340326B2 (ja) メンテナンス動作の実行
GB2569416A (en) Method of using memory allocation to address hot and cold data
US20210182214A1 (en) Prefetch level demotion
JPWO2011102429A1 (ja) ストレージ装置、その制御方法およびシステム管理プログラム
US20040030839A1 (en) Cache memory operation
US10872015B2 (en) Data storage system with strategic contention avoidance
US10990543B1 (en) Apparatus and method for arbitrating access to a set of resources
Sun et al. DAC: A dynamic active and collaborative cache management scheme for solid state disks
US8255632B2 (en) Pre-fetch control apparatus
CN109992535B (zh) 一种存储控制方法、装置和系统
JP3301359B2 (ja) リスト管理システム、方法及び記憶媒体
CN113296686A (zh) 数据处理方法、装置、设备及存储介质
KR101976320B1 (ko) 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법
US7065612B2 (en) Processor having cache structure and cache management method for elevating operation speed

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091127

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4445160

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

EXPY Cancellation because of completion of term