JPH05346871A - 異種計算機命令の疑似実行方法および装置 - Google Patents
異種計算機命令の疑似実行方法および装置Info
- Publication number
- JPH05346871A JPH05346871A JP4155193A JP15519392A JPH05346871A JP H05346871 A JPH05346871 A JP H05346871A JP 4155193 A JP4155193 A JP 4155193A JP 15519392 A JP15519392 A JP 15519392A JP H05346871 A JPH05346871 A JP H05346871A
- Authority
- JP
- Japan
- Prior art keywords
- pseudo
- instruction
- execution
- computer
- error
- 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
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】異種計算機命令を疑似的に実行する場合、演算
エラー割込み発生時のエラー情報として本来必要な情報
が簡単に得られるようにする。 【構成】異種計算機命令Aを疑似的に実行する際、演算
完了待合せ/割込み禁止機構5によりPSW1上の割込
み許可/禁止フラグCEIを保存し更にPSW1上で同
CEIをオフし、実行中演算の完了を待合せた後、コピ
ー機構6にて、命令Aの示すソース・オペランドを特定
レジスタにコピーし、呼出し機構7により疑似実行機構
4を起動して、疑似実行サブルーチンに従う命令Aの疑
似実行を行わせる。サブルーチン実行後、特定レジスタ
を介して返される演算結果を、コピー機構8にて、命令
Aの示すデスティネーション・オペランドにコピーし、
異種計算機のアーキテクチャに従う演算エラー割込み発
生条件成立時には、専用SVC発行機構10にて専用S
VCを発行し、演算エラー割込みを疑似的に発生させ
る。
エラー割込み発生時のエラー情報として本来必要な情報
が簡単に得られるようにする。 【構成】異種計算機命令Aを疑似的に実行する際、演算
完了待合せ/割込み禁止機構5によりPSW1上の割込
み許可/禁止フラグCEIを保存し更にPSW1上で同
CEIをオフし、実行中演算の完了を待合せた後、コピ
ー機構6にて、命令Aの示すソース・オペランドを特定
レジスタにコピーし、呼出し機構7により疑似実行機構
4を起動して、疑似実行サブルーチンに従う命令Aの疑
似実行を行わせる。サブルーチン実行後、特定レジスタ
を介して返される演算結果を、コピー機構8にて、命令
Aの示すデスティネーション・オペランドにコピーし、
異種計算機のアーキテクチャに従う演算エラー割込み発
生条件成立時には、専用SVC発行機構10にて専用S
VCを発行し、演算エラー割込みを疑似的に発生させ
る。
Description
【0001】
【産業上の利用分野】この発明は、異なるアーキテクチ
ャを持つ異種計算機の命令を疑似的に実行するのに好適
な異種計算機命令の疑似実行方法および装置に係り、特
に命令疑似実行の際の演算エラー割込み発生方式に関す
る。
ャを持つ異種計算機の命令を疑似的に実行するのに好適
な異種計算機命令の疑似実行方法および装置に係り、特
に命令疑似実行の際の演算エラー割込み発生方式に関す
る。
【0002】
【従来の技術】従来、何らかの理由で計算機のアーキテ
クチャ変更後に旧アーキテクチャの計算機の命令もサポ
ートする等、アーキテクチャが異なる計算機の命令を疑
似的に実行(エミュレート)したい場合、単に演算機能
のみに着目して実行するのが一般的であった。
クチャ変更後に旧アーキテクチャの計算機の命令もサポ
ートする等、アーキテクチャが異なる計算機の命令を疑
似的に実行(エミュレート)したい場合、単に演算機能
のみに着目して実行するのが一般的であった。
【0003】例えば、単純な命令体系を持つRISC
(Reduced Instruction Set Computer)型の計算機にお
いて、三角関数のような高機能命令を備えるCISC
(Complex Instruction Set Computer)型の計算機の命
令を自計算機の命令を用いて疑似的に実行する場合に
は、従来は、CISC型の高機能命令を次の3つのRI
SC型命令、即ち、 (1)疑似的に実行しようとする命令のソース・オペラ
ンドを特定のレジスタにコピーする命令(mov命令) (2)上記特定のレジスタをオペランドとしてその命令
を疑似的に実行するサブルーチンを呼出す命令(cal
l命令) (3)呼出したサブルーチンから特定のレジスタを介し
て返される演算結果をデスティネーション・オペランド
にコピーする命令(mov命令) の3命令に展開していた。
(Reduced Instruction Set Computer)型の計算機にお
いて、三角関数のような高機能命令を備えるCISC
(Complex Instruction Set Computer)型の計算機の命
令を自計算機の命令を用いて疑似的に実行する場合に
は、従来は、CISC型の高機能命令を次の3つのRI
SC型命令、即ち、 (1)疑似的に実行しようとする命令のソース・オペラ
ンドを特定のレジスタにコピーする命令(mov命令) (2)上記特定のレジスタをオペランドとしてその命令
を疑似的に実行するサブルーチンを呼出す命令(cal
l命令) (3)呼出したサブルーチンから特定のレジスタを介し
て返される演算結果をデスティネーション・オペランド
にコピーする命令(mov命令) の3命令に展開していた。
【0004】図6は、以上の具体例を、CISC型計算
機の命令SINをRISC型の計算機で疑似的に実行す
る場合について示すものである。図中、61はレジスタ
Rsをソース・オペランドとしてSIN演算を行い、そ
の結果をレジスタRd に格納するCISC型計算機の命
令SIN(Rd ,Rs )に対する、RISC型命令によ
る展開コード、62は上記CISC型計算機(異種計算
機)の命令SINを特定のレジスタws1,wd1をオペラ
ンドとしてRISC型計算機(実機)の命令で疑似的に
実行するサブルーチンである。
機の命令SINをRISC型の計算機で疑似的に実行す
る場合について示すものである。図中、61はレジスタ
Rsをソース・オペランドとしてSIN演算を行い、そ
の結果をレジスタRd に格納するCISC型計算機の命
令SIN(Rd ,Rs )に対する、RISC型命令によ
る展開コード、62は上記CISC型計算機(異種計算
機)の命令SINを特定のレジスタws1,wd1をオペラ
ンドとしてRISC型計算機(実機)の命令で疑似的に
実行するサブルーチンである。
【0005】命令SIN(Rd ,Rs )の展開コード6
1は、その命令SIN(Rd ,Rs)のソース・オペラ
ンドRs に対応するRISC型計算機のレジスタrs1の
内容を特定レジスタws1へコピーするmov命令61a
と、サブルーチン62を呼出すcall命令61bと、
サブルーチン62から特定のレジスタwd1を介して返さ
れる演算結果を命令SINのデスティネーション・オペ
ランドRd に対応するRISC型計算機のレジスタrd1
にコピーするmov命令61cとから構成される。この
ような構成により、CISC型計算機の命令SINをR
ISC型計算機で疑似的に実行することが可能となる。
1は、その命令SIN(Rd ,Rs)のソース・オペラ
ンドRs に対応するRISC型計算機のレジスタrs1の
内容を特定レジスタws1へコピーするmov命令61a
と、サブルーチン62を呼出すcall命令61bと、
サブルーチン62から特定のレジスタwd1を介して返さ
れる演算結果を命令SINのデスティネーション・オペ
ランドRd に対応するRISC型計算機のレジスタrd1
にコピーするmov命令61cとから構成される。この
ような構成により、CISC型計算機の命令SINをR
ISC型計算機で疑似的に実行することが可能となる。
【0006】ところで、このCISC型計算機の命令S
INを疑似的に実行中に、即ち(命令SINを疑似的に
実行する)サブルーチン62の実行中に、図7に示すよ
うに、例えばa′点で演算エラーが発生することがあ
る。
INを疑似的に実行中に、即ち(命令SINを疑似的に
実行する)サブルーチン62の実行中に、図7に示すよ
うに、例えばa′点で演算エラーが発生することがあ
る。
【0007】このとき、演算エラー割込みが許可になっ
ていると、同割込みが発生する。この割込みによる割込
み処理でエラー情報63として得ることができるのは、
サブルーチン62内での演算エラー割込みの発生の場所
(a′点のアドレス)や、このサブルーチン62内で演
算に使用していた特定レジスタws1,wd1とその値等
(実機の命令のオペランド等)である。
ていると、同割込みが発生する。この割込みによる割込
み処理でエラー情報63として得ることができるのは、
サブルーチン62内での演算エラー割込みの発生の場所
(a′点のアドレス)や、このサブルーチン62内で演
算に使用していた特定レジスタws1,wd1とその値等
(実機の命令のオペランド等)である。
【0008】しかし、この場合、本来エラー情報として
欲しいものは、ユーザのプログラム(オブジェクト)中
での疑似的に実行していた命令SINの位置、即ちその
命令SINの展開コード61のアドレス(図7において
a1またはa2で示す位置)や、その命令SINにて指
定したオペランドRd (=rd1),Rs (=rs1)とそ
の値等である。これらは、その命令SINを持つ計算機
であれば、その命令SINの実行中に演算エラーが発生
した場合に、演算エラー情報として得られていたはずで
ある。
欲しいものは、ユーザのプログラム(オブジェクト)中
での疑似的に実行していた命令SINの位置、即ちその
命令SINの展開コード61のアドレス(図7において
a1またはa2で示す位置)や、その命令SINにて指
定したオペランドRd (=rd1),Rs (=rs1)とそ
の値等である。これらは、その命令SINを持つ計算機
であれば、その命令SINの実行中に演算エラーが発生
した場合に、演算エラー情報として得られていたはずで
ある。
【0009】
【発明が解決しようとする課題】上記したように、異な
るアーキテクチャの計算機(異種計算機)の命令を疑似
的に実行するのに、単に演算機能のみに着目して実行す
る従来の方式では、疑似的に実行しようとする異種計算
機の命令の正常実行、または演算エラー割込み禁止での
動作を忠実に模倣できても、演算エラー割込み発生時に
得られる情報は、その命令を持つ異種計算機のものと全
く異なり、本来欲しいエラー情報を得ることができない
という問題があった。しかも、演算エラー割込み発生時
に得られる情報から、本来欲しいエラー情報、即ち別計
算機でのエラー情報相当を得るには、専用のトレース機
能を設けてその内容を解析する等、大変な手間がかかる
という問題もあった。
るアーキテクチャの計算機(異種計算機)の命令を疑似
的に実行するのに、単に演算機能のみに着目して実行す
る従来の方式では、疑似的に実行しようとする異種計算
機の命令の正常実行、または演算エラー割込み禁止での
動作を忠実に模倣できても、演算エラー割込み発生時に
得られる情報は、その命令を持つ異種計算機のものと全
く異なり、本来欲しいエラー情報を得ることができない
という問題があった。しかも、演算エラー割込み発生時
に得られる情報から、本来欲しいエラー情報、即ち別計
算機でのエラー情報相当を得るには、専用のトレース機
能を設けてその内容を解析する等、大変な手間がかかる
という問題もあった。
【0010】また上記従来方式では、図8に示すよう
に、疑似的に実行しようとする命令Aの展開コード81
以前に発行された実機の命令B(83)が多数の実行サ
イクルを費やし演算エラー割込みを伴うエラーを発生し
得るマルチ・サイクル演算命令(実行に複数サイクルを
要するが、後続の命令はその間も逐次実行可能な命令)
である場合に、次のような問題も生じる可能性があっ
た。即ち、上記従来方式では、命令B(83)の実行と
並行して命令Aの疑似実行サブルーチン82が実行され
る場合に、サブルーチン82内で命令B(83)に演算
エラーが発生すると、演算エラー発生時点で命令A(の
疑似実行サブルーチン82)または命令B(83)のど
ちらのエラーであるかの特定が困難となり、そのエラー
処理は更に複雑且つ困難になるという問題があった。
に、疑似的に実行しようとする命令Aの展開コード81
以前に発行された実機の命令B(83)が多数の実行サ
イクルを費やし演算エラー割込みを伴うエラーを発生し
得るマルチ・サイクル演算命令(実行に複数サイクルを
要するが、後続の命令はその間も逐次実行可能な命令)
である場合に、次のような問題も生じる可能性があっ
た。即ち、上記従来方式では、命令B(83)の実行と
並行して命令Aの疑似実行サブルーチン82が実行され
る場合に、サブルーチン82内で命令B(83)に演算
エラーが発生すると、演算エラー発生時点で命令A(の
疑似実行サブルーチン82)または命令B(83)のど
ちらのエラーであるかの特定が困難となり、そのエラー
処理は更に複雑且つ困難になるという問題があった。
【0011】このように従来方式では、疑似的に実行し
ようとする命令のエラー処理が複雑となり、エラー・リ
カバリの可能性やその性能が極めて低くなる等の問題が
あった。
ようとする命令のエラー処理が複雑となり、エラー・リ
カバリの可能性やその性能が極めて低くなる等の問題が
あった。
【0012】この発明は上記事情に鑑みてなされたもの
でその目的は、ある計算機において、異なるアーキテク
チャを持つ異種計算機の命令を疑似的に実行する場合
に、演算エラー割込み発生時のエラー情報として、本来
必要な異種計算機でのエラー情報相当の情報を簡単に得
ることができる異種計算機命令の疑似実行方法および装
置を提供することにある。
でその目的は、ある計算機において、異なるアーキテク
チャを持つ異種計算機の命令を疑似的に実行する場合
に、演算エラー割込み発生時のエラー情報として、本来
必要な異種計算機でのエラー情報相当の情報を簡単に得
ることができる異種計算機命令の疑似実行方法および装
置を提供することにある。
【0013】
【課題を解決するための手段】本発明は、第1の計算機
とは異なるアーキテクチャを適用する第2の計算機の命
令を、上記第1の計算機の命令を用いてこの第1の計算
機で疑似的に実行する際に、演算エラーが発生し得る上
記第2の計算機で実行中の演算があればその完了を待合
せた後、疑似的実行の対象となる命令で指定されるソー
ス・オペランドを第1の特定レジスタにコピーして、上
記対象命令を疑似的に実行するための疑似実行サブルー
チンを呼出すようにしたことを特徴とする。
とは異なるアーキテクチャを適用する第2の計算機の命
令を、上記第1の計算機の命令を用いてこの第1の計算
機で疑似的に実行する際に、演算エラーが発生し得る上
記第2の計算機で実行中の演算があればその完了を待合
せた後、疑似的実行の対象となる命令で指定されるソー
ス・オペランドを第1の特定レジスタにコピーして、上
記対象命令を疑似的に実行するための疑似実行サブルー
チンを呼出すようにしたことを特徴とする。
【0014】また本発明は、呼出された疑似実行サブル
ーチンに従い、上記第1の特定レジスタをオペランドと
して、演算エラー割込み禁止状態で上記対象命令を疑似
的に実行し、その実行結果を第2の特定レジスタに設定
すると共に、演算エラー要因を含む演算ステータスを演
算ステータス保持手段に設定した後に元のルーチンに復
帰し、上記第2の特定レジスタに設定されている対象命
令の疑似的実行結果を、同命令で指定されるデスティネ
ーション・オペランドにコピーした後、上記演算ステー
タス保持手段に設定されている演算ステータス中に上記
第2の計算機のアーキテクチャに従う演算エラー割込み
を必要とする演算エラー要因があり、且つ対象命令の疑
似的実行直前に演算エラー割込み許可状態にある場合に
限り、上記第2の計算機のアーキテクチャに準拠した演
算エラー割込みを疑似的に発生させるための専用SVC
(スーパーバイザコール)を発行するようにしたことを
特徴とする。
ーチンに従い、上記第1の特定レジスタをオペランドと
して、演算エラー割込み禁止状態で上記対象命令を疑似
的に実行し、その実行結果を第2の特定レジスタに設定
すると共に、演算エラー要因を含む演算ステータスを演
算ステータス保持手段に設定した後に元のルーチンに復
帰し、上記第2の特定レジスタに設定されている対象命
令の疑似的実行結果を、同命令で指定されるデスティネ
ーション・オペランドにコピーした後、上記演算ステー
タス保持手段に設定されている演算ステータス中に上記
第2の計算機のアーキテクチャに従う演算エラー割込み
を必要とする演算エラー要因があり、且つ対象命令の疑
似的実行直前に演算エラー割込み許可状態にある場合に
限り、上記第2の計算機のアーキテクチャに準拠した演
算エラー割込みを疑似的に発生させるための専用SVC
(スーパーバイザコール)を発行するようにしたことを
特徴とする。
【0015】
【作用】上記の構成においては、割込み禁止状態で疑似
実行サブルーチンが実行されるため、その実行中に演算
エラーが発生しても第1の計算機のアーキテクチャに従
う演算エラー割込みの発生が抑止され、しかも対象命令
の実行に際して演算エラーが発生し得る演算が既に実行
中であれば、その演算の完了が待合されるため、疑似実
行サブルーチンの終了時に演算ステータス保持手段に設
定されている演算ステータスは、必ず対象命令の疑似実
行結果の演算ステータスとなる。
実行サブルーチンが実行されるため、その実行中に演算
エラーが発生しても第1の計算機のアーキテクチャに従
う演算エラー割込みの発生が抑止され、しかも対象命令
の実行に際して演算エラーが発生し得る演算が既に実行
中であれば、その演算の完了が待合されるため、疑似実
行サブルーチンの終了時に演算ステータス保持手段に設
定されている演算ステータスは、必ず対象命令の疑似実
行結果の演算ステータスとなる。
【0016】そして、疑似実行ルーチンからの復帰後
に、第2の計算機のアーキテクチャに従う演算エラー割
込み発生の条件が成立している場合に限り、上記の専用
SVCが発行される。この専用SVC発行により、第2
の計算機のアーキテクチャに準拠した演算エラー割込み
が疑似的に発生され、第2の計算機のアーキテクチャに
準拠したエラー情報が得られる。
に、第2の計算機のアーキテクチャに従う演算エラー割
込み発生の条件が成立している場合に限り、上記の専用
SVCが発行される。この専用SVC発行により、第2
の計算機のアーキテクチャに準拠した演算エラー割込み
が疑似的に発生され、第2の計算機のアーキテクチャに
準拠したエラー情報が得られる。
【0017】このように上記の構成によれば、第1の計
算機とは異なるアーキテクチャの第2の計算機の命令
(対象命令)を、エラー発生時の動作や、そのとき得ら
れるエラー情報を含め、第1の計算機上で忠実に実現す
ることができる。
算機とは異なるアーキテクチャの第2の計算機の命令
(対象命令)を、エラー発生時の動作や、そのとき得ら
れるエラー情報を含め、第1の計算機上で忠実に実現す
ることができる。
【0018】
【実施例】図1は本発明の一実施例に係る異種計算機命
令の疑似実行装置の機能構成を示すブロック図を示し、
図2は図1の装置の機能構成を実現するための基本のプ
ログラム構成を示す。
令の疑似実行装置の機能構成を示すブロック図を示し、
図2は図1の装置の機能構成を実現するための基本のプ
ログラム構成を示す。
【0019】アーキテクチャの異なる別の計算機(異種
計算機)の命令、例えばソース・オペランドrs1,rs2
…とデスティネーション・オペランドrd1…を持つ命令
Aを、図1の装置(を実現する実機)で実行するには、
図2に示すように、命令Aの展開コード(インライン展
開部)21と、命令Aを疑似的に実行するための疑似実
行サブルーチン(本体部サブルーチン)22とを必要と
する。
計算機)の命令、例えばソース・オペランドrs1,rs2
…とデスティネーション・オペランドrd1…を持つ命令
Aを、図1の装置(を実現する実機)で実行するには、
図2に示すように、命令Aの展開コード(インライン展
開部)21と、命令Aを疑似的に実行するための疑似実
行サブルーチン(本体部サブルーチン)22とを必要と
する。
【0020】命令Aの展開コード21は、同コード21
より以前に発行された命令の演算完了の待合せ(syn
c)、演算エラー割込み禁止状態の設定等を行うための
コード部21a、命令Aにて指定されたソース・オペラ
ンドrs1,rs2…を特定のレジスタws1,ws2…にコピ
ーするためのコード部21b、命令Aの疑似実行サブル
ーチン22を呼出すためのコード部21c、同サブルー
チン22から特定のレジスタwd1…を介して返される演
算結果を命令Aにて指定されたデスティネーション・オ
ペランドrd1…にコピーするためのコード部21d、お
よび予め指定された演算エラー割込み発生条件が成立し
た場合に命令Aを持つ計算機のアーキテクチャに従う演
算エラー割込みを疑似的に発生する疑似演算エラー(Ps
eudo-Calculation Error)割込み専用のSVC(SuperV
isor Call)、即ちSVC(PCE)を発行するためのコ
ード部21eにより構成される。このSVC(PCE)
発行による演算エラー割込みによりエラー情報23が得
られる。
より以前に発行された命令の演算完了の待合せ(syn
c)、演算エラー割込み禁止状態の設定等を行うための
コード部21a、命令Aにて指定されたソース・オペラ
ンドrs1,rs2…を特定のレジスタws1,ws2…にコピ
ーするためのコード部21b、命令Aの疑似実行サブル
ーチン22を呼出すためのコード部21c、同サブルー
チン22から特定のレジスタwd1…を介して返される演
算結果を命令Aにて指定されたデスティネーション・オ
ペランドrd1…にコピーするためのコード部21d、お
よび予め指定された演算エラー割込み発生条件が成立し
た場合に命令Aを持つ計算機のアーキテクチャに従う演
算エラー割込みを疑似的に発生する疑似演算エラー(Ps
eudo-Calculation Error)割込み専用のSVC(SuperV
isor Call)、即ちSVC(PCE)を発行するためのコ
ード部21eにより構成される。このSVC(PCE)
発行による演算エラー割込みによりエラー情報23が得
られる。
【0021】一方、命令Aの疑似実行サブルーチン22
は、演算エラー割込み禁止状態で特定レジスタ(ws1,
ws2…,wd1…)を用いて命令A相当の処理を実行し、
演算エラー発生時にはその演算エラー情報を生成するも
のである。
は、演算エラー割込み禁止状態で特定レジスタ(ws1,
ws2…,wd1…)を用いて命令A相当の処理を実行し、
演算エラー発生時にはその演算エラー情報を生成するも
のである。
【0022】さて、図1に示す異種計算機命令の疑似実
行装置は、プログラムの状態語を保持するためのPSW
(PSWレジスタ)1と、演算エラー要因を含み前記異
種計算機および図1の装置を実現する実機の両アーキテ
クチャに従う演算ステータスを保持するための演算ステ
ータス保持部(以下、FLAGSと称する)2とを有す
る。PSW1の特定領域には、演算エラー割込みの許可
/禁止状態を指定するマスク・フラグCEI(Calculat
ion Error Interrupt )が設定される。また、FLAG
S2には、実機のレジスタの1つが割当てられる。
行装置は、プログラムの状態語を保持するためのPSW
(PSWレジスタ)1と、演算エラー要因を含み前記異
種計算機および図1の装置を実現する実機の両アーキテ
クチャに従う演算ステータスを保持するための演算ステ
ータス保持部(以下、FLAGSと称する)2とを有す
る。PSW1の特定領域には、演算エラー割込みの許可
/禁止状態を指定するマスク・フラグCEI(Calculat
ion Error Interrupt )が設定される。また、FLAG
S2には、実機のレジスタの1つが割当てられる。
【0023】図1に示す異種計算機命令の疑似実行装置
はまた、PSW1上の上記フラグCEIを例えば最下位
ビット(LSB)に退避するためのCEI退避レジスタ
3と、図2に示す疑似実行サブルーチン22を実行する
疑似実行機構4とを有する。CEI退避レジスタ3に
は、実機のレジスタの1つが割当てられる。
はまた、PSW1上の上記フラグCEIを例えば最下位
ビット(LSB)に退避するためのCEI退避レジスタ
3と、図2に示す疑似実行サブルーチン22を実行する
疑似実行機構4とを有する。CEI退避レジスタ3に
は、実機のレジスタの1つが割当てられる。
【0024】図1に示す異種計算機命令の疑似実行装置
は更に、図2に示す展開コード21のコード部21aに
従う演算完了の待合せ、演算エラー割込みの禁止等を行
う演算完了待合せ/割込み禁止機構5と、コード部21
bに従うコピー処理を行うコピー機構6と、コード部2
1cに従い疑似実行機構4を呼出して起動する呼出し機
構7と、コード部21dに従うコピー処理を行うコピー
機構8と、コード部21eを実行してフラグCEIの復
元を行うCEI復元機構9と、同コード部21eを実行
してSVC(PCE)を発行する専用SVC発行機構1
0とを有する。
は更に、図2に示す展開コード21のコード部21aに
従う演算完了の待合せ、演算エラー割込みの禁止等を行
う演算完了待合せ/割込み禁止機構5と、コード部21
bに従うコピー処理を行うコピー機構6と、コード部2
1cに従い疑似実行機構4を呼出して起動する呼出し機
構7と、コード部21dに従うコピー処理を行うコピー
機構8と、コード部21eを実行してフラグCEIの復
元を行うCEI復元機構9と、同コード部21eを実行
してSVC(PCE)を発行する専用SVC発行機構1
0とを有する。
【0025】次に、図1に示す構成の異種計算機命令の
疑似実行装置により、アーキテクチャが異なる異種計算
機の命令Aを疑似的に実行する場合を例に、図3のフロ
ーチャートを適宜参照して説明する。まず、命令Aを図
1の装置で実行するには、同命令Aを、図2に示したよ
うに、図1の装置を実現する実機の命令にインライン展
開する。
疑似実行装置により、アーキテクチャが異なる異種計算
機の命令Aを疑似的に実行する場合を例に、図3のフロ
ーチャートを適宜参照して説明する。まず、命令Aを図
1の装置で実行するには、同命令Aを、図2に示したよ
うに、図1の装置を実現する実機の命令にインライン展
開する。
【0026】さて、図1の装置では、命令Aの展開コー
ド21より以前に発行された命令の演算エラーが命令A
の疑似実行中に発生しないようにするため、展開コード
21のコード部21aに従い、演算完了待合せ/割込み
禁止機構5により、先行する命令の演算完了を待合せる
(ステップS1)。即ち、演算完了待合せ/割込み禁止
部5は、その時点で演算エラーが発生し得る先行命令の
演算が実行中であれば、その演算が完了するまで、本命
令Aの疑似実行を遅らせる(sync)。
ド21より以前に発行された命令の演算エラーが命令A
の疑似実行中に発生しないようにするため、展開コード
21のコード部21aに従い、演算完了待合せ/割込み
禁止機構5により、先行する命令の演算完了を待合せる
(ステップS1)。即ち、演算完了待合せ/割込み禁止
部5は、その時点で演算エラーが発生し得る先行命令の
演算が実行中であれば、その演算が完了するまで、本命
令Aの疑似実行を遅らせる(sync)。
【0027】また演算完了待合せ/割込み禁止機構5
は、上記ステップS1において、PSW1上の現在のフ
ラグCEIの状態(演算エラー割込み許可/禁止状態)
をCEI退避レジスタ3のLSBに退避した後、PSW
1上のフラグCEIを割込み禁止状態に設定する。
は、上記ステップS1において、PSW1上の現在のフ
ラグCEIの状態(演算エラー割込み許可/禁止状態)
をCEI退避レジスタ3のLSBに退避した後、PSW
1上のフラグCEIを割込み禁止状態に設定する。
【0028】次に、展開コード21のコード部21bに
従い、命令Aにて指定されているソース・オペランドr
s1,rs2…を、コピー機構6により、実機上の特定のレ
ジスタws1,ws2…(図示せず)にコピーする(ステッ
プS2)。このコピー動作は、命令Aのソース・オペラ
ンド情報を、特定のレジスタws1,ws2…を介して疑似
実行機構4(により実行される疑似実行サブルーチン2
2)に渡すために行われる。
従い、命令Aにて指定されているソース・オペランドr
s1,rs2…を、コピー機構6により、実機上の特定のレ
ジスタws1,ws2…(図示せず)にコピーする(ステッ
プS2)。このコピー動作は、命令Aのソース・オペラ
ンド情報を、特定のレジスタws1,ws2…を介して疑似
実行機構4(により実行される疑似実行サブルーチン2
2)に渡すために行われる。
【0029】次に呼出し機構7により、展開コード21
のコード部21cに従って疑似実行機構4を呼出し起動
する(ステップS3)。これにより疑似実行機構4は、
疑似実行サブルーチン22に従い、(上記ステップS1
にて設定されている演算エラー割込み禁止状態におい
て)上記特定レジスタws1,ws2…をソース・オペラン
ドとして命令Aを疑似的に実行し、その演算結果を特定
レジスタwd1…に格納する(ステップS4)。即ち疑似
実行機構4は、特定レジスタwd1…をデスティネーショ
ン・オペランドとしてこれに結果を返す。
のコード部21cに従って疑似実行機構4を呼出し起動
する(ステップS3)。これにより疑似実行機構4は、
疑似実行サブルーチン22に従い、(上記ステップS1
にて設定されている演算エラー割込み禁止状態におい
て)上記特定レジスタws1,ws2…をソース・オペラン
ドとして命令Aを疑似的に実行し、その演算結果を特定
レジスタwd1…に格納する(ステップS4)。即ち疑似
実行機構4は、特定レジスタwd1…をデスティネーショ
ン・オペランドとしてこれに結果を返す。
【0030】この際、疑似実行機構4は、例えばオーバ
フロー、アンダフロー等の各種演算エラー要因を含み、
命令Aを持つ計算機(異種計算機)および実機の両アー
キテクチャに従う演算ステータス(即ち異種計算機で扱
われるのと同様の演算ステータス部分と実機で扱われる
のと同様の演算ステータス部分とを持つ演算ステータ
ス)をFLAGS2に設定する(ステップS5)。また
疑似実行機構4は、演算エラーが発生した場合には、所
定のレジスタ(汎用レジスタ)上に実機のアーキテクチ
ャに従うエラー情報を生成する。ここで、命令Aの展開
コード21は、前記したように演算完了待合せ/割込み
禁止機構5によるステップS1の動作によって、それ以
前の命令の演算の完了を待って実行されるため、FLA
GS2の演算ステータスが、先行する命令の演算によっ
て書換えられることはない。また、PSW1のフラグC
EIは、上記ステップS1で演算エラー割込み禁止状態
に設定されているため、疑似実行サブルーチン22の実
行中に演算エラーが発生しても、(実機のアーキテクチ
ャに従う)演算エラー割込みが発生することはない。
フロー、アンダフロー等の各種演算エラー要因を含み、
命令Aを持つ計算機(異種計算機)および実機の両アー
キテクチャに従う演算ステータス(即ち異種計算機で扱
われるのと同様の演算ステータス部分と実機で扱われる
のと同様の演算ステータス部分とを持つ演算ステータ
ス)をFLAGS2に設定する(ステップS5)。また
疑似実行機構4は、演算エラーが発生した場合には、所
定のレジスタ(汎用レジスタ)上に実機のアーキテクチ
ャに従うエラー情報を生成する。ここで、命令Aの展開
コード21は、前記したように演算完了待合せ/割込み
禁止機構5によるステップS1の動作によって、それ以
前の命令の演算の完了を待って実行されるため、FLA
GS2の演算ステータスが、先行する命令の演算によっ
て書換えられることはない。また、PSW1のフラグC
EIは、上記ステップS1で演算エラー割込み禁止状態
に設定されているため、疑似実行サブルーチン22の実
行中に演算エラーが発生しても、(実機のアーキテクチ
ャに従う)演算エラー割込みが発生することはない。
【0031】疑似実行機構4は疑似実行サブルーチン2
2を実行すると、呼出し機構7に制御を戻し、同サブル
ーチン22から展開コード21(メインルーチン)に復
帰させる。これにより、コピー機構8が起動される。コ
ピー機構8は、展開コード21のコード部21dに従
い、特定レジスタwd1…に格納されている命令Aの疑似
実行結果を、命令Aにて指定されているデスティネーシ
ョン・オペランドrd1…にに格納する(ステップS
6)。
2を実行すると、呼出し機構7に制御を戻し、同サブル
ーチン22から展開コード21(メインルーチン)に復
帰させる。これにより、コピー機構8が起動される。コ
ピー機構8は、展開コード21のコード部21dに従
い、特定レジスタwd1…に格納されている命令Aの疑似
実行結果を、命令Aにて指定されているデスティネーシ
ョン・オペランドrd1…にに格納する(ステップS
6)。
【0032】次に、CEI復元機構9が起動される。C
EI復元機構9は、展開コード21のコード部21eに
従い、前記ステップS1でCEI退避レジスタ3に退避
されていたフラグCEIの状態(演算エラー割込み許可
/禁止状態)をPSW1上に復元する(ステップS
7)。
EI復元機構9は、展開コード21のコード部21eに
従い、前記ステップS1でCEI退避レジスタ3に退避
されていたフラグCEIの状態(演算エラー割込み許可
/禁止状態)をPSW1上に復元する(ステップS
7)。
【0033】すると、専用SVC発行機構10が起動さ
れる。専用SVC発行機構10は、PSW1上の復元さ
れたフラグCEIにより演算エラー割込み許可状態が示
され、即ち命令Aの展開コード21の実行直前において
演算エラー割込み許可状態となっており、且つFLAG
S2に設定されている演算ステータスにより、(命令A
を持つ計算機のアーキテクチャに従う演算エラー割込み
を必要とする)演算エラー割込み要因が発生したこと、
即ち疑似実行サブルーチン22の実行中に演算エラー割
込み要因が発生したこと(命令Aでの演算エラー発生と
等価)が示されている場合に限り、命令Aを持つ計算機
(異種計算機)のアーキテクチャに従う演算エラー割込
みを疑似的に発生するための専用SVC、即ちSVC
(PEC)を発行する(ステップS8,S9)。
れる。専用SVC発行機構10は、PSW1上の復元さ
れたフラグCEIにより演算エラー割込み許可状態が示
され、即ち命令Aの展開コード21の実行直前において
演算エラー割込み許可状態となっており、且つFLAG
S2に設定されている演算ステータスにより、(命令A
を持つ計算機のアーキテクチャに従う演算エラー割込み
を必要とする)演算エラー割込み要因が発生したこと、
即ち疑似実行サブルーチン22の実行中に演算エラー割
込み要因が発生したこと(命令Aでの演算エラー発生と
等価)が示されている場合に限り、命令Aを持つ計算機
(異種計算機)のアーキテクチャに従う演算エラー割込
みを疑似的に発生するための専用SVC、即ちSVC
(PEC)を発行する(ステップS8,S9)。
【0034】ここで、専用SVCの選択的実行は、図3
のフローチャートに示すように、FLAGS2の内容
と、PSW1上のCEIの示す(展開コード21実行直
前での)演算エラー割込み許可/禁止状態に応じた条件
分岐で行う方法の他、「疑似実行サブルーチン22内に
て演算エラー割込み要因発生」と「展開コード21実行
直前で演算エラー割込み許可状態」という2つの条件の
論理積を特定のフラグに設定し、そのフラグの内容で直
接に専用SVCの実行または非実行を制御するなど、各
計算機それぞれ可能な方法で実施すればよい。
のフローチャートに示すように、FLAGS2の内容
と、PSW1上のCEIの示す(展開コード21実行直
前での)演算エラー割込み許可/禁止状態に応じた条件
分岐で行う方法の他、「疑似実行サブルーチン22内に
て演算エラー割込み要因発生」と「展開コード21実行
直前で演算エラー割込み許可状態」という2つの条件の
論理積を特定のフラグに設定し、そのフラグの内容で直
接に専用SVCの実行または非実行を制御するなど、各
計算機それぞれ可能な方法で実施すればよい。
【0035】さて、専用SVC発行機構10により発行
されるSVC(PEC)では、同SVC(PEC)のア
ドレス、命令Aのオペランドrs1,rs2…,rd1…の各
レジスタ番号、および疑似実行機構4にて生成されたエ
ラー情報の格納先レジスタのレジスタ番号がそれぞれパ
ラメータ指定されている。このようなパラメータ指定
は、SVC(PEC)が異種計算機の命令Aの展開コー
ド21中で、しかも疑似実行サブルーチン22からの復
帰後の位置に置かれることから可能となる。このSVC
(PCE)が発行されることにより、そのパラメータに
従い、SVC(PEC)のアドレス(図7のa2点に相
当するアドレス)、命令Aのオペランドrs1,rs2…,
rd1…の各レジスタ番号、同レジスタ番号で指定される
レジスタの内容、および疑似実行機構4にて生成されて
前記所定レジスタに格納されたエラー情報が、所定の割
込みスタックに格納される。この結果、SVC(PE
C)発行に伴う演算エラー割込みにより、上記割込みス
タック上の情報がエラー情報23として得られる。
されるSVC(PEC)では、同SVC(PEC)のア
ドレス、命令Aのオペランドrs1,rs2…,rd1…の各
レジスタ番号、および疑似実行機構4にて生成されたエ
ラー情報の格納先レジスタのレジスタ番号がそれぞれパ
ラメータ指定されている。このようなパラメータ指定
は、SVC(PEC)が異種計算機の命令Aの展開コー
ド21中で、しかも疑似実行サブルーチン22からの復
帰後の位置に置かれることから可能となる。このSVC
(PCE)が発行されることにより、そのパラメータに
従い、SVC(PEC)のアドレス(図7のa2点に相
当するアドレス)、命令Aのオペランドrs1,rs2…,
rd1…の各レジスタ番号、同レジスタ番号で指定される
レジスタの内容、および疑似実行機構4にて生成されて
前記所定レジスタに格納されたエラー情報が、所定の割
込みスタックに格納される。この結果、SVC(PE
C)発行に伴う演算エラー割込みにより、上記割込みス
タック上の情報がエラー情報23として得られる。
【0036】このように本実施例によれば、アーキテク
チャの異なる異種計算機の命令Aを、図1の装置(を実
現する実機)にて疑似的に実行すると共に、命令Aでの
演算エラー割込みも、疑似実行サブルーチン22からの
復帰後に、専用SVCの発行により、上記異種計算機同
様に実現でき、その専用SVC発行による演算エラー割
込み発生時に得られるエラー情報も、上記異種計算機の
アーキテクチャに準拠するものにできる。
チャの異なる異種計算機の命令Aを、図1の装置(を実
現する実機)にて疑似的に実行すると共に、命令Aでの
演算エラー割込みも、疑似実行サブルーチン22からの
復帰後に、専用SVCの発行により、上記異種計算機同
様に実現でき、その専用SVC発行による演算エラー割
込み発生時に得られるエラー情報も、上記異種計算機の
アーキテクチャに準拠するものにできる。
【0037】以上に述べた異種計算機命令疑似実行のた
めのプログラム構成の具体例を図4に示す。この図4
は、RISC型のある計算機において、アーキテクチャ
の異なるCISC型の計算機の命令として、ソース・オ
ペランドrs1,rs2に対して演算(*)を行った結果を
デスティネーション・オペランドrd に返す命令PIN
ST(Rd ,Rs1,Rs2)を、疑似的に実行する場合の
例を示したものであり、同図(a)には命令PINST
(Rd ,Rs1,Rs2)の展開コード41を、同図(b)
には命令PINST(Rd ,Rs1,Rs2)の疑似実行サ
ブルーチン42を示す。なお、rs1,rs2,rd は、命
令PINSTを持つ計算機のレジスタRs1,Rs2,Rd
にマッピングしている実機のレジスタである。また、図
中の“#”,“%”は、それぞれ即値,レジスタを表す
オペランドの接頭句である。
めのプログラム構成の具体例を図4に示す。この図4
は、RISC型のある計算機において、アーキテクチャ
の異なるCISC型の計算機の命令として、ソース・オ
ペランドrs1,rs2に対して演算(*)を行った結果を
デスティネーション・オペランドrd に返す命令PIN
ST(Rd ,Rs1,Rs2)を、疑似的に実行する場合の
例を示したものであり、同図(a)には命令PINST
(Rd ,Rs1,Rs2)の展開コード41を、同図(b)
には命令PINST(Rd ,Rs1,Rs2)の疑似実行サ
ブルーチン42を示す。なお、rs1,rs2,rd は、命
令PINSTを持つ計算機のレジスタRs1,Rs2,Rd
にマッピングしている実機のレジスタである。また、図
中の“#”,“%”は、それぞれ即値,レジスタを表す
オペランドの接頭句である。
【0038】また図5に、同じ命令PINSTを、VL
IW(Very Long Instruction Word)型の4並列処理
(4命令サイズ単位、即ち図の行単位に複数の命令を同
時に処理する)方式をとるCISC型計算機で疑似的に
実行する場合のプログラム構成例を示し、同図(a)に
は命令PINSTの展開コード51を、同図(b)には
命令PINSTの疑似実行サブルーチン52を示す。
IW(Very Long Instruction Word)型の4並列処理
(4命令サイズ単位、即ち図の行単位に複数の命令を同
時に処理する)方式をとるCISC型計算機で疑似的に
実行する場合のプログラム構成例を示し、同図(a)に
は命令PINSTの展開コード51を、同図(b)には
命令PINSTの疑似実行サブルーチン52を示す。
【0039】図4,図5において、展開コード41,5
1中の“CCEI(#OFF,%oldCEI)”は図
2のコード部21aに対応するもので、演算完了待合せ
(sync)、PSW1上のCEIをレジスタoldC
EI(CEI退避レジスタ3)に退避すること、および
PSW1上のCEIに即値OFFを設定して割込み禁止
状態にすることを指示する命令である。
1中の“CCEI(#OFF,%oldCEI)”は図
2のコード部21aに対応するもので、演算完了待合せ
(sync)、PSW1上のCEIをレジスタoldC
EI(CEI退避レジスタ3)に退避すること、および
PSW1上のCEIに即値OFFを設定して割込み禁止
状態にすることを指示する命令である。
【0040】次に、展開コード41,51中の“mov
(%rs1,%ws1)”および“mov(%rs2,%ws
2)”の2命令は図2のコード部21bに対応するもの
で、レジスタrs1,rs2からレジスタws1,ws2へのコ
ピーを指示する。
(%rs1,%ws1)”および“mov(%rs2,%ws
2)”の2命令は図2のコード部21bに対応するもの
で、レジスタrs1,rs2からレジスタws1,ws2へのコ
ピーを指示する。
【0041】次に、展開コード41,51中の“mov
(#L10,%link)”および“jump(#PI
NST)”の2命令は、図2のコード部21cに対応す
るもので、前者は図示せぬ復帰先格納用レジスタlin
k(実機の汎用レジスタの1つ)に復帰先(戻り先)ア
ドレスL10を格納することを、後者はPINSTの疑
似実行サブルーチン(42,52)にジャンプすること
を指示する。
(#L10,%link)”および“jump(#PI
NST)”の2命令は、図2のコード部21cに対応す
るもので、前者は図示せぬ復帰先格納用レジスタlin
k(実機の汎用レジスタの1つ)に復帰先(戻り先)ア
ドレスL10を格納することを、後者はPINSTの疑
似実行サブルーチン(42,52)にジャンプすること
を指示する。
【0042】次に、展開コード41,51中の“mov
(%wd ,%rd )”は図2のコード部21dに対応す
るもので、レジスタwd からレジスタrd へのコピーを
指示する命令である。
(%wd ,%rd )”は図2のコード部21dに対応す
るもので、レジスタwd からレジスタrd へのコピーを
指示する命令である。
【0043】次に、展開コード41,51中の“CCE
I(%oldCEI,%zero)”は図2のコード部
21dの一部に対応するもので、現在のPSW1上のC
EIをレジスタzero(実際には存在しないゼロ・レ
ジスタであり、同レジスタへのデータ書込みによりその
データは捨てられることになる)に書込むことにより捨
てることと、レジスタoldCEI(CEI退避レジス
タ3)の内容をPSW1に復元することを指示する命令
である。
I(%oldCEI,%zero)”は図2のコード部
21dの一部に対応するもので、現在のPSW1上のC
EIをレジスタzero(実際には存在しないゼロ・レ
ジスタであり、同レジスタへのデータ書込みによりその
データは捨てられることになる)に書込むことにより捨
てることと、レジスタoldCEI(CEI退避レジス
タ3)の内容をPSW1に復元することを指示する命令
である。
【0044】次に、展開コード41中の、“and(%
FLAGS,#ERRMASK)”、“jump.ze
ro(#L11)”、“and(%oldCEI,#
1)”、“jump.zero(#L11)”および
“SVC(PCE)”の5命令は図2のコード部21d
の一部に対応するもので、FLAGS2に設定されてい
る演算ステータスをERRMASK(エラーの有無をチ
ェックしたいフラグビットの位置が“1”に設定されて
いるマスク値)でマスクした後の値がオール“0”でな
く(即ちマスク値ERRMASKで指定された演算ステ
ータスのフラグのうちの1つでもエラーを示す“1”で
あり)、且つレジスタoldCEI(CEI退避レジス
タ3)の内容が割込み許可状態を示す“1”(ON状
態)であれば、SVC(PCE)を発行し、それ以外で
あれば、アドレスL11に分岐することを指示する。
FLAGS,#ERRMASK)”、“jump.ze
ro(#L11)”、“and(%oldCEI,#
1)”、“jump.zero(#L11)”および
“SVC(PCE)”の5命令は図2のコード部21d
の一部に対応するもので、FLAGS2に設定されてい
る演算ステータスをERRMASK(エラーの有無をチ
ェックしたいフラグビットの位置が“1”に設定されて
いるマスク値)でマスクした後の値がオール“0”でな
く(即ちマスク値ERRMASKで指定された演算ステ
ータスのフラグのうちの1つでもエラーを示す“1”で
あり)、且つレジスタoldCEI(CEI退避レジス
タ3)の内容が割込み許可状態を示す“1”(ON状
態)であれば、SVC(PCE)を発行し、それ以外で
あれば、アドレスL11に分岐することを指示する。
【0045】次に、展開コード51中の“ERR?SV
C(PCE)”は、図示せぬ条件実行制御レジスタCC
R中の条件実行フラグERRが“1”(真)ならSVC
(PCE)を発行し、“0”(偽)ならnop(no
operation)とすることを指示する命令であ
る。
C(PCE)”は、図示せぬ条件実行制御レジスタCC
R中の条件実行フラグERRが“1”(真)ならSVC
(PCE)を発行し、“0”(偽)ならnop(no
operation)とすることを指示する命令であ
る。
【0046】一方、疑似実行サブルーチン42,52中
の“jump(%link)”は同ルーチン42,52
から復帰先格納用レジスタlinkの示すアドレスに復
帰することを指示する命令である。
の“jump(%link)”は同ルーチン42,52
から復帰先格納用レジスタlinkの示すアドレスに復
帰することを指示する命令である。
【0047】次に、疑似実行サブルーチン52中の“t
stbn(%rs,#MASK,@n)”(但し、rs
はFLAGSまたは条件実行制御レジスタCCRを示す
ccr、MASKはERRMASKまたは@(F1,F
2)、nはF1またはERR)は、<レジスタrsの内
容>と<即値MASK>とのビット毎の論理積をとり、
その結果の論理和値を、図示せぬ条件実行制御レジスタ
CCR中のフラグnに代入する命令である。なお、@
(F1,F2)は、条件実行制御レジスタCCR中のフ
ラグF1とフラグF2に相当するビットを“1”とする
マスク値を示す。
stbn(%rs,#MASK,@n)”(但し、rs
はFLAGSまたは条件実行制御レジスタCCRを示す
ccr、MASKはERRMASKまたは@(F1,F
2)、nはF1またはERR)は、<レジスタrsの内
容>と<即値MASK>とのビット毎の論理積をとり、
その結果の論理和値を、図示せぬ条件実行制御レジスタ
CCR中のフラグnに代入する命令である。なお、@
(F1,F2)は、条件実行制御レジスタCCR中のフ
ラグF1とフラグF2に相当するビットを“1”とする
マスク値を示す。
【0048】また図5において、“tstgt(%ol
dCEI,#0,@F2)”は、<レジスタoldCE
I(CEI退避レジスタ3)の内容>がゼロより大きい
ならば“1”を、そうでなければ“0”を条件実行制御
レジスタCCR中のフラグF2に代入する命令である。
dCEI,#0,@F2)”は、<レジスタoldCE
I(CEI退避レジスタ3)の内容>がゼロより大きい
ならば“1”を、そうでなければ“0”を条件実行制御
レジスタCCR中のフラグF2に代入する命令である。
【0049】以上の図4および図5に示すプログラム構
成によれば、いずれも、疑似実行サブルーチン42,5
2から復帰後に、「FLAGS2が演算エラー割込み要
因発生を表示」且つ「CCEI命令による演算エラー割
込み禁止直前に演算エラー割込み許可状態」の条件成立
をもって、SVC(PCE)が発行される。しかし、図
4と図5のプログラム構成では、その実施方法が異な
る。
成によれば、いずれも、疑似実行サブルーチン42,5
2から復帰後に、「FLAGS2が演算エラー割込み要
因発生を表示」且つ「CCEI命令による演算エラー割
込み禁止直前に演算エラー割込み許可状態」の条件成立
をもって、SVC(PCE)が発行される。しかし、図
4と図5のプログラム構成では、その実施方法が異な
る。
【0050】即ち、図4の例では、上記専用SVCの発
行条件の検査およびその条件発行を、疑似実行サブルー
チン42から復帰後の条件分岐により実施している。こ
れに対し、図5の例では、疑似実行サブルーチン52側
で上記専用SVCの発行条件が調べられ、その結果を条
件実行制御レジスタCCR中の条件実行フラグERRに
設定して同サブルーチン52から復帰し、このフラグE
RRを専用SVC命令に指定することにより、当該SV
Cの条件発行を行うようにしている。図5(b)におい
て符号53で示される部分が、その専用SVCの発行条
件検査部分であり、復帰のための分岐命令の空きフィー
ルドとそのディレイド・スロットにて、 if((FLAGS & ERRMASK)≠0 AND (oldCEI & 1)≠0) then ERR:=TRUE else ERR:=FALSE (但し、記号“&”は論理積を示す)
行条件の検査およびその条件発行を、疑似実行サブルー
チン42から復帰後の条件分岐により実施している。こ
れに対し、図5の例では、疑似実行サブルーチン52側
で上記専用SVCの発行条件が調べられ、その結果を条
件実行制御レジスタCCR中の条件実行フラグERRに
設定して同サブルーチン52から復帰し、このフラグE
RRを専用SVC命令に指定することにより、当該SV
Cの条件発行を行うようにしている。図5(b)におい
て符号53で示される部分が、その専用SVCの発行条
件検査部分であり、復帰のための分岐命令の空きフィー
ルドとそのディレイド・スロットにて、 if((FLAGS & ERRMASK)≠0 AND (oldCEI & 1)≠0) then ERR:=TRUE else ERR:=FALSE (但し、記号“&”は論理積を示す)
【0051】という機能、即ちFLAGS2に設定され
ている演算ステータスをERRMASKでマスクした後
の値がオール“0”でなく、且つレジスタoldCEI
(CEI退避レジスタ3)の内容がオール“0”(割込
み禁止状態)でなければ、フラグERRを真値に、そう
でなければフラグERRを偽値に設定する機能を実現し
ている。
ている演算ステータスをERRMASKでマスクした後
の値がオール“0”でなく、且つレジスタoldCEI
(CEI退避レジスタ3)の内容がオール“0”(割込
み禁止状態)でなければ、フラグERRを真値に、そう
でなければフラグERRを偽値に設定する機能を実現し
ている。
【0052】以上は、単にアーキテクチャの異なる計算
機の命令を疑似的に実行する場合について説明したが、
この異種計算機命令の疑似実行方式は、アーキテクチャ
変更時、旧計算機のアーキテクチャ依存プログラムを移
植する際の旧命令サポート方式として応用可能である。
機の命令を疑似的に実行する場合について説明したが、
この異種計算機命令の疑似実行方式は、アーキテクチャ
変更時、旧計算機のアーキテクチャ依存プログラムを移
植する際の旧命令サポート方式として応用可能である。
【0053】
【発明の効果】以上詳述したようにこの発明によれば、
アーキテクチャが異なる計算機(異種計算機)の命令
(対象命令)を疑似的に実行する際に、既に実行中の演
算があればその演算の完了を待ってから、上記対象命令
を割込み禁止状態で疑似的に実行するためのサブルーチ
ン(疑似実行サブルーチン)を呼出し、同ルーチンから
の復帰後に、異種計算機のアーキテクチャに従う演算エ
ラー割込み発生の条件が成立している場合に限り、専用
のSVCを発行して、異種計算機のアーキテクチャに準
拠した演算エラー割込みを疑似的に発生する構成とした
ので、上記対象命令の正常実行時や演算エラー割込み禁
止での動作は勿論、演算エラー割込み発生時の動作もほ
ぼ忠実に模倣できるようになり、演算エラー割込み発生
時には、その対象命令を持つ計算機(異種計算機)上で
本来得られる情報と同等の情報を容易に得ることができ
る。
アーキテクチャが異なる計算機(異種計算機)の命令
(対象命令)を疑似的に実行する際に、既に実行中の演
算があればその演算の完了を待ってから、上記対象命令
を割込み禁止状態で疑似的に実行するためのサブルーチ
ン(疑似実行サブルーチン)を呼出し、同ルーチンから
の復帰後に、異種計算機のアーキテクチャに従う演算エ
ラー割込み発生の条件が成立している場合に限り、専用
のSVCを発行して、異種計算機のアーキテクチャに準
拠した演算エラー割込みを疑似的に発生する構成とした
ので、上記対象命令の正常実行時や演算エラー割込み禁
止での動作は勿論、演算エラー割込み発生時の動作もほ
ぼ忠実に模倣できるようになり、演算エラー割込み発生
時には、その対象命令を持つ計算機(異種計算機)上で
本来得られる情報と同等の情報を容易に得ることができ
る。
【0054】この結果、上記対象命令のエラー(リカバ
リ)処理も、その命令を持つ計算機と同様に実施できる
ようになり、アーキテクチャ変更時に旧アーキテクチャ
に依存したOS(オペレーティングシステム)等のソフ
トウェアを信頼性や耐障害性を低下させることなく比較
的容易に移植できるようになる。
リ)処理も、その命令を持つ計算機と同様に実施できる
ようになり、アーキテクチャ変更時に旧アーキテクチャ
に依存したOS(オペレーティングシステム)等のソフ
トウェアを信頼性や耐障害性を低下させることなく比較
的容易に移植できるようになる。
【図1】本発明の一実施例に係る異種計算機命令の疑似
実行装置の機能構成を示すブロック図。
実行装置の機能構成を示すブロック図。
【図2】図1の装置の機能を実現するための基本のプロ
グラム構成を示す図。
グラム構成を示す図。
【図3】同実施例における異種計算機命令疑似実行処理
を説明するためのフローチャート。
を説明するためのフローチャート。
【図4】異種計算機命令疑似実行のためのプログラム構
成の具体例を示す図。
成の具体例を示す図。
【図5】異種計算機命令疑似実行のためのプログラム構
成の他の具体例を示す図。
成の他の具体例を示す図。
【図6】従来の異種計算機命令疑似実行のためのプログ
ラム構成例を示す図。
ラム構成例を示す図。
【図7】従来の異種計算機命令疑似実行処理で演算エラ
ーが発生した場合の問題を説明するための図。
ーが発生した場合の問題を説明するための図。
【図8】従来の異種計算機命令疑似実行処理で演算エラ
ーが発生した場合の他の問題を説明するための図。
ーが発生した場合の他の問題を説明するための図。
1…PSW、2…FLAGS(演算ステータス保持手
段)、3…CEI退避レジスタ、4…疑似実行機構、5
…演算完了待合せ/割込み禁止機構、6,8…コピー機
構、7…呼出し機構、9…CEI復元機構、10…専用
SVC発行機構。
段)、3…CEI退避レジスタ、4…疑似実行機構、5
…演算完了待合せ/割込み禁止機構、6,8…コピー機
構、7…呼出し機構、9…CEI復元機構、10…専用
SVC発行機構。
Claims (2)
- 【請求項1】 第1の計算機とは異なるアーキテクチャ
を適用する第2の計算機の命令を、前記第1の計算機の
命令を用いてこの第1の計算機で疑似的に実行するため
の異種計算機命令の疑似実行方法において、 前記第2の計算機の命令を疑似的に実行する際に、演算
エラーが発生し得る前記第1の計算機で実行中の演算が
あればその完了を待合せる第1のステップと、 この第1のステップの後、前記疑似的実行の対象となる
命令で指定されるソース・オペランドを第1の特定レジ
スタにコピーする第2のステップと、 この第2のステップの後、前記対象命令を疑似的に実行
するための疑似実行サブルーチンを呼出す第3のステッ
プと、 この第3ステップで呼出された前記疑似実行サブルーチ
ンに従い、前記第1の特定レジスタをオペランドとし
て、演算エラー割込み禁止状態で前記対象命令を疑似的
に実行し、その実行結果を第2の特定レジスタに設定す
ると共に、演算エラー要因を含む演算ステータスを演算
ステータス保持手段に設定する第4のステップと、 この第4のステップの後、前記第2の特定レジスタに設
定されている前記対象命令の疑似的実行結果を、同命令
で指定されるデスティネーション・オペランドにコピー
する第5のステップと、 この第5のステップの後、前記演算ステータス保持手段
に設定されている演算ステータス中に前記第2の計算機
のアーキテクチャに従う演算エラー割込みを必要とする
演算エラー要因があり、且つ前記第1のステップ実行直
前に演算エラー割込み許可状態にある場合に限り、前記
第2の計算機のアーキテクチャに準拠した演算エラー割
込みを疑似的に発生させるための専用スーパーバイザコ
ール(SVC)を発行する第6のステップと、 を具備し、前記疑似実行サブルーチンの実行中に演算エ
ラーが発生しても前記第1の計算機のアーキテクチャに
従う演算エラー割込みを発生せず、同ルーチンからの復
帰後に、前記第2の計算機のアーキテクチャに従う演算
エラー割込み発生の条件が成立している場合に限り、前
記専用スーパーバイザコールを発行して演算エラー割込
みを疑似的に発生することによりエラー情報を得るよう
にしたことを特徴とする異種計算機命令の疑似実行方
法。 - 【請求項2】 第1の計算機とは異なるアーキテクチャ
を適用する第2の計算機の命令を、前記第1の計算機の
命令を用いてこの第1の計算機で疑似的に実行するため
の異種計算機命令の疑似実行装置において、 演算エラー要因を含む演算ステータスを保持するための
演算ステータス保持手段と、 前記疑似的実行の対象となる命令で指定されるソース・
オペランドのコピー先として使用可能な第1の特定レジ
スタと、 前記対象命令で指定されるデスティネーション・オペラ
ンドのコピー元として使用可能な第2の特定レジスタ
と、 前記対象命令を疑似的に実行する際に、演算エラーが発
生し得る前記第1の計算機で実行中の演算があればその
完了を待合せる演算完了待合せ手段と、 前記対象命令で指定されるソース・オペランドを前記第
1の特定レジスタにコピーする第1のコピー手段と、 前記対象命令を疑似的に実行するための疑似実行サブル
ーチンに従い、前記第1のコピー手段によってコピーさ
れた前記第1の特定レジスタをオペランドとして、演算
エラー割込み禁止状態で前記対象命令を疑似的に実行
し、その実行結果を前記第2の特定レジスタに設定する
と共に、演算エラー要因を含む演算ステータスを前記演
算ステータス保持手段に設定する疑似実行手段と、 この疑似実行手段によって前記第2の特定レジスタに設
定された前記対象命令の疑似的実行結果を、同命令で指
定されるデスティネーション・オペランドにコピーする
第2のコピー手段と、 前記疑似実行手段によって前記演算ステータス保持手段
に設定された演算ステータス中に前記第2の計算機のア
ーキテクチャに従う演算エラー割込みを必要とする演算
エラー要因があり、且つ前記対象命令の疑似的実行直前
に演算エラー割込み許可状態にある場合に限り、前記第
2の計算機のアーキテクチャに準拠した演算エラー割込
みを疑似的に発生させるための専用スーパーバイザコー
ル(SVC)を発行する専用スーパーバイザコール発行
手段と、 を具備し、前記疑似実行サブルーチンの実行中に演算エ
ラーが発生しても前記第1の計算機のアーキテクチャに
従う演算エラー割込みを発生せず、同ルーチンからの復
帰後に、前記第2の計算機のアーキテクチャに従う演算
エラー割込み発生の条件が成立している場合に限り、前
記専用スーパーバイザコールを発行して演算エラー割込
みを疑似的に発生することによりエラー情報を得るよう
にしたことを特徴とする異種計算機命令の疑似実行装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4155193A JPH05346871A (ja) | 1992-06-15 | 1992-06-15 | 異種計算機命令の疑似実行方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4155193A JPH05346871A (ja) | 1992-06-15 | 1992-06-15 | 異種計算機命令の疑似実行方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05346871A true JPH05346871A (ja) | 1993-12-27 |
Family
ID=15600528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4155193A Pending JPH05346871A (ja) | 1992-06-15 | 1992-06-15 | 異種計算機命令の疑似実行方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05346871A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3041108A1 (de) * | 1979-11-02 | 1981-09-03 | Hitachi, Ltd., Tokyo | Verfahren und vorrichtung zur kontinuierlichen blockpolymerisation |
JPH07287659A (ja) * | 1994-03-08 | 1995-10-31 | Digital Equip Corp <Dec> | コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置 |
KR100385493B1 (ko) * | 1994-09-16 | 2003-08-19 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 재구성가능한프로그램상태워드를갖는마이크로콘트롤러 |
-
1992
- 1992-06-15 JP JP4155193A patent/JPH05346871A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3041108A1 (de) * | 1979-11-02 | 1981-09-03 | Hitachi, Ltd., Tokyo | Verfahren und vorrichtung zur kontinuierlichen blockpolymerisation |
JPH07287659A (ja) * | 1994-03-08 | 1995-10-31 | Digital Equip Corp <Dec> | コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置 |
KR100385493B1 (ko) * | 1994-09-16 | 2003-08-19 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 재구성가능한프로그램상태워드를갖는마이크로콘트롤러 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0087978B1 (en) | Information processing unit | |
US7185183B1 (en) | Atomic update of CPO state | |
EP0423906B1 (en) | Method of and apparatus for nullifying an instruction | |
US8190865B2 (en) | Instruction encoding for system register bit set and clear | |
JP3120152B2 (ja) | コンピューターシステム | |
US7996659B2 (en) | Microprocessor instruction that allows system routine calls and returns from all contexts | |
JPH0778734B2 (ja) | プログラム・ステータス・ワードを変更するサブシステム及び方法 | |
CN108780397B (zh) | 程序循环控制 | |
JPH0638234B2 (ja) | 変換されたプログラムコードのソース命令不可分性を保持するためのシステムおよび方法 | |
JP2003029986A (ja) | プロセッサ間レジスタ継承方法及びその装置 | |
TW202416123A (zh) | 硬體處理器及處理器 | |
CN1099631C (zh) | 双执行部件处理器的反回逻辑线路 | |
US6243786B1 (en) | Apparatus and method for generating an interrupt prohibited zone in pipelined data processors | |
JP3093635B2 (ja) | カウント・レジスタおよびリンク・レジスタへの書込みを行う多重分岐命令を処理するための方法と装置 | |
US6820190B1 (en) | Method and computer system for decomposing macroinstructions into microinstructions and forcing the parallel issue of at least two microinstructions | |
JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
JPS6250934A (ja) | 処理装置の割込制御方式 | |
JPH05346871A (ja) | 異種計算機命令の疑似実行方法および装置 | |
JPH09128267A (ja) | データ処理装置およびデータ処理方法 | |
US5790872A (en) | Interrupt control handler for a RISC-type microprocessor | |
JPH05346872A (ja) | 異種計算機命令の疑似実行方法および装置 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP2671160B2 (ja) | 例外処理方式 | |
JPH0250228A (ja) | デバッグ処理装置 | |
WO2023188905A1 (ja) | 情報処理装置、及び情報処理装置の動作制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 8 Free format text: PAYMENT UNTIL: 20080929 |
|
LAPS | Cancellation because of no payment of annual fees |