JPH08137756A - アドレス変換バッファ機構 - Google Patents

アドレス変換バッファ機構

Info

Publication number
JPH08137756A
JPH08137756A JP6272368A JP27236894A JPH08137756A JP H08137756 A JPH08137756 A JP H08137756A JP 6272368 A JP6272368 A JP 6272368A JP 27236894 A JP27236894 A JP 27236894A JP H08137756 A JPH08137756 A JP H08137756A
Authority
JP
Japan
Prior art keywords
address translation
request
address
buffer
instruction
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.)
Pending
Application number
JP6272368A
Other languages
English (en)
Inventor
Hiroaki Tomita
浩明 冨田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP6272368A priority Critical patent/JPH08137756A/ja
Publication of JPH08137756A publication Critical patent/JPH08137756A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 2つのアドレス変換バッファを用い、命令と
データのアドレス変換リクエストを並列に処理でき、2
つのアドレス変換バッファのエントリ数の合計を小さく
し、かつ、ヒット率の大きなアドレス変換バッファ機構
を提供する。 【構成】 小容量のmTLB1と、mTLB2より大容
量のgTLB2を設け、並列動作可能に構成されてい
る。命令用アドレス変換リクエストのみ受け付けた場
合、そのリクエストに対してmTLB1とgTLB2で
並行してアドレス変換を行ない、mTLB1のミスヒッ
ト時には、gTLB2を参照する。そして、gTLB2
のヒット時にgTLB2から得たアドレス変換情報がm
TLB1に登録される。また、データ用アドレス変換リ
クエストのみ受け付けた場合はgTLB2のみにてアド
レス変換を行ない、ミスヒット時にmTLB1への登録
は行なわない。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想記憶方式の計算機
システムに設けられ、仮想アドレスを高速に物理アドレ
スに変換するためのアドレス変換バッファ機構に関する
ものである。
【0002】
【従来の技術】仮想アドレスを物理アドレス(実アドレ
ス)に変換するアドレス変換は、仮想記憶方式の計算機
システムを実現するための必須の技術となっている。こ
のようなアドレス変換を高速に行なうための機構とし
て、仮想アドレスタグと物理アドレスの対を含むアドレ
ス変換情報が登録されるエントリを1つもしくは複数持
つアドレス変換バッファ(TLB:Translati
on LookasideBuffer)が知られてい
る。
【0003】従来、アドレス変換バッファは1つ設けら
れ、仮想命令アドレスと仮想データアドレスの変換に共
通に用いるのが一般的であった。今日広く利用されてい
るRISCタイプのCPUでは、1クロックサイクルに
つき1命令を実行できるため、毎クロックサイクル命令
フェッチを必要とする。また、命令の約25%はデータ
をアクセスするロード命令あるいはストア命令である。
したがって、1クロックサイクルあたり平均1.25回
のアドレス変換を必要とする。そのため、アドレス変換
バッファを1個のみ設けた場合には、仮想命令アドレス
と仮想データアドレスの変換を同時に並行して行なうこ
とができないので、アドレス変換を行なうためのCPU
の余分な待ちサイクルの挿入が必要となり、計算機シス
テムの性能を低下させていた。
【0004】この問題を解決するために、命令アドレス
変換用のアドレス変換バッファとデータアドレス変換用
のアドレス変換バッファをそれぞれ設けることが考えら
れていた。しかし、命令アドレスのワーキングセットと
データアドレスのワーキングセットの大きさは、取り扱
うプログラムやデータによって著しく異なるので、それ
ぞれに用意したアドレス変換バッファを有効に利用でき
ないという問題が発生する。つまり、どちらか一方のア
ドレス変換バッファのエントリに余裕があっても、他方
のアドレス変換バッファのエントリが不足気味となる
と、ミスヒットが増大する。ミスヒットすると、主記憶
手段上にあるアドレス変換テーブルをたどってアドレス
変換情報を得るという時間のかかる処理を行なわなけれ
ばならず、計算機システムの性能を低下させる原因とな
っていた。また、2つのアドレス変換バッファに十分な
数のエントリを用意するとなると、アドレス変換バッフ
ァの物理的大きさが大きくなりすぎるという問題が発生
する。この問題はCPUとアドレス変換機構を同一のL
SIチップ上に集積しようとするときに重要な問題とな
る。
【0005】このような問題を解決するために、命令ア
ドレス変換専用の第1のアドレス変換バッファと、第1
のアドレス変換バッファよりも大容量であって、命令ア
ドレスとデータアドレスとで共用する第2のアドレス変
換バッファを用いる方式が知られている。例えば、J.
Bradlet Chen,Anita Borg,
and Norman P. Jouppi,“A S
imulationBased Study of T
LB Performance”,The19’th
International Symposium o
n Computer Architecture,
P.114−123,1992等に記載されている。こ
の方式は、仮想データアドレスのアドレス変換を第2の
アドレス変換バッファで行ない、仮想命令アドレスのア
ドレス変換については、まず第1のアドレス変換バッフ
ァで行ない、そこでミスヒットした場合は第2のアドレ
ス変換バッファでアドレス変換を行なうものである。上
述の文献が示すように、この方式を有効に作用させるた
めには第1のアドレス変換バッファのエントリ数を4以
上にしなければならない。
【0006】別の解決方法としては、例えば、特開平5
−46481号公報に開示されている技術がある。この
技術においても、第1のアドレス変換バッファと、より
大容量の第2のアドレス変換バッファを用いる。この技
術では、仮想命令アドレスのアドレス変換と仮想データ
アドレスのアドレス変換の区別をしないため、命令のワ
ーキングセットとデータのワーキングセットのどちらか
一方が大きいと、双方のアドレス変換バッファ共にワー
キングセットの大きい方のエントリで全て占められてし
まうことがある。ここで、ワーキングセットとは、それ
までに参照した仮想アドレスの集合を示す。
【0007】このような状態となると、ワーキングセッ
トの小さい方のアドレス変換リクエストが発生するたび
にミスヒットし、主記憶手段上にあるアドレス変換テー
ブルから変換情報を得ることになって、計算機システム
の性能を低下させる。これを避けるためには第1のアド
レス変換バッファのエントリ数を比較的大きめに取る必
要があった。
【0008】以上述べたように、いずれの技術でも、ア
ドレス変換バッファの総エントリ数を小さくし、すなわ
ちアドレス変換バッファの物理的な大きさを小さくし、
かつ、ミスヒットを小さくするようなアドレス変換バッ
ファ機構を提供することはできなかった。
【0009】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、2つのアドレス変換バッフ
ァを用い、命令とデータのアドレス変換リクエストを並
列に処理でき、しかも、2つのアドレス変換バッファの
エントリ数の合計を小さくし、かつ、ヒット率の大きな
アドレス変換バッファ機構を提供することを目的とする
ものである。
【0010】
【課題を解決するための手段】本発明は、請求項1に記
載の発明においては、仮想アドレスを高速に物理アドレ
スに変換するための第1および第2のアドレス変換バッ
ファを具備し、前記第1および第2のアドレス変換バッ
ファを並列に動作させて命令とデータに関するアドレス
変換リクエストを並列に処理するようにしたアドレス変
換バッファ機構において、最新の命令アドレス変換リク
エストに対応するアドレス変換情報が前記第1および第
2のアドレス変換バッファのいずれにも存在するように
制御するとともに最新のデータアドレス変換リクエスト
に対応するアドレス変換情報が前記第2のアドレス変換
バッファのみに存在するように制御する制御手段を有
し、さらに該制御手段は、命令アドレス変換リクエスト
のみ受け付けた場合は、前記第1および第2のアドレス
変換バッファでアドレス変換を行なわせ、前記第1のア
ドレス変換バッファのミスヒット時には前記第2のアド
レス変換バッファから得たアドレス変換情報を前記第1
のアドレス変換バッファに登録し、さらに、少なくとも
一方のアドレス変換バッファにてヒットしたならばアド
レス変換はヒットしたものとし、データアドレス変換リ
クエストのみ受け付けた場合は、前記第2のアドレス変
換バッファでアドレス変換を行なわせ、前記第2のアド
レス変換バッファから得たアドレス変換情報を前記第1
のアドレス変換バッファに登録しないように制御するこ
とを特徴とするものである。
【0011】請求項2に記載の発明においては、仮想ア
ドレスを高速に物理アドレスに変換するための第1およ
び第2のアドレス変換バッファを具備し、前記第1およ
び第2のアドレス変換バッファを並列に動作させて命令
アドレス変換リクエストあるいはデータアドレス変換リ
クエストを並列に処理するようにしたアドレス変換バッ
ファ機構において、最新の命令アドレス変換リクエスト
に対応するアドレス変換情報が前記第1および第2のア
ドレス変換バッファのいずれにも存在するように制御す
るとともに最新のデータアドレス変換リクエストに対応
するアドレス変換情報が前記第2のアドレス変換バッフ
ァのみに存在するように制御する制御手段を有し、さら
に該制御手段は、命令アドレス変換リクエストのみ受け
付けた場合は、前記第1および第2のアドレス変換バッ
ファでアドレス変換を行なわせ、前記第2のアドレス変
換バッファのヒット時には前記第2のアドレス変換バッ
ファから得たアドレス変換情報を前記第1のアドレス変
換バッファに登録し、さらに、少なくとも一方のアドレ
ス変換バッファにてヒットしたならばアドレス変換はヒ
ットしたものとし、データアドレス変換リクエストのみ
受け付けた場合は、前記第2のアドレス変換バッファで
アドレス変換を行なわせ、前記第2のアドレス変換バッ
ファから得たアドレス変換情報を前記第1のアドレス変
換バッファに登録しないように制御することを特徴とす
るものである。
【0012】請求項3に記載の発明においては、請求項
1または2に記載のアドレス変換バッファ機構におい
て、前記制御手段は、前記第1および第2のアドレス変
換バッファで命令アドレス変換リクエストとデータアド
レス変換リクエストを並列に変換する場合は、前記命令
アドレス変換リクエストに対応するアドレス変換を前記
第1のアドレス変換バッファを用いて行ない、前記デー
タアドレス変換リクエストに対応するアドレス変換を前
記第2のアドレス変換バッファを用いて行なうように制
御することを特徴とするものである。
【0013】請求項4に記載の発明においては、請求項
3に記載のアドレス変換バッファ機構において、前記制
御手段は、前記第1および第2のアドレス変換バッファ
を用いて命令アドレス変換リクエストに対応するアドレ
ス変換とデータアドレス変換リクエストに対応するアド
レス変換を並列に行なった結果、前記第1のアドレス変
換バッファのみがミスヒットした場合には、該ミスヒッ
トとなったアドレス変換リクエストに対して前記第2の
アドレス変換バッファを用いてアドレス変換を行ない、
該アドレス変換がヒットした時には、該ヒットしたアド
レス変換情報を前記第1のアドレス変換バッファに登録
することを特徴とするものである。
【0014】請求項5に記載の発明においては、請求項
3に記載のアドレス変換バッファ機構において、前記制
御手段は、前記第1および第2のアドレス変換バッファ
を用いて命令アドレス変換リクエストに対応するアドレ
ス変換とデータアドレス変換リクエストに対応するアド
レス変換を並列に行なった結果、前記第1のアドレス変
換バッファのみがミスヒットした場合には、該ミスヒッ
トとなったアドレス変換リクエストに対して上記第2の
アドレス変換バッファを用いてアドレス変換を行ない、
該アドレス変換がミスヒットした時には、該ミスヒット
となった各アドレス変換リクエストに対応するアドレス
変換情報を生成して、アドレス変換情報を前記第1およ
び第2のアドレス変換バッファのいずれにも登録するこ
とを特徴とするものである。
【0015】請求項6に記載の発明においては、請求項
3に記載のアドレス変換バッファ機構において、前記制
御手段は、前記第1および第2のアドレス変換バッファ
を用いて命令アドレス変換リクエストに対応するアドレ
ス変換とデータアドレス変換リクエストに対応するアド
レス変換を並列に行なった結果、前記第1および第2の
アドレス変換バッファでそれぞれミスヒットとなった場
合には、ミスヒットとなった各アドレス変換リクエスト
に対応するアドレス変換情報をそれぞれ生成して、デー
タアドレス変換リクエストに対応するアドレス変換情報
については前記第2のアドレス変換バッファに登録し、
命令アドレス変換リクエストに対応するアドレス変換情
報については前記第1および第2のアドレス変換バッフ
ァのいずれにも登録することを特徴とするものである。
【0016】
【作用】本発明によれば、第1のアドレス変換バッファ
および第2のアドレス変換バッファは並列に動作し、第
1のアドレス変換バッファは命令アドレス変換のみ取り
扱い、第2のアドレス変換バッファは命令アドレス変換
とデータアドレス変換を取り扱う。命令とデータのアド
レス変換リクエストが同時に来たときには、請求項3に
記載の発明のように、命令アドレス変換に関しては第1
のアドレス変換バッファを用い、データアドレス変換に
関しては第2のアドレス変換バッファを用いて並列にア
ドレス変換を行なうため、仮想記憶方式の計算機システ
ムにおける命令アクセスとデータアクセスの並列実行な
ど、処理の並列化が実現できる。
【0017】また、データアドレス変換リクエストのみ
の場合には、第2のアドレス変換バッファでアドレス変
換が行なわれるので、例えば、第2のアドレス変換バッ
ファを大容量の構成とすれば、高ヒット率が期待でき
る。第2のアドレス変換バッファでミスヒットした場合
は、主記憶手段上にあるアドレス変換テーブルから変換
情報を得るテーブルウォーク、あるいは計算等によって
データアドレス変換情報が求められ、第2のアドレス変
換バッファにのみ登録される。
【0018】また、命令アドレス変換リクエストのみの
場合、第1のアドレス変換バッファと第2のアドレス変
換バッファの両方でアドレス変換が行なわれ、少なくと
も一方がヒットした場合には命令アドレス変換は成功し
たことになるので高ヒット率が期待できる。請求項1に
記載の発明においては、第1のアドレス変換バッファの
ミスヒット時に、また、請求項2に記載の発明において
は第2のアドレス変換バッファのヒット時に、第1のア
ドレス変換バッファと同時に並行して動作している第2
のアドレス変換バッファが出力したアドレス変換情報が
第1のアドレス変換バッファに登録される。これによ
り、次に命令アドレス変換リクエストを第1のアドレス
変換バッファが扱う場合に、第1のアドレス変換バッフ
ァで処理される命令アドレス変換リクエストの仮想命令
ページアドレスが同一であれば、第1のアドレス変換バ
ッファでもヒットし、効率よくアドレス変換を行なうこ
とができる。第1のアドレス変換バッファと第2のアド
レス変換バッファの両方でミスヒットとなった場合には
命令アドレス変換情報がテーブルウォークあるいは計算
等によって求められ、第1のアドレス変換バッファと第
2のアドレス変換バッファのいずれにも登録される。
【0019】このような命令アドレス変換リクエストの
みの場合の動作において、第1のアドレス変換バッファ
のヒット、ミスヒットにかかわらず、大容量の第2のア
ドレス変換バッファ側ではほとんどの場合ヒットするこ
とが期待できる。そのため、請求項1に記載の発明では
第1のアドレス変換バッファがミスヒットする多くの場
合、また、請求項2に記載の発明ではほとんどの場合に
おいて、命令アドレス変換情報が第1のアドレス変換バ
ッファに登録されることになる。次に命令アドレス変換
リクエスト時には、同一の仮想命令ページアドレスがア
クセスされる確率は極めて高く、たとえデータアドレス
変換リクエストと並列的に変換する場合であっても、第
1のアドレス変換バッファを用いて仮想命令アドレスの
アドレス変換を行なうことができる。このように、ヒッ
ト率の大きなアドレス変換バッファ機構を得ることがで
きる。
【0020】また、第1のアドレス変換バッファで命令
アドレス変換リクエスト、第2のアドレス変換バッファ
でデータアドレス変換リクエストを並列に処理した結
果、第1のアドレス変換バッファでミスヒットとなった
場合には、そのミスヒットとなった命令アドレス変換リ
クエストに対して第2のアドレス変換バッファでもアド
レス変換を行なう。このアドレス変換がヒットした時に
は、上述の命令アドレス変換リクエストのみの場合と同
様、請求項4に記載の発明のように、そのヒットエント
リのアドレス変換情報が第1のアドレス変換バッファに
登録される。一方、命令アドレス変換リクエストが第1
のアドレス変換バッファと第2のアドレス変換バッファ
のそれぞれでミスヒットとなった場合には、請求項5,
6に記載の発明のように、ミスヒットとなった命令アド
レス変換リクエストに対応するアドレス変換情報がテー
ブルウォークあるいは計算等によって求められ、第1の
アドレス変換バッファと第2のアドレス変換バッファの
いずれにも登録される。
【0021】データアドレス変換リクエストが第2のア
ドレス変換バッファでミスヒットした場合は、請求項6
に記載の発明のように、データアドレス変換リクエスト
に対応するアドレス変換情報がテーブルウォークあるい
は計算等によって求められ、第2のアドレス変換バッフ
ァにのみ登録される。
【0022】このように、本発明のアドレス変換バッフ
ァ機構によれば、第1のアドレス変換バッファには常に
最新の命令アドレス変換情報(エントリ情報)が保持さ
れ、第1のアドレス変換バッファがミスヒットしてもほ
とんどの場合は第2のアドレス変換バッファにそのリク
エストに対応する命令アドレス変換情報があるため、第
1のアドレス変換バッファの見かけ上の容量は第2のア
ドレス変換バッファと同程度となる。そのため、第1の
アドレス変換バッファと第2のアドレス変換バッファを
並列動作させて命令アドレス変換リクエストとデータア
ドレス変換リクエストを並列に処理した場合に、アドレ
ス変換バッファ機構は、命令用のアドレス変換バッファ
とデータ用のアドレス変換バッファを別に持つ場合と比
べて、同一の合計エントリ数にて、より高いヒット率を
得ることができる。また、上述のように、発生回数の多
い命令アドレス変換リクエストのほとんどの場合におい
て、第1または第2のアドレス変換バッファでヒットす
るため、テーブルウォーク等の必要がほとんどなく、効
率的なアドレス変換を行なうことができ、計算機システ
ムの性能を向上させることができる。
【0023】
【実施例】図1は、本発明のアドレス変換バッファ機構
の一実施例を示すブロック構成図である。図中、1はm
TLB、2はgTLB、3,4,7,8,15はレジス
タ、5,6,9,10はセレクタ、11,12はヒット
チェック回路、13は制御部、14は置き換え制御回路
である。
【0024】mTLB1は、仮想命令アドレスを高速に
物理命令アドレスに変換するための1エントリのTLB
である。mTLB1のエントリには、タグ(仮想タグ)
および物理アドレスの対を含むアドレス変換情報が保持
されるようになっている。ここで、仮想アドレスは実際
には仮想ページアドレスとすることができ、同様に、物
理アドレスは物理ページアドレスとすることができる。
また、アドレス変換情報は、エントリ情報とも呼ぶ。以
下の説明において同じである。mTLB1は、セレクタ
5から仮想命令アドレスが与えられ、その仮想命令アド
レスとタグが一致する場合に、対応する物理アドレスを
セレクタ6に出力する。また、mTLB1の内容は、制
御部13の制御に従って、レジスタ15からのリプレー
ス用物理アドレスとセレクタ5から与えられる仮想命令
アドレスの対、あるいは、gTLB2からのアドレス変
換情報で書き換えられる。gTLB2からのアドレス変
換情報の登録(アップロード)は、命令アドレス変換リ
クエストに対して、mTLB1でミスヒットとなりgT
LB2でヒットした場合、あるいは、mTLB1のヒッ
ト、ミスヒットにかかわらず、gTLB2でヒットした
場合に行なうことができる。
【0025】gTLB2は、mTLB1より容量の大き
いTLBである。gTLB2は、mTLB1と同様のエ
ントリ構造となっている。gTLB2は、セレクタ10
から与えられる仮想アドレスと仮想タグとの比較を順次
行ない、ヒットした場合には、ヒットしたエントリの対
応する物理アドレスをセレクタ6、あるいは外部へ出力
する。また、命令アドレス変換リクエストに対してgT
LB2でヒットになった場合に、gTLB2のヒットエ
ントリのアドレス変換情報(タグと物理アドレスの対)
をmTLB1に与える。さらに、gTLB2は、置き換
え制御回路14および制御部13の制御に従い、レジス
タ15から与えられるリプレース用物理アドレスと、セ
レクタ10から与えられる仮想アドレスとの対が登録さ
れる。このgTLB2およびmTLB1は、説明の便宜
上、フルアソシアティブ方式を適用しているものとする
が、これに限られるものではない。
【0026】レジスタ3は、命令アドレス変換リクエス
ト中の仮想アドレスをラッチする。レジスタ7は、デー
タアドレス変換リクエスト中の仮想アドレスをラッチす
る。命令アドレス変換リクエストをリクエスト#1とし
て示し、データアドレス変換リクエストをリクエスト#
2として示している。レジスタ3,7は、通常状態では
各サイクルごとにラッチ動作を行なうように制御され
る。
【0027】レジスタ4は、命令アドレス変換リクエス
トがTLBミスヒットとなった場合に、レジスタ3に保
持されていた仮想命令アドレス(ミスヒットアドレス)
をラッチする。レジスタ8は、データアドレス変換リク
エストがTLBミスヒットとなった場合に、レジスタ7
に保持されていた仮想命令アドレス(ミスヒットアドレ
ス)をラッチする。
【0028】セレクタ5は、レジスタ3または4の保持
内容のいずれか一方を選択し、mTLB1およびセレク
タ10に与える。セレクタ9は、レジスタ7または8の
保持内容のいずれか一方を選択し、セレクタ10に与え
る。セレクタ5,9は、通常、レジスタ3,7側を選択
し、TLBミスヒットに伴うリプレース処理時等にはレ
ジスタ4,8側を選択する。
【0029】セレクタ10は、セレクタ5または9の出
力のいずれか一方をgTLB2に選択出力する。
【0030】セレクタ6は、mTLB1またはgTLB
2の出力のいずれか一方を選択し、物理命令アドレスと
して出力する。
【0031】ヒットチェック回路31は、命令アドレス
変換リクエストの仮想アドレスをmTLB1内のエント
リのタグと比較して、命令アドレス変換リクエストがm
TLB1にヒットしたか否かをチェックする。ヒットチ
ェック回路32は、セレクタ10により選択されたリク
エストの仮想アドレスをgTLB2内の各エントリのタ
グと比較して、セレクタ10により選択されたリクエス
トがgTLB2にヒットしたか否かをチェックする。
【0032】制御部13は、図1に示すアドレス変換バ
ッファ機構全体を制御する。制御部13は、アップロー
ドの制御、セレクタ5,9,10の制御等を行ない、最
新の命令アドレス変換情報がmTLB1に存在するよう
に制御するようになっている。制御部13はまた、セレ
クタ6の制御も行なう。置き換え制御回路35は、gT
LB2の内容を置き換えるときに、置き換えのターゲッ
トとなるエントリを選択する制御を行なう。
【0033】レジスタ36は、TLBがミスヒットした
際にテーブルウォークや計算等で求めた物理アドレスを
一旦格納する。
【0034】次に、本発明のアドレス変換バッファ機構
の一実施例における動作の一例を説明する。以下の説明
では、命令アドレス変換リクエストのみの場合、データ
アドレス変換リクエストのみの場合、命令アドレス変換
リクエストとデータアドレス変換リクエストの両方の場
合に分けて、順に説明する。
【0035】まず、命令アドレス変換リクエストのみの
場合について説明する。図2、図3は、命令アドレス変
換リクエストのみの場合における動作の一例を説明する
ためのタイミングチャートである。
【0036】今、命令アドレス変換リクエストがリクエ
スト#1として受け付けられ、リクエスト#1中の仮想
アドレスがサイクルT0の終了時にレジスタ3にラッチ
されたものとする。この場合、次のサイクルT1におい
て、以下に述べるようにmTLB1とgTLB2の両方
でアドレス変換が行なわれる。
【0037】まず、レジスタ3にラッチされたリクエス
ト#1の仮想アドレスは、セレクタ5によって選択さ
れ、mTLB1とともにgTLB2にも供給される。m
TLB1には、セレクタ5によって選択されたレジスタ
3に格納されているリクエスト#1の仮想アドレスが与
えられる。mTLB1では、与えられた仮想命令アドレ
スとエントリのタグとの一致をヒットチェック回路11
を用いて調べ、アドレス比較による周知のヒットチェッ
クが行なわれる。また、セレクタ10は、セレクタ5か
ら与えられるリクエスト#1の仮想アドレスを選択し、
gTLB2に与える。gTLB2は、セレクタ10によ
って選択された仮想命令アドレスと各エントリのタグと
の一致をヒットチェック回路12を用いて調べ、アドレ
ス比較による周知のヒットチェックが行なわれる。
【0038】ここで、mTLB1にてヒットが検出され
た場合には、mTLB1から読み出された指定エントリ
の情報(ヒットエントリ情報)中の物理アドレスがセレ
クタ6で選択され、リクエスト#1の仮想命令アドレス
に対するアドレス変換結果として出力される。なお、m
TLB1およびgTLB2のヒットチェック回路では、
ヒットチェックに際して、指定エントリの情報が有効か
否かを示すV(バリッド)ビットの状態や、主記憶保護
のための保護情報も調べられるが、これらは一般に良く
知られており、しかも、本発明には直接関係しないた
め、説明を省略する。
【0039】一方、mTLB1にてミスヒットが検出さ
れた場合には、図2に示すように、gTLB2にてヒッ
トしていれば、gTLB2から読み出された物理アドレ
スがセレクタ6で選択され、リクエスト#1の仮想命令
アドレスに対するアドレス変換結果として出力される。
それとともに、同じサイクルT1において、そのgTL
B2から得たエントリの情報をmTLB1に登録するた
めのアップロード処理が、制御部13の制御によって次
のように行なわれる。
【0040】mTLB1に対し、リクエスト#1の仮想
アドレスに対するgTLB2から得たエントリの情報が
書き込みデータ(登録データ)として供給される。この
とき、mTLB1は制御部13によって書き込み可能状
態に設定される。これにより、mTLB1のエントリに
は、同じ仮想命令アドレスに対してヒットしたgTLB
2のエントリの情報が書き込まれ、登録される。
【0041】また、図3に示すように、サイクルT1に
おいて仮想命令アドレスリクエストに対してmTLB1
とgTLB2の両方がミスヒットした場合には、以下に
述べるリプレース処理が行なわれ、その結果、mTLB
1およびgTLB2にはリクエスト#1のアドレス変換
情報が登録される。
【0042】まず、主記憶上に置かれているページテー
ブル等を参照しながら、例えば、リクエスト#1の仮想
アドレスをテーブルウォークやアドレス計算等により物
理アドレスに変換する処理が行なわれる。やがて、サイ
クルTn−1において、リクエスト#1の物理アドレス
が求められると、この物理アドレスが同サイクルTn−
1の終了時にレジスタ15にラッチされ、図3に示すよ
うに、後続のサイクルTnにおいて、リクエスト#1の
仮想アドレスの所定フィールド(仮想ページ番号)によ
り示される仮想タグ(仮想アドレスタグ)と求めた物理
アドレスの対を含むエントリ情報をmTLB1およびg
TLB2に登録する処理、すなわちリプレース処理が行
なわれる。
【0043】サイクルTnでは、レジスタ4にラッチさ
れているリクエスト#1の仮想アドレスがセレクタ5に
よりmTLBに選択出力され、このときレジスタ15に
ラッチされているリクエスト#1の物理アドレスととも
にmTLB1に書き込まれる。つまり仮想タグと物理ア
ドレスの対を含むエントリ情報が書き込まれるわけであ
る。
【0044】同時に、レジスタ4にラッチされているリ
クエスト#1の仮想アドレスがセレクタ5とセレクタ1
0によりgTLB2に選択出力され、このときレジスタ
15にラッチされているリクエスト#1の物理アドレス
とともにgTLB2に書き込まれる。つまりgTLB2
にもエントリ情報が書き込まれる。gTLB2の場合は
エントリが複数あるので、置き換え制御回路14が置き
換えの対象となるエントリを決定する。置き換え制御の
方式にはランダム、FIFO、LRUというアルゴリズ
ムが知られているが、どれを用いてもよく、本発明の説
明には直接関係しないので省略する。
【0045】サイクルTnにおけるリプレース処理の
後、例えば、サイクルTk−1の終了時に、再度同一の
リクエスト#1を受け付けた場合には、次のサイクルT
kでは、リクエスト#1は図3に示すようにmTLB
1,gTLB2ともにヒットする。この場合の処理は、
上述のmTLB1がヒットした場合の処理が行なわれ、
セレクタ6からリクエスト#1の仮想命令アドレスに対
するアドレス変換結果が出力される。
【0046】上述の説明では、リクエスト#1に対して
mTLB1がミスヒットし、gTLB2がヒットした場
合にmTLB1のアップロード処理を行なった。しか
し、これに限らず、gTLB2がヒットした場合にはm
TLB1のヒットあるいはミスヒットの結果にかかわら
ず、アップロード処理を実行するように構成することも
できる。この場合、mTLB1の結果を判定する制御を
簡略化することができる。また、上述の説明では、mT
LB1の結果を優先して出力しているが、これに限ら
ず、mTLB1およびgTLB2のどちらかヒットした
方をセレクタ6で選択して、アドレス変換結果として出
力するように構成することもできる。あるいは、命令ア
ドレス変換リクエストのみの場合には常にgTLB2を
選択するように構成してもよい。しかし、この実施例で
は命令アドレス変換リクエストの場合にmTLB1を参
照するように構成することによって、命令に関する最新
のアドレス変換情報がgTLB2に存在しない場合にも
対応できるようにしている。これによって、gTLB2
のエントリを有効に利用し、アドレス変換のヒット率を
さらに高めることが可能になる。
【0047】次に、データアドレス変換リクエストのみ
の場合について説明する。図4、図5は、データアドレ
ス変換リクエストのみの場合における動作の一例を説明
するためのタイミングチャートである。
【0048】今、データアドレス変換リクエストがリク
エスト#2として受け付けられ、リクエスト#2の仮想
アドレスがサイクルT0の終了時にレジスタ7にラッチ
されたものとする。この場合、次のサイクルT1におい
て、以下に述べるようにgTLB2でアドレス変換が行
なわれる。
【0049】まず、レジスタ7にラッチされたリクエス
ト#2の仮想アドレスはセレクタ9,10によって選択
され、gTLB2に供給される。gTLB2は、セレク
タ10によって選択出力された仮想データアドレスと各
エントリのタグの一致をヒットチェック回路12を用い
て調べ、アドレス比較による周知のヒットチェックが行
なわれる。
【0050】ここで、図4に示すように、gTLB2に
てヒットが検出された場合には、gTLB2から読み出
されたヒットしたエントリの情報中の物理アドレスが、
リクエスト#2の仮想データアドレスに対するアドレス
変換結果である物理データアドレスとして出力される。
なお、gTLB2のヒットチェック回路では、Vビット
や保護情報等についても調べることはすでに述べたとお
りである。
【0051】データアドレス変換リクエストに対して
は、gTLB2がヒットしてもアップロード処理は行な
われない。なぜならば、mTLB1は専ら命令アドレス
変換のためのエントリ情報を保持するためである。
【0052】仮想データアドレス変換リクエストに対し
てgTLB2がミスヒットした場合には、図5に示すよ
うに、上述した処理によって物理アドレスを求め、gT
LB2に登録する。すなわち、テーブルウォークやアド
レス計算等により物理アドレスに変換する処理が行なわ
れ、サイクルTn−1にてリクエスト#2の物理アドレ
スが決まる。この物理アドレスはサイクルTn−1の終
了時にレジスタ15にラッチされ、図5に示すように、
後続のサイクルTnにおいて、リクエスト#2の仮想ア
ドレスの所定フィールド(仮想ページ番号)により示さ
れる仮想タグ(仮想アドレスタグ)と求めた物理アドレ
スの対を含むエントリ情報をgTLB2に登録するリプ
レース処理が行なわれる。
【0053】すなわち、サイクルTnでは、レジスタ8
にラッチされているリクエスト#2の仮想アドレスがセ
レクタ9とセレクタ10によりgTLB2に選択出力さ
れ、このときレジスタ15にラッチされているリクエス
ト#2の物理アドレスとともにgTLB2に書き込まれ
る。書き込むべきgTLBのエントリは置き換え制御回
路14が決定する。
【0054】以上のリプレース処理の後、例えば、サイ
クルTk−1の終了時に、再度同一のリクエスト#2を
受け付けた場合には、次のサイクルTkでは、リクエス
ト1は図5に示すようにgTLB2にヒットする。
【0055】次に、命令アドレス変換リクエストとデー
タアドレス変換リクエストの両方の場合について説明す
る。図6ないし図10は、命令アドレス変換リクエスト
とデータアドレス変換リクエストの両方を行なう場合に
おける動作の一例を説明するためのタイミングチャート
である。
【0056】今、命令アドレス変換リクエストがリクエ
スト#1として、また、データアドレス変換リクエスト
がリクエスト#2として受け付けられ、そのリクエスト
#1の仮想命令アドレスがレジスタ3に、リクエスト#
2の仮想データアドレスがレジスタ7に、いずれもサイ
クルT0の終了時にラッチされたものとする。この場
合、次のサイクルT1では、レジスタ3にラッチされた
リクエスト#1の仮想アドレスは、セレクタ5によって
選択されてmTLB1に供給され、レジスタ7にラッチ
されたリクエスト#2の仮想アドレスはセレクタ9,2
4によって選択されてgTLB2に供給される。
【0057】この結果、mTLB1側では、リクエスト
#1の仮想アドレスがmTLB1にヒットしたか否かが
ヒットチェック回路11によってチェックされ、gTL
B2側では、リクエスト#2の仮想アドレスがgTLB
2にヒットしたか否かがヒットチェック回路12によっ
てチェックされる。
【0058】もし、図6に示すように、リクエスト#1
がmTLB1にヒットし、リクエスト#2がgTLB2
にヒットした場合には、同じサイクルT1においてmT
LB1,gTLB2によるアドレス変換が行なわれ、m
TLB1のヒットエントリの情報中の物理アドレスがセ
レクタ6で選択されて命令アドレス変換結果として出力
され、gTLB2のヒットエントリの情報中の物理アド
レスがデータアドレス変換結果として出力される。な
お、この場合はアップロード処理は行なわれない。
【0059】これに対し、図7に示すように、サイクル
T1においてリクエスト#1がmTLB1にミスヒット
し、リクエスト#2がgTLB2にヒットした場合に
は、まず、サイクルT1において、gTLB2のヒット
エントリの情報中の物理アドレスがデータアドレス変換
リクエストに対応するデータアドレス変換結果として出
力される。そして、次のサイクルT2において、mTL
B1でミスヒットとなったリクエスト#1に対して、上
述の命令アドレス変換リクエストのみの場合と同様の処
理が行なわれる。
【0060】サイクルT2では、サイクルT1でレジス
タ3にラッチされていたリクエスト#1の仮想アドレス
が、制御部13の制御によってレジスタ4にラッチされ
ている。このレジスタ4にラッチされているリクエスト
#1の仮想アドレスがセレクタ5,10によって選択さ
れ、gTLB2に供給される。そして、リクエスト#1
の仮想アドレスがgTLB2にヒットしたか否かがヒッ
トチェック回路12によってチェックされる。
【0061】もし、図7に示すようにgTLB2でヒッ
トしたならば、同じサイクルT2においてgTLB2に
よるアドレス変換が行なわれ、gTLB2のヒットエン
トリの情報中の物理アドレスがセレクタ6にて選択さ
れ、リクエスト#1のアドレス変換結果として出力され
る。同時に、上述した命令アドレスリクエストのみのヒ
ット情報のアップロード処理の場合と同様にアップロー
ド処理が行なわれ、リクエスト#1に対するgTLB2
のヒットエントリの情報がmTLB1に登録される。
【0062】この結果、例えば、サイクルT2の終了時
に次の命令アドレス変換リクエストをリクエスト#1と
して、次のデータアドレス変換リクエストをリクエスト
#2として受け付け、しかも次のリクエスト#1が先の
リクエスト#1と同一アドレス(同一仮想ページアドレ
ス)に対するものである場合には、このアドレスについ
てのエントリ情報がサイクルT2においてmTLB1に
登録されていることから、サイクルT3では、次のリク
エスト#1は図7に示すようにmTLB1にヒットす
る。すなわち、次のリクエスト#1に対するアドレス変
換は1サイクルで実行される。
【0063】次に、図8に示すように、リクエスト#1
はmTLB1においてヒットしたが、リクエスト#2は
gTLB2においてミスヒットとなった場合について説
明する。このような場合には、リクエスト#1について
は、mTLB1から読み出された指定エントリの情報中
の物理アドレスがセレクタ6で選択され、リクエスト#
1の仮想命令アドレスに対するアドレス変換結果として
出力される。一方、リクエスト#2については、上述し
たデータアドレス変換リクエストのみの場合と同様に、
物理アドレスを得る。サイクルTn−1にて物理アドレ
スを得たとすると、物理アドレスは同サイクルTn−1
の終了時にレジスタ15にラッチされる。そして、図8
に示すように後続のサイクルTnにおいて、リクエスト
#2の仮想アドレスの所定フィールド(仮想ページ番
号)により示される仮想タグと求めた物理アドレスの対
を含むエントリ情報をgTLB2に登録する。gTLB
2の書き込み先エントリは、置き換え制御回路14が決
定する。この場合、mTLB1へのアップロード処理は
行なわない。
【0064】以上のリプレース処理の後、例えば、サイ
クルTk−1の終了時に、次の命令アドレス変換リクエ
ストをリクエスト#1として、また、次のデータアドレ
ス変換リクエストをリクエスト#2として受け付け、し
かも次のリクエスト#2が先のリクエスト#2と同一ア
ドレス(同一仮想ページアドレス)に対するものである
場合には、このアドレスについてのエントリ情報がサイ
クルTnにおいてgTLB2に登録されていることか
ら、サイクルTkでは、次のリクエスト#2は、図8に
示すようにgTLB2にヒットする。すなわち、次のリ
クエスト#2に対するアドレス変換は1サイクルで実行
される。
【0065】次に、リクエスト#1,#2の両方が、図
9に示すようにサイクルT1においてミスヒットとなっ
た場合について説明する。リクエスト#1,#2がサイ
クルT1においてそれぞれmTLB1,gTLB2にミ
スヒットすると、レジスタ3にラッチされていたミスヒ
ットしたリクエスト#1の仮想アドレスがレジスタ4
に、レジスタ7にラッチされていたミスヒットしたリク
エスト#2の仮想アドレスレジスタ8に、いずれもサイ
クルT1の終了時にラッチされる。
【0066】さて、リクエスト#1,#2のいずれもが
ミスヒットとなった場合、サイクルT2にて、まず、レ
ジスタ4に保持されているリクエスト#1の仮想アドレ
スがセレクタ5,10によって選択され、gTLB2に
ヒットしたか否かがヒットチェック回路12によってチ
ェックされる。
【0067】もし、図9に示すようにgTLB2でヒッ
トしたならば、同じサイクルT2においてgTLB2に
よるアドレス変換結果の物理アドレスがセレクタ6で選
択出力される。同時に、リクエスト#1に対するgTL
B2のヒットエントリの情報が、上述した命令アドレス
リクエストのみの場合と同様にしてアップロード処理が
行なわれ、mTLB1に登録される。リクエスト#1は
gTLB2にてヒットしたのでテーブルウォークやアド
レス計算等で物理アドレスを求める必要はない。
【0068】その後、リクエスト#2に対する物理アド
レスをテーブルウォークやアドレス計算等を用いて得
る。そして、サイクルTnにおいて、gTLB2に対し
てリプレース処理を行なう。すなわち、レジスタ8に保
持される仮想アドレスをセレクタ9,10によりgTL
B2に与え、レジスタ15に保持される求められた物理
アドレスをgTLB2に与え、gTLB2に書き込む。
【0069】以上のリプレース処理の後、例えば、サイ
クルTk−1の終了時に、先のリクエスト#1と同一仮
想アドレスを有する次の命令アドレス変換リクエスト
と、先のリクエスト#2と同一仮想アドレスを有する次
のデータアドレス変換リクエストが要求された場合、サ
イクルTkでは、次の命令アドレス変換リクエストの仮
想命令アドレスはmTLB1にヒットし、次のデータア
ドレス変換リクエストの仮想データアドレスはgTLB
2にヒットする。
【0070】サイクルT2にてリクエスト#1がgTL
B2でもミスヒットした場合は、図10に示すように、
リクエスト#1,#2に対して、それぞれ、物理アドレ
スを得てgTLB2に対してリプレース処理を行なう。
具体的には次のようになる。
【0071】サイクルTm−1にリクエスト#2に対す
る物理アドレスが得られ、レジスタ15にラッチされ
る。サイクルTmでは、レジスタ8に保持されるリクエ
スト#2の仮想アドレスがセレクタ9と10でgTLB
2に与えられ、レジスタ15に保持される物理アドレス
とともにgTLB2に書き込まれる。この際、置き換え
制御回路14が書き込むべきエントリを決定する。これ
によってリクエスト#2のリプレース処理が終わった。
【0072】その後、サイクルTn−1にてリクエスト
#1に対する物理アドレスを得てレジスタ15にラッチ
する。サイクルTnでは、レジスタ4に保持されている
リクエスト#1の仮想アドレスをセレクタ5を経てmT
LB1に与える。さらに、それをセレクタ5,10を経
てgTLB2にも与える。また、レジスタ15に保持さ
れているリクエスト#1の物理アドレスをmTLB1と
gTLB2に与える。そして、仮想アドレスと物理アド
レス等からなるアドレス変換情報をmTLB1とgTL
B2に書き込む。この際、置き換え制御回路14がgT
LB2の書き込むべきエントリを決定する。これによっ
てリクエスト#1のリプレース処理が終わった。
【0073】以上のリプレース処理の後、例えば、サイ
クルTk−1の終了時に、リクエスト#1と同一仮想ペ
ージアドレスを有する次の命令アドレス変換リクエスト
と、リクエスト#2と同一仮想ページアドレスを有する
次のデータアドレス変換リクエストが要求された場合、
サイクルTkでは、次の命令アドレス変換リクエストは
mTLB1にヒットし、次のデータアドレス変換リクエ
ストはgTLB2にヒットする。
【0074】なお、上述の実施例では、mTLB1が1
エントリの場合について説明したが、本発明はmTLB
のエントリ数に限定されるものではない。すなわち、m
TLB1は複数のエントリを有する構成としてもよい。
この場合、gTLB2と同様、リプレース処理時に書き
込むエントリを示すための置き換え制御回路を付加する
ことになる。逆に、mTLB1のエントリ数を1つにす
ることによって、mTLB1に対する置き換え制御回路
を不要とすることができる。また、上述の説明のよう
に、mTLB1は、1個のエントリでも十分なヒット率
を得ることができるので、アドレス変換バッファをより
少ない合計エントリ数で構成することが可能となる。さ
らに、mTLB1を1個あるいは数個のエントリで構成
することによって、しばしばスピード上クリティカルパ
スとなりがちなアドレス変換バッファを小さくし、アド
レス変換バッファをより早く動作させることを可能とす
ることができる。これにより、計算機システムのクロッ
クを高め、高性能化を実現することが可能となる。
【0075】また、上述の実施例では、gTLB2がフ
ルアソシアティブ方式を適用している場合について説明
したが、本発明はマッピング方式に限定されるものでは
なく、例えば、ダイレクトマップ方式、セットアソシア
ティブ方式のTLB構成にも応用できる。
【0076】
【発明の効果】以上の説明から明らかなように、本発明
によれば、mTLBとgTLBとを設けて並列に動作さ
せるようにしたので、命令アドレス変換リクエストとデ
ータアドレス変換リクエストを並列に処理することがで
き、仮想記憶方式の計算機システムにおいて性能を向上
させることが可能となる。
【0077】また、本発明によれば、命令アドレス変換
リクエストがmTLBにミスヒットしても、対応するア
ドレス変換情報のエントリがgTLBに存在するなら
ば、そのアドレス変換情報がmTLBに登録されるな
ど、最新の命令アドレス変換リクエストに対応するアド
レス変換情報が常にmTLBにも存在するように制御さ
れるため、1回目はmTLBにミスヒットしても、次の
仮想命令アドレス(仮想命令ページアドレス)が同一で
あれば、mTLBでもヒットし、命令とデータのアドレ
ス変換リクエストの処理が遅れることもなく並列に行な
える。このように次の仮想命令アドレスが同一である確
率は極めて高く、高速なアドレス変換を行なうことがで
きる。
【0078】本発明によれば、mTLBがミスしてもほ
とんどの場合はgTLBからアドレス変換情報が供給さ
れるので、mTLBの見かけの容量はgTLBに等しく
なるといえる。そのため、mTLBは少量でよく、並列
処理が可能でありながら、アドレス変換バッファ機構を
小型化することができるなど、様々な効果がある。
【図面の簡単な説明】
【図1】 本発明のアドレス変換バッファ機構の一実施
例を示すブロック構成図である。
【図2】 命令アドレス変換リクエストのみの場合にお
いてgTLB2でヒットした場合の動作の一例を説明す
るためのタイミングチャートである。
【図3】 命令アドレス変換リクエストのみの場合にお
いてmTLB1およびgTLB2の両方でミスヒットと
なった場合の動作の一例を説明するためのタイミングチ
ャートである。
【図4】 データアドレス変換リクエストのみの場合に
おいてgTLB2でヒットした場合の動作の一例を説明
するためのタイミングチャートである。
【図5】 データアドレス変換リクエストのみの場合に
おいてgTLB2でミスヒットした場合の動作の一例を
説明するためのタイミングチャートである。
【図6】 命令アドレス変換リクエストとデータアドレ
ス変換リクエストの両方を行なう場合においてそれぞれ
mTLB1,gTLB2でヒットした場合の動作の一例
を説明するためのタイミングチャートである。
【図7】 命令アドレス変換リクエストとデータアドレ
ス変換リクエストの両方を行なう場合においてデータア
ドレス変換リクエストがgTLB2でヒットし、命令ア
ドレス変換リクエストがmTLB1でミスヒットした後
gTLB2でヒットした場合の動作の一例を説明するた
めのタイミングチャートである。
【図8】 命令アドレス変換リクエストとデータアドレ
ス変換リクエストの両方を行なう場合において命令アド
レス変換リクエストがmTLB1でヒットし、データア
ドレス変換リクエストがgTLB2でミスヒットした場
合の動作の一例を説明するためのタイミングチャートで
ある。
【図9】 命令アドレス変換リクエストとデータアドレ
ス変換リクエストの両方を行なう場合において両方のリ
クエストがミスヒットした後命令アドレス変換リクエス
トがgTLB2でヒットした場合の動作の一例を説明す
るためのタイミングチャートである。
【図10】 命令アドレス変換リクエストとデータアド
レス変換リクエストの両方を行なう場合において両方の
リクエストがミスヒットしさらに命令アドレス変換リク
エストがgTLB2でもミスヒットした場合の動作の一
例を説明するためのタイミングチャートである。
【符号の説明】
1…mTLB、2…gTLB、3,4,7,8,15…
レジスタ、5,6,9,10…セレクタ、11,12…
ヒットチェック回路、13…制御部、14…置き換え制
御回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 仮想アドレスを高速に物理アドレスに変
    換するための第1および第2のアドレス変換バッファを
    具備し、前記第1および第2のアドレス変換バッファを
    並列に動作させて命令とデータに関するアドレス変換リ
    クエストを並列に処理するようにしたアドレス変換バッ
    ファ機構において、最新の命令アドレス変換リクエスト
    に対応するアドレス変換情報が前記第1および第2のア
    ドレス変換バッファのいずれにも存在するように制御す
    るとともに最新のデータアドレス変換リクエストに対応
    するアドレス変換情報が前記第2のアドレス変換バッフ
    ァのみに存在するように制御する制御手段を有し、さら
    に該制御手段は、命令アドレス変換リクエストのみ受け
    付けた場合は、前記第1および第2のアドレス変換バッ
    ファでアドレス変換を行なわせ、前記第1のアドレス変
    換バッファのミスヒット時には前記第2のアドレス変換
    バッファから得たアドレス変換情報を前記第1のアドレ
    ス変換バッファに登録し、さらに、少なくとも一方のア
    ドレス変換バッファにてヒットしたならばアドレス変換
    はヒットしたものとし、データアドレス変換リクエスト
    のみ受け付けた場合は、前記第2のアドレス変換バッフ
    ァでアドレス変換を行なわせ、前記第2のアドレス変換
    バッファから得たアドレス変換情報を前記第1のアドレ
    ス変換バッファに登録しないように制御することを特徴
    とするアドレス変換バッファ機構。
  2. 【請求項2】 仮想アドレスを高速に物理アドレスに変
    換するための第1および第2のアドレス変換バッファを
    具備し、前記第1および第2のアドレス変換バッファを
    並列に動作させて命令アドレス変換リクエストあるいは
    データアドレス変換リクエストを並列に処理するように
    したアドレス変換バッファ機構において、最新の命令ア
    ドレス変換リクエストに対応するアドレス変換情報が前
    記第1および第2のアドレス変換バッファのいずれにも
    存在するように制御するとともに最新のデータアドレス
    変換リクエストに対応するアドレス変換情報が前記第2
    のアドレス変換バッファのみに存在するように制御する
    制御手段を有し、さらに該制御手段は、命令アドレス変
    換リクエストのみ受け付けた場合は、前記第1および第
    2のアドレス変換バッファでアドレス変換を行なわせ、
    前記第2のアドレス変換バッファのヒット時には前記第
    2のアドレス変換バッファから得たアドレス変換情報を
    前記第1のアドレス変換バッファに登録し、さらに、少
    なくとも一方のアドレス変換バッファにてヒットしたな
    らばアドレス変換はヒットしたものとし、データアドレ
    ス変換リクエストのみ受け付けた場合は、前記第2のア
    ドレス変換バッファでアドレス変換を行なわせ、前記第
    2のアドレス変換バッファから得たアドレス変換情報を
    前記第1のアドレス変換バッファに登録しないように制
    御することを特徴とするアドレス変換バッファ機構。
  3. 【請求項3】 前記制御手段は、前記第1および第2の
    アドレス変換バッファで命令アドレス変換リクエストと
    データアドレス変換リクエストを並列に変換する場合
    は、前記命令アドレス変換リクエストに対応するアドレ
    ス変換を前記第1のアドレス変換バッファを用いて行な
    い、前記データアドレス変換リクエストに対応するアド
    レス変換を前記第2のアドレス変換バッファを用いて行
    なうように制御することを特徴とする請求項1または2
    に記載のアドレス変換バッファ機構。
  4. 【請求項4】 前記制御手段は、前記第1および第2の
    アドレス変換バッファを用いて命令アドレス変換リクエ
    ストに対応するアドレス変換とデータアドレス変換リク
    エストに対応するアドレス変換を並列に行なった結果、
    前記第1のアドレス変換バッファのみがミスヒットした
    場合には、該ミスヒットとなったアドレス変換リクエス
    トに対して前記第2のアドレス変換バッファを用いてア
    ドレス変換を行ない、該アドレス変換がヒットした時に
    は、該ヒットしたアドレス変換情報を前記第1のアドレ
    ス変換バッファに登録することを特徴とする請求項3に
    記載のアドレス変換バッファ機構。
  5. 【請求項5】 前記制御手段は、前記第1および第2の
    アドレス変換バッファを用いて命令アドレス変換リクエ
    ストに対応するアドレス変換とデータアドレス変換リク
    エストに対応するアドレス変換を並列に行なった結果、
    前記第1のアドレス変換バッファのみがミスヒットした
    場合には、該ミスヒットとなったアドレス変換リクエス
    トに対して上記第2のアドレス変換バッファを用いてア
    ドレス変換を行ない、該アドレス変換がミスヒットした
    時には、該ミスヒットとなった各アドレス変換リクエス
    トに対応するアドレス変換情報を生成して、アドレス変
    換情報を前記第1および第2のアドレス変換バッファの
    いずれにも登録することを特徴とする請求項3に記載の
    アドレス変換バッファ機構。
  6. 【請求項6】 前記制御手段は、前記第1および第2の
    アドレス変換バッファを用いて命令アドレス変換リクエ
    ストに対応するアドレス変換とデータアドレス変換リク
    エストに対応するアドレス変換を並列に行なった結果、
    前記第1および第2のアドレス変換バッファでそれぞれ
    ミスヒットとなった場合には、ミスヒットとなった各ア
    ドレス変換リクエストに対応するアドレス変換情報をそ
    れぞれ生成して、データアドレス変換リクエストに対応
    するアドレス変換情報については前記第2のアドレス変
    換バッファに登録し、命令アドレス変換リクエストに対
    応するアドレス変換情報については前記第1および第2
    のアドレス変換バッファのいずれにも登録することを特
    徴とする請求項3に記載のアドレス変換バッファ機構。
JP6272368A 1994-11-07 1994-11-07 アドレス変換バッファ機構 Pending JPH08137756A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6272368A JPH08137756A (ja) 1994-11-07 1994-11-07 アドレス変換バッファ機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6272368A JPH08137756A (ja) 1994-11-07 1994-11-07 アドレス変換バッファ機構

Publications (1)

Publication Number Publication Date
JPH08137756A true JPH08137756A (ja) 1996-05-31

Family

ID=17512919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6272368A Pending JPH08137756A (ja) 1994-11-07 1994-11-07 アドレス変換バッファ機構

Country Status (1)

Country Link
JP (1) JPH08137756A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008542948A (ja) * 2005-06-07 2008-11-27 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ
JP2009512943A (ja) * 2005-10-20 2009-03-26 クゥアルコム・インコーポレイテッド 多階層の変換索引緩衝機構(TLBs)フィールドの更新
JP2011008783A (ja) * 2009-06-22 2011-01-13 Arm Ltd リンクされているデータストアにおいて、アイテムの保存およびアイテムの上書きを決定するデータ保存プロトコル

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008542948A (ja) * 2005-06-07 2008-11-27 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ
JP2009512943A (ja) * 2005-10-20 2009-03-26 クゥアルコム・インコーポレイテッド 多階層の変換索引緩衝機構(TLBs)フィールドの更新
JP2011008783A (ja) * 2009-06-22 2011-01-13 Arm Ltd リンクされているデータストアにおいて、アイテムの保存およびアイテムの上書きを決定するデータ保存プロトコル

Similar Documents

Publication Publication Date Title
US7240159B2 (en) Data processor having cache memory
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US5577227A (en) Method for decreasing penalty resulting from a cache miss in multi-level cache system
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JP3666689B2 (ja) 仮想アドレス変換方法
EP0911737A1 (en) Cache memory with reduced access time
EP0668565B1 (en) Virtual memory system
EP1202180A1 (en) Scalar data cache for a vector processor
JPH10232834A (ja) キャッシュメモリを作動する方法およびコンピュータシステム
US6473835B2 (en) Partition of on-chip memory buffer for cache
US5305444A (en) Apparatus for increasing the number of hits in a translation lookaside buffer including instruction address lookaside register
US6101589A (en) High performance shared cache
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
JPH0322155A (ja) キャッシュメモリ装置
US6044447A (en) Method and apparatus for communicating translation command information in a multithreaded environment
US5603008A (en) Computer system having cache memories with independently validated keys in the TLB
US6915406B2 (en) Address translation apparatus, address translation method, and two-layer address translation apparatus
US5619673A (en) Virtual access cache protection bits handling method and apparatus
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
JPH08137756A (ja) アドレス変換バッファ機構
JP3015528B2 (ja) アドレス変換バッファ機構
US5349672A (en) Data processor having logical address memories and purge capabilities
JP2721430B2 (ja) リクエスト競合生成方式
JPH0546475A (ja) バツフア記憶制御方式