JP2610812B2 - データ処理システムのエミユレーシヨン - Google Patents

データ処理システムのエミユレーシヨン

Info

Publication number
JP2610812B2
JP2610812B2 JP60151179A JP15117985A JP2610812B2 JP 2610812 B2 JP2610812 B2 JP 2610812B2 JP 60151179 A JP60151179 A JP 60151179A JP 15117985 A JP15117985 A JP 15117985A JP 2610812 B2 JP2610812 B2 JP 2610812B2
Authority
JP
Japan
Prior art keywords
input
output
request
emulation
routine
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.)
Expired - Lifetime
Application number
JP60151179A
Other languages
English (en)
Other versions
JPS6136848A (ja
Inventor
ローレン・オー・アルブライト
デービツド・ジエイ・アングル
パトリツク・クロス
ジエームズ・ピー・モスクン
キヤロル・ダブリユー・テイラー
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.)
Wang Laboratories Inc
Original Assignee
Wang Laboratories Inc
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 Wang Laboratories Inc filed Critical Wang Laboratories Inc
Publication of JPS6136848A publication Critical patent/JPS6136848A/ja
Application granted granted Critical
Publication of JP2610812B2 publication Critical patent/JP2610812B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme 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)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 発明の技術的背景 1. 産業上の利用分野 本発明は、第1のコンピユータシステムとは実質的に
異なるような第2のシステムによるエミユレーシヨンに
関する。より詳細には、上記第1のシステムのために開
発されたソフトウエアプログラムを、修正なしに、上記
第2のシステムにおいて実行可能にするように行うエミ
ユレーシヨンに関する。
2. 従来の技術 コンピユータシステムにおいて繰返して問題とされる
のは、ソフトウエアの可用性の問題であり、特に、応用
ソフトウエア、即ち、ユーザに特定のタスクを実行する
ためにシステムによつて実行されるプログラムの可用性
の問題である。斯かる応用プログラムの例としては、ワ
ードプロセシング及びデータ処理、データベース、グラ
フイツク及び簡易言語が挙げられ、ユーザが斯かるシス
テムで達成したいと望むタスク及び機能の全範囲を包含
している。
特定のシステムに対する応用の潜在的な範囲は、1つ
のシステム製作業者では、そのシステムに対する応用プ
ログラムの基本的範囲よりも、開発するのが非常に困難
である。その残りの応用プログラムは、これらはしばし
ば、応用プログラムの大部分であるが、応用プログラム
開発専問の諸会社によつて共通に開発され供給される。
経済的な理由により、斯かる応用プログラムの開発者
は、彼らの使用可能なリソースを、より共通のコンピユ
ータシステムに集中するのが普通である。応用プログラ
ムの開発者はより共通的でなく、経済的に有意なシステ
ムに対するプログラムを供給したいと望むが、彼らの使
用可能なリソースでは、異なるシステムの全範囲に対し
てプログラムを開発することができない。従つて、この
非常に少ない最も共通なシステム以外のシステムに対す
る応用プログラムの範囲は限られてくる。
斯かる問題はしばしば、プログラムの「トランスポー
ト(輸送)可能性」、即ち、あるプログラムをあるシス
テムから第2の異なるシステムに、そのプログラムの書
き直しや、大幅な修正無しに、「トランスポート」でき
る機能の1つとして述べられてきている。コンピユータ
業界、特に小型の「パーソナル」即ち「プロフエツシヨ
ナル」コンピユータに採用されてきている斯かる問題に
対する部分的な解決方法としては、内部的に異なる広い
範囲のコンピユータに用いられる標準化されたオペレー
テイングシステムの開発が挙げられる。この場合、銘記
すべきことは、オペレーテイングシステムは基本的に
は、このオペレーテイングシステムが実行されているコ
ンピユータシステムの全体的なオペレーシヨンを監視
し、指示し且つ制御するということである。更に、オペ
レーテイングシステムは、あるシステムにおいて実行さ
れている応用プログラムとこのシステム自体の実際の内
部構造との間にインターフエースを与える。基本的に
は、応用プログラムはオペレーテイングシステム上で
「実行」し且つ、オペレーテイングシステムを「見て
い」るが、実際の基本的なコンピユータシステム構造に
ついてはそのようにはしていない。幾つかの内部的に異
なるシステムで実行される、斯かる共通的で標準的なオ
ペレーテイングシステム、例えばCP/M及びMS−DOSを採
用すると、これらのシステムで修正なしに実行できるプ
ログラムの開発も理論的には可能である。例として示す
と、ワングラボラトリ社のプロフエツシヨナルコンピユ
ータ及びIBM PCは、両方共、MS−DOSと呼ばれる基本的
には同一のオペレーテイングシステムを用いている。従
つて、IBM PCに対して開発された応用プログラムは理論
的には、修正なしにワングプロフエツシヨナルコンピユ
ータでも実行でき、且つその逆も可能なはずである。
実際には、斯かるオペレーテイングシステムは、応用
プログラム開発者が所望する全範囲の特徴及び機能を供
給しなかつたり、あるいはこのオペレーテイングシステ
ムを介してのみあるシステムとインターフエースするプ
ログラムに対して十分な性能を供給しないことが多い。
この故に、殆どの応用プログラムということではないに
しても多くの応用プログラムは実際には、それらが実行
されているシステムの内部構造に少なくとも一部分、直
接的にインターフエースするように書かれる。異なる製
作業者によつて与えられるコンピユータシステムの内部
構造がしばしば大きく異なるため、標準的なオペレーテ
イングシステムの1つに対して主に実行するように書か
れた応用プログラムでさえも実際はあるシステムから別
のシステムに「トランスポート可能」でないことがしば
しばある。
更に、製作業者の多くは、それらの特定のシステムに
対する性能を向上するために「標準」オペレーテイング
システムを修正してきている。例えば、上記のように、
ワングラボラトリ社とIBMの両社は、それらのパーソナ
ルコンピユータ及びプロフエツシヨナルコンピユータに
おいて同一の基本的な標準MS−DOSオペレーテイングシ
ステムを用いている。しかしながら、それぞれの場合、
MS−DOSはワング社及びIBM社によつて設計された特定の
システムに対する性能を向上するために修正されてお
り、もはや完全には「標準」ではない。斯かる修正は、
特定のシステムの特定の内部構造特徴に依存するのが普
通であり、従つて、これらの特定のシステムに対してか
かれた応用プログラムに反映される。その結果、ある特
定のシステムに対して実行している「標準」オペレーテ
イングシステムにのみインターフエースする応用プログ
ラムでさえもこの「標準」オペレーテイングシステムの
更に別の修正されたバージヨンを用いている別のシステ
ムにはトランスポート可能でないことがしばしばある。
これらの問題に対する1つの可能な解決方法はある製
作業者の場合、エミユレートされるシステムの内部構造
を、必然的にはコピーすることなく、基本的に複写する
ことである。このためには、エミユレートしているシス
テムのハードウエア構造の開発と、エミユレートされる
システムのオペレーテイングシステムの機能性を基本的
に複写しエミユレートするシステムのオペレーテイング
システムの開発とが必要になる。しかしながら、エミユ
レートされるシステムが旧型であつたり、欠陥があつた
り、あるいは性能が劣つていたりするという点でこの方
法は好ましくない。また、エミユレートするシステム及
びそのオペレーテイングシステムは基本的には、より広
いユテイリテイを有するためではなく、ただ1つの目
的、即ち別のシステムをエミユレートするという目的だ
けに供されている。
上の諸問題に対する更に別の可能な方法には、特定の
システムをエミユレートするシステムで実行するソフト
ウエア、即ち、エミユレーシヨンプログラムによつてそ
の特定のシステムをエミユレートすることが挙げられ
る。しかしながら、この方法は、このエミユレーシヨン
機能に関しては多量の「オーバーヘツド」、即ち、メモ
リスペース及びプロセツサオペレーシヨン時間が必要と
なるため好ましくないことが証明される。
発明の概要 本発明によると、第2のシステムの機能の複写として
は設計されていない第1のシステムが、上記のハードウ
エア、ソフトウエア及びオペレーテイングの不利な点を
有することなくこの第2のシステムをエミユレートする
ことができるようになつている。本発明では、第2のシ
ステムの入力/出力構造は第1のシステムにおいて、そ
こに記憶されたルーチンであつて、第2のシステムの入
力/出力構造と同じように既存の入力/出力構造が動作
するように命令するルーチンによつてエミユレートされ
る。このエミユレーシヨンルーチンは、第1のシステム
のマスク不可能割込み機構を介してこの機構に対する修
正により呼び出される。この機構は、「外部」の入力/
出力要求の発生、即ち、第2のシステムに対してもとも
と書かれたプログラムで発生し、且つ第1のシステムに
よつて通常は認識されない入力/出力要求の発生を検出
する。
本発明に係る好ましい実施例では、第1のシステムの
入力/出力構造は、システムアドレススペースの第1の
範囲を占めるポートを有する入力/出力デバイスを含
み、第2のシステムの入力/出力デバイスは、第2の異
なる範囲のアドレススペース内に配置されたポートを有
する。外部の入力/出力要求を検出するための手段は、
入力/出力要求ポートアドレスをシステム入力/出力デ
バイスによつて占有されたポートアドレスの範囲と比較
し且つポートアドレスがシステム入力/出力デバイスに
よつて占有されたアドレススペースの範囲内にある時指
示をする手段を含む。この外部の要求の検出手段は次
に、第1のシステムによつて支持されている入力/出力
ポートの範囲内に通常は入らない入力/出力要求の発生
の際に入力/出力エミユレーシヨンルーチンを呼出すた
めにマスク不可能割込みを発生する。
本発明に係るエミユレーシヨン手段は更に、斯かる要
求が開始した時点において斯かる外部の入力/出力要求
に関する情報を「トラツプ」、即ち、記憶するための手
段を含む。次に、このトラツプされた情報は、エミユレ
ーシヨン手段によつて用いられ、エミユレートされる特
定の入力/出力オペレーシヨンを決定する。例えば、要
求が書込みオペレーシヨンに対しての場合、この要求に
関連して現われる書込み情報は同様にしてトラツプさ
れ、この要求によつて指示された第2のシステムのポー
トに対応する第1のシステムの入力/出力ポートに書き
込まれる。
本発明に係る更に別の実施例では、第1のシステムは
更に、第2のシステムのハードウエア割込み機構をエミ
ユレートするための手段を含む。本発明に係るシステム
のハードウエア割込みエミユレーシヨン機構において、
第1のシステムのソフトウエア割込みサービスルーチン
には、第2のシステムのハードウエア割込み機構のオペ
レーシヨンをエミユレートする付加的な一群のハードウ
エア割込みエミユレーシヨンルーチンが配設されてい
る。第1のシステムの割込みベクトルテーブルは同様
に、エミユレーシヨンルーチンに対する付加的なベクト
ルを含み、第1のシステムのハードウエア割込みサービ
スルーチンはこれらのベクトルに対する基準を含むよう
に変えられる。
既存の第1のシステムのハードウエア割込みルーチン
に対するエミユレーシヨンルーチン、ベクトル及び修正
は、このシステムが第2のシステムをエミユレートして
いる時にイネーブルされる。これにより、第1のシステ
ムは、ソフトウエア割込みオペレーシヨンと同じ方法で
もつてハードウエア割込みエミユレーシヨンオペレーシ
ヨンを実行することにより第2のシステムのハードウエ
ア割込み機構をエミユレートする。ここで銘記すべきこ
とは、付加された割込み機構エミユレーシヨンルーチン
はエミユレーシヨンルーチンだけに限定されず、このシ
ステムに対する付加的な機能あるいは向上された性能を
与える他のルーチンを含むかあるいはこれら他のルーチ
ンに置き換えられ得る。
好ましい実施例の説明 以下の説明においては、「パーソナル」又は「プロフ
エツシヨナル」コンピユータのクラス、例えば、ワング
ラボラトリ社のプロフエツシヨナルコンピユータの典型
的なコンピユータシステムのハードウエア及びソフトウ
エアの一般的な構造及びオペレーシヨンについて先ず述
べている。これらは、当業者によつてよく理解されよ
う。第1の斯かるシステムと第2のシステム、例えば、
IIBM PCとの相違の基となる構造の特徴及び動作の特
徴、及び前に述べた「標準的」オペレーテイングシステ
ム及び応用プログラムに関する斯かる相違の効果が次に
述べられている。最後に、もともと第2の斯かるシステ
ム用に書かれているプログラムを修正なしに第1の斯か
るシステムで実行できるようにする。本発明に従う方法
及び装置が述べられている。
1. 「パーソナル」又は「プロフエツシヨナル」クラス
のコンピユータの構造及びオペレーシヨン A. 基本ハードウエア構造及びオペレーシヨン(第1図
及び第2図) 第1図について説明する。この図には、「パーソナ
ル」又は「プロフエツシヨナル」クラスのコンピユータ
システムのブロツク図が図示されている。尚、ここに図
示されている例は、ワングラボラトリ社の「プロフエツ
シヨナルコンピユータ」である。このシステムは典型的
なシステムであり且つこのクラスの斯かるシステムを代
表しており、例えば、「ワングプロフエツシヨナルコン
ピユータ技術参照手引書」及びマサチユーセツツ州ロー
ウエルのワングラボラトリ社から入手できる他の関連の
出版物に記載されている。これらは本明細書に参考とし
て引用されている。第1図のシステムの次の記述は、斯
かるシステムの構造及びオペレーシヨンが当業者によつ
てよく理解され且つここに与えられた例示用のシステム
の構造及びオペレーシヨンが上記の参照され引用される
出版物の中で十分に述べられているため簡単に行なわれ
ている。
第1図に示すように、このシステムの主なエレメント
は、中央処理装置(CPU)10及び制御入力/出力ロジツ
ク(CIO)12を含んでいる。これらは、システムアドレ
ス(SA)バス14、システムデータ(SD)バス16及びシス
テム制御(SC)18を含むバス構造を介して相互接続され
ている。それらの呼称によつて示されるように、SAバス
14及びSDバス16はそれぞれ、システムのエレメントの間
にわたつてアドレスとデータをやりとりし、これに対し
てSCバス18は、基本的にシステム制御情報をやりとりす
るのに用いられる。
1. 中央処理装置(第1図) CPU10について説明する。主なシステム制御機能を含
む算術論理オペレーシヨンは主プロセツサ(MP)20によ
つて実行される。この主プロセツサ20は算術演算におい
てコプロセツサ(COP)22に補助されている。MP20及びC
OP22は、例えば、それぞれインテル8086マイクロプロセ
ツサ及びインテル8087であり得る。
MP20及びCOP22は、アドレス及びデータを、それぞれ
アドレスラツチ(AL)24及びデータトランスシーバ(D
T)26を介してそれぞれSAバス14及びSDバス16にやりと
りし且つメモリ及びバス制御情報をバス制御装置(BC)
28を介してSCバス18に伝える。
BC28には、入力/出力復号ロジツク(IODL)29が関連
しており、このロジツク29は、SAバス14に現われるアド
レス及びSCバス18に現われる入力/出力制御情報を監視
する。IODL29は、システム入力/出力要求の発生を検出
し、SCバス18に対応する制御信号出力を与える。IODL29
の制御出力は、以下に更に述べるように、システムI/O
オペレーシヨンの実行においてシステムI/Oデバイスに
よつて用いられる。
MP20及びCOP22にはクロツク発生器(CG)30及びバス
獲得ロジツク(BAL)32が関連しており、クロツク発生
器30は、このシステムに対するクロツク信号のソースで
あり、バス獲得ロジツク32は、直接メモリアクセス(DM
A)オペレーシヨン、即ち、以下に説明するシステム主
メモリへのデータの直接転送及びこのシステム主メモリ
からのデータの直接転送を制御する。MP20及びCOP22に
はまた、持ち状態ロジツク(WSL)34が関連しており、W
SL34は、基本的には、システムオペレーシヨンを監視し
且つCPU10オペレーシヨンにおけるコンフリクトを防ぐ
べく各々に許された時間を調節する。マスク不可能割込
みロジツク(NMIL)36は、このシステムの割込みの機構
のオペレーシヨンの一部分を制御する。この部分につい
ては以下により詳細に述べる。
最後に、上記のCPU10の種々のエレメントは相互接続
されており、CPU局所(CPUL)バス38を介して通信す
る。
2. 制御及び入力/出力ユニツト(第1図) CIO12について説明する。第1図に示すように、CIO12
のエレメントは、主にバツフアアドレス(BA)バス40及
びバツフアデータ(BD)バス42及びSCバス18を介して相
互接続されている。図示のように、BAバス40は、SAバス
14からアドレスバツフア(AB)44を介して接続されてお
り、BDバス42は、データトランスシーバ(DT)46を介し
てSDバス16に相互に接続される。
ICO12は、主メモリ(MM)48を含んでいる。このMM48
は、システム及びこのシステムのオペレーシヨンを制御
するプログラムによつて演算されるデータを記憶し且つ
与える。システムとプログラムには、例えば、オペレー
テイングシステムと応用プログラムがある。MM48には、
主メモリ制御ロジツク(MMCL)50及び主メモリアドレス
マルチプレクサ(MMAM)52が関連しており、MMCL50及び
MMAM52は、それぞれSCバス18及びSAバス14から接続され
ており、それぞれ制御入力及びアドレス入力をMM48に与
える。MM48のデータ入力/出力は、BDバス42に相互接続
されている。
バツフアアドレス(BA)バス40及びバツフアデータ
(BD)バス42からはそれぞれ、DMA低アドレスラツチ(D
LAL)54及びDMA高アドレツラツチ(DHAL)56が接続され
ている。DLAL54及びDHAL56は、このシステムのDMA機構
の一部分であり、DMAオペレーシヨンの期間中に、それ
ぞれSAバス14及びMMAM52を介してDMAアドレスの低次部
分及び高次部分をMM48に与える。DLAL54及びDHAL56に
は、DMAページレジスタ(DPR)58が関連している。DPR5
8は、BAバス40から接続されており、同様にして、DMAオ
ペレーシヨンの期間中に、DMAアドレスの一部分をSAバ
ス14及びMMAM52を介してMM48に与える。この場合、DMA
オペレーシヨンに係るメモリページを識別するアドレス
の部分である。DMAオペレーシヨンの主な制御は、DMA制
御ロジツク(DCL)60及びDMAバス制御ロジツク(DBCL)
62によつて行なわれる。尚、DCL60及びDBCL62は、BAバ
ス40から接続されており、データ出力をBDバス42に与
え、制御出力をこのシステムの他の部分に与える。
CIO12に含まれるシステム制御ロジツクは、カウンタ
及びタイマロジツク(CTL)64及びプログラマブル割込
み制御装置(PIC)66を含んでいる。尚、CTL64及びPIC6
6は、それぞれインテル8253及びインテル8259Aを含み得
る。CTL64は、基本的には、全ての主システムオペレー
シヨンのタイミングを制御し、これに対してPIC66は、N
MIL36と結び付いて、より詳細に後で述べられる。シス
テム割込み制御ロジツクを含む。MM48及びシステム割込
制御ロジツクに関連するのは、パリテイエラー(誤り)
ロジツク(PEL)67である。PEF67は、MM48に書き込まれ
るデータ及びMM48から読み出されるデータを監視し、斯
かる誤りが発生した時に割込み制御ロジツクにパリテイ
誤り信号即ちデータ誤り信号を与える。
このシステムプログラム及び制御ロジツクは更に、消
去可能プログラマブル読出し専用メモリ(EPROM)68を
含んでいる。このEPROM68は、例えば、外部デイスクド
ライブの中に取り付けられているデイスクからシステム
オペレーテイングシステム及び応用プログラムをMM48に
ロードするのに用いられるプログラムを記憶し与える。
EPROM68に記憶されているプログラムは基本的には、こ
のシステムのオペレーシヨンを初期設定するのに用いら
れる常駐プラグラムを含んでいる。このシステムプログ
ラム及び制御ロジツクは更に、メモリ制御記憶復号器
(MCSD)69を含んでいる。MCSD69は、EPROM68と結び付
いて動作し、現在のシステム制御がシステム初期設定時
におけるEPROM68から与えられるのか、あるいは通常の
オペレーシヨンの期間中にMM48に記憶されているプログ
ラムから与えられるのかを選択する。
CIO12は更に、システムと外部デバイス、例えば、キ
ーボード、デイスクドライブ及びプリンタとの間の通信
を行うための幾つかのエレメントを含んでいる。これら
のエレメントの中には、ユニバーサル非同期受信器/送
信器(UART)70が含まれている。UART70は、キーボード
及びフロツピイデイスク制御装置(FDC)72と直列イン
ターフエースを行なつている。FDC72は、デイスク駆動
機構とインターフエースを行なつている。更に、拡張プ
ログラマブル通信インターフエース(EPCI)74が含まれ
ている。例えば、これはインテル2661である。インテル
2661は、プログラマブルRS−232 I/Oポートを与える。
そして更に並列プリンタインターフエース(PPI)76が
含まれている。PPI76は例えば、種々のプリンタに並列
インターフエースを行うインテル8255Aである。他の入
力/出力エレメントは例えば、ウインチエスター(Winc
hester)ハードデイスク駆動機構へのインターフエース
エレメント及び種々の遠隔通信インターフエースを含み
得る。
最後に、CIO12は、I/O制御記憶復号器(IOCSD)75を
含んでいる。このIOCSD75は、基本的には、命令のシー
ケンスを記憶し与える。即ち、このシステムのI/Oオペ
レーシヨン、特に、上記のI/Oデバイスのオペレーシヨ
ンを制御するためのルーチンである。
3. ビデオ制御装置ユニツト(第2図) このシステムは、2つの主なユーザインターフエース
を含んでいる。即ち、第1のインターフエースは上記の
ように、UART70から接続されたキーボードを介して行な
われ、第2は、CRT表示を介して行なわれる。第2図に
ついて説明する。このシステムとCRTの間にインターフ
エースを行うビデオ制御装置(VC)78が図示されてい
る。本明細書に述べられたシステムは種々の表示に対す
る複数の斯かるビデオ制御装置が得られるが、VC78がCR
Tインターフエースエレメントのこのクラスの典型であ
り、文字組図形表示及びビツトマツプ表示の両方を行
う。
先ず、VC78の文字組部について説明する。VC78は、CR
Tスクリーン上に表示される英数字文字及び図形シンボ
ル及び関連のテキストシンボルを識別するASC II型コー
ドを記憶し供給するための文字メモリ(CM)80を含んで
いる。これらのコードは、デイスプレイ上に現われる位
置に対応するCM80の記憶位置に記憶される。CM80に関連
するのは、属性メモリ(AM)82である。AM82は、CM80に
記憶されている各文字コードに対して、対応する文字又
はシンボルが、例えば、ハイライトされるか、アンダー
ラインを引かれるか、その他の処理をされるかを識別す
る対応属性コードを記憶し与える。
CM80及びAM82にはSDバス16から情報が、SCバス18から
与えられた制御入力の制御の下で、SAバス14から与えら
れたアドレスに書き込まれる。これらの目的のために、
VC78は、SAバス14から接続され且つC/Aメモリ入力アド
レスマルチプレクサ(CMIAM)86に対応するアドレス入
力を与えるVCアドレスバツフア(VCAB)84を含んでい
る。CMIAM86は、アドレス入力をCM80及びAM82に与え
る。第2図に示されるように、VCAB84はまた、アドレス
入力をC/Aメモリ出力マルチプレクサ(CMOM)88に与え
る。CMOM88は、以下において更に詳細に述べるように、
CRTデイスプレイを駆動するロジツクへの文字及び属性
コードのCM80及びAM82からの読出しを制御する。
VC78は更に、VCデータトランスシーバ(VCDT)90を含
んでいる。VCDT90は、SDバス16と相互接続されており、
一部分、文字及び属性コードをCM80及びAM82に書き込む
のに用いられる。第2図に示されるように、VCDT90には
また、CRT制御装置(CRTC)92への出力が配設されてい
る。CRTC92は、CRT駆動回路に制御信号を与える。またC
RTC92は以下に詳細に述べられる字体メモリ(FM)94か
らの入力が設けられる。FM94は、FM94の内容をSDバス16
に読み出させる。
FM94は、CRTデイスプレイ上に表わされ得る種々の文
字及びシンボルコードに対応するビツトパターンを記憶
するのに用いられる。CM80に記憶され且つCRT上に表示
される文字及びシンボルを表わすコードは、CRTC92から
CMIAM86を介して与えられるアドレスの制御の下にCM80
から読み出され、FM94にアドレス入力として与えられ
る。FM94は、対応するビツトパターンを出力としてビツ
トパターンシフトレジスタ(BPSR)96に与えることによ
りこれらの入力に応答する。BPSR96は、並列直列変換を
行い、その結果得られる直列ビツトパターンを属性ロジ
ツク(AL)98に与える。
第2図に示すように、AL98は、AM82の出力からの別の
入力を含む。CM80に記憶されている文字/シンボルコー
ドに対応する属性コードは、CM80から読み出された対応
するコードと並列にAM82から読み出され、AL98によつて
用いられることにより、この対応する文字/シンボルが
それらの対応する属性を有するように、BPSR96から与え
られたビツトパターンを適当に修正する。AL98の出力は
テキストビデオ出力としてCRTドライバ回路に与えら
れ、この結果、CRTスクリーン上に対応する表示を行
う。
最後に、VC78は、タイミング発生器ロジツク(TGL)1
00を含む。TGL100は、SCバス18から接続されており、タ
イミング及び制御信号をVC78のロジツク及び回路に与え
る。
ここで、VC78のビツトマツプ部について説明する。ビ
ツトマツプメモリ(BM)102は、ビツトマツプの形でも
つてCRTスクリーン上に表示されるべきイメージを記憶
し与える。表示される情報はビツトマツプメモリアドレ
スマルチプレクサ(BMAM)104の出力から接続されたア
ドレスバスを介して与えられたアドレスの制御の下で、
VCDT90の出力から接続されたデータバスを介してビツト
マツプの形でBM102に書き込まれる。BMAM104は、VCAB84
の出力から接続されたアドレスバスから書込みアドレス
入力を受ける。
BMAM104はまた、X軸アドレス発生器(XAAG)106及び
Y軸アドレス発生器(YAAG)108の出力から読出しアド
レス入力を受ける。BM102に記憶されたビツトマツプイ
メージ情報は、ビツトマツプシフトレジスタ(BMSR)11
0を介してXAAG106及びYAAG108から与えられた読出しア
ドレスの制御の下でBM102から読み出される。BMSR110は
並列直列変換を実行し、上記ビツトマツプイメージ情報
はAL98からのあり得るイメージ情報出力とビデオORゲー
ト(VORG)において結合される。VORG112の出力は次
に、ビデオ出力としてCRTドライバ回路に与えられ、こ
の結果、CRTスクリーン上に対応する表示が行なわれ
る。
BM102の詳細な制御は、BM制御ロジツク(BMCL)114に
よつて行なわれる。BMCL114には、TGL100からの制御信
号が配設されている。
B. 基本ソフトウエア及び制御構造及びオペレーシヨン
(第3図) 第3図について説明する。上記の型式のコンピユータ
システムの例示のソフトウエア及び制御構造の線図が図
示されている。
1. 応用プログラム及びオペレーテイングシステム及び
基本入力/出力システム(第3図) 第3図に示すように、典型的なシステムのソフトウエ
ア/制御構造は多くのレベルに分かれている。現在の応
用プログラム(AP)116は最も高く最も見え得るレベル
にある。CPU10及びCIO12及び関連の外部装置(ED)12
0、例えば、CRT、キーボード、デイスク駆動機構、プリ
ンタ及び通信装置を含むシステムハードウエア構造(H
S)118は、最も低いレベルにある。
AP116及びHS118の間には、オペレーテイングシステム
(OS)120及び基本入力/出力システム(BIOS)122が介
在している。前に述べたように、OS120は基本的に、コ
ンピユータシステムの全体のオペレーシヨンを監視し、
命令し、制御する。更に、OS120は、システムで実行さ
れているAP116と、HS118を含むシステム自体の実際の内
部構造との間のインターフエースを行う。基本的には、
AP116は、実際の基本的なシステム構造ではなくOS120の
もとで「実行」され且つOS120を「見る」ものである。
多くのシステムにおいて、OS120はしばしば、デイスク
オペレーテイングシステム(DOS)と呼ばれるが、MM48
の中に置かれ且つ、例えば、デイスクからその中にロー
ドされる。
これも前に述べたように、コンピユータシステムの基
本的な構造は、設計者の設計上の選択、意図された特徴
及び機能及び利用可能な装置の技術によつて、しばしば
大きく異なる。標準化されるためには、オペレーテイン
グシステムはシステムハードウエアと直接には交信でき
ないが、各ハードウエア製造業者によつて与えられるル
ーチンを制御するハードウエアへのインターフエースを
規定しなければならない。その結果、OS120等の「標
準」オペレーテイングシステムは一般的にシステム構造
において直接実行されることができない。
この理由により、このシステム制御構造は更に、この
システムの内部構造の一部分として、基本入力/出力シ
ステム、即ち、(BIOS)122と呼ばれる別のレベルを含
む。BIOS122は基本的には、ルーチンのシーケンス、即
ち、システム構造の機能及びオペレーシヨンを最も低く
且つ最も詳細なレベルでもつて命令し且つ制御するプロ
グラムからなり、このBIOS122は、OS120とシステムの内
部構造との間にインターフエースを形成する。BIOS122
はまた、システムエレメント、例えば、HS118を含むエ
レメントが、それら自身の間や、制御のより高いレベル
と交信する時に用いられる。以下に更に詳細に述べられ
る主な手段を与えている。更に、多くのBIOSが、標準オ
ペレーテイングシステムの一部分ではなく付加的な機能
性をシステムに与える、あるいはシステムの性能を向上
する、付加的なサービスルーチン即ち特徴を与える。
BIOS122は、EPROM68の中に存在するシステム初期設定
ルーチンと同じ方法でもつて、例えば、デイスクからそ
の中にロードされているMM48の中かあるいは読出し専用
メモリ(ROM)の中に置かれ得る。多くのシステムで
は、BIOS122は、部分的にROMの中に、そして部分的にロ
ード可能ルーチンとしてMM48の中に置かれる。
2. 割込み機構(第3図) このシステム構造は、割込み機構(IM)124と呼ばれ
る別の制御及び通信エレメントを含んでいる。IM124
は、プログラムの実行中に発生する事象であつてこのプ
ログラムの実行中は直接のステツプとして通常は実行さ
れない事象を取り扱うための機構である。斯かる事象が
発生した場合、プログラムの実行は「割り込まれ」、プ
ログラムの実行状態は退避され、この事象は処理され、
プログラムの実行はそれが割り込まれた時点から再開さ
れる。
割込みの2つの主なクラスはAP116又はOS120ルーチン
によつて開始されるソフトウエア割込み及びHS118を含
むエレメントのオペレーシヨンによつて開始されるハー
ドウエア割込みである。即ち、ソフトウエア割込みは、
あるプログラムがオペレーテイングシステムあるいはシ
ステムハードウエアによつて実行されるオペレーシヨン
を有することを希望した時にこのプログラムによつて呼
び出されるのに対し、ハードウエア割込みは、システム
ハードウエアのあるエレメントがサービスを要求する時
に発生する。
この割込みルーチンは、BIOS122ルーチンと同一レベ
ルのデイテールに対して基本的に機能し、通常は、第1
図及び第2図の例示システムにおいては、BIOS122に存
在するルーチンの一部分として見なされる。しかしなが
ら、BIOS122及びIM124内の機能の特定の割当てに応じ
て、この割込みルーチンは、別々の組のルーチンを含む
と見なされ得る。また、この割込みルーチンは、ロード
可能ルーチンとしてMM48の中に存在するか、ROMの中に
存在し、あるいはそれらの結合の中に置かれる。
ソフトウエア割込みの処理、即ち、適当なソフトウエ
ア割込み処理ルーチンの呼出し即ち開始は、BIOS122ル
ーチンの呼出し即ち開始と同じ方法でもつて実行され
る。即ち、AP116又はOS120ルーチンは、MM48あるいはRO
Mの中に記憶された適当な割込み処理ルーチンをアドレ
スする要求即ち命令を発する。
HS118によつて発生されるハードウエア割込みは、こ
の目的のために与えられた特定のロジツクを介して開始
され、HS118エレメントのオペレーシヨンの結果から生
じる。第1図及び第2図の例示システムの場合、この機
構は、PIC66及びNMIL36によつて与えられる。基本的に
は、PIC66及びNMIL36には、HS118の種々のエレメントか
らのこの目的のための特定の制御信号入力が設けられ
る。HS118エレメントの中における割込み状態の発生が
斯かる割込み入力を介してPIC66又はNMIL36に指示され
ると、PIC66又はNMIL36は、メモリ中に存在する割込み
ベクトルテーブル中の対応する位置をアドレスする対応
した要求即ち命令を与える。この割込みベクトルテーブ
ルは、メモリ中の対応する割込み処理ルーチンの位置を
識別するベクトル、あるいはアドレスを含んでいる。こ
のテーブルから読み出されたベクトルは次に、対応する
割込み処理ルーチンを選択し開始するのに用いられる。
PIC66及びNMIL36は、2つの型の割込み状態に対して
割込みオペレーシヨンを開始する。これらは、それぞ
れ、マスク可能割込み及びマスク不可能割込みである。
この場合、マスク不可能割込みは、基本的に、即座に処
理されなければならない状態であり、これに対し、マス
ク可能割込みは、必要ならば、その処理を遅延させても
よい割込み状態である。例えば、マスク不可能割込み
は、MM48読み取りにおいて発生するパリテイエラー又は
データ誤りを含み、以下に説明するように、このシステ
ムが別のシステムのエミユレータとして動作している時
のI/Oオペレーシヨンの処理を含む。割込み状態の大き
な群であるマスク可能割込みは、マスク不可能割込みに
対して二次的に処理され、そのクラスの中では、優先付
けされる。尚、マスク可能割込みの相対的優先度は、以
下において詳細に述べるようにPIC66のプログラミング
によつて決定される。マスク可能割込みは、例えば、キ
ーストローク入力、デイスクI/O完了、プリンタI/O、及
び直列I/Oオペレーシヨンを含んでいる。
C. システムアドレス構造(第4図) 第1図乃至第3図に示す例示システムのアドレススペ
ースは、基本的には、2つのアドレスで構成される。即
ち、第1のアドレススペースは、一般的なプログラム、
ルーチン及びデータスペース(プログラム/データ)で
あり、第2のアドレス空間は、入力/出力及びシステム
制御(I/O−制御)スペースである。両方のアドレスス
ペースは、BAバス40及びBDバス42を介してアクセスさ
れ、アドレスされるスペースは実行されているオペレー
シヨンによつて決定される。
プログラム/データスペースは、一般的に、MM48及び
プログラムROM、例えば、EPROM68からなる。このアドレ
ススペースは一般的に、プログラム及びルーチン、例え
ば、AP116、OS120、及びBIOS122(割込みルーチンを含
む)及び斯かるプログラム及びルーチンのオペレーシヨ
ンに実行されるあるいはこのオペレーシヨンから生ずる
データを記憶するのに用いられる。以下に示すように、
このスペースに含まれるのは、ビデオ表示I/O機能のた
めのVC78の中に存在するメモリスペースである。
I/O−制御アドレススペースは、システム制御及び入
力/出力エレメントの中のレジスタ及びメモリからな
る。このアドレススペースは、例えば特定のシステム制
御機能をプログラムするためのシステム制御に用いられ
る情報を記憶し与えるために且つこのシステムと外部エ
レメント、例えば、デイスクドライブあるいはキーボー
ドとの間に情報を転送するために用いられる。しかしな
がら、直ぐ前に述べたように、特定のI/O機能は、プロ
グラム/データスペースに存在し得る。
システム制御について述べると、多くのシステムエレ
メント、例えば、PIC66あるいはEPCI74は、システムオ
ペレーシヨン指示機能を実行するために個別的にプログ
ラム可能であることが銘記されるべきである。斯かるエ
レメントのオペレーシヨンは、それらの内部メモリスペ
ースに適当な命令及び/又はデータをアドレスし且つ書
き込むことによつてプログラムされる。これらのエレメ
ントは、その中のメモリスペースが適当にアクセスされ
た時にシステムオペレーシヨンの制御に用いられる情報
を記憶し与える。例えば、PIC66は、システム割込み状
態の相対的優先順位を決定し且つ各斯かる状態を呼び出
すべく適当な割込みルーチンを示すようにプログラムさ
れ得る。そして、発生した割込み状態に関する情報がそ
の中のレジスタに記憶され且つ割込み処理ルーチンによ
つてアクセスされて取られるべき適当な処置を決定す
る。他のシステム制御エレメントは、プログラム可能で
はないが、この目的のためにアクセスされ用いられ得る
システムオペレーシヨンに関する情報を記憶し与える。
このシステム入力/出力機能の場合、FDC72EPCI74及
びPPI76等の多くのエレメントは同様にしてプログラム
可能であり、更に、情報がこのシステムと外部エレメン
トとの間にわたつて転送される時に用いられる径路を含
むレジスタ及びメモリスペースを含む。例えば、FDC72
は、このシステムとデイスクとの間を転送されている情
報を記憶しバツフアするのに用いられるレジスタを含ん
でいる。これらのレジスタは、BAバス40を介してアドレ
スされ、デイスクにあるいはデイスクから転送される情
報がBDバス42を介してこれらのレジスタにあるいはこれ
らのレジスタから書き込まれ読み出される。別の例で
は、UART70は、このシステムによつて読み出される迄キ
ーストローク情報をバツフアし記憶するのに用いられる
同様のレジスタを含んでいる。
第4図について説明する。このシステムのアドレスス
ペースの線図が図示されている。ここに書かれたアドレ
ススペース内の種々の範囲は図面の左に示された16進表
記法でもつてアドレスによつて描写されている。アドレ
ススペースの各セグメントの機能は、図面の右の方に示
されている。
先ず最初にプログラム/データスペースにおいて、例
えば、アドレススペースOOOOOHから9FFFFH(H=16進)
はCPU10にアクセス可能であり且つ通常はMM48の中に存
在している一般的なアドレススペースである。このスペ
ース内では、アドレスOOOOOHから003FFHが予約され且
つ、例えば、IM124によつて用いられる前に説明された
テーブルに対して割り当てられている。アドレススペー
スE0000HからF3FFFHは、ビデオ表示メモリ、例えば、VC
78内に存在する表示メモリに割り当てられている。この
場合、アドレススペースF0000HからF0FFFHは、CM80及び
AM82に対応し、F2000HからF3FFFHはFM94に対応し、E000
0HからE7FFFHはBM102に対応する。最後に、アドレスス
ペースFC000HからFFFFFHは例えば、そこに記憶されてい
るEPROM68及びルーチンに対して予約されて割り当てら
れる。
第2に、入力/出力−制御スペースにおいて、アドレ
ス1000Hから1FFFHは、入力/出力及び制御機能に用いら
れる。このアドレス範囲の内、第1図に示されるエレメ
ントはアドレス1000Hから10FFHを占有し、これに対し
て、アドレス1X00Hから1XFFH(Xは1に等しいか1より
も大きい)は付加的且つ選択的なエレメント、例えば、
ウインチエスタ(Winchester)駆動機構に対して予約さ
れる。
「パーソナル」又は「プロフエツシヨナル」コンピユ
ータのクラスの典型的なシステムの構造及びオペレーシ
ヨンについて述べてきたので、別のシステムによる1つ
の斯かるシステムのエミユレーシヨンに対する影響の要
因を次に述べることにする。
2. システムエミユレーシヨンに影響するシステムの相
違 前に述べたように、「ソフトウエアポータビリテイ」
における主な問題、即ち、第1のシステムのために書か
れたプログラムを修正すること無しに第2の異なるシス
テムで実行する能力における主な問題は、応用プログラ
ム開発者がオペレーテイングシステムをバイパスすると
いう実務的慣行から生じた。即ち、オペレーテイングシ
ステムへのみ或いはオペレーテイングシステムを介して
のみ進むのではなく、あるシステムのBIOS、割込み機構
あるいはハードウエア構造に直接進む命令やコマンドを
応用プログラムに含ませるという実務的慣行からこの問
題が生ずる。その結果、2つの斯かるシステムの間の内
部構造の相違のために、第1のシステムのために書かれ
た応用プログラムであつてこの第1システムの内部構造
に直接命令及びコマンドを与える応用プログラムは、第
2のシステムで実行される時に期待された結果を与える
ことができないことがある。
第2のシステムは、例えば、そのBIOSの構造及びオペ
レーシヨンにおいて、そのプログラム/データアドレス
スペースにおけるプログラム及びルーチンのマツピング
即ち位置決めにおいて、その割込み機構において、その
I/O−制御アドレススペースにおいて、あるいはそのハ
ードウエアデバイスにおいて異なる。この2つのシステ
ムは、同一の目的に対して異なるデバイスを使用しある
いは異なる目的に対して同一のデバイスを用いることが
ある。例えば、PPI76は、ワングPCにおいて並列プリン
タを駆動するのに用いられるが、同一のデバイスはIBMP
Cにおいてキーボードインターフエースデバイスとして
用いられる。別の例においては、あるシステムは直列I/
Oオペレーシヨンのためにシグネテイスク(Signetics)
2661UARTを用いるのに対し、別のシステムはナショナル
セミコンダクタ8250UARTを用いる。これらの各々が、異
なつた命令に応答し且つ異なつたI/Oアドレスを用い
る。更に別の例の場合、2つのシステムは、与えられた
キーにおいて且つこの種々のキーに対応するハードウエ
アコードにおいて異なるキーボードを有している。前に
述べたように、あるシステムのBIOSは基本的に、このシ
ステムのオペレーテイングシステムとのハードウエア構
造との間の橋である。それ故、2つのシステムのBIOS
は、それに応じて異なり、第1システムのBIOSに関して
有効である命令あるいはコマンドは第2システムのBIOS
に対しては有効ではないことがある。
別の例の場合、2つのシステムのプログラム/データ
アドレススペースの構成は、以下のように異なることが
ある。即ち、第1システムに対して書かれた応用プログ
ラムはデータあるいはルーチンを、他の機能に予約され
た即ち割り当てられた第2システムのプログラム/デー
タスペースの一部分に書き込むかこれを修正するように
試みる。例で示すと、ビデオ表示情報を記憶するのに割
り当てられたワングPCプログラム/データスペース、即
ち、VC78のメモリスペースは、IBM PCにおいてこの機能
に割り当てられたメモリスペースとは異なる。それ故、
IBM PCに対して書かれ且つVC78に対して直接書き込むビ
デオ表示出力を与える如何なるプログラムもワングシス
テムにおいて正しく実行することができない。また逆も
同じである。
更に別の例の場合、ワングPC及びIBM PCの割込み機構
は2つの点において異なる。先ず、上に述べたように、
この2つのシステムの割込み処理ルーチン及びテーブル
は、2つのシステムアドレススペースの異なる部分に存
在しているので割込みルーチンに対して直接呼び出しを
行うIBM PC応用プログラムは、正しく実行できない。別
の差の場合、ワングPCでは、特定のハードウエア割込み
ルーチンは多重デバイスかの割込みを処理し、この割込
み機構は、どの特定のデバイスがサービスを要求してい
るかを識別する。IBM PCにおいて、各デバイスには個別
の割込みベクトル設けられている。即ち、各デバイスに
は独立の割込みサービスルーチンが効果的に設けられて
いる。更に、この2つのシステムのソフトウエア割込み
サービスルーチンは、完全に異なる仕様を有する。即
ち、完全に異なる状態に応答することが要求される。
最終的な例において、2つのシステムの入力/出力デ
バイスのアドレス即ち「ポート」は、それらのI/O−制
御アドレススペースの異なる領域にマツプされ、それら
のそれぞれのスペース内に別々に組織され、あるいは異
なるI/Oデバイスを処理する。
3. 第2システムによる第1システムのエミユレーシヨ
ン(第5A図、第5B図及び第6図) 第1システムに対して書かれたプログラムを修正する
ことなしに第2システムに対して実行できるような方法
でもつて第1システムを第2システムによつてエミユレ
ートすることは第1システムを4つの観点からエミユレ
ートすることが要求される。これらはBIOS、プログラム
/データアドレススペースのマツピング、割込み機構、
及びI/O−制御アドレススペースのマツピング、構造及
び機能性である。特定のオペレーテイングシステムを与
えられたシステムのハードウエア及び内部構造に結合し
ているBIOSの機能、オペレーシヨン及び設計は、当業者
には公知であり、本明細書にはこれ以上詳細には述べな
い。ここで銘記すべきことは、特定のBIOSが別のBIOSを
エミユレートするという要求は、エミユレートしている
BIOSの特性の基本的変化ではなく、エミユレートしてい
るBIOSの設計上の束縛として使用することである。
同様にして、あるシステムのプログラム/データアド
レススペースの別のシステムのプログラム/データアド
レススペースをエミユレートするための再マツピング
は、当技術においては公知であり、通常はこの目的のた
めに書かれたプログラムの制御の下で、多くのシステム
において容易に達成され得る。例えば、ワングプロフエ
ツシヨナルコンピユータに対してIBM PCをエミユレート
する際、ワングシステムのプログラム/データスペース
の主な再マツピングは、IBMビデオ表示メモリに対する
アドレススペースと特定の予約アドレススペースの割当
て及びワング割込みテーブル及びルーチンの再配置を含
む。
例として述べると、そうでない場合自由であるワング
システムアドレススペースB0000HからB0FFFH及びB1000H
からB1FFFHは、VC78のCM80及びAM82には類似のフレーム
バツフア、及びIBM PCシステムにおけるかかるスペース
に対応する予約アドレススペースを含むためにそれぞれ
割り当てられる。VC78は、これにより、IBM PCシステム
に対して書かれたプログラムによつて期待されたアドレ
スに表示データを受け且つ与える。
前に述べたように、ワングシステム割込みテーブル及
びルーチンは、ワングプログラム/データスペースの位
置00000Hから003FFHに存在する。しかしながら、これら
の領域の特定の領域は、IBM PCシステムにおいて保護あ
るいは予約されず、IBM PCに対して書かれたプログラム
は、ワングシステムアドレススペースのこの領域に書き
込むかあるいは他の方法で修正する。従つて、特定のワ
ング割込みベクトル即ち、ワングPCハードウエア機能に
対する割込み処理ルーチンの位置を指示するアドレス
は、ベクトル数00080H乃至00087H(アドレス200H乃至21
FH)から、IBM PCシステムに予約されるベクトル数0005
0H乃至00057H(アドレス140H乃至15FH)に再配置され
る。これらの割込みベクトルの再配置は、PIC66が対応
する割込み状態に応答して再配置ベクトルの適当な新し
いアドレスを与えるようにPIC66の再プログラミングを
必要とする。前に述べたように、PIC66は、プログラマ
ブルデバイスであり、エミユレーシヨンBIOS又はこの目
的のために与えられた他のソフトウエアによつてこの目
的のために適当に再プログラムされ得る。
システムエミユレーシヨンの残りの2つの領域、I/O
−制御アドレススペースのマツピング、構造及び機能
性、及び割込み機構は、より詳細に次に述べられる。
1. I/O構造エミユレーシヨン(第5A図及び第5B図) 前に述べたように、システムI/O構造は、ハードウエ
アエレメント並びに、情報がこのシステムと外部デバイ
ス、例えば、デイスク駆動機構、ビテオ表示位置、キー
ボード、直列入出力デバイス及び並列入出力デバイスと
の間に通信される時の制御ルーチンからなる。これも前
に述べたように、エミユレートしているシステムとエミ
ユレートされているシステムは、しばしば、同様のI/O
機能を実行するのに異なるハードウエアデバイスを用
い、これらのデバイスが同じ場合でも、プログラム可能
なこれらのI/Oデバイスは異なつた方法でプログラムさ
れる。更に、I/Oデバイスポートは、この2つのシステ
ムにおいて、それらのそれぞれのI/O−制御アドレスス
ペースにおいて異なつた位置を占有する。例えば、IBM
PC中のI/Oポートは、アドレススペース000H乃至3FFHに
置かれ、これに対して、ワングプロフエツシヨナルコン
ピユータ中のI/Oポートは、上記のように、アドレス100
0Hないし1FFFHに位置する。
その結果、第1のシステムのために書かれたプログラ
ムによつて発生するI/O要求は、これらのプログラムが
第2のシステムにおいて実行された時には無効となる可
能性が高い。この第2のシステムは、これにより、プロ
グラム発生I/O要求に関して第1のシステムのI/O構造を
エミユレートしなければならず、そのI/O構造に対して
広範なあるいは基本的な修正を要求することなくこれを
行うことが好ましい。
第5A図及び第5B図について説明する。現在のシステム
が別のシステムのI/O構造及び機能性をエミユレートす
る時に用いる機構が示されている。ここに示すように、
この機構は、I/Oマスク不可能割込み機構(IONMIM)128
及びI/Oエミユレーシヨン機構(IOEM)130を含んでい
る。尚、IONMIM128は、このシステムの前に存在したIM1
24を含む。以下に述べるように、IONMIM128は、「外
部」のI/O要求、即ち、もともと別のシステムに対して
書かれたプログラムによつて発生されたI/O要求(外部I
/O要求)の発生を検出する。以下に更に詳しく述べるよ
うに、1000H乃至1FFFHのアドレス範囲の外のI/O要求
は、外部のI/O要求と見なされる。IOEM130は、他のシス
テムのI/O構造をエミユレートするように現在のシステ
ムのI/O構造に指示する制御ルーチンを与える。
先ず外部のI/O要求の検出を考慮すると、前に述べた
ように、CPU10は、入力/出力復号ロジツク(IODL)29
を含む。IODL29は、基本的には、システム入力/出力要
求を監視し、第1に、I/O要求が発生したか否かを示す
対応した制御信号出力を与え、第2に、このI/O要求が
有効なI/Oポートアドレス位置に対してあるか否かを示
す対応した制御信号出力をSCバス18に与える。
ここでIONMIM128について説明する。
IONMIM128は、I/O検出ロジツク(IODET)132を含む。
IODET132は、SCバス18から、特に、上記のIODL29制御出
力から接続された入力を有している。IODET132は、これ
らの制御信号に応答して、現在のシステムにおける有効
なI/Oポートアドレスに対してではないI/O要求の発生の
際に、即ち、外部のI/O要求の発生の際に、このシステ
ムのIM124にマスク不可能割込み(NMI)を与える。IM12
4は、前に述べたように、対応する割込み処理ルーチン
(IHR)136の位置を識別するベクトル即ちアドレスを含
む割込みベクトルテーブル134において対応する位置を
アドレスする割込みベクトルアドレス(IVA)出力を与
える。
現在のシステムが他のシステムをエミユレートしてい
る時、IM124のIVT134及びIHR136には、下に述べられるI
OEM130のオペレーシヨンを制御するための適当なベクト
ル及びルーチンが付加的に設けられている。IM124のプ
ログラミング及びIOEM130の後続のオペレーシヨンを制
御するための適当なルーチンの作成は、IOEM130のオペ
レーシヨンの次の説明を行うと当業者にとつては明らか
となろう。
I/Oエミユレーシヨンルーチンは、上記のように、IOE
M130によるシステムの中に存在し且つこのシステムに与
えられ、実行されるオペレーシヨンの型によつて2つの
群に構成される。最初の群は、読出しオペレーシヨン・
エミユレーシヨン・ルーチンからなり且つ読出しI/Oエ
ミユレーシヨン・ルーチン(RIOER)138に存在し、これ
に対し、第2の群は、書込みオペレーシヨン・エミユレ
ーシヨン・ルーチンからなり、書込みI/Oエミユレーシ
ヨン・ルーチン(WIOER)140の中に存在する。IHR136に
関して前に説明したように、RIOER138及びWIOER140は、
一般に、システムのプログラム/データスペースの一部
分に、或いはメモリあるいはROM中にロードされたコー
ドとして存在する。
ここで銘記すべきことは、第5A図において示されるよ
うに、RIOER138及びWIOER140に存在するI/Oエミユレー
シヨン・ルーチンは、それぞれ読出しデイフオルト・ル
ーチン(RDEF)142及び書込みデイフオルト・ルーチン
(WDEF)144を含むことである。これらのルーチンは、R
IOER138及びWIOER140において与えられたエミユレーシ
ヨン・ルーチンによつて支持され得ない特定の外部のI/
Oオペレーシヨンの発生に対して与えられる。斯かる要
求は、通常は殆ど見られないが、特定の応用プログラム
においては発生する。斯かる場合、RDEF142及びWDEF144
は基本的には、更にアクシヨンを起こすことなく且つシ
ステムオペレーシヨンが不都合に中断されることがない
ように支持されていない要求を終了させる。
エミユレートされる各型のオペレーシヨン、即ち、読
出しあるいは書込みにおいて、実行されるオペレーシヨ
ンは、オペレーシヨンの「クラス」、例えば、同様の特
徴を有するクラスに編成され、RIOER138及びWIOER140に
存在するルーチンは通常は、このようにして組織され
る。これにより、特定の外部のI/Oオペレーシヨンをエ
ミユレートするための特定のRIOER138又はWIOER140の選
択は、オペレーシヨンの型の識別、この型内のオペレー
シヨンのクラス、及びこのクラス内の特定の対応するル
ーチンの識別を要求する。
外部のI/O要求に応答するRIOER138及びWIOER140から
のI/Oエミユレーシヨンルーチンの選択は、上記のよう
に、IHR136に存在するルーチンによつて制御される。ル
ーチンの実際の選択は、IHR136によつて与えられるルー
チンの制御の下で、読出しディスパッチ(指名)テーブ
ル(RDT)146及び書込み指名テーブル(WDT)148及び対
応する読出しクラステーブル(RCT)150及び書込みクラ
ステーブル(WCT)152からなる機構を介して行なわれ
る。RDT146及びRCT150は、RIOER138に存在するルーチン
から読出しオペレーシヨンルーチンを選択するのに用い
られ、これに対して、WDT148及びWCT152は、WIOER140に
存在するオペレーシヨンから書込みオペレーシヨンを選
択するのに用いられる。
以上に述べるように、RCT150及びWCT152はそれぞれ、
RIOER138及びWIOER140に存在する個々のエミユレーシヨ
ン・ルーチンの位置を識別し、これを選択する読出しI/
Oエミユレーシヨン・ルーチン・ポインタ及び書込みI/O
エミユレーシヨン・ルーチン・ポインタ(RIOERP及びWI
OERP)即ちアドレスを含んでいる。RCT150及びWCT152の
内部構造の線図である第5B図に示すように、RCT150及び
WCT152に存在するポインタは、RIOER138及びWIOER140の
エミユレーシヨンルーチンのクラス分けに対応するクラ
ス154に構成されている。各クラス154は、RIOER138及び
WIOER140における個々の対応するエミユレーシヨンルー
チンの位置を識別するポインタIOER156を含んでいる。
RCT150及びWCT152におけるポインタは、一部分RDT146
及びWDT148から与えられるアドレス入力によつて選択さ
れ、一部分、外部のI/Oオペレーシヨン要求に関する情
報をラツチし且つ記憶する特定のIOEM130レジスタから
与えられるアドレス入力によつて位置付けられ、かつ選
択される。以下に述べられるように、RDT146及びWDT148
に記憶され且つRDT146及びWDT148によつてそれぞれRCT1
50及びWCT152に与えられるアドレスは、インデツクスア
ドレスとして用いられ、RCT150又はWCT152内において、
RIOER138及びWIOER140における適当なエミユレーシヨン
・ルーチンを支持するIOERを含む特定のクラス154を選
択する。この外部I/O要求に関するラツチされた情報
は、一部分、RDT146及びWDT148に記憶された、RCT150又
はWCT152に与えられる、適当なインデツクスを選択する
ためにRDT146及びWDT148をアドレスするのに用いられ、
一部分、RDT146又はWDT148によつて与えられたインデツ
クスアドレスによつて選択された対応するクラス154内
において個々のIOERを選択するためにRCT150及びWCT152
へのアドレスオフセツト入力として用いられる。
外部のI/O要求に関する情報をラツチし且つ記憶する
ためのIOEM130レジスタについて述べる。IOEM130は、SA
バス14から相互接続されたI/Oアドレスレジスタ(IOA)
158、SDバス16から相互接続されたI/Oデータレジスタ
(IOD)160、及びSCバス18から相互接続されたI/Oステ
ータスレジスタ(IOS)162を含んでいる。外部のI/O要
求の開始の際、IODET132のMNI出力は、上記のように、I
OEM130のオペレーシヨンを命令するためのIHR136の割込
み処理ルーチンを選択し開始し、同時に、この要求に関
する特定の情報をIOA158、IOD160及びIOS162にラツチす
る。即ち、要求された外部のI/OアドレスはIOA158にラ
ツチされ、この要求がI/O書込みオペレーシヨンのため
の場合、書き込まれるデータはIOD160にラツチされる。
IOS162にラツチされたステータス情報は、この要求の発
生の事実、即ち、この要求が読出しあるいは書込みか、
これが1バイトあるいはワードI/Oアクセスか、ワード
である場合、このアドレスが奇数のアドレスにあるかを
含んでいる。
外部のI/Oオペレーション割込み、即ち、外部のI/O要
求が発生したときに生成される割り込みに応答して、こ
のシステムはシステムIM124に関して前に述べたように
割込み状態退避オペレーシヨンを実行する。I/Oエミュ
レーション制御ルーチン、即ち、割り込み処理ルーチン
(IHR)は、次にIOA158からI/O要求アドレス情報を読み
出し且つIOS162からステータス情報を読出す。この要求
されたオペレーシヨンが読出しかあるいは書込みである
かを識別するステータス情報及びIOA158から読み出され
たアドレス情報の第1の部分は、RIOER138又はWIOER140
に存在する適当な対応したエミユレーシヨン・ルーチン
に対するIOERPを含むクラス154の識別用インデツクスを
RCT150又はWCT152において得るべく、RDT146及びWDT148
へのアドレス入力として用いられる。この場合、RDT146
及びWDT148へのアドレスの読出し/書込みステータス情
報の部分は、この対応するインデツクスがアドレスのRD
T146又はWDT148範囲に存在するか否かを選択する。
RDT146又はWDT148から読み出されたインデツクスは、
次に、実行されるエミユレーシヨン・ルーチンに対する
IOERPを含むクラス154を選択するためにそれぞれRCT150
又はWCT152へのアドレスの第1の部分として用いられ
る。RCT150又はWCT152へのアドレスの第2の部分は、上
記のように、IOA158から読み出されるアドレス情報の第
2の部分からなる。RCT150/WCT152アドレス入力のこの
部分は、エミユレーシヨン・ルーチンに対するIOERPの
位置をアドレスのインデツクス部分によつて選択された
クラス154内で選択するために、インデツクス入力に対
して相対的に、効果的にオフセツト(Offset)として用
いられる。
この選択されたIOERPは次に、IHR136から与えられたI
/Oエミユレーシヨン制御ルーチンによつて用いられ、RI
OER138又はWIOER140中に存在するルーチンから適当なエ
ミユレーシヨン・ルーチンを選択し開始する。このエミ
ユレーシヨンルーチンは次に、要求された外部のI/Oオ
ペレーシヨンを適当にエミユレートするために、必要に
応じてIOS162に存在するステータス情報をアクセスす
る。この要求されたオペレーシヨンがデータ書込みに対
してであつた場合、この選択されたエミユレーシヨンル
ーチンは、ラツチされたデータを読出し、IOD160に適当
に転送する。
以上、本発明のシステムが別のシステムのI/O構造を
エミユレートする時に用いる手段について述べてきたの
で、本発明のシステムがこの他のシステムの割込み構造
をエミユレートする時に用いる手段について以下に述べ
ることにする。
2. 割込み機構エミユレーシヨン(第6図) 前に述べたように、本明細書に述べた型式のシステム
には2つのクラスの割込みオペレーシヨンが存在する。
即ち、ソフトウエア割込み及びハードウエア割込みであ
る。ソフトウエア割込みは、AP116又はOS120ルーチンに
よつて開始され、ハードウエア割込みは、HS118を含む
ハードウエアエレメントのオペレーシヨンによつて開始
される。ハードウエア割込みの例は、以下のものを含
む。即ち、キーボードから開始されるキーボード入力、
直列ポートI/Oオペレーシヨン及び並列ポートI/Oオペレ
ーシヨン、デイスクオペレーシヨン及び時制シーケンス
である。割込みオペレーシヨンを処理するためのルーチ
ンIHR136は、BIOS122ルーチンと基本的に同一のレベル
のデイテイルでもつて機能し、通常は、第5A図に表され
る第1図及び第2図の例示システムのように、BIOS122
に存在するルーチンの一部として見なされる。
ソフトウエア割込みの処理、即ち、適当なソフトウエ
ア割込み処理ルーチンの呼出し即ち開始は、BIOS122ル
ーチンの呼出し即ち開始と同じ方法でもつて行なわれ
る。即ち、AP116又はOS120ルーチンは、MM48又はROMに
記憶される適当な割込み処理ルーチンをアドレスする要
求即ち命令を発する。これにより、別のシステムのソフ
トウエア割込みオペレーシヨンのエミユレーシヨンは、
前に述べたように、他のシステムをエミユレートするBI
OSに適当な割込み処理ルーチンを付加するということに
関連する。
HS118によつて呼び出されるハードウエア割込みは、
この目的のために与えられた特定のロジツクを介して開
始され、HS118エレメントのオペレーシヨンから生じ
る。第1図及び第2図及び第5A図の例示システムにおい
て、この機構はPIC66及びNMIL36によつて与えられる。
基本的には、PIC66及びNMIL36には、HS118の種々のエレ
メントからのこの目的のための特定の制御信号入力が設
けられている。HS118エレメントにおける割込み状態の
発生が斯かる割込み入力を通してPIC66又はNMIL36に指
示されると、PIC66又はNMIL36は、割込みベクトルテー
ブル(IVT134)における対応する位置をアドレスする対
応したアドレス(IVA)を与える。IVT134は、IHR136に
おける対応した割込み処理ルーチンの位置を識別するベ
クトル即ちアドレスを含み且つ与える。
前に述べたように、2つのシステムの内部ハードウエ
ア構造及びオペレーシヨンは大きく異なることがあり、
その結果、これらのシステムのハードウエア割込み機構
のオペレーシヨンも異なることがある。従つて、一方の
システムに対して書かれた且つこのシステムの割込み機
構に直接交信する応用プログラムは、別のシステムに対
して正しく実行できないことが多々ある。例として示す
と、特定の応用プログラムは、ユーザにキーボードを用
いて特定の情報を入力することを要求し、キーボード入
力割込みを処理するハードウエア割込みルーチンが特定
の方法でこの情報を示すことを期待する。
上記のように、第1のシステムによる第2のシステム
のソフトウエア割込み機構のエミユレーシヨンは、第2
のシステムをエミユレートする第1システムのBIOSによ
つて実行することができ、これは、当業者によく理解さ
れているプロセスである。しかしながら、第1のシステ
ムによる第2のシステムのハードウエア割込み機構のエ
ミユレーシヨンは、第2のシステムのI/O構造をエミユ
レートする問題と同様の問題である。
第6図について説明する。本発明に係るシステムが第
2のシステムのハードウエア割込み機構をエミユレート
する時に用いる手段の線図が図示されている。ここに
は、本発明に係るシステムのハードウエア割込み機構が
示されており、このシステムは、PIC66及びNMIL36、IVT
134及びIHR136を含んでいる。これらのオペレーシヨン
については前に述べられている。
本発明のシステムのハードウエア割込みエミユレーシ
ヨン機構において、IHR136は、そのソフトウエア割込み
サービスルーチン(SISR164)において、第2システム
のハードウエア割込み機構のオペレーシヨンをエミユレ
ートする付加的な一群のハードウエア割込みエミユレー
シヨン・ルーチン(HIER)166を含んでいる。IVT134は
対応的に、付加的なHIERベクトル(HIERV)168乃至HIER
166を含んでおり、IHR136のハードウエア割込みサービ
スルーチン(HISR170)は、HIERV166への基準を含むよ
うに変えられる。
HIER166、HIERV168及び変化したHISR170は、このシス
テムが第2システムをエミユレートしている時にイネー
ブルされる。これにより、このシスムにおけるハードウ
エア割込みの発生は、対応するHISR170が、対応するHIE
RV168を通してSISR164に存在する対応したHIER166を呼
び出すという結果を生ずる。HIER166は、HIERV168及び
変化したHISR170はこれにより、上記の、ソフトウエア
割込みオペレーシヨンと同じ方法でもつてハードウエア
割込みオペレーシヨンを効果的に行なう。
ここで銘記すべきように、HIER164は純粋にエミユレ
ーシヨン・ルーチンに限定されないが、付加的な機能性
即ち向上された性能を与える他のルーチンを含みあるい
はこのルーチンに置き換えられ得る。また、ハードウエ
ア割込みエミユレーシヨン・ルーチンの設計及びオペレ
ーシヨンは、ソフトウエア割込みルーチンのそれと同様
であり、当業者にとつては公知であるため、本明細書に
はこれ以上詳細には論じない。
【図面の簡単な説明】
第1図は、「パーソナル」又は「プロフエツシヨナル」
クラスのコンピユータシステムのブロツク図。第2図
は、第1図のシステムに用いられるビデオ制御装置のブ
ロツク図。第3図は、第1図及び第2図に示されている
システムのソフトウエア及び制御構造の線図。第4図
は、第1図乃至第3図のシステムのアドレススペースの
線図。第5A図及び第5B図は、I/O構造エミユレーシヨン
手段の線図。第6図は、ハードウエア割込みエミユレー
シヨン機構の線図。 10……中央処理装置(CPU)、12……制御入力/出力論
理(CIO)、36……マスク不可能割込論理(NMIL)、66
……プログラマブル割込制御装置(PIC)、118……ハー
ドウエア構造(HS)、120……外部デバイス(ED)、122
……基本入力/出力システム(BIOS)、124……割込機
構(IM)、128……I/Oマスク不可能割込機構(IONMI
M)、130……I/Oエミユレーシヨン機構(IOEM)、132…
…I/O検出ロジツク(IODET)、134……割込ベクトルテ
ーブル、136……割込処理ルーチン(IHR)、138……読
出しI/Oエミユレーシヨンルーチン(RIOER)、140……
書込みI/Oエミユレーシヨンルーチン(WIOER)、146…
…読出し指名テーブル(RDT)、148……書込み指名テー
ブル(WDT)、150……読出しクラステーブル(RCT)、1
52……書込みクラステーブル(WCT)、154……クラス、
160……I/Oデータレジスタ(IOD)、162……I/Oステー
タスレジスタ(IOS)。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デービツド・ジエイ・アングル アメリカ合衆国ニユーハンプシヤー州 03051,ハドソン,マルドーン・ストリ ート 5 (72)発明者 パトリツク・クロス アメリカ合衆国ニユーハンプシヤー州 03062,ナシユア,コングレス・ストリ ート 39,アパートメント 24 (72)発明者 ジエームズ・ピー・モスクン アメリカ合衆国ニユーハンプシヤー州 03062,ナシユア,スピツト・ブルツ ク・ロード 105 (72)発明者 キヤロル・ダブリユー・テイラー アメリカ合衆国マサチユーセツツ州 01450,グロトン,スクールハウス・ロ ード 69 (56)参考文献 特開 昭54−7665(JP,A) 特開 昭57−40789(JP,A)

Claims (27)

    (57)【特許請求の範囲】
  1. 【請求項1】データ処理システムであって、プログラム
    を記憶するための手段と、上記プログラムに応答し、上
    記データを処理するためのCPU手段と、上記プログラム
    に応答し、上記システムと外部デバイスとの間で情報を
    通信するための入力/出力構造と、を含むデータ処理シ
    ステムにおいて、 他のシステムの入力/出力構造のオペレーションをエミ
    ュレートするように上記システムの入力/出力構造のオ
    ペレーションを命令するためのルーチンを記憶するルー
    チン記憶手段と、 上記プログラムに応答し、外部の入力/出力オペレーシ
    ョン要求の発生を検出し、該外部の入力/出力オペレー
    ション要求に対応するマスク不可能割込みを発生する割
    込み手段と、 上記マスク不可能割込みに応答し、該マスク不可能割込
    みに対応し且つ、従って、該マスク不可能割込みの原因
    となった外部の入力/出力オペレーション要求の各々に
    対応する入力/出力エミュレーションルーチンを選択及
    び実行する手段と、 を含む、他のシステムの入力/出力構造のエミュレーシ
    ョン手段。
  2. 【請求項2】上記割込み手段は、 上記プログラムに応答し、入力/出力要求の発生及び型
    を指示する入力/出力要求検出手段を含むことを特徴と
    し、且つ 上記外部の入力/出力要求を検出するための割込み手段
    は、上記入力/出力要求検出手段に応答し、通常は上記
    システムの入力/出力構造に認識されない要求を検出
    し、該認識されない要求に対応するマスク不可能割込み
    を供給する手段を含む特許請求の範囲第1項に記載のエ
    ミュレーション手段。
  3. 【請求項3】上記システムの上記入力/出力構造は、シ
    ステムのアドレススペースの第1の範囲を占有するポー
    トを有する入力/出力デバイスを含み、上記他のシステ
    ムの入力/出力デバイスは、第2の異なる範囲のアドレ
    ススペース内に配置されたポートを有し、 上記入力/出力要求検出手段は、入力/出力要求ポート
    アドレスを、上記システムの入力/出力デバイスによっ
    て占有されたポートアドレスの範囲と比較し、そして1
    つのポートアドレスが上記システムの入力/出力デバイ
    スによって占有されたアドレススペースの上記範囲内に
    ある時指示をする手段を含み、且つ 外部の入力/出力要求を検出する上記割込み手段は、 上記要求検出手段のオペレーションに応答し、上記シス
    テムの入力/出力デバイスによって占有されたアドレス
    スペースの上記範囲内の、入力/出力要求に対応するポ
    ートアドレスの指示を伴なわない入力/出力要求の発生
    を検出し、各斯かる入力/出力要求の発生の際に、前記
    のポートアドレスの指示を伴なわない入力/出力要求に
    対応するマスク不可能割込みを供給する手段を含む、 特許請求の範囲第2項に記載のエミュレーション手段。
  4. 【請求項4】上記マスク不可能割込みに応答し、上記外
    部の入力/出力要求に関する情報を記憶する要求情報記
    憶手段を更に含み、 エミュレーションルーチンを選択及び開始する上記手段
    が、上記外部の入力/出力要求に対応する上記入力/出
    力エミュレーションルーチンを選択する際上記の記憶さ
    れた入力/出力要求情報に更に応答する、 特許請求の範囲第1項に記載のエミュレーション手段。
  5. 【請求項5】上記システムの上記入力/出力構造は、上
    記システムのアドレススペースの第1の範囲を占有して
    いるポートを有する入力/出力デバイスを含むことを特
    徴とし、上記他のシステムの上記入力/出力デバイス
    は、第2の異なる範囲のアドレススペース内に配置され
    たポートを有し、上記要求情報記憶手段が、 外部の入力/出力要求のポートアドレスを記憶する第1
    のレジスタ手段と、 外部の入力/出力要求が読出しオペレーションかあるい
    は書込みオペレーションであるかの指示を含む、外部の
    入力/出力要求に関するステータス情報を記憶する第2
    のレジスタ手段と、 を含む、特許請求の範囲第4項に記載のエミュレーショ
    ン手段。
  6. 【請求項6】上記ステータス情報は更に、外部の入力/
    出力要求がバイトアクセスオペレーションあるいはワー
    ドアクセスオペレーションに対してであるかの指示を含
    む特許請求の範囲第5項に記載のエミュレーション手
    段。
  7. 【請求項7】上記要求情報記憶手段は更に、入力/出力
    要求が書込みオペレーションに対してである時に書き込
    まれるデータを記憶する第3のレジスタ手段を更に含
    む、特許請求の範囲第5項に記載のエミュレーション手
    段。
  8. 【請求項8】上記選択及び開始する手段は、 上記ルーチン記憶手段に記憶されたエミュレーションル
    ーチンのアドレスを記憶するクラステーブル手段であっ
    て、クラステーブル手段に記憶されたエミュレーション
    ルーチンアドレスは、それぞれのクラスが外部の入力/
    出力オペレーションのグループのアドレスを含んでいる
    クラスに構成されている、クラステーブル手段と、 インデックスアドレスを記憶するディスパッチテーブル
    手段であって、各インデックスアドレスは1つのグルー
    プのエミュレーションルーチンに対応し且つエミュレー
    ションルーチンのグループの入力/出力エミュレーショ
    ンルーチンアドレスのクラステーブル手段における位置
    を識別する、ディスパッチテーブル手段とを備え、 上記ディスパッチテーブル手段は、それぞれの外部の入
    力/出力要求の第1の部分に応答し、対応するグループ
    のエミュレーションルーチンの上記クラステーブル手段
    に記憶された前記入力/出力エミュレーションルーチン
    アドレスのアドレスの、上記外部の入力/出力要求の第
    1の部分に対応するインデックスアドレスを供給し、 上記クラステーブル手段は、各々の外部の入力/出力要
    求の第2の部分に応答し且つ上記外部の入力/出力要求
    の前記第1の部分に対応するインデックスアドレスに応
    答し、対応するエミュレーションルーチンを選択し且つ
    実行を開始するために、前記外部の入力/出力要求の第
    2の部分に対応するエミュレーションルーチンアドレス
    を提供する、 特許請求の範囲第1項に記載のエミュレーション手段。
  9. 【請求項9】各々の外部の入力/出力要求は、ポートア
    ドレスであって、ポートアドレスに対応する上記他のシ
    ステムのアドレススペース内の入力/出力デバイスの位
    置を識別し且つ要求された入力/出力オペレーションの
    型に対応する、ポートアドレスを含み、上記要求情報記
    憶手段は、 外部の入力/出力要求のポートアドレスを記憶する第1
    のレジスタ手段を含むことを特徴とし、且つ外部の入力
    /出力要求の第1の部分が上記ポートアドレスの第1の
    部分であり、外部の入力/出力要求の第2の部分が、上
    記ポートアドレスの第2の部分である、 特許請求の範囲第8項に記載のエミュレーション手段。
  10. 【請求項10】上記要求情報記憶手段は更に、外部の入
    力/出力要求が読出しオペレーションに対してか書込み
    オペレーションに対してかの指示を含む、外部の入力/
    出力要求に関するステータス情報を記憶する第2のレジ
    スタ手段を含み、 上記ディスパッチテーブル手段は更に、外部の入力/出
    力要求に対応するインデックスアドレスを供給する上
    で、要求が読出しオペレーションに対してかあるいは書
    込みオペレーションに対してかを識別するステータス情
    報に応答する、 特許請求の範囲第9項に記載のエミュレーション手段。
  11. 【請求項11】上記エミュレーションルーチンは、外部
    の読出し入力/出力オペレーションをエミュレートする
    ためのルーチンのグループを含む1組の読出しオペレー
    ションルーチン及び外部の書込み入力/出力オペレーシ
    ョンをエミュレートするためのルチーンのグループを含
    む1組の書込みオペレーションルーチンに構成され、 上記ディスパッチテーブル手段は、読出しディスパッチ
    テーブル及び書込みディスパッチテーブルを備え、上記
    クラステーブル手段は、読出しクラステーブル及び書込
    みクラステーブルを備える、 特許請求の範囲第10項に記載のエミュレーション手段。
  12. 【請求項12】上記エミュレーションルーチンは更に、 外部の入力/出力要求に対応するエミュレーションルー
    チンを有していない外部の入力/出力要求に対応するデ
    ィフオルトルーチンであって、各々が、ディフオルトル
    ーチンに対応する上記入力/出力要求オペレーションを
    終了する、ディフオルトルーチンを含み、 上記選択及び開始する手段が、要求に対応するエミュレ
    ーションルーチンを有していない要求に応答し、対応す
    るエミュレーションルーチンを有していない要求に対応
    するディフオルトルーチンを選択し実行する、 特許請求の範囲第1項に記載のエミュレーション手段。
  13. 【請求項13】上記割込み手段は、 上記システムのオペレーションを命令するプログラムに
    よって与えられる割込み要求に応答し、上記システムの
    対応する第1の割込み処理オペレーションを指図するた
    めの、上記プログラムによって与えられる割込み要求に
    対応する第1の割込みルーチンを供給する第1の割込み
    ルーチン供給手段と、 上記システムのハードウェアエレメントによって与えら
    れた割込み要求に応答し、上記システムの対応する第2
    の割込み処理オペレーションを指図するための、上記ハ
    ードウェアエレメントによって与えられた割込み要求に
    対応する第2の割込みルーチンを供給する第2の割込み
    ルーチン供給手段と、 を含み、 上記割込み手段が更に、上記他のシステムの第2の割込
    みルーチン供給手段をエミュレートする手段であって、
    上記他のシステムの上記第2の割込みルーチン供給手段
    のオペレーションをエミュレートするように上記システ
    ムのオペレーションを命令する割込みエミュレーション
    ルーチンを記憶する上記第1の割込みルーチン供給手段
    における手段と、上記第2の割込みルーチン供給手段の
    オペレーションに応答して、上記第2の割込みルーチン
    供給手段のオペレーションに対応する割込みエミュレー
    ションルーチンを選択し且つ実行する手段と、を含むエ
    ミュレートする手段を含む、 特許請求の範囲第1項に記載のエミュレーション手段。
  14. 【請求項14】データ処理システムであって、プログラ
    ムを記憶するための手段、上記プログラムに応答し上記
    データを処理するCPU手段、上記プログラムの直接的実
    行の外部のオペレーションを実行する割込み手段、及び
    上記プログラムに応答し、上記システムと外部デバイス
    との間で情報を通信する入力/出力構造を含むデータ処
    理システムにおいて、他のシステムの入力/出力構造を
    エミュレートする方法であって、 上記他のシステムの入力/出力構造のオペレーションを
    エミュレートするように上記システムの入力/出力構造
    のオペレーションを命令するルーチンを上記システムに
    記憶する工程と、 上記割込み手段において、外部の入力/出力オペレーシ
    ョン要求の発生を検出し且つ上記外部の入力/出力オペ
    レーション要求に対応するマスク不可能割込みを発生す
    る工程と、 上記マスク不可能割込みに応答し、該マスク不可能割込
    みに対応し且つ、従って、該マスク不可能割込みの原因
    となった外部の入力/出力オペレーション要求の各々に
    対応する入力/出力エミュレーションルーチンを選択及
    び実行する工程と、 を含むエミュレーション方法。
  15. 【請求項15】外部の入力/出力要求の発生を検出する
    上記工程が更に、 入力/出力要求の発生及び型を検出し且つ指示する工程
    と、 上記システムの入力/出力構造によって通常認識されな
    い要求を検出し、且つ該通常認識されない要求に対応す
    るマスク不可能割込みを供給する工程と、 を含む特許請求の範囲第14項記載のエミュレーション方
    法。
  16. 【請求項16】上記システムの入力/出力構造が、上記
    システムのアドレススペースの第1の範囲を占有するポ
    ートを有する入力/出力デバイスを含み、上記他のシス
    テムの入力/出力デバイスが、第2の異なる範囲のアド
    レススペース内に配置されたポートを有し、更に、 入力/出力要求の発生及び型を検出し且つ指示する工程
    において、入力/出力要求のポートアドレスを上記シス
    テムの入力/出力デバイスによって占有されたポートア
    ドレスの範囲と比較しそしてポートアドレスが上記シス
    テムの入力/出力デバイスによって占有されたアドレス
    スペースの範囲内にある時指示をする工程と、 上記システムの入力/出力構造によって通常認識されな
    い要求を検出する工程において、上記システムの入力/
    出力デバイスによって占有されたアドレススペースの範
    囲内の入力/出力要求に対応するポートアドレスの指示
    を伴なわない入力/出力要求の発生を検出し且つ各斯か
    る入力/出力要求の発生の際にその入力/出力要求に対
    応するマスク不可能割込みを供給する工程と、 を含む特許請求の範囲第15項記載のエミュレーション方
    法。
  17. 【請求項17】上記マスク不可能割込みに応答して、上
    記外部の入力/出力要求に関する情報を記憶する工程
    と、 上記の記憶された入力/出力要求情報に応答して、記憶
    された入力/出力要求情報に対応する上記入力/出力エ
    ミュレーションルーチンを選択する工程と、 を更に含む特許請求の範囲第14項に記載のエミュレーシ
    ョン方法。
  18. 【請求項18】上記システムの入力/出力構造が、上記
    システムのアドレススペースの第1の範囲を占有するポ
    ートを有する入力/出力デバイスを含み、上記他のシス
    テムの入力/出力デバイスが、第2の異なる範囲のアド
    レススペース内に配置されたポートを有し、 上記外部の入力/出力要求に関する情報を記憶する工程
    が更に、 第1のレジスタ手段に外部の入力/出力要求のポートア
    ドレスを記憶する工程と、 第2のレジスタ手段に、外部の入力/出力要求が読出し
    オペレーションに対してかあるいは書込みオペレーショ
    ンに対してかの指示を含む、外部の入力/出力要求に関
    するステータス情報を記憶する工程と、 を含む特許請求の範囲第17項に記載のエミュレーション
    方法。
  19. 【請求項19】上記外部の入力/出力要求に関する情報
    を記憶する工程が更に、上記第2のレジスタ手段に、外
    部の入力/出力要求がバイトアクセスオペレーションか
    あるいはワードアクセスオペレーションに対してである
    かを指示するステータス情報を記憶する工程を含む特許
    請求の範囲第18項に記載のエミュレーション方法。
  20. 【請求項20】上記外部の入力/出力要求に関する情報
    を記憶する工程が更に、入力/出力要求が書込みオペレ
    ーションに対してである時に、第3のレジスタ手段に書
    込まれるデータを記憶する工程、を含む特許請求の範囲
    第18項に記載のエミュレーション方法。
  21. 【請求項21】上記の選択及び実行を開始する工程が更
    に、 エミュレーションルーチンのアドレスをクラステーブル
    手段に配置する記憶工程であって、上記クラステーブル
    手段に記憶されたエミュレーションルーチンアドレスが
    クラスに構成され、それぞれのクラスがエミュレーショ
    ンルーチンに対応する外部の入力/出力オペレーション
    のグループのアドレスを含む、記憶工程と、 インデックスアドレスであって、各々が1グループのエ
    ミュレーションルーチンに対応し且つ各インデックスア
    ドレスに対応するクラスのエミュレーションルーチンア
    ドレスのクラステーブル手段における位置を識別するイ
    ンデックスアドレスを、ディスパッチテーブル手段に記
    憶する工程と、 外部の入力/出力要求の各々の第1部分に応答して、上
    記ディスパッチテーブル手段から、上記クラステーブル
    手段に記憶された各外部の入力/出力要求の第1の部分
    に対応するクラスのアドレスに対応するインデックスア
    ドレスを供給する工程と、 外部の入力/出力要求の各々の第2の部分及び上記入力
    /出力要求に対応するインデックスアドレスに応答し
    て、上記クラステーブル手段から、該入力/出力要求に
    対応するエミュレーションルーチンのエミュレーション
    ルーチンアドレスを供給する工程と、 上記クラステーブル手段から供給されたアドレスに応答
    して、上記入力/出力要求に対応するエミュレーション
    ルーチンを選択し且つ実行を開始する工程と、 を含む特許請求の範囲第14項に記載のエミュレーション
    方法。
  22. 【請求項22】外部の入力/出力要求の各々が、上記他
    のシステムのアドレススペース内の各外部の入力/出力
    要求に対応する入力/出力デバイスの位置を識別し且つ
    要求された入力/出力オペレーションの型に対応するポ
    ートアドレスを含み、且つ 選択し且つ実行を開始する上記工程が、要求情報を記憶
    する工程を更に含み、そして、 ポートアドレスを第1のレジスタ手段に記憶する工程を
    含み、 外部の入力/出力要求の第1の部分が上記ポートアドレ
    スの第1の部分であり、 外部の入力/出力要求の第2の部分が上記ポートアドレ
    スの第2の部分である、 特許請求の範囲第21項に記載のエミュレーション方法。
  23. 【請求項23】要求情報を記憶する上記工程は更に、外
    部の入力/出力要求が読出しオペレーションであるか書
    込みオペレーションであるかについての指示を含む、外
    部の入力/出力要求に関するステータス情報を第2のレ
    ジスタ手段に記憶する工程を含み、且つ 上記ディスパッチテーブル手段は更に、読出し又は書込
    みオペレーションに対応するインデックスアドレスを供
    給するうえで、要求が読出しオペレーションに対してか
    又は書込みオペレーションに対してかを識別するステー
    タス情報に応答する、 特許請求の範囲第22項に記載のエミュレーション方法。
  24. 【請求項24】要求情報を記憶するための上記工程は更
    に、外部の入力/出力要求がバイトアクセスオペレーシ
    ョンに対してか又はワードアクセスオペレーションに対
    してかの指示を含む、外部の入力/出力要求に関するス
    テータス情報を第2のレジスタ手段に記憶する工程を含
    み、且つ 上記外部の入力/出力要求に対応するエミュレーション
    ルーチンを選択し且つ実行を開始する上記工程は更に、
    上記外部の入力/出力要求に対応するエミュレーション
    ルーチンを選択する上で、要求がバイトアクセスオペレ
    ーションの対してか又はワードアクセスオペレーション
    に対してかを識別するステータス情報に応答する、 特許請求の範囲第22項に記載のエミュレーション方法。
  25. 【請求項25】上記エミュレーションルーチンは、外部
    の読出し入力/出力オペレーションをエミューレートす
    るためのルーチンのグループを含む1組の読出しオペレ
    ーションルーチン及び外部の書込み入力/出力オペレー
    ションをエミュレートするためのルーチンのグループを
    含む1組の書込みオペレーションルーチンの2組に構成
    され、且つ 上記ディスパッチテーブル手段は、読出しディスパッチ
    テーブル及び書込みディスパッチテーブルを備え、上記
    クラステーブル手段は、読出しクラステーブル及び書込
    みクラステーブルを備える特許請求の範囲第23項に記載
    のエミュレーション方法。
  26. 【請求項26】上記エミュレーションルーチンは更に、
    外部の入力/出力要求に対応するエミュレーションルー
    チンを有していない該外部の入力/出力要求に対応する
    ディフオルトルーチンであって、各ディフオルトルーチ
    ンが各ディフオルトルーチンに対応する入力/出力要求
    オペレーションを終了する、ディフオルトルーチンを含
    み、 対応するエミュレーションルーチンをもたない外部の入
    力/出力要求に対応するエミュレーションルーチンを選
    択し且つ実行を開始する上記工程が更に、外部の入力/
    出力要求に対応するエミュレーションルーチンを有して
    いない該外部の入力/出力要求の発生に応答して、該外
    部の入力/出力要求に対応するディフオルトルーチンを
    選択し且つ実行する工程を含む特許請求の範囲第14項に
    記載のエミュレーション方法。
  27. 【請求項27】上記割込み手段は、 上記システムのオペレーションを命令するプログラムに
    よって供給された割込み要求に応答し、上記システムの
    該プログラムによって供給された該割込み要求に対応す
    る第1の割込み処理オペレーションを命令するための、
    該割込み要求に対応する第1の割込みルーチンを供給す
    る第1の割込みルーチン供給手段と、 上記システムのハードウエアエレメントによって供給さ
    れた割込み要求に応答し、上記システムの該ハードウエ
    アエレメントによって供給された該割込み要求に対応す
    る第2の割込み処理オペレーションを命令するための、
    該割込み要求に対応する第2の割込みルーチンを供給す
    る第2の割込みルーチン供給手段と、 を含み、更に、上記他のシステムの第2の割込みルーチ
    ン供給手段をエミュレートするための方法を含み、該方
    法は、 上記他のシステムの第2の割込みルーチン供給手段のオ
    ペレーションをエミュレートするように上記システムの
    オペレーションを命令するための割込みエミュレーショ
    ンルーチンを上記第1の割込みルーチン供給手段に記憶
    する工程と、 上記第2の割込みルーチン供給手段のオペレーションに
    応答して、該第2の割込みルーチン供給手段のオペレー
    ションに対応する割込みエミュレーションルーチンを選
    択し且つ実行する工程と、 を含む特許請求の範囲第14項に記載のエミュレーション
    方法。
JP60151179A 1984-07-09 1985-07-09 データ処理システムのエミユレーシヨン Expired - Lifetime JP2610812B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US629028 1984-07-09
US06/629,028 US4727480A (en) 1984-07-09 1984-07-09 Emulation of a data processing system

Publications (2)

Publication Number Publication Date
JPS6136848A JPS6136848A (ja) 1986-02-21
JP2610812B2 true JP2610812B2 (ja) 1997-05-14

Family

ID=24521289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60151179A Expired - Lifetime JP2610812B2 (ja) 1984-07-09 1985-07-09 データ処理システムのエミユレーシヨン

Country Status (6)

Country Link
US (1) US4727480A (ja)
EP (1) EP0168034B1 (ja)
JP (1) JP2610812B2 (ja)
AU (1) AU588815B2 (ja)
CA (1) CA1232690A (ja)
DE (1) DE3587622T2 (ja)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6017539A (ja) * 1983-07-11 1985-01-29 Hitachi Ltd エミユレ−シヨン方式
US4799150A (en) * 1985-07-29 1989-01-17 Orchid Technology Interface system between a host computer and a peripheral processor with address detection circuitry
US5029077A (en) * 1986-01-17 1991-07-02 International Business Machines Corporation System and method for controlling physical resources allocated to a virtual terminal
US4899136A (en) * 1986-04-28 1990-02-06 Xerox Corporation Data processor having a user interface display with metaphoric objects
US5113517A (en) * 1986-04-28 1992-05-12 Xerox Corporation Concurrent display of data from two different processors each having different display font and user interface for controlling transfer of converted font data therebetween
US4939507A (en) * 1986-04-28 1990-07-03 Xerox Corporation Virtual and emulated objects for use in the user interface of a display screen of a display processor
US5153577A (en) * 1986-04-28 1992-10-06 Xerox Corporation Mapping character color attributes into grey pixel patterns
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
JPS62279431A (ja) * 1986-05-28 1987-12-04 Nec Corp 入出力エミユレ−タ−
US5146565A (en) * 1986-07-18 1992-09-08 Intel Corporation I/O Control system having a plurality of access enabling bits for controlling access to selective ports of an I/O device
US5045994A (en) * 1986-09-23 1991-09-03 Bell Communications Research, Inc. Emulation process having several displayed input formats and output formats and windows for creating and testing computer systems
US4972317A (en) * 1986-10-06 1990-11-20 International Business Machines Corp. Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US4833594A (en) * 1986-12-22 1989-05-23 International Business Machines Method of tailoring an operating system
JPS63282528A (ja) * 1987-02-04 1988-11-18 Sharp Corp 中央処理装置実行命令の検出方式
JP2557366B2 (ja) * 1987-02-25 1996-11-27 株式会社東芝 入出力手順変換装置
US4928237A (en) * 1987-03-27 1990-05-22 International Business Machines Corp. Computer system having mode independent addressing
US4859995A (en) * 1987-06-30 1989-08-22 Xerox Corporation Mouse pointer with switchable emulation mode
US5175855A (en) * 1987-07-27 1992-12-29 Laboratory Technologies Corporation Method for communicating information between independently loaded, concurrently executing processes
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
CA1304514C (en) * 1987-08-06 1992-06-30 International Business Machines Corporation Fast emulator using slow processor
US6006277A (en) * 1987-11-06 1999-12-21 Bea Systems, Inc. Virtual software machine for enabling CICS application software to run on UNIX based computer systems
US5280626A (en) * 1987-12-02 1994-01-18 Hitachi, Ltd. Multi-process emulator suitable for testing software under multi-process environments
JPH0677236B2 (ja) * 1988-02-01 1994-09-28 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン I/o割込みをシミュレートする装置及び方法
JPH0628036B2 (ja) * 1988-02-01 1994-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン シミュレーシヨン方法
US5129064A (en) * 1988-02-01 1992-07-07 International Business Machines Corporation System and method for simulating the I/O of a processing system
US4951195A (en) * 1988-02-01 1990-08-21 International Business Machines Corporation Condition code graph analysis for simulating a CPU processor
JPH01248256A (ja) * 1988-03-30 1989-10-03 Toshiba Corp 入出力制御方式
JPH01273136A (ja) * 1988-04-26 1989-11-01 Oki Electric Ind Co Ltd オペレーティングシステムのファームウェア化方式
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5283868A (en) * 1989-05-17 1994-02-01 International Business Machines Corp. Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5369767A (en) * 1989-05-17 1994-11-29 International Business Machines Corp. Servicing interrupt requests in a data processing system without using the services of an operating system
US5369749A (en) * 1989-05-17 1994-11-29 Ibm Corporation Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5325517A (en) * 1989-05-17 1994-06-28 International Business Machines Corporation Fault tolerant data processing system
US5210854A (en) * 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
US5093776A (en) * 1989-06-15 1992-03-03 Wang Laboratories, Inc. Information processing system emulation apparatus and method
JP2590267B2 (ja) * 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5283889A (en) * 1989-12-29 1994-02-01 Zenith Data Systems Corporation Hardware based interface for mode switching to access memory above one megabyte
GB2240861A (en) * 1990-02-09 1991-08-14 Hewlett Packard Co Apparatus and method for adapting computer program from one operating environment to another
US5305436A (en) * 1990-04-02 1994-04-19 Hewlett-Packard Company Hose bus video interface in personal computers
US5038279A (en) * 1990-05-22 1991-08-06 Lexmark International, Inc. Direct hot-keying with reset of printer parameters for a secondary application including a typewriter emulator
US5251314A (en) * 1990-06-07 1993-10-05 International Business Machines Corporation System for converting from one document type to a plurality of document types allowing accurate reversal therefrom using tables containing indications regarding non-transformable elements
AU8966391A (en) * 1990-12-24 1992-06-25 Ball Corporation System for analysis of embedded computer systems
WO1992012480A1 (en) * 1991-01-09 1992-07-23 Verifone, Inc. Transaction system emulator
JP2753500B2 (ja) * 1991-03-07 1998-05-20 ディジタル インイプメント コーポレイション 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
MX9200935A (es) * 1991-03-07 1993-03-01 Digital Equipment Corp Sistema y metodo para detectar llamadas de instruccion de dominio cruzado en un sistema de computadora
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
JPH0561821A (ja) * 1991-07-30 1993-03-12 Canon Inc データ転送方法
US5365606A (en) * 1991-11-27 1994-11-15 Visystems, Inc. Virtual software machine running multiple program modules in a single address space of a target computer
JPH0773046A (ja) * 1992-12-07 1995-03-17 Intel Corp コンピュータシステムで回路をエミュレートする 方法及び装置
CN1042440C (zh) * 1993-03-05 1999-03-10 旭化成工业株式会社 偏氯乙烯共聚物组合物
WO1994027215A1 (en) * 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding guest instructions for a host computer
WO1994027214A1 (en) * 1993-05-07 1994-11-24 Apple Computer, Inc. Method for decoding sequences of guest instructions for a host computer
US5381541A (en) * 1993-05-26 1995-01-10 International Business Machines Corp. Computer system having planar board with single interrupt controller and processor card with plural processors and interrupt director
US5768598A (en) * 1993-09-13 1998-06-16 Intel Corporation Method and apparatus for sharing hardward resources in a computer system
US5515525A (en) * 1993-09-28 1996-05-07 Bull Hn Information Systems Inc. Emulating the memory functions of a first system on a second system
US5619682A (en) * 1993-09-28 1997-04-08 Bull Hn Information Systems Inc. Executing network layered communications of a first system on a second system using a communication bridge transparent to the different communication layers
US5983012A (en) * 1993-09-28 1999-11-09 Bull Hn Information Systems Inc. Executing programs of a first system on a second system
JPH07334372A (ja) * 1993-12-24 1995-12-22 Seiko Epson Corp エミュレートシステム及びエミュレート方法
US5678059A (en) * 1994-02-18 1997-10-14 Lucent Technologies Inc. Technique for time-sharing a microprocessor between a computer and a modem
US6763454B2 (en) * 1994-05-27 2004-07-13 Microsoft Corp. System for allocating resources in a computer system
US5787246A (en) * 1994-05-27 1998-07-28 Microsoft Corporation System for configuring devices for a computer system
US5970237A (en) * 1994-06-14 1999-10-19 Intel Corporation Device to assist software emulation of hardware functions
JP2734992B2 (ja) * 1994-07-25 1998-04-02 日本電気株式会社 情報処理装置
US5673418A (en) * 1994-10-07 1997-09-30 Bull Hn Information Systems Inc. Method and apparatus for emulating the operations of an emulated system terminal driver on a host system
US5732279A (en) * 1994-11-10 1998-03-24 Brooktree Corporation System and method for command processing or emulation in a computer system using interrupts, such as emulation of DMA commands using burst mode data transfer for sound or the like
US5680592A (en) * 1995-04-14 1997-10-21 Nvidia Corporation System using a plurality of state machines for translating commands intended for legacy bus devices to commands for local bus devices
JP2625402B2 (ja) * 1995-05-24 1997-07-02 日本電気株式会社 マイクロプロセッサ
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5909582A (en) * 1996-04-26 1999-06-01 Nec Corporation Microcomputer having user mode interrupt function and supervisor mode interrupt function
US6564241B1 (en) * 1996-05-14 2003-05-13 L-3 Communications Corporation Avionic computer software interpreter
US6061047A (en) * 1996-09-17 2000-05-09 Chips & Technologies, Inc. Method and apparatus for clipping text
US5968139A (en) * 1996-11-25 1999-10-19 Micron Electronics, Inc. Method of redirecting I/O operations to memory
US5930495A (en) * 1997-01-13 1999-07-27 International Business Machines Corporation Method and system for processing a first instruction in a first processing environment in response to intiating processing of a second instruction in a emulation environment
US6687858B1 (en) 2000-05-16 2004-02-03 Phillip M. Adams Software-hardware welding system
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7113904B2 (en) * 2001-03-30 2006-09-26 Park City Group System and method for providing dynamic multiple language support for application programs
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US6691181B2 (en) 2001-10-09 2004-02-10 Phillip M. Adams Programmatic time-gap defect detection apparatus and method
US7472207B2 (en) * 2001-10-09 2008-12-30 Aftg-Tg, L.L.C. Optimized-incrementing, time-gap defect detection apparatus and method
US6842802B2 (en) 2001-11-30 2005-01-11 Aftg-Tg, L.L.C. Programmatic time-gap defect correction apparatus and method
US7694025B1 (en) * 2006-03-31 2010-04-06 Integrated Device Technology, Inc. Method and device for base address sorting and entry into base address registers
US7647438B1 (en) 2006-05-09 2010-01-12 Integrated Device Technology, Inc. Binary base address sorting method and device with shift vector
US7779197B1 (en) 2006-05-09 2010-08-17 Integrated Device Technology, Inc. Device and method for address matching with post matching limit check and nullification
US8166244B2 (en) * 2010-03-12 2012-04-24 Sandisk Il Ltd. Emulating a computer system on a removable storage device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938101A (en) * 1973-12-26 1976-02-10 International Business Machines Corporation Computer system with post execution I/O emulation
US3955180A (en) * 1974-01-02 1976-05-04 Honeywell Information Systems Inc. Table driven emulation system
US4377852A (en) * 1980-03-31 1983-03-22 Texas Instruments Incorporated Terminal emulator
JPS56145416A (en) * 1980-04-15 1981-11-12 Toshiba Corp Channel control system
US4370709A (en) * 1980-08-01 1983-01-25 Tracor, Inc. Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases
JPS5740789A (en) * 1980-08-22 1982-03-06 Mitsubishi Electric Corp Virtual processing system of auxiliary storage device

