JPH03127133A - 計算機シミュレーション方法 - Google Patents
計算機シミュレーション方法Info
- Publication number
- JPH03127133A JPH03127133A JP26491489A JP26491489A JPH03127133A JP H03127133 A JPH03127133 A JP H03127133A JP 26491489 A JP26491489 A JP 26491489A JP 26491489 A JP26491489 A JP 26491489A JP H03127133 A JPH03127133 A JP H03127133A
- Authority
- JP
- Japan
- Prior art keywords
- stage
- instruction
- computer
- operation rule
- transition
- 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
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は計算機シミュレーションに関し、特にパイプラ
イン計算機の動作を条件式からなる条件部と代入式から
なる動作部によって構成される規則で表わして行う、イ
ベントドリブン方式の計算機シミュレーションに関する
。
イン計算機の動作を条件式からなる条件部と代入式から
なる動作部によって構成される規則で表わして行う、イ
ベントドリブン方式の計算機シミュレーションに関する
。
超高速プロセッサを実現するためには命令を多重に処理
するパイプライン方式が有効である。このパイプライン
方式の妥当性の検証や性能評価を行うために、評価用シ
ミュレータが必要となる。 例えば、情報処理学会第37口金国大会論文集(198
8年)第121頁から122頁rSIMP(単一命令流
/多重命令パイプライン)方式のシミュレーションによ
る評価」参照。 このシミュレータでは、パイプラインの機能をサブステ
ージと呼ばれる最小単位に分割し、分割されたサブステ
ージの集合によってステージ及びパイプライン構成を表
現している。各ステージにどのサブステージを用意する
かによって任意のパイプラインを構成する。 また、このシミュレータでは、命令間のデータ依存と制
御依存といった依存関係によるパイプラインの乱れをシ
ミュレータ中で表現している。例えば、命令間にデータ
依存がある場合は、それらの命令のリンクをとり先行命
令のデータ書き込みが終了するまではオペランドは供給
されない。制御依存は分岐命令により生じ、これがある
場合、分岐命令が終了するまで次の命令ブロックは供給
されない。
するパイプライン方式が有効である。このパイプライン
方式の妥当性の検証や性能評価を行うために、評価用シ
ミュレータが必要となる。 例えば、情報処理学会第37口金国大会論文集(198
8年)第121頁から122頁rSIMP(単一命令流
/多重命令パイプライン)方式のシミュレーションによ
る評価」参照。 このシミュレータでは、パイプラインの機能をサブステ
ージと呼ばれる最小単位に分割し、分割されたサブステ
ージの集合によってステージ及びパイプライン構成を表
現している。各ステージにどのサブステージを用意する
かによって任意のパイプラインを構成する。 また、このシミュレータでは、命令間のデータ依存と制
御依存といった依存関係によるパイプラインの乱れをシ
ミュレータ中で表現している。例えば、命令間にデータ
依存がある場合は、それらの命令のリンクをとり先行命
令のデータ書き込みが終了するまではオペランドは供給
されない。制御依存は分岐命令により生じ、これがある
場合、分岐命令が終了するまで次の命令ブロックは供給
されない。
上記従来技術では、計算機モデルの構成をパイプライン
の機□能をサブステージと呼ばれる最小単位に分割し、
サブステージの集合によってステージ及びパイプライン
を表現していた。集合関係を変更することで、計算機モ
デル構成のパイプライン段数の変更を行うことができる
。しかし、計算機モデルの記述量を削減して評価の効率
を向上するという問題については考慮されていない0本
発明の第一の目的は、ユーザが入力するモデル記述量を
削減してパイプラインの構成を変更した場合の評価比較
の効率を向上することにあ、る。 また上記従来技術では、新たにパイプライン計算機の高
速化方式を導入して評価を行うためにはモデル記述の変
更が複雑であった。さらに、連続する命令間でデータや
制御上の依存関係を検出する機能を備えているが、依存
関係が変わるような変更がある場合には、シミュレータ
プログラムの変更が必要になるという問題点があった。 本発明の他の目的は、パイプラインの構成を変更した場
合でもモデル記述の変更は比較的少量で容易であり、さ
らにシミュレータプログラムの変更無く評価を行うこと
を可能にして、評価の効率を向上することにある。
の機□能をサブステージと呼ばれる最小単位に分割し、
サブステージの集合によってステージ及びパイプライン
を表現していた。集合関係を変更することで、計算機モ
デル構成のパイプライン段数の変更を行うことができる
。しかし、計算機モデルの記述量を削減して評価の効率
を向上するという問題については考慮されていない0本
発明の第一の目的は、ユーザが入力するモデル記述量を
削減してパイプラインの構成を変更した場合の評価比較
の効率を向上することにあ、る。 また上記従来技術では、新たにパイプライン計算機の高
速化方式を導入して評価を行うためにはモデル記述の変
更が複雑であった。さらに、連続する命令間でデータや
制御上の依存関係を検出する機能を備えているが、依存
関係が変わるような変更がある場合には、シミュレータ
プログラムの変更が必要になるという問題点があった。 本発明の他の目的は、パイプラインの構成を変更した場
合でもモデル記述の変更は比較的少量で容易であり、さ
らにシミュレータプログラムの変更無く評価を行うこと
を可能にして、評価の効率を向上することにある。
【課題を解決するための手段】
上記目的を達成するために、ユーザが記述したパイプラ
インを構成するステージの数と命令のデコード、アドレ
ス計算、オペランド読みだし、演算の実行処理が行われ
るステージ名と、処理される各命令について演算に要す
るサイクル数とレジスタ、メモリへの書き込み、読みだ
し処理が行われるステージ名と命令の処理が先行的に行
われる場合のレジスタ、メモリへの書き込み、読みだし
処理が行われるステージ名を入力して、計算機動作規則
群を生成し、該計算機動作規則群を入力してパイプライ
ン計算機のシミュレーションを実行する。 また、上記化の目的を達成するために、該計算機動作規
則記述群中にパイプラインを構成する各ステージごとに
該ステージで処理中の命令が次ステージへ遷移が可能な
状態か否かを表すステージ遷移制御信号を備え、次ステ
ージへ遷移が可能な条件を表す条件部と該ステージ遷移
制御信号の値を設定する動作部からなる計算機動作規則
と、該ステージ遷移制御信号の値が特定の値をとること
を表す条件部とステージ遷移処理を表す動作部からなる
計算機動作規則を生成して、シミュレーション時には該
ステージ遷移制御信号の値を判定してパイプライン計算
機を構成するステージ間の命令処理の遷移を行うか否か
を決定し。 新たな高速化方式を導入するためには、動作規則記述群
からステージ遷移制御信号名を抽出し、抽出されたステ
ージ遷移制御信号の値を設定する動作規則が複数存在す
るときには一つの動作規則記述に合威し不要になった動
作規則記述を削除して計算機規則記述を生成しなおし、
計算機動作規則記述群を入力としてシミュレーションを
実行する。
インを構成するステージの数と命令のデコード、アドレ
ス計算、オペランド読みだし、演算の実行処理が行われ
るステージ名と、処理される各命令について演算に要す
るサイクル数とレジスタ、メモリへの書き込み、読みだ
し処理が行われるステージ名と命令の処理が先行的に行
われる場合のレジスタ、メモリへの書き込み、読みだし
処理が行われるステージ名を入力して、計算機動作規則
群を生成し、該計算機動作規則群を入力してパイプライ
ン計算機のシミュレーションを実行する。 また、上記化の目的を達成するために、該計算機動作規
則記述群中にパイプラインを構成する各ステージごとに
該ステージで処理中の命令が次ステージへ遷移が可能な
状態か否かを表すステージ遷移制御信号を備え、次ステ
ージへ遷移が可能な条件を表す条件部と該ステージ遷移
制御信号の値を設定する動作部からなる計算機動作規則
と、該ステージ遷移制御信号の値が特定の値をとること
を表す条件部とステージ遷移処理を表す動作部からなる
計算機動作規則を生成して、シミュレーション時には該
ステージ遷移制御信号の値を判定してパイプライン計算
機を構成するステージ間の命令処理の遷移を行うか否か
を決定し。 新たな高速化方式を導入するためには、動作規則記述群
からステージ遷移制御信号名を抽出し、抽出されたステ
ージ遷移制御信号の値を設定する動作規則が複数存在す
るときには一つの動作規則記述に合威し不要になった動
作規則記述を削除して計算機規則記述を生成しなおし、
計算機動作規則記述群を入力としてシミュレーションを
実行する。
計算機動作規則記述部生成プログラムは、ユーザが記述
した計算機指定記述を入力して、シミュレーション実行
用の計算機動作規則記述群を生成する。パイプラインを
構成するステージ名の指定から、パイプラインを構成す
る各ステージで処理中の命令が次ステージへ遷移が可能
な状態か否かを表すステージ遷移制御信号、次ステージ
への遷移が可能な条件を満たした時に該ステージ遷移制
御信号の値を設定する計算機動作規則記述、該ステージ
遷移制御信号の値が特定の値をとった時にステージ遷移
処理を実行する計算機動作規則記述を生成する。また、
計算機上で処理される命令の属性の指定から、パイプラ
インの処理の流れを乱すオーバヘッド要因発生の発生条
件判定と発生時の動作を表す動作規則記述を生成する。 例えば。 命令には演算実行に1サイクル要する命令、3サイクル
要する命令、5サイクル要する命令の三種類があるなら
ば、r演算処理ステージに命令が入って次のタイミング
で次ステージにその命令を遷移する」ことを表す動作規
則記述、「演算処理ステージに命令が入って3サイクル
後のタイミングで次ステージにその命令を遷移する」こ
とを表す動作規則記述、「演算処理ステージに命令が入
って5サイクル後のタイミングで次ステージにその命令
を遷移する」ことを表す動作規則記述の三種類の動作規
則記述を生成する。また、例えば、ステージSNで汎用
レジスタからの読み込み処理を行う命令があると指定さ
れていれば、「シミュレーションで実行されている命令
列の中で、前の命令が書き込みを行う汎用レジスタと同
一のレジスタに対して後続の命令が書き込みを行うよう
な組合せの命令列が入ったか否かを判定し、そのような
命令列が入ったと判定された場合には、SNステージ中
で前の命令の書き込み処理が終了するのを待つ」ことを
表す動作規則記述を生成する。 ステージ遷移制御信号名抽出ルーチンは、計算機動作規
則記述群を生成する過程で、各ステージごとに備えられ
るそのステージで処理中の命令が次ステージへ遷移が可
能な状態か否かを表すステージ遷移制御信号名と、ステ
ージ中の命令処理状況を表すビジー信号名、及び、それ
らの信号の値を設定しようとする動作規則記述を抽出す
る。例えば、SNステージで処理中の命令がS(N+1
)ステージへ遷移が可能な状態か否かを表すステージ遷
移制御信号は、5NtoS(N+1)、SNステージの
命令処理状況を表すビジー信号は5Nbusy、と名付
けられている。また、それらの信号の値を設定しようと
する動作規則記述とは、その動作部中で5NtoS(N
+1)。 5Nbusyに対して何らかの値を設定することが記述
されている動作規則をさす。抽出されたステージ遷移制
御信号名と動作規則記述群は、ステージ遷移制御信号値
設定動作規則記述競合調整ルーチン中で、その信号の値
を設定する動作規則が競合してエラーを起こすことがな
いよう動作を保障さ士るために用いられる。また、ユー
ザが新たな高鎧化方式を追加する際に、このステージ遷
移制御a号の値を制御するような動作規則を記述するた
ダに用いられる。 ステージ遷移制御信号値設定動作規則記述競ぞ調整ルー
チンは、ステージ遷移制御信号名抽出ノ1−チンが抽出
した動作規則記述について、同−C処理遷移制御信号の
値を設定するような動作現員1記述が複数発生した場合
には、動作規則記述間C優先順位や並列性を考慮して、
不必要な動作現員1の削除し、遷移の条件を適切な形に
変えてまと鉱動作規則を生成しなおす。また、ユーザが
新たな高速化方式を導入して評価する際に追加記述した
動作規則記述と、計算機動作規則記述群生酸プログラム
が生成したシミュレーション実行用の計算機動作規則記
述群との開で、同一の処理遷移制御信号の値を設定する
ような動作規則が複数発生した場合にも、動作を保障す
るために同様の処理を行う。 (実施例] 本発明の詳細な説明に先立ち、まず本発明による一実施
例の計算機シミュレーション方法の全体システムの構成
を第1図を用いて説明する。第1図において、ユーザが
計算機指定記述(101)を入力し、計算機構成指定記
述の内容から計算機動作規則記述群生酸プログラム(1
02)がシミュレーション実行用の計算機動作規則記述
群(t05)を生成する。生成の過程でステージ遷移制
御信号名抽出ルーチン(104)がステージ遷移を制御
する信号名(109)を抽出する。計算機動作規則記述
群(105)を入力として、シミュレータプログラム(
106)がシミュレーションを実行して、パイプライン
計算機の各ステージでの命令処理の遷移を示すステージ
フローグラフ(107)と、パイプライン計算機のシミ
ュレーション実行結果トレース(108)を出力する。 本発明の第一の特徴は、ユーザが入力した計算機指定記
述(101)をもとに、計算機モデル記述生成プログラ
ム(102)がシミュレーション実行用計算機モデル記
述(105)を生成することにある。計算機指定記述(
101)は、パイプライン計算機のステージ構成を指定
する計算機構成指定記述(110)とパイプライン計算
機で処理される各命令の属性を指定する命令属性テーブ
ル(111)からなる、計算機構成指定記述(110)
では、パイプラインを構成するステージの数と各々の名
前、命令のデコード、アドレス計算、オペランド読みだ
し、演算の実行処理が行われるステージ名、キューを有
するステージについてはその段数を指定する。命令属性
テーブル(111)では、処理される各命令について演
算に要するサイクル数とレジスタ、メモリへの書き込み
、読みだし処理が行われるステージ名と命令の処理が先
行的に行われる場合のレジスタ、メモリへの書き込み、
読みだし処理が行われるステージ名を指定する。ユーザ
は、計算機構成指定記述(110)において、ステージ
の段数や各ステージで行われる処理の指定を変更して計
算機モデル記述生成プログラム(102)によって計算
機規則記述群を生成すれば、パイプライン構成を自由に
変えることができる。また、命令属性テーブル(111
)において、例えば命令の演算実行に要するサイクル数
を変更して計算機モデル記述生成プログラム(102)
によって計算機規則記述群を生成すれば、パイプライン
計算機の演算処理性能を変えることができる。レジスタ
、メモリへの書き込み、読みだし処理が行われるステー
ジ名を変更すればパイプラインの流れを乱すオーバヘッ
ド要因が起こった場合に命令の待ちが生じるステージと
タイミングが変わり、また、先行的に行われる命令処理
のレジスタ、メモリへの書き込み、読みだし処理が行わ
れるステージ名を変更すれば、パイプラインの流れを乱
すオーバヘッド要因が起こった場合でもバイパスを介し
て書き込み、読みだし処理を行うことができるバイパス
機能を持つパイプライン計算機とそのバイパスするタイ
ミングを表現することができる。以上のように計算機構
成指定記述(110)を変更して計算機モデル記述生成
プログラム(102)によって計算機規則記述群を生成
すれば、パイプライン計算機の構成や性能を自由に変え
ることができるので1幅広くパイプライン計算機の方式
の評価を行うことが可能である。 本発明の第二の特徴は、シミュレーション実行用計算機
モデル記述(105)を生成する計算機モデル記述生成
プログラム(102)中に、ステージ遷移制御信号値設
定動作規則記述競合調整ルーチン(103)とステージ
遷移制御信号名抽出ルーチン(104)を備えることに
ある。ここで生成されるシミュレーション実行用の計算
機動作規則記述(105)中では、次の処理ステージへ
の命令の遷移が可能な状態か否か表すステージ遷移制御
信号と、ステージ中の命令処理状況を表すビジー信号の
値に従ってステージ遷移の制御を行うように記述してい
る。ステージ遷移制御信号名抽出ルーチン(104)が
、計算機動作記述生成の過程で、ステージ遷移処理上キ
ーワードとなる、ステージ遷移制御信号名とビジー信号
名、および、それらの信号の値を設定する動作規則を抽
出する。 ステージ中の命令処理状況を表すビジー信号の値を設定
する動作規則は、オーバヘッド要因ごとに記述され、ビ
ジー信号はオーバヘッド要因が発生した時に命令処理に
待ちが生じて処理終了できなくなっているステージ、ま
たその影響でステージ中の命令が遷移できなくなってい
る他のステージに対して、値を1とする。同一のステー
ジ遷移制御信号、ビジー信号の値を設定する複数の動作
規則記述が競合するときには、不必要な動作規則は削除
、または、調整を行って生成し直さなければならない。 ステージ遷移制御信号値設定動作規則記述競合調整ルー
チン(103)が、抽出された信号名と動作規則をもと
に、その処理を行う。 また、新たに高速化方式の導入のために追加記述した動
作記述と、計算機動作規則記述群生酸プログラムが生成
したシミュレーション実行用の計算機動作規則記述群と
の間で、同一の処理遷移制御信号の値を設定するような
動作規則が複数発生した場合にも、ステージ遷移制御信
号名抽出ルーチン(104)が抽出した信号名と動作規
則をもとに、ステージ遷移制御信号値設定動作規則記述
競合調整ルーチン(103)が、動作を保障するために
同様の処理を行う。これによって、新たな動作記述の追
加、不必要な動作記述の削除を自動的に行い、ステージ
の構成や機能を容易に変更して評価を行うことが可能に
ある。一つのステージ遷移制御信号の値を設定する動作
規則が複数存在するとき、その動作が保障される。 次に、本発明による一実施例の計算機シミュレーション
方法を詳細に説明する。 まず、計算機指定記述(101)の入力例と。 計算機指定記述(101)の内容から計算機モデル記述
生成プログラム(102)が生成するシミュレーション
実行用計算機モデル記述(105)の出力例を、第2図
に示す。計算機構成指定記述(110)で指定されてい
る項目は順に、ステージの段数、各ステージの名前とそ
の並び順、命令のデコード処理を行うステージ名、アド
レス変換処理を行うステージ名、オペランド読み出し処
理を行うステージ名、演算実行処理を行うステージ名の
指定、演算ピッチサイクル数、キューを有するステージ
名とその段数といった計算機構成指定(110)である
、この例では、「パイプラインを構成するステージ数は
7段、それぞれ順に5O2SL、S2.、、、、 S6
と名前を付ける。デコードを行うステージはSO,アド
レス計算を行うステージはsi、、、、、ステージS1
には、6段分のキューがある」ようなパイプライン計算
機の構成を示している。命令の属性を記述するテーブル
は、パイプラインの構成や性能に依存しない命令の属性
を記述する基本命令属性テーブルと、パイプラインの構
成や性能に依存して変わる命令の属性を記述する命令属
性テーブルの二つに分けて記述する。パイプラインの構
成や性能に依存しない命令の属性を記述する基本命令属
性テーブルでは、命令の長さ、オペランドの長さ、汎用
レジスタを書き替える場合にはどのレジスタを書き替え
るのか、浮動小数点レジスタを書き替える場合にはどの
レジスタを書き替えるのか、汎用レジスタを読みだす場
合にはどのレジスタを読みだすのか、浮動小数点レジス
タを読みだす場合にはどのレジスタを読みだすのか、を
記述する。パイプラインの構成や性能に依存して変わる
命令の属性を記述する計算構成依存命令属性テーブルで
は(IIIA)で指定されている項目は、命令の属性と
して命令ごとに演算実行に要するサイクル数、デフード
ピッチ数、汎用レジスタ、浮動小数点レジスタ、メモリ
への書き込み処理を行うステージ名、読み出し処理を行
うステージ名、先行演算を行う場合の汎用レジスタ、浮
動小数点レジスタ、メモリへの書き込み処理を行うステ
ージ名、読み出し処理を行うステージ名である。パイプ
ラインの構成や機能を変更して評価する場合には、上記
の指定内容を変えれば良い0例えば、演算が実行するス
テージより、デコードを行うステージの方が後である等
の、論理的な誤りが起こらない範囲内で、自由に指定を
変えることが可能である。 計算機構成指定(IIOA)と計算機構成依存命令属性
テーブル(第3図の111A)を入力した時、生成され
る計算機動作規則の一部を(105A)に示す。ここで
は、デコードを行うステージに分岐命令が投入された時
の動作を表す動作規則記述と、ステージS2からステー
ジS3への命令処理の遷移を表す動作規則記述を例にし
て説明する。 分岐命令については、「デコードを行うステージに投入
された命令が、分岐条件を判定して後続の命令列を決定
するような分岐命令のときは、その分岐命令における判
定が終了して分岐先を決定した後、分岐先の命令をデコ
ードを行うステージに投入する」動作記述群を生成する
。デコードを行うステージをSOとする。ここでは二つ
の動作規則記述に分けて、「デコードステージSOに投
入された命令が分岐命令のとき、その分岐命令における
判定処理を実行する意味を持つ信号BRANCI(に値
1を設定する」ことを表す動作規則記述5etBRAN
CHと、「信号BRANCHに値1が設定されていて、
かつ、分岐判定が終了していない間(Branch−j
udgeが値1をとっている間)は1分岐先の命令をデ
コードステージSOに投入しても良いか否かを表す信号
tO3Oに値Oを代入してデコードステージへの命令の
投入を抑止する」ことを表す動作規則記述toso−s
uspend−Branchを生成する。ここでは、分
岐の動作を表す動作規則記述を生成するための動作規則
の「型」を動作規則記述生成プログラムが持っていて、
その「型」中のデコードを行うステージを表す変数にS
Oを代入して動作規則を生成している。 但し、ここで生成される動作規則記述中で表れる信号B
ranch−judgeの値は、またIIIの動作規則
中で設定されている。 ステージS2からステージS3への命令処理のステージ
遷移処理は、ステージ遷移制御信号の値によってステー
ジ遷移を行うことを表す、動作規則名5etS2toS
3の記述に従う。条件部に現れる52toS3は、ステ
ージS2で処理中の命令が次ステージS3への遷移が可
能な状態か否かを表す、ステージ遷移制御信号である。 ステージSXから次ステージS (X+1)への遷移を
制御するステージ遷移制御信号の名前は、5XtoS(
X+1)と表すものとする。52toS3の値が1の時
はステージS2からステージS3への遷移が可能な状態
であることを示しており、動作規則5etS2toS3
は、rS2toS3の値が1の時は、即ステージS2で
処理されている命令番号をステージS3に移し、ステー
ジS2中の命令番号をリセットする動作を実行する」と
いう意味を持つ。 動作規則記述生成プログラム(102)が計算機指定記
述(101)を参照しながら動作規則記述(105)を
生成する処理の部分について、その手順を第41ii1
に示す。 始めに、計算機指定記述(101)を読み込んで、計算
機指定内容テーブル(220)を生成する(221)、
この計算機指定内容テーブル(220)を参照して以降
の動作規則記述を生成していく、まず、ステージ名SN
、キューの指定Qから、各ステージに対応するステージ
遷移制御信号、ビジー信号、ステージ遷移制御動作規則
記述を生成する(222)。ここでは、ステージSXか
ら次のステージS(X+1)へのステージ遷移制御信号
名を5XtoS(X+1)、 Xデージ5X(7)ビジ
−信号名を5Xbusyと名付けて各々のステージにつ
いて信号を生成する。またステージSXから次のステー
ジS(X+1)へのステージ遷移制御動作規則は、「ス
テージSXと次のステージS(X+1)中の命令につい
てそれぞれの処理が終了したとき、ステージSXから次
のステージへのステージ遷移制御信号5XtoS(X+
1)に値1を代入する」という型に対して各々のステー
ジ名を代入して動作規則を生成する。これらは、各ステ
ージに対応して生成される動作規則記述である。 次に、デコード処理を表す動作規則を、デコード処理を
行うステージDS、命令ごとのデコードピッチ数DPか
ら生成する(223)。例えば。 計算機構成依存命令属性テーブル中にデコードピッチが
1サイクルの命令と2サイクルの命令があれば、後続の
命令が次のサイクルでデコードステージに入るような動
作規則と2サイクル後にデコードステージに入るような
動作規則とを生成する。 ここでは、rデコードステージSの処理が終了してから
、Xサイクル後に次の命令をSへ投入することができる
ことを表すステージ遷移制御信号の値を1にする」とい
うあらかじめ用意された型に対して、後続の命令をデコ
ードステージに入れる動作の実行タイミングXと、デコ
ードステージに値を代入する。つまり、「デコードステ
ージDSの処理が終了してから、次のサイクルで次の命
令をデコードステージへ投入することができることを表
す信号toO3を1にする」動作規則と、「デコードス
テージDSの処理が終了してから、1サイクル後に次の
命令をデコードステージへ投入することができることを
表す信号toDSを1にする」動作規則を生成する。こ
れは、処理される命令に対応して生成される動作規則で
ある。 次に、演算実行処理を表す動作規則を、演算実行処理を
行うステージES、演算実行ピッチ数○P、命令ごとの
演算実行サイクル数OCから生成する(224)、例え
ば、演算ピッチ○Pが1サイクル、演算実行サイクル数
oCとして2サイクル要する命令と3サイクル要する命
令があれば、「演算実行ステージS中の命令は、(oc
−op+1)サイクル分S中にいて、(oc−op)サ
イクル目でSから次ステージへのステージ遷移制御信号
を1にする」という型に対して、演算実行サイクル数O
Cと、演算実行処理を行うステージ名ES、演算ピッチ
OPの値を代入して、2サイクル要する命令に対しては
「演算実行ステージES中Φ命令は、2サイクル分だけ
ES中にいて。 3サイクル目でESから次ステージへのステージ遷移制
御信号EStoNEXTを1にする」動作規則と、3サ
イクル要する命令に対しては「演算実行ステージES中
の命令は、3サイクル分だけES中にいて、4サイクル
目でESから次ステージへのステージ遷移制御信号ES
toNEXTを1にする」動作規則を生成する。また、
演算ピッチOPが2サイクル。 演算実行サイクル数として2サイクル要する命令と3サ
イクル要する命令があれば、このときは演算ピッチOP
が2サイクルであるから、一つの命令が演算実行ステー
ジESに命令がいる時間と次ステージに命令がいる時間
という2ステ一ジ分の処理時間の和が、演算実行サイク
ル数に相当する。 この場合も、前述の型に値を代入して、「演算実行ステ
ージES中の命令は、1サイク、ル分だけES中にいて
、2サイクル目でESから次ステージへのステージ遷移
制御信号EStoNEXTを1にする」動作規則と、「
演算実行ステージES中の命令は、2サイクル分だけE
S中にいて、3サイクル目でESから次ステージへのス
テージ遷移制御信号ESt。 NEXTを1にする」動作規則を生成する。(OC−1
)サイクル分ステージESに、1サイクル分ESの次ス
テージにいることになる。これも、処理される命令に対
応して生成される動作規則である。 次に、パイプラインの流れを乱すオーバヘッド要因別に
その動作規則を生成する(225)。例えば、パイプラ
イン中を多重に流れている複数の命令が、同一の汎用レ
ジスタ、または、浮動小数点レジスタ、メモリを使用し
ようとした時の待ちを生じさせる動作規則や、分岐命令
が投入された時の分岐判定終了の待ちを生じさせる動作
規則などである。ここでは、同一の汎用レジスタの使用
の競合が起こったときの動作規則の生成について説明す
る。 まず、汎用レジスタを書き替える命令があるとき、「デ
コードステージに投入された命令が汎用レジスタを書き
替える命令であるとき、それを各々のレジスタに対応し
て持っている書替え命令登録リストに登録する」動作規
則を生成する。これは、基本命令属性テーブルで指定さ
れている、命令ごとのどの汎用レジスタを書き替えるか
の指定を参照してその内容に合わせて動作規則を生成す
る。ある命令が汎用レジスタを書き替える場合には、そ
の命令が書き替えるすべての汎用レジスタについて書替
え命令登録リストに命令番号を登録しなければならない
。ここでは、「デコードステージSに投入されている命
令が、書き替えを行う汎用レジスタがR1,、、、、R
Xであるとき、その命令番号をR1,、、、、RX用の
書替え命令登録リストに登録する」という型を用意して
いる0例えば、基本命令属性テーブル中で、汎用レジス
タORのみを書き替えると指定されている命令■1のた
めには、「デコードステージSに命令工1が投入された
とき、Ilの命令番号を汎用レジスタOR用の書替え命
令登録リストに登録する」動作規則を生成する。汎用レ
ジスタ番号GRと、(GR+1)番目を書き替える命令
■2のためには、「デコードステージSに命令I2が投
入されたとき、I2の命令番号を汎用レジスタORと(
GR+1)用の書替え命令登録リストに登録する」動作
規則を生成する。これらは、命令の属性に対応して生成
される動作規則である。 次に「汎用レジスタを書き替える命令Aが書き替えが終
了しな時(命令Aが、命令Aの汎用レジスタ書き込みス
テージから次のステージに遷移することができる条件を
満たしたとき)に、登録されでいた命令Aを書替え命令
登録リストから削除する」動作規則を生成する。基本命
令属性テーブル中の命令ごとの書き替える汎用レジスタ
の組の指定と、計算#!に構成依存命令属性テーブル中
の汎用レジスタ書き込みステージ名を参照してその内容
に合わせて動作規則を生成する。ここでは、「汎用レジ
スタ書き込みステージSである命令がステージSでの処
理が終了していて、命令が書き替える汎用レジスタがR
1,、、、、RXであるとき、その命令番号をR1,、
、、、RX用の書替え命令登録リストから削除する」と
いう型を用意している。例えば、汎用レジスタ書き込み
ステージが85で、汎用レジスタ番号GRのみを書き替
えると指定されている命令11のためには、「ステージ
S5で命令■1の処理が終了したとき、I1の命令番号
をOR用の書替え命令登録リストから削除する」動作規
則を生成する。また、汎用レジスタ書き込みステージが
85で、汎用レジスタ番号GRと、(GR+1)番目を
書き替える命令■2のためには、「ステージS5で命令
I2の処理が終了したとき、I2の命令番号をGRl(
GR+1)用の書替え命令登録リストから削除する」動
作規則を生成する。この動作規則記述は。 命令の属性に対応して生成される動作規則である。 次に「命令Aが汎用レジスタを読みだす命令で、その読
みだそうとするレジスタを書き替えようとする命令Bが
命令Aより以前に投入されていなければ、(汎用レジス
タの読みだしが可能なのでその処理を終了して次のステ
ージへ遷移することができるから)命令Aを汎用レジス
タ読み込みステージGRから次のステージへのステージ
遷移制御信号の値を1にする」動作規則を生成する。こ
こでは、「汎用レジスタ読みだしステージSXIである
命令IがステージSXIでの処理が終了していて、命令
工が汎用レジスタR1,、、、、RXを読みだす命令の
とき、R1,、、、、RX用書替え命令登録リスト中に
命令Aより以前に投入された命令の番号が残っていなけ
れば、命令Aの汎用レジスタ読み込みステージSX2か
ら次のステージへのステージ遷移制御信号の値を1にす
る」という型を用意している0例えば、汎用レジスタ読
みだしステージが84.汎用レジスタ番号ORのみを読
みだす命令11のためには、「ステージS4での命令1
1の処理が終了していて、OR用書替え命令登録リスト
中に命令工1より以前に投入された命令の番号が残って
いなければ、ステージS4から次のステージへのステー
ジ遷移制御信号54toNEXTの値を1にする」動作
規則を生成する。 また、汎用レジスタ読みだしステージが84.汎用レジ
スタ番号ORと、(GR+1)1%目を読みだす命令の
ためには、rステージS4での命令11の処理が終了し
ていて、GRと、(GR+1)用書替え命令登録リスト
中に命令11より以前に投入された命令の番号が残って
いなければ、ステージS4から次のステージへのステー
ジ遷移制御信号54toNEXTの値を1にする」動作
規則を生成する。ここで生成される動作規則は、命令の
属性に対応して生成される動作規則である。 また、第20の計算機動作規則記述(105A)のステ
ージ遷移制御信号52toS3の値は、ステージS2で
処理されている命令の処理状況を表す52busyの値
と、S2以降のあるステージSXで処理されている命令
の処理状況を表す5Xbusyの値によって決定される
。 52busyが値1をとるということは、S2で処
理中の命令についての処理が終了できずにいることを示
す。ここで、ステージS2以降のあるSXの状況を考慮
するのは、ステージS2での処理は終了していても、遷
移先のあるステージSxでの処理が終了していないため
に、ステージS2中の命令は処理終了していても処理さ
れた命令が遷移できずにいるときは、遷移を抑止しなけ
ればならないからである。ステージSNで処理されてい
る命令の処理状況を表す5Nbusyの値を設定する動
作規則記述生成のアルゴリズムを第5図に、ステージ遷
移制御信号52toS3の値を決定する動作規則記述生
成のアルゴリズムを第7図に示す。 5Nbusyの値を設定する動作規則記述生成の手順を
第5図を用いて説明する。 5Nbusyの値を1にする第一の要因は、ステージS
Nで処理中の命令について処理が終了せず、SNで待ち
を生じるようなオーバヘッド要因が発生することである
。例えば、 S2で処理中の命令がメモリに書き込まれ
ている内容を読みだすような命令で、かつメモリからの
読みだし処理を行うステージがS2であり、また、S2
中の命令より以前に現れた命令が、S2中の命令が読み
だしを行おうとしているメモリの同じ番地に対して書き
込みを行うような命令であるとき、その書き込み処理が
終了していなければ、書き込みが終了するまでステージ
S2中の命令はステージS3へ遷移せずS2で待たなけ
ればならない。このようにステージS2中で待ちが生じ
ている間は、ステージS2中の命令の処理状況を表すビ
ジー信号52busyの値は1と設定するように動作規
則を記述する。この、同一のメモリ番地への書き込みと
読みだしが競合するオーバヘッド要因を、メモリコンフ
リクトと呼ぶ、また、パイプラインの処理の流れを乱す
オーバヘッド要因としては、メモリコンフリクトの他に
も、汎用レジスタ。 浮動小数点レジスタそれぞれへの書き込みと読みだしが
競合するオペランドコンフリクト、後続の命令のための
アドレス計算に必要なレジスタへの書き込みが終了して
いないために起こるアドレス計算レジスタコンフリクト
、演算性能オーバヘッド、分岐に関するオーバヘッド要
因など、複数のオーバヘッド要因がある。それぞれのオ
ーバヘッド要因ごとに、待ちを生ずるステージについて
のビジー信号を設定する動作規則記述を作る(301)
。 5Nbusyの値を1にする第二の要因は、ステージS
Nで処理中の命令については処理が終了しているが、ス
テージS(N+1)からS(N+x)で処理されている
命令について、その処理が終了していないか、或いは何
らかの理由で次ステージに遷移できずにいるため、ステ
ージSN中の命令も次ステージS(N+1)へ遷移でき
ずにいることである。xの値は、ステージ構成の演算実
行ピッチの値である。それぞれのステージごとに、他の
ステージの影響で待ちを生じビジー信号を設定する動作
規則記述を作る(302)。 以上に述べたように複数のオーバヘッド要因があり、そ
のオーバヘッド要因が発生したときに待ちが生ずるステ
ージが同じであると定義されていれば、同一のステージ
のビジー信号の値を設定する動作規則記述が複数生成さ
れる可能性がある。 しかし、シミュレーション実行時に複数の動作規則記述
が競合した場合には、エラーとなり、動作が保障されな
い。そこで、それらの動作規則記述を調整する必要があ
る。ここで、同一のステージ中で待ちが生ずるようなオ
ーバヘッド要因が複数存在する場合で、ひとつでもオー
バヘッド要因が発生したまま解消されずに残っていると
、そのステージ中で処理中の命令は次ステージへの遷移
はできない。すべての要因が解消されたとき、初めてス
テージ遷移が可能となる。従って、複数の動作規則記述
について、その一つでもオーバヘッド検出条件が成立し
た場合には、ビジー信号の値を1にするような動作規則
を追加する(303)。 ステージによっては、そのステージ中で待ちが起こるよ
うな、オーバヘッド要因が存在しない場合もある。その
ステージに関してはビジー信号の値を設定する動作規則
記述が生成されない。 例を第6図に示す、まず、各々のオーバヘッド要因によ
ってステージ遷移が抑止される動作規則記述を生成する
。例えば、メモリコンフリクトの発生条件と1発生時の
動作を表す動作規則の条件部は、「前命令が書き込みを
行おうとしているメモリの番地と後続の命令が読み込み
を行おうとしているメモリの番地が重なった」であり、
その条件部が成立したときに実行される動作部は、「後
続の命令が読み込みを行うステージで処理の終了を待つ
」という意味を持つ。ここで、条件部に現れている肝M
ORY−READ−5USPENDは、メモリへの書き
込み、読みだし処理において競合が起こったとき、値1
をとる信号である。このとき、後続の命令についてメモ
リからの読み込みを行うステージS2で待ちを生じさせ
るために、動作部では52busyの値を1に設定する
と記述されている(・403)。次に、52busyの
値を設定しようとする動作規則が生成されたことを登録
する。この他、メモリコンフリクト以外のオーバヘッド
要因についても同様に、それぞれ待ちの生じるステージ
名に対応したビジー信号の値を設定するような動作規則
を生成する。 ここで、他のオーバヘッド要因Xxによって同じくS2
で待ちを生じ、52busyを1にするような動作規則
記述(404)が生成されたとする。これを52bus
yに登録する。 すべてのオーバヘッド要因について動作規則が生成され
た後、それらのオーバヘッドによるビジー信号が発生し
たことによる影響で待ちの生じるステージについて、動
作規則を生成する。この例では、演算実行ピッチが2サ
イクルと指定されているとすると、54busyの値が
1である間は、52busyの値も1にするような動作
規則(405)を生成しなければならない、この動作規
則についても同様に、52busyに登録する。 その後、それぞれのビジー信号について、その値を設定
しようとする動作規則が複数個あるものを調べる。この
例では、 52busyの値を設定しようとする動作規
則が複数個生成されているので、そのいずれかの動作規
則記述の条件式が成立しているときには52busyが
値1を取るような動作規則記述を生成して追加しなけれ
ばならない。まず、メモリコンフリクトによる52bu
sy設定の動作規則記述の動作部を52busylを設
定する動作規則(406)に置き換える。次に、もう一
つのオーバヘッドによる動作規則記述についても、動作
部を52busy2を設定する動作規則(407)に置
き換える。 54busyの影響を考慮して生成された動作規則記述
の動作部を52busy3を設定する動作規則(408
)に置き換える。さらに、 52busyl、 52b
usy2.52busy3のいずれかが値1を取ってい
る間は、52busyの値を1にする動作規則記述(4
09)を追加する0以上のようにして、52busyの
値を設定する動作規則記述を作る。このとき、動作規則
(409)の条件部に、二つの動作規則(406)、
(407)、(408)の条件部をあわせて論理的OR
をとる方法も考えら軌る。しかし、これらを一つにまと
めてしまうと、シミュレーション結果トレースデータか
ら、どちらのオーバヘッド要因によってステニジS2で
待ちを生じたのかを、判定できなくなってしまう、そこ
で、その判別を可能にするために、いずれかが成り立っ
ていたら52busyを1にする動作規則(409)を
追加することにした。また、これと同時に52busy
を設定しようする動作記述として、以上の物があったこ
とを登録しておく。 ステージ遷移制御信号の値を設定する動作規則記述生成
の例を第8図に示す。前述のように、例えばステージ遷
移制御信号52toS3の値は、52busyの値と、
S2以降のあるステージSXの5Xbusyの値によっ
て設定される。 例えば、ステージS5が演算を実行するステージであり
、演算実行ピッチが2サイクルと指定されているような
パイプライン計算機構成においては、S5中の命令が命
令実行に4サイクル要する命令であるとすると、その直
後の命令はステージS3中で85中の命令実行の終了を
待ち、終了してS6に遷移するのと同時に、 S3中の
命令が84へ遷移する。つまり、ステージS5中の命令
が実行されている間は、53toS4の値をOにしてお
かなければならない、従って、 53toS4の値を1
にするためには、まずステージS3中の命令が実行終了
していること(S3busyがOである)の他に、 5
5busyの値がOであるか否かを判定する必要がある
(601)。これが、ステージS5が演算を実行するス
テージであり、PR算実行ピッチが1サイクルと指定さ
れている場合には、 53toS4の値は、53bus
yと54busyの値で決まる。 55busyの値が影響するのは、54toS5の値を
設定するときである。(602)。 さらに、ステージS5が演算を実行するステージ、演算
実行ピッチが2サイクル、かつステージS4中で待ちを
生じさせるオーバヘッド要因があり、それにより54b
usyの値を設定するような動作規則が生成されている
ときは、53toS4の値を1にするためには、まずス
テージS3中の命令が実行終了していること(S3bu
syがOである)、ステージS4中の命令が実行終了し
ていること(S4busyがOである)、S5中の命令
が実行終了していること(S5busyの値がOである
)を判定する(603)。 また、ステージS5が演算を実行するステージ、演算実
行ピッチが2サイクル、かつステージS4にキューが3
ステ一ジ分ある場合には、それぞれキューは540.
S41. S42と名付けられるが、S5中の命令が実
行中であっても、S40. S41. S42のすべて
のキューに遷移待ちの命令が入っていなければ、S3か
ら54への遷移を行うことができる。従って、53to
S4の値を1にするためには、まずステージS3中の命
令が実行終了していて(S3busyがOである)、か
つ、ステージS4のすべてのキューステージに遷移待ち
の命令が入っていない(S42中に命令がない)か、或
いは、ステージS4のすべてのキューステージに遷移待
ちの命令が入っている(S42中に命令がある)が、S
5中の命令は実行終了していること(S5busyがO
である)を判定する(604)。 ステージ遷移制御信号設定規則生成の手順を、S2から
S3へのステージ遷移制御を例にして、第7図を用いて
説明する。 演算ピッチ数をNとする(501)、基本的には、rS
2busyが値Oをとり、かつ、S(2+N)busy
が値0をとるとき、ステージS2中の命令について、次
のステージS3への遷移が可能になるので、 S2t。 S3の値を1にする」である(502)、L、かじ、次
のステージS3からS(2+N)の間のステージsxで
待ちを生じさせるようなオーバヘッド要因が存在すると
きには1条件にrSXbusyが値Oをとること」が追
加される(503)、また、S3がキューを備えるとき
は、条件部からrS3busyが値0をとること」が削
除され、rすべでのキューステージに遷移待ちの命令が
入っていないか、あるいは、入っている場合には53b
usyが値Oをとり、かつ、54busyが値Oをとる
こと」が追加される(504)。 以上の手順に従って、ステージ遷移制御信号の値を設定
する動作規則記述を生成する。 以上のように、計算機動作規則記述部生成プログラムは
、ユーザが入力したステージ構成指定と命令属性テーブ
ルに対して、ステージ遷移制御信号名抽出ルーチンとス
テージ遷移制御信号M設定動作規則記述競合調整ルーチ
ンを用いて、シミュレーション実行用の計算機動作規則
記述群を生成する。 さらに、パイプラインの段数を変更したり、性能の向上
を考慮して計算機モデルの記述を変更するときには、命
令属性テーブル中のGPR,FPR,MEMORYの書
き込み、読みだしステージ、命令実行に要するサイクル
数などを変更した上で、再度計算機モデル記述生成プロ
グラムによってシミュレーシコン実行用計算機動作規則
記述を生成しなおせばよい。また、新たな高速化方式を
導入するために動作規則記述を追加するときのアルゴリ
ズムを第9図に示す。 新たな高速化方式を導入するために動作規則記述を追加
するときには、ステージ遷移制御信号抽出ルーチンが抽
出した、ステージ遷移制御信号。 ビジー信号の値を設定するように記述した動作規則を動
作規則記述群に追加する。追加によって、同一の信号を
設定しようとする動作規則記述が競合するときには、上
記手順と同様に、ステージ遷移制御信号値設定動作規則
記述競合調整ルーチンが、動作規則記述を生成しなおす
。この時、新しい高速化方式と入れ替わる動作規則記述
を動作規則記述群から削除する。 以上の様にして生成された動作規則記述を入力して、パ
イプライン計算機の命令処理の遷移をシミュレーション
実行するときに行われる処理の流れを述べる。パイプラ
イン計算機の処理の流れをシミュレーションするので、
一つの時刻でもそれぞれのステージについて並列にその
ステージ中での処理の進行を行う。それぞれのステージ
中にある命令それぞれの属性を命令属性テーブルから参
照して、伸動される動作規則記述を選択し実行して、そ
の結果としてそのステージから次ステージへの遷移を抑
止するステージ遷移制御信号の値がOの間は次ステージ
への遷移を抑止し、値が1になったとき次ステージへの
遷移を実行する。つまり、各ステージごと命令が遷移し
てきたときに、その命令の属性を命令属性テーブルから
参照して命令対応に生成された動作規則記述を選択し、
その動作規則記述を実行してステージ遷移制御信号の値
を決め、次にステージ対応に生成された動作規則記述を
実行してステージ遷移を行うという手順になる。 例えば、命令ごとの演算実行サイクルによって演算ステ
ージから次ステージへの遷移をシミュレーションする部
分について述べる。ある時刻で演算ステージ遷移中に命
令が入ったとき、その命令が演算実行に何すイクル要す
るかを命令属性テーブルから引く。3サイクルであれば
、動作規則記述群中から3サイクル要する命令に対応し
て生成された「2サイクル分だけ演算実行ステージES
中にいて、3サイクル目で次ステージへ遷移することが
できることを表す信号EStoNEXTを1にする」動
作規則を選び、4サイクルであれば4サイクル要する命
令に対応して生成されたr33サイクルだけ演算実行ス
テージES中にいて、4サイクル目で次ステージへ遷移
することができることを表す信号EStoNEXTを1
にする」動作規則規則を選ぶ。 選んだ動作規則を実行した結果、適当なタイミングでそ
の命令を次のステージへ遷移することができることを表
すステージ遷移制御信号EStoNEXTがlになる。 次に、EStoNEXTの値が変わったことによってス
テージESに対応して生成されたrEstoNEXTが
値1をとっている間は、ESステージからNEXTステ
ージへの遷移を実行する」動作規則が開動されES中の
命令の遷移が実行される。 同様にして、各ステージについて命令の処理の遷移を行
ってパイプラインの処理の流れをシミュレーションする
。
した計算機指定記述を入力して、シミュレーション実行
用の計算機動作規則記述群を生成する。パイプラインを
構成するステージ名の指定から、パイプラインを構成す
る各ステージで処理中の命令が次ステージへ遷移が可能
な状態か否かを表すステージ遷移制御信号、次ステージ
への遷移が可能な条件を満たした時に該ステージ遷移制
御信号の値を設定する計算機動作規則記述、該ステージ
遷移制御信号の値が特定の値をとった時にステージ遷移
処理を実行する計算機動作規則記述を生成する。また、
計算機上で処理される命令の属性の指定から、パイプラ
インの処理の流れを乱すオーバヘッド要因発生の発生条
件判定と発生時の動作を表す動作規則記述を生成する。 例えば。 命令には演算実行に1サイクル要する命令、3サイクル
要する命令、5サイクル要する命令の三種類があるなら
ば、r演算処理ステージに命令が入って次のタイミング
で次ステージにその命令を遷移する」ことを表す動作規
則記述、「演算処理ステージに命令が入って3サイクル
後のタイミングで次ステージにその命令を遷移する」こ
とを表す動作規則記述、「演算処理ステージに命令が入
って5サイクル後のタイミングで次ステージにその命令
を遷移する」ことを表す動作規則記述の三種類の動作規
則記述を生成する。また、例えば、ステージSNで汎用
レジスタからの読み込み処理を行う命令があると指定さ
れていれば、「シミュレーションで実行されている命令
列の中で、前の命令が書き込みを行う汎用レジスタと同
一のレジスタに対して後続の命令が書き込みを行うよう
な組合せの命令列が入ったか否かを判定し、そのような
命令列が入ったと判定された場合には、SNステージ中
で前の命令の書き込み処理が終了するのを待つ」ことを
表す動作規則記述を生成する。 ステージ遷移制御信号名抽出ルーチンは、計算機動作規
則記述群を生成する過程で、各ステージごとに備えられ
るそのステージで処理中の命令が次ステージへ遷移が可
能な状態か否かを表すステージ遷移制御信号名と、ステ
ージ中の命令処理状況を表すビジー信号名、及び、それ
らの信号の値を設定しようとする動作規則記述を抽出す
る。例えば、SNステージで処理中の命令がS(N+1
)ステージへ遷移が可能な状態か否かを表すステージ遷
移制御信号は、5NtoS(N+1)、SNステージの
命令処理状況を表すビジー信号は5Nbusy、と名付
けられている。また、それらの信号の値を設定しようと
する動作規則記述とは、その動作部中で5NtoS(N
+1)。 5Nbusyに対して何らかの値を設定することが記述
されている動作規則をさす。抽出されたステージ遷移制
御信号名と動作規則記述群は、ステージ遷移制御信号値
設定動作規則記述競合調整ルーチン中で、その信号の値
を設定する動作規則が競合してエラーを起こすことがな
いよう動作を保障さ士るために用いられる。また、ユー
ザが新たな高鎧化方式を追加する際に、このステージ遷
移制御a号の値を制御するような動作規則を記述するた
ダに用いられる。 ステージ遷移制御信号値設定動作規則記述競ぞ調整ルー
チンは、ステージ遷移制御信号名抽出ノ1−チンが抽出
した動作規則記述について、同−C処理遷移制御信号の
値を設定するような動作現員1記述が複数発生した場合
には、動作規則記述間C優先順位や並列性を考慮して、
不必要な動作現員1の削除し、遷移の条件を適切な形に
変えてまと鉱動作規則を生成しなおす。また、ユーザが
新たな高速化方式を導入して評価する際に追加記述した
動作規則記述と、計算機動作規則記述群生酸プログラム
が生成したシミュレーション実行用の計算機動作規則記
述群との開で、同一の処理遷移制御信号の値を設定する
ような動作規則が複数発生した場合にも、動作を保障す
るために同様の処理を行う。 (実施例] 本発明の詳細な説明に先立ち、まず本発明による一実施
例の計算機シミュレーション方法の全体システムの構成
を第1図を用いて説明する。第1図において、ユーザが
計算機指定記述(101)を入力し、計算機構成指定記
述の内容から計算機動作規則記述群生酸プログラム(1
02)がシミュレーション実行用の計算機動作規則記述
群(t05)を生成する。生成の過程でステージ遷移制
御信号名抽出ルーチン(104)がステージ遷移を制御
する信号名(109)を抽出する。計算機動作規則記述
群(105)を入力として、シミュレータプログラム(
106)がシミュレーションを実行して、パイプライン
計算機の各ステージでの命令処理の遷移を示すステージ
フローグラフ(107)と、パイプライン計算機のシミ
ュレーション実行結果トレース(108)を出力する。 本発明の第一の特徴は、ユーザが入力した計算機指定記
述(101)をもとに、計算機モデル記述生成プログラ
ム(102)がシミュレーション実行用計算機モデル記
述(105)を生成することにある。計算機指定記述(
101)は、パイプライン計算機のステージ構成を指定
する計算機構成指定記述(110)とパイプライン計算
機で処理される各命令の属性を指定する命令属性テーブ
ル(111)からなる、計算機構成指定記述(110)
では、パイプラインを構成するステージの数と各々の名
前、命令のデコード、アドレス計算、オペランド読みだ
し、演算の実行処理が行われるステージ名、キューを有
するステージについてはその段数を指定する。命令属性
テーブル(111)では、処理される各命令について演
算に要するサイクル数とレジスタ、メモリへの書き込み
、読みだし処理が行われるステージ名と命令の処理が先
行的に行われる場合のレジスタ、メモリへの書き込み、
読みだし処理が行われるステージ名を指定する。ユーザ
は、計算機構成指定記述(110)において、ステージ
の段数や各ステージで行われる処理の指定を変更して計
算機モデル記述生成プログラム(102)によって計算
機規則記述群を生成すれば、パイプライン構成を自由に
変えることができる。また、命令属性テーブル(111
)において、例えば命令の演算実行に要するサイクル数
を変更して計算機モデル記述生成プログラム(102)
によって計算機規則記述群を生成すれば、パイプライン
計算機の演算処理性能を変えることができる。レジスタ
、メモリへの書き込み、読みだし処理が行われるステー
ジ名を変更すればパイプラインの流れを乱すオーバヘッ
ド要因が起こった場合に命令の待ちが生じるステージと
タイミングが変わり、また、先行的に行われる命令処理
のレジスタ、メモリへの書き込み、読みだし処理が行わ
れるステージ名を変更すれば、パイプラインの流れを乱
すオーバヘッド要因が起こった場合でもバイパスを介し
て書き込み、読みだし処理を行うことができるバイパス
機能を持つパイプライン計算機とそのバイパスするタイ
ミングを表現することができる。以上のように計算機構
成指定記述(110)を変更して計算機モデル記述生成
プログラム(102)によって計算機規則記述群を生成
すれば、パイプライン計算機の構成や性能を自由に変え
ることができるので1幅広くパイプライン計算機の方式
の評価を行うことが可能である。 本発明の第二の特徴は、シミュレーション実行用計算機
モデル記述(105)を生成する計算機モデル記述生成
プログラム(102)中に、ステージ遷移制御信号値設
定動作規則記述競合調整ルーチン(103)とステージ
遷移制御信号名抽出ルーチン(104)を備えることに
ある。ここで生成されるシミュレーション実行用の計算
機動作規則記述(105)中では、次の処理ステージへ
の命令の遷移が可能な状態か否か表すステージ遷移制御
信号と、ステージ中の命令処理状況を表すビジー信号の
値に従ってステージ遷移の制御を行うように記述してい
る。ステージ遷移制御信号名抽出ルーチン(104)が
、計算機動作記述生成の過程で、ステージ遷移処理上キ
ーワードとなる、ステージ遷移制御信号名とビジー信号
名、および、それらの信号の値を設定する動作規則を抽
出する。 ステージ中の命令処理状況を表すビジー信号の値を設定
する動作規則は、オーバヘッド要因ごとに記述され、ビ
ジー信号はオーバヘッド要因が発生した時に命令処理に
待ちが生じて処理終了できなくなっているステージ、ま
たその影響でステージ中の命令が遷移できなくなってい
る他のステージに対して、値を1とする。同一のステー
ジ遷移制御信号、ビジー信号の値を設定する複数の動作
規則記述が競合するときには、不必要な動作規則は削除
、または、調整を行って生成し直さなければならない。 ステージ遷移制御信号値設定動作規則記述競合調整ルー
チン(103)が、抽出された信号名と動作規則をもと
に、その処理を行う。 また、新たに高速化方式の導入のために追加記述した動
作記述と、計算機動作規則記述群生酸プログラムが生成
したシミュレーション実行用の計算機動作規則記述群と
の間で、同一の処理遷移制御信号の値を設定するような
動作規則が複数発生した場合にも、ステージ遷移制御信
号名抽出ルーチン(104)が抽出した信号名と動作規
則をもとに、ステージ遷移制御信号値設定動作規則記述
競合調整ルーチン(103)が、動作を保障するために
同様の処理を行う。これによって、新たな動作記述の追
加、不必要な動作記述の削除を自動的に行い、ステージ
の構成や機能を容易に変更して評価を行うことが可能に
ある。一つのステージ遷移制御信号の値を設定する動作
規則が複数存在するとき、その動作が保障される。 次に、本発明による一実施例の計算機シミュレーション
方法を詳細に説明する。 まず、計算機指定記述(101)の入力例と。 計算機指定記述(101)の内容から計算機モデル記述
生成プログラム(102)が生成するシミュレーション
実行用計算機モデル記述(105)の出力例を、第2図
に示す。計算機構成指定記述(110)で指定されてい
る項目は順に、ステージの段数、各ステージの名前とそ
の並び順、命令のデコード処理を行うステージ名、アド
レス変換処理を行うステージ名、オペランド読み出し処
理を行うステージ名、演算実行処理を行うステージ名の
指定、演算ピッチサイクル数、キューを有するステージ
名とその段数といった計算機構成指定(110)である
、この例では、「パイプラインを構成するステージ数は
7段、それぞれ順に5O2SL、S2.、、、、 S6
と名前を付ける。デコードを行うステージはSO,アド
レス計算を行うステージはsi、、、、、ステージS1
には、6段分のキューがある」ようなパイプライン計算
機の構成を示している。命令の属性を記述するテーブル
は、パイプラインの構成や性能に依存しない命令の属性
を記述する基本命令属性テーブルと、パイプラインの構
成や性能に依存して変わる命令の属性を記述する命令属
性テーブルの二つに分けて記述する。パイプラインの構
成や性能に依存しない命令の属性を記述する基本命令属
性テーブルでは、命令の長さ、オペランドの長さ、汎用
レジスタを書き替える場合にはどのレジスタを書き替え
るのか、浮動小数点レジスタを書き替える場合にはどの
レジスタを書き替えるのか、汎用レジスタを読みだす場
合にはどのレジスタを読みだすのか、浮動小数点レジス
タを読みだす場合にはどのレジスタを読みだすのか、を
記述する。パイプラインの構成や性能に依存して変わる
命令の属性を記述する計算構成依存命令属性テーブルで
は(IIIA)で指定されている項目は、命令の属性と
して命令ごとに演算実行に要するサイクル数、デフード
ピッチ数、汎用レジスタ、浮動小数点レジスタ、メモリ
への書き込み処理を行うステージ名、読み出し処理を行
うステージ名、先行演算を行う場合の汎用レジスタ、浮
動小数点レジスタ、メモリへの書き込み処理を行うステ
ージ名、読み出し処理を行うステージ名である。パイプ
ラインの構成や機能を変更して評価する場合には、上記
の指定内容を変えれば良い0例えば、演算が実行するス
テージより、デコードを行うステージの方が後である等
の、論理的な誤りが起こらない範囲内で、自由に指定を
変えることが可能である。 計算機構成指定(IIOA)と計算機構成依存命令属性
テーブル(第3図の111A)を入力した時、生成され
る計算機動作規則の一部を(105A)に示す。ここで
は、デコードを行うステージに分岐命令が投入された時
の動作を表す動作規則記述と、ステージS2からステー
ジS3への命令処理の遷移を表す動作規則記述を例にし
て説明する。 分岐命令については、「デコードを行うステージに投入
された命令が、分岐条件を判定して後続の命令列を決定
するような分岐命令のときは、その分岐命令における判
定が終了して分岐先を決定した後、分岐先の命令をデコ
ードを行うステージに投入する」動作記述群を生成する
。デコードを行うステージをSOとする。ここでは二つ
の動作規則記述に分けて、「デコードステージSOに投
入された命令が分岐命令のとき、その分岐命令における
判定処理を実行する意味を持つ信号BRANCI(に値
1を設定する」ことを表す動作規則記述5etBRAN
CHと、「信号BRANCHに値1が設定されていて、
かつ、分岐判定が終了していない間(Branch−j
udgeが値1をとっている間)は1分岐先の命令をデ
コードステージSOに投入しても良いか否かを表す信号
tO3Oに値Oを代入してデコードステージへの命令の
投入を抑止する」ことを表す動作規則記述toso−s
uspend−Branchを生成する。ここでは、分
岐の動作を表す動作規則記述を生成するための動作規則
の「型」を動作規則記述生成プログラムが持っていて、
その「型」中のデコードを行うステージを表す変数にS
Oを代入して動作規則を生成している。 但し、ここで生成される動作規則記述中で表れる信号B
ranch−judgeの値は、またIIIの動作規則
中で設定されている。 ステージS2からステージS3への命令処理のステージ
遷移処理は、ステージ遷移制御信号の値によってステー
ジ遷移を行うことを表す、動作規則名5etS2toS
3の記述に従う。条件部に現れる52toS3は、ステ
ージS2で処理中の命令が次ステージS3への遷移が可
能な状態か否かを表す、ステージ遷移制御信号である。 ステージSXから次ステージS (X+1)への遷移を
制御するステージ遷移制御信号の名前は、5XtoS(
X+1)と表すものとする。52toS3の値が1の時
はステージS2からステージS3への遷移が可能な状態
であることを示しており、動作規則5etS2toS3
は、rS2toS3の値が1の時は、即ステージS2で
処理されている命令番号をステージS3に移し、ステー
ジS2中の命令番号をリセットする動作を実行する」と
いう意味を持つ。 動作規則記述生成プログラム(102)が計算機指定記
述(101)を参照しながら動作規則記述(105)を
生成する処理の部分について、その手順を第41ii1
に示す。 始めに、計算機指定記述(101)を読み込んで、計算
機指定内容テーブル(220)を生成する(221)、
この計算機指定内容テーブル(220)を参照して以降
の動作規則記述を生成していく、まず、ステージ名SN
、キューの指定Qから、各ステージに対応するステージ
遷移制御信号、ビジー信号、ステージ遷移制御動作規則
記述を生成する(222)。ここでは、ステージSXか
ら次のステージS(X+1)へのステージ遷移制御信号
名を5XtoS(X+1)、 Xデージ5X(7)ビジ
−信号名を5Xbusyと名付けて各々のステージにつ
いて信号を生成する。またステージSXから次のステー
ジS(X+1)へのステージ遷移制御動作規則は、「ス
テージSXと次のステージS(X+1)中の命令につい
てそれぞれの処理が終了したとき、ステージSXから次
のステージへのステージ遷移制御信号5XtoS(X+
1)に値1を代入する」という型に対して各々のステー
ジ名を代入して動作規則を生成する。これらは、各ステ
ージに対応して生成される動作規則記述である。 次に、デコード処理を表す動作規則を、デコード処理を
行うステージDS、命令ごとのデコードピッチ数DPか
ら生成する(223)。例えば。 計算機構成依存命令属性テーブル中にデコードピッチが
1サイクルの命令と2サイクルの命令があれば、後続の
命令が次のサイクルでデコードステージに入るような動
作規則と2サイクル後にデコードステージに入るような
動作規則とを生成する。 ここでは、rデコードステージSの処理が終了してから
、Xサイクル後に次の命令をSへ投入することができる
ことを表すステージ遷移制御信号の値を1にする」とい
うあらかじめ用意された型に対して、後続の命令をデコ
ードステージに入れる動作の実行タイミングXと、デコ
ードステージに値を代入する。つまり、「デコードステ
ージDSの処理が終了してから、次のサイクルで次の命
令をデコードステージへ投入することができることを表
す信号toO3を1にする」動作規則と、「デコードス
テージDSの処理が終了してから、1サイクル後に次の
命令をデコードステージへ投入することができることを
表す信号toDSを1にする」動作規則を生成する。こ
れは、処理される命令に対応して生成される動作規則で
ある。 次に、演算実行処理を表す動作規則を、演算実行処理を
行うステージES、演算実行ピッチ数○P、命令ごとの
演算実行サイクル数OCから生成する(224)、例え
ば、演算ピッチ○Pが1サイクル、演算実行サイクル数
oCとして2サイクル要する命令と3サイクル要する命
令があれば、「演算実行ステージS中の命令は、(oc
−op+1)サイクル分S中にいて、(oc−op)サ
イクル目でSから次ステージへのステージ遷移制御信号
を1にする」という型に対して、演算実行サイクル数O
Cと、演算実行処理を行うステージ名ES、演算ピッチ
OPの値を代入して、2サイクル要する命令に対しては
「演算実行ステージES中Φ命令は、2サイクル分だけ
ES中にいて。 3サイクル目でESから次ステージへのステージ遷移制
御信号EStoNEXTを1にする」動作規則と、3サ
イクル要する命令に対しては「演算実行ステージES中
の命令は、3サイクル分だけES中にいて、4サイクル
目でESから次ステージへのステージ遷移制御信号ES
toNEXTを1にする」動作規則を生成する。また、
演算ピッチOPが2サイクル。 演算実行サイクル数として2サイクル要する命令と3サ
イクル要する命令があれば、このときは演算ピッチOP
が2サイクルであるから、一つの命令が演算実行ステー
ジESに命令がいる時間と次ステージに命令がいる時間
という2ステ一ジ分の処理時間の和が、演算実行サイク
ル数に相当する。 この場合も、前述の型に値を代入して、「演算実行ステ
ージES中の命令は、1サイク、ル分だけES中にいて
、2サイクル目でESから次ステージへのステージ遷移
制御信号EStoNEXTを1にする」動作規則と、「
演算実行ステージES中の命令は、2サイクル分だけE
S中にいて、3サイクル目でESから次ステージへのス
テージ遷移制御信号ESt。 NEXTを1にする」動作規則を生成する。(OC−1
)サイクル分ステージESに、1サイクル分ESの次ス
テージにいることになる。これも、処理される命令に対
応して生成される動作規則である。 次に、パイプラインの流れを乱すオーバヘッド要因別に
その動作規則を生成する(225)。例えば、パイプラ
イン中を多重に流れている複数の命令が、同一の汎用レ
ジスタ、または、浮動小数点レジスタ、メモリを使用し
ようとした時の待ちを生じさせる動作規則や、分岐命令
が投入された時の分岐判定終了の待ちを生じさせる動作
規則などである。ここでは、同一の汎用レジスタの使用
の競合が起こったときの動作規則の生成について説明す
る。 まず、汎用レジスタを書き替える命令があるとき、「デ
コードステージに投入された命令が汎用レジスタを書き
替える命令であるとき、それを各々のレジスタに対応し
て持っている書替え命令登録リストに登録する」動作規
則を生成する。これは、基本命令属性テーブルで指定さ
れている、命令ごとのどの汎用レジスタを書き替えるか
の指定を参照してその内容に合わせて動作規則を生成す
る。ある命令が汎用レジスタを書き替える場合には、そ
の命令が書き替えるすべての汎用レジスタについて書替
え命令登録リストに命令番号を登録しなければならない
。ここでは、「デコードステージSに投入されている命
令が、書き替えを行う汎用レジスタがR1,、、、、R
Xであるとき、その命令番号をR1,、、、、RX用の
書替え命令登録リストに登録する」という型を用意して
いる0例えば、基本命令属性テーブル中で、汎用レジス
タORのみを書き替えると指定されている命令■1のた
めには、「デコードステージSに命令工1が投入された
とき、Ilの命令番号を汎用レジスタOR用の書替え命
令登録リストに登録する」動作規則を生成する。汎用レ
ジスタ番号GRと、(GR+1)番目を書き替える命令
■2のためには、「デコードステージSに命令I2が投
入されたとき、I2の命令番号を汎用レジスタORと(
GR+1)用の書替え命令登録リストに登録する」動作
規則を生成する。これらは、命令の属性に対応して生成
される動作規則である。 次に「汎用レジスタを書き替える命令Aが書き替えが終
了しな時(命令Aが、命令Aの汎用レジスタ書き込みス
テージから次のステージに遷移することができる条件を
満たしたとき)に、登録されでいた命令Aを書替え命令
登録リストから削除する」動作規則を生成する。基本命
令属性テーブル中の命令ごとの書き替える汎用レジスタ
の組の指定と、計算#!に構成依存命令属性テーブル中
の汎用レジスタ書き込みステージ名を参照してその内容
に合わせて動作規則を生成する。ここでは、「汎用レジ
スタ書き込みステージSである命令がステージSでの処
理が終了していて、命令が書き替える汎用レジスタがR
1,、、、、RXであるとき、その命令番号をR1,、
、、、RX用の書替え命令登録リストから削除する」と
いう型を用意している。例えば、汎用レジスタ書き込み
ステージが85で、汎用レジスタ番号GRのみを書き替
えると指定されている命令11のためには、「ステージ
S5で命令■1の処理が終了したとき、I1の命令番号
をOR用の書替え命令登録リストから削除する」動作規
則を生成する。また、汎用レジスタ書き込みステージが
85で、汎用レジスタ番号GRと、(GR+1)番目を
書き替える命令■2のためには、「ステージS5で命令
I2の処理が終了したとき、I2の命令番号をGRl(
GR+1)用の書替え命令登録リストから削除する」動
作規則を生成する。この動作規則記述は。 命令の属性に対応して生成される動作規則である。 次に「命令Aが汎用レジスタを読みだす命令で、その読
みだそうとするレジスタを書き替えようとする命令Bが
命令Aより以前に投入されていなければ、(汎用レジス
タの読みだしが可能なのでその処理を終了して次のステ
ージへ遷移することができるから)命令Aを汎用レジス
タ読み込みステージGRから次のステージへのステージ
遷移制御信号の値を1にする」動作規則を生成する。こ
こでは、「汎用レジスタ読みだしステージSXIである
命令IがステージSXIでの処理が終了していて、命令
工が汎用レジスタR1,、、、、RXを読みだす命令の
とき、R1,、、、、RX用書替え命令登録リスト中に
命令Aより以前に投入された命令の番号が残っていなけ
れば、命令Aの汎用レジスタ読み込みステージSX2か
ら次のステージへのステージ遷移制御信号の値を1にす
る」という型を用意している0例えば、汎用レジスタ読
みだしステージが84.汎用レジスタ番号ORのみを読
みだす命令11のためには、「ステージS4での命令1
1の処理が終了していて、OR用書替え命令登録リスト
中に命令工1より以前に投入された命令の番号が残って
いなければ、ステージS4から次のステージへのステー
ジ遷移制御信号54toNEXTの値を1にする」動作
規則を生成する。 また、汎用レジスタ読みだしステージが84.汎用レジ
スタ番号ORと、(GR+1)1%目を読みだす命令の
ためには、rステージS4での命令11の処理が終了し
ていて、GRと、(GR+1)用書替え命令登録リスト
中に命令11より以前に投入された命令の番号が残って
いなければ、ステージS4から次のステージへのステー
ジ遷移制御信号54toNEXTの値を1にする」動作
規則を生成する。ここで生成される動作規則は、命令の
属性に対応して生成される動作規則である。 また、第20の計算機動作規則記述(105A)のステ
ージ遷移制御信号52toS3の値は、ステージS2で
処理されている命令の処理状況を表す52busyの値
と、S2以降のあるステージSXで処理されている命令
の処理状況を表す5Xbusyの値によって決定される
。 52busyが値1をとるということは、S2で処
理中の命令についての処理が終了できずにいることを示
す。ここで、ステージS2以降のあるSXの状況を考慮
するのは、ステージS2での処理は終了していても、遷
移先のあるステージSxでの処理が終了していないため
に、ステージS2中の命令は処理終了していても処理さ
れた命令が遷移できずにいるときは、遷移を抑止しなけ
ればならないからである。ステージSNで処理されてい
る命令の処理状況を表す5Nbusyの値を設定する動
作規則記述生成のアルゴリズムを第5図に、ステージ遷
移制御信号52toS3の値を決定する動作規則記述生
成のアルゴリズムを第7図に示す。 5Nbusyの値を設定する動作規則記述生成の手順を
第5図を用いて説明する。 5Nbusyの値を1にする第一の要因は、ステージS
Nで処理中の命令について処理が終了せず、SNで待ち
を生じるようなオーバヘッド要因が発生することである
。例えば、 S2で処理中の命令がメモリに書き込まれ
ている内容を読みだすような命令で、かつメモリからの
読みだし処理を行うステージがS2であり、また、S2
中の命令より以前に現れた命令が、S2中の命令が読み
だしを行おうとしているメモリの同じ番地に対して書き
込みを行うような命令であるとき、その書き込み処理が
終了していなければ、書き込みが終了するまでステージ
S2中の命令はステージS3へ遷移せずS2で待たなけ
ればならない。このようにステージS2中で待ちが生じ
ている間は、ステージS2中の命令の処理状況を表すビ
ジー信号52busyの値は1と設定するように動作規
則を記述する。この、同一のメモリ番地への書き込みと
読みだしが競合するオーバヘッド要因を、メモリコンフ
リクトと呼ぶ、また、パイプラインの処理の流れを乱す
オーバヘッド要因としては、メモリコンフリクトの他に
も、汎用レジスタ。 浮動小数点レジスタそれぞれへの書き込みと読みだしが
競合するオペランドコンフリクト、後続の命令のための
アドレス計算に必要なレジスタへの書き込みが終了して
いないために起こるアドレス計算レジスタコンフリクト
、演算性能オーバヘッド、分岐に関するオーバヘッド要
因など、複数のオーバヘッド要因がある。それぞれのオ
ーバヘッド要因ごとに、待ちを生ずるステージについて
のビジー信号を設定する動作規則記述を作る(301)
。 5Nbusyの値を1にする第二の要因は、ステージS
Nで処理中の命令については処理が終了しているが、ス
テージS(N+1)からS(N+x)で処理されている
命令について、その処理が終了していないか、或いは何
らかの理由で次ステージに遷移できずにいるため、ステ
ージSN中の命令も次ステージS(N+1)へ遷移でき
ずにいることである。xの値は、ステージ構成の演算実
行ピッチの値である。それぞれのステージごとに、他の
ステージの影響で待ちを生じビジー信号を設定する動作
規則記述を作る(302)。 以上に述べたように複数のオーバヘッド要因があり、そ
のオーバヘッド要因が発生したときに待ちが生ずるステ
ージが同じであると定義されていれば、同一のステージ
のビジー信号の値を設定する動作規則記述が複数生成さ
れる可能性がある。 しかし、シミュレーション実行時に複数の動作規則記述
が競合した場合には、エラーとなり、動作が保障されな
い。そこで、それらの動作規則記述を調整する必要があ
る。ここで、同一のステージ中で待ちが生ずるようなオ
ーバヘッド要因が複数存在する場合で、ひとつでもオー
バヘッド要因が発生したまま解消されずに残っていると
、そのステージ中で処理中の命令は次ステージへの遷移
はできない。すべての要因が解消されたとき、初めてス
テージ遷移が可能となる。従って、複数の動作規則記述
について、その一つでもオーバヘッド検出条件が成立し
た場合には、ビジー信号の値を1にするような動作規則
を追加する(303)。 ステージによっては、そのステージ中で待ちが起こるよ
うな、オーバヘッド要因が存在しない場合もある。その
ステージに関してはビジー信号の値を設定する動作規則
記述が生成されない。 例を第6図に示す、まず、各々のオーバヘッド要因によ
ってステージ遷移が抑止される動作規則記述を生成する
。例えば、メモリコンフリクトの発生条件と1発生時の
動作を表す動作規則の条件部は、「前命令が書き込みを
行おうとしているメモリの番地と後続の命令が読み込み
を行おうとしているメモリの番地が重なった」であり、
その条件部が成立したときに実行される動作部は、「後
続の命令が読み込みを行うステージで処理の終了を待つ
」という意味を持つ。ここで、条件部に現れている肝M
ORY−READ−5USPENDは、メモリへの書き
込み、読みだし処理において競合が起こったとき、値1
をとる信号である。このとき、後続の命令についてメモ
リからの読み込みを行うステージS2で待ちを生じさせ
るために、動作部では52busyの値を1に設定する
と記述されている(・403)。次に、52busyの
値を設定しようとする動作規則が生成されたことを登録
する。この他、メモリコンフリクト以外のオーバヘッド
要因についても同様に、それぞれ待ちの生じるステージ
名に対応したビジー信号の値を設定するような動作規則
を生成する。 ここで、他のオーバヘッド要因Xxによって同じくS2
で待ちを生じ、52busyを1にするような動作規則
記述(404)が生成されたとする。これを52bus
yに登録する。 すべてのオーバヘッド要因について動作規則が生成され
た後、それらのオーバヘッドによるビジー信号が発生し
たことによる影響で待ちの生じるステージについて、動
作規則を生成する。この例では、演算実行ピッチが2サ
イクルと指定されているとすると、54busyの値が
1である間は、52busyの値も1にするような動作
規則(405)を生成しなければならない、この動作規
則についても同様に、52busyに登録する。 その後、それぞれのビジー信号について、その値を設定
しようとする動作規則が複数個あるものを調べる。この
例では、 52busyの値を設定しようとする動作規
則が複数個生成されているので、そのいずれかの動作規
則記述の条件式が成立しているときには52busyが
値1を取るような動作規則記述を生成して追加しなけれ
ばならない。まず、メモリコンフリクトによる52bu
sy設定の動作規則記述の動作部を52busylを設
定する動作規則(406)に置き換える。次に、もう一
つのオーバヘッドによる動作規則記述についても、動作
部を52busy2を設定する動作規則(407)に置
き換える。 54busyの影響を考慮して生成された動作規則記述
の動作部を52busy3を設定する動作規則(408
)に置き換える。さらに、 52busyl、 52b
usy2.52busy3のいずれかが値1を取ってい
る間は、52busyの値を1にする動作規則記述(4
09)を追加する0以上のようにして、52busyの
値を設定する動作規則記述を作る。このとき、動作規則
(409)の条件部に、二つの動作規則(406)、
(407)、(408)の条件部をあわせて論理的OR
をとる方法も考えら軌る。しかし、これらを一つにまと
めてしまうと、シミュレーション結果トレースデータか
ら、どちらのオーバヘッド要因によってステニジS2で
待ちを生じたのかを、判定できなくなってしまう、そこ
で、その判別を可能にするために、いずれかが成り立っ
ていたら52busyを1にする動作規則(409)を
追加することにした。また、これと同時に52busy
を設定しようする動作記述として、以上の物があったこ
とを登録しておく。 ステージ遷移制御信号の値を設定する動作規則記述生成
の例を第8図に示す。前述のように、例えばステージ遷
移制御信号52toS3の値は、52busyの値と、
S2以降のあるステージSXの5Xbusyの値によっ
て設定される。 例えば、ステージS5が演算を実行するステージであり
、演算実行ピッチが2サイクルと指定されているような
パイプライン計算機構成においては、S5中の命令が命
令実行に4サイクル要する命令であるとすると、その直
後の命令はステージS3中で85中の命令実行の終了を
待ち、終了してS6に遷移するのと同時に、 S3中の
命令が84へ遷移する。つまり、ステージS5中の命令
が実行されている間は、53toS4の値をOにしてお
かなければならない、従って、 53toS4の値を1
にするためには、まずステージS3中の命令が実行終了
していること(S3busyがOである)の他に、 5
5busyの値がOであるか否かを判定する必要がある
(601)。これが、ステージS5が演算を実行するス
テージであり、PR算実行ピッチが1サイクルと指定さ
れている場合には、 53toS4の値は、53bus
yと54busyの値で決まる。 55busyの値が影響するのは、54toS5の値を
設定するときである。(602)。 さらに、ステージS5が演算を実行するステージ、演算
実行ピッチが2サイクル、かつステージS4中で待ちを
生じさせるオーバヘッド要因があり、それにより54b
usyの値を設定するような動作規則が生成されている
ときは、53toS4の値を1にするためには、まずス
テージS3中の命令が実行終了していること(S3bu
syがOである)、ステージS4中の命令が実行終了し
ていること(S4busyがOである)、S5中の命令
が実行終了していること(S5busyの値がOである
)を判定する(603)。 また、ステージS5が演算を実行するステージ、演算実
行ピッチが2サイクル、かつステージS4にキューが3
ステ一ジ分ある場合には、それぞれキューは540.
S41. S42と名付けられるが、S5中の命令が実
行中であっても、S40. S41. S42のすべて
のキューに遷移待ちの命令が入っていなければ、S3か
ら54への遷移を行うことができる。従って、53to
S4の値を1にするためには、まずステージS3中の命
令が実行終了していて(S3busyがOである)、か
つ、ステージS4のすべてのキューステージに遷移待ち
の命令が入っていない(S42中に命令がない)か、或
いは、ステージS4のすべてのキューステージに遷移待
ちの命令が入っている(S42中に命令がある)が、S
5中の命令は実行終了していること(S5busyがO
である)を判定する(604)。 ステージ遷移制御信号設定規則生成の手順を、S2から
S3へのステージ遷移制御を例にして、第7図を用いて
説明する。 演算ピッチ数をNとする(501)、基本的には、rS
2busyが値Oをとり、かつ、S(2+N)busy
が値0をとるとき、ステージS2中の命令について、次
のステージS3への遷移が可能になるので、 S2t。 S3の値を1にする」である(502)、L、かじ、次
のステージS3からS(2+N)の間のステージsxで
待ちを生じさせるようなオーバヘッド要因が存在すると
きには1条件にrSXbusyが値Oをとること」が追
加される(503)、また、S3がキューを備えるとき
は、条件部からrS3busyが値0をとること」が削
除され、rすべでのキューステージに遷移待ちの命令が
入っていないか、あるいは、入っている場合には53b
usyが値Oをとり、かつ、54busyが値Oをとる
こと」が追加される(504)。 以上の手順に従って、ステージ遷移制御信号の値を設定
する動作規則記述を生成する。 以上のように、計算機動作規則記述部生成プログラムは
、ユーザが入力したステージ構成指定と命令属性テーブ
ルに対して、ステージ遷移制御信号名抽出ルーチンとス
テージ遷移制御信号M設定動作規則記述競合調整ルーチ
ンを用いて、シミュレーション実行用の計算機動作規則
記述群を生成する。 さらに、パイプラインの段数を変更したり、性能の向上
を考慮して計算機モデルの記述を変更するときには、命
令属性テーブル中のGPR,FPR,MEMORYの書
き込み、読みだしステージ、命令実行に要するサイクル
数などを変更した上で、再度計算機モデル記述生成プロ
グラムによってシミュレーシコン実行用計算機動作規則
記述を生成しなおせばよい。また、新たな高速化方式を
導入するために動作規則記述を追加するときのアルゴリ
ズムを第9図に示す。 新たな高速化方式を導入するために動作規則記述を追加
するときには、ステージ遷移制御信号抽出ルーチンが抽
出した、ステージ遷移制御信号。 ビジー信号の値を設定するように記述した動作規則を動
作規則記述群に追加する。追加によって、同一の信号を
設定しようとする動作規則記述が競合するときには、上
記手順と同様に、ステージ遷移制御信号値設定動作規則
記述競合調整ルーチンが、動作規則記述を生成しなおす
。この時、新しい高速化方式と入れ替わる動作規則記述
を動作規則記述群から削除する。 以上の様にして生成された動作規則記述を入力して、パ
イプライン計算機の命令処理の遷移をシミュレーション
実行するときに行われる処理の流れを述べる。パイプラ
イン計算機の処理の流れをシミュレーションするので、
一つの時刻でもそれぞれのステージについて並列にその
ステージ中での処理の進行を行う。それぞれのステージ
中にある命令それぞれの属性を命令属性テーブルから参
照して、伸動される動作規則記述を選択し実行して、そ
の結果としてそのステージから次ステージへの遷移を抑
止するステージ遷移制御信号の値がOの間は次ステージ
への遷移を抑止し、値が1になったとき次ステージへの
遷移を実行する。つまり、各ステージごと命令が遷移し
てきたときに、その命令の属性を命令属性テーブルから
参照して命令対応に生成された動作規則記述を選択し、
その動作規則記述を実行してステージ遷移制御信号の値
を決め、次にステージ対応に生成された動作規則記述を
実行してステージ遷移を行うという手順になる。 例えば、命令ごとの演算実行サイクルによって演算ステ
ージから次ステージへの遷移をシミュレーションする部
分について述べる。ある時刻で演算ステージ遷移中に命
令が入ったとき、その命令が演算実行に何すイクル要す
るかを命令属性テーブルから引く。3サイクルであれば
、動作規則記述群中から3サイクル要する命令に対応し
て生成された「2サイクル分だけ演算実行ステージES
中にいて、3サイクル目で次ステージへ遷移することが
できることを表す信号EStoNEXTを1にする」動
作規則を選び、4サイクルであれば4サイクル要する命
令に対応して生成されたr33サイクルだけ演算実行ス
テージES中にいて、4サイクル目で次ステージへ遷移
することができることを表す信号EStoNEXTを1
にする」動作規則規則を選ぶ。 選んだ動作規則を実行した結果、適当なタイミングでそ
の命令を次のステージへ遷移することができることを表
すステージ遷移制御信号EStoNEXTがlになる。 次に、EStoNEXTの値が変わったことによってス
テージESに対応して生成されたrEstoNEXTが
値1をとっている間は、ESステージからNEXTステ
ージへの遷移を実行する」動作規則が開動されES中の
命令の遷移が実行される。 同様にして、各ステージについて命令の処理の遷移を行
ってパイプラインの処理の流れをシミュレーションする
。
ユーザは、計算機動作規則記述群生成プログラムがシミ
ュレーション実行用の計算機動作規則記述群を生成する
ために必要な、計算機構成指定記述とテーブル形式で記
述された命令属性を入力すればよい、入力となる記述量
が、計算機動作規則記述を直接記述するのに比べ、訳4
0分の1程度に減少した。 ステージ遷移制御信号名抽出ルーチンは、計算機動作規
則記述群を生成する過程で、各ステージごとに備えられ
るそのステージで処理中の命令が次ステージへ遷移が可
能な状態か否かを表すステージ遷移制御信号名と、ステ
ージ中の命令処理状況を表すビジー信号名、及び、それ
らの信号の値を設定しようとする動作規則記述を抽出す
る。抽出されたステージ遷移制御信号名と動作規則記述
をもとに、ステージ遷移制御信号値設定動作規則記述競
合調整ルーチン中で、その信号の値を設定する動作規則
が競合してエラーを起こすことがないよう、動作規則を
調整して、不要な動作規則を削除し、必要な動作規則に
ついては調整を行って生成しなおした記述を追加するこ
とで動作を保障することができる。また、ユーザが新た
な高速化方式を追加して評価を行う際には、このステー
ジ遷移制御信号の値を制御するような動作規則を記述す
ればよいので、高速化方式の追加の記述が容易であり、
効率が良い。 ステージ遷移制御信号値設定動作規則記述競合調整ルー
チンは、ステージ遷移制御信号名抽出ルーチンが抽出し
た動作規則記述について、同一の処理遷移制御信号の値
を設定するような動作規則記述が複数発生した場合には
、優先順位や並列性を考慮して、不必要な動作規則の削
除、及び、動作規則の調整を行う。また、ユーザが新た
な高速化方式を導入して評価する際に追加記述した動作
規則記述と、計算機動作規則記述部生成プログラムが生
成したシミュレーション実行用の計算機動作規則記述群
との間で、同一の処理遷移制御信号の値を設定するよう
な動作規則が複数発生した場合にも、動作を保障するた
めに同様の処理を行う。 動作を保障するとともに、モデル再構成の効率を向上す
る。
ュレーション実行用の計算機動作規則記述群を生成する
ために必要な、計算機構成指定記述とテーブル形式で記
述された命令属性を入力すればよい、入力となる記述量
が、計算機動作規則記述を直接記述するのに比べ、訳4
0分の1程度に減少した。 ステージ遷移制御信号名抽出ルーチンは、計算機動作規
則記述群を生成する過程で、各ステージごとに備えられ
るそのステージで処理中の命令が次ステージへ遷移が可
能な状態か否かを表すステージ遷移制御信号名と、ステ
ージ中の命令処理状況を表すビジー信号名、及び、それ
らの信号の値を設定しようとする動作規則記述を抽出す
る。抽出されたステージ遷移制御信号名と動作規則記述
をもとに、ステージ遷移制御信号値設定動作規則記述競
合調整ルーチン中で、その信号の値を設定する動作規則
が競合してエラーを起こすことがないよう、動作規則を
調整して、不要な動作規則を削除し、必要な動作規則に
ついては調整を行って生成しなおした記述を追加するこ
とで動作を保障することができる。また、ユーザが新た
な高速化方式を追加して評価を行う際には、このステー
ジ遷移制御信号の値を制御するような動作規則を記述す
ればよいので、高速化方式の追加の記述が容易であり、
効率が良い。 ステージ遷移制御信号値設定動作規則記述競合調整ルー
チンは、ステージ遷移制御信号名抽出ルーチンが抽出し
た動作規則記述について、同一の処理遷移制御信号の値
を設定するような動作規則記述が複数発生した場合には
、優先順位や並列性を考慮して、不必要な動作規則の削
除、及び、動作規則の調整を行う。また、ユーザが新た
な高速化方式を導入して評価する際に追加記述した動作
規則記述と、計算機動作規則記述部生成プログラムが生
成したシミュレーション実行用の計算機動作規則記述群
との間で、同一の処理遷移制御信号の値を設定するよう
な動作規則が複数発生した場合にも、動作を保障するた
めに同様の処理を行う。 動作を保障するとともに、モデル再構成の効率を向上す
る。
第1図は、本発明の全体システム構成図、第2図は、計
算機動作規則記述生成プログラムの入力例と、出力とな
る計算機動作規則記述の例、第3図は、命令属性テーブ
ルの例、第4図は、計算機動作規則記述生成プログラム
が、ユーザの入力した内容を参照して動作規則記述を生
成する処理の手順、第5図は、ビジー(SNbusy)
信号の値を設定する動作規則記述生成のアルゴリズム、
第6図は、ビジー信号(SNbusy)の値を設定する
動作規則記述生成の例、第7図は、ステージ遷移制御信
号の値を設定する動作規則記述生成のアルゴリズム、第
8図は、ステージ遷移制御信号の値を設定する動作規則
記述生成の例、第9図は、新たな高速化方式を導入する
ために動作規則記述を追加す〔シ王〕 5P(:tテDE−−一 ン「/\゛コードMNEF7
−−− ニー七ニッ7 5C−−−−ラ更j1実2テに曽13プ47+しt7D
P −−−−テ゛′コート乙゛ヅfiZew −
−−−:A閉しジ゛ヌタヘ0τさ込hスデーシOR−−
−−う *′SO訛)−P出しス7−シ゛FW
−−−−シ3事刀・]・4乙そ1.レンスタヘ17)
畜】込hステーシーF/? −−−一
カゝろの審えみ庄しステーン゛MW −
−−一 メLソへの省!込hステージ゛t’lk
−−−−t カ゛らOもた1出レスデージ。 Pθpシ′−−一−ラ【1行ン察算8)の刀1困しジス
7への1き込みステージ”Pθ/? −−−一
寸゛らの寥是Jf出
しステーシPFW −−−一
二)軸中1丈、モ、レジ゛スフへの省?込みステ
ージ゛PF/? −−−一
力゛うΦ喜売hホレステーシ
PMW−−−−メ乞ソへの14込みステージpm−−−
− 力゛l7(7IRh *レ
スヲーシIJ 蔓 図 茎7図 第 ? 図 第
算機動作規則記述生成プログラムの入力例と、出力とな
る計算機動作規則記述の例、第3図は、命令属性テーブ
ルの例、第4図は、計算機動作規則記述生成プログラム
が、ユーザの入力した内容を参照して動作規則記述を生
成する処理の手順、第5図は、ビジー(SNbusy)
信号の値を設定する動作規則記述生成のアルゴリズム、
第6図は、ビジー信号(SNbusy)の値を設定する
動作規則記述生成の例、第7図は、ステージ遷移制御信
号の値を設定する動作規則記述生成のアルゴリズム、第
8図は、ステージ遷移制御信号の値を設定する動作規則
記述生成の例、第9図は、新たな高速化方式を導入する
ために動作規則記述を追加す〔シ王〕 5P(:tテDE−−一 ン「/\゛コードMNEF7
−−− ニー七ニッ7 5C−−−−ラ更j1実2テに曽13プ47+しt7D
P −−−−テ゛′コート乙゛ヅfiZew −
−−−:A閉しジ゛ヌタヘ0τさ込hスデーシOR−−
−−う *′SO訛)−P出しス7−シ゛FW
−−−−シ3事刀・]・4乙そ1.レンスタヘ17)
畜】込hステーシーF/? −−−一
カゝろの審えみ庄しステーン゛MW −
−−一 メLソへの省!込hステージ゛t’lk
−−−−t カ゛らOもた1出レスデージ。 Pθpシ′−−一−ラ【1行ン察算8)の刀1困しジス
7への1き込みステージ”Pθ/? −−−一
寸゛らの寥是Jf出
しステーシPFW −−−一
二)軸中1丈、モ、レジ゛スフへの省?込みステ
ージ゛PF/? −−−一
力゛うΦ喜売hホレステーシ
PMW−−−−メ乞ソへの14込みステージpm−−−
− 力゛l7(7IRh *レ
スヲーシIJ 蔓 図 茎7図 第 ? 図 第
Claims (1)
- 【特許請求の範囲】 1、パイプライン計算機の処理動作を条件部と動作部か
らなる動作規則記述で表して、条件部の条件式を判定し
成立した時に動作部の代入文を実行する計算機シミュレ
ーション方法において、パイプラインを構成するステー
ジの数とそれぞれのステージでの処理区分、計算機で実
行される各命令についての演算に要するサイクル数とレ
ジスタ、メモリへの書き込み、読みだし処理が行われる
ステージ名を入力として、命令処理がパイプライン計算
機を構成するステージ間を遷移する条件と条件成立時の
動作を表す計算機動作規則群を生成し、該計算機動作規
則群を入力してパイプライン計算機を構成するステージ
間の命令遷移のシミュレーションを実行することを特徴
としたシミュレーション方法。 2、請求項1記載の計算機シミュレーション方法におい
て、 パイプラインを構成する各ステージに対応して生成され
るステージ間の遷移条件判定と遷移を行うステージ対応
動作規則記述と、パイプライン計算機で処理される命令
に対応して命令対応動作規則記述を生成し、投入された
命令の属性によって使用する命令対応動作規則記述を決
定し該動作規則を動作させ、さらに該動作規則を動作さ
せたことによって使用するステージ対応動作規則記述を
決定し該動作規則を動作させてステージ間の命令遷移の
シミュレーションを実行することを特徴としたシミュレ
ーション方法。 3、請求項1記載の計算機シミュレーション方法におい
て、 パイプラインを構成する各ステージで処理中の命令が次
ステージへ遷移が可能な状態か否かを表すステージ遷移
制御信号と、次ステージへの遷移が可能な条件を満たし
た時に該ステージ遷移制御信号の値を設定する計算機動
作規則と、該ステージ遷移制御信号の値が特定の値をと
った時にステージ遷移処理を実行する計算機動作規則と
を生成して、シミュレーション時には該ステージ遷移制
御信号の値を判定してパイプライン計算機を構成するス
テージ間の命令遷移のシミュレーションを実行すること
を特徴としたシミュレーション方法。 4、請求項2記載の計算機シミュレーション方法におい
て、 動作規則記述群からパイプラインを構成する各ステージ
で処理中の命令が次ステージへ遷移が可能な状態か否か
を表すステージ遷移制御信号名を抽出し、抽出された該
ステージ遷移制御信号の値を設定する動作規則が複数存
在するときには一つの動作規則記述に合成し不要になっ
た動作規則記述を削除して計算機規則記述を生成しなお
し、該計算機動作規則記述群を入力してパイプライン計
算機を構成するステージ間の命令遷移のシミュレーショ
ンを実行することを特徴としたシミュレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26491489A JPH03127133A (ja) | 1989-10-13 | 1989-10-13 | 計算機シミュレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26491489A JPH03127133A (ja) | 1989-10-13 | 1989-10-13 | 計算機シミュレーション方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03127133A true JPH03127133A (ja) | 1991-05-30 |
Family
ID=17409961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26491489A Pending JPH03127133A (ja) | 1989-10-13 | 1989-10-13 | 計算機シミュレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03127133A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100468472B1 (ko) * | 2002-09-30 | 2005-01-27 | 삼성전자주식회사 | 공기조화기의 실외기 |
JP2007040604A (ja) * | 2005-08-03 | 2007-02-15 | Mitsubishi Electric Corp | 空気調和機の室外機 |
-
1989
- 1989-10-13 JP JP26491489A patent/JPH03127133A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100468472B1 (ko) * | 2002-09-30 | 2005-01-27 | 삼성전자주식회사 | 공기조화기의 실외기 |
JP2007040604A (ja) * | 2005-08-03 | 2007-02-15 | Mitsubishi Electric Corp | 空気調和機の室外機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473880B1 (en) | Synchronization of parallel memory accesses in a dataflow circuit | |
Zimmermann | The MIMOLA design system: A computer aided digital processor design method | |
JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
JP5271494B2 (ja) | コンピュータ支援による計算グラフの並列化 | |
US20160299998A1 (en) | Logic circuit generation device and method | |
US8904367B1 (en) | Auto pipeline insertion | |
JPH0348536B2 (ja) | ||
JP2008176453A (ja) | シミュレーション装置 | |
JP4204039B2 (ja) | 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路 | |
Fauth | Beyond tool-specific machine descriptions | |
Shapiro | Validation of a VLSI chip using hierarchical colored Petri nets | |
Bhagwati et al. | Automatic verification of pipelined microprocessors | |
JP3909073B2 (ja) | コンパイラ及び論理回路の設計方法 | |
Amellal et al. | Scheduling of a control data flow graph | |
JP3274036B2 (ja) | プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置 | |
JPH03127133A (ja) | 計算機シミュレーション方法 | |
JP3318051B2 (ja) | 翻訳処理方法 | |
JP2000268074A (ja) | 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法 | |
JP3108215B2 (ja) | パイプライン制御機構生成装置及び制御機構生成方法 | |
JPH02176938A (ja) | 機械語命令最適化方式 | |
JP3705367B2 (ja) | 命令処理方法 | |
JPH0588912A (ja) | マルチプロセツサシミユレータ | |
Kroening et al. | Proving the Correctness of Pipelined Micro-Architectures. | |
JP3246668B2 (ja) | 並列処理プログラムコンパイル装置 | |
JP2002318689A (ja) | 資源使用サイクルの遅延指定付き命令を実行するvliwプロセッサおよび遅延指定命令の生成方法 |