(57)【要約】【課題】２以上の比較を行う場合でも、消費電流の増大を抑制可能にする。【解決手段】本発明に係る連想メモリ１は、各エントリごとに、２つの比較回路１１，１２と、比較制御回路１３とを備えている。比較回路１１，１２は、ビット列振分け回路２からのビット列を２回に分けて、ＳＲＡＭセル１５に記憶されているビット列と比較する。２種類のデータＡ＜ｎ：０＞，Ｂ＜ｎ：０＞を２つに分けたビット群ごとに、２つの比較回路１１，１２を用いて２回にわたって比較処理を行い、１回目で不一致が検出されると、２回目の比較処理時には出力線Ｌ１のプリチャージを行わないようにしたため、プリチャージを毎回行う場合に比べて、消費電流を最大５０％まで削減できる。【選択図】  図１
2004296016.tif 000002
【特許請求の範囲】
【請求項１】
ｐ個（ｐは２以上の整数）のビット列それぞれが基準ビット列と一致するか否かを検出する連想メモリにおいて、
前記ｐ個のビット列それぞれを、ｑ個（ｑは２以上の整数）に分割して得られる各ビット群ごとに、ｐ回に分けて前記基準ビット列の対応ビット群との比較を行うｑ個の比較手段と、
前記ｑ個の比較手段の出力線をプリチャージするプリチャージ手段と、
前記ｑ個の比較手段がｒ回目（ｒは１以上でｐ−１以下の整数変数、ｐは２以上の整数）の比較処理を行っている最中に、少なくとも一つの前記比較手段にて一致しないと判定されると、（ｒ＋１）回目以降の比較処理の際の前記プリチャージ手段によるプリチャージを停止させる比較制御手段とを備えることを特徴とする連想メモリ。
【請求項２】
前記ｑ個の比較手段のそれぞれは、１回目からｐ回目までの各回ごとに、それぞれ異なるビット列中のビット群と前記基準ビット列の対応ビット群との比較を行うことを特徴とする連想メモリ。
【請求項３】
前記ｑ個の比較手段の出力線は共通に接続されて、前記プリチャージ手段によりプリチャージされ、少なくとも一つの前記比較手段にて不一致が検出されると、前記出力線に電流が流れて前記出力線の論理が変化することを特徴とする請求項１または２に記載の連想メモリ。
【請求項４】
前記比較制御手段は、
前記ｑ個の比較手段のそれぞれに対応して設けられ、対応する前記比較手段の比較結果を保持するｑ個の状態保持手段と、
前記ｑ個の状態保持手段の出力を合成して、最終的な一致判定結果を出力する合成手段と、を有することを特徴とする請求項１〜３のいずれかに記載の連想メモリ。
【請求項５】
前記ｑ個の状態保持手段はそれぞれ、対応する前記比較手段による（ｐ−１）回分の比較結果を保持することを特徴とする請求項４に記載の連想メモリ。
【請求項６】
前記ｑ個のプリチャージ手段はそれぞれ、前記ｑ個の比較手段が１回目からｐ回目までの比較処理を開始する前に、各回ごとに前記ｑ個の比較手段の出力線をプリチャージすることを特徴とする請求項４に記載の連想メモリ。
【請求項７】
ｐ個（ｐは２以上の整数）のビット列それぞれが基準ビット列と一致するか否かを検出する連想メモリにおいて、
前記ｐ個のビット列それぞれを、ｑ個（ｑは２以上の整数）に分割して得られる各ビット群ごとに、ｐ回に分けて前記基準ビット列の対応ビット群との比較を行うｑ個の比較手段と、
前記ｑ個の比較手段がｒ回目（ｒは１以上でｐ−１以下の整数変数、ｐは２以上の整数）の比較処理を行っている最中に、少なくとも一つの前記比較手段にて一致しないと判定されると、（ｒ＋１）回目以降の前記ｑ個の比較手段での比較処理を中止させる比較制御手段とを備えることを特徴とする連想メモリ。
【請求項８】
前記ｑ個の比較手段のそれぞれに対応して設けられ、対応する前記比較手段の出力線をディスチャージするｑ個のディスチャージ手段を備え、
前記ｑ個のディスチャージ手段はそれぞれ、対応する前記状態保持手段の出力に基づいて、対応する前記比較手段の出力線をディスチャージするか否かを切り替え、いずれかの前記比較手段にて一致しないと判定されると、対応する前記ディスチャージ手段はディスチャージ動作を中止することを特徴とする請求項７に記載の連想メモリ。
【請求項９】
前記ｑ個のディスチャージ手段はそれぞれ、前記ｑ個の比較手段が１回目からｐ回目までの比較処理を開始する前に、各回ごとに前記ｑ個の比較手段の出力線をディスチャージすることを特徴とする請求項８に記載の連想メモリ。
【請求項１０】
前記ｑ個の比較手段のそれぞれは、１回目からｐ回目までの各回ごとに、それぞれ異なるビット列中のビット群と前記基準ビット列の対応ビット群との比較を行うことを特徴とする請求項７〜９のいずれかに記載の連想メモリ。
【請求項１１】
前記比較制御手段は、
前記ｑ個の比較手段のそれぞれに対応して設けられ、対応する前記比較手段の比較結果を保持するｑ個の状態保持手段と、
前記ｑ個の状態保持手段の出力を合成して、最終的な一致判定結果を出力する合成手段と、を有することを特徴とする請求項７〜１０のいずれかに記載の連想メモリ。
【請求項１２】
前記ｑ個の状態保持手段はそれぞれ、対応する前記比較手段による（ｐ−１）回分の比較結果を保持することを特徴とする請求項１１に記載の連想メモリ。
【請求項１３】
ｐ個（ｐは２以上の整数）のビット列それぞれが基準ビット列と一致するか否かを検出して、その検出結果信号を出力する連想メモリと、
前記検出結果信号に基づいて、格納されているデータを出力するか否かを切り替えるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、
前記ｐ個のビット列を、ｑ個（ｑは２以上の整数）に分割して得られる各ビット群を、ｐ回に分けて前記連想メモリに供給するビット列振分け手段と、を備え、
前記連想メモリは、
前記ビット列振分け手段からｐ回に分けて供給される各ビット群と、前記基準ビット列の対応ビット群との比較を行うｑ個の比較手段と、
前記ｑ個の比較手段の出力線をプリチャージするプリチャージ手段と、
前記ｑ個の比較手段がｒ回目（ｒは１以上でｐ−１以下の整数変数、ｐは２以上の整数）の比較処理を行っている最中に、少なくとも一つの前記比較手段にて一致しないと判定されると、前記プリチャージ手段によるプリチャージを停止させる比較制御手段と、を有することを特徴とするメモリシステム。
【請求項１４】
前記ｑ個の比較手段のそれぞれは、１回目からｐ回目までの各回ごとに、それぞれ異なるビット列中のビット群と前記基準ビット列の対応ビット群との比較を行うことを特徴とする請求項１３に記載のメモリシステム。
【請求項１５】
前記ｑ個の比較手段の出力線は共通に接続されて、前記プリチャージ手段によりプリチャージされ、少なくとも一つの前記比較手段にて不一致が検出されると、前記出力線に電流が流れて前記出力線の論理が変化することを特徴とする請求項１３または１４に記載のメモリシステム。
【請求項１６】
前記比較制御手段は、
前記ｑ個の比較手段のそれぞれに対応して設けられ、対応する前記比較手段の比較結果を保持するｑ個の状態保持手段と、
前記ｑ個の状態保持手段の出力を合成して、最終的な一致判定結果を出力する合成手段と、を有することを特徴とする請求項１３〜１５のいずれかに記載のメモリシステム。
【請求項１７】
ｐ個（ｐは２以上の整数）のビット列それぞれが基準ビット列と一致するか否かを検出して、その検出結果信号を出力する連想メモリと、
前記検出結果信号に基づいて、格納されているデータを出力するか否かを切り替えるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、
前記ｐ個のビット列を、ｑ個（ｑは２以上の整数）に分割して得られる各ビット群を、ｐ回に分けて前記連想メモリに供給するビット列振分け手段と、を備え、
前記連想メモリは、
前記ビット列振分け手段からｐ回に分けて供給される各ビット群と、前記基準ビット列の対応ビット群との比較を行うｑ個の比較手段と、
前記ｑ個の比較手段がｒ回目（ｒは１以上でｐ−１以下の整数変数、ｐは２以上の整数）の比較処理を行っている最中に、少なくとも一つの前記比較手段にて一致しないと判定されると、（ｒ＋１）回目以降の前記ｑ個の比較手段での比較処理を中止させる比較制御手段とを備えることを特徴とするメモリシステム。
【請求項１８】
前記ｑ個の比較手段のそれぞれに対応して設けられ、対応する前記比較手段の出力線をプリチャージするｑ個のプリチャージ回路を備え、
前記ｑ個のプリチャージ回路はそれぞれ、対応する前記状態保持手段の出力に基づいて、対応する前記比較手段の出力線をプリチャージするか否かを切り替えることを特徴とする請求項１７に記載のメモリシステム。
【請求項１９】
前記ｑ個の比較手段のそれぞれは、１回目からｐ回目までの各回ごとに、それぞれ異なるビット列中のビット群と前記基準ビット列の対応ビット群との比較を行うことを特徴とする請求項１７または１８に記載のメモリシステム。
【請求項２０】
前記比較制御手段は、
前記ｑ個の比較手段のそれぞれに対応して設けられ、対応する前記比較手段の比較結果を保持するｑ個の状態保持手段と、
前記ｑ個の状態保持手段の出力を合成して、最終的な一致判定結果を出力する合成手段と、を有することを特徴とする請求項１７〜１９のいずれかに記載のメモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサ上で仮想アドレスを物理アドレスに変換する目的などに用いられる連想メモリに関する。
【０００２】
【従来の技術】
マイクロプロセッサでは、仮想アドレスを物理アドレスに変換するために、連想メモリを用いるのが一般的である（特許文献１，２参照）。
【０００３】
図８は従来の連想メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）の内部構成を示す回路図である。この連想メモリは、複数のエントリのそれぞれごとに設けられるビット数分の比較回路３１と、同一エントリーの比較回路３１の出力線Ｌ１に接続されるプリチャージ回路３２とを備えている。各比較回路３１は、基準ビット列を記憶するＳＲＡＭセル３３と、ＳＲＡＭセル３３に対するデータの読書きを制御するトランジスタＱ２１，Ｑ２２と、ＳＲＡＭセル３３内のデータと外部入力された比較先のデータとを比較するコンパレータ３４と、コンパレータ３４の出力に応じてオン・オフするトランジスタＱ２３とを有する。
【０００４】
プリチャージ回路３２は、出力線Ｌ１をハイレベルにプリチャージするトランジスタＱ２４と、出力線Ｌ１の論理を保持するトランジスタＱ２５及びインバータＩＶ１１とを有する、いわゆるワイヤードＮＯＲである。
【０００５】
出力線Ｌ１は、プリチャージ回路３２によってハイレベルにプリチャージされ、比較回路３１のいずれかで不一致が検出されると、ローレベルにされる。
【０００６】
【特許文献１】
特開２０００−２３５７８７公報
【特許文献２】
特開２００２−１６３８９１公報
【０００７】
【発明が解決しようとする課題】
図８の連想メモリは、このようなワイヤードＮＯＲをエントリの数分だけ持っており、各比較回路３１が比較動作を行うときには、その特性上すべてのワイヤードＮＯＲが動作し、ほとんどすべてのワイヤードＮＯＲで不一致になるため、消費電流が非常に多くなるという問題がある。
【０００８】
図８の連想メモリを拡張した図９に示す多比較連想メモリでは、ワイヤードＮＯＲ数が増大し、消費電流の問題はさらに悪化する。すなわち、レイアウト面積の増大を抑制可能な時分割多比較連想メモリでは、余計に消費電流が増大するという問題がある。
【０００９】
本発明は、このような点に鑑みてなされたものであり、その目的は、２以上の比較を行う場合でも、消費電流の増大を抑制可能な連想メモリ及びメモリシステムを提供することにある。
【００１０】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、ｐ個（ｐは２以上の整数）のビット列それぞれが基準ビット列と一致するか否かを検出する連想メモリにおいて、前記ｐ個のビット列それぞれを、ｑ個（ｑは２以上の整数）に分割して得られる各ビット群ごとに、ｐ回に分けて前記基準ビット列の対応ビット群との比較を行うｑ個の比較手段と、前記ｑ個の比較手段の出力線をプリチャージするプリチャージ手段と、前記ｑ個の比較手段がｒ回目（ｒは１以上でｐ−１以下の整数変数、ｐは２以上の整数）の比較処理を行っている最中に、少なくとも一つの前記比較手段にて一致しないと判定されると、（ｒ＋１）回目以降の比較処理の際の前記プリチャージ手段によるプリチャージを停止させる比較制御手段とを備える。
【００１１】
また、ｐ個（ｐは２以上の整数）のビット列それぞれが基準ビット列と一致するか否かを検出する連想メモリにおいて、前記ｐ個のビット列それぞれを、ｑ個（ｑは２以上の整数）に分割して得られる各ビット群ごとに、ｐ回に分けて前記基準ビット列の対応ビット群との比較を行うｑ個の比較手段と、前記ｑ個の比較手段がｒ回目（ｒは１以上でｐ−１以下の整数変数、ｐは２以上の整数）の比較処理を行っている最中に、少なくとも一つの前記比較手段にて一致しないと判定されると、（ｒ＋１）回目以降の前記ｑ個の比較手段での比較処理を中止させる比較制御手段とを備える。
【００１２】
【発明の実施の形態】
以下、本発明に係る連想メモリ及びメモリシステムについて、図面を参照しながら具体的に説明する。
【００１３】
（第１の実施形態）
図１は本発明に係る連想メモリの第１の実施形態の内部構成を示す回路図である。また、図２は図１の連想メモリ１を備えたメモリシステムの概略構成を示すブロック図である。
【００１４】
本実施形態の連想メモリ１は、２種類のビット列Ａ＜０：ｎ＞，Ｂ＜０：ｎ＞のそれぞれを基準ビット列と比較する多比較ＣＡＭである。より詳しくは、ビット列Ａ＜０：ｎ＞，Ｂ＜０：ｎ＞のそれぞれを複数のビット群に分割して、各ビット群ごとに時間をずらして２度に分けて比較する。このような比較を行う連想メモリ１は、時分割２比較ＣＡＭとも呼ばれる。
【００１５】
図１の連想メモリ１には、図２に示すビット列振分け回路２からビット群が供給される。ビット列振分け回路２は、ビット列Ａ＜０：ｎ＞，Ｂ＜０：ｎ＞をそれぞれ２つのビット群に分割して連想メモリ１に供給する。各ビット群のビット数は必ずしも同一でなくてもよい。
【００１６】
図１の連想メモリ１は、図２に示すビット列振分け回路２からのビット群に従って比較動作を行い、その比較結果に応じて一致線の論理を切り替える。図２に示すＲＡＭ３は、一致線の論理に応じてデータを出力するか否かを切り替える。
【００１７】
図１には、１エントリ分の回路構成だけが図示されているが、図１の回路を複数エントリ分設けてもよい。図１の連想メモリ１は、各エントリごとに、２つの比較回路１１，１２と、比較制御回路１３とを備えている。比較回路１１，１２は、ビット列振分け回路２からのビット列を２回に分けて、ＳＲＡＭセル１５に記憶されているビット列と比較する。
【００１８】
比較回路１１は（ｎ−ｍ）ビット分のビット比較部１４を有し、比較回路１２は（ｍ＋１）ビット分のビット比較部１４を有する。各ビット比較部１４は、図８と同様に、ＳＲＡＭセル１５と、ＳＲＡＭセル１５に対する読書きを制御するトランジスタＱ１，Ｑ２と、ビット比較を行うコンパレータ１６と、コンパレータ１６の出力によりオン・オフ制御されるトランジスタＱ３とを有する。
【００１９】
トランジスタＱ３のドレイン端子は、各ビット比較部１４で共通の出力線Ｌ１に接続されている。
【００２０】
比較制御回路１３は、比較回路１１用のプリチャージ回路１７を構成するトランジスタＱ４〜Ｑ６、ＮＡＮＤゲートＧ１及びインバータＩＶ１〜ＩＶ３と、このプリチャージ回路１７のプリチャージ動作を制御するラッチ回路１９と、比較回路１２用のプリチャージ回路１８を構成するトランジスタＱ７〜Ｑ９、ＮＡＮＤゲートＧ２及びインバータＩＶ４〜ＩＶ６と、このプリチャージ回路１８のプリチャージ動作を制御するラッチ回路２０と、ラッチ回路１９，２０のラッチ出力を合成して一致線の論理を生成するＮＡＮＤゲートＧ３，Ｇ４とを有する。
【００２１】
図３は図１の連想メモリ１の動作タイミングを示すタイミング図である。図示のように、図１の連想メモリ１は、所定期間内（例えば、プロセッサの１サイクルｔ１−ｔ２間）に２回に分けて比較動作を行う。１回目では、比較回路１１はＡ＜ｎ＞Ａ＜ｎ−１＞…Ａ＜ｍ＋１＞の比較を、比較回路１２はＢ＜ｍ＞Ｂ＜ｍ−１＞…Ｂ＜０＞の比較を行い、２回目では、比較回路１１はＢ＜ｎ＞Ｂ＜ｎ−＞…Ｂ＜ｍ＋１＞の比較を行い、比較回路１２はＡ＜ｍ＞Ａ＜ｍ−１＞…Ａ＜０＞の比較を行う。
【００２２】
以下では、ビット比較部１４内のＳＲＡＭセル１５に、予め基準ビット列が格納されているとする。なお、基準ビット列は、ビット線ＢＬ，／ＢＬにてＳＲＡＭセル１５に書き込まれる。
【００２３】
まず、ＣＰ＜ｎ：０＞，／ＣＰ＜ｎ：０＞をともにハイレベルにし、２つの比較回路１１，１２内のすべてのコンパレータ１６の出力をローレベルにし、すべてのＱ３をオフする。
【００２４】
次に、信号ｐｒｅ１にハイレベルのパルスを供給して、２つの比較回路１１，１２の出力線Ｌ１をハイレベルにプリチャージする。
【００２５】
次に、比較回路１１のＣＰ＜ｎ：ｍ＋１＞，／ＣＰ＜ｎ：ｍ＋１＞にＡ＜ｎ：ｍ＋１＞の相補信号を入力し、比較回路１２のＣＰ＜ｍ：０＞，／ＣＰ＜ｍ：０＞にＢ＜ｍ：０＞の相補信号を入力する。これにより、各ビット比較部１４で比較動作が行われ、比較結果が出力線Ｌ１に出力される。仮に、少なくとも一つのビット比較部１４で不一致になると、出力線Ｌ１はローレベルになる。
【００２６】
ここまでの動作に要する消費電流は、従来、つまり一回の動作に必要な動作電流と同一である。本実施形態は、１回目の比較動作で、いずれかのビット列で不一致が検出されると、そのビット列については２回目の比較動作を行わない点に特徴がある。これにより、消費電流を削減できる。
【００２７】
１回目の比較結果を示す出力線Ｌ１の論理は、ラッチ回路１９，２０にてラッチされる。比較回路１１内のいずれのビット比較部１４でも不一致にならなかった場合は、ラッチ回路１９の出力はハイレベルになるが、ビット比較部１４のいずれか一つでも不一致が検出されると、ラッチ回路１９の出力はローレベルになる。
【００２８】
ラッチ回路１９の出力がローレベルになると、プリチャージ用のトランジスタＱ８はオンせず、プリチャージは行われない。
【００２９】
本実施形態のビット列振分け回路２は、同じビット列に属するビット群を、１回目と２回目で別々の比較回路１１，１２に供給するため、例えば１回目に比較回路１１で不一致が検出されると、２回目には、比較回路１２のプリチャージを行わないようにしている。
【００３０】
このように、本実施形態では、１回目に比較回路１１で不一致が検出されると、２回目は比較回路１２のプリチャージ行わないようにし、逆に、１回目に比較回路１２で不一致が検出されると、２回目は比較回路１１のプリチャージを行わないようにする。
【００３１】
続いて、２回目の比較動作に入る。まず、ＣＰ＜ｎ：０＞，／ＣＰ＜ｎ：０＞をハイレベルにする。これにより、すべてのコンパレータ１６の出力はローレベルになり、すべてのＱ３がオフする。
【００３２】
次に、信号ｐｒｅ２にハイレベルのパルスを供給し、１回目の比較動作で不一致が検出されなかった比較回路だけを選択的にプリチャージする。
【００３３】
比較回路１１のＣＰ＜ｎ：ｍ＋１＞，／ＣＰ＜ｎ：ｍ＋１＞にＢ＜ｎ：ｍ＋１＞の相補信号を入力し、比較回路１２のＣＰ＜ｍ：０＞，／ＣＰ＜ｍ：０＞にＡ＜ｍ：０＞の相補信号を入力する。
【００３４】
この状態で、比較回路１１，１２内のビット比較部１４は比較動作を行い、比較結果が出力線Ｌ１に出力される。
【００３５】
ラッチ回路１９，２０には、１回目の比較結果がラッチされているため、２回目の比較結果を示す出力線Ｌ１の論理とラッチ回路１９，２０のラッチ出力とをＮＡＮＤゲートＧ３，Ｇ４で合成することにより、一致信号が生成される。
【００３６】
例えば、両方の比較回路１１，１２で１，２回とも不一致が検出されなければ、一致線／ｍａｔｃｈの論理はローレベルになり、比較回路１１，１２の少なくとも一方で不一致が検出されると、一致線／ｍａｔｃｈの論理はハイレベルになる。
【００３７】
図２のＲＡＭ３は、一致線／ｍａｔｃｈがローレベルであれば、対応するデータを出力し、一致線／ｍａｔｃｈがハイレベルであればデータを出力しない。
【００３８】
本実施形態の具体的な実現形態としては、仮想アドレスを物理アドレスに変換するＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）が考えられる。外部から入力された仮想アドレスを連想メモリ１で比較し、比較結果が一致すると、その仮想アドレスに対応する物理アドレスをＲＡＭ３が出力する。
【００３９】
なお、本実施形態の連想メモリ１の使用目的は上述したＴＬＢに限定されない。
【００４０】
このように、第１の実施形態では、２種類のデータＡ＜ｎ：０＞，Ｂ＜ｎ：０＞を２つに分けたビット群ごとに、２つの比較回路１１，１２を用いて２回にわたって比較処理を行い、１回目で不一致が検出されると、２回目の比較処理時には出力線Ｌ１のプリチャージを行わないようにしたため、プリチャージを毎回行う場合に比べて、消費電流を最大５０％まで削減できる。
【００４１】
（第２の実施形態）
第２の実施形態は、１回目で不一致が検出されると、２回目にはビット比較部１４の比較動作を停止するものである。
【００４２】
図４は本発明に係る連想メモリ１の第２の実施形態の内部構成を示す回路図である。図４では図１と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００４３】
比較回路１１，１２内のビット比較部１４は、トランジスタＱ３のソース線を遮断するか否かを制御するトランジスタＱ１０，Ｑ１１を有する。トランジスタＱ１０はラッチ回路１９のラッチ出力によりオン・オフ制御され、トランジスタＱ１１はラッチ回路２０のラッチ出力によりオン・オフ制御される。
【００４４】
具体的には、比較回路１１で不一致が検出されると、トランジスタＱ１１がオフして、比較回路１２内のトランジスタＱ３もオフする。同様に、比較回路１２で不一致が検出されると、トランジスタＱ１０がオフして、比較回路１１内のトランジスタＱ３もオフする。したがって、ビット比較部１４から接地線に電流が流れなくなり、ビット比較部１４の比較動作を中止させることができる。
【００４５】
以下、図４の連想メモリ１の動作を説明する。まず、ＣＰ＜ｎ：０＞，／ＣＰ＜ｎ：０＞をともにハイレベルにし、比較回路１１，１２内のすべてのビット比較部１４の出力であるＱ３をオフする。
【００４６】
次に、信号ｐｒｅ１にハイレベルのパルスを供給し、比較回路１１，１２の出力線Ｌ１をともにハイレベルにプリチャージする。
【００４７】
次に、比較回路１１，１２の１回目の比較結果をラッチするラッチ回路１９，２０を信号ｐｒｅ１でセットし、比較回路１１，１２内のすべてのビット比較部１４を動作可能にする。
【００４８】
次に、比較回路１１のＣＰ＜ｎ：ｍ＋１＞，／ＣＰ＜ｎ：ｍ＋１＞にＡ＜ｎ：ｍ＋１＞の相補信号を供給し、比較回路１２のＣＰ＜ｍ：０＞，／ＣＰ＜ｍ：０＞にＢ＜ｍ：０＞の相補信号を供給する。
【００４９】
これにより、比較回路１１，１２内の各ビット比較部１４は比較動作を行い、比較結果を出力線Ｌ１に出力する。ラッチ回路１９，２０は、出力線Ｌ１の論理をラッチする。ここまでの動作は第１の実施形態と同様である。
【００５０】
ラッチ回路１９の出力がローレベルの場合は、比較回路１１で不一致が検出されたことを示しており、この場合はトランジスタＱ１１がオフし、比較回路１２内のトランジスタＱ３は動作しなくなる。したがって、コンパレータ１６から接地線に電流が流れなくなり、比較回路１２は比較動作を行わなくなる。また、一致線／ｍａｔｃｈの論理はハイレベルになり、不一致である旨がＲＡＭ３に通知される。
【００５１】
一方、１回目の比較動作でラッチ回路１９，２０の出力がハイレベルの場合は、比較回路１１，１２で不一致が検出されなかったことを示しており、この場合はトランジスタＱ１０，Ｑ１１がオンし、トランジスタＱ３も動作可能である。したがって、２回目の比較動作が行われる。
【００５２】
２回目の比較動作自体は第１の実施形態と同様の手順で行われる。まず、比較回路１１，１２のＣＰ＜ｎ：０＞，／ＣＰ＜ｎ：０＞をともにハイレベルにし、比較回路１１，１２内のすべてのビット比較部１４の出力であるＱ３をオフする。
【００５３】
次に、信号ｐｒｅ２にハイレベルのパルスを供給し、比較回路１１，１２の出力線Ｌ１をプリチャージする。次に、比較回路１１のＣＰ＜ｎ：ｍ＋１＞，／ＣＰ＜ｎ：ｍ＋１＞にＢ＜ｎ：ｍ＋１＞の相補信号を供給し、比較回路１２のＣＰ＜ｍ：０＞，／ＣＰ＜ｍ：０＞にＡ＜ｍ：０＞の相補信号を供給する。
【００５４】
ラッチ回路１９，２０には、１回目の比較結果がラッチされているため、２回目の比較結果を示す出力線Ｌ１の論理とラッチ回路１９，２０のラッチ出力とをＮＡＮＤゲートＧ３，Ｇ４で合成することにより、一致信号が生成される。例えば、両方の比較回路１１，１２で１，２回とも不一致が検出されなければ、一致線／ｍａｔｃｈの論理はローレベルになり、比較回路１１，１２の少なくとも一方で不一致が検出されると、一致線／ｍａｔｃｈの論理はハイレベルになる。
【００５５】
このように、第２の実施形態では、１回目の比較動作を行っているときに、少なくとも一方の比較回路で不一致が検出されると、トランジスタＱ１０またはＱ１１がオフして、２回目の比較動作を行わないようにするため、第１の実施形態よりも消費電流を抑制でき、電流効率がよりよくなる。
【００５６】
ただし、ビット比較部１４の電流経路に２つのトランジスタＱ３，Ｑ１０（Ｑ１１）が縦続接続されているため、第１の実施形態の方が高速動作が可能である。
【００５７】
上述した第１及び第２の実施形態では、２種類のビット列Ａ＜ｎ：０＞，Ｂ＜ｎ：０＞について時分割比較を行う例を説明したが、本発明は、３種類以上のビット列についての時分割比較にも適用可能である。
【００５８】
以下、ｐ個（ｐは２以上の整数）のビット列それぞれが基準ビット列と一致するか否かを比較する例について説明する。この場合、連想メモリ１は、図５に示すように、ｑ個（ｑは２以上の整数）の比較回路２１と、比較制御回路１３とを有する。
【００５９】
ｑ個の比較回路２１はそれぞれ、ｐ個のビット列それぞれをｑ個に分割して得られる各ビット群ごとに、ｐ回に分けて基準ビット列との比較を行う。
【００６０】
比較制御回路１３は、ｑ個の比較回路２１がｒ回目（ｒは１以上でｐ−１以下の整数変数）の比較処理を行っている最中に、少なくとも一つの比較回路２１で不一致が検出されると、（ｒ＋１）回目以降のプリチャージを中止させるか、比較回路２１の比較処理を中止させる。
【００６１】
例えば、図６に示すように、４個のビット列ｂ１，ｂ２，ｂ３，ｂ４それぞれを３つに分割して得られる各ビット群（ｂ１−１，ｂ１−２，ｂ１−３）、（ｂ２−１，ｂ２−２，ｂ２−３）、（ｂ３−１，ｂ３−２，ｂ３−３）、（ｂ４−１，ｂ４−２，ｂ４−３）ごとに、４回に分けて基準ビット列との比較を行う場合について説明する。この場合、３つの比較回路２１を用いて、４回に分けて比較処理を行う。
【００６２】
まず、図７に示すように、これら３つの比較回路２１−１，２１−２，２１−３にはそれぞれビット群（ｂ１−１，ｂ２−２，ｂ３−３）が入力されて１回目の比較処理が行われる。次に、これら比較回路２１−１，２１−２，２１−３にはそれぞれビット群（ｂ２−１，ｂ３−２，ｂ４−３）が入力されて２回目の比較処理が行われる。次に、これら比較回路２１−１，２１−２，２１−３にはそれぞれビット群（ｂ３−１，ｂ４−２，ｂ１−３）が入力されて１回目の比較処理が行われる。比較回路２１−１，２１−２，２１−３にはそれぞれビット群（ｂ４−１，ｂ１−２，ｂ２−３）が入力されて４回目の比較処理が行われる。
【００６３】
なお、ビット群の比較順序は、必ずしも図７に示すものに限定されない。要は、各比較回路が各回ごとに、異なるビット列のビット群の比較を行いさえすればよい。
【００６４】
また、基準ビット列とｐ個の入力ビット列はそれぞれｑ個に分割できるが、ビットの並びを変更することはできない。それは、比較すべき基準ビット列が１対１に対応しているためである。
【００６５】
例えば、図７に示すように、各比較回路２１−１，２１−２，２１−３は、ビット列ｂ１，ｂ２，ｂ３，ｂ４の同じビット群を比較する。例えば、比較回路２１−１はビット群ｂ１−１，ｂ２−１，ｂ３−１，ｂ４−１をそれぞれ基準ビット列と比較する。また、比較回路２１−２はビット群ｂ２−２，ｂ３−２，ｂ４−２，ｂ１−２をそれぞれ基準ビット列と比較し、比較回路２１−３はビット群ｂ３−３，ｂ４−３，ｂ１−３，ｂ２−３をそれぞれ基準ビット列と比較する。
【００６６】
【発明の効果】
以上詳細に説明したように、本発明によれば、ｐ個のビット列それぞれをｑ個に分割して得られるビット群ごとに基準ビット列の対応ビット群と比較し、不一致になった場合には、残りのビット群の比較を行うためのプリチャージまたはディスチャージを行わないようにしたため、消費電流の大幅な削減が図れる。
【図面の簡単な説明】
【図１】本発明に係る連想メモリの第１の実施形態の内部構成を示す回路図。
【図２】図１の連想メモリ１を備えたメモリシステムの概略構成を示すブロック図。
【図３】図１の連想メモリ１の動作タイミングを示すタイミング図。
【図４】本発明に係る連想メモリ１の第２の実施形態の内部構成を示す回路図。
【図５】３種類以上のビット列に分けて時分割比較を行う連想メモリの一例を示すブロック図。
【図６】図５の連想メモリに入力されるビット列の一例を示す図。
【図７】図５の比較回路の比較動作を説明する図。
【図８】従来の連想メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）の内部構成を示す回路図。
【図９】従来の多比較連想メモリの回路図。
【符号の説明】
１  連想メモリ
２  ビット列振分け回路
１１，１２  比較回路
１３  比較制御回路
１４  ビット比較部
１５  ＳＲＡＭセル
１６  コンパレータ
１７，１８  プリチャージ回路
１９，２０  ラッチ回路
【図１】
2004296016.tif 000003
【図２】
2004296016.tif 000004
【図３】
2004296016.tif 000005
【図４】
2004296016.tif 000006
【図５】
2004296016.tif 000007
【図６】
2004296016.tif 000008
【図７】
2004296016.tif 000009
【図８】
2004296016.tif 000010
【図９】
2004296016.tif 000011