JPH08272612A - パイプライン計算機シミュレータ - Google Patents
パイプライン計算機シミュレータInfo
- Publication number
- JPH08272612A JPH08272612A JP9604395A JP9604395A JPH08272612A JP H08272612 A JPH08272612 A JP H08272612A JP 9604395 A JP9604395 A JP 9604395A JP 9604395 A JP9604395 A JP 9604395A JP H08272612 A JPH08272612 A JP H08272612A
- Authority
- JP
- Japan
- Prior art keywords
- register
- pipeline
- address
- memory
- simulator
- 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
- Advance Control (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
【目的】 ハードウェアに忠実にシミュレートしなが
ら、1命令のステップ動作が直感的に正しく動作するシ
ミュレータを得る。 【構成】 実行ステージで書き込みを行う第1のレジス
タ1と、パイプライン計算機の動作をシミュレートする
第2のレジスタ2とでレジスタを2重化する。メモリ変
数格納部3は、アドレス変数とデータ変数とを格納す
る。パイプラインシミュレータ制御部5は、タイミング
と読み書きする状況によって、参照または変更するレジ
スタを、第1のレジスタ1または第2のレジスタ2とし
て、実行ステージで、その実行ステージのレジスタの値
を出力する。また、パイプラインシミュレータ制御部5
は、参照または変更する状況に応じて、メモリ変数格納
部3のアドレス変数とデータ変数とを選択的に用い、実
行ステージで、その実行ステージの演算したメモリの値
を出力する。
ら、1命令のステップ動作が直感的に正しく動作するシ
ミュレータを得る。 【構成】 実行ステージで書き込みを行う第1のレジス
タ1と、パイプライン計算機の動作をシミュレートする
第2のレジスタ2とでレジスタを2重化する。メモリ変
数格納部3は、アドレス変数とデータ変数とを格納す
る。パイプラインシミュレータ制御部5は、タイミング
と読み書きする状況によって、参照または変更するレジ
スタを、第1のレジスタ1または第2のレジスタ2とし
て、実行ステージで、その実行ステージのレジスタの値
を出力する。また、パイプラインシミュレータ制御部5
は、参照または変更する状況に応じて、メモリ変数格納
部3のアドレス変数とデータ変数とを選択的に用い、実
行ステージで、その実行ステージの演算したメモリの値
を出力する。
Description
【0001】
【産業上の利用分野】本発明は、汎用計算機上でパイプ
ライン計算機のサイクル毎の状態をシミュレートするパ
イプライン計算機シミュレータに関するものである。
ライン計算機のサイクル毎の状態をシミュレートするパ
イプライン計算機シミュレータに関するものである。
【0002】
【従来の技術】情報処理装置において、パイプライン制
御は処理の能率化を図るための方法としてよく知られて
いる。このようなパイプライン制御とは、例えば、命令
フェッチステージ(IFステージ)、デコードステージ
(Dステージ)、実行ステージ(Eステージ)、メモリ
ステージ(Mステージ)、ライトバックステージ(Wス
テージ)の5段階の処理が複数の命令毎に連続して流れ
ていく。
御は処理の能率化を図るための方法としてよく知られて
いる。このようなパイプライン制御とは、例えば、命令
フェッチステージ(IFステージ)、デコードステージ
(Dステージ)、実行ステージ(Eステージ)、メモリ
ステージ(Mステージ)、ライトバックステージ(Wス
テージ)の5段階の処理が複数の命令毎に連続して流れ
ていく。
【0003】そして、このようなパイプライン計算機で
実行するプログラムの論理デバッグ、プログラムの性能
評価、性能向上、あるいはパイプラインの状態を観測す
るといったことを行うため、パイプライン制御をシミュ
レートするパイプライン計算機シミュレータが用いられ
ている。
実行するプログラムの論理デバッグ、プログラムの性能
評価、性能向上、あるいはパイプラインの状態を観測す
るといったことを行うため、パイプライン制御をシミュ
レートするパイプライン計算機シミュレータが用いられ
ている。
【0004】
【発明が解決しようとする課題】ところで、上述したよ
うなプログラムの論理デバッグを行う場合、1命令単位
のステップ実行は有用である。これは、プログラムの論
理デバッグを行う場合は、プログラムの制御フローとデ
ータフローに関心があり、サイクル単位のシミュレーシ
ョンで求められる各サイクルの状態、ウエイト情報は、
この場合必要とされないからである。
うなプログラムの論理デバッグを行う場合、1命令単位
のステップ実行は有用である。これは、プログラムの論
理デバッグを行う場合は、プログラムの制御フローとデ
ータフローに関心があり、サイクル単位のシミュレーシ
ョンで求められる各サイクルの状態、ウエイト情報は、
この場合必要とされないからである。
【0005】プログラムの1命令単位のステップ実行を
行う場合、通常1ステップ実行をシミュレータのコマン
ドとして指定し、実行させた場合、その命令が実行終了
したとみなすのが自然である。
行う場合、通常1ステップ実行をシミュレータのコマン
ドとして指定し、実行させた場合、その命令が実行終了
したとみなすのが自然である。
【0006】しかしながら、上記パイプライン計算機シ
ミュレータで、1命令の完了をどのステージにするかに
よって、期待するレジスタの値と違う結果をステップ終
了時に表示することになるという欠点がある。例えば、
1ステップの終了をその実行ステージが終了した時点と
した場合、その時点ではデスティネーションレジスタの
値がその実行結果になっていない場合がある。
ミュレータで、1命令の完了をどのステージにするかに
よって、期待するレジスタの値と違う結果をステップ終
了時に表示することになるという欠点がある。例えば、
1ステップの終了をその実行ステージが終了した時点と
した場合、その時点ではデスティネーションレジスタの
値がその実行結果になっていない場合がある。
【0007】また、これを避けるために1命令のステッ
プ終了をライトバックステージ終了時点とした場合は以
下の問題がある。即ち、通常、プログラムカウンタ(P
C)は、実行ステージにある命令のアドレスを指してい
るため、PCの値が期待とは異なった値を指すことにな
る。更に、ある命令がジャンプ命令である場合は、1ス
テップの終了後のPCは、ジャンプ先のアドレスを指し
ている場合もあり得るのでPCの値から現在のステップ
実行命令を推測することは不可能である。
プ終了をライトバックステージ終了時点とした場合は以
下の問題がある。即ち、通常、プログラムカウンタ(P
C)は、実行ステージにある命令のアドレスを指してい
るため、PCの値が期待とは異なった値を指すことにな
る。更に、ある命令がジャンプ命令である場合は、1ス
テップの終了後のPCは、ジャンプ先のアドレスを指し
ている場合もあり得るのでPCの値から現在のステップ
実行命令を推測することは不可能である。
【0008】このような点から、サイクル毎のパイプラ
インの状態の忠実なシミュレーションを行うという特長
を損なわずに、1命令ステップ動作が直感的に正しく動
作するパイプライン計算機シミュレータの実現が望まれ
ていた。
インの状態の忠実なシミュレーションを行うという特長
を損なわずに、1命令ステップ動作が直感的に正しく動
作するパイプライン計算機シミュレータの実現が望まれ
ていた。
【0009】
【課題を解決するための手段】本発明のパイプライン計
算機シミュレータは、実行ステージで書き込みを行う第
1のレジスタと、パイプライン計算機のサイクルをシミ
ュレートする第2のレジスタとでレジスタを2重化す
る。そして、タイミングと読み書きする状況によって、
参照または変更するレジスタを、第1または第2のレジ
スタとして、実行ステージ終了後に、その実行ステージ
で演算処理したレジスタの値を出力するパイプラインシ
ミュレータ制御部を設けたものである。
算機シミュレータは、実行ステージで書き込みを行う第
1のレジスタと、パイプライン計算機のサイクルをシミ
ュレートする第2のレジスタとでレジスタを2重化す
る。そして、タイミングと読み書きする状況によって、
参照または変更するレジスタを、第1または第2のレジ
スタとして、実行ステージ終了後に、その実行ステージ
で演算処理したレジスタの値を出力するパイプラインシ
ミュレータ制御部を設けたものである。
【0010】
【作用】本発明のパイプライン計算機シミュレータにお
いて、第1のレジスタは実行ステージで書き込みが行わ
れる。一方、第2のレジスタは、パイプライン計算機の
サイクルを忠実にシミュレートする。パイプラインシミ
ュレータ制御部は、例えば、命令やシミュレータのコマ
ンドといった読み書きする状況に応じて、第1のレジス
タおよび第2のレジスタに対して参照または変更を行
い、実行ステージ終了後に、その実行ステージで演算処
理したレジスタの値を出力する。
いて、第1のレジスタは実行ステージで書き込みが行わ
れる。一方、第2のレジスタは、パイプライン計算機の
サイクルを忠実にシミュレートする。パイプラインシミ
ュレータ制御部は、例えば、命令やシミュレータのコマ
ンドといった読み書きする状況に応じて、第1のレジス
タおよび第2のレジスタに対して参照または変更を行
い、実行ステージ終了後に、その実行ステージで演算処
理したレジスタの値を出力する。
【0011】
【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。図1は、本発明のパイプライン計算機シミュ
レータにおける一実施例の構成図であるが、これに先立
ち、パイプライン計算機におけるパイプライン制御を説
明する。
説明する。図1は、本発明のパイプライン計算機シミュ
レータにおける一実施例の構成図であるが、これに先立
ち、パイプライン計算機におけるパイプライン制御を説
明する。
【0012】図2は、そのパイプライン制御の一例であ
る。先ず、IFステージ(命令フェッチステージ)で
は、命令を主記憶装置あるいはキャシュから読み出す。
尚、この主記憶装置やキャッシュあるいはレジスタ等の
構成については、パイプライン計算機における一般的な
構成であるため、図示およびその説明は省略する。
る。先ず、IFステージ(命令フェッチステージ)で
は、命令を主記憶装置あるいはキャシュから読み出す。
尚、この主記憶装置やキャッシュあるいはレジスタ等の
構成については、パイプライン計算機における一般的な
構成であるため、図示およびその説明は省略する。
【0013】次に、Dステージ(デコードステージ)で
は、読み出した命令をデコードすると同時に演算対象と
なるソースレジスタの値を読み出す。Eステージ(実行
ステージ)では、読み出したソースレジスタの値に対
し、演算を行う。また、主記憶装置に対するロード、ス
トア命令の場合は、アドレス演算を行う。更に、Mステ
ージ(メモリステージ)では、命令がロード、ストア命
令の場合に、そのアドレスを送出し、ロード命令の場
合、主記憶装置からのデータを取り込み、ストア命令の
場合は、データを送出する。そして、Wステージ(ライ
トバックステージ)では、演算、あるいはロードされた
データを、命令で指定されたデスティネーションレジス
タに書き戻す。
は、読み出した命令をデコードすると同時に演算対象と
なるソースレジスタの値を読み出す。Eステージ(実行
ステージ)では、読み出したソースレジスタの値に対
し、演算を行う。また、主記憶装置に対するロード、ス
トア命令の場合は、アドレス演算を行う。更に、Mステ
ージ(メモリステージ)では、命令がロード、ストア命
令の場合に、そのアドレスを送出し、ロード命令の場
合、主記憶装置からのデータを取り込み、ストア命令の
場合は、データを送出する。そして、Wステージ(ライ
トバックステージ)では、演算、あるいはロードされた
データを、命令で指定されたデスティネーションレジス
タに書き戻す。
【0014】このようなパイプライン計算機におけるサ
イクル毎のシミュレーションを行うのが、パイプライン
計算機シミュレータであり、上記のようなパイプライン
を持つハードウェアのパイプラインを忠実にシミュレー
トするため、サイクル毎に前サイクルのパイプラインの
状態から現在のパイプラインの状態を計算して求めてい
る。
イクル毎のシミュレーションを行うのが、パイプライン
計算機シミュレータであり、上記のようなパイプライン
を持つハードウェアのパイプラインを忠実にシミュレー
トするため、サイクル毎に前サイクルのパイプラインの
状態から現在のパイプラインの状態を計算して求めてい
る。
【0015】例えば、図2のサイクル(c+4)では、
命令1のライトバックステージの状態、命令2のメモリ
ステージの状態、命令3の実行ステージの状態、命令4
のデコードステージの状態、現在の他のステージの状態
を利用して求めている。また、サイクル(c+5)で
は、何らかのウエイトが入り、パイプラインがストール
したことを示している。
命令1のライトバックステージの状態、命令2のメモリ
ステージの状態、命令3の実行ステージの状態、命令4
のデコードステージの状態、現在の他のステージの状態
を利用して求めている。また、サイクル(c+5)で
は、何らかのウエイトが入り、パイプラインがストール
したことを示している。
【0016】このようにサイクル毎にパイプラインの状
態を求めることにより、例えば、キャシュミスによる命
令実行のウエイト、レジスタ競合によるパイプラインス
トール等のシミュレーションが可能になる。そして、こ
のようなパイプライン計算機シミュレータを用いること
で、パイプライン計算機のプログラムの論理デバッグや
プログラムの性能評価が行え、かつ、パイプラインの状
態を観測することで、パイプライン計算機の性能を向上
するのに利用できるものである。
態を求めることにより、例えば、キャシュミスによる命
令実行のウエイト、レジスタ競合によるパイプラインス
トール等のシミュレーションが可能になる。そして、こ
のようなパイプライン計算機シミュレータを用いること
で、パイプライン計算機のプログラムの論理デバッグや
プログラムの性能評価が行え、かつ、パイプラインの状
態を観測することで、パイプライン計算機の性能を向上
するのに利用できるものである。
【0017】一方、パイプライン計算機シミュレータに
おいて、上述したように、1命令の完了をどのステージ
にするかによって、期待するレジスタの値と違う結果を
ステップ終了時に表示することになるという問題があ
る。例えば、1ステップの終了をその実行ステージが終
了した時点とした場合、即ち、サイクル(c+4)で命
令3のステップの終了とみなした場合、命令3は、実際
には、実行ステージが終了したところであるから、実行
結果のレジスタの書き込みが終了しておらず、この時点
で、命令3で指定したデスティネーションレジスタの値
は、実行結果になっていない。
おいて、上述したように、1命令の完了をどのステージ
にするかによって、期待するレジスタの値と違う結果を
ステップ終了時に表示することになるという問題があ
る。例えば、1ステップの終了をその実行ステージが終
了した時点とした場合、即ち、サイクル(c+4)で命
令3のステップの終了とみなした場合、命令3は、実際
には、実行ステージが終了したところであるから、実行
結果のレジスタの書き込みが終了しておらず、この時点
で、命令3で指定したデスティネーションレジスタの値
は、実行結果になっていない。
【0018】デスティネーションレジスタが期待する値
になるためには、この時点のパイプラインの状態等によ
り不定のサイクル数後となるため、一般的にはレジスタ
の値が変化するタイミングを見つけるのは困難である。
また、これを避けるために1命令のステップ終了をライ
トバックステージ終了時点、即ち、サイクル(c+6)
で命令3のステップ終了とみなす場合、図に示すように
プログラムカウンタ(PC)が実行ステージにある命令
のアドレスを指しているとすると、、サイクル(c+
6)では、PCの値が(n+12)となり命令4のアド
レスを指していることになる。このように、PCの値か
ら現在のステップ実行命令を推測することは不可能であ
る。
になるためには、この時点のパイプラインの状態等によ
り不定のサイクル数後となるため、一般的にはレジスタ
の値が変化するタイミングを見つけるのは困難である。
また、これを避けるために1命令のステップ終了をライ
トバックステージ終了時点、即ち、サイクル(c+6)
で命令3のステップ終了とみなす場合、図に示すように
プログラムカウンタ(PC)が実行ステージにある命令
のアドレスを指しているとすると、、サイクル(c+
6)では、PCの値が(n+12)となり命令4のアド
レスを指していることになる。このように、PCの値か
ら現在のステップ実行命令を推測することは不可能であ
る。
【0019】そこで、本発明では、1命令のステップ実
行を行う場合に、期待するレジスタの値と停止したサイ
クルでのレジスタの値が異なるという問題点を解決する
ため、実行ステージ終了時にデスティネーションレジス
タやメモリ内容が変更後の値を表示可能とする構成を備
えたものであり、以下、これを更に説明する。
行を行う場合に、期待するレジスタの値と停止したサイ
クルでのレジスタの値が異なるという問題点を解決する
ため、実行ステージ終了時にデスティネーションレジス
タやメモリ内容が変更後の値を表示可能とする構成を備
えたものであり、以下、これを更に説明する。
【0020】図2に示すようなパイプライン構成を持つ
パイプライン計算機の場合、レジスタへの書き込みはラ
イトバック(W)ステージで行われ、レジスタからの読
み出しはデコード(D)ステージで行われる。従って、
以下のようにレジスタの競合が発生する場合がある。
パイプライン計算機の場合、レジスタへの書き込みはラ
イトバック(W)ステージで行われ、レジスタからの読
み出しはデコード(D)ステージで行われる。従って、
以下のようにレジスタの競合が発生する場合がある。
【0021】図3は、このようなレジスタの競合が発生
する場合のパイプラインの状態である。図3のような命
令シーケンスのように、レジスタ競合、即ち、次命令の
ソースレジスタが、現命令のデスティネーションレジス
タ(この例の場合レジスタr3)である場合、図示のよ
うにパイプラインストールが3サイクル生じる。しか
し、これは通常のパイプライン計算機では、レジスタバ
イパス、即ち、命令1の演算結果を直接命令2の演算の
入力レジスタへバイパスする方式を取ることによりパイ
プラインストールが生じないようにしている。
する場合のパイプラインの状態である。図3のような命
令シーケンスのように、レジスタ競合、即ち、次命令の
ソースレジスタが、現命令のデスティネーションレジス
タ(この例の場合レジスタr3)である場合、図示のよ
うにパイプラインストールが3サイクル生じる。しか
し、これは通常のパイプライン計算機では、レジスタバ
イパス、即ち、命令1の演算結果を直接命令2の演算の
入力レジスタへバイパスする方式を取ることによりパイ
プラインストールが生じないようにしている。
【0022】本発明のパイプライン計算機シミュレータ
では、実行ステージにおいて、レジスタの読み出し、演
算、レジスタへの書き込みを行う。また、1命令のステ
ップ実行の切れ目は、命令の実行ステージが終了した時
点とする。こうすることにより1命令のステップ実行終
了後にレジスタが演算結果と一致する。また、レジスタ
バイパスの複雑な機構をシミュレートする必要がなくな
り、シミュレーション速度とシミュレータ開発速度を向
上できる。
では、実行ステージにおいて、レジスタの読み出し、演
算、レジスタへの書き込みを行う。また、1命令のステ
ップ実行の切れ目は、命令の実行ステージが終了した時
点とする。こうすることにより1命令のステップ実行終
了後にレジスタが演算結果と一致する。また、レジスタ
バイパスの複雑な機構をシミュレートする必要がなくな
り、シミュレーション速度とシミュレータ開発速度を向
上できる。
【0023】しかしながら、上記のように実行ステージ
で、レジスタの読み出し、演算、書き込みを行うと、値
を設定することによりパイプライン計算機自体の動作が
変化するようなレジスタの場合は、ハードウェアとのタ
イミングの差異が生じ、忠実なシミュレーションができ
なくなる。
で、レジスタの読み出し、演算、書き込みを行うと、値
を設定することによりパイプライン計算機自体の動作が
変化するようなレジスタの場合は、ハードウェアとのタ
イミングの差異が生じ、忠実なシミュレーションができ
なくなる。
【0024】また、メモリアクセスも、実行ステージで
行い、ロード命令の場合、メモリから読み出し、レジス
タに格納する。ただし、ストア命令の場合は、タイミン
グを忠実にシミュレートするため、メモリには、ハード
ウェアのタイミングと同じタイミングで書き込む。ここ
で、ロード命令の場合はアクセスタイミングがハードウ
ェアとずれるが、メモリのようにタイミングがずれても
値が変化しないようなデバイスの場合問題は生じない。
一方、ストア命令の場合は、メモリアクセスタイミング
をハードウェアと同じにしているので、1命令ステップ
実行終了後にメモリ内容を表示させると以前の内容が表
示されることになる。
行い、ロード命令の場合、メモリから読み出し、レジス
タに格納する。ただし、ストア命令の場合は、タイミン
グを忠実にシミュレートするため、メモリには、ハード
ウェアのタイミングと同じタイミングで書き込む。ここ
で、ロード命令の場合はアクセスタイミングがハードウ
ェアとずれるが、メモリのようにタイミングがずれても
値が変化しないようなデバイスの場合問題は生じない。
一方、ストア命令の場合は、メモリアクセスタイミング
をハードウェアと同じにしているので、1命令ステップ
実行終了後にメモリ内容を表示させると以前の内容が表
示されることになる。
【0025】次に、図1を参照して本実施例のパイプラ
イン計算機シミュレータを説明する。図1の装置は、第
1のレジスタ(SPR)1、第2のレジスタ2(SP
R′)、メモリ変数格納部3、メモリ4、パイプライン
シミュレータ制御部5からなる。
イン計算機シミュレータを説明する。図1の装置は、第
1のレジスタ(SPR)1、第2のレジスタ2(SP
R′)、メモリ変数格納部3、メモリ4、パイプライン
シミュレータ制御部5からなる。
【0026】第1のレジスタ1は、ユーザから見ること
のできるレジスタであり、第2のレジスタ2は、ハード
ウェアのタイミングで書き込みを行うレジスタである。
メモリ変数格納部3は、アドレス変数mem_adr とデータ
変数mem_dataの変数を格納するためのメモリであり、ア
ドレス変数mem_adr とデータ変数mem_dataは、それぞ
れ、メモリステージでストアするメモリ4のアドレスと
データとを保持するためのものである。また、メモリ4
は、そのメモリである。
のできるレジスタであり、第2のレジスタ2は、ハード
ウェアのタイミングで書き込みを行うレジスタである。
メモリ変数格納部3は、アドレス変数mem_adr とデータ
変数mem_dataの変数を格納するためのメモリであり、ア
ドレス変数mem_adr とデータ変数mem_dataは、それぞ
れ、メモリステージでストアするメモリ4のアドレスと
データとを保持するためのものである。また、メモリ4
は、そのメモリである。
【0027】パイプラインシミュレータ5は、種々のケ
ースに基づき第1のレジスタ2または第2のレジスタ3
にアクセスして、その実行ステージ終了後に、その実行
ステージにおけるレジスタの値を出力すると共に、メモ
リ変数格納部3のアドレス変数mem_adr とデータ変数me
m_dataに基づきその実行ステージのメモリ状態を出力す
る機能を備えている。
ースに基づき第1のレジスタ2または第2のレジスタ3
にアクセスして、その実行ステージ終了後に、その実行
ステージにおけるレジスタの値を出力すると共に、メモ
リ変数格納部3のアドレス変数mem_adr とデータ変数me
m_dataに基づきその実行ステージのメモリ状態を出力す
る機能を備えている。
【0028】次に、このように構成されたパイプライン
計算機シミュレータの動作について説明する。先ず、本
実施例のパイプライン計算機シミュレータでは、レジス
タ、メモリを変更、参照する場合として、 (1)命令から参照、変更する場合 (2)計算機の内部動作として参照、変更する場合、例
えばキャシュのパージを行うレジスタを参照して、実際
のキャシュパージを行う場合である。 (3)シミュレータのコマンドとしてユーザが会話的に
変更、参照する場合を考える。
計算機シミュレータの動作について説明する。先ず、本
実施例のパイプライン計算機シミュレータでは、レジス
タ、メモリを変更、参照する場合として、 (1)命令から参照、変更する場合 (2)計算機の内部動作として参照、変更する場合、例
えばキャシュのパージを行うレジスタを参照して、実際
のキャシュパージを行う場合である。 (3)シミュレータのコマンドとしてユーザが会話的に
変更、参照する場合を考える。
【0029】最初に、レジスタについて記す。レジスタ
を、その値が計算機の操作に影響を与えない汎用レジス
タと、その値によって計算機の動作に影響を与える特殊
レジスタに分類する。この特殊レジスタの例としては、
プログラムカウンタ、プロセッサステータスレジスタ等
がある。
を、その値が計算機の操作に影響を与えない汎用レジス
タと、その値によって計算機の動作に影響を与える特殊
レジスタに分類する。この特殊レジスタの例としては、
プログラムカウンタ、プロセッサステータスレジスタ等
がある。
【0030】汎用レジスタに関しては、タイミングのず
れが計算機の動作に影響を与えないので、実行ステージ
において書き込みを行ってもハードウェアの忠実なタイ
ミングのシミュレーションには影響しない。従って、汎
用レジスタについては、実行ステージで読み出し、書き
込みを行う。
れが計算機の動作に影響を与えないので、実行ステージ
において書き込みを行ってもハードウェアの忠実なタイ
ミングのシミュレーションには影響しない。従って、汎
用レジスタについては、実行ステージで読み出し、書き
込みを行う。
【0031】一方、特殊レジスタについては2重化する
もので、これが第1のレジスタ1と第2のレジスタ2で
あり、パイプラインシミュレータ制御部5は、(1)〜
(3)のいずれかの場合の指示に応じて第1、第2のレ
ジスタ1、2にアクセスし、実行ステージ後に変更され
た値を出力するものである。
もので、これが第1のレジスタ1と第2のレジスタ2で
あり、パイプラインシミュレータ制御部5は、(1)〜
(3)のいずれかの場合の指示に応じて第1、第2のレ
ジスタ1、2にアクセスし、実行ステージ後に変更され
た値を出力するものである。
【0032】(1)命令から参照、変更する場合、 パイプラインシミュレータ制御部5は、命令からの参
照、変更のシミュレータ指示があると、レジスタバイパ
スがあるものとして、実行ステージにおいて第1のレジ
スタ1に対して行う。またライトバックステージにおい
て、第2のレジスタ2に対し書き込みを行う。
照、変更のシミュレータ指示があると、レジスタバイパ
スがあるものとして、実行ステージにおいて第1のレジ
スタ1に対して行う。またライトバックステージにおい
て、第2のレジスタ2に対し書き込みを行う。
【0033】図4は、この状態の説明図である。ここ
で、およびは、それぞれ第1のレジスタ1および第
2のレジスタ2の書き込みタイミングを示している。従
って、1命令の実行ステージ後に第1のレジスタ1を参
照した場合、変更された値が表示されることになる。ま
た、タイミングは、第2のレジスタ2により忠実にシミ
ュレートされているため、ハードウェアとタイミングが
一致する。
で、およびは、それぞれ第1のレジスタ1および第
2のレジスタ2の書き込みタイミングを示している。従
って、1命令の実行ステージ後に第1のレジスタ1を参
照した場合、変更された値が表示されることになる。ま
た、タイミングは、第2のレジスタ2により忠実にシミ
ュレートされているため、ハードウェアとタイミングが
一致する。
【0034】(2)計算機の内部動作として参照、変更
する場合 この場合、変更は、第1のレジスタ1および第2のレジ
スタ2共に行う。また、参照は、第2のレジスタ2に対
して行う。即ち、このような場合の変更は、レジスタの
値は実行ステージで書き込まれるからである。また、参
照の場合、実行ステージのタイミングでは、第1のレジ
スタ1の値がハードウェアとは異なる値となっている場
合があるからである。
する場合 この場合、変更は、第1のレジスタ1および第2のレジ
スタ2共に行う。また、参照は、第2のレジスタ2に対
して行う。即ち、このような場合の変更は、レジスタの
値は実行ステージで書き込まれるからである。また、参
照の場合、実行ステージのタイミングでは、第1のレジ
スタ1の値がハードウェアとは異なる値となっている場
合があるからである。
【0035】(3)シミュレータのコマンドとしてユー
ザが会話的に変更、参照する場合 参照は、第1のレジスタ1に対して行い、変更は、第1
のレジスタ1および第2のレジスタ2の双方に対して行
う。
ザが会話的に変更、参照する場合 参照は、第1のレジスタ1に対して行い、変更は、第1
のレジスタ1および第2のレジスタ2の双方に対して行
う。
【0036】以上により、各命令の実行ステージ終了後
に、第1のレジスタ1を参照すれば変更された値が表示
されることになる。また、タイミングは、上記(1)〜
(3)において、第2のレジスタ2により忠実にシミュ
レートされているため、ハードウェアとタイミングが一
致する。
に、第1のレジスタ1を参照すれば変更された値が表示
されることになる。また、タイミングは、上記(1)〜
(3)において、第2のレジスタ2により忠実にシミュ
レートされているため、ハードウェアとタイミングが一
致する。
【0037】次にメモリ4に対するアクセスの場合を記
す。パイプラインシミュレータ制御部5は、ロード命令
が与えられた場合、実行ステージにおいて、メモリ4か
らデータを読み、レジスタに格納する。この場合のレジ
スタ格納法は上記に従う。
す。パイプラインシミュレータ制御部5は、ロード命令
が与えられた場合、実行ステージにおいて、メモリ4か
らデータを読み、レジスタに格納する。この場合のレジ
スタ格納法は上記に従う。
【0038】一方、ストア命令の場合、1命令ステップ
終了後は、メモリ4の内容が変更されているものとして
表示するが、実際にメモリ4に書き込むタイミングはハ
ードウェアをシミュレートする。これを実現するため、
上記レジスタの場合と同様な方法が考えられるが、メモ
リ4は通常、レジスタに比べて大容量のため、全てを2
重化することはできない。従って、メモリステージ用に
アドレスとデータを格納する変数を用意する。これが、
メモリ変数格納部3のアドレス変数mem_adr 、データ変
数mem_dataである。
終了後は、メモリ4の内容が変更されているものとして
表示するが、実際にメモリ4に書き込むタイミングはハ
ードウェアをシミュレートする。これを実現するため、
上記レジスタの場合と同様な方法が考えられるが、メモ
リ4は通常、レジスタに比べて大容量のため、全てを2
重化することはできない。従って、メモリステージ用に
アドレスとデータを格納する変数を用意する。これが、
メモリ変数格納部3のアドレス変数mem_adr 、データ変
数mem_dataである。
【0039】(1)命令から変更する場合 実行ステージで、mem_adr 、mem_dataにストアするアド
レスとデータをそれぞれ格納する。メモリステージで、
メモリ4におけるmem_adr で示されるアドレスに、mem_
dataのデータを実際に格納する。
レスとデータをそれぞれ格納する。メモリステージで、
メモリ4におけるmem_adr で示されるアドレスに、mem_
dataのデータを実際に格納する。
【0040】(2)計算機の内部動作として参照、変更
する場合 これは、通常はないが、計算機と別のバスマスタになり
得るデバイスをシミュレートする場合は、メモリの値を
そのまま読み書きする。
する場合 これは、通常はないが、計算機と別のバスマスタになり
得るデバイスをシミュレートする場合は、メモリの値を
そのまま読み書きする。
【0041】(3)シミュレータのコマンドとしてユー
ザが会話的に変更、参照する場合 表示を要求するアドレスの値と、mem_adr の値とを比較
し、一致すれば、mem_dataの内容を表示し、一致しなけ
れば、メモリ4の値を表示する。
ザが会話的に変更、参照する場合 表示を要求するアドレスの値と、mem_adr の値とを比較
し、一致すれば、mem_dataの内容を表示し、一致しなけ
れば、メモリ4の値を表示する。
【0042】以上により、1命令ステップ実行終了後メ
モリの内容を表示させるとメモリの値が変更されている
ことになり、実際のメモリが変更されるのは、ハードウ
ェアとタイミングが一致する。
モリの内容を表示させるとメモリの値が変更されている
ことになり、実際のメモリが変更されるのは、ハードウ
ェアとタイミングが一致する。
【0043】このように、上記実施例では、レジスタや
メモリを変更、参照する場合、種々の場合毎に、第1の
レジスタ1と第2のレジスタ2とを切換えたり、メモリ
変数を選択的に用いて実行ステージの状態を出力するよ
うにしたので、どんな場合であっても、ユーザにとっ
て、自然なタイミングでのレジスタやメモリの内容を得
ることができる。
メモリを変更、参照する場合、種々の場合毎に、第1の
レジスタ1と第2のレジスタ2とを切換えたり、メモリ
変数を選択的に用いて実行ステージの状態を出力するよ
うにしたので、どんな場合であっても、ユーザにとっ
て、自然なタイミングでのレジスタやメモリの内容を得
ることができる。
【0044】
【発明の効果】以上説明したように、本発明のパイプラ
イン計算機シミュレータによれば、実行ステージ終了後
に、その実行ステージで演算処理を行った値をレジスタ
またはメモリの値として出力するパイプラインシミュレ
ータ制御部を備えたので、アクセスタイミングをハード
ウェアに忠実にシミュレートしながら、プログラムの論
理デバッグに有用な1命令のステップ実行において、レ
ジスタとメモリの変更内容を自然なタイミングで表示す
ることができる。
イン計算機シミュレータによれば、実行ステージ終了後
に、その実行ステージで演算処理を行った値をレジスタ
またはメモリの値として出力するパイプラインシミュレ
ータ制御部を備えたので、アクセスタイミングをハード
ウェアに忠実にシミュレートしながら、プログラムの論
理デバッグに有用な1命令のステップ実行において、レ
ジスタとメモリの変更内容を自然なタイミングで表示す
ることができる。
【図1】本発明の一実施例のパイプライン計算機シミュ
レータの構成図である。
レータの構成図である。
【図2】パイプライン制御の一例を示す説明図である。
【図3】レジスタの競合が起こる場合のパイプラインの
説明図である。
説明図である。
【図4】本発明のパイプライン計算機シミュレータにお
ける命令から変更する場合のレジスタの書き込み状態の
説明図である。
ける命令から変更する場合のレジスタの書き込み状態の
説明図である。
1 第1のレジスタ 2 第2のレジスタ 3 メモリ変数格納部 4 メモリ 5 パイプラインシミュレータ制御部
Claims (5)
- 【請求項1】 与えられた命令による演算処理を実行す
る実行ステージと、この実行ステージによる演算結果を
レジスタに書き込むライトバックステージとを含む1命
令の処理をパイプライン処理するパイプライン計算機の
状態をシミュレートするパイプライン計算機シミュレー
タにおいて、 前記実行ステージで書き込みを行う第1のレジスタと、 パイプライン計算機のサイクルをシミュレートする第2
のレジスタと、 タイミングと読み書きする状況によって、参照または変
更するレジスタを、前記第1または第2のレジスタと
し、前記実行ステージ終了後に、その実行ステージで演
算処理したレジスタの値を出力するパイプラインシミュ
レータ制御部を備えたことを特徴とするパイプライン計
算機シミュレータ。 - 【請求項2】 与えられた命令によるメモリのアドレス
演算を行う実行ステージと、この実行ステージで演算し
たアドレスにロードまたはストアを行うメモリステージ
とを含む1命令の処理をパイプライン処理するパイプラ
イン計算機の状態をシミュレートするパイプライン計算
機シミュレータにおいて、 前記メモリステージでストアを行うメモリのアドレスと
そのアドレスのデータを保持するアドレス変数とデータ
変数とを格納する変数格納部と、 参照または変更する状況に応じて、前記アドレス変数と
データ変数とを選択的に用いて、前記実行ステージ終了
後に、その実行ステージで演算したメモリの内容を出力
するパイプラインシミュレータ制御部を備えたことを特
徴とするパイプライン計算機シミュレータ。 - 【請求項3】 請求項1記載のパイプライン計算機シミ
ュレータにおいて、 命令からレジスタを参照または変更する場合は、実行ス
テージにおいて、前記第1のレジスタに対して参照また
は変更を行い、 計算機の内部動作として変更する場合は、実行ステージ
において、第1および第2のレジスタ双方に対して行
い、参照する場合は、前記第2のレジスタに対して行
い、 シミュレータのコマンドとして参照する場合は、前記第
1のレジスタ、変更は双方のレジスタに対して行うよう
制御するパイプラインシミュレータ制御部とを備えたこ
とを特徴とするパイプライン計算機シミュレータ。 - 【請求項4】 請求項2記載のパイプライン計算機シミ
ュレータにおいて、 命令から変更する場合は、実行ステージにおいて、前記
アドレス変数と前記データ変数にそれぞれストアするア
ドレスとデータとを格納し、メモリステージで当該アド
レス変数で示されるアドレスに、前記データ変数で示さ
れるデータをストアし、 計算機の内部動作として参照または変更する場合は、メ
モリの値をそのまま読み書きし、 シミュレータのコマンドとして参照または変更する場合
は、そのコマンドのアドレスの値と、前記変数アドレス
の値とを比較し、一致すれば前記変数データの内容を出
力し、一致しなければ、前記メモリの値を出力するパイ
プラインシミュレータ制御部を備えたことを特徴とする
パイプライン計算機シミュレータ。 - 【請求項5】 与えられた命令による演算処理を実行す
る実行ステージと、この実行ステージによる演算結果を
レジスタに書き込むライトバックステージとを含む1命
令の処理をパイプライン処理するパイプライン計算機の
状態をシミュレートするパイプライン計算機シミュレー
タにおいて、 前記実行ステージで書き込みを行う第1のレジスタと、 パイプライン計算機のサイクルをシミュレートする第2
のレジスタと、 前記メモリステージでストアを行うメモリのアドレスと
そのアドレスのデータを保持するアドレス変数とデータ
変数とを格納する変数格納部と、 命令からレジスタを参照または変更する場合は、実行ス
テージにおいて、前記第1のレジスタに対して参照また
は変更を行い、計算機の内部動作として変更する場合
は、実行ステージにおいて、第1および第2のレジスタ
双方に対して行い、参照する場合は、前記第2のレジス
タに対して行い、シミュレータのコマンドとして参照す
る場合は、前記第1のレジスタ、変更は双方のレジスタ
に対して行うよう制御すると共に、 命令からメモリ内容を変更する場合は、実行ステージに
おいて、前記アドレス変数と前記データ変数にそれぞれ
ストアするアドレスとデータとを格納し、メモリステー
ジで当該アドレス変数で示されるアドレスに、前記デー
タ変数で示されるデータをストアし、計算機の内部動作
として参照または変更する場合は、メモリの値をそのま
ま読み書きし、シミュレータのコマンドとして参照また
は変更する場合は、そのコマンドのアドレスの値と、前
記変数アドレスの値とを比較し、一致すれば前記変数デ
ータの内容を出力し、一致しなければ、前記メモリの値
を出力して、 前記実行ステージ終了後に、その実行ステージで演算処
理したレジスタおよびメモリの値を出力するパイプライ
ンシミュレータ制御部を備えたことを特徴とするパイプ
ライン計算機シミュレータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9604395A JPH08272612A (ja) | 1995-03-29 | 1995-03-29 | パイプライン計算機シミュレータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9604395A JPH08272612A (ja) | 1995-03-29 | 1995-03-29 | パイプライン計算機シミュレータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08272612A true JPH08272612A (ja) | 1996-10-18 |
Family
ID=14154464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9604395A Pending JPH08272612A (ja) | 1995-03-29 | 1995-03-29 | パイプライン計算機シミュレータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08272612A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7302380B2 (en) | 2002-12-12 | 2007-11-27 | Matsushita Electric, Industrial Co., Ltd. | Simulation apparatus, method and program |
-
1995
- 1995-03-29 JP JP9604395A patent/JPH08272612A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7302380B2 (en) | 2002-12-12 | 2007-11-27 | Matsushita Electric, Industrial Co., Ltd. | Simulation apparatus, method and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8725485B2 (en) | Simulation method and simulation apparatus | |
EP0241946A2 (en) | Information processing system | |
JPS6217252B2 (ja) | ||
JPH10228393A (ja) | 二重プロセッサ回路の動作をシミュレーションするためのコンピュータ実行方法及び信号プロセッサシミュレータ | |
JPS5975347A (ja) | 論理回路のシミユレ−シヨン装置 | |
JPS6250856B2 (ja) | ||
JPH0412503B2 (ja) | ||
JP2004030638A (ja) | マイクロプロセッサキャッシュ設計初期化 | |
US6161171A (en) | Apparatus for pipelining sequential instructions in synchronism with an operation clock | |
US5581720A (en) | Apparatus and method for updating information in a microcode instruction | |
JPH08272612A (ja) | パイプライン計算機シミュレータ | |
JPH09212360A (ja) | データ処理装置 | |
US5893928A (en) | Data movement apparatus and method | |
JPH02197924A (ja) | 中央演算処理装置 | |
JP2563708B2 (ja) | マイクロプロセッサ装置およびそれを用いたエミュレータ装置 | |
IES990283A2 (en) | A DSP coprocessor | |
JPH07114509A (ja) | メモリアクセス装置 | |
JP2000020345A (ja) | マイクロプロセッサ及びデータ処理システム | |
JPH06149669A (ja) | キャッシュデータ転送方式およびキャッシュデータ転送装置 | |
JP4553622B2 (ja) | データ処理装置 | |
JP2869414B1 (ja) | データ処理装置 | |
JPH0385636A (ja) | 命令先行制御装置 | |
JPH06301532A (ja) | マイクロプロセッサ装置 | |
JP2576589B2 (ja) | 仮想記憶アクセス制御方式 | |
JPS63291170A (ja) | シミユレ−タ |