JP3792520B2 - セルフタイム式tlbのメモリアクセス方法 - Google Patents

セルフタイム式tlbのメモリアクセス方法 Download PDF

Info

Publication number
JP3792520B2
JP3792520B2 JP2001042646A JP2001042646A JP3792520B2 JP 3792520 B2 JP3792520 B2 JP 3792520B2 JP 2001042646 A JP2001042646 A JP 2001042646A JP 2001042646 A JP2001042646 A JP 2001042646A JP 3792520 B2 JP3792520 B2 JP 3792520B2
Authority
JP
Japan
Prior art keywords
match
entry
match line
global
local
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
JP2001042646A
Other languages
English (en)
Other versions
JP2001265654A (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.)
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 JP2001265654A publication Critical patent/JP2001265654A/ja
Application granted granted Critical
Publication of JP3792520B2 publication Critical patent/JP3792520B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Landscapes

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

Description

【0001】
【発明の属する技術分野】
この発明は、コンピュータシステムのメモリアクセス一般に関連し、具体的にはセルフタイム式評価を実施する変換索引バッファ(TLB;translation look-aside buffer)を提供する方法およびシステムに関連する。このTLBは、メモリアクセス要求に対する仮想アドレスがTLB内で見つけられたかどうかのセルフタイム式評価を実施する。これにより、メモリアクセス要求に応じるためのメモリアクセスに含まれるレイテンシが低減される。
【0002】
【従来の技術】
コンピュータシステムは、メモリの多重レベル階層(multi-level hierarchy)を用いる。このメモリの多重レベル階層は、階層の最高層で相対的に速くて高価な限られた容量のメモリを有し、最低層で比較的遅い処理で安価な大容量のメモリを有する。この階層は、キャッシュと呼ばれる比較的小さな速いメモリを含み、このキャッシュは、プロセッサ内部に物理的に組み込まれるか、またはスピードのためにプロセッサの近くに物理的に取り付けられる。コンピュータシステムは、個別の命令キャッシュ(Iキャッシュ)およびデータ・キャッシュ(Dキャッシュ)を用いる。さらに、コンピュータシステムは、多重レベルのキャッシュを使用することができる。キャッシュの使用は、一般にコンピュータ・プログラムに対し、命令レベルで透過的(transparent)であり、このため、命令セットの変更または既存のプログラムに対する修正の必要なしにコンピュータ・アーキテクチャに追加されることができる。
【0003】
プロセッサのために実施されるキャッシュ構造は、一般に変換索引バッファ(TLB;translation look-aside buffer)を含み、これは、一般に大きな内容参照可能メモリ(CAM;content adjustable memory)構造である。一般にプロセッサにより実行されている命令がメモリアクセスを要求する場合(例えばメモリアドレスからのリードまたはメモリアドレスへのライト)、キャッシュのTLBは、その様なメモリアクセスのために仮想アドレス(virtual address)を受信し、その仮想アドレスを物理アドレスに変換する。すなわち、TLBは、受信した仮想アドレスをアクセスされるべきキャッシュメモリ(例えばRAM)の物理アドレスに変換してメモリアクセス要求に応じる。より具体的には、TLBは一般に複数のアドレスのエントリを含み、TLBが仮想アドレスを受信した場合、そのエントリと仮想アドレスとを比較してキャッシュのために合致があるかどうかを判断する。TLBがそのエントリのうちの1つについて合致があると判断し、かつ要求されたアドレスがキャッシュに含まれていることを示せば、ワード線がつけられ(例えばロー(low)の電圧からハイ(high)の電圧に遷移する)、キャッシュメモリ(例えばRAMメモリ)において適当な物理アドレスがアクセスされる。すなわち、TLB内部で受信された仮想アドレスについて合致がある場合、TLBが適当な物理アドレスを出力し、ワード線がつけられ、メモリアクセス要求に応じるためにキャッシュ・データ配列(例えばRAMメモリ)においてその物理アドレスがアクセスされる。
【0004】
したがって、キャッシュのTLBは必然的にメモリアクセス要求のためのクリティカル・パス(critical path;命令を完了するために必要な経路)である。TLBは、全てのマイクロプロセッサの根底をなす部分であり、TLBから物理アドレスが得られないかぎりメモリアクセス要求に対するキャッシュのアクセスは始まらない。したがって、TLBを可能な限り速く実行することが重要である。すなわち、TLBは、命令に応じるスピードに必然的に影響するので、キャッシュをアクセスするのに必要な命令に直ちに(すなわち速く)応じるような方法で実施されることが望ましい。しかしながら、先行技術のTLBの実施は、TLB内部で受信した仮想アドレスについて合致が存在するかどうかという評価において、好ましくない長い時間をもたらしている。結果として、先行技術のTLBの実施は、TLB内部に合致がある場合にワード線をつけてキャッシュメモリの適当な物理アドレスにアクセスする前に、好ましくない長い時間をかける。したがって、先行技術の実施は、メモリアクセス要求に応じるのに好ましくない長い時間を必要とする。
【0005】
図1は先行技術のTLB CAM10例を示す。図1に示すように、TLB CAM10は回路12を含み、この回路はTLB CAM10の1ビットに対する回路である。その様なTLB CAM10の回路は、本分野で既知のものであるので、ここでは詳細に説明しない。図1の典型的なTLB CAM10では、TLB CAMは128個のエントリを含み、それぞれのエントリは52ビットを有する。したがって、回路12を51回複製して52ビットのエントリが提供され、その52ビットのエントリを127回複製して128個のエントリのTLBが提供される。その様なTLB CAMは、128個のエントリ列と52個の行を有する配列として一般に実施されるので、ここでは、TLBのエントリを列として参照する。様々な実施において、TLB CAM10が任意の数のエントリ(列)を持つことができ、それぞれのエントリが任意の数のビット(行)を持つことができることは理解されるべきである。その様なTLB CAM10は、メモリアクセス要求のために52ビットの仮想アドレスを受信し、仮想アドレスをTLBのエントリと比較して、TLB CAMにおいて受信した仮想アドレスについて合致があるかどうかを判断する。さらに、図1に示すように、TLB CAM10はエントリの各ビット12を通るマッチ線(MATCH line)を有する。TLB CAM10は、128個の各エントリごとに別々のマッチ線を有し、各マッチ線は、マッチ線に対応するエントリと受信した仮想アドレスとが合致したかどうかを示す。
【0006】
一般に、エントリの各ビットは電界効果トランジスタ(FET)を持ち、これはエントリの各ビットが受信仮想アドレスの対応するビットに合致するかどうかを示すのに使用される。例えば、図1のビット回路12は、そのエントリのマッチ線に接続されたNチャネルFET26(NFET)を含む。NFET26は、このエントリのビット12が受信仮想アドレスの対応するビットに合致しなかった場合にNFET26がこのエントリのマッチ線をローにするように実施される。すなわち、マッチ線は、はじめにハイの電圧レベルにあり、エントリの全ビットが受信仮想アドレスに合致すれば、マッチ線は、ハイの電圧レベルにとどまって対応するエントリが仮想アドレスに合致する(すなわち対応するエントリに仮想アドレスが「ヒット(hit;命中)」する)ことを示す。しかしながら、1つまたは複数のビットが受信仮想アドレスに合致しなかった場合、その合致しなかったビットはマッチ線をローにし、その結果、対応するエントリにおける仮想アドレスについてヒットされない。TLB CAM10の全ビットがその様なNFET26を有するので、TLB CAM10を実施するのに必要な面積とコストを低減するために非常に小さなNFET26が一般に利用される。したがって、TLBのビットの各NFET26は、一般に比較的遅い速度でマッチ線を放電する。すなわち、各NFET26は、一般にマッチ線を放電するのに比較的長い時間を必要とする小さなNFETである。この長い時間の原因は、マッチ線に接続された他のセルによってマッチ線上に寄生容量が与えられるからである。しかしながら、エントリの全ビットが仮想アドレスに合致せず、その結果、多くのNFET26がマッチ線のプルダウン(pull down;ローにする)に参加する場合、そのエントリは、1、2ビットだけが仮想アドレスについて合致しなかったエントリと比較して、より速くマッチ線を放電することができる。
【0007】
メモリ要求に直ちに応じるために各エントリのマッチ線の値を可能な限り速く判断してキャッシュメモリのアクセスを可能にすることが好ましいことを認識すべきである。したがって、TLBのためのマッチ線の値を可能な限り速く評価して、メモリアクセス要求に応じるのに必要な時間を低減することが好ましい。しかしながら、キャッシュメモリにおける物理アドレスの誤ったアクセスを回避するために、マッチ線の早まったアクセス(すなわち合致しなかったためにエントリがマッチ線をローにプルダウンし、それが完了する前のマッチ線へのアクセス)を防ぐよう注意しなければならない。例えば、TLBの第1のエントリにおいて仮想アドレスについて合致があり、かつTLBの第2のエントリが仮想アドレスに合致しなかった場合を想定する。もし第2のエントリのマッチ線が放電するのに充分な機会が与えられる前に評価されたならば、ワード線は、第2のエントリにより出力された物理アドレスの誤ったアクセスを生じるようつけられる。
【0008】
先行技術の実施の1つは、(仮想アドレスに合致しない各エントリのマッチ線のために充分な時間を与えて放電されるよう)クロック周期の1位相を割り当ててTLBにおける各エントリが受信仮想アドレスに合致するかどうかを判断し、クロック周期の後の位相を割り当ててワード線をつけてキャッシュメモリにおける適当な物理アドレス(すなわちTLBの合致するエントリの物理アドレス)にアクセスする。この実施は、充分長い時間をかけてTLBにおける各エントリが受信仮想アドレスに合致するかどうかを判断することによって、早まったマッチ線の評価により生ずる誤ったメモリアクセスを回避する。
【0009】
しかしながら、その様な先行技術の実施は、メモリ要求に応じるためにキャッシュメモリがアクセスされる前に、好ましくない長い時間を必要とする。例えば、TLBの合致がメモリアクセス要求のために非常に早く完了しても、この実施では、キャッシュメモリのアクセスは(例えばワード線をつけることによって)より速く始まらない。したがって、この実施は、TLBのエントリと受信仮想アドレスとの合致のために確保されている時間の一部が未使用であるかもしれない無駄な時間を生じる。すなわち、その回路はTLBのマッチ線を評価してキャッシュメモリの適当な物理アドレスにアクセスする前に発生する特定のクロック・エッジを待つ必要があるので、メモリアクセス要求に応じることができるスピードは遅れる。したがって、先行技術のTLBの実施は、メモリアクセス要求についてのクリティカル・パスにおいて好ましくない長い時間を必要とする。この実施は、TLBにおいて合致を判断する時間を効率的に使用しないので、効率的にかつ直ちにメモリアクセス要求に応じない。より具体的には、この先行技術の設計は、TLBのためにセルフタイミングの実施を利用しないで、予め定めたタイミングのシーケンスを利用する。このため、この先行技術の設計は、TLBのためにセルフタイミングを利用しないので、効率的にすばやくメモリアクセス要求に応じる高速なTLB(すなわち受信仮想アドレスについて合致があるかどうかをすばやく判断するTLB)を可能にしない。
【0010】
先行技術の第2の実施は、より効率的にメモリアクセス要求に応じるための試みで「ダミー」列と「ダミー」行を利用する。図2Aはこの第2の実施例を示す。ここに示すように、TLB CAM10は、52ビット(すなわち行)をそれぞれ有する128個のエントリ(すなわち列)を含む。さらに、TLB CAM10は、ダミー列(列13として示す)とダミー行(行11として示す)を含む。ダミー列13の1つのビットは、ダミー列13用のマッチ線に接続され、ダミー列13の残りのビットは、そのマッチ線に接続されるが有効ではない(例えばグラウンドに接続される)。例えば、ビット17として示すダミー列13およびダミー行11の共通のビットは、ダミー列13のためのマッチ線に接続され、ダミー列13とダミー行11の残りのビットは、マッチ線に接続されるが有効ではない。その結果、1個のNFET26がダミー列13のマッチ線をプルダウンし、それによって、TLB CAMの実際のエントリのマッチ線の評価を実行するときの基準が提供される。すなわち、ビット17のNFET26は、ダミー列13のマッチ線をプルダウンするように実施される。マッチ線をローの電圧レベルにするのに最も遅い時間を与えるのが、エントリについて1個のビットが合致しない場合であるので、ダミー列のマッチ線をローにする1個のNFET26を有するダミー列13は、時間の基準を提供し、この基準は、TLBのマッチ線の評価をトリガするのに使用することができる。したがって、TLBの全エントリのマッチ線は、ダミー列のマッチ線がローにプルダウンされる時間によって適当な値に設定される。より具体的には、TLBの合致していない全てのエントリは、ダミー列のマッチ線がローにプルダウンされる時間までに放電を完了しているはずである。したがって、この先行技術の実施は、予め定めた時間のシーケンスに従って実行されるのとは異なり、ダミー列13を利用してTLBのマッチ線の評価をトリガするための基準時間を提供する。このため、TLBのマッチ線の評価は、TLB内部の仮想アドレスの合致についての最悪の場合(すなわちエントリの1ビットだけが仮想アドレスに合致しない場合)に基づいて常にトリガされる。
【0011】
さらに、図2Aの先行技術の実施形態の動作を説明するために例示的波形を図2Bに示す。クロック102(例えばプロセッサのクロック)がハイになるとき、仮想アドレス104が発せられ(例えばTLB CAM10に受信される)。仮想アドレス104が発せられたとき、ダミー列13のダミーマッチ線110は、1つのビット17のNFETを通じてローにされる。ダミーマッチ線110がローになった後の任意の時点で、(図2Bの線106に示すように)TLBのマッチ線を評価するためにセルフタイム経路がトリガされる(ハイになる)。より詳細には、ダミーマッチ線110がローに落ちていることを検出するために、図2Aの検出回路20が使用される。検出回路20がダミーマッチ線110をローの電圧レベルで検出したとき、検出回路20は評価信号106を生成する(例えば評価信号106をハイの電圧レベルに遷移させる)。評価信号106がハイになったとき、ワード線108がトリガされる。一旦、ワード線108がハイに遷移すると、TLB RAM15の適当な物理アドレスがアクセスされてメモリアクセス要求に応じる。
【0012】
この先行技術の実施は、ダミー列13が可能性のある最悪の場合(すなわちエントリの1ビットだけが仮想アドレスに合致しなかった場合)に基づいてTLBのマッチ線を評価する基準時間を提供するので、評価信号106のためにセルフタイム経路をトリガするのに好ましくない長い時間を必要とする。すなわち、この先行技術の実施は、TLBのマッチ線を評価して仮想アドレスについて合致を検出する前に、好ましくない長い時間を必要とする。さらに、実際のTLBのエントリの動作を厳密にモデル化するダミー列13を実施することは困難である。プロセス、電圧、および温度(PVT;process, voltage, temperature)の影響は、TLB回路内部で様々である。これは、実際のTLBのエントリをダミー列13でモデル化することを困難にする。より具体的には、ダミー列の実施は、ダミー列から比較的遠くに離れたエントリを一般にモデル化しようとする。そのため、距離にわたって存在するPVTの影響によるスキュー(skew;ズレ)のせいで、その様なモデル化が困難になる。例えば、ある実施では、ダミー列はおよそ1000μm離れているエントリに依存してモデル化される。したがって、TLB回路内部で遭遇するさまざまなプロセスの問題のせいで、TLB CAM10における通常の列と行を厳格にモデル化するダミー行11とダミー列13を実施することは非常に困難である。
【0013】
PVTの影響、およびTLB CAM10の通常の列と行にダミーの列13と行11を厳格にモデル化することの困難さのせいで、TLBのマッチ線の早まった評価による誤ったメモリアクセスが起きないことを確実にするためにクリティカル・パスに余裕が与えられなければならない。このため、一般にセルフタイム経路に付加的な遅延量が追加され、TLB CAM10の実際のエントリのマッチ線を遅らせうる他の何らかの影響が考慮される。例えば、一般的に遅延はセルフタイム経路106がトリガされる前で、かつダミーマッチ線110がローの電圧で検出された後で実施される。したがって、TLB CAM10の合致の判断に必要な好ましくない長い時間のせいで、メモリアクセス要求のクリティカル・パスに好ましくない長い時間が必要になる。さらに、図2Aのダミー列とダミー行の実施例は、TLB CAM構造10のために実施される付加的な行列のせいで、付加的な表面積と付加的なコストがかかる。
【0014】
TLBのスピードをさらに改善するために、評価をトリガするのにTLB内部の隣のマッチ線を利用する「バディ」セルフタイム式TLB(”buddy”self-timed TLB)を実施する様々な試みがなされてきた。その様な「バディ」セルフタイム式TLBは、それぞれ隣のマッチ線に基づいてマッチ線の評価がトリガされるという点で好ましい。しかしながら、「バディ」セルフタイム式TLBの実施における従来技術の試みはうまくいかなかった。従来技術のセルフタイム式TLB回路における一般的な問題は、TLBのエントリに仮想アドレスを合致させるのに失敗したビットの数が不均衡なときの誤ったメモリアクセスを回避することである。TLBのセルフタイム式回路のこの問題を説明するために、図3は従来技術の典型的なバディ・セルフタイムの実施例を示す。図3に第1のマッチ線(マッチ線A)を示す。このマッチ線Aは、TLBの第1の52ビットのエントリについて合致があるかどうかを示すために使用される。したがって、マッチ線Aは、それに接続された52個のNFET(対応するエントリの各ビットに1つ)を有する。第2のマッチ線(マッチ線B)も示され、これは、TLBの第2の52ビットのエントリについて合致があるかどうかを示すために使用される。したがって、マッチ線Bは、それに接続された52個のNFETを有する。マッチ線Aおよびマッチ線Bは、NANDゲート302に入力される。これは、TLBのマッチ線の評価をトリガする信号を出力する。もちろん、TLBは、それぞれ別々のマッチ線を持つ多くのエントリ(例えば128個のエントリ)を有する。その様なマッチ線の全てが隣のマッチ線と共にNANDゲート回路(例えばNANDゲート302など)に入力されてマッチ線についての評価信号が判断される。しかしながら、図3では、この先行技術の実施の説明を簡単にするためにTLBの2つのエントリしか示されていない。
【0015】
動作中、仮想アドレスがTLBにより受信されたとき、マッチ線Aおよびマッチ線Bは、はじめにハイの電圧値をそれぞれ有する。マッチ線Aとマッチ線Bの両方がハイの電圧値を有している間、NANDゲート302により出力される評価信号はローの電圧値である。しかしながら、マッチ線Aかマッチ線Bのどちらかがローの電圧値になったとき、NANDゲート302は評価信号にハイの電圧値を出力してTLBのマッチ線が評価準備されたことを示し、ワード線がつけられてキャッシュの適当な物理アドレスがアクセスされる。例えば、TLBが仮想アドレスを受信するときに、52ビット全てが第1のエントリの仮想アドレスに合致せず、その結果、52個のNFETがマッチ線Aをプルダウンすることを想定する。さらに、第2のエントリの1ビットだけが仮想アドレスに合致せず、その結果、1個のNFETがマッチ線Bをプルダウンすること想定する。マッチ線Bが1個のNFETだけで放電されるのに対して、マッチ線Aが52個のNFETで放電されるので、マッチ線B上に存在する寄生容量のせいで、マッチ線Aはマッチ線Bと比較してより速く放電される。マッチ線Aが放電されるとき、NANDゲート302は、早めに評価信号にトリガをかける。すなわち、マッチ線AがNANDゲート302に評価信号をトリガさせるとき、マッチ線Bはローの電圧値に放電されていない可能性がある。したがって、評価信号がハイになるときにマッチ線Bが放電をまだ完了していないので、ワード線がTLBの第2のエントリのメモリアドレスにアクセスするよう誤ってつけられる。このため、先行技術のセルフタイム式回路での一般的問題は、受信仮想アドレスに合致するビットの数が不均衡なエントリに関するTLBのマッチ線の放電に必要な時間における固有のスキューである。結果として、効果的なバディ・セルフタイム式TLBは、先行技術では開発されなかった。
【0016】
【発明が解決しようとする課題】
上記の点から、先行技術のTLBの実施はいくつかの理由で問題がある。第1に、先行技術のTLBの実施は、キャッシュメモリにアクセスしてメモリアクセス要求に応じる前に、好ましくない長い時間を必要とする。それにより、キャッシュにおける好ましくない大きなレイテンシ(待ち時間)が必要になる。さらに、バディ・セルフタイム式回路の利用によってTLBに必要な時間を低減しようとする場合、先行技術の実施は、受信仮想アドレスに合致するビットの数が様々なTLBエントリ間で不均衡なときに誤ったメモリアドレスがアクセスされる。一般的に、その様な誤ったメモリアドレスのアクセスを回避するために、ダミー列とダミー行の実施が先行技術のTLBのために利用される。しかしながら、その様なダミー列とダミー行の実施形態は、評価信号(これはワード線をトリガする)がTLB内部での最悪の場合の合致のシナリオ(1ビットだけが受信仮想アドレスに合致しない)における基準時間に基づくので、キャッシュメモリにアクセスしてメモリアクセス要求に応じる前に好ましくない長い時間をもたらす。さらに、ダミー列とダミー行の実施は、実施のために付加的な列と行を必要とするので、好ましくない大きな表面積を必要とし、この結果、TLBを実施するコストを増加させる結果となる。その上、ダミー列とダミー行の実施は、ダミー行が物理的に比較的遠くに離れているエントリをモデル化して使用されるという点で問題があり、これは、PVTの影響のせいでスキューを増大させる。
【0017】
【課題を解決するための手段】
上記の点から、キャッシュメモリにアクセスしてメモリアクセス要求に応じる前の仮想アドレスに関するTLBの合致評価のために、好ましくない長い時間を必要としないTLBの実施に対する要望がある。さらに、合致があるかどうかを迅速に評価するだけでなく、誤ったメモリアドレスのアクセスも回避するTLBの実施に対する要望が存在する。さらに、好ましくない大きな表面積を使わないTLBの実施に対する要望が存在する。したがって、TLBに合致があるかの評価をトリガするためにダミー行およびダミー列を利用しないTLBに対する要望が存在する。TLBのエントリが仮想アドレスと比較された後すぐにTLBの合致評価をトリガし、メモリアクセス要求に応じるためのメモリアクセスにおけるレイテンシを最小化し、かつ誤ったメモリアドレスのアクセスを回避するセルフタイム式TLBに対する要望が存在する。
【0018】
このような目的、機能、技術的利点は、TLB内部で受信された仮想アドレスについて合致があるかどうかの評価をトリガするために2段階の合致方式を利用するセルフタイム式TLBを提供するシステムおよび方法によって達せられる。ここでは、合致方式の第1の段階をローカルマッチと呼び、合致方式の第2の段階をグロ―バルマッチと呼ぶ。好ましい実施形態では、TLBのエントリはビットのグループからなり、グループのそれぞれは別々のローカルマッチ線に接続される。好ましい実施形態では、ローカルマッチ線は、はじめにハイの電圧レベルに設定される。グループ内の任意のビットが仮想アドレスの対応するビットに合致しなければ、その任意のビットがローカルマッチ線をローの電圧レベルにプルダウンする。さらに、好ましい実施形態では、エントリの各ローカルマッチ線はグロ―バルマッチ線に接続される。グロ―バルマッチ線は、はじめにハイの電圧レベルに設定される。ローカルマッチ線のいずれかが受信仮想アドレスに合致していないことを示していれば(例えばローの電圧レベルを有するローカルマッチ線によって)、そのローカルマッチ線は、グロ―バルマッチ線をローの電圧レベルにプルダウンする。したがって、評価されるときにグロ―バルマッチ線がハイの電圧レベルを有していれば、グロ―バルマッチ線は、関連するTLBのエントリが受信仮想アドレスに合致することを示す。しかしながら、評価されるときにグロ―バルマッチ線がローの電圧レベルを有していれば、グロ―バルマッチ線は、グロ―バルマッチ線に関連するTLBのエントリが受信仮想アドレスに合致していないことを示す。
【0019】
例えば、最も好ましい実施形態では、52ビットのTLBのエントリは4個のビット・グループ(各グループは13個のビットを有する)を含む。例えば、ビット〔1:13〕が第1のグループを形成し、ビット〔14:26〕が第2のグループを形成し、ビット〔27:39〕が第3のグループを形成し、ビット〔40:52〕が第4のグループを形成する。グループのそれぞれはローカルマッチ線に接続される。例えば、第1のグループの各ビットがローカルマッチ線Aに接続され、第2のグループの各ビットがローカルマッチ線Bに接続され、第3のグループの各ビットがローカルマッチ線Cに接続され、第4のグループの各ビットがローカルマッチ線Dに接続される。最も好ましい実施形態では、ローカルマッチ線は、はじめにハイの電圧レベルに設定される。仮想アドレスがTLBで受信されたとき、各グループの各ビットは受信仮想アドレスの対応するビットと比較される。もしグループのうちの1つまたは複数のビットが仮想アドレスの対応するビットに合致しなければ、その合致しなかったビットは、その各自のローカルマッチ線をローの電圧レベルにプルダウンする。もしそうでなければ、ビット・グループのためのローカルマッチ線はハイの電圧にとどまる。
【0020】
さらに、最も好ましい実施形態では、各ローカルマッチ線は、TLBのエントリのグロ―バルマッチ線に接続されたFETを制御する。したがって、最も好ましい実施形態では、4個のFETがエントリのグロ―バルマッチ線に接続される(すなわち各ローカルマッチ線に対して1個のFET)。もし1つまたは複数のローカルマッチ線がローの電圧レベルであり、それらの各自のグループのビットが受信仮想アドレスの対応するビットに合致しなかったことを示していれば、そのローカルマッチ線は、そのFETをオンにしてグロ―バルマッチ線をローの電圧レベルにプルダウンする。もしそうでなければ、TLBのエントリのグロ―バルマッチ線はハイの電圧レベルにとどまる。
【0021】
好ましい実施形態では、1つのグロ―バルマッチ線が隣りのグロ―バルマッチ線の評価をトリガして、任意のエントリについて合致があるかどうかを判断する。より具体的には、好ましい実施形態では、2つのグロ―バルマッチ線がNANDゲートに入力され、そのNANDゲートの出力が2つのグロ―バルマッチ線の評価をトリガするために利用される。好ましい実施形態では、TLBにおけるただ1つのエントリだけが受信仮想アドレスに合致することができる。このため、多くても2つのグロ―バルマッチ線のうちの1つだけはハイの電圧レベルにとどまり、受信仮想アドレスについて合致を示す。したがって、2つのグロ―バルマッチ線のうちの少なくとも1つがローに遷移するとき、NANDゲートの出力は、グロ―バルマッチ線のペアの評価をトリガするためにハイに遷移する。
【0022】
ローの電圧レベルに遷移する2つのグロ―バルマッチ線の間にわずかなタイミング・スキューが存在するが、その様なタイミング・スキューは好ましい実施形態では非常に小さい。好ましい実施形態は、1つの方法としてエントリのビット・グループに関連するローカルマッチ線を実施することによって、その様なタイミング・スキューを最小化する。TLBのエントリを複数のビット・グループとして実施することによって、任意のグループにおける合致していないビットの数の大きな不均衡が回避される。例えば、最も好ましい実施形態では、各ビット・グループは、エントリのうちの13ビットを含む。したがって、最も好ましい実施形態において最大の不均衡が生ずる場合は、あるグループにおいて13個のビットが合致せず、かつ別のグループにおいて1個のビットだけが合致しない場合である。先行技術の実施では、もっと大きな不均衡の結果となっていたことが思い起こされる(あるエントリについて52個のビットが合致せず、かつ別のエントリについて1個のビットだけが合致しない場合など)。このように、好ましい実施形態のローカルマッチ線は、合致しないビットの数の大きな不均衡を削減するのでTLB回路内部のタイミング・スキューを低減させる。
【0023】
さらに、好ましい実施形態では、比較的少ない数のFETが各エントリのグロ―バルマッチ線をプルダウンするように実施されるので、タイミング・スキューは低減される。例えば、最も好ましい実施形態では、4個のNFETがグロ―バルマッチ線に接続され、関連するエントリが受信仮想アドレスに合致しない場合にグロ―バルマッチ線をプルダウンする。したがって、エントリのペアのためにグロ―バルマッチ線をプルダウンするNFETの数は、あまり不均衡にならない。例えば、最も好ましい実施形態では、最も不均衡な結果となる場合は、あるエントリのために4個のNFETがグロ―バルマッチ線をプルダウンし、かつ別のエントリのために1個のNFETだけがグロ―バルマッチ線をプルダウンする場合である。さらに、好ましい実施形態では、グロ―バルマッチ線のFETは、エントリのマッチ線をプルダウンするために先行技術の実施において利用されるFETと比較して大きい。好ましい実施形態におけるグロ―バルマッチ線のFETが大きいので、グロ―バルマッチ線は、1個のFETだけでより速くプルダウンされることができ、それにより、グロ―バルマッチ線上に複数のプルダウンFETを有することによって現れるゲイン(またはスキュー)を低減させることができる。上記を考慮すると、TLBの2つのエントリについての合致の判断における時間のスキューは最小化される。したがって、好ましい実施形態は、TLBのグロ―バルマッチ線の「バディ」セルフタイム式評価を利用してキャッシュメモリのアクセスにおけるレイテンシを最小化する。
【0024】
本発明の1つの側面の技術的利点は、メモリアクセス要求に応じるためのメモリアクセスにおけるレイテンシを低減するTLBの実施が提供されることである。本発明の1つの側面のさらなる技術的利点は、TLBのエントリにおける受信仮想アドレスに対する合致の「バディ」セルフタイム式評価を利用するTLBの実施が提供されることである。結果として、本発明の1つの側面の技術的利点は、仮想アドレスのためにTLBにおいて合致があるかどうかを判断するために必要な時間を最小化するTLBの実施が提供されることである。それにより、メモリアクセス要求に応じるためのキャッシュメモリ・アクセスにおけるレイテンシが最小化される。例えば、好ましい実施形態は、TLBのために「バディ」セルフタイム式評価を提供する。このマッチ線の評価は、そのマッチ線の比較的近くにある別のマッチ線によってトリガされる。本発明の1つの側面のさらなる技術的利点は、TLBにおいて合致があるかどうかを可能な限り速く評価するだけでなく、誤ったメモリアドレスのアクセスも回避するTLBの実施が提供されることにある。本発明の1つの側面の技術的利点は、好ましくない大きな表面積を使用しないTLBの実施が提供されることにもある。例えば、TLBにおける合致の評価をトリガするために、ダミー行とダミー列を必要としないTLBの実施が提供される。
【0025】
後述する発明の詳細な説明をより理解させるために、この発明の機能および技術的利点を概説してきた。この発明のさらなる機能および利点は、これ以降で詳細に説明される。この発明と同じ目的を果たす他の構造を修正または設計するための基礎として、記載された概念および特定の実施形態を容易に利用することができることは本分野の当業者に明らかである。その様な同等の構成物が請求の範囲に述べた精神および範囲から逸脱しないことが本分野における当業者によって認識されるべきである。
【0026】
【発明の実施の形態】
本発明の好ましい実施形態は、高速で効率的なTLBを提供するためにTLBのための「バディ」セルフタイム式回路を使用する。好ましい実施形態のTLBのバディ・セルフタイム式回路は、TLBにおけるただ1つのエントリだけが受信仮想アドレスに合致するという事実に基づいている。変則的な動作の間(例えばパージ(PURGE)動作の間など)、TLBの複数のエントリが合致することができる。しかしながら、その場合、複数の合致が検出されたかどうかは気にしない(実際には、その様な動作の間に複数の合致を検出することが望まれる)。したがって、好ましい実施形態では、通常動作の間に、TLBにおけるただ1つのエントリだけが受信仮想アドレスに合致する。
【0027】
好ましい実施形態は、TLBのために2段階の合致検出方式を利用する。第1の段階(ここでは、「ローカルマッチ」として参照する)は、NMOSの静的な比較(NMOS static compare)として行われる。その様なローカルマッチは、好ましい実施形態における遅延パルスクロックによって評価される。したがって、好ましい実施形態では、回路のローカルマッチの部分で非セルフタイミングが存在する。このため、ローカルマッチ線が非常にゆっくり進展する場合、その部分の周波数を減らさなければならない。以下でさらに詳細に説明するように、好ましい実施形態では、TLBのエントリは複数のビット・グループを有し、それぞれのグループはそれに関連するローカルマッチ線を有する。例えば、最も好ましい実施形態では、TLBは、それぞれ52ビットのエントリを含み、各エントリはそれぞれ13ビットの4つのグループを含む(例えばグループA、B、C、D)。さらに、4つのグループのそれぞれは、それに関連するローカルマッチ線(例えばローカルマッチ線A、B、C、D)を有する。仮想アドレスがTLBで受信されたとき、エントリの各ビット・グループは、合致があるかどうかを判断するために仮想アドレスの対応するビットと比較される。好ましい実施形態では、ローカルマッチ線のそれぞれは、はじめにハイの電圧に設定されており、エントリの全ビットについて合致がある場合にハイの電圧にとどまる。しかしながら、グループのビットが仮想アドレスの対応するビットに合致しなかった場合、その様なビットは、そのグループのためのローカルマッチ線をローにする。例えば、グループの各ビットは、ローカルマッチ線に接続されたNFETを含み、グループ内のビットが仮想アドレスの対応するビットに合致しなかった場合、そのビットのNFETは、そのグループのローカルマッチ線をローの電圧値にプルダウンする。このように、好ましい実施形態では、複数のローカルマッチ線が各エントリに対して実施され、エントリの一部が受信仮想アドレスに合致するかどうかを示す。
【0028】
第2の段階(ここでは「グロ―バルマッチ」として参照する)は、取り消しゲート型構造(cancellation gate type structure)を利用する。好ましい実施形態では、TLBの各エントリは、それに関連するグロ―バルマッチ線を有する。エントリの複数のローカルマッチ線を利用して、その様なエントリについてグロ―バルマッチ線が制御される。例えば、好ましい実施形態では、TLBのグロ―バルマッチ線のそれぞれは、最初にハイの電圧値に設定され、それに関するTLBのエントリについて合致がある場合、ハイの電圧値にとどまる。エントリの各ローカルマッチ線は、そのエントリのグロ―バルマッチ線に接続されたNFETに入力される。それに関連するグループのビットが仮想アドレスの対応するビットに合致しなかったことをローカルマッチ線が示している場合、その様なローカルマッチ線が入力されているNFETは、グロ―バルマッチ線をプルダウンする。例えば、最も好ましい実施形態では、エントリは4つのローカルマッチ線を含む。これは、そのエントリの1つのグロ―バルマッチ線を制御するのに利用される。したがって、エントリの4つのローカルマッチ線のそれぞれは、そのエントリのグロ―バルマッチ線に接続されたNFETを制御することができる。このように、4個のNFETは、エントリについてグロ―バルマッチ線に接続され、異なるローカルマッチ線がNFETのそれぞれを制御する。それに関連するグループのビットが仮想アドレスの対応するビットに合致しなかったことをローカルマッチ線が示している場合、その様なローカルマッチ線は、そのNFETをオンにしてエントリについてグロ―バルマッチ線をプルダウンする。これにより、そのエントリについて合致がないことが示される。
【0029】
好ましい実施形態では、TLBにわたるエントリのペアは、隣のエントリが合致していないことに基づいて自分自身のセルフタイミング評価信号を生成する。すなわち、好ましい実施形態では、1つのバディ・セルフタイム式回路はTLBのエントリのペア毎に実施される。したがって、ペアのうちの1つのエントリのグロ―バルマッチ線が受信仮想アドレスに合致しなかったことを示しているとき、そのペアのためのセルフタイミング評価信号が生成される。好ましい実施形態では、ペアのエントリの両方が受信仮想アドレスに合致したかどうかを同時に(並列に)判断する。したがって、あるエントリがその判断をほぼ完了したとき(あるエントリが受信仮想アドレスに合致しなかったと判断したとき)、その判断がそのペアの第2のエントリについて完了される。例えば、TLBにおけるただ1つのエントリだけが受信仮想アドレスに合致するので、ペアのうちの1つのエントリについて合致がないことが検出されたとき、他方のエントリの検出は、ほぼ完了される。したがって、ペアのうちの1つのエントリが合致しないことがほぼ検出されると、そのペアのための評価信号がトリガされる。
【0030】
好ましい実施形態では、TLB回路において考慮されなければならないタイミングにおける何らかのわずかな固有のスキューが存在する。しかしながら、好ましい実施形態では、その様なスキューは、先行技術の実施形態ほど大きくない。その様なスキューは、エントリが複数のビット・グループに分けられているので、ローカルマッチ線ではそれ程大きくない。例えば、最も好ましい実施形態では、エントリにおける各ビット・グループ(各ローカルマッチのグループ)は、エントリのうちの13ビットを含む。したがって、起こりうる最も不均衡な結果は、あるグループにおいて13個のビットが合致せず、かつ他方のグループにおいて1個のビットだけが合致しない場合である。しかしながら、先行技術の実施形態では、もっと不均衡な結果が生じることがある(例えばあるエントリに対してエントリのうちの52個のビットが合致せず、かつ別のエントリに対して1個のビットだけが合致しない場合など)。したがって、好ましい実施形態のローカルマッチは、合致していないビットの数の大きな不均衡を削減するので、TLB内部のタイミング・スキューを低減させる。
【0031】
さらに、好ましい実施形態では、比較的少ない数のFETが各エントリのグロ―バルマッチ線上でプルダウンするよう実施されるので、タイミング・スキューは低減される。例えば、最も好ましい実施形態では、4個のNFETがグロ―バルマッチ線に接続されて、関連するエントリが受信仮想アドレスに合致しない場合にグロ―バルマッチ線をプルダウンする。したがって、エントリのペアのためのグロ―バルマッチ線をプルダウンするNFETの数は、あまり不均衡になることがない。例えば、最も好ましい実施形態では、最も不均衡な結果は、あるエントリについて4個のNFETがグロ―バルマッチ線をプルダウンし、かつ別のエントリについて1個のNFETがグロ―バルマッチ線をプルダウンする場合である。さらに、好ましい実施形態では、グロ―バルマッチ線のFETは、先行技術の実施形態でエントリのマッチ線をプルダウンするのに利用されたFETよりずっと大きい。好ましい実施形態では、グロ―バルマッチ線のFETが大きいので、グロ―バルマッチ線は、単一のFETだけでより速くプルダウンされることができる。それにより、グロ―バルマッチ線上に複数のプルダウンFETを有することによって現れるゲインを低減させることができる。上記の点から、TLBの2つのエントリについて合致を判断する時間のスキューは最小化される。
【0032】
図4は、好ましい実施形態のローカルマッチ線に対する静的な擬似NMOS比較回路(static pseudo NMOS compare circuitry)の例示的な概要を示す。図4は好ましい実施形態の簡単な概要を提供し、図7は好ましい実施形態のより詳細な図を提供する。図4に示すように、TLBの52ビット・エントリは、複数のビット・グループを含み、それぞれのグループはローカルマッチ線に関連付けられている。例えば、図4に示す例示的な実施例では、TLBのエントリは4個のビット・グループに分けられる。すなわち、TLBのエントリは、第1のビット・グループ(ビット〔1:13〕)、第2のビット・グループ(ビット〔14:26〕)、第3のビット・グループ(ビット〔27:39〕)、第4のビット・グループ(ビット〔40:52〕)を含む。ローカルマッチ線は、エントリの4個のビット・グループのそれぞれに関連付けられる。より具体的には、ローカルマッチ線Aがビット〔1:13〕に関連付けられ、ローカルマッチ線Bがビット[14:26]に関連付けられ、ローカルマッチ線Cがビット[27:39]に関連付けられ、ローカルマッチ線Dがビット[40:52]に関連付けられる。この例示的な実施例で提供されている本発明が52ビットのエントリを有するTLBだけに制限されないことは理解されるべきである。TLBは任意のサイズのエントリを含むことができる。さらに、本発明は4個のビット・グループを有するエントリに制限されない。TLBのエントリは、任意のビット数をそれぞれ有する任意の数のビット・グループを含むことができる。このように、図4の例示的な実施例は、TLBのために多くの他の実施が可能であることを意図されており、その様な他の実施の全てが本発明に含まれることを意図されている。
【0033】
仮想アドレスがTLBで受信されたとき、図4のエントリの各グループは、合致があるかどうかを判断するために受信仮想アドレスの対応するビットと比較される。エントリのビット[1:13]は、ローカルマッチ線Aに接続されているNFET(NFET201からNFET213に示す)をそれぞれ含む。これらのNFETは、ビット・グループ〔1:13〕のいずれかが受信仮想アドレスの対応するビットに合致しない場合にローカルマッチ線Aをローの電圧値にプルダウンする。また、エントリのビット[14:26]は、ローカルマッチ線Bに接続されているNFET(NFET214からNFET226に示す)をそれぞれ含む。これらのNFETは、ビット・グループ〔14:26〕のいずれかが受信仮想アドレスの対応するビットに合致しない場合にローカルマッチ線Bをローの電圧値にプルダウンする。同様に、エントリのビット[27:39]は、ローカルマッチ線Cに接続されているNFET(NFET227からNFET239に示す)をそれぞれ含む。これらのNFETは、ビット・グループ〔27:39〕のいずれかが受信仮想アドレスの対応するビットに合致しない場合にローカルマッチ線Cをローの電圧値にプルダウンする。さらに、エントリのビット[40:52]は、ローカルマッチ線Dに接続されているNFET(NFET240からNFET252に示す)をそれぞれ含む。これらのNFETは、ビット・グループ〔40:52〕のいずれかが受信仮想アドレスの対応するビットに合致しない場合にローカルマッチ線Dをローの電圧値にプルダウンする。
【0034】
ローカルマッチ線A、B、C、Dは、それぞれNFET402、404、406、408をそれぞれ制御する。NFET402から408のそれぞれは、このエントリのグロ―バルマッチ線に接続される。好ましい実施形態では、ローカルマッチ線A、B、C、Dは、TLBが仮想アドレスを受信するときにはじめにハイの電圧値に設定されている。それらの関連するグループのビット全てが受信仮想アドレスの対応するビットに合致すれば、ローカルマッチ線A、B、C、Dはハイにとどまる。しかしながら、関連するグループのビットが受信仮想アドレスの対応するビットに合致しなければ、関連するマッチ線A、B、C、Dはローの電圧値にプルダウンされる。ローカルマッチ線A、B、C、Dがハイの電圧値であれば、そのマッチ線が入力されているNFET(例えばNFET402、404、406、408のそれぞれ)はオフにされる。好ましい実施形態では、エントリのグロ―バルマッチ線は、はじめにハイの電圧値に設定されている。したがって、NFET402、404、406、408が全てオフにされれば、グロ―バルマッチ線は、ハイの電圧値にとどまり、このエントリについて合致があることを示す。しかしながら、ローカルマッチ線A、B、C、Dのうちの1つまたは複数がローの電圧値であれば、その様な1つまたは複数のマッチ線が入力されているNFET(例えば402、404、406、408のそれぞれ)がオンにされて、エントリのグロ―バルマッチ線をローの電圧値にプルダウンする。それにより、エントリについて合致がないことが示される。
【0035】
例えば、仮想アドレスがTLBで受信された場合、エントリのビット〔1:13〕は、それらが合致するかどうかを判断するために受信仮想アドレスの対応するビット〔1:13〕と比較される。各ビットが合致すれば、ローカルマッチ線Aはハイの電圧値にとどまる。ローカルマッチ線Aは、インバータ422に入力され、そのインバータの出力がNFET402を制御する。ローカルマッチ線Aがハイの電圧値であれば、インバータ422はローの電圧値を出力し、それによりNFET402がオフにされる。ビット〔1:13〕の1つまたは複数が受信仮想アドレスの対応するビットに合致しなければ、FET201から213の該当するFETはローカルマッチ線Aをローの電圧値にプルダウンする。ローカルマッチ線Aがローのとき、インバータ422はハイの電圧値を出力し、それによりNFET402がオンにされる。NFET402がオンにされた場合、そのNFET402はこのエントリのグロ―バルマッチ線をローの電圧値にプルダウンし、それにより、このエントリについて合致がないことが示される。したがって、好ましい実施形態では、ローカルマッチ線Aがハイの場合にNFET403がグロ―バルマッチ線をローにプルダウンせず、ローカルマッチ線Aがローの場合にNFET402がグロ―バルマッチ線をローにプルダウンする。
【0036】
同様の方法でエントリの他のビット・グループは機能する。例えば、エントリのビット[14:26]は、それらが合致したかどうかを判断するために受信仮想アドレスの対応するビット[14:26]と比較される。各ビットが合致すれば、ローカルマッチ線Bはハイの電圧値にとどまる。ローカルマッチ線Bは、インバータ424に入力され、そのインバータの出力がNFET404を制御する。ローカルマッチ線Bがハイの電圧値であれば、インバータ424はローの電圧値を出力し、それによりNFET404がオフにされる。ビット〔14:26〕の1つまたは複数が受信仮想アドレスの対応するビットに合致しなければ、FET214から226の該当するFETはローカルマッチ線Bをローの電圧値にプルダウンする。ローカルマッチ線Bがローのとき、インバータ424はハイの電圧値を出力し、それによりNFET404がオンにされる。NFET404がオンにされた場合、そのNFET404はこのエントリのグロ―バルマッチ線をローの電圧値にプルダウンし、それにより、このエントリに対して合致がないことが示される。したがって、好ましい実施形態では、ローカルマッチ線Bがハイの場合にNFET404がグロ―バルマッチ線をローにプルダウンせず、ローカルマッチ線Bがローの場合にNFET404がグロ―バルマッチ線をローにプルダウンする。
【0037】
同様に、エントリのビット[27:39]は、それらが合致したかどうかを判断するために受信仮想アドレスの対応するビット[27:39]と比較される。各ビットが合致すれば、ローカルマッチ線Cはハイの電圧値にとどまる。ローカルマッチ線Cは、インバータ426に入力され、そのインバータの出力がNFET406を制御する。ローカルマッチ線Cがハイの電圧値であれば、インバータ426はローの電圧値を出力し、それによりNFET406がオフにされる。ビット〔27:39〕の1つまたは複数が受信仮想アドレスの対応するビットに合致しなければ、FET227から239の該当するFETはローカルマッチ線Cをローの電圧値にプルダウンする。ローカルマッチ線Cがローのとき、インバータ426はハイの電圧値を出力し、それによりNFET406がオンにされる。NFET406がオンにされた場合、そのNFET406はこのエントリのグロ―バルマッチ線をローの電圧値にプルダウンし、それにより、このエントリに対して合致がないことが示される。したがって、好ましい実施形態では、ローカルマッチ線Cがハイの場合にNFET406がグロ―バルマッチ線をローにプルダウンせず、ローカルマッチ線Cがローの場合にNFET406がグロ―バルマッチ線をローにプルダウンする。
【0038】
さらに、エントリのビット[40:52]は、それらが合致したかどうかを判断するために受信仮想アドレスの対応するビット[40:52]と比較される。各ビットが合致すれば、ローカルマッチ線Dはハイの電圧値にとどまる。ローカルマッチ線Dは、インバータ428に入力され、そのインバータの出力がNFET408を制御する。ローカルマッチ線Dがハイの電圧値であれば、インバータ428はローの電圧値を出力し、それによりNFET408がオフにされる。ビット〔40:52〕の1つまたは複数が受信仮想アドレスの対応するビットに合致しなければ、FET240から252の該当するFETはローカルマッチ線Dをローの電圧値にプルダウンする。ローカルマッチ線Dがローのとき、インバータ428はハイの電圧値を出力し、それによりNFET408がオンにされる。NFET408がオンにされた場合、そのNFET408はこのエントリのグロ―バルマッチ線をローの電圧値にプルダウンし、それにより、このエントリに対して合致がないことが示される。したがって、好ましい実施形態では、ローカルマッチ線Dがハイの場合にNFET408がグロ―バルマッチ線をローにプルダウンせず、ローカルマッチ線Dがローの場合にNFET408がグロ―バルマッチ線をローにプルダウンする。
【0039】
図4に示す好ましい実施形態の例示的な例では、ローカルマッチ線A、B、C、Dのうちの1つまたは複数のいずれかは、受信仮想アドレスの対応するビットに合致していない関連するグループにおけるビットによって、ローの電圧値にプルダウンされる。その結果、NFET402、404、406、408は、オンにされてそのエントリのグロ―バルマッチ線をローにプルダウンする。先に述べたように、好ましい実施形態では、比較的少ない数のFETが各グロ―バルマッチ線のために実施されており、2つのグロ―バルマッチ線を放電するFETの数がさほど不均衡ではないので、グロ―バルマッチ線を放電するタイミング・スキューは最小化される。例えば、図4に示す実施例において、最も大きな不均衡な結果は、1個のFETが第1のグロ―バルマッチ線を放電し、かつ4個のFETが第2のグロ―バルマッチ線を放電する場合である。もちろん、他の実施例において4個以上のFETがグロ―バルマッチ線のために実施されてもよい。例えば、エントリについて誤ったヒットの検出を生じさせるタイミング・スキューを受けることなしに、12個(またはそれ以上)のFETが1つのグロ―バルマッチ線のために実施されてもよい。他の実施形態(例えば、エントリが4個未満のビット・グループにわけられた場合)において、4個未満のFETが1つのグロ―バルマッチ線のために実施されてよいことも理解すべきである。さらに、好ましい実施形態では、NFET402、404、406、408は、先行技術の実施形態でマッチ線を放電するために典型的に利用されるNFETと比較して大きい。例えば、最も好ましい実施形態では、FET402、404、406、408のそれぞれは、20μmのFETで実施される。
【0040】
図5を参照して好ましい実施形態をさらに説明する。図5では、図4のエントリにより出力されたグロ―バルマッチ線がグロ―バルマッチ線Aで示される。例えば、グロ―バルマッチ線Aは、それに接続された4個のFET(すなわちNFET402、404、406、408)を含む。グロ―バルマッチ線Aは、TLBの別のエントリのグロ―バルマッチ線とペアにされ、これもそれに接続された4個のFET(すなわち、NFET462、464、466、468)を有する。好ましくは、グロ―バルマッチ線AおよびBは、互いに比較的近くにあるエントリのグロ―バルマッチ線である。最も好ましくは、グロ―バルマッチ線AおよびBは、隣り合うエントリのグロ―バルマッチ線である。ペアにされたグロ―バルマッチ線(マッチ線Aおよびマッチ線B)は、NANDゲート444に入力され、このゲートがマッチ評価信号446を出力する。この後でより詳細に述べるように、マッチ評価信号446は、グロ―バルマッチ線AおよびBの関連するTLBエントリに対して合致があるかを評価する適当な時を示し、エントリのうちの1つに合致があるときにワード線がつけられる。グロ―バルマッチ線AおよびBが両方ともハイであるとき、NANDゲート444は、マッチ評価信号446についてローの電圧値を出力する。しかしながら、グロ―バルマッチ線AおよびBの両方または1つがローに遷移する場合(関連するエントリについて合致されなかったことを示している)、NANDゲート444は、マッチ評価信号446のためにハイの値を出力し、それによりマッチ線AおよびBの評価を実行することが可能であることが示される。好ましい実施形態では、両方のエントリは同時に(例えば並列に)仮想アドレスと比較される。したがって、マッチ線AおよびBは、タイミングにおけるスキュー量を最小化して、ほぼ同時に評価のために読み取られるべきである。さらに、TLBにおいて1個のエントリだけが受信仮想アドレスに合致することができるので、グロ―バルマッチ線AおよびBのうちの少なくとも1つは、合致していないことを示すために放電されなければならない。したがって、グロ―バルマッチ線AおよびBのうちの一方がローに遷移する時間で、他方のマッチ線は、(他方のマッチ線も受信仮想アドレスに合致しない場合)放電されるべきである。このように、マッチ評価信号446を利用して、NANDゲート444によりマッチ評価信号がハイになる時間でグロ―バルマッチ線AおよびBの評価がトリガされる。
【0041】
図5はTLBのエントリの1つのペアのための実施例を図示しているが、TLBに多くのエントリのペアが存在することは理解されるべきである。この点を説明するために、図6は、TLBにおけるエントリの2つのペアのために実施されるグロ―バルマッチ線回路を示す。図5と同様に、図6は、TLBのエントリにそれぞれ関連するグロ―バルマッチ線Aおよびグロ―バルマッチ線Bを含む。グロ―バルマッチ線Aおよびグロ―バルマッチ線Bは、最も好ましくは隣り合うマッチ線であり、NANDゲート444(これは図6でより詳細に示されている)に入力される。NANDゲート444は、グロ―バルマッチ線のペアのためにマッチ評価信号を出力する。それに加えて、グロ―バルマッチ線Cおよびグロ―バルマッチ線Dは、TLBの異なるエントリに関連づけられ、これらも好ましくは隣り合うエントリである。その様なグロ―バルマッチ線CおよびDは、NANDゲート544に入力され、このゲートがグロ―バルマッチ線のペアのためにマッチ評価信号546を出力する。先に述べたように、最も好ましいペアのマッチ線は隣り合う線(例えば線AとB)である。しかしながら、さまざまな実施形態では、その様にペアにされるマッチ線は隣り合わないかもしれない。しかしながら、そのようなペアのマッチ線は、互いに比較的近くにあることが好ましい。
【0042】
図7は、好ましい実施形態においてローカルマッチ線を検出するのに使用される例示的な擬似静的CAM構造比較器(pseudo-static CAM structure comparative)を示す。好ましい実施形態では、その様な静的なCAM構造は、エントリのビット・グループ(例えばエントリのビット〔1:13〕)を受信仮想アドレスの対応するビットと比較するために含まれている。その様な静的なCAM構造は、本分野で既知の一般的なデバイスである。図4のローカルマッチ線AおよびBに対応するローカルマッチ線AおよびBが示されている。様々な他のローカルマッチ線(例えば図4のローカルマッチ線CおよびD)が図7に示す態様で実施されることは理解されるべきである。図4と同様に、ローカルマッチ線Aはそれに接続されたNFET(201から213)を有する。これらのNFETは、対応するエントリのビット〔1:13〕の1つまたは複数のいずれかが任意のビットに対して合致しない場合にローカルマッチ線Aを放電させることができる。ローカルマッチ線Aはインバータ422に入力され、このインバータはローカルマッチ線Aの反転信号(ローカルN_マッチAとして示す)を出力する。ローカルN_マッチAはNFET402に入力される。同様に、ローカルマッチ線Bは、それに接続された13個のNFET(214から226)を有する。これらのNFETは、対応するエントリのビット〔14:26〕の1つまたは複数のいずれかが任意のビットに対して合致しない場合にローカルマッチ線Bを放電させることができる。ローカルマッチ線Bはインバータ424に入力され、このインバータはローカルマッチ線Bの反転信号(ローカルN_マッチBとして示す)を出力する。ローカルN_マッチBはNFET404に入力される。
【0043】
図4に示すように、NFET402および404は、マッチ線AおよびBのいずれか(または両方)が受信仮想アドレスに合致しない場合にグロ―バルマッチ線を放電するために使用される。図7でより詳細に示すように、好ましい実施形態では、遅延パルスクロック信号(DPCK;delayed pulse clock signal)は、ローカルマッチを検出するために使用される。図7に示すように、DPCK信号は、ローカルマッチ線AおよびBのために、それぞれNFET622および624を制御するよう入力される。同様に、好ましい実施形態ではクロック信号(CK;clock signal)もPFET626を制御するよう入力される。さらに、好ましい実施形態では、クロス接続されたインバータ(cross-coupled inverter)630と632が含まれ、出力値「Z」を保持するためのラッチを提供し、それに接続されたローカルマッチ線のいずれかが合致していない信号を発した場合にグロ―バルマッチ線を放電するようNFET628が制御される。
【0044】
図7の好ましい実施形態の動作を図8の例示的な波形で示す。図8は、図7のCK、DPCK、ローカルマッチ線A、ローカルマッチ線B、NOH、Z、およびグロ―バルマッチ線信号のための例示的な波形を示す。時間帯TでCKはハイに遷移し、その後の任意の時間でDPCKはハイをパルスする。DPCKを発する前で、かつCKが発せられた後の遅延量は、ローカルマッチ線の対応するビットについて合致がない場合、それに対応するNFET(例えばNFET201〜213および214〜226)がローカルマッチ線AおよびBを放電することを可能にするような、充分長い設定時間である。先に述べたように、好ましい実施形態では、その様な遅延は比較的短い期間であり、これは、ローカルマッチ線がそれに接続された1つまたは複数のNFETによって比較的速く放電されるからである。時間帯Tに示すように、ローカルマッチ線AおよびBは、DPCKパルス信号が発せられる前にローの電圧値に放電される(それらの対応するビットについて合致がないことを示す)。実際、好ましい実施形態では、ローカルマッチ線AおよびBは、CK信号がハイに遷移する前までに放電する静的な信号である。ローカルマッチ線AおよびBが時間帯Tでローの電圧値に放電されるので(合致していないことを示す)、インバータ422および424によって出力されるローカルN_マッチAおよびローカルN_マッチBの信号は、ハイの電圧レベルである(すなわち論理1)。したがって、DPCKパルスが発せられるとき、NFET402および622並びにNFET404および624がオンにされ、それによりNOHをローの電圧レベルに放電する。これは、クロス接続されたインバータ630と622においてラッチされる。その結果、信号Z(インバータ632の出力)は、(NFET628をオンにする)ハイの電圧レベルになり、それによりグロ―バルマッチ線がローの電圧レベルに放電される。このように、ローカルマッチ線AおよびBで合致がないことを起因として、グロ―バルマッチ信号が放電され、エントリについて合致がないことが示される。
【0045】
時間帯Tで再びCKがハイに遷移し、その後の任意の時間でDPCKがハイをパルスする。再びDPCKを発する前で、かつCKが発せられた後の遅延量は、ローカルマッチ線の対応するビットについて合致がない場合、それに対応するNFET(例えばNFET201〜213および214〜226)がローカルマッチ線AおよびBを放電することを可能にするような、充分長い設定時間である。時間帯Tに示すように、ローカルマッチ線AおよびBは、ハイの電圧値にとどまる(それらの対応するビットについて合致があることを示している)。ローカルマッチ線AおよびBは、時間帯Tの間、ハイの電圧レベルにとどまるので(合致を示しているので)、インバータ422および424により出力されるローカルN_マッチAおよびローカルN_マッチBの信号は、ローの電圧レベルになる(すなわち論理0)。したがって、DPCKパルスが発せられるとき、NFET402および404はオフのままであり、NOH信号がハイの電圧レベルにとどまる。これは、クロス接続されたインバータ630と632においてラッチされる。その結果、信号Z(インバータ632の出力)はローの電圧レベルになり、これは、NFET628をオンにしない。その結果、グロ―バルマッチ線がハイの電圧レベルにとどまることできる(エントリについて合致を示す)。このように、ローカルマッチ線AおよびBのビットが受信仮想アドレスに合致するので、グロ―バルマッチ信号が放電されず、その結果、エントリについて合致が示される。したがって、エントリのローカルマッチ線(図4のローカルマッチ線A、B、C、D)の全てが合致を示していれば、グロ―バルマッチ線は、それに接続されたどのマッチ線によっても放電されない。
【0046】
時間帯Tで再びCKがハイに遷移し、その後の任意の時間でDPCKがハイをパルスする。再びDPCKを発する前で、かつCKが発せられた後の遅延量は、ローカルマッチ線の対応するビットについて合致がない場合、それに対応するNFET(例えばNFET201〜213および214〜226)がローカルマッチ線AおよびBを放電することを可能にするような、充分長い設定時間である。時間帯Tに示すように、ローカルマッチ線Bはハイの電圧値にとどまり(その対応するビットについて合致を示す)、ローカルマッチ線Aはローの電圧値に遷移する(その対応するビットについて合致がないことを示す)。時間帯Tの間にローカルマッチ線Bがハイの電圧レベルにとどまるので、インバータ424により出力されるローカルN_マッチB信号は、ローの電圧レベルである(すなわち論理0)。したがって、DPCK信号が発せられるとき、NFET404はNOH信号を放電するためにオンにならない。しかしながら、時間帯Tの間にローカルマッチ線Aがローの電圧レベルに放電されるので(合致していないことを示す)、インバータ422によって出力されるローカルN_マッチA信号は、ハイの電圧レベルである(すなわち論理1)。したがって、DPCKパルスが発せられるとき、NFET402がオンにされ、それにより、NOH信号がローの電圧レベルに放電し、これは、クロス接続されたインバータ630と632においてラッチされる。その結果、信号Z(インバータ632の出力)はハイの電圧レベルであり、これがNFET628をオンにし、それによりグロ―バルマッチ線がローの電圧レベルに放電される(エントリについて合致がないことを示す)。このように、ローカルマッチ線の対応するビットが受信仮想アドレスに合致しない場合、グロ―バルマッチ線に接続されたローカルマッチ線のいずれかがグロ―バルマッチ線を放電することができる。
【0047】
好ましい実施形態では、グロ―バルマッチ線のペアのための評価信号(例えば図5の信号446)は、グロ―バルマッチ線検出回路に入力される。図9は、例示的なグロ―バルマッチ線検出回路の好ましい実施形態を示す。図9では、好ましい実施形態におけるグロ―バルマッチ線のペア(すなわちグロ―バルマッチ線AおよびB)が入力されるNANDゲート444が再び図示されている。このゲートがペアのためのマッチ評価信号446を出力する。図9は、好ましい実施形態におけるグロ―バルマッチ線Aの実施例をより詳細に図示する。図示するように、グロ―バルマッチ線Aが図4のグロ―バルマッチ線に対応し、ローカルマッチ線A、B、C、DがNFET402、404、406、408をそれぞれ介してグロ―バルマッチ線Aに接続される。PRECK信号(遅延されたクロック信号)は、PFET714およびNFET702を制御するのに提供される。より具体的には、PRECKがローのとき、PRET714がオンにされ、グロ―バルマッチ線Aがハイの電圧レベルに保持される。PRECKがハイに遷移するとき、PFET714は、オフにされ、それに接続されたローカルマッチ線のうちの1つまたは複数について合致がないことが検出された場合にグロ―バルマッチ線Aを放電する。それに加えて、PRECKは、ハイに遷移するときにNFET702をオンにする。グロ―バルマッチ線のペアに関するマッチ評価信号446は、NFET704を制御するよう入力される。さらに、グロ―バルマッチ線Aは、PFET708およびNFET706を制御するよう入力され、これが、NFET702および704と関連して動作し、NRWORD A信号の値を制御する。NRWORD A信号は、クロス接続されたインバータ710と712によりラッチされ、インバータ712の出力は、RWORD Aに信号を提供する。これは、グロ―バルマッチ線Aに対応するTLBエントリにより指定されたアドレスのアクセス(例えばリード動作)をトリガするのに使用される。
【0048】
図9の好ましい実施形態の動作を図10の例示的な波形によって示す。図10は、図9のCK、PRECK、グロ―バルマッチ線A、グロ―バルマッチ線B、マッチ評価、およびRWORD A線の信号のための例示的な波形を示す。時間帯TでCKがハイに遷移し、その後の任意の時間でPRECKがハイに遷移する。時間帯Tに示すように、PRECKがハイに遷移した後で、グロ―バルマッチ線AおよびBはローの電圧値に放電される(その対応するローカルマッチ線について合致がないことを示す)。より具体的には、PRECKがハイに遷移してPFET714をオフにし、かつNFET702をオンにする。NFET402、404、406、408のうちの1つまたは複数は、それらの各ローカルマッチ線によって合致がないことが示されているので、グロ―バルマッチ線Aをローの電圧に放電する。グロ―バルマッチ線AおよびBの両方が最初にハイにあるので、NANDゲート444により出力されるマッチ評価信号446は、はじめにローの電圧値である。したがって、NFET702は、はじめにオフにされる。グロ―バルマッチ線Aの信号がNFET402、404、406、および/または408によってローにプルダウンされるとき、マッチ評価信号446がハイに遷移し、それによりNFET704がオンにされる。それに加えて、グロ―バルマッチ線Aがローの電圧値であるので、NFET706はオンにされない。したがって、NRWORD Aの信号は、ハイの電圧値にプルアップされ、これは、クロス接続されたインバータ710および712においてラッチされる。このため、インバータ712により出力されるRWORD A信号は、ローの電圧値であり、メモリアクセス(例えばリード動作)がグロ―バルマッチ線AのTLBエントリのアドレスのためにトリガされないことが示される。図10に示すように、時間帯Tでは、グロ―バルマッチ線Bについても合致はない(これは、前述したようにグロ―バルマッチ線Aに対するものと同様にして起きる)。
【0049】
時間帯TでCKが再びハイに遷移し、その後の任意の時間でPRECKがハイに遷移する。Tの時間帯に示すように、PRECKがハイに遷移した後でグロ―バルマッチ線Bがローの電圧値に放電され(その対応するローカルマッチ線が合致していないことを示す)、グロ―バルマッチ線Aがハイの電圧値にとどまる(その対応するローカルマッチ線について合致を示す)。グロ―バルマッチ線Aでは、PRECKがハイに遷移するとき、PFET714がオフにされ、NFET702がオンにされる。各ローカルマッチ線の全てが合致を示しているので、全NFET(402、404、406、408)がグロ―バルマッチ線をローの電圧値に放電しない。グロ―バルマッチ線AおよびBが最初にハイであるので、NANDゲート444により出力されるマッチ評価信号446は、はじめにローの電圧値である。したがって、NFET702は、はじめにオフにされる。グロ―バルマッチ線Bの信号が、それに接続されたNFETによってローにプルダウンされるとき(関連するローカルマッチ線のうちの1つまたは複数について合致がないことを示す)、マッチ評価信号446はハイに遷移し、それによりNFET704をオンにする。それに加えて、グロ―バルマッチ線Aがハイの電圧値であるので、NFET706がオンにされる。したがって、NFET706、704、702は、NRWORD A信号をローの電圧値に放電するよう動作する。これは、クロス接続されたインバータ710と712においてラッチされる。このため、インバータ712によって出力されるRWORD A信号は、ハイの電圧値であり、グロ―バルマッチ線AのTLBエントリのアドレスに対するメモリアクセス(リード動作)をトリガする。したがって、グロ―バルマッチ線Aに関連付けられたエントリについて合致が迅速に検出され、対応するアドレスのアクセスがすぐにトリガされることが可能になる。
【0050】
時間帯TでCKが再びハイに遷移し、その後の任意の時間でPRECKがハイに遷移する。時間帯Tに示すように、PRECKがハイに遷移した後でグロ―バルマッチ線AおよびBは、ローの電圧値に放電される(それらの対応するローカルマッチ線について合致がないことを示す)。より具体的には、PRECKがハイに遷移して、PFET714をオフにし、かつNFET702をオンにする。それらの各ローカルマッチ線が合致していないことを示しているので、NFET402、404、406、408は、グロ―バルマッチ線Aをローの電圧値に放電する。グロ―バルマッチ線AおよびBは最初にハイであるので、NANDゲート444により出力されるマッチ評価信号446は、はじめはローの電圧値である。したがって、NFET702は、はじめにオフにされる。グロ―バルマッチ線Aの信号がNFET402、404、406、および/または408によってローにされるとき、マッチ評価信号446がハイに遷移し、それによりNFET704がオンにされる。それに加えて、グロ―バルマッチ線Aがローの電圧値であるので、NFET706がオンにされない。したがって、NRWORDAの信号は、ハイの電圧値にプルアップされ、これは、クロス接続されたインバータ710と712においてラッチされる。このため、インバータ712によって出力されたRWORD A信号はローの電圧値であり、グロ―バルマッチ線AのTLBエントリのアドレスに対するメモリアクセス(リード動作)がトリガされない。図10に示すように、時間帯Tではグロ―バルマッチ線Bについても合致がない(これは、前述したようにグロ―バルマッチ線Aに対するものと同様にして起きる)。
【0051】
最も好ましい実施形態では、TLB回路はマイクロプロセッサ・チップ(集積回路)上のキャッシュに対して実施される。しかしながら、好ましい実施形態のTLB回路がTLBを利用する任意の種類のチップ(集積回路)上で実施されてもよいことは理解されるべきである。さらに、好ましい実施形態がプロセッサを有するあらゆる種類のコンピュータシステム内で実施されてよいことも理解されるべきである。その様なコンピュータシステムには、パーソナル・コンピュータ(PC)、ラップトップ・コンピュータ、および携帯情報端末(例えばパームトップPC)などが含まれる。
【0052】
本発明とその利点を詳細に述べたけれども、様々な変形、置換、および代替が、請求の範囲およびその精神から離れることなく実施可能なことは理解されるべきである。さらに、本発明の応用例の範囲が本明細書の実施例に記載した特定の実施形態の範囲に制限されないことが意図される。この発明と同じ目的を果たす他の構造を修正または設計するための基礎として、記載された概念および特定の実施形態を容易に利用することができることは本分野の当業者に明らかである。したがって、請求の範囲は、そのようなものが含まれることを意図している。
【0053】
この発明は例として次の実施形態も含む。
(1)メモリアクセス要求に応じるためのメモリアクセス方法であって、
TLBにおいてメモリアクセス要求のための仮想アドレスを受信し、
前記仮想アドレスと前記TLBのエントリの少なくとも第1のビット・グループとを比較し、
前記少なくとも第1のビット・グループについて前記仮想アドレスとの合致があるかどうかを示す少なくとも第1のローカルマッチ信号を生成し、
前記TLBのエントリについて、前記少なくとも第1のローカルマッチ信号によって示されるように合致があるかどうかを示すグローバルマッチ信号を生成し、
前記グローバルマッチ信号が前記エントリについて合致があることを示している場合、該エントリによって示される物理アドレスをアクセスするメモリアクセス方法。
【0054】
(2)各エントリについて合致がないことを示す複数のグローバルマッチ信号のうちの少なくとも1つに基づいて、該複数のグローバルマッチ信号の評価信号446をトリガするステップを含む(1)に記載の方法。
【0055】
(3)前記複数のグローバルマッチ信号がグローバルマッチ信号446のペアである(2)に記載の方法。
【0056】
(4)前記複数のグローバルマッチ線の信号446が互いに近くにある(2)に記載の方法。
【0057】
(5)前記複数のグローバルマッチ線の信号446、544が隣り合う信号である(4)に記載の方法。
【0058】
(6)前記トリガするステップは、
前記複数のグローバルマッチ信号をNANDゲート444に入力し、
前記NANDゲートの出力に基づいて前記複数のグローバルマッチ信号の評価をトリガすることを含む(2)に記載の方法。
【0059】
(7)前記比較ステップは、前記仮想アドレスと前記エントリの複数のビットのグループとを比較することを含む(1)に記載の方法。
【0060】
(8)前記複数のビットのグループが前記エントリの一部である(7)に記載の方法。
【0061】
(9)前記エントリが52ビットのエントリであり、前記複数のグループが該エントリの少なくとも4つのビット・グループを含む(8)に記載の方法。
【0062】
(10)前記少なくとも第1のローカルマッチ信号201を生成するステップが、前記エントリの異なるビット・グループごとに、複数のローカルマッチ線信号(201、213、214、226)を生成することを含む(1)に記載の方法。
【図面の簡単な説明】
【図1】先行技術のTLBの実施例。
【図2】図2Aはダミー列とダミー行を利用する別の先行技術のTLBの実施例を示し、図2Bは図2Aの波形を示す。
【図3】先行技術の典型的なバディ・セルフタイム式実施例。
【図4】好ましい実施形態のローカルマッチ用比較回路の概略図。
【図5】好ましい実施形態のグローバルマッチ回路の実施例。
【図6】好ましい実施形態におけるTLBの2つのエントリのペアのためのグローバルマッチ回路の実施例。
【図7】好ましい実施形態においてローカルマッチを検出するのに使用される例示的な擬似静的CAM構造比較回路。
【図8】図7の好ましい実施形態の動作を図示する例示的な波形。
【図9】好ましい実施形態の例示的なグローバルマッチ線検出回路。
【図10】図9の好ましい実施形態の動作を図示する例示的な波形。
【符号の説明】
201 NFET
213 NFET
422 インバータ
446 マッチ評価信号
444 NANDゲート

Claims (3)

  1. メモリにアクセスしてメモリアクセス要求を満足させる方法であって、
    変換索引バッファにおいてメモリアクセス要求のための仮想アドレスを受信するステップと、
    前記仮想アドレスと前記変換索引バッファの一つのエントリの第1のビットグループを比較するステップと、
    前記仮想アドレスと前記第1のビットグループについて合致があるか否かを示す第1のローカルマッチ信号を生成するステップと、
    前記仮想アドレスと前記変換索引バッファの前記一つのエントリの第2のビットグループを比較するステップと、
    前記仮想アドレスと前記第2のビットグループについて合致があるか否かを示す第2のローカルマッチ信号を生成するステップと、
    前記変換索引バッファの前記一つのエントリについて、少なくとも前記第1および第2のローカルマッチ信号に基づいて、前記仮想アドレスとの合致があるか否かを示すグローバルマッチ信号を生成するステップと、
    前記グローバルマッチ信号が前記一つのエントリについて合致があることを示す場合、前記エントリによって示されたメモリの物理アドレスにアクセスするステップと、
    複数のグローバルマッチ信号のうち少なくとも1つがその対応するエントリについて合致が無いことを示すことに基づいて、前記複数のグローバルマッチ信号の評価をトリガするステップと、
    を含む、メモリアクセス方法。
  2. (a)メモリアクセス要求のための仮想アドレスを、該メモリアクセス要求を満足させることができるメモリの適切な物理アドレスに変換する変換索引バッファであって、該変換索引バッファの一つのエントリの第1および第2のビットグループと受け取った仮想アドレスの対応するビットとを比較する手段を含み、この比較手段が、
    (a1)前記変換索引バッファの前記一つのエントリの前記第1および第2のビットグループが前記受け取った仮想アドレスの対応するビットと合致するか否かをそれぞれ示す第1および第2のローカルマッチ信号を第1および第2のローカルマッチライン上に生成する手段と、
    (a2)前記エントリが前記受けとった仮想アドレスと合致するか否かを示すグローバルマッチ信号を前記変換索引バッファの前記エントリ用のグローバルマッチライン上に生成する手段と、を含む、変換索引バッファと、
    (b)前記グローバルマッチ信号が前記エントリについて合致がないことを示すとき、隣接するグローバルマッチラインに関連する別のグローバルマッチ信号の評価をトリガする手段と、
    を備える集積回路。
  3. 命令を実行する少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサによりアクセス可能であり、アクセス要求命令を満足させるメモリと、
    メモリアクセス要求のための仮想アドレスを受け取り、該仮想アドレスを前記メモリアクセス要求を満足させることができる前記メモリの適当な物理アドレスに変換する変換索引バッファと、を備えるシステムであって、
    前記変換索引バッファは、
    複数のエントリを備え、
    前記複数のエントリの各エントリは少なくとも第1のビット回路グループと第2のビット回路グループからなり、
    前記第1のビット回路グループの各ビット回路は、前記第1のビット回路グループに対応する各ビットが、受信した仮想アドレスの各対応するビットに合致するか否かを第1のローカルマッチライン上に示すように、第1のローカルマッチラインに連結され、
    前記第2のビット回路グループの各ビット回路は、前記第2のビット回路グループに対応する各ビットが、前記受信した仮想アドレスの対応するビットに合致するか否かを第2のローカルマッチライン上に示すように、第2のローカルマッチラインに連結され、
    前記第1のローカルマッチラインと前記第2のローカルマッチラインは、それぞれのエントリが前記受信した仮想アドレスに合致するか否かをグローバルマッチライン上に示すように、選択的にグローバルマッチラインプルダウン
    前記グローバルマッチラインは、該グローバルマッチラインに関連するエントリと、別のグローバルマッチライン関連する少なくとも1つの他のエントリの評価をトリガするように動作可能な論理要素に連結されている、
    システム。
