JPS60171552A - アドレス変換処理方法 - Google Patents

アドレス変換処理方法

Info

Publication number
JPS60171552A
JPS60171552A JP59238700A JP23870084A JPS60171552A JP S60171552 A JPS60171552 A JP S60171552A JP 59238700 A JP59238700 A JP 59238700A JP 23870084 A JP23870084 A JP 23870084A JP S60171552 A JPS60171552 A JP S60171552A
Authority
JP
Japan
Prior art keywords
guest
cpu
real
host
tlb
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.)
Granted
Application number
JP59238700A
Other languages
English (en)
Other versions
JPH0458056B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS60171552A publication Critical patent/JPS60171552A/ja
Publication of JPH0458056B2 publication Critical patent/JPH0458056B2/ja
Granted 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、一般に、マルチプロセッサ計算機システムに
おいて複数のCPUの変換ルックアサイド・バッファ(
TLB)の内容の効率的な除去制御に係り、複数の仮想
システムを並行してエミュレートできる仮想計算機(V
M)オペレーテイング・システムの性能を改善する為の
ものである。
本発明は、更に詳細に説明すれば、実CPU上のゲスト
・プログラムのタスク指命終了後、およびその実CPU
上の同一プログラムまたはもう1つのプログラムのタス
ク指名後に保持できる、実ユニプロセッサ(UP)また
は実マルチプロセッサ(MP)システムの実CPUにあ
るゲストTLB項目の内容の完全性に係る。
[従来技術] 本明細書に関連する特許出願としては特開昭58−21
2680号がある。この特許出願では、仮想ユニプロセ
ッサ(UP)システムを実UPまたは実マルチプロセッ
サ(MP)においてエミュレートできる。解釈実行開始
(SIE)命令を説明している。解釈実行の更に詳しい
説明は、論文”5yste+s/370 Bxtend
ed Architecture:Facilitie
s For Virtual Machines”、 
IBMJournal of Re5earch an
d Development。
November 1983に記載されてイル。
要するに、SIEは、主記憶装置(MS)の制御ブロッ
クのOPコードおよびオペランド・アドレスから成る特
権命令として、前記特許出願に説明されている。この制
御ブロックは、状態記述(SD)と呼ばれる。SDは、
仮想記憶装置を有する仮想CPUを含む仮想システムの
状態、および仮想システムが実システムでいかに動作す
べきかを制御する一定の状態を定義する値を受取る複数
フィールドを含む。それ故、SDは、UPゲストとも呼
ばれる仮想ユニプロセッサ(UP)システムを定義する
複数のSDは、実主記憶装置に存在し、複数の仮想tJ
Pシステム、すなわち複数のUPゲストをそれぞれ定義
することができる。実UPシステムは、複数の仮想UP
システムを含み、実CPUおよび実主記憶装置の部分に
重ねることができる。
複数の仮想UPシステムは、SIE命令を連続して実行
することにより、実システム上で動作し、それぞれのS
Dを別々に見つけてUPゲストを指定する。SIE呼出
しと呼ばれるプロセスは、ホスト・プログラムの命令ス
トリームにあるSIE命令が実行されるごとに生じる。
このプロセスは、エミュレーション・モード状態をオン
にセットし、実CPUのマイクロコードとハードウェア
のサブセットは、SIE命令が呼出した仮想UPシステ
ムの動作をサポートすることができる。SI’E命令の
後、ゲスト・プログラムは、SIE命令が定義した実U
Pシステムの実行を開始する。SIE命令は、そのゲス
ト・プログラムが実行、されている限り、実行中である
とみなされる。ゲスト・プログラム実行は、並行SIE
実行を終了するいくつかの異なった条件のうちのいずれ
かによって終了することができる。SIE実行は割込み
または通知割込みによって終了する。
SIE割込みは構造的に定義されたすべての割込みを含
む。SIE通知割込みは、割込み条件以外の、SIE実
行を終了する条件を含む。例えば、一定の特権命令はS
IE実行に割込むことができる。SIE実行が終了する
と、IBM仮想計算機/拡張アーキテクチャ(VM/X
A)移行補助制御プログラム(製品番号5664−16
9)に似た仮想計算機制御プログラムのような、ホスト
・システムのオペレーティング・システム・プログラム
が呼出される。
SIEが呼出されたとき、SDにあるパラメータ値の多
くをCPUにロードすることにより、これらの値を主記
憶装置に繰返しアクセスすることが避けられるので、S
IEの性能が高められる。
CPHにロードされるSDパラメータには、SD状態モ
ード・フィールド、ゲスト主記憶装置の大きさおよび境
界、ゲスト記憶セグメントおよびページの大きさ、なら
びに、ゲスト・プログラム・ステータス・ワード(PS
W)および他の所定のフィールドを含む主記憶装置のゲ
ストCPUプレフィックス保管領域(PSA)を定める
プレフィックス値が含まれる。
また、仮想UPシステム(仮想UPゲストとも呼ばれる
)は、共通の実記憶装置に密結合されている複数のCP
Uから成る実マルチプロセッサ(MP)システムに設け
ることもできる。このような実MPシステムでは、複数
の仮想UPシステムは、実UPシステムで定義するのと
同様に、実主記憶装置におけるそれぞれの複数SDによ
って定義することができる。このように、複数SDの各
々は、実MPシステムにおけるそれぞれの仮想UPゲス
トを定義する。MPにおける複数の実CPUのどれか1
つまたはそれ以上は、いつでも、それぞれのS’IE命
令によって実行される。エミュレーション・モードにな
り、複数の仮想UPシステムは同時に実MP主記憶装置
のそれぞれのSDによって実行することができる。
実MPシステムのUPゲストは、実行に際し、最初に実
CPUの1つにタスク指名されてから、(I10待ち状
態への移行の場合のように)通知割込みされ、または(
ホストI10動作を行なう場合のように)割込まれる。
その後、ゲストは、その最初のCPUが他のプログラム
実行に使用中である間に、再び実行可能の場合、もう1
つのCPUにタスク指名されることがある。
UPゲストはCPU上で仮想アドレスを使ってプログラ
ムを実行するので、仮想アドレスはアドレス変換を必要
とし、変換されてから各実行CPUの変換ルックアサイ
ド・バッファ(TLB)に保持される。同じUPゲスト
が、そのゲストをタスク指名するそれぞれの実CPUで
アドレス変換されることがある。
アドレス変換は、ゲスト実行中、実行中のcpUのTL
Bに保持される。ゲスト実行が一時的に中止された後、
TLB項目に存在するゲスト変換が後に必要であるかど
うかは分らない。その理由は若し、ゲストが次にもう1
つのCPUにタスク指名されるならば、ゲスト変換を要
しないからである。前記米国特許出願第273532号
に示唆されているように、ゲスト・プログラムまたはホ
スト・プログラムがタスク指名されている場合、TLB
項目(ホストのTLB項目ではない)は無効にされるか
、またはゲスト・プログラムはCPU上のSIE実行を
終了している。従って、該CPUにおける次のプログラ
ムは、新しいアドレス変換のため、これらの無効になっ
た項目を直ちに使用することがある。しかしながら、該
CPUにおける次のプログラムは、実際には、無効にな
った、前のゲストTLB項目のすべてを使用することは
できない。
[発明が解決しようとする問題点] 本発明の目的は、第1に、ゲストがタスク指名されてい
る実CPUに存在するゲストTLB項目の使用可能性を
保証することである。
本発明の目的は、第2に、ホスト・プログラム実行中(
すなわち、非エミュレーション、換言すれば非解釈実行
モードの場合)、実CPUにおけるゲストT L B変
換を処理する効率を改善することである。
[問題点を解決するための手段] 本発明は、ゲストTLB項目の完全性が再タスク指名に
よって影響を受けない場合、および1項目の完全性がホ
スト変換の無効化によって危くなる場合を識別し、該ホ
スト変換に依存する。CPUにある全ゲストTLB項目
を無効化できるプロセスを含む。例えば、ホスト・プロ
グラムがホスト・ページ・テーブル項目を無効にする度
に、実システムのCPUに存在するゲスト・アドレス変
換に多分影響を与えるので、同じホスト・ページをアド
レス指定する、影響を受けた全ゲストTLB項目を無効
にしなければならない。しかし、若し、ホスト・プログ
ラムが、タスク指名されている間に、ホスト・ページ・
テーブル項目を無効にしなければ、本発明によって、実
システムの各ゲストTLB項目は現に存在するアドレス
変、換を保持し、同じゲストの次のタスク指名によって
使用することができ、CPUが同じ仮想アドレスを再び
変換する試みを重複しなくてもよい。ゲスト再変換の回
避により、仮想計算機(VM)環境のゲスト・プログラ
ムのような、UPまたはMPシステムで実行されるゲス
ト・プログラムの性能を大幅に高めることができる。
本発明は、実MP−システムにおける動作のために仮想
MPシスシム(MPゲストとも呼ばれる)の概念を用い
る。仮想MPシステムは複数の関連SDによって定義さ
れる。各SDは仮想CPUおよび仮想MPに密に結合し
た主記憶装置を定義する。仮想UP (UPゲストとも
呼ばれる)は単一のSDによって定義され、該SDはU
Pの仮想CPUおよびその仮想主記憶装置を表わす。
本発明は、実UPまたは実MPシステム上で実行中の仮
想U’Pシステムおよび仮想MPシステムによって動作
する。UPゲストは、実MPの2つ以上の実CPU上で
、異なった時間に実行できる。
そして各CPUは、UPゲストが各CPUでの実行を(
多分一時的に)中止した後、ゲストTLB項目を保持で
きる。そして、ゲストは後に、同じか又はもう1つの実
CPUにタスク指名できる。
実CPU上で実行中のUPゲストは、いつでも、S/3
70ページ・テーブル項目無効化(IPTE)命令を出
し、仮想ページ・テーブル項目を無効にすることができ
る。システムは、ゲストIPTE実行後、その無効にな
ったゲスト・ページ・テーブル項目を用いるアドレス変
換を含むゲストTLB項目が後に使用できないことを、
保証されなければならない。この保証は、下記フィール
ドを含む新しいフィールドを用いる独特のプロセス(1
)各SDに置かれた最終CPUアドレス(最終CPA)
(2)実MPの各実CPUに登録された1つまたはその
以上のSDアドレス(SDA)。
これらのフィールドは、SIE命令の実行を呼出す際に
処理され: (1)このUPゲストを現にタスク指名している実CP
Uは、このゲストを最後にタスク指名した同じ実C’P
Uであるか、 (2)このゲスト(そのSDアドレスで表わされる)を
前にこのCPUにタスク指名したか どうかを決定する。この2つの条件(1)および(2)
は、実MPシステム上で、このUPゲストによって前に
与えられたTLBの全ゲスト項目を。
このゲストが該CPUにタスク指名されなかった期間中
に、変更していないことを保証するのに必要とされる。
各ゲストMPは、制御ブロックをインタロックしている
それぞれのゲストMP、(GMP)によって与えられる
。GMPは、その仮想CPUと、その仮想CPUのどれ
かに代るホスト・プログラムとによるゲスト仮想記憶装
置に関連したページ・テーブル項目の変更を阻止するが
、ある仮想CPUはそのMPゲストの仮想記憶装置に影
響する仮想ページ・テーブル項目を無効にする過程にあ
り。
かつ、ホスト・プログラムは、ゲスト・ページ・テーブ
ル項目の内容に応じて命令のシミュレーションを実行す
る。MPゲストの各SDは、その仮想MPシステムの共
通GMPへの同じポインタ(すなわちGMPA)によっ
て与えられる。すなわち、MPゲストの各SDは、GM
PA (すなわち、GMPアドレス)を含み、関連する
GMPインタロック・フィールドを見つける。関連した
仮想記憶装置の仮想ページ・テーブル項目を無効にする
のに必要な、該MPゲストのゲスト・プログラムは、先
ず、そのSDのGMPAを用いて関連GMPをアクセス
し、インタロックがオンであるかオフであるかを決める
。若し、インタロックがオンならば、無効化を要求して
いるプログラムはその時点で無効化を行なうことを許さ
れず、関連GMFインタロックがオフ状態にセットされ
るまで待たされる。GMPがオフ状態の場合、関連MP
仮想記憶装置に対する無効化要求は、インタロックがオ
ンにセットされた後に許される。前述の本発明の方法は
、データ処理システムのハードウェアまたはマイクロコ
ードで実現される。ゲスト・システムの完全性は、ホス
ト・プログラムが同じGMPインタロックを用い、ゲス
ト・ページ・テーブル項目に依存する命令シミュレーシ
ョンの間、無効化を阻止することが必要である。
選択的なゲストTLB無効化の問題は、UPゲストの場
合よりもMPゲストの場合の方が難かしい。例えば、M
Pゲストは2つの仮想CPUを有することがあり、第1
の仮想CPU上の第1のゲスト・プログラムは同じ第1
の実CPUに再タスク指名され、第1のゲスト・プログ
ラムは、第1のCPUの最後のタスク指名から保持され
たゲストTLB変換を利用できる。しかしながら、前に
そのMPゲストの第2の仮想CPU上で実行中の第2の
ゲスト・プログラムは、第2の実CPUにタスク指名さ
れていたが、現在は第3の実CPUに再タスク指名され
、第2の実CPUに保持されたゲストTLB変換を利用
できない。本例では。
第1のゲスト・プログラムは保持されたゲストTLB項
目を使用できるが、第2のゲスト・プログラムは保持さ
れたゲストTLB項目を使用できない。
ホストTLB変換(ホスト・プログラムのアドレス変換
)は常に単一レベルであり、1つのページ・テーブル(
ホスト・ページ・テーブル)しか使用しない。他方、ゲ
ストTLB変換(ゲスト・プログラムのアドレス変換)
は単一レベル又は2重レベルの場合があり、2重レベル
の場合は、ゲスト仮想記憶装置のゲスト・ページ・テー
ブルの外に最大3つのホスト・ページ・テーブルを使用
できる。
ホスト・システムにおける実行記憶装置割振りは、ゲス
ト・プログラムではなくポスト・プログラムによって制
御される。実CPUが非エミュレーション・モードの場
合、ホスト・プログラムは、実行記憶装置を動的に再割
振りし、データ・ページを、実主記憶装置内で実主記憶
装置とI10装置の間のそれぞれのページ・フレームに
移すことができる。よって、再割振りされたページのペ
ージ・テーブル項目(PTE)のページ・フレーム実ア
ドレス(PFRA)は、関連ホスト・ページ・テーブル
で変更される。この場合、ホストは、異なったPFRA
を挿入する前に先ずPTEを無効にする必要がある。し
がし、実CPUがエミュレーション・モードの場合、ゲ
ストは、ホスト・ページ・テーブルまたは他のゲスト・
ページ・テーブルを変更することも、ホストPTEまた
は他のゲストPTEを無効にすることも、あるいは、現
に存在するホストTLB変換または他のゲストTLB変
換に影響を及ぼすこともできない。ゲストは、ゲスト自
身の仮想PTE、ゲスト自身の変換、およびゲストのT
LB項目 −ゲストが管理責任を有する、ゲスト自身の
仮想ページ・テーブル項目の、ゲストによる無効化によ
ってしか影響を受けない −にしか影響を及ぼす事がで
きない。
IPTE命令によるホスト・ページ・テーブル項目(P
TE)無効化は、影響を受けた全ゲスト1’ L B項
目を信頼できないものにする(すなわち。
ホスト・ページをアドレス指定するこれらの項目が無効
になる)。ホストによるIPTE命令の実行は、ページ
・テーブル項目”(P T E )を定義するIPTE
オペランドを無効にする。、PTE項目は、実主記憶装
置のページ・フレームを定義するページ・フレーム実ア
ドレス(PFRA)を含み、その変換はI PTE命令
によって無効にされる。
IPTE命令はPTEを無効にし、かつ、この無効にな
ったPTEを使用するアドレス変換を含むCPUのTL
B項目を無効にする。影響を受けたゲストTLB項目は
、ゲスト仮想アドレスからホスト実アドレスへの変換を
与えるものであるが。
その場合、ホスト実アドレスは、現在のホストIPTE
によって無効になっている。ホスト仮想アドレス/ホス
ト実アドレス変換によって得られたものである。
[実施例] 第2図〜第5図の各々は、同じハードウェア構成例を表
わし、IBMのVM/XA移行補助のような、ホスト・
システムによって動作する異なった数のゲストをサポー
トする。第1A図〜第1E図、第5図、第6図、第7A
図〜第7C図に示されたプロセス発明は、vi/xA移
行補助のオペレーティング・システム・プログラムとと
もに使用するマイクロコードまたはハードウェアで実施
可能である。第8図は、オペレーティング・システムの
ソフトウェアとして実施可能な本発明の特性を表わす。
第2図〜第5図に示されたハードウェアは、実マルチプ
ロセッサ・システム(MP)のハードウェアで、CPU
A、BおよびC、システム制御装置(SC)11、主記
憶装置(MS)12、システム領域記憶13から成る。
システム領域記憶13は、物理的には主記憶装置の一部
に含まれることもあるが、マイクロコードまたはハード
ウェアによってだけアドレス指定可能である。すなわち
、システムのユーザ命令セットから成るプログラムから
のアクセスは不可能である。
各状態記述(SD)は主記憶装置12に設けられた制御
ブロックであり、第2図〜第5図に示すように、括弧付
きの添字によって識別される。各SDの内容は、本明細
書の前文で説明したように複数のフィールドから成る。
これらのフィールドはMSフィールドを含み、主記憶装
置12においてSDが示す仮想CPUに割当てられた起
点およびエクステントを定義する。また、プレフィック
ス・フィールドも各SDに設けられ、ゲストの主記憶装
置12における、該SDが示す仮想CPUのプレフィッ
クス保管領域(P S A)に割当てられた位置を表わ
す。また、無効ページ・テーブル項目(IPTE)通知
割込みフラグ・フィールドはあらかじめSDに設けられ
ている。これらのフィールドの外に、本発明によって新
規のフィールドも設けられている。これらは最終CPU
識別子フィールド(最終CPUID)ならびにゲスト仮
想アドレス・フィールド(GMPA)である。GPMA
フィールドは、第2図で0にセットされ、該SDがユニ
プロセッサ(UP)仮想システム(すなわちUPゲスト
)を表わすことを指示する。
若し、GMPAフィールドが非Oであれ゛ば、該SDは
MP仮想システム(すなわちMPゲスト)における仮想
CPUを表わす。
それ故、SDはユニプロセッサ(up)またはマルチプ
ロセッサ(MP)の仮想システムに関連づけられる。第
2図はユニプロセッサ・ゲストの場合だけを表わす。第
3図は1つのマルチプロセッサ・ゲストの場合だけを表
わす。第4図は同じ実MPシステムにおけるUPゲスト
およびMPゲストの場合を表わす。第5図は同じ実MP
システムにおける任意数のUPゲストおよび(または)
MPゲストの一般的な場合を示す。
また、第2図〜第5図の主記憶、装置12にはホスト・
ページ・テーブル(P T)がある。例えば、PTO(
0)〜PTO(JO)はUPゲスト0の主記憶装置(M
S)のページ・テーブルのセットである。各ホストのペ
ージ・テーブルは、在来型のホスト・セグメント・テー
ブル(図示せず)の項目によって参照される。ホスト・
ページ・テーブルはゲストに対し、ゲストの各SDにあ
るMSフィールドに表わされた実主記憶装置のエクステ
ントを写像する。すなわち、ホスト・ページ・テーブル
はゲスト実アドレスを実主記憶装置12のホスト実アド
レスに変換する。若し、ゲストが仮想アドレッシングを
用いるならば、ゲスト・ページ・テーブルのセットも、
ゲスト仮想アドレスの各々をゲスト実アドレスに変換し
、第2レベルのアドレス変換をゲストに提供する必要が
ある。
第3図では、単一のMPゲストが2つの状態記述SD 
(1)、SD’ (2)によって表わされている。SD
 (1)、SD (2)(7)形式はSD (0)の場
合と同じである。SDアドレス(SDA)はそれぞれの
SDの位置を示す。従って、実主記憶装[12に於て、
SDA (1) は5D(1)(7)開始点、SDA 
(2)はSD (2)の開始点を決める。
第3図および第4図でSDの、MPゲストを表わす主記
憶装置フィールドMS (1)、MS (2)は同じ起
点およびエクステント値にセットされ、それぞれのMP
ゲストの、密結合された主押憶装置を表わす。1セツト
のホスト・ページ・テーブルPTI ((>)〜PTI
 (Jl)は、それぞれのMPゲストのために設けであ
る。MPの場合、SDの各々は、それぞれのMPの、別
々の仮想CPUを表わす。
ゲストMPフィールド(GMP)と呼ばれるMPインタ
ロック・フィールドは、各MPゲストのために設けられ
ている。従って、第3図で、GMP(1)は、1つのM
Pゲストとして第3図に示された仮想MPシステムのた
めに設けられたインタロック・フィールドである。
MPゲストの全SDは、共通の同じ値、すなわち、その
それぞれのMPゲストに関連したGMPインタロツタ・
フィールドのアドレスにセットされたGMPAフィール
ドを有する。従って、第3図で、それぞれのMPゲスト
は5D(1’)およびSD (2)を有し、その各々は
GMP (1)を指す同じアドレスにセットされたGM
PAフイールドを有する。すなわち、GPMA (1)
はGPM(1)のアドレスにセットされ、GPMA (
2)もGPM (1)のアドレスにセットされる。
第4図は、第2図のUPゲスト、および第3図のMPゲ
ストの両者を含む実主記憶装置12を示す。従って、S
D (0)は第2図のUPゲストとして表示され、SD
 (1) 、SD (2)は第3図のMPゲストとして
、それぞれのインタロック・フィールドGMP(1)と
ともに表示されている。
また、第4図の主記憶装置12では、UPゲストOおよ
びMPゲスト1のホスト・ページ・テーブルはそれぞれ
、第2図および第3図に表示されたものと同じである。
第5図は、5D(o)〜sD(M)として示された任意
数のSDが表わす任意のゲスト数を含む一般化された実
主記憶装置12を示す。SDは、UPゲストおよび任意
数のSDを有するMPゲストのいかなる組合せにも構成
できる。また1MPゲストの各々は、実システムにおけ
るMPゲスト数K(7)場合にGMP(0) 〜GMP
(K)(7)セットがらそれぞれ〜のGMPインタロッ
ク・フィールドを得る。また、第5図では、ゲスト当り
1セツトのホスト・ページ・テーブルがあり、実主記憶
装置12に写像されたUPおよびMPの任意の組合せの
ゲスト数Xに対し、Xセットのホスト・ページ・テーブ
ルを与える。
第2図〜第5図はそれぞれCPU−A、’CPU−Bお
よびCPU−Cを示す。これらのCPUの各々は、本発
明では、状態記述アドレス・レジスタ(SDAR)、C
P’U識別子レジスタ(CPUID)および変換ルック
アサイド・バッファ(TLB)として示されている特定
のレジスタを設けることが必要である。これらのレジス
タには対応するCPUの指定記号A、BまたはCが添字
され、そのレジスタが置かれているそれぞれのCF)U
を表わす。
CPUIDは実MPシステムの各CPUの独特の固定識
別子を含む。この値はシステムの各CPU内では不変で
ある。
各CPUのTLBは、前述の米国特許出願第27353
2号に説明されている。
各CPUの5DARは、各CPUに使われる最後のSD
を指すSDAアドレスを含む。例えば。
若し、CPU−Bが第2図のUPゲストのプログラムを
実行中であれば、CPU−Bの5ADRは。
SD (0)の位置を決めるアドレスSAD (0)に
セットされる。
また、第2図〜第5図にはそれぞれ、システム領域記憶
13に、実システムの各CPUのそれぞれのフラグ・フ
ィールドが設けられている。これらのフラグはゲストT
LB除去(PRGT)フラグと呼ばれ、フラグによって
表わされる各実cPUの指定記号が添字されている。
CPUで実行中のホスト・プログラムがホスト・ページ
・テーブル項目を無効にするたびに、全PRGTフラグ
はオンにセットされる。ゲスト・プログラムがCPUに
タスク指名されることになると直ちに、該CPUのPR
GTの状態が検査され、若し、それがオンであれば、C
PUに影響するTLB項目は無効になる。次いで、該P
RGTフラグは、他のPRGTフラグの状態に影響を与
えずにオフ状態にセットされる。
本発明の良好な実施例は、第2図〜第5図に示すように
、実MPのCPUごとにPRGTフラグを含む。第1図
はPRGTフラグを用いる本発明の良好な実施例を示す
ものであり、その詳細プロセスが第1A図〜第1E図に
示される。
更に1本発明の代替実施例であってP ’RG Tフラ
グを使用しないものが第7図に示され、その詳細プロセ
スが第7A図〜第7C図に示される。解釈実行開始(S
IE)命令は、実CPUのゲスト・エミュレーションを
提供する前記米国特許出願第273532号において説
明されている。要するに、(計算機ハイパバイザ型のプ
ログラムのような)ホスト・プログラムは、該ホスト・
プログラムが、その時点で該ホスト・プログラムが実行
しているのと同じCPUでゲストを開始することになる
度に、SIE命令を実行することができる。
SIE命令は単一のオペランドを有する。このオペラン
ドはシステムの実主記憶装置における状態記述(SD)
のアドレスである。SIP、命令の実行により、主記憶
装置の、アドレス指定されたSDのフィールドをアクセ
スしてCPUに記憶し、該cPUを、SDフィールドの
値が表わすエミュレーション状態にする。
第6図は、SIE命令を実行中のCPUからTLBを除
去する従来の方法を示す。ステップ21で、実CPUに
おけるSIE命令の実行を開始する。ステップ22で、
このCPUのTLBから少なくともすべてのゲスト項目
を除去する(ホスト項目は除去しないことが望ましい)
。SIE命令が呼出された後、ステップ23で、ゲスト
・プログラムをこのCPUにおいてエミュレーション・
モードで実行する。
第1A図〜第1B図は、本発明の良好な方法を示す第1
図の各プロセスの詳細を示す。第1A図はSIE命令呼
出しプロセスを表わす。ステップ30では、それぞれの
SIE命令によってアドレス指定されたSDから関連フ
ィールドのすべてを。
SIE命令を実行している実CPUにロードする。
ステップ31で、SIE命令を実行しているそれぞれの
CPUの、システム記憶領域13にあるPRGT (ゲ
ストTLB除去)の状態を検査する。
若し、PRGTフラグがオフならば、ステップ32に進
み、現在のSIE命令のオペランド・アドレス(SDA
 (S IE))と、このCPUがアクセスした最後の
SDを表わす、このCPU −8IE命令を実行してい
る −のS’D A Rレジスタの内容とを呼出し、両
者を比較する。若し。
5DA(SIE)が5DARの内容に等しければ、この
CPUが使用した最後のSDが、このCPUで現在のS
IE命令によってアクセスされている現在のSDが等し
いことを意味し、ステップ33に進む。
ステップ33で、このCPUのCPU識別子をそのCP
UIDRレジスタから読出し、現在アクセスされている
SDの最後のCPUIDフィールドの内容(CPUII
)(SD))と比較する。CPUIDフィールドの各々
は、そのCPUIDフィールドを有するSDを使用する
最後のCPUを識別する。若し、CPUIDRの内容が
CPUID(SD)の内容に等しければ、(現在のSI
E命令を呼出している)このCPUは、このSDをタス
ク指名したMPの最後のCPUである。
従って、ステップ32および33は、現在のSIE命令
によって所定のCPUにアクセスされているSDが: (1)このCPUで実行される最後のSD(ステップ3
2)であり、 (2)このCPUで実行されていなかった期間に他のC
PUでも実行されなかったSDであるかどうかを決定す
る。
ステップ32および33での比較がどちらも一致した場
合には、ステップ38に進む。ステップ38で、この実
CPUはエミュレーション状態にセットされる。ステッ
プ38では、各CPUのエミュレーション状態トリガを
オンにセットすることを含むことがある。次いで、ステ
ップ39で、このCPUにタスク指名されているゲスト
・プログラムの実行を開始する。ゲスト・プログラムは
アクセスされているSDからロードされた、従来からの
フィールドの1つである、CPUのPSWにあるアドレ
スに所在する。
ステップ31で、PRGTフ′ラグがオンの場合はステ
ップ34に進み、このCPUのTLBの全ゲスト項目を
除去(無効化)する。これは、オン状態のゲスト・ビッ
トを有する各TLB項目にある無効ビットをオンにセッ
トして行なう。
次に、ステップ35で、CPUアドレス(すなわち、こ
のCPUのCPUIDRの内容)を、このSIE命令が
アドレス指定したSDにある最後のC,PAフィールド
に記憶する。
次に、ステップ36で、このCPUのPRGTフラグ 
− ステップ31で検査されたのと同じPRGTフィー
ルドである − をオフ状態にリセットする。そして、
ステップ37で、現在のSIE命令のオペランド・アド
レス、すなわち5DA(S’IA)によって、このCP
Uの5DARレジスタの内容をセットした後、既に説明
したステップ38、続いてステップ39に進む。
ステップ32で、若し、現在のSIE命令のオペランド
・アドレスと、現在のCPUが使用した最後のSDアド
レス(すなわち、5DARの内容)が等しくなければ、
ステップ34に進み以下ステップ39まで、前に説明し
たように実行する。
また、ステップ33で、若し、CPUIDRのCPU識
別子と、最後のCPUIDフィールド、CPUID (
SD)が等しくなければ、この場合も、ステップ34に
進み、以下ステップ39まで前と同様に実行する。
更に、全1のCPUID (SD)にあるCPU識別子
は、実CPUに割当て可能ではないものとして取除くこ
とができる。全1の値はホスト・プログラムによって使
用されることがあり、それによって、SIE呼出しはこ
のゲストの全TLB項目を除去する。このSDを用いる
次のSIE呼出しでは、全1のCPUID (SD)の
値は、ステップ33において、CPUIDRとCPUI
D(SD)の不一致を生じる。全1のCPUID(S 
D)は、次のSIE呼出しでステップ35において実際
のCPUIDRに取替えられる。
ゲスト・プログラム実行中、ゲスト・プログラムは、ゲ
ストによる実行が許可されていない特権命令を′実行し
ようとする場合のように、ホスト制御プログラムの助力
を要する事態になることがある。この場合、CPUは、
ゲストが使用中のSDにある通知割込みをオンにセラ1
〜できる。そして、ゲスト・プログラムの通知割込みを
行ない、制御はホスト・プログラムに戻る。
ゲスト・プログラムに通知割込み、または、割込む度に
、ゲスト、プログラムは中止され、実CPUはホスト・
プログラムを呼出す。
中止されたゲストは後に、実MPシステムの同じCPU
または別のCPUにタスク指名され、その処理を続行す
ることがある。ゲストが、あるCPUにタスク指名され
る度に、SIEを再びホスト・プログラムによって実行
し、第1A図の呼出しプロセスを実行する。
ゲスト・プログラムを実CPUにおいてエミュレーショ
ン・モードで実行中の場合、ゲスト・プログラムはゲス
ト・ページ・テーブルの1つのページ・テーブル項目(
PTE)を無効にできる。
(注ニゲスト・ページ・テーブルは、第2図〜第5図に
示したホスト・ページ・テーブルの1つではない。ゲス
ト・ページ・テーブルは仮想アドレッシングを用いるゲ
ストによってのみ使用される。
)それ故、ホスト・プログラム実行中、ホスト・プログ
ラムはホスト・ページ・テーブル(すなわち、第2図〜
第5図に示したページ・テーブルの1つ)を無効にする
。ゲスト・プログラム実行中、ゲスト・プログラムはゲ
スト・ページ・テーブル項目だけを無効にできるが、ホ
スト・ページ・テーブル項目を無効にはできない。ペー
ジ・テーブル項目の無効化は一般に、ページ・テーブル
演目無効化(IPTE)特権命令によって行なわれる。
あるCPUで実行中のホスi〜・プログラムまたはゲス
ト・プログラムはIPTE命令を含むことがある。
第1B図は5本発明の、ホストIPTE命令の実行のプ
ロセスを示す。第1C図および第1D図は、′本発明の
UPゲストまたはMPゲストによるゲストIPTE命令
の実行プロセスを示す。第1E図は、IPTE命令をM
PのCPUで実行する場合、それがホスト・プログラム
、またはMPゲスト・プログラムのどちらによるもので
あっても、実MPシステムの他の実CPUの反応に関す
る本発明のプロセスを示す。第1E図は、UPゲスト・
プログラムが実行するI PTE命令では使用されない
第1B図のステップ40で、IPTE命令のオペランド
が識別するページ・テーブル項目のアクセスにより、ホ
スト・プログラムはIPTE命令実行を開始する。ステ
ップ41で、このページ・テーブル項目の無効ビットを
オンにセットする。
ステップ42で、無効状態に対するTLB項目の無効ビ
ットをオンにセットすることにより、実行中のIPTE
命令のページ・テーブル項目を使用するアドレス変換を
含む、このCPUのTLB項目を無効にする。ステップ
43で、第2図〜第5図のシステム記憶領域13にある
全CPU0全PRGTフラグがオンにセットされる。第
6図の従来技法では、ステップ43のPRGTフラグな
しに、IPTE命令を実行する度に、ホストは、少なく
とも全ゲスト項目の除去を行ない、恐らくは全ホストT
LB項目も除去する。ホスト・プログラムが実行する主
記憶装置割振り手順の場合のように、ホスト・プログラ
ムのタスク指名の間に、ホストは多数の、、I P T
 E命令を実行できるであろう。ゲストTLB項目を除
去するプロセスは低速プロセスであって、この機能を実
行するホスト・プログラムの休止を生じ、ホスト・プロ
グラム動作を低速にすることがある。ステップ43では
、このようなホスト・プログラム動作の休止は不要であ
るので、ホスト・プログラムの性能は改善される。この
ように、PRGTフラグによって、1つのSIE命令の
呼出しは、ホスト実行中に受取ったIPTE要求の累積
を除去できる。また、SIE命令は用いないがIPTE
命令を用いるホスト・プログラムは、ゲストTLB項目
による性能低下を生じない。
ステップ44で、ホストIPTE命令を実行中のCPU
は、実MPにおける他のCPUの各々に信号を放送する
。第1B図の放送信号45は、IPTE命令のオペラン
ド、ならびに、それを識別する、放送CPUのCPUI
DRレジスタの内容を表わす。
本実施例では、実MP中の実CPUは互いに非同期にプ
ログラムを実行しているものと仮定する。
放送信号を受取るCPIJの各々は2 (1)現に実行中の命令を完了することができ、(2)
影響を受けたTLB項目を無効にし、(3)応答信号7
7をIPTE放送CPtJに供給する。
この受信CPUのプロセスは第1E図に示す。
第1B図のステップ47で、放送信号受信中の全CPU
が応答した時点を決定し放送CPUに知らせる。次いで
、ステップ48で、ホストI PTE命令の動作を完了
する。
第1C図および第1D図はゲストIPTE命令の実行プ
ロセスである。第1C図および第1D図のゲストIPT
Eプロセスは、PRGTフラグを使用しないから、第1
A図〜第1E図の実施例ならびに、第7A図〜第7C図
の実施例のどちらにも、使用できる。第1A図の呼出し
プロセス、第1B図のホストIPTEプロセス、ならび
に、第1E図の応答C,PUプロセスを使用できるのは
、良好な実施例においてだけである。その理由は、これ
らのプロセスは直接的にも間接的にも、良好な実施例し
か使用しないPRGTフラグの使用に依存しているから
である。
第1C図のステップ50で、ゲストI PTE命令の実
行が開始される。ステップ51で、このゲストのSDす
なわち、このCPUに現に呼出されているSIE命令に
よってアドレス指定されたSDのIPTE通知割込みフ
ラグ・フィールドのステータスを検査する。SDのIP
TE通知割込みフラグは本発明以前に存在しており、ゲ
ストが工PTE命令を実行しようとする度に検査されて
いる。IPTE通知割込みフラグがオンにセットされて
いる場合、ゲスト・プログラムを中止し、制御をホスト
・プログラムに渡し、ゲストのIPTE命令の実行をシ
ミュレートする。若し、このような通知割込みが行なわ
れることになっているならば、ステップ51からステッ
プ56に進み、該CPUによる現在のSIE命令の実行
を終了し、CPUを非エミュレーション状態にセットす
る。
次いで、ステップ57で、ホスト制御プログラムに制御
を渡す。
本発明は、ステップ51で、ゲストIPTE命令実行中
にIPTE通知割込みフラグがオフである場合に呼出さ
れる。その場合、ステップ52に進み、現在のSIE命
令によってアクセスされたSDにあるゲストMPアドレ
ス・フィールド(GMPA)の内容を検査する。若し、
GMPAの内容が0ならば、関連SDが表わすUPゲス
トを指示する。
反対に、若し、GMPAの内容が非Oならば。
現在のSDが仮想MPシステムの仮想CPUを表わすこ
とを意味し、結合子Aを介して第1D図に進む。第1D
図では、現にアドレス指定されているSDが表わすゲス
トの仮想CPUの1つでMPゲストが実行中のIPTE
命令を処理する。
第1C図のステップ52で、GMPAの内容が○であっ
てUPゲストを表わす場合、ステップ53に進み、UP
ゲストのI PTE命令がアドレス指定したゲスト・ペ
ージ・テーブル項目を無効にする。すなわち、アドレス
指定されたゲストPTEの無効ビットをオンにセットす
る。次いで、ステップ54で、このPUのゲストTLB
項目が無効にされる。
次いで、ステップ55で、この、UPゲストのIPTE
命令の動作を完了する。
若し、ステップ52で、アクセスされているSDが、M
Pゲストの仮想CPUを表わすなら、前述のように、第
1D図のステップ58に進み、現にアクセスされている
SDのGMPAフィーノ?ドの非0の内容からアドレス
指定されたインタロック・フィールドGMPの状態を検
査する。GMPインタロックは、MPゲストのPTEの
アクセスを制御する。若し、このGMPインタロックが
オン状態(1)にセットされていれば、MPゲストのP
TEの無効化は禁止され、ステップ69Aに進んで、現
在のSIE命令の実行を終了し、CPUを非エミュレー
ション状1にセットする。次いで、ステップ69Bで、
CPUはホスト制御プログラムを呼出し、その実行を開
始するが、終了したMPゲストが、インタロックがオフ
にリセットされるのを待っている間に、CPUを他のゲ
ストにタスク指名できる。CPUを他のゲストにタスク
指名できるのは次の理由による。すなわち、インタロッ
クがオフにセットされるまで、インタロックされたゲス
ト・プログラムとともに実CPUを待たせ、比較的長期
間にわたって実CPUを非生産的に拘束しておく代りに
、インタロックを比較的長期間にわたってオンにし、よ
り効率的にCPUを他のゲストのために実行させること
ができる時間があるからである。
しかしながら、若し、ステップ58で、GMPフィール
ドがオフ状態(0)であれば、ステップ59に進み、G
MPビットを1にセットする、すなわち、インタロック
をオンにセットし、それ以後、このGMPインタロック
・フィールドがオフ状態(0)にセットされるまで、他
の仮想CPUまたはホストがMPゲストの主記憶装置を
アクセスするのを阻止する。GMPフィールドの検査お
よびセツティングは、システム/370の比較およびス
ワップ命令のような、ハードウェア的にインタロックさ
れた更新動作によって行なう。
次にステップ61で、現在のゲストIPTE命令がアド
レス指定したゲストPT、Eの無効ビットをオンにセッ
トする。次いでステップ62で、このCPUの、現在の
ゲストIPTE命令のオペランドが見つけた、ステップ
61で無効になったゲストPTEを使用したゲストTL
B項目を無効にする。
次にステップ63で、IPTE信号64を実MPシステ
ムの他の実CPUに放送する。放送信号は、放送中のC
PUを識別し、良好な実施例における他のCPUのIP
TEオペランドを表示する。
第7A図〜第7C図の代替実施例の場合、放送信号64
はまた、MPゲストのIPTE命令が実行中であること
も表示する。応答するIPTE信号77は各受信CPU
から受取る。ステップ66で、・他の全CPUの応答が
表示された場合、ステップ67に進み、このGMPフィ
ールドはオフ状態(0)にリセットされ、ステップ68
で、このMPゲストIPTE命令の動作は完了する。
第1E図は、実MPの他の各実CPUがIPTE放送を
提供するCPUに応答するプロセスを表わす。受信した
放送信号は、各受信CPUの割込みトラップをセットす
るが、その時の動作が何であっても、受信CPUがその
動作を完了するのを止めたりはしない。放送信号は、第
1B図からの放送信号45のようなホストIPTE命令
を実行するCPUによって、または、第1D図からの放
送信号64のようなMPゲストIPTE命令を実行する
CPUから送られていることがある。第1E図の実施例
の目的の場合、放送は、それがポストエPTEの場合で
あるか、またはMPゲストエPTHの場合であるかを指
示しなくてもよい。
ステップ71で、割込みトラップがセットされると、ス
テップ72で、現在の命令を実行中のマイクロコードま
たはハードウェア、あるいは、受信CPUで実行中の動
作の動作終了信号をセンスする。次いで、CPUはステ
ップ73を実行し、受信CPUでトラップされた放送I
 PTEオペランド信号によって見つかったTLB項目
を無効にする。このように、ステップ73では、トラッ
プされたIPTEオペランドによって見つかったゲスト
また□はホストのTLB項目が無効になる。
ステップ74で、受信CPtJがエミュレーション状態
であるかどうかを検査する。若し、受信CPUがエミュ
レーション状態ではないならば、ホスト・プログラムを
実行中であり、ノーの出口から直ちにステップ76に進
む。その時点で、ゲス)−TLB項目は無効にならない
反対に、ステップ74で、若し、受信CPUがエミュレ
ーション状態であれば、イエスの出口からステップ75
に進み、受信CPUで影響を受けたすべてのゲストTL
B項目(すなわち、無効になるホスト・ページをアドレ
ス指定する項目が除去される。
次にステップ76で、受信CPUは応答信号77を放送
CPUへ送り、放送IPTE信号の応答処理が受信CP
Uによって完了したことを表示する。次いで、ステップ
78で、受信CPUは、ステップ72の動作終了を行な
う命令または動作に続く次の命令を実行する。
第1C図では、本発明の動作により、UPゲストIPT
E命令の放送動作がなかったが、このようなUPゲスト
放送が不要となった理由は、第1A図における新規のS
IE命令実行呼出しプロセスによるものである。確かに
、SDは、その間、2番目のCPUで実行し、最初のC
PUのゲスト’I’ L B項目を有効のままにしてお
いたならば、最初のCPUは、異なったSDによって実
行(ラン)しようとする場合、これらのゲストT L 
B項目を使用することができない。その理由は、最初の
CPUのゲストのSIE命令呼出しの間に、ステップ3
2で、次のゲストのSDアドレスの不一致状態が発見さ
れると、ステップ34へ進み、そのCPUのゲスト項目
のすべてを除去するからである。
同じ事が、最初のSDが後に最初のCPUにタスク指名
される場合にも起きるが、それはステップ33のCPU
I Dの比較が不一致の場合、ステップ34に進むから
である。
このような有効なゲストTLB項目を、それらが最初の
CPUにタスク指名されたもう1つのゲストによって除
去される場合に、最初のCPUに残しておいても支障は
ない。若し、ホスト・プログラムが次に最初のCPUに
タスク指名されるならば、影響を受けたTLB項目は除
去されず、ホスト・プログラムがそのアドレス変換の項
目にある空間を必要とするにつれて、TLBから除去す
ることができる。
従って、UPゲストしかサポートしない実MPシステム
では、放送の唯一の理由はホストIPTE命令実行をサ
ポートすることである。
本発明は、UPまたはMPゲスト・プログラムにより、
現に存在するゲストTLB項目の再使用可能性を、最後
にタスク指名された同じCPUにおける次の再タスク指
名の間、可能にする。各CPUのTLB項目は、ゲスト
またはホストのアドレス変換としてフラグ表示され、ゲ
スト項目およびホスト項目はどちらも、それぞれのフラ
グ・ビットにより同時に存在することがある。
それ故、ゲストTLB項目再使用可能性は、UPゲスト
またはMPゲストのCPUで実行中のゲスト・プログラ
ムに利用可能である。ゲストTLB項目再使用可能状態
は、第1A図のステップ32および33において一致が
生じた場合に存在する。
CPUに現に存在するゲストTLB項目は、゛若し、そ
の間に該CPUが別のゲスト・プログラムにタスク指名
されていたならば、再タスク指名されたゲスト・プログ
ラムによる使用は不可能である。その理由は、再タスク
指名されたゲスト・プログラムは、現に存在するゲスト
TLB項目がこのゲスト・プログラム用なのか、または
その間にタスク指名されたゲスト・プログラム用なのか
分らないからである。この再使用不可能状態は第1A図
のステップ32の不一致の場合に生じる。
また、現に存在するゲストTLB項目は、若し、その間
にこのゲストが2番目のCPUにタスク指名されていた
ならば、最初のCPUに再タスク指名されたゲスト・プ
ログラムによって、再使用可能ではない。これは、ゲス
トIPTEまたはPTLB動作が、最初のCPUのゲス
トTLB項目に影響を与えなかった2番目のCPUに生
していることがあるからである。この再使用不可能な状
態は第1A図のステップ33の不一致の場合に生じる。
実施例における選択的な各TLB無効化ステップ42.
54.62.73.142,173または182は、適
切なハードウェア簡略化のトレードオフを行なう場合、
小量のオーバキル(過度のTLB無効化)によって実行
される。例えば、TLBハードウェアは、TLBの各適
合クラスに複数項目(一般に2項目)を有するセット連
想方式になるように設計されている場合、ステップ42
等は、I ’P T Eオペランドによって見つかった
適当クラスにある全項目を無効にできる。これは恐らく
、ホストまたはゲストのTLB項目とみられる幾つかの
余分なTLB項目を無効にする。このオーバキルによっ
ても尚、現に存在する他のすべてのTLB項目が、後に
プログラムによる使用のために残される。
第7A図〜第7C図は、第1A図〜第1E図の方法の代
替方法の実施例で、MPの各CPTJのマイクロコード
またはハードウェアで実現される。
これらの実施例の基本的な相違は、第7A図〜第7C図
の実施例がPRGTフラグ・フィールドを使用しない(
このようなフラグの必要性もない)ことである。もう1
つの相違は、第7A図〜第7C図の実施例が、送信ホス
トIPTEと送信MPゲストIPTEを見分ける放送信
号を用いることである。第1の実施例の第1A図〜第1
E図の各プロセスは、第1C図および第1D図のゲスト
■PTE命令プロセスが第2の実施例でも使用される点
を除き独特のプロセスである。
第7A図の方法のステップは、対応する第1A図のステ
ップに似ている。両図の類似ステップの参照数字の下2
桁が同じ数字を用いている。ただし、第1A図のステッ
プ31および36は、第7A図に対応するステップがな
く、スキップされていることが分る。あるいはまた、第
7A図のプロセスは、第1A図のプロセスのように動作
し、第7A図の方法によって呼出されたゲスト・プログ
ラムが、第7A図のプロセスの動作の完了後に存在する
ゲストTLB項目を確実に使用できる。
第7B図は第2の実施例のホストIPTE命令の実行を
示す。同じ実施例のゲストIPTE命令の実行は、第1
の実施例の第1C図および第1D図の場合と同じである
第7B図のステップ140で、ホストI PTE命令の
実行が開始される。ステップ141で、ホストPTE無
効ビットをオンにセットし、ホストIPTE命令が識別
したホスト・ページ・テーブル項目(PTE)を無効に
する。次にステップ142で、このCPUの、ステップ
141で無効になったホストPTEを利用する変換を含
む対応するホストTLB項目を無効にする。対応するホ
ストTLB項目は、ステップ42で、関連I PTE命
令のオペランドによって見つかる。
次に、ステップ149で、このC,PUで影響を受けた
全ゲストTLB項目を無効にする。次いでステップ14
4で、実MPにおける他の実CPUに、関連ホストIP
TE命令の信号を放送し、ホストIPTEが実行中であ
り、IPTEオペランドを渡しているので、他の各実C
PUは影響を受けたゲストTLB項目を無効化で、きる
ステップ147で、他の実CPUからの全応答177を
、第7C図のプロセスを実行した、MPでの他の各実C
P Uによって、放送CPUへ送った時点を表示する。
次にステップ148で、ホストPTE命令の動作を完了
した後、ホスト・プログラムは次の動作に移行できる。
第7C図は、第1の実施例の第1E図に類似の放送CP
UへのIPTE応答を実行する。従って、第1E図のス
テップの参照数字と、対応する第70図のステップの参
照数字の下2桁は同じ数字である。従って、第7C図の
ステップ171で1割込トラップは、受信した放送I 
P TE倍信号よって受信CPUにセットされる。第7
C図のステップ171の割込みトラップに与えられた放
送信号は、放送が第1D図からのMPゲスhIPTE命
令の場合か、または第7B図からのホストIPTE命令
の場合かを指示するゲスト信号またはホスト信号を含む
。この標識は、割込みトラップ動作の一部分として受信
CPUの1ビツトによって保持できる。これは、第1の
実施例の動作とは異なる。第1の実施例では、放送CP
UはそのIPTE命令がMPゲスト用かホスト用かを知
らせる必要はない。その理由はその情報を第1E図の受
信CPUが使用しないからである。
ステップ171のIPTE割込みトラップの設定に応答
して、受信CPUはステップ172で、次の終了動作を
センスし、受信CPUを次の命令に直行させる代りに、
第7C図に示した本発明の方法を実行するステップ18
1へのマイクロコードまたはハードウェア分岐を実行す
る。ステップ181で、ホストまたはMPゲスト信号が
ステップ171の割込みトラップによって記憶されたか
どうかを検査する。このゲストまたはホスト信号は第7
C図で使用され、ゲストTLB項目の選択的無効化を実
行するか、または受信CPUのTLBから、影響を受け
た全ゲスト項目を除去するかどうかを決定する。
ステップ181で、若し、トラップされた信号がMPゲ
ストIPTE放送用であれば、ステップ182に進み、
放送信号が指定した、影響を受けたゲストTLB項目を
選択的に無効にする。
ステップ181で、若し、トラップされた信号が放送ホ
ストIPTE信号であれば、ステップ183に進み、受
信CPUのTLBにゲストTLB項目があれば、ステッ
プ184に進み、影響を受けたゲストTLB項目全部を
除去する。次いで、ステップ173で、ステップ171
でトラップされた放送ホストIPTEオペランドが見つ
けた、受信CPUのホストTLB項目を選択的に無効に
する。
ステップ176で、放送IPTE命令の処理が受信CP
Uで完了したことを知らせる信号177をI PTE放
送C、P Uに返送する。また、ステップ171のトラ
ップ(ステップ71のトラップに同じ)は、放送MPゲ
ストの場合は第1E図の放送プロセスから、または、放
送ホストIPTEの場合は第7B図からの放送CPUの
CPUIDを記録する。従って、この応答信号177は
ステップ176によって放送CPUに送られ、受信CP
Uによる応答IPTE動作を完了する。
次にステップ178で、応答CPUは若し、工PTE放
送の干渉が生じなかったなら、ステップ172の後に開
始されたはずの次命令を実行する。
従って、第7A図〜第7C図の実施例は、最後のタスク
指名から存在するゲストTLB]f目を無効にせずに、
ゲストT L B項目を、同じCPUで、SIE命令の
最後のタスク指名から同じSIE命令の次のタクス指名
に渡すことを可能にすることにより、第1A図〜第1E
図の実施例の利点を保持する。第1A図〜第1E図の実
施例の利点(第7A図〜第7C図の実施例には存在しな
い)は、CPUのどれかがホストIPTE命令を実行す
るごとに、実MPのあらゆる実CPUでのC,PU動作
に割込み、実MPで影響を受けたゲスト項目を無効にす
ることである。そして、第1A図〜第1E図の実施例で
は、不利点を避けるため、全CPUのPRGTフラグを
用い、CPUのどれかがホスト・プログラムを実行中(
すなわち、非エミュレーション状態で)、全ホストIP
TE動作のゲストTLB無効化動作を取除く。PRGT
フラグ動作により、全ホストIPTE命令が(その数に
関係なく)実行され、任意のゲストの次のタスク指名に
関連して累積し、それによって実CPUは、SIE呼出
し中に、全ゲストTLB項目を一回に除去し、前の全ホ
ストIPTE命令を実行する余地を与えることができる
。前の全ホストIP’TE命令実行の場合、ゲストTL
B無効化の延期を積重ねることにより、実MPシステム
の性能が著しく改善される。SIE命令をサポートする
システl−・ハードウェアでは、SIE命令を使用しな
いホスト・プログラムは、ゲストTLB項目除去のオー
バヘッドをしよいこまない。
第8図は、ゲスト命令(IPTE命令ではない)をシミ
ュレートしている間のホスト・プログラムによる動作を
示す。すなわち、ゲス1へ命令は仮想CPUのゲスト・
プログラムの中にあり、解釈実行の範囲内で実行される
べきタイプの命令ではないものとされていた。このよう
な命令の通知割込みは、その命令をシミュレートできる
ホスト・プログラムに制御を戻すことにより実行される
(ホスト・プログラムによるゲスト命令のシミュレーシ
ョンは、IBMのVM/370型プログラムのプログラ
ミング等におけるような、ハイパバイサ・プログラミン
グ技術では周知である。)第8図のステップ200の、
ホスト・プログラムによるゲスト命令のシミュレーショ
ンの間に、本発明の方法を呼出すためステップ201に
進む。
ステップ201で、シミュレートされている命令を含む
ゲスト・プログラムが使用中の仮想CPUを現に表わし
ているSDにあるGMPAフィールドを検査し、SDが
UPゲストまたはMPゲストのどちらの仮想CPUを表
わしているかを決める。
若し、GMPAフィールドが非O状態ならば、MPゲス
トの仮想CPUを表わし、ステップ202に進み、ステ
ップ201で検査したGMPAフィールドによってアド
レス指定されたGMPインタロック・フィールドをアク
セスし、検査する。若し、G M、 Pフィールドが1
の状態にセットされているなら、このMPゲストのもう
1つの仮想CPUのインタロックがオンであることを表
わす。このインタロックは、仮想CPUがインタロック
をオンにセットすること髪除き、MPゲストの′他の全
仮想CPUが、M、 Pゲストのページ・テーブル項目
(PTE)を無効にするのを阻止する。すなわち、GM
Pインタロックがオンの場合、PTE無効化は、MPゲ
ストのもう1つの仮想CPUによる場合、または該MP
ゲストのもう1つの仮想CPUに代るホスト・シミュレ
ーション・ソフトウェアによる場合を含めて、MPゲス
トの他のあらゆる仮想CPUによって阻止される。若し
、GMPフィールドが1の状態にあるならば、ステップ
203で、通常の待期・通知またはスピン・ソフトウェ
ア・ロッキング手法によりインタロックを解く。ステッ
プ202で、GMPフィールドが0の状態の場合、ステ
ップ204に進み、GMPフィールドを1の状態にセッ
トし、このプログラム・シミュレーションのインタロッ
クをオンにセットすることにより、他の仮想CPUによ
る命令または、そのホスト・プログラム・シミュレーシ
ョンがMPゲストPTEを無効にするのを阻止する。
ステップ201で、若し、GMPAフィールドがOにセ
ットされていれば、UPゲストの命令がシミュレートさ
れていることを示し、その場合、検査すべきGMPはな
いので、ステップ205に飛び、ステップ202.20
3または204の動作は行なわれない。
ステップ205で、ホスト・シミュレーション・プログ
ラムは、ゲスト・セグメント・テーブルおよびゲスト・
ページ・テーブルを使用して、シミュレートされている
ゲスト命令の(複数の)オペランド・アドレスをラフ1
−ウェアにより変換する。
次いで、ステップ206で、ソフトウェアは、変換され
た(複数の)アドレスを用い、シミュレ−1〜されてい
る命令の要求に従ってMPゲスト主記憶装置でオペラン
ド・データの取出しまたは書込みを実行する。
次にステップ207で、関連SDのGMPAフィールド
を再検査し、このシミュレーションがUPゲストまたは
MPゲストのどちらのシミュレーションであるかを再度
決定する。若し、GMPAが非Oなら、MPゲストのシ
ミュレーションであり、ステップ208に進む。若し、
GMPAが0なら、UPゲストのシミュレーションであ
り、ステップ209に進む。
MPゲストの場合、ステップ208で、GMPを0にセ
ットしてGMPインタロック・フィールドをオフにセッ
トする。ステップ209で、ステップ200で呼出され
たホスト制御プログラム・シミュレーション・プロセス
の動作を継続する。
前記実施例では、TLBは1回に1ゲストの項目の保持
しかできないものと仮定する。しかしながら、TLBに
は各ゲストTLB項目とともにゲスト識別子が含まれ、
特定のTLB項目と特定のゲストを関連づけることがで
きる。このように、複数のゲストは、実CPUにそれぞ
れのTLB項目を同時に持つことがある。そして、どち
らの実施例のプロセスも、その動作をいつでも、特定の
ゲストI P’TEまたはホストIPTHの項目に指向
することにより動作できる。特定のゲストエPTEの無
効化は、必ずしも他のゲストのTLB項目に影響を及ぼ
すことなく、実MPシステムの全CPUにおける特定の
ゲストのTLB項目だけを無効にする。ホストIPTE
の無効化は、ゲストTLB識別子を考慮せずに全ゲスト
TLB項目を無効にする。
[発明の効果] 本発明は、″ゲストTLB除去(PRGT)フラグ″を
設けることにより、システムの各々の実CPUは、ホス
トPTE無効化により、実システムの各CPUにおいて
影響を受けたゲストTLB変換がいつ信頼できなくなっ
たかを知ることができる。本発明は、ゲストTLB変換
を、CPUが非エミュレーション・モードであるうちは
、無効にすることができないように、各CPUのPRG
Tフラグを処理し、各CPUが再びエミュレーション・
モードになるときしか1.ゲストTLB項目の無効化が
生じないようにする。この型のPRGTフラグによる制
御の主な利点は、システムの各CPUの全ゲストTLB
項目を無効にするために。
ホスト・ページ・テーブル項目を無効にする度に、ホス
ト・モードのcrtl)をその動作に割込ませる− 比
較的低速のプロセスの場合がある − のを避けること
である。従って、実システムの各CPUのPRGTフラ
グは、ホスト・プログラムがホストPTEを無効にする
度に、セラ1−されるが、その際、ゲストTLBは無効
にされない。それ故、ホスト・モードの間のそれぞれの
時点での複数のI PTE無効化の場合、複数回の、時
間を要するゲストTLB無効化動作を避けることができ
る。
また、CPUのゲストTLB無効化、は、若し、該CP
Uが後にエミュレーション・モードに移らなければ、完
全に避けることができる−
【図面の簡単な説明】
第1図は第1A図〜第1E図から成る、ゲストTLB除
去フラグを使用する本発明の方法の良好な実施例の1つ
を示す概要図、 第1A図は実システム上のゲスト動作製呼出すための呼
出プロセスを表わす流れ図、 第1B図はホストのページ・テーブル項目無効化(IP
TE)命令を実マルチプロセッサ・システム上で実行す
る際に必要なプロセスを表わす流れ図。 第1C図はUPシステム上でゲストIPTE命令を実行
する際のプロセスを表わす流れ図、第1D図はMPクシ
ステム上ゲストI P T E命令を実行する際のプロ
セスを表わす流れ図、第1E図はMPにおける他の実C
PUがIPTE放送信号を受信する際のプロセスを表わ
す流れ図、 第2図は1つのUPゲストをサポートする、密に結合さ
れた主記憶装置およびシステム領域記憶を有する実MP
システムを示す図、 第3図は1つのUPゲストの代りに1つのMPゲストを
サポートする以外は第2図と同じ実MPシステムを示す
図、 第4図は1つのUPゲストおよび1つのMPゲストの両
者を含む以外は第2図または第3図と同じ実MPシステ
ムを示す図、 第5図はUPゲストと、MPゲス)−の任意の組合せか
ら成る以外は、第2図〜第4図と同じハードウェア・シ
ステムを示す図、 第6図はSIE命令を実行中のCPUからTLBを除去
する従来の方法を示す図、 第7図は第7A図〜第7C図から成る、ゲストTLB除
去フラグを使用しない代替実施例を示す概要図、 第7A図はゲストTLB除去フラグを設けずに本発明を
利用する実UPシステムまたは実MPシステムにおける
ゲスト呼出しを表わす流れ図、第7B図はMPシステム
の実CPUで実行中のホストIPTE命令の処理を表わ
す流れ図、第7C図は実MPシステムにおける他のCP
UがIPTE放送信号を受信する際のプロセスを表わす
流れ図、 第8図は、同じMPゲスト上で、直接に動作するゲスト
・プログラム、およびゲスト・プログラムに代るホスト
・プログラムによるアクセスの間のMPゲストの仮想記
憶装置のアクセスを調整するのに必要なインタロック・
プロセスの流れ図である。 11・・・・システム制御装置(SC)、12・・・・
主記憶装置(MS)、13・・・・システム記憶領域。 第1図 第7図 又48 第1E図 第2図 第j−図 第4図 第6図 第1頁の続き ■発明者 ピータ−・バーマン アメ ス・トールマン ラス 0発 明 者トーツス・オスカー・ アメカーリ−、サ
ード −ト リカ合衆国ニューヨーク州ポーキプシー、ヒルス・テ聞
番地 リカ合衆国ニューヨーク州ポーキプシー、グレン・コ2
番地 手続補正書彷式) %式% 1、事件の表示 昭和59年 特許願 第238700号2、発明の名称 アドレス変換処理方法 3、補正をする者 事件との関係 特許出願人 4、代理人 5、補正命令の日付 昭和60年2月26日 6、補正の対象 明細書の発明の詳細な説明の欄 7、補正の内容 明細書の第3頁15行〜19行の「論文・・・・198
3」を次のとおりに補正する。

Claims (1)

  1. 【特許請求の範囲】 実主記憶装置を有するデータ処理システム(ホスト)に
    おいてエミュレートされたゲスト・システム(ゲスト)
    によるアドレス変換を処理する方法であって、該ホスト
    ・システムにおける実CPUの変換ルックアサイド・バ
    ッファ(TLB)内のゲスト識別項目(ゲストTLB項
    目)にゲスト・アドレス変換を挿入するものにおいて。 該データ処理システムにおける各仮想CPUを定義する
    ための状態記述制御ブロック(SD)を実記憶装置内に
    設け、 前記SDの各々に対する独特なSD識別子(SDI)を
    定義し。 実CPUごとに、当該CPUによって前に使用されたS
    Dに対する識別子(SDI)を含む少なくとも1つのS
    Dg別子7ィールド(SDAR)を設け、 実CPUに対する5DARを、実CPUにおけるタスク
    指名された各ゲストに対するSDのSD識別子(SDI
    )にセットし、 実CPUに前に入れられたSDIの内容と、実CPUに
    おける次のゲストのSDIとを比較し、次のSDIと実
    CPUに対する5DARにおけるSDIとが一致した場
    合、実CPUのゲストTLB項目を無効化せず、現に存
    在するゲストTLB項目を再変換せずにゲスト・プログ
    ラムに対するゲストが使用できるようにし、 それによって前記データ処理システムが単一の実CPU
    を持つことを特徴とするアドレス変換処理方法。
JP59238700A 1983-12-14 1984-11-14 アドレス変換処理方法 Granted JPS60171552A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56161483A 1983-12-14 1983-12-14
US561614 1995-11-21

Publications (2)

Publication Number Publication Date
JPS60171552A true JPS60171552A (ja) 1985-09-05
JPH0458056B2 JPH0458056B2 (ja) 1992-09-16

Family

ID=24242699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59238700A Granted JPS60171552A (ja) 1983-12-14 1984-11-14 アドレス変換処理方法

Country Status (4)

Country Link
EP (1) EP0145960B1 (ja)
JP (1) JPS60171552A (ja)
CA (1) CA1213986A (ja)
DE (1) DE3479454D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017515203A (ja) * 2014-03-27 2017-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピュータにおいて複数のスレッドをディスパッチするための方法、システム、およびコンピュータ・プログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0293952A (ja) * 1988-09-30 1990-04-04 Hitachi Ltd 仮想計算機システム
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US6530078B1 (en) * 1998-03-26 2003-03-04 Alexander V. Shmid Virtual machines in OS/390 for execution of any guest system
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US9772867B2 (en) 2014-03-27 2017-09-26 International Business Machines Corporation Control area for managing multiple threads in a computer
US9195493B2 (en) 2014-03-27 2015-11-24 International Business Machines Corporation Dispatching multiple threads in a computer
US9213569B2 (en) 2014-03-27 2015-12-15 International Business Machines Corporation Exiting 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
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10176006B2 (en) * 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57212680A (en) * 1981-06-15 1982-12-27 Ibm Virtual computer system
JPS5868258A (ja) * 1981-10-16 1983-04-23 Richo Kiyouiku Kiki Kk 携帯用磁気録音再生機の電源回路
JPS5868285A (ja) * 1981-10-16 1983-04-23 Nec Corp 仮想計算機のアドレス変換方式

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4494189A (en) * 1982-04-26 1985-01-15 International Business Machines Corporation Method and means for switching system control of CPUs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57212680A (en) * 1981-06-15 1982-12-27 Ibm Virtual computer system
JPS5868258A (ja) * 1981-10-16 1983-04-23 Richo Kiyouiku Kiki Kk 携帯用磁気録音再生機の電源回路
JPS5868285A (ja) * 1981-10-16 1983-04-23 Nec Corp 仮想計算機のアドレス変換方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017515203A (ja) * 2014-03-27 2017-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピュータにおいて複数のスレッドをディスパッチするための方法、システム、およびコンピュータ・プログラム

Also Published As

Publication number Publication date
CA1213986A (en) 1986-11-12
EP0145960A2 (en) 1985-06-26
JPH0458056B2 (ja) 1992-09-16
DE3479454D1 (en) 1989-09-21
EP0145960B1 (en) 1989-08-16
EP0145960A3 (en) 1987-12-02

Similar Documents

Publication Publication Date Title
US4779188A (en) Selective guest system purge control
US6081890A (en) Method of communication between firmware written for different instruction set architectures
RU2259582C2 (ru) Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой
JPS60171552A (ja) アドレス変換処理方法
US8380907B2 (en) Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US5317754A (en) Method and apparatus for enabling an interpretive execution subset
US5187802A (en) Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US20120144154A1 (en) System, method and computer program product for providing a programmable quiesce filtering register
JPH0430053B2 (ja)
JPS6248258B2 (ja)
US5339417A (en) Computer system with two levels of guests
US20090216995A1 (en) System, method and computer program product for providing quiesce filtering for shared memory
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
EP0348053B1 (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
US5280592A (en) Domain interlock
GB2216306A (en) Load and synchronize computer architecture and process
EP0619899B1 (en) Software control of hardware interruptions
EP0523758B1 (en) A method and apparatus for coordinating execution of an instruction by a coprocessor
JPH0192856A (ja) アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JP2535086B2 (ja) リング削減ロジック装置
KR20040058228A (ko) 낮은 오버헤드의 예외 체킹
JP2523502B2 (ja) リカ−シブ仮想計算機の制御方式
JPS6336012B2 (ja)
JP2980327B2 (ja) 命令処理装置