JPS61184643A - 仮想計算機の起動制御方式 - Google Patents

仮想計算機の起動制御方式

Info

Publication number
JPS61184643A
JPS61184643A JP2462985A JP2462985A JPS61184643A JP S61184643 A JPS61184643 A JP S61184643A JP 2462985 A JP2462985 A JP 2462985A JP 2462985 A JP2462985 A JP 2462985A JP S61184643 A JPS61184643 A JP S61184643A
Authority
JP
Japan
Prior art keywords
control
interrupt
stack
virtual computer
interruption
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
JP2462985A
Other languages
English (en)
Inventor
Yumiko Sugita
杉田 由美子
Shigechika Tsutsui
筒井 茂義
Akiyoshi Miura
三浦 明義
Hidenori Umeno
梅野 英典
Tadahiko Nishimukai
西向井 忠彦
Ikuya Kawasaki
川崎 郁也
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP2462985A priority Critical patent/JPS61184643A/ja
Publication of JPS61184643A publication Critical patent/JPS61184643A/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/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
    • 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

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、仮想計算機(以下、VMという)の起動制御
方式に関し、特にスタックを用いた計算機上の仮想計算
機システムにおいて、VMを効率よく起動する時に好適
な起動目的識別および割込み処理起動方式に関するもの
である。
[発明の背景] 従来の仮想計算機システムを第4図に示す、この仮想計
算機システムは、単一の実計算機を多目的に利用するた
め、それぞれの目的に合致する複数のオペレーティング
・システム(以下、O8という)を作成し、それらのO
8を実計算機1の下で時分割的に動作させることにより
、目的ごとのアプリケーション・プログラムを実行する
ものである(例えば、山谷他著「仮想計算機」 共立出
版参照)。すなわち、第4図に示すように、実計算機1
は、第1のO8が制御する仮想計算機(V M)2−1
から、第nのO8が制御する仮想計算機(V M) 2
− nまでとから構成され、これらn −1個のO8が
動作する仮想計算機システムを実現する。仮想計算機シ
ステムのプログラム構造は、第5図に示すように、階層
構造である。仮想計算機制御プログラム(以下、VMC
Pという)■−1は、083−1からOS 3− nま
でに対する仮想環境を実現するためのプログラムであっ
て、その代表的な機能は。
(1)各VMのO8が有効に動作するように、VMをス
ケジューリングすること、 (11)スケジュールに従ってVMに制御を与えること
、 (iii)外部からの割込みに対して、各VMのO8に
連絡すること、 等である。このVMCPI−1は、ユーザ・プログラム
を直接制御する機能がない。ユーザ・タスク群4−1お
よびユーザ・タスク群4−nは、それぞれ083−1と
OS 3− nにより制御される。
第5図の破線で囲まれた部分が従来の一般の計算機シス
テムに対応するものであり、これをVM(Virtua
l Machine)と呼ぶ。第4図に示すような仮想
計算機システムのもとでは、複数のVMを動作させるこ
とができる。ここで、VM2−1とVM2−nは第4図
の仮想計算機システムの詳細を示している。
ところで、計算機システムを効率よく運用するためにマ
ルチプログラミング技術が使用されており、この技術に
よりシステムリソース(中央処理装置、主記憶装置、入
出力装置等)を各プログラムが共用することができる。
これらのシステムリソースの管理はO8が行、つており
、通常゛′特権命令”′と呼ばれるO8のみが発行でき
る命令によって、これらのシステムリソースにアクセス
できる。個々のユーザプログラムには゛′非特権モード
″が割当てられ、ユーザプログラムが前述の″特権命令
″を出すと、パ特権命令外′″と呼ばれるプログラム割
込みが検出される。VMの場合、従来のO8は複数個同
時に動作させることが可能であり、従って従来O8が管
理していたシステムリソースは仮想計算機制御プログラ
ム(VMCP)と呼ばれるプログラムが管理する。そし
て、各ユーザのプログラムには使用しているO8も含め
てすべて″非特権モード″が割当てられ、VMCPのみ
が゛°特権モード″で動作する。従って、各ユーザが使
用しているO8が゛特権命令″を実行しようとすると、
プログラム割込みが検出され、VMCPに制御が移り、
VMCPはこの゛′特権命令″をシミュレーションする
。これはその他の割込みなどに対しても同様で、VMC
Pがこれらをすべてシミュレーションしている。
第6図は、仮想計算機上の特権命令のシミュレーション
を示す図である。これは、VM2−1実行中における特
権命令発生あるいは割込みなどに対して、VMCPI−
1に制御が移される場合の例である。
第6図において、特権命令や割込みなどが発生すると、
VMササポー機能(ハードウェア)5を経由し、VMC
PL−1に制御が移る。そして、新・旧のP S W(
Program 5tat、us Word) 1−1
−1の入れ替えで、状態を調節し、割込み・特権命令な
どのシミュレーションプログラムl−1−2でシミュレ
ーションを行い、VM実行制御プログラム1−1−’3
で実行を制御する。処理が終了したならば、旧(71P
SWI−1−1を回復し、VM2−1へ制御を戻す仕様
となっている。
このようにして、実現されている現在の仮想計算機シス
テムであるが、年々、システムの処理実行の高速化の必
要性が増し、それを実現するための方式が次々と考え出
されている。特に、近年ではハードウェアで上記処理の
一部を実現し、高速化を図る方式が増えている(例えば
、特開昭55−112651号公報参照)、シかし、こ
れらはスタックを用いた計算機については考慮されてい
なかった。
ここでいうスタックとは、データの後入れ先出しくLa
5t  I n First Out、) リスト構造
のレジスタ群(メモリ)のことである。具体的には、例
えばlσビットマイクロコンピュータMC68000に
おいては、スタックはシステムスタックとユーザスタッ
クという名称で2つのタイプのスタックを定義している
。MC68000のレジスタ構造を第7図にシステム/
ユーザスタックの例を第8図に示す。第8図(a)はユ
ーザシステムスタックのサブルーチンジャンプの退避例
を示しており、第8図(b)はスーパバイザシステムス
タックの割込み時の退避例を示している。システムスタ
ックは、あるアドレスレジスタ(MC68000ではA
7を使用)をシステムスタックポインタとして用いると
、アドレスを自動的に増加して新しいメモリアドレスに
データ(戻り番地、例外処理時の退避データ等)を書込
んだり、自動的に減少してすでにデータが書込まれてい
るアドレスからデータを読出したりする機能を持つ、ま
た、ユーザスタックは、アドレスレジスタAO〜A6.
A7を用い、命令のアドレスレジスタ間接モードのポイ
ントインクリメントおよびデクリメントの各操作を行う
ことにより、プログラム的にスタックを構成するもので
ある。第7図に示すようにアドレスレジスタA7はユー
ザ状態の時とスパーバイザ状態の時で、自動的に切換え
て使用される。すなわち、アドレスレジスタ(スタック
ポインタ)A7は、ユーザプログラムの状態の時はユー
ザシステムスタックポインタ(USP)に、スーパバイ
ザプログラム状態の時はスーパバイザシステムスタック
ポインタ(s s p)となる。
この種のスタックを用いた計算機システムを開発中に、
第6図のVMの実行制御機能1−1−3に注目した場合
に、問題があることがわかった。
スタックを用いた計算機システムにおいて、VMCPI
−1よりVM(2−t 〜2−n)を起動する理由とし
ては、いろいろ考えられるが、はと、んどの場合VMの
次の命令へ制御を移すためのものである。しかし、割込
みの場合、VMには割込みハンドラーが存在し、そこへ
制御が移る仕様としいる。そして、この割込みハンドラ
ーへ制御を移すには、他の処理に比べ、スタック操作な
どが必要となる。そのため、従来の方式だけではサポー
トしきれなくなるという問題がある。
〔発明の目的〕
本発明の目的は、このような従来の問題を解消し、スタ
ックを用いた計算機上の仮想計算機システムにおいて、
VMに対して割込みが生じた場合の処理を円滑、かつ、
高速に行うための仮想計算機の起動制御方式を提供する
ことにある。
〔発明の概要〕
上記目的を達成するため、本発明のスタックを用いた計
算機上の仮想計算機システムでは、VMに対し起動をか
ける理由が割込みか他の処理かを識別する識別手段を有
し、該識別手段により割込みを検出したならば、スタッ
クをつみかえ、対象VMの割込みハンドラーの番地をベ
クターテーブルより求めて制御を移し5割込みでない場
合は、VMの次の命令へ制御を移すという処理を追加し
かつ、これら一連の処理をハードウェア上で行うことに
特徴がある。
〔発明の実施例〕
以下1本発明の実施例を図面により説明する。
本実施例は、ハードウェア上において、VMに起動をか
ける理由がVMへの割込みであるか否かの情報によりそ
れぞれに対して適切な処理を実行するというものである
まず、前述の仮想計算機システムの処理実行の高速化の
必要性に答えるためには、(NVMへ起動をかける理由
が割込みであるか否かを識別すること、(11)割込み
であった場合、スタックにVM情報を退避し、対象VM
の割込みハンドラーへ制御を移すこと、などをハードウ
ェア上で行う必要がある。
上記(1)を具体化するためにハードレジスタを用意す
る。このハードレジスタの例を第2図に示す。第2図に
おいて、ハードレジスタ20は16ビツトで構成されて
いるが、1ビツトレジスタでも充分である。このハード
レジスタ20上に、VMへ起動をかける理由が割込みで
あるか否かを示すフラグ(割込み識別子)21を設定す
る(任意の1ビツトを使用する)。 このフラグ21の
値は、VMを起動する前にVMCPI−1がセットする
本実施例では、フラグ(以下、割込み識別フラグという
)21が1111+の時には割込みによる起動。
41071の時にはその他の通常起動と定義している。
上記(11)を具体化した場合のVM起動処理(割込み
識別フラグ判定、制御移動処理等)についての計算機ハ
ード−ウェアの動作フローチャートを第3図に示す。
以下、第3図の処理フローチャートを説明する。
VMCPI−1での処理終了後、該当VM起動に当って
、まず割込み識別フラグ21に識別子のセットを行う。
そして、VM起動をハードウェアに掲示する(VM起動
命令を実行する)。
VM起動命令では、まずハードレジスタ20上の割込み
識別フラグ21を参照しくステップ100)、+l O
ITがセットされているならば、VM起動の理由は割込
み以外であるから、現在スタックにつまれているPC(
プログラムカウンタ)、SR(ステータスレジスタ)を
回復する(ステップ101)。
これによってVM上の次の命令へ制御が移る。一方、識
別フラグ21が“1″である場合は、VM起動の理由は
割込みであるから、VM上の割込みハンドラーへ制御が
移るように退避しであるスタック内容を回復しくステッ
プ102)、再度VM上のPC,SRを割込みベクタ番
号と共にスタックへ退避する(ステップ103)、この
PC,SRは。
割込みハンドラー実行後に制御が移るVM上の次の命令
アドレス等の情報である。そして、対象VMの割込みハ
ンドラーへ制御を移すためのSRの値を作成し、ロード
ベクタテーブルよりPCをロードする(ステップ104
)、これに従って制御は割込ハンドラーへ移る。
第1図は、本発明の一実施例を示す仮想計算機システム
の処理概要図である。
第1図において、1−1は仮想計算機制御プログラム(
VMCP)、2−1−2−nは仮想計算機(VM)、5
はVMササポー機能(ハードウェア)、5−1は本発明
の主要部をなすVMの起動制御機能(ハードウェア)、
6はSRやPCの値を退避するスタックである。VMC
PI−1にはシミュレーションプログラム1−1−2.
VM起動命令1−1−4が入っている。ここで、斜線を
ひいた部分(VMの起動制御機能5−1)が上記で述べ
た(第2図、第3WI参照)本発明の部分である。また
、ここにはスタックの退避/回復についても記入しであ
る。以下でこれについて簡単に説明する。
VM(2−1〜2−n)から何らかの要求が発生したと
きシ;は、ハードウェア上で実現されているVMサポー
ト機能5を経由してVMCPI−1へ制御が移る。そし
て、このVMCPI−1での処理が終了した時、又は割
込みを受けた時に、VMCPI−1は割込みか否かの識
別をハードレジスタ20にセットすると共に、VMサポ
ート機能5内に設けたVMの起動制御機能S−tにより
起動制御を行い、割込みならば割込みハンドラーへ。
それ以外ならばVMの次の命令へと制御を移す。
なお、本実施例では、VMの起動制御機能5−1はVM
ササポー機能(ハードウェア)5上でマイクロコードと
して実現している。また1本実施例では、割込みか否か
を識別するフラグをハードレジスタ20を用いて設定し
ているが、これはソフトウェアで行うこともできる。ソ
フトウェアで行う例として1例えば各V M CB (
V 1rtual M achine Cont、ro
l B Lock)の中に設定してもよい。
このようにして、本実施例によれば、スタックを用いた
計算機上で仮想計算機システムを実行中にVMに対して
割込みが生じた場合、VMCPl−1から対象VMの割
込みハンドラーへ制御を移すことをスタックを用いてハ
ードウェア上で実現でき、これにより、高速でかつ円滑
に割込み処理が行えるようになる。また、この方式によ
って、あたかもVMから直接割込みハンドラーへ制御が
移ったかのようにして、処理を続けることができる。
〔発明の効果〕
以上説明したように1本発明によれば、スタックを用い
た計算機上の仮想計算機システムにおいて、VMに対し
て割込み生じた場合の処理を円滑、かつ、高速に行える
ようになる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す仮想計算機システムの
処理概要図、第2図は本発明に適用されるハードレジス
タの構造を示す図、第3図は第2図のハードレジスタを
用いたVMの起動制御方式の処理フローチャート、第4
図は従来の仮想計算機システムの構成図、第5図は仮想
計算機システムのプログラム構造を示す図、第6図は仮
想計算機上の特権命令のシミュレーションを示す図、第
7図は16ビツトマイクロコンピユータのレジスタの構
造例を示す図、第8図は16ビツトマイクロコンピユー
タのスタック構造例を示す図である。 1:実計算機、2−1〜2−n:仮想計算機、1−1:
仮想計算機制御プログラム(VMCP)、1−1−2:
シミュレーションプログラム、■−1−4:VM起動命
令、5:VMサポート機能。 5−1:本発明の主要部をなすVMの起動制御機能、6
:スタック。 第   2   図 第   3   図 第4図 ■ L−−J          L−−J第6図 第7図 第8図

Claims (1)

    【特許請求の範囲】
  1. (1)複数のオペレーティングシステムと該複数オペレ
    ーティングシステムを管理する管理プログラムを備え、
    該管理プログラムの制御のもとに、上記複数オペレーテ
    ィングシステムをスタックを用いた計算機システム上で
    同時に動作させる仮想計算機システムにおいて、各仮想
    計算機の起動目的を識別する識別手段を有し、該識別手
    段で識別された目的が割込み処理起動である場合に、割
    込み内容に適した情報をスタックにつみ、該情報に適し
    た処理を行う上記仮想計算機内の割込みハンドラーに起
    動をかけることを特徴とする仮想計算機の起動制御方式
JP2462985A 1985-02-12 1985-02-12 仮想計算機の起動制御方式 Pending JPS61184643A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2462985A JPS61184643A (ja) 1985-02-12 1985-02-12 仮想計算機の起動制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2462985A JPS61184643A (ja) 1985-02-12 1985-02-12 仮想計算機の起動制御方式

Publications (1)

Publication Number Publication Date
JPS61184643A true JPS61184643A (ja) 1986-08-18

Family

ID=12143428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2462985A Pending JPS61184643A (ja) 1985-02-12 1985-02-12 仮想計算機の起動制御方式

Country Status (1)

