(57)【要約】【課題】ＣＡＭにおいて回路面積の高集積化と高速化に対応する。【解決手段】プライオリティエンコード／ロウデコーダ部５は、複数行からなるロウアドレスレジスタ１２を共有する。ロウアドレスレジスタ１２の各行は、ＴＣＡＭアレイマット２の各エントリに対応して各アドレスを保持している。ロウアドレスレジスタ１２の各行は、ＴＣＡＭアレイマット２の各行のワードラインおよびマッチラインと対応している。ＴＣＡＭアレイマット２にデータをがき込まれる際、指定アドレスに対応してロウアドレスレジスタ１２において保持されている行のワードラインＷＬが活性化する。ＴＣＡＭアレイマット２に対して検索がなされると、ＴＣＡＭアレイマット２のマッチラインが活性化する。対応する行のロウアドレスレジスタ１２には、検索データに一致するＴＣＡＭアレイマット２のエントリのアドレスが格納されている。【選択図】図１
2013191255.tif 000002
【特許請求の範囲】
【請求項１】
内容参照メモリシステムであって、
複数行からなるＣＡＭセルを含み、行ごとに記憶データを保持し、検索データの入力を受け付けて各行並列に記憶データを検索可能なデータ保持用ＣＡＭアレイと、
前記データ保持用ＣＡＭアレイへの書き込み対象の行のアドレスをワードラインにより特定して当該アドレスにデータを書き込むロウデコーダ部と、
前記記憶データと前記検索データとの各行における比較結果を示すマッチラインの出力に基づいて、比較結果が一致する行のアドレスを出力するプライオリティエンコーダ部とを含み、
前記ロウデコータ部と前記プライオリティエンコーダ部とは、複数行のアドレスレジスタを備えて共有し、
前記アドレスレジスタの各行は、それぞれ前記データ保持用ＣＡＭアレイの各行と対応して前記ワードラインおよび前記マッチラインにより接続しており、前記データ保持用ＣＡＭアレイの各行のアドレスを保持する、
内容参照メモリシステム。
【請求項２】
前記ロウデコーダ部は、
前記書き込み対象の行のアドレスの指定を受け付けると、当該指定に示されるアドレスを検索データとして前記アドレスレジスタの各行と比較することにより、比較結果が一致する行におけるワードラインを活性化させ、
前記プライオリティエンコーダ部は、
前記データ保持用ＣＡＭアレイのマッチラインの出力に対応する前記アドレスレジスタの行に保持されたアドレスに基づいて、前記検索データと前記記憶データとが一致する行のアドレスを出力する、
請求項１記載の内容参照メモリシステム。
【請求項３】
前記アドレスレジスタは、ＣＡＭセルにより構成される、
請求項１記載の内容参照メモリシステム。
【請求項４】
前記アドレスレジスタは、書き換え可能であり、
前記内容参照メモリシステムは、前記データ保持用ＣＡＭアレイの不良行を救済した救済コードを記憶するための記憶部を含み、
前記アドレスレジスタは、前記記憶部に記憶された救済コードに基づいて、前記書き換えにより不良救済後のアドレスの書き込みを受け付ける、
請求項１記載の内容参照メモリシステム。
【請求項５】
前記複数行のアドレスレジスタは、
前記プライオリティエンコーダ部における出力結果を増幅するためのセンスアンプを複数含み、
前記センスアンプは、所定範囲の行のアドレスレジスタごとに割り当てられている、
請求項１記載の内容参照メモリシステム。
【請求項６】
前記複数行のアドレスレジスタは、
前記データ保持用ＣＡＭアレイへの書き込み対象の行のアドレスを入力として受け付けて、受け付けたアドレスに一致するアドレスレジスタに対応するワードラインを活性化させることにより前記ロウデコーダ部として機能し、
前記アドレスレジスタのマッチアンプは差動アンプである、
請求項１記載の内容参照メモリシステム。
【請求項７】
前記アドレスレジスタは、不揮発性メモリにより構成される、
請求項１記載の内容参照メモリシステム。
【請求項８】
前記アドレスレジスタは、FNH（force no-hit）レジスタを前記ＣＡＭセルアレイに含む、
請求項１記載の内容参照メモリシステム。
【請求項９】
前記ロウデコーダ部は、
前記アドレスレジスタの各行について不良エントリの救済による出力のシフトが必要かを示す救済情報データレジスタと、
不良行に対応するワードラインの使用を抑止し、前記アドレスレジスタの各行において、前記アドレスレジスタの保持内容と前記救済情報データレジスタの保持内容に基づいてアドレス演算する救済シフト回路とを含む、
請求項１記載の内容参照メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内容参照メモリシステムに関し、特に、高集積化、高速化するための技術に関する。
【背景技術】
【０００２】
内容参照メモリ（ＣＡＭ：Content  Addressable  Memory）は、データの読み出しおよび書き込み機能に加えて、その記憶データへの検索機能を有する。
【０００３】
ＣＡＭへのデータの書き込みは、書き込みデータをビットライン（ＢＬ）に転送するとともに、書き込み対象のアドレスに対応するワードライン（ＷＬ）をロウデコーダにより活性化することによりなされる。
【０００４】
ＣＡＭにおける検索は、検索対象となるデータ列に基づいてサーチライン（ＳＬ）を活性化させ、ＣＡＭアレイ内の各エントリとの一致不一致を判定することによりなされる。検索の結果、一致するエントリのアドレスを出力する。１エントリには、検索対象となるデータワードが格納されており、複数のＣＡＭセルで構成されている。各エントリには、マッチライン（ＭＬ）がそれぞれ設けられており、マッチラインには、各エントリに対応するＣＡＭセルが並列に結合される。検索対象のデータ列と、各エントリに格納されているデータワードとを比較した結果、一致していると、そのエントリに対応するマッチラインがハイ”１”の状態に維持される。比較の結果、不一致の場合は、放電によりそのエントリのマッチラインがロー”０”レベルになる。
【０００５】
このように、マッチラインの電圧レベルを識別することにより、検索データに対応するデータがＣＡＭに格納されているかの判定を行なうことができる。
【０００６】
なお、ＣＡＭにおける検索時に、複数のエントリについて一致と判定される場合は、プライオリティエンコーダにより、いずれかのエントリが優先され、対応するアドレスが出力される。
【０００７】
このようなＣＡＭは、ルータやスイッチなど、ネットワーク機器における経路検索や、キャッシュメモリにおけるキャッシュミス／ヒットの判定などに用いられている。例えば、ネットワークルータなどではＩＰパケットのルーティングが行われている。ルータ内にはＣＡＭが格納され、ＣＡＭにはＩＰアドレスが格納されている。ルーティングはＣＡＭに格納されているＩＰアドレスと外部から入力されるＩＰアドレスとを照合することにより行なわれる。たとえば、このルータ内のＣＡＭにおいて、一致状態のマッチ線情報に基づいて、次の宛先を示す値をＩＰパケットに書込んで、対応のポートから送出する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許６９６７８５６号公報
【特許文献２】特開２００７−３１７３４２号公報
【特許文献３】特開２００３−１０００８６号公報
【特許文献４】米国特許７４３６６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
近年、ネットワークメモリ等で使用される大規模高速ＣＡＭでは、さらに検索動作の高速化が求められている。検索動作の高速化を図るには、（１）ＣＡＭにおける記憶データと検索データとが一致しているか否かの判定と、（２）一致するエントリが複数ある場合にプライオリティの高いエントリのアドレスを出力するプライオリティエンコーダの動作について高速化する必要がある。
【００１０】
上記（１）については、米国特許６９６７８５６号公報（特許文献１）のようにマッチラインを分割する技術がある。他に、特開２００７−３１７３４２号公報（特許文献２）、特開２００３−１０００８６号公報（特許文献３）のようにマッチラインの微小電位差を検知できるマッチアンプを用いた検索動作の高速化技術がある。
【００１１】
さらに（２）プライオリティエンコーダの動作の高速化や、ＣＡＭへの書き込み動作の高速化も求められている。例えばネットワークメモリに用いられるＣＡＭでは、一定の時間間隔でルーティングテーブルを更新することが必要であるため、一定の時間間隔で書き込み動作を行う必要がある。
【００１２】
また、ＣＡＭのさらなる高集積化も必要となってきている。ＣＡＭの周辺回路が高速化するとともに周辺回路の面積が大きくなってきており、周辺回路のレイアウトの集積度が悪化している等の問題がある。米国特許７４３６６８８号公報（特許文献４）は、プライオリティエンコーダにＲＯＭを用いて構成することにより高速化を実現しているが、周辺回路を高集積化することができない。
【００１３】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
一実施の形態によれば、ロウデコーダとプライオリティエンコーダにおいて、複数行からなるアドレスレジスタを共有する。アドレスレジスタの各行は、ＣＡＭアレイの各行に対応してＣＡＭアレイの各行のアドレスを保持している。アドレスレジスタの各行は、ＣＡＭアレイの各行のワードラインおよびマッチラインと対応している。ロウデコーダは、ＣＡＭアレイにデータを書き込む際、アドレスの指定を受け付けて、アドレスレジスタにおいて保持されている行のワードラインを活性化する。一方、ＣＡＭアレイに対して検索がなされると、検索によりＣＡＭアレイのマッチラインが活性化する。このマッチラインに対応する行のアドレスレジスタには、検索データに一致するＣＡＭアレイの行のアドレスが格納されている。
【発明の効果】
【００１５】
上記一実施の形態によれば、ＣＡＭにおいて回路面積の高集積化と高速化を実現することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態における内容参照メモリシステム１の構成を示すブロック図である。
【図２】プライオリティエンコーダとしての機能を発揮するための、プライオリティ演算部４と、プライオリティエンコード／ロウデコーダ部５の一部の構成とを示す図である。
【図３】ロウデコーダとしての機能を発揮するための、プライオリティエンコード／ロウデコーダ部５の一部の構成を示す図である。
【図４】プライオリティエンコーダとロウデコーダとがアドレスレジスタを共用せず、それぞれ独立している場合の機能ブロックを示す図である。
【図５】関連技術におけるプライオリティ演算部４、プライオリティエンコード部５５、ロウデコーダ部５６の構成の詳細を示す図である。
【図６】不良エントリに対応してロウアドレスレジスタ１２に格納されるアドレスを示す図である。
【図７】不良エントリに対応してロウアドレスレジスタ１２に格納されるアドレスを示す図である。
【図８】実施例１において、書き込み時の信号の動作波形を示す図である。
【図９】実施例１において、検索時の信号の動作波形を示す図である。
【図１０】実施例２におけるロウアドレスレジスタ１２の構成を示す図である。
【図１１】実施例３におけるロウアドレスレジスタ１２とＦＮＨレジスタ４１の構成を示す図である。
【図１２】実施例３におけるロウアドレスレジスタ１２とＦＮＨレジスタ４１の構成を示す図である。
【図１３】実施例４における構成の一部を示す図である。
【図１４】実施例４における構成の一部を示す図である。
【図１５】救済シフト回路４５、ＣＡＭセル用ＷＬドライバ１３の詳細を示す図である。
【図１６】ＳＲＡＭによりＴＣＡＭを構成する場合のＴＣＡＭ基本セルを示す図である。
【図１７】ＤＲＡＭによりＴＣＡＭを構成する場合のＴＣＡＭ基本セルを示す図である。
【図１８】ＭＲＡＭによりＴＣＡＭを構成する場合のＴＣＡＭ基本セルを示す図である。
【図１９】ＲＯＭによりロウアドレスレジスタ１２を構成する場合を示す図である。
【図２０】セル７１およびセル７２の構成を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を用いて各実施の形態について説明する。
＜実施例１＞
図１は、本実施形態における内容参照メモリシステム１の構成を示すブロック図である。
【００１８】
図１に示すように、内容参照メモリシステム１は、ＴＣＡＭアレイマット２と、マッチアンプ３と、プライオリティ演算部４と、プライオリティエンコード／ロウデコーダ部５と、ＳＬドライバ６と、ＢＬドライバ／リードセンスアンプ７と、制御回路８とを含む。
【００１９】
ＴＣＡＭアレイマット２は、複数のエントリにより記憶データを保持する。各エントリは、複数のＣＡＭセルにより構成される（個々のＣＡＭセルは図示していない）。各エントリは、それぞれアドレスが与えられている。ＴＣＡＭアレイマット２は、検索データの入力を受け付けて各エントリについて記憶データと一致するか不一致かを並列に判定する。ＴＣＡＭアレイマット２は３値連想メモリ（Ternary  CAM）として構成されている。各ＣＡＭセルは、ハイ（”１”）、ロー（”０”）、ドントケア（”Ｘ”）の３値をとることができる。
【００２０】
（ＴＣＡＭアレイマット２への書き込み）
具体的には、ＴＣＡＭアレイマット２は、記憶データの書き込みを行単位（エントリ単位）で受け付ける。ＴＣＡＭアレイマット２への書き込みデータに基づいて、後述するＢＬドライバ／リードセンスアンプ７によりビットライン（ＢＬ）が活性化する。また、後述するプライオリティエンコード／ロウデコーダ部５により、ＴＣＡＭアレイマット２における書き込み対象の行のアドレスのワードライン（ＷＬ）が活性化する。内容参照メモリシステム１は、このビットラインおよびワードラインにより、ＴＣＡＭアレイマット２の指定されたアドレスに対してデータを書き込む。
【００２１】
（ＴＣＡＭアレイマット２の検索）
ＴＣＡＭアレイマット２は、ＴＣＡＭアレイマット２における各エントリの記憶データを検索するために、検索に用いる検索データをサーチライン（ＳＬ）により受け付ける。検索データと記憶データとが一致するエントリについて、マッチライン（ＭＬ）がハイレベルを保持する。
【００２２】
マッチアンプ３は、制御回路８のマッチアンプ制御信号による制御に従って動作し、ＴＣＡＭアレイマット２の検索において、マッチラインの出力を増幅する。
【００２３】
プライオリティ演算部４は、複数のエントリにおいて検索データと記憶データとが一致した場合に、所定の演算に従っていずれかを優先して出力する。例えば、値”Ｘ”を用いた検索がなされると、複数のアドレスが同時にヒットしうる。このとき、プライオリティ演算部４は、例えばアドレスが最も小さいエントリを優先して出力する等により、優先的にいずれかのエントリの検索結果を出力する。
【００２４】
プライオリティエンコード／ロウデコーダ部５は、後述するロウアドレスレジスタ１２を備えており、プライオリティエンコーダとしての機能と、ロウデコーダとしての機能を発揮する。すなわち、プライオリティエンコーダとロウデコーダとがロウアドレスレジスタ１２を共有している。詳しい構成は後述する。概要は以下のとおりである。すなわち、プライオリティエンコーダとして機能を発揮する場合は、プライオリティ演算部４の出力結果を受けて、検索によりヒットしたマッチラインに対応するアドレス（マッチアドレス）を制御回路８へ出力する。ロウデコーダとして機能を発揮する場合は、制御回路８のＲＥＡＤ／ＷＲＩＴＥ制御信号により動作し、ＴＣＡＭアレイマット２へのデータ読み出し／書き込み対象となるアドレスの指定を受け付けて、アドレスに対応したワードラインを活性化させる。
【００２５】
ＳＬドライバ６は、制御回路８のサーチラインドライバ制御信号（ＳＬＤｒｖ．制御信号）に従って、サーチラインを駆動する。ＴＣＡＭアレイマット２の検索時に、サーチラインにより検索データがＴＣＡＭアレイマット２へ出力される。
【００２６】
ＢＬドライバ／リードセンスアンプ７は、制御回路８の制御に従って、ＴＣＡＭアレイマット２へデータを書き込むためのビットラインを駆動する。
【００２７】
制御回路８は、制御信号を制御することにより内容参照メモリシステム１の動作を統括的に制御する。すなわち、制御回路８は、外部より各種コマンド（ＳＥＡＲＣＨ等）を受け付けて、所定のクロック（ＣＬＫ）に従って動作し、ＴＣＡＭアレイマット２の検索結果の出力等（ＭＡＴＣＨ＿ＡＤＤ）を行う。
【００２８】
ここで、プライオリティ演算部４とプライオリティエンコード／ロウデコーダ部５について詳しく説明する。
【００２９】
図２は、プライオリティエンコーダとしての機能を発揮するための、プライオリティ演算部４と、プライオリティエンコード／ロウデコーダ部５の一部の構成とを示す図である。
【００３０】
プライオリティ演算部４は、演算結果出力回路２１を含み、マッチアンプ３からの複数のマッチライン（match  <0>  -  match  <n>）の出力を受け付ける。複数のマッチラインがヒットしている場合、演算結果出力回路２１によりいずれかのマッチラインを優先してプライオリティエンコード／ロウデコーダ部５へ出力する（p_match）。
【００３１】
プライオリティエンコード／ロウデコーダ部５は、ロウアドレスレジスタ用ＷＬドライバ１１と、ロウアドレスレジスタ１２と、ＣＡＭセル用ＷＬドライバ１３とを含む。図２では、ロウアドレスレジスタ用ＷＬドライバ１１とロウアドレスレジスタ１２とを示している。
【００３２】
ロウアドレスレジスタ１２は、本実施形態では複数のＣＡＭセル（ＣＡＭセル２３）により構成される。ロウアドレスレジスタ１２は、各行において、ＴＣＡＭアレイマット２のいずれかのエントリのアドレスを保持している。ロウアドレスレジスタ１２の各行は、プライオリティ演算部４やＣＡＭセル用ＷＬドライバ１３等を経由して、ＴＣＡＭアレイマット２のマッチラインの出力を受け付け、ワードラインを活性化させる。図示する例では、ロウアドレスレジスタ１２は、図の上から順に、ＴＣＡＭアレイマット２の各エントリを示すアドレス「００００」「０００１」「００１０」・・を格納しており、それぞれがＴＣＡＭアレイマット２の対応する各エントリとワードラインおよびマッチラインにより接続されている。
【００３３】
ロウアドレスレジスタ用ＷＬドライバ１１は、プライオリティエンコード／ロウデコーダ部５にプライオリティエンコーダとしての機能を発揮させるため、イネーブル信号pe_enableに従ってロウアドレスレジスタ１２のワードラインを活性化させる。ロウアドレスレジスタ用ＷＬドライバ１１は、駆動回路２２を含み、プライオリティ演算部４のマッチラインの出力結果を受け付ける。ロウアドレスレジスタ用ＷＬドライバ１１は、イネーブル信号pe_enableとプライオリティ演算部４の出力結果を受け付けて、ロウアドレスレジスタ１２に検索結果を出力させる動作を制御する。
【００３４】
プライオリティエンコード／ロウデコーダ部５において、プライオリティエンコーダとしての機能は、主にロウアドレスレジスタ用ＷＬドライバ１１とロウアドレスレジスタ１２とにより発揮される。ＴＣＡＭアレイマット２を検索した検索結果の出力（peBL）は、ロウアドレスレジスタ１２のビットラインによりなされてレジスタ用ＢＬセンスアンプ／ＳＬドライバ９へ出力される（peBL）。
【００３５】
図３は、ロウデコーダとしての機能を発揮するための、プライオリティエンコード／ロウデコーダ部５の一部の構成を示す図である。
【００３６】
プライオリティエンコード／ロウデコーダ部５において、ロウデコーダとしての機能は、主にロウアドレスレジスタ１２とＣＡＭセル用ＷＬドライバ１３とにより発揮される。ＴＣＡＭアレイマット２への書き込み対象となるアドレスの指定（rw_add）は、後述するレジスタ用ＢＬセンスアンプ／ＳＬドライバ９により受け付けられ、レジスタ用ＢＬセンスアンプ／ＳＬドライバ９によりロウアドレスレジスタ１２のサーチラインへ出力される（AddSL）。ロウアドレスレジスタ１２では、指定されたアドレスに一致する行のマッチラインが活性化してＣＡＭセル用ＷＬドライバ１３へ出力される（addML）。
【００３７】
ＣＡＭセル用ＷＬドライバ１３は、ロウアドレスレジスタ１２とともにロウデコーダとしての機能を発揮する。ＣＡＭセル用ＷＬドライバ１３は、ロウアドレスレジスタ１２のマッチラインの出力結果を受け付けて、制御信号add_mlpre_nに従って出力する。ＣＡＭセル用ＷＬドライバ１３は、ロウアドレスレジスタ１２のマッチラインの出力結果を、制御信号add_mllatに示されるタイミングに従ってラッチ回路２４により保持する。ラッチ回路２４に保持された内容は、制御信号rw_enableに従って駆動回路２５よりＴＣＡＭアレイマット２のワードラインへ出力される。
【００３８】
レジスタ用ＢＬセンスアンプ／ＳＬドライバ９は、制御回路８の一部を構成する。レジスタ用ＢＬセンスアンプ／ＳＬドライバ９は、プライオリティエンコード／ロウデコーダ部５等をプライオリティエンコーダとして機能させるための、ロウアドレスレジスタ１２のビットラインからの信号を増幅するセンスアンプ機能を発揮する（BL  Sense  Amp）。またレジスタ用ＢＬセンスアンプ／ＳＬドライバ９は、プライオリティエンコード／ロウデコーダ部５等をロウデコーダとして機能させるため、制御信号add_sleに従ってロウアドレスレジスタ１２のサーチラインの動作を制御するＳＬドライバ（SL  Drv.）である。またレジスタ用ＢＬセンスアンプ／ＳＬドライバ９は、ＴＣＡＭアレイマット２への書き込み対象となるアドレスの指定を受け付ける（rw_add）。レジスタ用ＢＬセンスアンプ／ＳＬドライバ９は、プライオリティエンコード／ロウデコーダ部５等がプライオリティエンコーダとして機能した出力結果を受け付けて外部へ出力する（hit_add）。
【００３９】
以上の構成によれば、プライオリティエンコーダとロウデコーダとが、ＴＣＡＭアレイマット２の各エントリのアドレスを保持するロウアドレスレジスタ１２を共有している。そのため、プライオリティエンコーダとロウデコーダとがそれぞれデコード回路等を備える場合と比較して高集積化を実現することができる。
【００４０】
＜関連技術との対比＞
ここで、関連技術として、プライオリティエンコーダとロウデコーダとがアドレスレジスタを共用しない場合について説明する。
【００４１】
図４は、プライオリティエンコーダとロウデコーダとがアドレスレジスタを共用せず、それぞれ独立している場合の機能ブロックを示す図である。
【００４２】
内容参照メモリシステム１０１は、プライオリティエンコード部５５とロウデコーダ部５６とがアドレスレジスタを共用せず、それぞれ独立している。制御回路５７は、ＴＣＡＭアレイマット２への検索結果の出力であるマッチアドレスをプライオリティエンコード部５５より受け付ける。また、制御回路５７は、ＴＣＡＭアレイマット２への書き込みアドレスの指定をロウデコーダ部５６へ出力する。
【００４３】
図５は、関連技術におけるプライオリティ演算部４、プライオリティエンコード部５５、ロウデコーダ部５６の構成の詳細を示す図である。
【００４４】
図示するように、プライオリティエンコーダとしての機能は、プライオリティ演算部４とプライオリティエンコード部５５とにより発揮される。
【００４５】
ロウデコーダとしての機能はロウデコーダ部５６により発揮される。
プライオリティエンコーダとして機能を発揮する場合を説明する。プライオリティ演算部４における演算結果出力回路２１の演算により、プライオリティ演算部４は、いずれかのマッチラインの出力をプライオリティエンコード部５５へ出力する。
【００４６】
プライオリティエンコード部５５は、不良救済回路６２とエンコード回路６３とを含む。
【００４７】
不良救済回路６２は、ＴＣＡＭアレイマット２における不良エントリを救済するための回路である。不良救済回路６２は、制御回路５７より出力される救済アドレス信号に従って、演算結果出力回路２１における出力結果（p_match）をシフトさせる等により、救済を行う。
【００４８】
エンコード回路６３は、不良救済回路６２の出力結果を受けて、マッチラインに対応するＴＣＡＭアレイマット２のアドレスをエンコードし、マッチアドレス（hit_add）として制御回路５７へ出力する。すなわちマッチラインとアドレスとの変換を行う。
【００４９】
次に、ロウデコーダとして機能する場合について説明する。
ロウデコーダ部５６は、デコード回路６４と不良救済回路６５とＷＬドライバ部５８とを含む。
【００５０】
デコード回路６４は、制御回路５７よりＴＣＡＭアレイマット２の書き込み先アドレスの指定（rw_add）を受け付けて、対応するワードラインを活性化させる。すなわちワードラインとアドレスとの変換を行う。
【００５１】
不良救済回路６５は、ＴＣＡＭアレイマット２における不良エントリを救済するための回路である。デコード回路６４の出力をシフトさせる等により、救済を行う。
【００５２】
ＷＬドライバ部５８は、デコード回路６４と不良救済回路６５の出力結果を増幅等することにより、ワードライン（WL）を活性化させるための駆動部としての機能を発揮する。
【００５３】
上記のように関連技術と本実施形態とを比較すると、関連技術では、エンコード回路６３とデコード回路６４とでそれぞれＴＣＡＭアレイマット２におけるアドレスの変換が行われている。
【００５４】
これに対し、本実施形態によれば、プライオリティエンコーダとロウデコーダとがロウアドレスレジスタ１２を共有している。そのため、本実施形態は、関連技術と比較してレイアウト面積の削減を図ることができ、高集積化が可能となる。また論理段数を低減させることにより、高速化を図ることができる。
【００５５】
＜実施例１における救済回路＞
ここで実施例１の説明に戻り、実施例１における、不良アドレスの救済機能について説明する。
【００５６】
ＴＣＡＭアレイマット２の不良エントリを救済するために、ロウアドレスレジスタ１２には、不良救済後のアドレスが格納されている。チップテスト等により、ＴＣＡＭアレイマット２の不良エントリを調査しておき、ロウアドレスレジスタ１２に格納する値（救済コード）をヒューズ等に記憶させておく。電源投入時に、ロウアドレスレジスタ１２に救済コードが読み込まれるよう構成する。
【００５７】
図６は、不良エントリに対応してロウアドレスレジスタ１２に格納されるアドレスを示す図である。図７は、不良エントリに対応してロウアドレスレジスタ１２に格納されるアドレスを示す図である。図６、図７では主にロウアドレスレジスタ１２の一部を示している。
【００５８】
図６（Ａ）は、不良エントリがない場合に、ロウアドレスレジスタ１２に格納されるアドレスを示している。救済がないため、同図の上から順にアドレスの値として００００、０００１、００１０、００１１、・・がロウアドレスレジスタ１２の各行に格納されている。
【００５９】
図６（Ｂ）は、不良エントリがある場合に、ロウアドレスレジスタ１２に格納されるアドレスを示している。不良エントリ対応行３１があるとする（同図のmatch  <2>）。この場合、例えば一つ下のエントリが代替エントリになるものとし、アドレスを「−１」シフトさせた値が以降の行に書き込まれていく。同図の上から順にアドレスの値として００００、０００１、ｘｘｘｘ（不良エントリに対応）、００１０、００１１、・・・がロウアドレスレジスタ１２の各行に格納されている。
【００６０】
図７（Ａ）は、不良エントリがない場合のアドレスの出力値を示している。
図７（Ｂ）は、不良エントリがある場合のアドレスの出力値を示している。
【００６１】
図７（Ｂ）に示すように、WL<2>に対応する不良エントリ対応行３１に関しては、ワードラインの活性化がなされず、アドレス「００１０」がWL<3>にシフトしていることを示している。
【００６２】
＜実施例１の動作の詳細＞
実施例１における内容参照メモリシステム１の動作について説明する。
【００６３】
＜読み出しまたは書き込み時の動作＞
まずロウデコーダ機能によりＴＣＡＭアレイマット２へデータを読み出しまたは書き込む場合を説明する。
【００６４】
動作の概要は、以下の通りである。すなわち、ＴＣＡＭアレイマット２への読み出しまたは書き込み時に、書き込み先のアドレスを示す信号（rw_add）が図２に示すレジスタ用ＢＬセンスアンプ／ＳＬドライバ９に入力される。レジスタ用ＢＬセンスアンプ／ＳＬドライバ９によりロウアドレスレジスタ１２のサーチラインが活性化される（addSL）。ロウアドレスレジスタ１２の各行の値と、書き込み先のアドレスを示す信号（rw_add）とが一致すると、一致した行のロウアドレスレジスタ１２のマッチラインがハイになり、それ以外はローとなる。これにより、書き込み先のアドレスに対応するワードラインが活性化する。
【００６５】
図８は、実施例１において、書き込み時の信号の動作波形を示す図である。
この図の例では、書き込み動作（WRITE）としてアドレス「００００００１０」への書き込み（WL<2>が活性化）、アドレス「０００００００１」への書き込み（WL<1>が活性化）がなされている。続けて、ＴＣＡＭアレイマット２のサーチ動作（SEARCH）がなされる連続動作を示している。
【００６６】
書き込み先のアドレス「００００００１０」がレジスタ用ＢＬセンスアンプ／ＳＬドライバ９に入力され（rw_add）、ロウアドレスレジスタ１２において各行が保持している値と一致する行があるか検索される（add_sle、addSL）。一致する行があると、ロウアドレスレジスタ１２のマッチラインがハイになり（add_mlpre_n、addML<2>）、ＣＡＭセル用ＷＬドライバ１３のラッチ回路２４でラッチされる（add_mllat）。ライトイネーブル信号（rw_enable）により、書き込み先のアドレスのワードラインが活性化する（WL<2>）。
【００６７】
次のアドレス「０００００００１」についても同様であり、書き込み先のアドレスのワードラインが活性化する（WL<1>）。
【００６８】
次のサーチ動作の際は、検索に伴ってＴＣＡＭアレイマット２のサーチライン（SL）が活性化される。検索にヒットしないマッチライン（ML）は放電され、ローになる。サーチ開始までにワードラインが非活性となるため、書き込みのためのライトコマンド後に、検索のためのサーチコマンドを入力することができ、NOP（no  operation）コマンドを必要としない。
【００６９】
＜サーチ動作＞
次に、実施例１におけるＴＣＡＭアレイマット２へのサーチ動作について説明する。
【００７０】
図９は、実施例１において、検索時の信号の動作波形を示す図である。
制御回路８は、コマンド（SEARCH）に従って、所定のクロック（camclk）のタイミングによりＴＣＡＭアレイマット２へのサーチ動作を開始する。サーチラインが活性化し、検索データに一致するエントリのマッチラインがハイになる。マッチラインの出力結果は、制御信号（MAE）に従って動作するマッチアンプ３により増幅される。マッチアンプ３により増幅された出力（match）がプライオリティ演算部４に入力される。プライオリティ演算部４は、演算結果出力回路２１によりいずれかを優先して検索結果のエントリに対応した出力をする（p_match）。
【００７１】
プライオリティエンコード／ロウデコーダ部５では、ロウアドレスレジスタ用ＷＬドライバ１１は、イネーブル信号（pe_enable）に従ったタイミングで、検索結果に基づいて、ロウアドレスレジスタ１２のワードラインを活性化する。同図では、２番目のエントリと１２７番目のエントリに対応するワードラインが活性化している（peWL<2>、peWL<127>）。活性化したワードラインに対応するロウアドレスレジスタ１２の値が、ビットラインによりレジスタ用ＢＬセンスアンプ／ＳＬドライバ９へ出力される（peBL）。レジスタ用ＢＬセンスアンプ／ＳＬドライバ９は、ヒットエントリのアドレスを外部へ出力する（MATCH_ADD）。
【００７２】
＜実施例２＞
別の実施形態について説明する。
【００７３】
図１０は、実施例２におけるロウアドレスレジスタ１２の構成を示す図である。
同図では、プライオリティエンコーダとしての機能を発揮するための、検索結果を出力するロウアドレスレジスタ１２のビットラインが分割されていることを示している。
【００７４】
例えば所定範囲のエントリを対象にセンスアンプを割り当てることで、検索結果の出力が高速化する。同図では第１のＢＬセンスアンプ３２と第２のＢＬセンスアンプ３３の２つを示している。第１のＢＬセンスアンプ３２と第２のＢＬセンスアンプ３３のそれぞれは、一部のエントリのロウアドレスレジスタ１２と対応している。レジスタ用ＧＢＬセンスアンプ／ＳＬドライバ３４は、ビットラインからの出力を増幅するセンスアンプである。各ＢＬセンスアンプの出力を受け付けて（gbl0、gbl1）、検索によりヒットしたアドレスを出力する（hit_add）。
【００７５】
また、同図に示すように、ＣＡＭセル用ＷＬドライバ１３は、差動アンプ３５を含んでいる。ロウアドレスレジスタ１２のマッチラインの出力を差動アンプで受け付けることにより、高速化を実現している。
【００７６】
＜実施例３＞
別の実施形態について説明する。実施例３では、FNH（Force  no-hit）レジスタをＣＡＭセルにて設けている。
【００７７】
図１１は、実施例３におけるロウアドレスレジスタ１２とＦＮＨレジスタ４１の構成を示す図である。
【００７８】
図１２は、実施例３におけるロウアドレスレジスタ１２とＦＮＨレジスタ４１の構成を示す図である。
【００７９】
このようにロウアドレスレジスタ１２とともにＣＡＭセルによりFNHレジスタを設け、レジスタ用ＢＬセンスアンプ／ＳＬドライバ４２の制御により動作する（fnh_bl）ことで、高速化を図ることができる。例えばサーチ動作時に、ヒットアドレスの出力とＦＮＨリードデータの出力までのレーテンシ―が削減できる。またFNHデコーダ回路も不要となり、レイアウト面積の削減につながり、高集積化を図ることができる。
【００８０】
＜実施例４＞
別の実施形態について説明する。実施例４では、救済情報データレジスタを設けている。
【００８１】
図１３は、実施例４における構成の一部を示す図である。
図１４は、実施例４における構成の一部を示す図である。
【００８２】
図１３および図１４に示すように、WL<1>に対応するエントリが不良エントリとし、WL<1>に対応する行を不良エントリ対応行４７として示す。
【００８３】
不良エントリを救済する場合、実施例４では、レジスタ用ＢＬセンスアンプ／ＳＬドライバ４３は、ロウアドレスレジスタ１２の書き換えを行わず、制御信号（sp_bl）により救済情報レジスタ４４を書き換える。ロウデコーダとして機能する場合は、救済情報レジスタ４４および救済シフト回路４５により救済が行われる。またプライオリティエンコーダとして機能する場合は、ロウアドレスレジスタ１２の書き換えが行われないため、アドレスシフト回路４６によりアドレスをシフトして出力する。
【００８４】
例えばWL<1>に対応するエントリが不良であるとすると、WL<2>に対応するエントリのアドレスを「−１」シフトさせ、「０００１」とする。ＴＣＡＭアレイマット２への検索の結果、ロウアドレスレジスタ用ＷＬドライバ１１によりワードラインpeWL<2>が活性化するとする。この場合、ロウアドレスレジスタ１２の値は書き換えないため、アドレスシフト回路４６は、レジスタ用ＢＬセンスアンプ／ＳＬドライバ４３より出力されるマッチアドレス（hit_add0）をシフトさせて、シフト後のアドレスを出力する（hit_add）。
【００８５】
レジスタ用ＢＬセンスアンプ／ＳＬドライバ４３は、制御信号（hft_en）により、プライオリティエンコーダとして機能する際のシフトが必要な行の情報（不良エントリに対応するアドレス等）をアドレスシフト回路４６へ通知する。アドレスシフト回路４６は、例えばレジスタ用ＢＬセンスアンプ／ＳＬドライバ４３より通知される不良エントリに対応するアドレスの情報と、レジスタ用ＢＬセンスアンプ／ＳＬドライバ４３より出力されるマッチアドレス（hit_add0）とを比較して、マッチアドレス（hit_add0）が、不良エントリに対応するアドレス（shft_en）以降であればアドレスをシフトする。
【００８６】
図１５は、救済シフト回路４５、ＣＡＭセル用ＷＬドライバ１３の詳細を示す図である。
【００８７】
救済情報レジスタ４４は、ロウアドレスレジスタ１２の各行に対応してレジスタを備えている。シフトが必要な行について、値「１」を上記レジスタに保持している。
【００８８】
救済シフト回路４５は、図示するように、救済情報レジスタ４４の各行のレジスタの出力を受け付けて、信号（sft、dis）を出力する。図示するように信号（dis）は、救済情報レジスタ４４のレジスタの隣接する行の値に応じて出力が定まり、隣接する行の値が異なる場合に「０」を出力する。信号（dis）は、ＣＡＭセル用ＷＬドライバ１３において不良エントリに対応するワードライン（図示する例ではWL<1>）を不使用にするために用いられる。
【００８９】
救済情報レジスタ４４の各行のレジスタの値は救済シフト回路４５において用いられる。例えば救済シフト回路４５において、sft<2>が入力されるレジスタの値は「１」である。このsft<2>が入力されるレジスタには、マッチラインaddML<1>およびマッチラインaddML<2>が接続されており、sft<2>の値に応じて（すなわち、シフトが必要か否かに応じて）いずれかのマッチラインの出力をＣＡＭセル用ＷＬドライバ１３のラッチ回路に入力する。
【００９０】
上記のように構成することにより、救済をしつつ高速化を図ることができる。
＜実施例５＞
別の実施形態について説明する。ロウアドレスレジスタ１２におけるＴＣＡＭの構成について、実施例５では、ＳＲＡＭ（Static  Random  Access  Memory）やＤＲＡＭ（Dynamic  Random  Access  Memory）やＭＲＡＭ（Magnetoresistive  Random  Access  Memory）やＲＯＭ（Read  Only  Memory）により構成する。
【００９１】
図１６は、ＤＲＡＭによりＴＣＡＭを構成する場合のＴＣＡＭ基本セルを示す図である。
【００９２】
上記のように、検索データはサーチライン（ＳＬ）によりセルに入力され、記憶データＸ（ＳＮＸ）、記憶データＹ（ＳＮＹ）と一致するか判定される。記憶データＸ，Ｙがともに「１」の場合、常に不一致（always  miss）となる。記憶データＸ，Ｙがともに「０」の場合、常に一致（always  hit）となる。
【００９３】
図１７は、ＤＲＡＭによりＴＣＡＭを構成する場合のＴＣＡＭ基本セルを示す図である。上記と同様に、検索データ（ＳＬ）と記憶データ（ＳＮＸ、ＳＮＹ）とが比較され、一致するか判定される。
【００９４】
図１８は、ＭＲＡＭによりＴＣＡＭを構成する場合のＴＣＡＭ基本セルを示す図である。読み出しと書き込みに使用するビットライン（ＢＬ）、読み出し時にトランジスタをオンにするワードライン（ＲＷＬＸ、ＲＷＬＹ）、書き込み時に電流を流すディジットライン（ＤＬ）等が配置されている。
【００９５】
図１９は、ＲＯＭによりロウアドレスレジスタ１２を構成する場合を示す図である。各ＣＡＭセルがＲＯＭにより構成されている。
【００９６】
同図では、「０」を保持するＲＯＭ構成のセル７１と、「１」を保持するＲＯＭ構成のセル７２を示している。
【００９７】
図２０は、セル７１およびセル７２の構成を示す図である。
図２０（Ａ）において、セル７１を示し、図２０（Ｂ）において、セル７２を示している。
【００９８】
上記の実施形態によれば、ロウアドレスレジスタ１２において記憶内容が電源オフ時に保持されるメモリにより構成すると、電源投入ごとの救済回路として機能させるためのシーケンスが不要となる。
【００９９】
上記の例では、ＣＡＭにおけるエンコーダやデコーダにおいて、アドレスレジスタを共用する場合を説明したが、ＣＡＭ以外にエンコーダやデコーダ回路において上記構成を用いるものとしてもよい。アドレスのビット数が多い場合や、エンコーダやデコーダの論理段数が多い回路において、高速化およびレイアウト面積の削減を図ることができる。
【０１００】
このように各実施形態について説明してきたが、これら実施形態を組み合わせてもよいことはいうまでもない。
【０１０１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１０２】
１  内容参照メモリシステム、２  ＴＣＡＭアレイマット、３  マッチアンプ、４  プライオリティ演算部、５  プライオリティエンコード／ロウデコーダ部、６  ＳＬドライバ、７  ＢＬドライバ／リードセンスアンプ、８  制御回路、９  レジスタ用ＢＬセンスアンプ／ＳＬドライバ、１１  ロウアドレスレジスタ用ＷＬドライバ、１２  ロウアドレスレジスタ、１３  ＣＡＭセル用ＷＬドライバ、２１  演算結果出力回路、２２  駆動回路、２３  ＣＡＭセル、２４  ラッチ回路、２５  駆動回路、３１  不良エントリ、３２  第１のＢＬセンスアンプ、３３  第２のＢＬセンスアンプ、３４  レジスタ用ＧＢＬセンスアンプ／ＳＬドライバ、３５  差動アンプ、４１  ＦＮＨレジスタ、４２  レジスタ用ＢＬセンスアンプ／ＳＬドライバ、４３  レジスタ用ＢＬセンスアンプ／ＳＬドライバ、４４  救済情報レジスタ、４５  救済シフト回路、４６  アドレスシフト回路、４７  不良エントリ、５５  プライオリティエンコード部、５６  ロウデコーダ部、５７  制御回路、５８  ＷＬドライバ部、６１  演算結果出力回路、６２  不良救済回路、６３  エンコード回路、６４  デコード回路、６５  不良救済回路。
【図１】
2013191255.tif 000003
【図２】
2013191255.tif 000004
【図３】
2013191255.tif 000005
【図４】
2013191255.tif 000006
【図５】
2013191255.tif 000007
【図６】
2013191255.tif 000008
【図７】
2013191255.tif 000009
【図８】
2013191255.tif 000010
【図９】
2013191255.tif 000011
【図１０】
2013191255.tif 000012
【図１１】
2013191255.tif 000013
【図１２】
2013191255.tif 000014
【図１３】
2013191255.tif 000015
【図１４】
2013191255.tif 000016
【図１５】
2013191255.tif 000017
【図１６】
2013191255.tif 000018
【図１７】
2013191255.tif 000019
【図１８】
2013191255.tif 000020
【図１９】
2013191255.tif 000021
【図２０】
2013191255.tif 000022