JPS6041379B2 - 多重仮想アドレス空間式デ−タ処理システム - Google Patents

多重仮想アドレス空間式デ−タ処理システム

Info

Publication number
JPS6041379B2
JPS6041379B2 JP57001078A JP107882A JPS6041379B2 JP S6041379 B2 JPS6041379 B2 JP S6041379B2 JP 57001078 A JP57001078 A JP 57001078A JP 107882 A JP107882 A JP 107882A JP S6041379 B2 JPS6041379 B2 JP S6041379B2
Authority
JP
Japan
Prior art keywords
address
register
address space
mask
instruction
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
JP57001078A
Other languages
English (en)
Other versions
JPS57143783A (en
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS57143783A publication Critical patent/JPS57143783A/ja
Publication of JPS6041379B2 publication Critical patent/JPS6041379B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

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

Description

【発明の詳細な説明】 本発明は実行中プログラムが複数の仮想アドレス空間を
同時にアクセスすることができるようにするための機構
に係る。
先行技術の説明 多重仮想アドレス空間における仮想アドレツシングを支
援するデータ処理システムは、たとえば多重仮想記憶域
(以下「MVS」と略す)システム制御プログラムを支
援するIBMシステム/370のプロセッサに見られる
ように、当該技述分野では周知である。
このようなシステムは各アドレス空間かりニァな仮想ア
ドレス範囲を有するものと規定し、そして実(主)記憶
に置かれたセグメント・テーブルを使用によって、実記
憶のアドレス範囲を定めるようにしている。各セグメン
ト・テーブルは1つのアドレス空間のアドレス範囲を規
定するものであって、その各ェントリは実記憶に置かれ
た1ページ・テーブルの実アドレスを保持することがで
きる。ページ・テーブルの各ェントリは仮想アドレス空
間中の1ページを規定する。このェントリに主記憶中で
利用可能な1ページ・フレームの実アドレスが割当てら
れるのは、このページ・フレ−ムがプログラムの実行に
必要とされる場合だけである。各アドレス空間のアドレ
ス範囲がMVSソフトウェアによって確立されるのは、
ユーザがログオンを行う場合又はアドレス空間識別子(
ASID)のソフトウェア割当てによってシステムを起
動させる場合である。システム制御プログラムはこのA
SIDをセグメント・テーフル記述子(STD)へ変換
し、そしてこのSTDはプログラムが指名されるときプ
ロセッサの1つの制御レジスタヘロードされるので、こ
のSTDは或るプログラムの仮想レジス夕を変換してそ
のアドレス空間で実行するためにハードウェアによって
使用することとができる。各STDは主記憶に置かれた
そのアドレス空間のセグメント・テーフルを位置づける
如きセグメント・テーブル起点(以下「STOJと略す
)フィールドを保持し、さらにこのセグメント・テーブ
ルの長さを指定するフィールドを保持する。システム/
370のァーキテクチャで現用されている24ビットの
アドレスは、任意のSTOで指定されたアドレス空間、
即ち最大18Mバイト(Z4)のりニァな仮想アドレス
範囲を有するアドレス空間で、任意のバイト位置を指定
することができる。
システム/370MVSシステムでは、何千ものアドレ
ス空間を利用することができる。一般に、システムのユ
ーザ相互間の絶縁を図るために、複数のユーザにはそれ
ぞれ異なるアドレス空間が割当てられる。即ち、任意の
ユーザは他のユーザのアドレス空間をアクセスしないよ
うに、他のユーザのASID又はSTDを知らされてい
ないし、またそのユーザ自身のSTDを除く他のユーザ
のSTDをプロセッサの制御レジスタヘロードするとし
、特権能力を使用することも認められていない。しかし
ながら、MVSシステム中のすべてのアドレス空間は、
緒定のMVSシステム制御プログラムをすべてのユーザ
に利用可能にするために、同じ論理アドレスを有するよ
うに規定された共通のセグメントを有している。これら
の共通セグメントは、米国特許第4096573号又は
第4136385号に記述されているような様式で、プ
ロセッサのハードウェアに対し規定されうる。従って、
これらの共通セグメントはシステム中のすべてのアドレ
ス空間でMVSへのアクセスを可能にする。また各ュ.
ーザのアドレス空間は、そのユーザの適用プログラム及
びデータを保持するための、共通でない(即ち、専用の
)セグメント及びページを有する。これらの共通及び専
用領域にはそれぞれ異なる記憶保護キーが割当てられ、
かくて専用領域中のユーザが共通領域中の特権MVSプ
ログラム及びデ−夕をアクセスしないようにしている。
記憶保護キー及びソフトウェア・ロック(これらはすべ
てのプログラムによって承認されなければならない)の
割当てに係るソフトウェアの取決めは、専用領域のプロ
グラムが非特権状態で実行されることを必要とする。か
くて、ユーザの非特権適用プログラムはそのユーザのア
ドレス空間で共通領域中の特権プログラムを直接にアク
セスすることはできないが、このユーザは「監視プログ
ラム呼出し(SVC)」命令によってこのような共通の
特権プログラムと通信することができる。この結果、そ
れぞれ異なるアドレス空間に置かれた非特権プログラム
が相互に絶縁されることになる。云いかえれば、これら
の非特権プログラムはアドレス空間相互間のアクセスを
許容されないが、各アドレス空間の共通セグメントに置
かれたMVS監視を呼出すことによって、それぞれ異な
るアドレス空間に置かれた非特権プログラム相互間の通
信は行うことができるのである。このようなアドレス空
間相互間の通信が、相当なプログラミング・オーバヘッ
ドを包含することは明らかである。このようなアドレス
空間相互間の通信を可能にするシステム/370MNS
の仮想記憶通信方式では、所与のユーザはそのアドレス
空間の専用領域で非特権モードで動作している間に、予
定のMySソフトウェア・サブシステムによって制御さ
れる他のアドレス空間の専用領域と直接に通信するよう
に、該サブシステムから特別の許可を受取る。このよう
な許可を受取った後、このユーザは前記他のアドレス空
間を識別する特別のアドレス空間番号(ASN)を前記
サブシステムへ指定ることによって、該他のアドレス空
間のSTOを第2の制御レジスタヘロードすることがで
きる。次いで、非特権状態にあるこのユーザは、「プロ
グラム呼出し(PC)」命令を使用して前記他のアドレ
ス空間でプログラムの実行を開始させるとともに、「1
次移動(MNCP)」命令及び「2次移動(MVCS)
」命令を使用して、これらのアドレス空間のうち一方か
ら他方へデータを移動させる。このシステム/370の
仮想記憶間通信方式に係る技法は、特磯昭56一564
11号乃至56−56413号明細書に開示されている
。しかしながら、これらの明細書は、プロセッサ中の種
々の汎用レジスタ(以下「GR」と略す)を種々のアド
レス空間へ同時に関連づけるような手段を開示していな
い。また、前述の「1次移動(MVCP)」命令及び「
2次移動(M NCS)」命令を除いて、これらの明細
書に開示された仮想記憶通信方式は、1つの命令(たと
えば、システム/370の記憶城間型命令)中の複数の
オペランドがそれぞれ異なる複数のアドレス空間をアク
セスすることを可能にしていない。最も適切な先行技術
は、特願昭56−33288号明細書に開示された発明
であると考えられる。この発明はプロセッサ中のGRを
それぞれのアクセス・レジスタAR及びそれぞれのアク
セス・レジスタ制御ベクトルARCVと関連づけること
により、任意のGRが一意的なアドレス空間を暗示的に
指定し且つそのアドレス空間の使用方法を制御すること
を可能にしている。これに対し、本発明は、特定のアド
レス空間で実行中の1つ以上の命令によってデータが同
時にアクセスされるような2つ以上のアドレス空間と、
複数のGRとを関連づけるようにしている。従って、侍
豚昭56−33288号明細書に開示された発明と本発
明とは、複数のアドレス空間における同時的アクセスを
支援するためのそれぞれ異なる手段を提供するものであ
る。IBMシリーズ/1プロセッサは、本発明とは異な
る様式で、複数のアドレス空間を同時的にアクセスする
このシリーズ/1プロセッサは、各命令中の任意のソー
ス・オペランドを第1のアドレス空間に関連づけ、この
命令中の任意のシンク・オペランドを第2のアドレス空
間に関連づけ、そしてこの命令のフェッチングを第3の
アドレス空間に関連づけるようにしている。これに対し
、本発明は、命令中のソース又はシンク・オペランドを
所与のアドレス空間に関連づけるために、その属性(ソ
ース又はシンク)を利用していない。そうではなくて、
本発明は、GRがアドレス空間内基底アドレスを保持す
るために明示的に使用されるとき、複数のアドレス空間
の任意のものをこれらのGRの任意のものと暗示的に関
連づけるようにしているのである。かくて、本発明によ
れば、任意のオペランドに対するアドレス空間内基底レ
ジスタとして使用されるGRのマスク・ビットを再割当
てすることによって、このオペランドーこ対するアドレ
ス空間を容易に切替えることができるのである。シリー
ズ1プロセッサのアドレス空間制御に関係する米国特許
には、第4035779号、第4037207号、第4
037214号、第4037215号、第403864
5号、第4042913号及び第405006び号があ
る。
また、複数のアドレス空間に置かれたデータを1つのプ
ログラムによって同時的にアクセスするという技法は、
著名なMULTICSオペレーティング・システムでも
採用されており、たとえば米国特許第3938096号
、第4079453号、第4084松8号及び第417
751び或こ開示されている。これらの特許に開示され
た複数のアドレス空間相互間基底レジスタBRは複数の
仮想アドレス空間を明示的に指定するために、所与のユ
ーザ・プログラム又はシステム制御プログラムによって
使用され、そしてこれらの仮想アドレス空間は、絶対ア
ドレスへの変換が行われた後に実行中プログラム(プロ
セス)によって主記憶中でアクセスされうるのである。
システム/370のGRはこれらのBRのようにアドレ
ス空間識別子を保持していないので、両者は互いに相違
する。システム/370のGRは或るアドレス空間中の
バイト・アドレスを指定するために非特権ユーザによっ
て使用されるか、又はそのアドレス空間で処理可能なデ
ータを保持するために使用される。MULTICSオペ
レーティング・システムに係る前記特許には、GRによ
ってBRを暗示的に指定するという手段が全く開示され
ていないが、このような手段は本発明(及び前掲の特磯
昭56−33288号館細書に開示された発明)の基本
的手段であって、複数のGRが複数のアドレス空間識別
子と直接に関連づけられることを可能にするものである
。発明の要約 本発明はGRマスクを保持するSTOマスク・レジスタ
及び制御手段を提供し、該制御手段はこのSTOマスク
・レジスタ中の複数のディジット位置を複数のORと関
連づけて複数のアドレス空間の選択を制御することによ
り、システム/370のB−D(基底+変位フィールド
)又はX−B−D(指標+基底十変位フィールド)型の
論理アドレス表示を使用して各オペランドをアクセスす
ることを可能にする。
システム/370のアーキテクチャでは、GROを除く
任意のGRはアドレス空間内基底値を保持するBレジス
タとして選択されうる。本発明によれば、Bレジスタと
して使用される任意のGR(以下「基底GR」と呼ぶ)
を、STOマスク・レジスタの制御下で複数のアドレス
空間の任意のものと暗示的に関連づけることができるの
で、オペランド・アドレスのために1つのBレジス夕を
命令で指定すると、そのオペランドのアドレス空間を暗
示的に選択することになり、かくてこのBレジスタの内
容はこのアドレス空間に存在するものとして解釈される
ことになる。実行中のプログラムは予定された任意のア
ドレス空間に置かれていて、指定された複数のアドレス
空間で主記憶からのデータをアクセスすることができる
所与の実行中プログラムは複数のアドレス空間に置かれ
たデータをアクセスしつつ非特権状態で連続的な実行を
行うことができるが、このプログラムの実行前に、特権
状態で動作するシステム制御プログラムは、このプログ
ラムの許可状況を検査し且つその結果に応じて前記複数
のアドレス空間の任意のもの又はすべてのアクセスを許
容する必要がある。この許可状況の検査後、前記複数の
アドレス空間のセグメント・テーブル記述子STDは必
要な制御レジスタヘロードされうる。この型のアドレス
空間制御は、複数のアドレス空間にあるデータをアクセ
スするような記憶城間(以下「SS」と略す)型命令を
含むすべてのシステム/370の命令を限定なしで使用
可能にすることによって、システム/370のアーキテ
クチャと互換性のある仮想記憶間通信方式を提供するこ
とができる。本発明の目的は次の事項を特徴とするプロ
セッサ手段を提供することにある。
1プログラム・ステータス・ワ−ド(以下「PSW」と
略す)に特別のアドレス空間選択モード・ビットを設け
ることなく、システムノ370と互換性のあるプロセッ
サで仮想記憶間通信を可能にすること。
2 特別のアドレス空間移動命令を設けることなく、即
ちシステム/370で使用されているSS型の移動命令
、たとえば「長移動(MVCL)」命令をそのまま使用
して必要なデータを複数のアドレス空間相互間で直接に
移動しうるようにすることによって、システム/370
と互換性のあるプロセッサで仮想記憶間通信を可能にす
ること。
3 既存のプログラム・コンパイラ及びアセンブラを若
干変更するだけで仮想記憶間のコード生成を支援できる
ようにすること。
4 複数のアドレス空間に置かれた複数のデータ・セッ
トを仮想アドレスで直接アドレスできるようにすること
、即ちデータ・セットをアドレス空間内基底値0を有す
る指定された集合として直接にアドレスできるようにす
ること。
5 複数のアドレス空間を非時権状態で同時にアクセス
できるようにすること。
6 システム/370のアーキテクチャのために設計さ
れた既存のプログラム及び本発明の新しいアーキテクチ
ャを使用するように書かれたプログラムを両者ともに実
行することができるようにシステム/370のァーキテ
クチャと互換性があること。
7 複数のアドレス空間の一方から他方へデータのアク
セスを切換える際にプログラム割込み又は特別の命令を
必要としないように、実行中プログラムによって直接的
に且つ簡単に使用できること。
8 実行中プログラムのアドレス空間に置かれたデータ
と他のアドレス空間に置かれたデータを任意の時点で同
時にアクセスできること。
9 任意のGRを利用可能な複数のアドレス空間の任意
のものと関連づけることができるように、各GRに対応
するディジット位置を有するSTOマスク・レジスタを
備えること。
10 アドレス空間内基底値を保持する任意のGRを、
選択された複数のアドレス空間の任意のものと関連づけ
ることができるようにすること。
11 複数のアドレス空間の各々において相対バイト・
アドレス指定を可能にすること。
12 複数のGRと指定された複数のアドレス空間との
対応関係を変更するために、新しいGRマスクを任意の
時間に制御レジス外こロードすることができるような新
しい非特権命令を備えていること。
13 所与のプログラムが指名されるまでこのプログラ
ムへ任意のデータ・アドレス空間を結合しないようなア
ドレス機構を備えていること。
14 所与のプログラムの実行中に、このプログラムが
複数のGRと指定された複数のアドレス空間との対応関
係を変更することを許容するようなアドレス機構を備え
ていること。
15 システム/370のアーキテクチャのために書か
れた任意のプログラム及び本発明のアーキテクチヤを利
用するように書かれた任意のプログラムを任意の時間に
指名できるようにすること。
16 任意のアドレス空間と命令中のソース又はシンク
・オペランドとの間の特別な関係を利用することなく、
複数の制御レジス夕で識別された複数のアドレス空間の
任意のオペランドをアクセスできるようにすること。
17 複数のSTOによって指定された複数のアドレス
空間の任意のオペランドをアクセスできるようにするこ
と。
18 異なるアドレス空間に複数のオペランドを有する
ようなシステム/370のSS型命令の実行を可能にす
ること。
従って、本発明の1つ特徴は、実行中プログラムが指定
された複数のアドレス空間の一方から他方へデータのア
クセスを切替える際に、このプログラムの実行を中断す
ることなく、1つ又は複数の前記アドレス空間に置かれ
たデータを、このプログラムによってアクセスできるよ
うにすることにある。
またこのプログラムは、異なるアドレス空間に複数のオ
ペランドを有する任意の命令を、1つのアドレス空間に
1つ以上のオペランドを有する命令と同様に、簡単に実
行することができる。このプログラムは、複数のアドレ
ス空間に置かれたデータを、特権状態と同様に非特権状
態で簡単にアクセスすることができる。本発明の他の特
徴は、前掲の特顕昭56−33288号明細書に開示さ
れた発明に比較して必要とするハードウェアの量が少く
、従ってプロセッサの記憶制御ユニット及び命令/実行
ユニットの構成を一層簡単にすることができるという点
にある。
本発明によって提供されるSTOマスク・レジスタは、
その複数のディジツト位置をプロセッサ中の複数のGR
とそれぞれ関連づけるための手段を備えている。このS
TOマスク・レジスタはオベレーテイング・システムに
よって所与のプログラムが指名されるときにロードされ
、またこのプログラムがそれに続くシステム/37の型
命令のBフィールドで1つ以上の基底GRを選択替えす
るとき、問題プログラム状態でこのプログラムを実行し
ている間の任意の時間にロードされうる。複数のアドレ
ス空間を識別するため、これらのアドレス空間に対する
セグメント・テーブルの主記憶位置を規定するそれぞれ
のSTOが複数の制御レジスタヘロードされる。このロ
ードは特権状態又は特別の許可を伴う非特権状態で行わ
れる。実行中プログラムは、予定の制御レジスタヘロー
ドされたSTOによって識別されるようなアドレス空間
中に存在しなければならない。このプログラムはデータ
・アドレス空間と異なるアドレス空間に存在してもよく
、或いはそのアドレス空間でデータと混在してもよい。
かくて本発明によれば、実行中プログラム及びデータの
ためにアクセスされるアドレス空間と、オペランド・デ
ータのために実行中プログラムによって同時にアクセス
されうる他のアドレス空間を制御することができる。
さらに、本発明に従ったプロセッサは、オペレーティン
グ・0システムの制御下でSTOマスク・レジスタヘオ
ール零のマスクを初期ロードするだけで、システム/3
70でランするように設計された既存のプログラムにつ
いて使用することができる。
代替的に、このプロセッサがシステム/370モードは
本発明の仮想記憶モードのどちらで動作しているのかを
指示するようにPSW又はその論理的拡張部である制御
レジスタの1フィールドを割当てるとともに、オペレー
ティング・・システムがこのフイールドをシステム/3
70モードに設定する場合にはオペレーティング・・シ
ステムによってSTOマスク・レジスタをオール零へ設
定することができる。しかしながら、本発明については
このような特別のPSWフィールドは不要である。とい
うのは、STOマスク・レジスタのオール零/非零状態
がこれと同じ目的を果たすからである。本発明によって
提供された新しい非特権命令である「GRマスク設定(
SGRM)」命令は、主記憶中の任意の指定位置からS
TOマスク・レジスタへGRマスクをロードすることが
できるので、ユ−ザは複数のアドレス空間のうちどれか
がこのユーザにより割当てられた各基底GRによってア
クセスされるかということを制御することができる。
他の非特権命令である「GRマスク記憶 (STORM)一命令は、STOマスク・レジスタの現
内容を主記憶中の任意の指定位置へ記憶することができ
るので、ユーザは現在のGRマスクを調べることができ
る。
実施例の背景 第1図には通常の命令解読器9が示されている。
命令解読器9はシステム/370のすべての命令を解読
することができる。システム/370の命令に含まれる
命令コードは、この命令の長さ及び型を示すとともに、
この命令中のオペランド・アドレスの位置を示す。オペ
ランド・アドレスには、オペランドの値又はオペランド
・アドレスの1要素を保持するGRのアドレスが含まれ
る。かくて命令コードは、その命令中のどのフィールド
がGRフィールド、即ちR,X又はBフィールドである
かということを規定する。これらのGRフィールドは命
令レジスターOAからゲート11乃至14へ入力され、
該ゲートは命令解読器16から他の入力を受取る。命令
解読器16は、現命令中のGRオペランド・フィールド
がX又はBフィールドであるとき、出力線16Aに信号
を与える。所与の命令で複数のGRが指定されていると
き命令解読器16はこれらのGRフィールドを順次に解
読されるので、一度に1つのGRアドレスがゲート11
乃至14から出力される。
ゲート11乃至14のX及びBフィールド出力は、4ビ
ットのX/Bアドレス・バスでドットORされた後、G
R解読器17Aへ供給される。GR解読器17Aは、1
句固のGR(GRO乃至CR15)を含むGRアレイ1
7から、X又はBフィールドによって指定されたCRを
選択する。(Rフィールドで指定されたGRもGRアレ
イ17から同じ様式で選択されるが、これは本発明の要
旨に関係しないので、図面には示されていない。)×/
Bアドレス・バスに接続されたゲート15は、X/Bア
ドレス・バスに基底GRのBアドレスが存在することを
示す命令解読器16からの信号を線16Bを介して受取
るとき、このBアドレスを本発明に従ったSTOマスク
選択機構20へ供給する。
前述のように、各オペランドの論理アドレスを形成する
ために使用されるX及びBアドレスは、命令解読器9の
制御下でGRアレイ17中の適当なGRへセットされ、
それと同時に現命令中のDフィールドが通常のアドレス
加算器18へ送られるので、該加算器によって各オペラ
ンドの実効論理アドレスが生成される。
この実効論理アドレスの各々はアドレス加算器18から
ゲート18Bを通して論理アドレス・レジスター9へ供
給され、議しジスタは各論理アドレスを変換索引緩衝機
構27を含む通常のアドレス変換機構へ供給する。ゲー
ト18Bは、インバータ18Cからのオペランド・アク
セス信号によって付勢される。順次命令フェツチ信号は
命令アクセス・トリガ10Bから線10Dを介して通知
される。
このトリガ10Bがセットされるのは、命令カウンタI
OCに置かれた実効論理アドレスを使用して次の順次命
令アドレスがアクセスされる場合である。ゲート18A
は、この命令アドレスを論理アドレス・ンジスタ19へ
通過させるように、線10D上の順次命令フェッチ信号
によって付勢される。また線10D上の信号はオペラン
ド・アクセスが存在しないことを示すので、ィンバータ
18Cを介してゲート18Bを禁止する。しかしながら
、分岐命令アドレスはX,B及びDアドレスを使用する
分岐命令のオペランドであるから、この分岐命令アドレ
スはアドレス加算器18でオペランド・アドレスとして
生成され、ゲート18Bを介して供孫舎される。
STO選択機構2川まSTOと呼ばれる主記憶中の実ア
ドレスを出力し、これを変換索引緩衝機構27を含むア
ドレス変換機構に送る。
アドレス変換機構はこのSTOを論理アドレス・レジス
タ19からのセグメント指標SXと加算することにり、
セグメント・テーブル22中のページ・テーブル起点P
TOアドレスをアクセスする。このPTOと論理アドレ
ス・レジスター9からのページ指標をXが加算され、か
くて必要なべージ・テーフル・ェントリのアドレスが得
られる。このページ・テーフル・ェントリは主記憶中に
置かれた所望のページ・フレームの実アドレス・ビット
0−19を含み、この実アドレスは変換索引緩衝機横2
7の変換されたセット・アソシアテイブ・ェントリにあ
るフィールド29へ記入され、また変換アドレス・レジ
スタ33のフィールド32にも記入される。Dフィール
ドのビット20一31は、命令解読器9からアドレス加
算器18及び論理アドレス・レジスタ19を介して、変
換アドレス・レジス夕33のバイト指標BXフィールド
31に供給される。もし所与の論理アドレスに対するア
ドレス変換が以前に行われており、且つその変換アドレ
スが依然として変換索引緩衝機構27で有効であるなら
ば、その制御手段26はST○、セグメント指標SX及
びページ指標PXを変換索引緩衝機構27のェントリ2
8と比較して変換済みのページ・フレーム・アドレス2
9を見出し、これを直ちに変換アドレス・レジスタ33
のフィールド32に記入するので、セグメント・テーブ
ル22を使用する変換プロセスは直ちに終了される。
もし以前の変換結果を変換索引緩衝機構27で利用する
ことができなければ、変換プロセスが継続されることに
なる。即ち、STO選択機構20から与えられるSTO
によってセグメント・テーブル22をアクセスし、この
STOと論理アドレス・レジスタ19からのセグメント
指標SXを加算してセグメント・テーブル22中のPT
Oアドレスを決定し、このPTOアドレスを使用してペ
ージ・テーブル24をアクセスし、そしてPrOアドレ
スと論理アドレス・レジスタ19からのページ指標PX
を加算してページ・テーブル24中のェントリを読出す
ことが必要である。実施例の説明 STO選択機構20の第1実施例は、第2図に示されて
いる。
図示の如く、基底GRのアドレス解読器40は、第1の
ゲート15からBバス15Aの線1 1A乃至1 4A
を介して基底GRのアドレスを受取る。この解読器40
は通常の16ウェィの解読器であって、4ビットのGR
アドレスを入力として受取り、その16本の出力線のう
ち選択された基底CRアドレスに対応する出力線を付勢
する。STOマスク・レジスタ41は16ディジット位
置を有し、これらの位置は16ビットのGRマスクを受
取るように解読器40の出力にそれぞれ接続されている
STOマスク・レジスタ41の各ディジット位置はそれ
ぞれ1ビットを保持する。解読器40の出力は一度に1
つが活勢であり、従ってSTOマスク・レジス夕41の
16ディジット位置のうち1つのデイジツト位置の内容
が所与の時点で出力されるにすぎないから、STOマス
ク・レジスタ41からの16出力はドットORされてS
TO選択レジスタ42の入力へ接続されている。従って
、もしSTOマスク・レジスタ4 1への解読器40の
或る出力線が活勢であれば、該レジスタ中の対応するデ
ィジット位置が出力され、その内容に応じてSTO選択
レジスタ42をセットする。アドレス空間制御用のAN
Dゲート43はSTO選択レジスタ42からの出力を受
取り、またオペランド要求の間にだけ活勢であるような
ィンバータ44からのオペランド・アクセス信号を受取
る。
インバータ44へ入力である命令フェッチ信号はORゲ
ート45から供給され、該ゲートは線10Dを介して順
次命令フェッチ信号を受取り且つ命令解読器16から線
16を介して分岐命令フェッチ信号を受取る。図示の如
く、ANDゲート43及びィンバータ47は、STO選
択レジスタ42に置かれている現マスク・デイジットの
ためのアドレス空間解読器を構成し、この現マスク・デ
ィジツトが0又は1のどちらであるかに応じてゲート4
8又はゲート49を付勢する。
従って、ANDゲート43は、オペランド・アクセス信
号が存在する間に、選択されたマスク・ディジットの状
態に対応する1又は0出力信号を供給する。
ORゲート45から命令フェッチ信号が供給されると、
ANDゲート43は0出力だけを供給する。この0出力
は、実行プログラムを保持するようなアドレス空間に関
連する。ANDゲート43の出力は、STO出力レジス
タ51を介して変換索引緩衝機構27を含むアドレス変
換機構(第1図)へどのSTOが供給されるかというこ
とを制御する。
即ち、ANDゲート43の0出力は、インバータ47を
介してゲート48を付勢することによって、参照番号5
2を付された制御レジスタCRI中の1次STOを供給
させる。またANDゲート43の1出力は、ゲート49
を付勢することによって、参照番号53を付された制御
レジスタCR7中の2次STOを供給させる。これらの
STOは、システム/370MVSの如きオペレーティ
ング・システムにおける複数のアドレス空間に置かれた
複数の非特権プログラム同士の、アドレス空間相互間の
絶縁保護を可能にする。
一方、オペレーティング・システムの特権プログラム、
種々のサブシステム・プログラム、データ・ベース及び
非特権プログラムが単一のアドレス空間で処理されてい
る場合には、前者の3つと後者の1つの間でアドレス空
間内保護を可能にするために記憶保護キーが使用される
。現在の実行中プログラムによって使用されている記憶
保護キーは、PSWに置かれる。キー出力レジスタ61
中の記憶保護キーは、STO出力レジスタ51中のST
Oによって決定されたアドレス空間をアクセスするため
に現に使用されている記憶保護キーである。
現記憶要求が1次又は2次STOのどちらを必要とする
かに応じて、キー出力レジスタ61はゲート62又は6
3によって現記憶要求のキーを供給される。もし、AN
Dゲート43が0出力を供給するならば、ゲート62が
付勢されて現PSWからのキーを供給し、かくて制御レ
ジスタCRI中の1次STOによって規定された1次ア
ドレス空間で現記憶アクセスを行わしめる。もしAND
ゲート43が1信号を供給するならば、ゲート63が付
勢されて2次STOキー・レジスタ60からのキーを供
給し、かくて制御レジスタCR7中の2次STOによっ
て規定された2次アドレス空間で現記憶アクセスを行わ
しめる。この結果、実行中プログラムは、2つのアドレ
ス空間でそれぞれ異なっているような2つのキーを同時
に利用することができる。システム/370のアーキテ
クチヤでは、GR川ま基底GRとして使用することがで
きない。即ち、命令のBフィールドに零があるとGRO
が指定されるけれども、この場合にはGROの実際の内
容に拘わりなく、基底値が零に等しいものとして解釈さ
れるのである。(GROの内容はアドレス生成について
は無視されるが、他の用途については利用することがで
きる。)しかしながら、GRI乃至GR15の任意のも
のは、オペランド・アドレスの生成に使用されるように
、いつでも命令のBフィールドで指定することができる
。第3図の第2実施例は、GROが命令中のBフィール
ドで指定されるとき、1次アドレス空間を選択する。
もしGROが選択されたならば、基底CRのアドレス解
読器40からィンバータ46に至る選択0出力が活勢と
なり、従ってィンバータ46はANDゲート43Aへ禁
止信号を供給するので、Bフィールドが零であるときは
ANDゲート43Aの出力は零に強制されることになる
。このように、ディジット0の機能はィンバータ46に
よって遂行されるので、第3図のSTOマスク・レジス
タ41Aはディジット1〜15を有するにすぎない。第
2図の実施例を第3図の実施例と同じように動作させる
には、第2図のSTOマスク・レジスタ41のデイジッ
ト0を零状態へセットすればよい。
他のすべての側面については、第3図の実施例は第2図
の実施例と同じである。
従って、第3図の実施例は、命令のBフィールドに零が
指定されているとき、制御レジスタCRIからの1次S
TOをSTO出力レジスタ51へ強制するように動作す
る。実行中プログラムは常に制御レジスタCRI中の1
次STOによって規定された1次アドレス空間に置かれ
ていなければならないが、システム中の任意のアドレス
空間のSTOを制御レジスタCRIへ。
ードすることによって、これを1次アドレス空間にする
ことができる。これと同様に、システム中の任意のアド
レス空間のSTOを制御レジスタCR7へロードするこ
とによって2次アドレス空間にすることもできる。これ
らの制御レジスタCRにロードを行うには、システム/
370の特権命令である「制御状報ロ−ド(LCTL)
」命令又は前掲の特顔昭56−56413号明細書に開
示された非特権命令である「プログラム呼出し(PC)
」命令、「プログラム転送(PT)」命令若しくは「2
次アドレス空間番号設定(SSAR)」命令を使用すれ
ばよい。一般に、適用プログラムのユーザは、特権プロ
グラム及びシステム・データを保全するために、非特権
命令の使用だけを許されていて、特権命令を使用しよう
とするとその適用プログラムの実行が停止されるように
なっている。
かくて、オペレーティング・システムは一般に適用プロ
グラムが制御レジスタヘロードすることを許していない
が、前述の「プログラム呼出し(PC)」命令、「プロ
グラム転送(PT)」命令及び「2次アドレス空間番号
設定(SSAR)」命令は特別の許可及び保護特性を有
しているので、制御レジスタヘロードすることができる
。本発明によれば、適用プログラムは予じめ許可された
1組のアドレス空間から特権命令を実行することなく選
択された任意のアドレス空間を、システム/370の命
令セット全体を使用してアクセスできるようになる。
こうするため、本発明は非特権命令である「2次アドレ
ス空間番号設定(SSAR)」命令を使用して、ユーザ
へ予め許可された複数のアドレス空間のうち1つのアド
レス空間を規定する2次STOを制御レジスタCR7(
第2図)へセットするようにしている。非特権モード‘
こあるユーザは、2つの同じアドレス空間で動作してい
る限り、任意の時間にその基底GRの割当てを変更し、
またこれに対応してSTOマスク・レジスタ41(第2
図)又は4 1A(第3図)中のGRマスクを変更する
ことができる。
たとえば、このユーザがいずれかのアドレス空間にある
新しいページをアクセスしている場合には、GRマスク
を変更することなく基底GR値が変更される。ユーザ・
プログラムがGRのアドレス空間割当てにおける変更を
必要とする場合、このユーザ・プログラムは非特権命令
であるGRマスク設定(SGRM)」命令を実行する。
第4図に示されているように、この命令のX,B及びD
フィールドは主記憶位置に前以て準備された必要なGR
マスクをアクセスする。即ち、ユーザ・プログラムが1
餅固のGRの任意のものを基底GRとして割当てること
を必要とする前に、このプログラムは所定の主記憶位置
にGRマスクを形成する。このGRマスクは、割当てら
れるべき基底GRについて必要とされるような2つのア
ドレス空間を割当てるためのものである。これらの基底
GRに割当てられないようなGRマスク中のデイジツト
位置は無視することができるが、或る基底GRの将来の
割当てが知られている場合には、この割当てを含めるこ
とによって「GRマスク設定(SGRM)」命令の追加
の実行を回避することができる。
次いでこのGRマスクを前記主記憶位置からプロセッサ
中のSTOマスク・レジスタ4 1へロードするために
、「GRマスク設定(SGRM)」命令が実行されると
、この割当てが有効になる。任意の基底ORを一時的に
又は永久的に通常のオペラソドR・レジスタ又は指標X
レジス夕として再割当てする場合には、「GRマスク設
定(SGRM)」命令又は他の特別の命令を実行する必
要はない。というのは、任意のGRマスク・ディジット
はそれぞれのGRが基底GRとして使用されている場合
にだけ有効なのであり、従って任意のGRがオペランド
・レジスタ又は指標レジスタとして使用される場合には
そのGRマスク・ディジットは無視できるからである。
従って、このような場合には、GRマスク・ディジット
が特定のアドレス空間に対する任意のGRの割当てを指
示しているか否かに拘わりなく、任意の命令はこのGR
をオペランド・レジスタ又は指標レジスタとして任意の
アドレス空間で使用することができる。「GRマスク設
定(SGRM)」命令を実行しているときには、そのB
フィールドに対するGRマスク・ディジットを変更する
ことができる。
というのは、この基底GRに対する新しいアドレス空間
の割当ては、このGRマスク力STOマスク・レジスタ
41又は41Aへロードされた後でなければ有効になら
ないからである。GRマスクの初期ロードはプログラム
・アドレス空間、即ち1次アドレス空間から行われねば
ならないが、この後は指定された任意のアドレス空間か
らGRマスクをロードすることができる。
ユーザ・プログラムは、非特権命令である「GRマスク
記憶(STGRM)」命令を実行することによって、S
TOマスク・レジスタ41又は41Aに置かれた現在の
GRマスクを任意の時間に調べることができる。
第5図に示されているように、この命令はSTOマスク
・レジスタ41又は41AからのGRマスクを、そのX
,B及びDフィールド‘こよって決定された主記憶位置
に記憶する。第7図は、「GRマスク設定(SGRM)
」命令の動作ステップを一層詳細に示している。
ステップ71は、この命令のX,B及びDフィールドで
指定された主記憶位置の内容をフェッチする。フェッチ
されたこの内容は、2次アドレス空間のアクセスを制御
するためのGRマスク及びキーを保持する。ステップ7
2は、このGRマスクをSTOマスク・レジス夕41へ
ロードする。それに続くステップ73は、前掲の特磯昭
56−56411号明細書に開示されているように、フ
ェッチされた4ビットのキーを制御レジスタCR3中の
キー・マスクKMに対するビット指標として使用する。
このキー・マスク中の複数の1ビットは、特権オベレ−
テイング・システム又はサブシステムが「GRマスク設
定(SGRM)」命令を実行中のプログラムによる使用
を許可し記憶保護キーの値を示す。ステップ74は、制
御レジスタCR3に置かれたキー・マスクの指標付けさ
れたビットが1又は0状態のいずれにあるかをテストす
る。もしこのビットが1状態にあれば、ステップ76は
このキー・フィールドを2次STOキー・レジスタ60
へロードする。かくて、「GRマスク設定(SGRM)
」命令の実行は割込みないこ完了する。
ステップ77は同じプログラム中の次の命令の実行を開
始させる。もしステップ74のテスト結果がNOであれ
ば、「GRマスク設定(SGRM)」命令によってフェ
ッチされたキーは許可されておらず、従ってロードされ
えないので、ユーザ・プ。グラムは非特権プログラムの
許可例外割込みを処理するステップ75に至り、そこで
この割込みの原因が特権監視プログラムによって調べら
れる。制御レジスタCR7中の2次STOは1つのデー
夕・アドレス空間を規定する。このデータ・アドレス空
間が実行中プログラムの任意のオペランド・アドレスに
よってアクセス可能となるのは、該オペランド・アドレ
ス中のBフィールドがSTOマスク・レジスタ41(第
2図)又は41A(第3図)において2次アドレス空間
に関連する1つのGRを指定する場合である。任意のオ
ペランド・アドレス中のBフィールドは、制御レジスタ
CRI中の1次STOによって規定された1次アドレス
空間中のデータをアクセスするために、この1次アドレ
ス空間と関連づけられてもよい。キー零を除くすべての
記憶アクセスのために、キー比較制御が必要とされるこ
とはもちろんである。かくて本発明は、2つのアドレス
空間に2つのオペランド・アドレスを有するようなシス
テム/370のSS型の実行を可能にする。
つまり一方のオペランド・アドレスは(制御レジスタC
R中の1次STOによって規定された)1次アドレス空
間に関連するBフィールドを有し、他方のオペランド・
アドレスは(制御レジスタCR7中の2次STOによっ
て規定された)2次アドレス空間に関連するBフィール
ドを有し、そして各オペランド‘まそのアクセスのため
に異なるキーによって制御されうるということである。
本発明によれば、このようなSS型命令をプロセッサの
性能を低下させないで実行することができるのである。
このような2重アドレス空間のSS型命令は、従来の仮
想記隙通信方式では実行することができない。たとえば
、前掲の特磯昭56−56413号明細書に開示されて
いるような先行方式は、アクセス可能なオペランド・ア
ドレス空間の変更時にPSW中のモード指示子をセット
するべく、「アドレス空間制御設定(SAC)一命令と
呼ばれる特別の命令を実行しなければならない。このよ
うな場合、システム/370のSS型命令は、特別の「
1次移動(MVCP)」及び「2次移動(MVCS)」
命令を除くと、PSWで現に指定されている1つのアド
レス空間をアクセスしうるにすぎない。前記した2重ア
ドレス空間のSS型命令と同等の結果を遂行するために
、このような先行方式は「アドレス空間制御設定(SA
C)一命令の前にrl次移動(MVCP)」若しくは「
2次移動(MVCS)」命令を実行するか、又は多数の
RX型命令を実行しなければならない。いずれにしても
、この先行方式は本発明と比較すると性能の低下を避け
ることができない。このアーキテクチャ上の差異を比較
して示すために、以下では1次アドレス空間のバイト位
置32に置かれた1ワードと2次アドレス空間のバイト
位置32に導かれた他のワードとを比較するために遂行
される命令について検討する。本発明によれば、「GR
マスク設定(SGRM)」命令はプログラムの開始時に
1回だけ実行されるが、これは制御レジスタCRIをG
R5に割当て且つ制御レジスタCR7をGR12に割当
てるように、このプログラムが基底CRを割当てるとき
に行われるのである。本発明の例は次の通りである。(
注:1次及び2次アドレス空間に対するGR5及びGR
12の指定が変更されない限り、後続する任意の2重ア
ドレス空間のSS型又はRX型命令は「GRマスク設定
(SGRM)」命令が再び実行されることを必要としな
い。
)これに対し、先行方式は「1次移動 (MNCP)」命令を使用して2次アドレス空間から1
次アドレス空間へ被比較ワードを移動し、次いで「論理
比較(CLC)」命令を使用して1次アドレス空間中の
両ワードを比較することができる。
これは次に示す通りである。(注:「1次移動(MVC
P)」命令は低速で遂行される命令であって、1時的な
アドレス空間切換え動作を与える。
代替的に、この先行方式はオペランド・アドレス空間を
切換えるために「アドレス空間制御設定(SAC)一命
令を使用することができるが、その場合には同じ比較結
果を得るために一層多くの命令を必要とする。
これは以下に示す通りである。(注:所与の命令がその
記憶オペランドに対するアドレス空間を変更するたびに
、この命令は「アドレス空間制御設定(SAC)一命令
によって先行されねばならない。)本発明はアドレス空
間を切換える命令を必要としないため、既存のコンパイ
ラ及びアセンブラによって生成されるシステム/370
の目的コードとの互換性が1層増大しており、従ってこ
の目的コ−ドで新しい基底GRの割当てが行われるとき
にだけ「GRマスク設定(SGRM)」命令を挿入して
かかるコンパイラ及びアセンブラを修正すればよい。
既存のコンパイラ及びアセンブラについては、命令、定
数、リテラル及び可変データが混在する1つの目的モジ
ュールを生成する一方、命令を含まず且つ定数及び可変
データに対するデータ空間のみを含みうる他のモジュー
ルを生成することは、普通の事柄である。本発明によれ
ば、第2のモジュール(データ)を第1のモジュール(
命令及びデータ)とは異なるアドレス空間に容易に置く
ことができるのみならず、その際に性能が低下するとい
うこともない。これに対し、先行方式は2重アドレス空
間のSS型命令を実行することができないので、命令ス
トリームがそのオペランド・アドレス空間を変更するた
びに追加の「アドレス空間制御設定(SAC)一命令、
「1次移動(MNCP)」命令又は「2次移動(MVC
S)」命令を実行しなければならず、そのため性能が低
下することは避けられない。本発明の方式はこれらの命
令を使用せず、従ってこれらの命令を不要にする。第8
図には、第2図又は第3図の実施例を使用する場合の本
発明の一般的動作が示されている。
ステップ81は、対話式システムに対するユーザのログ
・オン又は該システムにおけるバッチ・ジョブの開始を
示す。ステップ82では、システム制御プログラムはユ
ーザ・プログラムの1次アドレス空間に対するアドレス
空間識別子ASIDを割当てる。次いで、システム制御
プログラムはユーザの保管城を初期設定し、そこにオー
ル零のGRマスを挿入するとともに、この時点でシステ
ム制御プログラムがユーザに割当てた1次STOをこの
保管域に置く。もしこのユーザ・プログラムが作動可能
状態にあれば、該プログラムはシステム制御プログラム
によって直ちに指名される。ステップ83では、システ
ム制御プログラムがこのユーザ・プログラムを指名する
場合、システム制御プログラムはこのユーザの保管城を
アクセスしてオール零のGRマスクをSTOマスク・レ
ジスタ41(又は41A)へ転送するとともに、割当て
られた1次STOを制御レジスタCRIへ転送する。ュ
ーザ・プログラムが実行を開始する場合、もしこのプロ
グラムが2次アドレス空間中のデータをアクセスするこ
とを望んでいるならば、このプログラムはステップ84
において2次アドレス空間のアドレス空間識別子ASI
Dに対応するアドレス空間番号ASNを有する「2次ア
ドレス空間番号設定(SSAR)」命令を発行する。
次いで、この2次アドレス空間に関連する2次STOが
割当てられ、制御アドレスCR7に置かれる。ステップ
85において、もしこのユーザ・プログラムがこの2次
アドレス空間をアクセスしようとしているのであれば、
これは主記憶中にGRマスクを形成するか又はこのGR
マスクを得る。このGRマスクは、このユーザ・プログ
ラムによって規定された各基底CRへ諸アドレス空間が
どのように割当てられるかということを示す。ステップ
86では、ユーザ・プログラムは「GRマスク設定(S
GRM)」命令を発行することにより新しいGRマスク
をSTOマスク・レジスタヘロードする。この新しいG
Rマスクはこのユーザの保管城に置かれている必要はな
く、このユーザによってアクセス可能な所与の領域に置
くことができる。続くステップ87では、STOマスク
・レジス夕41(又は41A)中のGRマスクに従って
、このユーザ・プログラムは1次アドレス空間からの命
令で以て1次及び2次アドレス空間の一方又は両方から
のアクセスされたデータを通常の様式で処理する。ステ
ップ88は、このユーザ・プログラムに対する任意の割
込み結果を示す。
即ち、システム制御プログラムは、STOマスク・レジ
スタ、制御レジス夕CRI及びCR7の内容をユーザ保
管域へ記憶される。このユーザ・プログラムが再び指名
される場合、ステップ83に再び入り、そしてこのプロ
グラムがステップ87でその動作を終を終了するまで、
後続ステップが反復される。第2図及び第3図の実施例
では2つのアドレス空間が同時にアクセス可能であるの
に対し、第6図の第3実施例は最大8つのアドレス空間
を同時にアクセス可能にする。
第2図と第6図の構成は基本的に類似しているので、第
6図では同じ要素である限り第2図中の参照番号が使用
されている。但し、第6図の要素のうち第2図の要素と
類似しているけれども同じでない要素については、第2
図の参照番号の上位側に1桁の数字を追加して示してい
る。かくて、第6図の基底GRアドレス解読器40‘ま
、第2図の基底CRアドレス解読器40と同じでよい。
同様に、解読器40からの16出力線は、第6図のST
Oマスク・レジスタ141の16ディジット位置へ接続
されている。STOマスク・レジスタ1 41の各ディ
ジット位置は、第2図のSTOレジスタ41に見出され
る1ビット・デイジツトのかわりに、3ビット・ディジ
ツトを保持する。第6図において、STOマスク・レジ
スター41中の各ディジツト位置はビット位置0乃至2
によって識別される。従って、第2図のディジットは基
数2を有するのに対し、第6図のディジットは基数8を
有する。第6図の各ヂィジットは、8つのアドレス空間
のうち任意のものを、1母固のGRのうち基底GRとし
て割当てられる任意のGRへ割当てることができる。従
って、STO選択レジスター42は3ビット位置のレジ
ス夕であって、解読器4川こよって現に選択されている
任意のGRに対応するディジット中のビット0乃至2を
受取る。一度に1つのデイジツト力STO選択レジスタ
ー41から出力されるにすぎないので、その各ディジッ
トの対応するビット位置はSTO選択レジスター42の
各入力についてドットORされている。STO選択ゲー
ト143はANDゲート143A乃至143Cから構成
され、該ANDゲートはSTO選択レジスター42から
現に供給されているマスク・ディジットの3ビットにそ
れぞれ関連する。
ANDゲート1 43A乃至1 43Cの各々はィンバ
ータ44から第2の入力を受取り、該ィンバータは命令
フェッチ信号が存在しないとき、即ち命令/実行ユニッ
トによってオペランド・アクセスが要求されているとき
、条件づけ信号を供給する。選択されたGRディジット
の解読器1 47は、STO選択ゲート1 43の出力
を受取り、この選択された3ビット・ディジットを解読
して1本の出力線を付勢することにより、8つのSTO
レジスター72乃至179のうちSTOマスク・レジス
タ141へ通知されている特定の基底GRに対応する1
つのSTOレジスタを識別する。
STOレジスタ172乃至179は、GRディジット解
読器147の8出力線をそれぞれ受取るように接続され
ているが、このうち1つのSTOレジスタがSTO選択
レジスター 42の任意の設定値に応じて付勢される。
STOレジスタ172乃至179にそれぞれ対応するア
ドレス空間キー・レジスター62乃至1 69は、対応
するSTOレジス夕172乃至179で規定された各ア
ドレス空間をアクセスするために実行中プログラムへ許
可された記憶保護キーを保持する。キー・レジスタ16
2乃至1 69の各々は、対応するSTOレジスター7
2乃至179を付勢するようなGRディジット解読器1
47の同じ出力によって付勢される。キー.レジスター
62乃至169へキーをロードするための許可プロセス
は、ユーザがアクセスを許された各アドレス空間に対す
る種々のキー・マスクKMを含でもよい。キー出力レジ
スタ161は、キー・レジス夕162乃至169のうち
GRデイジット解読器147の出力によって選択された
1つのキー・レジスタからキーを受取る。
従って、キー出力レジスター61に保持されているキー
は、これと同時にSTO出力レジスタ15 1に保持さ
れているSTOに対応する。キー出力レジスタ161の
内容は、記憶制御ュニッに設けられた通常のキー比較器
へ供給されるが、これはSTO出力レジスター51の内
容によって現に規定されているアドレス空間を実行中プ
ログラムがアクセスすることを許可されているか否かを
検査するためである。「GRマスク設定(SGRM)」
命令の実行に応答して主記憶からSTOマスク・レジス
タ141へGRマスク・フィールドをゲートするために
、GRマスク・ゲート156が設けられる。
第6図の実施例については、「GRマスク設定(SGR
M)」命令はこの命令中のX,B及びDフィールドによ
って選択された主記憶位置にある48ビットのGRマス
ク及び8つの4ビット・キーをアクセスし、これらをS
TOマスク・レジスター 4 1及びキー・レジスタ1
62乃至169へそれぞれロードする。第4図及び第5
図に示した「GRマスク設定(SGRM)一命令及び「
GRマスク記憶(STGRM)」命令は、48ビットの
ORマスク及び8つの4ビット・キーを含むように拡張
される。キー零は監視プログラムに制限されているので
、第2図又は第6図のアドレス空間キー・レジスタを介
してキー零をロードしないことが望ましい場合がある。
この場合、「GRマスク設定(SGRM)」命令によっ
てアクセスされた任意のキーの内容が零であると、ハー
ドウェアはこれをm対応してロードされるキー・レジス
タの内容を変更すべきではないか、又はt2}対応して
ロードされるキー・レジスタを(たとえば対応するST
Oレジスタ中のSTOを無効化することによって)無効
化すべきものとして解釈することができる。第6図にお
いて、現命令ストリームを含む特定のアドレス空間は、
STOレジスタ172(これは第2図の制御レジス夕C
RIに対応しうる)中のSTOを使用するものとして規
定されうる。そうすると、他の7つのSTOレジス夕1
73乃至179は最大7つの他のアドレス空間を識別す
ることができるので、前記特定のアドレス空間で実行中
のプログラムがアクセス可能なデータをこれらの他のア
ドレス空間に置くことができる。他の点については第6
図の実施例と第2図の実施例の動作を比較すると、前者
では任意の命令中のオペランドが一層多くのアドレス空
間(STOレジスター72乃至179で識別された最大
8つのアドレス空間)に置かれたデータをアクセスしう
るという点が相違するだけである。かくて、第8図を参
照して第6図の実施例の動作を説明することができるが
、そうするためには最大8つのSTO及びそれらに対応
する記憶保護キーが処理されるように第8図を若干修正
すればよい。従って、STOマスク・レジスタに置かれ
た各ディジットの基数は、実行中プログラムによって同
時にアクセス可能なアドレス空間の最大数を制御するこ
とになる。かくて基数4(即ち、1ディジットあたり2
ビット)は同時にアクセス可能な4つのアドレス空間を
支援し、基数16(即ち、1デイジットあたり4ビット
)は同時にアクセス可能な1財固のアドレス空間を支援
する。それゆえ、STOレジスタ及び対応するキー・レ
ジスタの数は、選択された基数の値に応じて調整される
【図面の簡単な説明】
第1図は本発明のセグメント・テーブル起点STO選択
機構を含むプロセッサ中のアドレス変換系を示す図、第
2図は記憶保護キー決定手段を含む本発明の第1実施例
を示す図、第3図は第2図の第1実施例を変形した第2
実施例を示す図、第4図は「GRマスク設定(SGRM
)」命令の形式及び動作を示す図、第5図は「GRマス
ク記憶(STGRM)」命令の形式及び動作を示す図、
第6図は同時に利用可能なアドレス空間を最大8つまで
処理するように拡張された本発明の第3実施例を示す図
、第7図はプロセッサによる「GRマスク設定(SGR
M)」命令の実行を示す流れ図、第8図はSTO選択機
構の使用態様を示す流れ図である。 9……命令解読器、20……STO選択機構、40・・
・・・・基底GRアドレス解読器、41・・・・・・S
TOマスク・レジスタ、42・・・・・・STO選択レ
ジスタ、51・・・・・・STO出力レジスタ、52・
・・・・・制御レジスタCR1、53・…・・制御レジ
スタCR7、56・・・・・・GRマスク・ゲート、6
0・・・・・・2次STOキー・レジスタ、61……キ
ー出力レジスタ。 FIG.3FIG.7 FIG.I FIG.2 FIG.4 FIG.5 FIG.8 FIG.6

Claims (1)

    【特許請求の範囲】
  1. 1 プロセツサ中の複数の汎用レジスタのうち任意の汎
    用レジスタを、1つのアドレス空間における基底アドレ
    スを供給すべき基底レジスタとして割当てることが可能
    であり、プロセツサ中の命令解読器から供給される基底
    レジスタ・アドレス信号に応じて、1つの前記汎用レジ
    スタを基底レジスタとして選択し且つ該汎用レジスタ中
    の基底アドレスを使用して記憶オペランドの実効論理ア
    ドレスを計算するようにした多重仮想アドレス空間式デ
    ータ処理システムであつて、 それぞれの基底レジスタ
    ・アドレス信号によつて選択される複数のマスク・デイ
    ジツト位置を有するアドレス空間マスク・レジスタと、
    複数のアドレス空間指定レジスタと、前記命令解読器か
    ら供給される基底レジスタ・アドレス信号によつて選択
    される前記アドレス空間マスク・レジスタ中の1つのマ
    スク・デイジツト位置の値に応じて1つの前記アドレス
    空間指定レジスタを選択するための手段とを備え、基底
    レジスタ・アドレス信号によつて選択されたマスク・デ
    イジツトの値に応じて、アドレス空間の選択を抑制する
    ようにしたことを特徴とする、多重仮想アドレス空間式
    データ処理システム。
JP57001078A 1981-02-20 1982-01-08 多重仮想アドレス空間式デ−タ処理システム Expired JPS6041379B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US236387 1981-02-20
US06/236,387 US4521846A (en) 1981-02-20 1981-02-20 Mechanism for accessing multiple virtual address spaces

Publications (2)

Publication Number Publication Date
JPS57143783A JPS57143783A (en) 1982-09-06
JPS6041379B2 true JPS6041379B2 (ja) 1985-09-17

Family

ID=22889281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57001078A Expired JPS6041379B2 (ja) 1981-02-20 1982-01-08 多重仮想アドレス空間式デ−タ処理システム

Country Status (4)

Country Link
US (1) US4521846A (ja)
EP (1) EP0058844B1 (ja)
JP (1) JPS6041379B2 (ja)
DE (1) DE3278586D1 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE430199B (sv) * 1982-02-12 1983-10-24 Ellemtel Utvecklings Ab Sett och anordning for att ge identitet at och utpeka en av ett antal funktionsenheter
JPS5958700A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd 記憶保護判定方式
JPS5984391A (ja) * 1982-11-08 1984-05-16 Nec Corp 仮想記憶連絡方式
JPS5984392A (ja) * 1982-11-08 1984-05-16 Nec Corp 仮想記憶連絡方式
JPS6184754A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 拡張アドレス変換装置
JPH0652511B2 (ja) * 1984-12-14 1994-07-06 株式会社日立製作所 情報処理装置のアドレス変換方式
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
JP2709705B2 (ja) * 1985-06-12 1998-02-04 株式会社日立製作所 マルチコンピユータシステムにおけるプログラム管理方法
JPH087680B2 (ja) * 1985-09-19 1996-01-29 日本電気株式会社 命令カウンタのロード装置
CA1280829C (en) * 1985-11-13 1991-02-26 Toshio Matsumoto Main storage access control system for virtual computing function system
US5230079A (en) * 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
US5146606A (en) * 1986-09-18 1992-09-08 Digital Equipment Corporation Systems for interconnecting and configuring plurality of memory elements by control of mode signals
JPS6376034A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd 多重アドレス空間制御方式
JPH0812636B2 (ja) * 1986-12-24 1996-02-07 株式会社東芝 仮想記憶制御方式の計算機システム
JPS63231550A (ja) * 1987-03-19 1988-09-27 Hitachi Ltd 多重仮想空間制御方式
JP2583525B2 (ja) * 1987-09-30 1997-02-19 健 坂村 データ処理装置
US5008811A (en) * 1988-02-10 1991-04-16 International Business Machines Corp. Control mechanism for zero-origin data spaces
US5023773A (en) * 1988-02-10 1991-06-11 International Business Machines Corporation Authorization for selective program access to data in multiple address spaces
US4979098A (en) * 1988-02-10 1990-12-18 International Business Machines Corporation Multiple address space token designation, protection controls, designation translation and lookaside
US5220669A (en) * 1988-02-10 1993-06-15 International Business Machines Corporation Linkage mechanism for program isolation
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
CA1308202C (en) * 1988-02-10 1992-09-29 Richard I. Baum Access register translation means for address generating mechanism for multiple virtual spaces
US5724540A (en) * 1988-03-28 1998-03-03 Hitachi, Ltd. Memory system having a column address counter and a page address counter
US4970639A (en) * 1988-05-20 1990-11-13 International Business Machines Corporation Virtual machine architecture independent program loader
US5134696A (en) * 1988-07-28 1992-07-28 International Business Machines Corp. Virtual lookaside facility
JPH0290349A (ja) * 1988-09-28 1990-03-29 Hitachi Ltd 仮想記憶システムのアドレス空間制御装置
US5226132A (en) * 1988-09-30 1993-07-06 Hitachi, Ltd. Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
US5159677A (en) * 1988-11-21 1992-10-27 International Business Machines Corp. Method and system for storing data in and retrieving data from a non-main storage virtual data space
US5161219A (en) * 1989-01-13 1992-11-03 International Business Machines Corporation Computer system with input/output cache
JPH02202652A (ja) * 1989-02-01 1990-08-10 Hitachi Ltd 多重仮想記憶管理方式
US5127099A (en) * 1989-06-30 1992-06-30 Icom, Inc. Method and apparatus for securing access to a ladder logic programming and monitoring system
JP2768503B2 (ja) * 1989-07-25 1998-06-25 富士通株式会社 仮想記憶アドレス空間アクセス制御方式
JPH03156542A (ja) * 1989-08-29 1991-07-04 Hitachi Ltd アドレス変換装置及びそのためのアドレス情報の管理方法
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
US5210839A (en) * 1990-12-21 1993-05-11 Sun Microsystems, Inc. Method and apparatus for providing a memory address from a computer instruction using a mask register
US5390312A (en) * 1991-09-24 1995-02-14 International Business Machines Corporation Access look-aside facility
US5371890A (en) * 1991-10-30 1994-12-06 International Business Machines Corporation Problem state cross-memory communication using communication memory domains
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5379392A (en) * 1991-12-17 1995-01-03 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US5734817A (en) * 1995-03-01 1998-03-31 Unisys Corporation Method for making a data base available to a user program during data base recovery
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
US5640591A (en) * 1995-05-15 1997-06-17 Nvidia Corporation Method and apparatus for naming input/output devices in a computer system
US5761740A (en) * 1995-11-30 1998-06-02 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US5974550A (en) * 1997-12-12 1999-10-26 Intel Corporation Method for strongly authenticating another process in a different address space
US7395400B2 (en) * 2004-09-20 2008-07-01 Hewlett-Packard Development Company, L.P. Adaptive address space operating system
US20070011429A1 (en) * 2005-07-07 2007-01-11 Vasudevan Sangili Virtual memory key generation
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
TWI421685B (zh) * 2007-10-16 2014-01-01 Mstar Semiconductor Inc 記憶裝置之定址裝置及方法
CN103988173B (zh) * 2011-11-25 2017-04-05 英特尔公司 用于提供掩码寄存器与通用寄存器或存储器之间的转换的指令和逻辑

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3412382A (en) * 1965-11-26 1968-11-19 Massachusetts Inst Technology Shared-access data processing system
FR122199A (ja) * 1973-12-17
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
US4050060A (en) * 1976-04-30 1977-09-20 International Business Machines Corporation Equate operand address space control system
US4079453A (en) * 1976-08-20 1978-03-14 Honeywell Information Systems Inc. Method and apparatus to test address formulation in an advanced computer system
US4084226A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4096573A (en) * 1977-04-25 1978-06-20 International Business Machines Corporation DLAT Synonym control means for common portions of all address spaces
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces

Also Published As

Publication number Publication date
EP0058844B1 (en) 1988-06-01
DE3278586D1 (en) 1988-07-07
EP0058844A2 (en) 1982-09-01
EP0058844A3 (en) 1985-03-13
US4521846A (en) 1985-06-04
JPS57143783A (en) 1982-09-06

Similar Documents

Publication Publication Date Title
JPS6041379B2 (ja) 多重仮想アドレス空間式デ−タ処理システム
US5280614A (en) Apparatus and method for controlling access to data using domains
US4945480A (en) Data domain switching on program address space switching and return
US5809546A (en) Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US5023773A (en) Authorization for selective program access to data in multiple address spaces
US5220669A (en) Linkage mechanism for program isolation
US4355355A (en) Address generating mechanism for multiple virtual spaces
EP0040702B1 (en) Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4430705A (en) Authorization mechanism for establishing addressability to information in another address space
US5555385A (en) Allocation of address spaces within virtual machine compute system
US5619671A (en) Method and apparatus for providing token controlled access to protected pages of memory
US5628023A (en) Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view
US7165164B2 (en) Method and apparatus including heuristic for sharing TLB entries
US4500952A (en) Mechanism for control of address translation by a program using a plurality of translation tables
JPS623359A (ja) 仮想記憶方式
US5900019A (en) Apparatus for protecting memory storage blocks from I/O accesses
JPS6122825B2 (ja)
EP0327852A2 (en) Information handling system
JPS6248258B2 (ja)
US5426748A (en) Guest/host extended addressing method and means with contiguous access list entries
JPH077363B2 (ja) アクセス装置及び方法
US5724551A (en) Method for managing I/O buffers in shared storage by structuring buffer table having entries include storage keys for controlling accesses to the buffers
US5787309A (en) Apparatus for protecting storage blocks from being accessed by unwanted I/O programs using I/O program keys and I/O storage keys having M number of bits
EP0348053B1 (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
US5390312A (en) Access look-aside facility