(57)【要約】【課題】簡易な方式で、長時間のメンテナンス動作を抑制し、検索動作を継続することが可能な半導体装置を提供する。【解決手段】半導体装置は、行列状に配置された複数の検索メモリセルを有し、検索データに対する検索結果を出力するメモリアレイと、メモリアレイと独立に設けられ、複数の検索メモリセルの一部の検索メモリセルの不良を救済するために設けられた救済用メモリと、救済用メモリに格納された救済データと検索データとの一致比較を実行する比較回路と、メモリアレイの検索結果と、比較回路の比較結果とに基づいてアドレス情報を出力するアドレス出力回路とを備える。【選択図】図１
2020071895.tif 000002
【特許請求の範囲】
【請求項１】
行列状に配置された複数の検索メモリセルを有し、検索データに対する検索結果を出力するメモリアレイと、
前記メモリアレイと独立に設けられ、前記複数の検索メモリセルの一部の検索メモリセルの不良を救済するために設けられた救済用メモリと、
前記救済用メモリに格納された救済データと前記検索データとの一致比較を実行する比較回路と、
前記メモリアレイの検索結果と、前記比較回路の比較結果とに基づいてアドレス情報を出力するアドレス出力回路とを備える、半導体装置。
【請求項２】
前記アドレス出力回路は、
前記メモリアレイの検索結果と前記比較回路の比較結果とを集約した集約結果を出力する集約回路と、
前記集約回路の集約結果に基づいて、前記アドレス情報を出力するプライオリティエンコーダとを含む、請求項１記載の半導体装置。
【請求項３】
前記集約回路は、
前記メモリアレイのメモリセル行にそれぞれ対応して設けられ、メモリセル行の不良を示すデータを格納する複数の救済レジスタと、
前記複数の救済レジスタにそれぞれ対応して設けられ、前記検索データに対する各前記メモリセル行の検索結果および前記比較回路の比較結果の一方を選択して出力する複数のセレクタとを含む、請求項２記載の半導体装置。
【請求項４】
各前記セレクタは、対応する救済レジスタに格納されているデータに従って前記検索データに対する各前記メモリセル行の検索結果および前記比較回路の比較結果の一方を選択する、請求項３記載の半導体装置。
【請求項５】
前記アドレス出力回路は、
前記メモリアレイの検索結果に基づいて、第１アドレス情報を出力する第１プライオリティエンコーダと、
前記第１アドレス情報および前記比較回路の比較結果に含まれる第２アドレス情報の一方を優先して出力する優先比較回路とを含む、請求項１記載の半導体装置。
【請求項６】
前記メモリアレイは、複数のメモリブロックに分割され、
前記救済用メモリは、前記複数のメモリブロックに共通に設けられる、請求項１記載の半導体装置。
【請求項７】
前記メモリアレイの検索メモリセルの不良を検出するための故障検出回路をさらに備える、請求項１記載の半導体装置。
【請求項８】
前記メモリアレイのメモリセル行にそれぞれ対応して複数のエントリデータが格納され、
前記複数のエントリデータは、検索の有効あるいは無効を示すデータを含む、請求項７記載の半導体装置。
【請求項９】
各前記エントリデータは、パリティビットを含み、
前記故障検出回路は、各前記エントリデータを読み出し、対応するパリティビットに基づいて不良を検出する、請求項８記載の半導体装置。
【請求項１０】
前記故障検出回路は、
読み出したエントリデータに対して、不良を検出した場合には、前記対応するパリティビットに基づいて誤り訂正処理を実行し、
訂正したエントリデータの書込処理を実行する、請求項９記載の半導体装置。
【請求項１１】
前記故障検出回路は、
訂正したエントリデータを前記検索データに設定し、
前記メモリアレイに対する検索動作の実行を指示する、請求項１０記載の半導体装置。
【請求項１２】
メモリセル行にそれぞれ対応して設けられ、各々が対応するエントリデータの選択情報を含む複数のエントリ選択レジスタをさらに備え、
前記故障検出回路は、
前記メモリアレイに対する検索動作の実行を指示するエントリ選択レジスタに前記選択情報を格納し、
前記メモリアレイの前記複数のエントリデータのうち前記選択情報が格納されたエントリデータに対する検索動作の実行を指示する、請求項１１記載の半導体装置。
【請求項１３】
前記故障検出回路は、誤り訂正したエントリデータの書込処理後に、前記検索動作の実行結果に基づいて一時的なエラーか否かを判定する、請求項１１記載の半導体装置。
【請求項１４】
前記故障検出回路は、判定結果に基づいて無効を示すメモリセル行のアドレスと、対応するエントリデータを前記救済用メモリに格納する、請求項１１記載の半導体装置。
【請求項１５】
前記救済用メモリに格納された情報を不揮発的に記憶するための固定記憶部をさらに備える、請求項１４記載の半導体装置。
【請求項１６】
前記故障検出回路は、全エントリデータの故障検出に要する時間を短縮するために、前記訂正したエントリデータと前記検索データとが一致するか否かを判定する一致検索動作のみの実行を指示する、請求項１１記載の半導体装置。
【請求項１７】
前記メモリアレイは、複数のメモリブロックに分割され、
各前記メモリブロックは、メモリセル行にそれぞれ対応して設けられ、前記検索メモリセルに格納されたデータと、前記検索データの一致／不一致を判定するための複数のマッチ線を含み、
前記複数のメモリブロックのメモリセル行にそれぞれ対応して設けられ、各々が、同一行の各前記メモリブロックのマッチ線とそれぞれ接続され、前記検索データと各前記メモリブロックの前記検索メモリセルに格納されたデータとの一致／不一致を合成して出力する複数の合成回路をさらに備える、請求項１記載の半導体装置。
【請求項１８】
各前記合成回路は、各前記メモリブロックのマッチ線に対応して設けられ、対応するマッチ線のデータを反転して出力するための複数の切替回路を含む、請求項１７記載の半導体装置。
【請求項１９】
前記メモリアレイは、
前記検索メモリセルに格納されたデータと、前記検索データの一致／不一致を判定するための複数のマッチ線と、
前記複数のマッチ線にそれぞれ対応して設けられ、制御信号に従って対応するマッチ線の信号を増幅する複数のマッチアンプとを含み、
前記制御信号のタイミングを調整するタイミング調整回路をさらに備える、請求項１記載の半導体装置。
【請求項２０】
前記メモリアレイの前記複数の検索メモリセルに対してテストデータの書込を実行し、前記不良検出回路に対して前記テストデータが格納された前記メモリアレイの前記検索メモリセルの不良を検出するように指示するテスト回路をさらに備える、請求項７記載の半導体装置。
【請求項２１】
外部からの指示に従って前記救済用メモリに前記救済データが格納される、請求項１記載の半導体装置。
【請求項２２】
前記救済データが固定的に格納された固定記憶部をさらに備え、
初期動作時に前記固定記憶部に格納された前記救済データが前記救済用メモリに格納される、請求項１記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、メモリセルを有する半導体装置に関する。
【背景技術】
【０００２】
検索メモリまたはＣＡＭ（内容参照メモリ：Content Addressable Memory）と呼ばれる記憶装置は、記憶しているデータワードの中から検索ワードに一致しているものを検索し、一致しているデータワードが見つかった場合は、そのアドレスを出力するものである。
【０００３】
ＣＡＭにはＢＣＡＭ（Binary CAM）とＴＣＡＭ（Ternary CAM）とがある。ＢＣＡＭの各メモリセルは“０”か“１”かのいずれかの情報を記憶する。一方、ＴＣＡＭの場合には、各メモリセルは、“０”および“１”の他に“ドントケア（Don't Care）”（本例においては、“＊”の記号を用いる）の情報を記憶可能である。“＊”は“０”および“１”のどちらでも良いことを示す。
【０００４】
ＣＡＭは、インターネットなどのネットワーク用のルータにおいてアドレス検索およびアクセス制御のために幅広く利用されている。大容量化に対応するために、ＴＣＡＭ装置は、通常、複数のアレイを有し、各アレイに対して同時にサーチ動作が実行される構成となっている。
【０００５】
ＣＡＭは、検索データ（入力パケット）とＴＣＡＭセルデータとを一斉に比較することができるので、全ての検索用途においてＲＡＭ（Random Access Memory）を用いるよりも高速である。
【０００６】
一方、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）等の通常のメモリデバイスでは、予め冗長回路として予備の冗長メモリセル行を設けている。これに伴い、不良のメモリセル行が存在する場合に予備の冗長メモリセル行と置換することにより、この不良のメモリセル行を救済し、メモリデバイスの歩留りを向上させる冗長回路技術が一般的に用いられている。
【０００７】
しかし、ＣＡＭでは、メモリセル行の構造が通常のメモリデバイスとは大きく異なり、メモリセル行を救済する場合には、データ読出時および書込時に実行するアドレス選択（デコード）だけでなく、データ検索動作後の優先順位に従って一致アドレスを順次出力する機能（エンコード）についても救済する必要がある。
【０００８】
このＣＡＭに特有の機能および回路構成等の理由により、不良のメモリセル行の救済を実行することは容易ではなく、種々の方式が提案されている（特許文献１および２ならびに非特許文献１）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２８８３４７号公報
【特許文献２】特開２００６−３０９９１７号公報
【非特許文献】
【００１０】
【非特許文献１】A Self-Repair Technique for Content Addressable Memories with Address-Input-Free Writing Function(2013,Natinal Central University, Taiwan)
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の方式では、シフトレジスタ等を用いて不良エントリの救済を行っており、不良エントリデータを救済後にメモリの物理アドレスをプライオリティエンコーダの論理アドレスに合わせている。
【００１２】
具体的には、メモリの物理アドレスとプライオリティエンコーダやロウデコーダの論理アドレスとを整合させるシフト動作を行っている。すなわち、救済前のメモリの物理アドレスをプライオリティエンコーダやロウデコーダの論理アドレスに合わせてデータを移動するメンテナンス動作が必要となる。
【００１３】
当該メンテナンス動作では、全エントリデータを別の物理アドレスに移動する必要があるため、長時間のメンテナンス動作が必要となり、この期間は検索動作が実行できないという課題がある。
【００１４】
本開示は、上記の課題を解決するためになされたものであって、簡易な方式で、長時間のメンテナンス動作を抑制し、検索動作を継続することが可能な半導体装置を提供する。
【００１５】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
ある局面に従う半導体装置は、行列状に配置された複数の検索メモリセルを有し、検索データに対する検索結果を出力するメモリアレイと、メモリアレイと独立に設けられ、複数の検索メモリセルの一部の検索メモリセルの不良を救済するために設けられた救済用メモリとを備える。半導体装置は、救済用メモリに格納された救済データと検索データとの一致比較を実行する比較回路と、メモリアレイの検索結果と、比較回路の比較結果とに基づいてアドレス情報を出力するアドレス出力回路とをさらに備える。
【発明の効果】
【００１７】
一実施例によれば、本開示の半導体装置は、メモリアレイと独立に設けられた救済用メモリに救済データを格納して、当該救済データと検索データとの一致比較を実行するためメモリアレイに格納されているデータをシフトさせる必要がない。したがって、簡易な方式で、長時間のメンテナンス動作を抑制し、検索動作を継続することが可能である。
【図面の簡単な説明】
【００１８】
【図１】実施形態１に従うＣＡＭ１を説明する図である。
【図２】ＴＣＡＭセルの構成の一例を示す回路図である。
【図３】図２のＸセルおよびＹセルの記憶内容とＴＣＡＭデータとの対応関係を表形式で示す図である。
【図４】実施形態１に従うメモリアレイ４およびその周辺回路について説明する図である。
【図５】実施形態１に従う外部リペア用メモリ２０について説明する図である。
【図６】実施形態１に従う外部リペア一致判定回路２１の回路構成について説明する図である。
【図７】実施形態１に従う故障検出回路９の構成について説明する図である。
【図８】実施形態１に従う故障検出回路９による故障検出動作の処理について説明するフロー図である。
【図９】実施形態１に従う故障検出動作の処理時間について説明する図である。
【図１０】実施形態１に従うハードリペア動作について説明する図である。
【図１１】実施形態２に従うＣＡＭ１＃を説明する図である。
【図１２】実施形態２に従うプライオリティ比較回路５０の回路構成について説明する図である。
【図１３】実施形態３に従うエントリ選択回路７０の構成を説明する図である。
【図１４】実施形態４に従うＣＡＭ１Ｐを説明する図である。
【図１５】実施形態５に従うメモリアレイ４が複数のメモリブロックＭＢに分割されている場合を説明する図である。
【図１６】実施形態５の変形例に従うメモリアレイ４が複数のメモリブロックＭＢに分割されている場合を説明する別の図である。
【図１７】実施形態６に従うメモリアレイの構成について説明する図である。
【図１８】実施形態６に従うミス検知切替回路８３の回路構成図である。
【図１９】実施形態７に従うマッチ線ＭＬに設けられているマッチアンプＭＡの構成を説明する図である。
【図２０】実施形態７に従うマッチアンプＭＡの動作を説明するタイミングチャート図である。
【図２１】実施形態７に従うマッチ線ＭＬに設けられているマッチアンプＭＡの構成を説明する別の図である。
【図２２】実施形態７に従うマッチアンプＭＡの動作を説明する別のタイミングチャート図である。
【図２３】実施形態７に従う遅延選択回路２１０の構成について説明する図である。
【図２４】実施形態８に従うＣＡＭ１Ｑの構成について説明する図である。
【図２５】実施形態８に従うＢＩＳＴ回路２２０の処理について説明する図である。
【図２６】実施形態８に従うエラーレジスタについて説明する図である。
【図２７】実施形態８の変形例に従う救済処理について説明する図である。
【発明を実施するための形態】
【００１９】
実施形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
【００２０】
（実施形態１）
図１は、実施形態１に従うＣＡＭ１を説明する図である。
【００２１】
図１を参照して、半導体装置の一例としてＣＡＭ１が示されている。
ＣＡＭ１は、行列状に配置された複数の検索メモリセルを有するメモリアレイ４と、メモリアレイ４のロウアドレスを選択するためのロウデコーダ３と、メモリアレイ４のサーチ線を駆動して検索動作を実行するためのＳＬドライバ２３と、メモリアレイ４に格納されているエントリデータの読出／書込を実行するための読出／書込回路２４とを含む。
【００２２】
また、ＣＡＭ１は、メモリアレイ４の不良を救済する制御信号を生成するための救済情報を格納する救済情報ラッチ回路２、救済情報ラッチ回路２にｅＦＵＳＥ７のデータを送信するハードリペア制御回路６と、救済情報を書き込むためのｅＦＵＳＥ７と、全体を制御する制御回路８とを含む。
【００２３】
ＣＡＭ１は、ピン１３を含む。ピン１３を介して外部から制御回路８に対してＣＡＭ１に対する種々の動作の実行の指示を受け付けることが可能であり、ピン１３を介して外部に検索結果を出力することが可能である。
【００２４】
また、ＣＡＭ１は、故障検出動作を制御する故障検出回路９と、メモリアレイ４と独立して設けられ、メモリアレイ４以外で検索メモリセルの不良を救済するための外部リペア用メモリ２０とを含む。
【００２５】
また、ＣＡＭ１は、外部リペア用メモリ２０のデータと検索データとの一致判定動作を行う外部リペア一致判定回路２１と、リペアセレクタ２２とを含む。リペアセレクタ２２は、外部リペア一致判定回路２１で外部リペア用メモリ２０のデータと検索データとの一致判定動作で一致（ＨＩＴ）判定が出た場合に、その結果をプライオリティエンコーダ５に伝える。
【００２６】
本例において、検索メモリセルの一例としてＴＣＡＭセルを用いる場合について説明する。
【００２７】
［ＴＣＡＭセルの構成］
図２は、ＴＣＡＭセルの構成の一例を示す回路図である。
【００２８】
図２を参照して、ＴＣＡＭセル（メモリセルＭＣとも称する）は、２個のＳＲＡＭセル（Static Random Access Memory Cell）１１，１２と、データ比較部１３とを含む。ＳＲＡＭセル１１をＸセルとも称し、ＳＲＡＭセル１２をＹセルとも称する。Ｘセル１１は、内部の記憶ノード対ＮＤ１，ＮＤ１＿ｎに互いに相補となる（一方が“１”のとき他方が“０”となる）１ビット（ｂｉｔ）のデータを記憶する。Ｙセル１２は、内部の記憶ノード対ＮＤ２，ＮＤ２＿ｎに互いに相補となる１ビットのデータを記憶する。ＴＣＡＭセルは、検索メモリセルとも称する。
【００２９】
ＴＣＡＭセルは、ビット線対ＢＬ，／ＢＬ、サーチ線対ＳＬ，／ＳＬ、マッチ線ＭＬ、およびワード線ＷＬＸ，ＷＬＹと接続される。ビット線対ＢＬ，／ＢＬは、メモリセルアレイの列方向（Ｙ方向）に延在し、列方向に配列された複数のＴＣＡＭセルによって共有される。サーチ線対ＳＬ，／ＳＬは、メモリセルアレイの列方向（Ｙ方向）に延在し、列方向に配列された複数のＴＣＡＭセルによって共有される。
【００３０】
マッチ線ＭＬは、メモリセルアレイの行方向（Ｘ方向）に延在し、行方向に配列された複数のＴＣＡＭセルによって共有される。ワード線ＷＬＸ，ＷＬＹは、メモリセルアレイの行方向（Ｘ方向）に延在し、行方向に配列された複数のＴＣＡＭセルによって共有される。
【００３１】
Ｘセル１１は、インバータＩＮＶ１，ＩＮＶ２と、ＮチャネルＭＯＳ（Metal Oxide Semiconductor）トランジスタＱ１，Ｑ２とを含む。インバータＩＮＶ１は、記憶ノードＮＤ１＿ｎから記憶ノードＮＤ１へ向かう方向が順方向となるように、記憶ノードＮＤ１と記憶ノードＮＤ１＿ｎの間に接続される。インバータＩＮＶ２は、ＩＮＶ１と並列かつ逆方向に接続される。ＭＯＳトランジスタＱ１は、記憶ノードＮＤ１とビット線ＢＬとの間に接続される。ＭＯＳトランジスタＱ２は、記憶ノードＮＤ１＿ｎとビット線／ＢＬとの間に接続される。ＭＯＳトランジスタＱ１，Ｑ２のゲートは、ワード線ＷＬＸと接続される。
【００３２】
Ｙセル１２は、インバータＩＮＶ３，ＩＮＶ４と、ＭＯＳ（Metal Oxide Semiconductor）トランジスタＱ３，Ｑ４とを含む。インバータＩＮＶ３は、記憶ノードＮＤ２＿ｎから記憶ノードＮＤ２に向かう方向が順方向となるように、記憶ノードＮＤ２と記憶ノードＮＤ２＿ｎの間に接続される。インバータＩＮＶ４は、ＩＮＶ３と並列かつ逆方向に接続される。ＭＯＳトランジスタＱ３は、記憶ノードＮＤ２とビット線ＢＬとの間に接続される。ＭＯＳトランジスタＱ４は、記憶ノードＮＤ２＿ｎとビット線／ＢＬとの間に接続される。ＭＯＳトランジスタＱ３，Ｑ４のゲートは、ワード線ＷＬＹと接続される。
【００３３】
データ比較部１３は、ＮチャネルＭＯＳトランジスタＱ６〜Ｑ９を含む。ＭＯＳトランジスタＱ６，Ｑ７はマッチ線ＭＬとの接続点であるノードＮＤ３と接地電位に設定されているサブ接地配線ＶＳＳとの間に直列に接続される。ＭＯＳトランジスタＱ８，Ｑ９は、ノードＮＤ３と接地電位に設定されているサブ接地配線ＶＳＳとの間に直列に、かつ、直列接続されたＭＯＳトランジスタＱ６，Ｑ７の全体と並列に接続される。ＭＯＳトランジスタＱ６，Ｑ８のゲートは、記憶ノードＮＤ１，ＮＤ２とそれぞれ接続される。ＭＯＳトランジスタＱ７，Ｑ９のゲートは、サーチ線ＳＬ，／ＳＬとそれぞれ接続される。
【００３４】
図３は、図２のＸセルおよびＹセルの記憶内容とＴＣＡＭデータとの対応関係を表形式で示す図である。
【００３５】
図２および図３を参照して、ＴＣＡＭセルは、２ビットのＳＲＡＭセルを用いて、“０”、“１”、“＊”（ドントケア：don't care）の３値を格納することができる。具体的に、Ｘセル１１の記憶ノードＮＤ１に“１”が格納され、Ｙセル１２の記憶ノードＮＤ２に“０”が格納されているとき、ＴＣＡＭセルには“０”が格納されているとする。Ｘセル１１の記憶ノードＮＤ１に“０”が格納され、Ｙセル１２の記憶ノードＮＤ２に“１”が格納されているとき、ＴＣＡＭセルには“１”が格納されているとする。Ｘセル１１の記憶ノードＮＤ１に“０”が格納され、Ｙセル１２の記憶ノードＮＤ２に“０”が格納されているとき、ＴＣＡＭセルには“＊”（ドントケア）が格納されているとする。Ｘセル１１の記憶ノードＮＤ１に“１”が格納され、Ｙセル１２の記憶ノードＮＤ２に“１”が格納されている場合は使用しない。
【００３６】
上記のＴＣＡＭセルの構成について説明する。
検索データが“１”（すなわち、サーチ線ＳＬが“１”、かつ、サーチ線／ＳＬが“０”）であり、ＴＣＡＭデータが“０”（記憶ノードＮＤ１が“１”、かつ、記憶ノードＮＤ２が“０”）である場合には、ＭＯＳトランジスタＱ６，Ｑ７がオン状態となるために、サブ接地配線ＶＳＳと接続されプリチャージされたマッチ線ＭＬの電位が接地電位側に低下する。検索データが“０”（すなわち、サーチ線ＳＬが“０”、かつ、サーチ線／ＳＬが“１”）であり、ＴＣＡＭデータが“１”（記憶ノードＮＤ１が“０”、かつ、記憶ノードＮＤ２が“１”）である場合には、ＭＯＳトランジスタＱ８，Ｑ９がオン状態となるために、サブ接地配線ＶＳＳと接続されプリチャージされたマッチ線ＭＬの電位が接地電位側に低下する。すなわち、検索データとＴＣＡＭデータとが不一致の場合には、マッチ線ＭＬの電位は接地電位側に低下する。
【００３７】
逆に、入力された検索データが“１”であり、かつ、ＴＣＡＭデータが“１”または“＊”の場合、もしくは、検索データが“０”であり、かつ、ＴＣＡＭデータが“０”または“＊”の場合（すなわち、両者が一致する場合）、プリチャージされたマッチ線ＭＬの電位（電源電圧ＶＤＤレベル）は維持される。
【００３８】
［回路構成］
図４は、実施形態１に従うメモリアレイ４およびその周辺回路について説明する図である。
【００３９】
図４を参照して、メモリアレイ４は、メモリセル行にそれぞれ対応して複数のエントリデータを格納することが可能に設けられている。
【００４０】
一例として各メモリセル行に対応して４１ビットのエントリデータを格納することが可能である。
【００４１】
４１ビットのエントリデータのうち先頭の１ビットは、当該エントリデータを検索対象とするか否かを識別するＥＶビットとして用いられる。４１ビットのエントリデータのうちの残りの４０ビットのデータが、検索データとの比較対象データとして用いられる。
【００４２】
また、メモリアレイ４には、１２８行のメモリセル行と、スペアとして設けられた１行の冗長メモリセル行とが設けられている。１２８個のエントリデータに対して、エントリ番号０〜１２７がそれぞれ割り当てられている。ロウデコーダ３は、７ビットのロウアドレスに従ってエントリ番号０〜１２７のエントリデータをそれぞれ指定することが可能である。
【００４３】
また、各メモリセル行にそれぞれ対応してマッチ線ＭＬが設けられる。本例においては、マッチ線ＭＬ０〜ＭＬ１２７，ＤＭＬとが示されている。
【００４４】
リペアセレクタ２２は、メモリセル行にそれぞれ対応して設けられる複数のリペアレジスタ１２０と、複数のリペアレジスタにそれぞれ対応して設けられる複数のセレクタ１２２とを含む。
【００４５】
セレクタ１２２は、対応するリペアレジスタ１２０の入力に従って対応するマッチ線ＭＬの入力と、外部リペア一致判定回路２１からの一致判定信号ＲＨＴの入力とのいずれか一方を選択する。
【００４６】
複数のリペアレジスタ１２０のそれぞれには、「０」あるいは「１」のデータが格納される。リペアレジスタ１２０に「０」が格納される場合には、対応するセレクタ１２２は、マッチ線ＭＬの入力をプライオリティエンコーダ５に出力する。リペアレジスタ１２０に「１」が格納される場合には、対応するセレクタ１２２は、外部リペア一致判定回路２１からの一致判定信号ＲＨＴの入力をプライオリティエンコーダ５に出力する。
【００４７】
制御回路８は、メモリアレイ４のあるメモリセル行の検索メモリセルに不良があると判断した場合には、当該メモリセル行に対応するリペアレジスタ１２０のデータを「１」に設定する。リペアレジスタ１２０の初期値は「０」に設定されている。
【００４８】
リペアセレクタ２２は、リペアレジスタ１２０に「０」が格納されているメモリセル行については対応するマッチ線の信号と、リペアレジスタ１２０に「１」が格納されているメモリセル行については外部リペア一致判定回路２１からの一致判定信号ＲＨＴとを集約した集約結果をプライオリティエンコーダ５に出力する。
【００４９】
プライオリティエンコーダ５は、リペアセレクタ２２により集約された集約結果に基づいて一致信号ＨＩＴ＿ＡＲＹとともに優先度の高いアドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］とを制御回路８に出力する。
【００５０】
図５は、実施形態１に従う外部リペア用メモリ２０について説明する図である。
図５を参照して、外部リペア用メモリ２０として８８ビットのレジスタ構成が示されている。
【００５１】
具体的には、メモリアレイ４と同様に、エントリデータを検索対象とするか否かを識別する１ビットのＥＶ(Entry Valid)レジスタと、３値を表現するための４０ビットのＸセルのデータを格納するＸレジスタ（Ｘ［３９：０］）と、４０ビットのＹセルのデータを格納するＹレジスタ（Ｙ［３９：０］）と、救済したエントリ番号に対応する７ビットのアドレス情報を格納するＡレジスタ（Ａ［６：０］）とを含む。
【００５２】
図６は、実施形態１に従う外部リペア一致判定回路２１の回路構成について説明する図である。
【００５３】
図６を参照して、外部リペア一致判定回路２１は、複数の論理回路３０と、ＡＮＤ回路３４，３５とを含む。
【００５４】
本例においては、４０ビットの各ビットに対応して論理回路３０が設けられている場合が示されている。
【００５５】
論理回路３０は、ＮＯＲ回路３１と、ＸＯＲ回路３２と、ＯＲ回路３３とを含む。
ＮＯＲ回路３１は、ＸセルのデータＸとＹセルのデータＹとのＮＯＲ論理演算結果をＯＲ回路３３に出力する。
【００５６】
ＸＯＲ回路３２は、検索データＳＥ＿ＤとＸセルのデータＸとのＸＯＲ演算結果をＯＲ回路３３に出力する。
【００５７】
ＯＲ回路３３は、検索データマスクデータＳＥ＿ＭＡＳＫと、ＸＯＲ回路３２のＸＯＲ論理演算結果と、ＮＯＲ回路３１のＮＯＲ論理演算結果のＯＲ論理演算結果をＡＮＤ回路３４に出力する。
【００５８】
なお、外部リペア一致判定回路２１は、検索データＳＥ＿Ｄのマスクに対応が可能となるように検索データマスクデータＳＥ＿ＭＡＳＫの入力を可能としている。
【００５９】
各ビットに対応する論理回路３０は、検索データと救済データの対応するビットが一致した場合に「１」を出力する。
【００６０】
ＡＮＤ回路３４は、全ての論理回路３０からの出力が「１」である場合に、ＡＮＤ回路３５に「１」を出力する。
【００６１】
ＡＮＤ回路３５は、ＥＶレジスタの値と、ＡＮＤ回路３４からの出力とに基づいて一致判定信号ＲＨＴを出力する。ＥＶレジスタの値と、ＡＮＤ回路３４の出力がともに「１」である場合に一致判定信号ＲＨＴは、「１」となる。一方、いずれか一方が「０」である場合には、一致判定信号ＲＨＴは、「０」となる。
【００６２】
［検索動作］
検索動作時には制御回路８は、メモリアレイ４と、外部リペア一致判定回路２１に検索データを送信する。
【００６３】
メモリアレイ４は、４０ビットの検索データを受けて、検索動作を実行する。
具体的には、ＥＶビットに対応するように検索対象であることを示す「１」のデータを検索データの先頭に付加してＳＬドライバ２３に出力する。
【００６４】
ＳＬドライバ２３は、４１ビットの検索データの入力を受けてサーチ線ＳＬ，／ＳＬを駆動し、各メモリセル行のエントリデータとの一致比較動作を実行する。
【００６５】
ＥＶビットが「１」のエントリデータが比較対象データとして有効となり、ＥＶビットが「０」のエントリデータについては比較対象データとして無効となり対応するマッチ線ＭＬは「０」に設定される。
【００６６】
ＥＶビットが「１」のエントリデータについて、検索データと一致するエントリデータが格納されたメモリセル行に対応するマッチ線ＭＬは、「１」が維持される。一方、検索データと不一致のエントリデータが格納されたメモリセル行のマッチ線ＭＬは、「０」に設定される。
【００６７】
また、外部リペア一致判定回路２１において、外部リペア用メモリ２０に格納された救済データと、検索データとの一致判定処理が実行される。
【００６８】
そして、外部リペア一致判定回路２１から一致判定信号ＲＨＴがリペアセレクタ２２に出力される。
【００６９】
リペアセレクタ２２は、リペアレジスタ１２０のデータに基づいてメモリアレイ４の検索動作に従う検索結果と、外部リペア一致判定回路２１の一致判定結果の一方を選択してプライオリティエンコーダ５に出力する。
【００７０】
プライオリティエンコーダ５は、リペアセレクタ２２の出力に基づいて一致信号ＨＩＴ＿ＡＲＹとともに優先度の高いアドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］を制御回路８に出力する。
【００７１】
制御回路８は、ピン１３を介して一致信号ＨＩＴ＿ＡＲＹとアドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］を出力する。
【００７２】
ここで、例えば、図４に示される構成では、エントリ番号０に対応するメモリセル行のエントリデータが救済されて、外部リペア用メモリ２０に格納されているとする。
【００７３】
また、エントリ番号０に対応するメモリセル行のＥＶビットは「０」に設定されているものとする。また、リペアレジスタ１２０は「１」に設定されている。
【００７４】
次に、エントリ番号０に対応するエントリデータと一致する検索データが入力されて検索動作が実行された場合について説明する。
【００７５】
この場合、制御回路８は、メモリアレイ４における検索動作を実行するために検索データをＳＬドライバ２３に出力する。
【００７６】
また、制御回路８は、検索データを外部リペア一致判定回路２１に出力する。
メモリアレイ４における検索動作においては、エントリ番号０に対応するマッチ線ＭＬ０は「０」に設定される。
【００７７】
そして、外部リペア一致判定回路２１は、エントリ番号０に対応するエントリデータと一致する検索データが入力された場合に、一致判定信号ＲＨＴ（「１」）をリペアセレクタ２２に出力する。
【００７８】
そして、エントリ番号０に対応するセレクタ１２２は、一致判定信号ＲＨＴ（「１」）をプライオリティエンコーダ５に出力する。
【００７９】
プライオリティエンコーダ５は、当該信号に基づいて一致信号ＨＩＴ＿ＡＲＹ（「１」）およびアドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］（「０００００００」）を制御回路８に出力する。
【００８０】
したがって、従来の方式では、不良エントリデータを救済後にメモリの物理アドレスをプライオリティエンコーダの論理アドレスに合わせる等のメンテナンス動作が必要である。本方式では、リペアセレクタ２２を用いることにより不良エントリデータを救済した場合にも救済する前と同じ状態でプライオリティエンコーダ５に信号が入力されるためアドレスを変換する等のメンテナンス動作が不要である。
【００８１】
したがって、簡易な方式で、長時間のメンテナンス動作を抑制し、検索動作を継続することが可能である。
【００８２】
［故障検出動作］
次に、故障検出回路９による故障検出動作について説明する。
【００８３】
図７は、実施形態１に従う故障検出回路９の構成について説明する図である。
図７を参照して、故障検出回路９は、ＥＣＣ制御回路２０１と、ＥＣＣアドレス生成回路２０２と、ＥＣＣ回路２０３と、データレジスタ２０５と、データ生成回路２０６と、救済データ生成回路２０８と、検索不良検出回路２０９とを含む。
【００８４】
ＥＣＣ制御回路２０１は、メモリアレイ４のエラーチェック（エラー検出）を行うための制御信号ＳＣＥ（Scan Check Enable）を受けて、故障検出回路９内の各回路動作を制御する。制御回路８は、所定条件が満たされた場合に制御信号ＳＣＥを生成してＥＣＣ制御回路２０１に出力する。所定条件として所定期間が経過した場合としても良いし、あるいは、ユーザからの所定入力の指示があった場合でも良い。
【００８５】
ＥＣＣアドレス生成回路２０２は、ＥＣＣ制御回路２０１からの指示に従ってメモリアレイ４に対する読出、書込動作のためのアドレス情報ＥＡＤを生成して出力する。
【００８６】
ＥＣＣ回路２０３は、メモリアレイ４の対象とするエントリデータである読出データＲＤの入力を受けてエラーが発生しているか否かを検出し、検出結果をＥＣＣ制御回路２０１に出力する。また、ＥＣＣ回路２０３は、読出データＲＤを出力してデータレジスタ２０５に格納する。
【００８７】
データ生成回路２０６は、ＥＣＣ制御回路２０１からの指示に従ってデータレジスタ２０５に格納されたデータに基づいて書込データＥＷＤあるいは検索データＥＳＤを生成して出力する。
【００８８】
救済データ生成回路２０８は、ＥＣＣ制御回路２０１からの指示に従ってデータレジスタ２０５に格納されたデータおよびＥＣＣアドレス生成回路２０２により生成されたアドレス情報に基づいて救済データを生成して外部リペア用メモリ２０に出力する。
【００８９】
検索不良検出回路２０９は、ＥＣＣ制御回路２０１からの指示に従って検索動作においてプライオリティエンコーダ５から出力される一致信号ＨＩＴ＿ＡＲＹ（「１」）およびＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］に基づいて検索動作に不良があるか否かを検出する。検索不良検出回路２０９は、当該検出結果をＥＣＣ制御回路２０１に出力する。
【００９０】
図８は、実施形態１に従う故障検出回路９による故障検出動作の処理について説明するフロー図である。
【００９１】
図８を参照して、故障検出回路９は、故障検出の指示があるか否かを判断する（ステップＳ０）。
【００９２】
ＥＣＣ制御回路２０１は、制御回路８から故障検出を指示する制御信号ＳＣＥの入力を受け付けたか否かを判断する。制御回路８は、一例としてＮＯＰ（No Operation）サイクル時あるいは待機状態（Idle）時に制御信号ＳＣＥを故障検出回路９に出力する。
【００９３】
ＥＣＣ制御回路２０１は、故障検出の指示があると判断した場合（ステップＳ０においてＹＥＳ）には、故障検出動作を開始する。具体的には、ＥＣＣ制御回路２０１は、制御信号ＳＣＥの入力に従ってエントリデータの読出動作を実行する（ステップＳ２）。ＥＣＣ制御回路２０１は、読出動作を実行するコマンドＥＣＤを発行するとともに、ＥＣＣアドレス生成回路２０２に読出アドレスを生成するように指示する。ＥＣＣアドレス生成回路２０２は、指示に従ってアドレス情報ＥＡＤを生成する。例えば、ＥＣＣアドレス生成回路２０２は、エントリ番号０に対応するエントリデータを読み出すためのアドレス情報ＥＡＤを生成して出力する。
【００９４】
ロウデコーダ３は、ＥＣＣ制御回路２０１で発行された読出動作を実行するコマンドＥＣＤおよびアドレス情報ＥＡＤに基づいてメモリアレイ４のワード線ＷＬを駆動し読出動作を実行する。例えば、エントリ番号０に対応するメモリセル行のワード線ＷＬを活性化する。これに伴いエントリ番号０に対応するメモリセル行のエントリデータがビット線ＢＬ，／ＢＬを介して読出／書込回路２４に出力される。読出／書込回路２４は、読出データＲＤとしてＥＣＣ回路２０３に出力する。
【００９５】
次に、ＥＣＣ回路２０３は、エラー判定を実行する（ステップＳ４）。また、ＥＣＣ回路２０３は、データレジスタ２０５に読出データＲＤを格納する。
【００９６】
具体的には、メモリセル行のエントリデータは、誤り訂正符号であるパリティビットを含む。一例として、パリティビットは２ビット以上のエラー検出が可能であり、１ビットの誤り訂正が可能であるものとする。
【００９７】
ＥＣＣ回路２０３は、パリティビットに従ってエントリデータにエラーがあるか否かを判定する（ステップＳ６）。
【００９８】
次に、ステップＳ６において、ＥＣＣ回路２０３は、エラーがあると判断した場合（ステップＳ６においてＹＥＳ）には、エラー有りの情報をＥＣＣ制御回路２０１に出力する。
【００９９】
ＥＣＣ制御回路２０１は、ＥＣＣ回路２０３から出力されたエラー有りの情報に基づいて１ビットのエラーであるか否かを判断する（ステップＳ２４）。
【０１００】
ステップＳ２４において、ＥＣＣ制御回路２０１は、ＥＣＣ回路２０３から出力されたエラー有りの情報が１ビットのエラーでないと判断した場合（ステップＳ２４においてＮＯ）には、エラーを通知する（ステップＳ３４）。２ビット以上のエラーであるため誤り訂正処理が実行できないからである。具体的には、ＥＣＣ制御回路２０１は、エラー情報ＥＲを制御回路８に出力する。そして、ステップＳ２０に進む。
【０１０１】
一方、ステップＳ２４において、ＥＣＣ制御回路２０１は、ＥＣＣ回路２０３から出力されたエラー有りの情報が１ビットのエラーであると判断した場合には、１回目のエラーか否かを判断する（ステップＳ２６）。
【０１０２】
ステップＳ２６において、ＥＣＣ制御回路２０１は、１回目のエラーであると判断した場合（ステップＳ２６においてＹＥＳ）には、誤り訂正処理を指示する（ステップＳ２８）。データ生成回路２０６は、パリティビットに従ってデータレジスタ２０５に格納されているエントリデータのエラー訂正処理を実行する。そして、データ生成回路２０６は、訂正後のエントリデータを書込データＥＷＤとして読出／書込回路２４に出力する。
【０１０３】
次に、ステップＳ３０において、ＥＣＣ制御回路２０１は、エントリデータの書込動作を実行する（ステップＳ３０）。ＥＣＣ制御回路２０１は、書込動作を実行するコマンドＥＣＤを発行するとともに、ＥＣＣアドレス生成回路２０２に書込アドレスを生成するように指示する。ＥＣＣアドレス生成回路２０２は、指示に従ってアドレス情報ＥＡＤを生成する。例えば、ＥＣＣアドレス生成回路２０２は、エントリ番号０に対応するメモリセル行にデータ書込するためのアドレス情報ＥＡＤを生成して出力する。
【０１０４】
読出／書込回路２４は、書込動作を実行するコマンドＥＣＤに従って訂正されたエントリデータに従ってビット線ＢＬ，／ＢＬを駆動する。
【０１０５】
そして、ロウデコーダ３は、ＥＣＣ制御回路２０１で発行された書込動作を実行するコマンドＥＣＤおよびアドレス情報ＥＡＤに基づいてメモリアレイ４のワード線ＷＬを駆動して書込動作を実行する。例えば、エントリ番号０に対応するメモリセル行のワード線ＷＬを活性化する。これに伴い、エントリ番号０のワード線ＷＬに対応するメモリセル行の検索メモリセルに対してビット線ＢＬ，／ＢＬを介して訂正された書込データが書込まれる。
【０１０６】
次に、ＥＣＣ制御回路２０１は、ＥＶビットを確認する（ステップＳ３１）。具体的には、訂正されたエントリデータに含まれている検索対象とするか否かを識別する先頭のビットを確認する。
【０１０７】
ＥＣＣ制御回路２０１は、ＥＶビットが「１」であるか否かを判断する（ステップＳ３２）。
【０１０８】
ＥＣＣ制御回路２０１は、ＥＶビットが「１」であると判断した場合（ステップＳ３２においてＹＥＳ）には、ステップＳ１２に進む。なお、ステップＳ１２の一致検索処理の結果、一致判定で一致（ステップＳ１４においてＹＥＳ）となった場合には、ステップＳ２８の誤り訂正処理後にステップＳ３０においてエントリデータ書込を行ったデータは正常であると判断し、１回目で発生したエラーはソフトエラー等であり半導体装置に欠陥がないと判断し、その後に続く不一致判定で一致判定（ステップＳ１８においてＮＯ）とならない限り、ステップＳ１９の救済判定は行わない。
【０１０９】
一方、ＥＣＣ制御回路２０１は、ＥＶビットが「１」でないと判断した場合（ステップＳ３２においてＮＯ）には、ステップＳ２に戻り、ＥＣＣ制御回路２０１は、エントリデータの読出動作を実行する（ステップＳ２）。そして、上記のエラー判定を繰り返す。そして、ステップＳ６において、２回目でエラーが発生しないと判定される場合には、ソフトエラー等であり半導体装置に欠陥がないと判断することが可能である。
【０１１０】
一方、ステップＳ２６において、ＥＣＣ制御回路２０１は、１回目のエラーでないと判断した場合（ステップＳ２６においてＮＯ）には、２回目のエラーであると判断した場合には再書き込みでもエラーが発生したことになるため救済処理を指示する（ステップＳ１９）。ＥＣＣ制御回路２０１は、救済データ生成回路２０８に救済処理を実行するように指示する。救済データ生成回路２０８は、データレジスタ２０５に格納されているエントリデータについて、パリティビットに従ってエントリデータのエラー訂正処理を実行する。そして、救済データ生成回路２０８は、ＥＣＣアドレス生成回路２０２で生成されたアドレス情報とともに外部リペア用メモリ２０に格納する。そして、ステップＳ２０に進む。
【０１１１】
一方、ステップＳ６において、ＥＣＣ回路２０３は、エラーが無いと判断した場合（ステップＳ６においてＮＯ）には、エラー無しの情報をＥＣＣ制御回路２０１に出力する。そして、ＥＣＣ制御回路２０１は、ＥＶビットを確認する（ステップＳ８）。
【０１１２】
具体的には、エントリデータに含まれている検索対象とするか否かを識別する先頭のビットを確認する。
【０１１３】
ＥＣＣ制御回路２０１は、ＥＶビットが「１」であるか否かを判断する（ステップＳ１０）。
【０１１４】
ＥＣＣ制御回路２０１は、ＥＶビットが「１」であると判断した場合（ステップＳ１０においてＹＥＳ）には、一致検索処理を実行する（ステップＳ１２）。実施形態１において、一致検索処理は、対象となるエントリデータと同一の検索データで検索動作を実行した場合に一致（Ｈｉｔ）となるか否かを判定する処理である。
【０１１５】
具体的には、ＥＣＣ制御回路２０１は、データ生成回路２０６に対して検索データＥＳＤを出力するように指示する。データ生成回路２０６は、データレジスタ２０５に格納されているデータを検索データＥＳＤとしてＳＬドライバ２３に出力する。また、ＥＣＣ制御回路２０１は、検索動作を実行するコマンドＥＣＤを生成する。
【０１１６】
ＳＬドライバ２３は、検索動作を実行するコマンドＥＣＤに従って検索データＥＳＤに従ってサーチ線ＳＬ，／ＳＬを駆動する。
【０１１７】
これに伴いエントリデータと、検索データＥＳＤとの間の一致判定動作を実行する。
検索データＥＳＤは、エントリデータと同じデータであるため不良が無い場合には、マッチ線ＭＬは「１」（「Ｈｉｔ」）に設定される。したがって、プライオリティエンコーダ５は、一致信号ＨＩＴ＿ＡＲＹ（「１」）およびＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］を検索不良検出回路２０９に出力する。
【０１１８】
ＥＣＣ制御回路２０１は、検索不良検出回路２０９に指示して一致検索動作の不良の有無を判定させる。検索不良検出回路２０９は、プライオリティエンコーダ５からの一致信号ＨＩＴ＿ＡＲＹ（「１」）およびＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］の入力に基づいて一致検索動作に不良が生じていないかを判定する。
【０１１９】
検索不良検出回路２０９は、検索対象であるアドレスおよびとともに当該一致信号ＨＩＴ＿ＡＲＹ（「１」）の入力に従って一致判定であるか否かを判断する（ステップＳ１４）。具体的には、検索不良検出回路２０９は、一致信号ＨＩＴ＿ＡＲＹが「１」であり、かつ、ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］が検索対象のアドレスと一致するか否かを判定する。そして、検索不良検出回路２０９は、判断結果をＥＣＣ制御回路２０１に出力する。
【０１２０】
ステップＳ１４において、ＥＣＣ制御回路２０１は、検索不良検出回路２０９からの判定結果として一致判定でないと判断した場合（ステップＳ１４においてＮＯ）には、ステップＳ１９に進み、救済処理を指示する。ＥＣＣ制御回路２０１は、検索動作に不良があると判断し、救済データ生成回路２０８に救済処理を実行するように指示する。救済データ生成回路２０８は、データレジスタ２０５に格納されているエントリデータおよびＥＣＣアドレス生成回路２０２で生成されたアドレス情報とを外部リペア用メモリ２０に格納する。そして、ステップＳ２０に進む。
【０１２１】
ステップＳ１４において、ＥＣＣ制御回路２０１は、検索不良検出回路２０９からの判定結果として一致判定であると判断した場合（ステップＳ１４においてＹＥＳ）には、次に、不一致検索処理を実行する（ステップＳ１６）。実施形態１において、不一致検索処理は、対象となるエントリデータと異なる検索データで検索動作を実行した場合に不一致（Ｍｉｓｓ）となるか否かを判定する処理である。
【０１２２】
具体的には、ＥＣＣ制御回路２０１は、データ生成回路２０６に対して検索ＥＳＤを出力するように指示する。データ生成回路２０６は、データレジスタ２０５に格納されているデータのうちの少なくとも１ビットを反転させた不一致となる検索データＥＳＤをＳＬドライバ２３に出力する。また、ＥＣＣ制御回路２０１は、検索動作を実行するコマンドＥＣＤを生成する。
【０１２３】
ＳＬドライバ２３は、検索動作を実行するコマンドＥＣＤに従って検索データＥＳＤに従ってサーチ線ＳＬ，／ＳＬを駆動する。
【０１２４】
これに伴いエントリデータと、検索データＥＳＤとの間の不一致判定動作を実行する。
検索データＥＳＤは、エントリデータと異なるデータであるため不良が無い場合には、マッチ線ＭＬは「０」（「Ｍｉｓｓ」）に設定される。したがって、プライオリティエンコーダ５は、検索不良検出回路２０９に対して一致信号ＨＩＴ＿ＡＲＹ（「０」）を出力する。
【０１２５】
ＥＣＣ制御回路２０１は、検索不良検出回路２０９に指示して不一致検索動作の不良の有無を判定させる。検索不良検出回路２０９は、プライオリティエンコーダ５からの一致信号ＨＩＴ＿ＡＲＹ（「０」）の入力に基づいて不一致検索動作に不良が生じていないかを判定する。
【０１２６】
検索不良検出回路２０９は、一致信号ＨＩＴ＿ＡＲＹが「０」であるか、ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］が検索対象のアドレスに対し不一致判定であるか否かを判断する（ステップＳ１８）。そして、検索不良検出回路２０９は、判断結果をＥＣＣ制御回路２０１に出力する。
【０１２７】
ステップＳ１８において、ＥＣＣ制御回路２０１は、検索不良検出回路２０９からの判定結果として不一致判定でないと判断した場合（ステップＳ１８においてＮＯ）には、ステップＳ１９に進み、救済処理を指示する。ＥＣＣ制御回路２０１は、検索動作に不良があると判断し、救済データ生成回路２０８に救済処理を実行するように指示する。救済データ生成回路２０８は、データレジスタ２０５に格納されているエントリデータおよびＥＣＣアドレス生成回路２０２で生成されたアドレス情報とを外部リペア用メモリ２０に格納する。そして、ステップＳ２０に進む。
【０１２８】
一方、ステップＳ１８において、ＥＣＣ制御回路２０１は、検索不良検出回路２０９からの判定結果として不一致判定であると判断した場合（ステップＳ１８においてＹＥＳ）には、全てのエントリデータに対して故障検出の確認をしたか否かを判断する（ステップＳ２０）。なお、不一致判定動作について、データ生成回路２０６は、データレジスタ２０５に格納されているデータのうちの少なくとも１ビットを反転させた不一致となる検索データＥＳＤをＳＬドライバ２３に出力し、ＥＣＣ制御回路２０１は、検索動作を実行するコマンドＥＣＤを生成する場合について説明した。当該動作をエントリデータに対して１ビットずつシフトさせることにより全ビットについて不一致判定動作を実行することも可能である。
【０１２９】
ステップＳ２０において、ＥＣＣ制御回路２０１は、全てのエントリデータに対して故障検出の確認をしたと判断した場合（ステップＳ２０においてＹＥＳ）には、処理を終了する（エンド）。
【０１３０】
一方、ステップＳ２０において、ＥＣＣ制御回路２０１は、全てのエントリデータに対して故障検出の確認をしていないと判断した場合（ステップＳ２０においてＮＯ）には、次のエントリデータを選択対象とする（ステップＳ２２）。そして、ステップＳ２に戻り、上記処理を繰り返す。具体的には、ＥＣＣ制御回路２０１は、読出動作を実行するコマンドＥＣＤを発行するとともに、ＥＣＣアドレス生成回路２０２に読出アドレスを生成するように指示する。例えば、ＥＣＣアドレス生成回路２０２は、エントリ番号０の次のエントリ番号１に対応するエントリデータを読み出すためのアドレス情報ＥＡＤを生成して出力する。なお、図８の故障検出のフローを全エントリ実行する時間を短縮するために、不一致判定を削除して検出する故障を限定しても良い。
【０１３１】
以降の処理は同様であるのでその詳細な説明については繰り返さない。
一方、ステップＳ１０において、ＥＶビットが「１」でないと判断した場合（ステップＳ１０においてＮＯ）には、検索対象のエントリデータではないのでステップＳ２０に進む。
【０１３２】
図９は、実施形態１に従う故障検出動作の処理時間について説明する図である。
図９には、比較例として従来と実施形態の故障検出動作の処理の流れが説明されている。
【０１３３】
従来の故障検出動作は、エラーを検出した場合に、パリティビットに基づいてエントリデータに対して誤り訂正処理を実行する。そして、当該誤り訂正処理でもエラーが改善されなかった場合には、故障確定と判断していた。そして、メンテナンス期間においてメンテナンス動作を実行していた。具体的には、救済前のメモリの物理アドレスをプライオリティエンコーダやロウデコーダの論理アドレスに合わせてデータを移動するメンテナンス動作を実行していた。したがって、大幅な時間が必要であった。
【０１３４】
一方、実施形態の故障検出動作は、エラーを検出した場合に、パリティビットに基づいてエントリデータに対して誤り訂正処理を実行する。そして、当該誤り訂正処理でもエラーが改善されなかった場合には、故障確定と判断する。そして、救済処理を実行する。具体的には、エラー訂正されたエントリデータをアドレス情報とともに外部リペア用メモリ２０に格納する。
【０１３５】
そして、以降は、検索データについて、メモリアレイ４とともに外部リペア用メモリ２０を用いた検索動作を実行する。当該処理により、検索禁止期間を大幅に短縮することが可能であり、検索動作を早期に再開することが可能である。
【０１３６】
［ハードリペア動作］
図１０は、実施形態１に従うハードリペア動作について説明する図である。
【０１３７】
図１０を参照して、実施形態１に従うハードリペア動作は、検索動作期間中に実行することが可能である。
【０１３８】
具体的には、故障検出回路９は、外部リペア用メモリ２０に格納されている救済情報をｅＦＵＳＥ７に格納する。ｅＦＵＳＥ７は、電子的にプログラム可能なヒューズであり、ソフトウェアを用いて切断することも可能である。ｅＦＵＳＥ７に検索動作期間中に救済情報を格納することにより検索動作を中断することなく継続した検索動作を実行することが可能である。
【０１３９】
そして、本例においては、電源オンから電源オフに設定された場合が示されている。
一例として、外部リペア用メモリ２０は、電源オフにより格納されたデータを保持することができないものとする。
【０１４０】
したがって、ｅＦＵＳＥ７に救済情報を格納することにより、固定的にデータを保持することが可能である。
【０１４１】
本例においては、電源オフから電源オンの復帰後のイニシャルシーケンス期間において、救済情報の読出設定処理を実行する場合が示されている。
【０１４２】
具体的には、ハードリペア制御回路６は、ｅＦＵＳＥ７に格納されている救済情報を救済情報ラッチ回路２に出力する。
【０１４３】
救済情報ラッチ回路２は、ハードリペア制御回路６から出力された救済情報を保持する。
【０１４４】
これにより、メモリアレイ４のスペアとして設けられた冗長メモリセル行を用いて故障検出されたエントリデータを救済した状態を維持することが可能である。すなわち、電源を遮断しても不良したエントリデータを救済した状態を維持できる。
【０１４５】
また、電源オフから電源オンの復帰後のイニシャルシーケンス期間において、救済情報の読出設定処理を実行する別の方式として、ハードリペア制御回路６は、ｅＦＵＳＥ７に格納されている救済情報を外部リペア用メモリ２０に格納するようにしても良い。
【０１４６】
これにより、電源を遮断しても、電源オン後に、不良となったエントリデータを救済した状態に早期に設定することが可能である。
【０１４７】
なお、本例においては、外部リペア用メモリ２０は、電源オフにより格納されたデータを保持することが揮発性のメモリである場合について説明したが、これに限られず不揮発性のメモリとすることも可能である。
【０１４８】
（実施形態２）
図１１は、実施形態２に従うＣＡＭ１＃を説明する図である。
【０１４９】
図１１を参照して、半導体装置の一例としてＣＡＭ１＃は、ＣＡＭ１と比較して、リペアセレクタ２２を削除した点が異なる。また、ＣＡＭ１＃は、ＣＡＭ１と比較してプライオリティ比較回路５０を追加するとともに、外部リペア一致判定回路２１を外部リペア一致判定回路２１＃に置換した点がさらに異なる。
【０１５０】
その他の構成については図１で説明したのと同様であるのでその詳細な説明については繰り返さない。
【０１５１】
実施形態１の構成においては、外部リペア一致判定回路２１からの一致判定信号ＲＨＴをリペアセレクタ２２を介してプライオリティエンコーダ５に出力する方式について説明した。
【０１５２】
一方で、実施形態２においては、外部リペア一致判定回路２１＃は、外部リペア用メモリ２０に格納された救済データと検索データとの一致判定処理を実行する。
【０１５３】
外部リペア一致判定回路２１＃は、一致判定信号ＲＨＴとともに、アドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］をプライオリティ比較回路５０に出力する。
【０１５４】
プライオリティエンコーダ５は、メモリアレイ４の出力に基づいて一致信号ＨＩＴ＿ＡＲＹとともに優先度の高いアドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］をプライオリティ比較回路５０に出力する。
【０１５５】
プライオリティ比較回路５０は、アドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］と、アドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］とを比較して、所定の規則に基づいて一方を優先度の高いアドレス情報として制御回路８に一致信号とともに出力する。
【０１５６】
図１２は、実施形態２に従うプライオリティ比較回路５０の回路構成について説明する図である。
【０１５７】
図１２を参照して、プライオリティ比較回路５０は、ＯＲ回路６０，６１，６２と、比較器６３と、セレクタ６４とを含む。
【０１５８】
ＯＲ回路６０は、アドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］と、一致信号ＨＩＴ＿ＡＲＹの反転信号とのＯＲ論理演算結果を比較器６３に出力する。
【０１５９】
具体的には、一致信号ＨＩＴ＿ＡＲＹが「１」の場合に、アドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］が比較器６３にそのまま有効に入力される。一方、一致信号ＨＩＴ_ＡＲＹが「０」の場合には、ＯＲ回路６０は「１」を出力する。この場合には、比較器６３には無効な信号が入力される。
【０１６０】
ＯＲ回路６１は、アドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］と、一致判定信号ＲＨＴの反転信号とのＯＲ論理演算結果を比較器６３に出力する。
【０１６１】
具体的には、一致判定信号ＲＨＴが「１」の場合に、アドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］が比較器６３にそのまま有効に入力される。一方、一致判定信号ＲＨＴが「０」の場合には、ＯＲ回路６１は「１」を出力する。この場合には、比較器６３には無効な信号が入力される。
【０１６２】
比較器６３は、ＯＲ回路６０および６１からのアドレス情報を受けて比較判定し、値が小さいアドレス情報をセレクタ６４に出力する。
【０１６３】
ＯＲ回路６２は、一致信号ＨＩＴ＿ＡＲＹおよび一致判定信号ＲＨＴの入力を受けてそのＯＲ論理演算結果を一致信号ＨＩＴとして出力するとともに、セレクタ６４の切替信号として出力する。
【０１６４】
セレクタ６４は、アドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］と、比較器６３からの出力信号とを受けて、一方を選択してアドレス情報ＨＩＴ＿ＡＤＤ［６：０］として出力する。
【０１６５】
セレクタ６４は、一致信号ＨＩＴが「１」の場合には、比較器６３の出力をアドレス情報ＨＩＴ＿ＡＤＤ［６：０］として出力する。一方、セレクタ６４は、一致信号ＨＩＴが「０」の場合には、アドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］をアドレス情報ＨＩＴ＿ＡＤＤ［６：０］として出力する。
【０１６６】
例えば、一致信号ＨＩＴ＿ＡＲＹのみが「１」の場合には、一致信号ＨＩＴは「１」に設定される。セレクタ６４は、アドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］をアドレス情報ＨＩＴ＿ＡＤＤ［６：０］として出力する。
【０１６７】
例えば、一致判定信号ＲＨＴのみが「１」の場合には、一致信号ＨＩＴは「１」に設定される。セレクタ６４は、アドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］をアドレス情報ＨＩＴ＿ＡＤＤ［６：０］として出力する。
【０１６８】
例えば、一致信号ＨＩＴ＿ＡＲＹおよび一致判定信号ＲＨＴが「１」の場合には、一致信号ＨＩＴは「１」に設定される。セレクタ６４は、比較器６３の出力結果であるアドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］およびアドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］のうちの小さいアドレス情報をアドレス情報ＨＩＴ＿ＡＤＤ［６：０］として出力する。
【０１６９】
当該構成により、リペアセレクタ２２を削除して、外部で一致判定動作を実行することが可能である。すなわち、不良エントリデータを救済した場合にもメモリアレイ４と独立した外部で検索データの一致判定動作を実行するため、アドレスを変換する等のメンテナンス動作が不要である。
【０１７０】
したがって、簡易な方式で、長時間のメンテナンス動作を抑制し、検索動作を継続することが可能である。
【０１７１】
（実施形態３）
実施形態３においては、特定のエントリデータのみを検索対象する構成について説明する。
【０１７２】
具体的には、メモリアレイ４の周辺回路としてエントリ選択回路７０を設ける構成について説明する。
【０１７３】
図１３は、実施形態３に従うエントリ選択回路７０の構成を説明する図である。
図１３を参照して、エントリ選択回路７０は、エントリ選択レジスタ７２と、複数のＯＲ回路７１と、複数のセレクタ７５とを含む。
【０１７４】
エントリ選択レジスタ７２は、各メモリセル行に対応して検索対象の有無を識別するデータを格納することが可能である。本例においては、エントリ選択レジスタ７２は、一例としてエントリ番号「１」に対応する位置にデータ「１」を格納している。それ以外は「０」に設定されている。
【０１７５】
メモリセル行にそれぞれ対応してＯＲ回路７１およびセレクタ７５が設けられる。
ＯＲ回路７１は、対応するエントリ選択レジスタのデータと制御信号ＳＣＡＮ＿ＥＮの反転信号の入力を受けて、そのＯＲ論理演算結果を対応するセレクタ７５に出力する。
【０１７６】
セレクタ７５は、対応するメモリセル行のマッチ線ＭＬと、制御信号ＭＬ＿ＣＴＬとの入力を受けて、対応するＯＲ回路７１の信号に従ってその一方を選択してプライオリティエンコーダ５に出力する。
【０１７７】
具体的には、セレクタ７５は、対応するＯＲ回路７１の信号が「１」の場合には、対応するマッチ線ＭＬを選択してその信号をプライオリティエンコーダ５に出力する。
【０１７８】
一方、セレクタ７５は、対応するＯＲ回路７１の信号が「０」の場合には、制御信号ＭＬ＿ＣＴＬを選択してその信号をプライオリティエンコーダ５に出力する。
【０１７９】
具体的な動作について説明する。
特定のエントリデータのみを検索対象としない場合、すなわち、通常の検索動作時においては、制御信号ＳＣＡＮ＿ＥＮは「０」に設定されている。
【０１８０】
これに従い、ＯＲ回路７１は、全て「１」に設定される。
したがって、セレクタ７５は、全てマッチ線ＭＬを選択して、当該マッチ線ＭＬの信号をプライオリティエンコーダ５に出力する。
【０１８１】
一方、特定のエントリのみを検索対象とする場合には、制御信号ＳＣＡＮ＿ＥＮは「１」に設定される。また、制御信号ＭＬ＿ＣＴＬは「０」に設定される。
【０１８２】
これに従い、エントリ選択レジスタ７２のデータに依存して、セレクタ７５は選択動作を実行する。
【０１８３】
具体的には、エントリ選択レジスタ７２のデータが「１」に設定されているメモリセル行に対応するセレクタ７５は、マッチ線ＭＬを選択する。一方、エントリ選択レジスタ７２のデータが「０」に設定されているメモリセル行に対応するセレクタ７５は、制御信号ＭＬ＿ＣＴＬを選択する。
【０１８４】
したがって、エントリ選択レジスタ７２のデータが「１」に設定されているメモリセル行のマッチ線ＭＬの信号がプライオリティエンコーダ５に出力される。一方、エントリ選択レジスタ７２のデータが「０」に設定されているメモリセル行については不一致を示す「０」がプライオリティエンコーダ５に出力される。
【０１８５】
これにより、エントリ選択レジスタ７２のデータが「１」に設定されているメモリセル行のエントリデータのみ検索対象とし、他のメモリセル行を検索対象外とすることが可能である。
【０１８６】
ＥＣＣ制御回路２０１は、当該エントリ選択レジスタ７２の設定および制御信号ＳＣＡＮ＿ＥＮならびに制御信号ＭＬ＿ＣＴＬの設定を実行する。なお、ＥＣＣ制御回路２０１に限られず、制御回路８が当該設定を実行するようにしても良い。
【０１８７】
実施形態３に従うエントリ選択回路７０を設けることにより、例えば、実施形態１で説明した一致検索処理および不一致検索処理において、指定したエントリデータのみを検索対象とし、他のエントリデータを簡易な方式で検索対象外とすることが可能である。
【０１８８】
（実施形態４）
図１４は、実施形態４に従うＣＡＭ１Ｐを説明する図である。
【０１８９】
図１４を参照して、半導体装置の一例としてＣＡＭ１Ｐは、ＣＡＭ１と比較して、メモリアレイが複数のアレイブロックＢ［１］〜Ｂ［ｎ］として設けられている点が異なる。
【０１９０】
各アレイブロックＢは、図１で説明したのと同様に、救済情報ラッチ回路２、ロウデコーダ３、メモリアレイ４、リペアセレクタ２２、プライオリティエンコーダ５を有する。アレイブロックＢは、メモリアレイ４と同様に行列状に配置された複数の検索メモリセルを有する。
【０１９１】
そして、本例においては、複数のアレイブロックＢ［１］〜Ｂ［ｎ］に対応して共通に救済ユニット４１を設けた構成が示されている。
【０１９２】
救済ユニット４１は、ハードリペア制御回路６と、ｅＦＵＳＥ７と、制御回路８と、故障検出回路９と、外部リペア用メモリ２０と、外部リペア一致判定回路２１とを含む。
【０１９３】
各部の機能については実施形態１で説明したのと同様であるのでその詳細な説明については繰り返さない。
【０１９４】
複数のアレイブロックＢで共通に救済ユニット４１を設けることにより、救済ユニット４１の機能を効率的に活用して、故障検出動作を実行することが可能である。これにより、全体のレイアウト面積を縮小することが可能である。
【０１９５】
（実施形態５）
図１５は、実施形態５に従うメモリアレイ４が複数のメモリブロックＭＢに分割されている場合を説明する図である。
【０１９６】
図１５を参照して、本例においては、一例としてメモリアレイ４が複数のメモリブロックＭＢ１〜ＭＢ４に分割されている場合が示されている。具体的には、１６０ビット長の一致検索を行うために、１６０ビットのエントリデータを４０ビット毎の４つのメモリブロックＭＢに分割してそれぞれ格納し、ＡＮＤ回路ＡＤ１〜ＡＤ３を設けている場合が示されている。
【０１９７】
ＡＮＤ回路ＡＤ１は、メモブロックＭＢ１のマッチ線ＭＬの信号とメモリブロックＭＢ２のマッチ線ＭＬの信号とのＡＮＤ論理演算結果を出力する。
【０１９８】
ＡＮＤ回路ＡＤ２は、ＡＮＤ回路ＡＤ１の出力と、メモリブロックＭＢ３のマッチ線ＭＬの信号とのＡＮＤ論理演算結果を出力する。
【０１９９】
ＡＮＤ回路ＡＤ３は、ＡＮＤ回路ＡＤ２の出力と、メモリブロックＭＢ４のマッチ線ＭＬの信号とのＡＮＤ論理演算結果をプライオリティエンコーダ５に出力する。
【０２００】
１６０ビットのエントリデータと同一の検索データの検索動作を実行した場合には、メモリブロックＭＢ１〜ＭＢ４のそれぞれのマッチ線ＭＬの信号は「１」に設定される。
【０２０１】
最終的にＡＮＤ回路ＡＤ３は、一致信号Ｈｉｔ（「１」）をプライオリティエンコーダ５に出力する。また、リペアセレクタ２２は、各メモリブロックＭＢに対応して設けられる場合が示されている。
【０２０２】
具体的には、メモリブロックＭＢ１〜ＭＢ４にそれぞれ対応してリペアセレクタ２２−１〜２２−４が設けられる場合が示されている。
【０２０３】
また、複数のメモリブロックＭＢに対応して共通の外部リペア用メモリ２０および外部リペア一致判定回路２１が設けられる。
【０２０４】
ここで、一例としてメモリブロックＭＢ２のマッチ線ＭＬに不良が生じた場合が示されている。また、不良が生じたメモリセル行に対応するエントリデータが外部リペア用メモリ２０に格納されている。
【０２０５】
本例においては、外部リペア一致判定回路２１は、外部リペア用メモリ２０に格納された救済データと検索データとの一致判定動作により一致判定信号ＲＨＴをメモリブロックＭＢ１〜ＭＢ４のリペアセレクタ２２−１〜２２−４に出力する。なお、不良エントリのあるリペアセレクタ２２−２内の不良エントリに該当するリペアレジスタ１２０には、あらかじめ「１」のデータを格納する。
【０２０６】
当該方式においてもリペアセレクタ２２を用いることにより、不良エントリデータを救済した場合にも救済する前と同じ状態でプライオリティエンコーダ５に信号が入力されるためアドレスを変換する等のメンテナンス動作が不要である。
【０２０７】
そして、外部リペア用メモリ２０は、１６０ビットのデータを保持するための領域を確保する必要はなく、４０ビットのデータを保持するのみで足りるためメモリのレイアウトも縮小することが可能である。
【０２０８】
（実施形態５の変形例）
図１６は、実施形態５の変形例に従うメモリアレイ４が複数のメモリブロックＭＢに分割されている場合を説明する別の図である。
【０２０９】
図１６を参照して、本例においては、一例としてメモリアレイ４が複数のメモリブロックＭＢ１＃〜ＭＢ４＃に分割されている場合が示されている。具体的には、１６０ビット長の一致検索を行うために、１６０ビットのエントリデータを４０ビット毎の４つのメモリブロックＭＢ＃に分割してそれぞれ格納し、ＡＮＤ回路ＡＤ１〜ＡＤ３を設けている場合が示されている。また、本例においては、実施形態２で説明したリペアセレクタ２２は設けられない構成が示されている。
【０２１０】
ＡＮＤ回路ＡＤ１は、メモブロックＭＢ１＃のマッチ線ＭＬの信号とメモリブロックＭＢ２＃のマッチ線ＭＬの信号とのＡＮＤ論理演算結果を出力する。
【０２１１】
ＡＮＤ回路ＡＤ２は、ＡＮＤ回路ＡＤ１の出力と、メモリブロックＭＢ３＃のマッチ線ＭＬの信号とのＡＮＤ論理演算結果を出力する。
【０２１２】
ＡＮＤ回路ＡＤ３は、ＡＮＤ回路ＡＤ２の出力と、メモリブロックＭＢ４＃のマッチ線ＭＬの信号とのＡＮＤ論理演算結果をプライオリティエンコーダ５に出力する。
【０２１３】
１６０ビットのエントリデータと同一の検索データの検索動作を実行する場合には、メモリブロックＭＢ１＃〜ＭＢ４＃のそれぞれマッチ線ＭＬの信号は「１」に設定される。
【０２１４】
最終的にＡＮＤ回路ＡＤ３は、一致信号Ｈｉｔ（「１」）をプライオリティエンコーダ５に出力する。
【０２１５】
また、複数のメモリブロックＭＢ＃にそれぞれ対応して設けられた外部リペア用メモリ２０−１〜２０−４と、外部リペア一致判定回路２１＃が設けられる。
【０２１６】
ここで、メモリブロックＭＢ２のマッチ線ＭＬに不良が生じた場合が示されている。
そして、不良が生じたメモリセル行に対応する全エントリデータが外部リペア用メモリ２０−１〜２０−４にそれぞれ格納される。
【０２１７】
具体的には、メモリブロックＭＢ＃１〜ＭＢ＃４にそれぞれ格納されているエントリデータが外部リペア用メモリ２０−１〜２０−４にそれぞれ格納される。
【０２１８】
外部リペア一致判定回路２１＃は、外部リペア用メモリ２０−１〜２０−４にそれぞれ格納された救済データと検索データとの一致判定動作を実行する。
【０２１９】
外部リペア一致判定回路２１＃は、一致判定信号ＲＨＴとともに、アドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］をプライオリティ比較回路５０に出力する。
【０２２０】
プライオリティエンコーダ５は、メモリアレイ４の出力に基づいて一致信号ＨＩＴ＿ＡＲＹとともに優先度の高いアドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］をプライオリティ比較回路５０に出力する。
【０２２１】
プライオリティ比較回路５０は、アドレス情報ＨＩＴ＿ＡＲＹ＿ＡＤＤ［６：０］と、アドレス情報ＨＩＴ＿ＥＸＴ＿ＡＤＤ［６：０］とを比較して、所定の規則に基づいて一方を優先度の高いアドレス情報として制御回路８に一致信号とともに出力する。
【０２２２】
当該方式においても実施形態２で説明したように、不良エントリデータを救済した場合にもメモリアレイ４と独立した外部で検索データの一致判定動作を実行するため、アドレスを変換する等のメンテナンス動作が不要である。
【０２２３】
したがって、簡易な方式で、長時間のメンテナンス動作を抑制し、検索動作を継続することが可能である。
【０２２４】
（実施形態６）
図１７は、実施形態６に従うメモリアレイの構成について説明する図である。
【０２２５】
図１７を参照して、メモリアレイは、複数のメモリブロックＭＢに分割されている。
本例においては、一例としてメモリアレイ４が複数のメモリブロックＭＢ１〜ＭＢ８に分割されている場合が示されている。具体的には、３２０ビット長の一致検索を行うために、３２０ビットのエントリデータを４０ビット毎の８つのメモリブロックＭＢに分割してそれぞれ格納し、ＡＮＤ回路ＡＤ１〜ＡＤ７を設けている場合が示されている。
【０２２６】
上記で説明したのと同様に、ＡＮＤ回路ＡＤ１は、メモブロックＭＢ１からの信号とメモリブロックＭＢ２からの信号とのＡＮＤ論理演算結果を出力する。
【０２２７】
ＡＮＤ回路ＡＤ２は、ＡＮＤ回路ＡＤ１の出力と、メモリブロックＭＢ３からの信号とのＡＮＤ論理演算結果を出力する。他のＡＮＤ回路ＡＤについても同様である。
【０２２８】
各メモリブロックＭＢは、ミス検知切替回路群８２を含む。ここではリペアセレクタ２２は省略されている。各メモリセル行に対応してミス検知切替回路８３が設けられる。
【０２２９】
図１８は、実施形態６に従うミス検知切替回路８３の回路構成図である。
図１８を参照して、ミス検知切替回路８３は、インバータ９０と、セレクタ９１とを含む。
【０２３０】
セレクタ９１は、対応するマッチ線ＭＬの信号と、インバータ９０を介するマッチ線ＭＬの反転信号との入力を受けて、制御信号ＭＳＬの入力に従って一方を選択して出力する。
【０２３１】
具体的には、制御信号ＭＳＬが「０」の場合には、セレクタ９１は、対応するマッチ線ＭＬの信号を選択して出力する。制御信号ＭＳＬが「１」の場合には、セレクタ９１は、マッチ線ＭＬの反転信号を選択して出力する。
【０２３２】
ＥＣＣ制御回路２０１は、制御信号ＭＳＬの設定を実行する。なお、ＥＣＣ制御回路２０１に限られず、制御回路８が当該設定を実行するようにしても良い。
【０２３３】
実施形態６においては、故障検出回路９による故障検出動作において、ＥＣＣ制御回路２０１は、不一致検索処理を実行する場合に制御信号ＭＳＬを「１」に設定する。一方、それ以外の場合に、ＥＣＣ制御回路２０１は、制御信号ＭＳＬを「０」に設定する。
【０２３４】
上記したように、不一致検索処理は、エントリデータと、検索データとの間の不一致を判定する処理である。具体的には、検索データは、エントリデータに対して、少なくとも１ビットを反転させたデータである。この場合、マッチ線ＭＬは、不一致（「Ｍｉｓｓ」）である「０」に設定される。
【０２３５】
ミス検知切替回路８３は、当該信号の反転信号を生成して出力する。８個のメモリブロックＭＢのそれぞれにおいて、マッチ線ＭＬが「０」（「Ｍｉｓｓ」）である場合、すなわち、全てのメモリブロックＭＢでマッチ線ＭＬが「０」である場合に、ＡＤ回路ＡＤ７は、プライオリティエンコーダ５には不一致判定信号（「１」）を出力する。
【０２３６】
これにより、各メモリブロックＭＢにおける検索結果が全て不一致の場合に、プライオリティエンコーダ５は、一致ＨＩＴとして処理することが可能である。
【０２３７】
すなわち、ミス検知切替回路８３を設けることにより、不一致検索処理を実行するための論理回路を別に設ける必要が無く、一致検索処理と同様の論理回路を用いることが可能である。
【０２３８】
また、複数のメモリブロックＭＢ毎にそれぞれ不一致となる検索データを並列的に入力するため各メモリブロックに対する不一致検索を効率的に実行することが可能である。
【０２３９】
具体的には、各メモリブロックＭＢにおいて検索結果が不一致となるように３２０ビットのデータに対して８ビットの不一致検索動作を並列に実行することが可能であり、実施形態３に従うエントリ選択回路７０を併用することで、プライオリティエンコーダ５の出力は他のエントリの不一致検索結果に影響を受けない。
【０２４０】
当該方式により、不一致検索処理の時間を短縮することが可能である。
（実施形態７）
実施形態７は、故障検出動作の信頼性を向上させる方式について説明する。
【０２４１】
図１９は、実施形態７に従うマッチ線ＭＬに設けられているマッチアンプＭＡの構成を説明する図である。
【０２４２】
図１９を参照して、マッチアンプＭＡは、制御信号ＭＡＥに従って活性化され、マッチ線ＭＬの信号を増幅してデータＭＡＯとして出力する。
【０２４３】
また、本例においては、マッチ線ＭＬをプリチャージするプリチャージ回路も設けられている。具体的には、電源電圧ＶＤＤとマッチ線ＭＬとの間に設けられたトランジスタ１１０２をさらに設ける。当該トランジスタ１１０２は、制御信号ＭＬＰＲＥ＿Ｐの入力を受ける。トランジスタ１１０２は、ＰチャネルＭＯＳトランジスタである。
【０２４４】
制御回路８は、制御信号ＭＡＥおよび制御信号ＭＬＰＲＥ＿Ｐを出力する。また、当該制御信号の出力タイミングを調整する。
【０２４５】
制御信号ＭＬＰＲＥ＿Ｐが「０」の場合に、トランジスタ１１０２はオンする。これにより、マッチ線ＭＬと電源電圧ＶＤＤとが接続され、マッチ線ＭＬは、プリチャージされる。制御信号ＭＬＰＲＥ＿Ｐが「１」の場合に、トランジスタ１１０２はオフする。これにより、マッチ線ＭＬと電源電圧ＶＤＤとが切離され、マッチ線ＭＬのプリチャージが終了する。
【０２４６】
本例においては、ＴＣＡＭセルＭＣのデータ比較部１３の構成が示されている。
ＴＣＡＭセルＭＣが１ビットミスとなる場合が示されている。
【０２４７】
この場合、ＴＣＡＭセルＭＣに格納されているデータと、検索データとは不一致である。
【０２４８】
したがって、マッチ線ＭＬは、接地電圧ＧＮＤと接続され、「０」に設定される。
このマッチ線ＭＬが「０」に設定されるまでの時間により不一致検索を検証する。
【０２４９】
図２０は、実施形態７に従うマッチアンプＭＡの動作を説明するタイミングチャート図である。
【０２５０】
図２０を参照して、本例においては、クロック信号ＣＬＫに同期して動作する場合が示されている。
【０２５１】
時刻Ｔ１において、クロック信号ＣＬＫに同期してサーチ動作が実行される。
これと共に、制御信号ＭＬＰＲＥ＿Ｐは、「０」に設定される。したがって、マッチ線ＭＬは、電源電圧ＶＤＤにプリチャージされる。
【０２５２】
時刻Ｔ２において、クロック信号ＣＬＫの立ち下がりに同期して制御信号ＭＬＰＲＥ＿Ｐは「１」に設定される。したがって、マッチ線ＭＬのプリチャージ状態が解除される。
【０２５３】
そして、検索データＳＤが入力され、サーチ線ＳＬが駆動される。
検索データＳＤとＴＣＡＭセルに格納されているデータとが不一致であればマッチ線ＭＬは、「０」に徐々にシフトする。一方、検索データＳＤとＴＣＡＭセルに格納されているデータとが一致であればマッチ線ＭＬは、「１」の状態を維持する。
【０２５４】
本例においては、時刻Ｔ３において、制御信号ＭＡＥを「１」に設定した場合が示されいる。通常時においては、時刻Ｔ４において、制御信号ＭＡＥを「１」に設定する。すなわち、通常時よりも早いタイミングで制御信号ＭＡＥを「１」に設定した場合が示されている。
【０２５５】
具体的には、通常時よりも早いタイミングで制御信号ＭＡＥを「１」に設定することによりミス検知の判定を厳しく設定することが可能である。
【０２５６】
図２１は、実施形態７に従うマッチ線ＭＬに設けられているマッチアンプＭＡの構成を説明する別の図である。
【０２５７】
図２１を参照して、図１９の構成と基本的には同様である。
本例においては、ＴＣＡＭセルＭＣのデータ比較部１３の構成が示されている。
【０２５８】
そして、ＴＣＡＭセルＭＣが一致（Ｈｉｔ）となる場合が示されている。
この場合、ＴＣＡＭセルＭＣに格納されているデータと、検索データとは一致である。
【０２５９】
したがって、マッチ線ＭＬは、「１」に維持される。
一方で、トランジスタを介するオフリーク電流が生じる。マッチ線ＭＬが「１」の状態を維持する時間により一致検索を検証する。
【０２６０】
図２２は、実施形態７に従うマッチアンプＭＡの動作を説明する別のタイミングチャート図である。
【０２６１】
図２２を参照して、本例においては、クロック信号ＣＬＫに同期して動作する場合が示されている。
【０２６２】
時刻Ｔ１０において、クロック信号ＣＬＫに同期してサーチ動作が実行される。
これと共に、制御信号ＭＬＰＲＥ＿Ｐは、「０」に設定される。したがって、マッチ線ＭＬは、電源電圧ＶＤＤにプリチャージされる。
【０２６３】
時刻Ｔ１１において、クロック信号ＣＬＫの立ち下がりに同期して制御信号ＭＬＰＲＥ＿Ｐは「１」に設定される。したがって、マッチ線ＭＬのプリチャージ状態が解除される。
【０２６４】
そして、検索データＳＤが入力され、サーチ線ＳＬが駆動される。
検索データとＴＣＡＭセルに格納されているデータとが一致であればマッチ線ＭＬは、「１」の状態を維持する。一方、検索データとＴＣＡＭセルに格納されているデータとが不一致であればマッチ線ＭＬは、「０」に徐々に移行する。
【０２６５】
本例においては、時刻Ｔ１３において、制御信号ＭＡＥを「１」に設定した場合が示されいる。通常時においては、時刻Ｔ１２において、制御信号ＭＡＥを「１」に設定する。すなわち、通常時よりも遅いタイミングで制御信号ＭＡＥを「１」に設定した場合が示されている。
【０２６６】
具体的には、通常時よりも遅いタイミングで制御信号ＭＡＥを「１」に設定することにより一致判定を厳しく設定することが可能である。
【０２６７】
図２３は、実施形態７に従う遅延選択回路２１０の構成について説明する図である。
図２３を参照して、遅延選択回路２１０は、制御回路８に含まれる。
【０２６８】
遅延選択回路２１０は、固定遅延２１２−１〜２１２−５と、セレクタ２１４と、ＡＮＤ回路２１５とを含む。
【０２６９】
ＡＮＤ回路２１５は、制御信号ＭＬＰＲＥ＿Ｐとセレクタ２１４で選択された信号とのＡＮＤ論理演算結果を制御信号ＭＡＥとして出力する。
【０２７０】
固定遅延２１２−１〜２１２−５は、インバータ群で形成することが可能である。
固定遅延２１２−１は、制御信号ＭＬＰＲＥ＿Ｐの入力を受ける。
【０２７１】
セレクタ２１４は、固定遅延２１２−１〜２１２−５のそれぞれの出力を受けて、遅延選択信号ＤＳＬに従って出力を切り替える。
【０２７２】
通常時には、セレクタ２１４は、遅延選択信号ＤＳＬに従って通常遅延である固定遅延２１２−３の入力を選択して出力する。
【０２７３】
通常時よりも早い遅延にする場合には、セレクタ２１４は、遅延選択信号ＤＳＬに従って遅延（−１）あるいは遅延（−２）である固定遅延２１２−２あるいは固定遅延２１２−１の入力を選択して出力する。
【０２７４】
通常時よりも遅い遅延にする場合には、セレクタ２１４は、遅延選択信号ＤＳＬに従って遅延（＋１）あるいは遅延（＋２）である固定遅延２１２−４あるいは固定遅延２１２−５の入力を選択して出力する。
【０２７５】
当該構成により遅延選択信号ＤＳＬに従ってセレクタ２１４は、入力される遅延信号を切り替えることにより制御信号ＭＡＥのタイミングを調整することが可能である。
【０２７６】
例えば、不一致検索の場合には、セレクタ２１４は、遅延選択信号ＤＳＬに従って遅延（−１）あるいは遅延（−２）である固定遅延２１２−２あるいは固定遅延２１２−１の入力を選択して出力する。これにより、通常時よりも早いタイミングで制御信号ＭＡＥを「１」に設定する。
【０２７７】
一方、一致検索の場合には、セレクタ２１４は、遅延選択信号ＤＳＬに従って遅延（＋１）あるいは遅延（＋２）である固定遅延２１２−４あるいは固定遅延２１２−５の入力を選択して出力する。これにより、通常時よりも遅いタイミングで制御信号ＭＡＥを「１」に設定する。
【０２７８】
当該方式により、簡易に制御信号ＭＡＥのタイミングを調整することで、故障検出のテストを強化し、故障の予知、故障の前に救済可能であるため半導体装置の信頼性を高めることが可能である。
【０２７９】
（実施形態８）
実施形態８においては、半導体装置にＢＩＳＴ（Built in self test）回路を設ける構成について説明する。
【０２８０】
図２４は、実施形態８に従うＣＡＭ１Ｑの構成について説明する図である。
図２４を参照して、ＣＡＭ１Ｑは、図１で説明したＣＡＭ１と比較してＢＩＳＴ回路２２０をさらに設けた点が異なる。その他の構成については同様であるのでその詳細な説明については繰り返さない。
【０２８１】
ＢＩＳＴ回路２２０は、テスト回路でありＣＡＭ１Ｑに対して所定のテストパターンに基づく種々のテストを実行する。
【０２８２】
本例においては、ＢＩＳＴ回路２２０によるテスト結果に基づいて不良があると判断した場合には、当該不良を救済する方式について説明する。
【０２８３】
図２５は、実施形態８に従うＢＩＳＴ回路２２０の処理について説明する図である。
図２５を参照して、制御回路８は、ＢＩＳＴの指示があるかどうかを判断する（ステップＳ４０）。
【０２８４】
ステップＳ４０において、制御回路８は、ＢＩＳＴの指示があると判断した場合（ステップＳ４０においてＹＥＳ）には、ＢＩＳＴ回路２２０にテストの実行を指示する。
【０２８５】
そして、ＢＩＳＴ回路２２０は、ＢＩＳＴを実行する（ステップＳ４２）。
次に、ＢＩＳＴ回路２２０は、ＢＩＳＴの結果を確認し、メモリアレイ４に不良があるか否かを判断する（ステップＳ４４）
ステップＳ４４において、ＢＩＳＴ回路２２０は、ＢＩＳＴ結果として、メモリアレイ４に不良があると判断した場合（ステップＳ４４においてＦａｉｌ）には、救済の可否を判定する（ステップＳ４６）。
【０２８６】
ステップＳ４６において、ＢＩＳＴ回路２２０は、救済が可能であると判断した場合（ステップＳ４６においてＹＥＳ）には、救済処理を実行する（ステップＳ４８）。具体的には、上記したように外部リペア用メモリ２０に救済データを格納する。なお、ｅＦＵＳＥ７に救済するエントリアドレスを書き込み、ハードリペア制御回路６を動作させることでメモリアレイ４内のスペアとして設けられた１行の冗長メモリセル行を利用して救済処理を実行することもできる。
【０２８７】
そして、処理を終了する（エンド）。
一方、ステップＳ４６において、救済が不可能であると判断した場合（ステップＳ４６においてＮＯ）には、エラーレジスタにエラー情報を書き込む（ステップＳ５０）。
【０２８８】
そして、処理を終了する（エンド）。
図２６は、実施形態８に従うエラーレジスタについて説明する図である。
【０２８９】
図２６を参照して、エラー情報を格納する９ビットのエラーレジスタが設けられている。当該エラーレジスタは、ＢＩＳＴ回路２２０に設けられる。
【０２９０】
０ビット目は、エラーの有無を識別するレジスタである。１ビット目は救済の可否を識別するレジスタである。２ビット目〜８ビット目は、エラーとなったアドレス情報を格納するレジスタである。
【０２９１】
制御回路８は、当該エラーレジスタを確認することによりメモリアレイ４の不良内容を確認することが可能である。
【０２９２】
また、ピン１３を介して外部から制御回路８に指示することにより、エラーレジスタのエラー情報を出力することも可能である。
【０２９３】
（変形例）
上記においては、メモリアレイ４に不良があった場合に救済が可能であれば自動的に救済する方式について説明したが、ユーザの判断により救済するか否かを設定することも可能である。
【０２９４】
図２７は、実施形態８の変形例に従う救済処理について説明する図であり、あらかじめＢＩＳＴを実行しエラー情報をエラーレジスタに書き込みを行った後の処理である。
【０２９５】
図２７を参照して、制御回路８は、エラーレジスタの出力指示を受け付けたか否かを判断する（ステップＳ５４）。具体的には、制御回路８は、ピン１３を介して外部からエラーレジスタの情報を出力する指示を受け付けたか否かを判断する。
【０２９６】
ステップＳ５４において、制御回路８は、出力指示を受け付けたトランジスタ判断した場合（ステップＳ５４においてＹＥＳ）には、エラーレジスタのエラー情報を出力する（ステップＳ５６）。ステップＳ５４において、制御回路８は、エラーレジスタの出力指示を受け付けない場合には、ステップＳ５４の状態を維持する。
【０２９７】
当該エラーレジスタの出力情報に基づいて、ユーザは救済可否を判断する。
制御回路８は、ピン１３を介してユーザからの救済指示があるか否かを判断する（ステップＳ５８）。
【０２９８】
ステップＳ５８において、制御回路８は、ユーザからの救済指示があると判断した場合（ステップＳ５８においてＹＥＳ）には、救済処理を実行する（ステップＳ６２）。具体的には、上記したように外部リペア用メモリ２０に救済データを格納するようにしても良い。
【０２９９】
そして、処理を終了する（エンド）。
一方、ステップＳ５８において、制御回路８は、ユーザからの救済指示がないと判断した場合（ステップＳ５８においてＮＯ）には、ピン１３を介して不良アドレスを無効にする指示があるか否かを判断する（ステップＳ６０）。
【０３００】
ステップＳ６０において、制御回路８は、不良アドレスを無効にする指示があると判断した場合（ステップＳ６０においてＹＥＳ）には、不良アドレスを無効化する（ステップＳ６１）。具体的には、当該不良アドレスでの検索動作等の処理を無効にする。
【０３０１】
そして、処理を終了する（エンド）。
一方、ステップＳ６０において、制御回路８は、不良アドレスを無効にする指示がないと判断した場合（ステップＳ６０においてＮＯ）には、処理を終了する（エンド）。
【０３０２】
当該方式に従い、ユーザからエラー対策の救済指示がある場合に、エラーレジスタのエラー情報に基づいて外部リペア用メモリ２０を用いて救済処理を実行することが可能である。あるいは、ユーザから不良アドレスを無効にする指示がある場合に、不良アドレスでの検索動作等の処理を無効にすることが可能である。
【０３０３】
ユーザ設定に従い救済処理の実行の有無を設定することが可能であるためユーザの利便性が向上する。
【０３０４】
以上、本開示を実施形態に基づき具体的に説明したが、本開示は、実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０３０５】
１，１＃，１Ｐ  ＣＡＭ、２  救済情報ラッチ回路、３  ロウデコーダ、４  メモリアレイ、５  プライオリティエンコーダ、６  ハードリペア制御回路、８  制御回路、９  故障検出回路、２０  外部リペア用メモリ、２１  外部リペア一致判定回路、２２  リペアセレクタ、２３  ＳＬドライバ、２４  読出／書込回路。
【図１】
2020071895.tif 000003
【図２】
2020071895.tif 000004
【図３】
2020071895.tif 000005
【図４】
2020071895.tif 000006
【図５】
2020071895.tif 000007
【図６】
2020071895.tif 000008
【図７】
2020071895.tif 000009
【図８】
2020071895.tif 000010
【図９】
2020071895.tif 000011
【図１０】
2020071895.tif 000012
【図１１】
2020071895.tif 000013
【図１２】
2020071895.tif 000014
【図１３】
2020071895.tif 000015
【図１４】
2020071895.tif 000016
【図１５】
2020071895.tif 000017
【図１６】
2020071895.tif 000018
【図１７】
2020071895.tif 000019
【図１８】
2020071895.tif 000020
【図１９】
2020071895.tif 000021
【図２０】
2020071895.tif 000022
【図２１】
2020071895.tif 000023
【図２２】
2020071895.tif 000024
【図２３】
2020071895.tif 000025
【図２４】
2020071895.tif 000026
【図２５】
2020071895.tif 000027
【図２６】
2020071895.tif 000028
【図２７】
2020071895.tif 000029