JPH07134658A - Address translation buffer control system for virtual machine system - Google Patents

Address translation buffer control system for virtual machine system

Info

Publication number
JPH07134658A
JPH07134658A JP5279654A JP27965493A JPH07134658A JP H07134658 A JPH07134658 A JP H07134658A JP 5279654 A JP5279654 A JP 5279654A JP 27965493 A JP27965493 A JP 27965493A JP H07134658 A JPH07134658 A JP H07134658A
Authority
JP
Japan
Prior art keywords
level
entry
vmcp
virtual
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5279654A
Other languages
Japanese (ja)
Inventor
Osamu Onodera
修 小野寺
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 JP5279654A priority Critical patent/JPH07134658A/en
Publication of JPH07134658A publication Critical patent/JPH07134658A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To eliminate the overhead of the using rate decline of a translation lookaside buffer (TLB) and to improve performance by constituting a function for selectively purging an address conversion buffer entry using a virtual machine (VM) ID. CONSTITUTION:At the time of executing the selective purging of the address conversion buffer 710 issued by the VM, the function for selectively purging the address conversion buffer entry provided with the entry coincident to the VMID and the address conversion buffer entry provided with the entry 712 subordinate to the value of the VMID respectively is provided and the operations of the selective purging of both address conversion buffer entries are simultaneously and parallelly executed. Thus, at the time of executing an instruction for purging the TLB issued by a level 20S, execution is directly performed on the level 20S and an TLB purging operation to the entire TLB entries performed by the level 10S is eliminated.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、仮想計算機システム等
の情報処理装置に係り、特に、仮想計算機システムの仮
想計算機動作時のアドレス変換のために使用して好適な
仮想計算機システムのアドレス変換バッファ制御方式に
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus such as a virtual computer system, and more particularly to an address translation buffer of a virtual computer system suitable for address translation when the virtual computer of the virtual computer system operates. Regarding control method.

【0002】[0002]

【従来の技術】一般に、仮想記憶方式を用いる情報処理
装置において、情報処理装置が主記憶上のデータ及び命
令語等をアクセスする際に、仮想アドレスを主記憶上の
絶対アドレスに変換する必要がある。このような、仮想
アドレスを主記憶上の絶対アドレスに変換する一般的な
仕様及び手段に関する従来技術として、例えば、IBM
社発行の刊行物である“Enterprise System Architectu
re/390 Principles of Operation”(SA22−720
1−00)等に記載された技術が知られている。
2. Description of the Related Art Generally, in an information processing device using a virtual memory system, it is necessary to convert a virtual address into an absolute address in the main memory when the information processing device accesses data and command words in the main memory. is there. As a conventional technique relating to such general specifications and means for converting a virtual address into an absolute address on a main memory, for example, IBM
"Enterprise System Architectu", a publication issued by the company
re / 390 Principles of Operation ”(SA22-720
The techniques described in 1-00) and the like are known.

【0003】近年、仮想計算機システムと呼ばれる情報
処理装置が実現され、その使用形態は一般化されつつあ
る。仮想計算機システムは、単一の実計算機の下に複数
の仮想計算機を生成して情報処理システムを構築するも
のであり、実計算機上で仮想計算機制御プログラム(以
下、VMCPという)を動作させ、このVMCPの制御
の下でオペレーティングシステム(以下、OSという)
を動作させるように構成されている。
In recent years, an information processing apparatus called a virtual computer system has been realized, and its usage pattern is becoming generalized. The virtual computer system is to create a plurality of virtual computers under a single real computer to construct an information processing system. A virtual computer control program (hereinafter referred to as VMCP) is run on the real computer, Operating system (hereinafter referred to as OS) under the control of VMCP
Is configured to operate.

【0004】一般に、情報処理システムを構成する計算
機の使用形態としては、実計算機上で単一のOSを動作
させる方法と単一の実計算機上で複数のOSを動作させ
る仮想計算機(以下、VMという)と呼ばれる方法とが
ある。実計算機上で単一のOSを動作させるモードをベ
ーシックモードと言い、その方法における実計算機のハ
ードウェア資源は、1台またはそれ以上の中央処理装置
(以下、CPUまたはIPという)と、1台の共用主記
憶装置(以下、MSという)と、1台またはそれ以上の
チャネルパス(以下、CHPという)とから構成され
る。そして、これらの実計算機のハードウェア資源は単
一の資源として扱われる。また、単一の実計算機上に複
数のVMを構築し、複数のOSを動作させるモードをL
PARモードと言う。
Generally, as a usage pattern of a computer constituting an information processing system, a method of operating a single OS on a real computer and a virtual computer (hereinafter, VM) operating a plurality of OSs on a single real computer are used. There is a method called. A mode in which a single OS operates on a real computer is called a basic mode, and the hardware resources of the real computer in that method are one or more central processing units (hereinafter, CPU or IP) and one unit. Shared main memory (hereinafter referred to as MS) and one or more channel paths (hereinafter referred to as CHP). The hardware resources of these real computers are treated as a single resource. In addition, a mode in which multiple VMs are built on a single real computer and multiple OSs operate is set to L
This is called PAR mode.

【0005】仮想計算機システムは、複数のVMを単一
の実計算機上で実現するために、VMCPと呼ばれるプ
ログラムを実計算機上で動作させ、このVMCPの制御
の下に複数の仮想計算機であるVMを生成し、さらに、
これらのそれぞれのVMの上で独立したOSを動作させ
るように構成されている。従って、VMCPには、単一
の実計算機のハードウェア資源を各VMに共用させて使
用させる機能が付加されている。
In order to realize a plurality of VMs on a single real computer, the virtual computer system operates a program called VMCP on the real computer and, under the control of this VMCP, the VMs which are the plurality of virtual computers. To generate
It is configured to operate an independent OS on each of these VMs. Therefore, the VMCP is added with a function of allowing each VM to share and use the hardware resources of a single real computer.

【0006】単一の実計算機のハードウェア資源を各V
Mに共用させる方法としては、VMCPの制御の下に時
分割によりハードウェア資源を割り当てる方法、ハード
ウェア資源を論理的に分割してそれらを各VMに占有的
に割り当てる方法、または、前述の2つの方法を混在さ
せて割り当てる方法等がある。この単一の実計算機のハ
ードウェア資源を各VMに割り当てる方法に関する従来
技術として、例えば、IBM社発行の刊行物“Enterpri
se System/9000 Enterprise System/3090 Processor Re
source/System Manager Planning Guide”(GA22−
7123−08)等に記載された技術が知られている。
The hardware resources of a single real computer are assigned to each V
As a method of sharing with M, a method of allocating hardware resources by time division under the control of VMCP, a method of logically dividing hardware resources and allocating them exclusively to each VM, or the above-mentioned 2 There is a method of allocating the two methods in a mixed manner. As a conventional technique relating to the method of allocating the hardware resource of this single real computer to each VM, for example, a publication "Enterpri" issued by IBM Corporation is used.
se System / 9000 Enterprise System / 3090 Processor Re
source / System Manager Planning Guide ”(GA22-
7123-08) and the like are known.

【0007】この刊行物に紹介されている従来技術は、
実CPUの共用方法として、前述した2つの方法のうち
前者の方法、すなわち、実CPUを時分割により各VM
に割り当てる方法をとっており、また、入出力チャネル
及びMSのVMによる共用方法として、前述した2つの
方法のうち後者の方法、すなわち、実CHP及び実MS
を論理的に分割して各VMに占有的に割り当てる方法を
とっている。
The prior art introduced in this publication is
As a method of sharing the real CPU, the former one of the two methods described above, that is, the real CPU is time-divided into each VM
In addition, the latter method of the above-mentioned two methods, that is, the real CHP and the real MS, is used as a method of sharing the I / O channel and the MS by the VM.
Is logically divided and exclusively allocated to each VM.

【0008】この従来技術において、仮想計算機システ
ムを構築する際、実計算機上で動作するOS(いわゆる
VMCPであり、以下、レベル1OSまたはレベル1V
MCPという)は、レベル1OSが自らアドレス変換テ
ーブルを作成し、レベル1OS上の仮想アドレス空間上
でVMとしてのOS(以下、レベル2OSまたはレベル
2VMCPという)を動作させている。さらに、このレ
ベル2OSもアドレス変換テーブルを生成して、仮想ア
ドレス空間を作り出していた。
In this prior art, when constructing a virtual computer system, an OS operating on a real computer (so-called VMCP, hereinafter referred to as level 1 OS or level 1V).
In the MCP, the level 1 OS creates the address translation table by itself, and operates the OS as a VM (hereinafter referred to as the level 2 OS or the level 2 VMCP) on the virtual address space on the level 1 OS. Furthermore, this level 2 OS also creates an address translation table to create a virtual address space.

【0009】さらに、仮想計算機システムの構築の応用
の1つとして、実計算機上で動作するレベル1OSとし
てVMCPを用い、レベル1OS上の仮想アドレス空間
上で動作するレベル2OSとしてもVMCPを用い、レ
ベル2OS上の仮想アドレス空間上で動作するOS(以
下、レベル3OSという)を動作させる方法も、極く一
般的な方法として使用されている。
Further, as one application of construction of a virtual computer system, VMCP is used as a level 1 OS operating on a real computer, and VMCP is also used as a level 2 OS operating on a virtual address space on the level 1 OS. A method of operating an OS (hereinafter, referred to as a level 3 OS) operating on a virtual address space of 2OS is also used as a very general method.

【0010】前述した従来技術は、VMの実CPUの共
用方法として、実CPUを時分割により各VMに割り当
てる方法をとっているが、以下、この種の従来技術を図
面により説明する。
The above-mentioned prior art adopts a method of allocating real CPUs to each VM in a time-sharing manner as a method of sharing real CPUs of VMs. A conventional art of this kind will be described below with reference to the drawings.

【0011】図6は従来技術によるVMに対する実CP
Uの共用を説明する仮想計算機システムの構成を示すブ
ロック図である。図6において、101はMS、102
は実CPU、111はVMCP、121〜123は論理
CPUである。
FIG. 6 shows a real CP for a VM according to the prior art.
FIG. 3 is a block diagram showing a configuration of a virtual computer system for explaining U sharing. In FIG. 6, 101 is an MS, 102
Is a real CPU, 111 is a VMCP, and 121 to 123 are logical CPUs.

【0012】図6において、実CPU(以下、PIPと
いう)102は、1台のPIP102からなり、このP
IP102は、MS101に接続されている。PIP1
02上では、VMの制御が可能なVMCP111が動作
している。このVMCP111の制御の下に複数のVM
が生成されており、複数のVMのそれぞれは、ここでは
論理CPU(以下、LIPという)と呼ばれる。そし
て、VMCP111は、図6においては、LIPA12
1、LIPB122及びLIPX123の複数のVMを
生成しており、LIPA121、LIPB122及びL
IPX123上では、それぞれ独立したOSが走行す
る。
In FIG. 6, an actual CPU (hereinafter referred to as PIP) 102 is composed of one PIP 102.
The IP 102 is connected to the MS 101. PIP1
02, the VMCP 111 capable of controlling the VM is operating. Under control of this VMCP111, multiple VMs
Are generated, and each of the plurality of VMs is called a logical CPU (hereinafter, referred to as LIP) here. Then, the VMCP 111 is the LIPA 12 in FIG.
1, LIPB 122 and LIPX 123 are generated, and LIPA 121, LIPB 122 and L are generated.
On the IPX 123, independent OSs run.

【0013】図6に示す例は、PIP102上にVMC
P11を1つ走行させ、その制御の下に複数のVMを生
成し、生成されたそれぞれのVM上でゲストOSを走行
させる仮想計算機システムの例であり、従来のVMの一
般的な使用形態である。
The example shown in FIG. 6 has VMC on PIP 102.
This is an example of a virtual computer system in which one P11 is run, a plurality of VMs are created under the control of the P11, and a guest OS is run on each of the created VMs. is there.

【0014】近年、図6に例示した使用形態に加え、P
IP上にVMCP(以下、レベル1VMCPという)を
走行させ、その制御の下に複数のVMを生成し、生成さ
れたそれぞれのVM上に、さらにVMCP(以下、レベ
ル2VMCPという)を走行させ、レベル2VMCPの
制御の下に複数のVMを生成し、生成されたそれぞれの
VM上でゲストOSを走行させる仮想計算機システムが
実現され、一般化しつつある。
Recently, in addition to the usage pattern illustrated in FIG. 6, P
A VMCP (hereinafter, referred to as level 1 VMCP) is run on the IP, a plurality of VMs are generated under the control of the VM, and a VMCP (hereinafter, referred to as level 2 VMCP) is further run on each of the generated VMs. A virtual computer system that creates a plurality of VMs under the control of 2VMCP and runs a guest OS on each of the created VMs has been realized and is becoming popular.

【0015】図7は前述のような前記仮想計算機システ
ムの一般的な構成を示すブロック図である。図7におい
て、211はレベル1VMCP、221はレベル1論理
CPU、231はレベル2VMCP、241、242は
レベル2論理CPU、251、252はゲストOSであ
り、他の符号は図6の場合と同一である。この図7に示
す例は、図6に示した従来技術におけるPIP102上
にレベル1VMCP211とレベル2VMCP231と
を搭載し、その上にVMを生成した仮想計算機システム
である。
FIG. 7 is a block diagram showing a general configuration of the above virtual computer system. 7, 211 is a level 1 VMCP, 221 is a level 1 logical CPU, 231 is a level 2 VMCP, 241, 242 are level 2 logical CPUs, 251 and 252 are guest OSs, and other symbols are the same as those in FIG. is there. The example shown in FIG. 7 is a virtual computer system in which a level 1 VMCP 211 and a level 2 VMCP 231 are mounted on the PIP 102 according to the conventional technique shown in FIG. 6 and a VM is generated thereon.

【0016】図7において、PIPは、1台のPIP1
02から成る。PIP102は、MS101に接続され
ている。PIP102上では、VMの制御が可能なレベ
ル1VMCP211が動作している。このレベル1VM
CP211の制御の下で複数のVMであるレベル1論理
CPU(以下、レベル1LIPという)221が生成さ
れておいる。レベル1LIP上では、VMの制御が可能
なレベル2VMCP231が動作している。このレベル
2VMCP231の制御の下に、さらに複数のVMであ
るレベル2論理CPU(以下、レベル2LIPという)
が生成されている。すなわち、レベル2VMCP231
は、図7においては、レベル2LIPA241及びレベ
ル2LIPB242の複数のVMを生成しており、レベ
ル2LIPA241及びレベル2LIPB242上で
は、それぞれ独立したOSであるゲストOS251及び
ゲストOS252が走行する。
In FIG. 7, PIP is one PIP1.
It consists of 02. The PIP 102 is connected to the MS 101. On the PIP 102, the level 1 VMCP 211 capable of controlling the VM is operating. This level 1VM
Under the control of the CP 211, a level 1 logical CPU (hereinafter, referred to as level 1 LIP) 221 which is a plurality of VMs is generated. On the level 1 LIP, the level 2 VMCP 231 capable of controlling the VM is operating. Under the control of the level 2 VMCP 231, a plurality of VMs are level 2 logical CPUs (hereinafter referred to as level 2 LIPs).
Is being generated. That is, level 2 VMCP 231
In FIG. 7, a plurality of VMs of the level 2 LIPA 241 and the level 2 LIPB 242 are generated, and the guest OS 251 and the guest OS 252 that are independent OSs run on the level 2 LIPA 241 and the level 2 LIPB 242, respectively.

【0017】図8は図7に示すように構成された仮想計
算機システムが動作する場合の、レベル1VMCP、レ
ベル2VMCP及びレベル3のゲストOSの制御の流れ
を示すフローチャートであり、以下、この図を参照し
て、図7に示すように構成された仮想計算機システムを
動作させる場合の制御の流れを説明する。
FIG. 8 is a flow chart showing the control flow of the level 1 VMCP, level 2 VMCP, and level 3 guest OS when the virtual computer system configured as shown in FIG. 7 operates. The control flow when operating the virtual machine system configured as shown in FIG. 7 will be described with reference to FIG.

【0018】図7において、当初、レベル1VMCP2
11は、仮想計算機ID(以下、VMIDという)の値
を“A”として動作する。VMIDとは、実計算機上で
動作するVMにハードウェアによって自動的に、そし
て、それぞれのレベル1VMCP211固有に割り当て
られる値であり、TLBへの論理アドレスと絶対アドレ
スとのアドレス変換対の登録時に同時にTLBエントリ
の一部に登録され、このアドレス変換対が属するVMを
規程するものである。
In FIG. 7, initially, level 1 VMCP2
11 operates with the value of the virtual computer ID (hereinafter referred to as VMID) set to "A". The VMID is a value automatically assigned to the VM operating on the real computer by the hardware and unique to each level 1 VMCP 211, and at the same time when the address translation pair of the logical address and the absolute address is registered in the TLB. It is registered in a part of the TLB entry and regulates the VM to which this address translation pair belongs.