Also Published As

Publication number Publication date
AU4457185A (en) 1986-01-16
EP0168034A3 (en) 1989-07-12
EP0168034A2 (en) 1986-01-15
US4727480A (en) 1988-02-23
EP0168034B1 (en) 1993-10-13
CA1232690A (en) 1988-02-09
AU588815B2 (en) 1989-09-28
JPS6136848A (ja) 1986-02-21
DE3587622D1 (de) 1993-11-18
DE3587622T2 (de) 1994-05-11

Similar Documents

Publication Publication Date Title
JP2610812B2 (ja) データ処理システムのエミユレーシヨン
US4885681A (en) I/O Execution method for a virtual machine system and system therefor
EP0136666B1 (en) Partitioned multiprocessor programming system
US7275028B2 (en) System and method for the logical substitution of processor control in an emulated computing environment
US4920481A (en) Emulation with display update trapping
US4031517A (en) Emulation of target system interrupts through the use of counters
EP0093267B1 (en) Method for switching the control of central processing units in a data processing system, and apparatus for initiating the switching of cpu control
US6003112A (en) Memory controller and method for clearing or copying memory utilizing register files to store address information
US4591982A (en) Storage selection override apparatus for a multimicroprocessor implemented data processing system
US5062042A (en) System for managing data which is accessible by file address or disk address via a disk track map
US5056057A (en) Keyboard interface for use in computers incorporating terminate-and-stay-resident programs
JPH0773046A (ja) コンピュータシステムで回路をエミュレートする 方法及び装置
US5432935A (en) Emulation for executing a second language application program on a computer having a first language operating system
EP0437550B1 (en) Information processing system emulation apparatus and method
JPH03660B2 (ja)
EP0098172B1 (en) Register control processing system
EP0139254A2 (en) Apparatus and method for direct memory to peripheral and peripheral to memory data transfer
US5003468A (en) Guest machine execution control system for virutal machine system
EP1410170B1 (en) Logical substitution of processor control in an emulated computing environment
US4814977A (en) Apparatus and method for direct memory to peripheral and peripheral to memory data transfers
US6263421B1 (en) Virtual memory system that is portable between different CPU types
JPH0836485A (ja) 情報処理装置及び情報処理装置の制御方法
JPH04227547A (ja) 情報処理装置
KR20000019147A (ko) 컴퓨터의 롬 바이오스(rom bios)구동 시스템 및 그 방법
JPS61204743A (ja) マイクロ・プロセツサの割込み制御方式

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term