JP2000276381A - タスク実行時間の見積もり方法 - Google Patents

タスク実行時間の見積もり方法

Info

Publication number
JP2000276381A
JP2000276381A JP11077679A JP7767999A JP2000276381A JP 2000276381 A JP2000276381 A JP 2000276381A JP 11077679 A JP11077679 A JP 11077679A JP 7767999 A JP7767999 A JP 7767999A JP 2000276381 A JP2000276381 A JP 2000276381A
Authority
JP
Japan
Prior art keywords
execution
cache
instruction
interrupt
trace
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.)
Abandoned
Application number
JP11077679A
Other languages
English (en)
Inventor
Masayoshi Tachibana
昌 良 橘
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 JP11077679A priority Critical patent/JP2000276381A/ja
Priority to US09/532,047 priority patent/US6691080B1/en
Publication of JP2000276381A publication Critical patent/JP2000276381A/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 割り込み処理を考慮したタスク実行時間の見
積もり方法を提供する。 【解決手段】 処理1001〜1011により、割り込
みを考慮しない平均キャッシュヒット率と実行時間とを
求め、これと割り込み発生確率に関する情報2005、
キャッシュ方式やキャッシュサイズに関する情報200
4とを用いて区間ヒット率シミュレーション2006a
を行い、得られたトレース情報Dにストールペナルティ
2008を加えて実行クロック数を求め、キャッシュミ
ット率と実行時間を見積もることで、割り込みを考慮し
た平均キャッシュヒット率及び実行時間を求めることが
できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、タスク実行時間を
見積もる方法に関する。
【0002】
【従来の技術】CPU(Central Processing Unit )が
タスクを実行する時間を見積もる方法として、CPUの
動作をシミュレーションして全命令の実行時間の合計を
行う方法が一般に知られている。この方法は、パイプラ
イン制御を行い、キャッシュメモリを有するようなCP
Uに対しても、パイプラインストールやキャッシュミス
による実行時間の増加を見積もることのできるという利
点がある。しかし、割り込み処理に起因するキャッシュ
ミスの増加等によって生じる実行時間の増加は、このよ
うな命令列のシュミレーションのみでは推定することが
できず、実行時間の見積もりの誤差要因となっていた。
【0003】
【発明が解決しようとする課題】このように、従来の実
行時間の見積もり方法では、割り込みが生じた場合には
タスク実行時間の見積もり精度が低下するという問題が
あった。
【0004】本発明は上記事情に鑑みてなされたもの
で、割り込み処理を考慮して高い精度でタスク実行時間
を見積もることが可能なタスク実行時間の見積もり方法
を提供することを目的とする。
【0005】
【課題を解決するための手段】本発明のタスク実行時間
の見積もり方法は、プログラム、データ初期値、実行開
始番地及び実行終了番地を命令レベルシミュレーション
部に入力し、分岐、命令の組み合わせを含む要因により
起こるパイプラインストールを含む命令の第1の実行ト
レースを出力するステップと、前記第1の実行トレース
をキャッシュシミュレーション部に入力し、キャッシュ
ミスに伴うパイプラインストールを、キャッシュ方式、
キャッシュサイズに対応してシミュレーションして第2
の実行トレースを出力するステップと、前記第2の実行
トレースを実行クロック数カウント部に入力し、分岐、
命令の組み合わせにより起こるパイプラインストールと
キャッシュミスに伴うパイプラインストールとに応じて
命令あたりの実行クロック数を求めて第3の実行トレー
スとして出力するステップと、キャッシュメモリとパイ
プライン制御部とを有するCPUの命令実行をシミュレ
ーションするシミュレータに前記第3の実行トレースを
入力し、割り込みを考慮いない場合におけるプログラム
全体の第1のキャッシュヒット率及び第1の実行時間を
見積もり出力するステップと、出力された前記第1の実
行トレース、前記第1のキャッシュヒット率、前記第1
の実行時間、タスクの実行途中で割り込みが発生する割
り込み発生率、キャッシュメモリの書き換わり率を区間
ヒット率シミュレーション部に入力し、前記第1の実行
トレースに含まれる全ての命令と全ての割り込みとにつ
いて、キャッシュメモリ書き換えパターンに従って書き
換えられたキャッシュのシミュレーションを、全ての割
り込み対して所定命令数だけ行い平均キャッシュヒット
率を求めて出力するステップと、前記第1のキャッシュ
ヒット率と、各々の割り込みにおける前記平均キャッシ
ュヒット率との加重平均をとって割り込みを考慮したキ
ャッシュヒット率とする第4の実行トレースを出力する
ステップと、実行クロック数カウント部に前記第4の実
行トレースを入力し、各々の命令ごとにキャッシュヒッ
ト率と分岐、命令の組み合わせにより起こるパイプライ
ンストールに応じて個々の命令ごとの実行クロック数を
カウントし、第5の実行トレースとして出力するステッ
プと、前記第5の実行トレースを入力し、プログラム全
体のキャッシュヒット率及び実行時間を見積もるステッ
プと、割り込みを考慮した命令実行シミュレータを組み
合わせることにより、割り込みを考慮した平均キャッシ
ュヒット率及び実行時間見積もりを行うステップとを備
えたことを特徴としている。
【0006】また、本発明のタスク実行時間を見積もる
方法は、特定の命令をサンプリングにより抽出して実行
時間を見積もる方法であって、プログラム、データ初期
値、実行開始番地及び実行終了番地を命令レベルシミュ
レーション部に入力し、分岐、命令の組み合わせを含む
要因により起こるパイプラインストールを含む命令の第
1の実行トレースを出力するステップと、記第1の実行
トレースをキャッシュシミュレーション部に入力し、キ
ャッシュミスに伴うパイプラインストールを、キャッシ
ュ方式、キャッシュサイズに対応してシミュレーション
して第2の実行トレースを出力するステップと、前記第
2の実行トレースを実行クロック数カウント部に入力
し、分岐、命令の組み合わせにより起こるパイプライン
ストールとキャッシュミスに伴うパイプラインストール
とに応じて命令あたりの実行クロック数を求めて第3の
実行トレースとして出力するステップと、キャッシュメ
モリとパイプライン制御部とを有するCPUの命令実行
をシミュレーションするシミュレータに前記第3の実行
トレースを入力し、割り込みを考慮いない場合における
プログラム全体の第1のキャッシュヒット率及び第1の
実行時間を見積もり出力するステップと、出力された前
記第1の実行トレース、前記第1のキャッシュヒット
率、前記第1の実行時間、タスクの実行途中で割り込み
が発生する割り込み発生率、キャッシュメモリの書き換
わり率を区間ヒット率シミュレーション部に入力し、前
記第1の実行トレースに含まれる命令のうち、前記割り
込み発生率に比例した数の命令をサンプリングにより抽
出し、この命令に対してのみ、キャッシュメモリ書き換
えパターンに従って書き換えられたキャッシュのシミュ
レーションを行って平均キャッシュヒット率を求めて出
力するステップと、前記第1のキャッシュヒット率と、
各々の割り込みにおける前記平均キャッシュヒット率と
の加重平均をとって割り込みを考慮したキャッシュヒッ
ト率とする第4の実行トレースを出力するステップと、
実行クロック数カウント部に前記第4の実行トレースを
入力し、各々の命令ごとにキャッシュヒット率と分岐、
命令の組み合わせにより起こるパイプラインストールに
応じて個々の命令ごとの実行クロック数をカウントし、
第5の実行トレースとして出力するステップと、前記第
5の実行トレースを入力し、プログラム全体のキャッシ
ュヒット率及び実行時間を見積もるステップと、割り込
みを考慮した命令実行シミュレータを組み合わせること
により、割り込みを考慮した平均キャッシュヒット率及
び実行時間見積もりを行うステップとを備えたことを特
徴とする。
【0007】また、タスク実行時間の見積もりを、少な
くともキャッシュ方式又はキャッシュサイズのいずれか
が異なる複数のCPUに対してそれぞれ行う場合は、前
記キャッシュシミュレーション部を用いて前記第2の実
行トレースを出力するステップにおいて、各々のCPU
のキャッシュ方式及びキャッシュサイズに対して処理を
行い、CPU毎の前記第2の実行トレースを求め、前記
区間ヒット率シミュレーション部を用いて前記平均キャ
ッシュヒット率を求めて出力するステップにおいて、各
々のCPUのキャッシュ方式、キャッシュサイズ及び割
り込み発生確率に対して処理を行い、CPU毎の前記平
均キャッシュヒット率を求めることにより、CPU毎の
割り込みを考慮した平均キャッシュヒット率及び実行時
間を見積もり、用途に応じた最適なCPUを選択する。
【0008】あるいは、タスク実行時間見積もりを、パ
イプライン段数が異なる複数のCPUに対してそれぞれ
行う場合は、前記第3の実行トレースを出力するステッ
プと、前記第5の実行トレースを出力するステップとに
おいて、各々のCPUのストールペナルティを用いて前
記第3の実行トレースと前記第5の実行トレースとを求
めることにより、CPU毎の割り込みを考慮した平均キ
ャッシュヒット率及び実行時間を見積もり、用途に応じ
た最適なCPUを選択する。
【0009】さらには、タスク実行時間見積もりを、命
令セットが異なるCPUに対してそれぞれ行う方法場合
には、前記第1の実行トレースを出力するステップにお
いて、各々のCPUのプログラムを用いて前記第1の実
行トレースを求めることにより、CPU毎の割り込みを
考慮した平均キャッシュヒット率及び実行時間を見積も
り、用途に応じた最適なCPUを選択する。
【0010】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。
【0011】本発明の第1の実施の形態によるタスク実
行時間の見積もり方法は、図1に示されるような構成を
備えており、割り込みを考慮しない見積もり方法と割り
込みを考慮した見積もり方法とを組み合わせている。そ
こで、第1の実施の形態の説明を行う前に、図2に示さ
れた割り込みを考慮しない見積もり方法と、図25に示
された割り込みを考慮した見積もり方法とをそれぞれ分
けて説明する。いるが、先ず、割り込みを考慮したキャ
ッシュヒット率及びタスク実行時間を求めることができ
る原理について述べる。
【0012】図3に、割り込みを考慮しない場合におけ
るタスク実行中のキャッシュヒット率を示す。ここで、
キャッシュヒット率12001は少数の命令を実行する
ときの平均キャッシュヒット率であり、キャッシュヒッ
ト率12002は十分に多数の命令を実行するときの平
均キャッシュヒット率である。この図3より、キャッシ
ュヒット率は、タスクの開始直後から上昇してある一定
値で安定することが分かる。ここで、キャッシュヒット
率の上昇率は、用いられるアプリケーションプログラム
の内容に依存し、安定したときの値はキャッシュサイズ
とプログラムの内容に依存する。
【0013】図4に、タスクの実行中に割り込みが発生
し、割り込みから復帰した場合におけるキャッシュヒッ
ト率の変化を示す。この図4において、キャッシュヒッ
ト率13001及び13002は、それぞれ図3におけ
るキャッシュヒット率12001及び12002に対応
する。ここで、タスクの実行途中で割り込みが起こる
と、割り込みルーティンによりキャッシュメモリの書き
換えが起こる。このため、割り込みルーティンからの復
帰直後では、タスクの実行開始時と同様にキャッシュヒ
ット率が低下する。しかし、復帰後から十分な数の命令
が実行されると、キャッシュヒット率13003及び1
3004は安定する。
【0014】割り込みルーティンから復帰した直後はキ
ャッシュヒット率が低下するため、命令の実行時間が増
加し、タスクの総実行時間も増加する。この実行時間の
増加は、タスクの性質やキャッシュサイズだけでなく、
割り込みの発生率や割り込みルーティンによるキャッシ
ュメモリの書き換え状況によっても異なる。このため、
ただ単にタスクの実行時間を見積もるだけでは予測する
ことができない。
【0015】このことを、図5〜図7を用いてさらに説
明する。割り込みルーチンが長く、殆どのキャッシュデ
ータが書き替えられた場合のキャッシュヒット率は、図
5に示された通りである。割り込みルーチン処理から復
帰した直後のキャッシュヒット率14004及び140
05は、ほぼ0まで低下する。
【0016】割り込みルーチンが短く、多くのキャッシ
ュデータが破壊されずに残存し、一部のデータが新しく
置き変わった場合のキャッシュヒット率は、図6に示さ
れた通りである。割り込みルーチン処理から復帰した直
後のキャッシュヒット率15004及び15005は、
図5の場合と異なり低下はするが0とはならない。ま
た、割り込み発生率によって実効キャッシュヒット率は
異なり、発生率が高ければ実効ヒット率16003は大
きく低下し、発生率が低ければ実効ヒット率16002
はあまり低下しない。
【0017】このことから、タスクの実行時間は、割り
込み発生率と割り込みルーティンのキャッシュ書き換え
の程度によって変化することが分かる。
【0018】以上の点を考慮し、割り込みによるキャッ
シュヒット率の低下を見積もる手順を、図8を用いて説
明する。図8に、ある命令の実行時点Sにおけるキャッ
シュヒット率17001と、割り込みを考慮しない場合
のタスク全体のキャッシュの平均キャッシュヒット率A
17002とを示す。実行時点Sにおいて割り込みが
発生し、割り込みルーティンが実行された後、もとのタ
スクに復帰するとキャッシュヒット率17003が上昇
し、平均ヒット率A 17002まで戻ると仮定する。
このように考えると、実行時点Sにおけるキャッシュヒ
ット率17001からある一定命令数の平均キャッシュ
ヒット率Bi 17004を求めることができる。
【0019】この平均キャッシュヒット率Bi 170
04を、全ての割り込みに対して求め、割り込みが発生
しない場合の平均キャッシュヒット率A 17002と
の間で加重平均をとることで、実行時点Sにおける割り
込みを考慮した平均キャッシュヒット率Hを求めること
ができる。
【0020】この平均キャッシュヒット率Hをすべての
命令に対して求め、それに基づいて実行クロック数を求
めることにより、割り込みを考慮した実行時間を求める
ことが可能となる。
【0021】以下に、割り込みを考慮しないタスク実行
時間の見積もり方法の処理の手順と、割り込みを考慮し
た実行時間の見積もりの処理方法の手順とを比較しなが
ら説明する。
【0022】図2に、割り込みを考慮しない場合のタス
ク実行時間の見積もり方法のフローチャートを示す。
【0023】プログラム、データ初期値、実行開始番地
及び終了番地1001を命令レベルシミュレーション1
002に入力し、プログラムの実行トレース情報A 1
003を出力する。
【0024】命令レベルシミュレーション1002から
出力された実行トレース情報A 1003と、キャッシ
ュ方式及びキャッシュサイズに関するデータ1004と
をキャッシュシミュレーション1005に入力し、実行
トレース情報B1 1006を出力する。
【0025】このトレース情報B1 1006と、スト
ールペナルティ情報1007とを入力として、各命令毎
の実行クロック数を求める処理1008を行い、実行ト
レース情報C1 1009を出力する。
【0026】この実行トレース情報C1 1009を入
力とし、タスク全体のキャッシュヒット率及び実行時間
を見積もる処理1010を行い、その見積もり結果10
11を出力する。
【0027】次に、割り込みを考慮した場合のタスク実
行時間の見積もり方法のフローチャートを図25に示
す。
【0028】実行時間を見積もるプログラム、データ初
期値、実行開始番地及び終了番地に関するデータ200
1を入力として、命令レベルシミュレーション処理20
02を行い、プログラムの実行トレース情報A 200
3を出力する。
【0029】実行トレース情報A 2003、キャッシ
ュ方式及びキャッシュサイズに関するデータ2004、
割り込み確率データ2005を入力として、区間ヒット
率シミュレーション処理2006を行い、各命令でのキ
ャッシュヒット率を含む実行トレース情報B2 200
7を出力する。
【0030】出力された実行トレース情報B2 200
7と、ストールペナルティ情報 2008とを入力し
て、各命令毎の実行クロック数を求めて実行トレース情
報C22010を出力する。この実行トレース情報C2
2010を用いてキャッシュヒット率と実行時間とを
見積もる処理2011を行い、見積もり結果2012を
出力する。
【0031】図2に示された割り込みを考慮しない見積
もり処理と、図25に示された割り込みを考慮した見積
もり処理とを対比すると、図2に示された命令レベルシ
ュミレーション処理1002と図25に示された命令レ
ベルシミュレーション処理2002とは処理内容が同一
で、入力及び出力データとも同一である。しかし、処理
1002、2002からそれぞれ出力されたトレース情
報A 1003、2003を用いた以降の処理は相違し
ている。
【0032】先ず、命令レベルシミュレーション処理1
002、2002の詳細な処理の内容は、図9〜図13
のフローチャートに示されるようである。ここで、命令
レベルシミュレーション処理の説明を行う前に、この処
理によって出力される実行トレース情報の一例を図14
〜図16に示す。図14に示されるように、出力される
実行トレース情報には命令の先頭番地3001、実行し
た命令3002、分岐やデータアクセスのための実効番
地3003、分岐が行われたことを示す分岐フラグ30
04が含まれる。対象とするCPUによっては実効番地
3003が複数存在する場合があり、そのような場合に
は全ての番地を含めるものとする。
【0033】対象とするCPUが、分岐以外にもパイプ
ラインストールを起こす場合には、図14に示された情
報3001〜3004から成る図14の情報4001の
他に、ストールを起こしたことを示すストールフラグ4
002を追加する必要がある。
【0034】さらに、対象とするCPUにおいて、命令
やデータの語長が可変である場合には、図14に示され
た情報3001〜3004と、これに図15に示される
情報4002とを加えた図15の情報5001の他に、
命令アクセス回数5002、データアクセス回数500
3に関する情報を追加する必要がある。
【0035】このような出力を行う命令レベルシミュレ
ーション処理の内容について図9を参照して述べる。図
2又は図25に示された入力データ1001又は200
1に従ってメモリを初期化し、プログラムの各命令に対
して処理21001〜21008を行う。尚、ここでは
CPUはパイプライン処理により命令を実行し、分岐以
外ではストールは発生しないと仮定する。
【0036】先ず、処理21001として分岐フラグを
リセットし、処理21002として1つの命令を読み込
む。次に、命令の種別、即ち分岐命令、ロード命令、セ
ーブ命令、レジスタ間演算命令か否かを処理21003
〜21006においてそれぞれ判断し、分岐命令であれ
ば処理21009としてこの命令を実行し、ロード命令
であれば処理21010としてこの命令を実行し、セー
ブ命令の場合にはこの命令を処理21011として実行
し、レジスタ間演算命令であればこの命令を処理210
12として実行する。上記命令のいずれにも該当しない
命令に対しては、処理21013としてその命令を実行
する。そして、各々の命令を実行した結果に基づいて、
処理21007としてトレース情報を出力する。以上の
処理21001〜21007を、処理21008として
示されたように、各命令の実行により更新されたプログ
ラムカウンタPCが終了番地と等しくなるまで繰り返
す。次に、命令毎の処理21009〜21013につい
て、図10〜13を用いて詳述する。分岐命令の処理2
1009は、図10に示されたように、先ず分岐が起こ
るかどうかを処理22001としてを判断する。分岐が
起こらない場合は、処理22003としてプログラムカ
ウンタPCに現在の命令の番地の次の番地を設定する。
分岐が起こる場合は、処理22002として分岐先の実
効番地を計算する。処理22004としてプログラムカ
ウンタPCに実行番地を書き込み、処理22005とし
て分岐フラグをセットする。
【0037】ロード命令の実行処理21010は、メモ
リからのロード命令を実行する処理であり、処理の内容
は図11に示されるようである。処理23001として
メモリの実効番地を計算し、この命令が示すレジスタか
ら、計算した実効番地の値を処理23002として読み
込み、処理23003としてプログラムカウンタを次の
命令の番地にセットする。
【0038】セーブ命令の実行処理21011は、メモ
リへのセーブ命令を実行するための処理であってその処
理の内容は図12に示されるようである。先ず、メモリ
の実効番地を処理24001として計算し、処理240
02として命令が示すレジスタにその番地の値を書き込
む。そして、処理24003としてプログラムカウンタ
PCを次の命令の番地にセットする。
【0039】レジスタ間演算命令の実行処理21012
の処理内容は、図13に示されるようである。処理25
001としてソースレジスタ1の値を読み、処理250
02としてソースレジスタ2の値を読む。読み込んだ二
つの値の間で、命令が示す演算を処理25003として
実行し、その結果を処理25004としてディストネー
ションレジスタに書き込む。処理25005として、プ
ログラムカウンタPCを次の命令の番地にセットする。
【0040】他の命令の実行処理21003に対して
も、上記処理21009〜21011と同様に、実際の
CPUが実行するように処理を行うことで、CPUが実
行すべき全ての命令に対してシミュレーションを行うこ
とができる。
【0041】図2におけるキャッシュシミュレーション
処理1005と、図25に示された区間ヒット率シミュ
レーション処理2006とは、同一の実行トレース情報
A1003又は2003に対する処理である。しかし、
キャッシュシミュレーション処理1005では、割り込
みの影響を考えないキャッシュのシミュレーションを行
い、区間ヒット率シミュレーション処理2006では割
り込みの影響を考えたキャッシュのシミュレーションを
行う点が異なる。
【0042】割り込みの影響を考えないキャッシュシミ
ュレーション処理1005は、図20に示されるような
ダイレクトマップ、ライトバック方式のキャッシュメモ
リに対して行うシミュレーション処理である。キャッシ
ュメモリの方式としてはこの他に、セットアソシアティ
ブ、フルアソシアティブ等が知られているが、これらの
方式であってもその方式に従ったシュミレーションを行
うことができる。
【0043】先ず、命令とデータに対してそれぞれ別の
キャッシュメモリを使用すると仮定する。図20に示さ
れたキャッシュメモリは、アドレスが32ビット、デー
タが32ビット、キャッシュメモリが16Kエントリと
いう構成を備えている。このキャッシュメモリは、1ビ
ットの有効データ30008と、16ビットのタグデー
タ30009と、32ビットのデータ30010とを備
え、16Kワードのメモリ30005と16ビットの比
較器30006とANDゲート30007とにより構成
される。
【0044】データ30010における32ビットのア
ドレスは、上位からデータ30001分の16ビット、
データ30002分の14ビット、データ30004分
の2ビットに分割されている。このうち、データ300
02をインデックスとしてメモリをアクセスして得られ
るタグデータ30009の値がデータ30001の16
ビットと等しく、かつ有効データ30008の値が
「1」であるときにデータ30010が指定されたアク
セスのデータとなる。
【0045】このような構成を有するメモリを対象とし
てキャッシュシミュレーションを行うために、図21で
示されるような有効データ31003とタグM3100
2から構成されるデータ構造31001を使用する。こ
の場合のキャッシュシミュレーションの処理の手順につ
いて、全体の流れを示した図22と、リードアクセスの
流れを示した図23と、ライトアクセスの流れを示した
図24とを用いて説明する。
【0046】分岐命令、ロード命令、セーブ命令の各命
令毎に、実効番地がキャッシュメモリに保持されている
か否かを判断して、その結果をトレース情報として出力
する。先ず、処理26001として実行トレースから1
つの命令に関する情報を読み込む。処理26002とし
て命令があるか否かを判断し、ない場合にはこの時点で
終了する。命令が存在する場合には、処理26003と
して分岐命令キャッシュのリードアクセスを行う。処理
26009としてヒットしたか否かを判断し、ヒットし
た場合には処理26010として命令キャッシュヒット
フラグをセット(On)し、ヒットしなかった場合には処
理26011としてリセット(Off )する。
【0047】処理26004として命令がロード命令か
否かを判断し、処理26012においてデータキャッシ
ュのリードアクセスを行う。処理26013としてヒッ
トしたか否かを判断し、ヒットした場合には処理260
14としてデータキャッシュヒットフラグをセットし、
ヒットしなかった場合には処理26015としてリセッ
トする。
【0048】処理26005として命令がストア命令か
否かを判断し、処理26016においてデータキャッシ
ュのライトアクセスを行う。処理26017としてヒッ
トしたか否かを判断し、ヒットした場合には処理260
18としてデータキャッシュヒットフラグをセットし、
ヒットしなかった場合には処理26019としてリセッ
トする。
【0049】以上の処理26001〜26019を全て
命令に対して行っていき、処理26007として処理の
結果をトレース情報として出力する。
【0050】ここで、キャッシュメモリのリードアクセ
ス処理26003について、図23を用いて詳述する。
処理28001として、実効アドレスをタグ、インデッ
クス、バイトオフセットに分割し、インデックスで指定
される有効値が「1」か否かを処理28002で判断す
る。この値が「1」ではない場合に、さらに処理280
03においてインデックスで指定されるタグMの値がタ
グに等しいか否かを判断する。この値が等しい場合に、
キャッシュがヒットしたことになる。インデックスで指
定される有効値が「1」ではない場合、及び/又はイン
デックスで指定されるタグMの値がタグに等しくない場
合はヒットせずキャッシュミスであった場合に相当し、
処理28004として有効値とタグMの値とを更新す
る。実際のシステムにおいては、ヒットしなかった場合
には外部のメモリからのデータの読み込みが必要となる
が、ここではこの動作をシミュレーションする必要はな
い。キャッシュメモリのライトアクセス処理26016
について、図24を用いて詳述する。先ず、実効番地を
タグ、インデックス、バイトオフセットに分割し(29
001)、インデックスで指定される有効値が1であり
(29002)、インデックスで指定されるタグMの値
がタグに等しいとき(29003)、キャッシュがヒッ
トしたことになる。そうでないときはキャッシュミスで
あるため、有効とタグMの値を更新する(2900
4)。現実のシステムではキャッシュミスとしときは外
部のメモリからのデータの書き込み(ライトバック)が
必要となるが、この部分のシュミレーションは必要な
い。
【0051】図22〜図24に示される処理を命令列に
対して行うことで、実行トレースで示される番地の命令
についてキャッシュシュミレーションを行うことができ
る。また、上記メモリと異なる方式のキャッシュメモリ
に対しても同様の方法でシュミレーションを行うことが
できる。
【0052】この処理の結果は、図2に示された実行ト
レース情報B1 1006として出力され、その内容は
図17に示されるように、実行トレース情報A 600
1に命令キャッシュヒット回数6002とデータキャッ
シュヒット回数6003とが付加されたものになってい
る。
【0053】次に、割り込みを考慮した場合の図25に
示された区間ヒット率シミュレーション処理2006に
ついて説明する。ここで、実行時間の見積もりを行うタ
スクについては、図2に示された割り込みを考慮しない
場合におけるキャッシュヒット率が、それぞれ命令及び
データに対して求められているものとする。また、以下
に説明する見積もり方法は、命令、データキャッシュに
ついても同様に適用することができる。
【0054】図26及び図27に、区間ヒット率シミュ
レーション処理1006の手順を示す。この処理は、実
行トレースに現れる全ての命令を実行する時に、予め定
められた確率で割り込みが起こると仮定して、平均キャ
ッシュヒット率を求めるものである。区間ヒット率シミ
ュレーション処理1006を、実行トレースのすべての
命令に対して行う場合は、図26に示されたような手順
で行う。ある特定の命令を抽出し、その命令に対しての
み区間ヒット率シミュレーションを行う場合は、後述す
る第2の実施の形態のように図40に示された手順に従
う。
【0055】即ち、処理34001として、実行トレー
ス中の全ての命令について処理したか否かを判断し、処
理34002として存在するすべての割り込みについて
区間ヒット率を求めたか否かを判断する。処理3400
2において区間ヒット率を求めていない割り込みがまだ
存在すると判断した場合は、処理34003として区間
ヒット率を求める。全ての割り込みに対して区間ヒット
率を求め終わった場合は、処理34004として、割り
込みを考慮しない場合の平均ヒット率と割り込みを考慮
した場合の区間ヒット確率とで加重平均をとり、当該命
令のキャッシュヒット率とする。
【0056】ここで、処理34003として区間ヒット
率を求める手順は、図27に示されたようである。処理
36001として、キャッシュを完全にクリアしたか否
かを判断し、完全にクリアしていない場合は処理360
02としてアクセスパターンが存在するか否かを判断
し、アクセスパターンが存在する場合は次の処理360
04へ移行する。
【0057】処理36004として、アクセスパターン
にあるインデックスの有効フラグをオフにする。処理3
6007として、アクセスパターンにないインデックス
の有効「0」フラグをオフにして処理36005へ移行
する。ここで、上記処理36002においてアクセスパ
ターンが存在しない場合は、処理36005へ直ちに移
行する。
【0058】処理36005として、乱数に従ってキャ
ッシュの有効フラグと有効「0」フラグとをオフにす
る。また、上記処理36001において、キャッシュが
完全にクリアされている場合には、処理36003とし
てキャッシュの全ての有効フラグをオフにし、処理36
006としてキャッシュの全ての有効「0」フラグをオ
フにした後、処理36008へ移行する。
【0059】処理36008として、定められた命令数
についてキャッシュシミュレーションを行う。処理36
009として、平均ヒット率を求める。
【0060】この区間ヒット率を求める処理は、割り込
み要因別に例えば図28に示されたように分類して行う
ことができる。割り込みの種別39001としてA〜E
があるとすると、それぞれの発生確率39002は2.
0×10-5、1.5×10-6、2.0×10-7、2.0
×10-6、1.0×10-7であり、キャッシュの書き換
わるパターン39003はそれぞれ30%、パターン
A、パターンB、100%クリア、80%クリアとす
る。書き換わりパターンAは図29、書き換わりパター
ンBは図30にそれぞれ示されるようであるとする。
【0061】一般に、キャッシュの書き換わるパターン
は、割り込み処理を行うルーティンの性質によって異な
る。例えば、割り込み処理が長い場合には命令キャッシ
ュ、データキャッシュともに殆どの部分が書き換わって
しまうと考えられる。このような場合には、図28にお
いて割り込み種別Dとして示されたように、100%ク
リアされると考えてよい。このクリアされる確率は、ル
ーティンの長さ等によって変化し、これらは予め割り込
みルーティンを解析することで求められているものとす
る。また、このようなクリアされる確率を求めるための
解析は、上述した命令レベルシミュレーションとキャッ
シュシミュレーションとを用いて行うことができる。
【0062】処理ルーティンの内容によっては、図29
に示された上記書き換わりパターンA、あるいは図30
に示された書き換わりパターンBのように、キャッシュ
の特定の部分のみが書き換わる場合も考えられる。この
ような場合は、図29、図30にそれぞれ示されたよう
に、書き換わるインデックスXの値を列挙することで書
き換えのパターンを指定することが可能である。
【0063】また、図28に示された上記割り込み種別
Aと割り込み種別Bとを組み合わせる方法によって、キ
ャッシュの書き換わりパターンを表すこともできる。こ
れは、例えば特定番地のデータとスタック上の作業領域
とを使用する処理等において見られる書き換わりパター
ンであって、図28の割り込み種別Cのように示すこと
ができる。
【0064】そして、割り込み種別A〜Dとして示され
たようなキャッシュの書き換わりパターンで書き換わり
の起こるキャッシュのシミュレーションは、図21に示
されたようなキャッシュのデータ構造、及び図23、図
24に示されたようなキャッシュのアクセス方法では行
うことができない。そこで、図31に示されるようなキ
ャッシュのデータ構造、及び図32、図33に示された
ようなキャッシュのアクセス方法でキャッシュシミュレ
ーションを行う必要がある。
【0065】図31に示されたデータ構造は、書き換わ
りを考慮したものである。このデータ構造は、図21に
示されたデータ構造と同様に、有効54001とタグM
54003とを含んでいる他に、さらに、有効「0」5
4002を含んでいる。この有効「0」54002は、
割り込みルーティンにより書き換えが生じていないエン
トリについて「0」にセットされるフラグである。この
フラグは、そのエントリがアクセスされた場合には、有
効54001とタグM54003との書き換えは起こる
が、キャッシュはヒットしたものとして扱うために設け
られている。この有効「0」54002が付加されたこ
とで、書き換わったエントリ以外のエントリにタグが設
定されていなくとも、キャッシュがヒットしたものとし
て扱うことが可能である。
【0066】このようなデータ構造を有するキャッシュ
をアクセスする手順を、図32、図33に示す。リード
アクセスについての処理は図32、ライトアクセスの処
理は図33に示されるとおりである。この図32に示さ
れた処理55001〜55006と、図23を用いて説
明した割り込みを考慮しない場合のリードアクセスの処
理28001〜28004とを比較すると、処理550
01、55003〜55005と処理28001〜28
004とが同一の内容であることがわかる。そして、図
32に示された処理55002及び55006は、有効
「0」フラグに関して新たに付加された処理であって、
有効「0」フラグが「0」のときにエントリが書き換わ
る場合にヒットとして扱うように構成されている。ま
た、有効「0」フラグは1回アクセスがあるとその後は
「1」となる。よって、2回目以上のアクセスでは図2
3に示された割り込みを考慮しない場合のリードアクセ
スと同様の処理を行う。
【0067】リードアクセスの場合と同様に、ライトア
クセスの処理56001〜56006のうち処理560
01、56003〜56005は、図24に示された割
り込みを考慮しない場合のライトアクセスの処理290
01〜29004と同様である。そして、有効「0」フ
ラグに関する処理56002及び56006が新たに付
加されている。
【0068】そして、区間ヒット率は図27で示される
ような手順で求められる。処理36003〜36005
により、キャッシュの書き換わりパターンに従って書き
換わるエントリに関して有効フラグを「0」に設定し、
処理36005〜36007によって、書き換わらない
エントリについては有効「0」フラグを「0」にする。
このような処理により、実質的にヒット率は低下する。
【0069】次に、処理36008として、予め実験等
を行って定めておいた命令数についてキャッシュシミュ
レーションを行う。この方法は、図22、図32及び図
33に示される手順でキャッシュシュミレーションを行
い、処理36009として当該命令群について平均キャ
ッシュヒット率を求めて区間ヒット率とする。
【0070】以上のように、区間ヒット率シュミレーシ
ョンにおけるキャッシュシュミレーションは、図22、
図32、図33に示されたように行う点を除いて、割り
込みを考慮しない場合と同様な手順でキャッシュアクセ
ス処理を行うことができる。得られた区間ヒット率シミ
ュレーションは、図25に示されたように、実行トレー
ス情報B2 2007として出力される。この情報B2
2007の内容は、割り込みを考慮しない場合と同様
に、図17に示されたような実行トレースA6001
に、命令キャッシュヒット回数6002とデータキャッ
シュヒット回数6003とが追加されたものになってい
る。割り込みを考慮しない場合との相違は、命令キャッ
シュヒット回数6002とデータキャッシュヒット回数
6003との値が整数ではなく、キャッシュヒット率に
よって定まる実数となる点である。
【0071】次に、実行クロック数を求める処理につい
て述べる。この処理は、図2に示された割り込みを考慮
しない場合の処理1008と、図25に示された考慮し
ない場合の処理2009とでは、キャッシュヒットの扱
いが異なる。割り込みを考慮しない場合の処理は図37
に示すようであり、割り込みを考慮する場合の処理は図
34に示すようである。
【0072】割り込みを考慮しない場合は、図35
(a)に示されたような仕様を有するCPU Aを対象
とする。このCPU Aは、図36(a)に示されたよ
うに、分岐によるパイプラインストールのペナルティN
BRは5クロック、命令キャッシュミスによるペナルテ
ィNIFは3クロック、データキャッシュミスによるペ
ナルティNDATAは3クロック、命令の組み合わせに
よるストールNISTLは起こらないものとする。そし
て、これらのペナルティは図2に示されたストールペナ
ルティ1007に相当する。
【0073】このような仕様のCPU Aに対して、図
37に示されたような処理32001〜32009を行
っていく。先ず、処理32001として実行に必要な最
低クロック数NCを1とし、処理32002〜3200
5としてそれぞれ分岐によるストール、命令の組み合わ
せによるストール、命令キャッシュミスによるストー
ル、データキャッシュミスによるストールが発生したか
否かを、実行トレース情報に含まれる情報を用いて判断
する。そして、それぞれの場合においてストールが発生
したときは処理32006〜32009としてNCの値
をストールペナルティとして与えられる値だけ加算す
る。
【0074】このような処理32001〜32009に
よって得られた値を実行トレースB1 1006に追加
したものが実行トレースC1 1009である。この情
報は、図18に示されたようにトレース情報B1の命令
毎の内容7001に、命令毎の実行クロック数7002
が付加されたものとなっている。
【0075】次に、割り込みを考慮した場合の実行クロ
ック数を求める処理を図34を用いて説明する。処理3
7001として、実行に必要な最低のクロック数NCの
設定を行い、処理37002及び37007として分岐
によるストールに関する処理を行い、処理37003及
び37008として命令の組み合わせによるストールに
関する処理を行う。この処理は、割り込みを考慮しない
場合の図37に示された処理32001、32002及
び32006、32003及び32007とそれぞれ同
一である。
【0076】ところが、割り込みを考慮した場合には、
キャッシュメモリのヒット率が実数で表される。このた
め、命令キャッシュミスとデータキャッシュミスに関し
ては、それぞれ処理37004及び37005において
キャッシュヒット率に基づいてペナルティとなるクロッ
ク数を計算する。この演算は、命令キャッシュミスによ
るペナルティNIFと、データキャッシュミスによるペ
ナルティNDATAにキャッシュミスの確率をかけたも
のをクロック数NCに加算すればよい。
【0077】さらに、割り込みの発生の際には確実にパ
イプラインストールが発生する。このため、処理370
05として、割り込み発生率にストールペナルティを掛
けたものを加算する必要がある。ここで、割り込みの際
のストールペナルティの値は分岐によるペナルティと同
じ値であると仮定しているが、CPUの仕様によっては
異なる値となる場合がある。そのような場合にはストー
ルペナルティ2008に、この値をあらかじめ定義して
おけばよい。
【0078】このような処理によって得られたストール
ペナルティ2008を実行トレースB2 2007に加
えることにより、図25に示されたように実行トレース
情報C2 2010が得られる。この情報C2 201
0は、割り込みを考慮しない場合と同様に、図18に示
されたように、トレース情報B2の命令毎の内容700
1に、命令毎の実行クロック数7002が付加されてい
る。割り込みを考慮しない場合における情報との相違
は、実行クロック数が実数となる点である。
【0079】キャッシュヒット率と実行時間の見積もり
を行う処理は、割り込みを考慮する場合の処理2011
と、考慮しない場合の処理1010とで異なる。割り込
みを考慮する場合の処理2011の内容を図39、考慮
しない場合の処理1010を図38にそれぞれ示す。こ
の処理2011と101010との相違は、個々の命令
におけるキャッシュヒットを回数でとらえるか、あるい
は確率でとらえるかという点にある。
【0080】割り込みを考慮しない場合の処理1010
は、図38の処理33001として示されたように、実
行トレースから1命令の情報を読み込む毎に以降の処理
を進めていく。処理33003として命令数を1増や
し、処理33004として実行トレースに従って命令ア
クセス回数を加算し、処理33005としてデータアク
セス回数を加算し、処理33006として実行クロック
数を加算する。
【0081】次に、処理33007として命令キャッシ
ュがヒットしたか否かを判断し、ヒットした場合には処
理33009として命令キャッシュヒット回数を更新す
る。処理33008として、データキャッシュがヒット
したかどうかを判断し、ヒットした場合は処理3301
0としてデータキャッシュヒット回数を更新する。全て
の命令について処理33001〜33010を行い、処
理33011として、命令キャッシュヒット回数が命令
アクセス回数に占める比率として命令キャッシュヒット
率を求める。処理33012として、データキャッシュ
ヒット回数がデータアクティブ回数に占める比率として
データキャッシュヒット率を求めて終了うる。これらの
値を、見積もり結果1011として出力する。
【0082】以下に、割り込みを考慮した場合の処理を
図39を用いて説明する。この処理は、実行クロック
数、命令、データキャッシュのヒット回数が実数である
点を除いて、図38を用いて説明した割り込みを考慮し
ない場合の処理と同様である。即ち、図39に示された
処理38001〜38005と、図38に示された処理
33001〜33005とは同一であり、命令数、命令
アクセス回数、データアクセス回数が同様に求められ
る。
【0083】しかし、図38における処理33006と
異なり、図39における処理38006において扱う実
行クロック数は実数であるため、この演算結果は実数で
表現される。また、図38における処理33009と異
なり、図39に示された処理38007における命令キ
ャッシュヒット率の演算は、命令アクセス回数にその命
令におけるキャッシュヒット率を考慮し、命令アクセス
回数にキャッシュヒット率を乗じたものを加算する。さ
らに、図38における処理33010と異なり、図39
における処理38008は、データアクセス回数にその
命令におけるキャッシュヒット率を考慮して、データア
クセス回数にキャッシュヒット率を乗じたものを加算す
る。
【0084】そして、図38に示された処理3301
1、33012と同様に、図39に示された処理380
09では命令キャッシュヒット回数が命令アクセス回数
に占める比率として命令キャッシュヒット率を求め、処
理38010ではデータキャッシュヒット回数がデータ
アクセス回数に占める比率としてデータキャッシュヒッ
ト率を求める。このようにして得られた値を、見積もり
結果2012として出力する。
【0085】以上説明した図2に示された割り込みを考
慮しない場合の見積もり方法と、図25に示された割り
込みを考慮した場合の見積もり方法とを組み合わせた本
発明の第1の実施の形態について、図1を用いて説明す
る。
【0086】プログラム、データ初期値、実行開始番地
及び終了番地1001を命令レベルシミュレーション1
002に入力し、プログラムの実行トレース情報A 1
003を出力する。
【0087】命令レベルシミュレーション1002から
出力された実行トレース情報A 1003と、キャッシ
ュ方式及びキャッシュサイズに関するデータ1004と
をキャッシュシミュレーション1005に入力し、実行
トレース情報B1 1006を出力する。
【0088】このトレース情報B1 1006と、スト
ールペナルティ情報1007とを入力として、各命令毎
の実行クロック数を求める処理1008を行い、実行ト
レース情報C1 1009を出力する。
【0089】この実行トレース情報C1 1009を入
力とし、タスク全体のキャッシュヒット率及び実行時間
を見積もる処理1010を行い、その見積もり結果10
11を出力する。
【0090】さらに、得られた見積もり結果1011
と、実行トレース情報A 1003、キャッシュ方式及
びキャッシュサイズに関するデータ2004、割り込み
確率データ2005を入力として、区間ヒット率シミュ
レーション処理2006aを行い、各命令でのキャッシ
ュヒット率を含む実行トレース情報D 2007aを出
力する。
【0091】出力された実行トレース情報D 2007
aと、ストールペナルティ情報 2008とを入力し
て、各命令毎の実行クロック数を求めて実行トレース情
報E2010aを出力する。この実行トレース情報E
2010aを用いてキャッシュヒット率と実行時間とを
見積もる処理2011aを行い、見積もり結果2012
aを出力する。
【0092】このような第1の実施の形態によれば、タ
スクの割り込みを考慮しないキャッシュヒット率と実行
時間から、割り込みのプロファイルを基にして、割り込
みを考慮したキャッシュヒット率と実行時間が求められ
る。
【0093】上記第1の実施の形態では、実行される全
ての命令について割り込みを考慮したキャッシュヒット
率を求める処理を行っている。しかし、各々の命令毎
に、ヒット率が安定するに十分な数の命令に対してキャ
ッシュシミュレーション処理を割り込みの種類で決まる
回数だけ繰り返すことになるので、非常に長い処理時間
が必要となる。以下では、この処理時間の短縮が可能な
第2の実施の形態について説明する。
【0094】上記第1の実施の形態では、割り込みが全
ての命令において指定された確率で起こると仮定してい
る。しかし、割り込みが発生する確率は通常の場合極め
て低い。例えば、クロック周波数50MHzのCPUに
対して2m秒毎に割り込みを行う場合を考えると、割り
込みの発生確率は、 (1/50*106 )/2*10-3=1*10-5 … (1) となる。そこで、第2の実施の形態では個々の命令で全
ての種類の割り込みについての平均ヒット率を求めるの
でなく、全実行区間から割り込み発生率に比例する数の
命令をサンプリングし、その命令についての平均ヒット
率を求める点に特徴がある。
【0095】図54(a)及び(b)に、割り込みを考
慮した場合の処理の原理を示す。図54 (a)におい
て、ヒット率18001は割り込みを考慮しない場合の
平均キャッシュヒット率、区間18002、18004
はそれぞれヒット率が安定するまでのシュミレーション
区間を示し、ヒット率18003、18005はこの区
間18002、18004内のヒット率の推移を示す。
また、図54(b)は区間シュミレーションが行われた
結果、区間19002、19004の平均キャッシュヒ
ット率19003、19005が求まっている状態を示
す。
【0096】この区間ヒット率19003、19005
がある区間続くものとして処理全体のヒット率、実行時
間を見積もることにより、上記第1の実施の形態よりも
高速に値を求めることができる。
【0097】以下に、この原理に基づいて割り込みを考
慮した平均キャッシュヒット率、実行時間を見積もる本
発明の第2の実施の形態による見積もり方法について説
明する。この方法は、区間シミュレーションの処理と実
行クロック数を求める処理とを除いて、第1の実施の形
態と同様である。
【0098】まず、区間シミュレーションを行う命令の
サンプリングを行う。ここでは、全ての割り込みについ
て予め発生確率が求められていて、割り込みを考慮しな
い見積もりが既に行われているものと仮定する。
【0099】サンプリングポイントの数は、割り込みの
発生率に比例した数が必要である。従って、ある割り込
みの発生率をPi、全実行命令数をN、サンプリング点
の数をSiとすると、サンプリング点の数Siは、N*
Piとなる。
【0100】サンプリング点は、全実行時間に均等に分
布していればよい。そこで、等間隔に抽出するか、ある
いは乱数を用いて抽出する。全実行クロック数をNCと
すると、等間隔にサンプリング点を取る場合には、その
間隔KiはKi=NC/Siとなる。乱数によりサンプ
リング点を決定する場合は、例えば0から1の間で一様
な乱数を発生する関数RANDを用いて、SP=NC*
RANDという計算を、サンプリングすべき命令の数だ
け繰り返す。ここで、SPは実行開始からのクロック数
とする。
【0101】サンプリング点が決定した後は、上記第1
の実施の形態と同様に区間ヒット率を求める処理を、図
40に示されるような手順で行う。処理35002とし
て、割り込みの確率に応じてサンプリング回数を決定
し、処理35003として全シミュレーション区間から
サンプリング点を決定する。そして、処理35004及
び35005として、全てのサンプリング点について区
間ヒット率を求める。この区間ヒット率を求める処理
は、図27に示す方法で求める。以上の処理35002
〜35005を、処理35001として示されたよう
に、全ての種別の割り込みに対して行うことで、区間ヒ
ット率が求まる。
【0102】求めた区間ヒット率は、第1の実施の形態
と同様にトレース情報D 2007aとして出力され
る。但し、第1の実施の形態と異なり、図17に示され
た情報6001〜6003を図19における情報800
1とすると、図19のようにサンプリング点を示すフラ
グ情報8002と、区間の長さを示す情報8003とが
さらに追加されている。また、区間ヒット率はサンプリ
ング点における命令に対してのみ出力されたものであ
る。
【0103】実行クロック数を求める処理は、図41に
示されるようである。処理57001として、処理に必
要な最低クロック数NCを設定し、処理57002、5
7007として分岐によるストールに関する処理を行
い、処理57003、57008として命令の組み合わ
せによるストールに関する処理を行い、さらに処理57
006として割り込みの発生に伴うストールに関する処
理を行う。これらの処理は、図34に示された処理37
001、37002、37007、37003、370
08と全く同一である。
【0104】但し、図34に示された処理と異なり、処
理を行う対象の命令は処理57010として示されたよ
うにサンプリング点である。処理57011として命令
キャッシュヒット率をセーブし、処理57012として
データキャッシュヒット率をセーブする。さらに、処理
57009として示されたサンプリング区間の命令に対
しては、処理57013としてセーブされた命令キャッ
シュ率を用いて実行クロック数NCを求め、処理570
14としてセーブされたデータキャッシュ率を用いて実
行クロック数NCを求める。この処理によって得られた
値を実行トレース情報B2 2007に追加したもの
が、実行トレース情報C2 2010である。
【0105】ここで、サンプリング区間が重なる場合に
は、予めキャッシュヒット率を補正しておく必要があ
る。例えば、図42(a)に示された3つの区間200
01〜20003は部分的に重複している。そこで、各
区間の平均キャッシュヒット率20004〜20006
に対し、重なり合った区間ではこれらの値の平均を取る
ことで対処する。この結果、図42(b)に示されたよ
うに、5つの区間20007〜20011に分割され、
重なった区間2008〜20010における平均キャッ
シュヒット率は重なった区間のヒット率の平均値とな
る。実行クロック数を求めた後の処理は、上記第1の実
施の形態における場合と同様である。
【0106】上述した第1の実施の形態、又は第2の実
施の形態により見積もられるタスクの実行時間及びキャ
ッシュヒット率は、特定のCPUに対してのものであ
る。しかし、例えば図35(a)〜(c)にそれぞれ示
されたようなキャッシュサイズ/キャッシュ方式が異な
る複数のCPUの間でタスクの実行時間及びキャッシュ
ヒット率を求めて相互比較を行ってもよい。
【0107】以下に、このような比較処理を行うものと
して、本発明の第3の実施の形態について説明する。本
実施の形態により比較処理を行うための手順を、図43
及び図44に示す。図43は割り込みを考慮しない見積
もりを行ってCPUの比較を行う場合、図44は割り込
みを考慮した見積もりを行ってCPUの比較を行う場合
を示す。図43において、共通の実行トレース情報A
9001と第1のCPUに関するキャッシュサイズ/キ
ャッシュ方式の情報9002とを用いてキャッシュシミ
ュレーション処理9004を行う。同様に、共通の実行
トレース情報A9001と第2のCPUに関するキャッ
シュサイズ/キャッシュ方式の情報9003とを用いて
キャッシュシミュレーション処理9005を行う。それ
ぞれの処理で得られた情報は、トレース情報B1 90
06、トレース情報B2 9007としてそれぞれ出力
される。
【0108】以降の処理を、二つのトレース情報B90
06、9007に対してそれぞれに行うことで、キャッ
シュサイズ/キャッシュ方式が異なる第1、第2のCP
Uの間で、割り込みを考慮しないタスクの実行時間及び
キャッシュヒット率の比較を行うことが可能となる。
【0109】同様に、割り込みを考慮したタスクの実行
時間及びキャッシュヒット率の比較も行うことができ
る。割り込みを考慮した場合の処理は、図44に示され
るようである。共通の実行トレースA 10001と、
第1のCPUに関するキャッシュサイズ/キャッシュ方
式に関する情報10002と、割り込み確率データ10
003とを用いて区間ヒットシミュレーション処理10
006を行い、共通の実行トレースA 10001と、
第2のCPUに関するキャッシュサイズ/キャッシュ方
式に関する情報10004と、割り込み確率データ10
005とを用いて区間ヒットシミュレーション処理10
007を行う。それぞれの処理の結果として、トレース
情報B11 1008及びB12 10009とが得ら
れる。ここで、割り込みのプロファイルが同一である場
合には、割り込み確率データ10003とデータ100
5とは同一となる。
【0110】これ以降の処理は、図43に示された割り
込みを考慮しない場合と同様であり、二つのトレース情
報B 10008及び10009に対してそれぞれ行う
ことでキャッシュサイズ/キャッシュ方式が異なる第
1、第2のCPU間で割り込みを考慮したタスクの実行
時間及びキャッシュヒット率の比較を行うことができ
る。
【0111】同様の処理を、例えば4種類のキャッシュ
サイズについて行うことも可能である。図53(a)
(b)(c)にそれぞれ示すように、キャッシュヒット
率、実行時間、面積をグラフにプロットする。ここで、
第1のキャッシュサイズに関するデータがヒット率58
001、実行時間59001、面積60001であり、
第2のキャッシュサイズに関するデータがヒット率58
002、実行時間59002、面積60002であり、
第3のキャッシュサイズに関するデータがヒット率58
003、実行時間59003、面積60003であり、
第4のキャッシュサイズに関するデータがヒット率58
004、実行時間59004、面積60004であると
する。
【0112】システム上で実行される全てのタスクにつ
いて、このようなグラフを作成して比較を行うことによ
り、最適なキャッシュサイズ及びキャッシュ方式のCP
Uを選択することができる。
【0113】上記第3の実施の形態における処理方法で
は、キャッシュサイズ及びキャッシュ方式が異なるCP
U間での比較を行い最適なCPUの選択を行っている。
これに対し、次にCPU以外のハードウエアが変更され
たり、見積もりの対象となるタスク以外のタスクが変
更、又はハードウエア化した場合の見積もり方法につい
て、第4の実施の形態として説明する。
【0114】このような変更がおきた場合、対象となる
タスクも修正が必要となる可能性があるが、ここでは同
一のタスクであると仮定する。この時、対象となるタス
クに対して影響があるのは、割り込みのプロファイルが
異なってくるという点である。そこで、図2に示された
方法で割り込みを考慮しない見積もりを行った後、図2
5に示される割り込みを考慮した見積もりを、変更され
た部分に対応した異なる割り込みプロファイルについて
行い、その結果を比較する。
【0115】この方法によれば、見積もる対象のタスク
以外の部分が、見積もる対象のタスクに与える影響も見
積もることができる。よって、システム上で実行される
全てのタスクに対してこのような処理を行うことによ
り、システムの最適化を図ることができる。
【0116】第4の実施の形態による見積もり方法は、
キャッシュサイズ及びキャッシュ方式が異なる点を除い
て他の部分は同一であるCPUに関して比較処理を行う
ことにより、CPUを選択するものである。これに対
し、本発明の第5の実施の形態によれば、CPUの命令
セットアーキテクチャが同じで制御方式が異なり、パイ
プライン段数が異なるCPU間で比較を行うことができ
る。
【0117】図35(b)及び(c)に、制御方式が異
なるCPUの仕様の例を示す。図35(b)に示された
CPU Bは、クロック周波数50MHzで5段パイプ
ライン制御、図35(c)のCPU Cはクロック周波
数25MHzで3段パイプライン制御である。この二つ
のCPU B、CPU Cの各パイプステージにおける
動作を図45及び図46に示す。
【0118】CPU Bのパイプライン制御は図45
(a)に示されるようであり、命令フェッチIF 47
001、命令デコードID 47002、命令実行と実
効アドレスの計算EX 47005、メモリへの書き込
みMEM 47004、レジスタへの書き戻しWB 4
7005をパイプラインが備えている。各ステージ47
006は、図示されたように重なって実行される。この
CPU Bにおけるストールペナルティは、図36
(a)に示されるようである。
【0119】図46に、CPU Cのパイプライン制御
を示す。命令フェッチ及び命令デコードIF+ID 4
8001、命令実行及び実効アドレスの計算EX 48
002、メモリへの書き込みとレジスタへの書き戻しM
EM+WB 48003をパイプラインが含んでいる。
各ステージ48004は、重なって実行することができ
る。このCPU Cにおけるストールペナルティは、図
36(b)に示されるようである。
【0120】この二つのCPUを比較すると、図35
(b)及び(c)に示されたように、パイプラインの段
数とメモリのアクセス時間とは異なるが、命令セット、
キャッシュサイズ/キャッシュ方式は同じである。この
ため、パイプラインストールがおきた場合のペナルティ
は異なるものであるとしてタスク実行時間を見積もるこ
とにより、2つのCPUでの差を見積もることができ
る。従って、割り込みを考慮しない場合と割り込みを考
慮する場合との両方において、異なるストールペナルテ
ィを用いて実行クロック数を求めれば良い。
【0121】この実行クロック数を求める処理を図52
に示す。トレース情報B 11001は、割り込みを考
慮しないシミュレーション処理を行う場合には図2に示
されたキャッシュシミュレーション処理1005からの
出力1006であり、割り込みを考慮するシミュレーシ
ョン処理を行う場合は図25に示された区間ヒット率シ
ミュレーション2006の出力2007である。実行ク
ロックを求める処理11004及び11005は、割り
込みを考慮しない場合は図2における処理1009の処
理と同一であり、割り込みを考慮する場合は図25に示
された処理2009と同一となる。
【0122】ストールペナルティ11002として、例
えば図36(a)に示された値、ストールペナルティ1
1003として図36(b)に示された値をそれぞれ設
定し、実行クロック数を求めることにより、実行トレー
ス情報C1 11006としてCPU Bについての実
行クロック数を求め、実行トレース情報C2 1100
7としてCPU Cについての実行クロック数を求める
ことができる。以後の処理は、図1又は図24に示され
た処理と同様に行うことで、キャッシュヒット率及び実
行時間の見積もり値を得ることができる。
【0123】以上のように、命令セットアーキテクチャ
が同じであって制御方式が異なるCPU間でタスク実行
時間を比較することができるため、システムの要求性能
にあわせた最適なCPUを選択することが可能である。
【0124】第3、第4及び第5の実施の形態における
見積もり結果の比較は、命令セットアーキテクチャが同
じCPUに対する比較である。しかし、命令セットアー
キテクチャが異なるCPUの間で比較を行うこともでき
る。このような比較を行う本発明の第6の実施の形態に
ついて説明する。
【0125】対象とするCPUとして、第5の実施の形
態において説明したCPU Cと、図47に示されるよ
うな仕様を有するCPU Dとを対象とする。CPU
Dは、CPU Cと命令セットアーキテクチャが異な
り、命令語長が命令によって異なり、図49に示される
ように1語の命令51001、3語の命令51002、
4語の命令51003がある。さらに、データバスが2
語同時にアクセス可能なバス幅を有するため、命令のア
クセスパターンは図50に示されるように14通りのパ
ターン52001〜52014が存在する。ここで、図
50において1は1語の命令であり、3−1、3−2、
3−3は3語の命令の1語目、2語目、3語目であり、
4−1、4−2、4−3、4−4は4語の命令の1語
目、2語目、3語目、4語目をそれぞれ示す。
【0126】このCPUは、3段のパイプラインにより
制御されている。よって、命令の実行に必要なクロック
数は、図51に示されるように3乃至5クロックとな
る。命令の実行は、命令フェッチと命令デコードIF+
ID 53001、命令実行と実効アドレスの計算EX
53002、メモリへの書き込みとレジスタへの書き
戻しMEM+WB 53003の3クロックで行うこと
が可能である。しかし、命令語長は命令により異なるた
め、キャッシュヒットしたとしても最悪の場合命令フェ
ッチに3クロックは必要である。
【0127】このようなCPUのストールペナルティ
は、命令の語数により異なることがあり、図48に示す
ように分岐に伴うストールのペナルティが命令の語調に
より異なり3から5となる。
【0128】このCPUとCPU Cとを比較する場
合、命令セットが異なるためプログラムは異なり、割り
込みのプロファイルも異なる。そこで、図2及び図25
に示される全ての工程を2つのCPUについてそれぞれ
行う必要がある。
【0129】上述した実施の形態はいずれも一例であっ
て本発明を限定するものではなく、必要に応じて様々な
変形が可能である。
【0130】
【発明の効果】本発明のタスク実行時間の見積もり方法
によれば、割り込みによるタスク実行時間の増加を見積
もることができ、これを基にしてCPUの選択、キャッ
シュサイズ/方式の最適化、さらには、例えば要求され
る処理能力を満たす範囲内で最小コストのCPUを選別
するといったハードウエア/ソフトウエアのトレードオ
フの決定等を行うことが可能である。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態によるタスク実行時
間の見積もり方法における処理の流れを示したフローチ
ャート。
【図2】割り込みを考慮しない場合のタスク実行時間の
見積もり方法における処理の流れを示したフローチャー
ト。
【図3】割り込みが発生しない場合のキャッシュヒット
率の変化を示したグラフ。
【図4】割り込みが発生した場合のキャッシュヒット率
の変化を示したグラフ。
【図5】割り込みによりキャッシュが全て書き換わった
場合のキャッシュヒット率の変化を示したグラフ。
【図6】割り込みによりキャッシュの一部が書き換わっ
た場合のキャッシュヒット率の変化を示したグラフ。
【図7】割り込み発生率により実効キャッシュヒット率
が変化することを示したグラフ。
【図8】割り込みを考慮した場合におけるキャッシュヒ
ット率の見積もりを示したグラフ。
【図9】命令レベルシミュレーションの処理の流れを示
したフローチャート。
【図10】分岐命令の処理の流れを示したフローチャー
ト。
【図11】ロード命令の処理の流れを示したフローチャ
ート。
【図12】セーブ命令の処理の流れを示したフローチャ
ート。
【図13】レジスタ間演算命令の処理の流れを示したフ
ローチャート。
【図14】トレース情報Aに含まれる各々命令の内容を
示した説明図。
【図15】トレース情報Aに、命令の組み合わせによっ
て発生するストールを示すフラグを加えたことを示す説
明図。
【図16】トレース情報Aに、命令とデータのアクセス
回数を加えたことを示す説明図。
【図17】トレース情報Bに含まれる各々命令の内容を
示した説明図。
【図18】トレース情報Cに含まれる各々命令の内容を
示した説明図。
【図19】トレース情報Bにサンプリング点と区間の長
さを加えたことを示す説明図。
【図20】キャッシュメモリの構造を示した説明図。
【図21】割り込みを考慮することなくキャッシュシミ
ュレーションを行うためのデータ構造を示した説明図。
【図22】キャッシュシミュレーションの処理の流れを
示したフローチャート。
【図23】キャッシュリードアクセスの処理の流れを示
したフローチャート。
【図24】キャッシュライトアクセスの処理の流れを示
したフローチャート。
【図25】割り込みを考慮した場合のタスク実行時間の
見積もり方法における処理の流れを示したフローチャー
ト。
【図26】区間ヒット率を求める処理の流れを示したフ
ローチャート。
【図27】区間ヒット率を求める処理の流れを示したフ
ローチャート。
【図28】割り込みプロファイルを示した説明図。
【図29】割り込みにおけるキャッシュ書き換わりパタ
ーンAを示した説明図。
【図30】割り込みにおけるキャッシュ書き換わりパタ
ーンBを示した説明図。
【図31】区間ヒット率を求める処理において、キャッ
シュシミュレーションを行うためのデータ構造を示した
説明図。
【図32】区間ヒット率を求める処理において、キャッ
シュリードアクセスを行う処理の流れを示したフローチ
ャート。
【図33】区間ヒット率を求める処理において、キャッ
シュライトアクセスを行う処理の流れを示したフローチ
ャート。
【図34】割り込みを考慮したシミュレーションにおい
て実行クロック数を求める処理の流れを示したフローチ
ャート。
【図35】CPU A〜Cの仕様を示した説明図。
【図36】CPU A〜Cのストールペナルティを示し
た説明図。
【図37】割り込みを考慮しないシミュレーションにお
いて実行クロック数を求める処理の流れを示したフロー
チャート。
【図38】割り込みを考慮しないシミュレーションにお
いてキャッシュヒット率、実行時間見積もりを行う処理
の流れを示したフローチャート。
【図39】割り込みを考慮したシミュレーションにおい
てキャッシュヒット率、実行時間見積もりを行う処理の
流れを示したフローチャート。
【図40】本発明の第2の実施の形態によるタスク実行
時間の見積もり方法における区間ヒット率を求める処理
の流れを示したフローチャート。
【図41】同第2の実施の形態によるタスク実行時間の
見積もり方法において実行クロック数を求める処理の流
れを示したフローチャート。
【図42】本発明の第3の実施の形態によるタスク実行
時間の見積もり方法において割り込みによる影響を考慮
すべき区間が重なっている場合の処理を示した説明図。
【図43】同第3の実施の形態によるタスク実行時間の
見積もり方法において、キャッシュサイズとキャッシュ
方式が異なるCPUの比較を行う処理を示したフローチ
ャート。
【図44】同第3の実施の形態によるタスク実行時間の
見積もり方法において、キャッシュサイズとキャッシュ
方式が異なるCPUの比較を行う処理を示したフローチ
ャート。
【図45】CPU A及びCPU Bのストールペナル
ティを示した説明図。
【図46】CPU Cのパイプラインステージを示した
説明図。
【図47】CPU Dの仕様を示した説明図。
【図48】CPU Dのストールペナルティを示した説
明図。
【図49】CPU Dの命令の構成を示した説明図。
【図50】CPU Dの命令アクセスパターンを示した
説明図。
【図51】CPU Dのパイプラインステージを示した
説明図。
【図52】本発明の第5の実施の形態によるタスク実行
時間の見積もり方法により、ストールペナルティが異な
るCPUについて比較を行う処理の流れを示したフロー
チャート。
【図53】キャッシュサイズの相違により、キャッシュ
ヒット率、実行時間、面積が異なることを示したグラ
フ。
【図54】本発明の第2の実施の形態におけるキャッシ
ュヒット率の見積もりを示した説明図。
【符号の説明】
12001、12002、13001〜13004、1
4001〜14005、15001〜15005、16
001〜16004、18001〜18005、190
01〜19005 キャッシュヒット率 1001、2001 プログラム、データ初期値、実行
開始番地、実行終了番地 1002、2002 命令レベルシミュレーション 1003、2003、9001、10001 トレース
情報A 1004、2004、9002、9003、1000
2、10004 キャッシュ方式、キャッシュサイズ 1005、9004、9005 キャッシュシミュレー
ション 2005、10003、10005 割り込み確率デー
タ 2006、2006a、10006、10007 区間
ヒット率シミュレーション 1006、9006、10008 トレース情報B1 2007、2007a、9007、10009 トレー
ス情報B2 11001 トレース情報 1007、2008、11002、11003 ストー
ルペナルティ 1008、2009、2009a、11004、110
05 実行クロック数演算処理 1009 トレース情報C1 2010、2010a トレース情報C2 1010、2011、2011a キャッシュヒット率
実行時間見積もり処理 1011、2012、2012a 見積もり結果 3001 命令先頭番地 3002 実効命令 3003 実効番地 3004 分岐フラグ 4002 ストールフラグ 5002 命令アクセス回数 5003 データアクセス回数 6002 命令キャッシュヒット回数 6003 データキャッシュヒット回数 7002 命令実行に必要なクロック数 8002 サンプリング点フラグ 8003 区間の長さ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】タスク実行時間を見積もる方法において、 プログラム、データ初期値、実行開始番地及び実行終了
    番地を命令レベルシミュレーション部に入力し、分岐、
    命令の組み合わせを含む要因により起こるパイプライン
    ストールを含む命令の第1の実行トレースを出力するス
    テップと、 前記第1の実行トレースをキャッシュシミュレーション
    部に入力し、キャッシュミスに伴うパイプラインストー
    ルを、キャッシュ方式、キャッシュサイズに対応してシ
    ミュレーションして第2の実行トレースを出力するステ
    ップと、 前記第2の実行トレースを実行クロック数カウント部に
    入力し、分岐、命令の組み合わせにより起こるパイプラ
    インストールとキャッシュミスに伴うパイプラインスト
    ールとに応じて命令あたりの実行クロック数を求めて第
    3の実行トレースとして出力するステップと、 キャッシュメモリとパイプライン制御部とを有する中央
    処理装置(以下、CPUという)の命令実行をシミュレ
    ーションするシミュレータに前記第3の実行トレースを
    入力し、割り込みを考慮いない場合におけるプログラム
    全体の第1のキャッシュヒット率及び第1の実行時間を
    見積もり出力するステップと、 出力された前記第1の実行トレース、前記第1のキャッ
    シュヒット率、前記第1の実行時間、タスクの実行途中
    で割り込みが発生する割り込み発生率、キャッシュメモ
    リの書き換わり率を区間ヒット率シミュレーション部に
    入力し、前記第1の実行トレースに含まれる全ての命令
    と全ての割り込みとについて、キャッシュメモリ書き換
    えパターンに従って書き換えられたキャッシュのシミュ
    レーションを、全ての割り込み対して所定命令数だけ行
    い平均キャッシュヒット率を求めて出力するステップ
    と、 前記第1のキャッシュヒット率と、各々の割り込みにお
    ける前記平均キャッシュヒット率との加重平均をとって
    割り込みを考慮したキャッシュヒット率とする第4の実
    行トレースを出力するステップと、 実行クロック数カウント部に前記第4の実行トレースを
    入力し、各々の命令ごとにキャッシュヒット率と分岐、
    命令の組み合わせにより起こるパイプラインストールに
    応じて個々の命令ごとの実行クロック数をカウントし、
    第5の実行トレースとして出力するステップと、 前記第5の実行トレースを入力し、プログラム全体のキ
    ャッシュヒット率及び実行時間を見積もるステップと、 割り込みを考慮した命令実行シミュレータを組み合わせ
    ることにより、割り込みを考慮した平均キャッシュヒッ
    ト率及び実行時間見積もりを行うステップと、を備えた
    ことを特徴とするタスク実行時間見積もり方法。
  2. 【請求項2】タスク実行時間を見積もる方法において、 プログラム、データ初期値、実行開始番地及び実行終了
    番地を命令レベルシミュレーション部に入力し、分岐、
    命令の組み合わせを含む要因により起こるパイプライン
    ストールを含む命令の第1の実行トレースを出力するス
    テップと、 前記第1の実行トレースをキャッシュシミュレーション
    部に入力し、キャッシュミスに伴うパイプラインストー
    ルを、キャッシュ方式、キャッシュサイズに対応してシ
    ミュレーションして第2の実行トレースを出力するステ
    ップと、 前記第2の実行トレースを実行クロック数カウント部に
    入力し、分岐、命令の組み合わせにより起こるパイプラ
    インストールとキャッシュミスに伴うパイプラインスト
    ールとに応じて命令あたりの実行クロック数を求めて第
    3の実行トレースとして出力するステップと、 キャッシュメモリとパイプライン制御部とを有するCP
    Uの命令実行をシミュレーションするシミュレータに前
    記第3の実行トレースを入力し、割り込みを考慮いない
    場合におけるプログラム全体の第1のキャッシュヒット
    率及び第1の実行時間を見積もり出力するステップと、 出力された前記第1の実行トレース、前記第1のキャッ
    シュヒット率、前記第1の実行時間、タスクの実行途中
    で割り込みが発生する割り込み発生率、キャッシュメモ
    リの書き換わり率を区間ヒット率シミュレーション部に
    入力し、前記第1の実行トレースに含まれる命令のう
    ち、前記割り込み発生率に比例した数の命令をサンプリ
    ングにより抽出し、この命令に対してのみ、キャッシュ
    メモリ書き換えパターンに従って書き換えられたキャッ
    シュのシミュレーションを行って平均キャッシュヒット
    率を求めて出力するステップと、 前記第1のキャッシュヒット率と、各々の割り込みにお
    ける前記平均キャッシュヒット率との加重平均をとって
    割り込みを考慮したキャッシュヒット率とする第4の実
    行トレースを出力するステップと、 実行クロック数カウント部に前記第4の実行トレースを
    入力し、各々の命令ごとにキャッシュヒット率と分岐、
    命令の組み合わせにより起こるパイプラインストールに
    応じて個々の命令ごとの実行クロック数をカウントし、
    第5の実行トレースとして出力するステップと、 前記第5の実行トレースを入力し、プログラム全体のキ
    ャッシュヒット率及び実行時間を見積もるステップと、 割り込みを考慮した命令実行シミュレータを組み合わせ
    ることにより、割り込みを考慮した平均キャッシュヒッ
    ト率及び実行時間見積もりを行うステップと、 を備えたことを特徴とするタスク実行時間見積もり方
    法。
  3. 【請求項3】請求項1又は2記載のタスク実行時間見積
    もり方法を、少なくともキャッシュ方式又はキャッシュ
    サイズのいずれかが異なる複数のCPUに対してそれぞ
    れ行う方法であって、 前記キャッシュシミュレーション部を用いて前記第2の
    実行トレースを出力するステップにおいて、各々のCP
    Uのキャッシュ方式及びキャッシュサイズに対して処理
    を行い、CPU毎の前記第2の実行トレースを求め、前
    記区間ヒット率シミュレーション部を用いて前記平均キ
    ャッシュヒット率を求めて出力するステップにおいて、
    各々のCPUのキャッシュ方式、キャッシュサイズ及び
    割り込み発生確率に対して処理を行い、CPU毎の前記
    平均キャッシュヒット率を求めることにより、CPU毎
    の割り込みを考慮した平均キャッシュヒット率及び実行
    時間を見積もり、用途に応じた最適なCPUを選択する
    ことを特徴とする実行時間見積もり方法。
  4. 【請求項4】請求項1又は2記載のタスク実行時間見積
    もり方法を、パイプライン段数が異なる複数のCPUに
    対してそれぞれ行う方法であって、 前記第3の実行トレースを出力するステップと、前記第
    5の実行トレースを出力するステップとにおいて、各々
    のCPUのストールペナルティを用いて前記第3の実行
    トレースと前記第5の実行トレースとを求めることによ
    り、CPU毎の割り込みを考慮した平均キャッシュヒッ
    ト率及び実行時間を見積もり、用途に応じた最適なCP
    Uを選択することを特徴とする実行時間見積もり方法。
  5. 【請求項5】請求項1又は2記載のタスク実行時間見積
    もり方法を、命令セットが異なるCPUに対してそれぞ
    れ行う方法であって、 前記第1の実行トレースを出力するステップにおいて、
    各々のCPUのプログラムを用いて前記第1の実行トレ
    ースを求めることにより、CPU毎の割り込みを考慮し
    た平均キャッシュヒット率及び実行時間を見積もり、用
    途に応じた最適なCPUを選択することを特徴とする実
    行時間見積もり方法。
JP11077679A 1999-03-23 1999-03-23 タスク実行時間の見積もり方法 Abandoned JP2000276381A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP11077679A JP2000276381A (ja) 1999-03-23 1999-03-23 タスク実行時間の見積もり方法
US09/532,047 US6691080B1 (en) 1999-03-23 2000-03-21 Task execution time estimating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11077679A JP2000276381A (ja) 1999-03-23 1999-03-23 タスク実行時間の見積もり方法

Publications (1)

Publication Number Publication Date
JP2000276381A true JP2000276381A (ja) 2000-10-06

Family

ID=13640588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11077679A Abandoned JP2000276381A (ja) 1999-03-23 1999-03-23 タスク実行時間の見積もり方法

Country Status (2)

Country Link
US (1) US6691080B1 (ja)
JP (1) JP2000276381A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012001776A1 (ja) * 2010-06-29 2012-01-05 富士通株式会社 マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
US8996811B2 (en) 2010-08-27 2015-03-31 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
US20210080921A1 (en) * 2019-09-12 2021-03-18 Fanuc Corporation Servo control device, servo control system, and servo control method

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152028B2 (en) * 2001-12-13 2006-12-19 Texas Instruments Incorporated Software development tool with embedded cache analysis
US6918098B2 (en) * 2002-07-16 2005-07-12 Hewlett-Packard Development Company, L.P. Random code generation using genetic algorithms
DE10335989B4 (de) * 2003-08-01 2019-07-11 Kw-Software Gmbh Online-Änderungen von CIL-Code-Programmen für die Industrieautomatisierung
JP2006172234A (ja) * 2004-12-17 2006-06-29 Matsushita Electric Ind Co Ltd システム性能評価方法およびシステム性能評価装置
WO2007099643A1 (ja) * 2006-03-03 2007-09-07 Fujitsu Limited マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
US7502775B2 (en) * 2006-03-31 2009-03-10 International Business Machines Corporation Providing cost model data for tuning of query cache memory in databases
DE102006041444B4 (de) * 2006-09-04 2014-10-30 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
US8438003B2 (en) * 2007-04-12 2013-05-07 Cadence Design Systems, Inc. Methods for improved simulation of integrated circuit designs
US8218811B2 (en) 2007-09-28 2012-07-10 Uti Limited Partnership Method and system for video interaction based on motion swarms
US8180964B1 (en) * 2007-09-28 2012-05-15 The Mathworks, Inc. Optimization of cache configuration for application design
US20110252215A1 (en) * 2010-04-09 2011-10-13 International Business Machines Corporation Computer memory with dynamic cell density
US20140278715A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Estimating required time for process granularization
US10430799B1 (en) * 2017-02-03 2019-10-01 Numerify, Inc. System and method for determining a time threshold guarantee of a task for updating in a penalty clause of a service level agreement

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160650A (ja) 1993-12-02 1995-06-23 Matsushita Electric Ind Co Ltd タスクの実行制御装置
US5748878A (en) * 1995-09-11 1998-05-05 Applied Microsystems, Inc. Method and apparatus for analyzing software executed in embedded systems
JPH1011333A (ja) 1996-06-24 1998-01-16 Nippon Denki Ido Tsushin Kk タスク別cpu使用率測定装置
JP3660083B2 (ja) 1996-11-26 2005-06-15 株式会社東芝 タスク余裕度解析装置、タスク余裕度解析方法及びタスク余裕度解析プログラムを格納した記録媒体
JPH11232147A (ja) * 1998-02-16 1999-08-27 Toshiba Corp パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012001776A1 (ja) * 2010-06-29 2012-01-05 富士通株式会社 マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
JP5585651B2 (ja) * 2010-06-29 2014-09-10 富士通株式会社 マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
US8996811B2 (en) 2010-08-27 2015-03-31 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
US9430388B2 (en) 2010-08-27 2016-08-30 Fujitsu Limited Scheduler, multi-core processor system, and scheduling method
US20210080921A1 (en) * 2019-09-12 2021-03-18 Fanuc Corporation Servo control device, servo control system, and servo control method
US11687055B2 (en) * 2019-09-12 2023-06-27 Fanuc Corporation Servo control device, servo control system, and servo control method

Also Published As

Publication number Publication date
US6691080B1 (en) 2004-02-10

Similar Documents

Publication Publication Date Title
JP2000276381A (ja) タスク実行時間の見積もり方法
US6006032A (en) System and method for instruction burst performance profiling for single-processor and multi-processor systems
EP0871110B1 (en) Branch prediction in computer system
US20070239975A1 (en) Programmable backward jump instruction prediction mechanism
US20050107986A1 (en) Method, apparatus and computer program product for efficient, large counts of per thread performance events
JP6546584B2 (ja) 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法
CN106547587B (zh) 用于生成目标程序的配置文件的装置和方法
JP2008052684A (ja) 分岐履歴長の表示器、分岐予測システム及び分岐予測方法
US7290255B2 (en) Autonomic method and apparatus for local program code reorganization using branch count per instruction hardware
JP3749233B2 (ja) パイプラインでの命令実行方法及び装置
JPH0527971A (ja) 情報処理装置
US7827393B2 (en) Branch prediction apparatus, its method and processor
JPH08221272A (ja) 命令キャッシュに命令をロードする方法
US8285976B2 (en) Method and apparatus for predicting branches using a meta predictor
KR100521110B1 (ko) 이벤트 처리 방법 및 장치
Sazeides Modeling value speculation
US11194575B2 (en) Instruction address based data prediction and prefetching
KR100355630B1 (ko) 롬 정정 유닛을 구비하는 컴퓨터 시스템
US20020169945A1 (en) Microprocessor
US8171270B2 (en) Asynchronous control transfer
JP2783285B2 (ja) 情報処理装置
JPS59183434A (ja) 命令先取り制御方式
JPH10171653A (ja) 情報処理装置の分岐予測方式及びそれを用いた装置
JPH05233288A (ja) 情報処理装置
JP4002288B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060725

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20060912