JPH01211048A - プログラムの実行命令数測定方式 - Google Patents

プログラムの実行命令数測定方式

Info

Publication number
JPH01211048A
JPH01211048A JP63036275A JP3627588A JPH01211048A JP H01211048 A JPH01211048 A JP H01211048A JP 63036275 A JP63036275 A JP 63036275A JP 3627588 A JP3627588 A JP 3627588A JP H01211048 A JPH01211048 A JP H01211048A
Authority
JP
Japan
Prior art keywords
instruction
trap
branch
program
instructions
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.)
Pending
Application number
JP63036275A
Other languages
English (en)
Inventor
Naoto Ishikura
石倉 直人
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP63036275A priority Critical patent/JPH01211048A/ja
Publication of JPH01211048A publication Critical patent/JPH01211048A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野〕 本発明はプログラムの性能測定方式に間し、特にプログ
ラムの実行命令数の測定方式に関するものである。
〔従来の技術〕
新規に開発したプログラム等の性能測定の一つとして、
所定の処理を遂行するのに必要な実行命令数の測定があ
る。
このようなプログラムの実行命令数の測定・は、従来、
ハードウェアの動作モードとして全命令毎にソフトウェ
アへの割込みを発生させる機能を持つ電子計算機を使用
し、その割込み回数をソフトウェアでカウントするとい
う方式が一般的であった。
〔発明が解決しようとする課題〕
しかし、上述した従来の方式では、全命令毎にソフトウ
ェアへ割込みを発生させる機能を持つ電子計算機に通用
が限定され、そのような機能を持たない一般の電子計算
機上での測定は困難である。
また、全命令に対して割込みを発生させる方式では、シ
ステム全体のパフォーマンスを著しく低下させる。なお
、特定の命令(例えば分岐命令)のみで割込みを発生さ
せることも原理的には可能であるが、命令の種類に応じ
て割込みを発生させるか否かを判定する判定回路の組込
みのためハードウェアコストの上昇を招いてしまうと共
に、より著しく適用可能な電子計算機が限定される。
本発明の目的は、一般の電子計算機が有する基本的なト
ラップ機構を使用して効率良くプログラムの実行命令数
の測定が行える方式を提供することにある。
〔課題を解決するための手段〕
本発明は上記目的を達成するために、 電子計算機上で実行されるプログラムの実行命令数を測
定する方式において、 前記プログラム中に存在する分岐命令を検索する分岐命
令検索手段と、 該分岐命令検索手段で検索された分岐命令をトラップ命
令に置換えるトラップ命令埋込み手段と、該トラップ命
令埋込み手段によりトラップ命令に置換えられた元の分
岐命令をそのアドレスと共に格納するトラップ管理テー
ブルと、 トラップ命令実行時に起動され該トラップ命令のアドレ
ス、前記分岐命令の動作を決定付ける電子計算機の状態
レジスタの内容を含むプログラム状態を保存するプログ
ラム状態保存手段と、実行命令数を記録する命令数カウ
ンタと、命令数計算の開始位置を示す開始命令アドレス
レジスタと、 該開始命令アドレスレジスタに示される開始位置から前
記プログラム状態保存手段で保存された今回のトランプ
命令のアドレスまでの範囲に含まれる命令数を計算し、
その結果を前記命令数カウンタに加算する命令数カウン
ト手段と、前記トラップ管理テーブルより今回のトラッ
プ命令に対応する元の分岐命令を見つけ出すトラップ管
理テーブル検索手段と、 該トラップ管理テーブル検索手段により得られた元の分
岐命令と、前記プログラム状態保存手段により保存され
たトラップ実行時の状態レジスタの内容により、分岐命
令を実行した結果、次にどの命令から実行するかを決め
、決定した実行先命令のアドレスを前記開始命令アドレ
スレジスタに設定する分岐先アドレス計算手段と、 該分岐先アドレス計算手段で求められた前記分岐先アド
レスから前記プログラムの実行を再開させる再開手段を
有する。
〔作用〕
実行命令数を測定しようとするプログラムの実行に先立
って、分岐命令検索手段によりそのプログラム中に含ま
れる分岐命令が検索され、トラップ命令埋込み手段によ
りその分岐命令がトラップ命令に置換えられる。また、
トラップ命令に置換えられた元の分岐命令とそのアドレ
スとがトラップ管理テーブルに格納される。
プログラムの実行を開始すると、そこに埋込まれたトラ
ップ命令の実行時に割込みが発生し、プログラム状態保
存手段により、そのトラップ命令のアドレス、状態レジ
スタの内容を含むプログラム状態が保存される。この後
、命令数カウント手段により、開始命令アドレスレジス
タに保持されていた開始命令アドレスから今回のトラッ
プ命令のアドレスまでの範囲に含まれる命令の数が計算
され、その計算値が命令数カウンタに累積される。
また、トラップ管理テーブル検索手段により今回のトラ
ップ命令に対応する元の分岐命令が見つけられ、この元
の分岐命令とプログラム状態保存手段により保存された
トラップ実行時の状態レジスタの内容とに基づき、その
元の分岐命令の次にどの命令を実行すべきかが決定され
る。この決定された命令のアドレスは次回のトラップ時
における命令数の算出用として開始命令アドレスレジス
タに保持されると共に再開手段に渡される。再開手段は
、この渡された分岐先アドレスからプログラムの実行を
再開させる0以上のような処理がトラップ命令により発
生する割込み毎に行われることで、プログラムの実行命
令数が命令数カウンタの累積値として求められる。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明のプログラムの実行命令数測定方式の一
実施例の構成図である。
本実施例は、実行命令数の測定対象とするオブジェクト
プログラムlと、分岐命令検索手段2と、トラップ命令
埋込み手段3と、トラップ管理テーブル5と、プログラ
ム状態保存手段6と、命令数カウント手段7と、開始命
令アドレスレジスタ8と、命令数カウンタ9と、トラッ
プ管理テーブル検索手段10と、分岐先アドレス計算手
段11と、再開手段12と、命令数カウンタ9の内容を
出力する表示装置あるいはプリンタ装置等の出力手段1
3とで構成されている。オブジェクトプログラム1中に
は幾つかの分岐命令4が含まれ、これらが後述するよう
にしてトラップ命令4゛に置換えられる。
第2図はオブジェクトプログラム1の一部の内容例を示
し、命令C11=C1iからなるブロックL1.命令C
21〜C2jからなるブロックL2、命令C31〜C3
kからなるブロックし3を含む、 OP 11−OP 
1 t、 OP、21〜OP2 j。
0P31〜OP3には各命令の命令コード(オペレージ
コンコード)であり、そのうち0P1iと0P3kが分
岐命令の命令コードである。第2図に示すオブジェクト
プログラム部分は、命令C11から実行を開始した場合
、命令C12,・・・、C1iと実行し、この分岐命令
C1iの実行によって、命令C21あるいは命令C31
に分岐し、命令C21に分岐したときは命令C22,・
・・、命令C2j、命令C31,・・・、命令C3にへ
と進み、命令C31に分岐したときは命令C21−C2
jをパスして命令C31,・・・、C3にへと進む。
次に、本実施例の動作を各図を参照して具体的に説明す
る。
例えば、オブジェクトプログラム1を電子計算機の仮想
記憶上にあるプログラム、プログラム状態保存手段6を
ハードウェアまたはファームウェアで実現されたトラッ
プ処理機構、分岐命令検索手段2.トラップ命令埋込み
手段3.命令数カウント手段7.トラップ管理テーブル
検索手段10゜分岐先アドレス計算手段11.再開手段
12を当該計算機上で動作するプログラム、トラップ管
理テーブル5.開始命令アドレスレジスタ8.命令数カ
ウンタ9を主記憶上に確保された領域であるとする。
オブジェクトプログラム1が仮想記憶上にロードされる
と、分岐命令検索手段2は、そのオブジェクトプログラ
ム1を読み、分岐命令を探す、−般に、命令は命令コー
ドとそれに続(オペランドフィールドとから構成され、
電子計算機によってはオペランドフィールドの長さはそ
の命令コードにより決まる。従って、このような電子計
算機であれば、プログラムの先頭から順次命令コードを
探索することができ、その命令コードが分岐命令のコー
ドであるか否かを調べることによって、分岐命令を探し
出すことができる。
このようにして探し出された分岐命令は、トラップ命令
埋込み手段3によってトラップ命令に置換えられる0例
えば第一2図の例では、分岐命令C1i、C3k(7)
命令:y −FOP 1 t、 op 3 k;6(そ
れぞれトラップ命令Bl、B、2に置換えられる。
このとき、トラップ命令埋込み手段3は、トラップ管理
テーブル5に、その命令アドレスと、トラップ命令によ
って置換えられた元の分岐命令を格納する。また、トラ
ップ命令埋込み手段3は、全分岐命令をトラップ命令で
置換えた後、オブジェクトプログラム1の実行を開始さ
せる。
オブジェクトプログラム1の実行が開始され、そこに埋
込まれたトラップ命令が実行されると、プログラム状態
保存手段6が起動され、そのトラップ命令のアドレス、
このトラップ命令で置換された元の分岐命令の動作を決
定付ける電子計算機の状態レジスタの内容を含むプログ
ラム状態が保存される。このような動作を行うプログラ
ム状態保存手段6つまりトラップ処理機構は、通常の電
子計算機(マシン)には−船釣に備えられているもので
ある。
プログラムのトラップ命令実行時の状態が保存された後
、命令数カウント手段7は、開始命令アドレスレジスタ
8の指している命令から、現トラップ命令までの命令数
をカウントする。このときの動作を第2図を参照して説
明する。
いま、時刻tQにおいて、命令コードOpHを含む命令
C1lよりプログラムの実行が始まるとし、命令C1l
の命令アドレスが開始命令アドレスレジスタ8に格納さ
れているものとして、第2図の時刻t1において分岐命
令C1iに置換えられたトラップ命令Blによって命令
数カウント手段7が起動されたものとする。
命令数カウント手段7は、プログラム状態保存手段6が
保存している命令アドレスレジスタにより、命令コード
0P1tを含む命令C1iの命令アドレスを知ることが
できる。従って、命令コード0PIIを含む命令C1l
から命令コード0P11を含む命令CI+までのブロッ
クLLの中の命令数をカウントすることにより、時刻t
oから時刻t1までの間に実行された命令数を知ること
ができる。実行命令数のカウントは、命令コードにより
命令長が分かるので、命令コード0P11を含む命令C
1lのアドレスから命令コードoP1iを含む命令C1
iのアドレスまでの間の領域を1命令ずつ区切って行く
ことにより可能である。
命令数カウント手段7は、このようにして得た実行命令
数を命令数カウンタ9に加算していく。
今回の実行命令数のカウントを終えると、次にトラップ
管理テーブル検索手段10が起動され、トラップ管理テ
ーブル検索手段lOはトラップ命令アドレスをキーにし
てトラップ管理テーブル5を検索し、現トラップ命令に
置換えられた元の分岐命令を得る。
続いて分岐アドレス計算手段11が起動され、分岐アド
レス計算手段11は、次に実行が開始される命令のアド
レス(分岐先アドレス)を計算し、そのアドレスで開始
命令アドレスレジスタ8の内容を更新すると共に再開手
段12へ通知し、再開手段12は中断されたオブジェク
トプログラム1の状態を図示しないCPUのレジスタ等
に復元し、通知された分岐先アドレスを命令カウンタに
設定する処理等を行うことにより、オブジェクトプログ
ラム1の実行を再開させる0以上の処理を再び第2図を
参照して説明する。
時刻t1において起動された分岐アドレス計算手段11
は、プログラム状態保存手段6により保存された状態レ
ジスタと、トラップ管理テーブル検索手段10により得
た分岐命令の形式により、次に実行すべき命令が命令コ
ード0P21を含む命令C21か命令コード0P31を
含む命令C31かを決定し、そのアドレスを開始命令ア
ドレスレジスタ8に格納すると共に、このアドレスを渡
して再開手段12を起動する。再開手段12は起動され
ると、その通知された分岐先アドレスにオブジェクトプ
ログラム1の実行の制御を渡す、これにより、その分岐
先アドレスからオブジェクトプログラム1の実行が再開
される。この場合において、命令コード0P1iの次に
実行されるトラップ命令は命令コードOP3にと置換さ
れたトラップ命令B2である。そこで、時刻t2におい
て命令コードOP3にと置換されたトラップ命令B2が
実行され、再び命令数カウント手段7が起動された場合
を考えてみる。
命令コード0PIIを含む命令C1iの次に実行される
命令が命令コード○P21を含む命令C21の場合は、
開始命令アドレスレジスタ8は命令コード0P21のア
ドレスを指しているので、前に説明したと同様にしてブ
ロックし2とブロックL3に含まれる命令の数がカウン
トされる。逆に命令コード0P1iを含む命令C1iの
次に実行される命令が命令コード0P31を含む命令C
31の場合は、開始命令アドレスレジスタ8が命令コー
ド0P31を指しているので、ブロックL3に含まれる
命令の数がカウントされる。
以上のようにして順次開始命令アドレスレジスタ8を更
新し、それが指す命令から実行されたトラップ命令まで
の命令数をカウントし、命令数カウンタ9に加算して行
くことにより、命令数カウンタ9は最終的にオブジェク
トプログラム1の実行命令数を示すことになる。
この命令数カウンタ9の内容は出力手段13により操作
員等に通知される。
〔発明の効果〕
以上説明したように、本発明は、被測定対象のプログラ
ム内の分岐命令をトラップ命令に置換え、そのトラップ
命令の実行で割込みが発生する度に、直前の時点からの
命令数をカウントし加算していくことにより、全体の実
行命令数を得ることができる。この方式によれば、実行
命令数の測定機構が動作するのは分岐命令の箇所のみで
あり、性能低下を少なくすることができる他、基本的な
トラップ機構を用いてソフトウェアで実現することがで
き、ハードウェアモデルに依存しない方式とすることが
できる効果がある。
【図面の簡単な説明】
第1図は本発明の実施例の構成図および、第2図はオブ
ジェクトプログラム1の一部の内容例を示す図である。 図において、 ■・・・オブジェクトプログラム 2・・・分岐命令検索手段 3・・・トラップ命令埋込み手段 4・・・分岐命令 4”・・・トラップ命令 5・・・トラップ管理テーブル 6・・・プログラム状態保存手段 7・・・命令数カウント手段 8・・・開始命令アドレスレジスタ 9・・・命令数カウンタ 10・・・トラップ管理テーブル検索手段11・・・分
岐先アドレス計算手段 12・・・再開手段 13・・・出力手段

Claims (1)

  1. 【特許請求の範囲】 電子計算機上で実行されるプログラムの実行命令数を測
    定する方式において、 前記プログラム中に存在する分岐命令を検索する分岐命
    令検索手段と、 該分岐命令検索手段で検索された分岐命令をトラップ命
    令に置換えるトラップ命令埋込み手段と、該トラップ命
    令埋込み手段によりトラップ命令に置換えられた元の分
    岐命令をそのアドレスと共に格納するトラップ管理テー
    ブルと、 トラップ命令実行時に起動され該トラップ命令のアドレ
    ス、前記分岐命令の動作を決定付ける電子計算機の状態
    レジスタの内容を含むプログラム状態を保存するプログ
    ラム状態保存手段と、実行命令数を記録する命令数カウ
    ンタと、 命令数計算の開始位置を示す開始命令アドレスレジスタ
    と、 該開始命令アドレスレジスタに示される開始位置から前
    記プログラム状態保存手段で保存された今回のトラップ
    命令のアドレスまでの範囲に含まれる命令数を計算し、
    その結果を前記命令数カウンタに加算する命令数カウン
    ト手段と、 前記トラップ管理テーブルより今回のトラップ命令に対
    応する元の分岐命令を見つけ出すトラップ管理テーブル
    検索手段と、 該トラップ管理テーブル検索手段により得られた元の分
    岐命令と、前記プログラム状態保存手段により保存され
    たトラップ実行時の状態レジスタの内容により、分岐命
    令を実行した結果、次にどの命令から実行するかを決め
    、決定した実行先命令のアドレスを前記開始命令アドレ
    スレジスタに設定する分岐先アドレス計算手段と、 該分岐先アドレス計算手段で求められた前記分岐先アド
    レスから前記プログラムの実行を再開する再開手段を具
    備したことを特徴とするプログラムの実行命令数測定方
    式。
JP63036275A 1988-02-18 1988-02-18 プログラムの実行命令数測定方式 Pending JPH01211048A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63036275A JPH01211048A (ja) 1988-02-18 1988-02-18 プログラムの実行命令数測定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63036275A JPH01211048A (ja) 1988-02-18 1988-02-18 プログラムの実行命令数測定方式

Publications (1)

Publication Number Publication Date
JPH01211048A true JPH01211048A (ja) 1989-08-24

Family

ID=12465222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63036275A Pending JPH01211048A (ja) 1988-02-18 1988-02-18 プログラムの実行命令数測定方式

Country Status (1)

Country Link
JP (1) JPH01211048A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011237841A (ja) * 2010-04-30 2011-11-24 Fujitsu Ltd 検証支援プログラム、検証支援装置、および検証支援方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011237841A (ja) * 2010-04-30 2011-11-24 Fujitsu Ltd 検証支援プログラム、検証支援装置、および検証支援方法

Similar Documents

Publication Publication Date Title
JPS63175934A (ja) デ−タ処理装置
JPH06309177A (ja) マイクロコンピュータ
JP2002342114A (ja) トレースデータ採取可能なプロセッサ
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JP4243463B2 (ja) 命令スケジューリングのシミュレーション方法とシミュレーションシステム
JPH1196006A (ja) 情報処理装置
JPH04288625A (ja) マイクロコンピュータ
CN120029827B (zh) 一种进程恢复方法、产品、设备及存储介质
JPH03292545A (ja) プログラムループの検知回復装置
JP2536615B2 (ja) 情報処理装置
JP2853460B2 (ja) データロード方法及びそれを用いた演算プロセッサ
JPS61233838A (ja) 情報処理装置
JP2584528Y2 (ja) 情報処理装置
JPH0580691B2 (ja)
JPS59189452A (ja) デ−タ処理装置用キユ−構造
KR950011476B1 (ko) 전전자 교환기의 rom 상주 모니터 디버거의 사용자 프로그램 실행 시간 측정 방법
JPH0769816B2 (ja) データ処理装置
JP3079238B2 (ja) デバッグ装置
JPH02235152A (ja) 情報処理装置
JPS6379138A (ja) 情報処理装置
JPH0540654A (ja) 任意命令トレースシステム
JPS6149695B2 (ja)
JPH05313924A (ja) 仮想計算機計測機構
JPH04140881A (ja) 情報処理装置
JPH03269640A (ja) 仮想計算機システム