JPS6042495B2 - 多重プログラムデ−タ処理装置の特権メモリをアクセスする方法 - Google Patents

多重プログラムデ−タ処理装置の特権メモリをアクセスする方法

Info

Publication number
JPS6042495B2
JPS6042495B2 JP50125223A JP12522375A JPS6042495B2 JP S6042495 B2 JPS6042495 B2 JP S6042495B2 JP 50125223 A JP50125223 A JP 50125223A JP 12522375 A JP12522375 A JP 12522375A JP S6042495 B2 JPS6042495 B2 JP S6042495B2
Authority
JP
Japan
Prior art keywords
descriptor
bit
register
segment
field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP50125223A
Other languages
English (en)
Other versions
JPS5165534A (ja
Inventor
エフ ク−リユア− ジヨン
エイ シエリ− ウイリアム
エフ モンテイ− ロバ−ト
エツチ ジエニングス ポ−ル
イ− キング ジエーン
エル シツプレイ デ−ル
エイ キンハン ト−マス
ピ− カ−リスル リチヤ−ド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc
Original Assignee
HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc
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 HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc filed Critical HANEIUERU INFUOOMEISHON SHISUTEMUSU Inc
Publication of JPS5165534A publication Critical patent/JPS5165534A/ja
Publication of JPS6042495B2 publication Critical patent/JPS6042495B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Landscapes

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

Description

【発明の詳細な説明】 (目 次) (4)本発明の属する技術分野 (B)従来技術とその問題点 (O本発明の目的 (2)本発明の概要 (E)実施例の説明 (E−1) 動作環境 (E−2) プログラムレジスタ (1) rワーキング●スペース●レジスタ (W
SR)j(■) rセーフ ストア レジスタ (SSR)J (■) rリンケージ・セグメント・レジスタ (
LSR).J(■) rアーギユメント●スタック●レ
ジス 夕(ASR)ョ(■) rパーラメータ●ス
タック・レジスタ (PSR)ョ(■) rインス
トラクション●セグメント● レジスタ(ISR)
J(■) rオペランド●ディスクリプタ●レジ
スタ(DRn)J(■) 1セグメント・アイデンテイ
テイ・レ ジスタ(SEGIDn)J(■) rイ
ンストラクション・セグメント● アイデンテイテ
イ レジスタ (SEGID(IS))ョ (E−3) ディスクリプタ◆フォーマット(1) r
標準記述子(T=0又は1)J(■) rワーキングス
ペース番号を有する標一 準記述子(T=2又は3
)J(■) rスーパー記述子(T=4)J (■) rワーキングスペース番号を有するス ー
パー記述子(T=6)J(■) rエントリー記述子ョ (■) r間接−エントリー記述子ョ (E−4) クライム命令 (1) rインワードクライム(コール)(C
フィールドのビット22及び23=00)J(■) r
新たなPSRベースの形成ョ(■) rアウトワードク
ライム(復帰)(C フィールドのビット22及
び23=01)J(■) rラテラルトランスファ(同
じパラメ9 −タ及び、同じ又は付加的アーギ
ユメ ントを有する)J(■) rラテラルトラ
ンスファ(パラメータ あり又はなし)J(E−
5) ロード記述子及び縮少 S (1) r標準記述子ョ (■) rスーパー記述子ョ 囚 本発明の属する技術分野 本発明は一般にデータ処理装置に関し、特に複数の相互
に関連したルーチンを安全確実に実行す)るようにデー
タ処理装置に指令する方法に関する。
(B)従来技術とその問題点 今日の大型のデータ処理装置は通常複数の処理装置を備
えていて、ローカル及び遠方の使用者による多重の対話
型のプログラムを実行する。
か)る処理量を収容するため、かなりの大きさのデータ
メモリが、使用者プログラム及ぼデータ、オペレーティ
ングシステムソフトウェア及び共有アプリケーションプ
ログラム用に設けられなければならない。更にシステム
処理装置において種々の動作が実行されるので、プログ
ラム及びデータを操作するために巧妙なハードウェア及
ぼソフトウェアが必要である。システムコアメモリに莫
大な費用をかけずに使用者の要求を満たすために、デー
タ処理装置は1次、即ちコアメモリが例えば磁気ディス
クのような2次、即ちバルク記憶装置によつて増大され
る拡張メモリを用いている。
従つてどの使用者もプログラムの実行中実際には主メモ
リの小部分を占有しているのであるが、2次記憶装置に
よつて提供される主メモリの拡張によつて、より大容量
の1仮想メモ1几を有するように見える。主及び拡張メ
モリにおける情報の記憶はセグメント及びページの形態
をとつており、使用者プログラムは可変長のセグメント
に分割され、そのセグメントは複数の均一な長さのデー
タページを含んでいる。
記憶されたページでの使用者の位置決めを行なうために
設けられるページテーブルを用いるページングを使用す
ることにより情報記憶及び利用可能のメモリスペースが
どこに配置されようともその適用の柔軟性が実現される
。継続中の昭和5@特許願第47334号は大型システ
ム内でのデータ記憶及びアクセスの方法及び装置に関す
る。
独特の分割、セグメンテーシヨン及びページング技術を
用いることにより、記憶装置の直接アドレシングが可能
になる。更に、いくつかは共有され、いくつかは排他的
に割当てられるメモリーワーキングスペースを用いるこ
とによつて、ユーザーと情報を分離してユーザプログラ
ムとデータの安全性が高まつた。呼出されたプログラム
用の保護領域即ち範囲(ドメイン)に対する制限された
アクセスを得ることは、記憶装置内のプログラムセグメ
ントを識別するディスクリプタ(記述子)を用意するこ
とによつてなされる。更に、縮少動作による1縮少ョ記
述子によつて、呼出されたプログラムによるメモリーア
クセスは、そのセグメントの他の部分をそのアクセスか
ら閉鎖して、呼出されたプログラムにとつて本質的な、
セグメント内の特定のデータのみに縮少される。本発明
は1つの手順により安全確実に他の手順を呼出して動作
させ、かつ呼出された手順の実行完了と同時に最初の手
順へ復帰する方法についてより詳細に開示する。
また縮少記述子(Shrinkingdescript
Or)により、メモリへの限定されたアクセスを移す特
定の方法をも開示する。
(C)本発明の目的 従つて本発明の目的は他の手順によつて1つの手順を呼
出して実行する方法を提供するにある。
本発明の他の目的は被呼出し手順からの復帰まで、記述
子を安全に記憶しておく方法を提供するにある。本発明
の更に他の目的は手順間での記述子の受け渡しを実施す
る方法を提供するにある。
本発明の更に他の目的は被記憶情報への限定されたアク
セスを1つのコンピュータシステム手順から他の手順へ
移す方法を提供するにある。
本発明の更に他の目的は記述子で規定されたメモリを修
飾してアクセスをメモリの被限定部分に移す方法を提供
するにある。(2)本発明の概要 本発明は、継続中の上記特許出願に説明されているよう
な計算機システムにおいて、1つの手順がもう1つの手
順を実行のために呼出し、呼出された手順の実行完了と
同時に、第1の手順に制御を返す(復帰する)ことを安
全確実に行なう方法に関する。
プログラム即ち手順は通常、装置の仮想メモリにおける
割当てられたワーキングスペースに限定される。
ワーキングスペースの保護の実行は記述子によつて制御
されるアクセスによつてなされる。1つの手順に割当て
られたワーキングスペースの拡張はその手順へパラメー
タを渡すことによつて行なわれる。
他のルーチンを呼出して実行するルーチンのワーキング
スペース記述子を安全に記憶し、かつ呼出されたルーチ
ンの完了と同時に安全に記憶された記述子を戻す装置が
設けられる。本発明はメモリワーキングスペースを指定
するメモリ記述子、記述子によつて規定される被占有メ
モリの開始点を示すワーキングスペース内の基準(ベー
ス)位置とその大きさを示す境界(バウンド)、そして
ベース位置、大きさ又はその両者を修飾する命令、を使
用することを特徴とする。
新たな記述子によつて記述されるスペースが元の記述子
が規定するメモリ領域内に完全に存するこ・とを保証す
るためチェックが行なわれる。更に、新たな記述子が規
定する領域へのアクセスは元の記述子が規定するメモリ
領域に課せられた全ての制限を含んでいる。(E)実施
例の説明 ・(E−1) 動作環境 システム使用者によつて参照される1仮想メモリョは
全ての情報が記憶されている複数の大型メモリワーキン
グスペースに分割される。
あるワーキングスペースは全てのシステム使用者によつ
て共有しうるが、他のワーキングスペースは特定使用者
に専用される。例えばオペレーティングシステムは1つ
のワーキングスペースを占有し、このワーキングスペー
スは全ての使用者がアクセスしうる。使用者のプログラ
ム及びデータは割当てられた使用者及びこの使用者によ
つて承認された手順又はルーチンのみがアクセス可能な
他のワーキングスペースに記憶される。従つて使用者の
データ及びプログラムの分離が行なわれて、メモリへの
使用者のアクセスをその使用者のプログラムーの実行に
必要な2,3のワーキングスペースに限定することによ
つて保護が強化される。複数のワーキングスペースにお
ける情報の記憶は周知のページング技術による。
データは、実メモリ中に見出される利用可能な任意のス
ペース中にある、例えば各々1024ワード即ち409
6バイトの均一な大きさのグループ即ちページに記憶さ
れる。ページングによりメモリマッピング機能が得られ
、周期的なメモリコンパクト化の必要性が除去されプロ
グラム実行中の使用者の主メモリにおける要求を減少せ
しめる。更にプログラムは、使用者に割当てられたメモ
リワーキングスペースに検索可能に記憶されるセグメン
トと呼ばれる論理要素に分割され;る。
これらのセグメントは、ワーキングスペース、ワーキン
グスペース内の開始点即ちベース、セグメントの大きさ
即ち境界、及び使用者のそのセグメントへのアクセスの
権利を規定する記述子によつて、データ及びプログラム
命令2を得たり記憶したりするために参照される。プロ
グラムによつて参照される全セグメントはそのプログラ
ムの1範囲J(ドメイン)を形成する。プログラムのド
メインはこれに不変的に連結(リンク)したセグメント
ばかりでなく、呼3出し及び復帰のための他のドメイン
への入口点及び他のプログラムによつてそのプログラム
に渡されたセグメントをも含んでいる。セグメントを識
別する記述子はメモリ内のリンケージ、パラメータ及び
アーギユメントセグ3メントと呼ばれる特別のセグメン
トに記憶される。
リンケージセグメントはルーチンの実行に先立つて作ら
れるか又は実行中にオペレーティングシステムによつて
作られる複数の記述子を含んである。複数のパラメータ
セグメントは呼4f出し手順によつて作られる複数の記
述子を含み、アーギユメントセグメントは実行中の手順
によつて作られ、呼出された手順に渡される複数の記述
子を含んでいる。第1図はリンケージセグメント10、
パラメータセグメント12及びアーギユメントセグメン
ト14中に記憶された複数の手順セグメント記述子の機
能的かつ表象的ブロック図である。これらのセグメント
をアクセスするため、リンケージ記述子レジスタ11、
パラメータ記述子レジスタ13及びアーギユメント記述
子レジスタ15にメモリ中のこれら各セグメントを示す
記述子がロードされなければならない。ルーチンの実行
において、リンケージセグメント10、パラメータセグ
メント12又はアーギユメントセグメント14からの記
述子は複数のオペランド記述子レジスタ18の内の1つ
にロードされる。
記述子は20で示された仮想スペース中のセグメントを
参照する。それらセグメント用の実メモリ位置は、実メ
モリ24中の位置を識別する、実スペース22における
ページテーブルを介して識別される。呼出しに先立つて
手順は記述子をそのまま又は縮少動作によつて縮少して
アーギユメントセグメントに移動させうる。
呼出し命令の実行と同時に全ての記述子レジスタは点線
で示されるようにセグメント26中に安全に記憶され、
リンケージセグメント記述子レジスタ11には新たなリ
ンケージセグメント用記述子がリンケージ又はパラメー
タセグメントからロードされ、渡されるべきアーギユメ
ントセグメント14の記述子はパラメータ記述子レジス
タ13をアーギユメント記述子レジスタ15からロード
することによつてパラメータセグメント12の記述子と
なる。同様に、復帰命令の実行によりこれらのステップ
は逆転される。従つて呼出し及び復帰命令の実行により
ドメインは完全に変更され、2つのドメインは呼出しの
パラメータとして渡された複数のセグメントを共有する
。第1図において、呼出しがあるとすると、その呼出す
方の手順はアーギユメント記述子レジスタ15によつて
記述されるアーギユメントセグメント14中に被呼出し
手順に渡されるべき記述子をロードしており、呼出す方
の手順の全てのレジスタの内容は安全記憶記述子レジス
タ28によつて記述されるセグメント26内に確実に記
憶され、次いでその呼出す方法の手順は一時停止され、
被呼出し手順が開始される。
被呼出しルーチンの開始と同時に、処理装置は渡されて
いるパラメータ(及び通常共有される記述子)を除いて
全て新たなドメインに入る。パラメータセグメント12
中の記述子が、そこでメモリをアクセスするために使用
される。復帰と同時に被呼出しルーチンの実行中に作ら
れた情報は被呼出し手順によつて記憶セグメント中に記
憶され、このセグメントを示す記述子はアーギユメント
セグメント14に記憶され、制御は最初の呼出し手順に
戻される。図示の実施例において、1対の36ビット語
がワーキングスペース、複数のアクセスフラグ、境界即
ち大きさ及びワーキングスペース内のベース位置を含む
セグメントを規定するための記述子として結合する。
本発明によれば、1つの1手順から他の手順への制御の
転送を行なう機構(この手順は以篠QLIMB命令と称
する新規な形式の呼出し命令によつて第1の手順中に起
動され得る)が設けられる。呼出し命令はインワード
クラィム(INWARDCLIMB)と称され、復帰命
令はアウトワード クライム(0UTWARDCLIM
B)と称される。
更にクライム命令は単一のドメイン内又は複数のドメイ
ン相互間で働き、パラメータを渡すことを要しないか、
又は存在するパラメータ又は用意されるべきパラメータ
を渡すことを必要とする(例えば1縮少ョは必要とする
)。クライム命令の識別のデータ処理システム上の効果
を考える前に、下記のシステムプログラムレジスタ及び
記述子フォーマットが定義される。
E−2) プログラムレジスタ 本システムのプログラム可視レジスタは下記の通りであ
る。
上記各レジスタ及びレジスタセットの機能は以下に説明
される。
全ての72ビットレジスタ用のレジスタフォーマットは
、そのレジスタが下3記の如く保持している特定の記述
子用の記述子フォーマットと同じである。(1)rワー
キング●スペース●レジスタ(WSR)J この8個の9ビットレジスター群は仮想アダドレスを形
成する際に使用されるワーキング・スペース(WS)番
号を保持するために使用される。
特定のWSRが記述子のWフィールドによつて参照され
る。これら複数のWSRのロード用の命令及び記憶用の
命令がある。
これら2つの命令は同時に8個全部のWSRをロード又
は記憶させ、これらを実行するためには処理装置がシス
テムの動作管理モードである特権的主モード(Priv
iIegedMasterMOde)、例えば動作手順
がそれ自身のドメイン内にあることであることを必要と
する。(Ii)rセーフ・ストア・レジスタ(SSR)
Jこの72ビットレジスタは現在の処理装置の安全記憶
スタックを記述するタイプT=1又は3の標準記述子を
保持するために使用される。
SSRをロードしかつ記憶する特権的主モード命令があ
る。SSRはクライム命令の実行時に処理装置ハードウ
ェアによつて使用される。(Ii)rリンケージ9セグ
メント・レジスタ(?R)ョこの72ビットレジスタは
現在のプロセスのリンケージ・セグメントを記述するタ
イプT=1又は3の標準記述子を保持する。
この■重はクライム命令を実行することによつてのみロ
ードされうる。
?Rは処理装置が特権的主モードにある時、その内容を
LDn命令によつてオペランドデイスクリプターレジス
タ(DRn)に転送し、次いでSDn命令によつてDR
nを記憶することにより、記憶しうる。(IV)rアー
ギユメント・スタック・レジスタ(ARS)Jこの72
ビットレジスタは現在のプロセスのアーギユメント・ス
タックを記述(即ち区画)するタイプT=1又は3の標
準記述子を;保持する。
ASRをロードし(特権的主モード)そして記憶するた
めの複数の命令が設けられる。ASRはSDn又はクラ
イム命令の実行中にハードウェアによつて使用されその
内容が変更されうる。(V)rパラメータ・スタック
レジスタ(PSR)J 72ビットレジスタは現在のプロセッサ●パラメータ・
スタックを区画するタイプT=1又は3の標準記述子を
保持する。
PSRをロー3ドし(特権的主モード)そして記憶する
ため複数の命令が設けられる。PSRはSDn又はクラ
イム命令の実行中にハードウェアによつて使用されその
内容を変更しうる。(Vi)rインストラクション・セ
グメント・レジ3スタ(ISR)JISRは現在の命令
セグメントを記述するタイプT=0又は2の記述子を保
持する72ビットレジスタである。
ISRは直接にはロード又は記憶され得ない。それはク
ライム命令の実4行又はビット29をオンにした転送中
にロードされ、その内容をDRnに移動させ、次いでそ
のPRnを記憶することによつて間接的に記憶されうる
。命令語のビット29が零の時、ISRはオペランドア
ドレス(仮想)を形成する際に使用される。(Vli)
rオペランド・ディスクリプタ・レジスタ(DRn)J
これら8個の72ビットレジスタは現在はプロセスがア
クセス可能な複数のオペランドアドレス空間を記述する
オペランド記述子を保持する。
複数の命令がDRをロードしかつ記憶するため、またそ
れらの内容を修飾するため利用しうる。DRnは命令の
ビット29が1に等しく、アドレスビット0,1及び2
がオペランドデイスクリプタレジスタ(DRn)を指定
する時、仮想オペランドアドレスの展開に援用される。
(Viii)rセグメント・アイデンテイテイ・レジス
タ(SEGIDn)jこの8個の12ビットレジスタの
セットはオペランド●ディスクリプタ●レジスタと1対
1に対応しており、SEGn)nはDRn中の記述子が
どこから来たかを規定(即ち指示)する。
SEGIDを直接ロードしかつ記憶せしめる複数の命令
がある。(IX)rインストラクション・セグメント・
アイデンテイテイ●レジスタ(SEGID(IS))ョ
この12ビットレジスタはSEGIDnがDRnと関連
せしめられているのと同様にしてインストラクション◆
セグメント レジスタ(ISR)と関連せしめられてい
る。
しかしSEGID(IS)は直接ロード又は記憶され得
ない。SEGID(IS)にはISRに記述子がロード
された時、アイデンテイテイがロードされる。E−3)
ディスクリプタ●フォーマット下記のものは本システ
ムが認識するセグメント記述子である。
全ての記述子フォーマットは倍長語対からなり、メモリ
中にある時は、隅数語の境界上になければならない。従
つて処理装置がメモリから記述子をアクセスする時、処
理装置は記述子が倍長語の境界上にあるものと仮定する
。同様に記述子がレジスタから記憶される場合には、処
理装置ハードウェアは倍長語の境界上に記憶させねばな
らない。(1)r標準記述子(T=0又は1)ョ 標準記述子のフォーマットを第2図に示 す。
「バウンドョーセグメント内の最大有効バイトアドレス
である20ビットフィールドであつて、そのうち、ビッ
ト0−17は語アドレス、ビット18−19はバイト(
9ビット)アドレスである。
1バウンドョは1ベースョに関連している。
1フラグョーフラグフイールドは記述子と関連した特権
を記述し、下記のように解釈される。
ビット20=1読出しが許容される。
=0読出しが許容されない。
21=1書込みが許容される。
=O書込みが許容されない。
−ノ 25=1実行が許容される。
=0実行が許容されない。
26=1 特権が与えられる。
=0特権が与えられない。
27=1rバウンドョフイールドが最 大有効アドレス。
=0空セグメント1バウンドJ, が不適当である。
28=1 セグメントがある。
=0 セグメントがない;誤り。
Rwョこの記述子と共に使用するため8個のワーキング
スペースレジスタの何れかを規.定する3ビットフィー
ルド。
RTJ−その記述子タイプを規定する4ビットフィール
ド。
下記の如く2つの標準記述子タイプがあ る。
T=0はこの記述子がオペランド・アドレス・空間を1
区画ョすることを意味する。
T=1はこの記述子が複数の記述子を含むアドレス空間
を1区画ョすることを意味する。
1ベースョーWフィールドによつて指示されたWSRで
規定されているワーキングスペースに関する36ビット
仮想バイトアドレス。
ビット0−おは34ビットの語アドレスで、ビット(−
35はその語内のバイト(9ビット)を示す。1)rワ
ーキングスペース番号を有する標準記述子(T=2又は
3)Jワーキングスペース番号(WSN)を有する標準
記述子は第3図に示すフォーマットを有する。
このオーマツトは記述子がWSRを指示するよりもむし
ろ実際のワーキングスペース番号を指示できるようにフ
ラッグ(F)フィールドが減少される点を除いて標準記
述子用のものと同じである。3個のFビットは標準記述
子の対応するフラグビットと同じである。
省略されたフラグの状態は下記の通りである。(1)実
行が許容されない、(2)特権的でない、(3) 空で
ない及び、(4)セグメントがある。
1ベースョはWSNに関連している。
この記述子には次の2つのタイプがある。
T=2はこの記述子がオペランドアドレス空間を1区画
ョすることを意味する。
T=3はこの記述子が複数の記述子を含むアドレス空間
を1区画ョすることを意味する。
110rスーパー記述子(T=4)J スーパー記述子のフォーマットを第4図に示す。
スーパー記述子は76バイトを法とする1ベースョ及び
1バウンドョであり、ワーキングスペース内での仮想ア
ドレス空間の割当を可能ならしめる。
1ベースョーワーキングスペース内での10ビットの7
6バイトを法とする仮想アドレス。
この10ビット1ベースョは2帽の零ビットにより右に
拡張することによつて36ビットバイト1ベースョに変
換できる。「ロケーシヨンョー1ベースョに関連する仮
想アドレスの36ビットバイトのエントリー即ちスター
トであり、即ち76バイトを法とする1ベースョからの
オフセットである。
「バウンドョョーそのセグメントの最大実効アドレスで
ある10ビットの76バイトを法とする仮想アドレス。
36ビットバイト0バウンドョへの変換は10ビットフ
ィールドを右に2帽のr1ョビツトにより拡張すること
によつて行なわれる。
1バウンドョはRrベースョに関連している。
1フラツグョ、RwJ及びRTJフィールドは標準記述
子に対する記述と同じである。
T=4はスーパー記述子用のタイプ番号である。
(IV)rワーキングスペース番号を有するスーパー記
述子(T=6)Jワーキングスペース番号(WSN)を
有するスーパー記述子のフォーマットを第5図に示す。
1ベースョ、1バウンドョ、1ロケーシヨンョ及びRT
Jはスーパー記述子と同じ定義である。
WSNは1ベースョが関連している(rバウンドョは1
ベースョに関連している)現実のワーキングスペース番
号である。Fは省略されたフラグフィールドである。こ
れら3つのビットは標準記述子の対応する3つのビット
と同じように定義されている。省略されたフラッグの状
態は下記の通りである。(1)実行は許容されない、(
2)特権的でない、(3)空ではない、及び(4)セグ
メントがある。
T=6は記述子をRWSNを有するスーパーョとして定
義する。
(V)rエントリー記述子ョ エントリー記述子はクライム命令と共に使用するために
定義される。
この記述子は記述子レジスタにロードできない。そのフ
ォーマットを第6図に示す。1エントリー●ロケーシヨ
ンョーエントリー記述子がクライム命令のアーギユメン
トとして使用される時、命令カウンタにロードされる1
8ビット語アドレス。
1エントリーロケーシヨンョは新たな命令セグメントの
1ベースョに関連している。
ビット18は解釈されない。RISEG●NO)−これ
は命令セグメントレジスタにロードされるべき記述子番
号である。
RISEG−NOJは1リンケージ・ベースョに関連し
、複数の記述子を単位として表示される。バイトで表示
するため、RISEG・NOJは3つの零て拡張される
。RwJ−リンケージベースが何れのWSRに関連して
いるかを規定する。
T=5はエントリー記述子を規定する。
RLSIZEJ一複数の記述子を単位として表示された
リンケージセグメントの大きさ。
バイトで表わすため、RLSIZEJは3つのRlJビ
ットで拡張される。「リンケージベースョーRwョフイ
ールドによつて指定されたWSRにより規定されるワー
キングスペースに関連したリンケージセグメントの仮想
開始アドレス。
従つてエントリー記述子が使用される時、関連するリン
ケージセグメントはワーキングスペースの最初のiバイ
ト中になければならない。1リンケージベースョの最終
の3ビットは、リンケージセグメントが倍長語の境界か
ら出発しなければならないので零として示される。
(IV)r間接一エントリー記述子ョ クライム命令のアーギユメントとしてのみ寄与しうる間
接記述子が定義される。
間接記述子はエントリー記述子を指示しなければならな
い。フォーマットを第7図に示す。偶数語のビット0−
19は解釈されない。1フラツグョ、RwJ及びRTJ
フィールドの定義は標準記述子用のものと同じである。
T=7は間接−エントリー記述子を規定する。1記述子
のロケーシヨンョーこれはRwJフィールドによつて指
示されたWSRにより規定されるワーキングスペースに
関連したエントリー記述子の偶数語アドレスである。
E−4) クライム命令 第8図に示すクライム命令は高度のソフトウェア保護を
伴つて制御を1つの機能から他のものへと移す機構を提
供する。
この命令は4つの変形を有しており、呼出しと、復帰と
、内部(同一の)及び相互(異なる)命令セグメント内
のための共通ルーチン実施と、並びに内部及び相互ドメ
イン参照のための共通ルーチン実施とを果す。クライム
命令は第8図に示すように各々が36ビットの2語命令
である。第1語は標準命令語フォーマットと有し、その
ビット0−17はアドレスを含んでおり、ビット18−
27はクライム命令用の演算コードを含み、ビット28
は割込み禁止ビットで、ビット29−35(AR及びT
AG)はアドレスに適用されるべき修飾のタイプを指定
する。
クライム命令の第2語は5個の制御フィールドを含む;
S,Dフィールドは単一フィールドとして一緒に使用さ
れる。
クライム及び縮少動作命令の適用と同様、これらの制御
フィールドは下記において定義され、その用法はこの命
令の記載の残部に記述される。(1)Eフィールド E=1 P+1個のパラメータが渡されるかP+1個の付加アー
ギユメントが渡されることを意味する。
E=0 パラメータセグメントが空であつてパラメータが全く
渡されないか又は付加アーギユメントが全く渡されない
ことを意味する。
(2)Pフィールド E=1の時、渡されるべき付加アーギユメントの数又は
パラメータの数を決定する。
(3)Rフィールド 8個のオペランド・ディスクリプタ・レジスタ(DRn
)を介して生じるコミュニケーションの範囲を制御する
8ビットフィールドの各ビットは1つのDRnと関連せ
しめられている。
即ち、Rフィールドビット10はDROと、Rビット1
1はDRlと・・・Rビット17はDR7と関連してい
る。関連ビット0,1状態により下記の如く関連レジス
タが影響される。Rビツトニ0関連記述子レジスタを目
標のインストラクション◆セグメント●記述子●レジス
タの状態にセットする。
復帰と同時に関連記述子レジスタを再記憶させる。Rビ
ツトニ1 記述子レジスタを変更しないで新たなドメインに対して
利用可能にしておくことを意味する。
呼出しの場合、この手順は復帰と同時に再記憶されるレ
ジスタを必要としない。Rフィールドは復帰における後
の使用のために命令の呼出し時にハードウェアにより安
全に記憶されなければならない。(4)Cフィールド ビット18=0 インデックスレジスタO
(XO)における実効アドレスを 渡さない。
=1X0を介して実効アドレスを渡”0 ビット19=1 インデイケータレジスタの主モ
ードビツトの状態を保存する。
=0 スレーブモードをセットする。
ビット20=0複数の記述子を用意する。
=1記述子がアーギユメントセグメ ント中にある。
ビット21=0ポインタのベクトルリストがク
ライム命令の直後に続いて1列 に並んで
記憶され、クライム命 令は偶数語境界から開
始してい る。
=1 ポインタのベクトルリストはオ ペ
ランド記述子レジスター零中 に含まれるセグ
メント記述子に より位置決めされる。
ビット坐及び23は命令の4つの種類のうちのど
の1つが実行されるべきである かを決定
し、下記のように解釈 される。
00:rインワード・トランスフアョー呼出しとして機
能する、即ちその手順はタスク完了のために他の手順を
呼出し、復帰を待機する。
01:rアウトワード・トランスフアョー呼出した手順
への復帰として機能する。
10:rラテラル●トランスフアョー同じPS(パラメ
ータセグメント)及びAS(アーギユメントセグメント
)を保持する。
11:rラテラル・トランスフアョー新たなPS及びA
Sを得る。
インワード、アウトワード及びラテラルの語はスタック
セグメントの使用に関連する。
インワードは安全記憶スタックをブッシュ(プロセス状
態をセーブする)し、新たなパラメータセグメント(P
S)を区画し、新たな(空)アーギユメントセグメント
(AS)を開くことを意味する。アウトワードは安全記
憶スタックをホップ(以前の処理装置状態を再記憶する
)し、円及びASを前のセッティングに戻す。ラテラル
は安全記憶スタックを不変更のままにしておくことを意
味する。第1のラテラルの形10は円及びASレジスタ
を不変更のままにして(もし新たなアーギユメントがス
タック上にブッシュされるとASは増大しうる)おくが
、第2の形11はインワード・トランスファーと同じよ
うにして新たな円及びAS値を有効にする。(5)S,
Dフィールド行先を決める記述子がどこからくるかを示
す。
Cフィールドのビットn及び23によつて決定される如
きクライム命令の4つの種類を考慮する。クライム命令
の実現する技術的効果の1つは、もし何か誤りがその実
行中に生じても、再開可能であることである。従つて多
くのチェックが本システムの状態を変更するに先立つて
行なわれる。(1)rインワードクライム(コール)(
Cフィールドのビット22及び23=00)JS,Dフ
ィールドを使用して、ハードウェアが適当なセグメント
(S)をアクセスし、下記のタイプの1つでなければな
らない記述子(D)を得る。
間接記述子(T=7) エントリー記述子(T=5) 標準記述子(T=0) その次の動作は記述子のタイプによる。
(イ)間接記述子 間接記述子がS,Dフィールドのアーギユメント(引数
)であると、本システムはエントリー記述子を得るため
にこの間接記述子を使用する。
間接記述子によつて指示される記述子はエントリー記述
子でなければならず、さもなくば誤りである。エントリ
ー記述子を得た後、この命令はエントリー記述子のため
の下記と同様に続行する。
(ロ)エントリー記述子 エントリー記述子がS,Dフィールドによ一つて(間接
的又は直接的に)参照された事実は1ドメイン相互間ョ
に移転としてインワードクライムを更に規定する。
エントリー記述子を使用して、本システムはエントリー
記述子によつて記述された新たなリンケージセグメント
(LS)から新たなインストラクション・セグメント記
述子(ISD)を得る。
得られたISDはT=0のタイプの標準記述子でなけれ
ばならず、フラグビット25,27及び28は1でなけ
ればならない。もしフラグビット25及び又は27が零
に等しいと、誤り状態が発生される。もしフラグビット
28=0であると、セグメント喪失誤りが発生される。
エントリー記述子からの1エントリー●ロケーシヨンョ
を使用し、ハードウェアはこの第1命令を含むページが
あることの保証もせねばならない。もしないと、ページ
喪失誤りが発生する。(ハ)標準記述子 もしS,Dフィールドによつて参照される記述子が標
準型記述子であると、インワードクライムはリンケージ
・セグメント・レジスターが変更されないことを意味す
る単一ドメイン内での移転である。
得られた記述子は新たな命令セグメントとなる。フラグ
ビット25,27及び28はチェックされ1であければ
ならなず、さもなくば誤りが発生する。
次に本システムは下記のようにパラメータスタックを用
意するように動作が進行する。
最初、命令の第2語のEビットがチェックされる。E=
0の場合、渡されるべきパラメータはなく、命令のこの
部分はスキップされる。E=1の場合、渡されるべきP
+1個のパラメータがあり下記のように進行する。Cフ
ィールドのビット20をチェックする。ビット20=1
ならパラメータ記述子が用意されておリアーギユメント
スタツク上にある。(後に、パラメータレジスタはこれ
らパラメータを区画するようにセットされるが、現在の
状態がまずセーブされなければならない)。ビット20
=0ならパラメータ記述子が用意される必要がある。パ
ラメータを用意する前に、ハードウェアは全てのパラメ
ータ(それらのうちのP+1個)がアーギユメントスタ
ツク上に記憶できることを保証すること、即ちページ喪
失誤りが生じないことを保証するためのチェックをしな
ければならない。
次にパラメータを用意するためのベクトルリストが存在
する場所を決めるために、Cフィールドのビット21を
チェックする。ビット20=0ならベクトルリストはこ
のクライム命令に続いて1列に並んで記憶され、ベクト
ルはメモリ中の偶数語の境界上にある。ビット21=1
ならベクトルリストはオペランド記述子レジスタ零中に
含まれる記述子によつて位置決めされる。ベクトルはメ
モリ中の偶数語の境界から開始しなければならない。P
+1個のパラメータを用意するためのベクトルはCフィ
ールドのビット21によつて示される位置から得られる
。ベクトルのS,Dフィールド(第15図参照)によつ
て示される記述子が得られる。こうして用意された記述
子は現在のアーギユメントスタツク上の次に利用可能な
位置におかれる。この手順は全てのP+1個の記述子が
アーギユメントスタツク上におかれる迄続行される。も
しベクトル又は記述子が不適当に指定されると誤りが生
じうる。処理装置状態は安全記憶スタック内に保存され
る。
安全記憶レジスタ(SSR)の1ベースョは64語(2
56/くイト)づつ増加一ブッシュされ、。バウンドョ
フイールドは64語づつ減少され、複数のレジスタ内容
のSSR内への自動的記憶がハードウェアによつて行な
われる。安全記憶スタックのフレームがただ1つしか残
つていないか否かを決めるためしくウンドョフイールド
がチェックされ、もしただ1つのフレームしか残存して
いなければ誤りが発生される。状態をセーブしたことに
より本システムは下記の如くレジスタを変更するように
処理できる。
ISR(インストラクション●セグメント●レジスタ)
をロードする。もしこれが単一ドメイン内での移転であ
れば、命令のS,Dフィールドによつて参照される標準
記述子がISRにおかれる。ドメイン相互間変更なら、
エントリー記述子によつて指適された記述子がISRに
ロードされる。IC(インストラクション●カウンタ)
をロードする。単一ドメイン内の場合、実効アドレスは
命令のアドレスフィールドを使用し、表示された蔀及び
又はTAGフィールド修飾を適用することにより形成さ
れる。この18ビット実効アドレスはICに置かれる。
ドメイン相互間の楊合、エントリー記述子に含まれる1
8ビットエントリー位置がICに置かれる。迅R(リン
ケージ・セグメント・レジスタ)をロードする。
単一ドメイン内の場合、リンケージ●セグメントは変化
しない。ドメイン相互間の場合、エントリー記述子から
標準記述子を形成し次の如くLSR中に置く。1ベース
ョニ10個上位桁ビット位置中に零を有する1リンケー
ジ・ベースョである。
1サイズョニ7個の上位桁ビット位置中の零と右側の3
個の1ビットにより拡張されたRLサイズョである。
W=W..T=1、フラグはビット20,22,23,
24,27&28=1、ビット21,25&26=0。
次の如くASR(アーギユメント・スタック・レジスタ
)及びPSR(パラメータ●スタック●レジスタ)を調
節する。
EビツトニO(パラメータを渡さない)、ASRエンプ
ティビット(フラグビット27)をチェックし、もしA
SRフラグビット27=0なら、ASRを変化させず、
それはすでに空で、ベースは変化しない。もしASRフ
ラグビット27=1なら、第9図に示し如くASRベー
ス+(ASRバウンド+1)によつてASRベースを置
換することにより次の利用可能位置を指示するようにA
SRベースをセットする。7バイトを法とする零に等し
くASRバウンドフイールドをセットし、従つて新たな
バウンドフイールドは第10図に示す如くになる。
セグメントが空であることを示すためにASRフラグビ
ット27=0にセットする。PSRエンプティビットを
チェックする。もしPSRフラグビット27=0なら、
それはすでに空と表示されているので、PSRは変化さ
れない。もしPSRフラグビット27=1なら、PSR
ベース及びバウンドをASRベース及びバウンド用に上
述したのと同じ値にセットする。Eビツドニ1(パラメ
ータを渡す)。
ASRベース及びバウンドフイールドからの現在値を使
用し、第11図に示す如くASR及びPSRをセットす
る。上述のことは、パラメータがハードウェアによつて
用意された場合、用意された記述子がスタック上にブッ
シュされる毎にASRバウンドが8バイト(即ち2語又
は1倍長語)づつ増加されたと仮定している。(Ii)
r新たなPSRベースの形成ョ 第12図は新たなPSRベースの形成を示す。
第13図は新たなPSRバウンドを示す。ASR用の新
たなベース及びバウンドはEビツトニ0かつASRフラ
グビット27=1の場合に対して上述したのと同じよう
に形成される。セグメントが空であることを示すためA
SRフラグビット27=0をセットする。
セグメントが空でないことを示すためPSRフラグビッ
ト27=1をセットする。選択的にDR(オペランド記
述子レジス タ)をロードする。
命令の第2語のRフィールドを使用し、各DRに対し次
の様に実行する。もしRビツトニ1なら、関連するDR
には何もしない。もしRビツトニ0なら、関連するDR
を目標のISの状態にセットする。DRの関連のSEG
IDを、ISRを指示するように、その源としてセット
する。選択的にXO(インデックスレジスタO)をセッ
トする。
もしCフィールドのビット18j=1であつて、これが
ドメイン相互間のクライム(エントリー記述子が含まれ
ている)命令であると、命令用の実効アドレスが発生さ
れXOにロードされる。もしCフィールドのビット19
が零に等しいと、スレーブモードが,セットされる。制
御はICによつて指示された命令に行く。(IiI)r
アウトワード・クライム(復帰)(Cフィールドのビッ
ト22&23=01)ョクライム命令のこの種類は安全
記憶スタン2ク上に記憶された最後のフレームによる復
帰として機能する。
S,Dフィールド及びCフィールドのピン目9は無視さ
れる。命令のRフィールドと安全記憶領域にセーブされ
た元のRフィールドは論理的にアンドがとられ2る。そ
の結果のビットがRlJなら関連のオペランド記述子レ
ジスタ(DR)を変更しないでおくことを意味し、また
1零ョならDRにその以前の値を再記憶することを意味
する。
以下のレジスタは安全記憶フレームの最3後の64語か
ら再記憶される。即ち、制御ユニット、レジスタ11,
13及び15を含むドメイン記述子レジスタとして一般
的に呼ばれるレジスタ、2つのRフィールドのアンドの
結果が再記憶することを示すオペランド記述3子レジス
タ、ポインター、長さ、アドレス及びSEGIDnレジ
スタである。Eビットは記述子がアーギユメントセグメ
ントを介して呼出し手順に戻されるべきか否かを決める
Eビツトニ0なら記述子を戻さ4ず、Eビツトニ1なら
P+1個の記述子を戻す。Eビツトニ1であると、Cフ
ィールドのビット20が本システムが記述子を用意する
べきかそれとも記述子がアーギユメントセグメント中に
あるかを決める。もしシステムハードウェアが記述子を
用意するべき(ビット20=0)なら、Cフィールドの
ビット21がベクトルリストの位置を決める。本処理装
置ハードウェアはベクトルを得て、記述子を用意しイン
ワードクライムに対して説明したようにそれらをアーギ
ユメントセグメント上にブッシュする。そして、本ハー
ドウェアはこのアーギユメントスタツク中にこれらのP
+1個の記述子を含むようにASRのバウンドフイール
ドを調整する(この記述はASRバウンドフイールドが
安全記憶からの値ですでに再記憶されているものと仮定
している)。もし記述子がすでにアーギユメントスタツ
ク上にあれば(Cフィールドのビット20=1)、ハー
ドウェアの行なうことはフレーム中にP+1個の記述子
を含むようにASRバウンドフイールドを調整(拡張)
することのみである。
このことは第14図に示されている。従つてアウトワー
ドクライムを介して復帰される手順は呼出し(インワー
ドクライム)以前に利用可能であつたパラメータ及びア
ーギユメントと被呼出し手順によつて戻されるアーギユ
メントを利用可能である。Eビツトニ0であると、記述
子は渡されない。
ASRは安全記憶フレームからその以前の状態に再記憶
される。バウンドフイールドに対する変化は生じない。
もしCフィールドのピン目8=1なら、命令用の実効ア
ドレスを発生しインデックスレジスタ零にロードする。
安全記憶セグメントレジスタは64語だけ減少される。
制御はICによつて指示された命令に行く。インデイケ
ータレジスタ(安全記憶フレーム中の制御ユニット情報
の一部)を再記憶するに当つて、主モードビットがオン
にされる。V)rラテラルトランスファ(同じパラメー
タ及び、同じ又は付加的アーギユメントを有する)ョク
ライム命令のこの種類は安全記憶スタック及びパラメー
タスタックレジスタ(PSR)を変更しないでおく。
即ち現在の処理装置の状態はセーブされず、PSRによ
つて区画されるパラメータセグメントが移動先の手順に
対し利用可能となる。アーギユメントスタツクレジスタ
(ASR)のベースは変更されないままである。しかし
付加的記述子がハードウェアによつてスタック上におか
れ、バウンドが変更される。従つてASRによつて区画
される現在の全記述子が、転送実行中にアーギユメント
スタツクに付加される記述子に加えて、移動先の手順に
対し利用可能である。本ハードウェアが付加的記述子を
用意しアーギユメントスタツク上におくべきか否かは命
令のEビットの状態によつて決まる。
Eビツトニ0では付加的記述子はセグメントに付加され
ない。しかしEビツトニ1ではハードウェアはP+1個
の記述子を用意しインワードクライムについて記述した
のと同様にしてアーギユメントスタツク上にそれらをブ
ッシュする。そして、ASRのバウンドフイールドは復
帰の場合に説明したのと同様にしてフレーム中にこれら
記述子を含むように調整される。Cフィールドのビット
20はこの場合何も意味を持たず、無視される。 この
移転はG,Dフィールドによつて参照される記述子によ
つて、インワードクライムに対してと同様に決定される
単一ドメイン内又はドメイン相互間のものである。
上述した相違の外はこの種類はインワードクライムに対
して記述したように機能する。処理装置の状態はセーブ
されないので、クライムのこの種類を実行する手順はア
ウトワードクライム(復帰)を介して復帰することはで
きない。(V)rラテラルトランスファ(パラメータあ
り又はなし)J安全記憶スタック中に処理装置状態をセ
ーブしない点を除いてこの種類はインワード●クライム
と同じように実行される。
(E−5) ロード記述子及び縮少 1ロード記述子ョ命令は新たな記述子を特定の記述子レ
ジスタ(DRn)にロードするか又はDRnに現在含ま
れている記述子を修飾する機能を提供する。
この命令がDRnに施す作用の定義は1個又は2個の倍
長語対からなるメモリオペランドベクトルで指定される
。ベクトルはメモリから得られ、第15図に示す形式を
有する。このベクトルは2又は4個の語からなり、これ
らはその第1語のビット29によつて決まる。ビット2
9=0に対し、ベクトルは初めの2語からなる。ビット
29=1に対しベクトルは4語からなる。語の斜線部分
はハードウェアによつて解釈されず、任意のビットパタ
ーンを含みうる。ベクトルのうちの不使用の第4語は偶
数又は奇数語境界との一貫性を保持するための規定され
る。ベクトルのフラグビット28は特別の意味を有し下
記の如く解釈される。
フラグビット28=0(縮少)一選択された記述子をD
Rnに複写し、指示されたようにその記述子を縮少する
。フラグビット28=1(複写)一選択された記述子を
DRnに複写し、大きさ、ベース・アダー及び他のフラ
グ・フィールドを無視し、ARnを零にし、SEGID
nを記述子がどこからきたかを示すようにセットする。
前記各オプションを実行する詳細は下記の通りある。(
1)フラグビット28=1 ベクトルのS,DフィールドはDRnにロードされるべ
き記述子の位置を示す。
S,Dフィールドの解釈は下記の通りてある。S=0
においてDフィールドは以下のように)Rnにロードさ
れるべき記述子の位置を規定す)。
D=176(11X3−17778に対しては以下の選
択された・ジスタの内容をDRnに複写する。
D=17608−176′28未定義、誤り状態=17
633インストラクション・セグメン ト・
レジスタ(ISR)=17648※ 安全記憶レジスタ
(SSR)=17653※ リンケージセグメントレジ
スタ (LSR)=176巳※ アーギユメ
ントスタツクレジス 夕(ASR)=176
78※ パラメータスタックレジスタ (P
SR)=177C! DRO,オペランド記述子レジス
夕0=17718DR1 =17728DR2 =17733DR3 =17748DR4 =17753DR5 =177GDR6 =17778DR7D =00008−17578に対しては、記述子はパラメ
ータセグメントからロードされるべきでDは所望の記述
子のインデックスとして使用される。
Dの値はロードされるべぎ記述子の数であり、8を法と
したインデックスとして処理できる。即ちDは3つの下
位桁ビットとして3つの零を付加することによつてバイ
トアドレスに変換できる。DはPSR(パラメータセグ
メントレジスタ)バウンドフイールドに対してチェック
される大きさ(サイズ)である。もしD>1バウンドョ
なら、メモリ誤り(STR)が生じる。もしD<.rバ
ウンドョなら、DはPSRベースに加えられ、アドレス
された記述子がDRnにロードされる。上記※の付いた
場合において、S=0で、かつD−17648−176
78のときは、実行時処理装置が特権的主モードである
ことを要求し、さもなくばコマンド誤りが生じる。
2S=1においてDフィールドは第16図に示
すように2つの副フィールドに分割される。
DOは現在のリンケージセグメントから最初の1帽の記
述子の内の1つを選択するために使用される。選択され
た記述子は所望の2記述子を含む従属的記述子セグメン
トを区画する。DOは下位桁ビットとして3つの零を付
加することによつて相対的バイトアドレスに変換される
。この値はLSR(リンケージセグメントレジスタ)の
バウンドフイールドの3大きさのチェックを行なうため
使用される。もしDOがLSR中のバウンドフイールド
より大きいとSTR誤りが発生し、命令は終了する。さ
もなくば、DO(MOd8)は1−SR中に含まれてい
るベースアドレスに加算され72ピン3卜記述子がメモ
リから得られる。記述子タイプのチェックがなされ、こ
れはTフイールドニ1又は3を有する標準記述子でなけ
ればならない。D1は前記の得られた記述子によつて区
画4,された64個迄の記述子の何れがロードされるべ
きかを決める。
D1は3個の零で拡張することによつて実効バイトアド
レスに変換され、バウンドフイールドに対してチェック
されベースに加算される。
もしD1〉1バウンドョフイールドなら、STR誤りが
発生する。
さもなくばアドレスされた記述子が得られ、タイプがチ
ェックされる。もしT=1又は3で処理装置が特権的主
モードにないと、コマンド誤りが発生する。Tの他の全
ての値に対して記述子はDRnにロードされる。S=2
では現在のアーギユメントセグメントのD番目の記述子
が選択される。
上述した如く、相対的なバイト・オフセットが3つの零
によりDフィールドを拡張することによつて形成される
。この値はASRのバウンドフイールドに対してチェッ
クされる大きさである。もしD>1バウンドョであると
、S゛m誤りが発生する。Dくしくウンドョに対しアド
レスされた記述子が得られタイプがチェックされる。も
しT=1又は3で処理装置が特権的主モードになければ
、コマンド誤りが発生する。さもなくば記述子はDRn
にロードされる。S=3では現在のリンケージセグメン
トのD番目の記述子が選択される。
この動作は?Rは使用される点を除いてS=2に対して
記述されたものと類似している。
相対的バイトオフセットが3つの零でDを拡張すること
によつて形成される。大きさのチェックが松蛋のバウン
ドフイールドによつて行なわれる。
もしDが?Rのバウンドフイールドより大きいと、ST
R誤りが発生する。さもなければ、拡張されたDフィー
ルドがLSRからのベースに加算され記述子が得られて
タイプがチェックされる。もしT=1又は3で処理装置
が特権的主モードにないと、コマンド誤りが発生する。
全ての他のT値に対して記述子がDRnにロードされる
。上記全ての場合に対して、DRnをロードすることに
より、n番目のアドレスレジスタ(,ARn)及びn番
目のセグメントアイデンテイテイレジスタ(SEGID
n)が次のように影響される。
0・・・・・・0→,ARnビットO−23もしDRn
が他のDR又はISRによりロードされると、関連する
SEGIDの内容がSEGIDnに転送される。
さもなくばSEGIDnはヘクトルに含まれているS,
D値にセットされる。もしIPR又はSTR誤りが生じ
ると、DRnlARn及びSEGIDnは変更されない
。(2)フラグビット28=0 フラグビット28=0の時、DRnは最初に、bフラグ
ビット28=1の場合に上述したようにロードされ、次
いで縮少動作が実行される。
実行される縮少動作のため、S,Dによつて指示された
記述子は標準又はスーパー記述子でなければならない。
もしT=1又は3であるなら、処理装置は特権的主モー
ドになければならない。もしT=15ならダイナミック
・リンキング誤りが生じる。5又は7〜14のT値は誤
り状態を生じさせる。
標準及びスーパー記述子に対する縮少動作は以下別々に
説明する。(1)r標準記述子ョ 縮少動作の正確なシーケンスはベクトルが2語から成る
か4語から成るかによる。
これら2つの場合は別々に処理される。(1)2語ベク
トルの場合ベクトルのベースアダー及びサイズフィール
ドはDRnに含まれているベース及びバウンドフイール
ドに関連している。
これらの値はベースアダー+サイズくバンド(BASE
ADDER+SIZEくBOUND)であることをまず
確認されなければならない。
もしベースアダーとサイズの和がバウンドを越えるか、
ベースアダーとサイズフィールドを結合する時にキャリ
ーが発生するならSTR誤りが生じる。確認が成功する
と、新たなベースがベースアダー値をベースに加えるこ
とによつて形成され、このときキャリーが発生するとS
TR誤りが生じる。ベクトルからのサイズフィールド及
び新たなベースがDRnのバウンド及びベースフィール
ドにそれぞれロードされる。2)4語ベクトルの場合ベ
クトルは縮少記述子の新たなベース及びバウンドフイー
ルドを形成するに当つてサブスクリプト(SCPT)フ
ィールドを使用する。
最初次の有効性確認チェックがなされる。有効性確認チ
ェックをバスした後、縮少記述子用の新たなベース及び
バウンドが下記の如く形成される。
新たなベース及びバウンド値がDRnにロードされる。
サブスクリプト機能は添字付きアレー参照用の記述子を
発生するためのソフトウェア用の効率的方法を提供する
ベクトルのフラグフィールドは承諾されたか又は承諾を
与えられない許可を表わし、現在利用可能であるものよ
り多くない許可のみがバスされるような方法(例えば2
つのフラグフィールドのビット対ビットの論理アンド)
でDPnに現在含まれているフラグフィールドと結合さ
れる。
もし現在利用可能であるものよりも多い許可が要求され
るなら、誤りは生じない。2つのフラグフィールドの結
合の結果はDRnフラグフィールドにロードされる。
対応するARnは全て零にセットされる。
SEGIDnは自己識別するようにセットされる。例え
ば今DR3が参照されているとすれば、SEGID3は
第17図に示すようにセットされ、DR3に現在含まれ
ている記述子がDR3から来たことを示す。もし命令の
最初の部分の実行中に誤りが生じると、ARn及びSE
GIDnは変更されない。:Ii)rスーパー記述子ョ 縮少動作がスーパー記述子に対して実行されると、標準
記述子が作られる。
T=4のタイプのスーパー記述子はT=0のタイプの標
準記述子を作成させる。T=6のスーパー記述子はT=
2のタイプの標準記述子を生じる。
縮少動作を2及び4語ベクトルについて次に説明する。
(1)2語ベクトルの場合まず次式によつて示さ れる
如くバウンドチエツクが行なわれる。
バウンドチエツクが成功すると命令が続行される。作
られた標準記述子用のベース値が第18図に示す如くD
Rnのベース及びロケーションフィールドとベクトルの
ベースアダーニフイールドから形成される。 第18
図の加算及びキャリーの処理を下式 に示す。
上記の新たなベース及びベクトルからのサイズフィー
ルドはDRnのベース及びバウンドフイールドにロード
される。
(2)4語ベクトルの場合SCPT(サブスクリプト)
フィールドが標準記述子に対して記述したのと同じよう
にして使用される。
次の3式は結合の順序、キャリー及びボローの処理の
状態を示す。バウンドチエツク 新たに生成されたベース及びバウンドはDRnの対応す
るフィールドにロードされる。
ベクトルのフラグフィールドは標準記述子に対して記載
したようにDRnのフラグフィールドと結合される。D
Rn(7)Tフィールドは次のようにセットされる。1
もしT=4なら0→T2もしT=6なら2→TO対応す
るARnは零にセットされる。
SEGIDnは自己識別するようにセットされ、命令は
終了される。S=0、D=176Q3−176λ S=1かつDOインデックス(16図)を介してリンケ
ージセグメントから得られた記述子がタイプT=1,3
又は15でない。
(もしT=15ならダイナミックリンキング誤りが発生
する。T=1又は3に対しては命令が続行される)。ア
ーギユメント、パラメータ又はリンケージセグメントか
ら得られた記述子(又はS=1の時D1インデックスに
よつて指示された記述子)がタイプT=8乃至1C5!
.はタイプT=5又は7であり、ベクトルのビット28
がOである場合。
コマンド誤りは次のものに対して生じる。S=0かつD
=17648−17678で処理装置が特権的主モード
になつていない。
DRnにロードするために得られた記述子がT=1又は
3のタイプのもので、処理装置が特権的主モードになつ
ていない。
メモリ誤り(STR)は次のものに対して生じる。
S=0、D>PSRのバウンド S=1、DO>?Rのバウンド S=1かつD1〉DOを使用してリンケージセグメント
から得られた記述子のバウンドフイールド。
S=2かつD>ASRのバウンドフイールドS=3かつ
D>松蛋のバウンドフイールド標準記述子についての縮
少動作でベースアダー+サイズ(■)〉バウンド(DR
n)スーパー記述子についての縮少動作でロケーション
(DRn)+ベースアダー(V)+サイズ(■)〉バウ
ンド(DRn)。
ベース及びバウンドの形成又はサイズチェックを行なう
間に違法のキャリー又はボローが生じる時。
記述子がT=15のタイプフィールドによつて参照され
る時は何時でもダイナミック・リンキング・誤りが発生
する。
【図面の簡単な説明】
第1図は本発明の一般的動作を示す流れ図、第2図乃至
第7図は本発明の記述子フォーマット、第8図は本発明
のクライム(CLIMB)命令のフォーマット図、第9
図及び第10図は本発明の1つの局面における記述子ベ
ース形成及びバウンドフオーマツト図、第11,12及
び13図は本発明の他の局面におけるレジスタベース及
びバウンド形成図、第14図は本発明によるレジスタバ
ウンド拡張を示す図、第15〜17図は本発明による記
述子のロードと、記述子の縮少のための記述゛子フォー
マット図、第18図は本発明による新たな記述子ベース
の形成図である。 10:リンケージセグメント、11:リンケージ記述子
レジスタ、12:パラメータセグメント、13:パラメ
ータ記述子レジスタ、14:ア門−ギユメントセグメン
ト、15:アーギユメント記述子レジスタ、18:オペ
ランド記述子レジスタ。

Claims (1)

    【特許請求の範囲】
  1. 1 メモリー内の各データ記憶セグメントを規定しかつ
    限定するための相対アドレスを含む複数の記述子語(第
    2図〜第7図)を用い、該記述子語を保持するための記
    述子レジスタ11,13,15を含む共用アクセス、多
    重プログラムデータ処理システムにおいて、あるプログ
    ラムが他のプログラムを呼出すことを可能にする方法で
    あつて、呼出す側のプログラムの実行中に、呼出される
    プログラムに割当てられ、1つのベースに対して相対的
    な手順のエントリー場所と、前記呼出されるプログラム
    が利用可能な各プログラムの識別及び前記呼出されるプ
    ログラムの実行に必要なデータとを含む夫々のデータ記
    憶セグメントを識別する複数の記述子語を含む前記メモ
    リーの第1のデータ記憶セグメント10を準備し、前記
    メモリーの第2のデータ記憶セグメント12内に、前記
    呼出されるプログラムに一時的に利用可能となるべき付
    加的データ記憶セグメントの夫々を識別する選択された
    記述子語を準備し、前記記述子レジスタの内容を前記メ
    モリー26内へ退避させ、前記記述子レジスタ13内に
    、前記第2のデータ記憶セグメントのベース及びバウン
    ドを識別する記述子語を準備し、システム実行を前記第
    1のデータ記憶セグメントの記述子語の制御へ移すこと
    から成る方法。
