JP3686480B2 - Semiconductor integrated circuit - Google Patents

Semiconductor integrated circuit Download PDF

Info

Publication number
JP3686480B2
JP3686480B2 JP18236096A JP18236096A JP3686480B2 JP 3686480 B2 JP3686480 B2 JP 3686480B2 JP 18236096 A JP18236096 A JP 18236096A JP 18236096 A JP18236096 A JP 18236096A JP 3686480 B2 JP3686480 B2 JP 3686480B2
Authority
JP
Japan
Prior art keywords
data
cam
coincidence detection
circuit
potential
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
JP18236096A
Other languages
Japanese (ja)
Other versions
JPH1027481A (en
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP18236096A priority Critical patent/JP3686480B2/en
Publication of JPH1027481A publication Critical patent/JPH1027481A/en
Application granted granted Critical
Publication of JP3686480B2 publication Critical patent/JP3686480B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明はマイクロプロセッサLSIに搭載されるTLB(Translation Lookaside Buffer)もしくはキャッシュメモリに使用される連想記憶装置(以下、単にCAMとよぶ)およびそれに適した差動増幅回路に関する。
【0002】
【従来の技術】
最近のマイクロプロセッサLSIには、TLB(Translation Lookaside Buffer)もしくはキャッシュメモリが搭載され、それらはCAM(Content Addressable Memory)で構成されている。例えば、TLBは、プログラムにより指定された複数の仮想アドレスを記憶するCAM部と、それらの仮想アドレスに対するアドレス変換結果(実アドレス)を保持するRAM部とからなり、仮想アドレスに対するアドレス変換が必要になったときに、このTLBを参照して、その仮想アドレスに一致する仮想アドレスがCAM部に記憶されている場合、その仮想アドレスに対する変換済みの実アドレスをRAM部より出力する。これによりアドレス変換を繰り返す必要をなくしている。
【0003】
TLBにはフルアソシアティブ方式とセットアソシアティブ方式が主に用いられている。従来のフルアソシアティブ方式の典型的なTLBは、入力された仮想アドレスと、TLB内のCAM部に記憶した複数の仮想アドレスの各々との一致を調べ、それらの記憶された複数の仮想アドレスの中に、入力された仮想アドレスと一致した仮想アドレスが存在するとき、その一致した仮想アドレスに対応してRAM部に記憶された実アドレスを出力する。このように、従来のフルアソシアティブ方式の典型的なTLBは、CAM部に記憶している全ての仮想アドレスと入力された仮想アドレスとを比較する。
【0004】
従って、このようなTLBは、上記の比較を行うための一致検出回路の数が多いこと、これに伴ってTLBの回路面積が増えること、消費電力が大きくなること、上記比較においては、CAM部内にて比較が行われ、そこに記憶されているデータ(今の場合には仮想アドレス)はCAM部の外部に読みだされることはないのでCAM部に記憶されたデータの信頼性の確認やCAM部デバイスの故障診断ができないこと等が欠点とされている。また、回路面積の増加を抑制するために、上記比較には簡単な一致検出回路が用いられ、動作速度は二義的に考慮されることが多い。このため、データ(今の場合には、仮想アドレス)の比較に要する時間は長くかかることになる。しかし、記憶しているデータすべてにわたって比較するのでセットアソシアティブ方式のTLBくらべてデータの一致確率が高くなる長所をもっている。
【0005】
上記フルアソシアティブ方式のTLBの比較を高速化するための従来技術として、検索データと記憶データとの比較を行なうための一致検出回路をCAM部の各メモリセルごとに備えることも提案されている(特開昭59ー231789)。しかし、この技術では、一致検出回路の総数が大きくなるという問題がある。
【0006】
この一致検出回路を高速化する技術が、IEEE Jounal of Solid−State Circuits vol.28、No.11 pp.1078−1083(1993)に報告されている。この従来技術では、高速な一致検出のために、一致検出信号線のほかに、参照信号線を一致検出信号線に並行して設け、かつ、電圧供給信号線も一致検出信号線に並行して設けて、一致検出のMOSFETで差動型のNOR回路を構成している。この従来技術のTLBは、高速に動作するが、配線数が従来のTLBでは1本であるのに対して3本必要である。したがって、回路面積が大きい。
【0007】
【発明が解決しようとする課題】
このように従来のCAMでは、一致検出回路の動作速度、CAM部の回路面積、消費電力に改善の余地がある。これらの問題を解決する技術として、本出願人は、特願平7ー58491号(平成7年3月17日出願)において、TLBに適した改善されたCAMを提案し、さらに、特願平7ー231024号(平成7年9月8日出願)において、キャッシュメモリに適したCAMを提案した。
【0008】
また、従来のフルアソシアティブ方式のTLBや仮想アドレスのキャッシュメモリでは、そこに保持されたデータに障害が発生すると、本来ヒットすべきでない入力データに対してヒットすることが生じる。
【0009】
本発明の目的は、より高速なCAMを有する半導体集積回路を提供することである。
【0010】
本発明の他の目的は、保持されたデータに障害が発生したときに、間違ってヒットすることがないCAMを有する半導体集積回路を提供することである。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明による半導体集積回路に設けた連想記憶装置は、一致検出信号線の電位を検出するための一致検出回路内に、一致検出信号線の電位と参照電位の電位差を検出する差動増幅器と加速回路とを有し、
この加速回路は、データ一致検出の開始時に上記一致検出信号線の電位を参照電位近くまで急速に引き上げ、上記複数のメモリセルの全てが一致検出信号を出力したために上記複数のMOSトランジスタが全てオフとなった後は、上記一致検出信号線の電位を上記基準電圧より大きな電位に引き上げ、かつ、上記複数のメモリセルの少なくとも一つが不一致検出信号を出力したために上記複数のMOSトランジスタの少なくとも一つがオンになった後は、上記一致検出信号線の電位を上記基準電圧より小さな値にする電流を上記一致検出信号線に供給するように構成される。
【0012】
さらに上記他の目的を達成するために、本発明による半導体集積回路に設けた連想記憶装置は、複数のメモリセルに記憶されたデータのパリティビットもそれらのメモリセル内に記憶する。
【0013】
【発明の実施の形態】
以下、本発明に係るCAMを図面に示したいくつかの実施の形態を参照してさらに詳細に説明する。なお、以下においては、同じ参照番号は同じものもしくは類似のものを表わすものとする。また、第2の実施の形態以降では、第1の実施の形態との相違点を主に説明する。
【0014】
<発明の実施の形態1>
まず、本発明に係るCAMを使用したTLBを有するマイクロコンピュータシステムを説明する。図14において、マイクロプロセッサユニット(MPU)100は、中央処理ユニット(CPU)101からメモリ制御ユニット106、実アドレスキャッシュ104を介して、メモリユニット108のデータをアクセスし、入出力制御ユニット105を介して外部記憶装置109をアクセスする。メモリ制御ユニット106はCPUから与えられる仮想アドレスを実アドレスに変換し、変換された実アドレスで実アドレスキャッシュ104やメモリユニット108のデータをアクセスする。メモリ制御ユニット106は、この仮想アドレスと、上記変換により得られた実アドレスとを保持するTLB200を有し、後に同じ仮想アドレスがCPUから与えられたときには、このTLB200内の、実アドレスを使用する。このときには、メモリ制御ユニット106内でのアドレス変換を行わずに、実アドレスを得ることができる。このTLBは、本発明によるCAMにより構成される。
【0015】
図1はこのTLBの概略ブロックを示す。図において、CAM部(1)700、CAM部(2)710は複数のアドレス情報を保持するための、マトリックスに配列された複数のCAMセルからなり、各ローは、一つのアドレス情報を保持する。CAM部(1)700、CAM部(2)710は、これらのアドレス情報を分割して保持する。以下では、これらのCAM部にまとめて言及するときには、単にCAM部ということがある。一致検出部730は、それぞれ一つのローに対応して設けられた複数の一致検出回路からなり、各一致検出回路は、信号CPUから線92を介して供給されたアドレス情報とCAM部700、710の内のその一致検出回路が接続された一つのローに保持されたアドレス情報との一致を検出する。CPUから送られてくるアドレス情報およびTLB内に記憶されるアドレス情報には、仮想アドレス(以下VAと書く)そのほかの情報が含まれる。
【0016】
データRAM部750は、マトリックス状に配列された複数の実アドレス保持用のメモリセルを有するSRAMメモリからなり、各ローは一つの実アドレスを保持し、CAM部700、710の一つのローに対応して設けられ、そのローに対応する一致検出回路が一致を検出したときに、そのローに対応するデータRAM部750内のローに保持された実アドレスを読み出し、センス&出力回路760がこれをセレクタ770を介して出力する。
【0017】
前置CAM部780は、CAM部700、710に保持された複数のアドレス情報より少ないアドレス情報を保持するもので、CAM部700、710での一致検出より前に、動作する。このために、前置CAM部780も、アドレス情報を保持するための、マトリックス状に配列されたCAMセルからなるが、CAM部700、710のローよりははるかに少ない、数個のローよりなり、さらに、これらのCAMセルは、CAM部700、710のように二つの部分に分割はされていない。なお、一致検出部830は、前置CAM部780の一つのローにそれぞれ対応して設けられた一致検出回路からなり、それぞれは、一致検出部730内の一致検出回路と同様の構造を有する。
【0018】
データ記憶回路790は、前置CAM部780の一つのローに対応してそれぞれ設けられた、実アドレス保持用の複数のレジスタからなり、一致検出部830内のいずれかの一致検出回路が、線92から供給されたアドレス情報に対する一致を検出したときには、その一致検出回路が接続されたローに対応するレジスタ内の実アドレスを出力する。電源制御回路81は、一致検出部830で一致が検出されたときに、一致検出部730への電源供給を停止し、その動作を中止させ、それにより電力低減を図る。
【0019】
書き込み制御部800は、CPUから線94を介して供給される書き込みデータをデータ記憶回路790あるいはデータRAM部750に書き込む回路である。デコーダ69は、CPUから線90を介して供給されるローセレクト信号により指定される一つのローを選択し、CPUから線92を介して供給されるアドレス情報を書き込むべきローと、CPUから線94を介して供給されるデータを書き込むべき、データRAM部750内のローを選択する。同様に、デコーダ68は、CPUから線90を介して供給される上記ローセレクト信号により指定される、前置CAM内の一つのローとデータ記憶部回路790内の一つのレジスタを、それぞれアドレス情報および書き込みデータの書き込みのために選択する。
【0020】
以上の回路のブロック構造は、先に出願した特願平7ー58491号に記載のものと基本的に同じであるが、本実施の形態は、主として一致検出部730、830、センス&出力部760がより高速に動作するように構成されている点でこの先願記載のものと異なる。
【0021】
図2には、CAM部(1)700、CAM部(2)710の回路構造を示す。70はCAM部(1)700の要部を示し、23は、一つのローに属する複数、例えばおおよそ30個のCAMセルの一つを示す。10は、このメモリセルが属するカラムに設けられたインバータである。71はCAM部(2)710の要部を示し、93は、同じローに属するCAM部(2)710の複数のCAMセルの一つを示す。87は、一致検出部730内のこのローに対するCAM部(2)710のための一致検出回路である。CAM部(2)710は各ローに対して数ビット、ここでは3ビットのメモリセルからなる。一致検出回路87は、これらのメモリセルの出力84、85、86が入力されるNAND回路により構成されている。73は、一致検出部730内のこのローに対するCAM部(1)700とCAM部(2)710のための一致検出回路で、差動増幅回路32と、出力回路43と、トランジスタ30、31、33、35、36とからなる。以上の述べた要素を含むブロック72がTLBを構成するCAMアレーの1行(1エントリー)を構成する。本実施例では回路ブロック72が64行分設けられてCAMアレー部を構成する。端子21はCPUに接続される線92(図1)の一つで、CPUから供給されるアドレス情報の1ビットが入力される。インバータ10は、この1ビットの信号21の補の信号を線22に生成する。
【0022】
このCAMの構造の内、本実施の形態では、一致検出回路73内に加速回路356以外は、先願特願平7ー58491号に記載の回路と基本的に同じであり、それらの部分の回路の動作と特徴はその先願に記載したとおりである。この加速回路356は、トランジスタ35、36からなり、差動増幅回路32での検出動作を加速する働きを有する。さらに、後に説明するように、差動増幅回路32の端子37に供給する参照電圧を発生する回路を工夫し、差動増幅回路32での消費電力を低減するようになっている。
【0023】
以下、図2の回路の動作を説明する。入力アドレス情報の1ビットがデータ線21に印加され、それに接続されインバータ10によってその入力信号の補の信号が補のデータ線22に発生される。データ線21、22上の一対の相補の信号はCAMセル23に導かれる。例えば、データ線21の入力信号が高レベルの信号であってCAMセル23の記憶データがノード18が高レベルであるときにはN型MOSトランジスタ(以下、NMOSと呼ぶ)19が導通し、データ線22上の入力信号の補信号である低レベルの信号をNMOS26のゲートに供給するので、NMOS26はOff状態となる。この状態をデータが一致したとする。データが不一致のときを説明する。データ線21の入力データが低レベルで、CAMセル23のノード18が高レベルであるときを説明する。このときにもNMOS19が導通して高レベルの信号をNMOS26のゲートに導き、NMOS26は導通する。CAMセル23のノード18が低レベルであるときには、上述の入力信号との関係が入れ替わるのみなので説明を省略する。すなわち、CAM部ではデータの一致と不一致とがNMOS26の非導通と導通によってしめされる。
【0024】
CAM部(1)700には入力されるアドレス情報のビット数よりCAM部(2)710のビット数(今の例では、3)だけ少ない数だけ、図2の70で示す要素回路が設けられ、これらの全ての要素回路のNMOS26に相当するNMOSのドレインは、一致検出信号線25に並列に接続されている。このように構成すると入力されたアドレス情報の内、全てのビットマイナス3ビットがCAMセルに記憶されたアドレス情報に一致したときのみ一致検出信号線25は接地端子から切り離される。なお、ワード線24はCAMセル23にデータを書き込むためのもので、ワード線24を高レベルに持ち上げることでCAMセル23にデータ線対21、22上のデータを書き込むことができる。
【0025】
上述したように、CAM部(1)に入力されるアドレス情報ビットとCAM部(1)内の同数のCAMセルの記憶データとがすべて一致したときには一致検出信号線25は接地端子から切り離されているので、P型MOSトランジスタ(以下、PMOSと呼ぶ)30、31、35、NMOS36によって電流を供給すると、一致検出信号線25の電位は引き上げられる。時間が十分経過したときのこの一致検出信号線25の最終到達電位は正の電源電圧になる。ここでNMOS33は、一致検出動作の開始時に一致検出信号線25を接地電位にして検出条件を整える働きをする。
【0026】
入力アドレス情報とCAMセルのデータとが1ビットのみ不一致のときの一致検出信号線25の変化を説明する。CAM部(2)の3ビットが全て一致すると仮定する。後に説明するように、この場合には、PMOS30のゲートにはローレベルが供給される。入力アドレス情報とCAM部(1)内の一つのローに属するCAMセルのデータとが1ビットのみ不一致のときにPMOS30、31、35、NMOS36によって供給される電流を1個のNMOS26に流れる電流にほぼ等しく設計しておくと、一致検出信号線25の電位は正の電源電圧の約1/2に達してそれ以上には上昇しなくなる。この供給電流によってこのときの到達電位は制御できるので、この供給電流の制御によってこの到達電位を接地電位よりNMOSのVtだけ高い電位に設定する。このようにすると差動増幅回路32には殆ど電流が流れなくなる。すなわち、一つのローのCAMセルの全てで一致が生じるときのみ差動増幅器32に電流が供給され、少なくとも一つのCAMセルで不一致が生じるとのときには電流がほとんど流れない。一致するのはCAMの1エントリ(CAMセルマトリックスの1行をエントリと通称されるので以下エントリと書く)のみで残りのエントリーは全てデータが不一致であるからこの設定によって消費電力は大幅に削減される。
【0027】
差動増幅器32の参照電位(端子37に供給する電位)についてはあとで述べるが、1個のデータのみ不一致のときの一致検出信号線25の電位よりわずかに高い電位に設定する。NMOS36のゲートには所定の電位が与えられており、PMOS35から供給される電流によって信号線25が引き上げられる電位の上限を決める働きをする。このようにするとPMOS35から供給される電流によって信号線25を所定の電位まで短時間で引き上げることができ、差動増幅器32の一致検出を高速化することができる。信号線27、28、29はそれぞれ一致検出信号線への電流を供給するPMOS制御信号線、差動増幅器の電流制御用のNMOS34に供給する信号線、NMOS36のゲート電位供給信号線である。
【0028】
図3は図2の差動増幅回路32の端子37に与える参照電圧およびNMOS36のゲートに与える電圧を発生する回路で、差動増幅回路32でのデータ一致検出をより高速におこなうように構成されている。NMOS102は図2のCAMセル23内のNMOS26と同じ形状を有し、そのゲートに与えられる電圧(Vcc−Vt)は同セル23の一致検出電圧の高レベル(データが不一致のときにNMOS26のゲートに供給される電圧で、Vccは正の電源電圧、VtはNMOS26のしきい電圧である)の電位であって、この電位供給によって、CAMセルが不一致のときにながれる電流と等しい電流をPMOS103に供給する。11個のMOSを用いるCAMセルではこの電位はVccである。このNMOSに流れる電流はPMOS103と同じ形状のPMOSを介して同電流と等しい電流がNMOS105、106に供給されて、図2のNMOS36に与えるゲート電圧VR1を線29に発生させる。この回路によってゲート電圧VR1はNMOSのしきい電圧Vtの約2倍の電位に設定される。ゲート電圧VR1は厳密にこの電位である必要はなく、別途発生させた電圧を供給してもよいが、Vtの2倍の電位に設定すると後で述べる参照電圧VRの電位がVtに設定され、差動増幅器113の消費電力が少なく、かつ高速動作する電位となる。ゲート電圧VR1はゲート108に供給される。NMOS109はNMOS102と同じ形状をもち、PMOS110は一致検出信号線への電流供給を行うPMOS35(図2)より約20%供給電流が大きい。また、PMOS35は所定の時間に一致検出信号線25に電流を供給するもので、そのゲートは電流が供給される間は接地レベルに保持される。
【0029】
図4は、図3の回路の主要ノードの電位の時間変化を示している。信号Vaccは、信号一致検出信号線25への供給電流を制御する、線27を介してPMOS31、35に印加される信号で、検出加速パルスとも呼ぶ。この信号が、Vccから接地レベルに変化すると一致信号線25に接続されているCAMセル23がすべて一致しているときには、図4に”一致”としめした電圧波形のように一致検出信号線25の電位は時間とともに上昇する。ここで、Vaccが接地レベルに引き下げられた時刻から参照電圧VRに引き上げられるまでの時間変化が急速であるのは、参照電圧VRまではNMOS36を介してPMOS35から電流が供給されるためである。一致検出信号線25の電位がVRに達するとNMOS36のゲートとソース間電圧がしきい電圧Vtとなるので、NMOS36を介する電流の供給は停止し、それにより一致検出信号線25の電位の上昇速度は低下する。一方、図4には、一致検出信号線25に接続されたCAMセルの内1個のみが不一致の時の同信号線電位の時間変化を”不一致”の記号で示している。このときにはNMOS36を介してPMOS35から電流は供給され続けるが、電流を供給するPMOS110の電流がPMOS35より多いために、参照電圧VRまでは上昇せずに電位上昇は停止する。一致検出信号線25に接続されたCAMセルが2個以上不一致のときにはその電位上昇がさらに小さくなることは容易に理解できる。
【0030】
以上述べたように図2の回路では、一致検出を一致検出信号線25の電位と参照電圧線VRとの差によって検出でき、また、検出加速パルスVaccが接地レベルに引き下げられた直後はNMOS31、36によって供給される電流によって一致検出信号線が参照電圧VRまで高速に引き上げられるために一致検出動作が高速化される。また、不一致の一致検出信号線の電位は参照電圧VRを越えることはないので、Vaccを接地電位に保持する時間を厳密に限定する必要はなく、回路の制御が容易であることも本回路の特徴である。しかし、Vaccが接地レベルにある期間はMOS31、36によって不一致の一致検出信号線25に電流が供給され続けるので、消費電力削減には一致検出の信号が出力されれば速やかに高レベルにVaccを引き上げ電流の供給を停止することが望ましい。なお、参照電圧発生回路101は、図1の差動増幅回路32以外の差動増幅器にも適用できる。
【0031】
ここで、図2を用いて、CAM部(2)710の働きを簡単に説明する。この回路は先願特願平7−58491号に記載したものと実質的に同じである。CAM部(2)710はアドレス入力(入力信号)の内の3ビット程度の信号が一致検出の対象にされる。そこに含まれるCAMセル93は、CAM部(1)のメモリセル23とほぼ同じ構造を有するが、回路の接地が異なっており、それぞれでの一致検出の結果、一致が検出されると、線84、85、86がそれぞれハイレベルになる。CAM(2)用の一致検出回路87は、これらの信号線が全てハイの時のみに、対応する一致信号発生回路73内のPMOS30にローレベルを供給して、この回路73を駆動する。こうして、CAM部(1)内の全一致検出回路73の内の一部のみを駆動するようになっている。
【0032】
図5は、前置CAM部780の要部とそのための一致検出回路部830の要部を示す。図では、図2と同じ構造の要素には同じ参照番号を付けてある。図5と図2とから分かるように、前置CAM部780は、CAM部(1)700と同じ構造を有する。前置CAM部のための一致検出部830内の一致検出回路83には、図2に示したCAM部(2)710のための一致検出回路87がなく、これにともない、CAM部のための一致検出回路73内のNMOS30がない。しかし、一致検出部830内の一致検出回路83にはCAM部のための一致検出回路73内のPMOS35、NMOS36からなる加速回路356が設けられているのは図2と同じである。従って、前置CAM部780とそのための一致検出回路部830の回路動作は、CAM部(1)700、一致検出回路部730と同様なので説明は省略する。
【0033】
図1のRAMデータ部750は一般にはSRAMメモリにより構成できる。SRAMでは、一般にメモリセルはフリップフロップの構造をし、一対のデータ線に接続される。センス&出力回路760は、それぞれのデータ線対に対応して、その一対のデータ線の電圧を差動で検出するセンスアンプを有する。図6は、このようなセンスアンプに好適なセンスアンプを示す。この回路の特徴は差動増幅器の入力換算のオフセット電圧を軽減して高速に微小な電圧信号を差動増幅器で検出することにある。
【0034】
さらに、詳しくは、ゲートに入力信号が接続され、ドレインが正の電源Vccに、また、ソースは所定の電流を供給するNMOS203、204に接続されたNMOS201、202が設けられ、そのソース端子が差動増幅器を構成するNMOS205、206のゲートにそれぞれ接続される。このとき、NMOS201、202のゲート・ソース間の電圧Vgsは電流が小さいときにはNMOS203、204から供給される電流Iefとの間にIef=Io exp((Vgs−Vt)/nkT)の関係がある。すなわち、IefをNMOS203、204によって制御すれば、NMOS201、202のゲート・ソース間の電圧を任意に制御できる。
【0035】
ここで、NMOS201、202、205、206、PMOS221、222で生じる出力端子207、208の電圧差をゼロになるように電流Iefを制御すれば、これらの回路を構成するNMOSの特性に不一致があってもこれらが補正されて、あたかも完全に特性がそろった回路と同等の性能を実現できる。また、NMOS201、202に流す電流が上記の関係を逸脱する領域に多少入っても、両者の関係は一義的に確定するので、電流の調整によって同様の補正をおこなうことができることはいうまでもない。以下、回路の動作を詳細に説明する。
【0036】
入力端子IN、INBにはメモリ回路のデータ線対が接続され、メモリセルからの電流によって両線間には電位差が生じる。この電位差はデータの読み出し開始時には0Vであって、時間に比例して増加する。データ読み出し開始時のデータ線の電位は正の電源電圧Vccである。データの読み出し開始以前にVcs、Vswが高レベルに引き上げられ、NMOS201、202に電流が供給されるとNMOS205、206のゲートには(Vcc−Vt)の電位が与えられ出力端子207、208の電位を引き下げる。NMOS 201と202、205と206、PMOS221、222の特性がそろっていれば、出力端子207、208の電位は等しいが、アンバランスがあるとそのアンバランスに応じて出力端子間に電位差が生じる。
【0037】
例えば、端子208の電位が高くなったときにはその電位がNMOS209を通してNMOS203のゲートに供給されIefが増加する。これによってNMOS205のゲート電位が引き下げられて出力端子207の電位が上昇して出力端子207、208間の電位差を減少させる。電位差の減少率はNMOS205、206および203、204で構成する差動増幅器の電圧利得の逆数である。電圧利得は2段の差動増幅器で容易に20dbが得られ、入力換算のアンバランスは5mV以下になった。このように、アンバランスを補正したのち、入力信号の検出を開始する。まず、Vswを低レベルにして出力端子207、208からNMOS203、204のゲート端子を切り離す。しかし、ゲート電位は容量211、212によって保持される。この切り離しで生じるゲート電位の変化はNMOS203、204が差動回路になっているので軽減される。この状態で入力端子IN、INBに検出信号を接続するとアンバランスが補正された状態で入力信号を検出でき、高速に信号検出する回路が得られた。
【0038】
<発明の実施の形態1の変形例>
(1)他のセンスアンプ(その1)
図7は、図6で記したセンスアンプとは、電流を供給する部分が異なる他のセンスアンプを示す。この図では、所定の電流を供給するために出力端子207、208の電圧の差を調べて、その差がゼロになるようにEPROM等で用いられているフローティング ゲート構造をもつNMOS213、214のゲートに電圧を加えて、そのフローティングゲートの電圧を調整して、恒久的に出力端子間の電位差をゼロに設定する回路である。この方法によれば、集積回路を製造した時点で検査して、電流Iefを設定するのみで恒久的にMOSFETのデバイス特性の不一致を補正できる。
【0039】
(2)他のセンスアンプ(その2)
図8は、図6で記したセンスアンプとは、電流を供給する部分が異なるさらに他のセンスアンプを示す。この図ではあらかじめIefを調整するNMOS群215、216としてそれぞれ3個のNMOSを設けておき、これらの導通/非導通を制御することで供給するIefを制御する。このときには、図7で用いたフローティングゲートNMOSを導通させて接地電位にするか、正の電源電圧Vccにするかに制御動作が単純化されるという特徴がある。また、Iefを制御するNMOS群215、216の導通/非導通をヒューズの切断等広くプログラマブルROMを用いておこなうことも可能となる。
【0040】
図6の回路は、信号を検出する直前に出力端子の電位差が小さくなるようにIefを調整した状態で入力の信号を検出する。従って、NMOSの特性が経時変化しても、その特性を補正するので、より精度よく補正できる特徴がある。一方、図7、8の回路では一度補正をおこなうと、その後の補正が不要で、使用法が限定されず、通常の増幅器でアンバランスが補正される特徴を持っている。しかし、経時変化に対しては補正できない。もちろん図7、8の回路でも所望の時刻に再度補正を実施すれば補正を行える。
【0041】
(3)他の形式のメモリセル
発明の実施の形態1において、上記メモリセル23、93に代えて、それ自体公知の、比較機能を有するメモリセル、例えば、先願特願平7−58491号で引用したものも使用可能である。
【0042】
(4)可変長データに対応するTLB
発明の実施の形態1を可変長データに対応するTLBの構成するように変形することも可能である。このときには、発明の実施の形態1に使用するメモリセルとして、例えば、図9に示す、特開平1−220293に記載された可変長データ用のメモリセルを使用すればよい。このようなTLBについての本発明者による検討の結果、図9に示されているNMOS260の設計および設置個所について新たな知見がえられた。
【0043】
その1はCAMセルに流れる一致検出電流の減少とそれにともなう一致検出時間の増加である。上記TLBでは、NMOS260の導通/遮断の動作を可変長指定ビットによって制御しているが、導通して電流を流すときにはNMOS250と直列に接続されているために、従来のCAMセルにくらべて電流が減少する。このため、遅延時間を増加させないためには構成するMOSFETの駆動能力の向上が求められる。例えば、全てのMOSFETのゲート幅をその分増せばよいが、このときには入力信号が導かれるデータ線(例えば、図2の端子21、22が接続されるデータ線)の負荷が大きくなり駆動時間の増加や消費電力の増加を招く。そこで、NMOS260のゲート幅のみを増加させることを検討した。その結果NMOS250のゲート幅の1.5倍以上にNMOS260のゲート幅を設計すると電流の減少が大幅に軽減できることを見出した。NMOS260のゲート幅を増加させるとその分CAMセルの面積を増加させるが、その増加は軽微であり、また、VA入力データ線の負荷の増加もほとんどない結果がえられた。
【0044】
その2は、この検討を通して、NMOS260を複数のCAMセルに1個設けることが面積の点からも、また、電気的特性の点からも有利であることが明らかになったことである。すなわち、入力のVAデータとCAMセル内のデータとを比較して不一致があるときに”不一致”であることを示す信号の最小の信号レベルは、CAMセル内のNMOS、例えば図9のNMOS250が1個導通状態にあることである。すなわち、複数個のCAMセルに共通して1個のMOSトランジスタ(例えばNMOS260)を設置すれば十分といえる。
【0045】
その3は、NMOS260の設置個所である。検討の結果、同NMOS260のドレインは一致検出信号線に接続するように設けることで寄生容量増加を最も抑制できることが示された。この可変長指定ビットの処理方法は、特に、発明の実施の形態1で述べた、一致信号を一定の電流を供給して発生させる方法(図2の一致検出回路73による一致検出方法)においては供給電流が限定されているのでその効果がさらによく引き出された。また、NMOS260の共用化によって同回路の占有面積は軽減された。
【0046】
<発明の実施の形態2>
本実施の形態では、記憶されたデータに誤りが生じたときにも正常に動作するフルアソシアティブ方式のTLBを提供する。具体的には、CAM部に記憶されたデータのパリティデータもCAM部に記憶する。入力されたデータをメモリ内に記憶されているデータと照合して一致するデータを見つけだし、そのデータに関連する記憶情報を出力するメモリ(CAM)の回路は図2において詳しく説明した。また、計算機用のアドレス変換装置のTLBの回路として電子情報通信学会論文誌、第E79−C巻、No.6、pp.757−762に詳しく記載されている。しかし、これらの回路には信頼性向上のためのパリティビットは備えていない。パリティビットをつけ加えるためにCAMの動作と構成を簡単にまとめる。
【0047】
図2の説明で詳細に記したように、CAMの動作は次のようにまとめられる。まず、比較するためのデータが入力され、その入力データがマトリックス状に配置されたCAM内に記憶されているデータと比較される。入力データと記憶されているデータとが一致すると一致した行(CAMでは1行に入力データと比較されるデータ(CAM部のデータ)と比較されるデータに関連するデータ(RAM部のデータ)が記憶されているので、行のことをエントリと呼ぶ)に記憶された関連するデータを読み出し、出力する。
【0048】
図10には図2のCAM部に記憶される1エントリ分のデータをしめしている。VA10からVA31はCAM部(図2のCAM部など)の記憶データをしめす。図10のデータがなんらかの障害で1ビット反転したときを考える。VA10からVA31までのデータの中で1ビットのデータが反転すると、障害発生前のデータと同一データがCAMに入力されても記憶されているデータは障害で1ビット反転しているので不一致となる。このため、CAM部に一致するデータは存在しないとして処理されCAMの動作は正常動作である。しかし、障害で反転したデータと同一のデータが入力されると両者は一致するので障害の発生したデータのエントリのRAM部のデータを出力することになりCAMは誤ったデータを出力する。このようにCAMは従来のメモリの動作とは異なった動作をするために、従来の考え方でパリティビットをつけ加えることはできない。
【0049】
本実施の形態はこのように障害の発生したデータに一致するデータが入力されたときにもデータを不一致と判定するCAMの構成を提供する。この構成は発明者が次の関係を見出したことにもとづいている。それは、障害で1ビットのデータが反転した記憶データと同一の入力データに対するパリティビットの値は障害発生前のデータのパリティビットの値とは必ず異なるという関係である。すなわち、障害の発生したデータのパリティビットと障害が発生したデータと同一の入力データのパリティビットとを比較することで障害が発生したために一致と判定されたデータか正常に一致したデータかを判別する。このようなパリティビットの機能は、従来のパリティビットが障害の発生したデータに対して障害の発生したことを示す信号として用いられる機能とは基本的に異なっている。すなわち、本実施の形態の構成は障害が発生したために誤ったエントリのデータが一致と判定されたときに、そのデータの読み出しを停止するためにパリティビットを用いる方法であり、従来のパリティビットの機能とは全く異なっている。
【0050】
以下に図面を用いて本実施の形態のCAMの構成と動作をさらに詳しく説明する。
【0051】
図17(a)は本実施の形態の1エントリ分の記憶データをしめしている。CAM部データの右端に1ビットのパリティビットPcを設けている。パリティビット以外は図2の構成と同じである。図17にしめす構成のデータに対して比較するデータが入力されたときを説明する。図17(a)では記憶データに障害が発生しなければ、図17(a)のデータと同じ入力データに対してパリティビットを含めてCAM部で一致し、それ以外のデータに対しては不一致となることはあきらかで、CAMは正常に動作することが理解できる。1ビットの障害が発生したときのデータの例を図17(b)に1エントリ分のデータとして示している。このデータは1ビットの障害を起こしているので本来一致する入力データに対しては不一致となる。この不一致の判定はCAM内にデータがないとして処理され、その処理に要する時間は不利益となるが誤ったデータは出力されず、また、CAM動作としては正常な動作である。次に、CAMに障害の発生したデータと同一のデータが入力されたときを考察する。先に述べたように障害の発生したデータに対してはパリティビットの値が正しくない値となっているので、入力されたデータのパリティビットとは異なる。故にパリティビットPcまで含めてデータの一致を調べる図17の構成では障害の発生したデータは不一致と判定されて誤ったデータが出力されることはなく、また、CAMの動作は正常動作である。以上の説明から、CAM部にパリティビットを1ビット追加するデータ構造のCAMを製作することでデータの信頼性を保証できる。
【0052】
<発明の実施の形態2の変形1>
図18には図17と同様にCAMの1エントリ分の記憶データをしめしている。図17と異なる点は、パリティビットPrがRAM部に追加されている点にある。このデータ構成では上記課題のところで述べたようにCAM内で2個のデータが一致する可能性がある。本実施の形態では、2個のデータの一致を検出する回路を提供し、この回路で2個のデータが一致したことを検出するとデータを不一致と判定する。これによって、以下に述べるように課題を解決する。以下詳しく説明する。
【0053】
記憶データが障害を起こさないときには、入力データと一致する記憶データに対応するエントリのRAM部のデータが読み出され、RAM部に入れたパリティビットPrも一致するので、入力されたデータとRAM部に記憶されたデータの一致を調べ、その一致によって信頼性が保証される。また、障害が発生したデータと同じデータがCAM部に記憶されていないときには2個のデータが一致したことを検出する回路は動作せず、RAM部のデータが読みだされる。しかし、読みだされたデータのパリティビットPrは上述したようにCAM部で一致したデータのパリティビットとは値が異なっている。この両パリティビットが比較されて不一致となり読みだされたデータが誤ったデータであることが検出される。この検出結果からCAMには一致するデータが存在しないとする信号を発生することで誤ったデータを出力することはなく、また、CAMの動作は正常な動作である。障害が発生したデータと同じデータがCAM内に存在して、かつ、そのデータと同じデータが入力されたときには2個のデータが一致したことを検出する回路(図16の回路)によってデータが誤っていることを検出して一致データが存在しないとして処理すれば、誤ったデータは出力されることはなく、かつ、CAMの動作は正常動作である。
【0054】
以下、図16の回路を説明する。信号線500、501、561は入力アドレスがCAM部の記憶データと一致したときに一致したエントリをしめす信号線で、図2の端子44の信号である。すなわち、一致したエントリの信号線はハイレベル、不一致のエントリの信号線はローレベルに設計される。この信号は図1のデータRAM部のワード線の信号と兼用できる。信号線500、501、561にはそれぞれNMOS570のゲートが接続される。そのNMOSのソースは接地され、ドレインは並列に信号線662に接続され、同信号線はPMOS571のドレインに接続される。同PMOSと同じ形状のPMOS572のソースは正の電源に接続され、両PMOSのゲートはともにNMOS573のドレインに接続される。PMOS572のドレインはソースが接地されたNMOS573のドレインに接続され、NMOSのゲートは正の電源に接続される。NMOS573の形状は信号線500から561に接続されたNMOS570のゲート幅の1.2ないし1.6倍に設定し、1.2ないし1.6倍の電流が流れる構造に設計しておく。この回路の動作を説明する。図16の回路で、一致するデータが存在しないときにはすべてのNMOS570がOFFであるので端子505はハイレベルを保持する。1個のエントリが一致してMOSFETが導通したときにはPMOS501から供給される電流が一致して導通したNMOS570にながれる電流より大きいので端子575の電位はハイレベルを保持する。2個のエントリが一致したときにはPMOS571から供給される電流より2個のNMOS570に流れる電流が大きくなるので端子575はローレベルとなる。端子575の電位のレベルを検出することで2個のエントリが一致したことを検出できる。この信号でRAM部からの読み出しデータを破棄したり、読み出しを停止することは容易に実現できるので付属する回路の提示と説明は省略する。
【0055】
以上の説明をもとに、本実施の形態のパリティ付CAMの構成を図19にまとめる。図19は図2にパリティビットを追加した構成になっているので、図2と同一動作をする回路には同じ番号と説明文をつけ、説明は省略する。CAMへのパリティビットの追加は2通りの構成が可能である。その1は、従来のCAMのCAM部にパリティビットPc901のCAMセルを追加する構成で、このときには、1列のCAMセル901を追加のみでよい。その2は、CAMで2個以上のデータが一致したことを検出する回路900(これは図16の回路に等しい)を追加して、この回路が2個以上のデータが一致していることを検出したときにはその時点で入力データに一致するデータは存在しないとする信号を送りだし(図示せず)、かつ、信号905によってセレクタ770の出力を停止する機能を追加する。さらに、RAM部にパリティビット用に1列のRAMセルPr902を追加して読みだされたパリティビットと入力されたパリティビット信号904とを比較回路903によって比較して信号906によって一致ならばデータは正しいのでセレクタ770からデータを出力し、不一致ならデータが誤っていると判定してセレクタからの出力を停止する構成とする。
【0056】
以上の2通りの構成によってCAMのデータの信頼性の確認が可能となる。このほか、2通りのパリティビットが同一CAM構成で使えるようにCAM部に入れるパリティビットを後で説明するマスクビットを用いて制御してCAM部のパリティビットの機能を有効化したり無効化するように制御できることはいうまでもない。
【0057】
<発明の実施の形態2の変形2>
図17、18の実施例では入力データの一部のデータについて比較を行なわない機能(以下この機能をマスク機能という)は備えていない。マスク機能を備えたCAMの構成はDigest of Technical Papers of ISSCC96 pp.360−361(1996)や特開平1−220293号に記載されている。これらの回路から、従来のCAMにマスク情報を記憶するメモリセルを追加し、その記憶されたマスク情報にしたがって比較するか否かを制御する機能を追加するのみでマスク機能が得られることが判明する。すなわち、マスク機能は従来のCAMの回路を設計できる技術者が、上記の文献を見れば容易に設計できる機能である。このため、以下にマスク機能を追加する場合に注意すべき事項を記すに留める。
【0058】
マスク機能を備えたCAMについて簡単に説明を追加する。マスク機能があるCAMではパリティビットを次のように入れる必要がある。マスクされないアドレス領域に1ビット、マスクされるアドレスにはマスクされるアドレス領域それぞれに1ビットのパリティビットをいれる。このようにすればマスク機能がすべて機能しているときにはマスクされないアドレス領域のパリティビットのみを比較することでデータに誤りのないことが示される。マスクされるアドレス領域がマスクされないときにはマスク領域ごとにパリティビットが比較されるので、マスクされているときにはパリティビットは機能しないのみであり、マスクされないときにはマスク領域内で一致が調べられるので、独立した領域として考えればパリティビットがその領域のデータの信頼性をしめし、かつ、すべてのパリティビットが一致すればデータに誤りのないことがしめされることは容易に理解できると考える。
【0059】
<発明の実施の形態3>
本実施の形態では、CAMデータを読み出し可能なCAMをのべる。CAMに記憶されているデータを読み出せる構成にしておけば通常のRAMと同じ故障解析方法が適用出来る。
【0060】
図11において、入力信号との一致比較動作では、制御信号CAM、REは高レベル、CAMB、VWEは低レベルに設定される。このようにすると入力信号21はCAMのデータ線に導かれて一致比較がおこなわれる。CAM部データの読み出し動作では、制御信号CAM、VWEは低レベル、CAMBは高レベルとして、REを低レベルにしてCAMのデータ線を高レベルに引き上げたのち、REを低レベルにきりかえ、CAMのデータ線を正の電源から切り放し、高インピーダンスにする。この後にCAMのワード線24を高レベルに持ち上げCAMセル23に記憶されているデータを読みだす。図9ではデータ線の読み出し信号のセンスアンプは省略しているが、従来広く用いられている回路を用いてもよく、既に述べた図6から8のセンスアンプを用いると読み出し処理が高速化される。
【0061】
VWE信号によるデータ比較のマスク動作を説明する。このマスク動作では、信号CAMは低レベル、CAMB、REは高レベルとして、VWEを高レベルにしてCAMのデータ線を低レベルに引き下げる。CAMのデータ線対のいづれもが低レベルとなるのでこの設定によって入力データにかかわらずNMOS26はOff状態になりこのデータに対しては比較処理の行なわれないことが分かる。
【0062】
<発明の実施の形態3の変形例>
(1)他の故障検出方法(その1)
以上に説明した、CAMセルに記憶されているデータを読みだす回路では、CAMに記憶されているデータを読みだすためには、図11の説明で記したようにCAMのデータ線対の2本とも高レベルに持ち上げたのちに高インピーダンス状態にすることが必要で、このための回路がCAMに入力するデータの流れの中にはいる。この読み出し回路の追加によってこのCAMを用いるTLBの変換時間が増加し、あるいは、キャッシュメモリのアクセス時間が増加する。このような変換時間が増加しないようにするには、以下の方法を採る。
【0063】
この故障解析ではCAMに記憶されているVAを別途記憶回路(図示せず)に記憶しておき、故障解析動作ではこのVAをCAMに入力し、読みだされたデータが所定のエントリであることを確認する。この処理でエントリが所定のものでなかったり、一致するデータがなくミスと判定されたときにはそのエントリに故障のあることが検出できる。ここで、別途記憶しておくCAMのエントリのアドレスはTLBやキャッシュメモリのデータRAM部に記憶させておくのが構成としては簡単である。しかし、データRAM部にVAを記憶させるとデータRAM部のカラム数(メモリセルの列)が記憶するデータだけ増加し、ワード線の負荷が増してデータの読み出し時間が増加する。これを避けるためには別の高速なメモリ(データRAM部のワード線に共通にしないということであって、隣接してこのメモリを設けてデコーダを共有する等の一体化したメモリであることが望ましい)に記憶させておいて故障解析時に読み出して用いるのがよい。
【0064】
(2)他の故障検出方法(その2)
信頼性を確保する方法としてパリティビットPcm、Prmをくわえること、2重一致時の検出する方法を先に実施の形態2で述べた。これは、エラーが生じた後のデータの信頼性確保であるが。上述の他の故障検出方法(その1を適用して随時CAMに記憶されているデータを別途記憶されているVAとの比較を行なうことでエラーとなっているデータを前もって検出して排除することでエラーの発生を減少させ、エラー発生に伴う処理を削減できる。
【0065】
<発明の実施の形態4>
図12は、本発明の新規なTLBの構成例を示す。従来のTLBでは仮想アドレスVAから実アドレスPAへの変換を行う機能を備えているが、マルチタスクのシステムではタスクのIDが次々と追加されID番号がすべて使用された状態になり、一度用いたID番号を新たなタスクに割り付けることが必要になることがある。このように一度使用されたID番号をあらたなタスクに割り付けるときには、対応するID番号で記憶されたCAMセルのデータを用いないようにする機構が必要となる。従来はTLB全てのデータを使えなくする処理をしていた。しかし、TLBやキャッシュメモリの規模が大きくなると、このように全てのデータを使えなくすると、有効なデータも使えなくなるので新たにデータを書き込む間は全て一致するデータが存在しないことになりヒット率が低下するのみならず、データの書き込み動作も無駄になる。新たに割り付けるIDのみのデータを使えなくすることが望ましいことはいうまでもない。
【0066】
この機能をもたせるために、本実施の形態ではID用のCAMを切離し、まず、IDデータの一致とVAデータとの一致を並行して調べる方式にした。このようにすると、消費電力はその分増加するが動作速度の低下は小さく、かつ、ID用CAM部にIDのVビット(Valid bit)を設けて所望のIDに読み出し処理を禁止する機能をもたせることができる。これによって、IDが増加して新たにIDを用いる必要が生じてもTLBやキャッシュメモリの性能の低下を招くことなく処理を継続できるようになった。また、入力データで選ばれたIDの存在する位置(エントリー)がわかるように記号(エンコード用ビット)を付加してID用Vビットで使用を禁止している行番号が読みだせるようにした。これによって、データを書き込む行の選択を簡単に、かつ、効率良くおこなえるようになった。
【0067】
本実施の形態では、ID用のVビットを設けて読み出し処理を禁止している。このVビットで読み出し処理の禁止されている行がわかると、新たにデータを書き込むときにその行を優先的に書きかえることで効率のよいTLBのメモリ領域の利用ができる。しかし、CAMでは入力データに対して複数の行が一致することを禁止している。この禁止制限を取り除いたことに本実施の形態の特徴がある。このために、CAMのデコーダによって選ばれたエントリのVビットを読みだせるようにした。これによってVビットをあらかじめしらべておきVビットにもとづいて書き替えるエントリが選択できるようになった。
【0068】
データが有効であることをしめすバリッドビットVについて説明する。VビットはプロセスIDごとに変更できれば、IDの数に制限されることなくIDを切り替えることが出来る。すなわち、IDを変えたときには一斉にVビットを無効にすればその番号のIDを新しいプロセスに用いて処理を開始できる。このためには、IDのみで一致検出をおこない一致したVビットを無効にすればよい。すなわち、ID以外の入力を比較しないようにして、かつ、この比較を行なっているときには一致が検出されてもデータRAMのワード線の電位を低レベルに保持すればよい。これによってIDごとにVビットを短時間のうちに無効とすることができる。
【0069】
本実施の形態では、さらに、Vビットはデコーダによって所望のエントリのVビットデータを読みだせるようにしている。これによってあらかじめVビットが無効となっているエントリを調べておきCAMのデータ更新時にVビットが無効のエントリに優先してデータの更新をおこなっている。この方法によってデータ更新時にVビットチェックに要する時間を省き、かつ、無効なデータを記憶しているエントリを優先的に選んでデータの更新ができ、CAMのデータの無効領域が削減できた。
【0070】
Vビットのデコーダによる読み出しには別途デコーダを設けてもよいが、図12にしめすようにNAND回路91を設けて、NAND回路の入力の1を”ロー”レベルとすることでVビットのみの読み出しをおこない、また、同端子を”ハイ”レベルとすることでCAMへのデータの書き込みをおこなうことができる。これによってデコーダを共用することができる。
【0071】
<発明の実施の形態4の変形例>
本実施の形態では、Vビットが無効であることを高速に検出する方法を提供する。エンコード用ビットをVビット読み出し用の各ワード線に1個のみMOSFETがある構成として、データ線にも1個のみのMOSFETがつながる図13の構成にした。図13では1個のMOSFETを白ぬきの円で示している。これによって、エンコーダ部分はVビットでCAM動作をさせてVビットが読み出し禁止状態(無効状態)にある行を並列に検出でき高速化された。しかし、このようなエンコード ビットの作り方は行数(エントリー数)が多くなるとその行数に比例してエンコード部の面積が増えるといったトレードオフの関係にある。本実施の形態では面積増加を抑えるために、Vビットのチェックに用いるCAMを複数のブロックに分けている。たとえば、本実施の形態ではブロックに含まれる行数を8として高速に、かつ、Vビットチェック回路の面積増加を抑えた回路を構成している。
【0072】
<適用例>
以上ではいろいろのTLBあるいはそれに適用する技術について説明したが、これらの技術は広く一般の連想メモリ(CAM)に適用可能である。例えば、CAMを用いたキャッシュメモリに適用可能である。図15は、その様なキャッシュメモリを有する計算機システムを示す。中央制御ユニット(CPU)101から仮想アドレスキャッシュメモリ102へのアクセスは、仮想アドレスによって直接おこなう。この仮想アドレスキャッシュメモリ102に本発明のCAMを用いる。CPUからメモリユニット108のデータをアクセスするには、メモリ制御ユニット106で仮想アドレスを実アドレスに変換する。この変換には既に述べたTLBが用いられる。変換されたアドレスでキャッシュメモリやメモリユニットのデータをアクセスする。
【0073】
【発明の効果】
本発明に従って、連想記憶装置内に一致検出信号線の電位を加速する回路を設けた場合には、この連想記憶装置は一致検出動作を高速に行うことができる。
【0074】
さらに、本発明に従って、連想記憶装置に、そこに記憶するデータのパリティビットも記憶させた場合には、記憶されたデータに障害が発生した場合でも間違って一致と検出することを防げる。
【図面の簡単な説明】
【図1】本発明によるTLBの概ブロック図。
【図2】図1のTLBのCAM部の回路図。
【図3】図2の回路に使用する基準電圧発生回路の回路図。
【図4】図2の回路内の一致検出回路の動作波形図。
【図5】図1のTLBの前置CAM部の回路図。
【図6】図1のTLBにセンス&出力回路に好適なセンスアンプの回路図。
【図7】図1のTLBにセンス&出力回路に好適な他のセンスアンプの回路図。
【図8】図1のTLBにセンス&出力回路に好適なさらに他のセンスアンプの回路図。
【図9】図1のTLBに使用可能な他のCAMセルの回路図。
【図10】本発明による他のTLBに記憶されるデータの構造を示す図。
【図11】本発明によるさらに他のTLBの主要部の回路図。
【図12】本発明によるさらに他のTLBの概略ブロック図。
【図13】本発明によるさらに他のTLBの概略ブロック図。
【図14】図1のTLBが適用されるマイクロプロセッサの概略ブロック図。
【図15】図1のTLB内のCAMが適用可能なマイクロプロセッサの概略ブロック図。
【図16】本発明によるTLBに使用可能な2重一致検出回路の概略図。
【図17】本発明によるさらにTLBに記憶される他のデータの構造を示す図。
【図18】本発明によるTLBに記憶されるさらに他のデータの他の構造を示す図。
【図19】本発明によるさらに他のTLBの主要部の回路図。
【符号の説明】
356・・・加速回路
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a TLB (Translation Lookaside Buffer) mounted on a microprocessor LSI or an associative memory device (hereinafter simply referred to as CAM) used for a cache memory, and a differential amplifier circuit suitable for the same.
[0002]
[Prior art]
Recent microprocessor LSIs are equipped with a TLB (Translation Lookaside Buffer) or a cache memory, which is composed of a CAM (Content Addressable Memory). For example, the TLB includes a CAM unit that stores a plurality of virtual addresses specified by a program and a RAM unit that stores an address conversion result (real address) for those virtual addresses, and requires address conversion for the virtual addresses. When the virtual address matching the virtual address is stored in the CAM unit with reference to the TLB, the converted real address for the virtual address is output from the RAM unit. This eliminates the need for repeated address translation.
[0003]
For TLB, the full associative method and the set associative method are mainly used. A typical TLB of the conventional full associative method checks a match between an input virtual address and each of a plurality of virtual addresses stored in the CAM section in the TLB, and among the stored virtual addresses. When there is a virtual address that matches the input virtual address, the real address stored in the RAM unit corresponding to the matched virtual address is output. In this way, a typical TLB of the conventional full associative method compares all virtual addresses stored in the CAM unit with the input virtual addresses.
[0004]
Therefore, such a TLB has a large number of coincidence detection circuits for performing the above comparison, and accordingly, the circuit area of the TLB increases, power consumption increases. In the above comparison, in the CAM unit The data (in this case, the virtual address) stored there is not read outside the CAM unit, so the reliability of the data stored in the CAM unit can be confirmed. The failure of failure diagnosis of the CAM device is a drawback. Further, in order to suppress an increase in circuit area, a simple coincidence detection circuit is used for the comparison, and the operation speed is often considered secondarily. For this reason, it takes a long time to compare data (in this case, a virtual address). However, since all stored data are compared, there is an advantage that the data matching probability is higher than the set associative TLB.
[0005]
As a conventional technique for speeding up the comparison of the full associative TLB, it has also been proposed to provide a coincidence detection circuit for comparing search data and stored data for each memory cell of the CAM unit ( JP-A-59-231789). However, this technique has a problem that the total number of coincidence detection circuits increases.
[0006]
A technique for speeding up the coincidence detection circuit is disclosed in IEEE Journal of Solid-State Circuits vol. 28, no. 11 pp. 1078-1083 (1993). In this prior art, for high-speed coincidence detection, in addition to the coincidence detection signal line, a reference signal line is provided in parallel with the coincidence detection signal line, and the voltage supply signal line is also in parallel with the coincidence detection signal line. A coincidence detection MOSFET constitutes a differential NOR circuit. Although this conventional TLB operates at high speed, the number of wires is three compared to the conventional TLB, which is one. Therefore, the circuit area is large.
[0007]
[Problems to be solved by the invention]
As described above, the conventional CAM has room for improvement in the operation speed of the coincidence detection circuit, the circuit area of the CAM unit, and the power consumption. As a technique for solving these problems, the present applicant has proposed an improved CAM suitable for TLB in Japanese Patent Application No. 7-58491 (filed on March 17, 1995). No. 7-231024 (filed on Sep. 8, 1995) proposed a CAM suitable for a cache memory.
[0008]
Further, in the conventional full associative TLB and virtual address cache memory, when a failure occurs in the data held therein, the input data that should not be hit may be hit.
[0009]
An object of the present invention is to provide a semiconductor integrated circuit having a higher speed CAM.
[0010]
Another object of the present invention is to provide a semiconductor integrated circuit having a CAM that does not hit accidentally when a failure occurs in retained data.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, an associative memory device provided in a semiconductor integrated circuit according to the present invention includes a potential difference between a potential of a coincidence detection signal line and a reference potential in a coincidence detection circuit for detecting the potential of the coincidence detection signal line. A differential amplifier and an acceleration circuit for detecting
The acceleration circuit rapidly raises the potential of the coincidence detection signal line to near the reference potential at the start of data coincidence detection, and since all of the plurality of memory cells output coincidence detection signals, the plurality of MOS transistors are all turned off. After that, the potential of the coincidence detection signal line is raised to a potential higher than the reference voltage, and at least one of the plurality of memory cells outputs a mismatch detection signal, so that at least one of the plurality of MOS transistors After being turned on, a current that makes the potential of the coincidence detection signal line smaller than the reference voltage is supplied to the coincidence detection signal line.
[0012]
In order to achieve the other object, the associative memory device provided in the semiconductor integrated circuit according to the present invention also stores parity bits of data stored in a plurality of memory cells in those memory cells.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the CAM according to the present invention will be described in more detail with reference to some embodiments shown in the drawings. In the following, the same reference numerals represent the same or similar items. In the second and subsequent embodiments, differences from the first embodiment will be mainly described.
[0014]
<Embodiment 1 of the Invention>
First, a microcomputer system having a TLB using a CAM according to the present invention will be described. In FIG. 14, the microprocessor unit (MPU) 100 accesses data in the memory unit 108 from the central processing unit (CPU) 101 via the memory control unit 106 and the real address cache 104, and passes through the input / output control unit 105. The external storage device 109 is accessed. The memory control unit 106 converts the virtual address given from the CPU into a real address, and accesses the data in the real address cache 104 and the memory unit 108 with the converted real address. The memory control unit 106 has a TLB 200 that holds this virtual address and the real address obtained by the above conversion, and uses the real address in the TLB 200 when the same virtual address is given from the CPU later. . At this time, the real address can be obtained without performing the address conversion in the memory control unit 106. This TLB is constituted by the CAM according to the present invention.
[0015]
FIG. 1 shows a schematic block of this TLB. In the figure, a CAM unit (1) 700 and a CAM unit (2) 710 are composed of a plurality of CAM cells arranged in a matrix for holding a plurality of address information, and each row holds one address information. . The CAM unit (1) 700 and the CAM unit (2) 710 divide and hold these address information. Hereinafter, when these CAM parts are collectively referred to, they may be simply referred to as CAM parts. The coincidence detection unit 730 includes a plurality of coincidence detection circuits provided corresponding to one row, and each coincidence detection circuit includes the address information supplied from the signal CPU via the line 92 and the CAM units 700 and 710. A match with the address information held in one row to which the match detection circuit is connected is detected. The address information sent from the CPU and the address information stored in the TLB include a virtual address (hereinafter referred to as VA) and other information.
[0016]
The data RAM unit 750 includes an SRAM memory having a plurality of memory cells for holding real addresses arranged in a matrix. Each row holds one real address and corresponds to one row of the CAM units 700 and 710. When the coincidence detection circuit corresponding to the row detects a coincidence, the real address held in the row in the data RAM unit 750 corresponding to the row is read, and the sense & output circuit 760 Output via the selector 770.
[0017]
The pre-CAM unit 780 holds address information less than the plurality of address information held in the CAM units 700 and 710, and operates before the coincidence detection in the CAM units 700 and 710. For this reason, the front CAM unit 780 is also composed of CAM cells arranged in a matrix for holding address information. However, the number of rows is much smaller than that of the CAM units 700 and 710. Further, these CAM cells are not divided into two parts like the CAM parts 700 and 710. The coincidence detection unit 830 includes coincidence detection circuits provided in correspondence with one row of the front CAM unit 780, and each has the same structure as the coincidence detection circuit in the coincidence detection unit 730.
[0018]
The data storage circuit 790 is made up of a plurality of registers for holding real addresses, each provided corresponding to one row of the front CAM unit 780, and any one of the match detection circuits in the match detection unit 830 is connected to a line. When a match with the address information supplied from 92 is detected, the real address in the register corresponding to the row to which the match detection circuit is connected is output. When the coincidence detection unit 830 detects a coincidence, the power supply control circuit 81 stops the power supply to the coincidence detection unit 730 and stops its operation, thereby reducing power.
[0019]
The write control unit 800 is a circuit that writes write data supplied from the CPU via the line 94 to the data storage circuit 790 or the data RAM unit 750. The decoder 69 selects one row specified by the row select signal supplied from the CPU via the line 90, and writes the address information supplied from the CPU via the line 92 to the line 94 from the CPU. The row in the data RAM unit 750 to which the data supplied via is to be written is selected. Similarly, the decoder 68 sets one row in the front CAM and one register in the data storage unit circuit 790 specified by the row select signal supplied from the CPU via the line 90 as address information. And select for writing write data.
[0020]
The block structure of the above circuit is basically the same as that described in Japanese Patent Application No. 7-58491 filed earlier, but this embodiment mainly includes coincidence detection units 730 and 830, a sense & output unit. 760 is different from that described in the prior application in that it is configured to operate at higher speed.
[0021]
FIG. 2 shows a circuit structure of the CAM unit (1) 700 and the CAM unit (2) 710. Reference numeral 70 denotes a main part of the CAM part (1) 700, and 23 denotes one of a plurality of, for example, approximately 30 CAM cells belonging to one row. Reference numeral 10 denotes an inverter provided in the column to which the memory cell belongs. 71 indicates a main part of the CAM unit (2) 710, and 93 indicates one of a plurality of CAM cells of the CAM unit (2) 710 belonging to the same row. Reference numeral 87 denotes a coincidence detection circuit for the CAM unit (2) 710 for this row in the coincidence detection unit 730. The CAM part (2) 710 is composed of a memory cell of several bits, here 3 bits, for each row. The coincidence detection circuit 87 is composed of a NAND circuit to which the outputs 84, 85, 86 of these memory cells are input. 73 is a coincidence detection circuit for the CAM unit (1) 700 and the CAM unit (2) 710 for this row in the coincidence detection unit 730. The differential detection circuit 32, the output circuit 43, the transistors 30, 31, 33, 35, and 36. The block 72 including the elements described above constitutes one row (one entry) of the CAM array constituting the TLB. In the present embodiment, 64 rows of circuit blocks 72 are provided to constitute a CAM array unit. The terminal 21 is one of the lines 92 (FIG. 1) connected to the CPU, and receives 1 bit of address information supplied from the CPU. The inverter 10 generates a complementary signal on the line 22 of the 1-bit signal 21.
[0022]
Of the structure of this CAM, in this embodiment, the circuit other than the acceleration circuit 356 in the coincidence detection circuit 73 is basically the same as the circuit described in Japanese Patent Application No. 7-58491. The operation and characteristics of the circuit are as described in the prior application. The acceleration circuit 356 includes transistors 35 and 36, and has a function of accelerating the detection operation in the differential amplifier circuit 32. Further, as will be described later, a circuit for generating a reference voltage to be supplied to the terminal 37 of the differential amplifier circuit 32 is devised to reduce the power consumption in the differential amplifier circuit 32.
[0023]
Hereinafter, the operation of the circuit of FIG. 2 will be described. One bit of the input address information is applied to the data line 21, and a complementary signal of the input signal is generated on the complementary data line 22 by the inverter 10 connected thereto. A pair of complementary signals on the data lines 21 and 22 are guided to the CAM cell 23. For example, when the input signal of the data line 21 is a high level signal and the storage data of the CAM cell 23 is at the high level of the node 18, the N-type MOS transistor (hereinafter referred to as NMOS) 19 becomes conductive, and the data line 22 Since a low level signal which is a complementary signal of the upper input signal is supplied to the gate of the NMOS 26, the NMOS 26 is turned off. Assume that the data matches this state. A case where the data do not match will be described. A case where the input data of the data line 21 is at a low level and the node 18 of the CAM cell 23 is at a high level will be described. Also at this time, the NMOS 19 is turned on to guide a high level signal to the gate of the NMOS 26, and the NMOS 26 is turned on. When the node 18 of the CAM cell 23 is at a low level, the relationship with the above-described input signal is merely switched, and the description thereof is omitted. In other words, in the CAM portion, the data match and mismatch are determined by the non-conduction and conduction of the NMOS 26.
[0024]
The CAM unit (1) 700 is provided with an element circuit indicated by reference numeral 70 in FIG. 2 by the number of bits of the CAM unit (2) 710 (3 in the present example) less than the number of bits of input address information. The drains of the NMOS corresponding to the NMOS 26 of all the element circuits are connected in parallel to the coincidence detection signal line 25. With this configuration, the coincidence detection signal line 25 is disconnected from the ground terminal only when all the bits minus 3 bits of the inputted address information coincide with the address information stored in the CAM cell. The word line 24 is for writing data into the CAM cell 23. By raising the word line 24 to a high level, the data on the data line pair 21 and 22 can be written into the CAM cell 23.
[0025]
As described above, when the address information bits input to the CAM unit (1) and the stored data of the same number of CAM cells in the CAM unit (1) all match, the match detection signal line 25 is disconnected from the ground terminal. Therefore, when a current is supplied by P-type MOS transistors (hereinafter referred to as PMOS) 30, 31, 35, and NMOS 36, the potential of the coincidence detection signal line 25 is raised. The final potential of the coincidence detection signal line 25 when a sufficient time has elapsed becomes a positive power supply voltage. Here, the NMOS 33 functions to adjust the detection condition by setting the coincidence detection signal line 25 to the ground potential at the start of the coincidence detection operation.
[0026]
A change of the coincidence detection signal line 25 when only one bit of the input address information and the data of the CAM cell does not coincide will be described. Assume that all 3 bits of the CAM part (2) match. As will be described later, in this case, a low level is supplied to the gate of the PMOS 30. When the input address information and the data of the CAM cell belonging to one row in the CAM part (1) do not match only one bit, the current supplied by the PMOS 30, 31, 35, and NMOS 36 is changed to the current flowing through one NMOS 26. If designed to be substantially equal, the potential of the coincidence detection signal line 25 reaches about ½ of the positive power supply voltage and does not increase any more. Since the supplied potential can be controlled by this supply current, this reached potential is set to a potential higher than the ground potential by Vt of NMOS by the control of the supplied current. In this way, almost no current flows through the differential amplifier circuit 32. That is, a current is supplied to the differential amplifier 32 only when a match occurs in all the CAM cells in one row, and a current hardly flows when a mismatch occurs in at least one CAM cell. Only one entry of CAM matches (one row in the CAM cell matrix is commonly referred to as an entry, so it will be referred to as an entry below), and the remaining entries are all inconsistent in data, so this setting greatly reduces power consumption. The
[0027]
The reference potential (potential supplied to the terminal 37) of the differential amplifier 32 will be described later, but is set to a potential slightly higher than the potential of the coincidence detection signal line 25 when only one piece of data does not coincide. A predetermined potential is applied to the gate of the NMOS 36 and functions to determine the upper limit of the potential at which the signal line 25 is pulled up by the current supplied from the PMOS 35. In this way, the signal line 25 can be pulled up to a predetermined potential in a short time by the current supplied from the PMOS 35, and the coincidence detection of the differential amplifier 32 can be speeded up. The signal lines 27, 28, and 29 are a PMOS control signal line that supplies current to the coincidence detection signal line, a signal line that supplies current to the NMOS 34 for current control of the differential amplifier, and a gate potential supply signal line for the NMOS 36.
[0028]
FIG. 3 is a circuit for generating a reference voltage applied to the terminal 37 of the differential amplifier circuit 32 of FIG. 2 and a voltage applied to the gate of the NMOS 36, and is configured to detect data coincidence in the differential amplifier circuit 32 at a higher speed. ing. The NMOS 102 has the same shape as the NMOS 26 in the CAM cell 23 of FIG. 2, and the voltage (Vcc-Vt) applied to the gate of the NMOS 102 is the high level of the coincidence detection voltage of the cell 23 (when the data does not coincide, the gate of the NMOS 26). Vcc is a positive power supply voltage and Vt is the threshold voltage of the NMOS 26). By this potential supply, a current equal to the current that flows when the CAM cells do not match is supplied to the PMOS 103. Supply. In a CAM cell using 11 MOSs, this potential is Vcc. The current flowing through the NMOS is supplied to the NMOSs 105 and 106 through the PMOS having the same shape as that of the PMOS 103 to generate a gate voltage VR1 on the line 29 to be applied to the NMOS 36 of FIG. With this circuit, the gate voltage VR1 is set to a potential approximately twice the NMOS threshold voltage Vt. The gate voltage VR1 does not have to be strictly this potential, and a separately generated voltage may be supplied. However, when the potential is set to twice the potential of Vt, the potential of the reference voltage VR described later is set to Vt, The power consumption of the differential amplifier 113 is small and the potential operates at high speed. The gate voltage VR1 is supplied to the gate 108. The NMOS 109 has the same shape as the NMOS 102, and the PMOS 110 has a supply current about 20% larger than the PMOS 35 (FIG. 2) that supplies current to the coincidence detection signal line. The PMOS 35 supplies a current to the coincidence detection signal line 25 at a predetermined time, and its gate is held at the ground level while the current is supplied.
[0029]
FIG. 4 shows the time change of the potential of the main node of the circuit of FIG. The signal Vacc is a signal applied to the PMOSs 31 and 35 via the line 27 that controls the supply current to the signal coincidence detection signal line 25, and is also called a detection acceleration pulse. When this signal changes from Vcc to the ground level, when all the CAM cells 23 connected to the coincidence signal line 25 coincide with each other, the coincidence detection signal line 25 as shown in the voltage waveform indicated as “coincidence” in FIG. The potential of increases with time. Here, the time change from the time Vacc is lowered to the ground level to the reference voltage VR is rapid because current is supplied from the PMOS 35 through the NMOS 36 to the reference voltage VR. When the potential of the coincidence detection signal line 25 reaches VR, the voltage between the gate and the source of the NMOS 36 becomes the threshold voltage Vt, so that the supply of current through the NMOS 36 is stopped, and thereby the rising speed of the potential of the coincidence detection signal line 25. Will decline. On the other hand, in FIG. 4, the time change of the signal line potential when only one of the CAM cells connected to the coincidence detection signal line 25 does not coincide is indicated by the symbol “mismatch”. At this time, the current continues to be supplied from the PMOS 35 via the NMOS 36. However, since the current of the PMOS 110 that supplies the current is larger than that of the PMOS 35, the potential rise stops without increasing to the reference voltage VR. It can be easily understood that the potential rise is further reduced when two or more CAM cells connected to the coincidence detection signal line 25 do not coincide.
[0030]
As described above, in the circuit of FIG. 2, coincidence detection can be detected by the difference between the potential of the coincidence detection signal line 25 and the reference voltage line VR, and the NMOS 31, immediately after the detection acceleration pulse Vacc is lowered to the ground level. Since the coincidence detection signal line is pulled up to the reference voltage VR at high speed by the current supplied by 36, the coincidence detection operation is speeded up. In addition, since the potential of the mismatch detection signal line does not exceed the reference voltage VR, it is not necessary to strictly limit the time for holding Vacc at the ground potential, and it is easy to control the circuit. It is a feature. However, since the current continues to be supplied to the mismatch detection signal line 25 by the MOSs 31 and 36 during the period when Vacc is at the ground level, Vacc is quickly raised to a high level if a match detection signal is output to reduce power consumption. It is desirable to stop the supply of the pull-up current. The reference voltage generation circuit 101 can also be applied to a differential amplifier other than the differential amplifier circuit 32 of FIG.
[0031]
Here, the operation of the CAM unit (2) 710 will be briefly described with reference to FIG. This circuit is substantially the same as that described in Japanese Patent Application No. 7-58491. In the CAM unit (2) 710, a signal of about 3 bits in the address input (input signal) is subjected to coincidence detection. The CAM cell 93 included therein has substantially the same structure as the memory cell 23 of the CAM unit (1), but the grounding of the circuits is different. 84, 85, and 86 become high levels, respectively. The coincidence detection circuit 87 for CAM (2) supplies the low level to the PMOS 30 in the corresponding coincidence signal generation circuit 73 and drives the circuit 73 only when these signal lines are all high. In this way, only a part of the all coincidence detection circuit 73 in the CAM unit (1) is driven.
[0032]
FIG. 5 shows a main part of the front CAM unit 780 and a main part of the coincidence detection circuit unit 830 therefor. In the figure, elements having the same structure as in FIG. 2 have the same reference numerals. As can be seen from FIGS. 5 and 2, the front CAM unit 780 has the same structure as the CAM unit (1) 700. The coincidence detection circuit 83 in the coincidence detection unit 830 for the front CAM unit does not have the coincidence detection circuit 87 for the CAM unit (2) 710 shown in FIG. 2, and accordingly, for the CAM unit. There is no NMOS 30 in the coincidence detection circuit 73. However, the coincidence detection circuit 83 in the coincidence detection unit 830 is provided with an acceleration circuit 356 including the PMOS 35 and the NMOS 36 in the coincidence detection circuit 73 for the CAM unit as in FIG. Accordingly, the circuit operation of the pre-CAM unit 780 and the coincidence detection circuit unit 830 for the same is the same as that of the CAM unit (1) 700 and the coincidence detection circuit unit 730, and thus description thereof is omitted.
[0033]
The RAM data portion 750 shown in FIG. 1 can generally be constituted by an SRAM memory. In SRAM, memory cells generally have a flip-flop structure and are connected to a pair of data lines. The sense & output circuit 760 has a sense amplifier corresponding to each data line pair for differentially detecting the voltage of the pair of data lines. FIG. 6 shows a sense amplifier suitable for such a sense amplifier. The feature of this circuit is that the offset voltage converted to the input of the differential amplifier is reduced and a minute voltage signal is detected by the differential amplifier at high speed.
[0034]
More specifically, there are provided NMOSs 201 and 202 having a gate connected to an input signal, a drain connected to a positive power supply Vcc, and a source connected to NMOSs 203 and 204 for supplying a predetermined current. The gates of NMOSs 205 and 206 constituting the dynamic amplifier are respectively connected. At this time, the gate-source voltage Vgs of the NMOSs 201 and 202 has a relationship of Ief = Io exp ((Vgs−Vt) / nkT) with the current Ief supplied from the NMOSs 203 and 204 when the current is small. That is, if Ief is controlled by the NMOSs 203 and 204, the voltage between the gate and source of the NMOSs 201 and 202 can be arbitrarily controlled.
[0035]
Here, if the current Ief is controlled so that the voltage difference between the output terminals 207 and 208 generated in the NMOSs 201, 202, 205, and 206 and the PMOSs 221 and 222 becomes zero, there is a mismatch in the characteristics of the NMOS that constitutes these circuits. However, these are corrected, and it is possible to realize the same performance as a circuit having completely the same characteristics. Further, even if the currents flowing through the NMOSs 201 and 202 slightly enter the region deviating from the above relationship, the relationship between them is uniquely determined, and it goes without saying that the same correction can be performed by adjusting the current. . Hereinafter, the operation of the circuit will be described in detail.
[0036]
A data line pair of the memory circuit is connected to the input terminals IN and INB, and a potential difference is generated between the two lines due to a current from the memory cell. This potential difference is 0 V at the start of data reading, and increases in proportion to time. The potential of the data line at the start of data reading is the positive power supply voltage Vcc. When Vcs and Vsw are raised to a high level before the start of data reading and current is supplied to the NMOSs 201 and 202, the potential of (Vcc-Vt) is applied to the gates of the NMOSs 205 and 206, and the potentials of the output terminals 207 and 208 Pull down. If the characteristics of the NMOSs 201 and 202, 205 and 206, and the PMOSs 221 and 222 are the same, the potentials of the output terminals 207 and 208 are equal, but if there is an imbalance, a potential difference occurs between the output terminals according to the imbalance.
[0037]
For example, when the potential of the terminal 208 becomes high, the potential is supplied to the gate of the NMOS 203 through the NMOS 209 and Ief increases. As a result, the gate potential of the NMOS 205 is lowered, the potential of the output terminal 207 is increased, and the potential difference between the output terminals 207 and 208 is reduced. The decreasing rate of the potential difference is the reciprocal of the voltage gain of the differential amplifier composed of the NMOSs 205, 206 and 203, 204. A voltage gain of 20 db was easily obtained with a two-stage differential amplifier, and the input unbalance was 5 mV or less. Thus, after correcting the imbalance, detection of the input signal is started. First, Vsw is lowered to disconnect the gate terminals of the NMOSs 203 and 204 from the output terminals 207 and 208. However, the gate potential is held by the capacitors 211 and 212. The change in the gate potential caused by the separation is reduced because the NMOSs 203 and 204 are differential circuits. When a detection signal is connected to the input terminals IN and INB in this state, the input signal can be detected in a state where the imbalance is corrected, and a circuit for detecting the signal at high speed is obtained.
[0038]
<Modification of Embodiment 1 of the Invention>
(1) Other sense amplifiers (1)
FIG. 7 shows another sense amplifier which is different from the sense amplifier shown in FIG. In this figure, in order to supply a predetermined current, the voltage difference between the output terminals 207 and 208 is examined, and the gates of the NMOSs 213 and 214 having a floating gate structure used in EPROM or the like so that the difference becomes zero. Is a circuit that adjusts the voltage of the floating gate to permanently set the potential difference between the output terminals to zero. According to this method, the mismatch of the device characteristics of the MOSFET can be corrected permanently only by setting the current Ief at the time of manufacturing the integrated circuit.
[0039]
(2) Other sense amplifiers (2)
FIG. 8 shows still another sense amplifier that is different from the sense amplifier shown in FIG. In this figure, three NMOSs are provided in advance as NMOS groups 215 and 216 for adjusting Ief, respectively, and the supplied Ief is controlled by controlling the conduction / non-conduction of these NMOSs. At this time, the control operation is simplified depending on whether the floating gate NMOS used in FIG. 7 is made conductive to the ground potential or to the positive power supply voltage Vcc. In addition, it is possible to perform conduction / non-conduction of the NMOS groups 215 and 216 for controlling Ief using a programmable ROM such as cutting a fuse.
[0040]
The circuit in FIG. 6 detects an input signal in a state where Ief is adjusted so that the potential difference between the output terminals becomes small immediately before the signal is detected. Therefore, even if the characteristics of the NMOS change with time, the characteristics are corrected, so that the characteristics can be corrected more accurately. On the other hand, once the correction is performed in the circuits of FIGS. 7 and 8, the subsequent correction is unnecessary, the usage is not limited, and the unbalance is corrected by a normal amplifier. However, it cannot be corrected for changes over time. Of course, the correction can be performed in the circuits of FIGS. 7 and 8 if correction is performed again at a desired time.
[0041]
(3) Other types of memory cells
In the first embodiment of the present invention, a memory cell having a comparison function known per se, for example, the one cited in Japanese Patent Application No. 7-58491 can be used instead of the memory cells 23 and 93. .
[0042]
(4) TLB corresponding to variable length data
It is also possible to modify the first embodiment of the invention so as to constitute a TLB corresponding to variable length data. At this time, as a memory cell used in the first embodiment of the present invention, for example, a memory cell for variable length data described in JP-A-1-220293 shown in FIG. 9 may be used. As a result of the examination of the TLB by the present inventor, new knowledge about the design and installation location of the NMOS 260 shown in FIG. 9 was obtained.
[0043]
The first is a decrease in coincidence detection current flowing in the CAM cell and an increase in coincidence detection time. In the TLB, the conduction / cutoff operation of the NMOS 260 is controlled by the variable length designation bit. However, when the current is conducted and current is passed, since the current is supplied in series with the NMOS 250, the current is larger than that of the conventional CAM cell. Decrease. For this reason, in order not to increase the delay time, it is required to improve the driving capability of the MOSFETs to be configured. For example, the gate widths of all MOSFETs may be increased by that amount. At this time, the load on the data line (for example, the data line to which the terminals 21 and 22 in FIG. Increases power consumption and power consumption. Therefore, it was examined to increase only the gate width of the NMOS 260. As a result, it has been found that if the gate width of the NMOS 260 is designed to be 1.5 times or more the gate width of the NMOS 250, the reduction in current can be greatly reduced. When the gate width of the NMOS 260 is increased, the area of the CAM cell is increased correspondingly, but the increase is slight, and the load on the VA input data line is hardly increased.
[0044]
The second is that, through this study, it is clear that it is advantageous to provide one NMOS 260 in a plurality of CAM cells from the viewpoint of area and electrical characteristics. That is, when the input VA data is compared with the data in the CAM cell, the minimum signal level of the signal indicating “mismatch” when there is a mismatch is determined by the NMOS in the CAM cell, for example, the NMOS 250 in FIG. One is in a conductive state. That is, it can be said that it is sufficient to install one MOS transistor (for example, NMOS 260) in common to a plurality of CAM cells.
[0045]
The third is a place where the NMOS 260 is installed. As a result of the examination, it was shown that the parasitic capacitance increase can be most suppressed by providing the drain of the NMOS 260 so as to be connected to the coincidence detection signal line. This variable length designation bit processing method is particularly used in the method of generating a coincidence signal by supplying a constant current (coincidence detection method by the coincidence detection circuit 73 in FIG. 2) described in the first embodiment of the invention. Since the supply current is limited, the effect was drawn out even better. Further, the area occupied by the circuit is reduced by sharing the NMOS 260.
[0046]
<Embodiment 2 of the Invention>
In this embodiment, a full associative TLB that operates normally even when an error occurs in stored data is provided. Specifically, the parity data of the data stored in the CAM unit is also stored in the CAM unit. The circuit of the memory (CAM) for collating the input data with the data stored in the memory to find matching data and outputting the storage information related to the data has been described in detail with reference to FIG. In addition, as a TLB circuit of an address translation device for a computer, the IEICE Transactions, Vol. 6, pp. 757-762. However, these circuits do not have parity bits for improving reliability. In order to add parity bits, the operation and configuration of the CAM are briefly summarized.
[0047]
As described in detail in the description of FIG. 2, the operation of the CAM is summarized as follows. First, data for comparison is input, and the input data is compared with data stored in a CAM arranged in a matrix. When the input data matches the stored data, in the CAM, the data (RAM data) related to the data to be compared with the data compared with the input data (CAM data) is compared with one line in the CAM. Since it is stored, the row is referred to as an entry), and the related data stored in it is read and output.
[0048]
FIG. 10 shows data for one entry stored in the CAM portion of FIG. VA10 to VA31 indicate data stored in a CAM unit (such as the CAM unit in FIG. 2). Consider a case where the data in FIG. 10 is inverted by 1 bit due to some trouble. If 1-bit data is inverted in the data from VA10 to VA31, even if the same data as the data before the failure is input to the CAM, the stored data is inverted by 1 bit due to the failure, resulting in a mismatch. . For this reason, processing is performed assuming that there is no data matching the CAM portion, and the operation of the CAM is normal. However, if the same data as the data inverted due to the failure is input, the two match, so the data in the RAM portion of the entry of the failed data is output, and the CAM outputs incorrect data. Thus, since the CAM operates differently from the operation of the conventional memory, the parity bit cannot be added according to the conventional concept.
[0049]
The present embodiment provides a configuration of a CAM that determines that data does not match even when data that matches the faulty data is input. This configuration is based on the finding of the following relationship by the inventors. This is because the parity bit value for the same input data as the stored data in which 1-bit data is inverted due to a failure is always different from the parity bit value of the data before the failure occurs. In other words, by comparing the parity bit of the failed data with the parity bit of the same input data as the failed data, it is determined whether the data is determined to be consistent or correctly matched because of the failure. To do. The function of such a parity bit is fundamentally different from the function used as a signal indicating that a failure has occurred with respect to data in which a conventional parity bit has failed. In other words, the configuration of the present embodiment is a method of using a parity bit to stop reading data when it is determined that the data in the wrong entry matches because of a failure. The function is completely different.
[0050]
Hereinafter, the configuration and operation of the CAM according to the present embodiment will be described in more detail with reference to the drawings.
[0051]
FIG. 17A shows the stored data for one entry according to the present embodiment. One parity bit Pc is provided at the right end of the CAM portion data. The configuration other than the parity bit is the same as that of FIG. The case where data to be compared with the data shown in FIG. 17 is input will be described. In FIG. 17 (a), if no failure occurs in the stored data, the same input data as the data in FIG. 17 (a) is matched in the CAM portion including the parity bit, and the other data is not matched. It is obvious that the CAM operates normally. An example of data when a 1-bit failure occurs is shown as data for one entry in FIG. Since this data causes a 1-bit failure, it does not match the input data that originally matches. This discrepancy determination is processed assuming that there is no data in the CAM, and the time required for the processing is disadvantageous, but erroneous data is not output, and the CAM operation is a normal operation. Next, consider the case where the same data as the data in which the failure occurred is input to the CAM. As described above, since the value of the parity bit is not correct for the failed data, it is different from the parity bit of the input data. Therefore, in the configuration of FIG. 17 in which data matching including parity bit Pc is checked, faulty data is not judged to be inconsistent and erroneous data is not output, and CAM operation is normal. From the above description, data reliability can be guaranteed by manufacturing a CAM having a data structure in which one parity bit is added to the CAM portion.
[0052]
<Modification 1 of Embodiment 2 of the Invention>
FIG. 18 shows storage data for one entry of the CAM as in FIG. A difference from FIG. 17 is that a parity bit Pr is added to the RAM unit. In this data structure, there is a possibility that two pieces of data match in the CAM as described in the above problem. In this embodiment, a circuit for detecting the coincidence of two pieces of data is provided, and when this circuit detects that the two pieces of data coincide with each other, the data is determined to be inconsistent. This solves the problem as described below. This will be described in detail below.
[0053]
When the stored data does not cause a failure, the data in the RAM portion of the entry corresponding to the stored data that matches the input data is read and the parity bit Pr entered in the RAM portion also matches, so the input data and the RAM portion The data stored in is checked for a match, and the reliability is guaranteed by the match. Further, when the same data as the data in which the failure has occurred is not stored in the CAM part, the circuit for detecting that the two data match does not operate, and the data in the RAM part is read out. However, the parity bit Pr of the read data is different in value from the parity bit of the data matched in the CAM part as described above. The two parity bits are compared and a mismatch is detected, and it is detected that the read data is incorrect data. From this detection result, a signal indicating that no matching data exists in the CAM is generated, so that erroneous data is not output, and the operation of the CAM is a normal operation. When the same data as the failed data is present in the CAM and the same data as that data is input, the data is erroneously detected by a circuit (circuit of FIG. 16) that detects that the two data match. If it is detected that there is no coincidence data, no erroneous data is output, and the CAM operation is normal.
[0054]
Hereinafter, the circuit of FIG. 16 will be described. Signal lines 500, 501, and 561 are signal lines indicating the entry that matches when the input address matches the data stored in the CAM portion, and are signals at the terminal 44 in FIG. That is, the signal line of the matched entry is designed to be high level, and the signal line of the mismatched entry is designed to be low level. This signal can also be used as the signal of the word line in the data RAM portion of FIG. The gates of the NMOSs 570 are connected to the signal lines 500, 501, and 561, respectively. The source of the NMOS is grounded, the drain is connected to the signal line 662 in parallel, and the signal line is connected to the drain of the PMOS 571. The source of the PMOS 572 having the same shape as the PMOS is connected to a positive power supply, and the gates of both PMOSs are connected to the drain of the NMOS 573. The drain of the PMOS 572 is connected to the drain of the NMOS 573 whose source is grounded, and the gate of the NMOS is connected to a positive power source. The shape of the NMOS 573 is set to 1.2 to 1.6 times the gate width of the NMOS 570 connected to the signal lines 500 to 561, and the current is designed to flow 1.2 to 1.6 times. The operation of this circuit will be described. In the circuit of FIG. 16, when there is no matching data, all the NMOSs 570 are OFF, so that the terminal 505 holds a high level. When one entry matches and the MOSFET is turned on, the current supplied from the PMOS 501 is larger than the current flowing through the matched NMOS 570, so that the potential at the terminal 575 is kept at a high level. When the two entries match, the current flowing through the two NMOSs 570 becomes larger than the current supplied from the PMOS 571, so that the terminal 575 is at a low level. By detecting the potential level of the terminal 575, it can be detected that the two entries match. Discarding the read data from the RAM unit with this signal or stopping the reading can be easily realized, so the presentation and description of the attached circuit are omitted.
[0055]
Based on the above description, the configuration of the CAM with parity according to the present embodiment is summarized in FIG. Since FIG. 19 has a configuration in which parity bits are added to FIG. 2, circuits having the same operations as those in FIG. The parity bit can be added to the CAM in two ways. The first is a configuration in which a CAM cell having a parity bit Pc 901 is added to the CAM portion of the conventional CAM. In this case, only one column of CAM cells 901 needs to be added. The second is that a circuit 900 (which is equivalent to the circuit of FIG. 16) for detecting that two or more data matches in the CAM is added, and this circuit confirms that two or more data matches. When detected, a signal indicating that there is no data matching the input data at that time is sent (not shown), and a function of stopping the output of the selector 770 by the signal 905 is added. Further, the parity bit read by adding one column of RAM cells Pr902 for the parity bit in the RAM portion is compared with the input parity bit signal 904 by the comparison circuit 903. Since the data is correct, data is output from the selector 770. If the data does not match, it is determined that the data is incorrect and the output from the selector is stopped.
[0056]
The reliability of the CAM data can be confirmed by the above two configurations. In addition, the parity bit put in the CAM part is controlled by using a mask bit described later so that two kinds of parity bits can be used in the same CAM configuration, so that the function of the parity bit of the CAM part is enabled or disabled. Needless to say, it can be controlled.
[0057]
<Modification 2 of Embodiment 2 of the Invention>
17 and 18 does not have a function that does not compare a part of input data (hereinafter, this function is referred to as a mask function). The configuration of the CAM with the mask function is Digest of Technical Papers of ISSCC 96 pp. 360-361 (1996) and JP-A-1-220293. From these circuits, it has been found that a mask function can be obtained simply by adding a memory cell for storing mask information to a conventional CAM and adding a function for controlling whether or not to compare in accordance with the stored mask information. To do. That is, the mask function is a function that can be easily designed by an engineer who can design a conventional CAM circuit by looking at the above-mentioned document. For this reason, only matters to be noted when adding a mask function are described below.
[0058]
A brief description of a CAM having a mask function will be added. In a CAM having a mask function, it is necessary to insert a parity bit as follows. One parity bit is put in each address area to be masked and one bit is put in the masked address area. In this way, when all the mask functions are functioning, it is shown that there is no error in the data by comparing only the parity bits in the unmasked address area. Since the parity bit is compared for each mask area when the masked address area is not masked, the parity bit only does not function when masked, and when it is not masked, the match is checked in the mask area. When considered as an area, it can be easily understood that the parity bit indicates the reliability of the data in the area, and if all the parity bits match, it is indicated that there is no error in the data.
[0059]
<Third Embodiment of the Invention>
In this embodiment, a CAM that can read CAM data is listed. If the data stored in the CAM can be read, the same failure analysis method as that of a normal RAM can be applied.
[0060]
In FIG. 11, in the coincidence comparison operation with the input signal, the control signals CAM and RE are set to the high level, and the CAMB and VWE are set to the low level. In this way, the input signal 21 is guided to the CAM data line and subjected to a coincidence comparison. In the CAM section data read operation, the control signals CAM and VWE are at a low level, CAMB is at a high level, the RE is set to a low level, the CAM data line is pulled up to a high level, and the RE is switched to a low level. Disconnect the data line from the positive power supply to high impedance. Thereafter, the data stored in the CAM cell 23 is read by raising the CAM word line 24 to a high level. In FIG. 9, the sense amplifier for the read signal of the data line is omitted. However, a conventionally widely used circuit may be used, and the use of the sense amplifier of FIGS. 6 to 8 already described speeds up the reading process. The
[0061]
A data comparison mask operation using the VWE signal will be described. In this mask operation, the signal CAM is at a low level, CAMB and RE are at a high level, VWE is set to a high level, and the CAM data line is pulled down to a low level. Since both of the CAM data line pairs are at a low level, it is understood that the NMOS 26 is turned off by this setting regardless of the input data, and comparison processing is not performed on this data.
[0062]
<Modification of Embodiment 3 of the Invention>
(1) Other failure detection methods (1)
In the circuit that reads the data stored in the CAM cell described above, in order to read the data stored in the CAM, as shown in the description of FIG. Both of them need to be brought into a high impedance state after being raised to a high level, and a circuit for this purpose is included in the flow of data input to the CAM. By adding this read circuit, the conversion time of the TLB using this CAM increases, or the access time of the cache memory increases. In order to prevent such conversion time from increasing, the following method is adopted.
[0063]
In this failure analysis, the VA stored in the CAM is stored in a separate storage circuit (not shown). In the failure analysis operation, this VA is input to the CAM, and the read data is a predetermined entry. Confirm. In this process, when the entry is not a predetermined one, or when it is determined that there is no matching data and there is a mistake, it can be detected that the entry has a failure. Here, the address of the CAM entry to be stored separately can be simply stored in the data RAM section of the TLB or cache memory. However, if VA is stored in the data RAM section, the number of columns (memory cell columns) in the data RAM section increases by the stored data, and the load on the word line increases and the data read time increases. In order to avoid this, another high-speed memory (that is, it is not common to the word line of the data RAM section, and it is an integrated memory such as providing this memory adjacently and sharing a decoder). (Preferably) and stored and read out during failure analysis.
[0064]
(2) Other failure detection methods (2)
The method of ensuring the reliability and adding the parity bits Pcm and Prm and the method of detecting the double match are described in the second embodiment. This is to ensure data reliability after an error has occurred. Other failure detection methods described above (Part 1 is applied to detect and eliminate data in error by comparing data stored in CAM with VA stored separately) Can reduce the occurrence of errors and reduce the processing associated with the occurrence of errors.
[0065]
<Embodiment 4 of the Invention>
FIG. 12 shows a configuration example of the novel TLB of the present invention. The conventional TLB has a function to convert the virtual address VA to the real address PA. However, in the multitask system, task IDs are added one after another, and all ID numbers are used and used once. It may be necessary to assign an ID number to a new task. In this way, when an ID number that has been used once is assigned to a new task, a mechanism that prevents the use of CAM cell data stored with the corresponding ID number is required. Conventionally, all TLB data has been disabled. However, if the scale of the TLB or cache memory increases, if all data cannot be used in this way, valid data cannot be used, so there is no matching data while new data is written, and the hit rate is high. In addition to the decrease, the data writing operation is also wasted. It goes without saying that it is desirable not to use data of only the newly assigned ID.
[0066]
In order to have this function, in this embodiment, the ID CAM is disconnected, and first, a method of checking the coincidence between the ID data and the VA data in parallel is adopted. In this way, the power consumption increases by that amount, but the decrease in the operation speed is small, and the ID CAM unit is provided with a function of prohibiting reading processing for a desired ID by providing an ID V bit (Valid bit). be able to. As a result, even if the ID increases and a new ID needs to be used, the processing can be continued without causing a decrease in the performance of the TLB or the cache memory. In addition, a symbol (encoding bit) is added so that the position (entry) where the ID selected by the input data exists can be identified, and the line number prohibited to be used by the ID V bit can be read. As a result, it has become possible to easily and efficiently select a row in which data is written.
[0067]
In this embodiment, an ID V bit is provided to prohibit read processing. If the V bit indicates a row in which read processing is prohibited, the TLB memory area can be efficiently used by preferentially rewriting the row when data is newly written. However, CAM prohibits a plurality of lines from matching input data. The feature of this embodiment is that this prohibition restriction is removed. For this purpose, the V bit of the entry selected by the CAM decoder can be read. As a result, the V bit is checked in advance, and the entry to be rewritten based on the V bit can be selected.
[0068]
The valid bit V indicating that the data is valid will be described. If the V bit can be changed for each process ID, the ID can be switched without being limited by the number of IDs. That is, when the ID is changed, if the V bit is invalidated all at once, the ID of that number can be used for a new process to start processing. For this purpose, it is only necessary to perform coincidence detection using only the ID and invalidate the coincident V bit. That is, input other than ID is not compared, and the potential of the word line of the data RAM may be held at a low level even if a match is detected when this comparison is performed. This makes it possible to invalidate the V bit for each ID within a short time.
[0069]
In the present embodiment, the V bit data of the desired entry can be read out by the decoder. As a result, the entry in which the V bit is invalid is checked in advance, and the data is updated in preference to the entry in which the V bit is invalid when the CAM data is updated. By this method, the time required for the V bit check at the time of data update can be saved, and an entry storing invalid data can be preferentially selected to update the data, thereby reducing the invalid area of the CAM data.
[0070]
Although a separate decoder may be provided for reading by the V-bit decoder, a NAND circuit 91 is provided as shown in FIG. 12 and only one V bit is read by setting the input 1 of the NAND circuit to the “low” level. In addition, data can be written to the CAM by setting the terminal to the “high” level. As a result, the decoder can be shared.
[0071]
<Modification of Embodiment 4 of the Invention>
The present embodiment provides a method for detecting at high speed that the V bit is invalid. The configuration shown in FIG. 13 is such that only one MOSFET is provided for each V-bit read word line, and only one MOSFET is connected to the data line. In FIG. 13, one MOSFET is indicated by a white circle. As a result, the encoder portion can perform a CAM operation with the V bit, and can detect in parallel a row in which the V bit is in a read-inhibited state (invalid state). However, the method of creating such an encoding bit is in a trade-off relationship that the area of the encoding section increases in proportion to the number of lines (the number of entries). In this embodiment, in order to suppress the area increase, the CAM used for the V-bit check is divided into a plurality of blocks. For example, in this embodiment, the number of rows included in the block is set to 8, and a circuit is configured that is high-speed and suppresses an increase in the area of the V-bit check circuit.
[0072]
<Application example>
Although various TLBs and technologies applied thereto have been described above, these technologies are widely applicable to general associative memories (CAM). For example, the present invention can be applied to a cache memory using CAM. FIG. 15 shows a computer system having such a cache memory. Access from the central control unit (CPU) 101 to the virtual address cache memory 102 is directly performed by a virtual address. The virtual address cache memory 102 uses the CAM of the present invention. In order to access the data in the memory unit 108 from the CPU, the memory control unit 106 converts the virtual address into a real address. The TLB already described is used for this conversion. The cache memory or memory unit data is accessed using the converted address.
[0073]
【The invention's effect】
According to the present invention, when the circuit for accelerating the potential of the coincidence detection signal line is provided in the associative memory device, the associative memory device can perform the coincidence detection operation at high speed.
[0074]
Furthermore, according to the present invention, when the associative memory device also stores the parity bit of the data stored therein, it is possible to prevent erroneous detection of coincidence even if a failure occurs in the stored data.
[Brief description of the drawings]
FIG. 1 is a schematic block diagram of a TLB according to the present invention.
FIG. 2 is a circuit diagram of a CAM section of the TLB of FIG.
3 is a circuit diagram of a reference voltage generation circuit used in the circuit of FIG.
4 is an operation waveform diagram of a coincidence detection circuit in the circuit of FIG. 2. FIG.
FIG. 5 is a circuit diagram of a front CAM unit of the TLB of FIG. 1;
6 is a circuit diagram of a sense amplifier suitable for a sense & output circuit in the TLB of FIG. 1;
7 is a circuit diagram of another sense amplifier suitable for the sense & output circuit in the TLB of FIG. 1. FIG.
FIG. 8 is a circuit diagram of still another sense amplifier suitable for the sense & output circuit in the TLB of FIG. 1;
FIG. 9 is a circuit diagram of another CAM cell that can be used in the TLB of FIG. 1;
FIG. 10 is a diagram showing the structure of data stored in another TLB according to the present invention.
FIG. 11 is a circuit diagram of the main part of still another TLB according to the present invention.
FIG. 12 is a schematic block diagram of still another TLB according to the present invention.
FIG. 13 is a schematic block diagram of still another TLB according to the present invention.
FIG. 14 is a schematic block diagram of a microprocessor to which the TLB of FIG. 1 is applied.
15 is a schematic block diagram of a microprocessor to which the CAM in the TLB of FIG. 1 can be applied.
FIG. 16 is a schematic diagram of a double coincidence detection circuit usable in a TLB according to the present invention.
FIG. 17 is a diagram showing the structure of another data stored in the TLB according to the present invention.
FIG. 18 is a diagram showing another structure of further data stored in the TLB according to the present invention.
FIG. 19 is a circuit diagram of the main part of still another TLB according to the present invention.
[Explanation of symbols]
356 ... Acceleration circuit

Claims (2)

複数ビットの入力信号を並列に供給するための複数のデータ線と、
それぞれ上記複数のデータ線の内の対応する一つに接続された複数のメモリセルと、
該複数のメモリセルに対応して設けられた一致検出信号線と、
それぞれ上記複数のメモリセルの内の対応する一つと上記一致検出信号線とを並列に接続するための複数のMOSトランジスタと、
上記一致検出信号線に接続され、その電位を検出するための一致検出回路とを有する連想記憶装置を有し、
各メモリセルは、そのメモリセルに対応するデータ線から供給される一つの入力ビットに応答して、その供給された入力ビットとそのメモリセルに記憶した情報とが一致したか否かを表す一致検出信号もしくは不一致検出信号をそのメモリセル内の所定のノードに切り換えて出力し、
各MOSトランジスタは、対応するメモリセルの上記所定のノードに接続されたゲートと、上記一致検出信号線に接続されたドレインと、所定の電位が供給されたソースとを有し、
上記一致検出回路は、
上記一致検出信号線の電位と参照電位との差を検出する差動増幅回路と、
加速回路とを有し、
上記加速回路は、データ一致検出の開始時に上記一致検出信号線の電位を参照電位近くまで急速に引き上げ、上記複数のメモリセルの全てが一致検出信号を出力したために上記複数のMOSトランジスタが全てオフとなった後は、上記一致検出信号線の電位を上記参照電位より大きな電位に引き上げ、かつ、上記複数のメモリセルの少なくとも一つが不一致検出信号を出力したために上記複数のMOSトランジスタの少なくとも一つがオンになった後は、上記一致検出信号線の電位を上記参照電位より小さな値にする電流を上記一致検出信号線に供給する半導体集積回路。
A plurality of data lines for supplying a plurality of bit input signals in parallel;
A plurality of memory cells each connected to a corresponding one of the plurality of data lines;
A coincidence detection signal line provided corresponding to the plurality of memory cells;
A plurality of MOS transistors for connecting the corresponding one of the plurality of memory cells and the coincidence detection signal line in parallel;
An associative memory device connected to the coincidence detection signal line and having a coincidence detection circuit for detecting the potential thereof;
Each memory cell responds to one input bit supplied from the data line corresponding to the memory cell, and indicates whether or not the supplied input bit matches the information stored in the memory cell. Switch the detection signal or mismatch detection signal to a predetermined node in the memory cell and output it,
Each MOS transistor has a gate connected to the predetermined node of the corresponding memory cell, a drain connected to the coincidence detection signal line, and a source supplied with a predetermined potential.
The coincidence detection circuit
A differential amplifier circuit for detecting a difference between the potential of the coincidence detection signal line and a reference potential;
An acceleration circuit,
The acceleration circuit rapidly raises the potential of the coincidence detection signal line to near the reference potential at the start of data coincidence detection, and since all of the plurality of memory cells output coincidence detection signals, the plurality of MOS transistors are all turned off. After that, the potential of the coincidence detection signal line is raised to a potential larger than the reference potential , and at least one of the plurality of MOS transistors outputs a mismatch detection signal, so that at least one of the plurality of MOS transistors After being turned on, a semiconductor integrated circuit that supplies a current that makes the potential of the coincidence detection signal line smaller than the reference potential to the coincidence detection signal line.
上記加速回路は、上記一致検出信号線へ所定の時間電流を供給した後に、その供給を停止し、
上記差動増幅回路は、上記停止の後に、検出動作を開始する請求項1記載の半導体集積回路。
The acceleration circuit stops supplying the current after supplying the current to the coincidence detection signal line for a predetermined time,
The semiconductor integrated circuit according to claim 1, wherein the differential amplifier circuit starts a detection operation after the stop.
JP18236096A 1996-07-11 1996-07-11 Semiconductor integrated circuit Expired - Fee Related JP3686480B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18236096A JP3686480B2 (en) 1996-07-11 1996-07-11 Semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18236096A JP3686480B2 (en) 1996-07-11 1996-07-11 Semiconductor integrated circuit

Publications (2)

Publication Number Publication Date
JPH1027481A JPH1027481A (en) 1998-01-27
JP3686480B2 true JP3686480B2 (en) 2005-08-24

Family

ID=16116960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18236096A Expired - Fee Related JP3686480B2 (en) 1996-07-11 1996-07-11 Semiconductor integrated circuit

Country Status (1)

Country Link
JP (1) JP3686480B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4773631B2 (en) * 2001-05-25 2011-09-14 富士通セミコンダクター株式会社 Associative memory device and precharge method
US6750677B2 (en) 2001-06-04 2004-06-15 Matsushita Electric Industrial Co., Ltd. Dynamic semiconductor integrated circuit
JP2004355691A (en) 2003-05-28 2004-12-16 Hitachi Ltd Semiconductor device
JP4355188B2 (en) 2003-10-03 2009-10-28 株式会社日立製作所 Packet transfer device
US7761774B2 (en) * 2005-10-28 2010-07-20 Qualcomm Incorporated High speed CAM lookup using stored encoded key
US20070247885A1 (en) 2006-04-25 2007-10-25 Renesas Technology Corp. Content addressable memory
CN102197435B (en) * 2008-10-28 2014-08-13 国际商业机器公司 Parallel content addressable memory
JP4793741B2 (en) 2009-07-24 2011-10-12 エヌイーシーコンピュータテクノ株式会社 Error correction circuit and error correction method

Also Published As

Publication number Publication date
JPH1027481A (en) 1998-01-27

Similar Documents

Publication Publication Date Title
US5034636A (en) Sense amplifier with an integral logic function
EP0337393B1 (en) 2-cell/1-bit type EPROM
US5179536A (en) Semiconductor memory device having means for replacing defective memory cells
US5428571A (en) Data latch circuit having non-volatile memory cell equipped with common floating gate and stress relaxing transistor
JP3401522B2 (en) Fuse circuit and redundant decoder circuit
EP0293339A1 (en) Nonvolatile memory device with a high number of cycle programming endurance
KR930009539B1 (en) Semiconductor memory device
GB2123587A (en) A semiconductor rom
JP3686480B2 (en) Semiconductor integrated circuit
KR940009079B1 (en) Semiconductor device for preventing malfunction caused by noise
JP3542649B2 (en) Semiconductor memory device and operation method thereof
JPH11512550A (en) Multiple signal validation detection method and apparatus
KR100257059B1 (en) Semiconductor integrated circuit
JPS6237477B2 (en)
KR950010312B1 (en) Semiconductor memory device with discriminator for diagnostic mode of operation
KR100313613B1 (en) Non-volatile semiconductor memory device
US5397946A (en) High-voltage sensor for integrated circuits
JPH05209942A (en) Semiconductor integrated circuit
JPH0766675B2 (en) Programmable ROM
US5493537A (en) Semiconductor memory with edge transition detection pulse disable
US6952371B2 (en) Method of programming a programmable element in a memory device
JPH04368695A (en) Semiconductor integrated circuit
US7046562B2 (en) Integrated circuit reset circuitry
US20180276093A1 (en) Memory system
JP2954079B2 (en) Non-volatile semiconductor memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050603

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090610

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100610

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110610

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110610

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110610

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120610

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120610

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130610

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130610

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees