JP2610966B2 - Virtual computer control method - Google Patents
Virtual computer control methodInfo
- Publication number
- JP2610966B2 JP2610966B2 JP63267529A JP26752988A JP2610966B2 JP 2610966 B2 JP2610966 B2 JP 2610966B2 JP 63267529 A JP63267529 A JP 63267529A JP 26752988 A JP26752988 A JP 26752988A JP 2610966 B2 JP2610966 B2 JP 2610966B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- guest
- physical
- sub
- output
- 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 - Fee Related
Links
Description
【発明の詳細な説明】 〔概要〕 仮想計算機システムにおける各仮想計算機の入出力処
理方法に関し、 仮想計算機モニタ(ホスト)での入出力処理に必要な
オーバヘッドを少なくすることを目的とし、 仮想計算機システム上で動作する複数個の仮想計算機
に提供されるべき入出力装置構成を記述する情報ブロッ
ク(A)に基づいて、該仮想計算機システムの仮想計算
機モニタ(ホスト)が、各仮想計算機が認識する入出力
装置構成単位の仮想的な識別子(B)(ゲストサブチャ
ネル番号)と、ハードウェア{入出力プロセッサ(IO
P)内でのマイクロプログラムと、その実行手段、以下
省略}が実際に使用する物理的な識別子(C)(サブチ
ャネル番号)との関連を記述する変換情報(D)が、上
記仮想計算機モニタによりハードウェアに提供されたと
き、上記情報ブロック(A)と,上記変換情報(D)と
に基づき、上記ハードウェアが自ら各仮想計算機毎に、
各仮想計算機の入出力処理を実行する為に必要なハード
ウェア内制御ブロック群(E)(物理サブチャネル、以
下、単に、サブチャネルということがある)を動的に取
得し、該仮想計算機より入出力命令が発行された場合
は、上記ハードウェアが上記変換情報(D)により、該
仮想計算機の発行する入出力命令のオペランドに含まれ
る仮想的な識別子(B)から互いに独立な物理的な識別
子(C)に変換して、対応するハードウェア内制御ブロ
ック群(E)(サブチャネル)の1員を特定し、これを
使用して入出力命令を実行し、入出力装置より上記ハー
ドウェア内制御ブロック群(E)(サブチャネル)の1
員を使用した入出力割込みが発生した場合は、該ハード
ウェアが上記変換情報(D)を使用して、該制御ブロッ
ク(E)の物理識別子(C)を仮想計算機が使用する仮
想的な識別子(B)に変換し、これを使用して該仮想計
算機に入出力割込みを発生させるように構成する。DETAILED DESCRIPTION OF THE INVENTION [Summary] The present invention relates to an input / output processing method for each virtual computer in a virtual computer system, which aims to reduce overhead required for input / output processing in a virtual computer monitor (host). Based on the information block (A) describing the input / output device configuration to be provided to a plurality of virtual machines operating on the above, the virtual machine monitor (host) of the virtual machine system recognizes the input that each virtual machine recognizes. The virtual identifier (B) (guest sub-channel number) of the output device configuration unit and the hardware / input / output processor (IO
The conversion information (D) describing the relationship between the microprogram in P) and the physical identifier (C) (sub-channel number) actually used by its execution means, hereinafter abbreviated {circle around (2)}, is stored in the virtual computer monitor. When provided to the hardware by the above, based on the information block (A) and the conversion information (D), the hardware is configured by itself for each virtual computer.
A control block group (E) in hardware (physical sub-channel, hereinafter sometimes simply referred to as a sub-channel) necessary for executing input / output processing of each virtual machine is dynamically acquired, and is obtained from the virtual machine. When an I / O instruction is issued, the hardware uses the conversion information (D) to generate a physical identifier independent from the virtual identifier (B) included in the operand of the I / O instruction issued by the virtual machine. The identifier is converted into an identifier (C), a member of a corresponding control block group (E) (sub-channel) in hardware is specified, and an input / output instruction is executed using this. Of the internal control block group (E) (sub-channel)
When an I / O interrupt using a member occurs, the hardware uses the conversion information (D) to replace the physical identifier (C) of the control block (E) with a virtual identifier used by the virtual machine. (B), which is used to generate an input / output interrupt in the virtual machine.
本発明は、仮想計算機システムにおける各仮想計算機
の入出力処理方法に関する。The present invention relates to an input / output processing method for each virtual machine in a virtual machine system.
仮想計算機システムにおいては、この上で走行する複
数個の仮想計算機(以下、ゲストという)に対して、ゲ
スト環境で走行していることを、特に意識させることな
く、実計算機上で走行しているのと同じ機能・環境を提
供することが、強く、要求される。In a virtual machine system, a plurality of virtual machines (hereinafter referred to as guests) running on the virtual machine run on a real machine without being particularly conscious of running in a guest environment. It is strongly required to provide the same functions and environment as those described above.
このことは、入出力処理についても同じである。一般
に、仮想計算機システムでは、仮想計算機モニタ(以
後、ホストという)が認識する実際の入出力装置の構成
と、該ゲストに意識させる入出力装置の構成とは異な
る。This is the same for the input / output processing. In general, in a virtual machine system, the configuration of an actual input / output device recognized by a virtual machine monitor (hereinafter, referred to as a host) is different from the configuration of the input / output device made conscious of the guest.
即ち、複数個のゲストを同時に実計算機上で走行させ
る為に、一般に、物理入出力装置構成の一部分(ゲスト
サブチャネル)のみ該ゲストに見せ、且つゲストから見
たある入出力装置資源の仮想識別子(B)(仮想サブチ
ャネル番号)は、物理入出力装置構成中における物理識
別子(C)(サブチャネル番号)とは異なる。That is, in order to run a plurality of guests on a real computer at the same time, generally, only a part of the physical I / O device configuration (guest subchannel) is shown to the guest, and a virtual identifier of a certain I / O device resource viewed from the guest (B) (virtual sub-channel number) is different from the physical identifier (C) (sub-channel number) in the physical input / output device configuration.
この差をゲストに見せることを避ける為に、既存の仮
想計算機システムでは、ゲストが発行した全ての入出力
命令をホストが取り込み、該入出力命令のオペランドで
ある上記入出力装置資源の仮想識別子(B)(ゲストサ
ブチャネル番号)を物理入出力装置構成中の物理識別子
(C)(サブチャネル番号)に変換した上で、ホストが
入出力命令を発行することによりゲストからは入出力環
境を保証する(即ち、物理入出力装置がビジーであって
も、ゲストからは該入出力装置を使用しているかのよう
に見せる)ような制御を行う。In order to avoid showing this difference to the guest, in the existing virtual machine system, the host fetches all the I / O commands issued by the guest, and the virtual identifier (I / O device resource identifier) which is the operand of the I / O command. B) After converting the (guest sub-channel number) into the physical identifier (C) (sub-channel number) in the physical I / O device configuration, the host issues an I / O instruction to guarantee the I / O environment from the guest. (I.e., even if the physical input / output device is busy, the guest makes it appear as if the input / output device is being used).
又、このことは、入出力処理の機能面についても同様
である。This also applies to the functional aspects of the input / output processing.
仮想計算機の一つの目的に、異なるアーキテクチャの
ソフトウェアを一つのハードウェア(実計算機)の上で
走行させることがあるが、制御情報がゲスト間で共用さ
れているので、非同期動作を含む入出力系処理では、ハ
ードウェア側において、該アーキテクチャの差を吸収で
きず、個々のゲストに対応する制御情報を持つホスト
が、エミュレーションを行うことによって、誤差を吸収
するのが普通である。One purpose of a virtual machine is to run software of different architectures on one piece of hardware (real machine). However, since control information is shared between guests, an input / output system including asynchronous operation is used. In the processing, the hardware cannot absorb the difference in the architecture, and the host having the control information corresponding to each guest usually absorbs the error by performing emulation.
これらの原因の為に、既存の仮想計算機システムにお
いては、ゲストによる入出力装置は悉く、ホストに割り
出される(取り込まれる)ことが普通になっている。Due to these causes, in the existing virtual machine system, it is common that all the input / output devices by the guest are determined (taken) by the host.
然し、この為に、当然、該仮想計算機システムの性能
の低下がある。この性能の低下は、例えば、システム性
能の20%以上に達することが珍しくない。However, for this reason, the performance of the virtual machine system naturally decreases. It is not uncommon for this performance degradation to reach, for example, 20% or more of the system performance.
更に、該既存の仮想計算機システムでは、ハードウェ
ア内部の制御情報(サブチャネル情報)がゲスト対応に
存在しない為に、あるハードウェア資源で発生した入出
力事象をどのゲストに報告されるべきかを、常に、ホス
トにより判定されなければならず、ホストの入出力装置
に対する制御論理を複雑にし、それだけ、ホストでのオ
ーバヘッドを大きくしている問題がある。Further, in the existing virtual machine system, since the control information (sub-channel information) in the hardware does not exist for the guest, it is necessary to determine to which guest an input / output event generated in a certain hardware resource should be reported. However, the determination must always be made by the host, which complicates the control logic for the input / output device of the host, and accordingly increases the overhead at the host.
従って、該ホストでのオーバヘッドをできる限り少な
くして、該仮想計算機システムの性能を向上させること
ができる入出力制御方式が要求される。Therefore, there is a demand for an input / output control method capable of improving the performance of the virtual computer system by minimizing the overhead in the host as much as possible.
第3図は従来の仮想計算機システムにおける入出力処
理方式を示した図であり、(a)は既存の仮想計算機シ
ステムにおける機能分担を模式的に示した図であり、
(b)は構成例を示した図である。FIG. 3 is a diagram showing an input / output processing method in a conventional virtual computer system, and FIG. 3 (a) is a diagram schematically showing function sharing in an existing virtual computer system;
(B) is a diagram showing a configuration example.
(a)図において、101,102はゲストで、103はホスト
である。(A) In the figure, 101 and 102 are guests, and 103 is a host.
従来の仮想計算機システムでは、全ての入出力処理は
ホスト103を経由し、ゲスト101,102から見た処理対象に
対応する仮想的なサブチャネル(VSCH)041,042に対す
るゲスト入出力命令は、オペランド変換により物理サブ
チャネル(SCH)020を対象とする入出力命令に起き換え
られる。In the conventional virtual machine system, all input / output processing passes through the host 103, and guest input / output instructions for virtual subchannels (VSCH) 041 and 042 corresponding to the processing target viewed from the guests 101 and 102 are converted into physical sub-channels by operand conversion. It is switched to an input / output instruction for the channel (SCH) 020.
又、ゲスト入出力割込み発行時には、上記物理サブチ
ャネル(SCH)020を使用して報告されたものが、ホスト
103により仮想的なサブチャネル(VSCH)041,042に反映
され、個々のゲスト101,又は、102に報告される。When a guest I / O interrupt is issued, the one reported using the physical subchannel (SCH) 020 is
The information is reflected on virtual sub-channels (VSCH) 041 and 042 by the 103 and is reported to the individual guest 101 or 102.
上記において、ホスト103内部の仮想的なサブチャネ
ル(VSCH)041,042は、個々のゲスト101,102から見た入
出力環境を達成する為の制御情報であり、従来方式にお
いては、この制御情報は、ホスト103の内部に存在し、
ハードウェア{例えば、記憶制御装置(MCU)202内に設
けられる}104から物理サブチャネル(SCH)020を経由
して報告された内容をホスト103が解釈して、該ゲスト1
01,又は、102の何れかに反映させる。In the above description, virtual sub-channels (VSCH) 041 and 042 inside the host 103 are control information for achieving the input / output environment as viewed from the individual guests 101 and 102. In the conventional method, this control information is Exists inside the
The host 103 interprets the contents reported via the physical sub-channel (SCH) 020 from the hardware {for example, the storage controller (MCU) 202} 104, and
01 or 102 is reflected.
物理サブチャネル(SCH)020はハードウェア104が内
部に持つ実サブチャネルで、物理入出力装置(IOD)105
が複数個の物理入出力アドレスを持っている場合でも、
該物理入出力装置(IOD)1051台に対応して唯一つの物
理サブチャネル(SCH)020が取得される。A physical subchannel (SCH) 020 is a real subchannel that the hardware 104 has internally, and a physical input / output device (IOD) 105
Has multiple physical I / O addresses,
Only one physical subchannel (SCH) 020 is acquired corresponding to one physical input / output device (IOD) 1051.
上記の説明は、既存の仮想計算機システムにおける入
出力処理での機能分担を示したものであるが、(b)図
によって、該既存の仮想計算機システムにおける入出力
処理を、具体的に説明する。The above description shows the sharing of functions in the input / output processing in the existing virtual computer system. The input / output processing in the existing virtual computer system will be specifically described with reference to FIG.
先ず、従来の仮想計算機システムの構成を説明する。 First, a configuration of a conventional virtual computer system will be described.
ゲストA 101,ゲストB 102,及びホスト103は、図示さ
れている如くに、実計算機における主記憶装置(MSU)2
03上に配置される。As shown, the guest A 101, the guest B 102, and the host 103 are connected to a main storage unit (MSU) 2 in the real computer.
Placed on 03.
該ホスト103内の仮想サブチャネル(以下、VSCHとい
う)041,042は、上記個々のゲストA,ゲストB 101,102に
対応した仮想的なサブチャネルであって、実際の入出力
装置の状態ではなく、該ゲスト101,102から見た入出力
装置の状態が記述されている。又、ゲスト入出力割込み
が発生した時、個々のゲスト101,102に報告するゲスト
サブチャネル番号{仮想識別子(B)}も記述されてい
る。Virtual sub-channels (hereinafter, referred to as VSCH) 041 and 042 in the host 103 are virtual sub-channels corresponding to the individual guests A and B 101 and 102, respectively. The state of the input / output device as viewed from 101 and 102 is described. Also, a guest subchannel number {virtual identifier (B)} to be reported to each guest 101 and 102 when a guest input / output interrupt occurs is described.
該ホスト103内のゲストサブチャネル変換テーブル
(以下、GSTという)214,215は、上記ゲストサブチャネ
ル番号{仮想識別子(B)}と物理サブチャネル番号
{物理識別子(C)}との変換を行うテーブルであっ
て、ホスト103は、このテーブルをゲスト入出力命令を
発行した時に使用し、該ゲストサブチャネル番号を物理
サブチャネル番号に変換する。The guest subchannel conversion tables (hereinafter, GST) 214 and 215 in the host 103 are tables for performing conversion between the guest subchannel number {virtual identifier (B)} and the physical subchannel number {physical identifier (C)}. Then, the host 103 uses this table when issuing a guest input / output instruction, and converts the guest subchannel number into a physical subchannel number.
該ホスト103内の仮想アドレス変換テーブル(以下、V
ATTという)216は、入出力装置(IOD)105から入出力割
込みが発生したとき、ハードウェア104から伝達された
物理サブチャネル(SCH)020のサブチャネル番号,及
び、そのサブチャネル(SCH)020中の何れのパスを使用
したかを示す情報とにより、前述のVSCH 041,又は042を
求めるテーブルである。A virtual address conversion table (hereinafter, V
ATT) 216 is a subchannel number of the physical subchannel (SCH) 020 transmitted from the hardware 104 when an input / output interrupt is generated from the input / output device (IOD) 105, and the subchannel (SCH) 020. It is a table for obtaining the above-mentioned VSCH 041 or 042 based on information indicating which of the paths is used.
入出力プロセッサ(IOP)206にはアドレス変換テーブ
ル(ATT)207があり、物理入出力アドレス、即ち、デー
タ転送(通信)パスを含む入出力装置アドレスをサブチ
ャネル番号に変換する索引機構であり、通常は、該入出
力プロセッサ(IOP)206内部に設けられた高速メモリに
よって構成されているが、本図に示した例においては、
入出力装置(IOD)105がチャネル(CHE)208,209の何れ
を使用して本体側と通信する場合でも、この変換機構の
出力は同一の値、即ち、サブチャネル(SCH)020をポイ
ントするように機能する。The input / output processor (IOP) 206 has an address conversion table (ATT) 207, which is an index mechanism for converting a physical input / output address, that is, an input / output device address including a data transfer (communication) path, into a subchannel number. Normally, it is constituted by a high-speed memory provided inside the input / output processor (IOP) 206, but in the example shown in FIG.
Regardless of whether the input / output device (IOD) 105 communicates with the main unit using any of the channels (CHE) 208 and 209, the output of this conversion mechanism is set to the same value, that is, to point to the sub-channel (SCH) 020. Function.
このように構成された仮想計算機システムにおいて、
入出力処理の事象が発生したときの動作を以下に説明す
る。In the virtual computer system configured as described above,
The operation when an input / output processing event occurs will be described below.
a)ゲスト入出力命令実行時: ゲスト入出力命令は、中央処理装置(CPU)201が実
行するゲスト対応のプログラムにより、ホスト103に割
出される。a) At the time of execution of a guest input / output instruction: The guest input / output instruction is indexed to the host 103 by a guest-compatible program executed by the central processing unit (CPU) 201.
ホスト103は該ゲスト入出力命令のオペランドを該ゲ
スト101,又は102に対応するGST(例えば、214)を使用
して変換し、対応する物理サブチャネル番号{物理識別
子(C)}を求める。The host 103 converts the operand of the guest input / output instruction using the GST (for example, 214) corresponding to the guest 101 or 102, and obtains a corresponding physical subchannel number {physical identifier (C)}.
ホスト103は上記のにより求めた物理サブチャネ
ル番号に対応するサブチャネル(SCH)020が、他のゲス
トの入出力処理に使用されていないか等をチェックす
る。即ち、該ホスト103は全てのサブチャネル(SCH)02
0の状態を管理する必要がある。The host 103 checks whether or not the sub-channel (SCH) 020 corresponding to the physical sub-channel number obtained as described above is being used for input / output processing of another guest. That is, the host 103 transmits all sub-channels (SCH) 02
It is necessary to manage the state of 0.
上記のチェックで使用中条件等が存在しない場合、
該ホスト103は該サブチャネル(SCH)020に対して入出
力命令を発行する。If there is no in-use condition in the above check,
The host 103 issues an input / output command to the sub-channel (SCH) 020.
このとき、対応するゲスト101,又は102に割当てられ
た入出力パスのみを使用する旨の指示情報が付加され
る。例えば、現在、該入出力処理の為に使用してよいパ
スは、チャネル(CHE)208−入出力制御装置(IOC)210
−入出力装置(IOD)105のパスのみである。At this time, instruction information indicating that only the input / output path assigned to the corresponding guest 101 or 102 is used is added. For example, currently, the path that may be used for the input / output processing is channel (CHE) 208-input / output controller (IOC) 210
-Only the path of the input / output device (IOD) 105.
b)ゲスト入出力割込み発生時: ハードウェア104は、該入出力割込み条件を報告し
た入出力装置(IOD)105に対応するサブチャネル(SC
H)020をATT 207を使用して求め、このサブチャネル(S
CH)020を使用して、入出力割込み条件が発生したパ
ス、例えば、チャネル(CHE)208−入出力制御装置(IO
C)210−入出力装置(IOD)105を表示する情報と共に、
ホスト103に割込む。b) When a guest input / output interrupt occurs: The hardware 104 transmits a subchannel (SC) corresponding to the input / output device (IOD) 105 that has reported the input / output interrupt condition.
H) 020 is determined using ATT 207 and this subchannel (S
CH) 020, the path where the input / output interrupt condition occurred, for example, channel (CHE) 208-input / output controller (IO
C) 210-with information to display the input / output device (IOD) 105;
Interrupt the host 103.
ホスト103は、上記VATT 216を使用して、サブチャ
ネル(SCH)020の物理サブチャネル番号,及び何れのパ
スが使用されたかの情報により、仮想サブチャネル(VS
CH)041を選択し、これに該入出力割込み条件を記述し
た上で該ゲスト101,又は102に割込み報告を行う。The host 103 uses the VATT 216 to determine a virtual subchannel (VS) based on the physical subchannel number of the subchannel (SCH) 020 and information on which path is used.
CH) 041, the input / output interrupt conditions are described in this, and an interrupt report is sent to the guest 101 or 102.
このように、従来方式においては、入出力命令にし
ろ、入出力割込みにしろ、ゲスト入出力処理は全てホス
ト103に割出されることが必要であり、ホスト103でのオ
ーバヘッドが大きくなるという問題があった。As described above, in the conventional method, regardless of the input / output instruction or the input / output interrupt, it is necessary that all the guest input / output processing be indexed to the host 103, and the overhead at the host 103 increases. there were.
本発明は上記従来の欠点に鑑み、仮想計算機システム
における各仮想計算機の入出力処理方法において、仮想
計算機モニタ(ホスト)での入出力処理に必要なオーバ
ヘッドを少なくすることができる仮想計算機制御方法を
提供することを目的とするものである。SUMMARY OF THE INVENTION In view of the above-mentioned conventional disadvantages, the present invention provides a virtual machine control method capable of reducing overhead required for input / output processing in a virtual machine monitor (host) in an input / output processing method of each virtual machine in a virtual machine system. It is intended to provide.
第1図は本発明の仮想計算機制御方法の原理図であ
る。FIG. 1 is a diagram illustrating the principle of a virtual machine control method according to the present invention.
上記の問題点は下記の如くに構成された仮想計算機シ
ステムにおける入出力制御方法によって解決される。The above problem is solved by an input / output control method in a virtual machine system configured as follows.
仮想計算機システムの初期化時に、該仮想計算機シス
テム上で動作する複数個の仮想計算機101,102に提供さ
れるべき入出力装置構成を記述した情報ブロック(A)
が、例えば、外部のファイル装置よりロードされ、該ロ
ードされた情報ブロック(A)に基づいて、該仮想計算
機システムの仮想計算機モニタであるホスト103が、各
仮想計算機101,102が認識する入出力装置構成単位の仮
想的なゲストサブチャネル番号である第1の識別子
(B)と、入出力処理ブロセッサのマイクロプログラム
実行手段(ハードウェア)104が、実際に使用する物理
的なサブチャネル番号である第2の識別子(C)との対
応関係を記述する変換情報(D)を該マイクロプログラ
ム実行手段(ハードウェア)104に提供したとき、上記
情報ブロック(A)と、上記変換情報(D)214,216と
に基づき、上記マイクロプログラム実行手段(ハードウ
ェア)104が、各仮想計算機101,102の入出力処理を実行
する為に必要な物理サブチャネル群(E)031,032を動
的に取得し、 該取得した物理サブチャネル(E)031,032を使用し
た入出力動作時において、該入出力動作時における各仮
想計算機101,102から見た入出力処理及び入出力装置構
成単位の状況を、各仮想計算機単位及び各入出力装置構
成単位に、上記物理サブチャネル群(E)031,032内の
各物理サブチャネル内に保持し、この物理サブチャネル
群(E)031,032内の各物理サブチャネル(E)に対応
する上記第2の識別子(C)であるサブチャネル番号
と、上記第1の識別子(B)である仮想的なゲストサブ
チャネル番号との間の対応関係情報を、上記マイクロプ
ログラム実行手段(ハードウェア)104が、上記変換情
報(D)に保持することにより、 各仮想計算機101,102より入出力命令が発行された場
合は、上記マイクロプログラム実行手段(ハードウェ
ア)104が、上記変換情報(D)(GST)214により、各
仮想計算機の発行する入出力命令のオペランドに含まれ
る上記第1の識別子(B)であるゲストサブチャネル番
号から、上記第2の識別子(C)であるサブチャネル番
号に変換して、対応する物理サブチャネル群(E)031,
032の一つを特定し、該特定した物理サブチャネル
(E)を使用して入出力命令を実行し、 各入出力装置105から上記物理サブチャネル群(E)0
31,032の一つを使用した入出力割込みが発生した場合、
上記マイクロプログラム実行手段(ハードウェア)104
が、上記変換情報(D)(VATT)216を使用して、上記
物理サブチャネル群のサブチャネル番号である上記第2
の識別子(C)を、各仮想計算機が使用している仮想的
なゲストサブチャネル番号である第1の識別子(B)に
変換して、対応する仮想計算機101,102に上記入出力割
り込みを発生させるように構成する。Information block (A) describing an input / output device configuration to be provided to a plurality of virtual machines 101 and 102 operating on the virtual machine system at the time of initialization of the virtual machine system
Is loaded from, for example, an external file device, and based on the loaded information block (A), the host 103, which is a virtual computer monitor of the virtual computer system, recognizes the input / output device configuration recognized by each of the virtual computers 101 and 102. The first identifier (B), which is a virtual guest sub-channel number of the unit, and the second identifier, which is a physical sub-channel number actually used by the microprogram execution means (hardware) 104 of the input / output processing processor. When the conversion information (D) describing the correspondence relationship with the identifier (C) is provided to the microprogram execution means (hardware) 104, the conversion information (D) 214 and 216 are stored in the information block (A) and the conversion information (D) 214 and 216. The physical sub-channel group (E) necessary for the microprogram execution means (hardware) 104 to execute the input / output processing of each of the virtual machines 101 and 102 In the input / output operation using the obtained physical sub-channel (E) 031,032, the input / output processing and the input / output device configuration unit viewed from each of the virtual machines 101 and 102 during the input / output operation are acquired. The status is held in each physical subchannel in the physical subchannel group (E) 031,032 in each virtual computer unit and each input / output device configuration unit, and each physical subchannel in the physical subchannel group (E) 031,032 is stored. The correspondence information between the sub-channel number, which is the second identifier (C) corresponding to the channel (E), and the virtual guest sub-channel number, which is the first identifier (B), is stored in the microcontroller. When the program execution means (hardware) 104 holds the conversion information (D) and issues an input / output instruction from each of the virtual machines 101 and 102, the microprogram execution means (hardware) The hardware 104 uses the conversion information (D) (GST) 214 to convert the guest subchannel number that is the first identifier (B) included in the operand of the input / output instruction issued by each virtual machine from the guest subchannel number. 2 is converted to a subchannel number which is an identifier (C) of the corresponding physical subchannel group (E) 031,
032, the input / output command is executed using the specified physical subchannel (E), and the physical subchannel group (E) 0
If an I / O interrupt using one of 31,032 occurs,
The microprogram execution means (hardware) 104
Is the sub-channel number of the physical sub-channel group using the conversion information (D) (VATT) 216.
Is converted to a first identifier (B), which is a virtual guest subchannel number used by each virtual machine, and the input / output interrupt is generated in the corresponding virtual machines 101 and 102. To be configured.
即ち、本発明によれば、仮想計算機システムにおける
各仮想計算機の入出力処理方法において、仮想計算機シ
ステム上で動作する複数個の仮想計算機(ゲスト)に提
供されるべき入出力装置構成、即ち、どのゲストがどの
入出力装置を使用するかを示す情報ブロック(A)が、
例えば、ユーザによって指示されると、ホストが該情報
ブロック(A)に基づいて、ゲストが認識するゲストサ
ブチャネル番号{仮想識別子(B)}を互いに独立な物
理サブチャネル番号{物理識別子(C)}に変換する為
のゲストサブチャネル変換テーブル(GST)と、入出力
割込み発生時に、ハードウェアから伝達されたホストサ
ブチャネル番号,及びパス情報により、対応する仮想サ
ブチャネル(VSCH)を求めるテーブル(VATT){変換情
報(D)}とを生成し、ハードウェアに提供すること
で、該ハードウェアは、該情報ブロック(A)と、ゲス
トサブチャネル変換テーブル(GST){変換情報
(D)}に基づき、各ゲスト毎に対応するゲストの入出
力処理を実行する為に必要なサブチャネル(SCH){制
御ブロック群(E)}を動的に取得する。That is, according to the present invention, in the input / output processing method for each virtual machine in the virtual machine system, the input / output device configuration to be provided to a plurality of virtual machines (guests) operating on the virtual machine system, An information block (A) indicating which I / O device the guest uses,
For example, when instructed by the user, the host recognizes the guest sub-channel number {virtual identifier (B)} recognized by the guest based on the information block (A), independent of the physical sub-channel number {physical identifier (C)}. And a table for determining a corresponding virtual subchannel (VSCH) from the host subchannel number and path information transmitted from hardware when an input / output interrupt occurs, and a guest subchannel conversion table (GST) for converting to VATT) {Conversion information (D)} is generated and provided to the hardware, and the hardware generates the information block (A) and the guest sub-channel conversion table (GST) {Conversion information (D)}. The sub-channel (SCH) {control block group (E)} required to execute the input / output processing of the corresponding guest for each guest is dynamically acquired based on the That.
そして、該ゲストより入出力命令が発行された場合
は、上記ハードウェアが上記ゲストサブチャネル変換テ
ーブル(GST)により、該ゲストの発行する入出力命令
のオペランドに含まれる仮想的なサブチャネル番号{仮
想的な識別子(B)}から互いに独立な物理的なサブチ
ャネル番号{物理的な識別子(C)}に変換して、対応
するハードウェア内のサブチャネル(SCH){制御ブロ
ック群(E)の1員}を特定しこれを使用して入出力命
令を実行し、 入出力装置(IOD)より上記ハードウェア内サブチャ
ネル群(E)の1員を使用した入出力割込みが発生した
場合は、該ハードウェアが上記仮想アドレス変換テーブ
ル(VATT){変換情報(D)}を使用して、該サブチャ
ネル(SCH)のサブチャネル番号{物理識別子(C)}
をゲストが使用する仮想的なサブチャネル番号{仮想的
な識別子(B)}に変換し、これを使用して該ゲストに
入出力割込みを発生させるように動作する。When an I / O instruction is issued from the guest, the hardware uses the guest sub-channel conversion table (GST) to output a virtual sub-channel number included in the operand of the I / O instruction issued by the guest. The virtual identifier (B)} is converted into a physical subchannel number {physical identifier (C)} independent of each other, and the corresponding subchannel (SCH) in hardware {control block group (E)} When the input / output instruction is executed by using the specified member 、, and an input / output interrupt using the member of the above hardware sub-channel group (E) is generated from the input / output device (IOD), , The hardware uses the virtual address conversion table (VATT) {conversion information (D)} and the subchannel number of the subchannel (SCH) {physical identifier (C)}
Is converted to a virtual subchannel number {virtual identifier (B)} used by the guest, and this is used to generate an input / output interrupt for the guest.
このように、本発明においては、ハードウェア内部の
制御情報、即ち、サブチャネル(SCH)を、ゲスト対応
に動的に開設する機構と,ゲスト入出力構成と物理入出
力構成との間の変換機構(GST,VATT)とをハードウェア
内部に持つことにより、ゲスト入出力処理をホストに割
出すことなく、入出力処理を実行できるので、該ホスト
でのオーバヘッドを少なくすることができる効果があ
る。As described above, in the present invention, a mechanism for dynamically opening control information inside the hardware, that is, a subchannel (SCH) for a guest, and converting between a guest input / output configuration and a physical input / output configuration. By having the mechanism (GST, VATT) inside the hardware, it is possible to execute the input / output processing without allocating the guest input / output processing to the host, so that the overhead at the host can be reduced. .
以下本発明の実施例を図面によって詳述する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
前述の第1図が本発明の仮想計算機制御方法の原理図
であり、第2図は本発明の一実施例を示した図であっ
て、ユーザによって提供されたゲスト101,102毎の入出
力装置構成を記述する情報ブロック(A)に基づいて、
ホスト103がゲストサブチャネル番号と物理サブチャネ
ル番号との間の関連を記述する変換情報(D)(GST,VA
TT)214,216がハードウェア104に提供されたとき、該ハ
ードウェア104によってゲスト101,又は102の入出力処理
を実行するのに必要なサブチャネル(SCH)031,又は、0
32を動的に取得し、以降において、各ゲスト101,又は10
2により入出力命令が発行されたとき、或いは、物理入
出力装置(IOD)105から入出力割込みが発生したとき、
該ハードウェア104が上記変換情報(D)(GST,VATT)2
14,216に基づいて、ホスト103の介入なく、入出力命令
の実行,或いは、ゲスト101,又は、102への仮想的な入
出力割込みを発生させる手段が本発明を実行するのに必
要な手段である。尚、全図を通して同じ符号は同じ対象
物を示している。FIG. 1 is a diagram showing the principle of the virtual machine control method of the present invention, and FIG. 2 is a diagram showing an embodiment of the present invention, in which an input / output device configuration for each guest 101, 102 provided by a user. Based on the information block (A) that describes
Conversion information (D) describing the association between the guest subchannel number and the physical subchannel number by the host 103 (GST, VA
When the TT) 214, 216 is provided to the hardware 104, the sub-channel (SCH) 031, or 0 required to execute the input / output processing of the guest 101 or 102 by the hardware 104
32 are acquired dynamically, and thereafter, each guest 101 or 10
When an I / O instruction is issued by 2 or when an I / O interrupt is generated from the physical I / O device (IOD) 105,
The hardware 104 stores the conversion information (D) (GST, VATT) 2
Based on 14,216, means for executing an input / output instruction or generating a virtual input / output interrupt to the guest 101 or 102 without intervention of the host 103 is a means necessary for executing the present invention. . Note that the same reference numerals indicate the same object throughout the drawings.
以下、第1図を参照しながら、第2図によって本発明
の仮想計算機制御方法、特に、入出力制御方法を説明す
る。FIG. 2 illustrates a virtual machine control method of the present invention, particularly an input / output control method, with reference to FIG.
先ず、本発明による仮想計算機システムのハードウェ
ア構成を説明する。First, the hardware configuration of the virtual machine system according to the present invention will be described.
本発明においては、例えば、主記憶装置(MSU)203上
のハードウェア専用領域(HSA)205に、ハードウェア10
4によってのみアクセスされるサブチャネル(SCH)031,
032、仮想アドレス変換テーブル(VATT)216等のハード
ウェア制御情報ブロックが置かれる。In the present invention, for example, the hardware 10 (HSA) 205 on the main storage device (MSU) 203 is
Subchannel (SCH) 031, accessed only by 4
032, a hardware control information block such as a virtual address conversion table (VATT) 216, and the like.
該サブチャネル(SCH)031,032は各入出力装置(IO
D)105毎に、ゲストの個々に対応した物理サブチャネル
であって、入出力処理の制御を行うハードウェア制御情
報ブロック(C)であり、各ゲストがどの入出力装置
(IOD)105を使用するかによって決まる制御ブロック群
(E)である。The sub-channels (SCH) 031 and 032 are connected to each input / output device (IO
D) A physical control channel corresponding to each guest for each 105, which is a hardware control information block (C) for controlling input / output processing, and which input / output device (IOD) 105 is used by each guest. This is a control block group (E) that is determined depending on whether or not to execute.
従って、1個の入出力装置(IOD)105を、例えば、n
個のゲストが使用するものとすると、該入出力装置(IO
D)105に対して、各ゲスト101,102対応に、n個のサブ
チャネル(SCH)031,又は、032が置かれることになる。
以下、それぞれの入出力装置(IOD)105に対して、該ゲ
ストの使用状況に合わせて、各サブチャネル(SCH)03
1,又は、032が置かれる。Therefore, one input / output device (IOD) 105 is, for example, n
If the guest uses the I / O device (IO
For D) 105, n sub-channels (SCH) 031, or 032 will be placed for each guest 101, 102.
Hereinafter, each sub-channel (SCH) 03 is provided to each input / output device (IOD) 105 in accordance with the usage status of the guest.
1, or 032 is placed.
そして、各サブチャネル(SCH)031,032には、ソフト
ウェアから見た物理入出力装置(IOD)105のアドレス
{該入出力装置(IOD)105内のユニットアドレス、入出
力パス情報を含む}と、その入出力装置(IOD)105の状
態(使用中,故障中,電源投入状態等)が記述されてい
る。Each sub-channel (SCH) 031 and 032 has an address of a physical input / output device (IOD) 105 as viewed from software {including a unit address and input / output path information in the input / output device (IOD) 105}. The state of the input / output device (IOD) 105 (in use, in failure, power-on state, etc.) is described.
仮想アドレス変換テーブル(VATT)216は物理サブチ
ャネル番号{物理識別子(C)}をゲストサブチャネル
番号{仮想識別子(B)}に変換する為のテーブルであ
って、入出力割込みが発生したとき、入出力プロセッサ
(IOP)206を介してハードウェア104から伝達された上
記物理サブチャネル番号は、このハードウェア機構によ
りゲストサブチャネル番号に変換される。The virtual address conversion table (VATT) 216 is a table for converting a physical sub-channel number {physical identifier (C)} into a guest sub-channel number {virtual identifier (B)}. The physical subchannel number transmitted from the hardware 104 via the input / output processor (IOP) 206 is converted into a guest subchannel number by the hardware mechanism.
上記入出力プロセッサ(IOP)206には、従来方式(第
3図参照)と同じく、物理入出力アドレスを、ゲスト10
1,102の使用状況によって決まる物理サブチャネル番号
に変換する機構であるアドレス変換テーブル(ATT)207
が置かれている。In the input / output processor (IOP) 206, the physical input / output address is assigned to the guest 10 as in the conventional method (see FIG. 3).
Address conversion table (ATT) 207, which is a mechanism for converting to a physical subchannel number determined by the usage status of 1,102
Is placed.
このとき、入出力パスにより得られる物理サブチャネ
ル番号は必ず異なる。本実施例においては、入出力装置
(IOD)105がチャネル(CHE)208,209の何れを使用して
本体と通信するかによって、該変換機構(ATT)207の出
力が物理サブチャネル(SCH)031,又は、032をポイント
する。尚、この機構は、通常入出力処理プロセッサ(IO
P)206の内部に設けられている高速メモリによって構成
される索引機構である。At this time, the physical subchannel numbers obtained by the input / output paths are always different. In this embodiment, the output of the conversion mechanism (ATT) 207 depends on which of the channels (CHE) 208 and 209 the input / output device (IOD) 105 uses to communicate with the main unit. Or point to 032. It should be noted that this mechanism is usually used for an input / output
P) An indexing mechanism configured by a high-speed memory provided inside 206).
ゲストサブチャネル変換テーブル(GST)214はゲスト
サブチャネル番号{仮想識別子(B)}を上記物理サブ
チャネル番号{物理識別子(C)}に変換する為のテー
ブルであり、ホスト103から発行されるゲスト起動命令
のオペランドとなるので、本発明の場合にも、従来と同
じく、主記憶装置(MSU)203上のホスト103がアクセス
可能な領域に置かれている。The guest sub-channel conversion table (GST) 214 is a table for converting the guest sub-channel number {virtual identifier (B)} into the physical sub-channel number {physical identifier (C)}. Since it becomes an operand of a start instruction, in the case of the present invention as well, it is located in an area accessible by the host 103 on the main storage device (MSU) 203 as in the prior art.
上記起動されたゲスト101,又は、102が発行するゲス
ト入出力命令のゲストサブチャネル番号{仮想識別子
(B)}は、このテーブル(GST)214を参照するハード
ウェア104により、物理サブチャネル番号{物理識別子
(C)}に変換される。The guest subchannel number {virtual identifier (B)} of the guest input / output instruction issued by the activated guest 101 or 102 is obtained by the hardware 104 referring to this table (GST) 214 by the physical subchannel number { Physical identifier (C)}.
上記のような特徴的なハードウェア構成をとる仮想計
算機システムにおける本発明の入出力処理を以下に説明
する。The input / output processing of the present invention in the virtual computer system having the above-described characteristic hardware configuration will be described below.
a)ゲスト入出力命令実行時: ホスト103によってゲスト101,又は、102が起動され
た時、ユーザの指定するゲスト入出力構成が、ホスト10
3により、ゲストサブチャネル変換テーブル(GST)(例
えば、214)として作成される。該ゲストサブチャネル
変換テーブル(GST)214は、ゲスト識別子及びゲストサ
ブチャネル番号{仮想識別子(B)}を物理サブチャネ
ル番号{物理識別子(C)}に変換する“対”情報を明
示している。a) When a guest I / O instruction is executed: When the guest 101 or 102 is started by the host 103, the guest I / O configuration specified by the user is
3 creates a guest sub-channel conversion table (GST) (for example, 214). The guest subchannel conversion table (GST) 214 specifies “pair” information for converting a guest identifier and a guest subchannel number {virtual identifier (B)} into a physical subchannel number {physical identifier (C)}. .
次に、ハードウェア104により、該ゲストサブチャネ
ル変換テーブル(GST)214の上記“対”情報を、物理サ
ブチャネル番号{物理識別子(C)}により索引できる
表である仮想アドレス変換テーブル(VATT)(例えば、
216)が、主記憶装置(MSU)203上のハードウェア専用
領域(HSA)205上に、該仮想計算機システムとして1つ
作成され、この2つの変換情報(D)(GST,VATT)によ
り、物理サブチャネル(SCH)(例えば、031){制御ブ
ロック群(E)}が動的に取得される。Next, the virtual address conversion table (VATT), which is a table in which the hardware 104 can index the “pair” information of the guest subchannel conversion table (GST) 214 by the physical subchannel number {physical identifier (C)}. (For example,
216) is created as a virtual computer system in the hardware dedicated area (HSA) 205 on the main storage unit (MSU) 203, and the two conversion information (D) (GST, VATT) The sub-channel (SCH) (for example, 031) {control block group (E)} is dynamically acquired.
上記起動されたゲストによりゲスト入出力命令が発
行されると、該命令のオペランドであるゲストサブチャ
ネル番号{仮想識別子(B)}が、上記により準備さ
れたゲストサブチャネル変換テーブル(GST)214により
物理サブチャネル番号{物理識別子(C)}に変換さ
れ、ホスト103を介することなく、物理サブチャネル(S
CH)031を起動する。When the guest input / output instruction is issued by the activated guest, the guest subchannel number {virtual identifier (B)}, which is the operand of the instruction, is obtained by the guest subchannel conversion table (GST) 214 prepared as described above. It is converted to a physical sub-channel number {physical identifier (C)}, and the physical sub-channel (S
CH) 031 is started.
このとき、該起動されたゲスト101,又は、102に割当
てられた入出力パスのみを使用する。例えば、該入出力
処理の為に使用してもよいパスはチャネル(CHE)208−
入出力制御装置(IOC)210−入出力装置(IOD)105のパ
スのみである。At this time, only the input / output path allocated to the activated guest 101 or 102 is used. For example, the path that may be used for the input / output processing is channel (CHE) 208-.
There is only a path from the input / output control device (IOC) 210 to the input / output device (IOD) 105.
b)ゲスト入出力割込み発生時: ハードウェア104は、入出力割込み条件を報告した
入出力装置(IOD)105に対応する物理サブチャネル(SC
H)03を、入出力処理装置(IOP)206内の上記アドレス
変換テーブル(ATT)207を参照して求める。b) When a guest input / output interrupt occurs: The hardware 104 sends the physical subchannel (SC) corresponding to the input / output device (IOD) 105 reporting the input / output interrupt condition.
H) 03 is obtained by referring to the address conversion table (ATT) 207 in the input / output processing device (IOP) 206.
該求められた物理サブチャネル(SCH)031に対応す
る物理サブチャネル番号{物理識別子(C)}は、ハー
ドウェア104によって上記仮想アドレス変換テーブル(V
ATT)216が参照されることでゲストサブチャネル番号
{仮想識別子(B)}に変換され、これも、ホストを介
することなく、直接、対応するゲスト101,又は102に対
して入出力割込みが発生する。The physical subchannel number {physical identifier (C)} corresponding to the obtained physical subchannel (SCH) 031 is converted by the hardware 104 into the virtual address conversion table (V
ATT) 216 is referred to and converted into a guest subchannel number {virtual identifier (B)}, which also directly generates an input / output interrupt for the corresponding guest 101 or 102 without going through the host. I do.
このように、本発明においては、ゲスト入出力命令,
或いは、入出力割込みの通常処理において、ホストの仲
介を必要としない為、従来方式で問題であった入出力処
理におけるホストでのオーバヘッドを著しく減少させる
ことができる。Thus, in the present invention, the guest input / output instruction,
Alternatively, in the normal processing of the input / output interrupt, the mediation of the host is not required, so that the overhead at the host in the input / output processing which has been a problem in the conventional method can be significantly reduced.
このように、本発明は、仮想計算機システムにおける
各仮想計算機の入出力処理方法において、ユーザが指定
するゲスト毎の入出力構成を記述する情報ブロック
(A)に基づいて、ゲストが認識するゲストサブチャネ
ル番号(B)と、ハードウェアが実際に使用する物理サ
ブチャネル番号(C)との間の関連を記述する変換情報
(D)、例えば、ゲストサブチャネル変換テーブル(GS
T)と,仮想アドレス変換テーブル(VATT)とを、該ホ
ストとハードウェアとで生成してハードウェアに提供さ
れると、該ハードウェアが自ら、対応するゲストの入出
力処理を実行するのに必要な物理サブチャネル(SCH)
を動的に取得し、ゲストから仮想入出力命令が発行され
た場合には、上記ゲストサブチャネル変換テーブル(GS
T)により該入出力処理に必要なサブチャネル(SCH)を
特定して、該ハードウェアが入出力命令を実行し、入出
力装置(IOD)から入出力割込みが発生した場合には、
ハードウェアが上記仮想アドレス変換テーブル(VATT)
に基づいてゲストを特定し、該ゲストに入出力割込みを
発生せしめるようにした所に特徴がある。As described above, according to the present invention, in the input / output processing method of each virtual machine in the virtual machine system, the guest sub-list that the guest recognizes based on the information block (A) describing the input / output configuration for each guest specified by the user. Conversion information (D) describing the association between the channel number (B) and the physical subchannel number (C) actually used by the hardware, for example, a guest subchannel conversion table (GS
T) and the virtual address translation table (VATT) generated by the host and the hardware and provided to the hardware, the hardware can execute the input / output processing of the corresponding guest by itself. Required Physical Subchannel (SCH)
Is obtained dynamically, and when a virtual I / O instruction is issued from the guest, the guest sub-channel conversion table (GS
T) specifies a subchannel (SCH) necessary for the input / output processing, and when the hardware executes the input / output instruction and an input / output interrupt is generated from the input / output device (IOD),
The hardware uses the virtual address translation table (VATT)
It is characterized in that a guest is specified based on the information and an input / output interrupt is generated for the guest.
以上、詳細に説明したように、本発明の仮想計算機制
御方法は、仮想計算機システム上で動作する複数個の仮
想計算機に提供されるべき入出力装置構成を記述する情
報ブロック(A)に基づいて、該仮想計算機システムの
仮想計算機モニタ(ホスト)が、各仮想計算機が認識す
る入出力装置構成単位の仮想的な識別子(B)(ゲスト
サブチャネル番号)と、ハードウェアが実際に使用する
物理的な識別子(C)(サブチャネル番号)との関連を
記述する変換情報(D)(GST,VATT)が、上記仮想計算
機モニタによりハードウェアに提供されたとき、上記情
報ブロック(A)と,上記変換情報(D)とに基づき、
上記ハードウェアが自ら、各仮想計算機毎に、各仮想計
算機の入出力処理を実行する為に必要なハードウェア内
制御ブロック群(E)(サブチャネル)を動的に取得
し、該仮想計算機より入出力命令が発行された場合は、
上記ハードウェアが上記変換情報(D)(GST)によ
り、該仮想計算機の発行する入出力命令のオペランドに
含まれる仮想的な識別子(B)から互いに独立に物理的
な識別子(C)に変換して、対応するハードウェア内制
御ブロック群(E)(サブチャネル)の1員を特定し、
これを使用して入出力命令を実行し、入出力装置より上
記ハードウェア内制御ブロック群(E)(サブチャネ
ル)の1員を使用した入出力割込みが発生した場合は、
該ハードウェアが上記変換情報(D)(VATT)を使用し
て、該制御ブロック(E)(サブチャネル)の物理識別
子(C)を仮想計算機が使用する仮想的な識別子(B)
に変換し、これを使用して該仮想計算機に入出力割込み
を発生させるようにしたものであるので、ハードウェア
内部の制御情報、即ち、サブチャネル(SCH)を、ゲス
ト対応に動的に開設する機構と,ゲスト入出力構成と物
理入出力構成との間の変換機構(GST,VATT)とをハード
ウェア内部に持つことにより、ゲスト入出力処理をホス
トに割出すことなく、入出力処理を実行でき、該ホスト
でのオーバヘッドを少なくすることができる効果があ
る。As described in detail above, the virtual machine control method of the present invention is based on the information block (A) describing the input / output device configuration to be provided to a plurality of virtual machines operating on the virtual machine system. The virtual computer monitor (host) of the virtual computer system recognizes the virtual identifier (B) (guest subchannel number) of the input / output device configuration unit recognized by each virtual computer, and the physical identifier actually used by the hardware. When conversion information (D) (GST, VATT) describing the association with the unique identifier (C) (sub-channel number) is provided to the hardware by the virtual machine monitor, the information block (A) Based on the conversion information (D),
The hardware itself dynamically acquires, for each virtual machine, a control block group (E) (sub-channel) in hardware necessary to execute input / output processing of each virtual machine, and from the virtual machine. If an I / O instruction is issued,
The hardware converts the virtual identifier (B) included in the operand of the I / O instruction issued by the virtual machine into the physical identifier (C) independently of each other, based on the conversion information (D) (GST). To identify one member of the corresponding in-hardware control block group (E) (sub-channel),
When an I / O instruction is executed by using this and an I / O interrupt occurs from the I / O device using one of the above-mentioned hardware control block group (E) (sub-channel),
The hardware uses the conversion information (D) (VATT) to convert the physical identifier (C) of the control block (E) (sub-channel) into a virtual identifier (B) used by a virtual machine.
Since this is used to generate an input / output interrupt in the virtual machine, the control information inside the hardware, that is, the sub-channel (SCH) is dynamically opened for the guest. Hardware and a conversion mechanism (GST, VATT) between the guest I / O configuration and the physical I / O configuration, so that I / O processing can be performed without allocating guest I / O processing to the host. And has the effect of reducing overhead at the host.
第1図は本発明の仮想計算機制御方法の原理図, 第2図は本発明の一実施例を示した図, 第3図は従来の仮想計算機システムにおける入出力処理
方式を示した図, である。 図面において、 020,031,032は物理サブチャネル,又は、サブチャネル
(SCH), 041,042は仮想サブチャネル(VSCH), 101はゲストA,又は、ゲスト, 102はゲストB,又は、ゲスト, 103は仮想計算機モニタ,又は、ホスト, 104はハードウェア,105は入出力装置(IOD), 201は中央処理装置(CPU), 203は主記憶装置(MSU), 205はハードウェア専用領域(HSA), 206は入出力プロセッサ(IOP), 207はアドレス変換テーブル(ATT), 208,209はチャネル(CHE), 210,211は入出力制御装置(IOC), 214,215は仮想サブチャネルテーブル(GST), 216は仮想アドレス変換テーブル(VATT), Aは情報ブロック, Bは仮想的な識別子,又は、仮想識別子, Cは物理的な識別子,又は、物理識別子, Dは変換情報, をそれぞれ示す。FIG. 1 is a diagram showing the principle of the virtual machine control method of the present invention, FIG. 2 is a diagram showing an embodiment of the present invention, and FIG. 3 is a diagram showing an input / output processing method in a conventional virtual machine system. is there. In the drawing, 020,031,032 is a physical subchannel or subchannel (SCH), 041,042 is a virtual subchannel (VSCH), 101 is a guest A or guest, 102 is a guest B or guest, 103 is a virtual machine monitor, Or, the host, 104 is hardware, 105 is an input / output device (IOD), 201 is a central processing unit (CPU), 203 is a main storage device (MSU), 205 is a dedicated hardware area (HSA), and 206 is input / output Processor (IOP), 207 is an address translation table (ATT), 208 and 209 are channels (CHE), 210 and 211 are input / output control units (IOC), 214 and 215 are virtual subchannel tables (GST), 216 is a virtual address translation table (VATT) , A indicates an information block, B indicates a virtual identifier or a virtual identifier, C indicates a physical identifier or a physical identifier, and D indicates conversion information.
Claims (1)
計算機システム上で動作する複数個の仮想計算機に提供
されるべき入出力装置構成を記述した情報ブロックが外
部よりロードされて、 該ロードされた情報ブロックに基づいて、該仮想計算機
システムの仮想計算機モニタであるホストが、各仮想計
算機が認識する入出力装置構成単位の仮想的なゲストサ
ブチャネル番号である第1の識別子と、入出力処理ブロ
セッサのマイクロプログラム実行手段が、実際に使用す
る物理的なサブチャネル番号である第2の識別子との対
応関係を記述する変換情報を該マイクロプログラム実行
手段に提供したとき、上記情報ブロックと、上記変換情
報とに基づき、上記マイクロプログラム実行手段が、各
仮想計算機の入出力処理を実行する為に必要な物理サブ
チャネル群を動的に取得し、 該取得した物理サブチャネルを使用した入出力動作時に
おいて、該入出力動作時における各仮想計算機から見た
入出力処理及び入出力装置構成単位の状況を、各仮想計
算機単位及び各入出力装置構成単位に、上記物理サブチ
ャネル群内の各物理サブチャネル内に保持し、この物理
サブチャネル群内の各物理サブチャネルに対応する上記
第2の識別子であるサブチャネル番号と、上記第1の識
別子である仮想的なゲストサブチャネル番号との間の対
応関係情報を、上記マイクロプログラム実行手段が、上
記変換情報に保持することにより、 各仮想計算機より入出力命令が発行された場合は、上記
マイクロプログラム実行手段が、上記変換情報により、
各仮想計算機の発行する入出力命令のオペランドに含ま
れる上記第1の識別子であるゲストサブチャネル番号か
ら、上記第2の識別子であるサブチャネル番号に変換し
て、対応する物理サブチャネル群の一つを特定し、該特
定した物理サブチャネルを使用して入出力命令を実行
し、 各入出力装置から上記物理サブチャネル群の一つを使用
した入出力割り込みが発生した場合、上記マイクロプロ
グラム実行手段が、上記変換情報を使用して、上記物理
サブチャネル群のサブチャネル番号である上記第2の識
別子を、各仮想計算機が使用している仮想的なゲストサ
ブチャネル番号である第1の識別子に変換して、対応す
る仮想計算機に上記入出力割り込みを発生させることを
特徴とする仮想計算機制御方法。At the time of initialization of a virtual machine system, an information block describing an input / output device configuration to be provided to a plurality of virtual machines operating on the virtual machine system is loaded from the outside, and the loaded information block is loaded. Based on the information block, the host, which is a virtual machine monitor of the virtual machine system, has a first identifier which is a virtual guest subchannel number of an input / output device configuration unit recognized by each virtual machine, and When the microprogram execution means of the processor provides the microprogram execution means with conversion information describing a correspondence relationship with a second identifier which is a physical subchannel number actually used, the information block includes: Based on the conversion information, the above-mentioned microprogram execution means performs the physical processing necessary for executing the input / output processing of each virtual machine. During the input / output operation using the obtained physical sub-channel, the status of the input / output processing and the status of the input / output device configuration unit viewed from each virtual machine at the time of the input / output operation are obtained. For each virtual machine unit and each input / output device configuration unit, the second identifier is stored in each physical subchannel in the physical subchannel group and is the second identifier corresponding to each physical subchannel in the physical subchannel group. The microprogram execution means stores the correspondence information between the sub-channel number and the virtual guest sub-channel number as the first identifier in the conversion information, thereby inputting / outputting from / to each virtual computer. When the instruction is issued, the microprogram execution means uses the conversion information to
The guest sub-channel number, which is the first identifier, included in the operand of the I / O instruction issued by each virtual machine is converted into the sub-channel number, which is the second identifier, and one of the corresponding physical sub-channel groups is converted. And executing an I / O instruction using the specified physical sub-channel. When an I / O interrupt using one of the physical sub-channel groups is generated from each I / O device, the micro program execution is performed. The means uses the conversion information to replace the second identifier which is a sub-channel number of the physical sub-channel group with a first identifier which is a virtual guest sub-channel number used by each virtual machine. And causing the corresponding virtual machine to generate the input / output interrupt.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63267529A JP2610966B2 (en) | 1988-10-24 | 1988-10-24 | Virtual computer control method |
AU43708/89A AU614673B2 (en) | 1988-10-24 | 1989-10-24 | An input and output processing system for a virtual computer |
EP89310954A EP0366416B1 (en) | 1988-10-24 | 1989-10-24 | An input and output processing system for a virtual computer |
DE68927627T DE68927627T2 (en) | 1988-10-24 | 1989-10-24 | Input / output processing system for a virtual machine |
KR1019890015297A KR920004409B1 (en) | 1988-10-24 | 1989-10-24 | I/o processing system for virtual computer |
CA002001298A CA2001298C (en) | 1988-10-24 | 1989-10-24 | Input and output processing system for a virtual computer |
US07/928,180 US5276815A (en) | 1988-10-24 | 1992-08-14 | Input and output processing system for a virtual computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63267529A JP2610966B2 (en) | 1988-10-24 | 1988-10-24 | Virtual computer control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02113339A JPH02113339A (en) | 1990-04-25 |
JP2610966B2 true JP2610966B2 (en) | 1997-05-14 |
Family
ID=17446097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63267529A Expired - Fee Related JP2610966B2 (en) | 1988-10-24 | 1988-10-24 | Virtual computer control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2610966B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3503948B2 (en) * | 1995-09-13 | 2004-03-08 | 株式会社 日立製作所 | Electronic computer system |
US20060253682A1 (en) * | 2005-05-05 | 2006-11-09 | International Business Machines Corporation | Managing computer memory in a computing environment with dynamic logical partitioning |
JP5320140B2 (en) * | 2009-04-14 | 2013-10-23 | 株式会社日立製作所 | Computer system, interrupt relay circuit, and interrupt relay method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59117620A (en) * | 1982-12-24 | 1984-07-07 | Hitachi Ltd | Computer system |
JPH0619747B2 (en) * | 1984-01-18 | 1994-03-16 | 株式会社日立製作所 | I / O instruction execution method, I / O interrupt processing method, and computer system using them |
-
1988
- 1988-10-24 JP JP63267529A patent/JP2610966B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH02113339A (en) | 1990-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2500045B2 (en) | I / O channel subsystem call instruction control method and CEC interpretation execution method | |
JP2500095B2 (en) | Method and system for sharing input / output resources | |
US4885681A (en) | I/O Execution method for a virtual machine system and system therefor | |
US4814975A (en) | Virtual machine system and method for controlling machines of different architectures | |
US9734096B2 (en) | Method and system for single root input/output virtualization virtual functions sharing on multi-hosts | |
US4347565A (en) | Address control system for software simulation | |
US5553291A (en) | Virtual machine control method and virtual machine system | |
US9207939B2 (en) | Performing shadowing function by virtual machine manager in two-level virtual machine environment | |
US7484032B2 (en) | Fault tolerant computer system | |
KR100406197B1 (en) | Method and apparatus for assigning resources to logical partition clusters | |
JPH02208740A (en) | Virtual computer control system | |
WO1997010549A1 (en) | Electronic computer system | |
JPH06187178A (en) | Input and output interruption control method for virtual computer system | |
JPH0689253A (en) | Data processing system including device driver having general-purpose operating system interface | |
JPS61275949A (en) | Virtual machine mode type computer having numerous protective rings | |
JPS6083168A (en) | Multiprocessor system control | |
US5392409A (en) | I/O execution method for a virtual machine system and system therefor | |
JPH0430053B2 (en) | ||
US5146605A (en) | Direct control facility for multiprocessor network | |
US5276815A (en) | Input and output processing system for a virtual computer | |
JP2610966B2 (en) | Virtual computer control method | |
KR100363378B1 (en) | Method and apparatus for creating and identifying logical partition clusters | |
CA2001298C (en) | Input and output processing system for a virtual computer | |
JP2864255B2 (en) | Virtual computer system | |
JPS6336012B2 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |