(57)【要約】【課題】  ソフトエラーに対する耐性を高めて、高いデータの信頼性を保持しつつデータ検索動作を実行可能な連想メモリを提供する。【解決手段】  ＣＡＭ部ＣＭＵのメモリアレイ２ａに記憶された記憶データと同じ記憶データをＲＡＭ部ＲＭＵのメモリアレイ２ｂに記憶させるとともに、メモリアレイ２ｂに記憶させる記憶データのエラーを判定するための検査ビットをさらに付加して記憶させる。誤り訂正回路８は、メモリアレイ２ｂから読み出されたデータに対して検査ビットを用いて誤り訂正処理し、誤り訂正処理したデータを再びメモリアレイ２ａ，２ｂに再書き込みする。これにより、記憶データに対してソフトエラーが生じる場合においても、検査ビットによる誤り訂正処理して再書き込みするため高い信頼性を有する記憶データに基づいて一致比較動作を実行することができる。【選択図】        図１
2005353238.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数のメモリセル行を有し、各メモリセル行に対応して予め記憶されている記憶データと入力検索データとの一致比較動作を実行する第１のメモリ部と、
各メモリセル行に対応して、前記第１のメモリ部に記憶された前記記憶データと同じ情報および前記記憶データを検査するために用いられる検査データを記憶する第２のメモリ部と、
前記第２のメモリ部に記憶された前記検査データに基づいて前記記憶データのソフトエラーを判別して前記第１のメモリ部に記憶された前記記憶データを補正するための制御部とを備える、連想メモリ。
【請求項２】
前記第２のメモリ部は、入力されたアドレスに従って選択されたメモリセル行に記憶された記憶データおよび検査データに対してデータ読出を実行するための読出回路を含み、
前記制御部は、前記読出回路により読み出された検査データに基づき、読み出された記憶データのエラー判定をするとともに、エラー判定とされた記憶データの誤りビットデータを補正して出力する、誤り訂正回路を含む、請求項１記載の連想メモリ。
【請求項３】
前記第１および第２のメモリ部は独立に動作し、
前記制御部は、周期信号に同期してアドレスをインクリメントして前記第１および第２のメモリ部に入力する内部アドレス生成回路をさらに含む、請求項２記載の連想メモリ。
【請求項４】
各前記第１および第２のメモリ部は、入力されたアドレスに従って前記選択されたメモリセル行に対して書込データに応じてデータ書込を実行するための書込回路を含み、
前記誤り訂正回路は、補正した記憶データを前記書込データとして各前記第１および第２のメモリ部の書込回路に出力する、請求項２および３のいずれか一項に記載の連想メモリ。
【請求項５】
前記第１のメモリ部の前記複数のメモリセル行は、各々が記憶データの１ビットデータを記憶する行列状に配置された複数のメモリセルを有し、
前記第１のメモリ部は、
メモリセル行にそれぞれ対応して設けられる複数のワード線と、
メモリセル列にそれぞれ対応して設けられ、前記第１のメモリ部の書込回路から前記書込データが伝達される複数のビット線と、
入力されたアドレスに従って対応するメモリセル行の選択されたワード線を活性化させる選択回路とをさらに含み、
前記制御部は、前記データ書込において前記複数のビット線に伝達される前記書込データのレベルが確定した後に前記選択回路において前記選択されたワード線を活性化するためのタイミング調整回路をさらに含む、請求項４記載の連想メモリ。
【請求項６】
前記タイミング調整回路は、前記書込回路に対して前記書込データを前記複数のビット線に伝達するのを開始する第１の制御信号を出力してから所定期間経過後に前記選択回路に対して前記選択されたワード線を活性化させるための第２の制御信号を出力する、請求項５記載の連想メモリ。
【請求項７】
前記第１のメモリ部は、各前記メモリセル行に対応して設けられ、前記入力検索データと前記記憶データとが一致したかを判定するマッチ線をさらに含み、
各前記メモリセル行は、各々が記憶データの１ビットデータを記憶する複数のメモリセルを有し、
各前記メモリセルは、
第１の１ビットデータを保持する第１の記憶ノードを有する第１のセルユニットと、
第２の１ビットデータを保持する第２の記憶ノードを有する第２のセルユニットと、
前記第１および第２の記憶ノードに各々保持された１ビットデータの対と与えられた前記入力検索データの１ビットデータとを比較し、比較結果に従って対応するマッチ線を選択的に駆動する比較回路とを有する、請求項１記載の連想メモリ。
【請求項８】
各前記第１および第２のセルユニットは、前記第１および第２の記憶ノードの対応する一方の１ビットデータを保持するために設けられたキャパシタを有するダイナミックメモリセルおよび前記対応する一方の１ビットデータを保持するために設けられたフリップフロップ回路を有するスタティックメモリセルの一方で構成される、請求項７記載の連想メモリ。
【請求項９】
前記第２のメモリ部の各前記メモリセル行は、各々が記憶データの１ビットデータを記憶する複数のメモリセルを有し、
各前記メモリセルは、前記記憶データの１ビットデータを保持するために設けられたキャパシタを有するダイナミックメモリセルおよび前記記憶データを保持するために設けられたフリップフロップ回路を有するスタティックメモリセルの一方に相当する、請求項１記載の連想メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正機能を備えた内容アドレスメモリ（連想メモリ）（以下、ＣＡＭ：Content Addressable Memoryとも称する）に関する。
【背景技術】
【０００２】
一般的に、ＣＡＭは連想メモリと呼ばれ、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read On Memory）等のように物理的なアドレスからデータを読出す機能だけでなく、データを入力として与え、それと同値なものがメモリアレイ上に存在するかどうかの検索を行ない、その一致した物理的なアドレスや検出信号を出力する機能を有するものである。
【０００３】
このＣＡＭは、非同期転送モード（ＡＴＭ：Asynchronous Transfer Mode）や、高速ＩＰ（Internet Protocol）等のアドレス変換等に広く利用されており、様々な分野で汎用されている。
【０００４】
一方、仮に、ＣＡＭのメモリアレイ内においてハード不良によりビットエラーが発生していた場合、正しい内容のデータを入力しても、この入力したデータとビットエラーの発生したデータとは一致しないため、本来一致した結果を出力するにも係らず所望の出力を得ることができないという問題が発生する。
【０００５】
この点に関連して、特開２００３−３１６６６２号公報においては、そのようなビットエラーが生じたアドレスの格納データに対して、データの再書込を禁止したり、あるいはビットエラーが発生しているアドレスを検索対象外としてマスク制御したりすることにより、効率的なデータ検索を実行する方式が開示されている。それゆえ、ＣＡＭには、装置の品質を確保し、高いデータの信頼性が要求されている。
【特許文献１】特開２００３−３１６６６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一方で、ハード不良によるビットエラーのみならず自然界に存在するα線や中性子線といった放射線がＣＡＭチップに入射した場合、シリコン基板内で電子・正孔対が発生し、最悪の場合メモリセルの記憶ノードに保持しているデータを破壊してしまう可能性がある。一般的にこれをソフトエラーと呼んでいる。
【０００７】
データを保持している記憶ノードの容量が小さければ小さいほど、ソフトエラーに対する耐性が弱くなることが知られており、このソフトエラーによりビットエラーが発生すると上述したようにＣＡＭにおける検索結果は信頼できないものとなる。
【０００８】
上記で説明したようにハード不良によりＣＡＭのメモリアレイ内においてビットエラーが生じている場合においては、上記公報で説明されているような方式により予め救済処置を施すことができるが、後発的なソフトエラーに起因して生じるビットエラーに対してこれを検知し、救済処置を施すことは難しい。
【０００９】
特に、近年の半導体プロセスの進展すなわち微細加工技術の進歩に伴い、メモリセル自体の大きさが縮小され、データを保持している記憶ノードの容量がこれに伴い次第に減少してきており、このソフトエラーに起因するビットエラーの生じる割合も増大する傾向にある。
【００１０】
本発明は、上記のような問題を解決するためになされたものであって、ソフトエラーに対する耐性を高めて、高いデータの信頼性を保持しつつデータ検索動作を実行可能な連想メモリを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る連想メモリは、データを記憶する複数のメモリセル行を有し、各メモリセル行に対応して予め記憶されている記憶データと入力検索データとの一致比較動作を実行する第１のメモリ部と、各メモリセル行に対応して、第１のメモリ部に記憶された記憶データと同じ情報および記憶データを検査するために用いられる検査データを記憶する第２のメモリ部と、第２のメモリ部に記憶された検査データに基づいて記憶データのソフトエラーを判別して第１のメモリ部に記憶された記憶データを補正するための制御部とを備える。
【００１２】
好ましくは、第２のメモリ部は、入力されたアドレスに従って選択されたメモリセル行に記憶された記憶データおよび検査データに対してデータ読出を実行するための読出回路を含み、制御部は、読出回路により読み出された検査データに基づき、読み出された記憶データのエラー判定をするとともに、エラー判定とされた記憶データの誤りビットデータを補正して出力する、誤り訂正回路を含む。
【００１３】
特に、第１および第２のメモリ部は独立に動作し、制御部は、周期信号に同期してアドレスをインクリメントして第１および第２のメモリ部に入力する内部アドレス生成回路をさらに含む。
【００１４】
特に、各第１および第２のメモリ部は、入力されたアドレスに従って選択されたメモリセル行に対して書込データに応じてデータ書込を実行するための書込回路を含み、誤り訂正回路は、補正した記憶データを書込データとして各第１および第２のメモリ部の書込回路に出力する。
【００１５】
特に、第１のメモリ部の複数のメモリセル行は、各々が記憶データの１ビットデータを記憶する行列状に配置された複数のメモリセルを有し、第１のメモリ部は、メモリセル行にそれぞれ対応して設けられる複数のワード線と、メモリセル列にそれぞれ対応して設けられ、第１のメモリ部の書込回路から書込データが伝達される複数のビット線と、入力されたアドレスに従って対応するメモリセル行の選択されたワード線を活性化させる選択回路とをさらに含み、制御部は、データ書込において複数のビット線に伝達される書込データのレベルが確定した後に選択回路において選択されたワード線を活性化するためのタイミング調整回路をさらに含む。
【００１６】
特に、タイミング調整回路は、書込回路に対して書込データを複数のビット線に伝達するのを開始する第１の制御信号を出力してから所定期間経過後に選択回路に対して選択されたワード線を活性化させるための第２の制御信号を出力する。
【００１７】
好ましくは、第１のメモリ部は、各メモリセル行に対応して設けられ、入力検索データと記憶データとが一致したかを判定するマッチ線をさらに含み、各メモリセル行は、各々が記憶データの１ビットデータを記憶する複数のメモリセルを有し、各メモリセルは、第１の１ビットデータを保持する第１の記憶ノードを有する第１のセルユニットと、第２の１ビットデータを保持する第２の記憶ノードを有する第２のセルユニットと、第１および第２の記憶ノードに各々保持された１ビットデータの対と与えられた入力検索データの１ビットデータとを比較し、比較結果に従って対応するマッチ線を選択的に駆動する比較回路とを有する。
【００１８】
特に、各第１および第２のセルユニットは、第１および第２の記憶ノードの対応する一方の１ビットデータを保持するために設けられたキャパシタを有するダイナミックメモリセルおよび対応する一方の１ビットデータを保持するために設けられたフリップフロップ回路を有するスタティックメモリセルの一方で構成される。
【００１９】
好ましくは、第２のメモリ部の各メモリセル行は、各々が記憶データの１ビットデータを記憶する複数のメモリセルを有し、各メモリセルは、記憶データの１ビットデータを保持するために設けられたキャパシタを有するダイナミックメモリセルおよび記憶データを保持するために設けられたフリップフロップ回路を有するスタティックメモリセルの一方に相当する。
【発明の効果】
【００２０】
本発明に係る連想メモリは、記憶情報との一致比較動作を実行する第１のメモリ部とは別に、第１のメモリ部に記憶された記憶情報と同じ情報を記憶する第２のメモリ部を設け、制御部において、第２のメモリ部に記憶された情報に基づいて第１のメモリ部に記憶された記憶情報のソフトエラーを補正する。これにより、本発明の連想メモリは、高い信頼性を有する記憶情報に基づいて一致比較動作を実行することができる。
【発明を実施するための最良の形態】
【００２１】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付しその説明は繰返さない。
【００２２】
（実施の形態１）
図１は、本発明の実施の形態１に従う連想メモリ１の全体構成図である。
【００２３】
図１を参照して、本発明の実施の形態に従う連想メモリ１は、主にデータの一致比較動作すなわちデータ検索動作を実行するためのＣＡＭ部ＣＭＵと、データ読出動作等を実行するためのＲＡＭ部ＲＭＵと、これらを制御するための周辺回路とを含む。周辺回路として具体的には、検査ビット付加回路７と、誤り訂正回路８と、出力バッファ９，１０と、アドレス用入力バッファ１１と、内部アドレスカウンタ１２と、データ用入力バッファ１３と、連想メモリ１全体を制御するためのコントロール回路１５と、後述する巡回読出を制御するための巡回読出コントロール回路１６と、セレクタ１７とを含む。
【００２４】
［ＣＡＭ部ＣＭＵの構成］
ＣＡＭ部ＣＭＵは、一致比較動作すなわちデータ検索動作に用いられる記憶情報を記憶するための行列状に集積配置されたメモリセル（以下、ＣＡＭメモリセルとも称する）を有するメモリアレイ２ａと、ロウデコーダ３ａと、プライオリティエンコーダ４と、ライトドライバ／サーチ線ドライバ帯５ａと、マッチ線アンプ６とを含む。
【００２５】
メモリアレイ２ａは、メモリセル行にそれぞれ対応して設けられたワード線ＷＬ０〜ＷＬｉ−１（ｉ：１以上の自然数）（以下、総括してワード線ＷＬとも称する）および複数のマッチ線ＭＬ０〜ＭＬｉ−１（以下、総括してマッチ線ＭＬとも称する）と、メモリセル列にそれぞれ対応して設けられたビット線対ＢＬＰ０〜ＢＬＰｍ−１（以下、総括してビット線対ＢＬＰとも称する）と、メモリセル列にそれぞれ対応して設けられたサーチ線対ＳＬＰ０〜ＳＬＰｍ−１（以下、総括してサーチ線対ＳＬＰとも称する）とを含む。本例においては、一例としてｉ行ｍ列のメモリアレイ２ａの構成について説明する。
【００２６】
また、ビット線対ＢＬＰは、ビット線ＢＬと相補のビット線／ＢＬとを含む。サーチ線対ＳＬＰは、サーチ線ＳＬと相補のサーチ線／ＳＬとを含む。図１においては、代表的にビット線対ＢＬＰ０を構成するビット線ＢＬ０と、相補のビット線／ＢＬ０および、ビット線対ＢＬＰｍ−１を構成するビット線ＢＬｍ−１と、相補のビット線／ＢＬｍ−１と、サーチ線対ＳＬＰ０を構成するサーチ線ＳＬ０と、相補のサーチ線／ＳＬ０および、サーチ線対ＳＬＰｍ−１を構成するサーチ線ＳＬｍ−１と、相補のサーチ線／ＳＬｍ−１とが示されている。
【００２７】
メモリアレイ２ａは、図１に示されるようにｉ個のメモリセル行を有し、連続したアドレスで指定されるｉ個のワードＷ０〜Ｗｉ−１がそれぞれのメモリセル行に記憶される。また本例においては、一例としてワードＷ０が最下位のアドレスに対応し、ワードＷｉ−１が最上位のアドレスに対応する構成とする。
【００２８】
ロウデコーダ３ａは、入力されるアドレスに基づいて複数のワード線ＷＬ０〜ＷＬｉ−１のうち少なくとも１本を選択（アクセス）する。
【００２９】
ライトドライバ／サーチ線ドライバ帯５ａは、データ書込時に入力される書込データを受けて、複数のビット線対ＢＬＰのそれぞれに書込データに応じた所定の論理レベルの信号を伝達する。また、ライトドライバ／サーチ線ドライバ帯５ａは、データ検索時に入力される入力検索データを受けて、複数のサーチ線対ＳＬＰのそれぞれに入力検索データに応じた所定の論理レベルの信号を伝達する。本例においては、データ書込時においては、選択ワードＷに対応するメモリセル行を構成する各メモリセルに対して並列なデータ書込を実行するものとする。また、データ検索時においては、メモリアレイ内の記憶されたすべてのワードＷ（すべてのメモリセル行）に対して一致比較動作が実行されるものとする。
【００３０】
マッチ線アンプ６は、データ検索時にマッチ線ＭＬ０〜ＭＬｉ−１のそれぞれに伝達されたマッチ信号を増幅してプライオリティエンコーダ４に出力する。プライオリティエンコーダ４はデータ検索時においてマッチ線アンプ６から伝達されたマッチ信号に基づいて、一致した最上位のアドレスを生成する。
【００３１】
出力バッファ１０は、データ検索時においてプライオリティエンコーダ４から出力されたアドレスＡＤＤを、バッファ処理して出力する。
【００３２】
［ＣＡＭメモリセルの構成］
図２は、本発明の実施の形態１に従うメモリアレイ２ａに集積配置されたＣＡＭメモリセルＣＡＭＣ（以下、単にメモリセルＣＡＭＣとも称する）の回路構成図である。
【００３３】
図２を参照して、ここでは、ビット線対ＢＬＰ０およびＢＬＰｍ−１に対応するメモリセルＣＡＭＣが２つ設けられている。いずれのメモリセルＣＡＭＣの構成も同様であるので、代表的にビット線対ＢＬＰ０に対応するメモリセルＣＡＭＣの構成について説明する。
【００３４】
メモリセルＣＡＭＣは、メモリセルユニットＭＣＵと、ゲートトランジスタＧＴ、／ＧＴ、比較部９８とを含む。
【００３５】
メモリセルユニットＭＣＵは、トランジスタ９４〜９７を含む。トランジスタ９４，９５は、一例としてＮチャンネルＭＯＳトランジスタとする。また、トランジスタ９６，９７は、ＰチャンネルＭＯＳトランジスタとする。トランジスタ９６は、電源電圧ＶＣＣの供給を受けるノードＮｐとセンスノードＳＮとの間に配置され、そのゲートはセンスノード／ＳＮと電気的に結合される。トランジスタ９７は、電源電圧ＶＣＣの供給を受けるノードＮｐとセンスノード／ＳＮとの間に配置され、そのゲートはセンスノードＳＮと電気的に結合される。トランジスタ９４は、センスノードＳＮと接地電圧ＧＮＤの供給を受けるノードＮｑとの間に配置され、そのゲートはセンスノード／ＳＮと電気的に結合される。トランジスタ９５は、センスノード／ＳＮと接地電圧ＧＮＤの供給を受けるノードＮｑとの間に配置され、そのゲートはセンスノードＳＮと電気的に結合される。このトランジスタ９４〜９６で構成されるメモリセルユニットＭＣＵは、いわゆるクロスカップル型のＳＲＡＭセル（スタティックメモリセル）であり、センスノードＳＮおよび／ＳＮの一方を「Ｈ」レベル、他方を「Ｌ」レベルに設定することにより記憶データを保持する。
【００３６】
本例においては、センスノードＳＮ，／ＳＮが「Ｌ」レベルおよび「Ｈ」レベルに設定される場合を記憶データ「０」に対応付けるものとする。また、センスノードＳＮ，／ＳＮが「Ｈ」レベルおよび「Ｌ」レベルに設定される場合を記憶データ「１」に対応付けるものとする。なお、記憶データ「０」および「１」の対応付けを反転させることも可能である。
【００３７】
ゲートトランジスタＧＴは、ビット線ＢＬ０とセンスノードＳＮとの間に配置され、そのゲートは対応するワード線ＷＬと電気的に結合される。ゲートトランジスタ／ＧＴは、センスノード／ＳＮとビット線／ＢＬ０との間に配置され、そのゲートは対応するワード線ＷＬと電気的に結合される。
【００３８】
比較部９８は、メモリセルユニットＭＣＵに記憶された記憶データと、入力検索データとの一致比較動作を実行する。比較部９８は、トランジスタ９０〜９３を含む。トランジスタ９０〜９３は、一例としてＮチャンネルＭＯＳトランジスタとする。
【００３９】
トランジスタ９０および９２は、接地電圧ＧＮＤの供給を受けるノードＮｑと対応するマッチ線ＭＬとの間に直列に接続され、それぞれのゲートはセンスノードＳＮおよびサーチ線ＳＬ０と電気的に結合される。トランジスタ９１および９３は、接地電圧ＧＮＤの供給を受けるノードＮｑと対応するマッチ線ＭＬとの間に直列に接続され、それぞれのゲートはセンスノード／ＳＮおよびサーチ線／ＳＬ０と電気的に結合される。上述したようにメモリセルユニットＭＣＵは、いわゆるクロスカップル型のＳＲＡＭセルと等価であり、データ読出およびデータ書込についての動作についての詳細な説明は省略する。このＳＲＡＭセルは、記憶するデータに応じて、２つのセンスノードの一方および他方をそれぞれ異なる電圧レベルに設定するフリップフロップ回路として機能する。
【００４０】
なお、メモリセルＣＡＭＣに対応して設けられるビット線対ＢＬＰは、データ書込動作において用いられる。また、サーチ線対ＳＬＰは、データ検索動作において用いられる。
【００４１】
［データ検索動作の説明］
図３のタイミングチャート図を用いて、図２で説明したサーチ線対ＳＬＰ０に対応するメモリセルＣＡＭＣのデータ検索動作について説明する。ここではクロック信号ＣＬＫに同期して内部回路が動作するものとして説明する。なお、メモリセルＣＡＭＣは、記憶データ「０」を記憶するものとする。また、説明の容易化のため１ビットデータの入力検索データＳＤＴが入力される場合について説明する。
【００４２】
クロック信号の立ち上がりに同期した時刻Ｔ０において、サーチ線対ＳＬＰ０に対して入力検索データＳＤＴ（「１」）に応じたデータが伝達される。具体的には、サーチ線ＳＬ０および相補のサーチ線／ＳＬ０がそれぞれ「Ｈ」レベルおよび「Ｌ」レベルに設定される。これに応答して、メモリセルＣＡＭＣの比較部９８において、トランジスタ９２がターンオンする。メモリセルＣＡＭＣは、記憶データ「０」を記憶しているためセンスノードＳＮ，／ＳＮは、「Ｌ」レベルおよび「Ｈ」レベルにそれぞれ設定されている。したがって、比較部９８において、センスノード／ＳＮの電圧レベルに応答して、トランジスタ９０がターンオンする。これに伴い、比較部９８において、直列に接続されたトランジスタ９０および９２がともにターンオンして、マッチ線ＭＬと接地電圧ＧＮＤが供給されるノードＮｑとが電気的に結合される。したがって、マッチ線ＭＬの電圧レベルは、接地電圧ＧＮＤによりプリチャージされた所定の電圧レベル（「Ｈ」レベル）からプルダウンする。ゆえに、この場合には、メモリセルＣＡＭＣに記憶された１ビットデータの記憶データと入力検索データとが不一致と判定され検索結果がミスとされる。
【００４３】
次に、検索結果後の時刻Ｔ１において、マッチ線ＭＬをプリチャージするための制御信号／ＭＬＰＲＣは「Ｌ」レベルに設定される。これにより、図示しないプリチャージ回路は、制御信号／ＭＬＰＲＣ（「Ｌ」レベル）を受けて活性化し、マッチ線ＭＬを所定の電圧レベル（「Ｈ」）にプリチャージする。したがって、次のデータ検索動作の準備動作が完了する。
【００４４】
次に、クロック信号の立ち上がりに同期した時刻Ｔ２において、今度はサーチ線対ＳＬＰ０に対して入力検索データ（「０」）に応じたデータが伝達される。具体的には、サーチ線ＳＬ０および相補のサーチ線／ＳＬ０がそれぞれ「Ｌ」レベルおよび「Ｈ」レベルに設定される。これに応答して、メモリセルＣＡＭＣの比較部９８において、トランジスタ９３がターンオンする。メモリセルＣＡＭＣは、上述したように記憶データ「０」を記憶しているため比較部９８において、トランジスタ９０がターンオンしている。したがって、比較部９８において、マッチ線ＭＬと接地電圧ＧＮＤが供給されるノードＮｑとは電気的に結合されない。これに伴い、マッチ線ＭＬの電圧レベルは、所定の電圧レベル（「Ｈ」レベル）を維持する。ゆえに、この場合には、メモリセルＣＡＭＣに記憶された記憶データと入力検索データとが一致と判定され、検索結果がヒットとされる。また、次のクロック信号ＣＬＫの立ち上がりに同期して、時刻Ｔ３以降、入力検索データの入力に応じて同様のデータ検索動作が実行される。
【００４５】
実際には、単体のメモリセルすなわち１ビットデータの比較だけでなく、メモリセル行を構成する各メモリセルにおいて、同様の動作が並列に行なわれ、マッチ線ＭＬの電圧レベルが設定される。具体的には、メモリセル行を構成するすべてのメモリセルＣＡＭＣの比較部９８が対応するマッチ線ＭＬと接地電圧ＧＮＤとを電気的に結合させない場合には対応するマッチ線ＭＬは、所定の電圧レベル（「Ｈ」レベル）を維持する。すなわち、入力された入力検索データと、所定のメモリセル行の各メモリセルＣＡＭＣに記憶された記憶データとが一致したと判定することができる。
【００４６】
一方、メモリセル行を構成するメモリセルＣＡＭＣの比較部９８のうち１つでも、対応するマッチ線ＭＬと接地電圧ＧＮＤとを電気的に結合させる場合には対応するマッチ線ＭＬは、接地電圧ＧＮＤの電圧レベル（「Ｌ」レベル）に設定される。すなわち、入力された入力検索データと、所定のメモリセル行の各メモリセルＣＡＭＣに記憶された記憶データとが不一致であると判定する。この動作が各メモリセル行で並列に実行され、マッチ線ＭＬ０〜ＭＬｉ−１にそれぞれ設定された電圧レベルがマッチ信号としてマッチ線アンプ３により増幅されて、プライオリティエンコーダ４にそれぞれ入力される。
【００４７】
プライオリティエンコーダ４は、複数のマッチ線ＭＬ０〜ＭＬｉ−１それぞれから伝達されるマッチ信号を受けて、一致したメモリセル行の最上位のアドレスを生成して出力する。
【００４８】
［ＲＡＭ部ＲＭＵの構成］
再び、図１を参照して、ＲＡＭ部ＲＭＵの構成について説明する。
【００４９】
本発明においては、ＣＡＭ部ＣＭＵのメモリアレイ２ａに記憶した記憶情報と同じ情報（同じワード数）をＲＡＭ部ＲＭＵで記憶させるとともに、後述する誤り訂正を実行するための検査情報についてもＲＡＭ部ＲＭＵでさらに記憶させる。
【００５０】
ＲＡＭ部ＲＭＵは、行列状に集積配置されたメモリセル（以下、ＲＡＭメモリセルとも称する）を有するメモリアレイ２ｂと、ロウデコーダ３ｂと、センスアンプ／ライトドライバ帯５ｂとを含む。
【００５１】
メモリアレイ２ｂに集積配置されたＲＡＭメモリセルは、図２で説明したＣＡＭセルの比較部９０およびサーチ線対ＳＬＰを除去した構成すなわちメモリセルユニットＭＣＵのみの構成であるＳＲＡＭセルに相当する。このメモリアレイ２ｂは、ｉ行（ｍ＋ｎ）列の構成である。ワード線ＷＬおよびビット線対ＢＬＰの構成についてはメモリアレイ２ａで説明したのと同様であるのでその詳細な説明は繰り返さない。
【００５２】
ロウデコーダ３ｂは、入力されるアドレスに基づいて所定のワード線ＷＬを活性化させる。センスアンプ／ライトドライバ帯５ｂは、データ読出時においてビット線対ＢＬＰを介して伝達されるデータ信号を増幅して誤り訂正回路８に出力し、データ書込時においてビット線対ＢＬＰに対して書込データに応じた所定の論理レベルのデータ信号を伝達する。
【００５３】
［周辺回路の構成］
コントロール回路１５は、連想メモリ全体を制御するために外部からのコマンドＣＭＤを受けて内部回路の所定の動作の実行を指示するための種々の制御信号を生成して出力する。
【００５４】
巡回読出コントロール回路１６は、活性化信号ＣＲＥ（「Ｈ」レベル）に応答して活性化され、一定間隔の周期信号であるカウントアップ信号ＣＹを生成して内部アドレスカウンタ１２に出力する。
【００５５】
また、アドレス用入力バッファ１１は、アドレスＡＤＤの入力を受けてバッファ処理してセレクタ１７に出力する。内部アドレスカウンタ１２は、アドレスを内部で生成して出力する。具体的には、周期信号であるカウントアップ信号ＣＹに応答して順次アドレスをインクリメントしてセレクタ１７に出力する。セレクタ１７は、アドレス用入力バッファ１１からのアドレスと、内部アドレスカウンタからのアドレスとを制御信号ＳＥＬに応じて切り替えてロウデコーダ３ａおよび３ｂに出力する。具体的には、通常のデータ読出およびデータ書込の際には、制御信号ＳＥＬ（「Ｈ」レベル）に応答してアドレス用入力バッファ１１からのアドレスをロウデコーダ３ａおよび３ｂに出力する。一方、後述する巡回読出の場合には制御信号ＳＥＬ（「Ｌ」レベル）に応答して内部アドレスカウンタ１２のアドレスをロウデコーダ３ａおよび３ｂに出力する。なお、制御信号ＳＥＬの論理レベルを互いに反転させて動作させることも可能である。
【００５６】
データ用入力バッファ１３は、書込データＷＤＴあるいはデータ検索用に用いられる入力検索データＳＤＴをバッファ処理する。書込データＷＤＴは、検査ビット付加回路７およびライトドライバ／サーチ線ドライバ帯５ａのライトドライバ帯に出力され、入力検索データＳＤＴは、ライトドライバ／サーチ線ドライバ帯５ａのサーチ線ドライバ帯に出力される。
【００５７】
検査ビット付加回路７は、データ用入力バッファ１３からの書込データＷＤＴの入力を受けて後述する誤り訂正処理に用いるための所定の検査ビットを付加して、ＲＡＭ部ＲＭＵに書き込むためにＲＡＭ部ＲＭＵのセンスアンプ／ライトドライバ帯５ｂのライトドライバ帯に出力する。
【００５８】
誤り訂正回路８は、ＲＡＭ部ＲＭＵのセンスアンプ／ライトドライバ帯５ｂのセンスアンプ帯から出力された読出データを受けて、誤り訂正処理を実行して、出力バッファ９およびＣＡＭ部ＣＭＵのライトドライバ／サーチ線ドライバ帯５ａおよび検査ビット付加回路７にデータを出力する。
【００５９】
［記憶情報を構成するワードＷのデータ書込］
データ検索動作を開始する前の記憶情報を構成するワードＷのデータ書込時について考える。
【００６０】
この場合、ＣＡＭ部ＣＭＵのメモリアレイ２ａの所定のアドレスに対してあるワードＷを書き込む際、同時に、ＲＡＭ部ＲＭＵのメモリアレイ２ｂにもＣＡＭ部ＣＭＵのメモリアレイ２ａと同じアドレスの位置に同じワードＷのデータを書き込む。すなわち、メモリアレイ２ａおよび２ｂに書き込まれるワードＷは、ＣＡＭ部ＣＭＵとＲＡＭ部ＲＭＵの両方に記憶されることになる。
【００６１】
図４は、本発明の実施の形態に従うメモリアレイ２ｂに記憶される情報を説明する概念図である。なお、ここで示される書込データＩＷＤＴは、データ用入力バッファ１３によりバッファ処理された書込データＷＤＴを示すものとし、読出データＩＲＤＴは、出力バッファ９により出力される読出データＲＤＴのバッファ処理される前の読出データを示すものとする。
【００６２】
ワードＷのｍビットの書込データＩＷＤＴが検査ビット付加回路７に入力される。検査ビット付加回路７は、誤り訂正処理に用いるための検査ビットとしてｎビットを書込データＩＷＤＴに付加し、メモリアレイ２ｂには、ＣＡＭ部ＣＭＵのメモリアレイ２ａに書き込まれたワードＷと同じアドレス位置に（ｍ＋ｎ）ビットの書込データとして書き込まれる。
【００６３】
同様にして、すべてのワードＷに対して検査ビット付加回路７は、ｎビットの検査ビットを付加した状態で書込データＩＷＤＴとして出力する。
【００６４】
［記憶情報を構成するワードＷのデータ読出］
一般的に、連想メモリにおいては、データ検索動作を実行し、一致したアドレスを出力するためほとんど、内部に記憶されているワードのデータ読出動作は行なわないが、コントロール回路１５の指示に応答して内部に記憶されているデータのチェック等のためにデータ読出が行われる。この場合、本実施の形態の構成においては、上述したようにＣＡＭ部ＣＭＵおよびＲＡＭ部ＲＭＵの双方に同じワードＷが書き込まれる構成であるため一方のＲＡＭ部ＲＭＵからデータ読出を行ない、誤り訂正回路８を介して外部に出力する。
【００６５】
具体的には、ＲＡＭ部ＲＭＵにおいて、データ読出時において、入力されたアドレスにしたがってワードＷの読出データとして（ｍ＋ｎ）ビットが読出されて、誤り訂正回路８に出力される。
【００６６】
誤り訂正回路８は、いわゆるハミング符号等の誤り訂正符号を用いて誤り訂正処理を実行する。
【００６７】
誤り訂正処理は、ｎビットの検査ビットを用いて正規のｍビットのデータのうちにビットエラーがある場合には、そのビットエラーを特定して、誤り訂正たとえばビットデータを反転させてｍビットの読出データＩＲＤＴとして出力する。ＲＡＭ部ＲＭＵから読み出された読出データＩＲＤＴは、出力バッファ９を介してｍビットの読出データＲＤＴとして出力される。
【００６８】
ハミング符号を用いた誤り訂正処理を実行する場合、検査ビット付加回路７においてハミング符号化した検査ビットを設定する必要がある。この検査ビットのビット数は、正規のｍビットのデータとｎビットの検査ビットとの間には２のｎ乗−ｍ≧ｍ＋１の関係式が成り立つように検査ビットのビット数を決定する。そして、ハミング符号化としては、正規のｍビットの各ビットのデータについて所定の排他的論理和（シンドロームツリー）に基づく計算によりｎビットの検査ビットを設定する。検査ビット付加回路７は、この設定されたｎビットの検査ビットを正規のｍビットに付加して出力する。この検査ビットの組合せが誤りすなわちビットエラーが生じた場所を特定するための位置情報を示し、いわゆるシンドロームと呼ばれる。データ読出において、誤り訂正回路８は、ｎビットの検査ビットを受けてこのシンドロームを計算する。計算結果からエラーテーブルと呼ばれる誤りビットの位置を特定するテーブルを参照してエラーが生じている位置を特定し、データを変更する。この一般的なハミング符号化の理論は、たとえば「やり直しのための工業数学」：ＣＱ出版社、ｐ４５〜５３に記載されている。なお、本発明の誤り訂正処理は、ハミング符号を用いた構成に限らずパリティ符合を用いることも可能であり、他の符号化理論に基づいて誤り訂正処理を実行することも当然に可能である。
【００６９】
データ検索動作については、従来と同様ＣＡＭ部ＣＭＵに対してデータ検索動作が行なわれる
本実施の形態においては、このＣＡＭ部ＣＭＵで実行されるデータ検索動作と並列にＲＡＭ部ＲＭＵにおいてデータ読出動作が繰り返し実行される。以下においては、繰り返し実行されるこのデータ読出動作を巡回読出とも称し、この一連の処理について説明する。
【００７０】
コントロール回路１５は、巡回読出のコマンドの入力を受けて活性化信号ＣＲＥを活性化（「Ｈ」レベル）し、制御信号ＳＥＬを「Ｌ」レベルに設定する。
【００７１】
巡回読出コントロール回路１６は、活性化信号ＣＲＥ（「Ｈ」レベル）に応答して活性化され、一定の周期信号であるカウントアップ信号ＣＹを内部アドレスカウンタ１２に出力する。
【００７２】
内部アドレスカウンタ１２は、カウントアップ信号ＣＹに同期してアドレスをインクリメントして生成し、セレクタ１７は、制御信号ＳＥＬ（「Ｌ」レベル）に応じて内部アドレスカウンタ１２のアドレスをロウデコーダ３ａおよび３ｂに出力する。
【００７３】
これに伴い、ＲＡＭ部ＲＭＵからは、内部アドレスカウンタ１２によりカウントアップ信号ＣＹに同期して生成されたアドレスが１つずつ順次変えられて、データが読出される。
【００７４】
上述したように、ＲＡＭ部ＲＭＵから読み出された読出データは誤り訂正回路８に入力される。誤り訂正回路８は、ＲＡＭ部ＲＭＵから読出されてきたデータに対して、上述したように検査ビットを用いた誤り訂正処理を実行する。
【００７５】
そして、この誤り訂正処理が施されたデータは、ＲＡＭ部ＲＭＵおよびＣＡＭ部に対して再び再書込データとして入力され、ロウデコーダ３ａおよび３ｂに入力されたアドレスにしたがって対応するメモリセル行に対してデータ書込が実行される。
【００７６】
この巡回読出は、ソフトエラーの耐性を強化するためすなわちデータメンテナンス（データ修復）のために行なわれており、外部への読出データの出力は行なわない。すなわち、ＲＡＭ部ＲＭＵとＣＡＭ部ＣＭＵとでは動作中、絶えず誤り訂正動作を行なっており、ソフトエラーに起因するビットエラーが発生しても極めて短時間にビットエラーを修復することができる。なお、巡回読出ではなく、上記したデータのチェック等のための通常のデータ読出をする際には、コントロール回路１５は、通常のデータ読出を実行するコマンドの入力を受けてこの巡回読出を一時中断する。具体的には、巡回読出コントロール回路１６を活性化する活性化信号ＣＲＥが非活性化（「Ｌ」レベル）される。これに伴い、巡回読出コントロール回路１６からの周期信号であるカウントアップ信号ＣＹが遮断される。したがって、内部アドレスカウンタ１２におけるアドレスの生成が中断される。また、通常のデータ読出の際には、コントロール回路１５は、制御信号ＳＥＬを「Ｈ」レベルに設定する。すなわち、上述したようにセレクタ１７は、アドレス用入力バッファ１１からのアドレスをロウデコーダ３ａおよび３ｂに出力する。データのチェック等のためのデータ読出動作により、出力バッファ９から読出データＲＤＴが出力された後、巡回読出のコマンドの入力に応じたコントロール回路１５からの指示により再び活性化信号ＣＲＥが「Ｈ」レベルに設定され、制御信号ＳＥＬが「Ｌ」レベルに設定されて、内部アドレスカウンタ１２におけるアドレスの生成の中断が解除されて、巡回読出が再び続行される。
【００７７】
本構成とすることにより、ソフトエラーの耐性を強化し、連想メモリに記憶された記憶情報の信頼性を高めてデータ検索動作を実行することができる。
【００７８】
［ＣＡＭ部ＣＭＵにおけるデータ再書込におけるタイミング調整］
データ検索動作中において、ＣＡＭ部ＣＭＵのデータメンテナンス（データ修復）を実行する場合には、ＣＡＭ部ＣＭＵへの再書込動作が入るためにＣＡＭ部ＣＭＵのメモリセルのワード線ＷＬを活性化する必要がある。
【００７９】
この際、ワード線ＷＬを活性化してからビット線対ＢＬＰに対して誤り訂正回路８を介して与えられる書込データに応じた電圧レベルが伝達されると、図５に示されるようにビット線対ＢＬＰに対してデータが確定していない状態でセンスノードＳＮ，／ＳＮとが電気的に結合されているため、時刻Ｔ１１においてセンスノードＳＮ，／ＳＮの電位レベルが変動してしまい、時刻Ｔ１０からデータ検索動作が開始している場合に、サーチ線ＳＬの電位レベルもこれにより誤動作すなわちデータ検索動作が誤動作する可能性がある。
【００８０】
図６は、本発明の実施の形態１に従うタイミング調整回路１４を含むコントロール回路１５を説明する図である。
【００８１】
本発明の実施の形態１に従うタイミング調整回路１４は、ＣＡＭ部ＣＭＵのデータ書込動作において、ライトドライバ帯およびロウデコーダ３ａ内にある図示しないワードドライバを活性化させるタイミングを調整する。具体的には、再書込許可信号ＲＷＥもしくは書込信号ＷＥの入力を受けて、ライトドライバ活性化信号ＷＤＥおよびロウデコーダ活性化信号ＲＤＥの出力タイミングを調整する。
【００８２】
図６を参照して、コントロール回路１５は、タイマ２０と、コマンドデコーダ２１と、ＯＲ回路ＯＲ１と、バッファＢＦｃと、ＳＥＬ信号生成回路２２とを含む。また、タイミング調整回路１４は、ＯＲ回路ＯＲ２と、ＡＮＤ回路ＡＤと、遅延回路ＰＬａ，ＰＬｂと、バッファＢＦａ，ＢＦｂとを含む。
【００８３】
タイマ２０は、活性化信号ＣＲＥに応答して活性化され、クロック信号ＣＬＫの入力を受けて、一定周期で再書込許可信号ＲＷＥを生成して出力する。コマンドデコーダ２１は、クロック信号ＣＬＫに同期して連想メモリ１の処理動作を規定するコマンドＣＭＤを受けて各内部回路に対して指示するための制御信号等を出力する。たとえばコマンドデコーダ２１は、データ書込を規定するコマンドＣＭＤの入力を受けて書込許可信号ＷＥを生成する。また、データ検索を規定するコマンドＣＭＤを受けてバッファＢＦｃを介してサーチドライバ活性化信号ＳＤＥを生成して出力する。また、巡回読出を規定するコマンドＣＭＤの入力を受けて活性化信号ＣＲＥを生成する。
【００８４】
ＳＥＬ信号生成回路２２は、コマンドデコーダ２１からの指示に応じて制御信号ＳＥＬを生成する。具体的には、通常のデータ読出のコマンドＣＭＤの入力に応答してＳＥＬ信号生成回路２２は、コマンドデコーダ２１からの指示に応じて制御信号ＳＥＬを「Ｈ」レベルに設定する。一方、巡回読出のコマンドＣＭＤの入力に応答してＳＥＬ信号生成回路２２は、コマンドデコーダ２１からの指示に応じて制御信号ＳＥＬを「Ｌ」レベルに設定する。
【００８５】
ＯＲ回路ＯＲ１は、再書込許可信号ＲＷＥおよび書込許可信号ＷＥの入力に応答してＯＲ論理演算結果である書込信号ＩＷＥをタイミング調整回路１４に出力する。
【００８６】
タイミング調整回路１４において、ＡＮＤ回路ＡＤは、書込信号ＩＷＥおよび遅延回路ＰＬａを介して遅延する書込信号ＩＷＥの入力を受けて、そのＡＮＤ論理演算結果を出力し、バッファＢＦａを介してロウデコーダ活性化信号ＲＤＥとして出力する。ＯＲ回路ＯＲ２は、書込信号ＩＷＥおよび遅延回路ＰＬｂを介して遅延する書込信号ＩＷＥの入力を受けて、そのＯＲ論理演算結果を出力し、バッファＢＦｂを介してライトドライバ活性化信号ＷＤＥとして出力する。
【００８７】
図７は、本発明の実施の形態１に従うタイミング調整回路１４によりワード線ＷＬの活性化タイミングの調整を実行する場合を説明する図である。
【００８８】
図７に示されるように、時刻Ｔ２０において書込信号ＩＷＥの入力に応答してライトドライバ活性化信号ＷＤＥが「Ｈ」レベルに立ち上がるすなわちライトドライバ帯が活性化される。これにより、入力検索データに応じた電圧レベルがビット線対ＢＬＰに伝達され始める。一方、ロウデコーダ活性化信号ＲＤＥは、遅延回路ＰＬａの遅延Ａｄの期間経過後時刻Ｔ２１に「Ｈ」レベルに立ち上がる。すなわち、これにより、ロウデコーダ３ａのワードドライバが活性化され、入力されたアドレスにしたがって所望のワード線ＷＬを活性化させる。この時点において、ビット線対ＢＬＰのデータレベルは確定しているため特にソフトエラーが生じていないデータであるならばセンスノードＳＮ，／ＳＮは安定した状態を維持し続ける。したがって、データ検索動作は並列に処理されていた場合においても誤動作は生じない。なお、書込信号ＩＷＥの立下り時である時刻Ｔ２２において、ロウデコーダ活性化信号ＲＤＥは「Ｌ」レベルに立下り、それから遅延回路ＰＬｂの遅延Ｂｄの期間経過後時刻Ｔ２３にライドドライバ活性化信号ＷＤＥは「Ｌ」レベルに立下がる。なお、遅延回路ＰＬａの遅延Ａｄの期間を調整するたとえば図示しない遅延段の段数等を調整することによりワード線ＷＬの活性化タイミングをさらに調整することができる。
【００８９】
したがって、本実施の形態に従うタイミング調整回路を設けることにより、より確実にデータ検索動作を誤動作させることなく実行することができる。
【００９０】
また、上記のＣＡＭメモリセルを用いることによりサーチ線対ＳＬＰとビット線対ＢＬＰとが異なるため、再書込動作とデータ検索動作が同時に重なった場合においてもデータ検索動作に影響を与えることはない。すなわち、この構成のデータメンテナンスは、データ検索動作から見ると完全に透過的に行なわれるものであり、この構成を採用することにより検索性能の効率は落ちない。
【００９１】
次に、ソフトエラーが起こり得る組合せについて説明する。
【００９２】
ＣＡＭ部ＣＭＵにソフトエラーが発生する場合と、ＲＡＭ部ＲＭＵにソフトエラーが発生する場合と、両方ともにソフトエラーが発生している場合が考えられる。
【００９３】
ＣＡＭ部ＣＭＵにソフトエラーが発生している場合には、一時ＣＡＭ部ＣＭＵの正常なデータ検索動作を保障することができなくなるが、ソフトエラーが発生したＣＡＭ部ＣＭＵと同じアドレスのＲＡＭ部ＲＭＵに同じワードＷが保持されているため、ＲＡＭ部ＲＭＵの巡回読出と上記で説明した誤り訂正処理とＣＡＭ部ＣＭＵへの再書込とによってデータメンテナンスが実行され、短期間の間に正常なデータ検索動作を保障することが可能となる。
【００９４】
また、ＲＡＭ部ＲＭＵにソフトエラーが発生した場合には、常にＣＡＭ部ＣＭＵの正常なデータ検索動作は保障されている。ソフトエラーが発生したＲＡＭ部ＲＭＵは、巡回読出と上記で説明した誤り訂正処理とＣＡＭ部ＣＭＵへの再書込とによってデータメンテナンスが実行され、短期間の間にＲＡＭ部ＲＭＵのデータが修復される。
【００９５】
また、両方ともにソフトエラーが発生している場合には、一時ＣＡＭ部ＣＭＵの正常なデータ検索動作を保障することができなくなるが、巡回読出と上記で説明した誤り訂正処理とＣＡＭ部ＣＭＵおよびＲＡＭ部ＲＭＵへの再書込とによってデータメンテナンスが実行され、短期間の間に正常なデータ検索動作を保障することが可能となる。
【００９６】
なお、誤り訂正処理は、２ビット以上の誤りが生じた場合にはデータメンテナンスを実行することはできない。なお、大容量のＣＡＭとなると数万ワードをチップ内に記憶している場合においても、定常的に巡回読出と誤り訂正処理が実行されているため、ＲＡＭ部ＲＭＵにあるワードＷの１つのビットがソフトエラーを起こした後、巡回読出と誤り訂正処理が入る前に、数万ワードあるうちのソフトエラーを有する同じワードＷの他のビットにソフトエラーが生じる確率は極めて小さく、ほとんど考えられない。
【００９７】
（実施の形態１の変形例）
上記の実施の形態１においては、ＣＡＭ部ＣＭＵおよびＲＡＭ部ＲＭＵのメモリアレイ２ａおよび２ｂのメモリセルとしてＳＲＡＭセルを用いた場合における連想メモリのソフトエラーの耐性を改善する方式について説明してきたが、ＳＲＡＭセルに限らずＣＡＭメモリセルとしてＤＲＡＭセル（ダイナミックメモリセル）を用いることも可能である。
【００９８】
図８は、本発明の実施の形態１の変形例に従うメモリアレイ２ａに集積配置されたＣＡＭメモリセルＣＡＭＣａ（以下、単にメモリセルＣＡＭＣａとも称する）の回路構成図である。
【００９９】
図８を参照して、ここでは、ビット線対ＢＬＰ０およびＢＬＰｍ−１に対応するメモリセルＣＡＭＣａが２つ設けられている。いずれのメモリセルＣＡＭＣａの構成も同様であるので、代表的にビット線対ＢＬＰ０に対応するメモリセルＣＡＭＣａの構成について説明する。
【０１００】
メモリセルＣＡＭＣａは、メモリセルユニットＭＣＵ１，／ＭＣＵ１と、比較部９８とを含む。
【０１０１】
メモリセルユニットＭＣＵ１，／ＭＣＵ１は、ゲートトランジスタＧＴ，／ＧＴと、キャパシタセルＣ１，／Ｃ１（以下、総括してキャパシタセルＣとも称する）とを含む。ゲートトランジスタＧＴ，／ＧＴは、一例としてＮチャンネルＭＯＳトランジスタとする。ゲートトランジスタＧＴは、ビット線ＢＬ０とセンスノード／ＳＮ１との間に配置され、そのゲートはワード線ＷＬと電気的に結合される。ゲートトランジスタ／ＧＴは、ビット線／ＢＬ０とセンスノードＳＮ２との間に配置され、そのゲートはワード線ＷＬと電気的に結合される。キャパシタセルＣ１は、センスノードＳＮ１と所定電圧Ｖｃｐの供給を受ける電源ノードとの間に配置される。キャパシタセル／Ｃ１は、センスノードＳＮ２と所定電圧Ｖｃｐの供給を受ける電源ノードとの間に配置される。
【０１０２】
比較部９８は、図２で説明したのと同様の構成であり、データ検索動作中における回路動作も同様であるのでその詳細な説明は繰り返さないが、比較部９８のトランジスタ９０および９１のゲートはそれぞれセンスノードＳＮ２およびＳＮ１とそれぞれ電気的に結合されている。このメモリセルユニットＭＣＵ１およびＭＣＵ２は、センスノードＳＮ１およびＳＮ２の一方を「Ｈ」レベル、他方を「Ｌ」レベルに設定することにより記憶データを保持する。
【０１０３】
また、メモリセルユニットＭＣＵ１およびＭＣＵ２は、ゲートトランジスタＧＴおよびキャパシタセルＣで構成されるメモリセルすなわち、いわゆるＤＲＡＭセルであり、図２で説明したＳＲＡＭセルと比較しても分かるようにトランジスタ等の部品点数が少なく、ＳＲＡＭセルよりも極めて小面積でＣＡＭメモリセルを形成することができる。すなわち、高集積化の面で極めて有利である。
【０１０４】
したがって、本願実施の形態１の変形例に従うＣＡＭメモリセルＣＡＭＣａを用いることにより、ＳＲＡＭセルで構成される連想メモリと比較して極めてチップ面積を縮小することができる連想メモリを構成することができる。
【０１０５】
なお、ＤＲＡＭセルは、キャパシタセルＣの充電電荷によりセンスノードＳＮに対して記憶データを保持する構成であるため、データ保持のために周期的に記憶データを再書き込みすなわちリフレッシュする必要がある。したがって、データ検索動作中にリフレッシュ動作を割込ませる必要等が考えられ、データ検索性能を劣化させてしまうことも考えられるが、本願構成に従うＲＡＭ部ＲＭＵは巡回読出によって絶えずリフレッシュされているため、外部からのいわゆるリフレッシュコマンドの入力によるリフレッシュ動作の必要性がない。また、ＣＡＭ部ＣＭＵにおいても、同様に巡回読出によってデータメンテナンスが施されて、再書込されており、外部からのリフレッシュ動作を必要としない。また、実施の形態１でも述べたように、ＤＲＡＭセルを用いた場合においてもこのデータメンテナンスはデータ検索動作からは透過的に実行される。
【０１０６】
したがって、本構成により検索性能を落とすことなくチップ面積を縮小し、さらに高いデータ信頼性を確保することができる。
【０１０７】
（実施の形態２）
図９は、本発明の実施の形態２に従う連想メモリ１＃の全体構成図である。
【０１０８】
図９を参照して、図１で説明した連想メモリ１と比較して異なる点は、ＣＡＭ部ＣＭＵおよびＲＡＭ部ＲＭＵをそれぞれＣＡＭ部ＣＭＵ＃およびＲＡＭ部ＲＭＵ＃に置換した点が異なる。具体的には、ＣＡＭ部ＣＭＵ＃およびＲＡＭ部ＲＭＵ＃において、メモリアレイ２ａ，２ｂをメモリアレイ２＃ａ，２＃ｂに置換した構成である。その他の点は同様であるのでその詳細な説明は繰り返さない。
【０１０９】
具体的には、メモリアレイ２＃ａに集積配置されるメモリセルＣＡＭＣをメモリセルＣＡＭＣ♯に置換した構成である。これに併せてメモリアレイ２＃ｂのビット数を調整した構成である。このメモリセルＣＡＭＣ＃は、いわゆるＴＣＡＭセルと称されるものである。
【０１１０】
なお、図９においては、代表的にビット線対ＢＬＬＰ０，ＢＬＲＰ０と、ＢＬＬＰｍ−１，ＢＬＲＰｍ−１とが示されている。また、サーチ線対ＳＬＰ０，ＳＬＰｍ−１とが示されている。
【０１１１】
図１０は、本発明の実施の形態２に従うメモリセルＣＡＭＣ♯の構成図である。
【０１１２】
図１０を参照して、メモリセルＣＡＭＣ♯は、２つのメモリセルユニットＭＣＵａ，ＭＣＵｂと、比較部９８と、ゲートトランジスタＧＴＬ，／ＧＴＬ，ＧＴＲ，／ＧＴＲを含む。
【０１１３】
メモリセルユニットＭＣＵａは、ビット線対ＢＬＬＰに対応して設けられる。メモリセルユニットＭＣＵｂは、ビット線対ＢＬＲＰに対応して設けられる。メモリセルユニットＭＣＵａおよびＭＣＵｂは、実施の形態１で説明したメモリセルユニットＭＣＵと等価な回路構成であり、その詳細な説明は繰り返さない。すなわち、上述したように、各メモリセルユニットＭＣＵａおよびＭＣＵｂは、記憶するデータに応じて、２つのセンスノードの一方および他方をそれぞれ異なる電圧レベルに設定するフリップフロップ回路として機能する。
【０１１４】
ゲートトランジスタＧＴＬは、メモリセルユニットＭＣＵａのセンスノードＳＮＬとビット線対ＢＬＬＰのビット線ＢＬＬとの間に配置され、そのゲートはワード線ＷＬと電気的に結合される。ゲートトランジスタ／ＧＴＬは、メモリセルユニットＭＣＵａのセンスノード／ＳＮＬと相補のビット線／ＢＬＬとの間に配置され、そのゲートはワード線ＷＬと電気的に結合される。ゲートトランジスタＧＴＲは、メモリセルユニットＭＣＵｂのセンスノードＳＮＲとビット線対ＢＬＲＰのビット線ＢＬＲとの間に配置され、そのゲートはワード線ＷＬと電気的に結合される。ゲートトランジスタ／ＧＴＲは、センスノード／ＳＮＲとビット線対ＢＬＲＰの相補のビット線／ＢＬＲとの間に配置され、そのゲートはワード線ＷＬと電気的に結合される。
【０１１５】
比較部９８は、メモリセルユニットＭＣＵａのセンスノード／ＳＮＬおよびメモリセルユニットＭＣＵｂのセンスノードＳＮＲの電圧レベルに対応するデータ対と、サーチ線対ＳＬＰに伝達される入力検索データをそれぞれ受けて、その比較結果に基づいた信号をマッチ線ＭＬに伝達する。
【０１１６】
比較部９８は、図２で説明したのと同様の構成であるのでその詳細な説明は繰り返さないが、比較部９８のトランジスタ９０および９１のゲートはそれぞれメモリセルユニットＭＣＵａのセンスノード／ＳＮＬおよびメモリセルユニットＭＣＵｂのセンスノードとそれぞれ電気的に結合されている。
【０１１７】
なお、メモリアレイ２＃ｂに集積配置されるメモリセルの構成は、上記のメモリセルＣＡＭＣ＃のサーチ線対ＳＬＰおよび比較部９８を除いた構成と同様であるのでその詳細な説明は繰り返さない。
【０１１８】
上記の構成により、メモリアレイ２＃ａは、ｉ行２ｍ列のメモリセルユニットＭＣＵを備えた構成となる。一方、メモリアレイ２＃ｂは、ｉ行（２ｍ＋ｎ）列のメモリセルユニットＭＣＵを備えた構成となる。なお、データ検索動作で入力される入力検索データＳＤＴのビット数はｍビットである。
【０１１９】
ＣＡＭとＴＣＡＭの違いはそのメモリセルが２値記憶か３値記憶かの違いにある。ＴＣＡＭのメモリセルは、「０」，「１」，「Ｘ（ドントケア）」の３状態を記憶する。
【０１２０】
仮にこのメモリセルＣＡＭＣ♯がデータ「０」を記憶している場合について考える。本例においてはデータ「０」の記憶状態をセンスノード／ＳＮＬが「Ｈ」レベル、センスノードＳＮＲが「Ｌ」レベルに対応付けられるものとする。
【０１２１】
データ検索動作が行なわれ、サーチ線対ＳＬＰにデータ「０」が入力された場合を考える。本例においてはサーチ線ＳＬが「Ｌ」レベルに設定され、相補のサーチ線／ＳＬが「Ｈ」レベルに設定されるものとする。
【０１２２】
この場合、比較部９８において、トランジスタ９０および９８がターンオンするが、マッチ線ＭＬは、接地電圧ＧＮＤと電気的に結合されず、マッチ線ＭＬは電源電圧ＶＣＣの電圧レベルを維持する。上述したようにこの場合入力記憶データと記憶データとがヒットしたものとする。
【０１２３】
一方、サーチ線対ＳＬＰにデータ「１」が入力された場合について考える。本例においてはサーチ線ＳＬが「Ｈ」レベルに設定され、相補のサーチ線／ＳＬは「Ｌ」レベルに設定されるものとする。
【０１２４】
この場合、比較部９８において、トランジスタ９０および９２がターンオンする。これに伴い、マッチ線ＭＬとノードＮ６とが電気的に結合される。すなわち、マッチ線ＭＬの電圧レベルは接地電圧ＧＮＤによりプルダウンされる。上述したようにこの場合入力検索データと記憶データとはミスしたものとする。
【０１２５】
したがって、メモリセルＣＡＭＣ＃においても、ＣＡＭメモリセルＣＡＭＣと同様の検索動作を実行することができる。
【０１２６】
また、これに加えてメモリセルＣＡＭＣ♯は、さらにもう１つの状態「Ｘ（ドントケア）」という状態を記憶する。この記憶状態は、センスノード／ＳＮＬおよびセンスノードＳＮＲがともに「Ｌ」レベルに設定されている場合に対応付けられる。
【０１２７】
データ検索動作を実行した場合、センスノード／ＳＮＬおよびセンスノードＳＮＲがともに「Ｌ」レベルであるため比較部９８のトランジスタ９４および９６のいずれもターンオフ状態にある。したがって、サーチ線対ＳＬＰにデータ「０」および「１」を入力した場合、いずれも接地電圧ＧＮＤとマッチ線ＭＬとが電気的に結合されることはなく比較結果は常にヒットとなる。したがって、メモリセルＣＡＭＣ＃は、常にヒットする「Ｘ」状態を記憶することができる。
【０１２８】
記憶情報を構成する記憶データを、３値データビットの組合せで構成する場合、ネットワークシステムにおいてＩＰ（インターネット・プロトコル）パケットに対する処理などを行なう場合に、特に有効である。たとえば、今、簡単化のために、パケットの行先アドレスが、４ビットで表現されると仮定する。あるパケットの行先アドレスが“１ＸＸＸ”（先頭ビットが“１”であれば、残りのアドレスビットはどのような値を取ってもよい）の場合、ある所定の処理を、そのパケットに対して行なうことを考える。パケットが、システムに到着した際に、その行先アドレスを検索して、アドレス“１ＸＸＸ”と一致するかどうかを判定するために、ＣＡＭまたはＴＣＡＭの連想記憶メモリが用いられるとする。
【０１２９】
この場合、パケットが到着する前に、ＣＡＭまたはＴＣＡＭには、“１ＸＸＸ”というデータを記憶しておく必要がある。通常の２値記憶のＣＡＭを用いた場合、“１０００”、“１００１”、“１０１０”、“１０１１”、“１１００”、“１１０１”、“１１１０”、および“１１１１”の８状態を記憶しておく必要があり、したがって、このパケットの行先アドレス検索のために、８ワードが消費される。
【０１３０】
一方、ＴＣＡＭにおいては、「Ｘ」状態を記憶することができるため、“１ＸＸＸ”の１個のワードを記憶することが要求されるだけである。行き先アドレスのビット数がさらに増大すると、この使用されるワードの数の差がさらに大きくなる。したがって、ＴＣＡＭを用いた場合、多様なデータを少ないワード数で記憶することができる。実際には、ＩＰパケットには、行先アドレスに加えて、送信元のＩＰアドレス、通信品質を示す情報、およびＩＰプロトコルのバージョン番号などの種々の情報が含まれている。したがって、これらの情報に対し検索処理を行なう場合に、ＴＣＡＭが、非常に有用である。
【０１３１】
ＴＣＡＭメモリセルとＣＡＭメモリセルは、セル構造が異なるのみでマッチ線ＭＬを用いた検索動作は共通するので、実施の形態１で説明した構成を同様に適用することが可能である。
【０１３２】
（実施の形態２の変形例）
上記の実施の形態２においては、ＣＡＭ部ＣＭＵ＃およびＲＡＭ部ＲＭＵ＃のメモリアレイ２＃ａおよび２＃ｂのメモリセルにおいて、ＳＲＡＭセルを用いた場合における連想メモリのソフトエラーの耐性を改善する方式について説明してきたが、ＳＲＡＭセルに限らずＴＣＡＭセルとしてＤＲＡＭセルを用いることも可能である。
【０１３３】
図１１は、本発明の実施の形態２の変形例に従うメモリアレイ２ａに集積配置されたＣＡＭメモリセルＣＡＭＣ＃ａ（以下、単にメモリセルＣＡＭＣ＃ａとも称する）の回路構成図である。
【０１３４】
図１１を参照して、ここでは、ビット線ＢＬＬ０，ＢＬＲ０およびＢＬＬｍ−１およびＢＬＲｍ−１に対応するメモリセルＣＡＭＣ＃ａが２つ設けられている。いずれのメモリセルＣＡＭＣ＃ａの構成も同様であるので、代表的にビット線対ＢＬＬ０，ＢＬＲ０に対応するメモリセルＣＡＭＣ＃ａの構成について説明する。
【０１３５】
メモリセルＣＡＭＣ＃ａは、図８で説明したのと同様の構成であるのでその詳細な説明は繰り返さない。ここで、図８のメモリセルＣＡＭＣａの構成と異なる点は、相補のビット線／ＢＬに対応してメモリセルユニット／ＭＣＵを設ける構成について説明したが、本構成においては相補のビット線は設けない構成である。その他の点については図８で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０１３６】
したがって、ビット線ＢＬＬおよびビット線ＢＬＲにそれぞれ対応するメモリセルユニットＭＣＵに記憶されるデータは互いに相補の関係ではなく、独立のデータを記憶する構成となっている。
【０１３７】
また、メモリセルユニットＭＣＵ１およびＭＣＵ２は、ゲートトランジスタＧＴおよびキャパシタセルＣで構成されるメモリセルすなわち、いわゆるＤＲＡＭセルであり、図１０で説明したＳＲＡＭセルと比較しても分かるようにトランジスタ等の部品点数が少なく、ＳＲＡＭセルよりも極めて小面積でメモリセルを形成することができ高集積化の面で極めて有利である。
【０１３８】
したがって、本願実施の形態２の変形例に従うＣＡＭメモリセルＣＡＭＣ＃ａを用いることにより、ＳＲＡＭセルで構成される連想メモリと比較して極めてチップ面積を縮小することができる連想メモリを構成することができる。
【０１３９】
なお、上述したようにＤＲＡＭセルは、キャパシタセルＣの充電電荷によりセンスノードＳＮに対して記憶データを保持する構成であるため、データ保持のために周期的に記憶データを再書込すなわちリフレッシュする必要があるが、本願構成に従うＲＡＭ部ＲＭＵは巡回読出によって絶えずリフレッシュされているため、外部からのいわゆるリフレッシュコマンドの入力によるリフレッシュ動作の必要性がない。また、ＣＡＭ部ＣＭＵにおいても、同様に巡回読出によってデータメンテナンスが施されて、再書込されており、外部からのリフレッシュ動作を必要としない。また、実施の形態１でも述べたように、ＤＲＡＭセルを用いた場合においてもこのデータメンテナンスはデータ検索動作からは透過的に実行される。
【０１４０】
したがって、本構成により検索性能を落とすことなくチップ面積を縮小し、さらに高いデータ信頼性を確保することができる。
【０１４１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１４２】
【図１】本発明の実施の形態１に従う連想メモリ１の全体構成図である。
【図２】本発明の実施の形態１に従うメモリアレイ２ａに集積配置されたＣＡＭメモリセルＣＡＭＣの回路構成図である。
【図３】図２で説明したサーチ線対ＳＬＰ０に対応するメモリセルＣＡＭＣのデータ検索動作について説明するタイミングチャート図である。
【図４】本発明の実施の形態に従うメモリアレイ２ｂに記憶される情報を説明する概念図である。
【図５】データ検索動作が誤動作する可能性がある場合を説明する図である。
【図６】本発明の実施の形態１に従うタイミング調整回路１４を含むコントロール回路１５を説明する図である。
【図７】本発明の実施の形態１に従うタイミング調整回路１４によりワード線ＷＬの活性化タイミングの調整を実行する場合を説明する図である。
【図８】本発明の実施の形態１の変形例に従うメモリアレイ２ａに集積配置されたＣＡＭメモリセルＣＡＭＣａの回路構成図である。
【図９】本発明の実施の形態２に従う連想メモリ１＃の全体構成図である。
【図１０】本発明の実施の形態２に従うメモリセルＣＡＭＣ♯の構成図である。
【図１１】本発明の実施の形態２の変形例に従うメモリアレイ２ａに集積配置されたＣＡＭメモリセルＣＡＭＣ＃ａの回路構成図である。
【符号の説明】
【０１４３】
１，１＃  連想メモリ、２ａ，２ｂ，２＃ａ，２＃ｂ  メモリアレイ、３ａ，３ｂ  ロウデコーダ、４  プライオリティエンコーダ、５ａ  ライトドライバ／サーチ線ドライバ帯、５ｂ  センスアンプ／ライトドライバ帯、６  マッチ線アンプ、７  検査ビット付加回路、８  誤り訂正回路、９，１０  出力バッファ、１１  アドレス用入力バッファ、１２  内部アドレスカウンタ、１３  データ用入力バッファ、１４  タイミング調整回路、１５  コントロール回路、１６  巡回読出コントロール回路、１７  セレクタ、ＣＭＵ，ＣＭＵ＃  ＣＡＭ部、ＲＭＵ，ＲＭＵ＃  ＲＡＭ部。
【図１】
2005353238.tif 000003
【図２】
2005353238.tif 000004
【図３】
2005353238.tif 000005
【図４】
2005353238.tif 000006
【図５】
2005353238.tif 000007
【図６】
2005353238.tif 000008
【図７】
2005353238.tif 000009
【図８】
2005353238.tif 000010
【図９】
2005353238.tif 000011
【図１０】
2005353238.tif 000012
【図１１】
2005353238.tif 000013