JPS6122825B2 - - Google Patents

Info

Publication number
JPS6122825B2
JPS6122825B2 JP57098587A JP9858782A JPS6122825B2 JP S6122825 B2 JPS6122825 B2 JP S6122825B2 JP 57098587 A JP57098587 A JP 57098587A JP 9858782 A JP9858782 A JP 9858782A JP S6122825 B2 JPS6122825 B2 JP S6122825B2
Authority
JP
Japan
Prior art keywords
guest
address
host
tlb
level
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
Application number
JP57098587A
Other languages
English (en)
Other versions
JPS57212680A (en
Inventor
Jakuson Burionzu Saado Robaato
Osukaa Kaarii Saado Toomasu
Haaman Gamu Piitaa
Roido Makugiruburei Buruusu
Ruisu Richaadoson Eseru
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 JPS57212680A publication Critical patent/JPS57212680A/ja
Publication of JPS6122825B2 publication Critical patent/JPS6122825B2/ja
Granted legal-status Critical Current

Links

Classifications

    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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
    • 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/45566Nested virtual machines
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
中央プロセツサに設けられた変換索引緩衡機構
TLBは、仮想計算機VM環境の第2レベルに対す
るシヤドウ・テーブルを排除するために、2レベ
ル・アドレス変換の結果を受取る。各TLBエン
トリは、中央プロセツサの命令実行エレメント
IEによつて変換のために送られたアドレスがゲ
スト又はホスト要求のどちらであるかを指示する
とともに、ゲスト要求についてはこれが実又は仮
想アドレスのどちらであるかを指示する。2レベ
ル・アドレス変換の中間結果は、TLBへのロー
ドを禁示される。TLB中のゲスト・エントリ
は、TLBの任意のホスト・エントリに妨害を与
えることなく、TLBから除去される。中央プロ
セツサの加速(accelerated)ゲスト・モードは
1レベル・アドレス変換を必要とするにすぎない
ので、これは加速ゲスト要求の各々を変換するよ
うに動的アドレス変換DAT加算器を強制する。
これに対し、非−加速ゲスト要求はマイクロコー
ドによつて変換される。また、性能低下を伴うこ
となく優先ゲスト・アドレスを検査するために、
限界検査レジスタが設けられる。 〔発明の分野〕 本発明は多重プログラム可能な計算機システム
において1つ以上のゲスト・アーキテクチヤを効
率的にエミユレートすることに係り、更に詳細に
説明すればかかる計算機システムが複数のアーキ
テクチヤを使用して複数レベルのオペレーテイン
グ・システムを実行している場合の性能を改善す
ることに係る。計算機システムはその固有
(native)アーキテクチヤを使用するときプログ
ラムを最も効率的に実行するように設計されてい
るが、本発明はかかる固有アーキテクチヤと同じ
又は異なつてもよいゲスト計算機のアーキテクチ
ヤを使用するプログラムを、エミユレーシヨン・
サポートによらないで効率的に実行することを可
能にする。 本発明が性能を改善せんとする仮想計算機(以
下VMと略す)システムは複数レベルのアーキテ
クチヤを使用し、その各レベルは動的アドレス変
換(以下DATと略す)を伴なう仮想アドレツシ
ングを使用することができるので、ユーザの記憶
要求は複数レベルのアドレス変換を必要とする。 〔先行技術〕 現存する計算機アーキテクチヤ(たとえば、
IBMシステム/370、システム/360,7090,1401
等)の各々は長年にわたる投資の結果として大量
のプログラム・ライブラリを有する。一方、所与
の計算機システムは、固有アーキテクチヤと呼ば
れるそのハードウエア・アーキテクチヤを使用す
るとき最大の性能を発揮するように設計されてい
る。従つて、非ー固有アーキテクチヤをエミユレ
ートするための手段を含む通常の計算機システム
は、この非ー固有アーキテクチヤのために書かれ
たプログラムを、固有アーキテクチヤでランする
プログラムと同等の効率でランさせることができ
ない。それにも拘わらず、多くの計算機システム
には所与の非ー固有アーキテクチヤを必要とする
プログラムを実行するためにエミユレート手段が
設けられたが、これは多くの既存プログラムを特
定計算機システムの固有アーキテクチヤに合わせ
るように再プログラムすることを避けるためであ
つた。 このような状況は、同一のハードウエア・アー
キテクチヤでランするように設計された種々のオ
ペレーテイング・システム(たとえば、VM/
370と呼ばれる仮想計算機機能/370、MVS/370
と呼ばれる多重仮想記憶機能/370,DOS/370
と呼ばれるデイスク・オペレーテイング・システ
ム/370等)が出現するに及んで、一層複雑にな
つてきた。というのは、複数のプログラムが同一
のハードウエア・アーキテクチヤ(たとえば、同
一の機械命令セツト及び資源によつて規定される
アーキテクチヤ)の下で動作するとしても、これ
らのプログラムが異なるオペレーテイング・シス
テムの下で動作するように書かれている場合に
は、プログラム間の互換性が失われることになる
からである。1例をあげると、DOS/370の下で
動作するように書かれたプログラムはMVS/370
の下では必ずしも動作可能でなく、このことは両
プログラムがシステム/370の機械命令を使用す
るということによつては左右されないのである。
一般に、適用業務プログラムが特定のオペレーテ
イング・システムによつて提供される特殊な制御
プログラミング機能(たとえば、特殊なマクロ命
令、ジヨブ制御言語のステートメント等)に依存
するのはプログラム設計の負担を軽減するためで
あるが、かかる制御プログラミング機能は適用業
務プログラムを特定のオペレーテイング・システ
ムに依存させることになる。 このような状況をさらに複雑にする要因には、
高価な計算機システムを多数のユーザで共有する
にあたり、あたかも各ユーザが計算機システムの
すべての資源(又はその大部分)を占有している
かのようにこれを使いたい、という経済的要請が
ある。この問題を解決した既存の多重プログラミ
ング・システムには、たとえばタイム・シエアリ
ング機能を使用した前掲のMVS/370及びVM/
370がある。既存のVM/370はそのソフトウエア
によつて複数レベルのアーキテクチヤをエミユレ
ートることができるので、そのユーザはシステ
ム/370又はシステム/360のハードウエア・アー
キテクチヤを使用する如き種々のオペレーテイン
グ・システム(たとえば、MVS,DOS,VM等)
のために書かれたプログラムを同時的に且つ効率
的に実行することができる。 このような状況を一層複雑にする他の要因に
は、システム/370の如きハードウエア・アーキ
テクチヤに見出されるDAT機構がある。これは
仮想アドレツシング・アーキテクチヤを提供する
ことにより、非−仮想計算機(たとえば、DAT
機構を備えていないシステム/360又はシステ
ム/370)で不可欠であつた実記憶域の使用をユ
ーザが制御するという必要性を取除き、ユーザに
よるプログラムの作成を容易ならしめるというも
のである。 他の問題は、2レベルの仮想アドレツシング・
アーキテクチヤが使用される場合に生ずる。この
ことが生ずるのは、たとえば第2レベルのシステ
ム/370アーキテクチヤでランしているような1
つのオペレーテイング・システム(たとえば、
MVS/370)の下で所与のユーザ・プログラムを
実行することをVM/370が許容し、そしてこの
第2レベルのシステム/370アーキテクチヤが他
のオペレーテイング・システム(たとえば、
VM/370制御プログラム)をランさせているよ
うな第1レベルのシステム/370アーキテクチヤ
の下でエミユレートされており、しかもこれらの
オペレーテイング・システムが主記憶中の要求デ
ータをアクセスするために当該ユーザ・プログラ
ムによつて要求された各アドレスの2レベル・ア
ドレス変換を行うようにDAT動作を必要とする
場合、たとえば拡張制御モードの形式を有するプ
ログラム・ステータス・ワード(以下PSWと略
す)の変換モード・ビツト5をオンしているよう
な場合である。 このような2レベル・アドレス変換は、当該ユ
ーザ・プログラムを1レベルのオペレーテイン
グ・システムの下でランさせる場合に比較して、
変換オーバヘツドを増大させる。たとえば、1つ
の要求にいて2レベル・アドレス変換を行うには
主記憶中のセグメント・テーブル及びページ・テ
ーブルを8回アクセスすることを必要としうる
が、1レベル・アドレス変換は2回の主記憶アク
セス(即ち、1つのセグメント・テーブル・エン
トリ及び1つのページ・テーブル・エントリ)を
必要とするにすぎない。 VM/370がランされるシステム/370のハード
ウエアは2レベル・アドレス変換を行わないの
で、第2レベルのオペレーテイング・システムが
かかるアドレス変換を必要とするときはソフトウ
エアによつてシヤドウ・テーブル(変換テーブ
ル)が構成される。これらのシヤドウ・テーブル
が与えられると、システム/370のハードウエア
はセグメント・テーブル及びページ・テーブルを
参照する通常の変換プロセスを使用することによ
つて、第2レベルの仮想アドレスを変換すること
ができる。もしシヤドウ・テーブルでページ不在
又はセグメント不在が生ずるならば、ソフトウエ
アは通常の変換例外によつてこの状態を知らさ
れ、そして2レベル・アドレス変換を遂行するこ
とにより正しいシヤドウ・テーブル・エントリを
挿入する。このシヤドウ・テーブルは、前述の如
きアドレス変換を必要とする各ユーザごとに1つ
ずつ設けられる。 2レベル・アドレス変換を行うためにVM/
370制御プログラムによつてシステム/370の
DAT機構を使用することは、IBM社から発行さ
れた刊行物である“VM/370 Data Areas and
Control Block Logic”,Form No.SY22−0884及
び“VM/370:System Logic and Problem
Determination Guide,Volume 1 (CP
Component)”,Form No.SY20−0886にそれぞれ
記述されている。 各シヤドウ・テーブルは、通常の形式を有する
セグメント・テーブル及びページ・テーブルを使
用する。各ユーザのシヤドウ・テーブルはゲスト
による2レベル・アドレス変換の各結果(即ち、
要求された仮想アドレスに対応するページ枠の絶
対アドレス)を受取るので、このエントリがシヤ
ドウ・テーブルから除去されない限り、主記憶に
置かれた同一ページ枠に対する同一ユーザによる
次の要求が1レベル・アドレス変換だけで得られ
ることを可能にする。各ユーザのシヤドウ・テー
ブルは、主記憶に置かれた1つのシヤドウ・セグ
メント・テーブル及び1つ以上のシヤドウ・ペー
ジ・テーブルを含む。これらのシヤドウ・テーブ
ルは変換索引緩衡機構(以下TLBと略す)のよ
うに使用され、この意味でソフトウエアTLBと
呼ばれることもある。各ユーザの要求はまずその
シヤドウ・テーブルに対して行われる。というの
は、もしこの要求が該当するシヤドウ・テーブル
で見出されるならば、要求されたデータに対する
主記憶アドレスを得るために2回の主記憶アクゼ
スが必要となるにすぎないからである。云いかえ
れば、当該ユーザによつて要求されたアドレスが
そのシヤドウ・テーブルに見出されない場合にの
み、ソフトウエアにより2レベル・アドレス変換
を行つて、その変換結果を後の使用のために該当
するシヤドウ・テーブル・エントリへ置くことが
必要となるのである。 従つて、シヤドウ・テーブルは所与のページ枠
のアドレスがそのエントリから除去されない限
り、該アドレスに対する第2及びそれ以後の要求
について主記憶アクセスの回数を8回から2回へ
減少させることができる。シヤドウ・テーブル
は、大型の計算機システムに見出されるTLBの
実質的な拡張部である。前述のソフトウエア
TLBと区別するためにハードウエアTLBとも呼
ばれる後者のTLBは、同一ページ枠に対する追
加的な要求アドレスを受取る場合には、主記憶ア
クセスを全く必要としない。しかしながら、従来
のTLBは中央プロセツサにあるDAT機構によつ
て与えられるような1レベル・アドレス変換値を
保持しうるにすぎない。かくて、1レベル・アド
レス変換によつてシヤドウ・テーブル中に見出さ
れた要求がTLBに置かれると、所与のページ枠
に対する第3の要求は主記憶アクセスを行うこと
なしにその変換アドレスをTLBから得ることが
できる筈である。しかしながら、先行する幾つか
の主記憶アクセス(たとえば、2レベル・アドレ
ス変換による8回の主記憶アクセス及びシヤド
ウ・テーブルの1レベル・アドレス変換による2
回の主記憶アクセス)に応じて複数のエントリが
TLBに置かれる場合、これらのエントリが将来
使用される可能性が小さいにも拘わらず、将来使
用される可能性が大きい他のTLBエントリが破
壊されるという望ましくない事態を生ずることが
ある。 VM/370では、ゲストの主記憶に置かれた任
意のページ枠が当該ゲストによつて無効化される
ときは、ユーザのシヤドウ・テーブルがしばしば
除去される。シヤドウ・テーブル中でページ・テ
ーブル・エントリの選択的な無効化を行なわない
理由は、そうするためにはすべてのゲスト・ペー
ジ・テーブルを探索することにより主記憶から除
去されつつある各ページを特定する必要があり、
従つてすべてのシヤドウ・ページ・テーブルを除
去する場合に比較してソフトウエアのオーバヘツ
ドが著しく大きくなるためである。かくて、
VM/370ではすべてのシヤドウ・テーブルが比
較的高い頻度で除去されるが、このようにすると
除去された多くのエントリを再び復元することが
要求される場合には、2レベル・アドレス変換の
オーバーヘツドが追加されることになる。 VM/370によつて提供される多様なサービス
はユーザにとつては魅力的であり、特にVM/
370で内部的に行われている2レベル・アドレス
変換を知る必要がないユーザについてはそのこと
があてはまる。VM/370の性能は、1974年に発
表された仮想計算機アシスト(以下VMAと略
す)マイクロコードによつて著しく改善された。
特に、このVMAマイクロコードは殆んどの2レ
ベル・アドレス変換をマイクロコードで行うこと
により、シヤドウ・テーブル・エントリを書込む
ことに係るソフトウエアのオーバヘツドを著しく
減少させる。このマイクロコードのプロセスは、
ソフトウエアの割込み処理及びステータスの保
存/復元が必要とされない点を除けば、ソフトウ
エアのプロセスと同じものである。 また、VM/370には、V=Rゲスト(優先ゲ
スト、予約記憶又は被選択ゲストとも呼ばれる)
によつて表わされる特殊な状況がある。このよう
なシヤドウ・テーブル・バイパス・モードと称す
る特殊な状況では、たとえ優先(preferred)ゲ
ストが第2のアーキテクチヤ・レベルで動作して
いたとしても、1レベル・アドレス変換だけが使
用される。このため、優先ゲストを主記憶中の予
定の下位アドレス・エクステント(範囲)へ割当
てることにより、当該ゲストが変換した実アドレ
スをこのエクステントへ直接的にマツプするよう
にしている。特に、動的に修正されるシステム/
360及びシステム/370のI/Oチヤネル・プログ
ラムが優先ゲストによつてランされうるが、この
ようなI/Oチヤネル・プログラムは2レベル・
アドレス変換を使用するページ可能ゲストによつ
ては使用することができないものである。 しかしながら、前記バイパス・モードでは、優
先ゲストのアドレスはもはやホスト・プログラム
によつては有効化されない。というのは、ホスト
は優先ゲストのシヤドウ・テーブルを構成するこ
とを必要としないからである。この結果、優先ゲ
ストの書込みアドレスがエラーを有する場合に
は、ホスト・プログラムが損われることがある。
これらの状況(但しI/Oに関するものを除く)
の下でホストの保全性を維持するために、前記バ
イパス・モードを使用しないようにするととも
に、優先ゲストによるすべての記憶アクセスをそ
のエクステントへ制限するために当該優先ゲスト
のシヤドウ・テーブルをホストに使用ならしめる
ことが行われる。 前記バイパス・モードが使用される場合であつ
ても、ホストはゲストのページ・テーブルを修正
しなければならない。これは当該ホストの(プレ
フイクスされたページのために使用されうる)絶
対ページ0との衝突を避けるためである。前記バ
イパス・モード及びシヤドウ・テーブル・モード
については、ゲストの実ページ0への参照を変換
するために変換テーブルが使用されるが、これは
(プリフイクシングと同時の結果を与えることに
よつて)単一プロセツサ及び多重プロセツサ上の
VM/370においてホスト及びゲストの両者によ
る絶対ページ0の衝突的な使用を避けるためであ
る。 ホストは優先ゲストのエクステントを超える主
記憶の残りの部分を保持する。主記憶の保持され
た部分にある1セクシヨンはホストによつて直接
的に使用され、ホストのオペレーテイング・シス
テムはこのセクシヨンにおいて仮想アドレツシン
グ・モード又は実アドレツシング・モードでラン
することができる。主記憶の残りの部分はページ
可能ゲストによつて利用することが可能であり、
ホストはこの部分において2レベル・アドレス変
換を使用して各ユーザのシヤドウ・テーブルを与
える。 要約すると、ホストはシヤドウ・テーブルを構
成し、かくて所与のゲストがホストによつて割当
てられた主記憶の対応する部分へ制限されること
を保証するので、これらのシヤドウ・テーブルは
これを使用する任意のゲストによる偶発的な書込
みアクセスからのホストの主記憶を保護するよう
に機能する。第2レベルにおける優先ゲストのシ
ヤドウ・テーブルを使用すると、2レベル・アド
レス変換を必要とするすべてのページ可能ゲスト
についてホストの保全性が与えられる。2レベ
ル・アドレス変換のオーバヘツドを避けるため
に、第2レベルにおける優先ゲストが前記バイパ
ス・モードの使用を許可される場合、ホストはそ
の優先ゲストについて保全性を失うことになる。
というのは、この場合には優先ゲストの主記憶ア
クセスを監視するためにどのシヤドウ・テーブル
も使用されておらず、従つて主記憶中のホスト領
域へ優先ゲストが書込みを行い、これにより
VM/370の動作に妨害を与えることがありうる
からである。 前述のシヤドウ・テーブル・テーブルに類似す
るものは、R.P.Goldbergによる米国特許第
4253145号の第23欄でHV連関器として記述されて
いる。この米国特許に記述された発明は、ホスト
計算機の複製物であるようなVMに制限されてお
り、またホスト計算機に対し帰納的関係を有する
ようなVMに制限されている。 R.P.Goldbergによる1972年10月付のハーバー
ド大学の学位論文“Architectual Principles for
Virtual Computer Systems”はハードウエア仮
想化機構HVをアルゴリズム的及び数学的に記述
しているにすぎず、ハードウエア及びフアームウ
エアによる特定の実現形態を全く記述していな
い。この論文及び前掲の米国特許第4253145号
は、VMシステムの各レベルにそれ自体のf−マ
ツプを設けることを意図しているものと考えられ
る。このf−マツプは1つのVMレベルを越えて
(即ち、n+1からnへ動作するのに対し、シヤ
ドウ・テーブルはこれとは異なりVMシステムに
おける2つ以上のレベルを越えて動作しうる。こ
のように、GoldbergのVMシステムは多数のレベ
ルで同時に存在するような多数のf−マツプを有
する。ハードウエア仮想化機構HV中の各エント
リは有効ステータス・ビツトを有し、レベル(n
+1)のアドレスのセグメント番号及びページ番
号を次の下位レベルであるレベルnのアドレスと
関係づける。 〔発明の要約〕 本発明の目的・効果は次のとおりである。 1 複数レベルのアドレス変換を含みうるVMシ
ステム中の複数レベルのアーキテクチヤの下で
ホスト及びゲスト・プログラムを実行するよう
な計算機システムの性能を改善すること。これ
らのアーキテクチヤはサイズの異なるアドレス
を使用することができる。たとえば、一方のア
ーキテクチヤが24ビツトのアドレスを使用する
ことができるのに対し、他方のアーキテクチヤ
は31ビツトのアドレスを使用することができ
る。 2 ゲストの種々のオペレーテイング・システム
(たとえば、DOS/370、VM/370、MVS/370
等)について所与の計算機システムの性能を一
様に改善すること。本発明によれば、VMシス
テム中の1プロセス又は1ユーザあたり1つず
つ必要とされていたソフトウエアTLBを一掃
することができる。 3 システム中の1中央プロセツサあたり1つず
つ設けられていたハードウエアTLBを修正
し、このハードウエアTLBを使用して従来必
要とされていたソフトウエアTLBを一掃する
こと。かくて、単一プロセツサのVMシステム
では、1つのハードウエアTLBだけが必要で
あつて、ソフトウエアTLBは全く必要なく、
このとはVMシステム中のVM、プロセス又は
ユーザの数には関係ない。 4 所与の計算機で実行されているユーザ・プロ
グラムが、エミユレートされる第2レベルのア
ーキテクチヤでランしているような1つのオペ
レーテイング・システム、又は(仮想アドレツ
シングを使用する他のオペレーテイング・シス
テムをランさせているような)第1レベルの固
有アーキテクチヤの下でランされている固有ア
ーキテクチヤによつて制御されるアドレス変換
を必要としており、そしてこれらのレベルが同
じ計算機ハードウエアを共有しているような場
合に、この計算機システムの性能を改善するこ
と。 5 シヤドウ・セグメント・テーブル及びシヤド
ウ・ページ・テーブル式のソフトウエアTLB
を一掃するとともに、2レベル・アドレス変換
を使用するときにかかるソフトウエアTLBに
よつて得ていたシステム性能よりも優れたシス
テム性能を与えること。 6 2レベル・アドレス変換の結果を直接的に得
ることにより、該変換を行つた後のすべての主
記憶アクセスを取除くこと。 7 2レベル・アドレス変換値を直接的に援受す
ることができるハードウエアTLBを提供する
こと。 8 1レベル・アドレス変換又は2レベル・アド
レス変換を使用するようなゲスト及びホスト・
アーキテクチヤのプログラムによつて共有可能
なTLBハードウエアを提供すること。 9 ゲストの仮想アドレスによつてアドレス可能
なエントリへ圧縮された2レベル・アドレス変
換値を書込むようにしたハードウエアTLBを
提供すること。 10 2レベル・アドレス変換値のエントリを保持
することができるハードウエアTLBであつ
て、任意のゲスト・ページが無効化されるか又
は主記憶からページ・アウトされるときこれら
のエントリが全体として除去されないようにし
たハードウエアTLBを提供すること。 11 主記憶中で無効化されたゲスト・ページを表
わす特定の2レベル・アドレス変換エントリを
選択的に除去するようにしたハードウエア
TLBを提供すること。 12 通知割込み(intercept)又は割込みを行わ
れたゲスト・プログラムに関係するすべてのエ
ントリを選択的に除去するとともに、ホスト・
プログラムの動作に関係する他のエントリを除
去しないようにしたハードウエアTLBを提供
すること。 13 2レベル・アドレス変換動作中に生ずる幾つ
かの中間的な1レベル・アドレス変換結果が有
効なエントリを破壊しないようにするために、
該変換結果のローデイングを禁止するようにし
たハードウエアTLBを提供すること。このよ
うなローデイングによつて有効なTLBエント
リが破壊されると、事後的な再変換が必要とな
つてシステム性能が低下するばかりか、ハード
ウエアTLBが2以下のセツト・アソシアテイ
ビテイを有する場合には少くとも2つの記憶オ
ペランドを必要とする命令についてデツドロツ
ク状況が生じうるからである。 14 要求された仮想アドレスの2レベル・アドレ
ス変換を行うとともに、その結果的な主記憶ア
ドレスを前記仮想アドレスへ割当てられたハー
ドウエアTLBのエントリへ書込むこと。 15 所与の要求がゲスト・プログラム又はホス
ト・プログラムのどちらによるものであるかに
応じて、当該要求へ割当てられたTLBエント
リに書込むべきゲストSTO(セグメント・テ
ーブル起点アドレス)又はホストSTOを選択
すること。 16 ハードウエアTLBに加速(acceleration)手
段を設けることにより、仮想アドレツシングを
使用する優先ゲストがハードウエアTLBに関
連するDAT機構を使用してそのすべてのアド
レス変換を行うことができるようにすること。 17 優先ゲストが変換したアドレスを主記憶の上
限アドレスと比較する上限検査手段を設けて、
優先ゲストの各要求がその割当てられたエクス
テント内にあるか否かを決定することにより、
優先ゲストの動作に対するホストの保全性をシ
ステム性能を低下させることなく維持するこ
と。これに対し、ホストの保全性を維持するた
めに優先ゲストがシヤドウ・テーブルを使用す
ることを不可欠としていた先行技術の技法によ
れば、システム性能が大巾に低下することは避
けられなかつた。 18 加速ゲストに対するプリフイクシングをシユ
ミレートするためにゲストのシヤドウ・ペー
ジ・テーブルを使用すると同時に、ホストのプ
リフイクス値を中央プロセツサのプリフイク
ス・レジスタに永久的に置いておくという不経
済的な技法を使用しないで済むように、中央プ
ロセツサのプリフイクス・レジスタに置かれた
ホスト及び加速ゲストのプリフイクス値の間で
プリフイクス・スイツチングを行うこと。 以下図面を参照して先行技術及び本発明の実施
態様を説明するが、以下では記述を簡潔にするた
め頻度の多い用語についてはできるだけ略語を使
用することにする。これらの略語の内容を本明細
書の末尾に示しておくので、必要に応じて参照さ
れたい。 〔発明の背景〕 第1図は先行技術のVM/370と同等のVMシス
テムを示す。因に、VM/370はソフトウエア・
システムであつて、システム/370モデル15
8,168及び3033ではVMAマイクロコー
ドを有する。第1図の破線によつて示された事項
は本発明に従つてVM/370から取除かれた事項
を表わし、これは破線で示した複数のシヤドウ・
テーブルを取除くことを含む。先行技術のVM/
370はシステム/360及びシステム/370型アーキ
テクチヤの複数レベルの動作を提供し、種々のオ
ペレーテイング・システム(たとえば、MVS/
370、DOS/370)がVM/370中の種々のレベル
に与えられるそれぞれのアーキテクチヤの下で動
作することを可能にする。第1図において、最下
位のレベル0はVM/370をサポートする中央プ
ロセツサCPのハードウエア及びマイクロコード
を表わす。レベル0のハードウエアはDAT機構
2及びTLB1を含み、またシステム/360、シス
テム/370及びシステム/370拡張アーキテクチヤ
を含む複数のアーキテクチヤの任意の下で仮想記
憶をサポートするようなマイクロコードを含む。
TBL1はDAT機構2によつて行われた各アドレ
ス変換の結果を受取り、この変換値によつて占有
されたエントリ空間が新しい変換値によつて必要
とされない限り、前者の変換値を該エントリに維
持する。システム/370の大型モデルでは、セツ
ト・アソシアテイブ形式のTLB1が使用されて
いるので、要求されたアドレスに応じてその1つ
のコングルエンス・クラスが指定され、そしてこ
のクラスにある複数のエントリが連想的にテスト
される。たとえば、各クラスが2つのエントリを
含む場合、当該技術分野では周知のように2ウエ
イのセツト・アソシアテイビテイが与えられるこ
とになる。 第1図のレベル1はホストのシステム制御プロ
グラム(以下SCPと略す)並びにこのSCPによつ
て使用されるホストのセグメント・テーブル
(ST)5及びその関連するページ・テーブル
(PT)6を含み、また破線で示した複数のシヤド
ウ・テーブル1ないしRを含む。レベル3におけ
るユーザ1ないしRの各々ごとに、1つのシヤド
ウ・テーブル、即ち1つのシヤドウ・セグメン
ト・テーブル3及び1つ以上のシヤドウ・ペー
ジ・テーブル4が設けられる。 シヤドウ・テーブル1ないしRは、ユーザの仮
想アドレスを2レベル・アドレス変換によつて主
記憶アドレスへ変換するために、ホスト・プログ
ラムによつてソフトウエアTLBとして使用され
る。 またホストはセグメント・テーブル5及びペー
ジ・テーブル6を有し、これを利用して第2レベ
ルの仮想アドレス(ゲストの実アドレス、ホスト
の仮想アドレス)を主記憶アドレスへ変換する。 ホストはレベル0における計算機であつて、そ
のレベル1アーキテクチヤ・インタフエースはホ
ストのSCP、たとえばVM/370制御プログラム
によつて使用される。ホスト・プログラムはレベ
ル1のアーキテクチヤを使用して実計算機を直接
的に制御する。VM/370のレベル0における実
計算機は固有アーキテクチヤを有するとともに、
他の同様のアーキテクチヤをエミユレートするた
めの限られた能力を有する。ホスト・プログラム
はこの固有アーキテクチヤ、たとえばシステム/
370アーキテクチヤを使用する。任意のゲスト
は、この固有アーキテクチヤに限らず、他のアー
キテクチヤをも使用することができる。任意のゲ
ストによつて使用される特定のアーキテクチヤ
は、ホストによつてソフトウエア制御ブロツクで
指定される。VM/370がオフにされていると、
ホストが要求したアドレスは実アドレスとして処
理され、従つて実計算機中の記憶コントローラに
よつて主記憶中の絶対アドレスをアクセスするも
のとして解釈される。即ち、当該中央プロセツサ
が多重プロセツサの環境にあれば、プリフイクス
値が加算されるのである。 システム中のゲストVMは、第1図のレベル2
アーキテクチヤ・インタフエースで動作する。ゲ
ストVMの各々はそれ自体のオペレーテイング・
システムを選択し、これをレベル2アーキテクチ
ヤ・インタフエースで実行することができる。ゲ
ストVMの各々をその使用プログラムから見る
と、前者はホストのシステム・デイレクトリで各
VMごとに割当てられた1組の資源を有するよう
な完全なシステムとして見える。前記システム・
デイレクトリは、各VMのオーナ名、ホストのア
ドレス空間で各VMに割当てられた実記憶域の量
及び各VMに関する他の情報を保持する。また各
ゲストは、制御レジスタCR及びPSWの如き、そ
れ自体がシユミレートする制御ハードウエアを有
する。ゲストVMは、その実記憶域に関係する
PSW中の変換モード・ビツト5(PSW5)オン
又はオフにして動作することができる。たとえ
ば、レベル2におけるゲストVMは、そのユーザ
がレベル2におけるゲストのシユミレートされた
PSWの変換モード・ビツト5をオンにした状態
でランすることを必要とする場合には、レベル3
における複数のユーザをサポートするために
MVS/370を使用することができる。 第1図において、複数のゲスト1ないしnはペ
ージ可能ゲストであり、ゲスト(n+1)は優先
ゲストである。 ページ可能ゲストのVMは実記憶域をそれぞれ
割当てられるが、これはホストの仮想記憶域にお
けるそれぞれのエクステントである。従つて、ペ
ージ可能ゲストは、要求に応じてホストのセグメ
ント・テーブル5及びページ・テーブル6を使用
することにより、システムの絶対主記憶域へペー
ジ・インされる。任意のページ可能ゲストは、そ
のユーザに割当てられた実記憶域を直接的に管理
することを許容するか否かに応じて、そのPSW
の変換モード・ビツト5をオフ又はオンにして動
作することができる。たとえば、MVS/370の如
きゲストのオペレーテイング・システムは、各ユ
ーザに対しそれ自体の仮想アドレス空間を与えて
ユーザを互いに分離することにより、そのユーザ
の実記憶域をゲストの実記憶域で管理することが
できる。 第14図は、VM/370においてゲストの実ア
ドレス空間がホストの主記憶へマツプされる様式
を示す。但し、各ページ可能ゲストの実ページ
GRPは対応する番号を与えられたホストの仮想
ページHVPであり、これは主記憶のページ可能
域における任意のページ枠PFへ変換することが
できる。第15図は、VM/370においてユーザ
の仮想アドレス空間がその関係するゲストの実ア
ドレス空間へマツプされる様式を示す。ここで、
ユーザの仮想ページGVPはMVS/370実記憶管理
プログラムの割当てに従つてゲストの実ページ
GRPへ変換することができ、そして後者は第1
4図に示すように主記憶へマツプされるものであ
る。 VMシステム中の或るユーザをレベル2におけ
る優先ゲストとして選択するには、ページ可能ゲ
ストについて行われるようにホストの仮想記憶域
の一部を割当てるのではなく、ホストの絶対主記
憶の最下位部分をその優先ゲストに割当てればよ
い。こうするためには、ホストは絶対アドレス0
で開始する連続的な主記憶エクステントを優先ゲ
ストに割当てることにより、このエクステント
(第1ページ枠を除く)がホスト又は他の任意の
ゲストによつて使用されないようにしなければな
らない。優先ゲストは主記憶中のこのエクステン
トを新たに割当てたり管理するというすべての責
任を負わされており、従つてホストの記憶管理機
能を使用しないのである。優先ゲストはその
PSWの変換モード・ビツト5をオフ又はオにし
て動作することができる。或る特殊モードの動作
が選択される場合、命令及びオペランドのアドレ
スは実主記憶アドレスとして直接的に処理され
る。PSWの変換モード・ビツト5がオンされて
いる場合には、優先ゲストのアドレスはそのセグ
メント及びページ・テーブルによつて主記憶中に
ある該ゲストのエクステントへ直接的に変換され
る。或る場合には、ゲストのテーブルはホスト・
プログラムによつて最小限度の範囲内で修正され
る。指名された場合、優先ゲストの変換テーブル
をアクセスするためにそのセグメント・テーブル
起点アドレス(以下STOと略す)が第1制御レ
ジスタ(CR1)8へ直接的に置かれるので、その
変換アドレスは主記憶中にある当該ゲストのエク
ステントへ直接的に供給され、これにより1レベ
ル・アドレス変換を使用するだけでそのデータ及
び命令をアクセスすることができる。このような
1レベル・アドレス変換は、レベル3におけるユ
ーザによつて必要とされる2レベル・アドレス変
換に比較して、一層効率的である。 レベル3アーキテクチヤ・インタフエースは関
係するレベル2のゲストVMによつて制御され、
これはレベル2における他のゲストのユーザ(レ
ベル3)によつて観察されるアーキテクチヤ・イ
ンタフエースと同じでもよいし又は異なつていて
もよい。かくて、レベル3におけるユーザの各組
はレベル2における特定のゲストVMに関係づけ
られる。後者のゲストVMはそれ自体のSCPを有
し、これはレベル2における他のゲストVMによ
つて使用されているSCPと同じでもよいし又は異
なつていてもよい。たとえば、レベル2における
ゲスト1は、レベル3においてそれ自体の仮想ア
ドレス空間をそれぞれ有するような複数のユーザ
1ないしRをサポートするために、MVS/370の
SCPを使用することができる。 一層詳細に説明すれば、レベル3における各ユ
ーザはそれ自体の変換テーブルの組を有し、これ
を利用してレベル3におけるそれ自体のアドレス
空間を、レベル2における関係するゲストの仮想
アドレス空間において割当てられた実記憶域へ変
換する。またレベル3における各ユーザごとに、
レベル1のホストは主記憶に設けられた対応する
1組のシヤドウ・テーブル(たとえば、3及び
4)を有し、これらのテーブルをソフトウエア
TLBとして使用することにより、レベル3にお
ける各ユーザのアドレス要求をホストが制御する
主記憶中で処理する。たとえば、もしレベル2に
おけるゲスト1がレベル3におけるユーザ1ない
しRをサポートするためにMS/370のSCPを使用
しており、そしてユーザ1がMVSによつて指名
されるならば、STO11(これはゲスト1のユ
ーザ1に対するSTOである)がMVSによつてゲ
スト1の実記憶域から取出され、シミユレートさ
れるゲスト1の第1制御レジスタCR1(即ち、
G1(CR1))へ転送されるので、ユーザ1に対す
るアドレス変換をそれ自体のセグメント・テーブ
ルU1(ST)及びページ・テーブルU1(PT)を
使用することによつて制御することができる。 U1(ST)の各エントリはユーザ1のページ・
テーブル起点アドレス(以下PTOと略す)を実
アドレス形式で保持し、かくてユーザ1のペー
ジ・テーブルU1(PT)をゲストの実記憶域で位
置づけることができる。U1(PT)の各エントリ
は所与のページ枠実アドレスを割当てられ、これ
によりゲストの実記憶域において割当てられたペ
ージ枠を位置づけることができる。前述のよう
に、このゲストの実記憶域はホストの仮想記憶域
の一部である。 U1(PT)の変換出力であるページ枠実アドレ
スはページ可能ゲスト1の実アドレスであり、こ
れまでの処はレベル2におけるゲスト1の仮想ア
ドレス空間(これはホストの仮想アドレス空間で
もある。)への1レベル・アドレス変換値を含む
にすぎない。従つて、ユーザ1の結果的なアドレ
スはホストの仮想記憶域における割当てられた1
つのページへマツプされることになり、そしてゲ
スト1からの仮想アドレス要求としてホストVM
によつて受取られるとき、ホストVMによつて必
要な主記憶位置へ変換されねばならない。このホ
ストのアドレス変換は、ホストのPSWにある変
換モード・ビツト5がオンにされているとき、第
1制御レジスタ(CR1)8に置かれたホスト
STOによつて制御される。というのは、このホ
ストSTOはホストのセグメント・テーブル5及
びホストのページ・テーブル6をアクセスするこ
とにより、ユーザが要求したアドレスの次の変換
レベルを与えるからである。 従つて、ゲスト及びホストの変換テーブルは2
レベルのアドレス変換を与え、これはMVSユー
ザの1つのアドレス要求をその実主記憶アドレス
変換するために全体で8回の主記憶アクセスを含
む。第2A図及び第2B図には、ユーザが要求し
た仮想アドレス110Aに対するこのアドレス変
換プロセスが詳細に示されている。第2A図及び
第2B図で使用されている記号の意味は次のとお
りである。 D =ページ中のバイト変位 G =ゲスト H =ホスト HS =ホスト・シヤドウ・テーブル I =無効 MS =主記憶 PFRA=ページ枠実アドレス PT =ページ・テーブル PTE =ページ・テーブル・エントリ PTO =ページ・テーブル起点アドレス PX =ページ・インデツクス RA =実アドレス ST =セグメント・テーブル STE =セグメント・テーブル・エントリ STO =セグメント・テーブル起点アドレス SX =セグメント・インデツクス VA =仮想アドレス 第2A図及び第2B図において円で囲んだ数字
は、アドレス110Aの変換中に生ずる主記憶の
アクセス順序を表わす。第2A図を参照するに、
ユーザが要求した仮想アドレス110Aをホスト
の仮想アドレス空間においてその実アドレス11
6へ変換するために、(レベル2における)第1
レベル・アドレス変換の間に6回の主記憶アクセ
スが必要であることがわかる。次いで、このユー
ザの実アドレス116(ゲスト実CRアドレス)
がホストへ与えられると、ホストはこれをホスト
仮想HVアドレスとみなし、(レベル1における)
ホストの第2レベル・アドレス変換の間に追加的
な2回の主記憶アクセスを行うことにより、要求
されたユーザ・データに対応するホスト実HRア
ドレス120を実主記憶域において与える。 このように、前述の2レベル・アドレス変換は
ユーザの各アドレス要求110Aごとに8回の主
記憶アクセスを含むので、システムに対するその
性能オーバヘツドは極めて大きいものとなる。こ
のオーバヘツドを減少させるため、PSWの変換
モード・ビツト5をオン(これに応じて2レベ
ル・アドレス変換が行われる)にした各ユーザご
とに他の1組のテーブル(たとえば、第1図のシ
ヤドウ・セグメント・テーブル3及びシヤドウ・
ページ・テーブル4)がホストに設けられたので
ある。 任意の2レベル・アドレス変換が完了すると、
その結果として得られる主記憶中のページ枠実ア
ドレスPFRAが第2B図に示したゲストのシヤド
ウ・ページ・テーブル122の対応するエントリ
へ挿入される。シヤドウ・セグメント・テーブル
121及びシヤドウ・ページ・テーブル122
は、第1図ではレベル3におけるユーザnに関連
するレベル1のシヤドウ・セグメント・テーブル
3及びシヤドウ・ページ・テーブル4として示さ
れている。 かくて、シヤドウ・セグメント・テーブル12
1及びシヤドウ・ページ・テーブル122はそれ
ぞれのユーザからの要求に対する1つのソフトウ
エアTLBを表わし、2回の主記憶アクセス、即
ちこれらのテーブル121及び122をアクセス
するだけで、以前の2レベル・アドレス変換によ
つて得られたページ・アドレスを与えることがで
きる。 第2A図及び第2B図に示した2レベル・アド
レス変換及びシヤドウ・テーブル・アクセスのた
めのアルゴリズムは、システム/370モデル15
8,168及び3033において、VMAマイク
ロコードによつて実現されている。これらのアル
ゴリズムは、刊行物である。P.H.Tallman et
al:“Virtual Machine Assist Feature
Archtectural Description”,IBM Technical
Report TR00.2506,January 9,1974に記述さ
れている。シヤドウ・ページ・テーブルの各々は
関連するユーザのレベル2におけるページ・テー
ブルと同数のエントリを保持するけれども、前者
のエントリがレベル3からレベル1への2レベ
ル・アドレス変換値を保持するのに対し、これに
対応する後者のエントリはレベル3からレベル2
への1レベル・アドレス変換値を保持するにすぎ
ない。即ち、これらの値は互いに異なつている。 任意の中央プロセツサがVMAマイクロコード
で以て動作する場合、レベル3におけるユーザの
要求に応じてまずホストがTLBをアクセスす
る。TLBでミスが生ずる場合、それぞれのユー
ザのシヤドウ・テーブルが(2回の主記憶アクセ
スを行うことにより)通常の様式でアクセスさ
れ、そしてこれらのテーブルが必要な変換値を保
持するか否かが決定される。たとえば、オペラン
ドを要求するユーザ1からの要求アドレス110
A(第2B図)に応じて、TLBが照会される
(図示せず)。要求された変換値をTLBが保持し
ない場合、ユーザ1のシヤドウ・テーブル121
及び122がアクセスされ、かくてシヤドウ・ペ
ージ・テーブル122が要求されたページを表わ
すエントリを保持するか否かが決定される。もし
このようなエントリが見出され、そしてこのエン
トリが、有効であれば(即ち、そのビツト=
0)、このエントリの内容であるU1(PFRA)が
要求された仮想アドレス中のバイト変位Dと連結
され、これによりユーザ1によつて要求されたデ
ータの主記憶アドレスが発生される。一方、もし
このようなエントリが無効であることが見出され
るならば、シヤドウ・ページ・テーブル122の
ミス信号が発生され、これに応じて前述の2レベ
ル・アドレス変換がマイクロコードによつて(第
2A図の最上部に示した同じアドレス110A
で)開始される。 レベル3アーキテクチヤ・インタフエースは、
SCPのプログラム構成要素をテストするためにユ
ーザをレベル2でランさせるのに特に有用である
ことがわかつた。テストされるプログラム構成要
素に障害が見つかつた場合は、単に1つのゲスト
を停止させるだけでよく、従つてレベレ2で動作
中の他のゲストについてVMシステムを継続的に
ランさせることができるからである。 〔発明の詳細な説明〕 第3図ないし第5図は、本発明に関連して使用
することができる種々のアドレス変換活動を概略
的に示している。第3図は、レベル2におけるペ
ージ可能ゲストVMの動作を表わす。これはレベ
ル3においてユーザの仮想アドレス空間131を
有し、この空間は当該ゲストVMによつて選択さ
れたレベル2のアーキテクチヤに依存して224
は231バイトの容量を有する。ユーザの仮想アド
レス空間131にある任意の4096バイト・ページ
は、このユーザの実エクステント内で割当てられ
た実ページ枠へマツプされる。ここで、このユー
ザの実エクステントは、レベル3からレベル2へ
の変換によつて関係するゲストの仮想アドレス空
間132内で、当該ユーザへ割当てられるもので
ある。換言すれば、このユーザの仮想アドレス空
間131において当該ユーザが要求したアドレス
はゲスト仮想GVアドレスであつて、ゲストはこ
れをゲスト実GRアドレスへ変換しなければなら
ない。 ホストにとつては、ゲストのアドレス空間はホ
ストの1つの仮想アドレス空間であるように見え
る。従つて、ホストはゲスト実GRページ枠アド
レスを1つのホスト仮想HVページ・アドレス変
換として認識し、対応するホスト実HRアドレス
を見出し、これにプリフイクス値を加算して主記
憶133中の絶対アドレスを発生しなければなら
ない。任意のページ可能ゲストによつて使用され
ている主記憶ページ枠は主記憶133で連続して
いなくてもよい。 第3図において、矢印130は本発明によつて
提供されるハードウエアTLBの動作を表わす。
この動作により、レベル3におけるユーザが要求
したアドレスは、その2レベル・アドレス変換後
にレベル1における同一の主記憶ページ枠へ変換
されることになる。 第3図に最下部に示したアドレス変換シーケン
スは、レベル3におけるユーザが要求したアドレ
スをレベル0における主記憶133の絶対アドレ
ス変換するためのものである。ここで使用された
記号Tは変換を意味し、Pはプリフイクシングを
意味する。 第4図は第3図に要約された概念を拡張するこ
とにより、複数のページ可能ゲストがホストの仮
想アドレス空間で動作するようにした独特の状況
を示す。矢印136及び137は、ゲスト1のユ
ーザ1及びゲスト2のユーザ1に対するTLBの
動作をそれぞれ表わす。これらのゲスト1及び2
に対する主記憶ページ枠はホストによつて主記憶
中で割当てられうる。また仮想アドレツシングを
使用する所与のシステムでは、多数のゲストVM
が存在することがあり、さらに1つのゲストがレ
ベル3における任意の数のユーザをサポートする
ことがある点に注意すべきである。もつとも、第
4図には各ゲストごとに1つのユーザが示されて
るにすぎない。 第5図には、ページ可能ゲストを有するような
VMシステムにおいて、優先ゲストのため変換動
作が要約されている。1つの優先ゲストはその仮
想アドレス空間を有するものとして示されてお
り、このアドレス空間については当該ゲストの
PSWにおける変換モード・ビツト5(PSWビツ
ト5)がオンされている。仮想アドレツシングに
よれば、優先ゲストの仮想アドレス空間はその優
先ゲストVMによつて選択されるアーキテクチヤ
に依存して224又は231バイトの容量を有する。も
しこのゲストの前記変換モード・ビツト5がオフ
にされているならば、そのレベル2におけるアド
レス空間は実アドレス空間であつて、優先ゲスト
の主記憶エクステントへ直接的にマツプされる。
このような主記憶エクステントは、優先ゲストが
ホストによつて初期設定されるとき、主記憶アド
レス0ないしKを割当てられるものである。従つ
て、この初期設定の後はホストは主記憶アドレス
KないしMにあるページ枠を使用するように制限
されるので、これらのページ枠にホスト・プログ
ラム及びデータを保持したり、これらのページ枠
を要求に応じてページ可能ゲストへ割当てるとが
できるにすぎない。換言すれば、ホストのSCPは
優先ゲストの主記憶エクステント0ないしKにあ
るページ枠を割当てることができないのである。
優先ゲストは、そのエクステント内にある主記憶
域を管理する全責任を負う。優先ゲストのPSW
にある変換モード・ビツト5がオフにされている
場合、このゲストのアドレスは必ずしも変換され
ないので、そのアドレス要求は主記憶エクステン
ト0ないしKで直接的にアクセスされうる。優先
ゲストの前記変換モード・ビツト5がオンされて
いる場合、これは主記憶中にそれ自体のセグメン
ト・テーブル及びページ・テーブル(第1図には
示されていないが、ホストのセグメント・テーブ
ル及びページ・テーブルと類似する)を与えるこ
とにより、当該優先ゲストの要求アドレスをその
エクステント内にある主記憶アドレスへ変換する
ことを可能にする。優先ゲストはページ可能ゲス
トよりも優れた性能を有するが、これは前者が1
レベル・アドレス変換を必要とするのにすぎない
のに対し、後者は8回の主記憶アクセスを不可欠
とするような2レベル・アドレス変換を必要とす
るという理由による。 第13図には、本発明を使用することができる
多重プロセツサ・システムの例が示されている。
ここには命令実行エレメント(以下IEと略す)
及びバツフア制御エレメントBCEをそれぞれ有
する4つの中央プロセツサCP、2つのシステ
ム・コントローラSC、1つのサービス・プロセ
ツサSVP、2つの外部データ・コントローラ
EXDC、4つの基本記憶モジユール・コントロー
ラBSC及び8つの基本記憶モジユールBSMをそ
れぞれ有する主記憶MSを備えた多重プロセツサ
が図示されているが、本発明は1つの基本記憶モ
ジユール及び1つの外部データ・コントローラへ
接続された1つの中央プロセツサから成る最小の
構成についても動作することができる。 第7図は本発明を包含する中央プロセツサを示
し、これはユニ・プロセツサ又は第13図に示し
た多重プロセツサのうち任意のものでよい。第7
図の中央プロセツサはIE20を含み、これは後
述する解釈実行開始(以下SIEと略す)命令22
を実行する手段が追加されている点を除くと、通
常のものでよい。 VM/370制御プログラムによつて表わされる
型のプログラミンゲ・システム(但し、前記の
SIE命令22を含むように修正されている)は、
複数のゲストVMを収容するようなホストをサポ
ートするために、システムへロードされる。ま
た、2レベル・アドレス変換を行うために、
VMAマイクロコードを含むマイクロコードがロ
ードされる。 VMの動作は、ホストの制御プログラムにより
通常の様式で指名された任意の命令ストリームに
よつて開始される。第7図において、ホスト・プ
ログラムはホスト命令ストリーム21によつて表
わされている。ゲストVMの動作はSIE命令22
を実行するホスト命令ストリーム21によつて開
始されるSIE命令22は、そのB2及びD2フイー
ルドによつて位置づけられる状態記述子(以下
SDと略す)のフイールドを、主記憶MSから取出
す。中央プロセツサのIE20はSIE命令22を実
行するためにそのB2及びD2フイールドによつて
決定されるアドレスを実主記憶アドレスとして使
用し、主記憶からSDの種々のフイールドを取出
し、これを中央プロセツサに追加されたトリガ及
び回路へロードすることにより、中央プロセツサ
をゲストVMとして動作させる。かくて、SDフイ
ールドは、ゲスト命令ストリーム33から見た、
ゲストVMのアーキテクチヤを記述する。その
後、中央プロセツサはゲスト・プログラムを実行
している限り、SDフイールドで定義されたゲス
トVMをエミユレートする。かくて、ゲスト命令
ストリーム33はSIE命令22の動作にホスト命
令ストリーム21の下でゲストされたレベルにお
いて開始されるのであり、そしてこのSIE命令2
2が実行されると、ゲストVMをエミユレートす
るように中央プロセツサが変更されるので、これ
はSDフイールドによつて定義されたゲストVMと
して実行する。 SDフイールドによつてロードされる中央プロ
セツサの回路及びトリガには、ゲスト/固有モー
ド・トリガ26、優先/ページ可能ゲスト・モー
ド・トリガ27、加速/非−加速優先ゲスト・モ
ード・トリガ28及びエミユレート/固有アーキ
テクチヤ・トリガ29が含まれる。SDフイール
ドによつてロードされる中央プロセツサの他のハ
ードウエア32には、制御レジスタCR、ローカ
ル記憶LS、プリフイクス及びエクステント限界
レジスタ、PSWレジスタ、STOレジスタ、汎用
レジスタGR等があるが、第7図にはこれらの全
部が示されているわけではない。 SIE命令22が実行されると、ホストの現状態
がIE20によつて保存される。 第6A図ないし第6C図の流れ図には、SIE命
令22をマイクロコードによつて実行する様式が
詳細に示されている。 一旦SIE命令22によつて開始されると、通知
割込み事象(出口)又は割込み事象が通知割込み
検出器34又は割込み検出器35によつて検出さ
れるまで、ゲスト・プログラムはゲストVMにお
けるその実行をゲスト命令ストリーム33で以て
継続する。割込み事象とは、たとえばホストのプ
ログラミング・サービスを必要とするうなI/O
又は外部割込みである。通知割込み事象とは、た
とえばホストのプログラミング・サービスを必要
とするような多数の命令のうち任意のものをゲス
トによつて実行することである。或る種の特権命
令をゲストが実行しようとするときは強制的な通
知割込み事象が生ずるのに対し、他の特権命令は
SIE命令22によつて取出されるようなSDフイ
ールドの通知割込みマスクによつて随意にフラグ
されることができ、かくてゲスト命令ストリーム
33の実行中にフラグされた任意の命令が生ずる
とき通知割込みを生ぜしめる。通知割込み又な割
込み事業が生ずる場合、ゲスト命令ストリーム3
3及びゲストVMが終了し、そしてCPはSIE命令
22の実行時に保存されたそのホスト状態へ復元
される。即ち、SIE命令22の最後の実行時にロ
ーカル記憶及び主記憶中のシステム領域に保存さ
れた情報が、中央プロセツサの所要回路にロード
されるのである。次いで、ホストはSIE命令22
の後にある命令からホスト命令ストリーム21の
実行を再開する。 中央プロセツサが取りうる種々の固有及びゲス
ト・モードは、以下の表1に示されている。これ
らのモードは、後述する如く第7図のモード・ト
リガ26ないし28のセツテイングの組合せによ
つて決定される。
【表】 非−加速ゲス オン オン オフ
ト・モード
加速ゲスト・ オン オン オン
モード
トリガ26のゲスト・モード・セツテイングは
SIE命令22の実行時に生じ、これは該命令の
SDで定義された状態を有するゲスト・アーキテ
クチヤをエミユレートするように中央プロセツサ
がセツトされたことを指示する。トリガ26の固
有モード・セツテイングはホストが指名されると
き及びゲストが終了されるとき生じ、かくて実行
中プログラムにはホストによつて定義された中央
プロセツサのアーキテクチヤのみが見えることを
指示する。 トリガ26がゲスト・モードへセツトされる場
合、トリガ27が有効となる。トリガ27は、中
央プロセツサが優先ゲストVM又はページ可能ゲ
ストVMのどちらとして動作するかを指示する。 トリガ27が優先ゲスト・モードを指示する場
合、トリガ28が有効となる。トリガ28は、優
先ゲストVMが加速モードで動作するか否かを指
示する。加速モードでは、優先ゲストはバツフア
制御エレメント(以下BCEと略す)31中の
DAT機構を使用することにより、優先ゲストに
よつて必要とされる1レベル・アドレス変換を行
うことができる。トリガ28によつて非−加速モ
ードが指示された場合は、優先又はページ可能ゲ
ストのアドレス変換はBCE31中のDAT機構に
よつて行われず、IEマイクロコードによつて行
われることになり、その結果は第10図に示した
BCE31中のTLB132へロードされる。 エミユレーシヨン・アーキテクチヤ・トリガ2
9は、現在のゲストによつて使用される中央プロ
セツサのアーキテクチヤが固有アーキテクチヤ又
は(この固有アーキテクチヤとは異なる)エミユ
レーシヨン・アーキテクチヤのどちらであるかを
指示する。本明細書に記述した実施態様では、固
有アーキテクチヤはシステム/370型の命令で31
ビツト・アドレスを使用し、そのPSWの変換モ
ード・ビツト5をオン又はオフにされている。エ
ミユレーシヨン・アーキテクチヤはシステム/
370又はシステム/360型の命令で24ビツト・アド
レスを使用し、前記変換モード・ビツト5をオン
又はオフにされている。従つて、この変換モー
ド・ビツト5がオンにされていると、固有アーキ
テクチヤはそれぞれ231バイトを有する複数のユ
ーザ・アドレス空間をサポートすることができ
る。これに対し、エミユレーシヨン・アーキテク
チヤはそれぞれが224バイトを有する複数のユー
ザ・アドレス空間をサポートすることができる。 トリガ26ないし28は、これらのモードを終
了させる通知割込み又は割込みの発生時に、IE
20から供給されるリセツト信号によつてリセツ
トされる。 第7図のIEアクセス制御30は、第8図に一
層詳細に示されている。第8図のIEアクセス制
御は第7図のトリガ26,28及び29の出力2
6A,28B及び29Aをそれぞれ受取るととも
に、第7図からバス25を介してマイクロオーダ
信号及びPSWの変換モード・ビツト5(PSW
5)を受取る。第8図において、これらの信号と
複数のアクセス・トリガ41ないし44との間に
論理回路が設けられている。 トリガ41ないし44のセツテイングは、中央
プロセツサの各記憶要求に応答して、第9図の
DAT機構及び第10図のTLB132の動作を制
御する。 これらのトリガは以下の表2に示した7つのマ
イクロオーダ信号のうち任意のものによつてリセ
ツトされ、セツト及びリセツト信号を同時に受取
るときはセツトされる。非−加速ゲスト・アクセ
ス・トリガ41はAND回路53によつてセツト
され、該回路はトリガ26からのゲスト・モード
信号、反転回路を介して与えられるトリガ28か
らの非ー加速ゲスト・モード信号及びOR回路5
1の出力を受取る。OR回路51は、以下の表2
に示したマイクロオーダ信号S1ないしS3のうち任
意ののを受取るとき、所与のゲスト要求を通知す
る。 表 2 要求タイプ・マイクロオーダ信号 マイクロオーダ 要求タイプ S1 仮想(ホスト又はゲスト) S2 実 (ホスト又はゲスト) S3 論理(ホスト又はゲスト) S4 ホスト論理 S5 ホスト実 S6 ホスト絶対 S7 固有/ホスト・システム領域 第8図の加速ゲスト・アクセス・トリガ42が
AND回路56を介してセツトされるのは、トリ
ガ28によつて加速ゲスト・モード信号が供給さ
れ且つOR回路51がマイクロオーダ信号S1,S2
又はS3を受取る場合である。AND回路54は、
トリガ26からのゲスト・モード信号及びトリガ
28の反転出力である非−加速ゲスト・モード信
号を受取るとき、TLBロード禁止(以下ITLと略
す)信号を線54Aに供給する。このITL信号が
オンであると、DAT機構はTLB132への書込
みを行うことができない。 以下の表3にはIE20からBCE31へ与えら
れる要求の種々の記憶アクセス・タイプが示され
ており、これらのタイプは非−加速ゲスト・アク
セス・トリガ41加速ゲスト・アクセス・トリガ
42のセツテイング並びに線54AのITL信号に
よつて決定される。
【表】 ト・アクセ

また第8図の固有アーキテクチヤ・アクセス・
トリガ43は、要求されたアクセスが固有又はエ
ミユレーシヨン・アーキテクチヤのどちらを使用
しているかを指示する。このトリガ43は、OR
回路67がAND回路57又は61からの入力を
受取るとき、該OR回路の出力によつてセツトさ
れる。AND回路57は、OR回路51の出力信号
及びトリガ29から反転回路を介して与えられる
固有アーキテクチヤ信号によつて活勢化される。
AND回路61は、OR回路52の出力信号とトリ
ガ29から反転回路を介して与えられる固有アー
キテクチヤ信号又はゲスト・モード・トリガ26
からの信号を受取るようなOR回路58の出力信
号とによつて活勢化される。 仮想アクセス・トリガ44は、AND回路64
及び66からの入力を受取るOR回路68の出力
によつてセツトされる。このことが行われるの
は、OR回路51又は52へ加わる任意の仮想要
求マイクロオーダ信号(表2を参照)によつて仮
想アドレスが要求される場合、即ち、OR回路6
3及びAND回路66に加わるホスト又はゲスト
のPSWビツト5がオンにされた状況で論理要求
が仮想アドレスを供給する場合である。 第12図は、ゲスト又はホスト要求に関係する
BCE動作を制御するための特殊コマンド回路を
示す。これらの特殊コマンドは、BCEレジスタ
へのローデイング、TLBエントリへの書込み及
びTLBエントリの除去を制御する。第11図に
おいて、IE20に設けられたマイクロコード記
憶20Aは、各コマンドを1組のマイクロオーダ
信号として、バス25に供給する。バス25は第
12図の特殊アクセス・トリガ83に至る線17
3及び174を含み、また第12図の特殊アクセ
ス・マイクロオーダ・レジスタ82に至る線17
5を含む。特殊アクセス・トリガ83が線174
のセツト信号によつてセツトされると同時に、線
175Aないし175Hにマイクロオーダ信号が
供給される。トリガ83の出力に応じてBCE中
の解読器84が活勢となり、特殊アクセス・マイ
クロオーダ・レジスタ82にセツトされたマイク
ロオーダ信号を解読することにより、当該コマン
ドに対応する1つの出力線を活勢化する。解読器
84の出力91ないし98は、本発明に関係して
いる。他の出力は本発明に関係ない機能を与える
ので、その説明を省略する。 線95又は96の解読されたコマンド信号は、
ホストSTO又はゲストSTOを第9図のBCE回路
へロードする動作を制御するために、第9図のゲ
ート121又は123を活勢化してIE記憶デー
タ・バス(SDB)37からのホストSTO又はゲ
ストSTOを対応するSTOレジスタ122又は1
24へロードさせる。線97上のコマンド信号
は、第9図のゲート106及び99を介してプリ
フイクス・レジスタ107及び上限レジスタ10
2へのロードを制御する。このようにしてSTO
レジスタ122又は124及びプリフイクス・レ
ジスタ107が初期設定された後、第8図ないし
第10図のアクセス制御回路は第10図のTLB
132におけるエントリの選択及び読取りを制御
し、TLB132におけるエントリの書込みを制
御し、又はTLB動作を低下させるような或る種
のエントリをTLB132に書込むことを禁止す
る。第12図の線93及び94の解読されたコマ
ンドは、TLB132のエントリを異なる様式で
除去するように制御する。 TLB動作については、まず第8図でホスト又
はゲストSTOが選択されねばならない。STOの
選択は第8図に示した非−加速ゲスト・アクセス
(NAGA)トリガ41の出力状態によつて制御さ
れる。即ち、トリガ41はそのNAGA出力41A
で第9図のゲート127又は128を活勢化し、
ホストSTO又はゲストSTOを選択することによ
り、TLBエントリの選択的読取り又は書込みの
ために使用される特定のSTOを線129Aを介
して転送させる。 ゲスト又はホストのアドレス変換値を表わす
TLBエントリを識別するために、第8図の線7
2A及び72BにはゲストGフラグが与えられ
る。Gフラグが0ビツトであればホスト・エント
リが指示され、Gフラグが1ビツトであればゲス
ト・エントリが指示される。Gフラグを発生する
OR回路73は、当該要求が非−加速ゲストに対
するものであるか否かを指示する非−加速ゲス
ト・アクセス・トリガ41からの信号、又は仮想
アクセス・トリガ44及び加速ゲスト・アクセ
ス・トリガ42に応答して加速ゲストによる仮想
アクセス要求を指示する処のAND回路77から
の信号を受取る。 線45A及び45Bに与えられるRフラグは、
所与のゲスト要求(即ち、Gフラグ=1)が仮想
アドレス又は実アドレスのどをらを供給するかを
識別する。ゲスト要求が仮想アドレスであればR
フラグは0ビツトであり、ゲスト要求が実アドレ
スであればRフラグは1ビツトである。Rフラグ
は仮想アクセス・トリガ44に接続された反転回
路45の出力である。 第8図の線42A,42B,43A及び44A
に与えられる信号は、1レベル・アドレス変換を
必要とする加速ゲスト要求及び固有/ホスト要求
について第9図の回路で行われるようなTLB動
作を制御するためのものである。 線54Aを介して第10図のTLB書込制御1
31に加わるITL(TLBロード禁止)信号は、現
在のIE要求に対するアドレス変換を選択された
TLBエントリへ書込む動作を制御する。線72
及び45は、ゲスト要求に対するTLB動作を制
御するためにGフラグ及びRフラグが供給され
る。かくて、Gフラグは現要求がゲスト又はホス
トのどちらか与えられたかを指示し、Rフラグは
現在のゲスト要求が仮想又は実アドレスのどちら
を使用しているかを指示する。 ゲスト・プリフイクス値を中央プロセツサのプ
リフイクス・レジスタ107(第9図)へ切換え
る本発明の方法は新規であり、ゲストの実ページ
0のプリフイクシングをシミユレートするための
ページ・テーブルを使用することを不要にする。 かくて、本発明の実施態様でSIE命令22(第
7図)が実行される場合、そのマイクロコード
は、(1)第6A図に示すように第9図のプリフイク
ス・レジスタ107から中央プロセツサのローカ
ル記憶へホストのプリフイクス値を書込み、(2)第
6B図に示すように加速モードが使用されるか否
かを決定し、次いで第7図の加速ゲスト・モー
ド・トリガ28をセツトし、そしてSDから得ら
れる優先ゲストのプリフイクス値をプリフイク
ス・レジスタ107へロードする。 通知割込み又は割込みに起因してSIE命令22
の実行が完了する場合、ホストのプリフイクス値
はローカル記憶からプリフイクス・レジスタ10
7へ移動される。 ゲストのプリフイクス値がSDからプリフイク
ス・レジスタ107へロードされると同時に、ゲ
ストの主記憶エクステント値がSDから第9図の
上限レジスタ102へロードされ、そしてこれら
の値はDレジスタ81の種々のフイールドを通し
て同時に転送される。 加速ゲスト・モードが存在する間、このゲスト
の変換アドレスについて限界検査及びプリフイク
シングが行われるが、これは従来のVM/370と
は対照的に中央プロセツサの性能を低下させな
い。限界検査は、各要求が最後にロードされた
SIE命令22のSDによつて優先ゲストのために
与えられた主記憶エクステント内にあるか否かを
決定する。 ホスト・プログラムの記憶参照については、限
界検査は行われない。マイクロコードによつて行
われるホストの主記憶参照はホスト・プリフイク
シングの対象とならないが、その理由はこれらの
参照が主記憶中のプリフイクス又は逆プリフイク
ス領域には置かれていないSDに対するものであ
るという点にある。 第12図の線97から第9図へ解読されたプリ
フイクス/限界コマンドが与えられる場合、Dレ
ジスタ81を介してIEによつて送られる種々の
フイールドから上限値及びプリフイクス値が、加
速ゲスト・モード・トリガ28の制御下で、上限
レジスタ102及びプリフイクス・レジスタ10
7へ転送される。 第8図に示すように1つの活動的な優先ゲスト
が存在することがあり、そして該ゲストの下限は
変位置0であるから、第9図では検査されない。 第9図に示された通常のDAT加算器113及
びDAT順序づけ制御117は、要求された仮想
アドレスに対する1レベル・アドレス変換を与え
るためのものである。2回の主記憶アクセスを含
む1レベル・アドレス変換については、線122
Aを介してTRレジスタ114に与えられるSTO
によつてセグメント・テーブルがアドレスされ、
そして主記憶の記憶バス・アウトSBOからTRレ
ジスタ114に与えられるこのセグメント・テー
ブル・エントリ中のPTOによつてページ・テー
ブルがアドレスされる。VASレジスタ111は
この変換の間に仮想アドレスのセグメント・イン
デツクス及びページ・インデツクスを受取り、そ
してDAT加算器113から与えられる結果的ア
ドレスの各々は主記憶をアクセスするためにDレ
ジスタ81を介して転送される。DAT順序づけ
制御117は、その入力線の制御下で、DAT動
作を制御する。これらの入力線のうち、線42B
は加速ゲストに対する変換を制御し、線43Aは
固有/ホスト変換を制御し、線44Aは当該要求
が仮想又は実アドレスのどちらであるかを指示
し、線98はIEが実アドレス・ロードLRA機能
を実行するとき第12図の解読器84によつて活
勢化されるような特殊コマンド線である。この場
合、DAT加算器113はIEが供給した仮想アド
レスを変換し、その変換出力を主記憶ではなく
IEへ送り返すので、主記憶のアクセスが実際に
行われることはなく、またこの変換出力がTLB
132へ記入されることもない。 アドレス変換を必要としいようなホストの実ア
ドレス(即ち、ホストのPSWビツト5がオフ)
はTLB132へ記入されない。また、変換を必
要としないような加速ゲストの実アドレス(即
ち、優先ゲストのPSWビツト5がオフ)もTLB
132へ記入されない。かくて、仮想アクセス・
トリガ44によつて指示されるように、アドレス
変換を必要とするホスト/固有又はゲスト要求の
みがTLB132に記入される。アドレス変換を
必要としない要求された実アドレスは必要に応じ
てプリフイクス制御108の制御下でプリフイク
スされ、そしてアクセスを行うために主記憶に送
られるが、TLB132には送られない。 第10図のTBL132は、ゲスト又はホスト
要求について行われた最新のアドレス変換値を保
持する。TLB132は、たとえばIBM3033で
使用されているTLBと同様に、通常のセツト・
アソシアテイブ形式を有するものと仮定する。し
かしながら、TLB132は各エントリにゲスト
Gビツト及び実Rビツトを保持するという点で従
来のTLBと相違し、これらのビツトに加えて従
来と同様のフイールド、即ち無効Iビツト(有効
Vビツトと呼ばれることもある)、STOフイール
ド、仮想アドレスVAフイールド及び絶対アドレ
スAAフイールドをも保持する。TLBの各行がコ
ングルエンス・クラスと呼ばれるのは、各行が複
数のエントリを有するものと考えられるからであ
る(もつとも、第10図では1クラスあたり1つ
のエントリが示されているにすぎない。)。各クラ
スはアドレス解読器136の出力によつて選択さ
れ、該解読器はIEが要求した現在の仮想アドレ
スをTLBアドレス・レジスタ137から受取
る。 各クラスごとに設けられた1組の比較回路15
1ないし154は、選択されたクラス中の任意の
エントリが要求されたアドレスを表わすか否かを
決定する。(セツト・アソシエイテイブ式TLBに
ついて複数組の比較回路がどのように使用される
かということは、先行技術に教示されている。)
もし要求されたアドレスが選択されたクラス中の
所与のエントリによつて表わされていることを比
較回路151ないし154が決定するならば、線
165にTLBヒツト信号が生ぜられる。さもな
ければ、線163A又は164AにTLBミス信
号が生ぜられる。線163AのTLBミス信号
は、BCE中のDAT機構による1レベル・アドレ
ス変換を必要とするような、固有/ホスト要求又
は加速ゲストについて生じうる。一方、線164
AのTBLミス信号は非−加速ゲストのアクセス
要求について生じうる。 所与のミス信号が生ぜられるのは、比較回路1
51ないし154のいずれかが一致出力を一致出
力を与えない場合である。(但し、STOの一致を
必要としないような共通セグメント指示子が含ま
れる場合を除く)。AND回路156及び158
は、比較回路151ないし154のすべての一致
出力及び共通セグメント指示子が含まれる場合に
OR回路157を通して与えられる強制的な一致
出力を組合わせることにより、ヒツト又はミス出
力を発生する。 一層詳細に説明すれば、比較回路151は選択
されたTLBエントリ中のGビツトと線72Aに
与えられる現要求のGフラグを比較し、比較回路
152は選択されたTLBエントリ中のRビツト
と線45Aに与えられる現要求のRフラグを比較
し、比較回路153は選択されたTLBエントリ
中のSTOと第9図のSTOレジスタ122又は1
24から線129Aに選択的に与えられる現要求
のSTOを比較し、比較回路154は選択された
TLBエントリ中の仮想アドレス・ビツトと第9
図から線81Aに与えられる現要求の対応する仮
想アドレス・ビツトを比較する。かくて、もしす
べての比較回路151ないし154が一致出力が
与えるならば、現要求に対するビツト信号が線1
65に生ぜられ、これにより対応するTLBエン
トリが通常の回路(図示せず)によつてアクセス
される。この場合、対応するTLBエントリ中の
絶対アドレスが線132Aを介してキヤシユ・デ
イレクトリ(図示せず)へ送られる。これに対
し、TLBミス信号は反転回路162の出力とし
て生ぜられ、そして当該要求が非−加速ゲスト要
求又はホスト/固有若しくは加速ゲストのいずれ
であるかに応じて、AND回路163又は164
によつて選択される。 もし所与の要求に応答してTLBミスが生ずる
ならば、当該要求の変換値は、TLB132の選
択されたクラスにあるエントリのうちLRU回路
(図示せず)によつて通常の様式で選択されたエ
ントリへ、書込まれねばならない。このエントリ
への書込みは、第10図のTLB書込制御131
によつて行われる。TLB書込制御131は、3
入力を有するOR回路133の出力によつて活動
化される。OR回路133の1入力はAND回路1
34から与えられ、該AND回路は線117Aの
DAT書込信号及び線54Aを介してITL信号を
受取る反転回路135の出力によつて活勢化され
る。TLB書込制御131が活勢化される場合、
第8図及び第9図から加わる無効Iビツト線14
3、Gフラグ線72B、Rフラグ線45B、
STO線129B、仮想アドレスVA線111B及
び絶対アドレスAA線108Aに存在する1又は
0状態が選択されたTLBエントリへそれぞれ書
込まれる。この書込中のエントリにおいてIビツ
トは有効状態にセツトされる。これらの線のうち
任意のものには1又は0状態のいずれでもない中
間状態が存在しうるが、これは書込中のエントリ
にある対応するフイールドを変更しない。 線163Aに生ぜられるTLBミス信号は、第
9図のDAT加算器113によるDAT動作を活勢
化するために、第9図のDAT順序づけ制御11
7へ供給される。ここで、本発明の実施態様が先
行技術と相違するのは、DAT動作を開始し且つ
アドレス変換に使用されるSTOを選択するため
に供給される制御の点にある。 第10図の線164Aに生ぜられるTLBミス
信号は、ゲスト・アドレスのマイクロコードによ
る変換を開始するために、IEへ供給される。こ
の変換は、要求のタイプに応じて、1レベル又は
2レベル・アドレス変換のいずれでもよい。 IEはゲストSTOを仮想アドレスのセグメン
ト・インデツクスへ加算し、次いでホストオフセ
ツト値を加算してホスト仮想アドレスを得ること
により、ゲスト・セグメント・テーブルの索引を
行う。第11図において、この結果的なホスト仮
想アドレスはIEによつてOR回路172及び線1
77を介して第9図のDレジスタ81へ供給さ
れ、このとき第8図の非−加速ゲスト・アクセ
ス・トリガ41及び加速ゲスト・アクセス・トリ
ガ42はリセツトされている。次いで、このアド
レスは、TLBミスが生じた場合にアドレス変換
手順のために、VASレジスタ111へゲートさ
れる。ホストSTOレジスタ122の内容はTRレ
ジスタ114へ置かれ、そしてDAT順序づけ制
御117はVASレジスタ111からのセグメン
ト・インデツクスを出力するようにゲート112
を活勢化するので、DT加算器113によつてセ
グメント・テーブル・エントリのアドレスが発生
され、Dレジスタ81に置かれた後、主記憶要求
として線151、AND回路150及び線152
を介して主記憶へ送られる。 このセグメント・テーブル・エントリは主記憶
の記憶バス・アウトSBOを介して戻され、TRレ
ジスタ114に置かれる。次いで、DAT順序づ
け制御117はVASレジスタ111中のペー
ジ・インデツクスを出力するようにゲート112
を活勢化し、かくてDAT加算器113はペー
ジ・テーブル・エントリのアドレスを発生し、こ
れをDレジスタ81を介して主記憶へ送る。この
ようにして、主記憶でページ枠実アドレスがアク
セスされ、その内容が主記憶の記憶データ・バス
SBOを介してTRレジスタ114へ戻され、次い
でVASレジスタ111からのページ・オフセツ
ト・ビツトとともにDAT加算器113を通つて
Dレジスタ81へ供給される。 線54Aが活勢であるから、TLB132への
書込みが禁止される。この場合、Dレジスタ81
中のアドレスは主記憶要求として主記憶へ送られ
る。この要求に応じてゲスト・セグメント・テー
ブルのエントリがアクセスされ、そしてIEへ戻
される。ゲスト・セグメント・テーブルのエント
リを得るために、これと同様の手順が行われる。
次いで、このアクセスの結果はホスト仮想オフセ
ツトへ加算されたゲスト・ページ・オフセツトと
連結され、その結果が線177を介してBCEに
供給される。取出動作の代わりに、第12図の
LRA(実アドレス・ロード)線98を介して信
号が発生され、かくてこのページ・テーブル・エ
ントリをIEへ戻すようにDAT順序づけ制御11
7が制御される。 IEはTLB Aコマンドと呼ばれる特殊コマンド
を線91に発生するとともに、線177を介して
ゲスト仮想アドレスを供給する。TLB Aコマン
ドはこの仮想アドレスをVASレジスタ111へ
ロツクする。次いで、IEはTLB Bコマンドと呼
ばれる特殊コマンドを線92を介して発生すると
ともに、線177を介してホスト絶対アドレスを
供給する。また、非−加速ゲスト・アクセス・ト
リガ41がゲストのタイアを記述する固有アーキ
テクチヤ・アクセス・トリガ43及び仮想アクセ
ス・トリガ44とともにセツトされる。 TLB BコマンドはTLB書込制御131を活勢
化し、複数の線(143,72B,45B,12
9B,111B及び108A)に従つて選択され
たTLBエントリの書込みを行わしめることによ
り、TLB132において1レベル・アドレス変
換のエントリを完成させる。 DAT機構の動作は固有/ホスト要求によつて
使用され、また加速ゲスト要求によつても使用さ
れる。いずれの場合においても、1レベル・アド
レス変換は同様の高速動作である。 IEは、所与のゲスト要求の変換が加速される
か否かを決定する。すべての固有/ホスト変換は
加速され、即ちBCEハードウエアによつて行わ
れる。 もしこのゲスト要求がBCEハードウエア、即
ちDAT順序づけ制御117及びDAT加算器11
3によつて変換できなければ、非−加速ゲスト要
求が決定される。もし非−加速ゲスト要求がなさ
れるのであれば、IEは加速ゲスト・モード・ト
リガ28へリセツト信号を供給し、DAT加算器
113及びDAT順序*け制御117はそのアド
レス変換を行わないようにされるので、このアド
レス変換はIEマイクロコードによつて行われ
る。非−加速ゲスト要求は、以下の理由により
BCE内で処理できないような優先ゲスト要求を
含む。これらの理由には、たとえば上限レジスタ
102のサイズが当該要求の上限を検査するため
には適切でない場合、又は仮想アドレスのサイズ
がDAT加算器113のサイズと両立しない(即
ち、DAT加算器113の入力が要求された仮想
アドレス中のセグメント・インデツク及びペー
ジ・インデツクスと正しく位置合せされていな
い)場合、等がある。すべての優先ゲストの変換
は(これらの優先ゲスト要求が加速されるか否か
に拘わりなく)2回の主記憶アクセスを含む1レ
ベル・アドレス変換であるが、BCEハードウエ
アは同じ変換を遂行するIEマイクロコードより
も高速で動作するので、BCEはアドレス変換を
「加速」するのである。 本発明の実施態様では、ページ可能ゲストは加
速されることはない、即ちBCE中のDAT加算器
113及びDAT順序づけ制御117を使用しな
いが、これに代わつてIEマイクロコードを使用
する。従つて、所与のページ可能ゲストは、第1
1図のマイクロコード実行ハードウエア20Bに
おいてVMAタイプのマイクロコードによる2レ
ベル・アドレス変換動作を開始させる。このマイ
クロコードはマイクロコード記憶20Aから供給
され、第2図に関連して説明したようにシヤド
ウ・テーブルのローデイングを含む2レベル・ア
ドレス変換を実行するために通常の様式で動作す
ることができる。 しかしながら、本発明によれば、シヤドウ・テ
ーブルは全く使用されない。IEマイクロコード
によつて任意のアドレス変換を実行している間、
線54Aを介して第10図の反転回路135へ新
規なITL信号が供給され、かくて非−加速ゲス
ト・モードの存在中にTLB書込制御131を禁
止する。このマイクロコードによるアドレス変換
が完了した場合、その結果的な絶対アドレスは第
11図のIEから絶対アドレス・バス179、OR
回路172及びバス177を介して第9図のDレ
ジスタ81へ供給され、そこからさらに線108
Aを介して第10図のTLB書込制御131へ供
給され、またこれと同時に変換された要求に対す
る無効Iビツト、Gフラグ、Rフラグ、STO及
び仮想アドレスVA入力がTLB書込制御131に
ついて活勢となる。IEが変換された絶対アドレ
スを供給すると同時に、IEはまた線175を介
して第12図の特殊マイクロコード・レジスタ8
2へ特殊マイクロオーダ信号を供給する。該信号
が解読されると、線92上のTLBBコマンド信号
が活勢となつて第10図のOR回路133へ供給
され、かくてTLB書込制御131を活勢化する
ことにより、この変換値を選択されたTLBエン
トリへ書込ませる。 本発明によれば、IEは、TLB132中の任意
のホスト・エントリに影響を与えることがなく、
ゲスト・エントリをTLB132から選択的に除
去することができる。ゲスト除去が行われるの
は、たとえば所与のゲスト・プログラムが通知割
込又は割込みに応じてその実行を終了するとき中
央プロセツサがゲスト状態からホスト状態に切換
えられるような場合である。この結果、実行を開
始するホスト・プログラムは、任意のホスト・エ
ントリを無効化することなく、TLB中の利用可
能なTLBエントリを使用することがどきる。こ
のことはシステムの動作効率が潜在的に向上する
ことを意味する。 かくて、所与のゲスト・プログラムが中央プロ
セツサの資源を失う場合、第11図のIEは第7
図の加速ゲスト・モード・トリガ26へリセツト
信号を供給するとき常に線175にゲストTLB
除去コマンドを自動的に発生することができ、こ
れにより第12図の線94にゲストTLB除去コ
マンド信号を生ぜしめる。 第10図のTLB除去制御140は、線94上
のゲストTLB除去コマンド信号を受取つてTLB
サイクル制御138を条件づける。TLBサイク
ル制御138はTLB132中で可能なすべての
クラス・アドレスを通して循環し、かくて各
TLBエントリの無効I及びゲストGビツトを
AND回路141へ出力させる。かくて、線94
上のゲストTLB除去コマンド信号によつて条件
づけられているAND回路141は有効ゲスト
TLBエントリ(即ち、Iビツト=1及びGビツ
ト=1)の各々によつて付能され、その出力を
OR回路142及び反転回路144を介して無効
ビツト入力線143へ供給する。またOR回路1
42の出力はOR回路133を介してTLB書込制
御131を活勢化することにより、現に読取られ
ているエントリのIビツトを0の無効状態へセツ
トさせる。循環中のクラスがTLBサイクル制御
138によつて完了される場合や、すべてのゲス
トTLBエントリが無効化されるが、TLB132
中の各ホスト・エントリの状態は影響されない。
というのは、そのGビツトは0状態にあつて、
AND回路141が任意のホスト・エントリによ
つて付能されることを禁止するからである。 もちろん、第12図の解読器84から第10図
へ至るTLB除去線93を活勢化するような特殊
コマンドによつて、通常のタイプのTLB除去命
令をTLB132で実行することもできる。この
場合、線93はOR回路146を介してTLBサイ
クル制御138を活勢化し、またOR回路142
を活勢化して循環中のすべてのTLBエントリを
無効状態にセツトさせるので、これらのTLBエ
ントリ中のG及びRビツトが無視されることにな
る。 従つて、加速ゲストがアクセス要求を行うとき
は、本発明の実施態様で常に限界検査動作が行わ
れる。このアクセス要求のアドレスは、IEによ
つてDレジスタ81へ供給される。もし優先ゲス
トがそのPSWビツト5をオフにされているなら
ば、Dレジスタ81は実アドレスを受取るので、
この限界検査を直ちに行うことができる。もし優
先ゲストがPSWビツト5をオンにされているな
らば、実アドレスが利用可能となるまで、即ちゲ
スト仮想アドレスが変換され且つDレジスタ81
から限界検査ハードウエアに供給されるまで、限
界検査は行われないのである。限界検査のタイミ
ングは、AND回路104の入力によつて決定さ
れる。線45CはPSWビツト5がオフにされた
状態で要求が受取られる場合を決定し、線117
Aは変換された実アドレスが利用可能な場合を決
定する。線45C及び117AはOR回路105
に入力され、該回路の出力はAND回路104の
動作時点を決定する。当該要求が指定された上限
を越えるとき、比較器103はその出力をAND
回路104へ供給する。線42Aは、唯1つの加
速ゲストがAND回路104を付能しうるよう
に、該AND回路を条件づける。もしすべての優
先ゲスト要求の限界検査を行いうるように限界検
査ハードウエアが構成されていたならば、線42
Aを取除くことができる。かくて、アドレスDが
上限ULより大きいことを比較器103が指示す
るならば、実アドレス(又は絶対アドレス)が比
較器103でテストされていることを示す線45
C及び加速ゲスト・アドレスがテストされている
ことを示す線42Aからの優先ゲスト信号につい
て、AND回路104から無効アドレス信号が指
示される。AND回路104からの無効アドレス
信号に応じて中央プロセツサでアドレス指定例外
が通常の様式で生ぜられ、かくてこれに基いてプ
ログラム割込みを通常の様式で発生することがで
きる。 前述の説明で使用した主要な略語の意味を、参
考のために以下に示す。 BCE:バツフア制御エレメント DAT:動的アドレス変換 DOS:デイスク・オペレーテイング・システム IE :命令実行エレメント ITL:TLBロード禁止 MVS:多重仮想記憶機能 PSW:プログラム・ステータス・ワード PTO:ページ・テーブル起点アドレス SCP:システム制御プログラム SD :状態記述子 SIE:解釈実行開始 STO:セグメント・テーブル起点アドレス TLB:変換索引緩衝機構 VM :仮想計算機(又は仮想計算機機能) VMA:仮想計算機アシスト
【図面の簡単な説明】
第1図は従来のIBM VM/370システムで見出
されるホスト/ゲストの関係を示す図、第2図は
第2A図及び第2B図の結合様式を示す図、第2
A図及び第2B図はゲストの仮想アドレスについ
て必要な2レベル・アドレス変換動作を示す図、
第3図ないし第5図は本発明で使用することがで
きる種々のゲスト動作モードについて見出される
ようなアドレス空間及びアドレス変換の間の関係
を示す図、第6図は第6A図ないし第6C図の結
合様式を示す図、第6A図ないし第6C図はSIE
命令の動作を示す図、第7図はゲスト・プログラ
ムを呼出すホスト・プログラムと中央プロセツサ
のマイクロコード、ハードウエア及び主記憶との
間の相互作用を示す図、第8図ないし第1図は本
発明の実施態様を表わす図、第13図は各中央プ
ロセツサが本発明を包含しうる多重プロセツサを
示す図、第14図及び第15図は先行技術の
VM/370で見出されるホスト/ゲストの関係を
示す図である。

Claims (1)

  1. 【特許請求の範囲】 1 少なくとも1つの中央プロセツサ及び少なく
    とも1つのゲスト仮想計算機をサポートするため
    の主記憶を有し、 (イ) 前記中央プロセツサがホスト・モードにある
    かゲスト・モードにあるかを示すモード指示手
    段と、 (ロ) ホスト及びゲストを区別してアドレス変換結
    果が書込まれる複数のエントリを有し、各該エ
    ントリは対応するアドレス変換結果がゲスト実
    アドレスによるものかゲスト仮想アドレスによ
    るものかを示す実/仮想フイールドを含む変換
    索引緩衡機構TLBと、 (ハ) ゲスト要求のアドレスが実アドレスか仮想ア
    ドレスを示すフラグ手段と、 (ニ) 前記フラグ手段の内容と前記変換索引緩衡機
    構から読出されたエントリ中の実/仮想フイー
    ルドの内容とを比較し、ゲスト・モードにおい
    てこれらが不一致のときにTLBミスを知らせ
    る比較手段と、 を前記中央プロセツサに設けたことを特徴とする
    仮想計算機システム。
JP57098587A 1981-06-15 1982-06-10 Virtual computer system Granted JPS57212680A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/273,532 US4456954A (en) 1981-06-15 1981-06-15 Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations

Publications (2)

Publication Number Publication Date
JPS57212680A JPS57212680A (en) 1982-12-27
JPS6122825B2 true JPS6122825B2 (ja) 1986-06-03

Family

ID=23044327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57098587A Granted JPS57212680A (en) 1981-06-15 1982-06-10 Virtual computer system

Country Status (7)

Country Link
US (1) US4456954A (ja)
EP (1) EP0067344B1 (ja)
JP (1) JPS57212680A (ja)
AU (1) AU547403B2 (ja)
CA (1) CA1176377A (ja)
DE (1) DE3275771D1 (ja)
ES (1) ES511808A0 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11331876B2 (en) 2010-07-16 2022-05-17 Nitto Shinko Corporation Electrically insulating resin composition and laminate sheet

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58180990U (ja) * 1982-05-28 1983-12-02 古河鉱業株式会社 泥岩さく孔用ロツド
US5109522A (en) * 1983-06-02 1992-04-28 Amdahl Corporation Data processing system with logical processing facility supporting a plurality of system control programs for production operation
JPS608971A (ja) * 1983-06-29 1985-01-17 Toshiba Corp 中央処理装置
US4612612A (en) * 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
JPS6057438A (ja) * 1983-09-08 1985-04-03 Hitachi Ltd 仮想計算機システム制御装置
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
JPS60107156A (ja) * 1983-11-16 1985-06-12 Hitachi Ltd デ−タ処理システム
US4779188A (en) * 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
CA1213986A (en) * 1983-12-14 1986-11-12 Thomas O. Curlee, Iii Selective guest system purge control
JPS60142451A (ja) * 1983-12-29 1985-07-27 Fujitsu Ltd アドレス変換制御方式
US5392409A (en) * 1984-01-18 1995-02-21 Hitachi, Ltd. I/O execution method for a virtual machine system and system therefor
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
GB8405491D0 (en) * 1984-03-02 1984-04-04 Hemdal G Computers
US4691278A (en) * 1984-04-23 1987-09-01 Nec Corporation Data processor executing microprograms according to a plurality of system architectures
US4603235A (en) * 1984-05-21 1986-07-29 Gte Communication Systems Corporation Dynamic event selection network
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
JPH0652511B2 (ja) * 1984-12-14 1994-07-06 株式会社日立製作所 情報処理装置のアドレス変換方式
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
US4674038A (en) * 1984-12-28 1987-06-16 International Business Machines Corporation Recovery of guest virtual machines after failure of a host real machine
DE3689287T2 (de) * 1985-02-18 1994-05-26 Nippon Electric Co Datenverarbeitungsgerät.
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4649479A (en) * 1985-02-28 1987-03-10 International Business Machines Corp. Device driver and adapter binding technique
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
JP2539357B2 (ja) 1985-03-15 1996-10-02 株式会社日立製作所 デ−タ処理装置
US4737909A (en) * 1985-04-01 1988-04-12 National Semiconductor Corp. Cache memory address apparatus
US4660144A (en) * 1985-05-23 1987-04-21 International Business Machines Corp. Adjunct machine
JPH0685156B2 (ja) * 1985-05-24 1994-10-26 株式会社日立製作所 アドレス変換装置
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
JPH0658649B2 (ja) * 1985-10-28 1994-08-03 株式会社日立製作所 仮想記憶装置における領域管理方法
JPS62154037A (ja) * 1985-12-26 1987-07-09 Hitachi Ltd 仮想計算機監視制御方式
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
JPH0658650B2 (ja) * 1986-03-14 1994-08-03 株式会社日立製作所 仮想計算機システム
US5349672A (en) * 1986-03-17 1994-09-20 Hitachi, Ltd. Data processor having logical address memories and purge capabilities
US4862347A (en) * 1986-04-22 1989-08-29 International Business Machine Corporation System for simulating memory arrays in a logic simulation machine
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US4939507A (en) * 1986-04-28 1990-07-03 Xerox Corporation Virtual and emulated objects for use in the user interface of a display screen of a display processor
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
US4920481A (en) * 1986-04-28 1990-04-24 Xerox Corporation Emulation with display update trapping
US5153577A (en) * 1986-04-28 1992-10-06 Xerox Corporation Mapping character color attributes into grey pixel patterns
US5113517A (en) * 1986-04-28 1992-05-12 Xerox Corporation Concurrent display of data from two different processors each having different display font and user interface for controlling transfer of converted font data therebetween
US4899136A (en) * 1986-04-28 1990-02-06 Xerox Corporation Data processor having a user interface display with metaphoric objects
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
US5038281A (en) * 1986-09-19 1991-08-06 International Business Machines Corporation Acceleration of system interrupts between operating systems in guest-host relationship
JPH0810437B2 (ja) * 1987-05-11 1996-01-31 株式会社日立製作所 仮想計算機システムのゲスト実行制御方式
US5218712A (en) * 1987-07-01 1993-06-08 Digital Equipment Corporation Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
JP2523653B2 (ja) * 1987-07-08 1996-08-14 株式会社日立製作所 仮想計算機システム
JP2510605B2 (ja) * 1987-07-24 1996-06-26 株式会社日立製作所 仮想計算機システム
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4975869A (en) * 1987-08-06 1990-12-04 International Business Machines Corporation Fast emulator using slow processor
JP2615103B2 (ja) * 1987-12-11 1997-05-28 株式会社日立製作所 仮想計算機システム
US4943913A (en) * 1988-02-10 1990-07-24 International Business Machines Corporation Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations
JPH01255945A (ja) * 1988-04-06 1989-10-12 Hitachi Ltd 仮想計算機におけるアドレス変換装置
JPH02202652A (ja) * 1989-02-01 1990-08-10 Hitachi Ltd 多重仮想記憶管理方式
IT1228728B (it) * 1989-03-15 1991-07-03 Bull Hn Information Syst Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi.
US5293612A (en) * 1989-05-11 1994-03-08 Tandem Computers Incorporated Selective dump method and apparatus
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
JPH03217949A (ja) * 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
JP2708608B2 (ja) * 1990-05-25 1998-02-04 富士通株式会社 仮想計算機のipl処理方式
JP2839201B2 (ja) * 1990-07-30 1998-12-16 株式会社日立製作所 仮想計算機システム
US5283876A (en) * 1990-10-05 1994-02-01 Bull Hn Information Systems Inc. Virtual memory unit utilizing set associative memory structure and state machine control sequencing with selective retry
US5317754A (en) * 1990-10-23 1994-05-31 International Business Machines Corporation Method and apparatus for enabling an interpretive execution subset
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5381535A (en) * 1990-10-24 1995-01-10 International Business Machines Corporation Data processing control of second-level quest virtual machines without host intervention
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
CA2082066C (en) * 1991-03-07 1998-04-21 James A. Wooldridge Software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5341485A (en) * 1991-05-07 1994-08-23 International Business Machines Corporation Multiple virtual address translation per computer cycle
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
US5428757A (en) * 1992-04-29 1995-06-27 International Business Machines Corporation Method for reducing translation look aside buffer purges in a multitasking system
JPH0695898A (ja) * 1992-09-16 1994-04-08 Hitachi Ltd 仮想計算機の制御方法および仮想計算機システム
US5584042A (en) * 1993-06-01 1996-12-10 International Business Machines Corporation Dynamic I/O data address relocation facility
JPH06348584A (ja) * 1993-06-01 1994-12-22 Internatl Business Mach Corp <Ibm> データ処理システム
US6684261B1 (en) * 1993-07-19 2004-01-27 Object Technology Licensing Corporation Object-oriented operating system
US5404529A (en) * 1993-07-19 1995-04-04 Taligent, Inc. Object-oriented interprocess communication system interface for a procedural operating system
US5455951A (en) * 1993-07-19 1995-10-03 Taligent, Inc. Method and apparatus for running an object-oriented program on a host computer with a procedural operating system
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
JP2806778B2 (ja) * 1994-01-28 1998-09-30 甲府日本電気株式会社 変換索引バッファクリア命令処理方式
US5664156A (en) * 1994-09-16 1997-09-02 Philips Electronics North America Corporation Microcontroller with a reconfigurable program status word
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
JPH08286932A (ja) * 1995-04-11 1996-11-01 Hitachi Ltd ジョブの並列実行制御方法
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US6356918B1 (en) 1995-07-26 2002-03-12 International Business Machines Corporation Method and system for managing registers in a data processing system supports out-of-order and speculative instruction execution
US5764944A (en) * 1995-09-08 1998-06-09 United Microelectronics Corp. Method and apparatus for TLB invalidation mechanism for protective page fault
JPH0981459A (ja) * 1995-09-19 1997-03-28 Hitachi Ltd アドレス変換バッファ装置
US5787492A (en) * 1996-04-09 1998-07-28 International Business Machines Corporation Address limit check apparatus with conditional carry logic
US6047388A (en) * 1997-04-09 2000-04-04 International Business Machines Corporation Method and apparatus for processing an invalid address request
US6668314B1 (en) * 1997-06-24 2003-12-23 Hewlett-Packard Development Company, L.P. Virtual memory translation control by TLB purge monitoring
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
JP2001051900A (ja) * 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
FR2797970A1 (fr) * 1999-08-31 2001-03-02 Koninkl Philips Electronics Nv Adressage d'une memoire
US6415379B1 (en) * 1999-10-13 2002-07-02 Transmeta Corporation Method and apparatus for maintaining context while executing translated instructions
US6651132B1 (en) * 2000-07-17 2003-11-18 Microsoft Corporation System and method for emulating the operation of a translation look-aside buffer
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US6742180B1 (en) * 2000-10-30 2004-05-25 Microsoft Corporation System and method providing seamless transition of operating system environment
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
DE10104984A1 (de) * 2001-02-03 2002-08-08 Hejoe Ges Fuer Netzwerk Und Sy System aus miteinander verbundenen Digitalrechnern und Verfahren zur Steuerung
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
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
US6981125B2 (en) * 2003-04-22 2005-12-27 International Business Machines Corporation Method and apparatus for managing shared virtual storage in an information handling system
WO2004104825A1 (en) 2003-05-15 2004-12-02 Applianz Technologies, Inc. Systems and methods of creating and accessing software simulated computers
US20050034125A1 (en) * 2003-08-05 2005-02-10 Logicube, Inc. Multiple virtual devices
US20060005190A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for implementing an operating system in a virtual machine environment
US9058292B2 (en) 2004-12-29 2015-06-16 Intel Corporation System and method for one step address translation of graphics addresses in virtualization
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
US7299337B2 (en) * 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US7496495B2 (en) * 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US7868897B2 (en) * 2006-06-30 2011-01-11 Intel Corporation Apparatus and method for memory address re-mapping of graphics data
US7881921B1 (en) * 2006-07-05 2011-02-01 Synopsys, Inc. Caching information to map simulation addresses to host addresses in computer system simulations
US7555628B2 (en) * 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US8819647B2 (en) * 2008-01-25 2014-08-26 International Business Machines Corporation Performance improvements for nested virtual machines
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US8275971B2 (en) 2008-08-27 2012-09-25 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
US7904914B2 (en) * 2008-09-30 2011-03-08 Microsoft Corporation On-the-fly replacement of physical hardware with emulation
US10802990B2 (en) * 2008-10-06 2020-10-13 International Business Machines Corporation Hardware based mandatory access control
US8135937B2 (en) * 2008-11-17 2012-03-13 International Business Machines Corporation Logical partition memory
US8301863B2 (en) * 2008-11-17 2012-10-30 International Business Machines Corporation Recursive logical partition real memory map
US10255463B2 (en) * 2008-11-17 2019-04-09 International Business Machines Corporation Secure computer architecture
US8387031B2 (en) * 2009-01-23 2013-02-26 International Business Machines Corporation Providing code improvements for nested virtual machines
US8286164B2 (en) 2009-08-07 2012-10-09 International Business Machines Corporation Secure recursive virtualization
US9251091B2 (en) 2012-06-15 2016-02-02 International Business Machines Corporation Translation look-aside table management
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9280488B2 (en) 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9195493B2 (en) 2014-03-27 2015-11-24 International Business Machines Corporation Dispatching multiple threads in a computer
US9213569B2 (en) 2014-03-27 2015-12-15 International Business Machines Corporation Exiting multiple threads in a computer
US9223574B2 (en) 2014-03-27 2015-12-29 International Business Machines Corporation Start virtual execution instruction for dispatching multiple threads in a computer
US9772867B2 (en) 2014-03-27 2017-09-26 International Business Machines Corporation Control area for managing multiple threads in a computer
US11281481B2 (en) 2014-07-25 2022-03-22 Intel Corporation Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture
US10353680B2 (en) 2014-07-25 2019-07-16 Intel Corporation System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence
KR101882255B1 (ko) 2014-07-25 2018-07-26 소프트 머신즈, 인크. 변환 룩 어사이드 버퍼를 사용한 명령어 집합의 애그노스틱 런타임 아키텍처 구현
US9733909B2 (en) 2014-07-25 2017-08-15 Intel Corporation System converter that implements a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address
US9389897B1 (en) 2014-12-18 2016-07-12 International Business Machines Corporation Exiting multiple threads of a simulation environment in a computer
CN107408053B (zh) * 2015-04-10 2021-04-16 谷歌有限责任公司 用于到本原客户端的二进制翻译的方法、***和介质
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
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
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
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
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
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
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US11403409B2 (en) 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11347869B2 (en) * 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR130806A (ja) * 1973-11-21
US4351024A (en) * 1975-04-21 1982-09-21 Honeywell Information Systems Inc. Switch system base mechanism
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
US4285040A (en) * 1977-11-04 1981-08-18 Sperry Corporation Dual mode virtual-to-real address translation mechanism
US4241401A (en) * 1977-12-19 1980-12-23 Sperry Corporation Virtual address translator utilizing interrupt level code
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11331876B2 (en) 2010-07-16 2022-05-17 Nitto Shinko Corporation Electrically insulating resin composition and laminate sheet

Also Published As

Publication number Publication date
AU8341582A (en) 1982-12-23
DE3275771D1 (en) 1987-04-23
CA1176377A (en) 1984-10-16
AU547403B2 (en) 1985-10-17
EP0067344B1 (en) 1987-03-18
US4456954A (en) 1984-06-26
ES8304331A1 (es) 1983-02-16
EP0067344A3 (en) 1984-05-02
JPS57212680A (en) 1982-12-27
ES511808A0 (es) 1983-02-16
EP0067344A2 (en) 1982-12-22

Similar Documents

Publication Publication Date Title
JPS6122825B2 (ja)
US10241910B2 (en) Creating a dynamic address translation with translation exception qualifiers
US7383374B2 (en) Method and apparatus for managing virtual addresses
US7281115B2 (en) Method, system and program product for clearing selected storage translation buffer entries
JP3914541B2 (ja) アドレスに基づいた処理制約のブロッキング
EP2862089B1 (en) Compare and replace dat table entry
JP6284130B2 (ja) ローカル・クリア制御
JPS6248258B2 (ja)
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JPH0348541B2 (ja)
JPH04247528A (ja) データ空間への共通アクセス装置及び方法
US5339417A (en) Computer system with two levels of guests
WO2020021223A1 (en) Memory protection unit using memory protection table stored in memory system
US8458438B2 (en) System, method and computer program product for providing quiesce filtering for shared memory
IL280089B1 (en) A binary search procedure for a control table stored in a memory system
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JP2535086B2 (ja) リング削減ロジック装置
JPS6336012B2 (ja)
JP3105110B2 (ja) 演算装置
JPH0567973B2 (ja)
JPH0766352B2 (ja) 仮想計算機システム