JPS61184644A - 仮想計算機システム制御方式 - Google Patents

仮想計算機システム制御方式

Info

Publication number
JPS61184644A
JPS61184644A JP60024630A JP2463085A JPS61184644A JP S61184644 A JPS61184644 A JP S61184644A JP 60024630 A JP60024630 A JP 60024630A JP 2463085 A JP2463085 A JP 2463085A JP S61184644 A JPS61184644 A JP S61184644A
Authority
JP
Japan
Prior art keywords
register
program
virtual machine
virtual
save
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
JP60024630A
Other languages
English (en)
Inventor
Akiyoshi Miura
三浦 明義
Shigechika Tsutsui
筒井 茂義
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 JP60024630A priority Critical patent/JPS61184644A/ja
Publication of JPS61184644A publication Critical patent/JPS61184644A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、仮想計算機システム制御方式に関し。
特に仮想計算機制御プログラムと仮想計算機上のプログ
ラム間での制御切換え方式に関するものである。
〔発明の背景〕
従来、仮想計算機システムにおける仮想計算機制御プロ
グラムと仮想計算機上のプログラム間の制御方式として
は、仮想計算機用レジスタと仮想計算機制御プログラム
用レジスタとの2組のレジスタを設けたものが知られて
いる(特開昭55−53749号公報参照)、シかし、
この方式では。
レジスタの参照・更新を行う計算機の各命令において仮
想計算機制御プログラム実行中か仮想計算機のプログラ
ム実行中かを判定して上記2組のレジスタのうちどちら
のレジスタを用いるのかを判定する必要があった。また
、仮想計算機の切換えを行えるようにするために、本来
、実計算機が持っている命令に加えて、仮想計算機制御
プログラムが仮想計算機用のレジスタを参照・更新する
命令が必要であった。このため、仮想計算機システムを
実現する際、ハードウェアが増加し、命令を実行するマ
イクロプログラムの修正・追加が多くなるという問題が
あった。
〔発明の目的〕
本発明の目的は、このような従来の問題を解決し、仮想
計算機システムを実現する際に、実計算機のハードウェ
アおよび命令を実行するマイクロプログラムの修正・追
加を最小限ですむ仮想計算機システム制御方式を提供す
ることにある。
〔発明の概要〕
第2図は仮想計算機システムの説明図である。
通常の実計算機では、第2図(a)に示すように、中央
処理袋H(cpU)31、主記憶装置(MEM)32、
入出力制御装置(IOC)33および入出力装置系(1
0)34に対して、ハードウェアとソフトウェアの双方
を制御するオペレーティング・システム(O8)35が
存在し、その下に各アプリケーション・プログラム(A
P)36が存在している。
これに対して、仮想計算機システム(VMS)では第2
図(b)に示すように、中央処理装置31等に対して、
オペレーティング・システム(O8)35に対応する仮
想計算機制御プログラム(VMCP)37が存在し、こ
れが仮想計算機を制御する。仮想計算機は、主記憶装置
(MEM)32内に各仮想計算機の領域をとり、そこに
中央処理装置(CPU)31等の仮想のハードウェアを
保持し、それぞれが実計算機を時分割で使用することに
より、各オペレーティング・システム(O8)35の制
御で各々アプリケーション・プログラム(AP)36を
処理する。すなわち、各オペレーティング・システム(
O8)35は、各タイム・スロットにおいて、仮想のハ
ードウェア(演算レジスタ、制御レジスタ、命令アドレ
ス・レジスタ、主記憶装置等)を実ハードウェアに設定
することにより、1台の実計算機があたかも別個の計算
機のように動作する。
つまり、1台の実計算機で、複数個のオペレーティング
・システム(O8)35が同時に走行できる。
実計算機がマイクロコンロ8000(fiえば、喜田、
他著、r68000マイクロコンピュータ」丸善参照)
のようにサブルーチン呼出し時あるいは割込発生時の戻
りアドレスをスタックポインタが示すスタックエリアに
退避する計算機では、仮想計算機制御プログラムが仮想
計算機のプログラムを起動する時、命令アドレスを示す
プログラムカウンタだけでなくスタックポインタも同時
に値を設定する必要がある。また、仮想計算機のプログ
ラムから仮想計算機制御プログラムに戻るときは、プロ
グラムカウンタに戻り先の命令のアドレスを設定すると
共に、スタックポインタに仮想計算機制御プログラムが
仮想計算機のプログラムを起動する時点のスタックポイ
ンタの値を設定する必要がある。この問題を解決する手
段としては。
先に示した「特開昭55−53749号公報」に見られ
るように、中央処理装置内に仮想計算機制御プログラム
用レジスタと仮想計算機用レジスタとの2組のレジスタ
および現在どちらの状態で動いているかを示す状態レジ
スタを□置く方法がある。
この方法では、レジスタの内容を参照あるいは更新する
各命令にて上記状態レジスタを参照し、2組のレジスタ
のうちどちらのレジスタを用いるのか判定しなくてはな
らない。また、仮想計算機制御プログラムから仮想計算
機用レジスタを参照および更新する命令が仮想計算機シ
ステムを実現するのに必要となる。すなわち、上記方式
では仮想計算機システムを実現するために、実計算機に
付加しなければならないレジスタが多く、さらに変更し
なければならない命令が多かった。
本発明は、上記問題を解決するため、仮想計算機制御プ
ログラムから仮想計算機のプログラムを起動する命令に
て、仮想計算機制御プログラムが用いていたレジスタの
値を退避用レジスタに退避すると共に、該仮想計算機用
のレジスタ値を該レジスタにロードする。さらに、実行
中の仮想計算機のプログラムから仮想計算機制御プログ
ラムに戻る時、上記退避用レジスタに退避していた値を
該レジスタに戻すことにより、仮想計算機制御プログラ
ムと仮想計算機のプログラム間の制御切換えを行うこと
に特徴がある。
〔発明の実施例〕
以下1本発明の実施例を図面により説明する。
第3図は1本発明における中央処理装置内のレジスタ構
成図である。
第3図において、演算レジスタ1〜8はデータの演算を
行うためのレジスタ、アドレスレジスタ9〜15はアド
レス間接でデータを参照するためのレジスタ、プログラ
ムカウンタ16は実行する命令のアドレスを示すレジス
タ、ステータスレジスタ17は割込マスク、スーパバイ
ザ/ユーザのモード等の中央処理装置の状態を示すレジ
スタ。
スタックポインタ18はサブルーチン呼出しあるいは割
込時の戻りアドレスを退避するスタックエリアのアドレ
スを示すレジスタ、ベクタベースレジスタ19は割込あ
るいはプログラム割込発生時の飛び先アドレスを示すベ
クタテーブルの先頭アドレスを示すレジスタ、状態レジ
スタ20は仮想計算機制御プログラム実行中か仮想計算
機のプログラム実行中かを示すレジスタ、VMブロック
ポインタ21は仮想計算機のプログラム起動命令で設定
するレジスタ値を含むVMブロックテーブル(後述第7
図参照)のアドレスを示すレジスタである。セーブルジ
スタ22およびセーブ2レジスタ23は、それぞれベク
タベースレジスタ19およびスタックポインタ18の内
容をセーブするためのレジスタである。
第1図は本発明の一実施例を示す仮想計算機システム制
御方式の全体の制御フローチャートであるにこでは、仮
想計算機制御プログラムの処理と、中央処理装置(CP
 U)の処理と、仮想計算機の処理に分けである(仮想
計算機制御プログラムにある7Mブロックテーブル70
については後述第7図参照、CPU内の各レジスタにつ
いては前述第3図参照)。
以下、第1図の制御フローチャートを説明する。
■仮想計算機制御プログラムから仮想計算機のプログラ
ムを起動するEXVM命令を発行したときには、CPU
でそれに対応する処理を行う。
■CPU内のEXVM命令処理では、制御レジスタのス
タックポインタ18およびベクタベースレジスタ19の
内容をそれぞれセーブルジスタ22、セーブ2レジスタ
23に退避する。次に。
VMブロックポインタ21が示すメモリ上の7Mブロッ
クテーブル70からスタックポインタ18およびベクタ
ベースレジスタ19に値をロードし。
仮想計算機のプログラムに制御を移す。
■仮想計算機のプログラム実行中に割込みが発生したと
きには1次の■の処理をCPU内で行う。
■CPU内の割込処理では、スタックポインタ18およ
びベクタベースレジスタ19の内容を7Mブロックテー
ブル70に退避する。次に、セーブルジスタ22および
セーブ2レジスタ23に退避していた値をそれぞれスタ
ックポインタ18、ベクタベースレジスタ19にロード
し、仮想計算機制御プログラムの割込処理に制御を移す
第4図〜第6図は第1図の具体的な処理手順を示すフロ
ーチャートである。以下、第4図〜第6図のフローチャ
ートにより説明する。
第4図は、仮想計算機制御プログラムにおける仮想計算
機のプログラム起動時の処理手順を示すフローチャート
である。第5図は、仮想計算機制御プログラムから仮想
計算機のプログラムを起動する命令EXVMの内部の処
理手順を示すフローチャートである。第6図は、割込発
生等により実行中の仮想計算機のプログラムから仮想計
算機制御プログラムに戻る時の中央処理装置おける内部
の処理手順を示すフローチャートである。第7図はVM
ブロックテーブルの構成を示している。ここで、7Mブ
ロックテーブル70は仮想計算機ごとに主記憶装置内に
置かれる。また、VMブロックアドレスを第3図に示す
VMブロックポインタ21に設定するのはMOVEC命
令により行わ九る。第7図に示す7Mブロックテーブル
70にはベクタベースレジスタ19の値、スタックポイ
ンタ18の値、演算レジスタ1〜8の値、アドレスレジ
スタ9〜15の値、ステータスレジスタ17の値、プロ
グラムカウンタ16の値などが退避格納される。
仮想計算機制御プログラムが仮想計算機のプログラムを
起動する手順は第4図に示す通りである。
まず、第3図に示すVMブロックポインタ21にMOV
EC命令で第7図に示すVMブロックテーブル70のア
ドレスをロードする(ステップ401)0次に、VMブ
ロックテーブル70に退避していた値をそれぞれ第3図
に示す演算レジスタ1〜8およびアドレスレジスタ9〜
15に再びロードする(ステップ402)、そして、V
Mブロックテーブル70に退避していたプログラムカウ
ンタ16およびステータスレジスタ17の値をスタック
ポインタ18が示すスタックエリアに積む(ステップ4
03)。 これは、仮想計算機のプログラム起動のため
のEXVM命令の仕様がスタックポインタ18の示すス
タックエリア内のステータスレジスタ17およびプログ
ラムカウンタ16の値をそれぞれ該レジスタにロードす
るようになっているからである。最後にEXVM命令を
発行して仮想計算機のプログラムを実行する(ステップ
404)。 スタックポインタ18およびベクタベース
レジスタ19に仮想計算機用の値を設定するのはEXV
M命令が行うが、EXVM命令発行以前に該レジスタに
値を設定しないのは次のような理由からである。EXV
M命令発行以前にスタックポインタ■8に仮想計算機用
の値を設定したときには、仮想計算機用のスタックエリ
アに仮想計算機制御プログラムがプログラムカウンタ1
Gやステータスレジスタ17の値を書込むことによりそ
の内容を破壊する恐れがあるからである。また、仮想計
算機のプログラムの初期起動時は、仮想計算機用のスタ
ックポインタ値は不定であるからである。EXVM命令
発行前にベクタベースレジスタ19に仮想計算機用の値
を設定したときには、設定後からEXVM命令発行の間
に割込みが発生した場合、仮想計算機用のベクタテーブ
ルが参照され、仮想計算機制御プロクラム実行中である
にもかかわらず、仮想計算機のプログラムの割込処理に
制御が移ってしまうからである。
次に、EXVM命令の内部処理について第5図を用いて
説明する。
まず、スタックポインタ18の示すスタックエリアから
データを読み、ステータスレジスタ17およびプログラ
ムカウンタ16にロードする(ステップ405)。次に
仮想計算機制御プログラムの値が設定された状態になっ
ているベクタベースレジスタ19およびスタックポイン
タ18の内容をそれぞれセーブルジスタ22およびセー
ブ2レジスタ23に退避する(ステップ406)、そし
て、仮想計算機用の値を設定するため、VMブロックポ
インタ21が示すVMブロックテーブル70のVMブロ
ックからデータを読出し、それをそれぞれベクタベース
レジスタ19およびスタックポインタ18に設定する(
ステップ407)。最後に状態レジスタ20に仮想計算
機モードであることを設定して、当該命令の処理を終了
し、プログラムカウンタ16が示す次の命令を処理する
(ステップ408)。
以上、仮想計算機制御プログラムから仮想計算機のプロ
グラムを起動する際のレジスタ制御について説明した0
次に仮想計算機のプログラムから仮想計算機制御プログ
ラムに戻る際のレジスタ制御について第6図を用いて説
明する。
仮想計算機のプログラム実行中に割込みが発生したとき
、仮想計算機のプログラムが特権命令を発行したときに
は、中央処理装置は状態レジスタ20の内容を調べ、仮
想計算機モードかどうか判定する(ステップ409)、
仮想計算機モードのときには、状態レジスタ20の内容
を仮想計算機制御モードとしくステップ410)、VM
ブロックポインタ21が示すVMブロックテーブル70
にベクタベースレジスタ19およびスタックポインタ1
8の内容を退避しくステップ411)、セーブルジスタ
22およびセーブ2レジスタ23の内容をそれぞれベク
タベースレジスタ19およびスタックポインタ18にロ
ードする(ステップ412)。
次にプログラムカウンタ16およびステータスレジスタ
17の内容をスタックポインタ18が示すスタックエリ
アに退避する(ステップ413)、そして、ベクタベー
スレジスタ19が示すベクタテーブルに設定されている
仮想計算機制御プログラムへの戻りアドレスをプログラ
ムカウンタ16にロードし、ステータスレジスタ17の
スーパバイザモードを示すビットをオンとする。これは
、割込処理プログラムはスーパバイザモードで動作しな
くてはならないからである。演算レジスタ1〜8および
アドレスレジスタ9〜15の値は仮想計算機のプログラ
ムの値が入ったままであるが、制御が戻った時の仮想計
算機制御プログラムの処理では仮想計算機のプログラム
起動時の該レジスタの値を用いることはないので問題は
ない。こうしてプログラムカウンタ16が示す仮想計算
機制御プログラムへの戻りアドレスの命令が実行され、
仮想計算機制御プログラムに実行の制御が戻る(ステッ
プ414)。
以上1本実施例では、仮想計算機システムを実現するの
に、本来の実計算機のハードウェアに2つのセーブレジ
スタ(セーブlレジスタ22.セーブ2レジスタ23)
、 状態レジスタ2oおよび実行制御のための若干のマ
イクロプログラム用ハードウェアを追加するだけで済ん
でいる。
なお、上記セーブlレジスタ22およびセーブ2レジス
タ23の代わりにメモリを退避エリアとして使用するこ
とももちろん可能であり、この場合はさらに追加ハード
ウェア量が減る。
〔発明の効果〕
以上説明したように、本発明によれば、仮想計算機シス
テムの実現において、実計算機に若干の退避用レジスタ
、状態レジスタ、制御のための゛マイクロプログラムを
追加するだけで済む。また。
従来のように2組のレジスタを持つことなく実現できる
ので、レジスタを参照・更新する命令を変更する必要も
なくなるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す仮想計算機システム制
御方式の全体の制御フローチャート、第2図は実計算機
と仮想計算機システムの比較ブロック図、第3図は本発
明における中央処理装置のレジスタの構成図、第4図は
仮想計算機制御プログラムが仮想計算機のプログラムを
起動する時の処理手順を示す図、第5図は仮想計算機の
プログラムを起動する命令の処理手順を示す図、第6図
は仮想計算機のプログラムから仮想計算機制御プログラ
ムに戻る時の処理手順を示す図、第7図は7Mブロック
テーブルの構成を示す図である。 1〜8:演算レジスタ、9〜15ニアドレスレジスタ、
16:プログラムカウンタ、17:ステータスレジスタ
、18ニスタツクポインタ、19:ベクタベースレジス
タ、20:状態レジスタ、21:VMブロックポインタ
、22:セーブlレジスタ、23:セーブ2レジスタ、
70 : VMブ07クテーブル。 第    1    図 ロココ=ヨコ):19 第2図 (a)                (b)第3図 第4図 仮想計算機のプログラム に制御が移る 第   5   図 プログラムカウンタか示す アドレスの命令を実行する 第   6   図 プログラムカウンタが示す アドレスの命令を実行する

Claims (1)

    【特許請求の範囲】
  1. (1)複数の仮想計算機を1台の計算機上で並行して動
    作させる仮想計算機システムにおいて、該複数の仮想計
    算機を制御する制御プログラムから仮想計算機のプログ
    ラムを起動する命令を有し、該命令にて制御プログラム
    が用いていた仮想計算機の実行制御に関するレジスタの
    値を退避用レジスタに退避すると共に、主記憶装置上の
    該仮想計算機用のVMブロックテーブル内のレジスタ値
    を該レジスタにロードし、さらに、実行中の仮想計算機
    のプログラムから制御プログラムに戻る時、上記レジス
    タの内容を上記VMブロックテーブルに退避すると共に
    、上記退避用レジスタに退避していた値を上記レジスタ
    に戻すことにより上記制御プログラムと上記仮想計算機
    のプログラム間との制御切換えを行うことを特徴とする
    仮想計算機システム制御方式。
JP60024630A 1985-02-12 1985-02-12 仮想計算機システム制御方式 Pending JPS61184644A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60024630A JPS61184644A (ja) 1985-02-12 1985-02-12 仮想計算機システム制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60024630A JPS61184644A (ja) 1985-02-12 1985-02-12 仮想計算機システム制御方式

Publications (1)

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

Family

ID=12143454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60024630A Pending JPS61184644A (ja) 1985-02-12 1985-02-12 仮想計算機システム制御方式

Country Status (1)

Country Link
JP (1) JPS61184644A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163751A (ja) * 2002-12-19 2009-07-23 Intel Corp バーチャルマシン動作においてマシン状態を管理する方法及びシステム
US9720226B2 (en) 2015-02-17 2017-08-01 Fanuc Corporation Machine tool including viewing window controller

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163751A (ja) * 2002-12-19 2009-07-23 Intel Corp バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2012074074A (ja) * 2002-12-19 2012-04-12 Intel Corp バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2013214325A (ja) * 2002-12-19 2013-10-17 Intel Corp バーチャルマシン動作においてマシン状態を管理する方法及びシステム
US9720226B2 (en) 2015-02-17 2017-08-01 Fanuc Corporation Machine tool including viewing window controller

Similar Documents

Publication Publication Date Title
US7225119B2 (en) System and method for the logical substitution of processor control in an emulated computing environment
US5701493A (en) Exception handling method and apparatus in data processing systems
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
JPH0193837A (ja) デバッグ用マイクロプロセッサ
JPH0544054B2 (ja)
JPH02156334A (ja) 情報処理装置
EP0290942B1 (en) Guest machine execution control system for virtual machine system
JP2677458B2 (ja) システムコール実行装置
JPS61184644A (ja) 仮想計算機システム制御方式
JP2001216172A (ja) マルチos構成方法
JPH0264740A (ja) マイクロプロセッサ
JPH0564375B2 (ja)
JPS61184643A (ja) 仮想計算機の起動制御方式
JPH0552535B2 (ja)
JPS62276634A (ja) 仮想計算機システム
JPS59218569A (ja) マイクロ・コンピユ−タ
JP2883488B2 (ja) 命令処理装置
JPH05224894A (ja) オペレーティングシステムの切替え方式
JP2883489B2 (ja) 命令処理装置
JPS6373336A (ja) 特権プログラム呼出し方式
JPH0193838A (ja) デバッグ用マイクロプロセッサ
JPS6394339A (ja) 仮想計算機システム
JPH05250161A (ja) マイクロコンピュータ装置
JPS63276635A (ja) 割り込み制御方法
JPH0567972B2 (ja)