JPH0546406A - 仮想計算機エミユレーシヨン方式 - Google Patents

仮想計算機エミユレーシヨン方式

Info

Publication number
JPH0546406A
JPH0546406A JP3206996A JP20699691A JPH0546406A JP H0546406 A JPH0546406 A JP H0546406A JP 3206996 A JP3206996 A JP 3206996A JP 20699691 A JP20699691 A JP 20699691A JP H0546406 A JPH0546406 A JP H0546406A
Authority
JP
Japan
Prior art keywords
target machine
machine
emulator
exception
bios
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3206996A
Other languages
English (en)
Inventor
Satoru Tezuka
悟 手塚
Yoshihiro Harada
好啓 原田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP3206996A priority Critical patent/JPH0546406A/ja
Publication of JPH0546406A publication Critical patent/JPH0546406A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】ある一つのアーキテクチャ上で開発されたアプ
リケーションソフトウェアを、異なるアーキテクチャ上
で動作させることを目的とした仮想計算機エミュレーシ
ョン方式である。 【構成】例外発生を検知するハードウェア機構2,3とが
あり、ベースマシン用表示系I/O9と、ターゲットマシン
用表示系I/O6と、これらを切り換えるスイッチ7と、メ
モリマップが論理的にマッピングできるMMU11と、割込
み制御部131と、BIOSエミュレータ132と、I/Oエミュレ
ータ133と、ターゲットマシン用割込みベクトルテーブ
ル91およびターゲットマシン用BIOSデータ領域92とを含
むメモリ12とを有する。 【効果】ある一つのアーキテクチャ上で開発されたアプ
リケーションソフトウェアが、割込みベクトルテーブル
やBIOSデータ領域を直接アクセスするものであっても、
異なるアーキテクチャ上で動作できる。

Description

