JPH03218546A - Address conversion mechanism - Google Patents

Address conversion mechanism

Info

Publication number
JPH03218546A
JPH03218546A JP2014182A JP1418290A JPH03218546A JP H03218546 A JPH03218546 A JP H03218546A JP 2014182 A JP2014182 A JP 2014182A JP 1418290 A JP1418290 A JP 1418290A JP H03218546 A JPH03218546 A JP H03218546A
Authority
JP
Japan
Prior art keywords
address
tlb
virtual
conversion
operand
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
Application number
JP2014182A
Other languages
Japanese (ja)
Other versions
JP2586160B2 (en
Inventor
Masatoshi Koto
小藤 雅俊
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2014182A priority Critical patent/JP2586160B2/en
Publication of JPH03218546A publication Critical patent/JPH03218546A/en
Application granted granted Critical
Publication of JP2586160B2 publication Critical patent/JP2586160B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To speed up address conversion by providing a means judging whether an address is a virtual one or not and a means generating the address indexing the entry of first TLB (translation look-aside buffer). CONSTITUTION:If it is judged that the virtual address which is conversion- requested is the virtual address related on the operand of plural operands use instruction when the virtual address is conversion-requested, the address indexing the entries 1-3 of first TLB 5, which are previously allocated in correspondence with the operand number of the operand is generated. Consequently, respectively different areas of first TLB 5 are used as for the address conversion of respective operands of the plural operands use instruction, and congestion as against the same entry of first TLB is avoided in respective operands. Thus, the hit rate of first TLB is improved and address conversion at the execution time of the plural operands use instruction is attained at high speed.

Description

【発明の詳細な説明】 〔産業上の利用分野] 本発明は、仮想記憶方式を採用した情報処理装置におけ
るTLBを使用したアドレス変換機構に閲し、特に比較
的高速で小容量のTLBと比較的低速で大容量のTLB
との2種類のTLBを使用してアドレス変換を行うアド
レス変換機構の改良に関する. 〔従来の技術〕 仮想記憶方式を採用した情報処理装1は、アドレス計算
により得られた仮想アドレスを実アドレスに変換しこの
実アドレスに対応する主記憶装置のデータを高速に得る
ため、アドレス変換にはTL B (Tianslat
ion Look−aside Buffer)を導入
し、主記憶装置のデータ読み出しにはキャッシュメモリ
を導入してきた.最近では仮想空間の拡大およびデータ
量の拡大に伴い、TLBおよびキャノシュメモリのサイ
ズが情報処理装置の高速化要求を満たす為ますます大容
量化してきている。そして仮想アドレスからTLB索引
,キャッシュメモリ索引という一連の動作をより高速に
処理することが情報処理装置の構成上大きな要因となっ
てきた.そのためTLB索引を高速化する一方式として
、比較的高速で小容量の第1のTLBと比較的低速で大
容量の第2のTLBとの2つのTLBを使用し、第1の
TLBには第2のTLBの一部の写しが格納されるよう
にしておき、第1のTLBでアドレス変換が不可能で第
2のTLBを使用する場合にはアドレス変換のためのマ
シンサイクルは増加するが、第1のTLBでアドレス変
換が可能であれば高速にアドレス変換できるような方式
を採用したアドレス変換機構が提案されている.従来か
ら提案されている第1のTLBと第2のTLBを使用し
たアドレス変換機構を第4図を参照して説明する.なお
、第4図に示すアドレス変換機構では、第1のTLBは
l6エントリから構成され、第2のTLBは512エン
トリ×2レベルのサイズを持ち、キャッシュメモリは6
4エントリX4レベルのサイズで1ブロックサイズは6
4バイトである.また、仮想アドレス,実アドレスの形
式は第5図に示すようになっており、128GB(ギガ
バイト)の仮想記憶空間,IGBの実記憶空間のアクセ
スが可能である. 第4図において、変換要求された仮想アドレスが、それ
を一時的に格納するためのレジスタ(以下VARと称す
)1に格納されると、第1のTLBを構成する多エント
リのバッファ(以下PTLBと称す)5と第2のTLB
を構成する多エントリ.2レヘルのバッファ(以下ST
LBと称す)6−0.6−1とが索引される。PTLB
5とSTLB6−0.6−1はそれぞれ16エントリ.
512エントリ 512エントリのため、VAR1の仮
想アドレスのビット20〜23がアクセスアドレスとし
て信号線3lによりPTLB5に供給され、ビット15
〜23がアクセスアドレスとして信号線32によりST
LB6−0.6−1に供給される.これによりPTLB
5に格納されている仮想アドレスのビットθ〜19が信
号線35に出力され、STLB6−0.6−1に格納さ
れている仮想アドレスのビット0〜14、ビットO〜1
4が信号線37.38に出力される.また同時に実ペー
ジアドレスである実アドレスのビット0−17がPTL
B5,STLB6−0.6−1から信号線36.39.
40に出力される.信号!35,37.38に出力され
た仮想アドレスにかかるビット列は、信号線33.34
上の、VARIに格納された仮想アドレスのうちの対応
しているビット列と比較器9.10.11で比較され、
一致していれば比較器9,10.11の出力は論理値l
になる.このとき、それぞれをPTLBヒット,STL
BレベルOヒット,STLBレベルlヒットという.S
TL8レベルOヒットまたはSTLB1レベルヒットの
場合はセレクタl6によりヒノトしたレベルの実ページ
アドレスを取り出している信号線39または40が選択
され、実アドレスを一時的に格納するレジスタ(以下S
ARと称す)4にその実ページアドレスが格納される.
また、セレクタ17.18の切換のためのF/F (フ
リップフロップ)20が論理値Oであれば、PTLB5
の実ページアドレスを供給している信号線36と信号線
30によるVAR 1のページ内アドレスがセレクタ1
7.18で選択され、F/F 2 0の論理値が1であ
ればSAR4の値(信号線44.45上の{i)がセレ
クタ17.18で選択される.こコテ、F/F20はO
Rゲート26によりSTLBレベル0ヒットまたはレベ
ルlヒットの時カっANDゲート27によりPTLBヒ
ットでない時に論理値lにセットされる.すなわちVA
R 1に仮想アドレスが格納されたマシンサイクル時刻
をt1とすれば、セレクタ17.18はt1ではPTL
Bヒントの場合にPTLB出力による実アドレスを選択
し、PTLBヒットでな( STLBヒットの場合には
t1の次のマシンサイクル時刻t2にSTLB出力によ
る実アドレスを選択する.セレクタ17.18の出力は
64エントリ×4レベル,1ブロックサイズ64バイト
のキャッシュメモリのアドレスアレイ(以下AAと称す
)7を索引する.信号線49によってセレクタl8から
供給されるAA7の索引アドレスは実アドレスのビット
18〜23であり、AA7の各レベルからは実アドレス
のビット0−17が出力され、これらとセレクタ17の
出力を取り出す信号線48上の実アドレスのビット0〜
l7とが比較器12〜15において比較され、一致すれ
ば即ちキャッシュヒットすればそれぞれ対応するF/F
 2 2〜25が論理値1にセットされる.このとき、
セレクタ17.18の出力である実アドレスは、実アド
レスを一時的に格納するレジスタ(以下PARと称す)
2へ格納される.そして、PTLBヒットで且つF/F
20が論理値0であればtlでANDゲート2B,OR
ゲート29を通してF/F21が論理値lにセットされ
、PTLBヒットでな< STLBヒットであればF/
F 2 0が論理値lであるのでt2でORゲート29
を通してF/F21が論理値1にセットされる.すなわ
ち、tl,t2にかかわらずPTLBヒノトまたはST
LBヒットであれば、AA7の索引タイミングでは実ア
ドレスがPAR2へ、キャソシュヒット状況がレベル毎
にF/F 2 2〜25に、TLBヒット状況がF/F
21にセソトされる.そして次のマシンサイクルで、キ
ャッシュメモリのデータアレイ(以下DAと称す)8が
索引され、F/F 2 2〜25のセント状況に従いセ
レクタ19により所望のデータカデータを一時的に格納
するレジスタ(以下DARと称す)3へ格納される. なお、上記の説明および第4図にはPTLB5,STL
B6−0.6−1,AA7,DA8への格納について明
示されていないが、PTLBヒシトでなく且つSTLB
ヒットでない場合は、通常行われている如く主記憶装置
上のアドレス変換テーブルを使用したアドレス変換を行
い、得られた仮想アドレスと実アドレスとの対をPTL
B5,STLB6−0.6−1の該当エントリヘ格納し
、ヰヤソシェメモリのヒットでない場合は主記憶装置ヘ
のブロック転送を起動し実アドレスをAA7へデータを
DA8へ格納する.また、PTLBヒットでな<STL
Bヒットの場合は上記のt2においてSTLBのヒット
した仮想アドレスと実アドレスとの対をPTLB5へ写
すことが行われる.〔発明が解決しようとする課題〕 上述した従来のアドレス変換機構によれば、第1のTL
BであるPTLB5でヒットした場合は、t1で実アド
レスに変換でき且つAA7を索引し、t2でDA8を索
引できる.また、PTLBヒットでなく第2(7)TL
BであるSTLB6−0.6−1でヒントした場合は、
t2で実アドレスに変換でき且つAA7を索引し、t2
の次のマシンサイクル時刻であるt3でDA8を索引で
きる。すなわち第2のTLBである大容量のSTLB6
−0.6−1だけではt1〜t3の3マシンサイクルを
使ってDA8を索引するのに対し、第1のTLBである
PTLB5を導入することにより、t1,t2の2マシ
ンサイクルにてDA8を索引することが可能となる。
[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to an address translation mechanism using a TLB in an information processing device that employs a virtual memory method, and is particularly applicable to a relatively high-speed and small-capacity TLB. Targeted slow and large capacity TLB
This paper relates to an improvement of an address translation mechanism that performs address translation using two types of TLBs. [Prior Art] An information processing device 1 that employs a virtual memory method converts a virtual address obtained by address calculation into a real address and obtains data in the main memory corresponding to this real address at high speed. TL B (Tianslat
ion Look-aside Buffer) and a cache memory for reading data from the main memory. Recently, with the expansion of virtual space and the amount of data, the sizes of TLBs and cache memories have become increasingly large in order to meet the demands for higher speeds of information processing devices. Processing a series of operations from virtual addresses to TLB indexing and cache memory indexing at higher speed has become a major factor in the configuration of information processing devices. Therefore, one way to speed up the TLB index is to use two TLBs: a first TLB that is relatively fast and has a small capacity, and a second TLB that is relatively slow and has a large capacity. A copy of part of the second TLB is stored, and if address translation is not possible in the first TLB and the second TLB is used, the machine cycles for address translation will increase, but An address translation mechanism has been proposed that employs a method that allows address translation to be performed at high speed if address translation is possible in the first TLB. A conventionally proposed address translation mechanism using a first TLB and a second TLB will be explained with reference to FIG. In the address translation mechanism shown in FIG. 4, the first TLB consists of 16 entries, the second TLB has a size of 512 entries x 2 levels, and the cache memory has 6 entries.
One block size is 6 with 4 entries x 4 levels.
It is 4 bytes. Furthermore, the formats of virtual addresses and real addresses are as shown in FIG. 5, and it is possible to access 128 GB (gigabytes) of virtual storage space and IGB of real storage space. In FIG. 4, when the virtual address requested for translation is stored in a register (hereinafter referred to as VAR) 1 for temporarily storing it, a multi-entry buffer (hereinafter referred to as PTLB) configuring the first TLB is stored. ) 5 and the second TLB
The multiple entries that make up the . 2 level buffer (hereinafter referred to as ST)
(referred to as LB) 6-0.6-1 is indexed. P.T.L.B.
5 and STLB6-0.6-1 each have 16 entries.
512 Entries Because of the 512 entries, bits 20 to 23 of the virtual address of VAR1 are supplied to PTLB5 by signal line 3l as an access address, and bit 15
~23 is the access address ST via the signal line 32
Supplied to LB6-0.6-1. This allows PTLB
Bits θ to 19 of the virtual address stored in STLB6-0.6-1 are output to the signal line 35, and bits 0 to 14 and bits O to 1 of the virtual address stored in STLB6-0.6-1
4 is output to signal lines 37 and 38. At the same time, bits 0-17 of the real address, which is the real page address, are PTL
B5, STLB6-0.6-1 to signal line 36.39.
40 is output. signal! The bit string related to the virtual address output to 35, 37.38 is connected to signal line 33.34.
It is compared with the corresponding bit string of the virtual address stored in VARI above by comparator 9.10.11,
If they match, the outputs of comparators 9, 10, and 11 are logical values l.
become. At this time, PTLB hit, STL hit, respectively.
These are called B level O hits and STLB level l hits. S
In the case of a TL8 level O hit or an STLB1 level hit, the signal line 39 or 40 from which the real page address of the hinted level is taken out is selected by the selector l6, and the register (hereinafter referred to as S) that temporarily stores the real address is selected.
The real page address is stored in 4 (referred to as AR).
Further, if the F/F (flip-flop) 20 for switching the selectors 17 and 18 is a logical value O, PTLB5
The in-page address of VAR 1 by the signal line 36 and signal line 30 supplying the real page address of selector 1
7.18, and if the logical value of F/F 2 0 is 1, the value of SAR4 ({i on signal line 44.45) is selected by selector 17.18. Here, F/F20 is O
It is set by the R gate 26 to a logical value 1 when there is an STLB level 0 hit or a level 1 hit, and by the AND gate 27 when there is no PTLB hit. That is, V.A.
If the machine cycle time at which the virtual address is stored in R1 is t1, selectors 17 and 18 are set to PTL at t1.
In the case of B hint, the real address by PTLB output is selected, and if there is no PTLB hit (in the case of STLB hit, the real address by STLB output is selected at machine cycle time t2 following t1.The output of selectors 17 and 18 is The address array (hereinafter referred to as AA) 7 of the cache memory with 64 entries x 4 levels and 1 block size of 64 bytes is indexed.The index address of AA7 supplied from the selector l8 via the signal line 49 is bits 18 to 23 of the real address. Bits 0 to 17 of the real address are output from each level of AA7, and bits 0 to 17 of the real address are output on the signal line 48 from which the output of the selector 17 is taken out.
17 are compared in the comparators 12 to 15, and if they match, that is, if there is a cache hit, the corresponding F/F
2 2 to 25 are set to logical value 1. At this time,
The real address that is the output of the selectors 17 and 18 is a register (hereinafter referred to as PAR) that temporarily stores the real address.
Stored in 2. Then, PTLB hit and F/F
If 20 is a logical value 0, use tl to AND gate 2B, OR
F/F21 is set to logic value l through gate 29, and if PTLB is not hit < STLB is hit, F/F21 is set to logic value l.
Since F 2 0 is the logical value l, the OR gate 29 is activated at t2.
F/F21 is set to logical value 1 through. In other words, regardless of tl or t2, PTLB hinoto or ST
If it is a LB hit, the real address goes to PAR2 at the index timing of AA7, the cash hit status goes to F/F 2 2 to 25 for each level, and the TLB hit status goes to F/F.
Sesoto was carried out on the 21st. Then, in the next machine cycle, the data array (hereinafter referred to as DA) 8 of the cache memory is indexed, and the selector 19 temporarily stores the desired data in a register ( (hereinafter referred to as DAR) 3. In addition, in the above explanation and FIG. 4, PTLB5, STL
Although it is not specified about storage in B6-0.6-1, AA7, and DA8, it is not PTLB history and STLB
If it is not a hit, address translation is performed using the address translation table on the main memory as is normally done, and the resulting pair of virtual address and real address is converted to PTL.
B5, stored in the corresponding entry of STLB6-0.6-1, and if it is not a hit in the software memory, block transfer to the main memory is started and the real address is stored in AA7 and the data is stored in DA8. Also, PTLB hit<STL
In the case of a B hit, the pair of the hit virtual address and real address in STLB is copied to PTLB5 at t2 above. [Problems to be Solved by the Invention] According to the conventional address translation mechanism described above, the first TL
If there is a hit in PTLB5, which is B, it can be converted to a real address at t1, and AA7 can be indexed, and DA8 can be indexed at t2. Also, it was not a PTLB hit, but the 2nd (7) TL.
If you hint at STLB6-0.6-1 which is B,
It can be converted to a real address at t2 and AA7 is indexed, and t2
DA8 can be indexed at t3, which is the next machine cycle time. In other words, the large-capacity STLB6 which is the second TLB
-0.6-1 alone uses 3 machine cycles from t1 to t3 to index DA8, but by introducing PTLB5, which is the first TLB, DA8 is indexed in 2 machine cycles from t1 to t2. It becomes possible to index.

しかしながら、このアドレス変換機構はSTLBヒント
の確率に対しPTLBヒットの確率があまり落ちないこ
とが前提であり、PTLBヒットの確率が大幅に落ちる
環境下では、PTLB5の導入による価値が無くなるの
は明白である.この点について、更に詳しく説明する. 上述した従来のアドレス変換機構を持つ情報処理装1で
複数オペランド使用命令を実行する場合を考えてみる.
ここで、複数オペランド使用命令とは少なくとも2個以
上のオペランドを使用し各々のオペランドにはオペラン
ドの種類を区別するオペランド番号が割り当てられ、そ
のオペランドのデータ量が多い命令である。例えば、文
字を扱う命令で1024バイトのデータ量であるオペラ
ンド番号1のデータと同一データ量のオペランド番号2
のデータとをバイト単位でANDLてその結果をオペラ
ンド番号3のデータとしてストアする命令であり、また
、行列を扱うベクトル命令で1024バイトのデータ量
であるオペランド番号lのデータと同一データ量のオペ
ランド番号2のデータとを加算してその結果をオペラン
ド番号3のデータとしてストアする命令である.上記の
ような複数オペランド使用命令はいずれもオペランド番
号1の読み出し.オペランド番号2の読み出し,オペラ
ンド番号3の書き込みの3つのコマンドが、1回のコマ
ンドで扱えるデータ量を8バイトとして、128回連続
することになる.ただし、コマンドの順序はデータ構成
.装置構成により異なる場合がある。これらのオペラン
ドは第5図に示す仮想アドレス形式の如<4Kバイトの
ページであればそれぞれ1ページに入るデータ量であり
、通常異なるページに割り当てられる.従って、それぞ
れのオペランドに対し3つの仮想アドレスと実アドレス
との対を第1のTL’Bの3エントリに確保できれば、
第1のTLBにヒットしてアドレス変換は高速に処理さ
れることになる. しかしながら、512エントリ×2レベルの第2のTL
Bの如く大容量であれば問題は少ないが、l6エントリ
の第1のTLBであれば前記3エントリが確保される確
率は少なくなる.特に仮想アドレス空間割り付け方法に
よりページ番号をある距離を離して割り付けるとすれば
1エントリに競合する確率が大きくなる.もし、同一エ
ントリに格納されるとすれば、オペランド番号1.オペ
ランド番号2,オペランド番号3の順に8バイトずつ処
理すると、常に第1のTLBにヒットしないことになる
. このように、従来のアドレス変換機構では、複数オペラ
ンド使用命令を実行した場合にそれぞれのオペランドに
対応する第1のTLBのエントリが競合する確率が高く
、アドレス変換の性能低下を引き起こす。
However, this address translation mechanism is based on the assumption that the probability of a PTLB hit does not decrease much compared to the probability of an STLB hint, and it is obvious that the introduction of PTLB5 will have no value in an environment where the probability of a PTLB hit decreases significantly. be. This point will be explained in more detail. Let us consider the case where an instruction using multiple operands is executed by the information processing device 1 having the conventional address translation mechanism described above.
Here, an instruction using multiple operands is an instruction that uses at least two or more operands, each operand is assigned an operand number that distinguishes the type of operand, and the amount of data for that operand is large. For example, in an instruction that handles characters, operand number 1 has data of 1024 bytes, and operand number 2 has the same amount of data.
This is an instruction that ANDLs data in byte units and stores the result as the data of operand number 3. It is also a vector instruction that handles matrices, and the operand has the same amount of data as the data of operand number l, which is 1024 bytes of data. This is an instruction that adds the data of number 2 and stores the result as data of operand number 3. All of the above instructions that use multiple operands read operand number 1. The three commands, read operand number 2 and write operand number 3, will be executed 128 times in a row, assuming that the amount of data that can be handled by one command is 8 bytes. However, the order of commands depends on the data structure. It may vary depending on the device configuration. These operands each have the amount of data that can fit into one page if the virtual address format shown in FIG. 5 is less than 4K bytes, and they are usually allocated to different pages. Therefore, if three pairs of virtual addresses and real addresses can be secured for each operand in the three entries of the first TL'B,
When the first TLB is hit, address translation is processed at high speed. However, the second TL with 512 entries x 2 levels
If the capacity is large like B, there will be little problem, but if it is the first TLB with 16 entries, the probability that the three entries will be secured will be low. In particular, if page numbers are allocated a certain distance apart using a virtual address space allocation method, the probability of contention for one entry increases. If they are stored in the same entry, operand number 1. If 8 bytes are processed in the order of operand number 2 and operand number 3, the first TLB will not always be hit. As described above, in the conventional address translation mechanism, when an instruction using multiple operands is executed, there is a high probability that entries in the first TLB corresponding to each operand will conflict, causing a decrease in address translation performance.

次に、従来のアドレス変換機構を使用した情報処理装置
において主記憶装置からのデータ読み出しを考えてみる
。1回の命令読み出しで8バイトすなわち2命令取り出
し、これらの命令が1つずつオペランドを読み出すとし
て、1回の命令読み出しに対し2回のオペランド読み出
しが行われることになる。命令用とオペランド用の仮想
アドレス空間は異なるため第1のTLBが16エントリ
としてこれらの仮想ページアドレスの下位4ビットが同
一であれば第1のTLBの同一のエントリに競合するこ
とになる。すなわち単純に計算すれば16分の1の確率
で3回の読み出しに2回、第1のTLBでヒットしない
ことになる。また、命令先取りおよび命令分岐予測機能
の採用により命令読み出しの頻度は増える方向にあり、
さらに仮想アドレス空間割り付け方法によってその確率
は増大する可能性がある. このように、従来のアドレス変換機構では、命令読み出
しとオペランド読み出しが第1のTLBの同一エントリ
に競合する確率が高く、アドレス変換の性能低下を引き
起こす。
Next, let us consider reading data from the main memory in an information processing device using a conventional address translation mechanism. Assuming that one instruction read takes out 8 bytes, that is, two instructions, and these instructions read operands one by one, two operands are read for each instruction read. Since the virtual address spaces for instructions and operands are different, if the first TLB has 16 entries and the lower 4 bits of these virtual page addresses are the same, they will compete with the same entries in the first TLB. In other words, by simple calculation, there is a probability of 1/16 that the first TLB will not be hit twice in every three reads. Additionally, with the adoption of instruction prefetch and instruction branch prediction functions, the frequency of instruction reads is increasing.
Furthermore, the probability may increase depending on the virtual address space allocation method. As described above, in the conventional address translation mechanism, there is a high probability that an instruction read and an operand read conflict with each other for the same entry in the first TLB, resulting in a decrease in address translation performance.

本発明は上述した如き従来の欠点を解決したもので、そ
の目的は、第1のTLBのヒット率を極力高めアドレス
変換が高速に行われるようにすることにある. 〔課題を解決するための手段〕 本発明によれば、上記の目的は、仮想アドレスを実アド
レスに高速変換するため対応する仮想アドレスと実アド
レスとの対を記憶するバッファであるTLBを使用し、
更にこのTLBを第1のTLBとこの第1のTLBより
低速かつ大容量の第2のTLBとにより構成した情報処
理装置において、 (1)変換要求された仮想アドレスが複数オペランド使
用命令のオペランドにかかる仮想アドレスであるか否か
を判断する手段と、 この手段により複数オペランド使用命令のオペランドに
かかる仮想アドレスと判断されることにより、そのオペ
ランドのオペランド番号に対応して予め割り当てられた
第1のTLBのエントリを索引するアドレスを生成する
手段とを含むアドレス変換機構。
The present invention solves the above-mentioned conventional drawbacks, and its purpose is to increase the hit rate of the first TLB as much as possible so that address translation can be performed at high speed. [Means for Solving the Problems] According to the present invention, the above object uses a TLB, which is a buffer that stores a pair of a corresponding virtual address and a real address, in order to quickly convert a virtual address to a real address. ,
Furthermore, in an information processing device in which this TLB is configured with a first TLB and a second TLB that is slower and has a larger capacity than this first TLB, (1) the virtual address requested for conversion becomes an operand of an instruction using multiple operands; means for determining whether or not the virtual address is such a virtual address; and means for generating an address for indexing an entry in a TLB.

(2)第1のTLBが少なくとも1つのレジスタと多エ
ントリのバッファとにより構成され、且つ、仮想アドレ
スの変換要求時に前記レジスタによるアドレス変換を行
って変換可能か否かを判断する手段と、 この手段の判断結果が変換可能を示すときは前記レジス
タによる変換結果を選択し、変換不可を示すときは前記
多エントリのバッファによる変換結果を選択する選択手
段と、 第1のTLBおよび第2のTLBによるアドレス変換不
成功時の仮想アドレスと実アドレスとの対および第2の
TLBによるアドレス変換成功時の仮想アドレスと実ア
ドレスとの対を前記レジスタに格納すると共に、、前記
レジスタに格納されていた内容をその仮想ページアドレ
スの下位のビットで定まる前記バンファのエントリに移
送する手段とを含むアドレス変換機構. (3)変換要求された仮想アドレスとこの仮想アドレス
がオペランド用か命令用かの区別とに基づいて第1のT
LBを索引するアドレスを生成する手段を含み、 第1のTLBを二分して一方をオペランドにかかる仮想
アドレスの変換用に、他方を命令にかかる仮想アドレス
の変換用に使用する構成を有するアドレス変換機構。
(2) means for the first TLB to be configured of at least one register and a multi-entry buffer, and for determining whether or not translation is possible by performing address translation using the register when a virtual address translation is requested; selection means for selecting the conversion result by the register when the judgment result of the means indicates that conversion is possible; and selecting the conversion result by the multi-entry buffer when the judgment result indicates that conversion is not possible; a first TLB and a second TLB; A pair of a virtual address and a real address when the address translation by the second TLB is unsuccessful and a pair of a virtual address and a real address when the address translation by the second TLB is successful are stored in the register, and an address translation mechanism including means for transferring contents to an entry of said bumper determined by the lower bits of the virtual page address. (3) The first T
Address translation includes means for generating an address that indexes an LB, and has a configuration in which the first TLB is divided into two and one is used for translating a virtual address related to an operand and the other is used for translating a virtual address related to an instruction. mechanism.

により、それぞれ達成される。Each is achieved by

〔作用〕[Effect]

前記(1)の構成を採用したアドレス変換機構において
は、仮想アドレスの変換要求時、変換要求された仮想ア
ドレスが複数オペランド使用命令のオペランドにかかる
仮想アドレスであると判断されると、そのオペランドの
オペランド番号に対応して予め割り当てられた第1のT
LBのエントリを索引するアドレスが生成される.従っ
て、複数オペランド使用命令の各オペランドのアドレス
変換用として第1のTLBのそれぞれ異なる領域が使用
されることになり、各オペランド間で第1のTLBの同
一エントリに対する競合が回避される。よって、第1の
TLBのヒット率が高められ複数オペランド使用命令実
行時におけるアドレス変換が高速に行われる。
In the address translation mechanism that adopts the configuration (1) above, when a virtual address translation request is made, if it is determined that the virtual address requested for translation is a virtual address related to an operand of an instruction using multiple operands, the address translation mechanism adopts the configuration (1) above. The first T assigned in advance corresponding to the operand number
An address that indexes the LB entry is generated. Therefore, different areas of the first TLB are used for address translation of each operand of an instruction using multiple operands, and conflict between operands for the same entry of the first TLB is avoided. Therefore, the hit rate of the first TLB is increased and address translation is performed at high speed when an instruction using multiple operands is executed.

前記(2)の構成を採用したアドレス変換機構において
は、アドレス変換要求時、第1のTLBの一部を構成す
るレジスタによるアドレス変換が行われて変換可能か否
か判断され、変換可能な場合はこのレジスタによる変換
結果が選択され、変換不可のときは第1のTLBの残り
の部分を構成する多エントリのバッファによる変換結果
が選択される. ここで、仮想アドレスの変換時、第1のTLBおよび第
2のTLBによるアドレス変換が不成功に終わると従来
と同様に主記憶上のアドレス変換テーブルを使ったアド
レス変換が行われるが、そのとき得られた仮想アドレス
と実アドレスとの対が前記レジスタに格納され、また第
1のTLBでアドレス変換不成功であったが第2のTL
Bでアドレス変換が成功した時にはその際の仮想アドレ
スと実アドレスとの対が前記レジスタに格納され、各々
前記レジスタに格納されていた元の内容はその仮想ペー
ジアドレスの下位のビノトで定まる八ソファのエントリ
に移送される.従って、第1のTLBは、バッファのエ
ントリ数にレジスタの個数分のエントリを追加したもの
となり、且つその追加されるエントリは最近使用された
仮想ページアドレスの下位のビノト(例えばパソファが
16エントリのときは下位4ビット)で定まる仮想アド
レス変換用として動的に使用される.よって、複数オペ
ランド使用命令の各オペランドの仮想ページアドレスの
下位のビットが同一となるように仮想アドレス空間が割
り付けられていても、それらオペランドのアドレス変換
用として第1のTLBのそれぞれ異なる領域が使用され
ることになり、各オペランド間で第1のTLBの同一エ
ントリに対する競合が回避され、第1のTLBのヒット
率が高められて複数オペランド使用命令実行時における
アドレス変換が高速に行われる. 前記(3)の構成を採用したアドレス変換機構において
は、仮想アドレスの変換要求時、変換要求された仮想ア
ドレスとこの仮想アドレスがオペランド用か命令用かの
区別とに基づいて第1のTLBを索引するアドレスが生
成される.即ち、第1のTLBを二分して一方をオペラ
ンドにかかる仮想アドレスの変換用に、他方を命令にか
かる仮想アドレスの変換用に使用してアドレス変換が行
われる為、オペランド用と命令用の仮想ページアドレス
が第1のTLBの同一エントリで競合することが回避で
き、第1のTLBのヒット率が高められてアドレス変換
が高速に行われる.〔実施例〕 次に、本発明の実施例について図面を参照して詳細に説
明する. 第1図は本発明の一実施例の要部ブロック図であり、第
1のTLBの周辺部分のみを示している.この実施例の
アドレス変換機構は、複数オペランド使用命令の実行時
における第1のTLBのヒント率を高め得るようにした
ものである.第1図に示すアドレス変更機構においては
、仮想アドレスがVAR 1に格納された際、同時にそ
の仮想アドレスが複数オペランド使用命令のオペランド
番号1のオペランドであれば2ビットの論理値「01J
が、オペランド番号2のオペランドであれば論理値「1
0」が、オペランド番号3のオペランドであれば論理値
rl IJが、そして複数オペランド使用命令のオペラ
ンドでなければ論理値「00」が、2ビットの信号線6
3を通して、オペランド番号格納用のレジスタ(以下O
PRと称す)60に格納されるようになっている,OP
R60(7)論理値ハ信号I!61.62によ#)OR
ゲート64とセレクタ67に伝達され、ORゲート64
はOPR60からの論理値に基づき仮想アドレスが複数
オペランド使用命令のオペランド番号1〜3のオペラン
ドであれば論理値lを信号線65に出力し、複数オペラ
ンド使用命令のオペランドでなければ論理値Oを信号線
65に出力し、パンファゲート66を通じてセレクタ6
7を制御すセレクタ67には、信号線31で取り出され
たVARI中の仮想ページアトレスの下位4ビノトと、
OPR60からの論理値とが人力されており、ORゲー
ト64の出力が論理値Oのときは信号線31で供給され
る仮想ページアドレスの下位4ビットを選択してアクセ
スアドレスとしてPTLB5に出力し、ORゲート64
の出力が論理値1のときは上位2ビットが論理値0とな
り下位2ビットがOPR6 0からの論理値となる合計
4ビットをアクセスアドレスとしてPTLB5に出力す
る.すなわち、第1のTLBであるPTLB5の索引ア
ドレスは複数オペランド使用命令でなければ第4図に示
した従来例と同一である仮想ページアドレスの下位4ビ
ットが使用され、複数オペランド使用命令であればOP
R6 0に格納されたオペランド番号に従う固定アドレ
スとなる.この固定アドレスは本実施例の場合オペラン
ド番号1〜3に対しPTLB5のエントリ1〜3を指示
するアドレスである。
In the address translation mechanism that adopts the configuration (2) above, when an address translation request is made, address translation is performed by a register that constitutes a part of the first TLB, and it is determined whether or not translation is possible. The conversion result from this register is selected, and when conversion is not possible, the conversion result from the multi-entry buffer forming the remaining part of the first TLB is selected. Here, when converting the virtual address, if the address conversion by the first TLB and the second TLB ends in failure, the address conversion is performed using the address conversion table in the main memory as in the past. The obtained pair of virtual address and real address is stored in the register, and if the address translation was unsuccessful in the first TLB, the second TLB
When address translation is successful in B, the pair of virtual address and real address at that time is stored in the register, and the original content stored in each register is determined by the lower bit of the virtual page address. will be moved to the entry. Therefore, the first TLB is the number of entries in the buffer plus the number of registers, and the added entries are the lower bits of the most recently used virtual page address (for example, Pasofa has 16 entries). It is used dynamically for virtual address translation determined by the lower 4 bits). Therefore, even if the virtual address space is allocated so that the lower bits of the virtual page address of each operand of an instruction using multiple operands are the same, different areas of the first TLB are used for address translation of those operands. As a result, conflicts between operands for the same entry in the first TLB are avoided, the hit rate of the first TLB is increased, and address translation is performed at high speed when an instruction using multiple operands is executed. In the address translation mechanism that adopts the configuration (3) above, when a virtual address translation request is made, the first TLB is executed based on the virtual address requested for translation and whether this virtual address is for an operand or an instruction. An address to index will be generated. In other words, address translation is performed by dividing the first TLB into two parts, using one for translating virtual addresses related to operands and the other for translating virtual addresses related to instructions. It is possible to avoid conflict between page addresses in the same entry of the first TLB, increase the hit rate of the first TLB, and perform address translation at high speed. [Example] Next, an example of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram of a main part of an embodiment of the present invention, showing only the peripheral portion of the first TLB. The address translation mechanism of this embodiment is designed to increase the hint rate of the first TLB when an instruction using multiple operands is executed. In the address change mechanism shown in FIG. 1, when a virtual address is stored in VAR 1, if the virtual address is the operand number 1 of an instruction using multiple operands, a 2-bit logical value "01J
is the operand with operand number 2, the logical value is “1”.
0" is the operand with operand number 3, the logic value rl IJ is the operand, and if it is not the operand of an instruction using multiple operands, the logic value "00" is the 2-bit signal line 6.
3, a register for storing the operand number (hereinafter O
(referred to as PR) 60, OP
R60 (7) Logical value C signal I! 61.62 #)OR
It is transmitted to the gate 64 and the selector 67, and the OR gate 64
Based on the logical value from the OPR 60, if the virtual address is an operand with operand numbers 1 to 3 of an instruction using multiple operands, outputs a logical value l to the signal line 65, and if it is not an operand of an instruction using multiple operands, outputs a logical value O. It is output to the signal line 65 and sent to the selector 6 through the amplifier gate 66.
7, the lower 4 bits of the virtual page address in VARI taken out by the signal line 31,
The logic value from the OPR 60 is input manually, and when the output of the OR gate 64 is a logic value O, the lower 4 bits of the virtual page address supplied via the signal line 31 are selected and output to the PTLB 5 as an access address. OR gate 64
When the output is a logical value 1, the upper 2 bits are a logical value 0 and the lower 2 bits are a logical value from OPR60, which outputs a total of 4 bits as an access address to the PTLB5. That is, for the index address of PTLB5, which is the first TLB, the lower 4 bits of the virtual page address, which is the same as the conventional example shown in FIG. 4, are used unless the instruction uses multiple operands; OP
This is a fixed address according to the operand number stored in R60. In this embodiment, this fixed address is an address that indicates entries 1 to 3 of PTLB5 for operand numbers 1 to 3.

PTLB5の索引アドレスの他に第4図の従来例との相
違点は、比較器9では、信号線68により供給されるV
AR l中の仮想ページアドレスの全ビノトとPTLB
5から信号線35に出力された仮想ページアドレスの全
ピントとを比較していることである。比較対象が全ビッ
トになる理由は、例えば複数オペランド使用命令のオペ
ランド番号1のオペランドで使用したPTLB5のエン
トリ1は、複数オペランド使用命令でない場合に期待さ
れる仮想ページアドレスの下位4ビットが論理値r00
01Jでないからである。その他の論理については第4
図の論理と同しであるため第1図より省略している。
In addition to the index address of PTLB 5, the difference from the conventional example shown in FIG.
All binotos and PTLB of virtual page addresses in AR l
5 to the signal line 35 are compared with all the virtual page addresses output from the signal line 35. The reason why all bits are compared is that, for example, in entry 1 of PTLB5 used in the operand number 1 of an instruction using multiple operands, the lower 4 bits of the virtual page address expected when the instruction does not use multiple operands are logical values. r00
This is because it is not 01J. For other logic, please refer to the 4th section.
It is omitted from FIG. 1 because it is the same as the logic shown in the figure.

このように本実施例のアドレス変換機構では、複数オペ
ランド使用命令の各オペランドに対し第1のTLBであ
るPTLB5のそれぞれ異なる固定領域を割り当ててい
るので、各オペランドが第1のTLBの同一エントリを
使用することがなくなる。即ち、各オペランド間で第1
のTLBの同一エントリに対する競合を回避できるため
、複数オペランド使用命令実行時におけるアドレス変換
速度が向上する. 第2図は本発明の別の実施例の要部ブロック図であり、
やはり第1のTLBの周辺部分のみを示している.この
実施例のアドレス変換機構は、主として複数オペランド
使用命令の実行時における第1のTLBのヒット率を高
め得るようにしたものである。
In this way, in the address translation mechanism of this embodiment, different fixed areas of the first TLB, PTLB5, are allocated to each operand of an instruction using multiple operands, so that each operand uses the same entry of the first TLB. It will no longer be used. That is, the first
Since conflicts for the same TLB entry can be avoided, the address translation speed when executing instructions using multiple operands is improved. FIG. 2 is a block diagram of main parts of another embodiment of the present invention,
Again, only the peripheral portion of the first TLB is shown. The address translation mechanism of this embodiment is mainly designed to increase the hit rate of the first TLB when an instruction using multiple operands is executed.

第2図において、70は、仮想ページアドレスの全ビッ
トとこの仮想ページアドレスのアドレス変換後の実ペー
ジアドレスの全ビットとの対を格納するレジスタ(以下
ATRと称す)であり、第1のTLBの一部を構成して
いる。即ち、本実施例のアドレス変換機構では、第1の
TLBは、第4図の従来例と同一構成の16エントリの
PTLB5とlエントリのATR70との合計17エン
トリで構成されている. ATR70を使ったアドレス変換は、VAR 1に保持
された仮想ページアドレスの全ビットを信号線73によ
り取り出すと共にATR70に保持された仮想ページア
ドレスの全ビノトを信号線7lにより取り出し、それら
を比較器74で比較し、一敗すればATR70に格納さ
れている実ページアドレスの全ビノトを取り出している
信号線72をセレクタ77で選択することで行われる。
In FIG. 2, 70 is a register (hereinafter referred to as ATR) that stores pairs of all bits of a virtual page address and all bits of a real page address after address conversion of this virtual page address, and constitutes part of. That is, in the address translation mechanism of this embodiment, the first TLB is composed of a total of 17 entries, including the 16-entry PTLB 5 and the 1-entry ATR 70, which have the same configuration as the conventional example shown in FIG. Address conversion using the ATR 70 involves taking out all bits of the virtual page address held in VAR 1 via the signal line 73, taking out all bits of the virtual page address held in the ATR 70 via the signal line 7l, and converting them to the comparator 74. If there is a loss, the selector 77 selects the signal line 72 from which all bits of the real page address stored in the ATR 70 are taken out.

また、比較器74の比較結果が不一致のとき、セレクタ
77は、信号線36を通してPTLB5から出力された
実ページアドレスを選択する。セレクタ77の出力は第
1のTLBにおける実ページアドレスとして信号線36
を通じて第4図のセレクタ17に供給される。また、O
Rゲート79は比較器74から信号線75に出力される
ATR70によるアドレス変換成功,不成功を示す信号
と、比較器84から信号線78に出力されるPTLB5
によるアドレス変換成功,不成功を示す信号との論理和
をとり、その結果を信号線41.42により第4図のア
ンドゲート28,27へ出力する.このORゲート79
の出力は第1のTLBにおいてアドレス変換が成功した
か否かを示し、成功した場合にはセレクタ77の出力を
取り出す信号線36上の実ページアドレスが正しい実ペ
ージアドレスとして使用される。
Further, when the comparison result of the comparator 74 is a mismatch, the selector 77 selects the real page address output from the PTLB 5 through the signal line 36. The output of the selector 77 is sent to the signal line 36 as a real page address in the first TLB.
is supplied to the selector 17 in FIG. Also, O
The R gate 79 receives a signal indicating success or failure of address conversion by the ATR 70 outputted from the comparator 74 to the signal line 75, and a signal outputted from the comparator 84 to the signal line 78, PTLB5.
A logical OR is performed with a signal indicating success or failure of address conversion by , and the result is output to AND gates 28 and 27 in FIG. 4 via signal lines 41 and 42. This OR gate 79
The output indicates whether or not the address conversion was successful in the first TLB. If successful, the real page address on the signal line 36 from which the output of the selector 77 is taken out is used as the correct real page address.

ATR70によるアドレス変換成功かどうかの判断時間
すなわち比較器74のディレイタイムは比較的短いため
、ATR70,比較器74,セlzクタ77,ORゲー
ト79を導入しても、第4図に示すPTLB5の出力に
つながる信号線36と第2図に示すセレクタ77の出力
につながる信号線36とに実ページアドレスが現れる時
間は殆どかわらない。
Since the time required to determine whether or not the address conversion is successful by the ATR 70, that is, the delay time of the comparator 74, is relatively short, even if the ATR 70, the comparator 74, the selector 77, and the OR gate 79 are introduced, the PTLB 5 shown in FIG. The times at which the real page address appears on the signal line 36 connected to the output and the signal line 36 connected to the output of the selector 77 shown in FIG. 2 are almost the same.

ATR70とPTLB5とによるアドレス変換すなわち
第1のTLBによるアドレス変換の成功時には、ATR
70,PTLB5の内容は不変だが、第1のTLBおよ
び第2のTLBによるアドレス変換不成功時は主記憶上
のアドレス変換テーブルを使ったアドレス変換が行われ
、得られた仮想ページアドレスと実ページアドレスとの
対が信号線83によって書替回路80に与えられ、信号
線84を通じてATR70へ格納される。同時に書替回
路80により、ATR70に格納されていた元の内容が
信号線8lで取り出されてその仮想ページアドレスの下
位4ビ,トで定まるPTLB5のエントリへ信号線82
を通じて移送される。
When the address translation by ATR70 and PTLB5, that is, the address translation by the first TLB, is successful, the ATR
70, The contents of PTLB5 remain unchanged, but if address translation by the first TLB and second TLB fails, address translation is performed using the address translation table in main memory, and the obtained virtual page address and real page A pair with the address is given to the rewrite circuit 80 via a signal line 83 and stored in the ATR 70 via a signal line 84. At the same time, the rewriting circuit 80 extracts the original contents stored in the ATR 70 via a signal line 8l and sends it to the entry in the PTLB 5 determined by the lower 4 bits of the virtual page address via a signal line 82.
Transported through.

また、第1のTLBでアドレス変換が失敗したが第2の
TLBでアドレス変換が成功した場合には、その成功に
かかる仮想ページアドレスと実ページアドレスとの対が
信号線83によって書替回路80に与えられ、信号線8
4を通じてATR70へ格納されると共に、ATR70
に格納されていた元の内容が信号線81で取り出されて
その仮想ページアドレスの下位4ビットで定まるPTL
B5のエントリへ信号線82を通じて移送される.すな
わち、仮想ページアドレスの下位4ビットで定まるPT
LB5のエントリに対し1つだけエントリが動的に追加
されることになる.また、ATR70と同様にレジスタ
をもう一つ追加すると2エントリが追加されることにな
る.従って、アドレス変換用のレジスタを追加すると高
速性を損なわずして第1のTLBのレベル数を追加でき
ることになる。
In addition, when address translation fails in the first TLB but succeeds in address translation in the second TLB, the pair of virtual page address and real page address related to the success is sent to the rewriting circuit 80 via the signal line 83. and signal line 8
4 to the ATR 70, and the ATR 70
The original contents stored in the PTL are retrieved via the signal line 81 and determined by the lower 4 bits of the virtual page address.
It is transferred to the entry of B5 via the signal line 82. In other words, PT determined by the lower 4 bits of the virtual page address
Only one entry will be dynamically added to the entry in LB5. Also, like the ATR70, if one more register is added, two entries will be added. Therefore, by adding a register for address translation, the number of levels of the first TLB can be added without impairing high speed.

このように第2図の実施例では、仮想ページアドレスと
実ページアドレスとの対を格納したレジスタを第1のT
LBに追加することにより、従来第1のTLBの同一エ
ントリで競合する複数オペランド使用命令に対しても競
合を回避することができる.よって、複数オペランド使
用命令の各オペランドに対するアドレス変換性能の低下
が回避でき、性能を高めることが可能となる。なお、こ
の実施例のアドレス変換機構はオペランド用と命令用の
仮想ページアドレスが第1のTLBの同一エントリに競
合することも防止できる。
In this way, in the embodiment shown in FIG. 2, the register storing the pair of virtual page address and real page address is stored in the first T
By adding it to the LB, it is possible to avoid conflicts even with instructions that use multiple operands, which conventionally conflict in the same entry of the first TLB. Therefore, deterioration in address translation performance for each operand of an instruction using multiple operands can be avoided, and performance can be improved. Note that the address translation mechanism of this embodiment can also prevent virtual page addresses for operands and instructions from conflicting with the same entry in the first TLB.

第3図は本発明の更に別の実施例の要部ブロック図であ
り、やはり第1のTLBの周辺部分のみを示している。
FIG. 3 is a block diagram of a main part of yet another embodiment of the present invention, again showing only the peripheral portion of the first TLB.

この実施例のアドレス変換機構は、オペランド用と命令
用の仮想ページアドレスが第1のTLBの同一エントリ
に競合することを防止したものである。
The address translation mechanism of this embodiment prevents virtual page addresses for operands and instructions from competing with each other for the same entry in the first TLB.

第3図に示すアドレス変更機構においては、仮想アドレ
スがVAR 1に格納された際、同時にその仮想アドレ
スが命令読み出しにかかるものである場合に論理値1が
、オペラント読み出しにかかるものである場合に論理値
Oが、信号線96によって命令フェンチ指示F/F 9
 0へ格納される。
In the address change mechanism shown in FIG. 3, when a virtual address is stored in VAR 1, if the virtual address is associated with an instruction read, a logical value of 1 is set, and if the virtual address is associated with an operant read. Logic value O indicates command fetch instruction F/F through signal line 96.
Stored to 0.

この命令フェッチ指示F/F 9 0の出力は合成器9
4に加えられ、合成器94は命令フェンチ指示F/F 
9 0の出力を最上位ビット,VARIの仮想ヘージア
ドレスの下位3ビットをその下位ピントとする合計4ビ
ットの索引用アドレスを生成し、信号線93を介してそ
の索引用アドレスで第1のTLBであるPTLB5を索
引する。すなわち、本実施例ではl6エントリのPTL
B5は上位8エントリがオペランド用,下位8エントリ
が命令用に分割して使用される。
The output of this instruction fetch instruction F/F 90 is the synthesizer 9
4, and the synthesizer 94 is added to the command fetch instruction F/F.
9. Generates a total of 4-bit index address with the output of 0 as the most significant bit and the lower 3 bits of the virtual hedge address of VARI as its lower pinpoint, and sends the index address to the first TLB via signal line 93 PTLB5 is indexed. That is, in this embodiment, the PTL of l6 entry is
B5 is divided and used, with the upper 8 entries for operands and the lower 8 entries for instructions.

PTLB5の索引アドレスの他に第4図の従来例との相
違は、比較器9における比較対象ビット数が1増え、信
号線95により供給されるVARl中の仮想ページアド
レスのビット0〜20とPTLB5から信号線35に出
力された仮想ページアドレスのビットO〜20とを比較
していることであり、その他の論理は第4図と同一であ
るため第3図より省略している。
In addition to the index address of PTLB5, the difference from the conventional example shown in FIG. Bits 0 to 20 of the virtual page address outputted to the signal line 35 are compared, and the other logic is the same as that in FIG. 4, so it is omitted from FIG. 3.

このように、本実施例では、命令フェンチ指示を第1の
TLBへの索引アドレスに加味して第1のTLBのエン
トリをオペランド用と命令用とに分割して使用するため
、オペランド用と命令用の仮想ページアドレスが第1の
TLBの同一エントリで競合することが回避でき、オペ
ランド読み出しと命令読み出しの競合によるアドレス変
換性能の低下を防止することができる。
In this way, in this embodiment, since the instruction fetch instruction is added to the index address to the first TLB and the entries in the first TLB are divided and used for operands and instructions, It is possible to avoid conflict between the virtual page addresses for the same entry in the first TLB, and it is possible to prevent address translation performance from deteriorating due to conflict between operand read and instruction read.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、本発明によれば、第1のTLBの
ヒット率を極力高めることができ、アドレス変換を高速
に行うことが可能となる.特に、変換要求された仮想ア
ドレスが複数オペランド使用命令のオペランドにかかる
仮想アドレスであるときにそのオペランドのオペランド
番号に対応して予め割り当てられた第1のTLBのエン
トリを索引するアドレスを生成する構成のアドレス変換
機構では、複数オペランド使用命令実行時における第1
のTLBのヒット率を向上でき、複数オペランド使用命
令にかかるアドレス変換を高速に実行することができる
As explained above, according to the present invention, the hit rate of the first TLB can be increased as much as possible, and address translation can be performed at high speed. In particular, when the virtual address requested for conversion is a virtual address related to an operand of an instruction using multiple operands, an address is generated that indexes the entry of the first TLB previously allocated in correspondence with the operand number of the operand. In the address translation mechanism, the first
The hit rate of the TLB can be improved, and address translation for instructions using multiple operands can be executed at high speed.

また、第1のTLBを少なくとも1つのレジスタと多エ
ントリのハンファとにより構成したアドレス変換機構に
よれば、複数オペランド使用命令実行時における第1の
TLBのヒント率を向上することができる他、オペラン
ド用と命令用の仮想ページアドレスが第1のTLBの同
一エントリに競合することも回避できる。
Further, according to the address translation mechanism in which the first TLB is configured with at least one register and a multi-entry Hanwha, it is possible to improve the hint rate of the first TLB when executing an instruction using multiple operands, and It is also possible to avoid conflicting virtual page addresses for use and instruction with the same entry in the first TLB.

更に、第1のTLBを二分して一方をオペランドにかか
る仮想アドレスの変換用に、他方を命令にかかる仮想ア
ドレスの変換用に使用するアドレス変換機構では、オペ
ランド用と命令用の仮想ページアドレスが第1のTLB
の同一エントリに競合することが回避できる。従って、
オペランド読み出しと命令読み出しの競合によるアドレ
ス変換の性能低下を防止でき、アドレス変換の高速化が
可能となる。
Furthermore, in an address translation mechanism in which the first TLB is divided into two parts and one is used for translating virtual addresses associated with operands and the other is used for translating virtual addresses associated with instructions, the virtual page addresses for operands and instructions are divided into two. first TLB
Conflicts for the same entry can be avoided. Therefore,
It is possible to prevent address translation performance from deteriorating due to conflict between operand reading and instruction reading, and it is possible to speed up address translation.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例の要部プロソク図、第2図は
本発明の別の実施例の要部ブロンク図、第3図は本発明
の更に別の実施例の要部ブロノク図、 第4図は従来のアドレス変換機構のブロック図および、 第5図は仮想ア}゛レスと実アドレスの形式を示す図で
ある. 図において、 1・・・変換要求された仮想アドレスを保持するレジス
タ(VAR) 5・・・第1のTLBを構成する多エントリのバッファ
(PTLB) 9,84・・・PTLB5によるアドレス変換成功,不
成功を判断する比較器 60・・・オペランド番号が格納されるレジスタ(OP
R) 64・・・変換要求された仮想アドレスが複数オペラン
ド使用命令の各オペランドにかかる仮想アドレスか否か
を判断するORゲート 66・・・バッファゲート 6 7 7 7 7 7・・・PTLB5の索引アドレスを生成するセレクタ 0・・・第1のTLBの一部を構成するレジスタ(AT
R) 4・・・レジスタ70によるアドレス変換成功.不成功
を判断する比較器 7・・・レジスタTo,PTLB5による変換結果の何
れか一方を選択するセレクタ
FIG. 1 is a block diagram of the main part of one embodiment of the present invention, FIG. 2 is a block diagram of the main part of another embodiment of the invention, and FIG. 3 is a block diagram of the main part of yet another embodiment of the invention. , Figure 4 is a block diagram of a conventional address translation mechanism, and Figure 5 is a diagram showing the formats of virtual addresses and real addresses. In the figure, 1...Register (VAR) that holds the virtual address requested for conversion.5...Multi-entry buffer (PTLB) constituting the first TLB.9,84...Successful address conversion by PTLB5. Comparator 60 for determining failure...Register (OP
R) 64...OR gate that determines whether the virtual address requested for conversion is a virtual address related to each operand of an instruction using multiple operands 66...Buffer gate 6 7 7 7 7 7... Index of PTLB5 Selector 0 that generates an address...Register (AT
R) 4...Successful address conversion by register 70. Comparator 7 for determining failure...Selector for selecting either one of the conversion results by register To or PTLB5

Claims (3)

【特許請求の範囲】[Claims] (1)仮想アドレスを実アドレスに高速変換するため対
応する仮想アドレスと実アドレスとの対を記憶するバッ
ファであるTLBを使用し、更に該TLBを第1のTL
Bと該第1のTLBより低速かつ大容量の第2のTLB
とにより構成した情報処理装置において、 変換要求された仮想アドレスが複数オペランド使用命令
のオペランドにかかる仮想アドレスであるか否かを判断
する手段と、 該手段により複数オペランド使用命令のオペランドにか
かる仮想アドレスと判断されることにより、そのオペラ
ンドのオペランド番号に対応して予め割り当てられた第
1のTLBのエントリを索引するアドレスを生成する手
段とを含むことを特徴とするアドレス変換機構。
(1) In order to convert a virtual address into a real address at high speed, a TLB which is a buffer that stores a pair of a corresponding virtual address and a real address is used, and the TLB is further converted into a first TL.
B and a second TLB that is slower and has a larger capacity than the first TLB.
In an information processing device configured by: means for determining whether or not a virtual address requested for conversion is a virtual address pertaining to an operand of an instruction using multiple operands; 1. An address translation mechanism comprising means for generating an address that indexes an entry in a first TLB allocated in advance corresponding to the operand number of the operand.
(2)仮想アドレスを実アドレスに高速変換するため対
応する仮想アドレスと実アドレスとの対を記憶するバッ
ファであるTLBを使用し、更に該TLBを第1のTL
Bと該第1のTLBより低速かつ大容量の第2のTLB
とにより構成した情報処理装置において、 第1のTLBが少なくとも1つのレジスタと多エントリ
のバッファとにより構成され、且つ、仮想アドレスの変
換要求時に前記レジスタによるアドレス変換を行って変
換可能か否かを判断する手段と、 該手段の判断結果が変換可能を示すときは前記レジスタ
による変換結果を選択し、変換不可を示すときは前記多
エントリのバッファによる変換結果を選択する選択手段
と、 第1のTLBおよび第2のTLBによるアドレス変換不
成功時の仮想アドレスと実アドレスとの対および第2の
TLBによるアドレス変換成功時の仮想アドレスと実ア
ドレスとの対を前記レジスタに格納すると共に、前記レ
ジスタに格納されていた内容をその仮想ページアドレス
の下位のビットで定まる前記バッファのエントリに移送
する手段とを含むことを特徴とするアドレス変換機構。
(2) In order to convert a virtual address into a real address at high speed, a TLB, which is a buffer that stores a pair of a corresponding virtual address and a real address, is used, and the TLB is further converted into a first TL.
B and a second TLB that is slower and has a larger capacity than the first TLB.
In the information processing device configured as above, the first TLB is configured with at least one register and a multi-entry buffer, and when a virtual address conversion request is made, address conversion is performed using the register to determine whether or not the conversion is possible. a means for determining; a selection means for selecting the conversion result from the register when the judgment result of the means indicates that conversion is possible; and selecting the conversion result from the multi-entry buffer when the judgment result indicates that conversion is not possible; A pair of a virtual address and a real address when the address translation by the TLB and the second TLB fails and a pair of a virtual address and a real address when the address translation by the second TLB is successful are stored in the register, and an address translation mechanism, comprising means for transferring contents stored in the virtual page address to an entry of the buffer determined by the lower bits of the virtual page address.
(3)仮想アドレスを実アドレスに高速変換するため対
応する仮想アドレスと実アドレスとの対を記憶するバッ
ファであるTLBを使用し、更に該TLBを第1のTL
Bと該第1のTLBより低速かつ大容量の第2のTLB
とにより構成した情報処理装置において、 変換要求された仮想アドレスと該仮想アドレスがオペラ
ンド用か命令用かの区別とに基づいて第1のTLBを索
引するアドレスを生成する手段を含み、 第1のTLBを二分して一方をオペランドにかかる仮想
アドレスの変換用に、他方を命令にかかる仮想アドレス
の変換用に使用する構成としたことを特徴とするアドレ
ス変換機構。
(3) In order to convert a virtual address into a real address at high speed, a TLB, which is a buffer that stores a pair of a corresponding virtual address and a real address, is used, and the TLB is further converted into a first TL.
B and a second TLB that is slower and has a larger capacity than the first TLB.
an information processing device configured with the above, comprising means for generating an address for indexing a first TLB based on a virtual address requested for conversion and a distinction as to whether the virtual address is for an operand or an instruction; 1. An address translation mechanism characterized in that a TLB is divided into two parts, one of which is used for translating virtual addresses associated with operands, and the other used for translating virtual addresses associated with instructions.
JP2014182A 1990-01-24 1990-01-24 Address translation mechanism Expired - Fee Related JP2586160B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014182A JP2586160B2 (en) 1990-01-24 1990-01-24 Address translation mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014182A JP2586160B2 (en) 1990-01-24 1990-01-24 Address translation mechanism

Publications (2)

Publication Number Publication Date
JPH03218546A true JPH03218546A (en) 1991-09-26
JP2586160B2 JP2586160B2 (en) 1997-02-26

Family

ID=11853995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014182A Expired - Fee Related JP2586160B2 (en) 1990-01-24 1990-01-24 Address translation mechanism

Country Status (1)

Country Link
JP (1) JP2586160B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216763A (en) * 1992-02-03 1993-08-27 Pfu Ltd Address translation system using two-stage tlb
US6553477B1 (en) 2000-11-06 2003-04-22 Fujitsu Limited Microprocessor and address translation method for microprocessor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5661083A (en) * 1979-10-24 1981-05-26 Fujitsu Ltd Tlb partition system
JPS5782269A (en) * 1980-11-11 1982-05-22 Fujitsu Ltd Tlb control system
JPS5996587A (en) * 1982-11-25 1984-06-04 Nec Corp Data processing device
JPS63168752A (en) * 1987-01-07 1988-07-12 Nippon Telegr & Teleph Corp <Ntt> Address conversion buffer control system
JPH01226056A (en) * 1988-03-04 1989-09-08 Nec Corp Address converter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5661083A (en) * 1979-10-24 1981-05-26 Fujitsu Ltd Tlb partition system
JPS5782269A (en) * 1980-11-11 1982-05-22 Fujitsu Ltd Tlb control system
JPS5996587A (en) * 1982-11-25 1984-06-04 Nec Corp Data processing device
JPS63168752A (en) * 1987-01-07 1988-07-12 Nippon Telegr & Teleph Corp <Ntt> Address conversion buffer control system
JPH01226056A (en) * 1988-03-04 1989-09-08 Nec Corp Address converter

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216763A (en) * 1992-02-03 1993-08-27 Pfu Ltd Address translation system using two-stage tlb
US6553477B1 (en) 2000-11-06 2003-04-22 Fujitsu Limited Microprocessor and address translation method for microprocessor

Also Published As

Publication number Publication date
JP2586160B2 (en) 1997-02-26

Similar Documents

Publication Publication Date Title
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5282274A (en) Translation of multiple virtual pages upon a TLB miss
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
JP3666689B2 (en) Virtual address translation method
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
US4991088A (en) Method for optimizing utilization of a cache memory
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
JP2603476B2 (en) Data retrieval method
EP0019358B1 (en) Hierarchical data storage system
US4550367A (en) Data processing system having hierarchical memories
KR960001945B1 (en) Apparatus for increasing the number of hits in a translation
US5313602A (en) Multiprocessor system and method of control over order of transfer of data between buffer storages
US4942521A (en) Microprocessor with a cache memory in which validity flags for first and second data areas are simultaneously readable
JP2768503B2 (en) Virtual memory address space access control method
US5414821A (en) Method of and apparatus for rapidly loading addressing environment by checking and loading multiple registers using a specialized instruction
JPH04308953A (en) Virtual address computer system
JP3190700B2 (en) Address translator
JPH03218546A (en) Address conversion mechanism
US4424564A (en) Data processing system providing dual storage of reference bits
KR920005296B1 (en) Information processing device
JPH01226056A (en) Address converter
JPS5858752B2 (en) address translation device
CN116841922A (en) TLB page table entry management method
JPH11296431A (en) Information processor and mapping method for cache memory
JP3204098B2 (en) Dynamic address decode cache control method

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees