JPH06100992B2 - 中央処理装置オペレーティング方法 - Google Patents

中央処理装置オペレーティング方法

Info

Publication number
JPH06100992B2
JPH06100992B2 JP63319660A JP31966088A JPH06100992B2 JP H06100992 B2 JPH06100992 B2 JP H06100992B2 JP 63319660 A JP63319660 A JP 63319660A JP 31966088 A JP31966088 A JP 31966088A JP H06100992 B2 JPH06100992 B2 JP H06100992B2
Authority
JP
Japan
Prior art keywords
program
entry
access
instruction
address space
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
JP63319660A
Other languages
English (en)
Other versions
JPH01207859A (ja
Inventor
リチヤード・イーウイン・バーム
テリイ・リイ・ボーデン
カール・エドワード・クラーク
アレン・ジヨージ・ガネク
ジエームズ・ラム
マイケル・ジエラード・マール
キヤスパー・アンソニイ・スカルズイ
リチヤード・ジヨン・シヤマルズ
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH01207859A publication Critical patent/JPH01207859A/ja
Publication of JPH06100992B2 publication Critical patent/JPH06100992B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements 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/46—Multiprogramming arrangements
    • G06F9/468—Specific access rights for resources, e.g. using capability register

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)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、実行中のプログラムによる多重仮想アドレス
空間への並行アクセスを可能にする技術に係る。このシ
ステムでは、汎用レジスタに対応するアクセス・レジス
タが、アドレス空間識別のためのトークンを含んでい
る。トークンは変換プロセスにおいてアクセス・リスト
・エントリを指定するのに用いられ、それによりセグメ
ント・テーブル記述子が得られる。トークンの使用は、
アドレス空間のシステム制御をアクセス・レジスタのプ
ログラム制御から分離するのを可能にする。本発明は米
国特許4355355号明細書に開示されているアドレス・レ
ジスタ・システムを改良したものである。
B.従来技術 多重仮想アドレス空間での仮想アドレス指定を利用する
データ処理システムはよく知られている。このようなシ
ステムの例として、MVS制御プログラミングを用いたIBM
システム/370がある。IBMシステム/370の構成について
は“IBM System/370−XA Principles of Operation"
(資料番号SA22−7085−1)に詳しい。これに記載され
ているMVSシステムは、命令実行、割り込み処理、タイ
ミング機能、初期プログラム・ローディングその他の機
械関連機能のための順序づけ及び処理機構を備えた中央
処理装置(CPU)と、直接アドレス指定可能でCPUによる
高速データ処理を可能にする主記憶装置とを含んでい
る。主記憶装置はCPUと一体的に、または独立ユニット
として構成される。
米国特許第4096573号明細書及び同第4136385号明細書も
MVSシステムを開示している。それによれば、主記憶装
置は複数のユーザにより使用されるアドレス空間として
割り振られ、各アドレス空間はすべてのユーザに共通の
部分を含む。各ユーザは、プログラムやデータを自身に
割り当てられたアドレス空間の私用部分に置いておく
と、それらを他のユーザから分離することができ、共通
部分におくと、他のユーザによるアクセスが可能とな
る。このようなシステムでは、2つのアドレス空間の間
でデータを移動することができる。その場合、第1のア
ドレス空間にあるプログラムがデータをその私用域から
共通域へ移し、ついで第2のアドレス空間にあるプログ
ラムにデータを移動するよう知らせる。共通域を複数空
間の間の連絡域として使用すると、共通域の容量が増
え、その分私用域の容量が減る。あるプログラムから別
の制御プログラムへの通知はサブシステムあるいは制御
プログラムだけがなし得る。データは記憶保護キーによ
り保護されるが、その数は16しかなく、共通のアドレス
指定され得る情報を他のサブシステムまたは許可された
プログラムによる不注意の書込みから保護するのは不十
分である。
米国特許第4355355号明細書は、汎用レジスタ(GPR)に
関連するアクセス・レジスタ(AR)を開示している。各
ARには一意的なセグメント・テーブル記述子(STD)が
ロードされる。STDは、主記憶装置におけるセグメント
・テーブル・アドレスとセグメント・テーブル長フィー
ルトを含む。ARは所定数だけ設けられ、それぞれGPRと
関連づけられて、ARの数までのデータ・アドレス空間の
サブセットを定義する(各GPRについてのアドレス空間
の数が2以上になることはない)。AR中のSTDは、関連
するGTRが記憶域オペランド・ベース・レジスタとして
選択される時、たとえばGPRがIBMシステム/370命令のB
フィールドによって選択される時に、アドレス変換のた
めに選択される。各ARは、関連するAR中のSTDを用いて
そのデータ・アドレス空間を定義する代わりに、プログ
ラム・アドレス空間AR中のSTDを用いるように指定する
こともできる。しかし、関連するGPRが記憶域オペラン
ド・ベース・レジスタ以外の目的、たとえばインデック
ス・レジスタまたはデータの転送元あるいは転送先レジ
スタとして選択されると、ARのSTDはアドレス変換のた
めには選択されない。実行プログラム・アドレス空間
(データを含んでいてもよい)を定義し制御するのに16
番目のARを設けることができる。
米国特許第436653号明細書、同第4430705号明細書及び
同第4500952号明細書はいずれも二重アドレス空間(DA
S)に関するもので、それによれば、あるアドレス空間
にあるプログラムは、監視プログラムを呼び出すことな
く、他のアドレス空間にあるデータをアクセスしたり、
他のアドレス空間にあるプログラムを呼び出したりする
ことができる。各アドレス空間はアドレス空間番号(AS
N)を割り当てられており、関連する1組のアドレス変
換テーブルを持っている。第2のアドレス空間はプログ
ラムで指定することができる。許可されると、プログラ
ムは主記憶装置のデータをある物理記憶位置から異なっ
たアドレス空間に関連する別の記憶位置へ転送すること
ができる。プログラムで変更可能な空間選択制御ビット
が、2つの異なったアドレス空間に関連する2組の異な
ったアドレス変換テーブルの使用を制御する。
米国特許第4037214号明細書は、アクセス・キー・レジ
スタ(AKR)にある複数のアクセス・キーが命令アドレ
ス・シンク・オペランド・アドレス及びソース・オペラ
ンド・アドレスに基づいて記憶域アクセスのアドレス空
間を切り替える水平アドレス指定システムを開示してい
る。
米国特許第4521846号明細書は、データを非特権状態で
アクセスできるクロスメモリ構成において複数の仮想ア
ドレス空間へのアクセスを制御するための別の機構を開
示している。
米国特許第3787813号明細書は、ケイパビリティ・レジ
スタを用いたデータ処理装置を開示している。このデー
タ処理装置は中央処理装置及び記憶装置を有し、記憶装
置中の情報はセグメント化され、中央処理装置に設けら
れる複数のケイパビリティ・レジスタはそれぞれ情報セ
グメントのベース・アドレス及び限界アドレスを示す記
述子情報を記憶する。ケイパビリティ・レジスタの1つ
は、中央処理装置で現在実行中のプログラムに関連する
セグメント・ポインタ・テーブルを含む情報セグメント
のベース・アドレス及び限界アドレスを定義する情報を
保持し、別の1つは、記憶装置中の各情報セグメントに
対するエントリを有する主ケイパビリティ・テーブルを
含む情報セグメントのベース・アドレス及び限界アドレ
スを定義する情報を保持する。セグメント・ポインタ・
テーブルは、主セグメント・テーブルの異なったエント
リを定義するためのポインタとして使用されるデータ・
ワードのリストを含む。
米国特許第4366536号明細書は、別々に記憶されていて
アセンブリ・レベルのコマンドからなる複数のデータ処
理手順を選択して連係し、さらに複数の可変データ域の
うちの1つを選択するディジタル計算機システムを開示
している。このシステムは、データ処理手順、可変デー
タ域及び連係アドレスを記憶するメモリと、データ処理
手順を記憶しているメモリをアクセスするためのプログ
ラム・カウンタと、データ及び連係アドレスを記憶して
いるメモリをアクセスするためのレジスタと、選択され
たデータ処理手順に含まれるアセンブリ・レベルのコマ
ンドを実行中のデータ処理手順に含まれるアセンブリ・
レベルのコマンド及び前に選択されたアドレスに従って
実行するハードウェア装置とを含む。
米国特許第4268903号明細書は、スタック域を制御する
ためのスタック制御レジスタ・グループを開示してい
る。スタック機構中に形成されユーザ・プログラムによ
って直接制御されるデータ・スタック域の開始アドレス
は、データ・スタック・ポインタ・レジスタに保持され
る。
米国特許第4454580号明細書は、ある論理アドレス空間
にあるプログラムから新しい論理アドレス空間にある別
のプログラムへ実行を移す方法を開示している。呼出し
プログラムは被呼出しプログラムに対する選択的なセグ
メント割振りを制御し、被呼出しプログラムは割り振ら
れるセグメントの長さを制御する。したがって、同じプ
ログラムが繰り返し呼び出されても、他のプログラム又
は前の呼出しにおける同じプログラムの機能またはデー
タは影響を受けない。また、データ・セグメントの割振
りを実行まで延ばすことができ、それにより、他のプロ
グラムの詳細を知らずに書かれたプログラムの実行に融
通性を持たせることができる。
米国特許第4297743号明細書は、それぞれが異なった特
権レベルを表わす複数のリングの階層構成を開示してし
る。特権レベルの低いリングへの分岐が許され、特権レ
ベルは読取専用状況については異なっていてもよいが、
読取書込状況についてはそれは許されない。該特許は3
つの記憶域、すなわち変数を記憶するための作業域、レ
ジスタの内容を保管するための保管域、及び手順間でパ
ラメータを移動するための連絡域を有するスタック・フ
レームを教示する。ユーザは手順呼出しの前に、保管す
べきレジスタを指定しなければならず、また被呼出し手
順へ渡すべきパラメータを連絡域へロードしなければな
らない。システムは一連のスタック・フレームにおいて
呼び出しを記憶しており、それにより、戻りが可能にな
る。
米国特許第4044334号明細書は、アドレス可能空間の複
数のセグメントのうち1つでデータべース・レコードを
見出すためのデータベース・ポインタを検索するシステ
ムを開示している。
1982年1月刊のIBM Technical Disclosure Bulletin第2
4巻、第8号の4401〜4403頁に掲載されている“Method
of Revoking a Capability Containing a Pointer−Typ
e Identifier without Accessing the Capability"と題
する論文は、アドレス空間番号(ASN)をアドレス空間
ケイパビリティのためのポインタ・タイプ識別子として
使用する技術を開示している。これは二重アドレス空間
機構に関するものであり、アクセスが有効かどうかはア
ドレス変換に関連するASN第2テーブル・エントリ(AST
E)を用いて決定することができるので、アクセスの有
効性を調べるためにアドレス空間を決定してはならな
い。一般に、ケイパビリティによるオブジェクトへのア
クセスは、ケイパビリティ中の固有コードとオブジェク
トが等しい場合にのみ許される。ケイパビリティは、そ
れを見つけてアクセスする必要なしに、単にオブジェク
ト中の固有コードを変えるだけで無効にすることができ
る。
C.発明が解決しようとする課題 これまで述べてきた従来技術は、計算機のユーザに対し
て進歩した機能を提供するものであるが、なお改善が望
まれる部分もある。たとえば、任意のアドレス空間の間
でデータを移動する機能及び空間内のプログラムのため
に許可指標を制御することにより同じ空間内で異なった
許可指標を使用できるようにする機構の必要性が認めら
れている。また、アドレス空間を頻繁に切り替えたり、
アドレス指定環境の切替えに関する付加的なアドレス指
定能力の獲得または放棄を行なったりすることも必要で
ある。制御及び許可権機構は重要なポイントである。AR
の内容はユーザが変更できるようにすべきであるが、ユ
ーザはSTDのような実際のアドレス指定情報を直接アク
セスすべきでない。したがっって、使い易いアドレス空
間機構と適切な制御及び許可権機構とを組み合わせるこ
とによって、アドレス空間への望ましくないアクセスを
阻止する必要がある。本発明は、このような様々な要求
を満たすものである。
D.課題を解決するための手段 本発明に従うデータ処理システムは、システムの制御下
にある多重仮想アドレス空間を有し、アドレス空間のユ
ーザ管理は空間識別のためのシステムから与えられるト
ークンによる。トークンは、ユーザがシステムにアクセ
スされるべきアドレス空間を識別するのを可能にする
が、ユーザによる実アドレス空間または仮想アドレス空
間の直接制御は許されない。かくして、システムは、ユ
ーザが直接システム管理資源を用いて作業できないよう
に、アドレス空間へのアクセスに対して適切な許可制御
を与える。ユーザは、どのアドレス指定方式を呼び込む
かに関していくつかの動作モードの中から選択すること
もできる。
本発明に従うシステムでは、ユーザのためにアーキテク
チャに存在するすべての汎用レジスタに対応するアクセ
ス・レジスタ(AR)が設けられる。ARモードでは、各ア
クセス・レジスタは、汎用レジスタがアクセスを許され
るアドレス空間を示すアクセス・リスト・エントリ・ト
ークン(ALET)を含む。ALETはアクセス・リスト・エン
トリ(ALE)を指し示す。ALETによって示されたアドレ
ス空間に対し汎用レジスタ中のオペランドを用いた動的
アドレス変換(DAT)が行なわれる。アクセス・レジス
タ変換(ART)を用いてSTDを得るプロセスは2ステップ
・プロセスである。まず、ALETを用いて、アドレス空間
番号第2テーブル・エントリ(ASTE)アドレスを含むア
クセス・リスト中のアクセス・リスト・エントリを識別
する。次に、ASTEアドレスを用いて、動的アドレス変換
(DAT)で使用されるSTDを含むASTEをアクセスする。ST
DをASTEを得る前に、ALET、アクセス・リスト及びASTE
の構成要素を用いてテストが行なわれる。ARTは、信頼
性、完全性及び許可権の検査を含む。アクセス・リスト
中の正しいアクセス・リスト・エントリ(ALE)を見つ
けるためにアクセス・レジスタ中のALETが最初に使用さ
れる時、エントリが有効かどうかを調べる検査が行なわ
れる。ついで、ALEの内容を用いて正しいASTEが見い出
され、そこからSTDが得られる。さらに、ASTEへの参照
の正しさを検査するため、ALE及びASTEの内容からASTE
順序番号(ASTESN)の比較が行なわれる。
これらの比較は、計算機技術で定義されているごときケ
イパビリティを用いる。ケイパビリティは模造不能のオ
ブジェクトであって、その所有者は別のオブジェクトに
対するオペレーションを実行することができる。アクセ
ス・レジスタの場合、ケイパビリティが扱うオブジェク
トはアドレス空間である。もしアドレス・レジスタがケ
イパビリティ、すなわちアドレス空間のためのSTDを直
接保持することができたならば、模造不能という特性を
維持するため、特権命令だけがARの内容を操作できるよ
うにしなければならない。アドレス空間制御に特権命令
を使用すると、問題状態プログラム及び特権制御プログ
ラムの間で制御権を移す必要があるため、余分の時間及
び計算機資源を必要とする。
アクセス・リストはアドレス空間に対する最大のアドレ
ス可能度を含む。ARTプロセスはさらに、許可権テスト
によって最大アドレス可能度を制限し得るALEの許可権
レベルを決定する。すべてのプログラム・コードはある
所定の許可権レベルのもとで動き、ALEへのアクセスは
許可権テストによって制御される。テストのレベルは3
つある。最初のレベルはALE中の公用/私用ビットであ
る。もし公用であれば、アクセス・リストのどのユーザ
もエントリを使用できる。私用であれば、第2レベルの
テストが行なわれる。その際、制御レジスタ8にある拡
張許可指標(EAX)はALE中のアクセスされたアドレス空
間に関連する許可指標(ALEAX)と同じでなければなら
ない。制御レジスタ8は、実行プログラムの空間アクセ
ス許可権を指定する。これは事実上、空間をアクセスす
る制御された空間の所有者である。最後に、もしEAXとA
LEAXが等しくなければ、3番目のテストが行われる。ア
クセスされたASTEの許可権テーブルが制御レジスタ8か
らのEAX値によって指標づけされる。もし特定のEAXが許
可権テーブルにおいて許可されたアクセスを見つける
と、アクセスは可能である。これは、特殊使用を可能に
する空間の所有者に相当する。
本発明では、ARがALETを含んでおり、したがって特権命
令を使用することなくアドレス空間を制御することがで
きる。ARに含まれるALETはアクセス・リスト・エントリ
を介して間接的に空間を指定するので、非特権命令また
はサブルーチンは、制御プログラム・サービスを用いる
ことなく、アクセス・レジスタの内容を保管し、アクセ
ス・レジスタを別の目的に使用し、ついで保管した内容
を復元することができる。かくして、アクセス・リスト
がユーザの許可権を制御する。アクセス・リスト・エン
トリに直接STDを含ませる代わりに、アクセス・リスト
・エントリでSTDを含むASTEを指し示すようにした理由
は、空間を参照するすべてのアクセス・リスト・エント
リを見つける必要なしに、ASTEを操作することによって
アドレス空間に対する制御及び許可権を修正できるから
である。システムにおけるすべてのプログラム・アドレ
ス空間の定義はアドレス空間第2テーブル(AST)によ
って与えられ、したがってシステムはすべてのアドレス
空間に対する中間制御点を持つ。多数のユーザが1つの
アドレス空間をアクセスできるが、そうするためにはそ
のアドレス空間をアクセス・リストに持っている必要が
ある。2以上のアクセス・リストにおける2以上のALE
が同じASTEを指し示すことができる。したがって、ARと
STDの間には2レベルの間接的動作があり、ユーザのケ
イパビリティ及び空間をアドレスする許可権を別々に制
御できるようになっている。
ARとSTDの間に間接的動作によって容易になる他の制御
の例として、システムがSTD情報を置く実アドレスの管
理がさらに簡単になる。セグメント・テーブル起点は実
アドレスにより識別され、通常はページ境界上にある。
セグメント・テーブル自体は通常メモリの完全な実フレ
ームを占有する。したがって、アドレス空間が主記憶装
置からスワップ・アウトされる時に、セグメント・テー
ブルをマップする実フレームが他のセグメント・テーブ
ル又は他の仮想アドレスをマップするよう再使用可能で
あることが重要である。この要求は、STD中の実アドレ
スを再使用する前に制御プログラムが情報を更新しなけ
ればならない唯一の場所であるASTEを用いることによっ
て満たされる。
選択されたアクセス・リストは1以上の使用可能な定義
域からのものであり得る。たとえば、後述の実施例で
は、指名可能ユニット定義域(DUAL)及び一次アドレス
空間定義域(PSAL)の両方が使用される。アクセス・リ
ストは指名可能ユニットまたは一次アドレス空間の何れ
かと関連しているが、リスト中の有効エントリは、指名
可能ユニットの作業を遂行するために実行される異なっ
たプログラムと関連づけられる。DUALはユーザに属し、
異なったユーザに対してはたとえ同じプログラムを実行
する場合であっても異なったものになり得る。PSALは指
名可能ユニットには関係なく関連する一次アドレス空間
で実行されるプログラムに共通である。2つの主要な利
点が一次アドレス空間定義域から得られる。第1に、一
次アドレス空間定義域のすべてのユーザは、各ユーザの
指名可能ユニットに対するケイパビリティの割当てある
いは獲得を個々に行なう必要なしに、定義域のケイパビ
リティを持つ。第2に、指名可能ユニットは、個々にケ
イパビリティを獲得する必要なしに、一次アドレス空間
定義域を切り替えることによってケイパビリティを獲得
できる。
指名可能ユニット・アクセス・リスト(DUAL)は、どの
アドレス空間にコードがあるかには関係なく、指名可能
ユニットのもとでランするすべてのコードの最大潜在ア
ドレス可能度を含み、PSALは、どの指名可能ユニットの
もとでコードがランしているかに関係なく、特定のアド
レス空間でランするすべてのコードの最大空間アドレス
可能度を含む。いずれにしても、ARTプロセスはEAX許可
権検査を受ける。これにより、たとえば、プログラムが
別のアドレス空間にあるサービスを呼び出して公用アド
レスを空間での通信を可能にし、一方では、呼び出され
たサービスは保全性やプライバシー保護のために呼び出
した空間へのアクセスを禁止される、といったことが可
能になる。プログラム呼出し(PC)はEAXを変更し得る
ので、これを行なうのは簡単である。たとえアクセス・
リストがサービス・アドレス空間で使用可能であって
も、指名可能ユニットが第2の空間にある間、私用空間
に対するエントリのアクセスは阻止できる。
さらに、本発明は、ALD、ALE、ASTE及び許可権テーブル
のための記憶域参照の回数を減らすARTルックアサイド
・バッファ(ALB)を使用する。これがなければ、関連
するGPRが記憶域オペランド参照を含むたび記憶装置を
参照しなければならない。ART時の記憶域参照回数はき
わめて多くなり得るので、ALBを用いてART機能の結果を
得るようにすると、アクセス・レジスタ機能に関し計算
機資源の効率的な使用が可能になる。
ALBを使用する時、CPUは当該ARエントリを用いた初期ア
クセスに対してのみ実記憶域でARTプロセスを遂行す
る。ARTプロセスからの情報はALBに置かれ、それが無効
になるかまたは他のARTオペレーションの結果によって
置き換えられることのない限り、後続のARTオペレーシ
ョンはALB中の情報を用いて遂行される。ALBはまた出力
を生じる前に、必要な許可権検査を行なう。ARTでALBを
使用すると、実記憶域でARTを遂行するのに用いる情報
の内容が変化しても、それが必ずしもただちに、STDが
得られるかどうか、あるいはどのSTDがALBから得られる
かということに影響するわけではない。
ALBは論理的にはCPUのテーブルであって、いくつかのタ
イプのエントリを含む。ALBの構成を複雑にすると、ART
の特定の時点において1以上のALBエントリが使用可能
である確率、したがってその時点において実記憶域への
1以上の参照を避けることができる確率が高くなる。こ
れに対して、ALBの構成を簡単にすると、実記憶域への
参照を回避する確率が低くなる。
連係スタック機構は、任意の異なった許可権レベルで動
いているプログラムが制御プログラムの介入なしに直接
連係されるのを可能にする。呼出しプログラム及び被呼
出しプログラムのシーケンスにおける各プログラムの許
可権の程度は任意に異なっていてもよく、したがって非
階層的なプログラム構造を確立することができる。EA
X、PSWキー、PSWキー・マスク及び二次アドレス空間の
変更についての許可権に関するオプションは、異なった
許可権を異なったプログラムまたは同じ被呼出しプログ
ラムと関連づける手段を与える。各プログラムの許可権
は、制御プログラムによって管理されるエントリ・テー
ブルで規定される。同じプログラムを異なったPC番号で
呼び出せるようにエントリ・テーブルを設定することに
より、どのPC番号を呼出しに用いるかに応じて異なった
許可権をプログラムに割り当てることができる。エント
リ・テーブルは、プログラムがどのPC番号を用いて他の
プログラムを呼び出せるかということの制御も可能にす
る。
連係スタック機構によって提供されるスタッキング・プ
ログラム呼出し及びプログラム戻りの連係オペレーショ
ンは、異なったアドレス空間にあって異なったレベルの
許可権を持つプログラムを連係することができる。実行
状態ならびに汎用レジスタ及びアクセス・レジスタの内
容はスタッキング・プログラム呼出し命令の実行の間保
管され、プログラム戻り命令の実行の間に部分的に復元
される。連係スタックは、連係オペレーションにおいて
実行状態及びレジスタ内容の保管及び復元を効率的に行
なう手段を提供する。
E.実施例 本発明の多重アドレス空間(MAS)機構は、二重アドレ
ス空間(DAS)機構及びアクセス・レジスタ・システム
を改良したものである。MAS機構は、DAS機構との互換性
を有しかつそれに追加する形で動くように設計されてお
り、若干の変更及び改良はあるが、ほとんどの部分でDA
S機構のものと同じテーブル及びレジスタ配置を使用す
る。アクセス・レジスタ変換(ART)システムは、ユー
ザがアクセス・レジスタ・システムを十分に利用できる
ようにすると共に、機械のアドレス指定機能をユーザか
ら分離し保護する。ARTルックアサイド・バッファ(AL
B)の使用はARTの性能を高める。
サービス提供者(プログラム)は普通、ユーザに使用さ
せたいデータまたはプログラムを含むアドレス空間を1
以上所有する。サービス提供者は、プログラムにプログ
ラム呼出し(PC)番号を割り当てることによって、ユー
ザに対してそれらのプログラムを使用可能にする。PC番
号割当て操作は、プログラム制御を移すためのリンクを
確立すること、サービス呼出し者(プログラム)に必要
とされる許可特性を指定すること、及びサービス提供者
のプログラムの許可特性を割り当てることを含む。プロ
グラム制御はあるアドレス空間から別のアドレス空間へ
移すことができ、また同じアドレス空間に留まっていて
もよい。いずれにしても、それに伴なって許可があるレ
ベルから別のレベルへ変えられることがあり、その結
果、より大きな、より小さな、または異なった許可が与
えられる。サービス提供者は呼出し者のレベルとは異な
った許可レベルでランすることができ、それによりサー
ビス提供者ルーチンは呼出し者がアクセスできないアド
レス空間にあるデータをアクセスすることができる。ユ
ーザ及びサービス提供者は、アクセス・リストにおいて
私用アドレス空間として指示されていないすべての空間
をアクセスすることができる。さらにサービス提供者は
ユーザがアクセスできない選択されたアドレス空間をア
クセスすることができる。同様に、サービス提供者に対
し、ユーザがアクセスできる選択されたアドレス空間へ
のアクセスを禁止することができる。
プログラム命令の実行は2つのオペレーションに分ける
と都合がよい。最初のオペレーションは、実行すべき命
令の取出しである。2番目のオペレーションはオペラン
ドのアドレス指定であり、命令実行中に処理されるデー
タを取り出したり記憶したりするために行なわれる。AR
モードのMASでは、命令は一次アドレス空間として設定
されたアドレス空間から取り出される。一次アドレス空
間の設定には空間切替え操作が必要な場合もある。
第1図は、本発明に従うアクセス・レジスタを用いてオ
ペランドをアドレス指定する様子を示している。動的ア
ドレス変換で使用するSTDを得るためにアクセス・レジ
スタの内容を使用するプロセスをアクセス・レジスタ変
換(ART)オペレーションと呼び、第1図では参照番号1
0で示されている。命令12は、OPコード、ベース・アド
レスを含む汎用レジスタ14を指定するBフィールド、及
び加算器15で汎用レジスタ14のベース・アドレスと組み
合わされて記憶域オペランドの論理アドレスを生成する
変位Dを含んでいる。アクセス・レジスタ・モードにお
いては、BフィールドはALETを含むアクセス・レジスタ
16も指定する。ALETは、ART10で変換されると、データ
を記憶するアドレス空間に対するSTDを与える。ART10か
らのSTDは加算器15からの論理アドレスと組み合わせる
ことができ、動的アドレス変換(DAT)18で一緒に変換
されると、システムによって使用されるオペランドの実
アドレスが生成される。命令12は、図示のBフィールド
及び変位Dの他に、記憶域オペランドの論理アドレスを
含む汎用レジスタを指定するRフィールドを含んでいて
もよい。
本発明に従うアクセス・レジスタの使用は、次の移動
(MVC)命令で説明することもできる。
MVC 0(L,1),0(2) この命令は、長さLの第2オペランドを第1オペランド
記憶位置に移動する。第2オペランドの論理アドレスは
汎用レジスタ2にあり、第1オペランド記憶位置の論理
アドレスは汎用レジスタ1にある。第2オペランドを含
むアドレス空間はアクセス・レジスタ2にあるALETによ
り指定され、第1オペランドのアドレス空間はアクセス
・レジスタ1にあるALETにより指定される。これら2つ
のアドレス空間は異なっていてもよく、また現命令のア
ドレス空間と異なっていてもよい。
ALETを用いた実アドレスへの変換の概要を第2図に示
す。20は0番から15番までの汎用レジスタのアレイを示
す。22は同じく0番から15番までのアクセス・レジスタ
のアレイを示し、各アクセス・レジスタはアレイ20の対
応する汎用レジスタと対になっている。ALET中のアクセ
ス・リスト・エントリ番号(ALEN)がアクセス・リスト
24または25の1つのエントリを選択する。アクセス・リ
スト24はDUAL(指名可能ユニット・アクセス・リスト)
であり、アクセス・リスト25はPSAL(一次空間アクセス
・リスト)である。第2図の例では、アクセス・レジス
タ2のALENは、PSAL25のエントリ3を指し示す。DUAL24
の起点は指名可能ユニット・アクセス・リスト記述子
(DUALD)26により指定され、PSAL25の起点は一次空間
アクセス・リスト記述子(PSALD)27により指定され
る。あとで述べるように、DUALD26は制御レジスタ2(C
R2)にあるエントリを解読することにより見い出され、
PSALD27は制御レジスタ5(CR5)にあるエントリを解読
することにより見い出される。ARTで使用するアクセス
・リスト記述子は有効アクセス・リスト記述子(ALD)
として知られている。
アクセス・リストの各エントリは、ASN第2テーブル・
エントリ(ASTE)98を指し示すASTEアドレスを含むが、
ASTEはASN第2テーブル(AST)30にあることもないこと
もある。実際にAST30に入っているものとはまったく独
立に、ARTのためにASTEを生成してその機能を遂行させ
ることができる。ただし、PCで使用されるASTEはAST30
になければならない。各ASTEはDAS機構で使用されるも
のと同様であり、DAT18で実アドレスを決定するためのS
TD値を含む。
プログラムに対しては、それぞれが異なったケイパビリ
ティ定義域を表わす2つのアクセス・リストが同時に使
用可能である。一方のアクセス・リストは指名可能ユニ
ット・アクセス・リスト(DUAL)と呼ばれ、他方は一次
空間アクセス・リスト(PSAL)と呼ばれる。ALETのALEN
がいずれのアクセス・リストのエントリを指し示してい
るかは、ALET中の1ビットにより指定される。プログラ
ムは、アクセス・リスト24及び25の各エントリを使用す
ることができる。
DUAL定義域は、指名可能ユニット(タスクまたはプロセ
ス)により実行されるプログラムのために永続的に指名
可能ユニットと関連づけられる。システムの指名可能ユ
ニットごとに固有のDUALがある。DUALは、たとえ関連す
る指名可能ユニットが多くの異なったアドレス空間にあ
るプログラムを実行できるとしても、変更することはな
い。PSAL定義域は一次アドレス空間と関連づけられる。
一次アドレス空間で実行されるすべてのプログラムは、
そのアドレス空間のPSALを共用する。これにより、一次
アドレス空間で実行されるプログラムは、共通の一組の
アドレス空間へのアクセスを共用することができる。一
次アドレス空間がたとえば空間切替えPCオペレーション
によって変わると、PSALも変わる。有効ALETを所有する
ユーザはDUAL24またはPSAL25のアクセス・リスト・エン
トリをアクセスできる。アクセスされたエントリは所望
のアドレス空間を指定する。ALET及び選択された制御レ
ジスタを用いて同様に制御される他の定義域を設けるこ
とも可能である。たとえば、システムにおけるすべての
プログラムのケイパビリティを有するシステム・ワイド
・アクセス・リスト(SWAL)を生成することができる。
既存の機構をさらに改良するため、SASN定義域アクセス
・リスト(SSAL)のごとき種々の定義域のサブセットを
構成することもできる。
ARモードにおいては、ALETが一次アドレス空間及び二次
アドレス空間にあるオペランドをそれぞれアクセスする
ように予約されているので、DUAL24のエントリ0及び1
は使用されない。CPUのアドレス指定モードは、後述の
ように、PSW中のビットによって指定される。CPUがARア
ドレス指定モードにあれば、0のALETは常に一次アドレ
ス空間を示し、1のALETは常に二次アドレス空間を示
す。第2図のブロック28はこれらの特別なALETを識別
し、DAT18へのPASN及びSASNに対する正しいSTDを与え
る。CPUがホーム・アドレス指定モードにあれば、ホー
ム・アドレス空間が実行すべき命令及びデータのソース
である。ホーム・アドレス空間は、実行中のプログラム
に対する監視プログラム制御情報を有するアドレス空間
として定義される。オペレーティング・システムは、デ
ータ・アクセスの目的で各ホーム空間に対して2のALEN
を割り当て、ホーム空間のためのSTDはARTによって得ら
れる。一次アドレス空間及び二次アドレス空間に対する
STD値はそれぞれ制御レジスタ1及び7に保持されるの
で(第3図参照)、アクセス・リスト・エントリ0及び
1は使用されない。第2図の例では、PSAL25のエントリ
0、1及び2は使用されず、無効エントリとしてマーク
される。
ARTルックアサイド・バッファ(ALB)199は、ARTから生
ずるSTDを保持するため、ARアレイ22、PSAL25及びAST30
からの入力を受け取り保管する。ALB199はアクセス・リ
スト記述子DUALDまたはPSALDも保持する。同じALETが再
び使用される場合、ALB199は正しい出力を直接DAT18へ
供給し、ARTを繰り返す必要はない。
命令実行中のプログラムの制御及びCPUの状態に関する
情報を与える制御レジスタ及びPSWをそれぞれ第3図及
び第4図に示す。
第3図は、本発明のMAS機構に関係する制御レジスタ0
〜15の内容を示している。これらの内容の多くは公知の
DAS機構のものと同じであり、したがって、以下では主
としてMAS機構のためになされた変更個所について述べ
ることにする。
制御レジスタ0のビット15(M)が1であれば、CPUがM
ASモードで動作していること、及び制御プログラムがMA
Sをサポートすることを示す。MAS機構は、エントリ・テ
ーブル・エントリ、ASN第2テーブル・エントリ、連係
スタックの使用可能性、及びアクセス・レジスタ・モー
ドに入る能力については新しいフォーマットを使用す
る。制御レジスタ1は一次セグメント・テーブル記述子
(PSTD)を含む。そのビット1〜19は一次セグメント・
テーブル起点(PSTO)を指定し、ビット25〜31は一次セ
グメント・テーブル長(PSTL)を指定する。制御レジス
タ2のビット1〜25は、後述のように、DUALDを見つけ
るためにMAS機構によって使用される指名可能ユニット
制御テーブル起点(DUCTO)を指定する。制御レジスタ
5のビット1〜25は、一次ASTE起点(PASTEO)を指定す
る。後述のように、制御レジスタ5の内容は、PSAL起点
と、一次アドレス空間についてのASTE中の他の情報を見
つけるべくASTEエントリを指し示す。
制御レジスタ7は、ビット1〜19が二次セグメント・テ
ーブル起点(SSTO)を指定し、ビット25〜31が二次セグ
メント・テーブル長(SSTL)を指定する二次セグメント
・テーブル記述子(SSTD)含む。制御レジスタ8のビッ
ト0〜15は、本発明のMAS機構で使用される拡張許可指
標(EAX)を含む。後述のように、EAXはサービス提供者
の制御のもとにエントリ・テーブル・エントリ中のビッ
ト内容の指定にしたがって変えることができ、これによ
り、プログラムによるアドレス空間のアクセスの許可を
変更することができる。
制御レジスタ13は、ビット1〜19がホーム・セグメント
・テーブル起点(HSTD)を指定し、ビット25〜31がホー
ム・セグメント・テーブル長(HSTL)を指定するホーム
・セグメント・テーブル記述子(HSTD)を含む。制御レ
ジスタ15のビット1〜28は、後述のように、最後の連係
スタック・オペレーションで定義された連係スタック・
エントリのアドレスを含む。
第4図に示したPSWのフォーマットにおいて、ビット5
はDAT18が活動状態かどうかを示すDATモード・ビット
(T)である。ビット16及び17はアドレス指定モードを
指定する。DAT18が活動状態の場合、ビット16及び17の
組合せは、CPUが一次モード(00)、二次モード(1
0)、アクセス・レジスタ・モード(01)、及びホーム
・モード(11)のいずれにあるかを示す。PSWのビット3
2は、ビット33〜63の命令アドレスのフォーマットを指
定するアドレス指定モード・ビットである。PSWの残り
のフィールドの機能及びフォーマットはIBMシステム/37
0で公知のものである。
第2図のところで説明したALETのフォーマットを第5図
に示す。ALETのビット7は一次リスト・ビットであり、
これが1であれば、ALENがPSALを参照することを示す。
ビット7が0であれば、ALENはDUALを参照する。ビット
16〜31はALENを含む、ALENを16倍すると、その積は、有
効アクセス・リストの開始点から指定されたアクセス・
リスト・エントリまでのバイト数に等しい。ARTの間に
もしALENが有効アクセス・リスト外のエントリを指定す
るか、またはALETの左から7ビット(ビット0〜6)か
オールゼロでなければ、例外が認識される。ALENが有効
ALDのアクセス・リスト長(ALL)によって決定されるア
クセス・リストの終わりを越えたアドレスを指し示して
いると、アクセス・リスト・エントリは有効アクセス・
リストの外にある。ALLについては第14図を参照された
い。ALETがX′00000000′またはX′00000001′(X″
は16進表記を意味する)の場合は、上述のALETのフォー
マットは適用されない。これら2つのALET値はARTプロ
セスによって特別の意味を割り当てられている。
ALETは、アクセス・レジスタ、汎用レジスタ及び記憶装
置のいずれにも保持することができ、ユーザの問題プロ
グラムによる操作からは保護されない。どのプログラム
も命令によってALETの値をアクセス・レジスタ、汎用レ
ジスタ及び記憶装置の間で自由に転送することができ
る。呼び出されたプログラムは、アクセス・レジスタの
内容を自身が使用できる任意の記憶域の保管すること、
アクセス・レジスタを自身の目的のためにロードし使用
すること、及び呼出しプログラムへ戻る前にアクセス・
レジスタの元の内容を復元することが可能である。ALET
のビット8〜15はアクセス・リスト・エントリ順序番号
(ALESN)を含む。ALETは問題プログラムからは保護さ
れず、ユーザが誤ってその内容を別の値に変えてしまう
可能性があるので、信頼性を高めるためにALESNをALET
に含ませている。これはARTの間に検査される。
アクセス・リスト・エントリ(ALE)のフォーマットを
第6図に示す。ALEのビット0は、ALEが無効かどうかを
示す無効ビットである。ビット7は私用ビットで、もし
0であれば、どのプログラムもARTオペレーションでこ
のアクセス・リスト・エントリを使用することができ
る。ビット7が1であれば、呼出しプログラムがこのア
クセス・リスト・エントリを使用できるかどうかを決定
するため、ビット16〜31のアクセス・リスト拡張許可指
標(ALEAX)が使用される。ALEはビット8〜15にALESN
値を含む。これは、有効性検査のために、当該ALEを指
定したALETのALESNと比較される。ALEのビット65〜89
は、関連するアドレス空間の対応するASTEアドレスを含
む。ALEのビット96〜126は、後述のASTEエントリに関す
る有効性検査で使用されるASTE順序番号(ASTESN)を含
む。
第2図に示したアクセス・リスト24及び25のエントリ
は、問題プログラムによる直接操作から保護するため、
制御プログラムによって与えられる。この保護は、キー
制御型の保護、またはアクセス・リストを問題プログラ
ムがDATでアクセスできない実記憶域に置くことにより
実現できる。ALEが有効か無効かはビット0によって示
される。有効ALEは、適切に許可されたプログラムがア
クセスできるアドレス空間を指定する。無効ALEは、割
振り又は再割振りの場合は有効エントリとして使用でき
る。制御プログラムは、有効ALEを割り振ったり、以前
に割り振ったALEを無効にしたりするサービスを提供す
る。
ALEの割振りは次のようなステップで行なわれれる。ま
ず、問題プログラムが、アドレス空間の識別子及びDUAL
24またはPSAL25を指定する標識、すなわちALETの一次リ
スト・ビット7を制御プログラムに渡す。制御プログラ
ムはこれに対応して、問題プログラムがアドレス空間の
アクセスを許されているかどうかを検査する。もし許さ
れていると、制御プログラムは指定されたアクセス・リ
ストから無効エントリを1つ選択し、それを有効エント
リに変え、その中にASTEアドレス及びASTESNを含ませる
ことにより当該アドレスを空間を指定し、割り振られた
ALEを指定するALETの値を問題プログラムに戻す。かく
して、問題プログラムは新しいALETをアクセス・レジス
タに置くことにより、アドレス空間をアクセスできるよ
うになる。割り振られたALEはあとで制御プログラムの
無効化サービスにより、無効にされることがある。
無効にされたALEが再割振りされる場合、前の割振りで
指定されたアドレス空間とは別のアドレス空間が指定さ
れる。ユーザが概念的に正しくないアドレス空間を指定
するALETを誤って使用するのを避けるために、ALET及び
ALEの両方にALESNが保持される。制御プログラムは、AL
Eを割り振る時、同じALESNをALE及び指定されたALETの
両方に置き、ALETを問題プログラムに戻す。ALEを再割
振りする時は、制御プログラムは再割振りされるALEの
中のALESNの値を変え、それが前に指定されたALET中のA
LESNの値と一致しないようにする。
ALEのASTESNについては、あとでASTEに関連してさらに
詳しく説明するが、ここで重要なのは、ALE及びASTEに
含まれるASTESNの値を比較することによって、ASTEの指
定に関するALEの権限が確認されるということである。
かくして、ASTEの再割当てが可能になり、このASTEを参
照していたすべてのALEを調べる必要なしに、異なったA
STESNを割り当ててその使用を制御することができる。A
STESNの使用により、制御プログラムは、ASTEを使用す
ることができたすべてのプログラムまたは指名可能ユニ
ットを保持する必要はない。かくして、ASTESNを変える
ことでアクセス権限を変えることができ、適切なASTESN
なしにASTEを使用しよとすると、例外又は割込みが生じ
る。これにより、オペレーティング・システムは、ASTE
SNの変更前にALEで許可されたケイパビリティでASTEを
アクセスしようとする試みを知ることができる。かくし
て、オペレーティング・システムは、新しいあるいは異
なった空間のためにASTEを完全に再使用する、または既
存の空間を使用するためその空間の現アクセス者の権限
を再び有効化する機構を有する。
第7図、第8図及び第10図はそれぞれ連係ケーブル、エ
ントリ・テーブル及び連係スタックのエントリのフォー
マットを示している。これらのテーブルは、同じまたは
異なったアドレス空間にあるプログラムの間で制御を移
すために連係を確立するために本発明に従って使用され
る。
前述のように、PC番号は、システムによって呼び込まれ
かつサービス提供者によって構成される特定のPCルーチ
ンを識別する。PCルーチンを提供する各サービス提供者
は、自身のルーチンを定義するための1以上のエントリ
・テーブルを所有する。エントリ・テーブルは、PCルー
チンへのアクセスを要求するアドレス空間の連係テーブ
ルに接続される。エントリ・テーブルの各エントリは1
つのPCルーチンを定義し、その入口点及び動作特性を含
むと共に、PC命令がスタッキングPCかどうかも示す。第
7図は連係ケーブル・エントリ(LET)のフォーマット
を示したもので、無効ビット(I)、エントリ・テーブ
ル起点(ETO)及びエントリ・テーブル長(ETL)を含
み、これらによりエントリ・テーブル記述子が定義され
る。
第8図は第7図の連係テーブル・エントリにより指し示
されるエントリ・テーブルのエントリのフォーマットを
示している。エントリ・テーブル・エントリのビット0
〜15は許可キー・マスク(AKM)を含み、これは、PC命
令を出したプログラムが問題状態においてこのエントリ
点を呼び出すことを許されているかどうかを検査するの
に用いられる。ビット16〜31は、PC−ss及びPC−cpのい
ずれが生じるかを示すエントリ・アドレス空間番号(EA
SN)を含む。EASNがオールゼロであれば、PC−cpが指定
され、さもなければPC−ssが指定される。後者の場合、
EASNは一次ASN(PASN)を置き換えるアドレス空間番号
(ASN)を識別する。ビット32はアドレス指定モード・
ビットであり、PCオペレーションでPSW中のアドレス指
定モード・ビットを置き換える。ビット33〜62に含まれ
るエントリ命令アドレス(EIA)は、PCオペレーション
でPCW中の命令アドレスを置き換える。ビット63はエン
トリ問題状態ビットであり、PCオペーションで現PSWの
問題状態ビット(ビット15)を置き換える。ビット64〜
95は、PCオペレーションで汎用レジスタ4に置かれるエ
ントリ・パラメータを含む。ビット96〜111は、後述の
Mビットの値に応じて汎用レジスタ3の内容とオア結合
されるかまたはその内容を置き換えるエントリ・キー・
マスク(EKM)を含む。ビット128はPCタイプ・ビット
(T)で、これが1であれば、PC命令がスタッキング・
オペレーションを遂行することを示す。ビット131はPSW
キー制御ビット(K)であり、これが1であれば、ビッ
ト36〜139のエントリ・キー(EK)がスタッキングPCオ
ペレーションでPSW中のPSWキーを置き換えることを示
す。このKビットが0であれが、PSWキーは変更されな
い。ビット132はPSWキー・マスク制御ビット(M)であ
り、これが1であれば、EKMがスタッキングPCオペレー
ションで汎用レジスタ3にあるPSWキー・マスクを置き
換えることを示す。Mビットが0であれば、EKMはスタ
ッキングPCオペレーションで制御レジスタ3にあるPSW
キー・マスクとオア結合される。ビット133は拡張許可
指標制御ビット(E)であり、これが1であれば、ビッ
ト144〜159のエントリEAXがスタッキングPCオペレーシ
ョンで制御レジスタ8にある現EAXを置き換えることを
示す。Eビットが0であれば、制御レジスタ8にある現
EAXは変更されない。ビット134はアドレス空間制御ビッ
ト(C)であり、これが1であれば、現PSWのビット17
がスタッキングPCオペレーションで1にセットされるこ
とを示す。Cビットが0であれば、現PSWのビット17も
0にセットされる。スタッキングPC命令が出される時
は、CPUは一次空間モードまたはアクセス・レジスタ・
モードのいずれかになければならないので、Cビットが
1であれば、CPUはアクセス・レジスタ・モードにな
り、Cビットが0であれば、一次空間モードになる。ビ
ット135は二次ASN制御ビット(S)であり、これが1で
あれば、スタッキングPC−ssオペレーションでビット16
〜31のEASNが新しい二次ASNになりかつ新しい二次セグ
メント・テーブル記述子(SSTD)が新しい一次セグメン
ト・テーブル記述子(PSTD)に等しく設定されることを
示す。Sビットが0であれば、新しい二次アドレス空間
番号(SASN)及びSSTDは、呼出しプログラムの古い一次
アドレス空間番号(PASN)及びPSTDにそれぞれ等しく設
定される。EASNがオールゼロでなければ、ビット161〜1
85のASTEアドレスはその右側に6個のゼロを付加され
て、EASNのASN変換を適用した結果の実ASTEアドレスを
形成する。かくして、エントリ・テーブル・エントリ中
のEASN及びASTEアドレスがSTDを含むAST30のエントリを
指し示すことがわかる。EASNのASN変換がASTEアドレス
を得るために遂行されるかどうか、あるいはビット161
〜185のASTEアドレスがその指定されたASTEを見つける
のに使用されるかどうかは予測できない。CPUは性能改
善のために、ビット161〜185のASTEアドレスを用いてそ
の指定されたASTEを見つけることができる。
第9図、指名可能ユニットごとに制御プログラムによっ
て作成され得る連係スタック35を示している。この連係
スタックは、スタッキング・オペレーションの間、実行
状態と汎用レジスタ及びアクセス・レジスタの内容とを
保管するのに用いる。連係スタックは、戻りオペレーシ
ョンの間に保管内容の一部を復元するのにも使用され
る。連係スタックは仮想記憶域にあり、関連する指名可
能ユニットのためのホーム・アドレス空間に置かれる。
第3図の制御レジスタに関連して説明したように、ホー
ム・アドレス空間は制御レジスタ13のHSTDによって指定
される。これは連係スタック情報を保護し、ユーザ・ア
ドレス空間で障害が発生した場合に連係スタック情報の
回復を可能にする。
連係スタックは問題状態プログラムからは保護されてお
り、それらのプログラムは、特別の抽出及び修正命令に
よる場合を除いて、連係スタックに保管されている情報
を調べたり修正したりすることはできない。連係スタッ
ク35は、正方向ポインタ及び逆方向ポインタによって連
鎖される複数の連係スタック・セクション36、37及び38
からなっていてもよい。
連係スタックには3種類のエントリ、すなわち逆方向ポ
インタを有する見出しエントリ40、正方向ポインタを有
する後書きエントリ42、及び状態エントリ43(連係スタ
ック・セクション36参照)がある。見出しエントリ及び
後書きエントリはそれぞれ連係スタック・セクションの
始め及び終りにあり、連係スタック・セクションを連鎖
するのに使用される。見出しエントリ及び後書きエント
リは制御プログラムにより作成され、スタッキング・オ
ペレーションで実行状態及びレジスタ内容を保管するべ
く状態エントリが付加される。制御レジスタ15にある連
係スタック・エントリ・アドレスは現状態エントリ44を
指し示すか、またはセクション中の最後の状態エントリ
が除去されていると現セクションの見出しエントリを指
し示す。
第10図は連係スタック状態エントリの内容を示したもの
で、スタッキングPC命令の場合、汎用レジスタの内容
(GRs)、アクセス・レジスタの内容(ARs)、PSWキー
・マスク(PKM)、二次アドレス空間番号(SASN)、制
御レジスタ8からのEAX,一次アドレス空間番号(PAS
N)、及びPSWの内容を含む。これらはすべてスタッキン
グ命令の開始時のものである。さらに、使用されるPC番
号も含まれる。後述するブランチ・スタック命令の場合
は、PC番号の代りにアドレス指定モード・ビット及びブ
ランチ・アドレスが保管される。
連係スタック・エントリはいずれのタイプも8バイトの
倍数の長さを有する。見出しエントリ及び後書きエント
リはそれぞれ16バイトである。状態エントリは168バイ
トである(第10図の下側の数字はバイト番号を示してい
る)。いずれのタイプもその終りに8バイトのエントリ
記述子(第10図の連係スタック状態エントリの46参照)
を有する。
エントリ記述子のビット0はアンスタック抑止ビット
(U)である。見出しエントリまたは状態エントリのエ
ントリ記述子においてビットUが1であれば、プログラ
ム戻りでのアンスタッキング・プロセスの間にスタック
・オペレーション例外が認識される。状態エントリがス
タッキング・プロセスの間に作成される時、そのエント
リ記述子のビットUはOにセットされる。
エントリ記述子のビット1〜7はエントリ・タイプ(E
T)・コードで、当該エントリ記述子を含む連係スタッ
ク・エントリのタイプを指定する。
ETコードには次の4種類がある。
0000001 見出しエントリ 0000010 後書きエントリ 0000100 ブランチ状態エントリ 0000101 プログラム呼出し状態エントリ エントリ記述子のビット8〜15は制御プログラムによっ
て与えられるセクション識別子(SI)である。スタッキ
ング・プロセスで作成されるエントリでは、プロセスは
SIを先行の連係スタック・エントリのSIに等しく設定す
る。エントリ記述子のビット16〜31は、当該エントリの
終りから同じ連係スタック・セクション中の後書きエン
トリの始めまでのバイト数を指定する残余自由空間(RF
S)フィールドを形成する。エントリ記述子のビット32
〜47は、同じ連係スタック・セクションにおける次の連
係スタック・エントリ(後書きエントリを除く)のサイ
ズをバイトで指定する次エントリ・サイズ(NES)フィ
ールドを形成する。
スタッキング・プロセスの間に連係スタックで新しい状
態エントリを作成する場合、現連係スタック・セクショ
ンが新しいエントリを含むのに十分な自由空間を持って
いると、新しいエントリは現連係スタック・エントリの
エントリ記述子の直後に置かれる。現セクションに十分
な自由空間がなくても、現セクションの後に別のセクシ
ョンがあることを現セクションの後書きエントリが示し
ていると、その後続セクションに十分な残余自由空間が
あれば、新しいエントリは後続セクションの見出しエン
トリのエントリ記述子の直後に置かれる。後続セクショ
ンがないことを後書きエントリを示していると、例外が
認識され、プログラム割込みが起こる。その場合、制御
プログラムが別のセクションを割り振り、それを現セク
ションに連鎖して、スタッキング・オペレーションを再
実行させる。後続セクションがあっても、その中に十分
な自由空間がなければ、例外が認識される。
スタッキング・オペレーションで新しい状態エントリ44
がうまく作成されると、制御レジスタ15にある連係スタ
ック・エントリ・アドレスは、新しいエントリのエント
リ記述子の一番左のバイトを指定するように更新され、
かくしてこのエントリが新しい現連係スタック・エント
リになる。スタッキング・プロセスで状態エントリを作
成する場合、そのNESフィールドにはゼロが置かれ、作
成された状態エントリの長さは先行エントリのNESフィ
ールドに置かれる。戻りオペレーションでは、汎用レジ
スタ及びアクセス・レジスタの内容、ならびに制御レジ
スタの種々の内容が連係スタック状態エントリ44から復
元され、制御レジスタ15にある連係スタック・エントリ
・アドレスは前の連係スタック・エントリを指し示すよ
うに変更される。状態エントリが戻りオペレーションの
アンスタッキング・プロセスの間に論理的に削除される
と、先行エントリのNESフィールドにゼロが置かれる。
上述から明らかなように、連係スタックを使用すると、
プログラム制御が戻り命令によって被呼出しプログラム
から戻される時、呼出しプログラムの動作環境及び許可
レベルを復帰させることができる。連係オペレーション
は開始点まで遡れると共に、無効な変更が生じないよう
にユーザに強要する。
制御プログラムは、プログラムを含むアドレス空間に対
してアドレス空間番号(ASN)を割り当てる。DAS機構に
関連して述べたように、ASNはPC−ssオペレーションの
間に変換されることがある。しかし、ASTEアドレスがET
Eにあるので(第8図参照),PC−ssオペレーションにお
いて、ASTEへのアクセスをASN変換なしにETEを用いて直
接行なうことができる。制御プログラムは、アドレス空
間に関連するASTEにポインタを置くことによって、ST
D、AT及び連係テーブルを各ASNと関連づける。それらの
アドレス空間にあるデータも、ASTEを指し示すアクセス
・リスト・エントリを制御プログラムに作成させること
により、アクセスすることができる。アドレス空間によ
ってはデータしか含まないものもある。そのようなアド
レス空間はASNを持たない。データだけの空間の場合
は、ASTE、STD、AT及びALEだけが使用される。
第11図及び第12図はそれぞれASN第1テーブル及びASN第
2テーブルのエントリのフォーマットを示したものであ
るが、これらは前述のDAS機構のものときわめてよく似
ている。第11図及び第12図の各エントリは1つのアドレ
ス空間を表わし、そのアドレス空間への連係及びアドレ
ス可能性を与えるべく制御プログラムによって設定され
る。
第12図はASTEのフォーマットを示している。ASTEのビッ
ト0は、ASTEが無効かどうかを示す無効ビットである。
許可権テーブル起点(ATO)及び許可権テーブル長(AT
L)は、関連する許可権テーブルの許可権テーブル記述
子(ATD)を示す。ビット96〜127は関連する連係テーブ
ル記述子(LTD)を含み、ビット128〜159は関連するア
クセス・リスト記述子(ALD)を含む。ビット160〜191
はASTE順序番号(ASTESN)を含む。ASTEは、制御プログ
ラムによるアドレス空間の作成及び削除に伴なって再割
り振りされることがあるので、新しく作成された各ASTE
は新しい固有のASTESNを割り当てられる。ARTオペレー
ションを実行する時、ASTEが異なったアドレス空間また
は異なった権限に対して安全に再使用できるように、有
効性検査として、アクセス・リスト中のASTESNとASTE中
のASTESNが比較される。
第13図は、各ASTEに関連する許可権テーブルを示してい
る。DAS機構と同じく、各許可権テーブル・エントリは
Pビット及びSビットを1つずつ持っている。許可権テ
ーブルのエントリは、関連するアドレス空間をアクセス
するために、使用されているEAXの各値に対して許可権
テーブルに1つのエントリが存在するように指標づけさ
れる。後述のように、制御レジスタ8(CR8)にあるEAX
の値に対応する許可権テーブル・エントリを用いて、プ
ログラムがASTEに関連するアドレス空間のアクセスを許
されているかどうかを調べることができる。
第14図は、制御レジスタ2にアドレスが保持されている
指名可能ユニット制御テーブル(DUCT)のフォーマット
を示している。DUSTのバイト16〜19は指名可能ユニット
・アクセス・リスト記述子(DUALD)を含む。DUSTの他
のバイトはMAS機構では使用されないので、説明は省略
する。
プログラムを呼出し(PC)命令は、連係機構の機能を上
げるべく改善された。PC命令が出された時、ETE(第8
図)のTビット、すなわちビット128が1であれば、ス
タッキングPCオペレーションが実行される。スタッキン
グPCは、エントリ・テーブル・エントリ中の許可キー・
マスクにより、エントリ・テーブルから入ることを許さ
れる。特に、空間切替えを伴なうスタッキングPCは、
(新しいプログラムに関連する)新しいEAXを制御レジ
スタ8に置くことがある。スタッキングPCは、汎用レジ
スタ0〜15の内容、アクセス・レジスタ0〜15の内容、
更新された命令アドレス(戻りアドレス)を含む完全な
PSW、PASN、SASN、PKM、EAX、エントリがプログラム呼
出しによって作成されたことを示す標識、及び2ワード
分の修正可能域をエントリに保管する。修正可能域の目
的は、プログラムの障害が生じた時に適切な回復動作が
とれるように、プログラムの進行状況を記録できるよう
にすることにある。
連係機能を改善するため2つの新しい命令、すなわちブ
ランチ・スタック及びプログラム戻りが追加された。
ブランチ・スタック命令はPSW中の命令アドレスに変更
し、第9図の連係スタックにブランチ状態エントリと呼
ばれる状態エントリを作成する。ブランチ状態エントリ
は、ブランチ・スタック命令により作成されかつPC番号
の代わりにブランチ・アドレスを含むということを除く
と、プログラム呼出し状態エントリと同じである。ブラ
ンチ・スタック命令は、呼出しプログラムの中、または
被呼出しプログラムの入口点(もしくはその近く)で使
用することができる。入口点でのブランチ・スタック命
令は、古い呼出しプログラムを変更することなく連係ス
タックを使用することを可能にする。尚、プログラム呼
出し命令とブランチ・スタック命令を夫々総して環境切
換命令とする。
プログラム戻り命令は、スタッキングPC命令またはブラ
ンチ・スタック命令によって制御権を与えられたプログ
ラムから戻るのに用いられる。プログラム戻り命令は最
後の連係スタック状態エントリを論理的に削除する。こ
のエントリはプログラム呼出し状態エントリでもブラン
チ状態エントリでもよい。最後の状態エントリがプログ
ラム呼出し状態エントリであれば、プログラム戻り命令
は、エントリ中に保管されていたすべての状態情報なら
びに汎用レジスタ2〜14及びアクセス・レジスタ2〜14
の内容を復元する。0番、1番及び15番の汎用レジスタ
及びアクセス・レジスタは、プログラム戻り命令によっ
ては変更されない。最後の状態エントリがブランチ状態
エントリであれば、プログラム戻り命令は、完全なPSW
(PERマスク・ビットRを除く)ならびに汎用レジスタ
2〜14及びアクセス・レジスタ2〜14の内容だけを復元
する。PERマスク・ビットR(第4図参照)はプログラ
ム戻りオペレーションによっては復元されない。スタッ
キング・プログラム呼出し及びプログラム戻りの組合せ
は、非階層的なプログラム連係、すなわちある範囲の権
限を持ったプログラムから、より小さい、より大きいま
たはまったく異なる権限を持ったプログラムへの連係を
可能にする。
第15図、第16図及び第17図は、スタッキングPCオペレー
ションを実行するのに必要なステップの論理フローを示
している。この論理フローは、DASのプログラム呼出し
命令の実行にも使用できる。図面中の説明は、種々の値
が数学的にどのように操作されてアドレスを生成するか
を述べている。第3図に戻って、制御レジスタ0のビッ
ト15(CR0.15)が0であれば、ETEは16バイトであり、D
ASプログラム呼出しオペレーションだけを実行できる。
CR0.15が1であれば、ETEは32バイトであり、ETEビット
128がDAS PC及びスタッキングPCのいずれを実行するの
かを示す。
第15図は、プログラム呼出しのPC番号変換オペレーショ
ンの論理フローを示している。CR0.15=1であれば、制
御レジスタ5にあるPASTEO(第3図参照)によって指定
されるASTEが取り出される。この一次ASTEはビット96〜
127にLTDを含む(第12図参照)。プログラム呼出しがDA
Sプログラム呼出しであれば(CR0.15=0)、通常のDAS
オペレーションと同じく、LTDは制御レジスタ5にあ
る。プログラム呼出し命令50は、DASの場合と同様に、L
X51及びEX52からなるPC番号を指定する。LX51は、加算
操作54により連係テーブル起点(LTO)53と結合され、
連係テーブル・エントリ55の実アドレスを生成する。EX
52は、加算操作56により連係テーブル・エントリ55のエ
ントリ・テーブル起点(ETO)と結合され、エントリ・
テーブルにおけるエントリ・テーブル・エントリ(ET
E)57の実アドレスを生成する。
第16図は、現一次に対するスタッキング・プログラム呼
出し(PC−cp)及び空間切替えを伴なうスタッキング・
プログラム呼出し(PC−ss)を実行するために第15図か
ら続く論理フローを示している。前述のように、ETE57
のTビット60が1であれば、スタッキング・オペレーシ
ョンが実行される。まず、AKM62の値が、問題状態にお
けるプログラム呼出し命令の実行前に制御レジスタ3に
存在していたPKM64と63でアンド結合される。63でのア
ンド操作の結果がオールゼロであれば、プログラム呼出
し命令はこの点から入ることを許されず、オペレーショ
ンは終了する。63でのアンド操作でいずれかのビットが
一致していると、プログラムはこのエントリのところで
プログラム呼出しを行なうことを許され、オペレーショ
ンが続けられる。プログラム呼出しが許されると、その
実行前に存在していたPSW65、EAX66、PKM64、SASN68及
びPASN69が連係スタック(LS)に置かれる。図には示し
ていないが、汎用レジスタの内容、アクセス・レジスタ
の内容及びPC番号も連係スタックに置かれる(第10図参
照)。アドレス指定モード・ビットA及びエントリ命令
アドレス(EIA)はそれぞれPSWの70及び71のところに置
かれる。ETE57のPビット及びCビットはそれぞれPSWの
72及び73のところに置かれる。Kビットが1であれば、
ETE57のエントリ・キー(EK)はPSWのキー・フィールド
74に置かれる。Eビットが1であれば、エントリEAX(E
EAX)は75に示すように制御レジスタ8に置かれる。エ
ントリ・パラメータ(EP)は76に示すように汎用レジス
タ4に置かれる。ETE57のMビットが1あれば、エント
リ・キー・マスク(EKM)は77に示すように制御レジス
タ3にあるPKMを置き換える。しかし、Mビットが0で
あれば、EKMはオア操作78により制御レジスタ3のPKMと
オア結合される。PC−cpオペレーションが実行される
か、またはスタッキングPC−ssが実行されかつSビット
が0であれば、制御レジスタ4にあったPASN69が制御レ
ジスタ3のSASN79を置き換え、制御レジスタ1にあった
PSTD80が制御レジスタ7のSSTD81を置き換える。スタッ
キングPC−ssが実行されかつSビットが1であれば、制
御レジスタ3のSASNは新しいPASNによって置き換えら
れ、制御レジスタ7のSSTDは新しいPSTDによって置き換
えられる。これらのオペレーションの後、ETE57のASNが
83でテストされる。ASNが0であれば、PC−cpオペレー
ションの実行が完了したことを示す。しかし、ASNが0
でなければPC−ssオペレーションが実行され、宛先空間
に対するASTEが得られる。
プログラム呼出しは、次の命令の保護されたコードを取
り出すために、PSWキー74をEKで変更することもできる
(Kビット=1)。
制御レジスタ8にあるEAXを変更することにより(75参
照)、指名可能ユニットの作業を行なうように実行され
る各プログラムに対して、DUAL及びPSALにあるALEを使
用する許可を異なった形で与えることができる。制御レ
ジスタ8のEAX75は、スタッキング・プログラム呼出し
によってEEAXに等しく設定することができる(Eビット
=1)。元のEAXは、プログラム戻りによって連係スタ
ックから復元される。かくして、各プログラムはプログ
ラムの呼出しに使用されるETEで指定されたEAXを用いて
実行することができる。一方、呼出し連係の間EAXを不
変にしておくことも可能であり(Eビット=0)、それ
により呼出しプログラムと同じアクセス権を被呼出しプ
ログラムに持たせることができる。
制御レジスタ3のPKM77をプログラム呼出しによってEKM
に等しく設定することにより(Mビット=1)、被呼出
しプログラムは呼出しプログラムのPKMとは無関係のPKM
を持つ。この結果、被呼出しプログラムは、それが設定
できるPSWキー値の点から、呼出しプログラムよりも小
さいアクセス権を持つことが可能になる。一方、新しい
PKM77は、所望であれば、古いPKM64及びEKMのオア結合
(78参照)に等しく設定されることもある(Mビット=
0)。
新しいSASN及び新しいSSTDをそれぞれ新しいPASN及び新
しいPSTDに等しく設定すると(S=1)、被呼出しプロ
グラムがALET値X′00000001′の使用によって自動的に
呼出しプログラムの一次アドレス空間のアクセス権を持
つようになるのを阻止できる(アクセス権はALEまたはD
ASの二次ASN設定命令で得ることができる)。これは、
被呼出しプログラムのアクセス権を呼出しプログラムの
ものより小さくする別の方法である。一方、新しいSASN
79及び新しいSSTD81がそれぞれ古いPASN69及び古いPSTD
80に等しく設定されることもある(Sビット=0)。
第17図は、ASN変換のステップの論理フローを示してい
る。DAS機構と同じく、プログラムを含む各アドレス空
間はASNを割り当てられ、その値は対応するETE57の90の
ところに書き込まれる。ASN90は2つの数値AFX91及びAS
X92からなる。これもDAS機構と同様である。制御レジス
タ14はASN第1テーブル起点(AFTO)93を含み、これは
加算操作94でAFX91と組み合わせると、ASN第1テーブル
におけるAFTE95の実アドレスを与える。AFTE95はASN第
2テーブル起点(ASTO)96を含み、これは加算操作97で
ASX92と組み合わせると、ASN第2テーブル30におけるAS
TE98の実アドレスを与える。CR0.15が1の時は、ETE57
にあるASTEアドレス100をASN変換の代わりに使用するこ
とができる。制御レジスタ14のビット12はASN変換ビッ
ト(T101)である。これが0であれば、ASTEアドレス10
0もASN90も使用できない。Tビット101が1であれば、
いずれかを使用できる。PC−ssオペレーションの場合、
ASTE98のAX102及びETE57のASN90がそれぞれ制御レジス
タ4の103及び104のところに置かれる。ASTE98のSTD105
は制御レジスタ1の106のところに置かれる。CR0.15=
1であれば、ASTEアドレスはPASTE0107として制御レジ
スタ5に置かれる。CR0.15=0であれば、制御レジスタ
5にはASTE98のLTD108が置かれる。第17図のASN変換はD
AS及びMASのいずれのオペレーションにも適用できる。
第15〜17図に関連して説明したPC−ssオペレーション
は、命令取出しのために制御を新しいアドレス空間へ移
すのに使用できる。その場合、新しいアドレス空間は一
次アドレス空間として設定される。たとえば、PC番号、
エントリ・テーブル・エントリ及び連係テーブル・エン
トリがサービス提供者によって設定される時、そのPC番
号を呼び出すプログラムのアクセス権を設定するためAK
Mが特定される。呼出しプログラムがエントリ・テーブ
ル・エントリによって定義されたプログラムを呼び出す
権限を持っていると(第16図のアンド操作63からわか
る)、PCオペレーションは制御レジスタ8にあるEAXを
変更し得る。
たとえば、PCオペレーションは、システム・サービスを
呼び出して、アクセス・リスト24及び25の一方に新しい
ALEを付加するのにも使用できる。サービス・プログラ
ムは新しいアクセス・リスト・エントリを設定して、ア
クセス・レジスタ・モードのオペレーションで呼出しユ
ーザが使用する新しいALETを供給することができる。ア
クセス・リスト・エントリを作成する時、呼出しユーザ
の制御レジスタ8からのEAXがALEAXとしてALE中に置か
れる。ALEが作成されると、サービス・プログラムはそ
のALEに対するALETをユーザ・プログラムに戻す。ALET
は、オペランドの取出しまたは記憶に使用するのに都合
のよい形で、記憶させたり、他のアドレス空間へ送った
りすることができる。上述の許可手順は、許可されてい
ないプログラムがALETを使用するのを阻止する。
アクセス・リスト・エントリの所有者は、アクセス・リ
スト・エントリの生成時にそれを私用エントリまたは公
用エントリとして指定することができる。私用エントリ
の場合は、所有者または許可されたユーザだけがアドレ
ス空間をアクセスでき、公用エントリの場合は、すべて
のユーザがアクセスできる。公用エントリはPビット
(ビット7)=0により示され、どのプログラムからも
自由に使用できる。Pビットが1であれば、そのALEは
許可されたプログラムしか使用できない。もし2以上の
EAXがALEを使用できるのであれば、制御プログラムは、
関連するアドレス空間のATにエントリを追加するための
機構を提供する。
第18図は、プログラム許可検査付きのアクセス・レジス
タ変換を示している。アクセス・レジスタ・オペレーシ
ョンでALETを用いてオペランドの取出しまたは記憶を行
なう場合、ALETが有効であることを確かめるため、ALET
のビット0〜6が115で調べられる。ALET中のPビット1
16が0であれば、アクセス・リストはDUALであり、Pビ
ット116が1であれば、アクセス・リストはPSALであ
る。DUALの場合、有効ALDは制御レジスタ2にアドレス
が記憶されているDUCTから取り出される。PSALの場合、
有効ALDは制御レジスタ5にアドレスが記憶される一次A
STE(PASTE)から取り出される。有効ALDは、アクセス
・リスト起点及びアクセス・リスト長(ALL)を含む。A
LENがアクセス・リストの外にないことを確かめるた
め、117でALEN及びALLが比較される。ALENがこの検査を
パスすると、有効アクセス・リスト起点は加算操作119
によりALENと結合され、アクセス・リスト121中のALE12
0のアドレスを生成する。まずALE120の無効ビット(ビ
ット0)が121で検査される。無効ビットが0でALE120
が有効であることを示していると、124でALETのALESN12
2及びALE120のALESN123が比較される。ALESN122及びALE
SN123が等しければ、ALETはALE120のアクセスを許され
ており、ASTEアドレス125を用いてASTE126が取り出され
る。ASTE126の有効性は、128で無効ビット127を検査す
ることにより確かめられる。ASTE126が有効であれば、A
LE120がASTE126のアクセスを許されているかどうかを確
かめるため、ASTESN130及びASTESN131が132で比較され
る。これらの検査により、ARTの有効性が確認される。
次に、呼出しプログラムのアドレス空間アドレス権が検
査される。最初の検査は135で行なわれ、Pビット136が
0かどうかを調べる。Pビット136が0であれば、すべ
てのプログラムがALEに関連するアドレス空間をアクセ
スすることができ、これ以上の検査は行なわれない。P
ビット136が1であれば、ALEAX137及び制御レジスタ8
にあるEAX138が比較器139で比較される。これらが等し
ければ、プログラムはこのアドレス空間のアクセスを許
されており、これ以上の検査は行なわれない。139での
比較が不一致であれば、ASN拡張許可検査が140で行なわ
れる。ASN拡張許可検査140では、制御レジスタ8にある
EAX138が許可権テーブルの外にあるエントリを指定して
いないことを確かめるため、EAX138及び許可権テーブル
長(ATL)141が比較される。制御レジスタ8にあるEAX1
38は、ATO142によって起点が指定される許可権テーブル
への指標として使用される。許可権テーブル中のSビッ
トがこのEAXに対して1にセットされていると、プログ
ラムはアドレス空間のアクセスを許され、145でのDATオ
ペレーションのためにSTD144が供給される。
アクセス・リスト・エントリ中の私用ビット及びALEAX
フィールドは、ALEによって表わされるアドレス空間へ
のプログラムのアクセスを許可したり禁止したりする高
性能の許可機構を提供する。私用ビットを0にしておく
と、アクセス・リストを用いて実行されるすべてのプロ
グラムがALEによって表わされるアドレス空間をアクセ
スできる。ALEの私用ビットを1にセットしかつ制御レ
ジスタ8にあるユーザのEAXをALEAXフィールドに等しく
しておくと、特定のEAXを持ったプログラムがALEによっ
て表わされるアドレス空間をアクセスできる。最後に、
ALEの私用ビットを1にセットしかつ制御レジスタ8に
あるユーザのEAXが目標空間の許可権テーブルにおいて
Sビットが1であるエントリを選択できるようにしてお
くと、異なったEAXで実行される複数のプログラムがALE
によって表わされるアドレス空間をアクセスできる。
第19A図及び第19B図は、アクセス・レジスタ変換ステッ
プ及び例外の流れを示している。ART論理が呼び込まれ
る時、アクセス・レジスタ0(ARO)が指定されたかど
うかが150で調べられる。アクセス・レジスタ0が指定
されていると、ARTがテスト・アクセス・オペレーショ
ン(後述)によって呼び込まれたかどうかが151で調べ
られる。アクセス・レジスタ0が指定されていないか、
またはテスト・アクセス・オペレーションであったなら
ば、アクセス・レジスタにあるALETの使用が152で示さ
れる。アクセス・レジスタ0が指定されかつこれがテス
ト・アクセス・オペレーションでなければ、153でX′0
0000000′がALETに割り当てられる。ついで、ALETが
X′00000000′かどうかが154で検査される。もし「は
い」であれば、155で一次アドレス空間のためのSTDが制
御レジスタ1から得られる。「いいえ」の場合は、156
でALETがX′00000001′かどうかが検査される。もし
「はい」であれば、157で二次アドレス空間のためのSTD
が制御レジスタから得られる。「いいえ」の場合は、15
8でALETのビット0〜6でなければ、ALETの割り当てら
れた値は有効ではなく、159でALET指定例外が認識さ
れ、オペレーションは抑止される。
ビット0〜6が0かどうかが検査される。ビット0〜6
が0の場合は、160でALETのビット7が1かどかが検査
される。1であれば、制御レジスタ5にあるPASTEOが16
1で解読され、PSALのための有効ALDが取り出される。AL
ETのビット7が0であれば、制御レジスタ2にあるDUCT
Oが162で解読され、DUALのための有効ALDが取り出され
る。163で取出しアドレスが無効であることがわかる
と、164でアドレス指定例外が認識され、オペレーショ
ンは抑止される。アドレスが有効であれば、ALETのALEN
が有効ALL(有効ALDのビット25〜31)の範囲外かどうか
が165で検査される。もし範囲外であれば、166でALEN変
換例外が認識され、オペレーションは無効にされる。16
5での答えが「いいえ」であれば、167でALEが見つけら
れ、ALEアドレスが有効かどうかが検査される。ALEアド
レスが有効でなければ、168でアドレス指定例外が認識
され、オペレーションは抑止される。ALEアドレスが有
効であれば、ALEが有効かどうかを見るため169でALEの
有効ビットが検査される。ALEが有効でなければ、170で
ALEN変換例外が認識され、オペレーションは無効にされ
る。ALEが有効であれば、171でALETのALESN及びALEのAL
ESNが比較される。171での比較の結果が不一致であれ
ば、172でALE順序例外が認識され、オペレーションは無
効にされる。171で一致が検出されると、ALE中のASTEア
ドレスを用いて173でASTEが見つけられる。ASTEアドレ
スが有効かどうかが検査され、もし有効でなければ、17
4でアドレス指定例外が認識されて、オペレーションは
抑止される。ASTEアドレスが有効であれば、ASTEが有効
かどうかを見るため175でASTEの有効ビットが検査され
る。ASTEが有効でなければ、176でASTE有効性例外が認
識され、オペレーションは無効にされる。ASTEが有効で
あれば、177でALEのASTESN及びASTEのASTESNが比較され
る。177での比較の結果が不一致であれば、178でASTE順
序例外が認識され、オペレーションは無効にされる。
上述のステップ163〜178は、得られたエントリが有効か
どうかを決定するものである。次の179では、ALEの私用
ビット(ビット7)が0かどうかが検査される。また、
ALEにあるALEAX及び制御レジスタ8にあるEAXの比較も1
79で行なわれる。いずれかの検査で一致が検出される
と、180でオペランドのためのSTDがアドレス空間のASTE
から得られる。私用ビットが0であれば、プログラムは
アクセスを許されており、アクセス・レジスタ変換の許
可ステップは完了する。私用ビットが1であってもALEA
XがEAXと等しければ、プログラムはアクセスを許されて
おり、アクセス・レジスタ変換の許可ステップは完了す
る。
プログラムが179ではまだ許可されていない場合は、181
でASTEのビット30、31、60〜63が0かどうかを見ること
によりASTEの有効性が検査される。これらのビットが0
でなければ、182でASN変換指定例外が認識され、オペレ
ーションは抑止される。ASTEが有効であれば、EAXが許
可権テーブルの外のエントリを指定していないことを確
かめるため、183で制御レジスタ8にあるEAXビット0〜
11の値及び許可権テーブルの長さ(ATL)が比較され
る。EAXビット0〜11の値の方がATLよりも大きければ、
184で拡張許可例外が認識され、オペレーションは抑止
される。EAXが許可権テーブルの範囲内のエントリを指
定していると、185で関連するエントリが許可権テーブ
ルで見つけられる。この許可権テーブル・エントリのア
ドレスが有効でなければ、186でアドレス指定例外が認
識され、オペレーションは抑止される。アドレスが有効
であれば、185で見つけられた許可権テーブル・エント
リの二次許可ビット(Sビット)が1かどうかを見る拡
張許可検査が187で行なわれる。187での検査結果が「は
い」であれば、呼出しプログラムはこのアドレス空間に
関連する許可権テーブルによって許可されているプログ
ラムのうちの1つであり、188でこのアドレス空間のた
めのSTDがASTEから得られる。187での検査結果が「いい
え」であれば、プログラムは許可されておらず、189で
拡張許可例外が認識され、オペレーションは無効にされ
る。
MAS機構は、前述のテスト・アクセス・オペレーション
を実行するため、テスト・アクセス・レジスタ(TAR)
命令を使用する。TAR命令のフォーマットは次のとおり
である。
TAR A1,R2 TAR命令では、第1オペランドA1のアクセス・レジスタ
にあるものとして指定されたALETが、第2オペランドR2
によって指定された汎用レジスタにあるEAXを用いてALE
T変換例外を検査される。TAR命令は、第19A図のステッ
プ151で「はい」と判定されると、第19A図及び第19B図
のARTオペレーションを実行させる。TAR命令は、次のテ
スト結果をPSWの条件コード(CC;第4図参照)に戻す。
0=指定されたALETは0であり、アクセスに対して有効
である。
1=指定されたALETは0または1ではなく、制御レジス
タ2によってアドレスされるDUALにあり、指定されたEA
Xでのアクセスに対して有効である。
2=指定されたALETは0または1ではなく、制御レジス
タ5によってアドレスされるPSALにあり、指定されたEA
Xでのアクセスに対して有効である。
3=指定されたALETは1であるか、または指定されたEA
Xでのアクセスに対して無効である。
入力EAXを用いて許可例外についてALETをテストできる
ようにしておくと、プログラムは、ALETが呼出しプログ
ラムのPASNを参照するのか(ALET=0)、DUALを参照す
るのか、呼出しプログラムのPSALを参照するのかを決定
することができる。これは、プログラムをALETの内部フ
ォーマットとは無関係にする。
TAR命令を用いてARTを実行する時、ALBエントリが作成
される。かくして、ART中に例外が生じなければ、ARに
あるALETが実際に使用される時ALBはエントリを含む。
第20図はTAR命令の使用例を示している。指名可能ユニ
ットのタスク制御ブロックTCB1は、200での実行中、5
のEAXを持っている。このEAXにより、プログラムは、TC
B1についての指名可能ユニット・アクセス・リスト(DU
AL)の特定のエントリを使用することができる。201
で、第1プログラムがアドレス空間ASN2にある第2プロ
グラムに対しプログラム呼出しを行ない、第2プログラ
ムで使用すべきALETを渡す。202で、ASN2にあるプログ
ラムが8のEAXを用いて実行されるが、これは呼出しプ
ログラムのEAXとは異なっている。もしプログラムが202
で呼出しプログラムによって与えられたALETを使用する
と、システム保全の問題が生じる。呼出しプログラムは
ALETを参照するEAX権限を持っていないことがあるが、A
SN2のプログラムは持っている。ASN2のプログラムは、
呼出しプログラムが渡されたALETを使用する権限を持っ
ていたかどうかを調べる有効性検査を実行しなければな
らない。203で、ASN2のプログラムは、入力ALET及び呼
出しプログラムのEAX(=5)を指定するTAR命令を用い
て、有効性検査を実行する。呼出しプログラムのEAX
は、ASN2へのプログラム呼出しで作成された連係スタッ
ク・エントリから得られる。TAR命令の実行の結果、呼
出しプログラムがALETの使用を許されていたことを示す
条件コードが与えられると、ASN2のプログラムはその機
能の遂行を続けることができる。呼出しプログラムがAL
ETの使用を許されていなければ、ASN2のプログラムは呼
出しプログラムを打ち切るか、または呼出しが成功しな
かったことを示す戻りコードを呼出しプログラムに戻
す。204で戻り命令により制御が戻されると、呼出しプ
ログラムのEAX(=5)がスタックから復元され、ASN1
のプログラムはこのEAXを用いて実行を続ける。
ALET有効性検査機能は頻繁に要求される。
第20図の例では、ASN2にあるプログラムへの呼出しのた
びに必要とされる。この機能はオペレーティング・シス
テムのサービス・ルーチンによっても提供できるが、そ
うするとオーバーヘッドが大きくなり過ぎる。もしTAR
機能がなければ、呼出しプログラムのALETを参照してEA
Xを変更しなければならないプログラムは、たとえば2
つのPC命令を使用する必要がある。最初のPC命令はEAX
を変更せず、呼出しプログラムのEAXを用いて呼出しプ
ログラムのパラメータが参照される。あとで2番目のPC
命令が実行され、被呼出しプログラムが使用する新しい
EAXが与えられる。呼び出されたサービスは、その機能
を遂行するのに異なったEAXを必要とすることがあり、
この機構は正しいEAXの使用を可能にする。かくして、T
AR機能はより効率のよい検査を可能にする。第20図の例
では、TAR命令がDUALのALETと共に使用されているが、D
UAL及びPSALのいずれのALETも使用できる。
第21図〜第25図を参照するに、アクセス・レジスタ変換
(ART)機構は、通常、アクセス・リスト記述子ならび
にアクセス・リスト、ASN第2テーブル及び許可権テー
ブルで指定される情報が、ARTルックアサイド・バッフ
ァ(ALB;第2図の199)と呼ばれる特別のバッファに保
持されるように構成される。アクセス・リスト記述子
(ALD)、アクセス・リスト・エントリ(ALE)、ASN第
2テーブル・エントリ(ASTE)及び許可権テーブル・エ
ントリ(ATE)は集合的にARTテーブル・エントリと呼ば
れる。CPUは、ARTテーブル・エントリを最初にアクセス
する場合にのみ、実記憶域にあるARTテーブル・エント
リを参照する必要がある。エントリ中の情報をALBに置
いておくと、そのあとのARTオペレーションをALBをALB
中の情報を用いて実行することができる。ARTプロセス
でALBを用いた場合、実記憶域でのALD、ALE、ASTEまた
はATEの変更は必ずしもただちに変換に影響を及ぼさな
くてもよい。
ALBの大きさ及び構造は実施態様に応じて異なる。たと
えば、アクセス・レジスタ1〜15とそれぞれ1対1に対
応する15個のエントリを含み、各エントリがセグメント
・テーブル記述子(STD)だけからなるようにALBを構成
することができ(第24図参照)、またALET、現指名可能
ユニット制御テーブル起点または一次ASTE起点、及び現
拡張許可指標に基づいて選択される値の配列を含むよう
にALBを構成することができる。前者の場合、アクセス
・レジスタが再ロードされると対応するALBエントリが
クリアされ、制御レジスタ2、5またはの内容が変更さ
れるとALB全体がクリアされる。後者の場合、アクセス
・レジスタ又は制御レジスタの内容が変更されても、AL
Bの中の情報は維持される。
ALB内部のエントリは、プログラムによる明示的なアド
レス指定ができないようになっている。
ALBにおける情報の保持はたとえ可能であったとして
も、そのすべての場合において保持しなければならない
ということはない。さらに、ALB中の情報は、クリアし
なければならない場合以外にもクリアすることができ
る。ALB中のすべての情報がクリアされるのは、ALB除去
命令もしくはプレフィクス設定命令の実行またはCPUリ
セットによる場合だけである。
ALBエントリは、実記憶域にあるARTテーブル・エントリ
から取り出された情報、及び実記憶域にあるARTテーブ
ル・エントリを選択するのに用いる情報を含む。実記憶
域にあるALDはアクセス・リスト記述子ソース起点(ALD
SO)を用いて選択される。ALDSOは、変換中のALETにあ
る一次リスト・ビットが0であれば、制御レジスタ2に
ある指名可能ユニット制御テーブル起点(DUCTO)であ
り、一次リスト・ビットが1であれば、制御レジスタ5
にある一次ASN第2テーブル・エントリ起点(PASTEO)
である。
ALDのアクセス・リスト起点部分は、ALETと共に、実記
憶域にあるALEを選択するのに使用される。
ALE中のASTEアドレスは、実記憶域にあるASTEを選択す
るのに使用される。
ASTE中の許可権テーブル起点は、制御レジスタ8にある
EAXと共に、実記憶域にあるATEを選択するのに使用され
る。
第21図を参照するに、ALBの最初の実施例では、ALB−AL
D及びALB−ALEが結合されてALB−ALD/ALEになり、した
がってアクセス・リスト起点をALBエントリに置く必要
はない。ART要求のためのALDSO及びALETがALBエントリ
の内容と一致すると、ALBは次のような情報を与える:P
ビット、ALEAX、ASTEアドレス及びASTESN。これらはす
べてALEからのものである。かくして、このタイプのエ
ントリは、アクセス権の再検査を可能にし、またSTDを
得るためのASTEへのアクセスを、ASTESNエントリの検査
を伴なって、使用時に実行することができる。異なった
ALETが同じASTE及びSTDを指し示していてもよいので、
これはALBの効率的な使用を可能にする。このようなALB
の設計は、適切なアクセス・リストの使用及びALEの決
定の代わりになるものであるが、ASTE及び許可機構は前
と同様に使用される。
第22図を参照するに、ASTEの機能もALBに組み込めば、A
LBから直接STDを得ることができる。ALDSO及びALETは、
もしALBにおいて一致が生じていると、次のような情報
を与える:Pビット、ALEAX、許可権テーブル起点(AT
O)、許可権テーブル長(ATL)及びSTD。STD、ATO及びA
TLがすでにALBに保持されているので、これらを得るた
めにASTEがアクセスされることはない。しかし、ASTESN
がASTEにおいて変更されるのであれば、ALBはASTESNに
よるケイパビリティの再検査なしにSTDを含むことにな
るので、ALBを除去しなければならない。
第23図を参照するに、ALBの第3の実施例は、ALD、AL
E、ASTE及びATEからの情報及び属性を単一のALBエント
リに組み込んでいる。簡略化を考えると、ALDソース起
点が制御レジスタ2または5で変更される度に、第23図
の実施例におけるALBのすべてのエントリが自動的にク
リアされるのであれば、ALBエントリにALDSOフィールド
を含ませておく必要はない。また、EAXフィールドが制
御レジスタ8で変更される度に、機械がALBのエントリ
をクリアするのであれば、P、ALEAX、EAX及びSの各フ
ィールドを含ませておく必要はない。このような簡略化
した実施例は第24図に示されており、そこでは各ALET
は、STDを不適切な使用から保護するのに必要なALB除去
操作によって左右されるが、単にSTDを取り出すだけで
ある。最後に、各エントリがアクセス・レジスタ1〜15
のそれぞれと1対1に対応しており、かつ対応するアク
セス・レジスタが再ロードされる時にクリアされるので
あれば、ALETフィールドも不要である。
0及び1のALET値の変換はALBの使用を許されない。実
際の構成が制御レジスタ1及び7の内容の付加的な写し
を有するのであれば、これらの制御レジスタの変更を追
跡するために機械は何らかの動作を実行する必要がある
かも知れない。ALBエントリの作成、及びプログラムに
よるARTテーブル・エントリ(実記憶域にある)の操作
の効果は、ARTテーブル・エントリが特定のCPUに属して
いるかどうか、及びエントリが有効かどうかによって異
なる。
ARTテーブル・エントリが特定のCPUに属している場合、
そのCPUはアクセス・レジスタ変換に当該エントリを使
用することができる。ARTテーブル・エントリは一時に
2以上のCPUに属していてもよい。
アクセス・リスリ・エントリまたはASN第2テーブル・
エントリは、関連する無効ビットが0であれば、有効で
ある。アクセス・リスト記述子及び許可権テーブル・エ
ントリは無効ビットを持っておらず、したがって常に有
効である。一次空間アクセス・リスト記述子は、一次AS
TE中の無効ビットの値とは無関係に有効である。
ARTテーブル・エントリは、CPUに付属させられて有効な
時、ALB中に置くことができる。アクセス・リスト記述
子は、制御レジスタ2にある指名可能ユニット制御テー
ブル起点によって指定される指名可能ユニット制御テー
ブルの内部、または制御レジスタ5にある一次ASTE起点
(PASTEO)によって指定される一次ASTEの内部にあると
き、CPUに付属させられる。制御レジスタ5は、制御レ
ジスタ0のビット15、すなわち多重アドレス空間制御ビ
ットの値とは無関係に一次ASTE起点を含むものと考えら
れる。
第25図はALBの良好な実施例を示している。
この実施例では、ALBはいくつかの異なったテーブルで
構成され、これらのテーブルはALBの使用中に別々にか
つ順次アクセスされ、STDに対する2以上のパスを与え
る。最初のステップでは、ALDSO及びALTEからなるエン
トリを探索キーとして用いてALB−ALD/ALEテーブルがア
クセスされ、キーとすべてのテーブル・エントリが比較
されて(ブロックC)、もし一致が検出されると、正し
い結果が次のステップへゲートされる(ブロックG)。
ALB−ALD/ALEエントリは結果の情報として、Pビット
(私用ビット)、ALEAX、ASTEアドレス及びASTESNを供
給する。次のステップでは、ASTEアドレスがALB−ASTE
テーブルへの探索キーとして使用される(比較ブロック
C)。一致が検出されると、ASTESN、ATO、ATL及びSTD
からなるALB−ASTEエントリがゲートされる(ブロック
G)。ASTESNはALB−ALD/ALEエントリからのASTESNと比
較される。ALBプロセスを続けるためには、これらが一
致していなければならない。ALB−ALD/ALEエントリから
のPビットが1でかつ制御レジスタ8(CR8)にあるEAX
がALB−ALD/ALEエントリ中の、ALEAXと一致しなけれ
ば、ALB−ATEテーブルを用いた許可検査が行なわれる。
その場合、ATO及びEAXが探索キーとして使用される。EA
Xは制御レジスタ8から得られ、ATOは2番目のステップ
で見つかった結果から得られる。一致が検出されると、
一致したALB−ATEエントリから二次ビット、すなわちS
ビットが検査結果としてゲートされる。
ASN第2テーブル・エントリ(ASTE)は、ALB−ALD/ALE
エントリまたは付属された有効なALEにあるASTEアドレ
スによって指定されると、CPUに付属させられる。
許可権テーブル・エントリはALB−ASTEエントリまたは
付属された有効なASTEによって指定される許可権テーブ
ル内にあると、CPUに付属させられる。
ALB−ALD/ALEエントリは、以下の条件がすべて満たされ
た場合にのみARTに使用されるようにしてもよい。
1.変換すべきALETが1より大きい値を持っている。(も
しALETが0または1であれば、CR1またはCR7の内容が使
用される。) 2.ALB−ALD/ALEにあるALDSOが使用中のALDSOと一致して
いる。
3.ALB−ALD/ALEエントリにあるALETが変換すべきALETと
一致している。
4.ALB−ALD/ALEエントリがALE許可検査に合格する、す
なわち以下の条件のいずれかが真である。
a.ALB−ALD/ALEエントリにある私用ビットが0。
b.ALB−ALD/ALEエントリにあるALEXが現EAXに等しい。
c.現EAXが、ALB−ALD/ALEによってアドレスされたASTE
により指定される許可権テーブルにつき1の二次ビット
(Sビット)を選択。
ALB−ASTEエントリは、その中のASTEアドレス及びASTES
Nが使用中のALEまたはALB−ALD/ALEにあるASTEアドレス
及びASTESNと一致する時はいつでもARTのために使用す
ることができる。
また、2以上のALB−ALD/ALEエントリが同じALB−ASTE
エントリを指定してもよく、そうすればALB−ASTEテー
ブルに対するより多くのパスを提供することができ、AL
Bに別々のタイプのテーブルを使用することが正当化さ
れる。
ALB−ATEエントリは、以下の条件が両方共満たされる
と、ARTのために使用することができる。
1.ALB−ATEエントリにあるATOが使用中のASTEまたはALB
−ASTEエントリにあるATOと一致する。
2.ALB−ATEエントリにあるEAXが現EAXと一致する。
付属された無効なARTテーブル・エントリが有効化され
る時、また付属されていない有効なARTテーブル・エン
トリが付属され、かつARTテーブル・エントリから生成
される使用可能なエントリがまだALBにない時は、変更
の効果は遅くとも現命令の終了までに生じる。
ALBの内容は、AR内容の変更による影響を受けない。ALB
は、異なったAR内容、または異なった指名可能ユニット
を有する異なったEAX定義域に関係する情報を同時に含
むことができる。もしタスクが切替え後に再び指名され
るのであれば、ALBはARTのための使用可能なエントリを
含み得る。
付属された有効なARTテーブル・エントリが変更される
時、再びALBがそのエントリの写しをクリアされる前に
そのエントリを必要とするARTが実行されようとする時
は、次のような予測不能の結果が生じ得る。新しい値の
使用が、命令と命令の間、または命令の実行中(変更を
生じさせた命令を含む)に始まり得る。さらに、ALB
は、当該エントリの写しをクリアされるまで、古い値及
び新しい値の両方を含む可能性があるため、特定のART
オペレーションでどちらの値が選択されるかは予測でき
ない。
アクセス多重ロード命令(LOAD ACCESS MULTIPLE)また
は制御情報ロード命令(LOAD CONTROL)がARTに関連す
るパラメータを変更する時、オペレーションの開始時に
おけるこれらのパラメータの値はオペレーションの間中
有効である。
ALBは、ALB除去命令(PURGE ALB)またはプレフィクス
設定命令(SET PREFIX)の実行、及びCPUリセットによ
りすべてのエントリをクリアされる。これらの命令は、
ALBに望ましくない状態が生じるのを阻止するために使
用される。
F.まとめ及び発明の効果 多重アドレス空間(MAS)機構は、次の2つの主要領域
において改善をもたらす。
1.データ・アクセス:プログラムは、命令空間を含む16
までの異なったアドレス空間にあるデータを、どの制御
パラメータも変更することなく、同時にアクセスするこ
とができる。これは、16個の新規なレジスタ、すなわち
アクセス・レジスタにより可能となる。アクセス・レジ
スタの内容を変えれば、より多くのアドレス空間をアク
セスすることができる。
2.プログラム連係:エントリ・テーブル・エントリの内
容が拡張され、プログラム呼出しオペレーションにおい
てより多くの状況変化が可能になった。プログラム呼出
し中の状況の保管、及び新規な命令、すなわちプログラ
ム戻り命令(PROGRAM RETURN)によるその復元のため
に、連係スタックが設けられる。連係スタックを使用す
るブランチ型の新規な連係もある。
MASは16個の32ビット・アクセス・レジスタ0〜15(AR0
〜AR15)を備えている。これらのアクセス・レジスタ
は、新規なアドレス指定モード、すなわちアクセス・レ
ジスタ・モードで記憶域オペランドをアドレスするのに
使用される。アクセス・レジスタ・モードは、PSWにお
ける新規なビット設定で実現される。
アクセス・レジスタ・モードにおいては、命令のBフィ
ールドまたはRフィールドは、記憶域オペランド・アド
レスを含む汎用レジスタの他に、同じ番号のアクセス・
レジスタも指定する。アクセス・レジスタの内容は、DA
Tによって記憶域オペランド・アドレスを変換するのに
用いるセグメント・テーブル記述子(STD)を得るため
に、アクセス・レジスタ変換(ART)と呼ばれるプログ
ラムで使用される。
アクセス・レジスタによって指定されたアドレス空間は
AR指定アドレス空間と呼ばれる。
アクセス・レジスタはデータ・アドレスにのみ適用さ
れ、命令アドレスには適用されない。アクセス・レジス
タ・モードにおいては、命令は常に一次アドレス空間か
ら取り出される。(あるアドレス空間から別のアドレス
空間へブランチすることはできない。) RX形式の命令のXフィールドで指定されたアクセス・レ
ジスタの内容は無視される。BフィールドまたはRフィ
ールド指定されたアクセス・レジスタだけがARTで使用
される。
アクセス・レジスタの使用により、任意の2つのアドレ
ス空間の間でデータを移動することができ、完全命令セ
ットを用いて複数の異なった空間にあるデータを同時に
処理することができる。
DAS命令のうち、二次空間から一次空間への移動を行な
う命令(MOVE TO PRIMARY)及び一次空間から二次空間
への移動を行う命令(MOVE TO SECONDARY)は、アクセ
ス・レジスタ・モードでは実行を許されないが、キーを
用いた移動命令(MOVE WITH KEY)は実行可能であり、
したがってDAS機構と同様に、ソース・データ域及びタ
ーゲット・データ域に対して異なったアクセス・キーを
持つことができる。
アクセス・レジスタの内容は、一般には、アクセス・リ
ストと呼ばれるデータ域のエントリを指定するので、ア
クセス・リスト・エントリ・トークン(ALET)と呼ばれ
る。ARTは、指定されたアクセス・リスト・エントリの
内容を用いることによって、DATで使用されるセグメン
ト・テーブル記述子を得る。
「トークン」という用語を用いた理由は、ALETがアドレ
ス空間をアクセスするどのようなケイパビリティも直接
伝えることがないからである。ALETはアクセス・リスト
・エントリを指定するだけであり、指定されたエントリ
が実際のケイパビリティを表わす。
ALETは通常のデータとして操作できる。MAS機構は、ア
クセス・レジスタ、汎用レジスタ及び記憶装置の間でAL
ETを転送するための命令を含む。特に、被呼出しプログ
ラムはアクセス・レジスタの内容を記憶装置に保管し、
自身の目的のためにアクセス・レジスタをロードし、し
かる後、元の内容を復元することができる。呼出しプロ
グラム側から見れば、アクセス・レジスタの内容は変わ
っていない。
ALETは、たとえアクセス・レジスタ0が記憶域オペラン
ドのアドレス指定に関与しないとしても、アクセス・レ
ジスタ0を転送元及び転送先にすることができる。
ALETの値0及び1は特別な値であって、アクセス・リス
ト・エントリを使用することなく、一次空間及び二次空
間をそれぞれ指定する。そのため、プログラムは自身の
命令アドレス空間を指定するアクセス・リスト・エント
リを作成する必要なしに、その命令アドレス空間をアク
セスすることができ、また空間切替えを伴なうプログラ
ム呼出し後に、被呼出しプログラムは同様にして呼出し
プログラムの空間をアクセスすることができる。被呼出
しプログラムは、呼出しプログラムの空間へのアクセス
を拒否されることもある。
アクセス・リスト・エントリは、アクセス・レジスタが
使用できるアドレス指定ケイパビリティである。アドレ
ス指定ケイパビリティの完全性を保証するため、アクセ
ス・リストは問題状態プログラムから保護される。
制御プログラムは、アクセス・リスト・エントリを割り
振ってそのエントリを指定するALETを戻すサービスを提
供する。プログラムは、戻されたALETを用いて、対応す
るエントリによって指定されるアドレス空間をアクセス
することができる。制御プログラムは、アクセス・リス
ト・エントリの割振りを解除するサービスも提供する。
これにより、アクセス・リスト・エントリの再使用が可
能になる。
アクセス・リスト・エントリは、割り振られた状態にな
ければ、無効としてマークされる。無効なアクセス・リ
スト・エントリを使用しようとすると、例外が認識され
る。
プログラムは2つのアクセス・リストを使用することが
できる。一方は指名可能ユニット・アクセス・リストと
呼ばれ、他方は一次空間アクセス・リストと呼ばれる。
指名可能ユニット・アクセス・リストは、プログラムが
実行される指名可能ユニット(タスクまたはプロセスを
意味するアーキテクチャ上の用語)と永続的に関連づけ
られる。一次空間アクセス・リストは、プログラムが実
行されている一次アドレス空間に属する。どちらのアク
セス・リストを使用するかはALET中の特定のビットによ
り指定される。
アクセス・リスト・エントリは、自身が公用か使用かを
指定するビットを含んでいる。公用アクセス・リスト・
エントリの使用については許可は不要である。私用アク
セス・リスト・エントリの使用は、拡張許可指標(EA
X)による許可を受けなければならない。拡張許可指標
は、指名可能ユニット及びプログラムのいずれかに属し
ていてもよいが、プログラムが実行される一次空間に属
することはない。
拡張許可指標の使用により、指名可能ユニット・アクセ
ス・リスト中のエントリは、指名可能ユニットの作業を
行なうべく実行されるプログラムのいくつか(すべてで
はない)によって使用され得る。同様に、一次空間アク
セス・リスト中のエントリは、対応する一次空間で実行
されるプログラムのいつかは(すべてではない)によっ
て使用される。
DASの許可指標は、二次空間設定の際に二次ASN設定命令
の使用を許可し、二次空間は1のALETでアクセスできる
ので、アクセス・レジスタの使用に関係する。前述のよ
うに、許可指標は一次空間に属する。
MASでは、エントリ・テーブル・エントリ中の新規なビ
ット、すなわちPCタイプ・ビットをテストすべくプログ
ラム呼出しが変更される。このビットが0であれば、プ
ログラム呼出しは従来のDASオペレーション(基本オペ
レーション)を実行する。このビット1であれば、プロ
グラム呼出しはスタッキング・オペレーションと呼ばれ
る新規なオペレーションを実行する。スタッキング・オ
ペレーションは基本オペレーションとは異なったいくつ
かの状態変化を生じ、連係スタック中の自身が生成した
エントリに古い状態を保管する。連係スタックの状態エ
ントリは、新規はプログラム戻り命令により論理的に削
除され、前の状態が復元される。
連係スタックは指名可能ユニットごとに設けられ、指名
可能ユニットによる直接操作から保護されている。MAS
機構は、状態エントリから情報を抽出する命令及び状態
エントリの1つのフィールドを修正する命令を含む。
MAS機構は、ブランチ連係命令の代わりに使用可能なブ
ランチ・スタック命令も含む。ブランチ・スタック命令
によって変更される情報はPSW中の命令アドレスだけで
ある。ブランチ・スタック命令は、ブランチ状態エント
リと呼ばれる状態エントリを作成する。このエントリ
は、ブランチ・スタック命令によって作成されたこと、
及びPC番号の代わりにブランチ・アドレスを含むことを
除くと、プログラム呼出し状態エントリと同じである。
ブランチ状態エントリに保管される完全なPSWの一部で
あるアドレス指定モード・ビット及び命令アドレスは、
PSW中の現在の値でもよく、またブランチ・スタック命
令のオペランドとしてレジスタ中で指定されてもよい。
このレジスタは、ブランチ連係命令、ブランチ保管命
令、ブランチ・モード設定命令、ブランチ保管モード設
定命令またはブランチ・モード設定命令によって中に連
係情報を置かれたレジスタとすることができる。かくし
て、ブランチ・スタック命令は、呼出しプログラムの中
または被呼出しプログラムの入口点(若しくはその近
く)で使用することができ、いずれの場合でも、被呼出
しプログラムの終りのプログラム戻り命令で呼出しプロ
グラムに戻る。入口点でブランチ・スタック命令を使用
できるので、古い呼出しプログラムを変更することなく
連係スタックを使用することができる。
MAS機構のプログラム戻り命令は、スタッキング・プロ
グラム呼出しまたはブランチ・スタック命令により制御
を与えられたプログラムから戻るのに用いる。プログラ
ム戻り命令は、最後の連係スタック状態エントリ(プロ
グラム呼出し状態エントリでもブランチ状態エントリで
もよい)を論理的に削除する。最後の状態エントリがプ
ログラム呼出し状態エントリであれば、プログラム戻り
命令は、エントリ中に保管されたすべての状態情報を復
元する。ただし、汎用レジスタ15、0及び1ならびにア
クセス・レジスタ15、0及び1の内容は変更されない。
最後の状態エントリがブランチ状態エントリであれば、
プログラム戻り命令は、完全なPSWならびに汎用レジス
タ2〜14及びアクセス・レジスタ2〜14の内容だけを復
元する。しかし、被呼出しプログラムの実行中に生じた
かも知れないPERの有効化または無効化を妨害しないよ
うにするため、プログラム戻り命令は常にPSW中のPERマ
スクを不変に保つ。
連係スタック状態エントリの特定のビットを1にしてお
くと、このエントリに対してプログラム戻り命令が実行
された時にプログラム割込みを起こすことができる。制
御プログラムは、プログラム戻り命令の誤った使用に対
する保護策としこのビットを1にセットできる。たとえ
ば、最後に実行された連係命令が監視プログラム呼出し
命令であった場合には、プログラム戻り命令の前に制御
プログラムの出口サービスを使用する必要がある。
少なくとも最初は単一の指名可能ユニットであるジョブ
・ステップが開始される時は、そのジョブ・ステップに
固有のアドレス空間が使用される。このアドレス空間は
ジョブ・ステップのホーム・アドレス空間と呼ばれる。
システムは、ジョブ・ステップを表わす主制御ブロック
(たとえば、ジョブ・ステップの指名が解除される時、
状況が保管される)をそのホーム・アドレス空間に置
く。もしジョブ・ステップが別の空間に制御を与えるた
めプログラム呼出しを使用した後で入出力割込みあるい
は外部割込みが生じると、MASがなければ、ホーム・ア
ドレス空間をアクセスしてジョブ・ステップの状況を保
管するため、制御レジスタの内容を変更しなければなら
ない。
ホーム・アドレス空間のアクセス効率を改善するため、
MAS機構は、ホーム・セグメント・テーブル記述子、及
びホーム空間モードと呼ばれる別のアドレス空間モード
を使用する。ホーム空間モードはPSW中のビット設定に
より条件づけられる。割込みが生じた時に機械によって
ロードされる新しいPSWは、ホーム・アドレス空間への
即時アクセスを行なわせるためホーム空間モードを指定
することができる。
アクセス・レジスタ(AR)は32ビットのハードウェア・
レジスタであって、問題プログラムによる使用が可能で
ある。アクセス・レジスタは、記憶域が参照される時
に、オペランド・ベース・レジスタをアドレス空間と関
連づけるのに使用され得る。アクセス・レジスタの基本
機能は、複数の空間にある命令及び記憶域オペランドを
操作できるように370−XA命令セットを拡張することに
ある。
16個のアクセス・レジスタ(AR0〜AR15)はそれぞれ同
じ番号の汎用レジスタ(GR0〜GR15)と直接関連づけら
れる。アクセス・レジスタは、CPUがアクセス・レジス
タ・モードで動作している場合にのみ、アドレス指定機
構で使用される。アクセス・レジスタ・モードはPSWの
ビット16及び17によって指定される。
アクセス・レジスタの一般的な特徴は次のとおりであ
る。
1.アクセス・レジスタの内容は、アクセス・レジスタ・
モードにあるかどうかには関係なく、問題状態または監
視プログラム状態においてプログラムが自由に操作でき
る。
2.アクセス・レジスタの内容は、アーキテクチャにおけ
る命令により、記憶域からロードしたり、記憶域に書き
込んだり、汎用レジスタに転送したり(逆も可)、別の
アクセス・レジスタに写したりすることができる。
3.アクセス・レジスタの内容は、ハードウェア・テーブ
ル索引プロセス・すなわちアクセス・レジスタ変換(AR
T)によってアドレス空間を決定できるトークンであ
る。このトークンは、アクセス・リスト・エントリ・ト
ークン(ALET)と呼ばれる。
4.記憶域参照がアクセス・レジスタ・モードで行なわれ
る時、ハードウェアがアクセス・レジスタにあるALET値
をアドレス空間と関連づける。アクセス・レジスタは、
使用時に命令のベース・レジスタ・フィールドに従っ
て、ハードウェアで暗黙的に決定される。アクセス・レ
ジスタの暗黙指定は、既存の370−XA命令の機械コード
・フォーマットを変えることなく、多重アドレス空間ア
クセス機能を370−XA命令へ拡張するのを可能にする。
5.RX形式の命令の指標レジスタ・フィールドで指定され
た汎用レジスタに対応するアクセス・レジスタは、アド
レス空間の選択には関与しない。
6.アクセス・レジスタ・モードにおいては、すべての命
令及び実行命令のターゲットは常に一次アドレス空間か
ら取り出される 7.同じALET値が2以上のアクセス・レジスタにあっても
よい。
8.アクセス・レジスタは、PSWのビット16及び17がそれ
ぞれ0及び1の時のアクセス・レジスタ・モードにおい
てのみ、アドレス指定に使用される。
アクセス・リスト(AL)は、アクセス・レジスタと共に
使用されるアドレス指定ケイパビリティ・テーブルであ
り、指名可能ユニット・アクセス・リスト(DUAL)また
は一次空間アクセス・リスト(PSAL)の形をとる。アク
セス・リスト・エントリは、所与の指名可能ユニットの
ためにアクセス・レジスタを介してアドレスされ得るア
ドレス空間を定義する。
記憶域参照命令がアクセス・レジスタ・モードで実行さ
れる時、各オペランドのベース・レジスタ・フィールド
は、対応するアクセス・レジスタにあるALETによって指
定されるアクセス・リスト・エントリと関連づけられ
る。
アクセス・リストはアドレス指定ケイパビリティのリス
トを表わす。これらのケイパビリティは、関連する指名
可能ユニットがアクセスできるアドレス空間を定義す
る。アクセス・レジスタ・モードでのアドレス指定にお
いては、アクセス・リスト・エントリは、命令の記憶域
オペランドに関してDATで使用される代替セグメント・
テーブル起点をハードウェアで見つけるための手段を提
供する。アドレス空間に関連するセグメント・テーブル
及び許可権テーブルのアドレスはASN第2テーブル・エ
ントリ(ASTE)に含まれており、アクセス・リスト・エ
ントリはこのASTEの実アドレスを含んでいるので、上記
のことが可能になる。
G.用語解 AKM 許可キー・マーク AL アクセス・リスト−アドレス指定ケイパビ リティ・テーブル AR アクセス・レジスター各ARはGPRと関連づ けられる。
ART アクセス・レジスタ変換−STDをARと関連 づけられる方法。
AX 許可指標 ALB ARTルックアサイド・バッファーARTは、 ARがBフィールド記憶域オペランド参照によ
ってGPRで指定されるたびに生じ、ALBはその間に記憶域
参照回数を減らす。
ALE アクセス・リスト・エントリ ALEAX アクセス・リスト・エントリ許可指標。
ALEN アクセス・リスト・エントリ番号−ALETの ビット16〜31が指定されたALEの番号であ る。
ALL アクセス・リスト長−所定の数値として制 御レジスタに記憶されており、最大1024個 のALEまで可能である。
ALET アクセス・リスト・エントリ・トークン− アクセス・リスト中の1つのエントリを指 定する。
ALESN アクセス・リスト・エントリ順序番号−AL ET及びALEのビット8〜15。
ASN アドレス空間番号−アドレス空間を表わす。
ASTE ASN第2テーブル・エントリ−従来の370 /XAにおけるASTEを拡張したもので、無効 ビット(I)及びSTDを含む。
ASTESN ASTE順序番号−ALE及びASTEにあるASTESN が一致するかどうかを検査する。
ATL 許可権テーブル長 DAS 二重アドレス空間 DASD 直接アクセス記憶装置 DAT 動的アドレス変換−STDを用いて仮想アド レスを実アドレスに変換する。
DUAL 指名可能ユニット・アクセス・リスト DUALD DUAL記述子−DUALの起点 (実アドレス)及び長さを含む DUCT 指名可能ユニット制御テーブル−DUALD含 み、CR2によって指定される。
EAX 拡張許可指標 EKM エントリ・キー・マスク ETE エントリ・テーブル・エントリ GPR(GR)汎用レジスタ−オペランド及びアドレスを含
む。
LTD 連係テーブル記述子 MAS 多重アドレス空間 Pビット (1)ALETのビットで、DUALまたはPSALを 選択する。
(2)ALE中のビットで、すべてのユーザ がアクセスできるか(公用)または許可検 査が必要か(私用)を示す。
PASTE 一次ASN第2テーブル・エントリ−PSALD を含む。
PC−sp 現一次に対するプログラム呼出し PC−ss 空間切替えを伴なうプログラム呼出し PKM PSWキー・マスク PSAL 一次空間アクセス・リスト PSALDE PSAL記述子−PASTEに含まれ、PSALの起 点(実アドレス)及び長さからなる。
PSTD 一次セグメント・テーブル記述子 PSW プログラム状況ワード SSTD 二次セグメント・テーブル記述子 STD セグメント・テーブル記述子
【図面の簡単な説明】
第1図は本発明の概念を示すブロック図。 第2図はアクセス・レジスタ変換(ART)の様子を示す
ブロック図。 第3図は本発明のMSA機構で使用される制御レジスタの
構成を示す図。 第4図はMAS機構で使用されるPSWの内容を示す図。 第5図はアクセス・リスト・エントリ・トークン(ALE
T)のフォーマットを示す図。 第6図はアクセス・リスト・エントリ(ALE)のフォー
マットを示す図。 第7図は連係テーブル・エントリ(LTE)のフォーマッ
トを示す図。 第8図はエントリ・テーブル・エントリ(ETE)のフォ
ーマットを示す図。 第9図は連係スタックを示すブロック図。 第10図は連係スタックの状態エントリのフォーマットを
示す図。 第11図はASN第1テーブル・エントリ(AFTE)のフォー
マットを示す図。 第12図はASN第2テーブル・エントリ(ASTE)のフォー
マットを示す図。 第13図は許可権テーブル(AT)の構成を示す図。 第14図は指名可能ユニット制御テーブル(DUCT)のフォ
ーマットを示す図。 第15図はPC番号変換の論理フローを示すブロック図。 第16図はスタッキング・オペレーションの論理フローを
示すブロック図。 第17図はASN変換の論理フローを示すブロック図。 第18図はアクセス・レジスタ変換(ART)の論理フロー
を示すブロック図。 第19A図及び第19B図はARTオペレーションの流れ図。 第20図はテスト・アクセス・レジスタ命令の実行の様子
を示す図。 第21図ないし第25図はALBエントリの実施例を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アレン・ジヨージ・ガネク アメリカ合衆国ニユーヨーク州チヤパク、 ピン・オーク・レーン18番地 (72)発明者 ジエームズ・ラム アメリカ合衆国カリフオルニア州レツドウ ツド・シテイ、ケイプ・ハタラース・コー ト34番地 (72)発明者 マイケル・ジエラード・マール アメリカ合衆国ニユーヨーク州ラグンジヴ イレ、スクウエア・ヴツズ・ドライブ20番 地 (72)発明者 キヤスパー・アンソニイ・スカルズイ アメリカ合衆国ニユーヨーク州ポキプシイ アパートメント 7イー、アカデミイ・ ストリート160番地 (72)発明者 リチヤード・ジヨン・シヤマルズ アメリカ合衆国ニユーヨーク州ワツピンガ ーズ・フオールズ、エツヂ、ヒル・ドライ ブ7番地 (56)参考文献 特開 昭56−57149(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】多重アドレス空間に各々アクセスするプロ
    グラムを実行する中央処理装置オペレーティング方法で
    あって、 プログラム呼出命令又は第2プログラムへのブランチ・
    スタック命令として、一次アドレス空間で実行している
    第1プログラムによって許可された環境切換命令を識別
    するステップと、 前記環境切換命令が前記プログラム呼出命令として識別
    されたとき、二次アドレス空間を定義する情報を構成す
    るエントリ・テーブルのインデックスに前記プログラム
    呼出命令を使用し、その時点で実行するために指標され
    た第2プログラムを識別するステップと、 前記第1及び第2プログラムによる直接アクセスから保
    護されたメモリ領域の連係スタック・エントリのアドレ
    スを選択するステップと、 前記連係スタック・エントリに、前記一次アドレス空間
    のデータ識別子と、前記一次アドレス空間内の前記環境
    切換命令の場所と、前記ブランチ・スタック命令から得
    られるブランチ状態エントリ及び前記プログラム呼出命
    令から得られるプログラム呼出状態エントリの一つとし
    て前記連係スタック・エントリを識別する情報と、を記
    憶するステップと、 前記環境切換命令が前記プログラム呼出命令として識別
    されたとき、前記記憶ステップの後で、命令の実行結果
    から、中央処理装置に二次アドレス空間を活動化させ、
    アドレス可能な前記二次アドレス空間で前記第2プログ
    ラムの実行を開始するステップと、 前記環境切換命令が前記ブランチ・スタック命令として
    識別されたとき、前記記憶ステップの後で、アドレス可
    能な前記一次アドレス空間で前記第2プログラムの実行
    を開始するステップと、 前記第2プログラムの実行開始ステップの後で、前記第
    2プログラムによって許可されたプログラム戻り命令を
    識別するステップと、 から成り、 更に、前記プログラム戻り命令を識別するステップに応
    答して、 前記連係スタック・エントリをアクセスするステップ
    と、 前記連係スタック・エントリを示す情報が、前記連係ス
    タック・エントリが前記プログラム呼出状態エントリで
    あることを示すとき、前記中央処理装置に前記一次アド
    レス空間のデータ指標を供給するステップと、 前記中央処理装置に前記環境切換命令の場所を供給する
    ステップと、 命令の実行結果から前記中央処理装置に前記一次アドレ
    ス空間を活動化させるステップと、 前記環境切換命令の直後から前記第1プログラムの実行
    を再開始するステップと、 から成る中央処理装置オペレーティング方法。
JP63319660A 1988-02-10 1988-12-20 中央処理装置オペレーティング方法 Expired - Lifetime JPH06100992B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15473388A 1988-02-10 1988-02-10
US154733 1988-02-10

Publications (2)

Publication Number Publication Date
JPH01207859A JPH01207859A (ja) 1989-08-21
JPH06100992B2 true JPH06100992B2 (ja) 1994-12-12

Family

ID=22552541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63319660A Expired - Lifetime JPH06100992B2 (ja) 1988-02-10 1988-12-20 中央処理装置オペレーティング方法

Country Status (4)

Country Link
EP (1) EP0327813A3 (ja)
JP (1) JPH06100992B2 (ja)
BR (1) BR8900396A (ja)
CA (1) CA1312142C (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks
GB2060225B (en) * 1979-09-29 1983-05-25 Plessey Co Ltd Multi-programming data processing system process suspension
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4530049A (en) * 1982-02-11 1985-07-16 At&T Bell Laboratories Stack cache with fixed size stack frames

Also Published As

Publication number Publication date
EP0327813A2 (en) 1989-08-16
CA1312142C (en) 1992-12-29
BR8900396A (pt) 1989-09-26
EP0327813A3 (en) 1992-04-01
JPH01207859A (ja) 1989-08-21

Similar Documents

Publication Publication Date Title
US5220669A (en) Linkage mechanism for program isolation
EP0331900B1 (en) Method and apparatus for capability control
US4979098A (en) Multiple address space token designation, protection controls, designation translation and lookaside
JPH0661069B2 (ja) コンピユータ・システム
EP3830700B1 (en) Memory protection unit using memory protection table stored in memory system
US10423539B2 (en) Dynamic address translation with access control in an emulator environment
US5845331A (en) Memory system including guarded pointers
US9244856B2 (en) Dynamic address translation with translation table entry format control for identifying format of the translation table entry
US8037278B2 (en) Dynamic address translation with format control
US5280614A (en) Apparatus and method for controlling access to data using domains
US8417916B2 (en) Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8019964B2 (en) Dynamic address translation with DAT protection
US8631216B2 (en) Dynamic address translation with change record override
US8082405B2 (en) Dynamic address translation with fetch protection
US4500952A (en) Mechanism for control of address translation by a program using a plurality of translation tables
US20120011341A1 (en) Load Page Table Entry Address Instruction Execution Based on an Address Translation Format Control Field
JPH04247528A (ja) データ空間への共通アクセス装置及び方法
CN112585590B (zh) 用于存储器访问控制的方法和装置
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