JPH01205347A - I/o割込みをシミュレートする装置及び方法 - Google Patents
I/o割込みをシミュレートする装置及び方法Info
- Publication number
- JPH01205347A JPH01205347A JP31866988A JP31866988A JPH01205347A JP H01205347 A JPH01205347 A JP H01205347A JP 31866988 A JP31866988 A JP 31866988A JP 31866988 A JP31866988 A JP 31866988A JP H01205347 A JPH01205347 A JP H01205347A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- instruction
- processor
- simulated
- interrupts
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the program performs an input/output emulation function
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔関連出願〕
本出願人に譲渡された1986年1月17日に米国で特
許出願され出願係属中のシリアル番号第820451の
「仮想ターミナル・サブシステム」。
許出願され出願係属中のシリアル番号第820451の
「仮想ターミナル・サブシステム」。
本出願人に譲渡された1988年2月1日に米国で特許
出願され出願係属中のシリアル番号第151136号の
rCPUプロセッサをシミュレートするための条件コー
ド・グラフ解析」。
出願され出願係属中のシリアル番号第151136号の
rCPUプロセッサをシミュレートするための条件コー
ド・グラフ解析」。
本出願人に譲渡された1988年2月1日に米国で特許
出願され出願係属中のシリアル番号第151137号の
「シミュレートされたCPUプロセッサ中のダイナミッ
ク転送制御命令アドレスの翻訳」。
出願され出願係属中のシリアル番号第151137号の
「シミュレートされたCPUプロセッサ中のダイナミッ
ク転送制御命令アドレスの翻訳」。
本出願人に譲渡された1988年2月1日に米国で特許
出願され出願係属中のシリアル番号第151135号の
rcPUプロセッサをシミュレートする方法及びシステ
ム内でのメモリ・マツピングと特別書込検出」。
出願され出願係属中のシリアル番号第151135号の
rcPUプロセッサをシミュレートする方法及びシステ
ム内でのメモリ・マツピングと特別書込検出」。
本特許出願書類の開示部分の一部は著作権法により保護
を受ける部分を含んでいる。著作権者は、特許庁の包装
または記録に表わされるままでの、特許出願書類及び開
示部分の複製に関しては異議を持たないが、それ以外の
いかなる場合においても全ての著作権を留保するもので
ある。
を受ける部分を含んでいる。著作権者は、特許庁の包装
または記録に表わされるままでの、特許出願書類及び開
示部分の複製に関しては異議を持たないが、それ以外の
いかなる場合においても全ての著作権を留保するもので
ある。
この発明は、入力/出力装置を持つ第1のデータ処理シ
ステムの特定の第1プロセツサのために書かれたアプリ
ケーション(適用業務)を実行するデータ処理システム
に関する。より詳細には、第1プロセツサとは異なる第
2プロセツサを有し第1データ処理システムの入力/出
力装置が取付けられた第2データ処理システムにおいて
、前述のアプリケーションを実行するために、第1デー
タ処理システムのI/O割込みをシミュレート(横梁)
する方法及び装置に関する。
ステムの特定の第1プロセツサのために書かれたアプリ
ケーション(適用業務)を実行するデータ処理システム
に関する。より詳細には、第1プロセツサとは異なる第
2プロセツサを有し第1データ処理システムの入力/出
力装置が取付けられた第2データ処理システムにおいて
、前述のアプリケーションを実行するために、第1デー
タ処理システムのI/O割込みをシミュレート(横梁)
する方法及び装置に関する。
コンピュータ技術の進歩は、処理システムのプロセッサ
(中央処理ユニット(CP U)とも呼ばれる)の変化
を絶えず促している。種々のプロセッサの進化の1例と
しては、IBM PCに用いられたインテルの808
8プロセツサ、IBMPCATに用いられたインテルの
80286プロセツサ、IBMパーソナル・システム/
2モデル80に用いられるインテル80386プロセツ
サ、及びIBM RT PCの縮小命令セット・コ
ンピュータ(RI S C) ・アーキテクチャを利
用するIBM リサーチ/OPDマイクロプロセツサ
(ROMP)である。他のプロセッサは、モトローラの
68000.68020である。
(中央処理ユニット(CP U)とも呼ばれる)の変化
を絶えず促している。種々のプロセッサの進化の1例と
しては、IBM PCに用いられたインテルの808
8プロセツサ、IBMPCATに用いられたインテルの
80286プロセツサ、IBMパーソナル・システム/
2モデル80に用いられるインテル80386プロセツ
サ、及びIBM RT PCの縮小命令セット・コ
ンピュータ(RI S C) ・アーキテクチャを利
用するIBM リサーチ/OPDマイクロプロセツサ
(ROMP)である。他のプロセッサは、モトローラの
68000.68020である。
種々の処理システムのハードウェアは、新らたに開発さ
れたプロセッサの増加した処理能力を利用するために急
速に変化している。ハードウェアの変化の不利な点は、
前のプロセッサのために書かれたソフトウェアは普通、
後のハードウェア技術には用いることができないことで
ある。
れたプロセッサの増加した処理能力を利用するために急
速に変化している。ハードウェアの変化の不利な点は、
前のプロセッサのために書かれたソフトウェアは普通、
後のハードウェア技術には用いることができないことで
ある。
いくつかの場合においては、アプリケーションがもとも
とそれが書かれたのとは異なる処理システム上で使用で
きることがあるが、そのアプリケーションの性能は最初
にそれが書かれた処理システム上での性能に比較して、
異なる処理システム上では良くない。この結果、長い開
発期間を要したソフトウェア・アプリケーションはすぐ
に旧式となってしまうおそれがある。前に書かれたソフ
トウェア・アプリケーションが使用できなくなることは
、その前に書かれたアプリケーションの機能が新しいハ
ードウェアの処理システム上でまだ関連性があって需要
がある時、−層残念なことである。
とそれが書かれたのとは異なる処理システム上で使用で
きることがあるが、そのアプリケーションの性能は最初
にそれが書かれた処理システム上での性能に比較して、
異なる処理システム上では良くない。この結果、長い開
発期間を要したソフトウェア・アプリケーションはすぐ
に旧式となってしまうおそれがある。前に書かれたソフ
トウェア・アプリケーションが使用できなくなることは
、その前に書かれたアプリケーションの機能が新しいハ
ードウェアの処理システム上でまだ関連性があって需要
がある時、−層残念なことである。
この結果、新しいハードウェアが初めて市場に発売され
る時、「新しい」ハードウェアのデザインのために特別
に書かれた「新しい」ソフトウェアの利用できる数は、
普通は限られたものである。
る時、「新しい」ハードウェアのデザインのために特別
に書かれた「新しい」ソフトウェアの利用できる数は、
普通は限られたものである。
これは、一部には、ソフトウェア・アプリケーシヨン・
プログラムを作る開発期間が長いこと、そして、ハード
ウェアが市場に発売されるまでは新しいハードウェアの
デザインは製造者により秘密にされていることによる。
プログラムを作る開発期間が長いこと、そして、ハード
ウェアが市場に発売されるまでは新しいハードウェアの
デザインは製造者により秘密にされていることによる。
ソフトウェアの開発者は、処理システムのためのソフト
ウェア・アプリケーション・プログラムを書く前に、そ
の処理システムのハードウェアについてのある事項につ
いて知らなければならない。
ウェア・アプリケーション・プログラムを書く前に、そ
の処理システムのハードウェアについてのある事項につ
いて知らなければならない。
理想的には、処理システムの製造業者は新しいハードウ
ェアの処理システムが市場に発表されると、即座に多く
の量のソフトウェアが入手可能となって処理システム上
で実行できるようになることを望む。顧客が、もし使用
のために豊富な量のソフトウェアの供給が利用可能であ
ることを知れば、新しい処理システムに投資する可能性
がもつと大きくなるであろう。
ェアの処理システムが市場に発表されると、即座に多く
の量のソフトウェアが入手可能となって処理システム上
で実行できるようになることを望む。顧客が、もし使用
のために豊富な量のソフトウェアの供給が利用可能であ
ることを知れば、新しい処理システムに投資する可能性
がもつと大きくなるであろう。
より古いハードウェア・デザインのために前に書かれた
大量のソフトウェアを使えるようにするいつくかの手法
がある。古いハードウェア的手法は、もともとは別のプ
ロセッサのために書かれたアプリケーションを実行でき
るようにするために、新しい処理システムにコプロセッ
サを設けることである。この手法では、処理システムは
両方のタイプのプロセッサ、古いプロセッサと新しいプ
ロセッサ、のために書かれたアプリケーションを実行す
ることができる。
大量のソフトウェアを使えるようにするいつくかの手法
がある。古いハードウェア的手法は、もともとは別のプ
ロセッサのために書かれたアプリケーションを実行でき
るようにするために、新しい処理システムにコプロセッ
サを設けることである。この手法では、処理システムは
両方のタイプのプロセッサ、古いプロセッサと新しいプ
ロセッサ、のために書かれたアプリケーションを実行す
ることができる。
例えば、IBM RT PCは、IBM PCA
Tのためにもともと書かれたアプリケーションを使用す
るため、IBM PCATコプロセッサを含んでいた
。しかし、コプロセッサがオペレーティング・システム
の低いレベルにおいてサポートされたため、コプロセッ
サはAIXオペレーティング・システムにより提供され
る機能を十分に利用することができなかった。AIXオ
ペレーティング・システムにより提供される機能の一つ
は、本出願人に譲渡された1986年1月17日の米国
特許出願シリアル番号第820451号の「仮想ターミ
ナル・サブシステム」に説明されるようなマルチ・タス
キングである。
Tのためにもともと書かれたアプリケーションを使用す
るため、IBM PCATコプロセッサを含んでいた
。しかし、コプロセッサがオペレーティング・システム
の低いレベルにおいてサポートされたため、コプロセッ
サはAIXオペレーティング・システムにより提供され
る機能を十分に利用することができなかった。AIXオ
ペレーティング・システムにより提供される機能の一つ
は、本出願人に譲渡された1986年1月17日の米国
特許出願シリアル番号第820451号の「仮想ターミ
ナル・サブシステム」に説明されるようなマルチ・タス
キングである。
しかしながら、コプロセッサは1度に1セツシヨンしか
ユーザに与えていない。これは、コプロセッサがPCA
Tエミュレーテングのためのハードウェア・アダプタを
含んでいたからである。
ユーザに与えていない。これは、コプロセッサがPCA
Tエミュレーテングのためのハードウェア・アダプタを
含んでいたからである。
すなわち、−度コプロセッサが開始すると、コプロセッ
サの他の要求は実行できなかった。コプロセッサは第1
処理システムのプロセッサ速度に限定されていて、第1
処理システムより進歩したより高速の第2処理システム
を利用することができなかった。
サの他の要求は実行できなかった。コプロセッサは第1
処理システムのプロセッサ速度に限定されていて、第1
処理システムより進歩したより高速の第2処理システム
を利用することができなかった。
第2の手法は、ソフトウェアにより第2プロセツサをシ
ミュレート(模擬)することである。ソフトウェア・シ
ミュレータが、あるプロセッサのために前に書かれたソ
フトウェアを異なるプロセッサを有する新しい処理シス
テム上で実行するためのメカニズムを提供する。シミュ
レーションを行うソフトウェア手法は、より高速の進歩
した第2処理システムを利用することができる。また、
第1プロセツサの複数の要求を与えるためのオペレーテ
ィング・システムのマルチタスキング能力を使用するこ
とができる。
ミュレート(模擬)することである。ソフトウェア・シ
ミュレータが、あるプロセッサのために前に書かれたソ
フトウェアを異なるプロセッサを有する新しい処理シス
テム上で実行するためのメカニズムを提供する。シミュ
レーションを行うソフトウェア手法は、より高速の進歩
した第2処理システムを利用することができる。また、
第1プロセツサの複数の要求を与えるためのオペレーテ
ィング・システムのマルチタスキング能力を使用するこ
とができる。
今日、販売されているソフトウェア・シミュレータとし
て、インシングニア・ソリューションによるソフトPC
およびコモドールのアミガ(モトローラ68000を使
用)のためのシミル・リサーチによるアミガ・トランス
フォーマがある。このシステムの情報が、記事「アミガ
のトランプ・カード:IBM pc エミュレーシ
ョン」、AMIGA WORLDSVol、1、Ni
2.11月712月1985、に記載されている。フェ
ニックス・テクノロジーが、68000プロセツサを有
するアポ口の製品のためのインテル・プロセッサをシミ
ュレートするシミュレータを提供した。
て、インシングニア・ソリューションによるソフトPC
およびコモドールのアミガ(モトローラ68000を使
用)のためのシミル・リサーチによるアミガ・トランス
フォーマがある。このシステムの情報が、記事「アミガ
のトランプ・カード:IBM pc エミュレーシ
ョン」、AMIGA WORLDSVol、1、Ni
2.11月712月1985、に記載されている。フェ
ニックス・テクノロジーが、68000プロセツサを有
するアポ口の製品のためのインテル・プロセッサをシミ
ュレートするシミュレータを提供した。
特定のCP tJコプロセッサ、全て特定の命令セット
を持っている。特定のCPUプロセッサのためのソフト
ウェア・アプリケーション・プログラムが開発される時
、それはオブジェクト・コードにコンパイルされる。オ
ブジェクト・コードは特定の命令セットを支援するいか
なるCPU上でも実行されることを目的としている。シ
ミュレータは特定の命令セット上で実行されるように書
かれたオブジェクト・コードを取り出し、これを類似ま
たは異なる命令セットを持つ異なるプロセッサ上で走ら
せることができるように変換する。2つのプロセッサの
2つの命令セットが異なればなるほど、シミュレートす
ることはより困難になる。
を持っている。特定のCPUプロセッサのためのソフト
ウェア・アプリケーション・プログラムが開発される時
、それはオブジェクト・コードにコンパイルされる。オ
ブジェクト・コードは特定の命令セットを支援するいか
なるCPU上でも実行されることを目的としている。シ
ミュレータは特定の命令セット上で実行されるように書
かれたオブジェクト・コードを取り出し、これを類似ま
たは異なる命令セットを持つ異なるプロセッサ上で走ら
せることができるように変換する。2つのプロセッサの
2つの命令セットが異なればなるほど、シミュレートす
ることはより困難になる。
例えば、インテル80286プロセツサは、広範囲の種
類の命令を提供する大変豊富な命令セットを持っている
。各命令は特定のタイプの状況のために特別に作られて
いる。さらに、各命令はいくつかの操作をすることがで
きるようであってもよい。これに対して、RT PC
のROMPプロセッサは、縮小命令セット(RISC)
プロセッサを有する。これはより少ない命令と、命令当
りより少ない機能を与える。インテル80286中の各
命令は複数のタスクを実行できるのであるが、同じタス
クを実行するのにROMP RISCプロセッサでは
より多くの命令を必要とするであろう。
類の命令を提供する大変豊富な命令セットを持っている
。各命令は特定のタイプの状況のために特別に作られて
いる。さらに、各命令はいくつかの操作をすることがで
きるようであってもよい。これに対して、RT PC
のROMPプロセッサは、縮小命令セット(RISC)
プロセッサを有する。これはより少ない命令と、命令当
りより少ない機能を与える。インテル80286中の各
命令は複数のタスクを実行できるのであるが、同じタス
クを実行するのにROMP RISCプロセッサでは
より多くの命令を必要とするであろう。
しかし、命令セットを単純化することにより、プロセッ
サの速度は増大させることができる。より多くの命令セ
ットが要求されるけれども、より共通でより単純なタス
クを実行する際には複雑な命令に費やされる追加的な時
間はない。
サの速度は増大させることができる。より多くの命令セ
ットが要求されるけれども、より共通でより単純なタス
クを実行する際には複雑な命令に費やされる追加的な時
間はない。
従来のソフトウェア・シミュレータの手法では、1つの
命令の結果をシミュレートするサブルーチンを作ってい
た。装置がシミュレートされてその命令を実行する必要
があるたびごと、その命令をデコード(復号)して実行
するため、サブルーチンが呼び出される。この手法の問
題点は、サブルーチンが呼び出されて実行されるたびご
と、命令をデコードするというオーバーヘッド(仕事)
が発生するということである。この結果、シミュレート
されたプロセッサの速度に悪影響を与える。
命令の結果をシミュレートするサブルーチンを作ってい
た。装置がシミュレートされてその命令を実行する必要
があるたびごと、その命令をデコード(復号)して実行
するため、サブルーチンが呼び出される。この手法の問
題点は、サブルーチンが呼び出されて実行されるたびご
と、命令をデコードするというオーバーヘッド(仕事)
が発生するということである。この結果、シミュレート
されたプロセッサの速度に悪影響を与える。
命令が実行されるたびごとにサブルーチンを呼び出すと
いうかわりに、別のソフトウェア・シミュレーション手
法では命令をシミュレートするために上位機械語命令の
より短い−続きにコンパイル(編集)する。この結果、
命令をデコードして翻訳するオーバヘッドはたった一度
、その命令が最初に実行される時に生ずるだけである。
いうかわりに、別のソフトウェア・シミュレーション手
法では命令をシミュレートするために上位機械語命令の
より短い−続きにコンパイル(編集)する。この結果、
命令をデコードして翻訳するオーバヘッドはたった一度
、その命令が最初に実行される時に生ずるだけである。
この翻訳はその後記憶される。それ以降は、その命令が
シミュレートされるたびごと、その翻訳が実行される。
シミュレートされるたびごと、その翻訳が実行される。
これはしばしば第2世代のシミュレータと呼ばれる。第
1世代のシミュレータは一度に一つの命令を取り、それ
を実時間でデコードして実行する。各命令が必要とされ
る時に、各命令に対してデコードが行なわれる。第2世
代のシミュレータは、−度に命令を全て検査して、命令
を翻訳し、再度翻訳し直すかわりに、その翻訳を再度使
用する。
1世代のシミュレータは一度に一つの命令を取り、それ
を実時間でデコードして実行する。各命令が必要とされ
る時に、各命令に対してデコードが行なわれる。第2世
代のシミュレータは、−度に命令を全て検査して、命令
を翻訳し、再度翻訳し直すかわりに、その翻訳を再度使
用する。
従来の第2世代シミュレータとしては、IBMシステム
/370上でROMP CPUをシミュレートするR
31.Mと呼ばれるシミュレータがある。このシミュレ
ータは、各命令に対してセルと呼ばれる固定の大きさの
記憶(各ハーフワードに対して16バイト)領域を用意
している。各RT命令についてI 8M370命令がこ
れらの各セルに作成される。もし作成されたコードの量
が1つのセルに入れることのできる大きさよりも小さけ
れば(!!!’通はこの場合である)、次のセルの次の
境界へ分岐される。もし命令をシミュレートするために
作成されたコードの量が1つのセルに入れることができ
ないものであれば、サブルーチン呼出しが生成され、エ
ミュレーションを実行するルーチンの実行時間環境セッ
トへ分岐しそして実行を完了するためにセルに戻る。別
のシミュレータがIBM RT PC上で18Mシ
ステム/370プロセツサとシミュレートする。これは
、1987年6月11日にインタプリータ及びインタブ
リータ技術に関する計算機械シンポジウムに於てMay
、C,が発表した“模擬:高速システム/370シミユ
レータ”、1987年に発行されたACM会報SIG
PLANに掲載されている。
/370上でROMP CPUをシミュレートするR
31.Mと呼ばれるシミュレータがある。このシミュレ
ータは、各命令に対してセルと呼ばれる固定の大きさの
記憶(各ハーフワードに対して16バイト)領域を用意
している。各RT命令についてI 8M370命令がこ
れらの各セルに作成される。もし作成されたコードの量
が1つのセルに入れることのできる大きさよりも小さけ
れば(!!!’通はこの場合である)、次のセルの次の
境界へ分岐される。もし命令をシミュレートするために
作成されたコードの量が1つのセルに入れることができ
ないものであれば、サブルーチン呼出しが生成され、エ
ミュレーションを実行するルーチンの実行時間環境セッ
トへ分岐しそして実行を完了するためにセルに戻る。別
のシミュレータがIBM RT PC上で18Mシ
ステム/370プロセツサとシミュレートする。これは
、1987年6月11日にインタプリータ及びインタブ
リータ技術に関する計算機械シンポジウムに於てMay
、C,が発表した“模擬:高速システム/370シミユ
レータ”、1987年に発行されたACM会報SIG
PLANに掲載されている。
第1世代のシミュレータは、シミュレートされる命令当
り50ないし/O0の上位機械語命令を実行する。第2
世代のシミュレータは、シミュレートされる命令当り平
均して/Oの上位機械語命令を実行する。
り50ないし/O0の上位機械語命令を実行する。第2
世代のシミュレータは、シミュレートされる命令当り平
均して/Oの上位機械語命令を実行する。
もし、シミュレータがシミュレートされる機械上の1命
令をシミュレートするために50または/Oの命令を使
用するならば、シミュレータを実行する第2プロセツサ
はそれぞれシミュレートされる機械に較べて50または
/O倍速くなければ、性能上匹敵することができない。
令をシミュレートするために50または/Oの命令を使
用するならば、シミュレータを実行する第2プロセツサ
はそれぞれシミュレートされる機械に較べて50または
/O倍速くなければ、性能上匹敵することができない。
したがって、この技術においては一層にシミュレートま
たは翻訳される各命令当りのシミュレート命令数を減少
することが望ましい。
たは翻訳される各命令当りのシミュレート命令数を減少
することが望ましい。
たとえば、もし、シミュレータがシミュレートされる命
令当り単に4つの命令を用いてシミュレートするように
設計することができたならば、そして、シミュレータ・
プロセッサがシミュレートされる機械のプロセッサより
も4倍以上速ければ、シミュレータはシミュレートされ
る元の機械よりも速いであろう。ユーザーはしたがって
、アプリケーション・プログラムを使用するためにその
プログラムがもともと書かれた機械を用いるよりも、シ
ミュレートされた機械を用いた方が性能を向上できるこ
とを知得できる。
令当り単に4つの命令を用いてシミュレートするように
設計することができたならば、そして、シミュレータ・
プロセッサがシミュレートされる機械のプロセッサより
も4倍以上速ければ、シミュレータはシミュレートされ
る元の機械よりも速いであろう。ユーザーはしたがって
、アプリケーション・プログラムを使用するためにその
プログラムがもともと書かれた機械を用いるよりも、シ
ミュレートされた機械を用いた方が性能を向上できるこ
とを知得できる。
このため、他のプロセッサをシミュレートする際の全体
的な問題は、シミュレータの処理速度を上げるためにシ
ミュレートされる命令当りのシミュレータ(上位)命令
数を一層に減少させることである。
的な問題は、シミュレータの処理速度を上げるためにシ
ミュレートされる命令当りのシミュレータ(上位)命令
数を一層に減少させることである。
しかし、異なる処理システムのために書かれたアプリケ
ーション・プログラムが実行される時、CPUプロセッ
サが効率的にシミュレートされなければならないことの
ほかに、別の問題がある。
ーション・プログラムが実行される時、CPUプロセッ
サが効率的にシミュレートされなければならないことの
ほかに、別の問題がある。
異なる処理システムをシミュレートするためには、第1
処理システムのプロセッサをシミュレートすると同時に
、その第1処理システムのIloの種々の要素を正確か
つ効率的にシミュレートすることが必要である。処理シ
ステムに取付けられているI/O装置をシミュレートす
る時にCPUシミュレータの性能を低下させないように
することが重要である。これは、I/O装置からの割込
みをシミュレートすることを行う時に大切である。
処理システムのプロセッサをシミュレートすると同時に
、その第1処理システムのIloの種々の要素を正確か
つ効率的にシミュレートすることが必要である。処理シ
ステムに取付けられているI/O装置をシミュレートす
る時にCPUシミュレータの性能を低下させないように
することが重要である。これは、I/O装置からの割込
みをシミュレートすることを行う時に大切である。
ソフトウェアによりシミュレートされるCPUを用いる
時に重要な問題点は、物理的アダプタからソフトウェア
によりシミュレートされたCPUへのハードウェア割込
みが、CPUの性能を低下させないようにすることであ
る。
時に重要な問題点は、物理的アダプタからソフトウェア
によりシミュレートされたCPUへのハードウェア割込
みが、CPUの性能を低下させないようにすることであ
る。
したがって、この発明の1つの目的は、シミュレートさ
れる機械語命令当りの上位機械語命令の平均数を減少さ
せることである。
れる機械語命令当りの上位機械語命令の平均数を減少さ
せることである。
この発明の別の目的は、シミュレータの性能を低下させ
ることなく、処理システム上で遅滞なくI/Oアダプタ
からの割込みに応答しかつこの処理システムをシミュレ
ートすることである。
ることなく、処理システム上で遅滞なくI/Oアダプタ
からの割込みに応答しかつこの処理システムをシミュレ
ートすることである。
この発明のシミュレータは、ハードウェアを直接制御す
るためのシミュレータの径路(パス)提供する。
るためのシミュレータの径路(パス)提供する。
ある処理システムのI/O装置を、シミュレートされる
別の処理システムのプロセッサ上で正確にシミュレート
するためのいくつかの手法が開発された。。
別の処理システムのプロセッサ上で正確にシミュレート
するためのいくつかの手法が開発された。。
まず、シミュレートされるCPUがI/O装置アダプタ
からのハードウェア割込みを認識しこれをサービスする
ために、第1処理システムの典型的なハードウェア割込
メカニズムをシミュレートする手法が必要とされた。こ
の発明のシミュレートされる割込コントローラ・ルーチ
ンはこれを達成している。
からのハードウェア割込みを認識しこれをサービスする
ために、第1処理システムの典型的なハードウェア割込
メカニズムをシミュレートする手法が必要とされた。こ
の発明のシミュレートされる割込コントローラ・ルーチ
ンはこれを達成している。
この発明の好実施例中でシミュレートされるインテル8
0286は命令を実行している間は割込まれることがで
きないけれども、割込みは中に入ることができ、認識さ
れ、各命令の後でサービスされる。処理システム・シミ
ュレータでは、各命令実行後に割込を調べてもし割込が
未処理であると、その後に割込をサービスするというこ
とは非常に時間を費やすことであった。
0286は命令を実行している間は割込まれることがで
きないけれども、割込みは中に入ることができ、認識さ
れ、各命令の後でサービスされる。処理システム・シミ
ュレータでは、各命令実行後に割込を調べてもし割込が
未処理であると、その後に割込をサービスするというこ
とは非常に時間を費やすことであった。
この発明の方法は、割込が素早く認識されることを保証
しながら、シミュレートされるCPUにより割込みがポ
ーリングされる回数を最小にする。
しながら、シミュレートされるCPUにより割込みがポ
ーリングされる回数を最小にする。
各命令後に割込みが検査される代りに、コード(命令)
のブロック後に検査される。この発明の方法では、以前
コンパイラ技術に用いられ現在I/Oシミュレーション
に用いられる手法により、命令のブロックを定義する。
のブロック後に検査される。この発明の方法では、以前
コンパイラ技術に用いられ現在I/Oシミュレーション
に用いられる手法により、命令のブロックを定義する。
アプリケーション・プログラムのためのプロセッサの命
令制御流れの図形(グラフ)解析が、−諸に数個の第2
プロセツサの命令に用意かつ即座に翻訳できる第1プロ
セツサの命令のブロックを決定するために用いられる。
令制御流れの図形(グラフ)解析が、−諸に数個の第2
プロセツサの命令に用意かつ即座に翻訳できる第1プロ
セツサの命令のブロックを決定するために用いられる。
命令のブロックの終すノ後に、シミュレートされた割込
コントローラが検査されて割込が未処理であるかどうが
か確認される。
コントローラが検査されて割込が未処理であるかどうが
か確認される。
これに加え、CPUシミュレータは迅速に■/O装置に
応答するように割込を認識することを保証しなければな
らない。これは割込みが入って来たか否かを決定するた
めに規則正しい間隔でこの割込みをポーリングしなけれ
ばならないことを意味する。
応答するように割込を認識することを保証しなければな
らない。これは割込みが入って来たか否かを決定するた
めに規則正しい間隔でこの割込みをポーリングしなけれ
ばならないことを意味する。
これを保証するため、図形解析から命令のブロックが翻
訳される時にプログラム中でループが発生する可能性を
検出した場合、この発明のシミュレータは割込みを検査
する。ループは、以前にすでにいた所へ戻る分岐する命
令であり、分岐命令への戻り径路が存在する。シミュレ
ータがループ中でどれだけ長く実行を行うかは決定でき
ないため、ループ付近で毎回シミュレータが割込みを探
すことを保証している。
訳される時にプログラム中でループが発生する可能性を
検出した場合、この発明のシミュレータは割込みを検査
する。ループは、以前にすでにいた所へ戻る分岐する命
令であり、分岐命令への戻り径路が存在する。シミュレ
ータがループ中でどれだけ長く実行を行うかは決定でき
ないため、ループ付近で毎回シミュレータが割込みを探
すことを保証している。
2つの条件が真であるときにプロセッサが割込みを認識
する。1つは割込みの要求がなされていること、この場
合は割込みコントローラからである。他はプロセッサが
内部的に割込みに対してサービスできる時であることで
ある。
する。1つは割込みの要求がなされていること、この場
合は割込みコントローラからである。他はプロセッサが
内部的に割込みに対してサービスできる時であることで
ある。
これらの条件が両方とも真である時、シミュレータが割
込みを認識しそして割込み検出のためのオーバヘッドを
最小にするため、シミュレータは1つの半ワード・ロー
ド(Load 1lalf)命令でもって半ワード(2
バイトの記憶)をポーリングする。
込みを認識しそして割込み検出のためのオーバヘッドを
最小にするため、シミュレータは1つの半ワード・ロー
ド(Load 1lalf)命令でもって半ワード(2
バイトの記憶)をポーリングする。
半ワードの各バイトは別々の意味を有する。1バイトは
、プロセッサが現在割込みにサービスすることができる
か否かを示す。このバイトは、シミュレートされたプロ
セッサのみにより更新される。
、プロセッサが現在割込みにサービスすることができる
か否かを示す。このバイトは、シミュレートされたプロ
セッサのみにより更新される。
他のバイトは割込みが要求されているか否かを示す。こ
のバイトはシミュレートされた割込みコントローラのみ
により更新される。もし両バイトが零であるならば1.
プロセッサが割込みに対して利用でき、そして、割込み
が要求されていることを意味する。これら2つの条件は
別々に更新することができ、そして一つの命令で同・時
に検査することができる。
のバイトはシミュレートされた割込みコントローラのみ
により更新される。もし両バイトが零であるならば1.
プロセッサが割込みに対して利用でき、そして、割込み
が要求されていることを意味する。これら2つの条件は
別々に更新することができ、そして一つの命令で同・時
に検査することができる。
この発明の好ましい実施例において、IBMRT P
CがIBM PCATをシミュレートする。この好実
施例の利点は、RT PC(!:PCRTの両方が等
しいバスを有していて、もしシステムがアダプタを動か
すソフトウェアを持っているなら、PCATのために作
られたアダプタをRT PCに使うことができる。異
なるバスを持つ処理システムをシミュレートするために
は、そのハードウェアのために仮想インターフェースを
書く必要がある。この発明では、ハードウェアへの直接
インターフェースがある。
CがIBM PCATをシミュレートする。この好実
施例の利点は、RT PC(!:PCRTの両方が等
しいバスを有していて、もしシステムがアダプタを動か
すソフトウェアを持っているなら、PCATのために作
られたアダプタをRT PCに使うことができる。異
なるバスを持つ処理システムをシミュレートするために
は、そのハードウェアのために仮想インターフェースを
書く必要がある。この発明では、ハードウェアへの直接
インターフェースがある。
たとえば、この発明の好実施例では、PCAT用に設計
された音楽カードをRT PCに接続することができ
る。この音楽カードを動かすRTPCのための固有のソ
フトウェアは存在しないけれども、PCAT上の音楽カ
ードのために書かれたソフトウェアをこの発明のシミュ
レータを用いてRT PC上で用いることができる。
された音楽カードをRT PCに接続することができ
る。この音楽カードを動かすRTPCのための固有のソ
フトウェアは存在しないけれども、PCAT上の音楽カ
ードのために書かれたソフトウェアをこの発明のシミュ
レータを用いてRT PC上で用いることができる。
IBM RT PC処理システム、IBM PC
AT処理システム、及びインテル80286プロセツサ
に関してのさらに詳しい情報については、以下の参照文
献がある。Bach+M、JのrUN IXオペレーテ
ィング・システムの設計J 1986年、プレテイス・
ホール刊、Lang、 T、G、及びMotherso
le、T、L、 r RT P CV RM中核の
設計J 1986年9月1日、rAIXオペレーティン
グ・システム・コマンド・レファレンス」2゜1版、1
8Mコーポレーション、5C23−0790、rAIX
オペレーティングシステム・マネージング・AIXオペ
レーティングシステム」2゜1版、18Mコーポレーシ
ョン、5C23−0793、rAIXオペレーティング
システム・プログラミング・ツール及びインターフェイ
ス」2゜1版、18Mコーポレーション、5C23−0
789、rAIXオペレーティングシステム・テクニカ
ル・レファレンス」2.1版、第1巻及び第2巻、18
Mコーポレーション、5C23−0808及び5C23
−0809、rlBM RTパーソナル・コンピュー
タ技術JIBMコーポレーション、5A23−/O57
.1986、「仮恐資源マネジャ・テクニカル・レファ
レンス」第2゜1版、第1巻及び第2巻、SC23−0
816及び5C23−0817、riAPX 828
6プログラマ・レファレンス・マアニュアル及び1AP
X286 数値補足」インテル、2/O498−〇〇
3.1985、rIBM PCATテクニカル・リフ
ァレンス・マアニュアルJIBMD−ポレーション、1
984年3月、r8259Aプログラマブル割込コント
ローラ8259A/8259A−2/8259A−8J
インテル注文番号231468−001.1986年/
O月。
AT処理システム、及びインテル80286プロセツサ
に関してのさらに詳しい情報については、以下の参照文
献がある。Bach+M、JのrUN IXオペレーテ
ィング・システムの設計J 1986年、プレテイス・
ホール刊、Lang、 T、G、及びMotherso
le、T、L、 r RT P CV RM中核の
設計J 1986年9月1日、rAIXオペレーティン
グ・システム・コマンド・レファレンス」2゜1版、1
8Mコーポレーション、5C23−0790、rAIX
オペレーティングシステム・マネージング・AIXオペ
レーティングシステム」2゜1版、18Mコーポレーシ
ョン、5C23−0793、rAIXオペレーティング
システム・プログラミング・ツール及びインターフェイ
ス」2゜1版、18Mコーポレーション、5C23−0
789、rAIXオペレーティングシステム・テクニカ
ル・レファレンス」2.1版、第1巻及び第2巻、18
Mコーポレーション、5C23−0808及び5C23
−0809、rlBM RTパーソナル・コンピュー
タ技術JIBMコーポレーション、5A23−/O57
.1986、「仮恐資源マネジャ・テクニカル・レファ
レンス」第2゜1版、第1巻及び第2巻、SC23−0
816及び5C23−0817、riAPX 828
6プログラマ・レファレンス・マアニュアル及び1AP
X286 数値補足」インテル、2/O498−〇〇
3.1985、rIBM PCATテクニカル・リフ
ァレンス・マアニュアルJIBMD−ポレーション、1
984年3月、r8259Aプログラマブル割込コント
ローラ8259A/8259A−2/8259A−8J
インテル注文番号231468−001.1986年/
O月。
第1図に示すように、シミュレータ/Oは処理システム
1のオペレーティング・システム12上でアプリケーシ
ョン・プログラムとして実行される。第1図に加えて第
2図を参照すると、シミュレータ/Oがステップ2で開
始されると、シミュレータ/Oは読出し専用記憶(RO
3又はROM)15から80286命令を含むBIO3
13をステップ3でオペレーティング・システム12の
共有メモリ・セグメント16上に複製する。ステップ4
で、シミュレータ/OがBIO313を翻訳し、ステッ
プ5でB IO3がアプリケーション19がもともと書
かれたオペレーティング・システム(DO3)18をロ
ードする。そしてステップ6でオペレーティング・シス
テム18を翻訳し実行する。ステップ7で、ユーザ(使
用者)がアプリケーション19をオペレーティング・シ
ステム・プロンプト上に呼び込み、ステップ8でシミュ
レータ/Oがアプリケーション・プログラム19を翻訳
し実行する。
1のオペレーティング・システム12上でアプリケーシ
ョン・プログラムとして実行される。第1図に加えて第
2図を参照すると、シミュレータ/Oがステップ2で開
始されると、シミュレータ/Oは読出し専用記憶(RO
3又はROM)15から80286命令を含むBIO3
13をステップ3でオペレーティング・システム12の
共有メモリ・セグメント16上に複製する。ステップ4
で、シミュレータ/OがBIO313を翻訳し、ステッ
プ5でB IO3がアプリケーション19がもともと書
かれたオペレーティング・システム(DO3)18をロ
ードする。そしてステップ6でオペレーティング・シス
テム18を翻訳し実行する。ステップ7で、ユーザ(使
用者)がアプリケーション19をオペレーティング・シ
ステム・プロンプト上に呼び込み、ステップ8でシミュ
レータ/Oがアプリケーション・プログラム19を翻訳
し実行する。
■9割込メカニズム
第5図に示すこの発明の好ましい実施例においテ、シミ
ュレートされた割込コントローラ・7L/ −チン30
0が、シミュレートされたCPUl0がI/Oアダプタ
3/Oからのハードウェア割込みを認識してサービスす
るためにハードウェア割込みメカニズム(例えばインテ
ル8259)の機能をシミュレートする。
ュレートされた割込コントローラ・7L/ −チン30
0が、シミュレートされたCPUl0がI/Oアダプタ
3/Oからのハードウェア割込みを認識してサービスす
るためにハードウェア割込みメカニズム(例えばインテ
ル8259)の機能をシミュレートする。
1つの割込要求のみが入いることを許す286プロセツ
サをシミュレートしているので、CPUシミュレータ/
Oは単に一度に1つの割込みを受けることができるだけ
である。この発明の好実施例がシミュレートしている2
86プロセツサを有する第1処理システムでは、825
9と呼ばれるハードウェア割込コントローラはたった1
つの割込のみを286プロセツサが受は取るように用い
られていた。もつとも割込みの15の異なるレベルを内
部タイマ時計などの内部アダプタまたはバスに取付けら
れた通信カードなどの外部アダプタへ接続することがで
きる。
サをシミュレートしているので、CPUシミュレータ/
Oは単に一度に1つの割込みを受けることができるだけ
である。この発明の好実施例がシミュレートしている2
86プロセツサを有する第1処理システムでは、825
9と呼ばれるハードウェア割込コントローラはたった1
つの割込のみを286プロセツサが受は取るように用い
られていた。もつとも割込みの15の異なるレベルを内
部タイマ時計などの内部アダプタまたはバスに取付けら
れた通信カードなどの外部アダプタへ接続することがで
きる。
これらの割込みの優先づけのために、実際の第1処理シ
ステムは継続接続された2つの8259割込みコントロ
ーラを用いていた。各別込みコントローラは8つの入力
を受けることができ、そしてこれらを1つの出力優先づ
けすることができる。
ステムは継続接続された2つの8259割込みコントロ
ーラを用いていた。各別込みコントローラは8つの入力
を受けることができ、そしてこれらを1つの出力優先づ
けすることができる。
1つの割込みコントローラは8個の割込みを外部または
内部アダプタから受は取り、これらの1つを優先的に出
力する。他の割込みコントローラはこの1つの出力を外
部または内部アダプタからの他の7つの可能な割込みを
含む入力の1つとして受取る。
内部アダプタから受は取り、これらの1つを優先的に出
力する。他の割込みコントローラはこの1つの出力を外
部または内部アダプタからの他の7つの可能な割込みを
含む入力の1つとして受取る。
このコントローラに関するさらに詳しい情報はr825
9A プログラマブル割込コントローラ8259A/
8259A−2/8259A−8Jインテル、注文番号
23146B−001,1986年/O月に記載されて
いる。上述のハードウェア割込コントローラの機能は、
この発明のシステムにおいて、上記参照文献の記載を利
用して作成したプログラムによりシミュレートされた割
込コントローラ・ルーチン300(第5図)内でエミュ
レートされる。
9A プログラマブル割込コントローラ8259A/
8259A−2/8259A−8Jインテル、注文番号
23146B−001,1986年/O月に記載されて
いる。上述のハードウェア割込コントローラの機能は、
この発明のシステムにおいて、上記参照文献の記載を利
用して作成したプログラムによりシミュレートされた割
込コントローラ・ルーチン300(第5図)内でエミュ
レートされる。
シミュレートされた割込コントローラ・ルーチン300
は共有メモリ・セグメント16(第5図)中に存在して
いて、アプリケーション及び他の処理lO19、及び装
置ドライバ320(割込処理器とし機能する)が割込コ
ントローラのエミュレートされた機能にアクセスするこ
とを可能にしている。シミュレートされた割込コントロ
ーラ・ルーチン300は、ルーチンが他の処理との同期
なしに呼出されるように再入可能に書かれていた。
は共有メモリ・セグメント16(第5図)中に存在して
いて、アプリケーション及び他の処理lO19、及び装
置ドライバ320(割込処理器とし機能する)が割込コ
ントローラのエミュレートされた機能にアクセスするこ
とを可能にしている。シミュレートされた割込コントロ
ーラ・ルーチン300は、ルーチンが他の処理との同期
なしに呼出されるように再入可能に書かれていた。
第5図は、オペレーティング・システム12上で実行さ
れるアプリケーションである、CPUシミュレータ/O
への現実のハードウェア割込315.316.317を
提供するこの発明により用いられる好実施例を示す。
れるアプリケーションである、CPUシミュレータ/O
への現実のハードウェア割込315.316.317を
提供するこの発明により用いられる好実施例を示す。
第1に、I/O装置3/O−312の各々に対して仮想
資源管理(VRM)装置ドライバ320−322は、ハ
ードウェア・バスからハードウェア割込315−317
を実際に受は取るために仮想資源管理14中に設けられ
ている。VRM装置ドライバ320−322が加えられ
たので、AIXオペレーティング・システム装置ドライ
バ237がAIXオペレーティング・システム12の核
(カーネル)に必要とされた。
資源管理(VRM)装置ドライバ320−322は、ハ
ードウェア・バスからハードウェア割込315−317
を実際に受は取るために仮想資源管理14中に設けられ
ている。VRM装置ドライバ320−322が加えられ
たので、AIXオペレーティング・システム装置ドライ
バ237がAIXオペレーティング・システム12の核
(カーネル)に必要とされた。
シミュレータ/Oは、2つのタイプの装置ドライバ32
3.320ヘアタツチ222を行うオペレーティング・
システム装置ドライバ237へ0PEN命令221を出
す。V RM装置ドライバ323はシミユレータ/Oヘ
タイマ割込を送ることにつき責任を有している。タイマ
割込みの能力は、1秒以下の細分性において必要であっ
た。AIXオペレーティング・システム・レベル12で
は、単に1秒のタイマ割込みが利用可能であった。しか
し、VRMレベ、ル14において、タイマ割込みは大よ
そ毎ミリ秒ごとに送ることができる。このため、VRM
装置ドライバ323は、シミュレータ/Oへタイマ割込
みを与えるために用いられた。
3.320ヘアタツチ222を行うオペレーティング・
システム装置ドライバ237へ0PEN命令221を出
す。V RM装置ドライバ323はシミユレータ/Oヘ
タイマ割込を送ることにつき責任を有している。タイマ
割込みの能力は、1秒以下の細分性において必要であっ
た。AIXオペレーティング・システム・レベル12で
は、単に1秒のタイマ割込みが利用可能であった。しか
し、VRMレベ、ル14において、タイマ割込みは大よ
そ毎ミリ秒ごとに送ることができる。このため、VRM
装置ドライバ323は、シミュレータ/Oへタイマ割込
みを与えるために用いられた。
タイマ割込装置ドライバ323は、VRM14から周期
的割込を受信するようにタイマを設定する呼出しを行う
。タイマ割込みが装置ドライバ323によりVRM14
から受取られるたびごとに、装置323は同じ割込コン
トローラ・シミュレーション・ルーチン300を呼び出
し、一般的装置ドライバ320がハードウェア3/Oか
ら割込みを受は取る時に発生する割込みを要求する。こ
のようにして、タイマ割込318及びハードウェア割込
319が、アプリケーション・レベルで実行されている
シミュレータ/Oへ送られることができる。
的割込を受信するようにタイマを設定する呼出しを行う
。タイマ割込みが装置ドライバ323によりVRM14
から受取られるたびごとに、装置323は同じ割込コン
トローラ・シミュレーション・ルーチン300を呼び出
し、一般的装置ドライバ320がハードウェア3/Oか
ら割込みを受は取る時に発生する割込みを要求する。こ
のようにして、タイマ割込318及びハードウェア割込
319が、アプリケーション・レベルで実行されている
シミュレータ/Oへ送られることができる。
第6図は、第5図に示すこの発明のシステムによりCP
Uシミュレータ/Oへ実際のハードウェア割込315.
316.317を提供するために用いられるステップを
説明する。
Uシミュレータ/Oへ実際のハードウェア割込315.
316.317を提供するために用いられるステップを
説明する。
ステップ341で3278/3279エミユレーシヨン
・カードなどのアダプタ3/Oがハードウェア割込を送
る時、装置ドライバ320中の割込処理器によりステッ
プ342で受信される。−旦、装置ドライバ320が割
込315を認識すると、装置ドライバ320がステップ
343でルーチン・シミュレートされた割込コントロー
ラ・ルーチン300を呼び出し、ステップ344でハー
ドウェア割込コントローラ、例えば8259の機能をシ
ミュレートする。
・カードなどのアダプタ3/Oがハードウェア割込を送
る時、装置ドライバ320中の割込処理器によりステッ
プ342で受信される。−旦、装置ドライバ320が割
込315を認識すると、装置ドライバ320がステップ
343でルーチン・シミュレートされた割込コントロー
ラ・ルーチン300を呼び出し、ステップ344でハー
ドウェア割込コントローラ、例えば8259の機能をシ
ミュレートする。
これらの機能のいくつかは、割込レベルを検査すること
、割込に優先づけを行うこと、及びマスクまたはマスク
されない割込みを検査することを含む。例えば、アプリ
ケーション19は割込みをマスクすることにより、異な
るレベルの割込みを禁止することができる。もしアプリ
ケーション19がいくつかのI/O装置を支援しなけれ
ば、それらからの割込みをマスクするであろう。したが
って、シミュレートされた割込コントローラ・ルーチン
300は、ステップ345で装置ドライバ320が割込
を受信したレベルで、その割込みをCPUシミュレータ
に通知することができるかどうかを決定する。もしそれ
ができなければ、装置ドライバ320〜323からの次
の呼出しを待つ。
、割込に優先づけを行うこと、及びマスクまたはマスク
されない割込みを検査することを含む。例えば、アプリ
ケーション19は割込みをマスクすることにより、異な
るレベルの割込みを禁止することができる。もしアプリ
ケーション19がいくつかのI/O装置を支援しなけれ
ば、それらからの割込みをマスクするであろう。したが
って、シミュレートされた割込コントローラ・ルーチン
300は、ステップ345で装置ドライバ320が割込
を受信したレベルで、その割込みをCPUシミュレータ
に通知することができるかどうかを決定する。もしそれ
ができなければ、装置ドライバ320〜323からの次
の呼出しを待つ。
もし同じレベルで割込みを通知することができるならば
、フラグをセットする。シミュレートされた割込コント
ローラ・ルーチン300がCPUシミュレータlOへ通
知すべき割込みを有すると、ステップ346で2バイト
ワード(または半ワード)330の内の1バイト332
を零にセットすることにより更新する。半ワード330
が零になると、サービスを要する割込みが存在する。半
ワード330の2バイト中、上位バイト332は割込コ
ントローラ300のシミュレーションが所有し、下位バ
イト331はプロセッサ、すなわち、CPUシミュレー
タにより所有される。
、フラグをセットする。シミュレートされた割込コント
ローラ・ルーチン300がCPUシミュレータlOへ通
知すべき割込みを有すると、ステップ346で2バイト
ワード(または半ワード)330の内の1バイト332
を零にセットすることにより更新する。半ワード330
が零になると、サービスを要する割込みが存在する。半
ワード330の2バイト中、上位バイト332は割込コ
ントローラ300のシミュレーションが所有し、下位バ
イト331はプロセッサ、すなわち、CPUシミュレー
タにより所有される。
大部分のプロセッサは2つの条件が真である時に割込み
を認識する。1つは割込みが要求されていること、この
場合はシミュレートされた割込コントローラ・ルーチン
からの割込みである。他は内部的にプロセッサが割込み
に対してサービスすることができることである。
を認識する。1つは割込みが要求されていること、この
場合はシミュレートされた割込コントローラ・ルーチン
からの割込みである。他は内部的にプロセッサが割込み
に対してサービスすることができることである。
CPUシミュレータは大部分のプロセッサができるよう
に割込みを禁止することができる。これは普通、プロセ
ッサが自己矛盾的であることを許さない大変に慎重さを
有するデータを処理する時に生ずる。もし、ルーチンが
割込処理器においても処理されるデータを更新している
と、プロセッサは命令のある−続きが割込まれることな
く自動的に実行されることを保証するために割込みを禁
止する。
に割込みを禁止することができる。これは普通、プロセ
ッサが自己矛盾的であることを許さない大変に慎重さを
有するデータを処理する時に生ずる。もし、ルーチンが
割込処理器においても処理されるデータを更新している
と、プロセッサは命令のある−続きが割込まれることな
く自動的に実行されることを保証するために割込みを禁
止する。
プロセッサは、内部的に割込みをサービスすることが可
能であるかどうかを、プロセッサ中の割込フラグ・レジ
スタを更新することにより示す。
能であるかどうかを、プロセッサ中の割込フラグ・レジ
スタを更新することにより示す。
この発明のシミュレートされた命令に対して、プロセッ
サにより用いられ、フラグ・レジスタを介して割込みを
禁止または可能にするいくつかの典型的な命令が以下に
説明される。
サにより用いられ、フラグ・レジスタを介して割込みを
禁止または可能にするいくつかの典型的な命令が以下に
説明される。
CLI(割込み消去)は、割込コントローラからの全て
の割込要求を禁止するため、シミュレートされている第
1処理システムのプロセッサのフラグ・レジスタ内の割
込可能ビットを消去する。
の割込要求を禁止するため、シミュレートされている第
1処理システムのプロセッサのフラグ・レジスタ内の割
込可能ビットを消去する。
5TI(割込み設定)は、割込コントローラからの全て
の割込要求を可能にするためフラグ・レジスタ内の割込
み可能ビットを設定する。これに加え、フラグ・レジス
タ内の割込み可能ビットを含む全内容を置き換える2つ
の命令、IRET及びPOPFがある。
の割込要求を可能にするためフラグ・レジスタ内の割込
み可能ビットを設定する。これに加え、フラグ・レジス
タ内の割込み可能ビットを含む全内容を置き換える2つ
の命令、IRET及びPOPFがある。
ステップ360(第6図)で、CPUシミュレータ/O
がこれら命令のどれか1つの翻訳を実行する時、2バイ
ト半ワード330の1バイト331を介してその割込可
能状態を表わす。第8図は、STI命令をシミュレート
するために要求される翻訳コードを示す。第8図に示す
一番目の命令は、プロセッサが割込要求にサービスする
ことを可能にするSTI命令に用いられる翻訳である。
がこれら命令のどれか1つの翻訳を実行する時、2バイ
ト半ワード330の1バイト331を介してその割込可
能状態を表わす。第8図は、STI命令をシミュレート
するために要求される翻訳コードを示す。第8図に示す
一番目の命令は、プロセッサが割込要求にサービスする
ことを可能にするSTI命令に用いられる翻訳である。
第8図に示めされる2番目の命令は、プロセッサの可能
状態を表わすためシミュレートされたプロセッサにより
所有されるバイト331を更新する。
状態を表わすためシミュレートされたプロセッサにより
所有されるバイト331を更新する。
CPUシミュレータ/Oは、外部的に割込み動作が要求
されている事実を認識できなければならないのみならず
、内部的にプロセッサが割込みをサービスできなければ
ならない。これは共有メモリ・セグメント16内の2つ
のバイト331をポーリングすることにより行なわれる
。もし、割込みがプロセッサの内部で可能であるならば
、cPUより所有されている半ワード33001バイト
331は零である。割込みが外部から要求されている時
、シミュレートされた割込コントローラ・ルーチン30
0により所有される他のバイト332は零である。割込
みは、ステップ344でシミュレートされた割込みコン
トローラ・ルーチン300の現在の割込み優先レベルに
より決定された十分に高い優先度のものである。CPU
シミュレータ/Oは、ステップ349で2バイト330
が零になるまで、ステップ348で規則的に2バイト3
30を読む。
されている事実を認識できなければならないのみならず
、内部的にプロセッサが割込みをサービスできなければ
ならない。これは共有メモリ・セグメント16内の2つ
のバイト331をポーリングすることにより行なわれる
。もし、割込みがプロセッサの内部で可能であるならば
、cPUより所有されている半ワード33001バイト
331は零である。割込みが外部から要求されている時
、シミュレートされた割込コントローラ・ルーチン30
0により所有される他のバイト332は零である。割込
みは、ステップ344でシミュレートされた割込みコン
トローラ・ルーチン300の現在の割込み優先レベルに
より決定された十分に高い優先度のものである。CPU
シミュレータ/Oは、ステップ349で2バイト330
が零になるまで、ステップ348で規則的に2バイト3
30を読む。
この発明の方法及びシステムは、割込要求の返答として
の肯定応答を保証するオーバーヘッド(仕事)を最小に
するため、アプリケーション19の制御の命令流れ中の
重要領域を認識する。割込みを検査するオーバーヘッド
を最小にする2つの重要領域は、1)割込みが認識され
る領域の数を最小にすること、および2)割込みをサー
ビスすべきかを決定するに必要とする仕事の量を最小に
すること、である。
の肯定応答を保証するオーバーヘッド(仕事)を最小に
するため、アプリケーション19の制御の命令流れ中の
重要領域を認識する。割込みを検査するオーバーヘッド
を最小にする2つの重要領域は、1)割込みが認識され
る領域の数を最小にすること、および2)割込みをサー
ビスすべきかを決定するに必要とする仕事の量を最小に
すること、である。
シミュレータ/Oは、割込みが認識される領域の数を最
小にするように割込み要求がポーリングされる所を決定
するため、第1プロセツサ命令/O0のブロックの図形
解析30(第3図)による情報に依存する。図形解析技
術は従来、高レベル言語コンパイラを最適化するのに用
いられたものであるが、プロセッサI/Oシミュレーシ
ョンの問題に適用されるのは最初である。
小にするように割込み要求がポーリングされる所を決定
するため、第1プロセツサ命令/O0のブロックの図形
解析30(第3図)による情報に依存する。図形解析技
術は従来、高レベル言語コンパイラを最適化するのに用
いられたものであるが、プロセッサI/Oシミュレーシ
ョンの問題に適用されるのは最初である。
シミュレータ/Oは第1プロセツサ命令/O0(第3図
)を第2プロセツサ命令130(第9A図、第9B図)
に翻訳する。しかし、1つの命令を1度に翻訳すること
はしない。シミュレータ/Oは翻訳がなく、実行される
予定の第1命令を検査し、そして第3図に示めされるよ
うな命令の図形30を作成する間、引き続く命令の検査
を続ける。
)を第2プロセツサ命令130(第9A図、第9B図)
に翻訳する。しかし、1つの命令を1度に翻訳すること
はしない。シミュレータ/Oは翻訳がなく、実行される
予定の第1命令を検査し、そして第3図に示めされるよ
うな命令の図形30を作成する間、引き続く命令の検査
を続ける。
第4図のステップ131で、シミュレータ/Oが第1プ
ロセツサ命令/O0の新しいブロックに達した時、ステ
ップ132で、シミュレータ/Oは第2プロセツサ翻訳
を与えるために翻訳器27を呼出す。翻訳は3つの段階
で行なわれる。
ロセツサ命令/O0の新しいブロックに達した時、ステ
ップ132で、シミュレータ/Oは第2プロセツサ翻訳
を与えるために翻訳器27を呼出す。翻訳は3つの段階
で行なわれる。
第1に、第4図のステップ133で第3図の図形30が
作成される。これは、第1プロセツサ命令のブロックの
構造を表わす。図形中の各ノード/O1は1命令/O0
に対応する。第1プロセツサ命令デコーダ28は各ノー
ド/O1を命令のタイプ140を含む命令/O0につい
ての情報で満たす。
作成される。これは、第1プロセツサ命令のブロックの
構造を表わす。図形中の各ノード/O1は1命令/O0
に対応する。第1プロセツサ命令デコーダ28は各ノー
ド/O1を命令のタイプ140を含む命令/O0につい
ての情報で満たす。
命令タイプ140は命令/O0の後続数に依存している
。各ノード/O1は最大2つの後続を有することができ
る。メモリ中で制御を次の順次命令に渡すのみの順次命
令/O2−/O5./O7./O9.111−113.
115−117の場合において、第3図に示すようにノ
ードは1つのみの後続/O3−/O6./O8、I/O
.112−114.116−118をそれぞれ有する。
。各ノード/O1は最大2つの後続を有することができ
る。メモリ中で制御を次の順次命令に渡すのみの順次命
令/O2−/O5./O7./O9.111−113.
115−117の場合において、第3図に示すようにノ
ードは1つのみの後続/O3−/O6./O8、I/O
.112−114.116−118をそれぞれ有する。
条件を試験してもし条件が真実であるならば1つの命令
に分岐し、もし条件が誤りであるならば次の命令にその
まま進むという条件付分岐命令/O6./O8の場合、
2つの後続を有することができる。
に分岐し、もし条件が誤りであるならば次の命令にその
まま進むという条件付分岐命令/O6./O8の場合、
2つの後続を有することができる。
割込戻り命令114.118の場合のように、ノード/
O1が後続を持たない可能性がある。後続を有しない命
令114.118は制御を動的に受は渡す命令を表わす
。ノード/O1は順次命令でない1つの後続を有するこ
とができる。無条件ジャンプ命令1/Oはこの例である
。
O1が後続を持たない可能性がある。後続を有しない命
令114.118は制御を動的に受は渡す命令を表わす
。ノード/O1は順次命令でない1つの後続を有するこ
とができる。無条件ジャンプ命令1/Oはこの例である
。
第4図のステップ133で、ノード/O1はトランスレ
ータ27がノードを見つけると、記憶120中に連続的
に割振られる。第1プロセツサのためにもともと書かれ
たアプリケーション・プログラム中の調査は深さ第1調
査と呼ばれる。深さ第1調査では、命令がすでに調査さ
れてメモリ中に記憶されているもの、たとえば、転送/
O4に到達するまで、または零のような終すノード、た
とえば、戻り命令114、に到達するまで、命令が連続
的に調査される。もし、命令(たとえば、転送/O4)
が、すでにメモリ中に記憶されていて、そして命令が前
に記憶された命令への径路123を有するもの(たとえ
ば、ジャンプ1/O)中に到達したならば、ループに出
会ったことになり、前に記憶された命令(たとえば、ジ
ャンプ1/O)中に記録される。
ータ27がノードを見つけると、記憶120中に連続的
に割振られる。第1プロセツサのためにもともと書かれ
たアプリケーション・プログラム中の調査は深さ第1調
査と呼ばれる。深さ第1調査では、命令がすでに調査さ
れてメモリ中に記憶されているもの、たとえば、転送/
O4に到達するまで、または零のような終すノード、た
とえば、戻り命令114、に到達するまで、命令が連続
的に調査される。もし、命令(たとえば、転送/O4)
が、すでにメモリ中に記憶されていて、そして命令が前
に記憶された命令への径路123を有するもの(たとえ
ば、ジャンプ1/O)中に到達したならば、ループに出
会ったことになり、前に記憶された命令(たとえば、ジ
ャンプ1/O)中に記録される。
そして、図形解析は、前に出会ったタイプ2のノード(
たとえば、/O8)を訪ずれ、そして、命令がすでに到
達されてそしてメモリ中に記憶されたものに到達するま
で、または、零のような終すノード、たとえば戻り命令
114に到達するまで、別の径路122に沿って調査す
ることにより、深さ第1調査を再開する。深さ第1調査
は、前に出会ったタイプ2のノード(たとえば、ジャン
プ/O8)を訪ずれることにより、上述の工程を繰返す
。もし、この命令の両方の径路122、および123が
すでにたどられたものであれば、調査は次の前のタイプ
2の命令(たとえば、ジャンプ/O6)を訪ずれ、そし
て別の径路124をたどる。命令がすでに訪ずれられて
メモリ中に記憶されたものに到達するか、または、零の
ような終りノード、例えば戻り命令118に到達するま
で、命令115−118が連続的に調査される。
たとえば、/O8)を訪ずれ、そして、命令がすでに到
達されてそしてメモリ中に記憶されたものに到達するま
で、または、零のような終すノード、たとえば戻り命令
114に到達するまで、別の径路122に沿って調査す
ることにより、深さ第1調査を再開する。深さ第1調査
は、前に出会ったタイプ2のノード(たとえば、ジャン
プ/O8)を訪ずれることにより、上述の工程を繰返す
。もし、この命令の両方の径路122、および123が
すでにたどられたものであれば、調査は次の前のタイプ
2の命令(たとえば、ジャンプ/O6)を訪ずれ、そし
て別の径路124をたどる。命令がすでに訪ずれられて
メモリ中に記憶されたものに到達するか、または、零の
ような終りノード、例えば戻り命令118に到達するま
で、命令115−118が連続的に調査される。
第2に、第4図のステップ134で、割込みがポーリン
グされなければならない所を決定するため、図形が解析
される。全てのタイプ零の命令の直前で、割込みがポー
リングされる。これに加えて、もし、タイプ1の命令が
CLI(割込消去命令)であるならば、タイプ1の命令
の直前で割込みがポーリングされる。図形解析の深さ第
1調査の間に命令がループを終わらせるものであると決
定された場合のみ、タイプ2または3の命令において割
込みがポーリングされる。
グされなければならない所を決定するため、図形が解析
される。全てのタイプ零の命令の直前で、割込みがポー
リングされる。これに加えて、もし、タイプ1の命令が
CLI(割込消去命令)であるならば、タイプ1の命令
の直前で割込みがポーリングされる。図形解析の深さ第
1調査の間に命令がループを終わらせるものであると決
定された場合のみ、タイプ2または3の命令において割
込みがポーリングされる。
第3に、第4図のステップ136では、コード生成器2
9が図形30を第9A、9B図に示す第2プロセツサ命
令に翻訳するため呼び出される。
9が図形30を第9A、9B図に示す第2プロセツサ命
令に翻訳するため呼び出される。
図形解析から割込みがポーリングされることを決定され
た所では、翻訳器が第9A、9B図に示すようにその所
で割込みを検査する翻訳されたコード138を挿入する
。
た所では、翻訳器が第9A、9B図に示すようにその所
で割込みを検査する翻訳されたコード138を挿入する
。
上述の図形解析で決定されるように、命令が制御を動的
には決定できないような所へ移す時(なぜならば、実行
時でしか知られることのない値を必要とするため)にの
み割込みが検査される。すなわち、タイプ零〇ノードの
所、または分岐または条件付分岐命令がループを閉じる
時である。さらに別の例として、第7図は第1処理シス
テム命令の制御流れ中で、割込みが認識される場所の数
を最小にするために割込みがポーリングされる場所を示
す。
には決定できないような所へ移す時(なぜならば、実行
時でしか知られることのない値を必要とするため)にの
み割込みが検査される。すなわち、タイプ零〇ノードの
所、または分岐または条件付分岐命令がループを閉じる
時である。さらに別の例として、第7図は第1処理シス
テム命令の制御流れ中で、割込みが認識される場所の数
を最小にするために割込みがポーリングされる場所を示
す。
割込みがポーリングされなければならない場所の数を最
小にしなければならないのみならず、割込みがサービス
されなければならないかどうかを決定するのに必要な仕
事も最小にしなければならない。割込要求がサービスさ
れなければならないかどうかは、本処理の割込要求があ
るかどうか及びプロセッサが現在サービスすることが可
能かどうかによって決まる。
小にしなければならないのみならず、割込みがサービス
されなければならないかどうかを決定するのに必要な仕
事も最小にしなければならない。割込要求がサービスさ
れなければならないかどうかは、本処理の割込要求があ
るかどうか及びプロセッサが現在サービスすることが可
能かどうかによって決まる。
この発明のシミュレータは、共有メモリ・セグメント(
束縛されたページ)中で、2バイト半ワードを利用して
、プロセッサ中の割込可能フラグ及びはいって来る割込
み要求の両方の状態を示す。
束縛されたページ)中で、2バイト半ワードを利用して
、プロセッサ中の割込可能フラグ及びはいって来る割込
み要求の両方の状態を示す。
半ワードの最初のバイトは、プロセッサが割込みをサー
ビス可能である時に、零を含む。2番目のバイトは、割
込みが要求されている時に、零を含む。これらのバイト
は文字記憶(SToreCharacter )命令を
用いて自動的に更新することができること、また、半ワ
ード・ロード(LoadHalfword)命令を用い
て同時的に読み出すことができること、が重要なことで
ある。これは、重要な部分のプログラムが割込まれる時
、及び別の処理が矛盾する状態を生ずるような更新を同
じデータにする時に発生する同期の問題を回避する。
ビス可能である時に、零を含む。2番目のバイトは、割
込みが要求されている時に、零を含む。これらのバイト
は文字記憶(SToreCharacter )命令を
用いて自動的に更新することができること、また、半ワ
ード・ロード(LoadHalfword)命令を用い
て同時的に読み出すことができること、が重要なことで
ある。これは、重要な部分のプログラムが割込まれる時
、及び別の処理が矛盾する状態を生ずるような更新を同
じデータにする時に発生する同期の問題を回避する。
好実施例の場合においては、もしIBM RTPCが
アドバンスト・プロセッサ・カードを備えているならば
、半ワード・ロード(Load Half)命令の実行
は性能を一層の向上を生ずるように他の命令と重複され
る。もし、割込みがサービスされることがなければ(こ
れがもつとも−船釣な状態である)、割込みへのポーリ
ングは約4マシン・サイクル、約手マイクロ秒を消費す
る。
アドバンスト・プロセッサ・カードを備えているならば
、半ワード・ロード(Load Half)命令の実行
は性能を一層の向上を生ずるように他の命令と重複され
る。もし、割込みがサービスされることがなければ(こ
れがもつとも−船釣な状態である)、割込みへのポーリ
ングは約4マシン・サイクル、約手マイクロ秒を消費す
る。
第6図を参照すると、CPUシミュレータ/Oはステッ
プ348で2バイト330をこの2バイト330がステ
ップ349で零になるまで規則的に読む。2バイトが零
になるとき、ステップ350でCPUシミュレータ/O
がシミュレータ・コントローラ・ルーチン300へ割込
肯定応答を送る。これはプロセッサが割込コントローラ
へハードウェアが割込要求した事実を肯定応答したこと
をハードウェア中の機構でシミュレートする。
プ348で2バイト330をこの2バイト330がステ
ップ349で零になるまで規則的に読む。2バイトが零
になるとき、ステップ350でCPUシミュレータ/O
がシミュレータ・コントローラ・ルーチン300へ割込
肯定応答を送る。これはプロセッサが割込コントローラ
へハードウェアが割込要求した事実を肯定応答したこと
をハードウェア中の機構でシミュレートする。
ステップ353で、シミュレートされた割込コントロー
ラ・ルーチン300はCPUシミュレータ/Oへ割込レ
ベルのタイプを戻す。割込レベル情報はシミュレートさ
れた割込コントローラ・ルーチン300により、メモリ
中のアドレス位置を示す割込ベクトルの形で渡される。
ラ・ルーチン300はCPUシミュレータ/Oへ割込レ
ベルのタイプを戻す。割込レベル情報はシミュレートさ
れた割込コントローラ・ルーチン300により、メモリ
中のアドレス位置を示す割込ベクトルの形で渡される。
CPUシミュレータ/Oはこの情報を受取り、メモリ1
6へ行き、そして割込を処理する割込処理器を呼び出す
ためにその特定メモリ位置からアドレスを受は取る。割
込処理器は、割込要求をサービスするために物理的装置
11への入力及び出力命令を処理する。割込処理器が完
了すると、シミュレートされた割込コントローラ300
へ通知する。そして、第6図のステップ354.355
でシミュレートされた割込コントローラはその内部状況
を更新し、割込の終りのための割込コントローラの機能
を実行する。
6へ行き、そして割込を処理する割込処理器を呼び出す
ためにその特定メモリ位置からアドレスを受は取る。割
込処理器は、割込要求をサービスするために物理的装置
11への入力及び出力命令を処理する。割込処理器が完
了すると、シミュレートされた割込コントローラ300
へ通知する。そして、第6図のステップ354.355
でシミュレートされた割込コントローラはその内部状況
を更新し、割込の終りのための割込コントローラの機能
を実行する。
割込処理器は、シミュレートされたプロセッサにより使
用されるBIO313のコードまたはDO318の一部
である。このようにして、CPUシミュレータ/Oは各
タイプの割込みに対して何がなされなければならないが
を決定する。
用されるBIO313のコードまたはDO318の一部
である。このようにして、CPUシミュレータ/Oは各
タイプの割込みに対して何がなされなければならないが
を決定する。
第1図はこの発明の好実施例の処理システム環境を示す
ブロック図、第2図はこの発明のシミュレータを開始す
る最初のステップを示すフロー・チャート、第3図は翻
訳される第1プロセツサの命令の制御の見本の流れの図
形解析を示す図、第4図はCPUシミュレータによる翻
訳による流れ図、第5図はI/O装置から割込みを受は
取るシミュレートされたプロセッサを示すこの発明のシ
ステムのブロック図、第6図はI/O装置から割込みを
受は取るためのシミュレートされたプロセッサの方法を
示す流れ図、第7図は割込みをポーリングするオーバヘ
ッドを最小にするために第1プロセツサ命令の制御流れ
中の割込みをポーリングする位置を示す図、第8図はシ
ミュレートされたプロセッサ中で割込みを可能にするた
めに用いられる翻訳された命令を示す図、第9A及び第
9B図は第3図の図形解析から翻訳された第2プロセツ
サの制御流れを示す図である。 割LL−’rtF−’I>77’cJuhl二l& I
APX 2B6に冷)ヤフ+IL−チレ ゛ 0500、(00Pu!J AX 050Ql(HPIISH5I 0500: 142 POP AX05
00:443 CLC 0500:175 POP 5r050
0: 4(6POP AX0500: 447
5TC Q500:号18 RET
Ill□1しJ:ilみ−b\”ニニ7
”ヤーりングさ九るFIG、 7 iAPX 2$6劃込り(翻訳jhf:hkJ4活tf
fWfi+4るFIG、8
ブロック図、第2図はこの発明のシミュレータを開始す
る最初のステップを示すフロー・チャート、第3図は翻
訳される第1プロセツサの命令の制御の見本の流れの図
形解析を示す図、第4図はCPUシミュレータによる翻
訳による流れ図、第5図はI/O装置から割込みを受は
取るシミュレートされたプロセッサを示すこの発明のシ
ステムのブロック図、第6図はI/O装置から割込みを
受は取るためのシミュレートされたプロセッサの方法を
示す流れ図、第7図は割込みをポーリングするオーバヘ
ッドを最小にするために第1プロセツサ命令の制御流れ
中の割込みをポーリングする位置を示す図、第8図はシ
ミュレートされたプロセッサ中で割込みを可能にするた
めに用いられる翻訳された命令を示す図、第9A及び第
9B図は第3図の図形解析から翻訳された第2プロセツ
サの制御流れを示す図である。 割LL−’rtF−’I>77’cJuhl二l& I
APX 2B6に冷)ヤフ+IL−チレ ゛ 0500、(00Pu!J AX 050Ql(HPIISH5I 0500: 142 POP AX05
00:443 CLC 0500:175 POP 5r050
0: 4(6POP AX0500: 447
5TC Q500:号18 RET
Ill□1しJ:ilみ−b\”ニニ7
”ヤーりングさ九るFIG、 7 iAPX 2$6劃込り(翻訳jhf:hkJ4活tf
fWfi+4るFIG、8
Claims (1)
- 【特許請求の範囲】 1、I/O装置からシミユレートされたプロセッサへの
割込要求をシミユレートする方法において、割込をポー
リングすべき時を決定するために、制御1の命令の流れ
の図形解析を利用すること、を特徴とする前記方法。 2、I/O装置からシミユレートされたプロセツサへの
割込要求をシミユレートする方法において、シミユレー
トされたプロセッサ上で実行されるアプリケーション中
で命令が制御を動的に転送する時に、割込みをポーリン
グし、 前記アプリケーション中のループの付近で各回に一度、
割込みをポーリングし、 前記アプリケーションの命令がシミユレートされたプロ
セッサの割込可能状態を変化させる時に、割込みをポー
リングすること、 を含む前記方法。 3、I/O装置からシミユレートされたプロセッサへの
割込要求をシミユレートする装置において、シミユレー
トされたプロセッサ上を走るアプリケーション中で命令
が制御を動的に転送する時に、割込みをポーリングする
手段と、 前記アプリケーション中のループの付近で各回に一度、
割込みをポーリングする手段と、 シミユレートされたプロセッサの割込可能状態を前記ア
プリケーションの命令が変化させる時に、割込みをポー
リングする手段と、 を備えることを特徴とする前記システム。 4、I/O装置からシミユレートされたプロセツサへの
割込要求をシミユレートするシステムにおいて、 割込コントローラをシミユレートする手段と、前記シミ
ユレートされたプロセッサへの割込要求を示すために前
記割込コントローラにより独立に更新可能な第1指示手
段と、 前記シミユレートされたプロセッサの割込可能状態を示
すために前記シミユレートされたプロセッサにより独立
に更新可能な第2指示手段と、を有し、前記第1及び第
2指示手段が1つの命令により同時に更新されることを
特徴とする前記システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15112388A | 1988-02-01 | 1988-02-01 | |
| US151123 | 1988-02-01 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01205347A true JPH01205347A (ja) | 1989-08-17 |
| JPH0677236B2 JPH0677236B2 (ja) | 1994-09-28 |
Family
ID=22537413
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63318669A Expired - Lifetime JPH0677236B2 (ja) | 1988-02-01 | 1988-12-19 | I/o割込みをシミュレートする装置及び方法 |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0327197B1 (ja) |
| JP (1) | JPH0677236B2 (ja) |
| DE (1) | DE68922321T2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008204006A (ja) * | 2007-02-16 | 2008-09-04 | Fujitsu Ltd | ソフトウェア生成装置及びシミュレーションシステム |
| JPWO2024195044A1 (ja) * | 2023-03-22 | 2024-09-26 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6564241B1 (en) * | 1996-05-14 | 2003-05-13 | L-3 Communications Corporation | Avionic computer software interpreter |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6446845A (en) * | 1987-08-18 | 1989-02-21 | Hitachi Ltd | Simulation system for microcomputer |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4727480A (en) * | 1984-07-09 | 1988-02-23 | Wang Laboratories, Inc. | Emulation of a data processing system |
-
1988
- 1988-12-19 JP JP63318669A patent/JPH0677236B2/ja not_active Expired - Lifetime
-
1989
- 1989-01-05 DE DE1989622321 patent/DE68922321T2/de not_active Expired - Fee Related
- 1989-01-05 EP EP19890300079 patent/EP0327197B1/en not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6446845A (en) * | 1987-08-18 | 1989-02-21 | Hitachi Ltd | Simulation system for microcomputer |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008204006A (ja) * | 2007-02-16 | 2008-09-04 | Fujitsu Ltd | ソフトウェア生成装置及びシミュレーションシステム |
| JPWO2024195044A1 (ja) * | 2023-03-22 | 2024-09-26 | ||
| WO2024195044A1 (ja) * | 2023-03-22 | 2024-09-26 | 三菱電機株式会社 | 割込み模擬装置、割込み模擬方法、及び割込み模擬プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0327197A3 (en) | 1991-07-03 |
| DE68922321D1 (de) | 1995-06-01 |
| EP0327197B1 (en) | 1995-04-26 |
| JPH0677236B2 (ja) | 1994-09-28 |
| DE68922321T2 (de) | 1995-11-02 |
| EP0327197A2 (en) | 1989-08-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5129064A (en) | System and method for simulating the I/O of a processing system | |
| US6895460B2 (en) | Synchronization of asynchronous emulated interrupts | |
| US4729094A (en) | Method and apparatus for coordinating execution of an instruction by a coprocessor | |
| JPS6258341A (ja) | 入出力割込処理方式 | |
| JP5270330B2 (ja) | マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置 | |
| US4731736A (en) | Method and apparatus for coordinating execution of an instruction by a selected coprocessor | |
| US4750110A (en) | Method and apparatus for executing an instruction contingent upon a condition present in another data processor | |
| US5021991A (en) | Coprocessor instruction format | |
| EP0523758B1 (en) | A method and apparatus for coordinating execution of an instruction by a coprocessor | |
| US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
| US4758950A (en) | Method and apparatus for selectively delaying an interrupt of a coprocessor | |
| US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
| US7016826B2 (en) | Apparatus and method of developing software for a multi-processor chip | |
| JP2991242B2 (ja) | マルチプロセッサコンピュータシステム使用方法 | |
| US20030093258A1 (en) | Method and apparatus for efficient simulation of memory mapped device access | |
| JPH01205347A (ja) | I/o割込みをシミュレートする装置及び方法 | |
| JPH0668724B2 (ja) | シミユレーシヨン方法 | |
| US4994961A (en) | Coprocessor instruction format | |
| US4758978A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
| JPS6049352B2 (ja) | デ−タ処理装置 | |
| JPH0883198A (ja) | プログラムシミュレーション装置 | |
| JP3270729B2 (ja) | 拡張命令セット・シミュレータ | |
| US4811274A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
| CA1273114A (en) | Multiprocess computer and method for operating same | |
| Ball | Microprocessor Communications |