JPH0561775A - Access right inspecting device - Google Patents
Access right inspecting deviceInfo
- Publication number
- JPH0561775A JPH0561775A JP3225558A JP22555891A JPH0561775A JP H0561775 A JPH0561775 A JP H0561775A JP 3225558 A JP3225558 A JP 3225558A JP 22555891 A JP22555891 A JP 22555891A JP H0561775 A JPH0561775 A JP H0561775A
- Authority
- JP
- Japan
- Prior art keywords
- access
- execution level
- address
- access right
- processor
- 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.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明はページングあるいはセグ
メント方式によって実現する仮想記憶管理におけるメモ
リ保護機構に関し、特に実際にはアクセスを行わないメ
モリ領域に対するアクセス権を検査する機構の実現方式
に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory protection mechanism in virtual memory management realized by a paging or segment method, and more particularly to a method of realizing a mechanism for checking an access right to a memory area which is not actually accessed.
【0002】[0002]
【従来の技術】マイクロプロセッサや大型計算機では、
装置に実装されたメモリの容量がプログラムのコードの
容量よりも小さい場合でも、プログラムの実行を可能に
する仮想記憶方式が採用されている。仮想記憶方式では
プロセッサの提供する論理的なアドレス空間、すなわち
プログラムで参照可能なアドレス空間を、ページあるい
はセグメントと呼ばれる単位領域に分割する。プログラ
ムはプログラムを格納するのに十分な容量を持つ補助記
憶装置に保存しておき、現時点でのプロセッサの実行に
必要な部分プログラムのみを補助記憶装置からメモリに
ロードして実行する。もし、必要な部分プログラムがメ
モリにロードされていない場合は、メモリ上の不要な部
分プログラムを補助記憶装置に退避し、代りに必要な部
分プログラムを補助記憶装置からメモリにロードする。
この補助記憶装置とメモリの間の部分プログラムの入換
えはページあるいはセグメントの単位領域の単位で行わ
れる。メモリ上にはプログラムの一部分がロードされて
いるが、プログラムから見える論理的はアドレス(仮想
アドレス)と実際のメモリ上でのアドレス(実アドレ
ス)は必ずしも一致していない。仮想アドレスがメモリ
のどの領域に対応しているかはメモリ上に配置したアド
レス変換テーブルによって決定する。すなわち、アドレ
ス変換テーブルは仮想アドレスと実アドレスの対応関係
を保持している。2. Description of the Related Art In microprocessors and large-scale computers,
A virtual memory system is adopted which enables execution of a program even when the capacity of the memory mounted on the device is smaller than the capacity of the code of the program. In the virtual memory system, a logical address space provided by a processor, that is, an address space that can be referenced by a program is divided into unit areas called pages or segments. The program is stored in an auxiliary storage device having a sufficient capacity to store the program, and only a partial program required for execution of the processor at this time is loaded from the auxiliary storage device into the memory and executed. If the necessary partial program is not loaded in the memory, the unnecessary partial program in the memory is saved in the auxiliary storage device, and the necessary partial program is loaded from the auxiliary storage device in the memory instead.
Replacement of the partial program between the auxiliary storage device and the memory is performed in units of page or segment unit areas. Although a part of the program is loaded on the memory, the logical address (virtual address) seen from the program does not always match the actual address on the memory (real address). Which area of the memory the virtual address corresponds to is determined by the address conversion table arranged on the memory. That is, the address conversion table holds the correspondence between virtual addresses and real addresses.
【0003】仮想記憶方式を採用するプロセッサでは、
メモリに対するアクセスにおいて仮想アドレスを実アド
レスに変換する必要があるため、仮想アドレスから実ア
ドレスへのアドレス変換時間がプロセッサの命令実行時
間を遅らせる要因となる。しかしながら、アドレス変換
テーブルは実アドレス空間のメモリ上に配置され、アド
レス変換テーブル自体のアクセスはメモリのアクセス時
間に影響を受けるため高速なアドレス変換は期待できな
い。そこで通常のプロセッサではチップ内にアドレス変
換緩衝機構(以後、TLBと呼ぶ)にアドレス変換の結
果をキャッシングし、アクセスする仮想アドレスがTL
Bにヒットする限りは、,TLBにキャッシングされた
実アドレスに従ってメモリのアクセスを行い、高速な命
令実行を実現している。In a processor employing the virtual memory system,
Since it is necessary to convert a virtual address to a real address when accessing a memory, the address conversion time from the virtual address to the real address becomes a factor that delays the instruction execution time of the processor. However, since the address translation table is arranged on the memory in the real address space, and the access of the address translation table itself is affected by the access time of the memory, high-speed address translation cannot be expected. Therefore, in a normal processor, the result of address translation is cached in the address translation buffer mechanism (hereinafter referred to as TLB) in the chip, and the virtual address to be accessed is TL.
As long as B is hit, the memory is accessed according to the real address cached in TLB, and high-speed instruction execution is realized.
【0004】仮想記憶方式の本来の目的は、上述の機構
によりに少量のメモリ空間を見掛け上多量の空間に拡張
するものであるが、副次的にメモリの保護機能を実現す
る。メモリ保護はアドレス変換テーブルの実アドレスと
ともに、対応する仮想アドレスに関するアクセス情報を
格納しておき、そのアクセス情報に反するアクセスを抑
制する機能である。たとえば、プロセッサの実行環境を
OSレベル、アプリケーションレベルに分類して、アプ
リケーションレベルで動作するプログラムからはOSレ
ベルの仮想空間をアクセスできないようにすることが考
えられる。これは、アプリケーションプログラムの暴走
や故意のアクセスによって、OSプログラムが破壊され
ることを保護する目的である。また、仮想アドレス空間
の各単位領域を実行可能、リード可能、ライト可能とい
う属性で分類し、その属性に反するアクセスを検知する
ことでプログラムの論理的なミスをプログラムに通知し
実行を停止させるという保護も考えられる。通常、仮想
記憶方式はアドレス変換機構とメモリ保護機構を組にし
て提供されている。The original purpose of the virtual memory system is to apparently expand a small amount of memory space to a large amount of space by the mechanism described above, but secondarily realizes a memory protection function. The memory protection is a function of storing the access information about the corresponding virtual address together with the real address of the address conversion table and suppressing the access against the access information. For example, the execution environment of the processor may be classified into an OS level and an application level so that a program operating at the application level cannot access the OS-level virtual space. This is for the purpose of protecting the OS program from being destroyed due to runaway of the application program or intentional access. In addition, each unit area of the virtual address space is classified by the attribute of executable, readable, and writable, and by detecting an access contrary to the attribute, a logical mistake of the program is notified to the program and the execution is stopped. Protection is also considered. Generally, the virtual memory system is provided by combining an address translation mechanism and a memory protection mechanism.
【0005】メモリ保護機構を提供するプロセッサでは
任意の仮想アドレスに対して、その領域がアクセス可能
であるか否かのアクセス権をプログラムで検査する機能
を提供している。本発明は従来のアクセス権検査方式の
課題を解決するものである。A processor which provides a memory protection mechanism provides a program with a function of checking an access right to an arbitrary virtual address to see whether or not the area is accessible. The present invention solves the problems of the conventional access right inspection method.
【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バス)である。FIG. 2 is a block diagram showing an address translation mechanism and a protection mechanism in a conventional processor. Two
00 is an address translation buffer (TLB), 201 is a TL
An associative RAM (ARAM) with multiple entries in B,
202 is a data RAM (DRAM) having the same number of entries as the associative RAM in the TLB, 203 is a hit signal of the TLB associative RAM, 204 is a selection signal of the data RAM, and 205 is a register (PEL) for holding the execution level of the processor. ), 206 is a decoder (DEC), 207 is an access right checking mechanism (PROT), 208 is a register (STAT) which holds protection information as a result of address translation,
Reference numeral 209 is a control circuit (REPCONT) for reading the address conversion table on the memory into the TLB, 210 is an address bus (ABUS) communicating with the outside of the processor, 211 is a data bus (DBUS) communicating with the outside of the processor, 2
Reference numeral 12 denotes a data bus (VA bus) for transferring a virtual address for address translation to the associative RAM of the TLB, and transfer of protection information of an address translation result, and 213 denotes access information accompanying the virtual address for address translation. A transfer data bus (VT bus) 214 is a data bus (RA bus) for transferring a real address, which is the result of address conversion, to and from the TLB data RAM.
【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にヒットするようになる。When performing address translation, a virtual address and access information (read, write, or execute) associated with the virtual address are transferred on the VA bus 212 and the VT bus 213, respectively. The virtual address transferred by the VA bus 212 is the ARAM 2 of the TLB 200.
Each entry of 01 is compared, and if any entry in the ARAM 201 is hit, the hit signal 203 becomes "1", and if there is no hit, the hit signal 203 becomes "0". When the hit signal 203 becomes “1”, the specific entry of the data RAM 202 is selected by the selection signal 204, and the real address corresponding to the virtual address is output from the DRAM 202 to the RA bus 214. When the hit signal 203 becomes “0”, REPCO
NT209 is activated, controls ABUS 210,
The contents of the address conversion table (real address and memory protection information) in the memory external to the processor are stored in DBUS 2
Read from 11 to RA bus 214. And TLB
One of the entries of the ARAM 201 of 202 and the entry of the DRAM 202 corresponding to the entry,
The virtual address transferred from the VA bus 212 and the contents of the address conversion table transferred to the RA bus 214 are stored. This mechanism ensures that the virtual address is TLB
It will hit 200 ARAM 201s.
【0008】アクセス権の検査は、TLB 200のD
RAM 202のエントリに格納されたメモリ保護情
報、プロセッサの実行レベルPEL 205、および、
VTバス213を通じて通知されるアクセス情報をDE
C 206によってデコードした結果により、PROT
207で行われ、その結果はSTAT 208に格納
される。The access right is checked by D of TLB 200.
The memory protection information stored in the entry of the RAM 202, the execution level PEL 205 of the processor, and
The access information notified through the VT bus 213 is DE
According to the result decoded by C 206, PROT
207 and the result is stored in 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には図示せず)から読み出され
る。FIG. 3 is a detailed block diagram of the mechanism for checking access rights. In FIG. 3, PEL 205, DE
C 206, PROT 207, STAT 208, V
The T bus 213 is the same as that shown in FIG. 100
Is data R corresponding to the virtual address hit by TLB
One specific entry of AM (202 in FIG. 2) is shown. 101 to 107 are contents of the address conversion table stored in the entry 100, 101 is a real address (RADR), 102 is an executable level (EEL),
103 is a readable level (REL), 104 is a writable level (WEL), 105 is an execution permission (E), 10
Reference numeral 6 holds read permission (R) and 107 holds write permission (W) information. Reference numerals 108, 109, and 110 are comparators, which are the execution level PEL 205 and the execution level EEL for each attribute of execution, read, and write.
102, REL 103, and WEL 104 are compared. If the execution level (102 to 104) of each attribute and the execution level PEL 205 of the processor have a magnitude relation allowing access, the outputs of the comparators 108 to 110 are "1". If the execution levels have a magnitude relation that does not allow access, the outputs of the comparators 108 to 110 are "0". Reference numerals 111 to 113 denote AND gates, which are comparators 108 which are the results of the access right check on the execution level.
The output of 110 and the protection information 105 to 107 of the area in the entry 100 of the DRAM of the TLB are ANDed. As a result, the outputs of the AND gates 111 to 113 become the access right permission / prohibition signals related to execution, read, and write at the execution level PEL 205, respectively. DE
The C 206 decodes the access information transferred along with the virtual address through the VT bus 213, and generates a signal 114 indicating execution access, a signal 115 indicating read access, and a signal 116 indicating write access.
Each of the signals 114 to 116 becomes "1" at the target access and becomes "0" at other accesses.
Reference numerals 117 to 119 denote NAND gates, which output signals from AND gates 111 to 113 and signals 114 to indicate each access
Take the NAND of 115. If any of the outputs of the NAND gates 117 to 119 is "1" by the mechanism described above, it indicates that there is a protection violation regarding the access for which the address conversion is performed. The outputs of NAND gates 117-119 are held in register STAT 208 and read from the VA bus (212 in FIG. 2, not shown in FIG. 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が一致しないときは、マイクロ
プログラムなど別の手段でアクセス権検査を実行する必
要がある。In the above-mentioned conventional memory protection mechanism, the access right check is realized as follows. This will be described with reference to FIGS. 2 and 3. In the access right inspection request, the virtual address to be inspected is notified by the VA bus 212 in FIG. 2, and the information about the inspection is notified by the VT bus 213. The information regarding the inspection includes an execution level for performing the inspection and access information regarding execution, read, and write. The address to check is TLB 200
If it doesn't hit ARAM 201, REPCON
T209 allows ARAM 201, DRAM 2
The contents of 02 are updated. Access right inspection is PROT
207. If PROT 207 does not cause a protection violation, the inspected virtual address is accessible. However, the comparison of execution levels is DRAM
Since it is performed between 102-104 included in the entry of 202 and PEL 205 which is the execution level of the processor, it is incorrect when the execution level for checking the access right transferred by the VT bus 213 and the PEL 205 do not match. Notify the inspection result. Therefore, when the execution level to be inspected does not match the PEL 205, it is necessary to execute the access right inspection by another means such as a microprogram.
【0011】[0011]
【発明が解決しようとする課題】上述の様に、従来のプ
ロセッサにおけるアクセス権検査は、アクセス権を検査
すべき実行レベルがプロセッサの現在の実行レベルと一
致するか否かで処理を分ける必要があった。アクセス権
を検査すべき実行レベルがプロセッサの現在の実行レベ
ルに一致しない場合の処理をマイクロプログラムで行う
とすれば次のステップが必要となる。 (1)仮想アドレスに対応する実アドレスと保護情報が
格納されているアドレス変換テーブルの実アドレスを計
算する。 (2)アドレスバスとデータバスを制御してアドレス変
換テーブルの内容をプロセッサの内部に読み込む。 (3)実行、リード、ライトの実行レベルに関するアク
セス権を検査する。 (4)実行、リード、ライトの属性に関するアクセス権
を検査する。 (1)、(2)の処理に関しては、アクセス権をチェッ
クする仮想アドレスがTLBにヒットしないときも必要
になるが、(1)の処理はハードウエアのみで実行すれ
ば、マイクロプログラムで実行する場合よりも、実行速
度が少なくとも1クロック以上は速くなる。また、
(3)、(4)の処理に関してもハードウエアで行えば
1クロックで処理できるところが、マイクロプログラム
によれば演算・検査・判定の2回繰返しで少なくとも6
クロックの時間が必要になる。したがって、アクセス権
を検査すべき実行レベルがプロセッサの現在の実行レベ
ルに一致しない場合の処理をマイクロプログラムで行う
と6クロック以上処理時間が遅くなってしまう。また、
このマイクロプログラムと同等の処理を図2や図3に示
すアドレス変換機構およびメモリ保護以外の専用ハード
ウエアを設けて実現するためには、図2や図3とまった
く同程度の規模のハードウエアが必要になり、資源の無
駄である。As described above, in the access right inspection in the conventional processor, it is necessary to divide the processing depending on whether or not the execution level at which the access right should be inspected matches the current execution level of the processor. there were. If the execution level for which the access right is to be checked does not match the current execution level of the processor, the following steps are required if the processing is performed by the microprogram. (1) The real address corresponding to the virtual address and the real address of the address conversion table in which the protection information is stored are calculated. (2) The contents of the address conversion table are read into the processor by controlling the address bus and the data bus. (3) Check the access right for the execution level of execution, read, and write. (4) Inspect access rights regarding attributes of execution, read, and write. The processing of (1) and (2) is necessary even when the virtual address for checking the access right does not hit the TLB, but the processing of (1) is executed by a microprogram if it is executed only by hardware. The execution speed is faster by at least one clock or more than in the case. Also,
As for the processing of (3) and (4), it can be processed by one clock if it is performed by hardware. However, according to the microprogram, at least 6 can be obtained by repeating calculation, inspection and determination twice.
Clock time is needed. Therefore, if the microprogram performs the processing when the execution level for which the access right is to be checked does not match the current execution level of the processor, the processing time will be delayed by 6 clocks or more. Also,
In order to realize the processing equivalent to this microprogram by providing dedicated hardware other than the address translation mechanism and memory protection shown in FIGS. 2 and 3, hardware of the same scale as in FIGS. 2 and 3 is required. It is necessary and a waste of resources.
【0012】本発明の目的は、従来のアドレス変換機構
やメモリ保護機構のハードウエアをほとんど変更するこ
となく、プロセッサの現在の実行レベルと異なる実行レ
ベルにおけるアクセス権の検査を高速に行う機構を提供
することにある。An object of the present invention is to provide a mechanism for checking access right at a high execution level different from the current execution level of a processor at a high speed, with almost no change in the hardware of the conventional address translation mechanism and memory protection mechanism. To do.
【0013】[0013]
【課題を解決するための手段】本発明のアクセス権検査
装置は、仮想アドレスから実アドレスへの変換を行うた
めのアドレス変換緩衝バッファと、プロセッサの実行レ
ベルを保持するレジスタと、セレクタと、前記アドレス
変換緩衝バッファの内容と前記プロセッサの実行レベル
を保持するレジスタの内容に従って仮想アドレスに対す
るアクセス権を検査しするアクセス権検査機構を有する
仮想記憶管理機構において、前記プロセッサの実行レベ
ルを、前記セレクタにより、任意の一時的な実行レベル
に切換えてアクセス権検査を行う機能を有することを特
徴とする。An access right inspection apparatus of the present invention comprises an address translation buffer buffer for performing translation from a virtual address to a real address, a register for holding an execution level of a processor, a selector, and In a virtual memory management mechanism having an access right inspection mechanism for inspecting an access right to a virtual address according to the contents of an address translation buffer and the contents of a register holding the execution level of the processor, the execution level of the processor is set by the selector. , It has a function of performing access right inspection by switching to any temporary execution level.
【0014】[0014]
【実施例】次に、図面を用いて、本発明の構成ならびに
動作について詳細に説明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, the construction and operation of the present invention will be described in detail with reference to the drawings.
【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
に示す従来例の構成要素と同一であるため説明は省略す
る。FIG. 1 is a block diagram showing a configuration example of an access right inspection device using the present invention. Compared with the conventional access right inspection device shown in FIG. 3, the information about the access right inspection provided by the VT bus 213 is DE
Execution level 120 for inspecting the access right decoded and fetched by C 206, PEL 205 which is the current execution level of the processor, selector 121 for selecting one of the execution levels for inspecting the access right, and selection control for selector 121 Signal 122 is added. Data RAM in TLB, which is a component of FIG.
Contents 100-107, comparators 108-110, AND
Gates 111 to 113, signals 114 to 115 indicating access attributes of execution, read, and write, NAND gate 1
17-119, PEL 205, DEC 206, PR
OT 207, STAT 208, and VT 213 are shown in FIG.
Since it is the same as the constituent element of the conventional example shown in FIG.
【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を選択するように制御されるものと
する。As described above, the VT bus 213 notifies the address translation request or the access right inspection request for the address translation mechanism and the memory protection mechanism shown in FIGS. The address conversion request and the access right inspection request include information indicating which type of access is to be executed, read or write.
6 is decoded into signals of access attributes 114 to 116. If the request notified by the VT bus 213 is an access right check request, information on which execution level the access right should be checked is further included. The DEC 206 decodes the information regarding the access right check request and extracts the execution level into the signal 120. At this time, the selection control signal 122 for the selector 121 is determined by the DEC 206 to select the PEL 205 if the request is an address translation and the decoded execution level 120 if the request is an access right check. In the access check mechanism having such a configuration, the access right check temporarily changes the execution level of the current processor to the execution execution level for which the access right should be checked, performs address conversion, and violates the memory protection. Equivalent to checking for the existence. If there is no protection violation, that is, if all the outputs of the NAND gates 117 to 119 are "0", the access is possible, and if any one of the outputs of the NAND gates 117 to 119 is "1", the access is not possible. Become. After the access right is determined, the selection control signal 12 for the selector 121
2 shall be controlled to select PEL 205.
【0017】[0017]
【発明の効果】以上説明したように、本発明を用いるこ
とで、プロセッサの現在の実行レベルと異なる実行レベ
ルのアクセス権の検査を、従来のアドレス変換およびメ
モリ保護に関するハードウエアをほとんど変更すること
なく高速に実現することができる。本発明を使用しない
場合は少なくとも6クロック以上の性能低下、あるい
は、メモリ保護に関するハードウエア資源の倍増する。As described above, the use of the present invention makes it possible to check the access right of the execution level different from the current execution level of the processor, and substantially change the conventional hardware for address translation and memory protection. It can be realized at high speed. If the present invention is not used, the performance will be reduced by at least 6 clocks or more, or the hardware resources for memory protection will be doubled.
【図1】本発明の実施例の構成を示すブロック図であ
る。FIG. 1 is a block diagram showing a configuration of an exemplary embodiment of the present invention.
【図2】本発明の従来例および実施例が想定するアドレ
ス変換機構およびメモリ保護機構の構成を示すブロック
図である。FIG. 2 is a block diagram showing a configuration of an address translation mechanism and a memory protection mechanism assumed in a conventional example and an embodiment of the present invention.
【図3】本発明の従来例の構成を示すブロック図であ
る。FIG. 3 is a block diagram showing a configuration of a conventional example of the present invention.
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バス)100 1 entry of data RAM in TLB 101 real address information (RADR) 102 executable level information (EEL) 103 readable level information (REL) 104 writable level information (WEL) 105 execution permission information (E) 106 read permission Information (R) 107 Write permission information (W) 108, 109, 110 Comparators 111, 112, 113 AND gate 114 Signal indicating execution access attribute 115 Signal indicating read access attribute 116 Signal indicating write access attribute 117, 118, 119 NAND gate 120 Execution level for performing access right check 121 Selector 122 Selection control signal 200 Address translation buffer (TLB) 201 Associative RAM (ARAM) 202 Data RAM (DRAM) 203 TLB hit signal 04 Data RAM Selection Signal 205 Processor Execution Level (PEL) 206 Decoder (DEC) 207 Access Right Check Mechanism (PROT) 208 Register (STAT) 209 Holding Protection Information 209 Control Circuit for Reading Address Translation Table on Memory to TLB (REPCONT) 210 Address bus (ABUS) 211 Data bus (DBUS) 212 Bus for transferring virtual address information (VA bus) 213 Bus for transferring additional information of VA bus (VT bus) 214 Bus for transferring real address information ( RA bus)
Claims (1)
行うためのアドレス変換緩衝バッファと、プロセッサの
実行レベルを保持するレジスタと、セレクタとを有し、
通常は前記アドレス変換緩衝バッファの内容と前記プロ
セッサの実行レベルを保持するレジスタの内容に従って
仮想アドレスに対するアクセス権を検査し、前記プロセ
ッサの実行レベルを、前記セレクタにより、任意の一時
的な実行レベルに切換えてアクセス権検査を行うことを
特徴とするアクセス権検査装置。1. An address translation buffer for performing translation from a virtual address to a real address, a register for holding an execution level of a processor, and a selector,
Normally, the access right to the virtual address is checked according to the contents of the address translation buffer and the contents of the register holding the execution level of the processor, and the execution level of the processor is set to an arbitrary temporary execution level by the selector. An access right inspection device characterized by performing access right inspection by switching.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3225558A JP2927072B2 (en) | 1991-09-05 | 1991-09-05 | Access right inspection device |
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 (en) | 1991-09-05 | 1991-09-05 | Access right inspection device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0561775A true JPH0561775A (en) | 1993-03-12 |
JP2927072B2 JP2927072B2 (en) | 1999-07-28 |
Family
ID=16831181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3225558A Expired - Lifetime JP2927072B2 (en) | 1991-09-05 | 1991-09-05 | Access right inspection device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2927072B2 (en) |
-
1991
- 1991-09-05 JP JP3225558A patent/JP2927072B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2927072B2 (en) | 1999-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6266755B1 (en) | Translation lookaside buffer with virtual address conflict prevention | |
US5752275A (en) | Translation look-aside buffer including a single page size translation unit | |
US4626988A (en) | Instruction fetch look-aside buffer with loop mode control | |
US5909696A (en) | Method and apparatus for caching system management mode information with other information | |
US5606683A (en) | Structure and method for virtual-to-physical address translation in a translation lookaside buffer | |
US5852738A (en) | Method and apparatus for dynamically controlling address space allocation | |
US11474956B2 (en) | Memory protection unit using memory protection table stored in memory system | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
JPH11161547A (en) | Storage device for data processor and method for accessing storage place | |
US5956752A (en) | Method and apparatus for accessing a cache using index prediction | |
EP2946297B1 (en) | Overlap checking for a translation lookaside buffer (tlb) | |
GB2367648A (en) | Avoidance of repeated trap handling | |
US5293622A (en) | Computer system with input/output cache | |
US7100006B2 (en) | Method and mechanism for generating a live snapshot in a computing system | |
US5895489A (en) | Memory management system including an inclusion bit for maintaining cache coherency | |
US6519684B1 (en) | Low overhead method for selecting and updating an entry in a cache memory | |
EP1278123B9 (en) | High integrity cache directory | |
US5530839A (en) | Apparatus for checking access rights | |
US5341485A (en) | Multiple virtual address translation per computer cycle | |
US5652860A (en) | Memory control device | |
US4424564A (en) | Data processing system providing dual storage of reference bits | |
JP2927072B2 (en) | Access right inspection device | |
US10990538B2 (en) | Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device | |
US5960456A (en) | Method and apparatus for providing a readable and writable cache tag memory | |
CN112470134A (en) | Handling protection tag loss |
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 |