JPS61206043A - 仮想計算機システムにおける割込制御方法 - Google Patents

仮想計算機システムにおける割込制御方法

Info

Publication number
JPS61206043A
JPS61206043A JP60046676A JP4667685A JPS61206043A JP S61206043 A JPS61206043 A JP S61206043A JP 60046676 A JP60046676 A JP 60046676A JP 4667685 A JP4667685 A JP 4667685A JP S61206043 A JPS61206043 A JP S61206043A
Authority
JP
Japan
Prior art keywords
interrupt
address
vector table
control program
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
Application number
JP60046676A
Other languages
English (en)
Inventor
Toshio Hirozawa
広沢 敏夫
Junichi Kurihara
潤一 栗原
Shigemi Okumura
成美 奥村
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 JP60046676A priority Critical patent/JPS61206043A/ja
Priority to US06/837,345 priority patent/US4812967A/en
Priority to DE19863607889 priority patent/DE3607889A1/de
Publication of JPS61206043A publication Critical patent/JPS61206043A/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
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、仮想計算機システムに関し、特に、仮想計算
機システムにおりる割込制御に関する。
〔発明の背景〕
仮想計算機システA (Virtual Machin
e、gystem、以下VMSと略記)は、第2図に概
念的に示すように、1台の実計算機(13are Ma
chine。
以下BMと略・記)501上で、複数のオペレーティン
グ−システム(Qperating System、以
下O8と略記)506,507を、見掛は上同時に走行
させることを可能にするものである。その実現の九めに
、各08506,507と8M501の間に直接のベー
ス・マシン・インタフェースを設ける代シに、特殊な制
御プログラム(例えば、パーチャに一−1’/7−モニ
タ: virtual MachineMonitor
などと呼ばれる。以下VMMと略記)502が用意され
、これが、ベース・マシン・インタフェース503を介
して直接BM501に作用するとともに、各08506
,507に対して、ベース・マシン・インタフェースs
03と同等+7)ベース・マシン・インタフェース50
8を提供する。VMM501fペース・マシン・インタ
フェース508を作シ出すことによって観念的に形成さ
れるマシンを、仮想計算機(バーチャル・マシy : 
vi rtual Machine 、以下VMと略記
)という。第2図には、08506が働ら<VM504
と、08507が働ら<VM507が示されているが、
いうまでもなく、任意数のVMを形成することカテきる
。VM504とVM505はVMM502の制御の下に
切替えられ、かくて、08506と08507が見掛は
上同時に動作する。
他方、08506及び507は、ユーザ・プログラム(
User Program、以下UPと略記) 515
 。
516及び517,518に対して、それぞれ、拡張マ
シン・インタフェース513及び514を提供し、それ
により、拡張マシン(ExtendedMachine
 、以下EMと略記)509〜512が形成される。E
M509〜512のそれぞれは、それに連係するUPか
らのあるまとまった機能に対する処理要求(スーパバイ
ザ・コール、ファンクション・コールなどと呼ばれ、る
)に応じた処理をそれぞれのO8内で実行する機能と、
ベース・マシン・インタフェース機能とを有している。
したがって、O8506と08507が異なったもので
あれば、それぞれのO8に属するEM(例えば509と
511)は、互いに異なる機能を有する。
以上のように、VMSは、単一のBM上で複数の異なる
O8が、見掛は上同時に走行することを可能にし、その
結果、次のような効用が期待できる。
(1)稼働中のシステムのサービスを停止することなし
に、新しく開発されるシステムのデバッグやテストを行
なうことができる。
(2)単一のBMで複数の異なるO8が動作できるので
、ハードウェア資源の使用効率が改善される。
(3)  BMとはアーキテクチャ又はシステム構成を
異にする計算機システムを仮想的に作ることができ、し
たがって、新しいマシン又はシステムの制御プ″ログラ
ムのテストを、実際のハードウェアが存在しない状態で
行なうことができる。
ところが、VMSの実現のために、特殊な制御プログラ
ムVMM502が存在する。VMM502は、VM50
4,505等を効率良く動作させるために、・マルチプ
ログラミング技術を用いて、8M501のハードウェア
資源を時間的及び空間的に分割して、各VM504,5
05に割当てる。
ハードウェア資源を操作する命令は、VMS内のシステ
ムの全体的完全性を保証するために、いわゆる特権命令
として扱われ、特権モードと呼ばれる動作モードにおい
てのみ実行可能となる。VMM502は、このような特
権命令が08506又は507から発行されたことを検
知すると、その命令を自分で解釈・実行し、それが終了
すると、制御を走行中のO8に戻す。この処理は、8M
501の資源をVM間で共用するために必要なものであ
り、この処理時間がVMS特有のオーバヘッドとなる。
また、主メモリの共用は、仮想記憶方式の技術によシ実
現されているので、そのためのアドレス変換に要する時
間も、オーバヘッドとなる。
これらのVMS特有のオーバヘッド中の主なものは、次
のように大別できる。
(1)特権命令のシミュレーション処理にょるオーバヘ
ッド (2)割込みのシミュレーション処理にょるオーバヘッ
ド (3)仮想記憶機能のサポートのためのアドレス変換変
換によるオーバヘッド           □(4)
VM間の切替サービス処理(ディスパッチ処理)のため
のオーバヘッド 前記(3)のオーバヘッドを削減する試みの例は、特開
昭50−23146号公報及び同57−212680号
公報に記載されている。特開昭55−53749号公報
は、前記(1)及び伐)のオーバヘッドの削減へのアプ
ローチの一つを示す。これは、BM内に、諸VMが使用
するための一群の演算レジスタと、VMMが使用するた
めの一群の演算レジスタを、別個に用意することによシ
、前記0)及び(2)の処理に伴なう演算レジスタ群の
内容の退避/回復手続によるオーバヘッドを、削減しよ
うとするものである。
ところで、従来、VMSは、大型汎用計算機の分野で考
慮の対象とされてきた。前掲公報に記載された発明も、
大型機を対象としたものと考えられる。他方、LSI技
術の最近における目覚しい発展により、マイクロ・コン
ピュータ技術が大幅に進歩し、その結果、マイクロ・コ
ンピュータと周辺装置を組合せた、いわゆるパーソナル
・コンピュータ(personal Computer
 、以下PCと略記)が広く実用されるに至った。そし
