(57)【要約】【課題】連想メモリのサーチ機能のテスト容易化を図る。【解決手段】半導体装置は、制御信号に応じてリードコマンド、リードアドレスおよびサーチコマンドを生成する制御回路と、リードコマンドおよびリードアドレスに基づき対応するエントリの連想メモリセルの格納データ読み出し処理を制御するリード制御回路と、読み出し処理によって読み出されたセル読み出しデータに基づきサーチデータを生成し、生成されたサーチデータに基づきサーチ線対を駆動するサーチ線ドライバ回路と、連想メモリセルが接続され、連想メモリセルの格納データとサーチデータとの比較結果を出力するマッチアンプと、マッチアンプの出力に対応するアドレスを出力するプライオリティエンコーダと、を備える。【選択図】図１
2020102284.tif 000002
【特許請求の範囲】
【請求項１】
行列状に配置された複数の連想メモリセルを有するメモリアレイと、
前記メモリアレイの行に対応するエントリに対応して設けられる複数のマッチ線と、
前記メモリアレイの各列に対応して設けられる複数のサーチ線対と、
サーチ動作において、リードコマンド、リードアドレスを生成する制御信号生成回路と、
前記リードコマンドおよび前記リードアドレスに基づき、対応するエントリの前記連想メモリセルに記憶されているセル記憶データの読み出し処理を制御するリード制御回路と、
それぞれ、前記リードアドレスにしたがって読み出されたセル読み出しデータに基づきサーチデータを生成し、前記サーチデータに応じて対応するサーチ線対を駆動する複数のサーチ線ドライバと、
それぞれ、対応する前記マッチ線の電位に基づき、前記対応するマッチ線に接続される連想メモリセルのセル記憶データと前記サーチデータとの一致又は不一致を示すマッチアンプ出力信号を出力する複数のマッチアンプと、
一致を示すマッチアンプ出力信号に対応するアドレスを出力するプライオリティエンコーダと、
を有する半導体装置。
【請求項２】
前記プライオリティエンコーダから出力されるアドレスと、前記リードアドレスとを比較するサーチ結果比較回路をさらに有する、
請求項１に記載の半導体装置。
【請求項３】
前記リードアドレスに応じて、前記リードアドレスに対応するエントリのマッチアンプを選択するマッチアンプ出力選択回路をさらに備え、前記マッチアンプ出力選択回路の出力を前記プライオリティエンコーダに出力する、
請求項２に記載の半導体装置。
【請求項４】
前記制御信号生成回路はサーチ動作において前記リードコマンド、前記リードアドレスおよびセルデータ選択信号をさらに生成し、
前記サーチ線ドライバの各々は、前記セルデータ選択信号に基づいて、検索用入力データと前記セル読み出しデータとのいずれか一方を前記サーチデータとして選択するサーチデータ選択回路を有する、
請求項１に記載の半導体装置。
【請求項５】
前記セルデータ選択信号は、サーチビット幅と同じビット幅で構成され、
前記サーチ線ドライバの各々は、対応するビットの前記セルデータ選択信号が供給される、
請求項４に記載の半導体装置。
【請求項６】
前記制御信号生成回路は、
スタートアドレスとエンドアドレスが設定されるレジスタと、
前記スタートアドレスから前記エンドアドレスまでのアドレスを生成するアドレス発生回路と、を有し、
前記アドレス発生回路が生成するアドレスを前記リードアドレスとして前記リード制御回路に出力する、
請求項１記載の半導体装置。
【請求項７】
前記連想メモリセルの各々は、二つの記憶素子を有し、
前記リード制御回路は、前記リードアドレスに基づき前記二つの記憶素子からそれぞれセル記憶データを読み出すための読み出し処理を制御し、
前記サーチ線ドライバのそれぞれは、対応する前記二つの記憶素子から読み出された二つのセル読み出しデータに基づき前記サーチデータを生成する、
請求項１記載の半導体装置。
【請求項８】
前記サーチ線ドライバのそれぞれは、前記リードアドレスにしたがって選択される連想メモリセルのセル記憶データがドントケアデータである場合には、前記サーチ線対の各々を活性化するサーチデータを生成する、
請求項１記載の半導体装置。
【請求項９】
前記制御信号生成回路は第２の制御信号を生成し、
前記複数のサーチ線ドライバの各々はデータ反転回路を有し、前記第２の制御信号に基づき前記複数のサーチ線ドライバ部のデータ反転回路のうちの少なくとも一つが活性化され、対応するセル読み出しデータのビットデータを反転させたサーチデータを生成する、
請求項２記載の半導体装置。
【請求項１０】
前記複数のサーチ線ドライバのデータ反転回路は、前記第２の制御信号に応じて順次活性化され、前記セル読み出しデータのビットデータを順次反転させた複数のサーチデータを生成する、
請求項９記載の半導体装置。
【請求項１１】
前記半導体装置は、エラー検出および訂正回路をさらに備え、
前記セル読み出しデータは、エラー検出および訂正回路から指示されるリード動作によって読み出されるデータである、
請求項１に記載の半導体装置。
【請求項１２】
行列状に配置された複数の連想メモリセルを有する半導体装置のテスト方法であって、
リードアドレスに基づき選択される連想メモリセルから記憶データを読み出し、
前記読み出された記憶データをサーチデータとして、前記複数の連想メモリセルに転送してサーチ動作を行い、
前記リードアドレスと前記サーチ動作の結果得られるアドレスとを比較するアドレス比較動作を行う、
半導体装置のテスト方法。
【請求項１３】
前記リードアドレスよりも優先度の高いアドレスに対応するエントリのサーチ結果を無効にして、前記アドレス比較動作を行う、
請求項１２に記載の半導体装置のテスト方法。
【請求項１４】
前記連想メモリは、エラー検出および訂正機能を備えたメモリであって、
前記読み出された記憶データは、エラー検出および訂正機能動作時に実行されるリード動作の結果得られる読み出しデータである、
請求項１３に記載の半導体装置のテスト方法。
【請求項１５】
行列状に配置された複数の連想メモリセルを有するメモリアレイと、
前記メモリアレイの行に対応するエントリに対応して設けられる複数のマッチ線と、
前記メモリアレイの各列に対応して設けられる複数のサーチ線対と、
サーチコマンドと入力アドレスに応じて、リードコマンド、リードアドレスおよびサーチ制御信号を生成し、リード動作開始指示およびサーチ動作をサーチ制御回路と、
前記サーチ制御回路から供給される前記リードコマンドおよび前記リードアドレスに基づき、対応するエントリの前記連想メモリセルに記憶されているセル記憶データの読み出し制御を行うリード制御回路と、
それぞれ、前記リードアドレスにしたがって読み出されたセル読み出しデータに基づきサーチデータを生成し、前記サーチデータに応じて対応するサーチ線対を駆動する複数の第１サーチ線ドライバと、
それぞれ、対応する前記マッチ線の電位に応じて、前記対応するマッチ線に接続される連想メモリセルのセル記憶データと前記サーチデータとの一致又は不一致を示すマッチアンプ出力信号を出力する複数のマッチアンプと、
一致を示すマッチアンプ出力信号に対応するアドレスを出力するプライオリティエンコーダと、
を有する半導体装置。
【請求項１６】
前記複数の第１サーチ線ドライバの各々は、外部から入力される入力データと前記セル読み出しデータに基づいて前記サーチデータを生成する、
請求項１５記載の半導体装置。
【請求項１７】
前記複数の第１サーチ線ドライバの各々は、
サーチデータ選択信号が供給され、前記サーチデータ選択信号に基づいて、外部入力データと前記セル読み出しデータとのいずれか一方を前記サーチデータとして出力するサーチデータ選択回路を有する、
請求項１５記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連想メモリ（ＣＡＭ：Content Addressable Memory）を備える半導体装置のテスト方法に関する。例えば、連想メモリのサーチ機能のテスト方法に関する。
【背景技術】
【０００２】
連想メモリ（以降、ＣＡＭと称する）は、入力された検索データに一致するデータが記憶されているか否かを判定し、一致しているデータが記憶されている場合には、当該データに対応するアドレスを出力するデータ検索機能を有するものである。また、ＲＡＭ（Random Access Memory）のようなメモリ装置と同様に、メモリセルのアドレスを指定して指定アドレスにデータを書き込み、あるいは、読み出す機能も備えている。
【０００３】
ＣＡＭは、検索対象となるデータ列（以下、サーチデータと称する）に基づいてサーチ線（ＳＬ）を駆動し、ＣＡＭアレイ内の各エントリに格納されたデータとの一致不一致を判定することによりデータ検索を行う。各エントリは、複数のＣＡＭセルで構成され、これらＣＡＭセルに検索対象となるデータ（記憶データ）が格納されている。各エントリの複数のＣＡＭセルはマッチ線（ＭＬ）に接続されており、このマッチ線の電位レベルを識別することによって、サーチデータと一致するデータがＣＡＭセルに格納されているかを判定する。そして、プライオリティエンコーダを介して、一致を示す電位レベルを有するマッチ線に対応するアドレスが出力される。
【０００４】
プライオリティエンコーダは、エントリの優先順位が設定されており、サーチデータが複数のエントリと一致すると判定される場合は、最も優先順位の高いエントリに対応するアドレスを出力する。
【０００５】
一方、ＣＡＭへのデータの書き込みは、書込みデータをビット線に転送するとともに、書込み対象のアドレスに対応するワード線を活性化することにより実現される。また、ＣＡＭからのデータの読み出しは、読出し対象のアドレスに対応するワード線を活性化し、ビット線を介して、読み出しデータを出力することにより実現される。
【０００６】
ＣＡＭは、サーチ機能が正常であることをテストする必要がある。例えば、特許文献１に記載の連想メモリは、テストの始めに、バックグラウンドデータを書き込む。その後、連想メモリの最も優先度の低いアドレスのエントリに、バックグランドデータとは異なるテストデータが書き込まれ、そのテストデータを検索データとした検索動作が実施される。このときの検索結果を確認することで、サーチ機能の正常性を確認する。以降、すべてのアドレスについて検査するまで、順次優先順位の高いアドレスに検査データを書き込み、検索動作を繰り返すことにより、サーチ機能の検査を実施している。
【０００７】
また、特許文献２に記載の連想メモリの検査方法では、シフトレジスタ部を設け、優先順位エンコーダの欠陥有無をテストしている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−４２４８９号公報
【特許文献２】特開２００５−１４１９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１では、サーチ機能テストを行うために、組み込みセルフテスト回路（ＢＩＳＴ）によるバックグラウンドデータの生成が必要である。さらに、検査対象アドレスをテストするたびに、検査対象アドレスに書き込まれるテストデータの生成が必要である。また、特許文献２は、シフトレジスタを用いているため特定の検査対象アドレスを検査するまでに要する時間がかかる。
【００１０】
一実施の形態の課題は、サーチ機能のテストを容易化することである。その他の課題および新規な特徴は、本明細書および図面の記載から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施の形態に係る半導体装置は、行列状に配置された複数の連想メモリセルを有するメモリアレイと、メモリアレイの各行に対応するエントリに対応して設けられる複数のマッチ線と、メモリアレイの各列に対応して設けられる複数のサーチ線対と、第１の制御信号に応じてリードコマンド、リードアドレスおよびサーチコマンドを生成する制御信号生成回路と、リードコマンドおよびリードアドレスに基づき、対応するエントリの連想メモリセルに記憶されているセル記憶データの読み出し処理を制御するリード制御回路と、リードアドレスにしたがって読み出されたセル読み出しデータに基づきサーチデータを生成し、当該サーチデータに応じて対応するサーチ線対をそれぞれ駆動する複数のサーチ線ドライバ部と、対応するマッチ線の電位に基づき対応するマッチ線に接続される連想メモリセルのセル記憶データとサーチデータとの一致又は不一致をそれぞれ示すマッチアンプ出力信号を出力する複数のマッチアンプ部と、一致を示すマッチアンプ出力信号に対応するアドレスを出力するプライオリティエンコーダと、を備える。
【００１２】
他の実施の形態に係る半導体装置のテスト方法は、行列状に配置された複数の連想メモリセルを有する半導体装置において、リードアドレスに基づき選択される連想メモリセルから記憶データを読み出し、読み出された記憶データをサーチデータとして、連想メモリのサーチ動作を行い、リードアドレスとサーチ動作の結果得られるアドレスとを比較するアドレス比較動作を行う。
【発明の効果】
【００１３】
一実施の形態に係る半導体装置では、テスト用のサーチデータをＣＡＭアレイに入力することなくサーチ動作を実施することができ、サーチ機能のテスト容易化が図れる。
【図面の簡単な説明】
【００１４】
【図１】図1は、実施の形態１に係るＣＡＭアレイマクロの構成の一例を示すブロック図である。
【図２】図２は、実施の形態１に係る１ビット分のデータ経路図である。
【図３】図３は、ＴＣＡＭセルの構成の一例を示す回路図である。
【図４】図４は、図２のＸセルおよびＹセルの記憶内容とＴＣＡＭデータとの対応表である。
【図５】図５は、マッチアンプ部の構成の一例を示す機能ブロック図である。
【図６】図６は、マッチアンプの回路構成の一例を示す回路図である。
【図７】図７は、センスアンプ回路の回路構成の一例を示す回路図である。
【図８】図８は、サーチ線ドライバ回路の回路構成の一例を示す回路図である。
【図９】図９は、入力バッファ回路の構成の一例を示すブロック図である。
【図１０】図１０は、サーチ結果比較回路の回路構成の一例を示すブロック図である。
【図１１】図１１は、実施の形態１に係るサーチ機能テスト動作フロー図である。
【図１２】図１２は、ＣＡＭアレイマクロによるサーチ機能テストに係る各信号のタイミング図である。
【図１３】図１３は、テスト回路に含まれるアドレス発生回路の変形例の構成の一例を示すブロック図である。
【図１４】図１４は、アドレス発生回路を含むテスト回路を備えるＣＡＭアレイマクロのサーチ機能テスト動作フロー図である。
【図１５】図１５は、所望のアドレス範囲に対するサーチ機能テストに係る各信号のタイミング図である。
【図１６】図１６は、変形例２に従うＣＡＭアレイブロックの構成の一例を示す回路ブロック図である。
【図１７】図１７は、変形例２に係る１ビット分のデータパスの一例を示すデータ経路図である。
【図１８】図１８は、変形例２に係るセンスアンプ部の構成の一例を示す回路構成図である。
【図１９】図１９は、変形例２に係るサーチ線ドライバ回路の構成の一例を示す回路構成図である。
【図２０】図２０は、変形例２に係る入力バッファ部の構成の一例を示す回路ブロック図である。
【図２１】図２１は、実施の形態２に係るＣＡＭアレイマクロの構成の一例を示す機能ブロック図である。
【図２２】図２２は、実施の形態２に係るマッチアンプ出力選択回路の構成の一例を示す回路ブロック図である。
【図２３】図２３は、実施の形態２に係るＣＡＭアレイマクロによるサーチ機能テストに係る各信号のタイミング図である。
【図２４】図２４は、実施の形態２に係るマッチアンプ出力選択回路の変形例の構成を示す回路ブロック図である。
【図２５】図２５は、実施の形態３に係るサーチ線ドライバ回路の構成のブロック図である。
【図２６】図２６は、実施の形態３に係るサーチ線データ生成回路の仕様である。
【図２７】図２７は、実施の形態３に係るサーチ機能テストの各信号のタイミング図である。
【図２８】図２８は、実施の形態４に係るＣＡＭアレイマクロの構成の一例を示す機能ブロック図である。
【図２９】図２９は、実施の形態４に係るサーチ線ドライバ部の構成の一例を示す機能ブロック図である。
【図３０】図３０は、実施の形態４に係るサーチ結果比較回路の構成の一例を示す機能ブロック図である。
【図３１】図３１は、実施の形態４に係るサーチ機能テストの各信号のタイミング図である。
【図３２】図３２は、実施の形態５に係るＣＡＭアレイマクロの構成の一例を示す機能ブロック図である。
【図３３】図３３は、実施の形態５に係るサーチ機能テストの各信号のタイミング図である。
【図３４】図３４は、実施の形態６に係るＣＡＭアレイマクロの構成の一例を示す機能ブロック図である。
【図３５】図３５は、実施の形態６に係るサーチ機能テストの各信号のタイミング図である。
【図３６】図３６は、マスクデータを用いるＣＡＭアレイマクロの参考例を説明する機能ブロック図である。
【図３７】図３７は、参考例に係る入力バッファ回路の構成の一例を示す機能ブロック図である。
【図３８】図３８は、参考例に係るマスクデータレジスタの構成の一例を示す機能ブロック図である。
【図３９】図３９は、参考例に係るサーチ線ドライバ回路の構成の一例を示す機能ブロック図である。
【図４０】図４０は、実施の形態７に係るＣＡＭアレイマクロの構成の一例を示す機能ブロック図である。
【図４１】図４１は、実施の形態７に係る入力バッファ回路の構成の一例を示す機能ブロック図である。
【図４２】図４２は、実施の形態７に係るサーチ線ドライバ回路の構成の一例を示す機能ブロック図である。
【図４３】図４３は、実施の形態７に係るサーチ動作の各信号のタイミング図である。
【図４４】図４４は、有効セルを備えたエントリ構成図である。
【図４５】図４５は、有効セルの構成の一例を示す回路図である。
【図４６】図４６は、有効セルを備えたエントリに対応するマッチアンプ回路の構成の一例を示す回路図である。
【図４７】図４７は、参考例に係るＣＡＭ搭載チップの構成を示す機能ブロック図である。
【図４８】図４８は、実施の形態８に係るＣＡＭアレイマクロの構成の一例を示す機能ブロック図である。
【図４９】図４９は、実施の形態８に係るＣＡＭアレイマクロのサーチ動作時の各信号のタイミング図である。
【発明を実施するための形態】
【００１５】
以下、一実施の形態に係る半導体装置について、図面を参照して詳細に説明する。なお、明細書および図面において、同一の構成要件または対応する構成要件には、同一の符号を付し、重複する説明は省略する。また、図面では、説明の便宜上、構成を省略または簡略化している場合もある。また、実施の形態と各変形例との少なくとも一部は、互いに任意に組み合わされてもよい。
【００１６】
（実施の形態１）
図１は、本実施の形態１の半導体装置の概要を示したブロック図である。本実施の形態１の半導体装置は、ＣＡＭアレイマクロ１を含む。ＣＡＭアレイマクロ１は、ＣＡＭセルアレイ１０、マッチアンプ部２０、プライオリティエンコーダ３０、ローデコーダ４０、センスアンプ部５０、書込みドライバ部６０、サーチ線ドライバ部７０、入力バッファ部８０、出力バッファ部９０、リード制御回路１００、サーチ制御回路１１０、テスト回路１２０およびサーチ結果比較回路１３０を含む。また、本実施の形態１のＣＡＭマクロアレイの１ビット分のデータパスを示す図２を参照しつつ、各構成要素について説明する。
【００１７】
ＣＡＭセルアレイ１０は、行列状に配列された複数のＣＡＭセルを含む。各ＣＡＭセルは１ビットのデータを記憶するとともに、サーチデータとＣＡＭセルに記憶したデータを比較する機能を有する。図１では、ＣＡＭセルアレイ１０は、行数（エントリ数）がｍであり、列数（ビット数）がｎの場合が示されている。ＣＡＭセルアレイ１０の各列に対応して、ｎ個のビット線対（ｂｌ［０］、ｂｌ＿ｎ［０］からｂｌ［ｎ−１］、ｂｌ＿ｎ［ｎ−１］まで）と、ｎ個のサーチ線対（ｓｌ［０］、ｓｌ＿ｎ［０］からｓｌ［ｎ−１］、ｓｌ＿ｎ［ｎ−１］まで）とが設けられる。また、ＣＡＭセルアレイ１０の各行に対応して、ｍ本のマッチ線（ｍｌ［０］からｍｌ［ｍ−１］まで）、図示しないｍ本のＸセルのワード線（ｗｌｘ［０］からｗｌｘ［ｍ−１］まで）および図示しないｍ本のＹセルのワード線（ｗｌｙ［０］からｗｌｙ［ｍ−１］まで）が設けられている。
【００１８】
マッチアンプ部２０は、マッチ線ｍｌ［０］〜ｍｌ［ｍ−１］のそれぞれの電位に対応してマッチアンプ出力信号ｍａｏ［０］〜ｍａｏ［ｍ−１］を出力する。各マッチアンプ出力信号ｍａｏ［０］〜ｍａｏ［ｍ−１］は、対応するマッチ線ｍｌ［０］〜ｍｌ［ｍ−１］に接続されたＣＡＭセルの記憶データとサーチデータとが一致したか否かを示す。
【００１９】
プライオリティエンコーダ３０は、マッチアンプ出力信号ｍａｏ［０］〜ｍａｏ［ｍ−１］を受けて、サーチデータと一致しているエントリが存在したかどうかを示す一致信号Ｈｉｔと、サーチデータと一致しているエントリに対応するアドレスであるヒットアドレスＨｉｔ  ａｄｄ［ｉ：０］とを出力する。サーチデータと一致しているエントリが複数存在した場合には、優先度の高いエントリのアドレスがヒットアドレスとして出力される。
【００２０】
ローデコーダ４０は、後述するリード制御回路１００から出力されたリードアドレスＲＡ［ｉ：０］に基づいて、リードアドレスＲＡに対応するワード線を活性化する。なお、図示されていない書込み制御回路から指示された書込みアドレスに基づいて、ＣＡＭセルへのデータ書き込み動作時に、書込みアドレス信号に対応するワード線を活性化する。
【００２１】
センスアンプ部５０は、データ読み出し時に、読出し対象のＣＡＭセルが接続されたビット線対ｂｌ、ｂｌ＿ｎの電位差を検出、増幅し、セル読み出しデータｒｄとして出力する。
【００２２】
書込みドライバ部６０は、データ書き込み時に、書込み対象のＣＡＭセルが接続されたビット線対ｂｌ、ｂｌ＿ｎを介してＣＡＭセルにデータを書き込む。
【００２３】
サーチ線ドライバ部７０は、サーチ動作時に、各サーチ線対ｓｌ、ｓｌ＿ｎを介してＣＡＭセルアレイ１０の各ＣＡＭセルにサーチデータを転送する。サーチ線ドライバ部７０は、サーチ機能テスト実行時には、セル読み出しデータｒｄをサーチデータとしてＣＡＭセルに転送し、通常のサーチ動作時にはデータ入力端子ｄｉｎを介して供給される入力データをサーチデータとして転送する。
【００２４】
入力バッファ部８０は、ＣＡＭアレイマクロ１のデータ入力端子ｄｉｎを介して与えられる入力データを取り込む。
【００２５】
出力バッファ部９０は、ＣＡＭセルから読み出したセル読み出しデータｒｄを、ＣＡＭセルアレイ１０のデータ出力端子ｄｏｕｔを介して出力する。
【００２６】
リード制御回路１００は、リードコマンド（Ｒ＿ＣＯＭ）とリードアドレス（ＲＡ）に応じて、ＣＡＭセルアレイのデータ読み出し動作を制御する。すなわち、センスアンプ部５０に対してセンスアンプ回路の動作指示を行うとともに、ローデコーダ４０に対してリードアドレスＲＡを供給する。
【００２７】
サーチ制御回路１１０は、サーチコマンド（Ｓ＿ＣＯＭ）に応じて、サーチ動作を制御する。すなわち、マッチアンプ部２０およびサーチ線ドライバ部７０の動作タイミングを制御する。
【００２８】
テスト回路１２０は、ＣＡＭアレイマクロ１の外部から供給されるテスト開始信号ｔｅｓｔ＿ｓｅに応じて、ＣＡＭアレイマクロ１のサーチ機能テスト動作を制御する。テスト回路１２０は、テスト開始信号ｔｅｓｔ＿ｓｅに応じてリードアドレス（ＲＡ）を生成するアドレス発生回路（不図示）を備えており、生成されたリードアドレスＲＡとリードコマンドとを、リード制御回路１００に出力する。また、テスト回路１２０は、テスト開始信号ｔｅｓｔ＿ｓｅに応じて、サーチ制御回路１１０にサーチコマンド（Ｓ＿ＣＯＭ）を出力する。さらに、サーチ線ドライバ部７０に対して、セル読み出しデータｒｄをサーチデータとしてＣＡＭセルに転送することを指示するサーチデータ選択信号ｕｓｅ＿ｒｄを出力する。すなわち、テスト回路１２０は、テスト開始信号ｔｅｓｔ＿ｓｅに応じて、これらコマンドおよび制御信号を生成する制御信号生成機能を有するものである。
【００２９】
サーチ結果比較回路１３０は、プライオリティエンコーダ３０から出力されたヒットアドレスＨＡと、テスト回路１２０から供給されたリードアドレスＲＡとが一致するか否かを比較する。サーチ機能テスト動作時において、リードアドレスＲＡで選択されたＣＡＭセルのセル読み出しデータｒｄがサーチデータとしてＣＡＭセルに転送されるため、ＣＡＭアレイマクロのサーチ機能が正常である限り、リードアドレスＲＡとヒットアドレスＨＡとが一致するはずである。したがって、リードアドレスＲＡとヒットアドレスＨＡとが一致していれば、ＴＣＡＭアレイマクロのサーチ機能は正常であり、不一致であれば、サーチ機能に不良があることが検出できる。
【００３０】
さらに、本実施の形態１に関係する構成要素について詳しく説明する。
【００３１】
図３は、本実施の形態１の半導体装置において、ＣＡＭセルとして用いられるＴＣＡＭ（Ternary CAM）セルの構成の一例を示す回路図である。
【００３２】
図３に示されるように、ＴＣＡＭセルは、二つのＳＲＡＭセル（Static Random Access Memory Cell）１１、１２と、データ比較回路１３とを含む。ＳＲＡＭセル１１をＸセルとも称し、ＳＲＡＭ１２をＹセルとも称する。Ｘセル１１は、内部の記憶ノード対ＮＤ１，ＮＤ１＿ｎに互いに相補となる（一方が“１”のとき他方が“０”となる）１ビットのデータを記憶する。同様に、Ｙセル１２は、内部の記憶ノード対ＮＤ２、ＮＤ２＿ｎに互いに相補となる１ビットのデータを記憶する。
【００３３】
ＴＣＡＭセルは、ビット線対ｂｌ、ｂｌ＿ｎ、サーチ線対ｓｌ、ｓｌ＿ｎ、マッチ線ｍｌ、およびワード線ｗｌｘ、ｗｌｙと接続される。ビット線対ｂｌ、ｂｌ＿ｎは、セルアレイの列方向（Ｙ方向）に延在し、列方向に配列された複数のＴＣＡＭセルが接続される。サーチ線対ｓｌ、ｓｌ＿ｎも同様に、セルアレイの列方向に延在し、列方向に配列された複数のＴＣＡＭセルが接続される。マッチ線ｍｌは、メモリセルアレイの行方向（Ｘ方向）に延在し、セルアレイの行方向に配列された複数のＴＣＡＭセルが接続される。ワード線ｗｌｘ、ｗｌｙは、メモリセルアレイの行方向（Ｘ方向）に延在し、セルアレイの行方向に配列された複数のＴＣＡＭセルが接続される。
【００３４】
Ｘセル１１は、インバータＩＮＶ１、ＩＮＶ２と、ＮチャネルＭＯＳ（Metal Oxide Semiconductor）トランジスタＱ１、Ｑ２とを備える。ＮチャネルＭＯＳトランジスタは、以下、ＮＭＯＳトランジスタとも称す。記憶ノード対ＮＤ１、ＮＤ１＿ｎは、それぞれＮＭＯＳトランジスタＱ１およびＱ２を介してビット線対ｂｌ、ｂｌ＿ｎに接続される。ＮＭＯＳトランジスタＱ１およびＱ２のゲートに接続されるワード線ｗｌｘの電位に応じて、記憶ノード対ＮＤ１、ＮＤ１＿ｎとビット線対ｂｌ、ｂｌ＿ｎがそれぞれ電気的に接続されることにより、データの読み出し又は書込みが行われる。
【００３５】
同様に、Ｙセル１２は、インバータＩＮＶ３、ＩＮＶ４と、ＮＭＯＳトランジスタＱ３、Ｑ４とを備える。記憶ノード対ＮＤ２、ＮＤ２＿ｎは、それぞれＮＭＯＳトランジスタＱ３およびＱ４を介してビット線対ｂｌ、ｂｌ＿ｎに接続される。ＮＭＯＳトランジスタＱ３およびＱ４のゲートに接続されるワード線ｗｌｙの電位に応じて、記憶ノード対ＮＤ２、ＮＤ２＿ｎとビット線対ｂｌ、ｂｌ＿ｎがそれぞれ電気的に接続されることにより、データの読み出し又は書込みが行われる。
【００３６】
データ比較回路１３は、ＮＭＯＳトランジスタＱ５〜Ｑ８を含む。ＮＭＯＳトランジスタＱ５、Ｑ６はマッチ線ｍｌと接地ノードＶＳＳとの間に直列に接続される。ＮＭＯＳトランジスタＱ７、Ｑ８はマッチ線ｍｌと接地ノードＶＳＳとの間に直列に、且つ、直列接続されたＭＯＳトランジスタＱ５、Ｑ６と並列に接続される。ＮＭＯＳトランジスタＱ５、Ｑ７のゲートはそれぞれ記憶ノードＮＤ１、ＮＤ２に接続され、ＮＭＯＳトランジスタＱ６、Ｑ８のゲートはそれぞれサーチ線対ｓｌ、ｓｌ＿ｎに接続される。
【００３７】
図４は、図３のＸセルおよびＹセルの記憶内容とＴＣＡＭデータとの対応関係を示した表である。ＴＣＡＭセルは、２ビットのＳＲＡＭセルを用いて、“０”、“１”および“＊”（ドントケア：don’t care）の３値を格納することができる。具体的には、Ｘセル１１の記憶ノードＮＤ１に“１”が格納され、Ｙセル１２の記憶ノードＮＤ２に“０”が格納されているとき、ＴＣＡＭセルには“０”が格納されているとする。Ｘセル１１の記憶ノードＮＤ１に“０”が格納され、Ｙセル１２の記憶ノードＮＤ２に“１”が格納されているとき、ＴＣＡＭセルには“１”が格納されているとする。Ｘセル１１の記憶ノードＮＤ１およびＹセル１２の記憶ノードＮＤ２のいずれにも“０”が格納されているとき、ＴＣＡＭセルには“＊”（ドントケア）が格納されているとする。Ｘセル１１の記憶ノードＮＤ１およびＹセル１２の記憶ノードＮＤ２のいずれにも“１”が格納されている場合は、当該ＴＣＡＭセルは、無効データが格納されているとして使用されない。
【００３８】
上記ＴＣＡＭセルの構成によれば、ＴＣＡＭセルデータとサーチデータが不一致の場合、例えば、ＴＣＡＭセルデータが“１”（記憶ノードＮＤ１が“０”で、記憶ノードＮＤ２が“１”のとき）で、サーチデータが“０”（サーチ線ｓｌの電位が“０”、サーチ線対ｓｌ＿ｎの電位が“１”）の場合は、ＮＭＯＳトランジスタＱ７、Ｑ８がオン状態となり、プリチャージされたマッチ線ｍｌの電位が低下する。同様に、ＴＣＡＭデータが“０”（記憶ノードＮＤ１が“１”で、記憶ノードＮＤ２が“０”のとき）で、サーチデータが“１”（サーチ線ｓｌの電位が“１”、サーチ線対ｓｌ＿ｎの電位が“０”）の場合には、ＮＭＯＳトランジスタＱ５、Ｑ６がオン状態となり、プリチャージされたマッチ線ｍｌの電位が低下する。このように、サーチデータとＴＣＡＭセルデータが不一致の場合には、マッチ線ｍｌの電位が低下する。
【００３９】
一方、ＴＣＡＭセルデータとサーチデータが一致する場合、例えば、ＴＣＡＭセルデータが“１”且つサーチデータが“１”の場合、もしくは、ＴＣＡＭセルデータが“０”且つサーチデータが“０の場合には、ＮＭＯＳトランジスタＱ５、Ｑ６およびＭＯＳトランジスタＱ７、Ｑ８のいずれもオフ状態となり、マッチ線ｍｌの電位はプリチャージ電位に維持される。同様に、ＴＣＡＭセルデータが“＊ ”の場合は、サーチデータに関わらず、ＮＭＯＳトランジスタＱ５、Ｑ６およびＮＭＯＳトランジスタＱ７、Ｑ８のいずれもオフ状態となり、マッチ線ｍｌの電位はプリチャージ電位に維持される。
【００４０】
図５にマッチアンプ部２０のブロック図を示す。マッチアンプ部２０は、ｍ本のマッチ線ｍｌそれぞれに対応する複数のマッチアンプ回路ＭＡを含む。それぞれのマッチアンプＭＡは、検索動作時に、対応するマッチ線ｍｌの電位に基づいてマッチアンプ出力信号ｍａｏを出力する。
【００４１】
図６に、マッチアンプＭＡの回路構成の一例を示す。マッチアンプＭＡは、ＰＭＯＳトランジスタであるプリチャージトランジスタＱ９、インバータ２１、２２および２３を有する。プリチャージトランジスタＱ９はマッチ線ｍｌに接続され、後述するサーチ制御回路１１が生成するプリチャージイネーブル信号ｍｌｐｒｅ＿ｎに応じてマッチ線ｍｌをプリチャージする。また、マッチアンプＭＡは、後述するサーチ制御回路１１が生成するマッチアンプイネーブル信号ｍａｅが活性化されると、マッチ線ｍｌの電位が、インバータ２１および２２を介してマッチアンプ出力信号ｍａｏとして出力される。例えば、マッチアンプ出力信号ｍａｏが“１”を示すときは、対応するエントリ内のＴＣＡＭセルデータとサーチデータとが一致していることを示し、マッチアンプ出力信号ｍａｏが“０”を示すときは、対応するエントリ内のＴＣＡＭセルデータとサーチデータとが不一致であることを示す。また、マッチアンプイネーブル信号ｍａｅが非活性化されると、インバータ２２および２３によって構成されるラッチ回路により、マッチアンプ出力信号が保持される。
【００４２】
センスアンプ部５０は、複数のビット線対それぞれに対応するセンスアンプ回路ＳＡによって構成される。センスアンプ回路ＳＡは、図７に示すように、ＰＭＯＳトランジスタである転送ゲートＱ１０、Ｑ１１と、比較回路５１と、ＮＡＮＤ回路５２〜５５とを含む。転送ゲートＱ１０，Ｑ１１は、リード制御回路１００から供給されたビット線分離信号ｂｌｉに応じてビット線対ｂｌ、ｂｌ＿ｎと比較回路５１を接続する。比較回路５１は、ＰＭＯＳトランジスタＱ１２，Ｑ１３およびＮＭＯＳトランジスタＱ１４〜Ｑ１６を含む。比較回路５１は、リード制御回路１００から供給されるセンスアンプイネーブル信号ｓａｅに応じて、ビット線対ｂｌ、ｂｌ＿ｎの電位差を増幅し、ＮＡＮＤ回路５２〜５５を介して、セル読み出しデータｒｄとして出力する。
【００４３】
サーチ線ドライバ部７０は、複数のサーチ線対それぞれに対応するサーチ線ドライバ回路によって構成される。図８に、サーチ線ドライバ部７０を構成するサーチ線ドライバ回路ＳＬＤＲＶの回路構成の一例を示す。サーチ線ドライバ回路ＳＬＤＲＶは、データ選択回路７１と、ＡＮＤ回路７２、７３とインバータ７４とを含む。データ選択回路７１は、テスト回路１２０から出力されるサーチデータ選択信号ｕｓｅ＿ｒｄに応じて、対応するセンスアンプ回路ＳＡから出力されるセル読み出しデータｒｄと、入力バッファ部８０から供給される入力データｄｉｒｅｇとのいずれか一方を選択する。そして、サーチ線ドライブイネーブル信号ｓｌｄｅが活性化されたときに、データ選択回路７１によって選択されたデータに基づいて、対応するサーチ線対ｓｌ、ｓｌ＿ｎを駆動する。すなわち、テスト回路１２０からのサーチデータ選択信号ｕｓｅ＿ｒｄに基づいて、ＴＣＡＭセルから読み出されたデータｒｄがサーチデータとしてＴＣＡＭセルへ転送される。
【００４４】
入力バッファ部８０は、各ビットに対応する入力バッファ回路によって構成される。図９に、入力バッファ部８０を構成する入力バッファ回路８１の構成の一例を示す。入力バッファ回路８１は、レジスタによって構成され、クロック信号ＣＬＫに応じてＣＡＭアレイマクロ１のデータ入力端子を介して供給される外部入力データｄｉｎを取り込み、入力データｄｉｒｅｇとしてサーチ線ドライバ回路ＳＬＤＲＶに供給する。
【００４５】
図１０に、サーチ結果比較回路１３０の回路構成の一例を示す。サーチ結果比較回路１３０は、シフトレジスタ１３１と、否定排他的論理和回路１３２＿０〜１３２＿ｉと、ＡＮＤ回路１３３とを含む。シフトレジスタ１３１は、プライオリティエンコーダ３０がヒットアドレスＨＡを出力するまで、リードアドレスＲＡ［ｉ：０］を保持し、否定排他的論理和回路１３２＿０〜１３２＿ｉによる比較実行のタイミングを調整する。否定排他的論理回路１３２＿０〜１３２＿ｉは、リードアドレスＲＡ［ｉ：０］とヒットアドレスＨＡ［ｉ：０］を比較する。このヒットアドレスとリードアドレスの比較結果と、ヒットしたか否かを示すＨｉｔ信号とのＡＮＤ論理演算結果に基づいて、テスト結果信号ｒｅｓｕｌｔが出力される。したがって、サーチ機能テスト動作時において、リードアドレスＲＡで選択されたＣＡＭセルのセル読み出しデータがサーチデータとしてサーチ線に転送されるため、ＣＡＭアレイマクロのサーチ機能が正常である限り、リードアドレスＲＡとヒットアドレスＨＡとが一致するはずである。したがって、本実施の形態では、リードアドレスＲＡとヒットアドレスＨＡが一致する場合には、テスト結果信号ｒｅｓｕｌｔは、ＴＣＡＭアレイマクロのサーチ機能が正常であることを示すレベル、例えば、“１”となる。また、リードアドレスＲＡとヒットアドレスＨＡが不一致の場合には、テスト結果信号ｒｅｓｕｌｔはＴＣＡＭアレイマクロのサーチ機能が不良であることを示すレベル、例えば、“０”となる。
【００４６】
なお、本実施の形態では、サーチ機能テストの開始からヒットアドレスＨＡが出力されるまで３サイクル必要である場合について示しているため、シフトレジスタ１３１は３段設けられているが、これに限定されない。シフトレジスタの段数は、プライオリティエンコーダからヒットアドレスが出力されるサイクル数に応じて調整すればよい。
【００４７】
図１１を参照して、本実施の形態１に係るＣＡＭアレイマクロのテスト動作概要を説明する。
【００４８】
図１１に示されるように、最初に、ＣＡＭアレイマクロへ被検索データを格納するために書込み動作を開始する（ステップＳ１）。ＣＡＭアレイマクロ全体へのデータ入力が完了した後、ＣＡＭアレイマクロに対してテスト開始コマンド（ｔｅｓｔ＿ｓｅ）が入力される。（ステップＳ２）。ＣＡＭアレイマクロは、テスト開始コマンドを受けて、テスト開始コマンドに応じて生成されるリードアドレスに基づきＴＣＡＭセルデータを読み出し、読み出したＣＡＭセルデータをサーチデータとしてサーチ動作を実行する（ステップＳ３）。このリードアドレスがテスト対象エントリに対応している。サーチ動作の結果、サーチデータと一致するエントリが存在するかどうかを示すヒット信号と、ヒットアドレスが出力される。さらに、ＣＡＭセルデータを読み出すときに用いられたリードアドレスと、サーチ結果のヒットアドレスとの一致比較を実施し（ステップＳ４）、比較結果をＣＡＭアレイマクロ外部に出力する（ステップＳ５）。サーチ結果のヒットアドレスが、リードアドレスと一致する場合には、リードアドレスによって示されるテスト対象エントリに関するサーチ機能が正常であることを示し、不一致である場合には、そのサーチ機能に不具合があることを示す。
【００４９】
つまり、本実施の形態においては、ＴＣＡＭアレイマクロのテストに関してテスト用サーチデータを外部から入力する必要がない。ＴＣＡＭセルアレイマクロに被検索データを書き込んだ後は、被検索データをテスト用サーチデータとしてサーチ動作を実行することができるため、書き込んだＴＣＡＭセルデータを変更する必要もなく、サーチ機能のテストが実行可能である。したがって、サーチ機能テストに要する時間も短縮することができる。
【００５０】
図１２は、ＣＡＭアレイマクロ１のサーチ機能テストに係る各信号のタイミング図である。本実施の形態１においては、図４に示すようなＴＣＡＭセルデータ仕様のため、Ｙセル１２のデータを読み出し、その読出しデータを用いてサーチ動作を行えばＴＣＡＭセルデータと一致することになる。したがって、以下、Ｙセルデータを利用するサーチ機能テストについて説明する。
【００５１】
図１２に示すように、テスト開始信号ｔｅｓｔ＿ｓｅが活性化されたことを受け、サーチ機能テスト動作が開始される。
【００５２】
時刻ｔ１から時刻ｔ２のサイクル期間に、テスト開始信号ｔｅｓｔ＿ｓｅに応じて、テスト回路１２がＴＣＡＭセルデータの読み出し開始を示すリードコマンド（Ｒ＿ＣＯＭ）、リードアドレス（ＲＡ［ｉ：０］）およびサーチ開始を示すサーチコマンド（Ｓ＿ＣＯＭ）を生成し出力する。
【００５３】
時刻ｔ２から時刻ｔ３において、ＴＣＡＭセルデータの読み出し動作が実行される。リードアドレスＲＡ［ｉ：０］がデコードされ、対応するワード線が活性化される。上述のとおり、本実施の形態１においては、図４に示すようなＴＣＡＭセルデータ仕様のため、リードアドレスＲＡ［ｉ：０］に対応するワード線ｗｌｙ［ｋ］が活性化される。ワード線ｗｌｙ［ｋ］に接続された複数のＹセル１２の記憶データは、ビット線ｂｌ［ｎ−１：０］、ｂｌ＿ｎ［ｎ−１：０］を介して読み出される。ビット線分離信号ｂｌｉにより、各ビット線対ｂｌ［ｎ−１：０］、ｂｌ＿ｎ［ｎ−１：０］の電位がセンスアンプ部５０に転送され、センスアンプイネーブル信号ｓａｅが活性化されることで、各センスアンプ回路ＳＡが、対応するビット線対ｂｌ［ｎ−１：０］、ｂｌ＿ｎ［ｎ−１：０］の電位差を増幅し、セル読み出しデータｒｄを出力する。
【００５４】
一方、時刻ｔ３から時刻ｔ４において、サーチコマンド（Ｓ＿ＣＯＭ）に基づきＴＣＡＭセルアレイのサーチ動作が実行される。テスト回路１２０は、サーチデータ選択信号ｕｓｅ＿ｒｄを活性化する。サーチ線ドライバ部７０は、サーチデータ選択信号ｕｓｅ＿ｒｄに基づき、セル読み出しデータｒｄ［ｎ−１：０］をサーチデータとして選択する。そして、サーチ線ドライブイネーブル信号ｓｌｄｅが活性化されると、選択されたセル読み出しデータｒｄ［ｎ−１：０］がサーチデータとしてそれぞれのサーチ線対ｓｌ［ｎ−１：０］、ｓｌ＿ｎ［ｎ−１：０］を介してＣＡＭセルに転送される。マッチアンプ部２０は、サーチ線対ｓｌ［ｎ−１：０］、ｓｌ＿ｎ［ｎ−１：０］にサーチデータが転送される前に、プリチャージイネーブル信号ｍｌｐｒｅ＿ｎが非活性化されマッチ線のプリチャージ動作を停止する。マッチ線のプリチャージ動作が停止されると、サーチデータと各エントリに格納されているデータとの比較結果が各マッチ線ｍｌ［ｍ−１：０］に出力される。サーチデータと一致したエントリのマッチ線電位はプリチャージレベルを維持し、不一致のエントリのマッチ線電位は低下する。マッチアンプイネーブル信号ｍａｅが活性化されると、マッチアンプ部２０はそれぞれマッチ線ｍｌ［ｍ−１：０］の電位に応じて、マッチアンプ出力信号ｍａｏ［ｍ−１：０］を出力する。
【００５５】
次いで、時刻ｔ４から時刻ｔ５において、マッチアンプ出力信号ｍａｏ［ｍ−１：０］に基づき、サーチ結果である一致信号Ｈｉｔと、ヒットアドレスＨＡ［ｉ：０］が出力される。サーチ比較結果回路１３は、シフトレジスタを用いてタイミングを調整されたリードアドレスＲＡ［ｉ：０］とヒットアドレスＨＡ［ｉ：０］とを比較し、その比較結果をテスト結果信号ｒｅｓｕｌｔとして出力する。
【００５６】
本実施の形態においては、ＴＣＡＭアレイマクロのテスト用サーチデータを生成し入力する必要がない。ＴＣＡＭセルに書き込まれたデータをテスト用サーチデータとして用いることができるため、ユーザデータをサーチ機能テストに流用することができる。したがって、サーチ機能テストの容易化を図ることが可能となる。さらに、ユーザデータに対するサーチ機能テストを実施することが可能となる。
【００５７】
（変形例１）
図１３に、テスト回路１２０に含まれるアドレス発生回路の変形例を示す。テスト回路１２０に替えて、アドレス発生回路１２１を有するテスト回路を適用することで、所望のアドレス範囲に対するサーチ機能テストを実施することが可能となる。
【００５８】
アドレス発生回路１２１は、スタートアドレスレジスタ１２２とエンドアドレスレジスタ１２３と、インクリメントカウンタ１２４と、比較回路１２５と、論理回路１２３とを含む。スタートアドレスレジスタ１２２およびエンドアドレスレジスタ１２３には、サーチ機能テスト実行前に予めそれぞれスタートアドレスｓｔａｒｔ＿ａｄｄおよびエンドアドレスｅｎｄ＿ａｄｄが設定される。アドレス発生回路１２１は、スタートアドレスＳｔａｒｔ＿ａｄｄを順次インクリメントしてリードアドレスＲＡを発生する。リードアドレスがエンドアドレスレジスタに設定されたエンドアドレスｅｎｄ＿ａｄｄに到達した時点で、インクリメントを停止し、リードアドレスＲＡの更新を止める。図１３においては、８ビットのリードアドレスＲＡを発生するアドレス発生回路の場合を示す。スタートアドレスレジスタおよびエンドアドレスレジスタは、デフォルト値として最小アドレス値（例えば００００＿００００）および最大アドレス値（例えば１１１１＿１１１１）を有しており、事前に各レジスタへの書き込みがない場合にはこれらデフォルト値が用いられる。
【００５９】
図１４に、所望のアドレス範囲に対する自動テストのフローを示し、図１５に、テスト開始および終了のタイミング図を示す。図１４および図１５においては、リードアドレスが８ビットからなる例を示しており、全アドレスに対してテストを行う場合を示す。
【００６０】
図１１に示すフロー図と同様、最初に、ＣＡＭアレイマクロへ被検索データが書き込まれ（ステップＳ１）、ＣＡＭアレイマクロに対してテスト開始コマンドが入力される（ステップＳ２）。ＣＡＭアレイマクロは、リードアドレスＲＡ［７：０］としてアドレス初期値である［００００＿００００］が設定され（ステップＳ２１）、初期値に設定されたリードアドレスに基づいてＴＣＡＭセルデータを読み出し、読み出したＴＣＡＭセルデータをサーチデータとしてサーチ動作を実行する（ステップＳ３１）。サーチ動作の結果得られたヒットアドレスとリードアドレスとの一致比較を実施し、テスト対象のアドレスに対するサーチ機能が正常であるか否かを判定する（ステップＳ４，Ｓ５）。一方、リードアドレスがエンドアドレスか否かが判定され（ステップＳ３２）、最終アドレスでない場合には、リードアドレスがインクリメントされる（ステップＳ３３）。以降、リードアドレスがエンドアドレスになるまで、順次更新されたリードアドレスが生成され、生成されたリードアドレスに基づきＣＡＭセルデータを読み出し、読み出したＣＡＭセルデータをサーチデータとしたサーチ動作、サーチ動作の結果得られたヒットアドレスとリードアドレスとの一致比較動作を繰り返す。リードアドレスがエンドアドレスに到達した場合には、さらなるリードコマンドおよびサーチコマンドは出力されず、テスト終了となる。
【００６１】
このように、所望の範囲のアドレスを対象にしてサーチ機能テストを実施する場合でも、テスト対象を変更するたびにリードアドレスを設定する必要がない。また、テスト対象アドレスに対応するＣＡＭセルにサーチデータと同一のデータを書き込む必要もない。したがって、サーチ機能テストの容易化が図れる。さらに、サーチ機能テストに要する時間も短縮することが可能となる。
【００６２】
（変形例２）
図１６に、ＣＡＭセルアレイが複数ブロックで構成されているＣＡＭアレイマクロへの適用例を示す。また、変形例２のＣＡＭアレイマクロの１ビット分のデータパスを示す図１７を参照しつつ、図１の構成要素とは異なる機能を有する構成について説明し、図１６に示された構成のうち、図１と同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【００６３】
ＣＡＭアレイマクロ１Ａは、ＣＡＭセルアレイ１０Ａ、１０Ｂを含み、それぞれのＣＡＭセルアレイに対して、マッチアンプ部２０Ａ、２０Ｂと、センスアンプ部５０Ａ、５０Ｂと、書込みドライバ部６０Ａ、６０Ｂと、サーチ線ドライバ部７０Ａ、７０Ｂを備える。また、ＣＡＭセルアレイ１０Ａ、１０Ｂに共通して入力バッファ部８０Ａ、出力バッファ部９０が設けられる。
【００６４】
マッチアンプ部２０Ａ、２０Ｂはそれぞれ、対応するＣＡＭセルアレイのマッチ線に接続され、マッチ線の電位に応じて、対応するＣＡＭセルアレイのマッチアンプ出力信号を出力する。
【００６５】
プライオリティエンコーダ３０は、各ＣＡＭセルアレイブロックに対応するマッチアンプ部２０Ａ、２０Ｂからのマッチアンプ出力信号を受けて、サーチデータと一致しているエントリに対応するヒットアドレスを出力する。
【００６６】
センスアンプ部５０Ａ、５０Ｂはそれぞれ、リードアドレスに基づき選択されたＣＡＭセルの記憶データを読み出し増幅してセル読み出しデータｒｄとして出力する。図１８に、センスアンプ部５０Ａ、５０Ｂの構成の一例を示す。図１８に示すセンスアンプ部は、図７に示すセンスアンプ部の構成に加えてセレクタ５６を備える。セレクタ５６は、より出力バッファ部９０に遠い側に配置されたＣＡＭセルアレイブロックに対応するセンスアンプ部からのセル読み出し信号ｒｄ＿ｕと、対応するビット線対ｂｌ、ｂｌ＿ｎの電位差に基づく読み出しデータとのいずれか一方を選択する。本変形例２において、ＣＡＭセルアレイ１０ＢのＣＡＭセルが読み出し対象である場合には、センスアンプ部５０Ａのセレクタ５６は、センスアンプ選択信号ｓａ＿ｓｅｌに基づき、センスアンプ部５０Ｂからの出力信号ｒｄ＿ｕを選択し、セル読み出しデータｒｄとして、入力バッファ８０Ａ、出力バッファ９０に出力する。ＣＡＭセルアレイ１０ＡのＣＡＭセルが読み出し対象である場合には、センスアンプ部５０Ａのセレクタ５６は、ＣＡＭセルアレイ１０ＡのＣＡＭセルに接続されたビット線対ｂｌＡ、ｂｌＡ＿ｎの電位差に基づく読み出しデータを選択し、セル読み出しデータｒｄとして、入力バッファ部８０Ａ、出力バッファ部９０に出力する。すなわち、入力バッファ部８０Ａおよび出力バッファ部９０は、選択されたＣＡＭセルが存在するＣＡＭセルアレイブロックに対応するセンスアンプ部からの出力をセル読み出しデータｒｄとして受信する。
【００６７】
サーチ線ドライバ部７０Ａ、７０Ｂは両方とも、サーチ動作時に、入力バッファ部８０Ａよりサーチデータが供給される。サーチ線ドライバ部７０Ａ、７０Ｂはそれぞれ供給されたサーチデータを、サーチ線対ｓｌＡ、ｓｌＡ＿ｎ、サーチ線対ｓｌＢ、ｓｌＢ＿ｎを介してそれぞれのＴＣＡＭセルに転送する。図１９に、サーチ線ドライバ部７０Ａ、７０Ｂを構成するサーチ線ドライバ回路ＳＬＤＲＶ＿Ａの回路構成の一例を示す。図１９に示すサーチ線ドライバ回路ＳＬＤＲＶ＿Ａは、図８に示すサーチ線ドライバ回路ＳＬＤＲＶの構成と比べて、データ選択回路７１が設けられていない点で異なる。
【００６８】
入力バッファ部８０Ａは、ＣＡＭアレイマクロ１Ａのデータ入力ピンｄｉｎから与えられるサーチデータまたはＣＡＭセルへの書込みデータを取り込み、サーチ線ドライバ部７０Ａ、７０Ｂまたは書込みドライバ部６０Ａ、６０Ｂへ転送する。図２０に入力バッファ部８０Ａの回路構成を示す。図２０に示す入力バッファ部は、図９に示す入力バッファ部の構成に加えて、データ選択回路８２を備える。データ選択回路８２は、サーチ機能テスト実行時にテスト回路１２から出力されるサーチデータ選択信号ｕｓｅ＿ｒｄに応じて、セル読み出しデータｒｄおよび入力サーチデータｄｉｒｅｇのいずれか一方を選択し、サーチ線ドライバ部７０Ａ、７０Ｂへ出力する。
【００６９】
上述のように、データ選択回路８２を入力バッファ部８０Ａに設けることによって、ＣＡＭアレイマクロが複数ブロックのＣＡＭセルアレイで構成されている場合でも、サーチ機能テスト実行時に、セル読み出しデータをサーチデータとしてテストすることが可能となる。
【００７０】
なお、図８に示すように、複数のＣＡＭセルアレイに対応するサーチ線ドライバ部にデータ選択回路を設け、サーチ機能テスト実行時に、セル読み出しデータを各ＣＡＭセルアレイに対してサーチデータとして供給することも可能である。しかしながら、入力バッファ部にデータ選択回路を設けることで、複数のＣＡＭセルアレイに対してセル読み出しデータをサーチデータとして供給するための回路の共通化が図れる。
【００７１】
また、図１に示すＣＡＭアレイマクロ１においては、サーチ線ドライバ部にデータ選択回路を設けて、サーチ機能テスト実行時に、セル読み出しデータを各ＣＡＭセルに対してサーチデータとして転送しているが、変形例２のように、入力バッファ部にデータ選択回路を設けて、入力バッファ部でサーチデータとして転送すべきデータを選択してもよい。
【００７２】
（実施の形態２）
次に、実施の形態２を説明する。実施の形態２では、実施の形態１に係るＣＡＭアレイマクロ１の別の形態となるＣＡＭアレイマクロ１Ｂについて説明する。図２１は、ＣＡＭアレイマクロ１Ｂの構成の一例を示す図であり、テスト回路１２０Ｂおよびマッチアンプ出力選択回路１４０以外の構成は図１に示されるものと同様でよい。そのため、ここでは、それらの説明を省略する。また、図２１に示された構成のうち、図１と同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【００７３】
ＣＡＭアレイマクロは、ＣＡＭセルへの格納データによっては、サーチ動作の結果、複数エントリがヒットする（マルチヒットが発生する）場合がある。複数エントリがヒットする場合には、前述したとおり、プライオリティエンコーダによって、優先度の高いエントリに対応するアドレスが選択される。例えば、プライオリティエンコーダには、アドレス番号の低いアドレスが最も優先順位が高い等の順位付けがなされている。したがって、サーチ機能テスト実行時に、複数エントリがヒットし、且つ、ヒットしたエントリにテスト対象エントリよりも優先順位の高いエントリを含む場合には、テスト対象エントリに対応するアドレスが出力されず、所望のサーチ機能テストの結果が得られない場合がある。
【００７４】
実施の形態２では、テスト対象エントリ以外のサーチ結果を強制的に不一致（ミス）とし、テスト対象エントリのサーチ機能テスト結果が得られるようにする。
【００７５】
具体的には、図２１に示されるように、マッチアンプ出力信号ｍａｏ［０］〜ｍａｏ［ｍ−１］を選択するマッチアンプ出力選択回路１４０を設け、テスト対象エントリに対応するマッチアンプ出力信号のみをプライオリティエンコーダ３０に出力する。
【００７６】
テスト回路１２０Ｂは、テスト開始信号ｔｅｓｔ＿ｓｅに応じて、ＣＡＭアレイマクロ１Ｂのサーチ機能テスト動作を制御する。テスト回路１２０Ｂは、図１に示すテスト回路１２０に比べて、さらに、マッチアンプ出力制御信号ｓｅｌｅｃｔ＿ｍａを生成する点で異なる。
【００７７】
図２２は、マッチアンプ出力選択回路１４０の回路構成の一例を示す図である。マッチアンプ出力選択回路１４０は、テスト回路１２０Ｂが出力するリードアドレスＲＡ［ｉ：０］が入力されるアドレスデコーダ１４１と、アドレスデコーダ１４１の出力信号ｍａ＿ｓｅｌ［０］〜ｍａ＿ｓｅｌ［ｍ−１］とマッチアンプ出力信号ｍａｏ［０］〜ｍａｏ［ｍ−１］をアドレスデコーダ１４１の出力信号に基づき、マッチアンプ出力信号ｍａｏ＿ａ［０］〜ｍａｏ＿ａ［ｍ−１］に変換するためのＡＮＤ回路１４２［０］〜１４２［ｍ−１］およびＯＲ回路１４３［０］〜１４３［ｍ−１］で構成される。
【００７８】
アドレスデコーダ１４１は、テスト回路１２０Ｂが出力するリードアドレスＲＡ［ｉ：０］に基づき、対応するマッチアンプ出力選択信号ｍａ＿ｓｅｌ［ｋ］のみ活性化し、それ以外のマッチアンプ出力選択信号ｍａ＿ｓｅｌを非活性化する。活性化されたマッチアンプ出力選択信号ｍａ＿ｓｅｌ［ｋ］に対応するマッチアンプ出力信号ｍａｏ［ｋ］は、マッチアンプ出力制御信号ｓｅｌｅｃｔ＿ｍａが活性化されている期間に、マッチアンプ出力信号ｍａｏ＿ａ［ｋ］として出力され、プライオリティエンコーダ３０に入力される。一方、非活性化された信号ｍａ＿ｓｅｌに対応するマッチアンプ出力信号ｍａｏは、マッチアンプ出力制御信号ｓｅｌｅｃｔ＿ｍａが活性化されている期間に、対応するマッチアンプ出力信号ｍａｏの値に関わらずミスを示すマッチアンプ出力信号ｍａｏ＿ａ［ｊ］としてプライオリティエンコーダ３０に入力される。すなわち、リードアドレスに対応するテスト対象のエントリ以外のマッチアンプ出力信号ｍａｏ＿ａは、ミスを示す“Ｌ”を出力する。
【００７９】
なお、アドレスデコーダ１４１とローデコーダ４０は、いずれもリードアドレスＲＡ［ｉ：０］に対応するエントリを選択するものであるため、共通化することが可能である。したがって、アドレスデコーダ１４１に代わり、ローデコーダ４０の出力をマッチアンプ出力選択信号ｍａ＿ｓｅｌとして用いてもよい。
【００８０】
マッチアンプ出力制御信号ｓｅｌｅｃｔ＿ｍａが非活性化されている期間は通常動作期間である。通常動作期間においては、アドレスデコーダ１４１の出力に関わらず、マッチアンプ出力信号ｍａｏがそのままマッチアンプ出力信号ｍａｏ＿ａとしてプライオリティエンコーダ３０に入力される。
【００８１】
したがって、テスト対象エントリ以外のマッチアンプ出力結果は強制的にミスとしてプライオリティエンコーダ３０に入力され、テスト対象宇エントリ以外のマッチアンプ出力結果が無効になる。つまり、複数エントリがヒットしたとしても、テスト対象エントリのサーチ結果のみに基づくヒットアドレスを出力することができる。
【００８２】
図２３は、ＣＡＭアレイマクロ１Ｂのサーチ機能テストに係る各信号のタイミング図である。時刻ｔ０からｔ３までの各信号のタイミングは、図１２と変わらないため説明を省略する。
【００８３】
時刻ｔ３から時刻ｔ４において、サーチコマンド（Ｓ＿ＣＯＭ）に基づきＣＡＭセルアレイのサーチ動作が実行される。サーチデータ選択信号ｕｓｅ＿ｒｄは、テスト開始信号ｔｅｓｔ＿ｓｅに応じて生成される。各サーチ線ドライバ回路ＳＬＤＲＶは、時刻ｔ２からｔ３において実行されるＣＡＭセルデータ読み出し動作にて読み出されたセル読み出しデータをサーチデータとして選択し、サーチ線ｓｌ、ｓｌ＿ｎを介してＣＡＭセルに転送する。プリチャージイネーブル信号ｍｌｐｒｅ＿ｎによってマッチアンプ部のプリチャージ動作が停止する期間に、エントリーデータとサーチデータとが一致しているかの比較を行う。マッチアンプ出力制御信号ｓｅｌｅｃｔ＿ｍａが活性化されているため、比較結果に基づくマッチアンプ出力信号ｍａｏのうち、アドレスデコーダで選択されたエントリに対応するマッチアンプ出力信号ｍａｏ［ｋ］のみそのままマッチアンプ出力信号ｍａｏ＿ａ［ｋ］としてプライオリティエンコーダに入力される。アドレスデコーダで選択されなかったエントリに対応するマッチアンプ出力信号（マッチアンプ出力信号ｍａｏ［ｋ］以外）はすべてミスを示すマッチアンプ出力信号ｍａｏ＿ａとしてプライオリティエンコーダに入力される。
【００８４】
時刻ｔ４からｔ５において、プライオリティエンコーダに入力されたマッチアンプ出力信号ｍａｏ＿ａに基づき、サーチ結果である一致信号Ｈｉｔと、ヒットアドレスＨＡ［ｉ：０］が出力される。出力されたヒットアドレスＨＡ［ｉ：０］とリードアドレスＲＡ［ｉ：０］とが比較され、比較結果に基づいてサーチ機能テスト結果信号ｒｅｓｕｌｔが出力される。
【００８５】
本実施の形態においては、実施の形態１と同様に、ＴＣＡＭアレイマクロのテスト用サーチデータを生成し入力する必要がない。さらに、複数エントリがヒットした場合であっても、マッチアンプ出力結果をテスト対象エントリにのみ限定することで、確実にテスト対象エントリに対するサーチ機能テストを実施することが可能となる。
【００８６】
（変形例）
図２４は、図２２に示されるマッチアンプ出力選択回路１４０の別の形態となるマッチアンプ出力選択回路１４０Ａの回路構成の一例を示す。図２４に示された構成のうち、図２２と同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【００８７】
マッチアンプ出力選択回路１４０Ａは、図２２に示されるマッチアンプ出力選択回路１４０と比べて、ＯＲ回路１４４［０］〜１４４［ｍ−１］が追加されている。ＯＲ回路１４４は、対応するエントリの次に優先度の高いエントリのマッチアンプ出力選択信号と、対応するエントリのマッチアンプ出力選択信号に基づいて、対応するエントリのマッチアンプ出力信号をそのままプライオリティエンコーダに供給するか否かを選択するための制御信号を生成する。つまり、リードアドレスＲＡに基づいてマッチアンプ出力選択信号ｍａ＿ｓｅｌ［ｋ］が活性化される場合には、リードアドレスＲＡに対応するエントリよりも優先度の低いエントリに対応するマッチアンプ出力信号ｍａｏ［ｋ］〜ｍａｏ［ｍ−１］は、そのままプライオリティエンコーダ３に出力される。一方、リードアドレスＲＡに対応するエントリよりも優先度の高いエントリに対応するマッチアンプ出力信号ｍａｏ［０］〜ｍａｏ［ｋ−１］は、ミスを示すマッチアンプ出力信号ｍａｏ＿ａ［０］〜ｍａｏ＿ａ［ｋ−１］に変換されてプライオリティエンコーダに供給される。
【００８８】
テスト対象エントリよりも低い優先度のエントリがヒットを示したとしても、テスト対象エントリに対するサーチ動作の結果、ヒットを示していれば、プライオリティエンコーダからはテスト対象エントリのヒットアドレスが出力されるため、サーチ機能テストが可能である。また、マッチアンプ出力選択回路１４０Ａを適用すると、複数エントリがヒットした場合のプライオリティエンコーダの優先度機能をテストすることができる。
【００８９】
本実施の形態２によれば、サーチ機能テストの結果、複数エントリがヒットとなる場合であっても、テスト対象エントリのテスト結果を正しく出力することができる。したがって、ＣＡＭセルにランダムなデータが格納されているとしても、そのデータでサーチ機能動作を行うことができ、網羅的なサーチデータでのサーチテストが容易になる。さらに、網羅的なデータテストが実施できることによって、サーチデータに依存する不具合を早期発見することが可能になる。
【００９０】
（実施の形態３）
次に、実施の形態３を説明する。実施の形態３では、“＊” （ドントケア：don’t care）データが格納されているＴＣＡＭセルを考慮したサーチ機能テストについて説明する。実施の形態１において、ＴＣＡＭセルを構成するＹセルの格納データをサーチデータとして利用するサーチ機能テスト動作を示したが、読み出されたＹセルの格納データのみを利用したサーチ機能テストでは、ドントケアデータを格納しているＴＣＡＭセルに対するテストとしては不十分である。ドントケアデータを格納しているＴＣＡＭセルは、サーチデータに関わらず一致を示す結果を出力するものなので、従来は、ドントケアデータを格納しているＴＣＡＭセルのサーチ機能テストを行う場合には、サーチデータをｓｌ＝“０”、ｓｌ＿ｎ＝“１”としたときのサーチ動作と、サーチデータをｓｌ＝“１”、ｓｌ＿ｎ＝“０”としたときのサーチ動作の２回実施し、データ比較回路のＸセルデータ側回路とＹセルデータ側回路とのテストを行っていた。実施の形態３は、ドントケアデータを格納するＴＣＡＭセルに対するサーチ機能テストの容易化を図るものである。
【００９１】
実施の形態３では、実施の形態１に係るＣＡＭアレイマクロ１の構成要素のうち、サーチ線ドライバ部７０を構成するサーチ線ドライバ回路ＳＬＤＲＶの別の形態となるサーチ線ドライバ回路ＳＬＤＲＶ＿Ｃについて説明する。図２５は、実施の形態３に係るサーチ線ドライバ回路ＳＬＤＲＶ＿Ｃの構成の一例を示す回路構成である。実施の形態３において、サーチ線ドライバ回路ＳＬＤＲＶ＿Ｃ以外の構成は図１に示されるものと同様でよいため、ここでは、それらの説明を省略する。また、図２５に示された構成のうち、図８と同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【００９２】
図２５に示すように、サーチ線ドライバ回路ＳＬＤＲＶ＿Ｃは、図８に示された構成に加えて、サーチ線データ生成回路７５を有し、ＸセルおよびＹセルの両方の格納データを用いて生成したサーチデータをＴＣＡＭセルへ転送する。サーチ線データ生成回路７５は、インバータ７５１、７５３、レジスタ７５２、ＡＮＤ回路７５４およびＯＲ回路７５５を備える。サーチ機能テストの実行において、ＴＣＡＭセルの格納データを読み出し、読み出されたＣＡＭセル格納データｒｄがサーチ線ドライバ回路ＳＬＤＲＶ＿Ｃに入力される。ここでは、Ｘセル、Ｙセルの順にＴＣＡＭセルの格納データが読み出され、先に読み出されたＸセルの格納データがレジスタ７５２に保持される。後に読み出されたＹセルの格納データと、レジスタの保持されたＸセルの格納データに基づいてサーチ線データが生成され、サーチ線ドライブイネーブル信号ｓｌｄｅに応答してサーチ線データが転送される。なお、Ｘセルの格納データを保持するレジスタ７５２はフリップフロップで構成されていてもよいし、ラッチで構成されていてもよい。
【００９３】
図２６に、サーチ線データ生成回路７５の仕様を示す。サーチ機能テスト実行時は、図２６（ａ）に示された仕様にしたがってサーチ線データが生成される。実施の形態１と同様、サーチ機能テスト実行時にはセル読み出しデータｒｄが選択され、サーチ線データ生成回路７５に入力される。ドントケアデータを格納するＴＣＡＭセルの場合、すなわち、ＸセルおよびＹセル共に“０”が格納されている場合には、読み出されたＸセルおよびＹセルの格納データに基づき、サーチ線対ｓｌ、ｓｌ＿ｎを“１”とするサーチ線データが生成される。このように、サーチ線対ｓｌ、ｓｌ＿ｎのサーチ線データを共に“１”にすることで、ＴＣＡＭセルのデータ比較回路１０３のＸセルデータ側回路およびＹセルデータ側回路の両方を同時にテストすることが可能となる。なお、ＴＣＡＭセルが“１”または“０”を格納する場合には、実施の形態１と同様のサーチ線データが、サーチ線対ｓｌ、ｓｌ＿ｎを介してＴＣＡＭセルに転送される。
【００９４】
また、Ｘセル、Ｙセル共に“１”が格納されている場合、ＴＣＡＭセルとしては使用されない状態であるが、本実施の形態３においては、サーチ線データとして、ｓｌ＝“１”、ｓｌ＿ｎ＝“０”としてサーチ機能テストを行うものとする。但し、Ｘセル、Ｙセル共に“１”が格納されている場合には、サーチデータの値に関わらずミスを示す結果になるため、サーチ線データとしてｓｌ＝“０”、ｓｌ＿ｎ＝“１”であってもよい。
【００９５】
図２７に、本実施の形態３によるＣＡＭアレイマクロのサーチ機能テストに係る各信号のタイミング図を示す。
【００９６】
時刻ｔ１のクロックの立上りエッジに応じて、テスト開始信号ｔｅｓｔ＿ｓｅがＴＣＡＭアレイマクロに入力されると、テスト回路からＸセルおよびＹセルに対する２回のリードコマンドとサーチコマンドが出力される。
【００９７】
時刻ｔ２から時刻ｔ３の期間に、Ｘセルに対する読み出し動作が実行され、次の期間（時刻ｔ３〜ｔ４）でＹセルに対する読み出し動作が実行される。
【００９８】
時刻ｔ３から時刻ｔ４の期間、活性化されたサーチデータ選択信号ｕｓｅ＿ｒｄに基づき、Ｘセルの読み出しデータがサーチ線ドライバ回路ＳＬＤＲＶ＿Cに入力され、レジスタ７５２に保持される（ｘ＿ｒｅｇ）。次いで、Ｙセルの読み出しデータがサーチ線ドライバ回路ＳＬＤＲＶ＿Ｃに入力され、レジスタに保持されたＸセルの読み出しデータｘ＿ｒｅｇと、Ｙセルの読み出しデータに基づきサーチ線データが生成され、生成されたサーチ線データに基づきサーチ動作が実施される（時刻ｔ４から時刻ｔ５）。
【００９９】
時刻ｔ５において、プライオリティエンコーダからサーチ結果が出力され、サーチ結果比較回路で、サーチ動作の結果出力されたヒットアドレスＨＡとリードアドレスＲＡとの比較を実施し、サーチ機能が正常か不良かを示す結果信号ｒｅｓｕｌｔを出力する。
【０１００】
本実施の形態３によれば、ドントケアデータを格納しているＴＣＡＭセルに対するサーチ機能テスト実行時に、サーチ動作を１回実施すればよい。これによって、ドントケアデータを格納するＴＣＡＭセルに対するサーチ機能テストの容易化を図りつつ、テスト時間の短縮が図れる。
【０１０１】
（実施の形態４）
実施の形態１乃至３は、サーチ動作で、正しくヒットするかをテストするものである。一方で、サーチ動作で正しくミスをするか、すなわち、ＣＡＭセル格納データと異なるサーチデータでサーチ動作を実施した場合に、正しくミス（不一致）という結果を出力するかどうかの確認も必要である。正しくミスをすることを確認するためには、ＣＡＭセル格納データとは異なるサーチデータとでサーチ動作を行えばよい。ミス判定の点で最も厳しい条件は、サーチデータが、１エントリ内の１ビットのＣＡＭセル格納データとのみ一致しない場合である。したがって、本実施の形態４は、１ビットミスとなるサーチデータでサーチ動作を実行し、正しくミスをするかを確認するためのテストを行う。
【０１０２】
実施の形態４では、実施の形態２に係るＣＡＭアレイマクロ１Ｂの構成の別の形態となるＣＡＭアレイマクロ１Ｄについて説明する。図２８は、実施の形態４に係るＣＡＭアレイマクロ１Ｄの構成の一例を示す図である。実施の形態４において、サーチ線ドライバ部７０Ｄ、テスト回路１２０Ｄ、および、サーチ比較結果回路１３０Ｄ以外の構成は、図２１に示されるものと同様でよい。そのため、ここでは、それらの説明を省略する。
【０１０３】
図２８に示すように、テスト回路１２０Ｄは、ヒット動作を確認するためのサーチ機能テスト開始を指示するテスト開始信号ｔｅｓｔ＿ｓｅ信号に加えて、ミス動作を確認するためのサーチ機能テスト開始を指示するテスト開始信号ｔｅｓｔ＿ｍｉｓｓが入力される。テスト回路１２０Ｄに対してテスト開始信号ｔｅｓｔ＿ｓｅ信号が入力されたときの動作は、実施の形態２のＣＡＭアレイマクロ１Ｄの動作と同様であるため、その説明を省略する。テスト回路１２０Ｄは、テスト開始信号ｔｅｓｔ＿ｍｉｓｓを受信すると、ヒット動作確認用のサーチ機能テストと同様、リードアドレス（ＲＡ）を生成し、リード制御回路１００に対してリードコマンド（Ｒ＿ＣＯＭ）およびリードアドレス（ＲＡ）を出力する。また、テスト回路１２０Ｄは、テスト開始信号ｔｅｓｔ＿ｍｉｓｓに応答して、サーチ制御回路１１０に対して（ｎ＋１）回サーチコマンド（Ｓ＿ＣＯＭ）を出力する。さらに、テスト回路１２０Ｄは、サーチ線ドライバ部７０Ｄに対して、セル読み出しデータｒｄをサーチデータとしてＣＡＭセルに転送することを指示するサーチデータ選択信号ｕｓｅ＿ｒｄと、ミス動作を確認するためのサーチデータ生成を指示する信号ｔｅｓｔ＿ｍｉｓｓ＿ａとを出力する。
【０１０４】
図２９は、サーチ線ドライバ部７０Ｄの構成を示すものである。サーチ線ドライバ部７０Ｄは、複数のサーチ線対それぞれに対応するサーチ線ドライバ回路ＳＬＤＲＶ＿Ｄを含む。各サーチ線ドライバ回路ＳＬＤＲＶ＿Ｄは、図８に示されるサーチ線ドライバ回路ＳＬＤＲＶの構成に加えて、ミスデータ生成回路７６を含む。なお、図２９に示される各サーチ線ドライバ回路ＳＬＤＲＶ＿Ｄの構成のうち、図８と同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【０１０５】
ミスデータ生成回路７６は、選択回路７６１と、インバータ７６２と、レジスタ７６３とを含む。
【０１０６】
選択回路７６１は、レジスタ７６３の出力に応じて、データ選択回路７１で選択されたデータを反転させる。例えば、レジスタ７６３の出力値が“１”を示すときには、データ選択回路７１で選択されたデータを反転し、反転したデータをサーチデータとしてＣＡＭセルに転送する。レジスタ７６３の出力値が“０”を示すときには、データ選択回路７１で選択されたデータを反転せずにサーチデータとしてＣＡＭセルに転送する。
【０１０７】
レジスタ７６３は、隣接するサーチ線ドライバ回路ＳＬＤＲＶ＿Ｄのレジスタ７６３と接続される。サーチ線ドライバ回路ＳＬＤＲＶ＿Ｄ［０］のレジスタ７６３は、テスト回路１２０Ｄからミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａを受信し、クロック信号ＣＬＫに応答して隣接するサーチ線ドライバ回路へミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａを伝える。例えば、隣接するサーチ線ドライバ回路ＳＬＤＲＶ＿Ｄ［１］のレジスタ７６３は、サーチ線ドライバ回路ＳＬＤＲＶ＿Ｄ［０］からのミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａを受け取り、クロック信号ＣＬＫに応答して、隣接するサーチ線ドライバ回路ＳＬＤＲＶ＿Ｄ［２］へミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａを伝える。すなわち、ミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａは、各サーチ線ドライバ回路ＳＬＤＲＶ＿Ｄに順次転送される。したがって、サーチデータ選択信号ｕｓｅ＿ｒｄがセル読み出しデータを選択することを示すときには、セル読み出しデータの各ビットｒｄ［０］〜ｒｄ［ｎ−１］のうちサーチ線ドライバ回路ＳＬＤＲＶ＿Ｄのレジスタ７６３の出力が“１”を示すビットのみデータが反転され、結果、セル読み出しデータに対する１ビットミスのサーチデータが生成される。レジスタ出力値“１”が順次転送されることで、１つのセル読み出しデータからｎ個の１ビットミスのサーチデータが生成され、ｎ個の１ビットミスのサーチデータが順次ＣＡＭセルに転送される。
【０１０８】
図３０は、サーチ結果比較回路１３０Ｄの構成を示すものである。サーチ結果比較回路１３０Ｄは、図１０に示されるサーチ結果比較回路１３０の構成に加えて、ＮＡＮＤ回路１３４、１３５、ＡＮＤ回路１３７および否定排他的論理和（ＸＮＯＲ）回路１３６を有する。
【０１０９】
ＮＡＮＤ回路１３４は、ヒットアドレスＨＡとリードアドレスＲＡの各ビットの比較結果のＮＡＮＤ論理演算結果をＮＡＮＤ回路１３５に出力する。ＮＡＮＤ回路１３５は、ＮＡＮＤ回路１３４の出力とテスト回路１２０Ｄによって生成されるヒット確認信号Ｈｉｔ＿ｃｈｅｃｋとの論理演算結果をＡＮＤ回路１３７に出力する。ＸＮＯＲ回路１３６は、サーチ動作の結果ヒットしたことを示すヒット信号Ｈｉｔとヒット確認信号Ｈｉｔ＿ｃｈｅｃｋとの論理演算結果をＡＮＤ回路１３７に出力し、ＡＮＤ回路１３７は、ＮＡＮＤ回路１３５の出力とＸＮＯＲ回路１３６の出力結果に基づいて、テスト結果信号ｒｅｓｕｌｔを出力する。なお、ヒット確認信号Ｈｉｔ＿ｃｈｅｃｋは、ヒットアドレスＨＡおよびヒット信号Ｈｉｔに示される結果が、ヒット動作を確認するものか、ミス動作を確認するものかを判別するために使われる。したがって、テスト結果信号ｒｅｓｕｌｔは、ヒット確認信号Ｈｉｔ＿ｃｈｅｃｋが活性化されている場合は、ヒット動作を確認するためのテスト結果として出力され、ヒット信号Ｈｉｔ＿ｃｈｅｃｋが非活性化されている場合は、ミス動作を確認するためのテスト結果として出力される。
【０１１０】
図３１に、ＣＡＭアレイマクロ１Ｄのサーチ機能テストに係る各信号のタイミング図を示す。なお、テスト開始信号ｔｅｓｔ＿ｓｅに基づくサーチ機能テストの各信号のタイミングについては、実施の形態１と同様であるので説明を省略する。
【０１１１】
ミス動作を確認するためのサーチ機能テストは、テスト開始信号ｔｅｓｔ＿ｍｉｓｓが活性化されることで開始する。時刻ｔ１から時刻ｔ２において、リードコマンドとサーチコマンドが発行され、時刻ｔ２から時刻ｔ３においてリードアドレスＲＡ［ｉ：０］に基づくリード動作が実行される。リード動作により読み出されたセル読み出しデータｒｄ［ｎ−１：０］は、サーチデータ選択信号ｕｓｅ＿ｒｄに基づいて、サーチ線ｓｌ［ｎ−１：０］、ｓｌ＿ｎ［ｎ−１：０］を介してＣＡＭセルへ転送され、セル読み出しデータｒｄ［ｎ−１：０］をサーチデータとしてサーチ動作が実行される（時刻ｔ３〜時刻ｔ４）。そのサーチ結果であるヒットアドレスＨＡとヒット信号Ｈｉｔは、時刻ｔ４から時刻ｔ５において出力され、サーチ結果比較回路にてヒット動作の正常性が確認される。このように、ミス動作を確認するためのサーチ機能テストは最初に、ヒット動作の正常性を確認する
テスト回路１２０Ｄは、時刻ｔ２以降の各サイクルで、サーチコマンドのみをｎ回発行する。また、テスト回路１２０Ｄは、時刻ｔ３のクロックＣＬＫの立上りに応じてミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａを生成する。ミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａは最初にサーチ線ドライバ回路ＳＬＤＲＶ＿Ｄ［０］に入力され、セル読み出しデータｒｄの最下位ビットであるｒｄ［０］を反転させる。セル読み出しデータの最下位ビット以外はデータ反転されないため、最下位ビットのみミスとなる１ビットミスのサーチデータがＣＡＭセルに転送される（時刻ｔ４から時刻ｔ５）。１ビットミスのサーチデータによるサーチ動作を実行しているため、ミスと正しく判定していれば、ヒット信号Ｈｉｔは非活性化される（時刻ｔ５）。また、時刻ｔ５において、ヒット確認信号Ｈｉｔ＿ｃｈｅｃｋが非活性状態であるため、サーチ結果比較回路は、サーチ結果が正しくミスしていることを示すテスト結果信号ｒｅｓｕｌｔを出力する。
【０１１２】
図２９のサーチ線ドライバ回路ＳＬＤＲＶ＿Ｄに示すように、ミスデータ生成信号ｔｅｓｔ＿ｍｉｓｓ＿ａはサイクルごとに隣接するサーチ線ドライバ回路へ転送されるため、時刻ｔ５から時刻ｔ６のサイクルでは、セル読み出しデータの１ビット目のｒｄ［１］のみがデータ反転するサーチデータが生成されＣＡＭセルに転送され、サーチ動作が実施される。すなわち、２回目から（ｎ＋１）回目のサーチコマンドに応じて、順次、セル読み出しデータの最下位ビットから最上位ビットまで１ビットずつデータ反転した１ビットミスのサーチデータが生成され、サーチ動作が実施される。
【０１１３】
本実施の形態によれば、ミス動作を確認するためのサーチ機能テストにおいて、セル読み出しデータに対して１ビットミスとなるサーチデータが自動生成される。したがって、ミスさせるためのサーチデータを外部にて生成する必要がないため、ミス動作を確認するためのサーチ機能テストの容易化が図れる。
【０１１４】
（実施の形態５）
実施の形態１乃至４では、ＣＡＭアレイマクロ内のテスト回路にてリードアドレスを生成し、テスト回路を生成したリードアドレスに基づきＣＡＭセル格納データを読み出し、サーチ結果の比較を行っていた。これに対して、実施の形態５は、外部からアドレスを
入力し、入力されたアドレスに基づいてサーチ機能テストを行う。
【０１１５】
実施の形態５では、実施の形態１に係るＣＡＭアレイマクロ１の構成の別の形態となるＣＡＭアレイマクロ１Ｅについて説明する。
【０１１６】
図３２は、実施の形態５に係るＣＡＭアレイマクロ１Ｅを示す。ＣＡＭアレイマクロ１Ｅは、テスト回路１２０Ｅ以外の構成は、図１に示されるものと同様でよいため、ここでは、それらの説明を省略する。
【０１１７】
図３２に示されるＣＡＭアレイマクロ１Ｅは、図１に示されるＣＡＭアレイマクロ１と比べて、アドレス入力端子がリード制御回路１００とサーチ結果比較回路１３０に直接接続される点で異なる。また、テスト回路１２０Ｄは、リード制御回路に対して、リードコマンドＲ＿ＣＯＭのみを発行する。この構成によって、特定エントリに対するサーチ機能テストを実施したい場合には、ＣＡＭアレイマクロ外部からリードアドレスａｄｄ［ｉ：０］を入力し、そのアドレスで選択されたＣＡＭセル格納データを読み出し、読み出されたＣＡＭセル格納データを用いたサーチ動作を実施すればよい。サーチ結果を、サーチ結果比較回路に入力されたリードアドレスａｄｄ［ｉ：０］と比較することによって、サーチ機能の正常性がテストできる。
【０１１８】
図３３に、ＣＡＭアレイマクロ１Ｅのサーチ機能テストに係る各信号のタイミング図を示す。
【０１１９】
時刻ｔ１の立上りクロックＣＬＫに応じて、テスト開始信号ｔｅｓｔ＿ｓｅとリードアドレスａｄｄ［ｉ：０］がＣＡＭマクロアレイ１Ｄに入力される。テスト回路１２０Ｄは、テスト開始信号ｔｅｓｔ＿ｓｅに応じてリードコマンドＲ＿ＣＯＭおよびサーチコマンドＳ＿ＣＯＭをそれぞれリード制御回路１００およびサーチ制御回路１１０へ出力する（時刻ｔ１〜時刻ｔ２）。時刻ｔ２から時刻ｔ３のサイクルで、リードコマンドおよびリードアドレスａｄｄ［ｉ：０］に基づきリード動作が実行される。次のサイクル（時刻ｔ３〜時刻ｔ４）では、実施の形態１と同様にリード動作の結果読み出されたＣＡＭセル読み出しデータを用いたサーチ動作が実行され、時刻ｔ４〜時刻ｔ５のサイクルにおいて、プライオリティエンコーダからサーチ結果（Ｈｉｔ／ＨＡ［ｉ：０］）が出力される。プライオリティエンコーダからのサーチ結果と外部から入力されたリードアドレスとの比較を行い、サーチ動作が正常か不良かを示すテスト結果信号ｒｅｓｕｌｔを出力する。
【０１２０】
実施の形態５によれば、特定エントリに対するサーチ機能テストが容易化される。さらに、連続したサーチ機能テストを行うにあたって、ランダムなアドレスを順次入力することで、テスト対象となるエントリをランダムに選択しサーチ機能テストを実行することが可能となる。テスト対象となるエントリをランダムに選択できることで、実製品での使用状況を再現したテストを行うことができる。また、アドレスを順次インクリメントもしくはデクリメントすることでテスト対象を選択する場合には発生しない不良をも検出することが可能になり、信頼性の向上につながる。
【０１２１】
（実施の形態６）
半導体メモリを搭載したチップおよびシステムでは、メモリセルに格納したデータの信頼性を向上させるために、エラー検出および訂正（ＥＣＣ：Error Check and Correction）機能が搭載されている場合がある。ＥＣＣ機能により、メモリセル格納データの訂正可能なエラーを検知した場合には、メモリセルは、ＥＣＣ機能により訂正されたデータで更新される。一方、メモリセル格納データの訂正不可能なエラーを検知した場合には、チップ外部へエラー発生を発信し、データ破壊によるシステム不具合を回避することが可能となる。ＣＡＭアレイマクロを搭載したチップおよびシステムに関しても、ＥＣＣ機能を備えることでＣＡＭセルデータの信頼性を向上させている。ＥＣＣ機能では、メモリセルデータの破壊や、書込みおよび読み出し機能の正常性は確認することが可能である。しかしながら、ＣＡＭアレイマクロには重要なサーチ機能の正常性を確認することはできない。
【０１２２】
実施の形態６は、ＥＣＣ動作時に、ＣＡＭセル格納データを利用したサーチ機能テストをも行うものである。
【０１２３】
図３４に、本実施の形態６に係るメモリシステムである。メモリシステムは、ＥＣＣ回路１５０と、ＣＡＭアレイマクロ１Ｆとを備える。
【０１２４】
ＥＣＣ回路１５０は、ＥＣＣを実施するにあたって、ＣＡＭアレイマクロ１Ｆに対してリードコマンドｒｅａｄとリードアドレスａｄｄ［ｉ：０］を出力し、これらに基づいて読み出された出力データｄｏｕｔ［ｎ−１：０］を受け取る。受け取った出力データｄｏｕｔからエラー有無およびエラー訂正可否の確認を実施し、その結果を出力する。
【０１２５】
ＣＡＭアレイマクロ１Ｆは、実施の形態５のＣＡＭアレイマクロ１Ｅに比べて、ＥＣＣ回路１５０からリードコマンドが供給されるテスト回路１２０Ｆを有している点で異なる。実施の形態６のＣＡＭアレイマクロ１Ｆにおいて、テスト回路１２０Ｆ以外の構成は、図３２に示されるものと同様でよい。そのため、ここでは、図３２に示されるものと同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【０１２６】
ＣＡＭアレイマクロ１Ｆにおいて、リード制御回路１００は、ＥＣＣ回路１５０からリードコマンドｒｅａｄとアドレスａｄｄ［ｉ：０］とを受け、これらに基づいてＣＡＭセルアレイ１０に対するリード動作を制御する。テスト回路１２０Ｆは、活性化されたテスト開始信号ｔｅｓｔ＿ｓｅが入力されている期間に、ＥＣＣ回路１５０からリードコマンドｒｅａｄが入力されるとサーチコマンドＳ＿ＣＯＭとサーチデータ選択信号ｕｓｅ＿ｒｄを出力する。さらに、実施の形態５と同様に、サーチ結果比較回路１３０は、ＥＣＣ回路１５０から供給されたアドレスａｄｄ［ｉ：０］を受け、アドレスａｄｄ［ｉ：０］とサーチ結果（ヒットアドレスＨＡ）との一致比較を行う。
【０１２７】
ＣＡＭアレイマクロ１Ｆは、ＥＣＣ回路１５０から与えられるリードコマンドｒｅａｄに応じてリード動作を開始する。リード動作の結果、読み出されたＣＡＭセルデータは、ＥＣＣ回路１５０にデータ出力信号ｄｏｕｔ［０］〜ｄｏｕｔ［ｎ−１］として出力される一方、サーチ機能テスト時のサーチデータとして用いることが可能である。すなわち、ＣＡＭアレイマクロ１Ｆは、ＥＣＣ動作時に実施されるリード動作を利用して、サーチ機能テストを行うことが可能である。
【０１２８】
図３５は、実施の形態６に係る各信号のタイミング図である。
【０１２９】
ＣＡＭアレイマクロ１Ｆは、ＥＣＣ回路１５０からリードコマンドｒｅａｄとリードアドレスとなるアドレスａｄｄ［ｉ：０］を受ける（時刻ｔ１〜時刻ｔ２）とともに、ＣＡＭアレイマクロ１Ｆ外部よりテスト開始信号ｔｅｓｔ＿ｓｅを受ける。次のサイクル（時刻ｔ２〜ｔ３）において、テスト回路１２０Ｆは、ＥＣＣ回路１５０からのリードコマンドおよびテスト開始信号ｔｅｓｔ＿ｓｅに基づきサーチ制御回路１１０へサーチコマンドＳ＿ＣＯＭを発行する。リード制御回路１００は、ＣＡＭセルアレイへのリード動作を制御する。時刻ｔ３から時刻ｔ４のサイクルにおいて、読み出されたＣＡＭセルデータは、ＥＣＣ回路１５０に対する出力データｄｏｕｔ［ｎ−１：０］として出力される。一方で、テスト回路１２０Ｆによって出力されるサーチデータ選択信号ｕｓｅ＿ｒｄに基づき、読み出されたＣＡＭセルデータがサーチ機能テストのためのサーチデータとしてＣＡＭセルに転送される。セル読み出しデータを用いたサーチ動作結果は、次のサイクル（時刻ｔ４〜ｔ５）で、プライオリティエンコーダからヒット信号Ｈｉｔ、ヒットアドレスＨＡ［ｉ：０］として出力され、サーチ結果比較回路１３０が、ＥＣＣ回路１５０から受け取ったアドレスａｄｄ［ｉ：０］とヒットアドレスＨＡ［ｉ：０］とを比較することで、サーチ動作が正常か不良かを示すテスト結果信号ｒｅｓｕｌｔが出力される。
【０１３０】
上述のように、ＥＣＣ回路を備えるメモリシステムは、ＥＣＣ実行時のリード動作を利用して、ＣＡＭアレイマクロのサーチ機能テストを実行することができ、ＴＣＡＭアレイマクロの信頼性を向上させることができる。
【０１３１】
（実施の形態７）
実施の形態７は、実施の形態１乃至６に記載されたセル読み出しデータを用いたサーチ動作を実施するものである。
【０１３２】
ＣＡＭアレイマクロを搭載した半導体チップでは、サーチデータのそれぞれのビットに対応するマスクデータを用いて、サーチデータの一部分のみを比較対象とする機能を持たせることができる。マスクデータは、サーチデータの各ビットを比較対象とするか否かを示す情報であり、レジスタに保持されてもよいし、サーチ動作時にサーチデータと共に外部から入力されてもよい。マスクされたサーチデータのビットは、ＣＡＭセル格納データに関わらず一致を示す結果を出力することになる。また、マスクデータはビット毎の設定でも、複数ビット単位での設定でも問題ないが、ここでは、ビット単位で設定されるマスクデータを用いる場合について説明する。
【０１３３】
まず、マスクデータを用いるＣＡＭアレイマクロの参考例について説明する。
【０１３４】
図３６に示される参考例のＣＡＭアレイマクロ３００は、ＣＡＭセルアレイ１０、マッチアンプ部２０、プライオリティエンコーダ３０、ローデコーダ４０、センスアンプ部５０、書込みドライバ部６０、サーチ線ドライバ部３４０、マスクデータ保持部３３０、入力バッファ部３２０、出力バッファ部９０、リード制御回路１００、および、サーチ制御回路３１０を含む。サーチ制御回路３１０、入力バッファ部３２０、マスクデータ保持部３３０およびサーチ線ドライバ部３４０以外の構成は、図１に示されるものと同様でよいため、それらに対しては同一の符号を付し、その説明を省略する。
【０１３５】
サーチ制御回路３１０は、サーチコマンドＳｅａｒｃｈ  Ｃｏｍｍａｎｄ、活性化されたマスクデータ使用コマンドｍｓｋ＿ｓｅｌおよびマスクデータ選択アドレスｍｓｋ＿ａｄｄ［ｉ：０］を受信すると、マスクデータレジスタのデータを利用したサーチ動作を実施するために、マスクデータレジスタ使用信号ｍｓｋ＿ｒｅｇ＿ｓｅｌおよびマスクデータレジスタ選択アドレスｍｓｋ＿ｒｅｇ＿ａｄｄ［ｉ：０］を生成し、マスクデータ保持部２３０に出力する。
【０１３６】
入力バッファ部３２０は、各ビットに対応する入力バッファ回路によって構成される。図３７に、入力バッファ部３２０を構成する入力バッファ回路３２１を示す。入力バッファ回路３２１は、外部データ用入力レジスタ３２２と、マスクデータ用入力レジスタ３２３とを含む。外部データ用入力レジスタ３２２は、クロック信号ＣＬＫに応じてＣＡＭアレイマクロ外部から供給される外部入力データｄｉｎを取り込み、入力データｄｉｒｅｇとして出力する。同様に、マスクデータ用入力レジスタ３２３は、クロック信号ＣＬＫに応じてＣＡＭマクロアレイ外部から供給される外部入力マスクデータｍｄを取り込み、入力マスクデータｍｄｒｅｇとして出力する。なお、外部入力マスクデータｍｄは、サーチコマンド毎に外部からマスクデータを設定する場合に用いられる。
【０１３７】
図３８に、参考例に係るマスクデータ保持部３３０を構成するマスクデータレジスタ３３１を示す。マスクデータ保持部３３０は予め使用頻度の高いマスクデータセットを保管しておく場合に用いられる。図３８において、マスクデータレジスタ３３１は、４セットのマスクデータを有する構成を示す。マスクデータレジスタ３３１は、各セットのマスクデータを保管するレジスタ３３２＿０〜３３２＿３と、マスクデータレジスタ選択アドレスｍｓｋ＿ａｄｄ［ａ：０］に基づきいずれか一つのレジスタを選択する選択回路３３３と、マスクデータレジスタ使用信号ｍｓｋ＿ｒｅｇ＿ｓｅｌに応じてマスクデータレジスタ３３１のマスクデータおよび入力マスクデータｍｄｒｅｇのいずれか一方を選択する選択回路３３４を有する。選択回路３３４にて選択されたマスクデータをマスク信号ｍｓｋとして出力する。
【０１３８】
図３９は、参考例に係るサーチ線ドライバ部３４０を構成するサーチ線ドライバ回路３４１を示す。サーチ線ドライバ回路３４１は、ＡＮＤ回路３４２，３４３，３４６，３４７およびインバータ回路３４５を含む。サーチ線ドライバ回路３４１は、入力データ信号ｄｉｒｅｇとマスク信号ｍｓｋに応じて生成されたサーチデータをＣＡＭセルに転送する。本参考例ではマスク信号ｍｓｋが“０”のときに、対応するサーチデータをマスクすることを示す。サーチ線ドライブイネーブル信号ｓｌｄｅが活性化状態のとき、マスク信号ｍｓｋがサーチデータのマスクを示す“０”であれば、入力サーチデータに関わらずサーチ線ｓｌ、ｓｌ＿ｎが共に“０”を出力する。すなわち、ＣＡＭセル格納データとの比較結果が常にヒットを示すサーチデータがＣＡＭセルに転送されることとなる。マスク信号ｍｓｋがサーチデータのマスクをしないことを示す“１”であれば、入力サーチデータによるサーチ動作が実施される。
【０１３９】
このように、マスクデータ保持部３３０をマスクデータレジスタ３３１で構成する場合、マスクデータセットは決められたセット数しか設定できない。より多くのマスクデータセットを保持しておきたい場合には、マスクデータレジスタの数を増加させる必要があり、結果、チップ面積が増加してしまう。
【０１４０】
そこで、本実施の形態７は、実施の形態１のようにセル読み出しデータでのサーチ動作を実施する機能を用いて、マスクデータセットを柔軟に設定可能にするものである。
【０１４１】
図４０は、本実施の形態７に係るＣＡＭアレイマクロ２を示す。ＣＡＭアレイマクロ２は、ＣＡＭセルアレイ２００、マッチアンプ部２０、プライオリティエンコード３０、ローデコーダ４０、サーチ制御回路２１０、リード制御回路２５０、センスアンプ部５０、書込みドライバ部６０、サーチ線ドライバ部２４０、入力バッファ部２２０および出力バッファ部９０を含む。サーチ制御回路２１０、リード制御回路２５０、入力バッファ部２２０およびサーチ線ドライバ部２４０以外の構成は、図１に示されるものと同様でよいため、それらに対しては同一の符号を付し、その説明を省略する。
【０１４２】
ＣＡＭアレイマクロ２は、ＣＡＭセルアレイの一部エントリをマスクデータ格納領域として利用する。例えば、ＣＡＭセルアレイ２００のエントリ０番地からエントリ（ｔ−１）番地までをマスクデータ格納領域２３０とする。また、参考例と同様に、マスクすべきビットは、ＣＡＭアレイマクロ外部から供給されるマスクデータｍｄによっても設定可能である。
【０１４３】
サーチ制御回路２１０は、サーチコマンドｓｅａｒｃｈと共にマスクサーチ動作の実施を指示するマスクデータ使用コマンドｍｓｋ＿ｓｅｌを受けると、リード制御回路２５０にリードコマンドｒｅａｄ＿ｃｏｍを出力する。また、合わせて受信したマスクデータ選択アドレスｍｓｋ＿ａｄｄ［ｉ：０］に基づいてリード制御回路２５０へマスクデータレジスタ選択アドレスｍｓｋ＿ｒｅｇ＿ａｄｄ［ｉ：０］を出力する。さらに、サーチ線ドライバ部２４０に対して、サーチ線ドライブイネーブル信号ｓｌｄｅおよびマスクデータレジスタ使用信号ｍｓｋ＿ｒｅｇ＿ｓｅｌを出力する。
【０１４４】
リード制御回路２５０は、マスクデータレジスタ選択アドレスｍｓｋ＿ｒｅｇ＿ａｄｄ［ｉ：０］をリードアドレスとしてリード動作の制御を行う。
【０１４５】
入力バッファ部２２０は、各ビットに対応する入力バッファ回路２２１によって構成される。図４１に入力バッファ部２２０を構成する入力バッファ回路２２１の回路構成の一例を示す。入力バッファ回路２２１は、参考例に示す入力バッファ回路３２１と同様の構成であり、外部データ用入力レジスタ２２２とマスクデータ用入力レジスタ２２３とを含む。外部データ用入力レジスタ２２２は、クロック信号ＣＬＫに応じて、ＣＡＭアレイマクロデータ外部から供給される外部入力データｄｉｎを取込み、入力データｄｉｒｅｇを出力する。同様に、マスクデータ入力レジスタ２２３は、クロック信号ＣＬＫに応じて外部入力マスクデータｍｄを取込み、入力マスクデータｍｄｒｅｇを出力する。
【０１４６】
サーチ線ドライバ部２４０は、複数のサーチ線対それぞれに対応するサーチ線ドライバ回路ＳＬＤＲＶ＿Ｇによって構成される。図４２にサーチ線ドライバ部２４０を構成するサーチ線ドライバ回路ＳＬＤＲＶ＿Ｇの回路構成の一例を示す。サーチ線ドライバ回路ＳＬＤＲＶ＿Ｇは、データ選択回路２４１、ＡＮＤ回路２４２〜２４５およびインバータ回路２４６を含む。データ選択回路２４１は、サーチ制御回路２１０から供給されたマスクデータレジスタ使用信号ｍｓｋ＿ｒｅｇ＿ｓｅｌに基づき、マスクデータ保管領域２３０から読み出されたセル読み出しデータｒｄおよび入力マスクデータｍｄｒｅｇのいずれか一方を選択し、マスク信号ｍｓｋとして出力する。つまり、データ選択回路２４１によって、外部入力されるマスクデータを用いるのか、ＣＡＭセルアレイ内のマスクデータ保管領域に格納されたマスクデータを用いるのかが選択される。サーチ線ドライバ回路ＳＬＤＲＶ＿Ｄは、図４２（ｂ）に示すように、サーチ線ドライブイネーブル信号ｓｌｄｅが活性化状態のとき、マスク信号ｍｓｋがサーチデータのマスクを示す“０”であれば、入力データｄｉｒｅｇに関わらずサーチ線ｓｌ、ｓｌ＿ｎを共に“０”とする。すなわち、サーチ線ドライバ回路ＳＬＤＲＶ＿Ｇは、マスクが指定されたビットに対しては、ＣＡＭセル格納データとの比較結果が常にヒットを示すサーチデータを生成しＣＡＭセルへ転送する。
【０１４７】
図４３に、実施の形態７に係る各信号のタイミング図を示す。
【０１４８】
時刻ｔ１のタイミングでサーチコマンドｓｅａｒｃｈに加えて、マスクデータ使用コマンドｍｓｋ＿ｓｅｌおよびマスクデータ選択アドレスｍｓｋ＿ａｄｄ［ａ：０］がサーチ制御回路に入力される。次のサイクル（時刻ｔ１〜ｔ２）で、マスクデータ選択アドレスｍｓｋ＿ａｄｄ［ａ：０］で選択されるワード線ｗｌ［ｋ］が活性化され、マスクデータが格納されたＣＡＭセルデータが読み出される。ＣＡＭセルアレイ内に保管されたマスクデータを使用することを示すマスクデータレジスタ使用信号が活性化され、セル読み出しデータｒｄがマスク信号ｍｓｋ［ｎ−１：０］として選択される。したがって、サーチ線ドライバ回路ＳＬＤＲＶ＿Ｇは、ＣＡＭセルアレイ内に保管されたマスクデータと入力データからマスクサーチ動作を行うためのサーチデータを生成し、当該サーチデータに基づくサーチ動作が実施される（時刻ｔ２〜ｔ３）。時刻ｔ３以降は、通常のサーチ動作と同様、プライオリティエンコーダからサーチ結果であるヒット信号ＨｉｔおよびヒットアドレスＨＡ［ｉ：０］が出力される。
【０１４９】
なお、実施の形態７では、マスクデータをＣＡＭセルアレイ内に保管する。したがって、マスクデータを保管したエントリは、サーチ対象外とする必要がある。すなわち、ＣＡＭセル格納データとサーチデータの比較結果を無効化させなければならない。そのため、ＣＡＭセルアレイの各エントリは、エントリを無効化させるために有効セルの技術を用いる。図４４は、有効セルを用いたエントリ無効化手段の構成の一例を示す。図４４では、サーチビット幅がｎビットのエントリ構成を示し、エントリに対して、１ビットの有効セルが設けられている。被検索データが格納されたエントリの有効セル２０１にはエントリ有効データが設定され、マスクデータ保管領域のエントリの有効セル２３１にはエントリ無効データが設定される。各エントリのマッチアンプＭＡ＿Ｇは、有効セルからエントリ有効データが出力される場合には、マッチ線ｍｌの電位に基づきマッチアンプ出力信号ｍａｏを出力する。有効セルからエントリ無効データが出力される場合には、マッチ線ｍｌの電位に関わらず、常にミスを示すマッチアンプ出力信号ｍａｏを出力する。これによって、マスクデータ保管領域のエントリがサーチ対象外となり、サーチ動作に影響を及ぼすことがなくなる。
【０１５０】
図４５に有効セル２０１、２３１の構成の一例を示す。有効セルは、ＳＲＡＭで構成することが可能である。ＣＡＭセルへの書込み動作時に合わせて有効セルへエントリ有効データまたはエントリ無効データを書き込むことができる。図４５は、ＳＲＡＭが一つの場合を示したが、ＣＡＭセルアレイ２００がＴＣＡＭセルで構成されている場合は、各ＣＡＭセルはＳＲＡＭを二個有しているため、１エントリあたり２セットのマスクデータの格納が可能である。
【０１５１】
図４６に、有効セルを備えたエントリに対応して設けられるマッチアンプ回路ＭＡ＿Ｇの構成の一例を示す。マッチアンプ回路ＭＡ＿Ｇは、実施の形態１のマッチアンプ回路ＭＡの構成に加えて、ＡＮＤ回路２７０を備え、有効セルの出力データとの論理演算結果をマッチアンプ出力信号ｍａｏとしている。例えば、エントリ有効データとして“１”が設定された場合、マッチ線ｍｌの電位に基づくマッチアンプ出力信号ｍａｏが出力される。エントリ無効データとして“０”が設定された場合、マッチアンプ回路からの出力は常にミスを示す結果となる。
【０１５２】
本実施の形態７によれば、ＣＡＭセルアレイ内にマスクデータ保管領域を設け、マスクサーチ動作時に、マスクデータ保管領域のＣＡＭセルからデータを読み出し、マスク信号として用いることができるため、チップ製造後に、マスクデータ保管領域の拡大もしくは縮小が可能である。したがって、顧客の要望に応じてマスクデータのセット数を容易に増加させることが可能となる。マスクデータ保管領域として設定されたエントリは有効セルでサーチ対象外と設定することができるため、マスクサーチ動作に何ら影響を及ぼすことはない。
【０１５３】
（実施の形態８）
ＣＡＭ搭載チップは、サーチデータを内部に保管して、サーチ動作時に入力されたサーチデータと、保管していたサーチデータとを組み合わせたものでもって、サーチ動作を実施する機能を有するものがある。この機能は、チップのデータ入力端子数がＣＡＭセルアレイのサーチビット幅よりも小さいときに有用である。チップのデータ入力端子数が、ＣＡＭセルアレイのサーチビット幅よりも小さい場合、サーチビット幅のデータを確保するために、データ入力端子から複数サイクルにわたってサーチデータを入力する必要がある。したがって、サーチ性能が悪化してしまうのを避けるために、チップ内部に予め保管したデータを利用してサーチ動作を実施するのである。
【０１５４】
図４７では、チップの内部にサーチデータを保管するレジスタを設けている参考例を示す。このサーチデータ保管レジスタのことをコンテキストレジスタと呼ぶ。図４７に示されるコンテキストレジスタ５１０は、データ入力端子から供給される入力データ（ｚビット）とＣＡＭセルアレイのサーチデータ幅（ｎビット）との差にあたるデータ（（ｎ−ｚ）ビット）を保管している。コンテキストレジスタ５１０は、複数種類のデータセットを保管することができるのが一般的であり、図４７に示すコンテキストレジスタ５１０は例えば４種類のデータを格納するために複数個設けられている。サーチ動作時には、選択されたコンテキストレジスタからのデータとデータ入力端子を介して入力された外部入力データとを組み合わせてできたデータをサーチデータとして、ＣＡＭセルアレイ１０に入力し、サーチ動作を行う。
【０１５５】
しかしながら、図４７に示すＣＡＭ搭載チップの構成では、チップ製造後にコンテキストレジスタ５１０に格納できるデータの種類を増やすことができない。そのため、コンテキストレジスタ５１０に格納させるデータセットの数を増やしたいという顧客要望には応えられないこととなる。また、多くのコンテキストレジスタを用意しておく場合には、チップの面積が増加してしまいコスト増加を引き起こす。
【０１５６】
本実施の形態８によれば、実施の形態１のようなセル読み出しデータでのサーチ動作を利用して、コンテキストレジスタに格納すべきデータの種類を柔軟に設定できる。
【０１５７】
図４８に、本実施の形態８の構成の一例を示すＣＡＭアレイマクロ４を示す。ＣＡＭアレイマクロ４は、ＣＡＭセルアレイ１０、マッチアンプ部２０、プライオリティエンコーダ３０、ローデコーダ４０、サーチ制御回路４２０、リード制御回路４３０、センスアンプ部５０、書込みドライバ部６０、サーチ線ドライバ部４４０、入力バッファ部８０、出力バッファ部９０を含む。サーチ制御回路４２０、リード制御回路４３０、サーチ線ドライバ部４４０以外の構成は、図１に示されるものと同様でよいため、それらに関しては同一の符号を付し、その説明を省略する。
【０１５８】
ＣＡＭアレイマクロ４では、コンテキストレジスタに格納すべきデータを、ＣＡＭセルアレイの一部エントリに格納する。例えば、ＣＡＭセルアレイ１０のエントリ０番地からエントリ（ｔ−１）番地までをサーチデータ保管領域４１０とする。
【０１５９】
本実施の形態８におけるＣＡＭアレイマクロ４が、保管サーチデータを利用したサーチ動作を実施する場合は、外部からコンテキストデータ選択アドレスｃｏｎｔｅｘｔ＿ａｄｄが入力され、コンテキストデータ選択アドレスｃｏｎｔｅｘｔ＿ａｄｄに基づき選択されたワード線が活性化された結果、読み出されたＣＡＭセルデータをＣＡＭセルアレイに転送するサーチデータの一部として用いる。
【０１６０】
サーチ制御回路４２０が、サーチコマンドｓｅａｒｃｈに加えて、コンテキストレジスタ使用コマンドｃｏｎｔｅｘｔ＿ｓｅｌおよびコンテキストデータ選択アドレスｃｏｎｔｅｘｔ＿ａｄｄ［ａ：０］を受け取り、リード制御回路４３０に対してリードコマンドｒｅａｄ＿ｃｏｍとコンテキストレジスタ選択アドレスｃｏｎｔｅｘｔ＿ｒｅｇ＿ａｄｄ［ａ：０］を出力する。また、サーチ制御回路４２０は、サーチ線ドライバ部４４０に対して、サーチ線ドライバイネーブル信号ｓｌｄｅと共に、保管サーチデータを使用するビットを指定するリードデータ選択信号ｒｄ＿ｓｅｌ［ｎ：０］を出力する。
【０１６１】
リード制御回路４３０は、受け取ったリードコマンドｒｅａｄ＿ｃｏｍおよびコンテキストレジスタ選択アドレスｃｏｎｔｅｘｔ＿ｒｅｇ＿ａｄｄ［ａ：０］に基づきリード動作を制御する。
【０１６２】
サーチ線ドライバ部４４０は、サーチデータをＣＡＭセルに転送する。サーチ線ドライバ部４４０は、それぞれのサーチ線対に対応したサーチ線ドライバ回路で構成される。サーチ線ドライバ回路の回路構成は、実施の形態１に示したサーチ線ドライバ回路ＳＬＤＲＶの構成と同様でよいが、本実施の形態８では、図８に示すサーチ線ドライバ回路ＳＬＤＲＶの回路構成に対して、セルデータ使用信号ｕｓｅ＿ｒｄに替えて、リードデータ選択信号ｒｄ＿ｓｅｌ［ｎ−１：０］が供給される。したがって、ビット毎に設定されたリードデータ選択信号ｒｄ＿ｓｅｌ［ｎ−１：０］によってセル読み出しデータを用いるか否かが設定される。例えば、セル読み出しデータをサーチデータとするビットに対しては、活性化状態のｒｄ＿ｓｅｌ信号を設定し、外部入力された入力データをサーチデータとするビットに対しては、非活性状態のｒｄ＿ｓｅｌ信号を設定すればよい。
【０１６３】
図４９に、本実施の形態８のＣＡＭアレイマクロ４によるサーチ動作における各信号のタイミング図を示す。
【０１６４】
時刻ｔ１のタイミングでサーチコマンドｓｅａｒｃｈ、コンテキストレジスタ使用コマンドｃｏｎｔｅｘｔ＿ｓｅｌおよびコンテキストデータ選択アドレスｃｏｎｔｅｘｔ＿ａｄｄ［ａ：０］がサーチ制御回路に入力される。次のサイクル（時刻ｔ１〜ｔ２）で、コンテキストレジスタ選択アドレスｃｏｎｔｅｘｔ＿ｒｅｇ＿ａｄｄ［ａ：０］に基づくワード線ｗｌ［ｋ］が活性化され、保管データが格納されているＣＡＭセルデータが読み出される。セル読み出しデータを使用するビットに対するセルデータ使用信号ｒｄ＿ｓｅｌ［ｎ−ｚ−１：０］が活性化され、外部入力データを使用するビットに対するデータ使用信号ｒｄ＿ｓｅｌ［ｎ−１：ｎ−ｚ］は非活性状態となる（時刻ｔ２〜ｔ３）。この設定によって、セル読み出しデータと外部入力データとを組み合わせたサーチデータがＣＡＭセルに転送され、サーチ動作が実施される。そのサーチ動作の結果、時刻ｔ３からｔ４のサイクルにて、サーチ結果（ヒット信号Ｈｉｔ、ヒットアドレスＨＡ［ｉ：０］）が出力される。
【０１６５】
本実施の形態８によれば、ＣＡＭセルアレイ内に、サーチデータ保管領域を設け、コンテキストデータを用いたサーチ動作において、サーチデータ保管領域からデータを読み出し、読み出したデータと外部入力データとを組み合わせることができる。ＣＡＭセルアレイ領域の一部をサーチデータ保管領域として利用することで、チップ完成後でも、サーチデータ保管領域の拡大もしくは縮小を容易に行うことができる。また、セルデータ使用信号ｒｄ＿ｓｅｌを必要に応じて設定することで、読み出しデータと外部入力データとの組み合わせを柔軟に設定することも可能である。
【０１６６】
なお、実施の形態７および８においては、マスクサーチ用レジスタやサーチデータ保管用レジスタとして使用されるＣＡＭセルアレイの一部のエントリは、ＣＡＭセルアレイへ被検索用データを書き込んだ後に生じる空きエントリ（有効セルが非活性化されたエントリ）を、当該マスクサーチ用レジスタやサーチデータ保管用レジスタとして活用すればよい。
【０１６７】
また、本実施の形態では、ＣＡＭアレイセルとしてＴＣＡＭセルを用いた場合について説明したが、これに限定されない。ＣＡＭセルとして、ＴＣＡＭセルのみならず、ＢＣＡＭ（Binary CAM）を用いてもよい。
【０１６８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１６９】
１、１Ａ、１Ｂ、１Ｄ、１Ｅ、１Ｆ、２、４：ＣＡＭアレイマクロ
１０、１０Ａ、１０Ｂ、２００：ＣＡＭセルアレイ
２０、２０Ａ、２０Ｂ：マッチアンプ部
３０：プライオリティエンコーダ
４０：ローデコーダ
５０、５０Ａ：センスアンプ部
６０、６０Ａ：書込みドライバ部
７０、７０Ａ、７０Ｄ、２４０、４４０：サーチ線ドライバ部
８０、８０Ａ、２２０、３２０：入力バッファ部
９０：出力バッファ部
１００、２５０、４３０：リード制御回路
１１０、２１０、４２０：サーチ制御回路
１２０、１２０Ｂ、１２０Ｄ、１２０Ｅ、１２０Ｆ：テスト回路
１３０、１３０Ｄ：サーチ結果比較回路
１４０：マッチアンプ出力セレクタ
１５０：ＥＣＣ回路  
ｍｌ：マッチ線
ｂｌ、ｂｌ＿ｎ：ビット線対
ｓｌ、ｓｌ＿ｎ：サーチ線対
【図１】
2020102284.tif 000003
【図２】
2020102284.tif 000004
【図３】
2020102284.tif 000005
【図４】
2020102284.tif 000006
【図５】
2020102284.tif 000007
【図６】
2020102284.tif 000008
【図７】
2020102284.tif 000009
【図８】
2020102284.tif 000010
【図９】
2020102284.tif 000011
【図１０】
2020102284.tif 000012
【図１１】
2020102284.tif 000013
【図１２】
2020102284.tif 000014
【図１３】
2020102284.tif 000015
【図１４】
2020102284.tif 000016
【図１５】
2020102284.tif 000017
【図１６】
2020102284.tif 000018
【図１７】
2020102284.tif 000019
【図１８】
2020102284.tif 000020
【図１９】
2020102284.tif 000021
【図２０】
2020102284.tif 000022
【図２１】
2020102284.tif 000023
【図２２】
2020102284.tif 000024
【図２３】
2020102284.tif 000025
【図２４】
2020102284.tif 000026
【図２５】
2020102284.tif 000027
【図２６】
2020102284.tif 000028
【図２７】
2020102284.tif 000029
【図２８】
2020102284.tif 000030
【図２９】
2020102284.tif 000031
【図３０】
2020102284.tif 000032
【図３１】
2020102284.tif 000033
【図３２】
2020102284.tif 000034
【図３３】
2020102284.tif 000035
【図３４】
2020102284.tif 000036
【図３５】
2020102284.tif 000037
【図３６】
2020102284.tif 000038
【図３７】
2020102284.tif 000039
【図３８】
2020102284.tif 000040
【図３９】
2020102284.tif 000041
【図４０】
2020102284.tif 000042
【図４１】
2020102284.tif 000043
【図４２】
2020102284.tif 000044
【図４３】
2020102284.tif 000045
【図４４】
2020102284.tif 000046
【図４５】
2020102284.tif 000047
【図４６】
2020102284.tif 000048
【図４７】
2020102284.tif 000049
【図４８】
2020102284.tif 000050
【図４９】
2020102284.tif 000051