(57)【特許請求の範囲】
【請求項１】
連想メモリであって、
マッチ線と、
前記マッチ線と接続され、前記マッチ線を所定の電圧にプリチャージするためのプリチャージ部と、
前記マッチ線に沿って配列され、各々が前記マッチ線と接続された複数のメモリセルとを備え、
前記複数のメモリセルの各々は、データ検索時に、入力された検索データと予め記憶したデータとの一致または不一致により前記マッチ線をプリチャージ状態から変化させ、
前記連想メモリは、
前記マッチ線の一端に設けられ、前記マッチ線の論理レベルを検出するためのマッチアンプと、
前記マッチアンプから遠い側のメモリセルから前記複数のメモリセルの配列順で各メモリセルに前記検索データを転送する検索データ転送部とをさらに備え、
前記検索データ転送部は、前記複数のメモリセルにそれぞれ対応し、各々が、受信した第１の制御信号が活性化したときに対応のメモリセルに前記検索データを転送する複数のドライバを含み、
前記連想メモリは、
前記第１の制御信号を生成して前記複数のドライバに出力する制御部と、
前記制御部と接続され、前記第１の制御信号を前記複数のドライバの各々に伝送するための１本の制御信号線とをさらに備え、
前記制御信号線は、前記第１の制御信号が、前記マッチアンプから遠い側のメモリセルから前記複数のメモリセルの配列順で、各メモリセルに対応したドライバと前記制御信号線との接続ノードを通過するように、前記複数のドライバの各々と接続され、
前記制御部は、第２の制御信号をさらに生成して前記マッチアンプに出力し、
前記マッチアンプは、受信した前記第２の制御信号が活性化したときに前記マッチ線の論理レベルを検出し、
前記制御信号線は、前記第１の制御信号が前記複数のドライバの各々との接続ノードを通過した後に前記制御部に到達するように、前記制御部と再度接続され、
前記制御部は、前記制御信号線に出力する前記第１の制御信号を非活性化させた後、前記制御信号線を通過して戻った前記第１の制御信号が非活性化したタイミングより後に、前記第２の制御信号を活性化させる、連想メモリ。
【請求項２】
前記制御部は、第３の制御信号をさらに生成して前記プリチャージ部に出力し、
前記プリチャージ部は、受信した前記第３の制御信号が活性化したときに前記マッチ線に所定の電圧を印加し、
前記制御部は、前記制御信号線に出力する前記第１の制御信号を非活性化させた後、前記制御信号線を通過して戻った前記第１の制御信号が非活性化したタイミングより後に、前記第３の制御信号を活性化させる、請求項１に記載の連想メモリ。
【請求項３】
前記制御部を起点とし前記プリチャージ部に至る前記第３の制御信号の伝送時間は、前記制御部を起点とし前記マッチアンプから最も遠いメモリセルに対応したドライバに至るまでの前記第１の制御信号の伝送時間よりも短い、請求項２に記載の連想メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は半導体素子を用いた連想メモリ（ＣＡＭ：Content  Addressable  Memory）に関し、特に従来よりも高速動作が可能な連想メモリに関する。
【背景技術】
【０００２】
一般に半導体メモリの高集積化および大容量化が進むにつれて半導体メモリの高速動作は困難になる。その原因の１つは、配線に接続されるメモリセル数の増加によって配線の容量が増大するために信号の伝搬遅延が生じるからである。
【０００３】
特開平１０−２５５４７７号公報（特許文献１）に開示された技術は、ワード線駆動回路から出力された駆動制御信号の伝搬遅延をなくすことを目的としたものである。この文献のワード線駆動回路は、信号発生部と、第１のドライバ回路と、第２のドライバ回路と、高速化ドライバ回路とを含む。信号発生部は所定のタイミングで駆動信号を発生する。第１のドライバ回路は、駆動信号に応答して、複数の被制御回路が接続された第１の配線の一端側を駆動する。第２のドライバ回路は、駆動信号に応答して、第１の配線より駆動負荷が小さい第２の配線の一端側を駆動する。高速化ドライバ回路は、第２の配線の他端側および第一の配線の他端側に入力が接続され、第１の配線の他端側と第２の配線の他端側のレベルが一致しないときに第１の配線の他端側を駆動する出力端子を有する。
【０００４】
特開２００１−３５７６７５号公報（特許文献２）は、読出時のアクセスタイムを高速化するための技術を開示する。この文献に記載の半導体記憶装置は、列方向に配列されたメモリセルと、各メモリセルに接続された一対のディジット線と、前記ディジット線と交差して敷設され各メモリセルを選択するワード線とを備える。さらに、この半導体装置は、ディジット線の一端に配置されたセンスアンプと、ディジット線のセンスアンプの近傍に配置された近端側プリチャージ回路と、ディジット線のセンスアンプと反対側の端部に配置された遠端側プリチャージ回路とを備える。このような半導体記憶装置において、読出動作時の遠端側プリチャージ回路のプリチャージ動作の終了時点が近端側プリチャージ回路のそれと同時かそれより早いことを特徴とする。好ましくは、読出動作時における遠端側プリチャージ回路に近い側のワード線の選択信号の方が近端側プリチャージ回路に近い側のワード線の選択信号より早く立ち上がる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２５５４７７号公報
【特許文献２】特開２００１−３５７６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明は、データ検索機能を備えた連想メモリを対象とする。従来のメモリは、アドレスが入力されたときにそのアドレスに対応したメモリセルの記憶データを出力する。これに対して、連想メモリでは検索データが入力され、検索データに合致した記憶データが探索される。そして、検索データに合致した記憶データがあれば、その記憶データに対応したアドレスまたはそのアドレスに関連したデータが出力される。
【０００７】
具体的には、連想メモリでは複数のメモリセルが１本のマッチ線（一致線）に接続される。さらにマッチ線と交差してメモリセルごとに一対のサーチ線（検索線）が設けられる。検索動作時にはマッチ線が、たとえば“１”（Ｈ（High）レベル）にプリチャージされる。その後、サーチ線を介して検索データが転送される。転送された検索データとメモリセルに予め記憶されたデータとが一致したときには、マッチ線は“１”の状態に維持され、不一致のときは“０”（Ｌ（Low．）レベル）の状態に駆動される。マッチ線の論理レベルはマッチ線に接続されたマッチアンプによって検出される。
【０００８】
このような構成の連想メモリで高速動作を可能にするためには、マッチ線をプリチャージするタイミング、対応のメモリセルに検索データを入力するタイミング、およびマッチ線の論理レベルを検出するタイミングなどの制御が重要である。しかしながら、従来技術では、これらのタイミング制御は半導体素子を用いた遅延段によって行なわれているので、回路動作が高速化するほど遅延段の設計が困難になっている。
【０００９】
この発明の目的は、従来よりも高周波数動作が可能な連想メモリを提供することである。
【課題を解決するための手段】
【００１０】
この発明の実施の一形態による連想メモリは、マッチ線と、プリチャージ部と、マッチ線に沿って配列された複数のメモリセルと、マッチアンプと、検索データ転送部とを備える。プリチャージ部は、マッチ線と接続され、マッチ線を所定の電圧にプリチャージするために設けられる。複数のメモリセルの各々は、データ検索時に、入力された検索データと予め記憶したデータとの一致または不一致によりマッチ線をプリチャージ状態から変化させる。マッチアンプは、マッチ線の一端に設けられ、マッチ線の論理レベルを検出する。検索データ転送部は、マッチアンプから遠い側のメモリセルから複数のメモリセルの配列順で各メモリセルに検索データを転送する。
【発明の効果】
【００１１】
上記の実施の形態によれば、マッチアンプから遠い側のメモリセルからメモリセルの配列順で検索データが各メモリセルに転送される。したがって、メモリセルへの検索データの転送後に、マッチ線の遅延時間を考慮することなくマッチアンプによって論理レベルの検出を開始することができる。この結果、従来よりも高周波数動作が可能になる。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１による連想メモリ１００の全体構成を示すブロック図である。
【図２】図１の連想メモリ１００の一部の構成を詳細に示すブロック図である。
【図３】図２のプリチャージ部ＰＣ、ＣＡＭセルＣＣ、およびマッチアンプＭＡの構成を示す回路図である。
【図４】図２のサーチ線ドライバＤＲの構成を示すブロック図である。
【図５】図３、図４の各信号のタイミング図である。
【図６】図１のサーチ制御回路４０の構成を示すブロック図である。
【図７】図６のメインサーチ制御回路４１の構成を示すブロック図である。
【図８】図７の各信号のタイミング図である。
【図９】図６のサブサーチ制御回路５０の一部の構成を示すブロック図である（サーチ線イネーブル信号ＳＬＥおよびマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの生成）。
【図１０】図９の各信号のタイミング図である。
【図１１】図６のサブサーチ制御回路５０の一部の構成を示すブロック図である（マッチアンプ制御信号ＭＡＥなどの生成）。
【図１２】図１１の遅延段５５の構成の一例を示すブロック図である。
【図１３】図１１の各信号のタイミング図である。
【図１４】図２の連想メモリ１００の比較例としての連想メモリ９００の構成を示すブロック図である。
【図１５】図４のサーチ制御回路９４０の一部の構成を示すブロック図である。
【図１６】図２の制御信号線３６の構成の一例を示す平面図である。
【図１７】図２の制御信号線３６の構成の他の例を示す平面図である。
【図１８】この発明の実施の形態２のよる連想メモリ１００Ａの構成を示すブロック図である。
【図１９】図１８のサブサーチ制御回路５０Ａの一部の構成を示すブロック図である（サーチ線イネーブル信号ＳＬＥ＿０およびマッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎの生成）。
【図２０】図１８のサブサーチ制御回路５０Ｂの一部の構成を示すブロック図である（サーチ線イネーブル信号ＳＬＥ＿１およびマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎの生成）。
【図２１】図１９、図２０の各信号のタイミング図である。
【図２２】図１８のサブサーチ制御回路５０Ａの一部の構成を示すブロック図である（マッチアンプ制御信号ＭＡＥ＿０などの生成）。
【図２３】図１８のサブサーチ制御回路５０Ｂの一部の構成を示すブロック図である（マッチアンプ制御信号ＭＡＥ＿１などの生成）。
【図２４】図２２の各信号のタイミング図である。
【図２５】図１８の制御信号線１２０，１２１の構成の一例を示す平面図である。
【図２６】図１８の制御信号線１２０，１２１の構成の他の例を示す平面図である。
【発明を実施するための形態】
【００１３】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１４】
＜実施の形態１＞
［連想メモリ１００の全体構成と動作の概略］
図１は、この発明の実施の形態１による連想メモリ１００の全体構成を示すブロック図である。
【００１５】
図１を参照して、連想メモリ１００は、半導体基板ＳＵＢ上に形成されたＣＡＭメモリアレイ１０と、一致検出部２０と、検索データ転送部３０と、サーチ制御回路４０（制御部）と、プライオリティエンコーダ７０と、サーチ結果出力バッファ８１と、アドレス／データバッファ７４と、命令コードバッファ７５と、命令コードデコーダ７７と、クロックバッファ７６と、アドレスデコーダ７８と、センスアンプ７９とを含む。
【００１６】
ＣＡＭメモリアレイ１０は、行列状に配列された複数のＣＡＭセル（メモリセル）によって構成される。各ＣＡＭセルは１ビットのデータを記憶するとともに、検索データと予め記憶したデータとを比較する機能を有する。
【００１７】
連想メモリ１００は、通常のデータ書込およびデータ読出のためにＣＡＭメモリアレイ１０の各行に対応して設けられたワード線（図３の参照符号ＷＬ）と、ＣＡＭメモリアレイ１０の各列に対応して設けられたビット線対（図３の参照符号ＢＬ，ＢＬ＿Ｎ）を含む。さらに、連想メモリ１００は、データ検索のためにＣＡＭメモリアレイ１０の各行に対応して設けられたマッチ線ＭＬ（一致線）と、ＣＡＭメモリアレイ１０の各列に対応して設けられたサーチ線対ＳＬ，ＳＬ＿Ｎ（検索線対）を含む。なお、この明細書では、論理レベルを反転させた相補的な関係にある場合に参照符号の末尾に＿Ｎが付される。
【００１８】
一致検出部２０（マッチアンプ）は、各マッチ線ＭＬの論理レベル（“１”または“０”）を検出する。これによって、各マッチ線ＭＬに接続された各ＣＡＭセルにおいて検索データと予め記憶したデータとが一致したか否かが検知される。
【００１９】
検索データ転送部３０（サーチ線ドライバ）は、データ検索時にサーチ線対ＳＬ，ＳＬ＿Ｎを介してＣＡＭメモリアレイ１０の各メモリセルに検索データを転送する。
【００２０】
サーチ制御回路４０は、入力されたクロックＣＬＫに基づいて検索データ転送部３０および一致検出部２０の動作タイミングを制御する。
【００２１】
プライオリティエンコーダ７０は、一致検出部２０の検出結果に基づいて、検索データと記憶データとが一致したアドレスを所定の優先順位に従ってサーチ結果として出力する。
【００２２】
サーチ結果出力バッファ８１は、プライオリティエンコーダ７０から受けたサーチ結果を、サーチ結果出力端子８２を介して外部に出力する。
【００２３】
アドレス／データバッファ７４は、アドレス／データ入力端子７１を介して受けたアドレスまたはデータをアドレスデコーダ７８およびセンスアンプ７９に出力する。さらに、アドレス／データバッファ７４は、データ検索に必要な多ビットの検索データＳＤ，ＳＤ＿Ｎをアドレス／データ入力端子７１を介して受けて検索データ転送部３０へ出力する。
【００２４】
命令コードバッファ７５は、命令コード入力端子７２を介して受けた命令コードを、命令コードデコーダ７７に出力する。命令コードには、データ書込を表わす命令コードおよびデータ検索を表わす命令コードなどがある。
【００２５】
命令コードデコーダ７７は、命令コードバッファ７５から受けた命令コードをデコードして、命令内容に応じた信号を発生させる。たとえば、データ検索命令を受けたときは、命令コードバッファ７５はサーチ信号ＳＣＭを活性化させる。リセット命令を受けたときは、命令コードバッファ７５はリセット信号ＲＳＴを活性化させる。
【００２６】
アドレスデコーダ７８は、アドレス／データバッファ７４から受けたアドレスに基づいて、データ書込時には書込対象のメモリセル群を選択し、データ読出時には読出対象のメモリセル群を選択する。
【００２７】
クロックバッファ７６は、クロック入力端子７３を介して外部からクロックを受け、連想メモリ１００の各部に出力する。
【００２８】
センスアンプ７９は、データ読出時に読出対象のＣＡＭセルが接続されたビット線対の論理レベルを検出する。
【００２９】
以下、データ検索に関係する構成要素についてさらに詳しく説明する。
図２は、図１の連想メモリ１００の一部の構成を詳細に示すブロック図である。図２では、ＣＡＭメモリアレイ１０と、一致検出部２０と、検索データ転送部３０と、サーチ制御回路４０とが示されている。
【００３０】
ＣＡＭメモリアレイ１０は、ｎ行ｍ列の行列状に配列された複数のメモリセル（ＣＡＭセル）を含む。図２の場合、ｍ＝８０である。以下では、第ｉ行第ｊ列（ｉは１以上ｎ−１以下の整数、ｊは１以上ｍ−１以下の整数）のＣＡＭセルをＣＡＭセルＣＣ［ｉ−１，ｊ−１］と記載し、ＣＡＭセルについて総称するときまたは不特定のものを示すときＣＡＭセルＣＣと記載する。さらに、ＣＡＭメモリアレイ１０の行方向をＸ方向と称し、列方向をＹ方向と称する。Ｘ方向について向きを区別するときには＋Ｘ方向、−Ｘ方向のように符号を付して記載する。Ｙ方向についても同様である。
【００３１】
図２に示すように、連想メモリ１００は、ＣＡＭメモリアレイ１０の行に対応して設けられ、Ｘ方向に延びるｎ本のマッチ線ＭＬ［０］〜ＭＬ［ｎ−１］を含む。さらに、連想メモリ１００は、ＣＡＭメモリアレイ１０の列に対応して設けられ、Ｙ方向に延びるｍ対のサーチ線対ＳＬ［０］，ＳＬ＿Ｎ［０］〜ＳＬ［ｍ−１］，ＳＬ＿Ｎ［ｍ−１］を含む（図２はｍ＝８０の場合が記載されている。）。マッチ線ＭＬ［０］〜ＭＬ［ｎ−１］およびサーチ線対ＳＬ［０］，ＳＬ＿Ｎ［０］〜ＳＬ［７９］，ＳＬ＿Ｎ［７９］について、総称する場合または不特定のものを示す場合にマッチ線ＭＬおよびサーチ線対ＳＬ，ＳＬ＿Ｎとそれぞれ記載する。各ＣＡＭセルＣＣは、ｎ本のマッチ線ＭＬとｍ対のサーチ線対ＳＬ，ＳＬ＿Ｎとの各交差点に対応して設けられる。各ＣＡＭセルＣＣは、対応のマッチ線ＭＬおよび対応のサーチ線対ＳＬ，ＳＬ＿Ｎと接続される。
【００３２】
連想メモリ１００は、さらに、ｎ本のマッチ線ＭＬ［０］〜ＭＬ［ｎ−１］にそれぞれ接続されたプリチャージ部ＰＣ［０］〜ＰＣ［ｎ−１］を含む。プリチャージ部ＰＣ［０］〜ＰＣ［ｎ−１］についても総称する場合または不特定のものを示す場合にプリチャージ部ＰＣと記載する。各プリチャージ部ＰＣは、サーチ制御回路４０から受信したマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎ（第３の制御信号）が活性状態（“０”）になったとき、対応のマッチ線ＭＬを所定の電圧（図２の場合、電源電圧）にプリチャージする。各プリチャージ部ＰＣは、対応のマッチ線ＭＬの−Ｘ方向側の端部に、すなわち、一致検出部２０（マッチアンプＭＡ［０］〜ＭＡ［ｎ−１］に近接して設けられる。
【００３３】
連想メモリでは複数のＣＡＭセルＣＣによって構成された１エントリごとに、多ビットの検索データ（検索ワード）と予め記憶した記憶データ（記憶ワード）とが比較される。図２の場合、各マッチ線ＭＬに接続された１行分（８０個）のＣＡＭセルＣＣによって１エントリが構成される。すなわち、エントリビット幅は８０ビットである。検索ワードは、８０対のサーチ線対ＳＬ，ＳＬ＿Ｎを介してＣＡＭメモリアレイ１０の各エントリに入力される。入力された検索ワードと記憶ワードとは、ＣＡＭセルＣＣごとにビット単位で比較される。
【００３４】
データ検索手順について簡単に説明すると、まず、プリチャージ部ＰＣによって各マッチ線ＭＬが“１”にプリチャージされる。次に、各ＣＡＭセルＣＣに、対応のサーチ線対ＳＬ，ＳＬ＿Ｎを介して検索データが入力される。各ＣＡＭセルＣＣは、入力された検索データと予め記憶している１ビットの記憶データとを比較し、両者が異なっている場合はプリチャージ状態にある対応のマッチ線ＭＬを放電させることによって対応のマッチ線ＭＬの論理レベルを変化させる。
【００３５】
したがって、各マッチ線ＭＬに接続された複数のＣＡＭセルＣＣのいずれについても記憶データと検索データとが一致（ヒット：ＨＩＴ）したとき、すなわち、検索ワードと記憶ワードとが一致したときには、マッチ線ＭＬの論理レベルは“１”に維持される。各マッチ線ＭＬに接続された少なくとも１つのＣＡＭセルＣＣについて記憶データと検索データとが不一致（ミス：ＭＩＳＳ）のとき、すなわち、検索ワードと記憶ワードとが不一致のときには、プリチャージされた電荷が放電されるのでマッチ線ＭＬの論理レベルは“０”になる。
【００３６】
なお、データ検索手順としては、マッチ線を“０”にプリチャージし、記憶データと検索データとが一致したとき“１”に充電する方法や、マッチ線を“１”にプリチャージし、記憶データと検索データとが一致したとき“０”に放電する方法など様々な手順が考えられる。本願では、特にデータ検索手順に限定されるものではない。
【００３７】
一致検出部２０は、ｎ本のマッチ線ＭＬにそれぞれ対応するｎ個のマッチアンプＭＡ［０］〜ＭＡ［ｎ−１］を含む。以下、マッチアンプＭＡ［０］〜ＭＡ［ｎ−１］について総称する場合または不特定のものを示す場合にマッチアンプＭＡと記載する。各マッチアンプＭＡは、対応するマッチ線ＭＬの−Ｘ方向側の端部に接続される。
【００３８】
各マッチアンプＭＡは、対応のマッチ線ＭＬの論理レベル（“１”または“０”）を検出する。図３で説明するように、各マッチアンプＭＡは、対応のマッチ線ＭＬの電圧と参照線（図３のＭＬ＿ＲＥＦ）に印加された参照電圧とを比較することによってマッチ線ＭＬの論理レベルを検出する。各マッチアンプＭＡの動作は、サーチ制御回路４０から出力されたマッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴ（第２の制御信号）によって制御される。
【００３９】
検索データ転送部３０は、合計でｍ対のサーチ線対ＳＬ［０］，ＳＬ＿Ｎ［０］〜ＳＬ［ｍ−１］，ＳＬ＿Ｎ［ｍ−１］にそれぞれ対応するｍ個のサーチ線ドライバＤＲ［０］〜ＤＲ［ｍ−１］（図２の場合、ｍ＝８０）を含む。サーチ線ドライバＤＲ［０］〜ＤＲ［７９］について総称する場合または不特定のものを示す場合、サーチ線ドライバＤＲと記載する。各サーチ線ドライバＤＲは、対応するサーチ線対ＳＬ，ＳＬ＿Ｎの−Ｙ方向側の端部に接続される。
【００４０】
図２に示すように、第ｉ番目（ｉは１以上ｍ以下の整数）のサーチ線ドライバＤＲ［ｉ−１］は、個別の検索データＳＤ［ｉ−１］，ＳＤ＿Ｎ［ｉ−１］と共通のサーチ線イネーブル信号ＳＬＥ（第１の制御信号）とを受ける。検索データＳＤ［ｉ−１］，ＳＤ＿Ｎ［ｉ−１］は、一方が“１”のとき他方が“０”となる相補のデータであり、図１のアドレス／データバッファ７４から供給される。サーチ線イネーブル信号ＳＬＥは、１本の制御信号線３６（３６Ａ，３６Ｂ，３６Ｃ）を介してサーチ制御回路４０から供給される。サーチ線ドライバＤＲ［ｉ−１］は、サーチ線イネーブル信号ＳＬＥが活性状態（“１”）のとき検索データＳＤ［ｉ−１］，ＳＤ＿Ｎ［ｉ−１］を対応のサーチ線対ＳＬ［ｉ−１］，ＳＬ＿Ｎ［ｉ−１］に転送する。なお、検索データＳＤ［０］，ＳＤ＿Ｎ［０］〜ＳＤ［ｍ−１］，ＳＤ＿Ｎ［ｍ−１］についても、総称する場合または不特定のものを示す場合に検索データＳＤ，ＳＤ＿Ｎと記載する。
【００４１】
［マッチアンプおよびサーチ線ドライバなどの詳細］
以下、プリチャージ部ＰＣ、ＣＡＭセル、マッチアンプＭＡ、およびサーチ線ドライバＤＲの構成および動作についてさらに詳しく説明する。
【００４２】
図３は、図２のプリチャージ部ＰＣ、ＣＡＭセルＣＣ、およびマッチアンプＭＡの構成を示す回路図である。
【００４３】
（１．プリチャージ部ＰＣ）
図３を参照して、各プリチャージ部ＰＣは、ＰＭＯＳ（P-channel  Metal  Oxide  Semiconductor）トランジスタＱＰ１を含む。ＰＭＯＳトランジスタＱＰ１のドレインは対応のマッチ線ＭＬに接続され、ソースは電源ノードＶＤＤに接続され、ゲートにはマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが入力される。マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが活性化（“０”）されたときに、ＰＭＯＳトランジスタＱＰ１が導通することによってマッチ線ＭＬに電源電圧が印加される。
【００４４】
（２．ＣＡＭセルの構成）
ＣＡＭセルＣＣは、データを記憶するＳＲＡＭ（Static  Random  Access  Memory）セル１１と、ＮＭＯＳ（N-channel  Metal  Oxide  Semiconductor）トランジスタＱＮ１〜ＱＮ４とを含む。
【００４５】
ＳＲＡＭセル１１は、インバータ１２，１３からなるフリップフロップと、データ入出力用のＮＭＯＳトランジスタ１４，１５とを含む。インバータ１２，１３の各出力ノードは他方の入力ノードに接続される。インバータ１２，１３の出力ノードがデータを保持する記憶ノードＮＤ１，ＮＤ１＿Ｎとして用いられる。記憶ノードＮＤ１，ＮＤ１＿Ｎに記憶されるデータは一方が“１”のとき他方が“０”となる相補的なデータである。
【００４６】
記憶ノードＮＤ１は、ＮＭＯＳトランジスタ１４を介して対応のビット線ＢＬに接続され、記憶ノードＮＤ１＿Ｎは、ＮＭＯＳトランジスタ１５を介して対応のビット線ＢＬ＿Ｎに接続される。ＮＭＯＳトランジスタ１４，１５のゲート電極が対応のワード線ＷＬに接続される。ワード線ＷＬおよびビット線対ＢＬ，ＢＬ＿Ｎは、通常のデータ書込およびデータ読出のときに用いられる。
【００４７】
ＮＭＯＳトランジスタＱＮ１，ＱＮ２は、この順でマッチ線ＭＬと接地ノードＧＮＤとの間に直列に接続される。ＮＭＯＳトランジスタＱＮ１のゲートは記憶ノードＮＤ１＿Ｎに接続され、ＮＭＯＳトランジスタＱＮ２のゲートは対応のサーチ線ＳＬに接続される。
【００４８】
ＮＭＯＳトランジスタＱＮ３，ＱＮ４は、この順でマッチ線ＭＬと接地ノードＧＮＤとの間に直列接続される。ＮＭＯＳトランジスタＱＮ３のゲートは記憶ノードＮＤ１に接続され、ＮＭＯＳトランジスタＱＮ４のゲートは対応のサーチ線ＳＬ＿Ｎに接続される。
【００４９】
したがって、データ検索時に、記憶ノードＮＤ１が“１”（記憶ノードＮＤ１＿Ｎが“０”）であり、かつ、サーチ線ＳＬが“１”（サーチ線ＳＬ＿Ｎが“０”）のとき（一致）、ＮＭＯＳトランジスタＱＮ２，ＱＮ３は導通状態になり、ＮＭＯＳトランジスタＱＮ１，ＱＮ４は非導通状態になる。この場合、マッチ線ＭＬと接地ノードＧＮＤとは非接続状態であるので、プリチャージされたマッチ線ＭＬの電圧は維持される。
【００５０】
データ検索時に、記憶ノードＮＤ１が“１”であり、かつ、サーチ線ＳＬが“０”のとき（不一致）、ＮＭＯＳトランジスタＱＮ３，ＱＮ４は導通状態になり、ＮＭＯＳトランジスタＱＮ１，ＱＮ２は非導通状態になる。この場合、マッチ線ＭＬと接地ノードＧＮＤとはＮＭＯＳトランジスタＱＮ３，ＱＮ４を介して接続される。この導電パスを介して、プリチャージされたマッチ線ＭＬの電荷が放電される。
【００５１】
データ検索時に、記憶ノードＮＤ１が“０”であり、かつ、サーチ線ＳＬが“０”のとき（一致）、ＮＭＯＳトランジスタＱＮ１，ＱＮ４は導通状態になり、ＮＭＯＳトランジスタＱＮ２，ＱＮ３は非導通状態になる。この場合、マッチ線ＭＬと接地ノードＧＮＤとは非接続状態であるので、プリチャージされたマッチ線ＭＬの電圧は維持される。
【００５２】
データ検索時に、記憶ノードＮＤ１が“０”であり、かつ、サーチ線ＳＬが“１”のとき（不一致）、ＮＭＯＳトランジスタＱＮ１，ＱＮ２は導通状態になり、ＮＭＯＳトランジスタＱＮ３，ＱＮ４は非導通状態になる。この場合、マッチ線ＭＬと接地ノードＧＮＤとはＮＭＯＳトランジスタＱＮ１，ＱＮ２を介して接続される。この導電パスを介して、プリチャージされたマッチ線ＭＬの電荷が放電される。
【００５３】
（３．マッチアンプの構成）
マッチアンプＭＡは、図３に示すように、ＰＭＯＳトランジスタである転送ゲートＱＰ２，ＱＰ３と、比較回路２１と、ＮＭＯＳトランジスタである転送ゲートＱＮ６，ＱＮ７と、ラッチ回路２２と、ＰＭＯＳトランジスタＱＰ７〜ＱＰ１０とを含む。マッチアンプＭＡには、図２のサーチ制御回路４０からマッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＥ＿Ｎ，ＭＡＬＡＴが供給される。
【００５４】
転送ゲートＱＰ２は、マッチ線ＭＬとマッチアンプＭＡ内部の信号線ＣＲＳ＿ＭＬとの間を接続状態または非接続状態に切替える。転送ゲートＱＰ３は、参照線ＭＬ＿ＲＥＦとマッチアンプＭＡ内部の信号線ＣＲＳ＿ＲＥＦとの間を接続状態または非接続状態に切替える。マッチ線ＭＬの電圧と参照線ＭＬ＿ＲＥＦの参照電圧とがマッチアンプＭＡによって比較される場合は、転送ゲートＱＰ２，ＱＰ３のゲート電極に入力されるマッチアンプ制御信号ＭＬＩが活性化（“１”）される。これによって、転送ゲートＱＰ２，ＱＰ３が非導通状態になるので、マッチ線ＭＬの容量の影響を受けないようにすることができる。
【００５５】
比較回路２１は、転送ゲートＱＰ２，ＱＰ３を介して転送されたマッチ線ＭＬの電圧と参照線ＭＬ＿ＲＥＦの参照電圧とを比較する。図３に示すように、比較回路２１は、ＰＭＯＳトランジスタＱＰ４〜ＱＰ６と、ＮＭＯＳトランジスタＱＮ３〜ＱＮ５とを含む。これらのトランジスタの接続について説明すると、ＰＭＯＳトランジスタＱＰ４は電源ノードＶＤＤとノードＮＤ３との間に接続され、ＮＭＯＳトランジスタＱＮ３は接地ノードＧＮＤとノードＮＤ４との間に接続される。ＰＭＯＳトランジスタＱＰ５はノードＮＤ３と信号線ＣＲＳ＿ＲＥＦとの間に接続され、ＰＭＯＳトランジスタＱＰ６はノードＮＤ３と信号線ＣＲＳ＿ＭＬとの間に接続される。ＮＭＯＳトランジスタＱＮ４はノードＮＤ４と信号線ＣＲＳ＿ＲＥＦとの間に接続され、ＮＭＯＳトランジスタＱＮ５はノードＮＤ４と信号線ＣＲＳ＿ＭＬとの間に接続される。
【００５６】
マッチアンプＭＡの動作時には、ＮＭＯＳトランジスタＱＮ３のゲート電極に印加されるマッチアンプ制御信号ＭＡＥが“１”に活性化され、ＰＭＯＳトランジスタＱＰ４のゲート電極に印加されるマッチアンプ制御信号ＭＡＥ＿Ｎが“０”に活性化される。これによって、マッチ線ＭＬの電圧が参照線ＭＬ＿ＰＲＥの電圧より高い場合には、信号線ＣＲＳ＿ＭＬの電圧は電源電圧に駆動され、信号線ＣＲＳ＿ＲＥＦの電圧は接地電圧に駆動される。逆に、マッチ線ＭＬの電圧が参照線ＭＬ＿ＰＲＥの電圧より低い場合には、信号線ＣＲＳ＿ＭＬの電圧は接地電圧に駆動され、信号線ＣＲＳ＿ＲＥＦの電圧は電源電圧に駆動される。
【００５７】
転送ゲートＱＮ６，ＱＮ７は、比較回路２１とラッチ回路２２との間を接続状態または非接続状態に切替えるために設けられる。転送ゲートＱＮ６，ＱＮ７のゲート電極には、マッチアンプ制御信号ＭＡＬＡＴが入力される。マッチアンプ制御信号ＭＡＬＡＴが活性状態（“１”）のとき転送ゲートＱＮ６，ＱＮ７は導通し、マッチアンプ制御信号ＭＡＬＡＴが非活性状態（“０”）のとき転送ゲートＱＮ６，ＱＮ７は非導通状態になる。
【００５８】
ラッチ回路２２は、ＲＳ（Reset-Set）ラッチ回路であり、ＮＡＮＤ回路２３，２４とインバータ回路２５とを含む。ＮＡＮＤ回路２３の第１の入力ノードは転送ゲートＱＮ６を介して信号線ＣＲＳ＿ＭＬと接続され、ＮＡＮＤ回路２３の第２の入力ノードはＮＡＮＤ回路２４の出力ノードに接続される。ＮＡＮＤ回路２４の第１の入力ノードは転送ゲートＱＮ７を介して信号線ＣＲＳ＿ＲＥＦと接続され、ＮＡＮＤ回路２４の第２の入力ノードはＮＡＮＤ回路２３の出力ノードに接続される。インバータ回路２５は、ＮＡＮＤ回路２４の出力を反転した信号をマッチアンプＭＡの出力信号ＭＡＯ＿Ｎとして出力する。
【００５９】
ＰＭＯＳトランジスタＱＰ７，ＱＰ８は、転送ゲートＱＮ６，ＱＮ７による電圧低下を補うために設けられている。図３に示すように、ＰＭＯＳトランジスタＱＰ７のソースは電源ノードＶＤＤに接続され、ドレインはＮＡＮＤ回路２３の第１の入力ノードに接続され、ゲートはＮＡＮＤ回路２４の第１の入力ノードに接続される。ＰＭＯＳトランジスタＱＰ８のソースは電源ノードＶＤＤに接続され、ドレインはＮＡＮＤ回路２４の第１の入力ノードに接続され、ゲートはＮＡＮＤ回路２３の第１の入力ノードに接続される。
【００６０】
たとえば、比較回路２１によってマッチ線ＭＬおよび参照線ＭＬ＿ＲＥＦが駆動された結果、信号線ＣＲＳ＿ＭＬの電圧が電源電圧に等しくなり、信号線ＣＲＳ＿ＲＥＦの電圧が接地電圧に等しくなったとする。この場合、転送ゲートＱＮ６によってＮＡＮＤ回路２３に転送される電圧は、電源電圧よりもＮＭＯＳトランジスタの閾値電圧分だけ低くなってしまう。図３のようにＰＭＯＳトランジスタＱＰ７，ＱＰ８を設けることによって、ＰＭＯＳトランジスタＱＰ７が導通するので、ＮＡＮＤ回路２３の第１の入力ノードの電圧を電源電圧に等しくすることができる。
【００６１】
ＰＭＯＳトランジスタＱＰ９，ＱＰ１０は、ラッチ回路２２の動作状態を制御するために設けられている。図３に示すように、ＰＭＯＳトランジスタＱＰ９は電源ノードＶＤＤとＮＡＮＤ回路２３の第１の入力ノードとの間に接続され、ＰＭＯＳトランジスタＱＰ１０は電源ノードＶＤＤとＮＡＮＤ回路２４の第１の入力ノードとの間に接続される。ＰＭＯＳトランジスタＱＰ９，ＱＰ１０の各ゲートには、マッチアンプ制御信号ＭＡＬＡＴが入力される。
【００６２】
マッチアンプ制御信号ＭＡＬＡＴが非活性状態（“０”）の場合には、ＰＭＯＳトランジスタＱＰ９，ＱＰ１０が導通するので、ラッチ回路２２の入力はいずれも“１”になる。このとき、ラッチ回路２２は元の内部状態を保持する。マッチアンプ制御信号ＭＡＬＡＴが活性状態（“１”）の場合には、ＰＭＯＳトランジスタＱＰ９，ＱＰ１０が非導通状態になるので、ラッチ回路２２は、比較回路２１の出力結果に応じた値を出力する。
【００６３】
（４．サーチ線ドライバの構成）
図４は、図２のサーチ線ドライバＤＲの構成を示すブロック図である。図４を参照して、サーチ線ドライバＤＲは、ＡＮＤ回路３１，３２と、ＬスルーのＤラッチ回路３３，３４とを含む。Ｄラッチ回路３３，３４の入力端子には、検索データＳＤ，ＳＤ＿Ｎがそれぞれ入力される。Ｄラッチ回路３３，３４のクロック端子にはサーチ線イネーブル信号ＳＬＥが共通に入力される。ＡＮＤ回路３１にはＤラッチ回路３３の出力信号およびサーチ線イネーブル信号ＳＬＥが入力され、ＡＮＤ回路３２にはＤラッチ回路３４の出力信号およびサーチ線イネーブル信号ＳＬＥが入力される。ＡＮＤ回路３１，３２の出力信号は、サーチ線ＳＬ，ＳＬ＿Ｎにそれぞれ供給される。
【００６４】
サーチ線イネーブル信号ＳＬＥが非活性状態（“０”）のとき、ＡＮＤ回路３１，３２の出力が“０”になるのでサーチ線ＳＬ，ＳＬ＿Ｎにはいずれも“０”が出力される。サーチ線イネーブル信号ＳＬＥが非活性状態（“０”）から活性状態（“１”）に切替わると（サーチ線ドライバＤＲの活性化）、Ｄラッチ回路３３，３４は、活性状態（“１”）に切替わった時点の検索データＳＤ，ＳＤ＿Ｎを保持する。サーチ線イネーブル信号ＳＬＥが活性状態（“１”）の間、Ｄラッチ回路３３，３４に保持されたデータは、サーチ線ＳＬ，ＳＬ＿Ｎにそれぞれ供給される。
【００６５】
（５．タイミング図）
図５は、図３、図４の各信号のタイミング図である。図５は上から順に、クロックＣＬＫ、検索データＳＤ，ＳＤ＿Ｎ、サーチ線イネーブル信号ＳＬＥ、サーチ線ＳＬ，ＳＬ＿Ｎの電圧、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎ、制御信号ＲＥＦ＿ＤＯＷＮ、マッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴの各波形を示す。最下段の実線のグラフはマッチ線ＭＬの電圧波形を示し、一点鎖線のグラフは図３の信号線ＣＲＳ＿ＭＬの電圧波形を示し、点線のグラフは図３の信号線ＣＲＳ＿ＲＥＦの電圧波形を示す。以下、図３〜図５を参照して、図５のタイミング図について説明する。
【００６６】
まず、新たな検索データＳＤ，ＳＤ＿Ｎは、クロックＣＬＫの立上がりのタイミングＴ１０，Ｔ３０，Ｔ５０に応答して供給される。図５の場合、時刻Ｔ１０〜Ｔ３０の間に入力された検索データＳＤ，ＳＤ＿ＮはＣＡＭセルＣＣに記憶されたデータに一致（ＨＩＴ）し、時刻Ｔ３０〜Ｔ５０の間に入力された検索データＳＤ，ＳＤ＿ＮはＣＡＭセルＣＣに記憶されたデータに不一致（ＭＩＳＳ）であるとする。
【００６７】
サーチ線イネーブル信号ＳＬＥは、クロックＣＬＫの立下りのタイミングＴ２０，Ｔ４０，Ｔ６０に応答して活性状態（“１”）になり、クロックＣＬＫの立上がりのタイミングＴ３０，Ｔ５０に応答して非活性状態（“０”）になる。サーチ線イネーブル信号ＳＬＥの活性化に応じて、時刻Ｔ２２〜Ｔ３１の間および時刻Ｔ４２〜Ｔ５１の間にサーチ線ＳＬ，ＳＬ＿Ｎに検索データＳＤ，ＳＤ＿Ｎが転送される。
【００６８】
マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎは、クロックＣＬＫの立上がりのタイミングＴ３０，Ｔ５０に応答して活性状態（“０”）になり、クロックＣＬＫの立下りのタイミングＴ２０，Ｔ４０，Ｔ６０に応答して非活性状態（“１”）になる。マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎは、サーチ線ＳＬ，ＳＬ＿Ｎと同時に活性状態にならないように制御される。すなわち、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが非活性状態（“１”）になるタイミングＴ２１，Ｔ４１は、サーチ線ＳＬ，ＳＬ＿Ｎに検索データＳＤ，ＳＤ＿Ｎが転送される活性化のタイミングＴ２２，Ｔ４２より早い。さらに、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが活性状態（“０”）になるタイミングＴ３３，Ｔ５３は、サーチ線ＳＬ，ＳＬ＿Ｎが非活性化されるタイミングＴ３１，Ｔ５１より遅い。
【００６９】
制御信号ＲＥＦ＿ＤＯＷＮは、図３の参照線ＭＬ＿ＲＥＦの電圧レベルを制御するための信号である。制御信号ＲＥＦ＿ＤＯＷＮが非活性状態（“０”）のとき参照線ＭＬ＿ＲＥＦの電圧は電源電圧に等しくなり、活性状態（“１”）のとき参照線ＭＬ＿ＲＥＦの電圧は電源電圧よりも所定の電圧（たとえば、１００ｍＶ程度）だけ低い電圧になる。図５の場合、制御信号ＲＥＦ＿ＤＯＷＮは、サーチ線イネーブル信号ＳＬＥとほぼ同期して活性状態（“１”）になる。
【００７０】
マッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴは、クロックＣＬＫの立上がりのタイミングＴ３０，Ｔ５０に応答して所定の期間だけ活性状態（“１”）になる。このとき、ＭＬＩ、ＭＡＥ、およびＭＡＬＡＴの順で活性状態（“１”）になり、ＭＡＬＡＴ、ＭＡＥ、およびＭＬＩの順で非活性状態（“０”）になる。マッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴについても、サーチ線ＳＬ，ＳＬ＿Ｎと同時に活性状態にならないように制御される。すなわち、マッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴが活性化するタイミングは、サーチ線ＳＬ，ＳＬ＿Ｎが非活性化されるタイミングＴ３１，Ｔ５１より遅い。
【００７１】
上記のようなタイミングで各信号が供給される結果、マッチ線ＭＬおよび信号線ＣＲＳ＿ＭＬ，ＣＲＳ＿ＲＥＦ電圧波形は図５の下段のような変化を示す。以下、これらの電圧波形について時間に流れの順に説明する。
【００７２】
時刻Ｔ１１〜Ｔ２１でマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが活性状態（“０”）である間、マッチ線ＭＬ、参照線ＭＬ＿ＲＥＦ、および信号線ＣＲＳ＿ＭＬ，ＣＲＳ＿ＲＥＦは所定の電圧（図５の場合、電源電圧ＶＤＤ）にプリチャージされる。
【００７３】
次の時刻Ｔ２２で制御信号ＲＥＦ＿ＤＯＷＮが活性化されることによって参照線ＭＬ＿ＲＥＦの電圧レベルが電源電圧ＶＤＤよりも低下する。これによって、信号線ＣＲＳ＿ＲＥＦの電圧レベルも低下する。
【００７４】
時刻Ｔ２２から時刻Ｔ３１の間、サーチ線ＳＬ，ＳＬ＿Ｎに検索データＳＤ，ＳＤ＿Ｎが転送されることによってサーチ線ＳＬ，ＳＬ＿Ｎが活性化される。この時間帯では、検索データＳＤ，ＳＤ＿ＮとＣＡＭセルＣＣに記憶されたデータとが一致（ＨＩＴ）しているので、マッチ線ＭＬおよび信号線ＣＲＳ＿ＭＬの電圧に変化はなく電源電圧ＶＤＤが維持される。
【００７５】
続いてマッチアンプ制御信号ＭＬＩが活性化されることによって、図３の転送ゲートＱＰ２，ＱＰ３が遮断される。そして、次の時刻Ｔ３２にマッチアンプ制御信号ＭＡＥが活性化されることによって、図３の比較回路２１が動作し始める。この結果、信号線ＣＲＳ＿ＲＥＦの電圧が接地電圧ＧＮＤまで低下する。さらに、マッチアンプ制御信号ＭＡＬＡＴが活性化されることによって、図３のラッチ回路２２が検索結果ＭＡＯ＿Ｎを出力する。
【００７６】
次の時刻Ｔ３３では、比較回路２１の動作と並行して、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが活性状態（“０”）になる。これによって、次のデータ検索のためにマッチ線ＭＬがプリチャージされる。
【００７７】
比較回路２１による比較動作が終了した後、時刻Ｔ３４にマッチアンプ制御信号ＭＬＩが非活性状態（“０”）に戻ることによって、図３の転送ゲートＱＰ２，ＱＰ３が導通する。これによって、信号線ＣＲＳ＿ＲＥＦの電圧が電源電圧ＶＤＤまで上昇する。以上で、最初のデータ検索が完了する。
【００７８】
次の時刻Ｔ４１にマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが非活性状態（“１”）になることによって、マッチ線ＭＬ、参照線ＭＬ＿ＲＥＦ、および信号線ＣＲＳ＿ＭＬ，ＣＲＳ＿ＲＥＦのプリチャージが完了する。
【００７９】
次の時刻Ｔ４２で制御信号ＲＥＦ＿ＤＯＷＮが活性化されることによって参照線ＭＬ＿ＲＥＦの電圧レベルが電源電圧ＶＤＤよりも所定の電圧だけ低下する。これによって、信号線ＣＲＳ＿ＲＥＦの電圧レベルも所定の電圧だけ低下する。
【００８０】
次の時刻Ｔ４２から時刻Ｔ５１の間、サーチ線ＳＬ，ＳＬ＿Ｎに検索データＳＤ，ＳＤ＿Ｎが転送される。この場合、検索データＳＤ，ＳＤ＿ＮとＣＡＭセルＣＣに記憶されたデータとが不一致（ＭＩＳＳ）であるので、プリチャージされたマッチ線ＭＬおよび信号線ＣＲＳ＿ＭＬの電荷がＣＡＭセルＣＣを介して放電される。この結果、マッチ線ＭＬおよび信号線ＣＲＳ＿ＭＬの電圧が徐々に低下する。
【００８１】
続いてマッチアンプ制御信号ＭＬＩが活性化されることによって、図３の転送ゲートＱＰ２，ＱＰ３が遮断される。そして、次の時刻Ｔ５２にマッチアンプ制御信号ＭＡＥが活性化されることによって、図３の比較回路２１が動作し始める。この結果、信号線ＣＲＳ＿ＭＬの電圧が接地電圧ＧＮＤまで低下する。さらに、マッチアンプ制御信号ＭＡＬＡＴが活性化されることによって、図３のラッチ回路２２が検索結果ＭＡＯ＿Ｎを出力する。
【００８２】
次の時刻Ｔ５３では、比較回路２１の動作と並行して、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが活性状態（“０”）になる。これによって、次のデータ検索のためにマッチ線ＭＬがプリチャージされる。この結果、マッチ線ＭＬの電圧が電源電圧ＶＤＤに向けて徐々に上昇する。
【００８３】
比較回路２１による比較動作が終了した後、時刻Ｔ５４にマッチアンプ制御信号ＭＬＩが非活性状態（“０”）に戻ることによって、図３の転送ゲートＱＰ２，ＱＰ３が導通する。これによって、信号線ＣＲＳ＿ＲＥＦの電圧も電源電圧ＶＤＤまで上昇する。
【００８４】
［連想メモリのタイミング制御の留意点］
以上に述べたようにデータ検索においては、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの活性化と、サーチ線対ＳＬ，ＳＬ＿Ｎの活性化（検索データＳＤ，ＳＤ＿Ｎの転送）とが同時に生じないようにする必要がある。もし、サーチ線ＳＬ，ＳＬ＿Ｎの活性化とマッチラインのプリチャージが重なると次のような問題が生じるからである。
【００８５】
第１に、図３のプリチャージ用のＰＭＯＳトランジスタＱＰ２からＣＡＭセルＣＣへ貫通電流が流れてしまう。第２に、データ検索の結果が不一致（ＭＩＳＳ）であったにもかかわらず、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの活性化によりマッチ線ＭＬがＨレベルに充電された結果、誤った検索結果を出力してしまう可能性がある。
【００８６】
したがって、サーチ線イネーブル信号ＳＬＥの活性化のタイミングとマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの活性化のタイミングとの調整が重要である。具体的には、マッチ線ＭＬのプリチャージが終了した後に、サーチ線対ＳＬ，ＳＬ＿Ｎに検索データＳＤ，ＳＤ＿Ｎの転送（サーチ線ＳＬ，ＳＬ＿Ｎの活性化）を開始する必要がある。さらに、サーチ線ＳＬ，ＳＬ＿Ｎが非活性状態になってから、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎを活性化してマッチ線ＭＬのプリチャージを開始する必要がある。
【００８７】
上記の点に加えて、サーチ線ＳＬ，ＳＬ＿Ｎに検索データＳＤ，ＳＤ＿Ｎを転送した後に、マッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴを活性化するタイミングにも留意する必要がある。データ検索の結果が不一致（ＭＩＳＳ）であった場合にマッチ線ＭＬがＣＡＭセルＣＣによって放電されるが、マッチアンプＭＡからＣＡＭセルＣＣが遠いほどマッチ線ＭＬの容量のせいでマッチ線ＭＬの電圧低下がマッチアンプＭＡに伝わるのに時間がかかるからである。
【００８８】
従来の連想メモリでは、このようなタイミング制御は複数段のインバータを用いた遅延回路によって行なわれている。このため、製造プロセスによるＭＯＳトランジスタの特性ばらつきの影響や、電源電圧および動作温度の変動の影響が大きくなるので、タイミングの設計に時間が費やされていた。さらに、連想メモリの動作周波数が高速化されると、遅延回路の設計自体が困難になっていた。実施の形態１の連想メモリ１００は、従来と異なるタイミング制御の方法を用いることによって、プロセスばらつきの影響や電源電圧および動作温度の変動の影響を抑制することが可能である。以下、詳細に説明する。
【００８９】
［連想メモリ１００のタイミング制御の詳細］
再び図２を参照して、連想メモリ１００は、マッチアンプＭＡおよびサーチ線ドライバＤＲの動作タイミングを制御するために設けられたサーチ制御回路４０を含む。図１の場合、サーチ制御回路４０は、一致検出部２０（マッチアンプＭＡ）の−Ｙ方向側、かつ、検索データ転送部３０（サーチ線ドライバＤＲ）の−Ｘ方向側に設けられる。
【００９０】
サーチ制御回路４０は、図１のクロックバッファ７６からクロックＣＬＫを受け、命令コードデコーダ７７からサーチ信号ＳＣＭおよびリセット信号ＲＳＴ＿Ｎを受ける。サーチ制御回路４０は、受信したこれらの信号に基づいて前述のサーチ線イネーブル信号ＳＬＥ、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎ、およびマッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＥ＿Ｎ，ＭＡＬＡＴを生成して出力する。
【００９１】
連想メモリ１００において特徴的な点は、サーチ線イネーブル信号ＳＬＥを各サーチ線ドライバＤＲに伝送するために１本の制御信号線３６（３６Ａ，３６Ｂ，３６Ｃ）が設けられている点である。制御信号線３６は、サーチ制御回路４０の出力ノードから＋Ｘ方向に延在する配線部３６Ａと、サーチ線イネーブル信号ＳＬＥが折り返される折返し部３６Ｂと、折返し部３６Ｂから−Ｘ方向にサーチ制御回路４０まで延在する配線部３６Ｃとを含む。
【００９２】
配線部３６Ｃは、サーチ線ドライバＤＲの配列順で各サーチ線ドライバＤＲと接続され、さらにサーチ制御回路４０と接続される。したがって、サーチ線イネーブル信号ＳＬＥは、サーチ制御回路４０から出力された後、配線部３６Ａを通過して折返し部３６Ｂに到達する。折返し部３６Ｂで折り返されたサーチ線イネーブル信号ＳＬＥは、最初にマッチアンプＭＡから最も遠いサーチ線ドライバＤＲ［７９］と配線部３６Ｃとの接続ノードを通過する。続いて、サーチ線イネーブル信号ＳＬＥは、サーチ線ドライバＤＲ［７８］、ＤＲ［７７］、…、ＤＲ［０］の順で各サーチ線ドライバＤＲと配線部３６Ｃとの接続ノードを通過する。サーチ線イネーブル信号ＳＬＥは、最後に再びサーチ制御回路４０に到達する。以下、サーチ制御回路４０から送信された時点のサーチ線イネーブル信号をＳＬＥ＿ＳＮＤと記載し、サーチ制御回路４０で再び受信した時点のサーチ線イネーブル信号をＳＬＥ＿ＲＣＶと記載する。
【００９３】
上記の制御信号線３６を設けることによって、サーチ制御回路４０がサーチ線イネーブル信号ＳＬＥを活性化させてから、少なくとも第１の配線３６Ａをサーチ線イネーブル信号ＳＬＥが伝播する時間が経過した後、最初のサーチ線ドライバＤＲ［７９］が活性化する。したがって、サーチ制御回路４０からサーチ線ドライバＤＲ［７９］に至るサーチ線イネーブル信号ＳＬＥの伝送時間を、サーチ制御回路４０からいずれのプリチャージ部ＰＣに至るマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの伝送時間よりも長くすることができる。この結果、プリチャージ部ＰＣによるマッチ線ＭＬのプリチャージが終了した後に、サーチ線対ＳＬ，ＳＬ＿Ｎに検索データＳＤ，ＳＤ＿Ｎの転送（サーチ線ＳＬ，ＳＬ＿Ｎの活性化）を開始することが可能である。
【００９４】
ここで、サーチ線イネーブル信号ＳＬＥの伝送時間は、制御信号線３６のＲＣ遅延によって決まる。したがって、信号伝送時間は、配線長、配線の幅、および厚みによって制御することができる。従来の縦続接続されたインバータを用いた遅延回路と異なり、トランジスタの製造プロセスのばらつきの影響を受けることがない。制御信号線３６と直列に高抵抗の配線部を挿入したり、制御信号線３６と並列に容量負荷を設けたりすることによって伝送時間を調整することもできる。
【００９５】
さらに、上記の制御信号線３６を設けることによって、サーチ制御回路４０に戻ったサーチ線イネーブル信号ＳＬＥ＿ＲＣＶを用いて、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎおよびマッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴを生成することができる。したがって、サーチ線ＳＬ，ＳＬ＿Ｎが非活性状態になった後に、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎおよびマッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴを活性化することが容易にできる。
【００９６】
さらに、サーチ線ＳＬ，ＳＬ＿Ｎは、マッチアンプＭＡから遠いほうから順番に活性化されるので、マッチアンプＭＡの活性化のタイミングを決定するのにマッチ線ＭＬの配線遅延を考慮する必要がない。
【００９７】
このように、上記の構成の制御信号線３６を設けることによって、遅延回路を用いなくても、サーチ線ＳＬ，ＳＬ＿Ｎの活性化のタイミング、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの活性化のタイミングを容易に制御することができる。この結果、連想メモリを従来よりも高周波で動作させることができる。
【００９８】
［サーチ制御回路４０の構成］
以下、サーチ制御回路４０の具体的な構成例について説明する。
【００９９】
図６は、図１のサーチ制御回路４０の構成を示すブロック図である。図６を参照して、サーチ制御回路４０は、メインサーチ制御回路４１とサブサーチ制御回路５０とを含む。
【０１００】
メインサーチ制御回路４１は、受信したクロックＣＬＫ、サーチ信号ＳＣＭ、およびリセット信号ＲＳＴ＿Ｎに基づいて、マッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０およびサーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１を発生する。
【０１０１】
サブサーチ制御回路５０は、サーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１に基づいて、サーチ線イネーブル信号ＳＬＥ＿ＳＮＤを生成して出力する。さらに、サブサーチ制御回路５０は、受信したサーチ線イネーブル信号ＳＬＥ＿ＲＣＶとマッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０とに基づいてマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎを生成して出力する。サブサーチ制御回路５０は、さらに、受信したサーチ線イネーブル信号ＳＬＥ＿ＲＣＶに基づいてマッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴを生成して出力する。
【０１０２】
（１．メインサーチ制御回路４１の構成）
図７は、図６のメインサーチ制御回路４１の構成を示すブロック図である。図７を参照して、メインサーチ制御回路４１は、Ｄフリップフロップ４２〜４４と、ＡＮＤ回路４５，４６と、インバータ４７とを含む。
【０１０３】
Ｄフリップフロップ４２は、サーチ信号ＳＣＭをクロックＣＬＫの立上りエッジのタイミングで保持し、保持した値（ＳＥ＿Ｃ１０）を出力する。
【０１０４】
Ｄフリップフロップ４３は、Ｄフリップフロップ４２の出力信号ＳＥ＿Ｃ１０をクロックＣＬＫの立下りエッジのタイミングで保持し、保持した値（ＳＥ＿Ｃ２０）を出力する。
【０１０５】
Ｄフリップフロップ４４は、Ｄフリップフロップ４３の出力信号ＳＥ＿Ｃ２０をクロックＣＬＫの立上がりエッジのタイミングで保持し、保持した値（ＳＥ＿Ｃ３０）を出力する。
【０１０６】
ＡＮＤ回路４５は、Ｄフリップフロップ４３の出力信号ＳＥ＿Ｃ２０とクロックＣＬＫとの論理積を演算し、演算結果をマッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０として出力する。
【０１０７】
ＡＮＤ回路４６は、Ｄフリップフロップ４４の出力信号ＳＥ＿Ｃ３０とクロックＣＬＫをインバータ４７によって反転させた信号との論理積を演算し、演算結果をサーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１として出力する。
【０１０８】
Ｄフリップフロップ４２〜４４は、さらに、リセット信号ＲＳＴ＿Ｎを受ける。リセット信号ＲＳＴ＿Ｎが活性状態（“０”）になったとき、Ｄフリップフロップ４２〜４４の出力信号はいずれも“０”にリセットされる。
【０１０９】
図８は、図７の各信号のタイミング図である。図７、図８を参照して、クロックＣＬＫは、時刻Ｔ１０，Ｔ３０，Ｔ５０のタイミングで立上がり、時刻Ｔ２０，Ｔ４０，Ｔ６０のタイミングで立下がるものとする。
【０１１０】
クロックＣＬＫが立上がる時刻Ｔ１０で、サーチ信号ＳＣＭが活性状態（“１”）になっている。したがって、Ｄフリップフロップ４２の出力信号ＳＥ＿Ｃ１０は、時刻Ｔ１０から次のクロックＣＬＫの立上がり時刻Ｔ３０までの間、Ｈレベルになる。
【０１１１】
次に、クロックＣＬＫが立下る時刻Ｔ２０で、Ｄフリップフロップ４２の出力信号ＳＥ＿Ｃ１０がＨレベルになっている。したがって、Ｄフリップフロップ４３の出力信号ＳＥ＿Ｃ２０は、時刻Ｔ２０から次のクロックＣＬＫの立下り時刻Ｔ４０までの間、Ｈレベルになる。
【０１１２】
次に、クロックＣＬＫが再び立上がる時刻Ｔ３０で、Ｄフリップフロップ４３の出力信号ＳＥ＿Ｃ２０がＨレベルになっている。したがって、Ｄフリップフロップ４４の出力信号ＳＥ＿Ｃ３０は、時刻Ｔ３０から次のクロックＣＬＫの立上がり時刻Ｔ５０までの間、Ｈレベルになる。
【０１１３】
次の時刻Ｔ３０〜Ｔ４０の間は、フリップフロップ４３の出力信号ＳＥ＿Ｃ２０およびクロックＣＬＫが共にＨレベルであるので、ＡＮＤ回路４５の出力であるトリガ信号ＳＥ＿ＡＣＴ０はＨレベルになる。すなわち、クロックＣＬＫの１周期のうち前半の半周期（Ｔ３０〜Ｔ４０）に、マッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０が活性状態（“１”）になる。
【０１１４】
次の時刻Ｔ４０〜Ｔ５０の間は、フリップフロップ４４の出力信号ＳＥ＿Ｃ３０がＨレベルであり、クロックＣＬＫがＬレベルであるので、ＡＮＤ回路４６の出力であるトリガ信号ＳＥ＿ＡＣＴ１はＨレベルになる。すなわち、クロックＣＬＫの１周期のうち後半の半周期（Ｔ４０〜Ｔ５０）に、サーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１が活性状態（“１”）になる。
【０１１５】
（２．サブサーチ制御回路５０の構成）
図９は、図６のサブサーチ制御回路５０の一部の構成を示すブロック図である。図９はサーチ線イネーブル信号ＳＬＥおよびマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの生成に関係したサブサーチ制御回路５０の構成を示す。
【０１１６】
図９に示すように、サブサーチ制御回路５０は、バッファ回路５１，５２と、インバータ５３と、ＮＡＮＤ回路５４とを含む。
【０１１７】
バッファ回路５１は、サーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１を整形してサーチ線イネーブル信号ＳＬＥ＿ＳＮＤとして出力する。
【０１１８】
ＮＡＮＤ回路５４は、受信したサーチ線イネーブル信号ＳＬＥ＿ＲＣＶをインバータ５３によって反転させた信号と、マッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０とのＮＡＮＤ演算を行なう。
【０１１９】
バッファ回路５２は、ＮＡＮＤ回路５４の演算結果を整形してマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎとして出力する。
【０１２０】
上記の構成によれば、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶが活性状態（“１”）の間は、トリガ信号ＳＥ＿ＡＣＴ０が活性化されてもマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎは活性状態（“０”）にならない。サーチ線イネーブル信号ＳＬＥ＿ＲＣＶが非活性状態（“０”）になることによって、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎを活性化することができる。
【０１２１】
図１０は、図９の各信号のタイミング図である。図１０は上から順に、クロックＣＬＫ、トリガ信号ＳＥ＿ＡＣＴ０，ＳＥ＿ＡＣＴ１、送信時のサーチ線イネーブル信号ＳＬＥ＿ＳＮＤ、サーチ線ドライバＤＲ［７９］に到達したサーチ線イネーブル信号ＳＬＥ＿ＳＬ［７９］、サーチ制御回路４０での受信時のサーチ線イネーブル信号ＳＬＥ＿ＲＣＶ、およびマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの各波形を示す。クロックＣＬＫは時刻Ｔ１０，Ｔ３０のタイミングで立上がり、時刻Ｔ２０，Ｔ４０のタイミングで立下がるものとする。
【０１２２】
図１０に示すように、時刻Ｔ２０にマッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０がＬレベルに変化する。これに応答して、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが時刻Ｔ２１にＨレベルに変化することにより、マッチ線ＭＬのプリチャージが完了する。
【０１２３】
さらに、時刻Ｔ２０には、サーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１がＨレベルに変化する。これに応答して、サーチ線イネーブル信号ＳＬＥ＿ＳＮＤがＨレベルに変化する（活性化する）。このサーチ線イネーブル信号ＳＬＥ＿ＳＮＤの活性化から配線遅延分だけ遅れた時刻Ｔ２３に、サーチ線ドライバＤＲ［７９］で受信したサーチ線イネーブル信号ＳＬＥ＿ＳＬ［７９］が活性化する。さらに、配線遅延分だけ遅れてサーチ制御回路４０で受信したサーチ線イネーブル信号ＳＬＥ＿ＲＣＶが活性化する。
【０１２４】
したがって、マッチ線ＭＬのプリチャージが完了した時刻Ｔ２１と最初にサーチ線ＳＬ［７９］，ＳＬ＿Ｎ［７９］を活性化する時刻Ｔ２３までの間にタイムマージンＴＤ１をもたせることができる。
【０１２５】
次に、時刻Ｔ３０に、マッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０がＨレベルに変化することによって、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎが活性化できる状態になる。しかし、この時点ではサーチ制御回路４０で受信するサーチ線イネーブル信号ＳＬＥ＿ＲＣＶがＨレベルであるので、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎは活性化されない。マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎは、サーチ制御回路４０で受信するサーチ線イネーブル信号ＳＬＥ＿ＲＣＶがＬレベルになってから活性化される（時刻Ｔ３６）。
【０１２６】
図２で説明したように、サーチ線イネーブル信号ＳＬＥは、各サーチ線ドライバＤＲと制御信号線３６との接続ノードを通過した後にサーチ制御回路４０に到達する。したがって、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶが非活化された時刻Ｔ３５の時点までに、全てのサーチ線対ＳＬ，ＳＬ＿Ｎの非活性化が完了している。この結果、全てのサーチ線対ＳＬ，ＳＬ＿Ｎの非活性化が完了している時刻Ｔ３５とマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎを活性化する時刻Ｔ３６との間にタイムマージンＴＤ２をもたせることができる。
【０１２７】
このように、連想メモリ１００では、複数のインバータが縦続接続された遅延回路を用いることなく、マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎおよびサーチ線イネーブル信号ＳＬＥのタイミングを制御することができる。
【０１２８】
図１１は、図６のサブサーチ制御回路５０の一部の構成を示すブロック図である。図１１は、マッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＥ＿Ｎ，ＭＡＬＡＴの生成に関係したサブサーチ制御回路５０の構成を示す。
【０１２９】
図１１に示すように、サブサーチ制御回路５０は、遅延段５５〜５９と、インバータ６０，６１と、ＡＮＤ回路６２〜６４と、バッファ回路６５〜６８とを含む。
【０１３０】
ＡＮＤ回路６２は、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶをインバータ６０によって反転させた信号と、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶを遅延段５５，５８，５９によって遅延させた信号とのＡＮＤ演算を行なう。ＡＮＤ回路６２の演算結果は、バッファ回路６５によって整形されてマッチアンプ制御信号ＭＬＩとして出力される。
【０１３１】
ＡＮＤ回路６３は、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶをインバータ６０によって反転させてから遅延段５６によって遅延させた信号と、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶを遅延段５５，５８によって遅延させた信号とのＡＮＤ演算を行なう。ＡＮＤ回路６３の演算結果は、バッファ回路６６によって整形されてマッチアンプ制御信号ＭＡＥとして出力される。ＡＮＤ回路６３の演算結果は、さらに、インバータ６１によって反転されてからバッファ回路６７によって整形されてマッチアンプ制御信号ＭＡＥ＿Ｎとして出力される。
【０１３２】
ＡＮＤ回路６４は、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶをインバータ６０によって反転させてから遅延段５６，５７によって遅延させた信号と、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶを遅延段５５によって遅延させた信号とのＡＮＤ演算を行なう。ＡＮＤ回路６４の演算結果は、バッファ回路６８によって整形されてマッチアンプ制御信号ＭＡＬＡＴとして出力される。
【０１３３】
図１２は、図１１の遅延段５５の構成の一例を示すブロック図である。図１２を参照して、遅延段５５は、縦続接続されたＣＭＯＳ（Complementary  Metal-Oxide  Semiconductor）インバータ９１〜９６によって構成される。
【０１３４】
初段および最終段のＣＭＯＳインバータ９１，９６は、電源ノードＶＤＤと接地ノードＧＮＤとの間に直列に接続されたＰＭＯＳトランジスタＱＰ２１とＮＭＯＳトランジスタＱＮ２１とを含む。各トランジスタＱＰ２１，ＱＮ２１のゲートに前段からの信号が入力され、トランジスタＱＰ２１，ＱＮ２１の接続ノードから入力信号を反転させた信号が出力される。
【０１３５】
中間段のＣＭＯＳインバータ９２〜９６は、電源ノードＶＤＤと接地ノードＧＮＤとの間に直列に接続されたＰＭＯＳトランジスタＱＰ２２，ＱＰ２３とＮＭＯＳトランジスタＱＮ２２，ＱＮ２３とを含む。各トランジスタＱＰ２２，ＱＰ２３，ＱＮ２２，ＱＮ２３のゲートに前段からの信号が入力され、トランジスタＱＰ２３，ＱＮ２２の接続ノードから入力信号を反転させた信号が出力される。中間段のＣＭＯＳインバータ９２〜９６の段数を増減させることによって遅延時間を調整することができる。
【０１３６】
図１１の他の遅延段５６〜５９の構成も図１２と同様である。ただし、これらの遅延段５６〜５９の遅延時間は遅延段５５の遅延時間よりも短いので、中間段のＣＭＯＳインバータの段数は遅延段５５の段数よりも少ない。
【０１３７】
図１３は、図１１の各信号のタイミング図である。図１３は上から順に、クロックＣＬＫ、トリガ信号ＳＥ＿ＡＣＴ１、サーチ制御回路４０で受信したサーチ線イネーブル信号ＳＬＥ＿ＲＣＶ、図１１の遅延段５５の出力信号ＳＬＥ＿ＲＣＶ＿ＤＬＹ、およびマッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴの波形を示す。クロックＣＬＫは時刻Ｔ１０，Ｔ３０のタイミングで立上がり、時刻Ｔ２０，Ｔ４０のタイミングで立下がるものとする。
【０１３８】
図１３に示すように、時刻Ｔ３０にサーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１がＬレベルに変化する。これに応答して、サーチ線イネーブル信号ＳＬＥがＬレベルに変化するので、配線遅延分だけ遅延した時刻Ｔ３５にサーチ制御回路４０で受信するサーチ線イネーブル信号ＳＬＥ＿ＲＣＶがＬレベルに変化する。マッチアンプ制御信号ＭＬＩ，ＭＡＥ，ＭＡＬＡＴは、サーチ線イネーブル信号ＳＬＥ＿ＲＣＶの立下がりに応答してこの順序でＨレベルに変化する。
【０１３９】
次に、図１１の遅延段５５の出力信号ＳＬＥ＿ＲＣＶ＿ＤＬＹは、所定の遅延時間だけ遅延した時刻Ｔ３７にＬレベルに変化する。マッチアンプ制御信号ＭＡＬＡＴ，ＭＡＥ，ＭＬＩは、この遅延段５５の出力信号ＳＬＥ＿ＲＣＶ＿ＤＬＹの立下がりに応答してこの順序でＬレベルに変化する。
【０１４０】
［比較例］
図１４は、図２の連想メモリ１００の比較例としての連想メモリ９００の構成を示すブロック図である。
【０１４１】
図１４の連想メモリ９００は、図２の制御信号線３６に代えてサーチ制御回路９４０から＋Ｘ方向に延在する制御信号線９３６を含む点で、図２の連想メモリ１００と異なる。制御信号線９３６は、マッチアンプＭＡに近い側からサーチ線ドライバＤＲの配列順で各サーチ線ドライバＤＲと接続される。＋Ｘ方向に送信されたサーチ線イネーブル信号ＳＬＥは、途中で折返されることなく、サーチ線ドライバＤＲの番号順で各サーチ線ドライバＤＲに到達する。
【０１４２】
図１５は、図４のサーチ制御回路９４０の一部の構成を示すブロック図である。図１５はサーチ線イネーブル信号ＳＬＥおよびマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの生成に関係したサブサーチ制御回路５０の構成を示す。
【０１４３】
図１５に示すように、サーチ制御回路９４０は、遅延段９５１，９５２と、バッファ回路９５３，９５４と、ＮＡＮＤ回路９５５とを含む。サーチ線イネーブル信号ＳＬＥ＿ＳＮＤは、図８のサーチ線ＳＬ，ＳＬ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１が遅延段９５１で遅延された後、バッファ回路９５３で整形されることによって生成される。マッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎは、図８のマッチ線ＭＬのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０と遅延段９５２で遅延されたトリガ信号ＳＥ＿ＡＣＴ０とのＮＡＮＤ演算結果が、バッファ回路９５４で整形されることによって生成される。
【０１４４】
このように、図１４の比較例の連想メモリ９００の場合には、遅延段９５１，９５２によってサーチ線イネーブル信号ＳＬＥの活性化のタイミングとマッチ線プリチャージ信号ＭＬＰＲＥ＿Ｎの活性化のタイミングを制御する必要がある。遅延段９５１，９５２の遅延時間は、トランジスタの製造ばらつきや電源電圧および動作温度の変動によって大きく変化するので、タイミング調整に時間を要することになる。特に、動作周波数を高速化していくにつれて、マッチ線ＭＬのプリチャージ期間を確保することが困難になってしまう。
【０１４５】
［制御信号線の構成例］
図１６は、図２の制御信号線３６の構成の一例を示す平面図である。図１６では、図解を容易にするために一部の配線にハッチングが付されている。
【０１４６】
図１６に示すように、制御信号線３６は、同一の金属配線層に一体形成された配線部３６Ａ、折返し部３６Ｂ、および配線部３６Ｃによって構成される。
【０１４７】
配線部３６Ａの−Ｘ方向側の端部は、サーチ制御回路４０に設けられたサーチ線イネーブル信号ＳＬＥ＿ＳＮＤの送信部の最終段のトランジスタ４９Ａ，４９ＢとコンタクトＮＣＳ（接続ノード）を介して接続される。
【０１４８】
配線部３６Ｃは、折返し部３６Ｂから見て、最初にサーチ線ドライバＤＲ［７９］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＣ［７９］（接続ノード）を介して接続される。配線部３６Ｃは、続いてサーチ線ドライバＤＲの配列順で各サーチ線ドライバＤＲの入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＣ［７８］〜ＮＣ［１］（接続ノード）を介して接続される。最後に、配線部３６Ｃの−Ｘ方向側の端部は、サーチ制御回路４０に設けられたサーチ線イネーブル信号ＳＬＥ＿ＲＣＶの受信部の入力初段のトランジスタ４８Ａ，４８ＢとコンタクトＮＣＲ（接続ノード）を介して接続される。
【０１４９】
このように、図１６の場合には、サーチ制御回路４０は、メモリセルアレイ１０の第１の方向（Ｘ方向）の一方端（−Ｘ方向側の端部）に配置される。制御信号配線３６は、第１の配線部３６Ｃ、第２の配線部３６Ａ、および折返し配線部３６Ｂを有する。第１および第２の配線部３６Ｃ，３６Ａは、メモリセルアレイ１０の第１の方向（Ｘ方向）の一方端（−Ｘ方向側の端部）から他方端（＋Ｘ方向側の端部）まで延在し、第２の方向（Ｙ方向）に並んで配置される。折返し配線部３６Ｂは、メモリセルアレイ１０の第１の方向（Ｘ方向）の他方端（＋Ｘ方向側の端部）にある。第１の配線部３６Ｃの両端部はそれぞれサーチ線制御回路４０と折返し配線部３６Ｂとに接続される。第２の配線部３６Ａの両端部はそれぞれサーチ線制御回路４０と折返し配線部３６Ｂとに接続される。複数のサーチ線ドライバＤＲは、第１の配線部３６Ｃに接続される。
【０１５０】
［制御信号線の他の構成例］
図１７は、図２の制御信号線３６の構成の他の例を示す平面図である。図１７では、図解を容易にするために一部の配線にハッチングが付されている。
【０１５１】
図１７に示すように、制御信号線３６は、第Ｐ層の金属配線層に形成された配線部３６Ａと、第Ｐ層よりも上層の第Ｑ層の金属配線層に形成された配線部３６Ｃと、第Ｐ層の配線部３６Ａの＋Ｘ方向側の端部と第Ｑ層の配線部３６Ｃ＋Ｘ方向側の端部とを接続するコンタクトホール３８Ａ，３８Ｂとを含む。コンタクトホール３８Ａ，３８Ｂがサーチ線イネーブル信号ＳＬＥが折返される折返し部３６Ｂに相当する。
【０１５２】
第Ｐ層の配線部３６Ａの−Ｘ方向側の端部は、サーチ制御回路４０に設けられたサーチ線イネーブル信号ＳＬＥ＿ＳＮＤの送信部の最終段のトランジスタ４９Ａ，４９ＢとコンタクトＮＣＳ（接続ノード）を介して接続される。
【０１５３】
第Ｑ層の配線部３６Ｃは、コンタクトホール３８Ａ，３８Ｂから見て、最初にサーチ線ドライバＤＲ［７９］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＣ［７９］（接続ノード）を介して接続される。配線部３６Ｃは、続いてサーチ線ドライバＤＲの配列順で各サーチ線ドライバＤＲの入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＣ［７８］〜ＮＣ［１］（接続ノード）を介して接続される。最後に、配線部３６Ｃの−Ｘ方向側の端部は、サーチ制御回路４０に設けられたサーチ線イネーブル信号ＳＬＥ＿ＲＣＶの受信部の入力初段のトランジスタ４８Ａ，４８ＢとコンタクトＮＣＲ（接続ノード）を介して接続される。
【０１５４】
このように、図１７の場合には、第１の配線部３６Ｃと第２の配線部３６Ａはそれぞれ異なる配線層（Ｑ層、Ｐ層）に配置され、折返し配線部３６Ｂとしてのコンタクトホール３８Ａ，３８Ｂを介して接続される。
【０１５５】
＜実施の形態２＞
［連想メモリ１００Ａの構成］
図１８は、この発明の実施の形態２のよる連想メモリ１００Ａの構成を示すブロック図である。図１８の連想メモリ１００Ａは、図１で説明した連想メモリの構成のうちの一部の配置を示したものである。
【０１５６】
連想メモリ１００Ａは、ＣＡＭメモリアレイ１０が第１、第２のメモリブロック１０Ａ，１０Ｂに分割される点で、図２の連想メモリ１００と異なる。メモリブロック１０Ａ，１０Ｂの各々は、ｎ行ｍ列のＣＡＭセルＣＣ［０，０］〜ＣＣ［ｎ−１，ｍ−１］を含む（ただし、ｍ＝８０）。メモリブロック１０Ａ，１０Ｂは、Ｙ方向に延びる仮想線ＳＹＭ１（対称線）の両側に互いに対称に配置される。以下、メモリブロック１０Ａ，１０Ｂの各々において、仮想線ＳＹＭ１から最も遠い列の列番号を０とし、仮想線ＳＹＭ１に最も近い列の列番号を７９とする。
【０１５７】
メモリブロック１０Ａ，１０Ｂの各々には、各行に個別に対応してＸ方向に延びるｎ本のマッチ線ＭＬ［０］〜［ｎ−１］と、各列に個別に対応してＹ方向に延びるｍ本のサーチ線対ＳＬ［０］，ＳＬ＿Ｎ［０］〜ＳＬ［ｍ−１］，ＳＬ＿Ｎ［ｍ−１］（ただし、ｍ＝８０）とが設けられる。以下、メモリブロック１０Ａに対応したマッチ線およびサーチ線対をマッチ線ＭＬＡ、サーチ線対ＳＬＡ，ＳＬＡ＿Ｎと記載し、メモリブロック１０Ｂに対応したマッチ線およびサーチ線対をマッチ線ＭＬＢ、サーチ線対ＳＬＢ，ＳＬＢ＿Ｎと記載する。メモリブロック１０Ａに対応して設けられたマッチ線ＭＬＡおよびサーチ線対ＳＬＡ，ＳＬＡ＿Ｎと、メモリブロック１０Ｂに対応して設けられたマッチ線ＭＬＢおよびサーチ線対ＳＬＢ，ＳＬＢ＿Ｎとは、仮想線ＳＹＭ１に対して互いに対称に配置される。
【０１５８】
さらに、図１８に示すように、連想メモリ１００Ａは、第１のメモリブロック１０Ａに対応して設けられた一致検出部２０Ａ、検索データ転送部３０Ａ、第１のプリチャージ部ＰＣＡ［０］〜ＰＣＡ［ｎ−１］と、第２のメモリブロック１０Ｂに対応して設けられた一致検出部２０Ｂ、検索データ転送部３０Ｂ、第２のプリチャージ部ＰＣＢ［０］〜ＰＣＢ［ｎ−１］とを含む。
【０１５９】
一致検出部２０Ａは、マッチ線ＭＬＡ［０］〜ＭＬＡ［ｎ−１］の各々の両端部のうち、対称線ＳＹＭ１から遠い側の端部に個別に設けられたマッチアンプＭＡＡ［０］〜ＭＡＡ［ｎ−１］を含む。各マッチアンプＭＡＡの構成は実施の形態１の場合と同じであるので説明を繰り返さない。一致検出部２０Ｂを構成するマッチアンプＭＡＢ［０］〜ＭＡＢ［ｎ−１］についても同様である。一致検出部２０Ａの各マッチアンプＭＡＡと一致検出部２０Ｂの各マッチアンプＭＡＢとは、仮想線ＳＹＭ１に対して互いに対称に配置される。
【０１６０】
検索データ転送部３０Ａは、−Ｙ方向側のサーチ線対ＳＬＡ［０］，ＳＬＡ＿Ｎ［０］〜ＳＬＡ［７９］，ＳＬＡ＿Ｎ［７９］の端部にそれぞれ設けられたサーチ線ドライバＤＲＡ［０］〜ＤＲＡ［７９］を含む。各サーチ線ドライバＤＲＡの構成は実施の形態１の場合と同じであるので説明を繰り返さない。検索データ転送部３０Ｂを構成するサーチ線ドライバＤＲＢ［０］〜ＤＲＢ［７９］についても同様である。検索データ転送部３０Ａの各サーチ線ドライバＤＲＡと検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢとは、仮想線ＳＹＭ１に対して互いに対称に配置される。
【０１６１】
上記の第１のメモリブロック１０Ａとそれに対応したマッチ線ＭＬＡ、サーチ線対ＳＬＡ，ＳＬＡ＿Ｎ、一致検出部２０Ａ、および検索データ転送部３０Ａとによってこの発明の第１のメモリ部１３０Ａが構成される。同様に、上記の第２のメモリブロック１０Ｂとそれに対応したマッチ線ＭＬＢ、サーチ線対ＳＬＢ，ＳＬＢ＿Ｎ、一致検出部２０Ｂ、および検索データ転送部３０Ｂとによってこの発明の第２のメモリ部１３０Ｂが構成される。第１および第２のメモリ部１３０Ａ，１３０Ｂは、仮想線ＳＹＭ１に対して互いに対称に配置される。
【０１６２】
第１のプリチャージ部ＰＣＡ［０］〜ＰＣＡ［ｎ−１］は、メモリブロック１０Ａに設けられたマッチ線ＭＬＡ［０］〜ＭＬＡ［ｎ−１］にそれぞれ対応して設けられる。第１のプリチャージ部ＰＣＡ［０］〜ＰＣＡ［ｎ−１］は、一致検出部２０Ａ（マッチアンプＭＡＡ）に近接した側のマッチ線ＭＬＡの端部にそれぞれ接続される。
【０１６３】
同様に、第２のプリチャージ部ＰＣＢ［０］〜ＰＣＢ［ｎ−１］は、メモリブロック１０Ｂに設けられたマッチ線ＭＬＢ［０］〜ＭＬＢ［ｎ−１］にそれぞれ対応して設けられる。第２のプリチャージ部ＰＣＢ［０］〜ＰＣＢ［ｎ−１］は、一致検出部２０Ｂ（マッチアンプＭＡＢ）に近接した側のマッチ線ＭＬＢの端部にそれぞれ接続される。第１および第２のプリチャージ部ＰＣＡ，ＰＣＢの構成は、実施の形態１のプリチャージ部ＰＣと同じであるので説明を繰り返さない。
【０１６４】
さらに、連想メモリ１００Ａは、仮想線ＳＹＭ１に対して第１のメモリブロック１０Ａと同じ側に設けられたサブサーチ制御回路５０Ａと、仮想線ＳＹＭ１に対して第２のメモリブロック１０Ｂと同じ側に設けられたサブサーチ制御回路５０Ｂとを含む。サブサーチ制御回路５０Ａとサブサーチ制御回路５０Ｂとは、仮想線ＳＹＭ１に対して互いに対称に配置される。図１８の場合、サブサーチ制御回路５０Ａ，５０Ｂの各々から仮想線ＳＹＭ１までの距離は、一致検出部２０Ａ，２０Ｂの各々から仮想線ＳＹＭ１までの距離とほぼ等しい。
【０１６５】
サブサーチ制御回路５０Ａ（第２の制御部）は、仮想線ＳＹＭ１を挟んで反対側の検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢにサーチ線イネーブル信号ＳＬＥ＿０（第２の制御信号）を供給する。検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢは、受信したサーチ線イネーブル信号ＳＬＥ＿０が活性化したとき、対応のサーチ線対ＳＬＢ，ＳＬＢ＿Ｎに接続された各ＣＡＭセルＣＣに検索データＳＤＢ，ＳＤＢ＿Ｎを転送する。
【０１６６】
同様に、サブサーチ制御回路５０Ｂ（第１の制御部）は、仮想線ＳＹＭ１を挟んで反対側の検索データ転送部３０Ａの各サーチ線ドライバＤＲＡにサーチ線イネーブル信号ＳＬＥ＿１（第１の制御信号）を供給する。検索データ転送部３０Ａの各サーチ線ドライバＤＲＡは、受信したサーチ線イネーブル信号ＳＬＥ＿１が活性化したとき、対応のサーチ線対ＳＬＡ，ＳＬＡ＿Ｎに接続された各ＣＡＭセルＣＣに検索データＳＤＡ，ＳＤＡ＿Ｎを転送する。
【０１６７】
サブサーチ制御回路５０Ａ（第２の制御部）は、さらに、仮想線ＳＹＭ１を挟んで反対側のサブサーチ制御回路５０Ｂ（第１の制御部）からサーチ線イネーブル信号ＳＬＥ＿１（第１の制御信号）を受ける。サブサーチ制御回路５０Ａは、サーチ線イネーブル信号ＳＬＥ＿１を用いてマッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０（第４の制御信号）およびマッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎ（第６の制御信号）を生成する。生成されたマッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０およびマッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎは、仮想線ＳＹＭ１に対してサブサーチ制御回路５０Ａと同じ側の一致検出部２０Ａの各マッチアンプＭＡＡおよび第１のプリチャージ部ＰＣＡ［０］〜ＰＣＡ［ｎ−１］にそれぞれ出力される。一致検出部２０Ａの各マッチアンプＭＡＡは、受信したマッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０が活性化したとき、対応のマッチ線ＭＬＡの論理レベルを検出する。第１のプリチャージ部ＰＣＡ［０］〜ＰＣＡ［ｎ−１］は、受信したマッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎが活性化したとき、対応のマッチ線ＭＬＡに所定の電圧（電源電圧）を印加する。
【０１６８】
同様に、サブサーチ制御回路５０Ｂ（第１の制御部）は、さらに、仮想線ＳＹＭ１を挟んで反対側のサブサーチ制御回路５０Ａ（第２の制御部）からサーチ線イネーブル信号ＳＬＥ＿０（第２の制御信号）を受ける。サブサーチ制御回路５０Ｂは、サーチ線イネーブル信号ＳＬＥ＿０を用いてマッチアンプ制御信号ＭＬＩ＿１，ＭＡＥ＿１，ＭＡＬＡＴ＿１（第３の制御信号）およびマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎ（第５の制御信号）を生成する。生成されたマッチアンプ制御信号ＭＬＩ＿１，ＭＡＥ＿１，ＭＡＬＡＴ＿１およびマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎは、仮想線ＳＹＭ１に対してサブサーチ制御回路５０Ｂと同じ側の一致検出部２０Ｂの各マッチアンプＭＡＢおよび第２のプリチャージ部ＰＣＢ［０］〜ＰＣＢ［ｎ−１］にそれぞれ出力される。一致検出部２０Ｂの各マッチアンプＭＡＢは、受信したマッチアンプ制御信号ＭＬＩ＿１，ＭＡＥ＿１，ＭＡＬＡＴ＿１が活性化したとき、対応のマッチ線ＭＬＢの論理レベルを検出する。第２のプリチャージ部ＰＣＢ［０］〜ＰＣＢ［ｎ−１］は、受信したマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎが活性化したとき、対応のマッチ線ＭＬＢに所定の電圧（電源電圧）を印加する。
【０１６９】
図１８に示すように、サブサーチ制御回路５０Ａから検索データ転送部３０Ｂおよびサブサーチ制御回路５０Ｂへサーチ線イネーブル信号ＳＬＥ＿０を伝送するために制御信号線１２０（第２の制御信号線）が設けられる。さらに、サブサーチ制御回路５０Ｂから検索データ転送部３０Ａおよびサブサーチ制御回路５０Ａへサーチ線イネーブル信号ＳＬＥ＿１を伝送するために制御信号線１２１（第１の制御信号線）が設けられる。
【０１７０】
制御信号線１２０は、サブサーチ制御回路５０Ａから概ね＋Ｘ方向に延在し、仮想線ＳＹＭ１と交差して反対側のサブサーチ制御回路５０Ｂに達する。制御信号線１２０は、サーチ線ドライバＤＲＢの配列順（ＤＲＢ［７９］〜ＤＲＢ［０］）に検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢと接続される。したがって、サブサーチ制御回路５０Ａから出力されたサーチ線イネーブル信号ＳＬＥ＿０は、仮想線ＳＹＭ１に近い側からの順で検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢに到達する。
【０１７１】
制御信号線１２１は、サブサーチ制御回路５０Ｂから概ね−Ｘ方向に延在し、仮想線ＳＹＭ１と交差して反対側のサブサーチ制御回路５０Ａに達する。制御信号線１２１は、サーチ線ドライバＤＲＡの配列順（ＤＲＡ［７９］〜ＤＲＡ［０］）に検索データ転送部３０Ａの各サーチ線ドライバＤＲＡと接続される。したがって、サブサーチ制御回路５０Ｂから出力されたサーチ線イネーブル信号ＳＬＥ＿１は、仮想線ＳＹＭ１に近い側からの順で検索データ転送部３０Ａの各サーチ線ドライバＤＲＡに到達する。
【０１７２】
制御信号線１２０，１２１は、仮想線ＳＹＭ１に関して概ね互いに対称な配置である。したがって、サブサーチ制御回路５０Ｂを起点とし検索データ転送部３０Ａの任意の第１のサーチ線ドライバＤＲＡまでのサーチ線イネーブル信号ＳＬＥ＿１の伝送経路長は、サブサーチ制御回路５０Ａを起点とし仮想線ＳＹＭ１に関して第１のサーチ線ドライバＤＲＡと対称に配置された第２のサーチ線ドライバＤＲＢまでのサーチ線イネーブル信号ＳＬＥ＿０の伝送経路長に等しい。さらに、サブサーチ制御回路５０Ａからサブサーチ制御回路５０Ｂに至るサーチ線イネーブル信号ＳＬＥ＿０の伝送経路長は、サブサーチ制御回路５０Ｂからサブサーチ制御回路５０Ａに至るサーチ線イネーブル信号ＳＬＥ＿１の伝送経路長に等しい。したがって、制御信号線１２０，１２１の厚みおよび線幅を互いに等しく形成した場合には、信号の伝送時間も等しくなる。
【０１７３】
連想メモリ１００Ａは、さらに、第１および第２のメモリブロック１０Ａ，１０Ｂに対して共通に設けられたプライオリティエンコーダ７０およびメインサーチ制御回路４１（第３の制御部）を含む。メインサーチ制御回路４１は、サブサーチ制御回路５０Ａ，５０Ｂにトリガ信号ＳＥ＿ＡＣＴ１，ＳＥ＿ＡＣＴ２（第７の制御信号）を出力する。
【０１７４】
プライオリティエンコーダ７０は、仮想線ＳＹＭ１に対して第２のメモリブロック１０Ｂと同じ側（＋Ｘ方向側）に設けられる。プライオリティエンコーダ７０は、一致検出部２０ＡのマッチアンプＭＡＡ［０］〜ＭＡＡ［ｎ−１］から、第１のメモリブロック１０Ａに設けられたマッチ線ＭＬＡの論理レベルの検出結果ＭＡＯＡ＿Ｎ［０］〜ＭＡＯＡ＿Ｎ［ｎ−１］をそれぞれ受ける。さらに、プライオリティエンコーダ７０は、一致検出部２０ＢのマッチアンプＭＡＢ［０］〜ＭＡＢ［ｎ−１］から、第２のメモリブロック１０Ｂに設けられたマッチ線ＭＬＢの論理レベルの検出結果ＭＡＯＢ＿Ｎ［０］〜ＭＡＯＢ＿Ｎ［ｎ−１］をそれぞれ受ける。
【０１７５】
メインサーチ制御回路４１は、仮想線ＳＹＭ１に対してプライオリティエンコーダ７０と同じ側（＋Ｘ方向側）で、仮想線ＳＹＭ１からプライオリティエンコーダ７０とほぼ等距離の位置に設けられる。さらに、前述のように、サブサーチ制御回路５０Ａ，５０Ｂの各々から仮想線ＳＹＭ１までの距離は、一致検出部２０Ａ，２０Ｂの各々から仮想線ＳＹＭ１までの距離とほぼ等しい。
【０１７６】
このような配置にすることによって、メインサーチ制御回路４１からサブサーチ制御回路５０Ａに至るトリガ信号ＳＥ＿ＡＣＴ１，ＳＥ＿ＡＣＴ２の伝送経路長は、一致検出部２０Ａからプライオリティエンコーダ７０に至る検出結果の伝送経路長にほぼ等しくなる。さらに、メインサーチ制御回路４１からサブサーチ制御回路５０Ｂに至るトリガ信号ＳＥ＿ＡＣＴ１，ＳＥ＿ＡＣＴ２の伝送経路長は、一致検出部２０Ｂからプライオリティエンコーダ７０に至る検出結果の伝送経路長にほぼ等しくなる。したがって、トリガ信号ＳＥ＿ＡＣＴ１，ＳＥ＿ＡＣＴ２が伝送する配線と一致検出部２０Ａ，２０Ｂの検出結果が伝送する配線とで、各配線の厚みおよび線幅が互いに等しく形成されている場合には、両信号の伝送時間も等しくなる。
【０１７７】
［連想メモリ１００Ａの効果］
以上の構成の連想メモリ１００Ａによれば、サブサーチ制御回路５０Ａから出力されたサーチ線イネーブル信号ＳＬＥ＿０が検索データ転送部３０Ｂの最初のサーチ線ドライバＤＲＢ［７９］に到達する時間を、サブサーチ制御回路５０Ａから出力されたマッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎがいずれの第１のプリチャージ部ＰＣＡに到達する時間よりも長くすることができる。同様に、サブサーチ制御回路５０Ｂから出力されたサーチ線イネーブル信号ＳＬＥ＿１が検索データ転送部３０Ａの最初のサーチ線ドライバＤＲＡ［７９］に到達する時間を、サブサーチ制御回路５０Ｂから出力されたマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎがいずれの第２のプリチャージ部ＰＣＢに到達する時間よりも長くすることができる。したがって、第１および第２のいずれのメモリブロック１０Ａ，１０Ｂに対しても、プリチャージ部ＰＣＡ，ＰＣＢによるマッチ線ＭＬＡ，ＭＬＢのプリチャージが終了した後に、サーチ線ＳＬＡ，ＳＬＡ＿Ｎ，ＳＬＢ，ＳＬＢ＿Ｎの活性化を行なうことができる。
【０１７８】
さらに、サブサーチ制御回路５０Ａは、サブサーチ制御回路５０Ｂから受けたサーチ線イネーブル信号ＳＬＥ＿１＿ＲＣＶを用いてマッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎおよびマッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０を生成することができる。同様に、サブサーチ制御回路５０Ｂは、サブサーチ制御回路５０Ａから受けたサーチ線イネーブル信号ＳＬＥ＿０＿ＲＣＶを用いてマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎおよびマッチアンプ制御信号ＭＬＩ＿１，ＭＡＥ＿１，ＭＡＬＡＴ＿１を生成することができる。したがって、第１および第２のメモリブロック１０Ａ，１０Ｂに対応したサーチ線ＳＬＡ，ＳＬＡ＿Ｎ，ＳＬＢ，ＳＬＢ＿Ｎが非活性状態になった後に、マッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎ，ＭＬＰＲＥ＿１＿Ｎおよびマッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０，ＭＬＩ＿１，ＭＡＥ＿１，ＭＡＬＡＴ＿１を活性化することが容易にできる。
【０１７９】
さらに、第１および第２のメモリブロック１０Ａ，１０Ｂのいずれに対しても、サーチ線ＳＬＡ，ＳＬＡ＿Ｎ，ＳＬＢ，ＳＬＢ＿Ｎは、対応のマッチアンプＭＡＡ，ＭＡＢから遠いほうから順番に活性化されるので、マッチアンプＭＡＡ，ＭＡＢの活性化のタイミングを決定するのにマッチ線ＭＬＡ，ＭＬＢの配線遅延を考慮する必要がない。
【０１８０】
さらに、上記の構成の連想メモリ１００Ａによれば、第１および第２のメモリブロック間のアクセススキューを小さくすることができる。以下、その理由を具体的に説明する。
【０１８１】
まず、第１のメモリブロック１０Ａのデータ検索を行なう場合（第１のデータ検索）には、メインサーチ制御回路４１から活性状態のトリガ信号ＳＥ＿ＡＣＴ１がサブサーチ制御回路５０Ｂに送信される。これを受けてサブサーチ制御回路５０Ｂから、活性状態のサーチ線イネーブル信号ＳＬＥ＿１が検索データ転送部３０Ａの各サーチ線ドライバＤＲＡに送信される。これを受けて検索データ転送部３０Ａの各サーチ線ドライバＤＲＡから、第１のメモリブロック１０Ａの各ＣＡＭセルＣＣに検索データＳＤＡ，ＳＤＡ＿Ｎが転送される。検索データＳＤＡ，ＳＤＡ＿Ｎと記憶データが不一致の場合に生じるマッチ線ＭＬＡの電圧変化は、一致検出部２０Ａの各マッチアンプＭＡＡによって検出される。そして、一致検出部２０Ａの各マッチアンプＭＡＡから検出結果がプライオリティエンコーダ７０に送信される。
【０１８２】
次に、第２のメモリブロック１０Ｂのデータ検索を行なう場合（第２のデータ検索）には、メインサーチ制御回路４１から活性状態のトリガ信号ＳＥ＿ＡＣＴ１がサブサーチ制御回路５０Ａに送信される。これを受けてサブサーチ制御回路５０Ａから、活性状態のサーチ線イネーブル信号ＳＬＥ＿０が検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢに送信される。これを受けて検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢから、第２のメモリブロック１０Ｂの各ＣＡＭセルＣＣに検索データＳＤＢ，ＳＤＢ＿Ｎが転送される。検索データＳＤＢ，ＳＤＢ＿Ｎと記憶データが不一致の場合に生じるマッチ線ＭＬＢの電圧変化は、一致検出部２０Ｂの各マッチアンプＭＡＢによって検出される。そして、一致検出部２０Ｂの各マッチアンプＭＡＢから検出結果がプライオリティエンコーダ７０に送信される。
【０１８３】
上記の第１のデータ検索の場合と第２のデータ検索の場合を比較すると、メインサーチ制御回路４１からプライオリティエンコーダ７０に至る信号の伝送経路長が同じになる。この結果、信号の伝送時間も同じにできるので、サーチ結果の出力のばらつきが小さくなり、従来よりも高速周波数での連想メモリの動作が可能になる。
【０１８４】
［サブサーチ制御回路５０Ａ，５０Ｂの構成］
以下、サブサーチ制御回路５０Ａ，５０Ｂの具体的な構成例について説明する。
【０１８５】
図１９は、図１８のサブサーチ制御回路５０Ａの一部の構成を示すブロック図である。図１９はサーチ線イネーブル信号ＳＬＥ＿０およびマッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎの生成に関係したサブサーチ制御回路５０Ａの構成を示す。回路の内部構成は、図９の場合と同じであるので説明を繰返さない。図１９のサブサーチ制御回路５０Ａは、メインサーチ制御回路４１から受けたサーチ線ＳＬＢ，ＳＬＢ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１を用いて、サーチ線イネーブル信号ＳＬＥ＿０＿ＳＮＤを生成する。さらに、サブサーチ制御回路５０Ａは、マッチ線ＭＬＡのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０およびサブサーチ制御回路５０Ｂから受けたサーチ線イネーブル信号ＳＬＥ＿１＿ＲＣＶを用いて、マッチ線プリチャージ信号ＭＬＰＲＥ＿０＿Ｎを生成する。
【０１８６】
図２０は、図１８のサブサーチ制御回路５０Ｂの一部の構成を示すブロック図である。図２０はサーチ線イネーブル信号ＳＬＥ＿１およびマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎの生成に関係したサブサーチ制御回路５０Ｂの構成を示す。回路の内部構成は、図９の場合と同じであるので説明を繰返さない。図２０のサブサーチ制御回路５０Ｂは、メインサーチ制御回路４１から受けたサーチ線ＳＬＡ，ＳＬＡ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１を用いて、サーチ線イネーブル信号ＳＬＥ＿１＿ＳＮＤを生成する。さらに、サブサーチ制御回路５０Ｂは、マッチ線ＭＬＢのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０およびサブサーチ制御回路５０Ａから受けたサーチ線イネーブル信号ＳＬＥ＿０＿ＲＣＶを用いて、マッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎを生成する。
【０１８７】
図２１は、図１９、図２０の各信号のタイミング図である。図２１は上から順に、クロックＣＬＫ、トリガ信号ＳＥ＿ＡＣＴ０，ＳＥ＿ＡＣＴ１、サブサーチ制御回路５０Ａでの送信時のサーチ線イネーブル信号ＳＬＥ＿０＿ＳＮＤ、検索データ転送部３０Ｂのサーチ線ドライバＤＲＢ［７９］に到達したサーチ線イネーブル信号ＳＬＥ＿０＿ＳＬＢ［７９］、サブサーチ制御回路５０Ｂでの受信時のサーチ線イネーブル信号ＳＬＥ＿０＿ＲＣＶ、およびマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎの各波形を示す。クロックＣＬＫは時刻Ｔ１０，Ｔ３０のタイミングで立上がり、時刻Ｔ２０，Ｔ４０のタイミングで立下がるものとする。
【０１８８】
図２１に示すように、時刻Ｔ２０にマッチ線ＭＬＢのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０がＬレベルに変化する。これに応答して、サブサーチ制御回路５０Ｂから出力されるマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎが時刻Ｔ２１にＨレベルに変化することにより、第２のメモリブロック１０Ｂに対応したマッチ線ＭＬＢのプリチャージが完了する。
【０１８９】
さらに、時刻Ｔ２０には、サーチ線ＳＬＢ，ＳＬＢ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１がＨレベルに変化する。これに応答して、サブサーチ制御回路５０Ａから送信されるサーチ線イネーブル信号ＳＬＥ＿０＿ＳＮＤがＨレベルに変化する。このサーチ線イネーブル信号ＳＬＥ＿０＿ＳＮＤの活性化から配線遅延分だけ遅れた時刻Ｔ２３に、検索データ転送部３０Ｂのサーチ線ドライバＤＲＢ［７９］で受信したサーチ線イネーブル信号ＳＬＥ＿０＿ＳＬＢ［７９］が活性化する。さらに、配線遅延分だけ遅れてサブサーチ制御回路５０Ｂで受信したサーチ線イネーブル信号ＳＬＥ＿０＿ＲＣＶが活性化する。
【０１９０】
したがって、第２のメモリブロック１０Ｂにおいて、マッチ線ＭＬＢのプリチャージが完了した時刻Ｔ２１と最初のサーチ線ＳＬＢ［７９］，ＳＬＢ＿Ｎ［７９］を活性化する時刻Ｔ２３までの間にタイムマージンＴＤ１をもたせることができる。
【０１９１】
次に、時刻Ｔ３０に、マッチ線ＭＬＢのプリチャージのトリガ信号ＳＥ＿ＡＣＴ０がＨレベルに変化する。さらに、サブサーチ制御回路５０Ｂで受信するサーチ線イネーブル信号ＳＬＥ＿０＿ＲＣＶがＬレベルになることによって、サブサーチ制御回路５０Ｂから出力されるマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎが活性化する（時刻Ｔ３６）。この結果、第２のメモリブロック１０Ｂにおいて、全てのサーチ線対ＳＬＢ，ＳＬＢ＿Ｎの非活性化が完了している時刻Ｔ３５とマッチ線プリチャージ信号ＭＬＰＲＥ＿１＿Ｎを活性化する時刻Ｔ３６との間にタイムマージンＴＤ２をもたせることができる。以上は、第２のメモリブロック１０Ｂの場合について説明したが、第１のメモリブロック１０Ａの場合も同様である。
【０１９２】
図２２は、図１８のサブサーチ制御回路５０Ａの一部の構成を示すブロック図である。図２２は、マッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０の生成に関係したサブサーチ制御回路５０Ａの構成を示す。回路の内部構成は、図１１の場合と同じであるので説明を繰返さない。サブサーチ制御回路５０Ａは、サブサーチ制御回路５０Ｂから受信したサーチ線イネーブル信号ＳＬＥ＿１＿ＲＣＶを用いてマッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＥ＿０＿Ｎ，ＭＡＬＡＴ＿０を生成する。
【０１９３】
図２３は、図１８のサブサーチ制御回路５０Ｂの一部の構成を示すブロック図である。図２３は、マッチアンプ制御信号ＭＬＩ＿１，ＭＡＥ＿１，ＭＡＬＡＴ＿１の生成に関係したサブサーチ制御回路５０Ｂの構成を示す。回路の内部構成は、図１１の場合と同じであるので説明を繰返さない。サブサーチ制御回路５０Ｂは、サブサーチ制御回路５０Ａから受信したサーチ線イネーブル信号ＳＬＥ＿０＿ＲＣＶを用いてマッチアンプ制御信号ＭＬＩ＿１，ＭＡＥ＿１，ＭＡＬＡＴ＿１を生成する。
【０１９４】
図２４は、図２２の各信号のタイミング図である。図２４は上から順に、クロックＣＬＫ、トリガ信号ＳＥ＿ＡＣＴ１、サブサーチ制御回路５０Ａで受信したサーチ線イネーブル信号ＳＬＥ＿１＿ＲＣＶ、図２２の遅延段５５の出力信号ＳＬＥ＿１＿ＲＣＶ＿ＤＬＹ、およびマッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０の波形を示す。クロックＣＬＫは時刻Ｔ１０，Ｔ３０のタイミングで立上がり、時刻Ｔ２０，Ｔ４０のタイミングで立下がるものとする。
【０１９５】
図２４に示すように、時刻Ｔ３０に、メインサーチ制御回路４１から出力されるサーチ線ＳＬＡ，ＳＬＡ＿Ｎの活性化のトリガ信号ＳＥ＿ＡＣＴ１がＬレベルに変化する。これに応答して、サブサーチ制御回路５０Ｂから出力されるサーチ線イネーブル信号ＳＬＥ＿１がＬレベルに変化するので、配線遅延分だけ遅延した時刻Ｔ３５にサブサーチ制御回路５０Ａで受信するサーチ線イネーブル信号ＳＬＥ＿１＿ＲＣＶがＬレベルに変化する。マッチアンプ制御信号ＭＬＩ＿０，ＭＡＥ＿０，ＭＡＬＡＴ＿０は、サーチ線イネーブル信号ＳＬＥ＿１＿ＲＣＶの立下がりに応答してこの順序でＨレベルに変化する。
【０１９６】
次に、図２２の遅延段５５の出力信号ＳＬＥ＿１＿ＲＣＶ＿ＤＬＹは、所定の遅延時間だけ遅延した時刻Ｔ３７にＬレベルに変化する。マッチアンプ制御信号ＭＡＬＡＴ＿０，ＭＡＥ＿０，ＭＬＩ＿０は、この遅延段５５の出力信号ＳＬＥ＿１＿ＲＣＶ＿ＤＬＹの立下がりに応答してこの順序でＬレベルに変化する。
【０１９７】
［制御信号線の構成例］
図２５は、図１８の制御信号線１２０，１２１の構成の一例を示す平面図である。図２５では、図解を容易にするために一部の配線にハッチングが付されている。
【０１９８】
図２５に示すように、制御信号線１２０は、第Ｑ層の金属配線層に一体形成された配線部１２０Ａ〜１２０Ｃを含む。配線部１２０Ａの−Ｘ方向側の端部は、サブサーチ制御回路５０Ａに設けられたサーチ線イネーブル信号ＳＬＥ＿０の送信部の最終段のトランジスタ１１２Ａ，１１２ＢとコンタクトＮＡＳを介して接続される。配線部１２０Ａは、コンタクトＮＡＳから＋Ｘ方向に延在する。配線部１２０Ａの＋Ｘ方向側の端部は、Ｙ方向に延びる配線部１２０Ｂの一端と接続される。配線部１２０Ｃは、配線部１２０Ｂの他端から＋Ｘ方向に延びる。配線部１２０Ｃの＋Ｘ方向側の端部は、サブサーチ制御回路５０Ｂに設けられたサーチ線イネーブル信号ＳＬＥ＿０の受信部の入力初段のトランジスタ１１３Ａ，１１３ＢとコンタクトＮＢＲを介して接続される。
【０１９９】
制御信号線１２１は、制御信号線１２０と同層の第Ｑ層の金属配線層に形成された配線部１２１Ａ，１２１Ｃと、第Ｑ層のより下層の第Ｐ層の金属配線層に形成されたＬ字状の配線部１２１Ｂとを含む。配線部１２１Ａの＋Ｘ方向側の端部は、サブサーチ制御回路５０Ｂに設けられたサーチ線イネーブル信号ＳＬＥ＿１の送信部の最終段のトランジスタ１１４Ａ，１１４ＢとコンタクトＮＢＳを介して接続される。配線部１２１Ａは、コンタクトＮＢＳから−Ｘ方向に延び、配線部１２１Ｂの一端とコンタクト１２２を介して接続される。配線部１２１Ｃは、配線部１２１Ｂの他端とコンタクト１２３を介して接続され、コンタクト１２３から−Ｘ方向に延びる。配線部１２１Ｃの−Ｘ方向側の端部は、サブサーチ制御回路５０Ａに設けられたサーチ線イネーブル信号ＳＬＥ＿１の受信部の入力初段のトランジスタ１１１Ａ，１１１ＢとコンタクトＮＡＲを介して接続される。
【０２００】
制御信号線１２１の配線部１２１Ｃは、制御信号線１２０の配線部１２０Ａよりも検索データ転送部３０Ａ寄りに設けられる。配線部１２１Ｃは、仮想線ＳＹＭ１側から見て最初に、検索データ転送部３０Ａのサーチ線ドライバＤＲＡ［７９］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＡ［７９］（接続ノード）を介して接続される。続いて配線部１２１Ｃは、サーチ線ドライバＤＲの配列順で各サーチ線ドライバＤＲＡの入力初段のトランジスタ３７Ａ，３７Ｂと接続され、最後にサーチ線ドライバＤＲＡ［０］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＡ［０］を介して接続される。
【０２０１】
制御信号線１２０の配線部１２０Ｃは、制御信号線１２１の配線部１２１Ａよりも検索データ転送部３０Ｂ寄りに設けられる。配線部１２０Ｃは、仮想線ＳＹＭ１側から見て最初に、検索データ転送部３０Ｂのサーチ線ドライバＤＲＢ［７９］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＢ［７９］を介して接続される。続いて配線部１２０Ｃは、サーチ線ドライバＤＲＢの配列順で各サーチ線ドライバＤＲＢの入力初段のトランジスタ３７Ａ，３７Ｂと接続され、最後にサーチ線ドライバＤＲＢ［０］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＢ［０］を介して接続される。
【０２０２】
以上をまとめると、図２５の場合の制御信号配線１２０，１２１の構成は次のようになる。なお、以下では、第２のメモリ部１３０Ｂとサブサーチ制御回路５０Ｂとを合わせて第１のブロックと称し、第１のメモリ部１３０Ａとサブサーチ制御回路５０Ａとを合わせて第２のブロックと称する。第１および第２のブロックは第１の方向（Ｘ方向）に並んで配置される。
【０２０３】
第１のブロックのサーチ制御回路（サブサーチ制御回路５０Ｂ）は、第１と第２のブロック全体の第１の方向（Ｘ方向）の一方端（＋Ｘ方向側の端部）に配置される。第２のブロックのサーチ制御回路（サブサーチ制御回路５０Ａ）は第１と第２のブロック全体の第１の方向（Ｘ方向）の他方端（−Ｘ方向側の端部）に配置される。
【０２０４】
制御信号配線１２０，１２１は、第１〜第４の配線部を含む。第１の配線部１２０（１２０Ａ〜１２０Ｃ）は、第１の方向（Ｘ方向）に延在し、両端部がそれぞれ、第１のブロックのサーチ制御回路５０Ｂと第２のブロックのサーチ制御回路５０Ａとに接続される。第２の配線部１２１Ｂは、第１と第２ブロックの間に配置される。第３の配線部１２１Ａは、第１の方向（Ｘ方向）に延在し、両端部がそれぞれ第１のブロックのサーチ制御回路５０Ｂと第２の配線部１２１Ｂに接続される。第４の配線部１２１Ｃは、第１の方向に延在し、両端部がそれぞれ第２のブロックのサーチ制御回路５０Ａと第２の配線部１２１Ｂに接続される。
【０２０５】
より詳しくは、第１のブロックの複数のサーチ線ドライバＤＲＢはそれぞれ第１の配線部１２０（１２０Ｃ）に接続される。第２のブロックの複数のサーチ線ドライバＤＲＡはそれぞれ第４の配線部１２１Ｃに接続される。第１と第３と第４の配線部１２０，１２１Ａ，１２１Ｃは第１の配線層（Ｑ層）に配置され、第２の配線部１２１Ｂは第１の配線層（Ｑ層）と異なる第２の配線層（Ｐ層）に配置される。
【０２０６】
［制御信号線の他の構成例］
図２６は、図１８の制御信号線１２０，１２１の構成の他の例を示す平面図である。図２６では、図解を容易にするために一部の配線にハッチングが付されている。
【０２０７】
図２６に示すように、制御信号線１２０は、第Ｐ層の金属配線層に形成された配線部１２０Ａと、第Ｐ層より上層の第Ｑ層の金属配線層に形成された配線部１２０Ｂとを含む。−Ｘ方向側の端部を除いて配線部１２０ＡはＸ方向に延在する。配線部１２０Ａの−Ｘ方向側の端部はＬ字状に屈曲し、サブサーチ制御回路５０Ａに設けられたサーチ線イネーブル信号ＳＬＥ＿０の送信部の最終段のトランジスタ１１２Ａ，１１２ＢとコンタクトＮＡＳ（接続ノード）を介して接続される。配線部１２０Ｂの−Ｘ方向側の端部は、仮想線ＳＹＭ１付近で配線部１２０Ａの＋Ｘ方向側の端部とコンタクト１２４を介して接続される。配線部１２０Ｂは、コンタクト１２４から＋Ｘ方向に延びる。配線部１２０Ｂの＋Ｘ方向側の端部は、サブサーチ制御回路５０Ｂに設けられたサーチ線イネーブル信号ＳＬＥ＿０の受信部の入力初段のトランジスタ１１３Ａ，１１３ＢとコンタクトＮＢＲを介して接続される。
【０２０８】
制御信号線１２１は、第Ｐ層の金属配線層に形成された配線部１２１Ａと、第Ｐ層より上層の第Ｑ層の金属配線層に形成された配線部１２１Ｂとを含む。配線部１２１ＡはＬ字状に屈曲する両端部を除いてＸ方向に延びる。配線部１２１Ａの＋Ｘ方向側の端部は、サブサーチ制御回路５０Ｂに設けられたサーチ線イネーブル信号ＳＬＥ＿１の送信部の最終段のトランジスタ１１４Ａ，１１４ＢとコンタクトＮＢＳを介して接続される。配線部１２１Ｂは、クランク状に２回屈曲した＋Ｘ方向側の端部を除いてＸ方向に延在する。配線部１２１Ｂの＋Ｘ方向側の端部は、コンタクト１２５を介して配線部１２１Ａの−Ｘ方向側の端部と接続される。配線部１２１Ｃの−Ｘ方向側の端部は、サブサーチ制御回路５０Ａに設けられたサーチ線イネーブル信号ＳＬＥ＿１の受信部の入力初段のトランジスタ１１１Ａ，１１１ＢとコンタクトＮＡＲを介して接続される。
【０２０９】
第Ｑ層に形成された制御信号線１２０の配線部１２０Ｂは、仮想線ＳＹＭ１側から見て最初に、検索データ転送部３０Ｂのサーチ線ドライバＤＲＢ［７９］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＢ［７９］を介して接続される。続いて配線部１２０Ｂは、サーチ線ドライバＤＲＢの配列順で検索データ転送部３０Ｂの各サーチ線ドライバＤＲＢの入力初段のトランジスタ３７Ａ，３７Ｂと接続される。配線部１２０Ｂは、最後に検索データ転送部３０Ｂのサーチ線ドライバＤＲＢ［０］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＢ［０］を介して接続される。
【０２１０】
第Ｑ層に形成された制御信号線１２１の配線部１２１Ｂは、仮想線ＳＹＭ１側から見て最初に、検索データ転送部３０Ａのサーチ線ドライバＤＲＡ［７９］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＡ［７９］を介して接続される。続いて配線部１２１Ｂは、サーチ線ドライバＤＲＡの配列順で検索データ転送部３０Ａの各サーチ線ドライバＤＲＡの入力初段のトランジスタ３７Ａ，３７Ｂと接続される。配線部１２１Ｂは、最後に検索データ転送部３０Ａのサーチ線ドライバＤＲＡ［０］の入力初段のトランジスタ３７Ａ，３７ＢとコンタクトＮＡ［０］を介して接続される。
【０２１１】
以上をまとめると、図２６の場合の制御信号配線１２０，１２１の構成は次のようになる。なお、以下では、第２のメモリ部１３０Ｂとサブサーチ制御回路５０Ｂとを合わせて第１のブロックと称し、第１のメモリ部１３０Ａとサブサーチ制御回路５０Ａとを合わせて第２のブロックと称する。第１および第２のブロックは第１の方向（Ｘ方向）に並んで配置される。
【０２１２】
第１のブロックのサーチ制御回路（サブサーチ制御回路５０Ｂ）は、第１と第２のブロック全体の第１の方向（Ｘ方向）の一方端（＋Ｘ方向側の端部）に配置される。第２のブロックのサーチ制御回路（サブサーチ制御回路５０Ａ）は、第１と第２のブロック全体の第１の方向（Ｘ方向）の他方端（−Ｘ方向側の端部）に配置される。
【０２１３】
制御信号配線１２０，１２１は、第１〜第４の配線部を含む。第１の配線部１２０Ｂおよび第２の配線部１２１Ａは、第１の方向（Ｘ方向）に延在し、それぞれの一方端（＋Ｘ方向側の端部）が、第１のブロックのサーチ制御回路５０Ｂに接続される。第３の配線部１２１Ｂおよび第４の配線部１２０Ａは、第１の方向（Ｘ方向）に延在し、それぞれの一方端（−Ｘ方向側の端部）が、第２のブロックのサーチ制御回路５０Ａに接続される。第１と第３の配線部１２０Ｂ，１２１Ｂは第１の配線層（Ｑ層）に配置される。第２と第４の配線部１２１Ａ，１２０Ａは第１の配線層（Ｑ層）とは異なる第２の配線層（Ｐ層）に配置される。第１と第４の配線部１２０Ｂ，１２０Ａのそれぞれの他方端はコンタクト１２４を介して接続される。第２と第３の配線部１２１Ａ，１２１Ｂのそれぞれの他方端はコンタクト１２５を介して接続される。
【０２１４】
より詳しくは、第１のブロックの複数のサーチ線ドライバＤＲＢはそれぞれ第１の配線部１２０Ｂに接続される。第２のブロックの複数のサーチ線ドライバＤＲＡはそれぞれ第３の配線部１２１Ｂに接続される。
【０２１５】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１６】
ＣＣ  ＣＡＭセル、ＤＲ，ＤＲＡ，ＤＲＢ  サーチ線ドライバ、ＭＡ，ＭＡＡ，ＭＡＢ  マッチアンプ、ＭＬＩ，ＭＡＥ，ＭＡＬＡＴ  マッチアンプ制御信号、ＭＡＯ＿Ｎ，ＭＡＯＡ＿Ｎ，ＭＡＯＢ＿Ｎ  マッチアンプの出力信号、ＭＬ，ＭＬＡ，ＭＬＢ  マッチ線、ＭＬＰＲＥ＿Ｎ  マッチ線プリチャージ信号、ＰＣ，ＰＣＡ，ＰＣＢ  プリチャージ部、ＳＤ，ＳＤ＿Ｎ，ＳＤＡ，ＳＤＡ＿Ｎ，ＳＤＢ，ＳＤＢ＿Ｎ  検索データ、ＳＥ＿ＡＣＴ０，ＳＥ＿ＡＣＴ１  トリガ信号、ＳＬ，ＳＬ＿Ｎ  サーチ線対、ＳＬＡ，ＳＬＡ＿Ｎ  サーチ線対、ＳＬＢ，ＳＬＢ＿Ｎ  サーチ線対、ＳＬＥ  サーチ線イネーブル信号、ＳＹＭ１  仮想線（対称線）、１０  ＣＡＭメモリアレイ、１０Ａ  第１のメモリブロック、１０Ｂ  第２のメモリブロック、２０，２０Ａ，２０Ｂ  一致検出部、３０，３０Ａ，３０Ｂ  検索データ転送部、３６  制御信号線、４０  サーチ制御回路、４１  メインサーチ制御回路、５０，５０Ａ，５０Ｂ  サブサーチ制御回路、７０  プライオリティエンコーダ、１００，１００Ａ  連想メモリ、１２０，１２１  制御信号線、１３０Ａ  第１のメモリ部、１３０Ｂ  第２のメモリ部。
【図１】
0005477621.tif 000002
【図２】
0005477621.tif 000003
【図３】
0005477621.tif 000004
【図４】
0005477621.tif 000005
【図５】
0005477621.tif 000006
【図６】
0005477621.tif 000007
【図７】
0005477621.tif 000008
【図８】
0005477621.tif 000009
【図９】
0005477621.tif 000010
【図１０】
0005477621.tif 000011
【図１１】
0005477621.tif 000012
【図１２】
0005477621.tif 000013
【図１３】
0005477621.tif 000014
【図１４】
0005477621.tif 000015
【図１５】
0005477621.tif 000016
【図１６】
0005477621.tif 000017
【図１７】
0005477621.tif 000018
【図１８】
0005477621.tif 000019
【図１９】
0005477621.tif 000020
【図２０】
0005477621.tif 000021
【図２１】
0005477621.tif 000022
【図２２】
0005477621.tif 000023
【図２３】
0005477621.tif 000024
【図２４】
0005477621.tif 000025
【図２５】
0005477621.tif 000026
【図２６】
0005477621.tif 000027