JPS6167160A - 仮想アドレス変換装置 - Google Patents

仮想アドレス変換装置

Info

Publication number
JPS6167160A
JPS6167160A JP60104142A JP10414285A JPS6167160A JP S6167160 A JPS6167160 A JP S6167160A JP 60104142 A JP60104142 A JP 60104142A JP 10414285 A JP10414285 A JP 10414285A JP S6167160 A JPS6167160 A JP S6167160A
Authority
JP
Japan
Prior art keywords
address
gate
signal
data
type
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
JP60104142A
Other languages
English (en)
Other versions
JPH0327940B2 (ja
Inventor
デービツド・オツトー・ルイス
リン・アレン・マクマホン
テリー・ライル・シヤート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6167160A publication Critical patent/JPS6167160A/ja
Publication of JPH0327940B2 publication Critical patent/JPH0327940B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はコンピュータの主記憶装置とともに使用する仮
想アドレス変換装置に係り、特に、ルックアサイド・バ
ッファを含む仮想アドレス変換装置に係る。
B、開示の概要 少なくとも第1のタイプのデータおよび第2のタイプの
データをページ形式で記憶するメモl) k有スるコン
ピュータ・システムのルックアサイド・バッファは、異
なったタイプのデータを含むページを指示する少なくと
も2つの異なった実アドレスを保持する。該実アドレス
の1つがLRtg@B識により最も長い間使用されてい
なかったものとして指示される。もう1つの異なったア
ドレスがシステムにより決定されれば、この決定された
アドレスが第1のタイプのデータに対応するアドレスで
ないと、LRU標識により指示されたアドレスは削除さ
れる。その場合、LRU標識は変更されないので、第2
のタイプのデータのアドレスは、第1のタイプのデータ
のページアドレスが決定された場合はルックアサイド・
バッファから削除されない。
C1従来の技術 仮想アドレス変換装置のルックアサイド・バッファは、
大容量の主記憶装置と共に使用され、メモリのページの
アドレスを識別する。これにより、ページを参照する度
にそのアドレスを決めるための処理をするということが
不要になる。メモリのページは、ルックアサイド・バッ
ファ中の特定のロケーションに、その上位アドレスを書
込まれる。
限られたページ数、例えば2ペ一ジ分のアドレス全書込
める各ロケーションには複数のページが対応する。ルッ
クアサイド・バッファに2つ以上の最適アドレスを保持
するための独々の方式が考案されている。それらは搏常
、アドレス保持の基準としてLRUアルゴリズムを利用
している。
米国特許第4059850号は、LRUに基いてワード
グループに優先順位を割当てるメモリ・システムを開示
している。フードグループの優先順位は、無効なワード
グループに最下位の優先順位を割当てるように調整可能
である。米国特許第4457155では、セグメントを
書込み、古いセグメントを削除するキャッシュ記憶装置
が開示されている。この装置では、間もなくアクセスさ
れる見込みが最も大きいセグメントが、コマンドにより
指定されたセグメントに追加して読取られる。アクセス
される見込みが大きいセグメントは、コマンドにより指
定されたセグメントよりも低い優先順位が与えられる。
米国特許第4522795号では、2つのプロセッサが
共用する主記憶装置が開示され、プロセッサの1つが主
記憶装置でデータを変更した場合に、キャッシュの対応
するセクションが空として表示される。
異iつたタイプのデータを主記憶装置内に記憶し、ルッ
クアサイド・バッファやキャッシュを用いてアクセス時
間を短縮する場合、バッファで1つのタイプのデータを
もう1つのタイプのデータと置換え、置換えられたデー
タを再び決定することがある。
D0発明が解決しようとする問題魚 具なったページに記憶されることがある2つ以上のデー
タオペランドと必要とする命令を実行し、現在の命令に
より指定された次の命令の先取り(prefetch 
)f実行するコンピュータの場合、次の命令のアドレス
は、所要のデータオペランドの1つのアドレスとともに
バッファに挿入される。
所要の他のオペランドアドレスの決定により、既に書込
まれている所要のオペランドアドレスがバッファから除
去ぢnる。次いで、現在の命令の再始動、オペランドア
ドレスの1つの決定、次の命令アドレスの決定、更に次
のオペランドアドレスの決定が行なわれ、他方のオペラ
ンドアドレスが除去され、現在の命令が再始動される。
その結果、無限ループが生じる。従来、このような無限
ループへの対策は、後続命令のアクセス?遅らせると共
に、現命令をチェックポイントとして識別してあとで再
開(再始動ではない〕させるものであった。これはより
多くの命令を必要とし、次の命令および特別なチェック
ポイント処理を待つ時間が余分にかかり、パフォーマン
スが低下スる。
本発明の目的は、若干のハードウェアを追加するだけで
上述のような無限ループに対処できるルックアサイド・
バッファを含む仮想アドレス変換装置を提供することで
ある。
E8問題点を解決するための手段 ルックアサイド・バッファはページ形式のメモリにある
ページの実アドレスを含む。該メモリは少なくとも第1
および第2のタイプのデータ含記憶する。ルックアサイ
ド・バッファは、そのロケ=/ヨンごとに、少なくとも
2つの異なった実アドレスを含む。それらの実アドレス
のうちの1つは、LRU標識により最も長い間使用され
なかったものとして指示される。この実アドレスは、更
にもう1つの異なった実アドレスが仮想アドレスから決
定されると削除される。本発明においては、第1のタイ
プのデータに対応するアドレス変換を検出するデータ・
タイプ検出手段が設けられる。
第1のタイプのデータのアドレスが決定されると、LR
U憚識は、第2のタイプのデータに対応するアドレスが
LRUであることを表示するのを阻止される。
ルックアサイド・バッファは、ロケーションごとに2つ
のエントリを有するように構成される。
全体で1280ケーシヨンあるので、どの時点でも、ル
ックアサイド・バッファで256のページアドレスの変
換または索引が行なわれる。ページアドレスは割当てら
れたロケーションの2つのエントリのどちらかに置かれ
る。しかしながら、仮想アドレスの中の選択されたビッ
トの排他的ORにより一意的に指定された特定の仮想ペ
ージは、ルックアサイド・バッファの128のロケーシ
ョンの甲の1つにしか置くことができない。これはルッ
クアサイド・バッファに128X2aりの関連づけを与
える。
従って、2つの異なったページに対応するアドレスしか
ルックアサイド・バッファの1つのロケーションに吾込
むことができない。ルックアサイド・バッファの同じロ
ケーションを指定する第3の異なったページアドレスが
必要な場合、ルックアサイド・バッファにあたるアドレ
スの1つを4換えねばならない。良好な実施1クリでは
・第1のタイプのデータは命令であり、第2のタイプの
データはオペランドである。2オペランド命令では、2
つのオペランドの実アドレスは、該命令により指定され
た動作をするためルックアサイド・ノくツファ内になけ
ればならない。命令アドレスはオペランドアドレスと同
時に決定されるが、2つのオペランドアドレスがルック
アサイド・バッファに置かれる前に命令アドレスが決定
されることがある。その場合、LRU際識は、ルックア
サイド・バッファにあるオペランドアドレス1LRUと
して表示するのを阻止され、従って次のオペランドアド
レスが決定されると、命令アドレスがルックアサイド・
バッファから取除かれる。従って、マイクロコードによ
り決定されるはずであった2つのオペランドアドレスと
命令アドレスとの間のアドレス決定の潜在的な無限ルー
プが阻止される。
潜在的な無限ループが取除かれるから命令アドレスの早
期決定も可能になり、システム全体の・くフオーマンス
が改善される。
本発明はハードウェアを少し付加するだけでよく、マイ
クロコードの追加・は不要であり、命令アドレスをでき
るだけ早く決定して、潜在的な無限ループの問題を少な
い費用で性能の損失を伴なわずに解決することができる
。更に、ルックアサイド・バッファでオペランドアドレ
スを発見する確率が大きくなる。同様に、バッファのロ
ケーションがオペランドアドレスと命令アドレスの両方
を含む場合、該命令アドレスにL RU 襟mがつけら
れる確率が増大する。変換中、LRU標識がつけられた
アドレスは最後に比較されるので、オペランドアドレス
変換のパフォーマンスは命令アドレス変換を犠牲にして
改善される。しかし、大抵の命令で生じるオペランドア
ドレス変換は、分岐する場合、または命令ストリームが
新しいページに食込む場合にしか起きない命令アドレス
変換と較べてずつと頻度が高いから、相対的に高い頻度
で変換されるタイプのアドレスが保持され、変換中に最
初に比較されるアドレスになる見込みが大きくなるので
、パフォーマンスが向上する。
F、実施例(第1図〜第5図) 全般説明 第2図は本発明を適用できるコンピュータ・システムを
示す概要ブロック図である。CPU(中央処理ユニット
)20はマイクロコード命令を実行する。命令は一時的
にCPU20内の命令ノくツファに書込まれる。命令バ
ッファが空の場合、CPU20はVAT (仮想アドレ
ス変換装置)24に対しF’IB(命令バッファ書込み
)および変換を要求する。仮想アドレスviCPU20
がうcPUバスを介してVAT 24に供給される。V
AT24は、ルックアサイド・バッファを探索し、ルッ
クアサイド・バッファが既にMS(主記憶装置)28の
ロケーションに対応する実アドレス?有するかどうかを
調べる。もしそうなら、VAT24は、MS28および
CPU20に変換完了信号を、MS28にMS7ドレス
信号を送り、MS28は、MSデータ’1cPU20に
供給する。このMSデータは所要の命令、すなわち第1
のタイプのデータである。この命令は次の命令の仮想ア
ドレスを含むこともある。
もし実アドレスがV A T 24 K存在しなければ
、LBミス(ルックアサイド・バッファ・ミス)信号が
cPU2OK供給され、CPU20がアクセスできなか
った命令全実行しようとしたときに、その実アドレスが
マイクロコード・ルーチンにより決定され、ルックアサ
イド・バッファに挿入される。
オペランドと呼ばれる第2のタイプのデータもMS28
に書込まれる。ルックアサイド・バッファは2つのタイ
プのデータの実アドレスを記憶する。ある命令は実行す
るのに2つのオペランド?必要とする。命令バッファは
、オペランド・アドレスの1つの変換中に書込みを必要
とすることがあるので、従来は、オペランドの実アドレ
スの1つは、中間の命令アドレス変換のために他のオペ
ランドのアドレス変換によってルックアサイド・バッフ
ァから削除されていた。命令アドレスのLBミスは、第
2のタイプのデータのアドレスが変換された後に、マイ
クロコード・ルーチンによシ解決される。
次に、第1A図、第1B図、第3図、第4図および第5
図により、VAT24に関連するルックアサイド・バッ
ファの動作を説明する。第1A図の下端の破線部分と第
1B図の上端の対応する破線部分でg1A図と第1B図
は接続されている。
第1A図には、LB(ルックアサイド・バッファ)12
0が示されている。LB120は、ロケーションごとに
2つのエントリヲ有する合計128のロケーションが存
在するように構成されているので、どの時点でも256
のMSページをLB120により変換することができる
。LB120は、エントリごとに5ID(セグメント識
別子)およびFID(フレーム識別子)を含む。FED
は第1のエントリのFIDIと第2のエントリのFED
2とがある。FID1エントリ(ビット0〜14)は実
MSアドレスの上位15ビット’6含む。
FID2エントリ(ピット16〜30)は異なった実M
Sアドレスの上位15ピッl含む。62ビツトの5ID
1は各FID1エントリと関連し、同様に32ビツトの
5rD2は各FM D2エントリと関連する。
下記の第1表は、ページの終りにある2オペランド命令
に対する従来のLBの動作を示す。2つのオペランドの
仮想アドレスは、命令ストリームの次ページの仮想アド
レスと同じLB120のロケーションにハツシュする。
変換されたオペランドアドレスがLB120に存在しな
い場合、その都度、現命令が再始動される。CPUの性
質上、再始動した命令はもはや命令バッファには存在し
ないので、命令バッファは空であると推定され、CPU
は新しいFIB要求を出さねばならない。
仮想アドレスは、0P1(第1オペランド)、FIB、
0P2(第2オペランド)の1勇にアクセスされるが、
FIBはその性質上、マイクロコードがOP1アドレス
のミスを解決する前KLB120をアクセスすることが
ある。次の命令のFIBでのLBミスは現命令が完了し
てからマイクロコードが解決するので、LBミスによっ
て現命令が再始動されることはない。
前記のLB120の動作は本発明により改良され、下記
の第2表に示すように動作する。
本発明による改良により、第1表の従来の方法の潜在的
な無限ループの問題が回避される。第1表では、時間2
で決定されたOPIアドレスは、FIBアドレス変換に
より、時間3でLRUとして表示される。時間4で、O
F2が変換されると、OP1アドレスは、LRUとして
表示されているから、LB120から取除かれる。時間
5で、FIBアドレス変換はり、RU襟1mを変え、O
P2アドレス1LRUとして表示するので、時間6で、
OP1アドレスを再び決定すると、LB120は時間2
の場合と同じ状態になる。第2表では、時間5で、FI
Bアドレス変換はI、RU標識を変更しないから、時間
4で、要求された2つのOPアドレスはLB120に存
在している。
ハードウェアの説明 仮想アドレス変換はCPU20により開始され、第1A
図で変換信号200が活動状態になシ・ CPUバス1
02の6バイトの仮想アドレスが仮想レジスタ101 
(第18図)にロードされる。6バイトの仮想アドレス
の中の選択されたビット69〜47は所望のMSアドレ
ス(第1 A図)の9個の下位ビットになる。選択され
た他のビット23〜17.61〜25、および62〜6
8はXORセレクタ106により排他的ORされてLB
アドレス(・・ツシュ107)を形成し、LB120に
ある特定のロケーションを指定する。いくつかの仮想ア
ドレスは同じハツシュを得るが、どの仮想アドレスも2
つ以上のノ・ツシュすなわちLB120のロケーション
に対応することはない。
LB120における各ロケーションはり、RU標識22
を表わすビット61(第1A図)を含む。
LRU標#、22は、エントリ1がLRUであった場合
には1すなわちオンにセットされ、エントリ2がLRU
であった場合には0すなわちオフにセットされる。第3
図で、LRU標跪22はNOTORゲート217転され
てからANDゲート216でANDされ、更にORゲー
ト217でORされ、LRU22が0の場合は5ID1
選択(SEL  SI  1)信号を生じる。SEL 
 SI  1信号は第1A図のアドレスレジスタ105
に供給され、最後に使用されたエントリがLB12Dで
最初にアクセスされる。変換信号200は一対のラッチ
(LT)203および206に供給され、連続するC1
クロックおよびC2クロックでRDFED  C1信号
およびRD  FID  C2信号を出力する。RD 
 FrD  C1信号は第1A図のANDゲート112
に供給され、C2クロックでF■Dレジスタ115のロ
ード動作を開始させる。F丁Dレジスタ115はり、B
12C1の特定のロケ−7ヨンにある2つのF’IDア
ドレスを受取る。RD  FID  C2信号はAND
ゲート216および218に入力される。LRU標識2
2が0の場合、ANDゲート220およびORゲート2
19ば、第1の二ン11に所望の実アドレスが存在しな
かったことを条件として、アクティブなSEL  SI
  2信号を出力する。SEI、  Sl2信号は第1
A図のアドレスレジスタ105に供給され、LB120
でLRUエントリが2番目にアクセスされる。7ビツト
のハツシュもアドレスレジスタ1[15に供給され、L
B120にある所望のアドレスのロケーションを識別す
る。第6図で、SEL  SI  1信号は一対のラッ
チCLT)210および211に供給され、C1クロッ
クでRD  SI  I  C1信号を出力し、C2ク
ロックでRD  SI  I  C2信号を出力する。
同様に、SFL  SI  2信号が一対のラッチ(L
Tン212および213に供給され、C1クロックでR
D  Sr  2  C’1信号を出力し、C2クロッ
クでRD  Sr  2  C2信号を出力する。
第1A図において、C1クロンクで、変換信号2.00
がORゲート11QからANDゲート1Q9f:介して
アドレスレジスタ105を付勢する。
アドレス指定されたSIDエントリはアレイ出力線11
1を介して第1B図の比較器125に供給され、仮想レ
ジスタ101にある6バイトのアドレスの最初の32ピ
ツトと比較される。両者が一致し、C2クロックで、ア
クティブなRDSII  C1またばRD  Sr  
2  CI信号がORゲート127およびANDゲート
128を介して供給される場合、ラッチ(LT)126
がセットされて一致信号を出力する。この一致信号は第
6図のNOTゲート221、ANDゲート226、AN
Dゲート230およびANDゲート247に供給される
。NOTゲート221の出力はANDゲート222、A
NDゲート220およびANDゲ〜ト246に供給され
る。ANDゲート226および230の出力はORゲー
ト227’i介して一対のラッチ228および229に
送られ、これらのランチは、連続するC1クロックおよ
びC2クロックでWRFID  C1およびWRFID
  C2信号を出力する。WRFID  C1信号はC
2クロックで第1A図のANDゲート145を介してO
Rゲート146に供給され、FEDレジスタ115にあ
たるFIDアドレスがLB120に再書込みされる。L
RU標識はLB120に杏−逓込みされるアドレスの一
部分であり、N。
Tゲート140によりエントリ1一致信号に応答してL
B 120に供給される。エントリ1一致信号は、比較
器125の一故出力およびRDSrI  C1信号がい
ずれもアクティブでANDゲート129f:条件付けた
場合、C2クロックでラッチ150により供給される。
第3図で、SEL  Sr  1およびSEL  Sl
 2信号はORゲート240でORされ、ORゲート2
40の出力はNOTゲート241で反転される。RD 
 Sl  2  C2およびRDSII  C2信号は
ORゲート242でORされる。
NOTゲート241、ORゲート242およびNOTゲ
ート221の出力はANDゲート246でANDされ、
その結果によりLBミスが示される。
LBミス信号はC1クロックでラッチ244から出力さ
れ、LB120にあるエントリは所要の実アドレスを有
しなかったことをCPUに知らせる。
若し、エントリの1つが所要のアドレスを有していたな
ら、ラッチ229からWRFID  C2信号がORゲ
ート248に供給され、ORゲート248は変換完了信
号を出力する。この信号はCPU20およびMS 28
に供給され、FIDレジスタ115から実アドレスが取
得可能であることを知らせる。FIDレジスタ115は
2つのアドレスを有するので、セレクタ155は、ラン
チ160から供給されたエントリー1一致信号に基いて
正しいアドレスを選択する。選択されたアドレスは6バ
イトの仮想アドレスのビット39〜47と組合わされ、
完全な実アドレスをMS2Bに供給する。
第1のタイプのデータ、すなわち命令の取出しの場合、
FIB信号はアクティブである。
第3図で、FIB信号は、標識制御装置を構成するNO
TORゲート217転され、その結果はANDゲート2
26および250に供給され、WRFID  C1およ
びWRFID  C2信号がアクティブにされるのを阻
止する。それによって、FIDレジスタ 115の内容
がLBi20に再書込みされるのを阻止し、従って、N
OTORゲート217.RU標識を変更するのを阻止す
る。変更完了信号を供給するには、WRFID  C2
信号がもはやアクティブではないので、ANDゲート2
47で、FEB信号と、一致信号と、ORゲート246
によるRD  SI  I  C2およびRDSI  
2  C2信号のOR結果とがANDされ、その結果が
ORゲート248に供給されて変換完了信号を出力する
ハードウェアのタイミング 仮想アドレス変換が行なわれる場合、6バイトの仮想ア
ドレスがCPUバス102により仮想レジスタ101に
ロードされる。第4図に示すように、変換信号200は
成るC2クロック時刻から次のC2クロック時刻までの
間アクティブになる。
変換信号200がアクティブになると、アドレスレジス
タ105には、仮−レジスタ101のビット62〜38
、ビット61〜25およびビット23〜17の排他的O
Rからなるノ\ツシュ信号がロードされる。アドレスレ
ジスタ105へのノ・ツシュ信号のロードは、C1クロ
ックでANDゲート109およびORゲー)110によ
り行なわれる。
SEL  SI  1およびSEL  SI  2信号
はまだアクティブではないので、LB120の最初の1
28のロケーションの1つがアドレスレジスタ105に
よりアドレス指定され°る。アドレスレジスタ105が
ロードされる同じC1クロックで、RD  FID  
C1ラッチ206がセットされる。
次の02クロツクで、アドレスレジスタ105によりア
ドレス指定されたLB120の内容がFIDレジスタ1
15にロードされる。FIDレジスタ115へのロード
はANDゲート112により行なわれる。FIDレジス
タ115のビットO〜14ば、第1のLBエントリにあ
るMSアドレスの上位15ビツトに含み、FIDレジス
タ115のビット16〜60は、第2のLBエントリに
あるMSアドレスの上位15ビットヲ含む。F’IDレ
ジスタ115のビット61はLRU標識と呼ばれ、LB
120のロケーションを指定する最後に変換された仮想
アドレスに一致したエントリを示すのに使用される。若
しLRU標識がOなら、LB120のアドレス範囲12
8〜255の中のLB  SID  1エントリがノ・
ツシュにより参照された最後のエントリで、変換される
仮想アドレスが一致したことを示す。若しLRU標識が
1なら、LB120のロケーション256〜383の中
のLB  SID  2エントリが最後に変換された仮
想アドレスと一致した最後のエントリであったことを示
す。  ゛ 次のC1クロックで、RD  Sr  I  Ciラッ
チ210またはRD  S[201ラツチ212がLR
U標識22に応じてセントされる。若しLRU標識22
が0なら、RD  SI  I  Ciラッチ210が
NOTORゲート217NDゲート216およびORゲ
ート217によりセットされ、このLBエントリが最後
の変換で使用され、LB  SID  1エントリが一
致したことを表わす。
もしLRU標識22が1なら、RD  SI  2  
C1ラッチ212がANDゲート218およびORゲー
ト219によりセットされ、このLBエントリが最後の
変換で使用され、LB  SID  2エントリが一致
したことを表わす。同じC1クロツりで、再びアドレス
レジスタ105に、ハソンユと、LRU標職22の値に
応じてSEL  S11またはSEL  SI  2信
号によりオンにされたビット0″!たけビット1とがロ
ードされる。この時点では更にRD  FID  C1
ラッチ203がリセットされる。
次の02クロツクで、RD  SI  I  C1ラッ
チ210がセットされているとRD  lr  IC2
ラツチ211がセットされ、またRD  SI  2C
1ラツチ212がセットされているとRD  SI  
2  C2ラッチ213がセットされる。同じC2クロ
ックで、仮想レジスタ101にある仮想アドレスの4バ
イトのS ID(ビット0〜51)と、LB120から
読取られた4バイトのLBSID(LB  Sより  
1エントリまたはLBSID  2エントリ)とが比較
器125により比較される。両者が一致する場合、一致
ラッチ126はORゲート127およびANDゲート1
28によりセットされる。両者が一致し、かつRDSI
  I  C1ラッチ210がセットされている場合、
エントリ1−故うソチ130はANDゲート128およ
び129ならびにORゲート127によりセツ、トされ
、LB  SID  1のエントリが一致したことを表
わす。この時点で、RD  FID  C2ラッチ20
6がリセットされる。若しFIB信号がアクティブで一
蚊うノチ126がセットされていれば、変換完了信号は
ORゲート246および248ならびにANDゲート2
47によりアクティブになる。
次のC1クロックで、絖取られたSIDエントリが一致
しなかった場合、前に読取られなかったSIDエントリ
が読取られ比較される。若しRDSI  I  C2ラ
ッチ211がセットされていれば、RD  SI  I
  C1ランチ210v′iリセツトされ、RD  S
r  2  C1ラッチ212ばNOTORゲート12
7NDゲート220およびORゲート219によりセッ
トされる。若しRDSr  2  C2ラッチ213が
セットされていれば、RD  Sr  2  Clラッ
チ212はリセットされ、RD  Si  I  C1
ラッチ210はN0Tゲート221、ANDゲート22
2およびORゲート217によりセットされる。
次のC2クロックで(第1のSIDエントリが一致しな
かったことを条件として)、RDSll  Clラッチ
210がセットされているとRDSf  I  C2ラ
ッチ211がセットされ、またRD  Sr  2  
Clラッチ212がセットされているとRD  SI 
 2  C2ラッチ213がセントされる。同じC2ク
ロックで、仮想レジスタ101にある仮想アドレスの4
バイトの5rD(ビット0〜31)と、LB120から
読取られた4バイトのLB  5ID(LB  SID
  1エフトリ塘たはLB  SrD  2エントリ)
とが比較器125により比較される。両者が一致する場
合、一致ラツチ126はORゲート127およびAND
ゲート128によりセットされる。両者が一致する上に
、RD  SI  I  C1う7チ2’10がセット
されている場合、エントリ1一致ラッチ130はAND
ゲート128および129ならびにORゲート127に
よりセットされ、LB  SlD 1のエントリが一致
したことを表わす。若しFIB信号がアクティブで一致
ラツチ126がセットされていれば、変換完了信号はO
Rゲート246および248ならびにANDゲート24
7によりアクティブになる。
若し一致ラツチ126がLB  SID  1またはL
B  SID  2によりセントされており、かつFI
B信号がアクティブではないなら、次のC1クロックで
、RD  SI  i  C1ラッチ210およびRD
  Sr  2  C1う:7チ212はりセットされ
る。同時に、WRFED  Clラッチ228は、LB
  SID  1が抗取られたときに一致が生じた場合
にはANDゲート226およびORゲート227によリ
セットされ、LB  SID  2が読取られたときに
一致が生じた場合にはANDゲート260およびORゲ
ート227によりセットされる。NOTORゲート12
7F’IBが変換されている場合に、LB  FIDが
筑取られるのを阻止し、従ってLB120のロケーショ
ンのLRU標鐘22が変更てれるのを阻止する。
若しFIB信号がアクティブでv′iなく、かつ一致ラ
ッチ126がセットされていれば、次のC2クロックで
、RD  SI  I  C2ラッチ211およびRD
  SI  2  C2ラッチ216はリセットされる
。同時に、WRF’ID  C2ラッチ229はWRF
ID  C1ラッチ228がセットされている場合には
セットされる。WRFID  Clラッチ228は(F
IB変換が行なわれていないから)セットされているの
で、NOTゲット14[)により生成された新しいLR
U標識と連結されたFIDレジスタ115のピット0〜
30ば、ANDゲート145およびORゲート146を
介してハツシュによりアドレス指定されたしB120の
ロケーションのFIDエントリに書込まれる。変換完了
信号はこの時点でORゲート248によりアクティブに
なる。
MSアドレスは、SIDが一致して変換完了信号がアク
ティブになった後、仮想レジスタ1010ビツト39〜
47と連結されたセレクタ135によりM828にとっ
て有効となる。セレクタ155は、エントリ1一致ラッ
チ150がセットされると、FIDレジスタ115のピ
ット0〜14をMSアドレスの上位15ビツトとしてゲ
ートし、エントリ1一致信号のラッチ130がリセット
されると、LB  FIDレジスタ115のビット16
〜60をMSアドレスの上位15ビツトとしてゲートす
る。
若しLB  SIDID上リがどちらも仮想レジスタ1
01の仮想アドレスの最初の4バイトに一致しなかった
なら、第2のLB  SID比較後のC1クロックで、
LBミスラッチ244がORゲート240および242
、NOTORゲート146び221ならびにANDゲー
ト243によりセットされる。
特定の条件による動作 条件1:オペランド変換はCPUにより開始され、LR
U標識はオフであり、ノ・ツシュにより参照されるLB
120のSID  2エントリが仮想レジスタ101に
ある仮想アドレスの最初の4バイトに一致する。LRU
標識がオフであるから、RD’SI  I  C1信号
がアクティブになってSID  1工/トリが最初に読
取られる。5ID1エントリは一致しないから、RD 
 SI  2O2信号がアクティブになった時にSID
  2エントリが読取られる。読取られたSID  2
エントリは仮想レジスタ101の最初の4バイトのSI
Dと一致するから、一致信号はオンでありエントリ1一
致信号はリセットされる。一致が生じたので、LB12
0のロケ−7ヨンば、WFt  FID  C1信号が
アクティブのときオンのLRU標識とともに再書込みさ
れる。これはSID  2エントリが最後に一致したこ
とを表わす。FIDレジスタ115のビット16〜30
と仮想レジ名り101のピット39〜47との連結によ
り形 されたMSアドレスは、LB120のロケーショ
ンの書込み中にMS28に送られる。そのとき変換完了
信号が生 され、変換が終ったことを示す。
条件2 : (第4図)オペランド変換はCPUにより
開始され、LRU標識はオフであり、ノ・ランスによシ
参照されるLB120のSID  1エントリが仮想レ
ジスタ101にある仮想アドレスの最初の4バイトと一
致する6LRU標識はオフであるから、RD  SI 
 I  C1信号がアクティブのときにSID  1エ
ントリが最初に読取られる。読取られたSID  1エ
ントリは仮想レジスタ101の最初の4バイトのSID
と一致するから、一致信号およびエントリ1一致信号は
アクティブである。一致が生じたので、LBi20のロ
ケーションは、WRFID  C1信号がアクティブの
ときにオフのLRU標識とともに再書込みされる。これ
はLB  SID  1エントリが最後に一致したこと
を表わす。MSアドレスは、FIDレジスタ115のビ
ットD〜14と仮想レジスタ1010ビツト39〜47
との連結により形され、L 13120のロケーション
の苔込み中にMS28に送られる。そのとき変換完了信
号が生され、K換が終ったことを示す。
条件3=(第5図)命令変換はCPUにより開始され、
LRU標識はオフであり、ノ・ツシュにより参照される
LB120のSID  1エフ ト’J カ仮想レジス
タ101にある仮想アドレスの最初の4バイトと一致す
る。命令変換が行なわれているから、FIB信号は、変
換完了またはLBミス信号がアクティブになるまでアク
ティブである。LRU標識はオフであるから、SID 
 1エントリはRD  SI  I  C1信号がアク
ティブになると最初に読取られる。読取られたSID 
 1エントリは仮想レジスタ101の最初の4バイトの
SIDと一致するから、一致信号はアクティブとなシ、
エントリ1一致信号もアクティブとなる。FIB信号は
アクティブであるから、FIDレジスタ115はLBI
20に書込まれない。その代りに、変換完了信号がアク
ティブになる。従って、LB120の関連するロケーシ
ョンにあるLRIJ標識はFIB変換中には変更されな
い。MSアドレスは、FIDレジスタ115のビット0
〜14と仮想レジスタ101のビット69〜47との連
結により形 され、MS28に送られる。そのとき変換
完了信号がアクティブになり、変換が終ったことを示す
G9発明の効果 本発明により、仮想アドレスの変換による実アドレスの
決定を効率的に実行してシステムのパフォーマンスを向
上することができる。
【図面の簡単な説明】
第1A図、第1B図および第3図は本発明に従うアドレ
ス変換装置の詳細を示すブロック図、第2図は本発明を
適用し得るコンピュータ・システムを示すブロック図、
第4図は第2のタイプのデータのアドレスを決定する場
合のルックアサイド・バッファのタイミング図、第5図
は第1のタイ゛プのデータのアドレスを決定する場合の
ルックアサイド・バッファのタイミング図である。 20・・・・CPU、24・・・・VAT、28・・・
・MS、101・・・・仮想レジスタ、105・・・・
アドレスレジスタ、106・・・・XORセレクタ、1
15・・・・FIDレジスタ、120・・・・LB、1
25・・・・比較器、135・・・・セレクタ。 第2図 C2クロック *換完了 才2のタイプの子−7のアドレ又拍 決え1ろ場合のタイミレグ 第4図 C2クロック *換完了 峰1のタイプのデーダのアドレスを 決嵐噌る場、会のケイミンデ 第5図

Claims (1)

  1. 【特許請求の範囲】 少なくとも第1のタイプのデータおよび第2のタイプの
    データをページ形式で記憶するメモリの実アドレスを仮
    想アドレスにより索引するコンピュータシステムのルッ
    クアサイド・バッファを備え、前記バッファは異なつた
    タイプのデータを含む少なくとも2ページの実アドレス
    を選択されたロケーションに保持し、前記実アドレスの
    1つをLRU標識により最も長い間使用されていなかつ
    たものとして指示して更にもう1つの実アドレスが決定
    された場合に削除するように構成され、 第1のタイプのデータに対応するバッファアクセスを検
    出するデータタイプ検出手段と、 前記データタイプ検出手段に結合され、第1のタイプの
    データの実アドレスがアクセスされた場合、前記LRU
    標識が、第2のタイプのデータに対応するアドレスが最
    も長い間使用されていなかつたことを表示するのを阻止
    し、第1のタイプのデータのページアドレスを決定した
    ことにより第2のタイプのデータのページアドレスがル
    ックアサイド・バッファから削除されないようにする標
    識制御手段と、 を含む仮想アドレス変換装置。
JP60104142A 1984-09-07 1985-05-17 仮想アドレス変換装置 Granted JPS6167160A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/648,905 US4648033A (en) 1984-09-07 1984-09-07 Look-aside buffer LRU marker controller
US648905 1984-09-07

Publications (2)

Publication Number Publication Date
JPS6167160A true JPS6167160A (ja) 1986-04-07
JPH0327940B2 JPH0327940B2 (ja) 1991-04-17

Family

ID=24602700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60104142A Granted JPS6167160A (ja) 1984-09-07 1985-05-17 仮想アドレス変換装置

Country Status (5)

Country Link
US (1) US4648033A (ja)
EP (1) EP0173909B1 (ja)
JP (1) JPS6167160A (ja)
CA (1) CA1229423A (ja)
DE (1) DE3586227D1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62222344A (ja) * 1986-03-25 1987-09-30 Hitachi Ltd アドレス変換機構
US5136692A (en) * 1987-02-13 1992-08-04 International Business Machines Corporation Memory disk buffer manager
NL8800858A (nl) * 1988-04-05 1989-11-01 Philips Nv Rekenmachinesysteem voorzien van een hoofdbus en een tussen processor en geheugen direkt verbonden extra kommunikatielijn.
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
US5491806A (en) * 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
FR2664719A1 (fr) * 1990-07-10 1992-01-17 Philips Electronique Lab Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
US5293608A (en) * 1991-04-19 1994-03-08 Legent Corporation System and method for optimizing cache memory utilization by selectively inhibiting loading of data
US5446854A (en) * 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
CN104850508B (zh) * 2015-04-09 2018-02-09 深圳大学 基于数据局部性的访存方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7510904A (nl) * 1975-09-17 1977-03-21 Philips Nv Woordgroepsprioriteitsinrichting.
US4170039A (en) * 1978-07-17 1979-10-02 International Business Machines Corporation Virtual address translation speed up technique
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4467414A (en) * 1980-08-22 1984-08-21 Nippon Electric Co., Ltd. Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories
US4437155A (en) * 1980-11-14 1984-03-13 Sperry Corporation Cache/disk subsystem with dual aging of cache entries
US4400774A (en) * 1981-02-02 1983-08-23 Bell Telephone Laboratories, Incorporated Cache addressing arrangement in a computer system
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
JPS5853075A (ja) * 1981-09-25 1983-03-29 Nec Corp 高速分離バツフアを備えた情報処理装置
AU3229484A (en) * 1983-09-07 1985-03-14 Amdahl Corporation Time shared translation buffer

Also Published As

Publication number Publication date
CA1229423A (en) 1987-11-17
US4648033A (en) 1987-03-03
DE3586227D1 (de) 1992-07-23
EP0173909A2 (en) 1986-03-12
EP0173909B1 (en) 1992-06-17
EP0173909A3 (en) 1988-09-14
JPH0327940B2 (ja) 1991-04-17

Similar Documents

Publication Publication Date Title
KR960001946B1 (ko) 우선 변환 참조버퍼
JP3936378B2 (ja) アドレス変換装置
US5918251A (en) Method and apparatus for preloading different default address translation attributes
US6145064A (en) Method of efficiently updating hashed page tables
US5287475A (en) Data processing apparatus operable in extended or unextended virtual address spaces without software modification
US6446034B1 (en) Processor emulation virtual memory address translation
JPH03194632A (ja) 変換予見にもとづくキャッシュアクセス
US5873123A (en) Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
EP0408058A2 (en) Microprocessor
JPH06231043A (ja) 仮想記憶システムにおけるデータ転送装置及びその方法
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
JP2003511788A (ja) 微細粒度変換判別
JP3662619B2 (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
JPS6167160A (ja) 仮想アドレス変換装置
US6021481A (en) Effective-to-real address cache managing apparatus and method
CA1262287A (en) Explicit instructions for control of translation lookaside buffers
KR100218617B1 (ko) 변환우선참조 버퍼를 이용하여 메모리를 관리하는 데이터 처리 시스템의 효율적인 메모리 관리 방법 및 시스템과 그를 이용한 데이터 처리 시스템
US5341485A (en) Multiple virtual address translation per computer cycle
US5051894A (en) Apparatus and method for address translation of non-aligned double word virtual addresses
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation
JPH10301848A (ja) 多重ページサイズを有する仮想記憶装置
AU708232B2 (en) A method of efficiently updating hashed page tables
JPS6010336B2 (ja) アドレス比較方式
JPH07334422A (ja) キャッシュメモリ装置