Country Link
JP (1) JPS61184643A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62276634A (ja) * 1985-09-18 1987-12-01 Nec Corp 仮想計算機システム
JPH0333937A (ja) * 1989-06-30 1991-02-14 Hitachi Ltd 仮想計算機における表示制御方式
JP2005237737A (ja) * 2004-02-27 2005-09-08 Sanyo Product Co Ltd 遊技機
JP2010234121A (ja) * 2010-07-28 2010-10-21 Sanyo Product Co Ltd 遊技機
JP2012055755A (ja) * 2011-12-21 2012-03-22 Sanyo Product Co Ltd 遊技機

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62276634A (ja) * 1985-09-18 1987-12-01 Nec Corp 仮想計算機システム
JPH0333937A (ja) * 1989-06-30 1991-02-14 Hitachi Ltd 仮想計算機における表示制御方式
JP2005237737A (ja) * 2004-02-27 2005-09-08 Sanyo Product Co Ltd 遊技機
JP2010234121A (ja) * 2010-07-28 2010-10-21 Sanyo Product Co Ltd 遊技機
JP2012055755A (ja) * 2011-12-21 2012-03-22 Sanyo Product Co Ltd 遊技機

Similar Documents

Publication Publication Date Title
US6275893B1 (en) Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
US7209994B1 (en) Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
US7707341B1 (en) Virtualizing an interrupt controller
US8151275B2 (en) Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS
JP4690988B2 (ja) 持続的なユーザレベルスレッド用の装置、システムおよび方法
JPS58151655A (ja) 情報処理装置
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
US11301283B1 (en) Virtualization extension modules
JPH0430053B2 (ja)
US8612975B2 (en) World switch between virtual machines with selective storage of state information
US5003468A (en) Guest machine execution control system for virutal machine system
JPS61184643A (ja) 仮想計算機の起動制御方式
JPS6049352B2 (ja) デ−タ処理装置
JPH0192843A (ja) データ処理装置
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JPH0567973B2 (ja)
JPS62120542A (ja) 情報処理装置
JPS60215250A (ja) デ−タ処理装置
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
JP3022398B2 (ja) 仮想計算機方式
JPH0754470B2 (ja) 仮想計算機システムの制御方法
JPS60163134A (ja) 仮想計算機システム
JPH0373031A (ja) メモリアクセス制御方式
JPS61204743A (ja) マイクロ・プロセツサの割込み制御方式
JPH0438011B2 (ja)