JPS6248258B2 - - Google Patents

Info

Publication number
JPS6248258B2
JPS6248258B2 JP58228621A JP22862183A JPS6248258B2 JP S6248258 B2 JPS6248258 B2 JP S6248258B2 JP 58228621 A JP58228621 A JP 58228621A JP 22862183 A JP22862183 A JP 22862183A JP S6248258 B2 JPS6248258 B2 JP S6248258B2
Authority
JP
Japan
Prior art keywords
page
bit
senc
instruction
scp
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
JP58228621A
Other languages
English (en)
Other versions
JPS59130000A (ja
Inventor
Furanku Saroka Suchiibun
Chapin Sumisu Guren
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 JPS59130000A publication Critical patent/JPS59130000A/ja
Publication of JPS6248258B2 publication Critical patent/JPS6248258B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means

Landscapes

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

Description

【発明の詳細な説明】
〔技術分野〕 本発明は単一プロセツサ(UP)システムまた
は多重プロセツサ(MP)システムで使用される
仮想記憶装置の記憶内容の保全性を維持する技術
に関し、特に回復不能な故障停止につながる記憶
内容の破壊を防止する技術に関する。 〔先行技術〕 現在オペレーテイングシステムは、不測のシス
テム故障停止を引き起こし得る次のような問題に
弱い。 (1) 主記憶装置にあるシステム制御プログラム
(SCP)域への無許可ユーザアクセス。これは
プログラミング上の規則を無視した故意のまた
は偶然のブランチによつて生じる。普通はシス
テムユーザがSCPルーチンおよびSCPデータ域
をアクセスすることはできないようになつてい
るが、この規則が破られると、オペレーテイン
グシステムがうまく働かなくなる。 (2) 無許可ユーザまたは誤つた命令実行による
SCPデータ域(オペレーテイングシステム全体
に影響を及ぼす制御ブロツクなど)の変更。 IBMシステム/370で採用されている保全手段
には次のようなものがある。 (1) CPU問題状態:問題状態にあるCPUは特殊
なSCP命令を実行できない。このような命令は
特権状態においてのみ実行可能である。 (2) 記憶保護キー:キー制御型の保護は実記憶装
置(主記憶装置)におけるブロツク即ちページ
フレームにのみ適用される。デイスクなどの補
助記憶装置にあるページは、ページ不在の発生
によつて実記憶装置中の選択されたページフレ
ームへ転送された場合にのみ記憶保護キーを割
当てられる。実記憶装置のページフレームに割
当てられるキー(記憶装置キーと呼ばれる)は
0から15までの値をとる。実記憶装置をアクセ
スするプログラムにもキー(プログラムアクセ
スキーまたは単に保護キーと呼ばれる)が割当
てられ、対応するプログラム状況ワード
(PSW)中にプログラムアクセスキーが書込ま
れる。普通は、ページフレームへの記憶要求
は、そのページフレームに割当てられている記
憶装置キーと現PSW中のプログラムアクセス
キーとが一致した場合にのみ許可される。ただ
し、プログラムアクセスキーが0の場合は、記
憶装置キーの値が何であつても一致とみなされ
る。取出し要求は一般にキーの一致、不一致に
は関係なく許可されるが、取出し保護ビツトが
オンになつていると、キーの一致を必要とす
る。 (3) 下位アドレス保護:これは、実記憶装置の0
番地から511番地までのアドレス範囲にある情
報がCPUの割込み処理の間に誤つて破壊され
てしまうのを防ぐもので、制御レジスタ0のビ
ツト3がオンであればこの保護機構が働く。 (4) 許可プログラム機構(APF):これは純粋
のソフトウエアによる許可制御で、IBM
MVS/370において許可プログラムだけがSVC
ルーチンを使用できるようにしたものである。 以上の他にも様々な記憶装置保全技術が提案さ
れているが、その多くは実記憶装置に関するもの
である。ところが、本発明が対象としている仮想
記憶装置の保全は実記憶装置の保全とは異なり、
アドレス空間の概念および仮想アドレスから実ア
ドレスへの変換を考慮する必要がある。最近では
ユーザ毎に異なつたアドレス空間を用いる多重仮
想記憶装置(MVS)も登場している。 このような仮想記憶装置の保全技術として、ア
ドレス変換に使用されるセグメントテーブルの各
エントリにセグメント保護ビツトを設けておき、
このビツトがオンのセグメントに対しては記憶動
作を禁止するようにしたものがある。しかしセグ
メントの大きさは最大1Mバイトにも達するか
ら、もう少しきめ細かい保護を与えたい場合には
これでは不十分であり、またセグメント保護ビツ
トでは記憶動作は禁止できるが、取出し動作は禁
止できない。 仮想アドレスの上位2ビツトを利用してアドレ
ス空間を4つの区域、即ちシステムコード域、シ
ステムデータ域、ユーザコード域およびユーザデ
ータ域に分ける技術も提案されているが、各区域
の大きさが固定されているため融通性に欠け、ま
た4つの区域が均等に使用されるわけではないか
ら、アドレス空間の使用効果が悪くなる。 〔発明の目的〕 本発明の目的は仮想記憶装置の記憶内容を主記
憶配装に合せてセグメントよりも小さいページ単
位で保護することにある。 〔発明の概要〕 本発明はページテーブルを使用して仮想アドレ
スから実アドレスへの変換を行い、変換済みのア
ドレス対をTLB(変換索引緩衝機構)に保持し
ているデータ処理システムにおいて、各仮想ペー
ジの記憶内容を識別するフラグをページテーブル
中の対応する各エントリに含ませておき、ページ
テーブルを使用したアドレス変換によつてTLB
にエントリを作る際に変換済みのアドレス対の他
にこのアドレス対に対応するページテーブルエン
トリ(以下、PTEと略称する)中のフラをTLB
へ転送し、変換すべき仮想アドレスをTLBへ送
つてこの仮想アドレスに対応するTLBエントリ
が見つかればその中に含まれるフラグを読出し、
このフラグを変換された仮想アドレスに係るアク
セス要求と比較して両立しない場合はCPUに割
込みをかけるようにしたことを特徴としている。 〔実施例の概要〕 各仮想ページに記憶内容を識別するPTE中の
フラグとして、SCP実行可能/変更不能
(SENC)フラグおよびデータ専用(DO)フラグ
が使用される。SENCフラグは、もしオンであれ
ば、対応するページがSENCページであること、
即ち、SCPの命令またはデータを含んでいること
を示す。通常のユーザプログラムあるいはアプリ
ケーシヨンプログラムがSCPデータを変更するこ
とは許されない。ページテーブルもSCPデータの
1つである。DOフラグは、もしオンであれば、
対応するページ(DOページ)の記憶内容がデー
タだけで、実行可能なコードあるいは命令を含ん
でいないことを示す。従つて、例えばDOページ
に対して命令取出し要求が出された場合には、そ
のような命令(実際はデータ)は無効であるか
ら、CPUに割込みがかけられる。SENCフラグお
よびDOフラグはいずれも1ビツトのフラグであ
るから、以下これらをSENCビツトおよびDOビ
ツトと呼ぶことにする。 SENCビツトおよびDOビツトは、第1実施例
においては、アドレス変換に伴つてそのままペー
ジテーブルからTLBへ転送され、DOビツトはシ
ステムDOビツトとして扱われる。システムDOビ
ツトは、対応するページがSCPデータだけを含ん
でいることを示す。SCPデータの変更はSENCペ
ージから取出された命令によつてのみ可能であ
る。SENCビツトおよびシステムDOビツトがい
ずれもオフであれば、対応するページは普通のペ
ージ(例えばS/370ページ)として扱われ、記
憶保護キーによる制約を除くと、取出し動作およ
び記憶動作を自由に行うことができる。 PTE中のSENCビツトおよびDOビツトは第2
実施例においては、その4種類の組合せによつて
ページの内容を識別する。即ち、(1)両ビツトが共
にオフであればS/370ペーを示し、(2)SENCビ
ツトがオンでDOビツトがオフであればSENCペ
ージを示し、(3)SENCビツトがオフでDOビツト
がオンであればユーザDOページを示し、(4)両ビ
ツトが共にオンであればシステムDOページを示
す。 SCP以外のプログラム、例えばアプリケーシヨ
ンプログラムがSCP命令またはSCPデータを含む
ページをアクセスするのを禁止するため、SCP状
態と呼ばれる特別の内部状態が設定される。SCP
状態は、機械チエツク割込み、外部割込み、プロ
グラム割込み、入出力割込み、命令(監視プログ
ラム呼出し、プログラム呼出し、プログラム転送
など)による割込みなどのハードウエア割込み
PSWの切替えによつて開始される。SCP状態
は、CPUがSENCページから命令を取出している
限り続き、非SENCページから命令が取出される
と、リセツトされる。 記憶装置に対するアクセス要求が関連する
SENCビツトおよびDOビツトと両立しない場合
には次のようなプログラム割込みXX、YYまたは
ZZが生じる。 XX―DPUが非SCP状態において、SENCページ
から取出した命令を実行しようとした。 YY―CPUがシステムDOページから命令を取出
して実行しようとした。 ZZ―CPUが非SCP状態において、システムDOペ
ージにデータを記憶しようとした。 本発明は非パイプライン型のCPUおよびパイ
プライン型のCPUのいずれにおいても実施でき
るが、実施態様は後者の方が複雑になる。という
のは、パイプライン型のCPUにおいては、SENC
ページからプリフエツチされた命令が実行される
までSCP状態を終了させてはいけないからであ
る。即ち、ページがSENCページか非SENCペー
ジかは命令のプリフエツチ中に識別できるが、
SCP状態の終了、割込みXX、YYまたZZの発生、
およびオペランド記憶禁止信号の発生は、保全性
を損う命令の実行まで遅らされる。 〔実施例の説明〕 第1図はページテーブル中に写像された仮想記
憶装置を含むシステム記憶装置1を示している。
仮想記憶装置の幾つかのページは主記憶装置の
4Kバイトのページフレーム中に存在している。
7A〜7MはSCPルーチンを含むSENCページの
フレームを表わし、例えば7Aは資源初期設定モ
ジユール(RIM)プログラムを含み、7Mは仮想
記憶管理(VSM)プログラム(VSM)を含む。 システムDOページはページフレーム8A〜8
Pにある。ページフレーム8Aは複数のPTE9
A〜9Nを有するページテーブル9を含む。各
PTEは複数のフイールドから成り、ページフレ
ーム実アドレス(PFRA)、無効(I)ビツト、
SENCビツトおよびDOビツトを含んでいる。1
0A〜10Zはアプリケーシヨンコード(プログ
ラム)およびアプリケーシヨンデータを含むペー
ジフレームである。 すべてのページテーブル中のすべてのPTEフ
イールドを初期設定するのにRIMプログラムが使
用される。この初期設定では、PFRAフイールド
はブランク値に設定され、Iビツトはすべてオン
状態に設定される。RIMプログラムはまたSENC
ページの内容を主記憶装置中の割当てられたペー
ジフレームにロードし、すべてのページテーブル
中のSENCビツトを対応するページの内容に従つ
てオン状態またはオフ状態に設定し、すべての
DOビツトをオフ状態に設定(リセツト)する。
RIMプログラムによる初期設定の様子を第6図に
示す。この流れ図の説明は不要であろう。なお、
第6図中のLPAライブラリは仮想記憶オペレー
テイングシステムOS/VS2において、連係パツ
ク域(LPA)に入るように指定されたモジユー
ルを含む区分データセツトのことである。 VSMプログラムはユーザプログラムのあとで
CPUにより実行され、仮想アドレスミスが生じ
たときにページフレームを割振るためにデイスパ
ツチされる。その際、要求されたページのアドレ
スから特定のPTEが選択され、PFRAが割当てら
れ、更にIビツトがオフ状態に設定されて、当該
PTEが有効になつたことを示す。VSMプログラ
ムは、現仮想ページのアドレスにつき所定のペー
ジ内容割当てテーブル(図示せず)を検査し、変
換中のページがDCページであることがこのテー
ブル中に示されていると、PTEのDOビツトをオ
ン状態に設定する。 以下に詳述するように、VSMプログラムは第
1実施例においては、システムDOページに対し
てのみDOビツトをオン状態に設定し、第2実施
例においては、システムDOページおよびユーザ
DOページのいずれに対してもDOビツトをオン状
態に設定し、更にシステムDOページの場合は
SENCビツトもオン状態に設定する。 本発明の第1実施例を第2図に示す。第1実施
例では、ページテーブル9におけるSENCビツト
およびDO(システムDO)ビツトの状態が下記の
表1に従つて解釈される。
【表】 アプリケーシヨ
ンまたはSCPに
よる変更が可能
【表】 要求されている仮想アドレスによつて各ユーザ
のページテーブルにある特定のPTEが選択され
ると、そのSENCビツトおよびシステムDOビツ
トが各々線12および11を介してCPUの記憶
制御装置へ送られ、TLB(変換索引緩衝機構)
10の選択されたエントリ中に入れられる。 TLB10のエントリは、命令実行回路16か
ら母線61へ出力された仮想アドレスによつて選
択される。この選択方法やTLB10の基本動作
ならびにアドレス変換方法は従来どおりでよい。
TLB10の各エントリは、有効(V)ビツト、
セグメントテーブル起点(STO)、仮想アドレ
ス、ページフレーム実アドレス(PFRA)、
SENCビツトおよびシステムDOビツトを含んで
いる。なお、ページテーブルの他にセグメントテ
ーブルを使用するアドレス変換は周知であるし、
セグメントテーブル自体は本発明とは無関係であ
るから、詳細について省略する。 よく知られているように、要求された仮想アド
レスがTLB10になければ(TLBミス)、特定の
TLBエントリが選択されて、その仮想アドレス
フイールドに要求された仮想アドレスが書き込ま
れ、選択されたPTE(例えば第1図の9N)の
PFRAフイールドの内容が選択されたTLBエント
リのPFRAフイールドに書き込まれ、更にVビツ
トがオン状態に設定されて当該TLBエントリが
有効であることを示す。 従来と異なる点は、SENCビツトおよびシステ
ムDOビツトが選択されたTLBエントリ中に書き
込まれることである。 母線61上の仮想アドレスがTLB10にあり
且つそのエントリが有効であれば(TLBビツ
ト)、SENCビツトおよびシステムDOビツトの状
態が各々線62および63へ読出される。AND
回路21は両ビツトの許されない組合せ(表1に
よれば両方共“1”)を検出して、変換指定例外
を示す信号を線31へ出力する。 SCP(システム制御プログラム)を実行するた
めにはCPUがSCP状態になつている必要があ
る。CPUがSCP状態であるかどうかはSCP状態ト
リガ17によつて示される。このトリガ17は命
令実行回路16から線66へ出力されるPSW切
替え(割込み)信号によりセツトされる。SCP状
態においては、たとえSCPが0のアクセスキーを
用いていたとしても、キーの一致がなければ主記
憶装置においてページフレームの内容を変更する
ことはできない。 CPUがSENCページから命令を取り出している
限りSCP状態が続く。CPUが非SENCページから
の命令の実行を試みると、対応するTLBエント
リ中のSENCビツトがオフになつているため、直
ちに線62へオフ状態の信号が出力され、反転器
22で反転されてAND回路25の一方の入力を
条件付ける。AND回路25の他方の入力には、
命令実行回路16からの命令取出し要求信号が印
加される。これらの入力条件が満たされると、
AND回路25はSCP状態トリが17をリセツト
する信号を発生する。 第2図の実施例は、1つの命令の取出しおよび
実行が終つてから次の命令の実行を開始するとい
う非パイプライン型のCPUに適している。 SCP状態について要約すると、(1)命令はSENC
ページから取出され、(2)どのシステムDOページ
における変更もすべてSENCページから取出され
たSCP命令によつてのみ行われ、(3)主記憶装置へ
書込みを行う場合は、たとえキー0を使用してい
たとしてもキーの一致を必要とする。第2図の回
路はこれら3つの条件を実現させる。 AND回路23,27および28からは4種類
の仮想ページ保護信号が各々発生される。 AND回路27は、SENCページから命令を取出
すときにはCPUがSCP状態にあるようにする。
AND回路27への入力は、反転器18から線7
1へ出力される非SCP状態信号、線62上の
SENCビツト信号、線67上の命令取出し要求信
号、および現命令アドレスが実アドレスではなく
て仮想アドレスであることを示す線69上の
DAT(動的アドレス変換)モード信号である。
AND回路27から線37へ出力されるのは割込
みXX信号で、それによりCPUに割込みがかけら
れてPSWが切替えられ、更にこの型の割込みの
原因を識別するために一意的な割込みコードXX
がプログラム割込みコード記憶位置に書込まれ
る。 AND回路23は、SCP状態の間にSENCページ
から取出されたSCP命令だけがシステムDOペー
ジを変更できるようにする。AND回路23の入
力は、線71上の非SCP状態信号、線63上のシ
ステムDOビツト信号、線68上のオペランド記
憶要求信号、および線69上のDATモード信号
である。線33へ出力されるのは割込みZZ信号
で、プログラム割込みによるPSWの切替えを行
わせる(プログラム割込み処理プログラムを呼出
すため)。更に、割込みZZ信号は割込み原因を識
別するために一意的な割込みコードZZを発生し
て、プログラム割込みコード記憶位置に書込む。 AND回路28は、システムDOページからはデ
ータだけが取出されるようにする。システムDO
ページからデータを取出す場合、CPUはSCP状
態および非SCP状態のいずれであつてもよい。
AND回路28の入力は、線63上のシステムDO
ビツト信号、線67上の命令取出し要求信号、お
よび線69上のDATモード信号である。線38
へ出力されるのは割込みYY信号で、それによ
り、CPUがシステムDOページから命令を取出そ
うとしていることを示す割込みコードYYが発生
される。 AND回路26は、線68上のオペランド記憶
要求信号および反転器43からの非割込みZZ信
号により条件付けられて、線36へ記憶可能信号
を出力する。この信号はオペランド記憶動作のた
めの条件付け信号として、第3図のCR回路51
からのキー一致信号と共にアクセス制御回路(図
示せず)へ送られる。AND回路23が割込みZZ
信号を発生しているとAND回路26が条件付け
られないので、アクセス制御回路によるオペラン
ド記憶動作が阻止され、かくて記憶装置の保全性
が保たれる。更に、割込みZZ信号はこのような
オペランド記憶要求を出した命令の実行を抑止す
る。 第3図は、記憶装置のアクセスを保護キーに基
いて制御する回路を示し、第2図または第4図
(第2実施例)の仮想ページ保護回路と協働し
て、線52へキー一致信号を出力する。この信号
は記憶装置アクセス要求を許可する条件付け信号
としてアクセス制御回路(図示せず)へ供給され
る。アクセス要求を許可する条件はOR回路51
の出力だけではなく、記憶動作の場合はAND回
路26からの記憶可能信号も必要である。他の許
可条件は本発明とは無関係であるから、ここでは
触れないことにする。OR回路51がキー一致信
号を発生しなければ、アクセス制御回路の動作は
禁止される。 OR回路51の出力は、記憶装置キーアレイ
(図示せず)からレジスタ71へロードされた記
憶装置キーとPSW72のアクセスキーとが一致
しているか否かを示す。次の3つの条件のうちの
1つでも満たされているとこれらのキーは一致し
ているとみなされ、OR回路51はキー一致信号
を発生する。 (1) レジスタ71のビツト位置0〜3にある記憶
装置キーとPSW72のビツト位置8〜11に
あるアクセスキーとが実際に一致している。 (2) 第2図のOR回路70Aから線70へ取出し
要求信号が発生されたときに、レジスタ71の
ビツト位置4にある取出し保護ビツトFがオフ
である。 (3) 非SCP状態においてPSW72のアクセスキ
ーの値が0である。 条件(1)は比較器73で検出され、条件(2)は取出
し保護ビツトFを反転する反転器74と、反転さ
れた取出し保護ビツトおよび線70上の取出し要
求信号る受取るAND回路75とによつて検出さ
れ、条件(3)はPSW72のアクセスキーが0か否
かを調べるゼロ検出器77と、線19上のSCP状
態信号を反転する反転器79と、これらの出力を
受取るAND回路78とによつて検出される。 本発明の第2実施例を第4図および第5図に示
す。第2実施例の基本は表1とは少し異なり、下
記の表2のようになつている。
【表】 第2実施例では、SENCビツトおよびDOビツ
トのすべての組合せが使用され、それによつてペ
ージが通常のページ(S/370ページ)か、ユー
ザDOページか、SENCページか、あるいはシス
テムDOページかを示す。システムDOページおよ
びユーザDOページはいずれも実行可能なコード
を含まないという点で共通しているが、変更方法
が異なつている。システムDOページはSCP状態
の間にSENCページから取出されたSCP命令だけ
が変更できる。ユーザDOページはSCP命令だけ
でなく、S/370ページから取出されたユーザ命
令によつても変更できる。 第2実施例で使用されるページテーブルの形式
は、SENCビツトおよびDOビツトの設定が表2
に従つて行われることを除くと、第1実施例と同
じである。ただしTLB10Aの形式は第1実施例と
は少し異なつており、ユーザDOビツトのフイー
ルドが各エントリに追加されている。更に各エン
トリ中のSENCビツト、システムDOビツトおよ
びユーザDOビツトを表2に従つて設定するた
め、線11上のDOビツト信号および線12上の
SENCビツト信号を解読する解読器として働く
AND回路13,14および15が設けられてい
る。AND回路13は線11が非活動状態にあり
且つ線12が活動状態にあるときに条件付けられ
て、選択されたTLBエントリ中のSENCビツトを
オン状態に設定するAND回路14は線11およ
び12がいずれも活動状態にあるときに条件付け
られて、選択されたTLBエントリ中のシステム
DOビツトをオン状態に設定する。AND回路15
は線11が活動状態にあり且つ線12が非活動状
態にあるときに条件付けられて、選択された
TLBエントリ中のユーザDOビツトをオン状態に
設定する。 選択されたTLBエントリ中のSENCビツト、シ
ステムDOビツトおよびユーザDOビツトは各々線
62,63および64へ読出される一線62およ
び63はOR回路82の入力に接続されており、
いずれかの線が活動状態にあれば、OR回路82
はAND回路83の一方の入力へ条件付け信号を
供給する。AND回路83の他方の入力には、命
令取出し制御回路87から線89を介して命令取
出し要求信号が供給される。従つてAND回路8
3は、データしか含んでいないシステムDOペー
ジまたはユーザDOページに対して命令の取出し
が行われようとしたときに条件付けられ、線83
AへDO命令取出し信号を発生する。 システムDOページおよびユーザDOページに対
して共通のDO命令取出し信号を発生する代り
に、システムDO命令取出し信号およびユーザDO
命令取出し信号を別々に発生するようにしてもよ
い。その場合は、OR回路82は不要であるが、
AND回路83を2つ設けて、それらに線63お
よび64を別々に接続する必要がある。それに合
せて第5図の回路も少し修正しなければならな
い。こうしておくと、割込みYYが生じたとき
に、それがシステムDOページ違反YY1によるも
のか、ユーザDOページ違反YY2によるものかを
区別して示すことができる。 AND回路84は、システムDOページからオペ
ランドが取出されようとしていることを検出する
もので、線63上のシステムDOビツトおよび線
91上のオペランド取出し要求信号を受取る。こ
れらの線がいずれも活動状態にあると、AND回
路84はシステムDOページからのオペランド取
出しを示すシステムDOオペランド取出し信号を
線84Aへ出力する。 AND回路85はSENCページから命令が取出さ
れようとすることを検出するもので、選択された
TLBエントリから線62へ読出されたSENCビツ
トおよび命令取出し制御回路87から線89へ出
力された命令取出し要求信号を受取る。これらの
入力によつて条件付けられると、AND回路85
は命令SENC信号を線85Aへ出力する。 命令取出し制御回路87から線89,91およ
び92へ各々出力される命令取出し要求信号、オ
ペランド取出し要求信号およびオペランド記憶要
求信号は記憶装置アクセス回路88にも供給され
る。この回路88は通常のやり方で命令またはオ
ペランドを主記憶装置から取出し、命令の場合は
母線88Aへ出力し、オペランドの場合は母線8
8Bへ出力する。 線83A,84A,85A,88A,88Bお
よび92はいずれも第5図の回路に接続されてい
る。第5図は例えばIBM3033処理装置で使用され
ているような命令ユニツト(真中の破線より上
側)および実行ユニツト(真中の破線より下側)
に本発明を適用した例を示したもので、命令ユニ
ツトは3つの命令バツフア95A,95Bおよび
95Cを含んでいる。これらの命令バツフアは母
線88A上の命令を受取るものであるが、一対の
新しいフラグビツトISおよびYYが付加されてい
る点がIBM3033処理装置のものと異なつている。
フラグビツトISは線85A上の命令SENC信号に
より設定され、フラグビツトYYは線83A上の
DO命令取出し信号により設定される。命令取出
し時にこれら3つの命令バツフアのうちの1つが
選択され、更にその中の特定の命令記憶位置が選
択されて、そこに命令がロードされ且つ関連する
フラグビツトISおよびYYが設定される。 実行すべき命令は、選択された命令バツフア9
5A,95Bまたは95CからフラグビツトISお
よびYYと共に命令レジスタ96へ転送される。
命令レジスタ96へロードされた命令の実行に必
要なオペランドデータは、第4図の回路88によ
り主記憶装置から母線88Bへ取出され、オペラ
ンドレジスタ97へロードされる。このとき線8
4A上のシステムDOオペランド取出し信号によ
つてオペランドレジスタ97のフラグビツトSD
が設定される。IBM3033の処理装置はオペランド
レジスタ97を複数備えているが、第5図には説
明を簡単にするため1つしか示していない。 第5図の下側の実行ユニツトに含まれる回路1
17,118,122,123,126,12
7,128および143は第2図の回路17,1
8,22,23,26,27,28および43に
各々対応している。 SCP状態トリガ117は実行ユニツトの割込み
制御回路102から線102Aへ出力される割込
み信号によりセツトされる。セツトされたトリガ
117は線19を活動状態にし、CPUがSCP状
態にあることを示す。トリガ117がリセツトさ
れていると、反転器118の出力が非SCP状態を
示す。トリガ117は、命令レジスタ96ヘロー
ドされたフラグビツトISがオフのときに、線96
Aおよび反転器122を介してリセツトされる。
従つて、SCP命令以外の通常のユーザ命令が実行
のために命令レジスタ96へ転送されてくると、
SCP状態は終了する。 AND回路123は、命令レジスタ96にある
実行中の現命令がシステムDOページから取出し
たオペランドを変更して、非SCP状態においてシ
ステムDOページへ記憶させようとしたときに割
込みZZを検出する。このため、オペランド記憶
要求信号、オペランドレジスタ97にあるフラグ
ビツトSD、PSWからのDATモード信号および反
転器118からの非SCP状態信号が各々線92,
97A,102Bおよび118Aを介してAND
回路123へ供給される。AND回路123はこ
れらの入力によつて条件付けられると、割込み制
御回路102に接続された線123Aへ割込み
ZZ信号を発生してCPUに割込みをかける。 AND回路127は、非SCP状態において命令
レジスタ96へ転送されてきた命令がSENCペー
ジから取出されたものであつたときに割込みXX
を検出する。このため、命令レジスタ96にある
フラグビツトIS,PSWからのDATモード信号お
よび反転器118からの非SCP状態信号が各々線
96A,102Bおよび118Aを介してAND
回路127へ供給される。AND回路127から
の割込XX信号も線127Aを介して割込み制御
回路102へ送られ、割込みを生ぜしめる。 AND回路128は、CPUがシステムDOページ
またはユーザDOページから取出した命令(実際
はデータ)を実行しようとしたときに割込みYY
を検出する。このため、命令レジスタ96にある
フラグビツトYYおよびPSWからのDATモード信
号が各々線96Bおよび102Bを介してAND
回路128へ供給される。他の割込み信号と同じ
く、AND回路128からの割込みYY信号も線1
28Aを介して割込み制御回路102へ送られ
る。 AND回路126は、反転器143がAND回路
123からのZZ割込み信号を受取つていない限
り、線92上のオペランド記憶要求信号に応答し
て、線36へ記憶可能要求信号を出力する。 命令およびオペランドは各レジスタ96および
97から実行ユニツトの実行制御回路101へ送
られる。実行制御回路101は命令のOPコード
を解読し、オペランドを用いて命令を実行する。
割込みのために命令の実行を抑止する必要がある
場合は、割込み制御回路102が線102Cへ抑
止信号を出力する。 実施例の動作を要約すると、主記憶装置のペー
ジフレームが仮想ページアドレスに割当てられる
ときに、そのアドレスに特定の記憶装置キーが割
当てられる。IBM MVSのようなオペレーテイン
グシステムにおいては、最初に特定のアクセスキ
ーが各プログラムに割当てられる。ページフレー
ムのキー割当てはPTEでは認識されない。 SENCページにあるSCPルーチンは、アクセス
キーおよび記憶装置キーの完全な一致を条件とし
て、システムDOページおよびユーザDOページの
内容を変更することができる。アプリケーシヨン
プログラムのような非SENCページのルーチン
は、システムDOページへの記憶はできないが、
関連する取出し保護ビツト(F)がオフであれば、デ
ータの取出しは可能である。非SENCページから
の命令によるシステムDOページへの記憶要求は
プログラム割込み(ZZ)を引き起こし、命令の
実行が抑止される。 非SENCページのルーチンはSENCページのル
ーチンをアクセスできない。ハードウエア割込み
によつてSCP状態を設定し、それによりSENCペ
ージの命令をアクセスするためには、非SENCペ
ージのルーチンはSVC命令を使用しなければな
らない。このような、非SENCページおよび
SENCページのルーチンの間には強固なインター
エースが存在している。SCP状態は、非SENCペ
ージへのアクセス要求が出されると解除される。 アドレス変換用のページテーブルはシステム
DOページに含まれているから、ページテーブル
中のSENCビツトおよびDOビツトは、CPUが
SCP状態にあるときにSENCページからの命令に
よつてのみ変更することができる。 SCPの初期ロードおよびSENCビツトの初期設
定はRIMプログラム(第6図)によつて行われ
る。RIMプログラムは、モジユールをデイスクか
ら主記憶装置へ転送するたびに、そのモジユール
が連係パツク域LPA(IPL時にロードされる再入
可能ルーチンを入れる仮想記憶域)から読取られ
たものであるかどうか、またはSENCページとし
て特別に保護されるべき属性を持つているかどう
かを検査する。検査結果が肯定的であれば、当該
モジユールを含むすべてのページのPTEにある
SENCビツトがオン状態に設定される。RIMプロ
グラムは、初期ロードされたページテーブル中の
すべてのSENCビツトがいずれかの状態に設定さ
れるまで上述のプロセスを繰返す。 ページテーブル中のDOビツトは、RIMプログ
ラムの実行前にシステムリセツト操作によつてオ
フ状態に設定され、VSMプログラムがページの
割振りを行うときにオペレーテイングシステムま
たはユーザの要求に応じてオン状態に設定される
か、またはオフ状態のままに保たれる。SENCペ
ージからの命令だけがシステムDOページの内容
を変更できる。 VSMプログラムは割振り要求があると、ペー
ジテーブルをアクセスしてI(無効)ビツトの状
態を検査し、無効ページ(無効PTE)を必要数
だけそろえる。SENCページは予め割振られてい
るので、VSMプログラムによる割振りの対象に
はならない。 システムDOページのためPTEを設定する場
合、VSMプログラムは第1実施例においてはI
ビツトをオフ状態に設定し且つDOビツトをオン
状態に設定するが、第2実施例においては、Iビ
ツトをオフ状態に設定し且つSENCビツトおよび
DOビツトの両方をオン状態に設定する。第2実
施例で使用されたユーザDOページの場合は、I
ビツトがオフ状態に設定され且つDOビツトだけ
がオン状態に設定される。 上述のように、各PTEに含まれるSENCビツト
はIPL時においてのみ設定されるが、DOビツト
は通常動作時に動的にオン状態またはオフ状態に
設定される。 最後に、本発明をパイプライン型のCPUに適
用した第2実施例におけるSCP状態トリガ117
(第5図)のリセツトについて注意しておく。こ
のリセツトのタイミングは、実行に先立つて命令
を主記憶装置か命令バツフアへプリフエツチして
おかねばならないので、第1実施例のSCP状態ト
リガ17のリセツトより遅らせる必要がある。ト
リガ17は非SENCページからの命令取出しによ
つて直ちにリセツトされるが、第2実施例におい
ては、非SENCページから命令が取出されても、
まだ実行されていないSCP命令がいくつか命令バ
ツフアに残つているので、これらのSCP命令が実
行されてしまうSCP状態トリガ117をリセツト
すべきではない。トリガ117がリセツトされる
のは、非SENCページから取出されて命令バツフ
アに保管されている命令が、実行のために命令レ
ジスタ96へ転送されたときである。
【図面の簡単な説明】
第1図はシステム記憶装置の記憶内容の一例を
示すブロツク図。第2図は本発明の第1実施例を
示すブロツク図。第3図は記憶保護キーの制御回
路を示すブロツク図。第4図および第5図は本発
明の第2実施例を示すブロツク図。第6図はRIM
プログラムの流れ図。

Claims (1)

  1. 【特許請求の範囲】 1 ページテーブルを使用して仮想アドレスから
    実アドレスへの変換を行い、変換済みのアドレス
    対をTLBに保持しているデータ処理システムに
    おいて、 各仮想ページの記憶内容を識別するフラグを前
    記ページテーブル中の対応する各エントリに含ま
    せておき、 前記ページテーブルを使用したアドレス変換に
    よつて前記TLBにエントリを作る際に、前記変
    換済みのアドレス対の他に該アドレス対に対応す
    るページテーブルエントリ中の前記フラグを前記
    TLBへ転送し、 変換すべき仮想アドレスを前記TLBへ送つ
    て、該仮想アドレスに対応するTLBエントリが
    見つかれば、該TLBエントリに含まれる前記フ
    ラグを読出し、 前記TLBから読出したフラグを前記仮想アド
    レスに係るアクセス要求と比較して、両立しない
    場合はCPUに割込みをかけるようにしたことを
    特徴とする仮想記憶装置保護方法。
JP58228621A 1983-01-10 1983-12-05 仮想記憶装置保護方法 Granted JPS59130000A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/456,882 US4581702A (en) 1983-01-10 1983-01-10 Critical system protection
US456882 1989-12-26

Publications (2)

Publication Number Publication Date
JPS59130000A JPS59130000A (ja) 1984-07-26
JPS6248258B2 true JPS6248258B2 (ja) 1987-10-13

Family

ID=23814518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58228621A Granted JPS59130000A (ja) 1983-01-10 1983-12-05 仮想記憶装置保護方法

Country Status (5)

Country Link
US (1) US4581702A (ja)
EP (1) EP0115877B1 (ja)
JP (1) JPS59130000A (ja)
CA (1) CA1200919A (ja)
DE (1) DE3485605D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01270815A (ja) * 1988-04-22 1989-10-30 Doriimu Sogo Kenkyusho:Kk ウォーターベッドフレーム

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638426A (en) * 1982-12-30 1987-01-20 International Business Machines Corporation Virtual memory address translation mechanism with controlled data persistence
IN165278B (ja) * 1984-09-21 1989-09-09 Digital Equipment Corp
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
JPH0658649B2 (ja) * 1985-10-28 1994-08-03 株式会社日立製作所 仮想記憶装置における領域管理方法
US4761737A (en) * 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
JPS6376034A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd 多重アドレス空間制御方式
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5317717A (en) * 1987-07-01 1994-05-31 Digital Equipment Corp. Apparatus and method for main memory unit protection using access and fault logic signals
US5140684A (en) * 1987-09-30 1992-08-18 Mitsubishi Denki Kabushiki Kaisha Access privilege-checking apparatus and method
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
US5293612A (en) * 1989-05-11 1994-03-08 Tandem Computers Incorporated Selective dump method and apparatus
US5265227A (en) * 1989-11-14 1993-11-23 Intel Corporation Parallel protection checking in an address translation look-aside buffer
JPH0736170B2 (ja) * 1991-04-03 1995-04-19 工業技術院長 マルチプロセッサシステム
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
JP3520102B2 (ja) * 1993-12-28 2004-04-19 株式会社東芝 マイクロコンピュータ
US5590309A (en) * 1994-04-01 1996-12-31 International Business Machines Corporation Storage protection cache and backing storage having system control element data cache pipeline and storage protection bits in a stack array with a stack directory for the stack array
US5715420A (en) * 1995-02-10 1998-02-03 International Business Machines Corporation Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer
US5809546A (en) * 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US6643759B2 (en) 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US6651156B1 (en) 2001-03-30 2003-11-18 Mips Technologies, Inc. Mechanism for extending properties of virtual memory pages by a TLB
US9092322B2 (en) * 2011-03-31 2015-07-28 Renesas Electronics Corporation Processor system and control method thereof
US8918885B2 (en) * 2012-02-09 2014-12-23 International Business Machines Corporation Automatic discovery of system integrity exposures in system code

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2258112A5 (ja) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US3947823A (en) * 1973-12-26 1976-03-30 International Business Machines Corp. Means for coordinating asynchronous main store accesses in a multiprocessing system using virtual storage
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
US4376297A (en) * 1978-04-10 1983-03-08 Signetics Corporation Virtual memory addressing device
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01270815A (ja) * 1988-04-22 1989-10-30 Doriimu Sogo Kenkyusho:Kk ウォーターベッドフレーム

Also Published As

Publication number Publication date
DE3485605D1 (de) 1992-04-30
EP0115877B1 (en) 1992-03-25
EP0115877A3 (en) 1988-06-01
CA1200919A (en) 1986-02-18
EP0115877A2 (en) 1984-08-15
JPS59130000A (ja) 1984-07-26
US4581702A (en) 1986-04-08

Similar Documents

Publication Publication Date Title
JPS6248258B2 (ja)
US5280614A (en) Apparatus and method for controlling access to data using domains
CA2024444C (en) Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US8972670B2 (en) Use of test protection instruction in computing environments that support pageable guests
EP0067344B1 (en) Data processing system with guest architectural support
US6823433B1 (en) Memory management system and method for providing physical address based memory access security
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
US7330942B2 (en) Method for efficient virtualization of physical memory in a virtual-machine monitor
US5852738A (en) Method and apparatus for dynamically controlling address space allocation
US8051301B2 (en) Memory management system and method providing linear address based memory access security
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JPH04247528A (ja) データ空間への共通アクセス装置及び方法
US5339417A (en) Computer system with two levels of guests
US5873124A (en) Virtual memory scratch pages
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
JP7291149B2 (ja) メモリ・アクセスにおける保護タグ・チェックの制御
US7512768B2 (en) Dynamically sharing a stack between different code segments
EP0550286A2 (en) 2-Level multi-processor synchronization protocol
US5459872A (en) Software control of hardware interruptions
US5280592A (en) Domain interlock
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
JP2535086B2 (ja) リング削減ロジック装置
EP0550285A2 (en) Machine with two units of operation