JPS61208133A - 仮想計算機システムにおける状態レジスタ制御装置 - Google Patents

仮想計算機システムにおける状態レジスタ制御装置

Info

Publication number
JPS61208133A
JPS61208133A JP4755385A JP4755385A JPS61208133A JP S61208133 A JPS61208133 A JP S61208133A JP 4755385 A JP4755385 A JP 4755385A JP 4755385 A JP4755385 A JP 4755385A JP S61208133 A JPS61208133 A JP S61208133A
Authority
JP
Japan
Prior art keywords
state register
register
real
contents
signal line
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
JP4755385A
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 JP4755385A priority Critical patent/JPS61208133A/ja
Priority to US06/809,182 priority patent/US4975836A/en
Priority to DE8585116263T priority patent/DE3582662D1/de
Priority to EP85116263A priority patent/EP0185378B1/en
Publication of JPS61208133A publication Critical patent/JPS61208133A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、仮想計算機システムに関し、特に、仮想計算
機システムにおける状態レジスタの取扱いに関する。
〔発明の背景〕
仮想計算機システム(Virtual  Machin
eSystem、以下VMSと略記)は、第2図に概念
的に示すように、1台の実計算機(BareMachi
ne 、以下BMと略記)501上で、複数のオペレー
ティング・システム(Qperat ingSyste
m、以下O8と略記)506,507を、見掛は上同時
に走行させることを可能にするものである。その実現の
ために、各08506.507と8M501の間に直接
のベース・マシン・インタフェースを設ける代りに、特
殊な制御プログラム(例エバ、パーチャル・マシン・モ
ニタ:Virtual  Machine Mon1t
or などと呼ばれる。
以下VMMと略記)502が用意され、これが、ベース
・マシン・インタフェース503を介して直接BM50
1に作用するとともに、各08506゜507に対して
、ペース・マシン・インタフェース503と同等のベー
ス・マシン・インタフェース508を提供する。VMM
502がペース・マシン・インタフェース508を作り
出すことによって観念的に形成されるマシンを、仮想計
算機(パーチャルー マシン: Virtual Ma
chine 、以下VMと略記)という。第2図には、
08506カ働ら<VMS04と、08507が働ら<
VMS0蓼が示されているが、いうまでもなく、任意数
のVMi形成することができる。VMS04とVMS0
5はVMM5<)2の制御の下に切替えられ、かくて、
08506とO8507が見掛は上同時に動作する。
他方、08506及び507は、ユーザ・プログラム(
User  program、以下UPと略記)515
.5課6及び517,518に対して、それぞれ、拡張
マシン・インタフェース513及び514を提供し、そ
れにより、拡張マシン(Extended Machi
ne、以下EMと略記)509〜512が形成される。
EMS09〜512のそれぞれは、それに連係するUP
からのあるまとまった機能に対する処理要求(スーパバ
イザ・コール、ファクション・コールなどと呼ばれる)
に応じた処理をそれぞれのO8内で実行する機能と、ペ
ース・マシン・インタフェース機能、!:t[している
。したがって、08506と08507が異なったもの
であれば、それぞれのO8に属するEM(例えば509
と511)は、互いに異なる機能を有する。
以上のように、VMSは、単一のBM上で複数の異なる
O8が、見掛は上同時に走行することを可能にし、その
結果、次のような効用が期待できる。
(1)稼働中のシステムのサービスを停止することなし
に、新しく開発されるシステムのデバッグやテストを行
なうことができる。
(2)単一のBMで複数の異なるO8が動作できるので
、ハードウェア資源の使用効率が改善される。
(3)  BMとはアーキテクチャ又はシステム構成ヲ
異にする計算機システムを仮想的に作ることができ、し
たがって、新しいマシン又はシステムの制御プログラム
のテストを、実際のハードウェアが存在しない状態で行
なうことができる。
ところが、VMSの実現のために、特殊な制御プロゲラ
AVMM502が存在する。VMM502は、VMS0
4,505等を効率良く動作させるために、マルチプロ
グラミング技術を用いて、8M501のハードウェア資
源を時間的及び空間的に分割して、各VM504,50
5に割当てる。
ハードウェア資源を操作する命令は、7MS内のシステ
ムの全体的完全性を保証するために、いわゆる特権命令
として扱われ、特権モードと呼ばれる動作モードにおい
てのみ実行可能となる。
VMM502は、コノヨうな特権命令が08506又は
507から発行されたことを検知すると、その命令を自
分で解釈・実行し、それが終了すると、制御を走行中の
O8に戻す。この処理は、8M501の黄源=&VM間
で共用するために必要なものであり、この処理時間がV
MS特有のオーバヘッドとなる。また、主メモリの共用
は、仮想記憶方式の技術によシ実現されているので、そ
のためのアドレス変換に要する時間も、オーバヘッドと
なる。これらのVMS特有のオーバヘッド中の主なもの
は、次のように大別できる。
(1)特権命令のシミュレーション処理によるオーバヘ
ッド (2)  割込みのシミュレーション処理によるオーバ
ヘッド (3)仮想記憶機能のサポートのだめのアドレス変換に
よるオーバヘッド (4) 7M間の切替サービス処理(ディスバッチ処理
)のだめのオーバヘッド 前記(3)のオーバヘッドを削減する試みの例は、特開
昭50−23146号公報及び同57−212680号
公報に記載されている。特開昭55−53749号公報
は、前記(1)及び(2)のオーバヘッドの削減へのア
プローチの一つを示す。これは、BM内に、諸VMが使
用するための演算レジスタ群と、VMMが使用するため
の演算レジスタ群を、別個に用意することによシ、前記
(1)及び(2)の処理に伴なう演算レジスタ群の内容
の退避・回復手続によるオーバヘッドを、削減しようと
するものである。
ところで、従来、VMSは、大型汎用計算機の分野で考
慮の対象とされてきた。前掲諸公報に記載された発明も
、大型機を対象としたものと考えられる。他方、LSI
技術の最近における目覚しい発展により、マイクロ・コ
ンピュータ技術が大幅に進歩し、その結果、マイクロ・
コンピュータと周辺装置を組合せた、いわゆるパーソナ
ル・コンピュータ(personal  comput
er 、以下pcと略記)が広く実用されるに至った。
そして、種種のPCのために多数の応用プログラムが開
発されつつある。そこで、他のPC用に開発された魅力
的な応用プログラムを使いたいという要求が生じる。し
かし、これらの応用プログラムは、それぞれ特定のO8
の下で動作するように作られており、特にPCの場合、
応用プログラムのosへの密着性が強いから、これらを
異なるosを備えたPCで使用しようとすれば、一般に
は、osを入替えるか、あるいは、その使いたい応用プ
ログラムのO8依存部分を作シ変えなければならず、い
ずれにしても、非常に不便である。したがって、この問
題の解決策として、単一の実計算機上で複数のO8が動
作するのを可能にするVMSの採用は、PCのO8の規
模が大型機用O8のそれと比較してずつと小さいことも
あって、甚だ効果的であろう。
しかしながら、現状において、PCには、前記のような
VMMのオーバヘッドを低減するだめの手段が備えられ
ていない。これらのオーバヘッドを極力低減するだめの
改良が、VMSのPCへの適用のために望まれる。特に
、特権命令の内で、状態レジスタ(!9 tatus 
Register  )を取扱う命令のシミュレーショ
ン処理に伴なう問題は、前掲特開昭55−53749号
公報に記載された技術によって解決することはできない
。この、状態レジスタを取扱う命令のシミュレーション
処理に伴なう問題を、次に詳述する。
第3図は、マイクロ・プロセッサにおける状態レジスタ
の内容の一例を示す。状態レジスタ200の内容は、現
時点におけるプロセッサの内部状態を示し、システム・
バイト201とユーザ・バイト210からなる。システ
ム・バイト201は、ハードウェアの状態や動作条件を
示す部分であり、割込マスク(IN’ll’)202と
スーパバイザ・モード・ビット(S)203i含む。割
込マスク202は、各種の割込みについてそれらが禁止
されるか否かを示し、“0”ならばすべての外部側  
 ゛込み(入出力割込み、タイマ割込み等)が受付けら
れる。スーパバイザ・モード・ビット203は、いわゆ
る非特権モードと特権モードの間を区別する。それが”
1″であれば、特権モードを示し、この状態においては
、プログラム中のすべての命令が直接実行される。これ
に対して、スーパバイザ・モード・ビットが”0”であ
れば、非特権モードを示し、この状態においては、いわ
ゆる特権命令(センシティブ命令とも呼ばれる)が発行
されると、VMMが割込んで、シミュレーション処理に
よりその命令を実行し、その結果を、当該命令を発行し
たプログラムに反映する。特権命令の代表的なものが、
状態レジスタの内容などの制御情報によって規定される
ハードウェアの状態を変更する命令である。
ユーザ・バイト210は、ユーザ・プロクラム(UP)
の状態を示す部分であり、条件コード(CC)211を
含む。条件コード211は、プログラムによる処理の結
果の注目すべき状態、例えば、オーバ・フローや桁上げ
の発生、計算結果の零値や正負などを示す。これらは、
例えば、条件付分岐命令の条件として参照される。
マイクロ・プロセッサ上に構築されたVMSにおいては
、外部割込みの受入れの可否と動作モードの掬示とが、
前記のように、状態レジスタの内容によって指示される
。他方、各VMは、論理的なものではあるが、一つの完
全な計算機であるから、それ自身の状態レジスタを持つ
必要がある。
通常のVMSにおいて、各VMの状態レジスタの内容は
、当該VMが走行していない間、各VMに対応して用意
された制御ブロックと呼ばれる特定のメモリ領域に、プ
ログラム・カウンタや各種演算レジスタの内容と共に保
存されており、当該VMの走行開始時に、VMMのディ
スパッチ処理によシ、実状態レジスタにセットされる。
しかしながら、実状態レジスタの内容のすべてをVMの
状態レジスタの内容で置換することはできない。
なぜなら、VMMの機能の一部がVMの状態に優先する
からである。例えば、vMとしてはUPとの関係におい
て特権モードにあっても、VMSとしては、特権命令は
依然としてVMMのみによって実行されねばならない。
また、vMとしては外部割込みが禁止されていても、例
えば、走行VMの切替時刻’に’ V M Mに告げる
タイマ割込みなどの緊急な割込みは、必ず受付けられな
ければならない。したがって、少なくとも、割込マスク
202とスーパバイザ・モード・ピット2o3は、vM
の状態レジスタの内容によって左右されてはならない。
同じことは、状態レジスタの内容を変更する命令の実行
についてもあてはまる。そこで、状態レジスタの内容を
変更する命令は、通常、特権命令として扱われ、vMM
によるシミュレーション処理を通して実行される。
第4図は、VMのO8から発行された状態レジスタ変更
命令に対する、VMMのシミュレーション処理の手順を
示す。まず、シミュレーション処理プログラムを走行さ
せるために、演算レジスタ及び命令アドレス・レジスタ
(IAR)の内容を退避させて、次に、処理220にお
いて、走行中のVMに対応する制御ブロック内の状態レ
ジスタ領域の内容を、命令に従って変更する。それから
、この変更が状態レジスタのシステム・バイトの変更で
なければ(すなわち、ユーザ・バイトのみの変更であれ
ば)、処理221で実状態レジスタの変更を行なう。シ
ステム・バイトの変更は、実状態レジスタに反映させな
い。その後、保留中の外部割込みがなければ、演算レジ
スタの内容を回復し、続いて命令アドレス・レジスタ(
IAR>の内容を回復し、最後に、処理222において
、実状態レジスタのスーパバイザ・モード(S)・ビふ ット割込マスク(INT)を”0”にリセットして、特
権命令のトラップとすべての外部割込みの受付けが可能
な状態を確保する。これらの処理のために、通常500
〜600ステツプの命令を必要とし、これがVMMの介
入によるオーバヘッドとなる。
状態レジスタについての類似の処理は、VMの走行を開
始させるデーイスパッチ処理に際しても必要である。ま
た、割込みの処理においても、制御ブロック中の状態レ
ジスタ領域を調べるために、メモリ・アクセスを必要と
する。これらの処理もマタ、オーバヘッドを生じる。
なお、現用の代表的なマイクロ・プロセッサのアーキテ
クチャは、例えば、次の文献に記載されている。
A 1%(icroprocessor Archit
ecture  fora Changing Wor
ld :’l’he 曳otorola 68000″
Computer、 Vol、 12 + pp、 4
3〜51(1979−2)IEEE ” 1Apxs6フアミリ・ユーザーズマニュアル”イ
ンテル・ジャパン:資料番号205885J〔発明の目
的〕 本発明の目的は、仮想計算機システムにおいて、特権命
令のシミュレーション処理、ディスパッチ処理、割込処
理などにおける状態レジスタの取扱いに関するオーバヘ
ッドを削減し、PCのような小型の計算機へのVMSの
適用を容易にするにある。
〔発明の概要〕
本発明によれば、実状態レジスタとは別に、・・−ドウ
エアによ)直接制御される模擬状態レジスタ群が設けら
れ、各模擬状態レジスタが各仮想計算M(VM)に割当
てられる。各VMから発行された状態レジスタに対する
参照又は更新命令は、対応する模擬状態レジスタの参照
又は更新として実行される。更新された模擬状態レジス
タの内容は、反映回路によって、制御プログラム(VM
M)の本来の機能を損わない限シにおいて、例えば、ス
ーパバイザ・モード・ビットと割込マスクを除いて、実
状態レジスタに自動的に反映され、更新の保留されたフ
ィールドには予め定められた値がセットされる。VMM
動作モード又は実計算機モードにおいては、実状態レジ
スタの全内容の更新が許される。
〔発明の実施例〕
第5図は、本発明が適用されたバーンナル・コエネレー
タ(CLOCK)、303は割込制御回路、304は主
メモリ(RAM)である。RAM304には、第2図に
示された制御プログラム(VMM)502.08506
、ユーザ・プログラム515等が格納されており、そし
て、VMM502は制御ブロックなどの制御情報を含む
。符号305はメモリ制御部(MCU)、306はディ
スク制御回路、307は磁気ディスク・ファイル(DI
SC)、308はプリ/り制御回路、309はプリンタ
装置(PR,T)、310はディスプレイ/キー・ボー
ド(D/K)制御回路、311はキー・ボード(KEY
)付ディスプレイ(CRT)装置、312は通信制御回
路、313は通信回路装置である。
周辺装置については、必要に応じて取捨選択し、あるい
は図示以外のものを採用してもよい。
CPU301と各コンボーネメトとは、24ピツト幅の
アドレス・バスt52.16ピツト又は32ピツト幅の
双方向データ・バスt53、各部への制御信号線群t5
4〜58、及び各部からの応答信号線群t59によシ相
互接続されている。
加えて、CPU301とMCU305は、CPU301
の動作モード、vM番号等を示す情報のためのファンク
ション・ライン・バスt60と、MCU305からCP
U301へのアドレス例外やメモリ・エラーなどの報告
のための信号線群t61とにより接続される。
CPU301は、希望するメモリ・アドレスをアドレス
・バスt52に送出するとともに、制御情報を信号線群
154〜15B及びファンクション・ライン・バスt6
0に送出して、RAM304に格納されている7MM5
02.08506、UP51°5等の中から必要なもの
を読出させ、データバスt53に介して受取って、順次
実行し、また、同様にして、制御ブロックなどの制御情
報を、必要に応じて入手する。割込制御回路303は、
外部装置からの割込要求が信号線群t62を介して伝え
られると、それらの優先順位に従って割込レベル番号を
生成し、信号線群t63を経てCPU301に送る。
第6図は、本発明による状態レジスタ制御装置ヲ備工た
マイクロ・プロセッサの構成の一例を示し、これは、第
5図におけるCPU301に相当する。状態レジスタ制
御部100は、本発明の要部をなすものであシ、後で詳
述する。簡単にいえば、この状態レジスタ制御部100
は、複数の模擬状態レジスタを含む状態レジスタ・ファ
イルと、実状態レジスタと、vMモモ−表示子とを有し
、状態レジスタ・ファイル中の各模擬状態レジスタは、
各VMに割当てられる。VM番号レしスタVMID10
5は、走行中のVMの識別番号(VM番号)を保持し、
その内容は、状態レジスタ制御部100及び後述するレ
ジスタ選択回路57中で利用される。割込処理部110
は、信号線群t63を経て与えられる割込レベル信号を
、状態レジスタ制御部100から与えられる割込マスク
の値と比較して、前者が後者よシも大きければ、その割
込みを受付ける。
アドレス・レジスタ・ファイル55は複数群のアドレス
・レジスタからなり、データ・レジスタ・ファイル56
もまた複数群のデータ・レジスタからなり、更に、命令
アドレス・レジスタ(IAR)群もまた複数の命令アド
レス・レジスタ(すなわち、プログラム・カウンタ)か
らなり、1群のアドレス・レジスタと、1群のデータ・
レジスタと、1個の命令アドレス・レジスタが、各VM
に割当てられる。レジスタ選択回路57は、VMIDレ
ジスタ105が示すVM番号に従って、走行中のVMに
対応する前記諸レジスタの1組を選択する。この機構も
、走行VMの変更や割込処理に際しての、レジスタの内
容の退避・回復のためのオーバヘッドを削減するもので
あり、特願昭59−266457号に詳述されている。
プログラム命令の解読と実行は、命令レジスタ(IR)
51、命令デコード部52、命令制御部53、命令実行
用のマイクロ・プログラムを保持するローカル・ストレ
ッジ54、及び命令実行制御部115によシ主に遂行さ
れる。制御信号処理部67は、プロセッサと外部装置の
間における各種の制御信号及び応答信号の授受を行なう
。データの処理と転送のために、一時的保持レジスタ(
T−Beg) 60、演算器(ALU)61、シフト演
算器62、マルチプレクサ(MPX)63、セレクタ6
4、データ保持レジスタ(DR,)65、アドレス保持
レジスタ(ADR)66、及びレジスタ・ファイル制御
部58が設けられる。レジスタ・ファイル制御部58は
、レジスタ選択回路57によって選択されたアドレス・
レジスタ群55及びデータ・レジスタ群56の中から、
命令により指定された個々のレジスタを選択する。
主な信号線については、バスt51は32ビット幅の内
部データ・バスであp、t52及びt53は、第5茸に
関して既に説明した、アドレス・バス及びデータ・バス
である。信号線t54〜160も、第6図に関して既説
したが、それらの内で、信号線t54は、状態レジスタ
制御部100中の状態レジスタの内容の一部(例えば、
第3図のSヒツト)全送出し、ファンクション・ライン
・バスt60は、プロセッサの状態、すなわち、7Mモ
ードか否か、そして、スーパバイザ・モードかユーザ・
モードか、などを表わす諸信号と、VMID105から
のVM番号とを送出する。第5図に示された信号線t6
1は、本発明とは関係がないので、第6図では省略され
ている。
動作を略述すれば、命令制御部53は、レジスタ選択回
路57によって選択されたIAR59が示すメモリ・ア
ドレスから、次に実行すべき命令の読出しを試みる。選
択されたIAR,59の内容は、MPX63を経てAD
R66に保持され、そこからアドレス・バスt52上に
送出される。同時に、制御信号処理部67は、命令制御
部53から信号線t64、命令実行制御部115、信号
線t65を経て指令を受け、信号線154〜t58及び
t60上に所要の制御信号を送出する。信号線t55と
t56はデータ・バス上のデータ位置を示す。すなわち
、データ・バスt53が16ピツト幅の場合、信号線t
5’5上の信号が1”ならば下位8ビツトを示し、信号
線/、56上の信号が1″ならば上位8ビツトを示し、
双方共に11″ならば全16ビツトを示す。命令は16
ビツト長であると仮定する。信号線t57上のR/W信
号は、読出しのために”1″となる。信号線/、58上
のストローブ信号は、所定期間″1″に保たれる。
前記の諸信号を受けたMCU305は、RAM304の
指定されたアドレスから命令データを読出して、データ
・バスt53に送出し、同時に信号線t59に応答信号
″′1”を送出する。プロセッサは、信号線t59上の
応答信号″1”を受取ると、データ・バスt53上のデ
ータ’iDR,65に取込み、そこからMPX63、内
部データ・バスt51を経て、lR51に格納する。命
令は、演算フィールドと、レジスタ・フィールドと、ア
ドレス・フィールドとからなる。命令デコード処理部5
2は、lR51内の命令の演算フィールドを解読して、
命令の実行に必要な情報を、信号線t66を経て命令制
御部53に送る。命令制御部53は、実効メモリ・アド
レスの計算とそれに必要な命令データの準備のために、
信号線t67を通して命令デコード処理部52と連絡す
るとともに、命令の実行に必要なマイクロ・プログラム
を、ローカル・ストレッジ54から呼出す。アドレス計
算は、ALU61を用いて行なわれ、得られた実効メモ
リ・アドレスはADR66に保持される。
これらの間に、IAR59の更新が行なわれる。
続いて、命令実行制御部115の制御の下に、演算が遂
行される。−例として、加算演算の場合であれば、レジ
スタ選択回路57により選択されたアドレス・レジスタ
群55とデータ・レジスタ群56の中から、レジスタ・
ファイル制御部58によす、命令のレジスタ・フィール
ドが指定するレジスタが選択され、その内容が内部デー
タ・ノ(ス151、T−Reg60、セレクタ40を経
て、ALU61の一方の入力に送られる。他方、命令に
より指定されたメモリ・アドレス内のデータは、前述の
ようにしてADR66に準備されていた実効メモリ・ア
ドレスを用いて、前述した命令データの読出しと同様に
して、DR38に取込まれ、そこからMPX63、内部
データ・バスt51を経て、ALU61の他方の入力に
送られる。
ALU61からの演算結果は、レジスタに入れられるべ
きときには、内部データ・バスt51、レジスタ・ファ
イル制御部58を経て、指定されたレジスタに送られる
。演算結果がメモリに格納されるべきときには、演算結
果は、MPX63を経てDR65に一旦格納され、次い
で、制御信号処理部67の制御の下に、データ・バスt
53f経てMCU305に送られて、ADR66が示す
アドレスにおいてRAM304に書込まれる。
一般の、いわゆる非特権命令の実行順序は、以上のとお
りである。これに対して、特権命令群に属する状態レジ
スタの内容を更新又は参照する命令は、状態レジスタ制
御部100を動作させる。
略述すれば、状態レジスタ制御部100は、VMID1
05からのVM番号に従って、状態レジスタ・ファイル
から、走行中のVMに割当てられた模擬状態レジスタを
選択し、参照命令に応じてその内容を内部データ・バス
t51に送出し、あるいは、更新命令に応じてその内容
を内部データ・バス751からの更新データで置換する
とともに、その結果を実状態レジスタに反映させる。
この反映動作において、vMが走行中の場合は、実状態
レジスタのスーパバイザ・モード・ビット(S)と割込
マスク(INT)は、共に強制的に0”にリセットされ
る。
第1図は、状態レジスタ制御部100の一実施例の詳細
を示す。図中、他の図面におけるのと同じ符号は同じ要
素を表わす。状態レジスタ・ファイル1は、一群の模擬
状態レジスタ又はそれと等価な高速小容量メモリであり
、各模擬状態レジスタの内容は第3図に示されたものと
同じである。
デコーダ2は、VMID105から信号線t3を経て送
られたVM番号を解読して、対応する模擬状態レジスタ
を選択する。書込・読出制御回路3は、信号線t2上の
参照/更新指示信号に応答して、状態レジスタ・ファイ
ル1に対する読出/書込制御を行ない、信号線t1を介
して内部データ・バス/、51との間でデータの授受を
行なう。状態レジスタ・ファイル1から読出された模擬
状態レジスタの内容は、レジスタ4に保持される。
比較器5は、信号線t3上のVM番号とO値発生器6の
出力が等しいか否かを判定する。セレクタ(SEL)7
及び8は、比較器5の出力によシ切替えられて、それぞ
れ、0値発生器9及び10の出力か又はレジスタ4のス
ーパバイザ・モード・ビット(S)及び割込マスク(I
NT)を、選択して送出する。レジスタ4の他のフィー
ルドの内容と前記両セレクタの出力の組合せが、実状態
レジスタ11の入力となる。VMモード表示子(V)1
2は、命令実行制御部115からの信号によシ切替えら
れて、プロセッサが実計算機モードにある時には”0”
の値をとり、他の場合(VMM又は任意のVMが走行中
の時)には1″の値をとる。本実節′例において、VM
M及び実計算機は、共にVMMCU305表わされるも
のとする。
動作は次のとおシである。VMID105から信号線t
3を経て送られてきたVM番号は、デコーダ2と比較器
5の双方に与えられる。デコーダ2は、とのVM発番号
解読して、状態レジスタ・ファイル中の対応する模擬状
態レジスタを選択する。この時、信号線t2上の信号が
”0″ならば、参照動作が指示されている。これに応じ
て、書込・読出制御回路3は、選択された模擬状態レジ
スタの内容をレジスタ4に読出し、その内容を信号線t
12’に経て受取って、信号線t1を経て内部データ・
バスt51に送出する。
他方、信号線t2上の信号が“1”であれば、更新動作
が指示されておシ、更新データは信号線tl上に与えら
れている。書込・読出制御回路3は、信号線t13を経
て、この更新データを選択された模擬状態レジスタに書
込み、次いで、この更新された内容をレジスタ4に読出
す。続いて、レジスタ4の内容を実状態レジスタ14に
反映させる動作が行なわれるが、この反映動作は、信号
線t3上のVM発番号より、次の2つに分かれる。
(1)VM発番号0”、すなわち、vMMが走行中か又
はプロセッサが実計算機モードにあれば、レジスタ4の
内容、すなわち、更新された模擬状態レジスタの内容は
、すべてそのまま実状態レジスタ11にセットされる。
(2)VM発番号”0”以外、すなわち、あるVMが走
行中の時は、実状態レジスタ11の割込マスク202と
スーパバイザ・モード・ビット203は、共に強制的に
0”にリセットされ、他のフィールドにのみ、レジスタ
4の内容が転送される。
詳述すれば、(1)の場合、vM番号が0°“であり、
したがって、比較器5は一致を検出し、信号線t14に
”1”を送出する。これに応答して、セレクタ7は、信
号線t15上の信号、すなわち、レジスタ4のスーパバ
イザ・モード・ピッ) (S)を選択して、実状態レジ
スタ11の対応フィールド203にセットし、同様にし
て、セレクタ8は、信号線t6上の信号、すなわち、レ
ジスタ4の割込マスク(INT)を選択して、実状態レ
ジスタ11の対応フィールド202にセットする。レジ
スタ4のその余のフィールドの内容は、信号線/、16
を経て、そのまま実状態レジスタ11の対応フィールド
に転送される。
他方、(2)の場合には、信号線t3上のVM発番号O
″′でない。したがって、比較器5は不一致を検出し、
信号線t17に1″を送出する。これに応じて、セレク
タ7及び8は、0値発生器9及び10の出力をそれぞれ
選択して、実状態レジスタ11のスーパバイザ・モード
・ビット・フィールド203及び割込マスク・フィール
ド202にセットする。実状態レジスタのその余のフィ
ールドには、信号線t16を経て、レジスタ4の対応フ
ィールドの内容が転送される。結局、実状態レジスタ1
1のスーパバイザ・モード・ビットと割込マスクは、強
制的に0”にされ、その余の部分が、更新後のVMの状
態レジスタの内容と一致することになる。
実状態レジスタ11の全内容は、信号線t4を経て命令
実行制御部115に送られ、割込マスク(INT)20
2は、信号線t5を経て割込処理部110に送られる。
VMモード表示子12の値は、信号線t41を経て、命
令実行制御部115、割込処理部110及び制御信号処
理部67に送られる。また、レジスタ4中の割込マスク
(INT)、すなわち、走行中のVMの割込マスクは、
信号線t6を経て、割込処理部110に送られる。
第7図は、第6図における状態レジスタ制御部100の
他の実施例を示す。図中、第1図と同じ符号は同じ要素
を表わす。この実施例においては、VMMは、vM番号
″′θ″を持ち、状態レジスタ・ファイル1中の模擬状
態レジスタの割当てを受けているが、実計算機モードで
は、実状態レジスタへの直接のアクセスが行なわれる。
そのために、VMモード表示子12の出力で制御される
抑止ゲート(IG)13.14が、書込・読出制御回路
3と実状態レジスター1の間に設けられ、これが第1図
の実施例と相違する点である。
実計算機モードにおいて、vMモード表示子12の出力
は0”であシ、これは、抑止ゲート13及び14をオン
状態にすると同時に、信号線t18を経て各部に送られ
て、状態レジスタ・ファ アイル1への葦りセスと、レジスタ4から実状態レジス
タ11へのデータ転送とを禁止する。参照動作において
は、実状態レジスタ11の内容は、信号線t19を通り
、抑止ゲート13t−経て、書込・読出制御回路3に読
出される。更新動作においては、内部データ・バスt5
1からの更新データは、書込・読出制御回路3から信号
線t13、抑止ゲート14及び信号線t20を経て、実
状態レジスタ11に直接書込まれる。
VMM又はVMの走行中は、vMモード表示子12の出
力は1°′となる。したがって、抑止ゲート13及び1
4はオフとなり、かつ、信号線t18上の禁止信号は消
失する。その結果、回路は第1図のものと等価になり、
VM番号に応じた状態レジスタ・ファイル1と実状態レ
ジスタ11の参照・更新が、第1図の回路と同様に行な
われる。
第1図及び第7図の回路において、システム・バイト中
のスーパバイザ・モード・ビットと割込マスクのみが、
実状態レジスタへの反映に際して特別な扱いを受ける。
しかし他のフィールドについても、それらに割当てられ
た機能(例えば、スーパパイプ・モードの更に優位モー
ドであるハイパバイザ・モードの指定など)によっては
、同様な扱いをすることができる。
〔発明の効果〕
本発明によれば、状態レジスタを参照又は更新する命令
が直接ハードウェアで処理されるから、シミュレーショ
ン処理によるオーバヘッドが除かれ、更に、ディスパッ
チ処理や割込処理における状態レジスタの取扱いに関す
るオーバヘッドも除かれる。このようなオーバヘッドの
削減は、特に、マイクロ・プロセッサのような非常に小
型の計算機に対するVMSの適用を容易にする。
【図面の簡単な説明】
第1図は本発明の主要部をなす状態レジスタ制御部の一
実施例のブロックダイヤグラム、第2図は仮想計算機シ
ステムの概念図、第3図は状態レジスタの内容の模式図
、第4図は状態レジスタ更新命令のシミュレーション処
理のフローチャート、第5図は本発明が適用されたパー
ソナル・コンピュータ・システムのブロックダイヤグラ
ム、第6図は第5図におけるマイクロ・プロセッサ(C
PU)のブロックダイヤグラム、第7図は状態レジスタ
制御部の他の実施例のブロックダイヤグラムである。 1・・・複数の模擬状態レジスタからなる状態レジスタ
・ファイル、2・・・仮想計算機番号デコーダ、3・・
・書込・読出制御回路、5・・・仮想計算機が走行中か
否かを判定するための比較器、7.8・・・更新データ
又は0値を選択するセレクタ、11・・・実状態レジス
タ、105・・・仮想計算機番号保持レジスタ。

Claims (1)

  1. 【特許請求の範囲】 1、制御プログラムの管理下に複数の仮想計算機が実計
    算機上で走行する仮想計算機システムの前記実計算機に
    おいて、実状態レジスタと、複数の模擬状態レジスタと
    、走行中の仮想計算機の識別情報を保持する手段と、状
    態レジスタの参照又は更新に際して前記識別情報に従い
    前記複数の模擬状態レジスタの一つを選択してアクセス
    する選択アクセス手段と、前記実状態レジスタの内容の
    少なくとも一部を前記模擬状態レジスタに対する更新デ
    ータの対応部分で置換する反映手段とを備えた状態レジ
    スタ制御装置。 2、特許請求の範囲1において、その仮想計算機識別情
    報は、前記制御プログラムを特定の仮想計算機として識
    別する状態レジスタ制御装置。 3、特許請求の範囲1又は2において、その反映手段は
    、仮想計算機からの更新要求の場合に前記実状態レジス
    タの内容の予め定められた部分を予め定められた値に強
    制し、制御プログラム又は実計算機からの更新要求の場
    合に前記実状態レジスタの全内容について要求どおりの
    更新を許す手段を有する状態レジスタ制御装置。 4、特許請求の範囲3において、その予め定められた部
    分はモード指示部及び割込マスク部であり、その予め定
    められた値は、それぞれ、非特権モード指示値及び全外
    部割込許容値である状態レジスタ制御装置。 5、特許請求の範囲1、2、3又は4において、その選
    択アクセス手段と反映手段は、実計算機モードにおいて
    前記実状態レジスタへの直接のアクセスを許す手段を有
    する状態レジスタ制御装置。
JP4755385A 1984-12-19 1985-03-12 仮想計算機システムにおける状態レジスタ制御装置 Pending JPS61208133A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP4755385A JPS61208133A (ja) 1985-03-12 1985-03-12 仮想計算機システムにおける状態レジスタ制御装置
US06/809,182 US4975836A (en) 1984-12-19 1985-12-16 Virtual computer system
DE8585116263T DE3582662D1 (de) 1984-12-19 1985-12-19 Virtuelles datenverarbeitungssystem.
EP85116263A EP0185378B1 (en) 1984-12-19 1985-12-19 Virtual computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4755385A JPS61208133A (ja) 1985-03-12 1985-03-12 仮想計算機システムにおける状態レジスタ制御装置

Publications (1)

Publication Number Publication Date
JPS61208133A true JPS61208133A (ja) 1986-09-16

Family

ID=12778358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4755385A Pending JPS61208133A (ja) 1984-12-19 1985-03-12 仮想計算機システムにおける状態レジスタ制御装置

Country Status (1)

Country Link
JP (1) JPS61208133A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03209522A (ja) * 1990-01-11 1991-09-12 Matsushita Electric Ind Co Ltd 命令コード解読装置
JP2009238056A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03209522A (ja) * 1990-01-11 1991-09-12 Matsushita Electric Ind Co Ltd 命令コード解読装置
JP2009238056A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法

Similar Documents

Publication Publication Date Title
US4975836A (en) Virtual computer system
TWI407366B (zh) 具有微代碼之微處理器、在微處理器中儲存資料的方法、以及使用於計算裝置之電腦程式產品
US5953516A (en) Method and apparatus for emulating a peripheral device to allow device driver development before availability of the peripheral device
EP0794492B1 (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
EP0313848B1 (en) Data processor with development support features
CA1182575A (en) Method and means for switching system control of cpus
US8234430B2 (en) Apparatus and method with controlled switch method
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
US4562538A (en) Microprocessor having decision pointer to process restore position
JPS61206043A (ja) 仮想計算機システムにおける割込制御方法
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPH07175666A (ja) データプロセッサおよびその割込み要求処理方法
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
US5021991A (en) Coprocessor instruction format
CN113535245A (zh) 用于更快的启动过程的多处理器启动流程的方法、系统和设备
Bodenstab et al. The UNIX system: UNIX operating system porting experiences
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
Tzafestas et al. Real Time Microcomputer Control of Industrial Processes
JPS63279328A (ja) 仮想計算機システムのゲスト実行制御方式
US7562207B2 (en) Deterministic microcontroller with context manager
US4994961A (en) Coprocessor instruction format
JPS61208133A (ja) 仮想計算機システムにおける状態レジスタ制御装置
EP0301707B1 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor