JPH05346872A - 異種計算機命令の疑似実行方法および装置 - Google Patents

異種計算機命令の疑似実行方法および装置

Info

Publication number
JPH05346872A
JPH05346872A JP4155203A JP15520392A JPH05346872A JP H05346872 A JPH05346872 A JP H05346872A JP 4155203 A JP4155203 A JP 4155203A JP 15520392 A JP15520392 A JP 15520392A JP H05346872 A JPH05346872 A JP H05346872A
Authority
JP
Japan
Prior art keywords
pseudo
execution
instruction
computer
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4155203A
Other languages
English (en)
Inventor
Shinichiro Suzuki
慎一郎 鈴木
Yoshiya Mori
良哉 森
Yoichiro Takeuchi
陽一郎 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP4155203A priority Critical patent/JPH05346872A/ja
Publication of JPH05346872A publication Critical patent/JPH05346872A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【目的】異種計算機命令を疑似的に実行する場合、演算
エラー割込み発生時のエラー情報として本来必要な情報
が極めて簡単に得られるようにする。 【構成】異種計算機命令Aを疑似的に実行する際、演算
完了待合せ/割込み禁止機構5により実行中演算の完了
を待合せ、且つ割込み禁止状態とした後、コピー機構
6,7にて命令Aの示すオペランドの情報を特定レジス
タにコピーし、呼出し機構7により疑似実行サブルーチ
ン処理機構4を起動して命令Aの疑似実行を行わせ、そ
の結果を仮のデスティネーション・オペランドを介して
対応する特定レジスタで直接/間接に指定される実デス
ティネーション・オペランドに書込んだ後、演算エラー
割込み発生の要/不要を判別して疑似実行サブルーチン
から復帰し、割込み発生要判別時には専用SVC発行機
構9にて専用SVCを発行し、異種計算機のアーキテク
チャに準拠した演算エラー割込みを疑似的に発生させ
る。

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命令に展開していた。
【0004】図6は、以上の具体例を、CISC型計算
機の命令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型計算機で疑似的に実行することが可能となる。
【0006】ところで、このCISC型計算機の命令S
INを疑似的に実行中に、即ち(命令SINを疑似的に
実行する)サブルーチン62の実行中に、図7に示すよ
うに、例えばa′点で演算エラーが発生することがあ
る。
【0007】このとき、演算エラー割込みが許可になっ
ていると、同割込みが発生する。この割込みによる割込
み処理でエラー情報63として得ることができるのは、
サブルーチン62内での演算エラー割込みの発生の場所
(a′点のアドレス)や、このサブルーチン62内で演
算に使用していた特定レジスタws1,wd1とその値等
(実機の命令のオペランド等)である。
【0008】しかし、この場合、本来エラー情報として
欲しいものは、ユーザのプログラム(オブジェクト)中
での疑似的に実行していた命令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)
のどちらのエラーであるかの特定が困難となり、そのエ
ラー処理は更に複雑且つ困難になるという問題があっ
た。
【0011】このように従来方式では、疑似的に実行し
ようとする命令のエラー処理が複雑となり、エラー・リ
カバリの可能性やその性能が極めて低くなる等の問題が
あった。
【0012】この発明は上記事情に鑑みてなされたもの
でその目的は、ある計算機において、異なるアーキテク
チャを持つ異種計算機の命令を疑似的に実行する場合
に、演算エラー割込み発生時のエラー情報として、本来
必要な異種計算機でのエラー情報相当の情報を極めて簡
単に得ることができる異種計算機命令の疑似実行方法お
よび装置を提供することにある。
【0013】
【課題を解決するための手段】本発明は、第1の計算機
とは異なるアーキテクチャを適用する第2の計算機の命
令を、上記第1の計算機の命令を用いてこの第1の計算
機で疑似的に実行する際に、演算エラーが発生し得る上
記第2の計算機で実行中の演算があればその完了を待合
せた後、疑似的実行の対象となる命令で指定されるソー
ス・オペランドドの情報を第1の特定レジスタにコピー
すると共に、デスティネーション・オペランドの情報
(少なくともデスティネーションのレジスタ・オペラン
ドについてはそのレジスタ番号)を第2の特定レジスタ
にコピーして、上記対象命令を疑似的に実行するための
疑似実行サブルーチンを呼出すようにしたことを特徴と
する。
【0014】また本発明は、呼出された疑似実行サブル
ーチンに従い、上記第1の特定レジスタにより直接また
は間接に示される情報をオペランドとして、演算エラー
割込み禁止状態で上記対象命令を疑似的に実行し、その
実行結果を仮のデスティネーション・オペランドとして
の第3の特定レジスタに格納すると共に、演算エラー要
因を含む演算ステータスを演算ステータス保持手段に設
定した後、第3の特定レジスタに格納されている実行結
果を第2の特定レジスタにより直接または間接に示され
る実デスティネーション・オペランドに書込み、更に演
算ステータス保持手段に設定されている演算ステータス
中に第2の計算機のアーキテクチャに従う演算エラー割
込みを必要とする演算エラー要因があり、且つ対象命令
の疑似的実行直前に演算エラー割込み許可状態にあるか
否かにより、演算エラー割込みを発生すべきか否かを判
別して、疑似実行サブルーチンを終了させ、演算エラー
割込み発生要判別時には、第2の計算機のアーキテクチ
ャに準拠した演算エラー割込みを疑似的に発生させるた
めの専用SVC(スーパーバイザコール)を発行するよ
うにしたことを特徴とする。
【0015】
【作用】上記の構成においては、割込み禁止状態で疑似
実行サブルーチンが実行されるため、その実行中に演算
エラーが発生しても第1の計算機のアーキテクチャに従
う演算エラー割込みの発生が抑止され、しかも対象命令
の実行に際して演算エラーが発生し得る演算が既に実行
中であれば、その演算の完了が待合されるため、疑似実
行サブルーチンの終了時に演算ステータス保持手段に設
定されている演算ステータスは、必ず対象命令の疑似実
行結果の演算ステータスとなる。
【0016】また、メインルーチン(対象命令の展開コ
ード)側から対象命令のデスティネーション・オペラン
ドの情報が第2の特定レジスタを介して疑似実行ルーチ
ンに渡された状態で疑似実行サブルーチンが実行される
ことにより、対象命令の疑似的実行結果を、この第2の
特定レジスタにより直接または間接に指定される対象命
令の実デスティネーション・オペランドに書込むことが
可能となる。
【0017】そして、疑似実行ルーチンにて、第2の計
算機のアーキテクチャに従う演算エラー割込み発生の条
件が成立しているか否か、即ち演算エラー割込み発生の
要/不要が判別され、要判別時には、同サブルーチンか
ら専用SVC発行ステップに復帰して、上記の専用SV
Cが発行される。
【0018】この専用SVCの発行時点では、上記対象
命令のデスティネーション・オペランドに対し、その命
令を持つ第2の計算機同様の結果が疑似実行ルーチンに
て既に書込まれているため、専用SVC発行により、第
2の計算機のアーキテクチャに準拠した演算エラー割込
みが疑似的に発生されると、レジスタの内容等のエラー
情報として第2の計算機と同様のエラー情報を得ること
が可能となる。
【0019】このように上記の構成によれば、第1の計
算機とは異なるアーキテクチャの第2の計算機の命令
(対象命令)を、エラー発生時の動作や、そのとき得ら
れるエラー情報を含め、第1の計算機上で忠実に実現す
ることができる。しかも、対象命令のデスティネーショ
ン・オペランドへの結果書込みなどが疑似実行ルーチン
にて実行されるため、メインルーチン(対象命令の展開
コード)が複雑になるのを防止できる。
【0020】
【実施例】図1は本発明の一実施例に係る異種計算機命
令の疑似実行装置の機能構成を示すブロック図を示し、
図2は図1の装置の機能構成を実現するための基本のプ
ログラム構成を示す。
【0021】アーキテクチャの異なる別の計算機(異種
計算機)の命令、例えばソース・オペランドrs1,rs2
…とデスティネーション・オペランドrd1…を持つ命令
Aを、図1の装置(を実現する実機)で実行するには、
図2に示すように、命令Aの展開コード(インライン展
開部)21と、命令Aを疑似的に実行するための疑似実
行サブルーチン(本体部サブルーチン)22とを必要と
する。
【0022】命令Aの展開コード21は、同コード21
より以前に発行された命令の演算完了の待合せ(syn
c)、演算エラー割込み禁止状態の設定等を行うための
コード部21a、命令Aにて指定されたソース・オペラ
ンド(ここではレジスタ・オペランド)rs1,rs2…を
特定のレジスタws1,ws2…にコピーするためのコード
部21b、命令Aにて指定されたデスティネーション・
オペランド(ここではレジスタ・オペランド)のレジス
タrd1…のレジスタ番号nd1…を特定のレジスタwdn1
…にコピーするためのコード部21c、命令Aの疑似実
行サブルーチン22を呼出すためのコード部21d、お
よび命令Aを持つ計算機のアーキテクチャに従う演算エ
ラー割込みを疑似的に発生する疑似演算エラー(Pseudo
-Calculation Error)割込み専用のSVC(SuperVisor
Call)、即ちSVC(PCE)を発行するためのコード
部21eにより構成される。このSVC(PCE)発行
による演算エラー割込みによりエラー情報23が得られ
る。
【0023】一方、命令Aの疑似実行サブルーチン22
は、演算エラー割込み禁止状態で特定レジスタ(ws1,
ws2…)をソース・オペランドとして用いて命令A相当
の処理を実行し、その実行結果を特定レジスタwd1…に
格納するためのコード部22a、特定レジスタwd1…に
格納された実行結果を特定のレジスタwdn1 …の示すレ
ジスタ番号nd1…のレジスタrwdn1(即ちrd1)…に書
込むためのコード部22b、および演算エラー割込み発
生の要/不要を判別し、その判別結果に応じて上記(専
用SVC発行のための)コード部21eの処理またはそ
の直後の処理に復帰するためのコード部22cにより構
成される。
【0024】さて、図1に示す異種計算機命令の疑似実
行装置は、プログラムの状態語を保持するためのPSW
(PSWレジスタ)1と、演算エラー要因を含み前記異
種計算機および図1の装置を実現する実機の両アーキテ
クチャに従う演算ステータスを保持するための演算ステ
ータス保持部(以下、FLAGSと称する)2とを有す
る。PSW1の特定領域には、演算エラー割込みの許可
/禁止状態を指定するマスク・フラグCEI(Calculat
ion Error Interrupt )が設定される。また、FLAG
S2には、実機のレジスタの1つが割当てられる。
【0025】図1に示す異種計算機命令の疑似実行装置
はまた、PSW1上の上記フラグCEIを例えば最下位
ビット(LSB)に退避するためのCEI退避レジスタ
3と、図2に示す疑似実行サブルーチン22を実行する
疑似実行サブルーチン処理機構4とを有する。CEI退
避レジスタ3には、実機のレジスタの1つが割当てられ
る。
【0026】この疑似実行サブルーチン処理機構4は、
図2に示す疑似実行サブルーチン22のコード部22a
に従って命令A相当の処理等を行う疑似実行機構4a、
同コード部22aに従ってフラグCEIの復元処理を行
うCEI復元機構4b、疑似実行サブルーチン22のコ
ード部22bに従ってデスティネーション・オペランド
への結果書込みを行う結果書込み機構4c、およびコー
ド部22cに従って演算エラー割込み発生の要/不要を
判別するための演算エラー割込み要/不要判別機構4d
により構成される。
【0027】図1に示す異種計算機命令の疑似実行装置
は更に、図2に示す展開コード21のコード部21aに
従って演算完了の待合せ、演算エラー割込みの禁止等を
行う演算完了待合せ/割込み禁止機構5と、コード部2
1bに従ってコピー処理を行うコピー機構6と、コード
部21cに従ってコピー処理を行うコピー機構7と、コ
ード部21dに従って疑似実行サブルーチン処理機構4
を呼出して起動する呼出し機構8と、コード部21eに
従ってSVC(PCE)を発行する専用SVC発行機構
9とを有する。
【0028】次に、図1に示す構成の異種計算機命令の
疑似実行装置により、アーキテクチャが異なる異種計算
機の命令Aを疑似的に実行する場合を例に、図3のフロ
ーチャートを適宜参照して説明する。まず、命令Aを図
1の装置で実行するには、同命令Aを、図2に示したよ
うに、図1の装置を実現する実機の命令にインライン展
開する。
【0029】さて、図1の装置では、命令Aの展開コー
ド21より以前に発行された命令の演算エラーが命令A
の疑似実行中に発生しないようにするため、展開コード
21のコード部21aに従い、演算完了待合せ/割込み
禁止機構5により、先行する命令の演算完了を待合せる
(ステップS1)。即ち、演算完了待合せ/割込み禁止
部5は、その時点で演算エラーが発生し得る先行命令の
演算が実行中であれば、その演算が完了するまで、本命
令Aの疑似実行を遅らせる(sync)。
【0030】また演算完了待合せ/割込み禁止機構5
は、上記ステップS1において、PSW1上の現在のフ
ラグCEIの状態(演算エラー割込み許可/禁止状態)
をCEI退避レジスタ3のLSBに退避した後、PSW
1上のフラグCEIを割込み禁止状態に設定する。
【0031】次に、展開コード21のコード部21bに
従い、命令Aにて指定されているソース・オペランドr
s1,rs2…を、コピー機構6により、実機上の特定のレ
ジスタws1,ws2…(図示せず)にコピーする(ステッ
プS2)。なお、命令Aの全てのソース・オペランドの
うち、定数は定数それ自体(オペランドの内容それ自
体)を特定レジスタにコピーしても、レジスタ・オペラ
ンドについてはレジスタの内容でなく、レジスタ番号を
特定レジスタにコピーするようにしてもよい。
【0032】次に、展開コード21のコード部21cに
従い、命令Aにて指定されているデスティネーションの
レジスタ・オペランドのレジスタ番号nd1…を、コピー
機構7により、実機上の特定のレジスタwdn1 …(図示
せず)にコピーする(ステップS3)。
【0033】以上のコピー動作は、命令Aのオペランド
の情報を、特定のレジスタws1,ws2…,wdn1 …を介
して疑似実行サブルーチン処理機構4(により実行され
る疑似実行サブルーチン22)に引数として渡すために
行われる。
【0034】命令Aのオペランド情報が整うと、呼出し
機構8により、展開コード21のコード部21dに従っ
て疑似実行サブルーチン処理機構4を呼出し起動する
(ステップS4)。これにより疑似実行サブルーチン処
理機構4内の疑似実行機構4aは、疑似実行サブルーチ
ン22のコード部22aに従い、(上記ステップS1に
て設定されている演算エラー割込み禁止状態において)
上記特定レジスタws1,ws2…をソース・オペランドと
して命令Aを疑似的に実行し、その演算結果を仮のデス
ティネーション・オペランドである特定レジスタwd1…
に格納する(ステップS5)。
【0035】なお、ソース・オペランドとしてレジスタ
番号(ns1,ns2…)が特定レジスタ(wsn1 ,wsn2
…)にコピーされて渡されている場合には、上記のステ
ップS5の処理に際し、実オペランド即ちその特定レジ
スタの内容であるレジスタ番号で示されるレジスタの内
容(rwsn1,rwsn2…)を、専用命令である「レジスタ
番号間接データ移動命令」を用いて、演算実行時にソー
ス・オペランドとして用いる特定レジスタ(ws1,ws2
…)にコピーしておく必要がある。即ち、専用命令のニ
モニックをindrd(インデックスリード)、記号
“%”をレジスタ・オペランドの接頭句とすると、例え
ばレジスタ番号ns1については、“indrd(%wsn
1 ,%ws1)”を実行すればよい。
【0036】さて疑似実行機構4は、命令Aを疑似的に
実行すると、例えばオーバフロー、アンダフロー等の各
種演算エラー要因を含み、命令Aを持つ計算機(異種計
算機)および実機の両アーキテクチャに従う演算ステー
タス(即ち異種計算機で扱われるのと同様の演算ステー
タス部分と実機で扱われるのと同様の演算ステータス部
分とを持つ演算ステータス)をFLAGS2に設定する
(ステップS6)。また疑似実行機構4は、演算エラー
が発生した場合には、所定のレジスタ(汎用レジスタ)
上に実機のアーキテクチャに従うエラー情報を生成す
る。ここで、命令Aの展開コード21は、前記したよう
に演算完了待合せ/割込み禁止機構5によるステップS
1の動作によって、それ以前の命令の演算の完了を待っ
て実行されるため、FLAGS2の演算ステータスが、
先行する命令の演算によって書換えられることはない。
また、PSW1のフラグCEIは、上記ステップS1で
演算エラー割込み禁止状態に設定されているため、命令
Aの疑似的実行中に演算エラーが発生しても、(実機の
アーキテクチャに従う)演算エラー割込みが発生するこ
とはない。
【0037】疑似実行機構4が命令Aを疑似的に実行す
ると、CEI復元機構4bが起動される。CEI復元機
構9は、疑似実行サブルーチン22のコード部22aに
従い、命令Aの疑似的実行完了を待合せてから、前記ス
テップS1でCEI退避レジスタ3に退避されていたフ
ラグCEIの状態(演算エラー割込み許可/禁止状態)
をPSW1上に復元する(ステップS7)。
【0038】すると結果書込み機構4cが起動される。
結果書込み機構4cは、疑似実行サブルーチン22のコ
ード部22bに従い、疑似実行機構4aによって仮のデ
スティネーション・オペランドとしての特定レジスタw
d1…に格納されている命令Aの疑似的実行結果(演算結
果)を、その命令Aの実デスティネーション・オペラン
ドに書込む(ステップS8)。この書込みは、疑似実行
サブルーチン22の呼出し元(のコピー機構7)で特定
レジスタwdn1 にコピーしておいたデスティネーション
・レジスタ番号nd1…の指定するレジスタrwdn1(即ち
rd1)…に対し、専用命令である「レジスタ番号間接デ
ータ移動命令」を用いて行われる。即ち、専用命令のニ
モニックをindwr(インデックスライト)とする
と、例えばレジスタ番号nd1については、“indwr
(%wd1,%wdn1 )”を実行することにより、特定レ
ジスタwd1中の演算結果が、レジスタ番号nd1の指定す
るレジスタrwdn1(即ちrd1)に書込まれる。なお、実
デスティネーション・オペランドがメモリの場合には、
前記ステップS3にてそのアドレスを特定レジスタにコ
ピーしておき、ステップS8では、その特定レジスタを
インデックスとして上記の演算結果をメモリに書込めば
よい。
【0039】結果書込み機構4cによる上記ステップS
8の結果書込みが終了すると、演算エラー割込み要/不
要判別機構4dが起動される。演算エラー割込み要/不
要判別機構4dは、疑似実行サブルーチン22のコード
部22cに従い、演算エラー割込み発生の要/不要を判
別する(ステップS9)。
【0040】即ち演算エラー割込み要/不要判別機構4
dは、PSW1上の復元されたフラグCEIにより演算
エラー割込み許可状態が示され、即ち命令Aの展開コー
ド21の実行直前において演算エラー割込み許可状態と
なっており、且つFLAGS2に設定されている演算ス
テータスにより、(命令Aを持つ計算機のアーキテクチ
ャに従う演算エラー割込みを必要とする)演算エラー割
込み要因が発生したこと、即ち疑似実行サブルーチン2
2の実行中に演算エラー割込み要因が発生したこと(命
令Aでの演算エラー発生と等価)が示されているか否か
により、演算エラー割込み発生の要/不要を判別する。
そして演算エラー割込み要/不要判別機構4dは、この
判別結果に従い、疑似実行サブルーチン22からの復帰
先を切替える。
【0041】以上の結果、演算エラー割込み要/不要判
別機構4dにより演算エラー割込み発生要が判別された
場合には、展開コード21のコード部21e(専用SV
C命令)に復帰し、専用SVC発行機構9が起動され
る。また、演算エラー割込み発生不要が判別された場合
には、専用SVC命令の直後に復帰する。
【0042】専用SVC発行機構9は、演算エラー割込
み要/不要判別機構4dにより起動されると、命令Aを
持つ計算機(異種計算機)のアーキテクチャに従う演算
エラー割込みを疑似的に発生するための専用SVC、即
ちSVC(PEC)を発行する(ステップS10)。
【0043】さて、専用SVC発行機構9により発行さ
れるSVC(PEC)では、同SVC(PEC)のアド
レス、命令Aのオペランドrs1,rs2…,rd1…の各レ
ジスタ番号、および疑似実行機構4にて生成されたエラ
ー情報の格納先レジスタのレジスタ番号がそれぞれパラ
メータ指定されている。このようなパラメータ指定は、
SVC(PEC)が異種計算機の命令Aの展開コード2
1中で、しかも疑似実行サブルーチン22からの復帰後
の位置に置かれることから可能となる。このSVC(P
CE)が発行されることにより、そのパラメータに従
い、SVC(PEC)のアドレス(図7のa2点に相当
するアドレス)、命令Aのオペランドrs1,rs2…,r
d1…の各レジスタ番号、同レジスタ番号で指定されるレ
ジスタの内容、および疑似実行機構4にて生成されて前
記所定レジスタに格納されたエラー情報が、所定の割込
みスタックに格納される。
【0044】この結果、SVC(PEC)発行に伴う演
算エラー割込みにより、上記割込みスタック上の情報が
エラー情報23として得られる。ここで、疑似的に実行
する命令Aの実デスティネーション・オペランドrd1
(即rwdn1)…には、その命令Aを持つ計算機(異種計
算機)におけるのと同様の演算結果が既に書込まれてい
るため、レジスタの内容等のエラー情報として、その異
種計算機と同様のエラー情報が得られる。
【0045】このように本実施例によれば、アーキテク
チャの異なる異種計算機の命令Aを、図1の装置(を実
現する実機)にて疑似的に実行すると共に、命令Aでの
演算エラー割込みも、疑似実行サブルーチン22からの
復帰後に、専用SVCの発行により、上記異種計算機同
様に実現でき、その専用SVC発行による演算エラー割
込み発生時に得られるエラー情報も、上記異種計算機の
アーキテクチャに準拠するものにできる。
【0046】以上に述べた異種計算機命令疑似実行のた
めのプログラム構成の具体例を図4に示す。この図4
は、RISC型のある計算機において、アーキテクチャ
の異なるCISC型の計算機の命令として、ソース・オ
ペランドrs1,rs2に対して演算(*)を行った結果を
デスティネーション・オペランドrd1に返す命令PIN
ST(Rd ,Rs1,Rs2)を、疑似的に実行する場合の
例を示したものであり、同図(a)には命令PINST
(Rd ,Rs1,Rs2)の展開コード41を、同図(b)
には命令PINST(Rd ,Rs1,Rs2)の疑似実行サ
ブルーチン42を示す。
【0047】また図5に、同じ命令PINSTを、VL
IW(Very Long Instruction Word)型の4並列処理
(4命令サイズ単位、即ち図の行単位に複数の命令を同
時に処理する)方式をとるCISC型計算機で疑似的に
実行する場合のプログラム構成例を示し、同図(a)に
は命令PINSTの展開コード51を、同図(b)には
命令PINSTの疑似実行サブルーチン52を示す。
【0048】なお、rs1,rs2,rd1は、命令PINS
Tを持つ計算機のレジスタRs1,Rs2,Rd にマッピン
グしている実機のレジスタである。また、図中のnd は
命令PINSTのデスティネーション・レジスタ・オペ
ランドのレジスタ番号、ws1,ws2,wd は命令PINS
Tを疑似的に実行するサブルーチンにおいて仮にオペラ
ンドとして固定的に使用する実機のレジスタ、“#”,
“%”は、それぞれ即値,レジスタを表すオペランドの
接頭句である。
【0049】図4,図5において、展開コード41,5
1中の“CCEI(#OFF,%oldCEI)”は図
2のコード部21aに対応するもので、演算完了待合せ
(sync)、PSW1上のCEIをレジスタoldC
EI(CEI退避レジスタ3)に退避すること、および
PSW1上のCEIに即値OFFを設定して割込み禁止
状態にすることを指示する命令である。
【0050】次に、展開コード41,51中の“mov
(%rs1,%ws1)”および“mov(%rs2,%ws
2)”の2命令は図2のコード部21bに対応するもの
で、レジスタrs1,rs2からレジスタws1,ws2へのコ
ピーを指示する。
【0051】次に、展開コード41,51中の“mov
(%nd ,%wdn)”は図2のコード部21cに対応す
るもので、レジスタrd1のレジスタ番号nd をレジスタ
wdnにコピーすることを指示する。
【0052】次に、展開コード41,51中の“mov
(#L10,%link)”および“jump(#PI
NST)”の2命令は、図2のコード部21dに対応す
るもので、前者は図示せぬ復帰先格納用レジスタlin
k(実機の汎用レジスタの1つ)に復帰先(戻り先)ア
ドレスL10を格納することを、後者はPINSTの疑
似実行サブルーチン(42,52)にジャンプすること
を指示する。
【0053】次に、展開コード41中の“SVC(PC
E)”は図2のコード部21eに対応するもので、疑似
実行サブルーチン42,52から復帰した場合にSVC
(PCE)を発行することを指示する。
【0054】一方、疑似実行サブルーチン42,52中
の“CCEI(%oldCEI,%zero)”は図2
のコード部22aの一部に対応するもので、現在のPS
W1上のCEIをレジスタzero(実際には存在しな
いゼロ・レジスタであり、同レジスタへのデータ書込み
によりそのデータは捨てられることになる)に書込むこ
とにより捨てることと、レジスタoldCEI(CEI
退避レジスタ3)の内容をPSW1に復元することを指
示する命令である。
【0055】次に、疑似実行サブルーチン42,52中
の“indwr(%wd ,%wdn)”は前記したよう
に、特定レジスタwd 中の演算結果を、レジスタ番号n
d の指定するレジスタrwdn (即ちrd )に書込むため
のレジスタ番号間接データ移動命令である。
【0056】次に、疑似実行サブルーチン42中の符号
43で示されるコード部分は、図2のコード部22cに
対応するもので、FLAGS2に設定されている演算ス
テータスにより(命令Aを持つ計算機のアーキテクチャ
に従う演算エラー割込みを必要とする)演算エラー割込
み要因が発生し、且つPSW1上の復元されたフラグC
EIにより演算エラー割込み許可状態が示されているな
らば、演算エラー割り込み発生要であるものとして同ル
ーチン42から復帰先格納用レジスタlinkの示すS
VC(PCE)のアドレスに復帰し(“jump(%l
ink)”)、そうでなければ、レジスタlinkの示
すアドレスにSVC(PCE)のサイズ(SVCSIZ
E)を加えたアドレス、即ちSVC(PCE)の直後に
復帰することを指示する。
【0057】次に疑似実行サブルーチン52中の“ts
tgt(%oldCEI,#0,@F1)”は、<レジ
スタoldCEI(CEI退避レジスタ3)の内容>が
ゼロより大きいならば“1”を、そうでなければ“0”
を図示せぬ条件実行制御レジスタCCR中のフラグF2
に代入する命令である。
【0058】次に疑似実行サブルーチン52中の“ts
tbn(%rs,#MASK,@n)”(但し、rsは
FLAGSまたは条件実行制御レジスタCCRを示すc
cr、MASKはERRMASKまたは@(F1,F
2)、nはF2またはF1)は、<レジスタrsの内容
>と<即値MASK>とのビット毎の論理積をとり、そ
の結果の論理和値を、図示せぬ条件実行制御レジスタC
CR中のフラグnに代入する命令である。なお、@(F
1,F2)は、条件実行制御レジスタCCR中のフラグ
F1とフラグF2に相当するビットを“1”とするマス
ク値を示す。
【0059】次に疑似実行サブルーチン52中の“F1
False? add(%link,#SVCSIZ
E,%link)”は、条件実行制御レジスタCCRの
フラグF1が偽値であれば、復帰先格納用レジスタli
nkの内容にSVC(PCE)のサイズ(SVCSIZ
E)を加えることを指示する命令である。この命令を含
む、疑似実行サブルーチン52中の符号53で示される
コード部分は、前記した疑似実行サブルーチン42中の
符号43で示されるコード部分に相当する。
【0060】以上の図4および図5に示すプログラム構
成によれば、いずれも、疑似実行サブルーチン42,5
2から復帰後に、「FLAGS2が演算エラー割込み要
因発生を表示」且つ「CCEI命令による演算エラー割
込み禁止直前に演算エラー割込み許可状態」の条件成立
をもって、命令PINSTを持つ計算機での動作と同等
の演算エラー割込みを発生するSVC(PCE)が発行
される。
【0061】以上は、単にアーキテクチャの異なる計算
機の命令を疑似的に実行する場合について説明したが、
この異種計算機命令の疑似実行方式は、アーキテクチャ
変更時、旧計算機のアーキテクチャ依存プログラムを移
植する際の旧命令サポート方式として応用可能である。
【0062】
【発明の効果】以上詳述したようにこの発明によれば、
アーキテクチャが異なる計算機(異種計算機)の命令
(対象命令)を疑似的に実行する際に、既に実行中の演
算があればその演算の完了を待ち、上記対象命令のソー
ス・オペランドの情報を第1の特定レジスタに、デステ
ィネーション・オペランドの情報を第2の特定レジスタ
にそれぞれコピーした後に同命令を疑似的に実行するた
めのサブルーチン(疑似実行サブルーチン)を呼出し、
このルーチンに従い、割込み禁止状態で上記対象命令を
疑似的に実行し、その実行結果を仮のデスティネーショ
ン・オペランドを介して、上記第2の特定レジスタによ
り直接または間接に指定される実デスティネーション・
オペランドに書込んだ後、演算ステータス保持手段に設
定されている演算ステータスと対象命令の疑似的実行直
前の演算エラー割込み許可/禁止状態から、異種計算機
のアーキテクチャに従う演算エラー割込み発生の要/不
要を判別して、疑似実行サブルーチンから復帰し、演算
エラー割込み発生要判別時には専用SVCを発行して、
異種計算機のアーキテクチャに準拠した演算エラー割込
みを疑似的に発生する構成としたので、上記対象命令の
正常実行時や演算エラー割込み禁止での動作は勿論、演
算エラー割込み発生時の動作もほぼ忠実に模倣できるよ
うになり、演算エラー割込み発生時には、その対象命令
を持つ計算機(異種計算機)上で本来得られる情報と同
等の情報を容易に得ることができる。しかも、対象命令
の実デスティネーション・オペランドへの結果書込み、
異種計算機のアーキテクチャに従う演算エラー割込み発
生の要/不要判別などが疑似実行ルーチンにて実行され
るため、メインルーチン(対象命令の展開コード)が複
雑になるのを防止できる。
【0063】この結果、上記対象命令のエラー(リカバ
リ)処理も、その命令を持つ計算機と同様に実施できる
ようになり、アーキテクチャ変更時に旧アーキテクチャ
に依存したOS(オペレーティングシステム)等のソフ
トウェアを信頼性や耐障害性を低下させることなく容易
に移植できるようになる。
【図面の簡単な説明】
【図1】本発明の一実施例に係る異種計算機命令の疑似
実行装置の機能構成を示すブロック図。
【図2】図1の装置の機能を実現するための基本のプロ
グラム構成を示す図。
【図3】同実施例における異種計算機命令疑似実行処理
を説明するためのフローチャート。
【図4】異種計算機命令疑似実行のためのプログラム構
成の具体例を示す図。
【図5】異種計算機命令疑似実行のためのプログラム構
成の他の具体例を示す図。
【図6】従来の異種計算機命令疑似実行のためのプログ
ラム構成例を示す図。
【図7】従来の異種計算機命令疑似実行処理で演算エラ
ーが発生した場合の問題を説明するための図。
【図8】従来の異種計算機命令疑似実行処理で演算エラ
ーが発生した場合の他の問題を説明するための図。
【符号の説明】
1…PSW、2…FLAGS(演算ステータス保持手
段)、3…CEI退避レジスタ、4…疑似実行サブルー
チン処理機構、4a…疑似実行機構、4b…CEI復元
機構、4c…結果書込み機構、4d…演算エラー割込み
要/不要判別機構、5…演算完了待合せ/割込み禁止機
構、6,7…コピー機構、8…呼出し機構、9…専用S
VC発行機構。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 第1の計算機とは異なるアーキテクチャ
    を適用する第2の計算機の命令を、前記第1の計算機の
    命令を用いてこの第1の計算機で疑似的に実行するため
    の異種計算機命令の疑似実行方法において、 前記第2の計算機の命令を疑似的に実行する際に、演算
    エラーが発生し得る前記第1の計算機で実行中の演算が
    あればその完了を待合せる第1のステップと、 この第1のステップの後、前記疑似的実行の対象となる
    命令で指定されるソース・オペランドの情報を第1の特
    定レジスタにコピーすると共に、デスティネーション・
    オペランドの情報を第2の特定レジスタにコピーする第
    2のステップであって、少なくともデスティネーション
    のレジスタ・オペランドについてはそのレジスタ番号を
    コピー対象とする第2のステップと、 この第2のステップの後、前記対象命令を疑似的に実行
    するための疑似実行サブルーチンを呼出す第3のステッ
    プと、 この第3ステップで呼出された前記疑似実行サブルーチ
    ンに従い、前記第1の特定レジスタにより直接または間
    接に示される情報をオペランドとして、演算エラー割込
    み禁止状態で前記対象命令を疑似的に実行し、その実行
    結果を一旦第3の特定レジスタに格納すると共に、演算
    エラー要因を含む演算ステータスを演算ステータス保持
    手段に設定する第4のステップと、 この第4のステップの後、前記疑似実行サブルーチンに
    従い、前記第3の特定レジスタに格納されている実行結
    果を前記第2の特定レジスタにより直接または間接に示
    されるデスティネーション・オペランドに格納する第5
    のステップと、 この第5のステップの後、前記疑似実行サブルーチンに
    従い、前記演算ステータス保持手段に設定されている演
    算ステータス中に前記第2の計算機のアーキテクチャに
    従う演算エラー割込みを必要とする演算エラー要因があ
    り、且つ前記第1のステップ実行直前に演算エラー割込
    み許可状態にあるか否かにより、演算エラー割込みを発
    生すべきか否かを判別し、前記疑似実行サブルーチンを
    終了させる第6のステップと、 この第6のステップで演算エラー割込みを発生すべきこ
    とが判別された場合に、前記第2の計算機のアーキテク
    チャに準拠した演算エラー割込みを疑似的に発生させる
    ための専用スーパーバイザコール(SVC)を発行する
    第6のステップと、 を具備し、前記疑似実行サブルーチンの実行中に演算エ
    ラーが発生しても前記第1の計算機のアーキテクチャに
    従う演算エラー割込みを発生せず、前記第2の計算機の
    アーキテクチャに従う演算エラー割込み発生の条件が成
    立している場合に限り、同ルーチンからの復帰後に、前
    記専用スーパーバイザコールを発行して演算エラー割込
    みを疑似的に発生することによりエラー情報を得るよう
    にしたことを特徴とする異種計算機命令の疑似実行方
    法。
  2. 【請求項2】 第1の計算機とは異なるアーキテクチャ
    を適用する第2の計算機の命令を、前記第1の計算機の
    命令を用いてこの第1の計算機で疑似的に実行するため
    の異種計算機命令の疑似実行装置において、 演算エラー要因を含む演算ステータスを保持するための
    演算ステータス保持手段と、 前記疑似的実行の対象となる命令で指定されるソース・
    オペランドの情報のコピー先として使用可能な第1の特
    定レジスタと、 前記対象命令で指定されるデスティネーション・オペラ
    ンドの情報のコピー先として使用可能な第2の特定レジ
    スタと、 前記対象命令の疑似的実行結果の仮のデスティネーショ
    ン・オペランドとして使用可能な第3の特定レジスタ
    と、 前記対象命令を疑似的に実行する際に、演算エラーが発
    生し得る前記第1の計算機で実行中の演算があればその
    完了を待合せる演算完了待合せ手段と、 前記対象命令で指定されるソース・オペランドの情報を
    前記第1の特定レジスタにコピーする第1のコピー手段
    と、 前記対象命令で指定されるデスティネーション・オペラ
    ンドの情報を前記第2の特定レジスタにコピーする第2
    のコピー手段であって、少なくともデスティネーション
    のレジスタ・オペランドについてはそのレジスタ番号を
    コピー対象とする第2のコピー手段と、 前記対象命令を疑似的に実行するための疑似実行サブル
    ーチンに従い、前記第1のコピー手段によってコピーさ
    れた前記第1の特定レジスタにより直接または間接に示
    される情報をオペランドとして、演算エラー割込み禁止
    状態で前記対象命令を疑似的に実行し、その実行結果を
    前記第3の特定レジスタに格納すると共に、演算エラー
    要因を含む演算ステータスを前記演算ステータス保持手
    段に設定する疑似実行手段と、 この疑似実行手段によって前記第3の特定レジスタに格
    納された前記対象命令の疑似的実行結果を、前記疑似実
    行サブルーチンに従い、前記第2の特定レジスタにより
    直接または間接に示されるデスティネーション・オペラ
    ンドに書込む結果書込み手段と、 前記疑似実行手段によって前記演算ステータス保持手段
    に設定されている演算ステータス中に前記第2の計算機
    のアーキテクチャに従う演算エラー割込みを必要とする
    演算エラー要因があり、且つ前記第1のステップ実行直
    前に演算エラー割込み許可状態にあるか否かにより、演
    算エラー割込みを発生すべきか否かを判別し、前記疑似
    実行サブルーチンを終了させる演算エラー割込み要/不
    要判別手段と、 この演算エラー割込み要/不要判別手段によって演算エ
    ラー割込みを発生すべきことが判別された場合に、前記
    第2の計算機のアーキテクチャに準拠した演算エラー割
    込みを疑似的に発生させるための専用スーパーバイザコ
    ール(SVC)を発行する専用スーパーバイザコール発
    行手段と、 を具備し、前記疑似実行サブルーチンの実行中に演算エ
    ラーが発生しても前記第1の計算機のアーキテクチャに
    従う演算エラー割込みを発生せず、前記第2の計算機の
    アーキテクチャに従う演算エラー割込み発生の条件が成
    立している場合に限り、同ルーチンからの復帰後に、前
    記専用スーパーバイザコールを発行して演算エラー割込
    みを疑似的に発生することによりエラー情報を得るよう
    にしたことを特徴とする異種計算機命令の疑似実行装
    置。
JP4155203A 1992-06-15 1992-06-15 異種計算機命令の疑似実行方法および装置 Pending JPH05346872A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4155203A JPH05346872A (ja) 1992-06-15 1992-06-15 異種計算機命令の疑似実行方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4155203A JPH05346872A (ja) 1992-06-15 1992-06-15 異種計算機命令の疑似実行方法および装置

Publications (1)

Publication Number Publication Date
JPH05346872A true JPH05346872A (ja) 1993-12-27

Family

ID=15600758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4155203A Pending JPH05346872A (ja) 1992-06-15 1992-06-15 異種計算機命令の疑似実行方法および装置

Country Status (1)

Country Link
JP (1) JPH05346872A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07287659A (ja) * 1994-03-08 1995-10-31 Digital Equip Corp <Dec> コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置
WO2011096083A1 (ja) 2010-02-08 2011-08-11 富士通株式会社 エラー発生指示回路、記憶装置、情報処理装置及びエラー発生指示回路の制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07287659A (ja) * 1994-03-08 1995-10-31 Digital Equip Corp <Dec> コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置
WO2011096083A1 (ja) 2010-02-08 2011-08-11 富士通株式会社 エラー発生指示回路、記憶装置、情報処理装置及びエラー発生指示回路の制御方法
JP5362856B2 (ja) * 2010-02-08 2013-12-11 富士通株式会社 エラー発生指示回路、記憶装置、情報処理装置及びエラー発生指示回路の制御方法

Similar Documents

Publication Publication Date Title
US8190865B2 (en) Instruction encoding for system register bit set and clear
US7185183B1 (en) Atomic update of CPO state
JP3771273B2 (ja) 述語レジスタ・セットをレストアする方法および装置
CA1303225C (en) Register management system in a computer processor with out-of-sequence instruction execution
US6631460B1 (en) Advanced load address table entry invalidation based on register address wraparound
CN108780397B (zh) 程序循环控制
JPH0778734B2 (ja) プログラム・ステータス・ワードを変更するサブシステム及び方法
TW202416123A (zh) 硬體處理器及處理器
TWI808261B (zh) 使用轉換禁用指示符的設備、資料處理方法、電腦程式和電腦可讀取存儲媒體
WO2006132807A2 (en) Microprocessor instruction that allows system routine calls and returns from all contexts
CN111133418A (zh) 在例外屏蔽更新指令之后允许未中止的事务处理
JPH0248732A (ja) 命令パイプライン方式のマイクロプロセッサ
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JPH09128267A (ja) データ処理装置およびデータ処理方法
US6681322B1 (en) Method and apparatus for emulating an instruction set extension in a digital computer system
WO2019237865A1 (zh) 一种数据保护方法及计算装置
JP4465081B2 (ja) Vliwプロセッサにおける効率的なサブ命令エミュレーション
JPH05346872A (ja) 異種計算機命令の疑似実行方法および装置
JP6882320B2 (ja) ベクトル命令の処理
JPH05346871A (ja) 異種計算機命令の疑似実行方法および装置
JPH0895798A (ja) データ処理装置
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
KR102584039B1 (ko) 콘텍스트 데이터 관리
JP2953451B2 (ja) 割り込み処理方法