JPH0661069B2 - コンピユータ・システム - Google Patents

コンピユータ・システム

Info

Publication number
JPH0661069B2
JPH0661069B2 JP63319664A JP31966488A JPH0661069B2 JP H0661069 B2 JPH0661069 B2 JP H0661069B2 JP 63319664 A JP63319664 A JP 63319664A JP 31966488 A JP31966488 A JP 31966488A JP H0661069 B2 JPH0661069 B2 JP H0661069B2
Authority
JP
Japan
Prior art keywords
program
entry
access
address
address space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63319664A
Other languages
English (en)
Other versions
JPH01228039A (ja
Inventor
リチヤード・イーウイン・バーム
テリイ・リイ・ボーデン
ジヤステイン・ラルフ・バツトウエル
カール・エドワード・クラーク
アレン・ジヨージ・ガネク
ジエームズ・ラム
マイケル・ジエラード・マール
デヴイド・リチヤード・ページ
ケネス・アーネスト・プラムベツク
キヤスパー・アンソニイ・スカルズイ
リチヤード・ジヨン・シヤマルズ
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH01228039A publication Critical patent/JPH01228039A/ja
Publication of JPH0661069B2 publication Critical patent/JPH0661069B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、データ処理システムで実行中のプログラムが
多重仮想アドレス空間への並行アクセスを有するように
そのプログラムに許可(authorization)を提供する多
重仮想システム(MVS)の許可機構に関する。特に、
本発明は、その許可が非階層的である、すなわち被呼出
しプログラムが呼出しプログラムに比べて同等かもしく
はより高い許可権を有しなくても良いような許可機構に
関する。
B.従来技術 多重仮想アドレス空間での仮想アドレス指定を利用する
データ処理システムはよく知られている。このようなシ
ステムの例として、MVS制御プログラミングを用いた
IBMシステム/370がある。IBMシステム/37
0の構成については“IBM System/370-XA Principles o
f Operation"(資料番号SA22−7085−1)に詳
しい。これに記載されているMVSシステムは、命令実
行、割込み処理、タイミング機能、初期プログラム・ロ
ーディングその他の機械関連機能のための順序づけ及び
処理機構を備えた中央処理装置(CPU)と、直接アド
レス指定可能でCPUによる高速データ処理を可能にす
る主記憶装置とを含んでいる。主記憶装置はCPUと一
体的に、または独立ユニットとして構成される。
機械中のレジスタにプログラム状況ワード(PSW)が
位置している。このワードは、命令の順序づけを制御し
たりCPUの状態を決めたりするために用いられる命令
アドレスその他の情報を含む。命令は、16個の汎用レ
ジスタのうちの1個以上における情報を指し示すことが
できる。これらのレジスタは、アドレス演算における基
底アドレス・レジスタ及び指標レジスタとして用いられ
たり、汎用演算論理動作におけるアキュムレータとして
用いられたりすることもある。それらの汎用レジスタ
は、番号0ないし15によって識別され、命令における
4ビット・レジスタ・フィールドによって指し示され
る。いくつかの命令は、数個のレジスタ・フィールドを
有することにより複数の汎用レジスタをアドレス指定す
ることを規定する。
CPUは、各々が32のビット位置を有する16個の制
御レジスタを備えている。制御レジスタにおけるビット
位置は、プログラム事象記録(PER)のようなシステ
ムにおける特定機能に割り当てられたり、動作を条件付
けるすなわち抑制するためまたはその機能に要求される
特別な情報を供給するために用いられたりする。
米国特許第RE27251号明細書は、メモリの物理的
ブロックに関連する4ビット・コード化記憶保護キーを
開示している。その保護キーは、データへのアクセスを
制御するために、プログラムに関連するPSWキーと比
較される。
米国特許第4096573号明細書及び同第41363
85号明細書もMVSシステムを開示している。それに
よれば、主記憶装置は複数のユーザにより使用されるア
ドレス空間として割り振られ、各アドレス空間はすべて
のユーザに共通の部分を含む。各ユーザは、プログラム
やデータを自身に割り当てられたアドレス空間の私用部
分に置いておくと、それらを他のユーザから分離するこ
とができ、共通部分におくと、他のユーザによるアクセ
スが可能となる。このようなシステムでは、2つのアド
レス空間の間でデータを移動することができる。その場
合、第1のアドレス空間にあるプログラムがデータをそ
の私用域から共通域へ移し、ついで第2のアドレス空間
にあるプログラムにデータを移動するよう知らせる。共
通域を複数のアドレス空間の間の連絡域として使用する
と、共通域の容量が増え、その分私用域の容量が減る。
あるプログラムから別の制御プログラムへの通知はサブ
システムあるいは制御プログラムだけがなし得る。デー
タは記憶保護キーにより保護されるが、その数は16し
かなく、共通にアドレス指定され得る情報を他のサブシ
ステムまたは許可されたプログラムによる不注意の書込
みから保護するのは不十分である。
米国特許第4355355号明細書は、汎用レジスタ
(GPR)に関連するアクセス・レジスタ(AR)を開
示している。ARにはアドレス空間識別子、たとえば一
意的なセグメント・テーブル記述子(STD)がロード
される。STDは、主記憶装置におけるセグメント・テ
ーブル・アドレスとセグメント・テーブル長フィールド
を含む。ARは所定数だけ設けられ、それぞれGPRと
関連づけられて、ARの数までのデータ・アドレス空間
のサブセットを定義する(各GPRについてのアドレス
空間の数が2以上になることはない)。プロセッサにお
いては、16個のARをそれぞれ16個のGPRに関連
づけることができる。AR中のアドレス空間識別子たと
えばSTDは、関連するGPRが記憶域オペランド・ベ
ース・レジスタとして選択される時、たとえばGPRが
IBMシステム/370命令のBフィールドによって選
択される時に、アドレス変換のために選択される。各A
Rは、関連するAR中のSTDを用いてそのデータ・ア
ドレス空間を定義する代わりに、プログラム・アドレス
空間AR中のSTDを用いるように指定することもでき
る。しかし、関連するGPRが記憶域オペランド・ベー
ス・レジスタ以外の目的、たとえばインデックス・レジ
スタまたはデータの転送元あるいは転送先レジスタとし
て選択されると、ARのアドレス空間識別子の内容たと
えばSTDはアドレス変換のためには選択されない。実
行プログラム・アドレス空間(データを含んでいてもよ
い)を定義し制御するのに16番目のARを設けること
ができる。
この米国特許に開示された発明は、また、実行中のプロ
グラムによって関連するアドレス空間へのアクセスが許
されるようなタイプのアクセスを制御するために、AR
制御ベクトル(ARCV)レジスタを各ARにも関連さ
せることにより、各プログラムの各アドレス空間へのア
クセスについての許可権を含んでいる。ARまたはその
関連するARCVにおける特別なフィールドによって、
そのARの内容が使用可能かどうかを指示することが可
能であり、そのためにそのフィールドは使用可能なアド
レス空間識別子を含む。あるいは、そのフィールドは、
そのアドレス空間識別子がどこかよそで得られなければ
ならないように使用禁止にされる。各ARと共にこの特
別なフィールドによって、使用禁止ARのGPRがもう
1つのARによって定められたアドレス空間に関連する
基数値を特定することができる。すなわち、使用禁止A
RのGPRが、AR0によって定められたプログラム・
アドレス空間におけるデータについての基底アドレスを
特定することができる。
米国特許第4430705号明細書は従来のMVSシス
テムの改良を開示している。二重アドレス空間(DA
S)システムが米国特許第4366537号明細書及び
同第4500952号明細書に開示されている。そのシ
ステムでは、異なるアドレス空間に関連する許可権テー
ブルによって許可されるなら、問題プログラムがその異
なるアドレス空間へのアドレス可能度を得ることができ
る。従来のMVSシステムに比べて、開示されたDAS
システムは、制御レジスタ、汎用レジスタ及びPSWを
使用する。PSWにおける1つのビットが、DAS動作
モードを指示するために割り当てられる。
DASは、準特権プログラムによって使用可能な一次ア
ドレス空間及び二次アドレス空間の2つのアドレス空間
を作る。情報を移動させるために3つの命令が付加され
る。MVCP命令は、データを二次アドレス空間から一
次アドレス空間へ移動させ、MVCS命令は、データを
一次アドレス空間から二次アドレス空間へ移動させ、そ
してMVCK命令は、データを同じアドレス空間におけ
る異なる記憶保護域間で移動させる。CPUを一次モー
ドにすることができる。このモードでは、命令及び論理
的であるように定義されたそのオペランド・アドレスが
一次アドレス空間を参照する。あるいは、CPUを二次
モードにすることができる。このモードでは、論理的で
あるように定義されたそのオペランド・アドレスが二次
アドレス空間を参照する。しかしながら、二次モードで
は、命令が一次アドレス空間から取り出されるかまたは
二次アドレス空間から取り出されるかは予想できない。
したがって、二次モードで実行されるプログラムは、ア
ドレス空間の共通部分に置かれる。この部分は、一次ア
ドレス空間と二次アドレス空間との間で共用される。
DASによって、許可権の種々のレベルで動作するプロ
グラムが監視プログラムを呼び込むことなく直接にリン
クされ得る。プログラム呼出し(PC)及びプログラム
移動(PT)の命令によって、制御の種々のレベルまた
は同じレベルで動作するプログラムの間で制御を移動す
るための保護機構が提供される。あるアドレス空間にお
けるプログラムから別のアドレス空間におけるプログラ
ムへのPC命令は、空間切替えを伴うプログラム呼出し
(PC−ss)動作と呼ばれる。空間切替えを伴わない
同じアドレス空間におけるプログラムへのPC命令は、
現一次に対するプログラム呼出し(PC−cp)動作と
呼ばれる。そのPC−cp及びPC−ssの両動作は、
特権及び許可権のよい高いレベルへの変更を考慮してい
る。戻り機能がPT命令によって実行される。この命令
は、現一次に対してであったり、または空間切替え動作
(PT−ss)を伴ったりすることがある。
制御の移動を達成するために、DASは数個のテーブル
を確立する。連係テーブルがプログラム呼出し動作によ
って使用のために確立される。連係テーブルの各エント
リは、エントリ・テーブル・アドレスを含む。そのエン
トリ・テーブル・アドレスにおいてエントリ・テーブル
が確立される。そのテーブルの各エントリは、呼び出さ
れることになっているプログラムについてのエントリ情
報を含む。各プログラム呼出し動作については、DAS
が、連係指標(LX)及びエントリ指標(EX)から成
るPC番号を作成する。LXによって連係テーブルへの
指定がなされ、エントリ・テーブル・アドレスを得る。
またEXによってそのアドレスにおけるエントリ・テー
ブルへの指定がなされ、被呼出しプログラムについての
エントリ情報を得る。エントリ・テーブル・エントリ・
データはアドレス空間番号(ASN)を含む。この番号
は、各プログラムのアドレス空間を識別するために用い
られる。
DASは、また、ASN第1テーブル及びASN第2テ
ーブルを確立する。これらのテーブルは、エントリ・テ
ーブルのエントリにおいて見出されたASN値を翻訳す
なわち交換するために用いられる。アドレス空間に割り
当てられるASNは、ASN第1テーブル指標(AF
X)及びASN第2テーブル指標(ASX)から成る。
AFXによってASN第1テーブルへの指定がなされ、
ASN第1テーブルのエントリが指し示される。このエ
ントリは、ASN第2テーブルの指定を含む。ASN第
1テーブルのエントリが有効なら、ASX値によってA
SN第2テーブルへの指定がなされる。このようにして
見出されたASN第2テーブルのエントリ(ASTE)
は、セグメント・テーブルの起点(STO)を含む。こ
の起点は、目標アドレス空間の実アドレスを決める動的
アドレス変換機構(DAT)によって用いられる。
制御レジスタ3におけるPSWキー・マスク(PKM)
のビットを、問題プログラム状態で用いて、どのキー及
びエントリ・ポイントがプログラムに対して許可される
のかを制御する。PKMは、プログラム呼出し(PC)
及びプログラム移動(PT)の命令によって変更され、
アドレス空間パラメータをロードする(LASP)命令
によってロードされる。PKMを問題プログラム状態で
用いて、PSWキー値を制御する。二次アクセス・キー
を特定するMVCP、MVCS及びMVCK命令に対し
て有効なPSWキー値を制御するために、そしてPC命
令によって呼び出すことができるエントリ・ポイントを
制御するために、準特権命令によってPSWにPSWキ
ー値を設定することができる。
プログラム呼出し(PC)命令では、PSWキー・マス
クがエントリ・テーブルのエントリにおける許可キー・
マスク(AKM)とAND演算される。その結果が非ゼ
ロなら、プログラムはPC命令を発行するのを許可され
る。エントリ・テーブルのエントリは、エントリ・キー
・マスク(EKM)を含む。このマスクは、追加キーを
含む。これらの追加キーに対して被呼出しプログラムは
許可される。PCルーチンが制御を受け取ったときに
は、EKMは制御レジスタ3のPKMへOR演算され
る。このようにして、PKMによって提供される許可権
を増大させることができる。
プログラム移動(PT)命令では、制御レジスタ3中の
PKMがPSWキー・マスクとAND演算される。この
PSWキー・マスクはオペランドとして特定される。そ
の演算結果が制御レジスタ3中のPKMに取って代わ
る。このようにして、PKMによって提供される許可権
を低減させることができる。
MVCP、MVCS及びMVCKの命令では、一次アド
レス空間へのアクセスがPC動作におけるPSWキーに
よって許可される。MVCP及びMVCS命令の場合に
は、二次空間をアクセスするのに用いられるべきアクセ
ス・キーをオペランドが特定する。問題プログラム状態
では、オペランドの二次空間アクセス・キーに対応する
制御レジスタ3中のPKMビットが1である場合にの
み、MVCPまたはMVCS動作が実行される。MVC
K命令の場合には、原始データ領域をアクセスするのに
用いられるべきアクセス・キーをオペランドが特定す
る。問題プログラム状態では、オペランドの原始データ
領域アクセス・キーに対応する制御レジスタ3中のPK
Mビットが1である場合にのみ、MVCK動作が実行さ
れる。
ASN許可は、許可指標(AX)を用いて特定のアドレ
ス空間を確立するために、現許可指標に関連したプログ
ラムが許されるかどうかをテストするプロセスである。
そのASN許可は、PT−ss動作の1部分としてまた
は空間切替えを伴う二次ASN設定(SSAR−ss)
動作として行なわれる。そのSSAR−ss動作は、二
次アドレス空間を所望アドレス空間に設定する。各アド
レス空間はその許可権テーブル(AT)と関連してい
る。この許可権テーブルは用いられるあらゆるAXに対
して1個のエントリを含む。ATにおけるAXのエント
リは、アドレス空間に対するPT及びSSAR命令を発
行するためにそのAXのもとで走っているプログラムの
許可権を指し示す。ASN許可には監視プログラム状態
プログラムと問題プログラムとの両方が必要である。そ
のATに対してチェックされるべきAXは制御レジスタ
4中に位置する。そして、そのアドレス空間についての
許可権テーブルの起点(ATO)は、目標アドレス空間
のASTE中に位置する。許可権テーブルの各エントリ
は、PビットとSビットの2個のビットから成る。AT
中のそのAXエントリに対応するAXを有するプログラ
ムは、その対応するPビットが1ならそのアドレス空間
をその一次アドレス空間として確立するために許される
し、またその対応するSビットが1ならそのアドレス空
間をその二次アドレス空間として確立するために許され
る。
DAS機能の使用にはいくつかの制限がある。MVCP
及びMVCSの命令は、データを一次アドレス空間と二
次アドレス空間との間で移動させることができるだけで
ある。DASは、一次アドレス空間または二次アドレス
空間でない2つのいずれかのアドレス空間の間でデータ
を移動させることはできない。アドレス空間で実行され
ているすべてのプログラムは、そのアドレス空間に関連
する許可指標を用いる。プログラムによる二次モードの
使用は、そのプログラムが共通領域に存在することを必
要とする。一次アドレス空間及び二次アドレス空間の両
方におけるデータをアクセスするために、一次モードと
二次モードとの間で頻繁に切替えを行なうことは、性能
を著しく低下させる。PC命令は階層型の連係のみを実
行する。監視プログラム状態のプログラムから問題プロ
グラム状態のプログラムへ制御を与えるためにPC命令
を用いるのは実用的でない。なぜなら、戻すためにPT
命令を用いることはできないからである。PC命令は、
その許可権を増大させることによりPSWキー・マスク
を替えることができるだけである。空間切替えPC命令
は、常に呼出しプログラムのアドレス空間に対する被呼
出しプログラムのアクセスを与える。最後に、PC命令
は、PSWキーを替えない。それで、取出し防止された
コードを呼び出すことはできない。
米国特許第4037214号明細書は、アクセス・キー
・レジスタ(AKR)にある複数のアクセス・キーが命
令アドレス、シンク・オペランド・アドレス及びソース
・オペランド・アドレスに基づいて記憶域アクセスのア
ドレス空間を切り替える水平アドレス指定システムを開
示している。
米国特許第4521846号明細書は、データを非特権
状態でアクセスできるクロスメモリ構成において複数の
仮想アドレス空間へのアクセスを制御するための別の機
構を開示している。
米国特許第3787813号明細書は、ケイパビリティ
・レジスタを用いたデータ処理装置を開示している。こ
のデータ処理装置は中央処理装置及び記憶装置を有し、
記憶装置中の情報はセグメント化され、中央処理装置に
設けられる複数のケイパビリティ・レジスタはそれぞれ
情報セグメントのベース・アドレス及び限界アドレスを
示す記述子情報を記憶する。ケイパビリティ・レジスタ
の1つは、中央処理装置で現在実行中のプログラムに関
連するセグメント・ポインタ・テーブルを含む情報セグ
メントのベース・アドレス及び限界アドレスを定義する
情報を保持し、別の1つは、記憶装置中の各情報セグメ
ントに対するエントリを有する主ケイパビリティ・テー
ブルを含む情報セグメントのベース・アドレス及び限界
アドレスを定義する情報を保持する。セグメント・ポイ
ンタ・テーブルは、主セグメント・テーブルの異なった
エントリを定義するためのポインタとして使用されるデ
ータ・ワードのリストを含む。
米国特許第4366536号明細書は、別々に記憶され
ていてアセンブリ・レベルのコマンドからなる複数のデ
ータ処理手順を選択して連係し、さらに複数の可変デー
タ域のうちの1つを選択するディジタル計算機システム
を開示している。このシステムは、データ処理手順、可
変データ域及び連係アドレスを記憶するメモリと、デー
タ処理手順を記憶しているメモリをアクセスするための
プログラム・カウンタと、データ及び連係アドレスを記
憶しているメモリをアクセスするためのレジスタと、選
択されたデータ処理手順に含まれるアセンブリ・レベル
のコマンドを実行中のデータ処理手順に含まれるアセン
ブリ・レベルのコマンド及び前に選択されたアドレスに
従って実行するハードウェア装置とを含む。
米国特許第4268903号明細書は、スタック域を制
御するためのスタック制御レジスタ・グループを開示し
ている。スタック機構中に形成されユーザ・プログラム
によって直接制御されるデータ・スタック域の開始アド
レスは、データ・スタック・ポインタ・レジスタに保持
される。
米国特許第4454580号明細書は、ある論理アドレ
ス空間にあるプログラムから新しい論理アドレス空間に
ある別のプログラムへ実行を移す方法を開示している。
呼出しプログラムは被呼出しプログラムに対する選択的
なセグメント割振りを制御し、被呼出しプログラムは割
り振られるセグメントの長さを制御する。したがって、
同じプログラムが繰り返し呼び出されても、他のプログ
ラム又は前の呼出しにおける同じプログラムの機能また
はデータは影響を受けない。また、データ・セグメント
の割振りを実行まで延ばすことができ、それにより、他
のプログラムの詳細を知らずに書かれたプログラムの実
行に融通性を持たせることができる。
米国特許第4297743号明細書は、それぞれが異な
った特権レベルを表わす複数のリングの階層構成を開示
している。特権レベルの低いリングへの分岐が許され、
特権レベルは読取専用状況については異なっていてもよ
いが、読取書込状況についてはそれは許されない。該特
許は3つの記憶域、すなわち変数を記憶するための作業
域、レジスタの内容を保管するための保管域、及び手順
間でパラメータを移動するための連絡域を有するスタッ
ク・フレームを教示する。ユーザは手順呼出しの前に、
保管すべきレジスタを指定しなければならず、また被呼
出し手順へ渡すべきパラメータを連絡域へロードしなけ
ればならない。システムは一連のスタック・フレームに
おいて呼出しを記録しており、それにより戻りが可能に
なる。
米国特許第4044334号明細書は、アドレス可能空
間の複数のセグメントのうちの1つでデータベース・レ
コードを見出すためのデータベース・ポインタを検索す
るシステムを開示している。
1982年1月刊のIBM Technical Disclosure Bulleti
n第24巻、第8号の4401〜4403頁に掲載され
ている“Method of Revoking a Capability Containing
a Pointer-Type Identifier without Accessing the C
apability”と題する論文は、アドレス空間番号(AS
N)をアドレス空間ケイパビリティのためのポインタ・
タイプ識別子として使用する技術を開示している。これ
は二重アドレス空間機構に関するものであり、アクセス
が有効かどうかはアドレス変換に関連するASN第2テ
ーブル・エントリ(ASTE)を用いて決定することが
できるので、アクセスの有効性を調べるためにアドレス
空間を設定してはならない。一般に、ケイパビリティに
よるオブジェクトへのアクセスは、ケイパビリティ中の
固有コードとオブジェクトが等しい場合にのみ許され
る。ケイパビリティは、それを見つけてアクセスする必
要なしに、単にオブジェクト中の固有コードを変えるだ
けで無効にすることができる。
C.発明が解決しようとする課題 本発明の目的は、プログラムに対してアドレス空間から
命令を取り出したり1つ以上の他のいずれかのアドレス
空間にオペランドを取り出す、すなわち記憶したりする
ことを許可するアーキテクチャを提供することである。
本発明の目的には、許可が所望すれば階層的にも非階層
的にもなり得るような許可機構を提供することが含まれ
る。
また、本発明の目的には、アドレス空間をアクセスする
能力が、プログラム呼出し順にすべてのプログラムに対
して与えられたり、許可の特定レベルのみを有するプロ
グラムに限定されたり、またはいくつかの異なる許可レ
ベルに対して許されたりするような非階層的許可機構を
提供することが含まれる。
さらに、本発明の目的には、ALETが呼出しプログラ
ムの一次アドレス空間、DUALまたはPSALを参照
するかどうかを決めるために、そしてそのような参照が
所与のEAXに対して許可されるかどうかを決めるため
に、アドレス空間の許可レベルをテストすることができ
るテスト動作を提供することが含まれる。
D.課題を解決するための手段 本発明の多重アドレス空間(MAS)ファシリティは、
16個の32ビット・アクセス・レジスタ0ないし15
を提供する。DATがオンでPSWビット16及び17
が2進の01であるときに結果として生じるアクセス・
レジスタ・モードでは、記憶域オペランドの論理アドレ
スを特定するのに用いられる命令のBまたはRフィール
ドが、汎用レジスタばかりでなくアクセス・レジスタを
も指し示す。その指し示された汎用レジスタが、記憶域
オペランドの論理アドレスを形成するために通常の方法
で用いられる。DATにより用いられるセグメント・テ
ーブル指定を特定してアドレス空間についての論理アド
レスを翻訳すなわち変換することにより、論理アドレス
が関係するアドレス空間を特定するために、その指し示
されたアクセス・レジスタが用いられる。アクセス・レ
ジスタ自身は、そのセグメント・テーブル指定を含まな
い。
アクセス・レジスタは、制御レジスタ1または7にそれ
ぞれ記憶されている一次または二次のセグメント・テー
ブル指定を特定することができるし、またはASTEに
含まれるセグメント・テーブル指定(STD)を特定す
ることができる。後者の場合には、アクセス・レジスタ
は、アクセス・リストと呼ばれるテーブル中のエントリ
をアクセス・リスト・エントリ・トークン(ALET)
によって指し示す。そして、指し示されたアクセス・リ
ストのエントリがそのASTEを指し示す。
アクセス・リストが、指名可能ユニット・アクセス・リ
スト(DUAL)または一次空間アクセス・リスト(P
SAL)であることもある。アクセス・リストは指名可
能なユニットまたは一次アドレス空間のいずれかに関連
しているが、そのリスト中の有効なエントリは、指名可
能なユニットの作業を行なうためにある順番に実行され
る種々のプログラムに関連するようになされている。ま
た、各プログラムが特定の許可権を有することができる
ようになされている。この許可権によって、そのプログ
ラムに関連しているアクセス・リストのエントリのみを
用いることが許される。その許可権は、制御レジスタ8
中の16ビット拡張許可指標(EAX)によって表わさ
れる。関係する許可機構において用いられる他の構成要
素は、アクセス・リストのエントリにおける私用ビッ
ト、アクセス・リストのエントリにおけるアクセス・リ
スト・エントリ許可指標(ALEAX)、そしてDAS
ファシリティにより提供される許可権テーブルのSビッ
トである。
アクセス・リストのエントリにおける私用ビット及びA
LEAXフィールドは、ALEによって表わされるアド
レス空間に対するプログラムのアクセスを許可したりま
たは禁止したりする高性能の許可機構を提供する。その
私用ビットが0となると、アクセス・リストを用いて実
行するすべてのプログラムがALEによって表わされる
アドレス空間をアクセスすることができる。また、その
ALE私用ビットが1となり、そして制御レジスタ8に
おけるユーザのEAXが、ALEAXフィールドに等し
くなると、特定のEAXを伴うプログラムはALEによ
って表わされるアドレス空間をアクセスすることができ
る。最後に、ALE私用ビットが1となり、そしてユー
ザの制御レジスタ8のEAXが、1に等しいSビットを
有する目標空間の許可権テーブルにおけるエントリを選
択すると、異なるEAXで走っている複数のプログラム
がALEによって表わされるアドレス空間をアクセスす
ることができる。
連係スタック機構は、任意の異なった許可権レベルで動
いているプログラムが制御プログラムの介入なしに直接
連係されるのを可能にする。呼出しプログラム及び被呼
出しプログラムのシーケンスにおける各プログラムの許
可権の程度は任意に異なっていてもよく、したがって非
階層的なプログラム構造を確立することができる。EA
X変更、PSWキー、PSWキー・マスク及び二次アド
レス空間の変更についての許可権に関するオプション
は、異なった許可権を異なったプログラムまたは同じ被
呼出しプログラムと関連づける手段を与える。各プログ
ラムの許可権は、制御プログラムによって管理されるエ
ントリ・テーブルで規定される。同じプログラムを異な
ったPC番号で呼び出せるようにエントリ・テーブルを
設定することにより、どのPC番号を呼出しに用いるか
に応じて異なった許可権をプログラムに割り当てること
ができる。エントリ・テーブルは、プログラムがどのP
C番号を用いて他のプログラムを呼び出せるかというこ
との制御も可能にする。
連係スタック機構によって提供されるスタッキング・プ
ログラム呼出し及びプログラム戻りの連係オペレーショ
ンは、異なったアドレス空間にあって異なったレベルの
許可権を持つプログラムを連係することができる。実行
状態ならびに汎用レジスタ及びアクセス・レジスタの内
容はスタッキング・プログラム呼出し命令の実行の間保
管され、プログラム戻り命令の実行の間に部分的に復元
される。連係スタックは、連係オペレーションにおいて
実行状態及びレジスタ内容の保管及び復元を効率的に行
なう手段を提供する。
E.実施例 本発明の多重アドレス空間(MAS)機構は、二重アド
レス空間(DAS)機構及びアクセス・レジスタ・シス
テムを改良したものである。MAS機構は、DAS機構
との互換性を有しかつそれに追加する形で動くように設
計されており、若干の変更及び改良はあるが、ほとんど
の部分でDAS機構のものと同じテーブル及びレジスタ
配置を使用する。アクセス・レジスタ変換(ART)シ
ステムは、ユーザがアクセス・レジスタ・システムを十
分に利用できるようにすると共に、機械のアドレス指定
機能をユーザから分離し保護する。ARTルックアサイ
ド・バッファ(ALB)の使用はARTの性能を高め
る。
サービス提供者(プログラム)は普通、ユーザに使用さ
せたいデータまたはプログラムを含むアドレス空間を1
以上所有する。サービス提供者は、プログラムにプログ
ラム呼出し(PC)番号を割り当てることによって、ユ
ーザに対してそれらのプログラムを使用可能にする。P
C番号割当て操作は、プログラム制御を移すためのリン
クを確立すること、サービス呼出し者(プログラム)に
必要とされる許可特性を指定すること、及びサービス提
供者のプログラムの許可特性を割り当てることを含む。
プログラム制御はあるアドレス空間から別のアドレス空
間へ移すことができ、また同じアドレス空間に留まって
いてもよい。いずれにしても、それに伴なって許可があ
るレベルから別のレベルへ変えられることがあり、その
結果、より大きな、より小さな、または異なった許可が
与えられる。サービス提供者は呼出し者のレベルとは異
なった許可レベルでランすることができ、それによりサ
ービス提供者ルーチンは呼出し者がアクセスできないア
ドレス空間にあるデータをアクセスすることができる。
ユーザ及びサービス提供者は、アクセス・リストにおい
て私用アドレス空間として指示されていないすべての空
間をアクセスすることができる。さらにサービス提供者
はユーザがアクセスできない選択されたアドレス空間を
アクセスすることができる。同様に、サービス提供者に
対し、ユーザがアクセスできる選択されたアドレス空間
へのアクセスを禁止することができる。
プログラム命令の実行は2つのオペレーションに分ける
と都合がよい。最初のオペレーションは、実行すべき命
令の取出しである。2番目のオペレーションはオペラン
ドのアドレス指定であり、命令実行中に処理されるデー
タを取り出したり記憶したりするために行なわれる。A
RモードのMASでは、命令は一次アドレス空間として
設定されたアドレス空間から取り出される。一次アドレ
ス空間の設定には空間切替え操作が必要な場合もある。
第1図は、本発明に従うアクセス・レジスタを用いてオ
ペランドをアドレス指定する様子を示している。動的ア
ドレス変換で使用するSTDを得るためにアクセス・レ
ジスタの内容を使用するプロセスをアクセス・レジスタ
変換(ART)オペレーションと呼び、第1図では参照
番号10で示されている。命令12は、OPコード、ベ
ース・アドレスを含む汎用レジスタ14を指定するBフ
ィールド、及び加算器15で汎用レジスタ14のベース
・アドレスと組み合わされて記憶域オペランドの論理ア
ドレスを生成する変位Dを含んでいる。アクセス・レジ
スタ・モードにおいては、BフィールドはALETを含
むアクセス・レジスタ16も指定する。ALETは、A
RT10で変換されると、データを記憶するアドレス空
間に対するSTDを与える。ART10からのSTDは
加算器15からの論理アドレスと組み合わせることがで
き、動的アドレス変換(DAT)18で一緒に変換され
ると、システムによって使用されるオペランドの実アド
レスが生成される。命令12は、図示のBフィールド及
び変位Dの他に、記憶域オペランドの論理アドレスを含
む汎用レジスタを指定するRフィールドを含んでいても
よい。
本発明に従うアクセス・レジスタの使用は、次の移動
(MVC)命令で説明することもできる。
MVC 0(L,1),0(2) この命令は、長さLの第2オペランドを第1オペランド
記憶位置に移動する。第2オペランドの論理アドレスは
汎用レジスタ2にあり、第1オペランド記憶位置の論理
アドレスは汎用レジスタ1にある。第2オペランドを含
むアドレス空間はアクセス・レジスタ2にあるALET
により指定され、第1オペランドのアドレス空間はアク
セス・レジスタ1にあるALETにより指定される、こ
れら2つのアドレス空間は異なっていてもよく、また現
命令のアドレス空間と異なっていてもよい。
ALETを用いた実アドレスへの変換の概要を第2図に
示す。20は0番から15番までの汎用レジスタのアレ
イを示す。22は同じく0番から15番までのアクセス
・レジスタのアレイを示し、各アクセス・レジスタはア
レイ20の対応する汎用レジスタと対になっている。A
LET中のアクセス・リスト・エントリ番号(ALE
N)がアクセス・リスト24または25の1つのエント
リを選択する。アクセス・リスト24はDUAL(指名
可能ユニット・アクセス・リスト)であり、アクセス・
リスト25はPSAL(一次空間アクセス・リスト)で
ある。第2図の例では、アクセス・レジスタ2のALE
Nは、PSAL25のエントリ3を指し示す。DUAL
24の起点は指名可能ユニット・アクセス・リスト記述
子(DUALD)26により指定され、PSAL25の
起点は一次空間アクセス・リスト記述子(PSALD)
27により指定される。あとで述べるように、DUAL
D26は制御レジスタ2(CR2)にあるエントリを解
読することにより見い出され、PSALD27は制御レ
ジスタ5(CR5)にあるエントリを解読することによ
り見い出される。ARTで使用するアクセス・リスト記
述子は有効アクセス・リスト記述子(ALD)として知
られている。
アクセス・リストの各エントリは、ASN第2テーブル
・エントリ(ASTE)98を指し示すASTEアドレ
スを含むが、ASTEはASN第2テーブル(AST)
30にあることもないこともある。実際にAST30に
入っているものとはまったく独立に、ARTのためにA
STEを生成してその機能を遂行させることができる。
ただし、PCで使用されるASTEはAST30になけ
ればならない。各ASTEはDAS機構で使用されるも
のと同様であり、DAT18で実アドレスを決定するた
めのSTD値を含む。
プログラムに対しては、それぞれが異なったケイパビリ
ティ定義域を表わす2つのアクセス・リストが同時に使
用可能である。一方のアクセス・リストは指名可能ユニ
ット・アクセス・リスト(DUAL)と呼ばれ、他方は
一次空間アクセス・リスト(PSAL)と呼ばれる。A
LETのALENがいずれのアクセス・リストのエント
リを指し示しているかは、ALET中の1ビットにより
指定される。プログラムは、アクセス・リスト24及び
25の各エントリを使用することができる。
DUAL定義域は、指名可能ユニット(タスクまたはプ
ロセス)により実行されるプログラムのために永続的に
指名可能ユニットと関連づけられる。システムの指名可
能ユニットごとに固有のDUALがある。DUALは、
たとえ関連する指名可能ユニットが多くの異なったアド
レス空間にあるプログラムを実行できるとしても、変わ
ることはない。PSAL定義域は一次アドレス空間と関
連づけられる。一次アドレス空間で実行されるすべての
プログラムは、そのアドレス空間のPSALを共用す
る。これにより、一次アドレス空間で実行されるプログ
ラムは、共通の一組のアドレス空間へのアクセスを共用
することができる。一次アドレス空間がたとえば空間切
替えPCオペレーションによって変わると、PSALも
変わる。有効ALETを所有するユーザはDUAL24
またはPSAL25のアクセス・リスト・エントリをア
クセスできる。アクセスされたエントリは所望のアドレ
ス空間を指定する。ALET及び選択された制御レジス
タを用いて同様に制御される他の定義域を設けることも
可能である。たとえば、システムにおけるすべてのプロ
グラムのケイパビリティを有するシステム・ワイド・ア
クセス・リスト(SWAL)を生成することができる。
既存の機構をさらに改良するため、SASN定義域アク
セス・リスト(SSAL)のごとき種々の定義域のサブ
セットを構成することもできる。
ARモードにおいては、ALETが一次アドレス空間及
び二次アドレス空間にあるオペランドをそれぞれアクセ
スするように予約されているので、DUAL24のエン
トリ0及び1は使用されない。CPUのアドレス指定モ
ードは、後述のように、PSW中のビットによって指定
される。CPUがARアドレス指定モードにあれば、0
(X′00000000′)のALETは常に一次アド
レス空間を示し、1(X′00000001′)のAL
ETは常に二次アドレス空間を示す。第2図のブロック
28はこれらの特別なALETを識別し、DAT18へ
のPASN及びSASNに対する正しいSTDを与え
る。CPUがホーム・アドレス指定モードにあれば、ホ
ーム・アドレス空間が実行すべき命令及びデータのソー
スである。ホーム・アドレス空間は、実行中のプログラ
ムに対する監視プログラム制御情報を有するアドレス空
間として定義される。オペレーティング・システムは、
データ・アクセスの目的で各ホーム空間に対して2
(X′00000002′)のALENを割り当て、ホ
ーム空間のためのSTDはARTによって得られる。第
2図のブロック28に示されるように、ALENが0に
等しいなら、STDが制御レジスタ1から得られるし、
ALENが1に等しいなら、STDが制御レジスタ7か
ら得られる。一次アドレス空間及び二次アドレス空間に
対するSTD値はそれぞれ制御レジスタ1及び7に保持
されるので(第3図参照)、アクセス・リスト・エント
リ0及び1は使用されない。第2図の例では、PSAL
25のエントリ0、1及び2は使用されず、無効エント
リとしてマークされる。
ARTルックアサイド・バッファ(ALB)199は、
ARTから生ずるSTDを保持するため、ARアレイ2
2、PSAL25及びAST30からの入力を受け取り
保管する。ALB199はアクセス・リスト記述子DU
ALDまたはPSALDも保持する。同じALETが再
び使用される場合、ALB199は正しい出力を直接D
AT18へ供給し、ARTを繰り返す必要はない。
命令実行中のプログラムの制御及びCPUの状態に関す
る情報を与える制御レジスタ及びPSWをそれぞれ第3
図及び第4図に示す。
第3図は、本発明のMAS機構に関係する制御レジスタ
0〜15の内容を示している。これらの内容の多くは公
知のDAS機構のものと同じであり、したがって、以下
では主としてMAS機構のためになされた変更個所につ
いて述べることにする。
制御レジスタ0のビット15(M)が1であれば、CP
UがMASモードで動作していること、及び制御プログ
ラムがMASをサポートすることを示す。MAS機構
は、エントリ・テーブル・エントリ・ASN第2テーブ
ル・エントリ、連係スタックの使用可能性、及びアクセ
ス・レジスタ・モードに入る能力について新しいフォー
マットを使用する。制御レジスタ1は一次セグメント・
テーブル記述子(PSTD)を含む。そのビット1〜1
9は一次セグメント・テーブル起点(PSTO)を指定
し、ビット25〜31は一次セグメント・テーブル長
(PSTL)を指定する。制御レジスタ2のビット1〜
25は、後述のように、DUALDを見つけるためにM
AS機構によって使用される指名可能ユニット制御テー
ブル起点(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)
を指定するホーム・セグメント・テーブル記述子(HS
TD)を含む。制御レジスタ15のビット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はD
UALを参照する。ビット16〜31はALENを含
む。ALENを16倍すると、その積は、有効アクセス
・リストの開始点から指定されたアクセス・リスト・エ
ントリまでのバイト数に等しい。ARTの間にもしAL
ENが有効アクセス・リスト外のエントリを指定する
か、またはALETの左から7ビット(ビット0〜6)
がオールゼロでなければ、例外が認識される。ALEN
が有効ALDのアクセス・リスト長(ALL)によって
決定されるアクセス・リストの終わりを越えたアドレス
を指し示していると、アクセス・リスト・エントリは有
効アクセス・リストの外にある。ALLについては第1
4図を参照されたい。ALETがX′0000000
0′または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のALE
SNと比較される。ALEのビット65〜89は、関連
するアドレス空間の対応するASTEアドレスを含む。
ALEのビット96〜126は、後述のASTEエント
リに関する有効性検査で使用されるASTE順序番号
(ASTESN)を含む。
第2図に示したアクセス・リスト24及び25のエント
リは、問題プログラムによる直接操作から保護するた
め、制御プログラムによって与えられる。その保護は、
キー制御型の保護、またはアクセス・リストを問題プロ
グラムがDATでアクセスできない実記憶域に置くこと
により実現できる。ALEが有効か無効かはビット0に
よって示される。有効ALEは、適切に許可されたプロ
グラムがアクセスできるアドレス空間を指定する。無効
ALEは、割振り又は再割振りの場合は有効エントリと
して使用できる。制御プログラムは、有効ALEを割り
振ったり、以前に割り振ったALEを無効にしたりする
サービスを提供する。
ALEの割振りは次のようなステップで行なわれれる。
まず、問題プログラムが、アドレス空間の識別子及びD
UAL24またはPSAL25を指定する標識、すなわ
ちALETの一次リスト・ビット7を制御プログラムに
渡す。制御プログラムはこれに応答して、問題プログラ
ムがアドレス空間のアクセスを許されているかどうかを
検査する。もし許されていると、制御プログラムは指定
されたアクセス・リストから無効エントリを1つ選択
し、それを有効エントリに変え、その中にASTEアド
レス及びASTESNを含ませることにより当該アドレ
ス空間を指定し、割り振られたALEを指定するALE
Tの値を問題プログラムに戻す。かくして、問題プログ
ラムは新しいALETをアクセス・レジスタに置くこと
により、アドレス空間をアクセスできるようになる。割
り振られたALEはあとで制御プログラムの無効化サー
ビスにより、無効にされることがある。
無効にされたALEが再割振りされる場合、前の割振り
で指定されたアドレス空間とは別のアドレス空間が指定
される。ユーザが概念的に正しくないアドレス空間を指
定するALETを誤って使用するのを避けるために、A
LET及びALEの両方にALESNが保持される。制
御プログラムは、ALEを割り振る時、同じALESN
をALE及び指定されたALETの両方に置き、ALE
Tを問題プログラムに戻す。ALEを再割振りする時
は、制御プログラムは再割振りされるALEの中のAL
ESNの値を変え、それが前に指定されたALET中の
ALESNの値と一致しないようにする。
ALEのASTESNについては、あとでASTEに関
連してさらに詳しく説明するが、ここで重要なのは、A
LE及びASTEに含まれるASTESNの値を比較す
ることによって、ASTEの指定に関するALEの権限
が確認されるということである。かくして、ASTEの
再割当てが可能になり、このASTEを参照していたす
べてのALEを調べる必要なしに、異なったASTES
Nを割り当ててその使用を制御することができる。AS
TESNの使用により、制御プログラムは、ASTEを
使用することができたすべてのプログラムまたは指名可
能ユニットを保持する必要はない。かくして、ASTE
SNを変えることでアクセス権限を変えることができ、
適切なASTESNなしにASTEを使用しようとする
と、例外又は割込みが生じる。これにより、オペレーテ
ィング・システムは、ASTESNの変更前にALEで
許可されたケイパビリティでASTEをアクセスしよう
とする試みを知ることができる。かくして、オペレーテ
ィング・システムは、新しいあるいは異なった空間のた
めにASTEを安全に再使用する、または既存の空間を
使用するためその空間の現アクセス者の権限を有効化す
る機構を有する。
第7図、第8図及び第10図はそれぞれ連係テーブル、
エントリ・テーブル及び連係スタックのエントリのフォ
ーマットを示している。これらのテーブルは、同じまた
は異なったアドレス空間にあるプログラムの間で制御を
移すために連係を確立するためにMASファシリティに
よって使用される。
前述のように、PC番号は、システムによって呼び込ま
れかつサービス提供者によって構成される特定のPCル
ーチンを識別する。PCルーチンを提供する各サービス
提供者は、自身のルーチンを定義するための1以上のエ
ントリ・テーブルを所有する。エントリ・テーブルは、
PCルーチンへのアクセスを要求するアドレス空間の連
係テーブルに接続される。エントリ・テーブルの各エン
トリは1つのPCルーチンを定義し、その入口点及び動
作特性を含むと共に、PC命令がスタッキングPCかど
うかも示す。第7図は連係テーブル・エントリ(LE
T)のフォーマットを示したもので、無効ビット
(I)、エントリ・テーブル起点(ETO)及びエント
リ・テーブル長(ETL)を含み、これらによりエント
リ・テーブル記述子が定義される。
第8図は第7図の連係テーブル・エントリにより指し示
されるエントリ・テーブルのエントリのフォーマットを
示している。エントリ・テーブル・エントリのビット0
〜15は許可キー・マスク(AKM)を含み、これは、
PC命令を出したプログラムが問題状態においてこのエ
ントリ点を呼び出すことを許されているかどうかを検査
するのに用いられる。ビット16〜31は、PC−ss
及びPC−cpのいずれが生じるかを示すエントリ・ア
ドレス空間番号(EASN)を含む。EASNがオール
ゼロであれば、PC−cpが指定され、さもなければP
C−ssが指定される。後者の場合、EASNは一次A
SN(PASN)を置き換えるアドレス空間番号(AS
N)を識別する。ビット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であれば、ビット3
6〜139のエントリ・キー(EK)がスタッキングP
CオペレーションでPSW中のPSWキーを置き換える
ことを示す。このKビットが0であれば、PSWキーは
変更されない。ビット132はPSWキー・マスク制御
ビット(M)であり、これが1であれば、EKMがスタ
ッキングPCオペレーションで汎用レジスタ3にあるP
SWキー・マスクを置き換えることを示す。Mビットが
0であればEKMはスタッキングPCオペレーションで
制御レジスタ3にあるPSWキー・マスクとオア結合さ
れる。ビット133は拡張許可指標制御ビット(E)で
あり、これが1であれば、ビット144〜159のエン
トリEAXがスタッキングンPCオペレーションで制御
レジスタ8にある現EAXを置き換えることを示す。E
ビットが0であれば、制御レジスタ8にある現EAXは
変更されない。ビット134はアドレス空間制御ビット
(C)であり、これが1であれば、現PSWのビット1
7がスタッキング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であれば、新しい二次アドレス空間番号(SAS
N)及びSSTDは、呼出しプログラムの古い一次アド
レス空間番号(PASN)及びPSTDにそれぞれ等し
く設定される。EASNがオールゼロでなければ、ビッ
ト161〜185のASTEアドレスはその右側に6個
のゼロを付加されて、EASNのASN変換を適用した
結果の実ASTEアドレスを形成する。かくして、エン
トリ・テーブル・エントリ中のEASN及びASTEア
ドレスがSTDを含むAST30のエントリを指し示す
ことがわかる。EASNのAN変換がASTEアドレス
を得るために遂行されるかどうか、あるいはビット16
1〜185のASTEアドレスがその指定されたAST
Eを見つけるのに使用されるかどうかは予測できない。
CPUは性能改善のために、ビット161〜185のA
STEアドレスを用いてその指定されたASTEを見つ
けることができる。
第9図は、指名可能ユニットごとに制御プログラムによ
って作成され得る連係スタック35を示している。この
連係スタックは、スタッキング・オペレーションの間、
実行状態と汎用レジスタ及びアクセス・レジスタの内容
とを保管するのに用いる。連係スタックは、戻りオペレ
ーションの間に保管内容の一部を復元するのにも使用さ
れる。連係スタックは仮想記憶域にあり、関連する指名
可能ユニットのためのホーム・アドレス空間に置かれ
る。第3図の制御レジスタに関連して説明したように、
ホーム・アドレス空間は制御レジスタ13のHSTDに
よって指定される。これは連係スタック情報を保護し、
ユーザ・アドレス空間で障害が発した場合に連係スタッ
ク情報の回復を可能にする。
連係スタックは問題状態プログラムからは保護されてお
り、それらのプログラムは、特別の抽出及び修正命令に
よる場合を除いて、連係スタックに保管されている情報
を調べたり修正したりすることはできない。連係スタッ
ク35は、正方向ポインタ及び逆方向ポインタによって
連鎖される複数の連係スタック・セクション36、37
及び38からなっていてもよい。
連係スタックには3種類のエントリ、すなわち逆方向ポ
インタを有する見出しエントリ40、正方向ポインタを
有する後書きエントリ42、及び状態エントリ43(連
係スタック・セクション36参照)がある。見出しエン
トリ及び後書きエントリはそれぞれ連係スタック・セク
ションの始め及び終りにあり、連結スタック・セクショ
ンを連鎖するのに使用される。見出しエントリ及び後書
きエントリは制御プログラムにより作成され、スタッキ
ング・オペレーションで実行状態及びレジスタ内容を保
管すべく状態エントリが付加される。制御レジスタ15
にある連係スタック・エントリ・アドレスは現状態エン
トリ44を指し示すか、またはセクション中の最後の状
態エントリが除去されていると現セクションの見出しエ
ントリを指し示す。
第10図は連係スタック状態エントリの内容を示したも
ので、スタッキングPC命令の場合、汎用レジスタの内
容(GRs)、アクセス・レジスタの内容(ARs)、
PSWキー・マスク(PKM)、二次アドレス空間番号
(SASN)、制御レジスタ8からのEAX、一次アド
レス空間番号(PASN)、及びPSWの内容を含む。
これらはすべてスタッキング命令の開始時のものであ
る。さらに、使用されるPC番号も含まれる。後述する
ブランチ・スタック命令の場合は、PC番号の代りにア
ドレス指定モード・ビット及びブランチ・アドレスが保
管される。
連係スタック・エントリはいずれのタイプも8バイトの
倍数の長さを有する。見出しエンリ及び後書きエントリ
はそれぞれ16バイトである。状態エントリは168バ
イトである(第10図の下側の数字はバイト番号を示し
ている)。いずれのタイプもその終りに8バイトのエン
トリ記述子(第10図の連係スタック状態エントリの4
6参照)を有する。
エントリ記述子のビット0はアンスタック抑止ビット
(U)である。見出しエントリまたは状態エントリのエ
ントリ記述子においてビットUが1であれば、プログラ
ム戻りでのアンスタッキング・プロセスの間にスタック
・オペレーション例外が認識される。状態エントリがス
タッキング・プロセスの間に作成される時、そのエント
リ記述子のビットUは0にセットされる。
エントリ記述子のビット1〜7はエントリ・タイプ(E
T)・コードで、当該エントリ記述子を含む連係スタッ
ク・エントリのタイプを指定する。ETコードには次の
4種類がある。
0000001 見出しエントリ 0000010 後書きエントリ 0000100 ブランチ状態エントリ 0000101 プログラム呼出し状態エントリ エントリ記述子のビット8〜15は制御プログラムによ
って与えられるセクション識別子(SI)である。スタ
ッキング・プロセスで作成されるエントリでは、プロセ
スはSIを先行の連係スタック・エントリのSIに等し
く設定する。エントリ記述子のビット16〜31は、当
該エントリの終りから同じ連係スタック・セション中の
後書きエントリの始めまでのバイト数を指定する残余自
由空間(RFS)フィールドを形成する。エントリ記述
子のビット32〜47は、同じ連係スタック・セクショ
ンにおける次の連係スタック・エントリ(後書きエント
リを除く)のサイズをバイトで指定する次エントリ・サ
イズ(NES)フィールドを形成する。
スタッキッグ・プロセスの間に連係スタックで新しい状
態エントリを作成する場合、現連係スタック・セクショ
ンが新しいエントリを含むのに十分な自由空間を持って
いると、新しいエントリは現連係スタック・エントリの
エントリ記述子の直後に置かれる。現セクションに十分
な自由空間がなくても、現セクションの後に別のセクシ
ョンがあることを現セクションの後書きエントリが示し
ていると、その後続セクションに十分な残余自由空間が
あれば、新しいエントリは後続セクションの見出しエン
トリのエントリ記述子の直後に置かれる。後続セクショ
ンがないことを後書きエントリが示していると、例外が
認識され、プログラム割込みが起こる。この場合、制御
プログラムが別のセクションを割り振り、それを現セク
ションに連鎖して、スタッキング・オペレーションを再
実行させる。後続セクションがあっても、その中に十分
な自由空間がなければ、例外が認識される。
スタッキング・オペレーションで新しい状態エントリ4
4がうまく作成されると、制御レジスタ15にある連係
スタック・エントリ・アドレスは、新しいエントリのエ
ントリ記述子の一番左のバイトを指定するように更新さ
れ、かくしてこのエントリが新しい現連係スタック・エ
ントリになる。スタッキング・プロセスで状態エントリ
を作成する場合、そのNESフィールドにはゼロが置か
れ、作成された状態エントリの長さは先行エントリのN
ESフィールドに置かれる。戻りオペレーションでは、
汎用レジスタ及びアクセス・レジスタの内容、ならびに
制御レジスタの種々の内容が連係スタック状態エントリ
44から復元され、制御レジスタ15にある連係スタッ
ク・エントリ・アドレスは前の連係スタック・エントリ
を指し示すように変更される。状態エントリが戻りオペ
レーションのアンスタッキング・プロセスの間に論理的
に削除されると、先行エントリのNESフィールドにゼ
ロが置かれる。
上述から明らかなように、連係スタックを使用すると、
プログラム制御が戻り命令によって被呼出しプログラム
から戻される時、呼出しプログラムの動作環境及び許可
レベルを復帰させることができる。連係オペレーション
は開始点まで遡れると共に、無効な変更が生じないよう
ユーザに強要する。
制御プログラムは、プログラムを含む各アドレス空間に
対してアドレス空間番号(ASN)を割り当てる。DA
S機構に関連して述べたように、ASNはPC−ssオ
ペレーションの間に変換されることがある。しかし、A
STEアドレスがETEにあるので(第8図参照)、P
C−ssオペレーションにおいて、ASTEへのアクセ
スをSN変換なしにETEを用いて直接行なうことがで
きる。制御プログラムは、アドレス空間に関連するAS
TEにポインタを置くことによって、STD、AT及び
連係テーブルを各ASNと関連づける。それらのアドレ
ス空間にあるデータも、ASTEを指し示すアクセス・
リスト・エントリを制御プログラムに作成させることに
より、アクセスすることができる。アドレス空間によっ
てはデータしか含まないものもある。MASファシリテ
ィのケイパビリティがそのようなアドレス空間の作成を
定める。そのようなアドレス空間はASNを持たない。
データだけの空間の場合は、ASTE、STD、AT及
びALEだけが使用される。
第11図及び第12図はそれぞれASN第1テーブル及
びASN第2テーブルのエントのフォーマットを示した
ものであるが、これらは前述のDAS機構のものときわ
めてよく似ている。第11図及び第12図の各エントリ
は1つのアドレス空間を表わし、そのアドレス空間への
連係及びアドレス可能性を与えるべく制御プログラムに
よって設定される。
第12図はASTEのフォーマットを示している。AS
TEのビット0は、ASTEが無効かどうかを示す無効
ビットである。許可権テーブル起点(ATO)及び許可
権テーブル長(ATL)は、関連する許可権テーブルの
許可権テーブル記述子(ATD)を示す。ビット96〜
127は関連する関係テーブル記述子(LTD)を含
み、ビット128〜159は関連するアクセス・リスト
記述子(ALD)を含む。ビット160〜191はAS
TE順序番号(ASTESN)を含む。ASTEは、制
御プログラムによるアドレス空間の作成及び削除に伴な
って再割り振りされることがあるので、新しく作成され
た各ASTEは新しい固有のASTSNを割り当てられ
る。ARTオペレーションを実行する時、ASTEが異
なったアドレス空間または異なった権限に対して安全に
再使用できるように、有効性検査として、アクセス・リ
スト中のASTESNとASTE中のASTESNが比
較される。
第13図は、各ASTEに関連する許可権テーブルを示
している。DAS機構と同じく、各許可権テーブル・エ
ントリはPビット及びSビットを1つずつ持っている。
許可権テーブルのエントリは、関連するアドレス空間を
アクセスするために、使用されているEAXの各値に対
して許可権テーブルに1つのエントリが存在するように
指標づけされる。後述のように、制御レジスタ8(CR
8)にあるEAXの値に対応する許可権テーブル・エン
トリを用いて、プログラムがASTEに関連するアドレ
ス空間のアクセスを許されているかどうかを調べること
ができる。
第14図は、制御レジスタ2にアドレスが保持されてい
る指名可能ユニット制御テーブル(DUCT)のフォー
マットを示している。DUCTのナイト16〜19は指
名可能ユニット・アクセス・リスト記述子(DUAL
D)を含む。DUCTの他のバイトはMAS機構では使
用されないので、説明は省略する。
プログラム呼出し(PC)命令は、MASファシリティ
における連係機構の機能を上げるべく改善された。PC
命令が出された時、ETE(第8図)のTビット、すな
わちビット128が1であれば、スタッキングPCオペ
レーションが実行される。スタッキングPCは、エント
リ・テーブル・エントリ中の許可キー・マスクにより、
エントリ・テーブルから入ることを許される。時に、空
間切替えを伴なうスタッキングPCは、(新しいプログ
ラムに関連する)新しいEAXを制御レジスタ8に置く
ことがある。スタッキングPCは、汎用レジスタ0〜1
5の内容、アクセス・レジスタ0〜15の内容、更新さ
れた命令アドレス(戻りアドレス)を含む完全なPS
W、PASN、SASN、PKM、EAX、エントリが
プログラム呼出しによって作成されたことを示す標識、
及び2ワード分の修正可能域をエントリに保管する。M
ASファシリティは、連係スタックの最後の状態エント
リにおける情報を取り出してそのエントリにおける修正
可能領域の内容を修正するための命令を含む。修正可能
域の目的は、プログラムの障害が生じた時に適切な回復
動作がとれるように、プログラムの進行状況を記録でき
るようにすることにある。
連係機能を改善するため2つの新しい命令、すなわちブ
ランチ・スタック及びプログラム戻りが追加された。
ブランチ・スタック命令はPSW中の命令アドレスを変
更し、第9図の連係スタックにブランチ状態エントリと
呼ばれる状態エントリを作成する。ブランチ状態エント
リは、ブランチ・スタック命令により作成されかつPC
番号の代わりにブランチ・アドレスを含むということを
除くと、プログラム呼出し状態エントリと同じである。
ブランチ・スタック命令は、呼出しプログラムの中、ま
たは被呼出しプログラムの入口点(もしくはその近く)
で使用することができる。入口点でのブランチ・スタッ
ク命令は、古い呼出しプログラムを変更することなく連
係スタックを使用することを可能にする。
プログラム戻り命令は、スタッキングPC命令またはブ
ランチ・スタック命令によって制御権を与えられたプロ
グラムから戻るのに用いられる。プログラム戻り命令は
最後の連係スタック状態エントリを論理的に削除する。
このエントリはプログラム呼出し状態エントリでもブラ
ンチ状態エントリでもよい。最後の状態エントリがプロ
グラム呼出し状態エントリであれば、プログラム戻り命
令は、エントリ中に保管されていたすべての状態情報な
らびに汎用レジスタ2〜14及びアクセス・レジスタ2
〜14の内容を復元する。0番、1番及び15番の汎用
レジスタ及びアクセス・レジスタは、プログラム戻り命
令によっては変更されない。最後の状態エントリがブラ
ンチ状態エントリであれば、プログラム戻り命令は、完
全なPSW(PERマスク・ビットRを除く)ならびに
汎用レジスタ2〜14及びアクセス・レジスタ2〜14
の内容だけを復元する。呼び出されたプログラムが実行
されていた間に発生したかもしれないPERの使用可能
状態または使用禁止状態を妨げることのないように、P
ERマスク・ビットR(第4図参照)はプログラム戻り
オペレーションによっては復元されない。スタッキング
・プログラム呼出し及びプログラム戻りの組合せは、非
階層的なプログラム連係、すなわちある範囲の権限を持
ったプログラムから、より小さい、より大きいまたはま
ったく異なる権限を持ったプログラムへの連係を可能に
する。
第15図、第16図及び第17図は、スタッキングPC
オペレーションを実行するのに必要なステップの論理フ
ローを示している。この論理フローは、DASのプログ
ラム呼出し命令の実行にも使用できる。図面中の説明
は、種々の値が数学的にどのように操作されてアドレス
を生成するかを述べている。第3図に戻って、制御レジ
スタ0のビット15(CR0.15)が0であれば、E
TEは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の場合と同様に、
LX51及びEX52からなるPC番号を指定する。L
X51は、加算操作54により連係テーブル起点(LT
O)53と結合され、連係テーブル・エントリ55の実
アドレスを生成する。EX52は、加算操作56により
連係テーブル・エントリ55のエトリ・テーブル起点
(ETO)と結合され、エントリ・テーブルにおけるエ
ントリ・テーブル・エントリ(ETE)57の実アドレ
スを生成する。
第16図は、現一次に対するスタッキング・プログラム
呼出し(PC−cp)及び空間切替えを伴なうスタッキ
ング・プログラム呼出し(PC−ss)を実行するため
に第15図から続く論理フローを示している。前述のよ
うに、ETE57のTビット60が1であれば、スタッ
キング・オペレーションが実行される。まず、AKM6
2の値が、問題状態におけるプログラム呼出し命令の実
行前に制御レジスタ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は新しいP
ASNによって置き換えられ、制御レジスタ7のSST
Dは新しいPSTDによって置き換えられる。これらの
オペレーションの後、ETE57のASNが83でテス
トされる。ASNが0であれば、PC−cpオペレーシ
ョンの実行が完了したことを示す。しかし、ASNが0
でなければ、PC−ssオペレーションが実行され、宛
先空間に対するASTEが得られる。
プログラム呼出しは、次の命令の保護されたコードを取
り出すために、PSWキー74をEKで変更することも
できる(Kビット=1)。
制御レジスタ8にあるEAXを変更することにより(7
5参照)、指名可能ユニットの作業を行なうように実行
される各プログラムに対して、DUAL及びPSALに
あるALEを使用する許可を異なった形で与えることが
できる。制御レジスタ8のEAX75は、スタッキング
・プログラム呼出しによってEEAXに等しく設定する
ことができる(Eビット=1)。元のEAXは、プログ
ラム戻りによって連係スタックから復元される。かくし
て、各プログラムはプログラムの呼出しに使用されるE
TEで指定された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′00000
001′の使用によって自動的に呼出しプログラムの一
次アドレス空間のアクセス権を持つようになるのを阻止
できる(アクセス権はALEまたはDASの二次ASN
設定命令で得ることができる)。これは、被呼出しプロ
グラムのアクセス権を呼出しプログラムのものより小さ
くする別の方法である。一方、新しいSASN79及び
新しいSSTD81がそれぞれ古いPASN69及び古
いPSTD80に等しく設定されることもある(Sビッ
ト=0)。
第17図は、ASN変換のステップの論理フローを示し
ている。DAS機構と同じく、プログラムを含む各アド
レス空間はASNを割り当てられ、その値は対応するE
TE57の90のところに書き込まれる。ASN90は
2つの数値AFX91及びASX92からなる。これも
DAS機構と同様である。制御レジスタ14はASN第
1テーブル起点(AFTO)93を含み、これは加算操
作94でAFX91と組み合わせると、ASN第1テー
ブルにおけるAFTE95の実アドレスを与える。AF
TE95はASN第2テーブル起点(ASTO)96を
含み、これは加算操作97でASX92と組み合わせる
と、ASN第2テーブル30におけるASTE98の実
アドレスを与える。CR0.15が1の時は、ETE5
7にあるASTEアドレス100をASN変換の代わり
に使用することができる。制御レジスタ14のビット1
2(CR14.12)はASN変換ビット(T101)
である。これが0であれば、ASTEアドレス100も
ASN90も使用できない。CR14.12が1であれ
ば、いずれかを使用できる。PC−ssオペレーション
の場合、ASTE98のAX102及びETE57のA
SN90がそれぞれ制御レジスタ4の103及び104
のところに置かれる。ASTE98のSTD105は制
御レジスタ1の106のところに置かれる。CR0.1
5=1であれば、ASTEアドレスはPASTEO10
7として制御レジスタ5に置かれる。CR0.15=0
であれば、制御レジスタ5にはASTE98のLTD1
08が置かれる。第17図のASN変換はDAS及びM
ASのいずれのオペレーションにも適用できる。
第15〜17図に関連して説明したPC−ssオペレー
ションは、命令取出しのために制御を新しいアドレス空
間へ移すのに使用できる。その場合、新しいアドレス空
間は一次アドレス空間として設定される。たとえば、P
C番号、エントリ・テーブル・エントリ及び連係テーブ
ル・エントリがサービス提供者によって設定される時、
そのPC番号を呼び出すプログラムのアクセス権を設定
するためAKMが特定される。呼出しプログラムがエン
トリ・テーブル・エントリによって定義されたプログラ
ムを呼び出す権限を持っていると(第16図のアンド操
作63からわかる)、PCオペレーションは制御レジス
タ8にあるEAXを変更し得る。
たとえば、PCオペレーションは、システム・サービス
を呼び出して、アクセス・リスト24及び25の一方に
新しいALEを付加するのにも使用できる。サービス・
プログラムは新しいアクセス・リスト・エントリを設定
して、アクセス・レジスタ・モードのオペレーションで
呼出しユーザが使用する新しいALETを供給すること
ができる。アクセス・リスト・エントリを作成する時、
呼出しユーザの制御レジスタ8からのEAXがALEA
XとしてALE中に置かれる。ALEが作成されると、
サービス・プログラムはそのALEに対するALETを
ユーザ・プログラムに戻す。ALETは、オペランドの
取出しまたは記憶に使用するのに都合のよい形で、記憶
させたり、他のアドレス空間へ送ったりすることができ
る。上述の許可手順は、許可されていないプログラムが
ATLETを使用するのを阻止する。
アクセス・リスト・エントリの所有者は、アクセス・リ
スト・エントリの生成時にそれを私用エントリまたは公
用エントリとして指定することができる。私用エントリ
の場合は、所有者または許可されたユーザだけがアドレ
ス空間をアクセスでき、公用エントリの場合は、すべて
のユーザがアクセスできる。公用エントリは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)から取り出される。有効A
LDは.アクセス・リスト起点及びアクセス・リスト長
(ALL)を含む。ALENがアクセス・リストの外に
ないことを確かめるため、117でALEN及びALL
が比較される。ALENがこの検査をパスすると、有効
アクセス・リスト起点は加算操作119によりALEN
と結合され、アクセス・リスト121中のALE120
のアドレスを生成する。まずALE120の無効ビット
(ビット0)が121で検査される。無効ビットが0で
ALE120が有効であることを示していると、124
でALETのALESN122及びALE120のAL
ESN123が比較される。ALESN122及びAL
ESN123が等しければ、ALETはALE120の
アクセスを許されており、ASTEアドレス125を用
いてASTE126が取り出される。ASTE126の
有効性は、128で無効ビット127を検査することに
より確かめられる。ASTE126が有効であれば、A
LE120がASTE126のアクセスを許されている
かどうかを確かめるため、ASTESN130及びAS
TESN131が132で比較される。これらの検査に
より、ARTの有効性が確認される。
次に、呼出しプログラムのアドレス空間アクセス権が検
査される。最初の検査は135で行なわれ、Pビット1
36が0かどうかを調べる。Pビット136が0であれ
ば、すべてのプログラムがALEに関連するアドレス空
間をアクセスすることができ、これ以上の検査は行なわ
れない。Pビット136が1であれば、ALEAX13
7及び制御レジスタ8にあるEAX138が比較器13
9で比較される。これらが等しければ、プログラムはこ
のアドレス空間のアクセスを許されており、これ以上の
検査は行なわれない。139での比較が不一致であれ
ば、ASN拡張許可検査が140で行なわれる。ASN
拡張許可検査140では、制御レジスタ8にあるEAX
138が許可権テーブルの外にあるエントリを指定して
いないことを確かめるため、EAX138及び許可権テ
ーブル長(ATL)141が比較される。制御レジスタ
8にあるEAX138は、ATO142によって起点が
指定される許可権テーブルへの指標として使用される。
許可権テーブル中のSビットがこのEAXに対して1に
セットされていると、プログラムはアドレス空間のアク
セスを許され、145でのDATオペレーションのため
にSTD144が供給される。
アクセス・リスト・エントリ中の私用ビット及びALE
AXフィールドは、ALEによって表わされるアドレス
空間へのプログラムのアクセスを許可したり禁止したり
する高性能の許可機構を提供する。私用ビットを0にし
ておくと、アクセス・リストを用いて実行されるすべて
のプログラムがALEによって表わされるアドレス空間
をアクセスできる。ALEの私用ビットを1にセットし
かつ制御レジスタ8にあるユーザのEAXをALEAX
フィールドに等しくしておくと、特定のEAXを持った
プログラムがALEによって表わされるアドレス空間を
アクセスできる。最後に、ALEの私用ビットを1にセ
ットしてかつ制御レジスタ8にあるユーザのEAXが目
標空間の許可権テーブルにおいてSビットが1であるエ
ントリを選択できるようにしておくと、異なったEAX
で実行される複数のプログラムがALEによって表わさ
れるアドレス空間をアクセスできる。
第19A図及び第19B図は、アクセス・レジスタ変換
ステップ及び例外の流れを示している。ART論理が呼
び込まれる時、アクセス・レジスタ0(ARO)が指定
されたかどうかが150で調べられる。アクセス・レジ
スタ0が指定されていると、ARTがテスト・アクセス
・オペレーション(後述)によって呼び込まれたかどう
かが151で調べられる。アクセス・レジスタ0が指定
されていないか、またはテスト・アクセス・オペレーシ
ョンであったならば、アクセス・レジスタにあるALE
Tの私用が152で示される。アクセス・レジスタ0が
指定されかつこれがテスト・アクセス・オペレーション
でなければ、153でX′00000000′がALE
Tに割り当てられる。ついで、ALETがX′0000
0000′かどうかが154で検査される。もし「は
い」であれば、155で一次アドレス空間のためのST
Dが制御レジスタ1から得られる。「いいえ」の場合
は、156でALETがX′00000001′かどう
かが検査される。もし「はい」であれば、157で二次
アドレス空間のためのSTDが制御レジスタから得られ
る。「いいえ」の場合は、158でALETのビット0
〜6が0かどうかが検査される。ビット0〜6が0でな
ければ、ALETの割り当てられた値は有効ではなく、
159でALET指定例外が認識され、オペレーション
は抑止される。
ビット0〜6が0の場合は、106でALETのビット
7が1かどうかが検査される。1であれば、制御レジス
タ5にあるPASTEOが161で解読され、PSAL
のための有効ALDが取り出される。ALETのビット
7が0であれば、制御レジスタ2にあるDUCTOが1
62で解読され、DUALのための有効ALDが取り出
される。163で取出しアドレスが無効であることがわ
かると、164でアドレス指定例外が認識され、オペレ
ーションは抑止される。アドレスが有効であれば、AL
ETのALENが有効ALL(有効ALDのビット25
〜31)の範囲外かどうかが165で検査される。もし
範囲外であれば、166でALEN変換例外が認識さ
れ、オペレーションは無効にされる。165での答えが
「いいえ」であれば、167でALEが見つけられ、A
LEアドレスが有効かどうかが検査される。ALEアド
レスが有効でなければ、168でアドレス指定例外が認
識され、オペレーションは抑止される。ALEアドレス
が有効であれば、ALEが有効かどうかを見るため16
9でALEの有効ビットが検査される。ALEが有効で
なければ、170でALEN変換例外が認識され、オペ
レーションは無効にされる。ALEが有効であれば、1
71で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でなければ、182でASN変
換指定例外が認識され、オペレーションは抑止される。
ASTEが有効であれば、EAXが許可権テーブルの外
のエントリを指定していないことを確かめるため、18
3で制御レジスタ8にあるEAXビット0〜11の値及
び許可権テーブルの長さ(ATL)が比較される。EA
Xビット0〜11の値の方がATLよりも大きければ、
184で拡張許可例外が認識され、オペレーションは抑
止される。EAXが許可権テーブルの範囲内のエントリ
を指定していると、185で関連するエントリが許可権
テーブルで見つけられる。この許可権テーブル・エント
リのアドレスが有効でなければ、186でアドレス指定
例外が認識され、オペレーションは抑止される。アドレ
スが有効であれば、185で見つけられた許可権テーブ
ル・エントリの二次許可ビット(Sビット)が1かどう
かを見る拡張許可検査が187で行なわれる。187で
の検査結果かが「はい」であれば、呼出しプログラムは
このアドレス空間に関連する許可権テーブルによって許
可されているプログラムのうちの1つであり、188で
このアドレス空間のためのSTDがASTEから得られ
る。187での検査結果が「いいえ」であれば、プログ
ラムは許可されておらず、189で拡張許可例外が認識
され、オペレーションは無効にされる。
MAS機構は、前述のテスト・アクセス・オペレーショ
ンを実行するため、テスト・アクセス・レジスタ(TA
R)命令を使用する。TAR命令のフォーマットは次の
とおりである。
TAR A1,R2 TAR命令では、第1オペランドA1のアクセス・レジ
スタにあるものとして指定されたALETが、第2オペ
ランドR2によって指定された汎用レジスタにあるEA
Xを用いてALET変換例外を検査される。TAR命令
は、第19A図のステップ151で「はい」と判定され
ると、第19A図及び第19B図のARTオペレーショ
ンを実行させる。TAR命令は、次のテスト結果をPS
Wの条件コード(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を参照するのか、呼出しプログラムのP
SALを参照するのかを決定することができる。これ
は、プログラムをALETの内部フォーマットとは無関
係にする。
TAR命令を用いてARTを実行する時、ALBエント
リが作成される。かくして、ART中に例外が生じなけ
れば、ARにあるALETが実際に使用される時、AL
Bはエントリを含む。
第20図はTAR命令の使用例を示している。指名可能
ユニットのタスク制御ブロックTCB1は、200での
実行中、5のEAXを持っている。このEAXにより、
プログラムは、TCB1についての指名可能ユニット・
アクセス・リスト(DUAL)の特定のエントリを使用
することができる。201で、第1プログラムがアドレ
ス空間ASN2にある第2プログラムに対しプログラム
呼出しを行ない、第2プログラムで使用すべきALET
を渡す。202で、ASN2にあるプログラムが8のE
AXを用いて実行されるが、これは呼出しプログラムの
EAXとは異なっている。もしプログラムが202で呼
出しプログラムによって与えられたALETを使用する
と、システム保全の問題が生じる。呼出しプログラムは
ALETを参照するEAX権限を持っていないことがあ
るが、ASN2のプログラムは持っている。ASN2の
プログラムは呼出しプログラムが渡されたALETを使
用する権限を持っていたかどうかを調べる有効性検査を
実行しなければならない。203で、ASN2のプログ
ラムは、入力ALET及び呼出しプログラムのEAX
(=5)を指定するTAR命令を用いて、有効性検査を
実行する。呼出しプログラムのEAXは、ASN2への
プログラム呼出しで作成された連係スタック・エントリ
から得られる。TAR命令の実行の結果、呼出しプログ
ラムがALETの使用を許されていたことを示す条件コ
ードが与えられると、ASN2のプログラムはその機能
の遂行を続けることができる。呼出しプログラムがAL
ETの使用を許されていなければ、ASN2のプログラ
ムは呼出しプログラムを打ち切るか、または呼出しが成
功しなかったことを示す戻りコードを呼出しプログラム
に戻す。204で戻り命令により制御が戻されると、呼
出しプログラムのEAX(=5)がスタックから復元さ
れ、ASN1のプログラムはこのEAXを用いて実行を
続ける。
ALET有効性検査機能は頻繁に要求される。第20図
の例では、ASN2にあるプログラムへの呼出しのたび
に必要とされる。この機能はオペレーティング・システ
ムのサービズ・ルーチンによっても提供できるが、そう
するとオーバーヘッドが大きくなり過ぎる。もしTAR
機能がなければ、呼出しプログラムのALETを参照し
てEAXを変更しなければならないプログラムは、たと
えば2つのPC命令を使用する必要がある。最初のPC
命令はEAXを変更せず、呼出しプログラムのEAXを
用いて呼出しプログラムのパラメータが参照される。あ
とで2番目のPC命令が実行され、被呼出しプログラム
が使用する新しいEAXが与えられる。呼び出されたサ
ービスは、その機能を遂行するのに異なったEAXを必
要とすることがあり、この機構は正しいEAXの使用を
可能にする。かくして、TAR機能はより効率のよい検
査を可能にする。第20図の例では、TAR命令がDU
ALのALETと共に使用されているが、DUAL及び
PSALのいずれのALETも使用できる。
F.発明の効果 本発明により、プログラムに対してアドレス空間から命
令を取り出したり1つ以上の他のいずれかのアドレス空
間にオペランドを記憶したりすることを許可するアーキ
テクチャが達成された。
G.用語解 AKM 許可キー・マーク AL アクセス・リスト−アドレス指定ケイパ
ビリティ・テーブル AR アクセス・レジスタ−各ARはGPRと
関連づけられる。
ART アクセス・レジスタ変換−STDをAR
と関連づけられる方法。
AX 許可指標 ALB ARTルックアサイド・バッファ−AR
T、はARがBフィールド記憶域オペランド参照によっ
てGPRで指定されるたびに生じ、ALBはその間の記
憶域参照回数を減らす。
ALE アクセス・リスト・エントリ ALEAX アクセス・リスト・エントリ許可指標。
ALEN アクセス・リスト・エントリ番号−AL
ETのビット16〜31が指定されたALEの番号であ
る。
ALL アクセス・リスト長−所定の数値として
制御レジスタに記憶されており、最大1024個のAL
Eまで可能である。
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 指名可能ユニット制御テーブル−DUA
LD含み、CR2によって指定される。
EAX 拡張許可指標 EKM エントリ・キー・マスク ETE エントリ・テーブル・エントリ GPR(GR)汎用レジスタ−オペランド及びアドレス
を含む。
LTD 連係テーブル記述子 MAS 多重アドレス空間 Pビット (1)ALETのビットで、DUALま
たはPSALを選択する。
(2)ALE中のビットで、すべてのユーザがアクセス
できるか(公用)または許可検査が必要か(私用)を示
す。
PASTE 一次ASN第2テーブル・エントリ−P
SALDを含む。
PC−cp 現一次に対するプログラム呼出し PC−ss 空間切替えを伴うプログラム呼出し PER プログラム事象記録 PKM PSWキー・マスク PSAL 一次空間アクセス・リスト PSALD PSAL記述子−PASTEに含まれ、
PSALの起点(実アドレス)及び長さからなる。
PSTD 一次セグメント・テーブル記述子 PSW プログラム状況ワード SSTD 二次セグメント・テーブル記述子 STD セグメント・テーブル記述子
【図面の簡単な説明】
第1図は本発明の概念を示すブロック図。 第2図はアクセス・レジスタ変換(ART)の様子を示
すブロック図。 第3図は本発明のMAS機構で使用される制御レジスタ
の構成を示す図。 第4図はMAS機構で使用されるPSWの内容を示す
図。 第5図はアクセス・リスト・エントリ・トークン(AL
ET)のフォーマットを示す図。 第6図はアクセス・リスト・エントリ(ALE)のフォ
ーマットを示す図。 第7図は連係テーブル・エントリ(LTE)のフォーマ
ットを示す図。 第8図はエントリ・テーブル・エントリ(ETE)のフ
ォーマットを示す図。 第9図は連係スタックを示すブロック図。 第10図は連係スタックの状態エントリのフォーマット
を示す図。 第11図はASN第1テーブル・エントリ(AFTE)
のフォーマットを示す図。 第12図はASN第2テーブル・エントリ(ASTE)
のフォーマットを示す図。 第13図は許可権テーブル(AT)の構成を示す図。 第14図は指名可能ユニット制御テーブル(DUCT)
のフォーマットを示す図。 第15図はPC番号変換の論理フローを示すブロック
図。 第16図はスタッキング・オペレーションの論理フロー
を示すブロック図。 第17図はASN変換の論理フローを示すブロック図。 第18図はアクセス・レジスタ変換(ART)の論理フ
ローを示すブロック図。 第19A図及び第19B図はARTオペレーションの流
れ図。 第20図はテスト・アクセス・レジスタ命令の実行の様
子を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カール・エドワード・クラーク アメリカ合衆国ニユーヨーク州ポキプシ イ、パート・ドライブ46番地 (72)発明者 アレン・ジヨージ・ガネク アメリカ合衆国ニユーヨーク州チヤパク、 ピン・オーク・レーン18番地 (72)発明者 ジエームズ・ラム アメリカ合衆国カリフオルニア州レツドウ ツド・シテイ、ケイプ・ハタラース・コー ト34番地 (72)発明者 マイケル・ジエラード・マール アメリカ合衆国ニユーヨーク州ラグランジ ヴイレ、スクウエア・ヴツズ・ドライブ20 番地 (72)発明者 デヴイド・リチヤード・ページ イギリス国ハンプシヤー、ラムズイ、シイ カモアー・クロス13番地 (72)発明者 ケネス・アーネスト・プラムベツク アメリカ合衆国ニユーヨーク州ポキプシ イ、デイシイ・レーン7番地 (72)発明者 キヤスパー・アンソニイ・スカルズイ アメリカ合衆国ニユーヨーク州ポキプシ イ、アパートメント 7イー、アカデミ イ・ストリート160番地 (72)発明者 リチヤード・ジヨン・シヤマルズ アメリカ合衆国ニユーヨーク州ワツピンガ ーズ・フオールズ、エツヂ・ヒル・ドライ ブ7番地 (56)参考文献 特開 昭63−76034(JP,A) 特開 昭57−6500(JP,A) 特開 昭58−137200(JP,A) 特開 昭54−161846(JP,A) 特開 昭61−141054(JP,A) 特開 昭63−221440(JP,A)

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】中央処理装置と、データ処理命令を有する
    プログラムを実行するために前記中央処理装置を動作さ
    せるオペレーティング・システムと、前記プログラムに
    より処理されるべきデータを含む複数のアドレス空間に
    割り振られる主記憶装置とを備えるコンピュータ・シス
    テムにおいて、 各々が前記アドレス空間のうちの1つを指定するアクセ
    ス・リスト・エントリ・トークンを含み、前記命令のう
    ちの被選択命令のオペランドによってアドレス可能な複
    数のアクセス・レジスタと、 前記中央処理装置で実行中のプログラムにおける前記被
    選択命令のオペランドによって指定されたアクセス・リ
    スト・エントリ・トークンが指定するアドレス空間への
    アクセスを許可するための前記中央処理装置中のアクセ
    ス・レジスタ変換手段と、 を含むプログラム許可機構を設けたことを特徴とするコ
    ンピュータ・システム。
  2. 【請求項2】中央処理装置と、データ処理命令を有する
    プログラムを実行するために前記中央処理装置を動作さ
    せるオペレーティング・システムと、前記プログラムに
    より処理されるべきデータを含む複数のアドレス空間に
    割り振られる主記憶装置とを備えるコンピュータ・シス
    テムにおいて、 プログラム制御を第1アドレス空間から第2アドレス空
    間へ移動する制御移動手段と、 少なくとも指定されたプログラム許可を有するプログラ
    ムによってのみ前記第1及び第2のアドレス空間へのア
    クセスを提供する許可手段と、 を含むプログラム許可機構を設けたことを特徴とするコ
    ンピュータ・システム。
  3. 【請求項3】前記許可手段が、前記プログラム許可が階
    層的または非階層的となるように前記プログラム許可の
    値を大きくまたは小さくする許可変更手段を有する、特
    許請求の範囲第(2)項記載のコンピュータ・システム。
JP63319664A 1988-02-10 1988-12-20 コンピユータ・システム Expired - Lifetime JPH0661069B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US154740 1988-02-10
US07/154,740 US5023773A (en) 1988-02-10 1988-02-10 Authorization for selective program access to data in multiple address spaces

Publications (2)

Publication Number Publication Date
JPH01228039A JPH01228039A (ja) 1989-09-12
JPH0661069B2 true JPH0661069B2 (ja) 1994-08-10

Family

ID=22552578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63319664A Expired - Lifetime JPH0661069B2 (ja) 1988-02-10 1988-12-20 コンピユータ・システム

Country Status (6)

Country Link
US (1) US5023773A (ja)
EP (1) EP0327707B1 (ja)
JP (1) JPH0661069B2 (ja)
BR (1) BR8900568A (ja)
CA (1) CA1313424C (ja)
DE (1) DE3854616T2 (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
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
US5247647A (en) * 1988-07-28 1993-09-21 International Business Machines Corp. Detection of deletion of stored data by concurrently executing processes in a multiprocessing data processing system
US5134696A (en) * 1988-07-28 1992-07-28 International Business Machines Corp. Virtual lookaside facility
DE3901457A1 (de) * 1989-01-19 1990-08-02 Strahlen Umweltforsch Gmbh Verfahren zur adressbereichsueberwachung bei datenverarbeitungsgeraeten in echtzeit
US5201052A (en) * 1989-02-10 1993-04-06 Fujitsu Limited System for transferring first and second ring information from program status word register and store buffer
US5201043A (en) * 1989-04-05 1993-04-06 Intel Corporation System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking
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 株式会社日立製作所 多重仮想アドレス空間アクセス方法およびデータ処理装置
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
EP0473802B1 (en) * 1990-09-03 1995-11-08 International Business Machines Corporation Computer with extended virtual storage concept
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
US5625821A (en) * 1991-08-12 1997-04-29 International Business Machines Corporation Asynchronous or synchronous operation of event signaller by event management services in a computer system
US5423013A (en) * 1991-09-04 1995-06-06 International Business Machines Corporation System for addressing a very large memory with real or virtual addresses using address mode registers
US5212793A (en) * 1991-09-04 1993-05-18 International Business Machines Corp. Generic initiators
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
EP0543032A1 (en) * 1991-11-16 1993-05-26 International Business Machines Corporation Expanded memory addressing scheme
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5426748A (en) * 1992-01-03 1995-06-20 International Business Machines Corporation Guest/host extended addressing method and means with contiguous access list entries
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
JP2519390B2 (ja) * 1992-09-11 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ通信方法及び装置
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
US5450593A (en) * 1992-12-18 1995-09-12 International Business Machines Corp. Method and system for controlling access to objects in a data processing system based on temporal constraints
JPH0713869A (ja) * 1993-06-28 1995-01-17 Fujitsu Ltd 動的アドレス変換機能を持つデータ処理システム
US5542045A (en) * 1993-10-15 1996-07-30 Software Security, Inc. Method for interposing a security function in a computer program
US5548746A (en) * 1993-11-12 1996-08-20 International Business Machines Corporation Non-contiguous mapping of I/O addresses to use page protection of a process
US5596739A (en) * 1994-02-08 1997-01-21 Meridian Semiconductor, Inc. Method and apparatus for detecting memory segment violations in a microprocessor-based system
US5611043A (en) * 1994-03-18 1997-03-11 Borland International, Inc. Debugger system and method for controlling child processes
JP2757777B2 (ja) * 1994-05-26 1998-05-25 住友金属工業株式会社 メモリの不正アクセス検出方法及びシステム
US5713035A (en) * 1995-03-31 1998-01-27 International Business Machines Corporation Linking program access register number with millicode operand access
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
US5745676A (en) * 1995-12-04 1998-04-28 International Business Machines Corporation Authority reduction and restoration method providing system integrity for subspace groups and single address spaces during program linkage
US6105132A (en) * 1997-02-20 2000-08-15 Novell, Inc. Computer network graded authentication system and method
US5937159A (en) * 1997-03-28 1999-08-10 Data General Corporation Secure computer system
US5966543A (en) * 1997-06-26 1999-10-12 International Business Machines Corporation Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US6334146B1 (en) 1998-06-05 2001-12-25 I2 Technologies Us, Inc. System and method for remotely accessing data
US6119149A (en) 1998-06-05 2000-09-12 I2 Technologies, Inc. System and process allowing collaboration within and between enterprises for optimal decision making
US6289385B1 (en) * 1998-06-05 2001-09-11 I2 Technologies, Inc. Computer workspace providing event management based on a permissibility framework
JP2000047875A (ja) * 1998-06-30 2000-02-18 Sun Microsyst Inc クラスロ―ダ
WO2000011551A1 (de) * 1998-08-19 2000-03-02 Siemens Aktiengesellschaft Verfahren, anordnung sowie ein satz mehrerer anordnungen zum schutz mehrerer programme und/oder mehrerer dateien vor einem unbefugten zugriff durch einen prozess
US6735666B1 (en) 2000-02-22 2004-05-11 Wind River Systems, Inc. Method of providing direct user task access to operating system data structures
US6976255B1 (en) 2000-03-28 2005-12-13 International Business Machines Corporation Storage isolation employing secured subspace facility
US8661539B2 (en) * 2000-07-10 2014-02-25 Oracle International Corporation Intrusion threat detection
US9038170B2 (en) * 2000-07-10 2015-05-19 Oracle International Corporation Logging access system events
US8204999B2 (en) * 2000-07-10 2012-06-19 Oracle International Corporation Query string processing
US7185364B2 (en) * 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US7278030B1 (en) 2003-03-03 2007-10-02 Vmware, Inc. Virtualization system for computers having multiple protection mechanisms
JP4380198B2 (ja) * 2003-03-31 2009-12-09 株式会社日立製作所 ストレージ装置でアクセス制御を行う計算機システム
CN100338571C (zh) * 2003-09-27 2007-09-19 英特尔公司 处理器的扩展寄存器空间装置和方法
US7594094B2 (en) 2006-05-19 2009-09-22 International Business Machines Corporation Move data facility with optional specifications
US7581074B2 (en) * 2006-05-19 2009-08-25 International Business Machines Corporation Facilitating use of storage access keys to access storage
US9495561B2 (en) * 2008-01-08 2016-11-15 International Business Machines Corporation Target of opportunity recognition during an encryption related process
US9349410B2 (en) * 2008-01-08 2016-05-24 International Business Machines Corporation Automated data storage library with target of opportunity recognition
US8108065B2 (en) * 2008-01-08 2012-01-31 International Business Machines Corporation Target of opportunity in an automated data storage library
US8682470B2 (en) 2008-01-08 2014-03-25 International Business Machines Corporation Data storage drive with target of opportunity recognition
US7530106B1 (en) 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code
US10572691B2 (en) 2015-04-28 2020-02-25 Microsoft Technology Licensing, Llc Operating system privacy mode
US11176056B2 (en) 2019-06-28 2021-11-16 International Business Machines Corporation Private space control within a common address space
US10970224B2 (en) 2019-06-28 2021-04-06 International Business Machines Corporation Operational context subspaces
US11074195B2 (en) 2019-06-28 2021-07-27 International Business Machines Corporation Access to dynamic address translation across multiple spaces for 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

Family Cites Families (33)

* Cited by examiner, † Cited by third party
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
GB1585960A (en) * 1976-07-30 1981-03-11 Plessey Co Ltd Information flow security mechanisms for data processing systems
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4096573A (en) * 1977-04-25 1978-06-20 International Business Machines Corporation DLAT Synonym control means for common portions of all address spaces
JPS5474651A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS54161846A (en) * 1978-06-13 1979-12-21 Hitachi Ltd Information processor
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
JPS56140452A (en) * 1980-04-01 1981-11-02 Hitachi Ltd Memory protection system
US4366536A (en) * 1980-04-15 1982-12-28 National Semiconductor Corporation Modular digital computer system for storing and selecting data processing procedures and data
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
US4430705A (en) * 1980-05-23 1984-02-07 International Business Machines Corp. Authorization mechanism for establishing addressability to information in another address space
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
EP0040703B1 (en) * 1980-05-23 1986-07-16 International Business Machines Corporation Enhancements in system/370 type of data processing apparatus
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
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スタツク制御方式
US4439830A (en) * 1981-11-09 1984-03-27 Control Data Corporation Computer system key and lock protection mechanism
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
US4677546A (en) * 1984-08-17 1987-06-30 Signetics Guarded regions for controlling memory access
IN165278B (ja) * 1984-09-21 1989-09-09 Digital Equipment Corp
JPS61141054A (ja) * 1984-12-14 1986-06-28 Nec Corp 情報処理装置
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
US4866599A (en) * 1985-06-27 1989-09-12 Bull Hn Information Systems Inc. Call instruction, return instruction and trap procedure for ring crossing architecture
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
JPS6376034A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd 多重アドレス空間制御方式
JPS63221440A (ja) * 1987-03-11 1988-09-14 Nec Corp アドレス変換装置

Also Published As

Publication number Publication date
CA1313424C (en) 1993-02-02
DE3854616D1 (de) 1995-11-30
JPH01228039A (ja) 1989-09-12
EP0327707A2 (en) 1989-08-16
DE3854616T2 (de) 1996-06-13
BR8900568A (pt) 1989-10-10
EP0327707B1 (en) 1995-10-25
US5023773A (en) 1991-06-11
EP0327707A3 (en) 1991-03-13

Similar Documents

Publication Publication Date Title
JPH0661069B2 (ja) コンピユータ・システム
US5220669A (en) Linkage mechanism for program isolation
EP0331900B1 (en) Method and apparatus for capability control
US4979098A (en) Multiple address space token designation, protection controls, designation translation and lookaside
US20190303301A1 (en) Dynamic address translation with access control in an emulator environment
CA2050834C (en) Multiple controlled data-space facility
US5280614A (en) Apparatus and method for controlling access to data using domains
US9244856B2 (en) Dynamic address translation with translation table entry format control for identifying format of the translation table entry
US8019964B2 (en) Dynamic address translation with DAT protection
US8037278B2 (en) Dynamic address translation with format control
EP0058844B1 (en) Address generator for multiple virtual address spaces
US8631216B2 (en) Dynamic address translation with change record override
US8082405B2 (en) Dynamic address translation with fetch protection
US20090182975A1 (en) Dynamic address translation with load page table entry address
EP0327839B1 (en) Information handling system
US5493661A (en) Method and system for providing a program call to a dispatchable unit's base space
CA1312142C (en) Linkage mechanism for program isolation