(57)【要約】【課題】ワード連結を行った場合も常に正しい検索結果を得ることができ、しかも低消費電力、かつ高検索スループットの連想メモリを提供する。【解決手段】本発明の連想メモリにおいて、各々の１ワード回路は、１ワード分のデータを記憶し、記憶されたデータと検索データとの一致検索を行って、その検索結果を出力するＣＡＭワードと、１ワード回路のＣＡＭワードから出力される検索結果と前段のＣＡＭブロックの対応する１ワード回路から出力される一致フラグとの論理をとった信号を出力する第１手段と、第１手段から出力される信号を一致フラグとしてラッチするレジスタと、このレジスタから出力される一致フラグを、後段のＣＡＭブロックの対応する１ワード回路に出力する第２手段と、該レジスタから出力される一致フラグを、プライオリティエンコーダに出力する第３手段とを備える。【選択図】図２
2004280992.tif 000002
【特許請求の範囲】
【請求項１】
ワード連結機能を備える連想メモリであって、
複数のＣＡＭブロックを有するＣＡＭアレイと、所定の優先順位付けに従い、一致が検出されたワードのアドレスを出力するプライオリティエンコーダとを備え、
各々の前記ＣＡＭブロックは、複数の１ワード回路を備え、
各々の前記１ワード回路は、１ワード分のデータを記憶し、この記憶されたデータと検索データとの一致検索を行って、その検索結果を出力するＣＡＭワードと、当該１ワード回路のＣＡＭワードから出力される検索結果と前段のＣＡＭブロックの対応する１ワード回路から出力される一致フラグとの論理をとった信号を出力する第１手段と、この第１手段から出力される信号を一致フラグとしてラッチするレジスタと、このレジスタから出力される一致フラグを、後段のＣＡＭブロックの対応する１ワード回路に出力する第２手段と、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力する第３手段とを備えることを特徴とする連想メモリ。
【請求項２】
前記第１手段は、当該１ワード回路のＣＡＭワードから出力される検索結果をそのまま出力するか、当該１ワード回路のＣＡＭワードから出力される検索結果と前記前段のＣＡＭブロックの対応する１ワード回路から出力される一致フラグとの論理をとった信号を出力するかを制御する手段を備え、
前記レジスタは、前記第１手段から出力される信号をラッチするかどうかを制御する手段を備え、
前記第２手段は、前記レジスタから出力される一致フラグを、前記後段のＣＡＭブロックの対応する１ワード回路に出力するかどうかを制御する手段を備え、
前記第３手段は、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力するかどうかを制御する手段を備えることを特徴とする請求項１に記載の連想メモリ。
【請求項３】
複数ワードを連結してエントリデータを構成する場合、検索前に、当該エントリデータを構成する各々の１ワード分のデータを各々対応するＣＡＭブロックの１ワード回路に登録し、検索時に、前記エントリデータを構成する各々の１ワード分のデータとこれに対応する検索データの１ワード分のデータとの一致検索を、前記エントリデータを構成する各々の１ワード分のデータに対応するＣＡＭブロックにおいてのみ順次行う請求項１または２に記載の連想メモリ。
【請求項４】
前記エントリデータを構成する全ての１ワード分のデータとこれに対応する検索データの全ての１ワード分のデータとが一致するエントリデータの検索を行う請求項３に記載の連想メモリ。
【請求項５】
前記エントリデータを構成する一部の１ワード分のデータとこれに対応する検索データの一部の１ワード分のデータとが一致するエントリデータの検索を行う請求項３に記載の連想メモリ。
【請求項６】
隣接していない前段および後段それぞれのＣＡＭブロックの１ワード回路に登録された１ワード分のデータを順次検索する場合、一致検索が行われない前記前段および後段のＣＡＭブロックの間にあるＣＡＭブロックの１ワード回路において、前記前段のＣＡＭブロックの対応する１ワード回路から出力される一致フラグを、前記後段のＣＡＭブロックの対応する１ワード回路に伝達する請求項５に記載の連想メモリ。
【請求項７】
検索前に、複数の独立したテーブルに含まれるエントリデータを各々対応するＣＡＭブロックの１ワード回路に登録し、検索時に、検索対象のテーブルに対応するエントリデータが登録されているＣＡＭブロックにおいてのみ一致検索を行う請求項１〜６のいずれかに記載の連想メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数ワードを連結してエントリデータを構成し、検索対象となるエントリデータのビット幅を複数ワード数分のビット幅に拡張するワード連結機能を備える連想メモリに関するものである。
【０００２】
【従来の技術】
従来より、複数のワードに記憶されたデータと検索データとの一致検索を同時に行い、検索データに一致するデータが記憶されたワードのアドレス、あるいはこれに関連したデータを出力する機能を有する半導体記憶装置として、内容によりデータ検索を行う連想メモリ（内容アドレス式メモリ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）：以下、ＣＡＭという）がよく知られている。
【０００３】
図１４は、従来のＣＡＭの一例のブロック図である。同図に示すＣＡＭ７０は、図中横方向に配列されたｍビットのＣＡＭセルからなるＮ個のワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎと、ｍビットの検索データを格納する比較レジスタ７２と、ｍビットのマスクデータを格納するマスクレジスタ７４と、ｍビットの検索ビット線ドライバ７６と、Ｎ個の一致フラグレジスタＭＦＲ＿１，ＭＦＲ＿２，…，ＭＦＲ＿ｎと、プライオリティエンコーダ７８とを備えている。
【０００４】
なお、ＣＡＭ７０は、上記回路に加えて、通常の半導体記憶装置と同様に、それぞれのワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎに対してデータの書き込み／読み出しを行うためのデコーダ、ｍビットのデータビット線ドライバ、センスアンプ等の回路を備えているが、ここでは図面の煩雑さを避けるために省略されている。
【０００５】
ＣＡＭ７０では、検索前に、それぞれのワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎにデータが記憶される。
【０００６】
検索時には、比較レジスタ７２に、ｍビットの検索データが格納され、マスクレジスタ７４にはｍビットのマスクデータが格納される。ｍビットの検索データの各々のビットは、ｍビットのマスクデータの各々対応するビットによってマスク処理され、マスク処理後のｍビットの検索データが、検索ビット線ドライバ７６によって各々対応するｍビットの検索ビット線上にドライブされる。
【０００７】
各々のワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎでは、記憶されているｍビットのデータとｍビットの検索ビット線上にそれぞれドライブされたｍビットの検索データとの一致検索が同時（並列）に行われる。その検索結果は、それぞれ一致線ＭＬ＿１，ＭＬ＿２，…，ＭＬ＿ｎを介して対応する一致フラグレジスタＭＦＲ＿１，ＭＦＲ＿２，…，ＭＦＲ＿ｎに一致フラグとして格納される。
【０００８】
一致フラグレジスタに格納された一致フラグは、それぞれ一致フラグ出力線ＭＦ＿１，ＭＦ＿２，…，ＭＦ＿ｎを介してプライオリティエンコーダ７８に入力され、所定の優先順位に従って、一致が検出されたワードの中から最優先順位のワードのアドレス（最優先一致アドレス：ＨＭＡ）が出力される。
【０００９】
例えば、検索の結果、一致フラグレジスタＭＦＲ＿１，ＭＦＲ＿２，…，ＭＦＲ＿ｎに、一致フラグとして、それぞれ‘０’，‘１’，‘１’，‘０’，…，‘１’，‘０’が格納された場合を説明する。ここで、一致フラグの‘１’は一致あり、‘０’は一致なしを意味するものとする。また、ワードの優先順位は、Ｗ＿１が最も高く、Ｗ＿ｎに向かうに従って順次優先順位が低くなるものとする。
【００１０】
この場合、ワードＷ＿２，Ｗ＿３，…，Ｗ＿ｎ−１で一致が検出されているので、ワードＷ＿２のアドレスがＨＭＡとして出力される。また、一致フラグレジスタＭＦＲ＿２に格納された一致フラグを‘０’にクリアすることにより、その次に優先順位の高いワードＷ＿３に対応するアドレスをＨＭＡとして出力することができる。以下同様にして、一致が検出されたワードのアドレスを順次出力することができる。
【００１１】
上記のような基本構成を有するＣＡＭ７０は、ワードが設計上特定のビット幅、上記の例ではｍビット幅に固定されており、拡張することができないため、用途が限定されるという問題があった。すなわち、ｍビットよりも少ないビット幅のデータに対する検索は、マスクレジスタ７４にマスクデータを設定し、検索対象となるビット位置を指定することで可能であるが、ｍビットよりも多いビット幅のデータを検索することはできない。
【００１２】
従来のＣＡＭ７０のこのような問題点を解決する１つの手段として、特許文献１には、検索の対象となるワードを連結することによってＣＡＭのビット幅を２ワードもしくはそれ以上の複数ワードに拡張する技術が提案されている。
【００１３】
図１５は、特許文献１のＣＡＭで提案されたビット幅拡張回路の構成回路図である。同図に示すビット幅拡張回路８０は、各々のワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎにおいて、一致フラグを保持するラッチＬＴ＿１，ＬＴ＿２，…，ＬＴ＿ｎを備えている。また、ワードＷ＿２，Ｗ＿３，…，Ｗ＿ｎは、自分自身の検索結果と前段のワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎ−１の一致フラグとの論理積をとるＡＮＤゲートＡＤ＿２，ＡＤ＿３，…，ＡＤ＿ｎを備えている。
【００１４】
このビット幅拡張回路８０を備える特許文献１のＣＡＭでは、検索を行う前に、初期化信号によって、全てのワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎのラッチＬＴ＿１，ＬＴ＿２，…，ＬＴ＿ｎの出力ＭＦ＿１，ＭＦ＿２，…，ＭＦ＿ｎが全て‘１’、すなわち一致の状態に初期化される。これにより、ワードＷ＿２，Ｗ＿３，…，Ｗ＿ｎのＡＮＤゲートＡＤ＿２，ＡＤ＿３，…，ＡＤ＿ｎの一方の入力も‘１’となる。
【００１５】
例えば、ワード連結を行って、２ワード分のビット幅を持つ検索データで検索を行う場合、まず、２ワード分の検索データのうちの第１の１ワード分の検索データで１回目の検索が行われる。
【００１６】
その結果、ワードＷ＿１の検索結果はラッチＬＴ＿１に格納される。また、ワードＷ＿２，Ｗ＿３，…，Ｗ＿ｎの検索結果は、ＡＮＤゲートＡＤ＿２，ＡＤ＿３，…，ＡＤ＿ｎによって、それぞれ前段のワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎ−１のラッチＬＴ＿１，ＬＴ２，…，ＬＴ＿ｎ−１の出力ＭＦ＿１，ＭＦ＿２，…，ＭＦ＿ｎ−１との論理積がとられ、その演算結果がそれぞれ対応するラッチＬＴ＿２，ＬＴ＿３，…，ＬＴ＿ｎに一致フラグとして格納される。
【００１７】
１回目の検索の場合、前述の通り、ラッチＬＴ＿１，ＬＴ＿２，…，ＬＴ＿ｎの出力ＭＦ＿１，ＭＦ＿２，…，ＭＦ＿ｎは‘１’であるから、ＡＮＤゲートＡＤ＿２，ＡＤ＿３，…，ＡＤ＿ｎからは、それぞれワードＷ＿２，Ｗ＿３，…，Ｗ＿ｎの検索結果がそのまま出力され、それぞれ対応するラッチＬＴ＿２，ＬＴ＿３，…，ＬＴ＿ｎに格納される。
【００１８】
続いて、２ワード分の検索データのうちの第２の１ワード分の検索データで２回目の検索が行われる。
【００１９】
２回目の検索の場合、ＡＮＤゲートＡＤ＿２，ＡＤ＿３，…，ＡＤ＿ｎの一方の入力は１回目の検索結果の一致フラグであるから、ＡＮＤゲートＡＤ＿２，ＡＤ＿３，…，ＡＤ＿ｎからは、それぞれワードＷ＿１，Ｗ＿２，…，Ｗ＿ｎ−１の１回目の一致フラグとワードＷ＿２，Ｗ＿３，…，Ｗ＿ｎの２回目の検索結果の論理積が出力される。すなわち、２ワード分のＡＮＤ検索が行われる。
【００２０】
以上のようにして、特許文献１のＣＡＭでは、ｋワードを連結して、ｋワード分のビット幅を持つ検索データで検索を行う場合、それぞれ対応する１ワード分の検索データを用いて、ｋ回のＡＮＤ検索を行うことによって最終的な検索結果を得ることができる。
【００２１】
ところで、特許文献１のＣＡＭでは、上述するビット拡張機能を備えることによって２ワード以上にまたがるデータの検索が可能となっているが、検索データによっては誤った検索結果を出力する場合があるという問題点があった。
【００２２】
図１６は、特許文献１のＣＡＭにおいて、誤った検索結果を出力する可能性のあるデータ構造の一例の概念図である。同図には、それぞれ属性Ｉ，ＩＩ，ＩＩＩ，ＩＶの４つのデータがセットとなって１つのエントリを構成するデータ構造が示されている。各属性Ｉ，ＩＩ，ＩＩＩ，ＩＶのデータは、１ワード分のビット長と同じビット長のデータであり、それぞれ別々のワードに格納される。
【００２３】
図１６に示す各エントリの属性Ｉ，ＩＩ，ＩＩＩ，ＩＶのデータを、図１７に示すようにＣＡＭの各ワードに登録し、１エントリに相当する４ワード分の検索データとして、例えば‘ＡＢＣＤ’で検索を行う場合、前述のように、まず、１回目の検索では検索データ‘Ａ’で検索を行い、以下順に、２〜４回目の検索でそれぞれ検索データ‘Ｂ’、‘Ｃ’、‘Ｄ’で検索を行うことにより、正しい検索結果を得ることができる。この場合、エントリ２が一致する。
【００２４】
これに対し、検索データとして、例えば‘ＢＤＡＢ’で検索を行う場合、エントリ４でのみ一致が検出されるべきであるにも関わらず、エントリ１の属性ＩＩＩ，ＩＶおよびエントリ２の属性Ｉ，ＩＩにまたがるデータ‘ＢＤＡＢ’においても一致が検出される。
【００２５】
また、このようなデータを登録したＣＡＭの使用方法の例として、例えば属性Ｉ，ＩＩに登録されているデータのみを対象として検索を行う場合もある。この場合、検索データとして、例えば‘ＡＢ’で検索すると、エントリ２のみで一致が検出されるべきであるにも関わらず、エントリ１の属性ＩＩ，ＩＩＩのデータ‘ＡＢ’でも誤って一致が検出される。
【００２６】
さらに、特許文献１のＣＡＭでは、隣接するワード間でのビット幅拡張を基本としている。このため、隣接していないワードに登録されているデータ間でビット拡張をした検索を行うためには、例えば属性Ｉと属性ＩＩＩという隣接していないデータを対象として検索を行うためには、まず、属性Ｉの検索データで検索を行った後、全ビットをマスク処理した検索データでダミー検索を行って、全てのエントリの属性ＩＩの検索結果を一致とし、その後に属性ＩＩＩの検索データで検索を行う必要がある。
【００２７】
しかし、このように冗長なダミー検索はＣＡＭの検索スループットを大幅に低下させるという問題がある。
【００２８】
また、ＣＡＭでは、全てのワードにおいて同時に検索動作が行われるため、本質的に消費電流が大きいという問題があるが、図１６のようなエントリデータで逐次検索を行う場合、例えば属性Ｉのデータを検索する場合には残りの属性ＩＩ，ＩＩＩ，ＩＶは本来検索動作を行わせる必要がないにも関わらず、特許文献１のＣＡＭでは、常に全てのワード、すなわち全ての属性のデータが検索対象となるため、不要な電流を消費するという問題もあった。
【００２９】
また、特許文献１のＣＡＭでは、正しい検索結果を得るためには、検索前に、全てのラッチＬＴ＿１，ＬＴ＿２，…，ＬＴ＿ｎを初期化する必要があり、その初期化にかかるステップのために検索スループットが低下するという問題もあった。
【００３０】
【特許文献１】
特公昭６３−５８３９号公報
【００３１】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点を解消し、ワード連結を行った場合も常に正しい検索結果を得ることができ、しかも低消費電力、かつ高検索スループットの連想メモリを提供することにある。
【００３２】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ワード連結機能を備える連想メモリであって、
複数のＣＡＭブロックを有するＣＡＭアレイと、所定の優先順位付けに従い、一致が検出されたワードのアドレスを出力するプライオリティエンコーダとを備え、
各々の前記ＣＡＭブロックは、複数の１ワード回路を備え、
各々の前記１ワード回路は、１ワード分のデータを記憶し、この記憶されたデータと検索データとの一致検索を行って、その検索結果を出力するＣＡＭワードと、当該１ワード回路のＣＡＭワードから出力される検索結果と前段のＣＡＭブロックの対応する１ワード回路から出力される一致フラグとの論理をとった信号を出力する第１手段と、この第１手段から出力される信号を一致フラグとしてラッチするレジスタと、このレジスタから出力される一致フラグを、後段のＣＡＭブロックの対応する１ワード回路に出力する第２手段と、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力する第３手段とを備えることを特徴とする連想メモリを提供するものである。
【００３３】
更に、本発明は、前記第１手段は、当該１ワード回路のＣＡＭワードから出力される検索結果をそのまま出力するか、当該１ワード回路のＣＡＭワードから出力される検索結果と前記前段のＣＡＭブロックの対応する１ワード回路から出力される一致フラグとの論理をとった信号を出力するかを制御する手段を備え、
前記レジスタは、前記第１手段から出力される信号をラッチするかどうかを制御する手段を備え、
前記第２手段は、前記レジスタから出力される一致フラグを、前記後段のＣＡＭブロックの対応する１ワード回路に出力するかどうかを制御する手段を備え、
前記第３手段は、前記レジスタから出力される一致フラグを、前記プライオリティエンコーダに出力するかどうかを制御する手段を備えることを特徴とする連想メモリを提供するものである。
【００３４】
ここで、前記ＣＡＭワードは、初期状態で一致の状態であるのが好ましい。
【００３５】
また、複数ワードを連結してエントリデータを構成する場合、検索前に、当該エントリデータを構成する各々の１ワード分のデータを各々対応するＣＡＭブロックの１ワード回路に登録し、検索時に、前記エントリデータを構成する各々の１ワード分のデータとこれに対応する検索データの１ワード分のデータとの一致検索を、前記エントリデータを構成する各々の１ワード分のデータに対応するＣＡＭブロックにおいてのみ順次行うのが好ましい。
【００３６】
また、前記エントリデータを構成する全ての１ワード分のデータとこれに対応する検索データの全ての１ワード分のデータとが一致するエントリデータの検索を行うのが好ましい。
【００３７】
また、前記エントリデータを構成する一部の１ワード分のデータとこれに対応する検索データの一部の１ワード分のデータとが一致するエントリデータの検索を行うのが好ましい。
【００３８】
また、隣接していない前段および後段それぞれのＣＡＭブロックの１ワード回路に登録された１ワード分のデータを順次検索する場合、一致検索が行われない前記前段および後段のＣＡＭブロックの間にあるＣＡＭブロックの１ワード回路において、前記前段のＣＡＭブロックの対応する１ワード回路から出力される一致フラグを、前記後段のＣＡＭブロックの対応する１ワード回路に伝達するのが好ましい。
【００３９】
また、検索前に、複数の独立したテーブルに含まれるエントリデータを各々対応するＣＡＭブロックの１ワード回路に登録し、検索時に、検索対象のテーブルに対応するエントリデータが登録されているＣＡＭブロックにおいてのみ一致検索を行うのが好ましい。
【００４０】
【発明の実施の形態】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の連想メモリを詳細に説明する。
【００４１】
図１は、本発明の連想メモリの一実施形態の構成概略図である。同図に示す連想メモリ（以下、ＣＡＭという）１０は、１ワードで、もしくは２ワードまたは４ワードを連結（最大４ワードまで連結可能）して１つのエントリを構成するように設定可能なもので、ＣＡＭアレイ１２と、プライオリティエンコーダ１４とを備えている。
【００４２】
ＣＡＭ１０において、ＣＡＭアレイ１２は、それぞれＮ（Ｎ＝１，２，３，…）ワードからなる４つのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３を備えている。すなわち、ＣＡＭアレイ１２全体では４Ｎワードを備えている。従って、ＣＡＭ１０では、１つのエントリが１ワード、２ワードおよび４ワードで構成された場合の総エントリ数は、それぞれ４Ｎ個、２Ｎ個およびＮ個となる。
【００４３】
なお、ＣＡＭアレイ１２は、少なくとも最大連結ワード数分以上のＣＡＭブロックを備えていればよい。本実施形態の場合、４個以上いくつのＣＡＭブロックを備えていてもよい。
【００４４】
ＣＡＭアレイ１２の各ワードのアドレスは、それぞれ４ｎ，４ｎ＋１，４ｎ＋２，４ｎ＋３（ｎ＝０，１，２，…）で指定される。本実施形態では、ＣＡＭブロックＣＢ＿０はアドレス４ｎ（０，４，８，…）で指定されるＮワードを含み、同様に、ＣＡＭブロックＣＢ＿１，ＣＢ＿２，ＣＢ＿３は、それぞれアドレス４ｎ＋１（１，５，９，…）、４ｎ＋２（２，６，１０，…）、４ｎ＋３（３，７，１１，…）で指定されるＮワードを含む。
【００４５】
各々のＣＡＭブロックは、Ｎワード分の１ワード回路１６と、ブロックドライバ１８とを備えている。１ワード回路１６の詳細は後述する。
【００４６】
ブロックドライバ１８は、信号ＫＥＹＤ［ｍ−１：０］、信号ＳＬＥ［３：０］、信号ＡＣＩＥＮ［３：０］、信号ＭＦＬＴ［３：０］、信号ＭＦＯＥ［３：０］、信号ＡＣＯＥＮ［３：０］に応じて、各々対応するＣＡＭブロックに含まれる全ての１ワード回路１６をドライブする。ブロックドライバ１８は、検索ビット線ドライバ２０と、４個のバッファ２２とを備えている。
【００４７】
ＣＡＭブロックＣＢ＿０のブロックドライバ１８の検索ビット線ドライバ２０および４個のバッファ２２には、それぞれ信号ＳＬＥ［０］、ＡＣＩＥＮ［０］、ＭＦＬＴ［０］、ＭＦＯＥ［０］およびＡＣＯＥＮ［０］が入力されている。同様に、ＣＡＭブロックＣＢ＿３，ＣＢ＿２，ＣＢ＿１のブロックドライバ１８の検索ビット線ドライバ２０および４個のバッファ２２には、それぞれ対応する信号ＳＬＥ［３：１］、ＡＣＩＥＮ［３：１］、ＭＦＬＴ［３：１］、ＭＦＯＥ［３：１］およびＡＣＯＥＮ［３：１］が入力されている。
【００４８】
また、各々のＣＡＭブロックのブロックドライバ１８の検索ビット線ドライバ２０には、検索データである信号ＫＥＹＤ［ｍ−１：０］が共通に入力されている。
【００４９】
各ＣＡＭブロックの検索ビット線ドライバ２０は、検索ビット線イネーブル信号ＳＬＥ［３：０］の各々対応するビットの状態に応じて、各々ＣＡＭブロックＣＢ＿３，ＣＢ＿２，ＣＢ＿１，ＣＢ＿０の検索ビット線対ＳＬ［ｍ−１：０］、ＳＬＮ［ｍ−１：０］をドライブする。検索ビット線ドライバ２０によってドライブされるｍ対の検索ビット線対は後述する１ワード回路のＣＡＭワードを構成するｍビットのＣＡＭセルに接続されている。また、４個のバッファ２２によってドライブされる各信号ＡＣＩＥＮ［３：０］、ＭＦＬＴ［３：０］、ＭＦＯＥ［３：０］およびＡＣＯＥＮ［３：０］の対応するビットは、各々対応するＣＡＭブロックＣＢ＿３，ＣＢ＿２，ＣＢ＿１，ＣＢ＿０に含まれる全ての１ワード回路１６に共通に接続されている。
【００５０】
ＣＡＭ１０では、信号ＳＬＥ［３：０］によって指定される検索対象のＣＡＭブロックにおいてのみ検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］がドライブされ、一致検索が行われる。従って、複数ワードを連結して１エントリを構成した場合、検索対象外のＣＡＭブロックの検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］のドライブが抑止されるので、その分の消費電力を削減することができる。
【００５１】
最後に、プライオリティエンコーダ１４は、所定の優先順位付けに従って、一致が検出されたワードのアドレスを順次エンコードし、最優先一致アドレスＨＭＡとして出力する。プライオリティエンコーダ１４には、全てのワードの一致フラグ出力ＭＦＯが入力されており、優先順位の高いワードのアドレスから順次出力される。複数ワードを連結して１エントリを構成した場合、エントリを代表するワードのアドレスが出力される。
【００５２】
なお、図面の煩雑さを避けるために省略しているが、ＣＡＭ１０においても、デコーダ、データビット線ドライバ、センスアンプ等の回路は当然備えられている。
【００５３】
次に、１ワード回路１６について説明する。
【００５４】
図２は、１ワード回路の一実施形態の構成概略図である。同図に示す１ワード回路１６は、ＣＡＭワード２４と、ワードロジック２６とを備えている。
【００５５】
ＣＡＭワード２４は、１ワード分のデータを記憶し、記憶されているデータと検索データとの一致検索を行って、その検索結果を出力するもので、ｍビットのＣＡＭセル２８と、一致センス回路３０とを備えている。
【００５６】
図３は、ＣＡＭセルの一実施形態の構成回路図である。同図に示すＣＡＭセル２８は不一致検出型のＣＡＭセルであり、１ビットのデータを記憶する記憶回路３２と、この記憶回路３２に記憶された１ビットのデータとこれに対応して検索ビット線対ＳＬ，ＳＬＮ上にドライブされる検索データとを比較し、その検出結果を一致線ＭＬ上に出力する比較回路３４とを備えている。
【００５７】
記憶回路３２はＳＲＡＭ構成のものであり、互いに一方の出力が他方の入力に入力された２つのインバータ３６，３８と、それぞれデータビット線対ＢＬ，ＢＬＮと２つのインバータ３６，３８の入力との間に接続され、そのゲートがワード線ＷＬに共通に接続された２つのＮ型ＭＯＳトランジスタ（以下、ＮＭＯＳという）４０，４２とを備えている。ＳＲＡＭの構成は従来公知であるから、ここではその説明は省略する。
【００５８】
なお、記憶回路３２としては、１ビットのデータを記憶するものであれば、従来公知のメモリセルがいずれも利用可能である。また、記憶回路３２のデータの書き込み／読み出しに係る回路も従来公知のものがいずれも利用可能である。
【００５９】
比較回路３４は、４つのＮＭＯＳ４４，４６，４８，５０を備えている。ＮＭＯＳ４４，４６は、一致線ＭＬとグランドとの間に直列に接続され、そのゲートは、それぞれ記憶回路３２のデータＤおよび検索ビット線ＳＬＮに接続されている。また、ＮＭＯＳ４８，５０も一致線ＭＬとグランドとの間に直列に接続され、そのゲートは、それぞれ記憶回路３２の反転データＤＮおよび検索ビット線ＳＬに接続されている。
【００６０】
図４は、一致センス回路の一実施形態の構成回路図である。同図に示す一致センス回路３０は、一致線ＭＬと一致センス出力線ＭＴとの間に直列に接続された２つのインバータ５２，５４と、電源と一致線ＭＬとの間に並列に接続された２つのＰ型ＭＯＳトランジスタ（以下、ＰＭＯＳという）５６，５８とを備えている。ＰＭＯＳ５６，５８のゲートには、それぞれ信号ＭＬＰＣＮおよびインバータ５２の出力が接続されている。
【００６１】
１ワード回路１６では、検索前に、あらかじめ検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］が共にディスチャージされて‘００’とされる。また、信号ＭＬＰＣＮが‘Ｌ（＝０：ローレベル）’とされ、一致センス回路３０のＰＭＯＳ５６を介して一致線ＭＬがプリチャージされる。
【００６２】
この時、ＣＡＭセル２８の比較回路３４のＮＭＯＳ４６，５０は共にオフ状態であり、一致線ＭＬとグランドとの間は非導通状態となる。また、インバータ５２の出力は‘Ｌ’となり、ＰＭＯＳ５８がオン状態となって、一致線ＭＬはＰＭＯＳ５６，５８の両方を介してプリチャージされる。また、インバータ５４の出力、すなわち一致センス出力線ＭＴ上に出力される信号（一致センス出力）は‘Ｈ’（＝１：ハイレベル）状態となる。
【００６３】
検索時には、信号ＭＬＰＣＮが‘Ｈ’とされ、ＰＭＯＳ５６がオフ状態とされる。また、検索ビット線対ＳＬ，ＳＬＮが、検索データ（データ１、データ０、ドントケア）に応じて、‘１０’，‘０１’，‘００’のいずれかにドライブされる。
【００６４】
検索ビット線対ＳＬ，ＳＬＮが‘１０’または‘０１’にドライブされた場合、それぞれのＣＡＭセル２８では、検索データと記憶されているデータとが同じであれば、ＮＭＯＳ４４，４６のうちの一方、かつＮＭＯＳ４８，５０のうちの一方がオフ状態となっており、一致線ＭＬはプリチャージされたままの‘Ｈ’の状態に保持される。従って、一致線ＭＬは、全てのＣＡＭセル２８において全て一致が検出された場合にのみ‘Ｈ’の状態に保持される。
【００６５】
これに対し、１つのＣＡＭセル２８でも、記憶されているデータと検索データとが異なる場合、ＮＭＯＳ４４，４６の両方、またはＮＭＯＳ４８，５０の両方が共にオン状態となり、一致線ＭＬはディスチャージされて‘Ｌ’になる。
【００６６】
また、検索ビット線対ＳＬ，ＳＬＮが‘００’にドライブされた場合、ＣＡＭセル２８においてＮＭＯＳ４６，５０がオフ状態となるため、記憶されているデータに関係なく、一致線ＭＬはプリチャージされたままの‘Ｈ’の状態に保持される。
【００６７】
一致線ＭＬ上に出力された検索結果は、一致センス回路３０によって増幅出力される。すなわち、一致線ＭＬがプリチャージされたままの‘Ｈ’の状態である場合、一致センス出力ＭＴは、前述の通り‘Ｈ’の状態に保持される。これに対し、一致線ＭＬがディスチャージされて‘Ｌ’となった場合、インバータ５２の出力は‘Ｈ’となり、ＰＭＯＳ５８はオフ状態となって、一致センス出力ＭＴは‘Ｌ’となる。
【００６８】
なお、ＣＡＭセル２８の構成は何ら限定されず、不一致検出型のものでも一致検出型のものでも従来公知のものがいずれも利用可能である。ＣＡＭ１０では、不一致検出型のＣＡＭセルを用いることにより、初期状態で一致センス出力が一致の状態である‘Ｈ’となるため、後述するように、隣接していない前段および後段のＣＡＭブロック間で部分検索を行う時に、両者の間にある検索対象外のＣＡＭブロックにおいて、前段のＣＡＭブロックの検索結果を後段のＣＡＭブロックに伝達することができる。
【００６９】
続いて、１ワード回路２４において、ワードロジック２６は、自分自身の検索結果、または自分自身の検索結果と前段の１ワード回路１６の一致フラグとの論理積をとった演算結果を一致フラグとして保持する一致フラグレジスタ６０と、複数のワードの一致フラグを連結するＡＮＤチェーンを構成するＯＲ−ＡＮＤ複合ゲート６２およびＯＲゲート６４と、エントリの一致フラグを出力するＡＮＤゲート６６とを備えている。
【００７０】
ＯＲ−ＡＮＤ複合ゲート６２を構成するＯＲゲートの入力端子には、信号ＡＣＩおよび信号ＡＣＩＥＮが入力され、ＡＮＤゲートの入力端子には、一致センス回路３０からの一致センス出力が入力されている。ＯＲ−ＡＮＤ複合ゲート６２の出力は一致フラグレジスタ６０に入力されている。一致フラグレジスタ６０は、信号ＭＦＬＴの制御によって、ＯＲ−ＡＮＤ複合ゲート６２から出力される信号をラッチする。
【００７１】
一致フラグレジスタ６０の出力は、ＯＲゲート６４の一方の入力端子、およびＡＮＤゲート６６の一方の入力端子に入力されている。ＯＲゲート６４の他方の入力端子には信号ＡＣＯＥＮが入力され、ＯＲゲート６４からは信号ＡＣＯが出力されている。また、ＡＮＤゲート６６の他方の入力端子には信号ＭＦＯＥが入力され、ＡＮＤゲート６６からは信号ＭＦＯが出力されている。
【００７２】
図１に示すように、全てのＣＡＭブロックＣＢ＿３，ＣＢ＿２，ＣＢ＿１，ＣＢ＿０の全ての１ワード回路１６から出力される信号ＭＦＯはプライオリティエンコーダ１４に入力されている。また、ＣＡＭブロックＣＢ＿０のそれぞれの１ワード回路１６に入力される信号ＡＣＩは電源に接続され、ＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２のそれぞれの１ワード回路１６から出力される信号ＡＣＯは、信号ＡＣＩとして、それぞれ後段のＣＡＭブロックＣＢ＿１，ＣＢ＿２，ＣＢ＿３の各々対応する１ワード回路１６に入力されている。
【００７３】
ここで、信号ＡＣＩはＡＮＤチェーン入力であり、複数ワードを連結して１エントリを構成する場合に、連結される前段のＣＡＭブロックの対応する１ワード回路１６のＡＮＤチェーン出力（信号ＡＣＯ）が入力される。なお、初段のＣＡＭブロックＣＢ＿０の１ワード回路１６に入力される信号ＡＣＩは常に‘Ｈ’とされる。また、信号ＡＣＩＥＮ［３：０］はＡＣＩ入力イネーブルであり、‘Ｌ’はＡＣＩ入力が有効、‘Ｈ’はＡＣＩ入力が無効であることを表す。
【００７４】
信号ＭＦＬＴ［３：０］は一致フラグレジスタ６０のラッチ制御信号であり、‘Ｌ’は一致フラグレジスタ６０がスルー状態、‘Ｈ’は一致フラグレジスタ６０がホールド状態であることを表す。
【００７５】
信号ＭＦＯは、エントリの一致フラグ出力である。また、信号ＭＦＯＥ［３：０］は一致フラグ出力イネーブルであり、‘Ｌ’は一致フラグ出力ＭＦＯが無効（本実施形態では、信号ＭＦＯは‘Ｌ’固定）、‘Ｈ’は一致フラグ出力ＭＦＯが有効であることを表す。
【００７６】
信号ＡＣＯはＡＮＤチェーン出力であり、信号ＡＣＩとして、連結される後段のＣＡＭブロックの対応する１ワード回路１６に入力される。また、信号ＡＣＯＥＮ［３：０］はＡＮＤチェーン出力イネーブルであり、‘Ｌ’は、ＡＮＤチェーン出力（信号ＡＣＯ）を後段のＣＡＭブロックの対応する１ワード回路１６に対して出力することを表し、‘Ｈ’は、ＡＮＤチェーン出力（信号ＡＣＯ）を後段のＣＡＭブロックの対応する１ワード回路１６に出力しない（本実施形態の場合、信号ＡＣＯは‘Ｈ’固定）ことを表す。
【００７７】
信号ＫＥＹＤ［ｍ−１：０］は検索データである。また、信号ＳＬＥ［３：０］は、検索ビット線対イネーブルであり、検索対象のＣＡＭブロック２２を指示する。‘Ｌ’は検索ビット線対ＳＬ，ＳＬＮがディスエーブル状態、‘Ｈ’は検索ビット線対ＳＬ，ＳＬＮがイネーブル状態となることを表す。信号ＳＬＥ［３：０］のうち、‘Ｈ’であるビットに対応するＣＡＭブロックの検索ビット線対ＳＬ，ＳＬＮだけに検索データ（信号ＫＥＹＤ［ｍ−１：０］）がドライブされる。
【００７８】
１ワード回路１６では、前述のように、検索の結果、ＣＡＭワード２４の一致センス回路３０から一致センス出力が出力される。ワードロジック２６のＯＲ−ＡＮＤ複合ゲート６２からは、信号ＡＣＩＥＮが‘Ｈ’の場合には、一致センス回路３０から出力される一致センス出力ＭＴがそのまま出力され、信号ＡＣＩＥＮが‘Ｌ’の場合には、一致センス回路３０から出力される一致センス出力ＭＴと信号ＡＣＩとの論理積がとられて、その演算結果が出力される。
【００７９】
ＯＲ−ＡＮＤ複合ゲート６２から出力される信号は、信号ＭＦＬＴの制御により、一致フラグレジスタ６０にラッチされる。本実施形態の場合、検索対象のＣＡＭブロックでは、信号ＭＦＬＴが所定の期間‘Ｌ’とされた後、‘Ｈ’とされ、ＯＲ−ＡＮＤ複合ゲート６２の出力が一致フラグレジスタ６０にラッチされる。一方、検索対象外のＣＡＭブロックでは、信号ＭＦＬＴが常に‘Ｈ’とされ、一致フラグレジスタ６０のデータは変更されない。
【００８０】
ＯＲゲート６４からは、信号ＡＣＯとして、信号ＡＣＯＥＮが‘Ｈ’の場合には常に‘Ｈ’が出力され、信号ＡＣＯＥＮが‘Ｌ’の場合には、一致フラグレジスタ６０にラッチされた一致フラグが出力される。当該ＣＡＭブロックの１ワード回路１６と前段のＣＡＭブロックの１ワード回路１６が連結されない場合、一致フラグレジスタ６０には、当該１ワード回路１６の検索結果がラッチされ、連結される場合には前段の１ワード回路の一致フラグと当該１ワード回路の検索結果との論理をとった信号がラッチされる。また、当該ＣＡＭブロックの１ワード回路１６と後段のＣＡＭブロックの１ワード回路１６が連結されない場合、信号ＡＣＯＥＮを‘Ｈ’とし、信号ＡＣＯを‘Ｈ’に固定することにより、ＯＲゲート６４による電力消費を削減することができる。
【００８１】
また、ＡＮＤゲート６６からは、信号ＭＦＯとして、信号ＭＦＯＥが‘Ｈ’の場合には、一致フラグレジスタ６０にラッチされた一致フラグが出力され、信号ＭＦＯＥが‘Ｌ’の場合には常に‘Ｌ’が出力される。複数ワードを連結して１エントリを構成した場合、検索対象外のＣＡＭブロックの信号ＭＦＯＥを‘Ｌ’とし、信号ＭＦＯを‘Ｌ’に固定することにより、ＡＮＤゲート６６による電力消費を削減することができる。
【００８２】
また、ＯＲ−ＡＮＤ複合ゲート６２、ＯＲゲート６４、およびＡＮＤゲート６６を設け、信号ＡＣＩＥＮ、信号ＡＣＯＥＮ、および信号ＭＦＯＥの制御により、信号ＡＣＩ入力、信号ＡＣＯ出力、および信号ＭＦＯ出力の有効、無効を制御することによって、一致フラグレジスタ６０を初期化することなく一致検索を行うことができる。これにより、初期化にかかるステップを省き、検索スループットを向上させることができる。
【００８３】
以下、具体例を挙げてＣＡＭ１０の動作を説明する。
【００８４】
（１）４ワードを連結して構成されたエントリデータの検索（４ワードの全てで一致するエントリデータの検索）
【００８５】
４ワードを連結してエントリデータを構成する場合、信号ＡＣＯＥＮ［３：０］＝‘００００’に設定される。これにより、ＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３の全ての１ワード回路１６のＡＮＤチェーン出力（信号ＡＣＯ）が有効となり、４ワードで１エントリが構成される。
【００８６】
検索の前に、ＣＡＭアレイ１２に各エントリデータが登録される。例えば、図１６に示す４ワード幅のエントリデータを使用する場合、図５に示すように、各エントリの属性Ｉ，ＩＩ，ＩＩＩ，ＩＶのデータが、それぞれＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３に登録される。検索時には、属性Ｉ，ＩＩ，ＩＩＩ，ＩＶの順に、それぞれ対応する１ワード幅の検索データを用いて合計４回の検索（ＡＮＤ検索）が行われる。
【００８７】
１回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性Ｉに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘０００１’、信号ＡＣＩＥＮ［３：０］＝‘ＸＸＸＸ’、信号ＭＦＬＴ［３：０］＝‘１１１０’、信号ＭＦＯＥ［３：０］＝‘０００１’の状態で行われる。なお、‘Ｘ’はドントケアを意味し、‘０’または‘１’のいずれかの状態に設定される（‘０’または‘１’のどちらに設定してもよい）。
【００８８】
すなわち、属性Ｉのデータが登録されているＣＡＭブロックＣＢ＿０の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。
【００８９】
また、ＣＡＭブロックＣＢ＿０の一致フラグレジスタ６０だけがスルー状態とされ、そのデータが更新される。ＣＡＭブロックＣＢ＿１，ＣＢ＿２，ＣＢ＿３の一致フラグレジスタ６０は全てホールド状態とされる。
【００９０】
また、ＣＡＭブロックＣＢ＿０の一致フラグ出力（信号ＭＦＯ）だけがイネーブル状態とされてプライオリティエンコーダ１４に入力される。他のＣＡＭブロックＣＢ＿１，ＣＢ＿２，ＣＢ＿３の一致フラグ出力はディスエーブル状態とされ全て‘Ｌ’に固定、すなわち不一致が検出された状態とされてプライオリティエンコーダ１４に入力される。
【００９１】
また、ＣＡＭブロックＣＢ＿０の１ワード回路１６に入力される信号ＡＣＩは常に‘Ｈ’であるから、そのＯＲ−ＡＮＤ複合ゲート６２からは、信号ＡＣＩＥＮの状態に関わらず一致センス回路３０から出力される一致センス出力が出力される。
【００９２】
すなわち、１回目の検索は、属性Ｉのデータが登録されているＣＡＭブロックＣＢ＿０でのみ行われ、ＣＡＭブロックＣＢ＿０から出力される一致フラグ出力（信号ＭＦＯ）がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、属性Ｉの部分で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【００９３】
また、ＣＡＭブロックＣＢ＿０のＡＮＤチェーン出力（信号ＡＣＯ）は、ＡＮＤチェーン入力（信号ＡＣＩ）として、後段のＣＡＭブロックＣＢ＿１に入力される。
【００９４】
続いて、２回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＩに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘００１０’、信号ＡＣＩＥＮ［３：０］＝‘ＸＸ０Ｘ’、信号ＭＦＬＴ［３：０］＝‘１１０１’、信号ＭＦＯＥ［３：０］＝‘００１０’の状態で行われる。
【００９５】
すなわち、属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿１の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿１の一致フラグレジスタ６０だけがスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿１の一致フラグ出力（信号ＭＦＯ）だけがイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿１のＯＲ−ＡＮＤ複合ゲート６２だけがイネーブル状態とされ、前段のＣＡＭブロックＣＢ＿０から出力されるＡＮＤチェーン出力（信号ＡＣＯ）とＣＡＭブロックＣＢ＿１の一致センス回路３０から出力される一致センス出力との論理積がとられて出力される。
【００９６】
すなわち、２回目の検索は、属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿１でのみ行われ、ＣＡＭブロックＣＢ＿１から出力される一致フラグ出力（信号ＭＦＯ）、すなわちＣＡＭブロックＣＢ＿０とＣＡＭブロックＣＢ＿１とのＡＮＤ検索の結果がプライオリティエンコーダ１４に入力される。同様に、この状態でプライオリティエンコーダ１４を動作させれば、属性ＩおよびＩＩの両方で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【００９７】
また、ＣＡＭブロックＣＢ＿１のＡＮＤチェーン出力（信号ＡＣＯ）は、ＡＮＤチェーン入力（信号ＡＣＩ）として、後段のＣＡＭブロックＣＢ＿２に入力される。
【００９８】
以下同様にして、３回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＩＩに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘０１００’、信号ＡＣＩＥＮ［３：０］＝‘Ｘ０ＸＸ’、信号ＭＦＬＴ［３：０］＝‘１０１１’、信号ＭＦＯＥ［３：０］＝‘０１００’として行われる。
【００９９】
すなわち、３回目の検索は、属性ＩＩＩのデータが登録されているＣＡＭブロックＣＢ＿２でのみ行われ、ＣＡＭブロックＣＢ＿２から出力される一致フラグ出力（信号ＭＦＯ）、すなわちＣＡＭブロックＣＢ＿０，ＣＢ＿１およびＣＢ＿２のＡＮＤ検索の結果がプライオリティエンコーダ１４に入力される。同様に、この状態でプライオリティエンコーダ１４を動作させれば、属性Ｉ，ＩＩおよびＩＩＩの全てで一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１００】
また、４回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＶに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘１０００’、信号ＡＣＩＥＮ［３：０］＝‘０ＸＸＸ’、信号ＭＦＬＴ［３：０］＝‘０１１１’、信号ＭＦＯＥ［３：０］＝‘１０００’として行われる。
【０１０１】
すなわち、４回目の検索は、属性ＩＶのデータが登録されているＣＡＭブロックＣＢ＿３でのみ行われ、ＣＡＭブロックＣＢ＿３から出力される一致フラグ出力（信号ＭＦＯ）、すなわちＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２およびＣＢ＿３のＡＮＤ検索の結果がプライオリティエンコーダ１４に入力される。同様に、この状態でプライオリティエンコーダ１４を動作させれば、属性Ｉ，ＩＩ，ＩＩＩ，ＩＶの全てで一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１０２】
上記のように、４ワードを連結して構成されたエントリデータに対して検索を行う場合、エントリデータの各属性Ｉ，ＩＩ，ＩＩＩ，ＩＶの１ワード分のデータとこれに対応する検索データの各１ワード分のデータ（４ワード幅の検索データの中のどの１ワード幅の検索データを使用するか）とを正しく対応させ、検索対象のＣＡＭブロックでのみ検索を行うことにより、従来のＣＡＭのように、誤った検索結果を出力するのを防ぐことができる。
【０１０３】
また、上記実施形態では、各属性Ｉ，ＩＩ，ＩＩＩ，ＩＶの検索時に信号ＭＦＯを出力させているので、各属性の検索後にプライオリティエンコーダ１４を動作させることにより、検索の途中結果を出力させることもできる。なお、途中結果が不要な場合は、信号ＭＦＯＥを‘Ｌ’として信号ＭＦＯ出力を‘Ｌ’に固定し、消費電力を削減することができる。この場合、プライオリティエンコーダ１４を動作させる必要もない。以下の検索例においても同様である。
【０１０４】
（２）２ワードを連結して構成されたエントリデータの検索（２ワードの両方で一致するエントリデータの検索）
【０１０５】
２ワードを連結してエントリデータを構成する場合、信号ＡＣＯＥＮ［３：０］＝‘１０１０’に設定される。これにより、ＣＡＭブロックＣＢ＿０，ＣＢ＿２の１ワード回路１６のＡＮＤチェーン出力（信号ＡＣＯ）が有効、ＣＡＭブロックＣＢ＿１，ＣＢ＿３の１ワード回路１６のＡＮＤチェーン出力が無効である‘Ｈ’固定となり、ＣＡＭブロックＣＢ＿０，ＣＢ＿１で１エントリが、また、ＣＡＭブロックＣＢ＿２，ＣＢ＿３で１エントリがそれぞれ構成される。
【０１０６】
例えば、図６に示す２ワード幅のエントリデータを使用する場合、図７に示すように、各エントリの属性Ｉのデータが、それぞれＣＡＭブロックＣＢ＿０，ＣＢ＿２に交互に登録され、各エントリの属性ＩＩのデータが、それぞれＣＡＭブロックＣＢ＿１，ＣＢ＿３に交互に登録される。検索時には、例えば属性Ｉ，ＩＩの順に、それぞれ対応する１ワード幅の検索データを用いて合計２回の検索（ＡＮＤ検索）が行われる。
【０１０７】
１回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性Ｉに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘０１０１’、信号ＡＣＩＥＮ［３：０］＝‘Ｘ１ＸＸ’、信号ＭＦＬＴ［３：０］＝‘１０１０’、信号ＭＦＯＥ［３：０］＝‘０１０１’の状態で行われる。
【０１０８】
すなわち、属性Ｉのデータが登録されているＣＡＭブロックＣＢ＿０，ＣＢ＿２の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］が同時に、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿０，ＣＢ＿２の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿０，ＣＢ＿２の一致フラグ出力（信号ＭＦＯ）がイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿０，ＣＢ＿２に入力される信号ＡＣＩは‘Ｈ’であるから、ＣＡＭブロックＣＢ＿０，ＣＢ＿２のＯＲ−ＡＮＤ複合ゲート６２からは、信号ＡＣＩＥＮの状態に関わらず自分自身の一致センス回路３０から出力される一致センス出力が出力される。
【０１０９】
すなわち、１回目の検索は、属性Ｉのデータが登録されているＣＡＭブロックＣＢ＿０，ＣＢ＿２でのみ行われ、ＣＡＭブロックＣＢ＿０，ＣＢ＿２から出力される一致フラグ出力（信号ＭＦＯ）がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、プライオリティエンコーダ１４から、属性Ｉの部分で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１１０】
また、ＣＡＭブロックＣＢ＿０，ＣＢ＿２のＡＮＤチェーン出力（信号ＡＣＯ）は、ＡＮＤチェーン入力（信号ＡＣＩ）として、それぞれＣＡＭブロックＣＢ＿１，ＣＢ＿３に入力される。
【０１１１】
２回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＩに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘１０１０’、信号ＡＣＩＥＮ［３：０］＝‘０Ｘ０Ｘ’、信号ＭＦＬＴ［３：０］＝‘０１０１’、信号ＭＦＯＥ［３：０］＝‘１０１０’の状態で行われる。
【０１１２】
すなわち、属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿１，３の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］が同時に、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿１，ＣＢ＿３の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿１，ＣＢ＿３の一致フラグ出力（信号ＭＦＯ）がイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿１では、前段のＣＡＭブロックＣＢ＿０から出力されるＡＮＤチェーン出力（信号ＡＣＯ）とＣＡＭブロックＣＢ＿１の一致センス回路３０から出力される一致センス出力との論理積がとられて出力される。同様に、ＣＡＭブロックＣＢ＿３では、前段のＣＡＭブロックＣＢ＿２から出力されるＡＮＤチェーン出力とＣＡＭブロックＣＢ＿３の一致センス回路３０から出力される一致センス出力との論理積がとられて出力される。
【０１１３】
すなわち、２回目の検索は、属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿１，ＣＢ＿３でのみ行われ、ＣＡＭブロックＣＢ＿１，ＣＢ＿３から出力される一致フラグ出力（信号ＭＦＯ）、すなわちＣＡＭブロックＣＢ＿０，ＣＢ＿１のＡＮＤ検索結果およびＣＡＭブロックＣＢ＿２，ＣＢ＿３のＡＮＤ検索結果がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、プライオリティエンコーダ１４から、属性ＩおよびＩＩの両方で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１１４】
（３）１ワードのエントリデータの検索（ワード連結なし）
【０１１５】
ワード連結を行わない場合、信号ＡＣＯＥＮ［３：０］＝‘１１１１’に設定される。これにより、全てのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３の１ワード回路のＡＮＤチェーン出力（信号ＡＣＯ）が無効である‘Ｈ’に固定され、それぞれのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３毎に１エントリが構成される。
【０１１６】
例えば、図８に示す１ワード幅のエントリデータを使用する場合、図９に示すように、各エントリデータのデータが、それぞれＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３に順次登録される。検索時には、全てのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ２，ＣＢ＿３において同時に、１ワード幅の検索データを用いて検索が行われる。
【０１１７】
検索は、信号ＫＥＹＤ［ｍ−１：０］＝１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘１１１１’、信号ＡＣＩＥＮ［３：０］＝‘ＸＸＸＸ’、信号ＭＦＬＴ［３：０］＝‘００００’、信号ＭＦＯＥ［３：０］＝‘１１１１’の状態で行われる。
【０１１８】
すなわち、全てのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］が同時に、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、全てのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、全てのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３の一致フラグ出力（信号ＭＦＯ）がイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、全てのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３に入力される信号ＡＣＩは‘Ｈ’であるから、全てのＣＡＭブロックのＯＲ−ＡＮＤ複合ゲート６２からは、信号ＡＣＩＥＮの状態に関わらず自分自身の一致センス回路３０から出力される一致センス出力が出力される。
【０１１９】
すなわち、検索は、全てのＣＡＭブロックで同時に行われ、全てのＣＡＭブロックから出力される一致フラグ出力（信号ＭＦＯ）がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１２０】
（４）４ワードを連結して構成されたエントリデータの部分検索（４ワードの内の一部が一致するエントリデータの検索）
【０１２１】
前述のように、４ワードを連結してエントリデータを構成する場合、信号ＡＣＯＥＮ［３：０］＝‘００００’に設定される。例えば、図５に示すエントリデータが登録された状態のＣＡＭにおいて、隣接する属性ＩＩおよびＩＩＩの部分検索を行う場合を説明する。
【０１２２】
１回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＩに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘００１０’、信号ＡＣＩＥＮ［３：０］＝‘ＸＸ１Ｘ’、信号ＭＦＬＴ［３：０］＝‘１１０１’、信号ＭＦＯＥ［３：０］＝‘００１０’の状態で行われる。
【０１２３】
すなわち、属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿１の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿１の一致フラグレジスタ６０だけがスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿１の一致フラグ出力（信号ＭＦＯ）がイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿１のＯＲ−ＡＮＤ複合ゲート６２からは、信号ＡＣＩの状態に関わらず自分自身の一致センス回路３０から出力される一致センス出力が出力される。すなわち、ＣＡＭブロックＣＢ＿１は、前段のＣＡＭブロックＣＢ＿０の検索結果を反映しない。
【０１２４】
すなわち、１回目の検索は、属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿１でのみ行われ、ＣＡＭブロックＣＢ＿１から出力される一致フラグ出力（信号ＭＦＯ）がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、プライオリティエンコーダ１４から、属性ＩＩの部分で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１２５】
また、ＣＡＭブロックＣＢ＿１のＡＮＤチェーン出力（信号ＡＣＯ）は、ＡＮＤチェーン入力（信号ＡＣＩ）として、後段のＣＡＭブロックＣＢ＿２に入力される。
【０１２６】
２回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＩＩに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘０１００’、信号ＡＣＩＥＮ［３：０］＝‘Ｘ０ＸＸ’、信号ＭＦＬＴ［３：０］＝‘１０１１’、信号ＭＦＯＥ［３：０］＝‘０１００’の状態で行われる。
【０１２７】
すなわち、属性ＩＩＩのデータが登録されているＣＡＭブロックＣＢ＿２の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿２の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿２の一致フラグ出力（信号ＭＦＯ）だけがイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿２では、前段のＣＡＭブロックＣＢ＿１から出力されるＡＮＤチェーン出力（信号ＡＣＯ）とＣＡＭブロックＣＢ＿２の一致センス回路３０から出力される一致センス出力との論理積がとられて出力される。
【０１２８】
すなわち、２回目の検索は、属性ＩＩＩのデータが登録されているＣＡＭブロックＣＢ＿２でのみ行われ、ＣＡＭブロックＣＢ＿２から出力される一致フラグ出力（信号ＭＦＯ）、すなわちＣＡＭブロックＣＢ＿１，ＣＢ＿２のＡＮＤ検索の結果がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、属性ＩＩおよびＩＩＩの両方で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１２９】
続いて、例えば図５に示すエントリデータが登録された状態のＣＡＭにおいて、隣接していない属性ＩＩおよびＩＶの部分検索を行う場合を説明する。
【０１３０】
１回目の検索は、上記隣接する属性ＩＩおよびＩＩＩの検索を行う場合と同じである。
【０１３１】
２回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＶに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘１０００’、信号ＡＣＩＥＮ［３：０］＝‘００ＸＸ’、信号ＭＦＬＴ［３：０］＝‘００１１’、信号ＭＦＯＥ［３：０］＝‘１０００’の状態で行われる。
【０１３２】
すなわち、属性ＩＶのデータが登録されているＣＡＭブロックＣＢ＿３の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿２，ＣＢ＿３の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿３の一致フラグ出力（信号ＭＦＯ）だけがイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿２，ＣＢ＿３では、それぞれ前段のＣＡＭブロックＣＢ＿１，ＣＢ＿２から出力されるＡＮＤチェーン出力（信号ＡＣＯ）と自分自身の一致センス回路３０から出力される一致センス出力との論理積がとられて出力される。
【０１３３】
なお、ＣＡＭブロックＣＢ＿２では、検索ビット線対ＳＬ，ＳＬＮがドライブされないため、その一致センス出力は初期状態の‘Ｈ’であり、ＯＲ−ＡＮＤ複合ゲート６２からは信号ＡＣＩ、すなわちＣＡＭデバイスＣＢ＿１のＡＮＤチェーン出力が出力される。従って、ＣＡＭブロックＣＢ＿３には、ＣＡＭブロックＣＢ＿２を介してＣＡＭブロックＣＢ＿１から出力されるＡＮＤチェーン出力が入力され、ＣＡＭブロックＣＢ＿１から出力されるＡＮＤチェーン出力と自分自身の一致センス出力との論理積がとられて出力される。
【０１３４】
すなわち、２回目の検索は、属性ＩＶのデータが登録されているＣＡＭブロックＣＢ＿３でのみ行われ、ＣＡＭブロックＣＢ＿３から出力される一致フラグ出力（信号ＭＦＯ）、すなわちＣＡＭブロックＣＢ＿１，ＣＢ＿３のＡＮＤ検索の結果がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、属性ＩＩおよびＩＶの両方で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１３５】
このように、ＣＡＭ１０では、隣接していないＣＡＭブロック間のデータの部分検索を行う場合も、従来のＣＡＭのようにダミー検索を行う必要がなく、検索スループットの低下を防止できる。
【０１３６】
（５）２ワードを連結して構成されたエントリデータをそれぞれ独立した２つのテーブルに登録した場合の検索（２ワードの両方で一致するエントリデータの検索）
【０１３７】
前述の通り、２ワードを連結してエントリデータを構成する場合、信号ＡＣＯＥＮ［３：０］＝‘１０１０’に設定される。これにより、ＣＡＭブロックＣＢ＿０，ＣＢ＿２の１ワード回路のＡＮＤチェーン出力（信号ＡＣＯ）が有効となり、ＣＡＭブロックＣＢ＿０，ＣＢ＿１で１エントリが、また、ＣＡＭブロックＣＢ＿２，ＣＢ＿３で１エントリがそれぞれ構成される。
【０１３８】
例えば、図１０に示す２つのテーブル１，２にそれぞれ含まれる２ワード幅のエントリデータを使用する場合、図１１に示すように、テーブル１の各エントリデータの属性Ｉ，ＩＩのデータが、それぞれＣＡＭブロックＣＢ＿０，ＣＢ＿１に登録され、テーブル２の各エントリの属性Ｉ，ＩＩのデータが、それぞれＣＡＭブロックＣＢ＿２，ＣＢ＿３に登録される。検索時には、例えばテーブル１に対して、属性Ｉ，ＩＩの順に、それぞれ対応する１ワード幅の検索データを用いて合計２回の検索（ＡＮＤ検索）が行われる。また、テーブル２についても同様である。
【０１３９】
以下、テーブル２のエントリを検索する場合を説明する。
【０１４０】
１回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性Ｉに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘０１００’、信号ＡＣＩＥＮ［３：０］＝‘Ｘ１ＸＸ’、信号ＭＦＬＴ［３：０］＝‘１０１１’、信号ＭＦＯＥ［３：０］＝‘０１００’の状態で行われる。
【０１４１】
すなわち、テーブル２の属性Ｉのデータが登録されているＣＡＭブロックＣＢ＿２の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿２の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿２の一致フラグ出力（信号ＭＦＯ）がイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿２のＯＲ−ＡＮＤ複合ゲート６２からは、信号ＡＣＩに関わらず、自分自身の一致センス回路３０から出力される一致センス出力が出力される。
【０１４２】
すなわち、１回目の検索は、テーブル２の属性Ｉのデータが登録されているＣＡＭブロックＣＢ＿２でのみ行われ、ＣＡＭブロックＣＢ＿２から出力される一致フラグ出力（信号ＭＦＯ）がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、プライオリティエンコーダ１４から、テーブル２の属性Ｉの部分で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１４３】
また、ＣＡＭブロックＣＢ＿２のＡＮＤチェーン出力（信号ＡＣＯ）は、ＡＮＤチェーン入力（信号ＡＣＩ）として、後段のＣＡＭブロックＣＢ＿３に入力される。
【０１４４】
２回目の検索は、信号ＫＥＹＤ［ｍ−１：０］＝属性ＩＩに対応する１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘１０００’、信号ＡＣＩＥＮ［３：０］＝‘０ＸＸＸ’、信号ＭＦＬＴ［３：０］＝‘０１１１’、信号ＭＦＯＥ［３：０］＝‘１０００’の状態で行われる。
【０１４５】
すなわち、テーブル２の属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿３の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿３の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿３の一致フラグ出力（信号ＭＦＯ）がイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿３のＯＲ−ＡＮＤ複合ゲート６２からは、前段のＣＡＭブロックＣＢ＿２から出力されるＡＮＤチェーン出力とＣＡＭブロックＣＢ＿３の一致センス回路３０から出力される一致センス出力との論理積がとられて出力される。
【０１４６】
すなわち、２回目の検索は、テーブル２の属性ＩＩのデータが登録されているＣＡＭブロックＣＢ＿３でのみ行われ、ＣＡＭブロックＣＢ＿３から出力される一致フラグ出力（信号ＭＦＯ）、すなわちＣＡＭブロックＣＢ＿２，ＣＢ＿３のＡＮＤ検索結果がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、プライオリティエンコーダ１４から、テーブル２の属性ＩおよびＩＩの両方で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１４７】
（６）１ワードのエントリデータをそれぞれ独立した４つのテーブルに登録した場合の検索（ワード連結なし）
【０１４８】
ワード連結を行わない場合、前述の通り、信号ＡＣＯＥＮ［３：０］＝‘１１１１’に設定される。これにより、全てのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３の１ワード回路のＡＮＤチェーン出力（信号ＡＣＯ）が無効である‘Ｈ’に固定され、それぞれのＣＡＭブロックＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３毎に１エントリが構成される。
【０１４９】
例えば、図１２に示す４つのテーブル１，２，３，４にそれぞれ含まれる１ワード幅のエントリデータを使用する場合、図１３に示すように、テーブル１の各エントリデータがＣＡＭブロックＣＢ＿０に登録され、以下同様に、テーブル２，３，４の各エントリデータがそれぞれＣＡＭブロックＣＢ＿１，ＣＢ＿２，ＣＢ３に登録される。検索時には、検索対象のテーブルに対して１ワード幅の検索データを用いて検索が行われる。
【０１５０】
以下、テーブル３のエントリを検索する場合を説明する。
【０１５１】
検索は、信号ＫＥＹＤ［ｍ−１：０］＝１ワード幅の検索データ、信号ＳＬＥ［３：０］＝‘０１００’、信号ＡＣＩＥＮ［３：０］＝‘Ｘ１ＸＸ’、信号ＭＦＬＴ［３：０］＝‘１０１１’、信号ＭＦＯＥ［３：０］＝‘０１００’の状態で行われる。
【０１５２】
すなわち、テーブル３のエントリデータが登録されているＣＡＭブロックＣＢ＿２の検索ビット線対ＳＬ［ｍ−１：０］，ＳＬＮ［ｍ−１：０］だけが、検索データ（信号ＫＥＹＤ［ｍ−１：０］）に応じてドライブされる。また、ＣＡＭブロックＣＢ＿２の一致フラグレジスタ６０がスルー状態とされ、そのデータが更新される。また、ＣＡＭブロックＣＢ＿２の一致フラグ出力（信号ＭＦＯ）がイネーブル状態とされてプライオリティエンコーダ１４に入力される。また、ＣＡＭブロックＣＢ＿２のＯＲ−ＡＮＤ複合ゲート６２からは、信号ＡＣＩに関わらず、自分自身の一致センス回路３０から出力される一致センス出力が出力される。
【０１５３】
すなわち、検索は、テーブル３のエントリデータが登録されているＣＡＭブロックＣＢ＿２でのみ行われ、ＣＡＭブロックＣＢ＿２から出力される一致フラグ出力（信号ＭＦＯ）がプライオリティエンコーダ１４に入力される。この状態でプライオリティエンコーダ１４を動作させることにより、テーブル３で一致が検出されたエントリのＨＭＡを出力させることが可能である。
【０１５４】
以上のように、ＣＡＭ１０では、４ワード連結、２ワード連結、ワード連結なしのいずれの状態でも検索を行うことができる。また、４ワード連結を行った場合、４ワードの全てで一致するエントリを検索することもできるし、あるいは４ワードのうちの一部のみが一致するエントリを検索することもできる。また、検索対象となるエントリデータを複数のテーブルに分けて登録し、各々のテーブルに含まれるエントリデータに対してのみ検索を行うことも可能である。
【０１５５】
なお、本発明のＣＡＭは、上記各実施形態に限定されず、いくつのワードを連結して１エントリを構成可能としてもよい。また、使用するテーブル数も何ら制限されず、必要に応じて適宜決定すればよい。また、信号ＡＣＩ，ＡＣＩＥＮ，ＭＦＬＴ，ＡＣＯ，ＡＣＯＥＮ，ＭＦＯ，ＭＦＯＥ等の各信号の極性は必要に応じて適宜変更してもよく、１ワード回路の構成はこれら各信号の極性に応じて適宜設計されるべきものである。
【０１５６】
本発明の連想メモリは、基本的に以上のようなものである。
以上、本発明の連想メモリについて詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【０１５７】
【発明の効果】
以上詳細に説明した様に、本発明の連想メモリは、ワード連結あり、ワード連結なしのいずれの状態でも検索を正しく行うことができる。また、ワード連結を行う場合、全てのワードあるいは一部のワードで一致するエントリを検索したり、検索対象となるエントリを複数のテーブルに分けて登録し、テーブル毎に別々に検索を行うなど、各種の検索動作をさせることが可能である。
また、本発明の連想メモリでは、ワード連結を行う場合、エントリデータの各１ワード分のデータとこれに対応する検索データの各１ワード分のデータとを正しく対応させて検索を行うことにより、従来の連想メモリで問題になっていた誤一致の発生を防ぐことができる。
また、本発明の連想メモリでは、ＣＡＭアレイを複数のＣＡＭブロックに分割し、検索時には検索対象のＣＡＭブロックでのみ検索が行われるため、不要な電流の消費を抑えることができる。
また、本発明の連想メモリでは、一致フラグレジスタを初期化することなく検索を行うことができるため、初期化にかかるステップが不要であり、従来よりも検索スループットを向上させることができる。また、複数ワードを連結してエントリを構成した場合に、隣接していないＣＡＭブロック間で部分検索を行う場合も、検索対象外のＣＡＭブロックにおいてダミー検索を行う必要がないため、従来よりも検索スループットを向上させることができる。
【図面の簡単な説明】
【図１】本発明の連想メモリの一実施形態の構成概略図である。
【図２】図１に示す連想メモリで用いられる１ワード回路の構成概略図である。
【図３】図２に示す１ワード回路で用いられるＣＡＭセルの構成回路図である。
【図４】図２に示す１ワード回路で用いられる一致センス回路の構成回路図である。
【図５】図１６に示す４ワード幅のエントリデータをＣＡＭアレイに登録した状態を示す概念図である。
【図６】２つの属性データからなる２ワード幅のエントリデータの概略図である。
【図７】図６に示す２ワード幅のエントリデータをＣＡＭアレイに登録した状態を表す概念図である。
【図８】１ワード幅のエントリデータの概略図である。
【図９】図８に示す１ワード幅のエントリデータをＣＡＭアレイに登録した状態を表す概略図である。
【図１０】２ワード幅のエントリデータからなる２つのテーブルを表す概略図である。
【図１１】図１０に示す２つのテーブルの２ワード幅のエントリデータをＣＡＭアレイに登録した状態を表す概念図である。
【図１２】１ワード幅のエントリデータからなる４つのテーブルを表す概略図である。
【図１３】図１２に示す４つのテーブルの１ワード幅のエントリデータをＣＡＭアレイに登録した状態を表す概略図である。
【図１４】従来のＣＡＭの一例のブロック図である。
【図１５】従来のビット幅拡張回路の一例の構成回路図である。
【図１６】４つの属性データからなる４ワード幅のエントリデータの一例を示す概略図である。
【図１７】図１６に示すエントリデータの登録例を示す概念図である。
【符号の説明】
１０，７０  連想メモリ
１２  ＣＡＭアレイ
１４，７８  プライオリティエンコーダ
１６  １ワード回路
１８  ブロックドライバ
２０  検索ビット線ドライバ
２２  バッファ
２４  ＣＡＭワード
２６  ワードロジック
２８  ＣＡＭセル
３０  一致センス回路
３２  記憶回路
３４  比較回路
３６，３８，５２，５４  インバータ
４０，４２，４４，４６，４８，５０  Ｎ型ＭＯＳトランジスタ
５６，５８  Ｐ型ＭＯＳトランジスタ
６０，ＭＦＲ＿１，ＭＦＲ＿２，…，ＭＦＲ＿ｎ  一致フラグレジスタ
６２  ＯＲ−ＡＮＤ複合ゲート
６４  ＯＲゲート
６６，ＡＤ＿２，ＡＤ＿３，…，ＡＤ＿ｎ  ＡＮＤゲート
７２  比較レジスタ
７４  マスクレジスタ
７６  検索ビット線ドライバ
８０  ビット幅拡張回路
ＣＢ＿０，ＣＢ＿１，ＣＢ＿２，ＣＢ＿３  ＣＡＭブロック
Ｗ＿１，Ｗ＿２，…，Ｗ＿ｎ  ワード
ＬＴ＿１，ＬＴ＿２，…，ＬＴ＿ｎ  ラッチ
【図１】
2004280992.tif 000003
【図２】
2004280992.tif 000004
【図３】
2004280992.tif 000005
【図４】
2004280992.tif 000006
【図５】
2004280992.tif 000007
【図６】
2004280992.tif 000008
【図７】
2004280992.tif 000009
【図８】
2004280992.tif 000010
【図９】
2004280992.tif 000011
【図１０】
2004280992.tif 000012
【図１１】
2004280992.tif 000013
【図１２】
2004280992.tif 000014
【図１３】
2004280992.tif 000015
【図１４】
2004280992.tif 000016
【図１５】
2004280992.tif 000017
【図１６】
2004280992.tif 000018
【図１７】
2004280992.tif 000019