JPH0793221A - 仮想計算機システム及びその制御方法 - Google Patents

仮想計算機システム及びその制御方法

Info

Publication number
JPH0793221A
JPH0793221A JP5241041A JP24104193A JPH0793221A JP H0793221 A JPH0793221 A JP H0793221A JP 5241041 A JP5241041 A JP 5241041A JP 24104193 A JP24104193 A JP 24104193A JP H0793221 A JPH0793221 A JP H0793221A
Authority
JP
Japan
Prior art keywords
address
guest
real address
host
virtual
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
JP5241041A
Other languages
English (en)
Inventor
Toshiharu Tanaka
俊治 田中
Toshiaki Arai
利明 新井
Yuri Hondo
友理 本堂
Kiyoshi Ogawa
清 小川
Kenji Totsuka
健司 戸塚
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 JP5241041A priority Critical patent/JPH0793221A/ja
Publication of JPH0793221A publication Critical patent/JPH0793221A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】ゲストOSの切替において必要とするTLBの
登録内容の変更(書替)を効率良く実行することが出来
る仮想計算機システムを提供すること。 【構成】アドレス変換情報を個々のゲストOSごとに独
立して格納するための複数の専属退避領域をホスト記憶
領域に設定し、最後に走行させたゲストOSの専属退避
領域にアドレス変換バッファの全登録内容を退避させた
後、次に走行させるゲストOSの専属退避領域から当該
ゲストOSのアドレス変換情報を読み出してアドレス変
換バッファの登録内容を置き換える。次に走行させるゲ
ストOSと最後に走行させたゲストOSが同一である場
合は、アドレス変換バッファの登録内容の退避・置換操
作を行なうことなく直ちに次のゲストOSを走行させ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、論理的な電子計算機で
ある仮想計算機を物理的な実計算機上に複数台生成し、
各仮想計算機ごとにそれぞれ対応する一つのオペレーテ
ィング・システム(Operating System:以下「OS」
と略記する)を走行させることによって演算処理を実行
する形式の仮想計算機システムに関する。なお、本明細
書(特許請求の範囲を含む)では、記載の簡単化のた
め、必要に応じて「仮想計算機」及び「実計算機」の代
わりに「ゲスト」及び「ホスト」を使用する。
【0002】
【従来の技術】仮想計算機システムは、異なる使用目的
の複数のOSを1台の計算機上で運用する場合のほか、
OSの移行時に新旧二つのOSを1台の計算機上で走行
させる場合や複数のOSのテストを並行して実施する場
合などのツールとして特に汎用大型計算機の分野におい
て広く使用されている。また、マイクロプロセッサの著
しい性能向上に伴い、同プロセッサを組み込んだワーク
ステーションが様々な用途で使用されるようになった結
果、この分野においても、用途に応じた複数のOSを切
り替えて走行させたいという要求が起こり、ワークステ
ーション上において仮想計算機システムを構成すること
が必要となりつつある。
【0003】仮想計算機システムにおける重要課題の一
つは、ゲスト記憶領域(各仮想計算機の主記憶装置とし
て機能する仮想の記憶領域)を実現するための技術、換
言すれば、ゲスト記憶領域のホスト記憶領域(ホストの
実記憶領域)へのマッピング技術である。
【0004】仮想記憶方式の計算機システムでは、アド
レス変換テーブルを用いてプログラム中で指定された仮
想アドレスを実アドレスに変換しながら命令列を実行す
る必要があるが、命令実行の都度、毎回、アドレス変換
テーブルを用いてアドレス情報の変換を行なうのでは、
性能の低下が大きい。このため、仮想アドレス及びそれ
に対応する実アドレスの組からなるアドレス変換情報を
アドレス変換バッファ(Translation Lookaside Buffe
r:以下「TLB」と略記する)に登録し、当該変換情
報を用いて必要な実アドレスを得る方法が採用されてい
る。
【0005】汎用大型計算機を用いた仮想計算機システ
ムでは、ハードウェアであるアドレス変換機構が前述の
アドレス変換操作及び変換情報のTLBへの登録を行な
うことが多い。これに対して、マイクロプロセッサの場
合は、1命令の実行マシンサイクル時間を短縮するた
め、ハードウェアによるアドレス変換動作ではTLBの
みを用いる形態を取ることがある。この場合は、ハード
ウェアがアドレス変換を行なう際、TLBに必要な変換
情報が登録されていないと、いわゆるTLBミス割込み
が発生し、OSのTLBミス処理ルーチンに制御が移
る。TLBミス処理ルーチンでは、アドレス変換テーブ
ルを用いて仮想アドレスを実アドレスに変換し、仮想ア
ドレス及び実アドレスを一組としてTLBに登録した
後、TLBミスを起こした命令をハードウェアが再実行
する。
【0006】仮想計算機システムでは、仮想計算機上の
OS(ゲストOS)が生成した仮想空間(ゲスト仮想空
間)をアドレス付けするための仮想アドレス(ゲスト仮
想アドレス)を当該ゲストOSから見た実アドレス(ゲ
スト実アドレス)に変換し、更に当該ゲスト実アドレス
をホスト実アドレスに変換しながら、ゲストOSの命令
列を実行しなければならない。このため、TLBを利用
してアドレス変換を効率的に行なうための技術が既に幾
つか提案されており、以下、これらの従来技術及びその
問題点を説明する。
【0007】〈仮想計算機の切替に伴うTLB登録内容
の書替に関して〉特開昭57−212680号公報記載
の仮想計算機システムでは、アドレス変換をTLBを用
いて高速に行なうため、ゲスト仮想アドレス及びホスト
実アドレスを一組としてTLBの各エントリに登録す
る。但し、仮想計算機を識別するための情報がTLBの
エントリ内に存在しないため、仮想計算機の切替の際、
TLBの全内容を一旦無効化することにより、最後に走
行させたゲストOSのTLBエントリを次に走行させる
ゲストOSが誤って使用することを防止している。
【0008】しかし、TLBの全内容を無効化すると、
ゲストOSが前回走行した際に登録したエントリがTL
Bに存在しないため、TLBミスが多発し、性能が低下
するという問題が新たに発生する。特に、TLBのみを
使用してアドレス変換を行なう形態の計算機では、TL
Bミス時の処理オーバヘッドが大きいため、TLBミス
の多発は、計算機システムの性能を大きく低下させるこ
とになる。
【0009】特開昭62−69339号公報記載のアド
レス変換バッファ方式は、ゲスト仮想アドレス及びホス
ト実アドレスに加え、ゲストOS(仮想計算機)の識別
子をTLBの各エントリに登録しておくものである。こ
の方式によれば、TLBの各エントリがどのゲストOS
に対するアドレス変換情報であるかを識別することが出
来るため、複数の仮想計算機によるTLBの共用が可能
となるほか、仮想計算機の切替時にTLBの内容を無効
化する必要がなくなる。しかし、ゲストOSの識別子を
TLBの各エントリに登録する場合であっても、TLB
ミスによる性能低下の問題が発生する。何故ならば、T
LBを共用する場合は、一つのゲストOSの走行時に登
録されたエントリがその後の他のゲストOSの走行によ
って消去される結果、走行を中断したゲストOSが再び
走行する場合、前回の走行時に登録したエントリがTL
Bに存在しない可能性があるからである。
【0010】このため、特開平2−307145号公報
には、仮想計算機の切替の際、最後に走行させたゲスト
OSについて登録したエントリを特定の記憶領域に退避
させておき、当該OSを再び走行させる場合は、上記領
域から必要なエントリを取り出して使用するという対策
が提案されている。しかし、この対策は、TLBの各エ
ントリにゲストOSの識別子を含ませることにより、複
数のゲストOSによるTLB及び退避領域の共用を可能
にしているため、TLBエントリを退避領域に格納する
際や退避領域からTLBエントリを取り出す際、識別子
を用いて対象とすべきエントリを選別する必要があり、
TLBのエントリ数が多い場合には、処理オーバヘッド
が非常に大きくなる可能性がある。また、退避領域から
取り出したエントリをTLBに再登録する際、TLBか
ら追い出すべきエントリを選別する必要があるため、再
登録するエントリ数が多い場合は、再登録操作のオーバ
ヘッドが大きくなる可能性がある。
【0011】〈仮想アドレスに対応する実アドレスの読
出命令に関して〉通常の汎用大型計算機では、OSが作
成したアドレス変換テーブルを検索することによって読
出命令(Load Real Address 命令)を実行する。汎用の
大型計算機を用いて仮想計算機システムを構成した場合
も同様である(TLBは使用しない)。これに対して、
ハードウェアによるアドレス変換動作においてTLBの
みを用いる形態の計算機では、TLBの登録内容を検索
することによって読出命令を実行するのが普通である。
このため、このような計算機を用いた仮想計算機システ
ムでは、ゲストOSが読出命令を発行した場合、TLB
検索により読出命令が指定するゲスト仮想アドレスに対
応するゲスト実アドレスを当該OSに通知する必要があ
る。しかし、従来は、例えば前掲の特開昭57−212
680号公報に記載されているように、ゲスト仮想アド
レス及びホスト実アドレスだけをTLBに登録していた
ため、TLBの検索のみによってはゲストOSの読出命
令を実行することができない。
【0012】〈メモリマップド入出力を行なう計算機で
のアドレス変換に関して〉マイクロプロセッサを搭載し
た計算機システムでは、特定のアドレス領域への読み書
きによって入出力を実現するメモリマップド入出力方式
が広く採用されている。例えば特開昭63−24063
7公報は、この種の方式を用いた計算機上での仮想計算
機のメモリアクセス制御方法を開示するものであり、ゲ
スト記憶領域は、ゲストメモリアドレス空間及びゲスト
I/Oアドレス空間から構成されている。前者のアドレ
ス空間は、命令やテーブルを格納するための通常の記憶
領域であり、後者のアドレス空間は、入出力装置に対応
付けられている記憶領域である。二つの記憶領域は、そ
の属性が異なるため、ゲストメモリアドレス空間をホス
トメモリアドレス空間にマッピングさせ、ゲストI/O
アドレス空間をホストI/Oアドレス空間にマッピング
させる必要がある。なお、ホストメモリアドレス空間
は、例えば16進数表示のX‘F0000000’未満
の番地(領域)に配置され、ホストI/Oアドレス空間
は、X‘F0000000’以上の番地に夫々配置され
る。
【0013】一方、特開平3−147039号公報記載
のデータ処理システムでは、ホスト記憶領域を複数の部
分領域に分割してその一つの部分領域をゲスト記憶領域
として与え、当該記憶領域のホスト記憶領域における起
点アドレスをゲスト識別子としてTLBに登録する。し
かし、メモリマップド入出力を行なう計算機は、前述の
通り、属性が異なる二つの記憶領域を持つものであるか
ら、このような手段によっては、ホスト記憶領域の一つ
の分割領域をゲスト記憶領域として使用することができ
ない。
【0014】
【発明が解決しようとする課題】本発明の第一の目的
は、ゲストOSの切替において必要とするTLBの登録
内容の変更(書替)を効率良く実行することが出来る改
良された仮想計算機システム又は制御方法を提案するこ
とにある。
【0015】本発明の第二の目的は、前記第一の目的を
達成するために使用して好適なアドレス変換手段及びゲ
スト実アドレス読出手段を提案することにあり、かつ、
本発明の第三の目的は、前記第二の目的をメモリマップ
ド入出力方式のホスト計算機を用いて実現することこと
にある。
【0016】
【課題を解決するための手段】本発明の第一の目的は、
アドレス変換情報をゲストOSごとに独立して格納する
ための複数の専属退避領域をホスト記憶領域上に設定す
ると共に、ゲストOSを切り替える際、最後に走行させ
たゲストOSの専属退避領域にTLBの登録内容(最後
に走行させたゲストOSのアドレス変換情報)を一旦退
避させた後、次に走行させるゲストOSの専属退避領域
から当該ゲストOSのアドレス変換情報を取り出し、当
該アドレス変換情報をもってTLBの登録内容を置き換
えることによって達成することが出来る。なお、次に走
行させるゲストOSと最後に走行させたゲストOSとが
同一であるか否かを判定するための手段を設け、両ゲス
トOSが同一である場合は、TLBの退避・置換操作を
行なうことなく直ちに次のゲストOSを走行させるよう
にシステムを構成することが望ましい。
【0017】本発明の第二の目的は、走行中のゲストO
Sの登録命令に応じて当該登録命令が指定するゲスト実
アドレスをホスト実アドレスに変換し、かつ、同登録命
令が指定するゲスト仮想アドレス及び変換によって得ら
れたホスト実アドレスを一組としてTLBに登録する
か、TLB及び走行中のゲストOSの専属退避領域に登
録(格納)することによって達成することが可能であ
る。ゲスト実アドレスの読出は、走行中のゲストOSの
読出命令に応じて当該読出命令が指定するゲスト仮想ア
ドレスを保持するTLBのエントリを選択するか、当該
読出命令が指定するゲスト仮想アドレスを保持するエン
トリを専用退避領域から選択し、選択したエントリのホ
スト実アドレスをゲスト実アドレスに変換して走行中の
ゲストOSに通知することによって実現することが出来
る。
【0018】本発明の第二の目的は、走行中のゲストO
Sの登録命令が指定するゲスト仮想アドレス及び当該ゲ
スト仮想アドレスに対応するホスト実アドレスのほか、
同登録命令が指定するゲスト実アドレスを一組としてア
ドレス変換バッファに登録することによっても達成する
ことが可能である。この場合、ゲスト実アドレスの読出
は、走行中のゲストOSの読出命令に応じて当該読出命
令が指定するゲスト仮想アドレスを保持するTLBのエ
ントリを選択し、選択したエントリのゲスト実アドレス
を走行中のゲストOSにそのまま通知することによって
行なう。
【0019】本発明の第二の目的を達成するための後者
の方法又は手段は、ゲストOSごとに専属退避領域を設
定する本発明の仮想計算機システムの場合は勿論のこ
と、複数のゲストOSが退避領域を共用する前記特開平
2−307145号公報記載の仮想計算機システムの場
合や退避領域を用いない通常の仮想計算機システムの場
合においても広く採用することが可能である。
【0020】本発明の第三の目的は、走行中のゲストO
Sの登録命令に応じて当該登録命令が指定するゲスト実
アドレスが特定値以上であるか否かを判定することによ
り、当該ゲスト実アドレスが特定値以上の場合はそのゲ
スト実アドレスをもってホスト実アドレスとし、当該ゲ
スト実アドレスが特定値未満の場合はゲストメモリアド
レス空間のホストメモリアドレス空間における起点アド
レス値をそのゲスト実アドレスに加算した値をもってホ
スト実アドレスとすると共に、走行中のゲストOSの登
録命令が指定するゲスト仮想アドレス及び前記判定操作
によって求めたホスト実アドレスを一組としてアドレス
変換バッファに登録することによって達成するすること
が可能である。この場合、ゲスト実アドレスの読出は、
走行中のゲストOSの読出命令に応じて当該読出命令が
指定するゲスト仮想アドレスを保持するアドレス変換バ
ッファのエントリを選択し、当該エントリのホスト実ア
ドレスが特定値以上であるか否かを判定することによ
り、当該ホスト実アドレスが特定値以上の場合はそのホ
スト実アドレスをもってゲスト実アドレスとし、当該ホ
スト実アドレスが特定値未満の場合はゲストメモリアド
レス空間のホストメモリアドレス空間における起点アド
レス値をそのホスト実アドレスから減算した値をもって
ゲスト実アドレスとすると共に、当該判定操作によって
求めたゲスト実アドレスを走行中のゲストOSに通知す
ることによって実現することが出来る。
【0021】
【作用】専属退避領域を用いてTLB登録内容の退避・
置換操作を行なうと、特定のゲストOSが前回走行した
際にTLBに登録され、その後の別のゲストOSの走行
によって消滅したエントリが回復してTLB中に存在す
るため、ゲストOS切替時にTLBミスが発生する可能
性が殆ど消滅する。特に本発明では、個々のゲストOS
ごとに独立して専属退避領域を設けているため、TLB
の全登録内容を一括して退避・置換することが可能とな
り、これらの操作のためのオーバヘッドを少なくするこ
とが出来るほか、最後に走行させたゲストOSと次に走
行させるゲストOSが同一の場合は、TLB登録内容の
退避・置換を行なわないで直ちに次のゲストOSを走行
させることが可能となり、無駄な操作を省略することが
出来る。
【0022】なお、本発明のように、個々のゲストOS
ごとに独立して専属退避領域を設定した場合は、各ゲス
トOSに対応するアドレス変換情報(仮想アドレス及び
ホスト実アドレス)を夫々の専属退避領域に常時保存し
ておくことが可能となる。このため、走行中のゲストO
Sがゲスト仮想アドレスに対応するゲスト実アドレスの
読出命令を発行した場合、専属退避領域のエントリ中の
ホスト実アドレスを用いてゲスト実アドレスを得ること
が可能となり、計算機システムにとって負荷が大きいT
LB制御命令を実行することなく、ゲスト読出命令を実
行することが出来る。また、ゲスト仮想アドレス、ホス
ト実アドレス及びゲスト実アドレスを一組としてTLB
に登録した場合は、走行中のゲストOSの読出命令に応
じて読出命令指定のゲスト仮想アドレスに対応するゲス
ト実アドレスをTLBから読み出して直ちにゲストOS
に通知することが出来る。
【0023】
【実施例】以下、実施例を参照して本発明に係る仮想計
算機システムを更に詳細に説明する。図1は、メモリマ
ップド入出力方式を用いた計算機システムにおいて、ホ
スト記憶領域を共用して2台の仮想計算機VM−1及び
VM−2を構成した場合の記憶領域のマッピングを説明
するための図である。同図に示すように、ホスト記憶領
域100は、その番地がX‘F0000000’未満の
領域とX‘F0000000’からX‘FFFFFFF
F’までの領域とに分割されており、前半をホストメモ
リアドレス空間110として使用し、後半をホストI/
Oアドレス空間120として使用する。ホストメモリア
ドレス空間110は、命令やテーブルを格納するための
空間であり、ホストI/Oアドレス空間120は、その
領域への読み書きが入出力の実行に対応付けられている
空間である。
【0024】仮想計算機VM−1,VM−2は、仮想の
記憶領域であるゲスト記憶領域170−1,170−2
を夫々保有する。これらのゲスト記憶領域は、ホスト記
憶領域100に対応するものであり、0番地から始まる
領域をゲストメモリアドレス空間140−1,140−
2として使用し、かつ、X‘F0000000’番地か
らX‘FFFFFFFF’番地までの領域をゲストI/
Oアドレス空間150−1,150−2として使用す
る。仮想計算機VM−1のゲストOSは、ゲスト記憶領
域170−1上にゲスト仮想空間160−1を生成し、
一方、仮想計算機VM−2のゲストOSは、ゲスト記憶
領域170−2上にゲスト仮想空間160−2を生成す
る。
【0025】中央処理装置200は、アドレス変換情報
を登録するためのTLB220及び当該TLBに登録さ
れた変換情報を用いて走行中のゲストOS(仮想計算機
VM−1又はVM−2のいずれか一方のゲストOS)の
命令を実行するための命令実行回路210を有する。ホ
ストメモリアドレス空間110内には、仮想計算機VM
−1及びVM−2の夫々に専属する二つの退避領域13
2−1及び132−2が互いに独立して配置されてい
る。なお、ホストメモリアドレス空間110の一部に
は、複数のゲストOSの走行を制御するためのプログラ
ムである仮想計算機モニタ(VMM)130が格納され
ている。
【0026】本発明の仮想計算機システムは、走行中の
ゲストOSがTLB200の全エントリを使用し、か
つ、各ゲストOS(仮想計算機VM−1及びVM−2)
が個別の専属退避領域132−1又は132−2を有し
ている点に特徴がある。このため、仮想計算機の切替
(例えばVM−2からVM−1への切替)は、最後に走
行させたゲストOS(例えば仮想計算機VM−2)の専
属退避領域(例えば132−2)にTLB220の登録
内容を書き込んで退避させた後、次に走行させるゲスト
OS(例えば仮想計算機VM−1)の専属退避領域(例
えば132−1)から当該ゲストOSのアドレス変換情
報を取り出してTLB220の登録内容を置き換えるこ
とによって実行する。
【0027】本実施例の計算機は、TLB220を制御
するための命令として、図2に図解した4種類の命令を
使用する。個々の命令の概要は、以下のとおりである。
【0028】 SET命令(登録命令) SET命令は、命令コードのフィールドと特定の汎用レ
ジスタ番号を示すR1フィールド及びR2フィールドと
からなる。SET命令を実行すると、R1フィールド指
定の汎用レジスタ314に格納された仮想アドレス及び
R2フィールド指定の汎用レジスタ315に格納された
実アドレスとを一組とするエントリがTLB220に登
録され、TLB220の当該エントリの状態表示ビット
(Vビット)が“1”(有効)に設定される。
【0029】 STORE命令(格納命令) STORE命令は、SET命令と同様、命令コードのフ
ィールドと特定の汎用レジスタ番号を示すR1フィール
ド及びR2フィールドとからなる。STORE命令を実
行すると、R1フィールド指定の汎用レジスタ324に
格納されたアドレスが指定するメモリアドレス空間11
0の領域326にTLB220の全エントリ(仮想アド
レス及び実アドレスの組とエントリの状態表示ビット)
が格納され、かつ、格納されたTLB220のエントリ
数がR2フィールド指定の汎用レジスタ325に登録さ
れる。
【0030】 LRA命令(読出命令) LRA命令も、SET命令と同様、命令コードのフィー
ルドと特定の汎用レジスタ番号を示すR1フィールド及
びR2フィールドとからなる。LRA命令を実行する
と、R1フィールド指定の汎用レジスタ334に格納さ
れた仮想アドレスを有するTLBの有効なエントリ(状
態表示ビット“1”)が選択され、R2フィールド指定
の汎用レジスタ335に当該エントリの実アドレスが格
納される。
【0031】 PURGE命令(消去命令) PURGE命令は、命令コードのフィールドのみからな
る。PURGE命令を実行すると、TLB220の全て
のエントリの状態表示ビットに“0”(無効)が設定さ
れ、全てのエントリが無効化される。
【0032】〈ソフトウェアによるTLB切替処理〉ソ
フトウェアによるTLB切替処理のフローチャートを図
3に示す。タイムスライス(予め各ゲストOSに割り当
てた時間)の終了等により、走行中のゲストOSが中断
すると(ステップ3010)、仮想計算機モニタ130
による切替制御が開始する。仮想計算機モニタ130
は、次に走行させるゲストOSを選択すると共に(ステ
ップ3020)、そのゲストOSと最後に走行させたゲ
ストOSとが同一であるか否かを判定する(ステ303
0)。
【0033】判定の結果、同一のゲストOSである場合
は、TLB220の退避・再登録を実行することなく、
直ちに選択したゲストOSの走行を開始させる(ステッ
プ3070)。一方、判定の結果、異なるゲストOSで
ある場合は、STORE命令により、TLB220の登
録内容(アドレス変換情報)を読み出して最後に走行さ
せたゲストOSの専属退避領域(例えば仮想計算機VM
−2の専属退避領域132−2)に書き込んで退避させ
た後(ステップ3040)、PURGE命令により、T
LB220のエントリを全てパージする(ステップ30
50)。続いてSET命令を実行し、次に走行させるゲ
ストOSの専属退避領域(例えば仮想計算機VM−1の
専属退避領域132−1)の各エントリをTLB220
に書き込んで回復させた後(ステップ3060)、次の
ゲストOSを起動させ、走行を開始させる(ステップ3
070)。
【0034】〈ハードウェアによるTLB切替処理〉次
に、ソフトウェアのかわりに、ハードウェアによってT
LBの切替を行なう例を説明する。ハードウェアによる
TLB切替処理のための実行回路の一例を図4に示す。
同図において、START VM 命令は、中央処理装置
200においてゲストOSを起動させるための命令であ
る。この命令のオペランドである状態記述子131はゲ
スト起動時の初期状態を保持しており、仮想計算機VM
−1の状態記述子131−1は、汎用レジスタ400の
初期値を保持する汎用レジスタ領域500、制御レジス
タ410の初期値を保持する制御レジスタ領域510、
起動する仮想計算機VM−1の識別子を保持するゲスト
識別子(VMID)フィールド520及び仮想計算機V
M−1の専属退避領域132−1のアドレスを保持する
専属退避領域アドレスフィールド530からなる。詳細
には図示していないが、仮想計算機VM−2についても
同様である。個々の仮想計算機の専属退避領域132−
1,132−2には、ゲスト仮想空間160−1,16
0−2からホスト記憶領域100(図1参照)に対する
アドレス変換情報が夫々保持されている。
【0035】仮想計算機モニタ130が仮想計算機VM
−1の状態記述子131−1をオペランドとするSTA
RT VM 命令を実行した場合の動作を説明する。先
ず、中央処理装置200の命令実行回路210は、状態
記述子131−1内の汎用レジスタ領域500の値を汎
用レジスタ400に、制御レジスタ領域510の値を制
御レジスタ410に、ゲスト識別子フィールド520の
値を走行開始ゲスト識別子レジスタ430に、専属退避
領域アドレスフィールド530の値を走行開始TLBア
ドレスレジスタ415に夫々設定する。なお、最終走行
ゲスト識別子レジスタ420は、後の説明で分かるよう
に、最後に走行させた仮想計算機の識別子を保持してい
る。
【0036】次に、最終走行ゲスト識別子レジスタ42
0の値と走行開始ゲスト識別子レジスタ430の値を比
較器440によって比較する。比較の結果、仮想計算機
起動命令で指定されたゲストOSと最後に走行させたゲ
ストOSが同一であれば、比較器440の出力が
“0”、インバータ460の出力が“1”となって命令
実行回路210が起動される。そして、命令実行回路2
10がゲスト識別子フィールド520の値を最終走行ゲ
スト識別子レジスタ420に設定し、仮想計算機起動命
令で指定されたゲストOSの走行を開始させる。
【0037】一方、ゲスト起動命令が指定したゲストO
Sと最後に走行させたゲストOSが異なる場合は、比較
器440の出力が“1”となり、TLB書替回路450
が動作を開始する。TLB書替回路450は、最終走行
TLBアドレスレジスタ470が指定する専属退避領域
132−2にTLB220の内容を書き込んで退避させ
た後、TLB220の全エントリを無効化する。更に、
TLB切替回路450は、走行開始TLBアドレスレジ
スタ415が指定する専属退避領域132−1の内容
(アドレス変換情報)をTLB220に書き込んで再登
録した後、走行開始TLBアドレスレジスタ415の値
を最終走行TLBアドレスレジスタ470に複写し、さ
らに命令実行回路210を起動する。この結果、命令実
行回路210は、ゲスト識別子フィールド520の値を
最終走行ゲスト識別子レジスタ420に設定し、仮想計
算機起動命令で指定されたゲストOSの走行を開始させ
る。
【0038】〈TLB制御命令の実行〉次に、ゲストO
Sが発行したTLB制御命令の実行に関して三つの具体
例を説明する。
【0039】〔具体例1〕具体例1では、ゲストOSが
発行したTLB制御命令は、以下に示すように仮想計算
機モニタ130がシミュレーションする。
【0040】 SET命令シミュレーション 図1において、走行中のゲストOSがSET命令を発行
した場合、中央処理装置200は、当該命令を直接実行
せず、仮想計算機モニタ130を起動する。仮想計算機
モニタ130によるSET命令のシミュレーションを図
5のフローチャートを用いて説明する。
【0041】仮想計算機モニタ130は、先ず、OSが
発行したSET命令のR2フィールド指定の汎用レジス
タに格納されていたゲスト実アドレスを読み取る。そし
て、その値がX‘F0000000’以上であるか否か
を識別することにより、当該ゲスト実アドレスがゲスト
I/Oアドレス空間150又はゲストメモリアドレス空
間140のいずれに属するかを判定する(ステップ50
00)。判定の結果、ゲストI/Oアドレス空間150
に属する場合は、当該ゲスト実アドレスをもってホスト
実アドレスとする(ステップ5010)。一方、ゲスト
メモリアドレス空間140に属する場合は、ホストメモ
リアドレス空間110におけるゲストメモリアドレス空
間140の起点アドレス(仮想計算機VM−1の場合は
“0”、仮想計算機VM−2の場合は“α”)を当該ゲ
スト実アドレスに加算することによって対応するホスト
実アドレスを求める(ステップ5020)。そして、ゲ
スト仮想アドレス(SET命令のR1フィールド指定の
汎用レジスタの内容)及び求めたホスト実アドレスの組
を指定してSET命令を発行することにより、この組を
TLB220に登録する(ステップ5030)。更に、
その組を当該ゲストの専属退避領域132に登録する
(ステップ5040)。
【0042】 LRA命令シミュレーション 図1において、走行中のゲストOSがLRA命令を発行
した場合、中央処理装置200は、当該命令を直接実行
せず、仮想計算機モニタ130を起動する。仮想計算機
モニタ130によるゲストLRA命令のシミュレーショ
ンのフローチャートを図6に示す。
【0043】仮想計算機モニタ130は、先ず、LRA
命令のR1フィールド指定の汎用レジスタからゲスト仮
想アドレスを読み取り、当該仮想アドレスを有する専属
退避領域132のエントリを選択する(ステップ600
0)。次に、選択したエントリのホスト実アドレスの値
がX‘F0000000’以上であるか否かを識別する
ことにより、当該ホスト実アドレスがホストI/Oアド
レス空間120又はホストメモリアドレス空間110の
いずれに属するかを判定する(ステップ6010)。判
定の結果、I/Oアドレス空間120に属する場合は、
当該ホスト実アドレスをもってゲスト実アドレスとする
(ステップ6020)。一方、ホストメモリアドレス空
間110に属する場合は、ホストメモリアドレス空間1
10におけるゲストメモリアドレス空間140の起点ア
ドレス(仮想計算機VM−1の場合は“0”、仮想計算
機VM−2の場合は“α”)をホスト実アドレスから減
算することにより、対応するゲスト実アドレスを求める
(ステップ6030)。そして、求めたゲスト実アドレ
スをゲストOSに通知するためにLRA命令のR2フィ
ールド指定の汎用レジスタに格納し、同命令のシミュレ
ーション処理を終了する(ステップ6040)。
【0044】 STORE命令シミュレーション STORE命令の場合も、LRA命令の場合と同様、専
属退避領域132のエントリのホスト実アドレスをゲス
ト実アドレスに変換する。そして、専属退避領域132
の全エントリについて、エントリ状態表示ビット、ゲス
ト仮想アドレス及び変換によって求めたゲスト実アドレ
スを一組としてSTORE命令のR1フィールド指定の
ゲストメモリアドレス空間140の領域に格納し、か
つ、格納したエントリの数をSTORE命令のR2フィ
ールド指定の汎用レジスタに登録する。
【0045】 PURGE命令のシミュレーション 本発明では、走行中のゲストOSにTLB220の全て
のエントリを使用させるので、ゲストOSが発行したP
URGE命令を仮想計算機モニタ130がシミュレーシ
ョンする場合は、当該ゲストOSの専属退避領域132
の全てのエントリの状態表示ビットに“0”を設定する
と共に、PURGE命令を実際に発行して、TLB22
0の全てのエントリの状態表示ビットに“0”を設定す
る。
【0046】〔具体例2〕本具体例では、ゲストOSが
発行したTLB制御命令をハードウェアが直接実行す
る。
【0047】 SET命令 図7により、ゲストOSが発行したSET命令の処理を
説明する。ゲストOSがSET命令を発行すると、同命
令のR1フィールド指定の汎用レジスタに格納されたゲ
スト仮想アドレスがゲスト仮想アドレスレジスタ700
に、R2フィールド指定の汎用レジスタに格納されたゲ
スト実アドレスがゲスト実アドレスレジスタ710に夫
々設定される。境界値レジスタ720は、ゲストメモリ
アドレス空間140とゲストI/Oアドレス空間150
の境界値であるX‘F0000000’を保持する。ま
た、ゲストOS起動時に設定される起点アドレスレジス
タ740は、中央処理装置200において走行中のゲス
トOSに対するゲストメモリアドレス空間140のホス
トメモリアドレス空間110における起点アドレス(仮
想計算機VM−1の場合は“0”、仮想計算機VM−2
の場合は“α”)を保持する。ゲスト実アドレスレジス
タ710の値がX‘F0000000’以上の場合、比
較器730の出力が“1”となり、選択器745はゲス
ト実アドレスレジスタ710の値をそのまま出力する。
一方、ゲスト実アドレスレジスタ710の値がX‘F0
000000’未満の場合は、比較器730の出力が
“0”になり、選択器745は加算器750による加算
結果を出力する。このことは、ゲスト実アドレスがゲス
トI/Oアドレス空間150に属する場合は、当該ゲス
ト実アドレスをもってホスト実アドレスとし、ゲスト実
アドレスがゲストメモリアドレス空間140に属する場
合は、起点アドレスを加算した値をもってホスト実アド
レスとすることを意味する。TLB制御回路760は、
ゲスト仮想アドレスレジスタ700の値と選択器745
が出力した値(ホスト実アドレスの値)を一組とするエ
ントリを、当該エントリの状態表示ビットを“1”にし
てTLB220に設定し、SET命令の実行を終了す
る。
【0048】 LRA命令 図7により、ゲストOSが発行したLRA命令の処理を
説明する。ゲストOSがLRA命令を発行すると、同命
令のR1フィールド指定の汎用レジスタに格納されたゲ
スト仮想アドレスがゲスト仮想アドレスレジスタ700
に設定される。TLB制御回路760は、当該仮想アド
レスを有するTLB220のエントリのホスト実アドレ
スの値をデータ線7000を介して比較器780に入力
する。そして、ホスト実アドレスの値がX‘F0000
000’以上の場合、比較器780の出力が“1”にな
り、選択器790はデータ線7000から入力したホス
ト実アドレスの値をそのまま出力する。一方、データ線
7000上のホスト実アドレスの値がX‘F00000
00’未満の場合は、比較器780の出力が“0”にな
り、選択器790は減算器795の出力値(データ線7
100から入力した起点アドレス値をデータ線7000
から入力したホスト実アドレスの値から減算して求めた
アドレス値)を選択する。このことは、ホスト実アドレ
スがホストI/Oアドレス空間120に属する場合は、
当該ホスト実アドレスをもってゲスト実アドレスとし、
ホスト実アドレスがホストメモリアドレス空間110に
属する場合は、起点アドレスを減算した値をもってゲス
ト実アドレスとすることを意味する。選択器790の出
力値は、データ線7200を経由して、LRA命令で要
求されたゲスト実アドレスとしてゲストOSに通知する
ために汎用レジスタ400に格納され、LRA命令の実
行が終了する。
【0049】 STORE命令 TLBの各エントリについて上述のLRA命令の場合と
同様にホスト実アドレスをゲスト実アドレスに変換する
以外は、ホストSTORE命令と同様に実行する。
【0050】 PURGE命令 ホストPURGE命令と同様に実行する。
【0051】〔具体例3〕具体例2の場合と同様、ゲス
トOSが発行したTLB制御命令をハードウェアが直接
実行する。
【0052】 SET命令 図8により、ゲストOSが発行したSET命令の処理を
説明する。SET命令が発行されると、具体例2の場合
と同様、命令のR1フィールド指定の汎用レジスタに格
納されたゲスト仮想アドレスがゲスト仮想アドレスレジ
スタ700に、R2フィールド指定の汎用レジスタに格
納されたゲスト実アドレスがゲスト実アドレスレジスタ
710に夫々設定される。ゲスト実アドレスレジスタ7
10の値がX‘F0000000’以上の場合は、比較
器730の出力が“1”となり、選択器745はゲスト
実アドレスレジスタ710の値を出力する。一方、ゲス
ト実アドレスレジスタ710の値がX‘F000000
0’未満の場合は、比較器730の出力が“0”にな
り、選択器745は加算器750の計算結果を出力す
る。TLB制御回路760は、データ線8000上のゲ
スト仮想アドレスレジスタ700の出力値、データ線8
100経由のゲスト実アドレスレジスタ710の出力値
及びデータ線8200経由のホスト実アドレスの値(選
択器745の出力値)を一組とするエントリを、当該エ
ントリの状態表示ビットを“1”にしてTLB220に
設定し、SET命令の実行を終了する。
【0053】 LRA命令 同じく図8により、ゲストOSが発行したLRA命令の
処理を説明する。LRA命令が発行されると、具体例2
の場合と同様、同命令のR1フィールド指定の汎用レジ
スタに格納されたゲスト仮想アドレスがゲスト仮想アド
レスレジスタ700に設定される。TLB制御回路76
0は、当該仮想アドレスを有するTLB220のエント
リのゲスト実アドレスの値をデータ線8300に出力
し、その値をLRA命令で指定されたゲスト仮想アドレ
スに対応するゲスト実アドレスとしてゲストOSに通知
するために汎用レジスタ400に格納し、LRA命令の
実行を終了する。
【0054】 STORE命令 TLBの各エントリについてゲスト仮想アドレスとゲス
ト実アドレスの組を指定領域に格納する以外は、ホスト
STORE命令と同様に実行する。
【0055】 PURGE命令 ホストPURGE命令と同様に実行する。
【0056】
【発明の効果】前記実施例では、2台の仮想計算機を用
いて仮想計算機を構成する場合について説明したが、本
発明は、仮想計算機が3台以上である場合にも適用する
ことが可能である。また、前記実施例では、ホスト計算
機を構成する中央処理装置の数が1台である場合につい
て説明したが、マルチプロセッサ構成のホスト計算機に
対しても本発明を適用することが出来ることは、自ずか
ら明らかである。
【0057】本発明の効果を列挙すると、次の通りであ
る。 ゲストOSの切替えに伴うTLB登録内容の退避・
置換操作を効率良く実行することが出来る。 ゲストOSに対するアドレス変換をTLBを用いて
効率良く行なうことが出来る。 ゲスト仮想アドレスに対応するゲスト実アドレスの
読出をTLBを用いて効率良く実行することが出来る。 メモリマップド入出力方式のホスト計算機を用いて
仮想計算機を構成する場合も、前記の操作を効率良く実
行することが出来る。
【図面の簡単な説明】
【図1】ゲスト記憶領域のホスト記憶領域へのマッピン
グの説明図。
【図2】TLB制御命令の説明図。
【図3】TLBの切替処理のフローチャート。
【図4】TLBの切替処理の実行回路図。
【図5】ゲストSET命令シミュレーションのフローチ
ャート。
【図6】ゲストLRA命令シミュレーションのフローチ
ャート。
【図7】ゲストTLB制御命令の第1の実行回路図。
【図8】ゲストTLB制御命令の第2の実行回路図。
【符号の説明】
100:ホスト記憶領域、110:ホストメモリアドレ
ス空間、120:ホストI/Oアドレス空間、130:
仮想計算機モニタ、131:状態記述子、132:専属
退避領域、140:ゲストメモリアドレス空間、15
0:ゲストI/Oアドレス空間、160:ゲスト仮想空
間、170:ゲスト記憶領域、200:中央処理装置、
210:命令実行回路、220:TLB
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小川 清 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 戸塚 健司 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】仮想アドレスから実アドレスへの変換情報
    を登録するためのアドレス変換バッファを中央処理装置
    に有するホスト計算機を用いて複数のオペレーティング
    ・システムを走行させるように構成した仮想計算機シス
    テムにおいて、オペレーティング・システムごとに独立
    してアドレス変換情報を格納するための複数の専属退避
    領域をホスト記憶領域上に設定すると共に、オペレーテ
    ィング・システム切替の際、最後に走行させたオペレー
    ティング・システムの専属退避領域にアドレス変換バッ
    ファの登録内容(最後に走行させたオペレーティング・
    システムのアドレス変換情報)を退避させた後、次に走
    行させるオペレーティング・システムの専属退避領域か
    ら当該オペレーティング・システムのアドレス変換情報
    を取り出し、当該アドレス変換情報をもってアドレス変
    換バッファの登録内容を置き換えるための手段を設けた
    ことを特徴とする仮想計算機システム。
  2. 【請求項2】前記手段は、次に走行させるオペレーティ
    ング・システムと最後に走行させたオペレーティング・
    システムとが同一であるか否かを判定するための手段を
    包含し、両オペレーティング・システムが同一である場
    合は、アドレス変換バッファの登録内容の退避・置換操
    作を行なうことなく直ちに次のオペレーティング・シス
    テムを走行させるように機能するものであることを特徴
    とする請求項1に記載の仮想計算機システム。
  3. 【請求項3】走行中のオペレーティング・システムの登
    録命令に応じて当該登録命令が指定するゲスト実アドレ
    スをホスト実アドレスに変換し、かつ、同登録命令が指
    定するゲスト仮想アドレス及び変換によって得られたホ
    スト実アドレスを一組としてアドレス変換バッファに登
    録するための手段を有することを特徴とする請求項1又
    は請求項2に記載の仮想計算機システム。
  4. 【請求項4】走行中のオペレーティング・システムの読
    出命令に応じて当該読出命令が指定するゲスト仮想アド
    レスを保持するアドレス変換バッファのエントリを選択
    し、選択したエントリのホスト実アドレスをゲスト実ア
    ドレスに変換した後、当該ゲスト実アドレスを走行中の
    オペレーティング・システムに通知するための手段を有
    することを特徴とする請求項3に記載の仮想計算機シス
    テム。
  5. 【請求項5】走行中のオペレーティング・システムの登
    録命令に応じて当該登録命令が指定するゲスト実アドレ
    スをホスト実アドレスに変換し、かつ、同登録命令が指
    定するゲスト仮想アドレス及び変換によって得られたホ
    スト実アドレスを一組としてアドレス変換バッファ及び
    走行中のオペレーティング・システムの専属退避領域の
    双方に登録(格納)するための手段を有することを特徴
    とする請求項1又は請求項2に記載の仮想計算機システ
    ム。
  6. 【請求項6】走行中のオペレーティング・システムの読
    出命令に応じて当該読出命令が指定するゲスト仮想アド
    レスを保持するエントリを専属退避領域から選択し、選
    択したエントリのホスト実アドレスをゲスト実アドレス
    に変換した後、当該オペレーティング・システムに通知
    するための手段を有することを特徴とする請求項5に記
    載の仮想計算機システム。
  7. 【請求項7】走行中のオペレーティング・システムの登
    録命令に応じて当該登録命令が指定するゲスト実アドレ
    スをホスト実アドレスに変換し、かつ、同登録命令が指
    定するゲスト仮想アドレス及びゲスト実アドレス並びに
    変換によって得られたホスト実アドレスを一組としてア
    ドレス変換バッファに登録するための手段を有すること
    を特徴とする請求項1又は請求項2に記載の仮想計算機
    システム。
  8. 【請求項8】走行中のオペレーティング・システムの読
    出命令に応じて当該読出命令が指定するゲスト仮想アド
    レスを保持するアドレス変換バッファのエントリを選択
    し、選択したエントリのゲスト実アドレスを走行中のオ
    ペレーティング・システムに通知するための手段を有す
    ることを特徴とする請求項7に記載の仮想計算機システ
    ム。
  9. 【請求項9】仮想アドレスから実アドレスへの変換情報
    を登録するためのアドレス変換バッファを中央処理装置
    に有するホスト計算機を用いて複数のオペレーティング
    ・システムを走行させるように構成した仮想計算機シス
    テムにおいて、走行中のオペレーティング・システムの
    登録命令に応じて当該登録命令が指定するゲスト実アド
    レスをホスト実アドレスに変換し、かつ、同登録命令が
    指定するゲスト仮想アドレス及びゲスト実アドレス並び
    に変換によって得られたホスト実アドレスを一組として
    アドレス変換バッファに登録するための手段を有するこ
    とを特徴とする仮想計算機システム。
  10. 【請求項10】走行中のオペレーティング・システムの
    読出命令に応じて当該読出命令が指定するゲスト仮想ア
    ドレスを保持するアドレス変換バッファのエントリを選
    択し、選択したエントリのゲスト実アドレスを走行中の
    オペレーティング・システムに通知するための手段を有
    することを特徴とする請求項9に記載の仮想計算機シス
    テム。
  11. 【請求項11】仮想アドレスから実アドレスへの変換情
    報を登録するためのアドレス変換バッファを中央処理装
    置に有すると共に、特定値未満の実アドレスでアクセス
    可能なメモリアドレス空間及び特定値以上の実アドレス
    でアクセス可能なI/Oアドレス空間を有するホスト計
    算機を使用し、当該計算機によって複数のオペレーティ
    ング・システムを走行させるように構成した仮想計算機
    システムにおいて、走行中のオペレーティング・システ
    ムの登録命令に応じて当該登録命令が指定するゲスト実
    アドレスが特定値以上であるか否かを判定することによ
    り、当該ゲスト実アドレスが特定値以上の場合はそのゲ
    スト実アドレスをもってホスト実アドレスとし、当該ゲ
    スト実アドレスが特定値未満の場合はゲストメモリアド
    レス空間のホストメモリアドレス空間における起点アド
    レス値をそのゲスト実アドレスに加算した値をもってホ
    スト実アドレスとするための手段と、走行中のオペレー
    ティング・システムの登録命令が指定するゲスト仮想ア
    ドレス及び前記手段によって求めたホスト実アドレスを
    一組としてアドレス変換バッファに登録するための手段
    を設けたことを特徴とする仮想計算機システム。
  12. 【請求項12】走行中のオペレーティング・システムの
    読出命令に応じて当該読出命令が指定するゲスト仮想ア
    ドレスを保持するアドレス変換バッファのエントリを選
    択し、当該エントリのホスト実アドレスが特定値以上で
    あるか否かを判定することにより、当該ホスト実アドレ
    スが特定値以上の場合はそのホスト実アドレスをもって
    ゲスト実アドレスとし、当該ホスト実アドレスが特定値
    未満の場合はゲストメモリアドレス空間のホストメモリ
    アドレス空間における起点アドレス値をそのホスト実ア
    ドレスから減算した値をもってゲスト実アドレスとする
    ための手段と、当該手段によって求めたゲスト実アドレ
    スを走行中のオペレーティング・システムに通知するた
    めの手段を設けたことを特徴とする請求項11に記載の
    仮想計算機システム。
  13. 【請求項13】仮想アドレスから実アドレスへの変換情
    報を登録するためのアドレス変換バッファを中央処理装
    置に有するホスト計算機を用いて複数のオペレーティン
    グ・システムを走行させるように構成した仮想計算機シ
    ステムの制御方法であって、オペレーティング・システ
    ムごとに独立してアドレス変換情報を格納するための複
    数の専属退避領域をホスト記憶領域上に設定すると共
    に、オペレーティング・システム切替の際、最後に走行
    させたオペレーティング・システムの専属退避領域にア
    ドレス変換バッファの登録内容(最後に走行させたオペ
    レーティング・システムのアドレス変換情報)を退避さ
    せた後、次に走行させるオペレーティング・システムの
    専属退避領域から当該オペレーティング・システムのア
    ドレス変換情報を取り出し、当該アドレス変換情報をも
    ってアドレス変換バッファの登録内容を置き換えること
    を特徴とする仮想計算機システムの制御方法。
  14. 【請求項14】次に走行させるオペレーティング・シス
    テムと最後に走行させたオペレーティング・システムと
    が同一であるか否かを判定し、両オペレーティング・シ
    ステムが同一である場合は、アドレス変換バッファの登
    録内容の退避・置換操作を行なうことなく直ちに次のオ
    ペレーティング・システムを走行させることを特徴とす
    る請求項13に記載の仮想計算機システムの制御方法。
  15. 【請求項15】走行中のオペレーティング・システムの
    登録命令に応じて当該登録命令が指定するゲスト実アド
    レスをホスト実アドレスに変換し、かつ、同登録命令が
    指定するゲスト仮想アドレス及び変換によって得られた
    ホスト実アドレスを一組としてアドレス変換バッファに
    登録することを特徴とする請求項13又は請求項14に
    記載の仮想計算機システムの制御方法。
  16. 【請求項16】走行中のオペレーティング・システムの
    読出命令に応じて当該読出命令が指定するゲスト仮想ア
    ドレスを保持するアドレス変換バッファのエントリを選
    択し、選択したエントリのホスト実アドレスをゲスト実
    アドレスに変換した後、当該ゲスト実アドレスを走行中
    のオペレーティング・システムに通知することを特徴と
    する請求項15に記載の仮想計算機システムの制御方
    法。
  17. 【請求項17】走行中のオペレーティング・システムの
    登録命令に応じて当該登録命令が指定するゲスト実アド
    レスをホスト実アドレスに変換し、かつ、同登録命令が
    指定するゲスト仮想アドレス及び変換によって得られた
    ホスト実アドレスを一組としてアドレス変換バッファ及
    び走行中のオペレーティング・システムの専属退避領域
    に登録(格納)することを特徴とする請求項13又は請
    求項14に記載の仮想計算機システムの制御方法。
  18. 【請求項18】走行中のオペレーティング・システムの
    読出命令に応じて当該読出命令が指定するゲスト仮想ア
    ドレスを保持するエントリを専属退避領域から選択し、
    選択したエントリのホスト実アドレスをゲスト実アドレ
    スに変換した後、当該オペレーティング・システムに通
    知することを特徴とする請求項17に記載の仮想計算機
    システムの制御方法。
  19. 【請求項19】走行中のオペレーティング・システムの
    登録命令に応じて当該登録命令が指定するゲスト実アド
    レスをホスト実アドレスに変換し、かつ、同登録命令が
    指定するゲスト仮想アドレス及びゲスト実アドレス並び
    に変換によって得られたホスト実アドレスを一組として
    アドレス変換バッファに登録することを特徴とする請求
    項13又は請求項14に記載の仮想計算機システムの制
    御方法。
  20. 【請求項20】走行中のオペレーティング・システムの
    読出命令に応じて当該読出命令が指定するゲスト仮想ア
    ドレスを保持するアドレス変換バッファのエントリを選
    択し、選択したエントリのゲスト実アドレスを走行中の
    オペレーティング・システムに通知することを特徴とす
    る請求項19に記載の仮想計算機システムの制御方法。
  21. 【請求項21】仮想アドレスから実アドレスへの変換情
    報を登録するためのアドレス変換バッファを中央処理装
    置に有するホスト計算機を用いて複数のオペレーティン
    グ・システムを走行させるように構成した仮想計算機シ
    ステムの制御方法であって、走行中のオペレーティング
    ・システムの登録命令に応じて当該登録命令が指定する
    ゲスト実アドレスをホスト実アドレスに変換し、かつ、
    同登録命令が指定するゲスト仮想アドレス及びゲスト実
    アドレス並びに変換によって得れれたホスト実アドレス
    を一組としてアドレス変換バッファに登録することを特
    徴とする仮想計算機システムの制御方法。
  22. 【請求項22】走行中のオペレーティング・システムの
    読出命令に応じて当該読出命令が指定するゲスト仮想ア
    ドレスを保持するアドレス変換バッファのエントリを選
    択し、選択したエントリのゲスト実アドレスを走行中の
    オペレーティング・システムに通知することを特徴とす
    る請求項21に記載の仮想計算機システムの制御方法。
  23. 【請求項23】仮想アドレスから実アドレスへの変換情
    報を登録するためのアドレス変換バッファを中央処理装
    置に有すると共に、特定値未満の実アドレスでアクセス
    可能なメモリアドレス空間及び特定値以上の実アドレス
    でアクセス可能なI/Oアドレス空間を有するホスト計
    算機を使用し、当該計算機によって複数のオペレーティ
    ング・システムを走行させるように構成した仮想計算機
    システムの制御方法であって、走行中のオペレーティン
    グ・システムの登録命令に応じて当該登録命令が指定す
    るゲスト実アドレスが特定値以上であるか否かを判定す
    ることにより、当該ゲスト実アドレスが特定値以上の場
    合はそのゲスト実アドレスをもってホスト実アドレスと
    し、当該ゲスト実アドレスが特定値未満の場合はゲスト
    メモリアドレス空間のホストメモリアドレス空間におけ
    る起点アドレス値をそのゲスト実アドレスに加算した値
    をもってホスト実アドレスとすると共に、走行中のオペ
    レーティング・システムの登録命令が指定するゲスト仮
    想アドレス及び前記判定操作によって求めたホスト実ア
    ドレスを一組としてアドレス変換バッファに登録するこ
    とを特徴とする仮想計算機システムの制御方法。
  24. 【請求項24】走行中のオペレーティング・システムの
    読出命令に応じて当該読出命令が指定するゲスト仮想ア
    ドレスを保持するアドレス変換バッファのエントリを選
    択し、当該エントリのホスト実アドレスが特定値以上で
    あるか否かを判定することにより、当該ホスト実アドレ
    スが特定値以上の場合はそのホスト実アドレスをもって
    ゲスト実アドレスとし、当該ホスト実アドレスが特定値
    未満の場合はゲストメモリアドレス空間のホストメモリ
    アドレス空間における起点アドレス値をそのホスト実ア
    ドレスから減算した値をもってゲスト実アドレスとする
    と共に、当該判定操作によって求めたゲスト実アドレス
    を走行中のオペレーティング・システムに通知すること
    を特徴とする請求項23に記載の仮想計算機システムの
    制御方法。
JP5241041A 1993-09-28 1993-09-28 仮想計算機システム及びその制御方法 Pending JPH0793221A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5241041A JPH0793221A (ja) 1993-09-28 1993-09-28 仮想計算機システム及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5241041A JPH0793221A (ja) 1993-09-28 1993-09-28 仮想計算機システム及びその制御方法

Publications (1)

Publication Number Publication Date
JPH0793221A true JPH0793221A (ja) 1995-04-07

Family

ID=17068438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5241041A Pending JPH0793221A (ja) 1993-09-28 1993-09-28 仮想計算機システム及びその制御方法

Country Status (1)

Country Link
JP (1) JPH0793221A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008522321A (ja) * 2004-12-02 2008-06-26 インテル・コーポレーション 高性能な方法でcpu又は処理エレメントから物理メモリにアクセスするための方法及び装置
JP2008293472A (ja) * 2007-04-24 2008-12-04 Fujitsu Ltd 計算機装置およびそのキャッシュリカバリ方法
US7509475B2 (en) 2005-10-27 2009-03-24 Hitachi, Ltd. Virtual machine control method and virtual machine system having host page table address register
JP2011510385A (ja) * 2008-01-21 2011-03-31 中国科学院▲計▼算技▲術▼研究所 Riscプロセッサ装置及びその命令アドレスの変換検索方法
WO2012060148A1 (ja) * 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
JP2013214325A (ja) * 2002-12-19 2013-10-17 Intel Corp バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2018536219A (ja) * 2015-10-28 2018-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのページ・テーブル・キャッシュ・ラインをプリロードする方法、コンピューティング・システム、およびコンピュータ・プログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013214325A (ja) * 2002-12-19 2013-10-17 Intel Corp バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2008522321A (ja) * 2004-12-02 2008-06-26 インテル・コーポレーション 高性能な方法でcpu又は処理エレメントから物理メモリにアクセスするための方法及び装置
US9280473B2 (en) 2004-12-02 2016-03-08 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US9710385B2 (en) 2004-12-02 2017-07-18 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US10282300B2 (en) 2004-12-02 2019-05-07 Intel Corporation Accessing physical memory from a CPU or processing element in a high performance manner
US7509475B2 (en) 2005-10-27 2009-03-24 Hitachi, Ltd. Virtual machine control method and virtual machine system having host page table address register
JP2008293472A (ja) * 2007-04-24 2008-12-04 Fujitsu Ltd 計算機装置およびそのキャッシュリカバリ方法
JP2011510385A (ja) * 2008-01-21 2011-03-31 中国科学院▲計▼算技▲術▼研究所 Riscプロセッサ装置及びその命令アドレスの変換検索方法
WO2012060148A1 (ja) * 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
JP5466768B2 (ja) * 2010-11-02 2014-04-09 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
JP2018536219A (ja) * 2015-10-28 2018-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのページ・テーブル・キャッシュ・ラインをプリロードする方法、コンピューティング・システム、およびコンピュータ・プログラム

Similar Documents

Publication Publication Date Title
US10303620B2 (en) Maintaining processor resources during architectural events
US6456891B1 (en) System and method for transparent handling of extended register states
US4792895A (en) Instruction processing in higher level virtual machines by a real machine
JP3239218B2 (ja) キャッシュ管理システム
US8104035B2 (en) Program for controlling a virtual computer and computer system for virtulization technology
US20160124747A1 (en) Performing a clear operation absent host intervention
US5835961A (en) System for non-current page table structure access
JP2007004661A (ja) 仮想計算機の制御方法及びプログラム
JPH05257803A (ja) 仮想記憶空間管理方法及びアドレス計算装置
US7506096B1 (en) Memory segment emulation model for virtual machine
US5187791A (en) Microprocessor with improved interrupt response with data saving dependent upon processor status using status flag
US6606697B1 (en) Information processing apparatus and memory control method
JPH03156542A (ja) アドレス変換装置及びそのためのアドレス情報の管理方法
JPH0793221A (ja) 仮想計算機システム及びその制御方法
JPS61156445A (ja) Tlbパ−ジ制御方式
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
CN112559393B (zh) 基于定制tlb代换的虚拟机迁移时脏页记录方法
JPS588073B2 (ja) アドレス変換装置
JPH05250263A (ja) 仮想プロセッサ方式及び不揮発化記憶方式
JPH0438011B2 (ja)
JPH03185539A (ja) データ処理装置
JPS62222343A (ja) 仮想計算機システム
JPS6367662A (ja) 仮想空間管理方式
JPH0216654A (ja) キャッシュメモリ制御方法