JPH0567973B2 - - Google Patents

Info

Publication number
JPH0567973B2
JPH0567973B2 JP58250362A JP25036283A JPH0567973B2 JP H0567973 B2 JPH0567973 B2 JP H0567973B2 JP 58250362 A JP58250362 A JP 58250362A JP 25036283 A JP25036283 A JP 25036283A JP H0567973 B2 JPH0567973 B2 JP H0567973B2
Authority
JP
Japan
Prior art keywords
channel
interrupt
virtual
virtual machine
address
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.)
Expired - Lifetime
Application number
JP58250362A
Other languages
English (en)
Other versions
JPS60142429A (ja
Inventor
Hidenori Umeno
Hiroshi Ikegaya
Toshiharu Tanaka
Takashige Kubo
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 JP58250362A priority Critical patent/JPS60142429A/ja
Publication of JPS60142429A publication Critical patent/JPS60142429A/ja
Publication of JPH0567973B2 publication Critical patent/JPH0567973B2/ja
Granted legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、仮想計算機システムに関し、特に入
出力をハードウエアにより直接実行する仮想計算
機システムのI/O実行方法および装置に関する
ものである。
〔発明の背景〕
近年、デイジタル計算機の応用分野が拡大する
に伴い、実主記憶装置の容量の制約を低減したア
ドレス方式(仮想記憶方式)が使用され、さらに
この方式を用いて1つの実計算機を多数のオペレ
ーテイング・システム(以下OSと記す)が同時
に使用でできる方式(仮想計算機システム)が用
いられている。
第1図は、通常の仮想計算機システムの概念図
である。
実計算機システムの中央処理装置(以下CPU
と記す)100実主記憶装置200、実入出力チ
ヤネル装置群300、実入出力装置群400が示
されている。実主記憶装置200には、仮想計算
機システム(以下VMSと記す)全体を制御する
管理プログラムVMCP(単にCPとも呼ぶ)が存
在し、この管理プログラムVMCPのシミユレー
シヨン機能により仮想計算機VM1500−1,
VM2500−2,VM3500−3が実現される
(以下、仮想計算機をVM、制御プログラムを
VMCPと記す)。
実現されるVMの台数は、計算機のリソース量
により制限されるものである。第1図に示すよう
に、各VMには、仮想CPU500−10,500
−20,500−30、仮想主記憶装置500−
11,500−21,500−31、仮想入出力
チヤネル装置群、仮想入出力装置群が存在する。
これらの仮想リソースは、VMCPのシミユレー
シヨン機能により実現される。VM上のOSは、
これらのリソースを実リソースとみなして使用す
るので、以下これらを、VMのCPU、VMの主記
憶装置、VMの入出力チヤネル装置群、VMの入
出力装置群と呼ぶ。
第2図は、第1図のVMの主記憶装置、つまり
仮想主記憶装置の実主記憶200における割当て
方法を示す図である。
第2図に常駐領域(V=R、常駐領域1、常駐
領域2)、VMCPのダイナミツクページング領域
を示す。このページング領域は、非常駐領域(V
=V)として使用される。
V=RのVMは、アドレス0を起点とするV=
R領域、1番目の常駐VMの主記憶装置500−
11用に主記憶装置アドレスα1を起点とする常駐
領域、2番号の常駐VMの主記憶装置500−2
1のために主記憶装置アドレスα2を起点とする常
駐領域がそれぞれ占有されている。常駐VMの台
数が増加すれば、同様に、常駐領域3、常駐領域
4,…が常駐VM3の主記憶装置500−31、
常駐VM4の主記憶装置500−41と定義され
ていく。
一般のV=V(非常駐)のVMの場合には、
VMCPのダイナミツク・ページング領域を他の
V=VのVMとともに共有することになる。ま
た、VMCPのプレフイクス・エリア(PSA)が、
第2図に示すように、実主記憶装置200上の適
当な場所に確保されている(以下、フレフイク
ス・エリアをPSAと記す)。計算機のPSAには、
その計算機のハードウエア状態が格納されてお
り、格納状態の例を第4図Aに示す。
第4図AのPSA201には、入出力チヤネル
装置への指令語CCW(Channel Command
Word)群の先頭アドレスおよびアクセスキー等
を含むチヤネル・アドレスワード(CAW)20
2、I/O旧PSW(Program Status Word)2
03、I/O新PSW204が含まれている。
第4図Bは、第4図AのPSWの内容を示す図
である。
PSW204におけるビツトIはI/Oマスク、
ビツトEは外部割込みマスク、ビツトWはウエイ
ト・ビツトであり、NIAは次に実行すべき命令
を表わす。このPSW204は、CPUに1個だけ
存在し、そのCPUの状態を表わすものである。
さらに、各VMに対してもPSW(仮想PSW)が存
在し、それは各VMの状態を表わすものである。
また、各VMのPSAは、第2図に示す各VMの領
域の中にそれぞれ含まれており、各VMのそれぞ
れのハードウエア(一般には仮想ハードウエア)
状態を表わす。各VMのPSA(仮想PSA)は、第
4図Aに示したものと同じ内容を含む。仮想
PSAの内のCAWは、そのVMの仮想主記憶装置
内のCCW群の先頭アドレスおよびアクセスキー
を含む。また、仮想PSA内のPSWは、そのVM
個有の情報を含むPSWである。
第2図に示すVMCPのPSAには、VMCPで使
用する計算機システムの状態、つまりVMS全体
での計算機システムの状態が表示される。
次に、実計算機システムにおけるI/O要求お
よびI/O割込みの実行方法を説明する。
先ず、I/Oに対する要求があると、主記憶装
置200上にI/Oチヤネル動作(Read/
Write等)を規定するCCW群を記述する。その
CCWの中に含まれるデータ・アドレスは、主記
憶装置アドレスである。次に、CCW群の先頭ア
ドレスをCAWに設定し、Start I/O命令を発
行する。これにより、目的とする装置にI/O起
動信号が発行される。この装置は、I/Oアドレ
スCUによりアドレス付けされており、ここでC
はチヤネル装置番号、Uは装置アドレスである。
以上のI/Oの要求手順は、計算機システムを制
御するOSの中の核となるI/Oスーパバイザと
呼ばれるプログラムにより行われる。
I/O割込みの実行は、先ず、I/Oチヤネル
装置からCPUに対してI/O割込み要求が発生
することにより開始される。CPU側は、現在の
状態がこの割込み要求に対して割込み可能か否か
を判断し、割込み可能な場合には、割込み動作を
起こす。それは、CPU側のPSWを、PSA内の
I/O旧PSWに格納し、I/O新PSWをPSWに
ロードすることにより行う。このとき、同時にこ
の割込み要求元のI/OアドレスCUがPSAの特
定部分に格納される。以上の割込み動作は、OS
の介入なしに、直接ハードウエアにより実現され
る。
第3図A,Bは、それぞれI/O要求とI/O
割込みのVMSでのシミユレーシヨン動作を示す
図である。
VMにおけるI/O要求およびI/O割込み
は、VMCPにより次のようにシユミレーシヨン
される。
先ず、第3図Aに示すように、VM600上の
OSは、その主記憶装置上にCCW群(仮想CCW
群と呼ぶ)を作り、その先頭アドレスを仮想
PSA内の仮想CAWに設定し、I/O命令を発行
する。そのCCW群は、VMの主記憶装置のアド
レスで作られる。このアドレスは、第2図の常駐
領域がVMの主記憶装置として与えられる場合に
は、その先頭アドレスを0とする常駐領域内相対
アドレスである。なお、第1図に示すI/Oチヤ
ネル装置は、常駐領域に作られたCCW群(常駐
領域内相対アドレスで作られている)の先頭アド
レスを含む仮想PSAのアドレスのみ与えられて
いれば、それらを実行する機能を有するものとす
る。この場合の実行とは、常駐領域上のOSの用
意したCCWを、プログラムにより何ら変更する
ことなく、そのままI/Oチヤネルにより実行す
ることを意味する。
第3図Aにおいて、VM600上のOSが発行
したI/O命令は、ハードウエア700によりト
ラツプ(分岐)され、さらにVMCP800に制
御が渡される。VMCP800は、VMのPSA内
の仮想CAWより、仮想CCW群の先頭アドレス
(これは、主記憶装置でのアドレス)を求め、こ
れをVMCPのPSA内のCAWに設定し、VMに代
つてI/O命令を発行する。これにより、I/O
チヤネルは、VMCPのPSA内のCAWよりVMの
仮想CCWにアクセスし、直接実行を行う。I/
Oチヤネルは、実主記憶装置200のアドレスで
作られたCCW(実CCW)の実行も行うことがで
きる。
次に、第3図Bに示すように、VM600で
I/O割込みが発生すると、ハードウエア700
によりトラツプされ、VMCP800の該当部に
制御が渡される。VMCP800は、このI/O
割込みをどのVMに反映すべきかを判断し、この
VMのI/O割込み可能性を判断して割込み可能
であれば、その仮想PSAへ割込みを反映する。
それは、そのVMのPSW(仮想PSW)を、その仮
想PSAのI/O旧PSWに格納し、I/O新PSW
を仮想PSWに設定することにより行われる。こ
れらのPSW入換え処理は、すべてVMCP800
によりそのVMのPSAに対して行われる。
このように、従来のVMSでは、I/O命令は
必ずVMCPによりVMCPのシユミレーシヨンさ
れるため、そのCPUオーバヘツドが大きく、高
性能化が望めないという欠点があつた。
〔発明の目的〕
本発明の目的は、このような従来の欠点を改善
し、VMSのI/Oシユミレーシヨン・オーバヘ
ツドを削減して、高性能化を図ることができる仮
想計算機システムのI/O実行方法および装置を
提供することにある。
〔発明の概要〕
上記目的を達成するため、本発明の仮想計算機
システムのI/O実行方法は、(イ)1ないし複数の
オペレーテイングシステムの処理を実行するため
に、1台の実計算機上の管理プログラムの管理下
で1ないし複数の仮想計算機を走行させる仮想計
算機システムにおいて、走行中の仮想計算機から
I/O命令が発行されたとき、該I/O命令で使
用するI/Oチヤネルが、前記走行中の仮想計算
機に占有されるI/Oチヤネルか否かを判定し、
該判定の結果、該I/Oチヤネルが前記走行中の
仮想計算機に占有される場合には、前記管理プロ
グラムを介することなく前記I/O命令を実行
し、前記判定の結果、前記I/Oチヤネルが前記
走行中の仮想計算機に占有されるものでない場合
には、前記I/O命令の処理を前記管理プログラ
ムに委ねることを特徴としている。また、(ロ)I/
Oチヤネルからの割込みが発生したとき、該割込
みが発生したI/Oチヤネルが現在走行中の仮想
計算機に占有されるI/Oチヤネルであるか否か
を判定し、該判定の結果、該I/Oチヤネルが前
記走行中の仮想計算機に占有される場合は、前記
管理プログラムを介することなく前記割込みを前
記走行中の仮想計算機の計算機状態格納領域に反
映し、前記判定の結果、前記I/Oチヤネルが前
記走行中の仮想計算機に占有されるものでない場
合には、前記管理プログラムを介して前記割込み
を前記走行中の仮想計算機の計算機状態格納領域
に反映することも特徴としている。また、本発明
の仮想計算機システムのI/O実行装置は、(ハ)仮
想計算機が現在走行していることを識別する手段
と、現走行中の仮想計算機に占有されているI/
Oチヤネルを指示する手段と、現走行中の仮想計
算機のプレフイクスのアドレスを記憶する手段
と、上記両記憶手段のいずれか一方を選択する手
段と、上記仮想計算機の走行中に発行されたI/
O命令が占有I/Oチヤネルに対して発行された
か否か判断する手段とを有することを特徴として
いる。
〔発明の実施例〕
以下、本発明の実施例を、図面により説明す
る。
第5図は、本発明の一実施例を示すI/O命令
実行回路の図であり、第9図1,2は第5図の動
作フローチヤートである。
第5図に示すように、I/O命令実行回路はハ
ードウエアにより構成される。
従来より設けられているI/O命令レジスタ1
000、I/O実行回路2300,2400、
PSWレジスタ5200、判定回路5300、プ
ログラム割込み回路5400の外に、仮想チヤネ
ル・マスク・レジスタ1100、仮想変換レジス
タ1200、プレフイクス・レジスタ1400,
1500、および選択回路1900を新たに設け
る。
I/O命令がデコードされると、従来と同じよ
うに、I/Oコードおよびチヤネル番号Cv、デ
バイス・アドレスUがレジスタ1000に設定さ
れる(第9図1のステツプ1)。
第7図a,b,c,dは、それぞれ、仮想チヤ
ネルマスク・レジスタ1100、仮想変換レジス
タ1200、実チヤネルマスク・レジスタ610
0、実変換レジスタ6200の構成を示す図であ
る。第7図の各レジスタの下方の数字0……n…
…31は仮想チヤネル番号a,bまたは実チヤネル
番号c,dである。
仮想チヤネルマスク・レジスタ1100は、32
ビツトより構成され、現走行VMのチヤネルの状
態を表わしている。ビツトnの値inが0のとき
は、仮想チヤネルnに対応する実チヤネルを現走
行VMが占有していることを表わす。また、仮想
変換レジスタ1200は現走行VMの仮想チヤネ
ルnに対応する実チヤネル番号Coを表わしてお
り、1エントリが1バイト、全体で32バイトの長
さを備えている。仮想チヤネルマスク・レジスタ
1100、仮想変換レジスタ1200は、現走行
VMがVMCPにより起動されたときに初期設定さ
れる。
さて、第5図において、レジスタ1000に設
定されたチヤネル番号Cv(仮想チヤネル番号と呼
ぶ)に対応する仮想チヤネルマスク・ビツトが、
仮想チヤネルマスク・レジスタ1100より取り
出されて、ラツチ1600にセツトされる(ステ
ツプ2)。なお、ラツチ1600の値iが“0”
のときは、仮想チヤネルCvが現走行中VMに占有
されていることを表わす。また、仮想チヤネルマ
スク・レジスタ1100は、VMCPにより設定
されている。
次に、同じようにして、仮想チヤネル番号Cv
に対応する実チヤネル番号Crが、仮想変換レジス
タ1200より取り出されて、レジスタ1700
に設定される(ステツプ3)。ここで、仮想変換
レジスタ1200は、VMCPにより設定されて
いる。仮想チヤネル番号Cv、実チヤネル番号Cr
が選択回路1900に送られると、選択回路19
00はCvまたはCrのいずれかを選択してレジス
タ2100に送る。AND回路2600は、ラツ
チ(H)1300が“1”で、かつラツチ1600が
“0”のとき、すなわち、高速VMモード(ラツ
チ(H)1300が“1”)で、かつ現走行VMに占
有化されたチヤネル(ラツチ1600が“0”)
のときのみ、線4200に“1”を出力して、選
択回路1900に実チヤネル番号Crを選択させる
(ステツプ4,5,6)。なお、ステツプ5では高
速VMモードで、かつ占有チヤネルのときのみ、
“1”が出力される。また、ステツプ6では、共
有チヤネルのI/O、VMCPのI/Oのときは、
ゲート2600の出力は“0”となる。このとき
は変換をせずに、Cvを用いる。
以上の動作は、高速VMモードのとき、占有チ
ヤネルに対するI/Oが、ハードウエアによりそ
のチヤネル番号が仮想から実に変換されることを
意味している。
レジスタ2100には、選択されたチヤネル番
号C、レジスタ1000内のデバイス・アドレス
Uが設定される(ステツプ7)。そのI/Oアド
レスは、I/O正常処理回路2300またはI/
O例外処理回路2400に入力される(ステツプ
8)。
判定回路5300の出力により、I/O正常回
路2300またはI/O例外処理2400、また
はプログラム割込回路5400のいずれか1つが
選択されて、起動される(ステツプ9)。
第8図は、第5図の判定回路の論理回路図であ
る。
レジスタ(PSW)5200には、CPUのPSW
が設定されており、またそのPビツトがP=0の
ときCPUは特権状態にあり、P=1のときCPU
は非特権状態にある。I/O命令等の特権命令
は、CPUが特権状態、つまりP=0のときのみ
実行可能であるように制御される。したがつて、
P=1のときは、線5300−3にだけ“1”が
出力され、プログラム割込回路5400が起動さ
れる(ステツプ11)。なお、P=1はProblem
Modeを意味し、このときI/O命令は特権命令
例外とする。
次に、P=0のとき、ラツチ1300の値Hが
“0”、つまり高速VMモードでないときは、I/
O正常処理2300を起動するために、信号線2
300−1に信号“1”が出る(ステツプ12)。
ラツチ1300の値H=0は、実計算機モードま
たは一般VMの場合で、このときは、線5100
に“0”が出力されて、プレフイクス・レジスタ
1500が選択される。
次に、高速VMモードのときは、PSA変更要求
フラグ2200の値Cpにより、Cp=0のときには
I/O正常処理2300を起動するために、信号
線5300−1に信号“1”を出す(ステツプ
13)。このときは、線5100に“1”が出力さ
れ、プレフイクス・レジスタ1400(例えば、
カレントVMのプレフイクス・レジスタ)が選択
され、実効プレフイクス・レジスタ1800に設
定される。
次に、Cp=1のときは、PSA変更があるので、
I/O例外処理2400を起動するために、信号
線5300−2に信号“1”を出す(ステツプ
14)。このときは、線5100に“0”が出力さ
れ、プレフイクス・レジスタ1500(例えば
VMCPのプレフイクス・レジスタ)が選択され
る。
さて、I/O正常処理2300およびI/O例
外処理2400には、線4300から実効プレフ
イクス・レジスタ1800の内容が送られてきて
おり、その内容をPSAのアドレスとして該当処
理が行われる。実効プレフイクス・レジスタ18
00の内容は、ANDゲート2000の出力51
00の値により選択される。すなわち、高速VM
モード1300の値Hが“1”で、かつPSA変
更要求フラグ2200の値Cpが“0”のときの
み、線5100に“1”が出力され、そのとき、
現走行VMのプレフイクス1400の内容が選択
され、実効プレフイクス・レジスタ1800に設
定される。このときは、前に説明したとおり、判
定回路5300からは、CPUが特権状態のとき、
線5300−1を介してI/O正常回路2300
に起動信号が出される。I/O正常回路2300
は、線4800を経由してI/Oチヤネル250
0に起動信号とともに、線4300より送られて
きた実効プレフイクス・レジスタ1800の内容
を送る。これにより、I/Oチヤネル2500
は、指定されたPSAのアドレスをレジスタ25
01に記憶する。上記の場合は、現走行VMの
PSAを示すことになるので、現走行VMのPSA
内のCAWより仮想CCWを取り出して、順次実行
していく。このとき、CAWの内容および仮想
CCWのデータ・アドレスは、第2図の常駐領域
内相対アドレスで表わされているが、その領域先
頭アドレスαは、このI/Oチヤネル2500の
現走行VMによる占有を指定したとき、または、
このI/O命令発行時に指定され、このI/Oチ
ヤネル2500により記憶されているものとす
る。なお、先頭アドレスαの転送およびI/Oチ
ヤネルによるαの記憶は、従来と同じ技術により
行われるので、I/Oチヤネル2500の中にレ
ジスタ2502として示すが、結線は省略する。
実計算機モードの場合には、高速VMモード・
フラグ1300の値Hが“0”であり、このとき
は、プレフイクス・レジスタ1500の内容が選
択され、I/O正常回路2300に起動がかか
り、従来の実計算機モードにおける処理が保証さ
れる。
以上は、I/O命令の処理であるが、V=Rの
VMおよび常駐VMのOSからのI/O命令を直
接実行することができる。また、V=Vの非常駐
VM上のOSからI/Oは、高速VMモードオフ、
すなわち、ラツチ1300値Hを“0”とし、か
つ非特権モード(即ちPSW5200のPビツト
の値が1)で走行させるので、VMCPへ割出し、
従来と同じく、VMCPによりシミユレーシヨン
される。
次に、第5図、第9図1において、仮想チヤネ
ル・マスクレジスタ1600が“1”、すなわち
現走行VMの占有チヤネルでないチヤネルに対す
るI/Oの場合は、判定回路5300からの起動
信号5300−2により、I/O例外処理240
0が起動される(ステツプ21)。このとき、I/
O例外処理2400には、レジスタ2100より
I/OアドレスCvU、線4300よりVMCPの
プレフイクス・レジスタ1800の内容が入力さ
れる(ステツプ22)。以上の値をハードウエア・
ワークレジスタに設定して、I/O例外処理24
00のマイクロプログラム処理にブレークインす
る(ステツプ23)。I/O例外処理2400内の
マイクロプログラムは、セツトされた入力パラメ
ータを利用して、VMCPに割込むこともできる
とともに、VMCPの適当な場所に制御を渡すこ
ともできる(ステツプ24)。VMCPの適当な場所
に制御を渡すには、VMCPによりマイクロプロ
グラムとのインターフエイス情報をセツトしてお
く必要がある。
以上が、I/O命令処理の動作である。
第6図は、本発明の実施例を示すI/O割込み
実行回路の図であり、第10図は第6図の動作フ
ローチヤートである。
第6図に示すように、本発明のI/O割込み実
行回路は、従来より設けられているI/O割込回
路6900、I/O割込レジスタ6000の他
に、新しく、実チヤネル・マスク・レジスタ61
00、実変換レジスタ600、VMのプレフイク
ス・レジスタ1400、実効プレフイクス・レジ
スタ1800、選択回路6700、ラツチ130
0等を設けている。
I/Oチヤネル2500より、割込要求信号が
線9000を経由してI/O割込回路6900に
送られる(第10図1のステツプ31)。これは、
従来の動作と同じである。次に、I/O割込要求
を発行しているI/OアドレスCrUを、線800
0を経由してレジスタ6000にセツトする(ス
テツプ32)。ここで、Crは実チヤネル番号、Uは
実デバイス番号である。これも、従来の動作と同
じである。
本発明により新しく設けられた実チヤネルマス
ク・レジスタ6100と、実変換レジスタ620
0を、第7図e,dにより説明する。
これらのレジスタ6100,6200は、現走
行VMを起動したときに、VMCPPにより設定さ
れているものである。実チヤネル・マスク・レジ
スタ6100は32ビツトよりなり、各ビツトの下
の数字は実チヤネル番号を示している。ビツトn
の値ioが0のとき、実チヤネルnが現走行VMに
占有されていることを表わす。また、実変換レジ
スタ6200は、1エントリが1バイトで32バイ
トよりなり、nバイト目の値Coは、実チヤネル
nが現走行VMの仮想チヤネルCoに対応すること
を示している。
さて、実チヤネル・マスク・レジスタ6100
より実チヤネル番号Crに対応したマスクiを取り
出し、ラツチ6300にセツトする(ステツプ
33)。
ここで、マスクi=0のときは、実チヤネルCr
が現走行中VMに占有されていることを表わして
いる。次に、前と同じようにして、実変換レジス
タ6200より、実チヤネル番号Crに対応した仮
想チヤネル番号Cvを取り出し、レジスタ640
0にセツトする(ステツプ34)。なお、前述のよ
うに、レジスタ6100,6200の内容は、
VMCPによつてセツトされている。
実チヤネル番号Cr、仮想チヤネル番号Cvが選
択回路6700に送られ、線8300からの入力
の値が“1”のとき、Cvを選択し、“0”のとき
Crを選択する(ステツプ35)。ANDゲート770
0の出力8300は、高速VMモード(ラツチ1
300の値H=1)で、かつ現走行VMの占有チ
ヤネルの場合((ラツチ6300の値i=0の場
合)だけ“1”となる。選択回路6700により
選択されたチヤネル番号C、およびレジスタ60
00の装置アドレスUが、レジスタ6800に設
定される(ステツプ36)。以上の動作は、高速
VMモードで、かつ、占有チヤネルのとき、ハー
ドウエアにより自動的に実から仮想へのチヤネル
番号の変換が行われることを意味している。
レジスタ6800の値は、I/O割込回路69
00に入力される。I/O割込回路6900に
は、線6900−1より適切なプレフイクス・レ
ジスタの値がPSAアドレスとして入力されてい
る(ステツプ37)。
以下、第10図4によりI/O割込回路690
0に対し、線6900−1を介して入力される実
効プレフイクス・レジスタ1800の値について
説明する。
PSA変換要求フラグ6500の値C1が0”
(PSA変換要なしの意味)で、かつ高速VMモー
ド・フラグ1300が“1”(現走行VMが高速
VMモードである意味)のときのみ、ANDゲー
ト6600の出力が“1”となり(ステツプ73)、
現走行VMのプレフイクス・レジスタ1400が
選択され(ステツプ74)、その内容が実効プレフ
イクス・レジスタ1800に格納される(ステツ
プ75)。
上記以外の場合には、ANDゲート6600の
出力は“0”となり(ステツプ71,72)、CPのプ
レフイクス・レジスタ1500が選択され、その
内容が実効プレフイクス・レジスタ1800に格
納される。選択された実効プレフイクスのアドレ
スは、I/O割込回路6900に送られる(ステ
ツプ76)。なお、VMのプレフイクス・レジスタ
1400の値は、VM起動時、VMCPによりセツ
トされる。また、CPのプレフイクス・レジスタ
1500の値は、VMCP初期設定のときに設定
され、通常、変更はなされない。
さて、第10図1に戻り、I/O割込回路69
00は、レジスタ6800より入力されるI/O
アドレスCU、線6900−1より入力される実
効プレフイクス・アドレスを用いて、割込み処理
を行うが、その処理は従来と全く同じである(ス
テツプ38)。線8900−1からの入力が“1”
の場合は、現走行VMのプレフイクスへ割込みを
反映することとなるが、現走行VMが割込不可能
の場合は、I/O割込回路6900の割込処理用
マイクロプログラムにブレークインが発生せず、
I/Oチヤネル2500からの割込要求信号は、
線9000上で出されたまま継続となり、CPU
側は何ら割込み動作を発生せず、処理を続行す
る。
現走行VMの割込み可能性は、従来のとおり、
現PSWのI/Oマスクおよび制御レジスタCR2
の該当チヤネル・マスクにより判断される。高速
VMモード(ラツチ1300の値H=1)のと
き、現PSWには、現走行VMのPSWが設定され、
かつ現走行VMの専有チヤネル・マスクが実制御
レジスタCR2の該当部分に設定されている。共
有チヤネルに該当する実制御レジスタCR2の該
当マスクは、常に““1”(割込可能)であり、他
にVMの専有チヤネルについての実制御レジスタ
CR2の該当マスクはすべて“0”または、専有
元VMのCR2の値と該VMのPSWのI/Oマス
クとの論理積を設定することができる。現PSW
の値、および実制御レジスタCR2の値は、VM
起動時、VMCPにより設定される。
このようにして、I/O割込回路6900は、
I/Oマスクを判断し、割込み可能のとき割込処
理用マイクロプログラムにブレークインする(ス
テツプ39)。そして、I/O割込み回路6900
内のマイクロプログラムは、従来どおり与えられ
たプレフイクスへ割込みを反映する(ステツプ
40)。
線8900−1からの入力が“0”のときは、
VMCPのプレフイクスへ割込みを反映し、線8
900−1からの入力が“1”のときは、VMの
プレフイクスへ割込みを反映を行うことになる
(ステツプ41)。
VMCPへ割込みを反映した場合は、現PSW5
200へ新PSWをロード後、線9200よりラ
ツチ6500のC1、ラツチ1300のHを“0”
にセツトして、処理を完了する(ステツプ42)。
さて、VMへ割込みを反映する場合は、現
PSW5200に現走行VMのI/O新PSWがロ
ードされるが、その後、線9200よりラツチ6
500を“0”にリセツトする(ステツプ43)。
高速VMモード・ラツチ1300は、“1”のま
まである。現PSW5200に新PSWがセツトさ
れた後、高速VMモードが“1”のときは、さら
にVMFP−call7600の割込みが起動される可
能性がある(ステツプ44,45)。
現走行VMのPSA割込み反映後、高速VMモー
ド・ラツチ1300が“1”のときは、さらに次
の処理が行われる。
PSW5200のビツトW=1(Wait)のとき
には、OR回路7400の出力が“1”となり、
線9700に“1”が出力される(ステツプ52)。
この場合、PSW5200の中には、VMのI/
O新PSWがセツトされている(ステツプ51)。
ラツチ7000には、現走行VMのI/Oの保
留ビツトがセツトされており、ラツチ7100に
は、現走行VMの外部割込み保留ビツトがセツト
されている(ステツプ53,54)。これら2つのラ
ツチ7000,7100は、VM起動時、VMCP
により設定される。ラツチ7000が“1”とい
うことは、現走行VMのI/O割込み保留で、現
走行VMのチヤネルマスク・レジスタCR2に関
して割込み可能なものが存在することを意味して
いる。また、ラツチ7100が“1”ということ
は、現走行VMの外部割込み保留で、現走行VM
の外部割込みサブマスクCR0の該当ビツトに関
して、割込み可能なものが存在することを意味す
る。
次に、PSW5200の外部割込みマスクEと、
ラツチ7100の値がともに“1”のとき、
ANDゲート7300の出力が“1”となり、し
たがつてOR回路7400の出力が“1”となる
(ステツプ55)。
OR回路7400の出力が“1”でかつ、高速
VMモード・ラツチ1300が“1”のとき、
ANDゲート7500の出力は“1”となり、
VMCP−call割込回路7600が起動される(ス
テツプ56,57)。VMCP−call割込回路は、プレ
フイクス・アドレスとして、VMCPのプレフイ
クス・レジスタ1500の内容を選択し、使用す
る(ステツプ58)。すなわち、VMCPのPSAへ割
込みを反映し、その後、線9200−1,920
0−2を経由してラツチ6500C1、ラツチ1
300Hを“0”にリセツトする(ステツプ59,
60)。
この後、制御はVMCPに渡り、VMCPにより
割込み保留解除処理が行われる(ステツプ61)。
以上の処理によつて、VM上のOSのI/O割
込み処理は、VMCPのの介入によらずに、ハー
ドウエアにより直接実行されることになる。
なお、第5図、第6図の実施例においては、仮
想チヤネル番号と実チヤネル番号との間の相互変
換機能を含む形で示したが、MSの運用におい
て、両者が等しいという使用制限を置けば、その
変換機能は不要となる。したがつて、仮想変換レ
ジスタ1200、実変換レジスタ6200は不要
となり、回路は簡単化される。
〔発明の効果〕
以上説明したように、本発明によれば、I/O
命令実行回路とI/O割込実行回路をハードウエ
アで構成し、VMCPの制御によらずハードウエ
アの制御で直接実行するので、I/Oシユミレー
シヨン・オーバヘツドを削減し、VMSの高性能
化を図ることができる。
【図面の簡単な説明】
第1図は一般の仮想計算機システムの概略図、
第2図は第1図の主記憶装置のVMの割当て方法
を示す図、第3図はVMSにおけるI/Oシミユ
レーシヨンを示す図、第4図はプレフイクス
(PSA)の構成図、第5図は本発明の実施例を示
すI/O命令実行回路の構成図、第6図は本発明
の実施例を示すI/O割込み実行回路の構成図、
第7図は第5図、第6図に用いるレジスタの構成
図、第8図は第5図の判定回路の論理接続図、第
9図は第5図の動作フローチヤート、第10図は
第6図の動作フローチヤートである。 100:CPU、200:実主記憶装置、30
0:チヤネル装置、400:入出力装置、500
−1,500−2,500−3:仮想計算機
(VM)、1000:I/O命令レジスタ、110
0:仮想チヤネル・マスク・レジスタ、120
0:仮想変換レジスタ、1300:高速VMモー
ド・レジスタ、1400:現走行VMプレフイク
ス・レジスタ、1500:VMCPのプレフイク
ス・レジスタ、6100:実チヤネル・マスク・
レジスタ、6200:実変換レジスタ、530
0:判定回路、6900:I/O割込回路、23
00:I/O実行正常処理回路、2400:I/
O実行例外処理回路、500−10,500−2
0,500−30:仮想CPU、即ちVMのCPU、
500−11,500−21,500−31:
VMの主記憶装置(一般には仮想主記憶装置)。

Claims (1)

  1. 【特許請求の範囲】 1 1ないし複数のオペレーテイングシステムの
    処理を実行するために、1台の実計算機上の管理
    プログラムの管理下で1ないし複数の仮想計算機
    を走行させる仮想計算機システムにおいて、走行
    中の仮想計算機からI/O命令が発行されたと
    き、該I/O命令で使用するI/Oチヤネルが、
    前記走行中の仮想計算機に占有されるI/Oチヤ
    ネルか否かを判定し、該判定の結果、該I/Oチ
    ヤネルが前記走行中の仮想計算機に占有される場
    合には、前記管理プログラムを介することなく前
    記I/O命令を実行し、前記判定の結果、前記
    I/Oチヤネルが前記走行中の仮想計算機に占有
    されるものでない場合には、前記I/O命令の処
    理を前記管理プログラムに委ねることを特徴とす
    る仮想計算機システムのI/O実行方法。 2 1ないし複数のオペレーテイングシステムの
    処理を実行するために、1台の実計算機上の管理
    プログラムの管理下で1ないし複数の仮想計算機
    を走行させる仮想計算機システムにおいて、I/
    Oチヤネルからの割込みが発生したとき、該割込
    みを発生したI/Oチヤネルが現在走行中の仮想
    計算機に占有されるI/Oチヤネルであるか否か
    を判定し、該判定の結果、該I/Oチヤネルが前
    記走行中の仮想計算機に占有される場合は、前記
    管理プログラムを介することなく前記割込みを前
    記走行中の仮想計算機の計算機状態格納領域に反
    映し、前記判定の結果、前記I/Oチヤネルが前
    記走行中の仮想計算機に占有されるものでない場
    合には、前記管理プログラムを介して前記割込み
    を前記走行中の仮想計算機の計算機状態格納領域
    に反映することを特徴とする仮想計算機システム
    のI/O実行方法。 3 仮想計算機が現在走行していることを識別す
    る手段と、現走行中の仮想計算機に占有されてい
    るI/Oチヤネルを指示する手段と、現走行中の
    仮想計算機のプレフイクスのアドレスを記憶する
    手段と、実計算機上の管理プログラムのプレフイ
    クスのアドレスを記憶する手段と、上記両記憶手
    段のいずれか一方を選択する手段と、上記仮想計
    算機の走行中に発行されたI/O命令が占有I/
    Oチヤネルに対して発行されたか否か判断する手
    段とを有することを特徴とする仮想計算機システ
    ムのI/O実行装置。 4 前記判断手段は、現走行中の仮想計算機が
    I/O割込みが要求が出されたI/Oチヤネルを
    占有しているか否かを判断するとともに、上記
    I/Oチヤネルを占有しているときには、該仮想
    計算機が上記I/O割込みを行うことができるか
    否かを判断することを特徴とする特許請求の範囲
    第3項記載の仮想計算機システムのI/O実行装
    置。 5 前記I/O命令またはI/O割込み要求を判
    断する手段は、仮想計算機の示すI/Oアドレス
    の中のI/Oチヤネル・アドレス、または該アド
    レスに対応する実計算機におけるI/Oチヤネ
    ル・アドレスを記憶し、かつ上記両アドレスを相
    互に変換することを特徴とする特許請求の範囲第
    3項または第4項記載の仮想計算機システムの
    I/O実行装置。 6 前記I/O割込みが可能か否かを判断する場
    合、現走行中の仮想計算機のI/O割込み保留の
    存在と、外部割込み保留の存在を示す手段を備
    え、現走行中の仮想計算機のプレフイクスに上記
    I/O割込みを反映した後、現走行中の仮想計算
    機にI/O割込み保留が存在し、かつ該計算機が
    I/O割込み可能になつたとき、または外部割込
    み保留が存在し、かつ外部割込み可能となつたと
    き、または該計算機がウエイト状態となつたと
    き、実計算機上の管理プログラムに割込みを発生
    することを特徴とする特許請求の範囲第3項、第
    4項または第5項記載の仮想計算機システムの
    I/O実行装置。
JP58250362A 1983-12-28 1983-12-28 仮想計算機システムのi/o実行方法および装置 Granted JPS60142429A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58250362A JPS60142429A (ja) 1983-12-28 1983-12-28 仮想計算機システムのi/o実行方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58250362A JPS60142429A (ja) 1983-12-28 1983-12-28 仮想計算機システムのi/o実行方法および装置

Publications (2)

Publication Number Publication Date
JPS60142429A JPS60142429A (ja) 1985-07-27
JPH0567973B2 true JPH0567973B2 (ja) 1993-09-28

Family

ID=17206790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58250362A Granted JPS60142429A (ja) 1983-12-28 1983-12-28 仮想計算機システムのi/o実行方法および装置

Country Status (1)

Country Link
JP (1) JPS60142429A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2556018B2 (ja) * 1987-01-20 1996-11-20 株式会社日立製作所 チヤネルパスグル−プ管理方式
JPS6459434A (en) * 1987-08-29 1989-03-07 Fujitsu Ltd Input/output control system for virtual computer
JP5104501B2 (ja) * 2008-04-11 2012-12-19 日本電気株式会社 仮想マシンシステム、ホスト計算機、仮想マシン構築方法およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58181149A (ja) * 1982-04-16 1983-10-22 Hitachi Ltd 計算機システムの制御方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58181149A (ja) * 1982-04-16 1983-10-22 Hitachi Ltd 計算機システムの制御方式

Also Published As

Publication number Publication date
JPS60142429A (ja) 1985-07-27

Similar Documents

Publication Publication Date Title
US4347565A (en) Address control system for software simulation
US4885681A (en) I/O Execution method for a virtual machine system and system therefor
US6003112A (en) Memory controller and method for clearing or copying memory utilizing register files to store address information
JPH0430053B2 (ja)
US20060282624A1 (en) Information processing apparatus, process control method and computer program therefor
US20140337585A1 (en) Page table management
JPH0731624B2 (ja) 非同期コプロセッサによるデータ移動方法および装置
JPS6122825B2 (ja)
JPH02734B2 (ja)
JPS62165250A (ja) 仮想記憶方法
JPH03217949A (ja) 計算機システム
US5392409A (en) I/O execution method for a virtual machine system and system therefor
JPH0458056B2 (ja)
EP0619899B1 (en) Software control of hardware interruptions
US5003468A (en) Guest machine execution control system for virutal machine system
US5018064A (en) Virtual computer system
JPH0567973B2 (ja)
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JPS61184643A (ja) 仮想計算機の起動制御方式
JPS6049352B2 (ja) デ−タ処理装置
JPS6336012B2 (ja)
JP2535086B2 (ja) リング削減ロジック装置
JPS6032220B2 (ja) 情報処理装置
US20220197679A1 (en) Modifying device status in single virtual function mode
JPH06324861A (ja) Cpu制御システム及び制御方法