JPH10240582A - 計算機システムの性能評価方法及び装置 - Google Patents

計算機システムの性能評価方法及び装置

Info

Publication number
JPH10240582A
JPH10240582A JP9047643A JP4764397A JPH10240582A JP H10240582 A JPH10240582 A JP H10240582A JP 9047643 A JP9047643 A JP 9047643A JP 4764397 A JP4764397 A JP 4764397A JP H10240582 A JPH10240582 A JP H10240582A
Authority
JP
Japan
Prior art keywords
block
execution time
filter
computer system
blocks
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
JP9047643A
Other languages
English (en)
Inventor
Yoshiaki Sakai
良哲 酒井
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP9047643A priority Critical patent/JPH10240582A/ja
Publication of JPH10240582A publication Critical patent/JPH10240582A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 少ないデータ入力や時間で、確率や統計に基
づく定量的な結果が得られる計算機システムの性能評価
の方法及び装置を提供する。 【解決手段】 分析の対象となる計算機システムは、制
御フロー分析部102によって複数の基本ブロックへ分
割され、基本ブロックの間の接続関係が制御フローとし
て把握される。各基本ブロックについてシミュレーショ
ン部105によって実行時間を求める。このときシミュ
レーション条件設定部106が実行時間の変動の要因と
なるパラメータの値を決定し、シミュレーション部10
6が実行時間を計算する。その変動の様子から関数変換
部107によって線形フィルタの特性を求める。線形フ
ィルタの特性と各ブロックの接続関係により、フィルタ
網作成部109がフィルタ網を作成する。作成されたフ
ィルタ網に対してフィルタ網駆動部110が信号を与え
る。フィルタ網から得られる応答波形を表示部111に
表示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機システムの
性能を評価するための技術に関し、更に詳細には、プロ
グラミング言語あるいは仕様記述言語による記述の内容
を分析することによって当該計算機システムが必要とす
る実行時間を予測する方法と装置に関する。
【0002】
【従来の技術】計算機システムを開発するときに、従来
ではハードウェアとソフトウェアの開発工程が分離され
ていた。しかし、最近の生産技術の進歩により、机上で
実システムの特性を予測しシミュレーション等で動作を
検証することが可能になってきている。そのため、ハー
ドウェアとソフトウェアの開発工程を結合し、全体的な
評価をシステム設計の段階で行う方法が注目されてい
る。
【0003】計算機システムの良さの評価基準として、
製造コストや処理性能などを考えることができるが、こ
こでは計算機システムによるプログラムの実行の速さ
や、情報処理の過程における実行時間に注目する。これ
は、計算機システムの開発を行うとき、速さの許す範囲
でコストの低減を行うことが多いためである。特に制御
用の計算機システムを開発する場合には、十分に速い計
算機を採用しないと制御が不可能になるため、計算機シ
ステムの応答に要する時間を検討しながら開発すること
が重要になる。
【0004】システム設計の段階では設計変更の自由度
が大きいので、その段階で動作速度が評価できれば、シ
ステム全体として有利な設計指針を選択することができ
る。例えば、システム設計の時にソフトウェアの機能追
加を考えたが、それによって計算機システムの性能が不
足することが分かったとしよう。解決策としては、アル
ゴリズムの変更以外に、クロック周波数の増加や、CP
Uの種類の変更などが考えられ、これらの対策の中から
最も適当なものを選べば良い。これに比較して、ハード
ウェアがソフトウェアとは別個に実装工程に入っている
場合、ソフトウェアの機能追加によって速度が低下して
も、ハードウェアで可能な対策は限定され、システム全
体として最適な結果を得ることができなくなる。
【0005】このような背景から、システム設計の段階
で設計変更を繰り返しながら良い設計指針を探る方法が
注目されてきている。良い方向を探るには、設計対象の
計算機システムで予測される実行時間を、実装工程の前
に予め評価しなければならない。その評価方法は、試行
錯誤を行うために、簡単に利用できて結果が早く出るも
のであることが望ましい。
【0006】設計結果をシステムレベルで検証する場合
によく用いられるのは、ハードウェア部分のシミュレー
ションを行う論理シミュレータと、プログラムの実行を
模擬するソフトウェアシミュレータを結合し、両者を協
調的に動作させる方法である。例えば特開平8−110
919においては、計算機システムを試験する目的で、
論理シミュレータと命令レベルシミュレータを結合する
方法を示している。また、特開平5−143673で
は、CPUの設計検証を行う目的で、やはりソフトウェ
アシミュレータと論理シミュレータを結合し、これを効
率的に動作させる方法を示している。しかし、これらの
方法を上記の目的に用いるには、解決すべき課題がいく
つか存在する。
【0007】第一に作業量の問題がある。シミュレーシ
ョンを行う場合、シミュレーション対象となる計算機シ
ステムへの入力データを用意する必要がある。そのよう
な入力データを事前に作成することや、そのデータをシ
ミュレータに入力する作業は大きな負担になる。
【0008】第二に、一般にソフトウェアシミュレータ
と論理シミュレータを結合すると、個々のシミュレータ
を単独で用いた場合よりシミュレーションの速度が低下
するという問題がある。特にソフトウェアのシミュレー
タの速度低下は、性能検証が実用的にならない原因にな
っている。
【0009】第三に、シミュレーションの網羅性の問題
がある。シミュレータは一般に、一つの入力データに対
して一つの出力を出す。つまり、シミュレーションの結
果は特定の入力データに依存した結果を示している。そ
のためシミュレーション結果だけを見て対象の計算機シ
ステムについて総合的な判断を下すのは困難である。
【0010】総合的な見地から設計の良さについて確信
を得るには、大量にシミュレーションを行って、結果を
全て検査すれば良い。しかしそれは繁雑な作業である。
しかも、そのためには入力データを変えながら何回もシ
ミュレーションを繰り返さなければならず、必要な手間
と時間が増大する。大量のシミュレーション結果を要約
するには、何らかの統計的手法を適用することが考えら
れる。しかしこの場合でも、シミュレータに与えるデー
タを予め何種類も準備し、時間をかけて繰り返しシミュ
レーションをする必要があることには変わりがない。
【0011】このようにシミュレーションによる評価は
難しい問題を抱えている。そこでシミュレーション以外
の評価方法が必要とされるのであるが、そのような方法
の開発も困難な問題である。困難になる要因として、C
PUの動作に対するキャッシュやパイプラインの影響を
挙げることができる。
【0012】キャッシュとはメモリアクセスを高速化す
るために用いる高速メモリを指す。目的に応じて命令キ
ャッシュやデータキャッシュなどに分類されることもあ
るが、ここでは様々な種類を含めてキャッシュと呼ぶ。
キャッシュを備えることによりメモリアクセスの時間が
変化し、特に計算機プログラムの中のループの実行が速
くなる。逆に言えば、キャッシュがヒットするか否かに
よって実行速度が変化するために、プログラムの実行時
間を予測するにはキャッシュのヒット率を予測する必要
がある。ヒット率は計算機プログラムの実行経路に依存
して変化するため、予め予測するのは難しい問題であ
る。
【0013】パイプラインとは順序回路を高速化するた
めに採用する機構を指す。ここでは特に、CPUの内部
に採用された命令パイプラインが問題になる。パイプラ
インの処理中に制御の変更があるとパイプラインの処理
を中断しなければならない。例えば、命令パイプライン
の処理中に条件分岐命令があると、分岐先が決定するま
で次の命令を実行できず、パイプラインが乱れる。つま
り、命令の組み合わせと条件分岐時の分岐先に応じて、
パイプラインの制御機構の反応が変化するため、予め実
行時間を求めるのは困難である。しかし、パイプライン
機構を採用したCPUは非常に多くなっているため、こ
れを無視することができない。
【0014】このようなパイプラインとキャッシュを持
つCPUについて、その実行時間を予測する方法がSu
ng−Soo Limらによって紹介されている(19
95年のIEEE Software Enginee
ring,Vol.21,No.7における論文“An
Accurate Worst Case Timi
ng Analysis for RISC Proc
essors”)。この方法では、まず機械語プログラ
ムを基本ブロックに分割し、基本ブロックごとにパイプ
ラインの動作を求める。次に、基本ブロックの間のパイ
プライン動作の干渉を考慮しながら実行時間を計算す
る。このような基本ブロックの間の干渉を考慮する方法
を示しているのがこの論文の特徴であり、これによって
比較的正確な実行時間を求めることができる。
【0015】ただし、この方法は、特定の実行経路に対
してその実行時間を計算できるのであって、実行経路の
指定方法については述べられていない。つまり、設計の
評価にこの方法を用いるためには、実行経路の指定を変
化させながら何回も実行時間を計算してその統計をとる
必要があり、評価にそれなりの手間と時間がかかること
になる。
【0016】なお、基本ブロックとはプログラムを分割
して得られる単位である。基本ブロックの定義とプログ
ラムを基本ブロックへ分割する方法は良く知られてお
り、例えば「コンパイラ−原理・技法・ツール−」
(A.V.エイホらによる共著,1990年に翻訳)に
記載されている。簡単に言えば、機械語プログラムの場
合、基本ブロックは分岐命令と分岐先の命令を区切りと
してプログラムを分割して得られるものである。従っ
て、基本ブロックの最後に分岐命令を実行して別の基本
ブロックの先頭へ実行が移ることはあるが、基本ブロッ
クの途中から分岐することはない。また、基本ブロック
の途中へ他の基本ブロックから制御が移ることもない。
【0017】さて、ここで技術上の課題を別の角度から
検討してみよう。実行時間について客観的な判断を下す
ためには、統計や確率に基づいた定量的な結果をもたら
す評価方法の開発が望まれる。もし、キャッシュやパイ
プラインなどの複雑な機構を持たない計算機システムで
あれば、そのような方法は容易に開発できる。プログラ
ム全体の実行時間は、基本ブロックの実行時間と実行回
数を乗算し、その結果を加算することで計算できる。関
係式が線形であるため、統計的な議論も容易にできる。
【0018】しかし、CPUがキャッシュやパイプライ
ンを備えるようになったため、計算機プログラムの実行
過程を左右するパラメータと、その実行時間との間の関
係は非常に複雑になっている。基本ブロックの実行回数
とプログラム全体の実行時間の間の関係は線形にならな
い。非線形な入出力関係を持つシステムに対して確率論
を用いて出力の分布を求めることは、一般に非常に困難
な問題である。この問題が解けないために、シミュレー
ションの繰り返しによって統計的なデータを得る努力が
行われることになる。
【0019】逆に言えば、線形なシステムであれば解析
も実現も容易にできる。線形システムの典型的な例は電
気回路に用いる線形フィルタである。線形フィルタは実
現が容易であり、アナログの電気回路による線形フィル
タが数多く用いられてきたのは周知の事実である。近年
はディジタル回路でも線形フィルタを効率よく実現でき
るようになっている。また、線形フィルタの応答のシミ
ュレーションは、非線形なものに比べて速く行うことが
できる。これは線形フィルタの動作を表す方程式が解析
的に解けることに一つの原因があり、その解析解を用い
ることによって高速な応答計算が可能になっている。言
い換えれば、線形フィルタにはルンゲ・クッタ法に代表
される数値解法を用いなくても応答計算が可能であると
いう長所がある。ディジタル信号処理プロセッサなどを
用いたディジタルフィルタが実用されていることは、応
答計算の高速性を裏付けるものである。
【0020】以上の考察から、非線形な関係式を線形シ
ステムの方程式で置き換えられれば、統計的な操作が容
易になる上に、計算手段が簡単に実現できて動作も速く
なることが期待できる。しかし、非線形な関係を線形シ
ステムとして近似する方法が一般論として存在するわけ
ではなく、適用分野ごとに開発しなければならない。
【0021】確率の理論と電気回路によるフィルタの理
論の関係は微妙であり、分野の違いによる方向性の違い
がみられる。確率過程の理論と信号処理の理論の両方で
z変換やラプラス変換が用いられることからも両者の関
係は深いことが分かるが、適用分野が違うために一方の
議論が無条件に他方に応用できるわけではない。一般に
線形フィルタの応答を議論する時は確定系として記述さ
れることのほうが多いが、雑音除去を議論する場合は確
率系として分析される。このように、線形システムの議
論では確率系と確定系の違いが曖昧になっており、議論
の主題に応じて使い分けられているのが普通である。
【0022】
【発明が解決しようとする課題】以上のように従来技術
では、計算機システムの性能評価を行うことは、キャッ
シュやパイプラインの影響を考慮しつつ、多量のデータ
を使用してシミュレーションを繰り返す必要があった。
【0023】本発明は、前記のような従来技術の問題点
を解決するために提案されたもので、その第一の目的
は、少ないデータ入力によって用いることが可能な計算
機システムの性能評価の方法及び装置を提供することで
ある。また、本発明の第二の目的は、少ない時間で評価
を実施することが可能な計算機システムの性能評価の方
法及び装置を提供することである。本発明の第三の目的
は、確率や統計に基づく定量的な結果が得られる計算機
システムの性能評価の方法及び装置を提供することであ
る。
【0024】
【課題を解決するための手段】請求項1の計算機システ
ムの性能評価方法は、計算機システムに関する記述を複
数のブロックに分割し、各ブロックの接続関係と各ブロ
ックの実行時間の変動を取得するステップと、前記各ブ
ロックの実行時間の変動をそれぞれフィルタの特性に変
換するステップと、前記各ブロックの接続関係に従って
各ブロックに対応する複数のフィルタを結合するステッ
プと、結合された複数のフィルタの応答を検出するステ
ップとを備えていることを特徴とする。請求項6の発明
は、前記請求項1の発明を装置の観点で把握したもの
で、計算機システムに関する記述を複数のブロックに分
割し、各ブロックの接続関係を取得する手段と、前記各
ブロックの実行時間の変動を取得する手段と、前記各ブ
ロックの実行時間の変動をそれぞれフィルタの特性に変
換する手段と、前記各ブロックの接続関係に従って各ブ
ロックに対応する複数のフィルタを結合する手段と、結
合された複数のフィルタの応答を検出し、その結果を表
示する手段とを備えていることを特徴とする。このよう
な構成を有する本発明によれば、計算機システムを構成
する複数のブロックの実行時間を、フィルタの特性に変
換することにより、多量のデータ入力操作を必要とする
ことなく、しかも何度も手順を繰り返すことなく簡単に
評価結果を得ることができる。
【0025】請求項2の計算機システムの性能評価方法
は、各ブロックの実行時間の変動を取得するステップ
が、各ブロックを実行させる場合の条件を設定すること
で、フィルタの特性の精度を向上させるステップを含む
ことを特徴とする。請求項7の発明は、前記請求項2の
発明を装置の観点で把握したもので、各ブロックの実行
時間の変動を取得する手段が、各ブロックに対して予め
定められた条件に従ってシミュレーションを実施し、シ
ミュレーションの結果を実行時間の変動に関する統計と
して取得することを特徴とする。この発明によれば、各
ブロックの実行に当たっての条件を設定することによ
り、近似的な実行時間変動の統計を簡単なシミュレーシ
ョンによって短時間で得ることが可能になる。
【0026】請求項3の計算機システムの性能評価方法
は、前記各ブロックの接続関係を取得するステップが、
各ブロックの接続関係の中にループが抽出された場合
に、抽出された接続関係に対してループの展開を行い、
ループの展開で得られた接続関係に従ってフィルタの結
合を行うステップを含むことを特徴とする。請求項9の
発明は、前記請求項3の発明を装置の観点で把握したも
ので、各ブロックの接続関係の中にループが抽出された
場合に、抽出された接続関係に対してループの展開を行
うループ展開手段を有することを特徴とする。
【0027】この発明によれば、ループを含む計算機シ
ステムにおけるキャッシュの影響をより精度良く評価で
きる。すなわち、システムの実行速度はキャッシュのヒ
ット率の影響を受けるが、キャッシュのヒット率はルー
プの有無によって異なってくる。この発明では、システ
ムを複数のループを展開し、各ループごとに適切なヒッ
ト率を設定することにより、実行速度の検出精度を向上
させることができる。
【0028】請求項4の計算機システムの性能評価方法
は、複数のフィルタを結合するステップが、対応するブ
ロックの接続関係に応じてゲインを挿入するステップを
含んでいることを特徴とする。これにより、ブロックの
接続関係に分岐が存在する場合に、ゲインを挿入するこ
とが可能になり、フィルタ網の応答を調べる場合に応答
出力が発散することを防止できる。
【0029】請求項5の計算機システムの性能評価方法
は、前記各ブロックの接続関係と各ブロックの実行時間
の変動を取得するステップが、連続する複数のブロック
の実行時間と前記複数のブロックの個別の実行時間の和
とを比較して擬似的ブロックを作成し、前記複数のフィ
ルタを結合するステップが、対応するブロックの接続関
係に応じて擬似的ブロックに相当するフィルタを挿入す
るステップを含んでいることを特徴とする。請求項10
の発明は、前記請求項5の発明を装置の観点で把握した
もので、連続する複数のブロックの実行時間と前記複数
のブロックの個別の実行時間の和とを比較して擬似的ブ
ロックを作成し、前記フィルタの接続に当たってこの擬
似的ブロックに相当するフィルタを挿入する手段を含ん
でいることを特徴とする。この発明によれば、パイプラ
インを持つ計算機システムにおいて、パイプラインの影
響により実行時間が増大することがあっても、その増大
分を擬似的ブロックとしてフィルタの結合網に挿入する
ことが可能になる。その結果、前後の基本ブロックを連
続して実行した場合の実行時間が、システムの評価結果
により精度良く反映される。
【0030】請求項8の発明は、前記各ブロックの実行
時間の変動をそれぞれフィルタの特性に変換する手段
が、変換するフィルタとして、離散時間型あるいは連続
時間型の線形フィルタを用いることを特徴とする。この
線形フィルタを使用することにより、統計的な操作が容
易になり、動作速度の向上も期待できる。
【0031】請求項11の発明は、前記表示手段が、評
価対象に含まれるプログラムの制御フローとフィルタの
応答を同時に表示することを特徴とする。これにより、
応答の時間的な前後関係を容易に知ることができる。
【0032】
【発明の実施の形態】はじめに、本発明の基本的な実施
形態を示し、続いてそれを改良した二種類の実施形態を
示す。第1の実施形態が基本的な実施形態であり、第2
及び第3の実施形態がその改良である。なお、後述する
実施形態はコンピュータ上に実現され、実施形態の各機
能は、所定の手順(プログラム)がこのコンピュータを
制御することで実現される。例えば、入力部は、入力す
るプログラムやデータの態様によって種々のものを採用
することができ、キーボードやマウスなどの入出力装
置、ネットワーク接続装置、データ読み取り装置などを
使用できる。また、各記憶部は、外部から入力したデー
タを蓄えるためのものであり、磁気や光ディスク装置、
半導体メモリ等の所望の装置を用いることができる。さ
らに、他の部分は、コンピュータのソフトウェアによっ
て構成されることが典型的である。
【0033】本明細書における各「部」は、実施形態の
各機能に対応する概念的なもので、必ずしも特定のハー
ドウェアやソフトウェア・ルーチンに1対1には対応し
ない。同一のハードウェア要素が、場合によって異なっ
た部を構成する。例えば、コンピュータは、ある命令を
実行するときにある部となり、別の命令を実行するとき
は別の部となりうる。また、一つの部が、わずか1命令
によって実現される場合もあれば、多数の命令によって
実現される場合もある。したがって、本明細書では、以
下、実施形態の各機能を有する仮想的回路ブロック
(部)を想定して実施形態を説明する。また、本実施形
態における各手順の各ステップは、その性質に反しない
限り、実行順序を変更し、複数同時に実行し、また、実
行ごとに異なった順序で実行してもよい。
【0034】また、本発明をコンピュータのソフトウェ
アとして実現した場合には、そのソフトウェアを磁気あ
るいは光などの記録媒体に記録しておき、これを個々の
設計者が読み出して自己のコンピュータによって実行す
ることも、本発明の実施形態の一つである。
【0035】[1.第1実施形態] [1−1.第1実施形態の構成]図1は、本発明の実施
形態の一つについて、その構成を示したものである。
【0036】準備として、設計者は分析の対象となる計
算機システムの設計内容を格納したファイルを用意す
る。そのファイルを入力部100を使用して、評価対象
ファイル記憶部101に記憶する。その記憶内容は、制
御フロー分析部102によって複数の基本ブロックへ分
割され、基本ブロック記憶部103に格納されると共
に、基本ブロックの間の接続関係が制御フロー記憶部1
04に格納される。
【0037】基本ブロック記憶部103に記憶された基
本ブロックについてシミュレーション部105によって
実行時間を求める。このときシミュレーション条件設定
部106が実行時間の変動の要因となるパラメータの値
を決定し、シミュレーション部106が実行時間を計算
し、その変動の様子から関数変換部107によって線形
フィルタの特性を求める。求められた線形フィルタの特
性は線形フィルタ記憶部108に記憶される。
【0038】線形フィルタ記憶部108の記憶内容と制
御フロー記憶部104の記憶内容により、フィルタ網作
成部109がフィルタ網を作成する。作成されたフィル
タ網に対してフィルタ網駆動部110が信号を与え、フ
ィルタ網から得られる応答波形を表示部111に表示す
る。
【0039】[1−2.第1実施形態の作用]以下、第
1実施形態の作用を図1のブロック図及び図2のフロー
チャートによって具体的に説明する。
【0040】[1−2−1.ファイル記憶部101]図
2のフローチャートにあるように、まず、設計者が入力
部100を使用して、評価対象ファイルを本装置に入力
すると(S100)、この評価対象ファイルは評価対象
ファイル記憶部101に格納される(S101)。この
実施形態で評価対象ファイル記憶部101に記憶される
のは、設計対象の計算機システムに組み込む予定の機械
語プログラムである。ただし、原理的に機械語プログラ
ムだけでなく、C言語などの高水準プログラミング言語
によるプログラムやハードウェア記述言語による動作記
述などを格納しても、この実施形態と同じ構成で評価を
実施できるように考慮してある。
【0041】[1−2−2.制御フロー分析部102]
次に、評価対象ファイル記憶部101に記憶された記述
をブロックに分割する(S101)。この実施形態では
プログラムを分割する際の単位として基本ブロックを用
いているが、都合によって別の単位をブロックとして扱
っても良い。プログラムを基本ブロックに分割する方法
は「コンパイラ−原理・技法・ツール−」(A.V.エ
イホらによる共著,1990年に翻訳)に説明されてい
る。高水準言語の場合は、構文解析によって基本ブロッ
クを求めることが可能であるのが普通である。機械語の
場合は分岐命令に着目して基本ブロックを求める。どち
らも技術的に難しいものではなく、公知の部を使用す
る。
【0042】ここでは簡単な例を用いて制御フロー分析
部102の作用を説明する。図3が評価対象ファイル記
憶部101に記憶された解析対象のプログラムの例であ
り、それを制御フロー分析部102によって基本ブロッ
クに分割した結果を図4に示す。図4において、201
や202のように、角の丸い四角形で示された部分が基
本ブロックである。基本ブロックに含まれるプログラム
の命令例を基本ブロック記憶部103に記憶する。ま
た、制御フロー分析部102によって分析された各基本
ブロックの間の制御の流れは、図中の203,204,
205などによって表されており、これらは制御フロー
記憶部104に記憶する。なお、基本ブロックを節とし
て、その間の制御の流れを有向技としてグラフで表現し
たものを制御フローグラフと呼ぶ。後で示す図7がその
例である。
【0043】図3の例はC言語で書かれているが、本実
施形態ではこれをコンパイルして得られる機械語プログ
ラムに対して評価を行うようになっている。機械語では
説明が複雑になるため、C言語のままで例を示した。実
際、以下の説明で明らかなように、制御フローの抽出を
してブロック毎に実行時間を求めることができれば、ど
のような言語に対しても同様に本発明を適用することが
できる。対象がハードウェア記述言語であっても、いわ
ゆるビヘイビア・レベルの記述には制御フローが抽出で
きる書き方の方が多いので、そのような記述に限定すれ
ば本発明を適用できる。
【0044】[1−2−3.シミュレーション部10
5]次に、基本ブロックごとにシミュレーション部10
5によって基本ブロックの実行に必要な時間を求める
(S105)。この実施形態では、主に命令の読みだし
とデコード、及びメモリアクセスに必要な時間をシミュ
レーション部105によって求めている。データ演算に
ついてはシミュレーションを行わないので、通常の方法
でCPUをシミュレーションする場合よりも高速に実行
できる。
【0045】この実施形態に限らず、一般的にもシミュ
レーション部105は比較的簡単に実現でき、しかも動
作が高速になることが予想される。その理由は、第一に
基本ブロックの実行中は分岐が起きないため、分岐命令
の後で発生する事象をシミュレートする必要がないから
である。また、第二に、結果として必要なのは基本ブロ
ックの実行時間だけであるから、CPUの内部で行われ
る演算処理を考慮する必要がないことも重要である。こ
れらの理由により、シミュレーション部105は一般的
なCPUのシミュレータより小規模で高速になることが
期待できる。
【0046】なお、基本ブロックの単位でシミュレーシ
ョンを繰り返すことは、プログラム全体のシミュレーシ
ョンを繰り返す場合とは大きく意味が異なる。第一に、
基本ブロックは途中で分岐しないので、ループを繰り返
しシミュレートするということがなく、時間の節約にな
る。第二に、基本ブロックの実行時間と処理中のデータ
の内容との間にほとんど関係がないことが経験的に分か
っているため、実行時間を求めるのに外部からデータを
与える必要がほとんどない。すなわち、利用者にとって
操作が容易なものになる。
【0047】更に第三に、基本ブロックが分岐を持たな
いことにより、全体として必要なシミュレーションの量
が減少することが言える。これについては、更に詳しく
説明しておこう。統計的な結果を得るためには、実行時
間を変動させる要因の組み合わせを考える必要がある。
その組み合わせの数が大きくなるほど、シミュレーショ
ンの回数も多く必要となる。プログラム全体をシミュレ
ーションの対象とする場合は、実行経路の違いやループ
回数の違いが実行時間の変化をもたらす要因となる。つ
まり、実行経路を変えながら何回もシミュレーションを
行う必要がある。しかし、本発明では基本ブロック単位
で実行時間が分かれば良く、実行経路やループ回数が問
題にならない。つまり実行時間の変動の要因を基本ブロ
ックに関わるものだけに限定できるため、全体として必
要なシミュレーションの量が少なくて済むことになる。
【0048】[1−2−4.シミュレーション条件設定
部106]前記のシミュレーション(S105)を行う
に当たっては、設計者は予め入力部100よりシミュレ
ーション条件設定部106に対して、シミュレーション
を行う際の条件を入力する(S104)。これによって
シミュレーションの条件を変化させながら、基本ブロッ
ク毎に繰り返しシミュレーションを行って、基本ブロッ
クの実行時間の変動に関する統計を得る(S105)。
この実施形態では、メモリアクセスがキャッシュにヒッ
トするか否か、パイプラインがストールするか否かをシ
ミュレーション条件設定部106で決定している。
【0049】シミュレーション条件設定部106は内部
に乱数発生器を持っており、確率的に動作する。つま
り、設計者が入力部100で指定した条件に従って、具
体的なシミュレーション条件のサンプルを発生する。こ
のサンプルに基づいてシミュレーション部105が実行
時間を求める。つまり、シミュレーション部105とシ
ミュレーション条件設定部106によって、いわゆるモ
ンテカルロ・シミュレーションを行う。
【0050】より詳しく説明すれば、例えばシミュレー
ション条件設定部106に対して入力部100によりキ
ャッシュのヒット率が50%指定されたものとする。ヒ
ット率はシミュレーション条件の抽象的な表現であり、
シミュレーション条件の確率的な指定といえる。シミュ
レーション条件設定部106は、内部の乱数発生器を用
いて、具体的にヒットとミスの系列を発生する。この具
体的なサンプルに基づいて、シミュレーション部105
が実行時間を求める。
【0051】このような構成にする理由は、まず第一
に、設計者が入力部100において指定しなければなら
ない項目を削減するためである。設計者は条件を大局的
に与え、具体的なシミュレーション条件は機械的に発生
することにより、設計者の負担を減らすことができる。
第二に、実行時間の変化の様子を調べ、実行時間の分布
を推定するためである。単にヒット率が50%とだけ指
定されても、基本ブロックの実行中には複数のメモリア
クセスが発生する。どのアクセスでミスするかという具
体的な事象によってパイプラインの動作が異なるため、
結果の実行時間が変化する。何回かシミュレーションを
繰り返してみて実行時間の変化を調べることが必要であ
る。
【0052】ところで、従来の技術によるシミュレーシ
ョンで基本ブロックの実行時間を求めるには、以下の情
報が必要になる。
【0053】(1) 基本ブロックに入る時点でのシステム
の状態(レジスタの値やキャッシュの状態など)がすべ
て指定される。
【0054】(2) 基本ブロックの実行中に入出力される
データの値と、入出力のタイミングがすべて指定され
る。
【0055】(3) システムの構造がすべて分かってい
る。
【0056】本発明では、(1) と(2) を具体的に指定し
ないので、(1) や(2) を補完する情報をシミュレーショ
ン条件設定部106によって発生する必要がある。その
組み合わせの数は膨大になるので、網羅的にすべての組
み合わせを試すわけにはいかない。そこで適当な数の条
件のサンプルに対してシミュレーションを実施してみ
て、実行時間分布を推定している。
【0057】従って、本発明において、シミュレーショ
ン部105から得る実行時間の確率分布は、必ずしも正
確なものではなく、近似的な確率分布を用いている。シ
ミュレーション条件設定部によって設定される条件によ
り、シミュレーション部105から得る実行時間の確率
分布は変わってくる。実行時間の分布は、設定する条件
の分布に応じて変化する。しかし、条件の分布を決定す
る合理的な方法がないので、実行時間分布も正確なもの
は期待できない。逆に、大局的にみて分析の目的を実現
できるなら、簡単な分布関数で代用する方が現実的とな
る。
【0058】一例として、図5のような一様分布を得る
ためには、シミュレーション部105の出力を記録し
て、最大値と最小値を求める。シミュレーション条件設
定部106は、たとえば典型的には「すべてキャッシュ
がヒット」および「すべてミス」という条件を発生する
ことによって、最小値と最大値を得ることができる。も
しヒット率が指定されていれば、その範囲内でさまざま
な条件を試してみて、その中の最大値と最小値を利用す
ることになる。あるいは、条件のサンプルとして「最大
値用」「最小値用」「典型的な事例用」の三種が発生で
きれば、それを用いて図6のような三角形の分布を作成
することができる。
【0059】以上のように、シミュレーション条件設定
部106によって一組の条件が作成されると、その値に
応じてシミュレーション部105が実行時間を一つ定め
る。実行時間の分布を求めるには、何組かの条件を発生
し、その度にシミュレーションを繰り返す。したがっ
て、条件のサンプルの取り方(条件の分布)に応じて、
実行時間の分布は異なってくる。このため、条件のサン
プルの質が実行時間分布の質に影響することになる。し
かし、条件のサンプル発生方法を工夫することによっ
て、実システムの実行時間分布に近い結果をもたらすこ
とは困難である。せいぜい「キャッシュのヒット率は5
0%」という程度に、曖昧な基準を用いることになる。
このように、もともとシミュレーション条件設定部の出
力の分布には大きな意味がなく、実行時間分布も正確に
はならない。
【0060】しかし、本発明の目的の一つは、シミュレ
ーションによっては得られない網羅性を確保することで
ある。分析の目的が、たとえば実行時間の最大値や最小
値を求めることであるなら、一様分布を用いることがで
きる。この分布によって、基本ブロックの実行時間の最
大値や最小値を表現することができる。その場合、結果
が必要以上に保守的になるが(つまり現実よりも分布の
幅が広くなる)、少々極端ではあっても近似してしまう
ことによって、分布計算の手間(フィルタの規模)の削
減とシミュレーションに必要な時間の減少という利益を
得ることができる。
【0061】[1−2−5.実行時間分布関数変換部1
07]さて、シミュレーション部105から得られた実
行時間の統計は、実行時間分布関数変換部107でフィ
ルタの特性へ変換される(S106)。実行時間の分布
をz変換して、それを線形フィルタの伝達関数とみな
す。これをより正確に言えば、シミュレーション部10
5で得られた実行時間の統計から離散的な確率関数を求
めて、これをz変換して線形フィルタの伝達関数を得
る。この実施形態では離散時間型の線形フィルタを採用
するので、このようにz変換による方法を用いた。連続
時間型であれば代わりにラプラス変換を用いることがで
きる。すなわち、シミュレーション部105で得られた
実行時間の統計から確率密度関数を求めて、その確率密
度関数をラプラス変換したものを線形フィルタの伝達関
数とみなす。なお、以上で分かるように、本実施形態で
は全てのフィルタが線形である。
【0062】この実施形態で確率分布をz変換の形で記
憶しているのは、一般にz変換によって表現すれば、必
要な記憶の容量が少なくて済むことが理由である。もち
ろん、線形フィルタは状態変数表現と呼ぶ方法でも表現
できるので、その形状に変換することも可能である。確
率分布を線形フィルタの特性に変換することが重要なの
であり、z変換に限らずどの方法を用いても構わない。
【0063】前記のようにシミュレーション部105か
ら得る実行時間の確率分布は、必ずしも正確である必要
はなく、実行時間の変動の幅を表現できて、しかも後で
述べる条件を満たすものであれば、近似的な確率分布を
用いて構わない。この実施形態では図5に示すような一
様分布による近似を用いている。この図5の例では、基
本ブロックの実行時間をクロック数で数えたときに、7
から14までの値をとる確率が均等になるような確率関
数を示している。一様分布は実行時間の最大値と最小値
だけを記憶しておけば作成できるので、それだけシミュ
レーション部105の作用が簡単になり、実施が容易に
なる。
【0064】なお、近似的な分布を用いる場合も含め
て、本発明を実施するときには線形フィルタのパラメー
タを次のように設定する。すなわち、線形フィルタの伝
達関数をz関数によってG(z)と表したとき、
【数1】 となるようにする。本実施形態においては、全てのフィ
ルタがこの条件を満足している。なお、この条件式は線
形フィルタが離散時間型である場合の表現であり、連続
時間型の線形フィルタの場合は、これと同じ条件がラプ
ラス変換による伝達関数G(s)を使って
【数2】 と表される。これらの条件によってフィルタ網の応答が
適切に保たれ、最終的な評価結果における値の発散など
を防ぐことができる。図5や後の図6に示したものは、
この条件を満足している。
【0065】この実施形態では、具体的な例として図5
に示すように、実行時間の確率分布はすべて一様分布を
用いている。そのため、作成される線形フィルタの伝達
関数F(z)は、すべて次の形式になるようにする。
【0066】
【数3】 この実施形態の場合、実行時間分布関数変換部107の
主な仕事は前記の式のa,bに値を代入することであ
る。aは実行時間の最小値、bは最大値を代入する。こ
の式にしたがってフィルタを作成すれば、a,bの値に
かかわらず、
【数4】 の条件を満たすフィルタができる。図5はa=7,b=
14の例である。
【0067】次に、この条件式の意味を説明する。例え
ば、連続時間の確率過程の場合、確率密度関数をt=−
∞から+∞まで積分すると、その値は1になる。この事
実を、確率密度関数をラプラス変換なりz変換なりして
得られる関数を使って表現すると、前記の条件式にな
る。したがって、伝達関数F(z)を確率密度関数に対
応させると、前記の条件式は必然的に満たされる。この
条件を満たさない場合、そのフィルタは確率密度関数に
対応しないことになるので、フィルタ網の応答を確率的
に解釈することができなくなる。
【0068】ただし、この条件を満たさないような、別
のパラメータ設定方法を用いることは不可能ではない。
例えば、フィルタの入出力の二乗積分が等しくなるよう
にし(言い換えれば、伝達関数のL2ノルムが1となるよ
うにし)、さらに後述するゲインの要素の挿入(S10
9)において、分岐の枝に対応するゲインの二乗和が1
となるようにすることも、ひとつの方法である。これは
エネルギーの保存を意識した方法であるが、フィルタ網
を確率論的な計算の実施に利用する意図からみれば、不
自然な方法といえる。
【0069】なお、適当な条件に従わないで無思慮にフ
ィルタの特性を操作すると、フィルタ網が予期しない応
答をするので注意が必要である。本実施形態に到る以前
の試行段階で、様々なパラメータ設定を試したところ、
フィルタの応答の値が無限大に発散したり、逆に早期に
零へ収束したりすることが多かった。そのようなフィル
タ網の動作は、暴走という言葉で言い表すべきものであ
り、性能評価という目的にそぐわない不適当なものであ
る。
【0070】したがって、本実施形態のように、フィル
タを確率密度関数に対応させ、分岐に対応するゲインの
和を1とする方法が、もっとも分かりやすく自然なフィ
ルタ特性の決定方法といえる。
【0071】[1−2−6.線形フィルタ記憶部10
8]関数変換部107によって求められた線形フィルタ
の特性は線形フィルタ記憶部108へ記憶される。一様
分布をz変換すると、図5の例のように、分子多項式の
項が2個、分母多項式の項も2個になる。各項は次数と
係数を対にした2個の数値で表すことができる。従っ
て、線形フィルタ記憶部108は、8個の数値を記憶で
きるように構成すれば良い。このように、一様分布を用
いればz変換の結果が比較的簡単になるため、線形フィ
ルタ記憶部108の実施が容易になるという効果もあ
る。
【0072】線形フィルタ記憶部108が複雑な分布を
記憶できるようにすれば、評価結果の精度を良くするこ
とができる。他の分布の例として、図6にランプ関数を
組み合わせて作成した確率関数とそのz変換の例を示
す。このような分布を用いれば、実行時間の最大値、最
小値、最頻値を表現することができる。
【0073】[1−2−7.フィルタ網記憶部109]
以上のようにして、制御フロー分析部102で得られた
各々の基本ブロック毎に、対応する線形フィルタの特性
が線形フィルタ記憶部108へ記憶される。一方、前記
の制御フロー分析部102によって、基本ブロック間の
接続関係が把握され、これが制御フロー記憶部104に
記憶される(S103)。その後、前記制御フロー記憶
部102に記憶された基本ブロックの接続関係に従っ
て、線形フィルタ記憶部108に記憶された各線形フィ
ルタをフィルタ網記憶部109が接続し、フィルタ網を
作成する(S108)。このフィルタ網作成部109の
作用を、図7と図8を用いて説明する。
【0074】図7は制御フロー記憶部102に記憶され
た制御フローの例である。基本ブロック301,30
2,303の内容は基本ブロック記憶部103に記憶さ
れ、前述の方法で線形フィルタの特性が求められる。図
8は図7の制御フローに従って得られたフィルタ網の例
であり、基本ブロック301に対応するのがフィルタ4
01であり、基本ブロック302に対応するのがフィル
タ402であり、基本ブロック303に対応するのがフ
ィルタ403である。
【0075】基本ブロックの間の接続関係は制御フロー
記憶部104に記憶されており、フィルタ網作成部10
9はこれを参照する。基本ブロック302から出る枝は
306だけであり、行き先は基本ブロック303であ
る。そこで、制御フロー記憶部104はフィルタ402
の出力をフィルタ401へ接続する。
【0076】なお、複数の枝が一つの基本ブロックに入
る時は、一つのフィルタの入力に複数のフィルタの出力
を接続することになる。そのとき、複数の信号を加算器
を用いて結合する。図7の例では基本ブロック301に
対して枝が306と307が入っている。それに対応し
て図8ではフィルタ402とインパルス発生器410の
出力が加算器によってまとめられてフィルタ401に入
力されるようになっている。インパルス発生器410に
ついては、後にフィルタ網駆動部110の説明の中で述
べる。
【0077】前記のようにしてフィルタ網を形成する場
合に、制御フローに分岐のある場合にはゲイン要素を挿
入する(S109)。図7の例では基本ブロック301
からは枝304と枝305が出ており、それぞれ基本ブ
ロック302と303へ向かう。そこでフィルタ網作成
部109はフィルタ401の出力をフィルタ402の入
力とフィルタ403の入力に接続するが、途中にゲイン
要素404とゲイン要素405を挿入する。この実施形
態では全ての分岐に関わる枝に関してゲインを0.5に
設定するようにしている。
【0078】一般的には、このゲインは他の値でも良い
が、どのような値でも良いわけではない。値によっては
フィルタ網駆動部110によってフィルタ網の応答を調
べる時に応答出力が発散することがある。これを防ぐ一
つの方法は、一つの基本ブロックから出る枝に対応する
ゲインの和が1となるようにすることである。本実施形
態では、条件分岐命令を最後に持つ基本ブロックから出
る枝は2本であることが分かっていたので、対応する場
所のゲインを0.5と固定することができた。なお、分
岐の確率が分かっている時は、その確率の値をゲインの
値とすることによって、自然にゲインの和を1とするこ
とができる。
【0079】[1−2−8.フィルタ網駆動部110]
フィルタ網作成部109によって作成されたフィルタ網
に対し、フィルタ網駆動部110がその応答を求める。
具体的には、インパルス発生器410をフィルタ網に接
続し、それが発生するインパルスに対する応答を計測す
る(S110)。インパルス発生器410は時刻0に一
瞬だけパルスを発生する。しかし本実施形態のように、
フィルタが離散時間で動作するものである場合は、数学
的にデルタ関数として表現されるインパルスではなく、
1単位時間の幅を持つパルスとして良い。
【0080】インパルス発生器410を接続する位置に
ついては次のように決める。図7の例において基本ブロ
ック301から実行が開始するものとする。301に入
る枝307に対応する位置が、図8のインパルス発生器
410の位置である。このように、フィルタ網にインパ
ルス発生器を接続する位置は、制御フロー図で実行時間
の計測を開始する位置に対応させる。
【0081】[1−2−9.表示部111]フィルタ網
駆動部101によって得られるフィルタ網の応答は表示
部111に表示する(S111)。フィルタ網を電気回
路によって構築すれば、フィルタ網を構成する各フィル
タの出力を電気的に計測することができる。この実施形
態では、汎用計算機の論理空間にフィルタ網を構成して
おり、応答を数値計算で求めている。前述したように、
線形フィルタの応答は効率よく計算できる。
【0082】この実施形態では、表示部111に各フィ
ルタの出力を同時に表示して比較するために、各々のフ
ィルタに対して並行して応答計算を行っている。なお、
フィルタ網の全体を一つのフィルタとみなし、まず各々
のフィルタの特性からフィルタ網全体の全体の特性を求
めておいてから、それを用いて応答を求めることも可能
である。
【0083】この実施形態では、汎用計算機に接続され
たディスプレイ装置の画面上に表示部111を設けてい
る。図9にその表示例を示す。これは4部分に分かれて
おり、501にC言語によるプログラムが表示され、5
02にコンパイルされた機械語プログラムのリストが表
示される。実行時間は502に表示された機械語プログ
ラムに基づいて評価する。503には制御フローを図に
したものが表示され、504にフィルタ網に含まれる各
フィルタの応答が表示されている。503と504が横
に並ぶようになっており、これによって制御フローと応
答時間の関係を知ることができる。504は複数のフィ
ルタの応答波形を並べて表示するようになっており、応
答の時間的な前後関係を知ることができる。
【0084】本実施形態における表示部111について
説明するため、図9の下部を拡大し、必要な部分を切り
出して並べたものを図10に示す。左が基本ブロックを
接続した制御フローを表し、右にフィルタの応答波形が
表示されている。このグラフで横軸はプログラム実行の
経過時間に相当する。この図10を観察すると、例え
ば、00000140という符号が付いた基本ブロック
において、対応するフィルタの波形が時刻100から時
刻150の間で大きな応答を示しているが、その後時刻
160付近で減少し、時刻200を過ぎてから再び波形
が大きくなっていることが分かる。この事実から、プロ
グラムの開始から基本ブロック00000140に到達
するまでの時間は状況によって大きく異なっていること
が分かる。更に、前後の波形を比較することで、この実
行時間の違いは00000138という符号の付いた基
本ブロックへの到達時間の違いであることが分かる。以
上の観察から、基本ブロック00000140の実行ま
での経過時間が200を超えることを許されない場合、
基本ブロック00000138へ到達する以前の実行経
過を分析し、遅れをもたらす経路を特定することの必要
性が分かる。
【0085】ここで本実施形態において、フィルタ網駆
動部110によって得られる応答波形は、フィルタ網を
構成する各フィルタの確定的な挙動を表示したものであ
る。しかし、フィルタ網の構造が分析対象ファイル記憶
部101に記憶された設計内容を反映していることと、
各フィルタがソフトウェアの構成要素を分析して得られ
た確率分布を表現しているために、表示部111の表示
内容は評価対象の計算機システムに関して確率的な計算
を行った結果と解釈することができる。
【0086】このようにして、本実施形態には、シミュ
レーションを何度も繰り返すことなく、一回の操作によ
って計算機システムの実行時間の特徴を読み取ることが
できるという効果がある。
【0087】[2.第2実施形態] [2−1.第2実施形態の目的]次に、第2の実施形態
について述べる。これはキャッシュの影響をより精密に
計算できるようにした例である。
【0088】基本ブロックの実行時間は、キャッシュの
効果により、ループの実行回数に応じて変化する。すな
わち、一回目の実行では命令フェッチやデータへのアク
セスの時にキャッシュがヒットしないため実行が遅くな
るが、二回目以降はキャッシュにヒットするため早くな
る。
【0089】前述の第1実施形態では、キャッシュの影
響が確率分布の形で反映される。すなわち、シミュレー
ション条件設定部106とシミュレーション部105の
作用により、対応する線形フィルタの応答波形が広が
る。その結果として、式による実行時間の変動が最終的
な結果の中に反映されるようになっている。この方法
は、実施が簡単である点と、結果が実際の実行時間とし
て起こり得る値を全て網羅しているという点で優れてい
る。しかし逆に、評価結果のグラフにおける応答波形の
幅が広がるため、特徴を読み取るのが難しくなるという
難点もある。
【0090】本実施例は、これを改善するため、キャッ
シュの特性を考慮し、ループに関して特別な操作を施す
ようにしたものである。すなわち、本実施の形態は、ル
ープの実行回数に応じてシミュレーション部105の動
作を代え、それをフィルタの特性に反映させるのが目的
である。
【0091】[2−2.第2実施形態の構成]前記の目
的達成のために、本実施形態では、制御フローのループ
の一部を展開し、形式上はループでない部分を作成す
る。その構成は、前述の第1実施形態の構成の一部を変
更したもので、図11に示すとおりである。制御フロー
分析部102によって取り出された制御フローに対し
て、ループ展開部601が制御フローを書き換える。書
き換えられた結果は、基本ブロック記憶部103と制御
フロー記憶部104に記憶される。すなわち、図1の構
成に対して、ループ展開部601を追加した結果が図1
1であり、それ以外の構成は第1実施形態と同じであ
る。
【0092】[2−3.第2実施形態の作用]次に、簡
単な例を用いながら本実施形態の作用をループ展開部6
01の作用を中心に説明する。なお、ループ展開部60
1の作用は、図12のフローチャートに示す。また、制
御フロー分析部102によって取り出された制御フロー
の例として図7のものを用いる。この制御フローに対し
て、ループ展開部601はループの展開を行い、図13
の制御フローを生成する。
【0093】具体的には、まずループ展開部601が
「コンパイラ−原理・技法・ツール−」(A.V.エイ
ホらによる共著,1990年に翻訳)に示されているの
と同じ手順により、後向きの辺と呼ばれるものを発見す
る(S200)。後向きの辺の定義はこの文献に示され
ているが、ここではループの最後からループの先頭へ戻
る枝と考えて良い。図7においては、基本ブロック30
1がループの先頭にあたり、基本ブロック302からル
ープの先頭へ戻る枝306が後向きの辺に相当する。
【0094】次に、ループ展開部601が制御フローグ
ラフの複数のコピーの作成する(S201)。そのうち
一つを過渡的フローグラフと呼び、残りを定常的フロー
グラフと呼ぶ。これらを以下に示す方法で結合して、新
たなフローグラフを得る。その結果が図13である。図
13においては、基本ブロック311や基本ブロック3
12が過渡的フローグラフ310に属し、基本ブロック
321や基本ブロック322が定常的フローグラフ32
0に属する。
【0095】結合は次のように行われる。ループ展開部
601が過渡的フローグラフ310から後向きの辺30
6に相当する辺を削除する(S202)。すなわち、ル
ープの終端に相当する基本ブロック312からループの
先端に相当する基本ブロック311へ向かう枝を削除す
る。図13は結果を示しているので、この枝は既に削除
されている。定常的フローグラフ320における後ろ向
きの辺である枝326はそのまま残す(S203)。次
に、過渡的フローグラフのループ部に相当する基本ブロ
ック312から、定常的フローグラフのループの先頭に
相当する基本ブロック321へ向かう枝316を追加す
ることによって、過渡的フローグラフ310と定常的フ
ローグラフ320が結合される(S204)。以上の操
作をすべての後ろ向きの辺に関して実施し、複数の定常
的フローグラフと過渡的フローグラフを一つに結合す
る。その結果が図13である。
【0096】ループ展開部601以外の構成は第1実施
形態と同じであるが、シミュレーション部105の作用
について補足しておく。第1実施形態における基本ブロ
ック302は、本実施形態では基本ブロック312と3
22の二つに分かれている。基本ブロック312はルー
プの第1回目の実行とみなされ、シミュレーション部1
05ではキャッシュのヒット率は低く設定される。一
方、基本ブロック322はループ実基本ブロック312
はループの第1回目の実行とみなされ、シミュレーショ
ン部105ではキャッシュのヒット率は低く設定され
る。行中とみなされ、キャッシュのヒット率が高いもの
として扱われる。この結果、キャッシュのヒット率の違
いによる影響が二つの独立したフィルタに反映されるこ
とになる。
【0097】この第2実施形態の作用をまとめると次の
ように言うことができる。この実施形態では、過渡的フ
ローグラフと定常的フローグラフを設けて、それを結合
して一つの制御フローグラフを作成した。これにより、
ループの繰り返しのうち、最初の一回分だけ展開したこ
とになる。過渡的フローグラフがループの一回目の実行
に相当し、定常的フローグラフが二回目以降の実行に相
当する。シミュレーション部は過渡的フローグラフと定
常的フローグラフのそれぞれに適した実行時間の評価を
行う。その結果、ループの実行回数を反映した評価結果
が得られるので、実態をより良く反映した実行時間の分
布を示すグラフを表示装置11で表示することができる
ようになる。つまり、この実施形態には、キャッシュを
持つ計算機システムの実行時間の予測の精度が向上する
という効果がある。
【0098】なお、この実施形態では、ループの一回分
を展開しただけだが、展開する繰り返しの回数を多くす
れば、より厳密な結果が得られる。ただし、それによっ
て処理が複雑になり、時間もかかるので、必要とする厳
密度とのバランスでループの展開回数を決定する。
【0099】[3.第3実施形態] [3−1.第3実施形態の目的]前述の第1実施形態で
は、対象がパイプラインを持つ計算機システムである場
合、その影響を確率分布の形で考慮していた。すなわ
ち、パイプラインの停止が起こりやすい基本ブロックに
ついては、そのシミュレーション部105の出力である
実行時間の値の範囲が広がるため線形フィルタの応答波
形が広がって、最終的に評価結果の波形の広がりとして
反映される。この方法は、実現が簡単である点と、結果
が実際の実行時間として取り得る値を全て網羅している
という点で優れている。しかし逆に、実行時間の値の存
在範囲の幅が広くなることは、評価結果の曖昧さが増す
ことも意味しており、表示装置111に表示されたグラ
フから特徴を読み取るのが難しくなるという難点もあ
る。第3実施形態はこれを改善するものである。
【0100】[3−2.第3実施形態の構成]この実施
形態の構成は、基本的には図1の第1実施形態と同じで
あるが、図14に示すとおり、制御フロー分析部102
の後段に疑似的ブロック挿入部701を備えている点が
第1実施形態と相違する。この疑似的ブロック挿入部7
01は、本来の制御フローグラフに存在する各枝に対し
て、疑似的なブロックを挿入する。すなわち、複数の基
本ブロックを連続して実行した場合の実行時間は、各基
本ブロックを単独に実行した場合の実行時間の和に比較
して、パイプラインの影響によって増加することがあ
る。このように結果に差ができる場合、その差に相当す
る時間を疑似的なブロックの実行時間として扱い、疑似
的ブロック挿入部701が各基本ブロックの間にその疑
似的ブロックを挿入する。
【0101】[3−3.第3実施形態の作用]このよう
な疑似的ブロック挿入部701を有する第3実施形態の
作用を図15のフローチャートに従って、簡単な例を用
いて説明する。すなわち、制御フロー分析部102で
は、評価対象ファイル記憶部11に記憶された解析対象
プログラムから、図7の代わりに図16で示される制御
フローグラフを得る。これは、疑似的ブロック挿入部7
01が本来の制御フローグラフに存在する各枝に対し
て、疑似的なブロックを挿入することによって得られ
る。すなわち、図7における304,305,306の
各枝の位置に、それぞれ疑似的なブロック334,33
5,336を挿入した結果が図16である。
【0102】シミュレーション部105の基本ブロック
301,302,303に対する作用は第1実施形態と
同じであるが、疑似的なブロックに対して特殊な動作を
する。すなわち、基本ブロック301と302を連続し
て実行した場合の実行時間は、301及び302を単独
に実行した場合の実行時間の和に比較して、パイプライ
ンの影響によって増加することがある。このように結果
に差ができる場合、その差に相当する時間を疑似的なブ
ロック334の実行時間として扱う。335,336に
ついても同様にして、前後の基本ブロックを連続に実行
した場合の実行時間を反映させる。
【0103】すなわち、図15のフローチャートに従っ
て、前記第1実施例との相違点を述べると、付きのとお
りである。すなわち、この実施形態では、評価対象ファ
イルを複数の基本ブロックに分割した後(S102)、
個々のブロックに対してシミュレーションを実行(S1
05)し、その実行時間の変動に対する統計を得る(S
106)と共に、連続する複数の基本ブロックに対して
シミュレーションを実行し(S305)、その実行時間
の変動に対する統計を得る(S306)。そして、連続
する基本ブロックの実行時間と個々の実行時間の和とを
比較して(S307)、擬似的ブロックを作成する(S
308)。個々の基本ブロックについてフィルタ特性へ
の変換を行い(S107)、基本ブロック間の接続関係
とからフィルタ網を作成する(S108)際に、各基本
ブロックの間に前記のようにして作成した擬似的ブロッ
クを挿入する(S309)。
【0104】このようにして得られたフィルタ網に対し
てインパルスを印加して(S110)、その応答を表示
する(S111)ことは第1実施形態と同じである。図
16に対して得られるフィルタ網は図17のようにな
る。これを図8と比較すれば、疑似的なブロックに対応
して434,435,436の各フィルタが挿入されて
いることが分かる。
【0105】この実施形態の効果は次のように説明され
る。パイプラインの影響は、プログラムの実行中に分岐
が起きたときに顕著になる。分岐前後のパイプライン動
作が分岐先によって変化するため、計算機システムの実
行時間は、分岐先への分岐回数に依存した関数となる。
この影響は、第1実施形態においては、基本ブロックの
実行時間の範囲の広がりとして現れる結果になる。この
第3実施形態においては、制御フローグラフの枝に対し
て仮想的な実行時間を設けた。これにより、第1実施形
態に比較して分岐の影響をより厳密な形で反映できるよ
うになった。その結果、各基本ブロックの実行時間のば
らつきが減り、確率分布の幅を狭めることができ、より
実態に近い実行時間分布のグラフを表示装置111に表
示することができた。つまり、この実施形態には、パイ
プラインを持つ計算機システムの実行時間の予測の精度
が向上するという効果がある。
【0106】
【発明の効果】本発明による計算機システムの性能評価
の方法及び装置を用いることによって、計算機システム
の実行時間に関する確率的な評価を線形フィルタによっ
て計算できるので、性能に関して定量的な評価結果を少
ない時間で簡単に得られるという効果がある。
【図面の簡単な説明】
【図1】本発明の第1実施形態の構成を示すブロック図
【図2】本発明の第1実施形態の動作を説明するフロー
チャート
【図3】評価対象の計算機システムに組み込む計算機プ
ログラムの一部を示す図
【図4】第1実施形態の制御フロー分析部によるプログ
ラムの分割を説明するための図
【図5】基本ブロックの実行時間の一様分布とそのz変
換の例を示す図
【図6】基本ブロックの実行時間の別の確率分布とその
z変換の例を示す図
【図7】制御フロー分析部が出力する制御フローグラフ
の例を示す図
【図8】第1実施形態において作成されるフィルタ網の
例を示す図
【図9】第1実施形態における表示例を示す図
【図10】前記図9の一部を拡大して必要部分だけを示
す図
【図11】本発明の第2実施形態の構成を示すブロック
【図12】本発明の第2実施形態の動作を説明するフロ
ーチャート
【図13】第2実施形態におけるループ展開部の結果を
示す図
【図14】本発明の第3実施形態の構成を示すブロック
【図15】本発明の第3実施形態の動作を説明するフロ
ーチャート
【図16】第3実施形態において制御フロー解析部10
4が作成するフローグラフを示す図
【図17】第3実施形態において作成されるフィルタ網
の例を示す図
【符号の説明】
100…入力部 101…評価対象ファイル記憶部 102…制御フロー分析部 103…基本ブロック記憶部 104…制御フロー記憶部 105…シミュレーション部 106…シミュレーション条件設定部 107…関数変換部 108…線形フィルタ記憶部 109…フィルタ網作成部 110…フィルタ網駆動部 111…表示部 201,202…基本ブロックの例 203,204,205…制御フローの枝 301,302,303…基本ブロックを表す節 304,305,306,307…枝 311,312…基本ブロックを表す節 316,326…枝 321,322…基本ブロックを表す節 334,335,336…疑似的なブロックを表す節 401,402,403…フィルタ 404,405…ゲイン要素 410…インパルス発生器 434,435,435…フィルタ 501…C言語プログラムの表示 502…機械語プログラムの表示 503…制御フローグラフの表示 504…フィルタ網の応答波形の表示 601…ループ展開部 701…擬似的ブロック挿入部

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 計算機システムに関する記述を複数のブ
    ロックに分割し、各ブロックの接続関係と各ブロックの
    実行時間の変動を取得するステップと、 前記各ブロックの実行時間の変動をそれぞれフィルタの
    特性に変換するステップと、 前記各ブロックの接続関係に従って各ブロックに対応す
    る複数のフィルタを結合するステップと、 結合された複数のフィルタの応答を検出するステップと
    を備えていることを特徴とする計算機システムの性能評
    価方法。
  2. 【請求項2】 各ブロックの実行時間の変動を取得する
    ステップが、各ブロックを実行させる場合の条件を設定
    することで、フィルタの特性の精度を向上させるステッ
    プを含むことを特徴とする請求項1記載の計算機システ
    ムの性能評価方法。
  3. 【請求項3】 前記各ブロックの接続関係を取得するス
    テップが、 各ブロックの接続関係の中にループが抽出された場合
    に、抽出された接続関係に対してループの展開を行い、
    ループの展開で得られた接続関係に従ってフィルタの結
    合を行うステップを含む請求項1記載の計算機システム
    の性能評価方法。
  4. 【請求項4】 複数のフィルタを結合するステップが、
    対応するブロックの接続関係に応じてゲインを挿入する
    ステップを含んでいることを特徴とする請求項1、請求
    項2または請求項3記載の計算機システムの性能評価方
    法。
  5. 【請求項5】 前記各ブロックの接続関係と各ブロック
    の実行時間の変動を取得するステップが、連続する複数
    のブロックの実行時間と前記複数のブロックの個別の実
    行時間の和とを比較して擬似的ブロックを作成し、 前記複数のフィルタを結合するステップが、対応するブ
    ロックの接続関係に応じて擬似的ブロックに相当するフ
    ィルタを挿入するステップを含んでいることを特徴とす
    る請求項1、請求項2または請求項3記載の計算機シス
    テムの性能評価方法。
  6. 【請求項6】 計算機システムに関する記述を複数のブ
    ロックに分割し、各ブロックの接続関係を取得する手段
    と、 前記各ブロックの実行時間の変動を取得する手段と、 前記各ブロックの実行時間の変動をそれぞれフィルタの
    特性に変換する手段と、 前記各ブロックの接続関係に従って各ブロックに対応す
    る複数のフィルタを結合する手段と、 結合された複数のフィルタの応答を検出し、その結果を
    表示する手段とを備えていることを特徴とする計算機シ
    ステムの性能評価装置。
  7. 【請求項7】 各ブロックの実行時間の変動を取得する
    手段が、 各ブロックに対して予め定められた条件に従ってシミュ
    レーションを実施し、シミュレーションの結果を実行時
    間の変動に関する統計として取得することを特徴とする
    請求項6記載の計算機システムの性能評価装置。
  8. 【請求項8】 前記各ブロックの実行時間の変動をそれ
    ぞれフィルタの特性に変換する手段が、変換するフィル
    タとして、離散時間型あるいは連続時間型の線形フィル
    タを用いることを特徴とする請求項6記載の計算機シス
    テムの性能評価装置。
  9. 【請求項9】 各ブロックの接続関係の中にループが抽
    出された場合に、抽出された接続関係に対してループの
    展開を行うループ展開手段を有することを特徴とする請
    求項6記載の計算機システムの性能評価装置。
  10. 【請求項10】 連続する複数のブロックの実行時間と
    前記複数のブロックの個別の実行時間の和とを比較して
    擬似的ブロックを作成し、前記フィルタの接続に当たっ
    てこの擬似的ブロックに相当するフィルタを挿入する手
    段を含んでいることを特徴とする請求項6記載の計算機
    システムの性能評価装置。
  11. 【請求項11】 前記表示手段が、評価対象に含まれる
    プログラムの制御フローとフィルタの応答を同時に表示
    することを特徴とする計算機システムの性能評価装置。
JP9047643A 1997-03-03 1997-03-03 計算機システムの性能評価方法及び装置 Pending JPH10240582A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9047643A JPH10240582A (ja) 1997-03-03 1997-03-03 計算機システムの性能評価方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9047643A JPH10240582A (ja) 1997-03-03 1997-03-03 計算機システムの性能評価方法及び装置

Publications (1)

Publication Number Publication Date
JPH10240582A true JPH10240582A (ja) 1998-09-11

Family

ID=12780936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9047643A Pending JPH10240582A (ja) 1997-03-03 1997-03-03 計算機システムの性能評価方法及び装置

Country Status (1)

Country Link
JP (1) JPH10240582A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163387A1 (ja) * 2017-03-09 2018-09-13 三菱電機株式会社 解析装置、解析方法及び解析プログラム
WO2019092849A1 (ja) * 2017-11-10 2019-05-16 三菱電機株式会社 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163387A1 (ja) * 2017-03-09 2018-09-13 三菱電機株式会社 解析装置、解析方法及び解析プログラム
JPWO2018163387A1 (ja) * 2017-03-09 2019-03-14 三菱電機株式会社 解析装置、解析方法及び解析プログラム
WO2019092849A1 (ja) * 2017-11-10 2019-05-16 三菱電機株式会社 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
AU2017438670A1 (en) * 2017-11-10 2020-05-07 Mitsubishi Electric Corporation Simulation device, simulation method, and simulation program
AU2017438670B2 (en) * 2017-11-10 2020-07-23 Mitsubishi Electric Corporation Simulation device, simulation method, and simulation program

Similar Documents

Publication Publication Date Title
US7558719B1 (en) System and method for runtime analysis of system models for variable fidelity performance analysis
US8122398B2 (en) Conversion of circuit description to an abstract model of the circuit
US9690550B2 (en) Program optimization via compile time execution
US5680332A (en) Measurement of digital circuit simulation test coverage utilizing BDDs and state bins
US7958470B1 (en) Method and system for false path analysis
US6295517B1 (en) Method and apparatus for adaptively or selectively choosing event-triggered cycle-based simulation or oblivious-triggered cycle-based simulation on a cluster-by-cluster basis
US20110035203A1 (en) system level power evaluation method
JPH11232147A (ja) パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
JP3608915B2 (ja) マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体
US7370312B1 (en) System and method for controlling simulation of hardware in a hardware development process
US11734480B2 (en) Performance modeling and analysis of microprocessors using dependency graphs
Schlickling et al. Semi-automatic derivation of timing models for WCET analysis
US20050086565A1 (en) System and method for generating a test case
US7266791B2 (en) High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium
US9081930B1 (en) Throughput during high level synthesis
US6725187B1 (en) Latch inference using dataflow analysis
US7308393B2 (en) Hardware and software co-simulation using estimated adjustable timing annotations
US7992112B2 (en) Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium
US7257786B1 (en) Method and apparatus for solving constraints
Razouk The use of Petri Nets for modeling pipelined processors
Wolf et al. Execution cost interval refinement in static software analysis
JPH10240582A (ja) 計算機システムの性能評価方法及び装置
US7051301B2 (en) System and method for building a test case including a summary of instructions
JPH11161692A (ja) 消費電力のシミュレーション方法
Keutzer The need for formal methods for integrated circuit design