JPH0769844B2 - データ空間への共通アクセス装置及び方法 - Google Patents

データ空間への共通アクセス装置及び方法

Info

Publication number
JPH0769844B2
JPH0769844B2 JP3252875A JP25287591A JPH0769844B2 JP H0769844 B2 JPH0769844 B2 JP H0769844B2 JP 3252875 A JP3252875 A JP 3252875A JP 25287591 A JP25287591 A JP 25287591A JP H0769844 B2 JPH0769844 B2 JP H0769844B2
Authority
JP
Japan
Prior art keywords
host
guest
address
access
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP3252875A
Other languages
English (en)
Other versions
JPH04247528A (ja
Inventor
デビッド・ポウル・ブレルスフォード
メルビン・エム・カトラー
ジーン・ルイス・ラフィッテ
ジョセフ・マーティン・グダニエック
ダミアン・レオ・オシセック
ケネス・アーネスト・プラムベック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04247528A publication Critical patent/JPH04247528A/ja
Publication of JPH0769844B2 publication Critical patent/JPH0769844B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想計算機に関する。
【0002】
【従来の技術】Enterprise Systems
Architecture/370(TM)(ESA
/370(TM))の解釈実行機構は、仮想計算機を実
行するために、START INTERPRETIVE
EXECUTION(SIE)命令を与える。SIE
は最初はSystem/370又は370−XAアーキ
テクチャのいずれかを仮想化するために形成され、後に
はESA/370アーキテクチャを仮想化するために形
成されるが、SIEは、多数の特殊化された性能環境の
ためのケイパビリティを提供する。アーキテクチャにお
けるケイパビリティのこの包括的セットは、エンドユー
ザ及びシステムサーバのための仮想計算機の機能を提供
するためにVM/ESAの能力のためのプラットホーム
として役立つ。ゲストアーキテクチャ・エミュレーショ
ンを有する仮想計算機(VM)システムは、本出願人に
譲渡された米国特許第4,456,954号明細書に詳
細に記述されている。
【0003】VM/ESAは、ESA/370(TM)
解釈実行機構を用いて、プロセッサに、仮想計算機環境
管理の負担の多くを割り当てる。本明細書では、ゲスト
という用語は、仮想計算機又は“解釈上の”計算機に関
するものとする。実計算機をダイレクトに管理し、ゲス
ト実行環境を構築する責任を負う制御プログラムは、ホ
ストと称される。ホストは、単一命令、START I
NTERPRETIVE EXECUTION(SI
E)を発し、それによって計算機を解釈−実行モードに
する。このモードでは、計算機は選択されたアーキテク
チャ機能を提供する。このアーキテクチャはまた、Sy
stem/370,370−XA,又はESA/370
のような実計算機上で使用可能であるか又は、ESA/
XCアーキテクチャのように仮想計算機環境において排
他的に与えられるアーキテクチャである。計算機によっ
て与えられる機能は、特権命令,問題プログラム命令,
アドレス変換,割込み処理,他とのタイミング,及び多
くの場合の入出力を含んでいる。この計算機は、仮想計
算機の情況で実行される機能を、解釈すると言われてい
る。同様に、多くの種類の割込みが、解釈され、ホスト
を介することなく、計算機によりゲストにダイレクトに
与えられる。
【0004】仮想計算機環境では、ゲストプログラム
は、指定されたアーキテクチャに対し規定された機能の
全数を理解する。これらの機能の大半は、計算機では、
解釈実行機構の形態で与えられる。しかし、解釈実行機
構によっても与えられない機能が残っている。これらの
機能はシミュレーションと呼ばれる処理を通して、VM
/ESAの場合、CP(制御プログラム)と呼ばれる優
先権のあるホスト制御プログラムによって与えられる。
性能を除けば、機能が計算機によって実行されようと、
ホストがゲストプログラムに区別できなかろうと、シミ
ュレーションはゲスト機能を簡単に“実行”しようと努
力する。
【0005】SIE命令のオペランドは、状態記述と呼
ばれる制御ブロックである。状態記述は、ゲストの現状
態に関連した情報を含んでいる。SIEの実行が終了す
ると、ゲストプログラム状態語(PSW)及びゲストの
状態を記述する他の情報は、ホストに制御が戻されない
うちに状態記述にセーブされる。この情報は、シミュレ
ーション中にホストによって使用され修正され、その後
でゲストの実行を再開するために使用される。状態記述
の他の情報は、ゲストが実行されるべきモードや他の環
境条件を決定する。
【0006】解釈実行モードでは、仮想計算機は、実計
算機の資源の一部となることを強いられる。これらの資
源はホストによって割り当てられる。したがって、ゲス
トの記憶は、ホストの実記憶の一部又は、ホストシステ
ムによって制御されるホスト仮想アドレス空間かのいず
れかに制限される。ホストのイネーブル/ディスエーブ
ル状態は、一般にゲストの実行によって妨害されない。
ホストタイミング機能もまた妨害されない。その代わ
り、第2のセットはゲストのために与えられる。1つの
完全で論理的に分離した制御レジスタのセットは、ホス
ト使用マシンによって保持され、他はゲスト使用マシン
によって保持される。ゲストによる妨害からのホストの
保護によって、ホストは、実資源を多数のゲストに効率
的に分配する主要責任を果たすことができる。これによ
り、1つのゲストが他のゲストとの干渉を防止する。
【0007】記憶装置にアクセスする方法は、どのアー
キテクチャにとっても基本である。ESA/370は3
レベルの記憶アドレスを規定する。動的アドレス変換
(Dynamic Address Translat
ion:DAT)は仮想アドレスを実アドレスに変換す
る。物理記憶の記憶位置を指定する絶対アドレスを生成
するために、実アドレス上でプレフィックシング(pr
efixing)が実行される。プレフィックシングは
CPUのプレフィックス・レジスタの内容を用いて、ア
ドレス0〜4095を他のアドレス範囲で“スワップ”
する。それで、各CPUは、割込みパラメータ,セーブ
領域,及びプロセッサの特定データのための異なる小容
量記憶にアクセスすることができる。
【0008】ゲストの絶対記憶を表示する方法は、仮想
計算機を考える際のキーとなる。2つの基本記憶モード
は、解釈−実行アーキテクチャによって与えられる。す
なわち、好ましい記憶モードとページ可能記憶モードで
ある。好ましい記憶モードでは、連続ブロックがゲスト
に割り当てられ、一方ページ可能記憶モードでは、ホス
トレベルの動的アドレス変換(DAT)は、ゲスト主記
憶マッピングするのに用いられる。
【0009】仮想記憶上の記憶位置は、仮想アドレス
と、仮想アドレスが含まれるアドレス空間によって規定
される。通常、制御レジスタにあるセグメントテーブル
指示はアドレス空間に対応する。動的アドレス変換(D
AT)は、セグメントテーブルの選択エントリ及びセグ
メントテーブル・エントリによって指定されたページテ
ーブルの選択エントリとによって、仮想アドレスを実ア
ドレスに変換する。この結果、記憶フレームの実アドレ
スは仮想アドレスに対応する。
【0010】仮想計算機環境は2度DATの適用を要求
する。まず、ゲストレベルで、ゲスト仮想アドレスをゲ
スト管理変換テーブルを通してゲスト実アドレスに変換
し、次いで、ページ可能ゲストの場合、ホストレベル
で、対応するホスト仮想アドレスをホスト実アドレスに
変換する。
【0011】VM/370では、アクティブであるゲス
トDATを有するページ可能仮想計算機の場合2レベル
のアドレス変換を実行する必要性は、“シャドー”変換
テーブルと、2つのマッピングを結合した結果を反映す
るホストによって構成されるセグメントテーブル及びペ
ージテーブルとによって、満足させられる。370−X
Aによって提供される増大アドレッシング容量は、2ギ
ガバイトの非常に大きなアドレス範囲に対するアドレス
参照が“疎になる”危険性のため,より大きな変換テー
ブルサイズのため,及びシャドーテーブルの保全性を保
持し保証するためのコストのため、“シャドー”機構に
より達成可能な性能を制限する恐れがある。
【0012】これらのことは、IBMは、マシンで2レ
ベルの変換を実行するために、解釈実行で一般的に使用
するためのシャドーテーブルをやめる。この改良された
変換の方法及び手段は、本出願人に譲渡された米国特許
第4,695,950号明細書に詳しく述べられてい
る。ネイティブ・アーキテクチャに関するように、変換
索引バッファは、前のアドレス変換の結果を保持するた
めに、マシンに組み込まれ、繰り返し参照されるページ
のアドレスの分割速度を速める。
【0013】ネイティブESA/370アーキテクチャ
は、アクセスレジスタ及びリンケージスタックを取り入
れている。これらの機構は本出願人に譲渡された米国特
許第4,945,480号明細書に記述されている。解
釈実行機構は、ESA/370アーキテクチャのこれら
の機構の両者を、もし優先権のある実計算機上で使用可
能な場合、ゲストに使用可能にする。
【0014】ホストは、解釈実行を開始し、その後アク
セスレジスタ値をセーブする(及びホスト値を再記憶す
る)以前にゲストのアクセスレジスタ値をロードする責
任を負う。その後、アクセス・レジスタ変換は、ゲスト
DATを適用する以前に、ゲストレベルで、解釈実行機
構によって実行される。本発明以前の動的アドレス変換
と違い、アクセスレジスタ変換(ART)は、ホストレ
ベルで、解釈実行機構によっては実行されない。
【0015】ESA/370クラスのDAT−onゲス
トに対する、従来のアドレス変換処理は、図1に示され
ている。ゲストアクセスレジスタ変換はゲスト仮想アド
レス112に適用され、ゲスト仮想アドレス114を引
き出す。ゲスト動的アドレス変換は、次に、ゲスト仮想
アドレス114に適用されて、ゲスト実アドレス102
を引き出す。ゲスト実アドレスは、次いで、DAT−o
ffページ可能モードゲストと同様な方法で処理され
(図3に説明されているように)、ホスト絶対アドレス
110を引き出す。ゲストレベルでのアクセスレジスタ
変換の適用は、単一の仮想計算機の情況内で操作される
タスク間でメモリを共有するためにアクセスレジスタの
使用を可能にするが、異った仮想計算機で操作されるタ
スクの間でのホスト制御形メモリ共有は許さない。
【0016】System/370及び370−XAに
おけるようにESA370では、命令オペランドのベー
ス(B)部又はレジスタ(R)部は、汎用レジスタを指
定する。ESA/370のアクセスレジスタモードで
は、同数のアクセスレジスタが、オペランドのアドレス
空間を決定するためにアクセスレジスタ変換(ART:
Access−Register Translati
on)中に使用される。
【0017】アクセスレジスタ変換は、DAT中に使用
されるべきセグメントテーブル指定を配置するように使
用されるアクセスリストエントリ(ALE)を配置する
ように、アクセスレジスタのアクセスリスト・エントリ
トークン(ALET)を使用する。セグメントテーブル
指定は、アドレス空間に対応する。
【0018】MVS/ESA(TM)のようなオペレー
ティング・システムでは、アクセスレジスタは強力な能
力を発揮する。すなわち、制御プログラムの介入なし
に、命令シーケンス、又は同一命令においてさえ、多重
アドレス空間中のデータアドレッシングという能力であ
る。MVS/ESAはイネーブルされた動的アドレス変
換(DAT)でプログラムを実行する。その結果、各プ
ログラムが参照する論理アドレスは、MVSが維持する
構成体によって、実アドレスに変換される。障害はMV
Sに割込みを発生させ、それによって要求されるデータ
においてページングする。この環境では、アクセスレジ
スタは、いくつかの利益を提供する。 ○プログラムは、大量のデータを直接処理することがで
きる。 ○全命令セットは、多数の空間のどれかのデータを操作
するのに用いられることができる。 ○個々のプログラムは、オペレーティングシステムによ
って実行される、所有プログラムの許可に対するデータ
主体を共有できる。 ○プログラムはデータをより論理的に分離でき、類似デ
ータ、又は関連データを同一空間に保持し、制御される
共有を容易にする。
【0019】アクセスレジスタが提供する能力は興味を
そそる。しかしながら、VMの構造は、実質的にMVS
の構造とは異なる。VMは常に“2階層の”システムで
あった。図2に示されるように、VMの制御プログラム
(CP)要素132は、各ログオン・ユーザに対して、
別個の仮想計算機126〜130を形成する。アプリケ
ーションプログラムは会話型モニタシステム(CMS)
の下で実行され、単一ユーザの“第2レベル”のオペレ
ーティング・システムは、ユーザの仮想計算機内で実行
される。CMS仮想計算機は、対話型ユーザ,ファイル
システムマネージャやネットワーク・スプーラのような
システムサーバ,又はAPPC(Advanced P
rogram to Program Communi
cation)同等物のような私用サーバをサポートす
ることができる。
【0020】VMシステムの下では、CPはシステム資
源を管理して仮想計算機環境を構築し、シミュレートさ
れたマシン間の分離を実行する。CMSはファイルやプ
ログラム管理のようなアプリケーションサービス,及び
エンドユーザとの対話に対して責任を引き受ける。CP
はユーザ(仮想計算機)の活動の境界をつけるために許
可制御を適用する。CPは、DATやゲスト範囲チェッ
クのようなアーキテクチャ上の機構を用いて、前述のよ
うに、これら境界を確保する。逆に、CMSはアプリケ
ーションプログラムに対してはどんな制御もほとんど実
行しない。CMS下のプログラムは、(仮想)スーパー
バイザ状態で実行される。CMSは記憶キーのいくつか
を使用してうっかりやった損失を防止する。しかし、
“わがままな”プログラムは、常にCMSを迂回し、仮
想計算機を制御する。従来の仮想計算機(VM)理論に
よると、各ユーザマシンはそれ自身のマシンである。C
Pは、誤ったプログラムや悪意のあるプログラムの稼働
を、それが実行される仮想計算機に限定することを確実
にする。
【0021】さらに、CMSは単一の仮想計算機の線形
記憶だけを管理する。すなわち、CMSはDAT自体を
イネーブルすることなく実行され、仮想記憶管理(ペー
ジング又はスワッピング)は行わない。これらのタスク
はCPのドメインである。CPはDATテーブルを形成
し、仮想計算機記憶を示す各アドレス空間を規定するた
めにDATテーブルを使用する。DATテーブルによっ
て規定されたこれらのホスト仮想アドレス空間は、ゲス
ト絶対記憶をマップする。
【0022】CMSは、DATがイネーブルされること
なくページ可能モードで実行される一般クラスのゲスト
の一構成要素と考えることができる。このクラスのゲス
トに対するアドレス変換処理は図3に示されている。C
MSゲストがシステムメモリにアクセスする必要がある
場合、CMSは“ゲスト実アドレス”102を使用す
る。“ゲスト実アドレス”に対してゲストプレフィック
シングが適用されて、“ゲスト絶対アドレス”104が
得られる。主記憶源(MSO)の値はゲスト絶対アドレ
スに加えられ、結果の“ホスト仮想アドレス”106
は、それが主記憶エクステント(MSE)内にあること
を保証するために検査される。一旦、“ホスト仮想アド
レス”が生成されて検査されると、ホスト動的アドレス
変換が適用されて、“ホスト実アドレス”108を形成
する。そして、ホストプレフィックシングが適用され
て、“ホスト絶対アドレス”110を確立する。システ
ムメモリの物理記憶位置を参照するのは、この“ホスト
絶対アドレス”である。
【0023】CMSクラスのゲストの構造のために、本
発明以前の解釈実行機構によって供給されるように、ア
クセスレジスタ変換(ART)は、このクラスのゲスト
によって使用することができない。本発明以前には、A
RTは仮想アドレスに適用されるのみだったので、AR
Tを使用するためには、VM/ESA CP下のゲスト
はDATをイネーブルする必要があった。さらに、本発
明以前には、VM/ESA環境内でのアクセスレジスタ
変換の適用は、個々のゲストのアドレス空間内での使用
に限られていた。この個々のゲストは、それ自身のアク
セスレジスタ変換テーブルや、ゲストART制御レジス
タを保持する。
【0024】
【発明が解決しようとする課題】本発明の目的は、仮想
計算機境界で制御メモリの共有を可能にすることにあ
る。
【0025】また本発明の他の目的は、ゲスト動的アド
レス変換及びゲストアクセスレジスタ変換なしで実行さ
れ、多重ホストアクセスレジスタが特定されたアドレス
空間にアクセスする能力を有する仮想計算機を提供する
ことにある。
【0026】本発明のさらに他の目的は、ゲスト動的ア
ドレス変換とゲストアクセスレジスタ変換なしで実行さ
れ、システムメモリを所望のオペレーティング環境に依
存して、異なる方法又は同じ方法のいずれかで見ること
ができる仮想計算機を提供することにある。
【0027】
【課題を解決するための手段】前述の目的に一致して、
ホストコンピュータ・システム上でエミュレートされた
複数の仮想計算機ゲストによって、データ空間に共通ア
クセスする方法及び装置を提供する。この装置は所定の
仮想計算機ゲストから受け取ったトークンを用い、特定
ホストデータ空間を識別する。ゲストはまた、オフセッ
トを有する装置を提供する。
【0028】この装置は、1つのデータ空間のデータ位
置を示すホスト絶対アドレスを得るためにオフセット及
び識別ホストデータ空間を使用する。
【0029】好ましい実施例では、この装置は、所定の
オフセットによって識別されたアドレス範囲と、他のア
ドレス範囲をスワップするプレフィックシング手段を含
んでいる。プレフィックシング手段は、ホストコンピュ
ータ・システムからの信号に応答して、イネーブルさ
れ、あるいはディスエーブルされることができる。この
信号は、装置によってアクセス可能な制御テーブルのビ
ット状態によって指示される。したがって、多数の仮想
計算機ゲストが(ゲストプレフィックシングをディスエ
ーブルすることにより)データ空間の同一ビュー又は
(ゲストプレフィックシングをイネーブルすることによ
り)同一データ空間の異なるビューを得ることができ
る。
【0030】また、好ましい実施例では、強制私用空間
ビットは、ユーザの1次空間に対して(ASTEの)S
TDのシングルコピーを保持する間、データ空間のこれ
ら異なるビューを許す方法を供給する。ASTEにおけ
るSTDの私用空間ビットは、ホスト制御レジスタ(C
R)1がこのフィールドからロードされる場合、0にセ
ットされて、所有者に空間の適切な“非私用空間”ビュ
ーを与える。各共有者のアクセスリストエントリの強制
私用空間ビットは、1にセットされて、各共有者にアド
レス空間の“私用”ビューを与える。
【0031】
【実施例】多重制御データ空間機構(MCDS)は、解
釈実行アーキテクチャの改良である。この解釈実行アー
キテクチャは、多重ホストアドレス空間のデータにアク
セスするために、他の方法で動的アドレス変換(DA
T)を使用しないページ可能ゲストをイネーブルする。
代りの空間は、この仮想計算機又は他の仮想計算機によ
って生成された“データ空間”、すなわち他の仮想計算
機の1次空間であることが可能である。このメモリ共有
機構は、許可されたメッセージ受け渡しプロトコルより
もずっと効率的な、仮想計算機間のコミュニケーション
を許す。
【0032】要するに、CPとCMS間の境界は、権限
管理と仮想記憶管理の両者の境界である。MCDSは、
VMの固有2階層構造に調整されたESA/370の変
形である。MCDSは、CP、すなわち、権限のアービ
タをイネーブルして、ART(アクセス・レジスタ変
換)構造を構築する。このARTは個々の仮想計算機
に、多重ホスト仮想アドレス空間(すなわち、ゲスト絶
対アドレス空間)にアクセスすることを許容する。CP
は仮想計算機に、空間へのアクセスを指定するALET
を戻し、仮想計算機のプログラム(CMS又はアプリケ
ーションプログラム)はそのALETを用いて、代りの
ゲスト絶対空間をアドレスする。ゲストによって用いら
れたALETは、CPのART構造により変換されるの
で、偽ALETは個々のゲストの許可範囲を超える悪影
響を有さない。
【0033】ESA/370では、ARTはまず、アド
レス空間の識別を実行し、次いで、DATはその空間の
テーブルで実行され、データの実アドレスを見つけ出
す。同様に、MCDSの下で、ホストARTはホスト仮
想空間(ゲスト絶対空間)を識別し、ホストDATは目
標のホスト実アドレスを引き出す。
【0034】通常のESA/370ゲスト(例えば、M
VS/ESA)によるアクセスレジスタの使用に対し
て、MCDSは、アクセス範囲を、仮想計算機スーパバ
イザによって形成される空間よりもむしろ、CPが管理
するすべてのアドレス空間に拡張する。このようにし
て、MCDSは、仮想計算機境界を共有する制御メモリ
をイネーブルする。CP内には許可の責任があり、これ
は回避することはできない。最後に、MCDSは、2ギ
ガバイトのゲスト絶対記憶(ホスト管理記憶)のCMS
の限界を取り除く。
【0035】プログラム命令の実行は、便宜上2つのオ
ペレーションに分割される。第1のオペレーションは、
実行されるべき命令のフェッチである。第2のオペレー
ションは、命令が実行中に演算するデータのフェッチ及
び記憶のためのオペランドのアドレス指定である。
【0036】図4は、アドレス指定オペランドにアクセ
スレジスタを使用することを示している。動的アドレス
変換で使用するためのSTDを得るためにアクセスレジ
スタの内容を使用する処理は、アクセスレジスタ変換
(ART)オペレーションと呼ばれる。ゲスト命令12
は命令10コードと、ベースアドレスを含む汎用レジス
タ14を指定するBフィールドと、加算器15によって
汎用レジスタ14のベースアドレスと結合する場合、記
憶オペランドのホスト仮想アドレスを形成する変位Dと
を有している。MCDSホストアクセス・レジスタモー
ドでは、BフィールドはまたALETを含むアクセスレ
ジスタ16も指定する。このALETが、ホストART
10で変換される場合、データが記憶されるアドレス空
間にホストSTDを与える。ホストART10からのホ
ストSTD19は、加算器15からのホスト仮想アドレ
スと結合されることができ、参照番号18で示されるホ
スト動的アドレス変換(DAT)動作中に共に変換され
る場合、システムによる使用のためのオペランドのホス
ト実アドレスを与える。図1に示されたBフィールド及
び変位Dに加えて、Rフィールドは、記憶オペランドの
ホスト仮想アドレスを含む汎用レジスタを指定するため
に使用される。
【0037】MOVE(MVC)のような確定した命令
は、2つ以上のオペランドを指定する。各々のオペラン
ドは、異なるデータ/アドレス空間にあることも可能で
ある。したがって、例えば、2つのオペランドを特定す
る命令は、2つの変位と2つのALETを含む。仮想計
算機(VM)の下では、命令そのものはホスト1次アド
レス空間にあり、この空間はさらに第3の(異なる)ア
ドレス空間となることができる。
【0038】図5はゲストALET及びオフセットのホ
スト実アドレスへの変換を示したものである。20は汎
用レジスタ0〜15のアレイを示す。アクセスレジスタ
0〜15のアレイ20は、図4に関して前述したよう
に、各アクセスレジスタが、アレイ20の汎用レジスタ
とそれぞれ対になるように配列されている。ALETの
アクセスリスト・エントリナンバ(ALEN)は、アク
セスリスト24又は25の1つのエントリを選択する。
アクセスリスト24はDUAL、アクセスリスト25は
PSALである。図5の例では、アクセスレジスタ2の
ALENはPSAL25のエントリ3を指示する。DU
ALの源は、後述されるように、ホスト制御レジスタ2
のエントリをデコードすることで検出されるタスク指名
可能ユニットアクセス・リスト表示(DUALD)26
によって特定される。PSALのオリジンは、後述され
るように、ホスト制御レジスタ5のエントリをデコード
することで検出される1次空間アクセスリスト指示(P
SALD)27によって特定される。ART中使用され
るアクセスリスト表示は、実効アクセスリスト指示(A
LD)として知られている。
【0039】アクセスリストの各エントリは、ASNの
第2テーブルエントリ(ASTE)98を指示するアド
レスASTEを含む。CPによって使用されるASTE
はASTにあるけれども、ASTEは生成され、実際A
STにあることとは全体的には関係なくARTのための
機能を実行する。各ASTEは、図4との関連で説明し
たように、ホストDAT18によってホスト実アドレス
を決定するようなホストSTD値を含む。
【0040】プログラムに対して同時に使用可能である
2つのアクセス・リストがあり、各々は異なるケイパビ
リティドメインを表している。一方のアクセスリスト
は、タスク指名可能ユニットアクセス・リスト(DUA
L)であり、他方のアクセスリストは1次空間アクセス
リスト(PSAL)である。ALETの1ビットは、A
LETのALENがDUAL24のエントリを指すのか
PSAL25のエントリを指すのかを判定する。
【0041】DUALドメインはタスク指名可能ユニッ
トによって実行されるプログラム又はプログラム群に代
りに、タスク指名可能ユニット(“タスク”又は“処
理”)と永久的に関連するようにされている。このシス
テムのタスク指名可能ユニット毎に固有のDUALがあ
る。タスク指名可能ユニットが多くの異なるアドレス空
間でプログラムを実行するとしても、タスク指名可能ユ
ニットのためのDUALは変化しない。PSALドメイ
ンはホスト1次アドレス空間に関連する。ホスト1次ア
ドレス空間で実行する全プログラムは、アドレス空間の
PSALを共有する。これによって、1次空間内で実行
されるプログラムは、アドレス空間の共通セットへのア
クセスを共有できる。この1次アドレス空間が変化する
場合、このPSALは変化する。
【0042】有効なALETを所有しているユーザは、
DUAL24又はPSAL25上のいずれかのアクセス
リスト・エントリにアクセスすることができ、このエン
トリは所望のアドレス空間を特定する。他のドメインも
またALET及び選択された制御レジスタを用いて同様
に実行制御される。例えば、システムの全プログラムの
ケイパビリティを有するシステムワイド・アクセスリス
ト(SWAL)ドメインが生成される。ドメインの種々
のサブセットはSASNドメインアクセス・リスト(S
SAL)のように、所望されるように構成されることが
でき、現存の機構をさらに開発することを可能にする。
【0043】ALETが、ホストアクセス・レジスタア
ドレス指定モードの場合、1次アドレス空間及び2次ア
ドレス空間のそれぞれのオペランドをアクセスするため
に予約されているため、DUALのエントリ0及び1は
使用されない。CPUのアドレス指定モードは、後述さ
れるように、ゲストPSWのビットによって指定され
る。CPUがホストアドレス・レジスタアドレス指定モ
ードの場合、ALET=0は常にホスト1次アドレス空
間を参照し、ALET=1は、常にホスト2次アドレス
空間を参照する。図5を見ると、ブロック28はこれら
の特別のALETを識別し、正しいホストSTDをPA
SNに与え、それらが発生した場合SASNをDATを
与える。ホスト1次アドレス空間及びホスト2次アドレ
ス空間に対するSTD値は、ホスト制御レジスタ1及び
7に保持されるので、アクセスリスト・エントリ0及び
1は、それぞれ使用されない(図6参照)。PSAL2
5のエントリ0,1,及び2は、実行に際し、使用され
ず、無効にマークされる。
【0044】ホストART索引バッファ(ALB)19
9は、ホストARTからのホストSTDを保持するため
に、AR22,AL25,及びAST30からの入力を
受け取りセーブする。ホストALBはまた、アクセスリ
スト指示であるDUAL又はPSALを保持する。同一
のALETが再び使用される場合、ホストALB199
は、正しい出力を直接、ホストDAT18に供給するの
で、ホストARTは繰り返される必要がない。
【0045】図6及び図7は、命令実行中プログラム制
御及びCPUの状態のための情報を与えるための制御レ
ジスタ及びPSW語をそれぞれ示している。
【0046】図6は、本発明のMCDS機構のためのホ
スト制御レジスタ0〜15の内容を示す。図6のホスト
制御レジスタの内容のすべては、それらの大半は、米国
特許第4,945,480号明細書その他で記載されて
いる多重アドレス空間(MAS)及び二重アドレス空間
(DAS)機構の制御レジスタと同一の機能を有し、こ
れれは公知であるので、説明しない。したがって主に、
MCDS機構を与えるのに必要なそれらの変更について
は後述される。MAS機構と違って、MCDSは,PS
Wキーマスク(PKM),2次空間アドレス番号(SS
AN),許可キーインデックス(AX),1次空間アド
レス番号,ホームセグメントテーブル指示(HST
D),又はリンケージスタック・エントリアドレスを使
用しない。これらは、MAS機構によって使用される場
合多数の制御レジスタ3,4,及び13〜15で見出さ
れる。ホスト制御レジスタ1は1次セグメントテーブル
指示(PSTD)を含む。ビット1〜19は1次セグメ
ントテーブル・オリジン(PSTO)を特定し、ビット
25〜31は1次セグメントテーブル長(PSTL)を
指定する。ホスト制御レジスタ2のビット1〜25は、
DUALDを位置指定するためにMCDS機構によって
使用されるタスク指名可能ユニット制御テーブルオリジ
ン(DUCTO)を指示する。ホスト制御レジスタ5の
ビット1〜25は、1次ASTEオリジン(PASTE
O)を指定する。制御レジスタ5のエントリは、1次ア
ドレス空間のためのASTEで、ASTEエントリを指
示してPSALオリジン、その他の情報を見出す。
【0047】ホスト制御レジスタ7は、ビット1〜19
が2次セグメントテーブルオリジン(SSTO)を含
み、ビット25〜31が2次セグメントテーブル長(S
STL)を含むフォーマットの2次セグメントテーブル
指示(SSTD)を含んでいる。ホスト制御レジスタ8
のビット0〜15は、本発明のMCDS機構によって使
用するための拡張許可インデックス(EAX)を含む。
【0048】各ゲストはまた、それ自身の制御レジスタ
のセットを含む。MCDSがインストールされると、S
IE状態記述のモード制御ビットはゲストのためのMC
DSモードを特定するためにホスト制御プログラムによ
って使用される。ゲスト制御レジスタ0のビット15の
1は、MCDSモードで、MCDSケイパビリティを使
用するために、ゲストをイネーブルする。
【0049】図7は、ゲストプログラム状態語(PS
W)のフォーマットを示す。PSWのビット5は、ゲス
トDATがアクティブか否かを規定するDATモードビ
ット(T)である。MCDSゲストの場合、ゲストDA
Tは常にオフである。したがって、MCDSゲストの場
合、ゲストPSWのビット5は、0であることが必要と
される。ビット16及び17は、アドレス指定モードを
特定するために結合される。MCDSモードの場合は、
ゲストPSWビット16と17の組合せは、CPUがホ
スト1次空間モード(00)にあるか、ホストアクセス
・レジスタモード(01)にあるかを規定する。PSW
のビット32は、PSWのビット33〜63の命令アド
レスのフォーマットを規定するアドレス指定モードであ
る。PSWのフィールドの残りの機能及びフォーマット
は、IBM System/370オペレーションに規
定されている。
【0050】図5に関して説明されたALETのフォー
マットは、図9のブロック100に詳しく示されてい
る。このトークンは、VM/ESAサービスの使用によ
りゲストによって得られる。ALETでは、ビット7は
ビットが1の場合、ALENがPSALを参照すること
を指示する1次リストビット116である。1次リスト
ビット7が0の場合、ALENはDUALを参照する。
ビット16〜31は、図5で参照されるALENを含ん
でいる。ALENに16を乗ずると、その積は、実効ア
クセスリストの始めから、指示されたアクセスリスト・
エントリまでのバイト数に等しい。ART中、もしAL
ENが実効アクセスリスト外にあるエントリを指示する
か、又はALETの左7ビットがすべて0でない場合、
例外が認識される。ALENが、実効ALDのアクセス
リスト長(ALL)によって決定されるようなアクセス
リストの終わりを越えたアドレスを指示するならば、ア
クセスリスト・エントリは、実効アクセスリストの外に
ある。ALETの記述フォーマットは、ALETが16
進法で00000000又は00000001の場合、
これらの値がART処理によって特別な意味を割り当て
られているので、適用されない。
【0051】アクセスレジスタ、汎用レジスタ、又は記
憶装置には、ALETが存在でき、ユーザの問題プログ
ラムによる操作からは保護されない。命令の使用によ
り、どんなプログラムもALETの値を、アクセスレジ
スタと汎用レジスタと記憶装置間で転送することができ
る。呼び出されたプログラムは、アクセスレジスタの内
容を、使用可能な記憶エリアにセーブすることができ、
それ自身の目的のために、アクセスレジスタをロード及
び使用することができ、呼出し元に戻らないうちにアク
セスレジスタの原内容を回復することができる。ALE
Tのビット8〜15は、アクセスリスト・エントリシー
ケンス番号(ALESN)を含む。ALETは問題プロ
グラムから保護されておらず、ユーザは不注意にその内
容を任意の値に書き換えてしまうかもしれないので、A
LESNが、ホストART中チェックされる信頼性機構
として、ALETの中に含まれる。
【0052】図5のアクセス・レジスタ変換に関して使
用されるアクセスリスト・エントリ(ALE)のフォー
マットは、図9のブロック120で示されている。AL
Eのビット0は、ALEが有効でない場合を指示する無
効ビットである。ビット7は、0の場合、どんなプログ
ラムも、ホストARTオペレーション中、このアクセス
リスト・エントリを使用することを許可されていること
を特定する使用ビットである。ビット7が1の場合、A
LEのビット16〜31のアクセスリスト拡張許可イン
デックス(ALEAX)値は、呼び出しプログラムがこ
のアクセスリスト・エントリを使用するのを許可されて
いるか否かを判定するのに私用される。ALEは、妥当
性検査をするために指定ALETのALESN値と比較
するビット8〜15のALESN値を含む。ALEのビ
ット65〜89は、関連アドレス空間の対応するAST
Eアドレスを含んでいる。ASTEシーケンス番号(A
STESN)は、後述されるようにASTEエントリに
関して妥当性検査として使用するためALEのビット9
6〜126にある。
【0053】図5のアクセスリスト24及び25のエン
トリは、CPによって与えられ、いくつかのゲストによ
り直接操作から保護されることが意図されている。この
保護は、キー制御保護によるか又はDATによるどんな
ゲストプログラムによってもアクセス不可能な実記憶に
アクセスリストを配置することにより得られる。エント
リのビット0によって決定されるように、ALEは、有
効か無効かどちらかである。有効なALEは、そのアド
レス空間をアクセスするために適当に許可されたプログ
ラムによって使用されることのできるアドレス空間を特
定する。無効なALEは、割り付け又は再割り付けの場
合、有効エントリとして使用可能である。制御プログラ
ムは、有効ALEを割り付け、以前割り付けられたAL
Eを無効にするサービスを提供する。
【0054】ALEの割り付けは、次のステップよりな
る。ゲストは、アドレス空間の識別を制御プログラム
(CP)に渡し、DUAL24かPSAL25かを特定
する標識も渡す。この標識は、ALETの1次リストの
ビット7である。次に、制御プログラムは、後述するよ
うに、アドレス空間をアクセスするためにゲストプログ
ラムの権限をチェックする。もし、ゲストプログラムが
権限付与されている場合、制御プログラムは、特定アク
セスリストの無効エントリを選択し、有効エントリに変
え、ASTEアドレス及びASTESNを含み、それに
よって、対象アドレス空間を特定し、ゲストプログラム
に現在割り付けられたALEを指定するALETの値を
戻す。次に、ゲストプログラムは、アドレス空間にアク
セスするために、新しいALETをアクセスレジスタに
置くことができる。その後、制御プログラムの無効化サ
ービスの使用により、割り付けられたALEは、無効に
される。
【0055】このように、特定のALEは割り付けら
れ、無効にされ、再割り付けられ、今度の異ったアドレ
ス空間の特定化は、元の割り付けで特定される。概念的
に間違ったアドレス空間を指定するALETの誤使用か
らユーザを保護するために、ALESNはALET及び
ALEの両方に記憶されることができる。制御プログラ
ムがALEを割り付ける場合、制御プログラムは同一A
LESNを、ALEと問題プログラムに戻る指定ALE
Tの双方に置く。制御プログラムがALEを再割り付け
する場合、再割り付けられたALEのALESNの値
を、以前に指定されたALETのALESNの値が、も
はや新しいALEのALESNに一致しないように変え
られる。
【0056】ALEのASTESN部は、ASTE及び
関連図面に関してさらに説明するけれども、ここで重要
なのは、ALEのASTESN値と、ASTEの値との
比較は、ASTEを指定するALE権限が確認される機
構であることである。したがって、ASTEは、再割当
てされ、異なるASTESNが、トラックを、ASTE
を参照した全ALEエントリに返す必要なく、その使用
を制御するために、割り当てられることができる。AS
TESNの使用により、制御プログラムは、ASTEを
使用可能な全プログラム,又はタスク指名可能ユニット
を保持する必要はない。したがって、権限は、ASTE
SNを変えることにより変更されることができ、例外又
は割込みは、適切なASTESNなしでASTEを使用
する試みがなされる場合、生成されることができる。こ
れにより、オペレーティングシステムは、ASTESN
が変更されないうちにALEで許可されたケイパビリテ
ィを有するASTEにアクセスする試みを知ることがで
きる。したがって、オペレーティングシステムは、新し
い、及び/又は、異った空間の場合ASTEを安全に再
使用するか又は現空間の現評価者(assessor)
の権限を、再有効化する機構を有する。
【0057】MCDSの下では、ゲストは、ゲストPS
Wのビット16及び17によって決定されるようなホス
ト1次空間モード又はホストアクセス・レジスタモード
のいずれかである。各モードはゲストオペランド・アド
レスがどのように変換されるかを決定する。ホスト1次
空間モードでは、ゲストオペランド・アドレスはホスト
1次アドレス空間で変換される。ホストアクセス・レジ
スタモードでは、ゲストオペランド・アドレスは、16
までの異ったアドレス空間のどれかで同時に分解され
る。どちらのモードでも、命令はホスト1次アドレス空
間でフェッチされ、実行される。
【0058】有利なことには、上記2つの動作モード
は、ゲストをイネーブルして、1又はそれ以上のプログ
ラムを実行する。このプログラムは、ゲストそのものを
MCDSモードにする必要なしにアクセスレジスタ変換
を使用しない。
【0059】ホスト1次空間モードのアドレス変換は、
図1に示されたように、ゲストDATオフのESA/3
70モードのページ可能ゲストの場合アドレス変換と同
一である。ゲストアクセス・レジスタの内容は無視さ
れ、ホストアクセス・レジスタ変換は適用されない。
【0060】MCDSホストアクセス・レジスタモード
・ゲストの動作は、図8に示されている。ゲストがホス
トアクセス・レジスタモードである場合、オペランドア
ドレスはホストアクセス・レジスタを特定された実アド
レスと呼ばれる。ゲストアクセス・レジスタ変換及びゲ
スト動的アドレス変換は使用されない。その代り、ホス
トアクセス・レジスタを特定された実アドレスは、ホス
トアクセス・レジスタ変換及びホスト動的アドレス変換
により変換され、ホスト実アドレスを生成する。
【0061】図8に示すように、ホストアクセス・レジ
スタを特定された実アドレスは、アクセスリスト・エン
トリトークン(ALET)802及びオフセット803
からなる。ALET802は、記憶オペランドの実アド
レスを特定するのに使用される命令のBフィールド又は
Rフィールドによって指定されるアクセスレジスタの中
に含まれる。ALET802は、ホストアクセス・レジ
スタ変換中804使用され(後述する)、ホストセグメ
ントテーブル指示(STD)805を生成する。このホ
ストセグメント・テーブル指示805は、特定化された
オフセット803が存在するアドレス空間を決定する。
ホストSTDの一部である私用空間ビット806は、ゲ
ストプレフィックシング,主記憶オリジン(MSO),
及び主記憶エクステント(MSE)が適用されるか否か
を決定するために使用される。ホストセグメント・テー
ブル指示805の私用空間ビット806が1である(8
07で)場合、ゲストプレフィックシング(後述する)
は、808でオフセット803を適用し、809でゲス
ト絶対アドレスを生成する。さらに、私用空間ビット8
06が1である場合、状態記述制御ブロックの実効主記
憶源は、810でゲスト絶対アドレスに付加され、結果
として得られたアドレスは、811で状態記述制御ブロ
ックの実効主記憶エクステントと比較されて、結果とし
て得られたアドレスが有効か否かを判定する。この結果
得られたアドレスはホスト仮想アドレス812である。
私用空間ビット806が813で0である場合、変更さ
れないオフセット603は、ホスト仮想アドレス812
である。ホスト仮想アドレス812は、814でホスト
動的アドレス変換(ホストDAT)中ホストセグメント
・テーブル指示805と共に使用され、ホスト実アドレ
ス815を生成する。次に、ホスト実アドレスは、81
6でホストプレフィックシング中使用され、ホスト絶対
アドレス801を生成する。このホスト絶対アドレス
は、ホスト主記憶位置に割り当てられたアドレスであ
る。
【0062】図9と図10は2つで1組であり、MCD
Sの下でプログラム権限チェックをするホストアクセス
・レジスタ変換処理を示す図である。ALETがアクセ
スレジスタ・オペレーションに使用され、オペランドを
フェッチ又は記憶する場合、ALETのビット0〜6は
115で調べられ、ALETが有効であることを保証す
る。ALETのPビット116が0である場合、アクセ
スリストはDUALであり、Pビット116が1である
場合、アクセスリストはPSALである。アクセスリス
トがDUALである場合、実効ALDは、DUCTから
フェッチされ、このDUCTのアドレスはホスト制御レ
ジスタ2に記憶される。アクセスリストがPSALであ
る場合、実効ALDは1次ASTE(PASTE)から
フェッチされ、このPASTEのアドレスはホスト制御
レジスタ5に記憶される。実効ALDはアクセスリスト
源及びアクセスリスト長(ALL)とを含んでいる。1
17で、ALENはALLと比較され、ALENがアク
セスリストの境界外にないことを決定する。ALENが
この妥当性検査をパスすると、実効アクセスリスト源
は、119で加算器の演算によりALENと結合され、
アクセスリスト121AのALE120のアドレスを検
出する。無効ビット、すなわちALE120のビット0
は、121Bでそれが0かどうか判断するために検査さ
れ、それによってALE120が有効かどうかを判定す
る。ALE120が有効である場合、ALETのALE
SN122は124でALE120のALESN123
と比較される。ALESN122がALESN123に
等しい場合、ALETはALE120を指定するために
許可され、ASTEアドレス125は、ASTE126
をフェッチするのに使用される。ASTE126の妥当
性は、無効ビット127を128で検査することによ
り、確認される。ASTE126が有効の場合、AST
ESN130は132でASTESN131と比較さ
れ、ALE120がASTE126を指定するように許
可されることを保証する。これらの検査はARTの有効
部を終了させる。
【0063】アドレス空間にアクセスするために呼出し
プログラムの権限は、検査される。第1の検査135が
行われ、Pビット136が0か否かを判定する。Pビッ
ト136が0である場合、全プログラムは許可され、A
LEに関連するアドレス空間にアクセスされ、これ以上
の検査は行われない。Pビット136が1である場合、
ALEAX137は、比較器139によりホスト制御レ
ジスタのEAX138と比較される。比較器139での
比較が等しい場合、このプログラムはアドレス空間にア
クセスするために特に許可され、これ以上の検査は行わ
れない。比較器139での比較が等しくない場合、AS
N拡張許可チェック140が行われる。このASN拡張
許可チェック140が、ホスト制御レジスタ8のEAX
と権限テーブル長(ATL)と比較することによって行
われ、EAXが権限テーブルの境界外のエントリを指定
しないことを確かめる。ホスト制御レジスタ8にあるE
AXは、その源がATO142である権限テーブルへの
インデックスとして使用される。もし権限テーブルのS
ビットがそのEAXに対して1に等しいようにセットさ
れているならば、プログラムはアドレス空間にアクセス
することが許可される。
【0064】プログラムがアドレス空間にアクセスする
ことが許可され、前述のようにアクセスが記憶アクセス
である場合、ALEのフェッチオンリービット114
が、115Bで示されるように検査される。フェッチオ
ンリービットが0なら、記憶アクセスは許可される。フ
ェッチオンリービットが1なら、アクセスリスト制御保
護のための保護例外が、認識される。
【0065】プログラムがアドレス空間にアクセスする
ことがなお許可されている場合(記憶アクセス又はフェ
ッチアクセスのいずれかの場合)、ホストSTD144
はASTE125から得られる。ホストSTDは、AL
Eの強制私用空間ビット146と、ホストSTD144
の私用空間ビット148との論理ORを取ることによ
り、147で修正され、演算結果は図10に示されるよ
うにゲストプレフィックシング及びホストDAT操作に
供給されるホストSTDの私用空間ビットを置換する。
ホストSTD144の残りのビットは不変である。
【0066】図10は、プレフィックシング,主記憶源
アプリケーション,及び主記憶エクステントチェック処
理を示したものである。図10で、ホストART処理か
ら得たホストSTD900は、セグメントテーブル源9
01及び私用空間ビット902を含む。セグメントテー
ブル源はホストDAT905中に使用される。私用空間
ビットは、ゲストプレフィックシング,ゲスト主記憶源
アプリケーション,及びゲスト主記憶エクステント検査
が実行されるか否かを判定するのに用いられる。もし、
私用空間ビット902が1ならば、実効オフセット90
6は、ゲストプレフィックシング,主記憶源付加,及び
主記憶エクステント検査を適用することなく、ホストD
AT処理905によって使用される。すなわち、オフセ
ット906はホストDAT処理905によって直接使用
される。私用空間ビット902が916で0ならば、オ
フセット906のビット1〜19はすべて0か否かを9
07で検査する。もしオフセットのビット1〜19がす
べて0ならば、状態記述制御ブロック908のゲストプ
レフィックス・フィールドのビット1〜19は、実効オ
フセットのビット1〜19を置換するのに使用され、実
効オフセットのビット20〜31は、910で右側に連
結されて、ゲスト絶対アドレス911を生成する。
【0067】もし実効オフセットのビット1〜19がす
べて0でなく、909でゲストプレフィックス値に等し
いならば、実効オフセットのビット1〜19は0で置換
され、実効オフセットのビット20〜31は、910で
右側に連結されて、ゲスト絶対アドレス911を生成す
る。もし実効オフセットのビット1〜19がすべて0で
なく、ゲストプレフィックス値に等しくないならば、全
オフセットは不変で、ゲスト絶対アドレス911である
と認識される。さらに、916で私用空間ビット902
が0ならば、914でゲスト絶対アドレスは実効主記憶
源912に加算され、915で演算結果は状態記述制御
ブロック913の実効主記憶エクステント値と比較され
る。もし結果のアドレスが実効主記憶エクステント値よ
り小さいか、又は等しければ、結果のアドレスは有効
で、ホストDAT905中使用される。
【0068】MCDSはESA/370の私用空間ビッ
トの機能を拡張する。もし仮想計算機がデータ空間を生
成するなら、そのデータ空間にプレフィックス関連の保
護機構を適用するのは適切でない。個別のユーザ仮想計
算機間で、全共有者はデータ空間の同じ位置に到達する
ために同じアドレスを使用できるべきである。したがっ
て、MCDSは、私用空間属性の影響を拡張して、プレ
フィックシングを抑制する。同様に、状態記述の主記憶
エクステントによって特定された仮想計算機の1次空間
サイズは、それがアクセスできる他の空間のサイズと関
係ない。このように、MCDS私用空間制御は、主記憶
エクステント・チェックの適用を抑止する。要するに、
私用空間属性はデータの各共有者に、データの同じ“ビ
ュー(view)”を与える。さらに、“私用”はアド
レス空間の属性ではなく、むしろアクセスの属性であ
る。ユーザの1次アドレス空間が2次仮想計算機と共有
される場合、オーナーのアクセスは私用として指示され
ない。プレフィックス効果は1次空間の場合適切である
からである。共有者のアクセスは私用として指示され、
外部空間のアドレスへの共有者プレフィックスの適用を
抑制する。
【0069】強制私用空間ビットは、ユーザの1次空間
のためにSTDの単一コピー(ASTEにおける)を保
持しながら、1次空間のこれら異なるビューを許容する
方法を提供する。ASTEのSTDの私用空間ビット
は、0にセットされ、ホストCR1はこのフィールドか
らロードされる場合、オーナに適切な空間の“非私用”
のビューを与える。各共有者のアクセスリスト・エント
リの強制私用空間ビットは、1にセットされ、各共有者
にアドレス空間の“私用”ビューを与える。
【0070】アクセスリスト・エントリの私用ビット及
びALEAXフィールドは、ALEによって表されるア
ドレス空間へのプログラムのアクセスを許可するか又は
禁止する高性能権限機構を提供する。私用ビットは0で
あることも可能で、よってアクセスリストを実行する全
プログラムが、ALEによって表されるアドレス空間に
アクセスすることを許容する。ALE私用ビットは1に
なることができ、ホスト制御レジスタ8のEAXはAL
EAXフィールドに等しくなることができる。これによ
って特定のEAXを有するプログラムは、ALEによっ
て表されるアドレス空間へアクセスすることができる。
最後に、ALE私用ビットは1になることができ、ホス
ト制御レジスタ8のEAXは、1に等しいSビットを有
する目標空間権限テーブルのエントリを選択することが
できる。これによって、異なるEAXで実行することが
できる多重プログラムは、ALEによって表されるアド
レス空間にアクセスすることができる。
【0071】図11〜図13は3つが一緒になって、ア
クセスレジスタ変換ステップと例外のフローチャートを
形成する。ART論理が呼び出されると、アクセスレジ
スタ0が指定されたか否かを判定する検査が150で行
われる。アクセスレジスタ0が指定されると、ARTが
TEST ACCESS動作によって呼び出されるか否
かを判定する検査が151で行われる。TEST AC
CESS動作は従来公知であるので、ここでは詳述しな
い。アクセスレジスタ0が指定されないか、又はこれが
TEST ACCESS動作である場合、アクセスレジ
スタのALETは、152で使用するために指定され
る。アクセスレジスタ0が指定されていて、これがTE
ST ACCESS動作でない場合は、16進数000
00000が153でALETに割り当てられる。AL
ETが16進数00000000に等しいか否かを判定
する検査が154で行われる。もしイエスなら、ホスト
1次アドレス空間のためのSTDは、155でホスト制
御レジスタ1から得られる。ALETが16進数000
0000の値を有しているか否かを判定する検査が15
6で行われる。もしイエスなら、ホスト2次アドレス空
間のためのSTDは、157で制御レジスタ7から得ら
れる。ALETのビット0〜6が0に等しいか否かを判
定する検査が158で行われる。もしビット0〜6が0
に等しくないならば、ALETに割り当てられた値は有
効ではなく、ゲストALET仕様例外が159で生起さ
れ、動作が抑制される。
【0072】ALETビット7が1か否かを判定する検
査が160で行われる。もし1なら、ホスト制御レジス
タ5のPASTEOエントリが161でデコードされ、
PSALのために実効ALDがフェッチされる。もしA
LETビット7が0に等しいなら、ホスト制御レジスタ
2のDUCTOエントリが162でデコードされ、実効
ALDはDUALのためにフェッチされる。フェッチア
ドレスが163で有効でないと判定された場合、ゲスト
アドレス指定例外は164で生起され、動作が抑制され
る。アドレスが163で有効と判定された場合、ALE
TのALENが実効ALL(実効ALDのビット25〜
31)の範囲外にあるかどうかを判定する検査が165
で行われる。もし範囲外なら、ゲストALEN変換例外
が166で生起され、動作が無効にされる。165での
答えがノーならば、ALEは167にあり、ALEアド
レスが有効か否かを判定する検査が165で行われる。
ALEアドレスが有効でない場合、ゲストアドレス指定
例外が168で生起され、動作が抑制される。アドレス
が167で有効と判定された場合、ALEの有効ビット
は、ALEが有効か否かを判定するために169で検査
される。もしALEが有効でないならば、ゲストALE
N変換例外が170で認識され、動作が無効にされる。
ALEが169で有効と判定された場合、ALETのA
LESNは、171でALEのALESNと比較され
る。比較171が等しくない場合は、ゲストALEシー
ケンス例外が172で認識され、動作は無効にされる。
171での比較が等しい場合、ASTEは、ALEのA
STEアドレスを用いて173に置かれる。ASTEア
ドレスが有効か否かを判定する検査が行われる。アドレ
スが有効でない場合、ゲストアドレス指定例外が174
で生起され、動作が抑制される。ASTEアドレスが1
73で有効と判定された場合、ASTEの有効性ビット
は175で検査され、ASTEが有効か否かが判定され
る。ASTEが有効でない場合、ホストASTE有効性
例外は176で生起され、動作がは無効にされる。17
7で、ALEのASTESNがASTEのASTESN
と比較される。177で比較が等しくない場合、ホスト
ASTEのシーケンス例外は178で生起され、動作が
無効にされる。
【0073】前記ブロック163〜178が、このよう
にして、得られたエントリが有効か否かを判定する。1
79でALEの私用ビット、すなわちビット7は、0に
等しいか否かを判定検査するために検査される。179
でまたALEのALEAXエントリは、ホスト制御レジ
スタ8のEAXと比較される。この2つの検査のいずれ
も等しい場合、オペランドのためのホストSTDは、1
80に示されるように、アドレス空間のASTEから得
られる。STDはALEの強制私用空間ビットとホスト
STDの私用空間ビットとの論理ORを取ることによ
り、147で修正され、演算結果は、図13に示したよ
うに、ゲストプレフィックシング及びホストDATオペ
レーションに、与えられるSTDの私用空間ビットにな
る。ホストSTDの残りのビットは変更されない。私用
ビットが0の場合、プログラムは許可され、アクセスレ
ジスタ変換の許可ステップが完了する。私用ビットが1
であるがALEAXがEAXに等しい場合、プログラム
もまた許可され、アクセスレジスタ変換の許可ステップ
は完了する。
【0074】このプログラムが179でまだ許可されな
い場合、ASTEの有効性は、ASTEビット30,3
1,60〜63が0か否かを判定することによって、1
81で検査される。そうでない場合、ホストASN変換
の仕様例外は182で生起され、動作が抑制される。ホ
スト制御レジスタ8のEAXビット0〜11の値は、1
83で権限テーブル長と比較され、EAXが、権限テー
ブルの境界外のエントリを指定しないことを確かめる。
183の比較がイエスの場合、ゲスト拡張許可例外が1
84で生起され、動作が無効にされる。EAXが、権限
テーブルの境界内のエントリを指定する場合、関連EA
Xエントリは185の権限テーブルに置かれる。権限テ
ーブルエントリのアドレスが有効でない場合、ゲストア
ドレス指定例外が186で生起され、動作が抑制され
る。
【0075】拡張許可検査は、185に配置された権限
テーブルの2次許可ビット(Sビット)が1に等しいか
否かを判定することにより、187で行われる。187
の検査がイエスの場合、プログラムは、アドレス空間に
関連する権限テーブルによって許可されたものの内の1
つであり、アドレス空間のためのホストSTDは、18
8でASTEから得られる。187での比較がノーの場
合、プログラムは許可されず、ゲスト拡張権限例外は1
89で認識され、動作が無効にされる。
【0076】アクセス特定保護の検査は、202で行わ
れる。なされるべきアクセスが記憶で、アクセスリスト
・エントリのフェッチオンリービットが1の場合、ゲス
ト保護例外は203で認識され、動作が抑制される。ど
んな例外も認識されなかった場合、アドレス空間のため
のSTDは、188でASTEから得られる。
【0077】ALEの強制私用空間ビットとSTDの私
用空間ビットとの論理ORを取ることにより、STDは
190で変更され、演算結果は、STDの私用空間ビッ
トとなり、図13に示されるように、ゲストプレフィッ
クシング及びホストDATオペレーションに与えられ
る。STDの残りのビットは、不変である。
【0078】ホストSTDの私用空間ビットが191で
1の場合、193のホストDAT処理に供給されるホス
ト仮想アドレス192である。私用空間ビットが、19
1で0の場合、オフセットのビット1〜19は、194
で0かどうか検査される。これらのビットがすべて0の
場合、オフセットのビット1〜19は状態記述制御ブロ
ック195からのプレフィックス値のビット1〜19と
置換され、ゲスト絶対アドレス196を生成する。ビッ
ト1〜19が0でなく、そのかわりに、状態記述制御ブ
ロック197からのプレフィックス値のビット1〜19
に一致する場合、オフセットのビット1〜9は、198
で0と置換され、ゲスト絶対アドレス196を生成す
る。オフセットのビット1〜19が0でなく、プレフィ
ックスのビット1〜19に一致しない場合、オフセット
はゲスト絶対アドレス196である。これにより、プレ
フィックス動作が完了する。
【0079】ゲスト絶対アドレスは、状態記述制御ブロ
ックの実効主記憶源によって修正される。そして、演算
結果のアドレスが無効、すなわち、演算結果のアドレス
が状態記述制御ブロック199の実効主記憶エクステン
トより小さくないか又は等しい場合、ホスト変換例外条
件が200で認識される。そうでない場合、すなわち、
演算結果のアドレスが有効な場合、それは、ホストDA
T処理193中で使用されるホスト仮想アドレス201
である。
【0080】有利なことに、MCDSホストARTは、
アドレス空間へのリードオンリーアクセスを許可するこ
とができる。これにより、いくつかのゲストは空間にリ
ード/ライトアクセスができ、他のゲストはリードオン
リーアクセスができる。これは、従来の仮想計算機(V
M)の共有メモリケイパビリティに対する著しい改良で
ある。仮想計算機の初期のバージョンは、“セーブされ
たセグメント”を、多重仮想計算機の絶対アドレス空間
に埋め込ませることができたが、共有データは共有者全
員によってしか書込み可能であるか又は共有者の誰も書
込み可能でないかのいずれかである。個々の仮想計算機
のアクセスの制御によって、CMS共有ファイルシステ
ムの場合のようなサービスマシンは、アドレス空間に安
全にデータをロードすることができ、そこからユーザマ
シンはデータを直接フェッチすることができる。
【0081】アクセスリスト制御保護は、ESA/37
0並びにMCDSに含まれる。したがって、CPは明示
ソフトウェアテストよりもむしろ、この機構を用いて、
ゲストのための動作をシミュレートする場合の保護を強
化することができる。仮想計算機は、格納キー及びPS
Wキーの割当てを、仮想計算機への権限を強化するのに
不適切なキーを作り出している各仮想計算機のゲストに
引き渡す。アクセスリスト制御保護は、この分野におけ
る仮想計算機固有のニーズを生起する。
【0082】ホストアクセス・レジスタ変換、すなわち
ホストART処理中に認識された例外条件は、いくつか
の例外条件のどれか検出することができる。これらの条
件は一般にホストに報告される。このホストは適切な動
作を行うことができる。しばしば、ホストの応答は、ゲ
ストに対して例外を提示することである。CPはマシン
によって報告された特定MCDS例外を、仮想計算機の
適用に意義のあるESA/XC例外に変形する。
【0083】例えば、共有空間のオーナーが、空間は、
全共有者から“隔離”されるべきだと要求する場合、C
Pは空間に対するASTEのシーケンス番号を増分す
る。ART中、マシンは、ALEのシーケンス番号を、
それが指定するASTEのシーケンス番号と比較する。
比較して一致しない場合、ASTEシーケンス例外がホ
ストに提示される。それによって、CPは、空間にアク
セスしようとする前共有者の試みを検出し阻止する。M
CDS ASTEシーケンス例外に応答して、CPは、
ESA/XCアドレス指定機能例外を、空間へのアクセ
ス許可が取り消されたことを指示するゲストに与える。
【0084】ホストアクセスレジスタ変換中認識される
他の例外は、ゲストに提示される。例えば、ゲストは、
ゲストアクセスレジスタのALETに関連するエラーに
対して責任を負っている。もし、ゲストアクセスレジス
タのALETが、無効フォーマットを有することが検出
された場合、ALET仕様例外は認識され、ホストアク
セスレジスタ変換中にゲストに提示される。
【0085】ゲストにより無効アクセスリストエントリ
にアクセスしようとする試みにより生じる例外は、ホス
トによって中止される。次に、ホストは、ゲストに例外
を提示する。この例外は、ALEN変換例外と呼ばれ
る。ALEN変換例外は、通常、ゲストが、アクセスが
以前に取り消されたアクセスリストエントリを指示する
古いALETを使用する場合、発生する。
【0086】特定のゲストによるアドレス空間へのアク
セスは、読出し動作に制限されるか又は、このゲスト
は、アドレス空間のデータを変更されるのを許可され
る。ゲストが、読み出すのみのデータを変更しようと試
みる場合、保護例外が認識され、ゲストに提示される。
【0087】MCDSの下では、確定DAT関連命令の
動作は、修正されて、ゲストがMCDSモードにある場
合、DATなしでその動作を許可する。これにより、ア
プリケーションプログラムは、ESA/370下でAR
Tを制御するのに用いるのと同様にMCDS下でホスト
ARTを制御するための問題プログラム命令を使用する
ことができる。
【0088】アドレス空間制御の挿入(INSERT
ADDRESS SPACE CONTROL)命令
と、アドレス空間制御のセット(SET ADDRES
S SPACE CONTROL)命令は、DATなし
で使用可能であるように変更される。アドレス空間制御
の挿入命令は、ホスト1次空間モード又はホストアクセ
スレジスタモードのいずれかの、ゲストの現モードを得
るのに使用される。アドレス空間制御のセット命令は、
ホスト1次空間モード又はホストアクセスレジスタモー
ドのいずれかをセットするのに使用される。
【0089】図15は、MCDS機構,システムアドレ
ス空間,制御プログラム,及び多重CMSユーザの相互
関係を示す図である。MCDS機構1100は、CP1
110によって管理される制御テーブル1108によっ
て供給されるデータを用いて、(MCDSにホスト仮想
アドレス及びALETを与える)CMSゲストをイネー
ブルし、多数のデータ空間1106のどれかに共通にア
クセスする。
【図面の簡単な説明】
【図1】従来のESA/370DAT−onゲストの場
合のアドレス変換処理を示すフローチャート図である。
【図2】従来の仮想計算機の制御プログラム(CP)要
素と、各ログオン・ユーザのための仮想計算機との関係
を示すブロック図である。
【図3】従来のページ可能モードESA/370DAT
−offゲストの場合のアドレス変換処理のフローチャ
ート図である。
【図4】アドレス指定オペランドのアクセスレジスタの
使用を示す図である。
【図5】図4のゲストアクセスレジスタの内容にホスト
アクセスレジスタ変換の適用を示す図である。
【図6】本発明のMCDS機構で使用するための制御レ
ジスタの構成及び内容を示す図である。
【図7】MCDS機構で使用するためのPSWの内容を
示す図である。
【図8】MCDSホストアクセス・レジスタモードゲス
トの場合のアドレス変換処理を示す図である。
【図9】図5のアクセスレジスタ変換処理の論理の流れ
を示す図である。
【図10】図5のアクセスレジスタ変換処理の論理の流
れを示す図である。
【図11】アクセスレジスタ変換動作及び例外を示すフ
ローチャート図である。
【図12】アクセスレジスタ変換動作及び例外を示すフ
ローチャート図である。
【図13】アクセスレジスタ変換動作及び例外を示すフ
ローチャート図である。
【図14】図11〜図13を合わせて見るときの組合せ
図である。
【図15】MCDS機構,システムアドレス空間,制御
プログラム,及び多重CMSユーザの相互関係を示す図
である。
【符号の説明】
10 ホストART 12 ゲスト命令 14 ベースアドレス 15 ホスト仮想アドレス 16 ゲストアクセス・レジスタ 18 ホストDAT 19 ホストSTD 20 汎用レジスタ 22 アクセスレジスタ 24 タスク指名可能ユニットアクセス・リスト(DU
AL) 25 1次空間アクセスリスト(PSAL) 26 ホスト制御レジスタ2 27 ホスト制御レジスタ5 30 AST 199 ALB 1100 MCDS 1102,1104 CMS 1106 データ空間 1108 制御テーブル 1110 制御プログラム(CP)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 メルビン・エム・カトラー アメリカ合衆国 カリフォルニア州 ロサ ンジェルス #213 センチュリー パー ク レーン 2131 (72)発明者 ジーン・ルイス・ラフィッテ フランス国 01280 モーエン ルート デ アルペス(番地無し) (72)発明者 ジョセフ・マーティン・グダニエック アメリカ合衆国 ニューヨーク州 ハイド パーク クラムウルド プレイス 20 (72)発明者 ダミアン・レオ・オシセック アメリカ合衆国 ニューヨーク州 ベスタ ル ジョディ ドライブ 420 (72)発明者 ケネス・アーネスト・プラムベック アメリカ合衆国 ニューヨーク州 プーキ ープシィ デイジー レーン 7 (56)参考文献 特開 昭62−219147(JP,A) 特開 昭58−2950(JP,A)

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】ホストコンピュータシステム上でエミュレ
    ートされた複数の仮想計算機ゲストによって、複数のホ
    ストデータ空間に共通アクセスを行うための装置であっ
    て、 前記ホストコンピュータシステムは、 (a)ホストを含み、 (b)中央処理装置とメモリを具備し、 (c)仮想計算機ゲスト命令の実行中にアドレス指定され
    るホストデータ空間へのアクセスを行うためゲスト記憶
    アドレスの変換を介して前記仮想計算機ゲストによって
    アクセスされるホスト多重制御データ空間機構を備え持
    ち、前記ホスト多重制御データ空間機構が、更に、 (a)少なくとも1つの仮想計算機ゲストから、ホストデ
    ータ空間のデータ位置を示すオフセットを受け取るため
    の第1の手段と、 (b)各々が前記複数のホストデータ空間の各々に対応し
    かつ各々がホストセグメントテーブル識別によって特定
    される前記メモリ上の複数のホストセグメントテーブル
    と、 (c)前記仮想計算機ゲストの1つからトークンを受け取
    り、各々が対応する前記ホストセグメント識別を示す複
    数のエントリを持つホストレベル変換テーブルで該トー
    クンを照合することによって、前記オフセットが適用さ
    れるべきホストデータ空間の1つを決定する第2の手段
    と、 (d)前記第1の手段からオフセットと、前記第2の手段
    からホストデータ空間の1つを識別するデータとを受け
    取り、変換手段によって、ホストデータ空間の1つの中
    のデータ位置を示すホスト絶対アドレスを導出する第3
    の手段と、 を具備する、 ホストデータ空間への共通アクセスを行う装置。
  2. 【請求項2】前記第3の手段が、更に、ゲストプレフィ
    ックス値を記憶するゲストプレフィックスレジスタ手段
    と、 前記ゲストプレフィックス・レジスタ手段からゲストプ
    レフィックス値を受け取り、前記第1の手段からゲスト
    実アドレス・オフセットを受け取るように接続され、イ
    ネーブルされた場合ゲストプレフィックス値及びゲスト
    実アドレス・オフセットからゲスト絶対アドレスを導出
    し、ディスエーブルされた場合ゲスト実アドレスをその
    ままゲスト絶対アドレスとして用いる第4の手段と、 前記第4の手段に接続して、ホストコンピュータシステ
    ムからの信号に応答して前記第4の手段をイネーブル及
    びディスエーブルする第5の手段とを、 備える、 請求項1記載のホストデータ空間への共通アクセスを行
    う装置。
  3. 【請求項3】前記第4の手段が、ゲストオフセットとゲ
    ストプレフィックス値とをスワップする手段を備えてい
    る、 請求項2記載のホストデータ空間への共通アクセスを行
    う装置。
  4. 【請求項4】前記第2の手段が、更に、 前記仮想計算機ゲストの1つからトークンを受け取る手
    段と、 受け取られたトークンによって選択されるホストアクセ
    スリスト上のエントリをアクセスするため、前記第1の
    手段に接続される参照手段と、 前記第3の手段に接続し、前記参照手段によってアクセ
    スされるホストアクセスリストのエントリに応答して、
    ホストデータ空間の1つを識別するデータを得るための
    識別判定手段と、 前記第5の手段に接続し、前記参照手段によってアクセ
    スされるアクセスリストのエントリに応答して前記信号
    を発生する強制私用空間手段と、 を備えている、 請求項2記載のホストデータ空間への共通アクセスを行
    う装置。
  5. 【請求項5】前記第3の手段が、更に、 前記第4の手段からゲスト絶対アドレスを受け取るよう
    に接続され、前記第4の手段がイネーブルされた場合、
    主記憶源値をゲスト絶対アドレスに適用して、ホスト仮
    想アドレスを取得し、前記第4の手段がディスエーブル
    された場合ゲスト絶対アドレスをそのままホスト仮想ア
    ドレスとして用いる第6の手段を、 備えている、 請求項4記載のホストデータ空間への共通アクセスを行
    う装置。
  6. 【請求項6】前記第3の手段が、更に、 前記第6の手段からホスト仮想アドレスを受け取り、前
    記第2の手段からホストデータ空間の1つを識別するデ
    ータを受け取るように接続され、ホスト仮想アドレス上
    で動的アドレス変換を実行して、ホスト実アドレスを導
    出する第7の手段を、 備えている、 請求項5記載のホストデータ空間への共通アクセスを行
    う装置。
  7. 【請求項7】前記第3の手段が、更に、 ホストプレフィックス値を記憶するホストプレフィック
    スレジスタ手段と、 前記ホストプレフィックスレジスタ手段から前記ホスト
    プレフィックス値を、前記第7の手段から前記ホスト仮
    想アドレスを受け取り、前記ホストプレフィックス値を
    前記ホスト仮想アドレスに適用して、前記ホスト絶対ア
    ドレスを導出する第8の手段と、 を備えている、 請求項6記載のホストデータ空間への共通アクセスを行
    う装置。
  8. 【請求項8】前記第4の手段をイネーブル及びディスエ
    ーブルするため、ホストデータ空間の1つを識別するデ
    ータのうちの1ビットが前記第5の手段に接続する私用
    空間信号を発生する、 請求項5記載のホストデータ空間への共通アクセスを行
    う装置。
  9. 【請求項9】前記第5の手段が、強制私用空間手段によ
    って発生された信号と私用空間信号との組み合わせに応
    答して、前記第4の手段をイネーブル及びディスエーブ
    ルする、 請求項8記載のホストデータ空間への共通アクセスを行
    う装置。
  10. 【請求項10】ゲスト実アドレスが前記第1の手段によ
    って受け取られるオフセットであり、前記第2の手段に
    よって受け取られるトークンがアクセスレジスタから発
    せられる、 請求項1記載のホストデータ空間への共通アクセスを行
    う装置。
  11. 【請求項11】前記第2の手段によって受け取られるト
    ークンが、ホストトークン変換テーブルを用いて、ホス
    トセグメントテーブル指示データに解釈され、 該ホストセグメントテーブル指示データが特定するホス
    トデータ空間においてゲスト実アドレスオフセットがホ
    スト動的アドレス変換プロセスによって変換され、 前記ホストセグメントテーブル指示データが、前記第2
    の手段によって与えられ前記第3の手段によって受け取
    られる特定ホストデータ空間を、識別するデータを含
    む、 請求項1記載のホストデータ空間への共通アクセスを行
    う装置。
  12. 【請求項12】前記第2の手段によって実行されるプロ
    セスが、前記第3の手段に渡されるホストセグメントテ
    ーブル指示データを判別し、 該ホストセグメントテーブル指示データは、変換プロセ
    スを通じて得られる、 請求項1記載のホストデータ空間への共通アクセスを行
    う装置。
  13. 【請求項13】ホストコンピュータシステム上でエミュ
    レートされた複数の仮想計算機ゲストによって、複数の
    ホストデータ空間に共通アクセスを行う方法であって、 複数のホストデータ空間におけるデータ位置を示す複数
    のゲスト実アドレスオフセットと、該オフセットが適用
    されるべきホストデータ空間を特定するための対応する
    複数のトークンとを、少なくとも1つの仮想計算機ゲス
    トから、同時に受け取るステップと、 各々が前記複数のホストデータ空間の各々に対応しかつ
    各々がホストセグメントテーブル識別によって特定され
    る前記メモリ上の複数のホストセグメントテーブルを備
    え持つステップと、 前記仮想計算機ゲストの1つからトークンを受け取り、
    各々が対応する前記ホストセグメント識別を示す複数の
    エントリを持つホストレベル変換テーブルで該トークン
    を照合することによって、前記ゲスト実アドレスオフセ
    ットが適用されるべきホストデータ空間の1つを決定す
    るステップと、 前記ゲスト実アドレスオフセットと、前記ホストデータ
    空間の識別データとから、前記ゲスト実アドレスオフセ
    ットが適用されるべきと決定された前記ホストデータ空
    間の中のデータ位置を示すホスト絶対アドレスを導出す
    るステップと、からなるホストデータ空間に共通アクセ
    スを行う方法。
JP3252875A 1990-10-02 1991-09-05 データ空間への共通アクセス装置及び方法 Expired - Lifetime JPH0769844B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/577,395 US5230069A (en) 1990-10-02 1990-10-02 Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US577395 1990-10-02

Publications (2)

Publication Number Publication Date
JPH04247528A JPH04247528A (ja) 1992-09-03
JPH0769844B2 true JPH0769844B2 (ja) 1995-07-31

Family

ID=24308531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3252875A Expired - Lifetime JPH0769844B2 (ja) 1990-10-02 1991-09-05 データ空間への共通アクセス装置及び方法

Country Status (4)

Country Link
US (1) US5230069A (ja)
EP (1) EP0478978A3 (ja)
JP (1) JPH0769844B2 (ja)
CA (1) CA2050834C (ja)

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2839201B2 (ja) * 1990-07-30 1998-12-16 株式会社日立製作所 仮想計算機システム
JPH0496828A (ja) * 1990-08-15 1992-03-30 Hitachi Ltd 多重絶対アドレス空間構成方法および装置
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
US5386525A (en) * 1991-10-29 1995-01-31 Pacific Bell System for providing application programs with direct addressability into a shared dataspace
CA2055295C (en) * 1991-11-12 2000-05-23 Jean Gilles Fecteau Logical mapping of data objects using data spaces
US5428760A (en) * 1991-12-12 1995-06-27 Intel Corporation Circuitry and method for sharing internal microcontroller memory with an external processor
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5426748A (en) * 1992-01-03 1995-06-20 International Business Machines Corporation Guest/host extended addressing method and means with contiguous access list entries
US5479631A (en) * 1992-11-19 1995-12-26 International Business Machines Corporation System for designating real main storage addresses in instructions while dynamic address translation is on
US5515525A (en) * 1993-09-28 1996-05-07 Bull Hn Information Systems Inc. Emulating the memory functions of a first system on a second system
US5542059A (en) * 1994-01-11 1996-07-30 Exponential Technology, Inc. Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU
US5685009A (en) * 1994-07-20 1997-11-04 Exponential Technology, Inc. Shared floating-point registers and register port-pairing in a dual-architecture CPU
US5577231A (en) * 1994-12-06 1996-11-19 International Business Machines Corporation Storage access authorization controls in a computer system using dynamic translation of large addresses
US5621912A (en) * 1994-12-29 1997-04-15 International Business Machines Corporation Method and apparatus for enabling monitoring of guests and native operating systems
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
US5812823A (en) * 1996-01-02 1998-09-22 International Business Machines Corporation Method and system for performing an emulation context save and restore that is transparent to the operating system
GB9600823D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
US6289432B1 (en) 1998-03-25 2001-09-11 International Business Machines Corporation Sharing segments of storage by enabling the sharing of page tables
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7103914B2 (en) * 2002-06-17 2006-09-05 Bae Systems Information Technology Llc Trusted computer system
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128528A1 (en) * 2002-12-31 2004-07-01 Poisner David I. Trusted real time clock
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US8079034B2 (en) * 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7287197B2 (en) 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7305592B2 (en) 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7523291B2 (en) * 2005-07-26 2009-04-21 International Business Machines Corporation System and method for testing for memory address aliasing errors
US7464249B2 (en) * 2005-07-26 2008-12-09 International Business Machines Corporation System and method for alias mapping of address space
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US9274974B1 (en) 2005-10-21 2016-03-01 Vmware, Inc. Isolating data within a computer system using private shadow mappings
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7434025B2 (en) * 2006-07-18 2008-10-07 Microsoft Corporation Leverage guest logical to physical translation for host-side memory access
US7490191B2 (en) * 2006-09-22 2009-02-10 Intel Corporation Sharing information between guests in a virtual machine environment
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US7984483B2 (en) * 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US9740637B2 (en) 2007-10-30 2017-08-22 Vmware, Inc. Cryptographic multi-shadowing with integrity verification
US8607013B2 (en) 2007-10-30 2013-12-10 Vmware, Inc. Providing VMM access to guest virtual memory
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
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
US20160378812A1 (en) * 2015-06-25 2016-12-29 International Business Machines Corporation Reduction of bind breaks
US10579421B2 (en) * 2016-08-29 2020-03-03 TidalScale, Inc. Dynamic scheduling of virtual processors in a distributed system
US11023135B2 (en) 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US10915897B2 (en) 2018-06-13 2021-02-09 Clover Network, Inc. Token management for enhanced omni-channel payments experience and analytics

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
JPS582950A (ja) * 1981-06-27 1983-01-08 Fujitsu Ltd プリフイクス変換方式
US4564903A (en) * 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
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
US4674038A (en) * 1984-12-28 1987-06-16 International Business Machines Corporation Recovery of guest virtual machines after failure of a host real machine
JPS62219147A (ja) * 1986-03-20 1987-09-26 Fujitsu Ltd 仮想計算機システムにおける共通メモリ方式
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return

Also Published As

Publication number Publication date
EP0478978A2 (en) 1992-04-08
JPH04247528A (ja) 1992-09-03
EP0478978A3 (en) 1993-03-24
CA2050834C (en) 1995-12-12
CA2050834A1 (en) 1992-04-03
US5230069A (en) 1993-07-20

Similar Documents

Publication Publication Date Title
JPH0769844B2 (ja) データ空間への共通アクセス装置及び方法
US10241910B2 (en) Creating a dynamic address translation with translation exception qualifiers
US10423539B2 (en) Dynamic address translation with access control in an emulator environment
US8972670B2 (en) Use of test protection instruction in computing environments that support pageable guests
US5809546A (en) Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
JP2006526203A (ja) ストレージの無効化、バッファ・エントリの消去
JPH02734B2 (ja)
JPH11505653A (ja) 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム
US5724551A (en) Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
JPS6248258B2 (ja)
WO1993013482A1 (en) Computer system with two levels of guests
US5787309A (en) Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
US5459872A (en) Software control of hardware interruptions
US5280592A (en) Domain interlock
JPH0296246A (ja) 論理プロセッサ設備を供なったデータプロセッシングシステム内で論理システムの起動を制御する装置
US5802397A (en) System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
EP0550285A2 (en) Machine with two units of operation
JPS6221140B2 (ja)