JPH05216689A - コンピュータ装置およびコンピュータ装置を動作させる方法 - Google Patents

コンピュータ装置およびコンピュータ装置を動作させる方法

Info

Publication number
JPH05216689A
JPH05216689A JP4270816A JP27081692A JPH05216689A JP H05216689 A JPH05216689 A JP H05216689A JP 4270816 A JP4270816 A JP 4270816A JP 27081692 A JP27081692 A JP 27081692A JP H05216689 A JPH05216689 A JP H05216689A
Authority
JP
Japan
Prior art keywords
program
software
microprocessor
intn
instructions
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
JP4270816A
Other languages
English (en)
Inventor
J H Crawford
ジョン・エイチ・クローフォード
Donald Alpert
ドナルド・アルパート
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JPH05216689A publication Critical patent/JPH05216689A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 仮想モードで選択的に動作するソフトウエア
割り込み命令を有するコンピュータ装置を得る。 【構成】 装置は、初期に設計されたマイクロプロセッ
サのために以前に書かれたソフトウエア・プログラム
を、とくに設計されたホスト・オペレーティング・ソフ
トウエア・プログラムの下に、マルチタスキング環境に
おいて実行できるようにする仮想動作モードで動作する
ために与えられたマイクロプロセッサを含む。この装置
は、INTn命令が初期のマイクロプロセッサにより実
行されたやり方でエミュレートするために、ホスト・プ
ログラムのエミュレーション・ソフトウエアを用いて命
令を実行する手段も含む。装置に対する独特の改良とし
て、INTn命令のうちのある1つがエミュレーション
・ソフトウエアにより実行され、他のものが、与えられ
たマイクロプロセッサとそのホスト・オペレーティング
・ソフトウエアと協力して、以前に書かれたプログラム
により実行される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全体として、初期に設
計された単一プログラム・マイクロプロセッサのために
以前に書かれたソフトウエア・プログラムを、とくに設
計されたホスト・オペレーティング・ソフトウエア・プ
ログラムの下に、保護された、ページ付き、マルチタス
キング環境において実行できるようにする仮想動作モー
ドで動作するようにとくに設計された、与えられたマイ
クロプロセッサを含むコンピュータ装置に関するもので
ある。更に詳しくいえば、本発明は、与えられたマイク
ロプロセッサおよびそれのホスト・オペレーティング・
ソフトウエア・プログラムが、ソフトウエア割り込み命
令(INTn命令)が初期のマイクロプロセッサにより
実行されたであろうようなやり方をエミュレートするた
めに、前記ホスト・プログラムの部分を構成するエミュ
レーション・ソフトウエアを用いて、それらの命令を取
り扱う方法の改良に関するものである。
【0002】
【従来の技術】上の説明においては、与えられたマイク
ロプロセッサと、以前に書かれたソフトウエア・プログ
ラムと、初期に設計された単一プログラム・マイクロプ
ロセッサと、とくに設計されたホスト・オペレーティン
グ・ソフトウエア・プログラムについて述べた。本発明
の実際の実施においては、与えられたマイクロプロセッ
サはインテル・コーポレーション(Intel Cor
poration)の80386および80486(商
標)マイクロプロセッサの改良にとくに関するものであ
る本発明は両方に等しく適用できるから、以下単に38
6マイクロプロセッサと記す。初期に設計された単一に
プログラムされたマイクロプロセッサは、インテル社の
初期に設計された単一プログラム8086マイクロプロ
セッサを指す。以前に書かれたソフトウエア・プログラ
ムは8086マイクロプロセッサのために以前に書かれ
たとくにDOSプログラムを含む何種類かのプログラム
のいずれかを指す。最後に、ホスト・オペレーティング
・ソフトウエア・プログラムは、マイクロソフト(Mi
crosoft)によるWINDOWS(商標)、また
はAT&TによるUNIX(商標)システム・ソフトウ
エアのような適当な任意のホスト・オペレーティング・
システムすなわちセントラル・オペレーティング・シス
テムを指す。それらのオペレーティング・システムは、
与えられたマイクロプロセッサが前記仮想動作モードで
動作できるように、そのマイクロプロセッサに対してと
くに書かれた。以下、インテル386(および486
(商標))および8086マイクロプロセッサ、以前に
書かれたDOSプログラム、およびWINDOWSまた
はUNIXオペレーティング・システムに関連して説明
するが、本発明はそれら特定のマイクロプロセッサ、以
前に書かれたそれらのソフトウエアプログラム、または
それら特定の中央オペレーティング・システムに限定さ
れるものではない。それらを念頭において、8086お
よび386マイクロプロセッサの歴史について以下に簡
単に述べることにする。それらのマイクロプロセッサは
本発明にとくに関連するから、それらのマイクロプロセ
ッサのより詳しい説明については、この明細書の実施例
についての項で行うことにする。
【0003】インテル社の初期の8086マイクロプロ
セッサは非常に成功したので、多くのソフトウエア・プ
ログラムが書かれた、と率直に述べることができる。し
かし、このマイクロプロセッサが以後の改良されたマイ
クロプロセッサのシリーズの最初のものであったにして
も、限界があった。当時は必ずしも制約であるとは見な
されていなかった、1つの制約はとくに、1度に2つ以
上のソフトウエア・プログラムをマイクロプロセッサが
取り扱うことができないことであった。もちろん、これ
はプログラム自体を保護された、ページ付き、マルチタ
スク環境で実行すべきでなかったことを意味していた。
しかし、技術の発展につれて、インテル社は前記のよう
に、WINDOWSまたはUNIXのようなより高度の
中央オペレーティング・システムを用いて、いくつかの
プログラムを実行できる386マイクロプロセッサを開
発した。同時に、386マイクロプロセッサは、初期の
8086マイクロプロセッサのために以前に書かれたマ
ルチ・ソフトウエア・プログラムを使用できるように
し、かつとくに、より高度の中央オペレーティング・シ
ステムの下に保護された、ページ付き、マルチタスクの
環境で実行できるようにする仮想8086動作モードで
動作するように設計されたものである。しかし、それら
初期のソフトウエア・プログラムはそのようにして実行
することを意図したものではなかった。それら初期のプ
ログラムは極めて多く存在していたので、それらを陳腐
なものとすることはできなかった。したがって、808
6マイクロプロセッサの後継機種を変更する時は、初期
の8086ソフトウエアに対するコンパチビリティが常
に考慮された。
【0004】インテルの現在のマイクロプロセッサと初
期に書かれたソフトウエアの間のコンパチビリティは大
変重要であるが、この目標がコンピュータ装置全体の他
のある動作面と妥協するような場合がある。それは、ソ
フトウエア割り込み命令(INTn)の実行における場
合である。後で詳しく説明するように、386マイクロ
プロセッサは、INTn命令が初期の8086マイクロ
プロセッサにより実行されたであろうようなやり方をエ
ミュレートするために、ホストプログラムの部分を形成
するエミュレーション・ソフトウエアを用いて全てのI
NTn命令を実行するように設計されていた。それら特
定の命令の実行回数はエミュレーションにより実行され
る全命令の比較的低い割合を占めるがそれらの命令は比
較的長い実行時間を占める。この問題を解決するために
これまで提案されている1つの特定の技術は、エミュレ
ーション・ソフトウエアを用いることなしに、すなわ
ち、ホストオペレーティング・プログラムのエミュレー
ション・ソフトウエアすなわちエミュレータにおけるI
NTn命令をトラップすることなしに、マイクロプロセ
ッサおよびそれのホストオペレーティング・プログラム
とともに、全てのINTn命令をソフトウエア・プログ
ラム自体により実行できるようにすることである。この
従来の手法は、(システム全体の)処理時間と、とくに
特定のINTn命令が、たとえば一時質問するという簡
単なもの、または、たとえばキャラクタを印刷するとい
う多少複雑であるものである場合のエミュレーション時
間を短縮することを発明者は見出した。しかし、より複
雑なINTn命令、たとえばファイル呼出し命令の場合
には、それら特定の命令をエミュレーション・ソフトウ
エアに捕え、かつエミュレーション・ソフトウエアによ
り実行できるようにすることがより効率的であることも
わかった。
【0005】
【発明が解決しようとする課題】本発明の目的は、前記
のような種類のコンピュータ装置によりINTn命令を
実行するために要する時間を実際に短くすることであ
る。
【0006】
【課題を解決するための手段】後でわかるように、初期
に設計された単一プログラム・マイクロプロセッサ、た
とえば、8086マイクロプロセッサ、のために以前に
書かれたソフトウエア・プログラム、たとえば、DOS
プログラムを、とくに設計されたホスト・オペレーティ
ング・ソフトウエア・プログラム、たとえば、WIND
OWS、またはUNIXの下に、保護された、ページ付
き、マルチタスキング環境において実行できるようにす
る仮想動作モードで動作するためにとくに設計された与
えられたマイクロプロセッサ、たとえば、386マイク
ロプロセッサを含むコンピュータ装置をここに開示す
る。この装置は、INTn命令が前記初期のマイクロプ
ロセッサにより実行されたであろうようなやり方でエミ
ュレートするために、前記与えられたマイクロプロセッ
サおよび前記ホスト・オペレーティング・ソフトウエア
・プログラムの部分を成し、前記ホスト・プログラムの
部分を構成するエミュレーション・ソフトウエアを用い
て前記命令を実行する手段も含む。
【0007】全体としてコンピュータ装置、およびとく
にエミュレーション・ソフトウエアが、コンピュータ装
置の仮想動作モード中に、INTn命令を実行するため
に要する時間を短縮するために、INTn命令のうちの
ある1つを、前記エミュレーション・ソフトウエアによ
り実行させ、一方、INTn命令のうちの別のあるもの
を、エミュレーション・ソフトウエアではなくて、以前
に書かれたプログラムにより実行させる手段が設けられ
る。ここで開示する特定の実施例においては、全体の装
置には一連のビットを含むビットマップが設けられる。
そのビット列の各1ビットは各前記INTn命令に対応
する。各それらビットはエミュレーティング第1の状
態、または非エミュレーティング第2の状態とのいずれ
かに置かれる。ビットマップのエミュレーティング第1
の状態に関連させられたINTn命令の全てを、エミュ
レーション・ソフトウエアではなくて、ホスト・オペレ
ーティング・ソフトウエア・プログラム内の与えられた
ソフトウエアと協力して、以前に書かれたプログラムに
捕らえさせ、かつ以前に書かれたプログラムにより実行
できるようにする。言い換えると、本発明は、INTn
命令の全てではなく、いくつかをエミュレータから取る
ものである。そのようにして、エミュレートすべき命令
およびエミュレートすべきでない命令を、全ての命令を
実行するために要する時間をできるだけ短くするよう
に、特定の命令の複雑さに応じて、予め選択できる。こ
れは、第1に、全てのINTn命令をエミュレーション
により実行する既存の386マイクロプロセッサを含む
コンピュータ装置と対照的であり、第2に、全てのIN
Tn命令をエミュレーションにより実行しない386マ
イクロプロセッサに対して以前に提案された変更とは対
照的である。本発明は、INTn命令の実行に関してそ
れらのやり方の両方のうちの最上のものを提供するもの
である。
【0008】
【実施例】まず、初期の8086マイクロプロセッサを
含む従来のコンピュータ装置のある面の線図である図1
を参照する。このコンピュータ装置の全体は参照番号1
0で示されている。この特定のコンピュータ装置はいく
つかの構成部品(図示せず)を含むが、INTnレジス
タ14と、1つのDOSソフトウエア・プログラム16
と、いくつかの周辺装置18,20,22とを有する8
086マイクロプロセッサ12を含むものとしてとくに
示されている。I/O周辺装置は、それぞれ、たとえ
ば、モニタ、ディスクドライブ、キーボードであるが、
本発明はそのような特定のI/O装置に限定されるもの
ではない。INTnレジスタ14は、問題である特定の
INTn命令に応じて種々の実行アドレスを含むアドレ
ス・テーブル(図示せず)と通信する。コンピュータ装
置10には256個の可能なINTn命令0〜255が
ある。各命令はテーブルを索引するための特定のオペラ
ンドにより特徴づけられる。DOS割り込みベクトルの
例には下記のものが含まれる。
【0009】 MS−DOS 終了プロセス、 MS−DOS 機能ディスパッチャ、 MS−DOS 終了アドレス、 MS−DOS Ctrl−Cハンドラ・アドレス、 MS−DOS 臨界誤差ハンドラ・アドレス、 MS−DOS 絶対ディスク読出し、 MS−DOS 絶対ディスク書込み、 MS−DOS 終了およびステイ・レジデント、 MS−DOS アイドル割り込み、 MS−DOS 留保、 MS−DOS ネットワーク・レディレクタ、 MS−DOS 留保、 MS−DOS 多重化割り込み、 MS−DOS 留保、
【0010】コンピュータ装置10について説明した
が、次に、この装置がソフトウエア・プログラム16か
らの命令をどのようにして取扱うかについて説明するこ
とにする。たとえば、プログラム16がINTn命令I
NTn21を開始すると仮定する。オペランド21はI
NTnレジスタ14に置かれる。そのオペランドは、そ
の命令に関連する特定の実行ルーチンの初めのアドレス
を含むアドレス・テーブルを索引するために用いられ
る。これは単一DOSプログラムに関連してマイクロプ
ロセッサ・ハードウエアにより行われる。
【0011】次に図2を参照して、参照番号24で示さ
れているより進歩したコンピュータ装置について説明す
る。このコンピュータ装置24とコンピュータ装置10
の間の違いのうちで、コンピュータ装置24は386マ
イクロプロセッサ26を含み、8086マイクロプロセ
ッサのために以前に書かれたプログラムを含めた2つ以
上のソフトウエア・プログラムで同時に動作できる。も
っとも、そのようなプログラムは1つだけ、たとえばD
OSプログラム16、が示されている。多数のソフトウ
エア・プログラムで同時に動作できる性能と、8086
のソフトウエアを使用したいという希望との結果とし
て、386マイクロプロセッサは、前記したように、と
くに仮想動作モード、すなわち、8086プログラム、
たとえばDOSプログラム16を保護された、ページ付
き、マルチタスク環境においてホスト・オペレーティン
グ・システムの下で実行できるようにする動作モードに
おいて動作するように設計された。また先に述べたよう
に、1つのそのようなホスト・オペレーティング・シス
テムは、図2に32で線図的に示されている、WIND
OWSまたはUNIXプログラムである。このプログラ
ムは、初期の8086マイクロプロセッサにより実行さ
れたであろうようなやり方をエミュレートするために、
以前に書かれたプログラムからソフトウエア割り込み命
令(INTn命令)をとくに含む命令に関連するある高
感度な割り込みをエミュレーション・ソフトウエアによ
り実行するために、8086エミュレーション・ソフト
ウエア、以下、単にエミュレータと呼ぶことがある、を
含むように書かれたものである。これに関して、コンピ
ュータ装置24は、INTnレジスタ14に機能が対応
するINTnレジスタ34を含む。図示していないが、
コンピュータ装置24は、図1に示されているI/O周
辺装置のようなI/O周辺装置も含む。
【0012】コンピュータ装置24では、それの仮想動
作モードで割り込みをどのようにして取り扱うかについ
て説明する。とくに、たとえばプログラム16、によっ
て特定のINTn命令が実行されるとき、それがレジス
タ34に送られる。これから、ソフトウエア割り込み命
令はオペレーティング・プログラム32のエミュレータ
に捕えられ、それらの命令が初期の8086マイクロプ
ロセッサ12により実行されたであろうやり方をエミュ
レートするために、エミュレーション・ソフトウエアに
より実行される。全てのINTn命令はこのようにして
実行される。かなり少数のINTn命令が実行されると
考えると、比例しない長さのエミュレータの実行時間を
要することが見出されている。この問題を解決するため
に提案されている手法は、エミュレータ内へのINTn
命令の全てのトラッピングをなくすことであった。した
がって、その提案によれば、256個のINTn命令の
全てはエミュレータの外部で、すなわち、マイクロプロ
セッサ26とホストオペレーティング・プログラムに関
連して、DOSプログラム16自体により取り扱われ
る。
【0013】前記のように、全てのINTn命令をトラ
ップし、エミュレートするためには時間が非常にかかる
が、ソフトウエア・プログラム16および他の対応する
プログラムが、エミュレータの外側で全てのINTn命
令を実行できるようにすることは一層時間がかかること
がある。また、あるINTn命令が、マイクロプロセッ
サおよびホスト・オペレーティング・プログラムととも
にソフトウエア・プログラムが、エミュレータによって
は求められない追加のサブルーチンを実行することを要
求するように複雑なことがあることもそれの理由であ
る。すぐわかるように、本発明はこの問題を解消するも
のである。
【0014】次に図3を参照する。この図には本発明に
従って設計された別のコンピュータ装置36が示されて
いる。このコンピュータ装置36は、変更された386
マイクロプロセッサ26′、図3には386′マイクロ
プロセッサとして示されている、を含む。図2に示され
ている386マイクロプロセッサと同様に、このマイク
ロプロセッサ36は、たとえば、コンピュータ装置24
と同様に、DOSプログラム16を含む。以前に書かれ
た多数の8086ソフトウエア・プログラムに8086
エミュレーション・ソフトウエアを備えたとくに設計さ
れたホスト・オペレーティング・ソフトウエア・プログ
ラム32′の下で、保護された、ページ付き、マルチタ
スク環境の中で実行させる仮想動作モードで動作するよ
うにとくに設計される。コンピュータ装置36は、対応
するINTnレジスタ34を含むことも示されている。
また、コンピュータ装置10と同様に、I/O周辺装置
(図示せず)も含む。更に、コンピュータ36は、25
6個のビットの列を含むビットマップ38も含む。25
6個の各ビットは256個のINTn命令の各1つに対
応する。各ビットは、たとえば1で示される、エミュレ
ーティング第1の状態、または、たとえば0で示され
る、非エミュレーティング第2の状態のいずれかにあ
る。マイクロプロセッサ26′と、ホスト・オペレーテ
ィング・ソフトウエア・プログラム32′は、エミュレ
ーティング第1の状態に関連する全てのINTn命令を
エミュレーション・ソフトウエアにより実行させ、非エ
ミュレーティング第2の状態に関連する全てのINTn
命令を、エミュレーション・ソフトウエアによってでは
なく、マイクロプロセッサおよびホスト・オペレーティ
ング・ソフトウエア・プログラムと協力して、以前に書
かれたDOSプログラム16により実行させるように設
計される。DOSプログラム16に対応する他の各ソフ
トウエア・プログラムはそれ自身のビットマップを含む
ことができる。
【0015】ビットマップ38内のある特定のビット
が、それのエミュレーティング第1の状態または非エミ
ュレーティング第2の状態のいずれにあるかはプログラ
マにより決定され、ホスト・オペレーティング・ソフト
ウエア・プログラムに組込まれる。この決定は各INT
n命令の複雑さを基にして行われる。一般的な規則とし
て、エミュレータの外側、たとえばディスクI/O、で
実行するためにより長い時間を要する複雑な命令は、コ
ンピュータ装置24と同様にしてエミュレータ内に捕え
られることを許される。一方、より簡単なINTn命令
は、エミュレーションにより実行できるよりも速くエミ
ュレータの外側で実行できるから、マイクロプロセッサ
およびホスト・オペレーティング・プログラムと協力し
て、以前に書かれたソフトウエアにより実行される。こ
れは一般にビットマップ38内の種々のビットをセット
するための基準であるが、プログラマは他の基準を考慮
にいれることができることも明らかである。本発明のポ
イントは、プログラマへこの融通性が与えられることで
ある。
【0016】コンピュータ装置36と、それがコンピュ
ータ装置24、およびコンピュータ装置24を変更する
ための以前の提案とどのように異なるかについて説明し
たが、本発明はインテル社の386マイクロプロセッサ
およびそれの構成部品、それの486(商標)マイクロ
プロセッサ、または関連するマイクロプロセッサに限定
されるものではないが、本発明はそれらのマイクロプロ
セッサにとくに応用できることを理解すべきである。更
に、以上の説明から、本発明はINTn命令の取り扱い
にとくに関連すること、およびそれらの構成についてだ
け説明したことは明らかである。明らかに、説明した各
装置は本発明にとって特有でない他の任意の構成部品も
含む。それらの構成部品、および説明しなかったが、I
NTn命令を取り扱うために装置が動作するやり方にと
って必要な他の任意の構成部品は当業者には明らかであ
ろう。
【0017】以上、コンピュータ装置36がINTn命
令を取り扱うやり方、および従来技術より優れている点
について説明したが、ここで図4を参照する。この図は
コンピュータ装置36がINTn命令を前記のようにし
て選択的に取り扱うやり方の流れ図を示す。この流れ図
を参考にすることにより当業者は本発明を容易に実行で
きる。
【0018】図4には図3に示されているコンピュータ
装置がINTn命令を本発明に従って取り扱うやり方が
示されている。この流れ図は自明であるが、ここで簡単
に説明する。特定のINTn命令に対して行われる最初
の判定は、1と0のいずれが「n」に割り当てられたか
を判定することである。「n」が1であれば、命令はエ
ミュレーションにより実行され、プロセスは終わる。
「n」が0であれば、命令は、8086マイクロプロセ
ッサにおけるようにマイクロプロセッサ(それのマイク
ロコードを含む)により実行され、プロセスは終わる。
【図面の簡単な説明】
【図1】初期の8086マイクロプロセッサを含む従来
のコンピュータ装置のある面を線図的に示す。
【図2】エミュレーションによりINTn命令を実行す
る方法を特に示す、初期の8086マイクロプロセッサ
を含むコンピュータ装置の類似の図である。
【図3】本発明に従ってINTn命令を実行するコンピ
ュータ装置の線図的表現である。
【図4】図3に示されているコンピュータ装置が本発明
に従ってINTn命令を実行する方法を示す流れ図であ
る。
【符号の説明】
12 マイクロプロセッサ INTn レジスタ 18,20,22 周辺装置 24 コンピュータ装置

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 初期に設計された単一プログラム・マイ
    クロプロセッサのために以前に書かれたソフトウエア・
    プログラムを、とくに設計されたホスト・オペレーティ
    ング・ソフトウエア・プログラムの下に、保護された、
    ページ付き、マルチタスキング環境において実行できる
    ようにする仮想動作モードで動作するように設計された
    与えられたマイクロプロセッサと、前記与えられたマイ
    クロプロセッサおよび前記ホスト・オペレーティング・
    ソフトウエア・プログラムの部分であって、ソフトウエ
    ア割り込み命令(INTn命令)が前記初期のマイクロ
    プロセッサにより実行されたであろうようなやり方でエ
    ミュレートするために、前記ホスト・プログラムの部分
    を構成するエミュレーション・ソフトウエアを用いて前
    記命令を実行する手段とを含むコンピュータ装置におい
    て、 a)INTn命令のうちのある1つを、前記与えられた
    マイクロプロセッサおよび前記ホスト・オペレーティン
    グ・ソフトウエアと協力して、前記エミュレーション・
    ソフトウエアではなくて、前記以前に書かれたプログラ
    ムにより実行させる手段、を備えるコンピュータ装置。
  2. 【請求項2】 初期に設計された単一プログラム・マイ
    クロプロセッサのために以前に書かれたソフトウエア・
    プログラムを、とくに設計されたホスト・オペレーティ
    ング・ソフトウエア・プログラムの下に、保護された、
    ページ付き、マルチタスキング環境において実行できる
    ようにする仮想動作モードで動作するためにとくに設計
    された与えられたマイクロプロセッサと、前記与えられ
    たマイクロプロセッサおよび前記ホスト・オペレーティ
    ング・ソフトウエア・プログラムの部分であって、ソフ
    トウエア割り込み命令(INTn命令)が前記初期のマ
    イクロプロセッサにより実行されたであろうようなやり
    方でエミュレートするために、前記ホスト・プログラム
    の部分を構成するエミュレーション・ソフトウエアを用
    いて前記命令を実行する手段とを含むコンピュータ装置
    において、 a)前記INTn命令のそれぞれのために各ビットがエ
    ミュレーティングのための第1状態と非エミュレーティ
    ングのための第2状態とされる一連のビットを含むビッ
    トマップと、 b)INTn命令のうちのある1つを、前記与えられた
    マイクロプロセッサおよびホスト・オペレーティング・
    ソフトウエアと協力して、前記エミュレーション・ソフ
    トウエアではなくて、前記以前に書かれたプログラムに
    より実行する手段と、を備えるコンピュータ装置。
  3. 【請求項3】 初期に設計された単一プログラム・マイ
    クロプロセッサのために以前に書かれたソフトウエア・
    プログラムを、とくに設計されたホスト・オペレーティ
    ング・ソフトウエア・プログラムの下に、保護された、
    ページ付き、マルチタスキング環境において実行できる
    ようにする仮想動作モードで動作するためにとくに設計
    された与えられたマイクロプロセッサと、前記与えられ
    たマイクロプロセッサおよび前記ホスト・オペレーティ
    ング・ソフトウエア・プログラムの部分であって、ソフ
    トウエア割り込み命令(INTn命令)が前記初期のマ
    イクロプロセッサにより実行されたであろうようなやり
    方でエミュレートするために、前記ホスト・プログラム
    の部分を構成するエミュレーション・ソフトウエアを用
    いて前記命令を実行する手段とを含むコンピュータ装置
    を動作させる方法において、 a)前記エミュレーション・ソフトウエアにより前記I
    NTn命令のある1つを実行し、前記以前に書かれたプ
    ログラムにより、前記与えられたマイクロプロセッサお
    よびホスト・オペレーティング・ソフトウエア・プログ
    ラムと協力して前記エミュレーション・ソフトウエアで
    はなく、前記以前に書かれたプログラムによりINTn
    命令の別のあるものを実行するコンピュータ装置を動作
    させる方法。
  4. 【請求項4】 初期に設計された単一プログラム・マイ
    クロプロセッサのために以前に書かれたソフトウエア・
    プログラムを、とくに設計されたホスト・オペレーティ
    ング・ソフトウエア・プログラムの下に、保護された、
    ページ付き、マルチタスキング環境において実行できる
    ようにする仮想動作モードで動作するためにとくに設計
    された与えられたマイクロプロセッサと、前記与えられ
    たマイクロプロセッサおよび前記ホスト・オペレーティ
    ング・ソフトウエア・プログラムの部分であって、ソフ
    トウエア割り込み命令(INTn命令)が前記初期のマ
    イクロプロセッサにより実行されたであろうようなやり
    方でエミュレートするために、前記ホスト・プログラム
    の部分を構成するエミュレーション・ソフトウエアを用
    いて前記命令を実行する手段とを含むコンピュータ装置
    を動作させる方法において、 a)一連のビットを含むビットマップであって、その各
    1ビットは各前記INTn命令に対応し、各前記ビット
    がエミュレーティングのための第1の状態と、非エミュ
    レーティングのための第2の状態とのいずれかとされる
    ような前記ビットマップを供給する過程と、 b)INTn命令のうち、エミュレーティングのための
    第1の状態に関連する全ての命令を前記エミュレーショ
    ン・ソフトウエアにより実行し、INTn命令のうち、
    前記非エミュレーティングのための第2の状態に関連す
    るすべての命令を、前記与えられたマイクロプロセッサ
    および前記ホスト・オペレーティング・ソフトウエアと
    協力して、前記エミュレーション・ソフトウエアではな
    くて、前記以前に書かれたプログラムにより実行する過
    程と、を備えるコンピュータ装置を動作させる方法。
JP4270816A 1991-09-23 1992-09-16 コンピュータ装置およびコンピュータ装置を動作させる方法 Pending JPH05216689A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76398991A 1991-09-23 1991-09-23
US763,989 1991-09-23

Publications (1)

Publication Number Publication Date
JPH05216689A true JPH05216689A (ja) 1993-08-27

Family

ID=25069380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4270816A Pending JPH05216689A (ja) 1991-09-23 1992-09-16 コンピュータ装置およびコンピュータ装置を動作させる方法

Country Status (8)

Country Link
US (3) US6385718B1 (ja)
EP (1) EP0534597B1 (ja)
JP (1) JPH05216689A (ja)
KR (1) KR930006542A (ja)
CN (2) CN1071270A (ja)
AT (1) ATE192246T1 (ja)
DE (1) DE69230963T2 (ja)
SG (1) SG52380A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785886B1 (en) 1998-05-15 2004-08-31 Vmware, Inc. Deferred shadowing of segment descriptors in a virtual machine monitor for a segmented computer architecture
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US8631066B2 (en) 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE192246T1 (de) 1991-09-23 2000-05-15 Intel Corp Rechnersystem mit software- unterbrechungsbefehlen, das selektiv in einem virtuellen modus arbeitet
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US6253317B1 (en) * 1997-01-09 2001-06-26 Sun Microsystems, Inc. Method and apparatus for providing and handling traps
US6775780B1 (en) * 2000-03-16 2004-08-10 Networks Associates Technology, Inc. Detecting malicious software by analyzing patterns of system calls generated during emulation
SE519869C2 (sv) * 2000-12-01 2003-04-15 Saab Ab Datoranordning och förfarande för exekvering av programvaror av olika kritikalitet
US6907519B2 (en) * 2001-11-29 2005-06-14 Hewlett-Packard Development Company, L.P. Systems and methods for integrating emulated and native code
US20040267998A1 (en) * 2003-06-26 2004-12-30 Zimmer Vincent J Method to support legacy and native mode interrupts with multiplexed execution of legacy and native interrupt service
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
CN101167296B (zh) * 2005-04-22 2012-09-26 微软公司 受保护计算环境的可更新和可个性化元件
US7444449B2 (en) * 2006-02-09 2008-10-28 Sony Ericsson Mobile Communications Ab Method, computer program product and computer system for controlling execution of an interruption routine
DE102007015507B4 (de) * 2007-03-30 2010-09-02 Advanced Micro Devices, Inc., Sunnyvale Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb
US9037768B2 (en) 2008-04-28 2015-05-19 Hewlett-Packard Development Company, L.P. Virtual-interrupt-mode interface and method for virtualizing an interrupt mode
US10521231B2 (en) * 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
RU2514142C1 (ru) * 2012-12-25 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ повышения эффективности работы аппаратного ускорения эмуляции приложений

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
JPS58102381A (ja) * 1981-12-15 1983-06-17 Nec Corp バツフアメモリ
JPS6017539A (ja) * 1983-07-11 1985-01-29 Hitachi Ltd エミユレ−シヨン方式
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
US4739475A (en) * 1983-09-20 1988-04-19 Mensch Jr William D Topography for sixteen bit CMOS microprocessor with eight bit emulation and abort capability
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US5282269A (en) * 1985-09-27 1994-01-25 Oce-Nederland B.V. Raster image memory
US4761737A (en) * 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5109329A (en) * 1987-02-06 1992-04-28 At&T Bell Laboratories Multiprocessing method and arrangement
US5003466A (en) * 1987-02-06 1991-03-26 At&T Bell Laboratories Multiprocessing method and arrangement
US5132971A (en) * 1987-02-06 1992-07-21 Anritsu Corporation In-circuit emulator
DE3788877T2 (de) * 1987-03-24 1994-06-23 Insignia Solutions Ltd Einrichtung zur software-emulation.
US4928237A (en) * 1987-03-27 1990-05-22 International Business Machines Corp. Computer system having mode independent addressing
ATE134779T1 (de) * 1987-06-12 1996-03-15 Bmc Software Inc Supervisorverfahren für ein rechnerbetriebssystem
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
US5018062A (en) * 1987-10-23 1991-05-21 A.I. Architects, Inc. Method and apparatus for overriding a ROM routine in response to a reset
JP2635057B2 (ja) * 1987-11-04 1997-07-30 株式会社日立製作所 マイクロプロセッサ
US4875639A (en) * 1988-07-26 1989-10-24 Zebco Corporation Depth setting device for a spinning reel
US5125087A (en) * 1988-11-07 1992-06-23 Microsoft Corporation Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register
US5027644A (en) * 1990-03-09 1991-07-02 Institute Of Gas Technology Method and apparatus for injecting acoustic signals into live gas mains
AU634431B2 (en) * 1990-11-27 1993-02-18 Kabushiki Kaisha Toshiba Japanese emulator
ATE192246T1 (de) * 1991-09-23 2000-05-15 Intel Corp Rechnersystem mit software- unterbrechungsbefehlen, das selektiv in einem virtuellen modus arbeitet
US5392408A (en) * 1993-09-20 1995-02-21 Apple Computer, Inc. Address selective emulation routine pointer address mapping system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785886B1 (en) 1998-05-15 2004-08-31 Vmware, Inc. Deferred shadowing of segment descriptors in a virtual machine monitor for a segmented computer architecture
US8631066B2 (en) 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US9323550B2 (en) 1998-09-10 2016-04-26 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism

Also Published As

Publication number Publication date
CN1071270A (zh) 1993-04-21
EP0534597B1 (en) 2000-04-26
DE69230963D1 (de) 2000-05-31
KR930006542A (ko) 1993-04-21
US20020120434A1 (en) 2002-08-29
ATE192246T1 (de) 2000-05-15
US6385718B1 (en) 2002-05-07
EP0534597A2 (en) 1993-03-31
SG52380A1 (en) 1998-09-28
DE69230963T2 (de) 2000-12-07
US20050091480A1 (en) 2005-04-28
CN100351790C (zh) 2007-11-28
EP0534597A3 (en) 1993-12-01
US7010671B2 (en) 2006-03-07
CN1514364A (zh) 2004-07-21

Similar Documents

Publication Publication Date Title
JPH05216689A (ja) コンピュータ装置およびコンピュータ装置を動作させる方法
US4974159A (en) Method of transferring control in a multitasking computer system
EP0192924B1 (en) Device driver and adapter binding technique
US7657888B2 (en) Method for forking or migrating a virtual machine
US4819234A (en) Operating system debugger
US5129064A (en) System and method for simulating the I/O of a processing system
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
JP2008510238A (ja) オペレーティングシステム
JPS6017539A (ja) エミユレ−シヨン方式
JPS6275735A (ja) エミユレ−シヨン方法
EP0822486B1 (en) Emulation of asynchronous signals using a branch mechanism
US6871173B1 (en) Method and apparatus for handling masked exceptions in an instruction interpreter
JPH06242987A (ja) コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置
KR920003044B1 (ko) 가상 머신 시스템용의 게스트 머신 실행 제어 시스템
JPH04266125A (ja) ディジタルコンピュータの操作方法
JP2007507779A (ja) オペレーティングシステム
EP0621535A2 (en) Interrupt handling
EP0458626B1 (en) Initial program loading system
US20060064528A1 (en) Privileged resource access
JP2006522971A (ja) オペレーティングシステム
JPH05216690A (ja) コンピュータ装置およびコンピュータ装置を動作させる方法
EP0327197B1 (en) I/O simulation
JPH0638238B2 (ja) 仮想計算機システム
Hewgill Copilot: Design and development
Hughes An applied approach to teaching the fundamentals of operating systems