て、種々のPCのために多数の応用プログラムが開発さ
れつつある。そこで、他のPC用に開発された魅力的な
応用プログラムを使いたいという要求が生じる。
しかし、これらの応用プログラムは、それぞれ特定のO
8の下で動作するように作られており、特にPCの場合
、応用プログラムのO8への密着性が強いから、これら
を異なるO8を備えたPCで使用しよとすれば、一般に
は、O8を入替えるか、あるいは、その使いたい応用プ
ログラムのO8依存部分を作シ変えなければならず、い
ずれにしても、非常に不便である。したがって、この問
題の解決策として、単一の実計算機上で複数のO8が動
作するのを可能にするVMSの採用は、PCのO8の規
模が大型機用O8のそれと比較してずつと小さいことも
あって、甚だ効果的であろう。
しかしながら、現状において、PCには、前記のような
VMMのオーバヘッドを低減するための手段が備えられ
ていない。これらのオーバヘッドを極力低減するための
改良が、VMSのPCへの適用のために望まれる。特に
、割込みの処理については、前掲特開昭55−5374
9号のような技術が仮りにPCに適用可能であり、それ
によシ、演算レジスタ群の内容の退避/回復手続のオー
バヘッドが削減できたとしても、割込みのシミュレーシ
ョン処理には、後述するように、他にもVMMが行なわ
なければならないいくつかの作業があシ、これらが依然
としてオーバヘッドとして残る。この問題を次に詳述す
る。
第3図は、マイクロ・プロセッサ上に構築されたVMS
において、vMMが割込動作のシミュレーションを行な
うという、常識的な方法が採用された場合に、割込みが
発生した時に行なわれる動べ 作を模冬的に表わす。図中、第2図におけるのと同一の
符号は同等の要素を示す。あるVMに対応する0850
6の下でユーザ・プログラム(UP)515が実行され
ている過程で、割込みが要求され、それが割込条件を満
たすと、UP 515の後続命令群の実行は中断され、
8M501のハードウェアが割込処理動作を開始する。
この動作の内容と順序は、大要、次のとおりである。
(1)マイクロ・プロセッサの状態(status)を
適当なレジスタに一時的に退避。
(2)  VMM502内のペクタ・テーブル550に
おける割込番号(割込みの識別番号)に対応するエント
リ位置(ペクタ・アドレス)を、割込番号から算出。
(3)プログラム・カウンタ(IAR)と諸演算レジス
タの内容及び(1)で退避させた状態を、VMM502
内のスタック558に格納。
(4)(2)で得られたペクタ・アドレスから新命令の
アドレスを読出して、IARにセット。
VMM502内のペクタ・テーブル550の各エントリ
位置は、対応する番号の割込みを処理するためのプログ
ラムの先頭アドレスを保持している。例えば、二ン)す
551は、特権命令例外に対応し、特権命令のシミュレ
ーション処理のためのプログラム552の先頭アドレス
を保持し、エントリ553はゼロ割算例外に対応し、そ
のための割込動作反映処理プログラム554の先頭アド
レスを保持している。これらの他に、命令例外、入出力
割込み、タイマ割込みなどに対応して、それぞれのペク
タ・テーブル・エントリと、処理プログラムとが、VM
M502内に用意される。
走行VMの切替えのためのタイマ割込みや特権命令例外
などのような、■MM個有の機能のための割込みを除け
ば、vMMの割込処理プログラムは、割込み動作をシミ
ュレーションにより走行中のVMに反映させる処理を行
なう。例えば、割込動作反映処理プログラム554は、
VM、の08506内のペクタ・テーブル555とスタ
ック556のアドレスを指定して、ハードウェア501
の動作をシミュレートする。すなわち、割込動作反映処
理プログラム554は、7MM内のスタック558に退
避されていたデータをVM内のスタック556に移すと
ともに、ペクタ・テーブル555から割込番号に対応す
る割込処理プログラム557の先頭アドレスを読出して
、IARにセットする。このようにペクタ・テーブルを
用いるのが、マイクロ・プロセッサにおける割込制御の
一つの特徴である。以上の処理のために、VMMの処理
プログラムは、500〜600命令程度走行し、これが
オーバヘッドとなる。
なお、現用の代表的なマイクロプロセッサのアーキテク
チャは、例えば、次の文献に記載されている。
′″A m1croprocessor Archit
ecture for a間 (::hanging World : ’l’he 
1llotorola 68000 ”Compute
r 、 Vot、 12 、 po、43〜51 (1
9792)EEE @1APX86 ファミリ・ユーザーズマニュアル”イ
ンテル・ジャパン:資料番号205885J〔発明の目
的〕 本発明の目的は、仮想計算機システム(VMS)におけ
る割込処理の制御プログラム(VMM)によるシミュレ
ーションのオーバヘッドを削減して、PCのような極め
て小型の計算機システムにおいても一1VMSが容易に
採用できるようにすることにある。
〔発明の概要〕
本発明は、割込処理に際して、vMMの介入を可能な限
り排除し、vMの割込処理プログラムを直接起動しよう
と意図するものである。この意図を実現するため、本発
明によれば、割込みの発生時にBMのハードウェアが参
照するVMMのベクタ・テーブルの各エントリに、その
エントリに対応する割込番号に対する走行VMの割込処
理プログラムのアドレスが、予め書込まれる。もっとも
、タイマ割込みのような、vMMが直接処理しなければ
ならない割込みが除外されるのは、いうまでもない。こ
れによシ、発生した割込みがVMKよる直接の処理を許
されたものである限り、vMMは働かず、vMの割込処
理プログラムが直ちに必要な処理を行なうことができ、
したがって、VMMvMMのスタックを指示するように
、予めセットされる。したがって、割込処理に際して退
避すべきレジスタ類の内容は、走行中のVMのスタック
に直接格納され、その結果、VMMのスタックを経由す
るために生じるオーバヘッドが除かれる。
〔発明の実施例〕
第1図は、本発明による割込処理動作の概略を、第3図
と対比できる形式で表わしたものである。
ハードウェア501の動作(2)までは第3図と同じで
あシ、動作(3)以降に本発明の特徴が現われる。
本発明によれば、BMのハードウェア501の動作(3
)において、IAR,諸演算レジスタなどの内容とプロ
セッサの状態は、VMM502内のスタック558にで
はなく、vMの08506内のスタック556に、直接
退避される。通常、スタック558のアドレスは、シス
テム・スタック・ポインタ(以下SSPと略記)によっ
て指示されるので、このSSPの内容をディスパッチ処
理においてスタック556のアドレスに書替えておくこ
とにより、前記の直接退避が実現される。
また、ハードウェア501の動作(4)においても、I
ARには、vMの08506の割込処理プログラム55
7の先頭アドレスが、直接セットされる。
この動作は、VMM502内のベクタ・テーブル550
における対応エントリ553の内容を、ディスパッチ処
理において、VMのO8506内の割込処理プログラム
557の先頭アドレスに書替えておくことにより実現さ
れる。
したがって、図中点線で描かれたVMM 502内の割
込動作反映処理プログラム(例えば554)を除くこと
ができ、その結果、反映動作のための500〜600命
令の実行に要する時間、すなわちVMMのオーバヘッド
を、除くことができる。
ディスパッチ処理における8SPとベクタ・テーブルの
書替えの制御は、以下に詳述される。
まず、予備知識として、第4図により、VMSにおける
実メモリの各VMへの割当てと、ディスパッチ処理に必
要な情報を保持する制御ブロックを説明する。図中、第
1図ないし第3図におけるのと同じ符号は同等の要素を
示す。VMI  504とVM2505の各アドレス空
間220(論理アドレスO〜m)と230(論理アドレ
スQ−n)には、それぞれ、実メモ+7200の領域2
01(物理アドレスα〜β−1)と202(物理アドレ
スβ〜N)が割当てられ、VMM502には、実メモリ
の領域210(物理アドレスO〜α−1)が割当てられ
ている。
VMM領域210には、VMI 、VM2 K対応して
、ディスパッチ処理に必要な制御情報を保持する制御プ
o ツクVMLISTt 1.VMLISTz2が用意
されており、走行中のVMに対応する制御ブロックのア
ドレスは、これもVMM領域210内に設けられた制御
ブロックポインタVMIDM3によって指示される。各
制御ブロックの諸エントリハ、次の制御ブロックのアド
レス4、対応するVMに割当てられた実メモリ領域の先
頭アドレス5、同領域のサイズ(エクステント・サイズ
)6、当該VMのベクタ・テーブルのアドレス7、後述
する割込リスト11のアドレス8、当該VMのためのS
SPの値9、及び各種レジスタの写し10を、それぞれ
保持する。エントリ8が指示する割込リスト11は、こ
れもVMM領域210内にあり、7MMの介入なしに当
該VMによる直接処理が許された割込みの識別番号12
〜14と、エントリの個数(すなわち、保持された割込
番号の個数)15とを保持する。
VMM502は、あるVMの走行を開始させるに当たっ
て、当該VMに実ノ・−ドウエア(CPUやレジスタ群
など)を割当てるためのディスバッチ処理を行ない、こ
の時に、制御ブロック(VMLI8T)に保持されてい
たレジスタ群の写し10が実レジスタ群に移される。こ
のディスパッチ処理において、先に述べたような、7M
M502内のベクタ・テーブル550(以下システム・
ベクタ・テーブルという)とSSPの内容の書替えが、
第5図のフローチャートに示される手順に従って行なわ
れる。
第5図において、処理31では、VMIDM3が指示す
る制御ブロック(例えばVMLISTI 1 )へのア
クセスが行なわれる。この制御ブロックは、これから走
行サービスを受けるVM(例えばVML)の各種状態を
保持している。
処理32において、アクセスした制御ブロックから、当
該VMのベクタ・テーブル(例えばベクタンテーブル5
55)のアドレス7が読出される。
この読出されたアドレス値を′a″とする。
続いて、処理33は、当該制御ブロックから割込リスト
11のアドレスXを読出して、それに基づき割込リス)
11にアクセスし、このリストのエントリ数@t”15
を読出す。
処理34でカウンタの計数値″′i”が′0”に初期化
され、処理35でこれに61”が加算される。次いで、
処理36で計数値″′i”とエントリ個数″′t”が比
較され、′i”が”t”を越えていなければ、処理37
〜39が実行される。処理35〜39は、計数値tti
#がt tnを越えるまで、すなわち、割込リスト11
の全エントリが処理されるまで、反覆される。
処理37は、割込リスト11の第11”エントリから、
そこに保持されていた割込番号を読出す。
ここで得られた割込番号をb”とする。
処理38において、まず、当該VMのベクタ・テーブル
中の割込番号1b″に対応するエントリのアドレスが、
処理32で得られたベクタ・テーブル・アドレス″a”
と、処理37で得られた割込番号@b#かも、次式によ
り計算される。
a + b x [エントリ・サイズ〕ここで、エント
リ・サイズとは、ベクタ・テーブルの1エントリを構成
するバイトの個数であり、通常は4である。続いて、前
記のようにして得られたアドレスを用いて、目的のエン
) IJの内容が読出される。このエントリの内容は、
番号“b”で表わされる割込みに対するVMの処理プロ
グラム(例えば割込処理プログラム557)の先頭アド
レス(ただし論理アドレス)である。このアドレスを′
C”とする。
処理39では、こうして得られた′C”と、制御ブロッ
ク中のVMメモリ領域先頭アドレス5(この値を′d#
とする)とが加算されて、割込番号″′b″に対応する
VMの割込処理プログラムの先頭の物理アドレスが得ら
れる。
次いで、処理40において、割込番号@b”に対応する
システム・ベクタ・テーブル550のエントリ(例えば
エントリ553)の内容が、処理39で得られたI:c
+d:lの値、すなわち、割込番号″′b”に対応する
VMの割込処理プログラムの先頭の物理アドレスで、置
換される。
他方、処理36において、計数値″″i”が′t”を越
えていれば、割込リスト11の全エントリ、すなわち、
vMMの介入なしに処理することが許された全割込番号
が、処理を終ったことになるから、処理41に移シ、こ
こで、SSPの内容が、を 制御ブロック中の8SP値1に領域先頭アドレス″′d
″を加えた値で置換される。制御ブロック中08SP値
亀は、当該VMのスタック(例えばスタック556)の
論理アドレスでラシ、かくて、SSPの内容は、通常の
方法によるときのようなVMMのスタック558ではな
く、走行中のVMのスタック(例えば556)を指示す
ることになる。このSSPは一1図示されていないが、
マイクログロセツサ中に存在するレジスタで、プログラ
ムによる参照・更新が可能なものである。
前記の処理39における、システム・ベクタ・テーブル
に格納すべきVMの割込処理プログラムの先頭アドレス
の決定と、処理41における、SSPに格納すべきVM
O8AP値の決定のために、7Mメモリ領域の先頭アド
レス″d”の加算が行なわれている。しかし、この加算
操作は、必ずしもディスパッチ処理におけるこれらの処
理中に行なわなければならないものではない。制御ブロ
ック1.2及び割込リスト11等は、vMMが各VMを
生成する時に生成するものである。したがって、これら
の生成時に、割込リスト11の各工/トリに、割込番号
に加えて、vMの対応する割込処理プログラムの先頭の
物理アドレス(VMのベクタ・テーブルに保持されたア
ドレスにd”を加えた値)を格納し、また、制御ブロッ
ク中のSSP値9としても、vMのスタックの物理アド
レスを格納しておくのが、代替策の一つである。
このような措置が講じてあれば、ディスパッチ処理にお
いては、割込リスト中のアドレス値と制御ブロック中の
SSP値を、そのままシステム・ペクタ・テーブルとS
SPに、それぞれ格納することができる。
第6図は、SSPが、本発明により、走行中のVMのス
タック領域556,560等を直接指示する様子を示す
。この直接指示により、割込処理において、レジスタ群
の内容は、従来のようにVMMのスタック558を経由
することなく、走行中のVMのスタックに直接退避せし
められる。
いうまでもなく、VMMが走行を開始するときには、S
SPの内容は、vMMのスタック領域550を指示する
値に書替えられる。
第7図は、本発明が適用されたパーソナルコンピュータ
の一例を示す。図において、符号51はマイクロ・プロ
セッサ、52はり゛ロック・ジェネレータ、53は割込
制御回路、54は主メモリ(RAM)であり、第4図の
実メモリ200を提供する。R,AM54には、第1図
及び第2図に示された制御プctグ5ム(VMM)s0
2,08506、ユーザ・プログラム515等が格納さ
れており、そして、VMM502は、第4図に示された
制御ブロック1,2、割込リスト11などの制御情報を
含む。符号55はメモリ制御部(MCU)、56はディ
スク制御回路、57は磁気ディスク・ファイル(DIS
C)、58はプリンタ制御回路、59はプリンタ装置(
PR,T)、60はディスプレイ/キー・ボード(D/
K)制御回路、61はキー・ボード(KEY)付ディス
プレイ(CRT)装置、62は通信制御回路、63は通
信回路装置である。周辺装置については、必要に応じて
取捨選択し、あるいは図示以外のものを採用してもよい
CPU51と各コンポーネントとは、24ビツト幅のア
ドレス・バス66.16ビツト又は32ビツト幅のデー
タ・バス67、各部への制御信号線群70、及び各部か
らの応答信号線群71により相互接続されている。加え
て、CPU51とMCU35は、CPU510動作モー
ト、VM番号、アクセス形態等を示す情報のためのファ
ンクション・ライン・パス68と、MCU35からCP
U51へのアドレス例外やメモ゛す・エラーなどの報告
のための信号線群73とにより接続され機器 る。諸人#日1らの割込要求は、信号線群74から割込
制御回路53を経て割込ライン・パス72によシ、CP
U51に伝えられる。
CPU51は、希望するメモリ・アドレスをアドレス・
バス66に送出するとともに、制御情報を信号線群70
及びファンクション・ライン・パス68に送出して、R
AM54に格納されているVMM502.08506、
UP515等ノ中カら必要なものを読出させ、データバ
ス67を介して受取って、順次実行し、また、同様にし
て、制御ブロック1,2や割込リスト11などを、必要
に応じて入手する。MCU35は、vMの走行中、第4
図に示された、各VMメモリの論理アドレスから実メモ
リ(RAM54)の物理アドレスへの変換を行なう。C
PU51によるプログラムの実行中に、入出力機器から
の割込要求が生じれば、それは前記のようにして割込制
御回路53を経由してCPU51に伝えられ、また、C
−PU51の内部においても、ゼロ割算例外や命令例外
などの割込原因が発生する。その時、タイマ割込みや特
権命令割込みなどの、7MM自身が実行しなければなら
ない場合を除き、前述のようにして、VMMの介入によ
るオーバヘッドなしに、割込みの処理が行なわれる。
〔発明の効果〕
本発明によれば、普通ならば不可欠なVMMの割込動作
反映処理が不要となるから、そのために生じるべきオー
バヘッドが除かれ、効率のよいVMSを構築することが
でき、このことは、特に、PCのような小型の計算機に
とって、非常に効果的である。
【図面の簡単な説明】
第1図は本発明による割込処理過程を例示する模式図、
第2図は仮想計算機システムの概念図、第3図は通常の
方法による割込処理過程を例示する模式図、第4図は実
メモリと仮想計算機のメモリと制御ブロックの模式図、
第5図はディスパッチ処理中の本発明に基づく処理のフ
ローチャート、第6図はシステム・ポインタとスタック
の関係を表わす模式図、第7図は本発明が適用されたパ
ーソナル・コンピュータの一例のブロックダイヤグラム
である。 501・・・割込みに対するハードウェアの動作、50
2・・・制御プログラム、506・・・仮想計算機のO
8,550・・・制御プログラムのペクタ・テーブル、
554・・・制御プログラム中の割込動作反映処理プロ
グラム、558・・・制御プログラムのスタック、55
5・・・仮想計算機のペクタ・テーブル、556・・・
仮想計算機のスタック、557・・・仮想計算機の割込
処理プログラム。

Claims (1)

  1. 【特許請求の範囲】 1、制御プログラムの管理下に仮想計算機が実計算機上
    で走行し、前記制御プログラムと仮想計算機のそれぞれ
    が割込原因別のエントリに割込処理プログラムのアドレ
    スを保持するベクタ・テーブルを有する仮想計算機シス
    テムにおいて、前記仮想計算機の走行開始に先立つて前
    記制御プログラムのベクタ・テーブルのエントリにその
    エントリに対応する割込原因に対する当該仮想計算機の
    割込処理プログラムのアドレスをセットするベクタ・テ
    ーブル設定過程と、当該仮想計算機の走行中に発生した
    割込みに応答して前記制御プログラムのベクタ・テーブ
    ルを参照してそこに保持されたアドレスに基づき割込処
    理プログラムの実行を開始させる過程とを含む割込制御
    方法。 2、特許請求の範囲1において、そのベクタ・テーブル
    設定過程は、当該仮想計算機のベクタ・テーブルに保持
    されたアドレス値と当該仮想計算機に割当てられた単一
    の実メモリ領域の先頭アドレスを加算して前記制御プロ
    グラムのベクタ・テーブルにセットされるべきアドレス
    値を決定する過程を含む割込制御方法。 3、特許請求の範囲1又は2において、そのベクタ・テ
    ーブル設定過程は、予め指示された当該仮想計算機のベ
    クタ・テーブルのアドレスと制御プログラムの介入なし
    に処理することが許された割込みの識別番号とに基づい
    て当該仮想計算機のベクタ・テーブルにアクセスする過
    程と、前記許された割込みの識別番号に基づいて前記制
    御プログラムのベクタ・テーブルにアクセスする過程と
    を含む割込制御方法。 4、制御プログラムの管理下に仮想計算機が実計算機上
    で走行し、前記制御プログラムと仮想計算機のそれぞれ
    が割込原因別のエントリに割込処理プログラムのアドレ
    スを保持するベクタ・テーブルを有する仮想計算機シス
    テムにおいて、前記仮想計算機の生成時に当該仮想計算
    機の割込処理プログラムの物理アドレスを計算して記憶
    する過程と、前記仮想計算機の走行開始に先立つて前記
    制御プログラムのベクタ・テーブルのエントリにそのエ
    ントリに対応する割込原因に対する当該仮想計算機の割
    込処理プログラムの前記物理アドレスをセットする過程
    と、当該仮想計算機の走行中に発生した割込みに応答し
    て前記制御プログラムのベクタ・テーブルを参照してそ
    こに保持されたアドレスに基づき割込処理プログラムの
    実行を開始させる過程とを含む割込制御方法。 5、制御プログラムの管理下に仮想計算機が実計算機上
    で走行し、前記制御プログラムと仮想計算機のそれぞれ
    が、割込原因別のエントリに割込処理プログラムのアド
    レスを保持するベクタ・テーブルと、割込みの処理に際
    して退避すべき情報を格納するスタックとを有し、前記
    実計算機が一つの前記スタックのアドレスを指示するス
    タック・ポインタを有する仮想計算機システムにおいて
    、前記仮想計算機の走行開始に先立つて、前記制御プロ
    グラムのベクタ・テーブルのエントリにそのエントリに
    対応する割込原因に対する当該仮想計算機の割込処理プ
    ログラムのアドレスをセットするとともに、前記スタッ
    ク・ポインタに当該仮想計算機のスタックのアドレスを
    セットする過程と、当該仮想計算機の走行中に発生した
    割込みに応答して、退避すべき情報を前記スタック・ポ
    インタが指示するスタックに格納するとともに、前記制
    御プログラムのベクタ・テーブルを参照してそこに保持
    されたアドレスに基づき割込処理プログラムの実行を開
    始させる過程とを含む割込制御方法。
JP60046676A 1985-03-11 1985-03-11 仮想計算機システムにおける割込制御方法 Pending JPS61206043A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP60046676A JPS61206043A (ja) 1985-03-11 1985-03-11 仮想計算機システムにおける割込制御方法
US06/837,345 US4812967A (en) 1985-03-11 1986-03-07 Method and apparatus for controlling interrupts in a virtual machine system
DE19863607889 DE3607889A1 (de) 1985-03-11 1986-03-10 Verfahren zum steuern von unterbrechungen in einem virtuellen maschinensystem und virtuelles maschinensystem zur durchfuehrung des verfahrens

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60046676A JPS61206043A (ja) 1985-03-11 1985-03-11 仮想計算機システムにおける割込制御方法

Publications (1)

Publication Number Publication Date
JPS61206043A true JPS61206043A (ja) 1986-09-12

Family

ID=12753974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60046676A Pending JPS61206043A (ja) 1985-03-11 1985-03-11 仮想計算機システムにおける割込制御方法

Country Status (3)

Country Link
US (1) US4812967A (ja)
JP (1) JPS61206043A (ja)
DE (1) DE3607889A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193830A (ja) * 1987-10-05 1989-04-12 Nec Corp 仮想計算機システムにおける割り込み制御方式
WO2010137092A1 (ja) * 2009-05-26 2010-12-02 パナソニック株式会社 マルチオペレーティングシステム制御方法及びプロセッサシステム

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63182749A (ja) * 1987-01-26 1988-07-28 Nec Corp 計算機システムのタイマ制御装置
US5129064A (en) * 1988-02-01 1992-07-07 International Business Machines Corporation System and method for simulating the I/O of a processing system
JP2629278B2 (ja) * 1988-06-30 1997-07-09 株式会社日立製作所 仮想計算機システム
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
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
US5222220A (en) * 1989-11-16 1993-06-22 Mehta Hemang S Microprocessor stack built-in guards
US5115506A (en) * 1990-01-05 1992-05-19 Motorola, Inc. Method and apparatus for preventing recursion jeopardy
US5095526A (en) * 1990-01-26 1992-03-10 Apple Computer, Inc. Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status
US5187791A (en) * 1990-01-26 1993-02-16 Apple Computer, Inc. Microprocessor with improved interrupt response with data saving dependent upon processor status using status flag
US5134580A (en) * 1990-03-22 1992-07-28 International Business Machines Corporation Computer with capability to automatically initialize in a first operating system of choice and reinitialize in a second operating system without computer shutdown
US5287523A (en) * 1990-10-09 1994-02-15 Motorola, Inc. Method for servicing a peripheral interrupt request in a microcontroller
JPH0776951B2 (ja) * 1990-10-30 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方
EP0578646B1 (en) * 1991-04-01 1995-06-28 Cray Research, Inc. Privileged instruction trap for operating system control
JP2870254B2 (ja) * 1991-10-02 1999-03-17 日本電気株式会社 仮想計算機の入出力割り込み処理方式
JP3300407B2 (ja) * 1992-05-15 2002-07-08 富士通株式会社 仮想計算機システム
JPH0695898A (ja) * 1992-09-16 1994-04-08 Hitachi Ltd 仮想計算機の制御方法および仮想計算機システム
US5386563A (en) * 1992-10-13 1995-01-31 Advanced Risc Machines Limited Register substitution during exception processing
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5526503A (en) * 1993-10-06 1996-06-11 Ast Research, Inc. Virtual addressing buffer circuit
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5734910A (en) * 1995-12-22 1998-03-31 International Business Machines Corporation Integrating multi-modal synchronous interrupt handlers for computer system
DE19723676A1 (de) * 1997-06-05 1998-08-27 Siemens Ag Verfahren zum Nachladen von Programmen auf eine Chip-Karte
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US8631066B2 (en) * 1998-09-10 2014-01-14 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
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
JP4012517B2 (ja) * 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想計算機環境におけるロックの管理
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7475002B1 (en) * 2004-02-18 2009-01-06 Vmware, Inc. Method and apparatus for emulating multiple virtual timers in a virtual computer system when the virtual timers fall behind the real time of a physical computer system
US8127098B1 (en) * 2004-05-11 2012-02-28 Globalfoundries Inc. Virtualization of real mode execution
EP1669864B1 (en) * 2004-12-03 2010-06-02 STMicroelectronics Srl A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
US7689747B2 (en) * 2005-03-28 2010-03-30 Microsoft Corporation Systems and methods for an augmented interrupt controller and synthetic interrupt sources
US7814496B2 (en) * 2005-08-19 2010-10-12 Intel Corporation Method and system for replicating schedules with regard to a host controller for virtualization
US7873770B2 (en) 2006-11-13 2011-01-18 Globalfoundries Inc. Filtering and remapping interrupts
US7849287B2 (en) 2006-11-13 2010-12-07 Advanced Micro Devices, Inc. Efficiently controlling special memory mapped system accesses
US7533207B2 (en) * 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
US9043562B2 (en) 2011-04-20 2015-05-26 Microsoft Technology Licensing, Llc Virtual machine trigger
US8631212B2 (en) 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6013501B2 (ja) * 1978-09-18 1985-04-08 富士通株式会社 仮想計算機システムにおけるチヤネルアドレス制御方式
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0193830A (ja) * 1987-10-05 1989-04-12 Nec Corp 仮想計算機システムにおける割り込み制御方式
WO2010137092A1 (ja) * 2009-05-26 2010-12-02 パナソニック株式会社 マルチオペレーティングシステム制御方法及びプロセッサシステム

Also Published As

Publication number Publication date
DE3607889C2 (ja) 1993-07-29
DE3607889A1 (de) 1986-09-11
US4812967A (en) 1989-03-14

Similar Documents

Publication Publication Date Title
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
US4975836A (en) Virtual computer system
US4814975A (en) Virtual machine system and method for controlling machines of different architectures
US7225119B2 (en) System and method for the logical substitution of processor control in an emulated computing environment
US4885681A (en) I/O Execution method for a virtual machine system and system therefor
JPH0792761B2 (ja) 仮想計算機システムの入出力制御方法
JPH0430053B2 (ja)
EP4220394A1 (en) Chip system, method for processing virtual interrupt, and corresponding device
EP4195020A1 (en) Computer device, abnormality processing method and interrupt processing method
JPH05151003A (ja) システム・コントロール・プログラム、及び情報処理システム
JPH0833851B2 (ja) 仮想計算機のモニタリング方式
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JPS6049352B2 (ja) デ−タ処理装置
JPH0754468B2 (ja) 仮想計算機システム
JPS61160160A (ja) 仮想計算機システムにおけるアドレツシング制御装置
JPS61184643A (ja) 仮想計算機の起動制御方式
JPH0552535B2 (ja)
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式
JPS6336012B2 (ja)
JPS5958553A (ja) 統合型仮想計算機のディスパッチ制御方式
JPH0638238B2 (ja) 仮想計算機システム
JP2556018B2 (ja) チヤネルパスグル−プ管理方式
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
JPS61204743A (ja) マイクロ・プロセツサの割込み制御方式
JPH0567973B2 (ja)