(57)【特許請求の範囲】
【請求項１】
複数ビットの入力信号を並列に供給するための複数のデータ線と、
それぞれ上記複数のデータ線の内の対応する一つに接続された複数のメモリセルと、
該複数のメモリセルに対応して設けられた一致検出信号線と、
それぞれ上記複数のメモリセルの内の対応する一つと上記一致検出信号線とを並列に接続するための複数のＭＯＳトランジスタと、
上記一致検出信号線に接続され、その電位を検出するための一致検出回路とを有する連想記憶装置を有し、
各メモリセルは、そのメモリセルに対応するデータ線から供給される一つの入力ビットに応答して、その供給された入力ビットとそのメモリセルに記憶した情報とが一致したか否かを表す一致検出信号もしくは不一致検出信号をそのメモリセル内の所定のノードに切り換えて出力し、
各ＭＯＳトランジスタは、対応するメモリセルの上記所定のノードに接続されたゲートと、上記一致検出信号線に接続されたドレインと、所定の電位が供給されたソースとを有し、
上記一致検出回路は、
上記一致検出信号線の電位と参照電位との差を検出する差動増幅回路と、
加速回路とを有し、
上記加速回路は、データ一致検出の開始時に上記一致検出信号線の電位を参照電位近くまで急速に引き上げ、上記複数のメモリセルの全てが一致検出信号を出力したために上記複数のＭＯＳトランジスタが全てオフとなった後は、上記一致検出信号線の電位を上記参照電位より大きな電位に引き上げ、かつ、上記複数のメモリセルの少なくとも一つが不一致検出信号を出力したために上記複数のＭＯＳトランジスタの少なくとも一つがオンになった後は、上記一致検出信号線の電位を上記参照電位より小さな値にする電流を上記一致検出信号線に供給する半導体集積回路。
【請求項２】
上記加速回路は、上記一致検出信号線へ所定の時間電流を供給した後に、その供給を停止し、
上記差動増幅回路は、上記停止の後に、検出動作を開始する請求項１記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロプロセッサＬＳＩに搭載されるＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）もしくはキャッシュメモリに使用される連想記憶装置（以下、単にＣＡＭとよぶ）およびそれに適した差動増幅回路に関する。
【０００２】
【従来の技術】
最近のマイクロプロセッサＬＳＩには、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）もしくはキャッシュメモリが搭載され、それらはＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）で構成されている。例えば、ＴＬＢは、プログラムにより指定された複数の仮想アドレスを記憶するＣＡＭ部と、それらの仮想アドレスに対するアドレス変換結果（実アドレス）を保持するＲＡＭ部とからなり、仮想アドレスに対するアドレス変換が必要になったときに、このＴＬＢを参照して、その仮想アドレスに一致する仮想アドレスがＣＡＭ部に記憶されている場合、その仮想アドレスに対する変換済みの実アドレスをＲＡＭ部より出力する。これによりアドレス変換を繰り返す必要をなくしている。
【０００３】
ＴＬＢにはフルアソシアティブ方式とセットアソシアティブ方式が主に用いられている。従来のフルアソシアティブ方式の典型的なＴＬＢは、入力された仮想アドレスと、ＴＬＢ内のＣＡＭ部に記憶した複数の仮想アドレスの各々との一致を調べ、それらの記憶された複数の仮想アドレスの中に、入力された仮想アドレスと一致した仮想アドレスが存在するとき、その一致した仮想アドレスに対応してＲＡＭ部に記憶された実アドレスを出力する。このように、従来のフルアソシアティブ方式の典型的なＴＬＢは、ＣＡＭ部に記憶している全ての仮想アドレスと入力された仮想アドレスとを比較する。
【０００４】
従って、このようなＴＬＢは、上記の比較を行うための一致検出回路の数が多いこと、これに伴ってＴＬＢの回路面積が増えること、消費電力が大きくなること、上記比較においては、ＣＡＭ部内にて比較が行われ、そこに記憶されているデータ（今の場合には仮想アドレス）はＣＡＭ部の外部に読みだされることはないのでＣＡＭ部に記憶されたデータの信頼性の確認やＣＡＭ部デバイスの故障診断ができないこと等が欠点とされている。また、回路面積の増加を抑制するために、上記比較には簡単な一致検出回路が用いられ、動作速度は二義的に考慮されることが多い。このため、データ（今の場合には、仮想アドレス）の比較に要する時間は長くかかることになる。しかし、記憶しているデータすべてにわたって比較するのでセットアソシアティブ方式のＴＬＢくらべてデータの一致確率が高くなる長所をもっている。
【０００５】
上記フルアソシアティブ方式のＴＬＢの比較を高速化するための従来技術として、検索データと記憶データとの比較を行なうための一致検出回路をＣＡＭ部の各メモリセルごとに備えることも提案されている（特開昭５９ー２３１７８９）。しかし、この技術では、一致検出回路の総数が大きくなるという問題がある。
【０００６】
この一致検出回路を高速化する技術が、ＩＥＥＥ  Ｊｏｕｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  ｖｏｌ．２８、Ｎｏ．１１  ｐｐ．１０７８−１０８３（１９９３）に報告されている。この従来技術では、高速な一致検出のために、一致検出信号線のほかに、参照信号線を一致検出信号線に並行して設け、かつ、電圧供給信号線も一致検出信号線に並行して設けて、一致検出のＭＯＳＦＥＴで差動型のＮＯＲ回路を構成している。この従来技術のＴＬＢは、高速に動作するが、配線数が従来のＴＬＢでは１本であるのに対して３本必要である。したがって、回路面積が大きい。
【０００７】
【発明が解決しようとする課題】
このように従来のＣＡＭでは、一致検出回路の動作速度、ＣＡＭ部の回路面積、消費電力に改善の余地がある。これらの問題を解決する技術として、本出願人は、特願平７ー５８４９１号（平成７年３月１７日出願）において、ＴＬＢに適した改善されたＣＡＭを提案し、さらに、特願平７ー２３１０２４号（平成７年９月８日出願）において、キャッシュメモリに適したＣＡＭを提案した。
【０００８】
また、従来のフルアソシアティブ方式のＴＬＢや仮想アドレスのキャッシュメモリでは、そこに保持されたデータに障害が発生すると、本来ヒットすべきでない入力データに対してヒットすることが生じる。
【０００９】
本発明の目的は、より高速なＣＡＭを有する半導体集積回路を提供することである。
【００１０】
本発明の他の目的は、保持されたデータに障害が発生したときに、間違ってヒットすることがないＣＡＭを有する半導体集積回路を提供することである。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明による半導体集積回路に設けた連想記憶装置は、一致検出信号線の電位を検出するための一致検出回路内に、一致検出信号線の電位と参照電位の電位差を検出する差動増幅器と加速回路とを有し、
この加速回路は、データ一致検出の開始時に上記一致検出信号線の電位を参照電位近くまで急速に引き上げ、上記複数のメモリセルの全てが一致検出信号を出力したために上記複数のＭＯＳトランジスタが全てオフとなった後は、上記一致検出信号線の電位を上記基準電圧より大きな電位に引き上げ、かつ、上記複数のメモリセルの少なくとも一つが不一致検出信号を出力したために上記複数のＭＯＳトランジスタの少なくとも一つがオンになった後は、上記一致検出信号線の電位を上記基準電圧より小さな値にする電流を上記一致検出信号線に供給するように構成される。
【００１２】
さらに上記他の目的を達成するために、本発明による半導体集積回路に設けた連想記憶装置は、複数のメモリセルに記憶されたデータのパリティビットもそれらのメモリセル内に記憶する。
【００１３】
【発明の実施の形態】
以下、本発明に係るＣＡＭを図面に示したいくつかの実施の形態を参照してさらに詳細に説明する。なお、以下においては、同じ参照番号は同じものもしくは類似のものを表わすものとする。また、第２の実施の形態以降では、第１の実施の形態との相違点を主に説明する。
【００１４】
＜発明の実施の形態１＞
まず、本発明に係るＣＡＭを使用したＴＬＢを有するマイクロコンピュータシステムを説明する。図１４において、マイクロプロセッサユニット（ＭＰＵ）１００は、中央処理ユニット（ＣＰＵ）１０１からメモリ制御ユニット１０６、実アドレスキャッシュ１０４を介して、メモリユニット１０８のデータをアクセスし、入出力制御ユニット１０５を介して外部記憶装置１０９をアクセスする。メモリ制御ユニット１０６はＣＰＵから与えられる仮想アドレスを実アドレスに変換し、変換された実アドレスで実アドレスキャッシュ１０４やメモリユニット１０８のデータをアクセスする。メモリ制御ユニット１０６は、この仮想アドレスと、上記変換により得られた実アドレスとを保持するＴＬＢ２００を有し、後に同じ仮想アドレスがＣＰＵから与えられたときには、このＴＬＢ２００内の、実アドレスを使用する。このときには、メモリ制御ユニット１０６内でのアドレス変換を行わずに、実アドレスを得ることができる。このＴＬＢは、本発明によるＣＡＭにより構成される。
【００１５】
図１はこのＴＬＢの概略ブロックを示す。図において、ＣＡＭ部（１）７００、ＣＡＭ部（２）７１０は複数のアドレス情報を保持するための、マトリックスに配列された複数のＣＡＭセルからなり、各ローは、一つのアドレス情報を保持する。ＣＡＭ部（１）７００、ＣＡＭ部（２）７１０は、これらのアドレス情報を分割して保持する。以下では、これらのＣＡＭ部にまとめて言及するときには、単にＣＡＭ部ということがある。一致検出部７３０は、それぞれ一つのローに対応して設けられた複数の一致検出回路からなり、各一致検出回路は、信号ＣＰＵから線９２を介して供給されたアドレス情報とＣＡＭ部７００、７１０の内のその一致検出回路が接続された一つのローに保持されたアドレス情報との一致を検出する。ＣＰＵから送られてくるアドレス情報およびＴＬＢ内に記憶されるアドレス情報には、仮想アドレス（以下ＶＡと書く）そのほかの情報が含まれる。
【００１６】
データＲＡＭ部７５０は、マトリックス状に配列された複数の実アドレス保持用のメモリセルを有するＳＲＡＭメモリからなり、各ローは一つの実アドレスを保持し、ＣＡＭ部７００、７１０の一つのローに対応して設けられ、そのローに対応する一致検出回路が一致を検出したときに、そのローに対応するデータＲＡＭ部７５０内のローに保持された実アドレスを読み出し、センス＆出力回路７６０がこれをセレクタ７７０を介して出力する。
【００１７】
前置ＣＡＭ部７８０は、ＣＡＭ部７００、７１０に保持された複数のアドレス情報より少ないアドレス情報を保持するもので、ＣＡＭ部７００、７１０での一致検出より前に、動作する。このために、前置ＣＡＭ部７８０も、アドレス情報を保持するための、マトリックス状に配列されたＣＡＭセルからなるが、ＣＡＭ部７００、７１０のローよりははるかに少ない、数個のローよりなり、さらに、これらのＣＡＭセルは、ＣＡＭ部７００、７１０のように二つの部分に分割はされていない。なお、一致検出部８３０は、前置ＣＡＭ部７８０の一つのローにそれぞれ対応して設けられた一致検出回路からなり、それぞれは、一致検出部７３０内の一致検出回路と同様の構造を有する。
【００１８】
データ記憶回路７９０は、前置ＣＡＭ部７８０の一つのローに対応してそれぞれ設けられた、実アドレス保持用の複数のレジスタからなり、一致検出部８３０内のいずれかの一致検出回路が、線９２から供給されたアドレス情報に対する一致を検出したときには、その一致検出回路が接続されたローに対応するレジスタ内の実アドレスを出力する。電源制御回路８１は、一致検出部８３０で一致が検出されたときに、一致検出部７３０への電源供給を停止し、その動作を中止させ、それにより電力低減を図る。
【００１９】
書き込み制御部８００は、ＣＰＵから線９４を介して供給される書き込みデータをデータ記憶回路７９０あるいはデータＲＡＭ部７５０に書き込む回路である。デコーダ６９は、ＣＰＵから線９０を介して供給されるローセレクト信号により指定される一つのローを選択し、ＣＰＵから線９２を介して供給されるアドレス情報を書き込むべきローと、ＣＰＵから線９４を介して供給されるデータを書き込むべき、データＲＡＭ部７５０内のローを選択する。同様に、デコーダ６８は、ＣＰＵから線９０を介して供給される上記ローセレクト信号により指定される、前置ＣＡＭ内の一つのローとデータ記憶部回路７９０内の一つのレジスタを、それぞれアドレス情報および書き込みデータの書き込みのために選択する。
【００２０】
以上の回路のブロック構造は、先に出願した特願平７ー５８４９１号に記載のものと基本的に同じであるが、本実施の形態は、主として一致検出部７３０、８３０、センス＆出力部７６０がより高速に動作するように構成されている点でこの先願記載のものと異なる。
【００２１】
図２には、ＣＡＭ部（１）７００、ＣＡＭ部（２）７１０の回路構造を示す。７０はＣＡＭ部（１）７００の要部を示し、２３は、一つのローに属する複数、例えばおおよそ３０個のＣＡＭセルの一つを示す。１０は、このメモリセルが属するカラムに設けられたインバータである。７１はＣＡＭ部（２）７１０の要部を示し、９３は、同じローに属するＣＡＭ部（２）７１０の複数のＣＡＭセルの一つを示す。８７は、一致検出部７３０内のこのローに対するＣＡＭ部（２）７１０のための一致検出回路である。ＣＡＭ部（２）７１０は各ローに対して数ビット、ここでは３ビットのメモリセルからなる。一致検出回路８７は、これらのメモリセルの出力８４、８５、８６が入力されるＮＡＮＤ回路により構成されている。７３は、一致検出部７３０内のこのローに対するＣＡＭ部（１）７００とＣＡＭ部（２）７１０のための一致検出回路で、差動増幅回路３２と、出力回路４３と、トランジスタ３０、３１、３３、３５、３６とからなる。以上の述べた要素を含むブロック７２がＴＬＢを構成するＣＡＭアレーの１行（１エントリー）を構成する。本実施例では回路ブロック７２が６４行分設けられてＣＡＭアレー部を構成する。端子２１はＣＰＵに接続される線９２（図１）の一つで、ＣＰＵから供給されるアドレス情報の１ビットが入力される。インバータ１０は、この１ビットの信号２１の補の信号を線２２に生成する。
【００２２】
このＣＡＭの構造の内、本実施の形態では、一致検出回路７３内に加速回路３５６以外は、先願特願平７ー５８４９１号に記載の回路と基本的に同じであり、それらの部分の回路の動作と特徴はその先願に記載したとおりである。この加速回路３５６は、トランジスタ３５、３６からなり、差動増幅回路３２での検出動作を加速する働きを有する。さらに、後に説明するように、差動増幅回路３２の端子３７に供給する参照電圧を発生する回路を工夫し、差動増幅回路３２での消費電力を低減するようになっている。
【００２３】
以下、図２の回路の動作を説明する。入力アドレス情報の１ビットがデータ線２１に印加され、それに接続されインバータ１０によってその入力信号の補の信号が補のデータ線２２に発生される。データ線２１、２２上の一対の相補の信号はＣＡＭセル２３に導かれる。例えば、データ線２１の入力信号が高レベルの信号であってＣＡＭセル２３の記憶データがノード１８が高レベルであるときにはＮ型ＭＯＳトランジスタ（以下、ＮＭＯＳと呼ぶ）１９が導通し、データ線２２上の入力信号の補信号である低レベルの信号をＮＭＯＳ２６のゲートに供給するので、ＮＭＯＳ２６はＯｆｆ状態となる。この状態をデータが一致したとする。データが不一致のときを説明する。データ線２１の入力データが低レベルで、ＣＡＭセル２３のノード１８が高レベルであるときを説明する。このときにもＮＭＯＳ１９が導通して高レベルの信号をＮＭＯＳ２６のゲートに導き、ＮＭＯＳ２６は導通する。ＣＡＭセル２３のノード１８が低レベルであるときには、上述の入力信号との関係が入れ替わるのみなので説明を省略する。すなわち、ＣＡＭ部ではデータの一致と不一致とがＮＭＯＳ２６の非導通と導通によってしめされる。
【００２４】
ＣＡＭ部（１）７００には入力されるアドレス情報のビット数よりＣＡＭ部（２）７１０のビット数（今の例では、３）だけ少ない数だけ、図２の７０で示す要素回路が設けられ、これらの全ての要素回路のＮＭＯＳ２６に相当するＮＭＯＳのドレインは、一致検出信号線２５に並列に接続されている。このように構成すると入力されたアドレス情報の内、全てのビットマイナス３ビットがＣＡＭセルに記憶されたアドレス情報に一致したときのみ一致検出信号線２５は接地端子から切り離される。なお、ワード線２４はＣＡＭセル２３にデータを書き込むためのもので、ワード線２４を高レベルに持ち上げることでＣＡＭセル２３にデータ線対２１、２２上のデータを書き込むことができる。
【００２５】
上述したように、ＣＡＭ部（１）に入力されるアドレス情報ビットとＣＡＭ部（１）内の同数のＣＡＭセルの記憶データとがすべて一致したときには一致検出信号線２５は接地端子から切り離されているので、Ｐ型ＭＯＳトランジスタ（以下、ＰＭＯＳと呼ぶ）３０、３１、３５、ＮＭＯＳ３６によって電流を供給すると、一致検出信号線２５の電位は引き上げられる。時間が十分経過したときのこの一致検出信号線２５の最終到達電位は正の電源電圧になる。ここでＮＭＯＳ３３は、一致検出動作の開始時に一致検出信号線２５を接地電位にして検出条件を整える働きをする。
【００２６】
入力アドレス情報とＣＡＭセルのデータとが１ビットのみ不一致のときの一致検出信号線２５の変化を説明する。ＣＡＭ部（２）の３ビットが全て一致すると仮定する。後に説明するように、この場合には、ＰＭＯＳ３０のゲートにはローレベルが供給される。入力アドレス情報とＣＡＭ部（１）内の一つのローに属するＣＡＭセルのデータとが１ビットのみ不一致のときにＰＭＯＳ３０、３１、３５、ＮＭＯＳ３６によって供給される電流を１個のＮＭＯＳ２６に流れる電流にほぼ等しく設計しておくと、一致検出信号線２５の電位は正の電源電圧の約１／２に達してそれ以上には上昇しなくなる。この供給電流によってこのときの到達電位は制御できるので、この供給電流の制御によってこの到達電位を接地電位よりＮＭＯＳのＶｔだけ高い電位に設定する。このようにすると差動増幅回路３２には殆ど電流が流れなくなる。すなわち、一つのローのＣＡＭセルの全てで一致が生じるときのみ差動増幅器３２に電流が供給され、少なくとも一つのＣＡＭセルで不一致が生じるとのときには電流がほとんど流れない。一致するのはＣＡＭの１エントリ（ＣＡＭセルマトリックスの１行をエントリと通称されるので以下エントリと書く）のみで残りのエントリーは全てデータが不一致であるからこの設定によって消費電力は大幅に削減される。
【００２７】
差動増幅器３２の参照電位（端子３７に供給する電位）についてはあとで述べるが、１個のデータのみ不一致のときの一致検出信号線２５の電位よりわずかに高い電位に設定する。ＮＭＯＳ３６のゲートには所定の電位が与えられており、ＰＭＯＳ３５から供給される電流によって信号線２５が引き上げられる電位の上限を決める働きをする。このようにするとＰＭＯＳ３５から供給される電流によって信号線２５を所定の電位まで短時間で引き上げることができ、差動増幅器３２の一致検出を高速化することができる。信号線２７、２８、２９はそれぞれ一致検出信号線への電流を供給するＰＭＯＳ制御信号線、差動増幅器の電流制御用のＮＭＯＳ３４に供給する信号線、ＮＭＯＳ３６のゲート電位供給信号線である。
【００２８】
図３は図２の差動増幅回路３２の端子３７に与える参照電圧およびＮＭＯＳ３６のゲートに与える電圧を発生する回路で、差動増幅回路３２でのデータ一致検出をより高速におこなうように構成されている。ＮＭＯＳ１０２は図２のＣＡＭセル２３内のＮＭＯＳ２６と同じ形状を有し、そのゲートに与えられる電圧（Ｖｃｃ−Ｖｔ）は同セル２３の一致検出電圧の高レベル（データが不一致のときにＮＭＯＳ２６のゲートに供給される電圧で、Ｖｃｃは正の電源電圧、ＶｔはＮＭＯＳ２６のしきい電圧である）の電位であって、この電位供給によって、ＣＡＭセルが不一致のときにながれる電流と等しい電流をＰＭＯＳ１０３に供給する。１１個のＭＯＳを用いるＣＡＭセルではこの電位はＶｃｃである。このＮＭＯＳに流れる電流はＰＭＯＳ１０３と同じ形状のＰＭＯＳを介して同電流と等しい電流がＮＭＯＳ１０５、１０６に供給されて、図２のＮＭＯＳ３６に与えるゲート電圧ＶＲ１を線２９に発生させる。この回路によってゲート電圧ＶＲ１はＮＭＯＳのしきい電圧Ｖｔの約２倍の電位に設定される。ゲート電圧ＶＲ１は厳密にこの電位である必要はなく、別途発生させた電圧を供給してもよいが、Ｖｔの２倍の電位に設定すると後で述べる参照電圧ＶＲの電位がＶｔに設定され、差動増幅器１１３の消費電力が少なく、かつ高速動作する電位となる。ゲート電圧ＶＲ１はゲート１０８に供給される。ＮＭＯＳ１０９はＮＭＯＳ１０２と同じ形状をもち、ＰＭＯＳ１１０は一致検出信号線への電流供給を行うＰＭＯＳ３５（図２）より約２０％供給電流が大きい。また、ＰＭＯＳ３５は所定の時間に一致検出信号線２５に電流を供給するもので、そのゲートは電流が供給される間は接地レベルに保持される。
【００２９】
図４は、図３の回路の主要ノードの電位の時間変化を示している。信号Ｖａｃｃは、信号一致検出信号線２５への供給電流を制御する、線２７を介してＰＭＯＳ３１、３５に印加される信号で、検出加速パルスとも呼ぶ。この信号が、Ｖｃｃから接地レベルに変化すると一致信号線２５に接続されているＣＡＭセル２３がすべて一致しているときには、図４に”一致”としめした電圧波形のように一致検出信号線２５の電位は時間とともに上昇する。ここで、Ｖａｃｃが接地レベルに引き下げられた時刻から参照電圧ＶＲに引き上げられるまでの時間変化が急速であるのは、参照電圧ＶＲまではＮＭＯＳ３６を介してＰＭＯＳ３５から電流が供給されるためである。一致検出信号線２５の電位がＶＲに達するとＮＭＯＳ３６のゲートとソース間電圧がしきい電圧Ｖｔとなるので、ＮＭＯＳ３６を介する電流の供給は停止し、それにより一致検出信号線２５の電位の上昇速度は低下する。一方、図４には、一致検出信号線２５に接続されたＣＡＭセルの内１個のみが不一致の時の同信号線電位の時間変化を”不一致”の記号で示している。このときにはＮＭＯＳ３６を介してＰＭＯＳ３５から電流は供給され続けるが、電流を供給するＰＭＯＳ１１０の電流がＰＭＯＳ３５より多いために、参照電圧ＶＲまでは上昇せずに電位上昇は停止する。一致検出信号線２５に接続されたＣＡＭセルが２個以上不一致のときにはその電位上昇がさらに小さくなることは容易に理解できる。
【００３０】
以上述べたように図２の回路では、一致検出を一致検出信号線２５の電位と参照電圧線ＶＲとの差によって検出でき、また、検出加速パルスＶａｃｃが接地レベルに引き下げられた直後はＮＭＯＳ３１、３６によって供給される電流によって一致検出信号線が参照電圧ＶＲまで高速に引き上げられるために一致検出動作が高速化される。また、不一致の一致検出信号線の電位は参照電圧ＶＲを越えることはないので、Ｖａｃｃを接地電位に保持する時間を厳密に限定する必要はなく、回路の制御が容易であることも本回路の特徴である。しかし、Ｖａｃｃが接地レベルにある期間はＭＯＳ３１、３６によって不一致の一致検出信号線２５に電流が供給され続けるので、消費電力削減には一致検出の信号が出力されれば速やかに高レベルにＶａｃｃを引き上げ電流の供給を停止することが望ましい。なお、参照電圧発生回路１０１は、図１の差動増幅回路３２以外の差動増幅器にも適用できる。
【００３１】
ここで、図２を用いて、ＣＡＭ部（２）７１０の働きを簡単に説明する。この回路は先願特願平７−５８４９１号に記載したものと実質的に同じである。ＣＡＭ部（２）７１０はアドレス入力（入力信号）の内の３ビット程度の信号が一致検出の対象にされる。そこに含まれるＣＡＭセル９３は、ＣＡＭ部（１）のメモリセル２３とほぼ同じ構造を有するが、回路の接地が異なっており、それぞれでの一致検出の結果、一致が検出されると、線８４、８５、８６がそれぞれハイレベルになる。ＣＡＭ（２）用の一致検出回路８７は、これらの信号線が全てハイの時のみに、対応する一致信号発生回路７３内のＰＭＯＳ３０にローレベルを供給して、この回路７３を駆動する。こうして、ＣＡＭ部（１）内の全一致検出回路７３の内の一部のみを駆動するようになっている。
【００３２】
図５は、前置ＣＡＭ部７８０の要部とそのための一致検出回路部８３０の要部を示す。図では、図２と同じ構造の要素には同じ参照番号を付けてある。図５と図２とから分かるように、前置ＣＡＭ部７８０は、ＣＡＭ部（１）７００と同じ構造を有する。前置ＣＡＭ部のための一致検出部８３０内の一致検出回路８３には、図２に示したＣＡＭ部（２）７１０のための一致検出回路８７がなく、これにともない、ＣＡＭ部のための一致検出回路７３内のＮＭＯＳ３０がない。しかし、一致検出部８３０内の一致検出回路８３にはＣＡＭ部のための一致検出回路７３内のＰＭＯＳ３５、ＮＭＯＳ３６からなる加速回路３５６が設けられているのは図２と同じである。従って、前置ＣＡＭ部７８０とそのための一致検出回路部８３０の回路動作は、ＣＡＭ部（１）７００、一致検出回路部７３０と同様なので説明は省略する。
【００３３】
図１のＲＡＭデータ部７５０は一般にはＳＲＡＭメモリにより構成できる。ＳＲＡＭでは、一般にメモリセルはフリップフロップの構造をし、一対のデータ線に接続される。センス＆出力回路７６０は、それぞれのデータ線対に対応して、その一対のデータ線の電圧を差動で検出するセンスアンプを有する。図６は、このようなセンスアンプに好適なセンスアンプを示す。この回路の特徴は差動増幅器の入力換算のオフセット電圧を軽減して高速に微小な電圧信号を差動増幅器で検出することにある。
【００３４】
さらに、詳しくは、ゲートに入力信号が接続され、ドレインが正の電源Ｖｃｃに、また、ソースは所定の電流を供給するＮＭＯＳ２０３、２０４に接続されたＮＭＯＳ２０１、２０２が設けられ、そのソース端子が差動増幅器を構成するＮＭＯＳ２０５、２０６のゲートにそれぞれ接続される。このとき、ＮＭＯＳ２０１、２０２のゲート・ソース間の電圧Ｖｇｓは電流が小さいときにはＮＭＯＳ２０３、２０４から供給される電流Ｉｅｆとの間にＩｅｆ＝Ｉｏ  ｅｘｐ（（Ｖｇｓ−Ｖｔ）／ｎｋＴ）の関係がある。すなわち、ＩｅｆをＮＭＯＳ２０３、２０４によって制御すれば、ＮＭＯＳ２０１、２０２のゲート・ソース間の電圧を任意に制御できる。
【００３５】
ここで、ＮＭＯＳ２０１、２０２、２０５、２０６、ＰＭＯＳ２２１、２２２で生じる出力端子２０７、２０８の電圧差をゼロになるように電流Ｉｅｆを制御すれば、これらの回路を構成するＮＭＯＳの特性に不一致があってもこれらが補正されて、あたかも完全に特性がそろった回路と同等の性能を実現できる。また、ＮＭＯＳ２０１、２０２に流す電流が上記の関係を逸脱する領域に多少入っても、両者の関係は一義的に確定するので、電流の調整によって同様の補正をおこなうことができることはいうまでもない。以下、回路の動作を詳細に説明する。
【００３６】
入力端子ＩＮ、ＩＮＢにはメモリ回路のデータ線対が接続され、メモリセルからの電流によって両線間には電位差が生じる。この電位差はデータの読み出し開始時には０Ｖであって、時間に比例して増加する。データ読み出し開始時のデータ線の電位は正の電源電圧Ｖｃｃである。データの読み出し開始以前にＶｃｓ、Ｖｓｗが高レベルに引き上げられ、ＮＭＯＳ２０１、２０２に電流が供給されるとＮＭＯＳ２０５、２０６のゲートには（Ｖｃｃ−Ｖｔ）の電位が与えられ出力端子２０７、２０８の電位を引き下げる。ＮＭＯＳ  ２０１と２０２、２０５と２０６、ＰＭＯＳ２２１、２２２の特性がそろっていれば、出力端子２０７、２０８の電位は等しいが、アンバランスがあるとそのアンバランスに応じて出力端子間に電位差が生じる。
【００３７】
例えば、端子２０８の電位が高くなったときにはその電位がＮＭＯＳ２０９を通してＮＭＯＳ２０３のゲートに供給されＩｅｆが増加する。これによってＮＭＯＳ２０５のゲート電位が引き下げられて出力端子２０７の電位が上昇して出力端子２０７、２０８間の電位差を減少させる。電位差の減少率はＮＭＯＳ２０５、２０６および２０３、２０４で構成する差動増幅器の電圧利得の逆数である。電圧利得は２段の差動増幅器で容易に２０ｄｂが得られ、入力換算のアンバランスは５ｍＶ以下になった。このように、アンバランスを補正したのち、入力信号の検出を開始する。まず、Ｖｓｗを低レベルにして出力端子２０７、２０８からＮＭＯＳ２０３、２０４のゲート端子を切り離す。しかし、ゲート電位は容量２１１、２１２によって保持される。この切り離しで生じるゲート電位の変化はＮＭＯＳ２０３、２０４が差動回路になっているので軽減される。この状態で入力端子ＩＮ、ＩＮＢに検出信号を接続するとアンバランスが補正された状態で入力信号を検出でき、高速に信号検出する回路が得られた。
【００３８】
＜発明の実施の形態１の変形例＞
（１）他のセンスアンプ（その１）
図７は、図６で記したセンスアンプとは、電流を供給する部分が異なる他のセンスアンプを示す。この図では、所定の電流を供給するために出力端子２０７、２０８の電圧の差を調べて、その差がゼロになるようにＥＰＲＯＭ等で用いられているフローティング  ゲート構造をもつＮＭＯＳ２１３、２１４のゲートに電圧を加えて、そのフローティングゲートの電圧を調整して、恒久的に出力端子間の電位差をゼロに設定する回路である。この方法によれば、集積回路を製造した時点で検査して、電流Ｉｅｆを設定するのみで恒久的にＭＯＳＦＥＴのデバイス特性の不一致を補正できる。
【００３９】
（２）他のセンスアンプ（その２）
図８は、図６で記したセンスアンプとは、電流を供給する部分が異なるさらに他のセンスアンプを示す。この図ではあらかじめＩｅｆを調整するＮＭＯＳ群２１５、２１６としてそれぞれ３個のＮＭＯＳを設けておき、これらの導通／非導通を制御することで供給するＩｅｆを制御する。このときには、図７で用いたフローティングゲートＮＭＯＳを導通させて接地電位にするか、正の電源電圧Ｖｃｃにするかに制御動作が単純化されるという特徴がある。また、Ｉｅｆを制御するＮＭＯＳ群２１５、２１６の導通／非導通をヒューズの切断等広くプログラマブルＲＯＭを用いておこなうことも可能となる。
【００４０】
図６の回路は、信号を検出する直前に出力端子の電位差が小さくなるようにＩｅｆを調整した状態で入力の信号を検出する。従って、ＮＭＯＳの特性が経時変化しても、その特性を補正するので、より精度よく補正できる特徴がある。一方、図７、８の回路では一度補正をおこなうと、その後の補正が不要で、使用法が限定されず、通常の増幅器でアンバランスが補正される特徴を持っている。しかし、経時変化に対しては補正できない。もちろん図７、８の回路でも所望の時刻に再度補正を実施すれば補正を行える。
【００４１】
（３）他の形式のメモリセル
発明の実施の形態１において、上記メモリセル２３、９３に代えて、それ自体公知の、比較機能を有するメモリセル、例えば、先願特願平７−５８４９１号で引用したものも使用可能である。
【００４２】
（４）可変長データに対応するＴＬＢ
発明の実施の形態１を可変長データに対応するＴＬＢの構成するように変形することも可能である。このときには、発明の実施の形態１に使用するメモリセルとして、例えば、図９に示す、特開平１−２２０２９３に記載された可変長データ用のメモリセルを使用すればよい。このようなＴＬＢについての本発明者による検討の結果、図９に示されているＮＭＯＳ２６０の設計および設置個所について新たな知見がえられた。
【００４３】
その１はＣＡＭセルに流れる一致検出電流の減少とそれにともなう一致検出時間の増加である。上記ＴＬＢでは、ＮＭＯＳ２６０の導通／遮断の動作を可変長指定ビットによって制御しているが、導通して電流を流すときにはＮＭＯＳ２５０と直列に接続されているために、従来のＣＡＭセルにくらべて電流が減少する。このため、遅延時間を増加させないためには構成するＭＯＳＦＥＴの駆動能力の向上が求められる。例えば、全てのＭＯＳＦＥＴのゲート幅をその分増せばよいが、このときには入力信号が導かれるデータ線（例えば、図２の端子２１、２２が接続されるデータ線）の負荷が大きくなり駆動時間の増加や消費電力の増加を招く。そこで、ＮＭＯＳ２６０のゲート幅のみを増加させることを検討した。その結果ＮＭＯＳ２５０のゲート幅の１．５倍以上にＮＭＯＳ２６０のゲート幅を設計すると電流の減少が大幅に軽減できることを見出した。ＮＭＯＳ２６０のゲート幅を増加させるとその分ＣＡＭセルの面積を増加させるが、その増加は軽微であり、また、ＶＡ入力データ線の負荷の増加もほとんどない結果がえられた。
【００４４】
その２は、この検討を通して、ＮＭＯＳ２６０を複数のＣＡＭセルに１個設けることが面積の点からも、また、電気的特性の点からも有利であることが明らかになったことである。すなわち、入力のＶＡデータとＣＡＭセル内のデータとを比較して不一致があるときに”不一致”であることを示す信号の最小の信号レベルは、ＣＡＭセル内のＮＭＯＳ、例えば図９のＮＭＯＳ２５０が１個導通状態にあることである。すなわち、複数個のＣＡＭセルに共通して１個のＭＯＳトランジスタ（例えばＮＭＯＳ２６０）を設置すれば十分といえる。
【００４５】
その３は、ＮＭＯＳ２６０の設置個所である。検討の結果、同ＮＭＯＳ２６０のドレインは一致検出信号線に接続するように設けることで寄生容量増加を最も抑制できることが示された。この可変長指定ビットの処理方法は、特に、発明の実施の形態１で述べた、一致信号を一定の電流を供給して発生させる方法（図２の一致検出回路７３による一致検出方法）においては供給電流が限定されているのでその効果がさらによく引き出された。また、ＮＭＯＳ２６０の共用化によって同回路の占有面積は軽減された。
【００４６】
＜発明の実施の形態２＞
本実施の形態では、記憶されたデータに誤りが生じたときにも正常に動作するフルアソシアティブ方式のＴＬＢを提供する。具体的には、ＣＡＭ部に記憶されたデータのパリティデータもＣＡＭ部に記憶する。入力されたデータをメモリ内に記憶されているデータと照合して一致するデータを見つけだし、そのデータに関連する記憶情報を出力するメモリ（ＣＡＭ）の回路は図２において詳しく説明した。また、計算機用のアドレス変換装置のＴＬＢの回路として電子情報通信学会論文誌、第Ｅ７９−Ｃ巻、Ｎｏ．６、ｐｐ．７５７−７６２に詳しく記載されている。しかし、これらの回路には信頼性向上のためのパリティビットは備えていない。パリティビットをつけ加えるためにＣＡＭの動作と構成を簡単にまとめる。
【００４７】
図２の説明で詳細に記したように、ＣＡＭの動作は次のようにまとめられる。まず、比較するためのデータが入力され、その入力データがマトリックス状に配置されたＣＡＭ内に記憶されているデータと比較される。入力データと記憶されているデータとが一致すると一致した行（ＣＡＭでは１行に入力データと比較されるデータ（ＣＡＭ部のデータ）と比較されるデータに関連するデータ（ＲＡＭ部のデータ）が記憶されているので、行のことをエントリと呼ぶ）に記憶された関連するデータを読み出し、出力する。
【００４８】
図１０には図２のＣＡＭ部に記憶される１エントリ分のデータをしめしている。ＶＡ１０からＶＡ３１はＣＡＭ部（図２のＣＡＭ部など）の記憶データをしめす。図１０のデータがなんらかの障害で１ビット反転したときを考える。ＶＡ１０からＶＡ３１までのデータの中で１ビットのデータが反転すると、障害発生前のデータと同一データがＣＡＭに入力されても記憶されているデータは障害で１ビット反転しているので不一致となる。このため、ＣＡＭ部に一致するデータは存在しないとして処理されＣＡＭの動作は正常動作である。しかし、障害で反転したデータと同一のデータが入力されると両者は一致するので障害の発生したデータのエントリのＲＡＭ部のデータを出力することになりＣＡＭは誤ったデータを出力する。このようにＣＡＭは従来のメモリの動作とは異なった動作をするために、従来の考え方でパリティビットをつけ加えることはできない。
【００４９】
本実施の形態はこのように障害の発生したデータに一致するデータが入力されたときにもデータを不一致と判定するＣＡＭの構成を提供する。この構成は発明者が次の関係を見出したことにもとづいている。それは、障害で１ビットのデータが反転した記憶データと同一の入力データに対するパリティビットの値は障害発生前のデータのパリティビットの値とは必ず異なるという関係である。すなわち、障害の発生したデータのパリティビットと障害が発生したデータと同一の入力データのパリティビットとを比較することで障害が発生したために一致と判定されたデータか正常に一致したデータかを判別する。このようなパリティビットの機能は、従来のパリティビットが障害の発生したデータに対して障害の発生したことを示す信号として用いられる機能とは基本的に異なっている。すなわち、本実施の形態の構成は障害が発生したために誤ったエントリのデータが一致と判定されたときに、そのデータの読み出しを停止するためにパリティビットを用いる方法であり、従来のパリティビットの機能とは全く異なっている。
【００５０】
以下に図面を用いて本実施の形態のＣＡＭの構成と動作をさらに詳しく説明する。
【００５１】
図１７（ａ）は本実施の形態の１エントリ分の記憶データをしめしている。ＣＡＭ部データの右端に１ビットのパリティビットＰｃを設けている。パリティビット以外は図２の構成と同じである。図１７にしめす構成のデータに対して比較するデータが入力されたときを説明する。図１７（ａ）では記憶データに障害が発生しなければ、図１７（ａ）のデータと同じ入力データに対してパリティビットを含めてＣＡＭ部で一致し、それ以外のデータに対しては不一致となることはあきらかで、ＣＡＭは正常に動作することが理解できる。１ビットの障害が発生したときのデータの例を図１７（ｂ）に１エントリ分のデータとして示している。このデータは１ビットの障害を起こしているので本来一致する入力データに対しては不一致となる。この不一致の判定はＣＡＭ内にデータがないとして処理され、その処理に要する時間は不利益となるが誤ったデータは出力されず、また、ＣＡＭ動作としては正常な動作である。次に、ＣＡＭに障害の発生したデータと同一のデータが入力されたときを考察する。先に述べたように障害の発生したデータに対してはパリティビットの値が正しくない値となっているので、入力されたデータのパリティビットとは異なる。故にパリティビットＰｃまで含めてデータの一致を調べる図１７の構成では障害の発生したデータは不一致と判定されて誤ったデータが出力されることはなく、また、ＣＡＭの動作は正常動作である。以上の説明から、ＣＡＭ部にパリティビットを１ビット追加するデータ構造のＣＡＭを製作することでデータの信頼性を保証できる。
【００５２】
＜発明の実施の形態２の変形１＞
図１８には図１７と同様にＣＡＭの１エントリ分の記憶データをしめしている。図１７と異なる点は、パリティビットＰｒがＲＡＭ部に追加されている点にある。このデータ構成では上記課題のところで述べたようにＣＡＭ内で２個のデータが一致する可能性がある。本実施の形態では、２個のデータの一致を検出する回路を提供し、この回路で２個のデータが一致したことを検出するとデータを不一致と判定する。これによって、以下に述べるように課題を解決する。以下詳しく説明する。
【００５３】
記憶データが障害を起こさないときには、入力データと一致する記憶データに対応するエントリのＲＡＭ部のデータが読み出され、ＲＡＭ部に入れたパリティビットＰｒも一致するので、入力されたデータとＲＡＭ部に記憶されたデータの一致を調べ、その一致によって信頼性が保証される。また、障害が発生したデータと同じデータがＣＡＭ部に記憶されていないときには２個のデータが一致したことを検出する回路は動作せず、ＲＡＭ部のデータが読みだされる。しかし、読みだされたデータのパリティビットＰｒは上述したようにＣＡＭ部で一致したデータのパリティビットとは値が異なっている。この両パリティビットが比較されて不一致となり読みだされたデータが誤ったデータであることが検出される。この検出結果からＣＡＭには一致するデータが存在しないとする信号を発生することで誤ったデータを出力することはなく、また、ＣＡＭの動作は正常な動作である。障害が発生したデータと同じデータがＣＡＭ内に存在して、かつ、そのデータと同じデータが入力されたときには２個のデータが一致したことを検出する回路（図１６の回路）によってデータが誤っていることを検出して一致データが存在しないとして処理すれば、誤ったデータは出力されることはなく、かつ、ＣＡＭの動作は正常動作である。
【００５４】
以下、図１６の回路を説明する。信号線５００、５０１、５６１は入力アドレスがＣＡＭ部の記憶データと一致したときに一致したエントリをしめす信号線で、図２の端子４４の信号である。すなわち、一致したエントリの信号線はハイレベル、不一致のエントリの信号線はローレベルに設計される。この信号は図１のデータＲＡＭ部のワード線の信号と兼用できる。信号線５００、５０１、５６１にはそれぞれＮＭＯＳ５７０のゲートが接続される。そのＮＭＯＳのソースは接地され、ドレインは並列に信号線６６２に接続され、同信号線はＰＭＯＳ５７１のドレインに接続される。同ＰＭＯＳと同じ形状のＰＭＯＳ５７２のソースは正の電源に接続され、両ＰＭＯＳのゲートはともにＮＭＯＳ５７３のドレインに接続される。ＰＭＯＳ５７２のドレインはソースが接地されたＮＭＯＳ５７３のドレインに接続され、ＮＭＯＳのゲートは正の電源に接続される。ＮＭＯＳ５７３の形状は信号線５００から５６１に接続されたＮＭＯＳ５７０のゲート幅の１．２ないし１．６倍に設定し、１．２ないし１．６倍の電流が流れる構造に設計しておく。この回路の動作を説明する。図１６の回路で、一致するデータが存在しないときにはすべてのＮＭＯＳ５７０がＯＦＦであるので端子５０５はハイレベルを保持する。１個のエントリが一致してＭＯＳＦＥＴが導通したときにはＰＭＯＳ５０１から供給される電流が一致して導通したＮＭＯＳ５７０にながれる電流より大きいので端子５７５の電位はハイレベルを保持する。２個のエントリが一致したときにはＰＭＯＳ５７１から供給される電流より２個のＮＭＯＳ５７０に流れる電流が大きくなるので端子５７５はローレベルとなる。端子５７５の電位のレベルを検出することで２個のエントリが一致したことを検出できる。この信号でＲＡＭ部からの読み出しデータを破棄したり、読み出しを停止することは容易に実現できるので付属する回路の提示と説明は省略する。
【００５５】
以上の説明をもとに、本実施の形態のパリティ付ＣＡＭの構成を図１９にまとめる。図１９は図２にパリティビットを追加した構成になっているので、図２と同一動作をする回路には同じ番号と説明文をつけ、説明は省略する。ＣＡＭへのパリティビットの追加は２通りの構成が可能である。その１は、従来のＣＡＭのＣＡＭ部にパリティビットＰｃ９０１のＣＡＭセルを追加する構成で、このときには、１列のＣＡＭセル９０１を追加のみでよい。その２は、ＣＡＭで２個以上のデータが一致したことを検出する回路９００（これは図１６の回路に等しい）を追加して、この回路が２個以上のデータが一致していることを検出したときにはその時点で入力データに一致するデータは存在しないとする信号を送りだし（図示せず）、かつ、信号９０５によってセレクタ７７０の出力を停止する機能を追加する。さらに、ＲＡＭ部にパリティビット用に１列のＲＡＭセルＰｒ９０２を追加して読みだされたパリティビットと入力されたパリティビット信号９０４とを比較回路９０３によって比較して信号９０６によって一致ならばデータは正しいのでセレクタ７７０からデータを出力し、不一致ならデータが誤っていると判定してセレクタからの出力を停止する構成とする。
【００５６】
以上の２通りの構成によってＣＡＭのデータの信頼性の確認が可能となる。このほか、２通りのパリティビットが同一ＣＡＭ構成で使えるようにＣＡＭ部に入れるパリティビットを後で説明するマスクビットを用いて制御してＣＡＭ部のパリティビットの機能を有効化したり無効化するように制御できることはいうまでもない。
【００５７】
＜発明の実施の形態２の変形２＞
図１７、１８の実施例では入力データの一部のデータについて比較を行なわない機能（以下この機能をマスク機能という）は備えていない。マスク機能を備えたＣＡＭの構成はＤｉｇｅｓｔ  ｏｆ  Ｔｅｃｈｎｉｃａｌ  Ｐａｐｅｒｓ  ｏｆ  ＩＳＳＣＣ９６  ｐｐ．３６０−３６１（１９９６）や特開平１−２２０２９３号に記載されている。これらの回路から、従来のＣＡＭにマスク情報を記憶するメモリセルを追加し、その記憶されたマスク情報にしたがって比較するか否かを制御する機能を追加するのみでマスク機能が得られることが判明する。すなわち、マスク機能は従来のＣＡＭの回路を設計できる技術者が、上記の文献を見れば容易に設計できる機能である。このため、以下にマスク機能を追加する場合に注意すべき事項を記すに留める。
【００５８】
マスク機能を備えたＣＡＭについて簡単に説明を追加する。マスク機能があるＣＡＭではパリティビットを次のように入れる必要がある。マスクされないアドレス領域に１ビット、マスクされるアドレスにはマスクされるアドレス領域それぞれに１ビットのパリティビットをいれる。このようにすればマスク機能がすべて機能しているときにはマスクされないアドレス領域のパリティビットのみを比較することでデータに誤りのないことが示される。マスクされるアドレス領域がマスクされないときにはマスク領域ごとにパリティビットが比較されるので、マスクされているときにはパリティビットは機能しないのみであり、マスクされないときにはマスク領域内で一致が調べられるので、独立した領域として考えればパリティビットがその領域のデータの信頼性をしめし、かつ、すべてのパリティビットが一致すればデータに誤りのないことがしめされることは容易に理解できると考える。
【００５９】
＜発明の実施の形態３＞
本実施の形態では、ＣＡＭデータを読み出し可能なＣＡＭをのべる。ＣＡＭに記憶されているデータを読み出せる構成にしておけば通常のＲＡＭと同じ故障解析方法が適用出来る。
【００６０】
図１１において、入力信号との一致比較動作では、制御信号ＣＡＭ、ＲＥは高レベル、ＣＡＭＢ、ＶＷＥは低レベルに設定される。このようにすると入力信号２１はＣＡＭのデータ線に導かれて一致比較がおこなわれる。ＣＡＭ部データの読み出し動作では、制御信号ＣＡＭ、ＶＷＥは低レベル、ＣＡＭＢは高レベルとして、ＲＥを低レベルにしてＣＡＭのデータ線を高レベルに引き上げたのち、ＲＥを低レベルにきりかえ、ＣＡＭのデータ線を正の電源から切り放し、高インピーダンスにする。この後にＣＡＭのワード線２４を高レベルに持ち上げＣＡＭセル２３に記憶されているデータを読みだす。図９ではデータ線の読み出し信号のセンスアンプは省略しているが、従来広く用いられている回路を用いてもよく、既に述べた図６から８のセンスアンプを用いると読み出し処理が高速化される。
【００６１】
ＶＷＥ信号によるデータ比較のマスク動作を説明する。このマスク動作では、信号ＣＡＭは低レベル、ＣＡＭＢ、ＲＥは高レベルとして、ＶＷＥを高レベルにしてＣＡＭのデータ線を低レベルに引き下げる。ＣＡＭのデータ線対のいづれもが低レベルとなるのでこの設定によって入力データにかかわらずＮＭＯＳ２６はＯｆｆ状態になりこのデータに対しては比較処理の行なわれないことが分かる。
【００６２】
＜発明の実施の形態３の変形例＞
（１）他の故障検出方法（その１）
以上に説明した、ＣＡＭセルに記憶されているデータを読みだす回路では、ＣＡＭに記憶されているデータを読みだすためには、図１１の説明で記したようにＣＡＭのデータ線対の２本とも高レベルに持ち上げたのちに高インピーダンス状態にすることが必要で、このための回路がＣＡＭに入力するデータの流れの中にはいる。この読み出し回路の追加によってこのＣＡＭを用いるＴＬＢの変換時間が増加し、あるいは、キャッシュメモリのアクセス時間が増加する。このような変換時間が増加しないようにするには、以下の方法を採る。
【００６３】
この故障解析ではＣＡＭに記憶されているＶＡを別途記憶回路（図示せず）に記憶しておき、故障解析動作ではこのＶＡをＣＡＭに入力し、読みだされたデータが所定のエントリであることを確認する。この処理でエントリが所定のものでなかったり、一致するデータがなくミスと判定されたときにはそのエントリに故障のあることが検出できる。ここで、別途記憶しておくＣＡＭのエントリのアドレスはＴＬＢやキャッシュメモリのデータＲＡＭ部に記憶させておくのが構成としては簡単である。しかし、データＲＡＭ部にＶＡを記憶させるとデータＲＡＭ部のカラム数（メモリセルの列）が記憶するデータだけ増加し、ワード線の負荷が増してデータの読み出し時間が増加する。これを避けるためには別の高速なメモリ（データＲＡＭ部のワード線に共通にしないということであって、隣接してこのメモリを設けてデコーダを共有する等の一体化したメモリであることが望ましい）に記憶させておいて故障解析時に読み出して用いるのがよい。
【００６４】
（２）他の故障検出方法（その２）
信頼性を確保する方法としてパリティビットＰｃｍ、Ｐｒｍをくわえること、２重一致時の検出する方法を先に実施の形態２で述べた。これは、エラーが生じた後のデータの信頼性確保であるが。上述の他の故障検出方法（その１を適用して随時ＣＡＭに記憶されているデータを別途記憶されているＶＡとの比較を行なうことでエラーとなっているデータを前もって検出して排除することでエラーの発生を減少させ、エラー発生に伴う処理を削減できる。
【００６５】
＜発明の実施の形態４＞
図１２は、本発明の新規なＴＬＢの構成例を示す。従来のＴＬＢでは仮想アドレスＶＡから実アドレスＰＡへの変換を行う機能を備えているが、マルチタスクのシステムではタスクのＩＤが次々と追加されＩＤ番号がすべて使用された状態になり、一度用いたＩＤ番号を新たなタスクに割り付けることが必要になることがある。このように一度使用されたＩＤ番号をあらたなタスクに割り付けるときには、対応するＩＤ番号で記憶されたＣＡＭセルのデータを用いないようにする機構が必要となる。従来はＴＬＢ全てのデータを使えなくする処理をしていた。しかし、ＴＬＢやキャッシュメモリの規模が大きくなると、このように全てのデータを使えなくすると、有効なデータも使えなくなるので新たにデータを書き込む間は全て一致するデータが存在しないことになりヒット率が低下するのみならず、データの書き込み動作も無駄になる。新たに割り付けるＩＤのみのデータを使えなくすることが望ましいことはいうまでもない。
【００６６】
この機能をもたせるために、本実施の形態ではＩＤ用のＣＡＭを切離し、まず、ＩＤデータの一致とＶＡデータとの一致を並行して調べる方式にした。このようにすると、消費電力はその分増加するが動作速度の低下は小さく、かつ、ＩＤ用ＣＡＭ部にＩＤのＶビット（Ｖａｌｉｄ  ｂｉｔ）を設けて所望のＩＤに読み出し処理を禁止する機能をもたせることができる。これによって、ＩＤが増加して新たにＩＤを用いる必要が生じてもＴＬＢやキャッシュメモリの性能の低下を招くことなく処理を継続できるようになった。また、入力データで選ばれたＩＤの存在する位置（エントリー）がわかるように記号（エンコード用ビット）を付加してＩＤ用Ｖビットで使用を禁止している行番号が読みだせるようにした。これによって、データを書き込む行の選択を簡単に、かつ、効率良くおこなえるようになった。
【００６７】
本実施の形態では、ＩＤ用のＶビットを設けて読み出し処理を禁止している。このＶビットで読み出し処理の禁止されている行がわかると、新たにデータを書き込むときにその行を優先的に書きかえることで効率のよいＴＬＢのメモリ領域の利用ができる。しかし、ＣＡＭでは入力データに対して複数の行が一致することを禁止している。この禁止制限を取り除いたことに本実施の形態の特徴がある。このために、ＣＡＭのデコーダによって選ばれたエントリのＶビットを読みだせるようにした。これによってＶビットをあらかじめしらべておきＶビットにもとづいて書き替えるエントリが選択できるようになった。
【００６８】
データが有効であることをしめすバリッドビットＶについて説明する。ＶビットはプロセスＩＤごとに変更できれば、ＩＤの数に制限されることなくＩＤを切り替えることが出来る。すなわち、ＩＤを変えたときには一斉にＶビットを無効にすればその番号のＩＤを新しいプロセスに用いて処理を開始できる。このためには、ＩＤのみで一致検出をおこない一致したＶビットを無効にすればよい。すなわち、ＩＤ以外の入力を比較しないようにして、かつ、この比較を行なっているときには一致が検出されてもデータＲＡＭのワード線の電位を低レベルに保持すればよい。これによってＩＤごとにＶビットを短時間のうちに無効とすることができる。
【００６９】
本実施の形態では、さらに、Ｖビットはデコーダによって所望のエントリのＶビットデータを読みだせるようにしている。これによってあらかじめＶビットが無効となっているエントリを調べておきＣＡＭのデータ更新時にＶビットが無効のエントリに優先してデータの更新をおこなっている。この方法によってデータ更新時にＶビットチェックに要する時間を省き、かつ、無効なデータを記憶しているエントリを優先的に選んでデータの更新ができ、ＣＡＭのデータの無効領域が削減できた。
【００７０】
Ｖビットのデコーダによる読み出しには別途デコーダを設けてもよいが、図１２にしめすようにＮＡＮＤ回路９１を設けて、ＮＡＮＤ回路の入力の１を”ロー”レベルとすることでＶビットのみの読み出しをおこない、また、同端子を”ハイ”レベルとすることでＣＡＭへのデータの書き込みをおこなうことができる。これによってデコーダを共用することができる。
【００７１】
＜発明の実施の形態４の変形例＞
本実施の形態では、Ｖビットが無効であることを高速に検出する方法を提供する。エンコード用ビットをＶビット読み出し用の各ワード線に１個のみＭＯＳＦＥＴがある構成として、データ線にも１個のみのＭＯＳＦＥＴがつながる図１３の構成にした。図１３では１個のＭＯＳＦＥＴを白ぬきの円で示している。これによって、エンコーダ部分はＶビットでＣＡＭ動作をさせてＶビットが読み出し禁止状態（無効状態）にある行を並列に検出でき高速化された。しかし、このようなエンコード  ビットの作り方は行数（エントリー数）が多くなるとその行数に比例してエンコード部の面積が増えるといったトレードオフの関係にある。本実施の形態では面積増加を抑えるために、Ｖビットのチェックに用いるＣＡＭを複数のブロックに分けている。たとえば、本実施の形態ではブロックに含まれる行数を８として高速に、かつ、Ｖビットチェック回路の面積増加を抑えた回路を構成している。
【００７２】
＜適用例＞
以上ではいろいろのＴＬＢあるいはそれに適用する技術について説明したが、これらの技術は広く一般の連想メモリ（ＣＡＭ）に適用可能である。例えば、ＣＡＭを用いたキャッシュメモリに適用可能である。図１５は、その様なキャッシュメモリを有する計算機システムを示す。中央制御ユニット（ＣＰＵ）１０１から仮想アドレスキャッシュメモリ１０２へのアクセスは、仮想アドレスによって直接おこなう。この仮想アドレスキャッシュメモリ１０２に本発明のＣＡＭを用いる。ＣＰＵからメモリユニット１０８のデータをアクセスするには、メモリ制御ユニット１０６で仮想アドレスを実アドレスに変換する。この変換には既に述べたＴＬＢが用いられる。変換されたアドレスでキャッシュメモリやメモリユニットのデータをアクセスする。
【００７３】
【発明の効果】
本発明に従って、連想記憶装置内に一致検出信号線の電位を加速する回路を設けた場合には、この連想記憶装置は一致検出動作を高速に行うことができる。
【００７４】
さらに、本発明に従って、連想記憶装置に、そこに記憶するデータのパリティビットも記憶させた場合には、記憶されたデータに障害が発生した場合でも間違って一致と検出することを防げる。
【図面の簡単な説明】
【図１】本発明によるＴＬＢの概ブロック図。
【図２】図１のＴＬＢのＣＡＭ部の回路図。
【図３】図２の回路に使用する基準電圧発生回路の回路図。
【図４】図２の回路内の一致検出回路の動作波形図。
【図５】図１のＴＬＢの前置ＣＡＭ部の回路図。
【図６】図１のＴＬＢにセンス＆出力回路に好適なセンスアンプの回路図。
【図７】図１のＴＬＢにセンス＆出力回路に好適な他のセンスアンプの回路図。
【図８】図１のＴＬＢにセンス＆出力回路に好適なさらに他のセンスアンプの回路図。
【図９】図１のＴＬＢに使用可能な他のＣＡＭセルの回路図。
【図１０】本発明による他のＴＬＢに記憶されるデータの構造を示す図。
【図１１】本発明によるさらに他のＴＬＢの主要部の回路図。
【図１２】本発明によるさらに他のＴＬＢの概略ブロック図。
【図１３】本発明によるさらに他のＴＬＢの概略ブロック図。
【図１４】図１のＴＬＢが適用されるマイクロプロセッサの概略ブロック図。
【図１５】図１のＴＬＢ内のＣＡＭが適用可能なマイクロプロセッサの概略ブロック図。
【図１６】本発明によるＴＬＢに使用可能な２重一致検出回路の概略図。
【図１７】本発明によるさらにＴＬＢに記憶される他のデータの構造を示す図。
【図１８】本発明によるＴＬＢに記憶されるさらに他のデータの他の構造を示す図。
【図１９】本発明によるさらに他のＴＬＢの主要部の回路図。
【符号の説明】
３５６・・・加速回路
【図１】
0003686480.tif 000002
【図２】
0003686480.tif 000003
【図３】
0003686480.tif 000004
【図４】
0003686480.tif 000005
【図５】
0003686480.tif 000006
【図６】
0003686480.tif 000007
【図７】
0003686480.tif 000008
【図８】
0003686480.tif 000009
【図９】
0003686480.tif 000010
【図１０】
0003686480.tif 000011
【図１１】
0003686480.tif 000012
【図１２】
0003686480.tif 000013
【図１３】
0003686480.tif 000014
【図１４】
0003686480.tif 000015
【図１５】
0003686480.tif 000016
【図１６】
0003686480.tif 000017
【図１７】
0003686480.tif 000018
【図１８】
0003686480.tif 000019
【図１９】
0003686480.tif 000020