(57)【要約】      （修正有）【課題】被検索データパターン数が増大しても、レイアウト面積を増大させることなく、一致判定可能な半導体信号処理装置を提供する。【解決手段】メモリサブブロックに、被検索データパターンを格納する第１のメモリセルＭＣＢｌ，ＭＣＢｒ、および検索データパターンを格納する第２のメモリセルＭＣＡｌ，ＭＣＡｒを設ける。２つの第１のメモリセルおよび２つの第２のメモリセルをそれぞれ記憶単位として相補データを書込む。検索動作時、第１のメモリセルの記憶単位および第２のメモリセルの記憶単位を並行に選択して記憶データに応じた電流を、対応して配置されるローカルマッチ線ＭＬ１−ＭＬ２＾ｋ上に供給する。このローカルマッチ線上の電位に応じて被検索データパターンと検索データパターンの一致／不一致を判定する。サブブロックは複数の検索単位に分割され、そのエントリには、互いにパターン長の異なるデータを記憶することが可能である。【選択図】図１３
2011081875.tif 000002
【特許請求の範囲】
【請求項１】
行列状に配列され、各々が記憶データに応じた電流を流す複数のメモリセルを含むメモリセルアレイを備え、前記メモリセルは、列方向に沿って複数のデータエントリに分割される第１のメモリセルと、前記第１のメモリセルと整列して配置される第２のメモリセルとを有し、前記第１のメモリセルは、行方向において整列して配置される同一エントリ内の２つの第１のメモリセルが記憶単位を構成するように配置され、かつ前記第２のメモリセルも、行方向に整列して配置される２つの第２のメモリセルが記憶単位を構成するように配置され、各前記データエントリは、各々がパターン長の異なるデータパターンを格納することが可能であり、
各前記メモリセル列に対応して配置され、各々が対応の列のメモリセルの供給する電流を受ける複数のビット線、
検索動作時、前記第２のメモリセルに検索データを書込むとともに該書き込まれたデータを読出すとともに選択されたデータエントリの第１のメモリセルを選択して前記選択された第１のメモリセルおよび前記第２のメモリセルの記憶データに応じた電流を対応のビット線に流す行選択駆動回路、
各前記ビット線に対応して設けられ、各々が対応のビット線の電流に応じた電流を供給する複数のセンスアンプ回路、および、
前記データエントリの格納可能なデータパターン長に応じて各々が配置され、前記センスアンプ回路から供給される電流に基いて該対応のデータパターン長毎に前記選択されたデータエントリの記憶データと前記第２のメモリセルに記憶された検索データとの一致／不一致を判定し、該判定結果に従って、前記選択されたデータエントリの格納データと前記検索データとのパターンの一致／不一致を示す信号を生成する電流検出／一致判定回路を備える、半導体信号処理装置。
【請求項２】
前記演算子セルアレイは、前記パターン長毎に、各々が複数のデータエントリを有する複数のサブブロックに分割され、
前記電流検出／一致判定回路は、各前記サブブロックそれぞれに対応して配置され、
前記電流検出／一致判定回路は、
前記検索単位各々に対応して配置され、各々が対応の検索単位のセンスアンプ回路の出力電流を受ける複数のマッチ線と、
前記複数のマッチ線の各可能なデータパターン長に対応して配置され、各データパターン長に対応するマッチ線の出力電位を受ける複数のゲートと、
対応のサブブロックに対して割当てられたパターン長を示す信号に従って、前記複数のゲートの出力信号のうちの指定されたパターン長に対応するゲートの出力信号を選択するマルチプレクサを備える、請求項１記載の半導体信号処理装置。
【請求項３】
前記メモリセルアレイは、列方向に沿って各々が所定のビット幅を有する複数の検索単位に分割され、
前記電流検出／一致判定回路は、
前記検索単位に対応して配置されるとともに前記記憶可能なデータパターン長それぞれに対応してグループ化され、各々が対応の検索単位のセンスアンプ回路からの電流が供給される複数のマッチ線と、
前記複数のマッチ線のグループそれぞれに対応して配置され、各々が対応のグループのマッチ線の電位に従って一致判定結果を示す信号を生成する複数のゲートと、
前記複数のゲートの出力信号を受けて前記一致／不一致を示す信号を生成する最終判定ゲートを含む、請求項１記載の半導体信号処理装置。
【請求項４】
前記電流検出／一致判定回路は、
前記データエントリの記憶可能なパターン長それぞれに対応して配置され、各々が対応のパターン長のデータが割当てられたセンスアンプ回路からの電流が供給される複数のマッチ線と、
前記複数のマッチ線各々に対応して配置され、各々が対応のマッチ線の電位に従って一致判定結果を示す信号を生成する複数のゲートと、
前記複数のゲートの出力信号に従って最終一致判定信号を生成する判定ゲートをさらに備える、請求項１記載の半導体信号処理装置。
【請求項５】
前記複数のゲートの出力信号を受けて前記複数のパターン長のうちの一致したパターン長を示すフラグを保持する一致領域識別回路をさらに備える、請求項３または４記載の半導体信号処理装置。
【請求項６】
前記第２のメモリセルは複数行に配置され、
前記行選択駆動回路は、前記複数行の第２のメモリセルを行単位で順次選択して前記検索データを書込むように前記第２のメモリセル行を選択し、前記第２のメモリセル行の記憶する検索データについての検索動作が実行されているときに、別の行の第２のメモリセルに検索データを書込む、請求項１記載の半導体信号処理装置。
【請求項７】
メモリセルアレイは、複数のサブブロックに分割され、前記複数のサブブロックは、前記検索データについての検索動作を行うＴＣＡＭ領域と、前記検索データを一時的に格納するＦＩＦＯ領域とに分割され、前記ＦＩＦＯ領域においては記憶単位を構成する２つの第２のメモリセルは同じ論理値の固定データを格納し、
前記センスアンプ回路および前記ビット線は、各前記サブブロックに対応して配置されかつ対応のサブブロックにおいてメモリセル列に対応して配置され、
かつ前記電流検出／一致判定回路も、各前記サブブロックに対応して配置され、
前記半導体信号処理装置は、さらに、
前記メモリセルアレイの第１および第２のメモリセルの列に対応して配置されるグローバル読出データ線と、
前記センスアンプ回路それぞれに対応して配置され、各々が属性指示信号に従って対応のセンスアンプ回路の出力信号を対応の電流検出／一致判定回路および対応のグローバル読出データ線の一方に伝達する複数の経路切換回路と、
前記メモリセルアレイのメモリセル列に対応して配置され、各々が対応の列の選択されたデータエントリの第１または第２のメモリセルに前記検索データを転送する複数のグローバル書込データ線と、
検索動作時、与えられた検索データを前記ＦＩＦＯ領域の書込アドレスが指定するデータエントリの第１のメモリセルに前記グローバル書込データ線を介して転送されたデータを書込む書込制御回路と、
前記第１のグローバル書込データ線に外部から与えられたデータおよび前記グローバル読出線上のデータの一方を選択して伝達するデータパスと、
前記データパスの接続経路を動作モードに従って切換える経路制御回路と、
前記検索動作時、前記ＦＩＦＯ領域の読出アドレスが指定するデータエントリの第１のメモリセルの記憶データを前記経路切換回路を介して対応のグローバル読出データ線上に読出すとともに該読出したデータを前記経路切換回路を介して前記グローバル書込データ線に転送しかつさらに前記ＴＣＡＭ領域の第２のメモリセルに書込む読出／検索制御回路と、
前記検索動作時、前記書込アドレスおよび読出アドレスを生成するポインタとをさらに備える、請求項１記載の半導体信号処理装置。
【請求項８】
各前記データエントリに対応して配置されるフラグエントリを含み、対応のデータエントリに格納されるデータのパターン長を示すフラグを格納するマッピングフラグメモリ領域をさらに備える、請求項１記載の半導体信号処理装置。
【請求項９】
前記メモリセル列に対応して配置され、各々が対応の列のメモリセルに書込データを転送するグローバル書込データ線、
前記演算子セル列に対応して配置され、各々が対応の列のセンスアンプ回路の出力信号を受ける複数のグローバル読出データ線と、
前記メモリセル列に対応して配置され、各々が、選択信号に従って、外部からのデータおよび対応のグローバル読出データ線上のデータの一方を選択して対応のグローバル書込データ線に伝達するデータパス切換回路と、
前記グローバル書込データ線に対応して配置され、各々が前記データパス切換回路からの転送データに従って対応のグローバル書込データ線を駆動する書込ドライバと、
前記書込データのパターン長指示データに従って対応の書込ドライバに書込マスクをかけて対応のメモリセルへの書込を禁止するマスク設定回路をさらに備える、請求項１記載の半導体信号処理装置。
【請求項１０】
前記第１および第２のメモリセルは、記憶データに従って抵抗値が異なる可変磁気抵抗素子を備え、
前記記憶単位の２つの第１のメモリセルは、ともに低抵抗状態に設定されてドントケア状態を実現するとともに一致／不一致の２値判定の時には相補な状態に設定される、請求項１記載の半導体信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体信号処理装置に関し、特に、半導体メモリ装置を用いて演算機能を実現して所定の信号処理を行なう半導体信号処理装置に関する。より特定的には、この発明は、入力データパターンについて半導体メモリ装置を用いて検索動作を行なう機能を有する半導体信号処理装置に関する。
【背景技術】
【０００２】
ネットワークを介してデータ通信を行なう場合、ワークステーションまたはパーソナルコンピュータなどの端末およびサーバに対しては、受信データの信頼性を保障する必要がある。このようなサーバまたは端末への悪意のある侵入およびコンピュータウイルス等のシステムへの攻撃などの不正アクセスを禁止するために、一般に、ネットワーク侵入者検知システム（ＮＩＤＳ：Network Intrusions Detection System）が用いられる。ＮＩＤＳは、ネットワーク上を流れるパケットを監視し、不正アクセスを検知し、ログに検知した不正アクセスを保存するとともにアラームを発行して不正アクセスを報知することにより、システムのセキュリティ対策の一翼を担う。
【０００３】
このようなＮＩＤＳの中核構成要素として、悪意の攻撃パケットを検知するためのウイルスパターン検索デバイスがある。ハードウェア上では、たとえば非特許文献１（F. Yu. et. al,“Gigabit Rate Packet Pattern-Matching Using TCAM”, 12th IEEE ICNP'04 Digest of Technical Papers, pp.174-183, 2004）においては、パターン検出に、ＴＣＡＭ（３値ＣＡＭ：Ternary Content Addressable Memory）を用いている。ＴＣＡＭは、入力として検索データを与え、その検索データと同じ内容を保持しているメモリアドレスを出力するという連想メモリ（ＣＡＭ）の機能を拡張したものである。
【０００４】
ＣＡＭにおいては、入力として与えられた検索データとメモリの記憶内容との一致判断は、検索データとメモリ内に保持されるビット列（パターン）の“１”および“０”が完全に一致することにより行なう。ＴＣＡＭにおいては、ＣＡＭメモリ内の保持データビットに、“１”および“０”に加えて、“Ｘ（don't care）”を加える。このドントケア・ビットは、検索データが“１”および“０”のどちらであっても、データビットが一致した結果を生成する。“一致”、“不一致”および“don't care”の３値判断を行なうことにより、検索データパターンのうち特定のパターンを一部として含むデータパターンを識別することができ、パターン検索の自由度が改善される。
【０００５】
前述の非特許文献１に示されるＴＣＡＭを用いた文字列パターン検索シーケンスにおいては、ＴＣＡＭの複数のエントリ各々に非検索パターンが予め格納される。転送されるデータストリングの先頭のｗバイトのパターンを抽出し、ＴＣＡＭの複数のエントリにおいて並行して比較し、一致したエントリがある場合に、そのエントリのアドレスまたは一致を報知する。全エントリについての検索が完了すると、入力ストリングを１バイトシフトし、次のｗバイトのパターンについて検索動作を行なう。この検索動作が繰返し、検索対象のパケットのデータについて実行される。
【０００６】
また、ＴＣＡＭを用いてギガビット・レートで転送されるパケットのパターンマッチングを行なう構成が、非特許文献２（S. Dharmapurikar et.al.,“Fast and Scalable Pattern Matching for Network Intrusion Systems”, IEEE Journal on Selected Areas In Communications, Vol. 24, No. 10, October 2006, pp. 1781-1792）に示されている。この非特許文献２においては、非特許文献１と同様、入力したストリングを、所定のバイト幅のウインドウで区切って検索動作を行ない、また、バイト単位でウィンドウをシフトして検索動作を繰返す。検索動作を効率化するために、ブルームフィルタおよびハッシュテーブルを用いて、データストリングに対するパターンの一致／不一致を検出している。
【０００７】
また、非特許文献２の図４においては、検索対象のパターン長が数バイトから１２２バイト長にわたって分布しており、そのばらつきが非常に大きい。また、そのパターン長分布は、２０バイト長以下の検索パターンが８割近くを占める偏りを持った分布である。この非特許文献２においては具体的に、このストリングの全数の約７０％を占める１６バイトストリングについてのパターンマッチングを行なう方法について説明している。
【０００８】
ＴＣＡＭにおいては、マッチ線（ＭＬ）の長さで決定されるＴＣＡＭの幅よりもマッピングする被検索パターン長が短い場合には、“０”および“１”の情報以外に、“Ｘ”（don't care）の３番目の情報をマッピングすることにより、パターン長をＴＣＡＭ幅に合わせる。これにより、有効パターン領域以外をドントケア・状態に設定して、ＮＩＤＳにおいて要求される可変長の文字列パターン検索に対応させている。
【０００９】
しかしながら、これらの非特許文献１および２においては、１エントリに１被検索パターンをマッピングしているため、ＴＣＡＭにマッピングすることのできる最大被検索パターン数が、エントリ数で決定される。被検索パターンのマッピング数をさらに増大させるためには、大容量のＴＣＡＭを用いるか、または、被検索パターン長を犠牲にしてでも、マッチ線長を短くし、エントリ数を大きくしたＴＣＡＭを用いる必要がある。このため、パターン長について偏った分布を有する文字列検索パターンに対しては、マッピング効率が低くなる。
【００１０】
上述のような、任意のパターン長のデータパターンの検索動作を効率的に行なうことを図る構成が、特許文献１（特開平９−１６１４８８号公報）、特許文献２（特開平２−３０８４９９号公報）、および特許文献３（特開平１１−２７３３６３号公報）に示されている。
【００１１】
特許文献１（特開平９−１６１４８８号公報）においては、任意のビット幅のデータの検索を行なうことを目的として、以下の構成を開示する。すなわち、メモリアレイを複数のブロックに分割し、各ブロックごとにパターンの一致／不一致を判定する比較器を配置する。各ブロックは、複数のエントリに分割される。マスクビットを比較器に対して与えることにより、検索対象のデータのビット幅を変更可能にして、任意のビット幅のデータの検索を比較器において行なう。
【００１２】
特許文献２（特開平２−３０８４９９号公報）は、メモリアレイを複数のセルブロックに分割し、セルブロック個々における検索結果を合成して最終結果を生成する。すなわち、セルブロック個々に分割マッチ線を設け、各セルブロックごとのマッチ線電位を順次隣接マッチ線へ転送して最終結果を生成する。
【００１３】
特許文献３（特開平１１−２７３３６３号公報）は、ＣＡＭアレイを複数個設け、ＣＡＭアレイに応じて入力データを分割して対応のＣＡＭアレイに入力する。ＣＡＭアレイの同一アドレスに関連データが格納される。下位ＣＡＭアレイにおいてヒットしたとき、その下位側のヒットアドレスを上位側ＣＡＭアレイへ転送して上位側ＣＡＭで検索する。上位側および下位側におけるヒットアドレスが一致した場合、この入力データパターンが一致したと判定し、一致アドレスを出力するとともに、一致フラグを生成する。不一致の場合には、一致したＣＡＭアレイから不一致側のＣＡＭアレイへ一致アドレスを転送して不一致側で再度検索動作を行なう。
【００１４】
また、本発明において利用されるデュアルポートＭＲＡＭセルの構造の一例が特許文献４（特開２００３−２９７０６９号公報）または非特許文献３（N. Sakuma et. al.,“MRAM Cell Technology for Over 500-MHz SoC,”IEEE Journal of Solid-State Circuits, Vol.42, No.4, April 2007, pp.830-837.）に開示されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平９−１６１４８８号公報
【特許文献２】特開平２−３０８４９９号公報
【特許文献３】特開平１１−２７３３６３号公報
【特許文献４】特開２００３−２９７０６９号公報
【非特許文献】
【００１６】
【非特許文献１】F. Yu. et. al,“Gigabit Rate Packet Pattern-Matching Using TCAM”, 12th IEEE ICNP'04 Digest of Technical Papers, pp.174-183, 2004
【非特許文献２】S. Dharmapurikar et.al.,“Fast and Scalable Pattern Matching for Network Intrusion Systems”, IEEE Journal on Selected Areas In Communications, Vol. 24, No. 10, October 2006, pp. 1781-1792
【非特許文献３】N. Sakuma et. al.,“MRAM Cell Technology for Over 500-MHz SoC,”IEEE Journal of Solid-State Circuits, Vol.42, No.4, April 2007, pp.830-837
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上述の特許文献１においては、メモリアレイを複数のセルブロックに分割しているものの、各エントリのビット幅は固定であり、１エントリには１つの被検索データパターンが格納される。複数のブロックで並列に検索動作を行なって高速化を図っている。しかしながら、１エントリには１被検索パターンだけが格納されるだけであり、この被検索パターンが数千以上に増大すると、同様、エントリ数も増大し、検索メモリの規模が増大するという問題が生じる。またこの特許文献１においては、ＣＡＭセルの構成については何ら示していない。
【００１８】
特許文献２においては、２値ＣＡＭセル構造が用いられており、ドントケア（don't care）状態は存在していない。また、１エントリには１被検索パターンが格納されるだけであり、同様、被検索パターン数増大に応じてエントリ数が増大する問題が生じる。また、セルブロック個々にマッチ線を設け、マッチ線の負荷を軽減しているものの、このセルブロックにおいて複数のエントリに並列検索を行なった場合、各セルブロック個々に異なるアドレスで一致が判定した場合の誤判定（不一致パターンが一致したと判定する）問題が生じる可能性がある。
【００１９】
特許文献３においても、１エントリに１被検索パターンが格納されるだけである。部分的に一致した場合には再検索を行なっており、検索動作に時間を要する。また、エントリ数が被検索パターン数に応じて増大するという問題が生じる。
【００２０】
前述の非特許文献１および２においても、１エントリに１被検索パターンがマッピング（登録）されているだけであり、パターン数増大とともにエントリ数が増大し、検索メモリ規模が増大する。
【００２１】
それゆえ、この発明の目的は、被検索データパターン数が増大してもエントリ数を増大させることなく効率的にパターン検索を行なうことのできる半導体信号処理装置を提供することである。
【００２２】
この発明の他の目的は、高密度に被検索パターンを格納することのできる検索機能を有する半導体信号処理装置を提供することである。
【課題を解決するための手段】
【００２３】
この発明にかかる半導体信号処理装置は、一実施の形態において、行列状に配列され、各々が記憶データに応じた電流を流す複数のメモリセルを含むメモリセルアレイを備える。メモリセルは、列方向に沿って複数のデータエントリに分割される第１のメモリセルと、第１のメモリセルと整列して配置される第２のメモリセルとを有する。第１のメモリセルは、行方向において整列して配置される同一エントリ内の２つの第１のメモリセルが記憶単位を構成するように配置され、かつ第２のメモリセルも、行方向に整列して配置される２つの第２のメモリセルが記憶単位を構成するように配置される。各データエントリは、各々がパターン長の異なるデータパターンを格納することが可能である。
【００２４】
一実施の形態における半導体信号処理装置は、さらに、各メモリセル列に対応して配置され、各々が対応の列のメモリセルの供給する電流を受ける複数のビット線と、検索動作時、第２のメモリセルに検索データを書込んで該書き込まれたデータを読出すとともに選択されたデータエントリの第１のメモリセルを選択してこれらの選択された第１のメモリセルおよび第２のメモリセルの記憶データに応じた電流を対応のビット線に流す行選択駆動回路と、各ビット線に対応して設けられ、各々が対応のビット線の電流に応じた電流を供給する複数のセンスアンプ回路と、データエントリの格納可能なデータパターン長に応じて各々が配置され、センスアンプ回路から供給される電流に基いて該対応のデータパターン長毎に選択されたデータエントリの記憶データと第２のメモリセルに記憶された検索データとの一致／不一致を判定し、該判定結果に従って、前記選択されたデータエントリの格納データと前記検索データとのパターンの一致／不一致を示す信号を生成する電流検出／一致判定回路を備える。
【発明の効果】
【００２５】
１つのエントリに、複数の被検索データパターンを格納可能に構成しており、被検索データパターン数が増大しても、エントリ数の増大を抑制することができる。また、各エントリに対応して各格納パターン長に応じて検索結果を示すマッチ線の信号に従って一致／不一致を判定しており、パターン長が異なる場合においても、正確に被検索データパターンと検索データパターンの一致／不一致を判定することができる。
【００２６】
また、電流により記憶データの読出およびマッチ線への一致結果の伝達を行っており、高速で検索データと記憶データ（登録データ）との一致／不一致を判定することができる。
【図面の簡単な説明】
【００２７】
【図１】この発明の実施の形態１において用いられるメモリセルの断面構造を概略的に示す図である。
【図２】図１に示すメモリセルの電気的等価回路を示す図である。
【図３】（Ａ）および（Ｂ）は、メモリセルの可変磁気抵抗素子の磁化方向と抵抗状態の対応を示す図である。
【図４】この発明の実施の形態１に従う半導体信号処理装置の要部の構成を概略的に示す図である。
【図５】図４に示すビット線書込ドライバの構成の一例を概略的に示す図である。
【図６】図４に示すセンスアンプ回路の構成の一例を概略的に示す図である。
【図７】この発明の実施の形態１に従う半導体信号処理装置の演算操作時のメモリセル選択態様を概略的に示す図である。
【図８】図７に示すメモリセルの選択態様におけるメモリセルの状態の組合せを一覧にして示す図である。
【図９】図８に示すメモリセルの組の状態とビット線電位との対応を示す図である。
【図１０】この発明の実施の形態１に従う半導体信号処理のメモリセルの配置およびデータ読出経路を概略的に示す図である。
【図１１】図１０に示すメモリセル配置におけるセンスアンプ回路出力電流と各メモリセルの状態との組合せを一覧にして示す図である。
【図１２】この発明の実施の形態１に従う半導体信号処理装置のメモリマットの構成を概略的に示す図である。
【図１３】図１２に示すサブブロックの構成を具体的に示す図である。
【図１４】図１２に示すローカル一致判定回路の構成の一例を示す図である。
【図１５】この発明の実施の形態１における各サブブロックにおける格納データパターンを示す図である。
【図１６】図１５に示すサブブロックの配置における被検索データパターンのマッピング態様の一例を示す図である。
【図１７】この発明の実施の形態１におけるサブデータパターンの入力態様を概略的に示す図である。
【図１８】この発明の実施の形態１に従う半導体信号処理装置のデータパスの構成の一例を概略的に示す図である。
【図１９】この発明の実施の形態１に従う半導体信号処理装置の検索動作シーケンスを示すタイミング図である。
【図２０】この発明の実施の形態１に従う半導体信号処理装置のローカル行選択駆動回路の構成を概略的に示す図である。
【図２１】この発明の実施の形態１に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。
【図２２】この発明の実施の形態２に従う半導体信号処理装置のメモリセルアレイの構成を概略的に示す図である。
【図２３】図２２に示すメモリセル配置における検索動作シーケンスを概略的に示すタイミング図である。
【図２４】この発明の実施の形態２に従う半導体信号処理装置のローカル行選択駆動回路の構成を概略的に示す図である。
【図２５】この発明の実施の形態１に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。
【図２６】図２５に示す検索書込ワード線活性化回路および検索読出ワード線活性化回路の構成をより具体的に示す図である。
【図２７】この発明の実施の形態３に従う半導体信号処理装置のサブブロックの構成を概略的に示す図である。
【図２８】この発明の実施の形態３に従う半導体信号処理装置のデータパスの構成を概略的に示す図である。
【図２９】図２８に示すグローバル書込データ線配置におけるビット線書込ドライバの配置を概略的に示す図である。
【図３０】この発明の実施の形態３に従う半導体信号処理装置における初期データ書込時のデータ転送経路を概略的に示す図である。
【図３１】この発明の実施の形態３に従う半導体信号処理装置の被検索データパターン書込時のデータ転送経路を概略的に示す図である。
【図３２】この発明の実施の形態３に従う半導体信号処理装置の検索動作時のデータ転送経路を概略的に示す図である。
【図３３】この発明の実施の形態３に従う半導体信号処理装置の検索データパターンの転送経路を概略的に示す図である。
【図３４】この発明の実施の形態３に従う半導体信号処理装置のＦＩＦＯ領域に対するアドレス発生部の構成を概略的に示す図である。
【図３５】この発明の実施の形態３に従う半導体信号処理装置の検索動作シーケンスを示すタイミング図である。
【図３６】この発明の実施の形態３に従う半導体信号処理装置の検索動作時のデータ転送経路を概略的に示す図である。
【図３７】この発明の実施の形態３に従う半導体信号処理装置のＦＩＦＯ領域からＴＣＭ領域へのデータ転送時の動作を概略的に示す図である。
【図３８】この発明の実施の形態３に従う半導体信号処理装置のＦＩＦＯ領域からＴＣＭ領域への書込データの転送経路を概略的に示す図である。
【図３９】この発明の実施の形態３に従う半導体信号処理装置のローカル行選択駆動回路の構成を概略的に示す図である。
【図４０】この発明の実施の形態３に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。
【図４１】図４０に示す制御回路の被検索データパターン登録時の動作を示すフロー図である。
【図４２】この発明の実施の形態３に従う半導体信号処理装置の検索動作時におけるＦＩＦＯ領域の制御動作を示すフロー図である。
【図４３】この発明の実施の形態３に従う半導体信号処理装置の検索動作シーケンスにおけるＴＣＡＭ領域に対する動作制御を示すフロー図である。
【図４４】この発明の実施の形態４に従う半導体信号処理装置の要部の構成を概略的に示す図である。
【図４５】この発明の実施の形態４に従う半導体信号処理装置における１エントリに格納可能なデータパターン長の一例を概略的に示す図である。
【図４６】この発明の実施の形態４に従う半導体信号処理装置の各エントリへの被検索データパターンマッピングの具体的態様の一例を示す図である。
【図４７】この発明の実施の形態４に従う半導体信号処理装置のローカル一致判定部の構成を概略的に示す図である。
【図４８】図４７に示すローカル一致判定回路の構成の一例を示す図である。
【図４９】この発明の実施の形態４に従う半導体信号処理装置の一致判定部の変更例の構成を概略的に示す図である。
【図５０】この発明の実施の形態４に従う半導体信号処理装置の被検索データパターン書込時の動作態様を概略的に示す図である。
【図５１】この発明の実施の形態４に従う半導体信号処理装置のパターン長Ｌの被検索データパターン書込時の態様を概略的に示す図である。
【図５２】この発明の実施の形態４に従う半導体信号処理装置のパターン長Ｌ／２のデータ書込態様を示す図である。
【図５３】この発明の実施の形態４に従う半導体信号処理装置のパターン長Ｌ／２のデータ格納態様を概略的に示す図である。
【図５４】この発明の実施の形態４に従う半導体信号処理装置のパターン長Ｌ／４のデータ格納態様を概略的に示す図である。
【図５５】この発明の実施の形態４に従う半導体信号処理装置のパターン長Ｌ／８のデータ格納態様を概略的に示す図である。
【図５６】この発明の実施の形態４に従う半導体信号処理装置のパターン長Ｌ／８のデータ格納態様を概略的に示す図である。
【図５７】この発明の実施の形態４に従う半導体信号処理装置のマッピングフラグメモリ領域に対するデータ書込時の構成を概略的に示す図である。
【図５８】この発明の実施の形態４に従う半導体信号処理装置のデータパターン格納領域に対するデータ書込時の構成を概略的に示す図である。
【図５９】この発明の実施の形態４に従う半導体信号処理装置におけるマスク指示信号の対応関係を概略的に示す図である。
【図６０】この発明の実施の形態４に従う半導体信号処理装置に対する入力データの構成を概略的に示す図である。
【図６１】図６０に示す入力データ構造の具体的例を示す図である。
【図６２】この発明の実施の形態４に従う半導体信号処理装置の書込アドレスを発生する部分の構成を概略的に示す図である。
【図６３】図６２に示すゲート回路の構成の一例を具体的に示す図である。
【図６４】この発明の実施の形態４に従う半導体信号処理装置におけるマスク指示信号およびマッピングフラグビットを生成する部分の構成を概略的に示す図である。
【図６５】図６４に示すマスクデコード回路の構成の一例を概略的に示す図である。
【図６６】この発明の実施の形態４に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。
【図６７】この発明の実施の形態５に従う半導体信号処理装置の要部の構成を概略的に示す図である。
【図６８】この発明の実施の形態５に従う半導体信号処理装置の一致領域識別回路の全体の構成を概略的に示す図である。
【図６９】この発明の実施の形態５に従う半導体信号処理装置の変更例の構成を概略的に示す図である。
【発明を実施するための形態】
【００２８】
［実施の形態１］
図１は、この発明の実施の形態１に従う半導体信号処理装置において用いられるメモリセルの断面構造を概略的に示す図である。メモリセルとして、ＭＲＡＭ（磁気ランダム・アクセス・メモリ）セルが利用される。図１においては、行列状に配置される複数のメモリセルのうち、ｉ番目のメモリセル行＜ｉ＞、ｊ番目のメモリセル行＜ｊ＞およびｋ番目のメモリセル行＜ｋ＞それぞれに配置されるメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの構造を代表的に示す。これらのメモリセルＭＣＩ、ＭＣＪおよびＭＣＫは、各々、１つのアクセストランジスタおよび１つのＭＴＪ（磁気トンネル接合）素子で構成されるＭＲＡＭセルである。
【００２９】
図１において、半導体基板領域１表面に、間をおいて、高濃度Ｎ型不純物領域２Ｉ、４Ｉ、２Ｊ、４Ｊ、２Ｋ、および４Ｋが配置される。不純物領域２Ｉおよび４Ｉの間のチャネル形成領域３Ｉ上に、ゲート絶縁膜を介してゲート電極５Ｉが形成される。同様、不純物領域２Ｊおよび４Ｊの間のチャネル形成領域３Ｊ上に、ゲート絶縁膜を介してゲート電極５Ｊが形成される。また、不純物領域２Ｋおよび４Ｋの間のチャネル形成領域３Ｋ上に、ゲート絶縁膜を介してゲート電極５Ｋが形成される。
【００３０】
不純物領域２Ｉおよび４Ｉとゲート電極５Ｉとにより、メモリセルＭＣＩのアクセストランジスタが形成される。ゲート電極５Ｉは、読出ワード線ＲＷＬｉを構成する。メモリセルＭＣＩにおいて、アクセストランジスタに対応してその上層に可変抵抗素子として、可変磁気抵抗素子（ＭＴＪ素子）ＭＴＪＩが設けられる。
【００３１】
可変磁気抵抗素子ＭＴＪＩは、磁化方向が固定される固定層ＦＸＬと、磁化方向が記憶データに応じて変更される自由層ＦＲＬと、これらの固定層ＦＸＬおよび自由層ＦＲＬの間のトンネルバリア層ＴＢＬとを有する。自由層ＦＲＬは、上部電極ＵＥＬＲを介してビット線ＢＬに結合される。固定層ＦＸＬは、局所配線ＬＩＩに、図示しない下部電極を介して接続される。局所配線ＬＩＩは、プラグ６Ｉおよび７Ｉと中間配線８Ｉとにより、不純物領域２Ｉに電気的に結合される。可変磁気抵抗素子ＭＴＪＩ下部においては、中間配線８Ｉと同一配線層に、導電線９Ｉが配置される。この導電線９Ｉは、書込ワード線ＷＷＬｉを構成する。
【００３２】
メモリセルＭＣＪにおいては、不純物領域２Ｊおよび４Ｊとゲート電極５Ｊとにより、アクセストランジスタが形成される。ゲート電極５Ｊは、別の読出ワード線ＲＷＬｊを構成する。
【００３３】
メモリセルＭＣＪのアクセストランジスタ形成領域の上部に、また、可変磁気抵抗素子ＭＴＪＪが設けられる。可変磁気抵抗素子ＭＴＪＪは、可変磁気抵抗素子ＭＴＪＩと同一構成を有するため、その構成要素に対する参照符号は省略する。可変磁気抵抗素子ＭＴＪＪの図示しない下部電極は、局所配線ＬＩＪ、プラグ６Ｊおよび７Ｊ、および中間配線８Ｊを介して不純物領域２Ｊに電気的に結合される。
【００３４】
可変磁気抵抗素子ＭＴＪＪの下部において、中間配線８Ｊと同一配線層に、導電線９Ｊが配置される。この導電線９Ｊは、別の書込ワード線ＷＷＬｊを構成する。
【００３５】
メモリセルＭＣＫにおいては、不純物領域２Ｋおよび４Ｋとゲート電極５Ｋとにより、アクセストランジスタが形成される。ゲート電極５Ｋは、別の読出ワード線ＲＷＬｋを構成する。
【００３６】
このメモリセルＭＣＫのアクセストランジスタ形成領域の上部に、また、可変磁気抵抗素子ＭＴＪＫが設けられる。可変磁気抵抗素子ＭＴＪＫは、可変磁気抵抗素子ＭＴＪＩと同一構成を有するため、その構成要素に対する参照符号は省略する。可変磁気抵抗素子ＭＴＪＫは、局所配線ＬＩＫ、プラグ６Ｋおよび７Ｋ、および中間配線８Ｋを介して不純物領域２Ｋに電気的に結合される。
【００３７】
可変磁気抵抗素子ＭＴＪＫ下部において、中間配線８Ｋと同一配線層に導電線９Ｋが配置される。この導電線９Ｋは、別の書込ワード線ＷＷＬｋを構成する。
【００３８】
図２は、図１に示すメモリセルＭＣＩ、ＭＣＪおよびＭＣＫの電気的等価回路を示す図である。図２において、メモリセルＭＣＩは、ビット線ＢＬとソース線ＳＬの間に直列に接続されるアクセストランジスタＡＴＩおよび可変磁気抵抗素子ＭＴＪＩを含む。メモリセルＭＣＪは、ビット線ＢＬとソース線ＳＬＪの間に直列に接続される可変磁気抵抗素子ＭＴＪＪおよびアクセストランジスタＡＴＪを含む。メモリセルＭＣＫは、ビット線ＢＬとソース線ＳＬＫの間に直列に接続される可変磁気抵抗素子ＭＴＪＫおよびアクセストランジスタＡＴＫを含む。
【００３９】
図２においては、ソース線ＳＬＩ、ＳＬＪおよびＳＬＫは、ビット線ＢＬと直交する方向に配設されるように示すが、これらのソース線ＳＬＩ、ＳＬＪおよびＳＬＫは、ビット線ＢＬと平行に配設されてもよい。ソース線ＳＬＩ、ＳＬＪおよびＳＬＫは、それぞれ、接地ノードに結合される。
【００４０】
アクセストランジスタＡＴＩ、ＡＴＪおよびＡＴＫは、それぞれ、読出ワード線ＲＷＬｉ、ＲＷＬｊおよびＲＷＬｋ上の信号電位に応答して選択的にオン状態となる。書込ワード線ＷＷＬｉ、ＷＷＬｊおよびＷＷＬｋは、それぞれ、可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫと物理的に分離されかつ磁気的に結合される。ビット線ＢＬ、書込ワード線ＷＷＬｉ、ＷＷＬｊおよびＷＷＬｋをそれぞれ流れる電流が誘起する磁界により、可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫの自由層ＦＲＬの磁化方向が設定され、応じてデータが記憶される。
【００４１】
図３は、可変磁気抵抗素子の自由層および固定層の磁化方向とその抵抗値の関係を概略的に示す図である。図３においては、磁化方向を矢印で示す。図３（Ａ）に示すように、固定層ＦＸＬおよび自由層ＦＲＬの磁化方向が異なる場合（反平行の場合）、磁気抵抗効果により、可変磁気抵抗素子を介して流れる電流に対する電気的抵抗が高くなる。この状態においては、可変磁気抵抗素子は、電流に対して高抵抗状態となり、抵抗値Ｒｍａｘを有する。
【００４２】
一方、図３（Ｂ）に示すように、固定層ＦＸＬと自由層ＦＲＬの磁化方向が一致するとき（平行な場合）、この可変磁気抵抗素子は、電流に対して低抵抗状態となり、抵抗値Ｒｍｉｎを有する。
【００４３】
図２に示すアクセストランジスタＡＴ（ＡＴＩ，ＡＴＪ，ＡＴＫ）がオン状態のとき、ビット線ＢＬおよびソース線ＳＬ（ＳＬＩ，ＳＬＪ，ＳＬＫ）を流れる電流量は、可変磁気抵抗素子ＭＴＪ（ＭＴＪＩ，ＭＴＪＪ，ＭＴＪＫ）の抵抗値に従って異なる。この電流量を、図示しないセンスアンプで検知することにより、メモリセルＭＣ（ＭＣＩ，ＭＣＪ，ＭＣＫ）の記憶データを読出す。一例として、抵抗値Ｒｍａｘの高抵抗状態をデータ“０”に対応付け、抵抗値Ｒｍｉｎの低抵抗状態をデータ“１”に対応付ける。
【００４４】
データ書込時においては、図２に示すアクセストランジスタＡＴＩ、ＡＴＪおよびＡＴＫをオフ状態に維持する。書込ワード線ＷＷＬ（ＷＷＬｉ，ＷＷＬｊ，ＷＷＬｋ）に所定の方向に電流を流し、磁界を誘起する。また、ビット線ＢＬを介して、書込データに応じた方向に電流を流す。ビット線ＢＬを流れる電流が誘起する磁界と書込ワード線ＷＷＬを流れる電流が誘起する磁界の合成磁界により、可変磁気抵抗素子ＭＴＪの自由層ＦＲＬの磁化方向を、固定層の磁化方向に対し平行状態または反平行状態に設定する。この自由層の磁化方向により、可変磁気抵抗素子ＭＴＪの抵抗状態が設定され、データの書込が行なわれる。
【００４５】
上述のように、メモリセルＭＣの記憶データは、可変磁気抵抗素子の自由層の磁化方向に対応付けられる。外部から自由層の磁化方向を反転させる要因が印加されない限り、自由層（ＦＲＬ）の磁化方向は変化しない。したがって、メモリセルＭＣは、不揮発的にデータを記憶することができる。また、自由層（ＦＲＬ）の磁化方向は、ビット線電流および書込ワード線電流の誘起する磁界により決定され、書込時、たとえばフラッシュメモリのようにトンネル絶縁膜を介して電流は流れない。したがって、層間絶縁膜の劣化等の問題を回避することができ、可変磁気抵抗素子の書換え回数は、理想的には、ほぼ無限大である。
【００４６】
また、可変磁気抵抗素子の自由層の磁化方向は、ビット線ＢＬおよび書込ワード線ＷＷＬを流れる電流により決定されるため、書込を高速で行なうことができる。また、データ読出も、ビット線ＢＬを流れる電流量に従って行なわれ、高速で読出を行なうことができる。可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫを介して流れる電流の大きさに応じてデータの読出が行なわれる。このビット線読出電流は誘起する磁界は、十分に小さい。可変磁気抵抗素子ＭＴＪＩ、ＭＴＪＪおよびＭＴＪＫの自由層の磁化方向は、読出電流によって反転しない。したがって、非破壊的にデータの読出を行なうことができ、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）セルおよび強誘電体キャパシタのような再書込またはリストア動作が不要となり、データ読出サイクルを短くすることができる。
【００４７】
図４は、この発明の実施の形態１に従う半導体信号処理装置のメモリセルアレイの構成を概略的に示す図である。図４においては、２列に配列されるＭＲＡＭセルの配置およびそれに関連する書込および読出用の周辺回路の構成を概略的に示す。図４において、図２に示す構成に対応して、ＭＲＡＭセル（以下、単にメモリセルと称す）ＭＣＢＩｌ、ＭＣＢＪｌ、ＭＣＢＫｌおよびＭＣＡｌが列方向に整列して配置され、各々ビット線ＢＬＬに結合される。メモリセルＭＣＢＩｒ、ＭＣＢＪｒ、ＭＣＢＫｒおよびＭＣＡｒが列方向に整列して配置され、それぞれビット線ＢＬＲに結合される。
【００４８】
ビット線ＢＬＬおよびＢＬＲそれぞれに対応して補のビット線（参照ビット線）ＺＢＬＬおよびＺＢＬＲが設けられる。この補のビット線ＺＢＬＬおよびＺＢＬＲに対しては、それぞれダミーセルＤＭＣＢｌおよびＤＭＣＢｒが設けられる。
【００４９】
メモリセルＭＣＢＩｌおよびＭＣＢＩｒは、各々、可変磁気抵抗素子ＭＴＪＩｌおよびＭＴＪＩｒとアクセストランジスタＡＴＩｌおよびＡＴＩｒを含み、メモリセルＭＣＢＪｌおよびＭＣＢＪｒは、それぞれ可変磁気抵抗素子ＭＴＪＪｌおよびＭＴＪＪｒとアクセストランジスタＡＴＪｌおよびＡＴＪｒを含む。メモリセルＭＣＢＫｌおよびＭＣＢＫｒは、それぞれ、可変磁気抵抗素子ＭＴＪＫｌおよびＭＴＪＫｒとアクセストランジスタＡＴＫｌおよびＡＴＫｒを含む。
【００５０】
メモリセル（第２メモリセル）ＭＣＡｌおよびＭＣＡｒは、メモリセル（第１メモリセル）ＭＣＢと列方向において整列して１行に配列される。メモリセルＭＣＡｌは、可変磁気抵抗素子ＭＴＪＡｌとアクセストランジスタＡＴＡｌとを含み、メモリセルＭＣＡｒは、可変磁気抵抗素子ＭＴＪＡｒとアクセストランジスタＡＴＡｒとを含む。メモリセルＭＣＡｌは、ビット線ＢＬＬとソース線ＳＬＡとの間に接続され、メモリセルＭＣＡｒは、ビット線ＢＬＲとソース線ＳＬＡとの間に接続される。
【００５１】
これらのメモリセルＭＣＢｌ（ＭＣＢＩｌ，ＭＣＢＪｌ，ＭＣＢＫｌ）およびＭＣＢｒ（ＭＣＢＩｒ，ＭＣＢＪｒ，ＭＣＢＫｒ）およびメモリセルＭＣＡｌおよびＭＣＡｒは、それぞれ対応のソース線ＳＬｉ、ＳＬｊおよびＳＬｋ、およびＳＬＡを介して共通に、共通ソース線ＳＬＣＭに結合される。
【００５２】
ダミーセルＤＭＣｌおよびＤＭＣｒは、それぞれ、可変磁気抵抗素子ＤＭＴＪｌおよびＤＭＴＪｒとアクセストランジスタＤＡＴｌおよびＤＡＴｒとを含む。ダミーセルＤＭＣｌおよびＤＭＣｒのアクセストランジスタＤＡＴｌおよびＤＡＴｒは、基準電圧ＶＲＥＦを受けるダミーソース線ＤＳＬに結合される。
【００５３】
ダミーセルＤＭＣＢｌおよびＤＭＣＢｒは、メモリセルＭＣＢｌおよびＭＣＢｒと同一の構成を有しており、可変磁気抵抗素子ＤＭＴＪは、低抵抗状態に設定される。ダミーソース線ＤＳＬに与える規準電圧ＶＲＥＦの電圧レベルを調整して、ダミーセルＤＭＣＢｌおよびＤＭＣＢｒの選択時に対応の参照ビット線ＺＢＬＬおよびＺＢＬＲに流す電流量を、メモリセルＭＣＢｌおよびＭＣＢｒの高抵抗状態および低抵抗状態にそれぞれ流れるビット線電流の中間値の電流を流すことができる。
【００５４】
各メモリセル行に対応して、書込ワード線ＷＷＬｉ、ＷＷＬｊ、ＷＷＬｋおよびＷＷＬＡ１が配置され、それぞれ書込ワード線ドライバＷＷＤＶＩ、ＷＷＤＶＪ、ＷＷＤＶＫ、およびＷＷＤＶＡ１により選択状態へ駆動される。
【００５５】
メモリセルのアクセストランジスタの各行に対応して、読出ワード線ＲＷＬｉ、ＲＷＬｊ、ＲＷＬｋおよびＲＷＬＡ１が設けられ、それぞれ読出ワード線ドライバＲＷＤＶＩ、ＲＷＤＶＪ、ＲＷＤＶＫおよびＲＷＤＶＡ１により選択状態へ駆動される。
【００５６】
ダミーセルＤＭＣＢｌおよびＤＭＣＢｒに対しても、ダミー書込ワード線ＤＷＷＬおよびダミー読出ワード線ＤＲＷＬが配置され、それぞれ、ワード線書込ドライバＤＷＷＤＶおよびダミー読出ドライバＤＲＷＤＶにより選択状態へ駆動される。
【００５７】
ビット線ＢＬＬおよびＺＢＬＬに対しセンスアンプ回路ＳＡＫＬが設けられ、ビット線ＢＬＲおよびＺＢＬＲに対しセンスアンプ回路ＳＡＫＲが設けられる。センスアンプ回路ＳＡＫＬおよびＳＡＫＲは、それぞれ、対応のビット線ＢＬＬ、ＺＢＬＬおよびＢＬＲ、ＺＢＬＲを流れる電流を差動増幅する。
【００５８】
ビット線ＢＬＬおよびＺＢＬＬの両端に、ビット線書込ドライバＷＤＶＬ１、ＷＤＶＬ２、およびＤＷＤＶＬ１、ＤＷＤＶＬ２が設けられる。ビット線書込ドライバＷＤＶＬ１およびＷＤＶＬ２により、ビット線ＢＬＬに書込データに応じた方向に電流が流れる。
【００５９】
ビット線ＢＬＲの両端に、ビット線書込ドライバＷＤＶＲ１およびＷＤＶＲ２が設けられ、参照ビット線ＺＢＬＲの両端に、書込ドライバＤＷＤＶＲ１およびＤＷＤＶＲ２がそれぞれ設けられる。
【００６０】
これらのビット線書込ドライバＷＤＶＬ１，ＤＷＤＶＬ１，ＷＤＶＲ１，ＤＷＤＶＲ１，ＤＷＤＶＲ２，ＷＤＶＲ２，ＤＷＤＶＲ２，ＷＤＶＬ２は、それぞれ書込データに応じた方向に電流を流す。ビット線書込電流により磁界が誘起され、この電流誘起磁界が選択メモリセルに対して印加される。ビット線に書込データに応じた方向に電流を流すため、図４においては、ビット線書込ドライバＷＤＶＬ１およびＷＤＶＬ２に対し相補データＤ＜１ｌ＞および／＜１ｌ＞が与えられ、ビット線書込ドライバＷＤＶＲ１，ＷＤＶＲ２に、相補データＤ＜１ｒ＞および／＜１ｒ＞がそれぞれ与えられる。
【００６１】
ダミービット線書込ドライバＤＷＤＶＬ１、ＤＷＤＶＲ１に対しデータＤＤ＜１ｌ＞およびＤＤ＜１ｒ＞が与えられ、このビット線書込ドライバＤＷＤＶＬ２，ＤＷＤＶＲ２に、それぞれ、補のデータ／ＤＤ＜１ｌ＞および／ＤＤ＜１ｒ＞が与えられる。これにより、相補データの論理値に応じた方向にビット線電流を流すことができる。
【００６２】
図５は、図４に示すビット線書込ドライバの構成の一例を示す図である。図４に示すビット線書込ドライバＷＤＶＬ１，ＷＤＶＲ１、ＤＷＤＶＬ１，ＤＷＤＶＲ１、ＷＤＶＬ２，ＷＤＶＲ２、ＤＷＤＶＬ２，ＤＷＤＶＲ２は同一構成を意味するため、図５においては、１組のビット線書込ドライバの構成を代表的に示す。また、ビット線としてビット線ＢＬおよびＺＢＬを代表的に示す。
【００６３】
図５において、ビット線ＢＬの右端にビット線書込ドライバＷＤＶＲが設けられ、ビット線ＢＬの左端にビット線書込ドライバＷＤＶＬが設けられる。ビット線書込ドライバＷＤＶＲは、書込タイミング発生器１０ｒと、書込タイミング発生器１０ｒの出力するタイミング制御信号φＰＲおよびφＮＲに従ってそれぞれオン状態となるＰチャネルＭＯＳトランジスタＰＴｒおよびＮチャネルＭＯＳトランジスタＮＴｒを含む。書込タイミング発生器１０ｒは、書込データ／ＷＤとブロック選択信号ＢＳＬとを受け、このブロック選択信号ＢＳＬが対応のビット線ＢＬを含むアレイブロック指定するときに、書込データ／ＷＤに従ってワンショットパルスの形態で書込タイミング制御信号φＰＲおよびφＮＲのいずれかを活性化する。ＰチャネルＭＯＳトランジスタＰＴｒは導通時、電源ノードあるいはビット線ＢＬに電流を供給し、ＮチャネルＭＯＳトランジスタＮＴｒは、オン状態のときビット線ＢＬから接地ノードへ電流を放電する。
【００６４】
ここで、ブロック選択信号ＢＳＬが用いられ、列選択信号ＣＳＬが用いられていないのは、後に詳細にアレイ構成について説明するが、列延在方向（Ｙ方向）に沿ってメモリセルアレイが複数のサブブロックに分割され、選択サブブロックにおいて選択行のメモリセルに並行してデータの書込が行われて、被検索データパターンの登録が行われるためである。列ブロック単位でデータの書込が行われる場合にはブロック選択信号に代えて列選択信号が用いられてもよい。
【００６５】
ビット線書込ドライバＷＤＶＬは、書込タイミング発生器１０ｌと、ＰチャネルＭＯＳトランジスタＰＴｌと、ＮチャネルＭＯＳトランジスタＮＴｌとを含む。書込タイミング発生器１０ｌは、ブロック選択信号ＢＳＬと書込データＷＤとに従ってワンショットパルスの形態で書込タイミング制御信号φＰＬおよびφＮＬのいずれかを活性化する。すなわち、書込タイミング発生器１０ｌは、ブロック選択信号ＢＳＬが対応のビット線ＢＬを含むサブブロックを指定するときに、書込データＷＤに従ってこれらの書込タイミング制御信号φＰＬおよびφＮＬのいずれかを活性化する。
【００６６】
ＰチャネルＭＯＳトランジスタＰＴｌは、書込タイミング制御信号φＰＬがＬレベルのときにオン状態となり、電源ノードからビット線ＢＬへ電流を供給する。一方、ＮチャネルＭＯＳトランジスタＮＴｌは、書込タイミング制御信号φＮＬが活性化時オン状態となり、ビット線ＢＬから接地ノードへ電流を放電する。
【００６７】
書込タイミング発生器１０ｒおよび１０ｌには、互いに相補な書込データ／ＷＤおよびＷＤがそれぞれ伝達される。書込タイミング発生器１０ｒおよび１０ｌは、その内部構成は同一である。したがって、データ書込時、書込データＷＤおよび／ＷＤに従って、ＰチャネルＭＯＳトランジスタＰＴｌおよびＮチャネルＭＯＳトランジスタＮＴｒの組およびＰチャネルＭＯＳトランジスタＰＴｒおよびＮチャネルＭＯＳトランジスタＮＴｌの組のいずれかの組のトランジスタがオン状態となり、ビット線ＢＬに電流を流す。
【００６８】
ＰチャネルＭＯＳトランジスタＰＴｌおよびＮチャネルＭＯＳトランジスタＮＴｒがともにオン状態となると、ビット線ＢＬに、図の左側から右側に向かって電流が流れる。一方、ＰチャネルＭＯＳトランジスタＰＴｒおよびＮチャネルＭＯＳトランジスタＮＴｌがオン状態のときには、ビット線ＢＬに図５の右側から左側に向かって電流が流れる。これにより、書込データＷＤおよび／ＷＤの論理値に従ってビット線ＢＬに右側および左側のいずれかの方向に電流を流すことができる。応じて、ビット線ＢＬを流れる電流が誘起する磁界の方向を書込データに応じて設定することができ、可変磁気抵抗素子ＭＴＪの自由層の磁化方向を書込データの論理値に応じて設定することができる。
【００６９】
図６は、図４に示すセンスアンプ回路ＳＡＫＬおよびＳＡＫＲの構成の一例を概略的に示す図である。センスアンプ回路ＳＡＫＬおよびＳＡＫＲは同一構成を有するため、図６においては、符号“ＳＡＫ”を用いて、これらのセンスアンプ回路ＳＡＫＬおよびＳＡＫＲを代表的に示す。
【００７０】
図６において、センスアンプ回路ＳＡＫは、電流検出型センスアンプ１２と、センスアンプ１２の出力信号ＳＯＴおよび／ＳＯＴをさらに増幅するポストアンプ１４と、このポストアンプ１４の出力信号ＳＯＵＴに従って選択的に読出データ線ＲＤＬへ電流を供給する電流供給回路１６とを含む。読出データ線ＲＤＬは、各メモリセル列に対応して配置され、後に説明するようにマッチ線に並列に接続される。
【００７１】
電流検出型センスアンプ１２は、カレントミラー段を構成するＰチャネルＭＯＳトランジスタ（絶縁ゲート型電界効果トランジスタ）ＰＰ１−ＰＰ３と、別のカレントミラー段を構成するＰチャネルＭＯＳトランジスタＰＰ４−ＰＰ６と、ビット線ＢＬにセル電流Ｉｃｅｌｌを供給するＮチャネルＭＯＳトランジスタＮＮ１と、補のビット線ＺＢＬにダミーセル電流Ｉｄｕｍｍｙを供給するＮチャネルＭＯＳトランジスタＮＮ６を含む。
【００７２】
ＭＯＳトランジスタＮＮ１は、ゲートに参照電圧Ｖｒｅｆｓを受け、ＭＯＳトランジスタＰＰ１から電流を受けて対応のビット線ＢＬにセル電流Ｉｃｅｌｌを供給する。参照電圧Ｖｒｅｆｓにより、ビット線ＢＬに供給される読出電流が、メモリセルの記憶データの破壊を生じさせるのを防止するとともに、データ読出時に、ビット線ＢＬの電圧が上昇しすぎるのを防止する。
【００７３】
ＭＯＳトランジスタＰＰ１は、そのゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作し、センス動作時、セル電流Ｉｃｅｌｌのミラー電流をＭＯＳトランジスタＰＰ２を介して流す。
【００７４】
ＭＯＳトランジスタＮＮ６は、そのゲートに参照電圧Ｖｒｅｆｓを受け、参照ビット線ＺＢＬを介してダミーセル電流Ｉｄｍｍｙを供給する。これらのＭＯＳトランジスタＮＮ１およびＮＮ６を介して流れる電流ＩｃｅｌｌおよびＩｄｕｍｍｙが、それぞれ、選択メモリセルおよびダミーセルを介して流れる。
【００７５】
ＭＯＳトランジスタＰＰ６は、ゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作し、センス動作時、ダミーセル電流Ｉｄｕｍｍｙのミラー電流をＭＯＳトランジスタＰＰ５に流す。ＭＯＳトランジスタＰＰ２−ＰＰ５は、それぞれのソースノードが電源ノードＶＣＣに結合される。
【００７６】
センスアンプ１２は、さらに、カレントミラー段を構成するＮチャネルＭＯＳトランジスタＮＮ２およびＮＮ３と、別のカレントミラー段を構成するＮチャネルＭＯＳトランジスタＮＮ４およびＮＮ５を含む。
【００７７】
ＭＯＳトランジスタＮＮ２は、ＭＯＳトランジスタＰＰ２とノードＮＤ２の間に接続され、そのゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作する。ＭＯＳトランジスタＮＮ３は、ＭＯＳトランジスタＰＰ４とノードＮＤ２との間に接続され、そのゲートがＭＯＳトランジスタＮＮ２のゲートに接続される。ＭＯＳトランジスタＮＮ４は、ＭＯＳトランジスタＰＰ３とノードＮＤ２との間に接続され、そのゲートがＭＯＳトランジスタＮＮ５のゲートに接続される。ＭＯＳトランジスタＮＮ５は、ＭＯＳトランジスタＰＰ５とノードＮＤ２との間に接続され、そのゲートおよびドレインが相互接続され、カレントミラー段のマスタとして動作する。
【００７８】
ＭＯＳトランジスタＮＮ２およびＮＮ５により電流／電圧変換された信号が、それぞれ、中間センス信号／ＳＯＴおよびＳＯＴとして生成される。
【００７９】
センスアンプ１２は、さらに、センスアンプ活性化信号／ＳＥの活性化時オン状態となり、ノードＮＤ１を電源ノードに接続するＰチャネルＭＯＳトランジスタＰＰ７と、センスアンプ活性化信号ＳＥの活性化時オン状態となり、ノードＮＤ２を接地ノードＧＮＤに結合するＮチャネルＭＯＳトランジスタＮＮ７を含む。センスアンプ活性化信号／ＳＥおよびＳＥは、それぞれ、活性化時、ＬレベルおよびＨレベルに設定される。
【００８０】
ポストアンプ（最終増幅回路）１４は、ＭＯＳトランジスタＮＮ２およびＮＮ５により電流／電圧変換された中間センス出力信号ＳＯＴおよび／ＳＯＴを増幅して最終センス出力信号ＳＯＵＴおよび／ＳＯＵＴを生成する。このポストアンプ（最終増幅回路）１４は、図６においては明確に示していないが、センスアンプ活性化信号／ＳＥの非活性化時、最終センス出力信号／ＳＯＵＴをＨレベルに維持する。
【００８１】
電流供給回路１６は、この最終増幅回路１４からの最終センス出力信号／ＳＯＵＴがＬレベルのときに導通し、読出データ線ＲＤＬに電流を供給するＰチャネルＭＯＳトランジスタＰＰ８を含む。
【００８２】
以下、センスアンプ回路ＳＡＫの動作について説明する。センスアンプ活性化信号／ＳＥおよびＳＥの非活性化時、ＭＯＳトランジスタＰＰ７およびＮＮ７は、ともにオフ状態である。この状態においては、ＭＯＳトランジスタＰＰ２およびＰＰ５により、中間センス出力信号ＳＯＴおよび／ＳＯＴは、電源電圧ＶＣＣレベルに維持される。ノードＮＤ１は、ＭＯＳトランジスタＰＰ１、ＮＮ１、ＰＰ６およびＮＮ１により、接地電圧レベルに維持される。また、最終センス出力信号ＳＯＵＴおよび／ＳＯＵＴは、中間センス出力信号ＳＯＴおよび／ＳＯＴに従ってＨレベルに維持される。
【００８３】
センス動作時においては、まず、読出ワード線の選択前に、センスアンプ活性化信号／ＳＥを活性化し、ＭＯＳトランジスタＰＰ７およびＮＮ７をオン状態とする。応じて、ノードＮＤ１が電源ノードに結合され、ＭＯＳトランジスタＰＰ１およびＰＰ６が動作し、センスアンプ回路ＳＡＫが、ビット線ＢＬおよびＺＢＬの電流検出が可能な状態に設定される。センスアンプ活性化信号ＳＥは、並行して活性化される。しかしながら、センス動作開始時まで、センスアンプ活性化信号ＳＥの活性化は遅延されてもよい。この状態においては、読出ワード線（ＲＷＬ）は、非選択状態であり、ビット線ＢＬおよびＺＢＬは、図示しないビット線プリチャージ回路により、所定電圧レベル（接地電圧レベル）にプリチャージされた状態である。
【００８４】
ビット線プリチャージ動作が完了すると、次いで、読出ワード線が選択状態へ駆動される。このときまでに、センスアンプ活性化信号ＳＥが活性化される。応じて、選択されたメモリセルを介してビット線ＢＬに、その記憶データに応じたセル電流ＩｃｅｌｌがＭＯＳトランジスタＮＮ１から供給される。一方、参照ビット線ＺＢＬにおいても、ダミーセルＤＭＣが選択され、ダミーセル電流Ｉｄｕｍｍｙが流れる。
【００８５】
ＭＯＳトランジスタＰＰ１およびＰＰ２により、セル電流Ｉｃｅｌｌのミラー電流が生成され、また、ＭＯＳトランジスタＰＰ６およびＰＰ５により、ダミーセル電流Ｉｄｕｍｍｙのミラー電流が生成される。ＭＯＳトランジスタＰＰ１およびＰＰ６において、これらの電流ＩｃｅｌｌおよびＩｄｕｍｍｙのミラー電流が流れる。ＭＯＳトランジスタＰＰ１を介して流れる電流Ｉｃｅｌｌのミラー電流が、ＭＯＳトランジスタＰＰ２およびＰＰ３を介して流れ、ＭＯＳトランジスタＰＰ６を介して流れる電流Ｉｄｕｍｍｙのミラー電流が、ＭＯＳトランジスタＰＰ４およびＰＰ５を介して流れる。したがって、これらのビット線ＢＬおよびＺＢＬを介して流れるセル電流Ｉｃｅｌｌおよびダミーセル電流Ｉｄｕｍｍｙのミラー電流が、ＭＯＳトランジスタＮＮ２およびＮＮ５を介してそれぞれ流れる。
【００８６】
ＭＯＳトランジスタＮＮ２およびＮＮ５の電流／電圧変換動作により、セル電流Ｉｃｅｌｌがダミーセル電流Ｉｄｕｍｍｙよりも大きい場合には、中間センス出力信号／ＳＯＴが中間センス出力信号ＳＯＴよりも高い電圧レベルとなる。セル電流Ｉｃｅｌｌが、ダミーセル電流Ｉｄｕｍｍｙよりも小さい場合には、中間センス出力信号／ＳＯＴが中間センス出力信号ＳＯＴよりも低い電圧レベルとなる。これらの中間センス出力信号ＳＯＴおよび／ＳＯＴは、次段の最終増幅回路１４によりさらに増幅され、電源電圧レベルおよび接地電圧レベルの最終センス出力信号ＳＯＵＴおよび／ＳＯＵＴが生成される。
【００８７】
すなわち、中間センス出力信号／ＳＯＴがハイレベルの時には、最終センス出力信号／ＳＯＵＴが電源電圧ＶＣＣレベルのＨレベルとなり、中間センス出力信号ＳＯＴがローレベルの時には、最終センス出力信号／ＳＯＵＴが接地電圧レベルのＬレベルとなる。応じて、電流供給回路１６は、最終センス出力信号／ＳＯＵＴがＨレベルの時には出力ハイインピーダンス状態となり、一方、最終センス出力信号／ＳＯＵＴがＬレベルのときには、電源ノードから電流を読出データ線ＲＤＬにセンスアンプ回路出力電流ＩＳＡを供給する。従って、セル電流Ｉｃｅｌｌがダミーセル電流Ｉｄｕｍｍｙよりも大きいときには、センスアンプ回路出力電流ＩＳＡは、ほぼ０となり、そうでないときには、センスアンプ回路出力電流ＩＳＡは、大きな電流となる。
【００８８】
なお、ＭＯＳトランジスタＮＮ３およびＮＮ４については、以下の動作が行なわれる。すなわち、ＭＯＳトランジスタＮＮ２は、ＭＯＳトランジスタＰＰ２からの電流を放電し、ＭＯＳトランジスタＮＮ３は、ＭＯＳトランジスタＮＮ２の放電電流のミラー電流を放電することができる。同様、ＭＯＳトランジスタＰＰ５を流れる電流のミラー電流が、ＭＯＳトランジスタＮＮ５を介して流れ、ＭＯＳトランジスタＮＮ４は、ＭＯＳトランジスタＮＮ５を介して流れる電流のミラー電流を放電することができる。
【００８９】
したがって、ＭＯＳトランジスタＰＰ３およびＮＮ４には、セル電流Ｉｃｅｌｌとダミーセル電流Ｉｄｕｍｍｙのうちの小さいほうの電流が流れ、ＭＯＳトランジスタＰＰ４およびＮＮ３においても、ダミーセル電流Ｉｄｕｍｍｙとセル電流Ｉｃｅｌｌの小さいほうの電流が流れる。ＭＯＳトランジスタＮＮ７へは、セル電流Ｉｃｅｌｌとダミーセル電流Ｉｄｕｍｍｙの合計電流とこれらの電流の小さいほうの電流の２倍の電流との和が常時流れる。したがって、センス動作の安定化のために、これらのＭＯＳトランジスタＰＰ３、ＰＰ４、ＮＮ３、およびＮＮ４は、ＭＯＳトランジスタＮＮ７を介して流れる電流量を一定とする機能を有する。
【００９０】
しかしながら、これらのＭＯＳトランジスタＰＰ３、ＰＰ４、ＮＮ３、およびＮＮ４は、特に設けられなくてもよい。また、これに代えて、ＭＯＳトランジスタＰＰ３およびＮＮ４の接続ノードおよびＭＯＳトランジスタＰＰ４およびＮＮ３の接続ノードから中間センス出力信号ＳＯＵＴおよび／ＳＯＵＴがそれぞれ取り出される構成が用いられてもよい。
【００９１】
センスアンプ回路ＳＡＫにおいて電流検出型センスアンプを利用することにより、高速でセンス動作を行なうことができる。しかしながら、交差結合されたＭＯＳトランジスタを利用するラッチ型センスアンプが用いられてもよい。
【００９２】
ビット線ＢＬおよびＺＢＬの電流を差動増幅して最終センス出力信号／ＳＯＵＴを生成している。本実施の形態１においては、ビット線ＢＬに、２つのメモリセルＭＣＡおよびＭＣＢの記憶データを読出し、ビット線読出電流の参照電流（ダミーセル電流）Ｉｄｕｍｍｙに対する大小を比較する。後に詳細に説明するように、２つの並行して選択されたメモリセルＭＣＡおよびＭＣＢの記憶データの一致／不一致を識別することができ、センスアンプ回路ＳＡＫにより、一致／不一致判定結果を示す信号を生成することができる。
【００９３】
電流供給回路１６は、最終センス出力信号／ＳＯＵＴがＬレベルのときに対応の読出データ線ＲＤＬに電流ＩＳＡを供給する。この場合、補の読出データ線ＺＲＤＬは特に利用されないため、最終センス出力信号ＳＯＵＴは、図６に示す構成においてはフローティング状態とされる。しかしながら、この場合、最終増幅回路１４の出力負荷を信号ＳＯＵＴおよび／ＳＯＵＴに対して同じとするために、最終センス出力信号ＳＯＵＴが、別のダミーＭＯＳトランジスタのゲートに与えられてもよい。
【００９４】
図７は、この発明の実施の形態１における信号処理操作時の選択メモリセルの接続態様を概略的に示す図である。図７においては、１つのビット線ＢＬおよびＺＢＬの組についての構成を代表的に示す。
【００９５】
図７において、ビット線ＢＬにおいてメモリセルＭＣＢｊおよびＭＣＡを並列して選択して、これらのメモリセルＭＣＢｊおよびＭＣＡの記憶データを対応のビット線ＢＬに読出す。参照ビット線ＺＢＬには、１つのダミーセルＤＭＣが結合され、ダミーセルＤＭＣによりダミーセル電流Ｉｄｕｍｍｙが流れる。このビット線ＢＬおよびＺＢＬを流れる電流またはビット線電圧をセンスアンプ回路で検知し増幅する。
【００９６】
図８は、図７に示すメモリセルＭＣＢｊおよびＭＣＡの記憶データの組合せを一覧にして示す図である。図８において、状態ＳＴ１においては、メモリセルＭＣＡおよびＭＣＢｊはともに、可変磁気抵抗素子が抵抗値Ｒｍａｘを有する高抵抗状態Ｈ（Ｒｍａｘ）である。状態ＳＴ２においては、メモリセルＭＣＡが可変磁気抵抗素子が抵抗値Ｒｍｉｎを有する低抵抗状態Ｌ（Ｒｍｉｎ）であり、メモリセルＭＣＢｊが高抵抗状態Ｈ（Ｒｍａｘ）である。
【００９７】
状態ＳＴ３は、メモリセルＭＣＡが高抵抗状態Ｈ（Ｒｍａｘ）であり、メモリセルＭＣＢｊが低抵抗状態Ｌ（Ｒｍｉｎ）である。状態ＳＴ４は、メモリセルＭＣＡおよびＭＣＢｊがともに低抵抗状態Ｌ（Ｒｍｉｎ）である。
【００９８】
高抵抗状態Ｈ（Ｒｍａｘ）および低抵抗状態Ｌ（Ｒｍｉｎ）は、それぞれ、データ“０”および“１”に対応付けられる。
【００９９】
図９は、図７に示すメモリセル選択態様におけるビット線電流を概略的に示す図である。図９において、横軸に時間を示し、縦軸にビット線の読出電位を示す。ビット線電位を示しているのは、選択メモリセルの記憶データに応じた変化を、明確に示すためである。ビット線読出電流（Ｉｃｅｌｌ）が小さいときには、ビット線読出電位が高くなり、ビット線電流（Ｉｃｅｌｌ）が大きい時には、ビット線読出電位が低くなる。ここで、図９においては、ビット線は読出時に所定の読出電位（Ｈレベル）にプリチャージされている状態を一例として示す。電流検出型センスアンプを利用する場合には、ビット線は接地電圧にプリチャージされる。
【０１００】
図９において、状態ＳＴ１においては、メモリセルＭＣＡおよびＭＣＢｊがともに高抵抗状態であり、ビット線読出電流はわずかしか流れず、ビット線電位は最も高くなる。一方、状態ＳＴ２およびＳＴ３においては、メモリセルＭＣＡおよびＭＣＢｊの一方が高抵抗状態、他方が低抵抗状態であり、この低抵抗状態のメモリセルを介して比較的大きな電流がビット線に流れる。状態ＳＴ４においては、メモリセルＭＣＡおよびＭＣＢｊはともに低抵抗状態であり、大きなビット線読出電流が流れ、ビット線電位が最も低くなる。
【０１０１】
ダミーセルＤＭＣが流すダミーセル電流（Ｉｄｕｍｍｙ）は、ダミーソース線ＤＳＬに供給される基準電圧ＶＲＥＦのレベルに応じて調整することができる。この基準電圧ＶＲＥＦを接地電圧以下の負電圧レベルに設定することにより、状態ＳＴ４のときに流れるビット線読出電流と状態ＳＴ２またはＳＴ３のときのビット線読出電流の間に、参照ビット線ＺＢＬを流れるダミーセル電流レベルを設定することができる。
【０１０２】
センスアンプ回路ＳＡＫによりビット線読出電流を検出する場合、状態ＳＴ４のときに、補の中間センス出力信号／ＳＯＴが中間センス出力信号ＳＯＴよりも高くなり、それ以外の状態ＳＴ１−ＳＴ３においては、補の中間センス出力信号／ＳＯＴが中間センス出力信号ＳＯＴよりも低くなる。したがって、図６に示すセンスアンプ回路ＳＡＫの構成から、状態ＳＴ４のときに最終センス出力信号／ＳＯＵＴがＬレベルとなり、図６に示す電流供給回路１６が、対応の読出データ線ＲＤＬに電流（ＩＳＡ）を供給する。それ以外の状態ＳＴ１−ＳＴ３のときには、電流読出回路（１６）は出力ハイインピーダンス状態であり、読出データ線ＲＤＬは、プリチャージ状態に維持される。
【０１０３】
したがって、センスアンプ回路ＳＡＫは、メモリセルＭＣＡおよびＭＣＢｊの記憶データがともに“１”のときに“１”を出力するＡＮＤ演算を、メモリセルＭＣＢｊおよびＭＣＡの記憶データに対して行なっている。これを利用して、検索データと被検索データのパターンマッチング検索を実行する。すなわち、読出データ線ＲＤＬをマッチ線の一部として用いる。具体的に、後に詳細に説明するように、メモリセルＭＣＡＬおよびＭＣＡＲにデータＡおよび／Ａを格納し、メモリセルＭＣＢＬおよびＭＣＢＲにそれぞれデータ／ＢおよびＢを格納する。Ａ・／Ｂ＝１のときまたは／Ａ・Ｂ＝１のときに対応のセンスアンプ回路から電流が供給され、それ以外には殆ど電流は供給されない。したがって、Ａ＝Ｂのときには、Ａ・／Ｂ＝０または／Ａ・Ｂ＝０となり、対応のセンスアンプ回路からは電流は供給されない。この電流の供給の有無を検出することにより、データＡおよびＢの一致／不一致を検出することができる。すなわち、データＡおよびＢが一致している場合には、センス読出電流ＩＳＡは、殆ど０であり、不一致の時には、対応のセンス読出電流（センスアンプ回路出力電流）ＩＳＡが大きな値となる。
【０１０４】
図１０は、この発明の実施の形態１に従う半導体信号処理装置における演算処理実行時のメモリセルの記憶データおよび書込データとセンスアンプの読出データを概略的に示す図である。図１０においては、メモリセルアレイの構成は、図４に示す構成と同じであり、その周辺回路と合わせて、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０１０５】
図１０に示す構成においては、センスアンプ回路ＳＡＫＬおよびＳＡＫＲに共通に、マッチ線ＭＬが設けられ、このマッチ線ＭＬにセンスアンプ回路ＳＡＫ（ＳＡＫＬ、ＳＡＫＲ）の出力信号（電流）を受ける読出データ線ＲＤＬが並列に結合される。
【０１０６】
メモリセルＭＣＢｌには、被検索データパターンの反転データ／Ｂが書込まれ、メモリセルＭＣＢｒには、被検索データＢが書込まれる。検索データＡについては、メモリセルＭＣＡｌに、データＡが書込まれて次いで読出され、メモリセルＭＣＡｒに、検索データＡの反転データ／Ａが書込まれて次いで読出される。
【０１０７】
左側メモリセル列ＭＣＬおよび右側メモリセル列ＭＣＲそれぞれに対して設けられるセンスアンプ回路ＳＡＫＬおよびＳＡＫＲから、センスアンプ出力電流ＩＳＡＬおよびＩＳＡＲが、対応のマッチ線ＭＬに供給される。センスアンプ回路出力電流ＩＳＡＬおよびＩＳＡＲは、それぞれ、選択メモリセルＭＣＢｌ、ＭＣＡｌ、およびＭＣＢｒ、ＭＣＡｒの記憶データのそれぞれの組合せに応じた大きさを有する。
【０１０８】
図１１は、図１０に示す配置におけるセンスアンプ回路出力電流ＩＳＡＬおよびＩＳＡＲとメモリセルの記憶データとの対応を一覧にして示す図である。メモリセルＭＣＡｌには、データＡが格納され、メモリセルＭＣＡｒにはデータ／Ａが格納される。メモリセルＭＣＢｌにはデータＢが格納され、メモリセルＭＣＢｒにはデータ／Ｂが格納される。
【０１０９】
データＡおよびＢがともに“０”のときには、メモリセルＭＣＡｌおよびＭＣＢｒが低抵抗状態Ｌ（Ｒｍｉｎ）であり、メモリセルＭＣＢｌおよびＭＣＡｒは、高抵抗状態Ｈ（Ｒｍａｘ）である。この状態はの組合せは、図８に示す状態ＳＴ２またはＳＴ３の状態に対応し、センスアンプ回路出力電流ＩＳＡＬおよびＩＳＡＲは、ほとんど流れない。
【０１１０】
データＡおよびデータＢがそれぞれ“１”および“０”のときには、メモリセルＭＣＡｌおよびＭＣＢｌはともに高抵抗状態Ｈ（Ｒｍａｘ）であり、メモリセルＭＣＡｒおよびＭＣＢｒは、ともに低抵抗状態Ｌ（Ｒｍｉｎ）である。この場合には、センスアンプ回路出力電流ＩＳＡＬは、状態ＳＴ１であり、殆ど流れず、ほぼ０である。一方、センスアンプ回路出力電流ＩＳＡＲは、状態ＳＴ４であり、大きな電流となる。
【０１１１】
データＡおよびＢがそれぞれ“０”および“１”のときには、メモリセルＭＣＡｌおよびＭＣＢｌが低抵抗状態Ｌ（Ｒｍｉｎ）であり、メモリセルＭＣＡｒおよびＭＣＢｒが、高抵抗状態Ｈ（Ｒｍａｘ）である。この場合、センスアンプ回路出力電流ＩＳＡＬは、状態ＳＴ４に対応し、大きな値となる。一方、センスアンプ回路出力電流ＩＳＡＲは、状態ＳＴ１に対応し、殆ど流れない。
【０１１２】
データＡおよびＢがともに“１”のときには、メモリセルＭＣＡｌおよびＭＣＢｒが高抵抗状態Ｈ（Ｒｍａｘ）であり、メモリセルＭＣＢｌおよびＭＣＡｒが低抵抗状態Ｌ（Ｒｍｉｎ）である。この状態は、状態ＳＴ２またはＳＴ３に対応し、センスアンプ回路出力電流ＩＳＡＬおよびＩＳＡＲは、ほとんど流れない。
【０１１３】
上述のように、データＡおよびＢが互いに等しい場合、センスアンプ回路出力電流ＩＳＡＬおよびＩＳＡＲがともに小さな電流値となり、一方、データＡおよびＢが不一致の場合、センスアンプ回路出力電流ＩＳＡＬおよびＩＳＡＲの一方が大きな値となる。したがって、記憶単位ＳＵＴにおいて相補データを記憶することにより、マッチ線ＭＬには、データＡおよびＢが一致するときのみ、電流が供給されない。一方、データＡおよびＢが不一致の場合には、マッチ線ＭＬには電流が供給され、その電圧レベルが上昇する。このマッチ線ＭＬの電圧レベルを判定することにより、データＡおよびＢの一致／不一致を識別することができる。
【０１１４】
また、メモリセルＭＣＢｌおよびＭＣＢｒに、データ“０”を書込み、ともに高抵抗状態Ｈ（Ｒｍａｘ）に設定すると、データＡの値（メモリセルＭＣＡｌ，ＭＣＡｒの抵抗状態）にかかわらず、センスアンプ回路出力電流ＩＳＡＬおよびＩＳＡＲはともに十分小さい値となり、“Ｘ”（ドントケア）の状態が実現される。これにより、記憶単位ＳＵＴに被検索データを書込むことにより、データＡおよびＢに対するＴＣＡＭ演算結果を対応のマッチ線に出力することができる。
【０１１５】
図１２は、この発明の実施の形態１に従う半導体信号処理装置のメモリセルマットの構成を概略的に示す図である。
図１２においては、メモリセルマットにおいては、メモリセルアレイが、複数のサブブロックＳＢ１−ＳＢｎに分割される。サブブロック各々においては、メモリセルＭＣＢが行列状に配列され、かつ、このメモリセルＭＣＢの列に整列してメモリセルＭＣＡが行方向に整列して配置される。また、メモリセル列に対応してダミーセルＤＭＣおよびセンスアンプ回路ＳＡＫ（ＳＡＫＬおよびＳＡＫＲ）が配置される。
【０１１６】
これらのサブブロックＳＢ１−ＳＢｎは、各々、（ｋ＋１）の検索単位ＲＵＴに分割される。たとえばサブブロックＳＢ１は、検索単位ＲＵＴ（１，１）−ＲＵＴ（１，２＾ｋ）に分割される。ここで、＾は、べき乗を示す。サブブロックＳＢ２は、検索単位ＲＵＴ（２，１）−ＲＵＴ（２，２＾ｋ）に分割され、サブブロックＳＢｎが、検索単位ＲＵＴ（ｎ，１）−ＲＵＴ（ｎ，２＾ｋ）に分割される。各検索単位は、被検索データパターンを格納する領域として、各々がＮバイト幅を有するｍ個のエントリで構成される。
【０１１７】
サブブロックＳＢｉ（ｉ＝１−ｎの整数）においては、（ｋ＋１）個の検索単位ＲＴＵ（ｉ，１）−ＲＴＵ（ｉ，２＾ｋ）各々に対応してローカルマッチ線ＭＬ１，ＭＬ２，…，ＭＬ２＾ｋが配置される。これらのローカルマッチ線ＭＬ１−ＭＬ２＾ｋは、それぞれ対応の検索単位ＲＴＵ（ｉ，１）−ＲＴＵ（ｉ，２＾ｋ）のセンスアンプ回路の出力を受けるローカル読出データ線ＬＲＤにそれぞれ結合される。ここで、ローカル読出データ線ＬＲＤは、図６および図１０に示す読出データ線ＲＤＬに対応する。また、ローカルマッチ線ＭＬ１−ＭＬ２＾ｋは、図６および図１０に示すマッチ線ＭＬに対応するが、ここではメモリアレイのサブブロック構成に応じて、「ローカルマッチ線」と称す。
【０１１８】
サブブロックＳＢ１−ＳＢｎそれぞれに対応して、ローカルマッチ線ＭＬ１−ＭＬ２＾ｋの組に対応してローカル一致判定回路ＬＭＤ１−ＬＭＤｎが設けられる。ローカル一致判定回路ＬＭＤ１−ＬＭＤｎは、それぞれ、パターン長指示信号Ｐ＜１＞−Ｐ＜ｎ＞に従って対応のローカルマッチ線の組を選択し、選択したローカルマッチ線の電位に従ってローカル一致判定信号ＬＭＣＨ＜１＞−ＬＭＣＨ＜ｎ＞を生成する。
【０１１９】
これらのローカル一致判定回路ＬＭＤ１−ＬＭＤｎに共通にグローバル一致判定回路ＧＭＤが設けられる。このグローバル一致判定回路ＧＭＤは、ローカル一致判定回路ＬＭＤ１−ＬＭＤｎからのローカル一致判定信号ＬＭＣＨ＜１＞−ＬＭＣＨ＜ｎ＞に従って最終一致判定信号ＦＭＣＨを生成する。
【０１２０】
サブブロックＳＢ１−ＳＢｎそれぞれに格納される被検索パターン（登録パターン）のパターン長は、それぞれ予め定められている。各サブブロックに格納される被検索パターンのパターン長を示すパターン長指示信号Ｐ＜１＞−Ｐ＜ｎ＞は、パターン長レジスタ回路３０に各サブブロックに対応して格納される。パターン長レジスタ回路３０からのパターン長指示信号Ｐ＜１＞−Ｐ＜ｎ＞に従って、サブブロックの検索データパターン長に応じたローカルマッチ線の組が選択される。これにより、サブブロック毎に格納されるデータパターン長が異なる場合においても、正確に各サブブロックに割当てられたパターン長のデータについて一致が発生したかを識別することができる。
【０１２１】
図１３は、１つのサブブロックの構成をより具体的に示す図である。図１３において、サブブロックＳＢｉは、（ｋ＋１）個の検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）を含む。図１３においては、検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）各々が同一構成を有しており、検索単位ＲＵＴ（ｉ，１）に対してのみ代表的に参照符号を付している。
【０１２２】
検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）各々において、メモリセルアレイは、被検索パターン格納領域ＰＲＲと、検索パターン書込／読出領域ＲＲＲとを含む。被検索パターン格納領域ＰＲＲには、メモリセルＭＣＢ（ＭＣＢｌ，ＭＣＢｒ）が行列状に配列され、検索データ書込／読出領域ＲＲＲにおいては、メモリセルＭＣＡ（ＭＣＡｌ，ＭＣＡｒ：第２のメモリセル）がメモリセル（第１のメモリセル）ＭＣＢの各列に対応して配置される。
【０１２３】
メモリセルＭＣＢおよびＭＣＡの各列に対応してビット線ＢＬ（ＢＬＬ，ＢＬＲ）が配置される。参照ビット線は、図面を簡略化するために示していない。
【０１２４】
検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）各々において各ビット線ＢＬ（ＢＬＲ，ＢＬＬ）に対応してセンスアンプ回路ＳＡＫ（ＳＡＫＲ，ＳＡＫＬ）が配置される。右側メモリセルＭＣＢｒおよび左側メモリセルＭＣＢｌにより、記憶単位ＳＵＴが構成される。メモリセルＭＣＢおよびＭＣＡにより、記憶データの演算を行なう演算子セルが構成される。被検索パターン格納領域ＰＲＲは、各々がＮバイトの幅を有するエントリＥＲＹ１−ＥＲＹｍに分割される（検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）各々において）。
【０１２５】
センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）各々に対応してダミーセルＤＭＣが設けられる。センスアンプ回路ＳＡＫの出力信号が、ローカル読出データ線ＬＲＤを介して対応のローカルマッチ線ＭＬに、各検索単位毎に結合される。すなわち、検索単位ＲＵＴ（ｉ，ｊ）のセンスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）の出力信号は、対応のローカルマッチ線ＬＭｊに共通に伝達される。
【０１２６】
検索単位ＲＵＴ（ｉ，ｊ）のローカル読出データ線ＬＲＤは、対応のローカルマッチ線ＭＬｊにワイヤードＯＲ接続される。したがって、ローカルマッチ線ＭＬ１−ＭＬ２＾ｋ各々においては、以下の電位変化が生じる。すなわち、検索単位ＲＵＴ（ｉ、ｊ）のあるエントリに格納される登録パターン（被検索データパターン）と検索データパターンが不一致の場合には，ローカルマッチ線ＭＬｊの電圧レベルが上昇し、この登録パターンと検索パターンとが一致している場合には、対応のローカルマッチ線ＭＬｊの電位は、プリチャージ電圧レベル（接地電圧レベルのＬレベル）に維持される。
【０１２７】
図１４は、図１２に示すローカル一致判定回路の構成を概略的に示す図である。この図１４においては、サブブロックＳＢｉに対応して配置されるローカル一致判定回路ＬＭＤｉの構成を代表的に示す。図１４において、ローカル一致判定回路ＬＭＤｉは、ローカルマッチ線ＭＬ１−ＭＬ２＾ｋそれぞれに対応して設けられるマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋを含む。これらのマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋは、それぞれ活性化時、対応のローカルマッチ線ＭＬ１−ＭＬ２＾ｋの信号電位を増幅する。
【０１２８】
このローカル一致判定回路ＬＭＤｉは、さらに、各エントリに格納可能なデータパターン長それぞれに対応して設けられる全長判定回路３２、１／２長判定回路３４および１／４長判定回路３６を含む。ここで、一例として、１エントリに格納可能な被検索データパターンの長さが、エントリのビット幅（ローカルマッチ線長）Ｌとして、Ｌ、Ｌ／２、Ｌ／４の場合の構成を一例として示す。格納可能なパターン長の数に応じて、判定回路が、各パターン長に対応して設けられる。
【０１２９】
全長判定回路３２は、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号を受けるＯＲゲートＯＧ１を含む。
【０１３０】
１／２パターン長判定回路３４は、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋ−１の出力信号を受けるＯＲゲートＯＧ２と、マッチ線アンプＡＭＰ２＾（ｋ−１）＋１からＡＭＰ２＾ｋの出力信号を受けるＯＲゲートＯＧ３と、これらのＯＲゲートＯＧ２およびＯＧ３の出力信号を受けるＡＮＤゲートＡＧ１を含む。
【０１３１】
１／４パターン長判定回路は、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋ−３の出力信号を受けるＯＲゲートＯＧ４と、マッチ線アンプＡＭＰ２＾（ｋ−３）＋１からＡＭＰ２＾（ｋ−２）の出力信号を受けるＯＲゲートＯＧ５と、マッチ線アンプＡＭＰ２＾（ｋ−２）＋１からＡＭＰ２＾（ｋ−１）の出力信号を受けるＯＲゲートＯＧ６と、マッチ線アンプＡＭＰ２＾（ｋ−１）＋１−ＡＭＰ２＾ｋの出力信号を受けるＯＲゲートＯＧ７と、これらのＯＲゲートＯＧ５−ＯＧ７の出力信号を受けるＡＮＤゲートＡＧ２を含む。
【０１３２】
これらの判定回路３４および３６は、各々、ＯＲ／ＡＮＤ複合ゲートで構成されてもよく、また、ＯＲゲートおよびＡＮＤゲートが個々に設けられるロジックゲート回路で構成されてもよい。
【０１３３】
ローカル一致判定回路ＬＭＤｉにおいて、さらに、これらの判定回路３２、３４および３６の出力信号をパターン長指示信号Ｐ＜ｉ＞に従って選択してローカル一致判定信号ＬＭＣＨ＜ｉ＞を生成するマルチプレクサ３８が設けられる。
【０１３４】
マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋは、各々、対応のマッチ線ＭＬ１−ＭＬ２＾ｋの信号電位を増幅する。したがって、対応のマッチ線群の出力信号がすべてＬレベルのときには、対応の検索単位の登録パターン（被検索データパターン）が検索データパターンと一致していることを示している。
【０１３５】
すなわち、サブブロックＳＢｉの全パターン長Ｌ（＝Ｎ・２＾ｋ）のパターンについて登録パターン（被検索データパターン）と検索パターンとが一致している場合には、全パターン長判定回路３２の出力信号が、Ｌレベルとなる。このとき、同様、判定回路３４および３６においても、その出力信号はＬレベルとなる。一方、登録パターン長（マッチ線サイズ）がＬ／２の場合、登録パターンと検索パターンとが一致しているときには、ＯＲゲートＯＧ２およびＯＧ３の一方の出力信号がＬレベルとなるため、１／２パターン長判定回路３４の出力信号は、Ｌレベルとなる。
【０１３６】
登録パターン長がＬ／４の場合、１／４パターン長判定回路３６において、登録パターンと検索データパターンとが一致している場合には、ＯＲゲートＯＧ４−ＯＧ７の出力信号のいずれかがＬレベルとなり、その出力信号はＬレベルとなる。
【０１３７】
マルチプレクサ３８においてパターン長指示信号Ｐ＜ｉ＞に従って対応の判定回路の出力信号を選択する。これにより、ローカル一致判定信号ＬＭＣＨ＜ｉ＞は、登録パターン長がＬの場合、Ｌ／２の場合、Ｌ／４の場合において、登録パターンと検索パターンとの一致／不一致を示すことができ、サブブロックＳＢｉに対して割当てられたパターン長について正確に一致判定を行なうことができる。
【０１３８】
図１５は、１つのサブブロックにおける各エントリにマッピング可能な登録パターン（被検索データパターン）長を概略的に示す図である。図１５において、サブブロックＳＢ♯Ａにおいては、１エントリに１つの被検索データパターンＡが登録される。この登録パターンＡは、長さＬ（＝Ｎ・２＾ｋバイト）を有する。サブブロックＳＢ♯Ｂにおいては、１エントリに、パターン長Ｌ／２のパターンＢ１およびＢ２が格納される。すなわち、サブブロックＳＢ♯Ｂにおいては、１エントリに、２つの被検索データパターンが格納される（２つの被検索データパターンが登録される）。ここで、マッピングされた被検索データパターンを、登録パターンと称す。
【０１３９】
サブブロックＳＢ♯Ｃにおいては、１エントリにおいてパターン長がＬ／４の被検索データパターンＣ１−Ｃ４がそれぞれ格納される。したがって、１エントリに、複数の被検索データパターンをマッピングすることができ、１エントリに１つの被検索データパターンをマッピングする構成に比べて、エントリ数を大幅に低減することができる。
【０１４０】
図１６は、被検索データパターンのマッピングの具体例を示す図であり、被検索データパターンは、パターン長Ｌ／８単位で調整可能である場合の被検索データパターンのマッピング態様を一例として示す。
【０１４１】
図１６において、サブブロックＳＢ♯Ａにおいては、エントリＥＲＹａ‐ＥＲＹｃを含み、パターン長Ｌが割当てられる。サブブロックＳＢ♯Ｂは、エントリＥＲＹｄ−ＥＲＹｅを含み、パターン長Ｌ／２が割当てられる。サブブロックＳＢ♯Ｃは、エントリＥＲＹｆを含み、パターン長Ｌ／４が割当てられる。サブブロックＳＢ♯Ｄは、エントリＥＲＹｇを含み、パターン長Ｌ／８が割当てられる。
【０１４２】
サブブロックＳＢ♯Ａにおいて、エントリＥＲＹａにおいては、パターン長Ｌの被検索データパターンＰＡＴ１が格納される。エントリＥＲＹｂにおいては、パターン長がエントリサイズ（ビット幅）よりも小さくかつ長さＬ／８よりも長いパターンＰＡＴ２が格納される。パターン長は、Ｌ／８単位で調整可能であり、このエントリＥＲＹｂに格納されるデータパターンＰＡＴ２は、パターン長７・Ｌ／８を有する。
【０１４３】
エントリＥＲＹｃにおいてはパターン長３・Ｌ／４の被検索データパターンＰＡＴ３が格納される。エントリＥＲＹｂおよびＥＲＹｃ各々において、被検索データパターンＰＡＴ２およびＰＡＴ３が格納される領域と異なる領域においては、メモリセルＭＣＢｌおよびＭＣＢｒにデータ“０”が格納され、ドントケア（Ｘ）状態に設定される。
【０１４４】
したがって、サブブロックＳＢ♯Ａにおいては、パターン長ＬからＬ／２の間の被検索データパターンを格納することができる。
【０１４５】
サブブロックＳＢ♯Ｂにおいて、エントリＥＲＹｄにおいては、それぞれパターン長Ｌ／２の被検索データパターンＰＡＴ４およびＰＡＴ５がマッピングされる。エントリＥＲＹｅにおいては、パターン長３・Ｌ／８の被検索データパターンがマッピングされ、残りのＬ／８長の領域は、ドントケア状態（Ｘ）に設定される。
【０１４６】
また、エントリＥＲＹｅにおいて、後半のＬ／２長の領域においてパターン長３・Ｌ／８の被検索データパターンＰＡＴ７がマッピングされ、残りのＬ／８長の領域は、ドントケア状態（Ｘ）に設定される。
【０１４７】
サブブロックＳＢ♯Ｃにおいては、１つのエントリＥＲＹｆを代表的に示すが、このエントリＥＲＹｆにおいては、パターン長Ｌ／４の被検索データパターンＰＡＴ８、ＰＡＴ９、ＰＡＴ１０およびＰＡＴ１１が順次格納される。したがって、サブブロックＳＢ♯Ｃにおいては、空き領域は存在していないが、空き領域は同様、ドントケア状態に設定され、パターン長Ｌ／８よりも長くパターン長Ｌ／４以下の被検索データパターンを格納することができる。
【０１４８】
サブブロックＳＢ♯ＤのエントリＥＲＹｇにおいては、パターン長がＬ／８の被検索データパターンＰＡＴ１２、ＰＡＴ１４、ＰＡＴ１５、およびＰＡＴ１６がそれぞれＬ／４長の格納領域にそれぞれ格納される。エントリＥＲＹｇにおいては、Ｌ／４長さパターン格納領域の後半部のＬ／８の長さの領域が、ドントケア状態に設定される。
【０１４９】
サブブロックＳＢ♯Ａ、ＳＢ♯Ｂ、ＳＢ♯ＣおよびＳＢ♯Ｄにより、パターン長Ｌ、Ｌ／２、Ｌ／４、およびＬ／８のデータパターンをそれぞれ分割して格納することができ、図１４に示すローカル一致判定回路ＬＭＤｉにより、パターン長に応じて各サブブロックにおいてデータパターンの一致／不一致を識別することができる。
【０１５０】
この図１６に具体的に示すように、７個のエントリＥＲＹａ−ＥＲＹｇにおいて１６個の被検索データパターンＰＡＴ１−ＰＡＴ１６を格納することができる。このように、１エントリに１被検索データパターンを格納する場合、１６個のエントリを消費する構成に比べて、大幅にエントリ数を低減することができる。
【０１５１】
図１７は、検索時における検索パターンの入力態様を概略的に示す図である。図１７において、ペイロードに含まれるデータパケットＰＫＴから、バイト長Ｌのデータパターンを取込み、検索データとして各サブブロックに並列に与える。データパケットＰＫＴは、たとえば１バイトずつシフトインかつシフトアウトされて、次の検索データが生成される。したがって、入力された検索データパターンにおいて、先頭位置からバイト長Ｌ／２離れた位置にデータパターンＰＡＴ１０が含まれている場合、図１６に示すエントリＥＲＹｆにおいて一致を検出することができ、応じて、データパケットＰＫＴにおいて登録パターンＰＡＴ１０と同一データパターンが含まれていることを検出することができる。これにより、このデータパケット、たとえば悪意のある不正アクセスデータパケットであると識別することができる。被検索データパターン長が、対応のサブブロックに割当てられたパターン長より短い場合においては、空き領域がドントケア状態（“Ｘ”）に設定されており、種々のパターン長のデータパターンについて、正確に検索を行なうことができる。
【０１５２】
図１８は、この発明の実施の形態１に従う半導体信号処理装置のデータ書込部の構成の一例を概略的に示す図である。図１８において、サブブロックＳＢ１−ＳＢｎに共通に、グローバル書込データ線ＧＷＤＲ１，ＺＧＷＤＲ１，ＧＷＤＬ１，ＺＧＷＤＬ１が設けられる。グローバル書込データ線ＧＷＤＬおよびＺＧＷＤＬは、サブブロックＳＢ１−ＳＢｎのビット線ＢＬＬおよびＺＢＬＬの組に対応して配置され、グローバル書込データ線ＧＷＤＲおよびＺＧＷＤＲは、サブブロックＳＢ１−ＳＢｎのビット線ＢＬＲおよびＺＢＬＲの組に対応して設けられる。
【０１５３】
サブブロックＳＢ１−ＳＢｎ各々においては、各ビット線ＢＬＬに対応して両側に、ビット線書込ドライバＷＤＶＬ１およびＷＤＶＬ２が設けられる。ビット線書込ドライバＷＤＶＬ１は、選択時、グローバル書込データ線ＧＷＤＬ上の信号電位に従って、ビット線ＢＬＬを駆動し、また、ビット線書込ドライバＷＤＶＬ２は、グローバル書込データ線ＺＧＷＤＬ上の信号電位に従って対応のビット線ＢＬＬを駆動する。ビット線ＢＬＲに対しても、同様、ビット線書込ドライバＷＤＶＲ１およびＷＤＶＲ２がその両端に対向して配置される。ビット線書込ドライバＷＤＶＲ１は、グローバル書込データ線ＧＷＤＲ上の信号電位に従ったビット線ＢＬＲを駆動し、ビット線書込ドライバＷＤＶＲ２は、補のグローバル書込データ線ＺＧＷＤＲに従ってビット線ＢＬＲを駆動する。
【０１５４】
補のビット線ＺＢＬＬおよびＺＢＬＲにおいても、ダミーセルを低抵抗状態に設定するためのダミービット線ドライバが設けられるが、図１８においては、図面を簡略化するために示していない。
【０１５５】
ビット線ＢＬＬには、メモリセルＭＣＢＬおよびＭＣＡＬが結合され、ビット線ＢＬＲには、メモリセルＭＣＢＲおよびＭＣＡＲが結合される。したがって、同一列に配置されるメモリセルＭＣＢ（ＭＣＢＬ，ＭＣＢＲ）およびメモリセルＭＣＡ（ＭＣＡＬ，ＭＣＡＲ）に対する書込データの伝達は、同じグローバル書込データ線を介して行なわれる。
【０１５６】
グローバル書込データ線ＧＷＤＬ，ＺＧＷＤＬ，ＧＷＤＲ，ＺＧＷＤＲに書込データを伝達するために、サブブロックＳＢ１−ＳＢｎに共通に、データパス４０が設けられる。データパス４０は、入力データＩＮ（＝Ａ，Ｂ）を反転するインバータ４２ｌおよび４２ｒと、モード選択信号ＳＭＯＤＬに従って入力データＩＮとインバータ４２ｌの出力信号の一方を選択するマルチプレクサ４４ｌと、モード指示信号ＳＭＯＤＲに従って入力データＩＮおよびインバータ４２ｒの出力信号の一方を選択するマルチプレクサ４４ｒを含む。
【０１５７】
マルチプレクサ４４ｌは、モード指示信号ＳＭＯＤＬが“０”のときには、入力データＩＮを選択し、一方、モード選択信号ＳＭＯＤＬが“１”のときには、インバータ４２ｌの出力信号を選択する。マルチプレクサ４４ｒは、モード指示信号ＳＭＯＤＲが“０”のときには、入力データＩＮを選択し、このモード指示信号ＳＭＯＤＲ“１”のときには、インバータ４２ｒの出力信号を選択する。
【０１５８】
データパス４８は、さらに、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲそれぞれに対応して設けられる書込ドライバ４６ｌおよび４６ｒと、補のグローバル書込データ線ＺＧＷＤＬおよびＺＧＷＤＲに対応してそれぞれ設けられる書込用インバータドライバ４８ｌおよび４８ｒが設けられる。ドライバ４６ｌおよび４８ｌは、マルチプレクサ４４ｌの出力信号を受け、ドライバ４６ｒおよび４８ｒは、マルチプレクサ４４ｒの出力信号を受ける。
【０１５９】
データパス４０に対して入力シフトレジスタ回路４９が設けられ、データパケットのデータが、所定ビット幅単位でシフトイン・シフトアウトされる。この入力シフトレジスタ回路４９において取り込まれた所定のビット幅のデータがデータパス４０に対する入力データとして与えられる。検索データおよび被検索データは、データパスの同じ入力ポートに与えられる。
【０１６０】
図１８に示す構成において、メモリセルＭＣＢＬ、ＭＣＢＲ、ＭＣＡＬおよびＭＣＡＲにデータ“０”を書込むときには、モード指示信号ＳＭＯＤＬおよびＭＯＤＲがともに“０”に設定され、マルチプレクサ４４ｌおよび４４ｒは、入力データＩＮを選択し、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲに、データＩＮが伝達される。これにより、メモリセルＭＣＢ（ＭＣＢＬ，ＭＣＢＲ）およびＭＣＡ（ＭＣＡＬ，ＭＣＡＲ）すべてに対し、データ“０”を書込むことができ、応じて、ドントケア状態を実現することができる。
【０１６１】
メモリセルＭＣＢＬおよびＭＣＢＲに被検索データパターンを書込むときには、モード指示信号ＳＭＯＤＬが“１”に設定され、モード指示信号ＳＭＯＤＲが“０”に設定される。マルチプレクサ４４ｌは、インバータ４２ｌの出力信号を選択し、書込ドライバ４６ｌが、グローバル書込データ線ＧＷＤＬに反転入力データ／ＩＮ（＝／Ｂ）を伝達する。一方、マルチプレクサ４４ｒは、入力データＩＮをモード指示信号ＳＭＯＤＲに従って選択し、書込ドライバ４６ｒが入力データＩＮ（＝Ｂ）を対応のグローバル書込データ線ＧＷＤＲへ伝達する。これにより、メモリセルＭＣＢＬおよびＭＣＢＲへ、それぞれ、データ／ＢおよびＢが書込まれる。インバータドライバ４８ｌおよび４８ｒは、それぞれ、書込ドライバ４６ｌおよび４６ｒが生成するデータの反転信号を、それぞれ、対応のグローバル書込データ線ＺＧＷＤＬおよびＺＧＷＤＲに伝達する。
【０１６２】
検索動作時においては、モード指示信号ＳＭＯＤＬが“０”に設定され、モード指示信号ＳＭＯＤＲが“１”に設定される。マルチプレクサ４４ｌは、入力データＩＮ（＝Ａ）を選択し、書込ドライバ４６ｌは、グローバル書込データ線ＧＷＤＬに入力データＩＮを伝達する。一方、マルチプレクサ４４ｒは、インバータ４２ｒの出力信号を選択し、書込ドライバ４６ｒが、データ／ＩＮをグローバル書込データ線ＧＷＤＲに伝達する。インバータドライバ４８ｌおよび４８ｒにより、補のグローバル書込データ線ＺＧＷＤＬおよびＺＧＷＤＲに、データ／ＩＮ（＝／Ａ）およびＩＮ（＝Ａ）が伝達される。これにより、メモリセルＭＣＡＬおよびＭＣＡＲに、検索データＡおよび／Ａをそれぞれ書込むことができる。
【０１６３】
この図１８に示すデータパス４０のグローバル書込データ線ＧＷＤＬ，ＺＧＷＤＬ，ＧＷＤＲ，ＺＧＷＤＲの組に対応する構成が、各記憶単位に対応して配置されるビット線に対して配置される。
【０１６４】
この図１８に示す構成を利用するにより、被検索データパターン書込時、各サブブロック単位で各メモリセル行毎に検索データパターンを書込むことができる。
【０１６５】
なお、ドライバ４６ｌ，４８ｌ，４６ｒおよび４８ｒにおいてマスク信号ＭＡＳＫが与えられているのは、書込パターン長が、１エントリサイズよりも短い場合、非書込領域に対するデータ書込を防止するためである。このマスク信号ＭＡＳＫは、一例として、バイト長Ｌ／８単位でマスクをかけることができる。
【０１６６】
このマスク指示信号ＭＡＳＫの活性化時、ドライバ４６ｌ，４８ｌ，４６ｒ，４８ｒは、出力ハイインピーダンス状態に設定され、グローバル書込データ線ＧＷＤＬ，ＺＧＷＤＬ，ＧＷＤＲおよびＺＧＷＤＲはプリチャージ状態に維持され、対応のビット線ＢＬＬおよびＢＬＲに対するデータの書込はマスクされる。
【０１６７】
図１９は、この発明の実施の形態１に従う半導体信号処理装置における検索動作を示すタイミング図である。以下、図１９を参照して、この発明の実施の形態１に従う半導体信号処理装置の検索動作について説明する。
【０１６８】
サブブロックＳＢ１−ＳＢｎの被検索パターン格納領域（ＰＲＲ）においては、予め被検索データパターンが登録されている。また、各エントリに対する検索動作サイクルは、クロック信号ＣＬＫにより規定される。
【０１６９】
検索動作が時刻Ｔ１において始まると（コマンドが与えられると）、このときに与えられた入力データＩＮＡに従って検索データパターンＡ０が取り込まれ、マルチプレクサ４４ｌおよび４４ｒにより、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲにデータ／Ａ０およびＡ０が伝達される。書込ドライバにより書込データが転送されると、検索パターン書込／読出領域ＲＲＲの書込ワード線ＷＷＬＡが選択状態へ駆動される。ビット線書込ドライバによる書込データに応じたビット線ＢＬＬおよびＢＬＲにそれぞれ流れる電流と書込ワード線ＷＷＬＡを流れる電流の誘起する磁界により、検索データ書込／読出領域のメモリセルＭＣＡＬおよびＭＣＡＲにデータＡ０および／Ａ０が格納される。
【０１７０】
書込ワード線ＷＷＬＢに対応して配置されるメモリセルＭＣＢにおいては、被検索データが格納され、書込ワード線ＷＷＬＡに対応して配置されるメモリセルＭＣＡにおいては、検索データが書き込まれて読出される。従って、以下の説明においては、書込ワード線ＷＷＬＡおよび読出ワード線ＲＷＬＡをそれぞれ、検索書込ワード線および検索読出ワード線と称する。また、書込ワード線ＷＷＬＢおよび読出ワード線ＲＷＬＢは、それぞれ、登録書込ワード線および登録読出ワード線と称す。
【０１７１】
検索データＡ０およびその反転データ／Ａ０がメモリセルＭＣＡＲ，ＭＣＡＬに書込まれると、次いで時刻Ｔ２において、登録および検索読出ワード線ＲＷＬＢ１およびＲＷＬＡが並行して選択され、メモリセルＭＣＢＬ，ＭＣＢＲ（第１のメモリセル）およびＭＣＡＬおよびＭＣＡＲ（第２のメモリセル）の記憶データに応じた電流が対応のビット線ＢＬＬおよびＢＬＲに流れる。センスアンプ回路（ＳＡＫ）がセンスアンプ活性化信号（ＳＥ，／ＳＥ）に従って活性化され、ビット線電流Ｉｃｅｌｌおよび参照電流Ｉｄｕｍｍｙに従って対応のローカルマッチ線（ＭＬ１−２＾ｋ）上に、メモリセルＭＣＡおよびＭＣＢの記憶データの演算結果（ＡＮＤ演算結果）に応じた電流が供給される。これにより、読出ワード線ＲＷＬＢ１に対応するエントリＥＲＹ１に格納される被検索データパターンと入力データパターンＡ０とのパターンの一致／不一致の判定が行なわれる。この検索動作は、サブブロックＳＢ１−ＳＢｎに対して並行して実行される。
【０１７２】
続いて、エントリＥＲＹ１に対する検索サイクルが完了すると、次の登録読出ワード線ＲＷＬＢ２を、検索読出ワード線ＲＷＬＡと並行して選択状態へ駆動し、登録読出ワード線ＲＷＬＢ２に対応するエントリＥＲＹ２のメモリセルＭＣＢの記憶データと入力データＡ０とのパターンの一致／不一致の判定が行なわれる。
【０１７３】
この検索動作が、各サブブロックにおいて並行して繰返し実行される。最後のエントリＥＲＹｍに対する検索動作（読出ワード線ＲＷＬＢｍおよびＲＷＬＡの並行選択、およびセンスアンプ回路によるデータのローカルマッチ線への伝達）が、同様にして実行されると、入力データパターンＡ０についての検索サイクルが完了する。
【０１７４】
この入力データＡ０についての検索サイクルが完了すると、時刻Ｔ３において次の検索データＡ１の書込および検索が実行される。
【０１７５】
この各検索動作サイクルにおけるエントリ単位の検索結果は、最終一致判定回路から各クロックサイクル毎（エントリ単位の検索動作サイクル毎）に外部へ読出され、各クロックサイクル毎に一致／不一致の判定が行なわれ、最終判定結果は、ｍサイクル経過後に確定される。この場合、最終一致判定信号ＦＭＣＨ、シフトレジスタに格納し、ｍサイクル分の検索結果が順次格納されてもよい。また、ローカル一致判定回路の出力を並列に外部に取り出し、一致検出時に、一致検出したローカル判定回路ン対応するサブブロックを特定するブロックアドレスおよびそのエントリアドレスを外部に取り出してもよい。この構成によれば、一致したデータパターンを識別することができる。ＮＩＤＳなどのシステムにおいては、一致検出に応じて、アクセス禁止および不正アクセス発生の報知などの必要な処理が行なわれる。
【０１７６】
ＮＩＤＳなどの不正アクセス検出システムと異なるシステムにおけるパターンの一致検出の場合、以下の処理が行なわれてもよい。すなわち、ｍサイクルにわたる検索動作で複数の一致結果が得られた場合、プライオリティエンコーダにより、最も優先順位の高いエントリのアドレスが求められ、その一致アドレスに基づいてテーブルを参照して、以降の処理が実行されてもよい。
【０１７７】
図２０は、ローカル行選択駆動回路の構成を概略的に示す図である。この図２０に示すローカル行選択駆動回路５０は、サブブロックＳＢ１−ＳＢｎそれぞれに対応して設けられる。
【０１７８】
図２０において、ローカル行選択駆動回路５０は、被検索データパターンを格納する領域（ＰＲＲ）に対応して設けられる登録書込ワード線選択駆動回路５１と、登録読出ワード線選択駆動回路５２とを含む。登録書込ワード線選択駆動回路５１は、ブロック選択信号ＢＳとワード線アドレス信号ＡＤとを受け、登録書込ワード線活性化信号ＷＷＬＢＥＮの活性化時、対応のサブブロックの登録書込ワード線ＷＷＬＢ１−ＷＷＬＢｍのうちのアドレス指定されたエントリの登録書込ワード線を選択状態へ駆動する。ブロック選択信号ＢＳは、サブブロックＳＢ１−ＳＢｎのいずれかを特定し、ワード線アドレス信号ＡＤは、エントリ（ＥＬＹ１−ＥＬＹｍ）のいずれかのワード線を指定する。
【０１７９】
登録読出ワード線選択駆動回路５２は、アドレス信号ＡＤを受け、登録読出ワード線活性化信号ＲＷＬＢＥＮの活性化時、このアドレス信号ＡＤをデコードし、登録読出ワード線ＲＷＬＢ−ＲＷＬＢｍのうちのアドレス指定されたエントリに対応する登録読出ワード線を選択状態へ駆動する。この登録読出ワード線選択駆動回路５２に対し、ブロック選択信号ＢＳを与えていないのは以下の理由による。すなわち、データ読出が行なわれるのは、検索動作時であり、サブブロックＳＢ１−ＳＢｎにおいて並行して検索動作がサブブロック単位で実行される。したがって、検索動作時においては、サブブロックＳＢ１−ＳＢｎ各々において登録読読出ワード線選択駆動回路５２により、登録読出ワード線を選択状態へ駆動する（サブブロックにおいて同じ番号のエントリの登録読出ワード線ＲＷＬＢが選択状態へ駆動される）。
【０１８０】
なお、テストモード時においてメモリセルが正常に動作するかの判定を行なう場合には、その経路は示していないが、ブロック選択信号に従って複数のサブブロックに共通に設けられるグローバル読出データ線にサブブロック単位でセンスアンプ回路の出力信号を読出す構成が用いられればよい。また、テスト時には、ブロック選択信号ＢＳとアドレス信号とに従って、サブブロックの指定および指定サブブロック内のエントリの指定が行われ、また、指定されたサブブロックのセンスアンプ回路が活性化する構成が用いられてもよい。選択エントリの登録パターンを読出すことができる。
【０１８１】
ローカル行選択駆動回路５０は、さらに、検索書込ワード線選択駆動回路５３および検索読出ワード線選択駆動回路５４を含む。検索書込ワード線選択駆動回路５３は、検索書込ワード線活性化信号ＷＷＡＥＮの活性化時、対応の検索パターン書込／読出領域の検索書込ワード線ＷＷＬＡ１を選択状態へ駆動する。
【０１８２】
検索読出ワード線選択駆動回路５４は、検索読出ワード線活性化信号ＲＷＡＥＬの活性化に応答して、対応の検索読出ワード線ＲＷＬＡ１を選択状態へ駆動する。これらのワード線選択駆動回路５３および５４に対しては、単に活性化信号が与えられており、アドレス信号が与えられていないのは以下の理由による。すなわち、検索動作時に検索データを書込むエントリは、実施の形態１においては１つ設けられているだけである。したがって、特にアドレス信号を設ける必要はなく、活性化信号ＷＷＬＡＥＮおよびＲＷＬＡＥＮの活性化に従ってワード線ＷＷＬＡ１およびＲＷＬＡ１を選択状態へ駆動することにより、検索データの書込および読出を行なうことができる。
【０１８３】
このローカル行選択駆動回路５０は、さらに、ダミーセルに対して設けられるダミー書込ワード線選択駆動回路５５およびダミー読出ワード線選択駆動回路５６を含む。ダミー書込ワード線選択駆動回路５５は、ブロック選択信号ＢＳを受け、ダミー書込ワード線活性化信号ＤＷＷＬＥＮの活性化時、このブロック選択信号ＢＳが対応のサブブロックを指定しているときに対応のダミー書込ワード線ＤＷＷＬを選択状態へ駆動する。ダミー読出ワード線選択駆動回路５６は、ダミー読出ワード線活性化信号ＤＲＷＬＥＮの活性化時、対応のダミー読出ワード線ＤＲＷＬを選択状態へ駆動する。
【０１８４】
ダミー書込ワード線選択駆動回路５５に対しブロック選択信号ＢＳが与えられ、ダミー読出ワード線選択駆動回路５６に対しブロック選択信号が与えられていないのは以下の理由による。すなわち、ダミーセルにデータの書込を行なう場合、サブブロック単位でデータの書込を行ない、一方、検索動作等のデータの読出時においては、読出ワード線ＲＷＬＢおよびＲＷＬＡの活性化と並行してダミー読出ワード線ＤＲＷＬを選択状態へ駆動する必要がある。検索動作時においては、各サブブロックにおいて並行してデータの読出が行なわれるため、サブブロックを特に特定する必要がなく、各サブブロックにおいて、ダミー読出ワード線ＤＲＷＬを選択状態へ駆動する。テスト時において、ダミーセルの記憶データを読出して、ダミーセルが以上であるかを判定するときには、ブロック選択信号ＢＳがダミー読出ワード線選択駆動回路５６へ与えられ、指定されたサブブロックからダミーセルの記憶データを読出す。
【０１８５】
図２１は、この発明の実施の形態１に従う半導体信号処理装置の全体の動作を制御する制御回路７０の構成を概略的に示す図である。図２１において、制御回路７０は、コマンドＣＭＤをデコードし、コマンドＣＭＤが指定する動作モードを指示する各種動作モード指示信号を生成するコマンドデコーダ７１と、データパスにおける書込経路を設定する書込経路設定回路７２と、登録書込ワード線活性化信号ＷＷＬＢＥＮを生成する登録書込ワード線活性化回路７３と、検索書込ワード線活性化信号ＷＷＬＡＥＮを生成する検索書込ワード線活性化回路７４を含む。
【０１８６】
書込経路設定回路７２は、コマンドデコーダ７１からの動作モード指示信号ＭＯＤに従って経路指定信号ＳＭＯＤＲおよびＳＭＯＤＬの状態を指定する。この動作モード指示信号ＭＯＤは、データ書込モード、データ読出モード、および初期設定モードのいずれか指定する多ビット制御信号である。
【０１８７】
登録書込ワード線活性化回路７３は、コマンドデコーダ７１からの書込モード指示信号ＭＯＤＷの活性化時、クロック信号ＣＬＫを基準として所定のタイミングで登録書込ワード線活性化信号ＷＷＢＥＮを活性状態へ駆動する。
【０１８８】
検索書込ワード線活性化回路７４は、コマンドデコーダ７１からの読出モード指示信号ＭＯＤＲの活性化時、クロック信号ＣＬＫを基準として所定のタイミングで検索書込ワード線活性化信号ＷＷＬＡＥＮを活性化する。
【０１８９】
制御回路７０は、さらに、登録読出ワード線活性化信号ＲＷＢＥＮを活性化する登録読出ワード線活性化回路７５と、検索読出読出ワード線活性化信号ＲＷＡＥＮを活性化する検索読出ワード線活性化回路７６を含む。
【０１９０】
検索読出ワード線活性化回路７６は、読出モード指示信号ＭＯＤＲの活性化時、検索書込ワード線活性化信号ＲＷＬＡＮが活性化されたて次のサイクルにおいてクロック信号を基準として所定のタイミングで、検索読出ワード線活性化信号ＲＷＡＬＥＮを活性化する。
【０１９１】
制御回路７０は、さらに、ダミーセルデータの書込／読出のために、ダミー書込ワード線活性化回路７７およびダミー読出ワード線活性化回路７８を含む。ダミー書込ワード線活性化回路７７は、通常動作時（被検索データパターンのマッピングおよび検索動作）時において、ダミー書込ワード線ＤＷＷＬは非選択状態に維持され、ダミーセルへの書込は行なわれない。このダミー書込ワード線活性化回路７７は、図示しないテストモード指示信号の活性化時、テストアドレス信号が対応のダミーセルを指定しているときに、ダミーワード線活性化信号ＤＷＬＥＮを活性化する。これにより、ダミーセルのテスト時に所望のデータをダミーセルに書込むことができる。
【０１９２】
なお、検索書込ワード線活性回路７４、登録読出ワード線活性化回路７５および検索読出ワード線活性回路７６に対して、図示しないテストモード指示信号が与えられてＩ化の動作が実行されてもよい。すなわち、検索書込ワード線活性回路７４は、テスト書込モード時において、エントリを指定するアドレスを受け、このアドレスが検索書込ワード線を指定するとき（アドレス信号は、書込ワード線ＷＷＬＢおよびＷＷＬＡに対して共通に用いられ、エントリＥＲＹ（ｍ＋１）が検索書込ワード線ＷＷＬＡに対応する）、検索書込ワード線活性化信号ＷＷＬＡＥＮを活性化する。このテスト書込を実現する場合には、図２０に示す検索書込ワード線選択駆動回路５３に対してテスト書込モード指示信号とブロック選択信号とを与える必要がある。選択サブブロックにおいて検索書込ワード線を選択状態に駆動する。
【０１９３】
また、検索読出ワード線活性化回路７６に対してはテスト読出モード指示信号とエントリを指定するアドレス信号とを与える。与えられたアドレス信号が、検索パターン書込／読出領域のエントリを指定するときに検索読出ワード線活性化信号ＲＷＬＡＥＮを活性化する。このときには、図２０に示す検索読出ワード線選択駆動回路５４に対してテスト読出モード指示信号とブロック選択信号とを与え、選択サブブロックにおいて検索読出ワード線ＲＷＬＡを選択する。
【０１９４】
ダミー読出ワード線活性化回路７８は、データ読出モード指示信号ＭＯＤＲの活性化時、クロック信号ＣＬＫをタイミング基準として読出ワード線活性化信号ＲＷＬＡおよびＲＷＬＢと同じタイミングでダミー読出ワード線活性化信号ＤＲＷＬＥＮを活性化する。ダミーセルの記憶データの読出時においては、メモリセルＭＣＡまたはＭＣＢのデータを読出す必要がある。したがって、テストモード時においてダミーセルのデータの読出を行なう場合、他のメモリセルＭＣＡまたはＭＣＢを選択状態へ駆動し、ダミーセルの記憶データが正常であるかの識別を行なう必要がある。ダミーセルが供給する参照電流は、基準電圧ＶＲＥＦの電圧レベルの調整により設定される。
【０１９５】
この制御回路７０は、さらに、読出に関連するセンスアンプ回路およびマッチ線アンプを活性化する読出活性制御回路７９を含む。この読出活性制御回路７９は、データ読出モード指示信号ＭＯＤＲの活性化時、クロック信号ＣＬＫをタイミング基準として、センスアンプ活性化信号ＳＥおよび／ＳＥとマッチ線アンプ活性化信号ＡＭＰＥＮを所定のタイミングで活性化する。
【０１９６】
メモリセルＭＣＡおよびＭＣＢの記憶データを読出すテスト読出モードを実現する場合には、テスト読出モード指示信号をこの読出活性制御回路７９に与えセンスアンプ活性化信号ＳＥおよび／ＳＥを活性化する。このときには、マッチ線アンプは特に活性化する必要はなく、マッチ線アンプ活性化信号ＡＭＰＥＮは非活性状態に維持される。ローカル一致判定回路の不良検出テストを行う場合には、このマッチ線アンプ活性化信号ＡＭＰＥＮが活性化される。
【０１９７】
制御回路７０においては、さらに、内部アドレス信号の生成およびデータ書込マスクのために、アドレスカウンタ８０、マルチプレクサ（ＭＵＸ）８１、およびブロックデコーダ８２とバッファ８３とが設けられる。
【０１９８】
アドレスカウンタ８０は、読出モード指示信号ＭＤＲおよび書込モード指示信号ＭＯＤＷのいずれかの活性化時、クロック信号ＣＬＫに同期してカウント動作を行ない、そのカウント値により、カウンタブロックアドレス信号ＣＢＡＤおよびカウンタワード線アドレス信号ＣＡＤを生成する。このアドレスカウンタ８０は、読出モード指示信号ＭＯＤＲが与えられると、次のクロックサイクルからカウント動作を開始する。すなわち、読出モード指示信号ＭＯＤＲが与えられるとカウント開始指示は、１クロックサイクル遅延して与えられてカウンタのカウント動作を開始する。これにより、検索書込ワード線が選択されて検索動作が行われた後に、次のサイクルから先頭エントリＥＲＹ１および検索メモリセルの選択を行って検索動作を開始することができる。
【０１９９】
マルチプレクサ８１は、コマンドデコーダ７１からの外部／内部動作モード指示信号ＭＯＤＩに従って、アドレスカウンタ８０からのアドレス信号ＣＢＡＤおよびＣＡＤの組と外部から与えられる外部アドレス信号ＥＸＡＤのいずれかを選択し、ブロックアドレス信号ＢＡＤおよびワード線アドレス信号ＡＤを生成する。
【０２００】
動作モード指示信号ＭＯＤＩは、外部アドレスで選択ワード線を指定するか内部アドレスに従ってワード線アドレスを生成するかの動作モードを指定する。すなわち、被検索データパターンの追加時においては、外部アドレス信号ＥＸＡＤに従って、追加被検索データパターンのマッピング先のエントリを指定する。また、データ書込時において、初期状態後の最初の被検索データパターンのマッピング時においては、データ書込モード指示信号ＭＯＤＷに従ってアドレスカウンタ８０によりアドレスを生成して、サブブロックＳＢ１からＳＢｎを順次指定するとともに、指定されたサブブロックにおいてエントリＥＲＹ１からＥＲＹｍを順次指定するアドレスを生成する。読出モード指示信号ＭＯＤＲの活性化時、検索動作時においてはアドレスカウンタ８０からのカウンタアドレス信号に従って各サブブロックにおいてエントリが順次指定される。
【０２０１】
テストモード時においては、外部／内部／内部動作モード指示信号ＭＯＤＩに従って外部アドレス信号ＥＸＡＤを選択してアドレス信号ＢＡＤおよびＡＤを生成して所望のエントリを選択する。このテストモード時において、アドレスカウンタ８０からのカウンタアドレス信号ＣＡＤおよびＣＢＡＤに従って、サブブロックおよびエントリが順次指定されてもよい。
【０２０２】
ブロックデコーダ８２は、マルチプレクサ８１から与えられるブロックアドレス信号ＢＡＤをデコードし、ブロック選択信号ＢＳを生成する。このブロックデコーダ８２は、検索モード時においてはデコード動作が停止されてもよい。検索動作時においては、全サブブロックが並行して選択されるためである。
【０２０３】
バッファ８３は、データ書込指示信号ＭＯＤＷの活性化時、クロック信号ＣＬＫに同期して、外部からのマスク指示信号ＥＸＭＡＳＫをバッファ処理して内部書込マスク指示信号ＭＡＳＫを生成する。マスク指示信号ＥＸＭＡＳＫは、準備される被検索データパターンのパターン長の種類に応じて、そのビット数が設定される。一例として、最小被検索データパターン長がＬ／８のときには、マスク指示信号ＥＸＭＡＳＫおよびＭＡＳＫは、８ビット幅の信号である。これにより、最小データパターン長単位でデータ書込にマスクをかけることができる。
【０２０４】
以上のように、この発明の実施の形態１に従えば、サブブロック単位で１つのエントリに複数の被検索データパターンをマッピング可能としている。これにより、被検索データパターン数が増大しても、エントリの増大を抑制して、効率的に被検索データパターンを格納して検索動作を行なうことができる。
【０２０５】
また、センスアンプ回路として電流検出またはセンスアンプ回路を用いており、高速のセンス動作を行なって判定結果信号を生成することができる。
【０２０６】
また、単にメモリセルとして、ＭＲＡＭセルが用いられているだけであり、通常のＴＣＡＭのように、データ記憶のためのフリップフロップと一致判定のためのトランジスタ素子を設ける必要がなく、メモリセルを構成するトランジスタ素子数が低減され、メモリセルアレイの占有面積を低減することができる。
【０２０７】
［実施の形態２］
図２２は、この発明の実施の形態２に従う半導体信号処理装置のアレイ部の構成を概略的に示す図である。この図２２においては、１列に整列して配置されるメモリセルおよびその関連の部分の構成を概略的に示す。図２２において被検索パターン格納領域ＰＲＲにおいて、メモリセルＭＣＢ１−ＭＣＢｍが１列に整列して配置される。一方、検索パターン書込／読出領域ＲＲＲにおいては、２つのメモリセルＭＣＡ１およびＭＣＡ２が整列して配置される。これらのメモリセルＭＣＢ１−ＭＣＢｍおよびＭＣＡ１、ＭＣＡ２と同一構成を有するダミーセルＤＭＣが、列方向に整列して配置される。
【０２０８】
これらのメモリセルＭＣＢ１−ＭＣＢｍ、ＭＣＡ１、ＭＣＡ２およびダミーセルＤＭＣは、データ書込とデータ読出とを別の経路で行なうことのできるデュアルポートＭＲＡＭセルである。このようなデュアルポートＭＲＡＭセルの構成としては、特許文献４（特開２００３−２９７０６９号公報）または非特許文献３（N. Sakuma et. al.,“MRAM Cell Technology for Over 500-MHz SoC,”IEEE Journal of Solid-State Circuits, Vol.42, No.4, April 2007, pp.830-837.）に示される構成を利用することができる。これらの文献において示されるＭＲＡＭセルの構造は互いに異なり、また、それぞれのビット線およびワード線の配置も異なる。図２２においては、実施の形態１との対応から、これらのメモリセル列ＭＣＢ１−ＭＣＢｍ，ＭＣＡ１、ＭＣＡ２およびダミーセルＤＭＣに、読出ビット線ＲＢＬおよびＺＲＢＬと書込ビット線ＷＢＬが並行して列方向に延在して配置される構成を一例として示す。用いられるＭＲＡＭの構造に応じて、これらのビット線およびワード線の配置が適宜修正されればよい。
【０２０９】
メモリセルＭＣＢ１−ＭＣＢｍ，ＭＣＡ１，ＭＣＡ２は、読出ビット線ＲＢＬに結合され、ダミーセルＤＭＣが、補の読出ビット線（参照読出ビット線）ＺＲＢＬに結合される。また、書込ビット線ＷＢＬの両側にそれぞれ、ビット書込ドライバＷＤＶ１およびＷＤＶ２が配置され、それぞれ相補データＤおよび／Ｄに従って書込ビット線ＷＢＬに書込データに応じた方向に電流を流す。書込ビット線ＷＢＬを介して流れる電流が誘起する磁界により、メモリセルＭＣＢ１−ＭＣＢｍ，ＭＣＡ１，ＭＣＡ２およびダミーセルＤＭＣに対してデータの書込を行なうことができる。
【０２１０】
エントリＥＲＹ１のメモリセルＭＣＢ１に対し読出ビット線ＲＢＬ１および書込ワード線ＷＷＬＢ１が設けられ、エントリＥＲＹｍのメモリセルＭＣＢｍに、登録読出ワード線ＲＷＬＢｍおよび登録書込ワード線ＷＷＬＢｍが設けられる。被検索パターン格納領域ＰＲＲにおいてはエントリＥＲＹｉのメモリセルＭＣＢｉに対して登録読出ワード線ＲＷＬｉおよび登録書込ワード線ＷＷＬｉが設けられる。
【０２１１】
メモリセルＭＣＡａに対して、検索読出ワード線ＲＷＬＡａおよび検索書込ワード線ＷＷＬＡａが設けられ、メモリセルＭＣＡｂに対し検索読出ワード線ＲＷＬＡｂおよび検索書込ワード線ＷＷＬＡｂが設けられる。
【０２１２】
ダミーセルＤＭＣに対し、ダミー読出ワード線ＤＲＷＬおよびダミー書込ワード線ＤＷＷＬが設けられる。
【０２１３】
図２２に示す構成においても、実施の形態１と同様、検索動作時には、メモリセルＭＣＢとメモリセルＭＣＡ（ＭＣＡａ，ＭＣＡｂのいずれか）の２つのメモリセルの組を選択して、読出ビット線ＲＢＬに電流を流す。参照読出ビット線ＺＲＢＬにおいては、ダミーセルＤＭＣにより参照電流が供給される。このダミーセルＤＭＣにより生成される参照電流は、基準電圧ＶＲＥＦにより設定され、ダミーセルＤＭＣが生成する参照電流と選択メモリセルＭＣＢおよびＭＣＡの組が生成するビット線読出電流の関係は、図９に示す関係と同じである。
【０２１４】
この図２２に示すメモリセル配置において、２つの列のメモリセルにおいて同一行のメモリセルを記憶単位（ＳＵＴ）として利用する。検索パターン書込／読出領域において、１つのメモリセル（検索メモリセル）ＭＣＡに対しデータの読出を行なっているときに、ベースの行の検索メモリセルに対し、データ書込を行なうことができる。
【０２１５】
図２３は、この発明の実施の形態２に従う半導体信号処理装置の検索動作シーケンスを示すタイミング図である。以下、図２３を参照して、図２２に示す半導体信号処理装置の検索シーケンスに付いて説明する。
【０２１６】
検索動作は、クロック信号ＣＬＫに同期して行なわれる。時刻Ｔ１０において、検索データＤＩＮＡとしてデータＡ０がクロック信号ＣＬＫの立上がりに同期して取り込まれる。この時刻Ｔ１０から始まるクロックサイクルにおいては、内部で、検索書込ワード線ＷＷＬＡａが選択状態へ駆動され、検索メモリセルＭＣＡａに対し、データＡ０の書込が行なわれる。一方これと並行して、登録読出ワード線ＲＷＬＢｂおよび検索読出ワード線ＲＷＬＡｂが並行して選択状態へ駆動され、メモリセルＭＣＢおよびＭＣＡｂの記憶データが読出され、一致／不一致判定が行なわれる。登録読出ワード線ＲＷＬＢｍに対応するエントリに格納される被検索データパターンについての検索動作が完了すると、メモリセルＭＣＡｂに格納される検索データについての検索が完了する。
【０２１７】
時刻Ｔ１１において、クロック信号ＣＬＫが立上がると、所定のタイミングで登録読出ワード線ＲＷＬＢ１および検索読出ワード線ＲＷＬＡａが選択状態へ駆動される。したがって、この時刻Ｔ１１から始まるサイクルにおいて、検索メモリセルＭＣＡａに格納される検索データについての検索動作が行なわれる。登録読出ワード線ＲＷＬＢ（ｍ−１）が選択状態へ駆動されると、次の時刻Ｔ１２において、次の検索データＡ１がクロック信号ＣＬＫの立上がりに同期して取り込まれる。
【０２１８】
この時刻Ｔ１２におけるクロック信号ＣＬＫの立上がりに応答して、所定のタイミングで、検索書込ワード線ＷＷＬＡｂが選択状態へ駆動され、検索メモリセルＭＣＡｂに対し、与えられた検索データＡ１が格納される。これと並行して、登録読出ワード線ＲＷＬＢｍおよび検索読出ワード線ＲＷＬＡａが選択状態へ駆動され、被検索パターン格納領域のエントリＥＲＹｍに格納される被検索データパターンと検索メモリセルＭＣＡａに格納される検索データについての一致／不一致判定が行なわれる。
【０２１９】
この時刻Ｔ１２から始まるサイクルが完了すると、検索メモリセルＭＣＡａに格納されるデータＡ０についての検索動作が完了する。
【０２２０】
時刻Ｔ１３からは、再び、クロック信号ＣＬＫの立上がりに従って、読出ワード線ＲＷＬＢ１およびＲＷＬＡｂが選択状態へ駆動され、検索メモリセルＭＣｂに格納される検索データＡ１についての検索動作が行なわれる。
【０２２１】
ここで、検索メモリセルおよびＭＣＡａおよびＭＣＡｂに格納される検索データについて、各サブブロックにおいてエントリＥＲＹ１からＥＲＹｍまで、クロック信号ＣＬＫの立上がりに同期して順次選択して検索動作が行なわれる。この検索動作自体は、実施の形態１の場合と同様である。
【０２２２】
したがって、外部からは、ｍクロックサイクル毎に新たな検索データＡが与えられてデータの書込が行なわれ、次のクロックサイクルから、この与えられる検索データについての検索動作が実行される。したがって、検索データについての検索動作と並行して新たな検索データの書込を行なうことができ、検索動作時間を短縮することができる。
【０２２３】
なお、実施の形態２において、この半導体信号処理装置のメモリアレイのブロック構成および各ローカルマッチ線の配置およびローカル一致判定回路および最終一致判定回路の配置は実施の形態１の場合と同じである。
【０２２４】
図２４は、各サブブロックに対して設けられるローカル行選択駆動回路の構成を概略的に示す図である。この図２４に示すローカル行選択駆動回路５０は、以下の点で、図２０に示すローカル行選択駆動回路の構成とその構成が異なる。すなわち、検索読出ワード線選択駆動回路９２は、２ビットの検索読出ワード線活性化信号ＲＷＬＡＥＮ＜１：０＞に従って検索読出ワード線ＲＷＬＡ１およびＲＷＬＡ２を選択状態へ駆動する。また、検索書込ワード線選択駆動回路９０は、２ビットの検索書込ワード線活性化信号ＷＷＬＡＥＮ＜１：０＞に従って検索書込ワード線ＷＷＬＡ１およびＷＷＬＡ２の一方を選択状態に駆動する。
【０２２５】
この図２４に示すローカル行選択駆動回路５０の他の構成は、図２４に示すローカル行選択駆動回路の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０２２６】
図２４に示すように、検索書込ワード線選択駆動回路９０および検索読出ワード線選択駆動回路９２に対し、それぞれ２ビットの活性化信号ＷＷＬＡＥＮ＜１：０＞およびＲＷＬＡＥＮ＜１：０＞を与えることにより、この検索書込ワード線ＷＷＬＡ１およびＷＷＬＡ２ならびに検索読出ワード線ＲＷＬＡ１およびＲＷＬＡ２を、選択的に交互に選択状態へ駆動することができる。
【０２２７】
図２５は、この発明の実施の形態２に従う半導体信号処理装置の制御回路の構成の一例を概略的に示す図である。この図２５に示す制御回路７０の構成は、以下の点で、図２１に示す制御回路７０とその構成が異なる。すなわち、アドレスカウンタ８０からのカウントアップ信号ＣＵＰに従ってその出力信号ＦＱの状態が変化するフリップフロップ（ＦＦ）１００が設けられる。このフリップフロップ１００の出力信号ＦＱが、検索書込ワード線活性化回路１０２に与えられる。検索書込ワード線活性化回路１０２は、コマンドデコーダ７１からの読出モード指示信号ＭＯＤＲの活性化時、フリップフロップ（ＦＦ）１００からの出力信号ＦＱの論理値に従って検索書込ワード線ＷＷＬＡＥＮ＜１：０＞のうちの１ビットの書込ワード線活性化信号ＷＷＬＡＥＮｉを選択状態へ駆動する。アドレスカウンタ８０のカウントアップ信号ＣＵＰが発行される毎に、検索書込ワード線活性化回路１０２は、読出モード指示信号ＭＯＤＲが与えられたときに検索書込ワード線活性化信号ＷＷＬＡＥＮ＜１：０＞の各ビットＷＷＬＡＥＮ＜１＞およびＷＷＬＡＥＮ＜０＞を交互に活性化する。
【０２２８】
検索読出ワード線活性化回路１０４は、読出モード指示信号ＭＯＤＲの活性化時、検索書込ワード線活性化信号ＷＷＬＡＥＮ＜１：０＞の活性化後の次のクロックサイクルから、各クロック信号ＣＬＫを基準として所定のタイミングで、対応の検索読出ワード線活性化信号ＲＷＬＡＥＮ＜１：０＞を活性状態へ各クロックサイクル毎に駆動する。これにより、検索データが書込まれたメモリセルから次のクロックサイクルからデータを読出して検索動作を実行することができる。また、ｍ検索動作サイクル毎に、検索読出ワード線ＲＷＬＡおよびＲＷＬＡＢを交互に選択状態に駆動することができる。
【０２２９】
なお、検索読出ワード線活性化回路１０４に対してフリップフロップ１００の出力信号ＦＱが１クロックサイクル遅延して与えられて、この信号ＦＱに従って、検索読出ワード線活性化信号ＲＷＬＡ＜０＞およびＲＷＬＡ＜１＞が選択的に活性化されてもよい。
【０２３０】
この図２５に示す制御回路７０の他の構成は、図２１に示す制御回路の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０２３１】
図２６は、図２５に示す検索書込ワード線活性化回路１０２および検索読出ワード線活性化回路１０４の構成をより具体的に示す図である。図２６において、検索書込ワード線活性化回路１０２は、第１検索書込ワード線活性化部１１０と、第２検索書込ワード線活性化部１１２とを含む。第１検索書込ワード線活性化部１１０は、読出モード指示信号ＭＯＤＲの活性化時、図２５に示すフリップフロップ（ＦＦ）１００からの信号ＦＱがたとえば“０”である第１の論理値のときにクロック信号ＣＬＫに従って、書込ワード線活性化信号ＷＷＬＡＥＮ＜０＞を活性化する。第２検索書込ワード線活性化部１１２は、読出モード指示信号ＭＯＤＲの活性化時、フリップフロップ（１００）の出力信号ＦＱがたとえば“１”である第２の論理値のときにクロック信号ＣＬＫに従って、検索書込ワード線活性化信号ＷＷＬＡＥＮ＜１＞を活性化する。この検索書込ワード線活性化信号ＷＷＬＡＥＮ＜０＞およびＷＷＬＡＥＮ＜１＞により、それぞれ、検索書込ワード線ＷＷＬＡ１およびＷＷＬＡ２が活性化される。
【０２３２】
検索読出ワード線活性化回路１０４は、検索読出ワード線活性化信号ＲＷＬＡＥＮ＜０＞を生成する第１の検索読出ワード線活性化部１１４と、検索読出ワード線活性化信号ＲＷＬＡＥＮ＜１＞を生成する第２検索読出ワード線活性化部１１６を含む。第１検索読出ワード線活性化部１１４は、読出モード指示信号ＭＯＤＲの活性化時、書込ワード線活性化信号ＷＷＬＡＥＮ＜０＞が活性化されると、次のクロックサイクルからクロック信号ＣＬＫに同期して、検索読出ワード線活性化信号ＲＷＬＡＥＮ＜０＞をｍサイクルにわたって活性化する。第２検索読出ワード線活性化部１１６は、読出モード指示信号ＭＯＤＲの活性化時、第２検索書込ワード線活性化部１１２からの検索書込ワード線活性化信号ＷＷＬＡＥＮ＜１＞が活性化されると、クロック信号ＣＬＫの次のクロックサイクルから、検索読出ワード線活性化信号ＲＷＬＡＥＮ＜１＞をｍクロックサイクルにわたって活性化する。
【０２３３】
なお図２６に示す構成においては、第１検索読出ワード線活性化部１１４および第２検索読出ワード線活性化部１１６に対し、図２５に示すフリップフロップ回路（１００）の出力信号ＦＱが与えられていない。しかしながら、第１検索読出ワード線活性化部１１４および第２検索読出ワード線活性化部１１６は、それぞれイネーブル時、フリップフロップの出力信号ＦＱに従って、アドレスカウンタ８０のカウント値がｍに到達するとカウントアップ信号ＣＵＰに従ってその検索読出ワード線活性化信号の活性化動作が停止されてもよい。この場合、内部で、ｍ回連続して対応の読出ワード線活性化信号を生成することができる。
【０２３４】
また、図２５に示す制御回路７０の構成において、登録読出ワード線活性化回路７５においても、読出モード指示信号ＭＯＤＲが与えられてから次のクロックサイクルからｍサイクルにわたって、登録読出ワード線活性化信号ＲＷＬＢＥＮを生成する。
【０２３５】
また、検索データＩＮＡの印加時、検索動作を示すコマンドＣＭＤを並行して与え、読出モード指示信号ＭＯＤＲを活性化する。この場合には、検索データＡの印加毎に読出モード指示信号ＭＯＤＲが活性化される。
【０２３６】
また、これに代えて、検索動作指示が与えられると、検索動作終了指示が与えられるまで、読出モード指示信号ＭＯＤＲが活性状態に維持されてもよい。
【０２３７】
コマンドデコーダ７１においてアドレスカウンタ８０のカウントアップ信号ＣＵＰが与えられているのは、１検索サイクル（ｍクロックサイクル）が終了すると、コマンドデコーダ７１が生成する読出モード指示信号ＭＯＤＲを一旦リセットするためである。読出モード指示信号ＭＯＤＲの活性化に従って検索書込ワード線活性化回路１０２および登録読出ワード線活性化回路７３およびダミー読出ワード線活性回路７８の活性化動作を起動する。
【０２３８】
なお、この検索データパターンを格納する検索パターン書込／読出領域において、検索ワード線ＲＷＬＡおよびＷＷＬＡが各々２本ずつ設けられている。しかしながら、この検索データパターンを格納する領域においては、さらに多く、たとえば４、８等の検索データ格納エントリ設けられ、順次検索データパターンが書込まれ、ＦＩＦＯ態様で検索データパターンの書込および読出が行なわれてもよい。
【０２３９】
この場合、単に図２５に示すフリップフロップ（ＦＦ）１００に代えて、カウンタを用い、このカウンタのカウント値に従って各検索データパターンを行なう回路の指定および検索データパターンの読出を行なうエントリの指定を行なうように構成すればよい。
【０２４０】
ＦＩＦＯ領域を拡張することにより、検索データパターンが高速で与えられる場合においても、正確に、この検索パターン書込／読出領域をＦＩＦＯ領域として利用して検索データパターンを待ち行列化して、検索動作を行なうことができ、高速の一致検出動作を実現することができる。
【０２４１】
以上のように、この発明の実施の形態２に従えば、検索パターン書込／読出領域に複数の検索エントリを設け、検索データを待ち行列化して検索動作を行っている。従って、検索サイクルを短縮することができ、高速の入力データパケットに対しても、正確に一致判定を行なうことができる。
【０２４２】
［実施の形態３］
図２７は、この発明の実施の形態３に従う半導体信号処理装置のサブブロックの構成を概略的に示す図である。図２７に示す構成においては、サブブロックＳＢ１、ＳＢ２、…に共通に、グローバル読出データ線ＧＲＤが各メモリセル列に対応して配置される。メモリセルとしては、実施の形態１に従うシングルポートＭＲＡＭセルが用いられてもよく、また、実施の形態２におけるデュアルポートＭＲＡＭセルが用いられてもよい。したがって、図２７においては、特にビット線については、明示していない。各メモリセル列に対応して複数のサブブロックＳＢ１、ＳＢ２…に共通にグローバル読出データ線ＧＲＤが配置される。
【０２４３】
サブブロックＳＢ１は、検索単位ＲＵＴ（１，１）−ＲＵＴ（１，２＾ｋ）に分割され、サブブロックＳＢ２は、検索単位ＲＵＴ（２，１）−ＲＵＴ（２，２＾ｋ）に分割される。各検索単位においては、列方向において、メモリセルＭＣＢＬおよびＭＣＡＬが整列して配置され、また、メモリセルＭＣＢＲおよびＭＣＡＲが列方向に整列して配置される。メモリセルＭＣＢＬおよびＭＣＡＬの列に対応してセンスアンプ回路ＳＡＫＬが配置され、メモリセルＭＣＢＲおよびＭＣＡＲの列に対応してセンスアンプ回路ＳＡＫＲが配置される。
【０２４４】
センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）の読出データ伝達経路をグローバル読出データ線ＧＲＤおよび対応のローカル読出データ線ＬＲＤの一方に設定するために、経路切換用のスイッチングトランジスタＴＸｉ１，ＴＸｉ２が、センスアンプ回路ＳＡＫ（ＳＡＫＬ、ＳＡＫＲ）に対応して配置される。ローカル読出データ線ＬＲＤは、対応して配置されるローカルマッチ線ＭＬ１−ＭＬ２＾ｋの対応のローカルマッチ線に選択的に結合される。
【０２４５】
図２７において、経路切換用のスイッチングトランジスタについては、サブブロックＳＢ１においては、スイッチングトランジスタＴＸ１１およびＴＸ１２が各センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）に対応して配置される。サブブロックＳＢ２においては、センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）各々に対応してスイッチングトランジスタＴＸ２１，ＴＸ２２が配置される。
【０２４６】
センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）の出力信号の転送経路を設定するためにサブブロックそれぞれに、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜１＞、ＭＯＤＴＣ＜２＞…およびメモリモード指示信号ＭＯＤＭＣ＜１＞、ＭＯＤＭＣ＜２＞、…が与えられる。サブブロックＳＢｉにおいては、モード指示信号ＭＯＤＴＣ＜ｉ＞およびＭＯＤＭＣ＜ｉ＞に従って、スイッチングトランジスタＴＸｉ１およびＴＣｉ２の一方がオン状態となる。サブブロックＳＢ１、ＳＢ２、…において、このモード指示信号ＭＯＤＴＣ＜１＞、ＭＯＤＭＣ＜１＞、ＭＯＤＴＣ＜２＞、ＭＯＤＭＣ＜２＞…を固定的に設定する。これにより、各サブブロックは、ＴＣＡＭモードで動作するか、またはメモリモードで動作する。ここで、ＴＣＡＭモードでの動作時においては、検索データと登録された被検索データパターンとの一致／不一致が識別される。メモリモードでの動作時においては、外部から与えられる検索データが格納されて次いで読出されてＴＣＡＭモードのサブブロックに並列に転送され、メモリモードのサブブロックにおいては、一致判定動作は行なわれない。
【０２４７】
したがって、メモリモードに指定されたサブブロックにおいては、センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）の出力信号（ローカル読出データ線上の信号）は対応のグローバル読出データ線ＧＲＤ上に伝達され、一方、ＴＣＡＭモードに指定されたサブブロックにおいては、センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）の出力信号（ローカルマッチ線上の信号）は、対応のローカルマッチ線ＭＬ１−ＭＬ２＾ｋ上に選択的に伝達される。
【０２４８】
検索単位各々に対応してローカルマッチ線ＭＬ１−ＭＬ２＾ｋが設けられており、検索単位ＲＵＴ（ｉ，ｊ）のセンスアンプ回路の出力は、ローカルマッチ線ＭＬｊに対応のスイッチングトランジスタＴＸｉ１を介して結合される。
【０２４９】
なお、検索単位ＲＵＴ（ｉ，ｊ）においては、被検索データパターン格納用エントリＥＲＹ１−ＥＲＹｍが設けられ、また、検索データ書込／読出領域ＲＲＲにおいては、メモリセルＭＣＡＬおよびＭＣＡＲが交互に行方向に整列して配置される。
【０２５０】
図２８は、この発明の実施の形態３に従う半導体信号処理装置の内部データ伝達経路を概略的に示す図である。図２８において、サブブロックＳＢ１−ＳＢｎに対し共通にデータパス１５０が設けられる。サブブロックＳＢ１−ＳＢｎの記憶単位列各々に対応してグローバル読出データ線ＧＲＤＬ、ＧＲＤＲが配設され、また、記憶単位列各々に対応して、グローバル書込データ線ＧＷＤＬ，ＧＷＤＲが配設される。
【０２５１】
サブブロックＳＢ１−ＳＢｎは、検索単位ＲＵＴの列ＲＵＴＣ１−ＲＵＴＣ２＾ｋに分割される。ここで、グローバル書込データ線ＧＷＤＬおよびグローバル読出データ線ＧＲＤＬは、左側ビット線（ＢＬＬ）に対応して配置され、グローバル書込データ線ＧＷＤＲおよびグローバル読出データ線ＧＲＤＲは、右側ビット線（ＢＬＲ）に対応して配置される。ただし、図２８においては、メモリセルは、上述のようにシングルポートＭＲＡＭセルおよびデュアルポートＭＲＡＭセルのいずれであってもよいため、ビット線は図面を簡略化するために使用していない。
【０２５２】
データパス１５０においては、入力データビットＩＮ＜０＞−ＩＮ＜２＾ｋ＞それぞれに対応して配置され、対応のデータビットを反転するインバータ１６０と、選択信号ＳＥＬＢに従って対応の入力データビットとインバータ１６０の出力信号の一方を選択するマルチプレクサ１６２が設けられる。この入力データビットＩＮ＜０＞−ＩＮ＜２＾ｋ＞は、それぞれ被検索データパターンＢのビットであるか、検索データパターンＡのビットであり、同じ入力端子を介して検索データパターンおよび被検索データパターンが与えられる。図２８においては、代表的に、ビットＩＮ＜０＞、ＩＮ＜Ｎ＞、およびＩＮ＜Ｓ＞に対するデータパスの構成を示す。ここで、各記憶単位に対するデータパスの構成は同じであり、各記憶単位に対応して配置されるデータパスの構成要素に対しては同一の参照番号を用いる。
【０２５３】
データパス１５０は、さらに、マルチプレクサ１６２の出力信号を反転するインバータ１６４と、グローバル読出データ線ＧＲＤＬに対応して配置されるデータ線アンプ１７０ｌと、グローバル読出データ線ＧＲＤＲに対応して設けられるデータ線アンプ１７０ｒと、選択信号ＳＥＬＡ＜１：０＞に従ってデータ線アンプ１７０ｌの出力信号とマルチプレクサ１６２の出力信号の一方を選択するマルチプレクサ１７０ｌと、データ線アンプ１７０ｒの出力信号とインバータ１６４の出力信号の一方を選択信号ＳＥＡＬ＜１：０＞に従って選択するマルチプレクサ１６６ｒと、マルチプレクサ１６６ｌおよび１６６ｒの出力信号をバッファ処理して対応のグローバル書込データ線ＧＷＤＬおよびＧＷＤＲに伝達するトライステートバッファ１６８ｌおよび１６８ｒを含む。
【０２５４】
このトライステートバッファ１６８ｌおよび１６８ｒは、検索単位列ＲＵＴＣ１−ＲＵＴＣ２＾ｋそれぞれに対応して設けられるマスク指示信号ＭＡＳＫ１−ＭＡＳＫ２＾ｋに従って選択的に出力ハイインピーダンス状態に設定される。これにより、各検索単位でデータ書込をマスクすることができる。このマスク信号ＭＡＳＫ１−ＭＡＳＫ２＾ｋを利用することにより、被検索データパターンのパターン長が、割当てられたエントリ内の領域のサイズ（ビット幅）よりも短い場合、初期状態のドントケア状態に対応の記憶単位を設定することができる。
【０２５５】
マルチプレクサ１６６ｌおよび１６６ｒが、ともに、対応のマルチプレクサ１６２の出力信号を選択することのできる状態に設定しているのは、初期化時において、メモリセルＭＣＢＲおよびＭＣＢＬに対し同じ論理値のデータ（“０”）を書込んで、対応のメモリセルをすべて高抵抗状態に設定し、“ドントケア”状態を実現するためである。マルチプレクサ１６６ｌおよび１６６ｒは、ともに３入力マルチプレクサと構成することにより、各検索単位列ＲＵＴＣ１−ＲＵＴＣ＾ｋにおいて、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲに対して同一構成のマルチプレクサを用いることができ、選択信号ＳＥＬＡ＜１：０＞による経路設定が容易となる。
【０２５６】
図２９は、１つのサブブロックにおけるビット線ＢＬに対するデータ書込ドライバの配置を概略的に示す図である。グローバル書込データ線ＧＷＤ（ＧＷＤＬ、ＧＷＤＲ）に対応して、各サブブロックにおいては、列方向の両側に、ビット線書込ドライバＷＤＶ１およびＷＤＶ２が設けられる。ビット線書込ドライバＷＤＶ２に対しては、インバータ１２２を介してグローバル書込データ線ＧＷＤ上のデータの反転データ／Ｄが与えられる。ビット線書込ドライバＷＤＶ１およびＷＤＶ２は、ブロック選択信号ＢＳに従って活性化され、対応のグローバル書込データ線ＧＷＤ上のデータに従ってビット線ＢＬに電流を流す。これにより、相補書込データを、グローバル書込データ線上をわたって伝達することなく、１つの書込データのみを伝達して、選択サブブロック内においてデータの書込を行なうことができる。
【０２５７】
なお、グローバル書込データ線ＧＷＤは、相補書込データを転送する相補書込データ線対で構成されてもよい。
【０２５８】
図３０は、サブブロックへの初期データ書込時のデータ転送経路を概略的に示す図である。初期データとしてデータ“０”がメモリセルＭＣＢＬおよびＭＣＢＲに書き込まれる。これにより、メモリセルＭＣＢＬおよびＭＣＢＲをともに高抵抗状態に設定して、記憶単位を「ドントケア」状態に設定する。ＦＩＦＯ領域においては、メモリセルＭＣＡＬおよびＭＣＡＲにデータ“１”が書込まれ、低抵抗状態に設定される。検索データがＦＩＦＯ領域のメモリセルＭＣＢＬおよびＭＣＢＲに格納され、格納された検索データがメモリセルＭＣＡＬおよびＭＣＢＲの格納データ“１”とのＡＮＤ演算により読出されてＴＣＡＭ領域に転送される。
【０２５９】
図３０を参照して、初期データの書込時においては、データパス１５０において、マルチプレクサ１６２が、選択信号ＳＥＬＢに従って入力データＩＮを選択する。一方、マルチプレクサ１６６ｌおよび１６６ｒは、選択信号ＳＥＬＡ＜１：０＞に従ってマルチプレクサ１６２の出力信号を選択する。したがって、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲには、それぞれ、入力データＩＮが伝達される。これにより、左側メモリセルＭＣＢＬおよび右側メモリセルＭＣＢＲにデータ“０”を格納することができ、ドントケア状態の実現することができる。また、この経路を利用することにより、ＦＩＦＯ領域に指定されたサブブロックのメモリセルＭＣＡＬおよびＭＣＡＲに対してデータ“１”を書込むことができる。
【０２６０】
図３１は、ＴＣＡＭモードに設定されたサブブロックへの被検索データパターンの書込時のデータ転送経路を概略的に示す図である。
【０２６１】
図３１を参照して、被検索データパターンのＴＣＡＭモードに設定されたサブブロック（ＴＣＡＭ領域）への被検索データ書込時においては、データパス１５０において、マルチプレクサ１６２が、選択信号ＳＥＬＢに従ってインバータ１６０の出力信号を選択する。一方、マルチプレクサ１６６ｌは、選択信号ＳＥＬＡ＜１：０＞に従ってマルチプレクサ１６２の出力信号を選択し、一方、マルチプレクサ１６６ｒは、インバータ１６４の出力信号を選択する。したがって、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲには、それぞれ、反転入力データ／ＩＮ（＝／Ｂ）および入力データＩＮ（＝Ｂ）が伝達される。これにより、左側メモリセルＭＣＢＬにデータ／Ｂを格納し、右側メモリセルＭＣＢＲにデータＢを格納することができ、被検索データパターンを登録することができる。
【０２６２】
なお、この被検索データパターンの書込時において空き領域をドントケア状態に設定する場合には、マスク信号ＭＡＳＫ１−ＭＡＳＫ２＾ｋを選択的に活性状態とし、トライステートバッファ１６８ｌおよび１６８ｒを出力ハイインピーダンス状態に設定する。
【０２６３】
また、検索データのＦＩＦＯ領域への書込については、後に説明する。
図３２は、ＦＩＦＯ領域からＴＣＡＭ領域へのデータ転送およびＦＩＦＯ領域へのデータ書込の経路を示す図である。ＦＩＦＯ領域からＴＣＡＭ領域への転送時においては、マルチプレクサ１６６ｌおよび１６６ｒは、選択信号ＳＥＬＡ＜１：０＞に従って対応のデータ線アンプ１７０ｌおよび１７０ｒの出力信号ＡＦおよび／ＡＦを選択して対応のグローバル書込データ線ＤＷＤＬおよびＤＷＤＲ上に転送する。これにより、ＦＩＦＯ領域（図３２においては一例としてサブブロックＳＢｎ）に格納された検索データパターンが、ＴＣＡＭ領域の各サブブロック上に伝達されて検索動作が行なわれる。
【０２６４】
ＦＩＦＯ領域への検索データパターンの書込時においては、マルチプレクサ１６２は、選択信号ＳＥＬＢに従って外部からの入力信号ＩＮ（＝Ａ）を選択する。マルチプレクサ１６６ｌは、選択信号ＳＥＬＡ＜１：０＞に従ってマルチプレクサ１６２の出力信号を選択し、一方、マルチプレクサ１６６ｒは、インバータ１６４の出力信号を選択する。これにより、トライステートバッファ１６８ｌおよび１６８ｒを介してグローバル書込データ線ＧＷＤＬには、入力データＩＮ（＝Ａ）が転送され、グローバル書込データ線ＧＷＤＲには、反転入力データ／ＩＮ（＝／Ａ）が転送されて、メモリセルＭＣＢＬおよびＭＣＢＲにそれぞれ格納される。
【０２６５】
このＦＩＦＯ領域からＴＣＡＭ領域へのデータ転送とＦＩＦＯ領域への検索データパターンの書込は、同じグローバル書込データ線ＧＷＤＬおよびＧＷＤＲを介して実行される。したがって、このＦＩＦＯ領域からＴＣＡＭ領域へのデータ転送とＦＩＦＯ領域へのデータ書込は、時分割的に実行される。この場合、後に説明するように、ＴＣＡＭ領域における検索動作と並行して検索データのＦＩＦＯ領域への書込が実行される。ＴＣＡＭ領域にいては、検索動作時においてはデータの書込は行われていないため、検索データのＴＣＡＭ領域への転送およびメモリセルＭＣＡへの書込後においては、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲを介してＦＩＦＯ領域に対する書込データ（検索データ）を転送して、書込を行うことができる。
【０２６６】
図３３は、この発明の実施の形態３に従う半導体信号処理装置のメモリセルアレイの構成を概略的に示す図である。図３３において、メモリセルアレイは複数のサブアレイブロックＳＢＡ１−ＳＢＡｎに分割される。これらのサブアレイブロックＳＢＡ１−ＳＢＡｎは、それぞれ対応のマッチ線群ＭＬＧとともにサブブロックＳＢ１−ＳＢｎを形成する。
【０２６７】
サブアレイブロックＳＢＡ１−ＳＢＡｎは、それぞれエントリＥＲＹ１−ＥＲＹｍを有する被検索パターン格納領域ＰＲＲと、メモリセルＭＣＡが配置される検索パターン書込／読出領域ＲＲＲと、センスアンプ回路ＳＡＫが配置されるセンスアンプ帯ＳＡＫＢと、スイッチングトランジスタＴＸｉ１およびＴＸｉ２が各センスアンプ回路に対応して配置される経路切換回路帯ＴＸＧＢを有する。図３３においては、サブアレイブロックＳＢＡ２による内部構成を代表的に示す。被検索データパターン格納領域ＰＲＲにおいて、エントリＥＲＹ１−ＥＲＹｍが設けられる。
【０２６８】
サブアレイブロックＳＢＡ１−ＳＢＡｎに対応して配置されるローカルマッチ線群ＭＬＧに対し、マッチ線アンプＡＭＰを含むローカル一致判定回路ＬＭＤ１−ＬＭＤｎが設けられる。
【０２６９】
サブアレイブロックＳＢＡ１−ＳＢＡＫが、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜１：Ｋ＞に従ってＴＣＡＭモードで動作するＴＣＡＭ領域に設定される。このＴＣＡＭ領域においては、メモリモード指示信号ＭＯＤＭＣ＜１：Ｋ＞は、Ｌレベルに設定され、対応のスイッチングトランジスタＴＸｉ１はオフ状態に維持される。ＴＣＡＭ領域においては、スイッチングトランジスタＴＸｉ１がオン状態であり、各センスアンプ回路の出力信号がローカル読出データ線を介して対応のローカルマッチ線上に伝達される。
【０２７０】
サブアレイブロックＳＢＡ（Ｋ＋１）−ＳＢＡｎが検索データを待ち行列化するＦＩＦＯ領域に割当てられる。この場合、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜Ｋ＋１：ｎ＞がＬレベルに設定されて対応のスイッチングトランジスタＴＸｉ２がオフ状態に設定される。一方、メモリモード指示信号ＭＯＤＭＣ＜Ｋ＋１：ｎ＞がＨレベルに維持される。これにより、ＦＩＦＯ領域においては、スイッチングトランジスタＴＸｉ２により、対応のセンスアンプ回路の出力信号がグローバル読出データ線ＧＲＤ上に伝達される。
【０２７１】
図３３に示すように、一例として、サブアレイブロックＳＢＡｎのエントリＥＲＹｍに格納されるデータが、並行してマルチプレクサ１６６ｌおよび１６６ｒを介してＴＣＡＭ領域のメモリセルＭＣＡＬおよびＭＣＡＲに伝達される。これにより、ＦＩＦＯ領域に格納されたデータＡおよび／ＡがそれぞれＴＣＡＭ領域のサブアレイブロックＳＢＡ１−ＳＢＡＫの検索パターン書込／読出領域ＲＲＲに配置されるメモリセルＭＣＡＬおよびＭＣＡＲに書込まれる。
【０２７２】
図３４は、ＦＩＦＯ領域のデータアクセスシーケンスの一具体例を概略的に示す図である。図３４においては、ＦＩＦＯ領域は、４つのサブブロックＳＢａ−ＳＢｄで構成される。サブブロックＳＢａ−ＳＢｄは、各々、検索データ格納領域としてにｍ個のエントリＥＲＹ１−ＥＲＹｍを含む。サブブロックＳＢａにおいては、エントリＥＲＹ１が検索動作完了によりアクセスされ空（empty）状態である。残りのエントリＥＲＹ２−ＥＲＹｍは、未検索データ（Ａ，／Ａ）が格納される。
【０２７３】
サブブロックＳＢｂにおいては、全エントリＥＲＹ１−ＥＲＹｍに、それぞれ互いに異なる未検索データ（Ａ，／Ａ）が格納される。
【０２７４】
サブブロックＳＢｃにおいては、エントリＥＲＹ１−ＥＲＹ（ｍ−１）に未検索データ（Ａ，／Ａ）が格納され、エントリＥＲＹｍは、未書込状態であり、空（empty）状態である。サブブロックＳＢｄは、未書込状態であり、エントリＥＲＹ１−ＥＲＹｍは、空（empty）状態である。
【０２７５】
これらのサブブロックＳＢａ−ＳＢｄに対する全体の書込／読出のワード線を指定するために、読出ポインタ１８０、書込ポインタ１８２およびポインタ制御論理１８４が設けられる。読出ポインタ１８０は、これらのサブブロックＳＢａ−ＳＢｄに含まれる読出ワード線ＲＷＤＢを指定するポインタを生成する。ここで、メモリセルＭＣＡは、ＦＩＦＯ領域においては、検索データパターンを格納するためには用いられない。メモリセルＭＣＡＬおよびＭＣＡＲは、高抵抗状態Ｈ（Ｒｍａｘ）に設定される。
【０２７６】
ＦＩＦＯ領域においては検索データがメモリセルＭＣＢに格納され、被検索データは格納されない。従って、ＦＩＦＯ領域においては、ワード線ＷＷＬＢおよびＲＷＬＢに対しては、登録書込ワード線および登録読出ワード線の名称を用いず単に書込ワード線および読出ワード線と称す。検索ワード線についても同様である。
【０２７７】
エントリＥＲＹ１−ＥＲＹｍのメモリセルＭＣＢ（ＭＣＢＬ、ＭＣＢＲ）に対して検索データパターンの書込が行なわれる。書込ポインタ１８２は、書込ワード線ＷＷＬＢを指定するポインタを生成する。
【０２７８】
ポインタ制御論理１８４は、読出ポインタ１８０が生成する読出ポインタおよび書込ポインタ１８２が生成するポインタを検出し、この読出ポインタが書込ポインタに追いついたときにアンダーフローが発生する可能性があり、このアンダーフロー指示を生成し、検索動作が、この時点で中断する。また、ポインタ制御論理１８４は、書込ポインタ１８２が指定するポインタが読出ポインタ１８０が生成する読出ポインタに追いついた場合、オーバーフローが生じ、被検索パターンの書換が生じる可能性があるため、オーバーフロー指示を生成し、外部からの検索データパターン入力を中断する。ＦＩＦＯ領域における検索データパターンのオーバーフローおよびアンダーフローを、ポインタ制御論理１８４により防止する。
【０２７９】
これらのポインタ１８０および１８２のポインタのビット幅は、ＦＩＦＯ領域のＦＩＦＯ深さにより決定される。このＦＩＦＯ深さは、ＦＩＦＯ領域に格納される検索データパターンの数、すなわち、待ち合わせ行列化される検索データパターンの数に相当する。このＦＩＦＯ深さの決定においては、以下の点が考慮されればよい。すなわち、先に実施の形態１において説明したように、入力シフトレジスタ回路により、データパケットが順次シフトインされて各入力シフトレジスタ回路からの並列出力データが、ＦＩＦＯ領域への一時格納のために検索データパターンとして書込まれる。この場合、最小データパターン長（たとえばＬ／８）とデータパケットの転送レート（たとえばＧビット／秒）とＴＣＡＭ領域およびＦＩＦＯ領域のアクセス時間との関係から、適宜ＦＩＦＯの段数が定められればよい。１つのデータパターンについてｍ個のエントリに対し順次検索動作が行なわれるため、メモリセルアレイのアクセス時間のｍ倍の時間とデータパケット転送レートとに応じてＦＩＦＯ深さが定められればよい。
【０２８０】
［検索動作シーケンス１］
図３５は、この発明の実施の形態３に従う半導体信号処理装置の検索動作シーケンスを示すタイミング図である。以下、図３５を参照して、この発明の実施の形態３に従う半導体信号処理装置の検索動作シーケンスについて説明する。ここで、図３３に示すように、メモリマットにおいて、サブブロックＳＢ１−ＳＢＫがＴＣＡＭ領域として利用され、サブブロックＳＢ（Ｋ＋１）−ＳＢｎがＦＩＦＯ領域として利用される。
【０２８１】
時刻Ｔ２０から、外部からの入力データパケットＩＮＡが、クロック信号ＣＬＫの立上がりに同期して順次装置内部に取込まれる。時刻Ｔ２０から始まるサイクルにおいて、各クロックサイクルにおいて、ＦＩＦＯ領域においては、書込ワード線ＷＷＬＢが、その先頭アドレスＦ１から順次選択されて取込まれた検索データが格納される。
【０２８２】
ここで、ＦＩＦＯ領域においては、メモリセルＭＣＡＬおよびＭＣＡＲは、ともに低抵抗状態に設定されている。ＦＩＦＯ領域においては、メモリセルＭＣＢに検索データが格納されて読出されて次いでＴＣＡＭ領域へ転送されるためである。メモリセルＭＣＡおよびＭＣＢがともに低抵抗状態のときにセンスアンプ回路（ＳＡＫ）から大きな電流が供給され、メモリセルＭＣＡが低抵抗状態かつメモリセルＭＣＢが高抵抗状態の時にはセンスアンプ回路（ＳＡＫ）からはほとんど電流は供給されない。従って、センスアンプ回路の出力電流の大小を、“１”（低抵抗状態および）データ“０”（高抵抗状態）にそれぞれ対応付けることにより、メモリセルＭＣＡに格納された検索データを読出してＴＣＡＭ領域へ転送することができる。
【０２８３】
時刻Ｔ２１において、クロック信号ＣＬＫに同期して次の入力データ（検索データ）Ａ２が転送され、ＦＩＦＯ領域において次のアドレスＦ２の書込ワード線ＷＷＬＢを選択状態へ駆動して、この転送されたデータＡ２を選択エントリのメモリセルＭＣＢに書込む。
【０２８４】
図３５には明確に示していないが、時刻Ｔ２２の前のサイクルにおいて、ＦＩＦＯ領域の先頭サブブロック（ＳＢ（Ｋ＋１））の最後のエントリＥＲＹｍを指定するアドレスＦｍに対するデータの書込が行なわれる。
【０２８５】
時刻Ｔ２２において、（ｍ＋１）番目の入力データＡ（ｍ＋１）が転送される。次の書込ワード線アドレスＦ（ｍ＋１）は、ＦＩＦＯ領域における次のサブブロック（ＳＢ（Ｋ＋２））である。したがって、このとき、ＦＩＦＯワード線アドレスＦ１を介して、読出ワード線ＲＷＬＢを選択状態へ駆動する。また、並行して読出ワード線ＲＷＬＡを選択状態に駆動する。
【０２８６】
この時刻Ｔ２２において、ＴＣＡＭ領域において検索書込ワード線ＷＷＬＡを選択状態に駆動し、このアドレスＦ１に格納された検索データパターンを、ＴＣＡＭ領域の各サブブロックの検索書込ワード線ＷＷＬＡに接続されるメモリセルＭＣＡへ書込む。これにより、ＴＣＡＭ領域における各サブブロックにおいて検索データパターンが検索データ格納領域ＲＲＲに格納される。
【０２８７】
このとき、アドレスＦ（ｍ＋１）とアドレスＦ１は、別のサブブロックを指定する。したがって、シングルポートＭＲＡＭセルを利用する場合およびデュアルポートＭＲＡＭセルを利用する場合のいずれにおいても、検索データの書込および読出が、別々のサブブロックにおいて実行されるため、書込データおよび読出データのビット線上での衝突は生じない。
【０２８８】
次の時刻Ｔ２３において、入力データＩＮＡとしてデータＡｍ＋２が与えられると、ＴＣＡＭ領域において、検索動作が開始される。すなわち、読出ワード線ＲＷＬＡおよびＲＷＬＢが、ＴＣＡＭ領域の各サブブロック領域において選択状態へ駆動され、各エントリＥＲＹ１−ＥＲＹｍに格納される被検索データパターンと転送されたデータＡ１との一致／不一致判定が、ＴＣＡＭエントリアドレスに従って、順次実行される。
【０２８９】
時刻Ｔ２４において、ＴＣＡＭ領域においては、エントリｍの読出ワード線ＲＷＬＡおよびＲＷＬＢが並行して選択されてデータの一致判定が行なわれる。このとき、入力データＩＮＡとして検索データＡ（２ｍ＋１）が与えられ、ＦＩＦＯ領域においては、アドレスＦ（２ｍ＋１）の書込ワード線ＷＷＬＢが選択状態へ駆動され、検索データＡ（２ｍ＋１）が、アドレスＦ（２ｍ＋１）のメモリセル（ＭＣＢ）に格納される。このとき、ＦＩＦＯ領域において、アドレスＦ２の読出ワード線ＲＷＬＢを選択状態へ駆動し、アドレスＦ２に格納される検索データパターンの読出を行なう。
【０２９０】
この時刻Ｔ２４においては、ＴＣＡＭ領域においては、読出ワード線ＲＷＬＡおよびＲＷＬＢが最後のエントリＥＲＹｍに対して選択状態へ駆動されている。しかしながら、ＴＣＡＭ領域とＦＩＦＯ領域とは、読出データの転送経路は異なっており、読出データの衝突は生じない。また、ＦＩＦＯアドレスＦ２およびＦ（２ｍ＋１）も、ＦＩＦＯ領域内の別のサブブロックを指定しており、検索データの書込および読出を並行して実行しても、ビット線上での書込および読出データの衝突は生じない。
【０２９１】
この時刻Ｔ２４のサイクルにおいて、ＴＣＡＭ領域において読出ワード線ＲＷＬＡおよびＲＷＬＢが非選択状態へ駆動されると、各サブブロックにおいて検索書込ワード線ＷＷＬＡを選択状態へ駆動し、、ＦＩＦＯ領域のアドレスＦ２から読出されたデータが、ＴＣＡＭ領域の各サブブロックの検索データ格納領域（ＲＲＲ）のメモリセルＭＣＡに格納される。
【０２９２】
時刻Ｔ２５において、外部からの入力データＩＮＡとして検索データＡ（２ｍ＋２）が与えられると、ＦＩＦＯ領域において、アドレスＦ（２ｍ＋２）の書込ワード線ＷＷＬＢが選択状態へ駆動される。この時刻Ｔ２５から始まるサイクルにおいては、再び、ＴＣＡＭ領域においては、エントリアドレス１に復帰し、ＴＣＡＭ領域の各サブブロックにおいて並行して、ＦＩＦＯ領域のアドレスＦ２から転送された検索データパターンと被検索データパターンとの一致／不一致判定が、各エントリ毎に順次実行される。
【０２９３】
図３５に示すように、ＦＩＦＯ領域において１つのサブブロックのエントリＥＲＹ１−ＥＲＹｍに検索データパターンが格納された後、次のサブブロックに新たな検索データパターンが格納されるときに、ＦＩＦＯ領域の最初のサブブロックから、検索データパターンを順次読出す。ＴＣＡＭ領域においては、各エントリ毎に検索動作が行なわれるため、ｍサイクル毎に、ＦＩＦＯ領域において読出ワード線ＲＷＬＢを順次アドレスをインクリメントして選択状態に駆動して、データの読出を行なう。これにより、検索データの書込および読出時のデータの衝突を生じることなく、連続的に検索動作を実行することができる。なお、ＦＩＦＯアドレスＦｉは、サブブロックを指定するブロックアドレスおよびサブブロック内のエントリを指定するアドレスを含み、１つのサブブロック内において全エントリが選択された後に、ブロックアドレスがインクリメントされてＦＩＦＯ領域の次のサブブロックが指定される。
【０２９４】
なお、上述の説明においては、ＦＩＦＯ領域においては複数のサブブロックが設けられ、１つのサブブロックのすべてのエントリに被検索データパターンが格納されて次のサブブロックに対し新たな検索データパターンが格納されるときに、最初のサブブロックから検索データパターンを読出している。しかしながら、デュアルポートＭＲＡＭセルを利用する場合、ＦＩＦＯ領域の同じサブブロックにおいて検索データパターンの書込および読出が並行して行なわれてもよい。デュアルポートＭＲＡＭセルを利用する場合、同じサブブロック内においても、異なる行であれば、書込データおよび読出データの衝突は生じないためである。
【０２９５】
なお、１クロックサイクル内においてデータの書込および読出とを時分割的に実行することができる場合には、シングルポートＭＲＡＭセルを用いても、ＦＩＦＯ領域の同一サブブロック内において検索データの書込および読出を１クロックサイクル内において実行することができる。但し、この場合、実施の形態１と同様、待ち行列化された検索パターンを読出した次のクロックサイクルにおいてＴＣＡＭ領域へのデータの書込を行ない、次のクロックサイクルから検索動作を実行する必要がある。被検索データおよび検索データは、同じグローバル書込データ線を介して転送されるためである。
【０２９６】
図３６から図３８は、この発明の実施の形態３に従う半導体信号処理装置の検索動作時におけるデータ転送経路を概略的に示す図である。これらの図３６から図３８においては、ＴＣＡＭ領域においてサブブロックＳＢｉが配置され、ＦＩＦＯ領域にサブブロックＳＢｊが配置される場合の転送動作を一例として示す。
【０２９７】
図３６に示すように、ＴＣＡＭ領域のサブブロックＳＢｉにおいては、読出ワード線ＲＷＬＢおよびＲＷＬＡが並行して選択され、メモリセルＭＣＢおよびＭＣＡの記憶データに応じた電流が対応のローカルマッチ線群ＭＬＧの対応のローカルマッチ線（明確に示さず）に供給される。一方、このクロックサイクルにおいて、ＦＩＦＯ領域のサブブロックＳＢｊにおいては、グローバル書込データ線ＧＷＤを介して検索データＡｉが伝達され、書込ワード線ＷＷＬＢを選択状態へ駆動して、メモリセルＭＣＢに、転送された検索データパターンＡｉが書込まれる。
【０２９８】
次に、図３７に示すように、ＴＣＡＭ領域のサブブロックＳＢｉにおいて、読出ワード線ＲＷＬＢおよびＲＷＬＡを並行して選択して、センスアンプ回路を介して、メモリセルＭＣＢおよびＭＣＡの記憶データに応じた電流を、ローカルマッチ線群ＭＬＧの各対応のローカルマッチ線に供給する。ＦＩＦＯ領域のサブブロックＳＢｊにおいては、読出ワード線ＲＷＬＢおよびＲＷＬＡを選択状態へ駆動する。メモリセルＭＣＡはデータ“１”を格納しており、従って、メモリセルＭＣＢの記憶するデータが、グローバル読出データ線ＧＲＤ上に読出される。
【０２９９】
図３８に示すように、次のサイクルにおいて、データパスを介してグローバル読出データ線ＧＲＤ上のデータがグローバル書込データ線ＧＷＤ上に伝達される。これにより、サブブロックＳＢｊにおいてメモリセルＭＣＢに記憶されたデータがグローバル書込データ線ＧＷＤ上に伝達される。ＴＣＡＭ領域のサブブロックＳＢｉにおいては、検索書込ワード線ＷＷＬＡを選択状態へ駆動し、メモリセルＭＣＡに、グローバル書込データ線ＧＷＤを介して伝達されたデータが書込まれる。これにより、新たな検索データパターンがサブブロックＳＢｉにセットされる。
【０３００】
以上のように、検索動作サイクルにおいて、並行して、外部からの検索データパターンをＦＩＦＯ領域に格納して、ＦＩＦＯ領域からＴＣＡＭ領域に１データパターンについて検索官僚後に新たな検索データパターンを転送する。これにより、高速のデータパケットが転送される場合においても、検索データパターンの待ち合わせ時間をＴＣＡＭ領域における検索動作サイクルで隠すことができ、より高速の検索動作処理を実現することができる。
【０３０１】
図３９は、この発明の実施の形態３に従う半導体信号処理装置の各サブブロックに対応して配置されるローカル行選択駆動回路の構成を概略的に示す図である。図３９において、ローカル行選択駆動回路５０は、以下の点で、図２０に示すローカル行選択駆動回路の構成とその構成が異なる。すなわち、登録書込ワード線選択駆動回路５１および登録読出ワード線選択駆動回路５２の前段に、マルチプレクサ（ＭＵＸ）１９０および１９２がそれぞれ設けられる。マルチプレクサ１９０は、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞に従って、ブロック選択信号ＢＳおよびワード線アドレス信号ＡＤの組と、書込ポインタからのポインタ書込ブロック選択信号ＰＷＢＳおよびポインタ書込ワード線アドレス信号ＰＷＡＤの組のいずれかを選択して、登録書込ワード線選択駆動回路５１へブロック選択信号および書込ワード線アドレス信号として与える。
【０３０２】
マルチプレクサ１９２は、同様、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞に従って、ビット“１”およびワード線アドレス信号ＡＤの組と読出ポインタからのポインタブロック選択信号ＰＲＢＳおよびポインタ読出ワード線アドレス信号ＰＲＡＤの組のいずれかを選択して、ブロック選択信号およびワード線アドレス信号として登録読出ワード線選択駆動回路５２へ与える。このマルチプレクサ１９２へ与えられるビット“１”は、ブロック選択信号ＢＳとして利用される。したがって、登録読出ワード線選択駆動回路５２は、このブロック選択信号が対応のサブブロックを指定しているときに、ワード線アドレス信号に従って対応の登録読出ワード線ＲＷＬＢを選択状態へ駆動する。
【０３０３】
また、検索読出ワード線選択駆動回路５４前段に、マルチプレクサ１９４が設けられる。マルチプレクサ１９４は、モード属性指示信号ＭＯＤＦＴ＜ｉ＞に従って、ポインタ読出選択信号ＰＲＢＳとビット“１”の一方を選択して、選択サブブロックを指定するブロック選択信号として検索読出ワード線選択駆動回路５４へ与える。
【０３０４】
図３９に示すローカル行選択駆動回路５０の他の構成は、図２０に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０３０５】
ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞が対応のサブブロック（ＳＢｉ）をＦＩＦＯ領域として指定している場合には、マルチプレクサ１９０は、書込ポインタからのポインタ書込ブロック選択信号ＰＷＢＳおよびポインタ書込ワード線アドレス信号ＰＷＡＤを選択する。一方、対応のサブブロックがＴＣＡＭ領域として指定されている場合には、マルチプレクサ１９０は、アドレスカウンタからのカウンタアドレス信号に従って生成されるブロック選択信号ＢＳおよびワード線アドレス信号ＡＤを選択する。
【０３０６】
マルチプレクサ１９２は、対応のサブブロックがＦＩＦＯ領域として指定される場合には、読出ポインタからのポインタ読出ブロック選択信号ＰＲＢＳおよびポインタ読出ワード線アドレス信号ＰＲＡＤを選択し、対応のサブブロックがＴＣＡＭ領域に指定される場合には、ビット“１”とワード線アドレス信号ＡＤを選択する。
【０３０７】
これにより、サブブロックＳＢｉにおいて、ＦＩＦＯ領域として指定された場合には、メモリセルＭＣＢに検索データパターンを待ち行列化して格納することができ、また、ＴＣＡＭ領域として指定された場合には、メモリセルＭＣＢに被検索データパターンの格納および被検索データパターンの読出を行なうことができる。また、ＴＣＡＭ領域においては、検索書込ワード線選択駆動回路５３により検索書込ワード線ＷＷＬＡ１を選択して、検索データをメモリセルＭＣＡに書込むことができる。
【０３０８】
検索読出ワード線選択駆動回路５４の前段に設けられたマルチプレクサ（ＭＵＸ）１９４は、対応のサブブロック（ＳＢｉ）が、ＦＩＦＯ領域に指定されている場合には、検索読出ワード線ＲＷＬＡ１を、選択サブブロックにおいて選択状態に駆動し、ＴＣＡＭ領域として指定される場合には、検索動作時に、各サブブロックにおいて読出ワード線ＲＷＬＢと並行して検索読出ワード線ＲＷＬＡ１を選択状態へ駆動する構成を実現するために設けられる。
【０３０９】
すなわち、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞が対応のサブブロックがＦＩＦＯ領域であることを指定するときには、マルチプレクサ１９４は、読出ポインタからのポインタ読出ブロック選択信号ＰＲＢＳを選択し、ＴＣＡＭ領域を指定する場合には、ビット“１”を選択する。ビット“１”の選択時には、検索読出ワード線選択駆動回路５４は、検索読出ワード線活性化信号ＲＷＬＡＥＮに従って、検索読出ワード線ＲＷＬＡ１を選択状態に駆動する。ＦＩＦＯ領域に指定される場合には、読出ポインタが指定するサブブロックにおいて、検索読出ワード線活性化信号ＲＷＬＡＥＮに従って、対応の検索読出ワード線ＲＷＬＡ１が選択状態に駆動される。
【０３１０】
検索メモリセルＭＣＡに対するデータの読出を行ってメモリセルＭＣＡが正常であるかの判定を行なうモードを実現する場合には、テストモード指示に従ってブロック選択信号ＢＳおよびポインタ読出ブロック選択信号ＰＲＢＳの一方を選択するマルチプレクサを、さらにマルチプレクサ１９４の前段に設ける。
【０３１１】
図４０は、この発明の実施の形態３に従う半導体信号処理装置の制御回路７０の構成を概略的に示す図である。この図４０に示す制御回路は、以下の点で、図２１に示す実施の形態１に従う制御回路とその構成が異なる。すなわち、コマンドデコーダ２００に対しては、アドレスカウンタ８０からのカウントアップ信号ＣＵＰは与えられない。コマンドデコーダ２００は、各動作モード指示信号を、コマンドＣＭＤをクロック信号ＣＬＫに同期して取込んで生成する。この制御回路７０においては、ブロック属性設定回路１９８が設けられ、各サブブロックに対する属性指示信号ＭＯＤＦＴ＜ｎ：１＞、ＭＯＤＴＣ＜ｎ：１＞およびＭＯＤＭＣ＜ｎ：１＞を生成する。ブロック属性指示信号ＭＯＤＦＴ＜ｎ：１＞は、図３９に示すマルチプレクサ１９０、１９２、および１９４へ与えられ、アドレス信号を、ポインタアドレスおよびアドレスカウンタからのカウンタアドレスの一方に設定する。モード指示信号ＭＯＤＴＣ＜ｎ：１＞およびＭＯＤＭＣ＜ｎ：１＞は、センスアンプ回路の出力信号を転送する経路を設定するスイッチング回路（ＴＸ）のオン／オフ状態を設定する。ブロック属性設定回路１９８は、ヒューズプログラム回路で構成され、ヒューズのプログラム（溶断／非溶断）により、各サブブロックの属性およびモードが設定されてもよい。また、これに代えて、ブロック属性設定回路１９８は、レジスタ回路で構成され、電源投入などの初期化時に、コマンドデコーダ２００からの動作モード指示（初期化指示）に従って、外部から属性／モード指示データがこのレジスタ回路に転送されて格納されてもよい。
【０３１２】
また、図２１に示す書込経路設定回路７２に相当する書込経路設定回路１９９は、コマンドデコーダからのモード指示信号ＭＯＤに従って、選択信号ＳＥＬＢおよびＳＥＬＡ＜１：０＞を生成し、データパスのデータ転送経路を設定する。
【０３１３】
登録書込ワード線活性化回路２０２は、図２１に示す登録書込ワード線活性化回路７３に相当し、コマンドデコーダ２００からの書込モード指示信号ＭＯＤＷおよび検索モード指示信号ＭＯＤＲに従って登録書込ワード線活性化信号ＷＷＬＢＥＮを生成する。登録書込ワード線活性化回路２０２において、書込モードおよび検索モードいずれにおいても登録書込ワード線活性化信号ＷＷＬＢＥＮを活性化することにより、検索モード時においてＦＩＦＯ領域に検索データパターンを書込み、また、被検索データ書込時において、ＴＣＡＭ領域に被検索データパターンを書込むことができる。
【０３１４】
検索書込ワード線活性化回路２０４は、図２１に示す検索書込ワード線活性化回路７４に対応し、ポインタ制御論理８４からのポインタ指示信号に従って検索書込ワード線活性化信号ＷＷＬＡＥＮを活性化する。このポインタ制御論理１８４は、読出ポインタ１８０および書込ポインタ１８２の生成するポインタをモニタし、検索モードを指定する読出モード指示信号ＭＯＤＲの活性化時、この書込ポインタ１８２からのポインタが所定値に到達するかまたはアドレスカウンタ８０からのカウントアップ信号ＣＵＰが与えられるときに、検索書込ワード線活性化回路２０４に指示を与えて検索書込ワード線活性化信号ＷＷＬＡＥＮを活性化させる。これにより、検索モード時、所定数の検索データパターンがＦＩＦＯ領域に格納されたときまたは検索モード時においてＴＣＡＭ領域のエントリＥＲＹ１−ＥＲＹｍの検索動作完了時において、検索書込ワード線活性化信号ＷＷＬＡＥＮを活性化し、ＦＩＦＯ領域に格納された次の検索データパターンをＴＣＡＭ領域のメモリセルＭＣＡに転送して書込むことができる。
【０３１５】
登録読出ワード線活性化回路２０６は、図２１に示す登録読出ワード線活性化回路７５に対応し、ポインタ制御論理１８４からの制御信号に従って検索モード時において登録読出ワード線活性化信号ＲＷＬＢＥＮを活性化する。この場合、ポインタ制御論理１８４は、書込ポインタ１８２の生成するポインタが所定値に到達したときに、登録読出ワード線活性化回路２０６に登録読出ワード線活性化信号ＲＷＬＢＥＮを活性化させる。これにより、ＦＩＦＯ領域の格納データがＴＣＡＭ領域のメモリセルＭＣＡに転送されて格納された後に、ＴＣＡＭ領域において転送データについての検索動作を次のサイクルから開始指示することができる。
【０３１６】
検索読出ワード線活性化回路２０８は、図２１に示す検索読出ワード線活性化回路７６に対応し、検索書込ワード線活性化信号ＷＷＬＡＥＮと登録読出ワード線活性化回路２０６の制御の下に、検索読出ワード線活性化信号ＲＷＬＡＥＮを活性化する。これにより、検索モード時において、検索書込ワード線活性化信号ＷＷＬＡＥＮが活性化された後（検索データパターンが検索メモリセルＭＣＡに書き込まれた後）に、検索読出ワード線活性化信号ＲＷＬＡＥＮを、登録読出ワード線活性化信号ＲＷＬＢＥＮと同期して活性化して検索動作を実行することができる。
【０３１７】
ダミー読出ワード線活性化回路２１０は、図２１に示すダミー読出ワード線活性化回路７８に対応し、ポインタ制御論理１８４の出力信号と検索モードを指示する読出モード指示信号ＭＯＤＲに従って、かつ読出ワード線活性化信号ＲＷＬＢＥＮおよびＲＷＬＡＥＮの活性化に同期してダミー読出ワード線活性化信号ＤＲＷＬＥＮを活性化する。これにより、通常の検索モードのみにかかわらず、ＦＩＦＯ領域からＴＣＡＭ領域へのデータ転送時ＦＩＦＯ領域においてダミー読出ワード線を選択状態へ駆動するとともに、ＴＣＡＭ領域における各検索サイクル時において、ダミー読出ワード線活性化信号ＤＲＷＬＥＮを活性化することができる。
【０３１８】
読出活性制御回路２１２は図２１に示す読出活性制御回路７９に対応し、また、ポインタ制御論理１８４の出力する制御信号に従って、クロック信号ＣＬＫをトリガとして、センスアンプ活性化信号ＳＥおよび／ＳＥおよびマッチ線アンプ活性化信号ＡＭＰＥＮを活性化する。これにより、ポインタ制御論理１８４が、書込ポインタ１８２が生成するポインタが所定値に到達するまで読出活性制御回路２１２の動作を停止させ、このポインタ制御論理１８４が書込ポインタ１８２の生成するポインタ値が所定値に到達した後、検索動作を開始するために、読出用のセンスアンプ活性化信号ＳＥ、／ＳＥおよびマッチ線活性化信号ＡＭＰＥＮを活性化してデータの読出および転送を行なうことができるとともに検索動作を行なうことができる。
【０３１９】
図４０に示すアドレスカウンタ８０、マルチプレクサ８１、ブロックデコーダ８２、バッファ８３およびダミー書込ワード線活性化回路７７の構成は、図２１に示す構成と同じであり、その詳細説明は省略する。
【０３２０】
図４１は、図４０に示す制御回路のデータ書込時の動作を示すフロー図である。以下、図４１を参照して、被検索データパターンをＴＣＡＭ領域に書込む場合の動作について図４０の制御回路の動作を説明する。
【０３２１】
まず、コマンドデコーダ２００は、コマンドＣＭＤとして書込コマンドが与えられるのを待つ（ステップＳＴ１）。
【０３２２】
コマンドデコーダ２００へ、書込コマンドが与えられると、アドレスカウンタ８０は、コマンドデコーダからの書込モード指示指示信号ＭＯＤＷに従ってそのカウント値が初期値に設定される。また、書込経路設定回路１９９は、コマンドデコーダ２００からのモード指示信号ＭＯＤがデータ書込を示すため、経路選択信号ＳＥＬＢおよびＳＥＬＡ＜１：０＞を、外部からの書込データ（被検索データ）Ｂおよびその反転データ／Ｂを、グローバル書込データ線ＧＷＤＬおよびＧＷＤＲに転送するようにデータパスの経路を設定する状態に設定する（ステップＳＴ２）。
【０３２３】
このデータパスの経路設定後、登録書込ワード線活性化回路２０２が、書込モード指示信号ＭＯＤＷに従って、クロック信号ＣＬＫをトリガとして所定のタイミングで登録書込ワード線活性化信号ＷＷＬＢＥＮを活性化する。これにより、アドレスカウンタ８０からのアドレス信号ＡＤおよびブロックアドレスＢＡＤが指定するサブブロックにおいて入力データ（被検索データ）が書込まれる（ステップＳＴ３）。
【０３２４】
すなわち、図３９に示すように、登録書込ワード線選択駆動回路５１においては、対応のサブブロックがＴＣＡＭ領域に指定されている場合には、マルチプレクサ１９０により、ブロック選択信号ＢＳおよびＡＤが、アドレスカウンタ８０の出力カウント値に従って生成されており、各ＴＣＡＭ領域における各サブブロックが順次選択され、選択サブブロックにおいてエントリが順次選択されて被検索データパターン（入力データ）が書込まれる。
【０３２５】
次いで、入力データの書込後、最終書込であるかの判定が行なわれる（ステップＳＴ４）。この判定は、コマンドデコーダ２００へ書込終了が指定されるか、または、アドレスカウンタ８０のカウント値が所定値に到達したかにより判定される。また、まだ、書込が終了していない場合には、アドレスカウンタ８０のカウント値をインクリメントし（ステップＳＴ５）、再びステップＳＴ３へ戻り、次の登録書込ワード線を選択して入力データの書込を実行する。一方、ステップＳＴ４において、最終書込と判定されると、この書込動作が終了する。
【０３２６】
図４２は、検索モード時のＦＩＦＯ領域の動作を示すフロー図である。以下、図４２を参照して、このＦＩＦＯ領域の検索動作時の制御回路４０の動作について説明する。
【０３２７】
コマンドデコーダ２００が、検索動作を指示するコマンドＣＭＤが与えられるのを待つ（ステップＳＴ１０）。コマンドデコーダ２００は、検索指示が与えられると、検索モードを指示する読出モード指示信号ＭＤＯＲをアサートするとともに、内部のアドレス信号を選択する内部アドレス選択指示信号ＭＯＤＩをアサートする。読出モード指示信号ＭＯＤＲのアサートに従って、ポインタ制御論理１８４は、読出ポインタ１８０および書込ポインタ１８２のポインタを初期値に設定するとともに、アドレスカウンタ８０は、そのカウント値が初期値に設定される。
【０３２８】
モード指示信号ＭＯＤが検索モード指示を指定しており、書込経路設定回路１９９は、外部からの検索データＡがグローバル書込データ線ＧＷＤＬに伝達され、その反転データ／Ａがグローバル書込データＧＷＤＲに伝達されるようにデータパスの経路を設定するように、選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢの状態を設定する（ステップＳＴ１１）。
【０３２９】
次いで、検索データが入力される（ステップＳＴ１２）。すなわち、転送データパケットから所定のビット幅のデータパターンが抽出されて、入力回路（入力シフトレジスタ回路）にセットされる。この検索データの入力時においては、図１８に示す入力シフトレジスタ回路に、必要なバイトイズの検索データがシフトインされる。検索データパターンが、入力シフトレジスタ回路にセットされると、登録書込ワード線活性化回路２０２は、この読出モード指示信号ＭＯＤＲに従って登録書込ワード線活性化信号ＷＷＬＢＥＮを活性化する。これにより、書込ポインタ１８２が生成するポインタＰＷＢＳおよびＰＷＡＤに従って登録書込ワード線ＷＷＬＢがＦＩＦＯ領域において選択され、この検索データがメモリセルＭＣＢＲおよびＭＣＢＬに書込まれる。この後、書込ポインタ１８２は、そのポインタを更新する（ステップＳＴ１３）。
【０３３０】
この書込ポインタ１８０の指定するポインタが所定値に到達したかの判定が次いで行なわれる（ステップＳＴ１４）。この書込ポインタ１８２が生成するポインタが所定値に到達していない場合には、また再びステップＳＴ１２に戻り、次の検索データがＦＩＦＯ領域のサブブロックのエントリに順次格納される。
【０３３１】
一方、ステップＳＴ１４において、書込ポインタ１８２が生成するポインタが所定値に到達したと判定されると（たとえば１つのサブブロックの全エントリに検索データが格納されたと判定されると）、ポインタ制御論理１８４は、登録読出ワード線活性化回路２０６に活性化信号を与え、登録読出ワード線活性化信号ＲＷＬＢＥＮをアサートさせる。応じて、読出ポインタ１８０の生成するポインタＰＲＢＳおよびＰＲＡＤに従って、ＦＩＦＯ領域のサブブロックの先頭エントリに格納されたデータパターンが読出される。このデータ読出完了後、読出ポインタ１８０のポインタが更新される（ステップＳＴ１５）。
【０３３２】
このデータ読出後、サブ書込経路設定回路１９９は、このポインタ制御論理１８４からの指示信号に従ってその選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢの状態を更新し、このＦＩＦＯ領域の読出ポインタ１８０が生成するポインタが指定するエントリから読出されるデータをグローバル書込データ線ＧＷＤＬおよびＧＷＤＲに伝達するようにその経路を設定する（ステップＳＴ１６）。
【０３３３】
次いで、検索書込ワード線活性化回路２０４が、また、ポインタ制御論理１８４からの指示に従って検索書込ワード線活性化信号ＷＷＬＡＥＮを活性化し、ＴＣＡＭ領域において各サブブロックにおいて転送された検索データが書込まれる（ステップＳＴ１７）。
【０３３４】
この転送データの書込後、再び、書込経路設定回路１９９は、モード指示信号ＭＯＤの検索指示に従って選択信号ＳＥＬＢおよびＳＥＬＡ＜１：０＞を、外部からの検索データを選択する状態に設定する（ステップＳＴ１８）。
【０３３５】
次に、アドレスカウンタ８０のカウント値が所定値に到達したかの判定が行なわれる（ステップＳＴ１９）。すなわち、アドレスカウンタ８０からのカウンタアドレスが、１つのサブブロックにおける全エントリを指定したかの判定が行なわれ、１つの検索データに付いての検索動作が完了したかの判定が行なわれる。
【０３３６】
ステップＳＴ１９においてカウンタアドレスが所定値に到達していると判定されると、終了指示が与えられたかの判定が行なわれる（ステップＳＴ２０）。この終了指示の有無の判定は、コマンドデコーダ２００に対し検索終了指示が与えられているかの判定が行なわれてもよく、また、アドレスポインタ１８０のポインタに従ってポインタ制御論理１８４から、すべての検索データが読出されたと判定されて、終了指示が生成されてもよい。終了指示が与えられていない場合には、再びステップＳＴ１５に戻り、次の検索データパターンのＦＩＦＯ領域からＴＣＡＭ領域への転送を行なう。
【０３３７】
一方、ステップＳＴ１９においてカウンタアドレスが所定値に到達していない場合には、次いで終了指示が与えられているかの判定を行ない（ステップＳＴ２１）、終了指示が与えられていない場合には、再び、ステップＳＴ１２に戻り、検索データの入力を行なう。終了指示が与えられている場合には、この検索動作を終了する。
【０３３８】
図４３は、この図４０に示す制御回路の、検索モード時のＴＣＡＭ領域に対する制御動作を示すフロー図である。以下、図４３を参照して、図４０に示す制御回路の検索モード時のＴＣＡＭ領域に対する制御動作について説明する。
【０３３９】
まず、ＦＩＦＯ領域の動作と同様、検索指示が与えられるのを待つ（ステップＳＴ１０）。検索指示が与えられると、アドレスカウンタ８０が初期化される（ステップＳＴ３１）。このステップＳＴ３１は、図４２に示すステップＳＴ１１に対応し、同様、読出ポインタ１８０および書込ポインタ１８２のポインタも初期化されるとともに、書込経路が初期設定される。
【０３４０】
この状態で、書込ポインタ１８２のポインタが所定値に到達するのを待つ（ステップＳＴ３２）。すなわち、ＦＩＦＯ領域からＴＣＡＭ領域への検索データが転送されるのを待つ。ポインタ制御論理１８４が、書込ポインタ１８２のポインタが所定値に到達したと判定すると、次いで、ポインタ制御論理１８４からの制御信号により、検索書込ワード線活性化回路２０４が、検索書込ワード線活性化信号ＷＷＬＡＥＮを活性化し、グローバル書込データ線に転送されたデータを、ＴＣＡＭ領域の各サブブロックにおいて検索書込ワード線ＷＷＬＡに接続されるメモリセルＭＣＡに書込む（ステップＳＴ３３）。このステップＳＴ３２およびＳＴ３３の間において、図４２に示すステップＳＴ１５およびＳＴ１６の動作が実行されており、図４３に示すステップＳＴ３３は、図４２に示すステップＳＴ１７に対応する。
【０３４１】
転送データ（検索データ）検索パターン格納領域への書込後、登録読出ワード線活性化回路２０６および検索読出ワード線活性化回路２０８が、ポインタ制御論理１８４からの指示信号に従って、それぞれ、読出ワード線活性化信号ＲＷＬＢＥＮおよびＲＷＬＡＥＮを並行して活性化し、データの読出を行なう。このとき読出活性制御回路２１２により、センスアンプ活性化信号ＳＥおよび／ＳＥとマッチ線アンプ活性化信号ＡＭＰＥＮが所定のシーケンスで活性化される。ＴＣＡＭ領域においてセンスアンプ回路によりデータ読出を行なった後、ローカルマッチ線上の電位に従って一致判定が行なわれる（ステップＳＴ３４）。
【０３４２】
次いで、アドレスカウンタ８０からのアドレス（カウンタアドレス）が所定値（ｍ）に到達しているかの判定が行なわれる（ステップＳＴ３５）。カウンタアドレスが所定値に到達していない場合には、ステップＳＴ３４に戻り、登録読出ワード線活性化回路２０６および検索読出ワード線活性化回路２０８が、それぞれ各クロックサイクル毎に、読出ワード線活性化信号ＲＷＬＢＥＮおよびＲＷＬＡＥＮを活性化し、ＴＣＡＭ領域の各サブブロックにおいて、アドレスカウンタ８０からのアドレスタ（カウンタアドレス）に従って各エントリの内容について順次検索動作が実行される。
【０３４３】
一方、ステップＳＴ３５においてアドレスカウンタ８０からのカウンタアドレスが所定値（ｍ）に到達したと判定されると、１つの検索データパターンについての検索が完了しているため、検索終了指示が与えられているかの判定が行なわれる（ステップＳＴ３６）。この検索終了指示は、外部からのコマンドに従ってコマンドデコーダ２００が判定してもよく、またポインタ制御論理１８４が読出ポインタ１８０が生成するポインタの値に従ってすべての検索データパターンの検索が終了したと判定されてもよい。
【０３４４】
ステップＳＴ３６において、検索動作が終了と判定されると、検索動作が終了する。一方、ステップＳＴ３６において、また検索が終了していないと判定された場合、図４０に示す読出ポインタ１８０からのポインタアドレスに従って、検索データがＦＩＦＯ領域から転送され、再びステップＳＴ３３からの動作が行われる。
【０３４５】
したがって、ＦＩＦＯ領域において読出および書込ポインタ１８０および１８２により、ポインタは、サイクリックに生成されており、最大値に到達すると、再び最小値に戻り、同様にポインタの更新が行なわれる。アドレスカウンタ８０は、そのカウント値が最大値ｍに到達すると、初期値（１）に変更される。検索動作時においては、ブロック選択は行われず、ＴＣＡＭ領域のサブブロック各々において並行して検索動作が実行される。
【０３４６】
なお、この読出動作時（ＦＩＦＯ領域からＴＣＡＭ領域へのデータ転送を含む）において、登録読出ワード線活性化信号ＲＷＬＢＥＮおよび検索読出ワード線活性化信号ＲＷＬＡＥＮの活性化に従ってダミー読出ワード線活性化回路２１０がダミー読出ワード線活性化信号ＤＲＷＬＥＮを活性化しており、それぞれ、データ読出が行なわれるサブブロックにおいて、ダミーセルが選択され参照電流が生成される。
【０３４７】
なお、読出活性制御回路２１２からのマッチ線アンプ活性化信号ＡＭＰＥＮは、ブロック属性指示信号ＭＯＤＦＴ＜ｎ：１＞に従って、対応の領域が、ＴＣＡＭ領域であると指定されているときに、対応のマッチ線アンプが活性化される構成が用いられればよい。この場合、ＦＩＦＯ領域においては、マッチ線アンプは非活性状態に維持される。
【０３４８】
以上のように、この発明の実施の形態３に従えば、メモリセルアレイの所定数のサブブロックを、外部からの検索データを待ち行列化するＦＩＦＯ領域として用いている。これにより、ＦＩＦＯの深さを最適化することができ、与えられる検索データの速度とその信号処理装置における検索動作処理速度を調整することができる。また、外部に、転送速度調整用の待ち行列用のＦＩＦＯを設ける必要がなく、一致検索システムの規模を低減することができる。また、半導体信号処理装置内部における検索データの行列化および転送が行なわれており、高速で待ち行列化された検索データの転送を行なうことができる。また、入力パケットの転送レートが高い場合においても、正確に一致検出を行なうことができる。
【０３４９】
また、メモリセルとして、シングルポートＭＲＡＭセルおよびデュアルポートＭＲＭセルのいずれが用いられてもよい。
【０３５０】
なお、ＦＩＦＯ領域において検索メモリセルＭＣＡＬおよびＭＣＡＲは、低抵抗状態に初期設定される。この場合、データパスにおいては、登録メモリセルＭＣＢを高抵抗状態に初期設定する経路と同じ経路に設定されてデータ“１”のクレームが行われる（図３０参照）。
【０３５１】
［実施の形態４］
図４４は、この発明の実施の形態４に従う半導体信号処理装置の１つのサブブロックＳＢｉの構成を概略的に示す図である。図４４において、サブブロックＳＢｉは、これまでの実施の形態と同様、ｍ個のエントリＥＲＹ１−ＥＲＹｍを含む。これらのエントリＥＲＹ１−ＥＲＹｍにおいて、２つのメモリセルＭＣＢが記憶単位ＳＵＴを構成するようにメモリセルＭＣＢが配置される。これらのエントリＥＲＹ１−ＥＲＹｍは、マッピングフラグメモリ領域ＭＦＬＧと、被検索データパターンを格納するデータパターン格納領域ＤＰＳＧとに分割される。このデータパターン格納領域ＤＰＳＧは、列方向において検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）に分割される。これらの検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）の各々は、Ｎバイト幅を有する。メモリセルＭＣＢで構成される記憶単位ＳＵＴに、被検索データパターンの各相補ビットが格納される。
【０３５２】
マッピングフラグメモリ領域ＭＦＬＧにおいては、対応のエントリに格納されるデータパターンのパターン長を示すデータがメモリセルＭＣＢに格納される。このマッピングフラグメモリ領域ＭＦＬＧは、複数ビット幅を有し、パターン長それぞれにフラグが割当てられており、そのフラグにより、対応のエントリのデータパターン格納領域ＤＰＳＧに書くのされるデータのパターン長が指定される。
【０３５３】
サブブロックＳＢｉにおいては、また、メモリセルＭＣＡが、メモリセルＭＣＢに対応して各列に配置される検索パターン格納領域ＲＲＲが設けられる。サブブロックＳＢｉのサブブロックアレイＳＢＡｉ外部に、センスアンプ帯ＳＡＢ、経路切換回路帯ＴＸＧＢ、およびローカルマッチ線ＭＬ１−ＭＬ２＾ｋが設けられる。
【０３５４】
サブブロックＳＢｉの構成は、マッピングフラグメモリ領域ＭＦＬＧを除けば、先の実施の形態１から３において説明した構成と同じである。ローカルマッチ線のサイズはＬバイトである。
【０３５５】
図４５は、図４４に示すデータパターン格納領域ＤＰＳＧの１つのエントリに格納される被検索データパターンのサイズ（パターン長）を概略的に示す図である。図４５において、このデータパターン格納領域ＤＰＳＧのエントリは、Ｌバイト（＝Ｎ・２＾ｋバイト）の幅を有する。最長データパターンとして、エントリの全長Ｌに対して、全長ＬのデータパターンＰＡＴ１が格納される。
【０３５６】
また、１つのエントリ内において、パターン長Ｌ／２のパターンＰＡＴ２、パターン長Ｌ／４のパターンＰＡＴ３、パターン長Ｌ／８のパターンＰＡＴ４、およびパターン長Ｌ／１６のデータパターンＰＡＴ５およびＰＡＴ６を格納することができる。したがって、各エントリ単位でパターン長の異なる被検索データを格納することができる。また、パターン長Ｌ、Ｌ／２、Ｌ／４、およびＬ／８およびＬ／１６のデータパターンの１つのエントリ内における格納位置は、予め固定的に定められ、１エントリに複数のデータパターンを格納することができる。
【０３５７】
図４６は、１つのサブブロックＳＢｉにおける被検索データのマッピングの一例を示す図である。図４６においては、サブブロックＳＢｉは、６個のエントリＥＲＹ１−ＥＲＹ６を含む。データパターン格納領域ＤＰＳＧは、パターン長に応じてデータ格納領域ＲＧ１−ＲＧ５に分割される。
【０３５８】
データ格納領域ＲＧ１は、パターン長Ｌ／２バイト（以下、バイトの単位は適宜省略する）のデータパターンを格納する領域に割当てられる。領域ＲＧ２は、その位置が固定されており、パターン長Ｌ／４のデータパターンを格納する領域に割当てられる。領域ＲＧ３は、パターン長Ｌ／８のデータパターンを格納する領域に割当てられる。領域ＲＧ４およびＲＧ５は、それぞれパターン長Ｌ／１６のデータパターンを格納する領域に割当てられる。領域ＲＧ１−ＲＧ５全体を用いてパターン長Ｌのデータパターンが格納される。
【０３５９】
図４６において、エントリＥＲＹ１においては、パターン長Ｌのデータパターン♯１が格納される。このエントリＥＲＹ１のマッピングフラグメモリ領域ＭＦＬＧにおいて、その最上位ビットが“１”に設定され、残りのビットは“０”に設定される。これにより、エントリＥＲＹ１のデータパターン格納領域ＤＰＳＧに、パターン長Ｌのデータが格納されることが示される。
【０３６０】
エントリＥＲＹ２においては、領域ＲＧ１に、パターン長Ｌ／２のデータパターン♯２格納される。この場合、マッピングフラグメモリ領域ＭＦＬＧのエントリＥＲＹ２の領域において、２番目のビットが“１”に設定され、残りのビットが“０”に設定される。この２番目のビットを立てることにより、エントリＥＲＹ２においては、パターン長Ｌ／２のデータパターンが格納されることが示される。
【０３６１】
エントリＥＲＹ３においては、領域ＲＧ１に、パターン長Ｌ／２のデータパターンが格納され、領域ＲＧ２に、パターン長Ｌ／４のデータが格納される。マッピングフラグメモリ領域ＭＦＬＧにおいては、２番目および３番目の上位ビットがともに“１”に設定され、残りのビットは“０”に維持される。これにより、エントリＥＲＹ３のデータパターン格納領域ＢＰＳＧにおいて、パターン長Ｌ／２およびＬ／４のデータパターンが格納されたことが示される。
【０３６２】
エントリＥＲＹ４においては、データパターン格納領域ＤＰＳＧにおいて、パターン長Ｌ／２、Ｌ／４およびＬ／８のデータパターン♯５、♯６および♯７がそれぞれ格納される。この場合、マッピングフラグメモリ領域ＭＦＬＧのエントリＥＲＹ４の領域においては、マッピングフラグの第２から第４上位ビットが“１”に設定され、残りのビットが“０”に設定される。これにより、領域ＲＧ１、ＲＧ２およびＲＧ３に、それぞれパターン長Ｌ／２、Ｌ／４およびＬ／８のデータパターンがマッピングされたことが示される。
【０３６３】
エントリＥＲＹ５のデータパターン格納領域ＤＰＳＧにおいては、パターン長Ｌ／２のデータパターン♯８、パターン長Ｌ／４のデータパターン♯９、パターン長Ｌ／８のデータパターン♯１０およびパターン長Ｌ／１６のデータパターン♯１１がそれぞれ格納される。このマッピングフラグメモリ領域のエントリＥＲＹ５において、最上位ビットおよび最下位ビットが“０”に設定され、残りの第２から第５上位ビットが“１”に設定される。これにより、領域ＲＧ１−ＲＧ４に、それぞれパターン長Ｌ／２、Ｌ／４、Ｌ／８およびＬ／１６のデータパターンが格納されたことが示される。
【０３６４】
エントリＥＲＹ６において、領域ＲＧ１、ＲＧ２、ＲＧ３、ＲＧ４およびＲＧ５に、それぞれパターン長Ｌ／２のデータパターン♯１２、パターン長Ｌ／４のデータパターン♯１３、パターン長Ｌ／８のデータパターン♯１４、および各々パターン長Ｌ／１６が格納される。マッピングフラグメモリ領域ＭＦＬＧの対応のエントリＥＲＹ６においては、最上位ビットが“０”に設定され、残りの第２ないし第６ビットはすべて“１”に設定される。それにより、領域ＲＧ１−ＲＧ５各々に、有意の被検索データパターン（有効被検索データパターン）が格納されたことが示される。
【０３６５】
この図４６に示すように、データパターン格納領域ＤＰＳＧにおいて、パターン長ごとに、エントリ内の格納位置を予め固定的に定め、ある領域に有効データパターンが格納される場合に、対応のマッピングフラグビットを“１”に設定する。これにより、各エントリごとに、複数のデータパターン長の異なるデータパターンをマッピングすることができ、エントリにより効率的に被検索データパターンを格納することができる。
【０３６６】
マッピングフラグ格納領域においてマッピングフラグビットを、各領域に割当てられるパターン長に対応して設定することにより、容易に、各エントリに格納されるデータパターンのパターン長の種類を識別することができる。また、一致検出時に対応のエントリアドレスとともに対応のマッピングフラグを読出すことにより、一致検出されたエントリに格納されるデータパターンを一致パターン候補を検出することができる。
【０３６７】
なお、マッピングフラグビットを、一致ッ検出時に読出す場合には、一致検出時のエントリアドレス（カウンタアドレス）に従って、サブブロックＳＢ１−ＳＢｎ各々から順次対応のエントリのマッピングフラグビットを読出す必要がある。ローカル一致判定回路ＬＭＤｉの出力するローカル一致判定信号ＬＭＣＨ＜ｉ＞が一致を示すときに対応のサブブロックＳＢｉの対応のエントリのフラグビットが読出されてもよい。
【０３６８】
図４７は、この発明の実施の形態４に従う半導体信号処理装置の１つのサブブロックの一致線と各検索単位との接続態様を概略的に示す図である。図４７において、検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）それぞれに対応してマッチ線ＭＬ１−ＭＬ２＾ｋが設けられる。これらの検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（Ｉ，２＾ｋ）は、それぞれ対応のマッチ線ＭＬ１−ＭＬ２＾ｋに対応のローカル読出データ線ＬＲＤを介して結合される。
【０３６９】
ローカル一致判定回路ＭＤＴｉは、これらのローカルマッチ線ＭＬ１−ＭＬ２＾ｋそれぞれに対応して設けられるマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋと、これらのマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号に従って、領域ＲＧ１−ＲＧ５ごとにパターンの一致／不一致をにより判定してローカル一致判定信号ＬＭＣＨ＜ｉ＞を生成する一致判定部ＬＭＤＴｉとを含む。
【０３７０】
図４８は、図４７に示す一致判定部ＬＭＤＴｉの構成の一例を概略的に示す図である。図４８において、一致判定部ＬＭＤＴｉは、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号を受けるＯＲゲート２４０ａと、領域ＲＧ１−ＲＧ５それぞれに対応して設けられるＯＲゲート２４０ｂ−２４０ｆと、これらのＯＲゲート２４０ａ−２４０ｆの出力信号を受けてローカル一致判定信号ＬＬＣＨｉ＜ｉ＞を生成するＡＮＤゲート２４２を含む。
【０３７１】
ＯＲゲート２４０ｂは、マッチ線アンプＡＭＰ１−ＡＭＰ２＾（ｋ−１）の出力信号を受ける。ＯＲゲート２４０ｃは、マッチ線アンプＡＭＰ２＾（ｋ−１）＋１からＡＭＰ（３・２＾（ｋ−１））の出力信号を受ける。ＯＲゲート２４０ｄは、マッチ線アンプＡＭＰ（３・２＾（ｋ−２）＋１）からＡＭＰ（７・２＾（ｋ−３））の出力信号を受ける。ＯＲゲート２４０ｅは、マッチ線アンプＡＭＰ（７・２＾（ｋ−３）＋１）からＡＭＰ（１５・２＾（ｋ−４））の出力信号を受ける。ＯＲゲート２４０ｆは、マッチ線アンプＡＭＰ（１５・２＾（ｋ−４）＋１）からＡＭＰ２＾ｋの出力信号を受ける。
【０３７２】
これらの領域ＲＧ１−ＲＧ５各々と領域ＲＧ１−ＲＧ５の全体とに対応してマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号をそれぞれグループ化して、各領域毎に一致判定を行なう。これにより、各エントリにおいて複数のパターン長のデータが格納される場合においても、検索データパターンに対するパターンの一致／不一致を判定することができる。
【０３７３】
［ローカルマッチ線の配置の変更例］
図４９は、この発明の実施の形態４に従う半導体信号処理装置のローカルマッチ線の配置の変更例を概略的に示す図である。図４９に示す配置においては、被検索データパターン格納領域ＤＰＳＧの各データ格納領域ＲＧ１−ＲＧ５および領域ＲＧ１−ＲＧ５全体に対応してローカルマッチ線ＭＬ０−ＭＬ５が設けられる。ローカルマッチ線ＭＬ０には、データ格納領域ＲＧ１−ＲＧ５のセンスアンプ回路の出力信号が並列に出伝達される。ローカルマッチ線ＭＬ１には、データ格納領域ＲＧ１のセンスアンプ回路の出力信号が伝達される。ローカルマッチ線ＭＬ２に対しては、データ格納領域ＲＧ２のセンスアンプ回路の出力信号が伝達される。ローカルマッチ線ＭＬ３に対しては、領域ＲＧ３のセンスアンプ回路の出力信号が並列に伝達される。ローカルマッチ線ＭＬ４は、領域ＲＧ４のセンスアンプ回路の出力信号が伝達される。ローカルマッチ線ＭＬ５には、領域ＲＧ５のセンスアンプ回路の出力信号が対応のローカル読出データ線ＬＲＤを介して伝達される。
【０３７４】
ここで、領域ＲＧ１は、検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾（ｋ−１））を含み、領域ＲＧ２は、検索単位ＲＵＴ（ｉ，２＾（ｋ−１）＋１）からＲＵＴ（ｉ，３・２＾（ｋ−２））を含む。領域ＲＧ３は、検索単位ＲＡＵ（ｉ，３・２＾（ｋ−２）＋１）からＲＵＴ（１，７・２＾（ｋ−３））を含む。領域ＲＧ４は、検索単位ＲＵＴ（１，７・２＾（ｋ−３）＋１）からＲＵＴ（ｉ，１５・２＾（ｋ−４））を含む。領域ＲＧ５は、検索単位ＲＵＴ（ｉ，１５・２＾（ｋ−４）＋１）からＲＵＴ（ｉ，２＾ｋ）を含む。
【０３７５】
ローカルマッチ線ＭＬ０−ＭＬ５それぞれに対応してマッチ線アンプＡＭＰ０−ＡＭＰ５が設けられる。これらのマッチ線アンプＡＭＰ０−ＡＭＰ５の出力信号が並列にＯＲゲート２４４へ与えられる。ＯＲゲート２４４により、ローカル一致判定信号ＬＭＣＨ＜ｉ＞が生成される。
【０３７６】
この図４９に示す構成の場合、データパターン長に応じてローカルマッチ線を配置し、各データパターン長に割当てられた領域のセンスアンプ回路の出力信号を対応のローカルマッチ線に伝達している。これにより、ローカルマッチ線の数を増大させることなく、異なるパターン長のデータパターンについての一致／不一致判定結果を確実に生成することができる。
【０３７７】
図５０から図５６は、パターン長の異なる被検索データパターンの書込シーケンスの一例を概略的に示す図である。図５０から図５６において、説明を簡略化するために、１つのサブブロックの３つのエントリＥＲＹａ−ＥＲＹｃに対する被検索データパターンの書込動作を一例として示す。
【０３７８】
図５０において、データパターン格納領域ＤＰＳＧには、まだ被検索データパターンは登録されていない。この場合、データパターン格納領域ＤＰＳＧのメモリセルＭＣＡおよびＭＣＢには、データ“０”が格納される。この初期状態において、マッピングフラグメモリ領域においては、全エントリについて対応のマッピングフラグビットはすべて“０”に設定される。このマッピングフラグビットはメモリセルＭＣＢに格納される。従って、初期状態においては、マッピングフラグメモリ領域ＭＦＬＧにおいては、メモリセルＭＣＡがデータ“１”を格納し、メモリセルＭＣＢがデータ“０”を格納する。
【０３７９】
図５１において、パターン長ＬのデータパターンＰＡＴ♯１が、エントリＥＲＹａに書込まれる。このデータパターンの書込時、これまでの実施の形態１から３において説明したのと同様にして、メモリセルＭＣＢに被検索データパターンが書込まれる。これに対応して、マッピングフラグメモリ領域ＭＦＬＧのエントリＥＲＹａにおいてその最上位ビットが“１”に設定される。
【０３８０】
図５２において、データパターン格納領域ＤＰＳＧのエントリＥＲＹｂのデータ格納領域ＲＧ１にパターン長Ｌ／２のデータパターンＰＡＴ♯２が書込まれる。対応して、マッピングフラグメモリ領域ＭＦＬＧのエントリＥＲＹｂにおいて、第２上位ビットが“１”に設定され、領域ＲＧ１においてパターン長Ｌ／２のデータが格納されたことが示される。
【０３８１】
図５３において、データパターン格納領域ＤＰＳＧにおいてエントリＥＲＹｃにおいてパターン長Ｌ／２のデータパターンＰＡＴ♯３が格納される。このとき、また、マッピングフラグメモリ領域ＭＦＬＧにおいてエントリＥＲＹｃの第２上位ビットが“１”に設定される。
【０３８２】
図５４において、データパターン格納領域ＤＰＳＧにおいてエントリＥＲＹｂにパターン長Ｌ／４のデータパターンＰＡＴ♯４が格納される。この場合、マッピングフラグメモリ領域ＭＦＬＧにおいては、エントリＥＲＹｂの第３上位ビットが“１”に設定され、このエントリＥＲＹｂのデータ格納領域ＲＧ２に、パターン長Ｌ／４のデータが格納されたことが示される。
【０３８３】
図５５において、データパターン格納領域ＤＰＳＧにおいて、エントリＥＲＹｂの領域ＲＧ３に、パターン長Ｌ／８のデータパターンＰＡＴ♯５が格納される。これに合わせて、マッピングフラグメモリ領域ＭＦＬＧにおいても、エントリＥＲＹｂにおいて、第４上位ビットが“１”に設定され、このエントリＥＲＹｂの領域ＲＧ３においてパターン長Ｌ／８のデータパターンが格納されたことが示される。
【０３８４】
図５５において、パターン長Ｌ／８のデータパターンＰＡＴ♯５の書込が行なわれる。この場合、データ格納領域ＲＧ３においてエントリＥＲＹｂおよびＥＲＹｃに空き領域が存在するものの、アドレスの小さなエントリＥＲＹｂの領域ＲＧ３に、データパターンＰＡＴ♯５が書込まれる。このデータパターンＰＡＴ♯５の書込と並行して、マッピングフラグメモリ領域ＭＦＬＧにおいてエントリＥＲＹｂの第４ビットが“１”に設定され、領域ＲＧ３に、パターン長Ｌ／８の有効データパターンが格納されたことが示される。
【０３８５】
図５６において、再び、パターン長Ｌ／８のデータパターンの書込が行なわれる。この場合、エントリＥＲＹｃにおいて、領域ＲＧ３は空き領域であり、データパターン格納領域ＤＰＳＧのエントリＥＲＹｃの領域ＲＧ３に、パターン長Ｌ／８のデータパターンＰＡＴ♯６の書込が行なわれる。応じて、マッピングフラグメモリ領域ＭＦＬＧのエントリＥＲＹｃにおいてその第４ビットが“１”に設定され、エントリＥＲＹｃのデータ格納領域ＲＧ３にパターン長Ｌ／８の有効データが格納されたことが示される。
【０３８６】
以後、パターン長Ｌ／１６のデータパターンについても同様のシーケンスで領域ＲＧ４およびＲＧ５の空きエントリに対するデータの書込が行なわれる。
【０３８７】
図５７は、マッピングフラグメモリ領域ＭＦＬＧに対するデータ書込経路を概略的に示す図である。図５７において、マッピングフラグメモリ領域ＭＦＬＧにおいては、マッピングフラグビットを書込むためのグローバル書込データ線ＧＷＤＦ０−ＧＷＤＦ５が各マッピングフラグビットに対応して配置される。各エントリにおいてメモリセルＭＣＢが配置され、メモリセルＭＣＢに対応してワード線ＲＷＬＢおよびＷＷＬＢが配置される。
【０３８８】
このグローバル書込データ線ＧＷＤＦ０−ＧＷＤＦ５に対し、フラグビット書込ドライバ２５０．０−２５０．５がそれぞれ設けられる。フラグビット書込ドライバ２５０．０−２５０．５は、マスク指示信号ＭＡＳＫ＜０＞−ＭＡＳＫ＜５＞に従って選択的に出力ハイインピーダンス状態とされる。対応のマスクビットが非活性状態のとき、これらのフラグビット書込ドライバ２５０．０−２５０．５は、対応のフラグビットＦ＜０＞−Ｆ＜５＞をバッファ処理して対応のグローバル書込データ線ＧＷＤＦ０−ＧＷＤＦ５に伝達する。
【０３８９】
したがって、トライステートバッファを、フラグビット書込ドライバ２５０．０−２５０．５として利用することにより、マッピングフラグメモリ領域ＭＦＬＧにおいて、各マッピングフラグビットを、ビットごとに書換えることができる。
【０３９０】
なお、マッピングフラグメモリ領域ＭＦＬＧにおいて、初期化時においては、このフラグビットＦ＜０＞−Ｆ＜５＞を“０”に設定し、メモリセルＭＣＢに、データ“０”がそれぞれ格納される。また、マッピングフラグメモリ領域において、メモリセルＭＣＡにはデータ“１”を固定的に格納することにより、実施の形態３と同様にして、フラグビットＦ＜０＞−Ｆ＜５＞のビット値を読出すことができる。
【０３９１】
図５８は、この発明の実施の形態４に従う半導体信号処理装置のデータパターン格納領域ＤＰＳＧおよびデータパスの構成を概略的に示す図である。図５８において、データパターン格納領域ＤＰＳＧの領域ＲＧ１−ＲＧ５それぞれにおいてメモリセル列に対応して、グローバル書込データ線ＧＷＤが配置される。データパス２６０においては、このグローバル書込データ線ＧＷＤ各々に対応して書込ドライバ１６８（１６８ｌ，１６８ｒに相当）が配置される。データパス２６０は、このデータ格納領域ＲＧ１−ＲＧ５各々に対応してパス分割領域ＤＰＲＧ１−ＤＰＲＧ５に分割される。パス分割領域ＤＰＲＧ１に含まれるデータ書込ドライバ１６８には、マスク指示信号ＭＡＳＫ＜１＞が与えられ、パス分割領域ＤＰＲＧ２に含まれる書込ドライバ１６８に対してマスク指示信号ＭＡＳＫ＜２＞が与えられる。パス分割領域ＤＰＲＧ３に含まれるデータ書込ドライバ１６８に対し、マスク指示信号ＭＡＳＫ＜３＞が与えられる。分割領域ＤＰＲＧ４に含まれるデータ書込ドライバ１６８に対しては、マスク指示信号ＭＡＳＫ＜４＞が与えられ、パス分割領域ＤＰＲＧ５に含まれるデータ書込ドライバ１６８に対しては、マスク指示信号ＭＡＳＫ＜５＞が与えられる。
【０３９２】
これらのデータ書込ドライバ１６８は、それぞれ対応のマスク指示信号ＭＡＳＫ＜ｉ＞（ｉ＝１−５）が“１”となって対応のデータ格納領域ＲＧｉに対するデータ書込にマスクがかけられるときに、出力ハイインピーダンス状態となる。一方、マスク指示信号ＭＡＳＫ＜ｉ＞が“０”のときには、データ書込ドライバ１６８は、バッファとして動作し、図示しないマルチプレクサから与えられるデータに従って対応のグローバル書込データ線ＧＷＤを駆動する。
【０３９３】
このデータ書込ドライバ１６８の前段のマルチプレクサの経路は、実施の形態１または実施の形態３において説明したものと同様である。
【０３９４】
この図５８に示すように、同一エントリにパターン長の異なるデータパターンを書込む場合、先に登録された被検索データパターンを上書きすることなく、すでに登録された被検索データパターンを正確に保持して、新たな被検索データパターンを登録することができる。
【０３９５】
図５９は、このマスク指示信号ＭＡＳＫ＜０＞−ＭＡＳＫ＜５＞と各検索単位に対して設けられるマスク指示信号ＭＡＳＫ１−ＭＡＳＫ２＾ｋの対応を概略的に示す図である。図５９において、マスク指示信号ＭＡＳＫ＜１＞は、マスク指示信号ＭＡＳＫ１−ＭＡＳＫ２＾（ｋ−１）に対応する。マスク指示信号ＭＡＳＫ＜２＞は、マスク指示信号ＭＡＳＫ２＾（（ｋ−１）＋１）からＭＡＳＫ（３・２＾（ｋ−２））に対応する。マスク指示信号ＭＡＳＫ＜３＞は、マスク指示信号ＭＡＳＫ（３・２＾（ｋ−２）＋１）からＭＡＳＫ（７・２＾（ｋ−３））に対応する。マスク指示信号ＭＡＳＫ＜４＞は、マスク指示信号ＭＡＳＫ（７・２＾（ｋ−３）＋１）からＭＡＳＫ（１５・２＾（ｋ−４））に対応する。マスク指示信号ＭＡＳＫ＜５＞は、マスク指示信号ＭＡＳＫ（１５・２＾（ｋ−４）＋１）からＭＡＳＫ２＾ｋに対応する。マスク指示信号ＭＡＳＫ＜０＞は、これらのマスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞のＯＲゲートＯＧを通して生成される。
【０３９６】
これにより、検索単位で、マスク指示信号を生成することができるため、パターン長としては、最小データパターン長を検索単位のバイト幅（Ｎバイト）として、被検索データパターンの登録を行なうことができる。
【０３９７】
被検索データパターンの登録については、初期設定時に、エントリ毎に異なるパターン長の被検索データを格納する。この場合、外部において、各エントリに格納されるデータパターンを、例えばコンパイラなどにより、エントリ毎に分類してマッピングフラグとともに書込む構成が利用されてもよい。ここでは、一例として、異なるパターン長の被検索データが任意の順序で与えられてデータパターン格納領域にマッピングされる方法について説明する。
【０３９８】
図６０は、この発明の実施の形態４に従う半導体信号処理装置に与えられる被検索データパターンのデータ構造を概略的に示す図である。図６０において、被検索データパターンは、ヘッダＨＥＤと、データ領域ＤＰＱとを含む。ヘッダＨＥＤには、パターン長を指示するパターン長指示データＰＤが格納される。データ領域ＤＰＱには、書込データパターンが格納される。データ領域ＤＰＱは、メモリセルアレイのデータパターン格納領域ＤＰＳＧのデータ格納領域ＲＧ１−ＲＧ５それぞれに対応する領域を有し、各パターン長に応じて対応のパターン長の書込データパターンが対応のデータ格納領域に格納される。この場合、領域ＲＧ４およびＲＧ５には、パターン長が一例としてＬ／８のデータパターンが格納されるため、このデータパターン印加シーケンスにおいて、領域ＲＧ４およびＲＧ５に格納される被検索データパターンは、被検索データパターン印加シーケンスにおいて交互に配置される。
【０３９９】
図６１は、図６０に示す書込データの構成の一具体例を概略的に示す図である。図６１においては、ヘッダＨＥＤに、パターン長Ｌ／４を示すパターン長指示データＰＤ（Ｌ／４）が格納される。データ領域ＤＰＱにおいては、領域ＲＧ２に対応する領域に、パターン長Ｌ／４の有効データが格納される。残りの領域ＲＤ１およびＲＤ３−ＲＤ５の格納データは任意（Ｘ）である。この任意データ（Ｘ）が書込まれた領域に対しては、この被検索データパターン書込時に書込マスクがかけられ、パターン長Ｌ／４の有効データのみが、領域ＲＧ２の空きエントリのうちの先頭エントリに格納される。
【０４００】
この書込データパターンのパケット内の配置については、一例として以下の構成が利用されればよい。すなわち、被検索データパターンに対して被検索データパターンの先頭および終了を示すスタートオブビット（ＳＯＢ）およびエンドオブビット（ＥＯＢ）を付加する。このスタートオブビットおよびエンドオブビットにより対応のデータパターンのパターン長を識別する。この識別したパターン長をヘッダ部に格納するとともに、データ領域においてパターン長に応じた位置に書込データを配置する。パターン長がＬバイトよりも短い場合には、空き領域に無効ビットを挿入して、エントリのバイト幅Ｌに相当する書込データパケットを生成する。これにより、図６０および図６１に示す書込データパケットを生成して半導体信号処理装置に供給することができる。
【０４０１】
図６０および図６１に示すように、ヘッダＨＥＤに格納されるパターン長指示データＰＤに従って被検索データパターンのパターン長を抽出することにより、正確に書込マスクをかけて、空きエントリの先頭エントリの対応の領域に被検索データを書込むことができる。
【０４０２】
図６２は、被検索データパターン書込時の書込アドレスを生成する書込アドレス発生回路の構成の一例を概略的に示す図である。図６２において、書込アドレス発生回路２６０は、パターン長指示データＰＤをデコードするパターン長デコーダ２７０と、パターン長デコーダ２７０からのデコード信号に従って選択的にカウント動作を行なうアドレスカウンタ２７１−２７５と、パターン長デコーダ２７０からのデコード結果に基づいて生成されるアドレス選択信号ＰＳＥＬ＜５：１＞に従ってｍカウンタ２７１−２７５の出力信号の１つを選択して書込アドレスＷＡＤを生成する選択回路（ＭＵＸ）２７６と、アドレスカウンタ２７５の最下位ビットＬＳＢＢとＬ／１６パターン長イネーブル信号ＥＮ（１６）とに従って、領域指定信号ＲＧＳ４およびＲＧＳ５を生成するゲート回路２７７とを含む。
【０４０３】
パターン長デコーダ２７０は、与えられたデータパケットのヘッダに含まれるパターン長指示データＰＤを抽出してデコードし、そのデコード結果に従って、与えられた被検索データパターンのパターン長に応じたパターン長イネーブル信号ＥＮ（Ｌ）、ＥＮ（Ｌ／２）、ＥＮ（Ｌ／４）、ＥＮ（Ｌ／８）、およびＥＮ（Ｌ／１６）のいずれかを選択的に活性化する。Ｌパターン長イネーブル信号ＥＮ（Ｌ）は、パターン長指示データＰＤがパターン長Ｌを指定するときにアサートされる。Ｌ／２パターン長イネーブル信号ＥＮ（Ｌ／２）は、パターン長指示データＰＤがパターン長Ｌ／２を指示するときにアサートされる。Ｌ／４パターン長指示信号ＥＮ（Ｌ／４）は、パターン長指示データＰＤがパターン長Ｌ／４を指定するときにアサートされる。Ｌ／８およびＬ／１６パターン長指示信号ＥＮ（Ｌ／８）およびＥＮ（Ｌ／１６）は、パターン長指示データＰＤが、それぞれ、パターン長Ｌ／８およびＬ／１６を指定するときにアサートされる。
【０４０４】
Ｌアドレスカウンタ２７１は、パターン長イネーブル信号ＥＮ（Ｌ）のアサートに従ってカウント値を更新し、パターン長Ｌのデータパターンの書込アドレスを生成する。（Ｌ／２）アドレスカウンタ２７２は、パターン長イネーブル信号ＥＮ（Ｌ／２）のアサートに従ってカウント動作を行ない、パターン長Ｌ／２の書込データに対する書込アドレス信号を生成する。
【０４０５】
（Ｌ／４）アドレスカウンタ２７３は、パターン長イネーブル信号ＥＮ（Ｌ／４）のアサートに従ってカウント動作を行ない、パターン長Ｌ／４の書込データ（被検索データパターン）に対する書込アドレスを生成する。（Ｌ／８）アドレスカウンタ２７４は、パターン長イネーブル信号ＥＮ（Ｌ／８）のアサートに従ってカウント動作を行ない、パターン長Ｌ／８の書込データに対する書込アドレス信号を生成する。（Ｌ／１６）アドレスカウンタ２７５は、パターン長イネーブル信号ＥＮ（Ｌ／１６）のアサートに従ってカウントと動作を行ない、その最下位カウントビットＬＳＢＢによりパターン長Ｌ／１６のデータに対する書込領域（ＲＧ４およびＲＧの一方）を指定するとともに、残りの上位ビットによりパターン長Ｌ／１６の書込データに対する書込アドレスを生成する。
【０４０６】
選択回路２７６は、パターン長デコーダ２７０からのパターン長選択信号ＰＳＥＬに従って、アサートされたパターン長イネーブル信号に対応するアドレスカウンタ２７１−２７５の出力信号のいずれかを選択し、被検索データパターン書込時の書込アドレスＷＡＤをブロックアドレスＢＡＤとともに生成する。
【０４０７】
ゲート回路２７７は、パターン長デコーダ２７０からのＬ／１６パターン長イネーブル信号ＥＮ（Ｌ／１６）のアサート時、（Ｌ／１６）アドレスカウンタ２７５からの最下位カウントビットＬＳＢＢを論理ゲート処理し、領域指定信号ＲＧＳ４およびＲＧＳ５を生成する。これらの領域指定信号ＲＧＳ４およびＲＧＳ５により、パターン長Ｌ／１６の書込データの書込領域が、領域ＲＧ４であるのかＲＧ５であるのかの指定が行なわれる。したがって、この（Ｌ／１６）アドレスカウンタ２７５は、書込アドレスおよび書込領域をともに指定するため、他のアドレスカウンタ２７１−２７４に比べてそのカウントビットが１ビット多くされ、最下位ビットＬＳＢＢが、領域ＲＧ４およびＲＧ５を指定する領域指定ビットとして用いられる。これにより、パターン長Ｌ／１６の書込データを、同一エントリの領域ＲＧ４およびＲＧ５に順次格納することができる。
【０４０８】
供給されるデータパケットにおいては、パターン長Ｌ／１６のデータパターンが、領域ＲＧ４およびＲＧ５に対し交互に配置される。このデータ領域ＤＢＱにおいて、パターン長Ｌ／１６のデータパターンを、この追加シーケンスにおいて交互に配置するが、たとえばコンパイラ等を用いて外部の装置で行なわれてもよい。また、これに代えて、図示しないバレルシフタなどの経路切換回路を用いて領域ＲＧ４およびＲＧ５に交互にパターン長Ｌ／１６のデータパターンが格納されてもよい。
【０４０９】
図６３は、図６２に示すゲート回路２７７の構成の一例を示す図である。図６３において、ゲート回路２７７は、最下位カウントビットＬＳＢＢを反転するインバータ２８０と、インバータ２８０の出力信号とＬ／１６パターン長イネーブル信号ＥＮ（Ｌ／１６）を受けるＡＮＤゲート２８２と、最下位カウントビットＳＬＢＢとＬ／１６パターン長イネーブル信号ＥＮ（Ｌ／１６）とを受けるＡＮＤゲート２８４を含む。ＡＮＤゲート２８２から、領域指定信号ＲＧＳ４が生成され、ＡＮＤゲート２８４から領域指定信号ＲＧＳ５が生成される。これらの領域指定信号ＲＧＳ４およびＲＧＳ５は、それぞれ、“１”のときに、データ格納領域ＲＧ４およびＲＧ５が指定されたことを示す。
【０４１０】
すなわち、Ｌ／１６パターン長イネーブル信号ＥＮ（Ｌ／１６）がアサートされているとき、最下位カウントビットＬＳＢＢが“０”であれば、領域指定信号ＲＧＳ４が“１”に設定され、領域ＲＧ４が指定される。最下位カウントビットＬＳＢＢが“１”のときには、領域指定信号ＲＧＳ５が“１”となり、領域ＲＧ５が指定される。これにより、パターン長Ｌ／１６の被検索データを、データパターン格納領域のデータ領域ＲＧ４およびＲＧ５に交互に書き込むことができる。
【０４１１】
図６４は、マスク指示信号ＭＳＫ＜５：１＞およびマッピングフラグビットＦＢ＜６：１＞を生成する回路の構成の一例を概略的に示す図である。図６４において、マスク指示信号およびフラグビット生成部は、マスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞を生成するマスクデコード回路２９０と、マッピングフラグビットＦＢ＜６＞−ＦＧ＜１＞を生成するフラグビットデコード回路３００を含む。
【０４１２】
マスクデコード回路２９０は、領域選択信号ＰＳＥＬ＜５：２＞（＝ＥＮ（Ｌ）−ＥＮ（Ｌ／８））と領域指定信号ＲＧＳ４およびＲＧＳ５を受けて、マスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞を生成する。マスク指示信号ＭＡＳＫ＜０＞は、これらのマスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞を受けるＯＲゲートＯＧにより生成される。このマスク指示信号ＭＡＳＫ＜０＞は、最上位のマッピングフラグビットＦＢ＜０＞に対する書込をマスクする。
【０４１３】
マスクデコード回路２９０は、パターン長イネーブル信号ＥＮ（Ｌ）がアサートされるときにはマスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞をネゲートし、このＬパターン長イネーブル信号ＥＮ（Ｌ）のネゲート時においては、対応のパターン長イネーブル信号および領域指定信号ＲＧＳ４およびＲＧＳ５に従ってマスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞を生成する。
【０４１４】
フラグビットデコード回路３００は、マスクデコード回路２９０と同様、領域選択信号ＰＳＥＬ＜５：２＞と領域指定信号ＲＧＳ４およびＲＧＳ５をバッファ処理して、マッピングフラグメモリ領域に格納されるマッピングフラグビットＦＢ＜６＞−ＦＢ＜１＞を生成する。フラグビットＦＧ＜６＞が最上位ビットＭＳＢであり、フラグビットＦＢ＜１＞が最下位ビットＬＳＢである。あるパターン長イネーブル信号のアサート時、対応のフラグビットが“１”に設定されるため、このフラグビットデコード回路３００において、与えられた信号をバッファ処理することにより、マッピングフラグビットに対する書込ビットを生成することができる。
【０４１５】
図６５は、図６４に示すマスクデコード回路２９０の構成の一例を概略的に示す図である。図６５において、マスクデコード回路２９０は、マスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞それぞれに対応して設けられるＮＯＲゲートＮＯＧ１−ＮＯＧ５を含む。ＮＯＲゲートＮＯＧ１−ＮＯＧ３は、それぞれの第１の入力にＬパターン長イネーブル信号ＥＮ（Ｌ）を受け、それぞれの第２の入力に、パターン長イネーブル信号ＥＮ（Ｌ／２）、ＥＮ（Ｌ／４）およびＥＮ（Ｌ／８）を受ける。ＮＯＲゲートＮＯＧ４およびＮＯＧ５は、それぞれの第１の入力にＬパターン長イネーブル信号ＥＮ（Ｌ）を受け、それぞれの第２の入力に領域指定信号ＲＧＳ４およびＲＧＳ５を受ける。
【０４１６】
したがって、Ｌパターン長イネーブル信号ＥＮ（Ｌ）がアサートされると、マスク指示信号ＭＡＳＫ＜１＞−ＭＡＳＫ＜５＞はすべて“０”のネゲート状態に設定され、１エントリ全体にわたってデータの書込がおこなわれる。Ｌパターン長イネーブル信号ＥＮ（Ｌ）が“０”のときには、ＮＯＲゲートＮＯＧ１−ＮＯＧ５はインバータとして動作し、対応のパターン長イネーブル信号および領域指定信号がアサートされる場合、対応のマスク指示信号のみがネゲートされ、残りのマスク指示信号がアサートされ、指定された領域以外のデータ格納領域に対しデータ書込にマスクがかけられる。
【０４１７】
図６６は、この発明の実施の形態４に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。図６６に示す制御回路７０は、以下の点で、図４０に示す制御回路とその構成が異なる。すなわち、アドレスカウンタ３１０に対しては、検索モードを指示する読出モード指示信号ＭＯＤＲが与えられ、検索モード時に、アドレスカウンタ３１０が動作する。
【０４１８】
アドレスカウンタ３１０と並行してアドレス発生回路２６０が設けられ、書込モード指示信号ＭＯＤＷに従ってイネーブルされ、パターン長指示データＰＤをデコードして、書込アドレス信号ＷＡＤを生成する。マルチプレクサ（ＭＵＸ）３１２が、動作モード指示信号ＭＯＤＩ（検索モードか書込モードかを指定する）に従って、アドレスカウンタ３１０からのアドレス信号ＣＢＡＤ、ＣＡＤの組およびアドレス発生回路２６０からの書込アドレス信号ＷＡＤおよび外部からのアドレス信号ＥＸＡＤのいずれかを選択して、ブロックアドレス信号ＢＡＤおよびアドレス信号ＡＤを生成する。この制御回路７０においては、また図６４に示すマスクデコード回路２９０およびフラグビットデコード回路３００が設けられ、それぞれ、マスク指示信号ＭＡＳＫ＜５：１＞およびマッピングフラグビットＦＢ＜６：１＞を生成する。
【０４１９】
この図６６に示す制御回路の他の構成は、図４０に示す制御回路の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０４２０】
なお、マスクビット指示信号ＭＡＳＫ＜５：１＞およびマッピングフラグビットＦＢ＜６：１＞のビット幅は、それぞれ用いられるデータパターン長の種類に応じて設定されればよい。実施の形態１において説明したように、データパターン長は、最小検索単位であるビット幅またはバイト幅で設定することができる。
【０４２１】
なお、上述の説明においては、各エントリにおいては、格納される登録データパターンのパターン長が固定的に定められている。パタン長がＬとＬ／２バイトの間のデータパターンを格納する必要がある場合には、データ格納領域ＲＧの数を、格納データパターンのパターン長の種類に応じて増加させることにより、このようなデータパターン長に対しても対応することができる。
【０４２２】
以上のように、この発明の実施の形態４に従えば、データパターン格納領域を複数のデータパターン長に応じた領域に分割し、各領域に被検索データパターンを格納し、パターン長に応じてローカルマッチ線をグループ化して、一致判定を行なっている。これにより、１つのエントリに複数の被検索パターンをマッピングすることができ、エントリの空き領域を効率的に利用することができ、被検索データパターンの数が増大しても、エントリの増大を抑制することができる。
【０４２３】
［実施の形態５］
図６７は、この発明の実施の形態５に従う半導体信号処理装置の要部の構成を概略的に示す図である。図６７に示す構成において、ローカル一致判定回路ＬＭＤｉに対し、ローカル一致領域識別回路３２０ｉが設けられる。ローカル一致判定回路ＬＭＤｉの構成は、先の図４８に示す構成と同じである。また、メモリマットの構成も実施の形態４の構成と同じであり、各サブブロックにおいて、データパターン格納領域（ＤＰＳＧ）およびマッピングフラグ格納領域（ＭＦＬＧ）が設けられる。エントリ毎に複数のデータパターンを格納することが可能である。
【０４２４】
従って、ローカル一致判定回路ＬＭＤｉがサブブロックＳＢｉに対応して設けられ、ローカル一致領域識別回路３２０ｉもサブブロックＳＢｉに対して設けられる。
【０４２５】
ローカル一致領域識別回路３２０ｉは、ＯＲゲート２４０ａ−２４０ｆそれぞれに対応して設けられるインバータ３２２ａ−３２２ｆと、インバータ３２２ａ−３２２ｆの出力信号を保持するレジスタ回路ＲＧＫｉを含む。レジスタ回路ＲＧＫｉは、インバータ３２２ａ−３２２ｆそれぞれに対応して設けられるレジスタ３２４ａ−３２４ｆを含む。
【０４２６】
対応のサブブロックＳＢｉにおいて、パターン一致が検出された場合、ＯＲゲート２４０ａ−２４０ｆのいずれかの出力信号がＬレベルである。したがって、インバータ３２２ａ−３２２ｆにより、一致したデータパターン長に対応するインバータの出力信号が“１”となり、レジスタ回路ＲＧＫｉにおいて、レジスタ３２０ａ−３２０ｆの対応のレジスタにフラグ“１”がセットされる。これにより、一致したデータパターン長を識別することができ、また、一致したデータ格納領域（ＲＧ）を識別することができる。
【０４２７】
このとき、併せて一致エントリを示すエントリアドレスを外部に読出すことにより、一致データパターンを識別することができる。
【０４２８】
図６８は、図６７に示すローカル一致領域識別回路のサブブロック全体に対する配置を概略的に示す図である。図６８においては、各ローカル一致識別回路に含まれるレジスタ回路ＲＧＫｉを代表的に示す。レジスタ回路ＲＧＫ１−ＲＧＫｎは、サブブロックＳＢ１−ＳＢｎ（図６８には示さず）それぞれに対応して配置される。これらのレジスタ回路ＲＧＫ１−ＲＧＫｎ各々において、レジスタ３２４ａ−３２４ｆが、それぞれグローバル一致フラグ読出線３３２ａ−３３２ｆにワイヤードＯＲ結合される。
【０４２９】
これらのグローバル一致フラグ読出線３３２ａ−３３２ｆは、各々、スタンバイ時、プリチャージ回路３３０により、接地電圧レベルにプリチャージされる。グローバル一致フラグ読出線３３２ａ−３３２ｆ各々に対応して、バッファ３３４ａ−３３４ｆが設けられる。これらのバッファ３３４ａ−３３４ｆは、対応のグローバル一致フラグ読出線３３２ａ−３３２ｆ上の信号電位が増幅されて、一致パターン長識別フラグＦＰａ−ＦＰｆが生成されて外部へ出力される。これらの一致識別フラグＦＰａ−ＦＰｆを、外部でモニタすることにより、一致したパターン長を識別することができる。
【０４３０】
この場合、ローカル一致判定回路ＬＭＤ１−ＬＭＤｎの生成するローカル一致判定信号ＬＭＣＨ＜１：ｎ＞を併せて外部へ出力してもよい。この場合、いずれのサブブロックにおいて一致が生じたかを合わせて識別することができる。
【０４３１】
また、このとき、各検索サイクルごとに、アドレスカウンタのカウント値を保持することにより、一致エントリを合わせて識別することができる。
【０４３２】
［変更例］
図６９は、この発明の実施の形態５の変更例の構成を概略的に示す図である。この図６９に示す構成においては、図４９に示すローカル一致判定回路に対し、一致領域識別回路３２０ｉが設けられる。ローカル一致判定回路ＬＭＤｉの構成は，図４９に示す構成と同じであり、対応する部分には、同一参照符号を付して、その詳細説明は省略する。
【０４３３】
ローカル一致領域識別回路３２０ｉは、ローカルマッチ線アンプＡＭＰ０−ＡＭＰ５の出力信号をそれぞれ受けるインバータ３２２ａ−３２２ｆと、インバータ３２２ａ−３２２ｆの出力信号を保持するレジスタ回路ＲＥＧＫｉを含む。このレジスタ回路ＲＥＧＫｉは、インバータ３２２ａ−３２２ｆそれぞれに対応して設けられるレジスタ３２４ａ−３２４ｆを含む。
【０４３４】
この図６９に示す構成は、ローカル一致判定回路として図４９に示すローカル一致判定回路が用いられ、このローカル一致判定回路ＬＭＤｉに対してローカル一致領域識別回路３２０ｉが設けられる。ローカル一致線ＭＬ０−ＭＬ５は、それぞれ、パターン長Ｌ、Ｌ／２．Ｌ／４、Ｌ／８、およびＬ／１６に対応して配置される。
【０４３５】
マッチ線アンプＡＭＰ０−ＡＭＰ５は、それぞれパターン長に応じてローカルマッチ線ＭＬ０−ＭＬ５に対応して配置される。これらのマッチ線アンプＡＭＰ０−ＡＭＰ５の出力信号を、ローカル一致領域識別回路３２０ｉにおいて、インバータ３２２ａ‐３２２ｆを用いて反転してレジスタ回路ＲＥＧＫｉに格納する。レジスタ回路ＲＥＧＫｉのレジスタ３２４ａ‐３２４ｆの格納フラグをみることにより、各サブブロック毎に一致したデータパターン格納領域を識別することができ、応じて一致データパターン長を識別することができる。
【０４３６】
なお、全サブブロックにおける一致判定結果を見る構成としては、図６８に示す構成が利用される。
【０４３７】
図６７から図６９に示す構成においては、パターン長の種類が５の場合の構成を示している。しかしながら、この示される被検索データパターンの数は６に限定されず、さらに多く設けられてもよい。ローカル一致領域識別回路３２０ｉにおけるインバータおよびレジスタの数を、データパターン長の種類に対応して拡張することにより対応することができる。
【０４３８】
また、以下の構成が併せて用いられてもよい。すなわち、一致が検出されたサブブロックから、一致検出時のエントリアドレスに従ってマッピングフラグメモリ領域から対応のエントリのマッピングフラグビットを読出す。この一致検出されたエントリのマッピングフラグビットとローカル一致領域識別回路において一致検出されたパターン長とを照合することにより、確実に一致したデータパターンを識別することができる。
【０４３９】
また、一致したエントリを示すエントリアドレス、一致したサブブロックを示すブロックアドレスおよび一致したデータパターン長を示すパターン長フラグを用いて、一致したデータパターンを識別することができる。従って、これらのパラメータに従って一致パターンを識別する構成の場合には、特にマッピングフラグビットを用いなくてもよい。
【０４４０】
以上のようにこの発明の実施の形態５に従えば、各サブブロックごとに、一致したデータパターン長を示すフラグを格納して、外部へ読出可能に設定している。これにより、検索動作時、パターンが一致したとき、一致発生のみならず、一致したデータパターン長を識別することができる。
【０４４１】
さらに、一致発生時、アドレスカウンタのカウンタアドレスが、一致が検出されたエントリアドレスを指定しており、このカウンタアドレスを外部へ読出すことにより、一致したデータパターンを識別することができる。また、一致したエントリの対応のマッピングフラグビットを外部に読出すことにより、マッピングフラグビットおよび一致領域識別フラグを用いて２重に判定することができ、より正確に一致パターンの識別を行なうことができる。
【産業上の利用可能性】
【０４４２】
この発明は、ＮＩＤＳなどのような、不正アクセスを検出するためのパターン一致検出回路に適用することにより、効率的に数多くの被検索データパターンを登録することができ、小占有面積で信頼性の高いネットワーク不正侵入検出装置を実現することができる。
【０４４３】
また、この不正侵入検出のみならず、パターン長の異なる被検索データパターンに対するパターン一致を行なう一致検出回路に対して適用することにより、同様、エントリ数を増大させることなく、多くのデータパターンを登録して検索動作を行なうことができる。
【０４４４】
また、メモリセルとしては、電流誘起磁界により可変磁気抵抗素子の抵抗値が設定されるＭＲＡＭセルが用いられている。しかしながら、メモリセルとしては、可変磁気抵抗素子を流れる電流により抵抗値が変化するスピン注入方式ＭＲＡＭセルまたはトグルＭＲＡＭセルが用いられてもよい。
【符号の説明】
【０４４５】
ＭＣ，ＭＣＪ，ＭＣＫ，ＭＣＩ，ＭＣＡ，ＭＣＢ，ＭＣＡＬ，ＭＣＢＬ，ＭＣＢＲ，ＭＣＢＬ  メモリセル、ＭＴＪＩ，ＭＴＪＪ，ＭＴＪＫ，ＭＴＪＩｒ，ＭＴＪＩｌ，ＭＴＪＪｒ，ＭＴＪＪｌ，ＭＴＪＫｒ，ＭＴＪＫｌ  可変磁気抵抗素子、ＤＭＣｌ，ＤＭＣｒ，ＤＭＣ  ダミーセル、ＳＡＫ，ＳＡＫＬ，ＳＫＡＲ  センスアンプ回路、ＳＵＴ  記憶単位、ＷＤＶＬ１，ＷＤＶＬ２，ＷＤＶＲ１，ＷＤＶＲ２  ビット線書込ドライバ、ＭＬ，ＭＬ１−ＭＬ２＾ｋ  ローカルマッチ線、ＳＢ１−ＳＢｎ  サブブロック、ＲＴＵ（１，１）−ＲＴＵ（１，２＾ｋ）−ＲＴＵ（ｎ，２）−ＲＴＵ（ｎ，２＾ｋ）  検索単位、  ＬＭＤ１−ＬＭＤｎ  ローカル一致判定回路、ＧＭＤ  グローバル一致判定回路、ＤＭＭＣ  ダミーセル、３２  Ｌパターン長判定回路、３４  Ｌ／２パターン長判定回路、３６  Ｌ／４パターン長判定回路、３８  マルチプレクサ、４０  データパス、４６ｌ，４６ｒ，４８ｌ，４８ｒ  データ線書込ドライバ、４２ｌ，４２ｒ  インバータ、４４ｌ，４４ｒ  マルチプレクサ、５０  ローカル行選択駆動回路、５１  登録書込ワード線選択駆動回路、５２  登録読出ワード線選択駆動回路、５３  検索書込ワード線選択駆動回路、５４  検索読出ワード線選択駆動回路、５５  ダミー書込ワード線選択駆動回路、５６  ダミーワード線選択駆動回路、７０  制御回路、７２  書込経路設定回路、７３  登録書込ワード線活性化回路、７４  検索書込ワード線活性化回路、７５  登録読出ワード線活性化回路、７６  検索読出ワード線活性化回路、７７  ダミー書込ワード線活性化回路、７８  ダミー読出ワード線活性化回路、７９  読出活性制御回路、８０  アドレスカウンタ、８２  ブロックデコーダ、８３  バッファ、ＭＣＢ１−ＭＣＢｍ，ＭＣＡａ−ＭＣＡｂ  メモリセル、９０  検索書込ワード線選択駆動回路、９２  検索読出ワード線選択駆動回路、１００  フリップフロップ（ＦＦ）、１０２  検索書込ワード線活性化回路、１０４  検索読出ワード線活性化回路、１１０  第１検索書込ワード線活性化部、１１２  第２検索書込ワード線活性化部、１１４  第１検索読出ワード線活性化部、１１６  第２検索読出ワード線活性化部、ＴＸ１１，ＴＸ１２，ＴＸ２１，ＴＸ２２  スイッチングトランジスタ、ＧＲＤ  グローバル読出データ線、１５０  データパス、１６０  インバータ、１６２  マルチプレクサ、１６４  インバータ、１６６ｌ，１６６ｒ  マルチプレクサ、１６８ｌ，１６８ｒ  データ線書込ドライバ、１７０ｌ，１７０ｒ  データ線アンプ、１８０  読出ポインタ、１８２  書込ポインタ、１８４  ポインタ制御論理、１９０，１９２，１９４，１９６  マルチプレクサ、ＳＢＡｉ  サブアレイブロック、ＲＲＲ  検索データ格納領域、ＳＡＢ  センスアンプ帯、ＴＸＤＢ  経路切換回路帯、ＭＦＬＧ  マッピングフラグメモリ領域、ＤＰＳＧ  データパターン格納領域、２４０ａ−２４０ｆ  ＯＲゲート、２４２  ＡＮＤゲート、２４４  ＯＲゲート、２５０．０−２５０．５  トライステートバッファ、ＲＧ１−ＲＧ５  データ格納領域、２６０  アドレス発生回路、２７０  パターン行デコーダ、２７１Ｌ  アドレスカウンタ、２７２（Ｌ／２）  アドレスカウンタ、２７３（Ｌ／４）  アドレスカウンタ、２７４（Ｌ／８）  アドレスカウンタ、２７５（Ｌ／１６）  アドレスカウンタ、２７７  ゲート回路、２９０  マスクデコード回路、３００  フラグビットデコード回路、３１０  アドレスカウンタ、３１２  マルチプレクサ、３２０ａ  ローカル一致領域識別回路、３２２ａ−３２２ｆ  インバータ、ＲＥＧＫｉ  レジスタ回路、３２４ａ−３２４ｆ  レジスタ、３３０  プリチャージ回路、３３２ａ−３３２ｆ  グローバル一致フラグ読出線、３３４ａ−３３４ｆ  バッファ。
【図１】
2011081875.tif 000003
【図２】
2011081875.tif 000004
【図３】
2011081875.tif 000005
【図４】
2011081875.tif 000006
【図５】
2011081875.tif 000007
【図６】
2011081875.tif 000008
【図７】
2011081875.tif 000009
【図８】
2011081875.tif 000010
【図９】
2011081875.tif 000011
【図１０】
2011081875.tif 000012
【図１１】
2011081875.tif 000013
【図１２】
2011081875.tif 000014
【図１３】
2011081875.tif 000015
【図１４】
2011081875.tif 000016
【図１５】
2011081875.tif 000017
【図１６】
2011081875.tif 000018
【図１７】
2011081875.tif 000019
【図１８】
2011081875.tif 000020
【図１９】
2011081875.tif 000021
【図２０】
2011081875.tif 000022
【図２１】
2011081875.tif 000023
【図２２】
2011081875.tif 000024
【図２３】
2011081875.tif 000025
【図２４】
2011081875.tif 000026
【図２５】
2011081875.tif 000027
【図２６】
2011081875.tif 000028
【図２７】
2011081875.tif 000029
【図２８】
2011081875.tif 000030
【図２９】
2011081875.tif 000031
【図３０】
2011081875.tif 000032
【図３１】
2011081875.tif 000033
【図３２】
2011081875.tif 000034
【図３３】
2011081875.tif 000035
【図３４】
2011081875.tif 000036
【図３５】
2011081875.tif 000037
【図３６】
2011081875.tif 000038
【図３７】
2011081875.tif 000039
【図３８】
2011081875.tif 000040
【図３９】
2011081875.tif 000041
【図４０】
2011081875.tif 000042
【図４１】
2011081875.tif 000043
【図４２】
2011081875.tif 000044
【図４３】
2011081875.tif 000045
【図４４】
2011081875.tif 000046
【図４５】
2011081875.tif 000047
【図４６】
2011081875.tif 000048
【図４７】
2011081875.tif 000049
【図４８】
2011081875.tif 000050
【図４９】
2011081875.tif 000051
【図５０】
2011081875.tif 000052
【図５１】
2011081875.tif 000053
【図５２】
2011081875.tif 000054
【図５３】
2011081875.tif 000055
【図５４】
2011081875.tif 000056
【図５５】
2011081875.tif 000057
【図５６】
2011081875.tif 000058
【図５７】
2011081875.tif 000059
【図５８】
2011081875.tif 000060
【図５９】
2011081875.tif 000061
【図６０】
2011081875.tif 000062
【図６１】
2011081875.tif 000063
【図６２】
2011081875.tif 000064
【図６３】
2011081875.tif 000065
【図６４】
2011081875.tif 000066
【図６５】
2011081875.tif 000067
【図６６】
2011081875.tif 000068
【図６７】
2011081875.tif 000069
【図６８】
2011081875.tif 000070
【図６９】
2011081875.tif 000071