JP50125223A 1974-10-21 1975-10-17 多重プログラムデ−タ処理装置の特権メモリをアクセスする方法 Expired JPS6042495B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US51655874A 1974-10-21 1974-10-21
US51655974A 1974-10-21 1974-10-21
US516558 1974-10-21
US516559 1995-08-18

Publications (2)

Publication Number Publication Date
JPS5165534A JPS5165534A (ja) 1976-06-07
JPS6042495B2 true JPS6042495B2 (ja) 1985-09-24

Family

ID=27058889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50125223A Expired JPS6042495B2 (ja) 1974-10-21 1975-10-17 多重プログラムデ−タ処理装置の特権メモリをアクセスする方法

Country Status (5)

Country Link
JP (1) JPS6042495B2 (ja)
AU (1) AU506710B2 (ja)
DE (1) DE2546354A1 (ja)
FR (1) FR2289005A1 (ja)
GB (1) GB1532251A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks
US4079453A (en) * 1976-08-20 1978-03-14 Honeywell Information Systems Inc. Method and apparatus to test address formulation in an advanced computer system
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
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
US4454580A (en) * 1981-09-16 1984-06-12 International Business Machines Corporation Program call method and call instruction execution apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS447524Y1 (ja) * 1965-10-23 1969-03-22
JPS4511372Y1 (ja) * 1967-05-24 1970-05-21

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS528337Y2 (ja) * 1973-05-18 1977-02-22
GB1498116A (en) * 1974-04-18 1978-01-18 Honeywell Inf Systems Data processing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS447524Y1 (ja) * 1965-10-23 1969-03-22
JPS4511372Y1 (ja) * 1967-05-24 1970-05-21

Also Published As

Publication number Publication date
DE2546354A1 (de) 1976-04-22
AU8566175A (en) 1977-04-21
AU506710B2 (en) 1980-01-24
GB1532251A (en) 1978-11-15
JPS5165534A (ja) 1976-06-07
FR2289005A1 (fr) 1976-05-21
FR2289005B1 (ja) 1980-02-15

Similar Documents

Publication Publication Date Title
JP2633488B2 (ja) 並列処理を実行する方法およびシステム
US6681238B1 (en) Method and system for providing a hardware machine function in a protected virtual machine
US5414848A (en) Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
US5210874A (en) Cross-domain call system in a capability based digital data processing system
EP0208428B1 (en) Direct input/output in a virtual memory system
JPH0769844B2 (ja) データ空間への共通アクセス装置及び方法
US5481688A (en) Information processing system having an address translation table loaded with main/expanded memory presence bits
IE50246B1 (en) Multi-programming data processing system process suspension
US5063496A (en) Signaling attempted transfer to protected entry point bios routine
US5940869A (en) System and method for providing shared memory using shared virtual segment identification in a computer system
JPH0328943A (ja) オーバーレイ管理方法
JPS6042495B2 (ja) 多重プログラムデ−タ処理装置の特権メモリをアクセスする方法
US6549953B1 (en) Object encapsulation protection apparatus
JP2850808B2 (ja) データ処理装置およびデータ処理方法
US5802397A (en) System for storage protection from unintended I/O access using I/O protection key by providing no control by I/O key entries over access by CP entity
JP2002073358A (ja) 仮想計算機主記憶のアクセス制御方法
CN114780446A (zh) 基于mpu的内存访问方法、装置、电子设备及存储介质
JPS6339933B2 (ja)
JPH01228038A (ja) アクセス・レジスタ変換機構
JPS60142429A (ja) 仮想計算機システムのi/o実行方法および装置
JPH05265846A (ja) メモリ管理方式
JPS60241135A (ja) アドレス生成方式
JPS6069745A (ja) デ−タアドレツシング方式
JPH01311342A (ja) メモリシステム
JPS6118224B2 (ja)