【0019】レベル1VMCP211がVMとしてのレ
ベル2VMCP231を起動する際、VMを起動する命
令であるStart Interpretive Execution命令(以下、S
IE命令という)が使用される。SIE命令は、IE機
能の一部であり、その一般的仕様は、例えば、IBM社
発行の刊行物“IBM System/370 Extended Architecture
Interpretive Execution”(SA22−7095)に
その詳細が記述されている。SIE命令のオペランドア
ドレスは、起動しようとしているVMのレジスタ及びそ
の他の状態を保持している領域を指しており、これを状
態記述(StateDescription : 以下、SDという)とい
う。SDについての一般的仕様は、例えば、IBM社発
行の前記刊行物にその詳細が記述されている。
When the level 1 VMCP 211 activates the level 2 VMCP 231 as a VM, a Start Interpretive Execution instruction (hereinafter, S) which is an instruction to activate the VM.
IE command) is used. The SIE instruction is a part of the IE function, and its general specification is, for example, the publication "IBM System / 370 Extended Architecture" issued by IBM Corporation.
The details are described in "Interpretive Execution" (SA22-7095). The operand address of the SIE instruction points to the area holding the register and other states of the VM to be activated, and this is the state description. (State Description: hereinafter referred to as SD) The general specifications of SD are described in detail, for example, in the above-mentioned publication issued by IBM Corporation.

【0020】すなわち、レベル1VMCPは、まず、レ
ベル2VMCPを起動するために、前述のSD(L1S
Dと記す)を設定してSIE命令を発行する(ステップ
301、302)。
That is, the level 1 VMCP is first activated by the SD (L1S) in order to activate the level 2 VMCP.
Set D) and issue the SIE command (steps 301, 302).

【0021】SIE命令によって起動されたレベル2V
MCP231は、その命令処理をVMとして実行する。
その際、レベル2VMCP231は、VMIDの値を
“B”として動作する。レベル2VMCP231は、レ
ベル2VMCPの制御の下で動作するレベル3のゲスト
OSを起動するために、SD(L2SDと記す)を用意
した後でSIE命令(以下、仮想SIE命令という)を
発行する(ステップ303、304)。
Level 2V activated by SIE instruction
The MCP 231 executes the instruction process as a VM.
At that time, the level 2 VMCP 231 operates with the value of the VMID set to “B”. The level 2 VMCP 231 issues an SIE instruction (hereinafter referred to as a virtual SIE instruction) after preparing an SD (L2SD) in order to start a level 3 guest OS operating under the control of the level 2 VMCP (step 303, 304).

【0022】レベル2VMCP231が前述の仮想SI
E命令を発行すると、この仮想SIE命令は、インター
セプトされ制御がレベル1VMCP211に戻される。
The level 2 VMCP 231 is the virtual SI described above.
When the E instruction is issued, this virtual SIE instruction is intercepted and control is returned to the level 1 VMCP 211.

【0023】ここで、レベル1VMCP211にインタ
ーセプトされた理由は、レベル2VMCP231には、
実ハードウェア資源を管理する手段が無いためである。
制御がレベル1VMCP211に戻されると、レベル1
VMCP211は、VMIDの値を“A”として動作す
るように切り替えられる。レベル1VMCP211は、
インターセプションの原因を調べ、その原因がレベル2
VMCP231が発行した仮想SIE命令であることを
突き止めると、仮想SIE命令をシミュレーションす
る。
Here, the reason why the level 2 VMCP 211 is intercepted is that the level 2 VMCP 231 is:
This is because there is no means for managing real hardware resources.
When control returns to level 1 VMCP 211, level 1
The VMCP 211 is switched to operate with the value of VMID set to “A”. Level 1 VMCP211 is
Investigate the cause of interception and find the cause is Level 2
When the virtual SIE instruction issued by the VMCP 231 is found, the virtual SIE instruction is simulated.

【0024】レベル1VMCP211は、この仮想SI
E命令シミュレーションにおいて、レベル3のゲストO
Sを起動するための他のSD(以下、シャドーSDとい
う)を、レベル2VMCPが用意した仮想SD及びイン
ターセプションを受け付けたレベル1VMCPが走行し
ている実ハードウェア資源の割当て状況の双方に基づい
て用意し、このシャドーSDをオペランドとしてSIE
命令を発行する(ステップ305、306)。
Level 1 VMCP 211 is the virtual SI
Guest O of level 3 in E instruction simulation
Based on both the virtual SD prepared by the level 2 VMCP and the real hardware resource allocation state running by the level 1 VMCP that has accepted the interception, another SD (hereinafter, shadow SD) for starting the S Prepare and use this shadow SD as an operand
The command is issued (steps 305 and 306).

【0025】シャドーSDをオペランドとしてSIE命
令が発行されると、制御はレベル3のゲストOSに移
り、このゲストOSは、VMIDの値を“C”として動
作するように切り替えられる。このシャドーSDをオペ
ランドとしてSIE命令を発行する操作は、あたかもレ
ベル2VMCPが仮想SDをオペランドとして仮想SI
E命令を実行するように行われる。
When the SIE instruction is issued using the shadow SD as an operand, control is transferred to the level 3 guest OS, and the guest OS is switched to operate with the VMID value of "C". The operation of issuing an SIE instruction using this shadow SD as an operand is as if the level 2 VMCP uses a virtual SD as an operand and a virtual SI.
E instructions are executed.

【0026】以後、レベル3のゲストOSが走行する
(ステップ307)。
Thereafter, the guest OS of level 3 runs (step 307).

【0027】図9はVMIDを具備したTLBの構成を
示すブロック図であり、次に、この図9を参照して、V
MIDを備えるTLBの制御について説明する。図9に
おいて、410はアドレス変換バッファ、420、47
0はセレクタ、430は出力レジスタ、440はVMI
Dレジスタ、450〜452は比較器、460はAND
ゲート、480はアドレス変換制御部である。
FIG. 9 is a block diagram showing the structure of a TLB provided with a VMID. Next, referring to FIG.
The control of the TLB provided with the MID will be described. In FIG. 9, reference numeral 410 is an address translation buffer, and 420 and 47.
0 is a selector, 430 is an output register, 440 is a VMI
D register, 450 to 452 are comparators, 460 is AND
Gates 480 are address translation control units.

【0028】図9に示すTLBの構成において、アドレ
ス変換バッファ410は、IPがデータ及び命令語をア
クセスする際の論理アドレスを絶対アドレスに高速に変
換するためのハードウェア機構であり、エントリ有効フ
ラグ411(以下、Vフラグという)、該エントリが所
属するVMIDを保持するエントリ412(以下、VM
IDエントリという)、セグメントテーブル起点の所属
及びアドレスを保持するエントリ413(以下、STO
エントリという)、論理アドレスを保持するエントリ4
14(以下、論理アドレスエントリという)、論理アド
レスに対応する絶対アドレスを保持するエントリ415
(以下、絶対アドレスエントリという)及び該絶対アド
レスに付与されている主記憶キーを保持するエントリ4
16(以下、主記憶キーエントリという)の各エントリ
を備えて構成されている。そして、このアドレス変換バ
ッファ410は、前述の関連エントリを1組として、複
数組のエントリ群から構成される。
In the TLB configuration shown in FIG. 9, the address translation buffer 410 is a hardware mechanism for rapidly converting a logical address when an IP accesses data and a command word into an absolute address, and an entry valid flag. 411 (hereinafter, referred to as V flag), and an entry 412 (hereinafter, VM) that holds a VMID to which the entry belongs.
An entry 413 (hereinafter referred to as an STO) that holds the segment table origin and address.
Entry 4), which holds a logical address
14 (hereinafter referred to as a logical address entry), an entry 415 that holds an absolute address corresponding to the logical address
(Hereinafter referred to as absolute address entry) and entry 4 that holds the main memory key assigned to the absolute address
16 (hereinafter referred to as main memory key entry). The address translation buffer 410 is made up of a plurality of groups of entries, with the above-mentioned related entry as one group.

【0029】セレクタA420は、IPがデータ及び命
令語をアクセスする際の論理アドレスを入力として、ア
ドレス変換バッファ410の複数組のエントリ群から関
連エントリを1組選択するセレクタである。出力レジス
タ430は、アドレス変換バッファ410の複数組のエ
ントリ群から選択された1組の関連エントリの内容を一
時的に保持しておくレジスタである。
The selector A 420 is a selector that receives a logical address when the IP accesses data and a command word and selects one set of related entries from a plurality of sets of entries in the address translation buffer 410. The output register 430 is a register that temporarily holds the contents of a set of related entries selected from a plurality of sets of entries in the address translation buffer 410.

【0030】また、VMIDレジスタ440は、IPが
データ及び命令語をアクセスする際のVMIDを保持す
るエントリ441(以下、VMIDエントリという)及
び該VMIDに対応するSD絶対アドレスを保持するエ
ントリ442(以下、SDアドレスエントリという)か
ら構成される。VMIDレジスタ440は、前記の関連
エントリを1組として、複数組のエントリ群から構成さ
れる。
Further, the VMID register 440 has an entry 441 (hereinafter referred to as a VMID entry) holding a VMID when the IP accesses data and a command word, and an entry 442 (hereinafter referred to as an SD absolute address corresponding to the VMID). , SD address entry). The VMID register 440 is made up of a plurality of sets of entries, with the related entry as one set.

【0031】このVMIDレジスタ440は、IP上で
VMが走行する際、SIE命令のオペランドであるSD
のアドレスに対応したSDアドレスエントリ442が選
択され、該エントリ内のVMIDエントリ441が、ア
ドレス変換バッファ410内のVMIDエントリ412
と比較される。
This VMID register 440 is an operand of the SIE instruction, SD, when the VM runs on the IP.
SD address entry 442 corresponding to the address of the VMID entry 442 is selected, and the VMID entry 441 in the entry is selected as the VMID entry 412 in the address translation buffer 410
Compared to.

【0032】比較器A450、比較器B451及び比較
器C452は、それぞれ、出力レジスタ430に一時的
に保持された、VMIDエントリ412、STOエント
リ413及び論理アドレスエントリ414の内容と、V
MIDレジスタ440のVMIDエントリ441の内
容、主記憶アクセスで使用されるセグメントテーブル起
点及び主記憶アクセスに伴う論理アドレスとを比較する
データの比較器である。
The comparator A450, the comparator B451 and the comparator C452 respectively have the contents of the VMID entry 412, the STO entry 413 and the logical address entry 414 which are temporarily held in the output register 430, and the V
This is a data comparator that compares the contents of the VMID entry 441 of the MID register 440, the segment table starting point used in main memory access, and the logical address associated with main memory access.

【0033】ANDゲート460は、比較器A450、
比較器B451及び比較器C452のそれぞれの比較結
果の論理積をとるANDゲートである。さらに、セレク
タB470は、出力レジスタ430に一時的に保持され
た絶対アドレスエントリ415及び主記憶キーエントリ
416の内容を、ANDゲート460から送出されるデ
ータの比較一致を示すヒット信号によって選択して送出
するセレクタであり、アドレス変換制御部480は、図
9にブロック図として示すTLBの動作全体を制御する
制御装置である。
The AND gate 460 is connected to the comparator A450,
The AND gate is a logical product of the comparison results of the comparator B451 and the comparator C452. Further, the selector B470 selects the contents of the absolute address entry 415 and the main memory key entry 416 temporarily held in the output register 430 by the hit signal indicating the comparison match of the data sent from the AND gate 460 and sends them. The address translation control unit 480 is a selector that controls the entire operation of the TLB shown as a block diagram in FIG.

【0034】次に、前述したように構成されるTLBを
用いたアドレス変換動作について説明する。
Next, the address conversion operation using the TLB configured as described above will be described.

【0035】図9において、PIPから主記憶へのアク
セス要求が発行されると、その主記憶アクセス要求と論
理アドレスとが、信号線4A0を介してPIPからアド
レス変換バッファ410に送出されてくる。アドレス変
換バッファ410は、信号線4A0を介してPIPから
の主記憶アクセス要求と論理アドレスとを受け取ると、
論理アドレスをセレクタA420及び比較器C452に
転送する。
In FIG. 9, when an access request to the main memory is issued from the PIP, the main memory access request and the logical address are sent from the PIP to the address translation buffer 410 via the signal line 4A0. When the address translation buffer 410 receives the main memory access request and the logical address from the PIP via the signal line 4A0,
The logical address is transferred to the selector A420 and the comparator C452.

【0036】論理アドレスを受け取ったセレクタA42
0は、論理アドレスの値からアドレス変換バッファ41
0内の複数のエントリ群から1つのエントリを選択し、
これを読み出す要求を発行する。アドレス変換バッファ
410は、エントリ読み出し要求を受け取ると、該当す
る1つのエントリを読み出し、信号線4C0を介して出
力レジスタ430にその読み出しデータをセットする。
Selector A42 which received the logical address
0 is the logical address value from the address translation buffer 41
Select one entry from multiple entry groups in 0,
A request to read this is issued. Upon receiving the entry read request, the address translation buffer 410 reads the corresponding one entry and sets the read data in the output register 430 via the signal line 4C0.

【0037】前述で読み出されて出力レジスタ430に
セットされる1つのエントリの内訳は、Vフラグ41
1、VMIDエントリ412、STOエントリ413、
論理アドレスエントリ414、絶対アドレスエントリ4
15及び主記憶キーエントリ416である。また、VM
IDレジスタ440は、主記憶へのアクセス要求が発行
された時点のSDの絶対アドレスを保持するSDアドレ
スエントリ442に対応するVMIDエントリ441を
選択し、このVMIDエントリ441の内容を信号線4
D0を介して比較器A450に入力する。
The breakdown of one entry that is read out and set in the output register 430 is the V flag 41.
1, VMID entry 412, STO entry 413,
Logical address entry 414, absolute address entry 4
15 and a main memory key entry 416. Also, VM
The ID register 440 selects the VMID entry 441 corresponding to the SD address entry 442 that holds the absolute address of the SD at the time when the access request to the main memory is issued, and the content of this VMID entry 441 is set on the signal line 4
Input to the comparator A450 via D0.

【0038】一方、アドレス変換バッファ410が、エ
ントリの読み出し要求を受け取り、該当する1つのエン
トリを読み出し、出力レジスタ430にその読み出しデ
ータをセットした後、そのTLBエントリがヒットして
いるか否かの比較が行われる。この比較は、以下に説明
する手順により行われる。
On the other hand, the address translation buffer 410 receives the entry read request, reads the corresponding one entry, sets the read data in the output register 430, and then compares whether or not the TLB entry is hit. Is done. This comparison is performed by the procedure described below.

【0039】先ず、出力レジスタ430にセットされた
Vフラグ411の内容が、信号線4E0を介してAND
ゲート460に送られる。次に、出力レジスタ430に
セットされたVMIDエントリ412の内容が、信号線
4E1を介して比較器A450に送られて入力され、V
MIDレジスタ440のVMIDエントリ441の内容
が信号線4D0を介して比較器A450に入力され、比
較器A450において双方の入力データが比較される。
そして、この比較の結果の一致または不一致の信号が信
号線4E4を介してANDゲート460に送られる。
First, the contents of the V flag 411 set in the output register 430 are ANDed via the signal line 4E0.
It is sent to the gate 460. Next, the content of the VMID entry 412 set in the output register 430 is sent to and input to the comparator A450 via the signal line 4E1.
The content of the VMID entry 441 of the MID register 440 is input to the comparator A450 via the signal line 4D0, and the comparator A450 compares both input data.
Then, a match or mismatch signal of the result of this comparison is sent to the AND gate 460 via the signal line 4E4.

【0040】さらに、出力レジスタ430にセットされ
たSTOエントリ413の内容が、信号線4E2を介し
て比較器B451に送られて入力され、PIPから主記
憶へのアクセス要求が発行されたときの論理アドレスに
対応するセグメントテーブル指定(以下、STDとい
う)が、信号線4A1を介して比較器B451に入力さ
れ、比較器B451において双方の入力データが比較さ
れる。そして、この比較の結果の一致または不一致の信
号が信号線4E5を介してANDゲート460に送られ
る。
Further, the content of the STO entry 413 set in the output register 430 is sent to and input to the comparator B451 via the signal line 4E2, and the logic when the access request to the main memory is issued from the PIP is issued. The segment table designation (hereinafter referred to as STD) corresponding to the address is input to the comparator B451 via the signal line 4A1, and both input data are compared in the comparator B451. Then, a match or mismatch signal of the result of this comparison is sent to the AND gate 460 via the signal line 4E5.

【0041】さらに、出力レジスタ430にセットされ
たSTOエントリ413の内容が、信号線4E2を介し
て比較器B451に送られて入力され、PIPから主記
憶へのアクセス要求が発行されたときの論理アドレスに
対応するセグメントテーブル指定(以下、STDとい
う)が、信号線4A1を介して比較器B451に入力さ
れ、比較器B451において双方の入力データが比較さ
れる。そして、この比較の結果の一致または不一致の信
号が信号線4E5を介してANDゲート460に送られ
る。
Further, the content of the STO entry 413 set in the output register 430 is sent to the comparator B451 via the signal line 4E2 and input, and the logic when the access request to the main memory is issued from the PIP is issued. The segment table designation (hereinafter referred to as STD) corresponding to the address is input to the comparator B451 via the signal line 4A1, and both input data are compared in the comparator B451. Then, a match or mismatch signal of the result of this comparison is sent to the AND gate 460 via the signal line 4E5.

【0042】さらに、出力レジスタ430にセットされ
た論理アドレスエントリ414の内容が、信号線4E3
を介して比較器C452に送られて入力され、PIPか
ら主記憶へのアクセス要求が発行されたときの論理アド
レスが、信号線4A0を介して比較器C452に入力さ
れ、比較器C452において双方の入力データが比較さ
れる。この比較の結果の一致または不一致の信号が信号
線4E6を介してANDゲート460に送られる。
Further, the contents of the logical address entry 414 set in the output register 430 is the same as the signal line 4E3.
The logical address when the PIP issues an access request to the main memory is input to the comparator C452 via the signal line 4A0, and is input to the comparator C452 via the signal line 4A0. The input data are compared. A match or mismatch signal of the result of this comparison is sent to the AND gate 460 via the signal line 4E6.

【0043】ANDゲート460は、前述した信号線4
E0、信号線4E4、信号線4E5及び信号線4E6を
介して入力されたそれぞれの一致信号または不一致信号
の論理積をとり、全ての信号が“1”(または一致)で
あれば、TLBヒット信号を“1”として、信号線4G
0に送出する。信号線4G0に送出されたTLBヒット
信号は、アドレス変換制御部480及びセレクタB47
0に入力される。
The AND gate 460 is connected to the signal line 4 described above.
EOL, signal line 4E4, signal line 4E5, and the logical product of the respective coincidence signals or non-coincidence signals input via signal line 4E6, and if all the signals are "1" (or coincidence), the TLB hit signal Is set to "1" and the signal line 4G
Send to 0. The TLB hit signal sent to the signal line 4G0 is the address translation control unit 480 and the selector B47.
Input to 0.

【0044】値“1”を有するTLBヒット信号を信号
線4G0を介して受け取ったセレクタB470は、出力
レジスタ430にセットされた絶対アドレスエントリ4
15及び主記憶キーエントリ416の内容を送出してい
る信号線4F0及び信号線4F1を選択し、アドレス変
換バッファ410の出力である論理アドレスに対応する
絶対アドレス及び該絶対アドレスに付与されている主記
憶キーを要求元のPIPに送り返す。
Upon receiving the TLB hit signal having the value “1” via the signal line 4G0, the selector B470 receives the absolute address entry 4 set in the output register 430.
15 and the signal line 4F0 and the signal line 4F1 sending out the contents of the main memory key entry 416 are selected, and the absolute address corresponding to the logical address output from the address conversion buffer 410 and the main address assigned to the absolute address are selected. The storage key is sent back to the requesting PIP.

【0045】論理アドレスに対応する絶対アドレス及び
該絶対アドレスに付与されている主記憶キーを受け取っ
たPIPは、該絶対アドレスを用いてMSにアクセス要
求を出すと共にプログラム状態語内のキー(以下、PS
Wキーという)と該主記憶キーとを用いてキー制御プロ
テクションのチェックを行う。
Upon receiving the absolute address corresponding to the logical address and the main memory key assigned to the absolute address, the PIP issues an access request to the MS using the absolute address, and at the same time the key in the program state word (hereinafter, PS
The key control protection is checked using the W key) and the main memory key.

【0046】また、アドレス変換制御部480は、
“1”のTLBヒット信号を信号線4G0を介して受け
取った場合、動的アドレス変換過程の起動が不要である
旨をPIPに通知し、“0”のTLBヒット信号を信号
線4G0を介して受け取った場合、動的アドレス変換
(以下、DATという)過程の起動が必要である旨をP
IPに通知し、DAT動作を起動する。このDATにつ
いての一般的仕様については、例えば、前述の刊行物に
その詳細が記述されている。
Further, the address conversion control unit 480 is
When the TLB hit signal of "1" is received through the signal line 4G0, the PIP is notified that the activation of the dynamic address translation process is unnecessary, and the TLB hit signal of "0" is received through the signal line 4G0. If it is received, P indicating that it is necessary to activate the dynamic address translation (hereinafter referred to as DAT) process.
Notify the IP and activate the DAT operation. The general specifications for this DAT are described in detail, for example, in the aforementioned publications.

【0047】DAT動作の結果得られる絶対アドレス他
のアドレス情報は、信号線4B0を介して得られ、アド
レス変換バッファ410に登録される。すなわち、主記
憶へのアクセス要求に伴う論理アドレス、その時点のS
TD、VMID、DATの結果得られた絶対アドレス、
及び、主記憶キーが、アドレス変換バッファ410の論
理アドレスによって決定されるTLBエントリとして、
信号線4B0を介してVフラグ411、VMIDエント
リ412、STOエントリ413、論理アドレスエント
リ414、絶対アドレスエントリ415及び主記憶キー
エントリ416が登録される。
Address information such as an absolute address obtained as a result of the DAT operation is obtained through the signal line 4B0 and registered in the address conversion buffer 410. That is, the logical address accompanying the access request to the main memory, the S at that time
Absolute address obtained as a result of TD, VMID, DAT,
And, the main memory key is a TLB entry determined by the logical address of the address translation buffer 410,
The V flag 411, the VMID entry 412, the STO entry 413, the logical address entry 414, the absolute address entry 415, and the main memory key entry 416 are registered via the signal line 4B0.

【0048】そして、この登録されたTLBエントリ
は、以降のMSアクセスのために使用される。この際の
TLBエントリ登録は、主としてハードウェア論理また
はマイクロプログラムによって行われる。また、DAT
動作によるVMIDレジスタ440のVMIDエントリ
441の内容及びSDアドレスエントリ442の内容の
登録は、信号線4H0及び信号線4H1を介して、主と
してマイクロプログラムによって行われる。
Then, this registered TLB entry is used for subsequent MS access. The TLB entry registration at this time is mainly performed by a hardware logic or a microprogram. Also, DAT
Registration of the content of the VMID entry 441 and the content of the SD address entry 442 of the VMID register 440 by the operation is performed mainly by the microprogram via the signal lines 4H0 and 4H1.

【0049】次に、図9に示すTLBにおけるアドレス
変換バッファのパージ動作について説明する。
Next, the purging operation of the address translation buffer in the TLB shown in FIG. 9 will be described.

【0050】図9にお、PIPからTLBパージ要求が
発行されると、そのTLBエントリ番号が、信号線4A
0を介してPIPからアドレス変換バッファ410に送
出されてくる。アドレス変換バッファ410は、信号線
4A0を介してPIPからのTLBパージ要求とそのT
LBエントリ番号とを受け取り、TLBエントリ番号を
受け取ったセレクタA420は、TLBエントリ番号の
値からアドレス変換バッファ410内の複数のエントリ
群から1つのエントリを選択し、読み出し要求を発行す
る。
In FIG. 9, when a TLB purge request is issued from the PIP, the TLB entry number is changed to the signal line 4A.
It is sent from the PIP to the address translation buffer 410 via 0. The address translation buffer 410 sends the TLB purge request from the PIP and the T request via the signal line 4A0.
Upon receiving the LB entry number and the TLB entry number, the selector A 420 selects one entry from the plurality of entry groups in the address translation buffer 410 based on the value of the TLB entry number, and issues a read request.

【0051】アドレス変換バッファ410は、エントリ
読み出し要求を受け取ると、該当する1つのエントリを
読み出し、信号線4C0を介して出力レジスタ430に
読み出しデータをセットする。これにより読み出され出
力レジスタ430にセットされる1つのエントリの内訳
は、Vフラグ411、VMIDエントリ412、STO
エントリ413、論理アドレスエントリ414、絶対ア
ドレスエントリ415及び主記憶キーエントリ416で
ある。また、VMIDレジスタ440は、TLBパージ
要求が発行された時点のSDの絶対アドレスを保持する
SDアドレスエントリ442に対応するVMIDエント
リ441を選択し、このVMIDエントリ441の内容
を信号線4D0を介して比較器A450に入力する。
When the address translation buffer 410 receives the entry read request, it reads the corresponding one entry and sets the read data in the output register 430 via the signal line 4C0. The contents of one entry read out by this and set in the output register 430 are: V flag 411, VMID entry 412, STO.
An entry 413, a logical address entry 414, an absolute address entry 415 and a main memory key entry 416. Further, the VMID register 440 selects the VMID entry 441 corresponding to the SD address entry 442 holding the absolute address of the SD at the time when the TLB purge request is issued, and the content of this VMID entry 441 is sent via the signal line 4D0. Input to the comparator A450.

【0052】一方、アドレス変換バッファ410が、エ
ントリの読み出し要求を受け取り、該当する1つのエン
トリを読み出し、出力レジスタ430にその読み出しデ
ータをセットした後、そのTLBエントリのパージが必
要か否かの比較が行われる。この比較は、以下に説明す
る手順で行われる。
On the other hand, the address translation buffer 410 receives the entry read request, reads the corresponding one entry, sets the read data in the output register 430, and then compares whether or not the TLB entry needs to be purged. Is done. This comparison is performed according to the procedure described below.

【0053】まず、出力レジスタ430にセットされた
VMIDエントリ412の内容が、信号線4E1を介し
て比較器A450に送られて入力され、VMIDレジス
タ440のVMIDエントリ441の内容が信号線4D
0を介して比較器A450に入力され、比較器A450
において双方の入力データが比較される。この比較の結
果の一致または不一致の信号が信号線4E4を介してア
ドレス変換バッファ410に送られる。この比較結果の
信号が“1”(一致)であれば、アドレス変換バッファ
410の選択されているTLBエントリのVフラグ41
1に“0”を書き込み、そのTLBエントリを無効化す
る。また、比較結果の信号が“0”(不一致)であれ
ば、そのTLBエントリの無効化は行われない。
First, the content of the VMID entry 412 set in the output register 430 is sent to and input to the comparator A450 via the signal line 4E1, and the content of the VMID entry 441 of the VMID register 440 is input to the signal line 4D.
It is input to the comparator A450 via 0, and the comparator A450
In, both input data are compared. A match or mismatch signal as a result of this comparison is sent to the address conversion buffer 410 via the signal line 4E4. If the signal of this comparison result is "1" (match), the V flag 41 of the selected TLB entry of the address translation buffer 410 is obtained.
Write "0" in 1 to invalidate the TLB entry. If the signal of the comparison result is "0" (mismatch), the TLB entry is not invalidated.

【0054】図10は図7に示すシステムにおける各レ
ベルのOS(VMCP)に対する従来技術によるMSの
領域割り当てを説明する図である。
FIG. 10 is a view for explaining the area allocation of the MS according to the prior art to each level OS (VMCP) in the system shown in FIG.

【0055】図10に示すMSの領域割り当ての例は、
従来技術による仮想計算機システムのうち、実計算機上
で動作するレベル1OSが自らアドレス変換テーブルを
作成し、レベル1OS上の仮想アドレス空間上でVMと
してのレベル2OSを動作させ、さらに、このレベル2
OSもアドレス変換テーブルを生成して、仮想アドレス
空間を作り出しているシステム対する実MSの領域の割
り当ての例である。すなわち、図10は、実計算機上で
動作するレベル1OSとしてVMCP510が、レベル
1OS上の仮想アドレス空間上で動作するレベル2OS
としてVMCP520が用いられ、レベル2OS上の仮
想アドレス空間上でレベル3OS530を動作させるシ
ステムのレベル1OSに割り当てられる実MS領域、レ
ベル1OS上の仮想アドレス空間上で動作するレベル2
OSに割り当てられる実MS領域及びレベル2OS上の
仮想アドレス空間上で動作するレベル3OSに割り当て
られる実MS領域を示している。
An example of MS area allocation shown in FIG.
In the virtual machine system according to the conventional technology, the level 1 OS operating on the real computer creates the address translation table by itself, and operates the level 2 OS as the VM on the virtual address space on the level 1 OS.
The OS is also an example of allocating an area of the real MS to the system that creates the address conversion table and creates the virtual address space. That is, in FIG. 10, a VMCP 510 is a level 2 OS operating on a real computer and a level 2 OS operating on a virtual address space on the level 1 OS.
The VMCP 520 is used as the real MS area allocated to the level 1 OS of the system that operates the level 3 OS 530 on the virtual address space on the level 2 OS, and the level 2 operating on the virtual address space on the level 1 OS
The real MS area allocated to the OS and the real MS area allocated to the level 3 OS operating on the virtual address space on the level 2 OS are shown.

【0056】図10に示す例において、レベル1VMC
P510に割り当てられる実MS領域は、領域Aで示し
た領域であり、これは実MS全ての領域に等しい。レベ
ル1VMCP510上の仮想アドレス空間上で動作する
レベル2VMCP520に割り当てられる実MS領域
は、領域Bで示した領域であり、これは図10に示すよ
うに領域Aの一部分に割り当てられる。また、レベル2
VMCP520上の仮想アドレス空間上で動作するレベ
ル3OS530に割り当てられる実MS領域は、領域C
で示した領域であり、これは図10に示すように領域B
の一部分に割り当てられる。
In the example shown in FIG. 10, level 1 VMC
The real MS area assigned to P510 is the area shown in area A, which is equal to all real MS areas. The real MS area assigned to the level 2 VMCP 520 operating in the virtual address space on the level 1 VMCP 510 is the area shown by the area B, which is assigned to a part of the area A as shown in FIG. Also, level 2
The real MS area assigned to the level 3 OS 530 operating in the virtual address space on the VMCP 520 is the area C
This is the area indicated by, and this is area B as shown in FIG.
Assigned to a part of.

【0057】そして、レベル1VMCP510は、割り
当てVMIDが“A”の値で走行し、レベル1VMCP
510上の仮想アドレス空間上で動作するレベル2VM
CP520は、割り当てVMIDが“B”の値で走行
し、さらに、レベル2VMCP520上の仮想アドレス
空間上で動作するレベル3OS530は、割り当てVM
IDが“C”の値で走行する。
Then, the level 1 VMCP 510 runs with the value of the assigned VMID being "A", and the level 1 VMCP 510
Level 2 VM operating on virtual address space on 510
The CP 520 runs with the value of the allocated VMID being “B”, and the level 3 OS 530 operating in the virtual address space on the level 2 VMCP 520 is the allocated VM.
The vehicle runs with an ID of "C".

【0058】すなわち、レベル1VMCP510は、割
り当てVMIDが“A”の値でMSの領域Aを使用して
走行し、レベル2VMCP520は、割り当てVMID
が“B”の値でMSの領域Aの一部分である領域Bを使
用して走行し、レベル3OS530は、割り当てVMI
Dが“C”の値で領域Bの一部分である領域Cを使用し
て走行する。
That is, the level 1 VMCP 510 runs using the area A of the MS with the assigned VMID being "A", and the level 2 VMCP 520 is assigned VMID.
Is a value of "B", the area V is a part of the area A of the MS, and the level 3 OS 530 is assigned VMI.
The vehicle travels using the area C, which is a part of the area B when D has a value of "C".

【0059】図11、図12は図7に示すように構成さ
れた仮想計算機システムが動作する場合で、かつ、TL
Bのパージが必要となる場合のレベル1VMCP、レベ
ル2VMCP及びレベル3のゲストOSの制御の流れを
示すフローチャートである。
FIGS. 11 and 12 show the case where the virtual computer system configured as shown in FIG. 7 operates and the TL
9 is a flowchart showing a control flow of a level 1 VMCP, a level 2 VMCP, and a level 3 guest OS when B purging is required.

【0060】以下、図11、図12に示すフローを参照
して、図4に示すように構成された仮想計算機システム
を動作させ、さらに、TLBのパージが必要となる場合
の、レベル1VMCP、レベル2VMCP及びレベル3
OSの制御の流れを、MSの割り当てが図10に示すよ
うに行われているものとして説明する。
Below, with reference to the flow charts shown in FIGS. 11 and 12, when the virtual computer system configured as shown in FIG. 4 is operated and further TLB purging is required, level 1 VMCP, level 1 2VMCP and level 3
The control flow of the OS will be described assuming that the MS is assigned as shown in FIG.

【0061】ステップ601: レベル1VMCP51
0は、レベル1VMCP510のVM上でレベル3のゲ
ストOSを走行させる事前処理として、レベル2VMC
P520を起動するためのSIE命令のオペランドであ
るSD(以下、L1SDという)を所定のようにイニシ
ャライズする。
Step 601: Level 1 VMCP51
0 is a level 2 VMC as a pre-process for running a level 3 guest OS on a level 1 VMCP 510 VM.
SD (hereinafter referred to as L1SD) which is an operand of the SIE instruction for activating P520 is initialized as predetermined.

【0062】ステップ602: レベル1VMCP51
0は、ステップ601でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。制御は、この時点か
ら、レベル1VMCP510からレベル2VMCP52
0に移る。
Step 602: Level 1 VMCP51
0 is SI with L1SD which is the operand of the SIE instruction initialized in step 601 as the operand.
Issue the E instruction to activate the level 2 VMCP 520 on the VM of the level 1 VMCP 510. From this point, control starts from level 1 VMCP 510 to level 2 VMCP 52.
Move to 0.

【0063】ステップ603: レベル1VMCP51
0のVM上でレベル2VMCP520が走行する。レベ
ル2VMCP520は、レベル2VMCP520のVM
上でレベル3OS530を走行させる事前処理として、
レベル3OS530を起動するためのSIE命令のオペ
ランドであるSD(以下、L2SDという)を所定のよ
うにイニシャライズする。
Step 603: Level 1 VMCP51
Level 2 VMCP 520 runs on 0 VMs. The level 2 VMCP 520 is a VM of the level 2 VMCP 520
As a pre-processing to run the level 3 OS 530 above,
SD (hereinafter referred to as L2SD) which is an operand of the SIE instruction for activating the level 3 OS 530 is initialized in a predetermined manner.

【0064】ステップ604: レベル2VMCP52
0は、ステップ603でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
Step 604: Level 2 VMCP52
0 is SI with L2SD which is the operand of the SIE instruction initialized in step 603 as an operand.
E command is issued to try to activate the level 3 OS 530 on the VM of the level 2 VMCP 520.

【0065】ステップ605: ステップ604で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御は、レベル1VMCP510のVM上のレ
ベル2VMCP520からレベル1VMCP510に戻
される。
Step 605: In step 604, when the level 2 VMCP 520 issues an SIE instruction while trying to activate the level 3 OS 530 on the VM of the level 2 VMCP 520, this SIE instruction has an instruction interception factor. Occurrence and control is returned to the Level 1 VMCP 510 from the Level 2 VMCP 520 on the VM of the Level 1 VMCP 510.

【0066】ステップ606: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。
Step 606: Level 1 VMCP51
0 analyzes the interception code which caused the control to be returned to the level 1 VMCP 510 from the level 2 VMCP 520 on the VM of the level 1 VMCP 510, and performs the interception process for each code. In this case, the interception code indicates instruction interception.

【0067】ステップ607: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、その命
令のシミュレーションを行う。この例では、SIE命令
を実行しようとして命令インターセプションが発生した
のであるから、SIE命令のシミュレーションを行う。
Step 607: The specific processing content of this processing is to carry out the processing corresponding to each interception code separately. For example, if the interception code indicates instruction interception, the instruction Perform a simulation. In this example, since the instruction interception occurred while trying to execute the SIE instruction, the simulation of the SIE instruction is performed.

【0068】レベル1VMCP510は、レベル1VM
CP510のVM上でレベル3OS530を走行させる
事前処理として、レベル2VMCP520を起動するた
めに用意されたL1SDとレベル3OS530を起動す
るために用意されたL2SDとを合成し、レベル1VM
CP510のVM上でレベル3OS530を走行させる
ための仮のSD(以下、シャドーSDという)を所定の
ようにイニシャライズする。
Level 1 VMCP 510 is level 1 VM
As a pre-process for running the level 3 OS 530 on the VM of the CP 510, the L1SD prepared for starting the level 2 VMCP 520 and the L2SD prepared for starting the level 3 OS 530 are combined to generate the level 1 VM.
A provisional SD (hereinafter referred to as a shadow SD) for running the level 3 OS 530 on the VM of the CP 510 is initialized in a predetermined manner.

【0069】ステップ608: レベル1VMCP51
0は、ステップ607でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。
Step 608: Level 1 VMCP51
0 issues the SIE instruction with the shadow SD which is the operand of the SIE instruction initialized in step 607 as an operand, and activates the level 3 OS 530 on the VM of the level 1 VMCP 510. This activation is equivalent to activating the level 3 OS 530 on the VM of the level 2 VMCP 520. Control is level 1 from this point
Move from the VMCP 510 to the level 3 OS 530.

【0070】ステップ609: レベル2VMCP52
0のVM上でレベル3OS530が走行し、所定の処理
を実行する。
Step 609: Level 2 VMCP52
The level 3 OS 530 runs on the VM of 0 and executes a predetermined process.

【0071】ステップ610: レベル2VMCP52
0のVM上でレベル3OS530が処理の実行中に、該
レベル3OS530から発行されたMSアクセスによ
り、レベル2VMCP520が制御しているアドレス変
換テーブルに関するアドレス変換例外(以下、レベル2
アドレス変換例外という)が検出されたものとする。レ
ベル2アドレス変換例外についての詳細については前述
の刊行物に記述されている。
Step 610: Level 2 VMCP52
While the level 3 OS 530 is executing the process on the VM of 0, the address translation exception related to the address translation table controlled by the level 2 VMCP 520 (hereinafter referred to as level 2) by the MS access issued from the level 3 OS 530.
An address translation exception) is detected. Details of Level 2 address translation exceptions are described in the aforementioned publications.

【0072】ステップ611: ステップ610で、レ
ベル2VMCP520のVM上のレベル3OS530が
レベル2アドレス変換例外を検出すると、このアドレス
変換例外は、ホスト割込み要因を持っているのでホスト
へのプログラム割込みが発生し、制御はレベル2VMC
P520のVM上のレベル3OS530からレベル1V
MCP510に戻される。
Step 611: In step 610, when the level 3 OS 530 on the VM of the level 2 VMCP 520 detects the level 2 address translation exception, this address translation exception has a host interrupt factor, so a program interrupt to the host occurs. , Control is level 2 VMC
Level 3 OS 530 on VM of P520 to level 1V
Returned to MCP510.

【0073】ステップ612: レベル1VMCP51
0は、制御がレベル2VMCP520のVM上のレベル
3OS530からレベル1VMCP510に戻される要
因となったホストプログラム割込みコードを解析し、コ
ード毎の割込み処理を行う。この場合、ホストプログラ
ム割込みコードは、レベル2アドレス変換例外を示して
いる。
Step 612: Level 1 VMCP51
0 analyzes the host program interrupt code that caused the control to be returned to the level 1 VMCP 510 from the level 3 OS 530 on the VM of the level 2 VMCP 520, and performs interrupt processing for each code. In this case, the host program interrupt code indicates a level 2 address translation exception.

【0074】ステップ613: この処理の具対的処理
内容は、各種割込みコード毎に対応する処理を別々に行
うもので、例えば、割込みコードがレベル2アドレス変
換例外を指していれば、レベル2VMCP520にアド
レス変換例外を通知する。この例では、レベル2VMC
P520のVM上のレベル3OS530がレベル2アド
レス変換例外を検出したのであるから、レベル1VMC
P510は、レベル2VMCP520にアドレス変換例
外を通知する。
Step 613: The specific processing content of this processing is that the processing corresponding to each interrupt code is separately performed. For example, if the interrupt code indicates a level 2 address translation exception, the level 2 VMCP 520 is processed. Notify an address translation exception. In this example, level 2 VMC
Since the level 3 OS 530 on the VM of P520 detected the level 2 address translation exception, the level 1 VMC
The P510 notifies the level 2 VMCP 520 of the address translation exception.

【0075】すなわち、レベル1VMCP510は、レ
ベル2VMCP520にアドレス変換例外を通知するた
め、レベル1VMCP510のVM上でレベル2VMC
P520を走行させる事前処理として、レベル2VMC
P520を起動するために用意されたL1SDとレベル
3OS530を起動するために用意されたシャドウSD
とを合成し、レベル2VMCP520を起動するための
L1SDを所定のようにイニシャライズする。
That is, since the level 1 VMCP 510 notifies the level 2 VMCP 520 of the address translation exception, the level 2 VMC on the VM of the level 1 VMCP 510.
Level 2 VMC as pre-processing to run P520
L1SD prepared for starting P520 and shadow SD prepared for starting Level 3 OS 530
Are combined and L1SD for activating the level 2 VMCP 520 is initialized in a predetermined manner.

【0076】ステップ614: レベル1VMCP51
0は、ステップ613でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。このときのレベル2
VMCP520のPSAには、アドレス変換例外に伴う
割込みパラメータが、予めレベル1VMCP510によ
って格納されており、さらに、L1SD内の命令アドレ
スフィールドにはレベル2VMCP520のPSA内の
割込みPSWの命令アドレス部が格納される。すなわ
ち、レベル1VMCP510は、レベル2VMCP52
0に対するアドレス変換例外割込みをシミュレーション
する。制御は、この時点から、レベル1VMCP510
からレベル2VMCP520に移る。
Step 614: Level 1 VMCP51
0 is SI with the L1SD which is the operand of the SIE instruction initialized in step 613 as the operand.
Issue the E instruction to activate the level 2 VMCP 520 on the VM of the level 1 VMCP 510. Level 2 at this time
In the PSA of the VMCP 520, the interrupt parameter associated with the address translation exception is stored in advance by the level 1 VMCP 510, and the instruction address field of the interrupt PSW in the PSA of the level 2 VMCP 520 is stored in the instruction address field in the L1SD. . That is, the level 1 VMCP 510 is the same as the level 2 VMCP 52
Simulate an address translation exception interrupt for 0. From this point, control begins at level 1 VMCP510.
To Level 2 VMCP520.

【0077】ステップ615: レベル2VMCP52
0は、レベル1VMCP510から通知された割込みコ
ードを解析し、コード毎の割込み処理を行う。この場
合、割込みコードは、アドレス変換例外割込みを示して
いる。
Step 615: Level 2 VMCP52
0 analyzes the interrupt code notified from the level 1 VMCP 510 and performs interrupt processing for each code. In this case, the interrupt code indicates an address translation exception interrupt.

【0078】ステップ616: この処理の具対的処理
内容は、各種割込みコード毎に対応する処理を別々に行
うもので、例えば、割込みコードがアドレス変換例外割
込みを指していれば、アドレス変換テーブルの書き替
え、保守を行う。この例では、アドレス変換例外割込み
が発生したのであるから、アドレス変換テーブルの保守
を行う。
Step 616: The specific processing content of this processing is to perform the processing corresponding to each interrupt code separately. For example, if the interrupt code indicates an address translation exception interrupt, the address translation table Rewrite and maintain. In this example, since the address translation exception interrupt has occurred, the address translation table is maintained.

【0079】ステップ617: レベル2VMCP52
0は、アドレス変換テーブルの保守処理を実行し、アド
レス変換テーブルの保守処理の一環として、Purge T
LB命令(以下、PTLB命令という)を発行する。P
TLB命令の仕様の詳細については、前述の刊行物に記
述されている。
Step 617: Level 2 VMCP52
0 executes maintenance processing of the address translation table, and as a part of the maintenance processing of the address translation table, Purge T
Issue the LB instruction (hereinafter referred to as the PTLB instruction). P
Details of the TLB instruction specifications are described in the aforementioned publications.

【0080】ステップ618: ステップ617で、レ
ベル2VMCP520がPTLB命令を発行すると、こ
のPTLB命令は、命令インターセプション要因を持っ
ているので命令インターセプションが発生し、制御はレ
ベル1VMCP510のVM上のレベル2VMCP52
0からレベル1VMCP510に戻される。
Step 618: In step 617, when the level 2 VMCP 520 issues a PTLB instruction, this PTLB instruction has an instruction interception factor, so instruction interception occurs, and control is performed at the level 2 VMCP 52 on the VM of the level 1 VMCP 510.
Returned from 0 to level 1 VMCP 510.

【0081】ステップ619: レベル1VMCP51
0は、制御がレベル2VMCP520からレベル1VM
CP510に戻される要因となったインターセプション
コードを解析し、コード毎のインターセプション処理を
行う。この場合、インターセプションコードは、命令イ
ンターセプションを示している。
Step 619: Level 1 VMCP51
0 is level 2 VMCP520 to level 1 VM
The interception code that is a factor returned to the CP 510 is analyzed, and the interception process for each code is performed. In this case, the interception code indicates instruction interception.

【0082】ステップ620: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、この命
令のシミュレーションを行う。この例では、レベル1V
MCP510のVM上のレベル2VMCP520がPT
LB命令を実行しようとして命令インターセプションが
発生したのであるから、レベル1VMCP510は、P
TLB命令のシミュレーションを行う。
Step 620: The specific processing content of this processing is to carry out the processing corresponding to each interception code separately. For example, if the interception code indicates instruction interception, this instruction Perform a simulation. In this example, level 1V
Level 2 VMCP520 on VM of MCP510 is PT
Since an instruction interception occurred while trying to execute the LB instruction, the level 1 VMCP 510 is set to P
Simulate the TLB instruction.

【0083】ステップ621: レベル1VMCP51
0上で、PTLB命令のシミュレーション処理の一環と
して、PTLB命令が発行される。このPTLB命令の
実行により、全てのVMIDの値を持つTLBエントリ
が全てパージされる。
Step 621: Level 1 VMCP51
On 0, the PTLB instruction is issued as part of the PTLB instruction simulation process. By executing this PTLB instruction, all TLB entries having the values of all VMIDs are purged.

【0084】ステップ622: レベル1VMCP51
0は、レベル1VMCP510のVM上でレベル2VM
CP520を走行させる事前処理として、レベル2VM
CP520を起動するためのSIE命令のオペランドで
あるL1SDを所定のようにイニシャライズする。
Step 622: Level 1 VMCP51
0 is level 2 VM on level 1 VMCP 510 VM
Level 2 VM as a pre-processing to run CP520
The L1SD which is the operand of the SIE instruction for activating the CP 520 is initialized in a predetermined manner.

【0085】ステップ623: レベル1VMCP51
0は、ステップ622でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。制御は、この時点か
ら、レベル1VMCP510からレベル2VMCP52
0に移る。
Step 623: Level 1 VMCP51
0 is SI with L1SD which is the operand of the SIE instruction initialized in step 622 as the operand.
Issue the E instruction to activate the level 2 VMCP 520 on the VM of the level 1 VMCP 510. From this point, control starts from level 1 VMCP 510 to level 2 VMCP 52.
Move to 0.

【0086】ステップ624: レベル1VMCP51
0のVM上でレベル2VMCP520が走行する。レベ
ル2VMCP520は、レベル3OS530が検出した
レベル2アドレス変換例外のシミュレーション処理を完
了したので、再度、レベル3OS530を起動する必要
がある。そこで、レベル2VMCP520のVM上でレ
ベル3OS530を走行させる事前処理として、SIE
命令のオペランドであるL2SDを所定のようにイニシ
ャライズする。
Step 624: Level 1 VMCP51
Level 2 VMCP 520 runs on 0 VMs. Since the level 2 VMCP 520 has completed the simulation processing of the level 2 address translation exception detected by the level 3 OS 530, it is necessary to activate the level 3 OS 530 again. Therefore, as pre-processing for running the level 3 OS 530 on the VM of the level 2 VMCP 520, SIE
The L2SD which is the operand of the instruction is initialized in a predetermined manner.

【0087】ステップ625: レベル2VMCP52
0は、ステップ624でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
Step 625: Level 2 VMCP52
0 is SI with L2SD which is the operand of the SIE instruction initialized in step 624 as an operand.
E command is issued to try to activate the level 3 OS 530 on the VM of the level 2 VMCP 520.

【0088】ステップ626: ステップ625で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御はレベル1VMCP510のVM上のレベ
ル2VMCP520からレベル1VMCP510に戻さ
れる。
Step 626: In step 625, when the level 2 VMCP 520 issues an SIE instruction while trying to activate the level 3 OS 530 on the VM of the level 2 VMCP 520, this SIE instruction has an instruction interception factor. Occurring and control is returned from the level 2 VMCP 520 on the VM of the level 1 VMCP 510 to the level 1 VMCP 510.

【0089】ステップ627: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。
Step 627: Level 1 VMCP51
0 analyzes the interception code which caused the control to be returned to the level 1 VMCP 510 from the level 2 VMCP 520 on the VM of the level 1 VMCP 510, and performs the interception process for each code. In this case, the interception code indicates instruction interception.

【0090】ステップ628: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、この命
令のシミュレーションを行う。この例では、SIE命令
を実行しようとして命令インターセプションが発生した
のであるから、レベル1VMCP510は、SIE命令
のシミュレーションを行う。レベル1VMCP510
は、レベル1VMCP510のVM上でレベル3OS5
30を走行させる事前処理として、レベル2VMCP5
20を起動するために用意されたL1SDとレベル3O
S530を起動するために用意されたL2SDとを合成
し、レベル1VMCP510のVM上でレベル3OS5
30を走行させるためのシャドーSDを所定のようにイ
ニシャライズする。
Step 628: The specific processing content of this processing is to carry out the processing corresponding to each interception code separately. For example, if the interception code indicates instruction interception, this instruction Perform a simulation. In this example, since the instruction interception occurred while trying to execute the SIE instruction, the level 1 VMCP 510 simulates the SIE instruction. Level 1 VMCP510
Is a level 3 OS5 on a level 1 VMCP 510 VM.
Level 2 VMCP5 as pre-processing to run 30
L1SD and level 3O prepared to start 20
L2SD prepared for starting S530 is combined, and level 3 OS5 is executed on the VM of level 1 VMCP 510.
Initialize the shadow SD for running the 30 as specified.

【0091】ステップ629: レベル1VMCP51
0は、ステップ628でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。
Step 629: Level 1 VMCP51
0 issues the SIE instruction using the shadow SD which is the operand of the SIE instruction initialized in step 628 as an operand, and activates the level 3 OS 530 on the VM of the level 1 VMCP 510. This activation is equivalent to activating the level 3 OS 530 on the VM of the level 2 VMCP 520. Control is level 1 from this point
Move from the VMCP 510 to the level 3 OS 530.

【0092】ステップ630: レベル2VMCP52
0のVM上でレベル3OS530が走行する。
Step 630: Level 2 VMCP52
Level 3 OS 530 runs on 0 VM.

【0093】前述したように、従来技術による仮想計算
機処理は、レベル3OS530で検出されたレベル2ア
ドレス変換例外の処理を、ステップ611からステップ
630に至るレベル1VMCP510とレベル2VMC
P520の連携動作によって実現している。
As described above, in the conventional virtual machine processing, the processing of the level 2 address translation exception detected by the level 3 OS 530 is performed by the level 1 VMCP 510 and the level 2 VMC from step 611 to step 630.
This is realized by the cooperative operation of P520.

【0094】そして、前述の従来技術は、レベル3OS
530がVMIDの値を“C”として動作しており、レ
ベル2OS520がVMIDの値を“B”として動作し
ているため、レベル2OS520が発行したPTLB命
令をシミュレーションするために、このPTLB命令を
インターセプトし、レベル1VMCP510でのシミュ
レーションによりPTLB命令を発行し、全てのVMI
Dを持つTLBエントリをパージする必要があった。
In addition, the above-mentioned conventional technique is a level 3 OS.
Since the 530 operates with the value of VMID as "C" and the level 2 OS 520 operates with the value of VMID as "B", this PTLB instruction is intercepted in order to simulate the PTLB instruction issued by the level 2 OS 520. Then, the PTLB instruction is issued by simulation at the level 1 VMCP510, and all VMI
It was necessary to purge the TLB entry with D.

【0095】前述により説明した従来技術による仮想計
算機システムは、レベル3OSで検出されたレベル2ア
ドレス変換例外の処理のように、レベル2OSでTLB
をパージする場合、レベル2OS上でPTLB命令を直
接実行することが不可能であり、レベル1OSの介入に
よるレベル2OS上でのPTLB命令発行に対するPT
LB命令シミュレーション操作を必要としていた。そし
て、前述の従来技術は、このPTLB命令の実行の指示
により、全てのTLBエントリをパージしてしまい、本
来パージする必要の無いTLBエントリをもパージして
しまっていた。
The virtual machine system according to the prior art described above has the TLB in the level 2 OS like the processing of the level 2 address translation exception detected in the level 3 OS.
When purging the PTLB, it is impossible to directly execute the PTLB instruction on the level 2 OS, and the PT for the issuance of the PTLB instruction on the level 2 OS due to the intervention of the level 1 OS.
LB instruction simulation operation was required. Then, in the above-mentioned conventional technique, all the TLB entries are purged by the execution instruction of the PTLB instruction, and the TLB entries that should not be originally purged are also purged.

【0096】このため、前述した従来技術による仮想計
算機システムは、TLBの使用効率が大幅に低下し、こ
れによりシステムに対するオーバヘッドを生じて、仮想
計算機システムの性能の向上が阻害されていた。
Therefore, in the above-described conventional virtual computer system, the TLB usage efficiency is significantly reduced, which causes an overhead to the system and hinders the performance improvement of the virtual computer system.

【0097】[0097]

【発明が解決しようとする課題】前述した従来技術は、
レベル3OSで検出されたレベル2アドレス変換例外の
処理のように、レベル2OSでTLBをパージする場
合、レベル2OS上でPTLB命令を直接実行すること
が不可能であった。このため、前述の従来技術は、レベ
ル2OS上のPTLB命令の発行に対し、レベル1OS
の介入によるレベル2OS上でのPTLB命令発行に対
するPTLB命令シミュレーション操作を必要としてい
た。
DISCLOSURE OF THE INVENTION Problems to be Solved by the Invention
When purging the TLB in the level 2 OS like the processing of the level 2 address translation exception detected in the level 3 OS, it was impossible to directly execute the PTLB instruction on the level 2 OS. Therefore, in the above-mentioned conventional technique, in response to the issuance of the PTLB instruction on the level 2 OS,
The PTLB instruction simulation operation for the PTLB instruction issuance on the level 2 OS due to the above-mentioned intervention was required.

【0098】この操作に要する処理時間は、オーバヘッ
ドとして仮想計算機システムの性能向上を阻害する大き
な要因となり、また、レベル1OSによるPTLB命令
の発行は、全てのTLBエントリをパージし、本来パー
ジする必要のないTLBエントリをもパージしてしまっ
ていた。
The processing time required for this operation becomes a major factor that hinders the performance improvement of the virtual computer system as an overhead, and issuance of the PTLB instruction by the level 1 OS requires that all TLB entries are purged and originally purged. I also purged the missing TLB entries.

【0099】前述した従来技術は、これにより、TLB
の使用効率を大幅に低下させ、これによるオーバヘッド
が仮想計算機システムの性能向上を阻害する大きな要因
となっているという、仮想計算機システムの性能上無視
し得ない大きな問題点を有している。
Accordingly, the above-mentioned conventional technique can be
There is a major problem that cannot be ignored in the performance of the virtual computer system, that is, the use efficiency of the virtual computer system is significantly reduced, and the overhead resulting from this is a major factor that hinders the performance improvement of the virtual computer system.

【0100】本発明の目的は、前記従来技術の問題点を
解決し、レベル3OSで検出されたレベル2アドレス変
換例外の処理において、レベル2OSでTLBをパージ
する必要があるとき、レベル2OS上でPTLB命令を
直接実行させることを可能にし、これにより、レベル1
OSが行う全てのTLBエントリに対するPTLB命令
を用いたTLBパージ操作に依るTLBの使用効率の低
下等のオーバヘッドを除去し、仮想計算機システムの性
能を向上させることのできる仮想計算機システムのアド
レス変換バッファ制御方式を提供することにある。
The object of the present invention is to solve the above-mentioned problems of the prior art, and when it is necessary to purge the TLB in the level 2 OS in the processing of the level 2 address translation exception detected in the level 3 OS, Allows the PTLB instruction to be executed directly, which allows level 1
Address translation buffer control of the virtual computer system that can improve the performance of the virtual computer system by removing the overhead such as the reduction of the TLB usage efficiency due to the TLB purge operation using the PTLB instruction for all TLB entries performed by the OS. To provide a method.

【0101】[0101]

【課題を解決するための手段】本発明によれば前記目的
は、各VMに対するVMIDの割り当て及びアドレス変
換バッファのパージに当たり、VMIDを用いたアドレ
ス変換バッファエントリを選択的にパージする機能を以
下説明するように構成することにより達成される。
According to the present invention, the above-described object will be described below with respect to the function of selectively purging the address translation buffer entry using the VMID when allocating the VMID to each VM and purging the address translation buffer. It is achieved by the configuration.

【0102】すなわち、本発明は、レベル1OSが走行
するときに割り当てられるVMIDの値を、レベル2O
S及びレベル3OSが走行することを考慮した値に決定
し、レベル2OSが走行するときに割り当てられるVM
IDの値を、レベル1OSが走行するときに割り当てら
れたVMIDの値に従属した値として決定しておく。同
様に、レベル3OSが走行するときに割り当てられるV
MIDの値を、レベル2OSが走行するときに割り当て
られたVMIDの値に従属した値として決定しておく。
That is, according to the present invention, the value of VMID assigned when the level 1 OS runs is changed to the level 2O.
VM that is determined when S and level 3 OS are running, and is assigned when level 2 OS is running
The value of ID is determined as a value dependent on the value of VMID assigned when the level 1 OS runs. Similarly, the V assigned when the level 3 OS is running
The value of MID is determined as a value dependent on the value of VMID assigned when the level 2 OS runs.

【0103】そして、前記目的は、VMの発行するアド
レス変換バッファの選択的パージを伴う命令の実行に当
たり、そのVMの持つVMIDと一致するVMIDエン
トリを持つアドレス変換バッファエントリを選択的にパ
ージする機能と、前記VMの持つVMIDの値に従属す
るVMIDエントリを持つアドレス変換バッファエント
リをも選択的にパージする機能と、前記VMの持つVM
IDと一致するVMIDエントリを持つアドレス変換バ
ッファエントリの選択的パージ、及び、1つまたはそれ
以上の前記VMに従属するVMIDの値を持つ他のVM
IDエントリを持つアドレス変換バッファエントリの選
択的パージの動作を同時並行的に実行する機能と備える
ことにより達成される。
The above-mentioned object is a function of selectively purging an address translation buffer entry having a VMID entry matching the VMID of the VM when executing an instruction accompanied by the selective purging of the address translation buffer issued by the VM. And a function of selectively purging an address translation buffer entry having a VMID entry subordinate to the VMID value of the VM, and a VM of the VM.
Selective purging of address translation buffer entries with VMID entries matching the ID, and other VMs with the value of one or more VMIDs dependent on the VM
This is achieved by providing the function of executing the selective purging operation of the address translation buffer entry having the ID entry in parallel at the same time.

【0104】[0104]

【作用】本発明による仮想計算機システムのアドレス変
換バッファ制御方式によれば、VMの発行するアドレス
変換バッファのパージを伴う命令の実行に当たり、IP
内のVMの持つVMIDを格納するカレントなVMID
レジスタ内の対応エントリを用い、そのVMの持つVM
IDと一致するVMIDエントリを持つアドレス変換バ
ッファエントリのみを選択して、そのエントリに対して
前記命令の実行に同期してハードウェアによってパージ
動作を行うことができる。また、同時に、そのVMの持
つVMIDとは別の特定のVMIDエントリを持つアド
レス変換バッファエントリ、すなわち、他のVMの持つ
そのVMに従属するVMIDの値と一致するVMIDエ
ントリを持つアドレス変換バッファエントリを選択し
て、前記命令の実行に同期してハードウェアによって選
択したエントリに対するパージ動作を行うことができ
る。
According to the address translation buffer control method of the virtual computer system according to the present invention, when executing the instruction accompanied by the purge of the address translation buffer issued by the VM, the IP
VMID that stores the VMID of the VM in the
The VM that the VM has by using the corresponding entry in the register
Only the address translation buffer entry having the VMID entry that matches the ID can be selected, and the purging operation can be performed by the hardware in synchronization with the execution of the instruction for the entry. At the same time, an address translation buffer entry having a specific VMID entry different from the VMID of the VM, that is, an address translation buffer entry having a VMID entry that matches the value of a VMID that is dependent on the VM of another VM. Can be selected to perform the purge operation for the entry selected by the hardware in synchronization with the execution of the instruction.

【0105】前述したように、仮想計算機システムに本
発明によるアドレス変換バッファ制御方式を適用した結
果、レベル2OSが発行したTLBをパージする命令を
実行する際、レベル2OS上でPTLB命令を直接実行
させることができ、従来技術で必要であったレベル1O
Sが行う全てのTLBエントリに対するPTLB命令を
用いたTLBパージ操作を除去することができるので、
レベル1OSが行う全てのTLBエントリに対するTL
BパージによるTLBの使用効率の低下等により生じる
システムに対するオーバヘッドを除去することができ
る。
As described above, as a result of applying the address translation buffer control method according to the present invention to the virtual machine system, when the TLB purging instruction issued by the level 2 OS is executed, the PTLB instruction is directly executed on the level 2 OS. Level 1O that was necessary in the prior art
Since the TLB purge operation using the PTLB instruction for all TLB entries performed by S can be eliminated,
TL for all TLB entries made by Level 1 OS
It is possible to remove the overhead for the system caused by the decrease in the TLB usage efficiency due to the B purge.

【0106】従って、本発明によれば、従来技術で必要
であったレベル1OSによる前記操作に要する処理時
間、すなわち、システムに対するオーバヘッドを除去す
ることができるので、仮想計算機システムのシステム性
能を格段に向上させることができる。
Therefore, according to the present invention, the processing time required for the above-mentioned operation by the level 1 OS, that is, the overhead for the system, which is required in the prior art, can be eliminated, so that the system performance of the virtual computer system is significantly improved. Can be improved.

【0107】[0107]

【実施例】以下、本発明による仮想計算機システムのア
ドレス変換バッファ制御方式の一実施例を図面により詳
細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of an address translation buffer control system for a virtual computer system according to the present invention will be described in detail below with reference to the drawings.

【0108】図1は本発明の一実施例に使用されるVM
IDを具備したTLBの構成を示すブロック図、図2は
TLB内に構成されるANDゲートの詳細な構成を示す
ブロック図、図3はANDゲートの動作を説明する図で
ある。図1、図2において、710はアドレス変換バッ
ファ、720、770はセレクタ、730は出力レジス
タ、740はVMIDレジスタ、75A〜75Cは比較
器、750、760、7B60〜7B63はANDゲー
ト、780はアドレス変換制御部、7B50から7B5
3はORゲートである。
FIG. 1 shows a VM used in one embodiment of the present invention.
FIG. 2 is a block diagram showing the structure of a TLB provided with an ID, FIG. 2 is a block diagram showing the detailed structure of an AND gate formed in the TLB, and FIG. 3 is a diagram explaining the operation of the AND gate. 1 and 2, 710 is an address conversion buffer, 720 and 770 are selectors, 730 is an output register, 740 is a VMID register, 75A to 75C are comparators, 750, 760, 7B60 to 7B63 are AND gates, and 780 is an address. Conversion controller, 7B50 to 7B5
3 is an OR gate.

【0109】図1に示すTLBの構成において、アドレ
ス変換バッファ710は、IPがデータ及び命令語をア
クセスする際の論理アドレスを絶対アドレスに高速に変
換するためのハードウェア機構であり、Vフラグ71
1、VMIDエントリ712、STOエントリ713、
論理アドレスエントリ714、絶対アドレスエントリ7
15及び主記憶キーエントリ716の各エントリを備え
て構成される。そして、このアドレス変換バッファ71
0は、前述の関連エントリを1組として、複数組のエン
トリ群から構成される。
In the configuration of the TLB shown in FIG. 1, the address translation buffer 710 is a hardware mechanism for rapidly converting a logical address when an IP accesses data and an instruction word into an absolute address, and a V flag 71.
1, VMID entry 712, STO entry 713,
Logical address entry 714, absolute address entry 7
15 and main memory key entry 716. Then, this address translation buffer 71
0 is composed of a plurality of groups of entries, each group including the above-mentioned related entry.

【0110】セレクタA720は、IPがデータ及び命
令語をアクセスする際の論理アドレスを入力として、ア
ドレス変換バッファ710の複数組のエントリ群から関
連エントリを1組選択するセレクタである。出力レジス
タ730は、アドレス変換バッファ710の複数組のエ
ントリ群から選択された1組の関連エントリの内容を一
時的に保持しておくレジスタである。
The selector A 720 is a selector which receives a logical address when the IP accesses the data and the instruction word and selects one set of related entries from the plurality of sets of entry of the address translation buffer 710. The output register 730 is a register that temporarily holds the contents of a set of related entries selected from a plurality of sets of entry groups in the address translation buffer 710.

【0111】VMIDレジスタ740は、VMIDエン
トリ741及びSDアドレスエントリ742から構成さ
れる。VMIDレジスタ740は、前記の関連エントリ
を1組として、複数組のエントリ群から構成される。
The VMID register 740 is composed of a VMID entry 741 and an SD address entry 742. The VMID register 740 is made up of a plurality of sets of entries, with the above-mentioned related entry as one set.

【0112】このVMIDレジスタ740は、IP上で
VMが走行する際、SIE命令のオペランドであるSD
のアドレスに対応したSDアドレスエントリ742が選
択され、該エントリ内のVMIDエントリ741が、ア
ドレス変換バッファ710内のVMIDエントリ712
と比較される。
This VMID register 740 is used as an operand of the SIE instruction SD when the VM runs on the IP.
SD address entry 742 corresponding to the address of the VMID entry 742 is selected, and the VMID entry 741 in the entry is selected,
Compared to.

【0113】比較器A75A、比較器B75B及び比較
器C75Cは、それぞれ、出力レジスタ730に一時的
に保持された、VMIDエントリ712、STOエント
リ713及び論理アドレスエントリ714の内容と、V
MIDレジスタ740のVMIDエントリ741の内
容、主記憶アクセスで使用されるセグメントテーブル起
点及び主記憶アクセスに伴う論理アドレスとを比較する
データの比較器である。
The comparator A75A, the comparator B75B, and the comparator C75C respectively have the contents of the VMID entry 712, the STO entry 713, and the logical address entry 714 temporarily stored in the output register 730, and the V
This is a data comparator that compares the contents of the VMID entry 741 of the MID register 740, the segment table starting point used in main memory access, and the logical address associated with main memory access.

【0114】ANDゲート750は、VMIDレジスタ
740のVMIDエントリ741の内容の一部と出力レ
ジスタ730に一時的に保持されたVMIDエントリ7
12との論理積をとるANDゲートである。また、AN
Dゲート760は、比較器A75A、比較器B75B及
び比較器C75Cのそれぞれの比較結果の論理積をとる
ANDゲートである。
The AND gate 750 has a part of the contents of the VMID entry 741 of the VMID register 740 and the VMID entry 7 temporarily held in the output register 730.
It is an AND gate that takes a logical product with 12. Also, AN
The D gate 760 is an AND gate that takes the logical product of the comparison results of the comparator A75A, the comparator B75B, and the comparator C75C.

【0115】セレクタB770は、出力レジスタ730
に一時的に保持された絶対アドレスエントリ715及び
主記憶キーエントリ716の内容を、ANDゲート76
0から送出されるデータの比較一致を示すヒット信号に
よって選択して送出するセレクタであり、アドレス変換
制御部780は、図1にブロック図として示すTLB動
作全体を制御する制御装置である。
The selector B 770 has an output register 730.
The contents of the absolute address entry 715 and the main memory key entry 716 temporarily stored in the AND gate 76
The address conversion control unit 780 is a control unit that controls the entire TLB operation shown in the block diagram of FIG.

【0116】前述した、比較器A75Aは、TLBの部
分パージを行うとき、VMIDエントリ741の内容
と、VMIDエントリ741の内容の一部及び出力レジ
スタ730に一時的に保持されたVMIDエントリ71
2の論理積出力とを比較するデータの比較器でもある。
When performing the partial purge of the TLB, the comparator A75A described above, the contents of the VMID entry 741, a part of the contents of the VMID entry 741 and the VMID entry 71 temporarily held in the output register 730.
It is also a data comparator for comparing the logical product output of 2.

【0117】次に、前述のように構成される本発明に使
用されるTLBのアドレス変換バッファのパージ動作に
ついて説明する。
Next, the purging operation of the TLB address translation buffer used in the present invention configured as described above will be described.

【0118】図1において、PIPからTLBパージ要
求が発行されると、そのTLBエントリ番号が、信号線
7A0を介してPIPからアドレス変換バッファ710
に送出されてくる。アドレス変換バッファ710は、信
号線7A0を介してPIPからのTLBパージ要求とそ
のTLBエントリ番号を受け取り、TLBエントリ番号
を受け取ったセレクタA720は、TLBエントリ番号
の値からアドレス変換バッファ710内の複数のエント
リ群から1つのエントリを選択し、読み出す要求を発行
する。
In FIG. 1, when a TLB purge request is issued from the PIP, the TLB entry number is changed from the PIP to the address translation buffer 710 via the signal line 7A0.
Will be sent to. The address translation buffer 710 receives the TLB purge request from the PIP and its TLB entry number via the signal line 7A0. One entry is selected from the entry group and a read request is issued.

【0119】アドレス変換バッファ710は、エントリ
読み出し要求を受け取ると、該当する1つのエントリを
読み出し、信号線7C0を介して出力レジスタ730に
読み出しデータをセットする。これにより読み出され出
力レジスタ730にセットされる1つのエントリの内訳
は、Vフラグ711、VMIDエントリ712、STO
エントリ713、論理アドレスエントリ714、絶対ア
ドレスエントリ715及び主記憶キーエントリ716で
ある。また、VMIDレジスタ740は、TLBパージ
要求が発行された時点で、信号線7H1を介して送られ
て来たSDの絶対アドレスを用いて同一のSDの絶対ア
ドレスを保持するSDアドレスエントリ742に対応す
るVMIDエントリ741を選択する。
Upon receiving the entry read request, the address translation buffer 710 reads the corresponding one entry and sets the read data in the output register 730 via the signal line 7C0. The contents of one entry read out by this and set in the output register 730 are: V flag 711, VMID entry 712, STO.
An entry 713, a logical address entry 714, an absolute address entry 715 and a main memory key entry 716. Further, the VMID register 740 corresponds to the SD address entry 742 that holds the absolute address of the same SD using the absolute address of SD sent via the signal line 7H1 at the time when the TLB purge request is issued. VMID entry 741 to be selected.

【0120】この選択動作は、主としてマイクロプログ
ラムによって行われ、SDアドレスエントリ742に対
応するVMIDエントリ741の内容が信号線780に
送出される。その後、信号線780の内容は、比較器A
75A及びANDゲート750に入力される。同時に、
出力レジスタ730に一時的に保持されたVMIDエン
トリ712は、信号線7E1を介して、ANDゲート7
50に入力される。比較器A75Aは、信号線780の
内容とANDゲート750の出力とを比較し、その結果
を信号線7I0に出力する。この出力は、図示TLBエ
ントリのパージが必要か否かの制御のために使用され
る。
This selection operation is mainly performed by the microprogram, and the contents of the VMID entry 741 corresponding to the SD address entry 742 are sent to the signal line 780. After that, the contents of the signal line 780 are
75A and AND gate 750. at the same time,
The VMID entry 712 temporarily held in the output register 730 is transferred to the AND gate 7 via the signal line 7E1.
50 is input. The comparator A75A compares the content of the signal line 780 with the output of the AND gate 750, and outputs the result to the signal line 7I0. This output is used to control whether the illustrated TLB entry needs to be purged.

【0121】この比較の結果の一致または不一致の信号
が信号線7I0を介してアドレス変換バッファ710及
びアドレス変換制御部780に送られる。そして、この
信号が“1”(一致)であれば、アドレス変換バッファ
710の選択されているTLBエントリのVフラグ71
1に“0”が書き込まれ、そのTLBエントリが無効化
される。また、この比較結果の信号が“0”(不一致)
であれば、そのTLBエントリの無効化は行われない。
A match or mismatch signal of the result of this comparison is sent to the address conversion buffer 710 and the address conversion control unit 780 via the signal line 7I0. If this signal is "1" (match), the V flag 71 of the selected TLB entry in the address translation buffer 710 is detected.
“0” is written in 1 and the TLB entry is invalidated. Also, the signal of this comparison result is "0" (mismatch)
If so, the TLB entry is not invalidated.

【0122】次に、図2を参照してTLBエントリのパ
ージが必要か否かの制御を司るANDゲート750につ
いて説明する。
Next, referring to FIG. 2, the AND gate 750 which controls the purging of the TLB entry will be described.

【0123】図示ANDゲート750は、本発明一実施
例による仮想計算機システムのアドレス変換バッファ制
御方式において、TLBエントリのパージが必要か否か
の制御を司るものであり、図2において、VMIDレジ
スタ740のVMIDエントリ741からの信号線78
0に相当する信号線群7B10からのビット0からビッ
ト3迄のそれぞれの信号は、ORゲート7B50、OR
ゲート7B51、ORゲート7B52及びORゲート7
B53に入力され、図2に示すような論理操作を施され
て各ORゲートから出力される。
The illustrated AND gate 750 controls whether or not purging of TLB entries is necessary in the address translation buffer control method of the virtual machine system according to the embodiment of the present invention. In FIG. 2, the VMID register 740 is used. Signal line 78 from the VMID entry 741 of
The signals from bit 0 to bit 3 from the signal line group 7B10 corresponding to 0 are OR gates 7B50, OR
Gate 7B51, OR gate 7B52 and OR gate 7
The data is input to B53, logically operated as shown in FIG. 2, and output from each OR gate.

【0124】これらのORゲート7B50、ORゲート
7B51、ORゲート7B52及びORゲート7B53
の出力は、それぞれANDゲート7B60、ANDゲー
ト7B61、ANDゲート7B62及びANDゲート7
B63に入力される。また、出力レジスタ730のVM
IDエントリ712からの信号線である信号線群7B2
0からのビット0からビット3迄のそれぞれの信号は、
ANDゲート7B60、ANDゲート7B61、AND
ゲート7B62及びANDゲート7B63に入力され、
ORゲート7B50、ORゲート7B51、ORゲート
7B52及びORゲート7B53の出力と論理積がとら
れ、信号線群7B30のビット0からビット3に出力さ
れる。信号線群7B30の出力は、図1におけるAND
ゲート750の出力であり、比較器A75Aの一方の入
力とされ、信号線780を介して入力されるVMIDデ
ータと比較される。
These OR gate 7B50, OR gate 7B51, OR gate 7B52 and OR gate 7B53.
Are output from AND gate 7B60, AND gate 7B61, AND gate 7B62 and AND gate 7 respectively.
Input to B63. Also, the VM of the output register 730
Signal line group 7B2 which is a signal line from the ID entry 712
Each signal from 0 to bit 0 to bit 3 is
AND gate 7B60, AND gate 7B61, AND
Input to the gate 7B62 and the AND gate 7B63,
The outputs of the OR gate 7B50, the OR gate 7B51, the OR gate 7B52, and the OR gate 7B53 are logically ANDed and output from bit 0 to bit 3 of the signal line group 7B30. The output of the signal line group 7B30 is the AND in FIG.
The output of the gate 750, which is one input of the comparator A75A, is compared with the VMID data input via the signal line 780.

【0125】ANDゲート750の動作を説明する図3
には、信号線群7B10及び信号線群7B20に入力さ
れたデータのパターンと、信号線群7B30に出力され
るデータパターンとの関係を表わしている。
FIG. 3 for explaining the operation of the AND gate 750.
Shows the relationship between the data pattern input to the signal line group 7B10 and the signal line group 7B20 and the data pattern output to the signal line group 7B30.

【0126】図3から判るように、信号線群7B10の
入力データパターンにより信号線群7B20の入力デー
タパターンの右側2ビットまたは1ビットのデータが
“0”に変換されて信号線群7B30に出力される。信
号線群7B10の入力データパターンにより信号線群7
B20の入力データパターンの右側2ビットまたは1ビ
ットのデータが“0”に変換され信号線群7B30に出
力されるということは、図1に示すTLBにおいて、信
号線780に送出されているVMIDエントリ741の
内容が比較器A75A及びANDゲート750に入力さ
れ、さらに、信号線7E1を介して送られてくる、AN
Dゲート750に入力されるVMIDエントリ712の
データが、ANDゲート750により前述の変換を受
け、比較器A75Aにより比較され、その結果が信号線
7I0に出力されることを意味する。この出力が、TL
Bエントリのパージが必要か否かの制御に使用される。
例えば、信号線780に送出されているVMIDエント
リ741の内容が2進数で“1100”であれば、2進
数で“1100”、“1101”、“1110”及び
“1111”のパターンのVMIDエントリを持つTL
Bエントリが、部分パージされることになる。また、信
号線780に送出されているVMIDエントリ741の
内容が2進数で“1010”であれば、2進数で“10
10”及び“1011”のパターンのVMIDエントリ
を持つTLBエントリが、部分パージされることにな
る。さらに、信号線780に送出されているVMIDエ
ントリ741の内容が2進数で“1011”であれば、
2進数で“1011”のパターンのVMIDエントリを
持つTLBエントリが、部分パージされることになる。
As can be seen from FIG. 3, the right 2-bit or 1-bit data of the input data pattern of the signal line group 7B20 is converted into "0" by the input data pattern of the signal line group 7B10 and output to the signal line group 7B30. To be done. According to the input data pattern of the signal line group 7B10, the signal line group 7
The 2-bit or 1-bit data on the right side of the input data pattern of B20 is converted to "0" and output to the signal line group 7B30, which means that the VMID entry sent to the signal line 780 in the TLB shown in FIG. The contents of 741 are input to the comparator A75A and the AND gate 750, and further sent via the signal line 7E1. AN
This means that the data of the VMID entry 712 input to the D gate 750 undergoes the above-mentioned conversion by the AND gate 750, is compared by the comparator A75A, and the result is output to the signal line 7I0. This output is TL
Used to control whether purging of B entries is required.
For example, if the content of the VMID entry 741 sent to the signal line 780 is “1100” in binary, the VMID entries having binary patterns of “1100”, “1101”, “1110”, and “1111” are displayed. TL to have
B entry will be partially purged. If the content of the VMID entry 741 sent to the signal line 780 is “1010” in binary, it is “10” in binary.
The TLB entry having the VMID entries having the patterns of 10 "and" 1011 "is partially purged. Further, if the content of the VMID entry 741 sent to the signal line 780 is" 1011 "in binary number. ,
A TLB entry having a VMID entry having a binary pattern of "1011" will be partially purged.

【0127】前述したように、図2に示すような構成を
持つANDゲートを使用して、図1に示すようなTLB
を構成すれば、1つのVMIDエントリを用いて、複数
のVMIDエントリを持つTLBエントリ群を同時に部
分パージすることができることが判る。
As described above, by using the AND gate having the structure shown in FIG. 2, the TLB shown in FIG.
It is understood that, by configuring the above, the TLB entry group having a plurality of VMID entries can be partially purged at the same time by using one VMID entry.

【0128】図10により説明したような、レベル1V
MCP510に割り当てられる領域A、レベル1VMC
P510上の仮想アドレス空間上で動作するレベル2V
MCP520に割り当てられる領域B及びレベル2VM
CP520上の仮想アドレス空間上で動作するレベル3
OS530に割り当てられる領域Cに対し、それぞれが
VMID“A”、VMID“B”及びVMID“C”の
値で走行するものとして、領域AのVMID“A”を2
進数で“1100”とし、領域BのVMID“B”を2
進数で“1110”とし、さらに、領域CのVMID
“C”を2進数で“1111”と設定すれば、レベル1
VMCP510が発行するTLBをパージする命令は、
領域A、領域B及び領域Cの該当するTLBエントリを
1回のTLBパージ動作で部分パージすることができ
る。同様に、レベル2VMCP520が発行するTLB
をパージする命令は、領域B及び領域Cの該当するTL
Bエントリを1回のTLBパージ動作で部分パージする
ことができ、レベル3OS530が発行するTLBをパ
ージする命令は、領域Cの該当するTLBエントリのみ
を1回のTLBパージ動作で部分パージすることができ
る。
Level 1V as described with reference to FIG.
Area A allocated to MCP510, level 1 VMC
Level 2V operating on virtual address space on P510
Area B allocated to MCP520 and level 2 VM
Level 3 operating on the virtual address space on the CP520
Assuming that each of the areas C allocated to the OS 530 runs with the values of VMID “A”, VMID “B” and VMID “C”, the VMID “A” of the area A is set to 2
Set the VMID “B” in area B to 2 with a decimal number of “1100”
Set it to "1110" in radix and add VMID of area C
If "C" is set to "1111" in binary, level 1
The command to purge the TLB issued by VMCP510 is
The corresponding TLB entries in the areas A, B and C can be partially purged by one TLB purging operation. Similarly, the TLB issued by the level 2 VMCP 520
The command for purging is the corresponding TL of area B and area C.
The B entry can be partially purged by one TLB purge operation, and the TLB purge command issued by the level 3 OS 530 can partially purge only the corresponding TLB entry in the area C by one TLB purge operation. it can.

【0129】次に、本発明の一実施例による仮想計算機
システムのアドレス変換バッファ制御方式の一処理手順
例を図面を用いて詳細に説明する。
Next, an example of a processing procedure of the address translation buffer control method of the virtual computer system according to the embodiment of the present invention will be described in detail with reference to the drawings.

【0130】図4、図5は本発明による仮想計算機シス
テムのアドレス変換バッファ制御方式の処理手順を示す
フローチャートであり、図7により説明したように構成
された仮想計算機システムが動作する場合の、レベル1
VMCP、レベル2VMCP及びレベル3のゲストOS
の制御の流れを示している。
FIGS. 4 and 5 are flow charts showing the processing procedure of the address translation buffer control system of the virtual computer system according to the present invention, and the level when the virtual computer system configured as described with reference to FIG. 7 operates. 1
VMCP, Level 2 VMCP and Level 3 guest OS
Shows the control flow of.

【0131】以下、各レベルのOSに対するMSの割り
当てが図10により説明したように行われているものと
して、図1、図4及び図5を参照して本発明の一実施例
における処理手順を詳細に説明する。
Hereinafter, assuming that the allocation of the MS to each level OS is performed as described with reference to FIG. 10, the processing procedure in one embodiment of the present invention will be described with reference to FIGS. 1, 4 and 5. The details will be described.

【0132】ステップ801: レベル1VMCP51
0は、レベル1VMCP510のVM上でレベル3のゲ
ストOSを走行させる事前処理として、レベル2VMC
P520を起動するためのSIE命令のオペランドであ
るL1SDを所定のようにイニシャライズする。このと
き、レベル1VMCP510は、VMIDを2進数の
“1100”とし走行している。
Step 801: Level 1 VMCP51
0 is a level 2 VMC as a pre-process for running a level 3 guest OS on a level 1 VMCP 510 VM.
The L1SD which is the operand of the SIE instruction for activating P520 is initialized in a predetermined manner. At this time, the level 1 VMCP 510 is running with the VMID set to binary “1100”.

【0133】ステップ802: レベル1VMCP51
0は、ステップ801でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。制御は、この時点か
ら、レベル1VMCP510からレベル2VMCP52
0に移る。このとき、レベル2VMCP520は、VM
IDを2進数の“1110”と、マイクロプログラムに
より設定されて走行する。
Step 802: Level 1 VMCP51
0 is an SI with the L1SD which is the operand of the SIE instruction initialized in step 801 as the operand.
Issue the E instruction to activate the level 2 VMCP 520 on the VM of the level 1 VMCP 510. From this point, control starts from level 1 VMCP 510 to level 2 VMCP 52.
Move to 0. At this time, the level 2 VMCP 520 is
The ID is set to a binary number "1110" and set by the microprogram to run.

【0134】ステップ803: レベル1VMCP51
0のVM上でレベル2VMCP520が走行する。レベ
ル2VMCP520は、レベル2VMCP520のVM
上でレベル3OS530を走行させる事前処理として、
レベル3OS530を起動するためのSIE命令のオペ
ランドであるL2SDを所定のようにイニシャライズす
る。
Step 803: Level 1 VMCP51
Level 2 VMCP 520 runs on 0 VMs. The level 2 VMCP 520 is a VM of the level 2 VMCP 520
As a pre-processing to run the level 3 OS 530 above,
The L2SD which is the operand of the SIE instruction for activating the level 3 OS 530 is initialized in a predetermined manner.

【0135】ステップ804: レベル2VMCP52
0は、ステップ803でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
Step 804: Level 2 VMCP52
0 is SI with L2SD which is the operand of the SIE instruction initialized in step 803 as an operand.
E command is issued to try to activate the level 3 OS 530 on the VM of the level 2 VMCP 520.

【0136】ステップ805: ステップ804で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御は、レベル1VMCP510のVM上のレ
ベル2VMCP520からレベル1VMCP510に戻
される。このとき、レベル1VMCP510はVMID
を2進数の“1100”とマイクロプログラムにより設
定されて走行する。
Step 805: In step 804, when the level 2 VMCP 520 issues an SIE instruction while trying to activate the level 3 OS 530 on the VM of the level 2 VMCP 520, this SIE instruction has an instruction interception factor. Occurrence and control is returned to the Level 1 VMCP 510 from the Level 2 VMCP 520 on the VM of the Level 1 VMCP 510. At this time, the level 1 VMCP 510 is VMID
Is set to a binary number "1100" by a microprogram and travels.

【0137】ステップ806: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。
Step 806: Level 1 VMCP51
0 analyzes the interception code which caused the control to be returned to the level 1 VMCP 510 from the level 2 VMCP 520 on the VM of the level 1 VMCP 510, and performs the interception process for each code. In this case, the interception code indicates instruction interception.

【0138】ステップ807: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。この例では、SIE命令を
実行しようとして命令インターセプションが発生したの
であるから、SIE命令のシミュレーションを行う。
Step 807: The specific processing content of this processing is to carry out the processing corresponding to each interception code separately. For example, if the interception code indicates instruction interception, the instruction Perform a simulation. In this example, since the instruction interception occurred while trying to execute the SIE instruction, the simulation of the SIE instruction is performed.

【0139】レベル1VMCP510は、レベル1VM
CP510のVM上でレベル3OS530を走行させる
事前処理として、レベル2VMCP520を起動するた
めに用意されたL1SDとレベル3OS530を起動す
るために用意されたL2SDとを合成し、レベル1VM
CP510のVM上でレベル3OS530を走行させる
ための仮のSD(以下、シャドーSDという)を所定の
ようにイニシャライズする。
Level 1 VMCP 510 is level 1 VM
As a pre-process for running the level 3 OS 530 on the VM of the CP 510, the L1SD prepared for starting the level 2 VMCP 520 and the L2SD prepared for starting the level 3 OS 530 are combined to generate the level 1 VM.
A provisional SD (hereinafter referred to as a shadow SD) for running the level 3 OS 530 on the VM of the CP 510 is initialized in a predetermined manner.

【0140】ステップ808: レベル1VMCP51
0は、ステップ807でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。このと
き、レベル3OS530は、VMIDを2進数の“11
11”と、マイクロプログラムにより設定されて走行す
る。
Step 808: Level 1 VMCP51
0 issues an SIE instruction using the shadow SD which is the operand of the SIE instruction initialized in step 807 as an operand, and activates the level 3 OS 530 on the VM of the level 1 VMCP 510. This activation is equivalent to activating the level 3 OS 530 on the VM of the level 2 VMCP 520. Control is level 1 from this point
Move from the VMCP 510 to the level 3 OS 530. At this time, the level 3 OS 530 sets the VMID to binary “11”.
11 ", the vehicle is set by the microprogram and travels.

【0141】ステップ809: レベル2VMCP52
0のVM上でレベル3OS530が走行し、所定の処理
を実行する。
Step 809: Level 2 VMCP52
The level 3 OS 530 runs on the VM of 0 and executes a predetermined process.

【0142】ステップ810: レベル2VMCP52
0のVM上でレベル3OS530が処理の実行中に、該
レベル3OS530から発行されたMSアクセスによ
り、レベル2アドレス変換例外が検出されたものとす
る。
Step 810: Level 2 VMCP52
It is assumed that a level 2 address translation exception is detected by the MS access issued from the level 3 OS 530 while the level 3 OS 530 is executing processing on the VM of 0.

【0143】ステップ811: ステップ810で、レ
ベル2VMCP520のVM上のレベル3OS530が
レベル2アドレス変換例外を検出すると、このアドレス
変換例外は、ホスト割込み要因を持っているのでホスト
へのプログラム割込みが発生し、制御はレベル2VMC
P520のVM上のレベル3OS530からレベル1V
MCP510に戻される。このとき、レベル1VMCP
510は、VMIDを2進数の“1100”と、マイク
ロプログラムにより設定されて走行する。
Step 811: In step 810, when the level 3 OS 530 on the VM of the level 2 VMCP 520 detects a level 2 address translation exception, this address translation exception has a host interrupt factor, so a program interrupt to the host occurs. , Control is level 2 VMC
Level 3 OS 530 on VM of P520 to level 1V
Returned to MCP510. At this time, level 1 VMCP
The 510 runs with the VMID set to a binary number “1100” by a microprogram.

【0144】ステップ812: レベル1VMCP51
0は、制御がレベル2VMCP520のVM上のレベル
3OS530からレベル1VMCP510に戻される要
因となったホストプログラム割込みコードを解析し、コ
ード毎の割込み処理を行う。この場合、ホストプログラ
ム割込みコードは、レベル2アドレス変換例外を示して
いる。
Step 812: Level 1 VMCP51
0 analyzes the host program interrupt code that caused the control to be returned to the level 1 VMCP 510 from the level 3 OS 530 on the VM of the level 2 VMCP 520, and performs interrupt processing for each code. In this case, the host program interrupt code indicates a level 2 address translation exception.

【0145】ステップ813: この処理の具対的処理
内容は、各種割込みコード毎に対応する処理を別々に行
うもので、例えば、割込みコードがレベル2アドレス変
換例外を指していれば、レベル2VMCP520にアド
レス変換例外を通知する。この例では、レベル2VMC
P520のVM上のレベル3OS530がレベル2アド
レス変換例外を検出したのであるから、レベル1VMC
P510は、レベル2VMCP520にアドレス変換例
外を通知する。
Step 813: The specific processing content of this processing is to carry out the processing corresponding to each interrupt code separately. For example, if the interrupt code indicates a level 2 address translation exception, the level 2 VMCP 520 is processed. Notify an address translation exception. In this example, level 2 VMC
Since the level 3 OS 530 on the VM of P520 detected the level 2 address translation exception, the level 1 VMC
The P510 notifies the level 2 VMCP 520 of the address translation exception.

【0146】すなわち、レベル1VMCP510は、レ
ベル2VMCP520にアドレス変換例外を通知するた
め、レベル1VMCP510のVM上でレベル2VMC
P520を走行させる事前処理として、レベル2VMC
P520を起動するために用意されたL1SDとレベル
3OS530を起動するために用意されたシャドウSD
とを合成し、レベル2VMCP520を起動するための
L1SDを所定のようにイニシャライズする。
That is, the level 1 VMCP 510 notifies the level 2 VMCP 520 of the address translation exception, so that the level 2 VMC on the VM of the level 1 VMCP 510.
Level 2 VMC as pre-processing to run P520
L1SD prepared for starting P520 and shadow SD prepared for starting Level 3 OS 530
Are combined and L1SD for activating the level 2 VMCP 520 is initialized in a predetermined manner.

【0147】ステップ814: レベル1VMCP51
0は、ステップ813でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。このときのレベル2
VMCP520のPSAには、アドレス変換例外に伴う
割込みパラメータが、予めレベル1VMCP510に依
って格納されており、さらに、L1SD内の命令アドレ
スフィールドには、レベル2VMCP520のPSA内
の割込みPSWの命令アドレス部が格納される。すなわ
ち、レベル1VMCP510は、レベル2VMCP52
0に対するアドレス変換例外割込みをシミュレーション
する。制御は、この時点から、レベル1VMCP510
からレベル2VMCP520に移る。このとき、レベル
2VMCP520は、VMIDを2進数の“1110”
と、マイクロプログラムにより設定されて走行する。
Step 814: Level 1 VMCP51
0 is SI with L1SD which is the operand of the SIE instruction initialized in step 813 as an operand.
Issue the E instruction to activate the level 2 VMCP 520 on the VM of the level 1 VMCP 510. Level 2 at this time
The interrupt parameter associated with the address translation exception is stored in advance in the PSA of the VMCP 520 by the level 1 VMCP 510. Further, the instruction address field of the interrupt PSW in the PSA of the level 2 VMCP 520 is stored in the instruction address field in the L1SD. Is stored. That is, the level 1 VMCP 510 is the same as the level 2 VMCP 52
Simulate an address translation exception interrupt for 0. From this point, control begins at level 1 VMCP510.
To Level 2 VMCP520. At this time, the level 2 VMCP 520 sets the VMID to binary “1110”.
And, it runs by being set by the micro program.

【0148】ステップ815: レベル2VMCP52
0は、レベル1VMCP510から通知された割込みコ
ードを解析し、コード毎の割込み処理を行う。この場
合、割込みコードは、アドレス変換例外割込みを示して
いる。
Step 815: Level 2 VMCP52
0 analyzes the interrupt code notified from the level 1 VMCP 510 and performs interrupt processing for each code. In this case, the interrupt code indicates an address translation exception interrupt.

【0149】ステップ816: この処理の具対的処理
内容は、各種割込みコード毎に対応する処理を別々に行
うもので、例えば、割込みコードがアドレス変換例外割
込みを指していれば、アドレス変換テーブルの書き替
え、保守を行う。この例では、アドレス変換例外割込み
が発生したのであるから、アドレス変換テーブルの保守
が実行される。
Step 816: The specific processing content of this processing is to carry out the processing corresponding to each interrupt code separately. For example, if the interrupt code indicates an address conversion exception interrupt, the address conversion table Rewrite and maintain. In this example, since the address translation exception interrupt has occurred, maintenance of the address translation table is executed.

【0150】ステップ817: レベル2VMCP52
0は、アドレス変換テーブルの保守処理を実行する。こ
のアドレス変換テーブルの保守処理の一環として、レベ
ル2VMCP520は、PTLB命令を発行する。この
とき、VMIDの値として、2進数の“1110”のV
MIDエントリが選択され、信号線780に送出され
る。その時点で、信号線780の内容が、比較器A75
A及びANDゲート750のそれぞれに入力され、出力
レジスタ730に一時的に保持されているVMIDエン
トリ712がANDゲート750に入力される。
Step 817: Level 2 VMCP52
0 executes maintenance processing of the address conversion table. The level 2 VMCP 520 issues a PTLB instruction as part of the maintenance process of the address conversion table. At this time, as the value of VMID, V of binary “1110”
The MID entry is selected and sent out on signal line 780. At that time, the content of the signal line 780 changes to the comparator A75.
The VMID entry 712, which is input to each of A and the AND gate 750 and is temporarily held in the output register 730, is input to the AND gate 750.

【0151】比較器A75Aは、信号線780の内容、
すなわち、2進数の“1110”のVMIDデータとA
NDゲート750の出力とを比較し、その結果を信号線
7I0に出力する。この結果により、そのTLBエント
リのパージを行うか否かが制御される。すなわち、比較
の結果が一致であれば、選択されているTLBエントリ
が無効化される。また、比較の結果が不一致であれば、
そのTLBエントリの無効化は行われない。この場合、
2進数の“1110”及び“1111”のVMIDエン
トリを持つTLBエントリが無効化の対象となる。
The comparator A75A has the contents of the signal line 780,
That is, the binary number "1110" VMID data and A
The output of the ND gate 750 is compared, and the result is output to the signal line 7I0. This result controls whether or not to purge the TLB entry. That is, if the comparison result is a match, the selected TLB entry is invalidated. Also, if the comparison results do not match,
The TLB entry is not invalidated. in this case,
TLB entries having VMID entries of binary numbers “1110” and “1111” are targets for invalidation.

【0152】前述の操作が、TLBエントリの数だけ繰
り返され、2つのVMIDに対するTLBの部分パージ
が行われる。
The above operation is repeated by the number of TLB entries, and the partial purging of the TLB for the two VMIDs is performed.

【0153】ステップ818: レベル2VMCP52
0は、レベル3OS530が検出したレベル2アドレス
変換例外の処理を完了したので、再度、レベル3OS5
30を起動する必要がある。そこで、レベル2VMCP
520は、レベル2VMCP520のVM上でレベル3
OS530を走行させる事前処理として、SIE命令の
オペランドであるL2SDを所定のようにイニシャライ
ズする。
Step 818: Level 2 VMCP52
0 completes the processing of the level 2 address translation exception detected by the level 3 OS 530.
It is necessary to activate 30. So, level 2 VMCP
520 is level 3 on the VM of level 2 VMCP 520
As a pre-process for running the OS 530, the L2SD which is the operand of the SIE instruction is initialized in a predetermined manner.

【0154】ステップ819: レベル2VMCP52
0は、ステップ818でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
Step 819: Level 2 VMCP52
0 is SI with L2SD which is the operand of the SIE instruction initialized in step 818 as the operand.
E command is issued to try to activate the level 3 OS 530 on the VM of the level 2 VMCP 520.

【0155】ステップ820: ステップ818で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御はレベル1VMCP510のVM上のレベ
ル2VMCP520からレベル1VMCP510に戻さ
れる。このとき、レベル1VMCP510は、VMID
を2進数の“1100”と、マイクロプログラムにより
設定されて走行する。
Step 820: In step 818, when the level 2 VMCP 520 issues an SIE instruction while trying to activate the level 3 OS 530 on the VM of the level 2 VMCP 520, this SIE instruction has an instruction interception factor. Occurring and control is returned from the level 2 VMCP 520 on the VM of the level 1 VMCP 510 to the level 1 VMCP 510. At this time, the level 1 VMCP 510 is the VMID.
The binary number "1100" is set by the microprogram and the vehicle runs.

【0156】ステップ821: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。
Step 821: Level 1 VMCP51
0 analyzes the interception code which caused the control to be returned to the level 1 VMCP 510 from the level 2 VMCP 520 on the VM of the level 1 VMCP 510, and performs the interception process for each code. In this case, the interception code indicates instruction interception.

【0157】ステップ822: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、この命
令のシミュレーションを行う。この例では、SIE命令
を実行しようとして命令インターセプションが発生した
のであるから、レベル1VMCP510は、SIE命令
のシミュレーションを行う。レベル1VMCP510
は、レベル1VMCP510のVM上でレベル3OS5
30を走行させる事前処理として、レベル2VMCP5
20を起動するために用意されたL1SDとレベル3O
S530を起動するために用意されたL2SDとを合成
し、レベル1VMCP510のVM上でレベル3OS5
30を走行させるためのシャドーSDを所定のようにイ
ニシャライズする。
Step 822: The specific processing content of this processing is to perform the processing corresponding to each interception code separately. For example, if the interception code indicates instruction interception, this instruction Perform a simulation. In this example, since the instruction interception occurred while trying to execute the SIE instruction, the level 1 VMCP 510 simulates the SIE instruction. Level 1 VMCP510
Is a level 3 OS5 on a level 1 VMCP 510 VM.
Level 2 VMCP5 as pre-processing to run 30
L1SD and level 3O prepared to start 20
L2SD prepared for starting S530 is combined, and level 3 OS5 is executed on the VM of level 1 VMCP 510.
Initialize the shadow SD for running the 30 as specified.

【0158】ステップ823: レベル1VMCP51
0は、ステップ822でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。このと
き、レベル3OS530は、VMIDを2進数の“11
11”と、マイクロプログラムにより設定されて走行す
る。
Step 823: Level 1 VMCP51
0 issues an SIE instruction using the shadow SD that is the operand of the SIE instruction initialized in step 822 as an operand, and activates the level 3 OS 530 on the VM of the level 1 VMCP 510. This activation is equivalent to activating the level 3 OS 530 on the VM of the level 2 VMCP 520. Control is level 1 from this point
Move from the VMCP 510 to the level 3 OS 530. At this time, the level 3 OS 530 sets the VMID to binary “11”.
11 ", the vehicle is set by the microprogram and travels.

【0159】ステップ824: レベル2VMCP52
0のVM上でレベル3OS530が走行する。
Step 824: Level 2 VMCP52
Level 3 OS 530 runs on 0 VM.

【0160】前述で説明したように、本発明の一実施例
は、異なるVMIDを持つTLBエントリをパージする
に当たり、TLBエントリの操作が必要な命令のシミュ
レーションを実行するとき、例えば、レベル2VMCP
520上で、レベル2アドレス変換例外処理を実行する
とき、レベル1VMCP510が、SIE命令のオペラ
ンドであるL1SDをオペランドとしてSIE命令を発
行し、レベル1VMCP510上のVMでレベル2VM
CP520を起動する場合に、レベル2アドレス変換例
外がレベル2VMCP520のVM上のレベル3OS5
30上で検出されたことにより、レベル2VMCP52
0が、レベル2アドレス変換テーブルの書き替え保守処
理を開始し、そこでPTLB命令を発行した時点で、命
令インターセプションを抑止し、制御をレベル1VMC
P510のVM上のレベル2VMCP520からレベル
1VMCP510に戻さずにそのまま実行させている。
As described above, according to one embodiment of the present invention, when purging a TLB entry having a different VMID, when a simulation of an instruction that requires manipulation of the TLB entry is executed, for example, level 2 VMCP.
When executing the level 2 address translation exception processing on the 520, the level 1 VMCP 510 issues the SIE instruction using L1SD which is the operand of the SIE instruction as an operand, and the VM on the level 1 VMCP 510 outputs the level 2 VM.
When the CP 520 is started, the level 2 address translation exception is the level 3 OS5 on the VM of the level 2 VMCP 520.
Level 2 VMCP52 due to being detected on 30
0 starts the rewriting maintenance processing of the level 2 address conversion table, and when the PTLB instruction is issued there, the instruction interception is suppressed and the control is performed at the level 1 VMC.
Instead of returning from the level 2 VMCP 520 on the VM of P510 to the level 1 VMCP 510, it is executed as it is.

【0161】本発明の一実施例によれば、このPTLB
命令の実行において、インターセプションを伴わずに、
レベル2VMCP520に与えられたVMIDに対応す
るVMIDの値を持つ自PIPのTLBエントリとレベ
ル3OS530に与えられたVMIDに対応するVMI
Dの値を持つ自PIPのTLBエントリとを同時に部分
パージすることができる。
According to one embodiment of the present invention, this PTLB
In the execution of instructions, without interception,
The TLB entry of the own PIP having the VMID value corresponding to the VMID given to the level 2 VMCP 520 and the VMI corresponding to the VMID given to the level 3 OS 530
It is possible to partially purge the local PIP TLB entry having the value of D at the same time.

【0162】その結果、本発明の一実施例によれば、仮
想計算機システムの性能の向上を阻害する大きな要因で
あったPTLB命令のインターセプション処理及び全T
LBパージ処理に依るTLBの使用効率低下により生じ
るシステムに対するオーバヘッドを除去することがで
き、仮想計算機システムの性能を格段に向上させること
ができる。
As a result, according to the embodiment of the present invention, the interception process of the PTLB instruction and the total T which are major factors that hinder the improvement of the performance of the virtual computer system.
It is possible to remove the overhead to the system caused by the decrease in the TLB usage efficiency due to the LB purging process, and it is possible to significantly improve the performance of the virtual computer system.

【0163】前述した本発明の一実施例は、VMを構成
する実CPUとして1台のCPUを使用する例を挙げて
説明したが、本発明は、多重プロセッサ構成の実CPU
を使用する仮想計算機システムに対しても適用すること
ができる。この場合、レベル2VMCP520の発行す
るPTLB命令の実行において、L1SD内のL1SD
アドレス、L2SDアドレス及びシャドーSDアドレス
に対応するVMIDの値を持つ自PIPのTLBエント
リを部分パージし、さらに、全ての他PIPのL1SD
アドレス、L2SDアドレス及びシャドーSDアドレス
に対応するVMIDの値を持つTLBエントリを多重プ
ロセッサ通信インタフェースを用いてパージし、かつ、
このTLBエントリのパージ動作を、PTLB命令の実
行に同期して行うようにすればよい。
The above-described one embodiment of the present invention has been described by taking an example in which one CPU is used as the real CPU constituting the VM, but the present invention is a real CPU having a multiprocessor configuration.
It can also be applied to a virtual computer system that uses the. In this case, when the PTLB instruction issued by the level 2 VMCP 520 is executed, the L1SD in the L1SD is
Address, L2SD address and TSD entry of own PIP having VMID value corresponding to shadow SD address are partially purged, and further L1SD of all other PIPs
Purging TLB entries having VMID values corresponding to address, L2SD address and shadow SD address using the multiprocessor communication interface, and
This TLB entry purging operation may be performed in synchronization with the execution of the PTLB instruction.

【0164】また、前述した本発明の一実施例は、AN
Dゲート750によるTLBエントリのVMIDエント
リデータの下位2ビットに“0”を挿入する変換例を示
したが、本発明は、ANDゲート750を任意のビット
数に“0”を挿入する回路構成としてもよく、さらに、
ANDゲート7B60からANDゲート7B63に対す
る入力であるORゲート7B50からORゲート7B5
3の出力をORゲートとその入力結線とによらず、マイ
クロプログラムによりアクセス可能なレジスタを設ける
構成としてもよい。
The above-described embodiment of the present invention is based on the AN
Although the conversion example in which "0" is inserted into the lower 2 bits of the VMID entry data of the TLB entry by the D gate 750 has been shown, the present invention uses the AND gate 750 as a circuit configuration for inserting "0" into an arbitrary number of bits. Well, in addition,
The input from the AND gate 7B60 to the AND gate 7B63 is the OR gate 7B50 to the OR gate 7B5.
The output of 3 may be provided with a register that can be accessed by a microprogram regardless of the OR gate and its input connection.

【0165】[0165]

【発明の効果】以上説明したように本発明によれば、レ
ベル2OSが発行したTLBをパージする命令を実行す
る際、レベル2OS上でPTLB命令を直接実行させる
ことができるので、従来技術の場合のような、レベル1
OSが行う全てのTLBエントリに対するPTLB命令
を用いたTLBパージ操作を除去することができ、レベ
ル1OSが行う全てのTLBエントリに対するTLBパ
ージによるTLBの使用効率の低下等により生じるシス
テムのオーバヘッドを除去することができる。
As described above, according to the present invention, the PTLB instruction can be directly executed on the level 2 OS when executing the instruction to purge the TLB issued by the level 2 OS. Like level 1
The TLB purge operation using the PTLB instruction for all the TLB entries performed by the OS can be eliminated, and the system overhead caused by the decrease in the TLB usage efficiency due to the TLB purge performed for all the TLB entries performed by the level 1 OS is removed. be able to.

【0166】これにより、本発明によれば、レベル2O
S上で発行されるPTLB命令に起因するインターセプ
ション処理等の従来技術で必要であったレベル1OSに
よる操作に要する処理時間、すなわち、そのオーバヘッ
ドを除去することができ、仮想計算機システムの性能を
格段に向上させることができる。
As a result, according to the present invention, level 2O
It is possible to eliminate the processing time required for the operation by the level 1 OS, that is, the overhead required for the conventional technology such as the interception processing caused by the PTLB instruction issued on S, and to significantly improve the performance of the virtual computer system. Can be improved.

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

【図1】本発明の一実施例に使用されるVMIDを具備
したTLBの構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a TLB provided with a VMID used in an embodiment of the present invention.

【図2】TLB内に構成されるANDゲートの詳細な構
成を示すブロック図である。
FIG. 2 is a block diagram showing a detailed configuration of an AND gate configured in a TLB.

【図3】ANDゲートの動作を説明する図である。FIG. 3 is a diagram illustrating the operation of an AND gate.

【図4】本発明による仮想計算機システムのアドレス変
換バッファ制御方式の処理手順を示すフローチャートで
ある。
FIG. 4 is a flowchart showing a processing procedure of an address translation buffer control system of the virtual computer system according to the present invention.

【図5】本発明による仮想計算機システムのアドレス変
換バッファ制御方式の処理手順を示すフローチャートで
ある。
FIG. 5 is a flowchart showing a processing procedure of an address translation buffer control system of the virtual computer system according to the present invention.

【図6】従来技術によるVMに対する実CPUの共用を
説明する仮想計算機システムの構成を示すブロック図で
ある。
FIG. 6 is a block diagram showing a configuration of a virtual computer system for explaining sharing of a real CPU with a VM according to a conventional technique.

【図7】従来技術によるVMに対する実CPUの共用を
説明する他の仮想計算機システムの構成を示すブロック
図である。
FIG. 7 is a block diagram showing a configuration of another virtual computer system for explaining sharing of a real CPU with a VM according to a conventional technique.

【図8】図7に示すように構成された仮想計算機システ
ムが動作する場合の、レベル1VMCP、レベル2VM
CP及びレベル3のゲストOSの制御の流れを示すフロ
ーチャートである。
FIG. 8 is a level 1 VMCP, a level 2 VM when the virtual computer system configured as shown in FIG. 7 operates.
7 is a flowchart showing a control flow of a CP and a guest OS of level 3.

【図9】VMIDを具備したTLBの構成を示すブロッ
ク図である。
FIG. 9 is a block diagram showing a configuration of a TLB provided with a VMID.

【図10】図7に示すシステムにおける各レベルのOS
(VMCP)に対する従来技術によるMSの領域割り当
てを説明する図である。
10 is an OS of each level in the system shown in FIG.
It is a figure explaining the area | region allocation of MS by the prior art with respect to (VMCP).

【図11】図7に示すように構成された仮想計算機シス
テムが動作する場合で、かつ、TLBのパージが必要と
なる場合のレベル1VMCP、レベル2VMCP及びレ
ベル3のゲストOSの制御の流れを示すフローチャート
である。
11 shows a control flow of the level 1 VMCP, level 2 VMCP, and level 3 guest OS when the virtual machine system configured as shown in FIG. 7 operates and when TLB purging is required. It is a flowchart.

【図12】図7に示すように構成された仮想計算機シス
テムが動作する場合で、かつ、TLBのパージが必要と
なる場合のレベル1VMCP、レベル2VMCP及びレ
ベル3のゲストOSの制御の流れを示すフローチャート
である。
FIG. 12 shows a flow of control of the level 1 VMCP, level 2 VMCP, and level 3 guest OS when the virtual computer system configured as shown in FIG. 7 operates and when TLB purging is required. It is a flowchart.

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

101、550 主記憶装置 102 実CPU 111 仮想計算機制御プログラム(VMCP) 121〜123 論理CPU 211、510 レベル1VMCP 221 レベル1論理CPU 231、520 レベル2VMCP 241、242 レベル2論理CPU 251、252、530 ゲストOS 410、710 アドレス変換バッファ 420、470、720、770 セレクタ 430、730 出力レジスタ 440、740 VMIDレジスタ 450〜452、75A〜75C 比較器 460、750、760、7B60〜7B63 AND
ゲート 480、780 アドレス変換制御部 7B50〜7B53 ORゲート
101, 550 Main storage device 102 Real CPU 111 Virtual machine control program (VMCP) 121-123 Logical CPU 211, 510 Level 1 VMCP 221 Level 1 logical CPU 231, 520 Level 2 VMCP 241, 242 Level 2 logical CPU 251, 252, 530 Guest OS 410, 710 Address conversion buffer 420, 470, 720, 770 Selector 430, 730 Output register 440, 740 VMID register 450-452, 75A-75C Comparator 460, 750, 760, 7B60-7B63 AND
Gate 480, 780 Address conversion control unit 7B50 to 7B53 OR gate

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 アドレス変換機能を備える中央処理装置
と、主記憶装置と、仮想計算機IDエントリを備えるア
ドレス変換バッファ及び1つまたはそれ以上の仮想計算
機の個々の仮想計算機を識別するために割り当てられる
仮想計算機IDを格納するレジスタを備えるアドレス変
換機能とを備えて構成される情報処理システム上に構築
される仮想計算機システムにおいて、前記個々の仮想計
算機を識別する仮想計算機IDの割り当てを、それぞれ
の仮想計算機上で動作するオペレーティングシステムの
連携関係を反映した値として行い、前記中央処理装置上
で走行する仮想計算機が発行するアドレス変換バッファ
のパージを伴う命令の実行に当たり、前記仮想計算機の
持つ仮想計算機IDと一致する仮想計算機IDエントリ
を持つアドレス変換バッファエントリを選択的にパージ
すると共に、前記仮想計算機の持つ仮想計算機IDと連
携関係にある1つまたはそれ以上の他の仮想計算機の持
つ仮想計算機IDエントリを持つアドレス変換バッファ
エントリをも同時にパージすることを特徴とする仮想計
算機システムのアドレス変換バッファ制御方式。
1. A central processing unit having an address translation function, a main memory unit, an address translation buffer having a virtual computer ID entry, and one or more virtual computers assigned to identify individual virtual computers. In a virtual computer system constructed on an information processing system configured with an address conversion function having a register for storing virtual computer IDs, allocation of virtual computer IDs for identifying the individual virtual computers is performed for each virtual computer. The virtual computer ID of the virtual computer is used as a value that reflects the cooperation of the operating systems operating on the computer, and when the instruction accompanying the purging of the address translation buffer issued by the virtual computer running on the central processing unit is executed. Address conversion with virtual machine ID entry matching with The buffer entry is selectively purged, and at the same time, the address translation buffer entry having the virtual computer ID entry of one or more other virtual computers having the virtual computer ID of the virtual computer is also purged. An address translation buffer control method for a virtual computer system characterized by the above.
【請求項2】 前記仮想計算機システムは、実計算機上
で動作する第1レベルのオペレーティングシステムが、
自らアドレス変換テーブルを作成して仮想アドレス空間
を生成し、第1レベルのオペレーティングシステム上の
仮想アドレス空間上で仮想計算機としての第2レベルの
オペレーティングシステムを動作させ、さらに、第2レ
ベルのオペレーティングシステムが、自らアドレス変換
テーブルを作成して仮想アドレス空間を生成し、第2レ
ベルのオペレーティングシステム上の仮想アドレス空間
上で仮想計算機としての第3レベルのオペレーティング
システムを動作させるように構成され、前記オペレーテ
ィングシステムの連携関係を反映させて割り当てられる
仮想計算機IDの値は、オペレーティングシステムの前
記各レベルの上下関係の連携を反映した値に設定される
ことを特徴とする請求項1記載の仮想計算機システムの
アドレス変換バッファ制御方式。
2. The virtual computer system comprises a first-level operating system operating on a real computer,
The address translation table is created by itself to generate a virtual address space, the second level operating system as a virtual machine is operated on the virtual address space on the first level operating system, and the second level operating system Is configured to create an address translation table by itself to generate a virtual address space and to operate a third level operating system as a virtual machine on the virtual address space on the second level operating system. 2. The virtual machine system according to claim 1, wherein the value of the virtual machine ID assigned by reflecting the cooperation relationship of the systems is set to a value reflecting the cooperation of the upper and lower relationships of each level of the operating system. Address translation § control system.
【請求項3】 前記他の仮想計算機の持つ仮想計算機I
Dエントリを持つアドレス変換バッファエントリをも同
時にパージする動作は、前記仮想計算機の持つ仮想計算
機IDの値の一部または全部と他の仮想計算機の持つ仮
想計算機IDエントリの値の一部または全部との関係か
らパージすべき他の仮想計算機の持つ仮想計算機IDエ
ントリを決定して行われることを特徴とする請求項1ま
たは2記載の仮想計算機システムのアドレス変換バッフ
ァ制御方式。
3. A virtual computer I possessed by the other virtual computer
The operation of simultaneously purging the address translation buffer entry having the D entry is performed with a part or all of the value of the virtual machine ID of the virtual machine and a part or all of the value of the virtual machine ID entry of another virtual machine. 3. The address translation buffer control method for a virtual computer system according to claim 1, wherein the virtual computer ID entry of another virtual computer to be purged is determined from the above relationship.
JP5279654A 1993-11-09 1993-11-09 Address translation buffer control system for virtual machine system Pending JPH07134658A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5279654A JPH07134658A (en) 1993-11-09 1993-11-09 Address translation buffer control system for virtual machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5279654A JPH07134658A (en) 1993-11-09 1993-11-09 Address translation buffer control system for virtual machine system

Publications (1)

Publication Number Publication Date
JPH07134658A true JPH07134658A (en) 1995-05-23

Family

ID=17613998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5279654A Pending JPH07134658A (en) 1993-11-09 1993-11-09 Address translation buffer control system for virtual machine system

Country Status (1)

Country Link
JP (1) JPH07134658A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508598A (en) * 2004-07-30 2008-03-21 インテル コーポレイション Preserving processor resources during architectural events
JP2017517040A (en) * 2014-02-21 2017-06-22 エイアールエム リミテッド Disabling stored address translation

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152561B2 (en) 2004-07-30 2015-10-06 Intel Corporation Maintaining processor resources during architectural events
JP2008508598A (en) * 2004-07-30 2008-03-21 インテル コーポレイション Preserving processor resources during architectural events
US8543793B2 (en) 2004-07-30 2013-09-24 Intel Corporation Maintaining processor resources during architectural events
US8788790B2 (en) 2004-07-30 2014-07-22 Intel Corporation Maintaining processor resources during architectural events
US8806172B2 (en) 2004-07-30 2014-08-12 Intel Corporation Maintaining processor resources during architectural evens
US9086958B2 (en) 2004-07-30 2015-07-21 Intel Corporation Maintaining processor resources during architectural events
JP2011181094A (en) * 2004-07-30 2011-09-15 Intel Corp Maintaining processor resource during architectural event
US9164918B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
US10740249B2 (en) 2004-07-30 2020-08-11 Intel Corporation Maintaining processor resources during architectural events
US9507730B2 (en) 2004-07-30 2016-11-29 Intel Corporation Maintaining processor resources during architectural events
US9164901B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
US9996475B2 (en) 2004-07-30 2018-06-12 Intel Corporation Maintaining processor resources during architectural events
US10303620B2 (en) 2004-07-30 2019-05-28 Intel Corporation Maintaining processor resources during architectural events
JP2017517040A (en) * 2014-02-21 2017-06-22 エイアールエム リミテッド Disabling stored address translation

Similar Documents

Publication Publication Date Title
US5553291A (en) Virtual machine control method and virtual machine system
US4347565A (en) Address control system for software simulation
JP2633488B2 (en) Method and system for performing parallel processing
JPH0784883A (en) Method for purging address conversion buffer of virtual computer system
US4814975A (en) Virtual machine system and method for controlling machines of different architectures
JP2839201B2 (en) Virtual computer system
WO2017024783A1 (en) Virtualization method, apparatus and system
JPS61206043A (en) Interruption control method in virtual computer system
JPH06187178A (en) Input and output interruption control method for virtual computer system
US5584042A (en) Dynamic I/O data address relocation facility
JPH0430053B2 (en)
US5339417A (en) Computer system with two levels of guests
US5404477A (en) Extended memory address conversion and data transfer control system
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
KR102326280B1 (en) Method, apparatus, device and medium for processing data
EP0619899B1 (en) Software control of hardware interruptions
JPH06110715A (en) Dynamic allocating method for computer resources in virtual computer system
JPH07134658A (en) Address translation buffer control system for virtual machine system
JP3490212B2 (en) Input / output channel expansion method for information processing device
JPS61160160A (en) Addressing control device of virtual computer
JPH07134659A (en) Address translation buffer control system for virtual machine system
JPH09282196A (en) Program run control system for complex logic processor system
JPS6336012B2 (en)
JPS61184643A (en) Starting control system for virtual computer
JPS6314241A (en) Memory expansion system