JP2927072B2 - アクセス権検査装置 - Google Patents

アクセス権検査装置

Info

Publication number
JP2927072B2
JP2927072B2 JP3225558A JP22555891A JP2927072B2 JP 2927072 B2 JP2927072 B2 JP 2927072B2 JP 3225558 A JP3225558 A JP 3225558A JP 22555891 A JP22555891 A JP 22555891A JP 2927072 B2 JP2927072 B2 JP 2927072B2
Authority
JP
Japan
Prior art keywords
address
access right
access
bus
execution
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 - Lifetime
Application number
JP3225558A
Other languages
English (en)
Other versions
JPH0561775A (ja
Inventor
恭彦 河本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP3225558A priority Critical patent/JP2927072B2/ja
Publication of JPH0561775A publication Critical patent/JPH0561775A/ja
Priority to US08/475,419 priority patent/US5530839A/en
Application granted granted Critical
Publication of JP2927072B2 publication Critical patent/JP2927072B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はページングあるいはセグ
メント方式によって実現する仮想記憶管理におけるメモ
リ保護機構に関し、特に実際にはアクセスを行わないメ
モリ領域に対するアクセス権を検査する機構の実現方式
に関する。
【0002】
【従来の技術】マイクロプロセッサや大型計算機では、
装置に実装されたメモリの容量がプログラムのコードの
容量よりも小さい場合でも、プログラムの実行を可能に
する仮想記憶方式が採用されている。仮想記憶方式では
プロセッサの提供する論理的なアドレス空間、すなわち
プログラムで参照可能なアドレス空間を、ページあるい
はセグメントと呼ばれる単位領域に分割する。プログラ
ムはプログラムを格納するのに十分な容量を持つ補助記
憶装置に保存しておき、現時点でのプロセッサの実行に
必要な部分プログラムのみを補助記憶装置からメモリに
ロードして実行する。もし、必要な部分プログラムがメ
モリにロードされていない場合は、メモリ上の不要な部
分プログラムを補助記憶装置に退避し、代りに必要な部
分プログラムを補助記憶装置からメモリにロードする。
この補助記憶装置とメモリの間の部分プログラムの入換
えはページあるいはセグメントの単位領域の単位で行わ
れる。メモリ上にはプログラムの一部分がロードされて
いるが、プログラムから見える論理的はアドレス(仮想
アドレス)と実際のメモリ上でのアドレス(実アドレ
ス)は必ずしも一致していない。仮想アドレスがメモリ
のどの領域に対応しているかはメモリ上に配置したアド
レス変換テーブルによって決定する。すなわち、アドレ
ス変換テーブルは仮想アドレスと実アドレスの対応関係
を保持している。
【0003】仮想記憶方式を採用するプロセッサでは、
メモリに対するアクセスにおいて仮想アドレスを実アド
レスに変換する必要があるため、仮想アドレスから実ア
ドレスへのアドレス変換時間がプロセッサの命令実行時
間を遅らせる要因となる。しかしながら、アドレス変換
テーブルは実アドレス空間のメモリ上に配置され、アド
レス変換テーブル自体のアクセスはメモリのアクセス時
間に影響を受けるため高速なアドレス変換は期待できな
い。そこで通常のプロセッサではチップ内にアドレス変
換緩衝機構(以後、TLBと呼ぶ)にアドレス変換の結
果をキャッシングし、アクセスする仮想アドレスがTL
Bにヒットする限りは、,TLBにキャッシングされた
実アドレスに従ってメモリのアクセスを行い、高速な命
令実行を実現している。
【0004】仮想記憶方式の本来の目的は、上述の機構
によりに少量のメモリ空間を見掛け上多量の空間に拡張
するものであるが、副次的にメモリの保護機能を実現す
る。メモリ保護はアドレス変換テーブルの実アドレスと
ともに、対応する仮想アドレスに関するアクセス情報を
格納しておき、そのアクセス情報に反するアクセスを抑
制する機能である。たとえば、プロセッサの実行環境を
OSレベル、アプリケーションレベルに分類して、アプ
リケーションレベルで動作するプログラムからはOSレ
ベルの仮想空間をアクセスできないようにすることが考
えられる。これは、アプリケーションプログラムの暴走
や故意のアクセスによって、OSプログラムが破壊され
ることを保護する目的である。また、仮想アドレス空間
の各単位領域を実行可能、リード可能、ライト可能とい
う属性で分類し、その属性に反するアクセスを検知する
ことでプログラムの論理的なミスをプログラムに通知し
実行を停止させるという保護も考えられる。通常、仮想
記憶方式はアドレス変換機構とメモリ保護機構を組にし
て提供されている。
【0005】メモリ保護機構を提供するプロセッサでは
任意の仮想アドレスに対して、その領域がアクセス可能
であるか否かのアクセス権をプログラムで検査する機能
を提供している。本発明は従来のアクセス権検査方式の
課題を解決するものである。
【0006】図2は従来のプロセッサにおけるアドレス
変換機構、および保護機構を示すプロック図である。2
00はアドレス変換緩衝機構(TLB)、201はTL
B内の複数エントリを有する連想RAM(ARAM)、
202はTLB内の連想RAMと同一のエントリ数を有
するデータRAM(DRAM)、203はTLBの連想
RAMのヒット信号、204はデータRAMの選択信
号、205はプロセッサの実行レベルを保持するレジス
タ(PEL)、206はデコーダ(DEC)、207は
アクセス権検査機構(PROT)、208はアドレス変
換の結果の保護情報を保持するレジスタ(STAT)、
209はメモリ上のアドレス変換テーブルをTLBに読
み込む制御回路(REPCONT)、210はプロセッ
サの外部に通じるアドレスバス(ABUS)、211は
プロセッサの外部に通じるデータバス(DBUS)、2
12はアドレス変換を行う仮想アドレスをTLBの連想
RAMに転送したり、アドレス変換結果の保護情報を転
送するためのデータバス(VAバス)、213はアドレ
ス変換を行う仮想アドレスに付随するアクセス情報を転
送するデータバス(VTバス)、214はアドレス変換
の結果である実アドレスをTLBのデータRAMとの間
で転送するためのデータバス(RAバス)である。
【0007】アドレス変換を行う場合は、仮想アドレス
と仮想アドレスに付随するアクセス情報(リードかライ
トか実行か)が、それぞれ、VAバス212、VTバス
213に乗って転送される。VAバス212によって転
送される仮想アドレスはTLB 200のARAM 2
01の各エントリと比較が行われ、ARAM 201の
どれかのエントリにヒットすればヒット信号203が
“1”になり、ヒットしなければヒット信号203は
“0”になる。ヒット信号203が“1”となる場合に
は選択信号204によってデータRAM 202の特定
エントリが選択され、仮想アドレスに対応する実アドレ
スがDRAM 202からRAバス214に出力され
る。ヒット信号203が“0”になる場合はREPCO
NT209が起動され、ABUS 210を制御して、
プロセッサの外部のメモリにあるアドレス変換テーブル
の内容(実アドレスとメモリ保護情報)をDBUS 2
11からRAバス214に読み込む。そして、TLB
202のARAM 201のいずれかのエントリと、そ
のエントリに対応するDRAM 202のエントリに、
VAバス212から転送される仮想アドレスとRAバス
214に転送されてきたアドレス変換テーブルの内容を
格納する。この機構によって仮想アドレスが必ずTLB
200のARAM 201にヒットするようになる。
【0008】アクセス権の検査は、TLB 200のD
RAM 202のエントリに格納されたメモリ保護情
報、プロセッサの実行レベルPEL 205、および、
VTバス213を通じて通知されるアクセス情報をDE
C 206によってデコードした結果により、PROT
207で行われ、その結果はSTAT 208に格納
される。
【0009】図3はアクセス権を検査する機構の詳細な
ブロック図である。図3においてPEL 205、DE
C 206,PROT 207、STAT 208、V
Tバス213は図2に示したものと同一である。100
はTLBでヒットする仮想アドレスに対応するデータR
AM(図2の202)の特定の1エントリを示してい
る。101〜107はエントリ100に格納されている
アドレス変換テーブルの内容であり、101は実アドレ
ス(RADR)、102は実行可能レベル(EEL)、
103はリード可能レベル(REL)、104はライト
可能レベル(WEL)、105は実行許可(E)、10
6はリード許可(R)、107はライト許可(W)の情
報を保持する。108、109、110は比較器であ
り、それぞれ、実行レベルPEL 205と、実行、リ
ード、ライトの各属性に関する実行レベルであるEEL
102、REL103、WEL104との比較を行
う。もし、各属性の実行レベル(102〜104)とプ
ロセッサの実行レベルPEL 205がアクセスを許す
大小関係にあるならば、比較器108〜110の出力は
“1”になる。実行レベルがアクセスを許さない大小関
係にあるならば比較器108〜110の出力は“0”に
なる。111〜113はANDゲートであり、実行レベ
ルに関するアクセス権検査の結果である比較器108〜
110の出力とTLBのDRAMのエントリ100内の
領域の保護情報105〜107とANDをとる。結果と
して、ANDゲート111〜113の出力は、それぞ
れ、実行レベルPEL 205における、実行、リー
ド、ライトに関するアクセス権の可否信号になる。DE
C 206はVTバス213を通じて仮想アドレスに付
随して転送されてくるアクセス情報をデコードし、実行
アクセスを示す信号114、リードアクセスを示す信号
115、ライトアクセスを示す信号116を生成する。
114〜116の各信号は対象となるアクセスのとき
“1”となり、それ以外のアクセスでは“0”となる。
117〜119はNANDゲートであり、ANDゲート
111〜113の出力と各アクセスを示す信号114〜
115のNANDをとる。上述の機構によりNANDゲ
ート117〜119の出力が、どれか“1”になってい
れば、アドレス変換を行ったアクセスに関して保護違反
があることを示す。NANDゲート117〜119の出
力はレジスタSTAT 208に保持され、VAバス
(図2の212、図3には図示せず)から読み出され
る。
【0010】上述した従来のメモリ保護機構においてア
クセス権検査は次の様にして実現していた。図2および
図3を用いて説明する。アクセス権検査の要求は図2に
おけるVAバス212によって検査をする仮想アドレス
が通知され、VTバス213によって検査に関する情報
が通知される。検査に関する情報には検査を行う実行レ
ベル、および実行、リード、ライトに関するアクセス情
報が含まれている。検査するアドレスがTLB 200
のARAM 201にヒットしなければ、REPCON
T 209によって、ARAM 201、DRAM 2
02の内容が更新される。アクセス権の検査はPROT
207によって行われる。PROT207によって保
護違反が発生しなければ、検査した仮想アドレスはアク
セス可能である。ただし、実行レベルの比較はDRAM
202のエントリに含まれる102〜104とプロセ
ッサの実行レベルであるPEL 205との間で行われ
るため、VTバス213で転送されてくるアクセス権を
検査する実行レベルとPEL 205が一致しないとき
は誤った検査結果を通知する。このため、検査する実行
レベルとPEL 205が一致しないときは、マイクロ
プログラムなど別の手段でアクセス権検査を実行する必
要がある。
【0011】
【発明が解決しようとする課題】上述の様に、従来のプ
ロセッサにおけるアクセス権検査は、アクセス権を検査
すべき実行レベルがプロセッサの現在の実行レベルと一
致するか否かで処理を分ける必要があった。アクセス権
を検査すべき実行レベルがプロセッサの現在の実行レベ
ルに一致しない場合の処理をマイクロプログラムで行う
とすれば次のステップが必要となる。 (1)仮想アドレスに対応する実アドレスと保護情報が
格納されているアドレス変換テーブルの実アドレスを計
算する。 (2)アドレスバスとデータバスを制御してアドレス変
換テーブルの内容をプロセッサの内部に読み込む。 (3)実行、リード、ライトの実行レベルに関するアク
セス権を検査する。 (4)実行、リード、ライトの属性に関するアクセス権
を検査する。 (1)、(2)の処理に関しては、アクセス権をチェッ
クする仮想アドレスがTLBにヒットしないときも必要
になるが、(1)の処理はハードウエアのみで実行すれ
ば、マイクロプログラムで実行する場合よりも、実行速
度が少なくとも1クロック以上は速くなる。また、
(3)、(4)の処理に関してもハードウエアで行えば
1クロックで処理できるところが、マイクロプログラム
によれば演算・検査・判定の2回繰返しで少なくとも6
クロックの時間が必要になる。したがって、アクセス権
を検査すべき実行レベルがプロセッサの現在の実行レベ
ルに一致しない場合の処理をマイクロプログラムで行う
と6クロック以上処理時間が遅くなってしまう。また、
このマイクロプログラムと同等の処理を図2や図3に示
すアドレス変換機構およびメモリ保護以外の専用ハード
ウエアを設けて実現するためには、図2や図3とまった
く同程度の規模のハードウエアが必要になり、資源の無
駄である。
【0012】本発明の目的は、従来のアドレス変換機構
やメモリ保護機構のハードウエアをほとんど変更するこ
となく、プロセッサの現在の実行レベルと異なる実行レ
ベルにおけるアクセス権の検査を高速に行う機構を提供
することにある。
【0013】
【課題を解決するための手段】本発明のアクセス権検査
装置は、仮想アドレスから実アドレスへの変換を行うた
めのアドレス変換緩衝バッファと、プロセッサの実行レ
ベルを保持するレジスタと、セレクタと、前記アドレス
変換緩衝バッファの内容と前記プロセッサの実行レベル
を保持するレジスタの内容に従って仮想アドレスに対す
るアクセス権を検査しするアクセス権検査機構を有する
仮想記憶管理機構において、前記プロセッサの実行レベ
ルを、前記セレクタにより、任意の一時的な実行レベル
に切換えてアクセス権検査を行う機能を有することを特
徴とする。
【0014】
【実施例】次に、図面を用いて、本発明の構成ならびに
動作について詳細に説明する。
【0015】図1は、本発明を用いたアクセス権検査装
置の一構成例を示すブロック図である。図3に示した従
来のアクセス権検査装置の比較して、VTバス213に
よって与えられる、アクセス権検査に関する情報をDE
C 206でデコードして取り出されるアクセス権検査
を行う実行レベル120、プロセッサの現在の実行レベ
ルであるPEL 205とアクセス権検査を行う実行レ
ベルのいずれかを選択するセレクタ121、およびセレ
クタ121に対する選択制御信号122が付け加わって
いる。図1の構成要素である、TLB内のデータRAM
の内容100〜107、比較器108〜110、AND
ゲート111〜113、実行、リード、ライトの各アク
セス属性を示す信号114〜115、NANDゲート1
17〜119、PEL 205、DEC 206、PR
OT 207、STAT 208、VT 213は図3
に示す従来例の構成要素と同一であるため説明は省略す
る。
【0016】上述の通り、図1、図2および図3に示す
アドレス変換機構、メモリ保護機構に対するアドレス変
換要求あるいはアクセス権検査要求はVTバス213に
よって通知されてくる。このアドレス変換要求とアクセ
ス権検査要求には実行、リード、ライトのうちどの種類
のアクセスを行うのかという情報が含まれ、DEC20
6によってアクセス属性114〜116の各信号にデコ
ードされる。もし、VTバス213によって通知される
要求がアクセス権検査要求であるならば、さらにどの実
行レベルにおけるアクセス権をチェックすべきかという
情報が含まれる。DEC 206はアクセス権検査要求
に関する情報をデコードし、実行レベルを信号120に
取り出す。このとき、セレクタ121に対する選択制御
信号122は、DEC 206によって、要求がアドレ
ス変換ならPEL 205、要求がアクセス権検査であ
ればデコードされた実行レベル120を選択するように
決定される。このような構成を有するアクセス検査機構
において、アクセス権検査は、現在のプロセッサの実行
レベルを、一時的に、アクセス権を検査すべき目的の実
行実行レベルに切換えてアドレス変換を行い、メモリ保
護違反があるかないか検査することに等しい。保護違反
がなければ、すなわちNANDゲート117〜119の
出力がすべて“0”であればアクセス可能、NANDゲ
ート117〜119の出力のどれか1つでも“1”であ
ればアクセス不可能ということになる。アクセス権が確
定した後は、セレクタ121に対する選択制御信号12
2はPEL 205を選択するように制御されるものと
する。
【0017】
【発明の効果】以上説明したように、本発明を用いるこ
とで、プロセッサの現在の実行レベルと異なる実行レベ
ルのアクセス権の検査を、従来のアドレス変換およびメ
モリ保護に関するハードウエアをほとんど変更すること
なく高速に実現することができる。本発明を使用しない
場合は少なくとも6クロック以上の性能低下、あるい
は、メモリ保護に関するハードウエア資源の倍増する。
【図面の簡単な説明】
【図1】本発明の実施例の構成を示すブロック図であ
る。
【図2】本発明の従来例および実施例が想定するアドレ
ス変換機構およびメモリ保護機構の構成を示すブロック
図である。
【図3】本発明の従来例の構成を示すブロック図であ
る。
【符号の説明】
100 TLB内のデータRAMの1エントリ 101 実アドレス情報(RADR) 102 実行可能レベル情報(EEL) 103 リード可能レベル情報(REL) 104 ライト可能レベル情報(WEL) 105 実行許可情報(E) 106 リード許可情報(R) 107 ライト許可情報(W) 108、109、110 比較器 111、112、113 ANDゲート 114 実行アクセス属性を示す信号 115 リードアクセス属性を示す信号 116 ライトアクセス属性を示す信号 117、118、119 NANDゲート 120 アクセス権検査を行う実行レベル 121 セレクタ 122 選択制御信号 200 アドレス変換緩衝機構(TLB) 201 連想RAM(ARAM) 202 データRAM(DRAM) 203 TLBのヒット信号 204 データRAMの選択信号 205 プロセッサの実行レベル(PEL) 206 デコーダ(DEC) 207 アクセス権検査機構(PROT) 208 保護情報を保持するレジスタ(STAT) 209 メモリ上のアドレス変換テーブルをTLBに
読み込む制御回路(REPCONT) 210 アドレスバス(ABUS) 211 データバス(DBUS) 212 仮想アドレス情報を転送するバス(VAバ
ス) 213 VAバスの付加情報を転送するバス(VTバ
ス) 214 実アドレス情報を転送するバス(RAバス)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】プロセッサの実行レベルを保持するレジス
    タと、バス上のデータをデコードしアドレス変換要求で
    あるかアクセス権検査要求であるかを示す制御信号を出
    力するとともに、アクセス権検査要求であるときには前
    記データから実行レベルを生成するデコーダと、前記制
    御信号が前記アドレス変換要求であるときには前記レジ
    スタの内容を選択出力し、前記アクセス権検査要求であ
    るときには前記データから生成された実行レベルを選択
    出力するセレクタと、前記セレクタの出力と実アドレス
    とを比較してアクセス権の検査を行うアクセス権検査部
    とを備えることを特徴とするアクセス権検査装置。
JP3225558A 1991-09-05 1991-09-05 アクセス権検査装置 Expired - Lifetime JP2927072B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3225558A JP2927072B2 (ja) 1991-09-05 1991-09-05 アクセス権検査装置
US08/475,419 US5530839A (en) 1991-09-05 1995-06-07 Apparatus for checking access rights

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3225558A JP2927072B2 (ja) 1991-09-05 1991-09-05 アクセス権検査装置

Publications (2)

Publication Number Publication Date
JPH0561775A JPH0561775A (ja) 1993-03-12
JP2927072B2 true JP2927072B2 (ja) 1999-07-28

Family

ID=16831181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3225558A Expired - Lifetime JP2927072B2 (ja) 1991-09-05 1991-09-05 アクセス権検査装置

Country Status (1)

Country Link
JP (1) JP2927072B2 (ja)

Also Published As

Publication number Publication date
JPH0561775A (ja) 1993-03-12

Similar Documents

Publication Publication Date Title
US4905141A (en) Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US6266755B1 (en) Translation lookaside buffer with virtual address conflict prevention
US5606683A (en) Structure and method for virtual-to-physical address translation in a translation lookaside buffer
US5909696A (en) Method and apparatus for caching system management mode information with other information
EP0144763B1 (en) Address translation apparatus for a virtual memory data processing system
US4386402A (en) Computer with dual vat buffers for accessing a common memory shared by a cache and a processor interrupt stack
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
JPS6248258B2 (ja)
US5530823A (en) Hit enhancement circuit for page-table-look-aside-buffer
EP0284751B1 (en) Cache memory
US5161219A (en) Computer system with input/output cache
US5895489A (en) Memory management system including an inclusion bit for maintaining cache coherency
US5652860A (en) Memory control device
US5530839A (en) Apparatus for checking access rights
EP1278123B1 (en) High integrity cache directory
US5341485A (en) Multiple virtual address translation per computer cycle
JP2927072B2 (ja) アクセス権検査装置
US4424564A (en) Data processing system providing dual storage of reference bits
JPH02308349A (ja) バッファ記憶制御装置
US6546501B1 (en) Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded
US10990538B2 (en) Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device
JPS59112479A (ja) キヤツシユメモリの高速アクセス方式
JPH05241965A (ja) メモリ管理装置
JPS6220034A (ja) プログラム状態語切換制御方式
CN115982066A (zh) 内存的保护方法、装置、计算设备以及存储介质

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990413