JP3936378B2 - アドレス変換装置 - Google Patents

アドレス変換装置 Download PDF

Info

Publication number
JP3936378B2
JP3936378B2 JP2006035553A JP2006035553A JP3936378B2 JP 3936378 B2 JP3936378 B2 JP 3936378B2 JP 2006035553 A JP2006035553 A JP 2006035553A JP 2006035553 A JP2006035553 A JP 2006035553A JP 3936378 B2 JP3936378 B2 JP 3936378B2
Authority
JP
Japan
Prior art keywords
node
address
translation
memory
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006035553A
Other languages
English (en)
Other versions
JP2006172499A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2006172499A publication Critical patent/JP2006172499A/ja
Application granted granted Critical
Publication of JP3936378B2 publication Critical patent/JP3936378B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • 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/1009Address translation using page tables, e.g. page table structures

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)

Description

本発明は、メモリ管理ユニット、特に仮想メモリを支援するコンピュータシステム内での変換を加速するのに用いられるルックアサイドバッファを含むメモリ管理ユニット、そして特にバッファ内の多重変換が同一のアドレスに対応するような状況を防止しこれから回復するための方法に関する。さらに、この開示は、ルックアサイドバッファの中に要求対象の変換が存在しない場合にアクセスされる、変換を記憶するのに用いられる特定のデータ構造、すなわちB-ツリーに関する。
仮想メモリシステムを支援するコンピュータにおいて、プログラムが参照するアドレススペースは「仮想メモリ」と呼ばれ、プログラム命令によって特定された各々の仮想アドレスは、メモリ管理ユニット(MMU)により物理又は実アドレスに変換され、この実アドレスは、アクセスされた項目を検索するため主メモリサブシステム(以下「メモリ」と呼ぶ)に移送される。仮想メモリを使用することにより、プログラムのサイズは物理メモリのサイズを大幅に超えることができ、物理メモリ内のプログラムを入れる上での融通性が得られる。アドレス変換のために要求されるテーブルを適正なサイズに保つ必要性を含むさまざまな理由から、仮想アドレスから実アドレスへの変換計画は、複数の段階で変換を行なう。
通常、変換の各段階には、メモリ内に保たれたテーブルに対する単数又は複数のアクセスが必要とされる。1回のアドレス変換に必要なメモリアクセスの全回数を減少させるため、アドレス変換計画において対応する段階数を行なうのに必要な平均時間を減少させるべく MMU内には往々にして単数又は複数の変換ルックアサイドバッファ(TLB)が具備される。 TLBは、標準的には最近メモリから取出された変換計画の特定の一段階に対応する変換を保持する静的ランダムアクセスメモリ(SRAM)及び/又は内容アドレス可能記憶装置(CAM:content addressable memory)の形で実施されたキャッシュ様のメモリである。
入力アドレスに対応する出力アドレスを保持する TLBエントリへのアクセスは、その入力アドレスに対応する出力アドレスを検索するためのメモリ内テーブルへのアクセスの必要性を無くし、かつ標準的にはこのアクセスよりも何ケタ分も速いものである(1つの TLBエントリは、保護フィールドといったような入力及び出力アドレスフィールドに加えて変換を記述するフィールドを内含していてよい。その上、出力アドレス自体の代りに出力アドレスを決定するべく使用される単数又は複数のフィールドを TLBエントリの中に記憶することもできる)。
TLBが、要求された変換を含んでいない場合(すなわち、 TLBが「ミス」した時点で)、 MMUは、要求された変換のためメモリ内に記憶された変換テーブルの探索を開始し、次にそれを TLB内にロードし、ここで、その後将来の何らかの時点で同じ入力アドレスが万一要求された場合に急速にアクセスするのに利用可能な状態となることができる。ハードウェア(論理回路)内でこの機能を行なう MMUの一部分を、以下「テーブルウォーカ」と呼ぶ。
RAMにおけるソフトのエラー、ハードウェアの過渡的エラー及びソフトウェアのエラーといったようなさまざまな種類のエラーを原因として、 TLB内には同じ入力アドレスのための複数の変換が現われる可能性がある。
MMUには、変換されるべき特定された入力アドレスのため TLB内に複数の変換が存在することを検出し、複数の変換を無効化しテーブルウォーカによる探索を開始するといった適切な行動をとることによってこの異常な状況から回復できることが望まれる。
仮想メモリを支援するコンピュータシステム内のアドレス変換計画の特定の一段階に対する入力のための入力アドレス範囲は、きわめて広いものであり得る。例えば、HaL Computer Systems Inc.(本開示の譲受人)が販売している64ビットのワークステーション内では、51ビットのアドレスが第1段階で変換される。先行技術で一般に使用されているように(例えばページテーブル)、考えられる1つの入力アドレス各々について1つのエントリを伴う単純アレイは、このような広い入力アドレス範囲のための変換テーブルを実施するためには、メモリ必要条件の点で実行可能な解決法ではない。
変換テーブルを実施するための既知のデータ構造は、変換された入力アドレス数ではなく可能な入力アドレス合計数に比例するメモリ必要条件をもち、そのため非常に大きな入力アドレススペース用としては実用的なものではない。
変換ルックアサイドバッファ(TLB)そして場合によってはメモリ内に保持されB-ツリー(B-tree)データ構造として実施された変換テーブルを探索することによって、仮想メモリを支援するコンピュータシステム内でアドレス変換を実行するための方法が、ここに提供されている。1つの実施形態においては、各ノードのサイズは、メモリのためのキャッシュラインサイズである。
TLBは、最初、特定された入力アドレスのための変換について探索される。 TLBの正確に1つの有効なエントリが、特定された入力アドレスについての変換を記憶した場合に、この特定された入力アドレスに対応する出力アドレスはそのエントリの内容から決定される。 TLBの2つ以上の有効なエントリが、特定された入力アドレスのための1つの変換を記憶した場合、これらのエントリは無効化される。 TLBの有効なエントリのうちの複数のものが特定された入力アドレスのための1つの変換を記憶した場合、又はそのうちのいずれのエントリもこれを行なわなかった場合、変換テーブルは、特定された入力アドレスのための1つの変換について探索される。
変換テーブルの探索が要求された場合、この方法には、特定された入力アドレスのための1つの変換そして場合によっては変換テーブルを実施するB-ツリーの1つのノード内でこの特定された入力アドレスのための変換と合わせて記憶されているその他の入力アドレスについての単数又は複数の変換を変換テーブルから検索し TLB内にこれを挿入することが関与している。1つの実施形態においては、変換テーブルを実施するB-ツリーは、(特定入力アドレスが特定される)キー及び変換樹内のその他のノードに対するポインタを記憶するインデックスノード及び単数又は複数の入力アドレスのための変換を記憶する葉ノードで構成されている。
変換テーブルから検索された特定の入力アドレスのための1つの変換の TLBへの挿入中に、特定の入力アドレスのための変換を記憶する正確に1つの有効なエントリが、 TLB内に存在するか否かが決定される。存在する場合には、変換テーブルから検索された変換はそのエントリ内に挿入され、かくして同じ入力アドレスのための多重の TLBエントリの作成が回避される。そうでなければ、変換テーブルから検索された変換は、1つの実施形態においてはFIFO(先入れ先出し)である TLB置換え方針によって決定された TLBのエントリ内へ挿入される。
1つの実施形態においては、そのアサーション(assertion)が結果として TLBの探索及び TLBへの書込みをそれぞれもたらすような制御信号が、同じサイクル内でアサート(assert)される。
かくして、変換テーブルから検索された特定のアドレスのための1つの変換の TLB内への挿入が、重複する TLBエントリの生成を回避するべく実行される特定のアドレスのための変換についての TLBの探索によって遅延されることはない。
有利なことに、当該データ構造は、テーブルウォーカが、特定された入力アドレスのための変換のみならず特定された入力アドレスに類似した入力アドレスのための単数又は複数の変換をも検索し TLB内に挿入するように、メモリ内の隣接する場所の中に類似の入力アドレスのための変換も記憶する。このようにして、テーブル探索を実行するのに必要とされる時間は、数回の変換にわたって償却(amortize)される。大部分のアプリケーションズプログラムが示す局所参照性のため、現在変換が要求されている特定された入力アドレスに類似したアドレスについて近い将来変換が必要になる可能性は高い。
しかしながら、特定されたアドレスのための変換と合わせて検索された特定された入力アドレスに類似したアドレスについての変換がすでに TLB内に存在する可能性もある。
当該方法は、テーブルウォーカによりメモリから検索される任意の変換について TLB内に重複するエントリを作成することを回避する。
本発明によれば、葉ノード及びインデックスノードを含むツリー構造のアドレス変換のためのテーブルを記憶するメモリを含むコンピュータシステム内の装置であって、かつ、前記葉ノードの各々が複数のアドレス変換のための情報を記憶し、前記インデックスノードの各々が、前記ツリー構造のもう1つのノードを指す少なくとも1つのポインタを記憶するようなアドレス変換装置において、ノードポインタのノードアドレスフィールドにより指された前記ツリー構造のノードが葉ノード又はインデックスノードのいずれであるかを決定する、ノードポインタ検査機構、前記メモリ及び前記ノードポインタ検査機構に作動的に結合され、かくして前記ノードポインタ検査機構が前記ツリー構造の前記ノードがインデックスノードであると決定した場合に、前記メモリから前記ツリー構造の前記ノードを検索しこれを処理することになるインデックスノード検索/処理機構、及び、前記メモリ及び前記ノードポインタ検査機構に作動的に結合され、かくして、前記ツリー構造の前記ノードが葉ノードであると前記ノードポインタ検査機構が決定した場合に、前記メモリから前記ツリー構造の前記ノードを検索しこれを処理する葉ノード検索/処理機構、を備え、前記葉ノード検索/処理機構は、変換挿入機構含み、該変換挿入機構は、前記ノードポインタ検査機構が決定した前記ツリー構造の当該葉ノードに格納されている有効なアドレス変換のための情報の全てを変換バッファの中に挿入することを特徴とするアドレス変換装置が提供される。
以下、本発明に係るアドレス変換装置の実施例を、添付図面を参照して詳述する。
[変換プロセスの概要]
本発明に従った TLBの1つの実施形態が図1に表わされている。TLB101は、内容アドレス可能記憶装置 (CAM) 102及び静的ランダムアクセスメモリ(SRAM) 103を内含する。CAM102及び SRAM103は各々、アドレス可能要素(以下「エントリ」と呼ぶ)を 128個内含している。CAM102の各エントリは、有効ビットフィールドを1つ含んでいる。CAM102の特定のエントリのための有効なビットがアサートされた時点で、そのエントリは、 SRAM103中のそれに対応するエントリと共に、1つの有効な変換を表わす。そうでなければ、特定のエントリは無視されなくてはならない。CAM102の各々のエントリは同様に、1つの入力アドレスフィールドを含み、その変換されたアドレスは、 SRAM103の対応するエントリの中に記憶される(いくつかの実施形態においては、変換されたアドレス自体ではなくむしろ変換されたアドレスを計算するのに使用されるデータが SPAM103内に記憶される)。
その変換が望まれる入力アドレス(x)(以下「特定されたアドレス」と呼ぶ)を表示するライン 104上の信号が、TLB101によって受理される。CAM102の各エントリの内容は、特定された入力アドレスと比較される。「突合せ」オペレーションと呼ばれるこのタスクについて以下で詳しく説明する。
CAM102の正確に1つの有効なエントリが、特定された入力アドレスを記憶する場合、この特定された入力アドレスの変換を表わす出力アドレスは SRAM103の対応するエントリの内容から決定される。CAM102の2つ以上の有効なエントリが、特定された入力アドレスを記憶する場合、これらのエントリは、以下でさらに詳述する「無効化」オペレーションを介して無効化される。
CAM102の有効なエントリのうちの1つが特定された入力アドレスを記憶するか又はいかなるエントリもこれを記憶しない場合、メモリ 106内に記憶された変換テーブル116(これは1つの実施形態においてB-ツリーデータ構造によって実施されている)が、その特定された入力アドレスのための変換について、テーブルウォーカ 115により探索される。以下で詳述するようなテーブルウォーカ 115は、変換テーブル 116から、特定された入力アドレスのための変換のみならず、場合によってはその他の入力アドレスのための単数又は複数の変換も検索することができる。
テーブルウォーカ 115によって検索された各々の変換は、以下で詳述する「挿入」オペレーションを介して、CAM102のエントリ及び SRAM103の対応するエントリの中に挿入される。変換テーブル 116から検索された特定の入力アドレスのための変換をTLB101内に挿入するときに重複した変換を作成するのを回避するため、その特定のアドレスについての変換がすでにTLB101のエントリ内に記憶されているか否かを決定するために「突合せ」(MATCH)オペレーションが実行される。TLB101の正確に1つのエントリがその特定のアドレスのための変換を記憶する場合、変換テーブル 116からテーブルウォーカ 115によって検索された特定のアドレスのための変換は、その正確に1つのエントリの中に挿入され、かくして、特定のアドレスについての多重の TLBエントリの作成が回避される。そうでなければ、テーブルウォーカ 115によって検索された変換が中に挿入される TLBエントリはTLB101についての置換え方針によって決定される。
[CAM102によって支援されるオペレーション]
TLB101は、「突合せ」、「書込み」、「挿入」及び「無効化」を含むいくつかのオペレーションを支援する。これら4つのオペレーションの各々について、以下で記述する。
[TLB突合せオペレーション]
「突合せ」オペレーションは、次の2つの状況下で実行される。まず第1の状況下では、「突合せ」オペレーションは、変換が望まれている入力アドレスを表示する信号をTLB101がライン 104上で受理した時点で実行される。この状況下で、MUX107はライン 104上で信号を選択する。この第1の状況下での「突合せ」オペレーションがCAM102の正確に1つの有効な一致するエントリを発見した場合、望ましい出力アドレスは SRAM103の対応するエントリから検索される。そうでなければ、テーブルウォーカ 115は、ライン 104上の信号により表示された入力アドレスのための変換について、メモリ 106の中に記憶されている変換テーブル 116を探索しなくてはならない。
第2の状況下では、TLB101がライン 105上で、テーブルウォーカ 115によって変換テーブル 116からその変換が検索された入力アドレスを表示する信号を受理した時点で、「突合せ」オペレーションが実行される。この状況下で、MUX107はライン 105上で信号を選択する。
CAM突合せイネーブルポート 122によって受理されたライン 121上の信号がアサートされた時点で、「突合せ」オペレーションが行なわれ、その間、CAM102の全てのエントリの入力アドレスフィールドは、 CAM突合せポート 109によって受理されたライン 119上の信号により表示された入力アドレス(以下「X」と呼ぶ)と同時に比較される。
突合せライン 112、 MATCH〔 127:0〕(CAM102の各々のエントリについて1つずつ)がCAM102及び多重ヒット検出器 (MHD) 150に対し結合される。CAM102のi番目のエントリの入力アドレスフィールド、CAM(i)がXに等しく(「一致する」)、CAM(i)の有効なビットがアサートされた場合、i番目の突合せラインMATCH(i)上の信号がアサートされる。いくつかの実施形態においては、現在 MMUにより変換されつつある仮想アドレスを生成したプロセスに対応するプロセスIDも同様にCAM102に対して供給され、入力アドレスに加えて、CAM102のエントリ内の対応するフィールドに対し突合せされなくてはならない。このような実施形態は、文脈切換え時点すなわち異なるプロセスが実行し始めた時点でCAM102の内容全体を無効化する必要性を避けるために、CAM102に対応する変換段階がID依存性のプロセスである場合に使用することができる。
MHD150は、突合せライン 112上の信号のうちの1つ又は複数がアサートされたか又はいずれもアサートされなかったかを決定し、それぞれライン 113及び 114上で伝送される2つの信号MHIT及び HITをセットする。突合せライン 112のうちの正確に1本の上の信号がアサートされた場合、MHD150は HIT信号をアサートする。突合せライン 112のうちの複数のものの上の信号がアサートされるか又はいずれのライン上の信号もアサートされない場合、MHD150はMHIT信号をアサートする。
1つの実施形態においては、MHD150は図9に表わされた構造をもつ。エンコーダ 901は、突合せライン 112上で搬送された 128の2進信号を、それぞれライン 903及び 904上で搬送される2つの7ビット信号 HAD〔6:0〕及びHADN〔6:0〕へと符号化する。 HAD及びHADNが互いのビットに関する補数である場合に、多重ヒットチェッカ 902が HIT信号をアサートする。そうでなければ、多重ヒットチェッカはMHIT信号をアサートする。1つの実施形態においては、エンコーダ 901及び多重ヒットチェッカ 902は、それぞれ図10及び11に表わされた回路である。
図10では、突合せライン 112すなわち MATCH〔 127:0〕上の信号の各々は、7つのMOSFETトランジスタの2つのそれぞれのセットと結びつけられている。iが0以上 127以下であるものとしてiについての7ビットの2進表示内のゼロの場所は、 MATCH〔i〕に接続されたゲートをもつ MATCH〔i〕と結びつけられた7つのMOSFETのうちの第1のセットのメンバを決定する。例えばi=1である場合、iについての2進表示は 0000001である。かくして、 MATCH〔i〕はMOSFETS 1001, 1002, 1003, 1004, 1005, 1006のゲートに接続されるものの1007には接続されない。
iが0以上 127以下であるものとしてiについての7ビットの2進表示の中の1の場所は、 MATCH〔i〕に接続されたゲートをもつ MATCH〔i〕に結びつけられた7つのMOSFETの第1のセットのメンバを決定する。例えばi=1である場合、iについての2進表示は 0000001である。従って、 MATCH〔i〕はMOSFET 10014のゲートに接続されるものの1014以外のMOSFET 1008, 1009, 1010, 1011, 1012, 1013 のゲートには接続されない。
テーブルウォーカ115(図1参照)がそれぞれライン 113及び 114上でMHIT及び HIT信号を受理する。ライン 104上で受理された入力アドレスについての「突合せ」オペレーションの時点でCAM102内に多重の一致するエントリがあるか又は一致するエントリが全くない場合、テーブルウォーカ 115は、ライン 113上でMHIT信号のアサートを検出した時点で、入力アドレスXのための変換について変換テーブル116(メモリ 106内に保持されたもの) を探索する。テーブルウォーカ 115によるこの探索については、以下で詳述する。一方、突合せライン 112のうちの正確に1本のライン、MATCH(i) が「突合せ」オペレーションの結果としてアサートされた場合、上述のテーブルウォーカ探索は開始されず、入力アドレスXの変換を表わす出力アドレスは SRAM103のi番目のエントリ、SRAM(i)から検索される。
「突合せ」オペレーションのタイミングは以下の通りである。第1のサイクルでは、ライン 108上の信号は、突合せされるべき入力アドレスXを表示する。同様に、第1のサイクルにおいて、ライン 117上の突合せイネーブル信号がアサートされる。第2のサイクルでは、ライン 108上の信号はラッチ 118によってラッチされ、かくして、 CAM突合せポート 109で受理されたライン 119上の信号は入力アドレスXを表示する。同様に第2のサイクルでは、ライン 117上の突合せイネーブル信号はラッチ 120によりラッチされ、かくして CAM突合せイネーブルポート 122によって受信されたライン 121上の信号がアサートされる。
いずれの突合せライン 112上でも伝送されなかった信号及び1本又はそれ以上の突合せライン112(CAM102の一致するエントリに対応する)上で伝送された信号のアサート及びMHD150によるそれぞれライン 113及び 114上で伝送された信号MHIT及び HITのセッティングは、「突合せ」オペレーションの第2のサイクルの最初の半分以内で達成される。
突合せライン 112のうちの正確に1本のライン、MATCH(i) 上の信号が「突合せ」オペレーションの第2のサイクルの最初の半分の間にアサートされる場合、突合せライン 112上の信号は HIT信号のアサーションに起因してMUX123によって選択される。第2のサイクルの最初の半分が終わるまでに、MUX123の 128の出力ライン 173のうちの正確に1本がアサートされる。各々の出力ライン 173は、 128の ANDゲート 171のうちのそれぞれのゲートの入力ラインに接続される。 TLBワードセレクトライン 124は、 ANDゲート 171のそれぞれの出力ラインである。 128の ANDゲート 171の各々の反転した入力に対し、クロック信号が提供される。かくして、第2のサイクルの第2の半分の間に、 TLBワードセレクトライン 124、WL(i)上で伝送された信号のうちの正確に1つの信号がアサートされる。
ライン 104上で供給された入力アドレスのために「突合せ」オペレーションが実行された場合、CAM(i) 及びSRAM (i) の内容は、それぞれ CAM読取りポート 125及びSRAM読取りポート 126で利用可能にされる。SRAM (i) の内容には、入力アドレスXに対応する望ましい出力アドレスが含まれている。いくつかの実施形態においては、CAM(i) の内容についてのパリティ検査を行なうために、SRAM (i) 内の1つのフィールドを用いることができる。一方、ライン 105上で供給された入力アドレスについて「突合せ」オペレーションが行なわれた場合、信号 155及び 132によって表示されたデータ (すなわち、テーブルウォーカ 115によって変換テーブル 116から検索された変換) は、それぞれCAM(i) 及びSRAM (i) の中に書込まれる。
[TLB「無効化」オペレーション]
ライン 104上で受理された入力アドレスについての「突合せ」オペレーションの時点でCAM102内に一致するエントリが多重に存在する場合、TLB101中の論理は、一致するエントリの有効ビットを非アサート(deassert)する。1つの実施形態においては、多重の一致するエントリを検出した時点で有効ビットを非アサートする論理回路は、図2に示されている通りである。CAM102の各エントリの有効ビットは、標準の6−トランジスタ RAMセルによって実施される。例えば、CAM(0)についての有効ビットの値は、ライン 202上の信号として RAMセル 201内に記憶される。
一致する(matching)エントリ(CAM(0)を含む)が多重に発生した時点でのCAM(0)のための有効ビットの非アサートは、以下の通りに達成される。一致するエントリが多数発生した時点で、 ANDゲート 203の入力ライン 204上で搬送される MATCH〔0〕を含む突合せライン 112上の信号のうちの複数のものがアサートされる。これに応答して、MHD150は、ライン 113上でMHIT信号をアサートする。MHIT信号のアサーションの結果として、 ANDゲート 203の入力ライン 205上の信号 INV MATCHがアサートされる。かくして、 ANDゲート 203の出力ライン 206の信号がアサートされた状態となる。出力ライン 206はMOSFET 208のゲートに結合される。MOSFET 208のソースは、ライン 202に接続され、MOSFET 208のドレーンは培地ソース 207に接続される。ライン 206上の信号のアサーションはMOSFET 208をオンに切替え、かくしてライン 202上の信号はアースに結合され、そのためCAM(0)についての有効ビットは非アサートされる。 CAMのその他のエントリの有効ビットの非アサートは、同様の要領で達成される。
[TLB「書込み」オペレーション]
「書込み」オペレーションにおいては、ライン 155及び 132上の信号により表示されたデータは、CAM102のエントリ及び SRAM103の対応するエントリの中にそれぞれ書き込まれる。「書込み」オペレーションは、2つの状況において実行される。
第1の状況においては、「書込み」オペレーションは、 CPUにより実行された命令によって特定される。この状況下では、 CPUは書込みが行なわれるべきCAM102及び SRAM103の要素を表示するライン 138上の信号、CAM102内に書込まれるべきデータを表示するライン 151上の信号そして、 SRAM103内に書込まれるべきデータを表示するライン 157上の信号を供給する。MUX 123, 152及び 156は、それぞれライン140, 151及び 157上で信号を選択する。
第2の状況では、CAM102及び SRAM103内に書込むべきデータは、変換テーブル 116から検索され、それぞれライン 105及び 129上でテーブルウォーカ 115によって供給される。ライン 138上の信号は、書込みが行なわれ TLB置換え方針に従ってセットされるべきCAM102及び SRAM103の要素を表示する。MUX 123, 152及び 156はそれぞれライン140, 105及び 129上の信号を選択する。
「書込み」オペレーションのタイミングは以下の通りである。第1のサイクルにおいては、ライン 130上の書込みイネーブル信号がアサートされる。第2のサイクルでは、ライン 130上の書込みイネーブル信号がラッチ 134によってラッチされ、かくして CAM書込みイネーブルポート 136及びSRAM書込みイネーブルポート 137により受理される。同様に、第2サイクル中、MUX152及び 156の出力はそれぞれラッチ 153及び 131によってラッチされ、かくしてそれぞれ CAM書込みポート 110及びSRAM書込みポート 133により受理される。第2のサイクルの最初の半分の間に、ライン 138上で信号によって表示されたアドレスは、アドレスデコーダ 139によって復号される。第2サイクルの第2の半分が始まるまでに、アドレスデコーダライン 140のうちの1本がアサートされ、MUX123の対応する出力ラインがアサートされる。第2サイクルの第2の半分の間に、対応するワードセレクトライン 124がアサートされ(このアサーションは 128の ANDゲート 171の各々の反転入力端に接続されたクロック信号の立下り縁部によりトリガーされる) 、 CAM書込みポート 110とSRAM書込みポート 133にあるデータは、アサートされたワードセレクトライン 124に対応する、CAM102のエントリ及び対応する SRAM103のエントリにそれぞれ書込まれる。
[TLB「挿入」オペレーション]
上述のとおり、ライン 104上の信号により表示された入力アドレスXのための唯一の有効な変換がTLB101の中に存在しない場合、テーブルウォーカ(table walker) 115は、メモリ 106の中に保持されたデータ構造である変換テーブル 116内の望ましい変換を探索する。以下で詳述する通り、テーブルウォーカ 115は、この探索の結果として要求されていないいくつかの変換を検索することができる。テーブルウォーカ 115によりメモリ 106から検索された変換の各々は、「挿入」オペレーションを介してTLB101内に入れられる。検索されたものの要求されていない変換がすでにTLB101内に存在する可能性がある。「挿入」オペレーションは、TLB101内にすでに存在していない検索された変換を挿入するのに必要とされる時間の増大をもたらすことなく、同じ入力アドレスのための多数のエントリを作成しないように設計されている。
1つの実施形態における「挿入」オペレーションのタイミングは、図3に例示される通りである。第1サイクルでは、メモリ 106は、CAM102のエントリ内に挿入されるべき入力アドレスY及び SRAM103の対応するエントリ内に挿入されるべき対応する出力アドレス(又は、いくつかの実施形態においては、出力アドレスを計算する基となる出力データ)をそれぞれ表示するライン127A及び127B上の信号を生成する。ライン127A及び127B上の信号は、合わせて、TLB101内に挿入すべき変換を構成する(1つの実施形態においては、メモリは1サイクルにつき8バイトしか転送できず、従って、変換の CAM部分を表わす信号(8バイト)は1サイクル内で転送され、変換のSRAM部分を表わす信号は、次に続く2つのサイクルにわたって転送される)。
第2サイクルでは、テーブルウォーカ 115内に内含されたバッファ128A及び128Bがライン127A及び127B上の信号をそれぞれラッチし、かくしてライン 105及び 129上の2つの信号を生成する。TLB101が「挿入」オペレーションを実行した時点で、MUX107及び 152はライン 105上の信号を選択し、その結果、ライン 108及び 154上の信号は同様に、第2サイクル中、入力アドレスYを表わす。TLB101が「挿入」オペレーションを実行するとき、MUX156は、ライン 129上に信号を選択し、その結果、ライン 158上の信号は同様に、第2サイクル中、入力アドレスYに対応する出力アドレスを表示する。
同じく第2サイクルでは、ライン 117及び 130上の突合せ(match)イネーブル及び書込みイネーブル信号がそれぞれアサートされる。かくして、「挿入」オペレーションは、「突合せ」オペレーションと「書込み」オペレーションの組合せである。以下でさらに詳細に論述する通り、それぞれライン 117及び 130上の突合せイネーブル及び書込みイネーブル信号のアサーションにより同じサイクル内で「突合せ」及び「書込み」オペレーションを開始することにより (まず最初に「突合せ」オペレーションを実行し、次に「突合せ」オペレーションの結果に基づいて「書込み」オペレーションを行なうか否かを決定することとは異なり) 、「挿入」オペレーションを実行するのに必要とされる時間の増大を回避することができる。
第3サイクルでは、ラッチ 118及び 153がライン 108及び 154上の信号をそれぞれラッチし、かくして CAM書込みポート 110及び CAM突合せポート 109によってそれぞれ受理されたライン 119及び 155上の信号は、入力アドレスYを表示する。同様に、第3サイクルでは、ラッチ 131がライン 158上の信号をラッチし、かくしてSRAM書込みポート 133により受理されたライン 132上の信号は、入力アドレスYに対応する出力アドレスを表示する。第3サイクルの最初の半分では、ライン 117上の突合せイネーブル信号はラッチ 120によってラッチされ、かくして CAM突合せイネーブルポート 122により受理されるライン 121上の信号はアサートされる。ライン 121上の信号のアサーションの結果として、通常の「突合せ」オペレーションによる場合と同様に、第3サイクルの最初の半分の間に、以下のことが発生する:1)CAM102の全てのエントリの入力アドレスフィールドに対して入力アドレスYが突合せされる;2)突合せライン 112上で伝送された零又は1以上の信号がアサートされる;3)入力アドレスYが、CAM102内の零、1又は多数の有効エントリと一致(match)したかどうかを、多重ヒット検出器 150が決定する;及び4)MHD150が、それぞれライン 113及び 114上のMHIT及び HIT信号をセットする。
ライン 138上のアドレス信号は、第3サイクルの最初の半サイクル内でアドレスデコーダ 139により復号され、入力アドレスYと一致する正確に1つのエントリがCAM102内にすでに存在するのでないかぎり、メモリからの変換を挿入するのにTLB101のどのエントリが使用されるかを表示する。TLB101のための置換え方針によって、ライン 138上のアドレス信号を「挿入」オペレーション中にセットする方法が決定される。FIFO(先入れ先出し)置換えが利用される1つの実施形態においては、ライン 138上のアドレス信号は最初CAM(0)にセットされる。各々の「挿入」オペレーションの後、ライン 138上のアドレス信号は、それがそのときCAM(i)を指している場合、CAM ((i+1)mod 128) を指すように変更される。ただし、正確に1つの CAMエントリが、CAM102内に挿入されるべき入力アドレスと一致している場合には、ライン 138上のアドレス信号は変更されない。
入力アドレスYがCAM102の多数のエントリと一致するか又はいかなるエントリとも一致しないことをMHD150が決定し、従ってMHD150が、第3サイクルの最初の半分において(MUX123のセレクトラインを駆動する)ライン 114上の HIT信号を非アサートした場合、アドレスデコーダライン 140上の信号はMUX123によって選択され、アサートされたアドレスデコーダライン 140に対応する CAMワードセレクトライン 124は第3サイクルの第2の半サイクルにおいてアサートされる(このアサーションは、 128の ANDゲート 171の各々の反転した入力端に接続されているクロック信号の立下り縁部によってトリガーされる) 。
そうでなければ、すなわちCAM102の単一のエントリが入力アドレスYと一致する場合、MHD150は第3サイクルの最初の半分においてライン 114上で HIT信号を非アサートし、その結果、突合せライン 112がMUX123により選択される。第3サイクルの第2の半分の間、アサートされた突合せライン 112に対応するワードセレクトライン 124がアサートされる(このアサーションは、 128の ANDゲート 171の各々の反転した入力端に接続されているクロック信号の立下り縁部によってトリガーされる) 。
同様に、第3サイクル内では、ライン 130上の書込みイネーブル信号はラッチ 134によってラッチされ、かくして、 CAM書込みイネーブルポート 136及びSRAM書込みイネーブルポート 137により受理されるライン 135上の信号がアサートされる。従って第3サイクルの間、ライン119(すなわち入力アドレス) 及び132(出力アドレス)。
上の信号によって表示された変換データはCAM102のエントリ内に書込まれ、 SRAM103の対応するエントリが TLBワードセレクトライン124によって選択される。
上述の「挿入」オペレーションは、突合せライン 112で TLBワードセレクトライン 124を駆動し、かくして、もう1つの TLBエントリすなわちライン 138上のアドレス信号により表示されたものの中に取り出された変換を入れることとは異なって、テーブルウォーカ 115によりメモリ 106から取り出された変換で一致するエントリをオーバライドすることによって、TLB101の中にすでに単一の一致するエントリが存在する場合におけるTLB101内の多数の一致するエントリの作成を回避する。一方、多数の一致するエントリの作成を防ぐために「挿入」の間に実行される突合せは、一致する CAMエントリが全く無いか又は多数ある場合にライン 138上のアドレス信号によって表示された TLBエントリ内に、メモリ 106から取り出された変換データを挿入するための所要時間を増大させない。
これは、書込み及び突合せオペレーションが同じサイクル内でそれぞれライン 117及び 130上の突合せイネーブル及び書込みイネーブル信号のアサーションによって同時に開始されるからであり、又、TLB101内に正確に1つでない一致するエントリが存在する場合に、挿入されるべき変換を入れることになるTLB101のエントリを表示するライン 138上のアドレス信号の復号が、CAM102のエントリに対するその変換に付随する入力アドレスの突合せと同時に(第3サイクルの最初の半分の間に) 行なわれるからでもある。
メモリ 106がテーブルウォーカ 115に、1サイクルにつき1つの変換を供給できる場合、上述の「挿入」オペレーションは、ライン 127A, 105/154 及び155(CAM102内への書込みのため)に沿って、ライン 127A, 105/108 及び119(CAM102との突合せのため)に沿って、そしてライン 127B, 129/158 及び132 (SRAM103内への挿入のため) に沿って変換をパイプライン処理することができるため、1サイクルにつきほぼ1つの変換という有効挿入速度を支援することができる。さらに、テーブルウォーカ 115内のバッファ128A及び128Bは、このテーブルウォーカ 115が、メモリ 106から変換を受理するのと同じ速さでライン 105及び 129上に変換を送り出すことができることから、1 つの変換を保持するのに充分な大きさであることしか必要とされない。
上述のように、TLB101についての「挿入」オペレーションの中の実際の突合せ及び書込みは、同じサイクル内で起こる。一方、まず最初に突合せし次に(突合せの結果に応じて)その後のサイクルを書込むことによって挿入を実行する TLBは、この TLBが先行サイクル中に突合せされた第1の入力アドレスを書込む間に第2の入力アドレスを突合せすることができないということを仮定して、2サイクルにつき1つの変換を超える有効挿入速度を支援することができない。同様に、変換が1サイクルにつき1つの変換という速度でメモリからテーブルウォーカまで送り出される場合、変換テーブルの任意の探索中にメモリによって送り出される最大変換数をNとして、このような TLB内では、N/2の変換を記憶するのに充分なバッファスペースが必要とされる。
さらに、取り出された変換の書込みを開始する前に突合せを行なうように設計された「挿入」オペレーションにはもう1つの欠点がある。最大有効挿入速度は2サイクルにつき1つの変換となることから、テーブルウォーカ 115は、2サイクル毎に信号ライン 105及び 129上に1つの変換のみ送り出すことができる。かくして、テーブルウォーカは、連続サイクル内でメモリ 106により送り出された最大変換数をNとして約N/2の変換を記憶できるバッファを必要とする。
[TLBミスの時点での変換データの取出し]
特定の入力アドレスXについての変換がTLB101内に存在しない場合、テーブルウォーカ 115は、オペレーティングシステムにより作成され維持され、現在実行中のプロセスのための変換を内含する、メモリ106(変換テーブル116)内に保持されたデータ構造を探索する。1実施例では、以下「変換ツリー」(translation tree)と呼ぶ変換テーブル 116は、B-ツリーとして実施される。B-ツリーは、周知のデータ構造であり、ここに参考として内含されているTeorey及び Fry共著の「データベース構造の設計」 (1982年、Prentice Hall Inc.) 中の 305〜327 ページに定義づけされ記述されている。その中で記述される通り、B-ツリーにはいくつかの変形形態がある。B-ツリーという語は、本書では、従来のB-ツリーのこれらの及び恐らくはその他の変形形態のうちのいずれかを指すものとして用いられている。次に記述する実施形態においては、変換テーブル 116は、 B* - ツリーとして知られるB-ツリーの変形態様によって変換テーブル 116が実施されている。
B* - ツリーの各ノードは、葉ノードか又はインデックスノードのいずれかである。1つの実施形態においては、各々の変換ツリーノードは、 128バイトのメモリキャッシュラインサイズに等しいサイズのものであり、変換ツリーの各々のインデックスノードは、図4に描かれた形をもつ。インデックスノード 400は、交互のノードポインタ 401とキー 402から成る。8つのノードポインタ 401と7つのキー 402の各々が、8バイトの長さをもつ。各々のキー 402は変換されるべき入力アドレスであるXに対し比較され得る入力アドレスを記憶する。任意のインデックスノード内の最後のキーのうち最高6つまでがニル(nil)であってよい。ニルキーに続くノードポインタは無効である。インデックスノード内の非ニルキーの値は、左から右へと値を増大させる。全てのインデックスノードの最後の8つのバイトは無視される。
各々のノードポインタ 401は、以下のフィールドを含む:すなわち、変換ツリーのもうつ1のノードを指す『ノードアドレスフィールド』;ノードアドレスフィールド内に記憶されたアドレスタイプを規定する『ノードアドレスタイプフィールド』(ノードアドレスのいくつかの考えられるタイプについては、以下の記述を参照のこと);アドレスフィールド内のアドレスによって指されるノードタイプ(葉ノード又はインデックスノード)を表示する『ノードタイプフィールド』、そしてノードアドレスフィールド内でアドレスにより指された葉ノードの中に記憶された有効な変換の数を表示する『変換数フィールド』(ノードタイプフィールドが「葉ノード」である場合にのみあてはまる)。
上述の通り、ノードポインタ 401のノードアドレスフィールドの中に記憶されたアドレスはいくつかの形態をとることができる。さまざまな実施形態において、以下のノードアドレスタイプならびにその他のノードアドレスタイプを提供することができる:
1)実ノードアドレス:このノードアドレスは、メモリから、指された変換ツリーノードを検索するために直接使用できる実又は物理メモリアドレスを表わす。
2)論理ノードアドレス:このノードアドレスは、指された変換ツリーノードをメモリから検索できるようになる前に当然それ自体実アドレスに変換されなくてはならない何らかの種類の論理アドレスを表わす。いくつかの実施形態において、この変換はきわめて迅速に達成される。例えばノードアドレスは、ノードポインタ 401が中に存在するページの中のページオフセットを表わすことができ、この場合、対応する実アドレスは、ノードポインタ 401が中に存在する実ページアドレスをノードポインタ 401内に記憶されたノードアドレスと連結することによってのみ形成される。もう1つの実施形態では、 MMU内には、ノードポインタ 401のノードアドレスフィールドの中に記憶された論理アドレスを実アドレスに変換するため特殊な変換ルックアサイドバッファが具備されている可能性もある。
1つの実施形態においては、変換ツリーの葉ノードは、図5内に描かれた形のものである。葉ノード 500は、 128バイト (この実施形態におけるメモリの仮定されたキャッシュラインサイズ)を占有し、5つの変換記述子501(各々24バイトを占有する)を記憶する。葉ノードの最後の8つのバイトは無視される。変換記述子 501の各々は24バイトを占有し、8バイトを占有する CAMデータ部分 502と16バイトを占有するSRAMデータ部分 503から成る。 CAMデータ部分 502とSRAMデータ部分 503は、それぞれ、CAM102のエントリ (例えば入力アドレス) 及び対応する SRAM103のエントリ (例えば出力アドレス) 内に挿入されるべき変換データを含んでいる。さらに、 CAMデータ部分 502は、その付随する変換記述子が有効であるか否かを表示する有効ビットを内含する。
上述のような変換ツリーのインデックスノードの中に記憶されたノードポインタのものと同じフォーマットをもちかつ現在実行中のプロセスのための変換ツリーのルートノードを指すアドレスを含むノードアドレスフィールドを有する、以下「TTRP」(変換ツリールートポインタ)と呼ぶノードポインタを保持するために、 MMU内の特別なレジスタが使用される。文脈切換えの時点で(すなわち異なるプロセスが実行を開始する時点で)、オペレーティングシステムは、新たに実行中のプロセスについての変換ツリーのルートノードを指すようTTRPレジスタの内容を更新する。
テーブルウォーカ 116による変換ツリーの探索に関与する各段階が、図6の流れ図 600によって例示されている。テーブルウォーカ 116による処理は、ステップ 601から始まり、ここでメモリ内に記憶された変数current-node-pointerがTTRPレジスタ内に記憶されたノードポインタ対し初期化される。図6により描かれている処理全体を通して、current-node-pointerのノードアドレスフィールドは、現在探索されている変換ツリーノードを指す。処理はステップ 601から決定ステップ 602まで移行する。
決定ステップ 602では、テーブルウォーカ 115が、current-node-ptrのノードタイプフィールドを調べる。タイプフィールドが「葉ノード」を表示している場合、処理はステップ 602からステップ 603へと移行する。ステップ 603では、テーブルウォーカ 115は current-node-ptr のノードアドレスフィールドによって指された葉ノードを処理する。ステップ 603から、処理はステップ 604まで移行し、ここで処理は終結する。
テーブルウォーカ 115がステップ 602において、current-node-ptrのノードタイプフィールドが「インデックスノード」であることを決定した場合、処理はステップ 602から 605まで移行する。ステップ 605では、テーブルウォーカ 115はcurrent-node-ptrのノードアドレスフィールドにより指されたインデックスノードを処理する。ステップ 605の終りまでに、current-node-ptrは、テーブルウォーカ 115によって処理されるべき次の変換ツリーノードをそのノードアドレスフィールドが指している、ちょうど探索されたばかりの変換ツリーノードの中に記憶されたポインタを保持する。ステップ605から、処理はステップ 602まで移行する。
テーブルウォーカ 115による変換ツリーのインデックスノードの処理のための図6のステップ 605は、図7の流れ図 700によりさらに詳細に例示されている。処理はステップ 701で始まり、ここでテーブルウォーカ 115は、current-node-ptrのノードアドレスフィールドの中に記憶された(又は論理ノードアドレスの場合にはこれに対応する)実アドレスで始まるメモリキャッシュラインを要求する。メモリ 106は、読取りをセットアップするのに数サイクルとり、次に、キャッシュラインの 128のバイト全てが受理されてしまうまでテーブルウォーカ 115に対し、要求されたキャッシュラインの一定の数のバイト(1つの実施形態では8)を、連続するサイクルの順序で送る。処理は、ステップ 701からステップ 702まで移行し、その間、テーブルウォーカ 115は、current-node-ptr内へメモリ 106から戻された最初の8つのバイト(ノードポインタ)を記憶する。同様に、ステップ 702の間、カウンタ変数iが1に初期化される。カウンタ変数iの目的は、以下に記述する処理ステップ 703〜705 によって構成されたループが7回以上実行されることがないようにすることにある。
処理はステップ 702から、カウンタ変数iを7と比較する決定ステップ 703へと移行する。iが7よりも大きい場合、処理はステップ 707まで移行し、ここで処理は終結する。iが7より大きくない場合、処理はステップ 704まで移行し、ここでテーブルウォーカ 115は、メモリから受理された次の8つのバイトの中に含まれたキーを、変換が望まれている入力アドレスであるXと比較する。Xがキーよりも小さい場合、処理はステップ 707まで移行し、ここで処理は終結する。一方、Xがキーより小さくない場合、処理はステップ 705まで移行し、ここでテーブルウォーカ 115は、current-node-ptr内にメモリから受理された次の8つのバイト(ノードポインタ)を記憶する。同様にステップ 705では、カウンタ変数iは1だけ増分される。ステップ 705から、処理はステップ 703まで移行する。
テーブルウォーカ 115による変換ツリーの葉ノードの処理のための図6のステップ 603は、図8の流れ図 800によってさらに詳細に例示されている。処理はステップ 801で始まり、ここでテーブルウォーカ 115はcurrent-node-ptrのノードアドレスフィールド内に記憶された(又は論理ノードアドレスの場合にはこれに対応する)実アドレスで始まるメモリキャッシュラインを要求する。メモリ 106は読取りをセットアップするのに数サイクルとり、その後、キャッシュラインの 128のバイト全てが受理されてしまうまでテーブルウォーカ 115に対して要求されたキャッシュラインの一定の数のバイト(1つの実施形態では8つ)を連続するサイクルの順序で送る。
その上、カウンタ変数iが、ステップ 801内で1にセットされる。カウンタ変数の目的は、以下でさらに記述されるステップ 802, 806, 807及び 808によって構成されるループが5回しか実行されないようにすることにある。同様にステップ 801では、current-node-ptrの変換数アドレスフィールド内に記憶されるような、現在処理されている葉ノードの中に存在する有効な変換の数が、変数「 num-trans」内に記憶される。その上、望ましい変換が捜し出されたか否かを表示するのに用いられるブール変数「発見済み」が、ステップ 801において偽(false)に初期化される。
処理は、ステップ 801から決定ステップ 802まで移行し、ここでカウンタ変数iが num-transと比較される。iが num-transよりも大きい場合、すなわち現在の葉ノードの中に期待された有効な変換の期待数よりも大きい場合、処理は決定ステップ 802から決定ステップ 803まで移行し、ここでブール変数「発見済み」の値が調べられる。「発見済み」が偽(false)に等しく、望まれた変換が発見されなかったことを表示している場合、処理はステップ 809まで移行し、ここでテーブルウォーカ 115は、中断を生成して、オペレーティングシステムに対し変換テーブル 116内に望まれる変換が発見されなかったことを表示し、オペレーティングシステムに適切な措置を講じさせる。そうでなければ、処理はステップ 804まで移行し、ここで処理は終結する。
iが num-transより大きくない場合、処理は決定ステップ 802から決定ステップ 806まで移行し、ここで要求されたキャッシュラインの次の(すなわちi=1については最初の)24バイト(すなわち次の変換記述子)の中に含まれた有効ビットがテーブルウォーカ 115によって調べられる。有効ビットがセットされない場合(かくして、変換記述子が有効でないことが表示される)、処理はステップ 806からステップ 805まで移行し、ここでテーブルウォーカ 115は、中断を生成してオペレーティングシステムに実行を開始させ、オペレーティングシステムに対してこの中断の原因は現在の葉ノード内に発見された有効な変換の数が期待された数すなわちステップ 801内で変数「 num-trans」内に記憶された数よりも小さかったという事実にあったということを知らせる。
有効ビットがセットされたならば、処理はステップ 806からステップ 807まで移行し、ここでブール変数「発見済み」は、現在調べられている変換記述子(すなわちステップ 806で言及されている要求されたキャッシュラインの24バイト)の最初の8バイトの中に記憶された入力アドレスが、テーブルウォーカ 115がその変換を探索しつつある入力アドレスであるXに等しい場合、真にセットされる。ステップ 807から、処理はステップ 808まで移行し、ここでテーブルウォーカ 115は、それぞれCAM102のエントリ及び対応するSRAMのエントリの中にテーブルウォーカ 115によって現在調べられているメモリから受理された変換記述子の最初の8バイト(入力アドレス)及び最後の16バイト(出力データ)の中に収納された(及び/又はいくつかの実施形態においてはこれらのバイトから計算された)データを挿入するように、TLB101内で「挿入」オペレーションを開始する(前述のとおり、 TLB「挿入」オペレーションは重複エントリの挿入を防止するように設計されている)。同様に、ステップ 808では、カウンタ変数iが1だけ増分される。ステップ 808から、処理はステップ 802まで移行する。テーブルウォーカ 115が変換ツリーの葉ノードを処理した後、入力アドレスXに対応する要求された変換データは(それが葉ノード内で発見されたと仮定して;前述のとおり中断が生成されない場合)、最高4つのその他の入力アドレスに対応する変換データと共にTLB101内に入れられてしまっているだろう。
要求された変換と同じ変換ツリー葉ノード内に記憶された未要求の変換を挿入するのに必要な追加時間は、要求された変換を捜し出すのに必要とされる合計時間に比べ小さいものである。大部分のプログラムが示す参照の局在性(すなわち、1つのプログラムが入力アドレスXを参照する場合、近い将来においてXに近い入力アドレスを参照する確率が高い)及び変換ツリーの葉ノードが近くにある入力アドレスのための変換を記憶するという事実からして、未要求の変換の挿入は TLB内のミスの率を低下させ、かくしてアドレス変換を行なうのに必要とされる平均時間を減少させるはずである。実際、変換テーブル 116の探索を実行するコストは、2回以上の変換にわたって償却される可能性がある。
当該開示は例示的なものであり、制限的な意味をもつものではない。当業者にとってはさらなる修正が明白であり、これらは添付のクレームの範囲内に入るものとして意図されている。
図1aおよび図1bの関係を示す図である。 本発明に従った変換ルックアサイドバッファ及びテーブルウォーカを例示する図(その1)である。 本発明に従った変換ルックアサイドバッファ及びテーブルウォーカを例示する図(その2)である。 CAMエントリの有効ビットを無効化するのに用いられる1つの実施形態における回路を例示する図である。 1つの実施形態において TLBにより実行される「挿入」オペレーションのタイミングを表わす図である。 1つの実施形態において変換テーブルを実施するB-ツリーのインデックスノードの構造を表わす図である。 1つの実施形態において変換テーブルを実施する平衡多方向探索樹の葉ノードの構造を表わす図である。 1つの実施形態において、B-ツリーとして実施された変換テーブルを探索する一方でテーブルウォーカによって実行される処理を例示する流れ図を表わす図である。 1つの実施形態において、B-ツリーとして実施された変換テーブルのiノードのテーブルウォーカによる処理を例示する流れ図を表わす図である。 1つの実施形態において、B-ツリーとして実施された変換テーブルの葉ノードのテーブルウォーカによる処理を例示する流れ図を表わす図である。 エンコーダ及び多数のヒット検出器から成る、1つの実施形態における多重ヒット検出器のブロックダイヤグラムである。 図10aおよび図10bの関係を示す図である。 1つの実施形態における多重ヒット検出器内に収納されたエンコーダを表わす図(その1)である。 1つの実施形態における多重ヒット検出器内に収納されたエンコーダを表わす図(その2)である。 1つの実施形態における多重ヒット検出器内に収納された多重ヒットチェッカを表わす図である。

