JP2523502B2 - リカ−シブ仮想計算機の制御方式 - Google Patents

リカ−シブ仮想計算機の制御方式

Info

Publication number
JP2523502B2
JP2523502B2 JP61129950A JP12995086A JP2523502B2 JP 2523502 B2 JP2523502 B2 JP 2523502B2 JP 61129950 A JP61129950 A JP 61129950A JP 12995086 A JP12995086 A JP 12995086A JP 2523502 B2 JP2523502 B2 JP 2523502B2
Authority
JP
Japan
Prior art keywords
guest
address
virtual
host
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP61129950A
Other languages
English (en)
Other versions
JPS62286129A (ja
Inventor
英典 梅野
誠司 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61129950A priority Critical patent/JP2523502B2/ja
Publication of JPS62286129A publication Critical patent/JPS62286129A/ja
Application granted granted Critical
Publication of JP2523502B2 publication Critical patent/JP2523502B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、リカーシブ仮想計算機の制御方式に関し、
特に仮想計算機の下での仮想計算機(以下、リカーシブ
VMと呼ぶ)を動作するときのアドレス変換方式に関する
ものである。
〔従来の技術〕
従来より、1台の実計算機システム(以下、ホスト実
計算機システムと呼ぶ)下で複数のオペレーティングシ
ステム(以下OSと記す)を同時に走行させることができ
る仮想計算機システムが、一般に実用化されている。
一方、仮想計算機(以下、VMと記す)上で仮想計算機
制御プログラム(以下、VMCPと記す)を動作させ、さら
にその下でVMを生成し(生成されたVMを、リカーシブVM
と呼ぶ)、そのリカーシブVM上で一般のOSを動作させる
ことは、性能上のオーバヘッドが大きいために、実用的
ではなかった。このような動作方法は、リカーシブ方式
と呼ばれており、VMCPのテスト用に使用されるものであ
る。
ところで、IBM社の仮想計算機VM/XA Systems Facil
ity(例えば、文献IBMプログラム・アナウンスメント
(「Virtual Machine/Extended Architecture(VM/X
A)Systems Facility」IBM Program Announcement
Feb.12.1985参照)では、旧版のVMCPとその下のアプリ
ケーションプログラムを旧来のアーキテクチャを有する
VMの下で動作させるという方法が取られている。
しかし、この方法は、特定の唯一の優先VM上でのみ可
能なものであり、複数のVM上でのVMCPの走行を考えたも
のではない。VMCPの開発テストは、複数の担当者の間で
同時に進行されるため、複数台のVM上でVMCPを走行させ
て、テストできるようにすることが望ましい。しかし、
従来の仮想計算機システム(VMS)の動作するホスト実
計算機システムには、特にリカーシブVM用の支援機構が
ないため、リカーシブVM上でOSを動作させ、VMCPをテス
トすることは、たとえ1台のVMCPであっても困難であっ
た。前述のIBM社のVM/XA Systems Facilityにおいて
は、前述の文献に示すように、一般のVM上でのVMCPの走
行が可能であると言っているが、前述の理由によりVMCP
のテスト用には実用性が低いものと思われる。
〔発明が解決しようとする問題点〕
VM上でVMCPを動作させ、その下でさらにVMを動作させ
た場合、従来の技術においては、次のような問題点があ
る。以下、ホスト実計算機システム上のVMCP下のVMを
「ゲスト」と呼び、ゲスト上で動作しているVMCPが生成
し、管理するVMを「グランドゲスト」と呼ぶ。
(1)従来のホスト実計算機システムのVM高速化機構
は、ゲストに対しては適用可能であったが、グランドゲ
ストに対しては、特殊なゲスト(例えば、前述の文献に
示すIBM社のVM/XA Systems Facilityにおける唯一の
優先VM)以外は、適用不可能であった。このため、一般
のゲストにおいて、グランドゲスト上でOSを動作させ
て、ゲスト上のVMCPをテストすることは、性能上実用困
難であった。
(2)仮想計算機システム(VMS)により、複数の担当
者が1台のホスト実計算機システムを共有して、OSの開
発テストを同時に進めることができたが、VMCPの開発テ
ストはその特殊な形態であるため、複数台のゲスト上で
複数の担当者が同時に進行させることは、性能上のオー
バヘッドが大きく、実施は非常に困難であった。従っ
て、ベアマシン上でVMCPの開発テストを行わざるを得な
い状態であった。
本発明の目的は、このような従来の問題点を解決する
ため、1台のホスト実計算機システム上で、複数台のゲ
ストを定義し、その上でVMCPを走行させて、VMCPのテス
トを行うことができ、かつそのOS走行の性能を実用範囲
内に収めることができるリカーシブ仮想計算機の制御方
式を提供することにある。
〔問題点を解決するための手段〕
上記目的を達成するため、本発明によるリカーシブ仮
想計算機の制御方式は、仮想計算機VMCPの主記憶領域を
定義する手段と、該VMCPのプレフィクス変換を行う手段
とを有し、該VMCPの生成する仮想計算機がページ可能モ
ードのとき、上記VMCPの生成する仮想空間で、上記仮想
計算機の主記憶領域を含むものから上記VMCPの主記憶装
置領域にアドレス変換した後、上記VMCPのプレフィクス
変換を行い、その結果にVMCPの領域を定義する下限アド
レスを加え、さらにVMCP主記憶領域外を参照していない
かをチェックして、VMCPがホスト実計算機システムの仮
想計算機上で動作し、しかもそのVMCP下の仮想計算機上
でのOSの走行を可能とすることに特徴がある。
〔作用〕
本発明においては、グランドゲストのアドレッシング
を直接ハードウエアにより認識するように動作させ、そ
れによりグランドゲスト上の大部分の機械命令を、ハー
ドウエアにより直接実行可能にして、グランドゲスト上
のOSの性能を実用範囲内の収め、グランドゲストの実行
性能を向上させる。そのために、グランドゲスト上のOS
に対してもホスト実計算機システムが有するVM高速化機
構を適用可能にする必要性がある。一般に、ゲスト上の
OSの発行する機械命令は、ハードウエアにより直接実行
されるか、またはVMCPによりシミュレーションされる
が、ハードウエアが有するVM高速化機構により、ゲスト
上の大部分の機械命令は直接実行されるものである。こ
のVM高速化機構の中核をなすものは、ゲストのアドレッ
シングを直接ハードウエアが認識することである。例え
ば、プログラムで使用するアドレスは、全てハードウエ
ア上は論理アドレスとして取り扱われ、さらに現在がア
ドレス変換モードである場合には、それは仮想アドレス
とみなされ、アドレス非変換モードである場合には、実
アドレスとして解釈されるものである。従って、VMにお
けるアドレスも、同じように上記3種類であり、各々ゲ
スト論理アドレス、ゲスト仮想アドレス、ゲスト実アド
レスと呼ばれる。ホスト実計算機システムにおけるVM高
速化機構においては、これらのゲストアドレッシングを
直接ハードウエアで認識し、メモリアクセスを行うもの
である。従って、この高速化機構をグランドゲストに対
して適用するためには、グランドゲストのアドレッシン
グをハードウエアで認識することが必要であり、本発明
はこれを実現している。
〔実施例〕
以下、本発明の実施例を、図面により詳細に説明す
る。第2図は、本発明の概念を示す記憶アドレス階層の
図であって、詳しくはページ可能モードの内部ゲストの
メモリアドレス階層を示す図である。
第2図において、1はホスト実計算機システムのホス
ト主記憶装置であり、その上に、仮想計算機システム
(VMS)のVMCPが存在する。このVMCPにより、VMが複数
台構成され、同時走行が行われる。その中の1つのVM
は、ホスト主記憶1のあるα番地からβ番地までの連続
領域までが与えられ、そこを占有することができる。2
はそのようなVMの主記憶領域を表わし、ホスト主記憶領
域のα番地〜β番地の領域に対応しており、ゲスト主記
憶2の0番地が、ホスト主記憶のα番地に対応している
ものである。2はゲスト主記憶装置であり、その上で種
々のOSが走行可能であるが、リカーシブVMを走行させる
場合には、この上でVMCPを走行させ、さらにその下でVM
を生成・管理・走行させることになる。ゲスト主記憶領
域2上のVMCPは、その下のVMの主記憶を与えるために、
仮想空間3を生成する。この仮想空間3を、ゲスト仮想
空間と呼ぶ。ゲスト主記憶2上のVMCPは、ゲスト仮想空
間3内のr番地〜s番地の領域を、その下のVM(すなわ
ち、グランドゲスト)に専有的に与える。グランドゲス
トの主記憶4は、その領域r〜sに対応し、グランドゲ
ストの主記憶の0番地は、ゲスト仮想空間3のr番地に
対応するものである。グランドゲスト主記憶4上では、
通常のOSが走行しており、そのOSは、仮想空間群5を生
成する。5をグランドゲスト仮想空間(群)と呼ぶ。さ
らに、これらの理解を助けるために、ゲスト主記憶2上
のVMCP注目して、このゲスト主記憶2を内部ホスト主記
憶、ゲスト仮想空間3を内部ホスト仮想空間と呼ぶ。さ
らに、グランドゲスト主記憶4は、ゲスト主記憶2上の
VMCPから見ればゲスト主記憶であるから、これを内部ゲ
スト主記憶、グランドゲスト仮想空間5を内部ゲスト仮
想空間と呼ぶことにする。この内部ゲスト(すなわち、
ホスト主記憶1上のVMCPから見た時には、グランドゲス
ト)は、内部ホスト仮想空間3上の領域r〜sを主記憶
装置とするため、これをページ可能モードの主記憶属性
を有するということにする。
第3図は、本発明の概念を示すための常駐ストレージ
モードにおける内部ゲストのメモリアドレス階層の図で
ある。すなわち、第3図は、第2図と同じく、リカーシ
ブVMのメモリ階層を表わすものであるが、グランドゲス
トの主記憶の与え方が、第2図と異なっている。異なっ
ている点は、内部ホスト主記憶装置2のある部分領域r
〜sを、そのまま内部ゲスト主記憶装置4′として与え
る点である。このような内部ゲストを、常駐ストレージ
モードの主記憶属性を有する内部ゲストと呼ぶ。内部ゲ
スト主記憶装置4′上のOSは、自分自身の仮想空間5′
を生成するものである。
第2図、第3図における内部ホスト主記憶装置上のVM
CPは、ホスト主記憶装置1の領域α〜βを専有している
ので、常駐ストレージモードの主記憶属性を有するもの
である。本実施例では、内部ホスト主記憶として、この
常駐ストレージモードのみに限定する。
第1図は、本発明の一実施例を示すCPUのアドレス変
換処理部のブロック図である。すなわち、第1図では、
第2図および第3図に示すメモリアドレス階層を認識す
るCPUのアドレス変換動作を説明する。
第1図において、100はフラグGと呼ばれるもので、C
PUがゲストモードで走行している時に、論理“1"とな
る。フラグG100は、VMCPがゲストを起動するとき、ゲス
ト起動専用命令の実行により“1"がセットされ、VMCPに
制御を戻すとき“0"にリセットされる。200は、ゲスト
の主記憶属性(VSM)を表わすものであり、ゲストが常
駐ストレージモード(VSM=“0")であるか、あるいは
ページ可能ストレージモード(VSM=“1")であるかを
表わす。この値は、VMCPが発行するゲスト専用命令のオ
ペランドの1つとして与えられる。300はゲストのPSW、
400はホスト実計算機システム上のVMCPのPSWである。な
お、PSW(Program Status Word)には、割込みマスク
や、次に実行する機械命令のアドレスを含む。このアド
レスが、論理アドレスとして扱われることでは、従来と
同じである。500は、現在、ゲストのアドレス変換が行
われているのか、あるいはホストのアドレス変換が行わ
れているのかを示すフラグ(H)であり、“0"のとき前
者を、また“1"のとき後者を、それぞれ表わしている。
このフラグ(H)500は、アドレス変換制御回路600によ
り、線11を経由してセットされる。600は、アドレス変
換全体の制御回路であって、全てのアドレス変換過程を
制御する。700は、ゲストセグメントテーブル・オリジ
ンを含むレジスタで、GSTOと呼ばれる。800は、ゲスト
のアドレス変換フォーマット(ゲストのセグメントサイ
ズおよびページサイズ変換テーブルの形式)を示すレジ
スタであり、GTFと呼ばれる。900は、ゲストの動的アド
レス変換機構(DAT)であり、ゲストのアドレス変換テ
ーブル(セグメントテーブルとページテーブルから構成
されることは、従来と同じである)を検索する機能を有
し、ゲストの仮想アドレスを入力として、ゲストの実ア
ドレスを出力する機能を有する。130は、ゲストプレフ
ィクス変換回路を示し、ゲストプレフィクスレジスタ12
0に含まれるゲストプレフィクスアドレスにより、プレ
フィクス変換を行う。その結果は、ゲストの絶対アドレ
スとなる。その場合のプレフィクス変換処理は、従来と
全く同じである。150はゲストの上下限レジスタであ
り、ゲスト主記憶の下限アドレス(aとする)および上
限アドレス(bとする)を含むものである。加算回路16
0は、入力されたゲスト絶対アドレスに下限アドレスa
を加え、その結果がbより小であるかをチェックする機
能を有する。加算の結果の解釈は、ゲストストレージモ
ード200(VSM)により異なり、ゲストが常駐ストレージ
モード(VSM=“0")のときには、それをそのままホス
ト絶対アドレスとして解釈し、メモリアクセスに使用さ
れる。ゲストがページ可能ストレージモード(VSM=
“1")のときには、加算の結果はホスト仮想アドレスと
解釈され、ホスト動的アドレス変換テーブル(ホストDA
T)210に入力される。ホストDAT210は、ホストのアドレ
ス変換テーブルを検索し、ホスト仮想アドレスをホスト
実アドレスに変換する。このホストDAT210の動作は、従
来のとおりである。出力されたホスト実アドレスは、ホ
ストプレフィクスレジスタ220(HPXRAと呼ばれる)によ
りホストプレフィクス変換され(回路230において処理
され)、ホスト絶対アドレスとなる。以上は、従来の技
術におけるアドレス変換と全く同じであるが、最後に、
ホスト上下限レジスタ240およびホスト定数加算回路250
により、最後の定数加算と上限チェックを行う。その結
果が、真のホスト絶対アドレスとしてレジスタ260に設
定され、ストレージユニット(ホスト実計算機システム
の主記憶装置)270へのアクセスに使用される。アドレ
ス変換バッファ(TLB)170は、ゲスト論理アドレスと最
終的な真のホスト絶対アドレスとの対応関係を含み、通
常は先にTLBが調べられ、TLBにないときには、上述のア
ドレス変換過程を通ることは従来と同じである。以上の
説明中、従来の技術と異なる点は、最後のホスト上下限
レジスタ240とホスト定数加算回路250が存在する点のみ
である。
次に、第1図の動作を、第2図および第3図に関連し
て詳述する。
第2図および第3図におけるホスト実計算機システム
の主記憶装置1上のVMCPは、VM起動専用命令によりゲス
トを起動する。このとき、第2図および第3図における
ゲストは常駐ストレージモードであるため、ゲスト起動
専用命令のオペランド(SDと呼ぶ)内にVSM=“0"を指
定して起動することになる。
第5図は、第1図におけるVM起動専用命令およびその
オペランドを示す説明図である。
第2図および第3図に示すホスト主記憶装置1上のVM
CPが、常駐ストレージモードのゲストを起動するとき、
第2図、第3図に示すゲスト主記憶の下限アドレスαと
上限アドレスβを、第5図のSDのフィールドGS,GEに各
々設定する。その他に、SD内には、ゲストの動作用PSW
(GPSW)や、ゲスト上のOSの生成する仮想空間を表わす
セグメントテーブルの先頭アドレス(GSTO)、およびゲ
ストのアドレス変換フォーマットを規定するGTF,ゲスト
用のプレフィクスアドレスを含むGPXRフィールドがあ
る。その他にも、ホストプレフィクス領域HPXRA,ホスト
下限アドレスフィールドHS、およびホスト上限アドレス
フィールドHEがある。VMCPがリカーシブでない通常のゲ
ストを起動するために、VM起動専用命令を発行するとき
には、ホストプレフィクス領域HPXRAには、当該VMCP自
身のプレフィクス値を設定し、さらにHSフィールドには
0、HEフィールドには、ホスト実計算機主記憶装置の上
限値を設定しておく。SD内のGPSW,GSTO,GTF,GPXRは、ゲ
ストが走行した後に、VMCPに制御が戻ってきた時点で、
ゲスト上のOSの設定して値がこれらのフィールドに格納
されている。その格納は、ハードウエアおよびマイクロ
プログラムにより行われる。さて、これらの内容をもっ
たSDをオペランドとするVM起動専用命令520をホスト主
記憶装置1上のVMCPが発行すると、そのSDの内容に従っ
て、第1図に示す該当のレジスタが初期化される。すな
わち、ゲストモードフラグ100は“1"となり、ゲストス
トレージモードフラグ200は、第5図のSD510のVSMのフ
ィールドの値に、ゲスト上下限レジスタ150は、SD内のG
S(下限),GE(上限)フィールドの値に、ゲストPSW300
はSDのGPSWフィールドの値に、ゲストセグメントテーブ
ルの先頭アドレスを含むレジスタ700は、SD510のGSTOフ
ィールドの値に、ゲストアドレス変換フォーマットを含
むレジスタ800には、SD510のGTFフィールドの値に、ゲ
ストプレフィックスレジスタ120は、SDのGPXRフィール
ドの値に、ホストプレフィクスレジスタ220は、SDのHPX
RAフィールドの値に、ホスト上下限レジスタ240は、SD
のHS(下限),HE(上限)フィールドの値に、各々設定
される。
次に、ゲストが常駐ストレージモードのとき(従っ
て、VSM200=“0"のとき)におけるアドレス変換動作を
詳述する。ゲスト主記憶2は、第2図、第3図に示すよ
うに、ホスト主記憶の下限αから上限βまでを占有す
る。GPSW300は、いまアドレス変換モードであるとす
る。Gフラグ100や、VSM200,GPSW300,ホストPSW400は、
線10を経由して制御部600に送られる。制御部600は、論
理アドレスレジスタ110に含まれるアドレスがゲスト仮
想アドレスであることを認識する。何故ならば、フラグ
G=“1"で、かつGPSWのアドレス変換モードが“1"であ
るからである。
制御部600は、先ず、ゲストのアドレス変換を行うた
めに、ゲスト論理アドレスをゲストDAT900に送出するよ
うに、線15を通してセレクタ320に指示する。これによ
り、レジスタ110内のゲスト論理アドレスは、線21およ
び線18を経由してゲストDAT900に送られる。ゲストDAT9
00は、ゲスト仮想アドレスを入力とし、それをゲスト実
アドレスに変換し、出力を線20を経由してゲストプレフ
ィクス変換回路130に送る。
ゲストDAT900の動作を、更に詳述する。ゲストDAT900
は、ゲスト上のOS(VMCPのこともある)が用意したアド
レス変換テーブル(これは、従来どおりのセグメントテ
ーブル、ページテーブルから構成される)を検索する。
そのゲストのセグメントテーブルの先頭アドレスは、レ
ジスタ700に入力されており、線16を経由して取り込ま
れる。また、そのアドレス変換テーブルの形式(セグメ
ントサイズ、ページサイズ、および各テーブルエントリ
のサイズ、ならびにテーブルエントリ内の構成等)は、
レジスタ800に設定されたものを線17より取り込む。GST
O700およびゲストのアドレス変換テーブルの内容は、ゲ
ストの実アドレスで構成されている。従って、ゲストセ
グメントテーブルエントリのアドレスは、GSTO700の値
とレジスタ110内のゲスト仮想アドレスの中のセグメン
トインデクス部分との加算により得られるため、最初は
ゲスト実アドレスとなる。このままでは、当該ゲストセ
グメントテーブルエントリをストレージユニット(SU)
270から読み出すことはできないので、このゲストセグ
メントテーブルエントリアドレス(以下、GSTEAと記
す)に対して、ゲストプレフィクス変換130を適用し
て、ゲスト絶対アドレスに変換し、さらにゲスト定数加
算回路160を適用する。これらの制御は、全て制御部600
の制御信号により行われる。第1図においては、それら
の制御信号は省略してある。
いま、ゲストは、常駐ストレージモードで下限がα、
上限がβ(これらは、ゲスト上下限レジスタ150に設
定)であるから、ゲスト定数加算回路160は、これらの
値をゲスト上下限レジスタ150より取り込み、入力アド
レスに対して+αを行い、βより小さいか否かのチェッ
クを行う。
第4図は、第1図におけるアドレス変換の例外割込み
処理のブロック図である。
上述のβより小さいか否かのチェックを通過した後、
さらに次の正常過程を進むが、チェックにかかった時に
は、アドレス変換の例外事象発生となる。このときに
は、制御部600は、線12を経由して、第4図の割込制御
部420に対して割込信号を送ることになるが、その後の
動作は後述する。さて、いまは、ゲストが常駐ストレー
ジモードであるから、ゲスト定数加算回路160の正常出
力は線35を経由してセレクタ340に送られ、更に線44を
経由して絶対アドレスレジスタ260に送られる。すなわ
ち、ここで初めてGSTEAが真のホストの絶対アドレスに
変換されて、ストレージユニット(SU)270から、ゲス
トセグメントテーブルエントリの内容が読み出され、デ
ータレジスタ280に設定されることになる。その内容
は、ゲストページテーブルの先頭アドレス(これもゲス
ト実アドレス)となっているので、線31を経由して、セ
レクタ310に送られ、さらに線24を経由して再びゲストD
AT900に送られる。これらの制御も、全て制御部600で行
われる。
さて、ゲストDAT900は、送られて来たゲストページテ
ーブル先頭アドレスと、レジスタ110内のゲスト仮想ア
ドレスのページインデクス部とを加算することにより、
ゲストページテーブルのエントリアドレス(GPTEAと記
す)を得る。このGPTEAは、ゲストの実アドレスである
ため、GSTEAのときと全く同じようにして、ゲスト絶対
アドレスに変換され、ストレージユニット(SU)270よ
りゲストページテーブルエントリが読み出され、再び線
24を経由してゲストDAT900に送られる。送られる内容
は、レジスタ110内のゲスト仮想アドレスに対応するゲ
スト実アドレス(以後、ターゲットのゲスト実アドレス
と呼ぶ)として解釈され、線20を経由して、次のゲスト
プレフィクス変換回路130に送られる。そのターゲット
のゲスト実アドレスは、前述したと同じように定数加算
回路160における定数加算、および上限チェックを受け
て、ターゲットのホスト絶対アドレス(すなわち、レベ
ル110内のゲスト仮想アドレスに対応するホスト絶対ア
ドレスのこと)に変換され、レジスタ260に設定され、
ストレージユニット(SU)270へのアクセスに使用され
るものである。
このようにして、ゲストが常駐ストレージモードのと
きのアドレス変換動作が行われる。
次に、ゲストがページ可能ストレージモードのときの
アドレス変換動作について、詳述する。
この場合には、VM起動専用命令のオペランドSDにより
VSM=“1"が設定される。第3図におけるゲストは、常
駐ストレージモードであるが、ゲストがページ可能スト
レージモードのときには、第2図において、ホスト主記
憶1上のVMCPが無い場合、すなわち、内部ホスト主記憶
2上のVMCPをホストと考えたときのメモリアドレス構成
をとる。つまり、第2図において、内部ホストVMCPの仮
想空間3上の部分領域r〜sを、内部ゲスト主記憶とす
るものである。内部ホストVMCPをホストVMCPと考えれ
ば、そのホスト仮想空間3の部分領域r〜sを、その下
のゲストが主記憶として使用する訳である。このような
ゲストを、ページ可能ストレージモードのゲストと呼
ぶ。第2図においては、グランドゲストがページ可能ス
トレージモードであるが、ホスト主記憶1上のVMCPが仮
想空間を生成し、その部分領域にページ可能ストレージ
モードのゲストを定義することは可能であり、その場合
には、丁度内部ホストVMCPをホストVMCPと見たときのメ
モリアドレス階層が構成するものである。いま、ホスト
VMCPが(このVMCPは、ゲスト上のVMCPであっても、また
ホスト実計算機上のVMCPであってもよい)ページ可能ゲ
スト(以下、ゲストとは当該VMCPから見たゲスト)を起
動するときには、その起動命令のオペランドSD内(第5
図参照)に、VSM=“1"を、GS,GEには、それぞれホスト
仮想空間(いま、ゲストを起動しようとしているVMCPの
生成する仮想空間)内でのゲスト主記憶の下限アドレス
と上限アドレスを、それぞれ設定する。さらに、HPXRA
フィールドには、自分自身(VMCP)のプレフィクス値、
HSには0,HEには、ホスト主記憶領域アドレスの最大値よ
り大きな値を設定しておく。このような条件の下で、い
ま、ゲストがアドレス変換モードの場合のアドレス変換
動作を、第1図により説明する。
前述の場合(ゲストが常駐ストレージモードのとき)
と同じように、レジスタ110の内容はゲスト仮想アドレ
スと解釈されるので、それは先ず、ゲストDAT900に送ら
れて、ゲスト実アドレス、つまりターゲットのゲスト実
アドレスに変換される。そのときのゲストDAT動作は、
前述と同じように行われるが、以下の点が異なる。すな
わち、GSTEAやGPTEA(これらは、前述のとおりゲスト実
アドレスである)を真のホスト絶対アドレスまで変換す
るために、ゲスト定数加算回路160を適用した後(加算
後のアドレスは、ホスト仮想アドレスと解釈されるの
で)、さらにセレクタ330を通し、線34を経由してホス
トDAT210に送られるという点である。ホストDAT210が使
用するホストアドレス変換テーブルの1つであるホスト
セグメントテーブルの先頭アドレス(HSTO)は、ホスト
VMCPによりレジスタ(HSTO)180に設定されている。さ
らに、ホストアドレス変換フォーマットも同じように、
レベル(HTF)190に設定されているものである。ホスト
DAT210の動作は、次のとおりである。
線34により送られてきたホスト仮想アドレスのセグメ
ントインデクス部と、レジスタ180のHSTOとの加算によ
り、ホストセグメントテーブルエントリアドレス(HSTE
A)を得る。これはホスト実アドレスであるから、ホス
トプレフィクス変換回路230とレジスタ220内のホストプ
レフィクス値(HPRXA)によりホストプレフィクス変換
を受け、ホスト絶対アドレスに変換される。その結果
は、さらにホスト定数加算回路250に送られる。ホスト
上下限レジスタ240には、VM起動命令のオペランドSD内
のHS,HE(第5図参照)フィールドの値が設定されてい
る。この場合には、リカーシブVMではなく、通常のゲス
ト起動の場合であるから、下限HS=0,上限は、ホスト主
記憶アドレスの最大値よりも大きい値が設定されている
ため、何の変更も行われずに、そのまま真のホスト絶対
アドレスとして絶対アドレスレジスタ260に送られ、デ
ータアクセスに使用される。このような過程を経て、HS
TEAは、真のホスト絶対アドレスに変換され、それによ
ってホストセグメントテーブルエントリの内容がデータ
レジスタ280に読み込まれる。この内容は、線31を経由
して再びホストDAT210に送られる。その内容は、ホスト
ページテーブルの先頭アドレスと解釈され、それに、ホ
ストDAT210に線34を経由して入力されたホスト仮想アド
レスのページインデクス部を加えることにより、ホスト
ページテーブルエントリアドレス(HPTEA)を得る。こ
れは、ホスト実アドレスであるから、同じようにして真
のホスト絶対アドレスまで変換され、ストレージユニッ
ト(SU)270からホストページテーブルエントリが読み
込まれ、再び線31、線40を経由してホストDATに送られ
る。この内容は、線34から最初ホストDAT210に入力され
たホスト仮想アドレスに対するホスト実アドレスであ
る。線34から入力されるものは、ゲストDAT900のゲスト
アドレス変換テーブルを検索しているときには、GSTEA
やGPTEAを表わすホスト仮想アドレスである。すなわ
ち、ゲストDAT900のゲストアドレス変換テーブルの検索
は、必然的に、GSTEA,GPTEAを真のホスト絶対アドレス
に変換するためのホストDAT210の動作、およびホスト定
数加算回路250の動作を含むものである。これらのホス
トDAT210やホスト定数加算回路250に対して、レジスタ1
10内のゲスト仮想アドレスに対応するゲスト実アドレス
(ターゲットのゲスト実アドレス)が得られて、線20に
出力される。このターゲットのゲスト実アドレスは、ゲ
ストプレフィクス変換回路130を経由した後、ゲスト定
数加算回路160を経て、ホストDAT210を経由し、ホスト
仮想アドレスに変換される。その後、ホストDAT210を経
由し、ホストプレフィクス変換回路230、ホスト定数加
算回路250を経由して、真のホスト絶対アドレスに変換
されることは、前述のGSTEAまたはGPTEAの場合の全く同
じである。以上が、ページ可能ストレージモードのゲス
トの場合のアドレス変換動作である。
制御部600は、ゲストDAT900が動作中のときには、フ
ラグ(H)500を“0"とし、ホストDAT210が動作中のと
きには、フラグ(H)500を“1"とすることにより、第
4図のアドレス変換例外に関する割込みを制御する。GS
TEAやGPTEAを変換するために、ホストDAT210が動作して
いるときには、フラグ(H)=“1"とする。
以上のアドレス変換動作は、アドレス変換バッファ
(TLB)170に、該当するアドレス変換対(ゲスト仮想ア
ドレスと真のホスト絶対アドレスの対)がない場合だけ
行われるわけであって、もし、対がある場合には、その
真のホスト絶対アドレスが線30を経由して読み出される
ことは、従来と全く同じである。さらに、アドレス変換
の結果が、線60を経由して(Dを経由)、TLB170に書き
込まれることも、従来と同じである。
次に、第4図の割込み動作を、詳述する。
ホストVMCPがリカーシブVMを動作させる場合以外は、
ホストプレフィクスレジスタ410の値と、第5図のSDのH
PXRAの値は同一の値が設定される。
第1図における制御部600は、次のような場合に例外
発生条件を検出し、線12を経由して、第4図の割込み制
御部420を起動する。
(a)ゲストDAT900内でのアドレス変換例外(H=
“0")。(b)ゲスト定数加算回路160での上限チェッ
クにかかった場合(H=“0")。(c)ホストDAT210内
でのアドレス変換例外(H=“1")。または、(d)ホ
スト定数加算回路250での上限チェックにかかった場合
(H=“1")。
第4図の割込み制御部420は、線12からの起動信号に
より起動されると、H=“1"のときには、ホストPSW(H
PSW)400とホストフレフィクス(HPXRB)410により、ホ
ストへ割込みを返す。すなわち、従来のPSWチェンジを
行う。その後、ホストVMCPに制御を戻す。H=“0"のと
きには、ゲストPSW(GPSW)300とゲストプレフィクス
(GPXR)120により、ゲストへ割込みを返し、ゲストの
新PSWに従って、ゲストを続行する。
以上が、リカーシブVMを考慮しない場合のアドレス変
換動作、および割込み動作である。
以下に、リカーシブVMを考慮した場合のアドレス変換
動作、および割込み動作を詳述する。
ところで、第2図のゲスト主記憶2上のVMCPは、上述
した常駐ストレージモードのアドレス変換に従って動作
するが、それが第5図に示すVM起動専用命令520を発行
したときには、ホスト主記憶1上のVMCPに制御が渡り、
それを次のようにシミュレーションする。内部ホストVM
CPの作成したSDは、グランドゲストを定義するものであ
るため、GGSDと呼ぶ。いま、そのGGSDの内容を次のよう
に変更したものを、GGSD′とする。
(イ)GGSDのVSM=“1"(ページ可能ストレージモード
のとき、・・第2図参照)のときには、当該VM起動専用
命令を発行した内部ホストVMCPのプレフィクス値、下限
アドレスα、上限アドレスβを、各々GGSD′のHPXRA,H
S,HEに設定する。その他のGGSD′の内容は、そのままGG
SDの内容をコピーして用いる。従って、グランドゲスト
用の値が、そのまま用いられることになる。
(ロ)GGSDのVSM=“0"(常駐ストレージモードのと
き、・・第3図参照)のときには、当該内部ホスト主記
憶2の下限αを、GGSD内の上下限(GS,GEフィールドの
値、第3図ではrとs)に加算した値(各々、α+r,α
+sとなる)をGGSD′内のGS,GEフィールドに設定す
る。HPXRA,HS,HEフィールドは用いないので、何もしな
くてよい。その他のフィールドは、GGSDの内容をそのま
まコピーする。
このようにして、GGSD′を作成した後、ホスト主記憶
1上のVMCPは、VM起動専用命令をGGSD′をオペランドと
して発行することにより、内部ホストVMCPの発行したVM
起動専用命令をシミュレーションする。その発行に先立
って、ホスト主記憶1上のVMCPは、そのセグメントテー
ブルオリジンを表わす制御レジスタ180に、内部ホスト
主記憶2上のVMCPの該当するセグメントテーブルオリジ
ン制御レジスタの内容を設定する。さらに、そのアドレ
ス変換フォーマットを表わすレジスタ190に内部ホストV
MCPの該当する制御レジスタの内容を、さらにそのプレ
フィクスレジスタ410(第4図参照)には、自分自身の
プレフィクス値を設定しておく。内部ホストVMCPの上記
制御レジスタの内容は、その内部ホスト(すなわち、常
駐ストレージモードを有するゲスト)に対応するSDの中
に格納されているので(第5図では、図示省略されてい
る)、そこから持ってくればよい。
このように、GGSD′を設定し、制御レジスタを設定し
て、GGSD′に対しVM起動専用命令を発行することによ
り、グランドゲストが起動される。すなわち、GGSD′に
は、グランドゲストの情報を殆んどそのまま使用してい
るため、第1図のゲストDAT900は、実際にはグランドゲ
スト用のDAT、つまり第2図、第3図におけるグランド
ゲスト仮想空間に対するDATとなり、ホストDAT210が、
実際には第2図における内部ホスト仮想空間に対するDA
Tになることは明らかである。
さらに、ゲストDAT900およびゲスト定数加算回路160
の例外条件は、H=“0"であるため、グランドゲストの
プレフィクスに割込まれ、ホストDAT210およびホスト定
数加算回路250の例外条件発生時(H=“1")には、最
上位のホストVMCPのプレフィクスへ割込みが発生し、そ
こに制御が戻る。すなわち、ゲストDAT900の例外条件が
発生するときは、第4図のGPXR120が実はグランドゲス
トのプレフィクス値を含むため、グランドゲストのプレ
フィクスに割込みが起り、またホストDAT210の例外条件
が発生するときには、レジスタ(HPXRB)410に最上位VM
CPのプレフィクス値が含まれているために、最上位ホス
トVMCPのプレフィクスに割込みが発生する。
ここで、注目すべきことは、第1図におけるハードウ
エアが、グランドゲストを全く意識していないことであ
り、通常のゲストと思ってアドレス変換を起っているこ
とである。リカーシブVM用としては、ホスト定数加算回
路250、およびホスト上下限レジスタ240が設けてあるだ
けであり、この部分が従来のアドレス変換と異なる点で
ある。さらに、割込み制御におけるプレフィクスレジス
タが、ホスト用に2個(HPXRA220とHPXRB410)存在する
点も異なっている。HPXRA220はホストアドレス変換用、
HPXRB410はホスト割込み用に、それぞれ使用される。
このように、本実施例においては、リカーシブVM、す
なわち、グランドゲストのアドレッシングを直接ハード
ウエアで認識することができる。しかも、ハードウエア
としては、簡単な定数加算回路を最後に付加するのみで
よく、それ以外に特別にグランドゲストモードを意識す
る必要がない。これによって、グランドゲスト上のOSを
高性能に実現することができる。さらに、常駐ストレー
ジモードを有する内部ホストVMCPは、複数台同時に走行
させることができるので、複数の人数が、複数台のゲス
ト上でVMCPを走行させ、かつグランドゲスト上でOSを走
行させて、実用性能で運用することができ、すなわちVM
CPのテストができるという利点がある。また、グランド
ゲスト上でOSを動作させる場合、CPUの性能が、実計算
機システムのCPU時間を1としたとき、従来は3〜4と
なっていたのに対して、本実施例では、これを1.4〜1.7
程度に抑えることができるので、実用性能で運用するこ
とができる。
〔発明の効果〕
以上説明したように、本発明によれば、1台のホスト
実計算機システム上で複数台のゲストを定義し、その上
でVMCPを走行させて、VMCPのテストを起うことができる
とともに、グランドゲスト上でOSを動作させたときのCP
Uの性能を実用的な域に向上させることが可能である。
【図面の簡単な説明】
第1図は本発明の一実施例を示すCPUのアドレス変換部
のブロック図、第2図はページ可能モードの内部ゲスト
のメモリアドレス階層を示す図、第3図は常駐ストレー
ジモードの内部ゲストのメモリアドレス階層を示す図、
第4図は本発明におけるアドレス変換の例外割込処理部
のブロック図、第5図は本発明におけるVM起動専用命令
およびそのオペランド(SD)を示す図である。 1:ホスト主記憶装置、2:内部ホスト主記憶装置、3:内部
ホスト仮想空間、4,4′:内部ゲスト主記憶装置、5,
5′:内部ゲスト仮想空間、100:CPUのゲストモードフラ
グ(G)、200:ゲストストレージモード(VSM)、300:
ゲストPSW(GPSW)、400:ホストPSW(HPSW)、500:アド
レス変換モードフラグ(H)、600:アドレス変換制御
部、700:ゲストセグメントテーブルオリジン(GSTO)、
800:ゲストアドレス変換フォーマット(GTF)、900:ゲ
スト動的アドレス変換機構(ゲストDAT)、110:論理ア
ドレスレジスタ、120:ゲストプレフィクスレジスタ(GP
XR)、130:ゲストプレフィクス変換機構、140:TLB制御
回路、150:ゲスト上下限レジスタ、160:ゲスト定数加算
回路、170:TLB(Translation Look−aside Buffe
r)、180:ホストセグメントテーブルオリジン(HST
O)、190:ホストアドレス変換フォーマット(HTF)、21
0:ホスト動的アドレス変換機構(ホストDAT)、220:ホ
ストプレフィクスレジスタ−A(HPXRA)、230:ホスト
プレフィクス変換回路、240:ホスト上下限レジスタ、25
0:ホスト定数加算回路、260:絶対アドレスレジスタ、27
0:ストレージユニット(ホスト主記憶装置のSU)、280:
データレジスタ、410:ホストプレフィクスレジスタ−B
(HPXRB)、420:アドレス変換例外割込制御部、310,32
0,330,340:セレクタ。

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】ホスト実計算機上の仮想計算機(第1の仮
    想計算機)において仮想計算機制御プログラムを動作さ
    せ、かつ該仮想計算機制御プログラムの制御下の仮想計
    算機(第2の仮想計算機)上でオペレーテイングシステ
    ムを走行させる仮想計算機システムにおいて、上記実計
    算機の主記憶装置の分割領域を上記第1の仮想計算機の
    主記憶領域として定義する手段と、上記仮想計算機制御
    プログラムが上記分割領域上に生成する仮想空間内の領
    域を上記第2の仮想計算機の主記憶領域として定義する
    手段と、上記第2の仮想計算機の主記憶領域から上記第
    1の仮想計算機の主記憶領域にアドレス変換する手段
    と、該アドレス変換結果に上記分割領域の下限アドレス
    を加算する手段とを有することを特徴とするリカーシブ
    仮想計算機の制御方式。
  2. 【請求項2】特許請求の範囲第1項記載のリカーシブ仮
    想計算機の制御方式において、アドレス変換過程におけ
    る例外条件発生を検出する手段と、該例外条件発生を検
    出した場合に割込を発生する手段とを有することを特徴
    とするリカーシブ仮想計算機の制御方式。
  3. 【請求項3】特許請求の範囲第2項記載のリカーシブ仮
    想計算機の制御方式において、上記第2の仮想計算機上
    のオペレーティングシステムの生成する仮想空間に関す
    るアドレス変換過程の第2の例外条件の発生か、または
    上記仮想計算機制御プログラムの生成する仮想空間に関
    するアドレス変換過程の第1の例外条件の発生かを識別
    する手段と、上記第2の例外条件の発生の場合に上記第
    2の仮想計算機に割込を発生する手段と、上記第1の例
    外条件の発生の場合にホスト実計算機に割込を発生する
    手段とを有することを特徴とするリカーシブ仮想計算機
    の制御方式。
  4. 【請求項4】アドレス変換機能を備える仮想計算機シス
    テムであって、レベル0OSが動作する実計算機と該実計
    算機上に構築される複数の仮想計算機を有し、前記複数
    の仮想計算機は前記レベル0OSの制御下で構築されるレ
    ベル1仮想計算機と、該レベル1仮想計算機で動作する
    レベル1OSの制御下で構築されるレベル2仮想計算機か
    ら成り、前記レベル2仮想計算機で生成されるレベル2
    仮想アドレスをレベル2絶対アドレスに変換する第1の
    変換機構と、前記レベル2絶対アドレスに第1の所定の
    主記憶アドレスを加算してレベル1仮想アドレスを得る
    第1の加算機構と、前記レベル1仮想アドレスをレベル
    1絶対アドレスに変換する第2の変換機構と、前記レベ
    ル1絶対アドレスに第2の所定の主記憶アドレスを加算
    してレベル0絶対アドレスを得る第2の加算機構とから
    構成されることを特徴とする仮想計算機システム。
JP61129950A 1986-06-04 1986-06-04 リカ−シブ仮想計算機の制御方式 Expired - Fee Related JP2523502B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61129950A JP2523502B2 (ja) 1986-06-04 1986-06-04 リカ−シブ仮想計算機の制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61129950A JP2523502B2 (ja) 1986-06-04 1986-06-04 リカ−シブ仮想計算機の制御方式

Publications (2)

Publication Number Publication Date
JPS62286129A JPS62286129A (ja) 1987-12-12
JP2523502B2 true JP2523502B2 (ja) 1996-08-14

Family

ID=15022443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61129950A Expired - Fee Related JP2523502B2 (ja) 1986-06-04 1986-06-04 リカ−シブ仮想計算機の制御方式

Country Status (1)

Country Link
JP (1) JP2523502B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2839201B2 (ja) * 1990-07-30 1998-12-16 株式会社日立製作所 仮想計算機システム
JP5941868B2 (ja) * 2013-04-18 2016-06-29 株式会社日立製作所 仮想計算機システムおよび仮想計算機におけるi/o実施方法

Also Published As

Publication number Publication date
JPS62286129A (ja) 1987-12-12

Similar Documents

Publication Publication Date Title
US4347565A (en) Address control system for software simulation
US7908646B1 (en) Virtualization system for computers having multiple protection mechanisms
US7490216B1 (en) Methods for accessing multiple page tables in a computer system
US6651132B1 (en) System and method for emulating the operation of a translation look-aside buffer
Bugnion et al. Bringing virtualization to the x86 architecture with the original vmware workstation
US7089377B1 (en) Virtualization system for computers with a region-based memory architecture
US8127098B1 (en) Virtualization of real mode execution
US7499057B2 (en) Address translation in an integrated graphics environment
US8266628B2 (en) Switching between multiple software entities using different operating modes of a processor
US5317754A (en) Method and apparatus for enabling an interpretive execution subset
US4814975A (en) Virtual machine system and method for controlling machines of different architectures
US5339417A (en) Computer system with two levels of guests
US20020046305A1 (en) Method for effective binary translation between different instruction sets using emulated supervisor flag and multiple page tables
JP2007183952A (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
JPH0326414B2 (ja)
EP0145960B1 (en) Selective guest system purge control
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
US5280592A (en) Domain interlock
US5459872A (en) Software control of hardware interruptions
US20070156386A1 (en) Linearization of page based memory for increased performance in a software emulated central processing unit
JP2523502B2 (ja) リカ−シブ仮想計算機の制御方式
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JP3125790B2 (ja) アドレス変換装置
EP0550285A2 (en) Machine with two units of operation
JPS6252334B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees