JPH0711784B2 - Computer system - Google Patents

Computer system

Info

Publication number
JPH0711784B2
JPH0711784B2 JP5141747A JP14174793A JPH0711784B2 JP H0711784 B2 JPH0711784 B2 JP H0711784B2 JP 5141747 A JP5141747 A JP 5141747A JP 14174793 A JP14174793 A JP 14174793A JP H0711784 B2 JPH0711784 B2 JP H0711784B2
Authority
JP
Japan
Prior art keywords
interrupt
address
real
vmcp
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5141747A
Other languages
Japanese (ja)
Other versions
JPH0659919A (en
Inventor
英典 梅野
隆重 久保
亘喬 萩原
博昭 佐藤
英雄 沢本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5141747A priority Critical patent/JPH0711784B2/en
Publication of JPH0659919A publication Critical patent/JPH0659919A/en
Publication of JPH0711784B2 publication Critical patent/JPH0711784B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は仮想計算機システム(V
MS)の高速化方式に係り、特に、VMSのI/Oシミ
ュレーションオーバヘッドの削減方式に関する。
This invention relates to a virtual computer system (V
(MS) speed-up method, and more particularly to a method for reducing I / O simulation overhead of VMS.

【0002】[0002]

【従来の技術】図1に実計算機システム10000の主
構成図を示す。1000は中央処理装置CPU、200
0は主記憶装置、3000は入出力プロセッサIOP、
4000は入出力制御装置IOCである。100は、C
PU1000と、主記憶装置2000との間の信号線、
200は、CPU1000とIOP3000との間の信
号線、300は、IOP3000と主記憶装置2000
との間の信号線、400は、IOP3000と、IOC
4000との間の信号線である。この実計算機システム
10000は、主記憶装置2000上のオペレーティン
グシステム(OS)のシステム全体のリソース(CP
U、主記憶装置、入出力装置)管理により、制御され動
作しているものである。
2. Description of the Related Art FIG. 1 shows a main configuration of an actual computer system 10000. 1000 is a central processing unit CPU, 200
0 is the main memory, 3000 is the input / output processor IOP,
4000 is an input / output control device IOC. 100 is C
A signal line between the PU 1000 and the main memory 2000,
200 is a signal line between the CPU 1000 and the IOP 3000, and 300 is the IOP 3000 and the main storage device 2000.
Signal line 400 between the IOP 3000 and the IOC
It is a signal line between 4000. This real computer system 10000 is a system-wide resource (CP) of an operating system (OS) on the main storage device 2000.
U, main storage device, input / output device) are managed and operated.

【0003】これに対して、仮想計算機システム(VM
S)での構成図を図2に示す。実計算機システム100
00は図1と、ハードウェア構成(CPU、主記憶装
置、入出力装置)は変らないが、主記憶装置2000上
に、VMSの制御プログラムVMCP(又は単にCPと
もいう)が存在する点が異なる。このVMCPのハード
ウェアシミュレーション機能により、論理的な計算機
(バーチャルマシンVMという)が複数台論理的に実現
される。各VM、即ち、10000−1(VM1),1
0000−2(VM2),10000−3(VM3)
は、実計算機システム(ホストシステムと呼ぶ)100
00と同じハードウェア構成をもつものととして論理的
に実現される。各VMの主記憶装置2000−N(N=
1,2,3)上には、各VMを制御し、動かすOS−N
が存在し、この複数のOSが1台のホストシステムの下
で同時に走行していることを示すものである。図2の各
VMにおけるハードウェア構成(CPU、主記憶装置、
IOP,IOC)は、VMCPにより論理的に実現され
るものであるが、それらの実体の大部分は、ホストシス
テムの対応するハードウェア構成上に存在する。例え
ば、VMの主記憶装置は、ホストシステムの主記憶装置
2000の一部分を専有することもあり、又、共有する
こともあり、又、VMの入出力装置は、ホストシステム
の入出力装置をVM間で共有することもあり、又、いく
つかの入出力装置を専有することもある。あるいは、ホ
ストシステム上に対応する入出力装置がなく、全く仮想
的にVMCPにより擬似されて、実現される場合もあ
る。いずれにせよ、各VMの主記憶装置2000−N
(N=1,2,3)上のOSからは、ホストシステムと
同様のハードウェア構成(CPU、主記憶装置、IO
P,IOC)が見えることになる。ここで、注意すべき
は、各VMのアーキテクチャ(OSからみたハードウェ
ア構造及び機能)は、ホストシステム10000のアー
キテクチャと多少違っても良いということである。同様
に、VM間でアーキテクチャが異なってもかまわない。
例えば、ホストシステムの機械命令のセットと、各VM
の機械命令のセットは、完全に同じでなくても良い。し
かし、全く異なるものは、VMCPの負荷が大きくな
り、又、ホストシステムのエミュレーション機構が大き
くなるので、本発明におけるVMSの対象外とする。本
発明で述べる仮想計算機VMとは、その大部分の機械命
令が、ホストシステム上で、VMCPの介入によらず、
ホストシステムの本来の性能(実行速度)と等しい性能
で直接実行されることを必要条件とする。又図2では、
VMは3台しか定義していないが、一般には、何台あっ
ても良く、その上限は、ホストシステムのリソース容量
と、各VMの性能とかねあいで決定される。ホストシス
テムも、特権状態と非特権状態とを有し、システムに重
大な影響を与える機械命令(例えばIO命令、システム
の割込マスク変更命令)は、特権命令と呼ばれ、特権状
態でしか使用することができない。これも周知である。
On the other hand, a virtual computer system (VM
FIG. 2 shows a configuration diagram in S). Real computer system 100
The hardware configuration (00, main storage device, input / output device) of 00 is the same as that of FIG. 1 except that a control program VMCP (or simply CP) of the VMS exists on the main storage device 2000. . With the hardware simulation function of the VMCP, a plurality of logical computers (called virtual machines VM) are logically realized. Each VM, namely, 10,000-1 (VM1), 1
0000-2 (VM2), 10000-3 (VM3)
Is a real computer system (called a host system) 100
It is logically realized as having the same hardware configuration as 00. Main storage device 2000-N (N =
1, 2, 3) OS-N that controls and operates each VM
Exists, and the plurality of OSs are running under one host system at the same time. The hardware configuration (CPU, main storage device,
(IOP, IOC) is logically realized by VMCP, but most of these entities exist on the corresponding hardware configuration of the host system. For example, the main storage device of the VM may occupy a part of the main storage device 2000 of the host system or may share the same, and the input / output device of the VM may be the input / output device of the host system VM. It may be shared between them, or it may occupy some I / O devices. Alternatively, there may be a case where there is no corresponding input / output device on the host system and it is realized by being virtually simulated by VMCP. In any case, the main storage device 2000-N of each VM
From the OS on (N = 1, 2, 3), the same hardware configuration (CPU, main memory, IO) as the host system
P, IOC) will be visible. Here, it should be noted that the architecture of each VM (hardware structure and function viewed from the OS) may be slightly different from that of the host system 10000. Similarly, the VMs may have different architectures.
For example, the set of machine instructions of the host system and each VM
The set of machine instructions in does not have to be exactly the same. However, completely different ones are not covered by the VMS in the present invention because the load of the VMCP becomes large and the emulation mechanism of the host system becomes large. In the virtual machine VM described in the present invention, most of the machine instructions are executed on the host system without intervention of VMCP.
It is necessary to directly execute the program with the same performance as the original performance (execution speed) of the host system. Also in FIG.
Although only three VMs are defined, in general, there may be any number, and the upper limit thereof is determined by the resource capacity of the host system and the performance of each VM. The host system also has a privileged state and a non-privileged state, and machine instructions that have a significant impact on the system (for example, IO instructions, system interrupt mask change instructions) are called privileged instructions and are used only in the privileged state. Can not do it. This is also well known.

【0004】図3にVMSの1台のVM(この図ではV
M1)のメモリ階層を示す。2060は、VM1上のO
S1が生成する仮想空間であり、OS1は、VM1の主
記憶装置2000−1上に存在する。VM1の主記憶装
置2000−1は、ホストシステムの主記憶装置200
2(ホストシステムの主記憶装置2000は、図7に示
すようにハードウェアシステムエリア2001と、プロ
グラム可能エリア2002とに分割されている。)上に
写像される。その写像は、アドレス変換テーブル201
0により与えられる。図4(a)に、このアドレス変換
テーブル2010(1)を示す。このアドレス変換表2
010(1)には、VM1の主記憶装置2000−1上
のアドレスv2に対応するエントリに、対応する主記憶
装置2002上のアドレスrが記述されている。このア
ドレス変換テーブル2010(1)の先頭アドレスは、
VM1上のOS1が、その主記憶装置2000−1上で
動作している場合は、CPU1000内の基本制御レジ
スタ群1100(図7参照)内のひとつの制御レジスタ
RATOR1110に格納されている。この場合、アド
レス変換テーブル2010(1)は、ホストシステムの
主記憶装置2002上に存在し、その先頭アドレスも、
ホストシステムの主記憶装置2002のアドレスで記述
されレジスタ1110に設定される。図3における、2
060は、VM1上のOS1の生成する仮想空間であ
り、そこからVM1の主記憶装置2000−1への写像
は、OS1の管理するアドレス変換テーブル2040に
より与えられる。図4(b)は、このアドレス変換テー
ブルの構成を表わしており、仮想空間2060のアドレ
スv3の対応エントリに、対応するVM1の主記憶装置
2000−1のアドレスv2が記述されている。このア
ドレス変換テーブル2040の先頭アドレスは、VM1
のOS1が、その仮想空間2060上で動作していると
き、CPU1000の基本制御レジスタ群1100(図
7参照)の中のひとつの制御レジスタVATOR112
0に格納されている。ただし、この場合、アドレス変換
テーブル2040は、OS1の主記憶装置2000−1
上に存在するため、その先頭アドレスも、OS1の主記
憶装置2000−1のアドレスで記述される。アドレス
変換テーブル2010(1)(変換表Aとよぶ)は、V
MCPが各VM用に管理、更新するテーブルであり、ア
ドレス変換テーブル2040(変換表Bとよぶ)は、各
VM上のOSが自分自身の仮想空間のために管理、更新
するテーブルである。ここで、ホストシステムの主記憶
装置2002をレベル1メモリ、各VMの主記憶装置2
000−N(N=1,2,3,…)をレベル2メモリ、
各VM上のOSが生成する仮想空間2060(これは、
一般に、OSは、複数空間生成する)をレベル3メモリ
と総称することとする。仮想空間は一般に一定の大きさ
(例えば4KB)のページに分割され、このページ単位
に主記憶装置へmappingされること、及び、いくつかの
連続ページ(例えば256ページの1MB)をあつめ
て、1セグメントと呼ぶことは、周知である。図3にお
ける2020は、VMCPが、自分自身の入出力(I
O)動作を起動するために作成したIO動作指令語(C
CWと呼ぶ)群である。VMCP自身は、レベル1メモ
リ上で動作するため、CCW群2020は、レベル1メ
モリアドレスで作成されている。これをレベル1CCW
と呼ぶ。レベル1CCWは、アドレス変換は不要で、I
Oの起動命令がレベル1CCWに対してかかった場合
は、そのまま、IOP3000により解釈され、IOC
4000へ送られる。IOC4000は、各CCWを各
入出力装置に対して実行していくことにある。2030
は、VM上のOSの用意したCCWであり、レベル2メ
モリアドレスで記述されているものである。このレベル
2CCWは、VM上のOSにより、作られたものであ
る。このCCWに対してVM上のOSからIO起動命令
がかかった場合は、VMCPが介入して、これをVMC
Pが等価なレベル1CCWに変換して、VMCP経由に
より、その等価なレベル1CCWを用いてIO起動を行
なう方法も考えられる。しかし、これは、VMCPのオ
ーバヘッドを増すこととなる。そこで、VMCPは介入
するが、レベル2メモリからレベル1メモリへのアドレ
ス変換表(即ち、変換表A)2010のアドレスを、I
OP3000におしえ、IOP3000(図7参照)
が、その変換表2010をみながら、レベル2CCWの
中のデータアドレス(これはレベル2メモリアドレス)
をレベル1メモリアドレスに変換して実行していく方法
が取られるようになった。この方法だと、VMCPの介
入が削減され、オーバヘッドが削減される。さて、VM
上のOSは、大部分レベル3メモリ上で動作することが
多く、従って、VM上のOSの生成するCCWも、レベ
ル3メモリ上に存在することが多い。図3の2050
は、レベル3メモリアドレスで生成されたCCWすなわ
ち、レベル3CCWを表わす。このレベル3CCWに対
してVM上のOSがIO起動命令を発行した場合は、レ
ベル2CCW2030の場合と同様に、レベル3メモリ
からレベル2メモリへのアドレス変換表(即、変換表
B)のアドレスと、レベル2メモリからレベル1メモリ
へのアドレス変換表(即ち、変換表A)のアドレスを、
IOP3000(図7)におしえ、IOP3000が、
レベル3CCWのデータアドレス(レベル3メモリアド
レス)を、変換表Bによりレベル2メモリアドレスに変
換し、さらに、その結果を、変換表Aにより、レベル1
アドレスに変換することにより、当該CCWを実行して
行く方法が取られる。
In FIG. 3, one VM of VMS (V in this figure
The memory hierarchy of M1) is shown. 2060 is O on VM1
The OS1 is a virtual space created by S1 and exists on the main storage device 2000-1 of the VM1. The main storage device 2000-1 of the VM 1 is the main storage device 200 of the host system.
2 (the main memory 2000 of the host system is divided into a hardware system area 2001 and a programmable area 2002 as shown in FIG. 7). The mapping is the address conversion table 201.
Given by 0. FIG. 4A shows this address conversion table 2010 (1). This address conversion table 2
In 010 (1), the address r on the corresponding main storage device 2002 is described in the entry corresponding to the address v2 on the main storage device 2000-1 of the VM 1. The start address of this address conversion table 2010 (1) is
When the OS 1 on the VM 1 is operating on the main storage device 2000-1, it is stored in one control register RATOR 1110 in the basic control register group 1100 (see FIG. 7) in the CPU 1000. In this case, the address conversion table 2010 (1) exists in the main storage device 2002 of the host system, and its head address is also
It is described by the address of the main storage device 2002 of the host system and set in the register 1110. 2 in FIG.
Reference numeral 060 denotes a virtual space generated by the OS1 on the VM1, and the mapping from the virtual space to the main storage device 2000-1 of the VM1 is given by the address conversion table 2040 managed by the OS1. FIG. 4B shows the configuration of this address conversion table, and the address v2 of the main storage device 2000-1 of the corresponding VM1 is described in the corresponding entry of the address v3 of the virtual space 2060. The start address of this address conversion table 2040 is VM1.
When the OS 1 of the CPU is operating in the virtual space 2060, one control register VATOR 112 in the basic control register group 1100 (see FIG. 7) of the CPU 1000.
It is stored in 0. However, in this case, the address conversion table 2040 is stored in the main storage device 2000-1 of the OS1.
Since it exists above, the start address is also described by the address of the main storage device 2000-1 of the OS 1. The address conversion table 2010 (1) (referred to as conversion table A) is V
The MCP is a table managed and updated for each VM, and the address conversion table 2040 (referred to as a conversion table B) is a table managed and updated by the OS on each VM for its own virtual space. Here, the main storage device 2002 of the host system is the level 1 memory, and the main storage device 2 of each VM.
000-N (N = 1, 2, 3, ...) is a level 2 memory,
The virtual space 2060 created by the OS on each VM (this is
In general, the OS collectively refers to a plurality of spaces created as a level 3 memory. The virtual space is generally divided into pages of a certain size (for example, 4 KB), the pages are mapped to the main storage device, and several consecutive pages (for example, 1 MB of 256 pages) are collected, and 1 Calling a segment is well known. In 2020 in FIG. 3, the VMCP has its own input / output (I
O) IO operation command word (C
CW) group. Since the VMCP itself operates on the level 1 memory, the CCW group 2020 is created with the level 1 memory address. This is Level 1 CCW
Call. Level 1 CCW does not require address translation,
When an O start command is applied to the level 1 CCW, it is interpreted as it is by the IOP 3000, and the IOC
Sent to 4000. The IOC 4000 is to execute each CCW for each input / output device. 2030
Is a CCW prepared by the OS on the VM and described by the level 2 memory address. This Level 2 CCW is created by the OS on the VM. When an IO start command is issued from the OS on the VM to this CCW, the VMCP intervenes and sends this to the VMC.
A method in which P is converted into an equivalent level 1 CCW and the IO is activated using the equivalent level 1 CCW via VMCP is also conceivable. However, this adds to the VMCP overhead. Therefore, although VMCP intervenes, the address of the address conversion table (that is, conversion table A) 2010 from the level 2 memory to the level 1 memory is set to I
Tell OP3000, IOP3000 (See Figure 7)
However, looking at the conversion table 2010, the data address in the level 2 CCW (this is the level 2 memory address)
To the level 1 memory address and executed. This method reduces VMCP intervention and overhead. Well, VM
Most of the above OSs operate on the level 3 memory, and therefore the CCW generated by the OS on the VM often exists on the level 3 memory. 2050 in FIG.
Represents a CCW generated at a level 3 memory address, that is, a level 3 CCW. When the OS on the VM issues an IO activation command to this level 3 CCW, as in the case of the level 2 CCW 2030, the address of the address conversion table from the level 3 memory to the level 2 memory (immediately, conversion table B) , The address of the address conversion table from the level 2 memory to the level 1 memory (that is, conversion table A) is
IOP3000 (Fig. 7), IOP3000
A conversion table B converts a level 3 CCW data address (level 3 memory address) into a level 2 memory address, and the conversion table A converts the result into a level 1 memory address.
A method of executing the CCW is performed by converting the CCW into an address.

【0005】図4(c)は、上記に述べたIOP300
0(図7)におけるアドレス変換オーバヘッドを削減す
るために、IOP3000内のローカルストレジに設け
た、アドレス変換バッファ3030である。アドレス変
換バッファ3030のフィールド1には、VMの番号V
M#が、フィールド2には、変換表Aの変換表Bの先頭
アドレスが、フィールド3には、その両者が区別フラグ
が、フィールド4には、変換前のCCWデータアドレス
が、フィールド5には、変換後のレベル1メモリアドレ
スが記述されている。IOP3000(図7)はまず、
このアドレス変換バッファをみて、アドレス変換をし、
次に、ここにない場合は、変換表B′、変換表Aをみて
アドレス変換を行ない、その結果を、この変換バッファ
3030に登録する。このアドレス変換バッファは、I
OP3000内の高速ローカルストレンジにあり、主記
憶装置2002上の変換表B,Aを検索するよりも高速
である。ここで注意すべきは、レベル2CCW、レベル
3CCW及び、そのデータバッファは、IO実行時に
は、いずれも、レベル1メモリ上に固定されていること
が必要ということである。さて、図5は、ホストシステ
ムの主記憶装置2002の連続領域を分割して、各分割
された領域を、各VMの主記憶装置として専有して使用
する方法を表わしている。このようなVMを使用する場
合は、VMの主記憶装置のアドレスに、一定のアドレス
変位αを加えれば、ホストシステムの主記憶装置200
2のアドレスとなることが分かる。図5の場合は、VM
1のアドレス変位はα1、VM2のアドレス変位はα2
ある。このような場合は、レベル2メモリアドレスか
ら、レベル1メモリアドレスへの変換表2010は、2
010(2)に示すように、各VMの下限アドレス及び
上限アドレスを管理する表だけ充分である。この場合
は、レベル2CCWのアドレス変換は容易であり、レベ
ル2CCWのためのアドレス変換バッファ3030のエ
ントリ(すなわち、アドレス変換バッファ3030のフ
ィールド3が0のエントリ)は不要である。そのかわ
り、図5に示す、変換表2010(2)をIOP300
0(図7)内のローカルストレジに取込み、VM#によ
り、アドレス変位αをもとめ、その加算により、アドレ
ス変換(レベル2メモリアドレス→レベルメモリアドレ
ス変換)を行なう方法も取られている。図3に示すVM
の主記憶装置全体がホストシステムの主記憶装置200
2に常駐化され、固定されているか、又は、図5に示す
ようなホストシステムの主記憶装置のある連続領域を専
有するようなVMに対しては、高速VMモードがサポー
トされている。高速VMモードでは、VM上のOSの発
行する大部分の特権命令が、直接実行(VMCPを経由
せずホストシステムと同程度の性能を有する実行方式)
される。しかし、VM上のIO命令は、以下に示すよう
に、VMCPの介入を必要としている。
FIG. 4C shows the IOP 300 described above.
0 (FIG. 7) is an address translation buffer 3030 provided in a local storage in the IOP 3000 in order to reduce the address translation overhead. In the field 1 of the address translation buffer 3030, the VM number V
M # is the field 2, the start address of the conversion table B of the conversion table A, the field 3 is a distinction flag between them, the field 4 is the CCW data address before conversion, and the field 5 is the field 5 , The level 1 memory address after conversion is described. IOP3000 (Fig. 7)
Look at this address translation buffer, do the address translation,
Next, if it is not here, the address conversion is performed by referring to the conversion table B ′ and the conversion table A, and the result is registered in this conversion buffer 3030. This address translation buffer is
It is in a high-speed local strange in OP3000, and is faster than searching the conversion tables B and A on the main storage device 2002. It should be noted here that the level 2 CCW, the level 3 CCW, and their data buffers must all be fixed on the level 1 memory during IO execution. Now, FIG. 5 shows a method of dividing a continuous area of the main storage device 2002 of the host system and using each divided area exclusively as a main storage device of each VM. When such a VM is used, if a constant address displacement α is added to the address of the main storage device of the VM, the main storage device 200 of the host system
It turns out that the address becomes 2. In the case of FIG. 5, VM
The address displacement of 1 is α 1 , and the address displacement of VM 2 is α 2 . In such a case, the conversion table 2010 for converting the level 2 memory address to the level 1 memory address is 2
As shown in 010 (2), a table for managing the lower limit address and the upper limit address of each VM is sufficient. In this case, the level 2 CCW address conversion is easy, and the entry of the address conversion buffer 3030 for the level 2 CCW (that is, the entry in which the field 3 of the address conversion buffer 3030 is 0) is unnecessary. Instead, the conversion table 2010 (2) shown in FIG.
There is also a method in which the address is converted (level 2 memory address → level memory address conversion) by taking in the local storage in 0 (FIG. 7), finding the address displacement α by VM #, and adding it. VM shown in FIG.
Main storage device 200 is the main storage device 200 of the host system
A fast VM mode is supported for VMs that are either resident at 2 and fixed, or that occupy some contiguous area of the host system's main memory as shown in FIG. In the high-speed VM mode, most privileged instructions issued by the OS on the VM are directly executed (execution method having the same performance as the host system without going through the VMCP).
To be done. However, the IO instruction on the VM requires VMCP intervention, as shown below.

【0006】さて、実際に、VM上のOSの発行したI
O起動命令が、どのようにして、VMCPにより実行さ
れるかを図6に示す。VM上のOSは、入出力装置と一
対一に対応するサブチャネルの番号(サブチャネル#)
を指定してIO起動命令を発行する。このサブチャネル
#は、該VM下のサブチャネル#であるので、仮想サブ
チャネル#と呼ぶことにする。VMCPは、これを、対
応する実サブチャネル#に変換する。この対応は、VM
の定義時、決定されるものである。VMCPは、IO起
動命令を発行したVM上のOSが、どのレベルCCWに
対してIOを発行したかを調べる。通常、それは、IO
起動命令のオペランドにより示される。今、レベル3C
CWに対して、IO起動命令が発行されたとする。図6
で、2810のCCW群がレベル3メモリ上のCCW群
であり、そのデータアドレスは、全てレベル3メモリア
ドレスである。VMCPは、このOSの生成したCCW
群2810に、2800のオペランドをつけてIO起動
命令を発行する。2800のオペランドには、CCWの
レベルを示すフィールドL、L=3のときは、変換表B
の先頭アドレスVATOR、及び、そのセグメントサイ
ズSS、ページサイズPSが記述されている。さらに、
変換表Aの先頭アドレスRATOR及び、そのセグメン
トサイズSS、ページサイズPSが記述され、CCW群
2810へのアドレスも記述されている。これらは、V
MCPのIO起動命令の発行により、線200経由でI
OP3000(図7)に送られ、該当するサブチャネル
レジスタ3011に基本情報が設定される。又、図7に
示す、サブチャネル制御ブロック群2090の中の該当
サブチャネル制御ブロック中にも同様の基本情報が記述
される(図10サブチャネル制御ブロック2091参
照)。さて、IOP3000(図7)は、このサブチャ
ネル内のアドレス変換情報を使って、OSの生成したC
CW群2810を、前述したごとく、アドレス変換しな
がら実行していくこととなる。
Now, actually, I issued by the OS on the VM
FIG. 6 shows how the O start instruction is executed by the VMCP. The OS on the VM has a sub-channel number (sub-channel #) that corresponds to the input / output device on a one-to-one basis.
Is specified to issue an IO start command. Since this subchannel # is a subchannel # under the VM, it will be called a virtual subchannel #. The VMCP translates this into the corresponding real subchannel #. This correspondence is VM
It is decided when the definition of. The VMCP checks to which level CCW the OS on the VM that has issued the IO activation instruction issued the IO. Usually it is IO
It is indicated by the operand of the start instruction. Level 3C now
It is assumed that the IO start instruction is issued to the CW. Figure 6
Then, the 2810 CCW group is the CCW group on the level 3 memory, and all the data addresses thereof are the level 3 memory addresses. VMCP is CCW generated by this OS
The IO activation instruction is issued to the group 2810 with 2800 operands. The operand 2800 is a field L indicating the level of CCW, and conversion table B when L = 3.
, The segment size SS, and the page size PS are described. further,
The start address RATOR of the conversion table A, its segment size SS, and page size PS are described, and the address to the CCW group 2810 is also described. These are V
Issuing the I / O start command of MCP, I via line 200
It is sent to OP3000 (FIG. 7) and basic information is set in the corresponding sub-channel register 3011. Also, similar basic information is described in the corresponding sub-channel control block in the sub-channel control block group 2090 shown in FIG. 7 (see sub-channel control block 2091 in FIG. 10). Now, the IOP 3000 (FIG. 7) uses the address translation information in this subchannel to generate the C generated by the OS.
As described above, the CW group 2810 is executed while translating the address.

【0007】図7は、従来のVMSにおけるハードウェ
ア構成図とIO実行に関するブロック図を示したもので
ある。CPU1000の中には、ハードウェアの割込情
報を含む領域プレフィクス(PSA)のアドレスを含む
プレフィクスレジスタ1010、CPUの制御レジスタ
群1100、CPUの基本状態(割込制御ビットや、次
に実行される機械命令アドレス等)を含むプログラムス
テータスワードPSW1020が存在する。さらに、I
O命令実行回路1030や、IO割込回路1040、I
O命令実行用マイクロプログラム1050、IO割込処
理用マイクロプログラム1060等が存在する。さら
に、VMS用フラグとして、VMモードを表わすvビッ
トが1090内に存在する。VM走行中は、VMCPに
より、このビットを1にセットする。又、前述した高速
VMモードフラグHも1090内に存在する。VMS制
御フラグ1090については、他の方式も考えられる。
例えば、VMCPのモード(ハイパバイザモード)とV
Mモード、そして、VMモードの中で、高速VMモード
と、一般VMモードというフラグを設けることも考えら
れている。いずれも大同小異であるので、従来例として
は図7に示すものをあげる。IOP3000について
は、前述したとおり、サブチャネル制御ブロック群20
90及び、サブチャネルレジスタ群3010に含まれる
アドレス変換情報(図6)により、マイクロプログラム
3020制御によって、アドレス変換バッファ3030
(図4−3参照)の情報を使用しながら、レベル3CC
W又はレベル2CCW(図3参照)を実行して行くもの
である。図7の主記憶装置2000は、ハードウェアシ
ステムエリアHSA2001と、プログラム可能エリア
2002に分割される。HSA2001は、CPU10
00及びIOP3000が使用するハードウェア情報が
含まれており、その領域は、CPU及びIOPのマイク
ロプログラム1050,1060,3020でアクセ
ス、更新することはできるが、CPU1000の一般の
ユーザに開放された機械命令ではアクセスすることはで
きない。プログラム可能エリア2002は、上記機械命
令でアクセスすることができ、ここが、OS又は、VM
CPからみた主記憶装置領域となる。IO命令の中で、
IOの起動、停止等の入出力装置のオペレーションを伴
うものは、その要求キューという形で、IO要求キュー
2070にキューイングされる。その実体は、図8で示
すように、IO要求のある実サブチャネル#を含む制御
ブロック2071をアドレスポインタでつないだもので
ある。IO要求キューへキューイングした後、IOP3
000へ線200経由で起動信号が送られる。IOP3
000側は、HSA2001内のIO要求キュー207
0へアクセスし、順次要求キューエレメント2071を
取出してIO要求処理を続行していくものである。又、
IO割込みは、IO割込要求キュー2080に、実割込
優先順位別にキューイングされる。その構造を、図9に
示す。割込優先順位は、0,1,2,3,4,5,6,
7の8種類あり、IO命令発行時、そのオペランドでサ
ブチャネル制御ブロック群2090(図7)の中の各サ
ブチャネル制御ブロックは、実サブチャネル#の順番に
ならべられており、その実サブチャネル#により、一意
に存在位置を求めることができる。このサブチャネル制
御ブロック群2090の先頭アドレスは、CPU100
0(図7)の制御レジスタ群1100の中のひとつの制
御レジスタに設定されている。割込優先順位は、各サブ
チャネルに対して指定することが可能である。さて、各
VM上のOSが、サブチャネル#及び、割込優先順位
(0〜7のいづれかひとつ)を指定してIO命令を発行
したとする。このとき、図7におけるVMモードビット
1090が1であるから、IO命令実行用μp1050
により、このビットが1のとき、VMCPへ制御を渡
す。これは、VMCPのPSA2100の中の新PSW
により、一種の割込みとして、VMCPへ制御が渡され
る。そのVMCPのPSAのアドレスは、VMの起動
時、VMCP用プレフィクスレジスタ1010(図7)
に設定されているので、それを参照する。
FIG. 7 is a block diagram showing a hardware configuration diagram and IO execution in a conventional VMS. In the CPU 1000, a prefix register 1010 including an area prefix (PSA) address including hardware interrupt information, a control register group 1100 of the CPU, a basic state of the CPU (interrupt control bit, and next execution) A program status word PSW1020 that contains the machine instruction address, etc.). Furthermore, I
O instruction execution circuit 1030, IO interrupt circuit 1040, I
There are an O instruction execution microprogram 1050, an IO interrupt processing microprogram 1060, and the like. Furthermore, as a flag for VMS, v bit indicating the VM mode exists in 1090. During VM running, this bit is set to 1 by VMCP. Further, the high speed VM mode flag H described above is also present in 1090. Other methods can be considered for the VMS control flag 1090.
For example, VMCP mode (hypervisor mode) and V
It is also considered to provide flags of a high-speed VM mode and a general VM mode in the M mode and the VM mode. Since all are the same and different, the conventional example is shown in FIG. Regarding the IOP 3000, as described above, the sub-channel control block group 20
90 and the address conversion information (FIG. 6) contained in the sub-channel register group 3010, the address conversion buffer 3030 is controlled by the microprogram 3020.
Level 3 CC using the information (see Figure 4-3)
W or level 2 CCW (see FIG. 3) is executed. The main memory 2000 of FIG. 7 is divided into a hardware system area HSA 2001 and a programmable area 2002. HSA2001 is CPU10
00 and IOP 3000 includes hardware information, and the area can be accessed and updated by the CPU and IOP microprograms 1050, 1060, and 3020, but the machine is open to general users of the CPU 1000. It cannot be accessed by instruction. The programmable area 2002 can be accessed by the above machine instruction, and this is the OS or VM.
It becomes the main memory area as seen from the CP. In the IO command,
Those associated with the operations of the input / output device such as the start and stop of IO are queued in the IO request queue 2070 in the form of the request queue. The substance is, as shown in FIG. 8, a control block 2071 including an actual subchannel # with an IO request, which is connected by an address pointer. After queuing to the IO request queue, IOP3
An activation signal is sent via line 200 to 000. IOP3
On the 000 side, the IO request queue 207 in the HSA 2001
0 is accessed, the request queue element 2071 is sequentially taken out, and IO request processing is continued. or,
IO interrupts are queued in the IO interrupt request queue 2080 according to actual interrupt priority. The structure is shown in FIG. The interrupt priority is 0, 1, 2, 3, 4, 5, 6,
There are eight types of sub-channel control blocks in the sub-channel control block group 2090 (FIG. 7) when the IO command is issued, and the sub-channel control blocks in the sub-channel control block group 2090 (FIG. 7) are arranged in the order of the real sub-channel #. By this, the existence position can be uniquely obtained. The head address of this sub-channel control block group 2090 is the CPU 100
It is set to one control register in the control register group 1100 of 0 (FIG. 7). The interrupt priority can be specified for each sub-channel. Now, it is assumed that the OS on each VM issues the IO command by designating the sub-channel # and the interrupt priority (one of 0 to 7). At this time, since the VM mode bit 1090 in FIG. 7 is 1, the IO instruction execution μp 1050
Thus, when this bit is 1, control is passed to VMCP. This is the new PSW in the VMCP PSA2100.
As a result, control is passed to VMCP as a kind of interrupt. The PSA address of the VMCP is the VMCP prefix register 1010 (FIG. 7) when the VM is started.
It is set to, so refer to it.

【0008】さて、VMCPは、VM上のOSの指定し
たサブチャネル#を仮想サブチャネル#と見て、それを
実サブチャネル#に変換して、実サブチャネルの状態を
管理し、もし可能であれば、(図6に示すアドレス変換
情報2800を指定して)IO命令をVM上のOSにか
わって発行する。
Now, the VMCP looks at the subchannel # specified by the OS on the VM as a virtual subchannel #, converts it into a real subchannel #, manages the state of the real subchannel #, and if possible, If there is, the IO command is issued on behalf of the OS on the VM (by designating the address translation information 2800 shown in FIG. 6).

【0009】このとき、VM上のOSの指定した割込優
先順位は、仮想割込優先順位であるが、それをそのまま
実仮想割込優先順位として、IO命令を発行する。した
がって、各実割込優先順位をVM上のOS間で共有する
ことになる。したがって図9におけるIO割込要求キュ
ー2080の各実割込優先順位のキューの中には、各V
M上のOSのサブチャンネルからのIO割込要求が混在
してキューイングされることとなる。
At this time, the interrupt priority designated by the OS on the VM is the virtual interrupt priority, and the IO instruction is issued with the virtual priority as it is. Therefore, each real interrupt priority is shared between the OSs on the VM. Therefore, each V in the queue of each actual interrupt priority of the IO interrupt request queue 2080 in FIG.
IO interrupt requests from the sub-channels of the OS on M are queued together.

【0010】VM上のOSからのIO命令の実行をVM
CPが介入する理由は、以下のとおりである。
Execution of IO instructions from the OS on the VM
The reasons for CP intervention are as follows.

【0011】(i)VM上のOS上の指定した仮想サブ
チャンネル#を実サブチャンネル#に変換しなければな
らないこと。
(I) The virtual subchannel # specified on the OS on the VM must be converted to the real subchannel #.

【0012】(ii)実サブチャンネルを各VM上のOS
間で共有する場合があるので、その間のサブチャンネル
スケジュールが必要であること。
(Ii) The OS on each VM is the actual subchannel
It may be shared among others, so a sub-channel schedule between them is required.

【0013】以上のごとく、I/O命令の内の、I/O
起動、停止等の入出力装置のオペレーションを伴うもの
については、VMCPによるシミュレーションがなさ
れ、そのオーバヘッドが高い。
As described above, of the I / O instructions, the I / O
For those involving operations of the input / output device such as starting and stopping, simulation by VMCP is performed, and the overhead is high.

【0014】次に、図11にIO割込の制御方法につい
て示す。各サブチャンネルからIO割込要求は、IOP
3000により検出され、対応するサブチャンネル制御
ブロックがIO割込要求キュー2080にキューイング
される(図7参照)。そのIO割込要求キューの構造は
図9に示すとおり、実割込優先順位別にキューイングさ
れる。この時、図11に示す対応する実割込保留レジス
タ1042のビットが1にセットされる。割込保留レジ
スタ1042のビットと対応する実割込優先順位マスク
レジスタ1041のビットが共に1でかつ、PSW10
20IOマスクが1のとき該当する実割込優先順位に対
してIO割込が起動されIO割込処理用マイクロプログ
ラム1060に制御が渡される。以上の動作は図11に
示すハードウェア回路により実現される。
Next, FIG. 11 shows a method of controlling the IO interrupt. IO interrupt request from each sub-channel is IOP
Detected by 3000, the corresponding sub-channel control block is queued in IO interrupt request queue 2080 (see FIG. 7). As shown in FIG. 9, the structure of the IO interrupt request queue is queued according to the actual interrupt priority. At this time, the bit of the corresponding real interrupt holding register 1042 shown in FIG. 11 is set to 1. Both the bits of the interrupt pending register 1042 and the corresponding bits of the actual interrupt priority mask register 1041 are 1 and the PSW10
When the 20IO mask is 1, the IO interrupt is activated for the corresponding real interrupt priority, and the control is passed to the IO interrupt processing microprogram 1060. The above operation is realized by the hardware circuit shown in FIG.

【0015】さて、VMSにおいては、前述したよう
に、各実割込優先順位が、VM上のOS間で共有される
ので、VM走行中は実割込優先順位マスクレジスタ10
41の各ビットは各VM上のOSの割込優先順位マスク
値のORを取った値又は、1にセットして、常に割込可
能としておく。さらに、この場合PSW1020のIO
マスクも1に設定しておく。こうすることにより、サブ
チャンネルからのIO割込要求によって、実割込保留レ
ジスタ1042のあるビットが1になると、ANDゲー
ト群1046の内の一つのANDゲートの出力が1とな
り、従ってORゲート1043の出力が1となり、AN
Dゲート1044の出力が1となって図11に示すIO
割込回路によって、ただちにIO割込処理用マイクロプ
ログラム1060が起動される。そのIOマイクロプロ
グラム1060は、該当する実割込優先順位上のIO割
込要求キュー(図9)にキューイングされているサブチ
ャンネルをキューより取りはずして割込をVMCPのプ
レフィックスに反映する。このとき、当該実割込優先順
位の割込要求キューが空になれば当該実割込優先順位の
実割込保留レジスタ1042のビットを0とする。これ
によりその割込保留がクリアされる。VMCPへ割込反
映することにより、VMCPのIO割込処理プログラム
へ制御が渡される。その時、IO割込パラメータとして
当該IO割込を発生した実サブチャンネル#および該当
VM#もVMCPに渡される。VMCPはこのIO割込
を該当VMに反映するために、以下の処理を行う。
As described above, in the VMS, since the respective actual interrupt priorities are shared by the OSs on the VM, the actual interrupt priority mask register 10 is kept running during the VM running.
Each bit of 41 is set to a value obtained by ORing the interrupt priority mask values of the OS on each VM or set to 1 so that interrupts are always enabled. Furthermore, in this case, the IO of the PSW1020
The mask is also set to 1. By doing so, when an IO interrupt request from the subchannel causes a certain bit of the actual interrupt pending register 1042 to become 1, the output of one AND gate in the AND gate group 1046 becomes 1, and thus the OR gate 1043. Output becomes 1 and AN
The output of the D gate 1044 becomes 1 and the IO shown in FIG.
The interrupt circuit immediately activates the IO interrupt processing microprogram 1060. The IO microprogram 1060 removes the subchannel queued in the IO interrupt request queue (FIG. 9) on the corresponding real interrupt priority from the queue and reflects the interrupt in the VMCP prefix. At this time, if the interrupt request queue of the actual interrupt priority becomes empty, the bit of the actual interrupt holding register 1042 of the actual interrupt priority is set to 0. This clears the interrupt hold. By reflecting the interrupt in the VMCP, the control is passed to the IO interrupt processing program of the VMCP. At that time, the actual sub-channel # that generated the IO interrupt and the corresponding VM # are also passed to the VMCP as the IO interrupt parameters. The VMCP performs the following processing in order to reflect this IO interrupt in the corresponding VM.

【0016】(i)実サブチャンネル#を仮想サブチャ
ンネル#に変換する。
(I) Convert the real subchannel # into a virtual subchannel #.

【0017】(ii)該当VMの割込優先順位マスクレジ
スタとそのPSWのIOマスクを調べ、それがIO割込
可能であるか否かを判断する。
(Ii) Check the IO priority mask register of the corresponding VM and the IO mask of the PSW, and determine whether or not the IO interrupt is possible.

【0018】(iii)該当VMが割込可能であるとき、
そのVMのプレフィックスPSAに割込を反映する。
(Iii) When the corresponding VM can be interrupted,
The interrupt is reflected in the prefix PSA of the VM.

【0019】(iv)該当VMが割込不可能であるとき
は、VMCPで当該割込を保留する。
(Iv) When the corresponding VM cannot be interrupted, the VMCP suspends the interrupt.

【0020】このように、実割込優先順位をVM間で共
有するために、そのマスクを、各VMの該当するマスク
値のORをとった値に(通常1)に設定しなければなら
ない。このため、該当VMでは割込不可能な順位に対し
てもVMCPに割込が入る場合が有り、その時はVMC
Pで当該IOを保留することとなる。このため、以後当
該サブチャンネルに対するIO命令に対しては、必ずV
MCPの介入によるシミュレーションが必要となる。
As described above, in order to share the actual interrupt priority order among VMs, the mask must be set to a value (usually 1) obtained by ORing the corresponding mask values of each VM. For this reason, there may be a case where an interrupt occurs in the VMCP even for a rank that cannot be interrupted by the corresponding VM.
P will hold the IO. Therefore, the IO command for the relevant sub-channel is always V
Simulation with MCP intervention is required.

【0021】[0021]

【発明が解決しようとする課題】以上によって示したと
おり、従来の仮想計算機システムにおけるVM上のOS
のIO起動命令の実行においては、IOPによるレベル
3CCWおよびレベル2CCWの直接実行の機能は存在
するけれども必ずVMCPが介入して、そのシミュレー
ションが必要である。このためIO発行頻度の高い負荷
に対しては、VMCPのシミュレーションオーバーヘッ
ドが大きくなる。このようなI/O命令実行の結果とし
て生じるI/O割り込みについても同様の問題があっ
た。
As described above, the OS on the VM in the conventional virtual computer system
In the execution of the IO start instruction of (3), although the function of the direct execution of the level 3 CCW and the level 2 CCW by the IOP exists, the VMCP always intervenes and its simulation is necessary. For this reason, the simulation overhead of VMCP becomes large for a load with a high IO issue frequency. The I / O interrupt generated as a result of such I / O instruction execution has the same problem.

【0022】以上の問題は、走行中のOSが発行するI
/O命令の内、I/O装置の動作を伴なわない他の命
令、例えば、保留されたI/O割り込みの有無を調べる
命令の場合も同様である。
The above problems are caused by the I issued by the running OS.
The same applies to other instructions that do not involve the operation of the I / O device, for example, an instruction to check the presence / absence of a pending I / O interrupt.

【0023】本発明の目的は、上記I/O割込み検査命
令のごとく、I/O起動命令以外の命令の、VMCPに
よるシミュレーションオーバヘッドをなくす命令実行方
法を提供することにある。
It is an object of the present invention to provide an instruction execution method for eliminating the simulation overhead of VMCP for instructions other than the I / O activation instruction, such as the I / O interrupt check instruction.

【0024】[0024]

【課題を解決するための手段】本VM上のOSのIO命
令及IO割込に対して、VMCPが介入する理由は、従
来技術でも述べたように以下のとおりである。
The reason why the VMCP intervenes with respect to the IO instruction and IO interrupt of the OS on the VM is as described in the prior art as follows.

【0025】(i)仮想サブチャンネル#と実サブチャ
ネル#との間の変換が必要なこと。
(I) Conversion between virtual subchannel # and real subchannel # is required.

【0026】(ii)実サブチャネルをVM上のOS間で
共有する場合があり、サブチャネルスケジュールが必要
であること。
(Ii) A real subchannel may be shared between OSs on a VM, and a subchannel schedule is required.

【0027】(iii)実割込優先順位をVM間で共有す
ることがあるので、その割込制御マスクを、各VM上の
OSの割込制御マスク値のORを取った値にセットしな
ければならず、そのため、VMCPによるVMのIO割
込保留が発生すること。これを防ぎハードウェア側でI
O割込を保留するためには、各VM用の割込制御マスク
レジスタを用意しなければならず、割込保留レジスタも
又、各VM対応に用意しなければならなくなり、ハード
ウェア量が大きくなりすぎて得策ではない。以上を解決
するため本発明の望ましい実施態様では、以下の方式を
取る。
(Iii) Since the actual interrupt priority order may be shared between VMs, the interrupt control mask must be set to a value obtained by ORing the interrupt control mask values of the OS on each VM. Therefore, the VM's IO interrupt reservation by VMCP must occur. To prevent this, I on the hardware side
In order to hold the O interrupt, an interrupt control mask register for each VM must be prepared, and an interrupt hold register must also be prepared for each VM, resulting in a large amount of hardware. It's too good to be good. In order to solve the above, a preferred embodiment of the present invention adopts the following method.

【0028】(i)仮想サブチャネル#から実サブチャ
ネル#への変換表をVMCPが用意し、 IO命令
実行用マイクロプログラムにより、これを使用して変換
する。 (ii)実サブチャネル制御ブロックの中に、VM情報領
域を設け、ここに、仮想サブチャネル#と変換後の実サ
ブチャネル#との対応を記述する。
(I) The VMCP prepares a conversion table from the virtual sub-channel # to the real sub-channel #, and the conversion table is converted by using the IO instruction execution microprogram. (Ii) The VM information area is provided in the real subchannel control block, and the correspondence between the virtual subchannel # and the converted real subchannel # is described therein.

【0029】(iii)実サブチャネル制御ブロックのV
M情報領域の中に、状態フィールドを設け、専有サブチ
ャネルか否を示すフラグを設ける。このフラグは、VM
CPによるサブチャネル専有指定時、あるいは、VMの
定義情報でサブチャネル専有指定がある場合は、VMの
定義時に、設定されるものである。このフラグが1のと
きは、当該VMに専有されたサブチャネルであるので、
VMCPによるサブチャネルスケジュールは不要であ
る。
(Iii) V of the actual subchannel control block
A status field is provided in the M information area, and a flag indicating whether or not it is a dedicated subchannel is provided. This flag is VM
It is set when the sub-channel occupancy is designated by the CP, or when the sub-channel occupancy is designated in the VM definition information, when the VM is defined. When this flag is 1, it means that the sub-channel is exclusively used by the VM.
No sub-channel schedule by VMCP is required.

【0030】(iv)実割込優先順位をVMに専有させる
ことにより、その優先順位における割込要求キューの中
には、専有元VMのIO要求のあったサブチャネルのみ
がキューイングされることになり、その実割込優先順位
でのVMの混在は、避けることができる。さらに、その
専有された、実割込優先順位の割込制御マスクは、専有
元VM上のOSの対応する割込制御マスクの値と一致さ
せることにする。これにより、VM上のOSの割込優先
順位の割込制御マスクが0のため割込不可能である場合
は、対応する実割込優先順位の割込制御マスクも0であ
るため、ハードウェアの割込も発生せず、従って、ハー
ドウェアにより割込が保留され、VMCPによるVMの
IOの割込保留という事象を避けることができる。
(Iv) By allocating the VM to the actual interrupt priority order, only the sub-channel for which the IO request of the exclusive source VM has been queued in the interrupt request queue at that priority order. Therefore, the mixture of VMs in the actual interrupt priority can be avoided. Further, the exclusive interrupt control mask of the actual interrupt priority order is made to match the value of the corresponding interrupt control mask of the OS on the exclusive source VM. As a result, when the interrupt control mask of the interrupt priority of the OS on the VM cannot be interrupted because it is 0, the corresponding interrupt control mask of the actual interrupt priority is also 0. Therefore, the interruption of the interrupt by the hardware and the interruption of the VM IO by the VMCP can be avoided.

【0031】以上の方式をサポートするため、実割込優
先順位の種類を増加し、VMによる実割込優先順位の専
有を可能とすることにする。
In order to support the above method, the types of actual interrupt priorities will be increased so that the VM can occupy the actual interrupt priorities.

【0032】とくに、本発明では、I/O割込み検査命
令の場合も、その命令が指定する実割り込み優先順位が
その命令を発行した走行中のOSに専有されている場合
には、その命令を、VMCPの介入を求めることなく直
接実行するようにした。
In particular, according to the present invention, even in the case of an I / O interrupt check instruction, if the actual interrupt priority designated by the instruction is exclusive to the running OS that issued the instruction, the instruction is executed. , Directly without VMCP intervention.

【0033】[0033]

【作用】I/O割込み検索命令を直接実行することによ
りVMCPによるシミュレーションオーバヘッドを削減
できる。
By directly executing the I / O interrupt search instruction, the simulation overhead due to VMCP can be reduced.

【0034】[0034]

【実施例】以下に本発明の実施例を示す。図12に、本
発明の実施例の全体図を示す。
EXAMPLES Examples of the present invention will be shown below. FIG. 12 shows an overall view of an embodiment of the present invention.

【0035】CPU1000′の各構成要素は、従来例
の図7と同じであるが、やや機能が大きくなっているも
のがある。HSA2001の中には、従来例の図7と同
じものも存在する。(IO要求キュー2070、IO割
込要求キュー2080、実サブチャネル制御ブロック群
2090′)。しかし、プレフイクス管理表2300、
変換表アドレス管理表2400、VM管理表2700は
新規の情報である。
The respective constituent elements of the CPU 1000 'are the same as those of the conventional example shown in FIG. 7, but some have a slightly larger function. Among the HSA 2001, there is the same one as shown in FIG. 7 of the conventional example. (IO request queue 2070, IO interrupt request queue 2080, real subchannel control block group 2090 '). However, the prefix management table 2300,
The conversion table address management table 2400 and the VM management table 2700 are new information.

【0036】プログラム可能エリア2002には、従来
例の図7と同じもの(VMCPのPSA2100,VM
1のPSA2110、VM2のPSA2120、他のV
MのPSAも同様に存在しても良い。
Programmable area 2002 is the same as the conventional example shown in FIG. 7 (VMCP PSA 2100, VM
1 PSA 2110, VM2 PSA 2120, other V
M PSAs may be present as well.

【0037】VMCP2200、レベル2メモリからレ
ベル1メモリへのアドレス変換テーブル群2010、レ
ベル3メモリからレベル2メモリへのアドレス変換テー
ブル群2040)も存在する。しかし、割込優先順位#
変換テーブル2500、サブチャネル#変換テーブル群
2600は新規の情報である。IOP3000′は、従
来例図7のIOP3000と同様の構成であるが、やや
機能が大きくなっている。以下に先ず、HSA2001
及びプログラム可能エリア2002に含まれる新規情報
について説明する。
There is also a VMCP 2200, a level 2 memory to level 1 memory address conversion table group 2010, and a level 3 memory to level 2 memory address conversion table group 2040). But interrupt priority #
The conversion table 2500 and the sub-channel # conversion table group 2600 are new information. The IOP 3000 'has the same configuration as the IOP 3000 of the conventional example FIG. 7, but has a slightly larger function. First, the HSA2001
The new information included in the programmable area 2002 will be described.

【0038】図13にプレフイクス管理表2300を示
す。これは、VMCPのPSAアドレス、VM1のPS
Aアドレス、VM2のPSAアドレス、VM3のPSA
アドレスを含む。図13では、VM3までしか示してい
ないが、もっとも多くのVMのPSAが登録されていて
も良い。このPSAのアドレスは、CPU1000′の
μプログラムが参照するものであり、プログラム可能エ
リア2002のホストシステムにおけるアドレスが記述
されている。この各VMのPSAアドレスは、VMの起
動時、起動専用命令のオペランドのひとつとして与えら
れ、その命令の処理時、プレフイクス管理表2300の
該当エントリに格納される。このプレフイクス管理表2
300の先頭アドレスは、CPU1000′の制御レジ
スタ群1100′の中のひとつに格納される(図12参
照)このプレフイクス管理表はオプションであり必須で
はない。どういう時に使用されるかは後述する。次に図
14に変換表アドレス管理表2400を示す。このアド
レス管理表2400は、サブチャネル#変換テーブル2
600の先頭アドレスと、割込優先順位#変換テーブル
2500の先頭アドレスを、各VM対応に管理している
ものである。変換表アドレス管理表2400の先頭アド
レスも又、CPU1000′の制御レジスタ群110
0′の中のひとつに格納されている。サブチャネル#変
換表2600、割込優先順位変換表2500の検索方法
は、図14に示すとおりである。すなわち、仮想サブチ
ャネル#(2バイトからなる)を、D0・256+D1
に分解し、先ず、アドレス管理表2400の該当エント
リの内容が指し示す前段のテーブル2601を、D0に
より検索する。前段テーブル2601のD0番目のエン
トリには、後段テーブル2602のアドレスが設定され
ており、その後段テーブル2602のD1番目のエント
リを検索する。そこに、対応する実サブチャネル#D
0′・256+D1′が求められる。仮想割込優先順位
#の変換は、変換表2500の該当エントリを読み出す
のみで対応する実割込順位#に変換される。サブチャネ
ル#変換表2600、割込優先順位変換表2500は、
VMCPのコマンドによる指定時、又、VMの定義情報
の中から、VM定義時に、VMCPにより作られ、VM
の起動時、起動専用命令のオペランドにより指定され、
その起動専用命令の処理時、変換表アドレス管理表24
00の該当エントリに格納される。この変換表260
0、2500、2400もオプションであり必須ではな
い。すなわち、VMSにおいて、本発明のIO実行方式
を用いるVMは、仮想サブチャネル#=実サブチャネル
#、仮想割込優先順位#=実割込優先順位#という制限
を守ることにすれば、これらの変換表は不要である。
FIG. 13 shows the prefix management table 2300. This is the PSA address of VMCP, the PS of VM1
A address, PSA address of VM2, PSA of VM3
Contains the address. Although only VM3 is shown in FIG. 13, PSA of most VMs may be registered. The address of this PSA is referred to by the μ program of the CPU 1000 ′, and the address of the programmable area 2002 in the host system is described. The PSA address of each VM is given as one of the operands of the start-only instruction when the VM is started, and is stored in the corresponding entry of the prefix management table 2300 when the instruction is processed. This Prefix Management Table 2
The head address of 300 is stored in one of the control register groups 1100 'of the CPU 1000' (see FIG. 12). This prefix management table is optional and not essential. The time when it is used will be described later. Next, FIG. 14 shows the conversion table address management table 2400. This address management table 2400 is a subchannel # conversion table 2
The start address of 600 and the start address of the interrupt priority level # conversion table 2500 are managed for each VM. The start address of the conversion table address management table 2400 is also the control register group 110 of the CPU 1000 '.
It is stored in one of 0 '. The method of searching the sub-channel # conversion table 2600 and the interrupt priority conversion table 2500 is as shown in FIG. That is, the virtual subchannel # (consisting of 2 bytes) is set to D0 · 256 + D1.
First, the table 2601 at the preceding stage indicated by the content of the corresponding entry of the address management table 2400 is searched for by D0. The address of the latter stage table 2602 is set in the D0th entry of the former stage table 2601, and the D1th entry of the latter stage table 2602 is searched. There, the corresponding real subchannel #D
0'.256 + D1 'is obtained. The virtual interrupt priority # is converted into the corresponding real interrupt priority # only by reading the corresponding entry in the conversion table 2500. The sub-channel # conversion table 2600 and the interrupt priority conversion table 2500 are
The VM is created by the VMCP when specified by the VMCP command or when the VM is defined from the VM definition information.
Is specified by the operand of the start-only instruction when
The conversion table address management table 24 during the processing of the activation-only instruction
00 is stored in the corresponding entry. This conversion table 260
0, 2500, and 2400 are also optional and are not essential. In other words, in the VMS, the VM using the IO execution method of the present invention, if the restrictions of virtual subchannel # = real subchannel #, virtual interrupt priority # = real interrupt priority # are kept, No conversion table is required.

【0039】図15は、VM管理表2700の内容を示
す。この中には、該当VMの主記憶装置のサイズ(Z
0,Z1,…)と、そのレベル2メモリアドレスからレ
ベル1メモリアドレスへのアドレス変換テーブル201
0のアドレス(RATOR0,RATOR1,…)が記
述されている。これらの情報は、VMの定義情報から得
られるものであり、VMの起動専用命令により、HSA
2001内のVM管理表2700の該当エントリに格納
される。VM管理表2700の先頭アドレスも又、CP
U1000′内の制御レジスタ群1100′(図12参
照)のひとつに格納される。HSA2001内の制御ブ
ロックの先頭アドレスが、CPU1000′内の制御レ
ジスタ1100′に格納されることは従来と同じであ
る。もし、本発明のIO実行方式をサポートするVMを
図5に示す、主記憶装置2002上の連続領域を、その
主記憶装置として専有するようなVMだけに限定する場
合は、その上下限を定義した変換表2010(2)をも
って、このVM管理表2700の代わりとすることも可
能である。もし、図5の変換表2010(2)を使う場
合は、この上下限アドレスαi,αi+1(i=1,2,3
…)がVM起動命令によって指定され、その命令処理に
より、HSA2001に、この変換表2010(2)の
該当エントリが作られることになる。図16は、実サブ
チャネル制御ブロック群2090′、その中の、ひとつ
の実サブチャネル制御ブロック2091′及び、その中
のVM情報領域2092′を示す。VM情報領域209
2′の中には、状態フィールド、VM#、仮想サブチャ
ネル#、対応する実サブチャネル#、仮想割込優先順位
#、対応する実割込優先順位#、CCWのアドレス変換
情報2094が存在する。状態フィールドには、このサ
ブチャネルが占有されているか否か、このサブチャネル
がIO直接実行抑止モードか否かを示すフラグが存在す
る。CCWのアドレス変換情報2094は、従来のアド
レス変換情報2092(図10参照)と同じ内容であ
る。VMの定義時VM定義情報から、又は、VMCPの
コマンドによる指定時、又は、IO命令の処理時、これ
らのVM情報領域2092′内の情報が設定される。
FIG. 15 shows the contents of the VM management table 2700. In this, the size (Z
0, Z1, ...) and its address conversion table 201 from the level 2 memory address to the level 1 memory address.
Address 0 (RATOR0, RATOR1, ...) Is described. These pieces of information are obtained from the definition information of the VM, and the HSA is activated by the VM start-up command.
It is stored in the corresponding entry of the VM management table 2700 in 2001. The start address of the VM management table 2700 is also CP
It is stored in one of the control register group 1100 '(see FIG. 12) in U1000'. The start address of the control block in the HSA 2001 is stored in the control register 1100 'in the CPU 1000' as in the conventional case. If the VM that supports the IO execution method of the present invention is limited to the VM that occupies the main storage device 2002 shown in FIG. 5 as the main storage device, the upper and lower limits are defined. The conversion table 2010 (2) described above can be used as a substitute for the VM management table 2700. If the conversion table 2010 (2) of FIG. 5 is used, the upper and lower limit addresses α i , α i + 1 (i = 1, 2, 3
...) is designated by the VM start instruction, and the corresponding entry of the conversion table 2010 (2) is created in the HSA 2001 by the instruction processing. FIG. 16 shows a real sub-channel control block group 2090 ', one real sub-channel control block 2091' in it, and a VM information area 2092 'in it. VM information area 209
2'includes a status field, VM #, virtual subchannel #, corresponding real subchannel #, virtual interrupt priority #, corresponding real interrupt priority #, and CCW address conversion information 2094. . In the status field, there is a flag indicating whether or not this subchannel is occupied and whether or not this subchannel is in the IO direct execution inhibiting mode. The CCW address translation information 2094 has the same contents as the conventional address translation information 2092 (see FIG. 10). The information in the VM information area 2092 'is set from the VM definition information at the time of defining the VM, at the time of designation by the VMCP command, or at the time of processing the IO instruction.

【0040】実サブチャネルの専有又は、実割込優先順
位の専有は、VMの定義時又は、VMCPコマンドによ
り指定される。この指定のとき、VM情報領域209
2′の中の以下のフィールドが設定される。
The occupancy of the real sub-channel or the occupancy of the real interrupt priority is designated at the time of defining the VM or by the VMCP command. When this designation is made, the VM information area 209
The following fields in 2'are set.

【0041】・状態フィールド2093内のサブチャネ
ル占有フラグ ・I/O直接実行モード抑止フラグは通常0にセットさ
れ、I/O直接実行モードはサポート状態にされる。
The sub-channel occupation flag in the status field 2093 The I / O direct execution mode inhibition flag is normally set to 0, and the I / O direct execution mode is set to the supported state.

【0042】・専有元のVM# ・仮想サブチャネル#と実サブチャネル# ・CCWのアドレス変換情報2094の中で、当該専有
元VMの主記憶装置(レベル2メモリ)からレベル1メ
モリへのアドレス変換テーブルの先頭アドレス(RAT
OR第4図(a)参照)これはもし、専有元VMが、図
5に示す、主記憶装置を専有する場合は、その上下限α
i,αi+1(i=1,2,3…)を設定するようにしても
良い。
-VM of exclusive source-Virtual subchannel # and real subchannel # -Address of CCW address conversion information 2094 from main memory (level 2 memory) of the exclusive source VM to level 1 memory Start address of conversion table (RAT
OR (see FIG. 4 (a)) If the exclusive source VM exclusively uses the main storage device shown in FIG. 5, its upper and lower limit α
It is also possible to set i , α i + 1 (i = 1, 2, 3 ...).

【0043】共有サブチャネルの場合は、これらの情報
は、もし必要なら、IO命令処理時に設定される。この
場合は、IO発行元VMのVM情報領域の該当フィール
ドに設定される。
In the case of shared subchannels, this information is set during IO instruction processing, if necessary. In this case, it is set in the corresponding field of the VM information area of the IO issuer VM.

【0044】図17に、VM起動用の命令フォーマット
を示す。2900がVM起動命令であり、2910は、
そのオペランドである。オペランド2910の中には、
当該VM#、VMのPSW、VMのPSAアドレス、サ
ブチャネル#変換テーブル2600(図14)の先頭ア
ドレス、割込優先順位#変換テーブル2500(図1
4)の先頭アドレス、当該VMの主記憶装置からホスト
システムの主記憶装置へのアドレス変換テーブル201
0(図15)の先頭アドレス(RATOR)(図4
(a)参照))、当該VMの主記憶装置サイズ(この2
つについては、起動するVMが、図5に示す、主記憶装
置2002の連続領域をVMの主記憶装置として使用す
る場合はその上下限αi,αi+1(i=1,2,…)を指
定しても良い。)等が記述されている。これらのオペラ
ンド情報の中で、VMの走行用PSW、VMのPSAア
ドレス及び実割込優先順位ステータス、及び、VMS制
御フラグ群は、VM起動時に決定されるが、その他の多
くの情報は、前述したとおりVMの定義情報により、V
Mの定義時に決定されるものである。実割込優先順位ス
テータス、及び実割込優先順位専有ステータス、及びV
MS制御フラグ群は、後程説明する。これらのオペラン
ドは、VMCPにより設定される。VMの起動用命令に
ついては、必らずしも、図17に示す形式でなくても良
い。ただ、オペランドとして、図17に示すような情報
が必要である。図18はVMS制御レジスタ群1080
を表わす。レジスタ1081は、現走行VMのVM#を
含み、VM起動命令により設定される。このレジスタの
内容は、VM起動命令のオペランド2910(図17)
のひとつのフイールドの内容で与えられる。図19は、
VMS制御フラグ群1090′(図12参照)を示す。
これらのフラグは、VM起動命令のオペランド(図1
7)のひとつのフイールドで初期値が与えられる。各フ
ラグの意味は以下のとおりである。
FIG. 17 shows an instruction format for activating a VM. 2900 is a VM start command, and 2910 is
That is the operand. In the operand 2910,
The VM #, the PSW of the VM, the PSA address of the VM, the start address of the subchannel # conversion table 2600 (FIG. 14), the interrupt priority # conversion table 2500 (FIG. 1).
4) start address, address conversion table 201 from the main memory of the VM to the main memory of the host system
0 (FIG. 15) start address (RATOR) (FIG. 4
(See (a))), the main storage device size of the VM (this 2
Regarding one, when the VM to be started uses the continuous area of the main storage device 2002 shown in FIG. 5 as the main storage device of the VM, its upper and lower limits α i , α i + 1 (i = 1, 2, ...). ) May be specified. ) Etc. are described. Among these operand information, the running PSW of the VM, the PSA address of the VM, the actual interrupt priority status, and the VMS control flag group are determined at the time of starting the VM, but much other information is described above. As described above, according to the definition information of VM, V
It is determined when M is defined. Real interrupt priority status, real interrupt priority exclusive status, and V
The MS control flag group will be described later. These operands are set by VMCP. The VM activation instruction need not necessarily be in the format shown in FIG. However, the information shown in FIG. 17 is required as an operand. FIG. 18 shows VMS control register group 1080
Represents The register 1081 includes the VM # of the current running VM and is set by the VM start command. The content of this register is the operand 2910 (FIG. 17) of the VM start instruction.
It is given in the content of one field of. FIG. 19 shows
A VMS control flag group 1090 '(see FIG. 12) is shown.
These flags are operands of the VM start instruction (see FIG.
The initial value is given by one field of 7). The meaning of each flag is as follows.

【0045】V:VM走行時1とする。VMCP走行
時、又は、実計算機モード時0となる。
V: 1 when running in VM. It becomes 0 when running in VMCP or when in the real computer mode.

【0046】VM起動命令により1に設定され、割出し
等で、VMCPに制御が渡されるとき、0にセットされ
る。これは従来のとおり(図7である。
It is set to 1 by a VM start instruction and set to 0 when control is passed to VMCP for indexing or the like. This is the same as the conventional one (FIG. 7).

【0047】H:VMの走行において、特権命令の直接
実行が可能であるとき1をセットする。このフラグが1
のとき、VMの走行における大部分の特権命令は、CP
U1000′の命令実行回路により直接実行される。H
=1のとき高速VMモードという。これも従来どおり
(図7参照)。
H: Set to 1 when a privileged instruction can be directly executed in running VM. This flag is 1
, Most of the privileged instructions in running VM are CP
It is directly executed by the instruction execution circuit of U1000 '. H
When = 1 it is called a high speed VM mode. This is also the same as before (see FIG. 7).

【0048】R:VM上のOSに制限を与え、常に仮想
サブチャネル#=実サブチャネル#かつ常に、仮想割込
優先順位#=実割込優先順位#のとき、1をセットす
る。これが1のとき、μプログラムによるサブチャネル
#変換処理、割込優先順位#変換処理を全て除外する。
(このとき、図14に示す変換表類2400,260
0,2500は不要である。) D:本発明で可能となるVMのIO直接実行(VMCP
を介入しないことを意味する)を有効とするとき1とす
る。通常VMCPのVM起動命令により1に初期化され
る。
R: The OS on the VM is restricted, and 1 is set when the virtual subchannel # = real subchannel # and the virtual interrupt priority # = real interrupt priority # always. When this is 1, all sub-channel # conversion processing and interrupt priority # conversion processing by the μ program are excluded.
(At this time, the conversion tables 2400 and 260 shown in FIG.
0,2500 is unnecessary. D: Direct IO execution of VM (VMCP) enabled by the present invention
It means 1) does not intervene) and is 1 when it is valid. Normally, it is initialized to 1 by the VM start command of VMCP.

【0049】N:このフラグは本実施例に特徴的なもの
であり、現走行VMが、共有割込優先順位に関する割込
保留要因を持ち(実際はVMCPが当該VM用に保留し
ているものである)、現走行VMの仮想割込優先順位マ
スクに関しては割込可能であるものが存在する(従っ
て、当該VMのPSWのIOマスクが0のため割込不可
能となっている)とき、1に設定する。これは、仮想割
込優先順位に関しては割込可能な、VMのIO割込要求
を調べる命令の実行時に使用する。これも、VMCPが
VM起動命令により初期化する。
N: This flag is characteristic of this embodiment, and the current running VM has an interrupt hold factor related to the shared interrupt priority (actually, the VMCP holds the interrupt for that VM). Yes, if there is a virtual interrupt priority mask of the current running VM that can be interrupted (therefore, the IO mask of the PSW of the VM concerned is 0, so it cannot be interrupted), 1 Set to. This is used at the time of execution of an instruction for checking the IO interrupt request of the VM, which is interruptable with respect to the virtual interrupt priority. This is also initialized by the VMCP by the VM start instruction.

【0050】図20は、実割込優先順位のわりあて方法
を示す。実割込優先順位として、0〜31の32種類を
考える。実割込優先順位0は、最も優先順位が高いので
VMCP専用とする。実割込優先順位1から、上昇順
(割込優先順位は下降順)に、VMの専有する実割込優
先順位を各専有元VMにわりあてる。共有割込優先順位
については、実割込優先順位31から下降順(割込優先
順位は上昇順)に各VMに割当てる。図20における例
では、VM1の仮想割込優先順位0には、実割込優先順
位1が割当てられ、これを専有し、仮想割込優先順位1
〜7には、実割込優先順位31が割当てられ、これをV
M間で共有することになる。VM2及びVM3について
も図20に示すとおりに割当てられる。VM1での仮想
割込優先順位は、実際には、0と(1〜7)の二種類に
分けられることとなる。従って、VM1上のOSが、実
効的に使用できる実割込優先順位は二種類となる。これ
らのOSに対する制限は、運用により許容することがで
きるものである。どの割込優先順位を専有にするかは、
各VMに対して、VMS全体の計画下で決定すべき問題
であり、VMCPにより管理される。このようにして決
定された実割込優先順位の専有、共有の状態は、VM起
動命令のオペランドで与えられ(図17参照)、その命
令処理により実割込優先順位専有ステータスレジスタ1
049(図21)に設定される。
FIG. 20 shows a method of assigning the actual interrupt priority order. Consider 32 types of 0-31 as the actual interrupt priority order. Since the real interrupt priority 0 is the highest priority, it is dedicated to VMCP. From the actual interrupt priority 1 to the ascending order (the interrupt priority order is the descending order), the actual interrupt priority order that the VM exclusively owns is assigned to each exclusive source VM. The shared interrupt priority is assigned to each VM in descending order (interrupt priority is increasing) from the actual interrupt priority 31. In the example in FIG. 20, the virtual interrupt priority 0 of the VM 1 is assigned the real interrupt priority 1 and occupies the virtual interrupt priority 1 and the virtual interrupt priority 1
The actual interrupt priority 31 is assigned to ~ 7, and this is set to V
It will be shared among M. VM2 and VM3 are also allocated as shown in FIG. The virtual interrupt priority order in VM1 is actually divided into two types, 0 and (1 to 7). Therefore, the OS on the VM1 can effectively use two types of actual interrupt priorities. The restrictions on these OSs can be allowed depending on the operation. Which interrupt priority is to be
This is a problem to be decided for each VM under the plan of the entire VMS, and is managed by the VMCP. The exclusive / shared state of the real interrupt priority order thus determined is given by the operand of the VM start instruction (see FIG. 17), and the real interrupt priority order exclusive use status register 1 is processed by the instruction processing.
049 (FIG. 21).

【0051】図21は、実割込優先順位マスクレジスタ
1041′、実割込保留レジスタ1042′、実割込優
先順位ステータスレジスタ1045及び実割込優先順位
専有ステータスレジレスタ1049を示している。この
うち、レジスタ1041′と1042′は従来例(図1
1)にも存在するが、ただ、そのビット数を増加してあ
る。この例では、従来8ビットであったものを4倍の3
2ビットに拡張してある。これは、実割込優先順位のV
Mにおける専有方式をサポートするためである。意味は
同じであるので、説明は省略する。実割込優先順位ステ
ータスレジスタ1045の意味は以下のとおり。すなわ
ち、ビットn(0〜31)が0の時、実割込優先順位n
が現走行VMに専有されていることを示す。そうでない
ときは、1にセットされる。実割込優先順位専有ステー
タスレジスタ1049の内容は以下のとおり。すなわ
ち、ビットc(0〜31)が0のとき、実割込優先順位
cがあるVMに占有されていることを意味し、ビットc
が1のとき実割込優先順位cは共有であることを示して
いる。レジスタ1045、1049は、VM起動命令の
オペランドにより初期設定される。実割込優先順位マス
クレジスタ1041′は、VMCPにより管理、更新さ
れる。実割込保留レジスタ1042′は、IOP300
0′(図12)によりセットされ、IO割込処理用マイ
クロプログラム1060′によりリセットされる(図2
2)。
FIG. 21 shows the real interrupt priority mask register 1041 ', the real interrupt pending register 1042', the real interrupt priority status register 1045 and the real interrupt priority exclusive status register 1049. Of these, the registers 1041 'and 1042' are conventional examples (see FIG.
It exists in 1), but the number of bits is increased. In this example, the conventional 8 bits are quadrupled to 3
It is extended to 2 bits. This is the actual interrupt priority V
This is to support the proprietary method in M. Since the meaning is the same, the description is omitted. The meaning of the actual interrupt priority level status register 1045 is as follows. That is, when the bit n (0 to 31) is 0, the actual interrupt priority order n
Indicates that the current running VM is used exclusively. Otherwise, it is set to 1. The contents of the real interrupt priority exclusive use status register 1049 are as follows. That is, when the bit c (0 to 31) is 0, it means that the actual interrupt priority c is occupied by a certain VM.
When 1 is 1, it indicates that the actual interrupt priority c is shared. The registers 1045 and 1049 are initialized by the operand of the VM start instruction. The actual interrupt priority mask register 1041 'is managed and updated by the VMCP. The actual interrupt holding register 1042 'is the IOP 300.
0 '(FIG. 12) and reset by IO interrupt processing microprogram 1060' (FIG. 2).
2).

【0052】図22は、本発明におけるIO割込回路1
040′の回路図である。この図では、簡単のために、
実割込優先順位が、10種類しかないように書いてある
が、実際は、32種類あり、そのときの結線も、全く同
様である。さて、実割込優先順位c(c=0〜31)
が、割込保留要因をもつ(すなわち、IO割込要求キュ
ー2080の実割込優先順位cレベルのキューに、割込
要求もつサブチャネルがキューイングされ保留レジスタ
1042′の該当ビットが1になったとする)とする。
このとき、割込優先順位cが現走行VMに専有されてい
るときは、実割込優先順位ステータスレジスタ1045
の対応ビットは0となっているので、ORゲート群10
48の出力には、PSWのIOマスク値が出るから、P
SW1020のIO割込マスクが有効となる。従って、
対応する実割込優先順位マスクレジスタ1041′の対
応ビット1でPSWのIOマスクが1のときのみ、AN
Dゲート1047の該当出力が1となりIO割込みが起
動され、IO割込処理マイクロプログラム1060′に
制御が渡される。割込優先順位cが、共有か又は、他V
Mに専有されている場合は、レジスタ1045の対応ビ
ットは1となっているので、ORゲート1048の該当
出力は1となりPSW1020のIOマスクに無関係と
なり、対応する実割込優先順位マスクレジスタ104
1′のビットが1であれば、IO割込みが起動される。
マイクロプログラム1060′による割込処理後、当該
割込優先順位cの割込要求キューが空になれば、保留レ
ジスタ1042′の該当ビットは同マイクロプログラム
により0クリアされる。
FIG. 22 shows the IO interrupt circuit 1 according to the present invention.
It is a circuit diagram of 040 '. In this figure, for simplicity,
Although it is written that there are only 10 types of actual interrupt priorities, actually there are 32 types, and the connection at that time is exactly the same. Now, the actual interrupt priority c (c = 0 to 31)
However, a sub-channel having an interrupt request is queued in the queue of the actual interrupt priority level c of the IO interrupt request queue 2080, and the corresponding bit of the pending register 1042 'becomes 1. Suppose).
At this time, when the interrupt priority c is occupied by the current running VM, the actual interrupt priority status register 1045
Since the corresponding bit of is 0, the OR gate group 10
At the output of 48, the IO mask value of PSW appears, so P
The IO interrupt mask of SW1020 becomes effective. Therefore,
Only when the corresponding bit 1 of the corresponding real interrupt priority mask register 1041 'indicates that the IO mask of PSW is 1
The corresponding output of the D gate 1047 becomes 1 and the IO interrupt is activated, and the control is passed to the IO interrupt processing microprogram 1060 '. Interrupt priority c is shared or other V
In the case of being exclusively used by M, since the corresponding bit of the register 1045 is 1, the corresponding output of the OR gate 1048 becomes 1 and becomes irrelevant to the IO mask of the PSW 1020, and the corresponding real interrupt priority mask register 104
If the 1'bit is 1, an IO interrupt is activated.
After the interrupt processing by the microprogram 1060 ', if the interrupt request queue of the interrupt priority c becomes empty, the corresponding bit of the holding register 1042' is cleared to 0 by the microprogram.

【0053】さて、以上にのべたたハードウェア及びマ
イクロプログラム及び、主記憶装置上の情報を用いて、
YM上のOSのIO命令及びIO割込みがどのように処
理されるかを順をおって以下にのべる。
Now, using the hardware and microprograms described above and the information on the main memory,
The following is a step-by-step description of how IO commands and IO interrupts of the OS on the YM are processed.

【0054】以下の2点を前提とし、VMは高速VMモ
ードとする。
The VM is set to the high-speed VM mode on the premise of the following two points.

【0055】(i)VMの主記憶装置全体は、ホストシ
ステムの主記憶装置上に常駐化されているものとする。
(I) The entire main memory of the VM is assumed to be resident in the main memory of the host system.

【0056】(ii)VM上のOSのIO直接実行(VM
CPの介入なしの実行方法、IO割込みの直接実行も含
む)は、専有サブチャネル、かつ、専有割込優先順位を
有するサブチャネルに対してだけサポートする。
(Ii) IO direct execution of OS on VM (VM
The CP execution method without intervention, including direct execution of IO interrupts) is supported only for the dedicated sub-channel and the sub-channel having the dedicated interrupt priority.

【0057】先ず、VMCPは、VMの起動時、図17
のVM起動命令のオペランドの設定の他に、実割込優先
順位マスクレジスタ1041′のビットcを以下のよう
に設定する(図21)。
First, when the VMCP is started up, the VMCP shown in FIG.
In addition to the setting of the operand of the VM start instruction, the bit c of the real interrupt priority mask register 1041 'is set as follows (FIG. 21).

【0058】・実割込優先順位c(0〜31)が、現走
行VMに専有されているとき、対応するVM上のOSの
仮想割込優先順位(今簡単のために、ひとつだけと仮定
する。以下同様。)のマスク値を、ビットcにセットす
る。
When the actual interrupt priority c (0 to 31) is occupied by the current running VM, the virtual interrupt priority of the OS on the corresponding VM (assuming there is only one for the sake of simplicity) The same applies hereinafter) is set in bit c.

【0059】・割込優先順位cが、他のVMに専有され
ているとき、該VMの対応する仮想割込優先順位のマス
ク値と、該VMのPSWのIOマスク値との論理積を、
ビットcにセットする。又は、当該割込優先順位cの割
込みの遅れが問題にならない場合もビットcに0をセッ
トしても良い。
When the interrupt priority c is occupied by another VM, the logical product of the mask value of the corresponding virtual interrupt priority of the VM and the IO mask value of the PSW of the VM is calculated.
Set to bit c. Alternatively, the bit c may be set to 0 even when the delay of the interrupt having the interrupt priority level c does not matter.

【0060】・割込優先順位cが、VM間で共有される
場合は、ビットcには1をセットする。
When the interrupt priority c is shared between VMs, 1 is set in the bit c.

【0061】当該VMの走行中に、その仮想割込優先順
位マスクを変更しても、ただちに、実割込優先順位マス
クレジスタ1041′(図21)に変更が反映される。
そのために、OSの仮想割込優先順位マスク値の変更命
令は、必らず、VMCP経由でシミュレーションするよ
うにすることもできるし、又は、CPUのμプログラム
処理により、当該変更をレジスタ1041′に反映して
も良い。それは従来と同じ。高速VMモードのVMを起
動する場合は、図17はVM起動命令のオペランドのV
M走行用PSWには、VM自身のPSWが設定され、こ
れが、そのまま、CPU1000′のPSW1020
(図12)に設定される。従って、PSWのIOマスク
は、走行VMのIOマスクと一致させられる。VM走行
中におけるOSのPSW変更は、ただちに、PSW10
20に反映されるので、この一致条件は満足される。そ
のために、OSのPSW変更命令は、直接実行により、
CPU1000′のPSW1020に反映されても良い
し、又、VMCP経由のシミュレーションにより反映さ
れることもある。これは従来どおり、以上の設定が完了
した後、VM起動命令(図17)により、VM上のOS
に制御が渡される。この命令の実行により、図18の現
走行VM#レジスタ1081、CPU1000′のPS
W10210(図12)、図13プレフィクス管理表の
該当エントリ、図14の変換テーブルアドレス管理表2
400の該当エントリ、図15のVM管理表の該当エン
トリ、図21の実割込優先順位ステータスレジスタ10
45、図19のVMS制御フラグ群が初期化される。
Even if the virtual interrupt priority mask is changed while the VM is running, the change is immediately reflected in the real interrupt priority mask register 1041 '(FIG. 21).
Therefore, the virtual interrupt priority mask value change instruction of the OS can be necessarily simulated through the VMCP, or the change is stored in the register 1041 ′ by the μ program processing of the CPU. It may be reflected. It is the same as before. When activating a VM in the high-speed VM mode, FIG. 17 shows the operand V of the VM activation instruction.
The PSW of the VM itself is set as the PSW for M traveling, and this is the PSW 1020 of the CPU 1000 'as it is.
(FIG. 12). Therefore, the PSW IO mask is made to match the running VM IO mask. Immediately after changing the PSW of the OS while running the VM, the PSW10
This matching condition is satisfied as reflected in 20. Therefore, by directly executing the PSW change command of the OS,
It may be reflected in the PSW 1020 of the CPU 1000 ', or may be reflected in the simulation via the VMCP. This is the same as before, after the above settings are completed, the OS on the VM is issued by the VM start command (Figure 17).
Control is passed to. Execution of this instruction causes the PS of the current running VM # register 1081 and CPU 1000 'of FIG.
W10210 (FIG. 12), corresponding entry in FIG. 13 prefix management table, translation table address management table 2 in FIG.
The corresponding entry of 400, the corresponding entry of the VM management table of FIG. 15, the actual interrupt priority status register 10 of FIG.
45, the VMS control flag group of FIG. 19 is initialized.

【0062】さて、VM上のOSからIO命令が発行さ
れたとする。CPU1000′のIO実行回路103
0′は、マイクロプログラム1050′の制御により以
下の処理を行なう。
Now, it is assumed that an IO command is issued from the OS on the VM. IO execution circuit 103 of CPU 1000 '
0'performs the following processing under the control of the microprogram 1050 '.

【0063】(1)高速VMモードでないとき(VMS
制御フラグH=0図19参照)は、VMCPへ割出す。
(1) When not in the high-speed VM mode (VMS
The control flag H = 0 (see FIG. 19) is indexed to VMCP.

【0064】このときは、VMCPのプレフィクスレジ
スタ1010を使用して、VMCPのPSA2100に
割込みを反映することにより、VMCPへ割出す(図1
2)。
At this time, by using the prefix register 1010 of the VMCP and reflecting the interrupt in the PSA 2100 of the VMCP, it is indexed to the VMCP (FIG. 1).
2).

【0065】(2)高速VMモード(VMS制御フラグ
H=1)のとき、VMのIC直接実行モード(VMS制
御フラグD=1かどうか)か否かを判断する。(図1
9)。
(2) In the high-speed VM mode (VMS control flag H = 1), it is determined whether or not the IC direct execution mode of VM (whether VMS control flag D = 1). (Fig. 1
9).

【0066】(3)D=0のときは、VMCPへ割出
す。
(3) When D = 0, index to VMCP.

【0067】(4)D=1のとき、VMS制御フラグR
を判断する。R=0のとき、該当する仮想サブチャネル
#変換表2600を検索して、与えられた仮想サブチャ
ネル#を、実サブチャネル#に変換する。もし、仮想割
込優先順位#が命令オペランドで与えられたときは、割
込優先順位#変換テーブルを検索し、実割込優先順位#
に変換する。これと、実割込優先順位専有ステータスレ
ジスタ1049により、専有かどうかを判断し、サブチ
ャネル制御ブロックのVM情報領域2092′の状態フ
ィールドに書き込む(図16)。
(4) When D = 1, VMS control flag R
To judge. When R = 0, the corresponding virtual subchannel # conversion table 2600 is searched and the given virtual subchannel # is converted to the real subchannel #. If the virtual interrupt priority # is given in the instruction operand, the interrupt priority # conversion table is searched and the actual interrupt priority #
Convert to. With this, the real interrupt priority order exclusive use status register 1049 determines whether it is exclusive and writes it in the status field of the VM information area 2092 'of the sub-channel control block (FIG. 16).

【0068】仮想割込優先順位#と実割込優先順位#と
の対応関係はこのとき書き込まれる。R=1ときは、変
換は不要であるので、同じ値を書き込む。
The correspondence between the virtual interrupt priority level # and the real interrupt priority level # is written at this time. When R = 1, no conversion is necessary, so the same value is written.

【0069】(5)求めた実サブチャネル制御ブロック
2091′(図16)が専有サブチャネルでかつ、専有
割込優先順位を有する場合はIO命令を実行する。これ
以後は、実計算機システムにおける処理と同じで、非同
期のIO装置のオペレーションを必要とする場合は、I
O要求キュー2070にサブチャネルをキューイングす
る(図8)。IO発行元には、条件コードと共に制御が
返される。
(5) When the obtained real sub-channel control block 2091 '(FIG. 16) is a dedicated sub-channel and has a dedicated interrupt priority, the IO instruction is executed. From this point onward, the process is the same as in the real computer system. If an asynchronous IO device operation is required, I
The sub-channel is queued in the O request queue 2070 (FIG. 8). Control is returned to the IO issuer along with the condition code.

【0070】(6)求めた実サブチャネルが、共有サブ
チャネル又は、割込優先順位が共有の場合は、VMCP
へ割出し、シミュレーションに委ねる。
(6) If the obtained real subchannel is a shared subchannel or the interrupt priority is shared, VMCP
Index and entrust it to the simulation.

【0071】(7)VM上のOSの発行したIO命令
が、各仮想割込優先順位上の割込可能(OSの仮想割込
優先マスクに関して割込可能の意味)な、IO割込要求
を調べる命令の場合は、以下のように本実施例に特徴的
な方法で処理する。すなわち、先ず、現走行VMは実専
有割込優先順位に関して、割込要求を調べる。そのと
き、もし、何も、IOの割込要求がないときは、共有割
込優先順位について調べる必要があるが、共有割込優先
順位に関する割込保留は全てVMCPが管理するので、
VMCPに制御を渡す必要性が発生する。しかし、それ
は、直接実行の主旨に反するので、VMSの制御フラグ
N(図19)を用いる。N=1のときは、調べるIO割
込保留(共有割込優先順位、かつ、仮想割込優先順位に
ついて割込可能)を、VMCPが管理していることを示
し、従って、この場合は、VMCPへ割出すこととす
る。N=0の時は、かかるIO割込保留はないため、V
MCPへ割出す必要はなくなり、直接実行が可能とな
る。
(7) An IO instruction issued by the OS on the VM issues an IO interrupt request that can be interrupted in each virtual interrupt priority order (meaning that the virtual interrupt priority mask of the OS can be interrupted). In the case of an instruction to be inspected, it is processed by a method characteristic of this embodiment as follows. That is, first, the current running VM checks the interrupt request regarding the actual exclusive interrupt priority order. At that time, if there is no IO interrupt request, it is necessary to check the shared interrupt priority, but since the VMCP manages all interrupt reservations related to the shared interrupt priority,
The need arises to pass control to the VMCP. However, since it violates the purpose of direct execution, the control flag N (FIG. 19) of the VMS is used. When N = 1, it means that the VMCP manages the IO interrupt pending (shared interrupt priority and virtual interrupt priority can be interrupted). Therefore, in this case, VMCP It will be indexed to. When N = 0, there is no IO interrupt pending, so V
There is no need to index to the MCP, and direct execution is possible.

【0072】次にIO割込処理について述べる。Next, the IO interrupt processing will be described.

【0073】(1)IO装置からのIO割込要求は、I
OP3000′により検出され、対応する実サブチャネ
ル制御ブロックが、HSA2001内のIO割込要求キ
ュー2080の対応する実割込優先順位にキューイング
される。(図9参照)。これは従来どおり。
(1) The IO interrupt request from the IO device is I
The corresponding real sub-channel control block detected by OP3000 'is queued at the corresponding real interrupt priority of the IO interrupt request queue 2080 in the HSA 2001. (See Figure 9). This is the same as before.

【0074】(2)このとき、図22に示す、IOP3
000′は実割込保留レジスタ1042′の該当ビット
を1にする。これも従来どおり。
(2) At this time, IOP3 shown in FIG.
000 'sets the corresponding bit of the real interrupt pending register 1042' to 1. This is the same as before.

【0075】(3)実割込優先順位マスクレジスタ10
41′は、前述したように設定されている。図22にお
けるIO割込み回路の動作方法は前述したとおりであ
る。これより、IO割込みが起動され、IO割込処理用
マイクロプログラム1060′に制御が渡ったとする。
(3) Actual interrupt priority mask register 10
41 'is set as described above. The operation method of the IO interrupt circuit in FIG. 22 is as described above. From this, it is assumed that the IO interrupt is activated and the control passes to the IO interrupt processing microprogram 1060 '.

【0076】(4)このとき、割込みが起動された実割
込優先順位が専有化されている場合、実割込優先順位マ
スクレジスタ1041′、実割込優先順位ステータスレ
ジスタ1045の設定方法により、その専有元VMは、
対応する仮想割込優先順位に関しては、必らず、割込可
能となっている。もし、その専有元VMが、割込不可能
な場合は、PSW1020のIOマスク、上記レジスタ
1041′,1045の働らきにより、当該実割込優先
順位に関してはIO割込みは起動されず、制御が106
0′に渡されることはない。すなわち、ハードウェアに
より保留されたままである。
(4) At this time, when the real interrupt priority order in which the interrupt is activated is made exclusive, the setting method of the real interrupt priority mask register 1041 'and the real interrupt priority status register 1045 causes The proprietary VM is
Regarding the corresponding virtual interrupt priority order, it is inevitable that interrupts will be possible. If the exclusive VM is not interruptable, the IO interrupt of the PSW 1020 and the registers 1041 'and 1045 do not activate the IO interrupt, and the control becomes 106.
It is never passed to 0 '. That is, it remains reserved by the hardware.

【0077】(5)IO割込μプログラム処理106
0′は、以下の処理を行なう。
(5) IO interrupt μ program processing 106
0'performs the following processing.

【0078】(i)割込みを発生した実割込優先順位c
上の、IOの割込要求キュー2080(図9)の実サブ
チャネルをキューより取りはずす。
(I) Actual interrupt priority c which generated an interrupt
The actual subchannel of the IO interrupt request queue 2080 (FIG. 9) above is removed from the queue.

【0079】(ii)VMS制御フラグ1090′(図1
9)のVMモードフラグビットV及び高速VMモードフ
ラグHを見、V=0のときは、VMCPのPSAへ割込
みを反映する。この場合は、VMCPのP×R1010
(図12)を使用する。
(Ii) VMS control flag 1090 '(see FIG. 1)
Looking at the VM mode flag bit V and the high-speed VM mode flag H in 9), when V = 0, the interrupt is reflected in the PSA of the VMCP. In this case, VMCP P × R1010
(FIG. 12) is used.

【0080】(iii)V=1&H=1のとき、VMのI
O直接実行モードDビットをみる。D=のとき、IO直
接実行モードでないので、VMCPのPSAへ割込みを
反映する。
(Iii) When V = 1 & H = 1, I of VM
O Direct execution mode Look at the D bit. When D =, since it is not the IO direct execution mode, the interrupt is reflected in the PSA of VMCP.

【0081】(iv)D=1のとき、以下の処理を行な
う。
(Iv) When D = 1, the following processing is performed.

【0082】(イ)実サブチャネル制御ブロック内の状
態フィールド(図16)より、占有化されたサブチャネ
ルか判断し、共有サブチャネルの場合は、VMCPのP
SAへ割込みを反映する。
(B) From the status field (FIG. 16) in the actual sub-channel control block, it is judged whether the sub-channel is occupied or not.
Reflect the interrupt to SA.

【0083】(ロ)割込を発生している実割込優先順位
cが現走行VMに専有されている場合、すなわち、実割
込優先順位ステータスレジスタ1045の該当ビットが
0のとき(図21参照)、現走行VMのPSAに割込み
を反映し、現走行VMを続行する。このときは、VM用
のプレフイクスレジスタ1070(図12)を使用す
る。VMのプレフィクスへのIO割込情報は、実サブチ
ャネル制御ブロック2092′内の仮想サブチャネル
#、あるいは、仮想割込優先順位#を割込情報として反
映する。
(B) When the actual interrupt priority c which is generating an interrupt is occupied by the current running VM, that is, when the corresponding bit of the actual interrupt priority status register 1045 is 0 (FIG. 21). (Refer to), the interruption is reflected in the PSA of the current running VM, and the current running VM is continued. At this time, the VM prefix register 1070 (FIG. 12) is used. The IO interrupt information to the VM prefix reflects the virtual subchannel # or the virtual interrupt priority # in the real subchannel control block 2092 'as the interrupt information.

【0084】(ハ)実割込優先順位cが、他のVMに専
有されている場合は、VMCPへ割込みを反映する。
(C) When the actual interrupt priority c is occupied by another VM, the interrupt is reflected in the VMCP.

【0085】この後、VMCPにより、該当VMのPS
Aへ割込みを反映する。
Then, the PS of the corresponding VM is set by VMCP.
Reflect the interrupt to A.

【0086】(ニ)実割込優先順位cが共有されている
場合は、VMCPへ割込みを反映する。この後、VMC
Pにより、該当VMへの割込みの反映が行なわれるが、
この場合は、該当VMが割込不可能の場合が有り得、そ
の場合は、VMCPにより当該IO割込みが保留される
こととなる。
(D) When the real interrupt priority c is shared, the interrupt is reflected in the VMCP. After this, VMC
By P, the interruption is reflected in the corresponding VM,
In this case, there is a possibility that the relevant VM cannot be interrupted, and in that case, the VMCP suspends the IO interrupt.

【0087】以上のように、サブチャネルが占有化され
て、かつ、占有化された実割込優先順位を有する場合、
そのサブチャネルに対しては、VM上のOSのIOの直
接実行(VMCPの介入によらず実行すること)がサポ
ートされる。IO割込みの場合は、さらに、正確にいえ
ば、現走行VMの専有するサブチャネルからのIO割込
みだれが直接実行される。他のVMの専有するサブチャ
ネルからのIO割込みについては、VM間スケジューリ
ングの必要性が発生するため、VMCPが介入せざるを
得ない。
As described above, when the sub-channel is occupied and has the occupied real interrupt priority,
Direct execution of the IO of the OS on the VM (execution without VMCP intervention) is supported for the sub-channel. In the case of IO interrupts, more precisely, the IO interrupts from the subchannels occupied by the current running VM are directly executed. With respect to IO interrupts from sub-channels occupied by other VMs, the need for inter-VM scheduling causes the VMCP to intervene.

【0088】図16の実サブチャネル制御ブロックの中
の状態フィールド2093のIO直接実行モード抑止フ
ラグは、通常は0であり、当該サブチャネルのIO直接
実行モードはサポートされる。しかし、専有サブチャネ
ルの場合、専有元VM以外のVM上のOSからIO命令
が発行されることはないが、VMCPから、IO命令が
発行されることはあり得る。このとき、専有サブチャネ
ルであっても、当該VMCPのI/Oが完了するまで
は、この状態フィールド2093内のI/O直接実行モ
ード抑止フラグを1とし、当サブチャネルのIO直接実
行モードは抑止状態におかれる。
The IO direct execution mode inhibition flag of the status field 2093 in the real subchannel control block of FIG. 16 is normally 0, and the IO direct execution mode of the subchannel is supported. However, in the case of the dedicated sub-channel, the IO command is not issued from the OS on the VM other than the exclusive source VM, but the IO command can be issued from the VMCP. At this time, the I / O direct execution mode inhibition flag in the status field 2093 is set to 1 until the I / O of the VMCP is completed even for the dedicated sub channel, and the IO direct execution mode of the sub channel is set. Be placed in a restrained state.

【0089】従って、このフラグは、VMCPの管理に
おいて、セット/リセットされるものである。以上のI
Oの実行方式において以下のことがいえる。
Therefore, this flag is set / reset in the VMCP management. I above
The following can be said with respect to the O execution method.

【0090】(a)VMS制御フラグ群1090′の中
で、(図19)Rビットはなくても良い。すなわち、常
に仮想サブチャネル#の変換及び仮想割込優先順位#の
変換を行なうようにするが、又は、VMSの運用におい
て、本発明のIO直接実行方式を適用する場合は、必ら
ず、それらの値が等しいことを前提とすることにすれば
不要である。
(A) In the VMS control flag group 1090 '(FIG. 19), the R bit may be omitted. That is, the conversion of the virtual subchannel # and the conversion of the virtual interrupt priority # are always performed, or when the IO direct execution method of the present invention is applied in the operation of VMS, the It is unnecessary if we assume that the values of are equal.

【0091】(b)同じく、Dフラグも、Hフラグ代用
する方法が考えられるが、高速VMモードフラグHは、
IO命令以外の特権命令の直接実行の可否をも制御する
ので、IO命令だけの直接実行の可否の制御はできなく
なる。
(B) Similarly, a method of substituting the H flag for the D flag can be considered, but the high speed VM mode flag H is
Since it also controls whether or not a privileged instruction other than the IO instruction can be directly executed, it becomes impossible to control whether or not only the IO instruction can be directly executed.

【0092】(c)IO割込みの処理で、現走行VM以
外のVMに専有されている実割込優先順位からのIO割
込みは、VMCPに反映するように前述したが、これ
を、当該専有元VMは、割込可能となっているから、先
ず、当該VMのPSAに割込反映後、VMCPに、VM
CPコールの形で制御を渡すようにしても良い。そのV
MのPSAのアドレスは、図13におけるプレフィクス
管理表より求めることができる。この場合は、さらに、
当該VMのPSWを求める方法が必要であり、そのため
の情報が必要であるが、その方法は、当該VM#をベー
スとして、いろいろな方法が考えられるので、図示は省
略する。
(C) In the processing of the IO interrupt, the IO interrupt from the actual interrupt priority which is exclusively used by the VM other than the current running VM has been described above so as to be reflected in the VMCP. Since the VM can be interrupted, the PSA of the VM is first reflected in the interrupt, and then the VMCP is changed to the VM.
Control may be passed in the form of a CP call. That V
The MPSA address can be obtained from the prefix management table in FIG. In this case,
A method for obtaining the PSW of the VM is required and information for that is required. However, since there are various possible methods based on the VM #, illustration thereof is omitted.

【0093】(d)サブチャネル#変換テーブル先頭ア
ドレス、割込優先順位#変換テーブル先頭アドレス,実
割込優先順位ステータスレジスタ1045,実割込優先
順位専有ステータスレジスタ1049(図21)は、全
て、VM起動命令のオペランドで初期化する(図17参
照)ようにしたが、VMCPの専用命令で初期化するよ
うにしても良い。
(D) Subchannel # conversion table start address, interrupt priority # conversion table start address, actual interrupt priority status register 1045, actual interrupt priority exclusive status register 1049 (FIG. 21) are all Although the initialization is performed by the operand of the VM activation instruction (see FIG. 17), the initialization may be performed by a dedicated instruction of VMCP.

【0094】[0094]

【発明の効果】以上説明したように本発明によれば、V
M上のOSから発行されるIO割込み検査命令の直接実
行が可能となり、VMCPのIOシミュレーションオー
バヘッドを大幅に削減することができる効果がある。
As described above, according to the present invention, V
It is possible to directly execute the IO interrupt inspection instruction issued from the OS on the M, and it is possible to significantly reduce the IO simulation overhead of VMCP.

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

【図1】通常のOSによる実計算機システムのブロック
図。
FIG. 1 is a block diagram of a real computer system using a normal OS.

【図2】従来の仮想計算機システム(VMS)のブロッ
ク図。
FIG. 2 is a block diagram of a conventional virtual machine system (VMS).

【図3】従来の仮想計算機(VM)におけるメモリ階層
を示す説明図。
FIG. 3 is an explanatory diagram showing a memory hierarchy in a conventional virtual machine (VM).

【図4】アドレス変換テーブル類を示す説明図。FIG. 4 is an explanatory diagram showing address conversion tables.

【図5】実主記憶装置の連続領域を専有するVMの構成
図。
FIG. 5 is a configuration diagram of a VM that occupies a continuous area of an actual main storage device.

【図6】VMCPが、VMのIOシミュレーション用に
発行するIO命令を示す説明図。
FIG. 6 is an explanatory diagram showing IO commands issued by the VMCP for VM IO simulation.

【図7】ホストシステムの構成図。FIG. 7 is a block diagram of a host system.

【図8】IO要求キューを示す説明図。FIG. 8 is an explanatory diagram showing an IO request queue.

【図9】IO割込要求キューを示す説明図。FIG. 9 is an explanatory diagram showing an IO interrupt request queue.

【図10】実サブチャネル制御ブロック群の説明図。FIG. 10 is an explanatory diagram of an actual sub-channel control block group.

【図11】IO割込回路を示す図。FIG. 11 is a diagram showing an IO interrupt circuit.

【図12】本発明の実施例によるホストシステムの構成
図。
FIG. 12 is a configuration diagram of a host system according to an embodiment of the present invention.

【図13】プレフィクス管理表を説明する図。FIG. 13 is a diagram illustrating a prefix management table.

【図14】変換表アドレス管理表を説明する図。FIG. 14 is a diagram illustrating a conversion table address management table.

【図15】VM管理表を説明する図。FIG. 15 is a diagram illustrating a VM management table.

【図16】実サブチャネル制御ブロック群の説明図。FIG. 16 is an explanatory diagram of an actual sub-channel control block group.

【図17】VM起動命令を示す図。FIG. 17 is a diagram showing a VM start instruction.

【図18】VMS制御レジスタ群の説明図。FIG. 18 is an explanatory diagram of a VMS control register group.

【図19】VMS制御フラグ群を示す図。FIG. 19 is a diagram showing a VMS control flag group.

【図20】割込優先順位割当て方法の説明図。FIG. 20 is an explanatory diagram of an interrupt priority assignment method.

【図21】VMS割込制御レジスタの説明図。FIG. 21 is an explanatory diagram of a VMS interrupt control register.

【図22】VMS用IO割込回路についての説明図であ
る。
FIG. 22 is an explanatory diagram of a VMS IO interrupt circuit.

【符号の説明】[Explanation of symbols]

10000…実計算機システム、1000…CPU、1
000′…CPU、1000−N…CPUN N=1,
2,3,…、1010…VMCPのプレフィクスレジス
タPXR、1020…プログラムステータスワードPS
W、1030…IO命令実行回路、1040…IO割込
回路、1050…IO命令実行用マイクロプログラムμ
P1、1060…IO割込処理用マイクロプログラムμ
P2、1070…VM用PXR、1080…VMS制御
レジスタ群、1090…VMS制御フラグ群、1100
…基本制御レジスタ群、1030′…IO実行回路、1
040′…IO割込回路、1050′…IO命令実行用
マイクロプログラム、1060′…IO割込処理用マイ
クロプログラム、1100′…基本制御レジスタ群、1
110…レベル2→レベル1アドレス変換テーブル先頭
アドレスを含むレジスタ、1120…レベル3→レベル
2アドレス変換テーブル先頭アドレスを含むレジスタ、
1041…実割込優先順位マスクレジスタ、1041′
…実割込優先順位マスクレジスタ、1042…実割込保
留レジスタ、1042′…実割込保留レジスタ、104
3…ORゲート、1044…ANDゲート、1081…
現走行VM#レジスタ、1045…実割込優先順位ステ
ータスレジスタ、1046…ANDゲート群、104
6′…ANDゲート群、1047…ANDゲート群、1
048…ORゲート群、1049…実割込優先順位専有
ステータスレジスタ、2000…主記憶装置、2000
−N…VM−Nの主記憶装置(N=1,2,3…) 2001…主記憶装置2000内のハードウェア・シス
テム・エリア、2002…主記憶装置2000内のプロ
グラム可能エリア、2010…レベル2メモリからレベ
ル1メモリへのアドレス変換テーブル、2010(1)
…レベル2メモリからレベル1メモリへのアドレイ変換
テーブル、2010(2)…レベル2メモリから1レベ
ルメモリのアドレス変換テーブル、2020…レベル1
メモリアドレスで作られたCCW、2030…レベル2
メモリアドレスで作られたCCW、2040…レベル3
メモリからレベル2メモリへのアドレス変換テーブル、
2050…レベル3メモリアドレスで作られたCCW、
2060…VM上のOSの生成する仮想空間で、レベル
3メモリに属する、2070…IO要求キュー、208
0…IO割込要求キュー、2090…サブチャネル制御
ブロック群、2090′…サブチャネル制御ブロック
群、2100…VMCPのプレフィクスPSA、211
0…VM1のPSA、2120…VM2のPSA、21
30…VM3のPSA、2200…VMCPの常駐領
域、2300…プレフィクス管理表、2400…変換表
アドレス管理表、2500割込優先順位#変換テーブル
群、2600…サブチャネル#変換テーブル群、270
0…VM管理表、2800…VMCPの用意したCCW
変換情報、2810…VM上のOS又はVMCPの用意
したCCW群、2091…サブチャネル制御ブロック、
2091′サブチャネル制御ブロック、2092…サブ
チャネル制御ブロック内のアドレス変換情報、209
2′…サブチャネル制御ブロック内のアドレス変換情
報、2071…IO要求キューキューエレメント、26
01…サブチャネル#変換テーブルの前段表、2602
…サブチャネル#変換テーブルの後段表、2093…サ
ブチャネル制御ブロック内のVM情報領域2092′内
の状態フィールド、2094…VM情報領域内のCCW
アドレス変換情報、2900…VM起動命令、2910
…VM起動命令のオペランド、3000…入出力プロセ
ッサIOP、3000′…入出力プロセッサIOP、3
000−N…VM−NのIOP(論理的なもの)、31
10…サブチャネルレジスタ群、3010′…サブチャ
ネルレジスタ群、3020…IOを実行するマイクロプ
ログラムμP3、3030…IOP3000内のアドレ
ス変換テーブル、3011…ひとつのサブチャネルレジ
スタ、4000…入出力制御装置IOC、4000−N
…VM−N(N=1,2,3…)のIOC、100…C
PU−主記憶装置間インタフェース、110…CPU−
ハードウェアシステムエリア2001間インタフェー
ス、120…CPU−プログラム可能エリア2002間
インタフェース、200…CPU−IOP間インターフ
ェース、300…IOP−主記憶装置間インタフェー
ス、310…IOP−ハードウェアシステムエリア20
01間インタフェース、320…IOP−プログラム可
能エリア2002間インタフェース、400…IOP−
IOC間インタフェース。
10000 ... Real computer system, 1000 ... CPU, 1
000 '... CPU, 1000-N ... CPUNN N = 1,
2, 3, ..., 1010 ... Prefix register PXR of VMCP, 1020 ... Program status word PS
W, 1030 ... IO instruction execution circuit, 1040 ... IO interrupt circuit, 1050 ... IO instruction execution microprogram μ
P1, 1060 ... IO interrupt processing microprogram μ
P2, 1070 ... VM PXR, 1080 ... VMS control register group, 1090 ... VMS control flag group, 1100
... Basic control register group, 1030 '... IO execution circuit, 1
040 '... IO interrupt circuit, 1050' ... IO instruction execution microprogram, 1060 '... IO interrupt processing microprogram, 1100' ... Basic control register group, 1
110 ... A register including a level 2 → level 1 address conversion table start address, 1120 ... A register including a level 3 → level 2 address conversion table start address,
1041 ... Real interrupt priority mask register, 1041 '
... actual interrupt priority mask register, 1042 ... actual interrupt pending register, 1042 '... actual interrupt pending register, 104
3 ... OR gate, 1044 ... AND gate, 1081 ...
Current running VM # register, 1045 ... Actual interrupt priority order status register, 1046 ... AND gate group, 104
6 '... AND gate group, 1047 ... AND gate group, 1
048 ... OR gate group, 1049 ... Actual interrupt priority order exclusive status register, 2000 ... Main storage device, 2000
-N ... VM-N main memory (N = 1, 2, 3 ...) 2001 ... Hardware system area in main memory 2000, 2002 ... Programmable area in main memory 2000, 2010 ... Level Address conversion table from 2 memories to 1 level memory, 2010 (1)
... Adlay conversion table from level 2 memory to level 1 memory, 2010 (2) ... Address conversion table from level 2 memory to 1 level memory, 2020 ... level 1
CCW made by memory address, 2030 ... Level 2
CCW made with memory address, 2040 ... Level 3
Address conversion table from memory to level 2 memory,
2050 ... CCW made with level 3 memory address,
2060 ... 208 request queue, 208 belonging to level 3 memory in virtual space generated by OS on VM
0 ... IO interrupt request queue, 2090 ... Subchannel control block group, 2090 '... Subchannel control block group, 2100 ... VMCP prefix PSA, 211
0 ... PSA of VM1, 2120 ... PSA of VM2, 21
30 ... PSA of VM3, 2200 ... Resident area of VMCP, 2300 ... Prefix management table, 2400 ... Conversion table address management table, 2500 Interrupt priority order # conversion table group, 2600 ... Subchannel # conversion table group, 270
0 ... VM management table, 2800 ... CCW prepared by VMCP
Conversion information, 2810 ... CCW group prepared by OS on VM or VMCP, 2091 ... Subchannel control block,
2091 'Sub-channel control block, 2092 ... Address translation information in sub-channel control block, 209
2 '... Address translation information in subchannel control block, 2071 ... IO request queue queue element, 26
01 ... Pre-stage table of subchannel # conversion table, 2602
... Sub-channel # conversion table post-stage table, 2093 ... Status field in VM information area 2092 'in sub-channel control block, 2094 ... CCW in VM information area
Address conversion information, 2900 ... VM start instruction, 2910
... Operand of VM start instruction 3000 ... Input / output processor IOP, 3000 '... Input / output processor IOP, 3
000-N ... VM-N IOP (logical), 31
10 ... Sub-channel register group, 3010 '... Sub-channel register group, 3020 ... Microprogram μP3 for executing IO, 3030 ... Address conversion table in IOP 3000, 3011 ... One sub-channel register, 4000 ... Input / output control unit IOC, 4000-N
... VM-N (N = 1,2,3 ...) IOC, 100 ... C
PU-main memory interface, 110 ... CPU-
Hardware system area 2001 interface, 120 ... CPU-programmable area 2002 interface, 200 ... CPU-IOP interface, 300 ... IOP-main memory interface, 310 ... IOP-hardware system area 20
01 interface, 320 ... IOP-programmable area 2002 interface, 400 ... IOP-
Inter-IOC interface.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 博昭 神奈川県秦野市堀山下1番地 株式会社日 立製作所神奈川工場内 (72)発明者 沢本 英雄 神奈川県秦野市堀山下1番地 株式会社日 立製作所神奈川工場内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Hiroaki Sato 1 Horiyamashita, Hadano-shi, Kanagawa Hiritsu Manufacturing Co., Ltd. Kanagawa Plant (72) Inventor Hideo Sawamoto 1st Horiyamashita, Hadano, Kanagawa Hitate Manufacturing Co., Ltd. Kanagawa factory

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】制御プログラムの制御下で複数のオペレー
テイングシステム(OS)を並行して走行する計算機
と、 複数のI/O装置と、 該計算機により実行されたI/O命令が要求するI/O
処理を該複数のI/O装置の一つに対して、該計算機に
よる命令の実行と非同期に実行するI/O処理実行手段
とを有し、 該複数のOSの一つに対して該複数のI/0装置の一つ
を代表する複数のサブチャネルが該複数のOSに割当て
られ、 各I/0装置は、該複数のOSの少なくとも一つに対し
て複数のサブチャネルの少なくとも一つにより代表さ
れ、 該複数のサブチャネルには、複数の実割込み優先順位が
割当てられ、 該複数の実割込み優先順位の少なくとも一つが該複数の
OSの一つにより排他的に使用されるように、該複数の
実割込み優先順位が該複数のサブチャネルにあらかじめ
割当てられ、 該計算機は、 走行中のOSから発行された、そのOSにより処理され
るべき、保留された割込みが存在するか否かを検査する
命令に応答して、そのOSに排他的に使用される実割込
み優先順位を有する割込みが保留されているか否かを、
該制御プログラムによる判別を要求しないで判別する回
路と、 保留された割込みが存在すると判別された場合に、その
割込みをその命令にの実行結果としてその走行中のOS
に通知する手段を有する計算機システム。
1. A computer that runs in parallel a plurality of operating systems (OS) under the control of a control program, a plurality of I / O devices, and an I / O instruction executed by the computer. / O
I / O processing execution means for executing processing to one of the plurality of I / O devices asynchronously with execution of instructions by the computer. A plurality of sub-channels representing one of the I / O devices of each of the I / O devices are assigned to the plurality of OSs, and each I / 0 device has at least one of the plurality of sub-channels for at least one of the plurality of OSs. And a plurality of real interrupt priorities are assigned to the plurality of sub-channels, and at least one of the plurality of real interrupt priorities is used exclusively by one of the plurality of OSs, The plurality of real interrupt priorities are pre-assigned to the plurality of sub-channels, and the computer determines whether there are pending interrupts issued by the running OS to be processed by the OS. Respond to the instruction To, whether the interrupt with a real interruption priority used exclusively in the OS is pending,
A circuit for discriminating without requiring discrimination by the control program, and when it is discriminated that there is a pending interrupt, the interrupt is taken as the execution result of the instruction and the running OS is executed.
Computer system having means for notifying the user.
【請求項2】該計算機は、 上記走行中のOSと他のOSにより共有される少なくと
も一つの実割込み優先順位を有する割込みが該制御プロ
グラムにより保留状態にされているか否かを示す情報
が、該制御プログラムによりセットされるレジスタと、 保留された割込みが存在しないと該判別回路により判別
された場合に、該レジスタが、その走行中のOSと他の
OSにより共有される少なくとも一つの実割込み優先順
位を有する割込みが該制御プログラムにより保留状態に
されていないことを示すときに、該走行中のOSに、処
理すべき保留された割込みがないことを通知する手段を
さらに有する特許請求の範囲第1項記載の計算機システ
ム。
2. The computer is provided with information indicating whether or not an interrupt having at least one real interrupt priority shared by the running OS and another OS is put on hold by the control program, The register set by the control program and at least one real interrupt shared by the running OS and another OS when the determination circuit determines that there is no pending interrupt. Claims further comprising means for notifying the running OS that there are no pending interrupts to process when the priority interrupt indicates that it has not been put on hold by the control program. The computer system according to item 1.
【請求項3】該計算機は、 保留された割込みが存在しないと該判別回路により判別
された場合に、該レジスタが、その走行中のOSと他の
OSにより共有される少なくとも一つの実割込み優先順
位を有する割込みが該制御プログラムにより保留状態に
されていることを示すときに、該制御プログラムに割込
み、上記命令のシミュレーションを要求する手段をさら
に有する特許請求の範囲第2項記載の計算機システム。
3. The computer has priority of at least one real interrupt in which the register is shared by the running OS and another OS when the judging circuit judges that there is no pending interrupt. The computer system according to claim 2, further comprising means for interrupting the control program and requesting a simulation of the instruction when the interrupt having the order indicates being held by the control program.
JP5141747A 1993-06-14 1993-06-14 Computer system Expired - Lifetime JPH0711784B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5141747A JPH0711784B2 (en) 1993-06-14 1993-06-14 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5141747A JPH0711784B2 (en) 1993-06-14 1993-06-14 Computer system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP59005587A Division JPH0619747B2 (en) 1984-01-18 1984-01-18 I / O instruction execution method, I / O interrupt processing method, and computer system using them

Publications (2)

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

Family

ID=15299264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5141747A Expired - Lifetime JPH0711784B2 (en) 1993-06-14 1993-06-14 Computer system

Country Status (1)

Country Link
JP (1) JPH0711784B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3769428B2 (en) 1999-09-30 2006-04-26 富士通株式会社 Information processing apparatus capable of holding floating interrupt and interrupt condition change instruction execution method
WO2001099081A1 (en) * 2000-06-20 2001-12-27 Hitachi, Ltd. Vehicle control device

Also Published As

Publication number Publication date
JPH0659919A (en) 1994-03-04

Similar Documents

Publication Publication Date Title
US4885681A (en) I/O Execution method for a virtual machine system and system therefor
JP3546678B2 (en) Multi-OS configuration method
US5414848A (en) Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
US7712104B2 (en) Multi OS configuration method and computer system
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
JP4668166B2 (en) Method and apparatus for guest to access memory converted device
US4843541A (en) Logical resource partitioning of a data processing system
US5392409A (en) I/O execution method for a virtual machine system and system therefor
US6880022B1 (en) Transparent memory address remapping
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
JPS6083168A (en) Multiprocessor system control
JPH0695898A (en) Control method for virtual computer and virtual computer system
JP4026667B2 (en) Multi-OS configuration method
US6895583B1 (en) Task control block for a computing environment
JP6198858B2 (en) Resource scheduling method by computer and hypervisor
EP0043391A1 (en) Virtual memory terminal
JP2001216172A (en) Multi-os constituting method
JPH0711784B2 (en) Computer system
JPH07129518A (en) Computer system
Umeno et al. New methods for realizing plural near-native performance virtual machines
JPH0548500B2 (en)
JPH0754469B2 (en) Input / output instruction execution unit for virtual computer system
JPS6097440A (en) Virtual multiprocessor device
JPS6336012B2 (en)
JPH0567973B2 (en)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term