JPS62251838A - Virtual computer system - Google Patents

Virtual computer system

Info

Publication number
JPS62251838A
JPS62251838A JP61096053A JP9605386A JPS62251838A JP S62251838 A JPS62251838 A JP S62251838A JP 61096053 A JP61096053 A JP 61096053A JP 9605386 A JP9605386 A JP 9605386A JP S62251838 A JPS62251838 A JP S62251838A
Authority
JP
Japan
Prior art keywords
virtual machine
address
virtual
lower limit
vmid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP61096053A
Other languages
Japanese (ja)
Inventor
Hidenori Umeno
梅野 英典
Toshiharu Tanaka
俊治 田中
Yoshio Ukai
鵜飼 良夫
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 JP61096053A priority Critical patent/JPS62251838A/en
Publication of JPS62251838A publication Critical patent/JPS62251838A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

PURPOSE:To determine the specification of a virtual computer identifier independently of the capacity of an I/O device by arranging plural identifiers and a registration table for the upper and lower addresses of storage areas corresponding to the identifiers in the I/O device. CONSTITUTION:An instruction 400 is inputted to an instruction execution control part 150, decoded by an instruction code and interpreted as a virtual computer identifier (VMID) registering instruction. An instruction execution part 150 sends the specified VMID, the contents of a general register and the upper and lower limit addresses to an upper/lower limit entry control part 420 in the I/O device. If an entry has a blank, the control part 430 registers the transmitted VMID and the upper and lower limit addresses alpha, beta in a registration table 440. In this case, a hardware corresponding to the VMID determines the VMID (HVMID) to be discriminated and registers the determined VMID in the same entry.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、仮想計算機システムに関し、特に仮想計算機
識別子の決定に際して、ハードウェアの実際の8藍とは
独立に仮想計算機システムの制御プログラムVMCPが
仮想計算機識別子を作る場合に有効な仮想計算機システ
ムに関するものである。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a virtual computer system, and in particular, in determining a virtual machine identifier, the control program VMCP of the virtual computer system is executed independently of the actual hardware. The present invention relates to a virtual computer system that is effective when creating a virtual computer identifier.

〔従来の技術〕[Conventional technology]

仮想j1算機システムは、第8図に示すように。 The virtual J1 computer system is as shown in FIG.

実計算機システム100の下に、これとm似のアーキテ
クチャを有する仮想計算機VMI、VM2゜・・・VM
nが定義される。各仮想計算機上で1よ、各々オペレー
ティングシステムO3,、os2.  ・・・・OS 
、1が並行して動作し、その下で各ユーザプログラムが
動くことになる。各仮想計算機は。
Below the real computer system 100, there are virtual computers VMI, VM2゜...VM having architectures similar to this one.
n is defined. 1 on each virtual machine, each operating system O3, os2. ...OS
, 1 run in parallel, and each user program runs under it. Each virtual machine.

実計算機システム!00と類似の命令セット、メモリ、
Iloを備えているが、それらをシミュレーシJンで実
現し、VM群をスケジュールしているのが実計算機シス
テム100上にある制御プログラムVMMである。
Real computer system! 00 and similar instruction set, memory,
It is the control program VMM on the real computer system 100 that realizes them by simulation and schedules the VM group.

ところで、このような従来の仮想計算機システムでは1
例えば、特開昭55−4232G号公報に示されている
ように、CPUからチャネル側(つまり、I10プロセ
ッサ側)に、仮想計算機の主記憶装置として与えられて
いる実計算機システム100の主記憶装置の領域を識別
する情報を送出している。
By the way, in such a conventional virtual computer system, 1
For example, as shown in Japanese Unexamined Patent Publication No. 55-4232G, the main memory of a real computer system 100 is provided as the main memory of a virtual machine from the CPU to the channel side (that is, the I10 processor side). The information identifying the area is being sent.

また、第8図に示すように、各仮想計算機VM11 V
Mz +  ” ・VMt1上では、それぞれノ。
In addition, as shown in FIG. 8, each virtual machine VM11 V
Mz + ”・On VMt1, respectively.

SL+○S2.・・・・○Snが動作する。各VMは、
実計算機と類似するアーキテクチャを有し、実計算機】
00上で動作する場合と全く同じ環境を各OSに対して
与えるものである。そして、仮想記憶を有する計算機シ
ステムでは、実アドレスを絶対アドレスに変換するため
のプレフィクス変換が存在する。これは、資料IBM/
システム370の動作原理(P ri、nciples
  of  ○perat、ion)GΔ22−700
りに詳述されており、本明ja書では、プレフィクス変
換は直接関係がないため、これを無視し、実アドレスと
絶対アドレスとを区別しないで用いることにする。仮想
計算機の性能を上げるために、 TL[l (Tran
slaeion  Look−asideB uffa
r)ど呼ばれるアドレス変換の早見表が用意されており
、それには仮想アドレスと対応する実アドレスが登録さ
れている。このTLBの登録内容を検索することにより
、もし登録されていれば、それを読み出すだけでアドレ
ス変換されるので51マシンサイクル以下で変換処理が
行える。
SL+○S2. ...○Sn operates. Each VM is
A real computer with an architecture similar to that of a real computer]
This provides each OS with exactly the same environment as when running on 00. In a computer system having virtual memory, prefix conversion exists for converting a real address into an absolute address. This is the document IBM/
Principles of operation of system 370
of ○perat, ion) GΔ22-700
In this specification, since prefix conversion is not directly related, it will be ignored and real addresses and absolute addresses will be used without distinction. In order to improve the performance of the virtual machine, TL[l (Tran
slaeion Look-aside Buffa
r) A quick reference table for address conversion is prepared, in which virtual addresses and corresponding real addresses are registered. By searching the registered contents of this TLB, if it is registered, the address can be converted just by reading it, so that the conversion process can be performed in 51 machine cycles or less.

なお、実計算機システムでは、TLB内に、アドレス変
換テーブルの先頭アドレス(ST○)、仮想アドレスと
実アドレスとの対応等が登録されるが。
Note that in a real computer system, the start address (ST○) of the address translation table, the correspondence between virtual addresses and real addresses, etc. are registered in the TLB.

VM I D(仮想計算機識別子)の登録フィールドは
必要がない。
There is no need for a VM ID (virtual machine identifier) registration field.

しかし、仮想計算機システムでは、各VM間で同一のS
T○が存在し得るため、VMIDがTLB内にないと、
VMスイッチで切換えられる度にTLBを無効化しなけ
ればならなくなる。これは、TLBの有効利用を阻害す
ることになる。このため5Ek近、仮想計算機システム
の利用範囲が広がるに伴って、T 1. +3内にVM
IDを有する計算機システムが出現してきた(例えば、
特開昭55−113182号および特開昭53 101
234号各公報にそれぞれ記載されている)。これらの
計算機のあるものは、TLB内に仮想計算機識別T−(
VMID)に対応する領域識別子を備えており、また他
のものはT [、、B内に直接VMIDを登録している
。そして、これらは、いずれもTLI3のエントリを、
該当領域または該当VMに対してのみ有効とし、領域間
またはVM間の切換えに伴うTLBの無効化を防止する
ためである。さらに、領域内またはVM内におけるTL
I3の部分的無効化を実現するためでもある。
However, in a virtual computer system, the same S
Since T○ may exist, if the VMID is not in the TLB,
The TLB must be invalidated every time the VM switch is switched. This hinders effective use of the TLB. For this reason, near 5Ek, as the scope of use of virtual computer systems expands, T1. VM within +3
Computer systems with IDs have appeared (for example,
JP-A-55-113182 and JP-A-53-101
No. 234 (described in each publication). Some of these computers have virtual machine identification T-(
VMID), and others have VMIDs directly registered in T[,,B. And these all have TLI3 entries,
This is to make the TLB valid only for the relevant area or the relevant VM, and to prevent invalidation of the TLB due to switching between areas or between VMs. Furthermore, the TL within a region or within a VM
This is also to realize partial invalidation of I3.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

先ず、実計算機システムの主記憶+JAli!の領域を
識別する情報を送出する場合の問題点について、述べる
。(a)領域識別子を登録するテーブル(レジスタ群ま
たはメモリより構成される)の容量はハードウェアに依
存して決定され、ハードウェアモデルディペンデントと
なることが多い。ところが、領域の個数は、起動された
VMの台数および仮想計算機システムのシステム生成時
の領域の最大数等のソフトウェアi境により決定される
。従って、ハードウェア容量とは独立に決定さJ′Lる
べきものであるが、ハードウェア容量を越える領域の個
数に対してどのように対処すべきか、ハードウェア容量
に依存しないプログラム構造をとるには如何にすべきか
、という点が不明である。
First, the main memory of the actual computer system + JAli! We will discuss the problems when transmitting information that identifies the area. (a) The capacity of a table (consisting of a register group or memory) in which area identifiers are registered is determined depending on the hardware, and is often hardware model dependent. However, the number of areas is determined by the software environment, such as the number of activated VMs and the maximum number of areas when the virtual computer system is generated. Therefore, J'L should be determined independently of the hardware capacity, but how to deal with the number of areas exceeding the hardware capacity, and how to take a program structure that does not depend on the hardware capacity. It is unclear how this should be done.

(b) チャネルが主記憶袋ホへのアクセスを行う時、
領域内相対アドレスと領域識別子とを使用してアクセス
するようになっているが、この方法では1例えば、32
バイト単位に4096バイトのデータ転送を行うとする
と、32バイトごとに、409G/32=128回の領
域識別子の選択と、領域の下限(起点)アドレスの加算
と、上限(最終)アドレスとの比較チェックを行う必要
があり、これらが性能上のネックとなり易い。(C)仮
想計算1!!!識別と領域識別とは、必ずしも一致しな
い。例えば、2つの連続領域を合併して、1つの仮想計
算機が使用されることもあり得る。
(b) When the channel accesses the main memory bag,
Access is performed using an area relative address and an area identifier, but in this method, 1, for example, 32
Assuming that 4096 bytes of data are transferred in byte units, for every 32 bytes, 409G/32 = 128 selections of area identifiers, addition of the lower limit (starting point) address of the area, and comparison with the upper limit (final) address are performed. It is necessary to perform checks, and these can easily become a bottleneck in performance. (C) Virtual calculation 1! ! ! Identification and area identification do not necessarily match. For example, one virtual computer may be used by merging two consecutive areas.

次に、TLB内に領域識別子またはVMIDを登録する
場合の問題点について、述べる。
Next, problems when registering an area identifier or VMID in the TLB will be described.

TLB内の領域識別子またはVMIDの格納フィールド
の容量(ピッ1−散、例えばにビットとする)は、ハー
ドウェアに依存しており、そのピッi・数kをプログラ
ムで意識することは、プログラムのハードウェア独立性
(つまり、Mシリーズ計算機あるいは18M社システム
370シリーズ等の同一の計算機ファミリーでは、どの
機種上でも、変更なしに動作すること)に反することに
なる。
The capacity of the storage field for the area identifier or VMID in the TLB (in bits, for example) depends on the hardware, and it is difficult for the program to be aware of the number k in the program. This violates hardware independence (that is, the same computer family, such as the M series computer or the 18M System 370 series, can operate without modification on any model).

何故ならば、上記ビット数には1機種に依存して変動す
るからである。TLBについて言えば、例えば、プログ
ラムで識別するVMIDが16ビツト(従って、O〜6
5,535)で、TLB内ノvMID用ビット数が4ビ
ツト(従って、デコードする場合は、0〜15、または
、デコードしないときは4)のとき、プログラムでは、
異なるVMIDを指定しても、TLB内のVMIDは同
一・の値となってしまうため、TL[3の旧VMIDエ
ントりを無効化する必要がある。このため、もしこれを
ソフトウェアのプログラムで実施しようとすると、どう
しても、上記ビット数kを認識しなければならなくなる
。さらに、ソフトウェアプログラムの指定したVMID
のうちのどのにピッ1−がTLB内のVMIDへg!、
録されるのか、あるいは前者のVMIDをどのように変
換してTLB内のVMIDにするのか等は、全てハード
ウェアのインプルメンテーシ扇ン上の問題であるが、上
記無効化をソフトウェアプログラムで実施しようとする
と、それらの方法まで、プログラムで意識しなければな
らなくなるため、プログラムのハードウェア独立性にま
すます違反することになる。前記2つの従来例も、これ
らのことについては、同等解決方法を与えていない。
This is because the number of bits mentioned above varies depending on the model. Regarding TLB, for example, the VMID identified by the program is 16 bits (therefore, 0 to 6 bits).
5,535), when the number of vMID bits in the TLB is 4 bits (therefore, 0 to 15 when decoding, or 4 when not decoding), the program:
Even if a different VMID is specified, the VMID in the TLB will have the same value, so it is necessary to invalidate the old VMID entry in TL[3. Therefore, if this is to be implemented by a software program, the number of bits k must be recognized. Furthermore, the VMID specified by the software program
Which of the following pins is sent to the VMID in the TLB? ,
Whether the former VMID is recorded or how the former VMID is converted to the VMID in the TLB is a hardware implementation issue, but the above disabling can be done using a software program. If you try to do so, the program will have to be aware of these methods, which will further violate the program's hardware independence. The above two conventional examples also do not provide equivalent solutions to these problems.

本発明の目的は、これら従来の問題を改善し、仮想計算
機システムの制御プログラムのVMIDの1u定をI1
0プロセッサ側のハードウェア容量とは無関係に決定で
き、またTLI3内にVMIDを設ける際に、TLI3
の容量とは無関係に、ツブ1−ウェアの立場だけでVM
IDのビン1〜数を決定することができ、ハードウェア
容17に、−(ンブルメンテーションとは独立にソフト
ウェア構造を決定できる仮想計算機システムを提供する
ことにある。
The purpose of the present invention is to improve these conventional problems and to change the VMID 1u setting of the control program of the virtual computer system to I1.
0 can be determined independently of the hardware capacity of the processor side, and when providing the VMID in TLI3, TLI3
Regardless of the capacity of VM
The object of the present invention is to provide a virtual computer system that can determine the ID bins 1 to 1 and determine the software structure independently of the hardware configuration 17.

〔問題点をM決するための手段〕[Means for resolving issues]

上記目的を達成するため、本発明の仮想計算機システム
は、複数オペレーティングシステムを同時に走行させる
制御プログラムを備えた仮想計算機システムにおいて、
上記I10プロセッサ内に、1つないし複数の識別子と
該識別子に対応する主記憶装にの領域を定義する上下限
アドレスが登録されている登録テーブルを設け、CPU
から上記I10プロセッサに対して、上記制御プログラ
ムが識別する仮想計算機識別子と該仮想計算機の主記憶
装置の連続領域を定義する上下限アドレスを通知するこ
とにより、該I10プロセッサは受け取った識別子と上
下限アドレスを上記登録テーブルに登録し、該秤録テー
ブルが満杯の際には、その旨をI10プロセッサからC
PUに通知することに特徴がある。
In order to achieve the above object, a virtual computer system of the present invention includes a control program that runs multiple operating systems simultaneously.
A registration table is provided in the I10 processor in which one or more identifiers and upper and lower limit addresses defining areas in the main memory corresponding to the identifiers are registered, and the CPU
By notifying the I10 processor of the virtual machine identifier identified by the control program and the upper and lower limit addresses that define the contiguous area of the main storage of the virtual machine, the I10 processor receives the received identifier and upper and lower limits. The address is registered in the above registration table, and when the weighing table is full, a message to that effect is sent to the C from the I10 processor.
The feature is that the PU is notified.

また、制御プログラムが識別する仮想計算機識別子から
実計算機のハードウェアが識別する識別子への変換手段
とその変換後の対応結果を保持するテーブルを設け、制
御プロゲラ11が仮想計算機を起動する場合、上記変換
テーブルに対応結果を登録する際に、テーブルが満杯の
ときには、対応関係中の1つを選択して、(又は1つに
限定することが麗しいときは複数でも良いが)無効化し
、新しい対応を有効化することにも特徴がある。
In addition, a table is provided for storing a means for converting a virtual machine identifier identified by the control program into an identifier identified by the hardware of the real computer and a corresponding result after the conversion. When registering the correspondence results in the conversion table, if the table is full, select one of the correspondences, invalidate it (or multiple if it is convenient to limit it to one), and create a new correspondence. There is also a feature in activating the .

〔作  用〕[For production]

本発明の第1の実施例においては、I10プロセッサに
VM I D(仮想計算機識別子)を登録する手段と、
I10プロセッサの仮想計X’(機識別子登録表の8屋
に依存しない登録手段と、I10プロセッサ内での上記
登録表の選択およびチャネルプログラムの変換を行う手
段を設け、CPUからI10プロセッサへ、仮想計算機
システム制御プロゲラt1が指定したVMIDをI10
プロセッサ内の登録表に登録する余分を発行し、その命
令を実行する場合、登録表が満杯のときには、登録不能
である旨を命令実行結果の条件コードで、110プロセ
ツサからCPUに通知する。t、た、I10プロセッサ
がCPUから入出力装置の起動命令を受けて、該尚チャ
ネルプログラムを実行する場合。
In the first embodiment of the present invention, means for registering a VM ID (virtual machine identifier) in the I10 processor;
The I10 processor's virtual total The VMID specified by the computer system control progera t1 is I10.
When a surplus is issued to be registered in the registration table in the processor and the instruction is executed, when the registration table is full, the 110 processor notifies the CPU using the condition code of the instruction execution result that registration is impossible. t. When the I10 processor receives an input/output device activation command from the CPU and executes the corresponding channel program.

I10プロセッサ内で、上記登録表内のVMIDを選択
し、その領域の上下限アドレスを読み出し、チャネルプ
ログラムであるCCW群のアドレスおよびそのデータア
ドレスに、該当領域の下限(起点)アドレスを加えると
ともに、上限アドレスチェックを行いながら、そのCC
W群を実行する。
In the I10 processor, select the VMID in the above registration table, read the upper and lower limit addresses of that area, and add the lower limit (starting point) address of the corresponding area to the address of the CCW group that is the channel program and its data address, While checking the upper limit address, the CC
Execute W group.

さらに、第2の実施例においては、仮想計算機システム
の性能を向上させるために有効なVMIDを、ソフトウ
ェアのハードウェア独立性を保ちながら、ハードウェア
およびソフトウェアにより実現する。
Furthermore, in the second embodiment, a VMID effective for improving the performance of a virtual computer system is realized by hardware and software while maintaining the hardware independence of software.

(実施例〕 以下、本発明の実施例を1図面により詳細に説明する。(Example〕 Hereinafter, embodiments of the present invention will be described in detail with reference to one drawing.

第2図は、仮想計算機の主記憶装置の割当て方法を示す
図である。第8図における実計算機システム100の主
記憶装置200の中に、第2図に示すように、領域1.
領域2.・・・領域nを定義し、それらを各々VM1.
VM2.  ・・・・・・V M n用の主記憶装置と
して割出てる。領域1.領域2.・・領域nの下限アド
レス(つまり、起点アドレス)と上限アドレス(つまり
、最終アドレス)を、それぞれ(αl、βl)、(α2
゜β2)、・・・・・・(αn、β11)で表わす。こ
れらのアドレスは、主記憶装置200の最初のアドレス
を○とするシステム実アドレスである。前述のように、
本明a!書では、実アドレスと絶対アドレスとの区別は
しない。また、一般には、実アドレスは、プレフィラス
変換により絶対アドレスに変換されるが、説明を簡単に
するため、本明細書では、プレフィラス変換も無視する
ことにする。
FIG. 2 is a diagram showing a method of allocating a main storage device of a virtual machine. In the main storage device 200 of the real computer system 100 in FIG. 8, as shown in FIG. 2, there is an area 1.
Area 2. . . . Define areas n and assign them to VM1.
VM2. ...It is identified as the main storage device for VMn. Area 1. Area 2. ...The lower limit address (that is, the starting address) and the upper limit address (that is, the final address) of area n are (αl, βl) and (α2
It is expressed as ゜β2), ... (αn, β11). These addresses are system real addresses, with the first address of the main storage device 200 being ○. As aforementioned,
Honmei a! The book does not distinguish between real addresses and absolute addresses. Further, although a real address is generally converted to an absolute address by prefilative conversion, in order to simplify the explanation, in this specification, prefilative conversion will also be ignored.

プレフィラス変換とは、いま、プレフィクス値をγペー
ジとした場合(1ページは4096バイトとする)。
The prefix conversion is when the prefix value is γ page (one page is 4096 bytes).

実アドレスXページに対して。For real address X page.

X=γのとき、絶対アドレス0ページを、x=Qのとき
、絶対アドレスγページを、X≠O,x≠γのとき、 絶対アドレスはXそのものを、 それぞれ対応させる変換方法である。
This conversion method corresponds to the absolute address 0 page when X=γ, to the absolute address γ page when x=Q, and to the absolute address X itself when X≠O and x≠γ.

ところが、■/○プロセッサにおけるアドレスの扱いは
、割込み情報をプレフィクスに格納する場合を除いて、
CCWアドレスおよびCCWのデータアドレスは、全て
絶対アドレスで取り扱われることが多い。そこで、本明
細書でも、その方法を用いて、I10プロセッサにおけ
るデータ転送アドレスとして取り扱い、以下の説明では
、実アドレスと絶対アドレスとを区別せずに使用する。
However, the handling of addresses in ■/○ processors is as follows, except when interrupt information is stored in a prefix.
CCW addresses and CCW data addresses are often treated as absolute addresses. Therefore, in this specification as well, this method is used to handle the address as a data transfer address in the I10 processor, and in the following explanation, real addresses and absolute addresses will be used without distinction.

第3図は、第2図の領域(下限アドレスα、上限アドレ
スβ)を主記憶装置として持つ仮想計算機のメモリ階層
を表わす図である。第3図において、300はこの仮想
計算機の主記憶装置であって、実計算機システムの主記
憶装置200の領域(下限α、上下限)を占有しており
、領域内実アドレス(領域の先頭を0とした相対アドレ
ス)に定数αを加えることにより、システム実アドレス
に変換することができる。310は、この仮想計算機上
のOSが自分自身の仮想記憶を構成管理するときの仮想
空間であ、る。この仮想計算機上のOSが用意するチャ
ネルプログラム、すなわちccwg320は、この仮想
計算機の主記憶装ff!300上に存在し、そのCCW
アドレスおよびCCW内のデータアドレスは全て領域内
実アドレスで取り扱われるものとする。以上説明した第
2図および第3図の構成は、従来の技術と全く同じであ
る。そして、第2図における領域の定義、および第3図
におけるメモリ階層は、全て仮想計算機システム制御プ
ログラムVMMおよび仮想計算機上のOSにより定義さ
れ、かつ管理されるものである。
FIG. 3 is a diagram showing the memory hierarchy of a virtual machine that has the area shown in FIG. 2 (lower limit address α, upper limit address β) as a main storage device. In FIG. 3, 300 is the main storage device of this virtual machine, which occupies the area (lower limit α, upper limit By adding a constant α to the relative address), it can be converted to a system real address. 310 is a virtual space in which the OS on this virtual machine configures and manages its own virtual memory. The channel program prepared by the OS on this virtual machine, ie, ccwg320, is the main memory ff! of this virtual machine. 300 and its CCW
It is assumed that all addresses and data addresses in the CCW are handled as real addresses within the area. The configurations of FIGS. 2 and 3 described above are exactly the same as the conventional technology. The area definition in FIG. 2 and the memory hierarchy in FIG. 3 are all defined and managed by the virtual machine system control program VMM and the OS on the virtual machine.

第1図は、本発明の一実施例を示す仮想計算機システム
の主要部構成図である。第1図において。
FIG. 1 is a block diagram of the main parts of a virtual computer system showing an embodiment of the present invention. In FIG.

200は実計算機システムの主記憶装置、110は中央
処理装置、120はI10プロセッサ(■op)、47
0は入出力制御装置(IOC)、400はVMrD登録
命令、800はf10起動命令。
200 is the main storage of the actual computer system, 110 is the central processing unit, 120 is the I10 processor (■op), 47
0 is an input/output control device (IOC), 400 is a VMrD registration command, and 800 is an f10 activation command.

700はサブチャネル制御ブロック領域、150はCP
U内命全命令実行制御部30は上下限エントリ制御部、
440はIOP内(7)VM I D登録表、450は
CCW実行制御部、460はサブチャネルレジスタ群で
ある。CPUI 10が実行する命令400は、第4図
に示すように、コード部分、汎用レジスタ番号132.
変位D2から成り、実行に際しては、汎用レジスタB2
の内容(B2)と変位D2の値の和、([32)+D2
が第4図の420に示ように、VMIDを含んでいる。
700 is a subchannel control block area, 150 is a CP
The U-instruction all instruction execution control unit 30 is an upper and lower limit entry control unit;
440 is an IOP (7) VM ID registration table, 450 is a CCW execution control unit, and 460 is a subchannel register group. As shown in FIG. 4, the instruction 400 executed by the CPUI 10 includes a code portion, a general register number 132.
consists of displacement D2, and upon execution, general register B2
The sum of the content (B2) and the value of displacement D2, ([32)+D2
contains the VMID, as shown at 420 in FIG.

このVMrDは、仮想計算機システムの制御プログラム
VMMが任、意に決めたものであり、I10プロセッサ
のハードウェア容量とは無関係に決定される。さらに、
第2図に示した領域の番号VMI、VM2゜・・・VM
nとも独立に決定できる値である。そして、命令のオペ
ランドとしては、汎用レジスタ1(QRI)の内容41
0を使用する。第4図の命令オペランド410に示すよ
うに、汎用レジスタ(ERIは、当該仮想計算機の上記
憶装匝の下限アドレスα、上限アドレスβを含む。ビッ
トアドレス0の位置と、ビットアドレス16の位置のビ
ソ1・値は、0でなければならない。
This VMrD is arbitrarily determined by the control program VMM of the virtual computer system, and is determined independently of the hardware capacity of the I10 processor. moreover,
Area numbers shown in Figure 2 VMI, VM2゜...VM
Both n and n are values that can be determined independently. The operand of the instruction is the contents 41 of general register 1 (QRI).
Use 0. As shown in the instruction operand 410 in FIG. 4, the general-purpose register (ERI) includes the lower limit address α and upper limit address β of the upper storage unit of the virtual machine. Biso1 value must be 0.

第1図において5この命令400がCPUll0で、次
のように実行される。すなわち、命令400は、データ
1sooを経由してCPUll0の命令実行制御部15
0に取り込まれる。命令実行制御部+50は、これを命
令コードにより解読し、CPUll0からI10プロセ
ッサ120へのVM r ou録命令であると解釈する
。命令実行制御部150の動作は、従来と全く同じであ
る。
In FIG. 1, this instruction 400 is executed by CPUll0 as follows. That is, the instruction 400 is sent to the instruction execution control unit 15 of CPUll0 via data 1soo.
It is taken into 0. The instruction execution control unit +50 decodes this using the instruction code and interprets it as a VM r ou record instruction from the CPUll0 to the I10 processor 120. The operation of the instruction execution control unit 150 is completely the same as the conventional one.

また、命令実行制御部150は、線510を経由して、
指定されたVMIDと汎用レジスタGRIの内容・上下
限アドレスを、I10プロセッサ120の上下限エント
リ制御部430に送る。制御部430は、伝達されたV
M I Dと上下限アドレスα、βを、登録表440に
登録することを試みる。登録表440は、レジスタまた
はI10プロセッサのローカルストレンジとする。この
とき、もし登録表440に空きのエントリがあれば、そ
こに伝達されたVMIDと上下限アドレスα、βをイ)
録する。この場合、VMTDに対応するハードウェアが
識別可能なVMID(以下、1−IVM丁りと呼ぶ)を
決定し、同一エントリに登録する。
In addition, the instruction execution control unit 150 via the line 510
The specified VMID and the contents and upper and lower limit addresses of the general-purpose register GRI are sent to the upper and lower limit entry control unit 430 of the I10 processor 120. The control unit 430 controls the transmitted V
An attempt is made to register MID and upper and lower limit addresses α and β in the registration table 440. The registration table 440 may be a register or a local strange of the I10 processor. At this time, if there is an empty entry in the registration table 440, enter the VMID and upper and lower limit addresses α and β transmitted there.
Record. In this case, a VMID (hereinafter referred to as 1-IVM) that can be identified by the hardware corresponding to the VMTD is determined and registered in the same entry.

+1VMIDは1例えば、登録表440のエントり番号
でもよいが、いずれにしても、その値の範囲は、登録表
440の大きさであるハードウェア容量により決定され
る。HVMIDの値は、ラフ1〜ウエアからは見えない
値であり、ソフトウェアは。
+1VMID may be 1, for example, the entry number of the registration table 440, but in any case, the range of its value is determined by the hardware capacity, which is the size of the registration table 440. The HVMID value is a value that is invisible to rough 1 to wear, but not to software.

登録表440の大きさに留意する必要はない、このよう
に、登録表440への情報の登録後、I10プロセッサ
120のエントリ制御部430は、CPUI 10の命
令制御部150へ線510を経由して条件コード0を返
送し、正常終了を示す。
There is no need to pay attention to the size of the registration table 440. Thus, after registering the information in the registration table 440, the entry control unit 430 of the I10 processor 120 sends the information to the instruction control unit 150 of the CPUI 10 via the line 510. A condition code of 0 is returned to indicate normal completion.

また、登録表440が満杯のときには、登録できないた
め、エントリ制御部430は、m510を経由して1条
件コード1をCPUll0の命令制御部150に返送す
る。また、元来、登録表440自体の機能を備えていな
い場合、あるいはI10プaセ、7す120側にVMI
Dfi録機能430゜440がない場合には、この命令
の実行は何も行われず、ただ結果の条件コードを3にす
るのみにする。さらに、上下限エントリ制御部430は
、登録表440に登録するとき、仮想計算機システム制
御プログラムが指定したVMIDと同一のVMIDが存
在するときには、それを新しく指定さ、1シた内容に全
てにき替えるものとする。これによって、イテ録表41
10の内容を更新することが可能である。さらに、エン
トリ制御部430は、異なるVMTDに対しては、異な
るI−IVMIDを対応させるものとする。これにより
、I10プロセッサ120は、以後、ビット数の少ない
)IVM I Dにより仮想計算機を識別することが可
能となる。
Furthermore, when the registration table 440 is full, registration is not possible, so the entry control unit 430 returns 1 condition code 1 to the instruction control unit 150 of CPUll0 via m510. In addition, if the function of the registration table 440 itself is not originally provided, or if VMI is
If the Dfi recording functions 430 and 440 are not present, no execution of this instruction is performed, and only the resulting condition code is set to 3. Furthermore, when registering in the registration table 440, if there is a VMID that is the same as the VMID specified by the virtual machine system control program, the upper/lower limit entry control unit 430 specifies it as a new one and writes all the contents in one file. shall be replaced. As a result, iteration table 41
It is possible to update the contents of 10. Further, the entry control unit 430 associates different I-IVMIDs with different VMTDs. As a result, the I10 processor 120 can thereafter identify virtual machines using the IVM ID (which has a small number of bits).

また、VM I D登録命令400は、第5図に示すオ
ペランド420’ 、410’ を持つこともできる。
The VM ID registration instruction 400 can also have operands 420' and 410' shown in FIG.

第5図は、登録削除命令である。この場合、これらのオ
ペランドが■/○プロセッサ120の上下限エン1へり
制御部430に送られることは、第4図の場合と同じで
あるが、上下限エントリ制御部430は、汎用レジスタ
GRIのピッ1−0の値が1であることを′N断すると
、指定されたVMIDのエン1〜りをイ?、録表440
の中から探し、もし存在すれば、そのエントリを削除す
るように動作する。これによって、例えば、仮想計算機
が停止され、消失したとき(例えば、fl og  o
ff L/たとき)等では、I10プロセッサ120内
の該当7MIDエントリを削除することができる。
FIG. 5 shows a registration deletion command. In this case, these operands are sent to the upper/lower limit entry control unit 430 of the ■/○ processor 120, as in the case of FIG. If it is determined that the value of pin 1-0 is 1, the specified VMID's en 1-ri will be turned on. , record 440
If it exists, it will delete that entry. This allows, for example, when a virtual machine is stopped and disappears (e.g., fl og o
ff L/tatoki) etc., the corresponding 7MID entries in the I10 processor 120 can be deleted.

次に、実際に入出力装置に対して、入出力動作を起動す
るときには、その起動命令(第1図に示す800)をC
PUll0が発行する。この命令のオペランドは、第7
図に示すように、CCW群の先頭アドレス、仮想計算機
システム制御プログラムが指定したVMID等を含む制
御ブロック(メモリ200上のあるエリア)810のア
ドレスを、([32)十D2により指定し、汎用レジス
タGR1内(第7図の820)に入出力装置に対応する
サブチャネル番号を含むものである。サブチャネル番号
が入出力装置と1対1に対応することは、従来と同じで
ある。
Next, when actually starting an input/output operation for an input/output device, the activation command (800 shown in FIG. 1) is
Issued by PUll0. The operand of this instruction is the seventh
As shown in the figure, the address of a control block (an area on the memory 200) 810 containing the start address of the CCW group, the VMID specified by the virtual machine system control program, etc. is specified by ([32) +D2, and the general purpose The register GR1 (820 in FIG. 7) contains the subchannel number corresponding to the input/output device. As in the prior art, subchannel numbers have a one-to-one correspondence with input/output devices.

次に、この入出力装置起動命令800の動作を説明する
。こり命令800が発行されたとき、該当のVMIDに
対して、既に前述した命令400(第4図参照)により
そのVMIDと上下限が正常に■/○プロセッサ120
側に登録済みであるとする。入出力装置起動命令800
は、線500を通してCPUll0の命令実行制御部1
50に読み込まれる。命令実行制御部150は、この命
令のオペランド(汎用レジスタGRI)内のサブチャネ
ル番号から、該当のサブチャネル制御ブロックUCWを
検出する。UCW群は、第1図の主記憶装置200のハ
ードウェアシステムエリア(以下。
Next, the operation of this input/output device activation instruction 800 will be explained. When the error instruction 800 is issued, the VMID and the upper and lower limits are set normally for the corresponding VMID by the above-mentioned instruction 400 (see FIG. 4).
Assume that it has already been registered on the side. I/O device startup instruction 800
is the instruction execution control unit 1 of CPUll0 through the line 500.
50. The instruction execution control unit 150 detects the corresponding subchannel control block UCW from the subchannel number in the operand (general-purpose register GRI) of this instruction. The UCW group is a hardware system area (hereinafter referred to as "hardware system area") of the main storage device 200 in FIG.

11 S A、 )内のあるエリア700に存在する。11 SA, ) exists in a certain area 700.

ItsAは、主記憶袋[200内にあるが、ソフトウェ
アからは直接参照できないところに存在する。この領域
に、各サブチャネル対応の制御ブロックUCWが存在す
る。この中の1つのUCWを取り出して示したものが、
第6図のUCW710である。
ItsA is located in the main memory bag [200, but exists in a location that cannot be directly referenced from software. A control block UCW corresponding to each subchannel exists in this area. One UCW extracted from this is shown below.
This is UCW710 in FIG.

命令実行制御部150は、該当するUCWを検出すると
、そこにオペランド81O(第7図参照)の内容、CC
WアドレスとVMID等を書き込む。
When the instruction execution control unit 150 detects the corresponding UCW, it writes there the contents of the operand 81O (see FIG. 7) and the CC
Write the W address, VMID, etc.

命令実行部150は、さらにそのVMIDを線510を
経由して上下限エントリ制御部430に送る。エントリ
制御部430は、伝達されたVM丁りが登録表440に
登録されているか否かを判断し、登録されていれば、対
応する11VMIDを読み出して、線530を経由して
、サブチャネル制御ブロックUCWに−Hき込む(第6
図参照)。もし、登録表440に該当するVMIDが登
録されていないときには2条件コード3を線510経山
でCPUll0の命令実行制御部150に報告し、実行
を終了する。登録表440に存在する場合には、さらに
そのUCWを入出力起動要求キューに登録し、線520
を経由して入出力起動信号をI10プロセッサ120内
のCCW実行制御部450に送る。これにより、入出力
起動命令800の実行は、正常に条件コードOで終了し
、CPU110は次の命令の実行に移る。なお、上記入
出力要求キューについては、従来の技術と同じであるた
め、説明および図示を省略する。r10プロセッサ12
0内のCCV実行制御部450は、各サブチャネルの入
出力起動要求をスケジュールし、逐次、並列に各サブチ
ャネルの入出力動作を規定するCCWを実行していくが
、その方法は次のようにして行われる。すなわち、CC
W実行制御部450は、上記入出力起動要求キュー内の
サブチャネルの制御ブロックUCW(第6図参照)に線
530を経由してアクセスし、その中のHVM I D
とCCWアドレスを読み出し、線580を経由して、サ
ブチャネルレジスタ群460の該当サブチャネルに、上
記HVMI Dと00wアドレスとを書き込む。以後、
CCW実行制御部450は、該当サブチャネルレジスタ
460から、線55oを経由してIIVMIDとC0w
アドレスを読み出し、HVMIDを上下限エントリ制御
部430に、線570を経由して送り出し、登録表44
0の該当エントリから1540を経由して上下限α、β
を読み出す、これにより、以後、00wアドレスおよび
CCWのデータアドレスに下限アドレスαを加えて、上
限アドレスβを越えないが否かをチェックしながら、指
定されたCCWを該当サブチャネルに対して実行してい
く、このようにして、アドレス変換されたCcwは、逐
次a560を経由して入出力制御袋[(I 0C)47
0に送られ、そこで解釈実行されていく。なお、IOC
以降の動作は、従来の場合と同じであるため、説明を省
略する。
The instruction execution unit 150 further sends the VMID to the upper and lower limit entry control unit 430 via the line 510. The entry control unit 430 determines whether or not the transmitted VM list is registered in the registration table 440, and if it is registered, reads the corresponding 11 VMID and performs subchannel control via the line 530. Enter -H into block UCW (6th
(see figure). If the corresponding VMID is not registered in the registration table 440, the 2nd condition code 3 is reported to the instruction execution control unit 150 of the CPUll0 via the line 510, and the execution is terminated. If the UCW exists in the registration table 440, the UCW is further registered in the input/output activation request queue and sent to the line 520.
The I/O activation signal is sent to the CCW execution control unit 450 in the I10 processor 120 via the I10 processor 120. As a result, the execution of the input/output activation instruction 800 normally ends with condition code O, and the CPU 110 moves on to execution of the next instruction. Note that the input/output request queue described above is the same as that of the conventional technology, and therefore description and illustration thereof will be omitted. r10 processor 12
The CCV execution control unit 450 in CCV0 schedules input/output activation requests for each subchannel, and executes CCW that defines input/output operations for each subchannel sequentially and in parallel.The method is as follows. It is carried out as follows. That is, C.C.
The W execution control unit 450 accesses the subchannel control block UCW (see FIG. 6) in the input/output activation request queue via the line 530, and accesses the HVM ID in the subchannel control block UCW (see FIG. 6).
and CCW address, and writes the above HVM ID and 00w address to the corresponding subchannel of subchannel register group 460 via line 580. From then on,
The CCW execution control unit 450 receives IIVMID and C0w from the corresponding subchannel register 460 via a line 55o.
Reads the address, sends the HVMID to the upper and lower limit entry control unit 430 via line 570, and sends it to the registration table 44.
Upper and lower limits α and β from the corresponding entry of 0 via 1540
As a result, from now on, the lower limit address α is added to the 00w address and the CCW data address, and the specified CCW is executed for the corresponding subchannel while checking whether the upper limit address β is not exceeded. In this way, the address converted Ccw is sequentially sent to the input/output control bag [(I 0C) 47 via a560.
0, where it is interpreted and executed. In addition, I.O.C.
The subsequent operations are the same as those in the conventional case, so the explanation will be omitted.

なお、VM I D(仮想計算機識別子)の代りに。Note that instead of VM ID (virtual machine identifier).

領域(第2図に示す仮想計算機の主記憶装置としての領
域)の識別子を置き替えても、全く同じでである。この
場合には、仮想計算機システム制御プログラムが識別す
領域識別子と、ハードウェアが識別する領域識別子とを
考えればよい。
Even if the identifier of the area (the area serving as the main storage device of the virtual machine shown in FIG. 2) is replaced, the result is exactly the same. In this case, the area identifier identified by the virtual computer system control program and the area identifier identified by the hardware may be considered.

本実施例においては、仮想計算機システム制御プログラ
ムは、VMIDとして例えば、2バイトの値(0,〜、
65,535)を自由に指定することができ、I10プ
ロセッサのVM I DQ録表の大きさは意識する必要
がなく、専用のVM r ou録命令の条件コードのみ
によりブロクラムすればよい。さらに、I10プロセッ
サ内で00wアドレスの定数加算を行うので、CCWア
ドレスおよびデータアドレスをシステムの実アドレスに
変換するために1回の定数(つまり、下限アドレス)の
加算のみでよく、またVMID登録表の検索もサブチャ
ネルに対するCCW実行に対して1回だけ行えば、上い
In this embodiment, the virtual machine system control program uses, for example, a 2-byte value (0, ~,
65, 535) can be freely specified, there is no need to be aware of the size of the VM IDQ list of the I10 processor, and it is only necessary to create a block diagram using the condition code of the dedicated VM r ou record instruction. Furthermore, since constant addition of the 00w address is performed within the I10 processor, only one constant addition (that is, the lower limit address) is required to convert the CCW address and data address to the real address of the system, and the VMID registration table It is possible to perform the search only once for each CCW execution for a subchannel.

従来の方法では、I10プロセッサから仮想計算機の主
記憶装置の領域内アドレスとその領域識別子とをCPU
に送り、CPU側で領域の選択と定数加算を行っている
が、これではCPUとI10プロセッサとのデータ転送
の単位ごとに、上記領域の選択と、定数加算を行う必要
があり、性能上のネックになり易い。本実施例では、I
10プロセッサ内で上記変換を行うので、サブチャネル
に対するIloの実行に対して。
In the conventional method, the I10 processor sends the address within the area of the main memory of the virtual machine and its area identifier to the CPU.
The CPU side performs area selection and constant addition, but this requires the above area selection and constant addition for each unit of data transfer between the CPU and the I10 processor, which causes performance problems. It can easily become a bottleneck. In this example, I
10 for the execution of Ilo on the subchannels since the above transformation is performed within the processor.

回の領域選択および定数加算で済む。All it takes is multiple area selections and constant additions.

このように1本実施例では、I10プロセッサ内でのV
MIDの登録、およびCCWアドレスとそのデータアド
レスの定数加算により、システムの実アドレスに変換す
ることによって、仮想計算機上のOSの用意したCCW
をI10プロセッサが直接実行することができる。
In this way, in this embodiment, V within the I10 processor
By registering the MID and adding a constant between the CCW address and its data address, the CCW address prepared by the OS on the virtual machine is converted to the real address of the system.
can be directly executed by the I10 processor.

次に、第2の実施例である仮想計算機の識別子をソフト
ウェアのハードウェア独立性を保持しながら実現する方
法について、説明する。
Next, a method of realizing a virtual machine identifier while maintaining software hardware independence, which is a second embodiment, will be described.

仮想d1算機システム制御プログラムの指定、管理する
VM I D(ソフトウェアVM I D)あるいは領
域識別子と、ハードウェアが内部的に識別可能なVM 
I D(ハードウェアVM I D)あるいは領域識別
子との間には、容量的な差がある。本実施例では、それ
をハードウェア・インプルメンテーシ目ンに依存しない
形で解決する方法を実現する。
Designation of virtual d1 computer system control program, VM ID (software VM ID) or area identifier to be managed, and VM that can be internally identified by hardware.
There is a difference in capacity between ID (hardware VM ID) and area identifier. In this embodiment, a method for solving this problem without depending on hardware implementation is realized.

次に、その概要を述べると、先ず、ソフトウェアVMI
DからハードウェアVM I Dの変換関数fを以下の
ように定義する。(a)ソフトウェアVMIDの値域を
、0≦VMID≦A、ハードウェアVMIDの値域を、
O≦VMID≦Bとする。
Next, to give an overview, first, the software VMI
A conversion function f from D to hardware VM ID is defined as follows. (a) The value range of software VMID is 0≦VMID≦A, and the value range of hardware VMID is
O≦VMID≦B.

(b)h1=f(sl)   gl =/7トウエアv
MIDとする。もし、別のS2(≠l1l)が、同一の
hlに対応するとき、つまり。
(b) h1=f(sl) gl =/7 toeware v
Let it be MID. If different S2 (≠l1l) correspond to the same hl, that is.

hz=f(sl)”ht のとさ−(lit t  ht)の組を無効とし、 (
Alehl)を有効とするかの機能を有すること。(e
)上記(b)の機能により、仮想計算機システム制御プ
ログラムからは、ソフトウェアVMIDの値の等値およ
び相異のみを!!!識すれば十分であって、ハードウェ
アVMIDは全く意識する必要がないこと。以上の機能
を有する関数fをハードウェアで実現することにより、
仮想計算機システム制御プログラムは自分自身の管理す
るVMIDのみを意識すればよく、ハードウェアVMI
Dとは独立なプログラム構造にすることが可能である。
hz=f(sl)"ht's tosa-(lit t ht) set is invalidated, (
Alehl). (e
) With the function (b) above, only the equality and difference of software VMID values can be detected from the virtual machine system control program! ! ! It is sufficient to be aware of the hardware VMID, and there is no need to be aware of the hardware VMID. By realizing the function f having the above functions in hardware,
The virtual computer system control program only needs to be aware of the VMID that it manages;
It is possible to have a program structure independent of D.

第9図は、仮想計算機のメモリ階層を表わす図であるゆ
第9図において、200は実計算機100の主記憶装置
、21OはV=Rの仮想計算機の主記憶装置で、実計算
機100の主記憶装置200のアドレス0からアドレス
αまでを連続的に占有する。この仮想計算機の主記憶装
置210のアドレスXは、そのまま実計算機100の主
記憶装置200のアドレスXに対応するものである。2
20は、この仮想計算機の仮想記憶であって、この仮想
計算機上で仮想記憶を有するOSを動作させるとき生成
され、このOSにより管理される。
FIG. 9 is a diagram showing the memory hierarchy of a virtual computer. In FIG. Continuously occupies the memory device 200 from address 0 to address α. The address X of the main storage device 210 of this virtual computer corresponds directly to the address X of the main storage device 200 of the real computer 100. 2
20 is a virtual memory of this virtual machine, which is generated when an OS having virtual memory is operated on this virtual machine, and is managed by this OS.

第10図は、V=Resiの仮想計算機のメモリWtM
を表わす図である。310は、 V = Ra5iの仮
想計算機の主記憶装置であって、実計算機100の主記
憶200のアドレスαからアドレスβを連続的に占有す
る。この仮想計算機の主記憶310のアドレスXは、実
計算機100の主記憶20゛0のアドレスX+αに対応
する。320は、この仮想計算機の仮想記憶であり、こ
の仮想計算機上のOSが仮想記憶を生成するときに作成
され、そのOSにより管理される。
FIG. 10 shows the memory WtM of the virtual machine with V=Resi.
FIG. 310 is a main storage device of the virtual machine with V=Ra5i, which continuously occupies addresses α to β of the main storage 200 of the real computer 100. The address X of the main memory 310 of this virtual computer corresponds to the address X+α of the main memory 20'0 of the real computer 100. 320 is a virtual memory of this virtual machine, which is created when the OS on this virtual machine generates virtual memory, and is managed by the OS.

第11図は、v=v仮想計算機のメモリ階層を表わす図
である。410は、v=vの仮想計算機の主記憶装置で
あり、この各ページは、実計算機100の主記憶装置2
00のある割当てられたページ上に存在する。420は
、この仮想計算機の仮想記憶装置であり、第9図の仮想
記憶220および第10図の仮想記憶320と同じであ
る。
FIG. 11 is a diagram showing the memory hierarchy of a v=v virtual machine. 410 is the main storage device of the virtual computer where v=v, and each page is stored in the main storage device 2 of the real computer 100.
00 is on an assigned page. 420 is a virtual storage device of this virtual machine, which is the same as the virtual storage 220 in FIG. 9 and the virtual storage 320 in FIG. 10.

第12図は、複数のv=ROsi仮想計算機の主記憶を
表わす図である。第12図において、310−1はV=
R仮想計算機の主記憶で、主記憶200のアドレスαr
(=O)からβ1までの連続領域(fJji域番号1)
を占有する。また、310−2は、主記憶200のアド
レスα2からβ2までの連続領域(領域番号2)を占有
する。また、310−3についても、全く同じである。
FIG. 12 is a diagram showing the main memories of a plurality of v=ROsi virtual machines. In FIG. 12, 310-1 is V=
In the main memory of the R virtual computer, the address αr of the main memory 200
Continuous area from (=O) to β1 (fJji area number 1)
to occupy. Further, 310-2 occupies a continuous area (area number 2) from addresses α2 to β2 in the main memory 200. Further, the same applies to 310-3.

第13図は1本発明の第2の実施例を示す仮想計算機シ
ステムの要部ブロック図である。第13図において、6
00は仮想計算機システム制御プログラムが指定したソ
フトウェアVMID(以下。
FIG. 13 is a block diagram of main parts of a virtual computer system showing a second embodiment of the present invention. In Figure 13, 6
00 is the software VMID (hereinafter referred to as "software VMID") specified by the virtual machine system control program.

SVMIDと呼ぶ)を含むレジスタであり、620はS
VMIDと対応するハードウェアVMID(以下、I−
IVMIDと呼ぶ)をスタックしているレジスタ群であ
る。610は、VMIDスタック620の制御部であっ
て、スタック620のオーバフロー等を検出する。63
0はアドレス変換テーブルの先頭アドレス(STO)を
含むレジスタ、640はHVMIDを含むレジスタ、6
50は論理アドレス(LA)を含むレジスタ、660は
TLBエントリ制御部、670はTLB、680はアド
レス変換テーブルを検索する動的アドレス変換機構(D
AT)である。
SVMID), and 620 is a register containing SVMID.
VMID and corresponding hardware VMID (hereinafter referred to as I-
This is a group of registers in which the IVMID (called IVMID) is stacked. 610 is a control unit of the VMID stack 620, which detects an overflow of the stack 620 and the like. 63
0 is a register containing the start address (STO) of the address translation table, 640 is a register containing HVMID, 6
50 is a register containing a logical address (LA), 660 is a TLB entry control unit, 670 is a TLB, and 680 is a dynamic address translation mechanism (D) that searches an address translation table.
AT).

次に、第13図の動作を述べる。仮想計算機システム制
御プログラムが、仮想計算機をディスパッチする(起動
する)とき、そのSVMrDを指定してディスパッチ専
用命令で行われ、その命令処理の中で、VMID−スタ
ック620の制御部61Oは、以下の動作を行う。すな
わち、SVMIDをスタック620に登録するとともに
、対応するHVMTDを決定し、8G 21を経由して
レジスタ640に格納する。さらに、制御部610は、
スタック620内で、SVMIDがもはや満杯となり、
登録不可能な状態にあることを検出した場合、スタック
620の中にあるエントリを無効化し、そこに現在のレ
ジスタ600の中のSVMIDを新しく登録する。この
とき、無効化した旧エントリの内容のHVMIDを線6
11を経由してTLBエントリ制御部660に送り、該
当TLI3エントリ無効化を要求する。TLBエントリ
制御部660は、指定されたHVMIDを含むTLB6
70のエントリを全て無効化する。これにより、スタッ
ク内の新SVMIDとI(VMIDとの関係が有効とな
り、新たに当該仮想計算機の走行中に。
Next, the operation shown in FIG. 13 will be described. When the virtual machine system control program dispatches (starts) a virtual machine, it specifies the SVMrD and uses a dispatch-dedicated command. During the command processing, the control unit 61O of the VMID-stack 620 performs the following: perform an action. That is, the SVMID is registered in the stack 620, and the corresponding HVMTD is determined and stored in the register 640 via the 8G 21. Furthermore, the control unit 610
In the stack 620, the SVMID is no longer full;
If it is detected that the registration is not possible, the entry in the stack 620 is invalidated, and the SVMID in the current register 600 is newly registered there. At this time, enter the HVMID of the invalidated old entry on line 6.
11 to the TLB entry control unit 660 to request invalidation of the corresponding TLI3 entry. The TLB entry control unit 660 stores the TLB6 including the specified HVMID.
Invalidate all 70 entries. As a result, the relationship between the new SVMID and I(VMID in the stack) becomes valid, and the new SVMID is activated while the virtual machine is running.

当該仮想計算機のI(VMIDとして、TLB670内
に登録されることになる。仮想計算機ディスパッチ時の
以上の動作が、本実施例において新しく追加された処理
であり、これによって、仮想計算機システム制御プログ
ラムはSVMIDのみを認識すればよく、HVMIDの
生成方法や重複するか否かを全く管理する必要がなくな
り、仮想計算機システム制御プログラムのハードウェア
独立性が保持される。
It will be registered in the TLB 670 as the I (VMID) of the virtual machine. The above operation at the time of virtual machine dispatch is a newly added process in this embodiment, and by this, the virtual machine system control program Only the SVMID needs to be recognized, and there is no need to manage the HVMID generation method or whether or not they overlap, and the hardware independence of the virtual computer system control program is maintained.

仮想計算機走行中のTLB670の動作、DAT680
の動作、比較回路690.700 a、 710、An
clゲート720の動作は、全て従来と同じであるが、
これについて説明する。すなわち、論理アドレスレジス
タ650内の論理アドレス(LA)が、TLB670内
に登録されているか否かを判断し、登録されていれば、
それに対応する物理アドレス(P A)を読み出し、レ
ジスタ730に格納する。そのアドレスは、実計算機1
00の主記憶袋@750に送られ、その参照を行う。論
理アドレス(LA)がTLB670内に登録されている
か否かの判断は、現アドレス変換テーブル先頭アドレス
ST○630と、TLB内のSTOとを、比較回路69
0で比較して、その結果が一致し、現HVMID640
とTLI3 e 70内のI−f VMIDとを比較回
路700aで比較してその結果一致し、かつ現在の論理
アドレスの該当部とTLB内の論理アドレス(LA)と
を比較回路710で比較して、その結果が一致した時、
Andゲート720からの出力がLL L ++となっ
て、TLB670内に(LA)が登録されているものと
判断する。もし、TLB670に登録されていないとき
には、アドレス変換テーブルを検索するDAT680に
より、アドレス変換を行い、その結果の実アドレス(P
 A)を線681を経由してTLB670の該当フィー
ルドに書き込む、TLB670の該当エントリは、論理
アドレスLAのある一部分を取り出し、線651を経由
してTLI3エントり制御部6GOに送られると、制御
部660がその値を計算し、それにより該当エントリ(
すなわち、カラム)を決定する。これらの動作は、従来
と何等変わった点はない。
TLB670 operation while virtual computer is running, DAT680
operation, comparison circuit 690.700 a, 710, An
The operation of the cl gate 720 is all the same as before, but
This will be explained. That is, it is determined whether the logical address (LA) in the logical address register 650 is registered in the TLB 670, and if it is registered,
The corresponding physical address (PA) is read and stored in register 730. The address is real computer 1
It is sent to the main memory bag @750 of 00 and is referenced. To determine whether a logical address (LA) is registered in the TLB 670, a comparison circuit 69 compares the current address translation table start address ST○ 630 and STO in the TLB.
0, the results match, and the current HVMID640
and I-f VMID in TLI3 e 70 are compared by a comparison circuit 700a, and the results match, and the corresponding part of the current logical address and the logical address (LA) in the TLB are compared by a comparison circuit 710. , when the results match,
The output from the AND gate 720 becomes LL L ++, and it is determined that (LA) is registered in the TLB 670. If it is not registered in the TLB 670, the address is translated by the DAT 680 that searches the address translation table, and the resulting real address (P
A) is written to the corresponding field of the TLB 670 via the line 681. The corresponding entry of the TLB 670 takes out a certain part of the logical address LA and sends it via the line 651 to the TLI3 entry control unit 6GO. 660 calculates the value, and then the corresponding entry (
That is, determine the column). These operations are no different from the conventional ones.

第13図において2本実施例の特徴はVMIDスタック
620および制御回路610にある。従って、この部分
をさらに詳細に説明する。
In FIG. 13, two features of this embodiment are a VMID stack 620 and a control circuit 610. Therefore, this part will be explained in more detail.

第14図は、fj513図(7)VMIDXタッ’)の
n細ブロック図である。SVMIDは、制御部610に
より、出力された順番にスタック620の左側のフィー
ルド620−Lに底の方のエントリからスタック(積上
げ)されていく。フィールド620−Lの底の方のエン
トリから順番に番号o、l。
FIG. 14 is an n-thin block diagram of the fj513 diagram (7) VMIDX tap'). The SVMIDs are stacked by the control unit 610 in the left field 620-L of the stack 620 in the order in which they are output, starting from the bottom entry. The entries in field 620-L are numbered o and l in order from the bottom entry.

2、・・・・を付け、それを右側のフィールドに登録し
、それをHVMIDとして線621を経由しレジスタ6
40に登録する。このスタック620の段数は、T L
 B 670 ニおけルHVM I D(7)ビット数
をr(r≧1)とすると、最大2r段である。一般には
、I−IVMIDのビット数rは、SVMIDのピッ1
〜数よりも少ない。
2,..., register it in the field on the right, and register it as HVMID via line 621 to register 6.
Register at 40. The number of stages of this stack 620 is T L
B 670 NIOKERU HVM ID (7) If the number of bits is r (r≧1), the maximum is 2r stages. Generally, the number of bits r of I-IVMID is the number of bits r of SVMID.
~ less than a number.

スタック制御表m6t oは、スタック620のオーバ
フロー(満杯)を検出すると、次の動作を行う。すなわ
ち5スタツク620の中で、最も登録が古いエントリを
探し出し、それを次に登録しようとするSVMID(新
SVMID)で置き替える。
When the stack control table m6t o detects an overflow (fullness) of the stack 620, it performs the following operation. That is, among the five stacks 620, the oldest registered entry is found and replaced with the SVMID (new SVMID) to be registered next.

このとき、旧SVMTDと新SVMIDとが同一のl−
I V M I Dを有することになるので、HVM 
IDを1tAC;11を経由してTLBエントリ制御部
660に送り、指定したHVMIDを有するTLB67
0の全てのエントリを消去する。
At this time, if the old SVMTD and new SVMID are the same l-
Since it has I V M I D, HVM
The ID is sent to the TLB entry control unit 660 via 1tAC;11, and the TLB 67 with the specified HVM ID is sent.
Erase all entries of 0.

第16図は、第13図のスタックの中で最も古いエント
リを探し出す方法を示す図である。第16図では、TL
B670内のI−IVMID(71ビツト数が2の場合
、つまり1−IVMID=0.1,2゜3のみしか区別
できない場合を示している。それに対して、SVMID
は、この数より多く、例えば16ビツトであり、その時
には0,1,2.  ・・・・65,535まで許され
てよい。第16図の620−1は、最初にスタック62
0が満杯になった状態を表わす。620−L、620−
R,620−Fのフィールドがあり、このうち620−
Fのフィールドは、第14図には示されていないが、こ
れは図を簡単にするために省略しただけである。さて、
第16図の620−1では、底のエントリ(SVMID
QおよびHVMI Do)が最も古いエントりであるた
め、620−Fのフィールドの値は1となっている。左
側の点線の矢印は、SVMIDのスタックの方向を表わ
している。この状態で、新しいSVMID4を登録しよ
うとするとき、制御回路610は、620−Fのフィー
ルドを見て、1のエントリを探し出し、それを置き替え
の対象とする。このようにして、!き替えた状態が62
0−2であり、620−1の最古エントリが(SVMI
D4.HVMIDO)で置き替えられている。このとき
、1J1611を経由してトIVMIDOがTLBエン
トリ制御部660に送られ、それを含むTLB670の
全てのエントリが無効化されるのは、前述の通りである
。さらに、620−2では、620−Fの値lが1つだ
け上のエントリにシフトされ、620−2の状態での最
古エントリの位置を表わすようにする。620−3.6
20−4も同じである。このようにして、新しく仮想計
算機をディスバッチするときに、■MIDスタック62
0が更新され、TLB670内に重複が発生すれば、旧
エントリの方を無効化する処理が行われる。
FIG. 16 is a diagram showing a method for finding the oldest entry in the stack of FIG. 13. In Figure 16, TL
I-IVMID (71) in B670 shows a case where the number of bits is 2, that is, a case where only 1-IVMID=0.1, 2°3 can be distinguished.On the other hand, SVMID
is more than this number, for example 16 bits, then 0, 1, 2 . ...You may be allowed up to 65,535. 620-1 in FIG.
0 represents a full state. 620-L, 620-
There are R, 620-F fields, of which 620-
The field of F is not shown in FIG. 14, but this has been omitted only to simplify the diagram. Now,
At 620-1 in Figure 16, the bottom entry (SVMID
Since 620-F (Q and HVMI Do) are the oldest entries, the value of the field 620-F is 1. The dotted arrow on the left represents the direction of the stack of SVMIDs. In this state, when trying to register a new SVMID4, the control circuit 610 looks at the field 620-F, finds an entry of 1, and sets it as a replacement target. In this way! The changed state is 62
0-2, and the oldest entry of 620-1 is (SVMI
D4. HVMIDO). At this time, as described above, the IVMIDO is sent to the TLB entry control unit 660 via 1J1611, and all entries in the TLB 670 including it are invalidated. Further, at 620-2, the value l of 620-F is shifted one entry up to represent the position of the oldest entry in the state of 620-2. 620-3.6
The same applies to 20-4. In this way, when disbatching a new virtual machine, ■MID stack 62
0 is updated and if a duplication occurs in the TLB 670, processing to invalidate the old entry is performed.

SVMIDとHVMIDの対応を生成する他の方法を、
第15図により説明する。第15図では、SVMIDの
うち、下位(7)rビア1−をHVM I Dとして登
録する方法を示している。「は、TLB670における
HVMIDのビット幅である。すなわち5スタック制御
部610′は、出力された順番に、SVMrDの下位r
ビットを線601を経由してスタック620′の右側の
フィールド620−R’ に登録し、同時にrピッ1−
以外の残りの3VMIDの左側部を線602を経由して
、スタック620′の左側フィールド620−L’側の
同じエントリ位置に登録する。その後、上記rビットの
値をI−I V M I Dとしてレジスタ640にセ
ットする。このとき、もしSVMIDの下位rビットの
値が等しいものが、既にスタック620−R’ に存在
するか否かをチェックし、もし存在すれば、I−I V
 M I Dが重複することになるので、HVMIDを
TLB制御部660に送り、I(V MIDを有するT
LB670のエントリを全て無効化し、スタック620
−R’(7)上記HVM I D(7)位置のSVMI
Dのrビット以外の残り左側部を620−L’側に登録
する。なお、VMIDスタック620が満杯になったと
きの方法として、簡単に、TL[3670の内容を全て
無効化する方法もあるが、性能の点から見ると、前述の
方法より劣るので、簡単化する場合の他は好ましくない
Other ways to generate correspondence between SVMID and HVMID,
This will be explained with reference to FIG. FIG. 15 shows a method of registering the lower (7) r via 1- of the SVM IDs as the HVM ID. is the bit width of HVMID in TLB 670. In other words, 5 stack control unit 610' outputs the lower r r of SVMrD in the order of output.
Register the bit via line 601 into the right field 620-R' of stack 620' and at the same time
The left side of the remaining three VMIDs is registered via line 602 to the same entry position on the left field 620-L' side of stack 620'. Thereafter, the value of the r bit is set in the register 640 as I-I V M I D. At this time, if the value of the lower r bits of the SVMID is the same, it is checked whether or not it already exists in the stack 620-R', and if it exists, the I-I V
Since the MID will be duplicated, the HVMID is sent to the TLB control unit 660 and the TLB with the I(V MID is
Invalidate all entries of LB670 and stack 620
-R' (7) Above HVM ID SVMI at position D (7)
The remaining left side of D other than the r bit is registered on the 620-L' side. Note that when the VMID stack 620 becomes full, there is a simple method of invalidating all the contents of TL[3670, but from a performance point of view it is inferior to the above method, so we will simplify it. Not preferable except in certain cases.

さらに1以上のSVMIDとHVMIDとf7)対応は
、仮想計算機のディスバッチ時に1回のみ行えばよいが
、直前と同一の仮想計算機をディスパッチするときには
、SVMIDが前回と同一であるため、前回のHVMI
Dをそのまま使用すればよく、スタック黒作は全て省略
可能である。
Furthermore, the correspondence between one or more SVMIDs and HVMIDs (f7) only needs to be performed once when dispatching a virtual machine, but when dispatching the same virtual machine as the previous one, since the SVMID is the same as the previous one, the previous HVMI
D can be used as is, and all stack black operations can be omitted.

以上の説明では、全てVMIDについて述べたが、仮想
計算機として第12図に示すように、V=Rの計算機お
よびV = Re5i計算機だけしか考えない場合には
、各計算機の主記憶装置とマて連続的に使用される領域
に番号#1. #2. #3.  ・・・・・を付けて
、領域識別子とし、これをVMIDの代りに使用するこ
とも可能である。この場合も、仮想計算機システム制御
プログラムの定義した領域の数が多い場合には、TLB
内の領位フィールド(TLB670(7)HVMIDフ
ィールドに該当)のビット数が少ない場合があり、その
両者の間でVMIDの場合と全く同じような変換が必要
となる。その方法は、HVMIDをハードウェア領域識
別子、SVMIDをソフトウェア領域識別子と言い代え
ることにより、全く同じ議論、方法が成立する。しかし
、この方法は、V=R仮想計算機(第9図の場合)とv
=Regi仮想計算機(第10図の場合)だけにしか対
象にすることができず、第11図に示すようなり=v仮
想計算機を対象にすることはできない。
In the above explanation, we have all talked about VMID, but if we are considering only the V=R computer and the V=Re5i computer as virtual computers, as shown in Figure 12, the main storage and memory of each computer Continuously used areas are numbered #1. #2. #3. It is also possible to add ... as an area identifier and use this instead of the VMID. In this case as well, if the number of areas defined by the virtual machine system control program is large, the TLB
In some cases, the number of bits in the region field (corresponding to the TLB 670 (7) HVMID field) is small, and conversion between the two is required in exactly the same way as in the case of VMID. By replacing HVMID with a hardware area identifier and SVMID with a software area identifier, the same argument and method can be achieved. However, this method requires V=R virtual computer (in the case of FIG. 9) and v
=Regi virtual computer (in the case of FIG. 10) can only be targeted, and as shown in FIG. 11, =v virtual computer cannot be targeted.

本実施例においては、TLB内にVMIDを設ける際に
TLBの容量とは無関係にソフトウェアの立場のみで、
VMIDのビット数を決定することができ、ハードウェ
ア容量やインプルメンテーシゴンとは独立に、ラフ1−
ウェア構造を決めることができる。また、ソフトウェア
VMIDとハードウェアVMIDとの対応関係を、仮想
計算機の起動時に1回のみ行えばよく、性能上はオーバ
ヘッドにならない。
In this embodiment, when providing the VMID in the TLB, only from a software standpoint, regardless of the capacity of the TLB,
The number of bits in the VMID can be determined, independent of hardware capacity and implementation size.
You can decide on the clothing structure. Further, the correspondence between the software VMID and the hardware VMID only needs to be established once when starting up the virtual machine, and there is no overhead in terms of performance.

〔発明の効果〕〔Effect of the invention〕

以上説明したように1本発明によれば、仮想計算機シス
テム制御プログラムは、自分の指定したVMIDとその
r/○プロセッサへの登録命令の条件コードのみで、実
際に■/○プロセッサに登録されたか否かを知ることが
でき、プロセッサ内の登録表の容量に留意しなくてもよ
い。また、TLI’3内にVMIDt!:設定する場合
、TLI3の容量とは無関係に、ソフトウェアのみでV
MIDのビット数を決定できるので、ハードウェア8肚
5インプルメンテ−ジョンとは独立してソフトウェアの
構造を決めることが可能である。
As explained above, according to the present invention, a virtual machine system control program can determine whether or not it has actually been registered in the ■/○ processor using only the VMID specified by itself and the condition code of the instruction to register it to the r/○ processor. It is not necessary to pay attention to the capacity of the registration table in the processor. Also, VMIDt! in TLI'3! : When setting, the V
Since the number of bits of the MID can be determined, it is possible to determine the software structure independently of the hardware implementation.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例を示す仮想計算機システムの
構成図、第2図は仮想計算機の主記憶装置の領域説明図
、第3図は仮想計算機のメモリ階層説明図、第4図およ
び第5図はVMID(仮想計算機識別子)登録命令フォ
ーマット図、第6図はサブチャネル制御ブロックの説明
図、第7図はサブチャネルに対するI10起動命令のフ
ォーマット図、第8図は仮想計算機システムの概略説明
図、第9図はV=Rの仮想計算機のメモリ構成図、第1
0図は’V”Re5iの仮想計算機のメモリ構成図、第
11図はv=vの仮想計算機のメモリ構成図、第12図
はV−、RまたはV = Resiの仮旭目1算機の主
記憶領域説明図5第13図は本発明の他の実施例を示す
仮想計算機システムの要部構成図、第14図および第1
5図はそれぞれ第13図におけるVMIDスタックの実
施例図、第16図はVMIDスタックにおける新旧エン
トリの入替え説明図である。100:実計算機、11.
0:中央処理袋y1(CPtJ)、120 : I10
プロセッサ(■OP)、150:CPU内命令実行制御
部、200=実計算機の主記憶装置、300=仮想計算
機の主記憶装置、210 : V=Rの仮想計算機の主
記憶装置、220:V=Rの仮想計算機の仮想記憶装置
、 310 : V = Re5iの仮想計算機の主記
憶装置、320 : V=ReSiの仮想計算機の仮想
記憶装置、400:仮想計算機識別子(VM I D)
登録命令、410:V=Vの仮想計算機の主記憶装置、
420:V=Vの仮想計算機の仮想記憶装置、430:
上下限エントり制御部、440:10P内(7)lvf
 I D登録表、450:CCW実行制御部、460:
サブチャネルレジスタ群、470:入出力制御装置i!
!(IOC)、Goo:SVMIDL/ジスタ、610
 :VMID、2.タック制御ロ路、620:VMID
Xタック、630ニアドレス変換テ一ブル先頭アドレス
を含むレジスタ、640:[IV M I Dレジスタ
、650:論理アドレスレジスタ、660:TLBエン
トリ制御部、670:TLB、980:動的アドレス変
換装[(D A T)、690.700a、710:比
較回路、700:サブチャネル制御ブロック、720:
AND回路、730.740:実アドレスレジスタ、7
50:jミ記憶制御装匝、800:I/○起動命令。 第     2     図 0.】 第   δ   図 第     牛     図 5ALE命令(登録) 第     5     図 5ALE命令(削除) 第   6   図 第7図 第     8     図 第     9     図 第   11   図 第   12   図 第   13   図 第   ]−4図 第   15   図 第   16   図
Fig. 1 is a configuration diagram of a virtual computer system showing an embodiment of the present invention, Fig. 2 is an explanatory diagram of the main storage area of the virtual machine, Fig. 3 is an explanatory diagram of the memory hierarchy of the virtual machine, Figs. Figure 5 is a VMID (virtual machine identifier) registration command format diagram, Figure 6 is an explanatory diagram of the subchannel control block, Figure 7 is a format diagram of the I10 activation command for the subchannel, and Figure 8 is an outline of the virtual machine system. Explanatory diagram, Figure 9 is a memory configuration diagram of a virtual machine with V=R, Part 1
Figure 0 is a memory configuration diagram of a 'V'' Re5i virtual machine, Figure 11 is a memory configuration diagram of a v=v virtual machine, and Figure 12 is a memory configuration diagram of a virtual machine with V-, R, or V = Resi. Main storage area explanatory drawing
5 is an example diagram of the VMID stack in FIG. 13, and FIG. 16 is an explanatory diagram of exchanging old and new entries in the VMID stack. 100: Real computer, 11.
0: Central processing bag y1 (CPtJ), 120: I10
Processor (OP), 150: Instruction execution control unit in CPU, 200 = Main storage of real computer, 300 = Main storage of virtual computer, 210: Main storage of virtual computer of V=R, 220: V= Virtual storage device of R virtual machine, 310: V = main storage device of Re5i virtual machine, 320: V = virtual storage device of ReSi virtual machine, 400: Virtual machine identifier (VM ID)
Registration instruction, 410: Main storage of virtual machine with V=V,
420: Virtual storage device of virtual machine with V=V, 430:
Upper/lower limit entry control section, 440: within 10P (7) lvf
ID registration table, 450: CCW execution control unit, 460:
Subchannel register group, 470: input/output control device i!
! (IOC), Goo: SVMIDL/Jista, 610
:VMID,2. Tack control low path, 620: VMID
X tack, 630 register containing near address translation table start address, 640: [IV MID register, 650: logical address register, 660: TLB entry control unit, 670: TLB, 980: dynamic address translation device [ (D A T), 690.700a, 710: Comparison circuit, 700: Subchannel control block, 720:
AND circuit, 730.740: Real address register, 7
50: j memory control device, 800: I/○ startup command. Figure 2 0. ] Fig. δ Cow Fig. 5 ALE command (registration) Fig. 5 Fig. 5 ALE command (delete) Fig. 6 Fig. 7 Fig. 8 Fig. 9 Fig. 11 Fig. 12 Fig. 13 Fig. 4 - Fig. 15 Fig. 16 Figure

Claims (1)

【特許請求の範囲】 1、複数オペレーティングシステムを同時に走行させる
制御プログラムを備えた仮想計算機システムにおいて、
I/Oプロセッサ内に、1つないし複数の識別子と該識
別子に対応する主記憶装置の領域を定義する上下限アド
レスが登録されている登録テーブルを設け、CPUから
上記I/Oプロセッサに対して、上記制御プログラムが
識別する仮想計算機識別子と該仮想計算機の主記憶装置
の連続領域を定義する上下限アドレスを通知することに
より、該I/Oプロセッサは受け取つた識別子と上下限
アドレスを上記登録テーブルに登録し、該登録テーブル
が満杯の際には、その旨をI/OプロセッサからCPU
に通知することを特徴とする仮想計算機システム。 2、上記上下限アドレスのかわりに下限アドレスと仮想
計算機の主記憶のサイズを使うことを特徴とする特許請
求の範囲第1項記載の仮想計算機システム。 3、上記登録テーブルが満杯の際には、CPUからI/
Oプロセッサに対して、該登録テーブルの指定された仮
想計算機識別子のエントリを削除することを指示するこ
とにより、該I/Oプロセッサがこれを削除することを
特徴とする特許請求の範囲第1項記載の仮想計算機シス
テム。 4、上記登録テーブルに上記制御プログラムが指定した
仮想計算機識別子を登録するとき、該識別子をハードウ
ェアが識別する識別子に変換し、I/Oプロセッサが入
出力装置を起動するときには、I/Oプロセッサは上記
ハードウェアが識別する識別子により仮想計算機とその
主記憶装置の領域を定義する上下限アドレスを識別し、
該仮想計算機上のOSが発行した上記入出力装置に対す
るCCW群を実行する際に、該領域の下限アドレスを該
CCWのアドレスとそのデータアドレスに加えることに
より、実計算機の主記憶装置アドレスを得ることを特徴
とする特許請求の範囲第1項記載の仮想計算機システム
。 5、上記下限アドレスを該当部に加えることにより、実
計算機の主記憶装置アドレスを得た後、対をなす上限ア
ドレスを越えていないかチェックし、越えているときは
、CPU側にI/O異常終了割込みを発生することを特
徴とする特許請求の範囲第4項記載の仮想計算機システ
ム。 6、上記上下限アドレスのかわりに、下限アドレスと仮
想計算機の主記憶サイズを使用することを特徴とする特
許請求の範囲第4項記載の仮想計算機システム。 7、上記CCWの実行に際し、CCWのアドレスとその
データアドレスがVMの主記憶サイズを越えていないか
チェックし、その後越えていないならば下限アドレスを
加えることを特徴とする特許請求の範囲第4項記載の仮
想計算機システム。 8、上記仮想計算機識別子は、仮想計算機の主記憶装置
としての領域識別子に置き替えて使用されることを特徴
とする特許請求の範囲第1項、第3項、または第4項記
載の仮想計算機システム。 9、複数オペレーティングシステムを同時に走行させる
制御プログラムを備えた仮想計算機システムにおいて、
上記制御プログラムが識別する仮想計算機識別子から実
計算機のハードウェアが識別する仮想計算機識別子への
変換手段と該変換後の対応結果を保持する対応テーブル
を設け、上記制御プログラムが仮想計算機を起動する場
合、上記変換テーブルに対応結果を登録する際に、該対
応テーブルが満杯のときには、既登録の対応関係の中の
いずれか1つ又は複数を選択して、該対応を無効化し、
新しい対応を有効化することを特徴とする仮想計算機シ
ステム。 10、上記識別子対応の登録テーブルには、制御プログ
ラムが識別する領域識別子から実計算機のハードウェア
が識別する領域識別子へ変換した後、該変換された対応
結果を登録することを特徴とする特許請求の範囲第9項
記載の仮想計算機システム。
[Claims] 1. In a virtual computer system equipped with a control program that runs multiple operating systems simultaneously,
A registration table is provided in the I/O processor in which one or more identifiers and upper and lower limit addresses that define the area of the main storage device corresponding to the identifiers are registered, and a , by notifying the virtual machine identifier identified by the control program and the upper and lower limit addresses that define the contiguous area of the main storage of the virtual machine, the I/O processor stores the received identifier and upper and lower limit addresses in the registration table. When the registration table is full, the I/O processor sends a message to that effect to the CPU.
A virtual computer system characterized by notifying. 2. The virtual machine system according to claim 1, wherein a lower limit address and the size of the main memory of the virtual machine are used instead of the upper and lower limit addresses. 3. When the above registration table is full, the I/O from the CPU
Claim 1, wherein the I/O processor deletes the specified virtual machine identifier entry in the registration table by instructing the O processor to delete the entry. The virtual computer system described. 4. When registering the virtual machine identifier specified by the control program in the registration table, convert the identifier into an identifier that is identified by the hardware, and when the I/O processor starts the input/output device, the I/O processor identifies the upper and lower limit addresses that define the virtual machine and its main storage area using the identifier identified by the hardware,
When executing the CCW group for the input/output device issued by the OS on the virtual machine, the main storage address of the real computer is obtained by adding the lower limit address of the area to the address of the CCW and its data address. A virtual computer system according to claim 1, characterized in that: 5. After obtaining the main memory address of the actual computer by adding the above lower limit address to the relevant part, check whether it exceeds the upper limit address of the pair, and if it does, send I/O to the CPU side. 5. The virtual computer system according to claim 4, wherein an abnormal termination interrupt is generated. 6. The virtual computer system according to claim 4, wherein the lower limit address and the main memory size of the virtual machine are used instead of the upper and lower limit addresses. 7. When executing the CCW, it is checked whether the address of the CCW and its data address exceed the main memory size of the VM, and if the size does not exceed the size, a lower limit address is added. The virtual computer system described in Section 1. 8. The virtual machine according to claim 1, 3, or 4, wherein the virtual machine identifier is used in place of an area identifier as a main storage device of the virtual machine. system. 9. In a virtual computer system equipped with a control program that runs multiple operating systems simultaneously,
When the control program starts the virtual machine by providing a means for converting the virtual machine identifier identified by the control program into a virtual machine identifier identified by the hardware of the real computer and a correspondence table that holds the correspondence result after the conversion. , when registering the correspondence results in the conversion table, if the correspondence table is full, select one or more of the already registered correspondences and invalidate the correspondence;
A virtual computer system characterized by enabling new correspondence. 10. A patent claim characterized in that, after converting the area identifier identified by the control program into the area identifier identified by the hardware of the actual computer, the converted correspondence result is registered in the identifier correspondence registration table. 9. The virtual computer system according to item 9.
JP61096053A 1986-04-24 1986-04-24 Virtual computer system Pending JPS62251838A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61096053A JPS62251838A (en) 1986-04-24 1986-04-24 Virtual computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61096053A JPS62251838A (en) 1986-04-24 1986-04-24 Virtual computer system

Publications (1)

Publication Number Publication Date
JPS62251838A true JPS62251838A (en) 1987-11-02

Family

ID=14154712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61096053A Pending JPS62251838A (en) 1986-04-24 1986-04-24 Virtual computer system

Country Status (1)

Country Link
JP (1) JPS62251838A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635732A (en) * 1992-07-14 1994-02-10 Hitachi Ltd Area assigning method for storage device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635732A (en) * 1992-07-14 1994-02-10 Hitachi Ltd Area assigning method for storage device

Similar Documents

Publication Publication Date Title
EP0423453B1 (en) Address translation and copying process
KR100195666B1 (en) Processor capable of supporting two distinct instruction set architectures
EP0150039B1 (en) I/o execution method for a virtual machine system and system therefor
US5574936A (en) Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US6480845B1 (en) Method and data processing system for emulating virtual memory working spaces
US5377337A (en) Method and means for enabling virtual addressing control by software users over a hardware page transfer control entity
US9304916B2 (en) Page invalidation processing with setting of storage key to predefined value
US8521964B2 (en) Reducing interprocessor communications pursuant to updating of a storage key
EP0106668A2 (en) Computer system with multiple operating systems
EP0083400A2 (en) A multiprocessor system with at least three-level memory hierarchies
JPS6083168A (en) Multiprocessor system control
JPH0731624B2 (en) Method and apparatus for moving data by asynchronous coprocessor
US7506096B1 (en) Memory segment emulation model for virtual machine
JPS6248258B2 (en)
EP0619899B1 (en) Software control of hardware interruptions
US20230161704A1 (en) Computing system with direct invalidation in a hierarchical cache structure based on at least one designated key identification code
JP3554320B2 (en) A data processing system that performs communication between execution environments in a data processing system employing an object-oriented memory protection mechanism
JPS62251838A (en) Virtual computer system
CA1302582C (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
EP0301707A2 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
EP0389886B1 (en) Ring reduction logic mechanism
US6446094B1 (en) Data structure for emulating virtual memory working spaces
US11971821B2 (en) Computing system with write-back and invalidation in a hierarchical cache structure based on at least one designated key identification code
US20230161703A1 (en) Computing system with write-back and invalidation in a hierarchical cache structure based on at least one designated key identification code
US20230161709A1 (en) Processor, computer system, and method for flushing hierarchical cache structure based on a designated key identification code and a designated address