JPS6138508B2 - - Google Patents

Info

Publication number
JPS6138508B2
JPS6138508B2 JP2987481A JP2987481A JPS6138508B2 JP S6138508 B2 JPS6138508 B2 JP S6138508B2 JP 2987481 A JP2987481 A JP 2987481A JP 2987481 A JP2987481 A JP 2987481A JP S6138508 B2 JPS6138508 B2 JP S6138508B2
Authority
JP
Japan
Prior art keywords
address
memory
program
protection
protection information
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
JP2987481A
Other languages
English (en)
Other versions
JPS57147197A (en
Inventor
Hitoshi Suzuki
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2987481A priority Critical patent/JPS57147197A/ja
Publication of JPS57147197A publication Critical patent/JPS57147197A/ja
Publication of JPS6138508B2 publication Critical patent/JPS6138508B2/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/14Protection against unauthorised use of memory or access to memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】 本発明はメモリ保護に関するものである。記憶
装置への誤まつたアクセスによるデータの変更を
防ぐためには大別してキー方式とセクメント方式
と呼ばれる2つの方法がある。
まずキー方式について説明する。電子計算機の
中央処理装置(以下CPUと略記する)側にはア
クセスを行なう記憶装置のアドレスを保持するア
ドレスレジスタと、アクセスを起こすプログラム
に結びつけられるプログラムキー(PK)とがあ
る。一方、メモリは複数のブロツクA,B,C…
…に分割されており、各ブロツクに結びつけられ
たメモリキーKA,KB,KC……がある。メモリ
アクセスが行なわれるときには、アクセスされる
メモリのブロツクに結びつけられたメモリキー3
がアドレスレジスタの指示によつて取り出され、
上記のプログラムキーと比較される。メモリ保護
は誤つたメモリアクセスを防止するためのもので
あるから、比較の結果がキー同志の一致を示すと
きはアクセス可能とし、キー同志の不一致を示す
ときにアクセスを禁止する。
このような例としてはU.S.P.3377624、U.S.
P.3576544が挙げられる。
次に、セグメント方式を説明する。CPU側に
は、アクセスを行なうメモリのアドレスを保持す
るアドレスレジスタと、アクセスを起こすプログ
ラムに結びつけられる境界アドレスおよびサイズ
をそれぞれ格納するレジスタがある。境界アドレ
スは、該当プログラムがアクセス可能なメモリ域
の先頭アドレスを示し、サイズはそのメモリ域の
大きさを示している。メモリアクセスが行なわれ
るときには、アドレスレジスタの示すアドレスが
境界アドレスとサイズとによつて示される特定の
メモリ域の内にあるか外にあるか否かが調べら
れ、その結果にもとづいてメモリ保護動作がなさ
れる。すなわち、アドレスレジスタの示すアドレ
スが、境界アドレスとサイズとにより示されるメ
モリ域の内であればアクセス可能とし、外側であ
ればアクセスを禁止する。
ところで、通常、多くのデータ処理装置は一旦
市場に受入れられた後に更に多くの機能を要求さ
れることがしばしば起こる。ところが従来のデー
タ処理装置においては記憶保護方式にもよるが、
記憶保護機能を拡張する場合には、新しい基本的
構造を必要とすることが多く、その為に新旧ソフ
トウエアの互換性が得られなくなるという重大な
問題があつた。ソフトウエアの比重が大きくなつ
た最近においては、これを救済するために、新し
いデータ処理装置では従来装置との互換性モード
と称する動作モードを持ち、中央処理装置のプロ
グラム状態語(PSV)に識別子を設け、PSWの
内容を変更する命令(例えばPSWコード命令)
を用いて上記識別子を変更してデータ処理装置全
体の動作モードを切換え、従来装置のソフトウエ
アを有効化させる手段がとられている。この場合
は新旧それぞれのモードで動作可能なように制御
プログラムはそれぞれのモードについて用意さ
れ、また、これらを切り替えるためのプログラム
も用意されている。しかしながら、PSWの内容
を変更する命令は一般に特権命令と呼ばれる特殊
な命令で、制御プログラムしか発行することがで
きない。このため通常の処理プログラムから上記
識別子を変更させる場合には該処理プログラムと
制御プログラムとの間で連絡をとらなければなら
ないが、このためにかなり大きなソフトウエアオ
ーバヘツドを生じてしまう。記憶保護機能を拡張
してよりきめ細かい記憶保護を実現しようとする
時は、このオーバヘツドはより問題となる。さら
には上記識別子を変更するために特定の命令を必
要とするため、従来装置のソフトウエアを一部変
更しなければならない場合が生じる。特に従来装
置のソフトウエアを記憶保護機能を拡張した環境
下で動作させる場合には、従来ソフトウエアの中
に上記のPSWを変更する命令もしくは処理プロ
グラムと制御プログラムとの間で連絡を行なうた
めの手続き処理を追加挿入しなければならず、事
実上不可能になつてくる。
本発明の目的とするところは上述の問題点を解
消することにあり、記憶保護情報の変更が制御プ
ログラムの介入なしに行なわれ、変更処理の容易
な記憶保護方式の提供にある。
本発明はある特定のアドレスを記憶しておき
CPVにおいて処理されるプログラムのうち、メ
モリをアクセスするある定められた命令が実行さ
れるとき、そのアクセスするアドレスと上記の特
定のアドレスとがある決められた関係にあること
を検知して記憶保護情報を変更する手段を新たに
設けたものである。
第1図のメモリマツプはメモリの使用方法の概
略を示したもので、記号a,b,c,d,e……
で示す分割されたメモリの領域は、それぞれ全く
異つた処理に使用される。たとえば、領域イはオ
ンライン業務プログラムに、領域bはバツチ処理
プログラムに、また領域cは会話形端末制御プロ
グラムに、……という具合に使用される。これら
を仮にサブシステムと呼ぶことにする。またeの
領域のように、各サブシステムからバツフア域と
して使用できるワークエリアW1,W2,W3…
…を集合させたような領域もある。ひとつのサブ
システムは、複数のプログラムから成つており、
それらはたとえば領域bのようにP1,P2,P
3……というように示される。具体的には、シス
テムの制御プログラムあるいはスーパバイザとの
リンクを行なうプログラムの領域、データ管理な
どを行なう管理プログラムの領域、業務処理を行
なう業務プログラムの領域などである。
第2図に本発明の一実施例を示す。図中、1は
メモリの各エリアに対応して設けられた記憶保護
情報を格納するテーブル、2は処理装置側の記憶
保護情報を格納するレジスタである。本実施例で
の記憶保護情報について以下に説明する。
第1図のようなメモリの使用が行なわれている
とすると、a,b,c……のようなサブシステム
に対してはサブシステムごとに固有のメモリキー
を割当てられる。たとえば、aのサブシステムに
はキーとして“1”を割当て、bのサブシステム
にはキーとして“2”を割当て、cのサブシステ
ムにはキーとして“3”を割当てるという具合で
ある。サブシステム内のプログラムでは、たとえ
ば、管理プログラムでは領域P1とP2とP3を
アクセス可能とし、業務プログラム(user
Progrum)では領域P2とP3をアクセス可能と
するというように、サブシステム内でレベル分け
したメモリ保護が要求される。
このために上記の例ではP1に“0”、P2に
“1”、P33に“2”を保護情報として与え、プ
ログラム側では管理プログラムには“0”、user
Programには“1”を与える。プログラム側はこ
の他サブシステムに対するキーも持つている。そ
してサブシステムに与えられたキーが一致しかつ
上記のプログラム側のキーがメモリ側のキーより
小さいか等しいときアクセス可能とすれば上述の
要求されるメモリ保護が実現できる。以下、サブ
システムに対する保護情報をX、サブシステム内
の保護情報をYで表わす。上記の例でP1に
“2”、P2に“1”、P3に“0”を与え、プロ
グラム側のキーがメモリ側のキーより大きいか等
しいときアクセス可能としてもよい。
第4図は本実施例における保護キーの付与を示
す。サブシステムaにはX=0、bにはX=1の
ように付与し、更にサブシステムb内のエリアP
1にはX=1、Y=0のように更なる保護キーを
付与する。第2図保護テーブル1にはそれぞれの
領域を示すアドレスでポイントされる位置に
Fig、4の保護キーXとYの値が格納されてい
る。一方、プログラムが実行されるときには一般
にPSW(Program Status Word)と呼ばれる制
御用ワードが用意される。この例をFig、3に示
す。ここには割込マスク、コンデイシヨンコー
ド、メモリ保護キー、命令アドレスなどが一般に
含まれている。プログラムの実行においては前記
の保護キーがレジスタ2に読み出されてセツトさ
れる。このキーもメモリ側と同様のサブシステム
についてつけられたキーXと、管理プログラムか
ユーザプログラムかを示すキーYとからなる。
演算処理装置(BPV)4はメモリ3から読み出
した命令を命令レジスタ5に格納し、そのオペレ
ーシヨン部をデコーダ7でデコードして種種の制
御信号を発生して制御を行なうとともにアドレス
レジスタ6に次に読み出すべき情報のアドレスを
作り、メモリ3に与える。また、アクセス要求を
発生し、メモリ3から与えられたアドレスに従う
情報を読み出して命令レジスタ5にセツトする。
以上は極めて一般的BPUの動作である。
次に記憶保護情報の変更について説明する。
変更の必要の生じる場合の例は次のようなもの
である。あるユーザプログラムによつて使用され
るサブルーチンがシステムの変更によつて管理プ
ログラムのエリアに格納されることになつた。或
いはあるユーザプログラムに管理プログラムエリ
ア内にあるサブルーチンの参照を許すようなシス
テムにした。などである。このような場合にはメ
モリ保護情報を変更しない限りはユーザプログラ
ムからはこのようなサブルーチンの参照は不可能
である。
従つて本発明では実行される命令がある特定の
命令であるときにメモリ保護情報を変更するもの
で、かつその変更を管理プログラムの介在なく行
なわしめる。ただし、ある特定の命令であると
き、例えば分岐命令のときすべて保護情報を変更
することは適当ではない。このため、その命令に
よつてアクセスされたアドレスが予じめ設定され
たものであることによつて保護情報を変更するも
のとした。
第5図は間接分岐命令方式の例を示す。第2図
のインストラクシヨンレジスタ5に分岐命令が読
み出され、アドレスレジスタ6に分岐アドレスが
作られるが間接分岐の方式ではこれは直接的な分
岐先アドレスではなく、分岐先アドレスが格納さ
れているメモリエリアを指定するアドレスであ
る。第5図においてはX番地よりも上位に分岐先
アドレスが格納してあり、それ以下にプログラム
A1,A2が格納されている。仮にアドレスレジ
スタ6にB1というアドレスが作られるとA1と
いう分岐先アドレスがアドレスレジスタ6に読み
出され、A1で始まるプログラムA1に処理が移
る。ここで現在ユーザプログラムが処理中であ
り、プログラムA1は管理プログラム領域にある
ものとする。
コントロールレジスタ7はこのX番地を記憶し
ているものでX番より上位のテーブル領域にある
分岐アドレスについてはユーザプログラムが管理
プログラム領域のアクセスすることを許可するこ
とを意味する。比較器8はアドレスレジスタ6の
アドレスがコントロールレジスタ7のアドレスよ
り小さいかどうかを判定し、小さいときに信号を
発してアンドゲート9,10に与える。一方デコ
ーダ7の出力のうちサブルーチンへの分岐命令を
示す信号線11はアンドゲート9に与えられ、よ
つて、X番地より上位のテーブル領域へのサブル
ーチン分岐命令であるときに信号線12に保護情
報変更を指示する信号が発せられる。
さて、例えば第4図のような保護キーが付与さ
れ、現在サブシステムbのユーザプログラムが実
行されているとすると、レジスタ2のXは
“1”、Yは“1”である。この状態ではP1の領
域(X=1、Y=0)にはアクセス不可である。
レジスタ13にはY=0、即ち、管理プログラム
に対して与えられる保護キーが格納されており、
信号線12に変更指示信号があることをもつてア
ンドゲート14を通してレジスタ2のキーYの位
置に書き込まれる。15は一致、不一致を検知し
一致したときに信号を発する比較器、16は大小
を検知し、プログラム側キーがメモリ側キーより
小さいか等しいとき信号を発する比較器である。
レジスタ2のキーXは比較器15、Yは比較器1
6に与えられる。一方、アドレスレジスタ6のア
ドレス(ex、第5図のA1,A2)によつて保
護テーブル1から読み出されたキーXは比較器1
5に、キーYは比較器16にそれぞれ与えられ
る。アンドゲート17が開くときは、アクセス可
能な状態を示すから、アンドゲート18でアクセ
ス要求の送信を許可し、アドレスレジスタ6のア
ドレスによるアクセスを行なわしめる。デコーダ
出力20は特権命令を示し、アンドゲート10の
出力が信号線23を通してアンドゲート21,2
2に与えられる。レジスタ19にはキーXがセツ
トされており、レジスタ19はアンドゲート2
1、レジスタ13はアンドゲート22に接続され
ている。従つてアンドゲート10の出力により、
レジスタ2のキーX,Yとも変更される。これは
他の特殊な場合において使用される。
以上のような構成によれば誤まつたメモリアク
セスのアドレスが作られたとしても比較器15,
16の少なくとも一方の出力がなく、アンドゲー
ト17,18がともに開かないためアクセスは禁
止される。そして命令がある特定の命令で、かつ
そのときのメモリアクセスのアドレスが特定のも
のであつた場合には保護キーが変更されてアクセ
ス不可であるものをアクセス可能とすること、即
ち、ユーザプログラムの実行でありながら保護キ
ーは管理プログラムのものに変えてユーザプログ
ラムから管理プログラムのサブルーチン使用する
ことができる。
第6a図は本発明の他の実施例を示すもので、
保護情報を変更すべきアドレスがX番地からY番
地であることを示す。第6b図はこのときの回路
例を示す。
コントロールレジスタは101,102で示さ
れる2個が設置され、それぞれX、Yがセツトさ
れている。アドレスレジスタ6のアドレスをBと
表わす。比較器103はBがYより小さいことを
検知し、比較器104はBがXより大きいことを
検知する。これらの出力がアンドゲート105に
与えられたその出力は第2図のアンドゲート9,
10に与えられる。
第7a図は保護情報を変更すべきアドレスがX
番地からdX番地進んだアドレスまでであること
を示す。
第7b図は第7a図の場合の回路構成を示す。
コントロールレジスタは111,112で示され
る2個が設けられ、それぞれにX,dXがセツト
される。加算器113はレジスタ111,112
の値を加算しX+dXを作る。比較器114はB
がX+dXより小さいことを検知し、比較器11
5はBがXより大きいことを検知する。これらの
出力がアンドゲート116に与えられ、その出力
がFig、2のアンドゲート9,10に与えられ
る。
第8a図はメモリのトビトビの位置に保護情報
を変更すべきアドレスがある場合を示している。
この場合には第8b図に示すようにコントロール
レジスタ121にはそれらのアドレスがスタツク
されており、比較器122はそれらの中でアドレ
スレジスタ6のアドレスと一致するものがあるか
どうかを検知する。
上記の方法は必要に応じて選択されるべきもの
である。デコーダ7に与えられる命令の種類に応
じて、上記のアドレスの比較法を異ならせて選択
してもよい。
また、制御アドレスとして0番地を設定すれ
ば、どのオペレーシヨンにおいても記憶保護情報
の変更を行なわなくすることも可能となる。
以上の説明から明らかな如く、本発明によれば
次のような効果が得られる。
(1) 記憶保護情報を変更させるために特殊な命令
を用いず、たとえば処理プログラムにて通常に
発行できる命令で行なうオペレーシヨンを中央
処理装置にあらかじめ設定しておくことによ
り、アクセス元の記憶保護情報の変更が上記オ
ペレーシヨンに付随して行なわれるため、ソフ
トウエアオーバヘツドを招かない。
(2) 同様に、従来ソフトウエアを記憶保護機能を
拡張した環境下で動作させる際にも、従来ソフ
トウエアにて通常に発行できる命令で行なうオ
ペレーシヨンを中央処理装置にあらかじめ設定
しておくことにより、従来ソフトウエウの変更
なしに記憶保護情報の変更を実現しうる。
【図面の簡単な説明】
第1図はメモリの使用方法を示す図、第2図は
本発明のシステムの構成図の一例を示す。第3図
はプログラムステータスワード(PSW)の構成
例を示す。第4図はメモリ保護キーを説明する
図、第5図は分岐アドレスの格納状態を示す。第
6a図はメモリ上の分岐アドレスの配置の他の例
を示す。第6b図は第6a図の場合のアドレス比
較の実施例を示す。第7a図はメモリ上の分岐ア
ドレスの配置の他の例を示す。第7b図は第7a
図の場合のアドレス比較の実施例を示す。第8a
図はメモリ上の分岐アドレスの配置の更なる他の
例を示す。第8b図は第8a図の場合のアドレス
比較の実施例を示す。 1……保護テーブル、2……レジスタ、3……
メモリ、5……命令レジスタ、6……アドレスレ
ジスタ、7……コントロールレジスタ、15,1
6……比較器。

Claims (1)

    【特許請求の範囲】
  1. 1 それぞれが複数の記憶エリアを含む複数のサ
    ブシステムエリアをもつ主メモリと主メモリをア
    クセスするプログラム処理装置をもつデータ処理
    システムに使用される記憶保護システムであつ
    て、前記主メモリのサブシステムの各々に対応し
    て設けられた第1保護情報と前記記憶エリアの
    各々に対応して設けられた第2保護情報とを格納
    する第1記憶手段と、前記それぞれ処理装置で実
    行されるプログラムに対応して設けられ、前記サ
    ブシステムに対応する第3保護情報と管理プログ
    ラムかユーザプログラムであるかに対応する第4
    保護情報とを格納する第2記憶手段と、前記処理
    装置で実行される命令が予じめ決められた特定の
    命令であることを検知する第1検知手段と、前記
    命令によつて指示されるアドレスが予じめ決めら
    れた特定のアドレスであることを検知する第2検
    知手段と、前記処理装置によつて主メモリをアク
    セスするアドレスを含む記憶エリアに関する第1
    記憶手段に格納されている第1、第2の保護情報
    と、第2記憶手段に格納されている第3、第4の
    保護情報を、第1と第3の保護情報、第2と第4
    の保護情報とをそれぞれ照合しメモリアクセスの
    許可または禁止を決定する手段と、第1、第2検
    知手段に応答し、第2記憶手段の第4保護情報を
    変更する手段とを有することを特徴とする記憶保
    護システム。
JP2987481A 1981-03-04 1981-03-04 Memory protection system Granted JPS57147197A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2987481A JPS57147197A (en) 1981-03-04 1981-03-04 Memory protection system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2987481A JPS57147197A (en) 1981-03-04 1981-03-04 Memory protection system

Publications (2)

Publication Number Publication Date
JPS57147197A JPS57147197A (en) 1982-09-10
JPS6138508B2 true JPS6138508B2 (ja) 1986-08-29

Family

ID=12288117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2987481A Granted JPS57147197A (en) 1981-03-04 1981-03-04 Memory protection system

Country Status (1)

Country Link
JP (1) JPS57147197A (ja)

Also Published As

Publication number Publication date
JPS57147197A (en) 1982-09-10

Similar Documents

Publication Publication Date Title
US4434464A (en) Memory protection system for effecting alteration of protection information without intervention of control program
CA1200913A (en) Data processing system with virtual machines
JPS62100852A (ja) 機密保護方法
EP0260433B1 (en) Multi-address space control method
EP0098172B1 (en) Register control processing system
EP0230350A2 (en) Protection of data in a multiprogramming data processing system
US7680999B1 (en) Privilege promotion based on check of previous privilege level
US6549953B1 (en) Object encapsulation protection apparatus
EP0660229B1 (en) Method and apparatus for modifying the contents of a register
JPS599937B2 (ja) 情報処理装置
JPS6138508B2 (ja)
JPH11126173A (ja) メモリアクセス制御装置およびその記憶媒体
EP0864983A2 (en) Computer system including memory adress management circuit for protecting memory from illegal writing
JPS6074059A (ja) 記憶装置アクセス制御方式
JPH0585925B2 (ja)
JPS63120336A (ja) メモリアクセスモ−ド切替え方式
JPS6225214B2 (ja)
JPS6118224B2 (ja)
JPH059815B2 (ja)
JPS626351A (ja) 記憶保護装置
JPH01180656A (ja) メモリ保護装置
JPH0348954A (ja) キー記憶制御方式
JPS5918797B2 (ja) アドレス・チエツク処理方式
JPS58139396A (ja) メモリ保護方法
JPH0363853A (ja) Sac命令制御方式