JPH0571975B2 - - Google Patents
Info
- Publication number
- JPH0571975B2 JPH0571975B2 JP63318662A JP31866288A JPH0571975B2 JP H0571975 B2 JPH0571975 B2 JP H0571975B2 JP 63318662 A JP63318662 A JP 63318662A JP 31866288 A JP31866288 A JP 31866288A JP H0571975 B2 JPH0571975 B2 JP H0571975B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- entry
- program
- address
- register
- 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
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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (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は、関連するGPRが記憶
域オペランド・ベース・レジスタとして選択され
る時、たとえばGPRがIBMシステム/370命令の
Bフイールドによつて選択される時に、アドレス
変換のために選択される。各ARは、関連する
AR中のSTDを用いてそのデータ・アドレス空間
を定義する代わりに、プログラム・アドレス空間
AR中のSTDを用いるように指定することもでき
る。しかし、関連するGPRが記憶域オペラン
ド・ベース・レジスタ以外の目的、たとえばイン
デツクス・レジスタまたはデータの転送元あるい
は転送先レジスタとして選択されると、ARの
STDはアドレス変換のためには選択されない。
実行プログラム・アドレス空間(データを含んで
いてもよい)を定義し制御するのに16番目のAR
を設けることができる。 米国特許第436653号明細書、同第4430705号明
細書及び同第4500952号明細書はいずれも二重ア
ドレス空間(DAS)に関するもので、それによ
れば、あるアドレス空間にあるプログラムは、監
視プログラムを呼び出すことなく、他のアドレス
空間にあるデータをアクセスしたり、他のアドレ
ス空間にあるプログラムを呼び出したりすること
ができる。各アドレス空間はアドレス空間番号
(ASN)を割り当てられており、関連する1組の
アドレス変換テーブルを持つている。第2のアド
レス空間はプログラムで指定することができる。
許可されると、プログラムは主記憶装置のデータ
をある物理記憶位置から異なつてアドレス空間に
関連する別の記憶位置へ転送することができる。
プログラムで変更可能な空間選択制御ビツトが、
2つの異なつたアドレス空間に関連する2組の異
なつたアドレス変換テーブルの使用を制御する。 米国特許第4037214号明細書は、アクセス・キ
ー・レジスタ(AKR)にある複数のアクセス・
キーが命令アドレス、シンク・オペランド・アド
レス及びソース・オペランド・アドレスに基づい
て記憶域アクセスのアドレス空間を切り替える水
平アドレス指定システムを開示している。 米国特許第4521846号明細書は、データを非特
権状態でアクセスできるクロスメモリ構成におい
て複数の仮想アドレス空間へのアクセスを制御す
るための別の機構を開示している。 米国特許第3787813号明細書は、ケイパビリテ
イ・レジスタを用いたデータ処理装置を開示して
いる。このデータ処理装置は中央処理装置及び記
憶装置を有し、記憶装置中の情報はセグメント化
され、中央処理装置に設けられる複数のケイパビ
リテイ・レジスタはそれぞれ情報セグメントのベ
ース・アドレス及び限界アドレスを示す記述子情
報を記憶する。ケイパビリテイ・レジスタの1つ
は、中央処理装置で現在実行中のプログラムに関
連するセグメント・ポインタ・テーブルを含む情
報セグメントのベース・アドレス及び限界アドレ
スを定義する情報を保持し、別の1つは、記憶装
置中の各情報セグメントに対するエントリを有す
る主ケイパビリテイ・テーブルを含む情報セグメ
ントのベース・アドレス及び限界アドレスを定義
する情報を保持する。セグメント・ポインタ・テ
ーブルは、主セグメント・テーブルの異なつたエ
ントリを定義するためのポインタとして使用され
るデータ・ワードのリストを含む。 米国特許第4366538号明細書は、別々に記憶さ
れていてアセンブリ・レベルのコマンドからなる
複数のデータ処理手順を選択して連係し、さらに
複数の可変データ域のうちの1つを選択するデイ
ジタル計算機システムを開示している。このシス
テムは、データ処理手順、可変データ域及び連係
アドレスを記憶するメモリと、データ処理手順を
記憶しているメモリをアクセスするためのプログ
ラム・カウンタと、データ及び連係アドレスを記
憶しているメモリをアクセスするためのレジスタ
と、選択されたデータ処理手順に含まれるアセン
ブリ・レベルのコマンドを実行中のデータ処理手
順に含まれるアセンブリ・レベルのコマンド及び
前に選択されたアドレスに従つて実行するハード
ウエア装置とを含む。 米国特許第4268903号明細書は、スタツク域を
制御するためのスタツク制御レジスタ・グループ
を開示している。スタツク機構中に形成されユー
ザ・プログラムによつて直接制御されるデータ・
スタツク域の開始アドレスは、データ・スタツ
ク・ポインタ・レジスタに保持される。 米国特許第4454580号明細書は、ある論理アド
レス空間にあるプログラムから新しい論理アドレ
ス空間にある別のプログラムへ実行を移す方法を
開示している。呼出しプログラムは被呼出しプロ
グラムに対する選択的なセグメント割振りを制御
し、被呼出しプログラムは割り振られるセグメン
トの長さを制御する。したがつて、同じプログラ
ムが繰り返し呼び出されても、他のプログラム又
は前の呼出しにおける同じプログラムの機能また
はデータは影響を受けない。また、データ・セグ
メントの割振りを実行まで延ばすことができ、そ
れにより、他のプログラムの詳細を知らずに書か
れたプログラムの実行に融通性を持たせることが
できる。 米国特許第4297743号明細書は、それぞれが異
なつた特権レベルを表わす複数のリングの階層構
成を開示している。特権レベルの低いリングへの
分岐が許され、特権レベルは読取専用状況につい
ては異なつていてもよいが、読取書込状況につい
てはそれは許されない。該特許は3つの記憶域、
すなわち変数を記憶するための作業域、レジスタ
の内容を保管するための保管域、及び手順間でパ
ラメータを移動するための連絡域を有するスタツ
ク・フレームを教示する。ユーザは手順呼出しの
前に、保管すべきレジスタを指定しなければなら
ず、また被呼出し手順へ渡すべきパラメータを連
絡域へロードしなければならない。システムは一
連のスタツク・フレームにおいて呼出しを記録し
ており、それにより戻りが可能になる。 米国特許第4044334号明細書は、アドレス可能
空間の複数のセグメントのうちの1つでデータベ
ース・レコードを見出すためのデータベース・ポ
インタを検索するシステムを開示している。 1982年1月刊のIBM Technical Disclosure
Bulletin 第24巻、第8号の4401〜4403頁に掲載
されている“Method of Revoking a
Capability Containing a Pointer−Type
Identifier without Accessing the Capability”
と題する論文は、アドレス空間番号(ASN)を
アドレス空間ケイパビリテイのためのポインタ・
タイプ識別子として使用する技術を開示してい
る。これは二重アドレス空間機構に関するもので
あり、アクセスが有効かどうかはアドレス変換に
関連するASN第2テーブル・エントリ(ASTE)
を用いて決定することができるので、アクセスの
有効性を調べるためにアドレス空間を設定しては
ならない。一般に、ケイパビリテイによるオブジ
エクトへのアクセスは、ケイパビリテイ中の固有
コードとオブジエクトが等しい場合にのみ許され
る。ケイパビリテイは、それを見つけてアクセス
する必要なしに、単にオブジエクト中の固有コー
ドを変えるだけで無効にすることができる。 C 発明が解決しようとする課題 これまで述べてきた従来技術は、計算機のユー
ザに対して進歩した機能を提供するものである
が、なお改善が望まれる部分もある。たとえば、
任意のアドレス空間の間でデータを移動する機構
及び空間内のプログラムのために許可指標を制御
することにより同じ空間内で異なつた許可指標を
使用できるようにする機構の必要性が認められて
いる。また、アドレス空間を頻繁に切り替えた
り、アドレス指定環境の切替えに関する付加的な
アドレス指定能力の獲得または放棄を行なつたり
することも必要である。制御及び許可権機構は重
要なポイントである。ARの内容はユーザが変更
できるようにすべきであるが、ユーザはSTDの
ような実際のアドレス指定情報を直接アクセスす
べきでない。したがつて、使い易いアドレス空間
機構と適切な制御及び許可権機構とを組み合わせ
ることによつて、アドレス空間への望ましくない
アクセスを阻止する必要がある。本発明は、この
ような様々な要求を満たすものである。 D 課題を解決するための手段 本発明に従うデータ処理システムは、システム
の制御下にある多重仮想アドレス空間を有し、ア
ドレス空間のユーザ管理は空間識別のためにシス
テムから与えられるトークンによる。トークン
は、ユーザがシステムにアクセスされるべきアド
レス空間を識別するのを可能にするが、ユーザに
よる実アドレス空間または仮想アドレス空間の直
接制御は許されない。かくして、システムは、ユ
ーザが直接システム管理資源を用いて作業できな
いように、アドレス空間へのアクセスに対して適
切な許可制御を与える。ユーザは、どのアドレス
指定方式を呼び込むかに関していくつかの動作モ
ードの中から選択することもできる。 本発明に従うシステムでは、ユーザのためにア
ーキテクチヤに存在するすべての汎用レジスタに
対応するアクセス・レジスタ(AR)が設けられ
る。ARモードでは、各アクセス・レジスタは、
汎用レジスタがアクセスを許されるアドレス空間
を示すアクセス・リスト・エントリ・トークン
(ALET)を含む。ALETはアクセス・リスト・
エントリ(ALE)を指し示す。ALETによつて
示されたアドレス空間に対し汎用レジスタ中のオ
ペランドを用いた動的アドレス変換(DAT)が
行なわれる。アクセス・レジスタ変換(ART)
を用いてSTDを得るプロセスは2ステツプ・プ
ロセスである。まず、ALETを用いて、アドレス
空間番号第2テーブル・エントリ(ASTE)アド
レスを含むアクセス・リスト中のアクセス・リス
ト・エントリを識別する。次に、ASTEアドレス
を用いて、動的アドレス変換(DAT)で使用さ
れるSTDを含むASTEをアクセスする。STDを
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とALEAXが等しくなければ、
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の構成を簡単にすると、実記
憶域への参照を回避する確率が低くなる。 連係スタツク機構は、任意の異なつた許可権レ
ベルで動いているプログラムが制御プログラムの
介入なしに直接連係されるのを可能にする。呼出
しプログラム及び被呼出しプログラムのシーケン
スにおける各プログラムの許可権の程度は任意に
異なつていてもよく、したがつて非階層的なプロ
グラム構造を確立することができる。EAX、
PSWキー、PSWキー・マスク及び二次アドレス
空間の変更についての許可権に関するオプシヨン
は、異なつた許可権を異なつたプログラムまたは
同じ被呼出しプログラムと関連づける手段を与え
る。各プログラムの許可権は、制御プログラムに
よつて管理されるエントリ・テーブルで規定され
る。同じプログラムを異なつたPC番号で呼び出
せるようにエントリ・テーブルを設定することに
より、どのPC番号を呼出しに用いるかに応じて
異なつた許可権をプログラムに割り当てることが
できる。エントリ・テーブルは、プログラムがど
のPC番号を用いて他のプログラムを呼び出せる
かということの制御も可能にする。 連係スタツク機構によつて提供されるスタツキ
ング・プログラム呼出し及びプログラム戻りの連
係オペレーシヨンは、異なつたアドレス空間にあ
つて異なつたレベルの許可権を持つプログラムを
連係することができる。実行状態ならびに汎用レ
ジスタ及びアクセス・レジスタの内容はスタツキ
ング・プログラム呼出し命令の実行の間保管さ
れ、プログラム戻り命令の実行の間に部分的に復
元される。連係スタツクは、連係オペレーシヨン
において実行状態及びレジスタ内容の保管及び復
元を効率的に行なう手段を提供する。 E 実施例 本発明の多重アドレス空間(MAS)機構は、
二重アドレス空間(DAS)機構及びアクセス・
レジスタ・システムを改良したものである。
MAS機構は、DAS機構との互換性を有しかつそ
れに追加する形で動くように設計されており、若
干の変更及び改良はあるが、ほとんどの部分で
DAS機構のものと同じテーブル及びレジスタ配
置を使用する。アクセス・レジスタ変換(ART)
システムは、ユーザがアクセス・レジスタ・シス
テムを十分に利用できるようにすると共に、機械
のアドレス指定機能をユーザから分離し保護す
る。ARTルツクアサイド・バツフア(ALB)の
使用はARTの性能を高める。 サービス提供者(プログラム)は普通、ユーザ
に使用させたいデータまたはプログラムを含むア
ドレス空間を1以上所有する。サービス提供者
は、プログラムにプログラム呼出し(PC)番号
を割り当てることによつて、ユーザに対してそれ
らのプログラムを使用可能にする。PC番号割当
て操作は、プログラム制御を移すためのリンクを
確立すること、サービス呼出し者(プログラム)
に必要とされる許可特性を指定すること、及びサ
ービス提供者のプログラムの許可特性を割り当て
ることを含む。プログラム制御はあるアドレス空
間から別のアドレス空間へ移すことができ、また
同じアドレス空間に留まつていてもよい。いずれ
にしても、それに伴なつて許可があるレベルから
別のレベルへ変えられることがあり、その結果、
より大きな、より小さな、または異なつた許可が
与えられる。サービス提供者は呼出し者のレベル
とは異なつた許可レベルでランすることができ、
それによりサービス提供者ルーチンは呼出し者が
アクセスできないアドレス空間にあるデータをア
クセスすることができる。ユーザ及びサービス提
供者は、アクセス・リストにおいて私用アドレス
空間として指示されていないすべての空間をアク
セスすることができる。さらにサービス提供者は
ユーザがアクセスできない選択されたアドレス空
間をアクセスすることができる。同様に、サービ
ス提供者に対し、ユーザがアクセスできる選択さ
れたアドレス空間へのアクセスを禁止することが
できる。 プログラム命令の実行は2つのオペレーシヨン
に分けると都合がよい。最初のオペレーシヨン
は、実行すべき命令の取出しである。2番目のオ
ペレーシヨンはオペランドのアドレス指定であ
り、命令実行中に処理されるデータを取り出した
り記憶したりするために行なわれる。ARモード
のMASでは、命令は一次アドレス空間として設
定されたアドレス空間から取り出される。一次ア
ドレス空間の設定には空間切替え操作が必要な場
合もある。 第1図は、本発明に従うアクセス・レジスタを
用いてオペランドをアドレス指定する様子を示し
ている。動的アドレス変換で使用するSTDを得
るためにアクセス・レジスタの内容を使用するプ
ロセスをアクセス・レジスタ変換(ART)オペ
レーシヨンと呼び、第1図では参照番号10で示
されている。命令12は、OPコード、ベース・
アドレスを含む汎用レジスタ14を指定するBフ
イールド、及び加算器15で汎用レジスタ14の
ベース・アドレスと組み合わされて記憶域オペラ
ンドの論理アドレスを生成する変位Dを含んでい
る。アクセス・レジスタ・モードにおいては、B
フイールドはALETを含むアクセス・レジスタ1
6も指定する。ALETは、ART10で変換され
ると、データを記憶するアドレス空間に対する
STDを与える。ART10からのSTDは加算器1
5からの論理アドレスと組み合わせることがで
き、動的アドレス変換(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(CR2)にあるエントリを解読するこ
とにより見い出され、PSALD27は制御レジス
タ5(CR5)にあるエントリを解読することに
より見い出される。ARTで使用するアクセス・
リスト記述子は有効アクセス・リスト記述子
(ALD)として知られている。 アクセス・リストの各エントリは、ASN第2
テーブル・エントリ(ASTE)98を指し示す
ASTEアドレスを含むが、ASTEはASN第2テ
ーブル(AST)30にあることもないこともあ
る。実際にAST30に入つているものとはまつ
たく独立に、ARTのためにASTEを生成してそ
の機能を遂行させることができる。ただし、PC
で使用されるASTEはAST30になければなら
ない。各ASTEはDAS機構で使用されるものと
同様であり、DAT18で実アドレスを決定する
ためのSTD値を含む。 プログラムに対しては、それぞれが異なつたケ
イパビリテイ定義域を表わす2つのアクセス・リ
ストが同時に使用可能である。一方のアクセス・
リストは指名可能ユニツト・アクセス・リスト
(DUAL)と呼ばれ、他方は一次空間アクセス・
リスト(PSAL)と呼ばれる。ALETのALENが
いずれのアクセス・リストのエントリを指し示し
ているかは、ALET中の1ビツトにより指定され
る。プログラムは、アクセス・リスト24及び2
5の各エントリを使用することができる。 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)19
9は、ARTから生ずるSTDを保持するため、
ARアレイ22、PSAL25及びAST30からの
入力を受け取り保管する。ALB199はアクセ
ス・リスト記述子DUALDまたはPSALDも保持
する。同じALETが再び使用される場合、ALB
199は正しい出力を直接DAT18へ供給し、
ARTを繰り返す必要はない。 命令実行中のプログラムの制御及びCPUの状
態に関する情報を与える制御レジスタ及びPSW
をそれぞれ第3図及び第4図に示す。 第3図は、本発明のMAS機構に関係する制御
レジスタ0〜15の内容を示している。これらの
内容の多くは公知のDAS機構のものと同じであ
り、したがつて、以下では主としてMAS機構の
ためになされた変更個所について述べることにす
る。 制御レジスタ0のビツト15(M)が1であれば、
CPUがMASモードで動作していること、及び制
御プログラムがMASをサポートすることを示す。
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)を含む。制御レジスタ1
5のビツト1〜28は、後述のように、最後の連係
スタツク・オペレーシヨンで定義された連係スタ
ツク・エントリのアドレスを含む。 第4図に示したPSWのフオーマツトにおいて、
ビツト5はDAT18が活動状態かどうかを示す
DATモード・ビツト(T)である。ビツト16及び17
はアドレス指定モードを指定する。DAT18が
活動状態の場合、ビツト16及び17の組合せは、
CPUが一次モード(00)、二次モード(10)、アクセ
ス・レジスタ・モード(01)、及びホーム・モー
ド(11)のいずれにあるかを示す。PSWのビツト32
は、ビツト33〜63の命令アドレスのフオーマツト
を指定するアドレス指定モード・ビツトである。
PSWの残りのフイールドの機能及びフオーマツ
トはIBMシステム/370で公知のものである。 第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の割振りは次のようなステツプで行なわ
れる。まず、問題プログラムが、アドレス空間の
識別子及びDUAL24またはPSAL25を指定す
る標識、すなわちALETの一次リスト・ビツト7
を制御プログラムに渡す。制御プログラムはこれ
に応答して、問題プログラムがアドレス空間のア
クセスを許されているかどうかを検査する。もし
許されていると、制御プログラムは指定されたア
クセス・リストから無効エントリを1つ選択し、
それを有効エントリに変え、その中にASTEアド
レス及びASTESNを含ませることにより当該ア
ドレス空間を指定し、割り振られたALEを指定
するALETの値を問題プログラムに戻す。かくし
て、問題プログラムは新しいALETをアクセス・
レジスタに置くことにより、アドレス空間をアク
セスできるようになる。割り振られたALEはあ
とで制御プログラムの無効化サービスにより、無
効にされることがある。 無効にされたALEが再割振りされる場合、前
の割振りで指定されたアドレス空間とは別のアド
レス空間が指定される。ユーザが概念的に正しく
ないアドレス空間を指定するALETを誤つて使用
するのを避けるために、ALET及びALEの両方
にALESNが保持される。制御プログラムは、
ALEを割り振る時、同じALESNをALE及び指
定されたALETの両方に置き、ALETを問題プロ
グラムに戻す。ALEを再割振りする時は、制御
プログラムは再割振りされるALEの中のALESN
の値を変え、それが前に指定されたALET中の
ALESNの値と一致しないようにする。 ALEのASTESNについては、あとでASTEに
関連してさらに詳しく説明するが、ここで重要な
のは、ALE及びASTEに含まれるASTESNの値
を比較することによつて、ASTEの指定に関する
ALEの権限が確認されるということである。か
くして、ASTEの再割当てが可能になり、この
ASTEを参照していたすべてのALEを調べる必
要なしに、異なつたASTESNを割り当ててその
使用を制御することができる。ASTESNの使用
により、制御プログラムは、ASTEを使用するこ
とができたすべてのプログラムまたは指名可能ユ
ニツトを保持する必要はない。かくして、
ASTESNを変えることでアクセス権限を変える
ことができ、適切なASTESNなしにASTEを使
用しようとすると、例外又は割込みが生じる。こ
れにより、オペレーテイング・システムは、
ASTESNの変更前に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のいずれが生じるかを示すエントリ・アドレ
ス空間番号(EASN)を含む。EASNがオールゼ
ロであれば、PC−cpが指定され、さもなければ
PC−ssが指定される。後者の場合、EASNは一
次ASN(PASN)を置き換えるアドレス空間番号
(ASN)を識別する。ビツト32はアドレス指定モ
ード・ビツトであり、PCオペレーシヨンでPSW
中のアドレス指定モード・ビツトを置き換える。
ビツト33〜62に含まれるエントリ命令アドレス
(EIA)は、PCオペレーシヨンでPSW中の命令
アドレスを置き換える。ビツト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〜185の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及び3
8からなつていてもよい。 連係スタツクには3種類のエントリ、すなわち
逆方向ポインタを有する見出しエントリ40、正
方向ポインタを有する後書きエントリ42、及び
状態エントリ43(連係スタツク・セクシヨン3
6参照)がある。見出しエントリ及び後書きエン
トリはそれぞれ連係スタツク・セクシヨンの始め
及び終りにあり、連係スタツク・セクシヨンを連
鎖するのに使用される。見出しエントリ及び後書
きエントリは制御プログラムにより作成され、ス
タツキング・オペレーシヨンで実行状態及びレジ
スタ内容を保管すべく状態エントリが付加され
る。制御レジスタ15にある連係スタツク・エン
トリ・アドレスは現状態エントリ44を指し示す
か、またはセクシヨン中の最後の状態エントリが
除去されていると現セクシヨンの見出しエントリ
を指し示す。 第10図は連係スタツク状態エントリの内容を
示したもので、スタツキングPC命令の場合、汎
用レジスタの内容(GRs)、アクセス・レジスタ
の内容(ARs)、PSWキー・マスク(PKM)、二
次アドレス空間番号(SASN)、制御レジスタ8
からのEAX、一次アドレス空間番号(PASN)、
及びPSWの内容を含む。これらはすべてスタツ
キング命令の開始時のものである。さらに、使用
されるPC番号も含まれる。後述するブランチ・
スタツク命令の場合は、PC番号の代りにアドレ
ス指定モード・ビツト及びブランチ・アドレスが
保管される。 連係スタツク・エントリはいずれのタイプも8
バイトの倍数の長さを有する。見出しエントリ及
び後書きエントリはそれぞれ16バイトである。状
態エントリは168バイトである(第10図の下側
の数字はバイト番号を示している)。いずれのタ
イプもその終りに8バイトのエントリ記述子(第
10図の連係スタツク状態エントリの46参照)
を有する。 エントリ記述子のビツト0はアンスタツク抑止
ビツト(U)である。見出しエントリまたは状態エン
トリのエントリ記述子においてビツトUが1であ
れば、プログラム戻りでのアンスタツキング・プ
ロセスの間にスタツク・オペレーシヨン例外が認
識される。状態エントリがスタツキング・プロセ
スの間に作成される時、そのエントリ記述子のビ
ツトUは0にセツトされる。 エントリ記述子のビツト1〜7はエントリ・タ
イプ(ET)・コードで、当該エントリ記述子を含
む連係スタツク・エントリのタイプを指定する。
ETコードには次の4種類がある。 0000001 見出しエントリ 0000010 後書きエントリ 0000100 ブランチ状態エントリ 0000101 プログラム呼出し状態エントリ エントリ記述子のビツト8〜15は制御プログラ
ムによつて与えられるセクシヨン識別子(SI)で
ある。スタツキング・プロセスで作成されるエン
トリでは、プロセスはSIを先行の連係スタツク・
エントリのSIに等しく設定する。エントリ記述子
のビツト16〜31は、当該エントリの終りから同じ
連係スタツク・セクシヨン中の後書きエントリの
始めまでのバイト数を指定する残余自由空間
(RFS)フイールドを形成する。エントリ記述子
のビツト32〜47は、同じ連係スタツク・セクシヨ
ンにおける次の連係スタツク・エントリ(後書き
エントリを除く)のサイズをバイトで指定する次
エントリ・サイズ(NES)フイールドを形成す
る。 スタツキング・プロセスの間に連係スタツクで
新しい状態エントリを作成する場合、現連係スタ
ツク・セクシヨンが新しいエントリを含むのに十
分な自由空間を持つていると、新しいエントリは
現連係スタツク・エントリのエントリ記述子の直
後に置かれる。現セクシヨンに十分な自由空間が
なくても、現セクシヨンの後に別のセクシヨンが
あることを現セクシヨンの後書きエントリが示し
ていると、その後続セクシヨンに十分な残余自由
空間があれば、新しいエントリは後続セクシヨン
の見出しエントリのエントリ記述子の直後に置か
れる。後続セクシヨンがないことを後書きエント
リが示していると、例外が認識され、プログラム
割込みが起こる。その場合、制御プログラムが別
のセクシヨンを割り振り、それを現セクシヨンに
連鎖して、スタツキング・オペレーシヨンを再実
行させる。後続セクシヨンがあつても、その中に
十分な自由空間がなければ、例外が認識される。 スタツキング・オペレーシヨンで新しい状態エ
ントリ44がうまく作成されると、制御レジスタ
15にある連係スタツク・エントリ・アドレス
は、新しいエントリのエントリ記述子の一番左の
バイトを指定するように更新され、かくしてこの
エントリが新しい現連係スタツク・エントリにな
る。スタツキング・プロセスで状態エントリを作
成する場合、そのNESフイールドにはゼロが置
かれ、作成された状態エントリの長さは先行エン
トリのNESフイールドに置かれる。戻りオペレ
ーシヨンでは、汎用レジスタ及びアクセス・レジ
スタの内容、ならびに制御レジスタの種々の内容
が連係スタツク状態エントリ44から復元され、
制御レジスタ15にある連係スタツク・エント
リ・アドレスは前の連係スタツク・エントリを指
し示すように変更される。状態エントリが戻りオ
ペレーシヨンのアンスタツキング・プロセスの間
に論理的に削除されると、先行エントリのNES
フイールドにゼロが置かれる。 上述から明らかなように、連係スタツクを使用
すると、プログラム制御が戻り命令によつて被呼
出しプログラムから戻される時、呼出しプログラ
ムの動作環境及び許可レベルを覆帰させることが
できる。連係オペレーシヨンは開始点まで遡れる
と共に、無効な変更が生じないようユーザに強要
する。 制御プログラムは、プログラムを含む各アドレ
ス空間に対してアドレス空間番号(ASN)を割
り当てる。DAS機構に関連して述べたように、
ASNはPC−ssオペレーシヨンの間に変換される
ことがある。しかし、ASTEアドレスがETEに
あるので(第8図参照)、PC−ssオペレーシヨン
において、ASTEへのアクセスをASN変換なし
にETEを用いて直接行なうことができる。制御
プログラムは、アドレス空間に関連するASTEに
ポインタを置くことによつて、STD、AT及び連
係テーブルを各ASNと関連づける。それらのア
ドレス空間にあるデータも、ASTEを指し示すア
クセス・リスト・エントリを制御プログラムに作
成させることにより、アクセスすることができ
る。アドレス空間によつてはデータしか含まない
ものもある。そのようなアドレス空間はASNを
持たない。データだけの空間の場合は、ASTE、
STD、AT及びALEだけが使用される。 第11図及び第12図はそれぞれASN第1テ
ーブル及びASN第2テーブルのエントリのフオ
ーマツトを示したものであるが、これらは前述の
DAS機構のものときわめてよく似ている。第1
1図及び第12図の各エントリは1つのアドレス
空間を表わし、そのアドレス空間への連係及びア
ドレス可能性を与えるべく制御プログラムによつ
て設定される。 第12図はASTEのフオーマツトを示してい
る。ASTEのビツト0は、ASTEが無効かどうか
を示す無効ビツトである。許可権テーブル起点
(ATO)及び許可権テーブル長(ATL)は、関
連する許可権テーブルの許可権テーブル記述子
(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)のフオーマツトを示している。DUCT
のバイト16〜19は指名可能ユニツト・アクセ
ス・リスト記述子(DUALD)を含む。DUCTの
他のバイトは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バイ
トであり、DASプログラム呼出しオペレーシヨ
ンだけを実行できる。CR0.15が1であれば、
ETEは32バイトであり、ETEビツト128がDAS
PC及びスタツキングPCのいずれを実行するのか
を示す。 第15図は、プログラム呼出しのPC番号変換
オペレーシヨンの論理フローを示している。
CR0.15=1であれば、制御レジスタ5にある
PASTEO(第3図参照)によつて指定される
ASTEが取り出される。この一次ASTEはビツト
96〜127にLTDを含む(第12図参照)。プログ
ラム呼出しがDASプログラム呼出しであれば
(CR0.15=0)、通常のDASオペレーシヨンと同
じく、LTDは制御レジスタ5にある。プログラ
ム呼出し命令50は、DASの場合と同様に、LX
51及びEX52からなるPC番号を指定する。
LX51は、加算操作54により連係テーブル起
点(LTO)53と結合され、連係テーブル・エ
ントリ55の実アドレスを生成する。EX52は、
加算操作56により連係テーブル・エントリ55
のエントリ・テーブル起点(ETO)と結合され、
エントリ・テーブルにおけるエントリ・テーブ
ル・エントリ(ETE)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(EEAX)は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ま
たはDASの二次ASN設定命令で得ることができ
る)。これは、被呼出しプログラムのアクセス権
を呼出しプログラムのものより小さくする別の方
法である。一方、新しいSASN79及び新しい
SSTD81がそれぞれ古いPASN69及び古い
PSTD80に等しく設定されることもある(Sビ
ツト=0)。 第17図は、ASN変換のステツプの論理フロ
ーを示している。DAS機構と同じく、プログラ
ムを含む各アドレス空間はASNを割り当てられ、
その値は対応するETE57の90のところに書
き込まれる。ASN90は2つの数値AFX91及
びASX92からなる。これもDAS機構と同様で
ある。制御レジスタ14はASN第1テーブル起
点(AFTO)93を含み、これは加算操作94
でAFX91と組み合わせると、ASN第1テーブ
ルにおけるAFTE95の実アドレスを与える。
AFTE95はASN第2テーブル起点(ASTO)
96を含み、これは加算操作97でASX92と
組み合わせると、ASN第2テーブル30におけ
るASTE98の実アドレスを与える。CR0.15が1
の時は、ETE57にあるASTEアドレス100
をASN変換の代わりに使用することができる。
制御レジスタ14のビツト12はASN変換ビツト
(T101)である。これが0であれば、ASTEアド
レス100もASN90も使用できない。Tビツ
ト101が1であれば、いずれかを使用できる。PC
−ssオペレーシヨンの場合、ASTE98のAX1
02及びETE57のASN90がそれぞれ制御レ
ジスタ4の103及び104のところに置かれ
る。ASTE98のSTD105は制御レジスタ1
の106のところに置かれる。CR0.15=1であ
れば、ASTEアドレスはPASTEO107として
制御レジスタ5に置かれる。CR0.15=0であれ
ば、制御レジスタ5にはASTE98のLTD10
8が置かれる。第17図のASN変換はDAS及び
MASのいずれのオペレーシヨンにも適用できる。 第15〜17図に関連して説明したPC−ssオ
ペレーシヨンは、命令取出しのために制御を新し
いアドレス空間へ移すのに使用できる。その場
合、新しいアドレス空間は一次アドレス空間とし
て設定される。たとえば、PC番号、エントリ・
テーブル・エントリ及び連係テーブル・エントリ
がサービス提供者によつて設定される時、その
PC番号を呼び出すプログラムのアクセス権を設
定するためAKMが特定される。呼出しプログラ
ムがエントリ・テーブル・エントリによつて定義
されたプログラムを呼び出す権限を持つていると
(第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ビツト
116が0であれば、アクセス・リストは
DUALであり、Pビツト116が1であれば、
アクセス・リストはPSALである。DUALの場
合、有効ALDは制御レジスタ2にアドレスが記
憶されているDUCTから取り出される。PSALの
場合、有効ALDは制御レジスタ5にアドレスが
記憶されている一次ASTE(PASTE)から取り
出される。有効ALDは、アクセス・リスト起点
及びアクセス・リスト長(ALL)を含む。
ALENがアクセス・リストの外にないことを確
かめるため、117でALEN及びALLが比較さ
れる。ALENがこの検査をパスすると、有効ア
クセス・リスト起点は加算操作119により
ALENと結合され、アクセス・リスト121中
のALE120のアドレスを生成する。まずALE
120の無効ビツト(ビツト0)が121で検査
される。無効ビツトが0でALE120が有効で
あることを示していると、124でALETの
ALESN122及びALE120のALESN123
が比較される。ALESN122及びALESN12
3が等しければ、ALETはALE120のアクセ
スを許されており、ASTEアドレス125を用い
てASTE126が取り出される。ASTE126の
有効性は、128で無効ビツト127を検査するこ
とにより確かめられる。ASTE126が有効であ
れば、ALE120が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にあるEAX138は、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がテスト・アクセス・オペレーシ
ヨン(後述)によつて呼び込まれたかどうかが1
51で調べられる。アクセス・レジスタ0が指定
されていないか、またはテスト・アクセス・オペ
レーシヨンであつたならば、アクセス・レジスタ
にあるALETの使用が152で示される。アクセ
ス・レジスタ0が指定されかつこれがテスト・ア
クセス・オペレーシヨンでなければ、153で
X′00000000′がALETに割り当てられる。ついで、
ALETがX′00000000′かどうかが154で検査さ
れる。もし「はい」であれば、155で一次アド
レス空間のためのSTDが制御レジスタ1から得
られる。「いいえ」の場合は、156でALETが
X′00000001′かどうかが検査される。もし「はい」
であれば、157で二次アドレス空間のための
STDが制御レジスタから得られる。「いいえ」の
場合は、158でALETのビツト0〜6が0かど
うかが検査される。ビツト0〜6が0でなけれ
ば、ALETの割り当てられた値は有効ではなく、
159でALET指定例外が認識され、オペレーシ
ヨンは抑止される。 ビツト0〜6が0の場合は、160でALETの
ビツト7が1かどうかが検査される。1であれ
ば、制御レジスタ5にあるPASTEOが161で
解読され、PSALのための有効ALDが取り出さ
れる。ALETのビツト7が0であれば、制御レジ
スタ2にあるDUCTOが162で解読され、
DUALのための有効ALDが取り出される。16
3で取出しアドレスが無効であることがわかる
と、164でアドレス指定例外が認識され、オペ
レーシヨンは抑止される。アドレスが有効であれ
ば、ALETのALENが有効ALL(有効ALDのビツ
ト25〜31)の範囲外かどうかが165で検査され
る。もし範囲外であれば、166でALEN変換
例外が認識され、オペレーシヨンは無効にされ
る。165での答えが「いいえ」であれば、16
7でALEが見つけられ、ALEアドレスが有効か
どうかが検査される。ALEアドレスが有効でな
ければ、168でアドレス指定例外が認識され、
オペレーシヨンは抑止される。ALEアドレスが
有効であれば、ALEが有効かどうかを見るため
169でALEの有効ビツトが検査される。ALE
が有効でなければ、170でALEN変換例外が
認識され、オペレーシヨンは無効にされる。
ALEが有効であれば、171でALETのALESN
及びALEのALESNが比較される。171での比
較の結果が不一致であれば、172でALE順序
例外が認識され、オペレーシヨンは無効にされ
る。171で一致が検出されると、ALE中の
ASTEアドレスを用いて173でASTEが見つけ
られる。ASTEアドレスが有効かどうかが検査さ
れ、もし有効でなければ、174でアドレス指定
例外が認識されて、オペレーシヨンは抑止され
る。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の比較
も179で行なわれる。いずれかの検査で一致が
検出されると、180でオペランドのための
STDがアドレス空間のASTEから得られる。私
用ビツトが0であれば、プログラムはアクセスを
許されており、アクセス・レジスタ変換の許可ス
テツプは完了する。私用ビツトが1であつても
ALEAXがEAXと等しければ、プログラムはア
クセスを許されており、アクセス・レジスタ変換
の許可ステツプは完了する。 プログラムが179ではまだ許可されていない
場合は、181でASTEのビツト30、31、60〜63
が0かどうかを見ることによりASTEの有効性が
検査される。これらのビツトが0でなければ、1
82で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を用いてALET変換例外を
検査される。TAR命令は、第19A図のステツ
プ151で「はい」と判定されると、第19A図及
び第19B図のARTオペレーシヨンを実行させ
る。TAR命令は、次のテスト結果をPSWの条件
コード(CC;第4図参照)に戻す。 0=指定されたALETは0であり、アクセスに
対して有効である。 1=指定されたALETは0または1ではなく、
制御レジスタ2によつてアドレスされる
DUALにあり、指定されたEAXでのア
クセスに対して有効である。 2=指定されたALETは0または1ではなく、
制御レジスタ5によつてアドレスされる
PSALにあり、指定されたEAXでのア
クセスに対して有効である。 3=指定されたALETは1であるか、または指
定されたEAXでのアクセスに対して無
効である。 入力EAXを用いて許可例外についてALETを
テストできるようにしておくと、プログラムは、
ALETが呼出しプログラムのPASNを参照するの
か(ALET=0)、DUALを参照するのか、呼出
しプログラムのPSALを参照するのかを決定する
ことができる。これは、プログラムをALETの内
部フオーマツトとは無関係にする。 TAR命令を用いてARTを実行する時、ALB
エントリが作成される。かくして、ART中に例
外が生じなければ、ARにあるALETが実際に使
用される時、ALBはエントリを含む。 第20図はTAR命令の使用例を示している。
指名可能ユニツトのタスク制御ブロツクTCB1
は、200での実行中、5のEAXを持つている。
このEAXにより、プログラムは、TCB1につい
ての指名可能ユニツト・アクセス・リスト
(DUAL)の特定のエントリを使用することがで
きる。201で、第1プログラムがアドレス空間
ASN2にある第2プログラムに対しプログラム
呼出しを行ない、第2プログラムで使用すべき
ALETを渡す。202で、ASN2にあるプログ
ラムが8のEAXを用いて実行されるが、これは
呼出しプログラムのEAXとは異なつている。も
しプログラムが202で呼出しプログラムによつ
て与えられたALETを使用すると、システム保全
の問題が生じる。呼出しプログラムはALETを参
照するEAX権限を持つていないことがあるが、
ASN2のプログラムは持つている。ASN2のプ
ログラムは、呼出しプログラムが渡されたALET
を使用する権限を持つていたかどうかを調べる有
効性検査を実行しなければらない。203で、
ASN2のプログラムは、入力ALET及び呼出し
プログラムのEAX(=5)を指定するTAR命令
を用いて、有効性検査を実行する。呼出しプログ
ラムのEAXは、ASN2へのプログラム呼出しで
作成された連係スタツク・エントリから得られ
る。TAR命令の実行の結果、呼出しプログラム
がALETの使用を許されていたことを示す条件コ
ードが与えられると、ASN2のプログラムはそ
の機能の遂行を続けることができる。呼出しプロ
グラムがALETの使用を許されていなければ、
ASN2のプログラムは呼出しプログラムを打ち
切るか、または呼出しが成功しなかつたことを示
す戻りコードを呼出しプログラムに戻す。204
で戻り命令により制御が戻されると、呼出しプロ
グラムのEAX(=5)がスタツクから復元され、
ASN1のプログラムはこのEAXを用いて実行を
続ける。 ALET有効性検査機能は頻繁に要求される。 第20図の例では、ASN2にあるプログラム
への呼出しのたびに必要とされる。この機能はオ
ペレーテイング・システムのサービス・ルーチン
によつても提供できるが、そうするとオーバーヘ
ツドが大きくなり過ぎる。もしTAR機能がなけ
れば、呼出しプログラムのALETを参照して
EAXを変更しなければならないプログラムは、
たとえば2つのPC命令を使用する必要がある。
最初のPC命令はEAXを変更せず、呼出しプログ
ラムのEAXを用いて呼出しプログラムのパラメ
ータが参照される。あとで2番目のPC命令が実
行され、被呼出しプログラムが使用する新しい
EAXが与えられる。呼び出されたサービスは、
その機能を遂行するのに異なつたEAXを必要と
することがあり、この機構は正しいEAXの使用
を可能にする。かくして、TAR機能はより効率
のよい検査を可能にする。第20図の例では、
TAR命令がDUALのALETと共に使用されてい
るが、DUAL及びPSALのいずれのALETも使用
できる。 第21図〜第25図を参照するに、アクセス・
レジスタ変換(ART)機構は、通常、アクセ
ス・リスト記述子ならびにアクセス・リスト、
ASN第2テーブル及び許可権テーブルで指定さ
れる情報が、ARTルツクアサイド・バツフア
(ALB;第2図の199)と呼ばれる特別のバツ
フアに保持されるように構成される。アクセス・
リスト記述子(ALD)、アクセス・リスト・エン
トリ(ALE)、ASN第2テーブル・エントリ
(ASTE)及び許可権テーブル・エントリ
(ATE)は集合的にARTテーブル・エントリと
呼ばれる。CPUは、ARTテーブル・エントリを
最初にアクセスする場合にのみ、実記憶域にある
ARTテーブル・エントリを参照する必要がある。
エントリ中の情報をALBに置いておくと、その
あとのARTオペレーシヨンをALB中の情報を用
いて実行することができる。ARTプロセスで
ALBを用いた場合、実記憶域でのALD、ALE、
ASTEまたはATEの変更は必ずしもただちに変
換に影響を及ぼさなくてもよい。 ALBの大きさ及び構造は実施態様に応じて異
なる。たとえば、アクセス・レジスタ1〜15と
それぞれ1対1に対応する15個のエントリを含
み、各エントリがセグメント・テーブル記述子
(STD)だけからなるようにALBを構成すること
ができ(第24図参照)、またALET、現指名可
能ユニツト制御テーブル起点または一次ASTE起
点、及び現拡張許可指標に基づいて選択される値
の配列を含むようにALBを構成することができ
る。前者の場合、アクセス・レジスタが再ロード
されると対応するALBエントリがクリアされ、
制御レジスタ2,5または8の内容が変更される
とALB全体がクリアされる。後者の場合、アク
セス・レジスタ又は制御レジスタの内容が変更さ
れても、ALBの中の情報は維持される。 ALB内部のエントリは、プログラムによる明
示的なアドレス指定ができないようになつてい
る。 ALBにおける情報の保持はたとえ可能であつ
たとしても、そのすべての場合において保持しな
ければならないということはない。さらに、
ALB中の情報は、クリアしなければならない場
合以外にもクリアすることができる。ALB中の
すべての情報がクリアされるのは、ALB除去命
令もしくはプレフイクス設定命令の実行または
CPUリセツトによる場合だけである。 ALBエントリは、実記憶域にあるARTテーブ
ル・エントリから取り出された情報、及び実記憶
域にあるARTテーブル・エントリを選択するの
に用いる情報を含む。実記憶域にあるALDはア
クセス・リスト記述子ソース起点(ALDSO)を
用いて選択される。ALDSOは、変換中のALET
にある一次リスト・ビツトが0であれば、制御レ
ジスタ2にある指名可能ユニツト制御テーブル起
点(DUCTO)であり、一次リスト・ビツトが1
であれば、制御レジスタ5にある一次ASN第2
テーブル・エントリ起点(PASTEO)である。 ALDのアクセス・リスト起点部分は、ALET
と共に、実記憶域にあるALEを選択するのに使
用される。 ALE中のASTEアドレスは、実記憶域にある
ASTEを選択するのに使用される。 ASTE中の許可権テーブル起点は、制御レジス
タ8にあるEAXと共に、実記憶域にあるATEを
選択するのに使用される。 第21図を参照するに、ALBの最初の実施例
では、ALB−ALD及び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
に組み込めば、ALBから直接STDを得ることが
できる。ALDSO及びALETは、もしALBにおい
て一致が生じていると、次のような情報を与え
る:Pビツト、ALEAX、許可権テーブル起点
(ATO)、許可権テーブル長(ATL)及びSTD。
STD、ATO及びATLがすでにALBに保持され
ているので、これらを得るためにASTEがアクセ
スされることはない。しかし、ASTESNが
ASTEにおいて変更されるのであれば、ALBは
ASTESNによるケイパビリテイの再検査なしに
STDを含むことになるので、ALBを除去しなけ
ればならない。 第23図を参照するに、ALBの第3の実施例
は、ALD、ALE、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
であれば、有効である。アクセス・リスト記述子
及び許可権テーブル・エントリは無効ビツトを持
つておらず、したがつて常に有効である。一次空
間アクセス・リスト記述子は、一次ASTE中の無
効ビツトの値とは無関係に有効である。 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が検索キーとし
て使用される。EAXは制御レジスタ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であれば、CR
1または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ア
ドレス及びASTESNが使用中のALEまたはALB
−ALD/ALEにあるASTEアドレス及び
ASTESNと一致する時はいつでもARTのために
使用することができる。 また、2以上のALB−ALD/ALEエントリが
同じALB−ASTEエントリを指定してもよく、
そうすればALB−ASTEテーブルに対するより
多くのパスを提供することができ、ALBに別々
のタイプのテーブルを使用することが正当化され
る。 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 ACCE SS
MULTIPLE)または制御情報ロード命令
(LOAD CONTROL)がARTに関連するパラメ
ータを変更する時、オペレーシヨンの開始時にお
けるこれらのパラメータの値はオペレーシヨンの
間中有効である。 ALBは、ALB除去命令(PURGE ALB)また
はプレフイクス設定命令(SET PR EFIX)の
実行、及びCPUリセツトによりすべてのエント
リをクリアされる。これらの命令は、ALBに望
ましくない状態が生じるのを阻止するために使用
される。 F まとめ及び発明の効果 多重アドレス空間(MAS)機構は、次の2つ
の主要領域において改善をもたらす。 1 データ・アクセス:プログラムは、命令空間
を含む16までの異なつたアドレス空間にあるデ
ータを、どの制御パラメータも変更することな
く、同時にアクセスすることができる。これ
は、16個の新規なレジスタ、すなわちアクセ
ス・レジスタにより可能となる。アクセス・レ
ジスタの内容を変えれば、より多くのアドレス
空間をアクセスすることができる。 2 プログラム連係:エントリ・テーブル・エン
トリの内容が拡張され、プログラム呼出しオペ
レーシヨンにおいてより多くの状況変化が可能
になつた。プログラム呼出し中の状況の保管、
及び新規な命令、すなわちプログラム戻り命令
(PROGRAM RETURN)によるその復元の
ために、連係スタツクが設けられる。連係スタ
ツクを使用するブランチ型の新規な連係もあ
る。 MASは16個の32ビツト・アクセス・レジスタ
0〜15(AR0〜AR15)を備えている。こ
れらのアクセス・レジスタは、新規なアドレス指
定モード、すなわちアクセス・レジスタ・モード
で記憶域オペランドをアドレスするのに使用され
る。アクセス・レジスタ・モードは、PSWにお
ける新規なビツト設定で実現される。 アクセス・レジスタ・モードにおいては、命令
のBフイールドまたはRフイールドは、記憶域オ
ペランド・アドレスを含む汎用レジスタの他に、
同じ番号のアクセス・レジスタも指定する。アク
セス・レジスタの内容は、DATによつて記憶域
オペランド・アドレスを変換するのに用いるセグ
メント・テーブル記述子(STD)を得るために、
アクセス・レジスタ変換(ART)と呼ばれるプ
ロセスで使用される。 アクセス・レジスタによつて指定されたアドレ
ス空間はAR指定アドレス空間と呼ばれる。 アクセス・レジスタはデータ・アドレスにのみ
適用され、命令アドレスには適用されない。アク
セス・レジスタ・モードにおいては、命令は常に
一次アドレス空間から取り出される。(あるアド
レス空間から別のアドレス空間へブランチするこ
とはできない。) RX形式の命令のXフイールドで指定されたア
クセス・レジスタの内容は無視される。Bフイー
ルドまたはRフイールド指定されたアクセス・レ
ジスタだけがARTで使用される。 アクセス・レジスタの使用により、任意の2つ
のアドレス空間の間でデータを移動することがで
き、完全命令セツトを用いて複数の異なつた空間
にあるデータを同時に処理することができる。 DAS命令のうち、二次空間から一次空間への
移動を行なう命令(MOVE TO PRIMA RY)
及び一次空間から二次空間への移動を行う命令
(MOVE TO SECONDARY)は、アクセス・
レジスタ・モードでは実行を許されないが、キー
を用いた移動命令(MOVE WITH KEY)は実
行可能であり、したがつてDAS機構と同様に、
ソース・データ域及びターゲツト・データ域に対
して異なつたアクセス・キーを持つことができ
る。 アクセス・レジスタの内容は、一般には、アク
セス・リストと呼ばれるデータ域のエントリを指
定するので、アクセス・リスト・エントリ・トー
クン(ALET)と呼ばれる。ARTは、指定され
たアクセス・リスト・エントリの内容を用いるこ
とによつて、DATで使用されるセグメント・テ
ーブル記述子を得る。 「トークン」という用語を用いた理由は、
ALETがアドレス空間をアクセスするどのような
ケイパビリテイも直接伝えることがないからであ
る。ALETはアクセス・リスト・エントリを指定
するだけであり、指定されたエントリが実際のケ
イパビリテイを表わす。 ALETは通常のデータとして操作できる。
MAS機構は、アクセス・レジスタ、汎用レジス
タ及び記憶装置の間でALETを転送するための命
令を含む。特に、被呼出しプログラムはアクセ
ス・レジスタの内容を記憶装置に保管し、自身の
目的のためにアクセス・レジスタをロードし、し
かる後、元の内容を復元することができる。呼出
しプログラム側から見れば、アクセス・レジスタ
の内容は変わつていない。 ALETは、たとえアクセス・レジスタ0が記憶
域オペランドのアドレス指定に関与しないとして
も、アクセス・レジスタ0を転送元及び転送先に
することができる。 ALETの値0及び1は特別な値であつて、アク
セス・リスト・エントリを使用することなく、一
次空間及び二次空間をそれぞれ指定する。そのた
め、プログラムは自身の命令アドレス空間を指定
するアクセス・リスト・エントリを作成する必要
なしに、その命令アドレス空間をアクセスするこ
とができ、また空間切替えを伴なうプログラム呼
出し後に、被呼出しプログラムは同様にして呼出
しプログラムの空間をアクセスすることができ
る。被呼出しプログラムは、呼出しプログラムの
空間へのアクセスを拒否されることもある。 アクセス・リスト・エントリは、アクセス・レ
ジスタが使用できるアドレス指定ケイパビリテイ
である。アドレス指定ケイパビリテイの完全性を
保証するため、アクセス・リストは問題状態プロ
グラムから保護される。 制御プログラムは、アクセス・リスト・エント
リを割り振つてそのエントリを指定するALETを
戻すサービスを提供する。プログラムは、戻され
たALETを用いて、対応するエントリによつて指
定されるアドレス空間をアクセスすることができ
る。制御プログラムは、アクセス・リスト・エン
トリの割振りを解除するサービスも提供する。こ
れにより、アクセス・リスト・エントリの再使用
が可能になる。 アクセス・リスト・エントリは、割り振られた
状態になければ、無効としてマークされる。無効
なアクセス・リスト・エントリを使用しようとす
ると、例外が認識される。 プログラムは2つのアクセス・リストを使用す
ることができる。一方は指名可能ユニツト・アク
セス・リストと呼ばれ、他方は一次空間アクセ
ス・リストと呼ばれる。指名可能なユニツト・ア
クセス・リストは、プログラムが実行される指名
可能ユニツト(タスクまたはプロセスを意味する
アーキテクチヤ上の用語)と永続的に関連づけら
れる。一次空間アクセス・リストは、プログラム
が実行されている一次アドレス空間に属する。ど
ちらのアクセス・リストを使用するかはALET中
の特定のビツトにより指定される。 アクセス・リスト・エントリは、自身が公用か
使用かを指定するビツトを含んでいる。公用アク
セス・リスト・エントリの使用については許可は
不要である。私用アクセス・リスト・エントリの
使用は、拡張許可指標(EAX)による許可を受
けなければならない。拡張許可指標は、指名可能
ユニツト及びプログラムのいずれに属していても
よいが、プログラムが実行される一次空間に属す
ることはない。 拡張許可指標の使用により、指名可能ユニツ
ト・アクセス・リスト中のエントリは、指名可能
ユニツトの作業を行なうべく実行されるプログラ
ムのいくつか(すべてではない)によつて使用さ
れ得る。同様に、一次空間アクセス・リスト中の
エントリは、対応する一次空間で実行されるプロ
グラムのいくつか(すべてではない)によつて使
用される。 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 アクセス・レジスタの内容は、ハードウエ
ア・テーブル索引プロセス、すなわちアクセ
ス・レジスタ変換(ART)によつてアドレス
空間を決定できるトークンである。このトーク
ンは、アクセス・リスト・エントリ・トークン
(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 アクセス・リスト・エントリ順序番号
−ALET及び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−cp 現一次に対するプログラム呼出し PC−ss 空間切替えを伴なうプログラム呼出し PKM PSWキー・マスク PSAL 一次空間アクセス・リスト PSALD PSAL記述子−PASTEに含まれ、
PSALの起点(実アドレス)及び長さからな
る。 PSTD 一次セグメント・テーブル記述子 PSW プログラム状況ワード SSTD 二次セグメント・テーブル記述子 STD セグメント・テーブル記述子
アドレス空間への並行アクセスを可能にする技術
に係る。このシステムでは、汎用レジスタに対応
するアクセス・レジスタが、アドレス空間識別の
ためのトークンを含んでいる。トークンは変換プ
ロセスにおいてアクセス・リスト・エントリを指
定するのに用いられ、それによりセグメント・テ
ーブル記述子が得られる。トークンの使用は、ア
ドレス空間のシステム制御をアクセス・レジスタ
のプログラム制御から分離するのを可能にする。
本発明は米国特許第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は、関連するGPRが記憶
域オペランド・ベース・レジスタとして選択され
る時、たとえばGPRがIBMシステム/370命令の
Bフイールドによつて選択される時に、アドレス
変換のために選択される。各ARは、関連する
AR中のSTDを用いてそのデータ・アドレス空間
を定義する代わりに、プログラム・アドレス空間
AR中のSTDを用いるように指定することもでき
る。しかし、関連するGPRが記憶域オペラン
ド・ベース・レジスタ以外の目的、たとえばイン
デツクス・レジスタまたはデータの転送元あるい
は転送先レジスタとして選択されると、ARの
STDはアドレス変換のためには選択されない。
実行プログラム・アドレス空間(データを含んで
いてもよい)を定義し制御するのに16番目のAR
を設けることができる。 米国特許第436653号明細書、同第4430705号明
細書及び同第4500952号明細書はいずれも二重ア
ドレス空間(DAS)に関するもので、それによ
れば、あるアドレス空間にあるプログラムは、監
視プログラムを呼び出すことなく、他のアドレス
空間にあるデータをアクセスしたり、他のアドレ
ス空間にあるプログラムを呼び出したりすること
ができる。各アドレス空間はアドレス空間番号
(ASN)を割り当てられており、関連する1組の
アドレス変換テーブルを持つている。第2のアド
レス空間はプログラムで指定することができる。
許可されると、プログラムは主記憶装置のデータ
をある物理記憶位置から異なつてアドレス空間に
関連する別の記憶位置へ転送することができる。
プログラムで変更可能な空間選択制御ビツトが、
2つの異なつたアドレス空間に関連する2組の異
なつたアドレス変換テーブルの使用を制御する。 米国特許第4037214号明細書は、アクセス・キ
ー・レジスタ(AKR)にある複数のアクセス・
キーが命令アドレス、シンク・オペランド・アド
レス及びソース・オペランド・アドレスに基づい
て記憶域アクセスのアドレス空間を切り替える水
平アドレス指定システムを開示している。 米国特許第4521846号明細書は、データを非特
権状態でアクセスできるクロスメモリ構成におい
て複数の仮想アドレス空間へのアクセスを制御す
るための別の機構を開示している。 米国特許第3787813号明細書は、ケイパビリテ
イ・レジスタを用いたデータ処理装置を開示して
いる。このデータ処理装置は中央処理装置及び記
憶装置を有し、記憶装置中の情報はセグメント化
され、中央処理装置に設けられる複数のケイパビ
リテイ・レジスタはそれぞれ情報セグメントのベ
ース・アドレス及び限界アドレスを示す記述子情
報を記憶する。ケイパビリテイ・レジスタの1つ
は、中央処理装置で現在実行中のプログラムに関
連するセグメント・ポインタ・テーブルを含む情
報セグメントのベース・アドレス及び限界アドレ
スを定義する情報を保持し、別の1つは、記憶装
置中の各情報セグメントに対するエントリを有す
る主ケイパビリテイ・テーブルを含む情報セグメ
ントのベース・アドレス及び限界アドレスを定義
する情報を保持する。セグメント・ポインタ・テ
ーブルは、主セグメント・テーブルの異なつたエ
ントリを定義するためのポインタとして使用され
るデータ・ワードのリストを含む。 米国特許第4366538号明細書は、別々に記憶さ
れていてアセンブリ・レベルのコマンドからなる
複数のデータ処理手順を選択して連係し、さらに
複数の可変データ域のうちの1つを選択するデイ
ジタル計算機システムを開示している。このシス
テムは、データ処理手順、可変データ域及び連係
アドレスを記憶するメモリと、データ処理手順を
記憶しているメモリをアクセスするためのプログ
ラム・カウンタと、データ及び連係アドレスを記
憶しているメモリをアクセスするためのレジスタ
と、選択されたデータ処理手順に含まれるアセン
ブリ・レベルのコマンドを実行中のデータ処理手
順に含まれるアセンブリ・レベルのコマンド及び
前に選択されたアドレスに従つて実行するハード
ウエア装置とを含む。 米国特許第4268903号明細書は、スタツク域を
制御するためのスタツク制御レジスタ・グループ
を開示している。スタツク機構中に形成されユー
ザ・プログラムによつて直接制御されるデータ・
スタツク域の開始アドレスは、データ・スタツ
ク・ポインタ・レジスタに保持される。 米国特許第4454580号明細書は、ある論理アド
レス空間にあるプログラムから新しい論理アドレ
ス空間にある別のプログラムへ実行を移す方法を
開示している。呼出しプログラムは被呼出しプロ
グラムに対する選択的なセグメント割振りを制御
し、被呼出しプログラムは割り振られるセグメン
トの長さを制御する。したがつて、同じプログラ
ムが繰り返し呼び出されても、他のプログラム又
は前の呼出しにおける同じプログラムの機能また
はデータは影響を受けない。また、データ・セグ
メントの割振りを実行まで延ばすことができ、そ
れにより、他のプログラムの詳細を知らずに書か
れたプログラムの実行に融通性を持たせることが
できる。 米国特許第4297743号明細書は、それぞれが異
なつた特権レベルを表わす複数のリングの階層構
成を開示している。特権レベルの低いリングへの
分岐が許され、特権レベルは読取専用状況につい
ては異なつていてもよいが、読取書込状況につい
てはそれは許されない。該特許は3つの記憶域、
すなわち変数を記憶するための作業域、レジスタ
の内容を保管するための保管域、及び手順間でパ
ラメータを移動するための連絡域を有するスタツ
ク・フレームを教示する。ユーザは手順呼出しの
前に、保管すべきレジスタを指定しなければなら
ず、また被呼出し手順へ渡すべきパラメータを連
絡域へロードしなければならない。システムは一
連のスタツク・フレームにおいて呼出しを記録し
ており、それにより戻りが可能になる。 米国特許第4044334号明細書は、アドレス可能
空間の複数のセグメントのうちの1つでデータベ
ース・レコードを見出すためのデータベース・ポ
インタを検索するシステムを開示している。 1982年1月刊のIBM Technical Disclosure
Bulletin 第24巻、第8号の4401〜4403頁に掲載
されている“Method of Revoking a
Capability Containing a Pointer−Type
Identifier without Accessing the Capability”
と題する論文は、アドレス空間番号(ASN)を
アドレス空間ケイパビリテイのためのポインタ・
タイプ識別子として使用する技術を開示してい
る。これは二重アドレス空間機構に関するもので
あり、アクセスが有効かどうかはアドレス変換に
関連するASN第2テーブル・エントリ(ASTE)
を用いて決定することができるので、アクセスの
有効性を調べるためにアドレス空間を設定しては
ならない。一般に、ケイパビリテイによるオブジ
エクトへのアクセスは、ケイパビリテイ中の固有
コードとオブジエクトが等しい場合にのみ許され
る。ケイパビリテイは、それを見つけてアクセス
する必要なしに、単にオブジエクト中の固有コー
ドを変えるだけで無効にすることができる。 C 発明が解決しようとする課題 これまで述べてきた従来技術は、計算機のユー
ザに対して進歩した機能を提供するものである
が、なお改善が望まれる部分もある。たとえば、
任意のアドレス空間の間でデータを移動する機構
及び空間内のプログラムのために許可指標を制御
することにより同じ空間内で異なつた許可指標を
使用できるようにする機構の必要性が認められて
いる。また、アドレス空間を頻繁に切り替えた
り、アドレス指定環境の切替えに関する付加的な
アドレス指定能力の獲得または放棄を行なつたり
することも必要である。制御及び許可権機構は重
要なポイントである。ARの内容はユーザが変更
できるようにすべきであるが、ユーザはSTDの
ような実際のアドレス指定情報を直接アクセスす
べきでない。したがつて、使い易いアドレス空間
機構と適切な制御及び許可権機構とを組み合わせ
ることによつて、アドレス空間への望ましくない
アクセスを阻止する必要がある。本発明は、この
ような様々な要求を満たすものである。 D 課題を解決するための手段 本発明に従うデータ処理システムは、システム
の制御下にある多重仮想アドレス空間を有し、ア
ドレス空間のユーザ管理は空間識別のためにシス
テムから与えられるトークンによる。トークン
は、ユーザがシステムにアクセスされるべきアド
レス空間を識別するのを可能にするが、ユーザに
よる実アドレス空間または仮想アドレス空間の直
接制御は許されない。かくして、システムは、ユ
ーザが直接システム管理資源を用いて作業できな
いように、アドレス空間へのアクセスに対して適
切な許可制御を与える。ユーザは、どのアドレス
指定方式を呼び込むかに関していくつかの動作モ
ードの中から選択することもできる。 本発明に従うシステムでは、ユーザのためにア
ーキテクチヤに存在するすべての汎用レジスタに
対応するアクセス・レジスタ(AR)が設けられ
る。ARモードでは、各アクセス・レジスタは、
汎用レジスタがアクセスを許されるアドレス空間
を示すアクセス・リスト・エントリ・トークン
(ALET)を含む。ALETはアクセス・リスト・
エントリ(ALE)を指し示す。ALETによつて
示されたアドレス空間に対し汎用レジスタ中のオ
ペランドを用いた動的アドレス変換(DAT)が
行なわれる。アクセス・レジスタ変換(ART)
を用いてSTDを得るプロセスは2ステツプ・プ
ロセスである。まず、ALETを用いて、アドレス
空間番号第2テーブル・エントリ(ASTE)アド
レスを含むアクセス・リスト中のアクセス・リス
ト・エントリを識別する。次に、ASTEアドレス
を用いて、動的アドレス変換(DAT)で使用さ
れるSTDを含むASTEをアクセスする。STDを
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とALEAXが等しくなければ、
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の構成を簡単にすると、実記
憶域への参照を回避する確率が低くなる。 連係スタツク機構は、任意の異なつた許可権レ
ベルで動いているプログラムが制御プログラムの
介入なしに直接連係されるのを可能にする。呼出
しプログラム及び被呼出しプログラムのシーケン
スにおける各プログラムの許可権の程度は任意に
異なつていてもよく、したがつて非階層的なプロ
グラム構造を確立することができる。EAX、
PSWキー、PSWキー・マスク及び二次アドレス
空間の変更についての許可権に関するオプシヨン
は、異なつた許可権を異なつたプログラムまたは
同じ被呼出しプログラムと関連づける手段を与え
る。各プログラムの許可権は、制御プログラムに
よつて管理されるエントリ・テーブルで規定され
る。同じプログラムを異なつたPC番号で呼び出
せるようにエントリ・テーブルを設定することに
より、どのPC番号を呼出しに用いるかに応じて
異なつた許可権をプログラムに割り当てることが
できる。エントリ・テーブルは、プログラムがど
のPC番号を用いて他のプログラムを呼び出せる
かということの制御も可能にする。 連係スタツク機構によつて提供されるスタツキ
ング・プログラム呼出し及びプログラム戻りの連
係オペレーシヨンは、異なつたアドレス空間にあ
つて異なつたレベルの許可権を持つプログラムを
連係することができる。実行状態ならびに汎用レ
ジスタ及びアクセス・レジスタの内容はスタツキ
ング・プログラム呼出し命令の実行の間保管さ
れ、プログラム戻り命令の実行の間に部分的に復
元される。連係スタツクは、連係オペレーシヨン
において実行状態及びレジスタ内容の保管及び復
元を効率的に行なう手段を提供する。 E 実施例 本発明の多重アドレス空間(MAS)機構は、
二重アドレス空間(DAS)機構及びアクセス・
レジスタ・システムを改良したものである。
MAS機構は、DAS機構との互換性を有しかつそ
れに追加する形で動くように設計されており、若
干の変更及び改良はあるが、ほとんどの部分で
DAS機構のものと同じテーブル及びレジスタ配
置を使用する。アクセス・レジスタ変換(ART)
システムは、ユーザがアクセス・レジスタ・シス
テムを十分に利用できるようにすると共に、機械
のアドレス指定機能をユーザから分離し保護す
る。ARTルツクアサイド・バツフア(ALB)の
使用はARTの性能を高める。 サービス提供者(プログラム)は普通、ユーザ
に使用させたいデータまたはプログラムを含むア
ドレス空間を1以上所有する。サービス提供者
は、プログラムにプログラム呼出し(PC)番号
を割り当てることによつて、ユーザに対してそれ
らのプログラムを使用可能にする。PC番号割当
て操作は、プログラム制御を移すためのリンクを
確立すること、サービス呼出し者(プログラム)
に必要とされる許可特性を指定すること、及びサ
ービス提供者のプログラムの許可特性を割り当て
ることを含む。プログラム制御はあるアドレス空
間から別のアドレス空間へ移すことができ、また
同じアドレス空間に留まつていてもよい。いずれ
にしても、それに伴なつて許可があるレベルから
別のレベルへ変えられることがあり、その結果、
より大きな、より小さな、または異なつた許可が
与えられる。サービス提供者は呼出し者のレベル
とは異なつた許可レベルでランすることができ、
それによりサービス提供者ルーチンは呼出し者が
アクセスできないアドレス空間にあるデータをア
クセスすることができる。ユーザ及びサービス提
供者は、アクセス・リストにおいて私用アドレス
空間として指示されていないすべての空間をアク
セスすることができる。さらにサービス提供者は
ユーザがアクセスできない選択されたアドレス空
間をアクセスすることができる。同様に、サービ
ス提供者に対し、ユーザがアクセスできる選択さ
れたアドレス空間へのアクセスを禁止することが
できる。 プログラム命令の実行は2つのオペレーシヨン
に分けると都合がよい。最初のオペレーシヨン
は、実行すべき命令の取出しである。2番目のオ
ペレーシヨンはオペランドのアドレス指定であ
り、命令実行中に処理されるデータを取り出した
り記憶したりするために行なわれる。ARモード
のMASでは、命令は一次アドレス空間として設
定されたアドレス空間から取り出される。一次ア
ドレス空間の設定には空間切替え操作が必要な場
合もある。 第1図は、本発明に従うアクセス・レジスタを
用いてオペランドをアドレス指定する様子を示し
ている。動的アドレス変換で使用するSTDを得
るためにアクセス・レジスタの内容を使用するプ
ロセスをアクセス・レジスタ変換(ART)オペ
レーシヨンと呼び、第1図では参照番号10で示
されている。命令12は、OPコード、ベース・
アドレスを含む汎用レジスタ14を指定するBフ
イールド、及び加算器15で汎用レジスタ14の
ベース・アドレスと組み合わされて記憶域オペラ
ンドの論理アドレスを生成する変位Dを含んでい
る。アクセス・レジスタ・モードにおいては、B
フイールドはALETを含むアクセス・レジスタ1
6も指定する。ALETは、ART10で変換され
ると、データを記憶するアドレス空間に対する
STDを与える。ART10からのSTDは加算器1
5からの論理アドレスと組み合わせることがで
き、動的アドレス変換(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(CR2)にあるエントリを解読するこ
とにより見い出され、PSALD27は制御レジス
タ5(CR5)にあるエントリを解読することに
より見い出される。ARTで使用するアクセス・
リスト記述子は有効アクセス・リスト記述子
(ALD)として知られている。 アクセス・リストの各エントリは、ASN第2
テーブル・エントリ(ASTE)98を指し示す
ASTEアドレスを含むが、ASTEはASN第2テ
ーブル(AST)30にあることもないこともあ
る。実際にAST30に入つているものとはまつ
たく独立に、ARTのためにASTEを生成してそ
の機能を遂行させることができる。ただし、PC
で使用されるASTEはAST30になければなら
ない。各ASTEはDAS機構で使用されるものと
同様であり、DAT18で実アドレスを決定する
ためのSTD値を含む。 プログラムに対しては、それぞれが異なつたケ
イパビリテイ定義域を表わす2つのアクセス・リ
ストが同時に使用可能である。一方のアクセス・
リストは指名可能ユニツト・アクセス・リスト
(DUAL)と呼ばれ、他方は一次空間アクセス・
リスト(PSAL)と呼ばれる。ALETのALENが
いずれのアクセス・リストのエントリを指し示し
ているかは、ALET中の1ビツトにより指定され
る。プログラムは、アクセス・リスト24及び2
5の各エントリを使用することができる。 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)19
9は、ARTから生ずるSTDを保持するため、
ARアレイ22、PSAL25及びAST30からの
入力を受け取り保管する。ALB199はアクセ
ス・リスト記述子DUALDまたはPSALDも保持
する。同じALETが再び使用される場合、ALB
199は正しい出力を直接DAT18へ供給し、
ARTを繰り返す必要はない。 命令実行中のプログラムの制御及びCPUの状
態に関する情報を与える制御レジスタ及びPSW
をそれぞれ第3図及び第4図に示す。 第3図は、本発明のMAS機構に関係する制御
レジスタ0〜15の内容を示している。これらの
内容の多くは公知のDAS機構のものと同じであ
り、したがつて、以下では主としてMAS機構の
ためになされた変更個所について述べることにす
る。 制御レジスタ0のビツト15(M)が1であれば、
CPUがMASモードで動作していること、及び制
御プログラムがMASをサポートすることを示す。
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)を含む。制御レジスタ1
5のビツト1〜28は、後述のように、最後の連係
スタツク・オペレーシヨンで定義された連係スタ
ツク・エントリのアドレスを含む。 第4図に示したPSWのフオーマツトにおいて、
ビツト5はDAT18が活動状態かどうかを示す
DATモード・ビツト(T)である。ビツト16及び17
はアドレス指定モードを指定する。DAT18が
活動状態の場合、ビツト16及び17の組合せは、
CPUが一次モード(00)、二次モード(10)、アクセ
ス・レジスタ・モード(01)、及びホーム・モー
ド(11)のいずれにあるかを示す。PSWのビツト32
は、ビツト33〜63の命令アドレスのフオーマツト
を指定するアドレス指定モード・ビツトである。
PSWの残りのフイールドの機能及びフオーマツ
トはIBMシステム/370で公知のものである。 第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の割振りは次のようなステツプで行なわ
れる。まず、問題プログラムが、アドレス空間の
識別子及びDUAL24またはPSAL25を指定す
る標識、すなわちALETの一次リスト・ビツト7
を制御プログラムに渡す。制御プログラムはこれ
に応答して、問題プログラムがアドレス空間のア
クセスを許されているかどうかを検査する。もし
許されていると、制御プログラムは指定されたア
クセス・リストから無効エントリを1つ選択し、
それを有効エントリに変え、その中にASTEアド
レス及びASTESNを含ませることにより当該ア
ドレス空間を指定し、割り振られたALEを指定
するALETの値を問題プログラムに戻す。かくし
て、問題プログラムは新しいALETをアクセス・
レジスタに置くことにより、アドレス空間をアク
セスできるようになる。割り振られたALEはあ
とで制御プログラムの無効化サービスにより、無
効にされることがある。 無効にされたALEが再割振りされる場合、前
の割振りで指定されたアドレス空間とは別のアド
レス空間が指定される。ユーザが概念的に正しく
ないアドレス空間を指定するALETを誤つて使用
するのを避けるために、ALET及びALEの両方
にALESNが保持される。制御プログラムは、
ALEを割り振る時、同じALESNをALE及び指
定されたALETの両方に置き、ALETを問題プロ
グラムに戻す。ALEを再割振りする時は、制御
プログラムは再割振りされるALEの中のALESN
の値を変え、それが前に指定されたALET中の
ALESNの値と一致しないようにする。 ALEのASTESNについては、あとでASTEに
関連してさらに詳しく説明するが、ここで重要な
のは、ALE及びASTEに含まれるASTESNの値
を比較することによつて、ASTEの指定に関する
ALEの権限が確認されるということである。か
くして、ASTEの再割当てが可能になり、この
ASTEを参照していたすべてのALEを調べる必
要なしに、異なつたASTESNを割り当ててその
使用を制御することができる。ASTESNの使用
により、制御プログラムは、ASTEを使用するこ
とができたすべてのプログラムまたは指名可能ユ
ニツトを保持する必要はない。かくして、
ASTESNを変えることでアクセス権限を変える
ことができ、適切なASTESNなしにASTEを使
用しようとすると、例外又は割込みが生じる。こ
れにより、オペレーテイング・システムは、
ASTESNの変更前に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のいずれが生じるかを示すエントリ・アドレ
ス空間番号(EASN)を含む。EASNがオールゼ
ロであれば、PC−cpが指定され、さもなければ
PC−ssが指定される。後者の場合、EASNは一
次ASN(PASN)を置き換えるアドレス空間番号
(ASN)を識別する。ビツト32はアドレス指定モ
ード・ビツトであり、PCオペレーシヨンでPSW
中のアドレス指定モード・ビツトを置き換える。
ビツト33〜62に含まれるエントリ命令アドレス
(EIA)は、PCオペレーシヨンでPSW中の命令
アドレスを置き換える。ビツト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〜185の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及び3
8からなつていてもよい。 連係スタツクには3種類のエントリ、すなわち
逆方向ポインタを有する見出しエントリ40、正
方向ポインタを有する後書きエントリ42、及び
状態エントリ43(連係スタツク・セクシヨン3
6参照)がある。見出しエントリ及び後書きエン
トリはそれぞれ連係スタツク・セクシヨンの始め
及び終りにあり、連係スタツク・セクシヨンを連
鎖するのに使用される。見出しエントリ及び後書
きエントリは制御プログラムにより作成され、ス
タツキング・オペレーシヨンで実行状態及びレジ
スタ内容を保管すべく状態エントリが付加され
る。制御レジスタ15にある連係スタツク・エン
トリ・アドレスは現状態エントリ44を指し示す
か、またはセクシヨン中の最後の状態エントリが
除去されていると現セクシヨンの見出しエントリ
を指し示す。 第10図は連係スタツク状態エントリの内容を
示したもので、スタツキングPC命令の場合、汎
用レジスタの内容(GRs)、アクセス・レジスタ
の内容(ARs)、PSWキー・マスク(PKM)、二
次アドレス空間番号(SASN)、制御レジスタ8
からのEAX、一次アドレス空間番号(PASN)、
及びPSWの内容を含む。これらはすべてスタツ
キング命令の開始時のものである。さらに、使用
されるPC番号も含まれる。後述するブランチ・
スタツク命令の場合は、PC番号の代りにアドレ
ス指定モード・ビツト及びブランチ・アドレスが
保管される。 連係スタツク・エントリはいずれのタイプも8
バイトの倍数の長さを有する。見出しエントリ及
び後書きエントリはそれぞれ16バイトである。状
態エントリは168バイトである(第10図の下側
の数字はバイト番号を示している)。いずれのタ
イプもその終りに8バイトのエントリ記述子(第
10図の連係スタツク状態エントリの46参照)
を有する。 エントリ記述子のビツト0はアンスタツク抑止
ビツト(U)である。見出しエントリまたは状態エン
トリのエントリ記述子においてビツトUが1であ
れば、プログラム戻りでのアンスタツキング・プ
ロセスの間にスタツク・オペレーシヨン例外が認
識される。状態エントリがスタツキング・プロセ
スの間に作成される時、そのエントリ記述子のビ
ツトUは0にセツトされる。 エントリ記述子のビツト1〜7はエントリ・タ
イプ(ET)・コードで、当該エントリ記述子を含
む連係スタツク・エントリのタイプを指定する。
ETコードには次の4種類がある。 0000001 見出しエントリ 0000010 後書きエントリ 0000100 ブランチ状態エントリ 0000101 プログラム呼出し状態エントリ エントリ記述子のビツト8〜15は制御プログラ
ムによつて与えられるセクシヨン識別子(SI)で
ある。スタツキング・プロセスで作成されるエン
トリでは、プロセスはSIを先行の連係スタツク・
エントリのSIに等しく設定する。エントリ記述子
のビツト16〜31は、当該エントリの終りから同じ
連係スタツク・セクシヨン中の後書きエントリの
始めまでのバイト数を指定する残余自由空間
(RFS)フイールドを形成する。エントリ記述子
のビツト32〜47は、同じ連係スタツク・セクシヨ
ンにおける次の連係スタツク・エントリ(後書き
エントリを除く)のサイズをバイトで指定する次
エントリ・サイズ(NES)フイールドを形成す
る。 スタツキング・プロセスの間に連係スタツクで
新しい状態エントリを作成する場合、現連係スタ
ツク・セクシヨンが新しいエントリを含むのに十
分な自由空間を持つていると、新しいエントリは
現連係スタツク・エントリのエントリ記述子の直
後に置かれる。現セクシヨンに十分な自由空間が
なくても、現セクシヨンの後に別のセクシヨンが
あることを現セクシヨンの後書きエントリが示し
ていると、その後続セクシヨンに十分な残余自由
空間があれば、新しいエントリは後続セクシヨン
の見出しエントリのエントリ記述子の直後に置か
れる。後続セクシヨンがないことを後書きエント
リが示していると、例外が認識され、プログラム
割込みが起こる。その場合、制御プログラムが別
のセクシヨンを割り振り、それを現セクシヨンに
連鎖して、スタツキング・オペレーシヨンを再実
行させる。後続セクシヨンがあつても、その中に
十分な自由空間がなければ、例外が認識される。 スタツキング・オペレーシヨンで新しい状態エ
ントリ44がうまく作成されると、制御レジスタ
15にある連係スタツク・エントリ・アドレス
は、新しいエントリのエントリ記述子の一番左の
バイトを指定するように更新され、かくしてこの
エントリが新しい現連係スタツク・エントリにな
る。スタツキング・プロセスで状態エントリを作
成する場合、そのNESフイールドにはゼロが置
かれ、作成された状態エントリの長さは先行エン
トリのNESフイールドに置かれる。戻りオペレ
ーシヨンでは、汎用レジスタ及びアクセス・レジ
スタの内容、ならびに制御レジスタの種々の内容
が連係スタツク状態エントリ44から復元され、
制御レジスタ15にある連係スタツク・エント
リ・アドレスは前の連係スタツク・エントリを指
し示すように変更される。状態エントリが戻りオ
ペレーシヨンのアンスタツキング・プロセスの間
に論理的に削除されると、先行エントリのNES
フイールドにゼロが置かれる。 上述から明らかなように、連係スタツクを使用
すると、プログラム制御が戻り命令によつて被呼
出しプログラムから戻される時、呼出しプログラ
ムの動作環境及び許可レベルを覆帰させることが
できる。連係オペレーシヨンは開始点まで遡れる
と共に、無効な変更が生じないようユーザに強要
する。 制御プログラムは、プログラムを含む各アドレ
ス空間に対してアドレス空間番号(ASN)を割
り当てる。DAS機構に関連して述べたように、
ASNはPC−ssオペレーシヨンの間に変換される
ことがある。しかし、ASTEアドレスがETEに
あるので(第8図参照)、PC−ssオペレーシヨン
において、ASTEへのアクセスをASN変換なし
にETEを用いて直接行なうことができる。制御
プログラムは、アドレス空間に関連するASTEに
ポインタを置くことによつて、STD、AT及び連
係テーブルを各ASNと関連づける。それらのア
ドレス空間にあるデータも、ASTEを指し示すア
クセス・リスト・エントリを制御プログラムに作
成させることにより、アクセスすることができ
る。アドレス空間によつてはデータしか含まない
ものもある。そのようなアドレス空間はASNを
持たない。データだけの空間の場合は、ASTE、
STD、AT及びALEだけが使用される。 第11図及び第12図はそれぞれASN第1テ
ーブル及びASN第2テーブルのエントリのフオ
ーマツトを示したものであるが、これらは前述の
DAS機構のものときわめてよく似ている。第1
1図及び第12図の各エントリは1つのアドレス
空間を表わし、そのアドレス空間への連係及びア
ドレス可能性を与えるべく制御プログラムによつ
て設定される。 第12図はASTEのフオーマツトを示してい
る。ASTEのビツト0は、ASTEが無効かどうか
を示す無効ビツトである。許可権テーブル起点
(ATO)及び許可権テーブル長(ATL)は、関
連する許可権テーブルの許可権テーブル記述子
(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)のフオーマツトを示している。DUCT
のバイト16〜19は指名可能ユニツト・アクセ
ス・リスト記述子(DUALD)を含む。DUCTの
他のバイトは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バイ
トであり、DASプログラム呼出しオペレーシヨ
ンだけを実行できる。CR0.15が1であれば、
ETEは32バイトであり、ETEビツト128がDAS
PC及びスタツキングPCのいずれを実行するのか
を示す。 第15図は、プログラム呼出しのPC番号変換
オペレーシヨンの論理フローを示している。
CR0.15=1であれば、制御レジスタ5にある
PASTEO(第3図参照)によつて指定される
ASTEが取り出される。この一次ASTEはビツト
96〜127にLTDを含む(第12図参照)。プログ
ラム呼出しがDASプログラム呼出しであれば
(CR0.15=0)、通常のDASオペレーシヨンと同
じく、LTDは制御レジスタ5にある。プログラ
ム呼出し命令50は、DASの場合と同様に、LX
51及びEX52からなるPC番号を指定する。
LX51は、加算操作54により連係テーブル起
点(LTO)53と結合され、連係テーブル・エ
ントリ55の実アドレスを生成する。EX52は、
加算操作56により連係テーブル・エントリ55
のエントリ・テーブル起点(ETO)と結合され、
エントリ・テーブルにおけるエントリ・テーブ
ル・エントリ(ETE)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(EEAX)は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ま
たはDASの二次ASN設定命令で得ることができ
る)。これは、被呼出しプログラムのアクセス権
を呼出しプログラムのものより小さくする別の方
法である。一方、新しいSASN79及び新しい
SSTD81がそれぞれ古いPASN69及び古い
PSTD80に等しく設定されることもある(Sビ
ツト=0)。 第17図は、ASN変換のステツプの論理フロ
ーを示している。DAS機構と同じく、プログラ
ムを含む各アドレス空間はASNを割り当てられ、
その値は対応するETE57の90のところに書
き込まれる。ASN90は2つの数値AFX91及
びASX92からなる。これもDAS機構と同様で
ある。制御レジスタ14はASN第1テーブル起
点(AFTO)93を含み、これは加算操作94
でAFX91と組み合わせると、ASN第1テーブ
ルにおけるAFTE95の実アドレスを与える。
AFTE95はASN第2テーブル起点(ASTO)
96を含み、これは加算操作97でASX92と
組み合わせると、ASN第2テーブル30におけ
るASTE98の実アドレスを与える。CR0.15が1
の時は、ETE57にあるASTEアドレス100
をASN変換の代わりに使用することができる。
制御レジスタ14のビツト12はASN変換ビツト
(T101)である。これが0であれば、ASTEアド
レス100もASN90も使用できない。Tビツ
ト101が1であれば、いずれかを使用できる。PC
−ssオペレーシヨンの場合、ASTE98のAX1
02及びETE57のASN90がそれぞれ制御レ
ジスタ4の103及び104のところに置かれ
る。ASTE98のSTD105は制御レジスタ1
の106のところに置かれる。CR0.15=1であ
れば、ASTEアドレスはPASTEO107として
制御レジスタ5に置かれる。CR0.15=0であれ
ば、制御レジスタ5にはASTE98のLTD10
8が置かれる。第17図のASN変換はDAS及び
MASのいずれのオペレーシヨンにも適用できる。 第15〜17図に関連して説明したPC−ssオ
ペレーシヨンは、命令取出しのために制御を新し
いアドレス空間へ移すのに使用できる。その場
合、新しいアドレス空間は一次アドレス空間とし
て設定される。たとえば、PC番号、エントリ・
テーブル・エントリ及び連係テーブル・エントリ
がサービス提供者によつて設定される時、その
PC番号を呼び出すプログラムのアクセス権を設
定するためAKMが特定される。呼出しプログラ
ムがエントリ・テーブル・エントリによつて定義
されたプログラムを呼び出す権限を持つていると
(第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ビツト
116が0であれば、アクセス・リストは
DUALであり、Pビツト116が1であれば、
アクセス・リストはPSALである。DUALの場
合、有効ALDは制御レジスタ2にアドレスが記
憶されているDUCTから取り出される。PSALの
場合、有効ALDは制御レジスタ5にアドレスが
記憶されている一次ASTE(PASTE)から取り
出される。有効ALDは、アクセス・リスト起点
及びアクセス・リスト長(ALL)を含む。
ALENがアクセス・リストの外にないことを確
かめるため、117でALEN及びALLが比較さ
れる。ALENがこの検査をパスすると、有効ア
クセス・リスト起点は加算操作119により
ALENと結合され、アクセス・リスト121中
のALE120のアドレスを生成する。まずALE
120の無効ビツト(ビツト0)が121で検査
される。無効ビツトが0でALE120が有効で
あることを示していると、124でALETの
ALESN122及びALE120のALESN123
が比較される。ALESN122及びALESN12
3が等しければ、ALETはALE120のアクセ
スを許されており、ASTEアドレス125を用い
てASTE126が取り出される。ASTE126の
有効性は、128で無効ビツト127を検査するこ
とにより確かめられる。ASTE126が有効であ
れば、ALE120が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にあるEAX138は、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がテスト・アクセス・オペレーシ
ヨン(後述)によつて呼び込まれたかどうかが1
51で調べられる。アクセス・レジスタ0が指定
されていないか、またはテスト・アクセス・オペ
レーシヨンであつたならば、アクセス・レジスタ
にあるALETの使用が152で示される。アクセ
ス・レジスタ0が指定されかつこれがテスト・ア
クセス・オペレーシヨンでなければ、153で
X′00000000′がALETに割り当てられる。ついで、
ALETがX′00000000′かどうかが154で検査さ
れる。もし「はい」であれば、155で一次アド
レス空間のためのSTDが制御レジスタ1から得
られる。「いいえ」の場合は、156でALETが
X′00000001′かどうかが検査される。もし「はい」
であれば、157で二次アドレス空間のための
STDが制御レジスタから得られる。「いいえ」の
場合は、158でALETのビツト0〜6が0かど
うかが検査される。ビツト0〜6が0でなけれ
ば、ALETの割り当てられた値は有効ではなく、
159でALET指定例外が認識され、オペレーシ
ヨンは抑止される。 ビツト0〜6が0の場合は、160でALETの
ビツト7が1かどうかが検査される。1であれ
ば、制御レジスタ5にあるPASTEOが161で
解読され、PSALのための有効ALDが取り出さ
れる。ALETのビツト7が0であれば、制御レジ
スタ2にあるDUCTOが162で解読され、
DUALのための有効ALDが取り出される。16
3で取出しアドレスが無効であることがわかる
と、164でアドレス指定例外が認識され、オペ
レーシヨンは抑止される。アドレスが有効であれ
ば、ALETのALENが有効ALL(有効ALDのビツ
ト25〜31)の範囲外かどうかが165で検査され
る。もし範囲外であれば、166でALEN変換
例外が認識され、オペレーシヨンは無効にされ
る。165での答えが「いいえ」であれば、16
7でALEが見つけられ、ALEアドレスが有効か
どうかが検査される。ALEアドレスが有効でな
ければ、168でアドレス指定例外が認識され、
オペレーシヨンは抑止される。ALEアドレスが
有効であれば、ALEが有効かどうかを見るため
169でALEの有効ビツトが検査される。ALE
が有効でなければ、170でALEN変換例外が
認識され、オペレーシヨンは無効にされる。
ALEが有効であれば、171でALETのALESN
及びALEのALESNが比較される。171での比
較の結果が不一致であれば、172でALE順序
例外が認識され、オペレーシヨンは無効にされ
る。171で一致が検出されると、ALE中の
ASTEアドレスを用いて173でASTEが見つけ
られる。ASTEアドレスが有効かどうかが検査さ
れ、もし有効でなければ、174でアドレス指定
例外が認識されて、オペレーシヨンは抑止され
る。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の比較
も179で行なわれる。いずれかの検査で一致が
検出されると、180でオペランドのための
STDがアドレス空間のASTEから得られる。私
用ビツトが0であれば、プログラムはアクセスを
許されており、アクセス・レジスタ変換の許可ス
テツプは完了する。私用ビツトが1であつても
ALEAXがEAXと等しければ、プログラムはア
クセスを許されており、アクセス・レジスタ変換
の許可ステツプは完了する。 プログラムが179ではまだ許可されていない
場合は、181でASTEのビツト30、31、60〜63
が0かどうかを見ることによりASTEの有効性が
検査される。これらのビツトが0でなければ、1
82で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を用いてALET変換例外を
検査される。TAR命令は、第19A図のステツ
プ151で「はい」と判定されると、第19A図及
び第19B図のARTオペレーシヨンを実行させ
る。TAR命令は、次のテスト結果をPSWの条件
コード(CC;第4図参照)に戻す。 0=指定されたALETは0であり、アクセスに
対して有効である。 1=指定されたALETは0または1ではなく、
制御レジスタ2によつてアドレスされる
DUALにあり、指定されたEAXでのア
クセスに対して有効である。 2=指定されたALETは0または1ではなく、
制御レジスタ5によつてアドレスされる
PSALにあり、指定されたEAXでのア
クセスに対して有効である。 3=指定されたALETは1であるか、または指
定されたEAXでのアクセスに対して無
効である。 入力EAXを用いて許可例外についてALETを
テストできるようにしておくと、プログラムは、
ALETが呼出しプログラムのPASNを参照するの
か(ALET=0)、DUALを参照するのか、呼出
しプログラムのPSALを参照するのかを決定する
ことができる。これは、プログラムをALETの内
部フオーマツトとは無関係にする。 TAR命令を用いてARTを実行する時、ALB
エントリが作成される。かくして、ART中に例
外が生じなければ、ARにあるALETが実際に使
用される時、ALBはエントリを含む。 第20図はTAR命令の使用例を示している。
指名可能ユニツトのタスク制御ブロツクTCB1
は、200での実行中、5のEAXを持つている。
このEAXにより、プログラムは、TCB1につい
ての指名可能ユニツト・アクセス・リスト
(DUAL)の特定のエントリを使用することがで
きる。201で、第1プログラムがアドレス空間
ASN2にある第2プログラムに対しプログラム
呼出しを行ない、第2プログラムで使用すべき
ALETを渡す。202で、ASN2にあるプログ
ラムが8のEAXを用いて実行されるが、これは
呼出しプログラムのEAXとは異なつている。も
しプログラムが202で呼出しプログラムによつ
て与えられたALETを使用すると、システム保全
の問題が生じる。呼出しプログラムはALETを参
照するEAX権限を持つていないことがあるが、
ASN2のプログラムは持つている。ASN2のプ
ログラムは、呼出しプログラムが渡されたALET
を使用する権限を持つていたかどうかを調べる有
効性検査を実行しなければらない。203で、
ASN2のプログラムは、入力ALET及び呼出し
プログラムのEAX(=5)を指定するTAR命令
を用いて、有効性検査を実行する。呼出しプログ
ラムのEAXは、ASN2へのプログラム呼出しで
作成された連係スタツク・エントリから得られ
る。TAR命令の実行の結果、呼出しプログラム
がALETの使用を許されていたことを示す条件コ
ードが与えられると、ASN2のプログラムはそ
の機能の遂行を続けることができる。呼出しプロ
グラムがALETの使用を許されていなければ、
ASN2のプログラムは呼出しプログラムを打ち
切るか、または呼出しが成功しなかつたことを示
す戻りコードを呼出しプログラムに戻す。204
で戻り命令により制御が戻されると、呼出しプロ
グラムのEAX(=5)がスタツクから復元され、
ASN1のプログラムはこのEAXを用いて実行を
続ける。 ALET有効性検査機能は頻繁に要求される。 第20図の例では、ASN2にあるプログラム
への呼出しのたびに必要とされる。この機能はオ
ペレーテイング・システムのサービス・ルーチン
によつても提供できるが、そうするとオーバーヘ
ツドが大きくなり過ぎる。もしTAR機能がなけ
れば、呼出しプログラムのALETを参照して
EAXを変更しなければならないプログラムは、
たとえば2つのPC命令を使用する必要がある。
最初のPC命令はEAXを変更せず、呼出しプログ
ラムのEAXを用いて呼出しプログラムのパラメ
ータが参照される。あとで2番目のPC命令が実
行され、被呼出しプログラムが使用する新しい
EAXが与えられる。呼び出されたサービスは、
その機能を遂行するのに異なつたEAXを必要と
することがあり、この機構は正しいEAXの使用
を可能にする。かくして、TAR機能はより効率
のよい検査を可能にする。第20図の例では、
TAR命令がDUALのALETと共に使用されてい
るが、DUAL及びPSALのいずれのALETも使用
できる。 第21図〜第25図を参照するに、アクセス・
レジスタ変換(ART)機構は、通常、アクセ
ス・リスト記述子ならびにアクセス・リスト、
ASN第2テーブル及び許可権テーブルで指定さ
れる情報が、ARTルツクアサイド・バツフア
(ALB;第2図の199)と呼ばれる特別のバツ
フアに保持されるように構成される。アクセス・
リスト記述子(ALD)、アクセス・リスト・エン
トリ(ALE)、ASN第2テーブル・エントリ
(ASTE)及び許可権テーブル・エントリ
(ATE)は集合的にARTテーブル・エントリと
呼ばれる。CPUは、ARTテーブル・エントリを
最初にアクセスする場合にのみ、実記憶域にある
ARTテーブル・エントリを参照する必要がある。
エントリ中の情報をALBに置いておくと、その
あとのARTオペレーシヨンをALB中の情報を用
いて実行することができる。ARTプロセスで
ALBを用いた場合、実記憶域でのALD、ALE、
ASTEまたはATEの変更は必ずしもただちに変
換に影響を及ぼさなくてもよい。 ALBの大きさ及び構造は実施態様に応じて異
なる。たとえば、アクセス・レジスタ1〜15と
それぞれ1対1に対応する15個のエントリを含
み、各エントリがセグメント・テーブル記述子
(STD)だけからなるようにALBを構成すること
ができ(第24図参照)、またALET、現指名可
能ユニツト制御テーブル起点または一次ASTE起
点、及び現拡張許可指標に基づいて選択される値
の配列を含むようにALBを構成することができ
る。前者の場合、アクセス・レジスタが再ロード
されると対応するALBエントリがクリアされ、
制御レジスタ2,5または8の内容が変更される
とALB全体がクリアされる。後者の場合、アク
セス・レジスタ又は制御レジスタの内容が変更さ
れても、ALBの中の情報は維持される。 ALB内部のエントリは、プログラムによる明
示的なアドレス指定ができないようになつてい
る。 ALBにおける情報の保持はたとえ可能であつ
たとしても、そのすべての場合において保持しな
ければならないということはない。さらに、
ALB中の情報は、クリアしなければならない場
合以外にもクリアすることができる。ALB中の
すべての情報がクリアされるのは、ALB除去命
令もしくはプレフイクス設定命令の実行または
CPUリセツトによる場合だけである。 ALBエントリは、実記憶域にあるARTテーブ
ル・エントリから取り出された情報、及び実記憶
域にあるARTテーブル・エントリを選択するの
に用いる情報を含む。実記憶域にあるALDはア
クセス・リスト記述子ソース起点(ALDSO)を
用いて選択される。ALDSOは、変換中のALET
にある一次リスト・ビツトが0であれば、制御レ
ジスタ2にある指名可能ユニツト制御テーブル起
点(DUCTO)であり、一次リスト・ビツトが1
であれば、制御レジスタ5にある一次ASN第2
テーブル・エントリ起点(PASTEO)である。 ALDのアクセス・リスト起点部分は、ALET
と共に、実記憶域にあるALEを選択するのに使
用される。 ALE中のASTEアドレスは、実記憶域にある
ASTEを選択するのに使用される。 ASTE中の許可権テーブル起点は、制御レジス
タ8にあるEAXと共に、実記憶域にあるATEを
選択するのに使用される。 第21図を参照するに、ALBの最初の実施例
では、ALB−ALD及び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
に組み込めば、ALBから直接STDを得ることが
できる。ALDSO及びALETは、もしALBにおい
て一致が生じていると、次のような情報を与え
る:Pビツト、ALEAX、許可権テーブル起点
(ATO)、許可権テーブル長(ATL)及びSTD。
STD、ATO及びATLがすでにALBに保持され
ているので、これらを得るためにASTEがアクセ
スされることはない。しかし、ASTESNが
ASTEにおいて変更されるのであれば、ALBは
ASTESNによるケイパビリテイの再検査なしに
STDを含むことになるので、ALBを除去しなけ
ればならない。 第23図を参照するに、ALBの第3の実施例
は、ALD、ALE、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
であれば、有効である。アクセス・リスト記述子
及び許可権テーブル・エントリは無効ビツトを持
つておらず、したがつて常に有効である。一次空
間アクセス・リスト記述子は、一次ASTE中の無
効ビツトの値とは無関係に有効である。 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が検索キーとし
て使用される。EAXは制御レジスタ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であれば、CR
1または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ア
ドレス及びASTESNが使用中のALEまたはALB
−ALD/ALEにあるASTEアドレス及び
ASTESNと一致する時はいつでもARTのために
使用することができる。 また、2以上のALB−ALD/ALEエントリが
同じALB−ASTEエントリを指定してもよく、
そうすればALB−ASTEテーブルに対するより
多くのパスを提供することができ、ALBに別々
のタイプのテーブルを使用することが正当化され
る。 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 ACCE SS
MULTIPLE)または制御情報ロード命令
(LOAD CONTROL)がARTに関連するパラメ
ータを変更する時、オペレーシヨンの開始時にお
けるこれらのパラメータの値はオペレーシヨンの
間中有効である。 ALBは、ALB除去命令(PURGE ALB)また
はプレフイクス設定命令(SET PR EFIX)の
実行、及びCPUリセツトによりすべてのエント
リをクリアされる。これらの命令は、ALBに望
ましくない状態が生じるのを阻止するために使用
される。 F まとめ及び発明の効果 多重アドレス空間(MAS)機構は、次の2つ
の主要領域において改善をもたらす。 1 データ・アクセス:プログラムは、命令空間
を含む16までの異なつたアドレス空間にあるデ
ータを、どの制御パラメータも変更することな
く、同時にアクセスすることができる。これ
は、16個の新規なレジスタ、すなわちアクセ
ス・レジスタにより可能となる。アクセス・レ
ジスタの内容を変えれば、より多くのアドレス
空間をアクセスすることができる。 2 プログラム連係:エントリ・テーブル・エン
トリの内容が拡張され、プログラム呼出しオペ
レーシヨンにおいてより多くの状況変化が可能
になつた。プログラム呼出し中の状況の保管、
及び新規な命令、すなわちプログラム戻り命令
(PROGRAM RETURN)によるその復元の
ために、連係スタツクが設けられる。連係スタ
ツクを使用するブランチ型の新規な連係もあ
る。 MASは16個の32ビツト・アクセス・レジスタ
0〜15(AR0〜AR15)を備えている。こ
れらのアクセス・レジスタは、新規なアドレス指
定モード、すなわちアクセス・レジスタ・モード
で記憶域オペランドをアドレスするのに使用され
る。アクセス・レジスタ・モードは、PSWにお
ける新規なビツト設定で実現される。 アクセス・レジスタ・モードにおいては、命令
のBフイールドまたはRフイールドは、記憶域オ
ペランド・アドレスを含む汎用レジスタの他に、
同じ番号のアクセス・レジスタも指定する。アク
セス・レジスタの内容は、DATによつて記憶域
オペランド・アドレスを変換するのに用いるセグ
メント・テーブル記述子(STD)を得るために、
アクセス・レジスタ変換(ART)と呼ばれるプ
ロセスで使用される。 アクセス・レジスタによつて指定されたアドレ
ス空間はAR指定アドレス空間と呼ばれる。 アクセス・レジスタはデータ・アドレスにのみ
適用され、命令アドレスには適用されない。アク
セス・レジスタ・モードにおいては、命令は常に
一次アドレス空間から取り出される。(あるアド
レス空間から別のアドレス空間へブランチするこ
とはできない。) RX形式の命令のXフイールドで指定されたア
クセス・レジスタの内容は無視される。Bフイー
ルドまたはRフイールド指定されたアクセス・レ
ジスタだけがARTで使用される。 アクセス・レジスタの使用により、任意の2つ
のアドレス空間の間でデータを移動することがで
き、完全命令セツトを用いて複数の異なつた空間
にあるデータを同時に処理することができる。 DAS命令のうち、二次空間から一次空間への
移動を行なう命令(MOVE TO PRIMA RY)
及び一次空間から二次空間への移動を行う命令
(MOVE TO SECONDARY)は、アクセス・
レジスタ・モードでは実行を許されないが、キー
を用いた移動命令(MOVE WITH KEY)は実
行可能であり、したがつてDAS機構と同様に、
ソース・データ域及びターゲツト・データ域に対
して異なつたアクセス・キーを持つことができ
る。 アクセス・レジスタの内容は、一般には、アク
セス・リストと呼ばれるデータ域のエントリを指
定するので、アクセス・リスト・エントリ・トー
クン(ALET)と呼ばれる。ARTは、指定され
たアクセス・リスト・エントリの内容を用いるこ
とによつて、DATで使用されるセグメント・テ
ーブル記述子を得る。 「トークン」という用語を用いた理由は、
ALETがアドレス空間をアクセスするどのような
ケイパビリテイも直接伝えることがないからであ
る。ALETはアクセス・リスト・エントリを指定
するだけであり、指定されたエントリが実際のケ
イパビリテイを表わす。 ALETは通常のデータとして操作できる。
MAS機構は、アクセス・レジスタ、汎用レジス
タ及び記憶装置の間でALETを転送するための命
令を含む。特に、被呼出しプログラムはアクセ
ス・レジスタの内容を記憶装置に保管し、自身の
目的のためにアクセス・レジスタをロードし、し
かる後、元の内容を復元することができる。呼出
しプログラム側から見れば、アクセス・レジスタ
の内容は変わつていない。 ALETは、たとえアクセス・レジスタ0が記憶
域オペランドのアドレス指定に関与しないとして
も、アクセス・レジスタ0を転送元及び転送先に
することができる。 ALETの値0及び1は特別な値であつて、アク
セス・リスト・エントリを使用することなく、一
次空間及び二次空間をそれぞれ指定する。そのた
め、プログラムは自身の命令アドレス空間を指定
するアクセス・リスト・エントリを作成する必要
なしに、その命令アドレス空間をアクセスするこ
とができ、また空間切替えを伴なうプログラム呼
出し後に、被呼出しプログラムは同様にして呼出
しプログラムの空間をアクセスすることができ
る。被呼出しプログラムは、呼出しプログラムの
空間へのアクセスを拒否されることもある。 アクセス・リスト・エントリは、アクセス・レ
ジスタが使用できるアドレス指定ケイパビリテイ
である。アドレス指定ケイパビリテイの完全性を
保証するため、アクセス・リストは問題状態プロ
グラムから保護される。 制御プログラムは、アクセス・リスト・エント
リを割り振つてそのエントリを指定するALETを
戻すサービスを提供する。プログラムは、戻され
たALETを用いて、対応するエントリによつて指
定されるアドレス空間をアクセスすることができ
る。制御プログラムは、アクセス・リスト・エン
トリの割振りを解除するサービスも提供する。こ
れにより、アクセス・リスト・エントリの再使用
が可能になる。 アクセス・リスト・エントリは、割り振られた
状態になければ、無効としてマークされる。無効
なアクセス・リスト・エントリを使用しようとす
ると、例外が認識される。 プログラムは2つのアクセス・リストを使用す
ることができる。一方は指名可能ユニツト・アク
セス・リストと呼ばれ、他方は一次空間アクセ
ス・リストと呼ばれる。指名可能なユニツト・ア
クセス・リストは、プログラムが実行される指名
可能ユニツト(タスクまたはプロセスを意味する
アーキテクチヤ上の用語)と永続的に関連づけら
れる。一次空間アクセス・リストは、プログラム
が実行されている一次アドレス空間に属する。ど
ちらのアクセス・リストを使用するかはALET中
の特定のビツトにより指定される。 アクセス・リスト・エントリは、自身が公用か
使用かを指定するビツトを含んでいる。公用アク
セス・リスト・エントリの使用については許可は
不要である。私用アクセス・リスト・エントリの
使用は、拡張許可指標(EAX)による許可を受
けなければならない。拡張許可指標は、指名可能
ユニツト及びプログラムのいずれに属していても
よいが、プログラムが実行される一次空間に属す
ることはない。 拡張許可指標の使用により、指名可能ユニツ
ト・アクセス・リスト中のエントリは、指名可能
ユニツトの作業を行なうべく実行されるプログラ
ムのいくつか(すべてではない)によつて使用さ
れ得る。同様に、一次空間アクセス・リスト中の
エントリは、対応する一次空間で実行されるプロ
グラムのいくつか(すべてではない)によつて使
用される。 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 アクセス・レジスタの内容は、ハードウエ
ア・テーブル索引プロセス、すなわちアクセ
ス・レジスタ変換(ART)によつてアドレス
空間を決定できるトークンである。このトーク
ンは、アクセス・リスト・エントリ・トークン
(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 アクセス・リスト・エントリ順序番号
−ALET及び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−cp 現一次に対するプログラム呼出し PC−ss 空間切替えを伴なうプログラム呼出し PKM PSWキー・マスク PSAL 一次空間アクセス・リスト PSALD PSAL記述子−PASTEに含まれ、
PSALの起点(実アドレス)及び長さからな
る。 PSTD 一次セグメント・テーブル記述子 PSW プログラム状況ワード SSTD 二次セグメント・テーブル記述子 STD セグメント・テーブル記述子
第1図は本発明の概念を示すブロツク図。第2
図はアクセス・レジスタ変換(ART)の様子を
示すブロツク図。第3図は本発明のMAS機構で
使用される制御レジスタの構成を示す図。第4図
はMAS機構で使用されるPSWの内容を示す図。
第5図はアクセス・リスト・エントリ・トークン
(ALET)のフオーマツトを示す図。第6図はア
クセス・リスト・エントリ(ALE)のフオーマ
ツトを示す図。第7図は連係テーブル・エントリ
(LTE)のフオーマツトを示す図。第8図はエン
トリ・テーブル・エントリ(ETE)のフオーマ
ツトを示す図。第9図は連係スタツクを示すブロ
ツク図。第10図は連係スタツクの状態エントリ
のフオーマツトを示す図。第11図はASN第1
テーブル・エントリ(AFTE)のフオーマツトを
示す図。第12図はASN第2テーブル・エント
リ(ASTE)のフオーマツトを示す図。第13図
は許可権テーブル(AT)の構成を示す図。第1
4図は指名可能ユニツト制御テーブル(DUCT)
のフオーマツトを示す図。第15図はPC番号変
換の論理フローを示すブロツク図。第16図はス
タツキング・オペレーシヨンの論理フローを示す
ブロツク図。第17図はASN変換の論理フロー
を示すブロツク図。第18図はアクセス・レジス
タ変換(ART)の論理フローを示すブロツク図。
第19A図及び第19B図はARTオペレーシヨ
ンの流れ図。第20図はテスト・アクセス・レジ
スタ命令の実行の様子を示す図。第21図ないし
第25図はALBエントリの実施例を示す図。
図はアクセス・レジスタ変換(ART)の様子を
示すブロツク図。第3図は本発明のMAS機構で
使用される制御レジスタの構成を示す図。第4図
はMAS機構で使用されるPSWの内容を示す図。
第5図はアクセス・リスト・エントリ・トークン
(ALET)のフオーマツトを示す図。第6図はア
クセス・リスト・エントリ(ALE)のフオーマ
ツトを示す図。第7図は連係テーブル・エントリ
(LTE)のフオーマツトを示す図。第8図はエン
トリ・テーブル・エントリ(ETE)のフオーマ
ツトを示す図。第9図は連係スタツクを示すブロ
ツク図。第10図は連係スタツクの状態エントリ
のフオーマツトを示す図。第11図はASN第1
テーブル・エントリ(AFTE)のフオーマツトを
示す図。第12図はASN第2テーブル・エント
リ(ASTE)のフオーマツトを示す図。第13図
は許可権テーブル(AT)の構成を示す図。第1
4図は指名可能ユニツト制御テーブル(DUCT)
のフオーマツトを示す図。第15図はPC番号変
換の論理フローを示すブロツク図。第16図はス
タツキング・オペレーシヨンの論理フローを示す
ブロツク図。第17図はASN変換の論理フロー
を示すブロツク図。第18図はアクセス・レジス
タ変換(ART)の論理フローを示すブロツク図。
第19A図及び第19B図はARTオペレーシヨ
ンの流れ図。第20図はテスト・アクセス・レジ
スタ命令の実行の様子を示す図。第21図ないし
第25図はALBエントリの実施例を示す図。
Claims (1)
- 【特許請求の範囲】 1 多重アドレス空間を制御するために、実行命
令のオペランドに含まれる仮想アドレスを、対応
するアドレス空間の実アドレスに変換するアドレ
ス変換手段を備えたデータ処理システムにおい
て、 上記アドレス変換手段への入力を与えるととも
に、それぞれがケイパビリテイを有する複数のエ
ントリを含み、上記アドレス空間におけるデータ
定義域を規定する複数のアクセス・リストと、 複数の汎用レジスタと、 上記汎用レジスタに対応して設けられ、それぞ
れが上記アクセス・リストのエントリ指定情報を
有するトークンを含む複数のアクセス・レジスタ
と、 上記アクセス・リストを特定するためのアドレ
ス情報を含む複数の制御レジスタ手段とを具備
し、 上記実行命令のオペランドが上記アクセス・レ
ジスタを指定する場合、指定された該アクセス・
レジスタから対応する上記トークンを選択すると
ともに、上記制御レジスタの1つを選択し、選択
された該トークンに含まれる上記エントリ指定情
報と選択された該制御レジスタに含まれる上記ア
ドレス情報とから、該実行命令で必要とされるア
クセス・リストのエントリを特定し、該エントリ
に基づいて上記アドレス変換手段への入力を与え
る、 アドレス空間制御機構。 2 上記アクセス・リストが、 関連するアドレス空間に存在するプログラムの
みがアクセス可能なデータ定義域を規定する、第
1のアクセス・リストと、 存在するアドレス空間とは無関係に、指定され
たユニツトについてのあらゆるプログラムがアド
レス可能なデータ定義域を規定する、第2のアク
セス・リストと、 を含む特許請求の範囲第1項に記載のアドレス空
間制御機構。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US154685 | 1988-02-10 | ||
| US07/154,685 US4945480A (en) | 1988-02-10 | 1988-02-10 | Data domain switching on program address space switching and return |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01207856A JPH01207856A (ja) | 1989-08-21 |
| JPH0571975B2 true JPH0571975B2 (ja) | 1993-10-08 |
Family
ID=22552326
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63318662A Granted JPH01207856A (ja) | 1988-02-10 | 1988-12-19 | アドレス空間制御機構 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US4945480A (ja) |
| EP (1) | EP0331900B1 (ja) |
| JP (1) | JPH01207856A (ja) |
| BR (1) | BR8900567A (ja) |
| CA (1) | CA1293811C (ja) |
| DE (1) | DE68924720T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011139359A (ja) * | 2009-12-28 | 2011-07-14 | Sharp Corp | 表示装置、停止方法、プログラム、及び、記録媒体 |
Families Citing this family (38)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5210874A (en) * | 1988-03-22 | 1993-05-11 | Digital Equipment Corporation | Cross-domain call system in a capability based digital data processing system |
| US5134696A (en) * | 1988-07-28 | 1992-07-28 | International Business Machines Corp. | Virtual lookaside facility |
| JP2768503B2 (ja) * | 1989-07-25 | 1998-06-25 | 富士通株式会社 | 仮想記憶アドレス空間アクセス制御方式 |
| US5189733A (en) * | 1989-08-22 | 1993-02-23 | Borland International, Inc. | Application program memory management system |
| JP2825550B2 (ja) * | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
| JPH0679296B2 (ja) * | 1989-09-22 | 1994-10-05 | 株式会社日立製作所 | 多重仮想アドレス空間アクセス方法およびデータ処理装置 |
| US5522072A (en) * | 1990-09-04 | 1996-05-28 | At&T Corp. | Arrangement for efficiently transferring program execution between subprograms |
| US5230069A (en) * | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
| US5652869A (en) * | 1991-03-07 | 1997-07-29 | Digital Equipment Corporation | System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls |
| US5339422A (en) * | 1991-03-07 | 1994-08-16 | Digital Equipment Corporation | System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment |
| WO1992015947A1 (en) * | 1991-03-07 | 1992-09-17 | Digital Equipment Corporation | Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment |
| US5390312A (en) * | 1991-09-24 | 1995-02-14 | International Business Machines Corporation | Access look-aside facility |
| GB2260004B (en) * | 1991-09-30 | 1995-02-08 | Apple Computer | Memory management unit for a computer system |
| US5574936A (en) * | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
| 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 |
| US5361356A (en) * | 1992-03-06 | 1994-11-01 | International Business Machines Corporation | Storage isolation with subspace-group facility |
| US5479631A (en) * | 1992-11-19 | 1995-12-26 | International Business Machines Corporation | System for designating real main storage addresses in instructions while dynamic address translation is on |
| JPH06348584A (ja) * | 1993-06-01 | 1994-12-22 | Internatl Business Mach Corp <Ibm> | データ処理システム |
| US5584042A (en) * | 1993-06-01 | 1996-12-10 | International Business Machines Corporation | Dynamic I/O data address relocation facility |
| US5611043A (en) * | 1994-03-18 | 1997-03-11 | Borland International, Inc. | Debugger system and method for controlling child processes |
| US5729710A (en) * | 1994-06-22 | 1998-03-17 | International Business Machines Corporation | Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system |
| US5590313A (en) * | 1994-06-30 | 1996-12-31 | International Business Machines Corporation | Multiple protocol device interface subsystem and method |
| US5577231A (en) * | 1994-12-06 | 1996-11-19 | International Business Machines Corporation | Storage access authorization controls in a computer system using dynamic translation of large addresses |
| US6681238B1 (en) * | 1998-03-24 | 2004-01-20 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
| US6832301B2 (en) * | 2001-09-11 | 2004-12-14 | International Business Machines Corporation | Method for recovering memory |
| US6801993B2 (en) * | 2001-09-28 | 2004-10-05 | International Business Machines Corporation | Table offset for shortening translation tables from their beginnings |
| US7533382B2 (en) * | 2002-10-30 | 2009-05-12 | Stmicroelectronics, Inc. | Hyperprocessor |
| US6986017B2 (en) * | 2003-04-24 | 2006-01-10 | International Business Machines Corporation | Buffer pre-registration |
| US7444396B2 (en) * | 2003-08-29 | 2008-10-28 | Sun Microsystems, Inc. | Transferring system identities |
| US7389411B2 (en) * | 2003-08-29 | 2008-06-17 | Sun Microsystems, Inc. | Secure transfer of host identities |
| US20090133022A1 (en) * | 2007-11-15 | 2009-05-21 | Karim Faraydon O | Multiprocessing apparatus, system and method |
| US8307353B2 (en) * | 2008-08-12 | 2012-11-06 | Oracle America, Inc. | Cross-domain inlining in a system virtual machine |
| US9037815B2 (en) * | 2012-06-28 | 2015-05-19 | International Business Machines Corporation | Analyzing and reducing dump data |
| WO2017103651A1 (en) * | 2015-12-15 | 2017-06-22 | Lzlabs Gmbh | Protection key management and prefixing in virtual address space legacy emulation system |
| US11074195B2 (en) | 2019-06-28 | 2021-07-27 | International Business Machines Corporation | Access to dynamic address translation across multiple spaces for operational context subspaces |
| US10970224B2 (en) | 2019-06-28 | 2021-04-06 | International Business Machines Corporation | Operational context subspaces |
| US10891238B1 (en) | 2019-06-28 | 2021-01-12 | International Business Machines Corporation | Dynamically joining and splitting dynamic address translation (DAT) tables based on operational context |
| US11176056B2 (en) | 2019-06-28 | 2021-11-16 | International Business Machines Corporation | Private space control within a common address space |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1329721A (en) * | 1970-05-26 | 1973-09-12 | Plessey Co Ltd | Data processing devices |
| FR2253425A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
| US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
| US4037214A (en) * | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
| JPS52149444A (en) * | 1976-06-08 | 1977-12-12 | Fujitsu Ltd | Multiplex virtual space processing data processing system |
| US4096573A (en) * | 1977-04-25 | 1978-06-20 | International Business Machines Corporation | DLAT Synonym control means for common portions of all address spaces |
| US4136385A (en) * | 1977-03-24 | 1979-01-23 | International Business Machines Corporation | Synonym control means for multiple virtual storage systems |
| JPS5474651A (en) * | 1977-11-28 | 1979-06-14 | Toshiba Corp | Stack control system |
| US4355355A (en) * | 1980-03-19 | 1982-10-19 | International Business Machines Corp. | Address generating mechanism for multiple virtual spaces |
| US4366536A (en) * | 1980-04-15 | 1982-12-28 | National Semiconductor Corporation | Modular digital computer system for storing and selecting data processing procedures and data |
| 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 |
| US4430705A (en) * | 1980-05-23 | 1984-02-07 | International Business Machines Corp. | Authorization mechanism for establishing addressability to information in another address space |
| US4366537A (en) * | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
| US4521846A (en) * | 1981-02-20 | 1985-06-04 | International Business Machines Corporation | Mechanism for accessing multiple virtual address spaces |
| US4455602A (en) * | 1981-05-22 | 1984-06-19 | Data General Corporation | Digital data processing system having an I/O means using unique address providing and access priority control techniques |
| JPS57203279A (en) * | 1981-06-10 | 1982-12-13 | Hitachi Ltd | Information processing device |
| US4454580A (en) * | 1981-09-16 | 1984-06-12 | International Business Machines Corporation | Program call method and call instruction execution apparatus |
| JPS5853079A (ja) * | 1981-09-25 | 1983-03-29 | Fujitsu Ltd | Stoスタツク制御方式 |
| US4731734A (en) * | 1983-10-17 | 1988-03-15 | Data General Corporation | Digital computer system incorporating object-based addressing and access control and tables defining derivation of addresses of data from operands in instructions |
| JPS60225951A (ja) * | 1984-04-24 | 1985-11-11 | Fujitsu Ltd | 拡張仮想記憶空間の記憶保護方式 |
| ATE45826T1 (de) * | 1984-09-28 | 1989-09-15 | Siemens Ag | Datenverarbeitungsanlagen mit virtueller speicheradressierung fuer eine vielzahl von benutzern. |
-
1988
- 1988-02-10 US US07/154,685 patent/US4945480A/en not_active Expired - Lifetime
- 1988-11-18 CA CA000583573A patent/CA1293811C/en not_active Expired - Lifetime
- 1988-12-19 JP JP63318662A patent/JPH01207856A/ja active Granted
-
1989
- 1989-02-02 DE DE68924720T patent/DE68924720T2/de not_active Expired - Lifetime
- 1989-02-02 EP EP89101790A patent/EP0331900B1/en not_active Expired - Lifetime
- 1989-02-09 BR BR898900567A patent/BR8900567A/pt unknown
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011139359A (ja) * | 2009-12-28 | 2011-07-14 | Sharp Corp | 表示装置、停止方法、プログラム、及び、記録媒体 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0331900A3 (en) | 1992-03-25 |
| DE68924720D1 (de) | 1995-12-14 |
| US4945480A (en) | 1990-07-31 |
| EP0331900B1 (en) | 1995-11-08 |
| DE68924720T2 (de) | 1996-06-13 |
| EP0331900A2 (en) | 1989-09-13 |
| CA1293811C (en) | 1991-12-31 |
| BR8900567A (pt) | 1989-10-10 |
| JPH01207856A (ja) | 1989-08-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0571975B2 (ja) | ||
| US5220669A (en) | Linkage mechanism for program isolation | |
| US4979098A (en) | Multiple address space token designation, protection controls, designation translation and lookaside | |
| EP0327707B1 (en) | Nonhierarchical program authorization mechanism | |
| US5655146A (en) | Coexecution processor isolation using an isolation process or having authority controls for accessing system main storage | |
| US5230069A (en) | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system | |
| US5845129A (en) | Protection domains in a single address space | |
| US8037278B2 (en) | Dynamic address translation with format control | |
| US7882317B2 (en) | Process isolation using protection domains | |
| EP0472487A2 (en) | Apparatus and method for controlling access to data using domains | |
| JPH11505653A (ja) | 単一アドレス空間で保護ドメインと共に用いるためのオペレーティングシステム | |
| JPH0137775B2 (ja) | ||
| JPS6134177B2 (ja) | ||
| JPH0364890B2 (ja) | ||
| JPH05233425A (ja) | メモリ管理装置 | |
| EP0327839B1 (en) | Information handling system | |
| JP3554320B2 (ja) | オブジエクト指向メモリ保護メカニズムを採用するデータ処理システムで実行環境間の通信を実行するデータ処理システム | |
| US5493661A (en) | Method and system for providing a program call to a dispatchable unit's base space | |
| McGee | On dynamic program relocation | |
| Plambeck | Concepts of enterprise systems architecture/370 | |
| EP0327813A2 (en) | Information handling system |