JPH0458056B2 - - Google Patents

Info

Publication number
JPH0458056B2
JPH0458056B2 JP59238700A JP23870084A JPH0458056B2 JP H0458056 B2 JPH0458056 B2 JP H0458056B2 JP 59238700 A JP59238700 A JP 59238700A JP 23870084 A JP23870084 A JP 23870084A JP H0458056 B2 JPH0458056 B2 JP H0458056B2
Authority
JP
Japan
Prior art keywords
cpu
guest
real
virtual
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.)
Expired - Lifetime
Application number
JP59238700A
Other languages
English (en)
Other versions
JPS60171552A (ja
Inventor
Haaman Gamu Piitaa
Erudoretsudo Hofu Rojaa
Haamansu Tooruman Piitaa
Osukaa Kaarii Saado Toomasu
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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、一般に、マルチプロセツサ計算機シ
ステムにおいて複数のCPUの変換ルツクアサイ
ド・バツフア(TLB)の内容の効率的な除去制
御に係り、複数の仮想システムを平行してエミユ
レートできる仮想計算機(VM)オペレーテイン
グ・システムの性能を改善する為のものである。
本発明は、更に詳細に説明すれば、実CPU上
のゲスト・プログラムのタスク指名終了後、およ
びその実CPU上の同一プログラムまたはもう1
つのプログラムのタスク指名後に保持できる、実
ユニプロセツサ(UP)または実マルチプロセツ
サ(MP)システムの実CPUにあるゲストTLB
項目の内容の完全性に係る。
[従来技術] 本明細書に関連する特許出願としては特開昭57
−212680号がある。この特許出願では、仮想ユニ
プロセツサ(UP)システムを実UPまたは実マル
チプロセツサ(MP)においてエミユレートでき
る解釈実行開始(SIE)命令を説明している。解
釈実行の更に詳しい説明は、1983年11月発行の
IBMジヤーナル(IBM Journal of Research
and Development)における“システム/370拡
張アーキテクチヤ・仮想計算機のための機構”
(System/370Extended Architecture:
Facilities for Virtual Machines)に記載され
ている。
要するに、SIEは、OPコードと主記憶装置
(MS)における制御ブロツクのオペランド・ア
ドレスから成る特権命令として、前記特許出願に
説明されている。この制御ブロツクは、状態記述
子(SD)と呼ばれる。SDは、仮想記憶装置を有
する仮想CPUを含む仮想システムの状態、およ
び仮想システムが実システムでいかに動作すべき
かを制御する一定の状態を定義する値を受取る複
数フイールドを含む。それ故、SDは、UPゲスト
とも呼ばれる仮想ユニプロセツサ(UP)システ
ムを定義する。
複数のSDは、実主記憶装置に存在し、複数の
仮想UPシステム、すなわち複数のUPゲストをそ
れぞれ定義することができる。実UPシステムは、
複数の仮想UPシステムを含んでもよく、それら
は、実CPUおよび実主記憶装置の部分に重畳さ
れる。複数の仮想UPシステムは、SIE命令を連
続して実行することにより、実システム上で動作
し、それぞれのSDを別々に見つけてUPゲストを
指定する。SIE呼出しと呼ばれるプロセスは、ホ
スト・プログラムの命令ストリームにあるSIE命
令が実行されるごとに生じる。このプロセスは、
エミユレーシヨン・モード状態をオンにセツト
し、実CPUのマイクロコードとハードウエアの
サブセツトは、SIE命令が呼出した仮想UPシス
テムの動作をサポートすることができる。SIE命
令の後、ゲスト・プログラムは、SIE命令が定義
した実UPシステムの実行を開始する。SIE命令
は、そのゲスト・プログラムが実行されている限
り、実行中であるとみなされる。ゲスト・プログ
ラム実行は、並行SIE実行を終了するいくつかの
異なつた条件のうちのいずれかによつて終了する
ことができる。SIE実行は割込みまたは通知割込
みによつて終了する。
SIE割込みは構造的に定義されたすべての割込
みを含む。SIE通知割込みは、割込み条件以外
の、SIE実行を終了する条件を含む。例えば、一
定の特権命令はSIE実行に割込むことができる。
SIE実行が終了すると、IBM仮想計算機/拡張ア
ーキテクチヤ(VM/XA)移行補助制御プログ
ラム(製品番号5664−169)に似た仮想計算機制
御プログラムのような、ホスト・システムのオペ
レーテイング・システム・プログラムが呼出され
る。
SIEが呼出されたとき、SDにあるパラメータ
値の多くをCPUにロードすることにより、これ
らの値を主記憶装置に繰返しアクセスすることが
避けられるので、SIEの性能が高められる。CPU
にロードされるSDパラメータには、SD状態モー
ド・フイールド、ゲスト主記憶装置の大きさおよ
び境界、ゲスト記憶セグメントおよびページの大
きさ、ならびに、ゲスト・プログラム・ステータ
ス・ワード(PSW)および他の所定のフイール
ドを含む主記憶装置のゲストCPUプレフイツク
ス保管領域(PSA)を定めるプレフイツクス値
が含まれる。
また、仮想UPシステム(仮想UPゲストとも呼
ばれる)は、共通の実記憶装置に密結合されてい
る複数のCPUから成る実マルチプロセツサ
(MP)システムに設けることもできる。このよ
うな実MPシステムでは、複数の仮想UPシステ
ムは、実UPシステムで定義するのと同様に、実
主記憶装置におけるそれぞれの複数SDによつて
定義することができる。このように、複数SDの
各々は、実MPシステムにおけるそれぞれの仮想
UPゲストを定義する。MPにおける複数の実
CPUのどれか1つまたはそれ以上は、いつでも、
それぞれのSIE命令によつて実行される。エミユ
レーシヨン・モードになり、複数の仮想UPシス
テムは同時に実MP主記憶装置のそれぞれのSD
によつて実行することができる。
実MPシステムのUPゲストは、実行に際し、
最初に実CPUの1つにタスク指名されてから、
(I/O待ち状態への移行の場合のように)通知
割込みされ、または(ホストI/O動作を行なう
場合のように)割込まれる。その後、ゲストは、
その最初のCPUが他のプログラム実行に使用中
である間に、再び実行可能の場合、もう1つの
CPUにタスク指名されることがある。
UPゲストはCPU上で仮想アドレスを使つてプ
ログラムを実行するので、仮想アドレスはアドレ
ス変換を必要とし、変換されてから各実行CPU
の変換ルツクアサイド・バツフア(TLB)に保
持される。同じUPゲストが、そのゲストをタス
ク指名するそれぞれの実CPUでアドレス変換よ
うにしてもよい。
アドレス変換は、ゲスト実行中、実行中の
CPUのTLBに保持される。ゲスト実行が一時的
に中止された後、TLB項目に存在するゲスト変
換が後に必要であるかどうかは分らない。その理
由は若し、ゲストが次にもう1つのCPUにタス
ク指名されるならば、そのゲスト変換は不要とな
るからである。前記特開昭57−212680号に示唆さ
れているように、ゲスト・プログラムまたはホス
ト・プログラムがタスク指名されようとしている
場合、又はゲスト・プログラムがCPUにおいて
SIE実行を終了しようとしている場合、TLB項目
(ホストのTLB項目ではない)は無効にされる。
しかし該CPUにおける次のプログラムは、新し
いアドレス変換のため、これらの無効になつた項
目を直ちに使用することがある。しかしながら、
該CPUにおける次のプログラムは、実際には、
無効になつた、前のゲストTLB項目のすべてを
使用しないこともある。
[発明が解決しようとする問題点] 本発明の目的は、第1に、ゲストがタスク指名
されている実CPUに存在するゲストTLB項目の
使用可能性を保証することである。
本発明の目的は、第2に、ホスト・プログラム
実行中(すなわち、非エミユレーシヨン、換言す
れば非解釈実行モードの場合)、実CPUにおける
ゲストTLB変換を処理する効率を改善すること
である。
[問題点を解決するための手段] 本発明は、ゲストTLB項目の完全性が再タス
ト指名によつて影響を受けない場合、および、項
目の完全性がホスト変換の無効化によつて危くな
る場合を識別し、1つのCPU内あつて該ホスト
変換に依存する全ゲストTLB項目を無効化でき
るプロセスを含む。例えば、ホスト・プログラム
がホスト・ページ・テーブル項目を無効にする度
に、実システムのCPUに存在するゲスト・アド
レス変換に多分影響を与えるので、同じホスト・
ページをアドレス指定する、すべての影響を受け
たゲストTLB項目を無効にしなければならない。
しかし、若し、ホスト・プログラムが、タスク指
名されている間に、ホスト・ページ・テーブル項
目を無効にしなければ、本発明によつて、実シス
テムの各ゲストTLB項目は現に存在するアドレ
ス変換を保持し、同じゲストの次のタスク指名に
よつて使用することができ、CPUが同じ仮想ア
ドレスを再び変換する試みを重複しなくてもよ
い。ゲスト再変換の回避により、仮想計算機
(VM)環境のゲスト・プログラムのような、UP
またはMPシステムで実行されるゲスト・プログ
ラムの性能を大幅に高めることができる。
本発明は、実MPシステムにおける動作のため
に仮想MPシステム(MPゲストとも呼ばれる)
の概念を用いる。仮想MPシステムは複数の関連
SDによつて定義される。各SDは仮想CPUおよび
仮想MPに密に結合した主記憶装置を定義する。
仮想UP(UPゲストとも呼ばれる)は単一のSDに
よつて定義され、該SDはUPの仮想CPUおよび
その仮想主記憶装置を表わす。
本発明は、実UPまたは実MPシステム上で実
行中の仮想UPシステムおよび仮想MPシステム
によつて動作する。UPゲストは、実MPの2つ
以上の実CPU上で、異なつた時間に実行できる。
そして各CPUは、UPゲストが各CPUでの実行を
(多分一時的に)中止した後、ゲストTLB項目を
保持できる。そして、ゲストは後に、同じか又は
もう1つの実CPUにタスク指名できる。
実CPU上で実行中のUPゲストは、いつでも、
S/370ページ・テーブル項目無効化(IPTE)
命令を出し、仮想ページ・テーブル項目を無効に
することができる。システムは、ゲストIPTE実
行後、その無効になつたゲスト・ページ・テーブ
ル項目を用いるアドレス変換を含むゲストTLB
項目が後に使用できないことを、保証されなけれ
ばならない。この保証は、下記フイールドを含む
新しいフイールドを用いる独特のプロセスによつ
て与えられる: (1) 各SDに置かれた最終CPUアドレス(最終
CPA)。
(2) 実MPの各実CPUに登録された1つまたはそ
の以上のSDアドレス(SDA)。
これらのフイールドは、SIE命令の実行を呼出
す際に処理され: (1) このUPゲストを現にタスク指名している実
CPUは、このゲストを最後にタスク指名した
同じ実CPUであるか、 (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は、GMPA(すなわち、GMP
アドレス)を含み、関連するGMPインタロツ
ク・フイールドを見つける。関連した仮想記憶装
置の仮想ページ・テーブル項目を無効にするのに
必要な、該MPゲストのゲスト・プログラムは、
先ず、そのSDのGMPAを用いて関連GMPをア
クセスし、インタロツクがオンであるかオフであ
るかを決める。若し、インタロツクがオンなら
ば、無効化を要求しているプログラムはその時点
で無効化を行なうことを許されず、関連GMPイ
ンタロツクがオフ状態にセツトされるまで待たさ
れる。GMPがオフ状態の場合、関連MP仮想記
憶装置に対する無効化要求は、インタロツクがオ
ンにセツトされた後に許される。前述の本発明の
方法は、データ処理システムのハードウエアまた
はマイクロコードで実現される。ゲスト・システ
ムの完全性は、ホスト・プログラムが同じGMP
インタロツクを用い、ゲスト・ページ・テーブル
項目に依存する命令シミユレーシヨンの間、無効
化を阻止することが必要である。
選択的なゲストTLB無効化の問題は、UPゲス
トの場合よりもMPゲストの場合の方が難かし
い。例えば、MPゲストは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が非エミユレ
ーシヨン・モードの場合、ホスト・プログラム
は、実行記憶装置を動的に再割振りし、データ・
ページを、実主記憶装置内で実主記憶装置とI/
O装置の間のそれぞれのページ・フレームに移す
ことができる。よつて、再割振りされたページの
ページ・テーブル項目(PTE)のページ・フレ
ーム実アドレス(PFRA)は、関連ホスト・ペー
ジ・テーブルで変更される。この場合、ホスト
は、異なつたPFRAを挿入する前に先ずPTEを
無効にする必要がある。しかし、実CPUがエミ
ユレーシヨン・モードの場合、ゲストは、ホス
ト・ページ・テーブルまたはゲスト・ページ・テ
ーブルを変更することも、ホストPTEまたは他
のゲストPTEを無効にすることも、あるいは、
現に存在するホストTLB変換または他のゲスト
TLB変換に影響を及ぼすこともできない。ゲス
トは、ゲスト自身の仮想PTE、ゲスト自身の変
換およびゲストのTLB項目−ゲストが管理責任
を有する、ゲスト自身の仮想ページ・テーブル項
目の、ゲストによる無効化によつてしか影響を受
けない−にしか影響を及ぼす事ができない。
IPTE命令によるホスト・ページ・テーブル項
目(PTE)無効化は、影響を受けた全ゲスト
TLB項目を信頼できないものにする(すなわち、
ホスト・ページをアドレス指定するこれらの項目
が無効になる)。ホストによるIPTE命令の実行
は、ページ・テーブル項目(PTE)を定義する
IPTEオペランドを無効にする。PTE項目は、実
主記憶装置のページ・フレームを定義するペー
ジ・フレーム実アドレス(PFRA)を含み、その
変換はIPTE命令によつて無効にされる。IPTE
命令はPTEを無効にし、かつ、この無効になつ
たPTEを使用するアドレス変換を含むCPUの
TLB項目を無効にする。影響を受けたゲスト
TLB項目は、ゲスト仮想アドレスからホスト実
アドレスへの変換を与えるものであるが、その場
合、ホスト実アドレスは、現在のホストIPTEに
よつて無効になつている。ホスト仮想アドレス/
ホスト実アドレス変換によつて得られたものであ
る。
[実施例] 第2図〜第5図の各々は、同じハードウエア構
成例を表わし、IBMのVM/XA移行補助のよう
な、ホスト・システムによつて動作する異なつた
数のゲストをサポートする。第1A図〜第1E
図、第5図、第6図、第7A図〜第7C図に示さ
れたプロセス発明は、VM/XA移行補助のオペ
レーテイング・システム・プログラムとともに使
用するマイクロコードまたはハードウエアで実施
可能である。第8図は、オペレーテイング・シス
テムのソフトウエアとして実施可能な本発明の特
性を表わす。
第2図〜第5図に示されたハードウエアは、実
マルチプロセツサ・システム(MP)のハードウ
エアで、CPUA,BおよびC、システム制御装置
(SC)11、主記憶装置(MS)12、システム
領域記憶13から成る。システム領域記憶13
は、物理的には主記憶装置の一部に含まれること
もあるが、マイクロコードまたはハードウエアに
よつてだけアドレス指定可能である、すなわち、
システムのユーザ命令セツトから成るプログラム
からのアクセスは不可能である。
各状態記述(SD)は主記憶装置12に設けら
れた制御ブロツクであり、第2図〜第5図に示す
ように、括弧付きの添字によつて識別される。各
SDの内容は、本明細書の前文で説明したように
複数のフイールドから成る。これらのフイールド
はMSフイールドを含み、主記憶装置12におい
てSDが示す仮想CPUに割当てられた起点および
エクステントを定義する。また、プレフイツク
ス・フイールドも各SDに設けられ、ゲストの主
記憶装置12における、該SDが示す仮想CPUの
プレフイツクス保管領域(PSA)に割当てられ
た位置を表わす。また、無効ページ・テーブル項
目(IPTE)通知割込みフラグ・フイールドはあ
らかじめSDに設けられている。これらのフイー
ルドの外に、本発明によつて新規のフイールドも
設けられている。これらは最終CPU識別子フイ
ールド(最終CPUID)ならびにゲストMPアドレ
ス・フイールド(GMPA)である。GPMAフイ
ールドは、第2図で0にセツトされ、該SDがユ
ニプロセツサ(UP)仮想システム(すなわちUP
ゲスト)を表わすことを指示する。若し、
GMPAフイールドが非0であれば、該SDはMP
仮想システム(すなわちMPゲスト)における仮
想CPUを表わす。
それ故、SDはユニプロセツサ(UP)またはマ
ルチプロセツサ(MP)の仮想システムに関連づ
けられる。第2図はユニプロセツサ・ゲストの場
合だけを表わす。第3図は1つのマルチプロセツ
サ・ゲストの場合だけを表わす。第4図は同じ実
MPシステムにおけるUPゲストおよびMPゲスト
の場合を表わす。第5図は同じ実MPシステムに
おける任意数のUPゲストおよび(または)MP
ゲストの一般的な場合を示す。
また、第2図〜第5図の主記憶装置12にはホ
スト・ページ・テーブル(PT)がある。例えば、
PT0(0)〜PT0(J0)はUPゲスト0の主記憶装
置(MS)のページ・テーブルのセツトである。
各ホストのページ・テーブルは、在来型のホス
ト・セグメント・テーブル(図示せず)の項目に
よつて参照される。ホスト・ページ・テーブルは
ゲストに対し、ゲストの各SDにあるMSフイール
ドに表わされた実主記憶装置のエクステントを写
像する。すなわち、ホスト・ページ・テーブルは
ゲスト実アドレスを実主記憶装置12のホスト実
アドレスに変換する。若し、ゲストが仮想アドレ
ツシングを用いるならば、ゲスト・ページ・テー
ブルのセツトも、ゲスト仮想アドレスの各々をゲ
スト実アドレスに変換し、第2レベルのアドレス
変換をゲストに提供する必要がある。
第3図では、単一のMPゲストが2つの状態記
述SD(1),SD(2)によつて表わされている。SD(1),
SD(2)の形式はSD(0)の場合と同じである。SD
アドレス(SDA)はそれぞれのSDの位置を示
す。従つて、実主記憶装置12に於て、SDA(1)
はSD(1)の開始点、SDA(2)はSD(2)の開始点を決め
る。
第3図および第4図でSDの、MPゲストを表
わす主記憶装置フイールドMS(1),MS(2)は同じ
起点およびエクステント値にセツトされ、それぞ
れのMPゲストの、密結合された主記憶装置を表
わす。1セツトのホスト・ページ・テーブルPTI
(0)〜PT1(J1)は、それぞれのMPゲストのた
めに設けてある。MPの場合、SDの各々は、そ
れぞれのMPの、別々の仮想CPUを表わす。
ゲストMPフイールド(GMP)と呼ばれるMP
インタロツク・フイールドは、各MPゲストのた
めに設けられている。従つて、第3図で、GMP
(1)は、1つのMPゲストとして第3図に示された
仮想MPシステムのために設けられたインタロツ
ク・フイールドである。
MPゲストの全SDは、共通の同じ値、すなわ
ち、そのそれぞれのMPゲストに関連したGMP
インタロツク・フイールドのアドレスにセツトさ
れたGMPAフイールドを有する。従つて、第3
図で、それぞれのMPゲストはSD(1)およびSD(2)
を有し、その各々はGMP(1)を指す同じアドレス
にセツトされたGMPAフイールドを有する。す
なわち、GPMA(1)はGPM(1)のアドレスにセツト
され、GPMA(2)もGPM(1)のアドレスにセツトさ
れる。
第4図は、第2図のUPゲスト、および第3図
のMPゲストの両者を含む実主記憶装置12を示
す。従つて、SD(0)は第2図のUPゲストとし
て表示され、SD(1),SD(2)は第3図のMPゲスト
として、それぞれのインタロツク・フイールド
GMP(1)とともに表示されている。
また、第4図の主記憶装置12では、UPゲス
ト0およびMPゲスト1のホスト・ページ・テー
ブルはそれぞれ、第2図および第3図に表示され
たものと同じである。
第5図は、SD(0)〜SD(M)として示された
任意数のSDが表わす任意のゲスト数を含む一般
化された実主記憶装置12を示す。SDは、UPゲ
ストおよび任意数のSDを有するMPゲストのい
かなる組合せにも構成できる。また、MPゲスト
の各々は、実システムにおけるMPゲスト数Kの
場合にGMP(0)〜GMP(K)のセツトからそれ
ぞれのGMPインタロツク・フイールドを得る。
また、第5図では、ゲスト当り1セツトのホス
ト・ページ・テーブルがあり、実主記憶装置12
に写像されたUPおよびMPの任意の組合せのゲ
スト数Xに対し、Xセツトのホスト・ページ・テ
ーブルを与える。
第2図〜第5図はそれぞれCPU−A,CPU−
BおよびCPU−Cを示す。これらのCPUの各々
は、本発明では、状態記述アドレス・レジスタ
(SDAR),CPU識別子レジスタ(CPUID)およ
び変換ルツクアサイド・バツフア(TLB)とし
て示されている特定のレジスタを設けることが必
要である。これらのレジスタには対応するCPU
の指定記号A,BまたはCが添字され、そのレジ
スタが置かれているそれぞれのCPUを表わす。
CPUIDは実MPシステムの各CPUの独特の固
定識別子を含む。この値はシステムの各CPU内
では不変である。
各CPUのTLBは、前述の米国特許出願第
273532号に説明されている。
各CPUのSDARは、各CPUに使われる最後の
SDを指すSDAアドレスを含む。例えば、若し、
CPU−Bが第2図のUPゲストのプログラムを実
行中であれば、CPU−BのSADRは、SD(0)
の位置を決めるアドレスSAD(0)にセツトされ
る。
また、第2図〜第5図にはそれぞれ、システム
領域記憶13に、実システムの各CPUのそれぞ
れのフラグ・フイールドが設けられている。これ
らのフラグはゲストTLB除去(PRGT)フラグ
と呼ばれ、フラグによつて表わされる各実CPU
の指定記号が添字されている。
CPUで実行中のホスト・プログラムがホス
ト・ページ・テーブル項目を無効にするたびに、
全PRGTフラグはオンにセツトされる。ゲス
ト・プログラムがCPUにタスク指名されること
になると直ちに、該CPUのPRGTの状態が検査
され、若し、それがオンであれば、CPUに影響
するTLB項目は無効になる。次いで、該PRGT
フラグは、他のPRGTフラグの状態に影響を与
えずにオフ状態にセツトされる。
本発明の良好な実施例は、第2図〜第5図に示
すように、実MPのCPUごとにPRGTフラグを含
む。第1図はPRGTフラグを用いる本発明の良
好な実施例を示すものであり、その詳細プロセス
が第1A図〜第1E図に示される。
更に、本発明の代替実施例であつてPRGTフ
ラグを使用しないものが第7図に示され、その詳
細プロセスが第7A図〜第7C図に示される。解
釈実行開始(SIE)命令は、実CPUのゲスト・エ
ミユレーシヨンを提供する前記米国特許出願第
273532号において説明されている。要するに、
(計算機ハイパバイザ型のプログラムのような)
ホスト・プログラムは、該ホスト・プログラム
が、その時点で該ホスト・プログラムが実行して
いるのと同じCPUでゲストを開始することにな
る度に、SIE命令を実行することができる。SIE
命令は単一のオペランドを有する。このオペラン
ドはシステムの実主記憶装置における状態記述
(SD)のアドレスである。SIE命令の実行によ
り、主記憶装置の、アドレス指定された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
(SIE))と、このCPUがアクセスした最後のSD
を表わす、このCPU−SIE命令を実行している−
のSDARレジスタの内容とを呼出し、両者を比較
する。若し、SDA(SIE)がSDARの内容に等し
ければ、このCPUが使用した最後のSDが、この
CPUで現在のSIE命令によつてアクセスされてい
る現在のSDが等しいことを意味し、ステツプ33
に進む。
ステツプ33で、このCPUのCPU識別子をその
CPUIDRレジスタから読出し、現在アクセスさ
れているSDの最後のCPUIDフイールドの内容
(CPUID(SD))と比較する。CPUIDフイールド
の各々は、そのCPUIDフイールドを有するSDを
使用する最後のCPUを識別する。若し、
CPUIDRの内容がCPUID(SD)の内容に等しけ
れば、(現在のSIE命令を呼出している)この
CPUは、このSDをタスク指名したMPの最後の
CPUである。
従つて、ステツプ32および33は、現在のSIE命
令によつて所定のCPUにアクセスされているSD
が: (1) このCPUで実行される最後のSD(ステツプ
32)であり、 (2) このCPUで実行されていなかつた期間に他
のCPUでも実行されなかつた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にある最後のCPAフイ
ールドに記憶する。
次に、ステツプ36で、このCPUのPRGTフラ
グ−ステツプ31で検査されたのと同じPRGTフ
イールドである−をオフ状態にリセツトする。そ
して、ステツプ37で、現在のSIE命令のオペラン
ド・アドレス、すなわちSDA(SIA)によつて、
このCPUのSDARレジスタの内容をセツトした
後、既に説明したステツプ38、続いてステツプ39
に進む。
ステツプ32で、若し、現在のSIE命令のオペラ
ンド・アドレスと、現在のCPUが使用した最後
のSDアドレス(すなわち、SDARの内容)が等
しくなければ、ステツプ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とCPUID(SD)の不一致を生じる。全
1のCPUID(SD)は、次のSIE呼出しでステツプ
35において実際のCPUIDRに取替えられる。
ゲスト・プログラム実行中、ゲスト・プログラ
ムは、ゲストによる実行が許可されていない特権
命令を実行しようとする場合のように、ホスト制
御プログラムの助力を要する事態になることがあ
る。この場合、CPUは、ゲストが使用中のSDに
ある通知割込みをオンにセツトできる。そして、
ゲスト・プログラムの通知割込みを行ない、制御
はホスト・プログラムに戻る。
ゲスト・プログラムに通知割込み、または、割
込む度に、ゲスト・プログラムは中止され、実
CPUはホスト・プログラムを呼出す。
中止されたゲストは後に、実MPシステムの同
じCPUまたは別のCPUにタスク指名され、その
処理を続行することがある。ゲストが、ある
CPUにタスク指名される度に、SIEを再びホス
ト・プログラムによつて実行し、第1A図の呼出
しプロセスを実行する。
ゲスト・プログラムを実CPUにおいてエミユ
レーシヨン・モードで実行中の場合、ゲスト・プ
ログラムはゲスト・ページ・テーブルの1つのペ
ージ・テーブル項目(PTE)を無効にできる。
(注:ゲスト・ページ・テーブルは、第2図〜第
5図に示したホスト・ページ・テーブルの1つで
はない。ゲスト・ページ・テーブルは仮想アドレ
ツシングを用いるゲストによつてのみ使用され
る。)それ故、ホスト・プログラム実行中、ホス
ト・プログラムはホスト・ページ・テーブル(す
なわち、第2図〜第5図に示したページ・テーブ
ルの1つ)を無効にする。ゲスト・プログラム実
行中、ゲスト・プログラムはゲスト・ページ・テ
ーブル項目だけを無効にできるが、ホスト・ペー
ジ・テーブル項目を無効にはできない。ページ・
テーブル項目の無効化は一般に、ページ・テーブ
ル項目無効化(IPTE)特権命令によつて行なわ
れる。あるCPUで実行中のホスト・プログラム
またはゲスト・プログラムはIPTE命令を含むこ
とがある。
第1B図は、本発明の、ホストIPTE命令の実
行のプロセスを示す。第1C図および第1D図
は、本発明のUPゲストまたはMPゲストによる
ゲストIPTE命令の実行プロセスを示す。第1E
図は、IPTE命令をMPのCPUで実行する場合、
それがホスト・プログラム、またはMPゲスト・
プログラムのどちらによるものであつても、実
MPシステムの他の実CPUの反応に関する本発明
のプロセスを示す。第1E図は、UPゲスト・プ
ログラムが実行するIPTE命令では使用されな
い。
第1B図のステツプ40で、IPTE命令のオペラ
ンドが識別するページ・テーブル項目のアクセス
により、ホスト・プログラムはIPTE命令実行を
開始する。ステツプ41で、このページ・テーブル
項目の無効ビツトをオンにセツトする。ステツプ
42で、無効状態に対するTLB項目の無効ビツト
をオンにセツトすることにより、実行中のIPTE
命令のページ・テーブル項目を使用するアドレス
変換を含む、このCPUのTLB項目を無効にする。
ステツプ43で、第2図〜第5図のシステム記憶領
域13にある全CPUの全PRGTフラグがオンに
セツトされる。第6図の従来技法では、ステツプ
43のPRGTフラグなしに、IPTE命令を実行する
度に、ホストは、少なくとも全ゲスト項目の除去
を行ない、恐らくは全ホストTLB項目も除去す
る。ホスト・プログラムが実行する主記憶装置割
振り手順の場合のように、ホスト・プログラムの
タスク指名の間に、ホストは多数のIPTE命令を
実行できるであろう。ゲストTLB項目を除去す
るプロセスは低速プロセスであつて、この機能を
実行するホスト・プログラムの休止を生じ、ホス
ト・プログラム動作を低速にすることがある。ス
テツプ43では、このようなホスト・プログラム動
作の休止は不要であるので、ホスト・プログラム
の性能は改善される。このように、PRGTフラ
グによつて、1つのSIE命令の呼出しは、ホスト
実行中に受取つたIPTE要求の累積を除去でき
る。また、SIE命令は用いないがIPTE命令を用
いるホスト・プログラムは、ゲストTLB項目に
よる性能低下を生じない。
ステツプ44で、ホストIPTE命令を実行中の
CPUは、実MPにおける他のCPUの各々に信号
を放送する。第1B図の放送信号45は、IPTE
命令のオペランド、ならびに、それを識別する、
放送CPUのCPUIDRレジスタの内容を表わす。
本実施例では、実MP中の実CPUは互いに非同
期にプログラムを実行しているものと仮定する。
放送信号を受取るCPUの各々は: (1) 現に実行中の命令を完了することができ、 (2) 影響を受けたTLB項目を無効にし、 (3) 応答信号77をIPTE放送CPUに供給する。
この受信CPUのプロセスは第1E図に示す。
第1B図のステツプ47で、放送信号受信中の全
CPUが応答した時点を決定し放送CPUに知らせ
る。次いで、ステツプ48で、ホストIPTE命令の
動作を完了する。
第1C図および第1D図はゲストIPTE命令の
実行プロセスである。第1C図および第1D図の
ゲストIPTEプロセスは、PRGTフラグを使用し
ないから、第1A図〜第1E図の実施例ならび
に、第7A図〜第7C図の実施例のどちらにも、
使用できる。第1A図の呼出しプロセス、第1B
図のホストIPTEプロセス、ならびに、第1E図
の応答CPUプロセスを使用できるのは、良好な
実施例においてだけである。その理由は、これら
のプロセスは直接的にも間接的にも、良好な実施
例しか使用しないPRGTフラグの使用に依存し
ているからである。
第1C図のステツプ50で、ゲストIPTE命令の
実行が開始される。ステツプ51で、このゲストの
SDすなわち、このCPUに現に呼出されている
SIE命令によつてアドレス指定されたSDのIPTE
通知割込みフラグ・フイールドのステータスを検
査する。SDのIPTE通知割込みフラグは本発明以
前に存在しており、ゲストがIPTE命令を実行し
ようとする度に検査されている。IPTE通知割込
みフラグがオンにセツトされている場合、ゲス
ト・プログラムを中止し、制御をホスト・プログ
ラムに渡し、ゲストのIPTE命令の実行をシミユ
レートする。若し、このような通知割込みが行な
われることになつているならば、ステツプ51から
ステツプ56に進み、該CPUによる現在のSIE命令
の実行を終了し、CPUを非エミユレーシヨン状
態にセツトする。次いで、ステツプ57で、ホスト
制御プログラムに制御を渡す。
本発明は、ステツプ51で、ゲストIPTE命令実
行中にIPTE通知割込みフラグがオフである場合
に呼出される。その場合、ステツプ52に進み、現
在のSIE命令によつてアクセスされたSDにある
ゲストMPアドレス・フイールド(GMPA)の内
容を検査する。若し、GMPAの内容が0ならば、
関連SDが表わすUPゲストを指示する。
反対に、若し、GMPAの内容が非0ならば、
現在のSDが仮想MPシステムの仮想CPUを表わ
すことを意味し、結合子Aを介して第1D図に進
む。第1D図では、現にアドレス指定されている
SDが表わすゲストの仮想CPUの1つでMPゲス
トが実行中のIPTE命令を処理する。
第1C図のステツプ52で、GMPAの内容が0
であつてUPゲストを表わす場合、ステツプ53に
進み、UPゲストのIPTE命令がアドレス指定し
たゲスト・ページ・テーブル項目を無効にする。
すなわち、アドレス指定されたゲストPTEの無
効ビツトをオンにセツトする。次いで、ステツプ
54で、このPUのゲストTLB項目が無効にされ
る。
次いで、ステツプ55で、この、UPゲストの
IPTE命令の動作を完了する。
若し、ステツプ52で、アクセスされているSD
が、MPゲストの仮想CPUを表わすなら、前述の
ように、第1D図のステツプ58に進み、現にアク
セスされているSDのGMPAフイールドの非0の
内容からアドレス指定されたインタロツク・フイ
ールドGMPの状態を検査する。GMPインタロツ
クは、MPゲストのPTEのアクセスを制御する。
若し、このGMPインタロツクがオン状態(1)にセ
ツトされていれば、MPゲストのPTEの無効化は
禁止され、ステツプ69Aに進んで、現在のSIE命
令の実行を終了し、CPUを非エミユレーシヨン
状態にセツトする。次いで、ステツプ69Bで、
CPUはホスト制御プログラムを呼出し、その実
行を開始するが、終了したMPゲストが、インタ
ロツクがオフにリセツトされるのを待つている間
に、CPUを他のゲストにタスク指名できる。
CPUを他のゲストにタスク指名できるのは次の
理由による。すなわち、インタロツクがオフにセ
ツトされるまで、インタロツクされたゲスト・プ
ログラムとともに実CPUを待たせ、比較的長期
間にわたつて実CPUを非生産的に拘束しておく
代りに、インタロツクを比較的長期間にわたつて
オンにし、より効率的にCPUを他のゲストのた
めに実行させることができる時間があるからであ
る。
しかしながら、若し、ステツプ58で、GMPフ
イールドがオフ状態(0)であれば、ステツプ59
に進み、GMPビツトを1にセツトする、すなわ
ち、インタロツクをオンにセツトし、それ以後、
このGMPインタロツク・フイールドがオフ状態
(0)にセツトされるまで、他の仮想CPUまたは
ホストがMPゲストの主記憶装置をアクセスする
のを阻止する。GMPフイールドの検査およびセ
ツテイングは、システム/370の比較およびスワ
ツプ命令のような、ハードウエア的にインタロツ
クされた更新動作によつて行なう。
次にステツプ61で、現在のゲストIPTE命令が
アドレス指定したゲストPTEの無効ビツトをオ
ンにセツトする。次いで、ステツプ62で、この
CPUの、現在のゲストIPTE命令のオペランドが
見つけた、ステツプ61で無効になつたゲスト
PTEを使用したゲストTLB項目を無効にする。
次にステツプ63で、IPTE信号64を実MPシ
ステムの他の実CPUに放送する。放送信号は、
放送中のCPUを識別し、良好な実施例における
他のCPUのIPTEオペランドを表示する。第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図の実施例の
目的の場合、放送は、それがホストIPTEの場合
であるか、またはMPゲストIPTEの場合である
かを指示しなくてもよい。
ステツプ71で、割込みトラツプがセツトされる
と、ステツプ72で、現在の命令を実行中のマイク
ロコードまたはハードウエア、あるいは、受信
CPUで実行中の動作の動作終了信号をセンスす
る。次いで、CPUはステツプ73を実行し、受
CPUでトラツプされた放送IPTEオペランド信号
によつて見つかつたTLB項目を無効にする。こ
のように、ステツプ73では、トラツプされた
IPTEオペランドによつて見つかつたゲストまた
はホストのTLB項目が無効になる。
ステツプ74で、受信CPUがエミユレーシヨン
状態であるかどうかを検査する。若し、受信
CPUがエミユレーシヨン状態ではないならば、
ホスト・プログラムを実行中であり、ノーの出口
から直ちにステツプ76に進む。その時点で、ゲス
トTLB項目は無効にならない。
反対に、ステツプ74で、若し、受信CPUがエ
ミユレーシヨン状態であれば、イエスの出口から
ステツプ75に進み、受信CPUで影響を受けたす
べてのゲストTLB項目(すなわち、無効になる
ホスト・ページをアドレス指定する項目が除去さ
れる。
次にステツプ76で、受信CPUは応答信号77
を放送CPUへ送り、放送IPTE信号の応答処理が
受信CPUによつて完了したことを表示する。次
いで、ステツプ78で、受信CPUは、ステツプ72
の動作終了を行なう命令または動作に続く次の命
令を実行する。
第1C図では、本発明の動作により、UPゲス
トIPTE命令の放送動作がなかつたが、このよう
なUPゲスト放送が不要となつた理由は、第1A
図における新規のSIE命令実行呼出しプロセスに
よるものである。確かに、SDは、その間、2番
目のCPUで実行し、最初のCPUのゲストTLB項
目を有効のままにしておいたならば、最初の
CPUは、異なつたSDによつて実行(ラン)しよ
うとする場合、これらのゲストTLB項目を使用
することができない。その理由は、最初のCPU
のゲストのSIE命令呼出しの間に、ステツプ32
で、次のゲストのSDアドレスの不一致状態が発
見されると、ステツプ34へ進み、そのCPUのゲ
スト項目のすべてを除去するからである。同じ事
が、最初のSDが後に最初のCPUにタスク指名さ
れる場合にも起きるが、それはステツプ33の
CPUIDの比較が不一致の場合、ステツプ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に生じていることが
あるからである。この再使用不可能な状態は第1
A図のステツプ33の不一致の場合に生じる。
実施例における選択的な各TLB無効化ステツ
プ42,54,62,73,142,173または182は、適切
なハードウエア簡略化のトレードオフを行なう場
合、小量のオーバキル(過度のTLB無効化)に
よつて実行される。例えば、TLBハードウエア
は、TLBの各適合クラスに複数項目(一般に2
項目)を有するセツト連想方式になるように設計
されている場合、ステツプ42等は、IPTEオペラ
ンドによつて見つかつた適当クラスにある全項目
を無効にできる。これは恐らく、ホストまたはゲ
ストのTLB項目とみられる幾つかの余分なTLB
項目を無効にする。このオーバキルによつても
尚、現に存在する他のすべてのTLB項目が、後
にプログラムによる使用のために残される。
第7A図〜第7C図は、第1A図〜第1E図の
方法の代替方法の実施例で、MPの各CPUのマイ
クロコードまたはハードウエアで実現される。こ
れらの実施例の基本的な相違は、第7A図〜第7
C図の実施例がPRGTフラグ・フイールドを使
用しない(このようなフラグの必要性もない)こ
とである。もう1つの相違は、第7A図〜第7C
図の実施例が、送信ホストIPTEと送信MPゲス
トIPTEを見分ける放送信号を用いることであ
る。第1の実施例の第1A図〜第1E図の各プロ
セスは、第1C図および第1D図のゲストIPTE
命令プロセスが第2の実施例でも使用される点を
除き独特のプロセスである。
第7A図の方法のステツプは、対応する第1A
図のステツプに似ている。両図の類似ステツプの
参照数字の下2桁が同じ数字を用いている。ただ
し、第1A図のステツプ31および36は、第7A図
に対応するステツプがなく、スキツプされている
ことが分る。あるいはまた、第7A図のプロセス
は、第1A図のプロセスのように動作し、第7A
図の方法によつて呼出されたゲスト・プログラム
が、第7A図のプロセスの動作の完了後に存在す
るゲストTLB項目を確実に使用できる。
第7B図は第2の実施例のホストIPTE命令の
実行を示す。同じ実施例のゲストIPTE命令の実
行は、第1の実施例の第1C図および第1D図の
場合と同じである。
第7B図のステツプ140で、ホストIPTE命令
の実行が開始される。ステツプ141で、ホスト
PTE無効ビツトをオンにセツトし、ホストIPTE
命令が識別したホスト・ページ・テーブル項目
(PTE)を無効にする。次にステツプ142で、こ
のCPUの、ステツプ141で無効になつたホスト
PTEを利用する変換を含む対応するホストTLB
項目を無効にする。対応するホストTLB項目は、
ステツプ42で、関連IPTE命令のオペランドによ
つて見つかる。
次に、ステツプ149で、このCPUで影響を受け
た全ゲストTLB項目を無効にする。次いでステ
ツプ144で、実MPにおける他の実CPUに、関連
ホストIPTE命令の信号を放送し、ホストIPTE
が実行中であり、IPTEオペランドを渡している
ので、他の各実CPUは影響を受けたゲストTLB
項目を無効化できる。
ステツプ147で、他の実CPUからの全応答177
を、第1C図のプロセスを実行した、MPでの他
の各実CPUによつて、放送CPUへ送つた時点を
表示する。次にステツプ148で、ホストPTE命令
の動作を完了した後、ホスト・プログラムは次の
動作に移行できる。
第7C図は、第1の実施例の第1E図に類似の
放送CPUへのIPTE応答を実行する。従つて、第
1E図のステツプの参照数字と、対応する第7C
図のステツプの参照数字の下2桁は同じ数字であ
る。従つて、第7C図のステツプ171で、割込ト
ラツプは、受信した放送IPTE信号によつて受信
CPUにセツトされる。第7C図のステツプ171の
割込みトラツプに与えられた放送信号は、放送が
第1D図からのMPゲストIPTE命令の場合か、
または第7B図からのホストIPTE命令の場合か
を指示するゲスト信号またはホスト信号を含む。
この標識は、割込みトラツプ動作の一部分として
受信CPUの1ビツトによつて保持できる。これ
は、第1の実施例の動作とは異なる。第1の実施
例では、放送CPUはそのIPTE命令がMPゲスト
用かホスト用かを知らせる必要はない。その理由
はその情報を第1E図の受信CPUが使用しない
からである。
ステツプ171のIPTE割込みトラツプの設定に
応答して、受信CPUはステツプ172で、次の終了
動作をセンスし、受信CPUを次の命令に直行さ
せる代りに、第7C図に示した本発明の方法を実
行するステツプ181へのマイクロコードまたはハ
ードウエア分岐を実行する。ステツプ181で、ホ
ストまたはMPゲスト信号がステツプ171の割込
みトラツプによつて記憶されたかどうかを検査す
る。このゲストまたはホスト信号は第7C図で使
用され、ゲストTLB項目の選択的無効化を実行
するか、または受信CPUのTLBから、影響を受
けた全ゲスト項目を除去するかどうかを決定す
る。
ステツプ181で、若し、トラツプされた信号が
MPゲストIPTE放送用であれば、ステツプ182に
進み、放送信号が指定した、影響を受けたゲスト
TLB項目を選択的に無効にする。
ステツプ181で、若し、トラツプされた信号が
放送ホストIPTE信号であれば、ステツプ183に
進み、受信CPUのTLBにゲストTLB項目があれ
ば、ステツプ184に進み、影響を受けたゲスト
TLB項目全部を除去する。次いで、ステツプ173
で、ステツプ171でトラツプされた放送ホスト
IPTEオペランドが見つけた、受信CPUのホスト
TLB項目を選択的に無効にする。
ステツプ176で、放送IPTE命令の処理が受信
CPUで完了したことを知らせる信号177をIPTE
放送CPUに返送する。また、ステツプ171のトラ
ツプ(ステツプ71のトラツプに同じ)は、放送
MPゲストの場合は第1E図の放送プロセスか
ら、または、放送ホストIPTEの場合は第7B図
からの放送CPUのCPUIDを記録する。従つて、
この応答信号177はステツプ176によつて放送
CPUに送られ、受信CPUによる応答IPTE動作を
完了する。
次にステツプ178で、応答CPUは若し、IPTE
放送の干渉が生じなかつたなら、ステツプ172の
後に開始されたはずの次命令を実行する。
従つて、第7A図〜第7C図の実施例は、最後
のタスク指名から存在するゲストTLB項目を無
効にせずに、ゲストTLB項目を、同じCPUで、
SIE命令の最後のタスク指名から同じSIE命令の
次のタクス指名に渡すことを可能にすることによ
り、第1A図〜第1E図の実施例の利点を保持す
る。第1A図〜第1E図の実施例の利点(第7A
図〜第7C図の実施例には存在しない)は、
CPUのどれかがホストIPTE命令を実行するごと
に、実MPのあらゆる実CPUでのCPU動作に割
込み、実MPで影響を受けたゲスト項目を無効に
することである。そして、第1A図〜第1E図の
実施例では、不利点を避けるため、全CPUの
PRGTフラグを用い、CPUのどれかがホスト・
プログラムを実行中(すなわち、非エミユレーシ
ヨン状態で)、全ホストIPTE動作のゲストTLB
無効化動作を取除く。PRGTフラグ動作により、
全ホストIPTE命令が(その数に関係なく)実行
され、任意のゲストの次のタスク指名に関連して
累積し、それによつて実CPUは、SIE呼出し中
に、全ゲストTLB項目を一回に除去し、前の全
ホストIPTE命令を実行する余地を与えることが
できる。前の全ホストIPTE命令実行の場合、ゲ
ストTLB無効化の延期を積重ねることにより、
実MPシステムの性能が著しく改善される。SIE
命令をサポートするシステム・ハードウエアで
は、SIE命令を使用しないホスト・プログラム
は、ゲストTLB項目除去のオーバヘツドをしよ
いこまない。
第8図は、ゲスト命令(IPTE命令ではない)
をシミユレートしている間のホスト・プログラム
による動作を示す。すなわち、ゲスト命令は仮想
CPUのゲスト・プログラムの中にあり、解釈実
行の範囲内で実行されるべきタイプの命令ではな
いものとされていた。このような命令の通知割込
みは、その命令をシミユレートできるホスト・プ
ログラムに制御を戻すことにより実行される。
(ホスト・プログラムによるゲスト命令のシミユ
レーシヨンは、IBMのVM/370型プログラムの
プログラミング等におけるような、ハイパバイ
サ・プログラミング技術では周知である。) 第8図のステツプ200の、ホスト・プログラム
によるゲスト命令のシミユレーシヨンの間に、本
発明の方法を呼出すためステツプ201に進む。ス
テツプ201で、シミユレートされている命令を含
むゲスト・プログラムが使用中の仮想CPUを現
に表わしているSDにあるGMPAフイールドを検
査し、SDがUPゲストまたはMPゲストのどちら
の仮想CPUを表わしているかを決める。若し、
GMPAフイールドが非0状態ならば、MPゲスト
の仮想CPUを表わし、ステツプ202に進み、ステ
ツプ201で検査したGMPAフイールドによつてア
ドレス指定されたGMPインタロツク・フイール
ドをアクセスし、検査する。若し、GMPフイー
ルドが1の状態にセツトされているなら、この
MPゲストのもう1つの仮想CPUのインタロツク
がオンであることを表わす。このインタロツク
は、仮想CPUがインタロツクをオンにセツトす
ることを除き、MPゲストの他の全仮想CPUが、
MPゲストのページ・テーブル項目(PTE)を無
効にするのを阻止する。すなわち、GMPインタ
ロツクがオンの場合、PTE無効化は、MPゲスト
のもう1つの仮想CPUによる場合、または該MP
ゲストのもう1つの仮想CPUに代るホスト・シ
ミユレーシヨン・ソフトウエアによる場合を含め
て、MPゲストの他のあらゆる仮想CPUによつて
阻止される。若し、GMPフイールドが1の状態
にあるならば、ステツプ203で、通常の待期・通
知またはスピン・ソフトウエア・ロツキング手法
によりインタロツクを解く。ステツプ202で、
GMPフイールドが0の状態の場合、ステツプ204
に進み、GMPフイールドを1の状態にセツトし、
このプログラム・シミユレーシヨンのインタロツ
クをオンにセツトすることにより、他の仮想
CPUによる命令または、そのホスト・プログラ
ム・シミユレーシヨンがMPゲストPTEを無効に
するのを阻止する。
ステツプ201で、若し、GMPAフイールドが0
にセツトされていれば、UPゲストの命令がシミ
ユレートされていることを示し、その場合、検査
すべきGMPはないので、ステツプ205に飛び、ス
テツプ202,203または204の動作は行なわれない。
ステツプ205で、ホスト・シミユレーシヨン・
プログラムは、ゲスト・セグメント・テーブルお
よびゲスト・ページ・テーブルを使用して、シミ
ユレートされているゲスト命令の(複数の)オペ
ランド・アドレスをソフトウエアにより変換す
る。次いで、ステツプ206で、ソフトウエアは、
変換された(複数の)アドレスを用い、シミユレ
ートされている命令の要求に従つてMPゲスト主
記憶装置でオペランド・データの取出しまたは書
込みを実行する。
次にステツプ207で、関連SDのGMPAフイー
ルドを再検査し、このシミユレーシヨンがUPゲ
ストまたはMPゲストのどちらのシミユレーシヨ
ンであるかを再度決定する。若し、GMPAが非
0なら、MPゲストのシミユレーシヨンであり、
ステツプ208に進む。若し、GMPAが0なら、
UPゲストのシミユレーシヨンであり、ステツプ
209に進む。
MPゲストの場合、ステツプ208で、GMPを0
にセツトしてGMPインタロツク・フイールドを
オフにセツトする。ステツプ209で、ステツプ200
で呼出されたホスト制御プログラム・シミユレー
シヨン・プロセスの動作を継続する。前記実施例
では、TLBは1回に1ゲストの項目の保持しか
できないものと仮定する。しかしながら、TLB
には各ゲストTLB項目とともにゲスト識別子が
含まれ、特定のTLB項目と特定のゲストを関連
づけることができる。このように、複数のゲスト
は、実CPUにそれぞれのTLB項目を同時に持つ
ことがある。そして、どちらの実施例のプロセス
も、その動作をいつでも、特定のゲストIPTEま
たはホストIPTEの項目に指向することにより動
作できる。特定のゲストIPTEの無効化は、必ず
しも他のゲストのTLB項目に影響を及ぼすこと
なく、実MPシステムの全CPUにおける特定のゲ
ストのTLB項目だけを無効にする。ホストIPTE
の無効化は、ゲストTLB識別子を考慮せずに全
ゲストTLB項目を無効にする。
[発明の効果] 本発明は、“ゲストTLB除去(PRGT)フラ
グ”を設けることにより、システムの各々の実
CPUは、ホストPTE無効化により、実システム
の各CPUにおいて影響を受けたゲストTLB変換
がいつ信頼できなくなつたかを知ることができ
る。本発明は、ゲストTLB変換を、CPUが非エ
ミユレーシヨン・モードであるうちは、無効にす
ることができないように、各CPUのPRGTフラ
グを処理し、各CPUが再びエミユレーシヨン・
モードになるときしか、ゲストTLB項目の無効
化が生じないようにする。この型のPRGTフラ
グによる制御の主な利点は、システムの各CPU
の全ゲストTLB項目を無効にするために、ホス
ト・ページ・テーブル項目を無効にする度に、ホ
スト・モードのCPUをその動作に割込ませる−
比較的低速のプロセスの場合がある−のを避ける
ことである。従つて、実システムの各CPUの
PRGTフラグは、ホスト・プログラムがホスト
PTEを無効にする度に、セツトされるが、その
際、ゲストTLBは無効にされない。それ故、ホ
スト・モードの間のそれぞれの時点での複数の
IPTE無効化の場合、複数回の、時間を要するゲ
ストTLB無効化動作を避けることができる。ま
た、CPUのゲストTLB無効化は、若し、該CPU
が後にエミユレーシヨン・モードに移らなけれ
ば、完全に避けることができる。
【図面の簡単な説明】
第1図は第1A図〜第1E図から成る、ゲスト
TLB除去フラグを使用する本発明の方法の良好
な実施例の1つを示す概要図、第1A図は実シス
テム上のゲスト動作を呼出すための呼出プロセス
を表わす流れ図、第1B図はホストのページ・テ
ーブル項目無効化(IPTE)命令を実マルチプロ
セツサ・システム上で実行する際に必要なプロセ
スを表わす流れ図、第1C図はUPシステム上で
ゲストIPTE命令を実行する際のプロセスを表わ
す流れ図、第1D図はMPシステム上でゲスト
IPTE命令を実行する際のプロセスを表わす流れ
図、第1E図はMPにおける他の実CPUが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シス
テムにおけるゲスト呼出しを表わす流れ図、第7
B図はMPシステムの実CPUで実行中のホスト
IPTE命令の処理を表わす流れ図、第7C図は実
MPシステムにおける他のCPUがIPTE放送信号
を受信する際のプロセスを表わす流れ図、第8図
は、同じMPゲスト上で、直接に動作するゲス
ト・プログラム、およびゲスト・プログラムに代
るホスト・プログラムによるアクセスの間のMP
ゲストの仮想記憶装置のアクセスを調整するのに
必要なインタロツク・プロセスの流れ図である。 11……システム制御装置(SC)、12……主
記憶装置(MS)、13……システム記憶領域。

Claims (1)

  1. 【特許請求の範囲】 1 1つの実CPUおよび1つの実主記憶装置を
    有する実ユニプロセツサ・システムにおいてエミ
    ユレートされる仮想システム(ゲスト)により行
    われるアドレス変換を処理する方法であつて、前
    記実CPUがエミユレーシヨン状態にある時、前
    記実CPUの変換ルツクアサイド・バツフア
    (TLB)内のゲスト識別された項目(ゲスト
    TLB項目)によつてゲスト・アドレス変換が行
    われるものにおいて、 各々が1つの仮想CPUを定義する複数の状態
    記述制御ブロツク(SD)を前記実主記憶装置内
    に設け、 前記SDの各々に対して独特のSD識別子
    (SDI)を定義し、 前記実CPUに対して設けられたSDIレジスタ
    に、前記実CPUに関してタスク指名された仮想
    CPUのSDに対するSDIをセツトし、 前記SDIレジスタにセツトされたSDIと、前記
    実CPUに関してタスク指名された仮想CPUのSD
    に対するSDIとを比較し、 前記比較において一致が得られた時、前記ゲス
    トTLB項目を無効化せず、従つて、前記ゲスト
    TLB項目を当該仮想CPUがプログラム実行のた
    めに使用できるようにし、 前記比較において不一致が得られた時、前記ゲ
    ストTLB項目を無効化することを特徴とするア
    ドレス変換処理方法。 2 複数の実CPUおよび1つの実主記憶装置を
    有する実マルチプロセツサ(MP)システムにお
    いてエミユレートされる仮想システム(ゲスト)
    により行われるアドレス変換を処理する方法であ
    つて、前記実CPUのうちの1つがエミユレーシ
    ヨン状態にある時、前記実CPUの変換ルツクア
    サイド・バツフアツ(TLB)内のゲスト識別さ
    れた項目(ゲストTLB項目)によつてゲスト・
    アドレス変換が行われるものにおいて、 各々が1つの仮想CPUを定義する複数の状態
    記述制御ブロツク(SD)を前記実主記憶装置内
    に設け、 前記SDの各々に対して独特のSD識別子
    (SDI)を定義し、 前記SDの各々に、当該SDを最後に使用した実
    CPUを表わすためのCPU IDを与え、 前記実CPUの各々に対して設けられたSDIレジ
    スタに、当該実CPUに関してタスク指名された
    仮想CPUのSDに対するSDIをセツトし、 前記実CPUの1つに対するSDIレジスタにセツ
    トされたSDIと、当該実CPUに関してタスク指名
    された仮想CPUのSDに対するSDIとを比較し、 前記タスク指名された仮想CPUのSDにおける
    CPU IDを、当該仮想CPUをタスク指名する実
    CPUに対するCPU IDと比較し、 前記2つの比較において一致が得られた時、当
    該実CPUのゲストTLB項目を無効化せず、従つ
    て、当該実CPUのゲストTLB項目を当該仮想
    CPUがプログラム実行のために使用できるよう
    にし、 前記2つの比較の1つにおいて不一致が得られ
    た時、エミユレーシヨン・モードにおける間、当
    該実CPUのゲストTLB項目を無効化することを
    特徴とするアドレス変換処理方法。
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 JPS60171552A (ja) 1985-09-05
JPH0458056B2 true 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)

Families Citing this family (19)

* 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
US9223574B2 (en) * 2014-03-27 2015-12-29 International Business Machines Corporation Start virtual execution instruction for dispatching multiple threads in a computer
US9213569B2 (en) 2014-03-27 2015-12-15 International Business Machines Corporation Exiting 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
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
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
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
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
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
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10176006B2 (en) * 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging 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
JPS5868285A (ja) * 1981-10-16 1983-04-23 Nec Corp 仮想計算機のアドレス変換方式
JPS5868258A (ja) * 1981-10-16 1983-04-23 Richo Kiyouiku Kiki Kk 携帯用磁気録音再生機の電源回路

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
JPS5868285A (ja) * 1981-10-16 1983-04-23 Nec Corp 仮想計算機のアドレス変換方式
JPS5868258A (ja) * 1981-10-16 1983-04-23 Richo Kiyouiku Kiki Kk 携帯用磁気録音再生機の電源回路

Also Published As

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

Similar Documents

Publication Publication Date Title
US4779188A (en) Selective guest system purge control
JPH0458056B2 (ja)
US6081890A (en) Method of communication between firmware written for different instruction set architectures
RU2259582C2 (ru) Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой
US5386565A (en) Method and system for controlling/monitoring computer system having plural operating systems to run thereon
US4814975A (en) Virtual machine system and method for controlling machines of different architectures
JPH0430053B2 (ja)
JPS6013501B2 (ja) 仮想計算機システムにおけるチヤネルアドレス制御方式
US5339417A (en) Computer system with two levels of guests
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
US5280592A (en) Domain interlock
EP0619899B1 (en) Software control of hardware interruptions
EP0550283A2 (en) Invoking hardware recovery actions via action latches
GB2216306A (en) Load and synchronize computer architecture and process
JPH0192856A (ja) アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JP2523502B2 (ja) リカ−シブ仮想計算機の制御方式
JP2535086B2 (ja) リング削減ロジック装置
JPS6336012B2 (ja)
JPH0567973B2 (ja)
US5355470A (en) Method for reconfiguring individual timer registers offline
EP0550285A2 (en) Machine with two units of operation
JPH0766352B2 (ja) 仮想計算機システム
JPH03168845A (ja) 命令実行制御方式
JPH0772874B2 (ja) 割込み受取り装置