Claims (1)

  1. 葉ノード及びインデックスノードを含むツリー構造のアドレス変換のためのテーブルを記憶するメモリを含むコンピュータシステム内の装置であって、かつ、前記葉ノードの各々が複数のアドレス変換のための情報を記憶し、前記インデックスノードの各々が、前記ツリー構造のもう1つのノードを指す少なくとも1つのポインタを記憶するようなアドレス変換装置において、
    ノードポインタのノードアドレスフィールドにより指された前記ツリー構造のノードが葉ノード又はインデックスノードのいずれであるかを決定する、ノードポインタ検査機構、
    前記メモリ及び前記ノードポインタ検査機構に作動的に結合され、かくして前記ノードポインタ検査機構が前記ツリー構造の前記ノードがインデックスノードであると決定した場合に、前記メモリから前記ツリー構造の前記ノードを検索しこれを処理することになるインデックスノード検索/処理機構、及び、
    前記メモリ及び前記ノードポインタ検査機構に作動的に結合され、かくして、前記ツリー構造の前記ノードが葉ノードであると前記ノードポインタ検査機構が決定した場合に、前記メモリから前記ツリー構造の前記ノードを検索しこれを処理する葉ノード検索/処理機構、を備え、前記葉ノード検索/処理機構は、変換挿入機構含み、該変換挿入機構は、前記ノードポインタ検査機構が決定した前記ツリー構造の当該葉ノードに格納されている有効なアドレス変換のための情報の全てを変換バッファの中に挿入することを特徴とするアドレス変換装置。
JP2006035553A 1995-03-03 2006-02-13 アドレス変換装置 Expired - Fee Related JP3936378B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/397,809 US5680566A (en) 1995-03-03 1995-03-03 Lookaside buffer for inputting multiple address translations in a computer system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP8526888A Division JPH11501745A (ja) 1995-03-03 1996-02-29 コンピュータシステム内のアドレス変換用ルックアサイドバッファ

Publications (2)

Publication Number Publication Date
JP2006172499A JP2006172499A (ja) 2006-06-29
JP3936378B2 true JP3936378B2 (ja) 2007-06-27

Family

ID=23572714

Family Applications (2)

Application Number Title Priority Date Filing Date
JP8526888A Ceased JPH11501745A (ja) 1995-03-03 1996-02-29 コンピュータシステム内のアドレス変換用ルックアサイドバッファ
JP2006035553A Expired - Fee Related JP3936378B2 (ja) 1995-03-03 2006-02-13 アドレス変換装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP8526888A Ceased JPH11501745A (ja) 1995-03-03 1996-02-29 コンピュータシステム内のアドレス変換用ルックアサイドバッファ

Country Status (5)

Country Link
US (2) US5680566A (ja)
EP (1) EP0813713B1 (ja)
JP (2) JPH11501745A (ja)
DE (2) DE69629800T2 (ja)
WO (1) WO1996027834A1 (ja)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446224B1 (en) 1995-03-03 2002-09-03 Fujitsu Limited Method and apparatus for prioritizing and handling errors in a computer system
US6012131A (en) * 1996-11-06 2000-01-04 Hyundai Electronics Industries. Co., Ltd. High speed translation lookaside buffer employing content address memory
US6199140B1 (en) * 1997-10-30 2001-03-06 Netlogic Microsystems, Inc. Multiport content addressable memory device and timing signals
US6219748B1 (en) 1998-05-11 2001-04-17 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a content addressable memory device
US6240485B1 (en) 1998-05-11 2001-05-29 Netlogic Microsystems, Inc. Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6381673B1 (en) 1998-07-06 2002-04-30 Netlogic Microsystems, Inc. Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
US6237061B1 (en) 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US7069412B2 (en) * 1999-02-17 2006-06-27 Elbrus International Method of using a plurality of virtual memory spaces for providing efficient binary compatibility between a plurality of source architectures and a single target architecture
US6892272B1 (en) 1999-02-23 2005-05-10 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a content addressable memory device
US6460112B1 (en) 1999-02-23 2002-10-01 Netlogic Microsystems, Llc Method and apparatus for determining a longest prefix match in a content addressable memory device
US6499081B1 (en) 1999-02-23 2002-12-24 Netlogic Microsystems, Inc. Method and apparatus for determining a longest prefix match in a segmented content addressable memory device
US6574702B2 (en) 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
US6539455B1 (en) 1999-02-23 2003-03-25 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a ternary content addressable memory device
US6166939A (en) * 1999-07-12 2000-12-26 Net Logic Microsystems Method and apparatus for selective match line pre-charging in a content addressable memory
US6393514B1 (en) 1999-07-12 2002-05-21 Netlogic Microsystems, Inc. Method of generating an almost full flag and a full flag in a content addressable memory
US6175513B1 (en) 1999-07-12 2001-01-16 Netlogic Microsystems Method and apparatus for detecting multiple matches in a content addressable memory
US6195277B1 (en) 1999-09-13 2001-02-27 Lara Technology, Inc. Multiple signal detection circuit
US7110407B1 (en) 1999-09-23 2006-09-19 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system using enable signals
US7487200B1 (en) 1999-09-23 2009-02-03 Netlogic Microsystems, Inc. Method and apparatus for performing priority encoding in a segmented classification system
US6944709B2 (en) * 1999-09-23 2005-09-13 Netlogic Microsystems, Inc. Content addressable memory with block-programmable mask write mode, word width and priority
US7272027B2 (en) * 1999-09-23 2007-09-18 Netlogic Microsystems, Inc. Priority circuit for content addressable memory
US7143231B1 (en) 1999-09-23 2006-11-28 Netlogic Microsystems, Inc. Method and apparatus for performing packet classification for policy-based packet routing
US6934795B2 (en) * 1999-09-23 2005-08-23 Netlogic Microsystems, Inc. Content addressable memory with programmable word width and programmable priority
US6567340B1 (en) 1999-09-23 2003-05-20 Netlogic Microsystems, Inc. Memory storage cell based array of counters
US6493791B1 (en) * 1999-12-20 2002-12-10 Intel Corporation Prioritized content addressable memory
US6480950B1 (en) 2000-01-24 2002-11-12 Oracle International Corporation Software paging system
US6560664B1 (en) * 2000-02-18 2003-05-06 Hewlett Packard Development Company, L.P. Method and apparatus for translation lookaside buffers to access a common hardware page walker
EP1182568A3 (en) * 2000-08-21 2004-07-21 Texas Instruments Incorporated TLB operation based on task-id
US6567900B1 (en) 2000-08-31 2003-05-20 Hewlett-Packard Development Company, L.P. Efficient address interleaving with simultaneous multiple locality options
US6622225B1 (en) 2000-08-31 2003-09-16 Hewlett-Packard Development Company, L.P. System for minimizing memory bank conflicts in a computer system
US6754739B1 (en) 2000-08-31 2004-06-22 Hewlett-Packard Development Company Computer resource management and allocation system
US6636955B1 (en) 2000-08-31 2003-10-21 Hewlett-Packard Development Company, L.P. Mechanism for synchronizing multiple skewed source-synchronous data channels with automatic initialization feature
US6681295B1 (en) 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Fast lane prefetching
US6546453B1 (en) 2000-08-31 2003-04-08 Compaq Information Technologies Group, L.P. Proprammable DRAM address mapping mechanism
US6751721B1 (en) 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
US6704817B1 (en) * 2000-08-31 2004-03-09 Hewlett-Packard Development Company, L.P. Computer architecture and system for efficient management of bi-directional bus
US6668335B1 (en) 2000-08-31 2003-12-23 Hewlett-Packard Company, L.P. System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths
US6546465B1 (en) 2000-08-31 2003-04-08 Hewlett-Packard Development Company, L.P. Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
US6678840B1 (en) 2000-08-31 2004-01-13 Hewlett-Packard Development Company, Lp. Fault containment and error recovery in a scalable multiprocessor
US6633960B1 (en) 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Scalable directory based cache coherence protocol
US6662265B1 (en) 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Mechanism to track all open pages in a DRAM memory system
US6961781B1 (en) 2000-08-31 2005-11-01 Hewlett-Packard Development Company, L.P. Priority rules for reducing network message routing latency
US6738836B1 (en) 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6662319B1 (en) * 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Special encoding of known bad data
US6779142B1 (en) 2000-08-31 2004-08-17 Hewlett-Packard Development Company, L.P. Apparatus and method for interfacing a high speed scan-path with slow-speed test equipment
US7099913B1 (en) 2000-08-31 2006-08-29 Hewlett-Packard Development Company, L.P. Speculative directory writes in a directory based cache coherent nonuniform memory access protocol
US6715057B1 (en) 2000-08-31 2004-03-30 Hewlett-Packard Development Company, L.P. Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes
US6654858B1 (en) 2000-08-31 2003-11-25 Hewlett-Packard Development Company, L.P. Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol
US6671822B1 (en) * 2000-08-31 2003-12-30 Hewlett-Packard Development Company, L.P. Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache
US7213087B1 (en) 2000-08-31 2007-05-01 Hewlett-Packard Development Company, L.P. Mechanism to control the allocation of an N-source shared buffer
US6560687B1 (en) 2000-10-02 2003-05-06 International Business Machines Corporation Method of implementing a translation lookaside buffer with support for a real space control
US6665788B1 (en) * 2001-07-13 2003-12-16 Advanced Micro Devices, Inc. Reducing latency for a relocation cache lookup and address mapping in a distributed memory system
US6996663B1 (en) * 2001-09-12 2006-02-07 Cisco Technology, Inc. Method and apparatus for performing address translation using a CAM
JP4116346B2 (ja) * 2002-07-05 2008-07-09 富士通株式会社 演算処理装置及びそのアドレス変換方法
US6804133B1 (en) 2002-08-30 2004-10-12 Netlogic Microsystems, Inc. Selective match line control circuit for content addressable memory array
US6816396B2 (en) * 2003-04-01 2004-11-09 International Business Machines Corporation Apparatus for detecting multiple hits in a CAMRAM memory array
US7187979B2 (en) * 2003-04-25 2007-03-06 Medtronic, Inc. Medical device synchronization
US7633886B2 (en) * 2003-12-31 2009-12-15 University Of Florida Research Foundation, Inc. System and methods for packet filtering
US20050182912A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation Method of effective to real address translation for a multi-threaded microprocessor
US20050182903A1 (en) * 2004-02-12 2005-08-18 Mips Technologies, Inc. Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer
US7480255B2 (en) * 2004-05-27 2009-01-20 Cisco Technology, Inc. Data structure identifying for multiple addresses the reverse path forwarding information for a common intermediate node and its use
JP4576172B2 (ja) * 2004-07-29 2010-11-04 富士通株式会社 演算処理装置,情報処理装置及び演算処理装置の制御方法
US7761774B2 (en) * 2005-10-28 2010-07-20 Qualcomm Incorporated High speed CAM lookup using stored encoded key
US7904789B1 (en) * 2006-03-31 2011-03-08 Guillermo Rozas Techniques for detecting and correcting errors in a memory device
US7788443B2 (en) * 2006-12-12 2010-08-31 International Business Machines Corporation Transparent multi-hit correction in associative memories
US7788444B2 (en) * 2006-12-12 2010-08-31 International Business Machines Corporation Multi-hit detection in associative memories
WO2008155851A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置、エントリ制御プログラムおよびエントリ制御方法
US20100241638A1 (en) * 2009-03-18 2010-09-23 O'sullivan Patrick Joseph Sorting contacts
US8438330B2 (en) 2010-05-17 2013-05-07 Netlogic Microsystems, Inc. Updating cam arrays using prefix length distribution prediction
US20160259728A1 (en) * 2014-10-08 2016-09-08 Via Alliance Semiconductor Co., Ltd. Cache system with a primary cache and an overflow fifo cache
US10572440B2 (en) * 2017-12-21 2020-02-25 Stmicroelectronics International N.V. High operation frequency, area efficient and cost effective content addressable memory architecture
US10776281B2 (en) * 2018-10-04 2020-09-15 International Business Machines Corporation Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency
US10649778B1 (en) 2018-12-04 2020-05-12 International Business Machines Corporation Performance optimized congruence class matching for multiple concurrent radix translations
CN113688410A (zh) * 2021-08-20 2021-11-23 山东云海国创云计算装备产业创新中心有限公司 一种数据检索方法、装置、fpga及介质

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US523045A (en) * 1894-07-17 lewis
US3800286A (en) * 1972-08-24 1974-03-26 Honeywell Inf Systems Address development technique utilizing a content addressable memory
US4473878A (en) * 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
JPS6047623B2 (ja) * 1982-02-12 1985-10-22 株式会社日立製作所 アドレス変換方式
US4611272A (en) * 1983-02-03 1986-09-09 International Business Machines Corporation Key-accessed file organization
US4736287A (en) * 1983-06-20 1988-04-05 Rational Set association memory system
JPS6184754A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 拡張アドレス変換装置
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US5237671A (en) * 1986-05-02 1993-08-17 Silicon Graphics, Inc. Translation lookaside buffer shutdown scheme
US4827419A (en) * 1986-09-22 1989-05-02 Lasertrak Corporation Portable navigational planning device
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US4811215A (en) * 1986-12-12 1989-03-07 Intergraph Corporation Instruction execution accelerator for a pipelined digital machine with virtual memory
JPS63231550A (ja) * 1987-03-19 1988-09-27 Hitachi Ltd 多重仮想空間制御方式
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
KR920001282B1 (ko) * 1987-10-02 1992-02-10 가부시키가이샤 히타치세이사쿠쇼 버퍼메모리 제어장치
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
JPH02268313A (ja) * 1989-04-11 1990-11-02 Canon Inc 情報入力装置
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5202986A (en) * 1989-09-28 1993-04-13 Bull Hn Information Systems Inc. Prefix search tree partial key branching
US5369744A (en) * 1989-10-16 1994-11-29 Hitachi, Ltd. Address-translatable graphic processor, data processor and drawing method with employment of the same
US5155825A (en) * 1989-12-27 1992-10-13 Motorola, Inc. Page address translation cache replacement algorithm with improved testability
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
US5261088A (en) * 1990-04-26 1993-11-09 International Business Machines Corporation Managing locality in space reuse in a shadow written B-tree via interior node free space list
US5263080A (en) * 1990-06-01 1993-11-16 Boston Technology, Inc. Telephone message storage system with out-of-band signalling
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory
GB2251102B (en) * 1990-12-21 1995-03-15 Sun Microsystems Inc Translation lookaside buffer
US5305444A (en) * 1990-12-21 1994-04-19 Sun Microsystems, Inc. Apparatus for increasing the number of hits in a translation lookaside buffer including instruction address lookaside register
US5247666A (en) * 1991-05-28 1993-09-21 Fawnwood, Inc. Data management method for representing hierarchical functional dependencies
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5386527A (en) * 1991-12-27 1995-01-31 Texas Instruments Incorporated Method and system for high-speed virtual-to-physical address translation and cache tag matching
US5329627A (en) * 1992-04-17 1994-07-12 Sun Microsystems, Inc. Method and apparatus for a translation lookaside buffer with built-in replacement scheme in a computer system
US5493660A (en) * 1992-10-06 1996-02-20 Hewlett-Packard Company Software assisted hardware TLB miss handler
WO1994027222A1 (de) * 1993-05-10 1994-11-24 Jochen Liedtke Verfahren zum umsetzen einer virtuellen speicheradresse mit einer ersten länge in eine realadresse mit einer zweiten länge
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
BR9407962A (pt) * 1993-11-02 1996-12-03 Paracom Corp Aparelho para processamento acelerado de transaçoes com base de dados de computador
US5539892A (en) * 1994-08-02 1996-07-23 Motorola, Inc. Address translation lookaside buffer replacement apparatus and method with user override
US5581737A (en) * 1994-09-12 1996-12-03 International Business Machines Corporation Method and apparatus for expansion, contraction, and reapportionment of structured external storage structures

Also Published As

Publication number Publication date
EP0813713A4 (en) 1998-08-19
JPH11501745A (ja) 1999-02-09
US5893931A (en) 1999-04-13
DE69629800D1 (de) 2003-10-09
EP0813713A1 (en) 1997-12-29
JP2006172499A (ja) 2006-06-29
EP0813713B1 (en) 2003-09-03
DE69629800T2 (de) 2004-04-29
US5680566A (en) 1997-10-21
WO1996027834A1 (en) 1996-09-12
DE813713T1 (de) 1998-10-22

Similar Documents

Publication Publication Date Title
JP3936378B2 (ja) アドレス変換装置
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US5493660A (en) Software assisted hardware TLB miss handler
KR920005280B1 (ko) 고속 캐쉬 시스템
EP0036110B1 (en) Cache addressing mechanism
US5724538A (en) Computer memory address control apparatus utilizing hashed address tags in page tables which are compared to a combined address tag and index which are longer than the basic data width of the associated computer
KR960001946B1 (ko) 우선 변환 참조버퍼
US8239657B2 (en) Address translation method and apparatus
US5860147A (en) Method and apparatus for replacement of entries in a translation look-aside buffer
JP3666689B2 (ja) 仮想アドレス変換方法
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
JPH04352256A (ja) メモリ空間を節約する方法および装置
JPH04232551A (ja) 多重仮想アドレス変換方法及び装置
JP2006146965A (ja) ペンディング要求間の仲裁方法
US5928352A (en) Method and apparatus for implementing a fully-associative translation look-aside buffer having a variable numbers of bits representing a virtual address entry
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
US6901540B1 (en) TLB parity error recovery
US5539892A (en) Address translation lookaside buffer replacement apparatus and method with user override
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
EP0173909A2 (en) Look-aside buffer least recently used marker controller
KR930009667B1 (ko) 세그먼트 디스크립터 유닛
JPH0336647A (ja) キャッシュ・バッファリング制御方式
JPH0235543A (ja) ページテーブルエントリ無効化装置
JPS626350A (ja) Tlb制御装置
JP2004038553A (ja) データ処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070322

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100330

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110330

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120330

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130330

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140330

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees