JPH0658650B2 - 仮想計算機システム - Google Patents
仮想計算機システムInfo
- Publication number
- JPH0658650B2 JPH0658650B2 JP61054704A JP5470486A JPH0658650B2 JP H0658650 B2 JPH0658650 B2 JP H0658650B2 JP 61054704 A JP61054704 A JP 61054704A JP 5470486 A JP5470486 A JP 5470486A JP H0658650 B2 JPH0658650 B2 JP H0658650B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- guest
- register
- tlb
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、アドレス変換バッファを有する仮想計算機シ
ステムに関する。
ステムに関する。
IBM社の370/XAアーキテクチャの仮想計算機システムで
は、ホスト制御プログラムで仮想計算機実行開始命令
(以下SE命令と呼ぶ)が実行された後、仮想計算機
(以下、VMと呼ぶ)の動作が開始される。第1図に、S
E命令の命令形式を示す。SE命令は、そのB2お
よびD2フィールドによって位置付けられる状態記述子
(以下SDと呼ぶ)をオペランドとして指定する。中央処
理装置(以下、CPUと呼ぶ。)の命令実行部は、SE
命令を実行する為に主記憶装置(以下、MSと呼ぶ)から
SDの各フィールドをCPUのリードウェア資源に設定し、C
PUをゲストVMとして動作させる。この時設定されるハー
ドウェア資源には、ゲストモード・ラッチやPSW,制御
レジスタ(CR),汎用レジスタ(GR),プリフィツクスおよ
びMSエクステント・レジスタなどがある。一方、ホスト
の状態はCPU内に保存される。かくて、SDはゲスト命令
から見たゲストVMのアーキテクチャを記述する。
は、ホスト制御プログラムで仮想計算機実行開始命令
(以下SE命令と呼ぶ)が実行された後、仮想計算機
(以下、VMと呼ぶ)の動作が開始される。第1図に、S
E命令の命令形式を示す。SE命令は、そのB2お
よびD2フィールドによって位置付けられる状態記述子
(以下SDと呼ぶ)をオペランドとして指定する。中央処
理装置(以下、CPUと呼ぶ。)の命令実行部は、SE
命令を実行する為に主記憶装置(以下、MSと呼ぶ)から
SDの各フィールドをCPUのリードウェア資源に設定し、C
PUをゲストVMとして動作させる。この時設定されるハー
ドウェア資源には、ゲストモード・ラッチやPSW,制御
レジスタ(CR),汎用レジスタ(GR),プリフィツクスおよ
びMSエクステント・レジスタなどがある。一方、ホスト
の状態はCPU内に保存される。かくて、SDはゲスト命令
から見たゲストVMのアーキテクチャを記述する。
SE命令によって開始されたゲストVMは割込み事象ま
たはインターセプションが発生するまでの間、ゲストプ
ログラムをエミュレートする。割込み事象とは、例えば
入出力割込みや外部割込みなどホストの処理を必要とす
る場合である。インターセプションとは、例えばホスト
処理の必要な命令の実行時に発生する。一部の特権命令
ではインターセプションを発生させるか否かSD内のイン
ターセプション・マスクフィールドで指定できる。
たはインターセプションが発生するまでの間、ゲストプ
ログラムをエミュレートする。割込み事象とは、例えば
入出力割込みや外部割込みなどホストの処理を必要とす
る場合である。インターセプションとは、例えばホスト
処理の必要な命令の実行時に発生する。一部の特権命令
ではインターセプションを発生させるか否かSD内のイン
ターセプション・マスクフィールドで指定できる。
割込み事象またはインターセプションが発生した時、ゲ
ストVMは終了し、CPUはホスト・モードとなり、SE
命令実行時の状態に復元される。
ストVMは終了し、CPUはホスト・モードとなり、SE
命令実行時の状態に復元される。
仮想計算機システムにおける重要な技術課題の1つは、
ゲストの「主記憶」を表現する方法である。SE命令
で開始されたゲストVMでは、ページ記憶モードと優先記
憶モードの2つが用いられる。第2図はページ記憶モー
ドにおけるアドレス変換機構を示している。ゲストの仮
想アドレス(GV)は、ゲスト・アドレス変換によりゲスト
の絶対アドレス(GA)に変換される。このGAがSDで指定さ
れたMSエクステント内にあることをチェックする。GAに
MSオリジン(MSO)が加算され、ホスト仮想アドレス(HV)
が求められる。HVは、ホスト・アドレス変換によりホス
ト絶対アドレス(HA)に変換される。優先記憶モードで
は、ゲストの絶対アドレスがそのままホストの絶対アド
レスとみなされる。いずれのモードにおいても、アドレ
ス変換バッファ(TLB)のエントリには、GVとHAの対が登
録される。したがって、GVでTLBを検索することによりH
Aが求まる。
ゲストの「主記憶」を表現する方法である。SE命令
で開始されたゲストVMでは、ページ記憶モードと優先記
憶モードの2つが用いられる。第2図はページ記憶モー
ドにおけるアドレス変換機構を示している。ゲストの仮
想アドレス(GV)は、ゲスト・アドレス変換によりゲスト
の絶対アドレス(GA)に変換される。このGAがSDで指定さ
れたMSエクステント内にあることをチェックする。GAに
MSオリジン(MSO)が加算され、ホスト仮想アドレス(HV)
が求められる。HVは、ホスト・アドレス変換によりホス
ト絶対アドレス(HA)に変換される。優先記憶モードで
は、ゲストの絶対アドレスがそのままホストの絶対アド
レスとみなされる。いずれのモードにおいても、アドレ
ス変換バッファ(TLB)のエントリには、GVとHAの対が登
録される。したがって、GVでTLBを検索することによりH
Aが求まる。
上記アーキテクチャの仮想計算機システムにおけるTLB
構成に関して、特開昭57-212680号が知られている。こ
こでは、TLBの各エントリにゲスト・フィールドを1ビ
ット分設け、ホストのアドレス変換情報を登録した時
“0”ゲストVMのアドレス変換情報を登録した時“1”
とする。これによりホスト・エントリとゲスト・エント
リを識別が可能となり、TLB内にホストと1つのゲストV
Mのアドレス変換情報が同時に保持される。しかし、TLB
内に保持できるゲストVMの数が1つに制限される為、例
えば、割込み事象またはインターセプションによってゲ
ストVMの実行を終了した時、該ゲストVMのゲスト・エン
トリをすべて無効化する必要がある。したがって、S
E命令によって該ゲストVMを再び起動した場合、前回の
該ゲストVM終了時にTLBに登録されていたエントリに対
応したページをアクセスする時にもアドレス変換が発生
し、命令処理性能上余計なオーバヘッドが生じる。以上
の問題を解決する為には、TLB内にホスト複数のゲストV
Mのアドレス変換情報を同時に保持できる構成とし、ゲ
ストVMを識別する手段を設けることが必要である。
構成に関して、特開昭57-212680号が知られている。こ
こでは、TLBの各エントリにゲスト・フィールドを1ビ
ット分設け、ホストのアドレス変換情報を登録した時
“0”ゲストVMのアドレス変換情報を登録した時“1”
とする。これによりホスト・エントリとゲスト・エント
リを識別が可能となり、TLB内にホストと1つのゲストV
Mのアドレス変換情報が同時に保持される。しかし、TLB
内に保持できるゲストVMの数が1つに制限される為、例
えば、割込み事象またはインターセプションによってゲ
ストVMの実行を終了した時、該ゲストVMのゲスト・エン
トリをすべて無効化する必要がある。したがって、S
E命令によって該ゲストVMを再び起動した場合、前回の
該ゲストVM終了時にTLBに登録されていたエントリに対
応したページをアクセスする時にもアドレス変換が発生
し、命令処理性能上余計なオーバヘッドが生じる。以上
の問題を解決する為には、TLB内にホスト複数のゲストV
Mのアドレス変換情報を同時に保持できる構成とし、ゲ
ストVMを識別する手段を設けることが必要である。
ゲストVM識別する手段を設けた従来例として特公昭57-2
3347号公報に示されるものがある。この従来例では、ゲ
ストVM識別情報として、VM-ID(VMモニターによってMS
上に割当てられた領域の先頭アドレス又は最終アドレ
ス)を用い、アドレス変換バッファにVM-IDを記憶する
ためのフィールドを設け、かつVM-IDを設定するための
レジスタを設けている。アドレス変換バッファを検索す
る際は、予めレジスタにVM-IDを設定しておき、アドレ
ス変換バッファから読み出されたVM-IDとレジスタのVM-
IDとを比較して、一致した場合のみGVからHAの変換がな
される。この技術によればあるゲストVMから他のゲスト
VMへ制御が移される場合にアドレス変換バッファの内容
をクリアすることなくそのまま利用できるようになる。
3347号公報に示されるものがある。この従来例では、ゲ
ストVM識別情報として、VM-ID(VMモニターによってMS
上に割当てられた領域の先頭アドレス又は最終アドレ
ス)を用い、アドレス変換バッファにVM-IDを記憶する
ためのフィールドを設け、かつVM-IDを設定するための
レジスタを設けている。アドレス変換バッファを検索す
る際は、予めレジスタにVM-IDを設定しておき、アドレ
ス変換バッファから読み出されたVM-IDとレジスタのVM-
IDとを比較して、一致した場合のみGVからHAの変換がな
される。この技術によればあるゲストVMから他のゲスト
VMへ制御が移される場合にアドレス変換バッファの内容
をクリアすることなくそのまま利用できるようになる。
しかし、VM-IDは、VMモニターというソフトウェアにて
管理されるものであり、ハードウェア側から見た場合VM
-IDとして何が割り当てられているのかわからない。し
たがってVM-IDをレジスタにセットする際、ソフトウェ
アにおいてVM-IDとして何を割り当てたのか検出して、
ソフトウェアにより検出されたVM-IDをレジスタに設定
し、かつソフトウェアによりゲストVMの実行を開始させ
る必要がある。
管理されるものであり、ハードウェア側から見た場合VM
-IDとして何が割り当てられているのかわからない。し
たがってVM-IDをレジスタにセットする際、ソフトウェ
アにおいてVM-IDとして何を割り当てたのか検出して、
ソフトウェアにより検出されたVM-IDをレジスタに設定
し、かつソフトウェアによりゲストVMの実行を開始させ
る必要がある。
本発明の目的は、仮想計算機システムにおけるゲストVM
の実行開始時の処理性能を向上させることにある。
の実行開始時の処理性能を向上させることにある。
本発明では、ゲストVMの識別手段として、該ゲストVMを
起動したSE命令の第2オペランド、すなわちSDを示
すMS上アドレス(以下、SDアドレスと呼ぶ)、を用い
る。TLBの各エントリに、ホストまたはゲストVMのどち
らのアドレス変換情報を保持するかを指示するゲスト・
フィールドと該エントリがゲストVMの時対応するSDアド
レスを保持する為のSDアドレス・フィールドを設ける。
さらに、SE命令発行の際に該ゲストVMに対応したSD
アドレスがセットされゲストVM実行中保持し続ける手段
(例えばレジスタ)を設け、ゲストVM実行中にTLBを検
索する場合、TLBの各エントリにおいてゲスト・フィー
ルドの値が1でかつSDアドレス・フィールドの値がレジ
スタ上に保持したSDアドレスと一致することがTLBヒッ
ト条件となる。
起動したSE命令の第2オペランド、すなわちSDを示
すMS上アドレス(以下、SDアドレスと呼ぶ)、を用い
る。TLBの各エントリに、ホストまたはゲストVMのどち
らのアドレス変換情報を保持するかを指示するゲスト・
フィールドと該エントリがゲストVMの時対応するSDアド
レスを保持する為のSDアドレス・フィールドを設ける。
さらに、SE命令発行の際に該ゲストVMに対応したSD
アドレスがセットされゲストVM実行中保持し続ける手段
(例えばレジスタ)を設け、ゲストVM実行中にTLBを検
索する場合、TLBの各エントリにおいてゲスト・フィー
ルドの値が1でかつSDアドレス・フィールドの値がレジ
スタ上に保持したSDアドレスと一致することがTLBヒッ
ト条件となる。
SDアドレスは各ゲストVMの状態記述子の位置を示すハー
ド的に決められたアドレスであって、ハードウェア側に
おいて管理可能なものである。
ド的に決められたアドレスであって、ハードウェア側に
おいて管理可能なものである。
SE命令が実行された際SDの各フィールドがハードウ
ェアにより、CPUのハードウェア資源に設定されるが、
このとき、SDアドレスもハードウェアで管理可能なもの
であるので、ハードウェアによって自動的にレジスタに
設定できる。
ェアにより、CPUのハードウェア資源に設定されるが、
このとき、SDアドレスもハードウェアで管理可能なもの
であるので、ハードウェアによって自動的にレジスタに
設定できる。
すなわち、ゲストVMはソフト側からみるとSE命令を
一つ実行しただけで実行され、かつレジスタにゲストVM
を識別するための情報が設定されることになる。
一つ実行しただけで実行され、かつレジスタにゲストVM
を識別するための情報が設定されることになる。
これによりゲストVMの命令処理性能を向上させることが
できる。
できる。
以下、本発明の一実施例を第3図により説明する。
本発明では、TLBの読出しをTLB検索、TLBの書込みをTLB
登録(TLB無効化を含む)、両者を総称してTLBアクセス
と呼ぶ。
登録(TLB無効化を含む)、両者を総称してTLBアクセス
と呼ぶ。
第3図は、仮想計算機システムのCPUのうち、本発明の
関連する部分、すなわち、TLB,TLB参照に必要なレジス
タ群、TLB出力よりTLBヒットまたはTLBミスを判定する
回路(TLBヒット判定部)を示している。
関連する部分、すなわち、TLB,TLB参照に必要なレジス
タ群、TLB出力よりTLBヒットまたはTLBミスを判定する
回路(TLBヒット判定部)を示している。
1は命令実行部、5はゲストVMモード・レジスタ(Gレ
ジスタ)、6はSDアドレス・レジスタ・(SDAレジス
タ)、7はゲストのセグメント・テーブル・オリジン・
レジスタ(GSTOレジスタ)、8はホストのセグメント・
テーブル・オリジン・レジスタ(HSTOレジスタ)であ
る。前述の如く、ホスト・プログラム中にSE命令が
実行された時、ゲストVMの実行が開始される。第4図に
示すとおり、ソフトウェア側でSE命令が発行される
と、ハードウェア側のマイクロ命令がSE命令の実行
を開始する。命令実行部1のハードウェア(マイクロ命
令は、SE命令50の処理としてGレジスタ5を‘1’
にセットし(処理60)、該SE命令の指定するSDアド
レスをSDAレジスタ6に設定し(処理61)、MSより読出
したSD内のCR1フィールドの値をGTSOレジスタ7に設定
する(処理62)。さらに、従来の如く、各フィールドの
値をCPUのハードウェア資源に設定する(処理63)。こ
のようにしてSE命令が実行される。Gレジスタ5が
‘0’の時CPUはホスト・モードとして動作し、‘1’
の時ゲストVMモードとして動作する。ゲスト・プログラ
ム中の割込み事象またはインタセプションによってゲス
トVMの実行を終了する時、Gレジスタ5は命令実行部1
によって‘0’にリセットされる。GSTOレジスタ7は、
ゲストアドレス変換に用いられゲストアドレス空間を識
別する。HSTOレジスタ8は、ホストアドレス変換に用い
られホストアドレス空間を識別する。HSTOレジスタ8お
よびGSTOレジスタ7は、命令実行部1がそれぞれホスト
・プログラム、ゲスト・プログラム中でLCTL命令(制御
レジスタを書換える命令)を実行した時、更新される。
ジスタ)、6はSDアドレス・レジスタ・(SDAレジス
タ)、7はゲストのセグメント・テーブル・オリジン・
レジスタ(GSTOレジスタ)、8はホストのセグメント・
テーブル・オリジン・レジスタ(HSTOレジスタ)であ
る。前述の如く、ホスト・プログラム中にSE命令が
実行された時、ゲストVMの実行が開始される。第4図に
示すとおり、ソフトウェア側でSE命令が発行される
と、ハードウェア側のマイクロ命令がSE命令の実行
を開始する。命令実行部1のハードウェア(マイクロ命
令は、SE命令50の処理としてGレジスタ5を‘1’
にセットし(処理60)、該SE命令の指定するSDアド
レスをSDAレジスタ6に設定し(処理61)、MSより読出
したSD内のCR1フィールドの値をGTSOレジスタ7に設定
する(処理62)。さらに、従来の如く、各フィールドの
値をCPUのハードウェア資源に設定する(処理63)。こ
のようにしてSE命令が実行される。Gレジスタ5が
‘0’の時CPUはホスト・モードとして動作し、‘1’
の時ゲストVMモードとして動作する。ゲスト・プログラ
ム中の割込み事象またはインタセプションによってゲス
トVMの実行を終了する時、Gレジスタ5は命令実行部1
によって‘0’にリセットされる。GSTOレジスタ7は、
ゲストアドレス変換に用いられゲストアドレス空間を識
別する。HSTOレジスタ8は、ホストアドレス変換に用い
られホストアドレス空間を識別する。HSTOレジスタ8お
よびGSTOレジスタ7は、命令実行部1がそれぞれホスト
・プログラム、ゲスト・プログラム中でLCTL命令(制御
レジスタを書換える命令)を実行した時、更新される。
10はTLB参照の為のアドレス・レジスタ、9はTLB参照を
仮想アドレスまたは実アドレスのいずれで行うかを示す
為のリアル・モード・レジスタ(Rレジスタ)を示す。
命令実行部1は、例えば命令読出しやオペランド読出し
でTLBを参照する時、アドレスレジスタ10およびRレジ
スタ9を設定しTLB参照要求を発行する。
仮想アドレスまたは実アドレスのいずれで行うかを示す
為のリアル・モード・レジスタ(Rレジスタ)を示す。
命令実行部1は、例えば命令読出しやオペランド読出し
でTLBを参照する時、アドレスレジスタ10およびRレジ
スタ9を設定しTLB参照要求を発行する。
TLB3は、本実施例ではセット・アソシアティブ方式と
する。すなわち、カラム・アドレスでアドレス付けさ
れ、カラム・アドレスによって選択された1つまたは複
数のエントリはローと呼ばれ、該ローが検索または登録
の対象となる。本実施例ではカラム数512、ロー数1、
すなわち合計512エントリを待つTLB構成とするが、他の
構成についても容易に類推される。カラム・アドレス
は、アドレスのビット11-19とする。TLB3は、アドレス
・レジスタ10のカラム・アドレス部34をアドレス・デコ
ーダ12によってデコードし、アクセスするエントリが選
択される。
する。すなわち、カラム・アドレスでアドレス付けさ
れ、カラム・アドレスによって選択された1つまたは複
数のエントリはローと呼ばれ、該ローが検索または登録
の対象となる。本実施例ではカラム数512、ロー数1、
すなわち合計512エントリを待つTLB構成とするが、他の
構成についても容易に類推される。カラム・アドレス
は、アドレスのビット11-19とする。TLB3は、アドレス
・レジスタ10のカラム・アドレス部34をアドレス・デコ
ーダ12によってデコードし、アクセスするエントリが選
択される。
TLB3の各エントリは、有効フィールド(V)、ゲスト・フ
ィールド(G)、状態記述子アドレス・フィールド(SDA)、
実アドレス・フィールド(R)セグメント・テーブル・オ
リジン・フィールド(STO)、仮想アドレス・フィールド
(VA)、絶対アドレス・フィールド(PA)から構成される。
第1図で各フィールドのビット数を()で示している。
Vフィールドは、該エントリが有効か無効を示す1ビッ
トのフィールドである。該エントリが有効な時‘1’と
なり、無効な時‘0’となる。Gフィールドは、該エン
トリかホストまたはゲストVMのいずれのアドレス変換情
報であるかを示す1ビットのフィールドである。ホスト
の時‘0’、ゲストVMの時‘1’となる。SDAフィール
ドは、該エントリがゲストVMの時、すなわち、Gフィー
ルドが‘1’の時意味を持ちゲストVMを起動したSE
命令の指定するSDアドレスが格納される。SDは256B境界
にある為、アドレスのビット1-23が格納され、23ビット
のフィールドである。Rフィールドは、該エントリが実
アドレスまたは仮想アドレスであるかを示す1ビットの
フィールドである。‘0’の時実アドレスを表わし、
‘1’の時仮想アドレスを表わす。Cフィールドは、該
エントリが共通セグメントを用いたアドレス変換情報で
あることを示す1ビットのフィールドである。ホスト・
モードではホスト・アドレス変換、ゲストVMモードでは
ゲスト・アドレス変換のそれぞれにおいて、参照したセ
グメント・テーブル・エントリの共通セグメント・ビッ
トが‘1’の時、本フィールドが‘1’となる。STOフ
ィールドは、該エントリのアドレス変換時のセグメント
・テーブル・オリジンを表わす。370/XAアーキテクチャ
では、STOのビット1-25がアドレスを表わし、本フィー
ルドは25ビットである。VAフィールドは、TLBアクセス
のページ・フレーム・アドレスのうちカラム・アドレス
以外のビット、すなわち、ビット1-10を格納する10ビッ
トのフィールドである。
ィールド(G)、状態記述子アドレス・フィールド(SDA)、
実アドレス・フィールド(R)セグメント・テーブル・オ
リジン・フィールド(STO)、仮想アドレス・フィールド
(VA)、絶対アドレス・フィールド(PA)から構成される。
第1図で各フィールドのビット数を()で示している。
Vフィールドは、該エントリが有効か無効を示す1ビッ
トのフィールドである。該エントリが有効な時‘1’と
なり、無効な時‘0’となる。Gフィールドは、該エン
トリかホストまたはゲストVMのいずれのアドレス変換情
報であるかを示す1ビットのフィールドである。ホスト
の時‘0’、ゲストVMの時‘1’となる。SDAフィール
ドは、該エントリがゲストVMの時、すなわち、Gフィー
ルドが‘1’の時意味を持ちゲストVMを起動したSE
命令の指定するSDアドレスが格納される。SDは256B境界
にある為、アドレスのビット1-23が格納され、23ビット
のフィールドである。Rフィールドは、該エントリが実
アドレスまたは仮想アドレスであるかを示す1ビットの
フィールドである。‘0’の時実アドレスを表わし、
‘1’の時仮想アドレスを表わす。Cフィールドは、該
エントリが共通セグメントを用いたアドレス変換情報で
あることを示す1ビットのフィールドである。ホスト・
モードではホスト・アドレス変換、ゲストVMモードでは
ゲスト・アドレス変換のそれぞれにおいて、参照したセ
グメント・テーブル・エントリの共通セグメント・ビッ
トが‘1’の時、本フィールドが‘1’となる。STOフ
ィールドは、該エントリのアドレス変換時のセグメント
・テーブル・オリジンを表わす。370/XAアーキテクチャ
では、STOのビット1-25がアドレスを表わし、本フィー
ルドは25ビットである。VAフィールドは、TLBアクセス
のページ・フレーム・アドレスのうちカラム・アドレス
以外のビット、すなわち、ビット1-10を格納する10ビッ
トのフィールドである。
PAフィールドは、絶対アドレスのページ・フレーム・ア
ドレスの19ビットを格納する。
ドレスの19ビットを格納する。
TLBヒット判定部4は、比較回路14〜18,ANDゲート19・2
0・22,ORゲート21,50否定ゲート13・23から構成される。
比較回路14は、TLBのGフィールド出力38とGレジスタ
出力27を比較し、一致した時、‘1’を出力する。比較
回路15は、TLBのSDAフィールド出力39とSDAレジスタ出
力28を比較する。ANDゲート19・20,否定ゲート13,ORゲ
ート50によって、VMシステムに関するTLBヒット条件が
生成される。すなわち、ホスト・モード(Gレジスタ5
が‘0’)でかつTLBエントリのGフィールドが
‘0’、または、ゲストVMモード(Gレジスタ5が
‘1’)でかつTLBエントリのGフィールドが‘1’で
かつ現在実行中のゲストVMのSDアドレス(SDAレジスタ
6の値)がTLBエントリのSDAフィールドと一致する時、
ORゲート50に‘1’が出力される。ORゲート21は、アド
レス空間に関するTLBヒット条件を生成する。すなわ
ち、TLBエントリが共通セグメント(TLBのCフィールド
が‘1’)、またはTLBエントリのSTO値が現在のSTO31
と一致した時、ORゲート21に‘1’が出力される。な
お、現在のSTO31として、Gレジスタ5に対応してセレ
クタ11によってGSTOレジスタ7またはHSTO8のいずれか
が選択される。ANDゲート22によって、TLBヒット45が生
成される。否定ゲート23によってTLBミス46が生成され
る。TLBヒット45およびPAフィールド出力44は、キヤッ
シュ制御部(省略)へ転送される。TLBミス46は、アド
レス変換部(省略)へ転送される。
0・22,ORゲート21,50否定ゲート13・23から構成される。
比較回路14は、TLBのGフィールド出力38とGレジスタ
出力27を比較し、一致した時、‘1’を出力する。比較
回路15は、TLBのSDAフィールド出力39とSDAレジスタ出
力28を比較する。ANDゲート19・20,否定ゲート13,ORゲ
ート50によって、VMシステムに関するTLBヒット条件が
生成される。すなわち、ホスト・モード(Gレジスタ5
が‘0’)でかつTLBエントリのGフィールドが
‘0’、または、ゲストVMモード(Gレジスタ5が
‘1’)でかつTLBエントリのGフィールドが‘1’で
かつ現在実行中のゲストVMのSDアドレス(SDAレジスタ
6の値)がTLBエントリのSDAフィールドと一致する時、
ORゲート50に‘1’が出力される。ORゲート21は、アド
レス空間に関するTLBヒット条件を生成する。すなわ
ち、TLBエントリが共通セグメント(TLBのCフィールド
が‘1’)、またはTLBエントリのSTO値が現在のSTO31
と一致した時、ORゲート21に‘1’が出力される。な
お、現在のSTO31として、Gレジスタ5に対応してセレ
クタ11によってGSTOレジスタ7またはHSTO8のいずれか
が選択される。ANDゲート22によって、TLBヒット45が生
成される。否定ゲート23によってTLBミス46が生成され
る。TLBヒット45およびPAフィールド出力44は、キヤッ
シュ制御部(省略)へ転送される。TLBミス46は、アド
レス変換部(省略)へ転送される。
2は、TLB書込み制御部である。アドレス変換による
TLB登録、およびTLBエントリの無効化を制御する。TLB
登録時にはGフィールド、SDAフィールド、Rフィール
ド、STOフィールド、VMフィールドはそれぞれ、Gレジ
スタ5、SDAレジスタ6、Rレジスタ9、STO31、アドレ
ス・レジスタ10の値が格納される。また、Cフィールド
およびPAフィールドは、アドレス変換部から転送された
値が格納される。
TLB登録、およびTLBエントリの無効化を制御する。TLB
登録時にはGフィールド、SDAフィールド、Rフィール
ド、STOフィールド、VMフィールドはそれぞれ、Gレジ
スタ5、SDAレジスタ6、Rレジスタ9、STO31、アドレ
ス・レジスタ10の値が格納される。また、Cフィールド
およびPAフィールドは、アドレス変換部から転送された
値が格納される。
本発明では、アドレス変換におけるゲストVMの識別手段
としてSDアドレスを採用した点に特徴がある。すなわ
ち、SE命令実行の際ハード的に該ゲストVMのSDアド
レスが設定されるSDAレジスタとTLB内の各エントリにSD
Aフィールドを設け、TLBヒット判定部に読出したTLBエ
ントリのSDAフィールド値とSDAレジスタを比較する手段
を設けた。SDAレジスタは、SE命令実行時にSDアド
レスがハードウェア的に設定される。これらにより、TL
B内にホストと複数のゲストVMのアドレス変換情報を同
時に保持することが可能となり、又ゲストVMはソフト側
から見るとSE命令を一つ実行しただけでディスパッ
チされる。
としてSDアドレスを採用した点に特徴がある。すなわ
ち、SE命令実行の際ハード的に該ゲストVMのSDアド
レスが設定されるSDAレジスタとTLB内の各エントリにSD
Aフィールドを設け、TLBヒット判定部に読出したTLBエ
ントリのSDAフィールド値とSDAレジスタを比較する手段
を設けた。SDAレジスタは、SE命令実行時にSDアド
レスがハードウェア的に設定される。これらにより、TL
B内にホストと複数のゲストVMのアドレス変換情報を同
時に保持することが可能となり、又ゲストVMはソフト側
から見るとSE命令を一つ実行しただけでディスパッ
チされる。
第1図はSE命令を示した図、第2図はゲストVMにお
けるアドレス変換を示した図、第3図は本特許の実施例
で特にTLBに関連した図、第4図はSE命令の処理を
示す図である。 1……命令実行部 2……TLB書込み制御部 3……TLB 4……TLBヒット判定部 5……ゲスト・レジスタ 6……SDAレジスタ 7……ゲスト・STOレジスタ 8……ホストSTOレジスタ 10……アドレス・レジスタ
けるアドレス変換を示した図、第3図は本特許の実施例
で特にTLBに関連した図、第4図はSE命令の処理を
示す図である。 1……命令実行部 2……TLB書込み制御部 3……TLB 4……TLBヒット判定部 5……ゲスト・レジスタ 6……SDAレジスタ 7……ゲスト・STOレジスタ 8……ホストSTOレジスタ 10……アドレス・レジスタ
Claims (1)
- 【請求項1】ゲスト仮想計算機実行開始命令の実行の際
に、該命令で指定される主記憶上のゲスト仮想計算機状
態記述子を中央処理装置に設定することによりゲスト仮
想計算機の開始を指示する命令実行部と、ゲスト仮想計
算機で用いるアドレス空間を主記憶上のアドレス空間に
変換するアドレス変換バッファとを有する仮想計算機シ
ステムにおいて、 前記アドレス変換バッファの各エントリに設けられ、ゲ
スト仮想計算機実行開始命令が指定する状態記述子の主
記憶上のアドレスを格納するための状態記述子アドレス
フィールドと、 前記命令実行部がゲスト仮想計算機実行開始命令を実行
した時に、前記状態記述子が設定される状態記述子アド
レスレジスタと、 ゲスト仮想計算機がアドレス空間をアクセスする時に、
前記状態記述子アドレスレジスタと前記アドレス変換バ
ッファの状態記述子アドレスフィールドとのデータを比
較し、一致するときのみ、前記アドレス変換バッファの
アドレス変換が成功したと判定する比較手段とを有する
ことを特徴とする仮想計算機システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61054704A JPH0658650B2 (ja) | 1986-03-14 | 1986-03-14 | 仮想計算機システム |
US07/026,064 US4816991A (en) | 1986-03-14 | 1987-03-16 | Virtual machine system with address translation buffer for holding host and plural guest entries |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61054704A JPH0658650B2 (ja) | 1986-03-14 | 1986-03-14 | 仮想計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62212746A JPS62212746A (ja) | 1987-09-18 |
JPH0658650B2 true JPH0658650B2 (ja) | 1994-08-03 |
Family
ID=12978185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61054704A Expired - Lifetime JPH0658650B2 (ja) | 1986-03-14 | 1986-03-14 | 仮想計算機システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US4816991A (ja) |
JP (1) | JPH0658650B2 (ja) |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0810437B2 (ja) * | 1987-05-11 | 1996-01-31 | 株式会社日立製作所 | 仮想計算機システムのゲスト実行制御方式 |
JP2523653B2 (ja) * | 1987-07-08 | 1996-08-14 | 株式会社日立製作所 | 仮想計算機システム |
JP2510605B2 (ja) * | 1987-07-24 | 1996-06-26 | 株式会社日立製作所 | 仮想計算機システム |
JP2507756B2 (ja) * | 1987-10-05 | 1996-06-19 | 株式会社日立製作所 | 情報処理装置 |
JP2615103B2 (ja) * | 1987-12-11 | 1997-05-28 | 株式会社日立製作所 | 仮想計算機システム |
US5008811A (en) * | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
JPH01255945A (ja) * | 1988-04-06 | 1989-10-12 | Hitachi Ltd | 仮想計算機におけるアドレス変換装置 |
JPH0293952A (ja) * | 1988-09-30 | 1990-04-04 | Hitachi Ltd | 仮想計算機システム |
JP2825550B2 (ja) * | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
JPH07117918B2 (ja) * | 1989-09-25 | 1995-12-18 | 株式会社日立製作所 | データ処理システム |
JP2839201B2 (ja) * | 1990-07-30 | 1998-12-16 | 株式会社日立製作所 | 仮想計算機システム |
US5317754A (en) * | 1990-10-23 | 1994-05-31 | International Business Machines Corporation | Method and apparatus for enabling an interpretive execution subset |
US5381535A (en) * | 1990-10-24 | 1995-01-10 | International Business Machines Corporation | Data processing control of second-level quest virtual machines without host intervention |
US5317705A (en) * | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5437033A (en) * | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
JP2778291B2 (ja) * | 1991-05-31 | 1998-07-23 | 日本電気株式会社 | アドレス変換レジスタ制御方式 |
US5319760A (en) * | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
JPH0512126A (ja) * | 1991-07-05 | 1993-01-22 | Hitachi Ltd | 仮想計算機のアドレス変換装置及びアドレス変換方法 |
JP3259969B2 (ja) * | 1991-07-09 | 2002-02-25 | 株式会社東芝 | キャッシュメモリ制御装置 |
US5555385A (en) * | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5649140A (en) * | 1995-03-31 | 1997-07-15 | International Business Machines Corporation | System for use in translating virtual addresses into absolute addresses |
JPH0981459A (ja) * | 1995-09-19 | 1997-03-28 | Hitachi Ltd | アドレス変換バッファ装置 |
US7069413B1 (en) | 2003-01-29 | 2006-06-27 | Vmware, Inc. | Method and system for performing virtual to physical address translations in a virtual machine monitor |
US7111146B1 (en) | 2003-06-27 | 2006-09-19 | Transmeta Corporation | Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine |
US7444493B2 (en) * | 2004-09-30 | 2008-10-28 | Intel Corporation | Address translation for input/output devices using hierarchical translation tables |
US9058292B2 (en) | 2004-12-29 | 2015-06-16 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
US7734892B1 (en) | 2005-03-31 | 2010-06-08 | Rozas Guillermo J | Memory protection and address translation hardware support for virtual machines |
US8522253B1 (en) | 2005-03-31 | 2013-08-27 | Guillermo Rozas | Hardware support for virtual machine and operating system context switching in translation lookaside buffers and virtually tagged caches |
EP2477109B1 (en) | 2006-04-12 | 2016-07-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US8677105B2 (en) | 2006-11-14 | 2014-03-18 | Soft Machines, Inc. | Parallel processing of a sequential program using hardware generated threads and their instruction groups executing on plural execution units and accessing register file segments using dependency inheritance vectors across multiple engines |
US8275971B2 (en) | 2008-08-27 | 2012-09-25 | International Business Machines Corporation | Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities |
EP3156896B1 (en) | 2010-09-17 | 2020-04-08 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
KR101636602B1 (ko) | 2011-03-25 | 2016-07-05 | 소프트 머신즈, 인크. | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
KR101638225B1 (ko) | 2011-03-25 | 2016-07-08 | 소프트 머신즈, 인크. | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행 |
WO2012135041A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
KR101639854B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조 |
TWI666551B (zh) | 2011-05-20 | 2019-07-21 | 美商英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
EP2783280B1 (en) | 2011-11-22 | 2019-09-11 | Intel Corporation | An accelerated code optimizer for a multiengine microprocessor |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9430410B2 (en) | 2012-07-30 | 2016-08-30 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load accesses of a cache in a single cycle |
US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
KR20150130510A (ko) | 2013-03-15 | 2015-11-23 | 소프트 머신즈, 인크. | 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법 |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
CN105210040B (zh) | 2013-03-15 | 2019-04-02 | 英特尔公司 | 用于执行分组成块的多线程指令的方法 |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US9223574B2 (en) * | 2014-03-27 | 2015-12-29 | International Business Machines Corporation | Start virtual execution instruction for dispatching multiple threads in a computer |
US9772867B2 (en) * | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
US9213569B2 (en) | 2014-03-27 | 2015-12-15 | International Business Machines Corporation | Exiting multiple threads in a computer |
US9195493B2 (en) * | 2014-03-27 | 2015-11-24 | International Business Machines Corporation | Dispatching multiple threads in a computer |
US9389897B1 (en) | 2014-12-18 | 2016-07-12 | International Business Machines Corporation | Exiting multiple threads of a simulation environment in a computer |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4456954A (en) * | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
US4695950A (en) * | 1984-09-17 | 1987-09-22 | International Business Machines Corporation | Fast two-level dynamic address translation method and means |
US4674038A (en) * | 1984-12-28 | 1987-06-16 | International Business Machines Corporation | Recovery of guest virtual machines after failure of a host real machine |
US4660144A (en) * | 1985-05-23 | 1987-04-21 | International Business Machines Corp. | Adjunct machine |
-
1986
- 1986-03-14 JP JP61054704A patent/JPH0658650B2/ja not_active Expired - Lifetime
-
1987
- 1987-03-16 US US07/026,064 patent/US4816991A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US4816991A (en) | 1989-03-28 |
JPS62212746A (ja) | 1987-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0658650B2 (ja) | 仮想計算機システム | |
US9720846B2 (en) | Memory swap for direct memory access by a device assigned to a guest operating system | |
US7886293B2 (en) | Optimizing system behavior in a virtual machine environment | |
US7069413B1 (en) | Method and system for performing virtual to physical address translations in a virtual machine monitor | |
US8380907B2 (en) | Method, system and computer program product for providing filtering of GUEST2 quiesce requests | |
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
US7734892B1 (en) | Memory protection and address translation hardware support for virtual machines | |
US9772962B2 (en) | Memory sharing for direct memory access by a device assigned to a guest operating system | |
US20080294867A1 (en) | Arithmetic processor, information procesing apparatus and memory access method in arithmetic processor | |
US8458438B2 (en) | System, method and computer program product for providing quiesce filtering for shared memory | |
US6519684B1 (en) | Low overhead method for selecting and updating an entry in a cache memory | |
US7617379B2 (en) | Multi-hit control method for shared TLB in a multiprocessor system | |
US10120709B2 (en) | Guest initiated atomic instructions for shared memory page host copy on write | |
JPH0619739B2 (ja) | 多重プロセツサ・システムのキヤツシユを制御する方法 | |
JP4867451B2 (ja) | キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム | |
US6615337B1 (en) | Method and apparatus for maintaining coherency in a translation lookaside buffer | |
JP2534662B2 (ja) | 命令キヤツシユ制御方法 | |
US20230161709A1 (en) | Processor, computer system, and method for flushing hierarchical cache structure based on a designated key identification code and a designated address | |
JPH0766352B2 (ja) | 仮想計算機システム | |
JPS6252334B2 (ja) | ||
JPS62222342A (ja) | 仮想計算機システム | |
JP2555461B2 (ja) | キャッシュメモリシステム | |
JPH03185539A (ja) | データ処理装置 | |
JPS63253449A (ja) | 仮想計算機システム | |
JPH077365B2 (ja) | 情報処理装置 |