JPH07134659A - 仮想計算機システムのアドレス変換バッファ制御方式 - Google Patents

仮想計算機システムのアドレス変換バッファ制御方式

Info

Publication number
JPH07134659A
JPH07134659A JP5279658A JP27965893A JPH07134659A JP H07134659 A JPH07134659 A JP H07134659A JP 5279658 A JP5279658 A JP 5279658A JP 27965893 A JP27965893 A JP 27965893A JP H07134659 A JPH07134659 A JP H07134659A
Authority
JP
Japan
Prior art keywords
level
instruction
vmcp
entry
address translation
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
JP5279658A
Other languages
English (en)
Inventor
Osamu Onodera
修 小野寺
Takeshi Uehara
健 宇江原
Yuji Kobayashi
雄二 小林
Hideaki Amano
英昭 天野
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 JP5279658A priority Critical patent/JPH07134659A/ja
Publication of JPH07134659A publication Critical patent/JPH07134659A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 TLBをパージする必要のある命令の実行
を、他のIPに対するロック、PTLB命令の実行及び
アンロックの各指示の発行を伴うことなく行わせ、オー
バヘッドを除去してシステムの性能を向上させる。 【構成】 本発明は、走行しているIP上のVMの持つ
VMIDを保持するVMIDレジスタを設け、VMの発
行するアドレス変換バッファのパージを伴う命令の実行
に当たり、該VMの持つVMIDと一致するVMIDエ
ントリを持つアドレス変換バッファエントリを選択的に
パージする機能に加え、他のVMIDエントリを持つア
ドレス変換バッファエントリを選択的にパージする制御
機能を追加して構成される。あるいは、1つまたはそれ
以上の他のVMの持つVMIDを格納するレジスタを設
け、このVMIDレジスタを用いて、前記VMの持つV
MIDと一致しない他のVMIDエントリを持つアドレ
ス変換バッファエントリをも選択的にパージする制御機
能を備えて構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想計算機システム等
の情報処理装置に係り、特に、仮想計算機システムの仮
想計算機動作時のアドレス変換のために使用して好適な
仮想計算機システムのアドレス変換バッファ制御方式に
関する。
【0002】
【従来の技術】一般に、仮想記憶方式を用いる情報処理
装置において、情報処理装置が主記憶上のデータ及び命
令語等をアクセスする際に、仮想アドレスを主記憶上の
絶対アドレスに変換する必要がある。このような、仮想
アドレスを主記憶上の絶対アドレスに変換する一般的な
仕様及び手段に関する従来技術として、例えば、IBM
社発行の刊行物である“Enterprise System Architectu
re/390 Principles of Operation”(SA22−720
1−00)等に記載された技術が知られている。
【0003】近年、仮想計算機システムと呼ばれる情報
処理装置が実現され、その使用形態は一般化されつつあ
る。仮想計算機システムは、単一の実計算機の下に複数
の仮想計算機を生成して情報処理システムを構築するも
のであり、実計算機上で仮想計算機制御プログラム(以
下、VMCPという)を動作させ、このVMCPの制御
の下でオペレーティングシステム(以下、OSという)
を動作させるように構成されている。
【0004】一般に、情報処理システムを構成する計算
機の使用形態としては、実計算機上で単一のOSを動作
させる方法と単一の実計算機上で複数のOSを動作させ
る仮想計算機(以下、VMという)と呼ばれる方法とが
ある。実計算機上で単一のOSを動作させるモードをベ
ーシックモードと言い、その方法における実計算機のハ
ードウェア資源は、1台またはそれ以上の中央処理装置
(以下、CPUまたはIPという)と、1台の共用主記
憶装置(以下、MSという)と、1台またはそれ以上の
チャネルパス(以下、CHPという)とから構成され
る。そして、これらの実計算機のハードウェア資源は単
一の資源として扱われる。また、単一の実計算機上に複
数のVMを構築し、複数のOSを動作させるモードをL
PARモードと言う。
【0005】仮想計算機システムは、複数のVMを単一
の実計算機上で実現するために、VMCPと呼ばれるプ
ログラムを実計算機上で動作させ、このVMCPの制御
の下に複数の仮想計算機であるVMを生成し、さらに、
これらのそれぞれのVMの上で独立したOSを動作させ
るように構成されている。従って、VMCPには、単一
の実計算機のハードウェア資源を各VMに共用させて使
用させる機能が付加されている。
【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)等に記載された技術が知られている。
【0007】この刊行物に紹介されている従来技術は、
実CPUの共用方法として、前述した2つの方法のうち
前者の方法、すなわち、実CPUを時分割により各VM
に割り当てる方法をとっており、また、入出力チャネル
及びMSのVMによる共用方法として、前述した2つの
方法のうち後者の方法、すなわち、実CHP及び実MS
を論理的に分割して各VMに占有的に割り当てる方法を
とっている。
【0008】この従来技術において、仮想計算機システ
ムを構築する際、実計算機上で動作するOS(いわゆる
VMCPであり、以下、レベル1OSまたはレベル1V
MCPという)は、レベル1OSが自らアドレス変換テ
ーブルを作成し、レベル1OS上の仮想アドレス空間上
でVMとしてのOS(以下、レベル2OSまたはレベル
2VMCPという)を動作させている。さらに、このレ
ベル2OSもアドレス変換テーブルを生成して、仮想ア
ドレス空間を作り出していた。
【0009】さらに、仮想計算機システムの構築の応用
の1つとして、実計算機上で動作するレベル1OSとし
てVMCPを用い、レベル1OS上の仮想アドレス空間
上で動作するレベル2OSとしてもVMCPを用い、レ
ベル2OS上の仮想アドレス空間上で動作するOS(以
下、レベル3OSという)を動作させる方法も、極く一
般的な方法として使用されている。
【0010】前述した従来技術は、VMの実CPUの共
用方法として、実CPUを時分割により各VMに割り当
てる方法をとっているが、以下、この種の従来技術を図
面により説明する。
【0011】図3は従来技術によるVMに対する実CP
Uの共用を説明する仮想計算機システムの構成を示すブ
ロック図である。図3において、101はMS、102
は実CPU、111はVMCP、121〜123は論理
CPUである。
【0012】図3において、実CPU(以下、PIPと
いう)102は、1台のPIP102からなり、このP
IP102は、MS101に接続されている。PIP1
02上では、VMの制御が可能なVMCP111が動作
している。このVMCP111の制御の下に複数のVM
が生成されており、複数のVMのそれぞれは、ここでは
論理CPU(以下、LIPという)と呼ばれる。そし
て、VMCP111は、図3においては、LIPA12
1、LIPB122及びLIPX123の複数のVMを
生成しており、LIPA121、LIPB122及びL
IPX123上では、それぞれ独立したOSが走行す
る。
【0013】図3に示す例は、PIP102上にVMC
P11を1つ走行させ、その制御の下に複数のVMを生
成し、生成されたそれぞれのVM上でゲストOSを走行
させる仮想計算機システムの例であり、従来のVMの一
般的な使用形態である。
【0014】近年、図3に例示した使用形態に加え、P
IP上にVMCP(以下、レベル1VMCPという)を
走行させ、その制御の下に複数のVMを生成し、生成さ
れたそれぞれのVM上に、さらにVMCP(以下、レベ
ル2VMCPという)を走行させ、レベル2VMCPの
制御の下に複数のVMを生成し、生成されたそれぞれの
VM上でゲストOSを走行させる仮想計算機システムが
実現され、一般化しつつある。
【0015】図4は前述のような前記仮想計算機システ
ムの一般的な構成を示すブロック図である。図4におい
て、211はレベル1VMCP、221はレベル1論理
CPU、231はレベル2VMCP、241、242は
レベル2論理CPU、251、252はゲストOSであ
り、他の符号は図3の場合と同一である。この図4に示
す例は、図3に示した従来技術におけるPIP102上
にレベル1VMCP211とレベル2VMCP231と
を搭載し、その上にVMを生成した仮想計算機システム
である。
【0016】図4において、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
は、図4においては、レベル2LIPA241及びレベ
ル2LIPB242の複数のVMを生成しており、レベ
ル2LIPA241及びレベル2LIPB242上で
は、それぞれ独立したOSであるゲストOS251及び
ゲストOS252が走行する。
【0017】図5は図4に示すように構成された仮想計
算機システムが動作する場合の、レベル1VMCP、レ
ベル2VMCP及びレベル3のゲストOSの制御の流れ
を示すフローチャートであり、以下、この図を参照し
て、図4に示すように構成された仮想計算機システムを
動作させる場合の制御の流れを説明する。
【0018】図4において、当初、レベル1VMCP2
11は、仮想計算機ID(以下、VMIDという)の値
を“A”として動作する。VMIDとは、実計算機上で
動作するVMにハードウェアによって自動的に、そし
て、それぞれのレベル1VMCP211固有に割り当て
られる値であり、TLBへの論理アドレスと絶対アドレ
スとのアドレス変換対の登録時に同時にTLBエントリ
の一部に登録され、このアドレス変換対が属するVMを
規程するものである。
【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社発
行の前記刊行物にその詳細が記述されている。
【0020】すなわち、レベル1VMCPは、まず、レ
ベル2VMCPを起動するために、前述のSD(L1S
Dと記す)を設定してSIE命令を発行する(ステップ
301、302)。
【0021】SIE命令によって起動されたレベル2V
MCP231は、その命令処理をVMとして実行する。
その際、レベル2VMCP231は、VMIDの値を
“B”として動作する。レベル2VMCP231は、レ
ベル2VMCPの制御の下で動作するレベル3のゲスト
OSを起動するために、SD(L2SDと記す)を用意
した後でSIE命令(以下、仮想SIE命令という)を
発行する(ステップ303、304)。
【0022】レベル2VMCP231が前述の仮想SI
E命令を発行すると、この仮想SIE命令は、インター
セプトされ制御がレベル1VMCP211に戻される。
【0023】ここで、レベル1VMCP211にインタ
ーセプトされた理由は、レベル2VMCP231には、
実ハードウェア資源を管理する手段が無いためである。
制御がレベル1VMCP211に戻されると、レベル1
VMCP211は、VMIDの値を“A”として動作す
るように切り替えられる。レベル1VMCP211は、
インターセプションの原因を調べ、その原因がレベル2
VMCP231が発行した仮想SIE命令であることを
突き止めると、仮想SIE命令をシミュレーションす
る。
【0024】レベル1VMCP211は、この仮想SI
E命令シミュレーションにおいて、レベル3のゲストO
Sを起動するための他のSD(以下、シャドーSDとい
う)を、レベル2VMCPが用意した仮想SD及びイン
ターセプションを受け付けたレベル1VMCPが走行し
ている実ハードウェア資源の割当て状況の双方に基づい
て用意し、このシャドーSDをオペランドとしてSIE
命令を発行する(ステップ305、306)。
【0025】シャドーSDをオペランドとしてSIE命
令が発行されると、制御はレベル3のゲストOSに移
り、このゲストOSは、VMIDの値を“C”として動
作するように切り替えられる。このシャドーSDをオペ
ランドとしてSIE命令を発行する操作は、あたかもレ
ベル2VMCPが仮想SDをオペランドとして仮想SI
E命令を実行するように行われる。
【0026】以後、レベル3のゲストOSが走行する
(ステップ307)。
【0027】図6はVMIDを具備したTLBの構成を
示すブロック図であり、次に、この図6を参照して、V
MIDを備えるTLBの制御について説明する。図6に
おいて、410はアドレス変換バッファ、420、47
0はセレクタ、430は出力レジスタ、440はVMI
Dレジスタ、450〜452は比較器、460はAND
ゲート、480はアドレス変換制御部である。
【0028】図6に示すTLBの構成において、アドレ
ス変換バッファ410は、IPがデータ及び命令語をア
クセスする際の論理アドレスを絶対アドレスに高速に変
換するためのハードウェア機構であり、エントリ有効フ
ラグ411(以下、Vフラグという)、該エントリが所
属するVMIDを保持するエントリ412(以下、VM
IDエントリという)、セグメントテーブル起点の所属
及びアドレスを保持するエントリ413(以下、STO
エントリという)、論理アドレスを保持するエントリ4
14(以下、論理アドレスエントリという)、論理アド
レスに対応する絶対アドレスを保持するエントリ415
(以下、絶対アドレスエントリという)及び該絶対アド
レスに付与されている主記憶キーを保持するエントリ4
16(以下、主記憶キーエントリという)の各エントリ
を備えて構成されている。そして、このアドレス変換バ
ッファ410は、前述の関連エントリを1組として、複
数組のエントリ群から構成される。
【0029】セレクタA420は、IPがデータ及び命
令語をアクセスする際の論理アドレスを入力として、ア
ドレス変換バッファ410の複数組のエントリ群から関
連エントリを1組選択するセレクタである。出力レジス
タ430は、アドレス変換バッファ410の複数組のエ
ントリ群から選択された1組の関連エントリの内容を一
時的に保持しておくレジスタである。
【0030】また、VMIDレジスタ440は、IPが
データ及び命令語をアクセスする際のVMIDを保持す
るエントリ441(以下、VMIDエントリという)及
び該VMIDに対応するSD絶対アドレスを保持するエ
ントリ442(以下、SDアドレスエントリという)か
ら構成される。VMIDレジスタ440は、前記の関連
エントリを1組として、複数組のエントリ群から構成さ
れる。
【0031】このVMIDレジスタ440は、IP上で
VMが走行する際、SIE命令のオペランドであるSD
のアドレスに対応したSDアドレスエントリ442が選
択され、該エントリ内のVMIDエントリ441が、ア
ドレス変換バッファ410内のVMIDエントリ412
と比較される。
【0032】比較器A450、比較器B451及び比較
器C452は、それぞれ、出力レジスタ430に一時的
に保持された、VMIDエントリ412、STOエント
リ413及び論理アドレスエントリ414の内容と、V
MIDレジスタ440のVMIDエントリ441の内
容、主記憶アクセスで使用されるセグメントテーブル起
点及び主記憶アクセスに伴う論理アドレスとを比較する
データの比較器である。
【0033】ANDゲート460は、比較器A450、
比較器B451及び比較器C452のそれぞれの比較結
果の論理積をとるANDゲートである。さらに、セレク
タB470は、出力レジスタ430に一時的に保持され
た絶対アドレスエントリ415及び主記憶キーエントリ
416の内容を、ANDゲート460から送出されるデ
ータの比較一致を示すヒット信号によって選択して送出
するセレクタであり、アドレス変換制御部480は、図
6にブロック図として示すTLBの動作全体を制御する
制御装置である。
【0034】次に、前述したように構成されるTLBを
用いたアドレス変換動作について説明する。
【0035】図6において、PIPから主記憶へのアク
セス要求が発行されると、その主記憶アクセス要求と論
理アドレスとが、信号線4A0を介してPIPからアド
レス変換バッファ410に送出されてくる。アドレス変
換バッファ410は、信号線4A0を介してPIPから
の主記憶アクセス要求と論理アドレスとを受け取ると、
論理アドレスをセレクタA420及び比較器C452に
転送する。
【0036】論理アドレスを受け取ったセレクタA42
0は、論理アドレスの値からアドレス変換バッファ41
0内の複数のエントリ群から1つのエントリを選択し、
これを読み出す要求を発行する。アドレス変換バッファ
410は、エントリ読み出し要求を受け取ると、該当す
る1つのエントリを読み出し、信号線4C0を介して出
力レジスタ430にその読み出しデータをセットする。
【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に入力する。
【0038】一方、アドレス変換バッファ410が、エ
ントリの読み出し要求を受け取り、該当する1つのエン
トリを読み出し、出力レジスタ430にその読み出しデ
ータをセットした後、そのTLBエントリがヒットして
いるか否かの比較が行われる。この比較は、以下に説明
する手順により行われる。
【0039】先ず、出力レジスタ430にセットされた
Vフラグ411の内容が、信号線4E0を介してAND
ゲート460に送られる。次に、出力レジスタ430に
セットされたVMIDエントリ412の内容が、信号線
4E1を介して比較器A450に送られて入力され、V
MIDレジスタ440のVMIDエントリ441の内容
が信号線4D0を介して比較器A450に入力され、比
較器A450において双方の入力データが比較される。
そして、この比較の結果の一致または不一致の信号が信
号線4E4を介してANDゲート460に送られる。
【0040】さらに、出力レジスタ430にセットされ
たSTOエントリ413の内容が、信号線4E2を介し
て比較器B451に送られて入力され、PIPから主記
憶へのアクセス要求が発行されたときの論理アドレスに
対応するセグメントテーブル指定(以下、STDとい
う)が、信号線4A1を介して比較器B451に入力さ
れ、比較器B451において双方の入力データが比較さ
れる。そして、この比較の結果の一致または不一致の信
号が信号線4E5を介してANDゲート460に送られ
る。
【0041】さらに、出力レジスタ430にセットされ
た論理アドレスエントリ414の内容が、信号線4E3
を介して比較器C452に送られて入力され、PIPか
ら主記憶へのアクセス要求が発行されたときの論理アド
レスが、信号線4A0を介して比較器C452に入力さ
れ、比較器C452において双方の入力データが比較さ
れる。この比較の結果の一致または不一致の信号が信号
線4E6を介してANDゲート460に送られる。
【0042】ANDゲート460は、前述した信号線4
E0、信号線4E4、信号線4E5及び信号線4E6を
介して入力されたそれぞれの一致信号または不一致信号
の論理積をとり、全ての信号が“1”(または一致)で
あれば、TLBヒット信号を“1”として、信号線4G
0に送出する。信号線4G0に送出されたTLBヒット
信号は、アドレス変換制御部480及びセレクタB47
0に入力される。
【0043】値“1”を有するTLBヒット信号を信号
線4G0を介して受け取ったセレクタB470は、出力
レジスタ430にセットされた絶対アドレスエントリ4
15及び主記憶キーエントリ416の内容を送出してい
る信号線4F0及び信号線4F1を選択し、アドレス変
換バッファ410の出力である論理アドレスに対応する
絶対アドレス及び該絶対アドレスに付与されている主記
憶キーを要求元のPIPに送り返す。
【0044】論理アドレスに対応する絶対アドレス及び
該絶対アドレスに付与されている主記憶キーを受け取っ
たPIPは、該絶対アドレスを用いてMSにアクセス要
求を出すと共にプログラム状態語内のキー(以下、PS
Wキーという)と該主記憶キーとを用いてキー制御プロ
テクションのチェックを行う。
【0045】また、アドレス変換制御部480は、
“1”のTLBヒット信号を信号線4G0を介して受け
取った場合、動的アドレス変換過程の起動が不要である
旨をPIPに通知し、“0”のTLBヒット信号を信号
線4G0を介して受け取った場合、動的アドレス変換
(以下、DATという)過程の起動が必要である旨をP
IPに通知し、DAT動作を起動する。このDATにつ
いての一般的仕様については、例えば、前述の刊行物に
その詳細が記述されている。
【0046】DAT動作の結果得られる絶対アドレス他
のアドレス情報は、信号線4B0を介して得られ、アド
レス変換バッファ410に登録される。すなわち、主記
憶へのアクセス要求に伴う論理アドレス、その時点のS
TD、VMID、DATの結果得られた絶対アドレス、
及び、主記憶キーが、アドレス変換バッファ410の論
理アドレスによって決定されるTLBエントリとして、
信号線4B0を介してVフラグ411、VMIDエント
リ412、STOエントリ413、論理アドレスエント
リ414、絶対アドレスエントリ415及び主記憶キー
エントリ416が登録される。
【0047】そして、この登録されたTLBエントリ
は、以降のMSアクセスのために使用される。この際の
TLBエントリ登録は、主としてハードウェア論理また
はマイクロプログラムによって行われる。また、DAT
動作によるVMIDレジスタ440のVMIDエントリ
441の内容及びSDアドレスエントリ442の内容の
登録は、信号線4H0及び信号線4H1を介して、主と
してマイクロプログラムによって行われる。
【0048】図7は図4に示すシステムにおける各レベ
ルのOS(VMCP)に対する従来技術によるMSの領
域割り当てを説明する図である。
【0049】図7に示すMSの領域割り当ての例は、従
来技術による仮想計算機システムのうち、実計算機上で
動作するレベル1OSが自らアドレス変換テーブルを作
成し、レベル1OS上の仮想アドレス空間上でVMとし
てのレベル2OSを動作させ、さらに、このレベル2O
Sもアドレス変換テーブルを生成して、仮想アドレス空
間を作り出しているシステム対する実MSの領域の割り
当ての例である。すなわち、図7は、実計算機上で動作
するレベル1OSとしてVMCP510が、レベル1O
S上の仮想アドレス空間上で動作するレベル2OSとし
てVMCP520が用いられ、レベル2OS上の仮想ア
ドレス空間上でレベル3OS530を動作させるシステ
ムのレベル1OSに割り当てられる実MS領域、レベル
1OS上の仮想アドレス空間上で動作するレベル2OS
に割り当てられる実MS領域及びレベル2OS上の仮想
アドレス空間上で動作するレベル3OSに割り当てられ
る実MS領域を示している。
【0050】図7に示す例において、レベル1VMCP
510に割り当てられる実MS領域は、領域Aで示した
領域であり、これは実MS全ての領域に等しい。レベル
1VMCP510上の仮想アドレス空間上で動作するレ
ベル2VMCP520に割り当てられる実MS領域は、
領域Bで示した領域であり、これは図7に示すように領
域Aの一部分に割り当てられる。また、レベル2VMC
P520上の仮想アドレス空間上で動作するレベル3O
S530に割り当てられる実MS領域は、領域Cで示し
た領域であり、これは図7に示すように領域Bの一部分
に割り当てられる。
【0051】そして、レベル1VMCP510は、割り
当てVMIDが“A”の値で走行し、レベル1VMCP
510上の仮想アドレス空間上で動作するレベル2VM
CP520は、割り当てVMIDが“B”の値で走行
し、さらに、レベル2VMCP520上の仮想アドレス
空間上で動作するレベル3OS530は、割り当てVM
IDが“C”の値で走行する。
【0052】すなわち、レベル1VMCP510は、割
り当てVMIDが“A”の値でMSの領域Aを使用して
走行し、レベル2VMCP520は、割り当てVMID
が“B”の値でMSの領域Aの一部分である領域Bを使
用して走行し、レベル3OS530は、割り当てVMI
Dが“C”の値で領域Bの一部分である領域Cを使用し
て走行する。
【0053】図8、図9は図4に示すように構成された
仮想計算機システムが動作する場合の、レベル1VMC
P、レベル2VMCP及びレベル3のゲストOSの制御
の流れを示すフローチャートである。
【0054】以下、図8、図9に示すフローを参照し
て、図4に示すように構成された仮想計算機システムを
動作させ、さらに、TLBのパージが必要となる場合
の、レベル1VMCP、レベル2VMCP及びレベル3
OSの制御の流れを、MSの割り当てが図7に示すよう
に行われているものとして説明する。
【0055】ステップ601: レベル1VMCP51
0は、レベル1VMCP510のVM上でレベル3のゲ
ストOSを走行させる事前処理として、レベル2VMC
P520を起動するためのSIE命令のオペランドであ
るSD(以下、L1SDという)を所定のようにイニシ
ャライズする。
【0056】ステップ602: レベル1VMCP51
0は、ステップ601でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。制御は、この時点か
ら、レベル1VMCP510からレベル2VMCP52
0に移る。
【0057】ステップ603: レベル1VMCP51
0のVM上でレベル2VMCP520が走行する。レベ
ル2VMCP520は、レベル2VMCP520のVM
上でレベル3OS530を走行させる事前処理として、
レベル3OS530を起動するためのSIE命令のオペ
ランドであるSD(以下、L2SDという)を所定のよ
うにイニシャライズする。
【0058】ステップ604: レベル2VMCP52
0は、ステップ603でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
【0059】ステップ605: ステップ604で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御は、レベル1VMCP510のVM上のレ
ベル2VMCP520からレベル1VMCP510に戻
される。
【0060】ステップ606: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。
【0061】ステップ607: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、その命
令のシミュレーションを行う。この例では、SIE命令
を実行しようとして命令インターセプションが発生した
のであるから、SIE命令のシミュレーションを行う。
【0062】レベル1VMCP510は、レベル1VM
CP510のVM上でレベル3OS530を走行させる
事前処理として、レベル2VMCP520を起動するた
めに用意されたL1SDとレベル3OS530を起動す
るために用意されたL2SDとを合成し、レベル1VM
CP510のVM上でレベル3OS530を走行させる
ための仮のSD(以下、シャドーSDという)を所定の
ようにイニシャライズする。
【0063】ステップ608: レベル1VMCP51
0は、ステップ607でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。
【0064】ステップ609: レベル2VMCP52
0のVM上でレベル3OS530が走行し、所定の処理
を実行する。
【0065】ステップ610: レベル2VMCP52
0のVM上でレベル3OS530が処理の実行中に、該
レベル3OS530からSet Storage Key Extended命令
(以下、SSKE命令という)が発行されたものとす
る。この命令は、MSの主記憶キーを書き替える命令で
あり、その詳細については前述の刊行物に記述されてい
る。
【0066】ステップ611: ステップ610で、レ
ベル2VMCP520のVM上のレベル3OS530が
SSKE命令を発行すると、このSSKE命令は、命令
インターセプション要因を持っているので命令インター
セプションが発生し、制御はレベル2VMCP520の
VM上のレベル3OS530からレベル1VMCP51
0に戻される。
【0067】ステップ612: レベル1VMCP51
0は、制御がレベル2VMCP520のVM上のレベル
3OS530からレベル1VMCP510に戻される要
因となったインターセプションコードを解析し、コード
毎のインターセプション処理を行う。この場合、インタ
ーセプションコードは、命令インターセプションを示し
ている。
【0068】ステップ613: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、この命
令のシミュレーションを行うか、または、レベル2VM
CP520に命令インターセプションを通知する。この
例では、レベル2VMCP520のVM上のレベル3O
S530がSSKE命令を実行しようとして命令インタ
ーセプションが発生したのであるから、レベル1VMC
P510は、レベル2VMCP520に命令インターセ
プションを通知する処理を行う。
【0069】すなわち、レベル1VMCP510は、レ
ベル2VMCP520に命令インターセプションを通知
するため、レベル1VMCP510のVM上でレベル2
VMCP520を走行させる事前処理として、レベル2
VMCP520を起動するために用意されたL1SDと
レベル3OS530を起動するために用意されたシャド
ウSDとを合成し、レベル2VMCP520を起動する
ためのL1SDをイニシャライズする。
【0070】ステップ614: レベル1VMCP51
0は、ステップ613でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。このときのL1SD
には、命令インターセプションが発生した旨を示すパラ
メータが格納され、さらに、L1SD内の命令アドレス
フィールドにはレベル2VMCP520が発行したSI
E命令の次の命令のアドレスが格納される。制御は、こ
の時点から、レベル1VMCP510からレベル2VM
CP520に移る。
【0071】ステップ615: レベル2VMCP52
0は、レベル1VMCP510から通知されたインター
セプションコードを解析し、コード毎のインターセプシ
ョン処理を行う。この場合、インターセプションコード
は、命令インターセプションを示している。
【0072】ステップ616: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、その命
令のシミュレーションを行う。この例では、SSKE命
令を実行しようとして命令インターセプションが発生し
たのであるから、レベル2VMCP520は、SSKE
命令のシミュレーションを行う。
【0073】ステップ617: レベル2VMCP52
0は、SSKE命令のシミュレーション処理を実行し、
SSKE命令のシミュレーション処理の一環として、S
SKE命令を発行する。
【0074】ステップ618: ステップ617で、レ
ベル2VMCP520がSSKE命令を発行すると、こ
のSSKE命令は、命令インターセプション要因を持っ
ているので命令インターセプションが発生し、制御はレ
ベル1VMCP510のVM上のレベル2VMCP52
0からレベル1VMCP510に戻される。
【0075】ステップ619: レベル1VMCP51
0は、制御がレベル2VMCP520からレベル1VM
CP510に戻される要因となったインターセプション
コードを解析し、コード毎のインターセプション処理を
行う。この場合、インターセプションコードは、命令イ
ンターセプションを示している。
【0076】ステップ620: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えば、インターセプションコ
ードが命令インターセプションを指していれば、この命
令のシミュレーションを行う。この例では、レベル1V
MCP510のVM上のレベル2VMCP520がSS
KE命令を実行しようとして命令インターセプションが
発生したのであるから、レベル1VMCP510は、S
SKE命令のシミュレーションを行う。
【0077】ステップ621: レベル1VMCP51
0上で、SSKE命令のシミュレーション処理が実行さ
れる。この処理により、レベル1VMCP510は、ま
ず、構成されている全IPに対し、実行中の処理を一時
中断させるロック指示を出力し、ロック指示を出したI
Pを除く全てのIPをロックする。そして、レベル1V
MCP510は、その後、SSKE命令のシミュレーシ
ョン処理の一環としてSSKE命令を発行する。このS
SKE命令の実行によって、VMIDの値が“A”であ
る全PIPのTLBエントリが部分パージされる。
【0078】ステップ622: レベル1VMCP51
0上でのSSKE命令のシミュレーション処理の一環と
して、Purge TLB命令(以下、PTLB命令という)
が発行される。このPTLB命令の実行によって、全て
のVMIDの値を持つTLBエントリが全てパージされ
る。レベル1VMCP510は、SSKE命令のシミュ
レーション処理の一環として、その後、ロック指示を出
したIPを除く構成されている全てのIPに対し、PT
LB命令の実行の指示を出力する。
【0079】全てのIPにおいて、PTLB命令の実行
が完了すると、レベル1VMCP510は、ロック指示
を出したIPを除く構成されている全IPに対し、処理
の一時中断を解除するアンロック指示が出し、ロック指
示を出したIPを除く全てのIPをアンロックする。ア
ンロックされたIPは、これにより、中断されていた処
理を続行する。
【0080】ステップ623: レベル1VMCP51
0は、レベル1VMCP510のVM上でレベル2VM
CP520を走行させる事前処理として、レベル2VM
CP520を起動するためのSIE命令のオペランドで
あるL1SDを所定のようにイニシャライズする。
【0081】ステップ624: レベル1VMCP51
0は、ステップ623でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。制御は、この時点か
ら、レベル1VMCP510からレベル2VMCP52
0に移る。
【0082】ステップ625: レベル1VMCP51
0のVM上でレベル2VMCP520が走行する。レベ
ル2VMCP520は、レベル3OS530が発行した
SSKE命令のシミュレーション処理を完了したので、
再度、レベル3OS530を起動する必要がある。そこ
で、レベル2VMCP520は、レベル2VMCP52
0のVM上でレベル3OS530を走行させる事前処理
として、SIE命令のオペランドであるL2SDを所定
のようにイニシャライズする。
【0083】ステップ626: レベル2VMCP52
0は、ステップ625でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
【0084】ステップ627: ステップ626で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御はレベル1VMCP510のVM上のレベ
ル2VMCP520からレベル1VMCP510に戻さ
れる。
【0085】ステップ628: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。
【0086】ステップ629: この処理の具対的処理
内容は、各種インターセプションコード毎に対応する処
理を別々に行うもので、例えばインターセプションコー
ドが命令インターセプションを指していれば、この命令
のシミュレーションを行う。この例では、SIE命令を
実行しようとして命令インターセプションが発生したの
であるから、レベル1VMCP510は、SIE命令の
シミュレーションを行う。レベル1VMCP510は、
レベル1VMCP510のVM上でレベル3OS530
を走行させる事前処理として、レベル2VMCP520
を起動するために用意されたL1SDとレベル3OS5
30を起動するために用意されたL2SDとを合成し、
レベル1VMCP510のVM上でレベル3OS530
を走行させるためのシャドーSDを所定のようにイニシ
ャライズする。
【0087】ステップ630: レベル1VMCP51
0は、ステップ629でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。
【0088】ステップ631: レベル2VMCP52
0のVM上でレベル3OS530が走行する。
【0089】前述したように、従来技術による仮想計算
機システムは、レベル3OS530が発行したSSKE
命令を、ステップ611からステップ631に至るレベ
ル1VMCP510とレベル2VMCP520との連携
動作によって実現している。
【0090】そして、前述の従来技術は、レベル3OS
530がVMIDの値を“C”として動作しているた
め、レベル3OS530が発行したSSKE命令をシミ
ュレーションするためにレベル1VMCP510が発行
したSSKE命令の実行に際し、レベル3OS530が
発行したSSKE命令のオペランドアドレスで指定され
る絶対アドレスを持つTLBエントリを、レベル1VM
CP510が発行したSSKE命令の実行の一環として
はパージすることが不可能であった。その理由は、レベ
ル1VMCP510が、VMIDの値として“A”を与
えられて動作しているためである。
【0091】このため、前述した従来技術は、前述のス
テップ621及びステップ622で説明したように、ま
ず、構成されている全IPに対し、実行中の処理を一時
中断させるロック指示を出し、ロック指示を出したIP
を除く全てのIPをロックする操作を行う必要があり、
SSKE命令の実行後にPTLB命令を発行して、全て
のTLBエントリをパージする必要があった。
【0092】さらに、前述した従来技術は、ロック指示
を出したIPを除く構成されている全てのIPに対し、
PTLB命令の実行の指示を出し、全てのIPでPTL
B命令の実行が完了すると、ロック指示を出したIPを
除く構成されている全IPに対してアンロック指示を出
す必要があった。
【0093】以上説明したように、従来技術にによる仮
想計算機システムは、レベル3OSが発行したSSKE
命令のようにTLBをパージする必要のある命令の処理
を、TLBをパージする必要のある命令を単独に実行こ
とによって行うことができず、VMCPの制御の下で前
述のようなの操作を要していた。この操作に要する処理
時間は、仮想計算機システムに対するオーバヘッドとな
り、仮想計算機システムの性能向上を阻害する大きな要
因となり、無視し得ない大きな性能上の問題を生じさせ
ている。
【0094】
【発明が解決しようとする課題】前述した従来技術は、
レベル3OSが発行したSSKE命令のようなTLBを
パージする必要のある命令の実行する場合に、その命令
の単独実行のみでTLBを完全に保守することが不可能
なものである。このため、前述の従来技術は、その命令
の単独実行に加え、VMCPが、構成されている全IP
に対し、実行中の処理を一時中断させるロック指示が出
し、ロック指示を出したIPを除く全てのIPをロック
する操作を行い、SSKE命令のようなTLBをパージ
する必要のある命令の実行後、PTLB命令を発行して
全てのTLBエントリをパージするという操作を行う必
要があった。
【0095】また、前述の従来技術は、ロック指示を出
したIPを除く構成されている全てのIPに対し、PT
LB命令の実行の指示を出し、全てのIPでPTLB命
令の実行が完了すると、ロック指示を出したIPを除く
構成されている全IPに対し、アンロック指示を出す操
作を必要としている。
【0096】前述の従来技術は、これらの操作に要する
処理時間が、仮想計算機システムに対するオーバヘッド
となり、仮想計算機システムの性能の向上を阻害してい
るという問題点を有している。
【0097】本発明の目的は、前記従来技術の問題点を
解決し、レベル3OSが発行したSSKE命令のような
なTLBをパージする必要のある命令の実行に際して、
その命令の単独実行に加え、構成されている全IPに対
するロック指示の送出、全IPの全てのTLBエントリ
に対するPTLB命令を用いたTLBパージ操作、及
び、ロック指示を出された構成されている全IPに対す
るアンロック指示の送出操作によるオーバヘッドを除去
し、仮想計算機システムの性能の向上を図ることができ
る仮想計算機システムのアドレス変換バッファ制御方式
を提供することにある。
【0098】
【課題を解決するための手段】本発明によれば前記目的
は、アドレス変換バッファのパージを行うに当たり、V
MIDを用いたアドレス変換バッファエントリを選択的
にパージする機能を、以下に説明するように構成するこ
とにより達成される。
【0099】すなわち、前記目的は、その時点で走行し
ているIP上のVMの持つVMIDをエントリとして備
えるVMIDレジスタを具備し、VMの発行するアドレ
ス変換バッファのパージを伴う命令を実行するに当た
り、そのVMの持つVMIDと一致するVMIDエント
リを持つアドレス変換バッファのエントリを選択的にパ
ージする機能に加え、1つまたはそれ以上の他のVMの
持つVMIDを格納するレジスタを具備し、このVMI
Dレジスタを用いて、前記VMの持つVMIDと一致し
ない他のVMIDエントリを持つアドレス変換バッファ
エントリをも選択的にパージする機能を備えることによ
り達成される。
【0100】
【作用】本発明による仮想計算機システムのアドレス変
換バッファ制御方式によれば、VMが発行するアドレス
変換バッファのパージを伴う命令の実行に当たり、IP
内の前記VMの持つVMIDを格納するカレントなVM
IDレジスタ内の対応エントリを用い、前記VMの持つ
VMIDと一致するVMIDエントリを持つアドレス変
換バッファエントリのみを選択し、前記命令の実行に同
期してハードウェアによってパージ動作を行ことができ
る。また。前記VMの持つVMIDとは別の特定のVM
IDエントリを持つアドレス変換バッファエントリを選
択的にパージする動作は、VMCPがVMを起動する際
に、VMを起動する命令のオペランドのパラメータを設
定ことにより、VMを起動する命令の実行の一部として
行うようにすることができる。
【0101】前述により、本発明の仮想計算機システム
は、レベル3OSが発行したTLBをパージする必要の
ある命令を実行する際、この命令の単独実行に加え、構
成されている全IPに対し、実行中の処理を一時中断さ
せるロック指示を出し、ロック指示を出したIPを除く
全てのIPをロックする操作を行い、TLBをパージす
る必要のある命令の実行後PTLB命令を発行して、全
てのTLBエントリをパージするという従来技術の場合
のような処理操作が不要となり、また、ロック指示を出
したIPを除く構成されている全てのIPに対し、PT
LB命令の実行の指示を出し、全てのIPにおけるPT
LB命令の実行が完了すると、ロック指示を出したIP
を除く構成されている全IPに対し、アンロック指示を
出す操作も不要となる。
【0102】従って、本発明によれば、従来技術で必要
であったVMCPによる前記操作に要する処理時間、す
なわち、システムに対するオーバヘッドを除去すること
ができるので、仮想計算機システムの性能を格段に向上
させることができる。
【0103】
【実施例】以下、本発明による仮想計算機システムのア
ドレス変換バッファ制御方式の一実施例を図面を用いて
詳細に説明する。
【0104】図1、図2は本発明による仮想計算機シス
テムのアドレス変換バッファ制御方式の処理手順を示す
フローチャートであり、図4により説明したように構成
された仮想計算機システムが動作する場合の、レベル1
VMCP、レベル2VMCP及びレベル3のゲストOS
の制御の流れを示している。
【0105】以下、各レベルのOSに対するMSの割り
当てが図7により説明したように行われているものとし
て、図1、図2を参照して本発明の一実施例における処
理手順を説明する。
【0106】ステップ701: レベル1VMCP51
0は、レベル1VMCP510のVM上でレベル3のゲ
ストOSを走行させる事前処理として、レベル2VMC
P520を起動するためのSIE命令のオペランドであ
るL1SDを所定のようにイニシャライズする。
【0107】ステップ702: レベル1VMCP51
0は、ステップ701でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。制御は、この時点か
ら、レベル1VMCP510からレベル2VMCP52
0に移る。
【0108】ステップ703: レベル1VMCP51
0のVM上でレベル2VMCP520が走行する。レベ
ル2VMCP520は、レベル2VMCP520のVM
上でレベル3OS530を走行させる事前処理として、
レベル3OS530を起動するためのSIE命令のオペ
ランドであるL2SDを所定のようにイニシャライズす
る。
【0109】ステップ704: レベル2VMCP52
0は、ステップ703でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
【0110】ステップ705: ステップ704で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御は、レベル1VMCP510のVM上のレ
ベル2VMCP520からレベル1VMCP510に戻
される。
【0111】ステップ706: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。レベル1VMCP510は、インターセプ
ションコードが命令インターセプションを指しているの
で、該命令のシミュレーションを行う。
【0112】この例では、SIE命令を実行しようとし
て命令インターセプションが発生したのであるから、S
IE命令のシミュレーションを行う。そして、レベル1
VMCP510は、レベル1VMCP510のVM上で
レベル3OS530を走行させる事前処理として、レベ
ル2VMCP520を起動するために用意されたL1S
Dとレベル3OS530を起動するために用意されたL
2SDとを合成し、レベル1VMCP510のVM上で
レベル3OS530を走行させるためのシャドーSDを
所定のようにイニシャライズする。
【0113】ステップ707: レベル1VMCP51
0は、ステップ706でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。
【0114】ステップ708: レベル2VMCP52
0のVM上でレベル3OS530が走行し、所定の処理
を実行する。
【0115】ステップ709: レベル2VMCP52
0のVM上でレベル3OS530が処理の実行中に、該
レベル3OSからMSの主記憶キーを書き替える命令で
あるSSKE命令が発行されたものとする。
【0116】ステップ710: ステップ709で、レ
ベル2VMCP520のVM上のレベル3OS530が
SSKE命令を発行すると、このSSKE命令は、命令
インターセプション要因を持っているので命令インター
セプションが発生し、制御はレベル2VMCP520の
VM上のレベル3OS530からレベル1VMCP51
0に戻される。
【0117】ステップ711: レベル1VMCP51
0は、制御がレベル2VMCP520のVM上のレベル
3OS530からレベル1VMCP510に戻される要
因となったインターセプションコードを解析し、コード
毎のインターセプション処理を行う。この場合、インタ
ーセプションコードは、命令インターセプションを示し
ている。
【0118】レベル1VMCP510は、インターセプ
ションコードが命令インターセプションを指しているの
で、レベル2VMCP520に命令インターセプション
を通知する。この例では、レベル2VMCP520のV
M上のレベル3OS530がSSKE命令を実行しよう
として命令インターセプションが発生したのであるか
ら、レベル1VMCP510は、レベル2VMCP52
0に命令インターセプションを通知する。レベル2VM
CP520に命令インターセプションを通知するため、
レベル1VMCP510は、レベル1VMCP510の
VM上でレベル2VMCP520を走行させる事前処理
として、レベル2VMCP520を起動するために用意
されたL1SDとレベル3OS530を起動するために
用意されたシャドウSDとを合成し、レベル2VMCP
520を起動するためのL1SDをイニシャライズす
る。
【0119】ステップ712: レベル1VMCP51
0は、ステップ711でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。このときのL1SD
には、命令インターセプションが発生した旨を示すパラ
メータが格納され、また、L1SD内の命令アドレスフ
ィールドには、レベル2VMCP520が発行したSI
E命令の次の命令のアドレスが格納される。制御は、こ
の時点から、レベル1VMCP510からレベル2VM
CP520に移る。
【0120】ステップ713: レベル2VMCP52
0は、レベル1VMCP510から通知されたインター
セプションコードを解析し、コード毎のインターセプシ
ョン処理を行う。この場合、インターセプションコード
は、命令インターセプションを示しているので、この命
令のシミュレーションが行われる。この例では、SSK
E命令を実行しようとして命令インターセプションが発
生したのであるから、レベル2VMCP520は、SS
KE命令のシミュレーションを行う。
【0121】ステップ714: レベル2VMCP52
0は、SSKE命令のシミュレーション処理を実行し、
SSKE命令のシミュレーション処理の一環として、S
SKE命令を発行す。
【0122】ステップ715: ステップ714で、レ
ベル2VMCP520がSSKE命令を発行すると、こ
のSSKE命令は、命令インターセプション要因を持っ
ているので命令インターセプションが発生し、制御はレ
ベル1VMCP510のVM上のレベル2VMCP52
0からレベル1VMCP510に戻される。
【0123】ステップ716: レベル1VMCP51
0は、制御がレベル2VMCP520からレベル1VM
CP510に戻される要因となったインターセプション
コードを解析し、コード毎のインターセプション処理を
行う。この場合、インターセプションコードは、命令イ
ンターセプションを示している。レベル1VMCP51
0は、インターセプションコードが命令インターセプシ
ョンを指しているので、該命令のシミュレーションを行
う。
【0124】この例では、レベル1VMCP510のV
M上のレベル2VMCP520がSSKE命令を実行し
ようとして命令インターセプションが発生したのである
から、レベル1VMCP510が、SSKE命令のシミ
ュレーションを行う。すなわち、レベル1VMCP51
0上で、SSKE命令のシミュレーション処理が実行さ
れる。具体的には、レベル1VMCP510及びハード
ウェアの持つレベル2SSKE命令発行フラグを“1”
にセットする処理が行われる。
【0125】ステップ717: レベル1VMCP51
0は、レベル2VMCP520を再度起動するため、レ
ベル1VMCP510のVM上でレベル2VMCP52
0を走行させる事前処理として、レベル2VMCP52
0を起動するために用意されたL1SDとレベル3OS
530を起動するために用意されたシャドウSDとを合
成し、レベル2VMCP520を起動するためのL1S
Dをイニシャライズする。このときのL1SD内の命令
アドレスフィールドには、レベル2VMCP520が発
行したSSKE命令のアドレスが格納される。
【0126】ステップ718: レベル1VMCP51
0は、ステップ717でイニシャライズされたSIE命
令のオペランドであるL1SDをオペランドとしてSI
E命令を発行し、レベル1VMCP510のVM上でレ
ベル2VMCP520を起動する。制御は、この時点か
ら、レベル1VMCP510からレベル2VMCP52
0に移る。
【0127】ステップ719: レベル2VMCP52
0は、SSKE命令のシミュレーション処理を再開し、
再度SSKE命令を発行する。このSSKE命令が発行
されても、このSSKE命令実行時点で、レベル1VM
CP510及びハードウェアの持つレベル2SSKE命
令発行フラグが“1”とされているため、このSSKE
命令は、命令インターセプション要因を持っているが、
その命令インターセプションが抑止され、制御は、レベ
ル1VMCP510のVM上のレベル2VMCP520
からレベル1VMCP510に戻されず、レベル2VM
CP520上でそのまま実行される。
【0128】このSSKE命令の実行によって、VMI
Dの値が“A”である自PIPのTLBエントリが部分
パージされ、さらに、ハードウェアの持つレベル2SS
KE命令発行フラグが“1”であることにより、全ての
他PIPのVMIDの値が有効なTLBエントリがパー
ジされる。このTLBエントリのパージ動作は、SSK
E命令の実行に同期して行われる。
【0129】ステップ720: レベル2VMCP52
0は、レベル3OS530が発行したSSKE命令のシ
ミュレーション処理を完了したので、再度、レベル3O
S530を起動する必要がある。このため、レベル2V
MCP520は、レベル2VMCP520のVM上でレ
ベル3OS530を走行させる事前処理として、SIE
命令のオペランドであるL2SDを所定のようにイニシ
ャライズする。
【0130】ステップ721: レベル2VMCP52
0は、ステップ720でイニシャライズされたSIE命
令のオペランドであるL2SDをオペランドとしてSI
E命令を発行し、レベル2VMCP520のVM上でレ
ベル3OS530を起動しようとする。
【0131】ステップ722: ステップ721で、レ
ベル2VMCP520のVM上でレベル3OS530を
起動しようとして、レベル2VMCP520がSIE命
令を発行すると、このSIE命令は、命令インターセプ
ション要因を持っているので命令インターセプションが
発生し、制御はレベル1VMCP510のVM上のレベ
ル2VMCP520からレベル1VMCP510に戻さ
れる。
【0132】ステップ723: レベル1VMCP51
0は、制御がレベル1VMCP510のVM上のレベル
2VMCP520からレベル1VMCP510に戻され
る要因となったインターセプションコードを解析し、コ
ード毎のインターセプション処理を行う。この場合、イ
ンターセプションコードは、命令インターセプションを
示している。レベル1VMCP510は、インターセプ
ションコードが命令インターセプションを指しているの
で、この命令のシミュレーションを行う。この例では、
SIE命令を実行しようとして命令インターセプション
が発生したのであるから、SIE命令のシミュレーショ
ンが行われる。
【0133】レベル1VMCP510は、レベル1VM
CP510のVM上でレベル3OS530を走行させる
事前処理として、レベル2VMCP520を起動するた
めに用意されたL1SDとレベル3OS530を起動す
るために用意されたL2SDとを合成し、レベル1VM
CP510のVM上でレベル3OS530を走行させる
ためのシャドーSDを所定のようにイニシャライズす
る。
【0134】ステップ724: レベル1VMCP51
0は、レベル1VMCP510の持つレベル2SSKE
命令発行フラグが“1”であるか否かをテストする。こ
のデストで、レベル1VMCP510の持つレベル2S
SKE命令発行フラグが“1”であれば、ステップ72
5へ行き、“0”であればステップ726ヘ行く。
【0135】ステップ725: このステップは、レベ
ル1VMCP510の持つレベル2SSKE命令発行フ
ラグが“1”である場合に実行される。そして、レベル
1VMCP510は、シャドーSDのLast Host CPU Ad
dress(以下、LHCPUAという)フィールドに、1
6進の“FFFF”をセットする。SDのLHCPUA
フィールドに、16進の“FFFF”をセットすること
の意味は、SIE命令の実行時、PIPがTLBの全エ
ントリをパージすることを指定することである。その
後、レベル1VMCP510は、レベル1VMCP51
0及びハードウェアの持つレベル2SSKE命令発行フ
ラグを“0”にリセットする。
【0136】ステップ726: レベル1VMCP51
0は、ステップ724でイニシャライズされたSIE命
令のオペランドであるシャドーSDをオペランドとして
SIE命令を発行し、レベル1VMCP510のVM上
でレベル3OS530を起動する。この起動は、レベル
2VMCP520のVM上でレベル3OS530を起動
するのと等価である。制御は、この時点から、レベル1
VMCP510からレベル3OS530に移る。
【0137】ステップ727: レベル2VMCP52
0のVM上でレベル3OS530が走行する。
【0138】前述した本発明の一実施例によれば、異な
るVMIDを持つTLBエントリをパージするに当た
り、TLBエントリの操作が必要な命令のシミュレーシ
ョン、例えば、レベル1VMCP510上で、SSKE
命令のシミュレーション処理を実行するとき、レベル1
VMCP510及びハードウェアの持つレベル2SSK
E命令発行フラグを“1”にセットし、その後レベル2
VMCP520が、SSKE命令のシミュレーション処
理を再開し、再度SSKE命令を発行した時点でレベル
1VMCP510及びハードウェアの持つレベル2SS
KE命令発行フラグが“1”であることを条件として、
命令インターセプションを抑止し、制御をレベル1VM
CP510のVM上のレベル2VMCP520からレベ
ル1VMCP510に戻さず、レベル2VMCP520
上でそのまま実行させることができる。
【0139】このSSKE命令の実行によって、VMI
Dの値が“A”である自PIPのTLBエントリを部分
パージすることができ、また、ハードウェアの持つレベ
ル2SSKE命令発行フラグが“1”であることによ
り、全ての他のPIPのVMIDの値が有効なTLBエ
ントリをパージすることができる。しかも、このTLB
エントリのパージ動作を、インターセプションを伴わず
に、SSKE命令の実行に同期して行うことができる。
【0140】さらに、前述した本発明の一実施例は、シ
ャドーSDをオペランドとしてSIE命令を発行し、レ
ベル1VMCP510のVM上でレベル3OS530を
起動する前に、レベル1VMCP510の持つレベル2
SSKE命令発行フラグが“1”であるか否かをテスト
し、レベル1VMCP510の持つレベル2SSKE命
令発行フラグが“1”であれば、シャドーSDのLHC
PUAフィールドに、16進の“FFFF”をセットす
るようにしている。この16進の“FFFF”をセット
する動作により、SIE命令の実行時、PIPがTLB
の全エントリをパージすることができる。
【0141】その結果、レベル1VMCP510は、S
SKE命令のシミュレーション処理を実行する場合、構
成されている全IPのうち、ロック指示を出したIPを
除く全てのIPに対し、実行中の処理を一時中断させる
ロック指示を出す第1のロック処理を行い、その後、S
SKE命令のシミュレーション処理の一環として、SS
KE命令を発行し、このSSKE命令の実行によって、
現在走行中のIPが保持しているVMIDと一致する全
PIPのTLBエントリが部分パージし、また、SSK
E命令のシミュレーション処理の一環として、PTLB
命令を発行する第1のTLBパージ処理を行い、このP
TLB命令の実行によって、全てのVMIDの値を持つ
TLBエントリをパージし、その上、SSKE命令のシ
ミュレーション処理の一環として、ロック指示を出した
IPを除く全てのIPに対し、PTLB命令の実行の指
示が出す第2のTLBパージ処理を行い、全てのIPに
おいて、PTLB命令の実行が完了すると、ロック指示
を出したIPを除く全IPに対し、処理の一時中断を解
除するアンロック指示を出す第2のロック処理を行い、
ロック指示を出したIPを除く全てのIPをアンロック
するという、従来技術の場合のような長大な処理を行う
ことなくTLBのエントリをパージすることができる。
【0142】前述した本発明の一実施例は、これによ
り、オーバヘッドとして仮想計算機システムの性能向上
を阻害する大きな要因であった一連のソフトウェアに依
るロック処理を伴うことなくTLBパージ処理行うこと
ができ、仮想計算機システムの性能を格段に向上させる
ことができる。
【0143】前述した本発明の一実施例は、自IPでカ
レントに持つVMID以外のVMIDを持つTLBエン
トリをパージをするための手段として、シャドーSDの
LHCPUAフィールドに、16進の“FFFF”をセ
ットすることにより、SIE命令の実行時、PIPがT
LBの全エントリをパージし、他IPでカレントに持つ
VMID以外のVMIDを持つTLBエントリのパージ
をするための手段として、ハードウェアの持つレベル2
SSKE命令発行フラグの状態に依り、全ての他PIP
のVMIDの値が有効なTLBエントリをパージし、か
つ、このTLBエントリのパージ動作を、SSKE命令
の実行に同期して行うとして説明した。
【0144】本発明は、前述以外に、自IPの持つVM
IDと一致するVMIDエントリを持つアドレス変換バ
ッファエントリのみを選択的にパージする機能に加え、
1つまたはそれ以上の他のVMの持つVMIDを格納す
るレジスタを用い、前記VMの持つVMIDと一致しな
い特定のVMIDエントリを持つアドレス変換バッファ
エントリをも選択的にパージする機能を併せ持つように
構成してもよい。
【0145】また、本発明は、前記VMにおいて、VM
が発行するアドレス変換バッファのパージを伴う命令の
実行にあたり、前記VMが持つVMIDを格納するレジ
スタを用い、そのVMの持つVMIDと一致するVMI
Dエントリを持つアドレス変換バッファエントリの選択
的なパージ動作を、前記命令の実行に同期してハードウ
ェアによって行い、また、そのVMの持つVMIDと一
致しない特定のVMIDエントリを持つアドレス変換バ
ッファエントリの選択的なパージを、1つまたはそれ以
上の他のVMの持つVMIDを格納するレジスタを用い
ることにより、そのVMの持つVMIDと異なるVMI
Dと一致するVMIDエントリを持つアドレス変換バッ
ファエントリの選択的なパージ動作も、前記VMの持つ
VMIDと一致するVMIDエントリを持つアドレス変
換バッファエントリの選択的なパージ動作の実行と同時
に、同期してハードウェアによって行うように構成して
制御するようにしてもよい。
【0146】
【発明の効果】以上説明したように本発明によれば、仮
想計算機システムにおいて、例えば、レベル3OSが発
行したTLBをパージする必要のある命令を実行する
際、他のIPに対するロック操作処理、アンロック操作
処理を行うことなく、TLBのパージを行うことがで
き、これらの操作に要する処理時間であるシステムに対
するオーバヘッドを除去することができ、仮想計算機シ
ステムの性能の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明による仮想計算機システムのアドレス変
換バッファ制御方式の処理手順を示すフローチャートで
ある。
【図2】本発明による仮想計算機システムのアドレス変
換バッファ制御方式の処理手順を示すフローチャートで
ある。
【図3】従来技術によるVMに対する実CPUの共用を
説明する仮想計算機システムの構成を示すブロック図で
ある。
【図4】従来技術によるVMに対する実CPUの共用を
説明する仮想計算機システムの他の構成を示すブロック
図である。
【図5】図4に示すように構成された仮想計算機システ
ムが動作する場合の、レベル1VMCP、レベル2VM
CP及びレベル3のゲストOSの制御の流れを示すフロ
ーチャートである。
【図6】VMIDを具備したTLBの構成を示すブロッ
ク図である。
【図7】図4に示すシステムにおける各レベルのOS
(VMCP)に対する従来技術によるMSの領域割り当
てを説明する図である。
【図8】図4に示すように構成された仮想計算機システ
ムが動作する場合の、レベル1VMCP、レベル2VM
CP及びレベル3のゲストOSの制御の流れを示すフロ
ーチャートである。
【図9】図4に示すように構成された仮想計算機システ
ムが動作する場合の、レベル1VMCP、レベル2VM
CP及びレベル3のゲストOSの制御の流れを示すフロ
ーチャートである。
【符号の説明】
251、252はゲストOS 410はアドレス変換
バッファ、420、470はセレクタ、430は出力レ
ジスタ、440はVMIDレジスタ、450〜452は
比較器、460はANDゲート、480はアドレス変換
制御部である。 101、550 主記憶装置 102 実CPU 111 仮想計算機制御プログラム(VMCP) 121〜123 論理CPU 211、510 レベル1VMCP 231、520 レベル2VMCP 221 レベル1論理CPU 241、242 レベル2論理CPU 251、252、530 ゲストOS 410 アドレス変換バッファ 420、470 セレクタ 430 出力レジスタ 440 VMIDレジスタ 450、451、452 比較器 460 ANDゲート 480 アドレス変換制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 天野 英昭 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 アドレス変換機能を備える中央処理装置
    と、主記憶装置と、仮想計算機IDエントリを備えるア
    ドレス変換バッファ及び1つまたはそれ以上の仮想計算
    機の個々の仮想計算機を識別するために割り当てられる
    仮想計算機IDを格納するレジスタを備えるアドレス変
    換機能とを備えて構成される情報処理システム上に構築
    される仮想計算機システムにおいて、前記中央処理装置
    上で走行する仮想計算機が発行するアドレス変換バッフ
    ァのパージを伴う命令の実行に当たり、前記仮想計算機
    の持つ仮想計算機IDと一致する仮想計算機IDエント
    リを持つアドレス変換バッファエントリのみを選択的に
    パージすると共に、前記仮想計算機が持つ仮想計算機I
    Dと一致しない他の仮想計算機が持つ仮想計算機IDで
    ある特定の仮想計算機IDエントリを持つアドレス変換
    バッファエントリをも選択的にパージすることを特徴と
    する仮想計算機システムのアドレス変換バッファ制御方
    式。
  2. 【請求項2】 前記仮想計算機の持つ仮想計算機IDと
    一致する仮想計算機IDエントリを持つアドレス変換バ
    ッファエントリのみを選択的にパージする動作は、前記
    命令の実行に同期してハードウェアによって行われ、前
    記仮想計算機が持つ仮想計算機IDと一致しない他の仮
    想計算機が持つ仮想計算機IDである特定の仮想計算機
    IDエントリを持つアドレス変換バッファエントリを選
    択的にパージする動作は、仮想計算機制御プログラムが
    仮想計算機を起動する際、仮想計算機を起動する命令の
    オペランドの設定を制御することによって実現されるこ
    とを特徴とする請求項1記載の仮想計算機システムのア
    ドレス変換バッファ制御方式。
JP5279658A 1993-11-09 1993-11-09 仮想計算機システムのアドレス変換バッファ制御方式 Pending JPH07134659A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5279658A JPH07134659A (ja) 1993-11-09 1993-11-09 仮想計算機システムのアドレス変換バッファ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5279658A JPH07134659A (ja) 1993-11-09 1993-11-09 仮想計算機システムのアドレス変換バッファ制御方式

Publications (1)

Publication Number Publication Date
JPH07134659A true JPH07134659A (ja) 1995-05-23

Family

ID=17614059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5279658A Pending JPH07134659A (ja) 1993-11-09 1993-11-09 仮想計算機システムのアドレス変換バッファ制御方式

Country Status (1)

Country Link
JP (1) JPH07134659A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508598A (ja) * 2004-07-30 2008-03-21 インテル コーポレイション アーキテクチャイベントの間のプロセッサリソースの保持

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508598A (ja) * 2004-07-30 2008-03-21 インテル コーポレイション アーキテクチャイベントの間のプロセッサリソースの保持
JP2011008805A (ja) * 2004-07-30 2011-01-13 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
JP2011023017A (ja) * 2004-07-30 2011-02-03 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
JP2011181094A (ja) * 2004-07-30 2011-09-15 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
JP2011181095A (ja) * 2004-07-30 2011-09-15 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
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
US9152561B2 (en) 2004-07-30 2015-10-06 Intel Corporation Maintaining processor resources during architectural events
US9164901B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
US9164918B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
US9507730B2 (en) 2004-07-30 2016-11-29 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
US10740249B2 (en) 2004-07-30 2020-08-11 Intel Corporation Maintaining processor resources during architectural events

Similar Documents

Publication Publication Date Title
JPH0784883A (ja) 仮想計算機システムのアドレス変換バッファパージ方法
US10970104B2 (en) Resource access method applied to computer and computer
US8924959B2 (en) Switching hardware devices in virtual machine systems using resource converting relationships
JP3225804B2 (ja) 入出力チャネルの拡張方式
US5996026A (en) Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information
US5621912A (en) Method and apparatus for enabling monitoring of guests and native operating systems
JP2839201B2 (ja) 仮想計算機システム
WO2020261180A1 (en) Sharing multimedia physical functions in a virtualized environment on a processing unit
US20060184938A1 (en) Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
US5584042A (en) Dynamic I/O data address relocation facility
US5652853A (en) Multi-zone relocation facility computer memory system
JPH0635731A (ja) 入出力チャネル・サブシステム・コール命令制御方法およびcecの解釈実行方法
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
CA2344597A1 (en) Hypervisor virtualization of os console and operator panel
JPS6013501B2 (ja) 仮想計算機システムにおけるチヤネルアドレス制御方式
CN110058946B (zh) 设备虚拟化方法、装置、设备及存储介质
JPH07262093A (ja) 記憶装置の領域再構成制御方式
JP3186244B2 (ja) 仮想計算機システム
US20170249106A1 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
JPH06110715A (ja) 仮想計算機システムにおける計算機資源の動的割付け方法
CN116860393A (zh) 一种lxc容器显卡直通的方法
JPH07134659A (ja) 仮想計算機システムのアドレス変換バッファ制御方式
JP3490212B2 (ja) 情報処理装置の入出力チャネル拡張方法
JPH07134658A (ja) 仮想計算機システムのアドレス変換バッファ制御方式
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式