【発明の詳細な説明】
【産業上の利用分野】本発明は、パーソナルコンピュー
タやワークステーション等の計算機において、異なるア
ーキテクチャを持つ複数の異機種間でのアプリケーショ
ンプログラムの互換性を保つ仮想計算機エミュレーショ
ン方式に関する。
【従来の技術】従来、パーソナルコンピュータ(以下パ
ソコンと略す)などの計算機では、数多くの異なるアー
キテクチャが存在している。ここで言うアーキテクチャ
は、OSファンクション、BIOSファンクション、メモリマ
ップ、I/Oマップ、使用LSI等のことである。上記のよう
に、ソフトウェア及びハードウェアのアーキテクチャが
機種間で異なると、或る一つのアーキテクチャ上で開発
されたプログラム、例えばアプリケーションソフトウェ
ア(以下APと略す)は異なるアーキテクチャ上では動作不
可能である。つまり、異なるアーキテクチャの機種間で
プログラムの互換性がないわけである。従来、上記の問
題を解決するために、一つの方法としては、或る一つの
アーキテクチャ上で動作しているAPを異なるアーキテク
チャで動作するように変更して、対応した。また、別の
方法としては、或る一つのアーキテクチャの計算機(以
後ベースマシンと呼ぶ)上で、異なるアーキテクチャの
計算機(以後ターゲットマシンと呼ぶ)のエミュレーショ
ンを行うことによって、APの変更をせず、互換性を保
つ。以下、上記二つの方法のうち、本発明の対象を後者
のエミュレーションとする。パソコン上でエミュレーシ
ョンを実現する場合、従来のエミュレーション方式は、
APの作られ方により、以下の二つのレベルに分けられ
る。 (1) OSファンクションコールとBIOSファンクションコー
ルを使ったAP(以後レベル1APと呼ぶ)のエミュレーショ
ン。 (2) 上記(1)とI/O命令を使ったAP(以後レベル2APと呼
ぶ)のエミュレーション。 上記(1)のレベル1APのエミュレーションについては、特
開昭61ー184643号公報に特権命令を用いたシステムコー
ルのエミュレーション方式が開示されている。 上記(2)のレベル2APのエミュレーションについては、I/
Oをソフトウェアによってエミュレーションする方式
が、特開昭62-279431号公報に開示されている。また特
に、パソコンでは、処理を高速に行うため、表示制御部
I/OをAPが直接アクセスする場合が一般的であるので、
ターゲットマシンの表示制御部ハードウェアをエミュレ
ーションする必要がある。該エミュレーションについて
は、一つの方式として、日経BP社発行の日経バイト誌19
87年10月号第140頁から第150頁に論じられているベース
マシンの表示制御部を用い、ターゲットマシンの表示制
御部をエミュレーションする方式がある。しかし、該方
式では、ベースマシンの表示制御部でターゲットマシン
の表示制御部をエミュレーションする訳で、実現できる
機能がベースマシンの表示機能に限定されてしまう。該
問題を解決する一つの方式として、特願平1-166631号公
報に記載のように、ベースマシンにAPが直接アクセスす
るターゲットマシンの表示系I/Oを付加することによっ
てエミュレーションをする方式が開示されている。
【発明が解決しようとする課題】上記従来技術は、上記
(2)と割込みベクトルテーブル直接アクセスとBIOSデー
タ領域直接アクセスを使ったAP(以後レベル3APと呼ぶ)
のエミュレーションについては配慮がされておらず、以
下の点が問題であった。上記記載の特願平1-166631号公
報によるエミュレーション方式で、ターゲットマシン上
で動作するレベル3APがベースマシン上で動作している
とき、該レベル3APが割込みベクトルテーブルまたはBIO
Sデータ領域を直接アクセスしようとする場合を考え
る。このとき、該レベル3APが割込みベクトルテーブル
とBIOSデータ領域をターゲットマシンのものとしてアク
セスするのだが、実際はベースマシンの割込みベクトル
テーブルとBIOSデータ領域をアクセスすることになり、
該レベル3APが期待した処理を正しく行うことができな
い。例えば、該レベル3APがキーボード入力によるデー
タを得るとき、一つの方法として、DOSファンクション
コールやBIOSファンクションコールにより得るやり方が
ある。この場合は、上記従来技術のエミュレーション方
式で正しく該データを得ることができる。しかし、別の
方法として、BIOSデータ領域にある該データを直接アク
セスして該データを得るやり方もある。この場合は、上
記従来技術のエミュレーション方式では、BIOSデータ領
域がベースマシンのものであり、ターゲットマシンのBI
OSデータ領域とは異なるので、ターゲットマシン上で動
作する該レベル3APは正しく該データを得ることができ
ない。本発明の目的は、該レベル3APを動作できる仮想
計算機エミュレーション方式を提供することにある。
【課題を解決するための手段】上記目的を達成するため
に、計算機エミュレータを備えて、異なるアーキテクチ
ャの計算機(以下、ターゲットマシンと呼ぶ)上で動作す
るソフトウェアを動作させることができる仮想計算機エ
ミュレーション方式において、ターゲットマシン用割込
みベクトルテーブルと、ターゲットマシン用BIOSデータ
領域と、上記2つの論理アドレスを物理アドレスに変換
するメモリ管理機構とを備えたこととしたものである。
【作用】本発明においては、ベースマシン上でターゲッ
トマシン用APを正しく動作させるために、メモリマップ
についてベースマシン上のシステム構成をターゲットマ
シンと互換にする。メモリマップの互換を実現するため
に、ハードウェアのメモリ管理機構の使用により、ター
ゲットマシン用割込みベクトルテーブルやターゲットマ
シン用BIOSデータ領域等のターゲットマシンのメモリマ
ップとの互換の実現を行い、ターゲットマシン用APをベ
ースマシン上で正しく動作することができる。
【実施例】以下、図面を用いて本発明の実施例を説明す
る。本実施例においては、ベースマシン上でレベル1か
らレベル3までのターゲットマシン用APを正しく動作さ
せるために、以下の点についてベースマシン上のシステ
ム構成をターゲットマシンと互換にする。 (1) メモリマップ、(2) I/Oマップ並びにI/O I/F、(3)
DOS I/F、(4) BIOS I/F上記(1)から(4)の互換を実現す
るために、 (1)に対しては、ハードウェアで実現したメモリ管理機
構の使用により、ターゲットマシン用割込みベクトルテ
ーブルやターゲットマシン用BIOSデータ領域等のターゲ
ットマシンのメモリマップとの互換の実現。 (2)に対しては、ターゲットマシン用表示系I/Oをベース
マシンに付加する。さらに、ターゲットマシン用I/O I/
FのI/Oエミュレータを備えることにより、ターゲットマ
シンのI/OマップとI/O I/Fとの互換の実現。 (3)に対しては、ターゲット用DOSを使用することによ
り、ターゲットマシンのDOS I/Fとの互換の実現。 (4)に対しては、ターゲットマシン用BIOS I/FのBIOSエ
ミュレータを備えることにより、ターゲットマシンのBI
OS I/Fとの互換の実現。 を行い、ターゲットマシン用APをベースマシン上で正し
く動作することができる。 以上のように、本実施例の
ベースマシンのハードウェア構成は、割込み発生および
I/Oアクセスの検出機構と、ベースマシン上にターゲッ
トマシン用表示系I/Oとを具備し、さらに、物理メモリ
マップを論理メモリマップにマッピングするメモリ管理
機構を備えたものである。そして、上記メモリ管理機構
を使い、ベースマシン上の物理メモリアドレスをターゲ
ットマシン上のメモリマップと互換な論理メモリマップ
を実現するものである。さらに、ターゲットマシン用AP
と、DOSファンクションコール、BIOSファンクションコ
ール、I/OアクセスとのI/Fを、ターゲットマシン用のI/
Fと互換としたシステム構成をとることにより、ターゲ
ットマシン用APがDOSファンクションコールやBIOSファ
ンクションコールまたはI/Oアクセスを発行したとき、
ハードウェアが例外を発生させる機構を有するものと
し、該例外をきっかけとして、計算機エミュレータが制
御を行い、ベースマシン上でターゲットマシン用APを正
しく動作させるものである。なお、該計算機エミュレー
タは、割込み制御部、BIOSエミュレータ、I/Oエミュレ
ータ、ターゲットマシン用割込みベクトルテーブル、タ
ーゲット用BIOSデータ領域を有するものである。図1
は、以上の実施例を具体的に示したベ-スマシンのブロ
ック図である。本ブロック図において、1はCPU(コント
ロール プロセッシングユニット)であり、2は割込み検
出器で、すべての割込みに対して例外信号4をCPU1に出
力し、3は、例外を発生させる手段であるI/Oアクセス検
出器で、全てのI/Oアドレスの内、例外信号4を出力する
ように指定されたI/Oアドレスにたいしてのみ例外信号4
をCPU1に出力する。CPU1に例外信号4が入力されると計
算機エミュレータ13が起動される。5はベースマシン用
表示系I/O、6はターゲットマシン用表示系I/Oで、7はス
イッチを表す。このスイッチはベースマシン用表示系I/
O5とターゲットマシン用表示系I/O6の切り換えを行い、
選択された方の表示系I/Oの信号をCRT8に送る。本実施
例では、ターゲットマシン用表示系I/Oを選択した場合
について述べる。9はベースマシン用の表示系以外の周
辺I/Oであり、10はシステムバスを表す。11はMMU(メモ
リ マネージメント ユニット、すなわち、メモリ管理機
構)であり、本実施例のメモリ管理をセグメント ページ
ング方式で実行している。12はメモリであり、このメモ
リ内に、計算機エミュレータ13とターゲットマシン用AP
14を置く。図2は、図1のベ-スマシンにおけるI/Oマップ
の一実施例である。20は、システムバス10から見たシス
テムI/Oマップ(物理マップ)で、21、22、23は、ベース
マシン用I/O領域であり、区別するためにI/Oアドレス00
00Hから00BFHを(A)、00C0Hから00DFHを(B)、00E0Hから0
0FFHを(C)とする。また、I/Oアドレス0CC0Hから0CDFHの
24は、図1のタ-ゲットマシン用表示系I/O6のI/O領域を
示す。30は、CPU1から見たCPUアクセスI/Oマップ(論理
マップ)で、31は、I/Oアドレス0000Hから00BFHのベース
マシン用I/O(A)、32は、I/Oアドレス00C0Hから00BFHの
ターゲットマシン用I/O、33は、ベースマシン用I/O(c)
を表す。ここで、ターゲットマシン用I/O32のI/Oアドレ
スは、ターゲットマシンのI/Oアドレスと同じである。
次に、34は、ベースマシン用I/O(A)31のイメージで、I/
Oアドレス0C00Hから0CBFHに表れる。同様に、35は、ベ
ースマシン用I/O(B) 32のイメージで、I/Oアドレス0CC0
Hから0CDFHに表れ、36は、ベースマシン用I/O(C)33のイ
メージで、I/Oアドレス0CC0Hから0CFFHに表れる。ここ
で、CPU1のアクセスにおけるCPUアクセスI/Oマップ30の
ターゲットマシン用I/O32のI/Oアドレス00C0Hから00DFH
は、システムI/Oマップ20のターゲットマシン用表示系I
/O24のI/Oアドレス0C00Hから0CDFHに変換される。該変
換は、ハードウェアによるI/Oアドレス変換である。さ
らに、該変換により該CPUアクセスI/Oマップ30の該ター
ゲットマシン用表示系I/O 32と重なってしまった該シス
テムI/Oマップ20のベースマシン用I/O(B) 22は、CPU 1
からCPUアクセスI/Oマップ30のベースマシン用I/O(B)イ
メージ35をアクセスすることで実現できる。該変換
は、、例えばI/Oアドレスを12ビットアドレスとする
と、CPUアクセスI/Oマップ30のI/Oアドレス0C00Hから0C
FFHの範囲は、システムI/OマップのI/Oアドレス0000Hか
ら00FFHに変換される。これは、、ビット10、11の値が
無視され上記のようにI/Oアドレスが変換されることに
よる。上記構成のベースマシン上で、ターゲットマシン
用APを動作させるエミュレーション方式を以下に示す。
図3は、計算機エミュレータとそれとI/Fする部分の構成
図である。14は、ターゲットマシン用APである。13は、
図1で示した計算機エミュレータで、この中に割込み制
御部131、BIOSエミュレータ132、I/Oエミュレータ133が
ある。40は、ターゲットマシン用OS、41は、ターゲット
マシン用ドライバである。32は、図2で示したターゲッ
トマシン用表示系I/Oに対応するターゲットマシン用表
示系I/Oポ−ト、37は、図2で示したベースマシン用I/O
31、33、34、35、36に対応するベースマシン用I/Oポ−
トである。24は、図2で示したターゲットマシン用表示
系I/Oに対応するターゲットマシン用表示系I/Oハ−ドウ
エア、25は、べースマシン用I/O 21、22、23に対応する
べースマシン用I/Oハ−ドウエアである。50から61は、
インタフェース(以下、I/Fと記す)を表す(以後、番号の
みで記す)。上記構成でのターゲットマシン用APの動作
を以下に示す。ターゲットマシン用AP14がINT命令を発
行すると、例外が発生し、51より割込み制御部へ制御が
移る。割込み制御部131では、対応する処理へ制御を渡
す。OSに対するINT命令の時、52、ターゲットマシン用O
S40、53、ターゲットマシン用ドライバ41を経て、54、B
IOSエミュレータ132へ制御を渡す。BIOSに対するINT命
令の時、57を通って、直接BIOSエミュレータ132へ制御
を渡す。BIOSエミュレータ132が、内部処理でターゲッ
トマシン用表示系I/OをアクセスするIN/OUT命令を発行
すると、55を通って、ターゲットマシン用表示系I/Oポ
ート32をアクセスし、内部処理でベースマシン用I/Oを
アクセスするIN/OUT命令を発行すると、56を通って、ベ
ースマシン用I/Oポート37をアクセスする。次に、ター
ゲットマシン用AP14がIN/OUT命令を発行すると、I/Oア
ドレスにより例外が発生する場合と発生しない場合があ
る。これは、計算機エミュレータ13で制御することがで
きる。該例外を発生させる理由は、I/Oエミュレータ133
に制御を渡すためである。本実施例では、例外発生の範
囲をCPUアクセスI/Oマップ30のI/Oアドレス0000Hから00
BFHと00E0Hから00FFHの範囲に指定する。これ以外のI/O
アドレス範囲では、直接CPUアクセスI/Oマップ30へアク
セスすることができる。例外発生のI/Oアドレスに対す
るIN/OUT命令の時、51を通って、割込み制御部131へ制
御が移り、58を通って、I/Oエミュレータ133へ制御が渡
る。I/Oエミュレータ133は、内部処理でベースマシン用
I/OをアクセスするIN/OUT命令を発行すると、59を通っ
て、ベースマシン用I/Oポート37をアクセスする。例外
発生のないI/Oアドレスに対するIN/OUT命令の時、50を
通って、直接ターゲットマシン用表示系I/Oポート32へ
アクセスすることができる。さらに、ターゲットマシン
用表示系I/Oポート32とベースマシン用I/Oポート37から
ターゲットマシン用表示系I/Oハードウェア24とベース
マシン用I/Oハードウェア25へのアクセス60、61は、上
記図2で説明したアドレス変換の方法に従う。また、I/F
についてみると、割込み制御部131は、I/Fをまったく変
更しない。そこで、ターゲットマシン用AP14のOSに対す
る51、52は、ターゲットマシン用OSI/Fであり、ターゲ
ットマシン用OS40で正しく処理ができ、ターゲットマシ
ン用OS40のドライバに対する53は、ターゲットマシン用
ドライバI/Fであり、ターゲットマシン用ドライバ41で
正しく処理できる。ターゲットマシン用ドライバ41のBI
OSエミュレータ132に対する54は、ターゲットマシン用B
IOS I/Fであるので、BIOSエミュレータ132のI/Fをター
ゲットマシン用BIOS I/Fにしなければならない。同様
に、ターゲットマシン用AP14のI/Oに対する58は、ター
ゲットマシン用I/O I/Fであるので、I/Oエミュレータ13
3のI/Fをターゲット用I/O I/Fにしなければならない。
該BIOSエミュレータ132と該I/Oエミュレータ133につい
ては、図4、図5を用いて説明する。図4は、BIOSエミュ
レータ132の内部構成の一実施例である。1321は、ター
ゲットマシン用BIOS I/Fであり、1322は、BIOS内部処理
である。1323は、CPUアクセスI/Oマップ30のI/Oアドレ
ス00C0Hから00DFHに対するターゲットマシン用I/O I/F
で、1324は、CPUアクセスI/Oマップ30のI/Oアドレス0C0
0Hから0CFFHに対するベースマシン用I/O I/Fである。上
記CPUアクセスI/Oマップ30のI/Oアドレス範囲(0C00Hか
ら0CFFH)は、例外を発生しない範囲である。例外発生の
ない範囲だけでI/Oアクセスを実現することは、例外発
生による処理速度の性能低下を防ぐためである。例え
ば、表示系BIOSについては、ターゲットマシン用表示系
I/O I/F1323を使い、表示系BIOS以外のディスクBIOS、
キーボードBIOS、シリアルBIOS、パラレルBIOS等につい
ては、ベースマシン用I/O I/F1324を使う。図5は、I/O
エミュレータ133の内部構成の一実施例である。1331
は、ターゲットマシン用I/O I/Fであり、1332は、I/O内
部処理、1333は、ベースマシン用I/OI/Fである。I/Oエ
ミュレータ133は、CPUアクセスI/Oマップ30のI/Oアドレ
ス0000Hから00BFHのベースマシン用I/O(A)31と00E0Hか
ら00FFHのベースマシン用I/O(C)33の範囲で例外を発生
したものに対して、エミュレーションを行う。この時、
実際にI/Oアクセスするアドレスは、例外の発生しないC
PUアクセスI/Oマップ30の範囲を使う。これは、BIOSエ
ミュレータ132の場合と同様に、例外発生のない範囲だ
けでI/Oアクセスを実現することは、例外発生による処
理速度の性能低下を防ぐためである。例えば、ターゲッ
トマシンとベースマシンのLSIチップがまったく同じで
アドレスだけが違う場合、I/O内部処理1332は、I/Oアド
レスの変換だけを行う。さらに、ビット配置が違うLSI
チップの場合、I/O内部処理1332にビット配置の変換を
行う処理も追加する。さらにまた、タイミング等違う場
合は、ソフトウェアでエミュレーション可能な範囲は、
極力エミュレーションをする。これを図6のI/O命令によ
る例外処理のフローチャートに示す。I/O命令による例
外が発生すると、70のI/O命令による例外処理に制御が
移る。71は、例外発生の命令を解析して、IN命令かOUT
命令かの判別を行う。IN命令の時、72でターゲットマシ
ン用I/Oアドレスから対応するベースマシン用I/Oアドレ
スへアドレス変換する。73でアドレス変換したベースマ
シン用I/Oに対して、IN命令を発行する。74は、得られ
たベースマシン用I/Oデータのビット配置をターゲット
マシン用I/Oのビット配置に変換する。一方、OUT命令の
時、75は、与えられたターゲットマシン用I/Oデータの
ビット配置をベースマシン用I/Oのビット配置に変換す
る。76は、72と同様にターゲットマシン用I/Oアドレス
から対応するベースマシン用I/Oアドレスへアドレス変
換する。77でアドレス変換したベースマシン用I/Oに対
して、OUT命令を発行する。78で終了する。以上の制御
方法で、ターゲットマシン用APを上記ベースマシン上で
動作させることを示したが、本発明の課題であるレベル
3APの動作についてさらに具体的に示す。図7は、上記レ
ベル3APを動作可能にするメモリマップの一実施例であ
る。80は、物理メモリマップである。物理メモリアドレ
ス000000Hから000FFFHの81と82は、それぞれベースマシ
ン用割込みベクトルテーブル、ベースマシン用BIOSデー
タ領域である。物理メモリアドレス001000Hから09FFFFH
の83、84は、それぞれターゲットマシン用OS/ドライ
バ、ターゲットマシン用AP領域である。物理アドレス0A
0000Hから0BFFFFHの85は、ターゲットマシン用VRAMであ
る。物理アドレス0F0000Hから0FFFFFHの86は、ベースマ
シン用BIOSである。物理アドレス120000Hから140000Hの
13は、計算機エミュレータである。さらに、計算機エミ
ュレータ13の内部は、計算機エミュレータの物理メモリ
マップで表す。135は、ターゲットマシン用割込みベク
トルテーブルである。134は、ターゲットマシン用BIOS
データ領域である。132は、BIOSエミュレータである。1
31は、割込み制御部である。133は、I/Oエミュレータで
ある。本発明の課題であるレベル3APを上記ベースマシ
ン上で動作させるために、上記物理メモリマップ80を、
MMU11のセグメント ページング メモリ管理方式で、論
理メモリマップ90のようにメモリ配置する。つまり、タ
ーゲットマシン用APであるレベル3APが動作するとき、
論理メモリマップ90がターゲットマシンのCPUから見た
メモリマップと同じになっていれば良い。そこで、物理
メモリマップ80のターゲットマシン用割込みベクトルテ
ーブル135とターゲットマシン用BIOSデータ領域134を論
理メモリマップ90の論理アドレス000000Hから000FFFHの
ターゲットマシン用割込みベクトルテーブル91とターゲ
ットマシン用BIOSデータ領域92にメモリ配置する。該メ
モリ配置を行うことにより、本発明の課題であるレベル
3APのターゲットマシン用割込みベクトルテーブルとタ
ーゲットマシン用BIOSデータ領域のアクセスが可能とな
り、上記ベースマシン上で動作することができる。論理
メモリマップ90の論理アドレス001000Hから0BFFFFHのタ
ーゲットマシン用OS/ドライバ83、ターゲットマシン用A
P領域84、ターゲットマシン用VRAM85は、物理メモリマ
ップ80のメモリ配置と同じである。論理メモリマップ90
の論理メモリアドレス0F0000Hから0FFFFFHの93は、BIOS
エミュレータである。これは、物理メモリマップ80のベ
ースマシン用BIOS86をレベル3APでは、一切使わないの
で、論理メモリマップ90から切り離してしまった。しか
し、物理メモリマップ80のベースマシン用BIOS86の物理
アドレス0F0000Hから0FFFFFHは、ROM領域であるので、
論理メモリマップ90の論理アドレス0F0000Hから0FFFFH
のBIOSエミュレータ93も該領域にデータを書き込みにき
た命令に対しては、例外を発生させて、例外処理の中で
該書き込みを禁止し、この命令だけをスキップして以下
の命令を続けるように制御する。これを図8のメモリ保
護による例外処理のフローチャートに示す。メモリ保護
による例外が発生すると、100のメモリ保護による例外
処理に制御が移る。101は、例外発生命令を解析する。1
02で解析した例外発生命令の実行をさせないため該命令
をスキップする。103は、スキップした命令の次の命令
を実行するために該命令へ戻る。104で終了する。次
に、例外発生における制御方法を示す。図9は、図3を例
外発生の立場から説明するために書いたものである。20
0は、APモードであり、300は、例外モードである。APモ
ード200内には、ターゲットマシン用AP 14、ターゲット
マシン用割込みベクトルテーブル210、ターゲットマシ
ン用BIOSデータ領域220、ターゲットマシン用OS/ドライ
バ42、BIOSエミュレータ132がある。一方、例外モード3
00内には、制御用割込みベクトルテーブル310、割込み
制御部131、I/Oエミュレータ133がある。ターゲットマ
シン用表示系I/Oポート32、ベースマシン用I/Oポート3
7、ターゲットマシン用表示系I/Oハードウェア24、ベー
スマシン用I/Oハードウェア25は、図3の構成と同じであ
る。400、410、420、430、440、450、460、470、480、4
90は、制御の流れを表している。ここで、ターゲットマ
シン用AP14がINT命令を発行すると、例外が発生し、AP
モード200から例外モード300に遷移する。そして、400
を経て制御用割込みベクトルテーブルから410を経て割
込み制御部131へ制御が移る。割込み制御部131では、、
ターゲットマシン用割込みベクトルテーブル210内のタ
ーゲットマシン用AP14が発行したINT命令に対応するベ
クトル値より該当処理へ制御を移す。この制御の流れが
420と430または、440である。この時、420で例外モード
300からAPモード200へ遷移する。450、460、470、480、
490は、図3で説明した54、55、56、60、61に対応する。
さらに、図9の制御を詳しく説明したのが図10である。2
00は、APモード、300は、例外モードである。APモード2
00内には、ターゲットマシン用AP14、BIOSエミュレータ
内割込み処理ルーチン230、ターゲットマシン用割込み
ベクトルテーブル210、APモ-ド用スタック240(例外発生
アドレス情報を記憶する手段である)がある。211は、タ
ーゲットマシン用割込みベクトルテーブル210に登録さ
れているBIOSエミュレータ内割込み処理ルーチン230の
論理メモリアドレスBBBBである。241は、ターゲットマ
シン用AP 14の戻り論理メモリアドレスAAAAである。例
外モード300内には、割込み制御部内例外処理330、例外
モード用スタック320(例外発生アドレス情報を記憶する
手段である)がある。321は、戻り論理メモリアドレスAA
AAとBIOSエミュレータ内割込み処理ルーチン230の論理
メモリアドレスBBBBが格納される領域である。322は、A
Pモード用スタック論理メモリアドレスCCCC格納領域で
ある。323は、必要なレジスタ退避領域である。ここ
で、図9と同様にターゲットマシン用APがINT命令を発行
すると、例外が発生しAPモード200から例外モード300へ
遷移する。該例外に対応する制御用割込みベクトルテー
ブル310の該当ベクトル値より、割込み制御部内例外処
理330へ制御が移る。この時の例外モード用スタック320
の状態は、321に戻り論理メモリアドレスAAAAの格納、3
22にAPモード用スタック論理メモリアドレスCCCC、323
に必要レジスタ退避が行われている。割込み制御部内例
外処理330では、図11の割込み制御部内例外処理のフロ
ーチャートで処理を説明する。図11の500は、割込み制
御部内例外処理を表す。510では、例外モード用スタッ
ク320の321より戻り論理メモリアドレスAAAAとフラグレ
ジスタの値を得て、論理メモリアドレスCCCCのAPモード
用スタック240にこれらの値を積む。図10では、、該処
理が700にあたる。次に520では、ターゲットマシン用割
込みベクトル210から211のBIOSエミュレータ内割込み処
理ルーチン230の論理メモリアドレスBBBBを得て、例外
モード用スタック320内の321にコピーする。図10では、
該処理が710にあたる。そして、現モードが例外モード
であるので該例外モード用スタック320を使ってリター
ンする。このリターンにより、例外モード300からAPモ
ード200に遷移し、BIOSエミュレータ内割込み処理ルー
チン230に制御が移る。該BIOSエミュレータ処理ルーチ
ン230の処理が終わり、リターンする時、現在のモード
がAPモードであるので該APモード用スタック240を使っ
てリターンする。この時、241に入っている戻り論理メ
モリアドレスは、ターゲットマシン用AP14のAAAAである
から、制御がターゲットマシン用AP14に戻る。つまり、
制御の流れは、400、401、402、403となる。以上がター
ゲットマシン用OS/ドライバとBIOSエミュレータの処理
における例外発生の制御方法の詳細である。さらに、図
12にI/Oエミュレータ処理における例外発生の制御方法
を示す。図12は、図9とまったく同様のものであるの
で、同じところについては、説明を省略する。ターゲッ
トマシン用AP14がIN/OUT命令を発行すると、例外が発生
してAPモード200から例外モード300に遷移し、INT命令
の時と同様に600、610の制御の流れで割込み制御部へ制
御を移す。この後、INT命令とは違い、対応するI/Oエミ
ュレータに制御を移し、その後は、図3で説明した制御
の流れ630と640となる。次に、図13では、ターゲットマ
シン用APが本発明の課題であるレベル3APであるとき、
該レベル3APが直接ターゲットマシン用割込みベクトル
テーブル210または、ターゲットマシン用BIOSデータ領
域220をアクセスする場合である。これに対しては、図7
の論理メモリマップの環境でレベル3APが動作できるの
で、図13の700と710の方法で簡単にアクセスすることが
できる。本発明は、例えばCPUとして、80386(80386
は、インテル社の登録商標である)を使用して実現する
ことができる。 本発明は、以上のように構成されてい
るので以下に示す効果を奏する。ベースマシン上の物理
メモリマップをターゲットマシンと互換の論理メモリマ
ップにマッピングすることにより、ターゲットマシン用
APが割込みベクトルテーブルやBIOSデータ領域を直接ア
クセスしても動作することができる。ターゲットマシン
用APから見たベースマシン上のOS I/F、BIOS I/F、I/O
I/Fをそれぞれターゲットマシン用OS、BIOSエミュレー
タ、I/Oエミュレータで実現することにより、ベースマ
シン上でターゲットマシン用APが動作することができ
る。ベースマシン上の物理メモリマップをターゲットマ
シンと互換の論理メモリマップにマッピングしたとき、
書き込み禁止にしなければならない論理メモリマップが
ある。該論理メモリマップ上のRAM領域を例外処理を用
いて書き込み禁止にすることにより、ターゲットマシン
のメモリマップだけでなくメモリ保護の点からも互換に
できる。ベースマシン上の物理メモリマップをターゲッ
トマシンと互換の論理メモリマップにマッピングするこ
とにより、システムプログラムである計算機エミュレー
タをAP領域に配置しないので、ターゲットマシン用APの
動作メモリ領域を減少させない。計算機エミュレータ内
のI/Oアクセスで、例外発生の回数を減らすことによ
り、処理性能の低下を極力減らすことができる。例外発
生のI/Oアドレス範囲の適正化により、不必要な例外発
生をなくし処理性能の低下を極力減らすことができる。
【発明の効果】本発明は、以上説明したように構成され
ているので、レベル3APを動作できる仮想計算機エミュ
レーション方式を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示すハードウェアのブロッ
ク図である。
【図2】本発明の一実施例を示すI/Oマップの説明図で
ある。
【図3】本発明の一実施例を示すタ−ゲットマシン用AP
の動作説明図である。
【図4】本発明のBIOSエミュレータの構成の説明図であ
る。
【図5】本発明のI/Oエミュレータの構成の説明図であ
る。
【図6】本発明のI/O命令による例外処理のフローチャ
ートである。
【図7】本発明の一実施例を示すメモリマップの説明図
である。
【図8】本発明のメモリ保護による例外処理のフローチ
ャートである。
【図9】本発明の一実施例を示す計算機エミュレータの
制御の流れの説明図である。
【図10】本発明の計算機エミュレータにおける例外発
生の制御を示した説明図である。
【図11】本発明の割込み制御部内例外処理のフローチ
ャートである。
【図12】本発明の一実施例を示す計算機エミュレータ
の制御の流れの説明図である。
【図13】本発明の一実施例を示す計算機エミュレータ
の制御の流れの説明図である。
【符号の説明】
1 … CPU、2 … 割込み発生検出器、3 … I/Oアクセス
検出器、4 … 例外信号、5 … ベースマシン用表示系I/
O、6 … ターゲットマシン用表示系I/O、7 …スイッ
チ、8 … CRT、9 … ベースマシン用周辺I/O、10 … シ
ステムバス、11… MMU、12 … メモリ、13 … 計算機エ
ミュレータ、 14 … ターゲットマシン用AP、20 … シ
ステムI/Oマップ、30 … CPUアクセスI/Oマップ、40 …
ターゲットマシン用OS、41 … ターゲットマシン用ド
ライバ、80 … 物理メモリマップ、90 … 論理メモリマ
ップ、131 … 割込み制御部、132 … BIOSエミュレー
タ、133 … I/Oエミュレータ、200 … APモード、210
… ターゲットマシン用割込みベクトルテーブル、220
… ターゲットマシン用BIOSデータ領域、240 … APモー
ド用スタック、300 … 例外モード、310 … 制御用割込
みベクトルテーブル、320 … 例外モード用スタック。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】計算機エミュレータを備えて、異なるアー
    キテクチャの計算機(以下、ターゲットマシンと呼ぶ)上
    で動作するソフトウェアを動作させることができる仮想
    計算機エミュレーション方式において、 ターゲットマシン用割込みベクトルテーブルと、 ターゲットマシン用BIOSデータ領域と、 上記2つの論理アドレスを物理アドレスに変換するメモ
    リ管理機構とを備えたことを特徴とする仮想計算機エミ
    ュレーション方式。
  2. 【請求項2】請求項1記載の仮想計算機エミュレーショ
    ン方式において、 ターゲットマシン用表示系I/O装置を有し、 上記計算機エミュレ−タは、タ−ゲットマシンのI/Oイ
    ンタフェ−スをエミュレ−ションするI/Oエミュレータ
    を備えることを特徴とする仮想計算機エミュレーション
    方式。
  3. 【請求項3】請求項1または2記載の仮想計算機エミュ
    レーション方式において、 上記の計算機エミュレ−タは、ターゲットマシン用OSと
    インタフェ−スすることを特徴とする仮想計算機エミュ
    レーション方式。
  4. 【請求項4】請求項1、2または3記載の仮想計算機エ
    ミュレーション方式において、 上記の計算機エミュレ−タは、タ-ゲットマシンのBIOS
    のエミュレ−ションを行なうBIOSエミュレータを備える
    ことを特徴とする仮想計算機エミュレーション方式。
  5. 【請求項5】請求項1、2、3または4記載の仮想計算
    機エミュレーション方式において、 割込み命令とI/Oアクセス命令を検知し、CPUに例外を発
    生させる手段と、 例外発生アドレス情報を記憶する手段とを有し、 前記例外によって起動される例外処理では、前記例外発
    生アドレス情報を取得し、例外発生元へ戻してやること
    を特徴とする仮想計算機エミュレーション方式。
  6. 【請求項6】請求項5記載の仮想計算機エミュレーショ
    ン方式において、 指定I/Oアドレスに対するI/Oアクセス命令のみ例外を発
    生させる手段を有し、 上記BIOSエミュレータ内のI/Oアクセス命令は、例外発
    生の生じないI/Oアクセス命令を有することを特徴とす
    る仮想計算機エミュレーション方式。
