JPH10320246A - プロセッサ方式性能測定方式 - Google Patents

プロセッサ方式性能測定方式

Info

Publication number
JPH10320246A
JPH10320246A JP9145965A JP14596597A JPH10320246A JP H10320246 A JPH10320246 A JP H10320246A JP 9145965 A JP9145965 A JP 9145965A JP 14596597 A JP14596597 A JP 14596597A JP H10320246 A JPH10320246 A JP H10320246A
Authority
JP
Japan
Prior art keywords
instruction
prediction
branch
processor
unit
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
JP9145965A
Other languages
English (en)
Other versions
JP3295803B2 (ja
Inventor
Isao Watanabe
勲 渡辺
Yasunari Yoshino
泰成 芳野
Kaoru Suzuki
薫 鈴木
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP14596597A priority Critical patent/JP3295803B2/ja
Publication of JPH10320246A publication Critical patent/JPH10320246A/ja
Application granted granted Critical
Publication of JP3295803B2 publication Critical patent/JP3295803B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 通常のAPを用い、不当な分岐予測で実行さ
れる命令を考慮し、多階層動的分岐予測機構を有す擬似
的プロセッサの方式性能の測定方式を提供する。 【解決手段】 方式情報10と80を入力し、シミュレート
部30と擬似的なプロセッサであるシミュレート部70を初
期設定する。命令取出部31は命令提供部50からモジュー
ル40の命令を取出し、予測部32では3階層分岐予測を
し、状態更新部33は予測の実行又は分岐命令の実行の度
に実行の結果に基づき予測部32の状態を更新し、集計部
34は予測パターンと分岐成立不成立情報に基づき各予測
パターン毎の予測正当回数と不当回数を集計し、状態表
示部35は予測部の状態情報を60に出力する。シミュレー
ト部70は命令バッファに格納された命令の実行をシミュ
レートし、性能評価部90は各階層の予測正当性とシミュ
レート30、70における遅延時間に基づくプロセッサ方式
性能の評価数値とを算出し、100に出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサの方式
性能測定方式に係り、特に多階層動的分岐予測機構を有
するプロセッサの方式性能測定方式に関する。
【0002】
【従来の技術】プロセッサ方式性能測定方法のアドレス
トレース作成の一方式として、評価対象のアプリケーシ
ョンプログラムに参照した論理アドレスをファイルに出
力するコードを埋め込み、ホストコンピュータ上で実行
することにより命令トレースを作成する方式がある事が
知られている。
【0003】また、関連する特許として、特開平5−2
33380号がある。これは、VLIW命令の並列実行
に関し、各VLIW命令について、各オペレーションご
との命令の同期実行部で使う各レジスタ及び各パイプラ
インについて待ち制御情報を参照して待ち時間を決定す
ることで、各該命令の実行時間を計算して、性能を測定
する方法である。
【0004】
【発明が解決しようとする課題】設計したプロセッサ方
式の性能を測定するための従来のプロセッサ方式性能測
定方法では、性能評価専用の評価対象アプリケーション
プログラムとしてオブジェクト形式モジュールを作成す
る必要がある。また、既存のベンチマークを評価対象ア
プリケーションプログラムとして利用する場合には、ベ
ンチマークのソースファイルに変更を加えてオブジェク
ト形式モジュールを得なければならないが、ソースファ
イルが添付されていないオブジェクト形式ベンチマーク
を評価対象アプリケーションプログラムとした時には、
性能評価が困難という欠点を有している。また従来は、
評価対象として用意した命令列を、順番に又は順番を入
れ替えて擬似的に実行し、分岐予測が失敗している場合
には、失敗により費やされた時間を予め定めたサイクル
数とすることにより性能測定結果を出しているので、動
的分岐予測で求められた命令の擬似的な実行による各レ
ジスタ及び各パイプラインについての実際に生じた待ち
時間情報をも利用した性能測定結果が得られないという
問題がある。
【0005】本発明の目的は、通常のアプリケーション
プログラムを、プロセッサ方式性能測定の評価対象とし
てプログラム変更なしで使用できるようにすることにあ
る。本発明の他の目的は、同一の評価対象としてのアプ
リケーションプログラムを使用する複数の方式のプロセ
ッサ方式性能測定に要する時間を短縮することにある。
本発明のさらに他の目的は、不当な動的分岐予測により
実行される命令による、各レジスタ及び各パイプライン
への影響を考慮した高精度なプロセッサ方式性能測定を
実現することにある。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、情報処理装置の方式性能を評価するた
め、与えられた命令列を実行する論理動作をシミュレー
トし、その実行性能を測定する方式性能測定方式におい
て、入力したオブジェクト形式モジュールを、実行命令
トレースと分岐命令格納位置情報に変換する命令提供部
と、命令を該命令提供部から取得し、多階層動的分岐予
測機構を擬似的に実行する分岐予測機構シミュレート部
と、該分岐予測機構シミュレート部で予測された予測パ
ターン毎の予測正当性から各階層の予測正当性と、多階
層動的分岐予測が不当な状態時に発生する遅延時間に基
づき情報処理装置の方式性能を評価する性能評価部とを
備えるようにしている。
【0007】また、前記命令提供部は、オブジェクト形
式モジュールを、実際に実行される命令順に命令コード
と命令アドレスを実行命令トレースに登録する実行命令
トレース作成部と、オブジェクト形式モジュールを読み
込み、多階層動的分岐予測時に必要な分岐命令格納位置
情報を作成する分岐命令格納位置情報作成部を有し、オ
ブジェクト形式モジュールと複数種類の分岐予測機構方
式情報を使用してプロセッサ方式性能評価を実行する時
に、該オブジェクト形式モジュールが既にプロセッサ方
式性能評価に使用されている場合には、実行命令トレー
スと分岐命令格納位置情報の作成処理が省略可能である
ようにしている。
【0008】また、前記分岐予測機構シミュレート部
は、実際に実行される命令と不当な分岐予測により実行
される命令とを、命令提供部から取得する命令取り出し
部と、取り出した複数の該命令から、各階層の分岐の予
測パターンを求め、次に取り出す必要のある該命令を決
定する予測部と、予測に必要な分岐予測機構の状態情報
を更新する状態更新部と、実際に実行した命令の実行結
果と予測パターンに基づき、予測パターン毎の予測正当
性を求める事象発生回数集計部と、分岐予測機構の動作
状態を確認するための動作状態確認情報を出力する状態
表示部とを備えるようにしている。
【0009】
【発明の実施の形態】以下、本発明の実施の形態を詳細
に説明する。図1は、本発明の一実施例の構成図であ
り、図2は、本発明の命令提供部の一実施例の構成図で
ある。図3は、図2の代案の構成図である。図4、図
5、図6及び図7は、3階層動的分岐予測機構による動
作の一例を説明する図である。図8は、動作状態確認情
報60の一部の例であり、図9は、分岐予測機構方式情
報10の一部の例であり、図10は、分岐予測機構以外
のプロセッサ方式情報80の一部の例であり、図11
は、各階層の予測正当性100の一部の例である。図1
2は、プロセッサ方式性能測定処理の一例のフローチャ
ートであり、図13と図14は、命令提供部50の一例
のフローチャートであり、図15は、予測部32の一例
のフローチャートである。
【0010】図1のプロセッサ方式性能測定装置の一例
の構成図について説明する。分岐予測機構方式情報1
0、及び分岐予測機構以外のプロセッサ方式情報80を
取得し、初期設定を行う。この初期設定により、方式性
能の測定対象となるプロセッサを擬似的に作り上げ、ま
た、分岐予測機構シミュレート部を作り上げる。この
後、分岐予測機構シミュレート部30の命令取り出し部
31により、最初の命令フェッチ分の命令列である4命
令を取得する。命令は命令提供部50から取得する。
【0011】予測部32では、命令取り出し部31によ
り取得した4命令の命令アドレスと、命令コードと、分
岐予測機構シミュレート部30で管理している3階層分
岐予測機構(図示省略)の動作状態の情報を用いて、初
期時間に得られる第1階層予測と、その1サイクル後に
得られる第2階層予測と、2サイクル後に得られる第3
階層予測を選出する。各階層予測の処理開始は同時に行
われる。このとき、4命令中に分岐命令が含まれていな
くても予測は実行される。予測の内容は、命令フェッチ
中の命令内に分岐命令が存在しない、または、命令フェ
ッチ中の命令内に分岐命令が存在するが分岐は不成立、
または、命令フェッチ中の命令内に分岐命令が存在し分
岐は成立である。n回の連続した予測を実行する際に、
n回目の命令フェッチの命令アドレスを選出するには、
n−1回目の命令フェッチ時の第1階層予測と、n−2
回目の命令フェッチの第2階層予測と、n−3回目の命
令フェッチの第3階層予測を利用する。
【0012】状態更新部33では、分岐予測機構シミュ
レート部30で管理している3階層分岐予測機構の動作
状態の情報を更新する。更新のタイミングや、更新の条
件等は、分岐予測機構方式情報10により設定された分
岐予測機構シミュレート部30の方式による。分岐予測
が不当であったことが確認された時や、分岐予測が正当
であったことが確認された時に、次回同一の命令アドレ
スで命令フェッチをした際にそれぞれの階層で正当な予
測ができる可能性が向上するように、それぞれの階層の
動作状態を更新する。
【0013】状態表示部35では、毎サイクルの分岐予
測機構シミュレート部30で管理している3階層分岐予
測機構の動作状態を確認するために、動作状態確認情報
60を出力する。動作状態の確認が不必要な時には、プ
ロセッサ方式性能測定の処理速度を向上するために、動
作状態確認情報60を出力しない。動作状態確認情報
は、図4、図5、図6、図7のような命令フェッチの流
れを確認解析することを可能とするので、より高性能な
多階層動的分岐予測機構の方式を考案するために利用さ
れる。
【0014】事象発生回数集計部34では、命令フェッ
チ時に3階層動的分岐予測機構が各階層ごとにどのよう
な予測を選択したかの情報を予測パターンとして保存す
る。そして、該命令フェッチ中の命令内に分岐命令が存
在し、該分岐命令が命令バッファに格納され、その分岐
命令が擬似的に実行された時の分岐の成立不成立の情報
を取得する。上記保存した予測パターンと分岐の成立不
成立の情報との2つの情報から、各予測パターン毎の予
測の正当回数と不当回数を集計する。また、3階層動的
分岐予測機構で発生する事象についても、発生回数を集
計している。
【0015】分岐予測後の命令シミュレート部70で
は、分岐予測機構シミュレート部30で命令フェッチに
より3階層分岐予測が終了して命令バッファに格納され
た命令を、各パイプライン毎に可能な命令からアウト・
オブ・オーダーで(元の順番に関係なく)実行し、各レ
ジスタ、各パイプライン、キャッシュ、メモリ、バス等
の占有処理をする。ここで、占有処理とは、レジスタ等
の各ユニットが使用されるとき、ユニット毎の以後の使
用時間を示す使用時間情報を保存し、あるユニットが使
用されている時間帯にその同一ユニットを使用しようと
したときには、使用可能となるまでの時間を遅延時間と
して算出する処理であり、方式性能測定に利用する従来
の方法である。不当な分岐予測により実行された命令
は、分岐予測後の命令シミュレート部70で該命令に関
する占有処理を実行した後にキャンセルされるか(この
場合占有処理はされたままとなる)、命令バッファに格
納されたままで占有処理を実行する前にキャンセルされ
る。
【0016】命令提供部50から提供される実行命令が
全て擬似的に実行されるまで繰り返し分岐予測機構シミ
ュレート部30と分岐予測後の命令シミュレート部70
での実行をする。性能評価部90では、事象発生回数集
計部34で集計した各予測パターン毎の正当回数と不当
回数から、各階層の予測正当性を算出する。また、分岐
予測機構シミュレート部30と、分岐予測後の命令シミ
ュレート部70とで算出された遅延時間を利用すること
により、評価対象としたオブジェクト形式モジュール4
0をプロセッサ、すなわち分岐予測機構方式情報10と
分岐予測機構以外のプロセッサ方式情報80で設定した
プロセッサにおいて、擬似的に実行した時の該プロセッ
サの方式性能を評価するための数値を算出する。
【0017】以下、図2と図3を用いて、図1の命令提
供部50をさらに詳しく説明する。図2で示している命
令提供部50では、評価対象とするオブジェクト形式モ
ジュール40を、実行命令トレース(実行命令列デー
タ)作成部55により、実行命令トレース56に変換
し、また、分岐命令格納位置情報作成部53により、分
岐命令格納位置情報54に変換する。分岐命令格納位置
情報54には、メモリ領域に格納されたオブジェクト形
式モジュール40の中に存在した分岐命令がどの命令ア
ドレスに格納されているかの情報が保存される。さら
に、高精度の方式性能測定を実現するために、分岐命令
だけでなく、全ての命令に対して格納されている命令ア
ドレスの情報を保存する。命令取り出し部31は、命令
提供部50で作成された実行命令トレース56から、実
際に実行される命令を取得する。また、分岐予測機構シ
ミュレート部30で予測した命令アドレスによる命令フ
ェッチ時に、実行命令トレース56に保存されている命
令以外の命令が必要となった場合は、分岐命令格納位置
情報54に保存されている命令アドレスを利用して命令
を取得する。以上述べたように、図2のように一回評価
対象とするオブジェクト形式モジュール40を、実行命
令トレース56と分岐命令格納位置情報54に変換して
保存することで、同一評価対象で再度プロセッサ方式性
能測定を実施する時の測定時間を短縮することが可能で
ある。
【0018】図2の代案である図3で示している命令提
供部50では、図2における実行命令トレース56と分
岐命令格納位置情報54を作成する代わりに、実行命令
列提供部51と、誤分岐予測先命令列提供部52とを有
する。命令提供部50は、オブジェクト形式モジュール
40を全て格納できるだけの大きさのメモリ領域を確保
し、その領域に該モジュール40の情報を全て取り込
む。取り込んだ該モジュール内の命令列とデータによ
り、実行命令列提供部51から実行される命令を順番に
提供することができる。
【0019】また、命令取り出し部31が、不当な分岐
予測により実行される命令を要求している場合には、誤
分岐予測先命令列提供部52から、実際に実行される命
令以外の命令を取り出すことができる。以上述べたよう
に、図1、図2、図3のような構成でプロセッサの方式
性能を測定することで、実際に実行される命令以外の命
令をも考慮した測定が可能となり、高精度なプロセッサ
方式性能測定が実現できる。
【0020】次に、図4、図5、図6、図7で、多階層
動的分岐予測機構の一例について説明する。ある命令ア
ドレスに格納されている分岐命令が実行された場合、該
分岐命令の次に実行される命令は、分岐不成立時は該分
岐命令が格納されていた命令アドレスの次順の命令アド
レスに格納されている命令であり、また分岐成立時は該
分岐命令に示されているターゲットアドレスに格納され
ている命令である。動的分岐予測機構は、命令列をキャ
ッシュメモリからプロセッサ内の命令バッファに格納
(以下、命令フェッチと略す)する際に、命令フェッチ
中の命令列内の分岐命令の有無と、その分岐命令の分岐
成立不成立を予測して、次に命令フェッチする命令列の
先頭命令アドレスを選択する。基本的に、キャッシュミ
スが発生した時と、命令バッファに空きが無くなった時
を除いて、命令フェッチは毎サイクル実行される。ここ
で、サイクルとは方式性能測定にも使用する単位であ
る。ここでは、一度の命令フェッチで最大4命令を命令
バッファに格納され、命令フェッチを開始して命令バッ
ファに命令列が格納されるまでにかかる時間は3サイク
ルとする。
【0021】最初の命令フェッチF0により命令列が命
令バッファに格納されて、次に実際に実行される命令が
含まれる命令フェッチFtが命令バッファに格納される
までの動作について説明する。図4、図5、図6、図7
では、横軸はサイクル数で1サイクル進むと1マス右に
移動し、縦軸は命令の流れで下方向に移動する。
【0022】図4は、3階層動的分岐予測の第1階層予
測が正当であった時の命令フェッチの流れの図である。
図4について説明する。命令フェッチF0に対して、第
1階層予測はIF1サイクル目(IFは命令フェッチの
略号)のタイミングで完了され、次の命令フェッチFt
を選択する。第2階層予測はIF2サイクル目のタイミ
ングで完了され、第1階層予測と同一の予測をしたとす
る。第3階層予測はIF3サイクル目のタイミングで完
了され、第2階層予測と同一の予測をしたとする。第
2、第3階層の予測共、第1階層の予測と同一であるた
め、第1階層の予測が正当であったとする。実際には、
図7で示すように第3階層の予測が不当である可能性が
あるが、図4では、第3階層予測不当確認で不当が確認
されなかった時を想定している。命令フェッチF0が命
令バッファに到達してから命令フェッチFtが命令バッ
ファに到達するまでには1サイクルかかり、3階層動的
分岐予測機構による遅延時間は0サイクルとなる。な
お、第3階層予測はIF3サイクル目のタイミングで完
了され、予測に最も多くの時間を費やし、予測精度が最
も高くなっている。予測精度は第2階層予測、第1階層
予測の順に低くなっている。したがつて、第3階層予測
が第2階層予測、第1階層予測と異なる場合には、第3
階層予測が採用される。
【0023】図5は、3階層動的分岐予測の第1階層予
測が不当で、第2階層予測が正当であった時の命令フェ
ッチの流れの図である。図5について説明する。命令フ
ェッチF0に対して、第1階層予測はIF1サイクル目
のタイミングで完了され、次の命令フェッチF1を選択
する。第2階層予測はIF2サイクル目のタイミングで
完了され、第1階層予測と異なる予測をしたとする。前
階層の予測と現階層の予測とが異なる場合は、命令フェ
ッチを再実行する。前階層で予測した命令アドレスによ
り実行した命令フェッチF1はキャンセルされ、新たに
第2階層予測の命令フェッチFtを選択する。第3階層
予測はIF3サイクル目のタイミングで完了され、第2
階層予測と同一の予測をしたとする。第3階層予測が、
第2階層の予測と同一であるため、第2階層の予測が正
当であったとする。実際には、図7で示すように第3階
層の予測が不当である可能性があるが、図5では、第3
階層予測不当確認で不当が確認されなかった時を想定し
ている。命令フェッチF0が命令バッファに到達してか
ら命令フェッチFtが命令バッファに到達するまでに
は、命令フェッチF1のキャンセルのために2サイクル
かかり、3階層動的分岐予測機構による遅延時間は1サ
イクルとなる。
【0024】図6は、3階層動的分岐予測の第1、第2
階層予測が不当で、第3階層予測が正当であった時の命
令フェッチの流れの図である。図6について説明する。
命令フェッチF0に対して、第1階層予測はIF1サイ
クル目のタイミングで完了され、次の命令フェッチF1
を選択する。第2階層予測はIF2サイクル目のタイミ
ングで完了され、第1階層予測と同一の予測をしたとす
る。この場合、命令フェッチF0の第1階層予測により
次の命令フェッチF1の命令アドレスを選択したのと同
様に、命令フェッチF1の第1階層予測により次の命令
フェッチF2の命令アドレスを選択する。命令フェッチ
F0に対する第3階層予測は、IF3サイクル目のタイ
ミングで完了され、第2階層の予測と異なる予測をした
とする。前階層の予測と現階層の予測とが異なる場合
は、命令フェッチを再実行する。前々階層で予測した命
令アドレスにより実行した命令フェッチF1、及び前階
層で予測した命令アドレスにより実行した命令フェッチ
F2はキャンセルされ、新たに第3階層予測の命令フェ
ッチFtを選択する。実際には、図7で示すように第3
階層の予測が不当である可能性があるが、図6では、第
3階層予測不当確認で不当が確認されなかった時を想定
している。命令フェッチF0が命令バッファに到達して
から命令フェッチFtが命令バッファに到達するまでに
は、命令フェッチF1とF2のキャンセルのために3サ
イクルかかり、3階層動的分岐予測機構による遅延時間
は2サイクルとなる。
【0025】図7は、3階層動的分岐予測の第3階層予
測が不当であった時の命令フェッチの流れの図である。
図7について説明する。命令フェッチF0に対して、第
1階層予測はIF1サイクル目のタイミングで完了さ
れ、次の命令フェッチF1を選択する。第2階層予測は
IF2サイクル目のタイミングで完了され、第1階層予
測と同一の予測をしたとする。この場合、命令フェッチ
F0の第1階層予測により次の命令フェッチF1の命令
アドレスを選択したのと同様に、命令フェッチF1の第
1階層予測により次の命令フェッチF2の命令アドレス
を選択する。同様の命令フェッチ選択処理を、続けて実
行し、命令フェッチF0が命令バッファに到達してから
4サイクル経過したタイミングにおいて、予測ではなく
実際に分岐命令を実行した結果、命令フェッチF0によ
る第3階層予測が不当であったことが確認されると、命
令フェッチF0、F1、F2、F3、F4、F5、F6
をキャンセルし、次の命令フェッチFtを選択すること
になる。命令フェッチF0が命令バッファに到達してか
ら命令フェッチFtが命令バッファに到達するまでに
は、命令フェッチF1、F2、F3、F4、F5、F6
のキャンセルのために7サイクルかかり、3階層動的分
岐予測機構による遅延時間は6サイクルとなる。また、
命令フェッチFtの命令アドレスを選択するまでに、命
令フェッチF0、F1、F2、F3はすでに命令バッフ
ァに到達しているので、命令フェッチF1、F2、F3
内に含まれる不当な予測による命令が実行されることに
なる。本発明では、この不当な予測により実行すること
になった命令で使用される各レジスタ及び各パイプライ
ンを擬似的に占有するすることができる。
【0026】次に、図12のプロセッサ方式性能測定処
理の一例の動作を示すフローチャートについて説明す
る。ステップ200では、分岐予測機構方式情報10の
ファイル名と、分岐予測機構以外のプロセッサ方式情報
80のファイル名を入力する。分岐予測機構方式情報1
0と分岐予測機構以外のプロセッサ方式情報80によ
り、方式性能を測定するプロセッサを擬似的に作成す
る。また、動作状態確認情報60出力用のファイル名
と、各階層の予測正当性100の出力用のファイル名を
入力し、方式性能評価に利用するデータの出力先を選択
する。そして、ステップ201に進む。分岐予測機構方
式情報10の例を図9に示す。分岐予測機構以外のプロ
セッサ方式80の例を図10に示す。
【0027】ステップ201では、命令提供部50の起
動を実行する。ステップ201の詳細を図13で示す。
ステップ300では、評価対象とするオブジェクト形式
モジュール40を、ファイル名の指定により選択する。
選択したモジュールのデータ量により、ステップ301
で命令提供部50にメモリ領域を確保する。ステップ3
02では、確保したメモリ領域に選択したモジュールの
機械語命令列(データ領域を含む)を格納する。ステッ
プ303では、方式性能測定対象のプロセッサ上で動作
させるOSの方式情報をもとに作成した処理機構(命令
インタプリタ)により、格納したデータから、命令領域
先頭ポインタと、命令領域サイズを求める。ステップ3
04では、ステップ303と同様に、格納したデータか
ら、データ領域先頭ポインタと、データ領域サイズを求
める。ステップ305では、命令領域の先頭に格納され
ている命令コードの命令アドレスを設定する。ここで、
命令領域先頭ポインタが示す位置から4バイト毎に命令
コードが格納されている。ステップ306では、データ
領域の先頭に格納されている1バイトのデータのデータ
アドレスを設定する。設定するときには、命令領域とデ
ータ領域とに重複する領域が発生しないようにする。ス
テップ307では、任意に設定した先頭命令アドレスと
先頭データアドレスにより、データ領域に格納されてい
るデータの内、アドレス値として使用するデータを、前
記設定内容に整合するアドレス値としてのデータに変換
する。そして、図12のステップ202に進む。
【0028】ステップ202では、方式性能測定に使用
する実行サイクルの初期値を0に設定する。そして、ス
テップ203に進む。ステップ203では、ステップ2
12で登録される状態更新データをもとに、分岐予測機
構状態を更新する。そして、ステップ204に進む。
【0029】ステップ204では、ステップ200で設
定されたプロセッサの方式における命令フェッチ数分の
命令の情報を、命令提供部50から順に取得する。命令
フェッチされた命令は、3サイクル後に命令バッファに
格納されるので、それまでは、別に用意する3サイクル
分のメモリ領域の命令フェッチバッファ(IF1、IF
2、IF3と略す)に一時保管させる。
【0030】ステップ204の詳細は図14に示す。図
14のステップ400では、命令フェッチ数分の命令を
全て取得したかと、命令提供部50の命令領域の命令
が、実際に実行される命令に対して全て取得されたかを
確認し、取得していれば、ステップ401に進む。要求
している命令が全て取得できていなければ、ステップ4
02に進む。ステップ401では、要求していた命令を
全て取得できたこと、または、実行するべき命令が全て
取得されたことを、命令取り出し部31に伝え、ステッ
プ205に進む。ステップ402では、要求していた命
令が、実際に順番に実行される命令かを確認し、実際に
順番に実行される命令であることが確認されれば、ステ
ップ403に進む。そうでなければ、ステップ404に
進む。ステップ403では、先頭命令アドレスに格納さ
れている命令コードから順に、命令コードを解読し、命
令取り出し部31に必要な情報(命令アドレスと、命令
コードと命令インタプリタの状態から必要な情報だけを
選択した情報)を提供する。そして、ステップ400に
進む。ステップ404は、命令取り出し部31から、不
当な分岐予測の結果、次に実行する命令を要求された時
に実行されるステップであり、先頭命令アドレス値と命
令領域の情報により、必要とされる命令の情報(命令ア
ドレスと、命令コードと命令インタプリタから必要な情
報だけを選択した情報)を提供する。そして、ステップ
400に進む。
【0031】図12のステップ205では、予測部32
により、3階層分岐予測機構の予測を実行する。ステッ
プ205の詳細は図15に示す。図15のステップ50
0では、一時保管しているIF3に格納されている命令
の情報を命令バッファに格納する。そして、ステップ5
01に進む。ステップ501では、IF2に格納されて
いる命令の情報をIF3に格納する。そして、ステップ
502に進む。ステップ502では、IF1に格納され
ている命令の情報をIF2に格納する。そして、ステッ
プ503に進む。ステップ503では、命令フェッチし
た命令の情報をIF1に格納する。そして、ステップ5
04に進む。
【0032】ステップ504では、IF1の第1階層
(以後BTABと略す)、第2階層(以後BTACと略
す)、第3階層(以後BHTと略す)の予測を、それぞ
れ分岐予測機構状態の情報により決定する。実際のハー
ドウェアにおける動作ではBTAB、BTAC、BHT
は順番に得られるが、シミュレーションの場合には、B
TAB、BTAC、BHTは同時に得られる。決定した
予測は、IF1内に情報として格納される。そして、ス
テップ505に進む。ステップ505では、ステップ5
04で実行された予測の3階層分の予測がどのように決
定されたかの情報を、予測パターンとしてIF1に保存
する。そして、ステップ506に進む。この予測パター
ンは、各バッファ間で情報のシフトに応じて、一緒にシ
フトする。予測パターンは、分岐の成立と不成立の2択
の情報だけでなく、キャッシュミス、条件分岐と無条件
分岐の違い、BTAB/BTAC/BHTの占有処理等
を考慮にいれて作成しているので、パターン数は39通
りある。図11の下方に、各パターンの正当数と不当数
の出力例を示す。
【0033】ステップ506では、命令バッファから分
岐命令が実行されたとき、その分岐命令に対して実行さ
れた予測が正当または不当であったかを確認し、事象発
生回数集計部34で、その分岐命令がフェッチされた時
にIF1で予測された予測パターンに対して、正当また
は不当の集計を行う。そして、ステップ507に進む。
ステップ507では、ステップ506と同様に命令バ
ッファから分岐命令が実行されたとき、その分岐命令の
予測が不当であるかを確認する。不当であれば、ステッ
プ508に進み、正当であれば、ステップ509に進
む。ステップ508は、実行した分岐命令に対する予測
が不当であった時に実行される処理であり、図7で示し
ているように、命令フェッチのやり直しが必要となる。
この場合、IF1、IF2、IF3、命令バッファの情
報のキャンセルを実行し、次に実行する命令フェッチの
命令アドレス(以後NFAと略す)は、実行した分岐命
令の結果のアドレスとする。ステップ508実行後は、
ステップ212に進む。
【0034】ステップ509では、IF3のBHT予測
とIF3のBTAC予測が同一かを確認する。同一なら
ば、ステップ511に進み、同一でなければ、ステップ
510に進む。ステップ510は、IF3のBTACの
予測が不当であった場合の処理であり、図6で示してい
るように、命令フェッチのやり直しが必要となる。この
場合、IF1、IF2の情報のキャンセルを実行し、N
FAはIF3のBHT予測結果のアドレスとする。ステ
ップ510実行後は、ステップ212に進む。
【0035】ステップ511では、IF2のBTAC予
測とIF2のBTAB予測が同一かを確認する。同一な
らば、ステップ513に進み、同一でなければ、ステッ
プ512に進む。ステップ512は、IF2のBTAB
の予測が不当であった場合の処理であり、図5で示して
いるように、命令フェッチのやり直しが必要となる。こ
の場合、IF1の情報のキャンセルを実行し、NFAは
IF2のBTAC予測結果のアドレスとする。ステップ
512実行後は、ステップ212に進む。
【0036】ステップ513は、図4で示しているよう
な不当がなかった場合の処理であり、NFAはIF1の
BTAB予測結果のアドレスとする。ステップ513実
行後は、ステップ212に進む。
【0037】図12のステップ212では、状態更新デ
ータに更新内容を登録する。そして、ステップ206に
進む。BTAB/BTAC/BHTは、予測を実行する
たび、または、分岐命令が実行されるたびに、動的予測
の精度を向上させるために更新処理が行われる。ステッ
プ212は、数サイクル後に更新する内容を一時的に状
態更新データに保存するだけで、更新が必要となる実行
サイクルに達した時にステップ203で更新を実行す
る。
【0038】ステップ206では、命令バッファに格納
されている命令を実行るす。そして、ステップ207に
進む。命令バッファに命令の情報が格納されているとき
は、その命令が使用パイプラインと、レジスタを求め、
各パイプラインとレジスタの占有処理を実行し、分岐予
測機構以外の機構における遅延時間の発生をシミュレー
トする。使用を希望していたパイプラインやレジスタが
占有中であれば、占有時間が終了し、希望していたパイ
プラインやレジスタが全て使用可能となるまで命令バッ
ファから命令が出力されない。
【0039】ステップ207では、状態表示部35にお
いて、分岐予測機構状態の情報を、動作状態確認情報6
0として出力する。出力先のファイル名はステップ20
0で設定されている。図8は、動作状態確認情報の一例
であり、BTAB/BTAC/BHTの予測、動作の状
態が確認できる。ステップ207の処理実行後、ステッ
プ208に進む。ステップ208では、初期値として設
定した実行サイクルの値を1増加させる。そして、ステ
ップ209に進む。ステップ209では、命令バッファ
の空き状態を確認する。そして、空きが無い時には、ス
テップ206に進むみ、空きがある時には、ステップ2
10に進む。命令バッファに空きが無い場合には、命令
フェッチ不可能となるため、命令フェッチの処理をせず
に命令バッファに格納されている命令を実行する必要が
ある。
【0040】ステップ210では、評価対象としたオブ
ジェクト形式モジュール40により実行される命令が全
て実行されたかどうかを確認する。実行するべき命令
が、まだ残っているのであれば、ステップ203に進ん
で残りの命令の処理を続ける。全て実行されていれば、
ステップ211に進む。
【0041】ステップ211では、性能評価部90によ
り、各階層BTAB/BTAC/BHTの予測の正当性
を算出する。算出した結果を各階層の予測正当性100
の出力ファイルに格納して、プロセッサの性能測定を終
了する。各階層の予測正当性の算出は、図11の下方に
示しているような予測パターン毎の正当数と不当数の値
を使用して、適当な予測パターンの正当数を加算するこ
とで計算する。
【0042】以上述べたように、予測部32で不当に予
測されてた命令をも、命令提供部50から取得し、実行
することで、高精度なプロセッサ方式性能測定を実施す
ることが可能である。また、命令提供部50でオブジェ
クト形式モジュール40をメモリ領域に格納し、性能測
定対象のプロセッサ上で動作させるOSの方式情報をも
とに作成した命令インタプリタを使用することで、ソー
スファイルが無いオブジェクト形式だけのアプリケーシ
ョンプログラムを評価対象にすることが可能である。上
述の実施の形態においては、プロセッサの方式性能測定
方法としているが、本発明はプロセッサの方式性能測定
だけでなく、多階層動的分岐機構を有したプロセッサ上
で実行させた時のプログラムの性能評価にも利用でき
る。
【0043】
【発明の効果】以上述べたように、本発明によれば、通
常のアプリケーションプログラムを、プロセッサ方式性
能測定の評価対象としてプログラム変更なしで使用でき
るので、ソースファイルが無いオブジェクト形式だけの
アプリケーションプログラムを評価対象にすることがで
きる。また、評価対象のオブジェクト形式モジュール
を、実行命令トレースと分岐命令格納位置情報に変換し
ておくことで、同一の評価対象を使用した複数の方式の
プロセッサ方式性能を測定する時間が短縮できる。ま
た、不当な動的分岐予測により実行される命令による、
各レジスタ及び各パイプラインへの影響をも考慮するこ
とで、高精度なプロセッサ方式性能測定を実現できる。
【図面の簡単な説明】
【図1】本発明の一実施例の概略構成を示す図である。
【図2】命令提供部50の一実施例の構成図である。
【図3】命令提供部50の他の一実施例の構成図であ
る。
【図4】3階層動的分岐予測機構の一例(第1階層予測
が正当の例)を説明するための図である。
【図5】3階層動的分岐予測機構の一例(第2階層予測
が正当の例)を説明するための図である。
【図6】3階層動的分岐予測機構の一例(第3階層予測
が正当の例)を説明するための図である。
【図7】3階層動的分岐予測機構の一例(全階層の予測
が不当の例)を説明するための図である。
【図8】動作状態確認情報60の一部の例を示す図であ
る。
【図9】分岐予測機構方式情報10の一部の例を示す図
である。
【図10】分岐予測機構以外のプロセッサ方式情報80
の一部の例を示す図である。
【図11】各階層の予測正当性100の一部の例を示す
図である。
【図12】本発明のプロセッサ方式性能測定処理の一例
のフローチャートを示す図である。
【図13】プロセッサ方式性能測定処理のステップ20
1の詳細フローチャートを示す図である。
【図14】プロセッサ方式性能測定処理のステップ20
4の詳細フローチャートを示す図である。
【図15】プロセッサ方式性能測定処理のステップ20
5の詳細フローチャートを示す図である。
【符号の説明】
10 分岐予測機構方式情報 30 分岐予測機構シミュレート部 40 オブジェクト形式モジュール 50 命令提供部 60 動作状態確認情報 70 分岐予測後の命令シミュレート部 80 分岐予測機構以外のプロセッサ方式情報 90 性能評価部 100 各階層の予測正当性

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 情報処理装置の方式性能を評価するた
    め、与えられた命令列を実行する論理動作をシミュレー
    トし、その実行性能を測定する方式性能測定方式におい
    て、 入力したオブジェクト形式モジュールを、実行命令トレ
    ースと分岐命令格納位置情報に変換する命令提供部と、 命令を前記命令提供部から取得し、多階層動的分岐予測
    機構を擬似的に実行する分岐予測機構シミュレート部
    と、 該分岐予測機構シミュレート部で予測された予測パター
    ン毎の予測正当性から各階層の予測正当性と、多階層動
    的分岐予測が不当な状態時に発生する遅延時間に基づき
    情報処理装置の方式性能を評価する性能評価部とを備え
    ることを特徴とするプロセッサ方式性能測定方式。
  2. 【請求項2】 請求項1記載のプロセッサ方式性能測定
    方式において、 前記命令提供部は、オブジェクト形式モジュールを、実
    際に実行される命令順に命令コードと命令アドレスを実
    行命令トレースに登録する実行命令トレース作成部と、 オブジェクト形式モジュールを読み込み、多階層動的分
    岐予測時に必要な分岐命令格納位置情報を作成する分岐
    命令格納位置情報作成部を有し、 オブジェクト形式モジュールと複数種類の分岐予測機構
    方式情報を使用してプロセッサ方式性能評価を実行する
    時に、該オブジェクト形式モジュールが既にプロセッサ
    方式性能評価に使用されている場合には、実行命令トレ
    ースと分岐命令格納位置情報の作成処理が省略可能であ
    ることを特徴とするプロセッサ方式性能測定方式。
  3. 【請求項3】 請求項1記載のプロセッサ方式性能測定
    方式において、 前記分岐予測機構シミュレート部は、 実際に実行される命令と不当な分岐予測により実行され
    る命令とを、命令提供部から取得する命令取り出し部
    と、 取り出した複数の該命令から、各階層の分岐の予測パタ
    ーンを求め、次に取り出す必要のある該命令を決定する
    予測部と、 予測に必要な分岐予測機構の状態情報を更新する状態更
    新部と、 実際に実行した命令の実行結果と予測パターンに基づ
    き、予測パターン毎の予測正当性を求める事象発生回数
    集計部と、 分岐予測機構の動作状態を確認するための動作状態確認
    情報を出力する状態表示部とを備えることを特徴とする
    プロセッサ方式性能測定方式。
JP14596597A 1997-05-20 1997-05-20 プロセッサ方式性能測定方式 Expired - Fee Related JP3295803B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14596597A JP3295803B2 (ja) 1997-05-20 1997-05-20 プロセッサ方式性能測定方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14596597A JP3295803B2 (ja) 1997-05-20 1997-05-20 プロセッサ方式性能測定方式

Publications (2)

Publication Number Publication Date
JPH10320246A true JPH10320246A (ja) 1998-12-04
JP3295803B2 JP3295803B2 (ja) 2002-06-24

Family

ID=15397110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14596597A Expired - Fee Related JP3295803B2 (ja) 1997-05-20 1997-05-20 プロセッサ方式性能測定方式

Country Status (1)

Country Link
JP (1) JP3295803B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015914A (ja) * 2001-07-03 2003-01-17 Fujitsu Ltd 情報処理装置を評価するためのテストプログラムを作成する方法、装置、およびそのための処理を記述したプログラム
KR100404284B1 (ko) * 1999-05-04 2003-11-03 인터내셔널 비지네스 머신즈 코포레이션 브랜치 히스토리 테이블의 증진된 로직 검증을 위한시뮬레이션 환경을 생성하는 방법
WO2004055672A1 (ja) * 2002-12-18 2004-07-01 Fujitsu Limited 性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100404284B1 (ko) * 1999-05-04 2003-11-03 인터내셔널 비지네스 머신즈 코포레이션 브랜치 히스토리 테이블의 증진된 로직 검증을 위한시뮬레이션 환경을 생성하는 방법
JP2003015914A (ja) * 2001-07-03 2003-01-17 Fujitsu Ltd 情報処理装置を評価するためのテストプログラムを作成する方法、装置、およびそのための処理を記述したプログラム
WO2004055672A1 (ja) * 2002-12-18 2004-07-01 Fujitsu Limited 性能シミュレーション装置、性能シミュレーションプログラムおよび性能シミュレーション方法

Also Published As

Publication number Publication date
JP3295803B2 (ja) 2002-06-24

Similar Documents

Publication Publication Date Title
US5729554A (en) Speculative execution of test patterns in a random test generator
JP2746549B2 (ja) コンピュータシステム及びその動作方法
US6542985B1 (en) Event counter
JP4619606B2 (ja) 構成可能なプロセッサを設計する自動化されたプロセッサ生成システムおよびその方法
EP0405489B1 (en) Resource conflict detection method and apparatus included in a pipelined processing unit
US5615357A (en) System and method for verifying processor performance
US9817667B2 (en) Techniques for scheduling operations at an instruction pipeline
US5347647A (en) Method of predicting the performance of an emulated computer system
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
US20130152048A1 (en) Test method, processing device, test program generation method and test program generator
US9575763B2 (en) Accelerated reversal of speculative state changes and resource recovery
US5812809A (en) Data processing system capable of execution of plural instructions in parallel
US20040044884A1 (en) Evaluation of condition codes in a data processing apparatus
JP2001222442A (ja) パイプライン試験方法、パイプライン試験命令生成方法及びその記憶媒体
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
US20050028036A1 (en) Program debug apparatus, program debug method and program
EP0378415A2 (en) Multiple instruction dispatch mechanism
US5461715A (en) Data processor capable of execution of plural instructions in parallel
US20060212680A1 (en) Methods and apparatus for dynamic prediction by software
JP3274036B2 (ja) プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置
JP3295803B2 (ja) プロセッサ方式性能測定方式
US7885806B2 (en) Simulation method and simulation system of instruction scheduling
CN101833437B (zh) 适用于微处理器的装置及方法
US20050154859A1 (en) Branch prediction in a data processing apparatus
US11531547B2 (en) Data processing

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080412

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090412

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090412

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100412

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110412

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120412

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees