JPH05216690A - コンピュータ装置およびコンピュータ装置を動作させる方法 - Google Patents
コンピュータ装置およびコンピュータ装置を動作させる方法Info
- Publication number
- JPH05216690A JPH05216690A JP4270817A JP27081792A JPH05216690A JP H05216690 A JPH05216690 A JP H05216690A JP 4270817 A JP4270817 A JP 4270817A JP 27081792 A JP27081792 A JP 27081792A JP H05216690 A JPH05216690 A JP H05216690A
- Authority
- JP
- Japan
- Prior art keywords
- state
- interrupt
- bit
- sti
- program
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 CLIとSTIの短縮された実行時間と、改
良されたコンパチビリティを得る。 【構成】 初期に設計された単一プログラム・マイクロ
プロセッサ26′の前に書かれたソフトウェア・プログ
ラム16を、ホスト・オペレーティング・ソフトウェア
・プログラム32′の下に、保護された、ページ付き、
マルチタスキング環境で実行でき、仮想動作モードで動
作するコンピュータ装置34は、初期のマイクロプロセ
ッサ26′により、CLEARINTERRUPT(C
LI)とSET INTERRUPT(STI)命令を
含む感知可能な割り込み命令のエミュレートと、ホスト
・オペレーティング・ソフトウェア・プログラム32′
のエミュレーション・ソフトウェアで前に書かれたプロ
グラムを実行する。コンピュータ装置34で、与えられ
たマイクロプロセッサと初期のマイクロプロセッサの間
のコンパチビリティを犠牲にせずに、CLIとSTI命
令が実行される。
良されたコンパチビリティを得る。 【構成】 初期に設計された単一プログラム・マイクロ
プロセッサ26′の前に書かれたソフトウェア・プログ
ラム16を、ホスト・オペレーティング・ソフトウェア
・プログラム32′の下に、保護された、ページ付き、
マルチタスキング環境で実行でき、仮想動作モードで動
作するコンピュータ装置34は、初期のマイクロプロセ
ッサ26′により、CLEARINTERRUPT(C
LI)とSET INTERRUPT(STI)命令を
含む感知可能な割り込み命令のエミュレートと、ホスト
・オペレーティング・ソフトウェア・プログラム32′
のエミュレーション・ソフトウェアで前に書かれたプロ
グラムを実行する。コンピュータ装置34で、与えられ
たマイクロプロセッサと初期のマイクロプロセッサの間
のコンパチビリティを犠牲にせずに、CLIとSTI命
令が実行される。
Description
【0001】
【産業上の利用分野】本発明は、全体として、初期に設
計された単一プログラム・マイクロプロセッサのために
以前に書かれたソフトウェア・プログラムを、とくに設
計されたホスト・オペレーティング・ソフトウェア・プ
ログラムの下で、保護された、ページ付き、マルチタス
キング環境において実行できるようにする仮想動作モー
ドで動作するためにとくに設計された与えられたマイク
ロプロセッサを含むコンピュータ装置に関するものであ
る。更に詳しくいえば、本発明は、以前に書かれたプロ
グラムからの感知可能な割り込み命令、とくにCLEA
R INTERRUPT(CLI)およびSET IN
TERRUPT(STI)が、初期のマイクロプロセッ
サにより実行されたであろうようなやり方をエミュレー
トするために、ホスト・プログラムの部分を構成するエ
ミュレーション・ソフトウェアにより、それらの命令を
取り扱う方法の改良に関するものである。
計された単一プログラム・マイクロプロセッサのために
以前に書かれたソフトウェア・プログラムを、とくに設
計されたホスト・オペレーティング・ソフトウェア・プ
ログラムの下で、保護された、ページ付き、マルチタス
キング環境において実行できるようにする仮想動作モー
ドで動作するためにとくに設計された与えられたマイク
ロプロセッサを含むコンピュータ装置に関するものであ
る。更に詳しくいえば、本発明は、以前に書かれたプロ
グラムからの感知可能な割り込み命令、とくにCLEA
R INTERRUPT(CLI)およびSET IN
TERRUPT(STI)が、初期のマイクロプロセッ
サにより実行されたであろうようなやり方をエミュレー
トするために、ホスト・プログラムの部分を構成するエ
ミュレーション・ソフトウェアにより、それらの命令を
取り扱う方法の改良に関するものである。
【0002】
【従来の技術】上の説明においては、与えられたマイク
ロプロセッサと、以前に書かれたソフトウェア・プログ
ラムと、初期に設計された単一プログラム・マイクロプ
ロセッサと、とくに設計されたホスト・オペレーティン
グ・ソフトウェア・プログラムとについて触れた。本発
明の実際の実施においては、与えられたマイクロプロセ
ッサはインテル・コーポレーション(Intel Co
rporation)の80386および80486
(商標)マイクロプロセッサの改良についてとくに述べ
る。本発明はそれら2つのマイクロプロセッサに等しく
応用できるから、それらのマイクロプロセッサのことを
以下、単に386マイクロプロセッサと記すことにす
る。初期に設計され単一プログラムされるマイクロプロ
セッサは、インテル社の初期に設計された単一プログラ
ム8086マイクロプロセッサを指すものである。以前
に書かれたソフトウェア・プログラムは、とくに、80
86マイクロプロセッサのために以前に書かれたとくに
DOSプログラムを含む何種類かのプログラムの任意の
ものを指すものである。最後に、ホスト・オペレーティ
ング・ソフトウェアは、マイクロソフト(Micros
oft)によるWINDOWS(商標)ソフトウェアま
たはAT&TによるUNIX(商標)ソフトウェアのよ
うな任意の適当なホスト制御オペレーティング・システ
ムすなわち中央制御オペレーティング・ソフトウェアの
いずれかを指す。与えられたマイクロプロセッサが上記
仮想動作モードで動作できるように、それら2つのソフ
トウェアは与えられたマイクロプロセッサのためにとく
に書かれている。以下、本発明をインテル386(およ
び486(商標))マイクロプロセッサおよび8086
マイクロプロセッサと、以前に書かれたDOSプログラ
ムと、WINDOWSまたはUNIXオペレーティング
・システムについてとくに述べることにするが、本発明
はそのような特定のマイクロプロセッサ、それら以前に
書かれたソフトウェア・プログラム、またはそのような
特定の中央オペレーティング・システムに限定されるも
のではないことを理解すべきである。このようなことを
理解した上で、8086と386の2つのマイクロプロ
セッサの簡単な歴史を以下に述べることにする。それら
のマイクロプロセッサは本発明にとくに関連するから、
それらのマイクロプロセッサについてのより詳しい説明
を実施例の項において行う。
ロプロセッサと、以前に書かれたソフトウェア・プログ
ラムと、初期に設計された単一プログラム・マイクロプ
ロセッサと、とくに設計されたホスト・オペレーティン
グ・ソフトウェア・プログラムとについて触れた。本発
明の実際の実施においては、与えられたマイクロプロセ
ッサはインテル・コーポレーション(Intel Co
rporation)の80386および80486
(商標)マイクロプロセッサの改良についてとくに述べ
る。本発明はそれら2つのマイクロプロセッサに等しく
応用できるから、それらのマイクロプロセッサのことを
以下、単に386マイクロプロセッサと記すことにす
る。初期に設計され単一プログラムされるマイクロプロ
セッサは、インテル社の初期に設計された単一プログラ
ム8086マイクロプロセッサを指すものである。以前
に書かれたソフトウェア・プログラムは、とくに、80
86マイクロプロセッサのために以前に書かれたとくに
DOSプログラムを含む何種類かのプログラムの任意の
ものを指すものである。最後に、ホスト・オペレーティ
ング・ソフトウェアは、マイクロソフト(Micros
oft)によるWINDOWS(商標)ソフトウェアま
たはAT&TによるUNIX(商標)ソフトウェアのよ
うな任意の適当なホスト制御オペレーティング・システ
ムすなわち中央制御オペレーティング・ソフトウェアの
いずれかを指す。与えられたマイクロプロセッサが上記
仮想動作モードで動作できるように、それら2つのソフ
トウェアは与えられたマイクロプロセッサのためにとく
に書かれている。以下、本発明をインテル386(およ
び486(商標))マイクロプロセッサおよび8086
マイクロプロセッサと、以前に書かれたDOSプログラ
ムと、WINDOWSまたはUNIXオペレーティング
・システムについてとくに述べることにするが、本発明
はそのような特定のマイクロプロセッサ、それら以前に
書かれたソフトウェア・プログラム、またはそのような
特定の中央オペレーティング・システムに限定されるも
のではないことを理解すべきである。このようなことを
理解した上で、8086と386の2つのマイクロプロ
セッサの簡単な歴史を以下に述べることにする。それら
のマイクロプロセッサは本発明にとくに関連するから、
それらのマイクロプロセッサについてのより詳しい説明
を実施例の項において行う。
【0003】インテル社の初期の8086マイクロプロ
セッサは非常な成功を納めたので、それのために書かれ
た非常に多くのソフトウェア・プログラムがあることを
率直に述べることができる。しかし、このマイクロプロ
セッサが後で改良されたマイクロプロセッサのシリーズ
の最初のものであったとすると、そのマイクロプロセッ
サはそれの限界を有する。その当時には限界であるとは
必ずしも考えられてはいなかった。1つの限界は、マイ
クロプロセッサが1度に2つ以上のソフトウェア・プロ
グラムを取り扱うことができないことである。もちろ
ん、これは、プログラム自体を保護された、ページ付
き、マルチタスキング環境において実行する必要がない
ことを意味する。しかし、技術の進歩につれて、インテ
ル社は386マイクロプロセッサをついに開発した。こ
のマイクロプロセッサは、前記のように、WINDOW
SまたはUNIXのようなより高度の中央オペレーティ
ング・システムを用いていくつかのプログラムを実行で
きる。それと同時に、386マイクロプロセッサは、初
期の8086マイクロプロセッサのために以前に書かれ
た多数のソフトウェア・プログラムを使用できるように
し、かつ、それら初期のソフトウェア・プログラムがそ
のようにして実行されることを意図されなかったとして
も、より高度の中央オペレーティング・システムの下に
おいて、保護された、ページ付き、マルチタスキング環
境でとくに実行できるようにする仮想8086動作モー
ドで動作するように設計されている。初期のプログラム
は非常に多数あるから、それらのプログラムを陳腐なも
のにすることはできない。したがって、8086マイク
ロプロセッサの後継機種を変更する場合には、初期の8
086ソフトウェアに対するコンパチビリティを常に考
慮せねばならない。
セッサは非常な成功を納めたので、それのために書かれ
た非常に多くのソフトウェア・プログラムがあることを
率直に述べることができる。しかし、このマイクロプロ
セッサが後で改良されたマイクロプロセッサのシリーズ
の最初のものであったとすると、そのマイクロプロセッ
サはそれの限界を有する。その当時には限界であるとは
必ずしも考えられてはいなかった。1つの限界は、マイ
クロプロセッサが1度に2つ以上のソフトウェア・プロ
グラムを取り扱うことができないことである。もちろ
ん、これは、プログラム自体を保護された、ページ付
き、マルチタスキング環境において実行する必要がない
ことを意味する。しかし、技術の進歩につれて、インテ
ル社は386マイクロプロセッサをついに開発した。こ
のマイクロプロセッサは、前記のように、WINDOW
SまたはUNIXのようなより高度の中央オペレーティ
ング・システムを用いていくつかのプログラムを実行で
きる。それと同時に、386マイクロプロセッサは、初
期の8086マイクロプロセッサのために以前に書かれ
た多数のソフトウェア・プログラムを使用できるように
し、かつ、それら初期のソフトウェア・プログラムがそ
のようにして実行されることを意図されなかったとして
も、より高度の中央オペレーティング・システムの下に
おいて、保護された、ページ付き、マルチタスキング環
境でとくに実行できるようにする仮想8086動作モー
ドで動作するように設計されている。初期のプログラム
は非常に多数あるから、それらのプログラムを陳腐なも
のにすることはできない。したがって、8086マイク
ロプロセッサの後継機種を変更する場合には、初期の8
086ソフトウェアに対するコンパチビリティを常に考
慮せねばならない。
【0004】インテルの現在のマイクロプロセッサと初
期に書かれたソフトウェアの間のコンパチビリティは大
変重要であるが、この目的が全コンピュータ装置の別の
ある動作面と妥協するような場合がある。それは、感知
可能な割り込みに関連するある命令、とくにCLIおよ
びSTIの実行における場合である。後で詳しく説明す
るように、CLI命令およびSTI命令が8086マイ
クロプロセッサで実行されたであろうようなやり方をエ
ミュレートするように、それらの命令の全てを仮想モー
ドで実行するように現在の386マイクロプロセッサは
設計されている。それら特定の命令の実行回数は、仮想
モードで実行される全ての命令の比較的低い割合を占め
るが、それら特定の命令は実行時間の比較的多くの部分
を占める。この問題に対する1つの特定の解決策が、後
で詳しく述べるように、提案されている。しかし、この
提案は仮想モードでCLIとSTIを実行するために要
する時間を十分に短くするが、マイクロプロセッサおよ
びそれのソフトウェアの間のコンパチビリティを妥協す
ることによりそれを行う。
期に書かれたソフトウェアの間のコンパチビリティは大
変重要であるが、この目的が全コンピュータ装置の別の
ある動作面と妥協するような場合がある。それは、感知
可能な割り込みに関連するある命令、とくにCLIおよ
びSTIの実行における場合である。後で詳しく説明す
るように、CLI命令およびSTI命令が8086マイ
クロプロセッサで実行されたであろうようなやり方をエ
ミュレートするように、それらの命令の全てを仮想モー
ドで実行するように現在の386マイクロプロセッサは
設計されている。それら特定の命令の実行回数は、仮想
モードで実行される全ての命令の比較的低い割合を占め
るが、それら特定の命令は実行時間の比較的多くの部分
を占める。この問題に対する1つの特定の解決策が、後
で詳しく述べるように、提案されている。しかし、この
提案は仮想モードでCLIとSTIを実行するために要
する時間を十分に短くするが、マイクロプロセッサおよ
びそれのソフトウェアの間のコンパチビリティを妥協す
ることによりそれを行う。
【0005】
【発明が解決しようとする課題】したがって、本発明の
目的は、以前に提案されたようにCLIとSTIの短縮
された実行時間を維持すると同時に、コンパチビリティ
に関連する特徴を提供することである。
目的は、以前に提案されたようにCLIとSTIの短縮
された実行時間を維持すると同時に、コンパチビリティ
に関連する特徴を提供することである。
【0006】
【課題を解決するための手段】後で説明するように、初
期に設計された単一プログラム・マイクロプロセッサ、
たとえば、8086マイクロプロセッサのために以前に
書かれたソフトウェア・プログラム、たとえばDOSプ
ログラムをとくに設計されたホスト・オペレーティング
・ソフトウェア・プログラム、たとえばWINDOWS
またはUNIX、の下で、保護される、ページ付き、マ
ルチタスキング環境において実行できるようにする仮想
動作モードで動作するようにとくに設計された与えられ
たマイクロプロセッサ、たとえば386マイクロプロセ
ッサを含むコンピュータ装置をここに開示するものであ
る。この装置は、ホストプログラムの部分を成すエミュ
レーション・ソフトウェアを用いて以前に書かれたプロ
グラムにより開始される、感知できる割り込みに関連す
るある命令、とくにCLIとSTI、を実行するための
手段も含む。
期に設計された単一プログラム・マイクロプロセッサ、
たとえば、8086マイクロプロセッサのために以前に
書かれたソフトウェア・プログラム、たとえばDOSプ
ログラムをとくに設計されたホスト・オペレーティング
・ソフトウェア・プログラム、たとえばWINDOWS
またはUNIX、の下で、保護される、ページ付き、マ
ルチタスキング環境において実行できるようにする仮想
動作モードで動作するようにとくに設計された与えられ
たマイクロプロセッサ、たとえば386マイクロプロセ
ッサを含むコンピュータ装置をここに開示するものであ
る。この装置は、ホストプログラムの部分を成すエミュ
レーション・ソフトウェアを用いて以前に書かれたプロ
グラムにより開始される、感知できる割り込みに関連す
るある命令、とくにCLIとSTI、を実行するための
手段も含む。
【0007】コンピュータ装置の仮想動作モード中にC
LIとSTIの2つの命令をエミュレーション・ソフト
ウェアが実行するのに要する時間を短縮するために、与
えられたマイクロプロセッサにEFLAGSレジスタが
設けられる。そのレジスタは、(1)以前に書かれたプ
ログラムにより開始された割り込み命令の実行を可能に
するためのSTI状態と、割り込み命令の実行を不能に
するためのCLI状態との間で動作するVIRTUAL
INTERRUPT FLAG(VIF)ビットと、
(2)その間に割り込み要求が実行を待っているPEN
DING状態と、その間にそのような割り込み要求が実
行を待たないNONPENDING状態との間で動作す
るVIRTUAL INTERRUPT PENDIN
G(VIP)ビットとを含む。同じ目的のために、すな
わち、仮想モードにおける実行時間を短くするために、
VIPビットがそれのNONPENDING状態にある
限り、エミュレーション・ソフトウェアを使用すること
なしに、EFLAGSレジスタのVIFビットの状態を
変えるための手段が設けられる。そのようにして、仮想
モードにおいて命令CLIとSTIの実行時間は大幅み
短くされる。しかし、それと同時に、以前に書かれたソ
フトウェア・プログラムにより続いて開始されたVIP
ビットのPENDING状態と、VIFビットのCLI
状態と、STI命令とに応答して、続いて開始されるS
TI命令と待機する割り込み要求を、VIFビットの状
態をCLI状からSTI状態へ最初に変えることなし
に、エミュレーション・ソフトウェアにより自動的に実
行する手段が設けられる。後で詳しく説明するように、
これはマイクロプロセッサとそれの関連するソフトウェ
アの間のコンパチビリティを強める。
LIとSTIの2つの命令をエミュレーション・ソフト
ウェアが実行するのに要する時間を短縮するために、与
えられたマイクロプロセッサにEFLAGSレジスタが
設けられる。そのレジスタは、(1)以前に書かれたプ
ログラムにより開始された割り込み命令の実行を可能に
するためのSTI状態と、割り込み命令の実行を不能に
するためのCLI状態との間で動作するVIRTUAL
INTERRUPT FLAG(VIF)ビットと、
(2)その間に割り込み要求が実行を待っているPEN
DING状態と、その間にそのような割り込み要求が実
行を待たないNONPENDING状態との間で動作す
るVIRTUAL INTERRUPT PENDIN
G(VIP)ビットとを含む。同じ目的のために、すな
わち、仮想モードにおける実行時間を短くするために、
VIPビットがそれのNONPENDING状態にある
限り、エミュレーション・ソフトウェアを使用すること
なしに、EFLAGSレジスタのVIFビットの状態を
変えるための手段が設けられる。そのようにして、仮想
モードにおいて命令CLIとSTIの実行時間は大幅み
短くされる。しかし、それと同時に、以前に書かれたソ
フトウェア・プログラムにより続いて開始されたVIP
ビットのPENDING状態と、VIFビットのCLI
状態と、STI命令とに応答して、続いて開始されるS
TI命令と待機する割り込み要求を、VIFビットの状
態をCLI状からSTI状態へ最初に変えることなし
に、エミュレーション・ソフトウェアにより自動的に実
行する手段が設けられる。後で詳しく説明するように、
これはマイクロプロセッサとそれの関連するソフトウェ
アの間のコンパチビリティを強める。
【0008】
【実施例】まず、初期の8086マイクロプロセッサを
含む従来のコンピュータ装置のある面の線図を示す図1
を参照する。コンピュータ装置全体は参照番号10で全
体的に示されている。この特定のコンピュータ装置はい
くつかの部品(図示せず)を含むが、割り込みフラッグ
IFと単一のDOSソフトウェア・プログラム16を含
むフラッグレジスタ14を有する8086マイクロプロ
セッサと、いくつかのI/O周辺装置とを含んでいるこ
とがとくに示されている。説明のために、周辺装置18
はモニタであり、周辺装置20はディスクドライブであ
り、周辺装置22はキーボードであると仮定するが、本
発明は、明らかになるであろうように、それら特定のI
/O装置に限定されるものではない。
含む従来のコンピュータ装置のある面の線図を示す図1
を参照する。コンピュータ装置全体は参照番号10で全
体的に示されている。この特定のコンピュータ装置はい
くつかの部品(図示せず)を含むが、割り込みフラッグ
IFと単一のDOSソフトウェア・プログラム16を含
むフラッグレジスタ14を有する8086マイクロプロ
セッサと、いくつかのI/O周辺装置とを含んでいるこ
とがとくに示されている。説明のために、周辺装置18
はモニタであり、周辺装置20はディスクドライブであ
り、周辺装置22はキーボードであると仮定するが、本
発明は、明らかになるであろうように、それら特定のI
/O装置に限定されるものではない。
【0009】これまでコンピュータ装置について説明し
てきたが、次に、このコンピュータ装置、とくに808
6マイクロプロセッサ12がそれのI/O周辺装置から
の割り込み指令をどのようにして取り扱うかについて説
明する。一般的にいえば、8086マイクロプロセッサ
はある命令の実行中に割り込まれるように設計され、別
の命令の実行中には割り込まれないように設計される。
たとえば、マイクロプロセッサがディスクドライブをア
クセスするためにDOSソフトウェアにより質問されて
いる期間中は、たとえばキーボード22からのキースト
ロークの結果として、割り込まれることを望まない。し
たがって、ディスクドライブのアクセス期間中は、FA
GSレジスタ14の割り込みフラッグ・ビットIFは、
外部割り込み要求の存在が、ディスクドライブをアクセ
ス中のマイクロプロセッサに割り込むことを不能もしく
は阻止するためのCLI状態に置かれる。説明の便宜
上、割り込みフラッグビットIFのCLI状態が図1に
おいては0で表されると仮定する。IFビットが0のま
まである限りは、割り込みはマイクロプロセッサにより
受けられない。ディスクドライブに対するアクセスが終
わり、その直後に他の割り込み不能な命令を実行するこ
とをマイクロプロセッサは頼まれないと仮定すると、割
り込みフラッグIFの状態がCLI状態からSTI状態
へ切り換えられる。そのSTI状態は図1に1で表わさ
れている。割り込みフラッグがそれのSTI状態にある
限りは、8086マイクロプロセッサは割り込みを受け
る。それらの割り込みは、たとえば、IFビットがCL
I状態にあった間に予め開始され、今はSTI状態にあ
るキーストロークを含み、およびIFフラッグがCLI
状態からSTI状態へ切り換わった後で開始された割り
込みをも含む。いずれの場合にも、DOSソフトウェア
・プログラム16が、8086マイクロプロセッサの一
部を成すEFLAGSレジスタの割り込みフラッグビッ
トと、状態CLIとSTIの間の切り換え中に、直接通
信することに注目することは重要である。DOSプログ
ラム16はコンピュータ装置10により実行される唯一
のものであるから、それがそうしない理由はない。
てきたが、次に、このコンピュータ装置、とくに808
6マイクロプロセッサ12がそれのI/O周辺装置から
の割り込み指令をどのようにして取り扱うかについて説
明する。一般的にいえば、8086マイクロプロセッサ
はある命令の実行中に割り込まれるように設計され、別
の命令の実行中には割り込まれないように設計される。
たとえば、マイクロプロセッサがディスクドライブをア
クセスするためにDOSソフトウェアにより質問されて
いる期間中は、たとえばキーボード22からのキースト
ロークの結果として、割り込まれることを望まない。し
たがって、ディスクドライブのアクセス期間中は、FA
GSレジスタ14の割り込みフラッグ・ビットIFは、
外部割り込み要求の存在が、ディスクドライブをアクセ
ス中のマイクロプロセッサに割り込むことを不能もしく
は阻止するためのCLI状態に置かれる。説明の便宜
上、割り込みフラッグビットIFのCLI状態が図1に
おいては0で表されると仮定する。IFビットが0のま
まである限りは、割り込みはマイクロプロセッサにより
受けられない。ディスクドライブに対するアクセスが終
わり、その直後に他の割り込み不能な命令を実行するこ
とをマイクロプロセッサは頼まれないと仮定すると、割
り込みフラッグIFの状態がCLI状態からSTI状態
へ切り換えられる。そのSTI状態は図1に1で表わさ
れている。割り込みフラッグがそれのSTI状態にある
限りは、8086マイクロプロセッサは割り込みを受け
る。それらの割り込みは、たとえば、IFビットがCL
I状態にあった間に予め開始され、今はSTI状態にあ
るキーストロークを含み、およびIFフラッグがCLI
状態からSTI状態へ切り換わった後で開始された割り
込みをも含む。いずれの場合にも、DOSソフトウェア
・プログラム16が、8086マイクロプロセッサの一
部を成すEFLAGSレジスタの割り込みフラッグビッ
トと、状態CLIとSTIの間の切り換え中に、直接通
信することに注目することは重要である。DOSプログ
ラム16はコンピュータ装置10により実行される唯一
のものであるから、それがそうしない理由はない。
【0010】次に図2を参照して、より進歩したコンピ
ュータ装置24について説明する。このコンピュータ装
置とコンピュータ装置10の間の違いは、コンピュータ
装置24は386マイクロプロセッサ26を含んでいる
こと、および8086マイクロプロセッサのために以前
に書かれたプログラムを含めて、2つ以上のソフトウェ
ア・プログラムを同時に実行できることがとくに異な
る。もとっも、図2にはプログラムは、たとえばDOS
プログラム16だけが示されている。多数のソフトウェ
ア・プログラムを同時に実行できるこの性能の結果とし
て、それらのプログラムのいずれも直接アクセスでき
ず、それにより386マイクロプロセッサのEFLAG
Sレジスタ30の割り込みフラッグの状態をを変えるこ
とができないように、コンピュータ装置24を設計せね
ばならない。そのEFLAGSレジスタ30は割り込み
フラッグIFを含む。この結果、および8086ソフト
ウェアを使用することを希望した結果として、前記した
ように、特定の仮想動作モードにおいて、すなわち、ホ
ストオペレーティング・システムの下で、保護される、
ページ付き、マルチタスキング環境において、8086
プログラム、たとえばDOSプログラム16を実行でき
るようにする動作モードにおいて動作するように386
マイクロプロセッサは設計された。また前記のように、
1つのそのようなホストオペレーティング・システムす
なわち中央オペレーティング・システムは、図2に32
で線図的に示されている前記WINDOWプログラムま
たはUNIXプログラムである。以前に書かれたプログ
ラムからの、感知できる割り込みに関連するある命令、
とくにCLIおよびSTI、が初期の8086マイクロ
プロセッサにより実行されたであろうようなやり方をエ
ミュレートするために、エミュレーション・ソフトウェ
アによりそれらの命令を実行するための8086エミュ
レーション・ソフトウェア、以下単にエミュレータと呼
ぶことがある、を含むようにそのプログラムを書かねば
ならない。
ュータ装置24について説明する。このコンピュータ装
置とコンピュータ装置10の間の違いは、コンピュータ
装置24は386マイクロプロセッサ26を含んでいる
こと、および8086マイクロプロセッサのために以前
に書かれたプログラムを含めて、2つ以上のソフトウェ
ア・プログラムを同時に実行できることがとくに異な
る。もとっも、図2にはプログラムは、たとえばDOS
プログラム16だけが示されている。多数のソフトウェ
ア・プログラムを同時に実行できるこの性能の結果とし
て、それらのプログラムのいずれも直接アクセスでき
ず、それにより386マイクロプロセッサのEFLAG
Sレジスタ30の割り込みフラッグの状態をを変えるこ
とができないように、コンピュータ装置24を設計せね
ばならない。そのEFLAGSレジスタ30は割り込み
フラッグIFを含む。この結果、および8086ソフト
ウェアを使用することを希望した結果として、前記した
ように、特定の仮想動作モードにおいて、すなわち、ホ
ストオペレーティング・システムの下で、保護される、
ページ付き、マルチタスキング環境において、8086
プログラム、たとえばDOSプログラム16を実行でき
るようにする動作モードにおいて動作するように386
マイクロプロセッサは設計された。また前記のように、
1つのそのようなホストオペレーティング・システムす
なわち中央オペレーティング・システムは、図2に32
で線図的に示されている前記WINDOWプログラムま
たはUNIXプログラムである。以前に書かれたプログ
ラムからの、感知できる割り込みに関連するある命令、
とくにCLIおよびSTI、が初期の8086マイクロ
プロセッサにより実行されたであろうようなやり方をエ
ミュレートするために、エミュレーション・ソフトウェ
アによりそれらの命令を実行するための8086エミュ
レーション・ソフトウェア、以下単にエミュレータと呼
ぶことがある、を含むようにそのプログラムを書かねば
ならない。
【0011】更に図2を参照して、便宜上、コンピュー
タ装置24は同じI/O周辺装置18,20,22を含
んでいることが示されている。また、386マイクロプ
ロセッサ26の部分を構成するEFLAGSレジスタ3
0が、仮想モードビットVMを含んでいることが示され
ている。このビットがそれの仮想モード状態、たとえば
1状態において供給されると、コンピュータ装置は先に
簡単に述べたそれの仮想モードで動作するためにセット
される。VMビットを0状態に切り換えると、コンピュ
ータ装置はそれの標準モードすなわち非仮想モードで動
作させられる。
タ装置24は同じI/O周辺装置18,20,22を含
んでいることが示されている。また、386マイクロプ
ロセッサ26の部分を構成するEFLAGSレジスタ3
0が、仮想モードビットVMを含んでいることが示され
ている。このビットがそれの仮想モード状態、たとえば
1状態において供給されると、コンピュータ装置は先に
簡単に述べたそれの仮想モードで動作するためにセット
される。VMビットを0状態に切り換えると、コンピュ
ータ装置はそれの標準モードすなわち非仮想モードで動
作させられる。
【0012】これまで述べたこのコンピュータ装置24
がその仮想動作モードで割り込みを取り扱うやり方につ
いて次に説明する。これに関して、8086マイクロプ
ロセッサのために以前に書かれ、とくにDOSプログラ
ム16を含む、いくつかのソフトウェア・プログラムを
コンピュータ装置24が同時に実行すると仮定する。説
明のために、ディスクドライブ20をアクセスすること
をDOSプログラム16がマイクロプロセッサに命令し
たばかりであることも初めに仮定する。それらの状況の
下においては、ディスクドライブがアクセスされている
間は、EFLAGSレジスタ30の割り込みフラッグI
Fがそれの割り込みクリヤ,0状態にあるよにするため
に、プログラムはCLI命令を開始する。しかし、前記
したように、マイクロプロセッサ26はいくつかのソフ
トウェア・プログラムを取り扱うことができ、したがっ
て保護されるモードで動作できるから、DOSプログラ
ム16はEFLAGSレジスタ30をアクセスすること
は直接は許されない。更に、プログラム16は8086
マイクロプロセッサのために実際に書かれたが、この特
定のCLI命令、およびこのプログラムにより開始され
る他の多くの命令を、8086マイクロプロセッサがそ
れの命令を実行してであろうようなやり方をエミュレー
トするために、ホストオペレーティング・システム32
の部分を構成するエミュレーション・ソフトウェアにト
ラップせねばならず、かつそのエミュレーション・ソフ
トウェアを介して実行せねばならない。ディスクドライ
ブ20の直後に、および割り込みを禁止する別の理由が
ないと仮定すると、マイクロプロセッサ26が割り込み
を取り扱うことができるように、STI命令は開始され
る。CLI命令と同様に、EFLAGS30のIF割り
込みフラッグを0状態から1状態へ変えさせるこのST
I命令および他の全てのSTI命令を同じエミュレーシ
ョン・ソフトウェアに捕らえさせ、およびそのソフトウ
ェアを介して実行せねばならない。
がその仮想動作モードで割り込みを取り扱うやり方につ
いて次に説明する。これに関して、8086マイクロプ
ロセッサのために以前に書かれ、とくにDOSプログラ
ム16を含む、いくつかのソフトウェア・プログラムを
コンピュータ装置24が同時に実行すると仮定する。説
明のために、ディスクドライブ20をアクセスすること
をDOSプログラム16がマイクロプロセッサに命令し
たばかりであることも初めに仮定する。それらの状況の
下においては、ディスクドライブがアクセスされている
間は、EFLAGSレジスタ30の割り込みフラッグI
Fがそれの割り込みクリヤ,0状態にあるよにするため
に、プログラムはCLI命令を開始する。しかし、前記
したように、マイクロプロセッサ26はいくつかのソフ
トウェア・プログラムを取り扱うことができ、したがっ
て保護されるモードで動作できるから、DOSプログラ
ム16はEFLAGSレジスタ30をアクセスすること
は直接は許されない。更に、プログラム16は8086
マイクロプロセッサのために実際に書かれたが、この特
定のCLI命令、およびこのプログラムにより開始され
る他の多くの命令を、8086マイクロプロセッサがそ
れの命令を実行してであろうようなやり方をエミュレー
トするために、ホストオペレーティング・システム32
の部分を構成するエミュレーション・ソフトウェアにト
ラップせねばならず、かつそのエミュレーション・ソフ
トウェアを介して実行せねばならない。ディスクドライ
ブ20の直後に、および割り込みを禁止する別の理由が
ないと仮定すると、マイクロプロセッサ26が割り込み
を取り扱うことができるように、STI命令は開始され
る。CLI命令と同様に、EFLAGS30のIF割り
込みフラッグを0状態から1状態へ変えさせるこのST
I命令および他の全てのSTI命令を同じエミュレーシ
ョン・ソフトウェアに捕らえさせ、およびそのソフトウ
ェアを介して実行せねばならない。
【0013】以上の説明から、割り込みが存在しない、
または行われているとしても、レジスタ30の割り込み
がそれの状態CLIとSTI状態の間で切り換わること
を求められることが明らかである。実際に、典型的な動
作をするコンピュータ装置24を調べると、レジスタ3
0の割り込みフラッグIFは状態CLIとSTIの間
を、実際の割り込みがマイクロプロセッサ26に対して
求められるよりもはるかに頻繁に切り換わる。更に、I
Fフラッグの状態を切り換えるために求められるCLI
とSTIの各命令をエミュレーション・ソフトウェアに
トラップし、かつそのソフトウェアを介して実行せねば
ならないから、それらの命令を実行するためにかかる時
間は非常に長い。実際に、ある場合に、それらの命令C
LIとSTIは、与えられた期間中にホストオペレーテ
ィング・システム32によりエミュレートされた全命令
の1パーセントの約半分に達するが、命令CLIとST
Iを実行するために要する時間は、エミュレートにおい
て費やされた時間を含めた全実行時間の30%にも達す
ることが判明している。
または行われているとしても、レジスタ30の割り込み
がそれの状態CLIとSTI状態の間で切り換わること
を求められることが明らかである。実際に、典型的な動
作をするコンピュータ装置24を調べると、レジスタ3
0の割り込みフラッグIFは状態CLIとSTIの間
を、実際の割り込みがマイクロプロセッサ26に対して
求められるよりもはるかに頻繁に切り換わる。更に、I
Fフラッグの状態を切り換えるために求められるCLI
とSTIの各命令をエミュレーション・ソフトウェアに
トラップし、かつそのソフトウェアを介して実行せねば
ならないから、それらの命令を実行するためにかかる時
間は非常に長い。実際に、ある場合に、それらの命令C
LIとSTIは、与えられた期間中にホストオペレーテ
ィング・システム32によりエミュレートされた全命令
の1パーセントの約半分に達するが、命令CLIとST
Iを実行するために要する時間は、エミュレートにおい
て費やされた時間を含めた全実行時間の30%にも達す
ることが判明している。
【0014】図3は386マイクロプロセッサを含んで
いるコンピュータ装置を線図的に示す。そのマイクロプ
ロセッサ自体は、図2に示すコンピュータ装置よりも速
く、仮想モードにおいて割り込み命令を実行できるよう
にするために、以前に提案された変更を含んでいること
が示されている。図3に示すコンピュータ装置は参照番
号34で全体的に示されており、386′マイクロプロ
セッサと呼ばれる変更されたマイクロプロセッサは参照
番号26′により示されている。そのマイクロプロセッ
サ26′は変更されたEFLAGSレジスタ30′と変
更されたホストオペレーティング・システム32′を含
んでいるのが示されている。オペレーティング・システ
ム32′については後で説明する。全体的には、コンピ
ュータ装置34は同じDOSソフトウェア・プログラム
16とI/O周辺装置18,20,22も含んでいるこ
とが示されている。後で述べることを除き、コンピュー
タ装置34はコンピュータ装置24と同様に動作する。
いるコンピュータ装置を線図的に示す。そのマイクロプ
ロセッサ自体は、図2に示すコンピュータ装置よりも速
く、仮想モードにおいて割り込み命令を実行できるよう
にするために、以前に提案された変更を含んでいること
が示されている。図3に示すコンピュータ装置は参照番
号34で全体的に示されており、386′マイクロプロ
セッサと呼ばれる変更されたマイクロプロセッサは参照
番号26′により示されている。そのマイクロプロセッ
サ26′は変更されたEFLAGSレジスタ30′と変
更されたホストオペレーティング・システム32′を含
んでいるのが示されている。オペレーティング・システ
ム32′については後で説明する。全体的には、コンピ
ュータ装置34は同じDOSソフトウェア・プログラム
16とI/O周辺装置18,20,22も含んでいるこ
とが示されている。後で述べることを除き、コンピュー
タ装置34はコンピュータ装置24と同様に動作する。
【0015】図3に示すように、EFLAGS30′は
割り込みフラッグビットIF(図示せず)と仮想動作モ
ードビットVM(図示されている)ばかりでなく、コン
ピュータ装置24のフラッグ・レジスタ30の一部を構
成しない2つの付加ビットも含む。それら2つの付加ビ
ットの1つはVIRTUAL INTERRUPTFL
AGビットVIFであり、他の1つはVIRTUAL
INTERRUPTPENDINGビットVIPであ
る。VIFビットは、たとえば0によってCLI状態に
保たれ、または1によってSTI状態に保たれ、機能は
割り込みフラッグ・ビットIFに対応する。すなわち、
マイクロプロセッサへの割り込みがクリヤされる(禁止
する)ものとすると、VIFビットはCLI状態に保た
れ、割り込みが許されると、それはSTI状態に保たれ
る。それと同時に、VIPビットは、割り込み要求が、
たとえば1により示されているように、実行を待ってい
るPENDING状態と、そのような命令が、たとえば
0により示されているように、実行を待っていないNO
NPENDING状態との間で切り換わる。
割り込みフラッグビットIF(図示せず)と仮想動作モ
ードビットVM(図示されている)ばかりでなく、コン
ピュータ装置24のフラッグ・レジスタ30の一部を構
成しない2つの付加ビットも含む。それら2つの付加ビ
ットの1つはVIRTUAL INTERRUPTFL
AGビットVIFであり、他の1つはVIRTUAL
INTERRUPTPENDINGビットVIPであ
る。VIFビットは、たとえば0によってCLI状態に
保たれ、または1によってSTI状態に保たれ、機能は
割り込みフラッグ・ビットIFに対応する。すなわち、
マイクロプロセッサへの割り込みがクリヤされる(禁止
する)ものとすると、VIFビットはCLI状態に保た
れ、割り込みが許されると、それはSTI状態に保たれ
る。それと同時に、VIPビットは、割り込み要求が、
たとえば1により示されているように、実行を待ってい
るPENDING状態と、そのような命令が、たとえば
0により示されているように、実行を待っていないNO
NPENDING状態との間で切り換わる。
【0016】変更されたEFLAGSレジスタ30′を
心に留めて、コンピュータ装置34全体が次のようにし
て動作するように、386′マイクロプロセッサ26′
およびそれの関連するホストオペレーティング・システ
ム32′が設計される。まず、このコンピュータ装置は
それの仮想モード(VMが1にセットされている)で動
作しており、VIPビットが与えられた時間中に0にセ
ットされ、実行されている、または実行を待っている割
り込み命令がないことをまず仮定する。更に、同じ与え
られた時間中に、図3に示すように、DOSプログラム
16が引き続く命令STIとCLIを開始することも仮
定する。それらの状況の下においては、DOS16が命
令STIまたはCLIを開始するたびに、DOSプログ
ラムはEFLAGSレジスタ30′と通信して、命令S
TIとCLIをトラップしたり、ホストオペレーティン
グ・システムのエミュレーション・ソフトウェアを介し
てそれらの命令を実行したりすることなしに、VIFビ
ットをSTI状態1からCLI状態0へ、および逆にS
TI状態1へ変更させる。いいかえると、ホストオペレ
ーティング・システムのエミュレータは、VIPビット
がそのNONPENDING 0状態にある限りは、E
FLAGSレジスタ内のVIFビットの状態変化を無視
する。これは、各命令STIとCLIがエミュレータ内
にトラップされる、すなわち、ホストオペレーティング
・システムのエミュレーション・ソフトウェアを介して
実行されるコンピュータ装置とは対照的である。したが
って、コンピュータ装置34は、ホストオペレーティン
グ・システム32′の部分を構成するエミュレータにお
ける実行時間を大幅に短くする。
心に留めて、コンピュータ装置34全体が次のようにし
て動作するように、386′マイクロプロセッサ26′
およびそれの関連するホストオペレーティング・システ
ム32′が設計される。まず、このコンピュータ装置は
それの仮想モード(VMが1にセットされている)で動
作しており、VIPビットが与えられた時間中に0にセ
ットされ、実行されている、または実行を待っている割
り込み命令がないことをまず仮定する。更に、同じ与え
られた時間中に、図3に示すように、DOSプログラム
16が引き続く命令STIとCLIを開始することも仮
定する。それらの状況の下においては、DOS16が命
令STIまたはCLIを開始するたびに、DOSプログ
ラムはEFLAGSレジスタ30′と通信して、命令S
TIとCLIをトラップしたり、ホストオペレーティン
グ・システムのエミュレーション・ソフトウェアを介し
てそれらの命令を実行したりすることなしに、VIFビ
ットをSTI状態1からCLI状態0へ、および逆にS
TI状態1へ変更させる。いいかえると、ホストオペレ
ーティング・システムのエミュレータは、VIPビット
がそのNONPENDING 0状態にある限りは、E
FLAGSレジスタ内のVIFビットの状態変化を無視
する。これは、各命令STIとCLIがエミュレータ内
にトラップされる、すなわち、ホストオペレーティング
・システムのエミュレーション・ソフトウェアを介して
実行されるコンピュータ装置とは対照的である。したが
って、コンピュータ装置34は、ホストオペレーティン
グ・システム32′の部分を構成するエミュレータにお
ける実行時間を大幅に短くする。
【0017】上の説明は、実行を待っている割り込み命
令がない、すなわち、VIPビットが命令CLIとST
Iがつぎつぎに開始されるにつれてVIPビットがそれ
のNONPENDING状態に常にあることを仮定し
た。ここで、VIFビットがSTI(1)状態にあるこ
と、および割り込み命令がソフトウェア・プログラム1
6により実際に開始されることを仮定する。それらの状
況の下においては、変更されたコンピュータ装置は次の
ようにして動作する。ソフトウェア・プログラムは、ホ
ストオペレーティング・システムを介してEFLAGS
レジスタ30′とまず通信して、VIPビットをNON
PENDING(0)状態からPENDING(1)状
態へ変える。その結果、VIFビットは1状態にあり、
VIPビットは1状態にある(図3)。これがひとたび
起ると、コンピュータ装置は、コンピュータ装置24と
同様に、エミュレータを介して割り込みを取り扱うよう
に設計されている。割り込みがひとたび取り扱われ、V
IFビットがそれのSTI状態に留ると仮定すると、V
IPビットはそれのNONPENDING状態へ戻され
る。
令がない、すなわち、VIPビットが命令CLIとST
Iがつぎつぎに開始されるにつれてVIPビットがそれ
のNONPENDING状態に常にあることを仮定し
た。ここで、VIFビットがSTI(1)状態にあるこ
と、および割り込み命令がソフトウェア・プログラム1
6により実際に開始されることを仮定する。それらの状
況の下においては、変更されたコンピュータ装置は次の
ようにして動作する。ソフトウェア・プログラムは、ホ
ストオペレーティング・システムを介してEFLAGS
レジスタ30′とまず通信して、VIPビットをNON
PENDING(0)状態からPENDING(1)状
態へ変える。その結果、VIFビットは1状態にあり、
VIPビットは1状態にある(図3)。これがひとたび
起ると、コンピュータ装置は、コンピュータ装置24と
同様に、エミュレータを介して割り込みを取り扱うよう
に設計されている。割り込みがひとたび取り扱われ、V
IFビットがそれのSTI状態に留ると仮定すると、V
IPビットはそれのNONPENDING状態へ戻され
る。
【0018】コンピュータ装置34が動作する態様につ
いて更に説明する。EFLAGSレジスタ30′内のV
IFビットが今はそれのCLI(0)状態にあること、
およびVIPビットがそれのPENDING(1)状態
にあることを仮定する。VIFビットとVIPビットが
それらの状態にあると、マイクロプロセッサが割り込み
を受けることができるようにするために、ソフトウェア
・プログラムがSTI命令を発すると仮定する。この場
合には、以前に提案されたコンピュータ装置34に従っ
て、ホストオペレーティング・システムはその命令を認
識し、VIFビットをCLI(0)状態からSTI
(1)状態へ直ちに切り換える。その結果、VIFビッ
トとVIPビットは1にセットされて、割り込み要求が
エミュレータへとラップされて実行されるのを待つ。割
り込み要求の実行は、VIFビットがそれのCLI状態
からSTI状態へ変えられるまで、行われないことに注
目することはとくに重要である。これはコンピュータ装
置24から区別すべきである。コンピュータ装置24に
おいては、割り込みフラッグビットIFは最初はCLI
(0)状態にあり、割り込みが係属中であるとすると、
ソフトウェア・プログラム28により開始された以後の
STI命令はエミュレータに直ちにトラップされ、レジ
スタ30内の割り込みフラッグを最初に変更することな
しに、待機中の割り込み要求はSTI命令とともにエミ
ュレータにより実行される。エミュレーション・ソフト
ウェアによるそれらの命令が実行された後でのみ、他の
CLI命令が禁止されていないと仮定して、エミュレー
ション・ソフトウェアは割り込みフラッグをSTI
(1)状態へリセットする。コンピュータ装置34と2
4の間のこの比較は、コンピュータ装置34のVIFビ
ットを、待機中の割り込み命令をエミュレータにトラッ
プして、実行する前に、0から1へ最初に変更するとい
う技術が、コンピュータ装置24におけるエミュレーシ
ョン・ソフトウェアが、トラップとエミュレートを最初
に行うやり方とは対照的であり、従ってそのやり方とは
両立できない、ということを指摘させられる。後でわか
るように、本発明はその両立できないことを解消すると
同時に、コンピュータ装置24よりコンピュータ装置3
4が優れている点を維持するものである。
いて更に説明する。EFLAGSレジスタ30′内のV
IFビットが今はそれのCLI(0)状態にあること、
およびVIPビットがそれのPENDING(1)状態
にあることを仮定する。VIFビットとVIPビットが
それらの状態にあると、マイクロプロセッサが割り込み
を受けることができるようにするために、ソフトウェア
・プログラムがSTI命令を発すると仮定する。この場
合には、以前に提案されたコンピュータ装置34に従っ
て、ホストオペレーティング・システムはその命令を認
識し、VIFビットをCLI(0)状態からSTI
(1)状態へ直ちに切り換える。その結果、VIFビッ
トとVIPビットは1にセットされて、割り込み要求が
エミュレータへとラップされて実行されるのを待つ。割
り込み要求の実行は、VIFビットがそれのCLI状態
からSTI状態へ変えられるまで、行われないことに注
目することはとくに重要である。これはコンピュータ装
置24から区別すべきである。コンピュータ装置24に
おいては、割り込みフラッグビットIFは最初はCLI
(0)状態にあり、割り込みが係属中であるとすると、
ソフトウェア・プログラム28により開始された以後の
STI命令はエミュレータに直ちにトラップされ、レジ
スタ30内の割り込みフラッグを最初に変更することな
しに、待機中の割り込み要求はSTI命令とともにエミ
ュレータにより実行される。エミュレーション・ソフト
ウェアによるそれらの命令が実行された後でのみ、他の
CLI命令が禁止されていないと仮定して、エミュレー
ション・ソフトウェアは割り込みフラッグをSTI
(1)状態へリセットする。コンピュータ装置34と2
4の間のこの比較は、コンピュータ装置34のVIFビ
ットを、待機中の割り込み命令をエミュレータにトラッ
プして、実行する前に、0から1へ最初に変更するとい
う技術が、コンピュータ装置24におけるエミュレーシ
ョン・ソフトウェアが、トラップとエミュレートを最初
に行うやり方とは対照的であり、従ってそのやり方とは
両立できない、ということを指摘させられる。後でわか
るように、本発明はその両立できないことを解消すると
同時に、コンピュータ装置24よりコンピュータ装置3
4が優れている点を維持するものである。
【0019】次に図4を参照して更に別のコンピュータ
装置36、とくに本発明に従って設計されたコンピュー
タ装置について説明する。コンピュータ装置34と同様
に、コンピュータ装置36は、図4に386マイクロプ
ロセッサとして示されている、変更された386マイク
ロプロセッサ26″として特徴づけることができるもの
を含む。そのマイクロプロセッサは、コンピュータ装置
34と同様にしてそれ自身の8086エミュレーション
・ソフトウェアを有する、とくに設計されたホスト・オ
ペレーティング・ソフトウェア・プログラム32の下
に、保護された、ページ付き、マルチタスキング環境に
おいて、たとえばDOSプログラムを含む、以前に書か
れた多数の8086ソフトウェア・プログラムを実行す
ることを許す仮想動作モードで動作するためにとくに設
計される。コンピュータ装置36は、対応する周辺装置
18,20,22と、マイクロプロセッサ26″の部分
を構成する対応するEFLAGSレジスタ30″も含む
ことが示されている。
装置36、とくに本発明に従って設計されたコンピュー
タ装置について説明する。コンピュータ装置34と同様
に、コンピュータ装置36は、図4に386マイクロプ
ロセッサとして示されている、変更された386マイク
ロプロセッサ26″として特徴づけることができるもの
を含む。そのマイクロプロセッサは、コンピュータ装置
34と同様にしてそれ自身の8086エミュレーション
・ソフトウェアを有する、とくに設計されたホスト・オ
ペレーティング・ソフトウェア・プログラム32の下
に、保護された、ページ付き、マルチタスキング環境に
おいて、たとえばDOSプログラムを含む、以前に書か
れた多数の8086ソフトウェア・プログラムを実行す
ることを許す仮想動作モードで動作するためにとくに設
計される。コンピュータ装置36は、対応する周辺装置
18,20,22と、マイクロプロセッサ26″の部分
を構成する対応するEFLAGSレジスタ30″も含む
ことが示されている。
【0020】コンピュータ装置36は割り込み要求をコ
ンピュータ装置24と同様に、多くのやり方で取り扱
う。とくに、レジスタ30″のVIPビットが、割り込
み命令が係属中でないことを意味する、レジスタ30″
のVIPビットがそれのNONPENDING(0)状
態にある限り、VIFビットは、ホストオペレーティン
グ・システム32″のエミュレータを通って進むことな
しに、それのSTI(1)状態とそれのCLI(0)状
態の間で変化することを許される。しかし、レジスタ3
0″内のVIFビットが最初はそれのCLI(0)状態
にあり、VIPビットが最初はそれの係属中の(1)状
態にある、とここで仮定する。更に、その後でソフトウ
ェア・プログラム28がSTI命令を開始すると仮定す
る。それらの状況においては、マイクロプロセッサ2
6″とホストオペレーティング・システム32″は、V
IPビットのPENDING状態と、VIFビットのC
LI状態と、その後で開始されたSTI命令とに応答し
て、後で開始されたSTI命令と待機している割り込み
要求を、ホストオペレーティング・システムの一部を成
すエミュレーション・ソフトウェアにより、VIFビッ
トの状態をそれのCLI状態からそれのSTI状態へ初
めに変えることなしに、自動的に実行するために設計さ
れる。いいかえると、エミュレーション・ソフトウェア
がそれらの命令を実行している間は、CLI命令が実行
されないと仮定して、割り込み命令が実行され、それか
ら、およびそれからだけホストオペレーティング・シス
テムがVIFビットをSTI状態へ切り換えるまで、V
IFビットはCLI状態に留まる。また、以前待機して
いた割り込み要求は今は実行されているから、実行を待
っている別の割り込み要求はないと仮定して、ホストオ
ペレーティング・システムはVIPビットをNONPE
NDING状態へ切り換える。
ンピュータ装置24と同様に、多くのやり方で取り扱
う。とくに、レジスタ30″のVIPビットが、割り込
み命令が係属中でないことを意味する、レジスタ30″
のVIPビットがそれのNONPENDING(0)状
態にある限り、VIFビットは、ホストオペレーティン
グ・システム32″のエミュレータを通って進むことな
しに、それのSTI(1)状態とそれのCLI(0)状
態の間で変化することを許される。しかし、レジスタ3
0″内のVIFビットが最初はそれのCLI(0)状態
にあり、VIPビットが最初はそれの係属中の(1)状
態にある、とここで仮定する。更に、その後でソフトウ
ェア・プログラム28がSTI命令を開始すると仮定す
る。それらの状況においては、マイクロプロセッサ2
6″とホストオペレーティング・システム32″は、V
IPビットのPENDING状態と、VIFビットのC
LI状態と、その後で開始されたSTI命令とに応答し
て、後で開始されたSTI命令と待機している割り込み
要求を、ホストオペレーティング・システムの一部を成
すエミュレーション・ソフトウェアにより、VIFビッ
トの状態をそれのCLI状態からそれのSTI状態へ初
めに変えることなしに、自動的に実行するために設計さ
れる。いいかえると、エミュレーション・ソフトウェア
がそれらの命令を実行している間は、CLI命令が実行
されないと仮定して、割り込み命令が実行され、それか
ら、およびそれからだけホストオペレーティング・シス
テムがVIFビットをSTI状態へ切り換えるまで、V
IFビットはCLI状態に留まる。また、以前待機して
いた割り込み要求は今は実行されているから、実行を待
っている別の割り込み要求はないと仮定して、ホストオ
ペレーティング・システムはVIPビットをNONPE
NDING状態へ切り換える。
【0021】上で述べたように、コンピュータ装置36
が割り込みを取り扱うやり方は、コンピュータ装置24
のそれとは異なることは明らかである。とくに、コンピ
ュータ装置36においては、割り込み命令が係属中で、
仮想割り込みフラッグがCLI状態にある時は、以後の
STI命令と、係属中の割り込み呼び出しは、仮想割り
込みフラッグの状態を最初に変えることなしに、エミュ
レーション・ソフトウェアにより直ちに実行される。こ
れは、コンピュータ装置24が同じ状況を取り扱うやり
方に対応するから、前記したように、この面でコンピュ
ータ装置24とは両立しないコンピュータ装置34と対
照的に、コンピュータ装置36はコンピュータ装置24
と両立できる。このために、コンピュータ装置24の一
部を成す386マイクロプロセッサのために以前に書か
れたソフトウェア・プログラムを修正することが一層容
易に、かつ潜在的には一層正確にされる。更に、このや
り方により386マイクロプロセッサは、POPFを介
して開始された命令から直接開始されたSTI命令を、
386マイクロプロセッサが行ったように、区別できる
ようにされる。このことは重要である。というのは、S
TI係属中命令の以後の実行が1命令に相当する時間遅
れで受けられるのに、POPF係属中命令の以後の実行
が直ちに受けられるからである。386マイクロプロセ
ッサの提案(図3)はこの性能を有しない。
が割り込みを取り扱うやり方は、コンピュータ装置24
のそれとは異なることは明らかである。とくに、コンピ
ュータ装置36においては、割り込み命令が係属中で、
仮想割り込みフラッグがCLI状態にある時は、以後の
STI命令と、係属中の割り込み呼び出しは、仮想割り
込みフラッグの状態を最初に変えることなしに、エミュ
レーション・ソフトウェアにより直ちに実行される。こ
れは、コンピュータ装置24が同じ状況を取り扱うやり
方に対応するから、前記したように、この面でコンピュ
ータ装置24とは両立しないコンピュータ装置34と対
照的に、コンピュータ装置36はコンピュータ装置24
と両立できる。このために、コンピュータ装置24の一
部を成す386マイクロプロセッサのために以前に書か
れたソフトウェア・プログラムを修正することが一層容
易に、かつ潜在的には一層正確にされる。更に、このや
り方により386マイクロプロセッサは、POPFを介
して開始された命令から直接開始されたSTI命令を、
386マイクロプロセッサが行ったように、区別できる
ようにされる。このことは重要である。というのは、S
TI係属中命令の以後の実行が1命令に相当する時間遅
れで受けられるのに、POPF係属中命令の以後の実行
が直ちに受けられるからである。386マイクロプロセ
ッサの提案(図3)はこの性能を有しない。
【0022】コンピュータ装置36と、提案装置34と
がどのように異なるか、および既存の装置24と元の装
置10がどのように異なるかについて説明したが、本発
明はインテル社の386マイクロプロセッサおよびそれ
に関連する部品、それの80486(商標)マイクロプ
ロセッサまたは関連する任意のマイクロプロセッサの改
良に限定されるものではないが、本発明はそれらのマイ
クロプロセッサにとくに応用できる。しかし、コンピュ
ータ装置10,24,34,36のそれらの面から、本
発明は割り込みの取り扱いのみに関するものであるこ
と、およびそれらの機能についてのみ説明したことは明
らかである。各コンピュータ装置は本発明に関連しない
他の部品を含むことが明らかである。それらの部品、お
よび示さなかったが、それらのコンピュータ装置が割り
込みを取り扱うために必要などのような部品も、当業者
にとっては明らかである。更に、STI命令とCLI命
令にとくに関しては、それらの命令が特定のDOSアプ
リケーションにより直接発せられるか、POPF命令の
結果として発生されるかはともかく、本発明はそれらの
命令を正確に同じやり方で取り扱う(トラップするか否
か)ことを理解すべきである。更に、本発明はコンピュ
ータ装置の仮想動作モードに限定されないことも理解す
べきである。コンピュータ装置24に類似する新規なコ
ンピュータ装置36は保護されたモード、または、38
6マイクロプロセッサの26のためにとくに書かれたD
OSアプリケーションで動作するように設計され、その
マイクロプロセッサ26におけるより大きい(32ビッ
ト)メモリを利用するように構成されている。コンピュ
ータ装置24においては、8086コンピュータ装置1
0のために書かれたこの新しいソフトウェア(古いソフ
トウェアとは反対に)で保護されたモードで動作する時
は、STI命令とCLI命令は、コンピュータ装置が仮
想モードにおいて8086ソフトウェアで動作している
時にそれらの命令がトラップされるのと同じやり方で、
かつ同じ環境において、エミュレータ32にトラップさ
れる。コンピュータ装置36により仮想モードにおいて
それら特定の命令を取り扱うことの改良は、それらの命
令を保護されたモードで取り扱うやり方にまで拡張され
ている。いいかえると、コンピュータ装置36(図4)
が8086ソフトウェアに対して仮想モードで動作しよ
うが、386ソフトウェアに対して保護されたモードで
動作しようが、STI命令とCLI命令は同じやり方で
取り扱われる。
がどのように異なるか、および既存の装置24と元の装
置10がどのように異なるかについて説明したが、本発
明はインテル社の386マイクロプロセッサおよびそれ
に関連する部品、それの80486(商標)マイクロプ
ロセッサまたは関連する任意のマイクロプロセッサの改
良に限定されるものではないが、本発明はそれらのマイ
クロプロセッサにとくに応用できる。しかし、コンピュ
ータ装置10,24,34,36のそれらの面から、本
発明は割り込みの取り扱いのみに関するものであるこ
と、およびそれらの機能についてのみ説明したことは明
らかである。各コンピュータ装置は本発明に関連しない
他の部品を含むことが明らかである。それらの部品、お
よび示さなかったが、それらのコンピュータ装置が割り
込みを取り扱うために必要などのような部品も、当業者
にとっては明らかである。更に、STI命令とCLI命
令にとくに関しては、それらの命令が特定のDOSアプ
リケーションにより直接発せられるか、POPF命令の
結果として発生されるかはともかく、本発明はそれらの
命令を正確に同じやり方で取り扱う(トラップするか否
か)ことを理解すべきである。更に、本発明はコンピュ
ータ装置の仮想動作モードに限定されないことも理解す
べきである。コンピュータ装置24に類似する新規なコ
ンピュータ装置36は保護されたモード、または、38
6マイクロプロセッサの26のためにとくに書かれたD
OSアプリケーションで動作するように設計され、その
マイクロプロセッサ26におけるより大きい(32ビッ
ト)メモリを利用するように構成されている。コンピュ
ータ装置24においては、8086コンピュータ装置1
0のために書かれたこの新しいソフトウェア(古いソフ
トウェアとは反対に)で保護されたモードで動作する時
は、STI命令とCLI命令は、コンピュータ装置が仮
想モードにおいて8086ソフトウェアで動作している
時にそれらの命令がトラップされるのと同じやり方で、
かつ同じ環境において、エミュレータ32にトラップさ
れる。コンピュータ装置36により仮想モードにおいて
それら特定の命令を取り扱うことの改良は、それらの命
令を保護されたモードで取り扱うやり方にまで拡張され
ている。いいかえると、コンピュータ装置36(図4)
が8086ソフトウェアに対して仮想モードで動作しよ
うが、386ソフトウェアに対して保護されたモードで
動作しようが、STI命令とCLI命令は同じやり方で
取り扱われる。
【0023】コンピュータ装置36が割り込み命令を取
り扱うためにどのように動作するか、および従来の技術
とコンピュータ装置より優れている点について説明した
が、ここで図5を参照する。この図はコンピュータ装置
36が上記のようにして割り込みを取り扱うやり方の流
れ図を示す。この流れ図は図4を参照して述べた、コン
ピュータ装置34と36の違いを含むばかりでなく、図
3を参照して詳しく述べた、それらのコンピュータ装置
の類似面も含む。この特定の流れ図およびこの明細書の
教示にかんがみて、当業者は本発明を容易に実施でき
る。
り扱うためにどのように動作するか、および従来の技術
とコンピュータ装置より優れている点について説明した
が、ここで図5を参照する。この図はコンピュータ装置
36が上記のようにして割り込みを取り扱うやり方の流
れ図を示す。この流れ図は図4を参照して述べた、コン
ピュータ装置34と36の違いを含むばかりでなく、図
3を参照して詳しく述べた、それらのコンピュータ装置
の類似面も含む。この特定の流れ図およびこの明細書の
教示にかんがみて、当業者は本発明を容易に実施でき
る。
【0024】図5を参照して、図示の流れ図は図4に示
されているコンピュータ装置36がSTI命令とCLI
命令を本発明に従って取り扱うやり方を示す。この流れ
図は自明であるが、ここで簡単に説明する。最初に行う
判定は、命令がSTIか、CLIかというものである。
もしCLI命令であれば、VIFフラッグ30″直ちに
0にされ、または0に維持され(エミュレーションを経
ることなく)、プロセスは終わる。命令がSTIであれ
ば、それが1であるか、0であるかを判定するためにV
IPビットが読取られる。VIPビットが0であれば、
VIFビットが1にセットされ、プロセスは終わる。V
IPビットが1であれば、プロセスが終わる前にプロセ
スはエミュレーションのためにトラップする。
されているコンピュータ装置36がSTI命令とCLI
命令を本発明に従って取り扱うやり方を示す。この流れ
図は自明であるが、ここで簡単に説明する。最初に行う
判定は、命令がSTIか、CLIかというものである。
もしCLI命令であれば、VIFフラッグ30″直ちに
0にされ、または0に維持され(エミュレーションを経
ることなく)、プロセスは終わる。命令がSTIであれ
ば、それが1であるか、0であるかを判定するためにV
IPビットが読取られる。VIPビットが0であれば、
VIFビットが1にセットされ、プロセスは終わる。V
IPビットが1であれば、プロセスが終わる前にプロセ
スはエミュレーションのためにトラップする。
【図1】初期の8086マイクロプロセッサを含む従来
のコンピュータ装置のある面を線図的に示す。
のコンピュータ装置のある面を線図的に示す。
【図2】STI割り込み命令およびCLI割り込み命令
に関連して仮想モードをとくに示す、初期の8086マ
イクロプロセッサを含むコンピュータ装置の類似の図で
ある。
に関連して仮想モードをとくに示す、初期の8086マ
イクロプロセッサを含むコンピュータ装置の類似の図で
ある。
【図3】図2に示されている装置により可能であったも
のより速く、割り込み命令を仮想モードで実行できるよ
うにする、以前に提案された変更を含む386マイクロ
プロセッサを含んでいるコンピュータ装置の類似の図で
ある。
のより速く、割り込み命令を仮想モードで実行できるよ
うにする、以前に提案された変更を含む386マイクロ
プロセッサを含んでいるコンピュータ装置の類似の図で
ある。
【図4】図3に示されている装置の利点ばかりでなく、
マイクロプロセッサと、コレクタ装置において実行する
ソフトウェアとの間のコンパチビリティに関連するある
利点を含むために、本発明に従って設計されたコンピュ
ータ装置の線図である。
マイクロプロセッサと、コレクタ装置において実行する
ソフトウェアとの間のコンパチビリティに関連するある
利点を含むために、本発明に従って設計されたコンピュ
ータ装置の線図である。
【図5】図4に示されているコンピュータ装置が本発明
に従ってCLI命令とSTI命令を実行する方法を示す
流れ図である。
に従ってCLI命令とSTI命令を実行する方法を示す
流れ図である。
12,26,26′,26″ マイクロプロセッサ 18,20,22 周辺装置 10,24,34,36 コンピュータ装置
Claims (4)
- 【請求項1】 初期に設計された単一プログラム・マイ
クロプロセッサのために以前に書かれたソフトウェア・
プログラムを、とくに設計されたホスト・オペレーティ
ング・ソフトウェア・プログラムの下で、保護された、
ページ付き、マルチタスキング環境において実行させる
仮想動作モードで動作するためにとくに設計された与え
られたマイクロプロセッサと、前記初期のマイクロプロ
セッサにより、CLEAR INTERRUPT(CL
I)およびSET INTERRUPT(STI)命令
を含むある感知可能な割り込み命令に関連する命令が実
行されたであろうようなやり方をエミュレートするため
に、前記ホスト・オペレーティング・ソフトウェア・プ
ログラムの部分を成すエミュレーション・ソフトウェア
を用いて前記以前に書かれたプログラムにより開始され
る前記命令を実行する手段とを含むコンピュータ装置に
おいて、 (a)(i) 前記以前に書かれたプログラムにより開始さ
れる割り込み命令の実行を可能にするためのSTI状態
と、前記割り込み命令の実行を不能にするCLI状態と
の間で動作するVIRTUAL INTERRUPT
FLAG(VIF)ビットと、(ii)割り込み要求が実行
を待っているPENDING状態と、割り込み要求が実
行を待っていないNONPENDING状態との間で動
作するVIRTUAL INTERRUPT PEND
ING(VIP)ビットと、を含み、前記与えられたマ
イクロプロセッサの部分を形成するEFLAGSレジス
タと、 (b)前記与えられたマイクロプロセッサの部分と前記
ホスト・オペレーション・ソフトウェアの部分とを形成
し、VIPビットがそれのNONPENDING状態に
ある限り、前記エミュレーション・ソフトウェアを使用
することなしに、前記EFLAGSレジスタのVIFビ
ットの状態を変更する手段と、 (c)前記与えられたマイクロプロセッサと前記ホスト
・オペレーション・ソフトウェアの部分を成し、前記V
IPビットのPENDING状態と、前記VIFビット
のCLI状態と、前記以前に書かれたソフトウェア・プ
ログラムによって続いて開始されるSTI命令とに応答
して、前記VIFビットの状態をCLI状態からSTI
状態へ最初に変更することなしに、STI命令と待機割
り込み要求を前記エミュレーション・ソフトウェアによ
り自動的に実行する手段と、を備えるコンピュータ装
置。 - 【請求項2】 初期に設計された単一プログラム・マイ
クロプロセッサのために以前に書かれたソフトウェア・
プログラムを、とくに設計されたホスト・オペレーティ
ング・ソフトウェア・プログラムの下で、保護された、
ページ付き、マルチタスキング環境において実行させる
仮想動作モードで動作するためにとくに設計された与え
られたマイクロプロセッサと、前記初期のマイクロプロ
セッサにより、CLEAR INTERRUPT(CL
I)およびSET INTERRUPT(STI)命令
を含むある感知可能な割り込み命令に関連する命令が実
行されたであろうようなやり方をエミュレートするため
に、前記ホスト・オペレーティング・ソフトウェア・プ
ログラムの部分を成すエミュレーション・ソフトウェア
を用いて前記以前に書かれたプログラムにより開始され
る前記命令を実行する手段とを含むコンピュータ装置を
動作させる方法において、 (a)(i) 前記以前に書かれたプログラムにより開始さ
れる割り込み命令の実行を可能にするためのSTI状態
と、前記割り込み命令の実行を不能にするCLI状態と
の間で動作するVIRTUAL INTERRUPT
FLAG(VIF)ビットと、(ii)割り込み要求および
前記以前に書かれたプログラムが実行を待っているよう
なPENDING状態と、割り込み命令が実行されない
か、実行を待っていないようなNONPENDING状
態との間で動作するVIRTUAL INTERRUP
T PENDING(VIP)ビットと、を含み、前記
与えられたマイクロプロセッサの部分を形成するEFL
AGSレジスタを提供する過程と、 (b)VIPビットがNONPENDING状態にある
限りは、前記エミュレーション・ソフトウェアを使用す
ることなしに前記EFLAGSレジスタのVIFビット
の状態を変える過程と、 (c)前記以前に書かれたプログラムにより続いて開始
される前記VIPビットのPENDINQG状態と、前
記VIFビットのCLI状態と、STI命令とに応答し
て続いた開始されるSTI命令と待機割り込み命令を、
VIFビットの状態をCLI状態からSTI状態へ変え
ることなしに、前記エミュレーション・ソフトウェアに
より自動的に実行する過程と、を備えるコンピュータ装
置を動作させる方法。 - 【請求項3】 大容量記憶装置を有するマイクロプロセ
ッサのために以前に書かれたソフトウェア・プログラム
を、とくに設計されたホスト・オペレーティング・ソフ
トウェア・プログラムの下で、保護された、ページ付
き、マルチタスキング環境において実行させる保護され
た動作モードで動作するためにとくに設計された与えら
れたマイクロプロセッサと、前記与えられたプログラム
により開始されたCLEAR INTERRUPT(C
LI)およびSET INTERRUPT(STI)命
令を含む、ある感知可能な割り込み命令に関連する命令
を、前記ホスト・プログラムの部分を成すエミュレーシ
ョン・ソフトウェアを用いて、実行する手段とを含むコ
ンピュータ装置において、 (a)(i) 前記以前に書かれたプログラムにより開始さ
れる割り込み命令の実行を可能にするためのSTI状態
と、前記割り込み命令の実行を不能にするCLI状態と
の間で動作するVIRTUAL INTERRUPT
FLAG(VIF)ビットと、(ii)割り込み要求が実行
を待っているPENDING状態と、割り込み要求が実
行を待っていないNONPENDING状態との間で動
作するVIRTUAL INTERRUPT PEND
ING(VIP)ビットと、を含み、前記与えられたマ
イクロプロセッサの部分を形成するEFLAGSレジス
タと、 (b)前記与えられたマイクロプロセッサの部分と前記
ホスト・オペレーション・ソフトウェアの部分とを形成
し、VIPビットがそれのNONPENDING状態に
ある限り、前記エミュレーション・ソフトウェアを使用
することなしに、前記EFLAGSレジスタのVIFビ
ットの状態を変更する手段と、 (c)前記与えられたマイクロプロセッサと前記ホスト
・オペレーション・ソフトウェアの部分を成し、前記V
IPビットのPENDING状態と、前記VIFビット
のCLI状態と、前記与えられたプログラムによって続
いて開始されたSTI命令とに応答して、前記VIFビ
ットの状態をCLI状態からSTI状態へ最初に変更す
ることなしに、STI命令と待機割り込み要求を前記エ
ミュレーション・ソフトウェアにより自動的に実行する
手段と、を備えるコンピュータ装置。 - 【請求項4】 大容量記憶装置を有するマイクロプロセ
ッサのために以前に書かれたソフトウェア・プログラム
を、とくに設計されたホスト・オペレーティング・ソフ
トウェア・プログラムの下で、保護された、ページ付
き、マルチタスキング環境において実行させる保護され
た動作モードで動作するためにとくに設計された与えら
れたマイクロプロセッサと、前記与えられたプログラム
により開始されたCLEAR INTERRUPT(C
LI)およびSET INTERRUPT(STI)命
令を含む、ある感知可能な割り込み命令に関連する命令
を、前記ホスト・プログラムの部分を成すエミュレーシ
ョン・ソフトウェアを用いて、実行する手段とを含むコ
ンピュータ装置を動作させる方法において、 (a)(i) 前記以前に書かれたプログラムにより開始さ
れる割り込み命令の実行を可能にするためのSTI状態
と、前記割り込み命令の実行を不能にするCLI状態と
の間で動作するVIRTUAL INTERRUPT
FLAG(VIF)ビットと、(ii)割り込み要求および
前記以前に書かれたプログラムが実行を待っているよう
なPENDING状態と、割り込み命令が実行されない
か、実行を待っていないようなNONPENDING状
態との間で動作するVIRTUAL INTERRUP
T PENDING(VIP)ビットと、を含み、前記
与えられたマイクロプロセッサの部分を形成するEFL
AGSレジスタを提供する過程と、 (b)VIPビットがNONPENDING状態にある
限りは、前記エミュレーション・ソフトウェアを使用す
ることなしに前記EFLAGSレジスタのVIFビット
の状態を変える過程と、 (c)前記以前に書かれたプログラムにより続いて開始
された前記VIPビットのPENDINQG状態と、前
記VIFビットのCLI状態と、STI命令とに応答し
て続いて開始されるSTI命令と待機割り込み命令を、
VIFビットの状態をCLI状態からSTI状態へ変え
ることなしに、前記エミュレーション・ソフトウェアに
より自動的に実行する過程と、を備えるコンピュータ装
置を動作させる方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US76417091A | 1991-09-23 | 1991-09-23 | |
US764,170 | 1991-09-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05216690A true JPH05216690A (ja) | 1993-08-27 |
Family
ID=25069878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4270817A Pending JPH05216690A (ja) | 1991-09-23 | 1992-09-16 | コンピュータ装置およびコンピュータ装置を動作させる方法 |
Country Status (6)
Country | Link |
---|---|
JP (1) | JPH05216690A (ja) |
KR (1) | KR930006555A (ja) |
CN (1) | CN1071269A (ja) |
DE (1) | DE4231552A1 (ja) |
GB (1) | GB2259794A (ja) |
IT (1) | IT1255601B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117008977A (zh) * | 2023-08-08 | 2023-11-07 | 上海合芯数字科技有限公司 | 一种可变执行周期的指令执行方法、系统和计算机设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69622832T2 (de) * | 1995-05-05 | 2003-04-10 | Apple Computer | Vorrichtung und verfahren für kooperative unterbrechungen in einer preemptiven prozessablauffolgeplanungsumgebung |
EP0849129B1 (de) * | 1996-12-21 | 2004-06-16 | Volkswagen Aktiengesellschaft | Seitenairbagsystem für ein Kraftfahrzeug |
US20040117532A1 (en) * | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4779187A (en) * | 1985-04-10 | 1988-10-18 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
-
1992
- 1992-08-19 GB GB9217612A patent/GB2259794A/en not_active Withdrawn
- 1992-09-16 JP JP4270817A patent/JPH05216690A/ja active Pending
- 1992-09-17 IT ITMI922140A patent/IT1255601B/it active IP Right Grant
- 1992-09-18 KR KR1019920016998A patent/KR930006555A/ko not_active Application Discontinuation
- 1992-09-21 DE DE4231552A patent/DE4231552A1/de not_active Withdrawn
- 1992-09-23 CN CN92110981A patent/CN1071269A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117008977A (zh) * | 2023-08-08 | 2023-11-07 | 上海合芯数字科技有限公司 | 一种可变执行周期的指令执行方法、系统和计算机设备 |
CN117008977B (zh) * | 2023-08-08 | 2024-03-19 | 上海合芯数字科技有限公司 | 一种可变执行周期的指令执行方法、系统和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
IT1255601B (it) | 1995-11-09 |
DE4231552A1 (de) | 1993-03-25 |
CN1071269A (zh) | 1993-04-21 |
ITMI922140A0 (it) | 1992-09-17 |
GB2259794A (en) | 1993-03-24 |
GB9217612D0 (en) | 1992-09-30 |
ITMI922140A1 (it) | 1994-03-17 |
KR930006555A (ko) | 1993-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6047307A (en) | Providing application programs with unmediated access to a contested hardware resource | |
RU2374675C2 (ru) | Системы и способы использования синтезированных команд в виртуальной машине | |
JP2650675B2 (ja) | マルチモードマイクロプロセッサにおいてプログラムを実行する方法及びオペレーティングシステム | |
US5459869A (en) | Method for providing protected mode services for device drivers and other resident software | |
US5701493A (en) | Exception handling method and apparatus in data processing systems | |
EP1467282B1 (en) | Operating systems | |
KR930008265B1 (ko) | 가상 계산기 시스템의 입출력 제어방법 | |
US7478394B1 (en) | Context-corrupting context switching | |
JPH11149385A (ja) | マルチos構成方法 | |
US7010671B2 (en) | Computer system and method for executing interrupt instructions in two operating modes | |
EP0588473B1 (en) | Method and apparatus for emulating the environment of a microprocessor | |
JP2655615B2 (ja) | 情報処理装置 | |
JP4026667B2 (ja) | マルチos構成方法 | |
US5003468A (en) | Guest machine execution control system for virutal machine system | |
JPH05216690A (ja) | コンピュータ装置およびコンピュータ装置を動作させる方法 | |
JP2001216172A (ja) | マルチos構成方法 | |
JP2002157132A (ja) | コンピュータ、その制御方法及びその制御方法を記録した記録媒体 | |
JPS6049352B2 (ja) | デ−タ処理装置 | |
KR100506254B1 (ko) | 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법 | |
JPH1069393A (ja) | 仮想計算機エミュレータ、仮想計算機エミュレート方法 および仮想計算機エミュレートプログラムを記録した記録 媒体 | |
JP3449812B2 (ja) | 制御用電子装置 | |
JPS61184644A (ja) | 仮想計算機システム制御方式 | |
JPH0421892B2 (ja) | ||
JPS63276635A (ja) | 割り込み制御方法 | |
JPH06202901A (ja) | Romエミュレート方式デバッガ及びromエミュレート方法 |