JP3607540B2 - プログラム単位メモリアクセス属性管理方式 - Google Patents

プログラム単位メモリアクセス属性管理方式 Download PDF

Info

Publication number
JP3607540B2
JP3607540B2 JP23185999A JP23185999A JP3607540B2 JP 3607540 B2 JP3607540 B2 JP 3607540B2 JP 23185999 A JP23185999 A JP 23185999A JP 23185999 A JP23185999 A JP 23185999A JP 3607540 B2 JP3607540 B2 JP 3607540B2
Authority
JP
Japan
Prior art keywords
program
memory
attribute
access
address
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 - Fee Related
Application number
JP23185999A
Other languages
English (en)
Other versions
JP2001056783A (ja
Inventor
健一 夜久
Original Assignee
エヌイーシーシステムテクノロジー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エヌイーシーシステムテクノロジー株式会社 filed Critical エヌイーシーシステムテクノロジー株式会社
Priority to JP23185999A priority Critical patent/JP3607540B2/ja
Publication of JP2001056783A publication Critical patent/JP2001056783A/ja
Application granted granted Critical
Publication of JP3607540B2 publication Critical patent/JP3607540B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は情報処理装置のメモリアクセス属性管理方式に関する。
【0002】
【従来の技術】
従来より、情報処理装置のメモリ属性管理方式としては、メモリを管理単位であるページに分割し、プログラムの指定する仮想メモリ空間を管理単位でページにアサインするページテーブル(以下PTと省略)の各ページ毎にそのページの保護レベルとしてシステムエリア/読出可ユーザエリア/読出し書込み可ユーザエリアのいずれかを設定しておき、プログラムの実行レベル値(メモリアクセス権レベル値)を特権モード(レベル0〜2)と非特権モード(レベル3)としメモリアクセスの都度アクセス対象ページの上記保護レベルを得、実行レベルが特権モードであれば無条件にアクセス可とし、非特権モードではアクセスの種類(読み出し、書き込み)に応じユーザエリアのみアクセス可とする方式が広く用いられている。即ち、非特権モードのあるプログラムが特権モード範囲プログラムにアサインされたページや他の非特権モードプログラムにアサインされたページについてアクセスすることを禁止し、メモリの保護が行われている。
【0003】
【発明が解決しようとする課題】
しかし、この従来技術は以下の問題点がある。特権モードでは、他のプログラムが使用しているメモリ領域を使用することが可能である。非特権モードのプログラムが特権モードのプログラムを呼び出した場合、特権モードのプログラムは他のプログラムのメモリ領域にアクセスすることが可能であるため、他のプログラム領域を破壊することが可能となる。
【0004】
図13を参照しこの一例を示す。メモリには上位番地よりスーパーバイザ、I/O処理等のシステムプログラム、ユーザレベルのプログラムA、Aのワークエリア、Aの読み込みバッファ、ユーザレベルのプログラムB、Bのデータエリアが配置されている。スーパーバイザ、システムプログラム、ユーザレベルのプログラムのそれぞれの実行リングレベル(RL)は0、1、3である。従ってプログラムAはスーパーバイザ、システムプログラムにアサインされたページにはアクセス出来ない(少なくとも書き込み不可)。プログラムAはI/O処理に依頼する際のパラメータ(ファイル名、ブロックアドレス、ブロック数、読込みバッファのアドレスBUF)をAのワークエリアの末尾部分に設定しI/O処理にこのパラメータ値を直接若しくはこの末尾部分アドレスを渡し入力ファイルの所定ブロックの読込みを依頼する。読み込まれたデータをワークエリア前半に格納されている条件に従い検索し、その結果をワークエリア後半に作成し、前記パラメータとともにワークファイル41にセーブし、ワークエリアを用い他の処理(例えば他の入力ファイルのデータの検索)をする。この処理が終了し、前記セーブした結果とパラメータをリストアするがここでファイルリ−ドエラーが最後の方で発生しエラー処理に入る。しかしエラー処理に問題があり処理続行可と判断し入力ファイルから次のブロックを読み込む為に完全にリストア出来てないパラメータ情報を渡しI/O処理に依頼する。ここでパラメータの内前記BUFの一部が誤ったものであればI/O処理はこれを受付け処理し誤ったBUFが指しているBのデータエリアに書込みこれを破壊することが起こりうる。(プログラムAは読み込みバッファのセグメント記述子をディスクリプタ表から汎用レジスタにロードしこのBUFに控え、I/O処理を呼び出す前にBUFをデータセグメントレジスタにロードするものとする。或いはAのワークエリア、読み込みバッファ、Bのデータエリアの全てが本来Bのデータセグメントで、Bが検索処理をAに依頼した際、検索条件と結果用のエリアをローカルにサイズ指定しAに渡し、Bはサイズ以降のエリアに次の検索条件を作成しているとする)
このような従来の記憶保護方式の欠点を回避する方式としては、例えば特開昭60−73762に開示されている様な方式が考えられる。引用の方式は、実行プログラムにその種類に応じA〜Dの実行レベルを与え、メモリのブロック単位にA〜Dの各レベル毎にアクセスを許可/禁止するフラグを記憶保護レジスタに設定し、実行プログラムによるメモリアクセスの都度アクセスアドレスによりブロック番号を算出しブロック番号と実行レベル値で記憶保護レジスタを索引しフラグ値を得、そのフラグ値に応じメモリアクセス動作を許可/抑止する方式である。制御記憶の例で16ブロックの上位1ブロックはA〜Dの全レベルが書き込み可で他のブロックはA〜Cレベルが排他的に書き込み可に設定された例が示されている。
【0005】
従って、上記従来記憶保護方式より多少改善されているものの実行されるプログラムを実行レベルでグループ化しメモリのブッロックのメモリ属性をレベルに対し設定しているので同一実行レベルのプログラム間ではそれぞれにアサインされたブロックに対する保護は出来てない。又、上位1ブロックは各レベルのプログラムの交信エリアと解釈するが、交信エリアが固定されているので、これを情報処理装置の通常プログラムがアクセスするメモリの記憶保護方式とした場合プログラムに対する自由度が低下することになる。
【0006】
本発明は、以上の問題点を解決する為に上記実行レベル方式でなくプログラムによるメモリアクセスの都度アクセスする対象の管理単位(例えばページ)がそのプログラムに与えられた管理単位であるかチェックし、他プログラムを呼び出しデータ等を受け取る際には自プログラムに与えられた管理単位を呼び出し先に一時貸し出すという思想に基づくプログラム単位のメモリ属性管理方式を提供するものである。
【0007】
【課題を解決するための手段】
【0008】
本発明の第のメモリアクセス属性管理方式は、主記憶上のメモリについて所定の管理単位でメモリの実行、読出、書込の各アクセス属性を保持し、プログラムによるメモリの前記各アクセスの可否をチェック後、許可/抑止するアクセスチェック機構を備えた処理装置のメモリアクセス属性管理方式において、プログラムのメモリへのロード、実行、停止、終了を制御監視するプログラム制御部と、これの指示により、プログラムロード時、対象プログラムファイルの付属情報に基づきプログラムに必要なメモリ領域を管理単位で割付け、そのメモリアクセス属性を生成し属性表として登録するプログラム領域生成部と、ロードされているプログラムについてプログラム毎の属性表を保持するメモリアクセス属性領域と、実行中のプログラムの前記属性表の写しとテンポラリのメモリアクセス属性をそれぞれ第1、2のメモリ制御手段に保持しプログラムのメモリアクセスの種類をチェックし許可抑制するアクセスチェック機構と、プログラムが、割当てられたメモリをアドレス、付与属性を指定し呼出し先のプログラムに貸出す命令手段とを含んで構成され、前記プログラム制御部はプログラムの実行開始に際し、アクセスチェック機構に対し、そのプログラムの属性表を、メモリアクセス属性領域より、第1のメモリ制御レジスタに設定させ、アクセスチェック機構はプログラム単位でチェックをするとともに、前記貸出し命令を受けると指定するアドレスの属性を第1のメモリ制御手段より得、付与属性が該属性の範囲以下であればこれを第2のメモリ制御手段に設定し次のプログラムのメモリアクセスチェックを第1と第2のメモリ制御手段の属性を加えて行うことを特徴とする。
【0012】
本発明の第のメモリアクセス属性管理方式は、論理アドレスを主記憶上のメモリアドレスに変換するアドレス変換表、メモリ管理単位でメモリの実行、読出、書込の各アクセス属性を保持する属性表、実行状態のプログラムに関しアドレス変換表の写しを持ちメモリ管理単位で前記アドレス変換する機構、プログラムのメモリ管理単位への前記各アクセスをチェックする機構を備えた処理装置のメモリアクセス属性管理方式において、プログラムのロード、実行、停止、終了を制御し、ロードするプログラム名に一意にプログラム識別を付与し、必要なメモリの確保を指示するプログラム制御部と、前記指示を受けプログラムファイルの付属情報に基づきプログラムが使用する論理アドレス情報に対し管理単位毎にメモリアクセス属性を生成しメモリ管理単位番号を割付け、メモリ管理単位番号をアドレス変換表のエントリに登録し、生成したメモリアクセス属性を属性表の前記エントリにプログラム識別とともに登録するプログラム領域生成部と、前記各プログラムの管理単位毎の論理アドレスを保持する属性領域と、前記アドレス変換機構と、実行状態の複数プログラムに関し属性表のプログラム識別、メモリアクセス属性の写しを第1のメモリ制御手段の対応エントリに、テンポラリのメモリアクセス属性を第2のメモリ制御手段の前記対応エントリに保持するとともに実行中のプログラムのメモリ制御手段のエントリを指定するカレント指定手段を有すアクセスチェック機構と、プログラムが割当てられたメモリに関し論理アドレス、付与属性を指定し他プログラムに貸出す命令手段とを含んで構成され、アクセスチェック機構は命令読出しアドレスに対し実行可属性をもつ第1のメモリ制御手段のエントリのプログラム識別をカレント指定手段に設定し、以降のデータアクセスアドレスに対応するエントリのプログラム識別がカレント識別と一致することを含めてアクセスチェックをし、貸出設定では付与属性がアドレスに対応する第1のメモリ制御手段のエントリの属性の範囲以下であればこれを第2のメモリ制御手段に設定することを特徴とする。
【0015】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図1は本発明のメモリ属性管理方式が適用される情報処理装置の一例を示すブロック図である。情報処理装置はプロセッサ1とメモリ2とファイルデバイス4と操作者用の表示装置5−1、キーボード5−2とこれらを相互接続するシステム制御ユニット3を有す。プロセッサ1は命令演算処理部7とキャッシュ6とアドレス変換機構8とアクセスチェック機構9を有す。命令演算処理部7は実行する命令を先行して読出し、順次デコードし必要なメモリオペランドデータを読出す命令処理とオペランド間演算を行い結果を必要に応じメモリ2に格納する演算実行処理を行う。キャッシュ6はメモリ2のブロックの内最近実行された命令に関わるブロックを一時記憶する命令、オペランドのキャッシュである。アドレス変換機構8はメモリ2にあるページ表の写しを持ち、命令演算処理部7のメモリ2乃至キャッシュ6へのアクセスに際しアクセスアドレスが論理アドレスの場合これをメモリ2上の実アドレス(以下メモリアドレスと省略)に変換する。変換はメモリ管理単位(以下ページとする)に行う。尚、本発明の第1の実施形態ではアドレス変換機構8は必要としない。
【0016】
アクセスチェック機構9はメモリ2上の属性表の写しを持ち、命令演算処理部7がメモリ2乃至キャッシュ6へのアクセス時アクセス種類を指定するアクセスコード(E:命令とし実行、R:読出、W:書込、C:キャッシュバイパス)とアクセスページの属性をつき合わせチェックし、チェック結果に応じメモリ乃至キャッシュアクセスを許可/抑止する。メモリ2はシステムプログラムの内コアとなるプログラム用のシステムコアエリア2−1、通常のシステムプログラム用のシステムエリア2−2、ユーザレベルプログラム用のユーザエリア2−3に区分して定義され使用される。
【0017】
本発明のメモリ属性管理方式はシステムコアエリア2−1上に置くプログラム領域生成部11、プログラム制御部12、プログラム毎の属性領域18−1・・18−4、このディレクトリ16とアクセスチェック機構9を含む。更に第1の実施形態ではプログラム制御部12の配下の領域として割込ベクタ表13−1、13−3、プログラムセレクタ表13−2、13−4を含む。又第2の実施形態ではアドレス変換表(PT)の各エントリの延長上に置くプログラム識別、属性情報を含む。又メモリ2の容量は例えば32メガバイトで、メモリ管理単位をページとすれば例えば4キロバイトとなる。
【0018】
次に、本発明の第1の実施の形態について図面を参照して説明する。
図2は本発明の構成要素としてプログラム領域生成部11、プログラム制御部12、プログラム毎の属性領域18ー1・・18−4、このディレクトリ16と実行されるプログラムとしてシステムプログラム1・・システムプログラムJとユーザレベルのプログラム(J+1)・・ユーザレベルプログラムNとプログラムの割込み時切替え機構としての割込ベクタ表13−1、13−3、通常の呼び出し時切り替え機構としてのプログラムセレクタ表13−2、13−4を示したものである。これらはメモリ2に配置されている。
【0019】
プログラム制御部12は、操作者からの指示により当該プログラムファイル43をロードし当該プログラム名にプログラム識別を付与し、プログラム領域生成部11に実行に必要なメモリの確保、属性表生成を指示し、属性表アドレスを得てアクセスチェック機構9に属性表のロードを指示し、その他実行に必要な設定をし当該プログラムを実行開始する。又当該プログラムによる他プログラム呼び出しを一時フックし他プログラムの属性表アドレスを得てアクセスチェック機構9に第1メモリ制御レジスタ(第1MCR)61の切替えを指示後他プログラムに移行し、リターン時に第1MCR61を戻す切替えを指示し当該プログラムにリターンする。マルチプログラミング環境ではプロセスタイマー割り込みを利用し(プログラム起動時プロセスタイマーを設定し割り込みベクタ表13−1の対応するエントリに自セグメントのセグメント記述子位置と所定オフセットを設定しておき)当該プログラムの処理の区切りで割込み、次のプログラムの属性表ロードを同様に指示する。又当該プログラムが終了時ソフトウェア割込みにより通知される。プログラム制御部12は実行中のプログラムの追加メモリアロケート要求の際プログラム領域生成部11に指示し、追加ページ番号を得てアクセスチェック機構9に更新を指示する。
【0020】
プログラム識別(PID)表12−2はプログラムをメモリ2にロードする際に付与するプログラム識別(番号)とプログラム名の対応表でプログラムAに番号Nを付与した場合、エントリNにプログラムAの名称を登録する。プログラムステータス表12−3はメモリ2にロードされているプログラムについてプログラム識別毎に、停止、待機、実行中のいずれの状態にあるかを示す。
【0021】
割込みベクタ表B(IDTB)13−1は外部割込みとファンクションコールを含めたソフトウェア割込に関するコール先の命令セグメント記述子セレクタ、オフセット情報をプログラム制御部12の命令セグメント記述子セレクタとセグメント内オフセットに書き換えたものである。プログラムセレクタ表B(PSELB)13−2はユーザプログラム間の呼出しに関してもその様に設定したセレクタ表である。割り込みベクタ表(IDT)13−3は上記書き換え前のコール先情報で、プログラムセレクタ表(PSEL)13−4はユーザプログラム間の呼出し先のセレクタ表である。割り込みベクタ表は割り込み要因別のエントリを有すが、プログラムセレクタ表は呼び出し先プログラムごとのエントリで、プログラム識別順にソートされている(エントリNはプログラムNを指している)。
【0022】
プログラム領域生成部11は、ロードされるプログラムのプログラムファイル43より、命令、データ、スタック別にセグメントを列挙し属性に関する指定でグループ化し、各グループにそのサイズに応じてページ識別(仮の通番)と属性(実行可、読出し可、書込み可、キャッシュバイパス)を付与し、これにメモリ使用表11−2を参照しページ番号(ページフレームアドレス)を割付け、属性表を作成しそのアドレスをプログラム制御部12に返すとともに属性エリアディレクトリ(ATDR)16に登録する。
【0023】
プログラム管理エリア14にはセグメント記述子表(DT)17も格納される。この管理エリアには属性エリア18−1、・・18−4もあり、プログラム単位で属性ごとのビットマップを含む属性表が格納される。属性表は、メモリ2の全ページを所定数でブロック化しそのページブロック番号とブロックの各ページの属性ごとのビットマップとする。例えば図5に示す様に8192ページを32ページ単位のブロックとし、ページブロック番号とその32ページのビットマップ形式で格納する。ビットマップデータ内の一つのビットは、メモリ2のページ(メモリ管理単位)に一対一に対応している。ビットマップデータ内のビットは、図5の通り「0」が禁止、「1」が許可の意味を持つ。属性エリアディレクトリ(ATDR)16にはプログラム単位にプログラム識別、属性エリアアドレスが格納される。
【0024】
メモリ使用表11−2はシステムコアエリア、システムエリア、ユーザエリアの区分毎にページブロック単位で各ページが使用中(割付済み)/否を表示管理している。又ブロック内ページが全て未使用、未使用ページ有り、無しを表示するフラグも備えている。又システムエリアのメモリ使用表に付随してプログラムが共通に読出し専用で使用するリソース情報、辞書等は読出し専用の旨と、情報識別名ごとのページ番号を対記したリストを備えている。ATDRポインタ11−4は属性エリアディレクトリ(ATDR)16の先頭アドレスを保持している。
【0025】
次に図3を参照しアクセスチェック機構9の概要を説明する。図中51はアクセスコードレジスタ(ACCR)で、命令演算処理部7からのコマンドとアクセスコードがセットされる。コマンドはメモリアクセス(MA)、属性表ロード(LD)、第1MCR61のページ単位更新(PLD)、貸出設定(REN)が定義されている。アクセスコードはメモリアクセスと属性表ロードコマンドではメモリアクセスの種類がE:実行、R:読出、W:書込、C:キャッシュバイパスの4ビットがそれぞれ指定される。ページ単位更新、貸出設定では上記4ビットを用い新規の付与属性が指定される。メモリアドレスレジスタ(MAR)52にはアクセスアドレス或いは属性エリアアドレスがセットされる。属性エリアアドレスレジスタ(ATAR)53は属性エリアから属性表をロードした後このアドレスをセーブしておくレジスタである。カレントページブロックレジスタ(CPBR)57は実行中のプログラムの属性表のページブロック番号を保持する。第1メモリ制御レジスタ(第1MCR)61は実行中のプログラムの属性表ビットマップ(4バイト)を各属性で2バイトX2ワードに折り畳んで保持している。ブロック74は第3のPBRとMCRを含みプログラム制御部12自身の属性表のページブロック番号、属性ビットマップを固定的に保持する。これらはRAMないしレジスタファイルで構成される。BSEL66は16ビットから1ビットを選択するビットセレクタで、SEL67は1ビット出力と16ビットのスルー出力と16ビットオール1を切換える3ウェイセレクタである。カウンタ(CNT)65は上記ビット選択モードではその選択した1ビット出力を書込むビット位置(0〜4)をインクリメントして指定し、オール1選択モードではMAR52のビット11〜14がセットされるデコード出力の4ビットカウンタである。59、60はMAR52内のアクセスアドレス上位とCPBR57、TPBR58のページブロック番号の一致検出回路で出力はそれぞれ第1MCR61、第2MCR62の読出し出力のEnable信号となる。
【0026】
読出レジスタ(RDR)68は第1MCR61、第2MCR62より読出され上記ビット選択されたアクセスするページの各属性値(E、R、W、C、OW)を保持するレジスタである。又第1MCR61より読出された各属性値の16ビット幅ビットマップデータがセットされる。69はWビットにOW(他のプログラムによる書込み可)ビットを論理和し、RビットにOR(他のプログラムによる読出可)ビットを論理和し他のビットはスルーとする回路である。アクセスチェック回路70はACCR51のアクセスの種類(E、R、W、C)のオンビットに対応する回路69の属性値(E、R、W、C)のビットがオンであればアクセス可と判定しそうでなければアクセス抑止信号を発生する回路である。貸出チェック回路71は貸出設定で、ACCR51内の貸し出し時付与属性R、Wが対象ページの本来属性R、W以下(同値又は付与属性Rオンに対し本来属性のWがオン)で貸出可と判定しそうでなければ貸出抑止信号を発生する回路である。
【0027】
アクセスチェック制御回路72は命令演算処理部7のアクセス要求を受けアクセスコード、メモリアドレスをACCR51、MAR52にセットしコマンドに従って上記レジスタの設定、読み出しを制御する。コマンドが(LD)であればMAR52の属性エリアアドレスとACCRのアクセスコード(Rのみオン)でキャッシュ6より属性エリア対応のキャッシュブロックから属性表を読み出す。MAR52の属性エリアアドレス下位部分をインクリメンタ54で更新しページブロック番号、E属性ビットマップ0〜1バイト、2〜3バイト、R属性ビットマップバイト0〜1バイト、・・と順次読出しCPBR57、第1MCR61の各エントリに書き込む。MAR52下位部分の属性エリアアドレスはATAR53にセーブしておく。
【0028】
コマンドが(PLD)であればMAR52のページブロック番号とブロック内ページ番号の上位2ビットで第1MCR61より属性Xビットの16ビット幅ビットマップを読出しRDR68にセットしておき、次にCNT65にブロック内ページ番号の下位4ビットをセットしSEL67でオール1パターンを選択しておき目的のページ対応のRDR68のビット位置を1にセットする。ORセットされたXビットの16ビット幅ビットマップを第1MCR61に書き込む。ACC51の付与属性がオンセットされているXビットについて上記ビットマップ更新を繰り返す。最後にATAR53のM(モディファイ)ビットをオンにする。
【0029】
コマンドが(MA)であればMAR52のページブロック番号とCPBR57のページブロック番号が一致するMCRよりアクセスページの属性値をE、R、W、C、OWの順にビット選択機能を使いRDR68の上位5ビットに抽出しOR回路69を通しアクセスチェック回路70でメモリアクセス可否を判定する。
【0030】
コマンドが(REN)であればMAR52のページブロック番号とCPBR57のページブロック番号の一致するMCRより貸出ページの属性値Wについてビット選択機能を使いRDR68のビット1、2に抽出し貸出チェック71で貸出可否を判定する。貸し出し可であれば第1MCR61よりスルーモードで属性R、WのビットマップをRDR68に読出しLDR55経由で第2MCR62のOR、OWの対応ワード位置に書き込む。そしてテンポラリページブロック番号レジスタ(TPBR)58にCPBR57のページブロック番号をコピーする。これらの実行結果、チェック結果を命令演算処理部7に返す。
【0031】
次にプログラムN28をプログラムファイル43からメモリ2にロードし初期メモリ設定後、実行開始しプログラムNがページを貸出しIOS25を呼び出しリターン後ページ貸出しをリセットし実行終了する例について、図7、8のフローチャートに基づき、図2〜6を参照しプログラム制御部12、プログラム領域生成部11、アクセスチェック機構9の動作を説明する。
【0032】
プログラム制御部12は操作者の指示を受けファイルデバイス4上のプログラムファイル43を読込バッファ24に読み込み、バッファアドレス、サイズを伴いプログラム領域生成部11に初期メモリ設定指示をする(図7のS1)。バッファには図4に示す実行形式のプログラムファイル43のヘッダー44と実行モジュール45が読込まれている。ヘッダー44にはヘッダー、実行モジュールのサイズ46、セグメントの定義47、セグメントリロケーション情報48が含まれている。セグメント定義47はコード、データ、スタック別にセグメント名とそのサイズが記載され、リロケーション情報48には各セグメントにアクセスするために使用する命令演算処理部7のセグメントレジスタと各セグメントの記述子を該レジスタにロードする命令の位置が記載されている。
【0033】
プログラム領域生成部11はヘッダー44を参照し、属性エリアを確保する。次にコード、データ、スタック毎にセグメントを自ワークエリアに列挙しデータは指定(W、C、共用のR専用)でグループ化する。コードは実行可、読出可、としデータでWrite指定のないものは読出可とし、Write指定されていれば読出可、書込可とし、スタックは読出可、書込可とする。これらは共用の読出専用を除きプログラムNにのみ与えられたアクセス権である。次にコード、データの各グループ、スタックの各グループ単位にサイズの小計を算出しサイズを考慮しページID(通番)を付与し ページIDに属性(E、R、W、C)を付与し図6のページIDとメモリ属性が作成される。図6では命令セグメントをP1とし実行可、読出可を付与し、DT1セグメントをP2、P3とし読出可、書込可を付与しDT2セグメントをP4とし読出可、書込可を付与しSTSTKセグメントをP5とし読出可、書込可を付与する(図7のS2−1)。
【0034】
次サブステップではページ使用表を参照し各ページIDにページ番号を付与する。共通の読み出し専用セグメントのページIDにはシステムプログラムのページ使用表に付随する情報を検索し登録されてあればそのページ番号を付与し、これ以外は未使用ページを採番しページ番号を付与する。図6のページIDとメモリ属性とページ番号が自ワークエリアに作成される(図7のS2−2)。
【0035】
次に各セグメントのベースアドレス、サイズを計算しセグメント記述子をセグメント記述子表(DT)17に書込み実行モジュールのセグメント記述子ロード命令のセレクタ値を上記書き込み位置に合わせておく(図7のS2−3)。尚、命令セグメント記述子はDT17のエントリNに書き込む。次サブステップでは属性エリア18−4にプログラムN属性表を作成する。即ち、ページ番号ごとの各属性を図5に示すページブロック#、属性毎のブロック内ビットマップを作成し属性エリアに格納する(図7のS2−4)。属性表ディレクトリ(ATDR)16のエントリNにプログラムN属性エリアアドレスを登録しておく(図7のS2−5)。最後に属性エリア、命令セグメント記述子アドレスと共にメモリ設定終了をプログラム制御部12に通知する(図7のS2−6)。
【0036】
プログラム制御部12は読込バッファ内24の実行モジュール(コード部)をプログラムNの命令セグメントに移送し、 プログラムN属性エリアアドレスをオペランドとする属性表ロード命令を発行する。アクセスチェック機構9はこの属性表を読み出し、CPBR、第1メモリ制御レジスタ(MCR)61にセットし、属性エリアアドレスをATAR53にセーブする。プログラム制御部12は実行結果を命令演算処理部7のフラグレジスタで確認しプログラムNを実行する(呼び出す)(図7のS3)。
【0037】
命令演算処理部7によりプログラムNの命令読出が行われるがこのアクセスは第1メモリ制御レジスタ61が許可する。プログラムNはソート処理1を実行する。この処理においてDT1セグメント対応ページへのアクセスを、第1メモリ制御レジスタ61が許可する。次にDT2(ソート対象データ読込エリアページ)の貸出準備をする。即ちアドレスをDT2ページ番号とし貸出時属性としWビットをオンとする)貸出設定命令を発行する(図8のS4)。
【0038】
アクセスチェック機構9は第1メモリ制御レジスタ61からDT2ページの属性を読出し、その結果Wビットオンで貸出可と判定し、第2メモリ制御レジスタ62のDT2ページのOWビットをオンにしTPBR58にCPBRのページブロック#をセットする(図8のS5)。
【0039】
プログラムNはIOS呼び出しを実行する(図8のS6)。プログラム制御部12はこの呼び出しを前記フックし、本来の呼出し先の記述子表エントリ番号(=1)で、ATDR16のエントリ1にアクセスしIOS25の属性エリアアドレスを取得しIOS25の属性表ロード命令を発行する(図8のS7)。アクセスチェック機構9はATAR53のモディファイビットがオフであることを確認し、第1メモリ制御レジスタ61内属性情報の属性エリア18−4へのセーブを省略し、IOS25の属性表をCPBR57、第1メモリ制御レジスタ61にセット後、ATAR53にIOS属性エリアアドレスをセーブしておく(図8のS8)。プログラム制御部12はIDT13−3を使用しIOS25の呼び出しを実行する(図8のS9)。
【0040】
IOS25はデータをDT2に読み込み(第2メモリ制御レジスタ62のOWビットがアクセス許可)、IRETを実行(図8のS10)し、プログラム制御部12はスタックしておいた戻り情報(戻りの命令セグメントセレクタ値)よりプログラムN属性エリアアドレス取得し属性表ロード命令発行後IRETを実行する(図8のS11)。
【0041】
プログラムN28は返値を確認し、DT2ページ貸し出し設定をリセットする命令を発行後、ソート処理2を実行しプログラムの実行終了をプログラム制御部12に通知(終了割り込み)する(図8のS12)。
【0042】
次に本実施形態の他の実施例として実行中のプログラムNが複数ページの貸し出し設定を同時処理する例を示す。プログラムNはコマンドとして第1MCR61の属性値読出を指定し、アドレスとしてページブロック番号を指定する。アクセスチェック機構9は上記指定されたMCRの属性表(各属性ビットマップ)をスルーモードでRDR68に読出し、LDR55経由で命令演算処理部7に返す。プログラムNは例えばW属性ビットマップを入力とし、OW属性ビットマップを作成する。次にこれをストアデータとし、アドレスを上記ページブロック番号とし、アクセスコードのWビットをオンとし貸し出し設定コマンド(REN2)を発行する。アクセスチェック機構9は上記ページブロック番号とCPBR57の一致を確認し、第1MCR61よりW属性ビットマップをスルーモードでRDR68に読出し、SDR56内の上記ストアデータとの論理積を回路73で求める。この結果がストアデータに等しければ貸し出し可と判定し、ストアデータをLDR55に転送し第2MCR62のOW対応ワードに書き込み、TPBR58にCPBR57をコピーし、貸出し設定を行う。この様にビットマップデータをワード単位で扱うことで複数ページに対する属性の処理が高速化できる。
【0043】
次に、本発明の第2の実施の形態について説明する。本実施形態は論理アドレス上のページを実メモリアドレス上のページに変換するページテーブル(PT)、実行状態の複数プログラムに関しPTの写しを持ちページ単位でアドレス変換する機構を備えた処理装置を対象としてプログラム単位の記憶保護を行う方式を示すものである。各プログラムの属性エリアにはそのプログラムが使用する論理アドレス上のページ(ページサイズを4Kバイトとすると論理アドレスの下位12ビットを除いた上位アドレス)を保持し、属性表はPTの各エントリに対応しそのメモリページの所有者(プログラム識別)と属性、共用ページフラグ(多数のプログラムが読出し専用で共用)を持つ。又アクセスチェック機構10は実行状態の複数プログラムが使用するページについて属性表の写しを有す。従ってプログラム単位のアクセスチェックをする為には、実行しているプログラムの属性を指定する必要がありカレント指定手段を持つ。該手段としては命令読み出しアクセスで索引され、実行許可(Eビットオン)となっているエントリのプログラム識別を用いればよい。
【0044】
図9は本発明の構成要素としてプログラム領域生成部31、プログラム制御部32、プログラム毎の属性領域19ー1・・19−4、このディレクトリ16と実行されるプログラムとしてシステムプログラム1・・システムプログラムJとユーザレベルのプログラム(J+1)・・ユーザレベルプログラムNと従来からの割込みベクタ13−3とセグメント記述子表17、ぺージテーブル(PT)21とそのディレクトリ20とPT21の各エントリに対応したエントリを持つ属性表22を示したものである。
【0045】
プログラム制御部32は、前記実行中プログラムによる他プログラム呼び出しのフックや、ロード後ないしプログラム切替え時の属性表のメモリ制御レジスタ97へのロード指示や、実行中のプログラムの要求によるメモリ追加に伴うメモリ制御レジスタの更新指示等は一切行わない点が前記第1の実施の形態と異なるが他は前記と同様である。
【0046】
プログラム領域生成部31は、ロードされるプログラムのプログラムファイル情報より、命令、データ、スタック別にセグメントを列挙し属性に関する指定でグループ化し、各グループにそのサイズに応じてページ識別(仮の通番)と属性(実行可、読出し可、書込み可、キャッシュバイパス)を付与し、各ページ識別に論理アドレスを追記しこれにメモリ使用表11−2を参照しページ番号(ページフレームアドレス)を割付け、図6の属性表原形を作成しページ識別と論理アドレスをそのプログラムの属性エリアへ格納する。又PTエリアを確保し、PTDR20の論理アドレス上位で指定されるエントリにPTエリア先頭アドレスを登録し、PTエリアの論理アドレス上位で指定されるエントリにページ番号(PFA)、制御ビット、プログラム識別、属性を登録する。又論理アドレスを登録した属性エリアのアドレスをプログラム識別とともに属性表ディレクトリ(ATDR)16に登録する。
【0047】
プログラム管理エリア15にはセグメント記述子等の情報が格納される。プログラム領域生成部31は前記メモリ使用表11−2の他にスワップファイル使用表11−3を有して、メモリ上のページをスワップアウトするファイルの各ブロックの使用状態を管理している。更に前記ATDRポインタ11−4の他にPTDR20ポインタ11−5も有している。
【0048】
プログラム領域生成部31は付与済みページをスワップアウトする場合、プログラム制御部32にプログラム選定を依頼する。プログラム制御部32は優先度の低いプログラムを選定しその実行を停止する(プロセセスタイマー割り込み等を利用し実行停止する)。プログラム領域生成部31はそのPIDを得て、ATDR16を引き属性エリアより論理アドレス一覧を得る。論理アドレスでPT21にアクセスしそのPFA、制御ビット、属性を得る。データページをスワップアウト対象とし、PT21、アドレス変換バッファ81の制御ビットのS(スワップ)をオンにする。次に制御ビット中の更新履歴ビットがオンしているページをスワップファイルにセーブする。スワップファイル使用表11−3に採番し、スワップ先アドレスを得て追記し、IOS25にファイルへの書込を依頼する。完了すると対象ページに対しPT21、アドレス変換バッファ81の制御ビットのP(ページ存在)をリセットする。属性エリアにもPをリセット、Sをオンとしてスワップ先アドレスを書込む。対象ページの空きをページ使用表に反映する。尚、アクセスチェック機構10はIOS25のページ読出を、Sビットがオンで且つCPIDがIOS25であることでこれを許可する。
【0049】
スワップインの場合は、上記属性エリアの情報を取り出し、新規PFAを採番し、PT21、アドレス変換バッファ81のPFAを更新後IOSにファイルからの読み込みを指示する。アクセスチェック機構10はIOS25のメモリ書き込み要求に対し、Pがリセット、Sがオンの為、その書き込みをスワップインとみなしこれを許可する。書き込み完了後、プログラム領域生成部31はPT21のPビット、Sビットをそれぞれセット、リセットしておく。属性エリアの情報も更新しておく。
【0050】
図10を参照しアドレス変換機構8の概要を説明する。論理アドレスレジスタ(LAR)75は命令演算処理部7からの論理アドレスを保持するレジスタで、ページフレームアドレスレジスタ(PFAR)76はメモリ2のPT21から読み出したページ番号と制御ビットを保持するレジスタである。TLB−L80、TLB−R81はそれぞれ64エントリ X 4レベルのアドレス変換バッファで、TLB−L80の各エントリはLAR75の論理ページアドレスの上位、TLB−R81の各エントリは前記論理ページアドレス上位と自エントリ番号を論理ページアドレス下位とする論理ページアドレスに対応するページ番号(PFA)を保持している。これらは一致回路82、4ウェイセレクタSELA83と合わせセットアソシアティブ方式のアドレス変換を行う。RA2R84は変換されたページフレームアドレスとLAR75のページ内アドレスを受けキャシュ10へのメモリアドレスとしてこれを保持するレジスタである。変換チェック制御部85は命令演算処理部7からのメモリアクセスの都度その論理アドレスをメモリアドレスに変換する制御を行うとともに対応するページ番号が登録されてなくミスヒットした場合はPT21よりページ番号(PFA)、制御ビット、属性、プログラム識別を読み出し、TLB−R81、第1メモリ制御レジスタ(MCR)87の属性部、PID部に登録する。又アドレス変換と、アクセスチェックを同ステージで処理するため、本制御部はアクセスチェックも制御する。
【0051】
次に本図を参照しアクセスチェック機構10の概要を説明する。ACCR79は命令演算処理部7から受けるコマンドとアクセスの種類(E、R、W、C)を保持するレジスタである。ATR77、PIDR78はそれぞれPT21から読み出した属性、プログラム識別をMCRへ書込む為に保持するレジスタである。第1MCR87の属性部、PID部のそれぞれのエントリにはTLB−R81の対応エントリが保持しているページの属性、プログラム識別(ページの所有者)が保持される。第2MCR88の各エントリは対応するページが貸し出された場合その属性(OW、OR)を保持する。即ち他プログラムに書込み可で貸出した場合はOWビットがセットされ、読出し可で貸出した場合はORビットがセットされる。更に各エントリは対応するページが多数のプログラムが読み出し専用で共用する場合CRビットをセットし保持する。第1MCR87、第2MCR88はTLB−R81と同様に4レベルのセットアソシアティブ構造である。SELB90、SELC91はヒットしたレベルを選択する4ウェイセレクタである。カレントプログラム識別(CPID)92は実行中のプログラム識別を保持するレジスタである。一致回路94はメモリアクセスの都度第1MCR87のPID部より読出されたプログラム識別とCPIDの一致検出回路である。
ゲ−ト回路96は第1MCR87の属性部より読出された属性(E、R、W、C)の内(R、W、C)を一致回路94出力でゲートしRビットをEビットでもゲートする回路である。回路98はWビットとOWビットの論理和、RビットとCRビットとORビットの論理和を作成しE、Cビットはスルーとする回路である。アクセスチェック回路70、貸出しチェック回路73は前記図3の回路と同様である。
【0052】
変換チェック制御部85は命令演算処理部7のアクセス要求を受けるとコマンドとアクセスコードをACCR79、論理アドレスをLAR75にセットし前記アドレス変換を行う。ミスヒットであれば前記PT21より対応ページの情報をロード後アドレス変換する。アドレス変換と同時にコマンドに従ってアクセスチェックをする。コマンドがメモリアクセス(MA)で且つアクセスコードが命令読み出しであれば第1MCR87より読出した属性のE、R、ビットがオンであるかアクセスチェック回路70で判定しオンであれば読出したプログラム識別をCPID92にセットし、又その命令読出しを許可する。データの読出し書込みアクセスであれば第1MCR87より読出したプログラム識別がCPIDに一致し、属性のR、Wビットがオンかを上記対応の回路で判定し、その結果に応じアクセスを許可/抑止する。又共用ページの読出しは第2MCR88より読出したCRビット値により許可/抑止する。コマンドがページ貸出し(REN)であれば第1MCR87より読出したプログラム識別がCPIDに一致し、属性のR、Wビットがアクセスコードで指定されている貸出し時属性を含むものであれば貸出し時属性を第2MCR88の対応エントリに書き込む。これによりこの後のアクセスでプログラム識別がCPIDに一致しなくても貸出しページアクセスは許容される。尚、ページ貸出しのリセットはリセットする属性対応のアクセスコードのビットをオフとするRENコマンドをセット時と同様に処理することで実現される。
【0053】
次にプログラムN28をプログラムファイル43からメモリ2にロードし初期メモリ設定後、実行開始しプログラムN28がページを貸出しIOS25を呼び出しリターン後ページ貸出しをリセットし実行終了する例について、図11、12のフローチャートに基づき、図4、図6、図9、図10を参照しプログラム制御部32、プログラム領域生成部31、アクセスチェック機構10の動作を説明する。
【0054】
プログラム制御部32は操作者の指示を受けファイルデバイス4上のプログラムファイル43を 読込バッファ24に読込みバッファアドレス、サイズを伴いプログラム領域生成部31に初期メモリ設定指示をする(図11のS21)。バッファには図4に示す実行形式のプログラムファイルのヘッダー44と実行モジュール45が読み込まれている。ヘッダーにはヘッダー、実行モジュールのサイズ46、セグメント定義47、セグメントリロケーション情報48が含まれている。セグメント定義はコード、データ、スタック別にセグメント名とそのサイズが記載され、リロケーション情報には各セグメントにアクセスするために使用する命令演算処理部7のセグメントレジスタと各セグメントの記述子を該レジスタにロードする命令の位置が記載されている。
【0055】
プログラム領域生成部31はヘッダー44を参照し、属性エリア19−4を確保する。次にコード、データ、スタック毎にセグメントを自ワークエリアに列挙しデータは指定(W、C、共用のR専用)でグループ化する。コードは実行可、読出可、としデータでWrite指定のないものは読出可とし、Write指定されていれば読出可、書込可とし、スタックは読出可、書込可とする。これらは共用の読出専用を除きプログラムNにのみ与えられたアクセス権である。次にコード、データの各グループ、スタックの各グループ単位にサイズの小計を算出しサイズを考慮しページID(通番)を付与しページIDに論理アドレス、属性(E、R、W、C)を付与し図6のページIDと論理ページアドレスとメモリ属性が作成される。図6では命令セグメントをP1とし論理アドレス上のページ#100、実行可、読出可を付与し、DT1セグメントをP2、P3とし論理アドレス上のページ#201、#202と読出可、書込可を付与しDT2セグメントをP4とし論理アドレス上のページ#203と読出可、書込可を付与しSTSTKセグメントをP5とし論理アドレス上のページ#500と読出可、書込可を付与する(図11のS22−1)。
【0056】
次サブステップではページ使用表11−2を参照し各ページIDにページ番号を付与する。共用の読出専用セグメントのページIDにはシステムプログラムのページ使用表に付随する情報を検索し登録されてあればそのページ番号を付与し、これ以外は未使用ページを採番しページ番号を付与する。図6のページIDと論理ページアドレスとメモリ属性とページ番号(PFA)、が自ワークエリアに作成される(図11のS22−2)。
【0057】
次に各セグメントのベースアドレス、サイズを計算しセグメント記述子をDT17に書込み実行モジュールのセグメント記述子ロード命令のセレクタ値を上記書込み位置に合わせておく(図11のS22−3)。次サブステップでは属性エリア19−4にプログラムN論理アドレス一覧を作成する。属性値そのものでなくPT21を通じ属性表を指す論理アドレス一覧を格納する。即ち、ページIDと論理ページアドレスをプログラムNの属性エリア19−4に格納する(図11のS22−4)。そしてPT21用エリアを確保し、エリアの先頭アドレスをPTDR20の論理ページアドレスの上位に対応するエントリに書込み、PTエリアの論理ページアドレスの下位に対応するエントリにページ番号(PFA)、制御ビット、プログラム識別、属性を書込む(図11のS22−5)。尚制御ビットの命令セグメントページのP(ページが存在することを表示)ビットはリセット状態を書き込む。ATDR16の対応エントリにプログラムN属性エリアアドレスを書き込む(図11のS22−6)。読込バッファ内コード部をプログラムNの命令セグメントに移送する。この書込みについてはアクセスチェック機構10の変換アクセスチェック制御部85は命令セグメントページの制御ビットの内のPビットがセットされてなくプログラム領域生成部31のアクセス(CPID:プログラム領域生成部31のID)であることで例外的に実行可、読出可のみのページへの書き込みを許容する。移送後PT21上の命令セグメントページのPビットをセットする。最後に命令セグメント記述子アドレスと共にメモリ設定終了をプログラム制御部32に通知する(図11のS22−7)。
【0058】
プログラム制御部32は、プログラムNを呼び出す(図11のS23)。命令演算処理部7はプログラムNの命令読出し要求をアドレス変換機構8に対して行なうが新規設定ページにつきミスヒットしPT21より対応エントリをロードする。その後このアクセスは許可され、CPID92にはN(プログラムNの識別)がセットされる。
プログラムNはソート処理1を実行する。この処理においてDT1セグメント対応ページへのアクセスをCPID、第1メモリ制御レジスタ87が許可する。この後、DT2(ソート対象データ読込エリアページ)の貸出準備をする。即ちアドレスをDT2論理アドレスとし貸出時属性としてアクセスコードのWビットをオンとする貸出設定命令を発行する(図12のS24)。
【0059】
アクセスチェック機構10は第1メモリ制御レジスタ87からDT2ページのPID、属性を読出し、その結果PID値がCPID92と一致し、又属性のWビットオンで貸出し可と判定する。そして第2メモリ制御レジスタ88のDT2ページにアクセスコードレジスタのR、W値を書き込む(OWビットをオンにする)(図12のS25)。
【0060】
プログラムNはIOS呼び出しを実行する(図12のS26)。命令演算処理部7はIOSプログラムの命令読出しを行い、このアクセスは第1メモリ制御レジスタ87により許可され、CPID92には同時に読出されたIOSのPID(=1)がセットされる。IOSはデータをDT2に読み込み(第2メモリ制御レジスタ88のOWビットがアクセス許可)IRET命令を実行する(図12のS27)。
【0061】
プログラムNのIRET先命令読出が行われCPID92にNがセットされる。プログラムNは返値を確認し、DT2ページ貸出設定をリセットする命令(アドレスをDT2の論理アドレスとしアクセスコードが全てリセット状態の貸出し命令)を発行後、ソート処理2を実行しプログラムの実行終了をプログラム制御部32に通知(終了割り込み)する(図12のS28)。
【0062】
次に、本発明の第3の実施の形態について説明する。本実施形態は前記プログラムNのページ貸し出し設定命令による第2メモリ制御レジスタのOR、OWビットセットを、プログラムNをロード時に他の属性と共に生成し、他の属性が第1メモリ制御レジスタにロードされる時、OR、OW属性を第2メモリ制御レジスタにロードしておく。そしてプログラムNが例えばIOSを呼び出す直前で命令によりOR、OW属性を有効化し、IOSよりリターン時これを無効化するものである。
【0063】
図4を参照し、プログラム領域生成部11或いは31は前記属性表を自ワークエリアに作成すると先ず他プログラム呼び出し命令に着目し、その引値(コール時パラメータ)を解析する。その結果コール先にバッファエリア乃至データエリアを渡していればそのセグメントを割り出す。図4の例では102番地の引値設定で、ファイル読み込みを指定しその前にDT2セグメントをデータセグメントレジスタに設定しているのでDT2セグメントをバッファとして渡していると判定する。そして図6の斜線部に示している様にP4のOWビットをオンに設定する。このOWビットは図5の属性表、図9の属性表22にも書き込まれる。アクセスチェック機構9乃至10は属性表をロード時、他の属性を第1メモリ制御レジスタにロードする際OR、OW属性を第2メモリ制御レジスタにロードしておく。
【0064】
図3を参照しアクセスチェック機構9のアクセスチェック制御回路72は上記有効化命令に基づくコマンド(ENREN)を受けるとCPBR57をTPBR58にコピーし第2メモリ制御レジスタ62のOR、OWビットマップを有効化する。無効化命令に基づくコマンド(DISREN)を受けるとTPBR58をクリアないしこのレジスタの有効性表示ビットをリセットし第2メモリ制御レジスタ62のOR、OWビットマップを無効化する。
【0065】
図10を参照しアクセスチェック機構10の変換チェック制御部85は上記有効化命令に基づくコマンド(ENREN)を受けるとCPID92を貸出し元プログラム識別(RPID)93にコピーし第2メモリ制御レジスタ88のOR、OWビットを有効化する(一致回路95の出力がOR、OW読出し出力を回路97でゲートする)。無効化命令に基づくコマンド(DISREN)を受けるとRPID93をクリアないしこのレジスタの有効性表示ビットをリセットし第2メモリ制御レジスタ88のOR、OWビットを無効化する。
【0066】
次に、本発明の第4の実施の形態について説明する。本実施形態では前記プログラムN(ソート)が実行された後、プログラム(マージ)が実行結果を受け取り連携して動作する場合にプログラム(マージ)のメモリエリア生成を高速に行う方式を示す。
【0067】
図4を参照し前記プログラム制御部12、乃至32はプログラムN(ソート)のロード時にヘッダー44内の連携情報49をチェックし本プログラム実行後コード用領域、データ領域、スタック領域を引き渡しプログラム(マージ)が連携起動されること検出する。図2を参照しPID表12ー2のエントリNの備考エリアに連携起動されるプログラム名(MERG)を記憶しておく。プログラムNが実行され終了後プログラム制御部11乃至31は上記記憶された連携情報をチェックし、プログラム(マージ)のプログラムファイルをバッファに読み込み、PIDとしてNを指定しメモリの引継設定をプログラム領域生成部11乃至31に指示する。同時にPID表のエントリNをマージに更新する。プログラム領域生成部11ないし31はプログラムファイルのヘッダー情報を参照し、又プログラムN属性エリア情報をもとに各セグメントのページ数が越えてないかチェックする。問題なければ、プログラム(ソート)命令セグメントにバッファのコード部を移送してメモリ引き継ぎ設定を完了する。
【0068】
上記第1の実施形態ではアクセスチェック機構9の第1メモリ制御レジスタが一つの例を示したが、これを複数とし実行するプログラムの切替えに伴う属性表入替えを最小にし、実行中プログラムに対応するメモリ制御レジスタを命令読出を許可したメモリ制御レジスタと指定する方式であってもよい。
【0069】
上記第2の実施形態ではアクセスチェック機構10の第1メモリ制御レジスタはページ当たり1エントリのレジスタとし、PIDを保持するようにしたが、これを複数のレジスタとしPIDを持たず、実行中プログラムに対応するメモリ制御レジスタを命令読出を許可したメモリ制御レジスタと指定する方式も容易に類推できる。
【0070】
上記実施形態の貸し出されたページを更に属性、ページを範囲内で限定し又貸しするための命令とこれに対応するアクセスチェック機構9、10の構造等は容易に類推出来る。
【0071】
【発明の効果】
以上説明した様に本発明の第1、5のメモリ属性管理方式は、プログラム毎にメモリ属性を生成しプログラム毎に属性領域に保持し、実行されるプログラムを特定し、その属性をアクセスチェック機構に設定する手段を持つので、単独動作するプログラムが使用するメモリ部分にのみ、メモリ属性許可を与えることが可能となりプログラム毎に実メモリページアクセスに対するメモリ保護が出来る効果がある。
【0072】
本発明の第2、3、4、6、7、8のメモリ属性管理方式は、プログラム毎にメモリ属性を生成しプログラム毎に属性領域に保持し、実行されるプログラムを特定し、その属性をアクセスチェック機構に設定する手段、他プログラムが所有する領域への正当なアクセスをエリア、期間を限定し許可設定する手段を持つので、そのプログラムが使用するメモリ部分にのみ、メモリ属性許可を与えることが可能となりプログラム毎に実メモリページアクセスに対するメモリ保護が出来る効果がある。
【0073】
本発明の第3のメモリ属性管理方式は、属性表をアクセス属性の種類毎で、メモリ管理単位に対応し許可ないし禁止を示すビットマップを含み構成するのでビットマップデータをワード単位で扱え複数ページに対する属性の処理が高速化できる効果がある。
【0074】
本発明の第4のメモリ属性管理方式は、実行中のプログラムによる追加メモリ領域要求及びその解放通知に呼応した属性表の更新を効率的に行ない、属性管理処理の処理時間を低減する効果がある。
【0075】
本発明の第6のメモリ属性管理方式は、多数のプログラムがマルチプロセス、マルチスレッドで並列実行される環境においても、処理装置のメモリアクセス速度を低下させることなく、又少ない金物乃至ステップの追加で前記プログラム毎にメモリ保護が出来る効果がある。
【0076】
本発明の第7のメモリ属性管理方式は、プログラムのエリア貸し出し設定、解除命令を簡単にし、これらの命令数を低減する効果がある。
【0077】
本発明の第8のメモリ属性管理方式は、連携起動されるプログラムの領域生成を高速化し、属性エリアサイズを縮小する効果がある。
【図面の簡単な説明】
【図1】本発明のメモリ属性管理方式が適用される情報処理装置例を示すブロック図
【図2】本発明のメモリ属性管理方式の第1の実施形態のメモリ上に配置された要素を示す図。
【図3】本発明のメモリ属性管理方式の第1、第3の実施形態におけるアクセスチェック機構9のブロック図。
【図4】実行形式プログラムファイルのヘッダー、実行モジュールの例を示す図。
【図5】本発明のメモリ属性管理方式の第1、第3の実施形態におけるプログラムN属性表の内容を示す図。
【図6】本発明のメモリ属性管理方式の第2、第3の実施形態におけるプログラムN属性表作成イメージを示す図。
【図7】本発明のメモリ属性管理方式の第1実施形態の動作を示すフローチャート。
【図8】本発明のメモリ属性管理方式の第1実施形態の動作を示すフローチャート。
【図9】本発明のメモリ属性管理方式の第2の実施形態のメモリ上に配置された要素を示す図。
【図10】本発明のメモリ属性管理方式の第2、第3の実施形態におけるアドレス変換機構8とアクセスチェック機構10のブロック図。
【図11】本発明のメモリ属性管理方式の第2の実施形態の動作を示すフローチャート。
【図12】本発明のメモリ属性管理方式の第2の実施形態の動作を示すフローチャート。
【図13】従来のプログラム領域の破壊例を説明するための図。
【符号の説明】
1 プロセッサ
2 メモリ
3 システム制御ユニット
4 ファイルデバイス
5−1 表示装置
5−2 キーボード
6 キャッシュ
7 命令演算処理部
8 アドレス変換機構
9、10 アクセスチェック機構
11、31 プログラム領域生成部
11−4 ATDRポインタ
12、32 プログラム制御部
12−2 プログラム識別(PID)表
13−1 割り込みベクタ表B(IDTB)
13−2 プログラムセレクタ表B(PSELB)
13−3 割り込みベクタ表(IDT)
13−4 プログラムセレクタ表(PSEL)
14、15 プログラム管理エリア
16 属性エリアディレクトリ(ATDR)
17 セグメント記述子表(DT)
18、19 属性エリア
20 ページテーブルディレクトリ(PTDR)
21 ページテーブル(PT)
22 属性表
43 プログラムファイル
44 ヘッダー
45 実行モジュール
51、79 アクセスコードレジスタ(ACCR)
52 メモリアドレスレジスタ(MAR)
53 属性エリアアドレスレジスタ(ATAR)
57 カレントページブロックレジスタ(CPBR)
58 テンポラリページブロックレジスタ(TPBR)
61、87 第1メモリ制御レジスタ(第1MCR)
62、88 第2メモリ制御レジスタ(第2MCR)
70 アクセスチェック回路
71 貸出チェック回路
72 アクセスチェック制御回路
75 論理アドレスレジスタ(LAR)
76 ページフレームアドレスレジスタ(PFAR)
80 アドレス変換バッファ(TLB−L)
81 アドレス変換バッファ(TLB−R)
85 変換チェック制御部
92 カレントプログラム識別レジスタ(CPID)
93 貸出し元プログラム識別レジスタ(RPID)

Claims (2)

  1. 主記憶上のメモリについて所定の管理単位でメモリの実行、読出、書込の各アクセス属性を保持し、プログラムによるメリの前記各アクセスの可否をチェック後、許可/抑止するアクセスチェック機構を備えた処理装置のメモリアクセス属性管理方式において、プログラムのメモリへのロード、実行、停止、終了を制御監視するプログラム制御部と、これの指示により、プログラムロード時、対象プログラムファイルの付属情報に基づきプログラムに必要なメモリ領域を管理単位で割付け、そのメモリアクセス属性を生成し属性表として登録するプログラム領域生成部と、ロードされているプログラムについてプログラム毎の属性表を保持するメモリアクセス属性領域と、実行中のプログラムの前記属性表の写しとテンポラリのメモリアクセス属性をそれぞれ第1、2のメモリ制御手段に保持しプログラムのメモリアクセスの種類をチェックし許可抑制するアクセスチェック機構と、プログラムが、割当てられたメモリをアドレス、付与属性を指定し呼出し先のプログラムに貸出す命令手段とを含み、前記プログラム制御部はプログラムの実行開始に際し、アクセスチェック機構に対し、そのプログラムの属性表を、メモリアクセス属性領域より、第1のメモリ制御レジスタに設定させ、アクセスチェック機構はプログラム単位でチェックをするとともに、前記貸出し命令を受けると指定するアドレスの属性を第1のメモリ制御手段より得、付与属性が該属性の範囲以下であればこれを第2のメモリ制御手段に設定し次のプログラムのメモリアクセスチェックを第1と第2のメモリ制御手段のアクセス属性を加えて行うことを特徴とするメリアクセス属性管理方式。
  2. 論理アドレスを主記憶上のメモリアドレスに変換するアドレス変換表、メモリ管理単位でメモリの実行、読出、書込の各アクセス属性を保持する属性表、実行状態のプログラムに関しアドレス変換表の写しを持ちメモリ管理単位で前記アドレス変換する機構、プログラムのメモリ管理単位への前記各アクセスをチェックする機構を備えた処理装置のメモリアクセス属性管理方式において、プログラムのロード、実行、停止、終了を制御し、ロードするプログラム名に一意にプログラム識別を付与し、メモリの確保を指示するプログラム制御部と、前記指示を受けプログラムファイルの付属情報に基づきプログラムが使用する論理アドレス情報に対し管理単位毎にメモリアクセス属性を生成しメモリ管理単位番号を割付け、メモリ管理単位番号をアドレス変換表のエントリに登録し、生成したメモリアクセス属性を属性表の前記エントリにプログラム識別とともに登録するプログラム領域生成部と、前記各プログラムの管理単位毎の論理アドレスを保持する属性領域と、前記アドレス変換機構と、実行状態の複数プログラムに関し属性表のプログラム識別、メモリアクセス属性の写しを第1のメモリ制御手段の対応エントリに、テンポラリのメモリアクセス属性を第2のメモリ制御手段の前記対応エントリに保持するとともに実行中のプログラムのメモリ制御手段のエントリを指定するカレント指定手段を有すアクセスチェック機構と、プログラムが割当てられたメモリに関し論理アドレス、付与属性を指定し他プログラムに貸出す命令手段とを含み、アクセスチェック機構は命令読出しアドレスに対し実行可の属性をもつ第1のメモリ制御手段のエントリのプログラム識別をカレント指定手段に設定し、以降のデータアクセスアドレスに対応するエントリのプログラム識別がカレント識別と一致することを含めてアクセスチェックをし、貸出設定では付与属性がアドレスに対応する第1のメモリ制御手段のエントリの属性の範囲以下であればこれを第2のメモリ制御手段に設定することを特徴とするメリアクセス属性管理方式。
JP23185999A 1999-08-18 1999-08-18 プログラム単位メモリアクセス属性管理方式 Expired - Fee Related JP3607540B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23185999A JP3607540B2 (ja) 1999-08-18 1999-08-18 プログラム単位メモリアクセス属性管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23185999A JP3607540B2 (ja) 1999-08-18 1999-08-18 プログラム単位メモリアクセス属性管理方式

Publications (2)

Publication Number Publication Date
JP2001056783A JP2001056783A (ja) 2001-02-27
JP3607540B2 true JP3607540B2 (ja) 2005-01-05

Family

ID=16930148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23185999A Expired - Fee Related JP3607540B2 (ja) 1999-08-18 1999-08-18 プログラム単位メモリアクセス属性管理方式

Country Status (1)

Country Link
JP (1) JP3607540B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904518B2 (en) 2010-05-07 2014-12-02 Panasonic Corporation Information processing device, information processing method, and program distribution system

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US20030226014A1 (en) * 2002-05-31 2003-12-04 Schmidt Rodney W. Trusted client utilizing security kernel under secure execution mode
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
JP4519738B2 (ja) * 2005-08-26 2010-08-04 株式会社東芝 メモリアクセス制御装置
US7991965B2 (en) * 2006-02-07 2011-08-02 Intel Corporation Technique for using memory attributes
US7610464B2 (en) * 2006-02-22 2009-10-27 Sony Computer Entertainment Inc. Methods and apparatus for providing independent logical address space and access management
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US7610448B2 (en) 2006-12-27 2009-10-27 Intel Corporation Obscuring memory access patterns
JP4892414B2 (ja) * 2007-06-13 2012-03-07 ルネサスエレクトロニクス株式会社 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
JP2012173870A (ja) 2011-02-18 2012-09-10 Toshiba Corp 半導体装置及びメモリ保護方法
US10652248B2 (en) * 2016-07-28 2020-05-12 Molecula Corp. Systems and methods of managing data rights and selective data sharing
CN110337650A (zh) * 2017-03-02 2019-10-15 三菱电机株式会社 信息处理装置和访问管理程序
CN114546897A (zh) * 2020-11-26 2022-05-27 龙芯中科技术股份有限公司 内存访问方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904518B2 (en) 2010-05-07 2014-12-02 Panasonic Corporation Information processing device, information processing method, and program distribution system

Also Published As

Publication number Publication date
JP2001056783A (ja) 2001-02-27

Similar Documents

Publication Publication Date Title
JP3607540B2 (ja) プログラム単位メモリアクセス属性管理方式
JP3259969B2 (ja) キャッシュメモリ制御装置
US8850557B2 (en) Processor and data processing method with non-hierarchical computer security enhancements for context states
US5220669A (en) Linkage mechanism for program isolation
EP0331900B1 (en) Method and apparatus for capability control
US8943288B2 (en) Method of controlling memory access
US5845331A (en) Memory system including guarded pointers
TWI603223B (zh) 記憶體保護電路、處理裝置、及記憶體保護方法
EP0472487A2 (en) Apparatus and method for controlling access to data using domains
TW202008169A (zh) 使用儲存在記憶體系統中的記憶體保護表的記憶體保護單元
JPH03220648A (ja) データ処理システム
JPS62165250A (ja) 仮想記憶方法
JP7397057B2 (ja) メモリ・システム内に記憶されている制御テーブルのための二分探索手順
JPS60221851A (ja) メモリ・アクセス・コントローラを具えるデータ処理装置
JP2005509946A (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
JP3454854B2 (ja) メモリ管理装置及び方法
JP2020519991A (ja) 能力メタデータを管理するための装置及び方法
JP2020521225A (ja) 機能ドメインを管理するための装置及び方法
JPH04100158A (ja) キャッシュ制御方式
JP3485940B2 (ja) 仮想記憶制御装置及び方法
JPH03154949A (ja) ストアされたデータのプロテクシヨン方法及びシステム
EP0428079A2 (en) Translation look aside buffer with parallel exception checking and update bypass
EP0327839B1 (en) Information handling system
EP4121862A1 (en) Memory accessor invalidation
JP2007310834A (ja) データ保護方法、情報処理装置及びオペレーティングシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041007

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S633 Written request for registration of reclamation of name

Free format text: JAPANESE INTERMEDIATE CODE: R313633

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091015

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101015

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111015

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121015

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees