(57)【特許請求の範囲】
【請求項１】
マッチ線に沿って配列され、各々が前記マッチ線と接続された複数のメモリセルを有するメモリアレイを複数のサブアレイに分割し、上位の前記サブアレイから下位の前記サブアレイに向かって順に検索動作を実行する連想メモリであって、
前記サブアレイは、
前記マッチ線と接続された複数の前記メモリセルと、
前記メモリセルの前段に、前記マッチ線をプリチャージ状態またはディスチャージ状態に制御するマッチ線制御部と、
前記メモリセルの後段に、検索動作を実行した結果を下位の前記サブアレイに伝達するハーフラッチ回路と、
最下位の前記サブアレイに、検索動作を実行した結果をエンコーダ部に伝送するフルラッチ回路と
を備え、
上位の前記サブアレイの動作の終了後に、下位の前記サブアレイの前記マッチ線制御部が前記マッチ線をプリチャージ状態またはディスチャージ状態に制御する連想メモリ。
【請求項２】
前記マッチ線制御部は、前記マッチ線と電源端子との間に接続されたｐ型トランジスタと、前記マッチ線と接地端子との間に接続されたｎ型トランジスタとを有する請求項１に記載の連想メモリ。
【請求項３】
前記マッチ線制御部は、上位の前記サブアレイの動作の終了後に、前記ｐ型トランジスタまたは前記ｎ型トランジスタがオン状態となる請求項２に記載の連想メモリ。
【請求項４】
前記ｎ型トランジスタは、前記ｐ型トランジスタに比べてサイズが小さい請求項２または請求項３に記載の連想メモリ。
【請求項５】
前記フルラッチ回路は、前記サブアレイから伝送された結果を保持するマスターラッチ回路と、前記マスターラッチ回路で保持した結果を前記エンコーダ部に伝送するスレーブラッチ回路とを有するフリップフロップ回路である請求項１〜請求項４のいずれか一項に記載の連想メモリ。
【請求項６】
前記マスターラッチ回路は、前記ハーフラッチ回路と同じ回路構成である請求項５に記載の連想メモリ。
【請求項７】
前記サブアレイに接続する配線を、隣接する二つの前記サブアレイ同士で共通にしてある請求項１〜請求項６のいずれか一項に記載の連想メモリ。
【請求項８】
入力したネットワークアドレスを、記憶してあるデータと一致するか否かを検索するネットワークアドレス検索装置であって、
請求項１〜請求項７のいずれか一項に記載の連想メモリと、
前記連想メモリを制御する制御部と
を備えるネットワークアドレス検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連想メモリ、およびネットワークアドレス検索装置に関し、特に消費電力を低減するための構成を備える連想メモリ、およびネットワークアドレス検索装置に関する。
【背景技術】
【０００２】
連想メモリ（ＣＡＭ：Content  Addressable  Memory）は、データの読出／書込機能に加えて、検索データと記憶データとが一致するか否かの判定を行なう検索動作の機能を有する。検索データの１エントリを複数のＣＡＭセル（ＣＡＭアレイ）で構成し、ＣＡＭセルは、検索候補のワードビット（記憶データ）を格納している。各エントリには、対応のＣＡＭセルが並列に結合されるマッチ線が設けられている。検索データと記憶データとが一致した場合、対応のマッチ線の値は“１”の状態に維持され、一致しない場合、対応のマッチ線の値は“０”の状態となる。
【０００３】
連想メモリは、このマッチ線の電圧レベルを識別することにより、検索データに対応するデータをＣＡＭセルに格納してあるか否かを判定する。連想メモリを、例えばテーブルとして利用することにより、連想メモリは、検索データをテーブルに格納してあるか否かを判定し、テーブルに対応する内容を高速で読出すことができる。そのため、連想メモリは、たとえば、通信用途のルータおよびキャッシュメモリにおけるキャッシュミス／ヒットの判定などにおいて用いられている。
【０００４】
さらに、連想メモリは、さらに高速に検索動作を行うために、特許文献１および２に開示してあるように、検索動作をパイプライン化する。特許文献１に開示してある連想メモリでは、ＤＲＡＭ（Dynamic  Random  Access  Memory）で構成したＣＡＭセルを用い、マッチ線ＭＬにクランプ回路を設け、検索動作をパイプライン化してある。また、特許文献２に開示してある連想メモリでは、一部の検索データと一部の記憶データとを比較した結果に基づき、残りの検索データと残りの記憶データとを比較するか否かを制御する制御回路を設け、検索動作をパイプライン化してある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１０１４４号公報
【特許文献２】特開２００５−２２８４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示してある連想メモリは、ＣＡＭアレイを複数のＣＡＭサブアレイに分割し、分割したＣＡＭサブアレイの間で検索動作を実行した結果を伝達するために、ＣＡＭサブアレイの間にフリップフロップ回路を用いている。フリップフロップ回路は多数のトランジスタで構成されているため、各々のＣＡＭサブアレイの間にフリップフロップ回路を用いると、連想メモリは、構成する回路のレイアウト面積が大きくなるという問題があった。また、特許文献１に開示してある連想メモリは、動作時に消費する電力が大きいフリップフロップ回路を多数用いているので、消費電力が大きくなるという問題があった。
【０００７】
さらに、特許文献２に開示してある連想メモリでは、検索動作を実行するたびに電源端子から接地端子へと貫通電流が流れる回路構成を有しているため、消費電力が大きくなるという問題があった。
【０００８】
それゆえに、本発明は、上記問題点を解決するためになされたものであり、検索動作をパイプライン化してある連想メモリにおいて、構成する回路のレイアウト面積が小さく、検索動作を実行するときの消費電力を低減することができる連想メモリ、およびネットワークアドレス検索装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、マッチ線に沿って配列され、各々がマッチ線と接続された複数のメモリセルを有するメモリアレイを複数のサブアレイに分割し、上位のサブアレイから下位のサブアレイに向かって順に検索動作を実行する連想メモリである。サブアレイは、マッチ線と接続された複数のメモリセルと、メモリセルの前段に、マッチ線をプリチャージ状態またはディスチャージ状態に制御するマッチ線制御部と、メモリセルの後段に、検索動作を実行した結果を下位のサブアレイに伝達するハーフラッチ回路と、最下位のサブアレイに、検索動作を実行した結果をエンコーダ部に伝送するフルラッチ回路とを備え、最下位のサブアレイは、ハーフラッチ回路に代えてフルラッチ回路を備え、上位のサブアレイの動作の終了後に、下位のサブアレイのマッチ線制御部がマッチ線をプリチャージ状態またはディスチャージ状態に制御する。
【発明の効果】
【００１０】
本発明に係る連想メモリによれば、上位のサブアレイの動作の終了後に、下位のサブアレイのマッチ線制御部がマッチ線をプリチャージ状態またはディスチャージ状態に制御することで、検索動作を実行した結果を下位のサブアレイに伝達する回路にフルラッチ回路（たとえばフリップフロップ回路）でなくハーフラッチ回路を用いることができる。サブアレイは、検索動作を実行した結果を下位のサブアレイに伝達する回路に、フルラッチ回路（たとえばフリップフロップ回路）の略半分のトランジスタで構成されたハーフラッチ回路を用いることができるので、構成する回路のレイアウト面積を小さくすることができる。また、サブアレイは、フリップフロップ回路に比べて動作時に消費する電力が小さいハーフラッチ回路を用いているので、消費電力を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１に係る連想メモリの全体構成を示すブロック図である。
【図２】図１に示すＣＡＭアレイに配列されるＣＡＭセルの構成の一例を示す図である。
【図３】本発明の実施の形態１に係る連想メモリの一部の構成を詳細に示すブロック図である。
【図４】本発明の実施の形態１に係るＣＡＭアレイを複数のＣＡＭサブアレイに分割した構成を示す模式図である。
【図５】本発明の実施の形態１に係るＣＡＭサブアレイの詳細な構成を示す回路図である。
【図６】本発明の実施の形態１に係る連想メモリの動作を説明するためのタイミングチャートである。
【図７】本発明の実施の形態２に係るＣＡＭアレイを複数のＣＡＭサブアレイに分割した構成を示す模式図である。
【図８】本発明の実施の形態２に係るＣＡＭサブアレイの詳細な構成を示す回路図である。
【図９】本発明の実施の形態３に係るネットワークアドレス検索装置として機能するシステムＬＳＩの構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施の形態について図面を参照して説明する。
（実施の形態１）
図１は、本発明の実施の形態１に係る連想メモリ１００の全体構成を示すブロック図である。
【００１３】
図１に示す連想メモリ１００は、半導体基板ＳＵＢ上に形成されたＣＡＭアレイ１０と、一致検出部２０と、検索データ転送部３０と、サーチ制御回路４０（制御部）と、プライオリティエンコーダ７０と、サーチ結果出力バッファ８１と、アドレス／データバッファ７４と、命令コードバッファ７５と、クロックバッファ７６と、命令コードデコーダ７７と、アドレスデコーダ７８と、センスアンプ７９とを含む。
【００１４】
連想メモリ１００は、通常のデータ書込およびデータ読出のためにＣＡＭアレイ１０の各行に対応して設けられたワード線（図２で示すワード線ＷＬ＿Ｘ，ＷＬ＿Ｙ）と、ＣＡＭアレイ１０の各列に対応して設けられたビット線対（図２で示すビット線対ＢＬ，ＢＬ＿Ｎ）とを含む。さらに、連想メモリ１００は、検索動作のためにＣＡＭアレイ１０の各行に対応して設けられたマッチ線ＭＬ（一致線）と、ＣＡＭアレイ１０の各列に対応して設けられた検索線対ＳＬ，ＳＬ＿Ｎ（検索線対）とを含む。なお、本明細書では、参照符号の末尾に「＿Ｎ」を付すことで、論理レベルを反転（たとえば、“０”を“１”に反転）させた相補的な関係にある参照符号を示してある。
【００１５】
ＣＡＭアレイ１０は、行列状に配列された複数のＣＡＭセル（メモリセル）によって構成される。各メモリセルは、１ビットのデータを記憶するとともに、検索データと予め記憶したデータとを比較する機能を有する。
【００１６】
一致検出部２０（マッチアンプ）は、各マッチ線ＭＬの値（“１”または“０”）を検出する。これによって、一致検出部２０は、各マッチ線ＭＬに接続された各メモリセルにおいて、検索データと予め記憶したデータ（記憶データ）とが一致したか否かを検知する。
【００１７】
検索データ転送部３０（検索線対ドライバ）は、検索動作時に検索線対ＳＬ，ＳＬ＿Ｎを介してＣＡＭアレイ１０の各メモリセルに検索データを転送する。
【００１８】
サーチ制御回路４０は、入力されたクロック信号ＣＬＫに基づいて検索データ転送部３０および一致検出部２０の動作タイミングを制御する。
【００１９】
プライオリティエンコーダ７０は、一致検出部２０の検出結果に基づいて、検索データと記憶データとが一致したアドレスを所定の優先順位に従って検索結果として出力する。
【００２０】
サーチ結果出力バッファ８１は、プライオリティエンコーダ７０から受けた検索結果を、サーチ結果出力端子８２を介して外部に出力する。
【００２１】
アドレス／データバッファ７４は、アドレス／データ入力端子７１を介して受けたアドレスまたはデータをアドレスデコーダ７８およびセンスアンプ７９に出力する。さらに、アドレス／データバッファ７４は、検索動作に必要な多ビットの検索データＳＤ，ＳＤ＿Ｎをアドレス／データ入力端子７１を介して受けて検索データ転送部３０へ出力する。
【００２２】
命令コードバッファ７５は、命令コード入力端子７２を介して受けた命令コードを、命令コードデコーダ７７に出力する。命令コードには、データ書込を表わす命令コードおよび検索動作を表わす命令コードなどがある。
【００２３】
命令コードデコーダ７７は、命令コードバッファ７５から受けた命令コードをデコードして、命令内容に応じた信号を発生する。たとえば、命令コードデコーダ７７は、検索動作を表わす命令コードを受けたとき、検索信号ＳＣＭを発生する。命令コードデコーダ７７は、リセット命令を表わす命令コードを受けたとき、リセット信号ＲＳＴを発生する。
【００２４】
クロックバッファ７６は、クロック入力端子７３を介して外部からクロック信号ＣＬＫを受け、連想メモリ１００の各部に出力する。
【００２５】
アドレスデコーダ７８は、アドレス／データバッファ７４から受けたアドレスに基づいて、データ書込時には書込対象のメモリセル群を選択し、データ読出時には読出対象のメモリセル群を選択する。
【００２６】
センスアンプ７９は、データ読出時に読出対象のメモリセルが接続されたビット線対ＢＬ，ＢＬ＿Ｎの論理レベルを検出する。
【００２７】
図２は、図１に示すＣＡＭアレイ１０に配列されるＣＡＭセルＣＣの構成の一例を示す図である。図２において、ＣＡＭセルＣＣは、記憶データを記憶するデータ記憶部２２と、この記憶データと検索線対ＳＬ、ＳＬ＿Ｎのデータとを比較し、その比較結果に従ってマッチ線ＭＬを駆動する検索部２４とを含む。
【００２８】
データ記憶部２２は、２つのメモリセル（ＸセルおよびＹセル）を含む。これらのＸセルおよびＹセルは、ＳＲＡＭ（Static  Random  Access  Memory）セルの構成を有する。ＸセルおよびＹセル両者は、同一構造を有するため、図２においては、ＸセルおよびＹセルにおいて対応する部分には同一の参照符号を付す。
【００２９】
ＸセルおよびＹセルの各々は、データを保持するラッチ回路を構成する反並列に接続されるインバータＩＶ１およびＩＶ２と、導通時、記憶ノードＮＤ１およびＮＤ２を、それぞれビット線／ＢＬＬおよびＢＬＬに結合するアクセストランジスタＴＲ１およびＴＲ２を含む。
【００３０】
ＸセルのアクセストランジスタＴＲ１およびＴＲ２は、ワード線ＷＬ＿Ｘの駆動信号に従って導通状態となる。ＹセルのアクセストランジスタＴＲ１およびＴＲ２は、ワード線ＷＬ＿Ｙの駆動信号に従って導通状態となる。これらのワード線ＷＬ＿Ｘの駆動信号およびワード線ＷＬ＿Ｙの駆動信号は、ＣＡＭセルＣＣのデータの書込時および読出時において図示しない行駆動回路により生成される。
【００３１】
ビット線ＢＬＬおよび／ＢＬＬには、図示しない書込回路により、相補なデータＢＬおよびＢＬ＿Ｎが伝達される。したがって、ＸセルおよびＹセル各々において、記憶ノードＮＤ１およびＮＤ２には、相補データが記憶される。ＸセルおよびＹセル各々に記憶するデータは、記憶データに応じて設定される。ＣＡＭセルＣＣにおいて、２つのメモリセルを利用することにより３値データを記憶することができる。
【００３２】
検索部２４は、Ｘセルに対して設けられるＭＯＳトランジスタ（絶縁ゲート型電界効果型トランジスタ）ＴＱ１およびＴＱ２と、Ｙセルに対応して設けられるＭＯＳトランジスタＴＱ３およびＴＱ４を含む。ＭＯＳトランジスタＴＱ１およびＴＱ２とが、マッチ線ＭＬと接地ノードの間に直列に接続される。ＭＯＳトランジスタＴＱ１は、そのゲートが、セルの記憶ノードＮＤ２に結合される。ＭＯＳトランジスタＴＱ２は、検索線ＳＬのデータをゲートに受ける。ＭＯＳトランジスタＴＱ３は、そのゲートが、Ｙセルの記憶ノードＮＤ２に結合される。ＭＯＳトランジスタＴＱ４は、そのゲートに、検索線ＳＬ＿Ｎのデータを受ける。
【００３３】
ＸセルおよびＹセルは、ワード線ＷＬ＿Ｘの駆動信号およびワード線ＷＬ＿Ｙの駆動信号に従って、その記憶データを個々に設定することができる。このＣＡＭセルＣＣは、以下に説明するように、３値状態を実現する。
【００３４】
（ｉ）  Ｘセルの記憶ノードＮＤ２が“１”（論理ハイレベル）、Ｙセルの記憶ノードＮＤ２が“０”（論理ローレベル）のとき：
この場合、検索線ＳＬのデータが“１”であれば、ＭＯＳトランジスタＴＱ１およびＴＱ２がともに導通し、マッチ線ＭＬが放電される。したがって、この状態においては、ミス状態である。一方、検索線ＳＬのデータが“０”であれば、ＭＯＳトランジスタＴＱ２がオフ状態であり、また、ＭＯＳトランジスタＴＱ３もオフ状態である。したがって、この状態においては、マッチ線ＭＬは放電されず、プリチャージ電圧レベルに維持される。この状態は、検索データと記憶データとが一致しているヒット状態である。
【００３５】
（ii）  Ｘセルの記憶ノードＮＤ２が“０”、Ｙセルの記憶ノードＮＤ２が“１”のとき：
この場合、検索線ＳＬのデータが“０”であれば、検索線ＳＬ＿Ｎのデータが“１”である。したがって、ＭＯＳトランジスタＴＱ３およびＴＱ４がともに導通し、マッチ線ＭＬが放電される。したがって、この状態はミス状態である。一方、検索線ＳＬのデータが“１”であれば、検索線ＳＬ＿Ｎのデータが“０”である。したがって、ＭＯＳトランジスタＴＱ４が非導通状態となり、また、ＭＯＳトランジスタＴＱ１が非導通状態である。したがって、マッチ線ＭＬはプリチャージ電圧状態に維持される。したがって、この状態は、ヒット状態である。
【００３６】
（iii）  ＸセルおよびＹセルの記憶ノードＮＤ２がともに“０”のとき：
この状態においては、ＭＯＳトランジスタＴＱ１およびＴＱ３はともに非導通状態である。したがって、マッチ線ＭＬは検索線ＳＬのデータに係らず、プリチャージ電圧レベルに維持される。したがって、この状態により、検索線ＳＬに対し「ドントケア状態（Ｘ状態）」を実現することができる。
【００３７】
（iv）  ＸセルおよびＹセルの記憶ノードＮＤ２がともに“１”のとき：
この状態においては、検索線ＳＬのデータに従って、ＭＯＳトランジスタＴＱ１およびＴＱ２の経路およびＭＯＳトランジスタＴＱ３およびＴＱ４の経路の一方が、導通し、マッチ線ＭＬが放電される。したがって、検索データに係らず、常にミス状態が指定されるため、この状態は、通常、禁止状態とされる。
【００３８】
上述のように、このＣＡＭセルＣＣは、状態（ｉ）の記憶データとして“０”を記憶した状態、状態（ｉｉ）の記憶データとして“１”を記憶した状態、および状態（ｉｉｉ）のドントケア状態を含む３値データを記憶することができる。しかしながら、ＣＡＭセルＣＣとしては、２値データを記憶するＣＡＭセルであってもよい。２値データを記憶するＣＡＭセルとしては、データ記憶部が１つのＳＲＡＭセルで構成してもよい。１つのＳＲＡＭセルの相補な記憶ノードが、検索部のトランジスタＴＱ１およびＴＱ３のそれぞれのゲートに結合される。
【００３９】
以下、検索動作に関係する構成要素についてさらに詳しく説明する。
図３は、本発明の実施の形態１に係る連想メモリ１００の一部の構成を詳細に示すブロック図である。図３に示す連想メモリ１００は、説明を簡単にするため、検索動作をパイプライン化していない場合について説明する。なお、図３には、検索動作の説明に必要なＣＡＭアレイ１０と、一致検出部２０と、検索データ転送部３０と、サーチ制御回路４０とを図示してある。
【００４０】
ＣＡＭアレイ１０は、ｎ行ｍ列の行列状に配列された複数のメモリセル（ＣＡＭセル）を含む。図３では、ｍ＝８０である。以下、第ｉ行第ｊ列（ｉは１以上ｎ−１以下の整数、ｊは１以上ｍ−１以下の整数）のＣＡＭセルをＣＡＭセルＣＣ［ｉ−１，ｊ−１］と記載し、ＣＡＭセルについて総称するとき、または不特定のＣＡＭセルを示すときＣＡＭセルＣＣと記載する。さらに、ＣＡＭアレイ１０の行方向をＸ方向と称し、列方向をＹ方向と称する。Ｘ方向について向きを区別するときには＋Ｘ方向、−Ｘ方向のように符号を付して記載する。Ｙ方向についても同様である。
【００４１】
図３に示す連想メモリ１００は、ＣＡＭアレイ１０の行に対応して設けられ、Ｘ方向に延びるｎ本のマッチ線ＭＬ［０］〜ＭＬ［ｎ−１］を含む。さらに、連想メモリ１００は、ＣＡＭアレイ１０の列に対応して設けられ、Ｙ方向に延びるｍ対の検索線対ＳＬ［０］，ＳＬ＿Ｎ［０］〜ＳＬ［ｍ−１］，ＳＬ＿Ｎ［ｍ−１］を含む。マッチ線ＭＬ［０］〜ＭＬ［ｎ−１］および検索線対ＳＬ［０］，ＳＬ＿Ｎ［０］〜ＳＬ［７９］，ＳＬ＿Ｎ［７９］について、総称する場合または不特定のマッチ線および検索線対を示す場合にマッチ線ＭＬおよび検索線対ＳＬ，ＳＬ＿Ｎとそれぞれ記載する。各ＣＡＭセルＣＣは、ｎ本のマッチ線ＭＬとｍ対の検索線対ＳＬ，ＳＬ＿Ｎとの各交差点に対応して設けられる。各ＣＡＭセルＣＣは、対応のマッチ線ＭＬおよび対応の検索線対ＳＬ，ＳＬ＿Ｎと接続される。
【００４２】
連想メモリ１００は、さらに、ｎ本のマッチ線ＭＬ［０］〜ＭＬ［ｎ−１］にそれぞれ接続されたプリチャージ部ＰＣ［０］〜ＰＣ［ｎ−１］を含む。プリチャージ部ＰＣ［０］〜ＰＣ［ｎ−１］についても総称する場合または不特定のプリチャージ部を示す場合にプリチャージ部ＰＣと記載する。各プリチャージ部ＰＣは、サーチ制御回路４０から受信したマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが活性状態（“０”）になったとき、対応のマッチ線ＭＬを所定の電圧（図３の場合、電源電圧）にプリチャージする。各プリチャージ部ＰＣは、対応のマッチ線ＭＬの−Ｘ方向側の端部に、すなわち、一致検出部２０（マッチアンプＭＡ［０］〜ＭＡ［ｎ−１］）に近接して設けられる。
【００４３】
連想メモリ１００は、複数のＣＡＭセルＣＣによって構成された１エントリごとに、多ビットの検索データ（検索ワード）と予め記憶した記憶データ（記憶ワード）とを比較する。図３に示す連想メモリ１００は、各マッチ線ＭＬに接続された１行分（８０個）のＣＡＭセルＣＣによって１エントリが構成されている。すなわち、エントリビット幅は８０ビットである。検索ワードは、８０対の検索線対ＳＬ，ＳＬ＿Ｎを介してＣＡＭアレイ１０の各エントリに入力される。連想メモリ１００は、入力された検索ワードと記憶ワードとを、ＣＡＭセルＣＣ（ビット単位）ごとに比較する。
【００４４】
検索動作について簡単に説明すると、まず、プリチャージ部ＰＣによって各マッチ線ＭＬの値は“１”にプリチャージされる。次に、各ＣＡＭセルＣＣに、対応の検索線対ＳＬ，ＳＬ＿Ｎを介して検索データが入力される。連想メモリ１００は、各ＣＡＭセルＣＣで、入力された検索データと予め記憶している１ビットの記憶データとを比較し、両者が一致しないとき、プリチャージ状態にある対応のマッチ線ＭＬを放電して、対応のマッチ線ＭＬの論理レベルを変化する。
【００４５】
したがって、各マッチ線ＭＬに接続された複数のＣＡＭセルＣＣのすべての記憶データと検索データとが一致した（ヒット：ＨＩＴ）とき、すなわち、検索ワードと記憶ワードとが一致したとき、マッチ線ＭＬの値は“１”に維持される。各マッチ線ＭＬに接続された少なくとも１つのＣＡＭセルＣＣの記憶データと検索データとが一致しない（ミス：ＭＩＳＳ）とき、すなわち、検索ワードと記憶ワードとが一致しないとき、マッチ線ＭＬにプリチャージされた電荷が放電され、マッチ線ＭＬの値は“０”に変化する。
【００４６】
なお、検索動作には、マッチ線ＭＬの値を“０”にプリチャージし、記憶データと検索データとが一致したとき“１”に充電する場合や、マッチ線ＭＬの値を“１”にプリチャージし、記憶データと検索データとが一致したとき“０”に放電する場合などが考えられる。本願では、特に検索動作に限定されるものではない。
【００４７】
次に、検索動作をパイプライン化している場合の連想メモリ１００について説明する。連想メモリ１００は、図３に示すＣＡＭアレイ１０を複数のサブアレイに分割し、上位のＣＡＭサブアレイから下位のＣＡＭサブアレイに向かって順に検索動作を実行する。
【００４８】
図４は、本発明の実施の形態１に係るＣＡＭアレイ１０を複数のＣＡＭサブアレイに分割した構成を示す模式図である。図４に示すＣＡＭアレイ１０は、４つのＣＡＭサブアレイ１０ａ〜１０ｄに分割してある。ＣＡＭサブアレイ１０ａには、ＶＢ(valid  Bit)データが入力され、ＣＡＭサブアレイ１０ｄは、検索動作を実行した結果（ＺＭＡＴ信号）をプライオリティエンコーダ７０に出力する。なお、図３に示すようにＣＡＭセルＣＣを８０列（ｍ＝８０）配置してある場合、ＣＡＭサブアレイ１０ａ〜１０ｄは、２０列ずつ分割され、それぞれ２０ビットのＣＡＭセルＣＣを含んでいる。
【００４９】
ＣＡＭサブアレイ１０ａ〜１０ｃは、マッチ線ＭＬをプリチャージ状態、またはディスチャージ状態を制御するマッチ線制御部１１、２０ビットのＣＡＭセルＣＣ、検索動作を実行した結果を下位のＣＡＭサブアレイに送るためのハーフラッチ回路１２を含んでいる。ＣＡＭサブアレイ１０ｄは、ＣＡＭサブアレイ１０ａ〜１０ｃの構成に加えて、検索動作を実行した結果をプライオリティエンコーダ７０に伝送するスレーブラッチ回路１３を含んでいる。ＣＡＭサブアレイ１０ｄのハーフラッチ回路１２およびスレーブラッチ回路１３は、フルラッチ回路であるマスタースレーブ型のＤ−ＦＦ（FlipFlop）回路を構成している。
【００５０】
マッチ線制御部１１は、ＣＡＭセルＣＣの前段に、マッチ線ＭＬをプリチャージ状態またはディスチャージ状態に制御する。ハーフラッチ回路１２は、ＣＡＭセルＣＣの後段に、検索動作を実行した結果を下位のＣＡＭサブアレイに伝達する。マッチ線制御部１１、ＣＡＭセルＣＣ、ハーフラッチ回路１２を含むＣＡＭサブアレイが、パイプラインにおける１つのステージを構成している。図４に示すＣＡＭアレイ１０は、４つのＣＡＭサブアレイ１０ａ〜１０ｄに分割して、４つのステージを持つパイプラインの構成として説明するが、分割数は任意の偶奇数でかまわない。
【００５１】
ＣＡＭアレイ１０は、図中左側のＣＡＭサブアレイ１０ａから順に検索動作を行い、図中右側のＣＡＭサブアレイ１０ｄに至る４つのステージを経て、検索動作を実行した結果をプライオリティエンコーダ７０に伝送する。たとえば、第１ステージにおいて、ＣＡＭサブアレイ１０ａが少なくとも１つのＣＡＭセルＣＣの記憶データと検索データとが一致しない（ミス：ＭＩＳＳ）とき、第２ステージ以降において、ＣＡＭサブアレイ１０ｂ〜１０ｄは、マッチ線ＭＬをプリチャージ状態にせず、ディスチャージ状態に制御する。そのため、ＣＡＭアレイ１０は、検索動作を実行した結果（ミスの情報）をプライオリティエンコーダ７０に伝送することができる。すべてのステージにおいて、ＣＡＭサブアレイが、すべてのＣＡＭセルＣＣの記憶データと検索データとが一致する（ヒット：ＨＩＴ）とき、ＣＡＭアレイ１０は、検索動作を実行した結果（ヒットの情報）をプライオリティエンコーダ７０に伝送することができる。
【００５２】
従来の連想メモリの場合、第１ステージにおいて、ＣＡＭサブアレイが、少なくとも１つのＣＡＭセルＣＣの記憶データと検索データとが一致しない（ミス：ＭＩＳＳ）ときでも、第２ステージ以降において、ＣＡＭサブアレイは、マッチ線ＭＬをプリチャージ状態にする。そのため、従来の連想メモリは、マッチ線ＭＬを無駄にプリチャージ状態にするので、マッチ線制御部で消費する電力が大きい。そこで、本実施の形態に係る連想メモリ１００は、前述したようにマッチ線ＭＬを無駄にプリチャージ状態にせずに検索動作を実行することで、マッチ線制御部で消費する電力を低減する。
【００５３】
図５は、本発明の実施の形態１に係るＣＡＭサブアレイの詳細な構成を示す回路図である。図５に示すＣＡＭアレイ１０は、ＣＡＭサブアレイ１０ａおよびＣＡＭサブアレイ１０ｄの回路図である。なお、ＣＡＭサブアレイ１０ｂおよびＣＡＭサブアレイ１０ｃは、ＣＡＭサブアレイ１０ａと同じ回路構成であるため、図示を繰り返さない。
【００５４】
ＣＡＭサブアレイ１０ａは、マッチ線制御部１１、２０ビットのＣＡＭセルＣＣ、ハーフラッチ回路１２を含んでいる。マッチ線制御部１１は、マッチ線ＭＬと電源端子との間に直列に接続された２つのｐ型トランジスタ１１ａ，１１ｂと、マッチ線ＭＬと接地端子との間に直列に接続された２つのｎ型トランジスタ１１ｃ，１１ｄとを有する。ｐ型トランジスタ１１ａはＰＲＥ＿Ｎ［０］線、ｐ型トランジスタ１１ｂはＰＲＥ＿ＥＮＡ＿Ｎ［０］線の値がそれぞれ“０”のとき、ＯＮ状態となり、マッチ線制御部１１は、マッチ線ＭＬをプリチャージ状態にする。ｎ型トランジスタ１１ｃはＭＡＮ＿Ｎ［０］線、ｎ型トランジスタ１１ｄはＰＲＥ＿ＥＮＡ＿Ｎ［０］線の値がそれぞれ“１”のとき、ＯＮ状態となり、マッチ線制御部１１は、マッチ線ＭＬをディスチャージ状態にする。ハーフラッチ回路１２は、２入力ＮＡＮＤ回路１２ａ、インバータ１２ｂ〜１２ｄを含んでいる。なお、［０］内の数字は、ＣＡＭサブアレイに接続する配線の番号を表し、［０］はＣＡＭサブアレイ１０ａに接続する配線の番号、［１］はＣＡＭサブアレイ１０ｂに接続する配線の番号、［２］はＣＡＭサブアレイ１０ｃに接続する配線の番号、［３］はＣＡＭサブアレイ１０ｄに接続する配線の番号をそれぞれ表している。
【００５５】
ＣＡＭサブアレイ１０ｄは、ＣＡＭサブアレイ１０ａ〜１０ｃの構成に加えてスレーブラッチ回路１３を含んでいる。ＣＡＭサブアレイ１０ｄのハーフラッチ回路１２およびスレーブラッチ回路１３は、フルラッチ回路であるマスタースレーブ型のＤ−ＦＦ回路を構成し、２入力ＮＡＮＤ回路１２ａ、インバータ１２ｂ〜１２ｄ、インバータ１３ｂ〜１３ｄを含んでいる。
【００５６】
ハーフラッチ回路１２は、フルラッチ回路であるマスタースレーブ型のＤ−ＦＦ回路に比べて略半分のインバータ（トランジスタ）で構成することができる。そのため、連想メモリ１００は、構成する回路のレイアウト面積を小さくすることができる。また、ハーフラッチ回路１２は、動作時に、フルラッチ回路であるマスタースレーブ型のＤ−ＦＦ回路に比べて略半分のインバータを駆動するだけでよいので、連想メモリ１００は、消費電力を低減することができる。
【００５７】
次に、本発明の実施の形態１に係る連想メモリ１００の動作を説明する。図６は、本発明の実施の形態１に係る連想メモリ１００の動作を説明するためのタイミングチャートである。以下では、連想メモリ１００の動作をわかりやすく説明するために、ＶＢデータが有効である場合について説明する。つまり、第１ステージ［stage1］において、ＣＡＭサブアレイ１０ａのマッチ線制御部１１は、マッチ線ＭＬを必ずプリチャージ状態にする。なお、ＶＢデータが無効（エントリ無効）である場合、ＣＡＭアレイ１０のマッチ線制御部１１は、１エントリ分（４つのＣＡＭサブアレイ１０ａ〜１０ｄ）のマッチ線ＭＬをプリチャージ状態にしない。つまり、１エントリ分のマッチ線ＭＬの値は、常に“０”である。
【００５８】
まず、第１ステージにおいて、ＣＡＭサブアレイ１０ａは、ＰＲＥ＿Ｎ［０］線の値が“０”になると、マッチ線ＭＬをプリチャージ状態にする。なお、図６に示すように、ＰＲＥ＿ＥＮＡ＿Ｎ［０］線の値も“０”である。マッチ線ＭＬをプリチャージ状態にした後、第１ステージにおいて、ＣＡＭサブアレイ１０ａは、検索動作を実行する。検索動作を実行すると、マッチ線ＭＬに放電が生じるので、マッチ線ＭＬの値が“１”から“０”へと変化する。マッチ線ＭＬの値が“１”から“０”へと変化する遷移時間が遅いことで、後段に位置するＣＭＯＳトランジスタに貫通電流が流れないように２入力ＮＡＮＤ回路１２ａを設けてある。なお、マッチ線ＭＬの値に低振幅の値を採用した場合、２入力ＮＡＮＤ回路１２ａに代えてセンスアンプを用いる。
【００５９】
次に、２入力ＮＡＮＤ回路１２ａは、ＭＡＥ［０］線の値が“１”のとき、マッチ線ＭＬの値をハーフラッチ回路１２のインバータ１２ｂに入力する。つまり、２入力ＮＡＮＤ回路１２ａは、ＣＡＭサブアレイ１０ａの検索動作を実行した結果がヒットの情報“１”ならば“０”を、ミスの情報“０”ならば“１”をハーフラッチ回路１２のインバータ１２ｂに出力する。ハーフラッチ回路１２は、ＬＡＴ［０］線の値が“１”のとき、マッチ線ＭＬの値を第２ステージ［stage2］のＣＡＭサブアレイ１０ｂに伝送する。
【００６０】
図６に示すように、ＬＡＴ［０］線の値は、ＣＡＭサブアレイ１０ａが動作中（第１ステージ）に“１”となるので、ＣＡＭサブアレイ１０ａが動作中（第１ステージ）にマッチ線ＭＬの値がＣＡＭサブアレイ１０ｂに伝送される。しかし、第２ステージのマッチ線制御部１１は、ＣＡＭサブアレイ１０ａの動作（第１ステージ）の終了後に、マッチ線ＭＬをプリチャージ状態、またはディスチャージ状態に制御するので、ＣＡＭサブアレイ１０ａが動作中（第１ステージ）にマッチ線ＭＬの値がＣＡＭサブアレイ１０ｂに伝送されても、誤動作を生じない。
【００６１】
つまり、従来の連想メモリのように、ハーフラッチ回路ではなくＤ−ＦＦ回路を用いて、ＣＡＭサブアレイ１０ａが動作中（第１ステージ）にマッチ線ＭＬの値が第２ステージのＣＡＭサブアレイ１０ｂに伝送されない構成とする必要がない。そのため、本実施の形態に係る連想メモリ１００は、Ｄ−ＦＦ回路ではなくハーフラッチ回路１２を用いることで、構成する回路のレイアウト面積を小さくすることができる。
【００６２】
次に、ＬＡＴ［０］線の値が“０”になると、ＣＡＭ＿ＣＬＫ信号が“１”となり第２ステージにおいて、ＣＡＭサブアレイ１０ｂが動作を開始する。なお、ＣＡＭ＿ＣＬＫ信号の１サイクルが、各ステージにおけるＣＡＭサブアレイの動作と対応する。ＬＡＴ［０］線の値が“０”になる時点で、第１ステージにおけるＣＡＭサブアレイ１０ａの動作と、第２ステージにおけるＣＡＭサブアレイ１０ｂの動作とが完全に分離されるので、それぞれのパイプラインを完全に独立して動作することができる。また、図５に示すように、ハーフラッチ回路１２は、検索動作を実行するたびに電源端子から接地端子へと貫通電流が流れる回路構成でないため、連想メモリ１００は、消費電力を低減することができる。
【００６３】
次に、第２ステージにおいて、ＣＡＭサブアレイ１０ｂは、上位のＣＡＭサブアレイ１０ａ（第１ステージ）の検索動作を実行した結果がヒットの情報“１”の場合（上位ヒット時）、上位のＣＡＭサブアレイ１０ａ（第１ステージ）のハーフラッチ回路１２から出力されるマッチ線ＭＬの値が“０”（前値（ＰＲＥ＿ＥＮＡ＿Ｎ［１］））となるので、ＰＲＥ＿ＥＮＡ＿Ｎ［０］線の値が“０”になると、マッチ線ＭＬをプリチャージ状態にする。ＣＡＭサブアレイ１０ｂは、マッチ線ＭＬをプリチャージ状態にすることで、上位のＣＡＭサブアレイ１０ａ（第１ステージ）の検索動作を実行した結果のヒットの情報“１”を、下位のＣＡＭサブアレイ１０ｂ（第２ステージ）の検索動作に伝えている。
【００６４】
第２ステージにおいて、ＣＡＭサブアレイ１０ｂは、上位のＣＡＭサブアレイ１０ａ（第１ステージ）の検索動作を実行した結果がミスの情報“０”の場合（上位ミス時）、上位のＣＡＭサブアレイ１０ａ（第１ステージ）のハーフラッチ回路１２から出力されるマッチ線ＭＬの値が“１”（前値（ＰＲＥ＿ＥＮＡ＿Ｎ［１］））となるので、ＰＲＥ＿ＥＮＡ＿Ｎ［０］線の値が“０”になっても、マッチ線ＭＬをプリチャージ状態にすることはない。ＣＡＭサブアレイ１０ｂは、マッチ線ＭＬをプリチャージ状態にする期間よりも長いＭＡＥ＿Ｎ［１］線の値が“１”となる期間（図６ではＭＡＥ［１］線の値が“０”となる期間）、マッチ線ＭＬをディスチャージ状態にする。ＣＡＭサブアレイ１０ｂは、マッチ線ＭＬをディスチャージ状態にすることで、上位のＣＡＭサブアレイ１０ａ（第１ステージ）の検索動作を実行した結果のミスの情報“０”を、下位のＣＡＭサブアレイ１０ｂ（第２ステージ）の検索動作に伝えている。なお、いずれかのステージにおいて、ＣＡＭサブアレイの検索動作を実行した結果がミスの情報となると、そのステージ以降のＣＡＭサブアレイは、マッチ線ＭＬをプリチャージ状態にすることはなく、検索動作を実行した結果がミスの情報となる。
【００６５】
第３および第４ステージ（［stage3］，［stage4］）において、ＣＡＭサブアレイ１０ｃ，１０ｄは、第２ステージのＣＡＭサブアレイ１０ｂと同じ動作を行なうので、同じ説明を繰り返さない。
【００６６】
なお、第４ステージのＣＡＭサブアレイ１０ｄは、スレーブラッチ回路１３を備えているので、ハーフラッチ回路１２とスレーブラッチ回路１３とで、フルラッチ回路であるマスタースレーブ型のＤ−ＦＦ回路を構成している。ＣＡＭサブアレイ１０ｄは、ＭＡＴ＿ＣＬＫ線の値が“１”となるタイミング（第５ステージ［stage5］）で、プライオリティエンコーダ７０に、検索動作を実行した結果を伝送する。つまり、ＣＡＭサブアレイ１０ｄは、従来の連想メモリと同じようにＤ−ＦＦ回路を用いて、プライオリティエンコーダ７０に、検索動作を実行した結果を伝送している。
【００６７】
以上のように、本実施の形態１に係る連想メモリ１００は、上位のＣＡＭサブアレイの動作の終了後に、下位のＣＡＭサブアレイのマッチ線制御部１１がマッチ線ＭＬをプリチャージ状態またはディスチャージ状態に制御することで、検索動作を実行した結果を下位のＣＡＭサブアレイに伝達する回路にフルラッチ回路（たとえばフリップフロップ回路）でなくハーフラッチ回路１２を用いることができる。ＣＡＭサブアレイは、検索動作を実行した結果を下位のＣＡＭサブアレイに伝達する回路に、フルラッチ回路（たとえばフリップフロップ回路）の略半分のトランジスタで構成されたハーフラッチ回路１２を用いるので、構成する回路のレイアウト面積を小さくすることができる。また、ＣＡＭサブアレイは、フリップフロップ回路に比べて動作時に消費する電力が小さいハーフラッチ回路を用いるので、消費電力を低減することができる。
【００６８】
また、本実施の形態１に係る連想メモリ１００は、検索動作をパイプライン化することで、あるステージにおいてＣＡＭサブアレイの検索動作を実行した結果がミスの情報となると、そのステージ以降のＣＡＭサブアレイにおいてマッチ線ＭＬをプリチャージ状態にすることがないので、マッチ線ＭＬを無駄にプリチャージ状態にしないで、マッチ線制御部で消費する電力を低減する。
【００６９】
従来の連想メモリは、検索動作を実行した結果がミス−ミス−ミス−ミスと連続した場合、マッチ線ＭＬを４回プリチャージ状態にするために必要となる電力が消費電力のワーストケースとなる。しかし、本実施の形態１に係る連想メモリ１００は、検索動作を実行した結果がヒット−ミス−ヒット−ミスと連続した場合、マッチ線ＭＬを２回プリチャージ状態にするために必要となる電力が消費電力のワーストケースとなる。そのため、本実施の形態１に係る連想メモリ１００は、従来の連想メモリに比べて、ワーストケースの消費電力が略半分になる。
【００７０】
また、本実施の形態１に係る連想メモリ１００は、ＶＢデータを第１ステージのマッチ線制御部１１に入力することで、そのエントリにおけるマッチ線ＭＬをプリチャージ状態にする制御を完全に止めることができるので、エントリ無効の場合の消費電力を抑えることができる。
【００７１】
また、本実施の形態１に係る連想メモリ１００は、図５に示すように、ハーフラッチ回路１２が、検索動作を実行するたびに電源端子から接地端子へと貫通電流が流れる回路構成でないため、連想メモリ１００は、消費電力を低減することができる。
【００７２】
さらに、本実施の形態１に係る連想メモリ１００は、マッチ線制御部１１がマッチ線ＭＬをディスチャージ状態にすることができるので、検索動作を実行した結果によりマッチ線ＭＬが中間電位等になり、下位のＣＡＭサブアレイのトランジスタに貫通電流が流れるのを抑えることができる。
【００７３】
マッチ線制御部１１は、マッチ線ＭＬをプリチャージ状態にするためにｐ型トランジスタ１１ａ，１１ｂを、マッチ線ＭＬをディスチャージ状態にするためにｎ型トランジスタ１１ｃ，１１ｄをそれぞれ備えている。図６で示すように、マッチ線ＭＬをディスチャージ状態にする期間は、マッチ線ＭＬをプリチャージ状態にする期間に比べて長くすることができるので、ｎ型トランジスタ１１ｃ，１１ｄは、ｐ型トランジスタ１１ａ，１１ｂに比べて駆動能力が小さくてもよい。そのため、ｎ型トランジスタ１１ｃ，１１ｄは、ｐ型トランジスタ１１ａ，１１ｂに比べてサイズを小さくすることができる。
【００７４】
また、本実施の形態１に係る連想メモリ１００は、パイプライン化するために、マッチ線ＭＬを複数に分割するので、マッチ線ＭＬの充放電容量を小さくして、検索動作を実行する速度（検索動作の周波数）を速くすることができる。
【００７５】
なお、本実施の形態１に係るマッチ線制御部１１では、ｐ型トランジスタ１１ａのゲートをＰＲＥ＿Ｎ線に、ｐ型トランジスタ１１ｂのゲートをＰＲＥ＿ＥＮＡ＿Ｎ線にそれぞれ接続してある。また、本実施の形態１に係るマッチ線制御部１１では、ｎ型トランジスタ１１ｃのゲートをＭＡＮ＿Ｎ線に、ｎ型トランジスタ１１ｄのゲートをＰＲＥ＿ＥＮＡ＿Ｎ線にそれぞれ接続してある。
【００７６】
ただし、本実施の形態１に係るマッチ線制御部１１では、ｐ型トランジスタ１１ａのゲートをＰＲＥ＿ＥＮＡ＿Ｎ線に、ｐ型トランジスタ１１ｂのゲートをＰＲＥ＿Ｎ線に、ｎ型トランジスタ１１ｃのゲートをＰＲＥ＿ＥＮＡ＿Ｎ線に、ｎ型トランジスタ１１ｄのゲートをＭＡＮ＿Ｎ線にそれぞれ接続しても良い。このような接続に変更することで、マッチ線制御部１１は、マッチ線ＭＬをプリチャージ状態またはディスチャージ状態とするときの動作を高速化することができる。
【００７７】
（実施の形態２）
図７は、本発明の実施の形態２に係るＣＡＭアレイ１０を複数のＣＡＭサブアレイに分割した構成を示す模式図である。本発明の実施の形態２に係る連想メモリ１００は、実施の形態１に係る連想メモリ１００と同じ構成であるため、同じ構成要素に同じ符号を付して詳細な説明を繰り返さない。
【００７８】
図７に示すＣＡＭアレイ１０は、４つのＣＡＭサブアレイ１０ａ〜１０ｄに分割してある。ＣＡＭサブアレイ１０ａには、ＶＢ(valid  Bit)データが入力され、ＣＡＭサブアレイ１０ｄは、検索動作を実行した結果（ＺＭＡＴ信号）をプライオリティエンコーダ７０に出力する。なお、図３に示すようにＣＡＭセルＣＣを８０列（ｍ＝８０）配置してある場合、ＣＡＭサブアレイ１０ａ〜１０ｄは、２０列ずつ分割され、それぞれ２０ビットのＣＡＭセルＣＣを含んでいる。
【００７９】
ＣＡＭサブアレイ１０ａ〜１０ｃは、２０ビットのＣＡＭセルＣＣ、制御回路１５を含んでいる。制御回路１５は、マッチ線ＭＬをプリチャージ状態、またはディスチャージ状態を制御するマッチ線制御部と、および検索動作を実行した結果を下位のＣＡＭサブアレイに送るためのハーフラッチ回路とを含んでいる。ＣＡＭサブアレイ１０ｄは、ＣＡＭサブアレイ１０ａ〜１０ｃの構成に加えて、検索動作を実行した結果をプライオリティエンコーダ７０に伝送するスレーブラッチ回路１３を含んでいる。制御回路１５に含むハーフラッチ回路およびスレーブラッチ回路１３は、フルラッチ回路であるマスタースレーブ型のＤ−ＦＦ回路を構成している。
【００８０】
また、図７に示すＣＡＭアレイ１０は、ＣＡＭサブアレイ１０ａとＣＡＭサブアレイ１０ｂとに対して同じ配線１６で、ＣＡＭサブアレイ１０ｃとＣＡＭサブアレイ１０ｄとに対して同じ配線１７でそれぞれ制御信号を供給している。図７に示すＣＡＭアレイ１０は、４つのＣＡＭサブアレイ１０ａ〜１０ｄに分割して、４つのステージを持つパイプラインの構成として説明するが、分割数は任意の偶奇数でかまわない。
【００８１】
ＣＡＭアレイ１０は、図中左側のＣＡＭサブアレイ１０ａから順に検索動作を行い、図中右側のＣＡＭサブアレイ１０ｄに至る４つのステージを経て、検索動作を実行した結果をプライオリティエンコーダ７０に伝送する。
【００８２】
図８は、本発明の実施の形態２に係るＣＡＭサブアレイの詳細な構成を示す回路図である。図８に示すＣＡＭサブアレイ１０ａは、２０ビットのＣＡＭセルＣＣ、制御回路１５を含んでいる。制御回路１５は、図３に示す回路構成と同じマッチ線制御部１１、ハーフラッチ回路１２を含んでいる。ＣＡＭサブアレイ１０ｄは、ＣＡＭサブアレイ１０ａ〜１０ｃの構成に加えて、スレーブラッチ回路１３を含んでいる。
【００８３】
ＣＡＭサブアレイ１０ａおよびＣＡＭサブアレイ１０ｂは、ＭＡＥ［０］線、ＭＡＥ＿Ｎ［０］線、ＬＡＴ［０］線、ＬＡＴ＿Ｎ［０］線およびＰＲＥ＿Ｎ［０］線に対して共通に接続してある。ＣＡＭサブアレイ１０ｃおよびＣＡＭサブアレイ１０ｄは、ＭＡＥ［１］線、ＭＡＥ＿Ｎ［１］線、ＬＡＴ［１］線、ＬＡＴ＿Ｎ［１］線およびＰＲＥ＿Ｎ［１］線に対して共通に接続してある。なお、［０］内の数字は、ＣＡＭサブアレイに接続する配線の番号を表し、［０］はＣＡＭサブアレイ１０ａ，１０ｂに接続する配線の番号、［１］はＣＡＭサブアレイ１０ｃ，１０ｄに接続する配線の番号をそれぞれ表している。
【００８４】
本発明の実施の形態２に係る連想メモリ１００の動作も、実施の形態１に係る連想メモリ１００の動作と同じであるため、説明を繰り返さない。
【００８５】
以上のように、本発明の実施の形態２に係る連想メモリ１００は、ＣＡＭサブアレイに接続する配線を、隣接する二つのＣＡＭサブアレイ同士で共通にしてあるので、配線に供給する制御信号を減らし、消費電力を低減することができる。また、本発明の実施の形態２に係る連想メモリ１００は、配線の数を減らすことで、構成する回路のレイアウト面積を小さくすることができる。
【００８６】
さらに、本発明の実施の形態２に係る連想メモリ１００は、マッチ線制御部１１およびハーフラッチ回路１２を１つの制御回路１５としてまとめて配置することで、構成する回路のレイアウト面積を小さくすることができる。
【００８７】
（実施の形態３）
図９は、本発明の実施の形態３に係るネットワークアドレス検索装置として機能するシステムＬＳＩの構成を示すブロック図である。
【００８８】
図９に示すシステムＬＳＩ１３０は、実施の形態１（図４，図５）による連想メモリ１００、または実施の形態２（図７，図８）による連想メモリ１００を用いるＴＣＡＭセルアレイ１３１、優先制御部（プライオリティエンコーダ）１３２、アクションメモリ１３３を含んでいる。
【００８９】
以上のように、本発明の実施の形態３に係るネットワークアドレス検索装置は、ＴＣＡＭセルアレイ１３１に、実施の形態１による連想メモリ１００、または実施の形態２による連想メモリ１００を用いているので、消費電力を低減することができる。また、本発明の実施の形態３に係るネットワークアドレス検索装置は、ＴＣＡＭセルアレイ１３１を構成する回路のレイアウト面積を小さくすることができる。
【００９０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９１】
１０  アレイ、１０ａ〜１０ｄ  サブアレイ、１１  マッチ線制御部、１１ａ，１１ｂ  ｐ型トランジスタ、１１ｃ，１１ｄ  ｎ型トランジスタ、１２  ハーフラッチ回路、１３  スレーブラッチ回路、１５  制御回路、１６，１７  配線、２０  一致検出部、２２  データ記憶部、２４  検索部、３０  検索データ転送部、４０  サーチ制御回路、７０  プライオリティエンコーダ、７１  データ入力端子、７２  命令コード入力端子、７３  クロック入力端子、７４  データバッファ、７５  命令コードバッファ、７６  クロックバッファ、７７  命令コードデコーダ、７８  アドレスデコーダ、７９  センスアンプ、８１  サーチ結果出力バッファ、８２  サーチ結果出力端子、１００  連想メモリ、１３１  セルアレイ、１３３  アクションメモリ。
【図１】
0005632797.tif 000002
【図２】
0005632797.tif 000003
【図３】
0005632797.tif 000004
【図４】
0005632797.tif 000005
【図５】
0005632797.tif 000006
【図６】
0005632797.tif 000007
【図７】
0005632797.tif 000008
【図８】
0005632797.tif 000009
【図９】
0005632797.tif 000010