JPH0784883A - 仮想計算機システムのアドレス変換バッファパージ方法 - Google Patents

仮想計算機システムのアドレス変換バッファパージ方法

Info

Publication number
JPH0784883A
JPH0784883A JP5231946A JP23194693A JPH0784883A JP H0784883 A JPH0784883 A JP H0784883A JP 5231946 A JP5231946 A JP 5231946A JP 23194693 A JP23194693 A JP 23194693A JP H0784883 A JPH0784883 A JP H0784883A
Authority
JP
Japan
Prior art keywords
level
vmcp
instruction
entry
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5231946A
Other languages
English (en)
Inventor
Osamu Onodera
修 小野寺
Takeshi Uehara
健 宇江原
Yuji Kobayashi
雄二 小林
Hideaki Amano
英昭 天野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5231946A priority Critical patent/JPH0784883A/ja
Priority to US08/306,983 priority patent/US5574878A/en
Publication of JPH0784883A publication Critical patent/JPH0784883A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (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)【要約】 【目的】 TLBパージによるTLBの使用効率の低下
等のオーバヘッドを除去し、必要なエントリのみを高速
にパージする。 【構成】 いずれか1つの特定の仮想計算機が発行する
アドレス変換バッファのパージを伴う命令の実行に当た
り、該特定の仮想計算機の仮想計算機識別符号に加え、
パージ対象のアドレス変換バッファエントリを有する他
の仮想計算機の仮想計算機識別符号を前記レジスタに記
憶させておき、前記命令の実行により、前記特定の仮想
計算機の仮想計算機識別符号と一致する仮想計算機識別
符号を記憶したエントリをパージすると共に、前記他の
仮想計算機の仮想計算機識別符号と一致する仮想計算機
識別符号を記憶したエントリを並行してパージする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、単一または複数の中央
処理装置内に構築される仮想計算機システムのアドレス
変換バッファパージ方法に関するものである。
【0002】
【従来の技術】一般に、仮想記憶方式を用いる情報処理
装置においては、情報処理装置が主記憶上のデータ及び
命令語等をアクセスする際の仮想アドレスを、主記憶上
の絶対アドレスに変換する必要がある。この変換のため
にアドレス変換テーブルが設けられている。
【0003】このような仮想アドレスを主記憶上の絶対
アドレスに変換する一般的な仕様及び手段については、
例えば、IBM社発行の刊行物である”Enterpr
ise System Architecture/3
90 Principlesof Operatio
n”(SA22−7201−00)に記載されている技
術が知られている。
【0004】近年、仮想計算機システムと呼ばれる情報
処理装置が実現され、その使用形態は一般化されつつあ
る。
【0005】仮想計算機システムは、中央処理装置(以
下、実CPUまたはIPという)内で仮想計算機制御プ
ログラム(以下、VMCPという)を動作させ、このV
MCPの制御の下で単一または複数のオペレーティング
システム(以下、OSという)を動作させることによっ
て実CPU内に1または複数の仮想計算機(以下、VM
という)を生成して成る情報処理システムであるが、単
一のOSを動作させるモードはベーシックモード、それ
ぞれ独立した複数のOSを動作させて複数のVMを構築
するモードはLPARモードと呼ばれている。
【0006】ベーシックモードでのハードウェア資源
は、1台又はそれ以上の実CPUと、1台の共用主記憶
装置(以下、MSという),1台又はそれ以上のチャネ
ルパス(以下、CHPという)とから構成される。そし
て、これらのハードウェア資源は単一の資源として扱わ
れる。
【0007】一方、LPARモードにおいては、複数の
VMがMS等の単一のハードウェア資源を共用するため
に、VMCPには、単一のハードウェア資源を各々のV
Mに共用させて使用させる機能が付加されている。
【0008】単一のハードウェア資源を各々のVMに共
用させる方法としては、VMCPの制御の下に時分割で
ハードウェア資源を割り当てる方法、またはハードウェ
ア資源を論理的に分割して各々のVMに占有的に割り当
てる方法、または前述の二つの方法を混在させて割り当
てる方法等がある。この単一の実計算機のハードウェア
資源を各々のVMに割り当てる方法の従来技術として
は、例えば、IBM社発行の刊行物”Enterpri
se System/9000 Enterprise
System/3090 Processor Re
source/System Manager Pla
nning Guide”(GA22−7123−0
8)に記載されている技術が知られている。
【0009】この刊行物で紹介されている技術は、実C
PUの共用方法として前述の二つの方法のうち前者の方
法、すなわち、実CPUを時分割で各々のVMに割り当
てる方法をとっている。また、入出力チャネル及びMS
のVMでの共用方法としては、前述の二つの方法のうち
後者の方法、すなわち実CPU及びMSを論理的に分割
して各々のVMに占有的に割り当てる方法をとってい
る。
【0010】ところで、従来においては、仮想計算機シ
ステムを構築する際、実CPU内で動作するOS(いわ
ゆるVMCPであり、以下、レベル1のOS又はレベル
1のVMCPという)は、レベル1のOSが自らアドレ
ス変換テーブルを作成し、レベル1のOS上の仮想アド
レス空間上でVMとしてのOS(以下、レベル2のOS
またはレベル2のVMCPという)を動作させ、更にこ
のレベル2のOSもアドレス変換テーブルを生成して独
自の仮想アドレス空間を作り出すようにしている。
【0011】この場合、最近においては、仮想計算機シ
ステムの構築の応用の一つとして、実CPU内で動作す
るレベル1のOSとしてVMCPを用い、レベル1のO
S上の仮想アドレス空間上で動作するレベル2のOSと
してもVMCPを用い、さらにそのレベル2のOS上の
仮想アドレス空間上で動作するOS(以下、レベル3O
Sという)を動作させる方法も極く一般的な方法として
使用されつつある。
【0012】一方、VMによる実CPUの共用方法とし
ては、前述のように実CPUを時分割で各々のVMに割
り当てる方法をとっているが、このことについて図10
を参照して説明する。
【0013】図10は、VMによる実CPUの共用の構
成を示した図である。
【0014】図10において、実CPU(以下、PIP
という)は1台のPIP102から成り、単一のMS1
01に接続されている。このPIP102上では、VM
の制御が可能なVMCP111が動作している。このV
MCP111の制御の下で複数のVMが生成されてい
る。ここでは複数のVMとして、論理CPU(以下、L
IPという)LIPA121,LIPB122,………
LIPX123が生成されている。
【0015】このLIPA121,LIPB122及び
LIPX123上では、それぞれ独立したOSが動作す
る。図10の例は、PIP102上で1つのVMCP1
11を動作させ、その制御の下で複数のVM(LIPA
121,LIPB122,………LIPX123)を生
成し、生成されたそれぞれのVM上でゲストOSを動作
させる仮想計算機システムの例であり、本例が従来のV
Mの一般的な使用形態の構成である。
【0016】近年、図10に例示した使用形態に加え、
PIP102上にVMCP(以下、レベル1のVMCP
という)を動作させ、その制御の下で複数のVMを生成
し、生成されたそれぞれのVM上で更にVMCP(以
下、レベル2のVMCPという)を動作させ、さらにこ
のレベル2VMCPの制御の下で複数のVMを生成し、
生成されたそれぞれのVM上でゲストOSを動作させる
仮想計算機システムの使用方法も実現され、一般化しつ
つある。
【0017】図11は、単一のPIP上にレベル1のV
MCPとレベルの2VMCPとを搭載し、その上にVM
を生成した仮想計算機システムの構成を示した図であ
る。
【0018】図11において、PIPは1台のPIP2
02から成り、MS201に接続されている。このPI
P202上では、VMの制御が可能なレベル1のVMC
P211が動作している。このレベル1のVMCP21
1の制御の下で複数のVMが生成されており、それぞれ
のLIPをレベル1のLIPと呼ぶ。
【0019】レベル1のLIP上では、VMの制御が可
能なレベル2のVMCP231が動作している。このレ
ベル2のVMCP231の制御の下で更に複数のVMが
生成されており、それぞれのLIPをレベル2のLIP
と呼ぶ。
【0020】レベル2のVMCP231は、図11にお
いては、レベル2のLIPA241及びレベル2のLI
PB242という複数のVMを生成しており、レベル2
のLIPA241及びレベル2のLIPB242上で
は、それぞれ独立したOSであるゲストOS251及び
ゲストOS252が動作するようになっている。
【0021】この図11のように構成された仮想計算機
システムを動作させる場合のレベル1のVMCP21
1,レベル2のVMCP231及びゲストOS251,
252の制御の流れを図12のフローチャートを用いて
説明する。
【0022】図12において、当初、レベル1のVMC
P211は、仮想計算機ID(以下、VMIDという)
の値を“A”として動作する。VMIDとは、実CPU
202上で動作するVMにハードウェアによって自動的
に、かつそれぞれ固有に割り当てられる値であり、アド
レス変換バッファ(以下、TLBという)への論理アド
レスと絶対アドレスのアドレス変換対の登録時に同時に
TLBエントリの一部に登録され、該アドレス変換対が
属するVMを規定する。
【0023】レベル1のVMCP211がレベル2のV
MCP231を起動する際には、VMを起動する命令で
あるStart Interpretive Exec
ution 命令(以下、SIE命令という)が使用さ
れる。
【0024】SIE命令は、IE機能の一部であり、そ
の一般的仕様としては、例えばIBM社発行の刊行物”
IBM System/370 Extended A
rchitecture Interpretive
Execution”(SA22−7095)にその詳
細が記述されている。
【0025】このSIE命令のオペランドアドレスは、
起動しようとしているVMのレジスタの状態を保持して
いる領域を指しており、これを状態記述(State
Description : 以下、SDという)とい
う。SDについての一般的仕様としては、例えばIBM
社発行の前記刊行物にその詳細が記述されている。
【0026】そこで、レベル1のVMCP211がレベ
ル2のVMCP231を起動する際には、起動しようと
しているVMCP231のレジスタの状態を保持してい
る領域を指すL1SDをSIE命令のオペランドアドレ
スに設定し(S130)、SIE命令を発行する(S1
31)。
【0027】これによって、レベル2のVMCP231
が起動され、このレベル2のVMCP231の命令処理
がVMとして実行される。この際、レベル2のVMCP
231は、VMIDの値を“B”として動作する。
【0028】次に、レベル2のVMCP231は、自己
の制御の下で動作するレベル3のゲストOS(251ま
たは252)を起動するために、レベル2のSDすなわ
ちL2SDをSIE命令のオペランドアドレスに設定し
(S132)、SIE命令を発行する(S133)。
【0029】ここで、レベル2のVMCP231が発行
するSIE命令を仮想SIE命令という。
【0030】レベル2のVMCP231が仮想SIE命
令を発行すると、この仮想SIE命令はレベル1のVM
CP211にインターセプトされ(S134)、制御は
レベル1のVMCP211に戻される。
【0031】レベル1のVMCP211にインターセプ
トされた理由は、レベル2のVMCP231には、実ハ
ードウェア資源を管理する手段が無いためである。
【0032】制御がレベル1のVMCP211に戻され
ると、VMIDの値は、“A”として動作するように切
り替えられる。
【0033】レベル1のVMCP211はインターセプ
ションの原因を調べ、その原因がレベル2のVMCP2
31が発行した仮想SIE命令である事を突き止める
と、仮想SIE命令をシミュレーションする。この仮想
SIE命令シミュレーションにおいて、レベル3のゲス
トOSを起動するための他のSD(以下、シャドーSD
という)を、レベル2のVMCP231が用意した仮想
SDと、インターセプションを受け付けたレベル1のV
MCP211が動作している実ハードウェア資源の割当
て状況との双方に基づいて設定し(S135)、そのシ
ャドーSDをオペランドとしてSIE命令を発行する
(S136)。
【0034】シャドーSDをオペランドとしてSIE命
令が発行されると、制御はレベル3のゲストOS(25
1または252)に移り、VMIDの値は、“C”とし
て動作するように切り替えられる。
【0035】このシャドーSDをオペランドとしてSI
E命令を発行する操作は、あたかもレベル2のVMCP
231が仮想SDをオペランドとして仮想SIE命令を
実行する如くに行われる。以降、レベル3のゲストOS
が動作する。
【0036】次に、図13を用いて、VMIDを具備し
たアドレス変換バッファ(TLB)の制御について説明
する。
【0037】図13は、VMIDを登録するエリアを具
備したアドレス変換バッファ(TLB)と周辺回路の構
成を示すブロック図である。
【0038】図13において、TLB410は、実CP
U202がデータ及び命令語をアクセスする際の論理ア
ドレスを絶対アドレスに高速に変換するためのハードウ
ェア機構であり、エントリ有効フラグ411(以下、V
フラグという)、該エントリが所属するVMIDを保持
するエントリ412(以下、VMIDエントリとい
う)、セグメントテーブル起点の所属及びアドレスを保
持するエントリ413(以下、STDエントリとい
う)、論理アドレスを保持するエントリ414(以下、
論理アドレスエントリという)、論理アドレスに対応す
る絶対アドレスを保持するエントリ415(以下、絶対
アドレスエントリという)及び絶対アドレスに付与され
ている主記憶キーを保持するエントリ416(以下、主
記憶キーエントリという)から構成される。
【0039】TLB410は、これらの各関連エントリ
を1組として、複数組のエントリ群(0〜n)から構成
される。
【0040】ここで、セグメントテーブルは図示しない
が、TLB410との組合せによって論理アドレスを絶
対アドレスに変換するアドレス変換機構を構成するもの
である。
【0041】セレクタA420は、実CPU202がデ
ータ及び命令語をアクセスする際の論理アドレスを入力
として、アドレス変換バッファ410の複数組のエント
リ群から関連エントリを1組選択するセレクタである。
【0042】出力レジスタ430は、アドレス変換バッ
ファ410の複数組のエントリ群から選択された1組の
関連エントリの内容を一時的に保持しておくレジスタで
ある。
【0043】VMIDレジスタ440は、実CPU20
2がデータ及び命令語をアクセスする際のVMIDを保
持するエントリ441(以下、VMIDエントリとい
う)及び該VMIDに対応するSD絶対アドレスを保持
するエントリ442(以下、SDアドレスエントリとい
う)から構成される。VMIDレジスタ440は、これ
らの各関連エントリを1組として、複数組のエントリ群
から構成される。
【0044】このVMIDレジスタ440においては、
実CPU202上でVMが動作する際、SIE命令のオ
ペランドであるSDのアドレスに対応したSDアドレス
エントリ442が選択され、該エントリ内のVMIDエ
ントリ441の内容と、アドレス変換バッファ410内
のVMIDエントリ412の内容とが比較される。
【0045】比較器A450,比較器B451及び比較
器C452は、それぞれ出力レジスタ430に一時的に
保持されたVMIDエントリ412,STDエントリ4
13及び論理アドレスエントリ414の内容とVMID
レジスタ440のVMIDエントリ441の内容、主記
憶アクセスで使用されるセグメントテーブル起点及び主
記憶アクセスに伴う論理アドレスを比較するデータの比
較器である。
【0046】ANDゲート460は、比較器A450,
比較器B451及び比較器C452のそれぞれの比較結
果の論理積をとるANDゲートである。セレクタB47
0は、出力レジスタ430に一時的に保持された絶対ア
ドレスエントリ415及び主記憶キーエントリ416の
内容を、ANDゲート460から送出されるデータ比較
一致を示すヒット信号によって選択し、送出するセレク
タである。
【0047】アドレス変換制御部480は、本ブロック
図に示すアドレス変換バッファ410と周辺回路の動作
全体を制御する制御装置である。
【0048】次に、以上の構成に係るアドレス変換バッ
ファ410と周辺回路のアドレス変換動作について説明
する。
【0049】まず、実CPU202から主記憶201へ
のアクセス要求が発行されると、その主記憶アクセス要
求と論理アドレスが実CPU202から送出され、信号
線4A0を介してセレクタA420及び比較器C452
に入力される。
【0050】論理アドレスを受け取ったセレクタA42
0は、該論理アドレスの値からアドレス変換バッファ4
10内の複数のエントリ群から1つのエントリを選択
し、そのエントリに対する読出し要求を発行する。
【0051】アドレス変換バッファ410は、エントリ
読み出し要求を受け取ると、該当する1つのエントリを
読出し、信号線4C0を介して出力レジスタ430に読
出しデータをセットする。
【0052】ここで、出力レジスタ430にセットされ
る1つのエントリの内訳は、Vフラグ411,VMID
エントリ412,STDエントリ413,論理アドレス
エントリ414,絶対アドレスエントリ415及び主記
憶キーエントリ416から構成される。
【0053】一方、VMIDレジスタ440において
は、主記憶へのアクセス要求が発行された時点のSDの
絶対アドレスを保持するSDアドレスエントリ442に
対応するVMIDエントリ441が選択され、該VMI
Dエントリ441の内容が信号線4D0を介して比較器
A450に入力される。
【0054】アドレス変換バッファ410からの読出し
データが出力レジスタ430にセットされた後、該TL
Bエントリがヒットしているか否かの比較が行われる。
この比較は以下の手順で行われる。
【0055】先ず、出力レジスタ430にセットされた
Vフラグ411の内容が信号線4E0を介してANDゲ
ート460に送られる。次に、出力レジスタ430にセ
ットされたVMIDエントリ412の内容が信号線4E
1を介して比較器A450に送られ入力され、またVM
IDレジスタ440のVMIDエントリ441の内容が
信号線4D0を介して比較器A450に入力され、双方
の入力データが比較される。
【0056】この比較の結果の一致又は不一致の信号は
信号線4E4を介してANDゲート460に送られる。
【0057】さらに、出力レジスタ430にセットされ
たSTDエントリ413の内容が信号線4E2を介して
比較器B451に入力され、また実CPU202から主
記憶201へのアクセス要求が発行された時の論理アド
レスに対応するセグメントテーブル指定データ(以下、
STDという)が信号線4A1を介して比較器B451
に入力され、これら双方の入力データが比較される。
【0058】この比較の結果の一致又は不一致の信号
は、信号線4E5を介してANDゲート460に送られ
る。
【0059】さらに、出力レジスタ430にセットされ
た論理アドレスエントリ414の内容が信号線4E3を
介して比較器C452に入力され、また実CPU202
から主記憶201へのアクセス要求が発行された時の論
理アドレスが信号線4A0を介して比較器C452に入
力され、これら双方の入力データが比較される。
【0060】この比較の結果の一致又は不一致の信号
は、信号線4E6を介してANDゲート460に送られ
る。
【0061】次に、ANDゲート460は、それぞれ信
号線4E0,信号線4E4,信号線4E5及び信号線4
E6を介して入力された一致又は不一致信号の論理積を
とり、全ての信号が“1”(または一致)であれば、T
LBヒット信号を“1”とし、信号線4G0に送出す
る。
【0062】信号線4G0に送出されたTLBヒット信
号は、アドレス変換制御部480及びセレクタB470
に入力される。
【0063】“1”のTLBヒット信号を信号線4G0
を介して受け取ったセレクタB470は、出力レジスタ
430にセットされた絶対アドレスエントリ415及び
主記憶キーエントリ416の内容を送出している信号線
4F0及び信号線4F1を選択し、アドレス変換バッフ
ァ410の出力である論理アドレスに対応する絶対アド
レス及び該絶対アドレスに付与されている主記憶キーを
要求元の実CPU202に送り返す。
【0064】論理アドレスに対応する絶対アドレスと、
該絶対アドレスに付与されている主記憶キーを受け取っ
た実CPU202は、該絶対アドレスを用いてMS20
1にアクセス要求を出すと共に、プログラム状態語内の
キー(以下、PSWキーという)と主記憶キーとを用い
てキー制御プロテクションのチェックを行う。
【0065】一方、“1”のTLBヒット信号を信号線
4G0を介して受け取ったアドレス変換制御部480
は、動的アドレス変換過程の起動が不要である旨を実C
PU202に通知する。この場合、TLBヒット信号が
“0”であった時は、動的アドレス変換過程(以下、D
ATという)の起動が必要である旨を実CPU202に
通知し、DAT動作を起動する。
【0066】DATについての一般的仕様については、
例えば前述の刊行物にその詳細が記述されている。DA
T動作の結果得られる絶対アドレスと他のアドレス情報
は、信号線4B0をアドレス変換バッファ410に登録
される。
【0067】すなわち、主記憶201へのアクセス要求
に伴う論理アドレスとその時点のSTDおよびVMI
D、更にDATの結果得られた絶対アドレスと主記憶キ
ーが、アドレス変換バッファ410の論理アドレスによ
って決定されるTLBエントリとして、信号線4B0を
介してVフラグ411,VMIDエントリ412,ST
Dエントリ413,論理アドレスエントリ414,絶対
アドレスエントリ415及び主記憶キーエントリ416
に登録される。そして、この登録されたTLBエントリ
は、以降のMS201のアクセスに使用される。
【0068】この際のTLBエントリ登録は、主として
ハードウェア論理又はマイクロプログラムによって行わ
れる。また、VMIDレジスタ440のVMIDエント
リ441の内容及びSDアドレスエントリ442の内容
の登録は、信号線4H0及び信号線4H1を介して、主
としてマイクロプログラムによって行われる。
【0069】次に、アドレス変換バッファ410のパー
ジ動作について説明する。
【0070】図13において、実CPU202からTL
Bパージ要求が発行されると、パージ対象のTLBエン
トリ番号が信号線4A0を介して入力される。
【0071】信号線4A0を介してTLBエントリ番号
を受け取ったセレクタA420は、アドレス変換バッフ
ァ410内の複数のエントリ群からTLBエントリ番号
の値に対応する1つのエントリを選択し、そのエントリ
に対する読出し要求を発行する。
【0072】アドレス変換バッファ410は、エントリ
読出し要求を受け取ると、該当する1つのエントリの内
容を読出し、信号線4C0を介して出力レジスタ430
にセットする。
【0073】ここで、出力レジスタ430にセットされ
る1つのエントリの内訳は、Vフラグ411,VMID
エントリ412,STDエントリ413,論理アドレス
エントリ414,絶対アドレスエントリ415及び主記
憶キーエントリ416から構成される。
【0074】一方、VMIDレジスタ440において
は、TLBパージ要求が発行された時点のSDの絶対ア
ドレスを保持するSDアドレスエントリ442に対応す
るVMIDエントリ441が選択され、該VMIDエン
トリ441の内容が信号線4D0を介して比較器A45
0に入力される。
【0075】アドレス変換バッファ410がエントリ読
み出し要求を受け取り、該当する1つのエントリの内容
を読み出した後、出力レジスタ430に読出しデータを
セットした後、該TLBエントリのパージが必要か否か
の比較が行われる。
【0076】この比較は以下の手順で行われる。先ず、
出力レジスタ430にセットされたVMIDエントリ4
12の内容が信号線4E1を介して比較器A450に入
力され、またVMIDレジスタ440のVMIDエント
リ441の内容が信号線4D0を介して比較器A450
に入力され、これら双方の入力データが比較される。
【0077】この比較結果の一致又は不一致の信号は、
信号線4E4を介してアドレス変換バッファ410に送
られ、この信号が“1”(一致)であれば、アドレス変
換バッファ410の選択されているTLBエントリのV
フラグ411に“0”を書き込み、該TLBエントリを
無効化する。逆に、比較結果の信号が“0”(不一致)
であれば、該TLBエントリの無効化は行われない。
【0078】次に、実CPU202上で動作するレベル
1のOSが自らアドレス変換テーブルを作成し、レベル
1のOS上の仮想アドレス空間上でVMとしてのレベル
2のOSを動作させ、さらにレベル2のOSもアドレス
変換テーブルを生成し、仮想アドレス空間を作り出して
いる例について図14を参照して説明する。
【0079】図14は、仮想計算機システムを構築する
際の一例であり、実CPU上で動作するレベル1のOS
としてVMCPを用い、レベル1のOS上の仮想アドレ
ス空間上で動作するレベル2のOSとしてもVMCPを
用い、レベル2のOS上の仮想アドレス空間上で動作す
るレベル3のOSを動作させる例を示し、さらに、この
構成をとった場合に、レベル1のOSに割り当てられる
MS領域,レベル1のOS上の仮想アドレス空間上で動
作するレベル2のOSに割り当てられるMS領域及びレ
ベル2のOS上の仮想アドレス空間上で動作するレベル
3のOSに割り当てられるMS領域を示した図である。
【0080】図14において、レベル1のVMCP21
1に割り当てられるMS領域は、領域Aで示した領域で
あり、これはMS201の全ての領域に等しい。次に、
レベル1のVMCP211上の仮想アドレス空間上で動
作するレベル2のVMCP231に割り当てられるMS
領域は、領域Bで示した領域であり、これは領域Aの一
部分に割り当てられる。さらに、レベル2のVMCP2
31上の仮想アドレス空間上で動作するレベル3のOS
251に割り当てられるMS領域は、領域Cで示した領
域であり、これは領域Bの一部分に割り当てられる。
【0081】ここで、レベル1のVMCP211は、割
り当てVMIDが“A”の値で動作し、レベル2のVM
CP231は、割り当てVMIDが“B”の値で動作す
る。
【0082】さらに、レベル3のOS251は、割り当
てVMIDが“C”の値で動作する。
【0083】すなわち、レベル1のVMCP211は、
“A”という割り当てVMIDで動作し、領域Aを使用
する。また、レベル2のVMCP231は、“B”とい
う割り当てVMIDで動作し、領域Aの一部分である領
域Bを使用する。さらに、レベル3のOS251は、
“C”という割り当てVMIDで動作し、領域Bの一部
分である領域Cを使用する。
【0084】次に、図11のように構成された仮想計算
機システムを動作させ、さらに、TLBのパージが必要
となる場合のレベル1のVMCP,レベル2のVMCP
及びレベル3の各OSの制御の流れを図15、図16の
フローチャートを用いて詳細に説明する。
【0085】まず、MS201の割り当ては図14に示
したように行われているものとする。
【0086】ステップ601 : レベル1のVMCP
211によるVM上でレベル3のゲストOSを動作させ
る事前処理として、レベル1のVMCP211は、レベ
ル2のVMCP231を起動する準備としてSIE命令
のオペランドであるSD(以下、L1SDという)を設
定する。
【0087】ステップ602 : レベル1のVMCP
211は、ステップ601で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211によるVM上でレベル2のVMCP231を起動
する。この時点から制御は、レベル1のVMCP211
からレベル2のVMCP231に移る。
【0088】ステップ603 : レベル1のVMCP
211のVM上でレベル2のVMCP231が動作す
る。レベル2のVMCP231のVM上では、レベル3
のOS251を動作させる事前処理として、レベル2の
VMCP231は、レベル3のOS251を起動する準
備としてSIE命令のオペランドであるSD(以下、L
2SDという)を設定する。
【0089】ステップ604 : レベル2のVMCP
231は、ステップ603で設定されたL2SDをオペ
ランドとしてSIE命令を発行し、レベル2のVMCP
231のVM上でレベル3のOS251を起動しようと
する。
【0090】ステップ605 : ステップ604で、
レベル2のVMCP231のVM上でレベル3のOS2
51を起動しようとして、レベル2のVMCP231が
SIE命令を発行すると、このSIE命令は、命令イン
ターセプション要因を持っているので命令インターセプ
ションが発生し、制御はレベル2のVMCP231から
レベル1のVMCP211に戻される。
【0091】ステップ606 : レベル1のVMCP
211は、制御がレベル1のVMCP211に戻される
要因となったインターセプションコードを解析し、コー
ド毎のインターセプション処理を行う。この場合、イン
ターセプションコードは、命令インターセプションを示
している。
【0092】ステップ607 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0093】本例では、SIE命令を実行しようとして
命令インターセプションが発生したのであるから、SI
E命令のシミュレーションを行う。
【0094】レベル1のVMCP211のVM上でレベ
ル3のOS251を動作させる事前処理として、レベル
1のVMCP211は、レベル2のVMCP231を起
動するために用意されたL1SDとレベル3のOS25
1を起動するために用意されたL2SDとを合成し、レ
ベル1のVMCP211のVM上でレベル3のOS25
1を走行させるための仮のSD(以下、シャドーSDと
いう)を設定する。
【0095】ステップ608 : レベル1のVMCP
211は、ステップ607で設定されたシャドーSDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル3のOS251を起動す
る。これは、レベル2のVMCP231のVM上でレベ
ル3のOS251を起動するのと等価である。この時点
から制御は、レベル1のVMCP211からレベル3の
OS251に移る。
【0096】ステップ609 : レベル2のVMCP
231のVM上でレベル3のOS251が動作する。
【0097】ステップ610 : レベル2のVMCP
231のVM上でレベル3のOS251の実行中に、該
OS251から発行されたMSアクセスで、レベル2の
VMCP231が制御しているアドレス変換テーブルに
関するアドレス変換例外(以下、レベル2のアドレス変
換例外という)が検出される。レベル2のアドレス変換
例外についての詳細は前述の刊行物を参照の事。
【0098】ステップ611 : ステップ610で、
レベル2のVMCP231のVM上のレベル3のOS2
51がレベル2のアドレス変換例外を検出すると、この
例外は、ホスト割込み要因を持っているので、レベル1
のVMCP211へのプログラム割込みが発生し、制御
はレベル3のOS251からレベル1のVMCP211
に戻される。
【0099】ステップ612 : レベル1のVMCP
211は、制御がレベル1のVMCP211に戻される
要因となったホストプログラム割込みコードを解析し、
コード毎の割込み処理を行う。この場合、ホストプログ
ラム割込みコードは、レベル2のアドレス変換例外を示
している。
【0100】ステップ613 : この処理の具対的処
理内容は、各種割込みコード毎に対応する処理を別々に
行うもので、例えば割込みコードがレベル2のアドレス
変換例外を指していれば、レベル2のVMCP231に
アドレス変換例外を通知する。
【0101】本例では、レベル3のOS251がレベル
2のアドレス変換例外を検出したのであるから、レベル
2のVMCP231にアドレス変換例外を通知する。
【0102】レベル2のVMCP231にアドレス変換
例外を通知するために、レベル1のVMCP211のV
M上でレベル2のVMCP231を動作させる事前処理
して、レベル1のVMCP211は、レベル2のVMC
P231を起動するために用意されたL1SDとレベル
3のOS251を起動するために用意されたシャドウS
Dとを合成し、レベル2のVMCP231を起動するた
めのL1SDを設定する。
【0103】ステップ614 : レベル1のVMCP
211は、ステップ613で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211のVM上でレベル2のVMCP231を起動す
る。この時のレベル2のVMCP231のプリフィック
ス退避域(以下、PSA)には、アドレス変換例外に伴
う割込みパラメータが予めレベル1のVMCP211に
よって格納されている。さらに、L1SD内の命令アド
レスフィールドはレベル2のVMCP231のPSA内
の割込みPSWの命令アドレス部が格納される。
【0104】すなわち、レベル1のVMCP211は、
レベル2のVMCP231に対するアドレス変換例外割
込みをシミュレーションする。この時点から制御は、レ
ベル1のVMCP211からレベル2のVMCP231
に移る。
【0105】ステップ615 : レベル2のVMCP
231は、レベル1のVMCP211によって通知され
た割込みコードを解析し、コード毎の割込み処理を行
う。この場合、割込みコードは、アドレス変換例外割込
みを示している。
【0106】ステップ616 : この処理の具対的処
理内容は、各種割込みコード毎に対応する処理を別々に
行うもので、例えば割込みコードがアドレス変換例外割
込みを指していれば、アドレス変換テーブルの保守を行
う。本例では、アドレス変換例外割込みが発生したので
あるから、アドレス変換テーブルの保守を行う。
【0107】ステップ617 : レベル2のVMCP
231上で、アドレス変換テーブルの保守処理が実行さ
れる。アドレス変換テーブルの保守処理の一環として、
Purge TLB命令(以下、PTLB命令という)
が発行される。PTLB命令の仕様の詳細については、
前述の刊行物を参照の事。
【0108】ステップ618 : ステップ617でレ
ベル2のVMCP231がPTLB命令を発行すると、
このPTLB命令は、命令インターセプション要因を持
っているので、命令インターセプションが発生する。こ
れによって、制御はレベル2のVMCP231からレベ
ル1のVMCP211に戻される。
【0109】ステップ619 : レベル1のVMCP
211は、制御がレベル2のVMCP231からレベル
1のVMCP211に戻される要因となったインターセ
プションコードを解析し、コード毎のインターセプショ
ン処理を行う。この場合、インターセプションコード
は、命令インターセプションを示している。
【0110】ステップ620 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0111】本例では、レベル2のVMCP231がP
TLB命令を実行しようとして命令インターセプション
が発生したのであるから、レベル1のVMCP211が
PTLB命令のシミュレーションを行う。
【0112】ステップ621 : レベル1のVMCP
211上でのPTLB命令のシミュレーション処理の一
環として、PTLBが発行される。このPTLB命令の
実行によって全てのVMIDの値を持つTLBエントリ
が全てパージされる。
【0113】ステップ622 : レベル1のVMCP
211のVM上でレベル2のVMCP231を動作させ
る事前処理として、レベル1のVMCP211は、レベ
ル2のVMCP231を起動するためのSIE命令のオ
ペランドであるL1SDを設定する。
【0114】ステップ623 : レベル1のVMCP
211は、ステップ622で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211のVM上でレベル2のVMCP231を起動す
る。この時点から制御は、レベル1のVMCP211か
らレベル2のVMCP231に移る。
【0115】ステップ624 : レベル1のVMCP
211のVM上でレベル2のVMCP231が動作す
る。レベル2のVMCP231は、レベル3のOS25
1が検出したレベル2のアドレス変換例外のシミュレー
ション処理を完了したので、再度、レベル3のOS25
1を起動する必要がある。そこで、レベル2のVMCP
231のVM上でレベル3のOS251を走行させる事
前処理として、SIE命令のオペランドであるL2SD
を設定する。
【0116】ステップ625 : レベル2のVMCP
231は、ステップ624で設定されたL2SDをオペ
ランドとしてSIE命令を発行し、レベル2のVMCP
231のVM上でレベル3のOS251を起動しようと
する。
【0117】ステップ626 : ステップ625で、
レベル2のVMCP231のVM上でレベル3のOS2
51を起動しようとして、レベル2のVMCP231が
SIE命令を発行すると、このSIE命令は、命令イン
ターセプション要因を持っているので命令インターセプ
ションが発生し、制御はレベル2のVMCP231から
レベル1のVMCP211に戻される。
【0118】ステップ627 : レベル1のVMCP
211は、制御がレベル2のVMCP231からレベル
1のVMCP211に戻される要因となったインターセ
プションコードを解析し、コード毎のインターセプショ
ン処理を行う。この場合、インターセプションコード
は、命令インターセプションを示している。
【0119】ステップ628 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0120】本例では、SIE命令を実行しようとして
命令インターセプションが発生したのであるから、SI
E命令のシミュレーションを行う。
【0121】レベル1のVMCP211のVM上でレベ
ル3のOS251を走行させる事前処理として、レベル
1のVMCP211は、レベル2のVMCP231を起
動するために用意されたL1SDとレベル3のOS25
1を起動するために用意されたL2SDとを合成し、レ
ベル1のVMCP211のVM上でレベル3のOS25
1を走行させるためのシャドーSDを設定する。
【0122】ステップ629 : レベル1のVMCP
211は、ステップ628で設定されたシャドーSDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル3のOS251を起動す
る。これは、レベル2のVMCP231のVM上でレベ
ル3のOS251を起動するのと等価である。
【0123】この時点から制御はレベル1のVMCP2
11からレベル3のOS251に移る。
【0124】ステップ630 : レベル2のVMCP
231のVM上でレベル3のOS251が動作する。
【0125】以上のように、レベル3のOS251で検
出されたレベル2のアドレス変換例外の処理は、ステッ
プ611からステップ630に至るレベル1のVMCP
211とレベル2のVMCP231の連携動作によって
実現されていた。
【0126】次に、複数の実CPUを主記憶に接続した
マルチプロセッサ構成におけるTLBのパージ方法の従
来例について図17および図18のフローチャートを用
いて詳細に説明する。なお、MS201の割り当ては、
図14に示したように行われているものとする。また、
アドレス変換バッファと周辺回路は図13と同様に構成
されているものとする。
【0127】ステップ651 : レベル1のVMCP
211のVM上でレベル3のゲストOS251を動作さ
せる事前処理として、レベル1のVMCP211は、レ
ベル2のVMCP231を起動する準備としてSIE命
令のオペランドであるSD(以下、L1SDという)を
設定する。
【0128】ステップ652 : レベル1のVMCP
211は、ステップ651で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211のVM上でレベル2のVMCP231を起動す
る。この時点から制御は、レベル1のVMCP211か
らレベル2のVMCP231に移る。
【0129】ステップ653 : レベル1のVMCP
211のVM上でレベル2のVMCP231が動作す
る。レベル2のVMCP231のVM上でレベル3のO
S251を動作させる事前処理として、レベル2のVM
CP231は、レベル3のOS251を起動する準備と
してSIE命令のオペランドであるSD(以下、L2S
Dという)を設定する。
【0130】ステップ654 : レベル2のVMCP
231は、ステップ653で設定されたL2SDをオペ
ランドとしてSIE命令を発行し、レベル2のVMCP
231のVM上でレベル3のOS251を起動しようと
する。
【0131】ステップ655 : ステップ654で、
レベル2のVMCP231のVM上でレベル3のOS2
51を起動しようとして、レベル2のVMCP231が
SIE命令を発行すると、このSIE命令は、命令イン
ターセプション要因を持っているので命令インターセプ
ションが発生し、制御はレベル2のVMCP231から
レベル1のVMCP211に戻される。
【0132】ステップ656 : レベル1のVMCP
211は、制御がレベル1のVMCP211に戻される
要因となったインターセプションコードを解析し、コー
ド毎のインターセプション処理を行う。この場合、イン
ターセプションコードは、命令インターセプションを示
している。
【0133】ステップ657 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0134】本例では、SIE命令を実行しようとして
命令インターセプションが発生したのであるから、SI
E命令のシミュレーションを行う。
【0135】レベル1のVMCP211のVM上でレベ
ル3のOS251を動作させる事前処理として、レベル
1のVMCP211は、レベル2のVMCP231を起
動するために用意されたL1SDとレベル3のOS25
1を起動するために用意されたL2SDとを合成し、レ
ベル1のVMCP211のVM上でレベル3のOS25
1を動作させるための仮のSD(以下、シャドーSDと
いう)を設定する。
【0136】ステップ658 : レベル1のVMCP
211は、ステップ657で設定されたシャドーSDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル3のOS251を起動す
る。これは、レベル2のVMCP231のVM上でレベ
ル3のOS251を起動するのと等価である。この時点
から制御は、レベル1のVMCP211からレベル3の
OS251に移る。
【0137】ステップ659 : レベル2のVMCP
231のVM上でレベル3のOS251が動作する。
【0138】ステップ660 : レベル2のVMCP
231のVM上でレベル3のOS251の実行中に、該
OSから Set Storage Key Exte
nded命令(以下、SSKE命令という)が発行され
る。
【0139】この命令は、MS201の主記憶キーを書
き替える命令であり、その詳細については前述の刊行物
を参照の事。
【0140】ステップ661 : ステップ660で、
レベル3のOS251がSSKE命令を発行すると、こ
のSSKE命令は、命令インターセプション要因を持っ
ているので命令インターセプションが発生し、制御はレ
ベル2のVMCP231のVM上のレベル3のOS25
1からレベル1のVMCP211に戻される。
【0141】ステップ662 : レベル1のVMCP
211は、制御がレベル1のVMCP211に戻される
要因となったインターセプションコードを解析し、コー
ド毎のインターセプション処理を行う。この場合、イン
ターセプションコードは、命令インターセプションを示
している。
【0142】ステップ663 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーション又はレベル2のVMCP231に命
令インターセプションを通知する。
【0143】本例では、レベル2のVMCP231のV
M上のレベル3のOS251がSSKE命令を実行しよ
うとして命令インターセプションが発生したのであるか
ら、レベル2のVMCP231に命令インターセプショ
ンを通知する。
【0144】レベル2のVMCP231に命令インター
セプションを通知する為、レベル1のVMCP211の
VM上でレベル2のVMCP231を動作させる事前処
理として、レベル1のVMCP211は、レベル2のV
MCP231を起動するために用意されたL1SDとレ
ベル3のOS251を起動するために用意されたシャド
ウSDとを合成し、レベル2のVMCP231を起動す
るためのL1SDを設定する。
【0145】ステップ664 : レベル1のVMCP
211は、ステップ663で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211のVM上でレベル2のVMCP231を起動す
る。この時のL1SDには、命令インターセプションが
発生した旨を示すパラメータが格納され、さらに、L1
SD内の命令アドレスフィールドはレベル2のVMCP
231が発行したSIE命令の次の命令のアドレスが格
納される。この時点から制御は、レベル1のVMCP2
11からレベル2のVMCP231に移る。
【0146】ステップ665 : レベル2のVMCP
231は、制御がレベル1のVMCP211から通知さ
れたインターセプションコードを解析し、コード毎のイ
ンターセプション処理を行う。この場合、インターセプ
ションコードは、命令インターセプションを示してい
る。
【0147】ステップ666 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0148】本例では、SSKE命令を実行しようとし
て命令インターセプションが発生したのであるから、S
SKE命令のシミュレーションを行う。
【0149】ステップ667 : レベル2のVMCP
231上で、SSKE命令のシミュレーション処理が実
行される。SSKE命令のシミュレーション処理の一環
として、SSKE命令が発行される。
【0150】ステップ668 : ステップ667で、
レベル2のVMCP231がSSKE命令を発行する
と、このSSKE命令は命令インターセプション要因を
持っているので命令インターセプションが発生し、制御
はレベル1のVMCP211のVM上のレベル2のVM
CP231からレベル1のVMCP211に戻される。
【0151】ステップ669 : レベル1のVMCP
211は、制御がレベル2のVMCP231からレベル
1のVMCP211に戻される要因となったインターセ
プションコードを解析し、コード毎のインターセプショ
ン処理を行う。この場合、インターセプションコード
は、命令インターセプションを示している。
【0152】ステップ670 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0153】本例では、レベル1のVMCP211のV
M上のレベル2のVMCP231がSSKE命令を実行
しようとして命令インターセプションが発生したのであ
るから、レベル1のVMCP211がSSKE命令のシ
ミュレーションを行う。
【0154】ステップ671 : レベル1のVMCP
211上で、SSKE命令のシミュレーション処理が実
行される。まず、構成されている全CPUに対し、実行
中の処理を一時中断させるロック指示が出され、ロック
指示を出したCPUを除く全てのCPUをロックする。
その後、SSKE命令のシミュレーション処理の一環と
して、SSKE命令が発行される。
【0155】このSSKE命令の実行によって、VMI
Dの値が“A”である全CPUのTLBエントリが部分
パージされる。
【0156】ステップ672 : レベル1のVMCP
211上でのSSKE命令のシミュレーション処理の一
環として、Purge TLB命令(以下、PTLB命
令という)が発行される。このPTLB命令の実行によ
って、全てのVMIDの値を持つTLBエントリが全て
パージされる。SSKE命令のシミュレーション処理の
一環としてその後、ロック指示を出したCPUを除く構
成されている全てのCPUに対しPTLB命令の実行の
指示が出される。
【0157】全てのCPUにおいて、PTLB命令の実
行が完了すると、ロック指示を出したCPUを除く全C
PUに対し、処理の一時中断を解除するアンロック指示
が出され、ロック指示を出したCPUを除く全てのCP
Uをアンロックする。アンロックされたCPUは中断さ
れていた処理を続行する。
【0158】ステップ673 : レベル1のVMCP
211のVM上でレベル2のVMCP231を動作させ
る事前処理として、レベル1のVMCP211は、レベ
ル2のVMCP231を起動するためのSIE命令のオ
ペランドであるL1SDを設定する。
【0159】ステップ674 : レベル1のVMCP
211は、ステップ673で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211のVM上でレベル2のVMCP231を起動す
る。この時点から制御は、レベル1のVMCP211か
らレベル2のVMCP231に移る。
【0160】ステップ675 : レベル1のVMCP
211のVM上でレベル2のVMCP231が動作す
る。レベル2のVMCP231は、レベル3のOS25
1が発行したSSKE命令のシミュレーション処理を完
了したので、再度、レベル3のOS251を起動する必
要がある。そこで、レベル2のVMCP231のVM上
でレベル3のOS251を動作させる事前処理として、
SIE命令のオペランドであるL2SDを設定する。
【0161】ステップ676 : レベル2のVMCP
231は、ステップ675で設定されたSIE命令のオ
ペランドであるL2SDをオペランドとしてSIE命令
を発行し、レベル2のVMCP231のVM上でレベル
3OS251を起動しようとする。
【0162】ステップ677 : ステップ676でレ
ベル2のVMCP231のVM上でレベル3OS251
を起動しようとして、レベル2のVMCP231がSI
E命令を発行すると、このSIE命令は、命令インター
セプション要因を持っているので命令インターセプショ
ンが発生し、制御はレベル1のVMCP211のVM上
のレベル2のVMCP231からレベル1のVMCP2
11に戻される。
【0163】ステップ678 : レベル1のVMCP
211は、制御がレベル1のVMCP211に戻される
要因となったインターセプションコードを解析し、コー
ド毎のインターセプション処理を行う。この場合、イン
ターセプションコードは、命令インターセプションを示
している。
【0164】ステップ679 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0165】本例では、SIE命令を実行しようとして
命令インターセプションが発生したのであるから、SI
E命令のシミュレーションを行う。
【0166】レベル1のVMCP211のVM上でレベ
ル3のOS251を動作させる事前処理として、レベル
1のVMCP211は、レベル2のVMCP231を起
動するために用意されたL1SDとレベル3のOS25
1を起動するために用意されたL2SDとを合成し、レ
ベル1のVMCP211のVM上でレベル3のOS25
1を走行させるためのシャドーSDを設定する。
【0167】ステップ680 : レベル1のVMCP
211は、ステップ679で設定されたシャドーSDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル3のOS251を起動す
る。これは、レベル2のVMCP231のVM上でレベ
ル3のOS251を起動するのと等価である。この時点
から制御は、レベル1のVMCP211からレベル3の
OS251に移る。
【0168】ステップ631 : レベル2のVMCP
231のVM上でレベル3のOS251が動作する。
【0169】以上、従来技術では、レベル3のOS25
1が発行したSSKE命令は、ステップ661からステ
ップ681に至るレベル1のVMCP211とレベル2
のVMCP231の連携動作によって実現されていた。
【0170】
【発明が解決しようとする課題】しかしながら、前記従
来技術にあっては、レベル3のOS251は“C”のV
MID値で動作しており、レベル2のOS231は
“B”のVMIDで動作している。従って、レベル3の
OS251で検出されたレベル2アドレス変換例外の処
理のように、レベル2のOS231でTLBをパージす
る場合、レベル2のOS231が発行したPTLB命令
をシミュレーションするために、該PTLB命令をイン
ターセプトし、レベル1のVMCP211でのシミュレ
ーションでPTLB命令を発行し、全てのVMIDを持
つTLBエントリをパージする必要があった。
【0171】すなわち、レベル2のOS231でTLB
をパージする場合、レベル2のOS231上でのPTL
B命令の直接実行は不可能であった。そこで、レベル2
のOS231上でのPTLB命令の発行に対し、レベル
1のOS211の介入によるレベル2のOS231上で
のPTLB命令発行に対するPTLB命令シミュレーシ
ョン操作を必要としていた。この操作に要する処理時間
は、オーバヘッドとして仮想計算機システムの性能向上
を阻害する大きな要因となる。
【0172】また、レベル1のOS211によるPTL
B命令の発行は、本来パージする必要の無いTLBエン
トリ(レベル1のエントリ)を含めて全てのTLBエン
トリをパージしてしまう結果となり、TLBの使用効率
の大幅な低下に繋がり、オーバヘッドとして仮想計算機
システムの性能向上を阻害する大きな要因となり、仮想
計算機システムの性能上無視し得ない大きな問題であっ
た。
【0173】また、マルチプロセッサ構成においては、
レベル3のOS251が発行したSSKE命令のような
TLBをパージする必要のある命令の実行に当たり、該
命令の単独実行のみでは、TLBの完全な保守は不可能
であった。
【0174】すなわち、レベル3のOS251が“C”
のVMIDで動作しているため、レベル3のOS251
が発行したSSKE命令をシミュレーションするために
レベル1のVMCP211が発行したSSKE命令の実
行に際し、レベル3のOS251が発行したSSKE命
令のオペランドアドレスで指定される絶対アドレスを持
つTLBエントリを、レベル1のVMCP211が発行
したSSKE命令の実行の一環としてはパージが不可能
であった。その理由は、レベル1のVMCP211が
“A”のVMIDで動作しているためである。
【0175】そこで、該命令の単独実行に加え、VMC
P211から全CPUに対し、実行中の処理を一時中断
させるロック指示が出し、ロック指示を出したCPUを
除く全てのCPUをロックする操作を行い、SSKE命
令のようなTLBをパージする必要のある命令の実行
後、PTLB命令を発行して全てのTLBエントリをパ
ージする必要があった。
【0176】さらに、ロック指示を出したCPUを除く
全てのCPUに対し、PTLB命令の実行の指示を出
し、全てのCPUでPTLB命令の実行が完了すると、
ロック指示を出したCPUを除く全CPUに対し、アン
ロック指示を出す操作を要していた。このような操作に
要する処理時間は、オーバヘッドとして仮想計算機シス
テムの性能向上を阻害する大きな要因となり、さらにS
SKE命令の実行に伴うPTLB命令の発行は、本来パ
ージする必要の無いTLBエントリを含む全てのTLB
エントリをパージしてしまう結果となり、TLBの使用
効率の大幅な低下に繋がり、オーバヘッドとして仮想計
算機システムの性能向上を阻害する大きな要因となって
おり、仮想計算機システムの性能上無視し得ない大きな
問題であった。
【0177】本発明の目的は、前記のような問題点を解
決するもので、TLBエントリのうち必要なエントリの
みを高速にパージすることができる仮想計算機システム
のアドレス変換バッファパージ方法を提供することにあ
る。
【0178】
【課題を解決するための手段】前記目的を達成するため
に本発明は、複数の仮想計算機を備えた1台以上の中央
処理装置と、各仮想計算機のそれぞれから共用される主
記憶装置と、各仮想計算機が過去に主記憶装置をアクセ
スした時の論理アドレスと該論理アドレスに対応する絶
対アドレスおよびアクセス元の仮想計算機に割り当てら
れた仮想計算機識別符号を1組にして複数組記憶する複
数のエントリを備え、各仮想計算機が主記憶装置をアク
セスする時に前記エントリを参照して論理アドレスを絶
対アドレスに変換するアドレス変換バッファを備えた仮
想計算機システムにおいて、1つ以上の仮想計算機識別
符号を記憶するレジスタを設け、いずれか1つの特定の
仮想計算機が発行するアドレス変換バッファのパージを
伴う命令の実行に当たり、該命令を実行する特定の仮想
計算機の仮想計算機識別符号に加え、パージ対象のアド
レス変換バッファエントリを有する他の仮想計算機の仮
想計算機識別符号を前記レジスタに記憶させておき、前
記命令の実行により、前記特定の仮想計算機の仮想計算
機識別符号と一致する仮想計算機識別符号を記憶したエ
ントリをパージすると共に、前記他の仮想計算機の仮想
計算機識別符号と一致する仮想計算機識別符号を記憶し
たエントリを並行してパージするようにしたものであ
る。
【0179】また、複数の仮想計算機を備えた2台以上
の中央処理装置からなるマルチプロセッサ構成の仮想計
算機システムにおいては、前記中央処理装置間で直接に
情報の授受を行う第1の通信手段と、前記主記憶装置内
のハードウェア使用領域を経由して中央処理装置間の情
報の授受を行う第2の通信手段とを設け、いずれか1つ
の特定の仮想計算機が発行するアドレス変換バッファの
パージを伴う命令の実行に当たり、前記特定の仮想計算
機を有する中央処理装置からパージ対象のアドレス変換
バッファエントリを有する他の中央処理装置内の仮想計
算機の仮想計算機識別符号を前記第1および第2の通信
手段を介して該他の中央処理装置に送信しておき、前記
命令の実行により、前記特定の仮想計算機の仮想計算機
識別符号と一致する仮想計算機識別符号を記憶したエン
トリをパージするのと並行して、前記他の中央処理装置
内の仮想計算機の仮想計算機識別符号と一致する仮想計
算機識別符号を記憶したエントリをパージするようにし
たものである。
【0180】
【作用】本発明の仮想計算機システムのアドレス変換バ
ッファパージ方法によれば、いずれか1つの特定の仮想
計算機が発行するアドレス変換バッファのパージを伴う
命令の実行に当たり、該特定の仮想計算機の仮想計算機
識別符号に加え、パージ対象のアドレス変換バッファエ
ントリを有する他の仮想計算機の仮想計算機識別符号を
前記レジスタに記憶させておき、前記命令の実行によ
り、前記特定の仮想計算機の仮想計算機識別符号と一致
する仮想計算機識別符号を記憶したエントリをパージす
ると共に、前記他の仮想計算機の仮想計算機識別符号と
一致する仮想計算機識別符号を記憶したエントリを並行
してパージする。
【0181】これにより、例えばレベル2のOSが発行
したTLBをパージする命令を実行する際、レベル2の
OS上でのPTLB命令を直接実行させ、レベル1のO
Sが行う全てのTLBエントリに対するPTLB命令を
用いたTLBパージ操作を省き、レベル1のOSが行う
全てのTLBエントリに対するTLBパージによるTL
Bの使用効率の低下等のオーバヘッドを除去することが
できる。
【0182】この結果、レベル1のOSによる前記操作
に要する処理時間、すなわちオーバヘッドを除去でき、
性能を向上させることができるうえ、必要なエントリの
みをパージすることができる。
【0183】また、いずれか1つの特定の仮想計算機が
発行するアドレス変換バッファのパージを伴う命令の実
行に当たり、前記特定の仮想計算機を有する中央処理装
置からパージ対象のアドレス変換バッファエントリを有
する他の中央処理装置内の仮想計算機の仮想計算機識別
符号を前記第1および第2の通信手段を介して該他の中
央処理装置に送信しておき、前記命令の実行により、前
記特定の仮想計算機の仮想計算機識別符号と一致する仮
想計算機識別符号を記憶したエントリをパージするのと
並行して、前記他の中央処理装置内の仮想計算機の仮想
計算機識別符号と一致する仮想計算機識別符号を記憶し
たエントリをパージする。
【0184】以上の結果、例えばレベル3のOSが発行
したTLBエントリをパージする必要のある命令を実行
する際、該命令の単独実行に加え、マルチプロセッサ構
成における全ての実CPUに対するロック操作やアンロ
ック操作を行うことが不要になる。
【0185】さらに、マルチプロセッサ構成における全
ての実CPUに対するTLB部分パージ要求とTLB部
分パージ完了報告に対し、実CPU間の1対複数の通信
を高速化したMPインタフェースを適用するので、VM
CPのオーバヘッドを除去でき、性能を向上させること
ができるうえ、必要なエントリのみをパージすることが
できる。
【0186】
【実施例】以下、本発明による仮想計算機システムのア
ドレス変換バッファパージ方法の実施例を図面を用いて
詳細に説明する。
【0187】(実施例1)図1は、本発明の仮想計算機
システムのアドレス変換バッファパージ方法を実現する
上でのVMIDエントリを具備したTLBと周辺回路の
構成を示すブロック図である。なお、仮想計算機システ
ムの全体構成は図11に示すようになっているものとす
る。
【0188】図1において、アドレス変換バッファ71
0は、実CPU202がデータ及び命令語をアクセスす
る際の論理アドレスを絶対アドレスに高速に変換するた
めのハードウェア機構であり、Vフラグ(エントリ有効
フラグ)711,該エントリが所属するVMIDを保持
するVMIDエントリ712,セグメントテーブルの起
点の所属およびアドレスを保持するSTDエントリ71
3,論理アドレスを保持する論理アドレスエントリ71
4,論理アドレスに対応する絶対アドレスを保持する絶
対アドレスエントリ715、絶対アドレスに付与される
主記憶キーを保持する主記憶キーエントリ716から構
成される。
【0189】アドレス変換バッファ710は、これらの
各関連エントリを1組として、複数組のエントリ群から
構成される。
【0190】セレクタA720は、実CPU202がデ
ータ及び命令語をアクセスする際の論理アドレスを入力
として、アドレス変換バッファ710の複数組のエント
リ群から関連エントリを1組選択するセレクタである。
【0191】出力レジスタ730は、アドレス変換バッ
ファ710の複数組のエントリ群から選択された1組の
関連エントリの内容を一時的に保持しておくレジスタで
ある。
【0192】VMIDレジスタ740は、実CPU20
2がデータおよび命令語をアクセスする際のVMIDを
保持するVMIDエントリ741及び該VMIDに対応
するSD絶対アドレスを保持するSDアドレスエントリ
742から構成される。このVMIDレジスタ740
は、これらの関連エントリを1組として、複数組のエン
トリ群から構成される。
【0193】このVMIDレジスタ740においては、
実CPU202上でVMが動作する際、SIE命令のオ
ペランドであるSDのアドレスに対応したSDアドレス
エントリ742が選択され、該エントリ内のVMIDエ
ントリ741とアドレス変換バッファ710内のVMI
Dエントリ712とが比較される。
【0194】ワークレジスタA79A及びワークレジス
タB79Bは、それぞれSDアドレスエントリ742に
対応するVMIDエントリ712の内容を保持するワー
クレジスタである。
【0195】比較器AC752,比較器B75B及び比
較器C75Cは、それぞれ出力レジスタ730に一時的
に保持されたVMIDエントリ712,STDエントリ
713及び論理アドレスエントリ714の内容とVMI
Dレジスタ740のVMIDエントリ741の内容,主
記憶アクセスで使用されるセグメントテーブル起点及び
主記憶アクセスに伴う論理アドレスとを比較する比較器
である。
【0196】ANDゲート760は、比較器AC75
2,比較器B75B及び比較器C75Cのそれぞれの比
較結果の論理積をとるANDゲートである。
【0197】セレクタB770は、出力レジスタ730
に一時的に保持された絶対アドレスエントリ715及び
主記憶キーエントリ716の内容を、ANDゲート76
0から送出されるデータ比較一致を示すヒット信号によ
って選択し、送出するセレクタである。
【0198】アドレス変換制御部780は、本ブロック
図に示すアドレス変換バッファ710および周辺回路の
動作全体を制御する制御装置である。
【0199】比較器AA750,比較器AB751及び
比較器AC752は、TLB710の部分パージの時、
それぞれワークレジスタA79A,ワークレジスタB7
9B及びVMIDエントリ741の内容と出力レジスタ
730に一時的に保持されたVMIDエントリ712の
内容とを比較する比較器である。
【0200】ORゲート790は、比較器AA750,
比較器AB751及び比較器AC752のそれぞれの比
較結果の論理和をとるORゲートである。
【0201】次に、この構成におけるアドレス変換バッ
ファ710のパージ動作について説明する。
【0202】図1において、実CPU202からTLB
パージ要求が発行されると、パージすべきTLBエント
リ番号が信号線7A0を介してセレクタA720および
比較器C75Cに入力される。
【0203】TLBエントリ番号を受け取ったセレクタ
A720は、アドレス変換バッファ710内の複数のエ
ントリ群からTLBエントリ番号に対応する1つのエン
トリを選択し、読出し要求を発行する。
【0204】このエントリ読出し要求を受けたアドレス
変換バッファ710は、該当する1つのエントリの内容
を読出し、信号線7C0を介して出力レジスタ730に
セットする。
【0205】ここで、出力レジスタ730にセットされ
る1つのエントリの内訳は、Vフラグ711,VMID
エントリ712,STDエントリ713,論理アドレス
エントリ714,絶対アドレスエントリ715及び主記
憶キーエントリ716から構成される。
【0206】一方、VMIDレジスタ740は、TLB
パージ要求が発行された時点で、信号線7H1を介して
送られて来たSDの絶対アドレスを用いて同一のSDの
絶対アドレスを保持するSDアドレスエントリ742に
対応するVMIDエントリ741を選択し、ワークレジ
スタA79Aにその内容をセットする。この選択及びセ
ット動作は、主としてマイクロプログラムに依って行わ
れる。
【0207】同様の手順で、ワークレジスタB79Bに
対しても、信号線7H1を介して送られて来た別のSD
の絶対アドレスにより、SDアドレスエントリ742に
対応するVMIDエントリ741の内容がセットされ
る。さらに、信号線7H1を介して送られて来た更に別
のSDの絶対アドレスにより、SDアドレスエントリ7
42に対応するVMIDエントリ741の内容が信号線
7D0に送出される。
【0208】この3つのVMIDが揃った時点で、ワー
クレジスタA79Aの内容,ワークレジスタB79Bの
内容及び信号線7D0の内容がそれぞれ比較器AA75
0,比較器AB751及び比較器AC752に入力され
る。そして、出力レジスタ730に一時的に保持された
VMIDエントリ712の内容と比較され、その結果が
ORゲート790に入力される。そして、ORゲート7
90の出力によって該TLBエントリのパージが必要か
否かが制御される。
【0209】この比較の結果の一致又は不一致の信号が
信号線7I0を介してアドレス変換バッファ710及び
アドレス変換制御部780に送られ、この信号が“1”
(一致)であれば、アドレス変換バッファ710の選択
されているTLBエントリのVフラグ711に“0”を
書き込み、該TLBエントリを無効化する。しかし、こ
の信号が“0”(不一致)であれば、該TLBエントリ
の無効化は行われない。
【0210】次に、図14に示すようにMS201の領
域がレベル1のVMCP211,レベル2のVMCP2
31,レベル3のゲストOS251に割り当てられてい
る場合に、TLB710のパージが必要となる時の動作
について図2および図3のフローチャートを参照して説
明する。
【0211】図2および図3は、図11のように構成さ
れた仮想計算機システムが動作する場合のレベル1のV
MCP211,レベル2のVMCP231及びレベル3
のゲストOS251の制御の流れを示すものである。
【0212】ステップ801 : レベル1のVMCP
211のVM上でレベル3のゲストOS251を動作さ
せる事前処理として、レベル1のVMCP211は、レ
ベル2のVMCP231を起動する準備としてSIE命
令のオペランドであるL1SDを設定する。
【0213】ステップ802 : レベル1のVMCP
211は、ステップ801で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211のVM上でレベル2のVMCP231を起動す
る。この時点から制御は、レベル1のVMCP211か
らレベル2のVMCP231に移る。
【0214】ステップ803 : レベル1のVMCP
211のVM上でレベル2のVMCP231が動作す
る。レベル2のVMCP231のVM上でレベル3のゲ
ストOS251を動作させる事前処理として、レベル2
のVMCP231は、レベル3ゲストOS251を起動
する準備としてSIE命令のオペランドであるL2SD
を設定する。
【0215】ステップ804 : レベル2のVMCP
231は、ステップ803で設定されたL2SDをオペ
ランドとしてSIE命令を発行し、レベル2のVMCP
231のVM上でレベル3のOS251を起動しようと
する。
【0216】ステップ805 : ステップ804で、
レベル2のVMCP231のVM上でレベル3OS25
1を起動しようとして、レベル2のVMCP231がS
IE命令を発行すると、このSIE命令は、命令インタ
ーセプション要因を持っているので命令インターセプシ
ョンが発生し、制御はレベル1のVMCP211のVM
上のレベル2のVMCP231からレベル1のVMCP
211に戻される。
【0217】ステップ806 : レベル1のVMCP
211は、制御がレベル1のVMCP211に戻される
要因となったインターセプションコードを解析し、コー
ド毎のインターセプション処理を行う。この場合、イン
ターセプションコードは、命令インターセプションを示
している。
【0218】ステップ807 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0219】本例では、SIE命令を実行しようとして
命令インターセプションが発生したのであるから、SI
E命令のシミュレーションを行う。
【0220】レベル1のVMCP211のVM上でレベ
ル3のOS251を動作させる事前処理として、レベル
1のVMCP211は、レベル2のVMCP231を起
動するために用意されたL1SDとレベル3のOS25
1を起動するために用意されたL2SDを合成し、レベ
ル1のVMCP211のVM上でレベル3のゲストOS
251を走行させるための仮のSD(以下、シャドーS
Dという)を設定する。
【0221】ステップ808 : レベル1のVMCP
211は、ステップ807で設定されたシャドーSDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル3のゲストOS251を起
動する。
【0222】これは、レベル2のVMCP231のVM
上でレベル3のゲストOS251を起動するのと等価で
ある。この時点から制御は、レベル1のVMCP211
からレベル3のゲストOS251に移る。
【0223】ステップ809 : レベル2のVMCP
231のVM上でレベル3のゲストOS251が動作す
る。
【0224】ステップ810 : レベル2のVMCP
231のVM上でレベル3のゲストOS251の実行中
に、該OS251から発行されたMSアクセスで、レベ
ル2のアドレス変換例外が検出される。
【0225】ステップ811 : ステップ810で、
レベル2のVMCP231のVM上のレベル3のゲスト
OS251がレベル2のアドレス変換例外を検出する
と、このアドレス変換例外はホスト割込み要因を持って
いるので、レベル1のVMCP211へのプログラム割
込みが発生し、制御はレベル3のゲストOS251から
レベル1のVMCP211に戻される。
【0226】ステップ812 : レベル1のVMCP
211は、制御がレベル1のVMCP211に戻される
要因となったホストプログラム割込みコードを解析し、
コード毎の割込み処理を行う。この場合、ホストプログ
ラム割込みコードは、レベル2のアドレス変換例外を示
している。
【0227】ステップ813 : この処理の具対的処
理内容は、各種割込みコード毎に対応する処理を別々に
行うもので、例えば割込みコードがレベル2のアドレス
変換例外を指していれば、レベル2のVMCP231に
アドレス変換例外を通知する。
【0228】本例では、レベル3のゲストOS251が
レベル2アドレス変換例外を検出したのであるから、レ
ベル2のVMCP231にアドレス変換例外を通知す
る。
【0229】そこで、レベル2のVMCP231にアド
レス変換例外を通知するため、レベル2のVMCP23
1を走行させる事前処理として、レベル1のVMCP2
11は、レベル2のVMCP231を起動するために用
意されたL1SDとレベル3のゲストOS251を起動
するために用意されたシャドウSDとを合成し、レベル
2のVMCP231を起動するためのL1SDを設定す
る。
【0230】このL1SDの設定に際し、本アドレス変
換例外は、レベル3のゲストOS251が動作中にレベ
ル2アドレス変換例外を検出したのであるから、L1S
D内に、L1SDアドレス,L2SDアドレス及びシャ
ドーSDアドレスをパラメータとして格納し、レベル2
のVMCP231が発行するであろうPTLB命令に備
える。
【0231】ステップ814 : レベル1のVMCP
211は、ステップ813で設定されたL1SDをオペ
ランドとしてSIE命令を発行し、レベル1のVMCP
211のVM上でレベル2のVMCP231を起動す
る。この時のレベル2のVMCP231のPSAには、
アドレス変換例外に伴う割込みパラメータが予めレベル
1のVMCP211によって格納されており、さらに、
L1SD内の命令アドレスフィールドにはレベル2のV
MCP231のPSA内の割込みPSWの命令アドレス
部が格納される。
【0232】すなわち、レベル1のVMCP211は、
レベル2のVMCP231に対するアドレス変換例外割
込みをシミュレーションする。この時点から制御は、レ
ベル1のVMCP211からレベル2のVMCP231
に移る。
【0233】ステップ815 : レベル2のVMCP
231は、レベル1のVMCP211によって通知され
た割込みコードを解析し、コード毎の割込み処理を行
う。この場合、割込みコードは、アドレス変換例外割込
みを示している。
【0234】ステップ816 : この処理の具対的処
理内容は、各種割込みコード毎に対応する処理を別々に
行うもので、例えば割込みコードがアドレス変換例外割
込みを指していれば、アドレス変換テーブルの保守を行
う。
【0235】本例では、アドレス変換例外割込みが発生
したのであるから、アドレス変換テーブルの保守処理が
実行される。
【0236】ステップ817 : レベル2のVMCP
231上で、アドレス変換テーブルの保守処理が実行さ
れる。アドレス変換テーブルの保守処理の一環として、
PTLB命令が発行される。
【0237】この場合、PTLB命令では、特定のフラ
グにより直接実行を許す状態が設定され、レベル1のV
MCP211への命令インタセプションは発生しない。
【0238】また、PTLB命令の実行の一部として、
L1SD内のパラメータであるL1SDアドレス,L2
SDアドレス及びシャドーSDアドレスを用いて、それ
ぞれのアドレスに対応するVMIDエントリが選択さ
れ、ワークレジスタA79A及びワークレジスタB79
Bにその内容がセットされ、更に残りが信号線7D0に
送出される。
【0239】これら3つのVMIDが揃った時点で、ワ
ークレジスタA79Aの内容,ワークレジスタB79B
の内容及び信号線7D0の内容がそれぞれ比較器AA7
50,比較器AB751及び比較器AC752に入力さ
れる。そして、出力レジスタ730に一時的に保持され
たVMIDエントリ712の内容と同時に比較され、そ
の結果がORゲート790を経由して信号線7I0に出
力され、該TLBエントリのパージを行うか否かが制御
される。
【0240】比較の結果が一致であれば、選択されてい
るTLBエントリを無効化する。しかし、不一致であれ
ば、該TLBエントリの無効化は行われない。
【0241】以上の操作が、TLBエントリの数だけ繰
り返され、3つのVMIDに対するTLB710の部分
パージが行われる。
【0242】この場合、レベル1のVMCP211が使
用するTLBエントリをパージする必要がない時は、L
2SDアドレス及びシャドーSDアドレスのみを設定す
ればよい。
【0243】ステップ818 : レベル2のVMCP
231は、レベル3のゲストOS251が検出したレベ
ル2のアドレス変換例外の処理を完了したので、再度、
レベル3のゲストOS251を起動する必要がある。そ
こで、レベル2のVMCP231のVM上でレベル3の
ゲストOS251を走行させる事前処理として、SIE
命令のオペランドであるL2SDを設定する。
【0244】ステップ819 : レベル2のVMCP
231は、ステップ818で設定されたL2SDをオペ
ランドとしてSIE命令を発行し、レベル2のVMCP
231のVM上でレベル3のゲストOS251を起動し
ようとする。
【0245】ステップ820 : ステップ819でレ
ベル2のVMCP231がSIE命令を発行すると、こ
のSIE命令は命令インターセプション要因を持ってい
るので、命令インターセプションが発生し、制御はレベ
ル2のVMCP231からレベル1のVMCP211に
戻される。
【0246】ステップ821 : レベル1のVMCP
211は、制御が戻される要因となったインターセプシ
ョンコードを解析し、コード毎のインターセプション処
理を行う。この場合、インターセプションコードは、命
令インターセプションを示している。
【0247】ステップ822 : この処理の具対的処
理内容は、各種インターセプションコード毎に対応する
処理を別々に行うもので、例えばインターセプションコ
ードが命令インターセプションを指していれば、該命令
のシミュレーションを行う。
【0248】本例では、SIE命令を実行しようとして
命令インターセプションが発生したのであるから、SI
E命令のシミュレーションを行う。レベル1のVMCP
211のVM上でレベル3のゲストOS251を動作さ
せる事前処理として、レベル1のVMCP211は、レ
ベル2のVMCP231を起動するために用意されたL
1SDとレベル3のゲストOS251を起動するために
用意されたL2SDとを合成し、レベル1のVMCP2
11のVM上でレベル3のゲストOS251を走行させ
るためのシャドーSDを設定する。
【0249】ステップ823 : レベル1のVMCP
211は、ステップ822で設定されたシャドーSDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル3のゲストOS251を起
動する。これは、レベル2のVMCP231のVM上で
レベル3のゲストOS251を起動するのと等価であ
る。この時点から制御は、レベル1のVMCP211か
らレベル3のゲストOS251に移る。
【0250】ステップ824 : レベル2のVMCP
231のVM上でレベル3のゲストOS251が動作す
る。
【0251】以上説明したように本実施例においては、
異なるVMIDを持つTLBエントリをパージするに当
たり、TLBエントリの操作が必要な命令のシミュレー
ション、即ち、例えばレベル2のVMCP231上で、
レベル2のアドレス変換例外処理を実行する時、レベル
1のVMCP211がSIE命令のオペランドであるL
1SDをオペランドとしてSIE命令を発行し、レベル
1のVMCP211上のVMでレベル2のVMCP23
1を起動する場合に、レベル2のアドレス変換例外がレ
ベル2のVMCP231のVM上のレベル3のゲストO
S251上で検出されたことにより、レベル2のVMC
P231がレベル2のアドレス変換テーブルの書替え保
守処理を開始し、そこでPTLB命令を発行した時点
で、命令インターセプションを抑止し、制御をレベル2
のVMCP231からレベル1のVMCP211に戻さ
ずそのまま実行させる。
【0252】このPTLB命令の実行において、L1S
D内のL1SDアドレス,L2SDアドレス及びシャド
ーSDアドレスに対応するVMIDの値を持つ自CPU
のTLBエントリが同時に部分パージされ、インターセ
プションを伴わない。その結果、仮想計算機システムの
性能向上を阻害する大きな要因であったPTLB命令の
インターセプション処理及び全TLBパージ処理による
TLBの使用効率低下のオーバヘッドを除去することが
でき、性能を格段に向上させ、さらに必要なエントリの
みを選択的にパージすることができる。
【0253】なお、同時並行にパージするエントリのV
MIDを記憶するワークレジスタは3個としたが、3個
未満または4個以上にしてもよい。
【0254】(実施例2)次に、マルチプロセッサ構成
におけるアドレス変換バッファパージ方法の実施例につ
いて説明する。
【0255】図4は、マルチプロセッサ構成におけるア
ドレス変換バッファパージ方法を実現する上での装置構
成及び共用主記憶の分割概念を示した図である。
【0256】なお、図4の例はCPUが3台の構成例で
あるが、4台以上の構成をとってもよいし、3台未満で
あってもよい。図4において、共用MS7010は信号
線7500,7510及び7520を介し、CPUA7
020,CPUB7030及びCPUC7040と接続
され、更にCPUA7020,CPUB7030及びC
PUC7040は信号線7600を介して相互に接続さ
れている。CPUA7020,CPUB7030及びC
PUC7040はそれぞれ信号線7500,7510又
は7520を介してそれぞれ独自に共用MS7010の
任意の領域をアクセスすることができるようになってい
る。
【0257】さらに、CPUA7020,CPUB70
30及びCPUC7040は信号線7600を介して、
相互にCPU間の情報の授受を行うことができるように
なっている。
【0258】信号線7600を介して授受される情報
は、例えば相手CPUに対するPTLB処理起動要求、
あるいは待ち状態解除指示要求情報であり、さらに相手
CPUからの応答である要求受付報告情報である。
【0259】一方、共用MS7010は、一般のソフト
ウェアが使用するソフトウェア使用領域(以下、SUA
という)とハードウェアシステムがハードウェアの動作
処理上固有に使用するハードウェア使用領域(以下、H
SAという)とに分割される。
【0260】SUA及びHSAは共に信号線7500,
7510又は7520を介してマルチプロセッサシステ
ム(MPシステム)内の全てのCPUからアクセスが可
能になっている。
【0261】すなわち、HSA内の任意の領域をCPU
間の通信バッファとして使用すれば、システム上で走行
中のソフトウェアに何ら影響を及ぼすことなく、システ
ムを構成している全てのCPUの間での種々の情報の授
受が可能になっている。
【0262】共用MS7010のHSA内にCPU間通
信領域(以下、CCAという)を設定した場合のHSA
内の領域構成を以下に記述する。
【0263】本実施例においては、CCAをシステム共
通領域(以下、SCAという)7110,CPUA使用
領域(以下、CPUAAという)7120,CPUB使
用領域(以下、CPUBA7130という)及びCPU
C使用領域(以下、CPUCAという)7140から構
成している。
【0264】SCA7110には、MPシステムを構成
している全てのCPU7020,7030,7040で
共通に使用される情報を格納しておく。このSCA71
10に格納しておく情報としては、例えば入出力制御チ
ャンネルの機能を測定するための測定ブロックキー,測
定ブロック更新モードビット,測定ブロック起点アドレ
ス又はSCA領域7110を各CPUから排他的に使用
するためのロック領域等が設けられている。
【0265】CPUAA7120は、CPUA7020
が固有に使用する情報及び他CPU7030,7040
に送出する情報を格納しておく領域であり、本実施例に
おいてはこの領域を使用してMPインタフェースを介し
て授受する情報を他CPU7030,7040に転送す
る。
【0266】CPUBA7130及びCPUCA714
0は、CPUA7020以外のCPUが固有に使用する
領域であり、それぞれCPUB7030及びCPUC7
040が使用し、その役割はCPUAA7120と同様
である。
【0267】以下、図4におけるCPUA7020,C
PUB7030及びCPUC7040の間における通常
の情報授受方法について、図5を用いて詳細に説明す
る。
【0268】図5はCPU間の情報の授受方法について
の処理手順を示すフローチャートである。
【0269】ステップ501 : CPUA7020が
CPUB7030及びCPUC7040に何らかの動作
を要求する時、まずCPUA7020はその要求動作内
容を規定したMPインタフェースパラメータを共用MS
701のHSA内CPUAA7120に信号線7500
を介して格納する。この場合の格納動作は、通常の主記
憶格納アクセスと同様の手段で行われる。
【0270】ステップ502 : 次に、CPUA70
20はCPUB7030及びCPUC7040に対し信
号線7600を介して動作要求信号を送出する。
【0271】ステップ503 : CPUA7020
は、CPUB7030及びCPUC7040に対し信号
線760を介して動作要求信号を送出した後、CPUB
7030及びCPUC7040から要求した動作が完了
した旨の報告信号が信号線7600を介して返って来る
まで待ち状態に入る。
【0272】ステップ511及びステップ521 :
CPUB7030及びCPUC7040は、信号線76
00を介して動作要求信号をCPUA7020から受け
取ると、現在実行中の通常処理を一時中断して、MPイ
ンタフェース通信動作を起動(以下ブレイクインとい
う)する。
【0273】ステップ512及びステップ522 :
CPUB7030及びCPUC7040は、ブレイクイ
ンにより、実行中の処理を一時中断してMPインタフェ
ース通信処理動作を起動する。
【0274】ステップ513及びステップ523 :
このMPインタフェース通信処理において、CPUB7
030及びCPUC7040は、CPUA7020が予
め格納しておいた要求動作内容を規程したMPインタフ
ェースパラメータを共用MS701のHSA内CPUA
A7120からそれぞれ信号線7510及び7520を
介して取り出す。
【0275】この場合の取り出し動作は、通常の主記憶
取り出しアクセスと同様の手段で行われる。
【0276】ステップ514及びステップ524 :
CPUB7030及びCPUC7040は、信号線76
00を介して送られて来た動作要求と共用MS701の
HSA内CPUAA7120から取り出した要求動作内
容を規定したMPインタフェースパラメータにより、C
PUA7020が何の動作を要求しているかを判定し、
指定された動作を実行する。
【0277】ステップ515及びステップ525 :
CPUA7020から指定された動作の実行を完了する
と、CPUB7030及びCPUC7040は、動作終
了信号を信号線7600を介してCPUA7020に送
出する。
【0278】ステップ516及びステップ526 :
CPUB7030及びCPUC7040は、CPUA7
020に対し信号線7600を介して動作終了信号を送
出した後、CPUA7020から通常処理続行を指示す
る信号が信号線7600を介して返って来るまで待ち状
態に入る。
【0279】ステップ504 : CPUA7020
は、ステップ503にて待ち状態に入っているが、この
ステップの実行と同時にCPUB7030及びCPUC
7040の双方から動作終了信号が信号線7600を介
して返送されて来るのを監視する。そこで、双方のCP
UB7030及びCPUC7040から動作終了信号が
信号線7600を介して返送されて来たならば、ステッ
プ505に進む。
【0280】ステップ505 : 双方のCPUB70
30及びCPUC7040から動作終了信号が返送され
て来ると、CPUA7020は、ステップ503及びス
テップ504の動作を終了し、CPUB7030及びC
PUC7040に対し信号線7600を介して通常処理
続行要求信号を送出する。その後通常処理を再起動す
る。
【0281】ステップ519及びステップ529 :
CPUB7030及びCPUC7040は、信号線76
000を介して通常処理続行要求信号をCPUA702
0から受け取ると、現在実行中のステップ516及びス
テップ526で実行している待ち状態を終了し、通常処
理を再起動する。
【0282】ここで、CPUA7020,CPUB70
30及びCPUC7040の相互間で授受するパラメー
タについて説明する。
【0283】図6はCPU間で授受されるパラメータ情
報について説明した図である。
【0284】CPUA7020がCPUB7030及び
CPUC7040に何らかの動作を要求する時、まずC
PUA7020はその要求動作内容を規定したMPイン
タフェースパラメータを共用MS7010のHSA内C
PUAA7120に信号線7500を介して格納する。
この場合に、CPUAA7120にCPUA7020に
よって格納されるパラメータには、図6(a)に示すよ
うに、他CPUに要求する動作を規定する要求コマン
ド,要求の対象となるパージ要求パラメータ数を示すエ
ントリ、及び1つ又は複数のパージ要求パラメータ群か
ら構成される。
【0285】図6(a)におけるパージ要求パラメータ
エントリの内容の詳細を図6(b)に示す。
【0286】図6(b)に示すように、パージ要求パラ
メータエントリ602は、要求元のCPUでカレントに
走行しているVMのVM番号を示すVM番号フィールド
604,要求元のCPUでカレントに走行しているVM
のVMIDを示すVMIDフィールド605,要求元の
実CPU番号を示すCPU番号フィールド606,要求
元の論理CPU番号を示すLIP番号フィールド60
7,パージの対象となるMSの絶対アドレスを示す絶対
アドレスフィールド608,レベル1のVMCP211
がレベル2のVMCP231を起動するために指定され
たSIE命令のオペランドであるL1SDのアドレスを
示すL1SDアドレスフィールド609,レベル2のV
MCP231がレベル3のOS251を起動するために
指定されたSIE命令のオペランドであるL2SDのア
ドレスを示すL2SDアドレスフィールド610,レベ
ル1のVMCP211がレベル3のOS251を起動す
るために指定されたSIE命令のオペランドであるシャ
ドーSDのアドレスを示すシャドーSDアドレスフィー
ルド611及びその他のパラメータを格納するフィール
ド612から構成される。
【0287】CPUAA7120にCPUA7020に
よって格納される場合の格納動作、及びCPUAA71
20からCPUB7030及びCPUC7040によっ
て読み出される場合の読み出し動作は、通常の主記憶格
納及び読み出しアクセスと同様の手段で行われる。
【0288】次に、図7を用いて図5のステップ513
〜515およびステップ523〜525の動作を更に詳
細に説明する。
【0289】図7は、図5におけるステップ513〜5
15およびステップ523〜525の動作の更に詳細な
処理手順を示すフローチャートである。
【0290】ステップ1001 : CPUB7030
及びCPUC7040は、CPUA7020が予め格納
しておいた要求動作内容を規定したMPインタフェース
パラメータを共用MS7010のHSA内CPUAA7
120からそれぞれ信号線7510及び7520を介し
て取り出す。この場合の取り出し動作は、通常の主記憶
取り出しアクセスと同様の手段で行われる。
【0291】ステップ1002 : CPUB7030
及びCPUC7040は、MPインタフェースパラメー
タを共用MS7010のHSA内CPUAA7120か
らそれぞれ信号線7510及び7520を介して取り出
した後、そのMPインタフェースパラメータ内の要求コ
マンドを解析する。
【0292】ステップ1003 : CPUB7030
及びCPUC7040は、信号線76000を介して送
られて来た動作要求と共用MS7010のHSA内CP
UAA7120から取り出した要求動作内容を規定した
MPインタフェースパラメータにより、CPUA702
0が何の動作を要求しているかを判定する。
【0293】この例の場合、CPUB7030及びCP
UC7040のそれぞれで、MPインタフェースパラメ
ータにより指定された要求がTLB部分パージ要求であ
るか否かを切り分ける。TLB部分パージ要求であれ
ば、ステップ1004に行き、TLB部分パージ要求で
無ければステップ1005に進む。
【0294】ステップ1004 : このステップ以降
が、本発明のTLB部分パージ処理過程である。CPU
B7030及びCPUC7040は、共用MS7010
のHSA内CPUAA7120から取り出した要求動作
内容を規定したMPインタフェースパラメータ内のパー
ジ要求パラメータの数を示すエントリ601を取り出
し、自CPU内のRCPレジスタに格納する。
【0295】さらに、処理すべきパージ要求パラメータ
エントリの番号を制御する自CPU内のnレジスタを
“0”にイニシャライズする。その後、ステップ100
6に進む。
【0296】ステップ1005 : このステップは、
本発明のTLB部分パージ処理過程で無い処理を行う処
理過程である。
【0297】本処理過程では、他CPUに要求する動作
を規定する要求コマンドに沿った処理を行う。本処理の
内容については省略する。その後、ステップ1015に
進む。
【0298】ステップ1006 : CPUB7030
及びCPUC7040は、自CPU内のRCPレジスタ
の内容が“0”であるか否かをテストする。“0”であ
ればステップ1015に進み、“0”でなければステッ
プ1007に進む。
【0299】ステップ1007 : CPUB7030
及びCPUC7040は、自CPU内のnレジスタの内
容に“1”を加える。このnレジスタの内容は、扱うべ
きパージ要求パラメータエントリの番号を制御する。そ
の後、nレジスタの内容で示されたパージ要求パラメー
タエントリnを、共用MS7010のHSA内CPUA
A7120から取り出す。
【0300】ステップ1008 : CPUB7030
及びCPUC7040は、ステップ1007でCPUA
A7120から取り出したパージ要求パラメータエント
リn内のL1SDアドレスを用いて、L1SDアドレス
と同じVMIDレジスタ(図13のVMIDレジスタ4
40)のSDアドレスエントリ(図13の442)が存
在するか否かをサーチし、もし存在すれば対応するVM
IDエントリ(図13の441)の内容を目的とするV
MIDとして選択する。
【0301】ステップ1009 : CPUB7030
及びCPUC7040は、ステップ1008で選択した
VMIDを用いて、TLB部分パージ処理を行う。本ス
テップの実行によって、パージ要求パラメータエントリ
n内の絶対アドレスフィールドで示されたレベル1のV
MCP211に属する絶対アドレスを持つTLBエント
リがパージされる。
【0302】ステップ1010 : CPUB7030
及びCPUC7040は、ステップ1008と同様に、
共用MS7010のHSA内CPUAA7120から取
り出したパージ要求パラメータエントリn内のL2SD
アドレスを用いて、L2SDアドレスと同じVMIDレ
ジスタ(図13の440)のSDアドレスエントリ(図
13の442)が存在するか否かをサーチし、もし存在
すれば対応するVMIDエントリ(図13の441)の
内容を目的とするVMIDとして選択する。
【0303】ステップ1011 : CPUB7030
及びCPUC7040は、ステップ1010で選択した
VMIDを用いて、TLB部分パージ処理を行う。本ス
テップの実行によって、パージ要求パラメータエントリ
n内の絶対アドレスフィールドで示されたレベル2のV
MCP231に属する絶対アドレスを持つTLBエント
リがパージされる。
【0304】ステップ1012 : CPUB7030
及びCPUC7040は、ステップ1008と同様に、
共用MS7010のHSA内CPUAA7120から取
り出したパージ要求パラメータエントリn内のシャドウ
SDアドレスを用いて、シャドウSDアドレスと同じV
MIDレジスタ(図13の440)のSDアドレスエン
トリ(図13の442)が存在するか否かをサーチし、
もし存在すれば対応するVMIDエントリ(図13の4
41)の内容を目的とするVMIDとして選択する。
【0305】ステップ1013 : CPUB7030
及びCPUC7040は、ステップ1012で選択した
VMIDを用いて、TLB部分パージ処理を行う。本ス
テップの実行によって、パージ要求パラメータエントリ
n内の絶対アドレスフィールドで示されたレベル3のO
S251に属する絶対アドレスを持つTLBエントリが
パージされる。
【0306】ステップ1014 : CPUB7030
及びCPUC7040は、パージ要求パラメータの数を
格納している自CPU内のRCPレジスタから“1”を
減ずる。その後、ステップ1005に進み、TLB部分
パージ処理を繰り返す。
【0307】ステップ1015 : CPUA7020
から指定された動作の実行を完了したので、CPUB7
030及びCPUC7040は、動作終了信号を信号線
76000を介してCPUA7020に送出する。
【0308】図8および図9は、マルチプロセッサ構成
において図11に示すように構成された仮想計算機シス
テムが動作する場合の、レベル1のVMCP211,レ
ベル2のVMCP231及びレベル3のゲストOS25
1の制御の流れを示すフローチャートである。
【0309】ステップ1101 : レベル1のVMC
P211のVM上でレベル3のゲストOS251を走行
させる事前処理として、レベル1のVMCP211は、
レベル2のVMCP231を起動する準備としてSIE
命令のオペランドであるL1SDを設定する。
【0310】ステップ1102 : レベル1のVMC
P211は、ステップ1101で設定されたL1SDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル2のVMCP231520
を起動する。この時点から制御は、レベル1のVMCP
211からレベル2のVMCP231に移る。
【0311】ステップ1103 : レベル1のVMC
P211のVM上でレベル2のVMCP231が動作す
る。レベル2のVMCP231のVM上でレベル3のO
S251を走行させる事前処理として、レベル2のVM
CP231は、レベル3のOS251を起動する準備と
してSIE命令のオペランドであるL2SDを設定す
る。
【0312】ステップ1104 : レベル2のVMC
P231は、ステップ1103で設定されたL2SDを
オペランドとしてSIE命令を発行し、レベル2のVM
CP231のVM上でレベル3のOS251を起動しよ
うとする。
【0313】ステップ1105 : ステップ1104
で、レベル2のVMCP231のVM上でレベル3のO
S251を起動しようとして、レベル2のVMCP23
1がSIE命令を発行すると、このSIE命令は、命令
インターセプション要因を持っているので命令インター
セプションが発生し、制御はレベル2のVMCP231
からレベル1のVMCP211に戻される。
【0314】ステップ1106 : レベル1のVMC
P211は、制御が戻される要因となったインターセプ
ションコードを解析し、コード毎のインターセプション
処理を行う。この場合、インターセプションコードは、
命令インターセプションを示している。この処理では、
インターセプションコードが命令インターセプションを
指しているので、該命令のシミュレーションを行う。
【0315】本例では、SIE命令を実行しようとして
命令インターセプションが発生したのであるから、SI
E命令のシミュレーションを行う。レベル1のVMCP
211のVM上でレベル3のOS251を動作させる事
前処理として、レベル1のVMCP211は、レベル2
のVMCP231を起動するために用意されたL1SD
とレベル3のOS251を起動するために用意されたL
2SDとを合成し、レベル1のVMCP211のVM上
でレベル3のOS251を走行させるためのシャドーS
Dを設定する。
【0316】ステップ1107 : レベル1のVMC
P211は、ステップ1106で設定されたシャドーS
DをオペランドとしてSIE命令を発行し、レベル1の
VMCP211のVM上でレベル3のOS251を起動
する。これは、レベル2のVMCP231のVM上でレ
ベル3のOS251を起動するのと等価である。この時
点から制御は、レベル1のVMCP211からレベル3
のOS251に移る。
【0317】ステップ1108 : レベル2のVMC
P231のVM上でレベル3のOS251が動作する。
【0318】ステップ1109 : レベル2のVMC
P231のVM上でレベル3のOS251の実行中に、
該OS251からSSKE命令が発行される。この命令
は、MS201の主記憶キーを書き替える命令である。
【0319】ステップ1110 : ステップ1109
で、レベル3のOS251がSSKE命令を発行する
と、このSSKE命令は、命令インターセプション要因
を持っているので命令インターセプションが発生し、制
御はレベル3のOS251からレベル1のVMCP21
1に戻される。
【0320】ステップ1111 : レベル1のVMC
P211は、制御が戻される要因となったインターセプ
ションコードを解析し、コード毎のインターセプション
処理を行う。この場合、インターセプションコードは、
命令インターセプションを示している。この処理では、
インターセプションコードが命令インターセプションを
指しているので、レベル2のVMCP231に命令イン
ターセプションを通知する。
【0321】本例では、レベル2のVMCP231のV
M上のレベル3のOS251がSSKE命令を実行しよ
うとして命令インターセプションが発生したのであるか
ら、レベル2のVMCP231に命令インターセプショ
ンを通知する必要がある。
【0322】ステップ1112 : レベル1のVMC
P211は、レベル2のVMCP231に命令インター
セプションを通知するため、レベル1のVMCP211
のVM上でレベル2のVMCP231を走行させる事前
処理として、レベル2のVMCP231を起動するため
に用意されたL1SDとレベル3のOS251を起動す
るために用意されたシャドウSDとを合成し、レベル2
のVMCP231を起動するためのL1SDを設定す
る。このL1SDの設定に際し、本命令インターセプシ
ョンは、レベル3のOS251がSSKE命令を実行し
ようとして命令インターセプションが発生したのである
から、L1SD内に、L1SDアドレス,L2SDアド
レス及びシャドーSDアドレスをパラメータとして格納
し、レベル2のVMCP231が発行するであろうSS
KE命令によるインターセプションを抑止するために、
レベル2のSSKE命令直接実行フラグを“1”にセッ
トする。
【0323】ステップ1113 : レベル1のVMC
P211は、ステップ1112で設定されたL1SDを
オペランドとしてSIE命令を発行し、レベル1のVM
CP211のVM上でレベル2のVMCP231を起動
する。この時のL1SDには、命令インターセプション
が発生した旨を示すパラメータ及びステップ1112で
作成されたパラメータ類が格納され、更に、L1SD内
の命令アドレスフィールドはレベル2のVMCP231
が発行したSIE命令の次の命令のアドレスが格納され
る。
【0324】この時点から制御は、レベル1のVMCP
211からレベル2のVMCP231に移る。
【0325】ステップ1114 : レベル2のVMC
P231は、制御がレベル1のVMCP211510か
ら通知されたインターセプションコードを解析し、コー
ド毎のインターセプション処理を行う。この場合、イン
ターセプションコードは、命令インターセプションを示
しているので、該命令のシミュレーションを行う。
【0326】本例では、SSKE命令を実行しようとし
て命令インターセプションが発生したのであるから、S
SKE命令のシミュレーションを行う。
【0327】ステップ1115 : レベル2のVMC
P231上でSSKE命令のシミュレーション処理が実
行される。SSKE命令のシミュレーション処理の一環
としてSSKE命令が発行される。
【0328】このSSKE命令のシミュレーション処理
の一環として発行されるSSKE命令は、命令インター
セプション要因を持っているが、L1SD内のレベル2
のSSKE命令直接実行フラグが“1”にセットされて
いるのでインターセプションは抑止され、制御はレベル
2のVMCP231からレベル1のVMCP211に戻
されず、ハードウェアによってそのまま実行される。
【0329】このSSKE命令の直接実行手順は、SS
KE命令を発行したCPUにおいては、図7のステップ
1004からステップ1014に示した一連の処理に該
当し、TLBの部分パージ要求を受け取った他CPUに
おいては図7のステップ1001からステップ1015
に示した一連の処理に該当し、TLBエントリのパージ
動作はSSKE命令の実行に同期して行われる。
【0330】ステップ1116 : レベル2のVMC
P231は、レベル3のOS251が発行したSSKE
命令のシミュレーション処理を完了したので、再度、レ
ベル3のOS251を起動する必要がある。そこで、レ
ベル2のVMCP231のVM上でレベル3のOS25
1を走行させる事前処理として、SIE命令のオペラン
ドであるL2SDを設定する。
【0331】ステップ1117 : レベル2のVMC
P231は、ステップ1116で設定されたL2SDを
オペランドとしてSIE命令を発行し、レベル2のVM
CP231のVM上でレベル3のOS251を起動しよ
うとする。
【0332】ステップ1118 : ステップ1117
で、レベル2のVMCP231のVM上でレベル3のO
S251を起動しようとして、レベル2のVMCP23
1がSIE命令を発行すると、このSIE命令は命令イ
ンターセプション要因を持っているので、命令インター
セプションが発生し、制御はレベル2のVMCP231
からレベル1のVMCP211に戻される。
【0333】ステップ1119 : レベル1のVMC
P211は、制御が戻される要因となったインターセプ
ションコードを解析し、コード毎のインターセプション
処理を行う。この場合、インターセプションコードは、
命令インターセプションを示している。
【0334】この処理では、インターセプションコード
が命令インターセプションを指しているので、該命令の
シミュレーションを行う。本例では、SIE命令を実行
しようとして命令インターセプションが発生したのであ
るから、SIE命令のシミュレーションを行う。レベル
1のVMCP211のVM上でレベル3のOS251を
走行させる事前処理として、レベル1のVMCP211
は、レベル2のVMCP231を起動するために用意さ
れたL1SDとレベル3のOS251を起動するために
用意されたL2SDとを合成し、レベル1のVMCP2
11のVM上でレベル3のOS251を走行させるため
のシャドーSDを設定する。
【0335】ステップ1120 : レベル1のVMC
P211は、ステップ1119で設定されたシャドーS
DをオペランドとしてSIE命令を発行し、レベル1の
VMCP211のVM上でレベル3のOS251を起動
する。これは、レベル2のVMCP231のVM上でレ
ベル3のOS251を起動するのと等価である。
【0336】この時点から制御は、レベル1のVMCP
211からレベル3のOS251に移る。
【0337】ステップ1121 : レベル2のVMC
P231のVM上でレベル3のOS251が動作する。
【0338】以上説明したように本実施例においては、
異なるVMIDを持つTLBエントリをパージするに当
たり、TLBエントリの操作が必要な命令のシミュレー
ション、すなわち、例えばレベル2のVMCP231上
でSSKE命令のシミュレーション処理を実行する時、
レベル1のVMCP211がSIE命令のオペランドで
あるL1SDをオペランドとしてSIE命令を発行し、
レベル1のVMCP211上のVMでレベル2のVMC
P231を起動する場合に、命令インターセプションが
レベル2のVMCP231のVM上のレベル3のOS2
51がSSKE命令を実行しようとして発生したことに
より、L1SD内のレベル2のSSKE命令直接実行フ
ラグを“1”にセットし、その後レベル2のVMCP2
31がSSKE命令のシミュレーション処理を開始し、
そこでSSKE命令を発行した時点でL1SD内のレベ
ル2のSSKE命令直接実行フラグが“1”であること
を条件として、命令インターセプションを抑止し、制御
をレベル2のVMCP231からレベル1のVMCP2
11に戻さずそのまま実行させる。このSSKE命令の
実行において、L1SD内のL1SDアドレス,L2S
Dアドレス及びシャドーSDアドレスに対応するVMI
Dの値を持つ自CPUのTLBエントリが部分パージさ
れ、更に、L1SD内のレベル2のSSKE命令直接実
行フラグが“1”であることにより、全ての他CPUの
L1SDアドレス,L2SDアドレス及びシャドーSD
アドレスに対応するVMIDの値を持つTLBエントリ
がパージされ、かつこのTLBエントリのパージ動作
は、SSKE命令の実行に同期して行われ、インターセ
プションを伴わない。
【0339】その結果、レベル1のVMCP211上
で、SSKE命令のシミュレーション処理を実行する場
合、構成されている全CPUのうち、ロック指示を出し
たCPUを除く全てのCPUに対し、実行中の処理を一
時中断させるロック指示を出す第1のロック処理を行
い、その後、SSKE命令のシミュレーション処理の一
環として、SSKE命令を発行し、このSSKE命令の
実行によって、現在走行中のCPUが保持しているVM
IDと一致する全CPUPのTLBエントリが部分パー
ジされ、更に、SSKE命令のシミュレーション処理の
一環として、PTLB命令を発行する第1のTLBパー
ジ処理を行い、このPTLB命令の実行によって、全て
のVMIDの値を持つTLBエントリをパージし、その
上、SSKE命令のシミュレーション処理の一環とし
て、ロック指示を出したCPUを除く全てのCPUに対
し、PTLB命令の実行の指示が出す第2のTLBパー
ジ処理を行い、全てのCPUにおいて、PTLB命令の
実行が完了すると、ロック指示を出したCPUを除く全
CPUに対し、処理の一時中断を解除するアンロック指
示を出す第2のロック処理を行い、ロック指示を出した
CPUを除く全てのCPUをアンロックするという、仮
想計算機システムの性能向上を阻害する大きな要因であ
った一連のソフトウェアによるロック処理及びTLBパ
ージ処理のオーバヘッドを除去することができ、格段に
性能を向上させ、かつ必要なエントリのみを高速にパー
ジすることができる。
【0340】なお、図7のステップ1006〜1014
を繰り返す代わりに、図1に示したワークレジスタを設
けることにより、1回の操作で必要なエントリをパージ
することができる。
【0341】
【発明の効果】以上説明したように、本発明において
は、いずれか1つの特定の仮想計算機が発行するアドレ
ス変換バッファのパージを伴う命令の実行に当たり、該
特定の仮想計算機の仮想計算機識別符号に加え、パージ
対象のアドレス変換バッファエントリを有する他の仮想
計算機の仮想計算機識別符号を前記レジスタに記憶させ
ておき、前記命令の実行により、前記特定の仮想計算機
の仮想計算機識別符号と一致する仮想計算機識別符号を
記憶したエントリをパージすると共に、前記他の仮想計
算機の仮想計算機識別符号と一致する仮想計算機識別符
号を記憶したエントリを並行してパージするようにした
ので、例えばレベル2のOSが発行したTLBをパージ
する命令を実行する際、レベル2のOS上でのPTLB
命令を直接実行させ、レベル1のOSが行う全てのTL
Bエントリに対するPTLB命令を用いたTLBパージ
操作を省き、レベル1のOSが行う全てのTLBエント
リに対するTLBパージによるTLBの使用効率の低下
等のオーバヘッドを除去することができる。
【0342】この結果、レベル1のOSによる前記操作
に要する処理時間、すなわちオーバヘッドを除去でき、
性能を向上させることができるうえ、必要なエントリの
みを高速にパージすることができる。
【0343】また、いずれか1つの特定の仮想計算機が
発行するアドレス変換バッファのパージを伴う命令の実
行に当たり、前記特定の仮想計算機を有する中央処理装
置からパージ対象のアドレス変換バッファエントリを有
する他の中央処理装置内の仮想計算機の仮想計算機識別
符号を第1および第2の通信手段を介して該他の中央処
理装置に送信しておき、前記命令の実行により、前記特
定の仮想計算機の仮想計算機識別符号と一致する仮想計
算機識別符号を記憶したエントリをパージするのと並行
して、前記他の中央処理装置内の仮想計算機の仮想計算
機識別符号と一致する仮想計算機識別符号を記憶したエ
ントリをパージするので、例えばレベル3のOSが発行
したTLBエントリをパージする必要のある命令を実行
する際、該命令の単独実行に加え、マルチプロセッサ構
成における全ての実CPUに対するロック操作やアンロ
ック操作を行うことが不要になる。
【0344】さらに、マルチプロセッサ構成における全
ての実CPUに対するTLB部分パージ要求とTLB部
分パージ完了報告に対し、実CPU間の1対複数の通信
を高速化したMPインタフェースを適用するので、VM
CPのオーバヘッドを除去でき、性能を向上させること
ができるうえ、必要なエントリのみを高速にパージする
ことができる。
【図面の簡単な説明】
【図1】本発明を実施するうえで必要となるアドレス変
換バッファと周辺回路の一実施例を示すブロック図であ
る。
【図2】アドレス変換バッファパージ方法の第1の実施
例の詳細を示したフローチャートである。
【図3】図2の続きを示すフローチャートである。
【図4】マルチプロセッサ構成の仮想計算機システムの
一実施例を示す構成図である。
【図5】図4における中央処理装置間の情報授受方法を
示すフローチャートである。
【図6】図4における情報通信手段であるMPインタフ
ェース内のパラメータ例を示す説明図である。
【図7】図4の構成におけるアドレス変換バッファパー
ジ方法の実施例を詳細に示すフローチャートである。
【図8】図4の構成におけるアドレス変換バッファパー
ジ方法の実施例を詳細に示すフローチャートである。
【図9】図8の続きを示すフローチャートである。
【図10】仮想計算機に対する実プロセッサの共用の構
成の概念を示す図である。
【図11】実プロセッサ上にレベル1の仮想計算機制御
プログラムとレベル2の仮想計算機制御プログラムとを
搭載し、その上に仮想計算機を生成した仮想計算機シス
テムの構成の概念を示す図である。
【図12】図11の構成におけるレベル1の仮想計算機
制御プログラムとレベル2の仮想計算機制御プログラム
及びレベル3ののゲストオペレーティングシステムの制
御の流れの概念を示したフローチャートである。
【図13】従来のアドレス変換バッファと周辺回路の構
成を示すブロック図である。
【図14】複数の仮想計算機を階層構造に構築した場合
の主記憶装置の領域割当ての例を示した図である。
【図15】従来のアドレス変換バッファパージ方法の処
理手順の詳細を示したフローチャートである。
【図16】図15の続きを示すフローチャートである。
【図17】マルチプロセッサ構成における従来のアドレ
ス変換バッファパージ方法の処理手順の詳細を示したフ
ローチャートである。
【図18】図17の続きを示すフローチャートである。
【符号の説明】
101,201…主記憶装置、102、202…実CP
U、111…仮想計算機制御プログラム、121,12
2,123,221,241,242…論理CPU(仮
想計算機)、111,211,231…仮想計算機制御
プログラム、251,252…ゲストオペレーティング
システム、410…アドレス変換バッファ、411…エ
ントリ有効フラグ、412…VMIDエントリ、413
…STDエントリ、414…論理アドレスエントリ、4
15…絶対アドレスエントリ、416…主記憶キーエン
トリ、420,470…セレクタ、430…出力レジス
タ、440…VMIDレジスタ、441…VMIDエン
トリ、442…SDアドレスエントリ、450,45
1,452…比較器、460…ANDゲート、480…
アドレス変換制御部、710…アドレス変換バッファ、
711…エントリ有効フラグ、712…VMIDエント
リ、713…STDエントリ、714…論理アドレスエ
ントリ、715…絶対アドレスエントリ、716…主記
憶キーエントリ、720,770…セレクタ、730…
出力レジスタ、740…VMIDレジスタ、741…V
MIDエントリ、742…SDアドレスエントリ、75
0,751,752,75B,75C…比較器、760
…ANDゲート、780…アドレス変換制御部、790
…ORゲート、79A,79B…ワークレジスタ、70
10…共用MS、7020,7030,7040…CP
U、7500,7510,7520,7600…信号
線。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 天野 英昭 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数の仮想計算機を備えた1台以上の中
    央処理装置と、各仮想計算機のそれぞれから共用される
    主記憶装置と、各仮想計算機が過去に主記憶装置をアク
    セスした時の論理アドレスと該論理アドレスに対応する
    絶対アドレスおよびアクセス元の仮想計算機に割り当て
    られた仮想計算機識別符号を1組にして複数組記憶する
    複数のエントリを備え、各仮想計算機が主記憶装置をア
    クセスする時に前記エントリを参照して論理アドレスを
    絶対アドレスに変換するアドレス変換バッファを備えた
    仮想計算機システムにおいて、 1つ以上の仮想計算機識別符号を記憶するレジスタを設
    け、いずれか1つの特定の仮想計算機が発行するアドレ
    ス変換バッファのパージを伴う命令の実行に当たり、該
    命令を実行する特定の仮想計算機の仮想計算機識別符号
    に加え、パージ対象のアドレス変換バッファエントリを
    有する他の仮想計算機の仮想計算機識別符号を前記レジ
    スタに記憶させておき、前記命令の実行により、前記特
    定の仮想計算機の仮想計算機識別符号と一致する仮想計
    算機識別符号を記憶したエントリをパージすると共に、
    前記他の仮想計算機の仮想計算機識別符号と一致する仮
    想計算機識別符号を記憶したエントリを並行してパージ
    することを特徴とする仮想計算機システムのアドレス変
    換バッファパージ方法。
  2. 【請求項2】 複数の仮想計算機を備えた2台以上の中
    央処理装置と、各仮想計算機のそれぞれから共用される
    主記憶装置と、各仮想計算機が過去に主記憶装置をアク
    セスした時の論理アドレスと該論理アドレスに対応する
    絶対アドレスおよびアクセス元の仮想計算機に割り当て
    られた仮想計算機識別符号を1組にして複数組記憶する
    複数のエントリを備え、各仮想計算機が主記憶装置をア
    クセスする時に前記エントリを参照して論理アドレスを
    絶対アドレスに変換するアドレス変換バッファを備えた
    仮想計算機システムにおいて、 前記中央処理装置間で直接に情報の授受を行う第1の通
    信手段と、前記主記憶装置内のハードウェア使用領域を
    経由して中央処理装置間の情報の授受を行う第2の通信
    手段とを設け、いずれか1つの特定の仮想計算機が発行
    するアドレス変換バッファのパージを伴う命令の実行に
    当たり、前記特定の仮想計算機を有する中央処理装置か
    らパージ対象のアドレス変換バッファエントリを有する
    他の中央処理装置内の仮想計算機の仮想計算機識別符号
    を前記第1および第2の通信手段を介して該他の中央処
    理装置に送信しておき、前記命令の実行により、前記特
    定の仮想計算機の仮想計算機識別符号と一致する仮想計
    算機識別符号を記憶したエントリをパージするのと並行
    して、前記他の中央処理装置内の仮想計算機の仮想計算
    機識別符号と一致する仮想計算機識別符号を記憶したエ
    ントリをパージすることを特徴とする仮想計算機システ
    ムのアドレス変換バッファパージ方法。
JP5231946A 1993-09-17 1993-09-17 仮想計算機システムのアドレス変換バッファパージ方法 Pending JPH0784883A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5231946A JPH0784883A (ja) 1993-09-17 1993-09-17 仮想計算機システムのアドレス変換バッファパージ方法
US08/306,983 US5574878A (en) 1993-09-17 1994-09-16 Method of parallel purging of translation lookaside buffer in a multilevel virtual machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5231946A JPH0784883A (ja) 1993-09-17 1993-09-17 仮想計算機システムのアドレス変換バッファパージ方法

Publications (1)

Publication Number Publication Date
JPH0784883A true JPH0784883A (ja) 1995-03-31

Family

ID=16931546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5231946A Pending JPH0784883A (ja) 1993-09-17 1993-09-17 仮想計算機システムのアドレス変換バッファパージ方法

Country Status (2)

Country Link
US (1) US5574878A (ja)
JP (1) JPH0784883A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508598A (ja) * 2004-07-30 2008-03-21 インテル コーポレイション アーキテクチャイベントの間のプロセッサリソースの保持
JP2010102513A (ja) * 2008-10-23 2010-05-06 Ntt Docomo Inc 情報処理装置およびメモリ管理方法

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2900767B2 (ja) * 1993-09-20 1999-06-02 株式会社日立製作所 仮想計算機システムの仮想計算機走行時間間隔制御方式
US6026471A (en) * 1996-11-19 2000-02-15 International Business Machines Corporation Anticipating cache memory loader and method
US5906001A (en) * 1996-12-19 1999-05-18 Intel Corporation Method and apparatus for performing TLB shutdown operations in a multiprocessor system without invoking interrup handler routines
US6668314B1 (en) * 1997-06-24 2003-12-23 Hewlett-Packard Development Company, L.P. Virtual memory translation control by TLB purge monitoring
WO1999057641A1 (en) * 1998-05-01 1999-11-11 Powerquest Corporation Manipulation of virtual and live computer storage device partitions
US6490671B1 (en) * 1999-05-28 2002-12-03 Oracle Corporation System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system
US6263403B1 (en) * 1999-10-31 2001-07-17 Hewlett-Packard Company Method and apparatus for linking translation lookaside buffer purge operations to cache coherency transactions
US6604185B1 (en) * 2000-07-20 2003-08-05 Silicon Graphics, Inc. Distribution of address-translation-purge requests to multiple processors
US7146607B2 (en) * 2002-09-17 2006-12-05 International Business Machines Corporation Method and system for transparent dynamic optimization in a multiprocessing environment
US9043194B2 (en) * 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency
US7953588B2 (en) * 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US7496494B2 (en) * 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US8108843B2 (en) 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
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
US7617378B2 (en) * 2003-04-28 2009-11-10 International Business Machines Corporation Multiprocessor system with retry-less TLBI protocol
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
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
US7281116B2 (en) * 2004-07-30 2007-10-09 Hewlett-Packard Development Company, L.P. Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes
US7734892B1 (en) * 2005-03-31 2010-06-08 Rozas Guillermo J Memory protection and address translation hardware support for virtual machines
US7679957B2 (en) * 2005-03-31 2010-03-16 Virage Logic Corporation Redundant non-volatile memory cell
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
CN101449256B (zh) 2006-04-12 2013-12-25 索夫特机械公司 对载明并行和依赖运算的指令矩阵进行处理的装置和方法
EP2122461A4 (en) 2006-11-14 2010-03-24 Soft Machines Inc DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES
US8112174B2 (en) * 2008-02-25 2012-02-07 International Business Machines Corporation Processor, method and computer program product for fast selective invalidation of translation lookaside buffer
US8140834B2 (en) 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
EP2616928B1 (en) 2010-09-17 2016-11-02 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
US9304867B2 (en) 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US8688660B1 (en) * 2010-09-28 2014-04-01 Amazon Technologies, Inc. System and method for providing enhancements of block-level storage
EP2689327B1 (en) 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
KR101636602B1 (ko) 2011-03-25 2016-07-05 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
KR101620676B1 (ko) 2011-03-25 2016-05-23 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
US9442772B2 (en) 2011-05-20 2016-09-13 Soft Machines Inc. Global and local interconnect structure comprising routing matrix to support the execution of instruction sequences by a plurality of engines
CN107729267B (zh) 2011-05-20 2022-01-25 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
US9817733B2 (en) 2011-10-05 2017-11-14 International Business Machines Corporation Resource recovery for checkpoint-based high-availability in a virtualized environment
KR101842550B1 (ko) 2011-11-22 2018-03-28 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9110600B1 (en) 2012-03-19 2015-08-18 Amazon Technologies, Inc. Triggered data shelving to a different storage system and storage deallocation
US9804993B1 (en) 2012-05-07 2017-10-31 Amazon Technologies, Inc. Data volume placement techniques
US9503517B1 (en) 2012-05-07 2016-11-22 Amazon Technologies, Inc. Data volume placement techniques
US9246996B1 (en) 2012-05-07 2016-01-26 Amazon Technologies, Inc. Data volume placement techniques
US11379354B1 (en) 2012-05-07 2022-07-05 Amazon Technologies, Inc. Data volume placement techniques
US9823840B1 (en) 2012-05-07 2017-11-21 Amazon Technologies, Inc. Data volume placement techniques
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
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
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
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
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
KR102063656B1 (ko) 2013-03-15 2020-01-09 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
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
CN105247484B (zh) 2013-03-15 2021-02-23 英特尔公司 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
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
US9563385B1 (en) 2013-09-16 2017-02-07 Amazon Technologies, Inc. Profile-guided data preloading for virtualized resources
US9619387B2 (en) 2014-02-21 2017-04-11 Arm Limited Invalidating stored address translations
US10250673B1 (en) 2014-03-14 2019-04-02 Amazon Technologies, Inc. Storage workload management using redirected messages
US10715460B2 (en) 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US9892058B2 (en) * 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate 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
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging 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
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
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US20180018283A1 (en) * 2016-07-18 2018-01-18 International Business Machines Corporation Selective purging of guest entries of structures associated with address translation
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
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
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying 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
US10970118B2 (en) 2017-08-02 2021-04-06 Advanced Micro Devices, Inc. Shareable FPGA compute engine
US10452296B1 (en) 2018-03-23 2019-10-22 Amazon Technologies, Inc. Accelerated volumes
US11023157B2 (en) 2018-04-30 2021-06-01 Amazon Technologies, Inc. Intermediary duplication to facilitate copy requests in distributed storage systems
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US10459655B1 (en) 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
US10768835B1 (en) 2018-06-27 2020-09-08 Amazon Technologies, Inc. Opportunistic storage service
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
US10956442B1 (en) 2018-07-30 2021-03-23 Amazon Technologies, Inc. Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
US10931750B1 (en) 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
US11068192B1 (en) 2019-03-26 2021-07-20 Amazon Technologies, Inc. Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
US10983719B1 (en) 2019-03-28 2021-04-20 Amazon Technologies, Inc. Replica pools to support volume replication in distributed storage systems
US11422812B2 (en) 2019-06-25 2022-08-23 Advanced Micro Devices, Inc. Method and apparatus for efficient programmable instructions in computer systems
US11262918B1 (en) 2020-09-30 2022-03-01 Amazon Technologies, Inc. Data storage system with uneven drive wear reduction
US12380000B1 (en) 2020-12-01 2025-08-05 Amazon Technologies, Inc. Database table restoration for data with skewed distribution
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes
US12223191B1 (en) 2023-09-29 2025-02-11 Amazon Technologies, Inc. Management of operating system software using read-only multi-attach block volumes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51115737A (en) * 1975-03-24 1976-10-12 Hitachi Ltd Adress conversion versus control system
JPS60254346A (ja) * 1984-05-31 1985-12-16 Toshiba Corp マルチプロセツサシステム

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164918B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
US9164901B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
JP2011181094A (ja) * 2004-07-30 2011-09-15 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
US10740249B2 (en) 2004-07-30 2020-08-11 Intel Corporation Maintaining processor resources during architectural events
US8543793B2 (en) 2004-07-30 2013-09-24 Intel Corporation Maintaining processor resources during architectural events
US8788790B2 (en) 2004-07-30 2014-07-22 Intel Corporation Maintaining processor resources during architectural events
US10303620B2 (en) 2004-07-30 2019-05-28 Intel Corporation Maintaining processor resources during architectural events
US9152561B2 (en) 2004-07-30 2015-10-06 Intel Corporation Maintaining processor resources during architectural events
US8806172B2 (en) 2004-07-30 2014-08-12 Intel Corporation Maintaining processor resources during architectural evens
JP2008508598A (ja) * 2004-07-30 2008-03-21 インテル コーポレイション アーキテクチャイベントの間のプロセッサリソースの保持
US9086958B2 (en) 2004-07-30 2015-07-21 Intel Corporation Maintaining processor resources during architectural events
US9507730B2 (en) 2004-07-30 2016-11-29 Intel Corporation Maintaining processor resources during architectural events
US9996475B2 (en) 2004-07-30 2018-06-12 Intel Corporation Maintaining processor resources during architectural events
JP2010102513A (ja) * 2008-10-23 2010-05-06 Ntt Docomo Inc 情報処理装置およびメモリ管理方法
US8234708B2 (en) 2008-10-23 2012-07-31 Ntt Docomo, Inc. Information processing device and memory management method

Also Published As

Publication number Publication date
US5574878A (en) 1996-11-12

Similar Documents

Publication Publication Date Title
JPH0784883A (ja) 仮想計算機システムのアドレス変換バッファパージ方法
US5553291A (en) Virtual machine control method and virtual machine system
JP2633488B2 (ja) 並列処理を実行する方法およびシステム
KR100800340B1 (ko) 어드레스에 기반한 프로세싱 제한 블로킹 방법 및 시스템
US10223300B2 (en) Set buffer state instruction
US8380907B2 (en) Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US7530067B2 (en) Filtering processor requests based on identifiers
US8572624B2 (en) Providing multiple quiesce state machines in a computing environment
US8032716B2 (en) System, method and computer program product for providing a new quiesce state
US8332614B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
JPH0792761B2 (ja) 仮想計算機システムの入出力制御方法
US8738890B2 (en) Coupled symbiotic operating system
US20040230768A1 (en) Blocking processing restrictions based on page indices
JPH06231043A (ja) 仮想記憶システムにおけるデータ転送装置及びその方法
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
WO1993013482A1 (en) Computer system with two levels of guests
US20090216995A1 (en) System, method and computer program product for providing quiesce filtering for shared memory
EP0348053A2 (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
EP0619899B1 (en) Software control of hardware interruptions
JPH10301795A (ja) 仮想計算機システム
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式
JPS6336012B2 (ja)
JPH07134658A (ja) 仮想計算機システムのアドレス変換バッファ制御方式
JPS63286944A (ja) アドレス変換バツフア無効化方式
JPH06242975A (ja) 多重情報処理システムの仮想計算機ディスパッチ方式