JPH02268343A - 命令頻度測定方式 - Google Patents

命令頻度測定方式

Info

Publication number
JPH02268343A
JPH02268343A JP1090030A JP9003089A JPH02268343A JP H02268343 A JPH02268343 A JP H02268343A JP 1090030 A JP1090030 A JP 1090030A JP 9003089 A JP9003089 A JP 9003089A JP H02268343 A JPH02268343 A JP H02268343A
Authority
JP
Japan
Prior art keywords
instruction
frequency
execution
sampling pulse
executed
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
JP1090030A
Other languages
English (en)
Other versions
JP2775830B2 (ja
Inventor
Kazuyuki Shimizu
和之 清水
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 JP1090030A priority Critical patent/JP2775830B2/ja
Publication of JPH02268343A publication Critical patent/JPH02268343A/ja
Application granted granted Critical
Publication of JP2775830B2 publication Critical patent/JP2775830B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術と発明が解決しようとする課題課題を解決す
るための手段 作用 実施例 発明の効果 〔概要〕 情報処理装置、より限定的には中央処理装置(CPU)
で実行されるプログラム中のどの命令がどの位の頻度で
実行されたかを測定する命令頻度測定方式に関し、 少ないハードウェア量で、且つ、計算機システムの運用
環境への擾乱が少ない命令頻度測定方式を提供すること
を目的とし、 周期的にサンプリングパルスを発生するサンプリングパ
ルス発生機構と、該サンプリングパルスに呼応して現在
実行中のプログラムの実行を一時中断する機構と、該プ
ログラムの中断時点の情報から、次に実行すべきであっ
た命令を主記憶装置(MSU)から読み出す機構と、該
読み出した命令語を解読して命令頻度を計測する機構と
を備えた情報処理装置において、上記サンプリングパル
スに呼応して現在実行中のプログラムの実行を一時中断
するタイミングを、命令毎に予め定めた特定のタイミン
グとし、且つ、該特定のタイミングを全ての命令に対し
て同一の長さとする手段を設けて、該手段で生成された
信号に基づいて、上記命令頻度を計測する機構を起動し
、命令実行頻度を測定するように構成する。
〔産業上の利用分野〕
本発明は、情報処理装置、より限定的には中央処理装置
(CPU)で実行されるプログラム中のどの命令がどの
位の頻度で実行されたかを測定する命令頻度測定方式に
関する。
従来から、計算機システムの処理能力を向上させる為に
、ソフトウェア、ハードウェア込みで性能の評価をして
、改善点を抽出する手段の一つとして、中央処理装置(
CPU)で実際にプログラムが実行される時に、どの命
令がどの位の頻度で実行されているかを測定することが
行われている。
この場合、できる限り少ないハードウェア量で、且つ、
より正確に、具体的には、計算機システムの運用環境を
擾乱させることを少なくして、命令実行頻度を測定でき
る命令頻度測定方式が要求される。
〔従来の技術と発明が解決しようとする課題〕第2図は
従来の命令頻度測定方式を説明する図であり、(a)は
全体の構成例を示し、(b)はプロダラム・ステータス
語の一例を示し、(C)はサンプリング方式での割込み
処理回路の一例を示し、(d)は該サンプリング方式で
の動作タイムチャートを示している。
従来の命令頻度測定方式には、大別して、ハードウェア
方式とソフトウェア(或いは、ファームウェア方式)の
2方式がある。
(1)  ハードウェア方式 図示していないが、同時に実行頻度を測定したい命令の
種類の数だけ、カウンタをハードウェアで実現し、該当
命令が実行される毎に、該当のカウンタをカウントアツ
プし、プログラムの実行終了時、又は、適当な時点で、
該カウンタの値を読み出して、命令実行頻度を計算して
求めるものである。
従って、中央処理装置(CPU)が実行することができ
る命令の全種類の実行頻度を測定しようとすると、命令
の数、例えば、200命令前後のカウンタが必要となり
、ハードウェア量が膨大になってしまうという問題があ
った。
逆に、該カウンタの数を現実的な数、例えば、10個程
度に制限すると、同一の環境下で、20回程測定を繰り
返す必要があり、測定時間が膨大となるばかりでなく、
プログラムの内容によっては、同一環境を再現すること
自体が困難であるという問題があった。
(2)  ソフトウェア方式(或いは、ファームウェア
方式)(第2図参照) ソフトウェア方式とファームウェア方式とは、基本的に
は同じである。即ち、以下の説明で「プログラム割込み
」を「ファームウェアへの割込み」とし、「命令頻度測
定ルーチン」22を「命令頻度測定ファームウェア」と
すれば、該ソフトウェア方式の説明はファームウェア方
式の説明となる。ファームウェア方式では、更に、カウ
ンタ用のデータ域を主記憶装置(MSU) 2上にとる
代わりに、該ファームウェアだけがアクセスできるロー
カルストレージ(LS)上にとることがある。
ソフトウェア方式にも、2方式があり、命令トレース方
式とサンプリング方式とがある。
(八)命令トレース方式 第2図(a)において、中央処理装置(CPU) lが
プログラム23の1命令を実行する毎に、命令実行/割
込み制御回路12において、プログラム割込みを発生し
、命令頻度測定ルーチン22へ制御を渡すようにする。
該別込み時に、その時のプログラム・ステータス語(P
SW)が旧プログラム・ステータス語(OLD PSW
) 21として、主記憶装置(MSU) 2上の固定番
地に格納される。
該旧プログラム・ステータス語(以下、OLD PSW
という)21には、次に実行すべき命令のアドレスが、
(b)図のプログラム・ステータス語(PSW)の命令
アドレス部(IA)に示されている。
該別込みで制御が渡された命令頻度測定ルーチン22は
、主記憶装置(MSU) 2がら、上記OLD PS匈
21(又は、該OLD PSW 21(7)上記”IA
”部ノミ)を読み出し、更に、そこから得た“IA”部
を基に、主記憶装置(MStl) 2内のプログラム2
3中の、次に実行すべき命令語を読み出す。
次に、その命令語を解釈し、予め、主記憶装置(MSU
) 2上に命令の数だけ用意しである実行回数記録語(
1〜n)24の対応する語を読み出して+1゛を行って
、同じ領域に再格納する。
この方式においては、1命令実行する毎に、割込んで、
命令頻度測定ルーチン22が動作するので、オーバヘッ
ドが大きく、計算機システムの通常の動作環境を著しく
乱してしまう問題がある。
従って、通常の動作環境での命令頻度とは異なる結果と
なる恐れがある。
(B)サンプリング方式 元々、計算機システムの中央処理装置(CPU) 1に
は、例えば、実時間処理を優先的に実行する為等を目的
としたタイマ割込み機構がある。
これは、サンプリングパルス発生機構11において、周
期的に発生するサンプリングパルス■を基に、該サンプ
リングパルス発生時点で命令を実行中ならば、その命令
の実行の完了時点で、又、命令の実行中でなければ、即
、その時点で、プログラム割込みを発生して、該実時間
処理に制御を渡す機構である。
具体的には、サンプリングパルス発生機構11から出力
されたサンプリングパルス■は、(c)図に示したよう
に、ラッチ121で一旦ラッチされ、命令実行完了信号
■を待ち、該実行中の命令が完了したことを示す命令実
行完了信号■で論理積(八ND)回路122で論理積が
取られて、割込みラッチ123が起動され、上記実時間
割込みルーチンの処理に制御が移るように機能する。(
(d)図の動作タイムチャート参照) そこで、サンプリング方式による命令頻度測定は、該タ
イマ割込み機構を使用して、サンプリングパルス■が発
生し、実行中の命令が完了した時に、前述の命令頻度測
定ルーチン22に制?lIlを渡すようにする。
プログラムの実行をサンプリングして、命令の実行頻度
を測定するので、実際の命令実行頻度とは一致しないが
、測定時間を長くすることにより、確率的には、実際の
命令実行頻度に極めて近い実行頻度を得ることができ、
且つ、サンプリングしている為、通常の動作環境への擾
乱が少ないという特徴がある。
この時の命令頻度測定ルーチン22が実行する処理内容
には、以下の2通りの方式がある。
(B−1) :最後に実行した命令の次の命令をサンプ
リングする方式 前述の(A)方式と同様に、OLD PSW 21を基
に、次に実行すべきであった命令語を読み出し、その命
令語に対応した主記憶装置(MSU) 2上の実行回数
記録語(1〜n)24に1°を加算する。
コノ方式では、分岐命令や、アドレスモードを変更する
命令等を実行した場合でも、上記OLD PS匈21は
、分岐先、アドレスモード変更先のものであるので、実
際に実行される命令のみが正しくカウントされる利点を
持つが、確率的に、実行時間の長い命令を実行中にサン
プリングパルス■が発生する回数が多くなることから、
該実行時間の長い命令の直後にある命令が実際の頻度よ
り高く測定されて、誤った測定を行うという問題がある
(B−2) :最後に実行した命令をサンプリングする
方式 OLD PSW 21には、割込み直前の命令、即ち、
最後に実行した命令の長さ情報((b)図のps−の命
令長コード(ILC) )が含まれているので、OLD
 PSw中の、次に実行すべき命令アドレスCIA”部
)の値から、該直前の命令の命令長コード(”ILC”
部)の値を差し引くことにより、最後に実行した命令の
アドレスを得ることができる。
そこで、このアドレスを基に、該最後に実行された命令
の命令語を主記憶装置(MSII) 2のプログラム2
3から読み出し、上記(A)と同様にして、その命令に
対応する主記憶装置(MSU) 2上の実行回数記録語
(1〜n)の内容に1゛を加算する。
この方式では、実行時間の長い命令がサンプリングされ
る回数が多くなることから、命令の実行時間を重みとし
た、重み付命令頻度が測定できる利点があるが、前述の
命令アドレスを変更する分岐命令やアドレスモードを変
更する命令等を実行した場合に、は、該OLD PSW
 21は前述のように、分岐先、アドレスモード変更先
になっているので、最後に実行した命令のアドレスを求
めることができず、上記の方法で命令頻度を測定すると
、誤った命令(実際に実行されることのない命令)をカ
ウントするという致命的な問題がある。
本発明は上記従来の欠点に鑑み、情報処理装置の中央処
理装置(CPU)で実行されるプログラム中のどの命令
がどの位の頻度で実行されたかを測定するのに、少ない
へ=ドウエア量で、且つ、計算機システムの運用環境へ
の擾乱が少ない命令頻度測定方式、即ち、最後に実行し
た命令の次の命令をサンプリングする方式で、実行時間
の長い命令が存在しても、直後の命令が実際の頻度より
高く測定されることがない命令頻度測定方式を提供する
ことを目的とするものである。
〔課題を解決するための手段〕
上記の問題点は下記の如くに構成された命令頻度測定方
式によって解決される。
周期的にサンプリングパルスを発生するサンプリングパ
ルス発生機構と、該サンプリングパルスに呼応して現在
実行中のプログラムの実行を一時中断する機構と、該プ
ログラムの中断時点の情報から、次に実行すべきであっ
た命令を主記憶装置(MSU)から読み出す機構と、該
読み出した命令語を解読して命令頻度を計測する機構と
を備えた情報処理装置において、 上記サンプリングパルスに呼応して現在実行中のプログ
ラムの実行を一時中断するタイミングを、命令毎に予め
定めた特定のタイミングとし、且つ、該特定のタイミン
グを全ての命令に対して同一の長さとする手段を設けて
、 該手段で生成された信号に基づいて、上記命令頻度を計
測する機構を起動し、命令実行頻度を測定するように構
成する。
〔作用〕
一般に、情報処理装置の中央処理装置(CPU)で実行
される命令には、1マシンサイクルで実行を完了する基
本的な命令から、数十マシンサイクルかかる複雑な命令
まで、種々存在する。更には、極度に実行時間の長い特
殊命令も存在する。
一定周期のサンプリングパルスが発生した時点で、ある
命令が実行中である確率は、サンプリングパルスの発生
と命令の実行という2つの事象が独立であることから、
その命令の実行時間の長さに比例することになる。
又、前述の「最後に実行した命令の次の命令をサンプリ
ングするB−1方式」では、該サンプリングパルス■が
発生した時点で、ある命令が実行中であると、第2図(
c)のサンプリング方式の回路、及び、(d)図の動作
タイムチャートから明らかな如く、その命令の実行が完
了する迄、該サンプリングパルス■の発生事象を一時ラ
ッチ121に記憶しておき、該命令の実行完了と共に、
プログラム割込みが発生するようになっている。
即ち、通常、割込みは、命令と命令との隙間で処理され
るようになっており、1つの命令実行中に生じた割込み
要因は、その命令の実行が完了する迄保留した後処理さ
れることになる。
従って、このような割込み処理機構を、そのまま利用し
た命令頻度測定方式も、サンプリング方式では、該別込
み機構を使用することになる為、上記のような動作とな
る。
この結果、実行時間の長い命令程、その実行時間に比例
して、命令頻度測定ルーチンを頻繁に起動することにな
る。一方、上記「最後に実行した命令の次の命令をサン
プリングするB−1方式」による命令頻度測定ルーチン
では、最後に実行した命令の次の命令をカウントするこ
とになっており、結果的には、全く無関係な直前の命令
の実行時間の長さで重み付けされた無意味な命令頻度が
測定されてしまう。
そこで、本発明では、[最後に実行した命令の次の命令
をサンプリングする命令頻度測定方式」即ち、前述のB
−1方式の欠点が「命令頻度の測定には無関係な直前の
命令の実行時間の長さで、実際に頻度測定を行う次の命
令に重み付けがされてしまう1点にあることに着目して
、 (1)  サンプリングパルス■の参照を、全ての命令
について、各命令の実行時に、唯−度だけ通過する特定
のタイミングに限定するようにし、(2)該サンプリン
グパルス■が上記特定のタイミング以外で発生した場合
には、該サンプリングパルスを無視し、該特定のタイミ
ングで発生した時のみ、該サンプリングパルス■を捕捉
して、従来と同じタイマ割込みを発生させ、命令頻度測
定ルーチンに制御を渡すようにする。
(3)上記の特定タイミングの長さは、1マシンサイク
ルに限定する必要はないが、全ての命令に対して同じ長
さとして、命令の実行時間に影響されないようにする。
(4)特定タイミングの例として、各命令の実行時間と
は無関係な、例えば、命令実行の最初のサイクル(又は
、ステート)とか、実行の最終サイクルとかが考えられ
るが、通常、命令実行の最終サイクルは割込みの発生を
決定するサイクルでもあることから、該実行の最終サイ
クルを上記特定タイミングとして採用するのが効果的で
ある。
(5)例として、平均命令実行時間が3マシンサイクル
の中央処理装置(CPU)で、上記1マシンサイクルの
特定タイミングを採用したとき、確率的に、サンプリン
グパルスの内の273が無駄に捨てられることになるの
で、このことを考慮して、サンプリングパルスの周期を
、3倍にするとか、該命令頻度の測定時間を3倍にすれ
ばよい。
このように、機能するので、少ないハードウェア量で、
且つ、計算機システムの運用環境への擾乱が少ないサン
プリング方式による命令頻度測定を行って、命令の実行
時間の長さに影響されない正確な命令頻度測定ができる
効果がある。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
第1図は本発明の一実施例を示した図であり、(a)は
構成例を示し、(bl) 、 (b2)は動作タイムチ
ャートを示しており、第2図(a)に示した全体の構成
例にあるサンプリングパルス発生機構11から出力され
る一定周期のサンプリングパルス■を、命令実行時の特
定タイミングを示す信号、例えば、命令実行完了信号■
で論理積をとって割込みラッチ123をセットする手段
が本発明を実施するのに必要な手段である。尚、全図を
通して同じ符号は同じ対象物を示している。
以下、第1図によって本発明の命令頻度測定方式を説明
する。
本発明を実施しても、サンプリング方式による命令頻度
測定の基本的な動作は従来方式と特に変わることはない
ので省略し、ここでは、各命令毎に、予め、定められた
特定のタイミングを示す信号、例えば、命令実行完了信
号■で、タイマ割込みを発生させて、命令頻度測定ルー
チン22を起動する動作を中心にして説明する。
本実施例においては、前述のように、各命令毎に、予め
、定めた特定タイミングとして、最も効果的な、例えば
、割込みの発生を決定するサイクルであり、各命令の実
行が開始されると、該命令の実行時間に、無関係に、必
ず、出力される命令実行完了信号■を採用しているが、
これに、限定されるものでないことはいう迄もないこと
である。
この命令実行完了信号■と、サンプリングパル大発生機
構11(第2図(a)参照)から、周期的に出力される
サンプリングパルス■とを論理積(AND)回路120
で論理積をとり、一致が取れると、タイマ割込みラッチ
123をセットし、従来から使用されている命令頻度測
定ルーチン22を起動する。((b2)図の動作タイム
チャート参照)従って、該各命令が持っている特定のタ
イミング、即ち、命令実行完了信号■と一致しないサン
プリングパルス■は自動的に無視されることになる。(
(bl)図の動作タイムチャート参照)この結果、該サ
ンプリングパルス■の一部が無駄に捨てられることにな
るので、前述のように、該サンプリングパルス■の周期
を短くするとか、該命令頻度測定ルーチン22による命
令頻度測定時間を延長させる等の補正処理が必要である
このように、本発明は、計算機システムが元々備えてい
るタイマ割込み機構を用いて、タイマ割込みによるソフ
トウェア手段により、現在実行中のプログラムが中断さ
れた時に主記憶装置(MSU)上に保存されるOLD 
PS−を参照し、「最後に実行した命令の次の命令をサ
ンプリングする」命令頻度測定方式において、該最後に
実行した、命令頻度測定には無関係の命令の実行時間に
よって、実際に測定される命令の頻度に重みが付くのを
防止する為に、各命令の実行時の特定のタイミング、例
えば、割込み発生サイクルでもある命令実行完了信号■
と一致するサンプリングパルス■を捕捉して、上記タイ
マ割込みを発生させ、命令頻度測定ルーチンを起動させ
るようにした所に特徴がある。
〔発明の効果〕
以上、詳細に説明したように、本発明の命令頻度測定方
式は、情報処理装置の中央処理装置(CPU)で実行さ
れるプログラム中のどの命令がどの位の頻度で実行され
たかを測定するのに、周期的にサンプリングパルスを発
生するサンプリングパルス発生機構と、該サンプリング
パルスに呼応して現在実行中のプログラムの実行を一時
中断する機構と、該プログラムの中断時点の情報から、
次に実行すべきであった命令を主記憶装置(MSU)か
ら読み出す機構と、該読み出した命令語を解読、して命
令頻度を計測する機構とを備えた情報処理装置において
、上記サンプリングパルスに呼応して現在実行中のプロ
グラムの実行を一時中断するタイミングを、命令毎に予
め定めた特定のタイミングとし、且つ、該特定のタイミ
ングを全ての命令に対して同一の長さとする手段を設け
て、該手段で生成された信号に基づいて、上記命令頻度
を計測する機構を起動し、命令実行頻度を測定するよう
にしたものであるので、少ないハードウェア量で、且つ
、計算機システムの運用環境への擾乱が少ないサンプリ
ング方式による命令頻度測定を行って、命令の実行時間
の長さに影響されない正確な命令頻度測定ができる効果
がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示した図。 第2図は従来の命令頻度測定方式を説明する図。 である。 図面において、 1は中央処理装置(CPU) 。 11はサンプリングパルス発生機構。 12は命令実行/割込゛み制御回路。 120.122は論理積(AND)回路。 121.123はラッチ。 2は主記憶装置(MSU) 。 21は旧プログラム・ステータス語(OLD22は命令
頻度測定ルーチン。 23はプログラム。 24は実行回数記録語(1〜nL ■はサンプリングパルス。 ■は命令実行完了信号。 をそれぞれ示す。 PSW)。 第 図 第 図 (その1)

Claims (1)

  1. 【特許請求の範囲】 周期的にサンプリングパルス([1])を発生するサン
    プリングパルス発生機構(11)と、該サンプリングパ
    ルス([1])に呼応して現在実行中のプログラムの実
    行を一時中断する機構(12)と、該プログラムの中断
    時点の情報から、次に実行すべきであった命令を主記憶
    装置(MSU)(2)から読み出す機構(21、12)
    と、該読み出した命令語を解読して命令頻度を計測する
    機構(12、22、24)とを備えた情報処理装置にお
    いて、 上記サンプリングパルス([1])に呼応して現在実行
    中のプログラムの実行を一時中断するタイミングを、命
    令毎に予め定めた特定のタイミング([2])とし、且
    つ、該特定のタイミング([2])を全ての命令に対し
    て同一の長さとする手段(120)を設けて、 該手段(120)で生成された信号に基づいて、上記命
    令頻度を計測する機構(12、22、24)を起動し、
    命令実行頻度を測定することを特徴とする命令頻度測定
    方式。
JP1090030A 1989-04-10 1989-04-10 命令頻度測定方式 Expired - Fee Related JP2775830B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1090030A JP2775830B2 (ja) 1989-04-10 1989-04-10 命令頻度測定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1090030A JP2775830B2 (ja) 1989-04-10 1989-04-10 命令頻度測定方式

Publications (2)

Publication Number Publication Date
JPH02268343A true JPH02268343A (ja) 1990-11-02
JP2775830B2 JP2775830B2 (ja) 1998-07-16

Family

ID=13987272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1090030A Expired - Fee Related JP2775830B2 (ja) 1989-04-10 1989-04-10 命令頻度測定方式

Country Status (1)

Country Link
JP (1) JP2775830B2 (ja)

Also Published As

Publication number Publication date
JP2775830B2 (ja) 1998-07-16

Similar Documents

Publication Publication Date Title
EP1125199B1 (en) Method of debugging a program thread
JP2806524B2 (ja) ベクトル演算命令発行制御方法
JPH02268343A (ja) 命令頻度測定方式
JPH0357970A (ja) パルス入力装置
JPS62279438A (ja) トレ−ス回路
JPH0229457Y2 (ja)
JPS6128144A (ja) トレ−ス動作実行装置
JPH0251749A (ja) プロセッサ使用率測定回路
JP2595718B2 (ja) インサーキットエミュレータ
JPH0528002A (ja) マイクロプロセツサ
JP3068578B2 (ja) インサーキットエミュレータおよび飽和演算処理方法
JPS63113743A (ja) 計算機ハ−ドウエアデバツギング方式
JPS6411977B2 (ja)
JPS6175937A (ja) 電子計算機
JPH02202646A (ja) マイクロプログラム制御装置
JPH02216546A (ja) 情報処理システムのプログラムデバグ支援方式
JPS607554A (ja) コンピユ−タシステムの性能測定方式
JPS62109140A (ja) プログラム処理装置のトレ−ス回路
JPH048821B2 (ja)
JPS5953955A (ja) 性能測定方式
JPH0368039A (ja) プログラム通過アドレストレース装置
JPS61117633A (ja) キヤプチユアレシオ測定方式
JPS62109139A (ja) マイクロプロセツサの動作解析方法と装置
JPH0333940A (ja) 評価用マイクロプロセッサ
JPH02100145A (ja) マイクロプログラム制御方式の計算機システム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees