JPH0137775B2 - - Google Patents

Info

Publication number
JPH0137775B2
JPH0137775B2 JP56056411A JP5641181A JPH0137775B2 JP H0137775 B2 JPH0137775 B2 JP H0137775B2 JP 56056411 A JP56056411 A JP 56056411A JP 5641181 A JP5641181 A JP 5641181A JP H0137775 B2 JPH0137775 B2 JP H0137775B2
Authority
JP
Japan
Prior art keywords
program
asn
entry
key
bit
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
JP56056411A
Other languages
English (en)
Other versions
JPS5710842A (en
Inventor
Robaato Heraa Andoryuu
Supensaa Uoorei Junia Uiriamu
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 JPS5710842A publication Critical patent/JPS5710842A/ja
Publication of JPH0137775B2 publication Critical patent/JPH0137775B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
本発明の分野 本発明は多重処理システムに関するものであ
る。 先行技術 プログラム記憶式のデータ処理システム、特に
多重プログラミングや多重処理を行なうもの、仮
想メモリを有するもの、又は多重仮想システムの
ための監視プログラムを有するものにおいては、
データやプログラムの保護を図ることが必要であ
る。このような保護を図つたオペレーテイング・
システムとして広く知られているものに、MIT
及びゼネラル・エレクトリツク社の共同開発によ
るMULTICSがあり、これを最初に導入したの
は、ハネウエル社の635計算機である。
MULTICSにおける保護方式の詳細は米国特許第
4177510号明細書に開示されている。また、小型
計算機に適した保護方式としては、米国特許第
4038645号明細書に開示されているものがある。 従来の各種保護方式のうち、本発明に関連する
のはIBM社のシステム/370シリーズで採用され
ているものである。システム/370では、メモリ
の特定のブロツク及び特定のプログラムに関連す
る記憶保護キーが保護の基本になつている。この
考え方は米国再発行特許第RE27251号明細書に開
示されている。これによれば、メモリの物理ブロ
ツクに関連する4ビツトの記憶保護キーとプログ
ラムに関連するPSWキーとを比較することによ
り、データへのアクセスが制御される。現在のシ
ステム/370では、プログラムによるデータのア
クセス又は他のプログラムの呼出しは監視プログ
ラムによつて制御されている。このような制御プ
ログラムの1つに多重仮想システム(MVS)制
御プログラムがある。或るプログラムが別のプロ
グラムを呼出す場合には、このような呼出しが許
されるか否かを監視プログラムに決定させるため
に、監視プログラム呼出し(SVC)命令がまず
実行されねばならない。 本発明は、MVSのもとで動作するシステムに
おいて、複数のアドレス空間の間のコミユニケー
シヨン方法を改善するものであるが、現用のシス
テムにはIMS、TSO/VTAM、VSPC、JESな
どの多数の多重アドレス空間プログラム・サブシ
ステムが使用されている。これらのサブシステム
は、自身をユーザから分離するために、多重アド
レス空間構造を使用している。このような分離を
行なつておくと幾移の利点が得られる。 自身のプログラムをランし且つ私用データを保
持するための個有のアドレス空間を準備しておけ
ば、プログラム及びデータの回復に都合がよい。
もしサブシステムのユーザがサブシステム制御と
同じアドレス空間でランするのであれば、サブシ
ステムの回復はユーザの回復によつて影響を受け
る。サブシステムの制御情報が共通の記憶域に保
持されている場合には、記憶保護キーがデータ保
護のための唯一の手段になる。しかしながら、記
憶保護キーの数には限りがあるから(16個)、共
通にアドレス指定され得る記憶域にすべての制御
情報を保持しておくと、情報の保護が不充分にな
るおそれが多分にある。 サブシステムは、その制御情報を自分の私用領
域に保持しておくようにすると、8メガバイトま
でのデータをアドレス指定できる。8メガバイト
より多いデータが要求される場合には、システ
ム/370のアーキテクチヤにおけるアドレス指定
の限界(24ビツト)を拡張することにより、サブ
システムは2以上の私用アドレス空間を使用でき
る。感知可能データを自身の私用アドレス空間に
保持しておくと、そのデータをシステムにおける
すべての不許可ユーザから隔離することができ
る。 以上が、サブシステムが多重アドレス空間構造
を採つている理由の幾つかであるが、別のアドレ
ス空間にあるプログラムを呼出したり、2つのア
ドレス空間の間でデータの移動及び参照を行なつ
たりする場合には、現在のMVSでは問題がある。 別のアドレス空間にあるプログラムの呼出し又
はデータの参照は、許可ユーザでなければ実行で
きないから、殆んどサブシステムは、不許可ユー
ザへのインターフエースを与えるための手段を前
述のSVC命令に組込んでおかねばならない。そ
の場合、同期呼出しが所望であれば、ユーザは自
身の同期化を行なわねばならず、またこの方式で
は動作速度が遅い。 システム/370のアーキテクチヤは一時に1つ
のアドレス空間をサポートするだけであるから、
サブシステムは、サブシステムとそのユーザとの
間で共有又は移動されるべきすべてのデータを共
通記憶域に置かねばならない。これには多くの欠
点がある。まず、共通記憶域のうち、他の目的に
使用され得る記憶域の大きさが減少する。データ
はすべてのアドレス空間において大域的にアドレ
ス指定され得るので、不用意な変更に対する唯一
のデータ保護手段はキーによるものである。しか
しながら、キーは16個しかないから、データのア
クセスを確実に制限することはできない。データ
が機密情報を含んでいる場合には、取出し保護が
唯一の保護手段である。仮想データ・ベースの利
用は厳しく制限される。仮想データ・ベースが2
以上のユーザによつて共有されるのであれば、低
速の専用ユーザ間アクセス機構によつて仮想デー
タ・ベースの良さが損われることのないようにす
るため、このデータ・ベースを共通記憶域に置く
必要がある。しかしながら、共通記憶域は資源
(リソース)としては限られたものであるから、
仮想データ・ベースは比較的小さなものにしなけ
ればならない。 本発明の要約 本発明は、データ処理システムがMVSのもと
で動作するのに必要な改良を加えるために、記憶
保護キー・マスクを使用するものであり、更に(1)
二重アドレス空間メモリ参照を伴なう基本的な許
可制御、(2)プログラム・サブシステムの連結、及
び(3)許可制御のもとでのアドレス空間番号(以下
ASNと略称する)からメイン・メモリ・アドレ
スへの変換、を実行する新規なサブシステム制御
機構に含まれる。 基本許可制御は、問題プログラムに或る種の特
権乃至は権限を与えるもので、制御レジスタ0の
抽出許可制御ビツト(ビツト4)の制御のもと
に、アドレス空間制御挿入命令、PSWキー挿入
命令及び仮想記憶キー挿入命令を問題プログラム
状態で実行させる。制御レジスタ3には16ビツト
のPSWキー・マスクが置かれる。このキー・マ
スクは、アドレスからのPSWキー設定命令によ
つて現PSWに挿入され得るキーを制御するのに
用いられる。問題プログラム状態において、この
キー・マスクは、PSWキーとは別のキーを用い
て1つのオペランドをアクセスするために3種類
の移動命令によつて指定され得るキーを制御する
のに用いられる。これらの命令は、キー移動命
令、主移動命令及び副移動命令である。このマス
クはまたプログラム呼出し命令の実行中に、エン
トリ・テーブルの選択されたエントリにある許可
キー・マスクとアンド結合され、プログラムによ
るこの特定のエントリ点の呼出しが許されるか否
かを調べる。 仮想記憶キー挿入命令は、仮想アドレスによる
記憶キーの検査を可能にする。キー移動命令にお
いては、ソース・オペランドのためのアクセス・
キーがオペランドとして指定され、PSWキー・
マスクによつて許可される。 所定の条件が満たされた場合に問題プログラム
状態又は監視プログラム状態で実行可能な命令は
半特権命令と呼ばれる。抽出許可制御又はPSW
キー・マスクが半特権命令の実行を許可していな
ければ、特権命令例外が認識される。システムが
監視プログラム状態であれば、抽出許可制御及び
PSWキー・マスクは無視される。半特権命令の
実行のための他の許可条件は他のプログラム例外
を引起こし得るが、これらの許可条件は、問題プ
ログラム状態及び監視プログラム状態の両方で考
慮される。 二重アドレス空間の考え方は、或るアドレス空
間にある問題プログラムが別のアドレス空間にあ
るデータ及びプログラムをアクセスできるように
するものである。これに関連して、副セグメン
ト・テーブルを識別する副セグメント・テーブル
起点及び副セグメント・テーブル長が制御レジス
タ7に保持される。副セグメント・テーブルは、
副アドレス空間の仮想アドレスを実アドレスに変
換するのに使用される。これに対し、制御レジス
タ1によつて指定される主セグメント・テーブル
は、主アドレス空間のためのアドレス変換に使用
される。何れのセグメント・テーブルが使用され
ているかに応じて、CPUは主空間モード又は副
空間モードにある。 制御レジスタ0の副空間制御ビツト(ビツト
5)は、アドレス空間制御設定命令、主移動命令
及び副移動命令の実行を許可する。両移動命令
は、主アドレス空間と副アドレス空間との間でデ
ータ移動を行なわせる。副空間アクセス・キーは
オペランドとして指定され、制御レジスタ3にあ
るPSWキー・マスクの制御のもとに有効化され
る。 PSWのビツト16即ちアドレス空間制御ビツト
が“1”であれば、すべての論理アドレスは副仮
想アドレスとして扱われ、副セグメント・テーブ
ルを用いたアドレス変換が行なわれる(副空間モ
ード)。その場合、実行される命令は両方のアド
レス空間になければならない。云い換れば、これ
らの命令は共通の実記憶域になければならない。
そうすれば、副セグメント・テーブルによる命令
アドレスの変換は、主セグメント・テーブルによ
る変換と同じになる。プログラムは、アドレス空
間制御挿入命令及びアドレス空間制御設定命令に
より、PSWのアドレス空間制御ビツトの検査及
び設定を各々行なうことができる。 また本発明に従えば、監視プログラム命令を用
いることなく、異なつたアドレス空間にある問題
プログラムを連結することができる。これに関連
して、制御レジスタ5は、サブシステム連結制御
ビツト、連結テーブル起点及び連結テーブル長を
保持する。サブシステム連結制御ビツトは、プロ
グラム呼出し命令及びプログラム転送命令の実行
を許可する。連結テーブル起点及び連結テーブル
長は、メイン・メモリにある連結テーブルを識別
する。連結テーブル及び関連するエントリ・テー
ブルは、後で説明するプログラム呼出し番号変換
処理で使用される。エントリ・テーブルの各エン
トリは、許可キー・マスク、ASN、エントリ命
令アドレス、エントリ問題プログラム状態ビツ
ト、エントリ・パラメータ及びエントリ・キー・
マスクを含む。プログラム呼出し番号変換処理
は、プログラム呼出し命令の実行中に行なわれ
る。 プログラム呼出し命令は、そのオペランド・ア
ドレスの一部をプログラム呼出し番号とし、これ
を用いてエントリ・テーブルをアクセスする。プ
ログラム呼出し命令が問題プログラム状態で実行
される場合には、エントリ・テーブルの選択され
たエントリにある許可キー・マスクが制御レジス
タ3にあるPSWキー・マスクとアンド結合され、
結果がゼロでなければ、プログラム呼出し命令を
出したプログラムはこのエントリをアクセスでき
る。PSWキー・マスク及び主ASN、並びにPSW
にある命令アドレス及び問題プログラム状態ビツ
ト(Pビツト)は所定の汎用レジスタに保管され
る。これに代つて、エントリ・テーブルから取出
されたエントリ命令アドレス及びエントリ問題プ
ログラム状態ビツトが現PSWに入れられる。エ
ントリ・キー・マスクはPSWキー・マスクとオ
ア結合され、その結果は前のPSWキー・マスク
に代つて使用される。副ASN及び副セグメン
ト・テーブル記述子は各々主ASN及び主セグメ
ント・テーブル記述子に等しくされる。エント
リ・テーブルから取出されたASNがゼロであれ
ば、現在の主ASNはまだ有効である。 プログラム転送命令は、キー・マスク、ASN、
命令アドレス及び問題プログラム状態ビツトを含
む汎用レジスタを指定する。普通これらの内容
は、プログラム呼出し命令によつて保管されたも
のである。命令アドレス及び問題プログラム状態
ビツトは現PSWに入れられるが、それによつて
問題プログラム状態から監視プログラム状態への
切換えが生じる場合には、このようなPSW変更
は許されない。キー・マスクはPSWキー・マス
クとアンド結合され、その結果は前のPTWキ
ー・マスクに代つて用いられる。副ASNは指定
されたASNに等しくされる。指定されたASNが
現在の主ASNに等しければ、副セグメント・テ
ーブル記述子は主セグメント・テーブル記述子に
等しくされる。 ASN(アドレス空間番号)に関する機構は、問
題プログラム状態にあるプログラムがアドレス空
間を主アドレス空間又は副アドレス空間として表
示できるようにする。これに関連する命令は空間
切換えを伴なうプログラム呼出し命令及びプログ
ラム転送命令である。この他に副ASN設定命令
も準備される。 制御レジスタ14のビツト12はASN変換を制
御する。制御レジスタ14は、ASN第1テーブ
ルの記憶位置を規定するASN第1テーブル起点
も保持している。ASN第1テーブル及び関連す
るASN第2テーブルはASN変換処理で使用され
る。ASN第2テーブルの各エントリは、ASN第
2テーブル・インデツクス無効ビツト、許可テー
ブル起点、許可インデツクス、許可テーブル長、
セグメント・テーブル記述子及び連結テーブル記
述子を含む。許可テーブルの各エントリは主許可
ビツト及び副許可ビツトを含む。 制御レジスタ4にある主ASNは、空間切換え
を伴なうプログラム呼出し命令(PCss)の場合
は、エントリ・テーブルの選択されたエントリに
あるASNに等しくされ、空間切換えを伴なうプ
ログラム転送命令(PTss)の場合は、指定され
た汎用レジスタにあるASNに等しくされる。 制御レジスタ3にある副ASNは、(1)PCssの場
合は前の主ASNに、(2)PTssの場合は新しい主
ASNに、(3)空間切換えを伴なわないプログラム
呼出し及びプログラム転送命令の場合は主ASN
に、そして(4)副ASN設定命令の場合は指定され
た汎用レジスタにあるASNに、各々等しくされ
る。主ASN又は副ASNが設定される場合には、
対応する主セグメント・テーブル記述子又は副セ
グメント・テーブル記述子も設定される。 制御レジスタ4にある許可インデツクスは、許
可テーブルと共に、空間切換えを伴なうプログラ
ム転送命令又は副ASN設定命令の実行を許可す
るのに用いられる。制御レジスタ4への許可イン
デツクスのロードは、空間切換えを伴なうプログ
ラム呼出し命令又はプログラム転送命令の実行中
にASN第2テーブルから行なわれる。 副ASN設定命令は、副ASNを指定されたASN
に等しくする。この命令は、現主オペレーシヨン
(SSARcp)又は空間切換えオペレーシヨン
(SSARss)を実行する。SSARcpの場合、指定
されたASNは主ASNに等しいから、副セグメン
ト・テーブル記述子は主セグメント・テーブル記
述子で置換えられる。 SSARssの場合は、指定されたASNは主ASN
とは異なつており、ASN第2テーブルをアクセ
スするのに用いられる。現許可インデツクス並び
にASN第2テーブルから取出された許可テーブ
ル起点及び許可テーブル長を用いて許可テーブル
がアクセスされ、その選択されたエントリにある
副許可ビツトが調べられる。これが“1”であれ
ばオペレーシヨンは許可される。その結果、指定
されたASNは副ASNとして使用され、ASN第2
テーブルの選択されたエントリから取出されたセ
グメント・テーブル記述子は副セグメント・テー
ブル記述子として使用される。 プログラム呼出しにおいて、エントリ・テーブ
ルから取出されたASNがゼロでなければ、空間
切換えオペレーシヨン(PCss)が指定される。
このASNは主ASNになり、更にASN第2テーブ
ルをアクセスするのに用いられる。ASN第2テ
ーブルの選択されたエントリから取出された許可
インデツクス、セグメント・テーブル記述子及び
連結テーブル記述子は各々現許可インデツクス、
主セグメント・テーブル記述子及び現連結テーブ
ル記述子になる。 プログラム転送において、指定されたASNが
主ASNと異なつていると、空間切換えオペレー
シヨン(PTss)が指定される。指定されたASN
はASN第2テーブルをアクセスするのに用いら
れる。現許可インデツクス並びにASN第2テー
ブルの選択されたエントリから取出された許可テ
ーブル起点及び許可テーブル長を用いて許可テー
ブルがアクセスされ、その選択されたエントリに
ある主許可ビツトが調べられる。これが“1”で
あればオペレーシヨンは許可され、指定された
ASN並びにASN第2テーブルの選択されたエン
トリから取出された許可インデツクス、セグメン
ト・テーブル記述子及び連結テーブル記述子が
各々主ASN、現許可インデツクス、主セグメン
ト・テーブル記述子及び現連結テーブル記述子に
なる。セグメント・テーブル記述子は副セグメン
ト・テーブル記述子にもなる。 実施例の説明 第1図は、プログラム記憶式汎用計算機の主要
な性能ユニツト、即ち中央処理装置(CPU)2
0、メイン・メモリ21及びI/O装置22を示
している。CPU20は多数のサブユニツトを含
んでいる。まず演算論理装置(ALU)23は、
プログラム命令に応答して、算術演算及び論理演
算を実行する。ローカル記憶レジスタ(LSR)
24は、プログラム命令の実行中、中間結果の一
時記憶に使用される。プログラム状況ワード
(PSW)25は、周知のように、メイン・メモリ
21からプログラム命令を順次に取出すための命
令アドレス・フイールドを含む多数のフイールド
から成つている。メイン・メモリ21から取出さ
れたプログラム命令は、CPU20で実行される
べき動作を指定するために、命令保持/解読機構
26へ送られる。実行制御装置27は、命令によ
つて指定された動作の実行を制御する。各16個の
汎用レジスタ28(GR0〜GR15)及び制御
レジスタ29(CR0〜CR15)はプログラム命
令によつてアドレス指定され得る。 メイン・メモリ21はアドレス指定可能な多数
のブロツクから成り、各ブロツクにはアドレス指
定可能な符号化された記憶保護キーが関連してい
る。メイン・メモリ21は、データ30、問題プ
ログラム31、監視プログラム32、及び多数の
システム制御テーブル33を記憶し得る。 以下の説明では、新規なシステム制御テーブル
33、従来のシステム/370では定義されていな
かつた制御レジスタ及び本発明の実施に必要な幾
つかの汎用レジスタの詳細が明らかにされる。
PSW25については、従来からあつた4ビツト
のPSW保護キー(ビツト8〜11)、システムが問
題プログラム状態にあるか監視プログラム状態に
あるかを示すPビツト(ビツト15)及び命令アド
レス・フイールド(ビツト40〜63)が使用され
る。更に本発明では、従来のシステム/370では
定義されていなかつたPSWのビツト(ビツト16)
が新たに定義される。 実行制御装置27の構成は任意のものもよい。
代表例として、米国特許第3400371号明細書には、
マイクロプログラムを記憶している読取り専用メ
モリを用いたものが開示されており、また米国特
許第4200927号明細書には、ハードウエア・シー
ケンサとマイクロプログラム制御の組合わせで実
行を制御するものが開示されている。 システム/370等の従来のデータ処理システム
で使用されている各種命令形式のうち、本発明で
は第2図に示したRRE形式、S形式及びSS形式
が使用される。RRE形式は16ビツトのOPコード
を含み、2個の汎用レジスタR1,R2をアドレ
ス指定できる。S形式は16ビツトのOPコード、
ベース・アドレスを記憶している1つの汎用レジ
スタを指定するB2フイールド、及びこのベー
ス・アドレスに加算される12ビツトの変位値を含
む変位フイールドD2から成つている。S形式の
命令では、使用されるオペランドはB2フイール
ド及びD2フイールドの内容によつて間接的に指
定される。SS形式は8ビツトのOPコード、2個
の汎用レジスタを指定する4ビツトのR1及びR3
フイールド、ベース・アドレスを記憶している2
個の汎用レジスタを指定する4ビツトのB1及び
B2フイールド、並びにこれらのベース・アドレ
スに各々加算される2つの変位値を含むD1及び
D2フイールドから成つている。SS形式の命令で
は、R1及びR3フイールドによつて指定される2
個の汎用レジスタと、B1及びD1フイールド並び
にB2及びD2フイールドによつて各々間接的に指
定される2個のオペランドが使用される。 システム/370は16個の制御レジスタCR0〜
CR15を持つているが、本発明ではそのうちCR
0,CR1,CR3,CR4,CR5,CR7及びCR
14が使用される。本発明で使用される各制御レ
ジスタのビツトの意味は次の通りである。なお本
発明と無関係のビツトは省略してある。 CR0 ビツト4:抽出許可制御ビツト(Eビツト) ビツト5:副空間制御ビツト(Sビツト) CR1(主セグメント・テーブル記述子) ビツト0〜7:主セグメント・テーブル長 ビツト8〜25:主セグメント・テーブル起点 CR3 ビツト0〜15:キー・マスク ビツト16〜31:副ASN CR4 ビツト0〜15:許可インデツクス ビツト16〜31:主ASN CR5(連結テーブル記述子) ビツト0:サブシステム連結制御ビツト(Vビツ
ト) ビツト8〜24:連結テーブル起点 ビツト25〜31:連結テーブル長 CR7(副セグメント・テーブル記述子) ビツト0〜7:副セグメント・テーブル長 ビツト8〜25:副セグメント・テーブル起点 CR14 ビツト12:ASN変換制御ビツト(Vビツト) ビツト20〜31:ASN第1テーブル起点 上述の7個の制御レジスタのうちCR1に含ま
れる情報は、既にシステム/370で定義されてい
たものである。CR1は、仮想アドレス乃至は論
理アドレスを実アドレスに変換する動的アドレス
変換(DAT)を実現させるためのプログラムに
よつて使用されるセグメント・テーブルの起点ア
ドレス(メイン・メモリのアドレス)及び長さを
与える。 本発明においては、CR1は特定のアドレス変
換テーブル(主セグメント・テーブル)を識別す
る第1アドレス制御レジスタとして使用され、更
に新たに定義されたCR7が別のアドレス変換テ
ーブル(副セグメント・テーブル)を識別する第
2アドレス制御レジスタとして使用される。従つ
て、仮想アドレスから実アドレスへの変換におい
ては、2つのセグメント・テーブルが使用可能で
ある。CR1及びCR7によつて識別される各セグ
メント・テーブルはASN(アドレス空間番号)と
関連付けられる。ASNは、監視プログラムの制
御のもとに現在定義されており且つシステムに接
続されているアドレス空間の記号識別子(16ビツ
ト)である。1つのアドレス空間は、一連の連続
数と、各数をメイン・メモリのバイト記憶位置に
関連付ける特別の変換手段とによつて定義され得
る。主セグメント・テーブル起点に関連する主
ASNはCR4のビツト位置16〜31に置かれ、副セ
グメント・テーブル起点に関連する副ASNはCR
3のビツト位置16〜31に置かれる。 任意のアドレス空間についてのアドレス変換用
セグメント・テーブルは監視プログラムによつて
設定される。或るアドレス空間について副セグメ
ント・テーブルが設定された場合には、監視プロ
グラムはCR0のビツト5を“1”にし、他のプ
ログラム命令が利用でき且つ副ASNを設定した
ことを示す。 監視プログラムはまた二重アドレス空間に関す
る情報をCR14に入れる。CR14のビツト12
は、主ASN及び主セグメント・テーブルによつ
て指定されたアドレス空間とは別のアドレス空間
を他のプログラム命令がアクセスできるときに、
監視プログラムによつて“1”にセツトされる。
プログラム命令の実行がCR3及びCR4への新し
いASNのロードを伴なう場合には、ASN変換機
構が呼出されねばならない。ASN変換の結果、
CR3又はCR4にロードされようとしている
ASNのためのセグメント・テーブル起点が識別
される。詳細についてはあとで説明するが、
ASN変換においては、ASN第1テーブルと呼ば
れるシステム制御テーブルが使用される。ASN
第1テーブルの起点は、CR14のビツト20〜31
によつて指定される。 PSWはシステム/370で使用されているのと同
じであるが、本発明ではPSWのビツト16がアド
レス空間制御ビツトとして新たに定義された。該
ビツトが“0”であれば、すべての仮想アドレス
は主セグメント・テーブルを用いて変換され、
“1”であれば副セグメント・テーブルが用いら
れる。PSWに関しては、本発明で重要なのはビ
ツト16の他に、システム/370で既に定義されて
いるPSWキー(ビツト8〜11)、Pビツト(ビツ
ト15)及び命令アドレス・フイールド(ビツト40
〜63)だけである。 本発明に従えば、CR0のビツト4によつて更
に別の制御が実現される。先行技術においては、
PSWのビツト15によつて識別される2種類のプ
ログラム状態、即ち問題プログラム状態及び監視
プログラム状態があつた。PSW及び制御レジス
タにある制御データの処理は、システムが監視プ
ログラム状態にある(PSWのビツト15が“0”)
場合にのみ監視プログラムによつてなされてい
た。本発明は問題プログラム状態においても類似
の処理を可能にする。これは「半特権状態」と呼
ばれ、CR0のビツト4(“1”)によつて示され
る。 アドレス空間管理の一部として、システムで実
行中の各プログラムに対し、監視プログラムは許
可インデツクスを準備する。これはCR4のビツ
ト位置10〜15に置かれ、許可テーブルをアクセス
するのに用いられる。実行中の任意のプログラム
は、これによつて許可された場合にのみ、CR3
又はCR4へASNをロードすることにより自身の
アドレス空間とは別のアドレス空間をアクセスで
きる。詳細についてはあとで説明する。 CR5はプログラム連結(呼出し)時に使用さ
れる。実行中のプログラムが別のプログラムを呼
出す場合は、被呼出しプログラムのプログラム呼
出し番号を用いて、メイン・メモリにある連結テ
ーブルの1つのエントリがアクセスされる。連結
テーブルの起点アドレス及び長さはCR5に記憶
されている。 本発明の最後の特徴として、システムが問題プ
ログラム状態にある場合には、問題プログラム
は、PSWのビツト8〜11によつて指定された記
憶保護キーとは別のキーを利用できる。PSWの
キーをマスクするためのキー・マスクはCR3の
ビツト位置0〜15に保持される。CR3のビツト
位置0〜15は、4ビツトの記憶保護キーへ符号化
され得るキー値0〜15に各々対応している。指定
されたキーに関連するマスク・ビツトが“1”で
あれば、PSWのキーとは別のキーを使用できる。
CR3中のキー・マスクはプログラム連結時にも
使用される。或るプログラムが別のプログラムを
呼出す場合、監視プログラムの制御を受けないこ
のような呼出しが許されるか否かを調べるため
に、CR3中のキー・マスクは被呼出しプログラ
ムに関連するキー・マスクと比較される。 次に第3図を参照しながら、本発明で使用され
る新規なシステム制御テーブルのエントリ形式に
ついて説明する。第3図には、連結テーブルのエ
ントリ(LTエントリ)34、エントリ・テーブ
ルのエントリ(ETエントリ)35、ASN第1テ
ーブルのエントリ(AFTエントリ)36、ASN
第2テーブルのエントリ(ASTエントリ)37
及び許可テーブルのエントリ(ATエントリ)3
8が示されている。 呼出しプログラムが被呼出しプログラムを識別
すると、被呼出しプログラムの識別子即ちプログ
ラム呼出し番号がCR5にある連結テーブル起点
と組合わされ、これにより連結テーブルがアクセ
スされる。LTエントリ34は、エントリ・テー
ブル起点ETO及びエントリ・テーブル長ETLを
各々ビツト位置8〜25及び26〜31に保持してい
る。8バイトのETエントリ35は、プログラム
呼出し番号の一部とエントリ・テーブル起点
ETOとを組合わせてエントリ・テーブルへのイ
ンデツクスを作成することによりアクセスされ
る。ETエントリ35は許可キー・マスクAKM
をビツト位置0〜15に保持し、被呼出しプログラ
ムに割当てられたアドレス空間番号を表わすエン
トリ・アドレス空間番号EASNをビツト位置16〜
31に保持している。被呼出しプログラムの最初の
命令は、ビツト位置40〜62にあるエントリ命令ア
ドレスEIAを用いて取出される。このアドレスは
PSWの命令アドレス・フイールドに挿入される。
ETエントリ35のビツト63は、問題プログラム
状態及び監視プログラム状態の何れにあるかを示
すPビツトで、これはPSWのビツト位置15に挿
入される。被呼出しプログラムによつて使用され
る種々のパラメータPARMはビツト位置64〜95
に保持されており、これらは汎用レジスタに送ら
れる。被呼出しプログラムに関連するキー・マス
クはエントリ・キー・マスクEKMとしてビツト
位置96〜111に保持されている。 前にも述べたように、新しいASNを制御レジ
スタCR3又はCR4へロードする場合、ASN変
換処理が実行されることがある。ASN変換処理
においては、ASN第1テーブル及びASN第2テ
ーブルが使用される。まずCR14にあるASN第
1テーブル起点とASNの一部とを組合わせるこ
とによりAFTエントリ36が取出される。AFT
エントリ36はASN第2テーブル起点ASTOを
ビツト位置8〜27に保持している。ASN第2テ
ーブル起点ASTOはASNの別の一部と組合わさ
れ、これにより8バイトのASTエントリ37が
取出される。ASTエントリ37は許可テーブル
起点ATOをビツト位置8〜29に保持し、制御レ
ジスタCR3又はCR4に設定されるべき新ASN
に対する許可インデツクスAXをビツト位置32〜
47に保持し、許可テーブル長ATLをビツト位置
48〜59に保持している。設定中の新ASNに関連
するセグメント・テーブルは、ビツト位置64〜71
にあるセグメント・テーブル長STL及びビツト
位置72〜89にあるセグメント・テーブル起点
STOによつて示される(セグメント・テーブル
記述子STD)。CR5にロードされるべき連結テ
ーブル記述子LTDは、ビツト位置104〜120にあ
る連結テーブル起点LTO及びビツト位置121〜
127にある連結テーブル長LTLを含む。 新しいASNが使用できるようにするための
ASN変換処理においては、現在実行中のプログ
ラムのCR4にある許可インデツクス(AX)を
用いてATエントリ38が取出される。許可テー
ブルの起点アドレスはASTエントリ37のビツ
ト位置8〜29にある。CR4にある許可インデツ
クス(AX)は許可テーブルから2ビツト・フイ
ールドを取出す。このフイールドのビツトPは主
アドレス空間に、ビツトSは副アドレス空間に
各々対応しており、これらが“0”か“1”かに
応じて、設定中のASNは主ASN又は副ASNにな
る。 プログラム命令が新しいASNを制御レジスタ
に挿入するときに実行されねばならないASN変
換処理のフローを第4図に示す。本実施例では3
つの命令、即ちプログラム呼出し(PC)命令、
プログラム転送(PT)命令及び副ASN設定
(SSAR)命令が使用される。主アドレス空間で
実行中のプログラムから取出され得るこれらの命
令は、現在有効な主ASNに等しいASNを指定す
ることがある。その場合は、これら3つの命令は
「現主」(CP)命令として識別される。命令実行
の結果として制御レジスタに挿入されるASNが
現在の主ASNとは異なつていると、「空間切換
え」(ss)が指定され、これによりASN変換処理
が開始される。なお、第4図中の「前」及び
「後」という表示は、各々処理前及び処理後の状
態を意味し、「Y」及び「N」は各々論理判断に
おける肯定及び否定を意味する。 PC命令によつて呼出されるプログラムは別の
アドレス空間にあつてもよい。被呼出しプログラ
ムが別のアドレス空間にあるか否かは、あとで説
明するPC番号変換処理によつて調べられる。PT
命令及びSSAR命令の実行に必要な情報は、これ
らの命令の実行に先立つて、R1フイールド又は
R2フイールドによつて指定された汎用レジスタ
にロードされる。第4図において、PT命令39の
R1及びR2フイールドは汎用レジスタ40及び4
1を各々指定し、SSAR命令42のR1フイールド
は汎用レジスタ43を指定する。これらの汎用レ
ジスタ40,41及び43には図示の如き情報が
含まれている。CR3又はCR4にロードされるべ
き新ASNは参照番号44で示されている。 ASN変換は、アドレス空間制御パラメータを
見出すために16ビツトのASNを変換するもので
あり、各々空間切換え(ss)を伴なうPCss命令、
PTss命令及びSSARss命令の一部として実行さ
れる。ASNは、PCss及びPTssの場合はCR4に
ある主ASNと置換えられ、SSARssの場合はCR
3にある副ASNと置換えられる。これらは各々
主ASN変換及び副ASN変換と呼ばれる。処理自
体は何れの変換においても同じであり、処理結果
の使用形態が異なつているだけである。 ASN変換処理では、メイン・メモリ21に記
憶されているASN第1テーブル45及びASN第
2テーブル46が使用される。これらのテーブル
45及び46は、アドレス空間制御パラメータ及
び第3のテーブル即ち許可テーブル47を見出す
のに用いられる。許可テーブル47は、PTss命
令及びSSARss命令において許可テストを実行す
るときに用いられる。 汎用レジスタ40又は43から与えられる16ビ
ツトの新ASN44は、上位10ビツトから成る
ASN第1テーブル・インデツクスAFX及び下位
6ビツトから成るASN第2テーブル・インデツ
クスASXに分けられる。新ASN44のAFX部
は、2回目のテーブル索引に使用されるASN第
2テーブル46をアクセスするための特定の
AFTエントリ36をASN第1テーブル45から
選択するために、CR14にあるASN第1テーブ
ル起点AFTOと組合わされる。ASN第1テーブ
ル45は他のテーブルと同じくメイン・メモリ2
1にあり、24ビツトの実アドレスによつてアクセ
スされ。CR14のビツト位置20〜31にあるASN
第1テーブル起点AFTOは12ビツトであるから、
これを24ビツトの実アドレスに変換するために12
個の“0”がAFTOの下位部分に付加される。
AFTエントリ36のアドレスは、10ビツトの
AFXの上位部分及び下位部分に各々12個及び2
個の“0”を付加したものに上述の24ビツトの実
アドレスを加算することによつて得られる。その
場合、ビツト位置0への桁上げは無視される。
AFTエントリ36を構成する4バイトは同時に
取出される。この取出しは保護の対象になつてい
ない。AFTエントリ36のビツト0(Iビツト)
は、対応するASN第2テーブル46が使用可能
か否かを示す。 新ASN44のASX部は、AFTエントリ36か
ら取出されたASN第2テーブル起点ASTOと組
合わされて、ASN第2テーブル46にある特定
のASTエントリ37を選択する。AFTエントリ
36のビツト位置8〜27にあるASTOは20ビツ
トであるから、その下位部分に4個の“0”を付
加することにより、ASN第2テーブル46の24
ビツトの実アドレスが得られる。ASTエントリ
37のアドレスは、6ビツトのASXの上位部分
及び下位部分に各々14個及び4個の“0”を付加
したものにこの24ビツトの実アドレスを加算する
ことによつて得られる。その場合も、ビツト位置
0への桁上げは無視される。16バイトのASTエ
ントリ37は、左から右に向かつてダブルワード
単位で取出される。この取出しも保護の対象にな
つていない。ASTエントリ37のビツト0(Iビ
ツト)は、アドレス空間がアクセス可能か否かを
示す。もしこのビツトが“1”であれば、ASN
変換例外が認識され、オペレーシヨンは無効にさ
れる。 CR4にある現在の許可インデツクスAXに関
連するプログラムが特定のアドレス空間をアクセ
スできるか否かを調べるため、ASN許可テスト
がPTss命令及びSSARss命令の一部として実行
される。この許可テストが実行されるのは、これ
ら2つの命令に対するASN変換処理が終つた後
である。 ASN許可テストは、PTss命令の場合は、
ASNを主ASNとしてCR4にロードできるかど
うかを調べ、SSARss命令の場合は、ASNを副
ASNとしてCR3にロードできるか否かを調べ
る。前者は主ASN許可と呼ばれ、後者は副ASN
許可と呼ばれる。何れの場合も、ASTエントリ
37にある許可テーブル起点ATO及び許可テー
ブル長ATLによつて識別される許可テーブル4
7が使用される。 許可テーブル47は、各2ビツトの複数のAT
エントリ38から成つている。ATエントリ38
のPビツトは、該エントリに対応する許可インデ
ツクスAXを持つたプログラムがPT命令によつ
てアドレス空間を主アドレス空間としてロードで
きるか否かを示す。Pビツトが“1”であれば、
アクセスは許可される。Pビツトが“0”であれ
ば、アクセスは許可されず、主許可例外が認識さ
れて、オペレーシヨンは無効にされる。 ATエントリ38のSビツトは、対応する許可
インデツクスAXを持つたプログラムがSSARss
命令によりアドレス空間を副アドレス空間として
ロードできるか否かを示す。Sビツトが“1”で
あれば、アクセスは許可される。Sビツトが
“0”であれば、アクセスは許可されず、副許可
例外が認識され、オペレーシヨンは無効にされ
る。 ASN許可テストについて具体的に説明すると、
参照番号50で示されている処理前のCR4にあ
る許可インデツクスAXと、ASTエントリ37に
ある許可テーブル起点ATO及び許可テーブル長
ATLとを用いることにより、特定のATエントリ
38が選択される。主ASN許可テスト及び副
ASN許可テストの何れが実行されているかに応
じて、選択されたATエントリ38のPビツト又
はSビツトの値が調べられる。その場合、AX>
ATLであればエラー52が知らされる。CR4に
ある許可インデツクスAXは16ビツトであり、こ
れに対しASTエントリ37にある許可テーブル
長ATLは12ビツトであるから、許可インデツク
スAXのビツト0〜11と許可テーブル長ATLとが
比較される。エラー52が生じると、許可例外
(PTssの場合は主、SSARssの場合は副)が認識
され、オペレーシヨンは無効にされる。 許可テーブル47のバイト・アドレスは、CR
4にある許可インデツクスAXの上位14ビツト
(ビツト0〜13)に10個の“0”をその上位ビツ
トとして付加したものと、ASTエントリ37か
ら取出された22ビツトの許可テーブル起点ATO
の下位部分に2個の“0”を付加したものとを加
算することによつて得られる。この加算におい
て、最上位ビツトへの桁上げがあつても、それは
無視される。このようにして生成された実アドレ
スが不存在の記憶位置を示していると、アドレス
指定例外が認識され、オペレーシヨンは抑止され
る。このアクセスも保護の対象になつていない。 許可テーブル47から取出されたバイトは4つ
のATエントリ38を含んでいる。そのうちの1
つの選択は、CR4にある許可インデツクスAX
の下位2ビツト(ビツト14及び15)によつて行な
われる。次いで、許可テストが主ASN(PTss)
及び副ASN(SSARss)の何れに関するものであ
るかに応じて、選択された1つのATエントリ3
8のPビツト又はSビツトが調べられる。このビ
ツトが“1”であれば、ASN変換は許可され、
ASTエントリ37からの適切なアドレス空間制
御パラメータが適切な制御レジスタにロードされ
る。これに対し、選択されたPビツト又はSビツ
トが“0”であれば、ASN変換は許可されず、
主許可例外又は副許可例外が認識される。 PT命令39の実行時には、PT命令39のR1
フイールドによつて指定された汎用レジスタ40
にあるASNが現在CR4にある主ASNと比較さ
れる(53)。もし主ASN=ASNであれば、ASN
変換は不要であるが、主ASN≠ASNであれば、
汎用レジスタ40から取出されたASNが新しい
主ASNとしてCR4にロードされる。 SSAR命令42の場合も同様な比較54が行な
われる。汎用レジスタ43にあるASNは現在の
主ASNと比較され、もし一致すれば、現主ASN
と副ASNとが等しいことを表わすSSARcpが示
される。この場合もASN変換は不要である。比
較の結果が不一致であれば、SSARssが示され、
ASN変換が実行される。SSARcpが示されたと
きには、CR1にある主セグメント・テーブル記
述子PSTDがCR7へ転送されて(55)、副セグメ
ント・テーブル記述子STDになる。 命令がPTss又はPCssの場合は、ASTエントリ
37にある連結テーブル記述子LTDがCR5へ転
送され(56)、セグメント・テーブル記述子STD
が主セグメント・テーブル記述子PSTDとして
CR1へ転送される(57)。PT命令の実行時には、
ss及びcpの如何にかかわらず、変更後のCR1に
ある新PSTDが新SSTDとしてCR7へ転送され
る(58)。ASTエントリ37にある許可インデツ
クスAXはCR4へ転送される(59)。 実行中の命令がSSARssであれば、ASTエント
リ37にあるSTDはSSTDとしてCR7へ転送さ
れる。 PT命令の実行中は、ss及びcpの如何にかかわ
らず、汎用レジスタ40にあるASNは副ASNと
してCR3に転送される(61)。汎用レジスタ40
にあるキー・マスクKMは、処理前のCR3にあ
つたキー・マスクKMとアンド結合される(62)。
これは、PT命令によつて復帰されるプログラム
に関連するキー・マスクを再生成する。更に、汎
用レジスタ41にあるPビツト及び命令アドレス
IAは各々PSWの所定のビツト位置に戻される。
このとき、PT命令の実行によつて、Pビツトが
“1”(問題プログラム状態)から“0”(監視プ
ログラム状態)へ変更された場合には、例外条件
が認識される。 第5図は、PC命令63の実行時に、被呼出し
プログラムに開始命令アドレスを得るために、プ
ログラム呼出し番号(PC番号)を適切なテーブ
ル・エントリに変換するPC番号変換処理のフロ
ーを示している。PC命令63はS形式であるか
ら、そのB2フイールドによつて指定される汎用
レジスタ(図示せず)はベース・アドレスを含ん
でおり、これにD2フイールドの変位値が加算算
されて、オペランドの有効アドレス64が生成さ
れる。PC命令の場合は、この加算結果をアドレ
スとして用いる代りに、その下位20ビツトをPC
番号として用いる。 第5図においても「CRi(前)」及び「CRi
(後)」の表示が使用されているが、前者は現アド
レス空間及び現プログラム即ち呼出しプログラム
に関する情報が対応する制御レジスタCRiに含ま
れていることを表わし、後者は被呼出しプログラ
ムに関する情報が含まれていることを表わす。 第4図の場合と同じく、PC命令の実行時には
多数のレジスタ間転送が実行される。論理判断に
ついては、まず被呼出しプログラムのASNがゼ
ロか否かが調べられる(65)。もしゼロであれば
(66)、被呼出しプログラムは現主アドレス空間に
あり、従つてASN変換は不要である。ゼロでな
ければ、空間切換えを伴なうプログラム呼出し即
ちPCssが示され、ASNは主ASNとしてCR4へ
転送される(67)。 PC命令が実行されるときには、PSW68にあ
る情報のうち、呼出しプログラムへの復帰に使用
される情報が汎用レジスタGR14に保管され
る。保管される情報は、PSW68のPビツト
(ビツト15)及び命令アドレスIAである。 PC番号変換においては、20ビツトのPC番号が
ETエントリ35の実アドレスに変換される。オ
ペランド・アドレス64の下位20ビツトから成る
PC番号は、12ビツトの連結インデツクスLX及び
8ビツトのエントリ・インデツクスEXに分けら
れる。変換は2つのテーブル、即ち連結テーブル
69及びエントリ・テーブル70を用いて行なわ
れる。他のシステム制御テーブルと同じく、これ
らのテーブル69及び70もメイン・メモリ21
にある。連結テーブル69の起点アドレス
(LTO)はCR5にあり、エントリ・テーブル7
0の起点アドレス(ETO)はLTエントリ34に
含まれている。 CR5のビツト位置8〜24にある連結テーブル
起点LTOは17ビツトであるから、その右側即ち
下位部分に7個の“0”を付加することにより、
連結テーブル69の起点を示す24ビツトの実アド
レスが得られる。CR5のビツト位置25〜31にあ
る連結テーブル長LTLは、連結テーブル69の
長さを128バイト単位で表示する。LTエントリ3
4の4バイトであるから、連結テーブル69の長
さの変更は、32個のエントリを1単位として行な
われることになる。CR5のビツト位置25〜31に
ある連結テーブル長LTLの値は、連結テーブル
69の実際の長さよりも1単位即ち128バイト分
小さい。オペランド・アドレス64に含まれる連
結インデツクスLXは、連結テーブル69の起点
からの変位を表わしており、従つて図には示して
いないが、連結インデツクスLXが連結テーブル
69内のエントリに対応しているか否かを調べる
ために、CR5にある連結テーブル長LTLと連結
インデツクスLXの上位7ビツトとが比較される。 LTエントリ34は、連結テーブル69の起点
アドレスに連結インデツクスLXを加算すること
によつて選択される(71)。選択されたLTエント
リ34は、対応するエントリ・テーブル70の使
用可能性(Iビツト)、起点(ETO)及び長さ
(ETL)を指定する。 エントリ・テーブル70の起点を示す24ビツト
の実アドレスは、LTエントリ34のビツト位置
8〜25にある18ビツトのエントリ・テーブル起点
ETOの下位部分に6個の“0”を付加すること
によつて得られる。LTエントリ34のビツト位
置26〜31にあるエントリ・テーブル長ETLは、
エントリ・テーブル70の長さを64バイト単位で
表わす。ETエントリ35は16バイトであるから、
エントリ・テーブル70の長さの変更は、4つの
エントリを1単位として行なわれる。連結テーブ
ル69の場合と同じく、LTエントリ34にある
エントリ・テーブル長ETLの値は、エントリ・
テーブル70の長さよりも1単位分小さい。エン
トリ・テーブル70の起点からの変位を表わすエ
ントリ・インデツクスEXがエントリ・テーブル
70内のエントリに対応しているか否かを調べる
ため、LTエントリ34からのエントリ・テーブ
ル長ETLとエントリ・インデツクスEXの上位6
ビツトとが比較される。 エントリ・テーブル70から取出されたETエ
ントリ35のビツト0〜15即ち許可キー・マスク
AKMは、問題プログラム状態においてPC命令を
出したプログラムがこのエントリ35の呼出しを
許されているか否かを検査する。このため、許可
キー・マスクAKMはCR3のビツト位置0〜15
にロードされているキー・マスクKMとアンド結
合され(72)、その結果が全ゼロであれば、特権
命令例外が認識されて、オペレーシヨンは抑止さ
れる。監視プログラム状態においては、マスクは
無視される。 ETエントリ35のビツト16〜31即ちエント
リ・アドレス空間番号EASNは、前述のように全
ゼロ状態について検査され(65)、全ゼロであれ
ばPCcpが指定せれる。さもなければPCssが指定
されて、EASNは主ASNとしてCR4に転送され
る(67)。 ETエントリ35のビツト40〜62即ちエントリ
命令アドレスEIAは、その最下位ビツトとして
“0”を1つ付加された後、被呼出しプログラム
の命令アドレスIAとしてPSWのビツト位置40〜
63へ挿入される(73)。ビツト63即ちPビツトは、
現PSWのビツト位置15へ挿入される(74)。ビツ
ト64〜95即ちエントリ・パラメータPARMは汎
用レジスタGR4に転送される(75)。ビツト96
〜111即ちエントリ・キー・マスクEKMは、CR
3にロードされていたキー・マスクKMとオア結
合され(76)、その結果はCR3に戻される。 ETエントリ35からのレジスタ転送以外には、
まずCR3にロードされていた呼出しプログラム
のキー・マスクKMは、後の復帰のために汎用レ
ジスタGR3に保管される(77)。GR3には、
GR4にロードされていた主ASNも保管される
(78)。CR1にロードされていた主セグメント・
テーブル記述子PSTDは、PC命令がssかcpかに
は関係なく、CR7へ転送されて、副セグメン
ト・テーブル記述子SSTDになる(79)。CR4に
ロードされていた主ASNはCR3へ転送されて、
副ASNになる(80)。主セグメント・テーブル記
述子PSTD及び主ASNが変更されるか否かは、
ゼロ検査65によつてPCssが指定されたか否か
によつて決まる。PCssが指定されると、第4図
に示したASN変換が開始される。 第6図は、副ASN設定命令SSARの実行のフ
ローを示したものである。SSAR命令42は、本
発明で使用される新しい命令の1つであり、新
ASNを副ASNとしてCR3にロードする(81)。
第6図中の「前」及び「後」はSSAR命令42の
実行前及び実行後の状態を各々表わしている。そ
の他のテーブル、エントリ、データ転送パス及び
論理判断の表示は、第4図に示されていたものと
同じである。 簡単に説明すると、CR1にある主セグメン
ト・テーブル記述子PSTDを用いて主アドレス空
間でランされている問題プログラムは、SSAR命
令の実行により、別のアドレス空間にあるデータ
をアクセスできるようになる。既に説明したよう
に、各アドレス空間は一組のアドレス変換テーブ
ルを持つており、従つて、アドレス変換を行なつ
て別のアドレス空間にあるデータをアクセスする
ためには、新しいアドレス空間のための関連する
セグメント・テーブル記述子はCR7に記憶され
ねばならない。新ASNが現在の主ASNに等しけ
れば、CR7はCR1から主セグメント・テーブル
記述子PSTDを副セグメント・テーブル記述子
SSTDとして受取る(55)。さもなければ、CR7
はASTエントリ37にあるセグメント・テーブ
ル記述子STDを受取る(60)。更に、現プログラ
ムが副アドレス空間のアクセスを許されているか
否かを調べるために、許可テーブル47を用いた
許可テストが実行されねばならない。フローの詳
細については、第4図の説明のところを参照され
たい。 第7図、第8図及び第9図は前述の各種オペレ
ーシヨンのうち、PC命令に関するものを簡単化
された形で示したものである。従つて、参照番号
及び記号は前と同じものが使用されている。 既に説明したように、PC命令63のB2及びD2フ
イールドを用いてオペランド・アドレス64と生
成され、その下位20ビツトがPC番号として用い
られる。PC番号変換処理においては、連結テー
ブル69のLTエントリ34及びエントリ・テー
ブル70のETエントリ35が順次にアクセスさ
れる。 第8図において、プログラム呼出しを行なつて
いるプログラムが問題プログラム状態にあれば、
まずETエントリ35にある許可キー・マスク
AKMと、CR3にある呼出しプログラムのキ
ー・マスクKMとがアンド結合される(72)。結
果が全ゼロ(一致を示す)であれば、特権命令例
外が認識される。これはプログラム割込みの原因
になる。特権命令例外が認識されなければ、CR
3にある呼出しプログラムのキー・マスクKM
は、ETエントリ35にあるエントリ・キー・マ
スクEKMとオア結合され(76)、その結果はCR
3に戻される。これにより、被呼出しプログラム
は、エントリ・キー・マスクEKMによつて被呼
出しプログラムに割当てられた記憶保護キーと、
CR3にあるキー・マスクKMによつて表わされ
る呼出しプログラムによつて使用を許可されたキ
ーとを使用できる。CR3に最初にロードされて
いた呼出しプログラムのキー・マスクKMは汎用
レジスタGR3に保管される(77)。 CR4にある呼出しプログラムのASN即ち主
ASNもGR3に保管される(78)。汎用レジスタ
GR14は、PSW68の呼出しプログラムに関連
するPビツト及び命令アドレスIAを保管する。
GR3及びGR14の内容は、被呼出しプログラ
ムから呼出しプログラムへ戻るときに、元の場所
へ再ロードされる。 被呼出しプログラムの開始命令アドレス及びP
ビツトは、ETエントリ35からPSWの所定の位
置に転送される(73、74)。 プログラム呼出しは、呼出しプログラムのアド
レス空間に含まれるプログラムに対してなされる
ことがあるが、その場合は、ETエントリ35に
あるエントリ・アドレス空間番号EASNはゼロで
あり、副ASN及び副セグメント・テーブル記述
子SSTDは各々主ASN及び主セグメント・テー
ブル記述子PSTDと同じにされる(79、80)。 ETエントリ35にあるEASNがゼロでなけれ
ば、被呼出しプログラムは別のアドレス空間にあ
り、従つて第9図に示したASN変換が実行され
る。このASN変換は、新ASN及び関連するセグ
メント・テーブル記述子を各々CR4及びCR1に
ロードするものであり、これらを用いて被呼出し
プログラムの実行中にアドレス変換が行なわれ
る。被呼出しプログラムに関連する連結テーブル
は、ASTエントリ37からCR5へ転送される連
結テーブル記述子LTDによつて表わされる
(56)。また被呼出しプログラムに関連する許可イ
ンデツクスAXは、ASTエントリ37からCR4
に転送され(59)、被呼出しプログラムによる別
のアドレス空間のアクセスを制御する。 第10図は、PT命令39の実行時におけるオペ
レーシヨンを示したもので、使用されている参照
番号及び記号は第4図のものと同じである。 PT命令39は、そのR1及びR2フイールドによ
つて汎用レジスタ40及び41を各々指定する。
汎用レジスタ40及び41には、前のPC命令の
実行中に所定の情報即ちキー・マスクKM、
ASN、命令アドレスIA及びPビツトが保管され
ている。 汎用レジスタ40に保管されているASNは、
CR4にある主ASNと比較される(53)。もし一
致すれば、CR1にある主セグメント・テーブル
記述子PSTDを含む、アドレス変換に必要なすべ
ての情報は、復帰されるプログラムで使用可能に
なる。従つて、CR1にある主セグメント・テー
ブル記述子PSTDはCR7へ転送されて、副セグ
メント・テーブル記述子SSTDになる(58)。復
帰中のプログラムのASNは、汎用レジスタ40
からCR3へ転送されて、副ASNになる(61)。 被呼出しプログラムによつて使用されていた
CR3中のキー・マスクKMは、復帰されるべき
プログラム即ち呼出しプログラムに関連するキ
ー・マスクに変えられる。これは、汎用レジスタ
40中のキー・マスクKMと変更前のCR3中の
キー・マスクKMとをアンド結合して(62)、そ
の結果をCR3へ戻すことにより達成される。 比較53の結果、復帰されるプログラムのASN
と現在の主ASNとが異なつていることがわかる
と、第11図に示したASN変換処理に進む。
ASN第1テーブル・インデツクスAFX及びASN
第2テーブル・インデツクスASXから成る新
ASN44は、ASN第1テーブル45及びASN第
2テーブル46を順次にアクセスするのに用いら
れる。この結果、セグメント・テーブル記述子
STD、許可インデツクスAX及び連結テーブル記
述子LTDを含む必要なすべてのアドレス変換制
御情報が所定の制御レジスタに戻される(56、
57、58、59)。 上述のような復帰が許されるか否かは、許可テ
ーブル47を用いて判断される。 下記の表は、これまで説明してきた本発明に従
う許可制御と種々のプログラム・サブブシステム
制御命令との関係を示したものである。
【表】
【表】 前述の実施例においては、サブシステム連結制
御ビツト(CR5のビツト0)、ASN変換制御ビ
ツト(CR14のビツト12)及び許可インデツク
ス(CR4のビツト0〜15)に基く下記の3つの
命令の許可制御が明らかにされた。 プログラム呼出し(PC) プログラム転送(PT) 副ASN設定(SSAR) これらの新規な命令の実行により、プログラム
は関連するアドレス変換テーブルを用いて2つの
異なつたアドレス空間にあるデータをアドレス指
定できるようになつた。その際、ラン中のプログ
ラムは、これらのアドレス空間に各々関連する2
つの記憶保護キーを識別できるようになつていな
ければならない。従来は、どのような命令も監視
プログラムによつて割当てられたPSW記憶保護
キーしか使用できず、また記憶保護キーの取扱い
は監視プログラムの制御下にあつた。 上表中の各種命令のうちPC、PT及びSSAR以
外の命令の意味は次の通りである。 EPAR:主ASN抽出 ESAR:副ASN抽出 IAC :アドレス空間制御挿入 IPK :PSWキー挿入 IVSK:仮想記憶キー挿入 MVCP:主移動 MVCS:副移動 MVCK:キー移動 SAC :アドレス空間制御設定 SPKA:アドレスからのPSWキー設定 次にこれらの命令について説明する。なお説明
の都合上、命令の順序は上とは異なつている。 IPK及びSPKA これらはシステム/370で既に定義されていた
ものである。IPK命令の場合は、制御レジスタ
CR0のビツト4によつて許可されると、現PSW
の4ビツトのPSWキーが汎用レジスタGR2のビ
ツト位置24〜27へ挿入される。SPKA命令の場合
は、現PSWの4ビツトのPSWキーがオペラン
ド・アドレスのビツト24〜27と置換えられる。
SPKA命令の実行は、制御レジスタCR3にある
キー・マスクの制御を受ける。PSWキーの値
(0〜15)に対応するキー・マスク・ビツトが
“1”であれば、命令は普通に実行され、さもな
ければ、特権命令例外が認識される。 LVSK これはRRE形式の新しい命令であり、R2フイ
ールドによつて指定された汎用レジスタの内容に
よつてアドレス指定された物理ブロツクに関連す
る記憶保護キーを、R1フイールドによつて指定
された汎用レジスタに挿入する。問題プログラム
状態においては、制御レジスタCR0のビツト4
は“1”でなければならない。ブロツク・アドレ
スは仮想アドレスであり、現PSWのアドレス空
間制御ビツト(ビツト16)の制御を受ける。この
アドレス空間制御ビツトは、仮想アドレスから実
アドレスへの変換に主セグメント・テーブル及び
副セグメント・テーブルの何れが使用されるかを
示す。 ラン中の問題プログラムがメイン・メモリの特
定の物理ブロツクに関連する記憶保護キーを決定
してこれを汎用レジスタに挿入できるようにし、
且つPSWキーを変更できるようにすると、問題
プログラムは、異なつた記憶保護キーを有する物
理ブロツクの間でデータを移動させることができ
る。 MVCP及びMVCS これらは何れもSS形式の命令であり、第1オ
ペランドを第2オペランドで置換える。一方のオ
ペランドは主アドレス空間にあり、他方のオペラ
ンドは副アドレス空間にある。主アドレス空間に
あるオペランドへのアクセスはPSWキーを用い
て行なわれ、副アドレス空間にあるオペランドへ
のアクセスは第3オペランド中のキーを用いて行
なわれる。 第1オペランド及び第2オペランドのアドレス
は仮想アドレスであり、一方のオペランド・アド
レスは制御レジスタCR1にある主セグメント・
テーブル記述子を用いて変換され、他方のオペラ
ンド・アドレスは制御レジスタCR7にある副セ
グメント・テーブル記述子を用いて変換される。
副アドレス空間がアクセスされるので、移動は、
制御レジスタCR0の副空間制御ビツト(ビツト
5)が“1”の場合にのみ実行される。MVCP
命令の場合は、副アドレス空間から主アドレス空
間への移動が行なわれ、その際第1オペランド・
アドレスは主セグメント・テーブルを用いて変換
され、第2オペランド・アドレスは副セグメン
ト・テーブルを用いて変換される。MVCS命令
の場合は、主アドレス空間から副アドレス空間へ
の移動が行なわれ、その際第1オペランド・アド
レスは副セグメント・テーブルを用いて変換さ
れ、第2オペランド・アドレスは主セグメント・
テーブルを用いて変換される。 R3フイールドによつて指定された汎用レジス
タのビツト24〜27は副アドレス空間アクセス・キ
ーとして用いられる。問題プログラム状態におい
てこのキーが有効な場合にのみ移動可能である。
副アドレス空間アクセス・キーは、制御レジスタ
CR3中の対応するキー・マスク・ビツトが“1”
のときにのみ有効である。さもなければ、特権命
令例外が認識される。移動されるべきバイトの数
は、R1フイールドによつて指定された汎用レジ
スタ中の32ビツトの値(正負符号なし)によつて
表わされる。 MVCK これもSS形式の命令であり、第1オペランド
を第2オペランドで置換える。第2オペランドの
取出しは第3オペランド中の保護キーの制御のも
とに実行され、第1オペランド位置への記憶は
PSWキーの制御のもとに実行される。R3フイー
ルドによつて指定された汎用レジスタのビツト24
〜27は、ソース・アクセス・キーとして用いられ
る。移動は、問題プログラム状態において、この
キーが有効な場合にのみ可能である。ソース・ア
クセス・キーは、制御レジスタCR3中の対応す
るキー・マスク・ビツトが“1”であれば有効で
ある。さもなければ、特権命令例外が認識され
る。MVCP及びMVCSと同じく、R1フイールド
によつて指定された汎用レジスタ中の32ビツトの
値(正負符号なし)は、移動されるべきバイトの
数を指定する。 EPAR及びESAR これらはRRE形式の謂ゆる半特権命令であり、
従来は監視プログラムしか実行できなかつた制御
レジスタ情報の処理を問題プログラム状態で実行
する。問題プログラム状態において、制御レジス
タCR0のビツト4が“1”(半特権命令を表わ
す)であれば、制御レジスタCR4のビツト位置
16〜31にある16ビツトの主ASN又は制御レジス
タCR3のビツト位置16〜31にある16ビツトの副
ASNが、R1フイールドによつて指定された汎用
レジスタのビツト位置16〜31に置かれる。 IAC及びSAC これらは互いに相補な命令であり、上のEPAR
及びESARと同じく、制御レジスタCR0のビツ
ト4の制御のもとに、半特権状態で実行される。
これら2つの命令を使用すれば、ラン中の問題プ
ログラムは、PSWのビツト16の2進状態を制御
できる。ビツト16が“0”であれば、すべての仮
想アドレスは、制御レジスタCR1によつて識別
される主セグメント・テーブルを用いて変換さ
れ、“1”であれば、データ・アドレスだけが、
制御レジスタCR7によつて識別される副セグメ
ント・テーブルを用いて変換される。命令アドレ
スも仮想アドレスと考えられ、従つてアドレス変
換を受けるので、データ・アドレス変換及び命令
アドレス変換を分けることなく主セグメント・テ
ーブル及び副セグメント・テーブルの切換えを行
なう問題プログラムにおいては、変換後の命令ア
ドレスは、主セグメント・テーブルを用いた場合
と副セグメント・テーブルを用いた場合とで同じ
でなければならない。 最後に、第12図、第13図及び第14図を参
照しながら、メイン・メモリ、制御レジスタ及び
汎用レジスタの間の相互作用について説明する。 第12図に示したメイン・メモリ21は、多数
の問題プログラム、データ及びシステム制御テー
ブルを記憶している。監視プログラムは多数の
ASNを予め設定しており、そのうちの2つが
「ASN1」及び「ASN9」で示されている。
ASN1を主ASNとすると、そのセグメント・テ
ーブルSTの起点アドレスは制御レジスタCR1か
ら与えられる。仮想アドレス82はセグメント・
テーブルST及びページ・テーブルPTを用いて実
アドレスに変換される。これは動的アドレス変換
として既に周知であるから、詳細については省略
する。 システムで実行中のプログラムがP1であり、
これがプログラムP2を呼出すPC命令を出した
とする(83)。制御レジスタCR5は、プログラム
P1の連結テーブルLTの起点アドレスLT0を与
える。続いて、第5図のところで説明した変換処
理が実行される。プログラムP1の連結テーブル
LTから取出されたLTエントリは、プログラムP
2のエントリ・テーブルETの起点アドレスを与
える(84)。このエントリ・テーブルETから取出
されたETエントリは、プログラムP2の最初に
実行されるべき命令のアドレスを与える(85)。
図示のように、被呼出しプログラムP2は呼出し
プログラムP1と同じアドレス空間にあるから、
ETエントリ中のASNは全ゼロになつている。従
つて、この場合はASN変換処理は不要である。
プログラムP2からプログラムP1への戻りは、
プログラムP2に含まれるPT命令によつて行な
われる(86)。このときもASN変換は不要であ
る。 プログラムP1の実行が進んで、ASN9を指
定するSSAR命令が出されたとする。SSAR命令
を実行する場合には、まずASN第1テーブル
AFTの特定のAFFエントリを取出す必要がある。
これは制御レジスタCR14からの起点アドレス
AFT0及びASNの第1部分(第4図中のAFX)
を用いて行なわれる(87)。取出されたAFTエン
トリは、ASN9に関連するASN第2テーブル
ASTの起点アドレスを与える(88)。取出された
ASTエントリは、ASN1に関連する制御レジス
タCR4中の許可インデツクスAXの制御のもと
にアクセスされる許可テーブルATの起点アドレ
スを与える(89)。更に、副アドレス空間の設定
が許可されると、ASTエントリ中のセグメン
ト・テーブル記述子が副セグメント・テーブル記
述子SSTDとして制御レジスタCR7へ転送され
る(90)。この記述子は、ASN9に関連するセグ
メント・テーブルSTの起点アドレスを与える
(91)。 プログラムP1の以後の命令は、ASN9にあ
るデータD9に関連する記憶保護キーをアクセス
し得る新しい命令を含んでいてもよい。このキー
は汎用レジスタGR(R3フイールドによつて指定)
に挿入され得る。かくして、プログラムP1の命
令は、ASN1とASN9との間でデータ転送92
を実行できるようになる。 第13図は、ASN1にあるプログラムP1が
ASN9にあるプログラムP3を呼出すPC命令を
出した場合を示している。まず第5図に示した変
換処理に従つて、プログラムP1の連結テーブル
LTがアクセスされる(93)。取出されたLTエン
トリは、プログラムP3のエントリ・テーブル
ETの起点アドレスを与える(94)。プログラムP
1に関連する命令アドレス95(PSWのビツト
40〜63)は汎用レジスタGR14へ転送され、制
御レジスタCR4にある主ASN(ASN1を示す)
は汎用レジスタGR3及び制御レジスタCR3(副
ASNになる)へ転送される。プログラムP3の
エントリ・テーブルETから取出されたETエント
リの内容は種々のレジスタへ転送される。プログ
ラムP3の最初の命令のアドレスはPSWの命令
アドレス・フイールドへ転送される(96)。ETエ
ントリ中のASNは制御レジスタCR4へ主ASN
として転送される(97)。このASNの第1部分
は、制御レジスタCR14にある起点アドレス
AFT0と共に、ASN9に関連するASN第1テー
ブルAFTをアクセスするのに用いられる(98)。
取出されたAFTエントリは、ASN第2テーブル
ASTの起点アドレスを与える(99)。ASTエン
トリ中のセグメント・テーブル記述子は主セグメ
ント・テーブル記述子PSTDとして制御レジスタ
CR1へ転送され、許可インデツクスAXは制御
レジスタCR4へ転送される(100)。なお、制御
レジスタCR1にあつた元の主セグメント・テー
ブル記述子は副セグメント・テーブル記述子
SSTDとして制御レジスタCR7へ転送されてい
る。かくして、別のアドレス空間にあるプログラ
ムP3の実行が開始される。 第14図は、ASN9のプログラムP3から
ASN1のプログラムP1への戻り(PT命令)を
示している。PT命令の実行に先立つて、汎用レ
ジスタGR2には、PC命令の実行時に汎用レジス
タGR14へ保管された命令アドレスがロードさ
れている。同じく、PC命令の実行時に汎用レジ
スタGR3に保管されたアドレス空間番号ASN1
は、主ASNとして汎用レジスタGR1にロードさ
れている。この主ASNは、PT命令の実行時に前
述のASN変換処理(第4図参照)を開始するの
に用いられる(101、102)。その場合、制御レジ
スタCR4にあるプログラムP3の許可インデツ
クスAXを用いて許可テーブルATがアクセスさ
れる。ASN変換処理が完了したときには、制御
レジスタCR4はASTエントリから新しい許可イ
ンデツクスAXを受取り、制御レジスタCR1は
セグメント・テーブル記述子を主セグメント・テ
ーブル記述子PSTDとして受取り、制御レジスタ
CR7は同じ記述子を副セグメント・テーブル記
述子SSTDとして受取つている。従つて、主
ASN及び副ASNが同じになる。汎用レジスタ
GR2にロードされていたプログラムP1のため
の命令アドレスは、PSWの命令アドレス・フイ
ールドへ挿入され、かくしてプログラムP1の実
行が再開される。 以上のように、本発明に従えば、問題プログラ
ムがPSW及び制御レジスタの情報を変更し得る
新しいプログラム状態(半特権状態)、問題プロ
グラムが別のアドレス空間にあるデータをアドレ
ス指定できるか否かを調べる許可検査、各々のア
ドレス変換テーブルを用いた2以上のアドレス空
間のアドレス指定、及び監視プログラムによつて
与えられたPSWキーとは別の記憶保護キーを用
いた命令の実行を各々導入することにより、プロ
グラム及びデータの保全を必要とするデータ処理
システムの能力及び融通性が著しく向上する。
【図面の簡単な説明】
第1図は本発明に従うデータ処理システムの概
要を示すブロツク図、第2図は本発明で使用され
る3つの命令形式を示すブロツク図、第3図は
種々のシステム制御テーブルのエントリ形式を示
すブロツク図、第4図はASN変換のフローを示
すブロツク図、第5図はPC番号変換のフローを
示すブロツク図、第6図は副ASN設定のフロー
を示すブロツク図、第7図、第8図及び第9図は
プログラム呼出しのフローを示すブロツク図、第
10図及び第11図はプログラム転送のフローを
示すブロツク図、第12図は同じアドレス空間内
でのプログラム呼出し及び異なつたアドレス空間
の間でのデータ移動を実行する際のメイン・メモ
リ・アクセスを示すブロツク図、第13図は別の
アドレス空間にあるプログラムを呼出す際のメイ
ン・メモリ・アクセス及びレジスタ間転送を示す
ブロツク図、第14図は別のアドレス空間からの
プログラム転送を実行する際のメイン・メモリ・
アクセスを示すブロツク図である。

Claims (1)

  1. 【特許請求の範囲】 1 記憶保護キーが各々関連付けられている複数
    のブロツクを含み、種々のデータ、問題プログラ
    ム、監視プログラム及びシステム制御テーブルを
    記憶するメイン・メモリと、上記記憶保護キーと
    比較されるべきPSW保護キー及び命令アドレス
    を含むPSWの制御のもとにプログラムを実行す
    る処理装置とを具備し、現プログラムが別のプロ
    グラムを呼出せるようになつている多重プログラ
    ミング・データ処理システムにして、 各上記記憶保護キーと各々一意的に対応する複
    数のキー・マスク・ビツトから成るキー・マスク
    を保持するキー・マスク保持手段を設けると共
    に、上記別のプログラムの開始命令アドレスと、
    上記別のプログラムの呼出しが許されるか否かを
    検査するための許可キー・マスクとを上記システ
    ム制御テーブルに記憶しておき、上記別のプログ
    ラムを呼出すときはまず上記システム制御テーブ
    ルから上記許可キー・マスクを取出して、上記キ
    ー・マスク保持手段に保持されているキー・マス
    クと組合わせ、その結果に応じて上記別のプログ
    ラムの呼出しの可否を決めるようにしたことを特
    徴とする多重プログラミング・データ処理システ
    ム。 2 上記システム制御テーブルは、エントリとし
    て上記開始命令アドレス及び上記許可キー・マス
    クの他にエントリ・キー・マスクを含み、上記別
    のプログラムの呼出しが許可されると、該エント
    リ・キー・マスクを取出して上記キー・マスクと
    組合わせ、その結果を上記別のプログラムを実行
    する際の新キー・マスクとして使用するようにし
    た特許請求の範囲第1項記載の多重プログラミン
    グ・データ処理システム。 3 上記キー・マスク保持手段の内容を保管する
    キー・マスク保管手段及び上記PSW中の命令ア
    ドレスを保管する命令アドレス保管手段を設け、
    上記別のプログラムの呼出しが許可されると、両
    該保管手段への保管後に上記新キー・マスクを上
    記キー・マスク保持手段に転送し且つ上記開始命
    令アドレスを上記PSWに転送するようにした特
    許請求の範囲第2項記載の多重プログラミング・
    データ処理システム。 4 上記システム制御テーブルは、上記別のプロ
    グラムが問題プログラム状態及び監視プログラム
    状態の何れで実行されるかを指定するプログラム
    状態ビツトを含み、該ビツトが上記PSWの所定
    の位置に転送されるようになつている特許請求の
    範囲第1項、第2項又は第3項に記載の多重プロ
    グラミング・データ処理システム。
JP5641181A 1980-05-23 1981-04-16 Multiple programming data processing system Granted JPS5710842A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/152,919 US4366537A (en) 1980-05-23 1980-05-23 Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys

Publications (2)

Publication Number Publication Date
JPS5710842A JPS5710842A (en) 1982-01-20
JPH0137775B2 true JPH0137775B2 (ja) 1989-08-09

Family

ID=22545010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5641181A Granted JPS5710842A (en) 1980-05-23 1981-04-16 Multiple programming data processing system

Country Status (5)

Country Link
US (1) US4366537A (ja)
EP (1) EP0040702B1 (ja)
JP (1) JPS5710842A (ja)
CA (1) CA1159965A (ja)
DE (1) DE3174378D1 (ja)

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4472790A (en) * 1982-02-05 1984-09-18 International Business Machines Corporation Storage fetch protect override controls
GB2127994B (en) * 1982-09-29 1987-01-21 Apple Computer Memory management unit for digital computer
US4926316A (en) * 1982-09-29 1990-05-15 Apple Computer, Inc. Memory management unit with overlapping control for accessing main memory of a digital computer
US4493034A (en) * 1982-10-14 1985-01-08 Honeywell Information Systems Inc. Apparatus and method for an operating system supervisor in a data processing system
DE3300699C2 (de) * 1983-01-11 1985-12-19 Nixdorf Computer Ag, 4790 Paderborn Schaltungsanordnung zum Adressieren der jeweils ein Adreßvolumen aufweisenden Speicher mehrerer datenverarbeitender Einrichtungen in einem Mehrprozessorsystem mit Systembus
JPS60107155A (ja) * 1983-11-16 1985-06-12 Hitachi Ltd 記憶ボリユ−ムのデ−タ保護方式
CA1235821A (en) * 1984-06-28 1988-04-26 John Zolnowsky Data processor having module access control
JPS61127038A (ja) * 1984-11-26 1986-06-14 Nec Corp 業務処理プログラムの切替制御方式
US4766537A (en) * 1986-01-02 1988-08-23 Motorola, Inc. Paged memory management unit having stack change control register
JPS62297955A (ja) * 1986-06-17 1987-12-25 Digital:Kk キヤツシユメモリ装置
JPS6376034A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd 多重アドレス空間制御方式
JPS63278145A (ja) * 1987-05-11 1988-11-15 Nec Corp パラメ−タ対応検査方式
US4930073A (en) * 1987-06-26 1990-05-29 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
US5317717A (en) * 1987-07-01 1994-05-31 Digital Equipment Corp. Apparatus and method for main memory unit protection using access and fault logic signals
US5140684A (en) * 1987-09-30 1992-08-18 Mitsubishi Denki Kabushiki Kaisha Access privilege-checking apparatus and method
US4887076A (en) * 1987-10-16 1989-12-12 Digital Equipment Corporation Computer interconnect coupler for clusters of data processing devices
US5129087A (en) * 1988-02-03 1992-07-07 International Business Machines, Corp. Computer system and a method of monitoring transient data structures in a computer system
US5008811A (en) * 1988-02-10 1991-04-16 International Business Machines Corp. Control mechanism for zero-origin data spaces
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
US4979098A (en) * 1988-02-10 1990-12-18 International Business Machines Corporation Multiple address space token designation, protection controls, designation translation and lookaside
US5220669A (en) * 1988-02-10 1993-06-15 International Business Machines Corporation Linkage mechanism for program isolation
US5434999A (en) * 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
US5201052A (en) * 1989-02-10 1993-04-06 Fujitsu Limited System for transferring first and second ring information from program status word register and store buffer
US5163096A (en) * 1991-06-06 1992-11-10 International Business Machines Corporation Storage protection utilizing public storage key control
GB2260004B (en) * 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
EP0543032A1 (en) * 1991-11-16 1993-05-26 International Business Machines Corporation Expanded memory addressing scheme
US5359721A (en) * 1991-12-18 1994-10-25 Sun Microsystems, Inc. Non-supervisor mode cross address space dynamic linking
US5493661A (en) * 1992-03-06 1996-02-20 International Business Machines Corporation Method and system for providing a program call to a dispatchable unit's base space
US5694587A (en) * 1995-03-31 1997-12-02 International Business Machines Corporation Specialized millicode instructions for test PSW validity, load with access test, and character translation assist
US5611062A (en) * 1995-03-31 1997-03-11 International Business Machines Corporation Specialized millicode instruction for string operations
US5689702A (en) * 1995-06-07 1997-11-18 Microtec Research, Inc. Flexible data structure layout for data structure including bit-field data members
US5745676A (en) * 1995-12-04 1998-04-28 International Business Machines Corporation Authority reduction and restoration method providing system integrity for subspace groups and single address spaces during program linkage
US5621909A (en) * 1996-03-12 1997-04-15 International Business Machines Corporation Specialized millicode instruction for range checking
US5754810A (en) * 1996-03-12 1998-05-19 International Business Machines Corporation Specialized millicode instruction for certain decimal operations
US5787309A (en) * 1996-05-23 1998-07-28 International Business Machines Corporation 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
US5900019A (en) * 1996-05-23 1999-05-04 International Business Machines Corporation Apparatus for protecting memory storage blocks from I/O accesses
US6175916B1 (en) * 1997-05-06 2001-01-16 Microsoft Corporation Common-thread inter-process function calls invoked by jumps to invalid addresses
US6182174B1 (en) 1998-04-13 2001-01-30 International Business Machines Corporation Memory card interface method using multiplexed storage protect key to indicate command acceptance
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6795905B1 (en) * 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
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
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
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
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
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
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
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
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
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
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
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
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
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
US7073042B2 (en) 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7415708B2 (en) 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
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
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US7076637B2 (en) * 2003-10-29 2006-07-11 Qualcomm Inc. System for providing transitions between operating modes of a device
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
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
JP2006004280A (ja) * 2004-06-18 2006-01-05 Toshiba Kyaria Kk マイクロコンピュータおよび電気機器
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
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3328765A (en) 1963-12-31 1967-06-27 Ibm Memory protection system
US3328768A (en) * 1964-04-06 1967-06-27 Ibm Storage protection systems
FR2258112A5 (ja) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
AU506710B2 (en) * 1974-10-21 1980-01-24 Honeywell Information Systems Incorp. Method of accessing priviledged memory in a multiprogrammed data processing system
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system

Also Published As

Publication number Publication date
EP0040702A3 (en) 1982-01-13
EP0040702A2 (en) 1981-12-02
CA1159965A (en) 1984-01-03
US4366537A (en) 1982-12-28
JPS5710842A (en) 1982-01-20
EP0040702B1 (en) 1986-04-16
DE3174378D1 (en) 1986-05-22

Similar Documents

Publication Publication Date Title
JPH0137775B2 (ja)
JPS6134177B2 (ja)
JPH0235339B2 (ja)
US5023773A (en) Authorization for selective program access to data in multiple address spaces
US4521846A (en) Mechanism for accessing multiple virtual address spaces
EP0331900B1 (en) Method and apparatus for capability control
US5220669A (en) Linkage mechanism for program isolation
US4979098A (en) Multiple address space token designation, protection controls, designation translation and lookaside
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
CA2064640C (en) Storage protection utilizing public key control
US5628023A (en) Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view
EP0551148A2 (en) Direct input/output in a virtual memory system
US4866599A (en) Call instruction, return instruction and trap procedure for ring crossing architecture
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
US5745676A (en) Authority reduction and restoration method providing system integrity for subspace groups and single address spaces during program linkage
US4409655A (en) Hierarchial memory ring protection system using comparisons of requested and previously accessed addresses
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
EP0040703B1 (en) Enhancements in system/370 type of data processing apparatus
EP0327839B1 (en) Information handling system
US5493661A (en) Method and system for providing a program call to a dispatchable unit's base space
CA1312142C (en) Linkage mechanism for program isolation