JP2001042646A 2000-02-21 2001-02-20 セルフタイム式tlbのメモリアクセス方法 Expired - Fee Related JP3792520B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/510276 2000-02-21
US09/510,276 US6539466B1 (en) 2000-02-21 2000-02-21 System and method for TLB buddy entry self-timing

Publications (2)

Publication Number Publication Date
JP2001265654A JP2001265654A (ja) 2001-09-28
JP3792520B2 true JP3792520B2 (ja) 2006-07-05

Family

ID=24030072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001042646A Expired - Fee Related JP3792520B2 (ja) 2000-02-21 2001-02-20 セルフタイム式tlbのメモリアクセス方法

Country Status (2)

Country Link
US (1) US6539466B1 (ja)
JP (1) JP3792520B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2310295C (en) * 2000-05-31 2010-10-05 Mosaid Technologies Incorporated Multiple match detection circuit and method
US7092311B1 (en) * 2002-03-15 2006-08-15 Integrated Device Technology, Inc. Content addressable memory (CAM) devices that utilize priority class detectors to identify highest priority matches in multiple CAM arrays and methods of operating same
US7543291B2 (en) * 2003-08-01 2009-06-02 Hewlett-Packard Development Company, L.P. Processor purging system and method
US7376871B2 (en) * 2003-08-06 2008-05-20 Texas Instruments Incorporated CAM test structures and methods therefor
JP4487237B2 (ja) * 2003-12-25 2010-06-23 エルピーダメモリ株式会社 半導体装置
US7145789B2 (en) * 2005-01-05 2006-12-05 Texas Instruments Incorporated Low power low area precharge technique for a content addressable memory
US7616468B2 (en) * 2006-08-04 2009-11-10 Qualcomm Incorporated Method and apparatus for reducing power consumption in a content addressable memory
JP2009117031A (ja) * 2009-01-26 2009-05-28 Hitachi Ltd 半導体装置
JP5893465B2 (ja) * 2012-03-27 2016-03-23 ルネサスエレクトロニクス株式会社 連想記憶装置
US10552338B2 (en) * 2017-02-21 2020-02-04 Arm Limited Technique for efficient utilisation of an address translation cache

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289403A (en) * 1991-07-08 1994-02-22 Hewlett-Packard Company Self-timed content addressable memory access mechanism with built-in margin test feature
US5517441A (en) * 1994-12-14 1996-05-14 International Business Machines Corporation Content addressable memory circuitry and method of operation
US5859791A (en) * 1997-01-09 1999-01-12 Northern Telecom Limited Content addressable memory
US6230236B1 (en) * 1997-08-28 2001-05-08 Nortel Networks Corporation Content addressable memory system with cascaded memories and self timed signals
US6114873A (en) * 1998-12-17 2000-09-05 Nortel Networks Corporation Content addressable memory programmable array
US6240000B1 (en) * 1999-08-18 2001-05-29 Lara Technology, Inc. Content addressable memory with reduced transient current
US6195277B1 (en) * 1999-09-13 2001-02-27 Lara Technology, Inc. Multiple signal detection circuit

Also Published As

Publication number Publication date
JP2001265654A (ja) 2001-09-28
US6539466B1 (en) 2003-03-25

Similar Documents

Publication Publication Date Title
US5299147A (en) Decoder scheme for fully associative translation-lookaside buffer
US5339268A (en) Content addressable memory cell and content addressable memory circuit for implementing a least recently used algorithm
JP3851224B2 (ja) 内容アドレス・メモリ装置
US5907867A (en) Translation lookaside buffer supporting multiple page sizes
US7286423B2 (en) Bit line precharge in embedded memory
JPH08329687A (ja) 半導体集積回路
US7440335B2 (en) Contention-free hierarchical bit line in embedded memory and method thereof
US6961276B2 (en) Random access memory having an adaptable latency
EP1941513B1 (en) Circuit and method for subdividing a camram bank by controlling a virtual ground
US5802594A (en) Single phase pseudo-static instruction translation look-aside buffer
US8154900B2 (en) Method and apparatus for reducing power consumption in a content addressable memory
JP3792520B2 (ja) セルフタイム式tlbのメモリアクセス方法
JP3732637B2 (ja) 記憶装置、記憶装置のアクセス方法及び半導体装置
US6054918A (en) Self-timed differential comparator
US5550774A (en) Memory cache with low power consumption and method of operation
US7788444B2 (en) Multi-hit detection in associative memories
US6058447A (en) Handshake circuit and operating method for self-resetting circuits
Heald et al. A 6-ns cycle 256-kb cache memory and memory management unit
US5893929A (en) Mutually controlled match-line-to-word-line transfer circuit
US6493790B1 (en) Translation-lookaside buffer with current tracking reference circuit
US5729190A (en) Dynamic comparator circuit for cache memories
CN110580231B (zh) 处理电路、缓冲器、存储器及处理器
JP2001014863A (ja) 半導体メモリ装置
JP3559631B2 (ja) 半導体メモリ及びデータ処理装置
Suzuki et al. Synonym hit RAM-a 500-MHz CMOS SRAM macro with 576-bit parallel comparison and parity check functions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060309

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060317

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: 20060404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060405

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees