JPH024016B2 - - Google Patents
Info
- Publication number
- JPH024016B2 JPH024016B2 JP59135906A JP13590684A JPH024016B2 JP H024016 B2 JPH024016 B2 JP H024016B2 JP 59135906 A JP59135906 A JP 59135906A JP 13590684 A JP13590684 A JP 13590684A JP H024016 B2 JPH024016 B2 JP H024016B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- page
- tlb
- bit
- vni
- 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
Links
- 239000003607 modifier Substances 0.000 claims description 23
- 238000001514 detection method Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 15
- 239000000872 buffer Substances 0.000 claims description 5
- 230000004044 response Effects 0.000 claims 3
- 238000012986 modification Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】
[発明の技術分野]
この発明は、TLBを備えた仮想記憶制御方式
の計算機におけるTLB制御方式に関する。DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention] The present invention relates to a TLB control method in a virtual memory control computer equipped with a TLB.
[発明の技術的背景]
仮想記憶制御方式の計算機では、一般に、仮想
アドレスから実アドレスへのアドレス変換を高速
に行なうために、TLB(Translation Lookaside
Buffer;アドレス変換バツフア)と呼ばれるハ
ードウエア機構が設けられている。このTLBの
各エントリには、実ページ番号を含むアドレス変
換情報や、対応エントリが正当(有効)か否(無
効)かを示すバリツド(Valid)ビツトのフイー
ルドを有している。[Technical Background of the Invention] Computers using virtual memory control generally use TLB (Translation Lookaside) to perform address translation from virtual addresses to real addresses at high speed.
A hardware mechanism called a buffer (address translation buffer) is provided. Each entry in this TLB has address translation information including the actual page number and a valid bit field indicating whether the corresponding entry is valid (valid) or not (invalid).
TLBは、メモリアクセスに際し、仮想アドレ
スの所定フイールドを用いて索引される。そし
て、仮想アドレスの所定フイールドとTLBの対
応エントリの内容とにより、メモリアクセスの正
当性がチエツクされる。このチエツクにより、正
当性が保証された場合、対応エントリ内の実ペー
ジ番号と仮想アドレス(のオフセツト)とにより
得られる実アドレスを用いたメモリアクセスが行
なわれる。これに対し、上記正当性が保証されな
い場合、TLBの対応エントリの入替えが行なわ
れ、しかる後メモリアクセスが行なわれる。 The TLB is indexed using a predetermined field of the virtual address upon memory access. Then, the validity of the memory access is checked based on the predetermined field of the virtual address and the contents of the corresponding entry in the TLB. If the validity is guaranteed by this check, memory access is performed using the real address obtained from the real page number in the corresponding entry and (the offset of) the virtual address. On the other hand, if the validity is not guaranteed, the corresponding entry in the TLB is replaced, and then memory access is performed.
[背景技術の問題点]
しかし、上記したTLBを用いた従来の仮想記
憶制御方式の計算機では、例えば、ハーフワード
境界(Halfword Boundary)のフルワードアク
セス(Fullword Access)であつて、且つページ
境界(Page Boundary)をまたぐメモリアクセ
スのときなどは、処理速度が低下する欠点があつ
た。これは、1つのメモリアクセスが2ページに
またがる場合には、両ページに対応する各TLB
エントリをそれぞれチエツクし、同メモリアクセ
スの正当性を保証してからメモリアクセスを行な
う必要があつたためである。[Problems in the Background Art] However, in computers using the conventional virtual memory control method using the TLB described above, for example, fullword access on a halfword boundary and page boundary ( The disadvantage was that processing speed slowed down when accessing memory across page boundaries. This means that if one memory access spans two pages, each TLB corresponding to both pages
This is because it was necessary to check each entry and ensure the validity of the same memory access before performing memory access.
[発明の目的]
この発明は上記事情に鑑みてなされたものでそ
の目的は、nセツト(nは2以上の整数)の
TLBを備えた仮想記憶制御方式の計算機におい
て、nセツトのTLBの各エントリ(TLBエント
リ)に、自エントリの有効/無効を示すビツト
V′並びにアドレス変換情報の他に、自エントリ
で示されるページの次のページに対応する有効な
TLBエントリがTLBのいずれのセツトに存在す
るかを各セツト毎に示すビツトVNi(i=1,…
n)が設定される構成とすることにより、ページ
境界をまたぐメモリアクセスの場合でも、先頭ペ
ージに対応するTLBエントリのチエツクだけで
この種のメモリアクセスの正当性が保証でき、し
かもTLBエントリの入替え(リプレース)が行
われた場合には、該当TLBエントリとその直前
の各セツト毎のTLBエントリとの個々のつなが
り具合をチエツクすることなく、直前のTLBエ
ントリのビツトVNiを正しく変更することがで
きるTLB制御方式を提供することにある。[Purpose of the invention] This invention was made in view of the above circumstances, and its purpose is to obtain a set of n sets (n is an integer of 2 or more)
In a computer with a virtual memory control system equipped with a TLB, each entry (TLB entry) of n sets of TLBs has a bit that indicates whether the entry is valid or invalid.
In addition to V′ and address translation information, the valid information corresponding to the page next to the page indicated by the current entry
Bits VNi (i=1,...
By setting n), even in the case of memory access that crosses page boundaries, the validity of this type of memory access can be guaranteed simply by checking the TLB entry corresponding to the first page, and moreover, it is possible to ensure the validity of this type of memory access by simply checking the TLB entry corresponding to the first page. When (replacement) is performed, the bit VNi of the previous TLB entry can be changed correctly without checking the individual connections between the relevant TLB entry and the TLB entries of each set immediately before it. The objective is to provide a TLB control method.
この発明の他の目的は、nセツトのTLBの各
エントリに、上記の各情報の他に、自エントリで
示されるページに対応するページテーブルエント
リのモデイフアイビツト(対応するページが書換
えられたか否かを示すビツト)の状態を示すビツ
トM′、および上記ビツトVNiと対を成し、対応
VNiが有効指定状態にある場合に自エントリで
示されるページの次のページに対応するページテ
ーブルエントリのモデイフアイビツトの状態を示
すビツトMNiが更に設定される構成とすること
により、メモリライトアクセスの場合でも、
TLBにヒツトし且つ該当TLBエントリのビツト
M′が真であれば、ページテーブルの対応ページ
テーブルエントリのモデイフアイビツトのセツト
動作を不要とすることができ、また、ページ境界
をまたぐメモリライトアクセスの場合でも、先頭
ページに対応するTLBエントリのチエツクだけ
で、次のページに対応するページテーブルエント
リのモデイフアイビツトのセツト動作を不要とす
ることができるか否かが判別でき、更に、TLB
エントリの入替えが行われた場合には、該当
TLBエントリとその直前の各セツト毎のTLBエ
ントリとの個々のつながり具合をチエツクするこ
となく、直前のTLBエントリのビツトMNiを正
しく変更することができるTLB制御方式を提供
することにある。 Another object of the present invention is to include, in each entry of the n sets of TLBs, in addition to the above information, a modification bit of the page table entry corresponding to the page indicated by the entry (whether the corresponding page has been rewritten or not). It is paired with bit M′ indicating the state of
By configuring that when VNi is in the valid specified state, a bit MNi indicating the state of the modify bit of the page table entry corresponding to the page following the page indicated by the self entry is further set, memory write access is possible. Even in the case of
TLB hit and the bit of the corresponding TLB entry
If M' is true, it is possible to eliminate the need to set the modify bit of the corresponding page table entry in the page table, and even in the case of memory write access that crosses page boundaries, the TLB corresponding to the first page can be set. By simply checking the entry, it is possible to determine whether or not setting the modifier bit of the page table entry corresponding to the next page is unnecessary.
If an entry is replaced, the corresponding
To provide a TLB control method that can correctly change the bit MNi of the immediately preceding TLB entry without checking the individual connection between the TLB entry and the TLB entry of each set immediately before it.
この発明の更に他の目的は、ページテーブルの
モデイフアイビツトの状態がTLBエントリを参
照するだけで把握できる構成としながら、TLB
エントリの入替え回数が減少できるTLB制御方
式を提供することにある。 Still another object of the present invention is to provide a configuration in which the state of modification bits in a page table can be grasped simply by referring to the TLB entry.
The object of the present invention is to provide a TLB control method that can reduce the number of entry replacements.
[発明の概要]
この発明では、仮想記憶制御方式の計算機にお
いて、各TLBエントリに、同エントリの有効/
無効を示すビツトV′、同エントリで示されるペ
ージの次のページに対応するTLBエントリの有
効/無効を示すビツトVNi(i=1,…n、nは
1以上の整数)、およびアドレス変換情報のフイ
ールドを含むTLBが設けられる。第1検出手段
は、メモリアクセスに際し、対象仮想アドレス、
同対象仮想アドレスに対応する上記TLBエント
リの上記ビツトV′,VNi、およびアドレス変換
情報の所定フイールドにより、同エントリに正し
いアドレス変換情報が格納されているか否か、お
よび同エントリで示されるページの次のページに
対応する上記TLBエントリに正しいアドレス変
換情報が格納されているか否かを検出する。ま
た、第2検出手段は、1つのメモリアクセスが2
ページにまたがるか否かを検出する。入替え手段
は、上記第1および第2検出手段の検出結果に応
じて上記TLBの対応エントリの入替えを行なう。
この入替え手段によるTLBエントリの入替え時
には、入替え対象TLBエントリの上記ビツト
V′が無条件でセツトされ、ビツトVNiが無条件
でリセツトされる。また、同入替え対象TLBエ
ントリで示されるページの直前ページに対応する
上記TLBエントリのビツトVNiが変更される。[Summary of the Invention] In this invention, in a computer using a virtual memory control method, each TLB entry has information indicating whether the entry is valid or not.
Bit V' indicating invalidity, bit VNi indicating validity/invalidity of the TLB entry corresponding to the page following the page indicated by the same entry (i = 1,...n, n is an integer of 1 or more), and address translation information A TLB containing fields is provided. The first detection means includes a target virtual address, a target virtual address,
The bits V' and VNi of the TLB entry corresponding to the same target virtual address and the specified field of address translation information determine whether or not the correct address translation information is stored in the entry, and whether or not the page indicated by the entry is stored. It is detected whether correct address translation information is stored in the TLB entry corresponding to the next page. Further, the second detection means is configured such that one memory access is performed twice.
Detect whether it spans pages. The replacement means replaces the corresponding entries in the TLB according to the detection results of the first and second detection means.
When replacing TLB entries using this replacement method, the above bits of the TLB entry to be replaced are
V' is unconditionally set and bit VNi is unconditionally reset. Furthermore, the bit VNi of the TLB entry corresponding to the page immediately before the page indicated by the TLB entry to be replaced is changed.
[発明の実施例]
以下、この発明の一実施例を図面を参照して説
明する。図面は、この発明を適用する仮想記憶制
御方式の計算機の要部の構成を示すもので、10
は主メモリである。主メモリ10には、仮想アド
レス空間のセグメント情報を示すセグメントテー
ブル11および各セグメントの中のページ情報を
示すページテーブル12が置かれる。セグメント
テーブル11の各エントリは、同エントリの有
効/無効を示すバリツドドビツトV、そのセグメ
ントの主記憶保護情報P.LEVEL、および対応す
るページテーブル12の先頭アドレスであるペー
ジテーブル起点アドレスPTOのフイールドを有
する。また、ページテーブル12の各エントリ
は、同エントリの有効/無効を示すバリツドビツ
トV、対応するページが書換えられたことを示す
(即ち、仮想空間内の該当ページの内容を、主メ
モリ10内の該当ページの内容に一致させる必要
があることを示す)モデイフアイビツトM、およ
び仮想アドレスを実アドレスに変換するための実
ページ番号(アドレス)RPAのフイールドを有
する。[Embodiment of the Invention] An embodiment of the present invention will be described below with reference to the drawings. The drawing shows the configuration of a main part of a computer using a virtual memory control method to which the present invention is applied.
is the main memory. Main memory 10 includes a segment table 11 indicating segment information of a virtual address space and a page table 12 indicating page information in each segment. Each entry in the segment table 11 has a field for a valid bit V indicating whether the entry is valid or invalid, main memory protection information P.LEVEL for that segment, and a page table starting address PTO which is the starting address of the corresponding page table 12. . Each entry in the page table 12 also has a valid bit V indicating whether the entry is valid or invalid, and a valid bit V indicating that the corresponding page has been rewritten (that is, the contents of the corresponding page in the virtual space are changed to the corresponding page in the main memory 10). It has a field for a modifier bit M (indicating that it needs to match the contents of the page) and a real page number (address) RPA for converting a virtual address to a real address.
20はデータバス、30は演算制御装置であ
る。演算制御装置30は、データバス20により
主メモリ10と接続される。 20 is a data bus, and 30 is an arithmetic control unit. Arithmetic control unit 30 is connected to main memory 10 via data bus 20 .
演算制御装置30において、31はPSW(プロ
グラムステータスワード)である。PSW31の
所定フイールドには、プログラムの走行モード
(保護の優先レベル)を示すモード情報MODEが
格納される。32は仮想アドレスを保持するメモ
リアドレスレジスタ(MAR)である。仮想アド
レスは、論理的に、セグメント番号SN、ページ
番号PN、およびページ内オフセツトOffsetに分
割される。33はセグメントテーブル11のエン
トリ(セグメントテーブルエントリ)に格納され
ている主記憶保護情報P.LEVELを一時保持する
保護レジスタ、34はページテーブル12のエン
トリ(ページテーブルエントリ)に格納されてい
る実ページ番号RPAを一時保持するRPAレジス
タある。 In the arithmetic and control unit 30, 31 is a PSW (program status word). Mode information MODE indicating the program running mode (protection priority level) is stored in a predetermined field of the PSW 31. 32 is a memory address register (MAR) that holds virtual addresses. A virtual address is logically divided into a segment number SN, a page number PN, and an intra-page offset. 33 is a protection register that temporarily holds the main memory protection information P.LEVEL stored in the entry (segment table entry) of the segment table 11, and 34 is the real page stored in the entry (page table entry) of the page table 12. There is an RPA register that temporarily holds the number RPA.
35は仮想アドレスから実アドレスへのアドレ
ス変換を高速に行なうためのTLBである。TLB
35は、TLB35A,35Bの2セツトからな
り、MAR32に保持された仮想アドレスのセグ
メント番号SNの一部、例えば下位ビツトと、同
じくページ番号PNの一部、例えば下位ビツトと
の連結情報(SNの一部が下位となる)によつて
索引される。TLB35(内のTLB35A,35
B)の各エントリ(TLBエントリ)は、コント
ロールセクシヨンCS、SN′,PN′,RPAからな
るアドレス変換情報、およびP.LEVELのフイー
ルドを有する。コントロールセクシヨンCSは、
ビツトV′、ビツトM′、ビツトVNA、ビツト
VNB、ビツトMNA、およびビツトMNBからな
る。ビツトV′は、対応するTLBエントリの有
効/無効を示し、ビツトVNA,VNBは、同エン
トリで示されるページの次のページに対応する
TLBエントリ(TLB35A,35Bのエント
リ)の有効/無効を示す。また、ビツトM′は、
対応するページのページテーブル12内エントリ
のモデイフアイビツトMの状態を示し、ビツト
MNA,MNBは、対応するページの次のページ
のページテーブル12内エントリのモデイフアイ
ビツトMの状態を示す。SN′は、セグメント番号
SNの残りビツト(上位ビツト)に対応し、
PN′は、ページ番号PNの残りビツトに対応する。
また、例えばTLB35Bの各エントリは、参照
ビツトRを有している。ビツトRは、TLB35
A,35Bの該当エントリのいずれが(即ち、
TLB35のA側該当エントリ、B側該当エント
リのどちらが)最も昔に参照されたかを示す。 35 is a TLB for performing address translation from a virtual address to a real address at high speed. T.L.B.
35 consists of two sets of TLBs 35A and 35B, and contains concatenation information (SN's some of which are subordinate). TLB35 (inner TLB35A, 35
Each entry (TLB entry) in B) has address translation information consisting of control sections CS, SN', PN', and RPA, and a field of P.LEVEL. The control section CS is
bit V', bit M', bit VNA, bit
Consists of VNB, BIT MNA, and BIT MNB. Bit V' indicates whether the corresponding TLB entry is valid or invalid, and bits VNA and VNB correspond to the page following the page indicated by the same entry.
Indicates whether the TLB entry (TLB 35A, 35B entry) is valid or invalid. Also, bit M′ is
Indicates the state of the modifier bit M in the entry in the page table 12 of the corresponding page.
MNA and MNB indicate the state of the modifier bit M in the entry in the page table 12 of the page next to the corresponding page. SN′ is the segment number
Corresponding to the remaining bits (upper bits) of SN,
PN' corresponds to the remaining bits of page number PN.
Further, each entry in the TLB 35B has a reference bit R, for example. Bit R is TLB35
Which of the corresponding entries A and 35B (i.e.,
This indicates which of the relevant entry on the A side or the relevant entry on the B side of the TLB 35 was referenced the earliest.
36はMAR32に保持された仮想アドレスの
ページ内オフセツトOffsetにより、対象メモリア
クセスがページ境界にまたがるか否かをチエツク
し、その旨を示す信号PAGEBDを出力する境界
チエツク回路、37はTLB35に対する制御等
を行なうコントロール回路、38は実アドレスを
保持するレジスタである。コントロール回路37
には、TLB35に対する索引結果(具体的には、
コントロールセクシヨンCS、SN′、PN′、および
P.LEVEL)、MAR32に保持された仮想アドレ
スのSN,PNの上位ビツト、境界チエツク回路
36からの信号PAGEBD、図示せぬマイクロプ
ログラム制御部からの各種メモリ制御信号が導か
れる。これらメモリ制御信号は、メモリアクセス
要求を示す信号MREQ、メモリリードを示す信
号RD、メモリライトを示す信号WR、命令フエ
ツチであることを示す信号IF、およびフルワー
ドアクセスであることを示す信号FW等である。 36 is a boundary check circuit that checks whether the target memory access straddles a page boundary based on the intra-page offset of the virtual address held in the MAR 32, and outputs a signal PAGEBD indicating this, and 37 is a control circuit for the TLB 35, etc. A control circuit 38 is a register that holds real addresses. Control circuit 37
The index results for TLB35 (specifically,
Control sections CS, SN′, PN′, and
P.LEVEL), the upper bits of the virtual address SN and PN held in the MAR 32, the signal PAGEBD from the boundary check circuit 36, and various memory control signals from a microprogram control section (not shown) are led. These memory control signals include a signal MREQ indicating a memory access request, a signal RD indicating a memory read, a signal WR indicating a memory write, a signal IF indicating an instruction fetch, and a signal FW indicating a full word access. It is.
次に、この発明の一実施例の動作を説明する。
今、主メモリ10に対するメモリアクセスのため
に、MAR32に仮想アドレスがロードされたも
のとする。MAR32にロードされた仮想アドレ
ス中のページ内オフセツトOffsetは、境界チエツ
ク回路36に導かれる。これにより、境界チエツ
ク回路36は、上記した主メモリ10に対するメ
モリアクセスがフルワードアクセスであるものと
した場合に、ページ境界にまたがるアクセスとな
るか否かをチエツクする。この例では、1ページ
は2KBであり、したがつてOffsetは11ビツトで構
成される。この場合、ハーフワード境界のフルワ
ードアクセスを条件とすると、境界チエツク回路
36はOffsetが16進表現で“7FE”であるか否か
をチエツクすればよい。境界チエツク回路36
は、MAR32からのOffsetに基づくチエツク結
果を信号PAGEBDとしてコントロール回路37
に出力する。 Next, the operation of one embodiment of the present invention will be explained.
Assume now that a virtual address has been loaded into the MAR 32 for memory access to the main memory 10. The intra-page offset in the virtual address loaded into MAR 32 is directed to boundary check circuit 36. As a result, the boundary check circuit 36 checks whether or not the access straddles a page boundary, assuming that the memory access to the main memory 10 described above is a full word access. In this example, one page is 2KB, so Offset consists of 11 bits. In this case, assuming fullword access on a halfword boundary, the boundary check circuit 36 only needs to check whether Offset is "7FE" in hexadecimal notation. Boundary check circuit 36
The check result based on the Offset from MAR32 is sent to the control circuit 37 as a signal PAGEBD.
Output to.
一方、MAR32にロードされた仮想アドレス
中のセグメント番号SNの下位ビツトとページ番
号PNの下位ビツトとの連結情報は、TLB35に
導かれる。しかして、上記連結情報により、
TLB35が索引される。この結果、TLB35
(TLB35A,35B)から、該当エントリの格
納情報が読出される。TLB35からの読出し情
報のうち、V′,M′,VNA,VNB,MNA,
MNB,SN′,PN′,P.LEVEL,R(Rについて
はTLB35Bからのみ)はコントロール回路3
7に導かれる。また、コントロール回路37に
は、MAR32にロードされた仮想アドレスの
SNの上位ビツト(SN′)、PNの上位ビツト
(PN′)、およびPSW31からのMODEも導かれ
る。コントロール回路37は、これらの入力情報
により、信号MISS,PRT,MOD,NEXT:
MISS,NEXT:MODを生成する。信号MISS
は、TLB35の該当エントリに(仮想アドレス
から実アドレスへのアドレス変換のための)正し
いアドレス変換情報が無いこと、即ちミスヒツト
(TLBミスヒツト)を示す。信号PRTは、PSW
31で示された動作モードがそのセグメントへの
メモリアクセス権を持つていないこと、即ち主記
憶保護違反であることを示す。信号MODは、ペ
ージテーブル12の該当エントリのモデイフアイ
ビツトMがセツトされていないこと(これをモデ
イフアイと呼ぶ)を示す。信号NEXT:MISS
は、今アクセスしようとしているページの次のペ
ージに対応するTLBエントリが正しく作られて
いないこと、即ち次ページミスヒツトを示す。そ
して、信号NEXT:MODは、今アクセスしよう
としているページの次のページに対応するページ
テーブルエントリのモデイフアイビツトMがセツ
トされていないこと、即ち次ページモデイフアイ
を示す。これらの信号の生成論理は以下の通りで
ある。 On the other hand, the concatenation information between the lower bits of the segment number SN and the lower bits of the page number PN in the virtual address loaded into the MAR 32 is led to the TLB 35. However, based on the above connection information,
TLB35 is indexed. As a result, TLB35
The storage information of the corresponding entry is read from (TLB 35A, 35B). Among the read information from TLB35, V′, M′, VNA, VNB, MNA,
MNB, SN', PN', P.LEVEL, R (R only from TLB35B) are control circuit 3
Guided by 7. The control circuit 37 also contains the virtual address loaded into the MAR32.
The upper bit of SN (SN'), the upper bit of PN (PN'), and MODE from PSW 31 are also derived. The control circuit 37 outputs the signals MISS, PRT, MOD, NEXT based on these input information.
MISS, NEXT: Generate MOD. Signal MISS
indicates that the corresponding entry in the TLB 35 does not have correct address translation information (for address translation from a virtual address to a real address), that is, a miss (TLB miss). Signal PRT PSW
This indicates that the operating mode indicated by 31 does not have memory access rights to that segment, that is, this is a main memory protection violation. The signal MOD indicates that the modifier bit M of the corresponding entry in the page table 12 is not set (this is called a modifier). Signal NEXT: MISS
indicates that the TLB entry corresponding to the page next to the page you are currently trying to access has not been created correctly, that is, there is a next page miss. The signal NEXT:MOD indicates that the modifier bit M of the page table entry corresponding to the page next to the page that is currently being accessed is not set, that is, the next page modifier. The generation logic of these signals is as follows.
MISS
MISS=
HIT=HITA+HITB
HITi
=Vi・(SN′=TLBi(SN′))
・(PN′=TLBi(PN′))
なお、SN′,PN′はMAR32からのSN,
PNの上位ビツトを示し、Vi,TLBi(SN′),
TLBi(PN′)は、TLB35i(i=A,B)の
該当エントリのV′,SN′,PN′を示す。したが
つて、HITi(i=A,B)は、TLB35iの
該当エントリに正しいアドレス変換情報が有る
ことを示す。このことから、HITが、TLB3
5の該当エントリのA側またはB側のいずれか
一方に正しいアドレス変換情報が有ること、即
ちビツト(TLBビツト)を示すことが理解さ
れよう。 MISS MISS= HIT=HIT A +HIT B HITi =Vi・(SN′=TLBi(SN′)) ・(PN′=TLBi(PN′)) Note that SN′ and PN′ are SN from MAR32,
Indicates the upper bit of PN, Vi, TLBi(SN′),
TLBi(PN') indicates V', SN', and PN' of the corresponding entry of TLB 35i (i=A, B). Therefore, HITi (i=A, B) indicates that the corresponding entry in the TLB 35i has correct address translation information. From this, HIT is TLB3
It will be understood that correct address translation information exists on either the A side or the B side of the corresponding entry in No. 5, that is, it indicates a bit (TLB bit).
PRT
PRT
=HITA・(MODE≧P.LEVELA)
+HITB・(MODE≧P.LEVELB)
なお、P.LEVELi(i=A,B)は、TLB3
5iの該当エントリのP.LEVELを示す。 PRT PRT = HIT A・(MODE≧P.LEVEL A ) +HIT B・(MODE≧P.LEVEL B ) Note that P.LEVLi (i=A, B) is TLB3
Indicates the P.LEVEL of the corresponding entry in 5i.
MOD
MOD=HITA・A+HITB・B
なお、Mi(i=A,B)は、TLB35iの
該当エントリのM′を示す。 MOD MOD=HIT A · A +HIT B · B Note that Mi (i=A, B) indicates M′ of the corresponding entry in the TLB 35i.
NEXT:MISS
NEXT:MISS
=HITA・(A+A)
+HITB・(B+B)
なお、VNAi,VNBi(i=A,B)は、
TLB35iの該当エントリのVNA,VNBを
示す。 NEXT:MISS NEXT:MISS = HIT A・( A + A ) +HIT B・( B + B ) In addition, VNAi, VNBi (i = A, B) are
The VNA and VNB of the corresponding entry in TLB35i are shown.
NEXT:MOD
NEXT:MOD
=HITA・(A+A)
+HITB・(B+B)
なお、MNAi,MNBi(i=A,B)は、
TLB35iの該当エントリのMNA,MNBを
示す。 NEXT:MOD NEXT:MOD = HIT A・( A + A ) +HIT B・( B + B ) In addition, MNAi, MNBi (i = A, B) are
The MNA and MNB of the corresponding entry in TLB35i are shown.
上記した〜に示す信号は、コントロール回
路37から図示せぬマイクロプログラム制御部に
供給され、メモリアクセスを行なう際に、(マイ
クロプログラムにより)予めメモリアクセスの正
当性をチエツクするのに用いられる。 The signals shown in (-) above are supplied from the control circuit 37 to a microprogram control section (not shown), and are used to check the validity of the memory access (by the microprogram) before accessing the memory.
また、この実施例では、コントロール回路37
においてもメモリアクセスの正当性のチエツクが
行なわれる構成となつている。これは、例えばロ
ード(Load)命令のように、メモリアクセスが
1回しか行なわれない命令などの場合、メモリア
クセスの正当性をマイクロプロセツサでチエツク
していたのでは処理速度が著しく低下してしまう
ことを考慮したためである。即ち、コントロール
回路37は、上記した〜の信号、更にはマイ
クロプログラム制御部からの各種メモリ制御信号
により、メモリアクセスの正当性をハード的にチ
エツクする。コントロール回路37は、メモリア
クセスの正当性が保証できない場合、命令実行前
にフアームウエアレベルでの割込みを発生する。
この場合には、ミスヒツト割込み信号MISS:
INT、主記憶保護違反割込み信号PRT:INT、
モデイフアイ割込み信号MOD:INT、次ページ
ミスヒツト割込み信号NEXT:MISS:INT、更
には次ページモデイフアイ割込み信号NEXT:
MOD:INTが、以下に示す論理に従つて生成さ
れる。 Further, in this embodiment, the control circuit 37
The configuration is such that the validity of memory access is also checked. This is because, in the case of an instruction that accesses memory only once, such as a load instruction, if the microprocessor were to check the validity of the memory access, the processing speed would drop significantly. This is because it is possible to store it away. That is, the control circuit 37 checks the validity of the memory access in a hardware manner using the above-mentioned signals 1 to 3 and various memory control signals from the microprogram control section. If the correctness of memory access cannot be guaranteed, the control circuit 37 generates an interrupt at the firmware level before executing the instruction.
In this case, the miss interrupt signal MISS:
INT, main memory protection violation interrupt signal PRT: INT,
Modify interrupt signal MOD: INT, next page miss interrupt signal NEXT: MISS: INT, and next page modify interrupt signal NEXT:
MOD:INT is generated according to the logic shown below.
MISS:INT
MISS:INT
=MISS・MREQ
PRT:INT
PRT:INT
=・PRT・MREQ
MOD:INT
MOD:INT
=・・MOD・MREQ・WR
NEXT:MISS:INT
MEXT:MISS:INT
=・・(・)
・NEXT:MISS・NEXT:MREQ
NEXT:MREQ
=MREQ・PAGEBD・FW
NEXT:MOD:INT
NEXT:MOD:INT
=・・
・:・NEXT:MOD
・NEXT:MREQ・WR
以上の〜の割込み(信号)は、上記した論
理から明らかなように、割込み発生の優先順位を
有している。上記の例では、(ミスビツト割込
み)の優先度が最も高く、以下、の順とな
り、(次ページモデイフアイ)の優先度が最も
低くなつている。 MISS:INT MISS:INT =MISS・MREQ PRT:INT PRT:INT =・PRT・MREQ MOD:INT MOD:INT =・・MOD・MREQ・WR NEXT:MISS:INT MEXT:MISS:INT =・・(・) ・NEXT:MISS・NEXT:MREQ NEXT:MREQ =MREQ・PAGEBD・FW NEXT:MOD:INT NEXT:MOD:INT =... ・:・NEXT:MOD ・NEXT:MREQ・WR Interrupts of ) has a priority order of interrupt generation, as is clear from the above logic. In the above example, (miss bit interrupt) has the highest priority, and so on, and (next page modify) has the lowest priority.
上記した論理により、ミスヒツトが検出された
場合、(マイクロプログラム制御部の制御の下で)
コントロール回路37により、後述するように
TLB35の該当エントリの入替え(リプレース)
が行なわれる。また、主記憶保護違反の場合に
は、ソフトウエアレベルでの割込みが発生され
る。また、モデイフアイ(割込み)の場合、後述
するようにページテーブル12の該当エントリの
モデイフアイビツトMのセツトと、TLB35の
該当エントリのセツトなどが行なわれる。また、
次ページミスヒツトの場合、ミスヒツトの場合と
同様に、TLB35の該当エントリの入替えが行
なわれる。また、次ページモデイフアイの場合に
は、モデイフアイ(割込み)の場合と同様に、ペ
ージテーブル12の該当エントリのモデイフアイ
ビツトMのセツトが行なわれ、更にTLB35の
内容の変更が行なわれる。なお、次ページミスヒ
ツト、次ページモデイフアイは、ページ境界にま
たがるフルワードアクセスのときに発生する可能
性がある。 According to the logic described above, if a mishit is detected (under the control of the microprogram control section)
As will be described later, the control circuit 37
Replace the corresponding entry in TLB35
will be carried out. Furthermore, in the case of a main memory protection violation, an interrupt is generated at the software level. In the case of modification (interruption), the modification bit M of the corresponding entry in the page table 12 and the corresponding entry in the TLB 35 are set, as will be described later. Also,
In the case of a next page miss, the relevant entry in the TLB 35 is replaced in the same way as in the case of a miss. Further, in the case of next page modification, the modification bit M of the corresponding entry in the page table 12 is set, and the contents of the TLB 35 are further changed, as in the case of modification (interruption). Note that next page misses and next page modifications may occur during full word access across page boundaries.
ここで、TLB35の該当エントリの入替え
(リプレース)等、TLB35の内容を変更する場
合について説明する。なお、以下の説明では、
MAR32にロードされた仮想アドレスを対象仮
想アドレス、対象仮想アドレスに対応するTLB
35のエントリをTLB該当エントリと呼ぶ。ま
た、対象仮想アドレスの直前ページに対応する
TLBエントリセツトをTLB直前エントリセツ
ト、対象仮想アドレスの直後のページに対応する
TLBエントリセツトをTLB直後エントリセツト
と呼ぶ。 Here, a case will be described in which the contents of the TLB 35 are changed, such as replacing a corresponding entry in the TLB 35. In addition, in the following explanation,
The virtual address loaded in MAR32 is the target virtual address, and the TLB corresponding to the target virtual address
The 35 entries are called TLB corresponding entries. Also, it corresponds to the page immediately before the target virtual address.
Set the TLB entry set to the previous TLB entry set, which corresponds to the page immediately after the target virtual address.
The TLB entry set is called the TLB immediate entry set.
(1) メモリリード時のミスヒツトの場合
メモリリード時にミスヒツト(割込み)が発
生した場合、マイクロプログラム制御部の制御
により、まずセグメントテーブル11の該当エ
ントリ中の主記憶保護情報P.LEVELが保護レ
ジスタ33にロードされ、対応するページテー
ブル12の該当エントリ中の実ページ番号
RPAがRPAレジスタ34にロードされる。P.
LEVELは、図示せぬセグメントテーブル起点
レジスタに格納されているセグメントテーブル
起点アドレスと、仮想アドレスのセグメント番
号SNとを用いてセグメントテーブル11をア
クセスすることにより得られる。このときペー
ジテーブル起点アドレスも得られる。また、
RPAは、上記ページテーブル起点アドレスと
仮想アドレスのページ番号PNとを用いて対応
するページテーブル12をアクセスすることに
より得られる。(1) In the case of a miss during memory read When a miss (interrupt) occurs during memory read, the main memory protection information P.LEVEL in the corresponding entry of the segment table 11 is first changed to the protection register 33 under the control of the microprogram control unit. and the actual page number in the corresponding entry of the corresponding page table 12
RPA is loaded into RPA register 34. P.
LEVEL is obtained by accessing the segment table 11 using the segment table starting point address stored in a segment table starting point register (not shown) and the segment number SN of the virtual address. At this time, the page table starting point address is also obtained. Also,
The RPA is obtained by accessing the corresponding page table 12 using the page table starting point address and the page number PN of the virtual address.
P.LEVELおよびRPAがロードされると、マ
イクロプログラムによりTLBリプレース(リ
ード)指令が発行される。この指令により、
TLB35A,35Bの該当エントリのうち、
一番昔に参照された側のエントリ、例えば
TLB35A(TLB35のA側)の該当エント
リの書換えが行なわれる。このとき、A側、B
側のいずれを書換えたか(この例ではA側)が
記憶される。この書換え(リプレース)にあつ
ては、対象仮想アドレスのSN′,PN′、保護レ
ジスタ33からのP.LEVEL、およびRPAレジ
スタ34からのRPAが、TLB該当エントリの
所定フイールドに書込まれる。また、TLB該
当エントリのビツトV′がセツト、ビツト
VNA,VNB,M′,MNA,MNBがリセツト
される。但し、MNA,MNBについては不変
としてもよい。なお、書換え(リプレース)対
象エントリを、TLB35A側、またはTLB3
5B側のいずれとするかは、TLB35Bの該
当エントリ中の参照ビツトRに基づいて決定さ
れる。この書換えに際し、上記参照ビツトRの
論理値は反転される。 When P.LEVEL and RPA are loaded, a TLB replace (read) command is issued by the microprogram. With this directive,
Among the corresponding entries of TLB35A and 35B,
The most recently referenced entry, e.g.
The corresponding entry in TLB 35A (A side of TLB 35) is rewritten. At this time, A side, B side
Which side has been rewritten (in this example, side A) is stored. In this rewriting (replacement), SN', PN' of the target virtual address, P.LEVEL from the protection register 33, and RPA from the RPA register 34 are written into a predetermined field of the corresponding TLB entry. Also, bit V′ of the corresponding TLB entry is set.
VNA, VNB, M', MNA, and MNB are reset. However, MNA and MNB may remain unchanged. Note that the entry to be rewritten (replaced) must be placed on the TLB35A side or TLB3
5B side is determined based on the reference bit R in the corresponding entry of TLB 35B. During this rewriting, the logic value of the reference bit R is inverted.
上記した書換えの後、MAR32の内容が、
対象仮想アドレスより1ページ前を示すように
変更され、続いてコントロールセクシヨン・チ
エンジ(リード)指令が発行される。この指令
により、TLB直前エントリセツトのコントロ
ールセクシヨンCSが同時に変更される。この
CSの変更内容は、TLB直前エントリセツト
が、MAR32に設定された仮想アドレス(対
象仮想アドレスより1ページ前を示す仮想アド
レス)に対応するアドレス変換情報を正しく持
つている(TLBビツト)か、否(TLBミス)
かにより、次のように異なる。但し、次の例
は、TLBリプレース(リード)指令により、
TLB35のA側がリプレースされた場合であ
る。 After the above rewriting, the contents of MAR32 are changed to
The address is changed to indicate one page before the target virtual address, and then a control section change (read) command is issued. This command simultaneously changes the control section CS of the TLB immediately preceding entry set. this
The content of CS changes is whether or not the TLB immediately preceding entry set correctly has address translation information (TLB bit) corresponding to the virtual address set in MAR32 (virtual address indicating one page before the target virtual address). (TLB mistake)
Depending on the situation, it differs as follows. However, in the following example, due to the TLB replace (read) command,
This is a case where the A side of the TLB 35 is replaced.
(a) TLBヒツトの場合
V′:不変 VNA:セツト
VNB:不変(リセツト)
M′:不変 MNA:リセツト
MNB:不変(リセツト)
(b) TLBミスの場合
V′:不変 VNA:リセツト
VNB:不変
M′:不変 MNA:リセツト
MNB:不変
(2) メモリライト時のミスヒツトの場合
メモリライト時にミスヒツト(割込み)が発
生した場合のTLB制御の手順は、前記(1)での
TLBリプレース(リード)指令の代りにTLB
リプレース(ライト)指令が、コントロールセ
クシヨン・チエンジ(リード)指令の代りにコ
ントロールセクシヨン・チエンジ(ライト)指
令が適用されること、そしてページテーブル1
2の対応するエントリのモデイフアイビツトM
がセツトされることを除き、メモリリード時と
同様である。この場合、TLB当該エントリ、
TLB直前エントリセツトのコントロールセク
シヨンCSは、以下の通りとなる。 (a) In case of TLB hit V': Unchanged VNA: Set VNB: Unchanged (reset) M': Unchanged MNA: Reset MNB: Unchanged (reset) (b) In case of TLB miss V': Unchanged VNA: Reset VNB: Unchanged M': Unchanged MNA: Reset MNB: Unchanged (2) In case of a miss during memory write The TLB control procedure when a miss (interrupt) occurs during memory write is as described in (1) above.
TLB instead of TLB replace (read) command
The replace (write) command is such that a control section change (write) command is applied instead of a control section change (read) command, and the page table 1
Modifier bit M of the corresponding entry in 2
This is the same as when reading memory, except that . In this case, the TLB entry,
The control section CS of the TLB immediately preceding entry set is as follows.
(a) TLB該当エントリ
V′:セツト VNA:リセツト
VNB:リセツト
M′:セツト MNA:リセツト
MNB:リセツト
(b) TLB直前エントリセツト
但し、A側がリプレースされた場合
(b‐1) TLBヒツトの場合
V′:不変 VNA:セツト
VNB:不変(リセツト)
M′:不変 MNA:セツト
MNB:不変(リセツト)
(b‐2) TLBミスの場合
V′:不変 VNA:リセツト
VNB:不変
M′:不変 MNA:リセツト
MNB:不変
(3) メモリライト時のモデイフアイ割込み
メモリライト時にモデイフアイ割込みが発生
すると、まずページテーブル12の該当エント
リのモデイフアイビツトMがセツトされる。次
に、MAR32に対象仮想アドレスがセツトさ
れ、続いてセツト・モデイフアイ指令が発行さ
れる。この指令により、TLB該当エントリ
(この例では、TLB35のA側の対応するエン
トリであるものとする)のビツトM′がセツト
される。次に、MAR32の内容が、対象仮想
アドレスより1ページ前を示すように変更さ
れ、続いてコントロールセクシヨン・チエンジ
(モデイフアイ)指令が発行される。この指令
により、TLB直前エントリセツトのコントロ
ールセクシヨンCSが変更される。このCSの変
更内容は、TLB直前エントリセツトが、MAR
32に設定された仮想アドレス(対象仮想アド
レスより1ページ前を示す仮想アドレス)に対
応するアドレス変換情報を正しく持つている
(TLBヒツト)か、否(TLBミス)かにより、
次のように異なる。但し、次の例は、セツト・
モデイフアイ指令により、TLB35のA側の
対応するエントリ中のビツトM′がセツトされ
た場合である。 (a) TLB applicable entry V': Set VNA: Reset VNB: Reset M': Set MNA: Reset MNB: Reset (b) TLB immediately preceding entry set However, if side A is replaced (b-1) In case of TLB hit V′: Unchanged VNA: Set VNB: Unchanged (reset) M′: Unchanged MNA: Set MNB: Unchanged (reset) (b-2) In case of TLB miss V′: Unchanged VNA: Reset VNB: Unchanged M′: Unchanged MNA :Reset MNB: Unchanged (3) Modify interrupt during memory write When a modify interrupt occurs during memory write, the modify bit M of the corresponding entry in the page table 12 is first set. Next, the target virtual address is set in MAR 32, and then a set/modify command is issued. This command sets bit M' of the corresponding TLB entry (in this example, the corresponding entry on the A side of the TLB 35). Next, the contents of MAR32 are changed to indicate one page before the target virtual address, and then a control section change (modify) command is issued. This command changes the control section CS of the TLB immediately preceding entry set. The content of this CS change is that the TLB last entry set is changed to MAR
Depending on whether the address translation information corresponding to the virtual address set to 32 (virtual address indicating one page before the target virtual address) is correctly held (TLB hit) or not (TLB miss),
They differ as follows. However, the following example
This is a case where bit M' in the corresponding entry on the A side of TLB 35 is set by the modify command.
(a) TLBヒツトの場合
V′:不変 VNA:不変(セツト)
VNB:不変
M′:不変 MNA:セツト
MNB:不変
(b) TLBミスの場合
V′:不変 VNA:不変(リセツト)
VNB:不変
M′:不変 MNA:不変(リセツト)
MNB:不変
上記したTLB制御によれば、TLB35の各エ
ントリのコントロールセクシヨンCSには、対応
するページは勿論、次ページに対する最新の情報
も正しく設定される。例えば、或る仮想アドレス
によるメモリリード時にミスヒツト(割込み)が
発生した場合、TLB該当エントリがリプレース
される。この際、V′,M′が一義的に正しい値に
設定される。このとき、TLB該当エントリのリ
プレースに伴い、TLB直前エントリセツトの
VNA,VNB,MNA,MNBも、TLB該当エン
トリの状態を反映するように変更される。なお、
この実施例では、TLB該当エントリのリプレー
スが行なわれた場合において、TLB該当エント
リのVNi,MNiが、TLB直後エントリセツトの
状態が正しく反映しているとは限らない。しか
し、TLB直後エントリセツトのリプレースが行
なわれた際には、TLB該当エントリのVNi,
MNiは、必ずTLB直後エントリセツトの状態を
正しく反映する。 (a) In case of TLB hit V': Unchanged VNA: Unchanged (set) VNB: Unchanged M': Unchanged MNA: Set MNB: Unchanged (b) In case of TLB miss V': Unchanged VNA: Unchanged (reset) VNB: Unchanged M': Unchanged MNA: Unchanged (reset) MNB: Unchanged According to the TLB control described above, the latest information for not only the corresponding page but also the next page is correctly set in the control section CS of each entry in the TLB 35. . For example, if a miss (interruption) occurs during memory read using a certain virtual address, the corresponding TLB entry is replaced. At this time, V' and M' are set to uniquely correct values. At this time, with the replacement of the relevant TLB entry, the previous TLB entry set is
VNA, VNB, MNA, and MNB are also changed to reflect the state of the corresponding TLB entry. In addition,
In this embodiment, when the relevant TLB entry is replaced, the VNi and MNi of the relevant TLB entry do not necessarily reflect the state of the entry set immediately after the TLB. However, when the entry set immediately after the TLB is replaced, the VNi of the corresponding TLB entry,
MNi always correctly reflects the state of the entry set immediately after the TLB.
また、上記メモリリードがページ境界にまたが
るフルワードアクセスである場合であつて、いず
れのページについてもTLB該当エントリにアド
レス変換情報が正しく格納されていない場合に
は、次のようにしてTLBエントリの変更が行な
われる。この場合、割込みの優先順位から明らか
なように、ミスヒツト扱いとなり、先頭ページの
TLB該当エントリのリプレース(CSの変更を含
む)と、そのTLB直前エントリセツトのCS
(VNA,VNB,MNA,MNB)の変更とが行な
われる。そして、再び上記したフルワードアクセ
スを実行しようとすると、今度は次ページミスヒ
ツト扱いとなる。この場合には、次のページの
TLB該当エントリのリプレース(CSの変更を含
む)と、そのTLB直前エントリセツト、即ち先
頭ページのTLB該当エントリのCS(VNA,
VNB,MNA,MNB)の変更とが行なわれる。
この結果、先頭ページに対応するTLB該当エン
トリには、同エントリおよびTLB直後エントリ
セツトのいずれにも、正しいアドレス変換情報が
格納されていることを示す情報が設定される。 In addition, if the above memory read is a fullword access that spans page boundaries, and address translation information is not stored correctly in the TLB entry for any page, change the TLB entry as follows. Changes are made. In this case, as is clear from the interrupt priority order, it is treated as a miss, and the first page
Replacement of the corresponding TLB entry (including changing the CS) and CS of the previous TLB entry set
(VNA, VNB, MNA, MNB) changes are made. If an attempt is made to perform the full word access described above again, this time it will be treated as a next page miss. In this case, the next page
Replacement of the corresponding TLB entry (including changing the CS) and the previous TLB entry set, that is, the CS of the TLB corresponding entry on the first page (VNA,
VNB, MNA, MNB) changes are made.
As a result, information indicating that correct address translation information is stored in the corresponding TLB entry corresponding to the first page is set in both the entry and the TLB immediate entry set.
また、メモリリード時のミスヒツトにより
TLB該当エントリのリプレースが行なわれたペ
ージに、メモリライトアクセスを行なう場合、
(もし主記憶保護違反が発生しなければ)モデイ
フアイ割込みが発生し、TLB該当エントリのビ
ツトM′だけがセツトされる。このとき、TLB直
前エントリセツトのCS(中のMNi)が、TLB該
当エントリの状態を反映するように変更される。
また、ページテーブル12の対応エントリのモデ
イフアイビツトMもセツトされる。もし、モデイ
フアイ割込みを適用せずに、ページテーブル12
のモデイフアイビツトMに対するセツト動作回数
を減少させたい場合には、モデイフアイ(割込
み)、次ページモデイフアイ(割込み)に相当す
る状態もミスヒツト(割込み)、次ページミスヒ
ツト(割込み)扱いとすればよい。但し、この場
合には、TLBエントリのリプレースが伴うため、
セグメントテーブル11およびページテーブル1
2へのアクセスが必要となることから、前記した
方式に比べ効率は低下する。 Also, due to a mishit when reading memory,
When performing memory write access to a page where the corresponding TLB entry has been replaced,
A modify interrupt occurs (if no main memory protection violation occurs), and only bit M' of the corresponding TLB entry is set. At this time, the CS (MNi inside) of the immediately preceding TLB entry set is changed to reflect the state of the corresponding TLB entry.
Modifier bit M of the corresponding entry in page table 12 is also set. If the page table 12 is
If you want to reduce the number of set operations for modifier bit M in do it. However, in this case, the TLB entry will be replaced, so
Segment table 11 and page table 1
Since access to 2 is required, the efficiency is lower than that of the above-mentioned method.
なお、前記実施例では、主記憶保護情報P.
LEVELが1種類である場合について説明した
が、これに限るものではない。例えば、主記憶保
護の効率化のために、リード保護用、ライト保護
用、命令実行保護用の3種類の主記憶保護情報が
用意されている場合にも、同様に実施できる。こ
の場合、主記憶保護違反の検出は、メモリアクセ
スの種類に対応する主記憶保護情報を用いて行な
われる。 Note that in the above embodiment, the main memory protection information P.
Although the case where there is one type of LEVEL has been described, the case is not limited to this. For example, in order to improve the efficiency of main memory protection, three types of main memory protection information, one for read protection, one for write protection, and one for instruction execution protection, are prepared, and the same implementation can be performed. In this case, main memory protection violation is detected using main memory protection information corresponding to the type of memory access.
[発明の効果]
以上詳述したようにこの発明によれば、次に列
挙する作用効果を奏することができる。[Effects of the Invention] As described in detail above, according to the present invention, the following effects can be achieved.
TLBの各エントリに、該当ページは勿論、
次ページに対する最新の制御情報が正しく設定
されるので、たとえページ境界をまたぐメモリ
アクセスの場合でも、先頭ページに対応する
TLBエントリのチエツクだけでこの種メモリ
アクセスの正当性が保証でき、したがつて処理
速度の向上が図れる。 For each TLB entry, the corresponding page is of course
The latest control information for the next page is set correctly, so even if memory access crosses page boundaries, it will still correspond to the first page.
The validity of this type of memory access can be guaranteed simply by checking the TLB entry, thus improving processing speed.
対応するページが書換えられたか否かを示す
モデイフアイビツトをページテーブルエントリ
に用意する方式を採用する場合、たとえ2ペー
ジにまたがるメモリアクセスのときでも、同モ
デイフアイビツトの状態を簡単に把握でき、ペ
ージテーブルエントリのモデイフアイビツトの
セツト回数の減少が図れる。 If a method is adopted in which a modifier bit indicating whether the corresponding page has been rewritten is prepared in the page table entry, the status of the modifier bit can be easily grasped even when memory access spans two pages. This reduces the number of times the modification bit of a page table entry is set.
ページテーブルエントリのモデイフアイビツ
トの把握が簡単に行なえる方式を採用する場合
において、前回リードアクセスされたページに
対するメモリライト時には、対応するTLBエ
ントリの入替えを不要とすることができる。 In the case of adopting a method that allows the modification bits of page table entries to be easily grasped, it is possible to eliminate the need to replace the corresponding TLB entry when memory is written to a page that was previously read accessed.
図面はこの発明の一実施例に係る仮想記憶制御
方式の計算機のの要部の構成を示すブロツク図で
ある。
10…主メモリ、11…セグメントテーブル、
12…ページテーブル、35…TLB、36…境
界チエツク回路、37…コントロール回路。
The drawing is a block diagram showing the configuration of a main part of a computer using a virtual memory control method according to an embodiment of the present invention. 10...Main memory, 11...Segment table,
12...Page table, 35...TLB, 36...Boundary check circuit, 37...Control circuit.
Claims (1)
ス変換バツフア)であつて、各TLBエントリに、
自エントリの有効/無効を示すビツトV′、自エ
ントリで示されるページの次のページに対応する
有効なTLBエントリが上記TLBのいずれのセツ
トに存在するかを各セツト毎に示すビツトVNi
(i=1,…n)、およびアドレス変換情報のフイ
ールドを含むTLBと、 メモリアクセスに際し、対象仮想アドレス、同
対象仮想アドレスに対応する上記TLBエントリ
の上記ビツトV′,VNi、およびアドレス変換情
報の所定フイールドにより、同エントリに正しい
アドレス変換情報が格納されているか否か、およ
び同エントリで示されるページの次のページに対
応する上記TLBエントリに正しいアドレス変換
情報が格納されているか否かを検出する第1検出
手段と、 1つのメモリアクセスが2ページにまたがるか
否かを検出する第2検出手段と、 上記第1および第2検出手段の検出結果に応じ
て上記TLBの対応エントリの入替えを行なう入
替え手段と、 この入替え手段によるTLBエントリの入替え
時に、入替え対象TLBエントリの上記ビツト
V′をセツトし、上記ビツトVNiをリセツトする
手段と、 上記入替え対象TLBエントリで示されるペー
ジの直前ページに対応する上記TLBエントリの
上記ビツトVNiを変更する手段と、 を具備することを特徴とするTLB制御方式。 2 各ページテーブルエントリに、対応するペー
ジが書換えられたか否かを示すモデイフアイビツ
ト、および実ページ番号のフイールドを有するペ
ージテーブルを備えた仮想記憶制御方式の計算機
において、 nセツト(nは2以上の整数)のTLB(アドレ
ス変換バツフア)であつて、各TLBエントリに、
自エントリの有効/無効を示すビツトV′、自エ
ントリで示されるページの次のページに対応する
有効なTLBエントリが上記TLBのいずれのセツ
トに存在するかを各セツト毎に示すビツトVNi
(i=1,…n)、自エントリで示されるページに
対応する上記ページテーブルエントリのモデイフ
アイビツトの状態を示すビツトM′、上記ビツト
VNiと対を成して設けられ、対応する上記VNi
が有効指定状態にある場合に自エントリで示され
るページの次のページに対応する上記ページテー
ブルエントリのモデイフアイビツトの状態を示す
ビツトMNi、およびアドレス変換情報のフイー
ルドを含むTLBと、 メモリアクセスに際し、対象仮想アドレス、同
対象仮想アドレスに対応する上記TLBエントリ
の上記ビツトV′,VNi、M′,MNi、およびアド
レス変換情報の所定フイールドにより、同エント
リに正しいアドレス変換情報が格納されているか
否か、同エントリで示されるページの次のページ
に対応する上記TLBエントリに正しいアドレス
変換情報が格納されているか否か、同エントリで
示されるページに対応する上記ページテーブルエ
ントリの上記モデイフアイビツトの状態、および
同エントリで示されるページの次のページに対応
する上記ページテーブルエントリの上記モデイフ
アイビツトの状態を検出する第1検出手段と、 1つのメモリアクセスが2ページにまたがるか
否かを検出する第2検出手段と、 上記第1および第2検出手段の検出結果に応じ
て上記TLBの対応エントリの入替えを行なう入
替え手段と、 この入替え手段によるTLBエントリの入替え
時に、入替え対象TLBエントリの上記ビツト
V′をセツトし、且つ上記ビツトVNi,MNiをリ
セツトすると共に、上記ビツトM′をメモリリー
ド/ライトに応じてリセツト/セツトする手段
と、 上記入替え対象TLBエントリで示されるペー
ジの直前ページに対応する上記TLBエントリの
上記ビツトVNi,MNiをメモリリード/ライト
に応じて変更する手段と、 を具備することを特徴とするTLB制御方式。 3 各ページテーブルエントリに、対応するペー
ジが書換えられたか否かを示すモデイフアイビツ
ト、および実ページ番号のフイールドを有するペ
ージテーブルを備えた仮想記憶制御方式の計算機
において、 nセツト(nは2以上の整数)のTLB(アドレ
ス変換バツフア)であつて、各TLBエントリに、
自エントリの有効/無効を示すビツトV′、自エ
ントリで示されるページの次のページに対応する
有効なTLBエントリが上記TLBのいずれのセツ
トに存在するかを各セツト毎に示すビツトVNi
(i=1,…n)、自エントリで示されるページに
対応する上記ページテーブルエントリのモデイフ
アイビツトの状態を示すビツトM′、上記ビツト
VNiと対を成して設けられ、対応する上記VNi
が有効指定状態にある場合に自エントリで示され
るページの次のページに対応する上記ページテー
ブルエントリのモデイフアイビツトの状態を示す
ビツトMNi、およびアドレス変換情報のフイー
ルドを含むTLBと、 メモリアクセスに際し、対象仮想アドレス、同
対象仮想アドレスに対応する上記TLBエントリ
の上記ビツトV′,VNi、M′,MNi、およびアド
レス変換情報の所定フイールドにより、同エント
リに正しいアドレス変換情報が格納されているか
否か、同エントリで示されるページの次のページ
に対応する上記TLBエントリに正しいアドレス
変換情報が格納されているか否か、同エントリで
示されるページに対応する上記ページテーブルエ
ントリの上記モデイフアイビツトの状態、および
同エントリで示されるページの次のページに対応
する上記ページテーブルエントリの上記モデイフ
アイビツトの状態を検出する第1検出手段と、 1つのメモリアクセスが2ページにまたがるか
否かを検出する第2検出手段と、 上記第1および第2検出手段の検出結果に応じ
て上記TLBの対応エントリの入替えを行なう入
替え手段と、 この入替え手段によるTLBエントリの入替え
時に、入替え対象TLBエントリの上記ビツト
V′をセツトし、且つ上記ビツトVNi,MNiをリ
セツトすると共に、上記ビツトM′をメモリリー
ド/ライトに応じてリセツト/セツトする手段
と、 上記入替え対象TLBエントリで示されるペー
ジの直前ページに対応する上記TLBエントリの
上記ビツトVNi,MNiをメモリリード/ライト
に応じて変更する手段と、 メモリライトアクセス時に上記第1および第2
検出手段の検出結果に応じて上記TLBの対応エ
ントリの上記ビツトM′のみをセツトする手段と、 この手段によるビツトM′セツト対象TLBエン
トリで示されるページの直前ページに対応する上
記TLBエントリの上記ビツトMNiを変更する手
段と、 を具備することを特徴とするTLB制御方式。[Claims] 1. In a virtual memory control computer, n sets (n is an integer of 2 or more) of TLBs (address translation buffers), each TLB entry having:
Bit V′ indicating whether the own entry is valid/invalid; Bit VNi indicating for each set in which set of the above TLBs there is a valid TLB entry corresponding to the page following the page indicated by the own entry.
(i = 1,...n), and a TLB containing a field of address translation information, the target virtual address, the above bits V′, VNi of the above TLB entry corresponding to the same target virtual address, and address translation information when accessing the memory. The predetermined field of , determines whether correct address translation information is stored in the same entry, and whether correct address translation information is stored in the above TLB entry corresponding to the page next to the page indicated by the same entry. a first detection means for detecting; a second detection means for detecting whether one memory access spans two pages; and replacement of corresponding entries in the TLB according to the detection results of the first and second detection means. and a replacement means for performing the above-mentioned bits of the TLB entry to be replaced when the replacement means replaces the TLB entry.
V' and resetting the bit VNi; and means for changing the bit VNi of the TLB entry corresponding to the page immediately before the page indicated by the TLB entry to be replaced. TLB control method. 2. In a virtual memory control computer equipped with a page table in which each page table entry has a modifier bit indicating whether the corresponding page has been rewritten or not, and a field for the actual page number, n sets (n is 2) are used. A TLB (Address Translation Buffer) with an integer greater than or equal to
Bit V′ indicating whether the own entry is valid/invalid; Bit VNi indicating for each set in which set of the above TLBs there is a valid TLB entry corresponding to the page following the page indicated by the own entry.
(i=1,...n), bit M' indicating the state of the modifier bit of the above page table entry corresponding to the page indicated by the self entry, the above bit
Provided as a pair with VNi and corresponding to the above VNi
bit MNi indicating the state of the modifier bit of the above page table entry corresponding to the page next to the page indicated by the self entry when the page is in the valid specification state, and a TLB containing a field of address translation information, and memory access. At this time, check whether correct address translation information is stored in the target virtual address, the bits V', VNi, M', MNi of the TLB entry corresponding to the target virtual address, and the specified field of address translation information. Whether correct address translation information is stored in the TLB entry corresponding to the page following the page indicated by the same entry, the modifier of the page table entry corresponding to the page indicated by the same entry. a first detection means for detecting the state of the bit and the state of the modifier bit of the page table entry corresponding to the page next to the page indicated by the same entry; a second detection means for detecting whether the TLB is a TLB entry, a replacement means for replacing corresponding entries in the TLB according to the detection results of the first and second detection means; The above bits of entry
means for setting V′ and resetting the above bits VNi and MNi, and also resetting/setting the above bit M′ in response to memory read/write, and corresponding to the page immediately before the page indicated by the above TLB entry to be replaced. and means for changing the bits VNi and MNi of the TLB entry in response to memory read/write. 3. In a computer with a virtual memory control system, which has a page table in which each page table entry has a modifier bit indicating whether the corresponding page has been rewritten or not, and a field for the actual page number, n sets (n is 2) are used. A TLB (Address Translation Buffer) with an integer greater than or equal to
Bit V′ indicating whether the own entry is valid/invalid; Bit VNi indicating for each set in which set of the above TLBs there is a valid TLB entry corresponding to the page following the page indicated by the own entry.
(i=1,...n), bit M' indicating the state of the modifier bit of the above page table entry corresponding to the page indicated by the self entry, the above bit
Provided as a pair with VNi and corresponding to the above VNi
bit MNi indicating the state of the modifier bit of the above page table entry corresponding to the page next to the page indicated by the self entry when the page is in the valid specification state, and a TLB containing a field of address translation information, and memory access. At this time, check whether correct address translation information is stored in the target virtual address, the bits V', VNi, M', MNi of the TLB entry corresponding to the target virtual address, and the specified field of address translation information. Whether correct address translation information is stored in the TLB entry corresponding to the page following the page indicated by the same entry, the modifier of the page table entry corresponding to the page indicated by the same entry. a first detection means for detecting the state of the bit and the state of the modifier bit of the page table entry corresponding to the page next to the page indicated by the same entry; a second detection means for detecting whether the TLB is a TLB entry, a replacement means for replacing corresponding entries in the TLB according to the detection results of the first and second detection means; The above bits of entry
means for setting V′ and resetting the above bits VNi and MNi, and also resetting/setting the above bit M′ in response to memory read/write, and corresponding to the page immediately before the page indicated by the above TLB entry to be replaced. means for changing the above-mentioned bits VNi and MNi of the above-mentioned TLB entry according to a memory read/write;
means for setting only the bit M' of the corresponding entry in the TLB in accordance with the detection result of the detection means; A TLB control method comprising: means for changing bit MNi;
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59135906A JPS6115249A (en) | 1984-06-30 | 1984-06-30 | Tlb control system |
US06/749,866 US4731740A (en) | 1984-06-30 | 1985-06-28 | Translation lookaside buffer control system in computer or virtual memory control scheme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59135906A JPS6115249A (en) | 1984-06-30 | 1984-06-30 | Tlb control system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6115249A JPS6115249A (en) | 1986-01-23 |
JPH024016B2 true JPH024016B2 (en) | 1990-01-25 |
Family
ID=15162590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59135906A Granted JPS6115249A (en) | 1984-06-30 | 1984-06-30 | Tlb control system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6115249A (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04128946A (en) * | 1990-09-20 | 1992-04-30 | Fujitsu Ltd | Address conversion method |
JPH0890822A (en) * | 1994-09-28 | 1996-04-09 | Sony Corp | Printing method and image printer |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58139387A (en) * | 1982-02-12 | 1983-08-18 | Hitachi Ltd | Address converting system |
-
1984
- 1984-06-30 JP JP59135906A patent/JPS6115249A/en active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58139387A (en) * | 1982-02-12 | 1983-08-18 | Hitachi Ltd | Address converting system |
Also Published As
Publication number | Publication date |
---|---|
JPS6115249A (en) | 1986-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3740195B2 (en) | Data processing device | |
US8028341B2 (en) | Providing extended memory protection | |
JP3713312B2 (en) | Data processing device | |
JP4295111B2 (en) | Memory management system and memory access security grant method based on linear address | |
US5247639A (en) | Microprocessor having cache bypass signal terminal | |
US6321314B1 (en) | Method and apparatus for restricting memory access | |
JP5234794B2 (en) | Data processing apparatus and method for controlling access to secure memory by virtual machine executed on processing circuit | |
US5075845A (en) | Type management and control in an object oriented memory protection mechanism | |
US6823433B1 (en) | Memory management system and method for providing physical address based memory access security | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
TWI381275B (en) | Address translation method and apparatus | |
US4731740A (en) | Translation lookaside buffer control system in computer or virtual memory control scheme | |
US4763250A (en) | Paged memory management unit having variable number of translation table levels | |
US20110202740A1 (en) | Storing secure page table data in secure and non-secure regions of memory | |
JPS58102381A (en) | Buffer memory | |
KR100995146B1 (en) | System and method for handling device accesses to a memory providing increased memory access security | |
US4961135A (en) | Translation lookaside buffer control system | |
JPH0260012B2 (en) | ||
KR20200116472A (en) | Protection tag inspection control at memory access | |
JP2001222470A (en) | Translation look aside buffer circuit | |
JP2001034537A (en) | Address converting circuit | |
US20050027960A1 (en) | Translation look-aside buffer sharing among logical partitions | |
KR20230101826A (en) | Techniques for restricting access to memory using capabilities | |
JP2007280421A (en) | Data processor | |
JPH07120318B2 (en) | Apparatus and method for protecting main memory unit with access and defective logic signals |