JPH028942A - 命令出現率測定方法 - Google Patents

命令出現率測定方法

Info

Publication number
JPH028942A
JPH028942A JP63158076A JP15807688A JPH028942A JP H028942 A JPH028942 A JP H028942A JP 63158076 A JP63158076 A JP 63158076A JP 15807688 A JP15807688 A JP 15807688A JP H028942 A JPH028942 A JP H028942A
Authority
JP
Japan
Prior art keywords
instruction
instructions
code
executed
control
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
JP63158076A
Other languages
English (en)
Inventor
Toshio Nakamura
敏男 中村
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP63158076A priority Critical patent/JPH028942A/ja
Publication of JPH028942A publication Critical patent/JPH028942A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、プロセッサの性能等を把握するために、所定
のプログラムについてプロセッサによって実行される命
令の出現率を測定する命令出現率測定方法に関する。
(従来の技術) プログラムは多数の命令から構成されている。
新たなプロセッサを開発した場合、あるいは新たなプロ
グラムを作成した場合等、そのプログラムのプロセッサ
による処理速度を予測して、システム性能等を把握する
ことが好ましい。
プログラムには多くのループが含まれており、これらの
ループを経由して実行されたステップ、即ちダイナミッ
クステップ数や、どの命令が何回実行されたかを示す命
令出現率を得ることによって、プログラムの処理速度を
予測することができる。従来、これらは、全て机上計算
による方法に頼っていた。
即ち、この机上計算の実施に当たっては、先ず、測定対
象となるプログラムが呼び出されるケースとして、代表
的なパターンを幾つか洗い出す。プログラムが呼び出さ
れる場合、その呼び出し時のパラメータやプログラム実
行時のシステム環境等によって、その内容に種々のパタ
ーンが考えられる。
こうして洗い出した種々のパターンについて、今度はプ
ログラム内部の条件分岐、即ち、ループやジャンプ等の
全てを満足するルートを机上でシュミレートする。即ち
、実際にCPUによるプログラムの実行動作を想定して
命令を1ステツプずつ追っていき、1つのルートを求め
る。こうして求めたルートについて、そのダイナミック
ステップ数を計数し、かつ、命令出現率を算出する。
先に洗い出した各パターンについて、同様の動作を繰り
返し、それぞれダイナミックステップ数と命令出現率を
算出する。
こうして得られたデータを元に、実際のプログラムの処
理速度が予測される。
(発明が解決しようとする課題) ところで、以上のような従来の方法では、人手によりプ
ログラムを机上でシュミレートしていたため、そのルー
トチエツクのミスや命令出現率の計算等にミスが生じ易
く、又、算出そのものにも極めて多くの時間を費やすと
いう問題があった。
又、代表的なパターンのみを洗い出して上記算出を行な
った場合、実際にプログラムが種々のパターンで繰り返
し呼び出された場合、その平均値を取りたいといったよ
うな柔軟な対応が困難である。
本発明は以上の点に着目してなされたもので、短時間で
正確に柔軟性に冨んだ命令出現率の測定を行なうことが
できる命令出現率測定方法を提供することを目的とする
ものである。
(課題を解決するための手段) 本発明の命令出現率測定方法は、プロセッサのシングル
ステップ割り込み機能を動作させ、その割り込み発生時
に、その都度実行される命令種別を、前記プロセッサの
スタックに格納されたアドレス信号を利用して認識し、
前記命令種別毎に、命令実行回数を集計することを特徴
とするものである。
(作用) 以上の方法は、プロセッサに実際に測定対象となるプロ
グラムを実行させながら命令出現率の測定を行なう。こ
の場合、プロセッサは、シングルステップ割り込み機能
を動作させ、測定対象となるプログラムの1命令実行毎
に割り込みを発生させる。そして、その割り込み発生時
に、その都度実行される命令種別を認識して自動的に集
計を行なう。命令種別の認識は、その命令読み出しに使
われたアドレス信号を利用することによって実現する。
これにより、多種のパターンのルートについて、方何な
く正確にそれをトレスし短時間で命令出現率を求めるこ
とができる。
(実施例) 以下、本発明を図の実施例を用いて詳細に説明する。
先ず、第1図は、本発明の方法の基本的な手順を示すフ
ローチャートである。
先ず、本発明においては、測定対象となるターゲットプ
ログラムを実際にプロセッサに実行させる。このとき、
そのプロセッサに対しシングルステップ割り込み機能を
動作させるようセットしておく。シングルステップ割り
込み機能とは、1命令実行ごとに割り込みのかかるよう
な動作を行なう機能をいう。
従って、第1図に示すように、先ず、ターゲットプログ
ラムの1命令を実行すると(ステップS1)、シングル
ステップ割り込みがエントリされる(ステップS2)。
これによって、集計ルーチンが開始される(ステップS
3)。
集計ルーチンにおいては、そのプロセッサのスタックに
格納された次に実行する命令のアドレス信号を得る(ス
テップS4)。そして、そのアドレス信号により特定さ
れた命令を解析し、実行回数の集計を行なう(ステップ
S5)。即ち、ターゲットプログラムを格納したメモリ
には、そのアドレス信号と1対1に対応して命令コード
が格納されている。単に、その命令の実行回数をカウン
トするのみであれば、そのアドレスに1対1に対応させ
たカウンタを、同一アドレスが出現する毎に1ずつカウ
ントアツプしていけばよい。
一方、命令の内容によっては、数バイトの命令やパラメ
ータによって1つの命令を構成するものがあり、そのよ
うな場合一連の命令等につき所定の解析を行なって、同
種の命令の実行回数の集計を行なうことになる。その詳
細については後で説明する。
一方、この作業開始にあたって、オペレータは終了アド
レスを予め設定しておく。従って、ステップS6におい
て、その終了アドレスに達したか否かが判断され、終了
アドレスに達していなければ再びターゲットプログラム
に戻る(ステップS7)  そして、次のターゲットプ
ログラムの1命令が実行される(ステップSl)。その
後、ステップS1から87までのステップを繰り返し、
終了アドレスまでターゲットプログラムを実行した後、
ステップS5において集計した集計結果の出力を行なう
(ステップS8)。
本発明の方法は、基本的には上記のような手順によって
実施される。
次に、本発明のより具体的な実施方法を説明する。
この方法の実施にあたっては、シングルステップ割り込
み機能を持ったマイクロプロセッサを使用する。その目
的に添うプロセッサとして、例えば、この実施例ではイ
ンテル社製の8086系CPUを使用した。
第2図に、8086系CPUの命令の分類を示す。
8086系CPUの命令コードは、1バイト、即ち8ビ
ット単位で構成され、最大256種類存在することにな
るが、これを内容別に分けると図のように15種類に分
類することができる。
ここで、各分類には制御コード“O″°〜゛15°′と
いう番号を付した。
図において、先ず、制御コード°゛O゛°に分類される
命令は、その命令コードの1バイト目で命令の種類が1
つに定まる性質の命令である。次に、制御コード°°1
°”に分類される命令は、命令コードの次の1バイトに
よって、オペランドがレジスタかメモリかが定まる命令
である。又、制御コードが゛°2パ〜” 9 ”に分類
される命令は、それぞれ8つの命令グループに対応付け
られており、次の1バイトによりその命令の種類が8つ
の内1つに定まる性質のものである。又、制御コード“
10″に分類される命令は、命令コードが2バイトから
なり、2番目のバイトにより命令の種類が1つに定まる
性質のものである。又、制御コード“’11”に分類さ
れる命令は、実際の命令コードの前におかれる擬似コー
ドである。その他、制御コード“’ l 2 ”〜゛1
4″′はリザーブされた命令で、制御コード°″15°
′に分類される命令は未定義命令である。
このように命令を分類したのは、同一のアドレス信号に
より特定される命令コードであっても、その命令コード
に続くパラメータ等によって実行される内容が異なって
くるために、命令コードを詳細に解析し、各命令の種類
毎に命令出現回数をカウントアツプしようとするためで
ある。
従って、例えばデータを格納する命令コードの場合に、
これがレジスタへデータを格納する命令として使われた
か、メモリへデータを格納する命令として使われたかに
よって、それぞれ個々に分類しその命令出現回数をカウ
ントすることになる。
第3図には、第2図に示したような分類を元にして実施
する、本発明の方法の具体的な実施例を示す。
先ず、ここでは、先に第1図を用いて説明したターゲッ
トプログラムの実行中、シングルステップ割り込みがエ
ントリーされると、その時点でスタック1からアドレス
信号2を取り出す。このアドレス信号2を用いて、ター
ゲットプログラムを格納したメモリ3をアクセスする。
これにより、メモリ3からは、そのアドレス信号2に対
応する命令コード4が読み出される。命令コード4は、
先に説明したように、1バイト、即ち8ビツト構成のも
ので、最大256種存在する。
制御テーブルTIには、2バイトの制御コードと2バイ
トの制御用アドレスデータとが1組となったものが25
5組格納されている。この制御テーブルT1に所定のア
ドレスが入力すると、制御用アドレスデータ2バイト分
が読み出される。
ここでは、命令コード4を4倍することによって制御テ
ーブルT1のアドレスとしている。即ち、例えば命令コ
ード4が○°°であれば、最初の制御コード゛O°°に
続く制御用アドレスデータな読み出すことになる。又、
命令コード4が例えば2′°であれば、これを4倍した
制御コード°゛8°°に続く制御用アドレスデータが、
この制御テーブルT1から読み出されることになる。
又、この他に、図にはMOD−RM用テーブルT3と、
GROUP 1〜8用テーブルT4と、命令出現回数カ
ウントアツプテーブルT5と、制御テーブルT1と同様
の構成でもう1つ別に設けられた制御テーブルT2とが
設けられている。
命令出現回数カウントアツプテーブルT5は、命令コー
ド4の解析の結果特定された命令の種類に応じて個別に
カウンタが配列されたテーブルデータで、これが各命令
の出現回数を表示する最終的な集計結果を得るためのテ
ーブルとなる。
以下、制御コードの内容毎に、命令コードの解析方法を
説明する。
先ず、命令コード4が制御コード°“Oパに分類される
命令の場合、先に第2図で示したように、その命令コー
ドの1バイト目で命令の種類が1つに定まるから、直ち
にその制御用アドレスデータを元に命令出現回数カウン
トアツプT5を参照し、該当するカウンタを1だけカウ
ントアツプする。即ち、制御コード°゛O°′に分類さ
れる命令コード4が制御コードT1に入力すると、命令
出現回数カウントアツプテーブルT5の所定のカウンタ
が、直ちに1だけカウントアツプされることになる。
次に、制御コード“1″°に分類される命令コードが制
御テーブルT、に入力すると、MOD−RM用テーブル
T、が先ず選択される。この場合、その命令コードに続
く次の1バイト5の内容によって、オペランドがレジス
タかメモリかを特定する。レジスタかメモリかが特定さ
れると、これに応じて命令出現回数カウントアツプテー
ブルT5の所定のカウンタが特定される。そして、それ
が1だけカウントアツプされる。
次に、制御コードが2°°〜” 9 ”に分類される命
令コードが制御テーブルT1に入力すると、各制御コー
ドに対応してGROUP 1〜8用テーブルT4の内、
1つのテーブルが選択される。各テーブルT4は、それ
ぞれ8組のレジスタとメモリによって構成された命令グ
ループであって、命令コードに続く次の1バイト5の内
容によって、いずれの組に属する命令であって、かつ、
オペランドがレジスタかメモリかが特定される。これに
よって、命令出現回数カウントアツプテーブルT5の予
め対応付けられた該当するカウンタを1だけカウントア
ツプする。
具体的には、GROUP 1〜8用テーブルT4は、各
2バイトのレジスタ用とメモリ用の組に分かれており、
命令コードに続く次の1バイト5の内の一部の信号を4
倍することによって、8組のレジスタとメモリの内、い
ずれかのレジスタの先頭アドレスを特定する。更に、そ
の1バイト5に含まれる他の信号によって、オペランド
がレジスタかメモリかを特定する。
次に、制御コードが“10′°に分類される命令コード
が制御テーブルT1に人力した場合、その2バイト目の
命令コードを用いて新たな制御テーブルT2を検索し、
制御用アドレスデータの読み出しを行なう。この場合、
先に説明した制御コード゛○°′〜“9′°までのいず
れかに該当する処理と同様の処理がその後実行される。
又、制御コード°’11°°に分類される命令が制御テ
ーブルT1に人力した場合には、その命令コードに続く
次の命令コードを用いて、再度制御テーブルT1の検索
を行なう。
最後に、制御コードが’15”に分類される命令コード
が入力した場合、未定義命令が発行されたことになるた
めシステムを停止する。
以上の動作によって、スタックから読み出されたアドレ
ス信号に対応する命令コードについて、その命令コード
の用い方を含めた命令の種類を詳細に解析し、命令の種
類毎にカウンタを配列した命令出現回数カウントアツプ
テーブルT5に、命令出現回数を集計することができる
。この集計結果は、必要に応じてデイスプレィやプリン
タに表示することになる。
(発明の効果) 以上説明した本発明の命令出現率測定方法によれば、実
際にプロセッサにターゲットプログラムを実行させ、全
ての命令に対してその命令の実行回数を正確に誤りなく
集計することができる。勿論、各命令の実行回数を合計
すれば、そのダイナミックステップ数も集計することが
できる。しかも、その集計は、プロセッサにより短時間
で実行され、更に集計結果は、全て実際にプロセッサに
よって実行されたものであるため、机上計算によって予
測する従来の方法に比べて、はるかに多くのパターンに
ついて、その処理速度や性能等を知る手がかりとするこ
とができる。
【図面の簡単な説明】
第1図は本発明の方法の手順を示すフローチャート、第
2図は本発明の方法の実施に適する8086系CPUの
命令の分類を示す一覧表、第3図は本発明の方法の具体
的な実施例を示すブロック図である。 1・・・スタック、2・・・アドレス信号、3・・・メ
モリ、4・・・命令コード。

Claims (1)

  1. 【特許請求の範囲】 プロセッサのシングルステップ割り込み機能を動作させ
    、 その割り込み発生時に、 その都度実行される命令種別を、前記プロセッサのスタ
    ックに格納されたアドレス信号を利用して認識し、 前記命令種別毎に、命令実行回数を集計することを特徴
    とする命令出現率測定方法。
JP63158076A 1988-06-28 1988-06-28 命令出現率測定方法 Pending JPH028942A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63158076A JPH028942A (ja) 1988-06-28 1988-06-28 命令出現率測定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63158076A JPH028942A (ja) 1988-06-28 1988-06-28 命令出現率測定方法

Publications (1)

Publication Number Publication Date
JPH028942A true JPH028942A (ja) 1990-01-12

Family

ID=15663772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63158076A Pending JPH028942A (ja) 1988-06-28 1988-06-28 命令出現率測定方法

Country Status (1)

Country Link
JP (1) JPH028942A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03114954U (ja) * 1990-03-07 1991-11-27

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03114954U (ja) * 1990-03-07 1991-11-27
JP2522538Y2 (ja) * 1990-03-07 1997-01-16 株式会社シマノ 振出し竿

Similar Documents

Publication Publication Date Title
CN100407147C (zh) 为记录事件提供前置与后置处理程序的方法
US5142679A (en) Method and apparatus for collecting execution status data of structured program
US5465258A (en) Binary image performance evaluation tool
US6542985B1 (en) Event counter
US5133063A (en) Method and system for outputting program change effect information to a user
CN101964036B (zh) 漏洞检测方法及装置
US6539502B1 (en) Method and apparatus for identifying instructions for performance monitoring in a microprocessor
JPS61204749A (ja) ソフトウエア動作解析装置
EP3144814B1 (en) Method and apparatus for generating a profile of a target program
US6983450B2 (en) User configurable operating system
US6332117B1 (en) General event stamping scheme
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
US5034880A (en) Apparatus and method for executing a conditional branch instruction
EP1125199B1 (en) Method of debugging a program thread
JPH028942A (ja) 命令出現率測定方法
US7885806B2 (en) Simulation method and simulation system of instruction scheduling
US5045992A (en) Apparatus for executing instruction regardless of data types and thereafter selectively branching to other instruction upon determining of incompatible data type
CN117008972B (zh) 一种指令分析方法、装置、计算设备及存储介质
JPH0934754A (ja) プログラムの性能測定装置と方法
JPS59208661A (ja) 計算機の負荷測定方法
JPS60238948A (ja) 計算機システムの処理時間測定装置
JPS6042968B2 (ja) 情報処理装置
JPH10260872A (ja) 計算機システムおよび記録媒体
JPH06274375A (ja) システム評価装置
SU1418732A1 (ru) Устройство дл моделировани процесса контрол программного обеспечени ЭВМ