JPH0659919A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JPH0659919A
JPH0659919A JP5141747A JP14174793A JPH0659919A JP H0659919 A JPH0659919 A JP H0659919A JP 5141747 A JP5141747 A JP 5141747A JP 14174793 A JP14174793 A JP 14174793A JP H0659919 A JPH0659919 A JP H0659919A
Authority
JP
Japan
Prior art keywords
interrupt
real
address
vmcp
sub
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.)
Granted
Application number
JP5141747A
Other languages
English (en)
Other versions
JPH0711784B2 (ja
Inventor
Hidenori Umeno
英典 梅野
Takashige Kubo
隆重 久保
Nobutaka Hagiwara
亘喬 萩原
Hiroaki Sato
博昭 佐藤
Hideo Sawamoto
英雄 沢本
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 JP5141747A priority Critical patent/JPH0711784B2/ja
Publication of JPH0659919A publication Critical patent/JPH0659919A/ja
Publication of JPH0711784B2 publication Critical patent/JPH0711784B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 仮想計算機で、保留割込み検査命令実行時の
制御プログラムにシミュレーションオーバヘッドを減ら
す。 【構成】 I/O割込み処理回路内の実割込み優先順位
レジスタ1045に、各実割込み優先順位が走行中のO
Sに占有されているか否かの情報を保持する。走行中の
OSから、保留割込みの有無検査を求められたとき、I
/O割込み処理回路は、割込み保留レジスタ1042’
内をこのレジスタと実割込み優先順位マスクレジスタを
用いて判別し、保留された割込みが存在すると判別され
た場合に、その走行中のOSに通知し、保留された割込
みが存在しない場合に、レジスタが、その走行中のOS
と他のOSにより共有される少なくとも一つの実割込み
優先順位を有する割込みが該制御プログラムにより保留
状態にされていないかを判別し、制御プログラムにより
保留されたことを示すときに、該走行中のOSに、処理
すべき保留された割込みがないことを通知する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は仮想計算機システム(V
MS)の高速化方式に係り、特に、VMSのI/Oシミ
ュレーションオーバヘッドの削減方式に関する。
【0002】
【従来の技術】図1に実計算機システム10000の主
構成図を示す。1000は中央処理装置CPU、200
0は主記憶装置、3000は入出力プロセッサIOP、
4000は入出力制御装置IOCである。100は、C
PU1000と、主記憶装置2000との間の信号線、
200は、CPU1000とIOP3000との間の信
号線、300は、IOP3000と主記憶装置2000
との間の信号線、400は、IOP3000と、IOC
4000との間の信号線である。この実計算機システム
10000は、主記憶装置2000上のオペレーティン
グシステム(OS)のシステム全体のリソース(CP
U、主記憶装置、入出力装置)管理により、制御され動
作しているものである。
【0003】これに対して、仮想計算機システム(VM
S)での構成図を図2に示す。実計算機システム100
00は図1と、ハードウェア構成(CPU、主記憶装
置、入出力装置)は変らないが、主記憶装置2000上
に、VMSの制御プログラムVMCP(又は単にCPと
もいう)が存在する点が異なる。このVMCPのハード
ウェアシミュレーション機能により、論理的な計算機
(バーチャルマシンVMという)が複数台論理的に実現
される。各VM、即ち、10000−1(VM1),1
0000−2(VM2),10000−3(VM3)
は、実計算機システム(ホストシステムと呼ぶ)100
00と同じハードウェア構成をもつものととして論理的
に実現される。各VMの主記憶装置2000−N(N=
1,2,3)上には、各VMを制御し、動かすOS−N
が存在し、この複数のOSが1台のホストシステムの下
で同時に走行していることを示すものである。図2の各
VMにおけるハードウェア構成(CPU、主記憶装置、
IOP,IOC)は、VMCPにより論理的に実現され
るものであるが、それらの実体の大部分は、ホストシス
テムの対応するハードウェア構成上に存在する。例え
ば、VMの主記憶装置は、ホストシステムの主記憶装置
2000の一部分を専有することもあり、又、共有する
こともあり、又、VMの入出力装置は、ホストシステム
の入出力装置をVM間で共有することもあり、又、いく
つかの入出力装置を専有することもある。あるいは、ホ
ストシステム上に対応する入出力装置がなく、全く仮想
的にVMCPにより擬似されて、実現される場合もあ
る。いずれにせよ、各VMの主記憶装置2000−N
(N=1,2,3)上のOSからは、ホストシステムと
同様のハードウェア構成(CPU、主記憶装置、IO
P,IOC)が見えることになる。ここで、注意すべき
は、各VMのアーキテクチャ(OSからみたハードウェ
ア構造及び機能)は、ホストシステム10000のアー
キテクチャと多少違っても良いということである。同様
に、VM間でアーキテクチャが異なってもかまわない。
例えば、ホストシステムの機械命令のセットと、各VM
の機械命令のセットは、完全に同じでなくても良い。し
かし、全く異なるものは、VMCPの負荷が大きくな
り、又、ホストシステムのエミュレーション機構が大き
くなるので、本発明におけるVMSの対象外とする。本
発明で述べる仮想計算機VMとは、その大部分の機械命
令が、ホストシステム上で、VMCPの介入によらず、
ホストシステムの本来の性能(実行速度)と等しい性能
で直接実行されることを必要条件とする。又図2では、
VMは3台しか定義していないが、一般には、何台あっ
ても良く、その上限は、ホストシステムのリソース容量
と、各VMの性能とかねあいで決定される。ホストシス
テムも、特権状態と非特権状態とを有し、システムに重
大な影響を与える機械命令(例えばIO命令、システム
の割込マスク変更命令)は、特権命令と呼ばれ、特権状
態でしか使用することができない。これも周知である。
【0004】図3にVMSの1台のVM(この図ではV
M1)のメモリ階層を示す。2060は、VM1上のO
S1が生成する仮想空間であり、OS1は、VM1の主
記憶装置2000−1上に存在する。VM1の主記憶装
置2000−1は、ホストシステムの主記憶装置200
2(ホストシステムの主記憶装置2000は、図7に示
すようにハードウェアシステムエリア2001と、プロ
グラム可能エリア2002とに分割されている。)上に
写像される。その写像は、アドレス変換テーブル201
0により与えられる。図4(a)に、このアドレス変換
テーブル2010(1)を示す。このアドレス変換表2
010(1)には、VM1の主記憶装置2000−1上
のアドレスv2に対応するエントリに、対応する主記憶
装置2002上のアドレスrが記述されている。このア
ドレス変換テーブル2010(1)の先頭アドレスは、
VM1上のOS1が、その主記憶装置2000−1上で
動作している場合は、CPU1000内の基本制御レジ
スタ群1100(図7参照)内のひとつの制御レジスタ
RATOR1110に格納されている。この場合、アド
レス変換テーブル2010(1)は、ホストシステムの
主記憶装置2002上に存在し、その先頭アドレスも、
ホストシステムの主記憶装置2002のアドレスで記述
されレジスタ1110に設定される。図3における、2
060は、VM1上のOS1の生成する仮想空間であ
り、そこからVM1の主記憶装置2000−1への写像
は、OS1の管理するアドレス変換テーブル2040に
より与えられる。図4(b)は、このアドレス変換テー
ブルの構成を表わしており、仮想空間2060のアドレ
スv3の対応エントリに、対応するVM1の主記憶装置
2000−1のアドレスv2が記述されている。このア
ドレス変換テーブル2040の先頭アドレスは、VM1
のOS1が、その仮想空間2060上で動作していると
き、CPU1000の基本制御レジスタ群1100(図
7参照)の中のひとつの制御レジスタVATOR112
0に格納されている。ただし、この場合、アドレス変換
テーブル2040は、OS1の主記憶装置2000−1
上に存在するため、その先頭アドレスも、OS1の主記
憶装置2000−1のアドレスで記述される。アドレス
変換テーブル2010(1)(変換表Aとよぶ)は、V
MCPが各VM用に管理、更新するテーブルであり、ア
ドレス変換テーブル2040(変換表Bとよぶ)は、各
VM上のOSが自分自身の仮想空間のために管理、更新
するテーブルである。ここで、ホストシステムの主記憶
装置2002をレベル1メモリ、各VMの主記憶装置2
000−N(N=1,2,3,…)をレベル2メモリ、
各VM上のOSが生成する仮想空間2060(これは、
一般に、OSは、複数空間生成する)をレベル3メモリ
と総称することとする。仮想空間は一般に一定の大きさ
(例えば4KB)のページに分割され、このページ単位
に主記憶装置へmappingされること、及び、いくつかの
連続ページ(例えば256ページの1MB)をあつめ
て、1セグメントと呼ぶことは、周知である。図3にお
ける2020は、VMCPが、自分自身の入出力(I
O)動作を起動するために作成したIO動作指令語(C
CWと呼ぶ)群である。VMCP自身は、レベル1メモ
リ上で動作するため、CCW群2020は、レベル1メ
モリアドレスで作成されている。これをレベル1CCW
と呼ぶ。レベル1CCWは、アドレス変換は不要で、I
Oの起動命令がレベル1CCWに対してかかった場合
は、そのまま、IOP3000により解釈され、IOC
4000へ送られる。IOC4000は、各CCWを各
入出力装置に対して実行していくことにある。2030
は、VM上のOSの用意したCCWであり、レベル2メ
モリアドレスで記述されているものである。このレベル
2CCWは、VM上のOSにより、作られたものであ
る。このCCWに対してVM上のOSからIO起動命令
がかかった場合は、VMCPが介入して、これをVMC
Pが等価なレベル1CCWに変換して、VMCP経由に
より、その等価なレベル1CCWを用いてIO起動を行
なう方法も考えられる。しかし、これは、VMCPのオ
ーバヘッドを増すこととなる。そこで、VMCPは介入
するが、レベル2メモリからレベル1メモリへのアドレ
ス変換表(即ち、変換表A)2010のアドレスを、I
OP3000におしえ、IOP3000(図7参照)
が、その変換表2010をみながら、レベル2CCWの
中のデータアドレス(これはレベル2メモリアドレス)
をレベル1メモリアドレスに変換して実行していく方法
が取られるようになった。この方法だと、VMCPの介
入が削減され、オーバヘッドが削減される。さて、VM
上のOSは、大部分レベル3メモリ上で動作することが
多く、従って、VM上のOSの生成するCCWも、レベ
ル3メモリ上に存在することが多い。図3の2050
は、レベル3メモリアドレスで生成されたCCWすなわ
ち、レベル3CCWを表わす。このレベル3CCWに対
してVM上のOSがIO起動命令を発行した場合は、レ
ベル2CCW2030の場合と同様に、レベル3メモリ
からレベル2メモリへのアドレス変換表(即、変換表
B)のアドレスと、レベル2メモリからレベル1メモリ
へのアドレス変換表(即ち、変換表A)のアドレスを、
IOP3000(図7)におしえ、IOP3000が、
レベル3CCWのデータアドレス(レベル3メモリアド
レス)を、変換表Bによりレベル2メモリアドレスに変
換し、さらに、その結果を、変換表Aにより、レベル1
アドレスに変換することにより、当該CCWを実行して
行く方法が取られる。
【0005】図4(c)は、上記に述べたIOP300
0(図7)におけるアドレス変換オーバヘッドを削減す
るために、IOP3000内のローカルストレジに設け
た、アドレス変換バッファ3030である。アドレス変
換バッファ3030のフィールド1には、VMの番号V
M#が、フィールド2には、変換表Aの変換表Bの先頭
アドレスが、フィールド3には、その両者が区別フラグ
が、フィールド4には、変換前のCCWデータアドレス
が、フィールド5には、変換後のレベル1メモリアドレ
スが記述されている。IOP3000(図7)はまず、
このアドレス変換バッファをみて、アドレス変換をし、
次に、ここにない場合は、変換表B′、変換表Aをみて
アドレス変換を行ない、その結果を、この変換バッファ
3030に登録する。このアドレス変換バッファは、I
OP3000内の高速ローカルストレンジにあり、主記
憶装置2002上の変換表B,Aを検索するよりも高速
である。ここで注意すべきは、レベル2CCW、レベル
3CCW及び、そのデータバッファは、IO実行時に
は、いずれも、レベル1メモリ上に固定されていること
が必要ということである。さて、図5は、ホストシステ
ムの主記憶装置2002の連続領域を分割して、各分割
された領域を、各VMの主記憶装置として専有して使用
する方法を表わしている。このようなVMを使用する場
合は、VMの主記憶装置のアドレスに、一定のアドレス
変位αを加えれば、ホストシステムの主記憶装置200
2のアドレスとなることが分かる。図5の場合は、VM
1のアドレス変位はα1、VM2のアドレス変位はα2
ある。このような場合は、レベル2メモリアドレスか
ら、レベル1メモリアドレスへの変換表2010は、2
010(2)に示すように、各VMの下限アドレス及び
上限アドレスを管理する表だけ充分である。この場合
は、レベル2CCWのアドレス変換は容易であり、レベ
ル2CCWのためのアドレス変換バッファ3030のエ
ントリ(すなわち、アドレス変換バッファ3030のフ
ィールド3が0のエントリ)は不要である。そのかわ
り、図5に示す、変換表2010(2)をIOP300
0(図7)内のローカルストレジに取込み、VM#によ
り、アドレス変位αをもとめ、その加算により、アドレ
ス変換(レベル2メモリアドレス→レベルメモリアドレ
ス変換)を行なう方法も取られている。図3に示すVM
の主記憶装置全体がホストシステムの主記憶装置200
2に常駐化され、固定されているか、又は、図5に示す
ようなホストシステムの主記憶装置のある連続領域を専
有するようなVMに対しては、高速VMモードがサポー
トされている。高速VMモードでは、VM上のOSの発
行する大部分の特権命令が、直接実行(VMCPを経由
せずホストシステムと同程度の性能を有する実行方式)
される。しかし、VM上のIO命令は、以下に示すよう
に、VMCPの介入を必要としている。
【0006】さて、実際に、VM上のOSの発行したI
O起動命令が、どのようにして、VMCPにより実行さ
れるかを図6に示す。VM上のOSは、入出力装置と一
対一に対応するサブチャネルの番号(サブチャネル#)
を指定してIO起動命令を発行する。このサブチャネル
#は、該VM下のサブチャネル#であるので、仮想サブ
チャネル#と呼ぶことにする。VMCPは、これを、対
応する実サブチャネル#に変換する。この対応は、VM
の定義時、決定されるものである。VMCPは、IO起
動命令を発行したVM上のOSが、どのレベルCCWに
対してIOを発行したかを調べる。通常、それは、IO
起動命令のオペランドにより示される。今、レベル3C
CWに対して、IO起動命令が発行されたとする。図6
で、2810のCCW群がレベル3メモリ上のCCW群
であり、そのデータアドレスは、全てレベル3メモリア
ドレスである。VMCPは、このOSの生成したCCW
群2810に、2800のオペランドをつけてIO起動
命令を発行する。2800のオペランドには、CCWの
レベルを示すフィールドL、L=3のときは、変換表B
の先頭アドレスVATOR、及び、そのセグメントサイ
ズSS、ページサイズPSが記述されている。さらに、
変換表Aの先頭アドレスRATOR及び、そのセグメン
トサイズSS、ページサイズPSが記述され、CCW群
2810へのアドレスも記述されている。これらは、V
MCPのIO起動命令の発行により、線200経由でI
OP3000(図7)に送られ、該当するサブチャネル
レジスタ3011に基本情報が設定される。又、図7に
示す、サブチャネル制御ブロック群2090の中の該当
サブチャネル制御ブロック中にも同様の基本情報が記述
される(図10サブチャネル制御ブロック2091参
照)。さて、IOP3000(図7)は、このサブチャ
ネル内のアドレス変換情報を使って、OSの生成したC
CW群2810を、前述したごとく、アドレス変換しな
がら実行していくこととなる。
【0007】図7は、従来のVMSにおけるハードウェ
ア構成図とIO実行に関するブロック図を示したもので
ある。CPU1000の中には、ハードウェアの割込情
報を含む領域プレフィクス(PSA)のアドレスを含む
プレフィクスレジスタ1010、CPUの制御レジスタ
群1100、CPUの基本状態(割込制御ビットや、次
に実行される機械命令アドレス等)を含むプログラムス
テータスワードPSW1020が存在する。さらに、I
O命令実行回路1030や、IO割込回路1040、I
O命令実行用マイクロプログラム1050、IO割込処
理用マイクロプログラム1060等が存在する。さら
に、VMS用フラグとして、VMモードを表わすvビッ
トが1090内に存在する。VM走行中は、VMCPに
より、このビットを1にセットする。又、前述した高速
VMモードフラグHも1090内に存在する。VMS制
御フラグ1090については、他の方式も考えられる。
例えば、VMCPのモード(ハイパバイザモード)とV
Mモード、そして、VMモードの中で、高速VMモード
と、一般VMモードというフラグを設けることも考えら
れている。いずれも大同小異であるので、従来例として
は図7に示すものをあげる。IOP3000について
は、前述したとおり、サブチャネル制御ブロック群20
90及び、サブチャネルレジスタ群3010に含まれる
アドレス変換情報(図6)により、マイクロプログラム
3020制御によって、アドレス変換バッファ3030
(図4−3参照)の情報を使用しながら、レベル3CC
W又はレベル2CCW(図3参照)を実行して行くもの
である。図7の主記憶装置2000は、ハードウェアシ
ステムエリアHSA2001と、プログラム可能エリア
2002に分割される。HSA2001は、CPU10
00及びIOP3000が使用するハードウェア情報が
含まれており、その領域は、CPU及びIOPのマイク
ロプログラム1050,1060,3020でアクセ
ス、更新することはできるが、CPU1000の一般の
ユーザに開放された機械命令ではアクセスすることはで
きない。プログラム可能エリア2002は、上記機械命
令でアクセスすることができ、ここが、OS又は、VM
CPからみた主記憶装置領域となる。IO命令の中で、
IOの起動、停止等の入出力装置のオペレーションを伴
うものは、その要求キューという形で、IO要求キュー
2070にキューイングされる。その実体は、図8で示
すように、IO要求のある実サブチャネル#を含む制御
ブロック2071をアドレスポインタでつないだもので
ある。IO要求キューへキューイングした後、IOP3
000へ線200経由で起動信号が送られる。IOP3
000側は、HSA2001内のIO要求キュー207
0へアクセスし、順次要求キューエレメント2071を
取出してIO要求処理を続行していくものである。又、
IO割込みは、IO割込要求キュー2080に、実割込
優先順位別にキューイングされる。その構造を、図9に
示す。割込優先順位は、0,1,2,3,4,5,6,
7の8種類あり、IO命令発行時、そのオペランドでサ
ブチャネル制御ブロック群2090(図7)の中の各サ
ブチャネル制御ブロックは、実サブチャネル#の順番に
ならべられており、その実サブチャネル#により、一意
に存在位置を求めることができる。このサブチャネル制
御ブロック群2090の先頭アドレスは、CPU100
0(図7)の制御レジスタ群1100の中のひとつの制
御レジスタに設定されている。割込優先順位は、各サブ
チャネルに対して指定することが可能である。さて、各
VM上のOSが、サブチャネル#及び、割込優先順位
(0〜7のいづれかひとつ)を指定してIO命令を発行
したとする。このとき、図7におけるVMモードビット
1090が1であるから、IO命令実行用μp1050
により、このビットが1のとき、VMCPへ制御を渡
す。これは、VMCPのPSA2100の中の新PSW
により、一種の割込みとして、VMCPへ制御が渡され
る。そのVMCPのPSAのアドレスは、VMの起動
時、VMCP用プレフィクスレジスタ1010(図7)
に設定されているので、それを参照する。
【0008】さて、VMCPは、VM上のOSの指定し
たサブチャネル#を仮想サブチャネル#と見て、それを
実サブチャネル#に変換して、実サブチャネルの状態を
管理し、もし可能であれば、(図6に示すアドレス変換
情報2800を指定して)IO命令をVM上のOSにか
わって発行する。
【0009】このとき、VM上のOSの指定した割込優
先順位は、仮想割込優先順位であるが、それをそのまま
実仮想割込優先順位として、IO命令を発行する。した
がって、各実割込優先順位をVM上のOS間で共有する
ことになる。したがって図9におけるIO割込要求キュ
ー2080の各実割込優先順位のキューの中には、各V
M上のOSのサブチャンネルからのIO割込要求が混在
してキューイングされることとなる。
【0010】VM上のOSからのIO命令の実行をVM
CPが介入する理由は、以下のとおりである。
【0011】(i)VM上のOS上の指定した仮想サブ
チャンネル#を実サブチャンネル#に変換しなければな
らないこと。
【0012】(ii)実サブチャンネルを各VM上のOS
間で共有する場合があるので、その間のサブチャンネル
スケジュールが必要であること。
【0013】以上のごとく、I/O命令の内の、I/O
起動、停止等の入出力装置のオペレーションを伴うもの
については、VMCPによるシミュレーションがなさ
れ、そのオーバヘッドが高い。
【0014】次に、図11にIO割込の制御方法につい
て示す。各サブチャンネルからIO割込要求は、IOP
3000により検出され、対応するサブチャンネル制御
ブロックがIO割込要求キュー2080にキューイング
される(図7参照)。そのIO割込要求キューの構造は
図9に示すとおり、実割込優先順位別にキューイングさ
れる。この時、図11に示す対応する実割込保留レジス
タ1042のビットが1にセットされる。割込保留レジ
スタ1042のビットと対応する実割込優先順位マスク
レジスタ1041のビットが共に1でかつ、PSW10
20IOマスクが1のとき該当する実割込優先順位に対
してIO割込が起動されIO割込処理用マイクロプログ
ラム1060に制御が渡される。以上の動作は図11に
示すハードウェア回路により実現される。
【0015】さて、VMSにおいては、前述したよう
に、各実割込優先順位が、VM上のOS間で共有される
ので、VM走行中は実割込優先順位マスクレジスタ10
41の各ビットは各VM上のOSの割込優先順位マスク
値のORを取った値又は、1にセットして、常に割込可
能としておく。さらに、この場合PSW1020のIO
マスクも1に設定しておく。こうすることにより、サブ
チャンネルからのIO割込要求によって、実割込保留レ
ジスタ1042のあるビットが1になると、ANDゲー
ト群1046の内の一つのANDゲートの出力が1とな
り、従ってORゲート1043の出力が1となり、AN
Dゲート1044の出力が1となって図11に示すIO
割込回路によって、ただちにIO割込処理用マイクロプ
ログラム1060が起動される。そのIOマイクロプロ
グラム1060は、該当する実割込優先順位上のIO割
込要求キュー(図9)にキューイングされているサブチ
ャンネルをキューより取りはずして割込をVMCPのプ
レフィックスに反映する。このとき、当該実割込優先順
位の割込要求キューが空になれば当該実割込優先順位の
実割込保留レジスタ1042のビットを0とする。これ
によりその割込保留がクリアされる。VMCPへ割込反
映することにより、VMCPのIO割込処理プログラム
へ制御が渡される。その時、IO割込パラメータとして
当該IO割込を発生した実サブチャンネル#および該当
VM#もVMCPに渡される。VMCPはこのIO割込
を該当VMに反映するために、以下の処理を行う。
【0016】(i)実サブチャンネル#を仮想サブチャ
ンネル#に変換する。
【0017】(ii)該当VMの割込優先順位マスクレジ
スタとそのPSWのIOマスクを調べ、それがIO割込
可能であるか否かを判断する。
【0018】(iii)該当VMが割込可能であるとき、
そのVMのプレフィックスPSAに割込を反映する。
【0019】(iv)該当VMが割込不可能であるとき
は、VMCPで当該割込を保留する。
【0020】このように、実割込優先順位をVM間で共
有するために、そのマスクを、各VMの該当するマスク
値のORをとった値に(通常1)に設定しなければなら
ない。このため、該当VMでは割込不可能な順位に対し
てもVMCPに割込が入る場合が有り、その時はVMC
Pで当該IOを保留することとなる。このため、以後当
該サブチャンネルに対するIO命令に対しては、必ずV
MCPの介入によるシミュレーションが必要となる。
【0021】
【発明が解決しようとする課題】以上によって示したと
おり、従来の仮想計算機システムにおけるVM上のOS
のIO起動命令の実行においては、IOPによるレベル
3CCWおよびレベル2CCWの直接実行の機能は存在
するけれども必ずVMCPが介入して、そのシミュレー
ションが必要である。このためIO発行頻度の高い負荷
に対しては、VMCPのシミュレーションオーバーヘッ
ドが大きくなる。このようなI/O命令実行の結果とし
て生じるI/O割り込みについても同様の問題があっ
た。
【0022】以上の問題は、走行中のOSが発行するI
/O命令の内、I/O装置の動作を伴なわない他の命
令、例えば、保留されたI/O割り込みの有無を調べる
命令の場合も同様である。
【0023】本発明の目的は、上記I/O割込み検査命
令のごとく、I/O起動命令以外の命令の、VMCPに
よるシミュレーションオーバヘッドをなくす命令実行方
法を提供することにある。
【0024】
【課題を解決するための手段】本VM上のOSのIO命
令及IO割込に対して、VMCPが介入する理由は、従
来技術でも述べたように以下のとおりである。
【0025】(i)仮想サブチャンネル#と実サブチャ
ネル#との間の変換が必要なこと。
【0026】(ii)実サブチャネルをVM上のOS間で
共有する場合があり、サブチャネルスケジュールが必要
であること。
【0027】(iii)実割込優先順位をVM間で共有す
ることがあるので、その割込制御マスクを、各VM上の
OSの割込制御マスク値のORを取った値にセットしな
ければならず、そのため、VMCPによるVMのIO割
込保留が発生すること。これを防ぎハードウェア側でI
O割込を保留するためには、各VM用の割込制御マスク
レジスタを用意しなければならず、割込保留レジスタも
又、各VM対応に用意しなければならなくなり、ハード
ウェア量が大きくなりすぎて得策ではない。以上を解決
するため本発明の望ましい実施態様では、以下の方式を
取る。
【0028】(i)仮想サブチャネル#から実サブチャ
ネル#への変換表をVMCPが用意し、 IO命令
実行用マイクロプログラムにより、これを使用して変換
する。 (ii)実サブチャネル制御ブロックの中に、VM情報領
域を設け、ここに、仮想サブチャネル#と変換後の実サ
ブチャネル#との対応を記述する。
【0029】(iii)実サブチャネル制御ブロックのV
M情報領域の中に、状態フィールドを設け、専有サブチ
ャネルか否を示すフラグを設ける。このフラグは、VM
CPによるサブチャネル専有指定時、あるいは、VMの
定義情報でサブチャネル専有指定がある場合は、VMの
定義時に、設定されるものである。このフラグが1のと
きは、当該VMに専有されたサブチャネルであるので、
VMCPによるサブチャネルスケジュールは不要であ
る。
【0030】(iv)実割込優先順位をVMに専有させる
ことにより、その優先順位における割込要求キューの中
には、専有元VMのIO要求のあったサブチャネルのみ
がキューイングされることになり、その実割込優先順位
でのVMの混在は、避けることができる。さらに、その
専有された、実割込優先順位の割込制御マスクは、専有
元VM上のOSの対応する割込制御マスクの値と一致さ
せることにする。これにより、VM上のOSの割込優先
順位の割込制御マスクが0のため割込不可能である場合
は、対応する実割込優先順位の割込制御マスクも0であ
るため、ハードウェアの割込も発生せず、従って、ハー
ドウェアにより割込が保留され、VMCPによるVMの
IOの割込保留という事象を避けることができる。
【0031】以上の方式をサポートするため、実割込優
先順位の種類を増加し、VMによる実割込優先順位の専
有を可能とすることにする。
【0032】とくに、本発明では、I/O割込み検査命
令の場合も、その命令が指定する実割り込み優先順位が
その命令を発行した走行中のOSに専有されている場合
には、その命令を、VMCPの介入を求めることなく直
接実行するようにした。
【0033】
【作用】I/O割込み検索命令を直接実行することによ
りVMCPによるシミュレーションオーバヘッドを削減
できる。
【0034】
【実施例】以下に本発明の実施例を示す。図12に、本
発明の実施例の全体図を示す。
【0035】CPU1000′の各構成要素は、従来例
の図7と同じであるが、やや機能が大きくなっているも
のがある。HSA2001の中には、従来例の図7と同
じものも存在する。(IO要求キュー2070、IO割
込要求キュー2080、実サブチャネル制御ブロック群
2090′)。しかし、プレフイクス管理表2300、
変換表アドレス管理表2400、VM管理表2700は
新規の情報である。
【0036】プログラム可能エリア2002には、従来
例の図7と同じもの(VMCPのPSA2100,VM
1のPSA2110、VM2のPSA2120、他のV
MのPSAも同様に存在しても良い。
【0037】VMCP2200、レベル2メモリからレ
ベル1メモリへのアドレス変換テーブル群2010、レ
ベル3メモリからレベル2メモリへのアドレス変換テー
ブル群2040)も存在する。しかし、割込優先順位#
変換テーブル2500、サブチャネル#変換テーブル群
2600は新規の情報である。IOP3000′は、従
来例図7のIOP3000と同様の構成であるが、やや
機能が大きくなっている。以下に先ず、HSA2001
及びプログラム可能エリア2002に含まれる新規情報
について説明する。
【0038】図13にプレフイクス管理表2300を示
す。これは、VMCPのPSAアドレス、VM1のPS
Aアドレス、VM2のPSAアドレス、VM3のPSA
アドレスを含む。図13では、VM3までしか示してい
ないが、もっとも多くのVMのPSAが登録されていて
も良い。このPSAのアドレスは、CPU1000′の
μプログラムが参照するものであり、プログラム可能エ
リア2002のホストシステムにおけるアドレスが記述
されている。この各VMのPSAアドレスは、VMの起
動時、起動専用命令のオペランドのひとつとして与えら
れ、その命令の処理時、プレフイクス管理表2300の
該当エントリに格納される。このプレフイクス管理表2
300の先頭アドレスは、CPU1000′の制御レジ
スタ群1100′の中のひとつに格納される(図12参
照)このプレフイクス管理表はオプションであり必須で
はない。どういう時に使用されるかは後述する。次に図
14に変換表アドレス管理表2400を示す。このアド
レス管理表2400は、サブチャネル#変換テーブル2
600の先頭アドレスと、割込優先順位#変換テーブル
2500の先頭アドレスを、各VM対応に管理している
ものである。変換表アドレス管理表2400の先頭アド
レスも又、CPU1000′の制御レジスタ群110
0′の中のひとつに格納されている。サブチャネル#変
換表2600、割込優先順位変換表2500の検索方法
は、図14に示すとおりである。すなわち、仮想サブチ
ャネル#(2バイトからなる)を、D0・256+D1
に分解し、先ず、アドレス管理表2400の該当エント
リの内容が指し示す前段のテーブル2601を、D0に
より検索する。前段テーブル2601のD0番目のエン
トリには、後段テーブル2602のアドレスが設定され
ており、その後段テーブル2602のD1番目のエント
リを検索する。そこに、対応する実サブチャネル#D
0′・256+D1′が求められる。仮想割込優先順位
#の変換は、変換表2500の該当エントリを読み出す
のみで対応する実割込順位#に変換される。サブチャネ
ル#変換表2600、割込優先順位変換表2500は、
VMCPのコマンドによる指定時、又、VMの定義情報
の中から、VM定義時に、VMCPにより作られ、VM
の起動時、起動専用命令のオペランドにより指定され、
その起動専用命令の処理時、変換表アドレス管理表24
00の該当エントリに格納される。この変換表260
0、2500、2400もオプションであり必須ではな
い。すなわち、VMSにおいて、本発明のIO実行方式
を用いるVMは、仮想サブチャネル#=実サブチャネル
#、仮想割込優先順位#=実割込優先順位#という制限
を守ることにすれば、これらの変換表は不要である。
【0039】図15は、VM管理表2700の内容を示
す。この中には、該当VMの主記憶装置のサイズ(Z
0,Z1,…)と、そのレベル2メモリアドレスからレ
ベル1メモリアドレスへのアドレス変換テーブル201
0のアドレス(RATOR0,RATOR1,…)が記
述されている。これらの情報は、VMの定義情報から得
られるものであり、VMの起動専用命令により、HSA
2001内のVM管理表2700の該当エントリに格納
される。VM管理表2700の先頭アドレスも又、CP
U1000′内の制御レジスタ群1100′(図12参
照)のひとつに格納される。HSA2001内の制御ブ
ロックの先頭アドレスが、CPU1000′内の制御レ
ジスタ1100′に格納されることは従来と同じであ
る。もし、本発明のIO実行方式をサポートするVMを
図5に示す、主記憶装置2002上の連続領域を、その
主記憶装置として専有するようなVMだけに限定する場
合は、その上下限を定義した変換表2010(2)をも
って、このVM管理表2700の代わりとすることも可
能である。もし、図5の変換表2010(2)を使う場
合は、この上下限アドレスαi,αi+1(i=1,2,3
…)がVM起動命令によって指定され、その命令処理に
より、HSA2001に、この変換表2010(2)の
該当エントリが作られることになる。図16は、実サブ
チャネル制御ブロック群2090′、その中の、ひとつ
の実サブチャネル制御ブロック2091′及び、その中
のVM情報領域2092′を示す。VM情報領域209
2′の中には、状態フィールド、VM#、仮想サブチャ
ネル#、対応する実サブチャネル#、仮想割込優先順位
#、対応する実割込優先順位#、CCWのアドレス変換
情報2094が存在する。状態フィールドには、このサ
ブチャネルが占有されているか否か、このサブチャネル
がIO直接実行抑止モードか否かを示すフラグが存在す
る。CCWのアドレス変換情報2094は、従来のアド
レス変換情報2092(図10参照)と同じ内容であ
る。VMの定義時VM定義情報から、又は、VMCPの
コマンドによる指定時、又は、IO命令の処理時、これ
らのVM情報領域2092′内の情報が設定される。
【0040】実サブチャネルの専有又は、実割込優先順
位の専有は、VMの定義時又は、VMCPコマンドによ
り指定される。この指定のとき、VM情報領域209
2′の中の以下のフィールドが設定される。
【0041】・状態フィールド2093内のサブチャネ
ル占有フラグ ・I/O直接実行モード抑止フラグは通常0にセットさ
れ、I/O直接実行モードはサポート状態にされる。
【0042】・専有元のVM# ・仮想サブチャネル#と実サブチャネル# ・CCWのアドレス変換情報2094の中で、当該専有
元VMの主記憶装置(レベル2メモリ)からレベル1メ
モリへのアドレス変換テーブルの先頭アドレス(RAT
OR第4図(a)参照)これはもし、専有元VMが、図
5に示す、主記憶装置を専有する場合は、その上下限α
i,αi+1(i=1,2,3…)を設定するようにしても
良い。
【0043】共有サブチャネルの場合は、これらの情報
は、もし必要なら、IO命令処理時に設定される。この
場合は、IO発行元VMのVM情報領域の該当フィール
ドに設定される。
【0044】図17に、VM起動用の命令フォーマット
を示す。2900がVM起動命令であり、2910は、
そのオペランドである。オペランド2910の中には、
当該VM#、VMのPSW、VMのPSAアドレス、サ
ブチャネル#変換テーブル2600(図14)の先頭ア
ドレス、割込優先順位#変換テーブル2500(図1
4)の先頭アドレス、当該VMの主記憶装置からホスト
システムの主記憶装置へのアドレス変換テーブル201
0(図15)の先頭アドレス(RATOR)(図4
(a)参照))、当該VMの主記憶装置サイズ(この2
つについては、起動するVMが、図5に示す、主記憶装
置2002の連続領域をVMの主記憶装置として使用す
る場合はその上下限αi,αi+1(i=1,2,…)を指
定しても良い。)等が記述されている。これらのオペラ
ンド情報の中で、VMの走行用PSW、VMのPSAア
ドレス及び実割込優先順位ステータス、及び、VMS制
御フラグ群は、VM起動時に決定されるが、その他の多
くの情報は、前述したとおりVMの定義情報により、V
Mの定義時に決定されるものである。実割込優先順位ス
テータス、及び実割込優先順位専有ステータス、及びV
MS制御フラグ群は、後程説明する。これらのオペラン
ドは、VMCPにより設定される。VMの起動用命令に
ついては、必らずしも、図17に示す形式でなくても良
い。ただ、オペランドとして、図17に示すような情報
が必要である。図18はVMS制御レジスタ群1080
を表わす。レジスタ1081は、現走行VMのVM#を
含み、VM起動命令により設定される。このレジスタの
内容は、VM起動命令のオペランド2910(図17)
のひとつのフイールドの内容で与えられる。図19は、
VMS制御フラグ群1090′(図12参照)を示す。
これらのフラグは、VM起動命令のオペランド(図1
7)のひとつのフイールドで初期値が与えられる。各フ
ラグの意味は以下のとおりである。
【0045】V:VM走行時1とする。VMCP走行
時、又は、実計算機モード時0となる。
【0046】VM起動命令により1に設定され、割出し
等で、VMCPに制御が渡されるとき、0にセットされ
る。これは従来のとおり(図7である。
【0047】H:VMの走行において、特権命令の直接
実行が可能であるとき1をセットする。このフラグが1
のとき、VMの走行における大部分の特権命令は、CP
U1000′の命令実行回路により直接実行される。H
=1のとき高速VMモードという。これも従来どおり
(図7参照)。
【0048】R:VM上のOSに制限を与え、常に仮想
サブチャネル#=実サブチャネル#かつ常に、仮想割込
優先順位#=実割込優先順位#のとき、1をセットす
る。これが1のとき、μプログラムによるサブチャネル
#変換処理、割込優先順位#変換処理を全て除外する。
(このとき、図14に示す変換表類2400,260
0,2500は不要である。) D:本発明で可能となるVMのIO直接実行(VMCP
を介入しないことを意味する)を有効とするとき1とす
る。通常VMCPのVM起動命令により1に初期化され
る。
【0049】N:このフラグは本実施例に特徴的なもの
であり、現走行VMが、共有割込優先順位に関する割込
保留要因を持ち(実際はVMCPが当該VM用に保留し
ているものである)、現走行VMの仮想割込優先順位マ
スクに関しては割込可能であるものが存在する(従っ
て、当該VMのPSWのIOマスクが0のため割込不可
能となっている)とき、1に設定する。これは、仮想割
込優先順位に関しては割込可能な、VMのIO割込要求
を調べる命令の実行時に使用する。これも、VMCPが
VM起動命令により初期化する。
【0050】図20は、実割込優先順位のわりあて方法
を示す。実割込優先順位として、0〜31の32種類を
考える。実割込優先順位0は、最も優先順位が高いので
VMCP専用とする。実割込優先順位1から、上昇順
(割込優先順位は下降順)に、VMの専有する実割込優
先順位を各専有元VMにわりあてる。共有割込優先順位
については、実割込優先順位31から下降順(割込優先
順位は上昇順)に各VMに割当てる。図20における例
では、VM1の仮想割込優先順位0には、実割込優先順
位1が割当てられ、これを専有し、仮想割込優先順位1
〜7には、実割込優先順位31が割当てられ、これをV
M間で共有することになる。VM2及びVM3について
も図20に示すとおりに割当てられる。VM1での仮想
割込優先順位は、実際には、0と(1〜7)の二種類に
分けられることとなる。従って、VM1上のOSが、実
効的に使用できる実割込優先順位は二種類となる。これ
らのOSに対する制限は、運用により許容することがで
きるものである。どの割込優先順位を専有にするかは、
各VMに対して、VMS全体の計画下で決定すべき問題
であり、VMCPにより管理される。このようにして決
定された実割込優先順位の専有、共有の状態は、VM起
動命令のオペランドで与えられ(図17参照)、その命
令処理により実割込優先順位専有ステータスレジスタ1
049(図21)に設定される。
【0051】図21は、実割込優先順位マスクレジスタ
1041′、実割込保留レジスタ1042′、実割込優
先順位ステータスレジスタ1045及び実割込優先順位
専有ステータスレジレスタ1049を示している。この
うち、レジスタ1041′と1042′は従来例(図1
1)にも存在するが、ただ、そのビット数を増加してあ
る。この例では、従来8ビットであったものを4倍の3
2ビットに拡張してある。これは、実割込優先順位のV
Mにおける専有方式をサポートするためである。意味は
同じであるので、説明は省略する。実割込優先順位ステ
ータスレジスタ1045の意味は以下のとおり。すなわ
ち、ビットn(0〜31)が0の時、実割込優先順位n
が現走行VMに専有されていることを示す。そうでない
ときは、1にセットされる。実割込優先順位専有ステー
タスレジスタ1049の内容は以下のとおり。すなわ
ち、ビットc(0〜31)が0のとき、実割込優先順位
cがあるVMに占有されていることを意味し、ビットc
が1のとき実割込優先順位cは共有であることを示して
いる。レジスタ1045、1049は、VM起動命令の
オペランドにより初期設定される。実割込優先順位マス
クレジスタ1041′は、VMCPにより管理、更新さ
れる。実割込保留レジスタ1042′は、IOP300
0′(図12)によりセットされ、IO割込処理用マイ
クロプログラム1060′によりリセットされる(図2
2)。
【0052】図22は、本発明におけるIO割込回路1
040′の回路図である。この図では、簡単のために、
実割込優先順位が、10種類しかないように書いてある
が、実際は、32種類あり、そのときの結線も、全く同
様である。さて、実割込優先順位c(c=0〜31)
が、割込保留要因をもつ(すなわち、IO割込要求キュ
ー2080の実割込優先順位cレベルのキューに、割込
要求もつサブチャネルがキューイングされ保留レジスタ
1042′の該当ビットが1になったとする)とする。
このとき、割込優先順位cが現走行VMに専有されてい
るときは、実割込優先順位ステータスレジスタ1045
の対応ビットは0となっているので、ORゲート群10
48の出力には、PSWのIOマスク値が出るから、P
SW1020のIO割込マスクが有効となる。従って、
対応する実割込優先順位マスクレジスタ1041′の対
応ビット1でPSWのIOマスクが1のときのみ、AN
Dゲート1047の該当出力が1となりIO割込みが起
動され、IO割込処理マイクロプログラム1060′に
制御が渡される。割込優先順位cが、共有か又は、他V
Mに専有されている場合は、レジスタ1045の対応ビ
ットは1となっているので、ORゲート1048の該当
出力は1となりPSW1020のIOマスクに無関係と
なり、対応する実割込優先順位マスクレジスタ104
1′のビットが1であれば、IO割込みが起動される。
マイクロプログラム1060′による割込処理後、当該
割込優先順位cの割込要求キューが空になれば、保留レ
ジスタ1042′の該当ビットは同マイクロプログラム
により0クリアされる。
【0053】さて、以上にのべたたハードウェア及びマ
イクロプログラム及び、主記憶装置上の情報を用いて、
YM上のOSのIO命令及びIO割込みがどのように処
理されるかを順をおって以下にのべる。
【0054】以下の2点を前提とし、VMは高速VMモ
ードとする。
【0055】(i)VMの主記憶装置全体は、ホストシ
ステムの主記憶装置上に常駐化されているものとする。
【0056】(ii)VM上のOSのIO直接実行(VM
CPの介入なしの実行方法、IO割込みの直接実行も含
む)は、専有サブチャネル、かつ、専有割込優先順位を
有するサブチャネルに対してだけサポートする。
【0057】先ず、VMCPは、VMの起動時、図17
のVM起動命令のオペランドの設定の他に、実割込優先
順位マスクレジスタ1041′のビットcを以下のよう
に設定する(図21)。
【0058】・実割込優先順位c(0〜31)が、現走
行VMに専有されているとき、対応するVM上のOSの
仮想割込優先順位(今簡単のために、ひとつだけと仮定
する。以下同様。)のマスク値を、ビットcにセットす
る。
【0059】・割込優先順位cが、他のVMに専有され
ているとき、該VMの対応する仮想割込優先順位のマス
ク値と、該VMのPSWのIOマスク値との論理積を、
ビットcにセットする。又は、当該割込優先順位cの割
込みの遅れが問題にならない場合もビットcに0をセッ
トしても良い。
【0060】・割込優先順位cが、VM間で共有される
場合は、ビットcには1をセットする。
【0061】当該VMの走行中に、その仮想割込優先順
位マスクを変更しても、ただちに、実割込優先順位マス
クレジスタ1041′(図21)に変更が反映される。
そのために、OSの仮想割込優先順位マスク値の変更命
令は、必らず、VMCP経由でシミュレーションするよ
うにすることもできるし、又は、CPUのμプログラム
処理により、当該変更をレジスタ1041′に反映して
も良い。それは従来と同じ。高速VMモードのVMを起
動する場合は、図17はVM起動命令のオペランドのV
M走行用PSWには、VM自身のPSWが設定され、こ
れが、そのまま、CPU1000′のPSW1020
(図12)に設定される。従って、PSWのIOマスク
は、走行VMのIOマスクと一致させられる。VM走行
中におけるOSのPSW変更は、ただちに、PSW10
20に反映されるので、この一致条件は満足される。そ
のために、OSのPSW変更命令は、直接実行により、
CPU1000′のPSW1020に反映されても良い
し、又、VMCP経由のシミュレーションにより反映さ
れることもある。これは従来どおり、以上の設定が完了
した後、VM起動命令(図17)により、VM上のOS
に制御が渡される。この命令の実行により、図18の現
走行VM#レジスタ1081、CPU1000′のPS
W10210(図12)、図13プレフィクス管理表の
該当エントリ、図14の変換テーブルアドレス管理表2
400の該当エントリ、図15のVM管理表の該当エン
トリ、図21の実割込優先順位ステータスレジスタ10
45、図19のVMS制御フラグ群が初期化される。
【0062】さて、VM上のOSからIO命令が発行さ
れたとする。CPU1000′のIO実行回路103
0′は、マイクロプログラム1050′の制御により以
下の処理を行なう。
【0063】(1)高速VMモードでないとき(VMS
制御フラグH=0図19参照)は、VMCPへ割出す。
【0064】このときは、VMCPのプレフィクスレジ
スタ1010を使用して、VMCPのPSA2100に
割込みを反映することにより、VMCPへ割出す(図1
2)。
【0065】(2)高速VMモード(VMS制御フラグ
H=1)のとき、VMのIC直接実行モード(VMS制
御フラグD=1かどうか)か否かを判断する。(図1
9)。
【0066】(3)D=0のときは、VMCPへ割出
す。
【0067】(4)D=1のとき、VMS制御フラグR
を判断する。R=0のとき、該当する仮想サブチャネル
#変換表2600を検索して、与えられた仮想サブチャ
ネル#を、実サブチャネル#に変換する。もし、仮想割
込優先順位#が命令オペランドで与えられたときは、割
込優先順位#変換テーブルを検索し、実割込優先順位#
に変換する。これと、実割込優先順位専有ステータスレ
ジスタ1049により、専有かどうかを判断し、サブチ
ャネル制御ブロックのVM情報領域2092′の状態フ
ィールドに書き込む(図16)。
【0068】仮想割込優先順位#と実割込優先順位#と
の対応関係はこのとき書き込まれる。R=1ときは、変
換は不要であるので、同じ値を書き込む。
【0069】(5)求めた実サブチャネル制御ブロック
2091′(図16)が専有サブチャネルでかつ、専有
割込優先順位を有する場合はIO命令を実行する。これ
以後は、実計算機システムにおける処理と同じで、非同
期のIO装置のオペレーションを必要とする場合は、I
O要求キュー2070にサブチャネルをキューイングす
る(図8)。IO発行元には、条件コードと共に制御が
返される。
【0070】(6)求めた実サブチャネルが、共有サブ
チャネル又は、割込優先順位が共有の場合は、VMCP
へ割出し、シミュレーションに委ねる。
【0071】(7)VM上のOSの発行したIO命令
が、各仮想割込優先順位上の割込可能(OSの仮想割込
優先マスクに関して割込可能の意味)な、IO割込要求
を調べる命令の場合は、以下のように本実施例に特徴的
な方法で処理する。すなわち、先ず、現走行VMは実専
有割込優先順位に関して、割込要求を調べる。そのと
き、もし、何も、IOの割込要求がないときは、共有割
込優先順位について調べる必要があるが、共有割込優先
順位に関する割込保留は全てVMCPが管理するので、
VMCPに制御を渡す必要性が発生する。しかし、それ
は、直接実行の主旨に反するので、VMSの制御フラグ
N(図19)を用いる。N=1のときは、調べるIO割
込保留(共有割込優先順位、かつ、仮想割込優先順位に
ついて割込可能)を、VMCPが管理していることを示
し、従って、この場合は、VMCPへ割出すこととす
る。N=0の時は、かかるIO割込保留はないため、V
MCPへ割出す必要はなくなり、直接実行が可能とな
る。
【0072】次にIO割込処理について述べる。
【0073】(1)IO装置からのIO割込要求は、I
OP3000′により検出され、対応する実サブチャネ
ル制御ブロックが、HSA2001内のIO割込要求キ
ュー2080の対応する実割込優先順位にキューイング
される。(図9参照)。これは従来どおり。
【0074】(2)このとき、図22に示す、IOP3
000′は実割込保留レジスタ1042′の該当ビット
を1にする。これも従来どおり。
【0075】(3)実割込優先順位マスクレジスタ10
41′は、前述したように設定されている。図22にお
けるIO割込み回路の動作方法は前述したとおりであ
る。これより、IO割込みが起動され、IO割込処理用
マイクロプログラム1060′に制御が渡ったとする。
【0076】(4)このとき、割込みが起動された実割
込優先順位が専有化されている場合、実割込優先順位マ
スクレジスタ1041′、実割込優先順位ステータスレ
ジスタ1045の設定方法により、その専有元VMは、
対応する仮想割込優先順位に関しては、必らず、割込可
能となっている。もし、その専有元VMが、割込不可能
な場合は、PSW1020のIOマスク、上記レジスタ
1041′,1045の働らきにより、当該実割込優先
順位に関してはIO割込みは起動されず、制御が106
0′に渡されることはない。すなわち、ハードウェアに
より保留されたままである。
【0077】(5)IO割込μプログラム処理106
0′は、以下の処理を行なう。
【0078】(i)割込みを発生した実割込優先順位c
上の、IOの割込要求キュー2080(図9)の実サブ
チャネルをキューより取りはずす。
【0079】(ii)VMS制御フラグ1090′(図1
9)のVMモードフラグビットV及び高速VMモードフ
ラグHを見、V=0のときは、VMCPのPSAへ割込
みを反映する。この場合は、VMCPのP×R1010
(図12)を使用する。
【0080】(iii)V=1&H=1のとき、VMのI
O直接実行モードDビットをみる。D=のとき、IO直
接実行モードでないので、VMCPのPSAへ割込みを
反映する。
【0081】(iv)D=1のとき、以下の処理を行な
う。
【0082】(イ)実サブチャネル制御ブロック内の状
態フィールド(図16)より、占有化されたサブチャネ
ルか判断し、共有サブチャネルの場合は、VMCPのP
SAへ割込みを反映する。
【0083】(ロ)割込を発生している実割込優先順位
cが現走行VMに専有されている場合、すなわち、実割
込優先順位ステータスレジスタ1045の該当ビットが
0のとき(図21参照)、現走行VMのPSAに割込み
を反映し、現走行VMを続行する。このときは、VM用
のプレフイクスレジスタ1070(図12)を使用す
る。VMのプレフィクスへのIO割込情報は、実サブチ
ャネル制御ブロック2092′内の仮想サブチャネル
#、あるいは、仮想割込優先順位#を割込情報として反
映する。
【0084】(ハ)実割込優先順位cが、他のVMに専
有されている場合は、VMCPへ割込みを反映する。
【0085】この後、VMCPにより、該当VMのPS
Aへ割込みを反映する。
【0086】(ニ)実割込優先順位cが共有されている
場合は、VMCPへ割込みを反映する。この後、VMC
Pにより、該当VMへの割込みの反映が行なわれるが、
この場合は、該当VMが割込不可能の場合が有り得、そ
の場合は、VMCPにより当該IO割込みが保留される
こととなる。
【0087】以上のように、サブチャネルが占有化され
て、かつ、占有化された実割込優先順位を有する場合、
そのサブチャネルに対しては、VM上のOSのIOの直
接実行(VMCPの介入によらず実行すること)がサポ
ートされる。IO割込みの場合は、さらに、正確にいえ
ば、現走行VMの専有するサブチャネルからのIO割込
みだれが直接実行される。他のVMの専有するサブチャ
ネルからのIO割込みについては、VM間スケジューリ
ングの必要性が発生するため、VMCPが介入せざるを
得ない。
【0088】図16の実サブチャネル制御ブロックの中
の状態フィールド2093のIO直接実行モード抑止フ
ラグは、通常は0であり、当該サブチャネルのIO直接
実行モードはサポートされる。しかし、専有サブチャネ
ルの場合、専有元VM以外のVM上のOSからIO命令
が発行されることはないが、VMCPから、IO命令が
発行されることはあり得る。このとき、専有サブチャネ
ルであっても、当該VMCPのI/Oが完了するまで
は、この状態フィールド2093内のI/O直接実行モ
ード抑止フラグを1とし、当サブチャネルのIO直接実
行モードは抑止状態におかれる。
【0089】従って、このフラグは、VMCPの管理に
おいて、セット/リセットされるものである。以上のI
Oの実行方式において以下のことがいえる。
【0090】(a)VMS制御フラグ群1090′の中
で、(図19)Rビットはなくても良い。すなわち、常
に仮想サブチャネル#の変換及び仮想割込優先順位#の
変換を行なうようにするが、又は、VMSの運用におい
て、本発明のIO直接実行方式を適用する場合は、必ら
ず、それらの値が等しいことを前提とすることにすれば
不要である。
【0091】(b)同じく、Dフラグも、Hフラグ代用
する方法が考えられるが、高速VMモードフラグHは、
IO命令以外の特権命令の直接実行の可否をも制御する
ので、IO命令だけの直接実行の可否の制御はできなく
なる。
【0092】(c)IO割込みの処理で、現走行VM以
外のVMに専有されている実割込優先順位からのIO割
込みは、VMCPに反映するように前述したが、これ
を、当該専有元VMは、割込可能となっているから、先
ず、当該VMのPSAに割込反映後、VMCPに、VM
CPコールの形で制御を渡すようにしても良い。そのV
MのPSAのアドレスは、図13におけるプレフィクス
管理表より求めることができる。この場合は、さらに、
当該VMのPSWを求める方法が必要であり、そのため
の情報が必要であるが、その方法は、当該VM#をベー
スとして、いろいろな方法が考えられるので、図示は省
略する。
【0093】(d)サブチャネル#変換テーブル先頭ア
ドレス、割込優先順位#変換テーブル先頭アドレス,実
割込優先順位ステータスレジスタ1045,実割込優先
順位専有ステータスレジスタ1049(図21)は、全
て、VM起動命令のオペランドで初期化する(図17参
照)ようにしたが、VMCPの専用命令で初期化するよ
うにしても良い。
【0094】
【発明の効果】以上説明したように本発明によれば、V
M上のOSから発行されるIO割込み検査命令の直接実
行が可能となり、VMCPのIOシミュレーションオー
バヘッドを大幅に削減することができる効果がある。
【図面の簡単な説明】
【図1】通常のOSによる実計算機システムのブロック
図。
【図2】従来の仮想計算機システム(VMS)のブロッ
ク図。
【図3】従来の仮想計算機(VM)におけるメモリ階層
を示す説明図。
【図4】アドレス変換テーブル類を示す説明図。
【図5】実主記憶装置の連続領域を専有するVMの構成
図。
【図6】VMCPが、VMのIOシミュレーション用に
発行するIO命令を示す説明図。
【図7】ホストシステムの構成図。
【図8】IO要求キューを示す説明図。
【図9】IO割込要求キューを示す説明図。
【図10】実サブチャネル制御ブロック群の説明図。
【図11】IO割込回路を示す図。
【図12】本発明の実施例によるホストシステムの構成
図。
【図13】プレフィクス管理表を説明する図。
【図14】変換表アドレス管理表を説明する図。
【図15】VM管理表を説明する図。
【図16】実サブチャネル制御ブロック群の説明図。
【図17】VM起動命令を示す図。
【図18】VMS制御レジスタ群の説明図。
【図19】VMS制御フラグ群を示す図。
【図20】割込優先順位割当て方法の説明図。
【図21】VMS割込制御レジスタの説明図。
【図22】VMS用IO割込回路についての説明図であ
る。
【符号の説明】
10000…実計算機システム、1000…CPU、1
000′…CPU、1000−N…CPUN N=1,
2,3,…、1010…VMCPのプレフィクスレジス
タPXR、1020…プログラムステータスワードPS
W、1030…IO命令実行回路、1040…IO割込
回路、1050…IO命令実行用マイクロプログラムμ
P1、1060…IO割込処理用マイクロプログラムμ
P2、1070…VM用PXR、1080…VMS制御
レジスタ群、1090…VMS制御フラグ群、1100
…基本制御レジスタ群、1030′…IO実行回路、1
040′…IO割込回路、1050′…IO命令実行用
マイクロプログラム、1060′…IO割込処理用マイ
クロプログラム、1100′…基本制御レジスタ群、1
110…レベル2→レベル1アドレス変換テーブル先頭
アドレスを含むレジスタ、1120…レベル3→レベル
2アドレス変換テーブル先頭アドレスを含むレジスタ、
1041…実割込優先順位マスクレジスタ、1041′
…実割込優先順位マスクレジスタ、1042…実割込保
留レジスタ、1042′…実割込保留レジスタ、104
3…ORゲート、1044…ANDゲート、1081…
現走行VM#レジスタ、1045…実割込優先順位ステ
ータスレジスタ、1046…ANDゲート群、104
6′…ANDゲート群、1047…ANDゲート群、1
048…ORゲート群、1049…実割込優先順位専有
ステータスレジスタ、2000…主記憶装置、2000
−N…VM−Nの主記憶装置(N=1,2,3…) 2001…主記憶装置2000内のハードウェア・シス
テム・エリア、2002…主記憶装置2000内のプロ
グラム可能エリア、2010…レベル2メモリからレベ
ル1メモリへのアドレス変換テーブル、2010(1)
…レベル2メモリからレベル1メモリへのアドレイ変換
テーブル、2010(2)…レベル2メモリから1レベ
ルメモリのアドレス変換テーブル、2020…レベル1
メモリアドレスで作られたCCW、2030…レベル2
メモリアドレスで作られたCCW、2040…レベル3
メモリからレベル2メモリへのアドレス変換テーブル、
2050…レベル3メモリアドレスで作られたCCW、
2060…VM上のOSの生成する仮想空間で、レベル
3メモリに属する、2070…IO要求キュー、208
0…IO割込要求キュー、2090…サブチャネル制御
ブロック群、2090′…サブチャネル制御ブロック
群、2100…VMCPのプレフィクスPSA、211
0…VM1のPSA、2120…VM2のPSA、21
30…VM3のPSA、2200…VMCPの常駐領
域、2300…プレフィクス管理表、2400…変換表
アドレス管理表、2500割込優先順位#変換テーブル
群、2600…サブチャネル#変換テーブル群、270
0…VM管理表、2800…VMCPの用意したCCW
変換情報、2810…VM上のOS又はVMCPの用意
したCCW群、2091…サブチャネル制御ブロック、
2091′サブチャネル制御ブロック、2092…サブ
チャネル制御ブロック内のアドレス変換情報、209
2′…サブチャネル制御ブロック内のアドレス変換情
報、2071…IO要求キューキューエレメント、26
01…サブチャネル#変換テーブルの前段表、2602
…サブチャネル#変換テーブルの後段表、2093…サ
ブチャネル制御ブロック内のVM情報領域2092′内
の状態フィールド、2094…VM情報領域内のCCW
アドレス変換情報、2900…VM起動命令、2910
…VM起動命令のオペランド、3000…入出力プロセ
ッサIOP、3000′…入出力プロセッサIOP、3
000−N…VM−NのIOP(論理的なもの)、31
10…サブチャネルレジスタ群、3010′…サブチャ
ネルレジスタ群、3020…IOを実行するマイクロプ
ログラムμP3、3030…IOP3000内のアドレ
ス変換テーブル、3011…ひとつのサブチャネルレジ
スタ、4000…入出力制御装置IOC、4000−N
…VM−N(N=1,2,3…)のIOC、100…C
PU−主記憶装置間インタフェース、110…CPU−
ハードウェアシステムエリア2001間インタフェー
ス、120…CPU−プログラム可能エリア2002間
インタフェース、200…CPU−IOP間インターフ
ェース、300…IOP−主記憶装置間インタフェー
ス、310…IOP−ハードウェアシステムエリア20
01間インタフェース、320…IOP−プログラム可
能エリア2002間インタフェース、400…IOP−
IOC間インタフェース。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 博昭 神奈川県秦野市堀山下1番地 株式会社日 立製作所神奈川工場内 (72)発明者 沢本 英雄 神奈川県秦野市堀山下1番地 株式会社日 立製作所神奈川工場内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】制御プログラムの制御下で複数のオペレー
    テイングシステム(OS)を並行して走行する計算機
    と、 複数のI/O装置と、 該計算機により実行されたI/O命令が要求するI/O
    処理を該複数のI/O装置の一つに対して、該計算機に
    よる命令の実行と非同期に実行するI/O処理実行手段
    とを有し、 該複数のOSの一つに対して該複数のI/0装置の一つ
    を代表する複数のサブチャネルが該複数のOSに割当て
    られ、 各I/0装置は、該複数のOSの少なくとも一つに対し
    て複数のサブチャネルの少なくとも一つにより代表さ
    れ、 該複数のサブチャネルには、複数の実割込み優先順位が
    割当てられ、 該複数の実割込み優先順位の少なくとも一つが該複数の
    OSの一つにより排他的に使用されるように、該複数の
    実割込み優先順位が該複数のサブチャネルにあらかじめ
    割当てられ、 該計算機は、 走行中のOSから発行された、そのOSにより処理され
    るべき、保留された割込みが存在するか否かを検査する
    命令に応答して、そのOSに排他的に使用される実割込
    み優先順位を有する割込みが保留されているか否かを、
    該制御プログラムによる判別を要求しないで判別する回
    路と、 保留された割込みが存在すると判別された場合に、その
    割込みをその命令にの実行結果としてその走行中のOS
    に通知する手段を有する計算機システム。
  2. 【請求項2】該計算機は、 上記走行中のOSと他のOSにより共有される少なくと
    も一つの実割込み優先順位を有する割込みが該制御プロ
    グラムにより保留状態にされているか否かを示す情報
    が、該制御プログラムによりセットされるレジスタと、 保留された割込みが存在しないと該判別回路により判別
    された場合に、該レジスタが、その走行中のOSと他の
    OSにより共有される少なくとも一つの実割込み優先順
    位を有する割込みが該制御プログラムにより保留状態に
    されていないことを示すときに、該走行中のOSに、処
    理すべき保留された割込みがないことを通知する手段を
    さらに有する特許請求の範囲第1項記載の計算機システ
    ム。
  3. 【請求項3】該計算機は、 保留された割込みが存在しないと該判別回路により判別
    された場合に、該レジスタが、その走行中のOSと他の
    OSにより共有される少なくとも一つの実割込み優先順
    位を有する割込みが該制御プログラムにより保留状態に
    されていることを示すときに、該制御プログラムに割込
    み、上記命令のシミュレーションを要求する手段をさら
    に有する特許請求の範囲第2項記載の計算機システム。
JP5141747A 1993-06-14 1993-06-14 計算機システム Expired - Lifetime JPH0711784B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5141747A JPH0711784B2 (ja) 1993-06-14 1993-06-14 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5141747A JPH0711784B2 (ja) 1993-06-14 1993-06-14 計算機システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP59005587A Division JPH0619747B2 (ja) 1984-01-18 1984-01-18 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム

Publications (2)

Publication Number Publication Date
JPH0659919A true JPH0659919A (ja) 1994-03-04
JPH0711784B2 JPH0711784B2 (ja) 1995-02-08

Family

ID=15299264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5141747A Expired - Lifetime JPH0711784B2 (ja) 1993-06-14 1993-06-14 計算機システム

Country Status (1)

Country Link
JP (1) JPH0711784B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001099081A1 (fr) * 2000-06-20 2001-12-27 Hitachi, Ltd. Dispositif de commande de vehicule
US6535943B1 (en) 1999-09-30 2003-03-18 Fujitsu Limited Information processing device enabling floating interrupt to be pending and a method executing an interrupt condition change instruction

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535943B1 (en) 1999-09-30 2003-03-18 Fujitsu Limited Information processing device enabling floating interrupt to be pending and a method executing an interrupt condition change instruction
WO2001099081A1 (fr) * 2000-06-20 2001-12-27 Hitachi, Ltd. Dispositif de commande de vehicule
CN1307067C (zh) * 2000-06-20 2007-03-28 株式会社日立制作所 车辆行驶控制装置
US7206685B2 (en) 2000-06-20 2007-04-17 Hitachi, Ltd. Vehicle travel control apparatus

Also Published As

Publication number Publication date
JPH0711784B2 (ja) 1995-02-08

Similar Documents

Publication Publication Date Title
US4885681A (en) I/O Execution method for a virtual machine system and system therefor
JP3546678B2 (ja) マルチos構成方法
US5414848A (en) Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US7712104B2 (en) Multi OS configuration method and computer system
US4843541A (en) Logical resource partitioning of a data processing system
US5392409A (en) I/O execution method for a virtual machine system and system therefor
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
US6880022B1 (en) Transparent memory address remapping
US8271989B2 (en) Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
US8140834B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
JPH0695898A (ja) 仮想計算機の制御方法および仮想計算機システム
JPS6083168A (ja) マルチプロセツサ・システム制御方法
JP4026667B2 (ja) マルチos構成方法
JP6198858B2 (ja) 計算機、及び、ハイパバイザによる資源スケジューリング方法
EP0043391A1 (en) Virtual memory terminal
JP2001216172A (ja) マルチos構成方法
JPH0659919A (ja) 計算機システム
JPH07129518A (ja) 計算機システム
Umeno et al. New methods for realizing plural near-native performance virtual machines
JPS6097440A (ja) 仮想多重プロセツサ装置
JPH0754469B2 (ja) 仮想計算機システムのための入出力命令実行装置
US11385927B2 (en) Interrupt servicing in userspace
JPH0567973B2 (ja)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term