JP3206996A 1991-08-19 1991-08-19 仮想計算機エミユレーシヨン方式 Pending JPH0546406A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3206996A JPH0546406A (ja) 1991-08-19 1991-08-19 仮想計算機エミユレーシヨン方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3206996A JPH0546406A (ja) 1991-08-19 1991-08-19 仮想計算機エミユレーシヨン方式

Publications (1)

Publication Number Publication Date
JPH0546406A true JPH0546406A (ja) 1993-02-26

Family

ID=16532465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3206996A Pending JPH0546406A (ja) 1991-08-19 1991-08-19 仮想計算機エミユレーシヨン方式

Country Status (1)

Country Link
JP (1) JPH0546406A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758124A (en) * 1994-11-18 1998-05-26 Seiko Epson Corporation Computer emulator
JP2010128943A (ja) * 2008-11-28 2010-06-10 Toshiba Corp 情報処理装置および情報処理装置の制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758124A (en) * 1994-11-18 1998-05-26 Seiko Epson Corporation Computer emulator
JP2010128943A (ja) * 2008-11-28 2010-06-10 Toshiba Corp 情報処理装置および情報処理装置の制御方法

Similar Documents

Publication Publication Date Title
JP2590267B2 (ja) 仮想計算機における表示制御方式
US4347565A (en) Address control system for software simulation
US4742450A (en) Method to share copy on write segment for mapped files
US5414848A (en) Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
US5832299A (en) System for emulating input/output devices utilizing processor with virtual system mode by allowing mode interpreters to operate concurrently on different segment registers
US6321314B1 (en) Method and apparatus for restricting memory access
US8127098B1 (en) Virtualization of real mode execution
US4814975A (en) Virtual machine system and method for controlling machines of different architectures
US4777589A (en) Direct input/output in a virtual memory system
US5109489A (en) I/o execution method for a virtual machine system and system therefor
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US4466056A (en) Address translation and generation system for an information processing system
JP2839201B2 (ja) 仮想計算機システム
KR101673435B1 (ko) 공동 설계 프로세서에서 격리된 실행 환경의 생성
US20020046305A1 (en) Method for effective binary translation between different instruction sets using emulated supervisor flag and multiple page tables
US8001359B2 (en) Mapping an N-bit application ported from an M-bit application to an N-bit architecture
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
JPH0816479A (ja) メモリ・アドレス空間管理
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
US6606697B1 (en) Information processing apparatus and memory control method
JP2974577B2 (ja) コンピュータシステム
JPH05151003A (ja) システム・コントロール・プログラム、及び情報処理システム
JP2005122334A (ja) メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
JP3210384B2 (ja) 異なるモードで動作する2個のプログラム・セグメント間でコンピューターがコントロールを転送することを可能にする方法及び装置
JPH0546406A (ja) 仮想計算機エミユレーシヨン方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees