JPH08101797A - 変換索引バッファ - Google Patents

変換索引バッファ

Info

Publication number
JPH08101797A
JPH08101797A JP7210253A JP21025395A JPH08101797A JP H08101797 A JPH08101797 A JP H08101797A JP 7210253 A JP7210253 A JP 7210253A JP 21025395 A JP21025395 A JP 21025395A JP H08101797 A JPH08101797 A JP H08101797A
Authority
JP
Japan
Prior art keywords
page
entry
virtual
tlb
memory
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
JP7210253A
Other languages
English (en)
Inventor
Kumar Rajendra
ラジェンドラ・クマー
Paul G Emerson
ポール・ジー・エマソン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH08101797A publication Critical patent/JPH08101797A/ja
Pending 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

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)【要約】 【課題】 可変ぺージサイズの仮想メモリにおいて、仮
想ぺージ番号を物理ぺージ番号に変換する変換索引バッ
ファ(TLB)を提供する。 【解決手段】TLBは仮想ぺージ番号を上位及び下位部
分に分割する。上位部分は、第1の内容アドレス・メモ
リ(CAM)にある上位仮想ぺージ・エントリと比較さ
れ、下位部分は、いくつかのビットが第2のCAMにあ
る下位仮想ぺージ・エントリの対応する数のビットと選
択的に比較される。TLBは複数のぺージサイズ・エン
トリを持つぺージサイズ・メモリを持ち、比較される各
下位仮想ぺージ・エントリの前記ある数のビットは、対
応するぺージサイズ・エントリによって指定される。比
較の結果、一致が第1及び第2のCAMにある場合、T
LBはヒットがあることを示し、有効なアドレス変換が
行われる。このように、選択的比較を行うことにより、
可変ぺージサイズのアドレス変換が可能になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータのメ
モリ装置、具体的には、仮想アドレスから物理アドレス
に変換するためのキャッシュ構造に関する。
【0002】
【従来の技術】仮想記憶装置は、コンピュータに物理的
に存在するよりもかなり大きなアドレス空間をコンピュ
ータ・プログラマに提供する、コンピュータ・アーキテ
クチャで使われるアドレス指定方法である。仮想メモリ
空間の部分が物理メモリ空間の部分に、仮想アドレスか
ら物理アドレスへの変換を介してマップされる。この変
換は、典型的には、与えられた仮想ページ番号に対し
て、対応する物理ページ番号を生じるページテーブルに
よって達成される。この変換方法は、物理メモリが、い
わゆるページとよばれる不連続な部分に分割されること
を必要とする。仮想メモリのページは、コンピュータ・
プログラムの必要に応じて物理アドレス空間に持ってこ
られる。
【0003】ページの大きさ(サイズ)をどう選択する
かは、いくつかの条件の釣り合いを必要とする。ページ
サイズが小さいほど、ページテーブルには多くのエント
リが必要になる。この結果、より多くのメモリがページ
テーブルによって使用される。典型的には、このページ
テーブルは、常にメモリになければならない。しかし、
ページテーブルを大きくすることは、プログラムが所与
のページのメモリ空間のすべてを必要としない場合、内
部の断片化につながる。さらに、ページサイズを大きく
することは、いっそう多くの入出力帯域幅を使い、処理
のスタートアップ時間を増やす。
【0004】これらの条件の釣り合いをとる手法として
可変ページサイズを提供することが提案されている。典
型的には、この手法は、オペレーティング・システムが
所与の処理に異なるページサイズを指定できるようにす
るものである。所与の処理に対するページテーブルのエ
ントリが、ページサイズの変化を反映するように修正さ
れる。可変ページサイズは、仮想アドレスから物理アド
レスへの変換を記憶するために使用されるキャッシュに
かなりの影響を与える。典型的なキャッシュは、内容ア
ドレス・メモリ(content addressable memory:CA
M)に記憶された固定長タグを持つ。ページサイズを変
えることは、内容アドレス・メモリに記憶されなければ
ならないビット数に影響を及ぼす。したがって、可変ペ
ージサイズの仮想メモリ装置において、仮想アドレスか
ら物理アドレスへの変換を記憶するキャッシュメモリが
必要になる。
【0005】
【発明が解決しようとする課題】本発明の目的は、可変
ページサイズの仮想メモリ装置において、仮想アドレス
から物理アドレスへの変換を記憶するための融通性のあ
るキャッシュメモリを提供することである。
【0006】
【課題を解決するための手段】本発明の目的は、可変サ
イズの仮想ページ番号を物理ページ番号に変換する変換
索引バッファ(translation look-aside buffer: TLB)
によって実現できる。本発明による変換索引バッファ
は、物理ページ番号の複数のエントリを記憶するページ
番号メモリを含む。TLBは、また、複数の上位仮想ペ
ージ・エントリを含み、上位仮想ページ・エントリの各
々に対して、仮想ページ番号の上位部分と上位仮想ペー
ジ・エントリとを比較し、上位部分が上位仮想ページ・
エントリにある場合に一致が見つかったことを示す比較
器回路を有する第1の内容アドレス・メモリを備える。
TLBは、さらに、複数の下位仮想ページ・エントリを
含み、下位仮想ページ・エントリの各々に対して、仮想
ページ番号の下位部分のある数のビットと下位仮想ペー
ジ・エントリの対応する数のビットとを選択的に比較
し、下位部分のある数のビットが下位仮想ページ・エン
トリにある場合に一致が見つかったことを示す比較器回
路を有する第2の内容アドレス・メモリを備える。一致
が第1および第2の内容アドレス・メモリにある場合、
TLBはヒットを示し、有効な変換が作られる。TLB
は、さらに、複数のページサイズ・エントリを含むペー
ジサイズ・メモリを含み、下位仮想ページ・エントリの
各々についてのある数のビットは、対応するページサイ
ズ・エントリによって指定される。
【0007】本発明の利点は、TLBが、TLBの中の
各エントリについて、異なるページサイズに対応できる
ことである。
【0008】本発明のもう1つの側面として、TLBか
ら外されたTLBエントリを記憶するために、フルアソ
シアティブの犠牲キャッシュ(victim cache)がTLB
に結合されている。TLBにミスがある場合、仮想アド
レスから物理アドレスへの変換が犠牲キャッシュにある
かが調べられる。
【0009】本発明のもう1つ利点は、TLBと犠牲キ
ャッシュを組み合わせることにより、TLBだけの場合
に較べてミス率が改善されることである。
【0010】
【発明の実施の形態】図1に、本発明による変換索引バ
ッファ(TLB)10の平面図を示す。TLB10は、
複数の物理ページ番号エントリを含むページ番号メモリ
12を含む。各物理ページ番号エントリは、所与の仮想
ページ番号に対する、仮想アドレスから物理アドレスへ
の変換である。ページ番号メモリ12は従来の静的ラン
ダム・アクセス・メモリ(RAM)である。
【0011】TLB10は、また、複数の上位仮想ペー
ジ・エントリを含み、上位仮想ページ・エントリの各々
に対して、仮想ページ番号の上位部分と上位仮想ページ
・エントリとを比較し、上位部分が上位仮想ぺージ・エ
ントリに見つかった場合に一致があることを示す比較器
回路を有する第1の内容アドレス・メモリ(CAM)1
4を備える。したがって、第1のCAM14はフルアソ
シアティブメモリである。第1のCAM14のエントリ
の各々は、ページ番号メモリ12の対応するエントリに
関連している。
【0012】TLB10は、さらに、複数の下位仮想ペ
ージ・エントリを含み、下位仮想ページ・エントリの各
々に対して、仮想ページ番号の下位部分のある数のビッ
トと下位仮想ページ・エントリの対応する数のビットと
を選択的に比較し、下位部分のある数のビットが下位仮
想ぺージ・エントリに見つかった場合に一致があること
を示す比較器回路を有する第2の内容アドレス・メモリ
(CAM)16を備える。第2のCAM16の各エント
リは、ページ番号メモリ12の対応する物理ページ番号
エントリに関連している。TLB10は、同じ物理ペー
ジ番号エントリに対して第1および第2の内容アドレス
・メモリ14および16に一致が生じた場合に、ヒット
であることを示す。
【0013】仮想ページ番号の下位部分のすべてのビッ
トが、CAM16によって、CAM16に記憶されてい
る下位仮想ページ・エントリと比較されるわけではな
い。CAM16は、下位仮想ページ・エントリのある数
のビットと、仮想ページ番号の下位部分の対応する数の
ビットとを選択的に比較する。この選択的な比較によ
り、TLB10の各エントリの可変ページサイズが許さ
れる。
【0014】TLB10は、複数のページサイズ・エン
トリを含むページサイズ・メモリ18を含み、各ページ
サイズ・エントリは、第2のCAM16の中での比較に
使われる対応する物理ページ番号のビットの数を指定す
る。ページサイズ・メモリ18の各ページサイズ・エン
トリは複数のビットを含む。ページサイズ・エントリの
各ビットは、第2のCAM16の中のエントリの対応す
るビットに関連する。ページサイズ・エントリのビット
の状態によって、CAM16の対応ビットと仮想ページ
番号の下位部分の関連ビットとの間の比較を行うかどう
かが決められる。ページサイズ・エントリのビットがイ
ネーブル状態に設定されている場合に比較は実行され
る。該ビットがディスエーブル状態に設定されている場
合、比較は実行されない。この動作は、図2を参照した
CAM16の以下の記述により、よりよく理解されよ
う。
【0015】TLB10は、さらに、ページ番号メモリ
12の対応する物理ページ番号エントリへのアクセス権
を示す複数のアクセス権エントリを持つアクセス権メモ
リ20を含む。アクセス権は、たとえば、読取り、書込
み、実行、優先度レベル等を含む。これらのアクセス権
により、オペレーティング・システムは、アクセス権に
したがって物理ページへのアクセスを制御することがで
きる。
【0016】上記により、TLB10は、複数のTLB
エントリを持つものと考えることができ、各TLBエン
トリは、上位仮想ページ・エントリ、ページサイズ・エ
ントリ、下位仮想ページ・エントリ、アクセス権エント
リ、および、対応する物理ページ番号エントリを含む。
実施例では、TLB10は、フルアソシアティブ・キャ
ッシュ(fully associative cache)である。しかし、
本発明はフルアソシアティブに限られることはなく、代
わりに、直接マップ・キャッシュ(direct-mapped cach
e)、および、セットアソシアティブ・キャッシュ(set
-associative cache)にも適用することができる。
【0017】図2に、TLBエントリの部分の概略図を
示す。図示した部分には、上位仮想ページ・エントリ・
ビット22、ページサイズ・エントリ・ビット24、お
よび、下位仮想ページ・エントリ・ビット26が示され
ている。ビット22、24、26のそれぞれは、周知
の、従来技術の6-トランジスタ・メモリ記憶セルであ
る。ビット22、24、および26は共通に、TLBエ
ントリを選択するのに使用される語線28によって駆動
される。語線28は、周知の方法で、各ビットに関連し
ている2パストランジスタのゲートに接続されている。
また各ビットには、対応するビットに読み/書きを行う
ために、例えばビット線UVPN、および、〜ビット線UVPN
のような、2つの相補ビット線が関連している。
【0018】ビット22および26には、それぞれに対
応する単一ビット比較器30および32が接続されてい
る。実施例では、図2に示すように、単一ビット比較器
30および32のそれぞれは、排他的OR(XOR)ゲ
ートおよびプルダウン・トランジスタを含む。XORゲ
ートは、XORゲートの出力を形成するように、それぞ
れの出力端子が互いに結合されている2個のトランジス
タで構成されている。XORゲートは、また、よく知ら
れているように、メモリセルに結合された入力の第1の
組、および、ビット線に結合された入力の第2の組を含
む。たとえば、比較器30のXORゲートは、電界効果
型トランジスタ34および36を含む。トランジスタ3
4および36のゲートは入力の第1組を含み、その入力
の組はメモリセル22に結合されている。比較器30の
入力の第2の組は、トランジスタ34および36のソー
スで構成され、これらのソースは相補ビット線に結合さ
れている。トランジスタ34および36のソースは出力
38を形成するように互いに結合されている。
【0019】プルダウン・トランジスタ40および42
は、それぞれ、単一ビット比較器30および32に含ま
れている。プルダウン・トランジスタは、それぞれ、関
連XORゲートの出力に結合された制御入力を含む。た
とえば、比較器30の出力38は、プルダウン・トラン
ジスタ40の制御入力、すなわち電界効果型トランジス
タのゲートに結合されている。プルダウン・トランジス
タ42が同様に単一ビット比較器32のXORゲートに
接続されている。プルダウン・トランジスタは、XOR
ゲートがメモリセルの内容と相補ビット線上の信号との
間の比較で一致を生じない場合に、一致線44を低くす
る。一致線は、正電源電圧と一致線44との間に結合さ
れているプレチャージ(予備充電)トランジスタ46に
よって高く予備充電される。実施例では、この予備充電
トランジスタ46は、相補クロック信号 〜CLKによ
って駆動される制御入力を持つP-チャネル・トランジ
スタである。上位および下位仮想ページ・エントリの各
ビットは、一致線にも結合された、同様のプルダウン・
トランジスタを含む。図2から明らかなように、XOR
ゲートのどれもが一致を生じない場合、関連プルダウン
・トランジスタが一致線を低くして、対応するTLBエ
ントリにミスがあることを示す。実施例のようなフルア
ソシアティブTLBでは、仮想ページ番号はTLBの全
てのエントリと比較され、直接マップTLBでは、仮想
ページ番号はTLBの1つのエントリだけと比較され
る。
【0020】下位仮想ページ・エントリの各ビットに
は、関連する単一ビット比較器による比較を選択的に可
能にするために、トランジスタ48のようなイネーブル
・トランジスタが含まれている。イネーブル・ゲート
は、対応するページサイズ・エントリの対応するビット
に結合されている制御入力を含む。図2に示すように、
ページサイズ・ビット24が、イネーブル・トランジス
タ48の制御入力50にイネーブル線52を介して結合
されている。ページサイズ・ビット24がイネーブル状
態に設定された場合、イネーブル・トランジスタ48が
イネーブルされ、単一ビット比較器32による比較が行
われる。他方、ビット24がディスエーブル状態に設定
された場合、プルダウン・トランジスタ42がXORゲ
ートの出力のいかんにかかわらず一致線44を低くする
ことができないので、単一ビット比較器32はディスエ
ーブルされる。図2に示した複数のトランジスタにとっ
て、イネーブル状態は論理レベル1に等しく、ディスエ
ーブル状態は論理レベル0に等しい。しかし、代わりの
トランジスタ(たとえば、P-チャネル・トランジス
タ)が使用された場合、それに応じて、イネーブルおよ
びディスエーブル状態の論理レベルは変わる。
【0021】下位仮想ページ・エントリの各ビットは、
関連ページサイズ・エントリに対応するビットを持つ。
したがって、下位仮想ページ・エントリの各ビットは、
関連ページサイズ・エントリの対応するビットの状態に
応じて、選択的にイネーブルまたはディスエーブルされ
る。ページサイズ・メモリ18の各ページサイズ・エン
トリは異なる二進値に設定することができ、それによ
り、オペレーティング・システムが、各ページ番号の大
きさを個々に変えることができる。これにより、オペレ
ーテイング・システムは、異なる仕事および/または処
理に異なるページサイズを割り当てる際に、大きな融通
性を持つことができる。
【0022】再び図1を参照すると、仮想ページ番号の
上位および下位の部分のビットの数は、使用可能なペー
ジサイズの大きさおよび数によって決められる。図1で
は、仮想ページ番号の下位部分および仮想アドレスのイ
ンデックスが固定フィールドとして示されているが、こ
れらのフィールドの大きさは、関連物理ページ番号の大
きさに応じて変化する。仮想ページ番号の上位部分のビ
ットの数は、最大許容ページサイズによって決められ
る。最大許容ページサイズに対しては、仮想ページ番号
の下位部分のビットのどれも第2のCAM16によって
比較されない、すなわち、第2のCAM16の対応する
エントリにおける比較器のすべてがディスエーブルされ
る。この最大許容ページサイズの場合、インデックス・
フィールドは、実際には、仮想ページ番号の上位部分を
除いた仮想アドレスのすべてのビットを含む。対応する
物理ページ番号のビットの数は、それに応じて変わる。
他の極端、すなわち最小許容ページサイズの場合、仮想
ページ番号の下位部分のすべてのビットが、第2のCA
M16によって比較される。この場合、インデックス・
フィールドは、仮想ページ番号の下位部分のビットのど
れも含まない。もちろん、これらの2つの極端なケース
の中間には、第2のCAM16の中でイネーブルされた
各ビットに対し、インデックス・フィールドが大きくな
り、仮想ページ番号の下位部分が1ビット単位で小さく
なる、多くの変形がある。
【0023】本発明のもう1つの側面として、図3に示
すように、フルアソシアティブ犠牲TLB60が、主T
LBと呼ばれるTLB10に結合されている。犠牲TL
Bは、仮想ページ番号を記憶するための内容アドレス・
メモリ・アレー62、および、対応する物理ページ番号
を記憶するためのRAMアレー64を含むフルアソシア
ティブ・キャッシュである。犠牲TLB60は、TLB
60がアクセスされたとき、一致を求めるために犠牲T
LB60のすべてのエントリが同時に探索されるという
意味でフルアソシアティブである。同様に、本発明のこ
の実施例において、主TLB10はフルアソシアティブ
である。犠牲TLBの大きさは、TLBの所望ヒット率
に応じて変えられる。犠牲TLB60のエントリの大き
さは主TLB10のそれに一致する。
【0024】犠牲キャッシュは従来技術で使用されてい
るが、フルアソシアティブ・キャッシュではなく直接マ
ップ・キャッシュと共に使用されている。これについて
は、「フルアソシアティブ・キャッシュおよび先取りバ
ッファの追加による直接マップ・キャッシュの性能改
善」(Norman Jouppi, Improving Direct-Mapped Cache
Performance by the Addition of a Small Fully-Assoc
iative Cache and Prefetch Buffers, Proceedings of
the 17th Annual International Symposium onComputer
Architecture, May 28-31, 1990, pp 364-373)を参照
されたい。
【0025】動作としては、仮想アドレス・レジスタ6
6は、中央処理装置から仮想アドレスを受け取り、該仮
想アドレスにある値をラッチする。レジスタ66の内容
は、双方向トライステート・ドライバ70により、バス
68を介して主TLB CAMに提供される。トライス
テート・ドライバ70は、方向入力およびイネーブル入
力を持つ従来技術の双方向ドライバである。発明に集中
するために、以下のトライステート・ドライバ70およ
びその他のすべてのドライバを駆動する関連論理に関す
る記述は省略する。これらのトライステート・ドライバ
を駆動するのに必要な論理をどう設計するかは、当業者
にはよく知られている。
【0026】レジスタ66の内容は、双方向トライステ
ート・ドライバの第2の組72によって、CAMアレー
62にも提供される。レジスタ66に保持されている仮
想アドレスは、主TLB CAMへと同時すなわち同じ
クロック・サイクル中に、CAMアレー62に提供され
る。したがって、主TLBおよび犠牲TLBは同時に探
索できる。
【0027】主TLB10のRAMアレーは、バス76
を介してレジスタ74に結合されている。TLBのエン
トリの物理ページ番号は、主TLBに一致があることを
予期して、レジスタ74に記憶される。レジスタ74の
内容は、物理ページ・インデックス(図示せず)と共
に、双方向トライステート・ドライバの第3の組80に
より、アドレス・バス78を通ってメインメモリに提供
される。主TLB10にミスがある場合、それはヒット
/ミス線(図示せず)上に示され、バス78上に提供さ
れたデータは、メモリ装置によって単に無視される。
【0028】主TLB10にミスがある場合、犠牲TL
Bに一致があるか調べられる。CAMアレー62に一致
がある場合、RAMアレー64に記憶されている関連物
理ページ番号は、アレー64とレジスタ82との間に結
合されたバス84を通って、レジスタ82に提供され
る。レジスタ82に提供された物理ページ番号は、レジ
スタ82に記憶される。次に、レジスタ82の内容は、
双方向トライステート・ドライバの第4の組86によ
り、アドレス・バス78上に駆り出される。ドライバ8
6は、ドライバ80とは異なる時点すなわち次のクロッ
ク・サイクルおよび主TLB10でミスが見つかった後
でイネーブルされるので、バス78に対する競合はな
い。
【0029】犠牲TLB60に記憶されているTLBエ
ントリは、TLBが動作するオペレーテイング・システ
ムの置き換えアルゴリズムにしたがって置き換えられた
主TLBのTLBエントリである。すなわち、主TLB
10からエントリが外されると、その外されたエントリ
は犠牲TLB60に記憶される。これにより、主TLB
だけの場合に較べて、主TLBと犠牲TLBとを組み合
わせた場合のミス率を効果的に下げることができる。主
TLBにミスがあり、犠牲TLBにヒットがある場合、
必要に応じて、犠牲TLBの一致したエントリを主TL
Bに記憶させることができる。代わりに、犠牲TLBエ
ントリを犠牲TLB60だけに置いておくこともでき
る。主TLBおよび犠牲TLBの両方にミスがあり、ペ
ージテーブルから物理ページ番号を取り出す必要がある
場合は、取り出された物理ページ番号を、主TLBもし
くは犠牲TLBのどちらか、または、その両方に記憶さ
せることができる。上述したように、犠牲TLB60
を、本発明の実施例のように可変ページサイズのTLB
10と組み合わせて使用することも、固定ページサイズ
のTLB構造と組み合わせて使用することもできる。
【0030】本発明には、例として次のような実施態様
が含まれる。 (1)仮想ページ番号を物理ページ番号に変換する変換
索引バッファ(10)であって、前記変換索引バッファ
が、複数の物理ページ番号エントリを記憶するページ番
号メモリ(12)と、複数のページサイズ・エントリを
含むページサイズ・メモリ(18)と、複数の仮想ペー
ジ・エントリを含み、前記仮想ぺージ番号のある数のビ
ットと前記仮想ぺージ・エントリの対応する数のビット
とを選択的に比較し、前記仮想ぺージ番号の前記のある
数のビットが前記仮想ぺージ・エントリに見つかった場
合に一致があることを示す比較器回路を有する内容アド
レス・メモリと、を備え、一致が生じた場合に変換索引
バッファがヒットを示し、前記仮想ぺージ・エントリの
それぞれの前記ある数のビットは対応するぺージサイズ
・エントリによって指定される、変換索引バッファ。
【0031】(2)前記内容アドレス・メモリが、複数
の上位仮想ぺージ・エントリを含み、前記仮想ぺージ番
号の上位部分と前記上位仮想ぺージ・エントリとを比較
し、前記上位部分が前記上位仮想ぺージ・エントリに見
つかった場合に一致があることを示す比較器回路(3
0)を有する第1の内容アドレス・メモリ(14)と、
複数の下位仮想ぺージ・エントリを含み、前記仮想ぺー
ジ番号の下位部分のある数のビットと前記下位仮想ぺー
ジ・エントリの対応する数のビットとを選択的に比較
し、前記下位部分の前記のある数のビットが前記下位仮
想ぺージ・エントリに見つかった場合に一致があること
を示す比較器回路(32)を有する第2の内容アドレス
・メモリ(16)と、を備え、前記第1および第2の内
容アドレス・メモリに一致が生じた場合に前記変換索引
バッファがヒットを示し、前記下位仮想ぺージ・エント
リのそれぞれの前記ある数のビットは対応するぺージサ
イズ・エントリによって指定される、上記(1)に記載
の変換索引バッファ。 (3)前記第2の内容アドレス・メモリの前記比較器
が、前記下位仮想ぺージ・エントリの各ビットに対し、
単一ビット比較器(32)と、前記単一ビット比較器に
よる比較を選択的にイネーブルするために前記単一ビッ
ト比較器に結合されたイネーブル・トランジスタ(4
8)と、を有し、イネーブル・ゲートが対応するぺージ
サイズ・エントリの対応するビットに結合された制御入
力を持ち、前記イネーブル・トランジスタが、前記ぺー
ジサイズ・エントリの前記対応するビットがイネーブル
状態に設定されている場合前記単一ビット比較器を選択
的にイネーブルし、前記ぺージサイズ・エントリの前記
対応するビットがディスエーブル状態に設定されている
場合前記単一ビット比較器を選択的にディスエーブルす
る、上記(2)に記載の変換索引バッファ。 (4)前記単一ビット比較器が、前記仮想ページ番号の
下位部分のビットと前記下位仮想ぺージ・エントリのビ
ットとを比較し、該比較の結果を示す出力を持つ排他的
OR回路(32)と、前記排他的OR回路の出力に結合
された制御入力を持ち、対応する物理ぺージ番号エント
リに対する一致線に結合され、前記排他的OR回路が前
記比較で一致を生じず、前記イネーブル・トランジスタ
が前記単一ビット比較器を選択的にイネーブルするよう
に設定されている場合に、前記一致線を低くするプルダ
ウン・トランジスタ(42)と、を有する、上記(3)
に記載の変換索引バッファ。 (5)前記排他的OR回路(32)が、入力端子、出力
端子、および制御端子を持つ第1のトランジスタと、入
力端子、出力端子、および制御端子を持つ第2のトラン
ジスタと、を有し、前記第1および第2のトランジスタ
の入力端子が、前記仮想ぺージ番号の下位部分の対応す
るビットを受け取るために相補ビット線に結合され、前
記の両制御端子が前記下位仮想ぺージ・エントリの対応
するメモリセルの相補出力に結合され、前記の両出力端
子が前記排他的ORゲートの出力を形成するために互い
に結合されている、上記(4)に記載の変換索引バッフ
ァ。
【0032】(6)前記第1(14)および第2(1
6)の内容アドレス・メモリがフルアソシアティブであ
り、前記変換索引バッファが、前記ぺージ番号メモリか
ら外された物理ぺージ・エントリを記憶するために前記
変換索引バッファに結合された犠牲変換索引バッファ
(60)をさらに有する、上記(2)に記載の変換索引
バッファ。 (7)各ページサイズ・エントリのビットの数が前記仮
想ぺージ番号の下位部分のビットの数に等しい、上記
(2)に記載の変換索引バッファ。
【0033】(8)仮想ページ番号を物理ページ番号に
変換する方法であって、前記仮想ぺージ番号を上位部分
と下位部分とに分割するステップと、前記仮想ぺージ番
号の上位部分と、それぞれが物理ぺージ番号エントリに
対応する上位仮想ぺージ・エントリとを比較するステッ
プと、前記仮想ぺージ番号の上位部分が前記上位仮想ぺ
ージ・エントリに一致した場合第1の一致を決めるステ
ップと、前記仮想ページ番号の可変ページサイズを指定
するステップと、前記仮想ぺージ番号の下位部分の、指
定された可変ぺージサイズによって決められるある数の
ビットと、それぞれが前記物理ぺージ番号エントリに対
応する下位仮想ぺージ・エントリの対応する数のビット
とを比較するステップと、前記仮想ぺージ番号の下位部
分の前記ある数のビットが前記下位仮想ぺージ・エント
リの前記対応する数のビットに一致した場合第2の一致
を決めるステップと、同じ物理ぺージ番号に対して前記
第1および第2の一致がある場合、仮想アドレスから物
理アドレスへの変換として物理ぺージ番号を提供するス
テップと、を有する方法。
【0034】(9)前記仮想ぺージ番号の可変ページサ
イズを指定するステップが、ページサイズ・メモリ(1
8)にページサイズ・エントリを記憶させることを含
む、上記(8)に記載の方法。 (10)ページサイズ・メモリにぺージサイズ・エント
リを記憶させる前記ステップが、前記物理ぺージ番号エ
ントリの各々に対して、ぺージサイズ・メモリ(18)
にぺージサイズ・エントリを記憶させることを含む、上
記(9)に記載の方法。 (11)ぺージサイズ・メモリ(18)にぺージサイズ
・エントリを記憶させる前記ステップが、前記仮想ぺー
ジ番号の下位部分の各ビットに対して1つのビットを記
憶させることを含む、上記(10)に記載の方法。
【0035】
【発明の効果】本発明による変換索引バッファにより、
可変ぺージサイズの仮想メモリ装置において、仮想ぺー
ジ番号を物理ぺージ番号に変換できるキャッシュメモリ
を提供することができる。
【図面の簡単な説明】
【図1】本発明による変換索引バッファを示す平面図。
【図2】図1の変換索引バッファの部分を示す概略図。
【図3】図1の変換索引バッファに加えて犠牲変換索引
バッファを含む、本発明の第2の側面を示すブロック
図。
【符号の説明】
10 変換索引バッファ(TLB) 12 ぺージ番号メモリ 14、16 内容アドレス・メモリ(CAM) 18 ぺージサイズ・メモリ 20 アクセス権メモリ 22 上位仮想ぺージ・エントリ・ビット 24 ぺージサイズ・エントリ・ビット 26 下位仮想ぺージ・エントリ・ビット 28 語線 30、32 単一ビット比較器 34、36 電界効果型トランジスタ 40、42 プルダウン・トランジスタ 38 比較器30の出力 44 一致線 46 予備充電トランジスタ 48 イネーブル・トランジスタ 50 イネーブル・トランジスタの制御入力 52 イネーブル線 60 フルアソシアティブ犠牲TLB 62 CAMアレー 64 RAMアレー 66 仮想アドレス・レジスタ 68,76,84 バス 70,72,80,86 双方向トライステート・ドライバ 74,82 レジスタ 78 アドレス・バス

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 仮想ページ番号を物理ページ番号に変換
    する変換索引バッファであって、前記変換索引バッファ
    が、 複数の物理ページ番号エントリを記憶するページ番号メ
    モリと、 複数のページサイズ・エントリを含むページサイズ・メ
    モリと、 複数の仮想ページ・エントリを含み、前記仮想ぺージ番
    号のある数のビットと前記仮想ぺージ・エントリの対応
    する数のビットとを選択的に比較し、前記仮想ぺージ番
    号の前記のある数のビットが前記仮想ぺージ・エントリ
    に見つかった場合に一致があることを示す比較器回路を
    有する内容アドレス・メモリと、 を備え、 一致が生じた場合に変換索引バッファがヒットを示し、
    前記仮想ぺージ・エントリのそれぞれの前記ある数のビ
    ットは対応するぺージサイズ・エントリによって指定さ
    れる、変換索引バッファ。
JP7210253A 1994-09-27 1995-08-18 変換索引バッファ Pending JPH08101797A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31285794A 1994-09-27 1994-09-27
US312,857 1994-09-27

Publications (1)

Publication Number Publication Date
JPH08101797A true JPH08101797A (ja) 1996-04-16

Family

ID=23213328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7210253A Pending JPH08101797A (ja) 1994-09-27 1995-08-18 変換索引バッファ

Country Status (4)

Country Link
US (1) US5717885A (ja)
JP (1) JPH08101797A (ja)
DE (1) DE19526960A1 (ja)
GB (1) GB2293672A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100450675B1 (ko) * 2002-03-19 2004-10-01 삼성전자주식회사 성능향상 및 전력소모를 감소시킬 수 있는 tlb
WO2011016184A1 (ja) * 2009-08-07 2011-02-10 パナソニック株式会社 半導体記憶装置
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493790B1 (en) * 1998-01-30 2002-12-10 Sun Microsystems, Inc. Translation-lookaside buffer with current tracking reference circuit
JP3415481B2 (ja) * 1999-05-27 2003-06-09 Necエレクトロニクス株式会社 可変長符号の復号装置
US6513106B1 (en) * 1999-11-26 2003-01-28 Lsi Logic Corporation Mirror addressing in a DSP
US6493791B1 (en) * 1999-12-20 2002-12-10 Intel Corporation Prioritized content addressable memory
JP2001184870A (ja) * 1999-12-27 2001-07-06 Mitsubishi Electric Corp 連想メモリ装置およびそれを用いた可変長符号復号装置
US6684298B1 (en) 2000-11-09 2004-01-27 University Of Rochester Dynamic reconfigurable memory hierarchy
US6549997B2 (en) * 2001-03-16 2003-04-15 Fujitsu Limited Dynamic variable page size translation of addresses
US6650561B2 (en) * 2002-01-30 2003-11-18 International Business Machines Corporation High reliability content-addressable memory using shadow content-addressable memory
WO2003069483A1 (en) * 2002-02-14 2003-08-21 Exanet Inc. An apparatus and method for a skip-list based cache
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7543132B1 (en) * 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7447717B2 (en) * 2004-10-07 2008-11-04 International Business Machines Corporation Method of changing the page size of a DB2 table space while keeping the object available
US20060143397A1 (en) * 2004-12-29 2006-06-29 O'bleness R F Dirty line hint array for cache flushing
US20060143375A1 (en) * 2004-12-29 2006-06-29 Bharadwaj Pudipeddi Content addressable memory with shared comparison logic
US7233169B1 (en) * 2005-02-10 2007-06-19 Xilinx, Inc. Bidirectional register segmented data busing
WO2008155851A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置、エントリ制御プログラムおよびエントリ制御方法
JP2013073270A (ja) * 2011-09-26 2013-04-22 Fujitsu Ltd アドレス変換装置、演算処理装置及び演算処理装置の制御方法
WO2016009247A1 (en) * 2014-07-14 2016-01-21 Via Alliance Semiconductor Co., Ltd. Cache system with primary cache and overflow cache that use different indexing schemes
WO2016055828A1 (en) * 2014-10-08 2016-04-14 Via Alliance Semiconductor Co., Ltd. Cache system with primary cache and overflow fifo cache
US10185731B2 (en) * 2016-03-31 2019-01-22 Arm Limited Indexing entries of a storage structure shared between multiple threads
US11126714B2 (en) 2017-11-29 2021-09-21 Arm Limited Encoding of input to storage circuitry
US10819736B2 (en) 2017-11-29 2020-10-27 Arm Limited Encoding of input to branch prediction circuitry

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155832A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Method to increase performance in a multi-level cache system by the use of forced cache misses
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5263140A (en) * 1991-01-23 1993-11-16 Silicon Graphics, Inc. Variable page size per entry translation look-aside buffer
EP0506236A1 (en) * 1991-03-13 1992-09-30 International Business Machines Corporation Address translation mechanism
US5327372A (en) * 1992-01-17 1994-07-05 Matsushita Electric Industrial Co., Ltd. Semiconductor memory device
US5465337A (en) * 1992-08-13 1995-11-07 Sun Microsystems, Inc. Method and apparatus for a memory management unit supporting multiple page sizes
US5568415A (en) * 1993-02-19 1996-10-22 Digital Equipment Corporation Content addressable memory having a pair of memory cells storing don't care states for address translation
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
US5530824A (en) * 1994-04-04 1996-06-25 Motorola, Inc. Address translation circuit
DE19524925A1 (de) * 1994-07-09 1996-02-01 Gmd Gmbh Verfahren zum Umsetzen einer virtuellen Adresse in eine reale Adresse

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100450675B1 (ko) * 2002-03-19 2004-10-01 삼성전자주식회사 성능향상 및 전력소모를 감소시킬 수 있는 tlb
WO2011016184A1 (ja) * 2009-08-07 2011-02-10 パナソニック株式会社 半導体記憶装置
JP5337247B2 (ja) * 2009-08-07 2013-11-06 パナソニック株式会社 半導体記憶装置
US8874869B2 (en) 2009-08-07 2014-10-28 Panasonic Corporation Semiconductor memory device
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム

Also Published As

Publication number Publication date
GB9518308D0 (en) 1995-11-08
US5717885A (en) 1998-02-10
DE19526960A1 (de) 1996-03-28
GB2293672A (en) 1996-04-03

Similar Documents

Publication Publication Date Title
US5717885A (en) TLB organization with variable page size mapping and victim-caching
US6014732A (en) Cache memory with reduced access time
US5014195A (en) Configurable set associative cache with decoded data element enable lines
US5617348A (en) Low power data translation circuit and method of operation
US4980816A (en) Translation look-aside buffer control system with multiple prioritized buffers
US5752260A (en) High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US5412787A (en) Two-level TLB having the second level TLB implemented in cache tag RAMs
US5568415A (en) Content addressable memory having a pair of memory cells storing don&#39;t care states for address translation
US5265227A (en) Parallel protection checking in an address translation look-aside buffer
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
JP3666689B2 (ja) 仮想アドレス変換方法
US5155825A (en) Page address translation cache replacement algorithm with improved testability
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US5604879A (en) Single array address translator with segment and page invalidate ability and method of operation
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US6138225A (en) Address translation system having first and second translation look aside buffers
US6233652B1 (en) Translation lookaside buffer for multiple page sizes
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
KR960011712A (ko) 데이타처리장치
JPH05314779A (ja) 連想メモリセルおよび連想メモリ回路
JP4445081B2 (ja) キャッシュ・メモリ
EP0708404A2 (en) Interleaved data cache array having multiple content addressable fields per cache line
US5530824A (en) Address translation circuit
US5535351A (en) Address translator with by-pass circuit and method of operation
US7343469B1 (en) Remapping I/O device addresses into high memory using GART