(57)【特許請求の範囲】
【請求項１】
行列状に配列され、各々が互いに直列に接続される第１および第２のＳＯＩトランジスタを含み、前記第１および第２のトランジスタの記憶データの演算結果を示す電流を供給する複数の演算子セルを含む演算子セルアレイを備え、前記演算子セルは、行方向に整列して配置される第１および第２の演算子セルが記憶単位を構成するように配置され、前記演算子セルアレイは、各々がパターン長の異なるデータパターンを格納することの出来る複数のデータエントリを含み、前記記憶単位の第１のＳＯＩトランジスタには互いに相補な被検索データが格納され、
各前記演算子セル列に対応して配置され、各々が対応の列の演算子セルの供給する電流を受ける複数のビット線、
検索動作時、選択されたデータエントリの第２のＳＯＩトランジスタに検索データを、記憶単位の第２のＳＯＩトランジスタには互いに相補なデータが格納されるように書込むとともに前記選択されたデータエントリの第１および第２のＳＯＩトランジスタを選択して前記選択された第１および第２のＳＯＩトランジスタの記憶データに応じた電流を対応のビット線に流す行選択駆動回路、
各前記ビット線に対応して設けられ、各々が対応のビット線の電流に応じた電流を供給する複数のセンスアンプ回路、および
前記選択されたデータエントリの格納可能なパターン長に応じて各々が配置され、前記センスアンプ回路から供給される電流に基いて該対応のデータパターン長毎に前記選択されたデータエントリの記憶データと検索データとの一致／不一致を判定し、該判定結果に従って、前記選択されたデータエントリの格納データと前記検索データとのパターンの一致／不一致を示す信号を生成する電流検出／一致判定回路を備える、半導体信号処理装置。
【請求項２】
前記演算子セルアレイは、列方向に沿って各々が所定のビット幅を有する複数の検索単位に分割され、
前記電流検出／一致判定回路は、
前記検索単位各々に対応して配置されるとともに前記記憶可能なパターン長それぞれに対応してグループ化され、各々が対応の検索単位のセンスアンプ回路からの電流が供給される複数のマッチ線、
前記複数のマッチ線のグループそれぞれに対応して配置され、各々が対応のグループのマッチ線の電位に従って一致判定結果を示す信号を生成する複数のゲートを備える、請求項１記載の半導体信号処理装置。
【請求項３】
前記演算子セルアレイは、前記パターン長毎に、各々が複数のデータエントリを有する複数のサブブロックに分割され、
前記電流検出／一致判定回路は、各前記サブブロックそれぞれに対応して配置され、
前記電流検出／一致判定回路は、さらに、
対応のサブブロックに対して割当てられたパターン長を示す信号に従って、前記複数のゲートの出力信号のうちの指定されたパターン長に対応するゲートの出力信号を選択するマルチプレクサをさらに備える、請求項２記載の半導体信号処理装置。
【請求項４】
各前記データエントリは、複数のパターン長の異なるデータを格納することが可能であり、
前記電流検出／一致判定回路は、
前記複数のゲートの出力信号を受けて最終判定信号を生成する判定ゲートをさらに備える、請求項２記載の半導体信号処理装置。
【請求項５】
前記電流検出／一致判定回路は、
各前記ビット線に対応して配置され、各々が対応のビット線の電流を検知増幅するセン
スアンプ回路と、
前記データエントリの記憶可能なパターン長それぞれに対応して配置され、各々が対応のパターン長のデータに割当てられたセンスアンプ回路からの電流が供給される複数のマッチ線と、
前記複数のマッチ線各々に対応して配置され、各々が対応のマッチ線の電位に従って一致判定結果を示す信号を生成する複数のゲートと、
前記複数のゲートの出力信号に従って最終一致判定信号を生成する判定ゲートをさらに備える、請求項１記載の半導体信号処理装置。
【請求項６】
前記複数のゲートの出力信号を受けて前記複数のパターン長のうちの一致したパターン長を示すフラグを保持する一致パターン長判定回路をさらに備える、請求項４または５記載の半導体信号処理装置。
【請求項７】
前記演算子セルアレイは、与えられた検索データを一次的に保持するＦＩＦＯ領域をさらに備え、前記ＦＩＦＯ領域は、前記データエントリと同一構成のＦＩＦＯエントリを備え、
前記半導体信号処理装置は、
前記演算子セルアレイの演算子セル列に対応して配置されるグローバル読出データ線と、
前記センスアンプ回路それぞれに対応して配置され、各々が属性指示信号に従って対応のセンスアンプ回路の出力信号を前記電流検出／一致判定回路および対応のグローバル読出データ線の一方に伝達する複数の経路切換ゲートと、
前記演算子セルアレイの演算子セル列に対応して配置され、各々が対応の列の選択されたデータエントリの演算子セルの第１のトランジスタに検索データを転送する複数の第１のグローバル書込データ線と、
前記演算子セルアレイの演算子セル列に対応して配置され、各々が対応の列の選択されたデータエントリの演算子セルの第２のトランジスタに検索データを転送する複数の第２のグローバル書込データ線と、
検索動作時、与えられた検索データを前記ＦＩＦＯ領域の書込アドレスが指定するエントリの演算子セルに第１のグローバル書込データ線を介して転送して書込む書込制御回路と、
前記検索動作時、前記ＦＩＦＯ領域の読出アドレスが指定するエントリの演算子セルの第１のトランジスタの記憶データを読出して前記第２のグローバル書込データ線を介して前記選択されたデータエントリの演算子セルの第２のトランジスタに転送する読出制御回路と、
前記検索動作時、前記書込アドレスおよび読出アドレスを生成するポインタとをさらに備える、請求項１記載の半導体信号処理装置。
【請求項８】
前記演算子セル列に対応して配置され、各々が対応の列の演算子セルの第１のトランジスタに書込データを転送する第１のグローバル書込データ線、
前記演算子セル列に対応して配置され、各々が対応の列の演算子セルの第２のトランジスタに書込データを転送する第２のグローバル書込データ線と、
前記演算子セル列に対応して配置され、各々が対応の列のセンスアンプ回路の出力信号を受ける複数のグローバル読出データ線と、
前記演算子セル列に対応して配置され、各々が、選択信号に従って、外部からの検索データおよび対応のグローバル読出データ線上のデータの一方を選択して対応の第２のグローバル書込データ線に伝達するデータパス切換ゲートをさらに備える、請求項１記載の半導体信号処理装置。
【請求項９】
前記演算子セル列に対応して配置され、各々が対応の列の演算子セルの第１のトラン
ジスタに書込データを転送する第１のグローバル書込データ線、
前記演算子セル列に対応して配置され、各々が対応の列の演算子セルの第２のトランジスタに書込データを転送する第２のグローバル書込データ線と、
前記演算子セル列に対応して配置され、各々が対応の列のセンスアンプ回路の出力信号を受ける複数のグローバル読出データ線と、
前記演算子セル列に対応して配置され、各々が、選択信号に従って、外部からのデータおよび対応のグローバル読出データ線上のデータの一方を選択して対応の第１のグローバル書込データ線に伝達するデータパス切換ゲートをさらに備える、請求項１記載の半導体信号処理装置。
【請求項１０】
各前記データエントリに対応して配置されるフラグエントリを含み、対応のデータエントリに格納されるデータのパターン長を示すフラグを格納するマッピングフラグメモリ領域をさらに備える、請求項１記載の半導体信号処理装置。
【請求項１１】
前記演算子セルの第１および第２のＳＯＩトランジスタは、第１導電型の矩形状の第１の活性領域に第１の不純物領域を共有するように形成され、
各前記演算子セルは、さらに、
前記第１の活性領域に隣接してかつ長さ方向において位置をずらせて配置される第２導電型の矩形状の第２の活性領域と、
前記第１の活性領域に隣接してかつ前記第２の活性領域と前記第１の活性領域に関して対向して配置される第２導電型の矩形状の第３の活性領域とを備え、前記第１、第２および第３の活性領域は互いに長さ方向において位置をずらせて配置され、かつ前記第２および第３の活性領域には、それぞれ、前記第１および第２のＳＯＩトランジスタと導電型の異なる第３および第４のＳＯＩトランジスタが形成され、
前記第１および第２の活性領域を前記長さ方向と直交する幅方向に沿って横切るように配置され、前記第１のＳＯＩトランジスタのゲートを構成する第１の導電配線と、
前記第１の導電配線と離れて、前記第１および第３の活性領域を前記幅方向に沿って横切るように配置され、前記第２のＳＯＩトランジスタのゲートを構成する第２の導電配線と、
前記第２の活性領域を幅方向に沿って横切るように配置され、前記第３のＳＯＩトランジスタのゲートを構成する第３の導電配線と、
前記第３の活性領域を前記幅方向に沿って横切るように配置され、前記第４のＳＯＩトランジスタのゲートを構成する第４の導電配線と、
前記第１および第２の活性領域を前記幅方向に横切るように前記第１および第３の導電配線の間に配置され、前記第１の活性領域の前記第１の不純物領域と異なる第２の不純物領域に所定の電圧を伝達する固定電圧配線とを備え、
前記第１の活性領域の前記第１の不純物領域に関して前記第２の不純物領域と対向する第３の不純物領域は長さ方向に延在するビット線を構成する導電配線に結合され、
前記第２の活性領域の前記第１の活性領域に隣接する第４の不純物領域は前記第１の活性領域の前記第１の導電配線下部の領域と電気的に接続され、かつ前記第２の活性領域の前記第４の不純物領域と前記第３の導電配線に関して対向する第５の不純物領域は長さ方向に延在する第１の書込データ伝達線を介して第１の書込データを受け、
前記第３の活性領域の前記第１の活性領域に隣接する第６の不純物領域は、前記第１の活性領域の前記第２の導電配線下部の領域と電気的に接続され、かつ前記第３の活性領域の前記第４の導電配線に関して前記第６の不純物領域と対向する第７の不純物領域は前記長さ方向に延在する第２の書込データ伝達線を介して第２の書込データを受ける、請求項１記載の半導体信号処理装置。
【請求項１２】
行列状に配列され、各々が情報をアクセス可能に記憶することのできる第１および第２のＳＯＩトランジスタが直列接続される複数の演算子セルを有するメモリアレイを備え、
前記演算子セルは相補データを記憶する２つの演算子セルが記憶単位を構成するように配置され、かつ前記メモリアレイは列方向に沿って複数のサブブロックに分割され、
前記列方向に沿って前記サブブロックに共通にかつ前記演算子セル列に対応して配置され、各々が対応の列の演算子セルの第１のトランジスタに書込データを転送する第１のグローバル書込データ線、
各々が演算子セル行に対応して配置され、対応の行の演算子セルの第１のＳＯＩトランジスタを選択して対応の第１のグローバル書込データ線を介して転送されるデータを書込む書込行選択駆動回路、
行方向に沿って各サブブロック毎に演算子セル行に共通に相補検索データを転送する第２のグローバル書込データ線、
検索時、演算子セル行に対応して配置され、前記第２のグローバル書込データ線を介して転送されるデータを対応のメモリセル行の第２のＳＯＩトランジスタに書込む第２の書込行選択駆動回路、
各サブブロックにおいて演算子セル列に対応して配置され、対応の列の演算子セルへ結合される複数のビット線、
前記検索時、サブブロックにおいて複数の演算子セルを並行して選択してこれらの選択演算子セルの記憶データを並行して対応のビット線に読出すローカル読出行選択駆動回路、
各前記ビット線に対応して配置され、各々が対応のビット線の電位に従って対応の列の演算子セルの記憶データを読出すセンスアンプ回路、
前記サブブロックに共通に各演算子セル列に対応して配置され、各々が対応の列のセンスアンプ回路のデータを受けるグローバル読出データ線、および
各演算子セルの記憶単位に対応してかつ複数のサブブロックに共通に配置され、各々が対応の列のグローバル読出データ線のデータに従って一致／不一致を示す信号を生成する一致判定確定回路を備え、
前記メモリアレイは、さらに前記行方向に沿って複数の領域に分割され、各領域にはパターン長の異なる検索データを格納することが可能であり、さらに
前記領域の格納されるデータのパターン長に応じて前記演算子セルのデータの読出、前記センスアンプ回路の活性化および前記グローバル読出データ線のプリチャージを制御する読出制御回路を備える、半導体信号処理装置。
【請求項１３】
前記複数の領域各々には格納されるデータパターン長が予め割当てられ、前記サブブロックは、データパターン長に対応してグループ化され、
前記読出制御回路は、前記データパターン長に対応するサブブロックグループ単位で順次サブブロックを活性化し、かつ
前記一致判定確定回路は、対応のグローバル読出しデータ線の信号を活性化時増幅するデータアンプと、前記データアンプの出力信号をラッチするラッチ回路とを含み、
前記読出制御回路は、前記複数の領域のうちの最長のデータパターンを格納する領域を除いて、前記一致判定確定回路の前記データアンプの非活性化および前記グローバル読出データ線のプリチャージを前記サブブロックグループ活性化期間終了に従って行い、かつ前記最長のデータパタンを格納する領域に対しては前記サブブロックグループのうちの最後のサブブロックグループの活性化に従って対応の一致判定確定回路を活性化しかつ前記最後のサブブロックグループの活性化終了後に対応のグローバル読出データ線のプリチャージを実行する、請求項１２記載の半導体信号処理装置。
【請求項１４】
前記演算子セルの第１および第２のＳＯＩトランジスタは、第１導電型の矩形状の第１の活性領域に第１の不純物領域を共有するように形成され、
各前記演算子セルは、さらに、
前記第１の活性領域に隣接してかつ前記列が延在する列方向に対応する長さ方向において位置をずらせて配置される第２導電型の矩形状の第２の活性領域と、
前記第１の活性領域に隣接してかつ前記第２の活性領域と前記第１の活性領域に関して対向して配置される第２導電型の矩形状の第３の活性領域とを備え、前記第１、第２および第３の活性領域は互いに前記長さ方向において位置をずらせて配置され、かつ前記第２および第３の活性領域には、それぞれ、前記第１および第２のＳＯＩトランジスタと導電型の異なる第３および第４のＳＯＩトランジスタが形成され、
前記第１および第２の活性領域を前記長さ方向と直交する前記行が延在する行方向に対応する幅方向に沿って横切るように配置され、前記第１のＳＯＩトランジスタのゲートを構成する第１の導電配線と、
前記第１の導電配線と離れて、前記第１および第３の活性領域を前記幅方向に沿って横切るように配置され、前記第２のＳＯＩトランジスタのゲートを構成する第２の導電配線と、
前記第２の活性領域を幅方向に沿って横切るように配置され、前記第３のＳＯＩトランジスタのゲートを構成する第３の導電配線と、
前記第３の活性領域を前記幅方向に沿って横切るように配置され、前記第４のＳＯＩトランジスタのゲートを構成する第４の導電配線と、
前記第１および第２の活性領域を前記幅方向に横切るように前記第１および第３の導電配線の間に配置され、前記第１の活性領域の前記第１の不純物領域と異なる第２の不純物領域に所定の電圧を伝達する固定電圧配線とを備え、
前記第１の活性領域の前記第１の不純物領域に関して前記第２の不純物領域と対向する第３の不純物領域は前記長さ方向に延在するビット線を構成する導電配線に結合され、
前記第２の活性領域の前記第１の活性領域に隣接する第４の不純物領域は前記第１の活性領域の前記第１の導電配線下部の領域と電気的に接続され、かつ前記第２の活性領域の前記第４の不純物領域と前記第３の導電配線に関して対向する第５の不純物領域は前記幅方向に延在する前記第２のグローバル書込データ線を構成する第１の書込データ伝達線および分岐配線を介して第１の書込データを受け、
前記第３の活性領域の前記第１の活性領域に隣接する第６の不純物領域は、前記第１の活性領域の前記第２の導電配線下部の領域と電気的に接続され、かつ前記第３の活性領域の前記第４の導電配線に関して対向する第７の不純物領域は前記長さ方向に延在する前記第１のグローバル書込データ線を構成する第２の書込データ伝達線を介して第２の書込データを受ける、請求項１２記載の半導体信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体信号処理装置に関し、特に、半導体メモリを用いて内部で演算を実行する機能を有する半導体信号処理装置に関する。より特定的には、この発明は、入力データパターンと登録データパターンとの一致／不一致を検出する半導体信号処理装置に関する。
【背景技術】
【０００２】
通信ネットワークを介してのデータ通信においては、不正アクセスを意図するデータが通信されることが多い。このような不正アクセスを防止するために、ネットワークのサイトまたはルータなどの種々の場所において種々の安全対策が施されている。このような安全対策の１つに、ネットワーク侵入者検知システム（ＮＩＤＳ：Network Intrusion Detection System）と呼ばれるシステムがある。ＮＩＤＳは、ネットワーク上を流れるデータパケットを監視し、悪意のある侵入およびコンピュータウイルスなどの処理システム（サーバまたはパーソナルコンピュータ等）への攻撃を検知する。この検知した攻撃情報をログに保存するとともにアラームを発行して、システムのセキュリティ保持の一翼を担う。
【０００３】
このようなＮＩＤＳの中核構成要素として、ネットワークを介して転送されるペイロード中の攻撃パケット（データパターン）を検知する文字列パターン検索デバイスが存在する。このようなパターン検索デバイスの一例が、非特許文献１（F. Yu, R.H. Katz, T.V. Lakshman, “Gigabit Rate Packet Pattern-Matching Using TCAM,” 12th IEEE ICNP'04 Digest of Technical Papers, pp174-pp183, 2004.）に示されている。この攻撃パケットの検知は、パターンマッチング法を用いて行われ、非特許文献１においては、ＴＣＡＭ（３値ＣＡＭ：３値連想メモリ）を用いてパターン検出が行なわれる。ＴＣＡＭは、入力として検索データを与え、この検索データと同一内容を保持するメモリアドレスを出力するという連想メモリ（ＣＡＭ）の機能を拡張したものである。ＴＣＡＭは、“１”および“０”のビットの一致／不一致の判定の他に、そのビットが“１”および“０”のいずれであってもデータビットが一致するとみなす“don't care”状態を許容する、３値判定を行なうことができる。
【０００４】
この非特許文献１に示されるパターン検索は以下のようにして実行される。すなわち、ＴＣＡＭの各エントリに、予め被検索パターン（登録パターン）が所定の優先順位に従って格納される。入力されるストリング（文字列）の最初のｗバイトのパターンについて、ＴＣＡＭの各エントリにマッピングされている被検索パターンと平行して比較し、一致したエントリがあれば対応のアドレス（インデックス）が報告される。各エントリについての検索が完了すると、入力ストリングを１バイトシフトし、次のｗバイトのパターンについての検索動作を実行する。この検索動作を繰返す。一致したエントリのアドレス（レコード）を用いてテーブルを参照し、一致したデータパターンを識別する。
【０００５】
一般に、ＮＩＤＳ等で使用される文字列検索パターン長は、非特許文献１において記載され、また、非特許文献２（S. Dharmarpuricar et. at., "Fast and Scalable Pattern Matching for Network Intrusion Detection System," IEEE, Journal on Selected Areas in Communications, Vol 24, No. 10, October 2006, pp. 1781- 1792） においても記載されているように、１０から数千バイトの範囲でパターン長が分布し、そのパターン長の候補として数百のパターン長が存在する。このパターン長は、２０バイト以下の検索パターンが約８割近くを占める偏った分布を有している（非特許文献２の図４参照）。
【０００６】
非特許文献１においては、マッチ線長（エントリのビット幅）で決定されるＴＣＡＭ幅よりもマッピングする被検索パターン長が短い場合に、“don't care”状態の情報をマッピングすることにより、パターン長をＴＣＡＭ幅に一致させる。これにより、ＮＩＤＳで要求される可変長文字列パターンを各エントリにマッピングして、検索を実行する。
【０００７】
また、非特許文献２は、任意のパターン長のデータ検索を行うことを図る構成を開示している。具体的に、非特許文献２においては、ブルームフィルタを用いて前処理として検索を行い、その後ハッシュテーブルを用いて一致検索を行っている。入力データパターンを１バイトずつシフトして検索を行う。検索アルゴリズムとしてツリー状にパターン検索を行うアルゴリズムが利用される。
【０００８】
また、検索データのビット幅が可変な場合のデータ検索を行なう構成が、特許文献１（特開平９−１６１４８８号公報）、特許文献２（特開平２−３０８４９９号公報）、および特許文献３（特開平１１−２７３３６３号公報）に示されている。
【０００９】
特許文献１（特開平９−１６１４８８号公報）に示される構成においては、メモリアレイを複数のブロックに分割し、各ブロックに対応して比較器を配置する。各ブロックは複数のエントリで構成され、複数のブロックにおいて並列にエントリを選択する。エントリのビット幅は固定であるものの、エントリにマッピングされたビットにおいてマスクビットを設けることにより、被検索データのビット幅を変更可能とし、応じて、入力された検索データのビット幅を変更する。比較は、非特許文献１においては、マッチ線長（エントリのビット幅）で決定されるＴＣＡＭ幅よりもマッピングする被検索パターン長が短い場合に、“don't care”状態の情報をマッピングすることにより、パターン長をＴＣＡＭ幅に一致する。これにより、ＮＩＤＳで要求される可変長文字列パターンを各エントリにマッピングして、検索を実行する。各ブロックにおいて各エントリ毎に順次実行される。
【００１０】
特許文献２（特開平２−３０８４９９号公報）に示される構成においても、メモリアレイを複数のセルブロックに分割し、セルブロック個々の検索結果を合成して、最終検索結果を生成する。この特許文献２に示される構成においては、検索データのビット幅を変更可能とする構成は示されていない。この特許文献２においては、ＢＣＡＭ（２値ＣＡＭ）セル構造がメモリセル構造として示されているだけである。
【００１１】
特許文献３（特開平１１−２７３３６３号公報）に示される構成においては、ＣＡＭアレイを複数個上位から下位に順序付けて設け、各ＣＡＭアレイ位置に応じて入力データを分割して与える。複数のＣＡＭアレイの同一アドレスには、同じパターンに関連するデータパターンが格納される。検索時、下位のＣＡＭアレイにおいて一致が検索された場合、下位ＣＡＭアレイの一致アドレスを用いて上位側のＣＡＭアレイにおいて検索を行ない、この上位側ＣＡＭアレイの一致アドレスと下位側ＣＡＭアレイの一致アドレスが一致した場合には、検索データと格納データパターンが一致したと判定される。下位側ＣＡＭアレイおよび上位側ＣＡＭアレイの一致アドレスが不一致の場合には、上位側のＣＡＭアレイの一致アドレスを用いて下位側ＣＡＭアレイで検索を行ない、下位側ＣＡＭアレイにおいて一致／不一致を判定する。この特許文献３は、検索データパターン長に応じてＣＡＭアレイを複数個設けることにより、任意のビット幅のデータパターンの検索を行なうことを図る。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平９−１６１４８８号公報
【特許文献２】特開平２−３０８４９９号公報
【特許文献３】特開平１１−２７３３６３号公報
【非特許文献】
【００１３】
【非特許文献１】F. Yu, R.H. Katz, T.V. Lakshman, “Gigabit Rate Packet Pattern-Matching Using TCAM,” 12th IEEE ICNP'04 Digest of Technical Papers, pp174-pp183, 2004.
【非特許文献２】S. Dharmarpuricar et. at., "Fast and Scalable Pattern Matching for Network Intrusion Detection System," IEEE, Journal on Selected Areas in Communications, Vol 24, No. 10, October 2006, pp. 1781- 1792．
【発明の概要】
【発明が解決しようとする課題】
【００１４】
上述の非特許文献１、２および特許文献１から３に示される構成においては、１エントリには１被検索データパターン（登録パターン）がマッピングされる。ＴＣＡＭ等のＣＡＭにマッピングすることのできる最大被検索パターン数は、ＣＡＭ内に準備されるエントリ数で決定される。したがって、被検索パターンのマッピング数（登録数）をさらに増大させるためには、ＣＡＭの容量を増大させる必要がある。この場合、レイアウト面積および消費電流が増大する。また、これに代えて、被検索パターン長を犠牲にし、マッチング線の長さ（エントリのビット幅）を短くし、その分エントリ数を増大することが考えられる。しかしながら、この場合、パターン長について偏った分布を有する文字列検索パターンに対しては、マッピング効率が低下し、正確な検索を行なうことができなくなるという問題が生じる。
【００１５】
特に、ウイルスやワームなどの不正侵入を検出する場合、被検索パターン数が制限される場合、信頼性の高い不正アクセス検出システムを構築することができず、システムのセキュリティを保証することができなくなる。
【００１６】
それゆえ、この発明の目的は、メモリ容量を増大させることなく複数のパターン長の被検索パターンを効率的にマッピングすることのできる半導体信号処理装置を提供することである。
【００１７】
この発明の他の目的は、エントリ数の増大を抑制しつつ多くの被検索パターンを効率的にマッピングすることができるとともに検索パターンの一致判定を確実に行なうことのできる半導体信号処理装置を提供することである。
【課題を解決するための手段】
【００１８】
この発明に係る半導体信号処理装置は、一実施の形態においては、行列状に配列され、各々が互いに直列に接続される第１および第２のＳＯＩトランジスタを有しかつこれらの第１および第２のトランジスタの記憶データの演算結果を示す電流を供給する複数の演算子セルを有する演算子セルアレイを含む。演算子セルは、行方向に整列して配置される第１および第２のセルが記憶単位を構成するように配置される。演算子セルアレイは、各々がパターン長の異なるデータパターンを格納することのできる複数のデータエントリを含む。記憶単位の第１および第２のトランジスタには、互いに相補なデータが格納される。
【００１９】
この一実施の形態において、半導体信号処理装置は、さらに、各演算子セル列に対応して配置され、各々が対応の列の演算子セルの供給する電流を受ける複数のビット線と、検索動作時、選択されたデータエントリの第２のトランジスタに検索データを書込むとともに該選択されたデータエントリの第１および第２のトランジスタを選択して該選択された第１および第２のトランジスタの記憶データに応じた電流を対応のビット線に流す行選択駆動回路と、各ビット線に対応して設けられ、各々が対応のビット線の電流に応じた電流を供給する複数のセンスアンプ回路と、該選択されたデータエントリの格納可能なパターン長に応じて各々が配置され、センスアンプ回路から供給される電流に基いて該対応のデータパターン長毎に選択されたデータエントリの記憶データと検索データとの一致／不一致を判定し、該判定結果に従って、選択されたデータエントリの格納データと前記検索データとのパターンの一致／不一致を示す信号を生成する電流検出／一致判定回路を備える。
【００２０】
別の実施の形態において、この発明に係る半導体信号処理装置は、行列状に配列され、各々が情報をアクセス可能に記憶することができる第１および第２のＳＯＩトランジスタが直列に接続される複数のメモリセルを有するメモリアレイを含む。この演算子セルは相補データを記憶する２つの演算子セルが記憶単位を構成するように配置される。演算子セルアレイは列方向に沿って複数のサブブロックに分割される。
【００２１】
この別の実施の形態における半導体信号処理装置は、さらに、列方向に沿ってサブブロックに共通にかつ前記演算子セル列に対応して配置され、各々が対応の列の演算子セルの第１のトランジスタに書込データを転送する第１のグローバル書込データ線と、各々が演算子セル行に対応して配置され、対応の行の演算子セルの第１トランジスタを選択して対応の第１のグローバル書込データ線を介して転送されるデータを書込む書込行選択駆動回路と、行方向に沿って各サブブロック毎に演算子セル行に共通に相補検索データを転送する第２のグローバル書込データ線と、検索時、演算子セル行に対応して配置され、第２のグローバル書込データ線を介して転送されるデータを対応のメモリセル行の第２のトランジスタに書込む第２の書込行選択駆動回路と、各サブブロックにおいて演算子セル列に対応して配置され、対応の列のメモリセルへ結合される複数のビット線と、検索時、サブブロックにおいて複数の演算子セルを並行して選択してこれらの選択演算子セルの記憶データを並行して対応のビット線に読出すローカル読出行選択駆動回路と、各ビット線に対応して配置され、各々が対応のビット線の電位に従って対応の列の演算子セルの記憶データを読出すセンスアンプ回路と、サブブロックに共通に各演算子セル列に対応して配置され、各々が対応の列のセンスアンプ回路のデータを受けるグローバル読出データ線と、各演算子セルの記憶単位列に対応してかつ複数のサブブロックに共通に配置され、各々が対応の列のグローバル読出データ線のデータに従って一致／不一致を示す信号を生成する一致判定確定回路とを備える。演算子セルアレイは、さらに行方向に沿って複数の領域に分割され、各領域にはパターン長の異なる検索データを格納することが可能である。
【００２２】
該別の実施の形態おいて、この発明に従う半導体信号処理装置は、領域の格納されるデータのパターン長に応じて演算子セルのデータの読出、センスアンプ回路の活性化およびグローバル読出データ線のプリチャージを制御する読出制御回路を備える。
【発明の効果】
【００２３】
演算子セルアレイにおいて記憶単位を２つの演算子セルで構成し、これらの演算子セルのデータの書込および読出可能な第１および第２のＳＯＩトランジスタの直列体を用いて、記憶データ（被検索データ）と外部からのデータ（検索データ）の一致／不一致に応じた信号を生成する。演算子セルは、最大４個のトランジスタで構成され、通常のＴＣＡＭよりも演算子セルアレイのレイアウト面積を低減することができる。
【００２４】
また、各エントリには、１または複数のデータ（被検索データ）を格納することができ、１エントリを１データパターンに対応させる必要がなく、エントリ数を低減することができる。これにより、エントリ数の増大を抑制して、効率的に被検索パターンをマッピングして、検索データのパターンマッチングの処理を行なうことができる。
【００２５】
また、検索データは、列方向に沿って印加する場合、サブブロックをデータパターン長に応じて選択して対応のグローバル読出データ線にデータを読出す。これにより、複数のパターン長の異なるデータパターンが格納されても、パターン長に応じてデータの一致／不一致を判定することができる。また、行方向に沿って各演算子セル列毎にデータの一致／不一致を判定することができ、検索データをより効率的に格納することができる。
【図面の簡単な説明】
【００２６】
【図１】この発明の実施の形態１に従う半導体信号処理装置において用いられる記憶単位の構成を示す図である。
【図２】図１に示す記憶単位の平面レイアウトを概略的に示す図である。
【図３】図２に示す平面レイアウトの活性領域の配置を概略的に示す図である。
【図４】図１に示す記憶単位を構成する演算子セルの記憶データと出力データとの対応を一覧にして示す図である。
【図５】図１に示す記憶単位の記憶データと出力データとの対応を概略的に示す図である。
【図６】この発明の実施の形態１に従う半導体信号処理装置の１つの記憶単位に関連する部分のデータ読出経路の構成を概略的に示す図である。
【図７】図６に示すダミー演算子セルの構成の一例を示す図である。
【図８】演算子セルの記憶データと読出電流の対応を概略的に示す図である。
【図９】図６に示すセンスアンプ回路の構成の一例を示す図である。
【図１０】図１に示す記憶単位の記憶データとセンス電流との対応を一覧にして示す図である。
【図１１】この発明の実施の形態１に従う半導体信号処理装置のデータ読出に関連する部分の構成を概略的に示す図である。
【図１２】図１１に示すサブブロックの構成を概略的に示す図である。
【図１３】図１１に示すローカル一致判定回路の構成を概略的に示す図である。
【図１４】各サブブロックにおけるエントリに格納されるデータパターンのパターン長を示す図である。
【図１５】各サブブロックに格納される被検索データパターンの配置の一例を示す図である。
【図１６】検索動作時の検索データの入力シーケンスを概略的に示す図である。
【図１７】（Ａ）はこの発明の実施の形態１に従う半導体信号処理装置のデータ書込に関連する部分の構成を概略的に示す図であり、（Ｂ）は図１７（Ａ）に示すＬ選択マスク回路の構成を示す図であり、（Ｃ）は、図１７（Ａ）に示すＲ選択マスク回路の構成を示す図である。
【図１８】この発明の実施の形態１に従う半導体信号処理装置における書込データおよび読出データの転送経路を概略的に示す図である。
【図１９】この発明の実施の形態１における被検索パターン書込動作を示すタイミング図である。
【図２０】この発明の実施の形態１における検索動作を示すタイミング図である。
【図２１】この発明の実施の形態１に従う半導体信号処理装置のローカル行選択駆動回路の構成の一例を概略的に示す図である。
【図２２】この発明の実施の形態１に従う半導体信号処理装置の制御回路の構成の一例を概略的に示す図である。
【図２３】この発明の実施の形態２に従う半導体信号処理装置のサブアレイブロックの構成を概略的に示す図である。
【図２４】この発明の実施の形態２に従う半導体信号処理装置のデータパスの構成を概略的に示す図である。
【図２５】図２４に示す配置におけるデータパスの書込データの転送経路を概略的に示す図である。
【図２６】図２４に示す配置における検索動作時の書込データの転送経路を概略的に示す図である。
【図２７】図２４に示す配置における初期設定時の初期設定データの転送経路を概略的に示す図である。
【図２８】この発明の実施の形態２に従う半導体信号処理装置のＴＣＡＭ領域およびＦＩＦＯ領域の配置を概略的に示す図である。
【図２９】図２８に示すＦＩＦＯ領域に対するポインタの発生シーケンスを概略的に示す図である。
【図３０】この発明の実施の形態２に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。
【図３１】この発明の実施の形態２に従う半導体信号処理装置のサブ行選択駆動回路の構成を概略的に示す図である。
【図３２】この発明の実施の形態３に従う半導体信号処理装置のサブブロックの構成を概略的に示す図である。
【図３３】図３２に示す構成における１エントリに格納可能なパターン長を概略的に示す図である。
【図３４】この発明の実施の形態３における各エントリに格納されるデータパターンの配置の一例を示す図である。
【図３５】この発明の実施の形態３に従う半導体信号処理装置のローカルマッチ線およびローカル一致判定回路の配置を概略的に示す図である。
【図３６】図３５に示すローカル一致判定回路の構成の一例を概略的に示す図である。
【図３７】この発明の実施の形態３に従う半導体信号処理装置のローカルマッチ線およびローカル一致判定回路の変更例を配置を概略的に示す図である。
【図３８】この発明の実施の形態３に従う半導体信号処理装置のデータパターン格納領域への被検索パターン書込時の動作シーケンスを示す図である。
【図３９】図３８に示す構成におけるパターン長Ｌのデータパターン格納時の態様を概略的に示す図である。
【図４０】図３８に示す構成におけるパターン長Ｌ／２のデータパターン格納時の概略的に示す図である。
【図４１】図３８に示す配置におけるパターン長Ｌ／２のデータパターンの格納の態様の一例を示す図である。
【図４２】図３８に示す配置におけるパターン長Ｌ／４のデータパターン格納の態様を示す図である。
【図４３】図３８に示す配置におけるパターン長Ｌ／８のデータパターンの格納の態様を示す図である。
【図４４】図３８に示す構成におけるパターン長Ｌ／８の格納態様を示す図である。
【図４５】この発明の実施の形態３におけるデータパスの構成を概略的に示す図である。
【図４６】図４５に示すデータパスのマッピングフラグ格納部に対応する部分の構成を概略的に示す図である。
【図４７】図４６に示すデータパスブロックのデータ書込時のデータ転送経路を概略的に示す図である。
【図４８】図４６に示すデータパスブロックの検索動作時のデータ転送経路を概略的に示す図である。
【図４９】図４５に示すデータパスのパターンデータ格納領域に対応するデータパスブロックの構成を具体的に示す図である。
【図５０】図４９に示すデータパスブロックのマスク付きデータ書込時の書込データ転送経路を概略的に示す図である。
【図５１】この発明の実施の形態３における書込データ転送時のパケット形態を概略的に示す図である。
【図５２】図５１に示すデータパケットの構成の一具体例を概略的に示す図である。
【図５３】この発明の実施の形態３における半導体信号処理装置の書込アドレス発生部の構成を概略的に示す図である。
【図５４】この発明の実施の形態３に従う半導体信号処理装置の各データパスブロックの構成を概略的に示す図である。
【図５５】図５４に示すデータパスブロックのローカル選択信号と各マルチプレクサの経路接続の態様を一覧にして示す図である。
【図５６】この発明の実施の形態３に従う半導体信号処理装置のローカル選択信号発生部の構成を概略的に示す図である。
【図５７】図５６に示すローカル選択信号発生回路の構成の一例を概略的に示す図である。
【図５８】この発明の実施の形態３に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。
【図５９】この発明の実施の形態４に従う半導体信号処理装置の要部の構成を概略的に示す図である。
【図６０】図５９に示す構成の最終検索判定フラグ生成部の構成を概略的に示す図である。
【図６１】この発明の実施の形態４に従う半導体信号処理装置の変更例の要部の構成を概略的に示す図である。
【図６２】この発明の実施の形態５に従う半導体信号処理装置の記憶単位の構成を示す図である。
【図６３】図６２に示す記憶単位の平面レイアウトを概略的に示す図である。
【図６４】この発明の実施の形態５に従う半導体信号処理装置の全体の構成を概略的に示す図である。
【図６５】この発明の実施の形態５における１つのサブブロックにおけるデータパターンの格納態様を概略的に示す図である。
【図６６】図６５に示す配置における検索時のビット線電流を概略的に示す図である。
【図６７】この発明の実施の形態５に従う半導体信号処理装置の検索に関連する部分の構成を概略的に示す図である。
【図６８】図６７に示す一致信号確定回路の構成の一例を具体的に示す図である。
【図６９】この発明の実施の形態５に従う半導体信号処理装置の各サブブロックとマッチ線の態様を概略的に示す図である。
【図７０】この発明の実施の形態５における被検索データパターンの格納態様の一例を示す図である。
【図７１】図７０に示すパターン格納時の検索動作を示すタイミング図である。
【図７２】この発明の実施の形態５に対する書込データ（被検索データパターン）の配列を変換するデータ列変換回路のデータ格納態様を示す図である。
【図７３】図７２に示すデータ列変換回路に対するパターン長Ｌ／２のデータパターンの格納態様を示す図である。
【図７４】図７２に示すデータ列変換回路に対するパターン長Ｌ／４の格納態様を概略的に示す図である。
【図７５】図７２に示すデータ列変換回路に対するパターン長Ｌ／８のデータパターン格納の態様を概略的に示す図である。
【図７６】図７２に示すデータ列変換回路のパターン長Ｌ／８の格納態様を概略的に示す図である。
【図７７】図７２から図７６に示すデータ列変換回路の格納データの読出データ態様を概略的に示す図である。
【図７８】図７７に示すデータ列変換回路のデータ読出の態様を示す図である。
【図７９】この発明の実施の形態５に従う半導体信号処理装置のデータ書込制御動作フローを示す図である。
【図８０】この発明の実施の形態５に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。
【図８１】図８０に示すブロックデコーダの構成を概略的に示す図である。
【図８２】図８１に示すゲート回路の構成の一例を概略的に示す図である。
【図８３】この発明の実施の形態５に従うサブ行選択駆動回路の構成を概略的に示す図である。
【図８４】この発明の実施の形態５に従うローカル制御信号発生部の構成を概略的に示す図である。
【発明を実施するための形態】
【００２７】
［実施の形態１］
図１は、この発明の実施の形態１に従う半導体信号処理装置において利用される基本構成要素の記憶単位の電気的等価回路を示す図である。図１において、記憶単位ＳＵＴは、２つの演算子セルＵＯＥＬおよびＵＯＥＲを含む。左側演算子セルＵＯＥＬは、２つのＰチャネル電界効果トランジスタＰＱＡＬおよびＰＱＢＬと、２つのＮチャネル電界効果トランジスタＮＱＡＬおよびＮＱＢＬとを含む。
【００２８】
Ｎャネル電界効果トランジスタ（第１および第２のトランジスタ）ＮＱＡＬおよびＮＱＢＬは、ＳＯＩ（Silicon On Insulator）トランジスタで構成され、ソース線ＳＬとビット線ＢＬＬの間に直列に接続される。ＳＯＩトランジスタは、絶縁膜上に形成され、ボディ領域は、本発明においては、素子間で分離される。これらのＳＯＩトランジスタＮＱＡＬおよびＮＱＢＬそれぞれのボディ領域が、記憶ノードＳＮＢＬおよびＳＮＡＬとして用いられる。すなわち、この記憶ノードＳＮＡＬおよびＳＮＢＬの電位状態に応じて、これらのトランジスタＮＱＡＬおよびＮＱＢＬのしきい値電圧が異なり、このしきい値電圧が記憶情報（データ）に対応付けられる。
【００２９】
Ｐチャネル電界効果トランジスタＰＱＢＬおよびＰＱＡＬも、ＳＯＩトランジスタで構成される。ＰチャネルＳＯＩトランジスタＰＱＢＬは、導通時、書込ＢポートＷＰＲＴＢＬから伝達される書込データ／Ｂを、ＮチャネルＳＯＩトランジスタＮＱＢＬの記憶ノードＳＮＢＬへ伝達する。ＰチャネルＳＯＩトランジスタＰＱＡＬは、導通時、書込ＡポートＷＰＲＴＡＬに与えられる書込データＡを、ＮチャネルＳＯＩトランジスタＮＱＡＬの記憶ノードＳＮＡＬへ伝達する。以下、演算子セルのトランジスタを、ＳＯＩトランジスタと称す。
【００３０】
右側演算子セルＵＯＥＲは、左側演算子セルＵＯＥＬと同様、２つのＰチャネルＳＯＩトランジスタＰＱＡＲおよびＰＱＢＲと、２つのＮチャネルＳＯＩトランジスタＮＱＡＲおよびＮＱＢＲとを含む。ＮチャネルＳＯＩトランジスタＮＱＡＲおよびＮＱＢＲは、ソース線ＳＬとビット線ＢＬＲの間に直列に接続される。
【００３１】
ＰチャネルＳＯＩトランジスタＰＱＡＲは、導通時、書込ＡポートＷＰＲＴＡＲに与えられる書込データ／ＡをＮチャネルＳＯＩトランジスタＮＱＡＲの記憶ノードＳＮＡＲに伝達する。ＰチャネルＳＯＩトランジスタＰＱＢＲは、導通時、書込ＢポートＢＰＲＴＢＲに与えられる書込データＢをＮチャネルＳＯＩトランジスタＮＱＢＲの記憶ノードＳＮＢＲに伝達する。
【００３２】
ＰチャネルＳＯＩトランジスタＰＱＡＬおよびＰＱＡＲのゲートは、共通に、行方向に延在するＡポート書込ワード線ＷＷＬＡに結合され、ＰチャネルＳＯＩトランジスタＰＱＢＬおよびＰＱＢＲのゲートが、共通に、行方向に延在するＢポート書込ワード線ＷＷＬＢに接続される。ＮチャネルＳＯＩトランジスタＮＱＢＬおよびＮＱＢＲのゲートが、共通に、行方向に延在するＢポート読出ワード線ＲＷＬＢに結合され、ＮチャネルＳＯＩトランジスタＮＱＡＬおよびＮＱＡＲのゲートが、共通に、行方向に延在するＡポート読出ワード線ＲＷＬＡに結合される。
【００３３】
書込ワード線ＷＷＬＡおよびＷＷＬＢを選択的に選択状態に駆動することにより、ポートＡからの書込データＡおよび／Ａ、およびポートＢからの書込データ／ＢおよびＢのそれぞれが、ポートＡ記憶ノードＳＮＡＬ，ＳＮＡＲおよびポートＢ記憶ノードＳＮＢＬ，ＳＮＢＲに書込むことができる。
【００３４】
データ読出時においては、読出ワード線ＲＷＬＢおよびＲＷＬＡをともに選択状態に駆動する。ソース線ＳＬとビット線ＢＬＬの間およびソース線ＳＬとビット線ＢＬＲの間に、演算子セルＵＯＥＬおよびＵＯＥＲの記憶データに応じた電流が流れる。ビット線ＢＬＬおよびＢＬＲそれぞれの電流を図示しないセンスアンプ回路で検知して、演算子セルＵＯＥＬおよびＵＯＥＲのデータの読出を行う。
【００３５】
図２は、図１に示す記憶単位ＳＵＴの平面レイアウトを概略的に示す図である。図２において、演算子セルＵＯＥＬの形成領域において、Ｙ方向に長い矩形形状の活性領域１ａｌ、１ｂｌおよび１ｃｌが互いにＹ方向において位置をずれせかつ互いに隣接して配置される。活性領域１ａｌおよび１ｃｌは、Ｐ型活性領域であり、活性領域１ｂｌは、Ｎ型活性領域である。Ｎ型活性領域１ｂｌが、Ｐ型活性領域１ａｌおよび１ｃｌの間に配置されている。
【００３６】
右側演算子セルＵＯＥＲの形成領域においても、同様、Ｙ方向に長い矩形形状のＰ型活性領域１ａｒ、Ｎ型活性領域１ｂｒおよびＰ型活性領域１ｃｒが互いにＹ方向において位置をずれさせ、かつＸ方向に互いに隣接して配置される。これらの演算子セルＵＯＥＬおよびＵＯＥＲは、同じレイアウトパターンを有する。ここで、Ｐ型活性領域１ａｌおよび１ａｒにおいて，Ｎ型活性領域１ｂｌおよび１ｂｒに隣接する領域の不純物濃度は低くされ（Ｐ−不純物領域が設けられ）、一方、コンタクト５ａｌ、５ｄｌ、５ａｒ、および５ｄｒが形成される領域の不純物濃度は高くされる（Ｐ＋不純物領域が設けられる）。
【００３７】
Ｘ方向に延在して活性領域１ａｌ，１ａｒ，１ｂｌ，１ｂｒを横切るように導電線２ａおよび２ｂが、互いに間をおいて配置される。これらの導電線２ａおよび２ｂは、ポートＢ書込ワード線ＷＷＬＢおよびポートＢ読出ワード線ＲＷＬＢを構成する。この、導電線２ａおよび２ｂの間にソース線ＳＬを構成する導電線３が配置される。導電線３は、活性領域１ｂｌおよび１ｂｒに形成されるコンタクト５ｂｌおよび５ｂｒを介して活性領域１ｂｌおよび１ｂｒに電気的に接続される。
【００３８】
また、活性領域１ｃｌ，１ｂｌ，１ｃｒおよび１ｂｒを横切るようにＸ方向に連続的に延在してポートＡ読出ワード線ＲＷＬＡを構成する導電線２ｃが配置され、また、活性領域１ｃｌおよび１ｃｒを横切るようにＸ方向に延在してかつ導電線２ｃと離れてポートＡ書込ワード線ＷＷＬＡを構成する導電線２ｄが配置される。
【００３９】
活性領域１ａｌおよび１ａｒの書込ワード線ＷＷＬＢの下部領域においては、Ｎ型ボディ領域が配置され、読出ワード線ＲＷＬＢ下部の領域においては、ボディ領域は設けられず、Ｐ−がた不純物領域が連続して延在して配置される。Ｐ型活性領域１ａｌおよび１ａｒは、それぞれ、ＰチャネルＳＯＩトランジスタＰＱＢＬおよびＰＱＢＲを構成する。
【００４０】
活性領域１ｃｌおよび１ｃｒにおいては、ポートＡ書込ワード線ＷＷＬＡ下部の領域において、Ｎ型ボディ領域が形成され、ポートＡ読出ワード線下部の領域においては、Ｐ−型不純物領域が配置される。これらの活性領域１ｃｌおよび１ｃｒそれぞれに、ＰチャネルＳＯＩトランジスタＰＱＡＬおよびＰＱＡＲが形成される。
【００４１】
活性領域１ｂｌに、Ｎ型ＳＯＩトランジスタＮＱＢＬおよびＮＱＡＬが形成され、活性領域１ｂｒに、Ｎ型ＳＯＩトランジスタＮＱＡＲおよびＮＱＢＲが形成される。活性領域１ｂｌおよび１ｂｒの読出ワード線ＲＷＬＢおよびＲＷＬＡの下部の領域それぞれにおいては、Ｐ型ボディ領域が設けられ、これらのボディ領域が、隣接して配置されるＰ型活性領域１ａｌ、１ａｒ、１ｃｌ、および１ｃｒのＰー型不純物領域と電気的に接続されて、記憶ノードＳＮＡＬ、ＳＮＢＬ、ＳＮＡＲ、およびＳＮＢＲをそれぞれ構成する。
【００４２】
導電線２ｃおよび２ｄの間に、活性領域１ｂｌおよび１ｂｒそれぞれに対しコンタクト５ｃｌおよび５ｃｒが設けられ、活性領域１ｃｌおよび１ｃｒのＹ方向の端部においてコンタクト５ｄｌおよび５ｄｒがそれぞれ設けられる。
【００４３】
導電線２ａ−２ｄよりも上層の導電線６ａ−６ｆが、Ｙ方向に連続的に延在してかつ互いに間をおいて配置される。導電線６ａは、書込ＡポートＷＰＲＴＡＬを構成し、コンタクト５ｄｌを介して活性領域１ｃｌの高濃度Ｐ型不純物領域（Ｐ＋型不純物領域）に結合される。導電線６ｂは、ビット線ＢＬＬを構成し、コンタクト５ｃｌを介して活性領域１ｂｌに電気的に結合される。導電線６ｃは、書込ＢポートＷＰＲＴＢＬを構成し、コンタクト５ａｌを介して活性領域１ａｌの高濃度Ｐ型不純物領域に結合される。導電線６ｄは、書込ＡポートＷＰＲＴＡＲを構成し、コンタクト５ｄｒを介して活性領域１ｃｒに結合される。導電線６ｅは、ビット線ＢＬＲを構成し、コンタクト５ｃｒを介して活性領域１ｂｒに結合される。導電線６ｆは、書込ＢポートＷＰＲＴＢＲを構成し、コンタクト５ａｒを介して活性領域１ａｒの高濃度Ｐ型不純物領域に結合される。
【００４４】
図３は、図２に示す記憶単位ＳＵＴの演算子セルＵＯＥＬおよびＵＯＥＲにおける活性領域の不純物領域の配置を概略的に示す図である。これらの演算子セルＵＯＥＬおよびＵＯＥＲは、同一構造を有するため、図３においては、１つの演算子セルＵＯＥ（ＵＯＥＬ，ＵＯＥＲ）の活性領域の平面レイアウトを概略的に示す。
【００４５】
図３において、活性領域１ａ（１ａｒ，１ａｌ）は、高濃度Ｐ型不純物領域１０ａおよび低濃度Ｐ型不純物領域１０ｂと、これらの不純物領域１０ａおよび１０ｂの間のＮ型不純物領域１１ａを含み、ＳＯＩトランジスタＰＱＢ（ＰＱＢＬ、ＰＱＢＲ）を構成する。Ｎ型不純物領域１１ａと交差するように、書込Ｂポートワード線ＷＷＬＢが配置され、Ｎ型不純物領域１１ａは、このＳＯＩトランジスタＰＱＢ（ＰＱＢＬ、ＰＱＢＲ）のボディ領域を構成する。
【００４６】
活性領域１ｂ（１ｂｒ，１ｂｌ）は、互いに離れて配置されるＮ型不純物領域１２ａ、１２ｂおよび１２ｃと、不純物領域１２ａおよび１２ｂの間のＰ型ボディ領域１３ａと、不純物領域１２ｂおよび１２ｃの間のＰ型ボディ領域１３ｂとを含む。このボディ領域１３ａが、記憶ノードＳＮＢを構成し、ボディ領域１３ｂが記憶ノードＳＮＡを構成する。これらのボディ領域１３ａおよび１３ｂと交差するように、読出ワード線ＲＷＬＢおよびＲＷＬＡがそれぞれ配置される。活性領域１ｂにおいて、直列接続されるＮ型ＳＯＩトランジスタＮＱＢおよびＮＱＡが形成される。
【００４７】
Ｎ型不純物領域１２ａおよびＰ−型不純物領域１０ｂは互いに隣接して配置されるものの、このＮ型不純物領域１２ａはソース線ＳＬに結合され、例えば電源電圧レベルの所定の電圧レベルに維持され、不純物領域１２ａおよび１０ｂの間のＰＮ接合は非導通状態（逆バイアス状態）に維持される。Ｎ型不純物領域１２ｂとＰ−型不純物領域１０ｂが隣接する領域およびＰ−型不純物領域（ボディ領域）１０ｂとＮ型不純物領域１２ｂにおいては、書込データの電圧レベルが、それらの間のＰＮ接合が逆バイアス状態となる電圧レベルに設定され、これらの間のＰＮ接合が導通するのは防止される。
【００４８】
活性領域１ｃ（１ｃｒ，１ｃｌ）は、互いに離れて配置されるＰ−型不純物領域１０ｄおよび高濃度Ｐ＋型不純物領域１０ｃと、これらの不純物領域１０ｃおよび１０ｄの間のＮ型ボディ領域１１ｂを含む。ボディ領域１１ｂと交差するようにポートＡ書込ワード線ＷＷＬＡが配設される。
【００４９】
この活性領域１ｃにおいても、Ｐ−型不純物領域１０ｄが、Ｎ型不純物領域１２ｂおよび１２ｃと隣接して配置される。Ｐ型不純物領域１０ｃが、書込ＡポートＷＰＲＴＡに結合され、Ｎ型不純物領域１２ｃがビット線ＢＬに結合される。上述のように、書込ＡポートＷＰＲＴＡから与えられる書込データのハイレベルは、Ｐ−型不純物領域１０ｄおよびＮ型不純物領域１２ｂおよび１２ｃの間のＰＮ接合を非導通状態に維持する電圧レベルである。
【００５０】
Ｎ型ボディ領域１１ｂ上に、書込Ａポートワード線ＷＷＡが配設される。記憶ノードＳＮＡおよびＳＮＢを構成するボディ領域１３ｂおよび１３ａ上には、読出ワード線ＲＷＬＡおよびＲＷＬＢがそれぞれ配設される。
【００５１】
これらの活性領域１ａ、１ｂおよび１ｃが、図示しない絶縁膜上に形成され、記憶ノードＳＮＡおよびＳＮＢをそれぞれ構成するボディ領域１３ａおよび１３ｂには、電荷を蓄積することができる。ＳＯＩトランジスタのボディ領域は、通常のバルクＭＯＳトランジスタ（半導体基板表面に形成されるＭＯＳトランジスタ（絶縁ゲート型電界効果トランジスタ））の基板領域に対応する。したがって、ＳＯＩトランジスタＮＱＡ（ＮＱＡＬ，ＮＱＡＲ）およびＮＱＢ（ＮＱＢＬ，ＮＱＢＲ）において、それぞれのボディ領域１３ａおよび１３ｂの電圧レベルに応じてそのしきい値電圧が異なる。
【００５２】
すなわち、ＮチャネルＳＯＩトランジスタＮＱＡおよびＮＱＢにおいて、ボディ領域１３ａおよび１３ｂの電位が高い場合、ＳＯＩトランジスタＮＱＡおよびＮＱＢのバックゲート−ソース間がＰＮ接合のビルトイン電圧以下の電圧レベルで正方向にバイアスされ、これらのＳＯＩトランジスタＮＱＡおよびＮＱＢのしきい値電圧が低くなる。一方、ＮチャネルＳＯＩトランジスタＮＱＡおよびＮＱＢのボディ領域１３ａおよび１３ｂの電位が低い場合には、それぞれのしきい値電圧が高くなる。
【００５３】
したがって、これらのＳＯＩトランジスタＮＱＡおよびＮＱＢは、そのボディ領域１３ａおよび１３ｂの電位に従って情報を記憶することができる。また、ＳＯＩトランジスタＮＱＡおよびＮＱＢのボディ領域１３ａおよび１３ｂは、絶縁膜上に形成され、スタンバイ時において（書込ワード線ＷＷＡ，ＷＷＢの非選択状態のとき）、他の領域から分離されており、電源遮断時においてもデータを記憶することができる。
【００５４】
ＳＯＩトランジスタＰＱＡおよびＰＱＢのボディ領域１３ａおよび１３ｂの電位は、書込ポートＷＰＲＴＢおよびＷＰＲＴＡを介して与えられる書込データＢ（または／Ｂ）およびＡ（または／Ａ）の電位レベルにより設定される。したがって、データを書込むライトドライバ（本図においては図示せず）の電源電圧等を調整することにより、これらの記憶ノードＳＮＢおよびＳＮＡの電位を、ＰＮ接合ビルトイン電圧以下のレベルになるように設定することができ、記憶データに応じて確実に、ＳＯＩトランジスタＮＱＡおよびＮＱＢのしきい値電圧を設定することができる。
【００５５】
また、Ｐ型不純物領域１０ｂおよび１０ｄの不純物濃度は、ＮチャネルＳＯＩトランジスタＮＱＡおよびＮＱＢのボディ領域を構成するＰ型不純物領域１３ａおよび１３ｂと同程度の不純物濃度に設定される。これにより、不純物領域１２ａ、１２ｂおよび１０ｂの間のＰＮ接合および不純物領域１０および１２ｂ、１２ｃの間のＰＮ接合のリーク電流を低減して、記憶データの保持特性が劣化するのを防止する。
【００５６】
図４は、１つの演算子セルの書込データ（記憶データ）としきい値電圧とビット線読出電流の関係を一覧にして示す図である。図４においては、この記憶用ＳＯＩトランジスタが高しきい値電圧状態のときに、データ“０”が書込まれている状態に対応付ける。データ“１”が書込まれている場合、ＳＯＩトランジスタＮＱＡおよびＮＱＢのしきい値電圧は低い状態である。したがって、ＳＯＩトランジスタＮＱＡおよびＮＱＢ各々のとる状態は、２つの状態が存在し、ＳＯＩトランジスタＮＱＡＬおよびＮＱＢＬの状態の組合せとして合計４つ存在する。
【００５７】
読出ワード線ＲＷＬＡおよびＲＷＬＢを並行して選択状態へ駆動した場合、ソース線ＳＬからビット線ＢＬに、ＳＯＩトランジスタＮＱＡおよびＮＱＢの記憶データに応じた電流が流れる。この場合、ソース線ＳＬを例えば電源電圧レベルに設定した場合、ＳＯＩトランジスタＮＱＡおよびＮＱＢがともに低しきい値電圧状態のときにセル電流（ビット線読出電流）ＩＣＥＬが一番大きくなる。それ以外の状態においては、ＳＯＩトランジスタＮＱＡおよびＮＱＢの少なくとも一方が、高しきい値電圧状態であり、ソース線ＳＬからビット線ＢＬへ流れる電流は少なくなる。すなわち、ビット線ＢＬへ流れるセル電流ＩＣＥＬが大きい状態をデータ“１”に対応付けると、演算子セルＵＯＥにおいては、選択時、記憶ノードＳＮＡおよびＳＮＢの記憶データのＡＮＤ演算結果を示す電流が流れる。
【００５８】
図５は、図１に示す記憶単位ＳＵＴの書込データ、記憶データおよびセル電流（ビット線読出電流）の関係を一覧にして示す図である。データＡおよびＢは、それぞれ“０”および“１”のいずれかをとる。記憶ノードＳＮＡＬおよびＳＮＢＬには、それぞれデータＡおよび／Ｂが格納され、記憶ノードＳＮＡＲおよびＳＮＢＲには、データ／ＡおよびＢがそれぞれ格納される。
【００５９】
図４に示す演算子セルＵＯＥの状態の拡張により、演算子セルＵＯＥＬのセル電流ＩＣＥＬＬは、データＡおよびＢがそれぞれ“１”および“０”のときに大きくなり、それ以外のときには小さくなる。同様、演算子セルＵＯＥＲにおいては、データＡおよびＢがそれぞれ“０”および“１”のときに、セル電流ＩＣＥＬＲが大きくなり、それ以外のときには、セル電流ＩＣＥＬＲは小さくなる。
【００６０】
したがって、データＡおよびＢの論理値が等しいときに、セル電流ＩＣＥＬＬおよびＩＣＥＬＲが、ともに最も小さい状態になる。データＡおよびＢが不一致のときには、演算子セルＵＯＥＬおよびＵＯＥＲの一方から大きな電流がビット線に供給される。したがって、２つの演算子セルを記憶単位として、対応するトランジスタに相補データを格納する。データを読出して、セル電流がＩＣＥＬＬおよびＩＣＥＬＲが、ともに小さいときに、データＡおよびＢが一致していると判定でき、たとえば、データＢを被検索データ（登録データ）に対応付け、データＡを検索データとすると、検索データと被検索データの一致／不一致を判定することができる。
【００６１】
図６は、この発明の実施の形態１に従う半導体信号処理装置の記憶単位の演算子セルのデータ読出に関連する部分の構成を概略的に示す図である。図６において、演算子セルアレイにおいて、記憶単位ＳＵＴが行列状に配列される。図６においては、１つの記憶単位ＳＵＴを代表的に示す。この記憶単位ＳＵＴは、前述のように、演算子セルＵＯＥＬおよびＵＯＥＲを含む。
【００６２】
演算子セルＵＯＥＬおよびＵＯＥＲが、それぞれ、ビット線ＢＬＬおよびＢＬＲに結合される。ビット線ＢＬＬおよびＢＬＲに対してセンスアンプ回路ＳＡＫＬおよびＳＡＫＲがそれぞれ設けられる。センスアンプ回路ＳＡＫＬおよびＳＡＫＲは、それぞれ対応して設けられるダミーセルＤＵＥが供給する電流を参照電流として、対応のビット線ＢＬＬおよびＢＬＲを流れる電流に応じた信号を生成する。このセンスアンプ回路ＳＡＫＬおよびＳＡＫＲは、ビット線ＢＬＬおよびＢＬＲを流れる電流が、ダミーセルＤＵＥが供給する参照電流（Ｉｒｅｆ）より大きい場合に、対応して配置されるローカル読出データ線ＬＲＤＬおよびＬＲＤＲに電流を供給し、そうでないときには、対応のローカル読出データ線ＬＲＤＬおよびＬＲＤＲに対する電流供給を停止する。
【００６３】
これらのローカル読出データ線ＬＲＤＬおよびＬＲＤＲは、演算子セルアレイに共通に設けられるローカルマッチ線ＭＬにワイヤードＯＲ接続される。ビット線ＢＬＬおよびＢＬＲの読出電流はダミーセルＤＵＥの供給する参照電流よりも大きい状態は、図５に示すように、データＡおよびＢが不一致の状態である。このときに、ローカル読出データ線ＬＲＤＬおよびＬＲＤＲに電流を供給する。したがって、データＡおよびＢが不一致のときに、ローカルマッチ線ＭＬは、対応のセンスアンプ回路から電流が供給されその電位レベルが上昇する。このローカルマッチ線ＭＬの電位を検出して、データＡおよびＢの一致／不一致を検出する。
【００６４】
図７は、図６に示すダミーセルＤＵＥの構成の一例を示す図である。図７において、ダミーセルＤＵＥは、基準電源ノードＶＲＥＦと参照ビット線ＢＬＢの間に直列に接続されるＮチャネルＳＯＩトランジスタＮＴ１およびＮＴ２と、ダミー書込ワード線ＤＷＷＬ上の信号に従って、ＳＯＩトランジスタＮＴ１およびＮＴ２のボディ領域に接地電圧（０Ｖ）を伝達するＰチャネルＳＯＩトランジスタＰＴ１およびＰＴ２を含む。参照ビット線ＢＬＢは、各ビット線に対応して設けられ、対応のセンスアンプ回路に結合される。
【００６５】
演算子セルＵＯＥＬおよびＵＯＥＲにおいて記憶ノードＳＮＡおよびＳＮＢの電位は、データ“０”を記憶する状態のときには負電圧レベルであり、一方、データ“１”を記憶する場合にはＰＮ接合ビルトイン電圧よりも低い正の電圧である。ここで、ＮチャネルＳＯＩトランジスタのしきい値電圧が高い状態をデータ“０”を記憶する状態に対応付け、しきい値電圧の低い状態をデータ“１”を記憶する状態に対応付ける。
【００６６】
ダミーセルＤＵＥにおいては、ＳＯＩトランジスタＮＴ１およびＮＴ２のボディ領域の電位を接地電圧（０Ｖ）に設定する。ダミー読出ワード線ＤＲＷＬの選択時、ダミーセルのＳＯＩトランジスタＮＴ１およびＮＴ２を導通状態として、参照ビット線ＢＬＢに参照電流を供給する。基準電源ノードＶＲＥＦから供給される参照電流Ｉｒｅｆは、データ“０”および“１”記憶時の中間の参照電流レベルに設定される。参照電流Ｉｒｅｆは、基準電圧源の基準電圧ＶＲＥＦの電圧レベルを調整することにより、正確に、演算子セルＵＯＥＲおよびＵＯＥＬの供給する電流の中間値に設定することができる。
【００６７】
図８は、図７に示すダミーセルＤＵＥを用いた場合のビット線電流およびビット線読出電位を概略的に示す図である。ビット線ＢＬには、演算子セルＵＯＥ（ＵＯＥＬ，ＵＯＥＲ）からの読出電流（セル電流ＩＣＥＬ）が供給され、一方、参照ビット線ＢＬＢには、ダミーセルＤＵＥからの参照電流Ｉｒｅｆが供給される。参照電流Ｉｒｅｆは、ダミーセルからのデータ“０”および“１”それぞれのセル電流ＩＣＥＬの中間の電流である。ビット線ＢＬおよびＢＬＢの電位または電流を、対応のセンスアンプ回路で比較するまたは差動増幅することにより、記憶ノードのデータが（１，１）場合とそれ以外の場合とを識別することができる。
【００６８】
すなわち、記憶ノードＳＮＡおよびＳＮＢにデータ“１”がそれぞれ格納されている場合およびデータ“０”が記憶されている場合、図５に示すように、データＡおよびＢは不一致である。記憶単位ＳＵＴにおいて２つの演算子セルＵＯＥＬおよびＵＯＥＲを利用して相補データを格納する。データＡおよびＢが不一致の場合、演算子セルＵＯＥＬおよびＵＯＥＲのいずれかが一致を示し、参照電流Ｉｒｅｆよりも大きなセル電流を供給する。記憶単位ＳＵＴにおいては、演算Ａ・／Ｂ＋／Ａ・Ｂの結果が、センスアンプ回路ＳＡＫＬおよびＳＡＫＲを介して対応のローカルマッチ線ＬＭに伝達される。この演算は、ＥＸＯＲ演算であり、データＡおよびＢの不一致検出処理と等価である。これにより、ローカルマッチ線ＬＭの電位を識別することにより、正確に、データＡおよびＢの一致／不一致を識別することができる。
【００６９】
図９は、図６に示すセンスアンプ回路の構成の一例を概略的に示す図である。センスアンプ回路ＳＡＫＬおよびＳＡＫＲは同一構成を有するため、図９においては、これらをセンスアンプ回路ＳＡＫで代表的に示す。
【００７０】
図９において、センスアンプ回路ＳＡＫは、ビット線ＢＬおよびＢＬＢの電流ＩＣＥＬおよびＩｒｅｆを差動増幅する電流検出型センスアンプ２０と、電流検出型センスアンプ２０の出力信号を増幅するクロックカップル型２次センスアンプ２２と、ドライバアンプ２２の出力信号に従ってローカル読出データ線ＬＲＤに電流を供給する電流供給回路２４を含む。
【００７１】
電流検出型センスアンプ２０は、ビット線ＢＬを流れるセル電流ＩＣＥＬのミラー電流を生成するカレントミラー段を構成するＮチャネルＭＯＳトランジスタＮＴ１０およびＮＴ１１と、参照ビット線ＢＬＢを流れる参照電流Ｉｒｅｆのミラー電流を生成するカレントミラー段を構成するＮチャネルＭＯＳトランジスタＮＴ１３およびＮＴ１４と、ＭＯＳトランジスタＮＴ１１およびＮＴ１４それぞれに電流を供給するＰチャネルＭＯＳトランジスタＰＴ１０およびＰＴ１２と、ＭＯＳトランジスタＰＴ１０およびＰＴ１２それぞれとカレントミラー段を構成するＰチャネルＭＯＳトランジスタＰＴ１１およびＰＴ１３と、ＭＯＳトランジスタＮＴ１０およびＮＴ１３それぞれとカレントミラー段を構成するＮチャネルＭＯＳトランジスタＮＴ１２およびＮＴ１５と、ビット線ＢＬ及びＢＬＢを流れる電流をそれぞれ調整するＰチャネルＭＯＳトランジスタＰＴ１４およびＰＴ１５と、電流検出型センスアンプ２０をセンスアンプ活性化信号ＳＡＥＮに従って活性化するＰチャネルＭＯＳトランジスタＰＴ１６を含む。
【００７２】
ＭＯＳトランジスタＮＴ１０は、そのゲートおよびドレインが、ＭＯＳトランジスタＰＴ１４を介してビット線ＢＬに結合され、カレントミラー段のマスタとして動作し、動作時、ビット線ＢＬからＭＯＳトランジスタＰＴ１４を介して供給されるセル電流ＩＣＥＬのミラー電流を、ＭＯＳトランジスタＮＴ１１に流す。ＭＯＳトランジスタＮＴ１２は、センスアンプ活性化信号ＳＡＥＮの活性化時、ＭＯＳトランジスタＰＴ１３から電流を供給される。
【００７３】
ＭＯＳトランジスタＮＴ１３は、ゲートおよびドレインが相互接続されるとともにＭＯＳトランジスタＰＴ１５を介して参照ビット線ＢＬＢに結合され、カレントミラー段のマスタとして動作し、センスアンプ活性化信号ＳＡＥＮの活性化時、ＭＯＳトランジスタＮＴ１４に、ＭＯＳトランジスタＰＴ１５を介して与えられる参照電流Ｉｒｅｆのミラー電流を流す。ＭＯＳトランジスタＮＴ１５は、センスアンプ活性化信号ＳＡＥＮの活性化時、ＭＯＳトランジスタＰＴ１１から電流を供給される。
【００７４】
ＭＯＳトランジスタＰＴ１１は、ソースが電源ノード（ＶＣＣ）に結合され、そのゲートおよびドレインが、ＭＯＳトランジスタＮＴ１４のドレインに結合されて、カレントミラー段のマスタとして動作し、ＭＯＳトランジスタＮＴ１４を流れる電流のミラー電流をＭＯＳトランジスタＰＴ１０に流す。ＭＯＳトランジスタＰＴ１０は、電源ノード（ＶＣＣ）からＭＯＳトランジスタＮＴ１１に電流を供給する。
【００７５】
ＭＯＳトランジスタＰＴ１４およびＰＴ１５は、ゲートに定電圧ＶＰを受けて、ビット線電流ＩＣＥＬおよびＩｒｅｆの急激な変化を抑制するとともに、ソースフォロア動作により、ビット線ＢＬおよびＢＬＢの電位が必要以上に上昇するのを防止する。
【００７６】
ＭＯＳトランジスタＰＴ１６は、センスアンプ活性化信号ＳＡＥＮの活性化時オン状態となり、電源ノードから電流をＭＯＳトランジスタＰＴ１０−ＰＴ１３に供給する。また、ＭＯＳトランジスタＮＴ１０−ＮＴ１５は、それぞれのソースがロー側電源ノードＶＤＤＮに結合される。
【００７７】
電源ノードの電圧ＶＤＤ２は調整可能な電圧レベルであり、また、センスアンプのロー側電源ノードに与えられる電圧ＶＤＤＮも０Ｖ以下の調整可能な電圧レベルを有する。
【００７８】
これらの電圧ＶＤＤ２、ＶＤＤＮおよびＶＰを用いることにより、ビット線電流に応じてセンスアンプ２０を飽和領域で確実に動作させる。すなわち、演算子セルに書込まれたデータの保持特性を改善するために、ソース線ＳＬに中間電圧ＶＤＤ／２を印加する場合が考えられる。この条件のときには、ロー側電源電圧ＶＤＤＮをーＶＤＤ／２の負電圧、ハイ側電源電圧ＶＤＤ２をＶＤＤ／２の正の中間電圧レベルに設定してセンスアンプ２０を動作させてカレントミラー段の飽和領域動作を保障する。また、ビット線ＢＬおよびＢＬＢのプリチャージ電圧レベルを所望のレベル（例えば接地電圧）に設定することができる。
【００７９】
センスアンプ２０の出力信号（中間センス信号）ＳＯＴおよび／ＳＯＴは、ＭＯＳトランジスタＰＴ１１およびＮＴ１５の接続ノードおよびＭＯＳトランジスタＰＴ１３およびＮＴ１２の接続ノードから生成される。
【００８０】
２次センスアンプ２２は、クロスカップル型センスアンプで構成され、センスアンプ２０からの相補中間センス信号ＳＯＴおよび／ＳＯＴを反転差動増幅して、電源電圧ＶＤＤおよび接地電圧ＧＮＤレベルの相補最終センス信号ＳＯＵＴ信号および／ＳＯＵＴを生成する。すなわち、２次センスアンプ２２は、中間センス信号ＳＯＴが補の中間センス信号／ＳＯＴよりも高い場合には、最終センス信号ＳＯＵＴをＬレベルに設定し、逆の場合には、最終センス信号ＳＯＵＴをＨレベルに設定する。
【００８１】
電流供給回路２４は、２次センスアンプ２２の出力信号ＳＯＵＴに従って電源ノードからローカル読出データ線ＬＲＤに電流ＩＳＡを供給するＮチャネルＭＯＳトランジスタＮＴ１６を含む。この電流供給回路２４は、２次センスアンプ２２の出力信号がＨレベルのときに対応のローカル読出データ線ＬＲＤに電流を供給する。２次センスアンプ２２は、センスアンプ回路ＳＡＫの非活性化時、その出力信号ＳＯＵＴはＬレベルに維持する。この状態においては、電流供給回路２４のＭＯＳトランジスタＮＴ１６は、オフ状態である。電流供給回路２４の電源ノードＶＣＣの電圧レベルは、電源電圧ＶＤＤまたはＶＤＤ２と同一電圧レベルであってもよく、また、異なる電圧レベルであってもよい。電流供給回路２４におけるＭＯＳトランジスタＮＴ１６がオン状態のときに供給する電流ＩＳＡの大きさに応じて、適切な電圧レベルに設定されればよい。
【００８２】
なお、２次センスアンプ２２の最終センス信号ＳＯＵＴが電流供給回路２４に与えられ、補の最終センス信号／ＳＯＵＴは利用されていない。２次センスアンプ２２の出力負荷を信号ＳＯＵＴおよび／ＳＯＵＴについて同一とするために、補の最終センス信号／ＳＯＵＴが、ダミーのＮチャネルＭＯＳトランジスタのゲートに与えられてもよい。
【００８３】
また、図９に示すセンスアンプ回路ＳＡＫにおいて、各トランジスタは、ＳＯＩトランジスタで構成されてもよく、また、バルクトランジスタで構成されてもよい。次に、センスアンプ回路ＳＡＫの動作について説明する。
【００８４】
スタンバイ状態時においては、ビット線ＢＬおよびＢＬＢならびにローカル読出データ線ＬＲＤは、図示しないプリチャージ回路により、接地電圧（ＧＮＤ：０Ｖ）レベルにプリチャージされる。センスアンプ活性化信号ＳＡＥＮは、Ｈレベルであり、ＭＯＳトランジスタＰＴ１６はオフ状態である。この状態においては、中間センス信号ＳＯＴおよび／ＳＯＴは、ＭＯＳトランジスタＮＴ１５およびＮＴ１２により、ともにロー側電源電圧ＶＳＳレベルに維持される。応じて、２次センスアンプ２２の出力信号ＳＯＵＴは、Ｌレベルであり、電流供給回路２４のＭＯＳトランジスタＮＴ１６が、オフ状態であり、ローカル読出データ線ＬＲＤには電流は供給されない。
【００８５】
なお、スタンバイ状態時において、最終センス信号ＳＯＵＴを確実にＬレベルに維持するために、２次センスアンプ２２に対して最終センス活性化信号が与えられて、２次センスアンプ２２をスタンバイ時には、Ｌレベルの信号を出力するように構成されてもよい。
【００８６】
読出動作が始まると、読出ワード線（ＲＷＬＡ、ＲＷＬＢ）が並行して選択状態に駆動される。応じて、ビット線ＢＬおよびＢＬＢにセル電流ＩＣＥＬおよび参照電流Ｉｒｅｆがそれぞれ流れ、ビット線ＢＬの電位がセル電流ＩＣＥＬ（ＩＣＥＬＬ，ＩＣＥＬＲ）に応じて変化する。
【００８７】
次いで、所定のタイミングで、センスアンプ活性化信号ＳＡＥＮが活性化される。応じて、ＭＯＳトランジスタＰＴ１６がオン状態に設定され、電流検出型センスアンプ２０のセンス動作がイネーブルされる。センス動作時においては、ＭＯＳトランジスタＮＴ１１には、ビット線ＢＬから供給されるセル電流ＩＣＥＬのミラー電流が流れ、ＭＯＳトランジスタＮＴ１４には、参照ビット線ＢＬＢを流れる参照電流Ｉｒｅｆのミラー電流が流れる。ここで、電流検出型センスアンプ２０において、カレントミラー段のミラー比は、全て１とする。また、センスアンプ２０の活性化のタイミングは、ビット線にセル電流が読出される前のタイミングであってもよく、また、ビット線電流が安定化してからであってもよい。
【００８８】
ＭＯＳトランジスタＰＴ１０およびＰＴ１１においては、ＭＯＳトランジスタＰＴ１０がカレントミラー段のマスタとして動作する。ＭＯＳトランジスタＰＴ１０が、参照電流Ｉｒｅｆのミラー電流をＭＯＳトランジスタＮＴ１１へ供給しており、ＭＯＳトランジスタＰＴ１１には、従って、セル電流ＩＣＥＬのミラー電流が流れる。ＭＯＳトランジスタＰＴ１０が、参照電流Ｉｒｅｆのミラー電流をＭＯＳトランジスタＮＴ１１へ供給する。一方、ＭＯＳトランジスタＰＴ１２がＭＯＳトランジスタＮＴ１４に対して参照電流Ｉｒｅｆのミラー電流を供給している。したがって、ＭＯＳトランジスタＰＴ１３には、参照電流Ｉｒｅｆのミラー電流が流れる。
【００８９】
ＭＯＳトランジスタＮＴ１２は、ＭＯＳトランジスタＮＴ１０とカレントミラー段を構成しており、セル電流ＩＣＥＬを流すことができる。しかしながら、ＭＯＳトランジスタＮＴ１２は、ＭＯＳトランジスタＰＴ１３から参照電流Ｉｒｅｆのミラー電流を供給されている。従って、ＭＯＳトランジスタＮＴ１２には、セル電流ＩＣＥＬおよび参照電流Ｉｒｅｆのうちの小さいほうの電流が流れる。
【００９０】
同様、ＭＯＳトランジスタＮＴ１５は、ＭＯＳトランジスタＮＴ１３とカレントミラー段を構成しており、参照電流Ｉｒｅｆのミラー電流を流すことができる。このＭＯＳトランジスタＮＴ１５には、ＭＯＳトランジスタＰＴ１１からセル電流ＩＣＥＬのミラー電流が供給される。従って、ＭＯＳトランジスタＮＴ１５においても、セル電流ＩＣＥＬおよび参照電流Ｉｒｅｆのうちの小さいほうの電流が流れる。
【００９１】
従って、セル電流ＩＣＥＬが参照電流Ｉｒｅｆよりも大きい場合には、ＭＯＳトランジスタＮＴ１２は、ＭＯＳトランジスタＰＴ１３から供給される電流Ｉｒｅｆのミラー電流を全て放電し、中間センス信号ＳＯＴの電圧レベルがローレベルのままである。ＭＯＳトランジスタＮＴ１５は、ＭＯＳトランジスタＰＴ１１から供給されるセル電流ＩＣＥＬを全て放電することができず、中間センス信号／ＳＯＴの電圧レベルが上昇する。
【００９２】
２次センスアンプ２２においては、中間センス信号ＳＯＴおよび／ＳＯＴを反転差動増幅しており、この状態においては、最終センス信号ＳＯＵＴがＨレベルとなり、電流供給回路２４からローカル読出データ線ＬＲＤ上に供給されるセンス電流ＩＳＡが、大きな値となる。
【００９３】
一方、セル電流ＩＣＥＬが参照電流Ｉｒｅｆよりも小さい場合には、ＭＯＳトランジスタＮＴ１２が、ＭＯＳトランジスタＰＴ１３から供給される電流をすべて放電できず、中間センス信号ＳＯＴの電圧レベルが上昇する。一方、ＭＯＳトランジスタＮＴ１５は、ＭＯＳトランジスタＰＴ１１から供給される電流を全て放電し、中間センス信号／ＳＯＴは、ローレベルのままである。
【００９４】
２次センスアンプ２２からの最終センス信号ＳＯＵＴは、Ｌレベルを維持し、電流供給回路２４からは対応のローカル読出線ＬＲＤには電流は供給されず、センス電流ＩＳＡは、ほぼ０である。この状態においては、ローカル読出データ線ＬＲＤは、プリチャージ状態の接地電圧（ＧＮＤ：０Ｖ）レベルに維持される。
【００９５】
以上のように、ローカル読出データ線ＬＲＤには、演算子セルの記憶ノードＳＮＡおよびＳＮＢの記憶データの組合せに応じた電流が供給される。すなわち、記憶ノードＳＮＡおよびＳＮＢの記憶データがともに“１”の場合には、セル電流ＩＣＥＬは参照電流Ｉｒｅｆよりも大きくなり、ローカル読出データ線ＬＲＤには、電流供給回路２４から電流が供給されて、その電圧レベルが上昇する。一方、記憶ノードＳＮＡおよびＳＮＢの記憶データの少なくとも一方が“０”のときには、セル電流ＩＣＥＬは、参照電流Ｉｒｅｆよりも小さくなる。この状態においては、電流供給回路２４はローカル読出データ線ＬＲＤに電流を供給せず、ローカル読出データ線ＬＲＤは、プリチャージ電圧の接地電圧レベルに維持される。
【００９６】
図１０は、記憶単位ＳＵＴの記憶データとセル電流とセンス電流との対応を一覧にして示す図である。記憶単位は、図４に示す表と同様、演算子セルＵＯＥＲおよびＵＯＥＬとで構成される。図１０に示すデータＡおよびＢと、記憶ノードＳＮＡＬ、ＳＮＢＬ、ＳＮＡＲ、ＳＮＢＲと、セル電流ＩＣＥＬＬ、ＩＣＥＬＲとの対応は、図４に示す表と同じである。
【００９７】
図１０に示すように、演算子セルＵＯＥＬからのセル電流ＩＣＥＬＬが大きくなるのは、記憶ノードＳＮＡＬおよびＳＮＢＬにデータ“１”が格納されているときである。演算子セルＵＯＥＲからのセル電流ＩＣＥＬＲが大きくなるのは、記憶ノードＳＮＢＬおよびＳＮＢＲにデータ“１”が格納されているときである。セル電流ＩＣＥＬＬおよびＩＣＥＬＲが大きいときに、対応のセンス電流ＩＳＡＬおよびＩＳＡＲが大きくなる。
【００９８】
ローカル読出データ線ＬＲＤは、ローカルマッチ線に並列に結合され、行方向に整列して配置される記憶単位からの読出電流（センス電流）が並行してローカルマッチ線ＭＬに供給され、ローカルマッチ線において、複数の記憶単位ＳＵＴの読出電流に対応する電流が、加算される。従って、以下に説明するように、行方向に整列して配置される記憶単位の記憶データ全体のデータパターンについて、ローカルマッチ線ＭＬの電位により、一致／不一致を識別することができる。
【００９９】
いま、図１０に示す標記において、データ／ＢおよびＢを演算子セルＵＯＥＬおよびＵＯＥＲの記憶ノードＳＮＢに予め格納する被検索データとして定義する。データＡを、検索時に演算子アレイに供給される検索データとして定義する。検索時に、演算子セルＵＯＥＬおよびＵＯＥＲの記憶ノードＳＮＡＬおよびＳＮＡＲに検索データＡおよび／Ａを書込み、次いで、演算子セルＵＯＥのＳＮＡおよびＳＮＢの記憶データを読出す。データＡおよびＢが一致している場合には、センス電流ＩＣＥＬＬおよびＩＣＥＬＲがともにほぼ０の小さいであり、対応のローカル読出データ線ＬＲＤの電圧レベルは上昇せず、プリチャージ電圧レベルに維持される。一方、データＡおよびＢが不一致のときには、センス電流ＩＣＥＬＬおよびＩＣＥＬＲの一方が大きい値となり、ローカル読出データ線ＬＲＤの電圧レベルが、上昇する。これにより、被検索データＢおよび検索データＡの一致／不一致を判定することができる。
【０１００】
ローカル読出データ線ＬＲＤは、対応のローカルマッチ線ＭＬに並列に結合される。従って、ローカルマッチ線ＭＬの電位が上昇したときには、データパターンにおいてデータの不一致が存在したことを示している。一方、ローカルマッチ線ＭＬの電圧がプリチャージ電圧レベルに維持される場合には、データパターンの全データが一致していることを示している。従って、ローカルマッチ線ＭＬの電位を検出することにより、検索データパターンと登録データパターン（被検索データパターン）との一致／不一致を検出することができる。
【０１０１】
また、演算子セルＵＯＥＬおよびＵＯＥＲの記憶ノードＳＮＢＬおよびＳＮＢＲにデータ“０”を書込むと、検索データＡの論理値に拘らず、セル電流ＩＣＥＬＬおよびＩＣＥＬＲは、共に、参照電流Ｉｒｅｆよりも小さくなり、センス電流ＩＣＥＬＬおよびＩＣＥＬＲはともに小さい値となる。この状態においては、ローカル読出線ＬＲＤを介してローカルマッチ線ＭＬへは電流は供給されず、ドント・ケア状態（“Ｘ”または“？”）を実現することができる。したがって、ユニット演算子セルＵＯＥＬおよびＵＯＥＲを記憶単位ＳＵＴとして利用することにより、３値判定を行なうＴＣＡＭ演算を実現することができる。
【０１０２】
なお、センスアンプ２０としては、電流検出型センスアンプに代えて、交差結合されたＰチャネルＭＯＳトランジスタおよび交差結合されたＮチャネルＭＯＳトランジスタを用いたラッチ型センスアンプが用いられてもよい。この場合、ビット線電流は、ビット線ＢＬおよびＢＬＢに対応しており、ビット線ＢＬの電位を、２次センスアンプ２２で受けて、電流供給回路２４を駆動する。
【０１０３】
図１１は、この発明の実施の形態１に従う半導体信号処理装置の演算子セルマットの構成を概略的に示す図である。図１１において、演算子セルマットは、演算子セルアレイが複数のサブブロックＳＢ１−ＳＢｎに分割される。これらのサブブロックＳＢ１−ＳＢｎは、それぞれ（ｋ＋１）個の検索単位ＲＴＵに分割される。
【０１０４】
たとえば、サブブロックＳＢ１は、検索単位ＲＴＵ（１，１）−ＲＴＵ（１，２＾ｋ）に分割される。ここで、＾は、べき乗を示す。サブブロックＳＢ２は、検索単位ＲＴＵ（２，１）−ＲＴＵ（２，２＾ｋ）に分割され、サブブロックＳＢｎは、検索単位ＲＴＵ（ｎ，１）−ＲＴＵ（ｎ，２＾ｋ）に分割される。検索単位は、各々が、Ｎバイト幅を有するｍ個のエントリで構成される。
【０１０５】
サブブロックＳＢ１−ＳＢｎ各々においては、（ｋ＋１）個の検索単位ＲＴＵ（ｉ，１）−ＲＴＵ（ｉ，２＾ｋ）各々に対応して、ローカルマッチ線ＭＬ１、ＭＬ２…ＭＬ２＾ｋが配置される。これらのローカルマッチ線ＭＬ１−ＭＬ２＾ｋは、それぞれ、対応の検索単位ＲＴＵ（ｉ，１）−ＲＴＵ（ｉ，２＾ｋ）のセンスアンプ回路の出力を受けるローカル読出データ線にそれぞれ結合される。
【０１０６】
サブブロックＳＢ１−ＳＢｎそれぞれにおいて、ローカルマッチ線ＭＬ１−ＭＬ２＾ｋの組に対応してローカル一致判定回路ＬＭＤ１−ＬＭＤｎが設けられる。このローカル一致判定回路ＬＭＤ１−ＬＭＤｎは、それぞれ、パターン長指示信号Ｐ＜１＞−Ｐ＜ｎ＞に従って対応のローカルマッチ線の組を選択し、選択した組のローカルマッチ線の電位に従ってローカル一致判定信号ＬＭＣＨ＜１＞−ＬＭＣＨ＜ｎ＞を生成する。
【０１０７】
ローカル一致判定回路ＬＭＤ１−ＬＭＤｎに共通に、グローバル一致判定回路ＧＭＤが設けられる。このグローバル一致判定回路ＧＭＤは、ローカル一致判定回路ＬＭＤ１−ＬＭＤｎからのローカル一致判定信号ＬＭＣＨ＜１＞−ＬＭＣＨ＜ｎ＞に従って最終一致判定信号ＦＭＣＨを生成する。
【０１０８】
サブブロックＳＢ１−ＳＢｎそれぞれに格納される被検索データパターン（登録パターン）のパターン長は、それぞれ予め定められており、各サブブロックに格納される被検索パターン（以下登録パターンと称す）のパターン長は、パターン長レジスタ回路３０に格納される。このパターン長レジスタ回路３０からのパターン長指示信号Ｐ＜１＞−Ｐ＜ｎ＞に従って、ローカル一致判定回路内での組合せ論理ゲートの信号パスが選択される。
【０１０９】
図１２は、図１１に示すサブブロックの構成をより具体的に示す図である。図１２において、サブブロックＳＢｉは、（ｋ＋１）個の検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）を含む。検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）各々について、演算子セルＵＯＥＬおよびＵＯＥＲの列それぞれに対応してビット線ＢＬが配置される。２つの演算子セルＵＯＥＬおよびＵＯＥＲにより記憶単位ＳＵＴが構成される。列方向において、検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）は、ｍ個のエントリＥＲＹ１−ＥＲＹｍに分割される。
【０１１０】
また、図１２においては、この検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）各々は同一構成を有するため、検索単位ＲＵＴ（ｉ，１）に対して構成要素に対して参照符号を付す。
【０１１１】
ビット線ＢＬそれぞれに対応してセンスアンプ回路ＳＡＫ（ＳＡＫＬ、ＳＡＫＲ）が設けられる。センスアンプ回路ＳＡＫそれぞれに対応してダミーセルＤＵＥが配置される。センスアンプ回路ＳＡＫの出力信号が、それぞれ対応して設けられるローカル読出データ線ＬＲＤに伝達される。
【０１１２】
検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）各々に対応してローカルマッチ線ＭＬ１−ＭＬ２＾ｋが設けられる。ローカルマッチ線ＭＬｊに、対応の検索単位ＲＵＴ（ｉ，ｊ）のローカル読出データ線ＬＲＤがワイヤードＯＲ接続される。ここで、ｊは、１から２＾ｋのいずれかである。
【０１１３】
対応の検索単位ＲＵＴ（ｉ、ｊ）のエントリに格納される登録データパターンと検索データパターンが不一致の場合には、ローカルマッチ線ＭＬｊの電圧レベルが上昇し、登録データパターンと検索データパターンとが一致している場合には、対応のローカルマッチ線ＭＬｊの電位はプリチャージ電圧レベルのＬレベルに維持される。
【０１１４】
図１３は、図１１に示すローカル一致判定回路の構成を概略的に示す図である。図１３においては、サブブロックＳＢｉに対応して配置されるローカル一致判定回路ＬＭＤｉの構成を代表的に示す。図１３を参照して、ローカル一致判定回路ＬＭＤｉは、ローカルマッチ線ＭＬ１−ＭＬ２＾ｋそれぞれに対応して設けられるマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋを含む。これらのマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋは、それぞれ活性化時、対応のマッチ線ＭＬ１−ＭＬ２＾ｋの電位を増幅する。
【０１１５】
ローカル一致判定回路ＬＭＤｉは、さらに、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力ノードに対して設けられる全パターン長判定回路３２、Ｌ／２パターン長判定回路３４およびＬ／４パターン長判定回路３６を一例として含む。
【０１１６】
全パターン長判定回路３２は、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号を全て受けるＯＲゲートＯＧｉを含む。
【０１１７】
Ｌ／２パターン長判定回路３４は、ＡＮＤ／ＯＲ複合ゲートで構成され、等価的に、マッチ線アンプＡＭＰ１−ＡＭＰ２＾（ｋ−１）の出力信号を受けるＯＲゲートＯＧ２と、マッチ線アンプＡＭＰ２＾（（ｋ−１）＋１）−ＡＭＰ２＾ｋの出力信号を受けるＯＲゲートＯＧ３と、これらのＯＲゲートＯＧ２およびＯＧ３の出力信号を受けるＡＮＤゲートＡＧ１とを含む。
【０１１８】
Ｌ／４パターン長判定回路は、ＡＮＤ／ＯＲ複合ゲートで構成され、等価的に、マッチ線アンプＡＭＰ１−ＡＭＰ２＾（ｋ−３）の出力信号を受けるＯＲゲートＯＧ４と、マッチ線アンプＡＭＰ２＾（（ｋ−３）＋１）−ＡＭＰ２＾（ｋ−２）の出力信号を受けるＯＲゲートＯＧ５と、マッチ線アンプＡＭＰ２＾（（ｋ−２）＋１）−ＡＭＰ２＾（ｋ−１）の出力信号を受けるＯＲゲートＯＧ６と、マッチ線アンプＡＭＰ２＾（（ｋ−１）＋１）−ＡＭＰ２＾ｋの出力信号を受けるＯＲゲートＯＧ７と、これらのＯＲゲートＯＧ４−ＯＧ７の出力信号を受けるＡＮＤゲートＡＧ２を含む。
【０１１９】
このローカル一致判定回路ＬＭＤｉにおいて、さらに、これらの判定回路３２、３４および３６の出力信号をパターン長指示信号Ｐ＜ｉ＞に従って選択して、ローカル一致判定信号ＬＭＣＨ＜ｉ＞を生成するマルチプレクサ３８が設けられる。
【０１２０】
マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋは、それぞれ、対応のローカルマッチ線ＭＬ１−ＭＬ＾ｋの出力信号を増幅する。ローカルマッチ線ＭＬ１−ＭＬ２＾ｋの出力信号がすべてＬレベルのときには、対応の検索単位ＲＵＴ（ｉ、１）−ＲＵＴ（ｉ、２＾ｋ）の同一エントリの登録データパターンが検索データパターンと一致していることを示している。このサブブロックの全パターン長Ｌ（＝Ｎ・２＾ｋ）のパターンについて登録データパターンと検索データパターンとが一致している場合、全パターン長判定回路３２の出力信号はＬレベルとなる。
【０１２１】
登録データパターン長がＬ／２の場合に、登録データパターンと検索データパターンが一致している場合、Ｌ／２パターン長判定回路３４の出力信号は、ＯＲゲートＯＧ２およびＯＧ３の一方の出力信号がＬレベルとなるため、Ｌレベルとなる。これにより、検索データパターンが、パターン長Ｌ／２の登録データパターンと一致していることが検出される。
【０１２２】
登録データパターン長がＬ／４の場合、検索時、Ｌ／４パターン長判定回路３６において、ＯＲゲートＯＧ４−ＯＧ７の出力信号のいずれかがＬレベルとなり、その出力信号がＬレベルとなる。これにより、与えられた検索データパターンが、Ｌ／４のパターン長の登録データパターンと一致していることが識別される。
【０１２３】
マルチプレクサ３８において、パターン長指示信号Ｐ＜ｉ＞に従ってこれらの判定回路３２，３４および３６の出力信号を選択することにより、ローカル一致判定信号ＬＬＣＨ＜ｉ＞の論理レベルを見ることにより、登録データパターン長がＬ、Ｌ／２およびＬ／４のいずれかにおいて、登録データパターンと検索パターンの一致／不一致を識別することができる。これにより、任意のパターン長の検索データについて登録データパターンとの一致検出を行なうことができる。
【０１２４】
なお、上述の構成においては、パターン長が、Ｌ、Ｌ／２およびＬ／４の３種類の場合の構成が示される。パターン長の種類に応じて、判定回路の数は、変動する。最小データパターンがＬ／２＾Ｍの場合、（Ｍ＋１）個の判定回路が配置され、各判定回路において、２＾Ｍ個のＯＲゲートが設けられ、それぞれ、異なるローカルマッチ線の組に対応して配置されるマッチ線アンプの出力信号を受ける。ローカルマッチ線の各組は、２＾ｋ／２＾Ｍ本のローカルマッチ線を含む。
【０１２５】
図１４は、１つのサブブロックにおける各エントリにマッピング可能な被検索データパターン（登録データパターン）を概略的に示す図である。図１４において、サブブロック♯Ａにおいては、登録データパターンＡは、長さＬ（＝Ｎ・２＾ｋバイト）の長さを有し、１つのエントリに１つのパターンが格納される。
【０１２６】
サブブロックＳＢ♯Ｂにおいては、１エントリに、パターン長Ｌ／２のパターンＢ１およびＢ２が格納され、１エントリに２つの登録パターンが格納される。サブブロックＳＢ♯Ｃにおいては、１エントリに、パターン長がＬ／４の登録パターンＣ１−Ｃ４がそれぞれ格納される。
【０１２７】
したがって、１エントリに複数の被検索データパターンをマッピングすることができ、１エントリに１つの被検索データパターン（登録データパターン）をマッピングする場合に比べてエントリ数を大幅に低減することができる。
【０１２８】
図１５は、登録データパターンのマッピングの具体的例を示す図である。図１５において、一例として、サブブロックＳＢ♯Ａに、パターン長Ｌが割当てられ、サブブロックＳＢ♯Ｂに、パターン長Ｌ／２が割当てられる。サブブロックＳＢ♯Ｃには、パターン長Ｌ／４が割当てられる。
【０１２９】
サブブロックＳＢ♯Ａにおいて、エントリＥＲＹａにおいては、登録データパターンＰＡＴ１が、パターン長Ｌを有し、エントリＥＲＹａ全体にわたって有効データが格納される。エントリＥＲＹｂにマッピングされるパターンＰＡＴ２は、長さ７・Ｌ／８を有する。このエントリＥＲＹｂにおいて、残りのＬ／８バイトの領域は、ドントケア（Ｘ）状態に設定される（演算子セルＵＯＥＬおよびＵＯＥＲの記憶ノードＳＮＢにデータ“０”が格納される）。このドントケア状態の設定については、後に実施の形態３において説明する。エントリＥＲＹｃにおいて、登録されるデータパターンＰＡＴ３は、長さ３・Ｌ／４を有し、残りのＬ／４バイト領域はドントケア状態に設定される。したがって、サブブロックＳＢ♯Ａにおいては、パターン長ＬからＬ／２の間の被検索データパターンをそれぞれ格納することができる。
【０１３０】
サブブロックＳＢ♯Ｂにおいて、エントリＥＲＹｄには、それぞれパターン長Ｌ／２の被検索パターンＰＡＴ４およびＰＡＴ５がマッピングされる。エントリＥＲＹｅにおいては、パターン長３・Ｌ／８の被検索パターンがマッピングされ、残りのＬ／８バイトの領域はドントケア状態に設定される。また、後半のＬ／２バイト領域においてパターン長３・Ｌ／８の被検索パターンＰＡＴ７がマッピングされ、残りのＬ／８バイト領域はドントケア状態に設定される。
【０１３１】
サブブロックＳＢ♯Ｃにおいて、エントリＥＲＹｆには、それぞれパターン長Ｌ／４の被検索パターンＰＡＴ８−ＰＡＴ１１がそれぞれマッピングされる。エントリＥＲＹｇにおいては、それぞれＬ／４バイト領域に、パターン長Ｌ／８の被検索パターンＰＡＴ１２、ＰＡＴ１４、ＰＡＴ１５およびＰＡＴ１６が格納される。残りのＬ／８のバイト領域は、ドントケア状態に設定される。したがって、サブブロックＳＢ♯Ｃにおいては、パターン長Ｌ／４からＬ／８のパターンを格納することができる。
【０１３２】
この図１５に具体的に示すように、７エントリＥＲＹａ−ＥＲＹｇにおいて１６個の被検索パターンＰＡＴ１−ＰＡＴ１６を格納することができる。これにより、１エントリに１被検索パターンを格納して、１６個のエントリが必要とされる構成に比べて、大幅にエントリ数を低減することができる。
【０１３３】
図１６は、検索操作時における検索パターンの入力態様を概略的に示す図である。図１６において、ペイロードに含まれるデータパケットＰＫＴからＬバイトのデータパターンを取込み、検索データとして各サブブロックに並列に与える。データパケットＰＫＴは、検索動作毎に、たとえば１バイトずつシフトインかつシフトアウトする。したがって、この検索データパターンにおいて、先頭位置からＬ／２バイト離れた位置に、データパターンＰＡＴ１０が含まれている場合、図１５に示すエントリＥＲＹｆにおいて一致を検出することができ、このデータパケットＰＫＴにおいて登録パターンＰＡＴ１０と同一パターンが含まれているのを検出することができ、このデータパケットは悪意のある不正アクセスデータパケットであると識別することができる。
【０１３４】
図１７（Ａ）−（Ｃ）は、この発明の実施の形態１に従う半導体信号処理装置のデータ書込部の構成を概略的に示す図である。図１７（Ａ）において、サブブロックＳＢ１−ＳＢｎに共通に、データパス５０が設けられる。このデータパス５０に対しては、入力シフトレジスタ回路６０からのデータビットＡ＜０＞，Ｂ＜０＞，…，Ａ＜Ｎ＞，Ｂ＜Ｎ＞，…，Ａ＜Ｓ＞，Ｂ＜Ｓ＞…が与えられる。この入力シフトレジスタ回路６０におけるシフト動作により、１バイト単位で入力パケットをシフトして、登録データパターンと入力データパターンの一致／不一致を検出する。
【０１３５】
サブブロックＳＢ１は、各々がＮバイト幅の検索単位ＲＵＴ（１，１）−ＲＵＴ（１，ｓ）に分割され、サブブロックＳＢｍも同様、各々がＮバイト幅の検索単位ＲＵＴ（ｎ，１）−ＲＵＴ（ｎ，ｓ）に分割される。ここで、ｓは２＾ｋである。
【０１３６】
列方向に整列して配置される検索単位ＲＵＴ（１，１）−ＲＵＴ（ｎ，１）に共通に、グローバル書込データ線ＧＷＤＡ０、ＺＧＷＤＢ０，ＺＧＷＤＡ０およびＧＷＤＢ０が演算子セルＵＯＥＬおよびＵＯＥＲの記憶単位に対応して設けられる。グローバル書込データ線ＧＷＤＡ０は、左側演算子セルＵＯＥＬの書込ＡポートＷＰＲＴＡに結合され、グローバル書込データ線ＺＧＷＤＢ０は、左側演算子セルＵＯＥＬの書込ＢポートＷＰＲＴＢに結合される。グローバル書込データ線ＺＧＷＤＡ０は、右側演算子セルＵＯＥＲの書込ＡポートＷＰＲＴＡに結合され、グローバル書込データ線ＧＷＤＢ０は、右側演算子セルＵＯＥＲの書込ＢポートＷＰＲＴＢに結合される。
【０１３７】
列方向に整列して配置される検索単位ＲＵＴ（１，２）−ＲＵＴ（ｎ，２）に対し共通に、グローバル書込データ線ＧＷＤＡＮ、ＺＧＷＤＡＮ、ＺＧＷＤＢＮ、およびＧＷＤＢＮが設けられる。列方向に整列して配置される検索単位ＲＵＴ（１，ｓ）−ＲＵＴ（ｎ，ｓ）に共通に、列方向に連続的に延在してグローバル書込データ線ＧＷＤＡＳ，ＺＧＷＤＡＳ，ＺＧＷＤＢＳ，およびＧＷＤＢＳが設けられる。グローバル書込データは、それぞれ対応の列の書込Ａポートおよび書込Ｂポートに結合されるが、図１７（Ａ）においては、図面を簡略化するために、これらの検索単位列においては、明確には示していない。
【０１３８】
データパス５０においては、各検索単位列の記憶単位列それぞれに対応して個別構成の書込回路が設けられる。図１７（Ａ）においては、各検索単位列の記憶単位列に対応する構成要素においては同一参照番号を付す。
【０１３９】
データパス５０は、データビットＡ＜０＞を受けるバッファ５１と、データビットＢ＜０＞を受けるＬ選択マスク回路５２ａと、データビットＡ＜０＞を受けるインバータ５３と、データビットＢ＜０＞を受けるＲ選択マスク回路５２ｂと、それぞれ与えられたデータビットをレベルシフトするレベルシフタ５４ａ−５４ｄとを含む。
【０１４０】
Ｌ選択マスク回路５２ａは、図１７（Ｂ）にその構成を示すように、データビットＢ＜ｊ＞（＝Ｂ＜０＞）を受けるインバータ５６と、マスク指示信号ＭＳＫ＜ｊ＞（ｊ＝０）に従って接地電圧（ＧＮＤ）とインバータ５６の出力信号の一方を選択的に通過させるマルチプレクサ５７とを含む。マスク指示信号ＭＳＫ＜ｊ＞が例えば“１”でありデータ書込マスクを指示する場合には、マルチプレクサ５７は、接地電圧を選択する。マスク指示信号ＭＳＫ＜ｊ＞が例えば“０”のノンマスクを指示する場合には、マルチプレクサ５７はインバータ５６からの反転データ／Ｂ＜ｊ＞を選択する。
【０１４１】
Ｒ選択マスク回路５２ｂは、その構成の一例を図１７（Ｃ）に示すように、マスク指示信号ＭＳＫ＜ｊ＞に従ってデータビットＢ＜ｊ＞と接地電圧の一方を選択的に通過させるマルチプレクサ５８を含む。このマルチプレクサ５８は、マスク指示信号ＭＳＫ＜ｊ＞が書込マスクを指示する場合には、接地電圧を選択し、そうでないときには、データビットＢ＜ｊ＞を選択する。
【０１４２】
書込マスク時に接地電圧レベルのデータを転送することにより、対応の演算子セルにおいてデータ“０”が書込まれ、初期状態と同一の状態に設定される。記憶ノードＳＮＢＬおよびＳＮＢＲがともにデータ“０”を記憶する状態に設定され、等価的にデータ書込が禁止される。データパターンの登録時（被検索データパターンの書込時）に、被検索データの非書込領域に対してマスクをかけることにより、未登録領域をドントケア状態に設定して、検索動作に対して影響を及ぼすのを防止する。マスク指示信号ＭＳＫ＜ｊ＞は、各データビットＢ＜ｊ＞毎に設定される。
【０１４３】
レベルシフト回路５４ａは、バッファ５１の出力信号（データビット）を受け、レベルシフト後の信号をグローバル書込データ線ＧＷＤＡ０へ転送する。レベルシフト回路５４ｂは、Ｌ選択マスク回路５２ａの出力信号を受けて、レベル変換後の信号をグローバル書込データ線ＺＧＷＢ０上に転送する。レベルシフト回路５４ｃは、インバータ５３の出力信号を受け、レベル変換後の信号をグローバル書込データ線ＺＧＷＤＡ０上に転送する。レベルシフト回路５４ｄは、Ｒ選択マスク回路５２ｂの出力信号を受け、レベル変換後の信号をグローバル書込データ線ＧＷＤＢ０上に転送する。
【０１４４】
レベルシフト回路５４ａ−５４ｄは、そのハイ側電源電圧が電圧ＶＨであり、ロー側電源電圧が電圧ＶＬである。電圧ＶＨは、ＳＯＩトランジスタのＰＮ接合のビルトイン電圧よりも低い正の電圧であり、一方、電圧ＶＬは、負電圧である。これにより、記憶ノード（ＳＮＡ，ＳＮＢ）の電圧レベルを“０”および“１”に設定するとももに、ボディ領域のＰＮ接合の導通によるリークが生じ、記憶データの破壊が生じるのを防止する。
【０１４５】
データビットＡ＜Ｎ＞およびＢ＜Ｎ＞に対しても、同様、バッファ５１、インバータ５３、選択マスク回路５２ａおよび５２ｂと、レベルシフト回路５４ａ−５４ｄが設けられ、データビットＡ＜Ｓ＞，Ｂ＜Ｓ＞に対しても、同様、バッファ５１、インバータ５３、選択マスク回路５２ａおよび５２ｂと、レベルシフト回路５４ａ−５４ｄが設けられる。
【０１４６】
このデータパス５０における書込回路の構成により、左側演算子セルＵＯＥＬの記憶ノードＳＮＡＬおよびＳＮＢＬにデータＡ，／Ｂが格納され、右側演算子セルＵＯＥＲの記憶ノードＳＮＢＲおよびＳＮＡＲに、データ／ＢおよびＡが格納される。
【０１４７】
なお、各サブブロックにおいて、登録データパターン長が、割当てられたパターン長よりも短い場合、有効データが格納されない領域は、上述のように書込マスクにより、ドントケア状態に設定される。初期状態においては、演算子セルＵＯＥは、全てドントケア状態に設定される。被検索データパターンのマッピング時には、データ書込時に、この非書込領域に対してマスクをかける。マスク指示信号ＭＳＫ＜ｊ＞は、ビット単位で設定することができ、従って、登録データパターン長についても、ビット単位でパターン長を調整して種々のデータパターンを格納することができる。
【０１４８】
ビット単位でマスク指示信号ＭＳＫを生成する構成としては、以下の構成を利用する。すなわち、入力シフトレジスタ回路６０において、データパターンビットそれぞれに対応してマスクビットを転送する回路を設け、このマスクビット転送経路により、各ビットに対するマスク指示信号ＭＳＫを生成する。
【０１４９】
図１８は、１つの記憶単位ＳＵＴに対するデータの書込および読出の経路を概略的に示す図である。図１８において、グローバル書込データ線ＧＷＤＡおよびＺＧＷＤＡは、それぞれ書込ポートＷＰＲＴＡおよびＷＰＲＴＢを介して左側演算子セルＵＯＥＬの記憶ノードＳＮＡＬおよびＳＮＢＬに、データＡおよび／Ｂを伝達する。グローバル書込データ線ＺＧＷＤＢおよびＧＷＤＢは、それぞれ書込ポートＷＰＲＴＡおよびＷＰＲＴＢを介して右側演算子セルＵＯＥＲの記憶ノードＳＮＡＲおよびＳＮＢＲにデータ／ＡおよびＢを伝達する。
【０１５０】
演算子セルＵＯＥＬおよびＵＯＥＲに共通に、書込ワード線ＷＷＬＢおよびＷＷＬＡと読出ワード線ＲＷＬＡおよびＲＷＬＢが設けられる。演算子セルＵＯＥＬおよびＵＯＥＲは、ビット線ＢＬＬおよびＢＬＲにそれぞれ結合され、データ読出時（検索時）、データＡ・／Ｂおよび／Ａ・Ｂに対応する電流を、それぞれ、ビット線ＢＬＬおよびＢＬＲに伝達する。ビット線ＢＬＬおよびＢＬＲは、センスアンプ回路ＳＡＫＬおよびＳＡＫＲにそれぞれ結合される。センスアンプ回路ＳＡＫＬおよびＳＡＫＲは、対応のローカル読出データ線ＬＲＤＬおよびＬＲＤＲを介して対応のローカルマッチ線ＭＬに検索結果に応じて、選択的に電流を供給する。ローカルマッチ線ＭＬに対しマッチ線アンプＡＭＰが設けられ、検索結果が増幅される。
【０１５１】
ローカルマッチ線ＭＬは、プリチャージトランジスタＮＴ１８により例えば接地電圧レベルにプリチャージされる。検索動作時においては、プリチャージ指示信号ＰＲＥは、Ｌレベルに設定され、プリチャージトランジスタＮＴ１８は、オフ状態となり、ローカルマッチ線ＭＬは、プリチャージ電圧レベルでフローティング状態とされる。このフローティング状態とされたローカルマッチ線ＭＬに対して、検索結果に応じて選択的にセンスアンプ回路ＳＡＫＬまたはＳＡＫＲから電流が供給されると、ローカルマッチ線ＭＬの電位が上昇する。一方、検索データと被検索データとが一致している場合には、ローカルマッチ線ＭＬに対しては電流は供給されず、ローカルマッチ線ＭＬはプリチャージ電圧レベルを維持する。従って、ローカルマッチ線ＭＬの電位がマッチ線アンプＡＭＰにより増幅されて２値信号が生成される。これにより、一致時においては、マッチ線アンプＡＭＰの出力信号がＬレベルであり、一致発生を識別することができる。
【０１５２】
したがって、この図１８に示すメモリマット構の成において、サブブロックＳＢ１−ＳＢｎそれぞれにおいてローカルマッチ線（ＭＬ１−ＭＬ２＾ｋ）が設けられており、並列に検索動作を実行することができる。サブブロックＳＢ１−ＳＢｎ各々においてｍエントリを順次選択して検索を行う。１クロックサイクルにおいて１エントリについての検索を行うことより、ｍクロックサイクルで、検索データに対する検索結果を生成することができる。
【０１５３】
図１９は、被検索データのマッピング時の書込動作を示すタイミング図である。図１９に示すように、被検索データの書込時においては、クロック信号ＣＬＫの立上がりに同期して、外部から被検索データＤＩＮＢとしてデータＢ０、Ｂ１、およびＢ２をそれぞれ入力シフトレジスタ回路６０に取込む。入力シフトレジスタ回路６０からの書込データに従って、データパス５０により各対応のグローバル書込データ線に書込データが伝達されると、ポートＢ書込ワード線ＷＷＬＢを順次選択状態へ駆動し、データＢ０、Ｂ１、Ｂ２、…を、それぞれ、書込ＢポートＷＰＲＴＢを介して演算子セルＵＯＥＬおよびＵＯＥＲの記憶ノードＳＮＢＬおよびＳＮＢＲに書込む。
【０１５４】
書込ワード線ＷＷＬＢの選択時において、１つのサブブロックにおける１つのエントリに対して検索データの書込が行なわれるため、ブロック選択信号に従って１つのサブブロックＳＢが選択され、選択サブブロックにおいてポートＢ書込ワード線が選択される。
【０１５５】
このデータ書込時において、複数のデータパターンで入力データＤＩＮＢが構成され、パターン長が１エントリサイズと異なる複数の被検索パターンが、対応のサブブロックの１エントリに並行して格納されてもよい。前述のように、パターン長が１エントリサイズと異なるデータパターンの登録時においては、非書込領域に対してマスク指示信号ＭＳＫにより、書込マスクがかけられ、ドントケア状態に維持される。
【０１５６】
図２０は、検索モード時の動作を示すタイミング図である。この検索モードにおいては、クロック信号ＣＬＫに同期して検索データＤＩＮＡが、クロック信号ＣＬＫの立上がりエッジで入力シフトレジスタ回路に取り込まれる。このとき、入力シフトレジスタ回路においてシフトインおよびシフトアウト動作を行って、順次、検索データが抽出されて、データパス５０へ与えられる。図２０においては、検索データＡ０が与えられる場合を一例として示す。
【０１５７】
この後、ポートＡ書込ワード線ＷＷＬＡを選択状態へ駆動し、演算子セルＵＯＥＬおよびＵＯＥＲの記憶ノードＳＮＡＬおよびＳＮＡＲに、データＡ０についての相補ビットをそれぞれ書込む。この書込後、記憶ノードＳＮＡＬおよびＳＮＡＲの書込データが安定化した状態で、読出ワード線ＲＷＬＡおよびＲＷＬＢを選択状態へ駆動する。読出時において書込ワード線ＷＷＬＡを選択状態に維持することにより、書込ワード線ＷＷＬＡの電位変化が容量結合により記憶ノードＳＮＡＬおよびＳＮＡＲの記憶データに対して悪影響を及ぼすのを防止して、安定かつ正確に書込データと登録データに対応したセル電流を対応のビット線ＢＬＬおよびＢＢＬＲに読出すことができる。
【０１５８】
この検索時において、検索データＡ０が与えられた場合、書込ワード線ＷＷＬＡおよび読出ワード線ＲＷＬＡおよびＲＷＬＢの選択が、ｍエントリに対する検索が完了するまで繰返し異なるエントリに対して実行される（ｍエントリが、順次選択される）。
【０１５９】
この検索動作時においては、検索が、サブブロックＳＢ１−ＳＢｎにおいて並列に実行されるため、ポートＡ書込ワード線および読出ワード線ＲＷＬＡおよびＲＷＬＢを選択するためのアドレス信号においては、サブブロックＳＢを指定する情報は含まれていない。これにより、各サブブロックにおいて異なるパターン長の登録パターンに対する検索を、並行して実行することができる。
【０１６０】
図２１は、各サブブロックに対応して設けられるローカル行選択駆動回路の構成を概略的に示す図である。図２１において、ローカル行選択駆動回路７０は、ローカルＢポート書込ワード線選択駆動回路７２と、ローカルＡポート書込ワード線選択駆動回路７４と、ローカル読出ワード線選択駆動回路７６とを含む。ローカルＢポート書込ワード線選択駆動回路７２は、ブロック選択信号ＢＳが対応のサブブロックを示すときにイネーブルされ、ポートＢ書込ワード線イネーブル信号ＷＷＢＥＮの活性化に応答して書込アドレス信号ＷＡＤをデコードして、ポートＢ書込ワード線ＷＷＬＢ１−ＷＷＬＢｍのうちの指定された行に対応するポートＢ書込ワード線を選択状態へ駆動する。ブロック選択信号ＢＳは、サブブロックＳＢ１−ＳＢｎのいずれかを指定する。これにより、選択されたサブブロックにおいて、グローバル書込ワード線を介して伝達される被検索データＢを選択されたエントリに格納することができる。
【０１６１】
ローカルＡポート書込ワード線選択駆動回路７４は、ポートＡ書込ワード線イネーブル信号ＷＷＡＥＮの活性化に応答して与えられたワード線アドレス信号ＡＤをデコードし、ポートＡ書込ワード線ＷＷＡ１−ＷＷＡｍのうちの指定された行に対応するポートＡ書込ワード線を選択状態へ駆動する。このローカルＡポート書込ワード線選択駆動回路７４に対しては、ブロック選択信号ＢＳは与えられない。検索動作時において、複数のサブブロックＳＢ１−ＳＢｎにおいて、並行してポートＡ書込ワード線が選択状態に駆動される。
【０１６２】
ローカル読出ワード線選択駆動回路７６は、読出ワード線イネーブル信号ＲＷＬＥＮの活性化に応答してワード線アドレス信号ＡＤをデコードし、読出ワード線ＲＷＬＡ１，ＲＷＬＢ１−ＲＷＬＡｍ，ＲＷＬＢｍのうちの指定された行に対応する読出ワード線（ＡポートおよびＢポート）を選択状態へ駆動する。
【０１６３】
検索時のワード線アドレス信号ＡＤは、書込ワード線アドレス信号ＷＡＤに対応し、ローカルＡポート書込ワード線選択駆動回路７４と同様、ローカル読出ワード線選択駆動回路７６へは、ブロック選択信号ＢＳが与えられていない。したがって、サブブロックＳＢ１−ＳＢｎにおいて同一行の位置のワード線（書込および読出ワード線）が選択状態へ駆動されて並列に、検索データの書込および検索結果の読出が行なわれる。
【０１６４】
図２２は、サブブロックＳＢ１−ＳＢｎに共通に設けられる制御回路の構成を概略的に示す図である。図２２において、制御回路８０は、クロック信号ＣＬＫの立上がりに同期して、データとともに与えられるコマンドＣＭＤをデコードするコマンドデコーダ８１と、コマンドデコーダ８１からの書込モード指示ＭＯＤＷに従ってイネーブルされる書込制御回路８３およびＢポート書込ワード線活性化回路８２を含む。
【０１６５】
書込制御回路８３は、書込モード指示ＭＯＤＷの活性化時、所定のタイミングでデータパス５０へデータパスイネーブル信号ＤＰＥＮを与え、データパス５０に含まれるレベルシフト回路（５４ａ−５４ｄ）、バッファ５１およびインバータ５３をイネーブルする（図１７に示すデータパスの構成については、このデータパスイネーブル信号ＤＰＥＮは示していない）。Ｂポート書込ワード線活性化回路８２は、書込モード指示ＭＯＤＷの活性化時、所定のタイミングでポートＢ書込ワード線イネーブル信号ＷＷＢＥＮを所定期間アサート（活性化）する。
【０１６６】
制御回路８０は、さらに、コマンドデコーダ８１からの読出モード指示ＭＯＤＲに従って活性化されるＡポート書込ワード線活性化回路８４、読出制御回路８５、および読出ワード線活性化回路８６を含む。Ａポート書込ワード線活性化回路８４は、活性化時、所定のタイミングでポートＡワード線活性化信号ＷＷＬＡＥＮをアサートする。読出制御回路８５は、読出モード指示ＭＯＤＲの活性化時、センスアンプ活性化信号ＳＡＥＮおよびマッチ線アンプイネーブル信号ＡＭＰＥＮを所定のタイミングで活性化するとともにマッチ線プリチャージ指示信号ＰＲＥを非活性化する。この読出制御回路８５は、読出ワード線活性化回路８６からの読出ワード線イネーブル信号ＲＷＥＮの活性化タイミングを基準として、センスアンプ活性化信号ＳＡＥＮおよびマッチ線アンプイネーブル信号ＡＭＰＥＮを活性化する。これまでの図においては示していないが、ローカルマッチ線ＭＬに対応して配置されるマッチ線アンプＡＭＰは、このマッチ線アンプイネーブル信号ＡＭＰＥＮのアサート時にイネーブルされ、対応のローカルマッチ線の電圧を増幅する。
【０１６７】
なお、センスアンプ回路ＳＡＫに含まれる２次センスアンプ（２２）の活性化をセンスアンプ活性化信号ＳＡＥＮの活性化に従って行う場合には、この読出制御回路８５が２次センスアンプ（２２）に対する活性化制御信号を生成する。
【０１６８】
制御回路８０は、さらに、アドレスカウンタ８７と、アドレスカウンタ８７の出力アドレス信号と外部からのアドレス信号ＥＸＡＤの一方を選択するマルチプレクサ８８と、書込モード指示ＭＯＤＷの活性化時、マルチプレクサ８８からのブロックアドレスＢＡＤをデコードするブロックデコーダ８９とを含む。
【０１６９】
アドレスカウンタ８７は、コマンドデコーダ８１からの内部アドレス発生指示ＭＯＤＩのアサート時イネーブルされ、クロック信号ＣＬＫに同期してカウント動作を行ない、そのカウント値をアドレスとして出力するとともに、カウント値がエントリ数ｍに等しくなるとカウントアップ信号ＣＵＰをアサートする。このアドレスカウンタ８７からのカウントアップＣＵＰがアサートされるまで、活性化回路８４、８５および８６は、クロック信号ＣＬＫにトリガとしてイネーブルされ、それぞれ対応のイネーブル信号／活性化信号を所定のタイミングでアサートする。内部アドレス発生指示ＭＯＤＩは、被検索データの各エントリに対する順次書込時、および検索動作時にアサートされる。被検索データパターンの登録追加の時には、この内部アドレス発生指示ＭＯＤＩは、アサートされない。
【０１７０】
マルチプレクサ８８は、この内部アドレス発生モードＭＯＤＩのアサート時、アドレスカウンタ８７の出力アドレスを選択する。このアドレスカウンタ８７からのカウンタアドレスは、サブブロックを指定するブロックアドレスおよびサブブロック内のエントリを指定するワード線アドレスを含む。選択回路８８からのブロックアドレスＢＡＤがブロックデコーダ８９へ与えられる。ブロックデコーダ８９は、書込モード指示ＭＯＤＷのアサート時にイネーブルされ、与えられたブロックアドレス信号をデコードしてブロック選択信号ＢＳを生成する。データ読出時においては、ブロックデコーダ８９は、デコード動作は行わず、ブロック選択信号ＢＳは生成されない。
【０１７１】
カウンタ８７からのカウンタアドレスの下位アドレスは、読出指示印加時の書込ワード線アドレスＡＤおよび書込時の書込ワード線アドレスＷＡＤとして用いられる。ここで、ワード線アドレス信号として読出時に符号ＡＤを用い、書込時に符号ＷＡＤを用いているのは、読出時にはブロック選択信号が生成されず、書込時にはブロック選択信号が生成されることを示すためであり、これらは、同じワード線アドレス信号である。
【０１７２】
外部アドレス信号ＥＸＡＤが用いられるのは、たとえば新たな被検索パターンを追加マッピングする場合、追加被検索パターンの登録先アドレスを、外部アドレス信号ＥＸＡＤに従って指定するためである。この外部アドレス信号ＥＸＡＤは、従って、ブロックアドレスを含む。内部モード指示ＭＯＤＩは、新たな被検索パターン登録追加の書込またはテスト時の特定のエントリ内容の読出す動作が実行される時にアサートされる。
【０１７３】
コマンドＣＭＤは、外部からのデータＡまたはＢと同期して与えられる。したがって、データ書込時、すなわち被検索パターンの書込時においては、書込制御回路８３およびＢポート書込ワード線活性化回路８２が、このコマンドデコーダからの書込コマンドに従って生成された書込モード指示ＭＯＤＷに従ってそれぞれ活性化され、データパスイネーブル信号ＤＰＥＮおよびＢポート書込ワード線イネーブル信号ＷＷＢＥＮを活性化する。各サイクルにおいて、被検索データパターンを各エントリの記憶ノードＳＮＢに書込むことができる。
【０１７４】
一方、検索を行なうモード時においては、読出モード指示ＭＯＤＲがアサートされる。このときには、アドレスカウンタ８７からのカウント値に従って各エントリが順次指定され、エントリＥＲＹ１からＥＲＹｍにおいて順次検索動作が行なわれる。最後のエントリＥＲＹｍの検索が完了すると、アドレスカウンタ８７のカウントアップ信号ＣＵＰがアサートされる。カウントアップ指示信号ＣＵＰがネゲート状態の間、Ａポート書込ワード線活性化回路８４、読出制御回路８５および読出ワード線活性化回路８６が、クロック信号ＣＬＫの立上がりをトリガとしてそれぞれ対応の制御信号をアサートする。これにより、１つの検索データＤＩＮＡが与えられたときに、各エントリＥＲＹ１からＥＲＹｍにおいて順次検索動作が行なわれ、このｍ個のエントリにおける検索動作完了後に、カウントアップ信号ＣＵＰがアサートされ、各サブブロックのエントリに選択動作が停止する。この停止サイクルにおいて、また、新たな検索データが、読出コマンドとともに与えられる。新たな検索データについての検索動作が繰り返しｍエントリに対して実行される。
【０１７５】
なお、各サブブロックの登録データパターン長は、図１１に示すパターン長レジスタ回路３０に格納される。この場合、コマンドに従って、外部からの書込データをパターン長レジスタ回路へ順次転送されるか、または固定的に定められる場合には、ヒューズ素子などを用いて固定的にプログラムされる。
【０１７６】
以上のように、この発明の実施の形態１に従えば、エントリに格納される被検索パターンのパターン長を変更可能とし、１つのエントリに複数の被検索データパターンを格納可能としている。これにより、エントリ数を増大させることなく、より多くの被検索データパターンを格納することができ、演算子セルアレイ占有面積を増大させることなく、多くのパターンの一致／不一致を検出することができる。本実施の形態１を適用することにより、ＮＩＤＳなどにおいて、より信頼性の高いシステムを構築することができる。
【０１７７】
なお、被検索データのパターン長は、前述のパターン長に限定されず、適用される用途に応じて、Ｌ／３２などのさらに短いパターン長が用いられてもよい。パターン長に応じて、ローカル一致判定回路ＬＭＤｉ内の判定回路が各パターン長に応じて設けられればよい。
【０１７８】
また、一致発生時に対応のエントリアドレス（アドレスカウンタから発生される）を装置外部へ読出すことにより、どのエントリにおいて一致が発生したかを識別することができる。１エントリにおいて複数のデータパターンが格納されている場合、一致データパターン候補を抽出することができる。
【０１７９】
［実施の形態２］
図２３は、この発明の実施の形態２に従う半導体信号処理装置の要部の構成を概略的に示す図である。図２３に示す半導体信号処理装置においては、サブブロックＳＢ１およびＳＢ２…に共通にかつ各演算子セル列に対応して、グローバル読出データ線ＧＲＤが配置される。サブブロックＳＢ１−ＳＢｎが配設されるが、図２３においては、サブブロックＳＢ１およびＳＢ２を代表的に示す。
【０１８０】
サブブロックＳＢ１は、検索単位ＲＵＴ（１，１）−ＲＵＴ（１，ｓ）に分割され、検索単位ＲＵＴ（２，１）−ＲＵＴ（２、ｓ）に分割される。ここで、ｓは、２＾ｋである（ｓ＝２＾ｋ）。サブブロックＳＢ１およびＳＢ２各々に対応して、ローカルマッチ線ＭＬ１−ＭＬｓが配置される。
【０１８１】
各検索単位においては、センスアンプ回路ＳＡＫに対応してローカル読出データ線ＬＲＤが配置される。これらのローカル読出データ線ＬＲＤは、それぞれ、対応して配置されるローカルマッチ線ＭＬ（ＭＬ１−ＭＬｓ）に結合される。
【０１８２】
ローカル読出データ線ＬＲＤとグローバル読出データ線ＧＲＤに対するデータの読出経路を変更するために、読出経路変更用のスイッチングトランジスタＴＸｉ１およびＴＸｉ２が、それぞれセンスアンプ回路ＳＡＫに対して設けられる。サブブロックＳＢ１においては、センスアンプ回路ＳＡＫ各々に対応して、スイッチングトランジスタＴＸ１１およびＴＸ１２が設けられ、サブブロックＳＢ２においては、センスアンプ回路ＳＡＫ各々に対応して、読出経路切換用のスイッチングトランジスタＴＸ２１およびＴＸ２２が設けられる。一般に、サブブロックＳＢｉにおいて、センスアンプ回路ＳＡＫの出力部にスイッチングトランジスタＴＸｉ１およびＴＸｉ２が設けられる。ここで、ｉは１からｎのいずれかの整数である。
【０１８３】
サブブロックＳＢ１において、スイッチングトランジスタＴＸ１１は、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜１＞およびＭＯＤＴＣ＜２＞それぞれに応答して導通し、対応のセンスアンプ回路ＳＡＫの出力を、対応のローカル読出データ線ＬＲＤに結合する。スイッチングトランジスタＴＸ１２は、メモリモード指示信号ＭＯＤＭＣ＜１＞に応答して導通しセンスアンプ回路ＳＡＫの出力をグローバル読出データ線ＧＲＤに結合する。サブブロックＳＢ２において、メモリモード指示信号ＭＯＤＭＣ＜２＞に応答してスイッチングトランジスタＴＸ２２が、対応のセンスアンプ回路ＳＡＫの出力信号をグローバル読出データ線ＧＲＤに結合する。サブブロックＳＢｉ（ｉは１からｎのいずれかの整数）においては、スイッチングトランジスタＴＸｉ１は、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜ｉ＞に従って選択的に導通し、スイッチングトランジスタＴＸｉ２は、メモリモード指示信号ＭＯＤＭＣ＜ｉ＞に従って選択的に導通する。
【０１８４】
メモリモード指示信号ＭＯＤＭＣ＜ｉ＞を用いることにより、サブブロック単位で、グローバル読出データ線ＧＲＤに対応のセンスアンプ回路の出力信号を伝達することができる。
【０１８５】
図２４は、この発明の実施の形態２に従う半導体信号処理装置のデータパスの構成を概略的に示す図である。図２４において、サブブロックＳＢ１−ＳＢｎに対して共通に、グローバル書込データ線ＧＷＤＡ（ＧＷＤＡ０，ＧＷＤＡＮ、ＧＷＤＡＳ）、ＺＧＷＤＢ（ＺＧＷＤＢ０，ＺＧＷＤＢＮ，ＺＧＷＤＢＳ）、ＺＧＷＤＡ（ＺＧＷＤＡ０，ＺＧＷＤＡＮ，ＺＧＷＤＡＳ）、およびＧＷＤＢ（ＧＷＤＢ０，ＧＷＤＢＮ，ＧＷＤＢＳ）が設けられる。
【０１８６】
これらのサブブロックＳＢ１−ＳＢｎ各々に対して、ローカルマッチ線ＭＬ１−ＭＬｓ（ｓ＝２＾ｋ）を含むローカルマッチ線群ＭＬＧが設けられる。ローカルマッチ線群ＭＬＧに対応してローカル一致判定回路ＬＭＤ（ＬＭＤ１−ＬＭＤｎ）が設けられる。このローカル一致判定回路ＬＭＤ１−ＬＭＤｎは、各々、ローカルマッチ線に対応して設けられるマッチ線アンプＡＭＰを含む。
【０１８７】
サブブロックＳＢ１−ＳＢｎに共通に、グローバル読出データ線ＧＲＤｌおよびＧＲＤｒが設けられる。グローバル読出データ線ＧＲＤｌには、左側演算子セル（ＵＯＥＬ）に対応して設けられるセンスアンプ回路の出力信号が伝達され、グローバル読出データ線ＧＲＤｒには、右側演算子セル（ＵＯＥＲ）に対して設けられるセンスアンプ回路の出力信号が伝達される。
【０１８８】
サブブロックＳＢ１−ＳＢｎに対して、センスアンプ回路の出力信号の伝達経路を切換えるために、モード指示信号ＭＯＤＴＣ＜１＞、ＭＯＤＭＣ＜１＞、…、ＭＯＤＴＣ＜ｎ＞、およびＭＯＤＭＣ＜ｎ＞が与えられる。これらのモード指示信号は、それぞれ、サブブロックに対応して設けられるドライバにより、対応の経路切換え用のスイッチングトランジスタＴＸｉ１およびＴＸｉ２へ与えられる。図２４においては、図面を簡略化するために、この経路切換え用のスイッチングトランジスタは示していない。
【０１８９】
データパス５０においては、グローバル読出データ線ＧＲＤｌおよびＧＲＤｒそれぞれに対応してデータアンプ１００ｌおよび１００ｒが設けられる。グローバル書込データ線ＧＷＤＡ、ＺＧＷＤＢ、ＺＧＷＤＡおよびＧＷＤＢそれぞれに対応してマルチプレクサ１０２ａ−１０２ｄが設けられる。図２４においては、データパス５０の各検索単位列の記憶単位列毎に対して設けられる構成要素に対しては同一参照番号を付す。
【０１９０】
マルチプレクサ１０２ａは、２ビット選択信号ＳＥＬＡ＜１：０＞に従って対応のデータアンプ１００ｌの出力信号と対応の入力データビットＡ＜ｊ＞の一方を選択して対応のグローバル書込データ線ＧＷＤＡｊに伝達する。ｊは、１からＮ・２^ｋのいずれかの整数である。マルチプレクサ１０２ａは、同じ信号を異なる入力に受けている。これは、他のマルチプレクサ１０２ｂ−１０２ｄと同様に３入力マルチプレクス構成を実現して、マルチプレクサ１０２ａ−１０２ｄを、全て同一構造とするためである。
【０１９１】
マルチプレクサ１０２ｂは、２ビット選択信号ＳＥＬＢ＜１：０＞に従って、対応のデータアンプ１００ｌの出力信号、入力書込データビットＡ＜ｊ＞およびＬ選択マスク回路５２ａを介して与えられる反転被検索データビット／Ｂ＜ｊ＞または接地電圧のうちの１つを選択してグローバル書込データ線ＺＧＷＤＢｊに伝達する。
【０１９２】
マルチプレクサ１０２ｃは、選択信号ＳＥＬＡ＜１：０＞に従って、対応のデータアンプ１００ｒの出力信号とインバータ５３を介して与えられる反転検索データビットＡ＜ｉ＞とＲ選択マスク回路５２ｂを介して与えられる書込データビットＢ＜ｊ＞または接地電圧の１つを選択して対応のグローバル書込データ線ＺＧＷＤＡｊ上に伝達する。マルチプレクサ１０２ｄは、２ビット選択信号ＳＥＬＢ＜１：０＞に従って、対応のデータアンプ１００ｒの出力信号とインバータ５３を介して与えられる反転検索データビット／Ａ＜ｊ＞と、Ｌ選択マスク回路５２ｂを介して与えられる書込被検索データビットＢ＜ｊ＞または接地電圧のうちの１つを選択して対応のグローバル書込データ線ＧＷＤＢｉ上に伝達する。
【０１９３】
選択マスク回路５２ａおよび５２ｂの構成は、図１７（Ｂ）および図１７（Ｃ）に示す構成と同じであり、マスク指示信号ＭＳＫ＜ｊ＞に従って反転被検索データビット／Ｂ＜ｊ＞および被検索データビットＢ＜ｊ＞または接地電圧（データ“０”）を選択的に伝達する。
【０１９４】
また、データパス５０において、マルチプレクサ１０２ａ−１０２ｄの出力部それぞれに対応して、図１７に示すようなレベルシフト回路タ５４ａ−５４ｄがそれぞれ設けられる。しかしながら、図２４においては、これらの書込データビットのＨレベルおよびＬレベルを規定する電圧を調整するレベルシフト回路は、図面を簡略化するために示していない。
【０１９５】
図２４に示すように、マルチプレクサ１０２ａ−１０２ｄを用いることにより、１つのサブブロックに対し、外部からの入力検索データＡを書込み、再び、この１つのサブブロックに格納された検索データを読出して別のサブブロックへ伝達することができる。従って、所定数のサブブロックをＦＩＦＯ（First-in First-out）領域として利用して検索動作を行なうことができる。これにより、半導体信号処理装置の検索動作レートが、入力データの転送レートよりも遅い場合においても、ＦＩＦＯ領域をバッファ領域として用いて入力検索データを待ち行列化することにより、入力データ転送速度を低下させることなく検索動作を行なうことができる。これにより、検索動作によりトラフィックに対してペナルティが生じるのを防止することができる。
【０１９６】
図２５は、この発明の実施の形態２に従う半導体信号処理装置の被検索データパターンの書込時のデータ転送経路を概略的に示す図である。図２５において、被検索データパターンの書込時においては、２ビット選択信号ＳＥＬＢ＜１：０＞を、マルチプレクサ１０２ｂおよび１０２ｄが、外部からのデータビットＢ＜ｊ＞（Ｂ＜０＞、…、Ｂ＜Ｎ＞、…Ｂ＜Ｓ＞、…）を選択する状態に設定する。このとき、選択マスク回路５２ａおよび５２ｂは、データパターン長に応じて、マスク指示信号ＭＳＫ（＝ＭＳＫ＜０＞、ＭＳＫ＜Ｎ＞、ＭＳＫ＜Ｓ＞、…）が設定される。ノンマスクのメモリセルに対しては、外部からの書込データビットＢ＜ｊ＞が、マルチプレクサ１０２ｂおよび１０２ｄを介してグローバル書込データ線ＺＧＷＤＢおよびＧＷＤＢ上に転送され、対応の記憶単位の記憶ノードＳＮＢＬおよびＳＮＢＲに、データビット／Ｂ＜ｊ＞およびＢ＜ｊ＞がそれぞれ格納される。書込がマスクされたメモリセルに対しては、データ“０”が記憶ノードＳＮＢＬおよびＳＮＢＲに転送されて書込まれ、ドントケア状態に設定される。
【０１９７】
このときには、ポートＡ書込ワード線ＷＷＬＡは非選択状態に維持されるため、選択信号ＳＥＬＡ＜１：０＞の状態は任意である。
【０１９８】
図２６は、検索動作時におけるデータの転送経路を概略的に示す図である。図２６においては、一例として、サブブロックＳＢｎがＦＩＦＯバッファ領域として用いられ、外部から転送される検索対象のデータパケットが、順次格納される。
【０１９９】
検索動作時においては、選択信号ＳＥＬＡ＜１：０＞は、読出データを選択する状態に設定され、マルチプレクサ１０２ａおよび１０２ｃは、対応のデータアンプ１００ｌおよび１００ｒの出力信号を選択して、対応のグローバル書込データ線ＧＷＤＡおよびＺＧＷＤＡ上にそれぞれ転送する。
【０２００】
一方、マルチプレクサ１０２ｂおよび１０２ｄは、２ビット選択信号ＳＥＬＢ＜１：０＞に従って外部からの検索データＡ＜ｊ＞（Ａ＜０＞、…、Ａ＜Ｎ＞、…、Ａ＜Ｓ＞、…）およびインバータ５３からの反転検索データ／Ａ＜ｊ＞を選択するとともに、対応のグローバル書込データ線ＺＧＷＤＢおよびＧＷＤＢ上にそれぞれデータビットＡ＜ｊ＞および／Ａ＜ｊ＞を転送する。
【０２０１】
マルチプレクサ１０２ｂおよび１０２ｄにより選択されたデータは、ＦＩＦＯ領域として規定されるサブブロックＳＢｎに格納される。一方、マルチプレクサ１０２ａおよび１０２ｃにより選択されたデータは、他のＴＣＡＭ領域として規定された、被検索データパターンを格納するサブブロック領域に転送されて記憶ノードＳＮＡＬおよびＳＮＡＲに格納される。次いで、このＦＩＦＯ領域から転送されたデータが、各ＴＣＡＭサブブロックにおいて、エントリＥＲＹ１からＥＲＹｍに登録されたデータパターンと順次比較される。
【０２０２】
ＦＩＦＯ領域においては、後に説明するように、初期状態において記憶ノードＳＮＡＬおよびＳＮＡＲは、データ“１”が格納される。従って、検索データがこ記憶ノードＳＮＢＬおよびＳＮＢＲに格納されて、次いで、読出されるときには、センスアンプ回路からは、データ“１”と検索データビットＡ＜ｊ＞とのＡＮＤ結果およびデータ“１”と反転検索データビット／Ａ＜ｊ＞とのＡＮＤ結果が出力される。すなわち、先に格納されたデータＡ＜ｊ＞および／Ａ＜ｊ＞が読出されて転送される。これにより、正確に待ち行列化した検索データを読出してＴＣＡＭ領域に転送することができる。
【０２０３】
図２７は、サブブロックに対する初期データの格納時のデータ転送経路を概略的に示す図である。各サブブロックに対して初期データを書込むときには、選択信号ＳＥＬＡ＜１：０＞により、マルチプレクサ１０２ａおよび１０２ｃに、それぞれ対応のデータビットＡ＜ｊ＞、Ｂ＜ｊ＞を選択させ、対応のグローバル書込データ線ＧＷＤＡｊおよびＺＧＷＤＡｊに、データビット“１”を転送する。これにより、ＦＩＦＯ領域の各サブブロックにおいては、演算子セルの記憶ノードＳＮＡＬおよびＳＮＡＲが、データ“１”を格納する状態に初期設定される。バッファ処理時には、このＦＩＦＯ領域のサブブロックの演算子セルの記憶ノードＳＮＢＬおよびＳＮＢＲに検索データが格納される。従って、内部データ読出時においては、ＦＩＦＯ領域において、検索データをバッファ処理して読出してセンスアンプ回路を介して対応のグローバル書込データ線に転送することができる。
【０２０４】
ＴＣＡＭ領域においては、マルチプレクサ１０２ｂおよび１０２ｄに対応のデータビットＡ＜ｊ＞およびＢ＜ｊ＞をそれぞれ選択させる。これにより、各サブブロックの演算子セルの記憶ノードＳＮＢＬおよびＳＮＢＲにデータ“０”が格納され、各演算子セルがドントケア状態に設定される。このとき、マスク指示信号ＭＳＫ＜ｊ＞を用いて、選択マスク回路５２ａおよび５２ｂからデータビット“０”を生成し、このデータビット“０”をマルチプレクサ１０２ｂおよび１０２ｄを介してＴＣＡＭ領域の演算子セルの記憶ノードＳＮＢＬおよびＳＮＢＲに転送するようにしてもよい。
【０２０５】
上述のように、各動作モードに応じて内部データの転送経路を切換えている。これにより、データパケット転送時の入力データのバッファ処理時（待ち行列化時）に、転送パケットのデータを、ＦＩＦＯバッファ領域の演算子セルの記憶ノードＳＮＢＬおよびＳＮＢＲにそれぞれ書込むとともに、バッファされたＦＩＦＯ領域のデータＡおよび／Ａを読出して、検索データとしてＴＣＡＭ領域に転送することができる。これにより、転送検索データのバッファ処理と検索動作とを並行して行なうことができ、パケット転送レートと検索動作レートの差を隠して、高速で検索動作を実行することができる。
【０２０６】
図２８は、この発明の実施の形態２に従う半導体信号処理装置の演算子セルアレイの構成を概略的に示す図である。図２８において、演算子セルアレイは、複数のサブアレイブロックＳＢＡ１−ＳＢＡｎに分割される。サブアレイブロックＳＢＡ１−ＳＢＡｎは、それぞれ対応のローカルマッチ線群ＭＬＧとともに、サブブロックＳＢ１−ＳＢｎを形成する。
【０２０７】
サブアレイブロックＳＢＡ１−ＳＢＡｎは、各々エントリＥＲＹ１−ＥＲＹｍを有する演算子セル領域と、センスアンプ回路が配置されるセンスアンプ帯ＳＡＫＢと、経路切換え用のスイッチングトランジスタＴＸ１およびＴＸ２を含む経路切換回路帯ＴＸＧＢとを有する。図２８においては、サブアレイブロックＳＢＡ２におけるエントリおよびセンスアンプ帯、および経路切換回路帯の配置を代表的に示す。
【０２０８】
サブアレイブロックＳＢＡ１−ＳＢＡＫが、被検索データパターンを格納するＴＣＡＭ領域として利用される。ローカルマッチ線群ＭＬＧそれぞれに対応して、ローカル一致判定回路ＬＭＤ１−ＬＭＤＫが設けられる。このＴＣＡＭ領域においては、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜Ｋ：１＞は固定的にＨレベルにアサートされ、メモリセルモード指示信号ＭＯＤＭＣ＜Ｋ：１＞は固定的にＬレベルにネゲートされる。これにより、図２３に示すように、センスアンプ回路ＳＡＫの出力信号が、スイッチングトランジスタＴＸｉ１（ＴＸ１１，ＴＸ２１…）により選択されて、対応のローカルマッチ線群ＭＬＧに含まれるローカルマッチ線に伝達される。
【０２０９】
一方、転送データパケットの検索データパターンを格納するＦＩＦＯ領域として、サブアレイブロックＳＢＡ（Ｋ＋１）−ＳＢＡｎが用いられる。このＦＩＦＯ領域においては、サブアレイブロックＳＢＡ（Ｋ＋１）−ＳＢＡｎは、単に転送データパケットをバッファする一時格納領域として利用されるため、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜Ｋ＋１：ｎ＞は固定的にＬレベルにネゲートされ、一方、メモリセルモード指示信号ＭＯＤＭＣ＜Ｋ＋１：ｎ＞は固定的にＨレベルにアサートされる。これにより、センスアンプ回路（ＳＡＫ）の出力信号は、グローバル読出データ線ＧＲＤｌおよびＧＲＤｒ上に伝達される。ＦＩＦＯ領域においては、演算子セルの記憶ノードＳＮＡＲおよびＳＮＡＬ（ＳＮＡＲ／Ｌ）は、それぞれデータ“１”を格納する状態に初期設定される（図２７参照）。検索動作時に、記憶ノードＳＮＢＬおよびＳＮＢＲに格納されたバッファ処理された検索データを、グローバル書込データ線ＧＷＤＡおよびＺＧＷＤＡに転送することができる。
【０２１０】
この図２８に示すように、検索動作時においては、マルチプレクサ１０２ａおよび１０２ｃにより、ＦＩＦＯ領域に格納されるバッファデータがグローバル書込データ線ＧＷＤＡおよびＺＧＷＤＡ上に転送され、ＴＣＡＭ領域のサブアレイブロックＳＢＡ１−ＳＢＡＫにおいて検索動作が実行される。この検索動作と並行して、外部からの入力データＡが、マルチプレクサ１０２ｂおよび１０２ｄにより、ＦＩＦＯ領域の次のエントリ（図２８においてはサブアレイブロックＳＢＡ（Ｋ＋１）のエントリＥＲＹ１）にグローバル書込データ線ＧＷＤＢおよびＺＧＷＤＢを介して転送されて、選択エントリの記憶ノードＳＮＢＬおよびＳＮＢＲへ格納される。
【０２１１】
図２９は、ＦＩＦＯ領域へのデータアクセスシーケンスの一例を概略的に示す図である。図２９において、ＦＩＦＯ領域は、４つのサブブロックＳＢａ−ＳＢｄを含む。サブブロックＳＢａ−ＳＢｄは、各々、ｍ個のエントリＥＲＹ１−ＥＲＹｍを含む。サブブロックＳＢａにおいては、エントリＥＲＹ１が検索動作完了により、アクセスされて空（empty）状態である。残りのエントリＥＲＹ２−ＥＲＹｍは、未検索のデータ（Ａ，／Ａ）を格納する。
【０２１２】
サブブロックＳＢｂにおいては、エントリＥＲＹ１−ＥＲＹｍに、未検索データ（Ａ，／Ａ）が格納される。
【０２１３】
サブブロックＳＢｃにおいては、エントリＥＲＹ１−ＥＲＹ（ｍ−１）に未検索データ（Ａ，／Ａ）が格納され、エントリＥＲＹｍは、未書込状態であり空（empty）状態である。サブブロックＳＢｄは、エントリＥＲＹ１−ＥＲＹｍは、空（empty）状態である。
【０２１４】
これらのサブブロックＳＢａ−ＳＢｄに対するデータの書込／読出のワード線を指定するために、読出ポインタ１１０、書込ポインタ１１２およびポインタ制御論理１１４が設けられる。読出ポインタ１１０は、これらのサブブロックＳＢａ−ＳＢｄに含まれる読出ワード線ＲＷＬＡおよびＲＷＬＢを指定するポインタを生成する。書込ポインタ１１２は、ポートＢ書込ワード線ＷＷＬＢを指定するポインタを生成する。読出ポインタ１１０および書込ポインタ１１２の生成するポインタは、サイクリックにサブブロックＳＢａ‐ＳＢｄのエントリを指定する。
【０２１５】
ポインタ制御論理１１４は、読出ポインタ１１０および書込ポインタ１１２のポインタを順次インクリメントするとともに、読出ポインタ１１０および書込ポインタ１１２の生成するポインタをオーバフローおよびアンダフローが発生しないように調整する。すなわち、ポインタ制御論理１１４は、読出ポインタ１１０の生成する読出ポインタおよび書込ポインタ１１２の生成するポインタを検出する。読出ポインタが書込ポインタに追いついたときには、アンダーフローが発生する可能性があり、アンダーフロー指示を生成する。また、ポインタ制御論理１１４は、この書込ポインタ１１２が生成するポインタが、読出ポインタ１１０の生成するポインタに追いついた場合、オーバーフローが生じる可能性があるため、オーバーフロー指示を生成する。これにより、ＦＩＦＯ領域におけるデータのオーバーフローおよびアンダーフローが生じるのを防止する。
【０２１６】
読出ポインタ１１０および書込ポインタ１１２は、サブブロックＳＢａ‐ＳＢｄの合計４ｍ個のエントリをサイクリックに指定するようにポインタを生成する。サブブロックＳＢａ−ＳＢｄに対してブロックアドレスおよびエントリアドレスを割当て、最大値のブロックアドレスでエントリアドレスが最大値に到達した場合に、初期値にポインタ１１０および１１２の生成するポインタをリセットする構成が利用されればよい。
【０２１７】
ポインタ１１０および１１２の生成するポインタのビット幅は、ＦＩＦＯ領域のＦＩＦＯ深さ（合計エントリ数）により決定される。先に実施の形態１において示したように、入力シフトレジスタ回路により、データパケットが順次シフトインされて、入力シフトレジスタ回路の保持するデータが、ＦＩＦＯ領域へ検索データとして一時格納されるために書込まれる。この場合、最小データパターン長（例えばＬ／８）と、データパケットの転送レート（たとえばＧＢビット／ｓｅｃ）とＴＣＡＭ領域およびＦＩＦＯ領域のアクセス時間との関係から、適宜、ＦＩＦＯ深さが定められればよい。すなわち、１つの検索データパターンに対してｍ個のエントリについて検索動作が行なわれる。従って、ＦＩＦＯ深さは、演算子セルアレイのアクセス時間のｍ倍の時間とデータパケット転送レートとに応じて定められればよい。
【０２１８】
図３０は、この発明の実施の形態２に従う半導体信号処理装置の各サブブロックに対応して設けられるローカル行選択駆動回路の構成を概略的に示す図である。この図３０に示すローカル行選択／駆動回路においては、ローカルＢポート書込ワード線選択駆動回路７２の前段に、マルチプレクサ１２０が設けられ、ローカルＡポート書込ワード線選択駆動回路１２６の前段に、マルチプレクサ１２２が設けられる。ローカル読出ワード線選択駆動回路１２８の前段にマルチプレクサ１２４が設けられる。このサブ行選択駆動回路７０の構成において、ローカルＡポート書込ワード線選択駆動回路１２６およびローカル読出ワード線選択駆動回路１２８は、それぞれ、図２１に示すローカルＡポート書込ワード線選択駆動回路７４およびローカル読出ワード線選択駆動回路７６に対応する。
【０２１９】
マルチプレクサ１２０は、サブブロック属性指示信号ＭＯＤＦＴ＜ｉ＞に従って、アドレスカウンタからのブロック選択信号ＢＳおよび書込ワード線アドレスＷＡＤの組と、書込ポインタ１１２からの書込ブロック選択信号ＰＷＢＳおよび書込ワード線アドレス信号ＰＷＡＤの組の一方を選択する。サブブロック属性指示信号ＭＯＤＦＴ＜ｉ＞は、対応のサブブロックＳＢｉが、ＴＣＡＭ領域として用いられるかメモリ領域として用いられるかを指定する。
【０２２０】
ローカルＢポート書込ワード線選択駆動回路７２は、マルチプレクサ１２０を介して与えられるブロック選択信号および書込ワード線アドレス信号に従ってポートＢ書込ワード線ＷＷＬＢ１−ＷＷＬＢｍの１つを選択状態へ駆動する。対応のサブブロックＳＢ＜ｉ＞がＴＣＡＭ領域として利用されることを指定するときには、マルチプレクサ１２０は、アドレスカウンタからのブロック選択信号ＢＳおよび書込ワード線アドレス信号ＷＡＤを選択する。対応のサブブロックＳＢ＜ｉ＞がＦＩＦＯ領域であるときには、マルチプレクサ１２０は、書込ポインタ１１２からのポインタブロック選択信号ＰＷＢＳおよびポインタ書込ワード線アドレス信号ＰＷＡＤを選択する。
【０２２１】
マルチプレクサ１２２は、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞が、ＴＣＡＭ領域を指定するときには、アドレスカウンタからのアドレス信号ＡＤを選択し、ＦＩＦＯ領域を指定するときには、書込ポインタからのポインタ書込ブロック選択信号ＰＷＢＳおよびポインタ書込ワード線アドレス信号ＰＷＡＤを選択する。
【０２２２】
ローカルＡポート書込ワード線選択駆動回路１２６は、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞がＴＣＡＭ領域を指定するときには、ブロック選択信号にかかわらずワード線イネーブル信号ＷＷＬＥＮに従って活性化されてマルチプレクサを介して与えられるカウンタアドレス信号ＡＤに対するデコード動作を行って、ポートＡ書込ワード線ＷＷＬＡ１−ＷＷＬＡｍのいずれかを選択状態へ駆動する。一方、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞が、ＦＩＦＯ領域を指定するときには、ローカルＡポート書込ワード線選択駆動回路１２６は、マルチプレクサ１２２からのポインタ書込ブロックアドレス選択信号ＰＷＢＳが対応のサブブロックを指定するときに活性化され、ポートＡ書込ワード線イネーブル信号ＷＷＬＥに応答してポインタ書込アドレス信号ＰＷＡＤをデコードして、ポートＡ書込ワード線ＷＷＬＡ１−ＷＷＬＡｍのいずれかを選択状態に駆動する。
【０２２３】
マルチプレクサ１２４は、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞が、ＴＣＡＭ領域を指定するときには、アドレスカウンタからのアドレス信号ＡＤを選択し、一方、ＦＩＦＯ領域を指定するときには、読出ポインタからのポインタ読出ブロック選択信号ＰＲＢＳおよびポインタ読出アドレス信号ＰＲＡＤを選択する。
【０２２４】
ローカル読出ワード線選択駆動回路１２８は、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞がＴＣＡＭ領域を指定するときには、読出ワード線イネーブル信号ＲＷＬＥＮに従って活性化され、マルチプレクサ１２４を介して与えられたアドレス信号ＡＤに従って読出ワード線ＲＷＬＡ１，ＲＷＬＢ１−ＲＷＬＡｍ，ＲＷＬＢｍのいずれかの組およびダミー読出ワード線ＤＲＷＬを選択状態へ駆動する。一方、ブロック属性指示信号ＭＯＤＦＴ＜ｉ＞が、ＦＩＦＯ領域を指定するときには、ローカル読出ワード線選択駆動回路１２８は、マルチプレクサ１２４を介して与えられるポインタブロック選択信号ＰＲＢＳが対応のサブブロックを指定するときに、ポインタ読出ワード線アドレス信号ＰＲＡＤに従って、ダミー読出ワード線ＤＲＷＬ、および読出ワード線ＲＷＬＡ１，ＲＷＡＢ１−ＲＷＬＡｍ，ＲＷＬＢｍの組のいずれかを読出ワード線活性化信号ＲＷＥＮの活性化に従って選択状態へ駆動する。
【０２２５】
図３１は、この発明の実施の形態２に従う半導体信号処理装置の制御回路８０の構成を概略的に示す図である。図３１に示す制御回路８０は、以下の点て、図２２に示す制御回路８０とその構成が異なる。すなわち、読出ポインタ１１０、書込ポインタ１１２およびポインタ制御論理１１４がさらに設けられるとともに、さらに、ブロック属性設定回路１３０が設けられる。ポインタ制御論理１１４は、コマンドデコーダ８１からの読出モード指示ＭＯＤＲのアサートに従って、読出ポインタ１１０および書込ポインタ１１２のポインタを制御する。読出ポインタ１１０は、アドレスカウンタ８７からのカウントアップ信号ＣＵＰに従ってそのポインタを１つ増分し、読出ポインタとして、読出サブブロック選択信号ＰＲＢＳおよび読出サブブロックワード線アドレス信号ＰＲＡＤを生成する。これにより、ｍエントリについてＴＣＡＭ領域について検索が完了した後に、次の待ち行列化された検索データを読出してＴＣＡＭ領域へ転送することができる。
【０２２６】
書込ポインタ１１２は、クロック信号ＣＬＫに同期して、ポインタ制御論理１１４の制御の下に、書込ポイントとして、書込ブロック選択信号ＰＷＢＳおよび書込ワード線アドレス信号ＰＷＡＤを生成する。これにより、入力データパケットから所定ビット幅のデータパターンが抽出される毎にＦＩＦＯ領域に書き込むことができる。
【０２２７】
ポインタ制御論路１１４は、読出ワード線活性化回路８６およびＡポート書込ワード線活性化回路８４と同期して、書込ポインタ１１２のポインタを更新する。
【０２２８】
ブロック属性設定回路１３２は、各サブブロック毎に、そのブロックの属性を示すブロック属性指示信号ＭＯＤＳＴ＜ｎ：１＞、ＴＣＡＭモード指定信号ＭＯＤＴＣ＜ｎ：１＞およびメモリモード指示信号ＭＯＤＭＣ＜ｎ：１＞を生成する。このブロック属性設定回路１３２は、たとえばヒューズプログラム回路で構成され、固定的に、各サブブロックの属性を設定するように構成されてもよい。また、ブロック属性設定回路１３２は、コマンドデコーダ８１からのテストモード指示信号ＭＯＤＴＳＴに従って外部から、起動時に、各サブブロックの属性を示す信号が設定されてもよい（この場合、ブロック属性設定回路１３２は、レジスタ回路で構成される）。
【０２２９】
なお、図３１に示す構成においては、読出ポインタ１１０が、アドレスカウンタ８１からのカウントアップ信号ＣＵＰに従ってポインタを増分している。しかしながら、このアドレスカウンタ８７からのカウントアップ信号ＣＵＰは、ポインタ制御論理１１４へ与えられ、ポインタ制御論理１１４が、カウンタからのカウントアップ信号ＣＵＰに従って読出ポインタ１１０のポインタを更新してもよい。
【０２３０】
また、ポインタ制御論理１１４は、先に説明したように、読出ポインタ１１０および書込ポインタ１１２のポインタをモニタし、ＦＩＦＯ領域における格納データのオーバーフローおよびアンダーフローが生じるのを防止する。アンダーフローまたはオーバーフローが発生したときには、オーバーフローまたはアンダーフロー指示信号を外部へ出力するように構成されてもよい。
【０２３１】
また、ブロック経路設定回路１３２は、コマンドデコーダ８１からのテストモード指示信号ＭＯＤＴＳＴに従って外部からのデータＥＸＤＡＴＡに従って選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞を生成する。この初期設定時においては、選択信号ＳＥＬＡ＜１：０＞を、マルチプレクサ１０２ａおよび１０２ｃが、それぞれ、外部からのデータＡおよびＢを選択して、グローバル書込データ線ＧＷＤＡおよびＺＧＥＤＡに伝達する状態に設定する。これにより、初期設定時、ＦＩＦＯ領域に設定されたサブブロックの記憶ノードＳＮＡＬおよびＳＮＡＲにデータビット“１”を設定することができる。
【０２３２】
ブロック経路設定回路１３２は、またヒューズ素子を含み、初期設定後、ヒューズ素子のプログラムにより、各選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞の状態が固定的に設定されてもよい。但し、この場合には、被検索データの追加登録を行うことはできず、検索動作のみが実行される（ＦＩＦＯ領域への書込、ＦＩＦＯ領域からＴＣＡＭ領域への転送および演算子セルのデータの読出が行われる）。
【０２３３】
また、ブロック属性設定回路１３０と同様、ブロック経路設定回路１３２は、外部に設けられるレジスタからの経路設定データを外部データＥＸＤＡＴＡとして受けて、経路選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞の状態が設定されてもよい。この場合、外部のレジスタは、固定的に経路設定情報を格納する。
【０２３４】
この図３１に示す制御回路の他の構成は、図２２に示す制御回路の構成と同じであり、対応する部分には同一参照符号を付して、その詳細説明は省略する。
【０２３５】
以上のように、この発明の実施の形態２に従えば、演算子セルアレイを、ＴＣＡＭ領域およびＦＩＦＯ領域に分割し、外部からのデータパターンをＦＩＦＯ領域に順次格納し、このＦＩＦＯ領域に格納されたデータを順次ＴＣＡＭ領域へ転送してパターン一致検索を行なっている。これにより、外部に別途、転送データパケットを格納するためのＦＩＦＯメモリが不要となり、装置の占有面積を低減することができる。
【０２３６】
また、この半導体信号処理装置の演算子セルアレイ内において内部データの転送およびパターンの一致検索を行なっており、高速のデータ転送を行なうことができ、一致判定に要する時間を短縮することができる。
【０２３７】
また、ＦＩＦＯ領域の深さをサブブロック単位で任意に変更することができ、最適なＦＩＦＯバッファ容量を実現することができる。
【０２３８】
なお、この本発明の半導体信号処理装置においては、高密度に被検索パターンのマッピングを行なうことができる。しかしながら、マッピングするパターン種によっては、必要とされるエントリ数も大きく変化する。したがって、ＴＣＡＭ領域に割当てられるサブブロックの大きさも、このマッピングするパターンに応じて最適化し、残りの領域（サブブロック）ＦＩＦＯに割付ける。また、これに代えて、外部からの検索データの転送速度が速い場合には、被検索パターンすべてのマッピングを少し犠牲にし、ＴＣＡＭ領域をある程度制限し、この制限された領域をＦＩＦＯ領域に用いてＦＩＦＯ領域の容量を増大させることができる。これにより、演算子セルアレイのＴＣＡＭ領域およびＦＩＦＯ領域のコンフィギュレーションを最適化して、文字列パターン検索の効率化を実現することができる。
【０２３９】
［実施の形態３］
図３２は、この発明の実施の形態３に従う半導体信号処理装置の１つのサブブロックＳＢｉの構成を概略的に示す図である。図３２において、サブブロックＳＢｉは、ｍ個のエントリＥＲＹ１−ＥＲＹｍを含む。これらのエントリＥＲＹ１−ＥＲＹｍは、ｓ（＝２＾ｋ）個の検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，ｓ）を含むデータパターン格納領域ＤＰＳＧと、マッピングフラグメモリ領域ＭＦＬＧとに分割される。
【０２４０】
検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，ｓ）は、各々Ｎバイト幅を有し、記憶単位ＳＵＴに相補登録パターンデータビットを各々格納する。マッピングフラグメモリ領域ＭＦＬＧにおいては、対応のエントリに格納されるデータパターンのパターン長を示すデータを演算子セルＵＯＥに格納する。サブブロックＳＢｉのサブアレイブロックＳＢＡｉの外部にセンスアンプ帯ＳＡＢおよび経路切換回路帯ＴＸＧＢおよびローカルマッチ線ＭＬ１−ＭＬｓが設けられる。サブブロックＳＢｉの内部構成は、先の実施の形態２において説明した構成と同じである。
【０２４１】
図３３は、この発明の実施の形態３における１つのエントリに格納可能なデータパターンを示す図である。図３３において、データパターンＰＡＴ１は、パターン長Ｌ（＝Ｎ・ｓ＝Ｎ・２＾ｋバイト）を有する。データパターンＰＡＴ２は、パターン長Ｌ／２を有し、データパターンＰＡＴ３は、パターン長Ｌ／４を有し、データパターンＰＡＴ４は、パターン長Ｌ／８を有する。データパターンＰＡＴ５およびＰＡＴ６は、パターン長Ｌ／１６を有する。パターン長Ｌ、Ｌ／２、Ｌ／４、Ｌ／８、およびＬ／１６のデータパターンの１つのエントリ内における格納位置は予め定められる。これにより、各エントリ単位で、パターン長の異なる被検索データを格納することができる。
【０２４２】
図３４は、１つのサブブロックＳＢｉにおける被検索データのマッピングの一例を示す図である。図３４において、サブブロックＳＢｉは、例示のために、６個のエントリＥＲＹ１−ＥＲＹ６を含む。データパターン格納領域ＤＰＳＧは、夫々の位置が固定的に定められるデータ格納領域ＲＧ１−ＲＧ５に分割可能である。領域ＲＧ１は、パターン長Ｌ／２のデータパターンを格納する領域に割当てられる。領域ＲＧ２は、パターン長Ｌ／４のデータパターンを格納する領域に割当てられる。領域ＲＧ３は、パターン長Ｌ／８のデータパターンを格納する領域に割当てられる。領域ＲＧ４およびＲＧ５は、それぞれパターン長Ｌ／１６のデータパターンを格納する領域に割当てられる。領域ＲＧ１−ＲＧ５全体を用いて、パターン長Ｌのデータパターンが格納される。
【０２４３】
図３４において、エントリＥＲＹ１においては、パターン長Ｌのデータパターン♯１が格納される。この場合、マッピングフラグメモリ領域ＭＦＬＧにおいては、最上位ビットが“１”に設定され、パターン長Ｌの有効データパターンが格納されたことが示される。
【０２４４】
エントリＥＲＹ２においては、領域ＲＧ１にパターン長Ｌ／２のデータパターン♯２が格納される。この場合、パターン長Ｌ／２の有効データパターンが格納されたことを示すため、エントリＥＲＹ２のマッピングフラグメモリ領域ＭＦＬＧにおいて、２番目の上位ビットが“１”に設定される。残りのビットはすべて“０”である。
【０２４５】
エントリＥＲＹ３においては、領域ＲＧ１およびＲＧ２に、それぞれパターン長Ｌ／２およびＬ／４のデータパターン♯３および♯４が格納される。マッピングフラグメモリ領域ＭＦＬＧにおいて、対応のマッピングフラグビットの第２および第３上位ビットが“１”に設定され、残りのビットは“０”に設定される。これにより、領域ＲＧ２およびＲＧ３に、それぞれデータパターン長Ｌ／２およびＬ／４の有効データパターンが格納されたことが示される。
【０２４６】
エントリＥＲＹ４においては、データ格納領域ＲＧ１、ＲＧ２、およびＲＧ３に、パターン長Ｌ／２、Ｌ／４およびＬ／８のデータパターン♯５、♯６および♯７が、それぞれ格納される。この場合、対応のマッピングフラグビットにおいて、第２から第４上位ビットが“１”に設定され、領域ＲＧ１、ＲＧ２およびＲＧ３に、それぞれパターン長Ｌ／２、Ｌ／４およびＬ／８の有効データがマッピングされたことが示される。
【０２４７】
エントリＥＲＹ５においては、パターン長Ｌ／２のデータパターン♯８、パターン長Ｌ／４のデータパターン♯９、パターン長Ｌ／８のデータパターン♯１０およびパターン長Ｌ／１６のデータパターン♯１１が、それぞれ、データ格納領域ＲＧ１からＲＧ４に格納される。対応のマッピングフラグビットにおいて、第２から第５ビットが“１”に設定され、最上位ビットおよび最下位フラグビットは“０”に設定される。これにより、領域ＲＧ１−ＲＧ４に、それぞれ、パターン長Ｌ／２、Ｌ／４、Ｌ／８およびＬ／１６のデータパターンが格納されたことが示される。
【０２４８】
エントリＥＲＹ６においては、領域ＲＧ１、ＲＧ２、ＲＧ３、ＲＧ４およびＲＧ５に、それぞれ、パターン長Ｌ／２のデータパターン♯１２、パターン長Ｌ／４のデータパターン♯１３、パターン長Ｌ／８のデータパターン♯１４、およびパターン長Ｌ／１６のデータパターン♯１５および♯１６がそれぞれ格納される。この場合、対応のマッピングフラグビットにおいて、最上位ビットを除くフラグビットがすべて“１”に設定される。これにより、領域ＲＧ１−ＲＧ５において、それぞれパターン長Ｌ／２、Ｌ／４、Ｌ／８、およびＬ／１６、Ｌ／１６の有効データパターンが格納されたことが示される。
【０２４９】
この図３４に示すように、データパターン格納領域ＤＰＳＧにおいて、パターン長毎にエントリ内の格納位置を予め固定的に定め、各領域に有効データが格納される場合、対応のマッピングフラグビットに“１”に立てる。これにより、各エントリ毎に、複数のパターン長の異なるデータパターンをマッピングすることができる。
【０２５０】
このとき、マスク指示信号ＭＳＫを利用することにより、指定されたパターン長内でビット単位で、被検索データパターン長を調整することができる。
【０２５１】
図３５は、この発明の実施の形態３に従う半導体信号処理装置の１つのサブブロックのローカルマッチ線と各検索単位との接続態様を概略的に示す図である。図３５において、検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）それぞれに対応してローカルマッチ線ＭＬ１−ＭＬ２＾ｋが設けられる。検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾ｋ）のローカル読出データ線ＬＲＤが、それぞれ対応のローカルマッチ線ＭＬ１−ＭＬ２＾ｋに結合される。
【０２５２】
ローカル一致判定回路ＬＭＤｉは、これらのローカルマッチ線ＭＬ１−ＭＬ２＾ｋそれぞれに対応して設けられるマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋと、こららのマッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号に従って領域ＲＧ１−ＲＧ５個々に一致／不一致を判定しローカル一致判定信号ＬＭＣＨ＜ｉ＞を生成するローカル一致判定部ＬＭＤＴｉとを含む。
【０２５３】
図３６は、図３５に示す一致判定部ＬＭＤＴｉの構成を概略的に示す図である。図３６において、一致判定部ＬＭＤＴｉは、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号を受けるＯＲゲート１４０ａと、領域ＲＧ１−ＲＧ５それぞれに対応して設けられるＯＲゲート１４０ｂ−１４０ｆと、これらのＯＲゲート１４０ａ−１４０ｆの出力信号を受けてローカル一致判定信号ＬＭＣＨ＜ｉ＞を生成するＡＮＤゲート１４２とを含む。
【０２５４】
ＯＲゲート１４０ｂは、マッチ線アンプＡＭＰ１−ＡＭＰ＾（ｋ−１）の出力信号を受ける。ＯＲゲート１４０ｃは、マッチ線アンプＡＭＰ（２＾（ｋ−１）＋１）−ＡＭＰ（３・２＾（ｋ−２）の出力信号を受ける。ＯＲゲート１４０ｄは、マッチ線アンプＡＭＰ（３・２＾（ｋ−２）＋１）−ＡＭＰ（７・２＾（ｋ−３）＋１）−ＡＭＰ１５・２＾（ｋ−４）の出力信号を受ける。ＯＲゲート１４０ｆは、マッチ線アンプＡＭＰ１−ＡＭＰ２＾（ｋ−１）の出力信号を受ける。ＯＲゲート１４０ｃは、マッチ線アンプＡＭＰ（１５・２＾（ｋ−４）＋１）−ＡＭＰ（２＾ｋ）の出力信号を受ける。
【０２５５】
領域ＲＧ１−ＲＧ５と全領域とに対応して、マッチ線アンプＡＭＰ１−ＡＭＰ２＾ｋの出力信号をグループ化して受けることにより、あるエントリにおいていずれかの領域において生じた一致を識別することができる。すなわち、ある領域において一致判定の場合には、その領域に対応するマッチ線アンプの出力信号はすべてＬレベルであり、対応のＯＲゲートの出力信号もＬレベルとなり、ＡＮＤゲート１４２からのローカル一致判定信号ＬＭＣＨ＜ｉ＞もＬレベルとなり、一致がいずれかのパターン長のデータパターンにおいて発生したことを識別することができる。一致検出時、エントリアドレスとともに対応のマッピングフラグビットを読出すことにより、各エントリにおいて種々のパターン長のデータが格納される場合においても、一致したデータパターンの候補を限定することができる。効率的に例えば不正アクセス対策を行なうことができる。
【０２５６】
この場合、アドレスカウンタにより生成されるエントリアドレスを装置外部へ読出すことにより、いずれのエントリで一致が発生したかを識別することができる。
【０２５７】
［マッチ線配置の変更例］
図３７は、この発明の実施の形態３に従う半導体信号処理装置のローカルマッチ線の配置の変更例を概略的に示す図である。図３７において、データパターン格納領域ＤＰＳＧが、データパターン長に応じたデータ格納領域ＲＧ１−ＲＧ５に分割される。領域ＲＧ１−ＲＧ５それぞれに対応して、ローカルマッチ線ＭＬ１−ＭＬ５が設けられ、領域ＲＧ１−ＲＧ５に共通にローカルマッチ線ＭＬ０が設けられる。
【０２５８】
領域ＲＧ１には、検索単位ＲＵＴ（ｉ，１）−ＲＵＴ（ｉ，２＾（ｋ−１））が配置され、各々のローカル読出データ線ＬＲＤが、ローカルマッチ線ＭＬ０およびＭＬ１に結合される。
【０２５９】
領域ＲＧ２は、検索単位ＲＵＴ（ｉ，２＾（ｋ−１）＋１）−ＲＵＴ（ｉ，３・２＾（ｋ−１））が配設され、各々のローカル読出データ線ＬＲＤが、ローカルマッチ線ＭＬ０およびＭＬ２に結合される。
【０２６０】
領域ＲＧ３においては、検索単位ＲＵＴ（ｉ，３・２＾（ｋ−２）＋１）−ＲＵＴ（ｉ，７・２＾（ｋ−３））が配設され、各々のローカル読出データ線ＬＲＤが、ローカルマッチ線ＭＬ０およびＭＬ３に結合される。
【０２６１】
領域ＲＧ４は、検索単位ＲＵＴ（ｉ，７・２＾（ｋ−３）＋１）−ＲＵＴ（ｉ，１５・２＾（ｋ−４））を含み、各々のローカル読出データ線ＬＲＤが、ローカルマッチ線ＭＬ０およびＭＬ４に結合される。
【０２６２】
領域ＲＧ５は、検索単位ＲＵＴ（ｉ，１５・２＾（ｋ−４）＋１）−ＲＵＴ（ｉ，２＾ｋ）を含み、各々のローカル読出データ線ＬＲＤが、ローカルマッチ線ＭＬ０およびＭＬ５に結合される。
【０２６３】
ローカル一致判定回路ＬＭＤｉにおいて、ローカルマッチ線ＭＬ０−ＭＬ５それぞれに対応してマッチ線アンプＡＭＰ０−ＡＭＰ５が設けられる。マッチ線アンプＡＭＰ０−ＡＭＰ５の出力信号が、６入力ＯＲ回路１４４へ与えられる。この６入力ＯＲ回路１４４は、マッチ線アンプＡＭＰ０−ＡＭＰ５の出力信号がすべてＬレベルのときに、対応のローカル一致判定信号ＬＭＣＨ＜ｉ＞をＬレベルに設定する。
【０２６４】
この図３７に示す構成の場合、データパターン長に応じてローカルマッチ線を設け、各データパターン長に割当てられた領域のセンスアンプ回路の出力信号を、対応のローカルマッチ線に結合している。これにより、ローカルマッチ線の数を増大させることなく、異なるパターン長のデータパターンについての一致／不一致判定結果を生成することができる。
【０２６５】
図３８から図４４は、パターン長の異なる被検索データパターンの書込シーケンスの一例を概略的に示す図である。図３８から図４４においては、３つのエントリＥＲＹａ−ＥＲＹｃに対する被検索データパターンの書込動作シーケンスを一例として示す。
【０２６６】
図３８において、データパターン格納領域ＤＰＳＧには、まだ被検索データパターンは登録されていない。この場合、記憶ノードＳＮＡＲおよびＳＮＡＬには、データ“１”が書込まれる。マッピングフラグ格納領域ＭＦＬＧにおいても、その記憶ノードＳＮＡに“１”が書込まれ、記憶ノードＳＮＢにはデータビット“０”が書込まれる。これにより、マッピングフラグビットはすべて“０”の状態に設定される。フラグビットの更新は、記憶ノードＳＮＢに対するデータ“１”の書込により行われる。
【０２６７】
図３９において、パターン長ＬのデータパターンＰＡＴ♯１がエントリＥＲＹａに格納される。このデータ格納時、先に実施の形態１および２において説明したように、記憶ノードＳＮＢＲおよびＳＮＢＬに被検索データパターンが書込まれる。この場合、エントリＥＲＹａのマッピングフラグメモリ領域ＭＦＬＧにおいて、最上位ビットが“１”に設定される。
【０２６８】
図４０において、エントリＥＲＹｂのデータ格納領域ＤＰＳＧの領域ＲＧ１にパターン長Ｌ／２のデータパターンＰＡＴ♯２が書込まれる。このとき、マッピング格納領域ＭＦＬＧにおいて、対応のビット（第２ビット）が“１”に設定される。
【０２６９】
図４１において、パターン長Ｌ／２のデータパターンＰＡＴ♯３の書込が行なわれる。この場合、パターン長Ｌ／２のデータを格納する領域ＲＧ１内の空き領域が存在するエントリは、エントリＥＲＹｃである。したがって、エントリＥＲＹｃの領域ＲＧ１に被検索データパターンＰＡＴ♯３が書込まれる。このとき、また、マッピングフラグメモリ領域ＭＦＬＧにおいても、対応のエントリＥＲＹｃの第２上位ビットが“１”に設定される。
【０２７０】
図４２において、パターン長Ｌ／４のデータパターンＰＡＴ♯４の書込が行なわれる。この場合、データパターン格納領域ＤＰＳＧにおいては、エントリＥＲＹｂ内のパターン長Ｌ／４のデータ格納領域ＲＧ２が先頭空き領域であり、エントリＥＲＹｂに対する書込が行われ、データパターンＰＡＴ♯４が領域ＲＧ２に格納される。応じて、マッピングフラグメモリ領域ＭＦＬＧにおいても対応のマッピングフラグビット（第３上位ビット）が“１”に設定される。
【０２７１】
図４３において、パターン長Ｌ／８のデータパターンＰＡＴ♯５の書込が行なわれる。この場合、領域ＲＧ３において空き領域が存在する先頭エントリＥＲＹｂの領域ＲＧ３に対し、データパターンＰＡＴ♯５が書込まれる。このデータパターンＰＡＴ♯５の書込と並行して、マッピングフラグメモリ領域ＭＦＬＧのエントリＥＲＹｂの対応のビット（第４上位ビット）が“１”に設定される。
【０２７２】
図４４において、パターン長Ｌ／８のデータパターンＰＡＴ♯６の書込が行なわれる。この場合、領域ＲＧ３に空き領域がある先頭エントリは、エントリＥＲＹｃである。したがって、エントリＥＲＹｃのデータパターン格納領域ＤＰＳＧの領域ＲＧ３に、データパターンＰＡＴ♯６が書込まれる。このとき、マッピングフラグメモリ領域ＭＦＬＧにおいてエントリＥＲＹｃの対応のビットが“１”に設定される。
【０２７３】
上述のように、書込データパターンのパターン長に応じて先頭空き領域に書込データを順次格納する。この場合、既に書込まれているデータパターンの書替えを防止するために、選択エントリの非書込領域においては、その記憶データを読出して再書込する動作を行なう。これにより、各エントリに順次データパターン長に応じて被検索データパターンを書込む場合においても、登録データパターンの破壊が防止される。この方式は、実施の形態１および２においてサブブロック単位でパターン長の異なる被検索データパターンの書込が行われる場合においても、同様の内部読出しおよび再書込みが、選択エントリの非書込領域に対して行われる。
【０２７４】
図４５は、この発明の実施の形態３におけるデータパスの構成およびマルチプレクサに対する経路選択信号の割当てを概略的に示す図である。図４５において、データパターン格納領域ＤＰＳＧが、領域ＲＧ１−ＲＧ５にそれぞれ分割される。データパス５０も、これらの領域ＲＧ１−ＲＧ５に対応して、データパスブロックＤＰＨ１−ＤＰＨ５にそれぞれ分割される。マッピングフラグメモリ領域ＭＦＬＧに対して、データパスブロックＤＰＨ０が設けられる。データパス５０の内部構成としては、図１７および図２４に示す構成と同様の構成が用いられる。図４５においては、データパス５０において代表的にマルチプレクサ１０２ａー１０２ｄを示す。
【０２７５】
演算子アレイの構成としては、実施の形態２のＦＩＦＯ領域およびＴＣＡＭ領域に分割可能な構成を用いる。センスアンプ回路の出力信号の伝播経路を切換えるスッチングトランジスタＴＸｉ１およびＴＸｉ２（図４５においては示さず）について、マッピングフラグメモリ領域ＭＦＬＧに対しては、選択信号ＭＯＤＦＴＣ＜ｎ：１＞およびＭＯＤＦＭＣ＜ｎ：１＞が、それぞれＴＣＡＭモード指示信号およびメモリモード指示信号として与えられる。マッピングフラグメモリ領域ＭＦＬＧに対しては、メモリモード指示信号ＭＯＤＦＴＣ＜ｎ：１＞およびＭＯＤＦＭＣ＜ｎ：１＞は、メモリモードを指定する状態に設定される。従って、マッピングフラグメモリ領域ＭＦＬＧにおいては、常時、センスアンプ回路の出力信号がグローバル読出データ線に伝達される。
【０２７６】
データパターン格納領域ＤＰＳＧに対しては、ブロックＴＣＡＭモード指示信号ＳＭＯＤＴＣ＜ｎ：１＞およびブロックメモリモード指示信号ＳＭＯＤＭＣ＜ｎ：１＞が与えられる。ブロックＴＣＡＭモード指示信号ＳＭＯＤＴＣ＜ｎ：１＞は、データ書込モード指示信号（ＭＯＤＷ）と実施の形態２において利用されるＴＣＡＭモード指示信号ＭＯＤＴＣ＜ｎ：１＞とに従って生成される。データ書込時においては、ブロックＴＣＡＭモード指示信号ＳＭＯＤＴＣ＜ｎ：１＞は、全てオフ状態に設定され、センスアンプ回路の出力とローカルマッチ線とは分離される。検索動作時においては、ブロックＴＣＡＭモード指示信号ＳＭＯＤＴＣ＜ｎ：１＞は、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜ｎ：１＞に従って生成される。
【０２７７】
このブロックＴＣＡＭモード指示信号ＳＭＯＤＴＣ＜ｎ：１＞は、書込モード指示信号（ＭＯＤＷ）の反転信号とＴＣＡＭモード指示信号ＭＯＤＴＣ＜ｎ：１＞との論理積演算により生成される。
【０２７８】
ブロックメモリモード指示信号ＳＭＯＤＭＣ＜ｎ：１＞は、メモリモード指示信号ＭＯＤＭＣ＜ｎ：１＞とブロック選択信号との論理和により生成される。ＴＣＡＭ領域として割当てられるかＦＩＦＯ領域に割当てられるかに応じて、ＴＣＡＭモード指示信号ＭＯＤＴＣ＜ｎ：１＞およびメモリモード指示信号ＭＯＤＭＣ＜ｎ：１＞の論理値が設定される。
【０２７９】
このブロックメモリモード指示信号ＳＭＯＤＭＣ＜ｎ：１＞は、データ書込モード指示信号（ＭＯＤＷ）とブロック選択信号とメモリモード指示信号ＭＯＤＭＣ＜ｎ：１＞との論理和により生成される。データ書込時においては、ブロックメモリモード指示信号ＳＭＯＤＭＣ＜ｎ：１＞は、選択サブブロックを特定するブロック選択信号（ＢＳ）に従ってメモリモードに設定される。検索動作時においては、ブロック選択信号を無効として、メモリモード指示信号ＭＯＤＭＣ＜ｎ：１＞に従ってブロックメモリモード指示信号ＳＭＯＤＭＣ＜ｎ：１＞が生成される。データ書込時において、データ書込対象のエントリを含むサブブロックにおいてセンスアンプ回路の出力信号が対応のグローバル読出データ線ＧＲＤに伝達される。これにより、データ書込時において選択エントリの非選択記憶単位に、記憶データの再書き込みを行う経路を確保する。
【０２８０】
データパターン格納領域ＤＰＳＧおよびマッピングフラグ格納領域ＭＦＬＧ個々にセンスアンプ回路の出力信号の伝播経路を設定する。これにより、被検索データ書込時および検索動作時において、マッピングフラグビットが書き換えられるのを防止する。
【０２８１】
一方、データパスブロックＤＰＨ０−ＤＰＨ５に共通に、選択信号ＳＥＬＡ＜１：０＞が与えられる。データパスブロックＤＰＨ０においては、選択信号ＳＥＬＡ＜１：０＞のうちの１ビットが与えられて、そのマルチプレクサ１０２ａおよび１０２ｃの接続経路が設定される。一方、これらのデータパスブロックＤＰＨ１−ＤＰＨ５においては、選択信号ＳＥＬＡ＜１：０＞に従って、マルチプレクサ１０２ａおよび１０２ｃの接続経路が共通に設定される。
【０２８２】
また、データパスブロックＤＰＨ１−ＤＰＨ５に対して、ローカル選択信号ＬＳＥＬＢ１＜１：０＞−ＬＳＥＬＢ５＜１：０＞がそれぞれ与えられる。ローカル選択信号ＬＳＥＬＢ１＜１：０＞により、領域ＲＧ１に対応して配置されるマルチプレクサ１０２ｂおよび１０２ｄの経路が設定される。残りのデータパスブロックＤＰＨ２−ＤＰＨ５それぞれにおいても、ローカル選択信号ＬＳＥＬＢ２＜１：０＞−ＬＳＥＬＢ５＜１：０＞に応じて、マルチプレクサ１０２ｂおよび１０２ｄの経路が、個々に設定される。
【０２８３】
マッピングフラグ格納領域ＭＦＬＧに対して設けられるデータパスブロックＤＰＨ０においては、マッピングフラグメモリ領域ＭＦＬＧの演算子セルＵＯＥの列それぞれに対応してローカル選択信号ＬＳＥＬＢ０およびＬＳＥＬＢ１＜１：０＞−ＬＳＥＬＢ５＜１：０＞のうちの１ビットがそれぞれ与えられる。これにより、マッピングフラグメモリ領域ＭＦＬＧにおいては、１つのエントリに配置される演算子セルＵＯＥに対するデータ書込経路が個々に設定される。
【０２８４】
このデータパス構成により、被検索データパターンのマッピング時において、データ格納領域ＲＧ１−ＲＧ５単位で被検索データのパターンの書込を行なうことができ、また、マッピングフラグビットの値を、各データ格納領域に対応して個々に書込むことができる。また、検索時に、マッピングフラグビットを格納する演算子セルの記憶ノードＳＮＡにデータ“１”を書込むことにより、マッピングフラグビットの書換えを防止する。
【０２８５】
図４６は、データパス構成におけるデータパスブロックＤＰＨ０の構成を概略的に示す図である。このデータパスブロックＤＰＨ０は、マッピングフラグメモリ領域の１エントリに配置される６個の演算子セルＵＯＥ０−ＵＯＥ５に対応して６個の入力切換回路ＩＳＫ０−ＩＳＫ５を含む。入力切換回路ＩＳＫ０−ＩＳＫ５は、それぞれ同一構成を有し、データアンプ１５０と、切換回路１５２および１５４とを含む。
【０２８６】
入力切換回路ＩＳＫｉ（ｉ＝０−５のいずれかの整数）のデータアンプ１５０は、対応のグローバル読出データ線ＦＧＲＬｉ上の信号を増幅する。切換回路１５２は、選択信号ＳＥＬＡ＜１：０＞の１ビットＳＥＬＡに従ってデータアンプ１５０の出力信号と外部からの書込ビットＦＡ＜ｉ＞の一方を選択して対応のグローバル書込データ線ＦＧＷＡｉに伝達する。
【０２８７】
切換回路１５４は、ローカル経路選択信号ＬＳＥＬＢｉ＜１：０＞の１ビットＬＳＥＬＢｉに従ってデータアンプ１５０の出力信号と与えられたフラグビットＦＢ＜ｉ＞の一方を選択して対応のグローバル書込データ線ＦＧＷＢｉ上に伝達する。グローバル書込データ線ＦＧＷＡｉ上のデータは、対応の列の演算子ＵＯＥｉの記憶ノードＳＮＡに書込まれる。グローバル書込データ線ＦＧＷＢｉ上のデータは、対応の演算子の記憶ノードＳＮＢに書込まれる。
【０２８８】
図４６に示すように、入力切換回路ＩＳＫ０−ＩＳＫ５それぞれにおいて個々に、選択信号ＬＳＥＬＢ０−ＬＳＥＬＢ５に従って、切換回路１５４の接続経路を設定することにより、１ビット単位で、フラグビットの書込を行なうことができる。
【０２８９】
図４７は、図４６に示すマッピングフラグメモリ領域に対するデータパスブロックＤＰＨ０のマッピングフラグビット書替え時のデータの流れを概略的に示す図である。図４７においては、データパターン長Ｌ／４の領域ＲＧ２への被検索データの書込が行なわれる場合のマッピングフラグビットの書込を一例として示す。
【０２９０】
この場合、選択信号ＬＳＥＬＢ０−ＬＳＥＬＢ１およびＬＳＥＬＢ３−ＬＳＥＬＢ５は、対応のデータパターン長の書込が対応の領域ＲＧ１、ＲＧ３−ＲＧ５に対して行なわれないことを示している。入力切換回路ＩＳＫ０−ＩＳＫ１およびＩＳＫ３−ＩＳＫ５において、マルチプレクサ１５４が対応のデータアンプ１５０の出力信号を選択してグローバル書込データ線ＦＧＷＢ０−ＦＧＷＢ１およびＦＧＷＢ３−ＦＧＷＢ５上に転送する。一方、入力切換回路ＩＳＫ２において切換回路１５４は、選択信号ＬＳＥＬＢ２が対応の領域へのデータ書込を示しており、マッピングフラグビットＦＢ＜２＞を選択して、グローバル書込データ線ＦＧＷＢ２上に転送する。
【０２９１】
演算子セルＵＯＥ０−ＵＯＥ５においては、初期化時に記憶ノードＳＮＡにはデータビット“１”が格納されている。したがって、入力切換回路ＩＳＫ０、ＩＳＫ１およびＩＳＫ３−ＩＳＫ４においては、これらの演算子セルの記憶ノードＳＮＢに格納されたデータを記憶ノードＳＮＢに再書込している。一方、演算子セルＵＯＥ２については、与えられたマッピングフラグビットＦＢ＜２＞を演算子セルＵＯＥ２の記憶ノードＳＮＢに書込み、記憶データを“１”に設定する。これにより、マッピングフラグビットのうち、書込を行なう領域のパターン長に応じたマッピングフラグビットの値のみを“１”に書替えることができる。この書込時においては、選択信号ＳＥＬＡの状態は、フラグビットＦＡ＜０＞−ＦＡ＜５＞の書込は行なわれないため、任意である。
【０２９２】
図４８は、検索動作モードにおけるフラグビットの転送経路を概略的に示す図である。この検索モード時においては、フラグビットＦＡ＜５：０＞が、全て“１”に設定される。マルチプレクサ１５２は、選択信号ＳＥＬＡに従って、フラグビットＦＡ＜５：０＞を選択する状態に設定される。マルチプレクサ１５４は、特に限定されないが、選択信号ＬＳＥＬＢ＜５：０＞に従って、フラグビットＦＢ＜５：０＞を選択して対応のグローバル書込データ線ＦＧＷＢ０−ＦＧＷＢ５に転送される。すなわち、検索動作時においては、検索対象のエントリにおいては、記憶ノードＳＮＢへの書込は行われないため（ポートＢ書込ワード線ＷＷＬＢは非選択状態）、マルチプレクサ１５４の接続経路は、任意の状態に設定することができる。
【０２９３】
マッピングフラグメモリ領域においては、グローバル書込データ線ＦＧＷＡ０−ＦＧＷＡ５にデータ“１”が伝達される。検索時においては、ポートＡ書込ワード線ＷＷＬＡが選択状態に駆動され、ポートＢ書込ワード線ＷＷＬＢは、非選択状態である。従って、マッピングフラグメモリ領域においては、検索が行われるエントリの演算子セルＵＯＥの記憶ノードＳＮＡにデータ“１”が格納され、記憶ノードＳＮＢに格納されるフラグビットの更新は行われない。これにより、検索動作時において、ポートＡ書込ワード線ＷＷＬＡが選択されて検索データの書込が行われても、何ら問題は生じない。
【０２９４】
また、ＦＩＦＯ領域から待ち行列化された検索データを読出して、各サブブロックへ転送する構成においても、ＦＩＦＯ領域に対応するマッピングフラグメモリ領域のフラグビットが転送されて書込まれることは防止される。この場合、ＦＩＦＯ領域に対応するフラグメモリ領域においてフラグビットＦＢ＜５：０＞の書込が行われても、この領域のフラグビットが、ＴＣＡＭ領域に対応して配置されるマッピングフラグ格納エントリに対しては転送されないため、何ら問題は生じない。
【０２９５】
図には示していないが、初期化時においては、マルチプレクサ１５０および１５２は、それぞれフラグビットＦＡ＜５：０＞およびＦＢ＜５：０＞を選択する状態に設定される。これにより、マッピングフラグメモリ領域において、記憶ノードＳＮＡおよびＳＮＢにデータ“１”および“０”を書込むことができる。
【０２９６】
このマッピングフラグメモリ領域に対応して配置されるデータパスブロックＤＰＨ０の接続経路は、演算子アレイ構成としてサブブロックＳＢ１−ＳＢｎ全てがＴＣＡＭ領域として利用される場合においても同様である。フラグビットＦＡ＜ｉ＞が“１”に設定され、選択エントリの演算子セルの記憶ノードＳＮＡに対して書込が行われるだけである。従って、このデータパスブロックＤＰＨ０の接続経路は、演算子アレイがＴＣＡＭ領域だけの場合、およびＴＣＡＭ領域およびＦＩＦＯ領域として利用される場合、いずれにおいても適用することができる。
【０２９７】
図４９は、データパス５０におけるデータパスブロックＤＰＨｊおよびＤＰＨ（ｊ＋１）の構成を概略的に示す図である。データパスブロックＤＰＨｊは、入力切換回路ＩＳＫｊａ−ＩＳＫｊｂを含み、データパスブロックＤＰＨ（ｊ＋１）は、入力切換回路ＩＳＫ（ｊ＋１）ｃ、…を含む。入力切換回路ＩＳＫｊａ−ＩＳＫｊｂに対応して、データパターン格納領域ＤＰＳＧにおいては記憶単位ＳＵＴａ−ＳＵＴｂが設けられ、入力切換回路ＩＳＫ（ｊ＋１）ｃに対応して記憶単位ＳＵＴｃが設けられる。
【０２９８】
データパスブロックＤＰＨｊ及びＤＰＨ（ｊ＋１）における入力切換回路ＩＳＫｊａ−ＩＳＫｊｂ、ＩＳＫ（ｊ＋１）ｃ…の構成は、図２４に示すデータパスの構成と同じであり、データアンプ１００ｌおよび１００ｒ、マルチプレクサ１０２ａ−１０２ｂ、選択マスク回路５２ａおよび５２ｂ、およびインバータ５３を含む。
【０２９９】
データパスブロックＤＰＨｊにおいては、マルチプレクサ１０２ｂおよび１０２ｄに対し共通に、ローカル選択信号ＬＳＥＬＢｊ＜１：０＞が与えられ、データパスブロックＤＰＨ（ｊ＋１）のマルチプレクサ１０２ｂおよび１０２ｄに対してはローカル選択信号ＬＳＥＬＢ（ｊ＋１）＜１：０＞が与えられる。
【０３００】
選択信号ＳＥＬＡ＜１：０＞が、データパス５０内のマルチプレクサ１０２ａおよび１０２ｃに対しすべて共通に与えられる。
【０３０１】
データパターン格納領域ＤＰＳＧにおいては、記憶単位ＳＵＴａに対しグローバル読出データ線ＧＲＤｌａ，ＧＲＤｒａ、グローバル書込データ線ＧＷＤＡａ，ＺＧＷＤＡａ，ＺＧＷＤＢａおよびＧＷＤＢａが設けられる。記憶単位ＳＵＴｂに対しては、グローバル読出データ線ＧＲＤｌｂ，ＧＲＤｒｂ、グローバル書込データ線ＧＷＤＡｂ，ＺＧＷＤＢｂ，ＺＧＷＤＡｂ，およびＧＷＤＢｂが設けられる。記憶単位ＳＵＴｃに対しては、グローバル読出データ線ＧＲＤｌｃ，ＧＲＤｒｃ、グローバル書込データ線ＧＷＤＡｃ，ＺＧＷＤＢｃ，ＺＧＷＤＡｃ，およびＧＷＤＢｃが設けられる。
【０３０２】
この図４８に示すデータパス５０の構成においては、データパスブロックＤＰＨｊおよびＤＰＨ（ｊ＋１）それぞれにおいて、マルチプレクサ１０２ｂおよび１０２ｄの選択経路が個々に、ローカル選択信号ＬＳＥＬＢｊ＜１：０＞およびローカル選択信号ＬＳＥＬＢ（ｊ＋１）＜１：０＞に従って設定される。
【０３０３】
図５０は、図４９に示すデータパスブロックＤＰＨｊおよびＤＰＨ（ｊ＋１）におけるデータ書込時のデータ伝達経路を概略的に示す図である。この図５０に示す伝達経路においては、データパスブロックＤＰＨｊへの被検索データパターンの書込は行なわれず、データパスブロックＤＰＨ（ｊ＋１）に対し被検索データパターンの書込が行なわれる。
【０３０４】
この場合、ローカル選択信号ＬＳＥＬＢｊ＜１：０＞により、データパスブロックＤＰＨｊのマルチプレクサ１０２ｂおよび１０２ｄを、対応のデータアンプ１００ｌおよび１００ｒの出力信号ををそれぞれ選択する状態に設定する。一方、ローカル選択信号ＬＳＥＬＢ（ｊ＋１）＜１：０＞は、データパスブロックＤＰＨ（ｊ＋１）のマルチプレクサ１０２ｂおよび１０２ｄが、それぞれ、外部からの書込データビットＢ＜ｃ＞を受ける選択マスク回路５２ａおよび５２ｂの出力信号を選択する状態に設定される。選択マスク回路５２ａおよび５２ｂは、マスク指示信号ＭＳＫ＜ｃ＞に従って、データビット／Ｂ＜ｃ＞およびＢ＜ｃ＞を選択して伝達する。
【０３０５】
この経路設定状態において、選択エントリにおいて読出ワード線ＲＷＬＡおよびＲＷＬＢを選択状態へ駆動した後、ポートＢ書込ワード線ＷＷＬＢを選択状態へ駆動する。したがって、データパスブロックＤＰＨｊに対して設けられる記憶単位ＳＵＴａおよびＳＵＴｂは、その記憶ノードＳＮＢＬおよびＳＮＢＲの記憶データが、それぞれ対応の記憶ノードＳＮＢＬおよびＳＮＢＲに再書込されるだけである。すなわち、記憶ノードＳＮＡ（ＳＮＡＬ、ＳＮＡＲ）には、初期状態においてデータ“１”が書込まれている。したがって、記憶単位ＳＵＴａ−ＳＵＴｂにおいては、記憶データの再書込が行なわれ、記憶データの破壊は生じない。
【０３０６】
一方、データパスブロックＤＰＨ（ｊ＋１）においては、対応のマルチプレクサ１０２ｂおよび１０２ｄにより、選択マスク回路５２ａおよび５２ｂからのデータビットＢ＜ｃ＞の反転ビット／Ｂ＜ｃ＞および書込ビットＢ＜ｃ＞が選択され、それぞれ記憶単位ＳＵＴｃの記憶ノードＳＮＢＬおよびＳＮＢＲへ格納される。このとき、記憶単位ＳＵＴｃから、データアンプ１００ｌおよび１００ｒを介して記憶データの内部読出が行なわれるものの、その内部読出データは、ポートＡ書込ワード線ＷＷＬＡは非選択状態であり、何ら影響は及ぼさない。
【０３０７】
これにより、先に図３８から図４４を参照して説明したように、既登録データパターンの書換えを生じることなく、パターン長の異なるデータパターンを順次空き領域に、格納することができる。
【０３０８】
検索動作時のデータ伝達経路は示していないが、図２６に示すように、実施の形態２と同様に設定する。すなわち、データパスブロックＤＰＨ１−ＤＰＨ５全てにおいてマルチプレクサ１０２ａおよび１０２ｃが、対応のデータアンプ１００ｌおよび１００ｒの出力信号を選択する状態に設定される。一方、マルチプレクサ１０２ｂおよび１０２ｄが、外部からの検索データＡ＜ｊ＞およびインバータ５３からの反転検索データ／Ａ＜ｊ＞を選択する状態に設定される。これにより、与えられた検索データをマルチプレクサ１０２ｂおよび１０２ｄを介してＦＩＦＯ領域に転送して格納して待ち行列化して、ＴＣＡＭ領域に待ち行列化された検索データをマルチプレクサ１０２ａおよび１０２ｃを介して転送して、順次検索動作を実行することができる。
【０３０９】
なお、サブブロックＳＢ１−ＳＢｎが全てＴＣＡＭ領域として利用される場合には、実施の形態１と同様、データパスブロックＤＰＨ１−ＤＰＨ５全てにおいて検索データＡおよび／Ａを選択する状態に設定される。従って、アレイ構成に応じて選択信号の論理が決定されてマルチプレクサ１０２ｂおよび１０２ｄの接続経路が設定されればよい。
【０３１０】
また、ローカル選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞の設定をサブブロック毎に行って再書込みをサブブロック単位で実行することにより、サブブロック単位で異なるパターン長のデータを格納して、１エントリに複数のデータパターンを格納することができる。これにより、実施の形態１および２において、被検索データパターン登録時において、サブブロック単位でパターン長が異なる場合においても、先に登録された被検索データパターンの上書きを生じることなく、１エントリに複数のデータパターンをマッピングすることができる。また、いかに詳細に説明するように、データパターン格納領域ＤＰＳＧにおいて空き領域をドントケア状態に維持することができる。
【０３１１】
また、データパスブロックにおいてマスク指示信号ＭＳＫ＜ｊ＞を利用することによりビット単位で被検索データパターン長を設定することができる。
【０３１２】
図５１は、この発明の実施の形態３に従う半導体信号処理装置に対して供給される被検索データパターンの構造を概略的に示す図である。図５１において、入力された書込データパケットは、ヘッダＨＥＤと、データ領域ＤＰＱとを含む。ヘッダＨＥＤには、データ領域ＤＰＱに格納されるデータのパターン長を指定するパターン長指示データＰＤが格納される。データ領域ＤＰＱに、書込データパターンが格納される。このデータ領域ＤＰＱは、演算子セルアレイの領域ＲＧ１−ＲＧ５それぞれに対応して領域に配置され、パターン長に応じた各対応の領域に、書込データパターンが格納される。ヘッダＨＥＤに格納されるパターン長指示信号ＰＤをデコードして、書込領域を特定して、書込データ転送経路を設定する。
【０３１３】
図５２は、この図５１に示す書込データの構成の一具体例を示す図である。図５２において、ヘッダＨＥＤには、パターン長Ｌ／４を示すパターン長指示データＰＤ（Ｌ／４）が格納される。データ領域ＤＰＱにおいては、データ格納領域ＲＧ２に対応する領域に、パターン長Ｌ／４の有効データが格納される。残りの領域ＲＧ１、およびＲＧ３−ＲＧ５の格納データは任意（Ｘ）である。
【０３１４】
この図５１および図５２に示すように、ヘッダＨＥＤに含まれるパターン長指示データＰＤを抽出するとともに、データ領域ＤＰＱにおいて、データ格納領域ＲＧ１−ＲＧ５に対応する領域に書込データを配置することにより、以下に説明するように、書込データを演算子アレイのエントリのパターン長に応じたデータ格納領域に正確に書込むことができる。この有効データ領域内において各データビット毎に有効／無効ビット指示を連結するように生成することにより、各ビット毎にマスク指示信号ＭＳＫ＜ｊ＞を生成することができる。
【０３１５】
図５３は、この発明の実施の形態３に従う半導体信号処理装置における書込アドレス発生回路１６０の構成の一例を概略的に示す図である。図５３において、書込アドレス発生回路１６０は、パターン長指示データＰＤをデコードするパターン長デコーダ１７０と、このパターン長デコーダ１７０のデコード信号に従って選択的にカウント動作を行なうアドレスカウンタ１７１−１７５と、パターン長デコーダ１７０からの多ビット選択信号ＰＳＥＬに従ってアドレスカウンタ１７１−１７５の出力アドレス信号の１つを選択し書込アドレスＷＡＤおよびブロックアドレス信号を生成する選択回路（ＭＵＸ）１７６と、アドレスカウンタ１７５の最下位ビットＬＳＢＢをパターン長デコーダ１７０からの指示信号ＥＮ（Ｌ／１６）に従って選択的に通過させ、領域指定信号ＲＧＳ４／５を生成するバッファ１７７を含む。
【０３１６】
パターン長デコーダ１７０は、ヘッダＨＥＤに含まれるパターン長指示データＰＤをデコードし、そのデコード結果に従ってパターン長イネーブル信号ＥＮ（Ｌ）、ＥＮ（Ｌ／２）、ＥＮ（Ｌ／４）、ＥＮ（Ｌ／８）、およびＥＮ（Ｌ／１６）のいずれかを選択的にアサートする。パターン長イネーブル信号ＥＮ（Ｌ）は、パターン長指示データＰＤが、パターン長Ｌを指定するときにアサートされる。パターン長イネーブル信号ＥＮ（Ｌ／２）は、パターン長指示データＰＤがパターン長Ｌ／２を指示するときにアサートされる。パターン長イネーブル信号ＥＮ（Ｌ／４）は、パターン長指示データＰＤがパターン長Ｌ／４を指定するときにアサートされる。パターン長イネーブル信号ＥＮ（Ｌ／８）およびＥＮ（Ｌ／１６）は、このパターン長指示データＰＤが、パターン長Ｌ／８およびＬ／１６を指定するときにそれぞれアサートされる。
【０３１７】
Ｌアドレスカウンタ１７１は、パターン長イネーブル信号ＥＮ（Ｌ）のアサートに従ってカウント値を更新し、そのカウント値をパターン長Ｌのデータの書込アドレスを指定するアドレス信号として出力する。（Ｌ／２）アドレスカウンタ１７２は、パターン長イネーブル信号ＥＮ（Ｌ／２）のアサートに従ってカウント値を更新し、パターン長Ｌ／２の書込データの書込アドレスを生成する。
【０３１８】
（Ｌ／４）アドレスカウンタ１７３は、パターン長イネーブル信号ＥＮ（Ｌ／４）のアサートに従ってカウント動作を行ない、そのカウント値をパターン長Ｌ／４の書込データの書込アドレスとして出力する。（Ｌ／８）アドレスカウンタ１７４は、パターン長イネーブル信号ＥＮ（Ｌ／８）のアサートに従ってカウント動作を行ない、そのカウント値によりパターン長Ｌ／８のデータの書込アドレスを生成する。（Ｌ／１６）アドレスカウンタ１７５は、パターン長イネーブル信号ＥＮ（Ｌ／１６）のアサートに従ってカウント動作を行ない、パターン長Ｌ／１６のデータパターンの書込領域を最下位アドレスビットＬＳＢＢにより指定するとともに、残りの上位ビットにより、パターン長Ｌ／１６のデータパターンの書込アドレス（エントリアドレス）を生成する。
【０３１９】
選択回路１７６は、このパターン長デコーダ１７０からのパターン選択信号ＰＳＥＬに従って、アサートされたパターン長イネーブル信号に対応するアドレスカウンタ１７１−１７５の出力信号を選択し、パターン長書込アドレスＷＡＤおよび書込ブロックアドレスを生成する。
【０３２０】
バッファ１７７は、パターン長デコーダ１７０からのパターン長イネーブル信号ＥＮ（Ｌ／１６）のアサート時、（Ｌ／１６）アドレスカウンタ１７５の最下位ビットＬＳＢＢをバッファ処理し、領域指定信号ＲＧＳ４／５を生成する。この領域指定信号ＲＧＳ４／５により、書込領域が領域ＲＧ４であるのか領域ＲＧ５であるのかが指定される。従って、（Ｌ／１６）アドレスカウンタ１７５は、そのカウント値が、書込エントリおよび書込データ格納領域を共に指定するため、アドレスカウンタ１７１−１７４に比べて、そのカウント値が１ビット多くされ、最下位ビットＬＳＢＢが、領域ＲＧ４およびＲＧ５のいずれかを指定する領域指定ビットとして用いられる。これにより、データパターン長Ｌ／１６の書込データを、同一エントリの領域ＲＧ４およびＲＧ５にそれぞれ格納することができる。
【０３２１】
なお、領域指定信号ＲＧＳ４／５は、領域ＲＧ４を指定する領域指定信号ＲＧＳ４および領域ＲＧ５を指定する領域指定信号ＲＧＳ５とに分離されて生成されてもよい。
【０３２２】
（Ｌ／１６）アドレスカウンタ１７５の最下位ビットＬＳＢＢを領域指定に用いるため、入力データパケットのデータ領域ＤＰＱにおける領域ＲＧ４およびＲＧ５に対応する領域に対しては、交互にパターン長Ｌ／１６のデータパターンが配置される。データ領域ＤＰＱにおいて領域ＲＧ４およびＲＧ５に対応する領域に交互にパターン長Ｌ／１６のデータパターンを配置するのは、装置外部で単にコンパイラ等を用いてデータパタン長に応じて位置を変更するようにされてもよい。また、これに代えて、図示しないバレルシフタなどのデータデータ列変換回路を用いて、パターン長指示データＰＤをデコードして、パターン長がＬ／１６の時に、領域ＲＧ４およびＲＧ５に相当する領域に交互にデータパターンが格納されてもよい。
【０３２３】
図５４は、入力切換回路ＩＳＫｊおよびＩＳＫｊｘのＢポートに対するマルチプレクサの入力とローカル選択信号との対応を概略的に示す図である。図５４において、入力切換回路ＩＳＫｊはマッピングフラグビットＦＢ＜ｊ＞に対応して設けられ、そのマルチプレクサ１５４は、ローカル選択信号ＬＳＥＬＢｊに従って入力Ｉ１に与えられるデータアンプ１５０の出力信号と入力Ｉ２に与えられるマッピングフラグビットＦＢ＜ｊ＞の一方を選択して、対応のグローバル書込データ線ＦＧＷＢに伝達する。ｊは１から５のいずれかである。ローカル選択信号ＬＳＥＬＢｊは、２ビットローカル選択信号ＬＳＥＬＢｊ＜１：０＞の下位ビットＬＳＥＬＢｊ＜０＞から生成される。最上位フラグビットに対して設けられるマルチプレクサ１５０は、後に説明する選択信号ＬＳＢＬ０に従ってその経路が設定される。この選択信号ＬＳＢＬ０は、領域指定信号ＲＧ１−ＲＧ５が全て選択状態のときに選択状態とされる。
【０３２４】
被検索データビットに対して設けられる入力切換回路ＩＳＫｊｘにおいて、マルチプレクサ１０２ｂは、２ビットローカル選択信号ＬＳＥＬＢｊ＜１：０＞に従って入力Ｉ３に与えられる対応のデータアンプ１００ｌの出力信号、入力Ｉ４に与えられる検索データビットＡ、および入力Ｉ５に与えられる反転書込データビット（被検索データビット）／Ｂの１つを選択して対応のグローバル書込データ線ＺＧＷＤＢ上に伝達する。
【０３２５】
マルチプレクサ１０２ｄは、同様、ローカル選択信号ＬＳＥＬＢｊ＜１：０＞に従って入力Ｉ６に与えられる対応のデータアンプ１００ｒの出力信号、入力Ｉ７に与えられる検索データビット／Ａおよび入力Ｉ８に与えられる書込データビットＢの１つを選択してグローバル書込データ線ＧＷＤＢ上に伝達する。
【０３２６】
図５４に示すように、この実施の形態３における半導体信号処理装置においては、演算子セルアレイは、実施の形態２において説明したＴＣＡＭ領域およびＦＩＦＯ領域を含む構成に対応する。しかしながら、ＦＩＦＯ領域は特に用いられなくてもよい。サブブロックＳＢ１−ＳＢｎが全てＴＣＡＭ領域として用いられてもよい。但し、センスアンプ回路に対してグローバル読出データ線および経路切換え用スイッチングトランジスタは設けられる。
【０３２７】
以上の動作をまとめると、以下のようになる。マッピンフラグメモリ領域において、検索モード時においては、読出ワード線ＲＷＬＡおよびＲＷＬＢをともに選択状態に駆動して記憶データをグローバル読出線に読出す。このときマルチプレクサ（１５２）によりデータ“１“が選択されて、グローバル書込データ線ＧＷＤＡに伝達される。その後、検索動作、すなわち、選択エントリの記憶ノードＳＮＡへのグローバル書込データ線ＦＧＷＡおよびＧＷＤＡ上のデータの書込および演算子セルの記憶データの読出が実行される。これにより、検索が行われるエントリにおいて、マッピングフラグビットが再書込みされるだけである。
【０３２８】
データパターン格納領域においては、検索時、グローバル書込データ線ＧＷＤＡにマルチプレクサ（１０２ａおよび１０２ｃ）により検索データが転送される。この後、ＴＣＡＭ領域における記憶ノードＳＮＡに対する検索データの書込、演算子セルの記憶データの読出し、センスアンプ回路の出力信号の対応のローカルマッチ線への転送が実行される。検索データは外部からの検索データまたはＦＩＦＯ領域において待ち行列化された検索データである。
【０３２９】
データ書込時においては、グローバル書込データ線ＧＷＤＢに書込みデータが転送されて選択エントリの記憶ノードＳＮＢへの書込データの書込が行われる。この書込データは、選択エントリから読出された記憶データまたは外部からの書込データである。
【０３３０】
図５５は、図５４に示す入力切換回路のマルチプレクサにおけるローカル選択信号の論理とそのときの選択入力との対応を一覧にして示す図である。検索モード時においては、ローカル選択信号ＬＳＥＬＢｊ＜１：０＞は、（０，０）に設定される。ｊは、１から５の整数である。この場合、マルチプレクサ１５４は、入力Ｉ１に与えられデータアンプ１５０の出力信号を選択し、マルチプレクサ１０２ｂは、入力Ｉ４へ与えられる検索データＡを選択し、マルチプレクサ１０２ｄは、入力Ｉ７へ与えられた補の検索データ／Ａを選択する。この検索モード時、データアンプ１５０からの内部読出ビットが、外部へ読出されてもよい。このときには、マルチプレクサ（１０２ａ、１０２ｂ）が、データアンプ１００ｌ、１００ｒの出力信号を選択して図示しないグローバル書込データ線ＧＷＤＡおよびＺＧＷＤＡへ検索データを転送する。
【０３３１】
外部データの書込時において、選択データパスブロックの場合、ローカル選択信号ＬＳＥＬＢｊ（１，０）は（０，１）に設定される。この場合、マルチプレクサ１５４は、入力Ｉ２を選択し、外部からのマッピングフラグビットＦＢ＜ｊ＞を選択する。マルチプレクサ１０２ｂおよび１０２ｄは、それぞれ入力Ｉ５およびＩ８を選択し、外部からの書込データビット／ＢおよびＢをそれぞれ選択する。
【０３３２】
この外部書込モード時において非選択データパスブロックに対しては、ローカル選択信号ＬＳＥＬＢｊ＜１：０＞は、（１，０）に設定される。この場合、マルチプレクサ１５４は、入力Ｉ１に与えられるデータアンプ１５０からの内部読出データを選択する。マルチプレクサ１０２ｂおよび１０２ｄは、それぞれ、対応のデータアンプ１００ｌおよび１００ｒからの内部読出データを選択する。
【０３３３】
ローカル選択信号ＬＳＬＢｊ＜１：０＞の（１，１）の状態は、未使用状態である。他のモード拡張に対応するために保存される。
【０３３４】
この図５４に一覧して示すように、検索モード時においては、マルチプレクサ１０２ｂおよび１０２ｄが、外部からの検索データビットＡおよび／Ａを選択し、これによりＦＩＦＯ領域に対する検索データビットのバッファ書込が実現される。このとき、マッピングフラグビットに対する入力切換回路ＩＳＫｊにおいては、内部で読出されたフラグビットが読出されてグローバル書込データ線ＺＧＷＢに伝達される。従って、検索動作時においては、フラグビットが読出されて再書込されるだけである（検索動作と並行して）。
【０３３５】
選択信号ＳＥＬＡ＜１：０＞については示していないが、以下の論理を満たす。検索動作時においては、マッピングフラグメモリ領域に対するマルチプレクサ１５２は、データアンプ１５０の出力信号を選択してグローバル書込データ線ＦＧＷＡに伝達する。データパターン格納領域においては、マルチプレクサ１０２ａおよび１０２ｂは、データアンプ１００ｌおよび１００ｒの出力信号を選択して対応のグローバル書込データ線ＧＷＤＡに伝達する。
【０３３６】
データ書込時（被検索データパターンの登録時）においては、これらのマルチプレクサ１５２，１０２ａおよび１０２ｃの接続経路は任意である。データ書込時においては、ポートＡ書込ワード線ＷＷＬＡは非選択状態に維持されるためである。
【０３３７】
なお、上述の論理は、サブブロックがＴＣＡＭ領域およびＦＩＦＯ領域として利用される場合である。全サブブロックがＴＣＡＭ領域として利用される場合には、検索動作時、マルチプレクサ１０２ａおよび１０２ｃは、外部からの検索データＡおよび／Ａを選択する。マルチプレクサ１５２は、データアンプ１５０の出力信号を選択する。
【０３３８】
演算子アレイの構成に応じて選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞の論理が適宜設定されればよい。
【０３３９】
なお、上述の構成に代えて、書込ワード線に対して階層ワード線構造を用いて、マッピングフラグメモリ領域とデータパターン格納領域とに対して、別々にローカル書込ワード線を配置しても良い。検索動作時においては、マッピングフラグ領域に対して設けられる書込ワード線ＷＷＬＡおよびＷＷＬＢを常時非選択状態に設定し、データパターン格納領域において書込ワード線ＷＷＬＡを、カウンタアドレス信号に従って選択状態に駆動する。この場合には、サブブロックＳＢ１−ＳＢｎがＴＣＡＭ領域とＦＩＦＯ領域とに分割される構造であっても、検索動作時においてマッピングフラグの書換えは生じず、安定にマッピングフラグを維持することができる。
【０３４０】
図５６は、ローカル選択信号を発生する部分の構成の一例を概略的に示す図である。図５６において、ローカル選択信号発生部は、パターン長選択信号ＰＳＥＬ（パターン長イネーブル信号ＥＮ（Ｌ）−ＥＮ（Ｌ／１６）と領域指定信号ＲＧＳ４／５とをデコードし、領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５を生成する領域デコード回路１８０と、これらの領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５とメイン選択信号ＳＥＬＢ＜１：０＞とに従ってローカル選択信号ＬＳＥＬＢ１＜１：０＞−ＬＳＥＬＢ５＜１：０＞およびＬＳＥＬＢ０を生成するローカル選択信号発生回路１８５を含む。
【０３４１】
領域デコード回路１８０は、パターン長選択信号ＰＳＥＬが指定するデータパターン長に従って活性化すべき領域を指定する領域活性化信号ＲＧＥＮ１−ＲＧＥＮ３およびＲＧＥＮ４およびＲＧＥＮ５を活性化する。データパターン長がＬのときには、領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５がすべてアサートされる。パターン長がＬ／２の場合には、領域活性化信号ＲＧＥＮ１がアサートされ、データパスブロックＤＰＨ１が指定する。パターン長がＬ／４の場合には、領域活性化信号ＲＧＥＮ２がアサートされ、データパスブロックＤＰＨ２が指定される。データパターン長がＬ／８の場合には、領域活性化信号ＲＧＥＮ３が指定され、データパスブロックＤＰＨ３に対応する領域に対する外部からのデータ書込が行なわれる。パターン長がＬ／１６の場合には、領域指定信号ＲＧＳ４／５のビット値に従って領域活性化信号ＲＧＥＮ４およびＲＧＥＮ５のいずれかがアサートされる。これにより、データパスブロックＤＰＨ４およびＤＰＨ５の一方がアサートされ、パターン長Ｌ／１６のデータパターンの書込領域が特定される。
【０３４２】
ローカル選択信号発生回路１８５は、領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５に従って、選択データパスブロックおよび非選択データパスブロックに対応して、ローカル選択信号を生成する。ローカル選択信号ＬＳＥＬＢ０は、領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５がすべてアサートされたときにアサートされる。
【０３４３】
図５７は、図５６に示すローカル選択信号発生回路１８５の具体的構成の一例を概略的に示す図である。図５７において、メイン選択信号のビットＳＥＬＢ＜１＞およびＳＥＬＢ＜０＞がそれぞれインバータ１９０ａおよび１９０ｂによって反転され、相補データビット対が生成される。ローカル選択信号ＬＳＥＬＢ１＜１：０＞−ＬＳＥＬＢ５＜１：０＞それぞれに対応してセレクタ１９２ａ−１９２ｅが設けられる。セレクタ１９２ａは、選択ビットＳＥＬＢ＜１＞およびＳＥＬＢ＜０＞とメイン選択信号ビット／ＳＥＬＢ＜１＞および／ＳＥＬＢ＜０＞を受け、領域活性化信号ＲＧＥＮ１に従って、相補ビット対の組の各々から一方の組のビットを選択し、２ビットローカル選択信号ＬＳＥＬＢ１＜１：０＞を生成する。
【０３４４】
残りのセレクタ１９２ｂ−１９２ｅ各々においても、領域活性化信号ＲＧＥＮ２−ＲＧＥＮ５に従って相補ビットＳＥＬＢ＜１＞および／ＳＥＬＢ＜１＞の組と相補ビットＳＥＬＢ＜０＞および／ＳＥＬＢ＜０＞各々から１ビットの信号を選択して、ローカル選択信号ＬＳＥＬＢ２＜１：０＞−ＬＳＥＬＢ５＜１：０＞をそれぞれ生成する。
【０３４５】
この図５７に示す構成において、図５４に示す論理テーブルから明らかなように、セレクタ１９２ａ−１９２ｅは、対応の領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５がアサートされる場合には、選択ビットＳＥＬＢ＜１＞およびＳＥＬＢ＜０＞を選択して対応のローカル選択信号を生成する。一方、対応の領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５が非選択状態を示すときには、インバータ１９０ａおよび１９０ｂからの補の選択ビット／ＳＥＬＢ＜１＞および／ＳＥＬＢ＜０＞を選択して対応のローカル選択信号ＬＳＥＬＢ１＜１：０＞−ＬＳＥＬＢ５＜１：０＞を生成する。
【０３４６】
領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５を受けるゲート回路１９４により、マッピングフラグメモリ領域のマッピングフラグビットの最上位ビットに対する選択信号ＬＳＥＬＢ０が生成される。このゲート回路１９４は、領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５がすべてアサートされている場合に、対応の領域選択信号ＬＳＥＬＢ０を“１”にアサートする。
【０３４７】
図５８は、この発明の実施の形態３に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。この図５８に示す制御回路の構成は、以下の点で、図２２に示す制御回路８０とその構成が異なる。すなわち、アドレスカウンタ８７および外部アドレス信号ＥＸＡＤとアドレス発生回路１６０からのアドレスのいずれかをモード指示信号ＭＯＤＩに従って選択するマルチプレクサ２００が設けられる。アドレス発生回路１６０は、書込モード指示信号ＭＯＤＷのアサート時、アサートされ、図５２に示すようにパターン長指示データＰＤに従って被検索データ書込アドレスを生成する。このときには、マルチプレクサ２００が、アドレス発生回路１６０の出力信号を選択する。一方、検索モード時においては、マルチプレクサ２００はアドレスカウンタ８７の生成するアドレスカウント値を選択し、被検索データパターンの追加登録時には、外部アドレスＥＸＡＤを選択する。
【０３４８】
アドレス発生回路１６０からの内部アドレス信号が、書込ワード線アドレス信号ＷＡＤおよび書込ブロックアドレス信号ＢＡＤを含み、ブロックデコーダ８９によりブロック選択信号ＢＳが生成される。
【０３４９】
ブロック属性設定回路１３０は、図３１に示す構成と同様、メモリサブブロックそれぞれに対してモード指示信号ＭＯＤＴＣ＜ｎ：１＞、ＭＯＤＭＣ＜ｎ：１＞、ＭＯＤＦＴ＜ｎ：１＞を固定的に生成する。属性修飾回路２０３は、ブロック選択信号ＢＳと書込モード指示ＭＯＤＷとに従ってブロックＴＣＡＭモード指示信号ＳＭＯＤＴＣ＜ｎ：１＞およびブロックメモリモード指示信号ＳＭＯＤＭＣ＜ｎ：１＞を生成する。
【０３５０】
属性修飾回路２０２は、ブロック属性設定回路１３０からのモード指示信号ＭＯＤＴＣ＜ｎ：１＞およびＭＯＤＭＣ＜ｎ：１＞を、ブロック選択信号ＢＳおよび書込モード指示信号ＭＯＤＷとに従って修飾して、ブロックＴＣＡＭモード指示信号ＳＭＯＤＴＣ＜ｎ：１＞およびブロックメモリモード指示信号ＳＭＯＤＭＣ＜ｎ：１＞を生成する。
【０３５１】
フラグビット生成回路２０４は、領域デコーダ１８０からの領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５に従って、フラグビットＦＢ＜５：０＞を生成する。領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５が全て活性状態のときには、最上位フラグビットＦＢ＜０＞がセットされる。それ以外の時には、領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５が指定する領域に対応するフラグビットＦＢ＜１＞−ＦＢ＜５＞がセットされる。これにより、有効データの書込が行われた領域に対するフラグビットが“１”にセットされる。
【０３５２】
ブロック経路設定回路１３２の生成する選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞に従って、選択信号ＳＥＬＢ＜１：０＞から、図５６に示す領域デコード回路１８０およびローカル選択信号発生回路１８５により、ローカル選択信号ＬＳＥＬＢ１＜１：０＞−ＬＳＥＬＢ５＜１：０＞およびＬＳＥＬＢ０が生成される。
【０３５３】
この図５７に示す制御回路８０の他の構成は、図２２に示す制御回路の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０３５４】
ＴＣＡＭ領域およびＦＩＦＯ領域にサブブロックＳＢ１−ＳＢｎを分割することが可能である。従って、図５８においては示していないが、制御回路８０内において、図３１に示す構成と同様、リードポインタ１１０、ライトポインタ１１２およびポインタ制御論理１１４が配置され、検索動作時にＦＩＦＯ領域に対する読出および書込アドレスが生成される。
【０３５５】
なお、マッピングフラグメモリ領域ＭＦＬＧとデータパターン格納領域ＤＰＳＧに対して別々にローカル書込ワード線ＷＷＬＡおよびＷＷＬＢが配置され、これらの領域に共通にメイン書込ワード線ＭＷＬＬＡおよびＭＷＷＬＢが配置される階層ワード線が利用される構成が用いられてもよい。
【０３５６】
また、この発明の実施の形態３に従う演算子セルアレイの構成は、実施の形態１および２の構成に対しても適用することができる。これらの実施の形態１および２においては、サブブロック単位でパターン長が設定される。従って、これまで説明した実施の形態３に従う構成をそのまま適用することより、サブブロックにおいて、パターン長がエントリのビット幅よりも短いデータパターンを書込むときに、すでに書込まれた領域のデータが書き換えられるのを防止することができ、また、空き領域をドントケア状態に維持することができる。
【０３５７】
この場合には、書込アドレス信号としてブロック選択信号とワード線アドレスを生成することにより、ブロック単位でパターン長の異なるデータパターンを書込むことができる。
【０３５８】
なお、データ書込時において、データ書込が行なわれる領域に対して、センスアンプ回路および／またはデータアンプの動作を停止するように構成してもよい。領域活性化信号ＲＧＥＮ１−ＲＧＥＮ５とセンスアンプ活性化信号またはデータアンプ活性化信号とを組合せて各領域単位でセンスアンプ回路またはデータアンプの動作を制御するように構成すればよい。
【０３５９】
以上のように、この発明の実施の形態３に従えば、エントリ単位で格納データパターン長を変更可能に設定し、１エントリに複数の被検索データパターンを格納している。これにより、サブブロックにおける空き領域を低減することができ、より効率的かつ高密度に被検索データパターンをマッピングすることができる。
【０３６０】
なお、データパターン長の種類としては、最小パターン長が、検索単位のビット幅以上であれば、その数は任意である。
【０３６１】
なお、実施の形態３においても、一致検出時、対応のエントリのアドレスを検出することにより、一致データパターンの候補を抽出することができる。
【０３６２】
［実施の形態４］
図５９は、この発明の実施の形態４に従う半導体信号処理装置の要部の構成を概略的に示す図である。この図５９においては、図３６に示すローカル一致判定回路ＬＭＤｉに対し、一致パターン長判定回路２１０が設けられる。この一致パターン長判定回路２１０は、ＯＲゲート１４０ａ−１４０ｆの出力信号をそれぞれ反転するインバータ２１２ａ−２１２ｆと、インバータ２１２ａ−２１２ｆそれぞれの出力信号を格納するレジスタ回路２１４とを含む。レジスタ回路２１４は、インバータ２１２ａ−２１２ｆそれぞれに対して設けられるレジスタ２１４ａ−２１４ｆを含む。
【０３６３】
図５９に示すローカル一致判定回路の構成は、図３６に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０３６４】
先に、実施の形態３において説明したように、ローカル一致判定回路ＬＭＤｉにおいて、ＯＲゲート１４０ａ−１４０ｆの出力信号は、それぞれ、パターン長が異なる被検索データパターンについての一致／不一致判定結果を示している。したがって、このレジスタ回路２１４において各ＯＲゲート１４０ａ−１４０ｆの出力信号の反転信号を格納することにより、レジスタ２１４ｆの、格納値が“１”のときに、対応のパターン長の被検索データについて一致が検出されたことが示される。
【０３６５】
これにより、１つのエントリに複数のパターン長の被検索データパターンが格納される場合において、ローカル一致判定信号ＬＭＣＨ＜ｉ＞がＬレベルとなり、一致を示しているときに、レジスタ回路２１４のレジスタ２１４ａ−２１４ｆの格納値を見ることにより、一致したデータパターンのパターン長を識別することができる。
【０３６６】
図６０は、一致パターンのパターン長を最終的に検出する部分の構成を概略的に示す図である。図６０において、各サブブロックに対応して、一致パターン長判定回路が配置されるが、図６０においては、レジスタ回路ＲＥＧＫ１−ＲＥＧＫｎを代表的に示す。これらのレジスタ回路ＲＥＧＫ１−ＲＥＧＫｎそれぞれに含まれるレジスタ２１４ａ−２１４ｆそれぞれに対応してパターン長一致検出線２２２ａ−２２２ｆが設けられる。このパターン長一致検出線２２２ａ−２２２ｆには、それぞれ、レジスタ回路ＲＥＧＫ１−ＲＥＧＫｎの対応のレジスタ２１４ａ−２１４ｆが、ワイヤードＯＲ接続される。
【０３６７】
パターン長一致検出線２２２ａ−２２２ｆに対して、初期化時に接地電圧レベルにプリチャージするプリチャージ回路２２０が一方側に設けられ、また、パターン長一致検出線２２２ａ−２２２ｆの他方側に、パターン長検出アンプ２２４ａ−２２４ｆが設けられる。
【０３６８】
このパターン長検出アンプ２２４ａ−２２４ｆは、対応のパターン長一致検出線２２２ａー２２２ｆの電位を増幅して、最終一致パターン長指示フラグＦＰａ−ＦＰｆを出力する。
【０３６９】
この図６０に示す構成の場合、あるサブブロックにおいてパターン一致が検出された場合、レジスタ２１４ａ−２１４ｆの対応のレジスタの格納値がＨレベル（“Ｈ”）となり、対応のパターン長一致検出線の電位レベルが上昇する。パターン長検出アンプ２２４ａ−２２４ｆで、これらのパターン長一致検出線２２２ａ−２２２ｆの電位を増幅することにより、最終一致パターン長指示フラグＦＰａ−ＦＰｆのうちの対応のフラグがＨレベル（“Ｈ”）となり、一致したデータパターンのパターン長を外部へ報知することができる。
【０３７０】
なお、この最終一致パターン長指示フラグＦＰａ−ＦＰｆは、並列に外部へ出力されてもよく、また、図示しないシフトレジスタを用いて１ビットずつ順次シフトアウトされてもよい。
【０３７１】
また、図５９に示す構成において、パターン長一致検出線２２２ａ−２２２ｆそれぞれに代えて、ＯＲゲートが用いられてもよい。各ＯＲゲートにおいて対応のレジスタの格納値のＯＲ演算を行って、論理和信号により一致／不一致判定信号を生成する。このＯＲゲートを用いる場合にはパターン長検出アンプは、特に設ける必要はない。
【０３７２】
［変更例］
図６１は、この発明の実施の形態４の変更例の構成を概略的に示す図である。この図６１に示す構成においては、図３７に示すローカルマッチ線の構成に対し、一致パターン長判定回路２１０が設けられる。すなわち、マッチ線アンプＡＭＰ０−ＡＭＰ５の出力信号が、それぞれ、一致パターン長判定回路２１０のインバータ２１２ａ−２１２ｆへ与えられる。パターン長一致判定回路２１０の構成は、先の図５９に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０３７３】
この図６１に示す構成においても、マッチ線アンプＡＭＰ０−ＡＭＰ５は、各パターン長に対応して設けられており、一致時にその出力信号がＬレベルとなる。したがって、レジスタ回路ＲＥＧＫｉのレジスタ２１４ａ−２１４ｆの格納ビットの論理値を見ることにより、一致データパターンのパターン長を識別することができる。
【０３７４】
この図６１に示すローカルマッチ線の構成においても、最終的な一致パターン長指示フラグを生成する構成としては、図６０に示す構成を利用することができる。
【０３７５】
以上のように、この発明の実施の形態４に従えば、各パターン長毎に一致判定結果を示すデータを格納しており、１エントリに複数のデータパターンが格納される場合においても、データパターン一致時における一致したパターン長を容易に識別することができる。これにより、一致エントリのアドレスと組合わせることにより、一致データパターンを識別することができる。したがって、たとえば一致パターン長の対応のデータパターンを識別することにより、たとえば不正アクセスのウイルスの種類などを同定することができる。
【０３７６】
［実施の形態５］
図６２は、この発明の実施の形態５に従う半導体信号処理装置の記憶単位ＳＵＴの電気的等価回路を示す図である。図６２に示す記憶単位ＳＵＴは、以下の点で、図１に示す実施の形態１から４において用いられる記憶単位とその構成が異なる。すなわち、検索データＡおよび／Ａを伝達するポートＡ書込データ線ＷＤＡおよびＺＷＤＡが、ポートＢ書込データ線ＧＷＤＢおよびＺＧＷＤＢと直交するように配設される。すなわち、書込Ｂポートデータ線ＷＰＲＴＢＬおよびＷＰＲＴＢＲに結合されるグローバル書込データ線ＺＧＷＤＢおよびＧＷＤＢは、複数のサブブロックに共通に配設され、一方、書込Ａポートデータ線ＷＰＲＴＡＬおよびＷＰＲＴＡＲに結合されるポートＡ書込データ線ＷＤＡおよびＺＷＤＡは、各サブブロックにおいて演算子セルの行に対応してそれぞれ配置される。
【０３７７】
本実施の形態５においては、エントリの配置がこれまでの実施の形態１から４と異なり列方向に整列する演算子セルでエントリが構成される。１つのサブブロックにおいては、全ワード線およびビット線を選択状態として、全エントリに置いて並行して検索動作（２次元的検索）を実行する。
【０３７８】
記憶単位ＳＵＴは、演算子セルＵＯＥＬおよびＵＯＥＲを含む。これらの演算子セルＵＯＥＬおよびＵＯＥＲの構成は、図１に示す演算子セルＵＯＥＬおよびＵＯＥＲの構成と同じである。対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０３７９】
図６３は、図６２に示す記憶単位の平面レイアウトを概略的に示す図である。この図６３に示す記憶単位ＳＵＴの平面レイアウトは、以下の点で、図２に示す記憶単位の平面レイアウトと異なる。すなわち、検索データＡおよび／Ａを伝達する書込データ線を構成する導電線３００ａおよび３００ｂが、Ｘ方向に延在してかつ互いに離れて配置される。導電線３００ａは、分岐配線３０２ａにビア３０４ａを介して結合される。この分岐配線３０２ａは、コンタクト／ビア５ｄｌを介して、下層に形成されるＰ型活性領域１ｃｌに結合される。一方、導電線３００ｂは、分岐配線３０２ｂにビア３０４ｂを介して電気的に接続される。分岐配線３０２ｂは、ビア／コンタクト５ｄｒを介して下層のＰ型活性領域１ｃｒに電気的に接続される。
【０３８０】
これらのポートＡ書込データ線を構成する導電線３００ａおよび３００ｂは、ソース線ＳＬを構成する導電線３と同一配線層の配線である。分岐配線３０２ａおよび３０２ｂは、ともに、ビット線およびＢポートグローバル書込データを構成する導電線６ｂ，６ｃ，６ｅおよび６ｆと同一配線層の配線である。分岐配線３０２ａおよび３０２ｂを利用することにより、ポートＡ書込ワード線ＷＷＬＡを構成する導電線２ｄが設けられている場合においても、配線の衝突を生じさせることなく、ポートＡおよびポートＢ書込データ線を直交配置する構造を実現することができる。
【０３８１】
この図６３に示す記憶単位の他の平面レイアウトは、図２に示す記憶単位の平面レイアウトと同じであり、対応する構成要素については、同一参照番号を付し、その詳細説明は省略する。従って、図６３に示す記憶単位ＳＵＴの活性領域の３次元的配置は、図３に示す構造と同じとなる。従って、Ｐ型活性領域１ａｒ、１ａｌ、１ｃｒ、および１ｃｌにおいて，Ｎ型活性領域と隣接する領域は、低濃度のＰ−型不純物領域で構成され、コンタクトが形成される領域は、高濃度のＰ＋型不純物領域で構成される。
【０３８２】
図６４は、この発明の実施の形態５に従う半導体信号処理装置の全体の構成を概略的に示す図である。図６４において、演算子セルアレイは、これまでの実施の形態１から４と同様、複数のサブブロックＳＢ１−ＳＢｎに分割される。
【０３８３】
サブブロックＳＢ１−ＳＢｎに共通に、Ｂポート書込回路４００が設けられる。Ｂポート書込回路４００は、入力データ（被検索データ）ＤＩＮＢから内部書込データを生成し、グローバルＢポート書込データ線ＧＷＤＢ１，ＺＧＷＤＢ１−ＧＷＤＢＶ，ＺＧＷＤＢＶ上に伝達する。ここで、Ｖは、登録データパターン（被検索データパターン）の数に応じて適宜定められる。
【０３８４】
サブブロックＳＢ１−ＳＢｎに対し、Ａポート書込回路４１０と行選択駆動回路４２０とが設けられる。Ａポート書込回路４１０は、サブブロックＳＢ１−ＳＢｎそれぞれに対応して設けられるローカルＡポート書込回路４１５．１−４１５．ｎを含む。これらのローカルＡポート書込回路４１５．１−４１５．ｎから、ポートＡ書込データ線ＷＤＡ１，ＺＷＤＡ１−ＷＤＡＮ，ＺＷＤＡＮに検索データＡが伝達される。図６３においては、サブブロックＳＢ１に対してのみ、ポートＡ書込データ線ＷＤＡ，ＺＷＤＡを示し、残りのサブブロックＳＢ２−ＳＢｎにおいては、図面を簡単にするために示していない。
【０３８５】
行選択駆動回路４２０は、サブブロックＳＢ１−ＳＢｎそれぞれに対応して設けられるローカル行選択駆動回路４２５．１−４２５．ｎを含む。これらのローカル行選択駆動回路４２５．１−４２５．ｎは、読出ワード線ＲＷＬＡ，ＲＷＬＢおよび書込ワード線ＷＷＬＡ，ＷＷＬＢを、図示しないアドレス信号に従って選択状態へ駆動する。図６４においては、１エントリに対して設けられるワード線ＲＷＬＡ，ＲＷＬＢ，ＷＷＬＡ，ＷＷＬＢの組を、単位ワード線群ＵＷＬＧで示す。
【０３８６】
サブブロックＳＢ１−ＳＢｎに共通にグローバル読出データ線ＧＲＤＬ１，ＧＲＤＲ１−ＧＲＤＬＶ，ＧＲＤＲＶが設けられる。これらのグローバル読出データ線ＧＲＤＬ１，ＧＲＤＲ１−ＧＲＤＬＶ，ＧＲＤＲＶが、このサブブロックＳＢ１−ＳＢｎそれぞれに含まれるブロック選択ゲートのオン／オフ状態に従って、選択的にサブブロックＳＢ１−ＳＢｎそれぞれに含まれるセンスアンプ回路からの読出データを受ける。
【０３８７】
グローバル読出データ線ＧＲＤＬ１，ＧＲＤＲ１−ＧＲＤＬＶ，ＧＲＤＲＶに対し一致判定回路４３０が設けられる。一致判定回路４３０は、グローバル読出データ線線ＧＲＤＬ１，ＧＲＤＲ１−ＧＲＤＬＶ，ＧＲＤＲＶそれぞれに対して設けられるローカル一致判定回路を含み、各記憶単位列毎に被検索データパターンと検索データパターンの一致／不一致を判定する。従って、グローバル読出データ線ＧＲＤＬ１，ＧＲＤＲ１−ＧＲＤＬＶ、ＧＲＤＲＶの対がそれぞれ、マッチ線として利用される。
【０３８８】
なお、図６４においては、一致判定回路４３０が、Ｂポート書込回路４００と対向して配置されるように示す。しかしながら、一致判定回路４３０がＢポート書込回路４００と隣接してまたは同一側に配置されてもよい。
【０３８９】
図６５は、この発明の実施の形態５に従う半導体信号処理装置における検索動作原理を示す図である。図６５においては、１つのサブブロックＳＢｉにおける構成を代表的に示す。列方向に演算子セルＵＯＥＬが整列して配置され、左側演算子セル列ＯＵＥＣＬが形成される。同様、列方向に整列して右側演算子セルＵＯＥＲが整列して配置され、右側演算子セル列ＯＵＥＣＲが形成される。
【０３９０】
このサブブロックＳＢｉにおいては、エントリＥＲＹｊは、演算子セル列対ＯＵＥＣＬおよびＯＵＥＣＲで構成される。サブブロックＳＢｉにおいては、演算子セル行ＲＯＷ１−ＲＯＷｍが設けられる。演算子セル行ＲＯＷｋに対応して、読出ワード線ＲＷＬＡｋおよびＲＷＬＢｋが配置される。
【０３９１】
左側演算子セル列ＯＵＥＣＬおよび右側演算子セル列ＯＵＥＣＲそれぞれに対応してセンスアンプ回路ＳＡＫＬおよびＳＡＫＲが設けられる。センスアンプ回路ＳＡＫＬおよびＳＡＫＲは、それぞれ、動作時、対応のダミー演算子セルＤＵＥからの参照電流Ｉｒｅｆと対応のビット線を流れるセル電流ＩＣＥＬおよびＩＣＥＲを差動増幅する。
【０３９２】
センスアンプ回路ＳＡＫＬおよびＳＡＫＲの動作時においては、エントリＥＲＹ１−ＥＲＹｍに対応して配置される読出ワード線ＲＷＬＡ１，ＲＷＬＢ１−ＲＷＬＡｍ，ＲＷＬＢｍを並行に選択状態へ駆動する。この場合、図６５においては示していないが、ポートＡ書込ワード線ＷＷＬＡ１−ＷＷＬＡｍも選択状態へ駆動される。
【０３９３】
すなわち、演算子セルＵＯＥＬおよびＵＯＥＲの記憶ノードＳＮＡＬおよびＳＮＡＲには、検索データＡおよび／Ａが書き込まれた後に、読出ワード線ＲＷＬＡおよびＲＷＬＢが選択状態に駆動される。応じて、演算子セル列ＯＵＥＣＬおよびＯＵＥＣＲそれぞれにおいて、ビット線ＢＬＲおよびＢＬＬに、それぞれ、エントリＥＲＹｊの演算子セルＵＯＥＬおよびＵＯＥＲの記憶データに応じた電流が流れる。
【０３９４】
図６６は、このセンス動作時におけるビット線を流れるセル電流ＩＣＥＬおよびＩＣＥＲの関係を示す図である。演算子セルＵＯＥＬおよびＵＯＥＲは、それぞれ、データＡ、／Ｂおよび／Ａ、Ｂを格納し、演算子セルＵＯＥＬおよびＵＯＥＲの選択時には、演算Ａ・／Ｂおよび／Ａ・Ｂの結果に応じた電流が対応のビット線に流れる。したがって、この演算子セル列ＯＵＥＣＬおよびＯＵＥＣＲにおいて、多ビットデータＡおよびＢが一致している場合には、セル電流ＩＣＥＬおよびＩＣＥＲはほとんど流れず、図６６において電流ＩＣ０で示す電流が流れる。一方、多ビットデータＡおよびＢにおいて１ビットが不一致の場合、演算子セル列ＯＵＥＣＬまたはＯＵＥＣＲにおいて、この１つの不一致状態の演算子セルから電流が流れ、図６６において、ＩＣ１で示す大きさの電流がセル電流ＩＣＥＬまたはＩＣＥＲとして流れる。
【０３９５】
２つの演算子セルにおいて、記憶データビットと検索データビットとが不一致の場合、これらの２つの不一致状態の演算子セルからビット線に電流が流れ、ＩＣ２で示される電流がセル電流として流れる。同様、３つの演算子セルが不一致状態のときには、ＩＣ３で示される電流が流れる。したがって、演算子セル列ＯＵＥＣＬまたはＯＵＥＣＲにおいてデータＡおよびＢが不一致の演算子セルの数が増大するにつれて、セル電流ＩＣＥＬおよびＩＣＥＲが増大する。
【０３９６】
ダミー演算子セルＤＵＥが供給する参照電流Ｉｒｅｆとして、電流ＩＣ０およびＩＣ１の間の電流を供給する。このダミーセルＤＵＥは、先の図７において説明したものと同じ構成を備え、基準電圧ＶＲＥＦのレベルを調整することにより、参照電流Ｉｒｅｆを所望のレベルに設定することができる。
【０３９７】
したがって、本実施の形態５においては、検索データＡと被検索データＢは、列方向に延在するエントリにデータパターンが配列され、各記憶単位列において、データパターンの一致／不一致が判定される。
【０３９８】
図６７は、この発明の実施の形態５に従う半導体信号処理装置の要部の構成をより具体的に示す図である。図６７において、ｍビット検索単位ＲＵＴＭ１−ＲＵＴＭ２…が設けられる。このｍビット検索単位ＲＵＴＭ１、ＲＵＴＭ２…は、各々、演算子セル行ＲＯＷ１−ＲＯＷｍを含む。これらの検索単位ＲＵＴＭ１、ＲＵＴＭ２…は、サブブロックＳＢ１、ＳＢ２、…に対応する。
【０３９９】
これらの検索単位ＲＵＴＭ１−ＲＵＴＭ２、…は、各々、共通に領域ＲＥＧＰ１、ＲＥＧＰ２、…、ＲＥＧＰｋに分割される。この検索単位における領域ＲＥＧＰ１、ＲＥＧＰ２、…ＲＡＧＰｋ各々は、行列状に配列される記憶単位ＳＵＴを含み、この記憶単位ＳＵＴは、左側演算子セルＵＯＥＬおよび右側演算子セルＵＯＥＲを含む。演算子セルＵＯＥＬおよびＵＯＥＲに結合されるビット線ＢＬＬおよびＢＬＲが、それぞれセンスアンプ回路ＳＡＫＬおよびＳＡＫＲに接続される。ｍビット検索単位ＲＵＴＭ１、ＲＵＴＭ２、…全体にわたる記憶単位ＳＵＴの列により、エントリＥＲＹが構成される。
【０４００】
ｍビット検索単位ＲＵＴＭｉにおいては、センスアンプ回路ＳＡＫＬおよびＳＡＫＲに対してブロック選択ゲートＳＧｉが設けられる。ブロック選択ゲートＳＧｉは、対応のブロック選択信号ＢＳ＜ｉ＞に従って導通し、対応のセンスアンプ回路ＳＡＫＬおよびＳＡＫＲの出力を、複数のｍビット検索単位ＲＵＴＭ１−ＲＵＴＭ２、…に共通に列方向に延在して配置されるグローバル読出データ線ＧＲＤＬに結合する。
【０４０１】
ここで、図６７において、領域ＲＥＧＰ１においては、グローバル読出データ線ＧＲＤＬ１１、ＧＲＤＲ１１、…が設けられ、領域ＲＥＧＰ２においては、グローバル読出データ線ＧＲＤＬ２１，ＧＲＤＲ２１、…が設けられる。領域ＲＥＧＰｋにおいては、グローバル読出データ線ＧＲＤＬｋ１，ＤＲＤＲｋ１、…が設けられる。ここで、ｋは、先の実施の形態１における検索単位の数を示す２＾ｋのｋとは、特に関連性はない。
【０４０２】
この領域ＲＥＧＰ１、ＲＥＧＰ２、…ＲＥＧＰｋにおいて対応のエントリＥＲＹに格納される検索データパターンのパターン長が、予め固定的に定められる。
【０４０３】
一致判定回路４３０は、それぞれ、グローバル読出データ線ＧＲＤＬおよびＧＲＤＲに対して設けられるデータアンプＡＭＰＬ、ＡＭＰＲを含む。図６７においては、グローバル読出データ線ＧＲＤＬ１１，ＧＲＤＲ１１、ＧＲＤＬ２１，ＧＲＤＲ２１、ＧＲＤＬｋ１，ＧＲＤＲｋ１それぞれに対して設けられるデータアンプＡＭＰ１Ｒ、ＡＭＰ１Ｌ、ＡＭＰ２Ｌ、ＡＭＰ２Ｒ、およびデータアンプＡＭＰｋＬ，ＡＭＰｋＲを代表的に示す。
【０４０４】
データアンプＡＭＰ１Ｌ，ＡＭＰ１Ｒは、エントリに対応して対をなして配設され、データアンプイネーブル信号ＡＰＥＮ＜１＞に応答して活性化されて、活性化時、対応のグローバル読出データ線上のデータを増幅する。
【０４０５】
領域ＲＥＧＰ２に対して設けられるデータアンプＡＭＰ２Ｌ，ＡＭＰ２Ｒは、エントリに対応して対をなして配置され、データアンプイネーブル信号ＡＰＥＮ＜２＞の活性化に応答して活性化され、アンプ基準電圧ＶＲＥＦａｐと対応のグローバル読出データ線上の電位とを差動増幅する。
【０４０６】
領域ＲＥＧＰｋに対して配置されるデータアンプＡＭＰｋＬ，ＡＭＰｋＲは、エントリに対応して対をなして配置され、データアンプイネーブル信号ＡＰＥＮ＜ｋ＞の活性化に応答して活性化され、活性化時、アンプ基準電圧ＶＲＥＦａｐと対応のグローバル読出データ線ＧＲＤＬｋ１，ＧＲＤＲｋ１上の電位を差動増幅する。
【０４０７】
図示しないエントリに対してもデータアンプ対が配置され、それぞれ対応のデータアンプイネーブル信号ＡＰＥＮ＜＊＞に従って活性化され、対応のエントリに対して配置されるグローバル読出データ線上の電位とアンプ基準電圧ＶＲＥＦａｐとを差動増幅する。ここで、＊は、１からｋのいずれかである。
【０４０８】
各領域に割当てられるデータパターン長が異なる。検索動作は２次元的に行われる、すなわち、演算子セル行ＲＯＷ１−ＲＯＷｍを並行して選択して列方向に演算子セルデータを読出される。検索動作時、領域ＲＥＧＰ１−ＲＥＧＰｋ各々において、個々にデータアンプを活性化する。データパターン長が領域毎に異なる場合においても、正確に検索データパターンと被検索データパターンとの一致／不一致を判定することができる。この検索動作については、後に詳細に説明する。
【０４０９】
これらのデータアンプの対ＡＭＰ１Ｌ，ＡＭＰ１Ｒ、ＡＭＰ２Ｌ，ＡＭＰ２Ｒ、…ＡＭＰｋＬ，ＡＭＰｋＲの各記憶単位列（エントリ）に対して配置されるデータアンプ対に対してそれぞれＮＯＲゲートＮＧ１１、ＮＧ２１、…ＮＧｋ１が設けられる。これらのＮＯＲゲートＮＧ１１，ＮＧ２１，ＮＧｋ１は、それぞれ対応のデータアンプの対の出力信号がともにＬレベルのときにＨレベルの信号を出力する。すなわち、記憶単位列（エントリ）毎にデータＡおよびＢのパターンの一致／不一致が判定される。
【０４１０】
ＮＯＲゲートＮＧ１１、ＮＧ２１、…ＮＧｋ１、…に対して、それぞれ一致信号確定回路ＭＳＬＴ１１、ＭＳＬＴ２１、…ＭＳＬＴｋ１、…が設けられる。一致信号確定回路ＭＳＬＴ１１、ＭＳＬＴ２１、ＭＳＬＴｋ１は、それぞれ、プリチャージ指示信号ＺＰＲＥに従って、選択的に動作し、動作時、対応のＮＯＲゲートＮＧ１１、ＮＧ２１、…ＮＧｋ１、…の出力信号に従って一致判定信号ＭＡＣＨ＜１＞、ＭＡＣＨ＜ｊ＞、…ＭＡＣＨ＜ｌ＞、…を生成する。したがって、各領域ＲＥＧＰ１、ＲＥＧＰ２、…ＲＥＧＰｋ各々において、記憶単位列（エントリ）毎に被検索データＢと検索データＡのパターンの一致／不一致が判定され、各エントリ毎に一致／不一致の判定結果を示す信号ＭＡＣＨ＜ｉ＞が生成される。
【０４１１】
グローバル読出データ線ＧＲＤＬおよびＧＲＤＲ各々に対してプリチャージゲートＰＲＱＴが設けられる。これらのプリチャージゲートＰＲＱＴは、領域ＲＥＧＰ１−ＲＥＧＰｋそれぞれにおいてプリチャージ指示信号ＰＲＥＤＰ＜１＞−ＰＲＥＤＰ＜ｋ＞それぞれに従って選択的にオン状態とされて、対応のグローバル読出データ線ＧＲＤＬおよびＧＲＤＲを接地電圧レベルにプリチャージする。従って、領域ＲＥＧＰ１−ＲＥＧＰｋおのおのにおいて、個々にグローバル読出データ線ＧＲＤＬおよびＧＲＤＲのプリチャージを実行する。
【０４１２】
図６８は、図６７に示す一致信号確定回路ＭＳＬＴ１１、ＭＳＬＴ２１、…ＭＳＬＴｋ１…の構成の一例を示す図である。図６８においては、一致信号確定回路を符号ＭＳＬＴで代表的に示す。
【０４１３】
図６８において、一致信号確定回路ＭＳＬＴは、プリチャージ指示信号ＺＰＲＥをゲートに受けるＰおよびＮチャネルＭＯＳトランジスタＰＴ１０およびＮＴ１０と、ゲートに対応のＮＯＲゲートＮＧの出力信号を受けるＮチャネルＭＯＳトランジスタＮＴ１１とを含む。ＰチャネルＭＯＳトランジスタＰＴ１０のソースが電源ノードに結合され、ＭＯＳトランジスタＮＴ１０およびＮＴ１１がＰチャネルＭＯＳトランジスタＰＴ１０と接地ノードの間に直列に接続される。
【０４１４】
この一致信号確定回路ＭＳＬＴは、さらに、ＭＯＳトランジスタＰＴ１０およびＮＴ１０の接続ノードの信号を反転するインバータＩＶ１０と、インバータＩＶ１０の出力信号を反転してインバータＩＶ１０の入力に伝達するインバータＩＶ１１を含む。インバータＩＶ１０の出力駆動力は、インバータＩＶ１１よりも大きくされ、したがって、インバータＩＶ１０からの一致信号ＭＡＣＨ＜ｉ＞は、対応のＮＯＲゲートＮＧの出力信号に従って変化する（プリチャージ指示信号ＺＰＲＥがＨレベルのとき）。
【０４１５】
一致信号確定回路ＭＳＬＴは、プリチャージ指示信号ＺＰＲＥがＬレベルのときには、ＭＯＳトランジスタＰＴ１０が導通し、ＮチャネルＭＯＳトランジスタＮＴ１０がオフ状態となり、インバータＩＶ１０からの一致判定信号ＭＡＣＨ＜ｉ＞はＬレベルにプリチャージされる。プリチャージ指示信号ＺＰＲＥがＨレベルとなると、ＭＯＳトランジスタＰＴ１０がオフ状態となり、インバータＩＶ１０の出力ノードは電源ノードから分離される。このとき、対応のＮＯＲゲートＮＧの出力信号がＨレベルとなり、一致を示すと、ＭＯＳトランジスタＮＴ１０およびＮＴ１１がともにオン状態となり、インバータＩＶ１０の入力が接地電圧レベルに放電される。応じて、一致判定信号ＭＡＣＨ＜ｉ＞がＨレベルとなり、パターン一致を示す。
【０４１６】
プリチャージ指示信号ＺＰＲＥがＨレベルであり検索動作を行なっているとき、一旦、ＮＯＲゲートＮＧの出力信号が一致を示すと、その後、対応のＮＯＲゲート出力信号の論理レベルにかかわらず、一致判定信号ＭＡＣＨ＜ｉ＞は、一致状態を示す状態に維持される。
【０４１７】
なお、一致信号確定回路ＭＳＬＴは、ＭＯＳトランジスタで構成されるように図示されるが、この一致信号確定回路ＭＳＬＴは、演算子セルを構成するトランジスタと同様、ＳＯＩトランジスタで構成される。しかしながら、この一致信号確定回路ＭＳＬＴは、演算子セルアレイ外部においてバルクトランジスタで構成されてもよい。
【０４１８】
図６９は、この発明の実施の形態５におけるデータパターンの配列を概略的に示す図である。図６９に示すように、サブブロックＳＢ１−ＳＢＫは、それぞれ、ｍビット検索単位ＲＵＴＭ−ＲＵＴＭＫに分割される。ｍビット検索単位ＲＵＴＭ１−ＲＵＴＭＫは、それぞれ演算子セル行ＲＯＷ１−ＲＯＷｍを含む。
【０４１９】
これらの検索単位ＲＵＴＭ１−ＲＵＴＭＫは、それぞれ領域ＲＥＧＰ１、ＲＥＧＰ２、…ＲＥＧＰｋに分割される。これらの領域ＲＥＧＰ１、ＲＥＧＰ２、…、ＲＥＧＰｋ各々において、演算子セル列それぞれによりエントリＥＲＹ１−ＥＲＹｎが構成される。各領域のエントリＥＲＹ１−ＥＲＹｎに対応して、かつｍビット検索単位ＲＵＴＭ１−ＲＵＴＭＫに共通にグローバル読出データ線ＧＲＤ（ＧＲＤＬ、ＧＲＤＲ）が設けられる。このグローバル読出データ線ＧＲＤに、対応の演算子セル列（エントリ）のセンスアンプ回路の出力信号が並列に読出される。従って、センスアンプ回路ＳＡＫ（ＳＡＫＬ，ＳＡＫＲ）の出力信号が対応のサブブロックにおける対応のエントリに格納される列方向に配列されるデータパターンの一致／不一致を示す。センスアンプ回路ＳＡＫＬ，ＳＡＫＲの出力が、対応のグローバル読出データ線ＧＲＤ（ＧＲＤＬ，ＧＲＤＲ）にワイヤードＯＲ接続されるため、これらのグローバル読出データ線ＧＲＤの対は、各々、ｍ・Ｋ（＝Ｌ）ビット長のローカルマッチ線ＭＬとして機能する。
【０４２０】
この場合、データパターン長に応じて、領域ＲＥＧＰ１−ＲＥＧＰｋにおいて並列にデータＡを与えて検索動作を実行する。データパターン長に応じてブロック選択信号ＢＳ＜１＞−ＢＳ＜Ｋ＞を選択的にオン状態に設定し、データパターン長に応じたパターンについての一致検索を実行する。
【０４２１】
図７０は、この図６９に示す演算子セルアレイに格納されるデータパターンの格納例の一例を示す図である。図７０においては、領域ＲＥＧＰ１−ＲＥＧＰ３が、各々サブブロックＳＢ１−ＳＢ８がそれぞれ分割される。これらのサブブロックＳＢ１−ＳＢ８は、ｍビット検索単位ＲＵＴＭ１−ＲＵＴＭ８に対応する。
【０４２２】
サブブロックＳＢ１−ＳＢ８は、それぞれブロック選択信号ＢＳ＜１＞−ＢＳ＜８＞に従って、対応のセンスアンプ回路の出力信号が対応のグローバル読出データ線ＧＲＤ（ＧＲＤＬ、ＧＲＤＲ）に伝達される。従って、ブロック単位（ｍビット検索単位）でパターンの一致／不一致結果に応じた電流が、対応のグローバル読出データ線に伝達される。
【０４２３】
図７０を参照して、領域ＲＥＧＰ３においては、パターン長Ｌ（＝８・ｍビット）のデータパターンがマッピングされ、図７０においてはパターンＰＡＴＮ１が格納される。
【０４２４】
領域ＲＡＧＰ２においては、パターン長Ｌ／２のデータパターンがサブブロックＳＢ１−ＳＢ４を用いて格納され、サブブロックＳＢ５およびＳＢ６に、パターン長Ｌ／４のデータパターンＰＡＴＮ４がマッピングされる。サブブロックＳＢ７およびＳＢ８それぞれにおいては、パターン長Ｌ／８のデータパターンＰＡＴＮ６およびＰＡＴＮ７がそれぞれマッピングされる。
【０４２５】
領域ＲＥＧＰ１においても、領域ＲＥＧＰ２と同様、サブブロックＳＢ１−ＳＢ４がパターン長Ｌ／２のデータパターンのマッピング領域として利用され、データパターンＰＡＴＮ３が格納される。サブブロックＳＢ５およびＳＢ６がパターン長Ｌ／４のデータパターンのマッピング領域として利用され、データパターンＰＡＴＮ５が格納される。この場合、領域ＲＥＧＰ１においては、サブブロックＳＢ７およびＳＢ８も、それぞれ、データパターン格納領域として利用されるが、この場合、パターン長Ｌ／４のデータパターンのマッピング領域またはＬ／８のパターン長のデータのマッピング領域として利用される。
【０４２６】
検索データパターンに対して、選択サブブロックの数を変更することにより、異なるパターン長のデータパターンに対して一致検索動作を行なうことができる。
【０４２７】
なお、図７０に示す被検索データパターンの格納態様は、単なる一例であり、用いられる被検索データパターン長の種類および数が異なれば、応じて、各領域ＲＥＧＰに対するパターン長の割当および数ならびに検索単位（サブブロック）の数も異なる。
【０４２８】
図７１は、この図７０に示す構成におけるデータ検索動作シーケンスを示す図である。以下、図７１を参照して、図７０に示す被検索パターンに対する検索パターンの検索動作について説明する。
【０４２９】
１検索サイクルは、パターン長の種類に応じて異なる。図７０に示すパターン配置においては、パターン長が４種類存在するため、１検索サイクルは、クロック信号ＣＬＫの４サイクルで構成される。検索サイクルが始まると、サイクル♯１において、まず、プリチャージ指示信号ＺＰＲＥがＬレベルからＨレベルとなり、一致信号確定回路ＭＳＬＴの内部ノードのプリチャージ動作が完了する。また、データパスプリチャージ指示信号ＰＲＥＤＢ＜３：１＞をＨレベルからＬレベルに駆動して、グローバル読出データ線ＧＲＤの接地電圧レベルへのプリチャージを完了する。
【０４３０】
ブロック選択信号ＢＳ＜４：１＞をアサートし、サブブロックＳＢ１−ＳＢ４においてすべての読出ワード線ＲＷＬＡおよびＲＷＬＢを、ポートＡ書込ワード線ＷＷＬＡの活性化後、選択状態へ駆動する。ビット線ＢＬＬおよびＢＬＲの電位が確定した後、所定のタイミングで、サブブロックＳＢ１−ＳＢ４に対するセンスアンプ活性化信号ＳＡＥＮ＜４：１＞を活性化する。このとき、残りのセンスアンプ活性化信号＜８：５＞は非活性状態である。サブブロックＳＢ１−ＳＢ４から、対応のグローバル読出データ線ＧＲＤにセンスアンプ回路の出力信号が伝達される。
【０４３１】
グローバル読出データ線ＧＲＤの信号電位が確定すると、領域ＲＥＧＰ１およびＲＥＧＰ２に対して設けられたデータアンプに対するデータアンプ活性化信号ＡＰＥＮ＜２：１＞を活性化する。これにより、領域ＲＥＧＰ１およびＲＥＧＰ２の各記憶単位列における検索結果に応じた結果が、対応の一致信号確定回路ＭＳＬＴにラッチされる。
【０４３２】
データパターンが一致している場合には、一致信号確定回路ＭＳＬＴは、ＮＯＲゲートＮＧの出力信号がＨレベルとなるため、検索判定信号ＭＡＣＨ＜ｉ＞をＨレベルに立上げる。一方、不一致のときには、グローバル読出データ線ＧＲＤには電流が流れ、その電位レベルが上昇するため、対応のデータアンプＡＭＰｉＬ，ＡＭＰｉＲの組の出力信号はいずれかがＨレベルとなる。応じて、対応のＮＯＲゲートＮＧｉｊの出力信号がＬレベルとなり、一致信号確定回路ＭＳＬＴからの検索判定信号ＭＳＬＴ＜ｉ＞はプリチャージ状態のＬレベルを維持する。
【０４３３】
このサイクル♯１が完了すると、領域ＲＥＧＰ１およびＲＥＧＰ２に対する読出データ線プリチャージ指示信号ＰＲＥＤＢ＜２：１＞をアサートし、これらの領域ＲＥＧＰ１およびＲＥＧＰ２のグローバル読出データ線を接地電圧レベルにプリチャージする。一方、領域ＲＥＧＰ３に対するデータパスプリチャージ指示信号ＰＲＥＤＢ＜３＞は、非活性状態に維持し、この領域ＲＡＧＰ３においては、グローバル読出データ線ＧＲＤは、サイクル♯１で読出された結果を維持する。
【０４３４】
サイクル♯１において、サブブロックＳＢ１−ＳＢ４に格納されたパターンＰＡＴＡＮ２およびＰＡＴＡＮ３に対するパターン長Ｌ／２のパターン検索サイクルが完了する。
【０４３５】
次のサイクル♯２が始まると、ブロック選択信号ＢＳ＜４：１＞を非選択状態に設定し、ブロック選択信号ＢＳ＜６：５＞を選択状態に駆動する。ブロック選択信号ＢＳ＜８：７＞も同様、非選択状態に維持される。
【０４３６】
データパスプリチャージ指示信号ＰＲＥＤＢ＜２：１＞を再び、Ｌレベルに設定し、領域ＲＥＧＰ１およびＲＥＧＰ２のグローバル読出データ線ＧＲＤのプリチャージを完了する。サブブロックＳＢ５およびＳＢ６において、ポートＡ書込ワード線および読出ワード線ＲＷＬＡおよびＲＷＬＢをすべて選択状態に駆動し、サブブロックＳＢ５およびＳＢ６において各記憶単位の演算子セルの記憶データの演算結果を対応のビット線ＢＬ（ＢＬＬ、ＢＬＲ）に読出す。
【０４３７】
所定のタイミングで、サブブロックＳＢ５およびＳＢ６に対するセンスアンプ活性化信号ＳＡＥＮ＜６：５＞を活性化し、サブブロックＳＢ５およびＳＢ６の被検索パターンと検索パターンとの一致判定結果を対応のグローバル読出データ線に読出す。
【０４３８】
このとき、領域ＲＥＧＰ３においても、対応のグローバル読出データ線に新たな検索結果が伝達され、その電位が検索結果に応じて変化する。センスアンプ活性化信号ＳＡＥＮ＜６：５＞の活性化の後、所定のタイミングで、再び、領域ＲＡＧＰ１およびＲＡＧＰ２に対するデータアンプ活性化信号ＡＰＥＮ＜２：１＞を活性化する。このときまた、領域ＲＡＧＰ３に対する活性化信号ＡＰＥＮ＜３＞は非活性状態に維持される。したがって、領域ＲＥＧＰ１およびＲＥＧＰ２において検索結果が、一致信号確定回路ＭＳＬＴに再び格納される。この場合、一致パターンが存在するときには、一致信号確定回路ＭＳＬＴの出力する検索判定信号ＭＡＣＨは、Ｈレベルとなる。したがって、領域ＲＥＧＰ１およびＲＥＧＰ２においてパターン長Ｌ／２のデータパターンおよびパターン長Ｌ／４のデータパターンのいずれかに対する一致が検出された場合、一致信号確定回路ＭＳＬＴの出力信号がプリチャージ状態から変化する。
【０４３９】
一方、領域ＲＥＧＰ３においては、対応のグローバル読出データ線の電位が検索結果に応じて変化するだけであり、一致信号確定回路ＭＳＬＴの出力信号は、初期設定されたＬレベルに維持される。このとき、領域ＲＥＧＰ３において、サブブロックＳＢ１−ＳＢ６の領域に格納されるデータパターンが一致している場合には、対応のグローバル読出データ線ＧＲＤは、プリチャージ状態を維持する。少なくとも１つのサブブロックにおいて不一致が検出されると、対応のグローバル読出データ線ＧＲＤの電位が上昇する。
【０４４０】
このサイクル♯２においてパターン長Ｌ／４のデータパターンの検索動作が完了すると、再びデータパスプリチャージ指示信号ＰＲＥＤＢ＜２：１＞をＨレベルに設定し、領域ＲＥＧＰ１およびＲＥＧＰ２のグローバル読出データ線ＧＲＤを接地電圧レベルにプリチャージする。このとき、また、領域ＲＥＧＰ３においては、プリチャージ指示信号ＰＲＥＤＢ＜３＞は、非活性状態にあり、対応のグローバル読出データ線ＧＲＤは、Ｌ／２パターン検索動作およびＬ／４パターン長のパターン検索動作の検索結果に応じた電位に維持される。
【０４４１】
サイクル♯３が始まると、再びブロック選択信号ＢＳ＜７＞を選択状態に駆動し、残りのブロック選択信号ＢＳ＜８＞およびＢＳ＜６：１＞は非選択状態に維持する。データパスプリチャージ指示信号ＰＲＥＤＢ＜２：１＞を再び非活性状態に設定し、領域ＲＡＧＰ１およびＲＡＧＰ２のグローバル読出データ線ＧＲＤに対するプリチャージ動作を完了する。
【０４４２】
これにより、サブブロックＳＢ７において、パターン長Ｌ／８に対するデータパターンに対する検索が行なわれる。サブブロックＳＢ７に対するセンスアンプ活性化信号ＳＡＥＮ＜７＞を活性化し、サブブロックＳＢ７における検索結果に応じた信号が、対応のグローバル読出データ線ＧＲＤに伝達される。グローバル読出データ線の電位が確定すると、データアンプ活性化信号ＡＰＥＮ＜２：１＞を活性化する。対応の一致信号確定回路ＭＳＬＴにより検索結果に応じた信号が保持される。
【０４４３】
このとき、領域ＲＥＧＰ３に対するアンプ活性化信号ＡＰＥＮ＜３＞は非活性状態に維持され、対応のグローバル読出データ線ＧＲＤは、パターン長Ｌ／２、Ｌ／４およびＬ／８についての検索結果に応じた電位に保持される。
【０４４４】
このパターン長Ｌ／８のデータパターンに対する検索動作が完了すると、再び、領域ＲＥＧＰ１およびＲＥＧＰ２に対するデータパスプリチャージ指示信号ＰＲＥＤＢ＜２：１＞を活性化し、グローバル読出データ線ＧＲＤを接地電圧レベルにプリチャージする。領域ＲＥＧＰ３においてはプリチャージ指示信号ＰＲＡＤＢ＜３＞は非活性状態に維持され、領域ＲＥＧＰ３のグローバル読出データ線ＧＲＤは、サイクル♯１から♯３における検索結果に応じた電位に保持される。
【０４４５】
サイクル♯４において、再び、データパスプリチャージ指示信号ＰＲＥＤＢ＜２：１＞を非活性状態に設定し、領域ＲＥＧＰ１およびＲＥＧＰ２のグローバル読出データ線に対するプリチャージ動作を完了する。このサイクル♯４においては、ブロック選択信号ＢＳ＜８＞を選択状態に駆動し、サブブロックＳＢ８に格納されるデータパターンについての検索が行なわれる。このサブブロックＳＢ８において、全エントリのＡポート書込ワード線ＷＷＬＡおよび読出ワード線ＲＷＬＡおよびＲＷＬＢの選択状態に駆動した後、センスアンプ活性化信号ＳＡＥＮ＜８＞を活性化し、サブブロックＳＢ８のデータパターンに対する検索結果を対応のグローバル読出データ線ＧＲＤ上に読出す。
【０４４６】
この後、アンプ活性化信号ＡＭＰＥＮ＜２：１＞およびＡＭＰＥＮ＜３＞をすべて活性化する。応じて、領域ＲＥＧＰ１−ＲＥＧＰ３において、検索結果に応じた信号が、対応の一致信号確定回路ＭＳＬＴに格納され、サブブロックＳＢ８に格納されるパターン長Ｌ／８のデータパターンに対する検索動作が完了する。
【０４４７】
一方、このサイクル♯４において領域ＲＥＧＰ３のデータアンプ活性化信号ＡＭＰＥＮ＜３＞を活性化して、対応の一致信号確定回路ＭＳＬＴに判定結果を格納することにより、パターン長Ｌのデータパターンについての検索結果がラッチされる。
【０４４８】
図７０に示すように、領域ＲＥＧＰ１のサブブロックＳＢ７およびＳＢ８には、データパターンは登録されていない（被検索データはマッピングされていない）。検索データパターンの未登録領域においては、記憶ノードＳＮＢＲおよびＳＮＢＬにビット“１”を格納する（ドントケア状態に設定する）。したがって、この未登録領域においては、検索データとして任意のデータパターンが与えられても、対応のグローバル読出データ線上に電流が流れ（Ａ，／Ａに応じたデータがそれぞれグローバル読出データ線ＧＲＤＬおよびＧＲＤＲに読出された）、したがって対応のＮＯＲゲートＮＧの出力信号はＬレベルとなり、判定信号確定回路ＭＳＬＴのラッチ状態は変化せず、誤判定は防止される。
【０４４９】
一方、パターン長Ｌのデータパターンの検索については、たとえばサイクル♯１においてデータパターンが不一致であり、次のサイクル♯２においてデータパターンが一致することが考えられる。この場合、各サイクルにおいて、データアンプＡＭＰを活性化した場合、一致信号確定回路ＭＳＬＴのラッチ状態が、データパターンが不一致であるにもかかわらず、一致状態と示す状態に設定され、誤判定が生じる（パターン不一致の場合は、一致信号確定回路ＭＳＬＴは、そのラッチ状態を変化しないため）。
【０４５０】
したがって、パターン長Ｌのデータパターンについては、単に、各サイクルにおいて、その検索結果を対応のグローバル読出データ線に読出し、パターン長Ｌ／２、Ｌ／４、およびＬ／８のデータパターンの検索動作の結果をグローバル読出データ線において電流加算する。パターン長Ｌのデータパターンが一致している場合には、対応のグローバル読出データ線ＧＲＤＬおよびＧＲＤＲは、ともにプリチャージ状態の接地電圧レベルであり、一方、不一致の場合には、対応のグローバル読出データ線ＧＲＤの電位は、接地電位よりも高い電位レベルである。このサイクルにおいてアンプ活性化信号ＡＭＰＥＮ＜３＞を活性化することにより、正確にパターン長Ｌの検索結果を保持することができる。
【０４５１】
以上のように、この発明の実施の形態５に従えば、演算子セルアレイにおいて被検索データパターンを列方向に配列し、検索パターンを列方向に整列させて演算子セルアレイに入力して検索動作を行なっている。これにより、各エントリＥＲＹ１−ＥＲＹｍ毎に順次パターン検索を行なう必要がなく、複数のエントリにおいて並行してパターン検索を行なうことができる。従って、検索に要するサイクルは、被検索データパターンのパターン長の種類またはパターンマッピング領域の数に応じたサイクル数に低減することができ、検索動作を高速化することができる。すなわち、図７０に示すパターン配列の場合、パターンマッピング領域の数は、５であり、１検索サイクルは、（５−１）クロックサイクル、すなわち４クロックサイクルとなる。
【０４５２】
この実施の形態５においては、被検索パターンを、演算子セルアレイの列方向に整列して格納する必要がある。この場合、以下の手順で、通常の行方向に整列する被検索データパターンを列方向に変換する。データ配列変換は、半導体信号処理装置外部で行なわれればよいが、以下の手順でデータ列の変換を行なうことができる。以下、被検索データパターンのデータ列変換動作について簡単に説明する。
【０４５３】
図７２から図７８は、データ配列変換シーケンスを概略的に示す図である。この図７２から図７８において、データ列変換のために、直交変換回路でたとえば構成されるデータ列変換回路４５０が用いられる。
【０４５４】
図７２は、パターン長Ｌのデータ入力時の動作を概略的に示す図である。データ列変換回路４５０は、直交変換メモリを含み、そのメモリ領域が、Ｙ方向において、領域ＲＥＧＰ１−ＲＥＧＰ３に対応して領域ＭＲＧ１−ＭＲＧ３に分割される（図７１に示す演算子セルアレイ構成に対応する場合）。パターン長ＬのデータパターンＤＰＡＴ（Ｌ）を受けると、データ列変換回路４５０は、ポインタＰＯＩＮＴ（Ｌ）に従ってＸ方向に整列するデータパターンＤＰＡＴ（Ｌ）を、領域ＭＲＧ３のポインタＰＯＩＮＴ（Ｌ）が指定する領域に格納する。
【０４５５】
この領域ＭＲＧ３において順次パターン長ＬのデータＤＰＡＴ（Ｌ）が格納されるとき、パターン長Ｌのデータの数が、この領域ＭＲＧ３の行数よりも小さい場合には、その空き領域には、同じ被検索データパターンが繰返し格納される。これは、演算子セルアレイへの被検索データパターンの書込時に、空き領域にドントケア状態のデータ（“０”）をビット単位で書込む際の制御が困難なためである。勿論、実施の形態１等において示したように、マスク指示信号ＭＳＫを利用してビット単位でドントケア状態のデータ“０”が転送されてもよい。この場合、各領域ＭＲＧ１−ＭＲＧ３において空き領域を示すフラグを立てて、マスク指示信号ＭＳＫを空き領域フラグに従って生成する必要がある。
【０４５６】
図７３は、パターン長Ｌ／２のデータパターン書込時の態様を概略的に示す図である。データ列変換回路４５０は、Ｘ方向において長さＬ／２バイトの領域４６０Ｌおよび４６０Ｒに分割される。この場合、領域ＭＲＧ２およびＭＲＧ１においてポインタＰＯＩＮＴ（Ｌ／２）に従ってパターン長Ｌ／２のデータパターンＤＰＡＴ（Ｌ／２）が領域４６０において格納される。この領域ＭＲＧ２およびＭＲＧ１の残りの半分の領域４６０Ｒは、マスク信号ＭＡＳＫ（Ｌ／２）により書込にマスクがかけられる。この場合、直交変換メモリとして、たとえばＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）またはＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）などのメモリ装置が用いられており、これらの通常のメモリにおけるマスク機能を利用し、データ書込にマスクをかける。これにより、領域ＭＲＧ２およびＭＲＧ１のＬ／２バイト長領域４６０Ｌに、パターン長Ｌ／２のデータパターンが順次格納される。
【０４５７】
図７４は、パターン長Ｌ／４のデータパターンの書込態様を概略的に示す図である。この場合、データ列変換回路４５０におけるＬ／２バイト長領域４６０ＬおよびＬ／４バイト長領域４６２Ｒに対しマスク指示ＭＡＳＫ（Ｌ／２）およびＭＡＳＫ（Ｌ／４）がそれぞれ与えられ、これらの領域４６０Ｌおよび４６２Ｒに対するデータ書込は、禁止される。パターン長Ｌ／４のデータパターンＤＰＡＴ（Ｌ／４）が、ノンマスクの領域４６２ＬにポインタＰＯＩＮＴ（Ｌ／４）に従って順次格納される。
【０４５８】
図７５は、パターン長Ｌ／８のデータ書込態様を概略的に示す図である。図７５において、パターン長Ｌ／８のデータパターン書込時においては、データ列変換回路４５０の領域４６４および４６６Ｒは、マスク指示ＭＡＳＫ（３Ｌ／４）およびＭＡＳＫ（Ｌ／８）により書込が禁止される。ポインタＰＯＩＮＴ（Ｌ／８）に従って領域４６６Ｌに、パターン長Ｌ／８のデータパターンＤＰＡＴ（Ｌ／８）Ａが、メモリ領域ＭＲＧ２の領域４６６Ｌにおいて順次格納される。
【０４５９】
図７６は、パターン長Ｌ／８のデータパターンの書込態様を概略的に示す図である。この図７６においては、マスクＭＡＳＫ（７Ｌ／８）により、データ列変換回路４５０の３・Ｌ／４バイトの領域４６４およびＬ／８バイトの領域４６６Ｌに対し書込にマスクがかけられる。パターン長Ｌ／８のデータパターンＤＰＡＴ（Ｌ／８）Ｂが、領域４６６Ｒのメモリ領域ＭＲＧ２および順次ポインタＰＯＩＮＴ（Ｌ／８）に従って順次格納される。
【０４６０】
図７５および図７６に示すパターン長Ｌ／８のデータパターンＤＰＡＴ（Ｌ／８）ＡおよびＤＰＡＴ（Ｌ／８）Ｂは、交互に与えられてもよく、また、データパターンＤＰＡＴ（Ｌ／８）Ａの列およびＤＰＡＴ（Ｌ／８）Ｂの列が、順次与えられてもよい。
【０４６１】
メモリ領域ＭＲＧ１のＬ／８バイト領域４６６Ｌおよび４６６Ｒは、データパターンは書込まれない。この場合、メモリ領域ＭＲＧ１の領域４６６Ｌおよび４６６Ｒは、空領域であることを示す情報が、図示しないレジスタに格納される。
【０４６２】
ポインタＰＯＩＮＴ（Ｌ）、ＰＯＩＮＴ（Ｌ／２）、ＰＯＩＮＴ（Ｌ／４）、およびＰＯＩＮＴ（Ｌ／８）は、このデータ長入力データのパターン長に応じて異なるポインタによりそれぞれ順次生成されてもよい。また、入力データに含まれるパターン長識別子に従って順次生成されてもよい（実施の形態４参照）。また、メモリ領域ＭＲＧ３−ＭＲＧ１に対し順次パターン長に従ってデータ書込が行なわれる場合、１つのポインタを用いてこれらの書込ポインタが形成されてもよい。半導体信号処理装置外部にデータ列変換回路４５０が設けられており、書込データの入力シーケンスに応じて適宜ポインタの発生態様が定められればよい。
【０４６３】
図７７および図７８は、データ列変換回路４５０からＹ方向に整列するデータを読出して、この発明の実施の形態５に従う半導体信号処理装置に供給するデータ読出態様を概略的に示す図である。
【０４６４】
まず、図７７に示すように、読出ポインタＲＰＩＮＴに従って、データ列変換回路４５０のメモリ領域ＭＲＧ１−ＭＲＧ３にわたってＹ方向に整列するデータを読出す。メモリ領域ＭＲＧ１−ＭＲＧ３から読出されたデータは、半導体信号処理装置の領域ＲＥＧＰ１−ＲＥＧＰ３へそれぞれ与えられる。
【０４６５】
図７８に示すように、順次データを読出して、読出ポインタＲＰＩＮＴが更新され、読出ポインタＲＰＩＮＴが、メモリ領域ＭＲＧ１の領域４６２Ｒの先頭を指定すると、フラグＥＭＰＴＹ（ＭＲＧ１）をアサートする。読出ポインタＲＰＩＮＴに従って、メモリ領域ＭＲＧ１−ＭＲＧ３からＹ方向に整列するデータを読出して信号処理装置の領域ＲＥＧＰ１−ＲＥＧＰ３へそれぞれ与えるとともに、フラグＥＭＰＴＹ（ＭＲＧ１）を並行して、半導体信号処理装置へ与える。半導体信号処理装置においては、メモリ領域ＭＲＧ１の領域４６２Ｒのデータ書込時においては、フラグＥＭＰＴＹ（ＭＲＧ１）に従って領域ＲＥＧＰ１に対するデータ書込にマスクをかける。すなわち、半導体信号処理装置においては、実施の形態３において説明したように、内部でデータの再書込を実行する（記憶データの読出および読出データの再書込）。データパスの構成としては、先の実施の形態３において用いた構成を利用する（図４９参照）。すなわち、領域ＲＥＧＰ１、ＲＥＧＰ２、およびＲＥＧＰ３それぞれに対してローカル選択信号ＳＥＬＢ＜１：０＞を与える。これにより、演算子セルアレイの空き領域（図７０のサブブロックＳＢ７およびＳＢ８の領域ＲＥＧＰ１）は、ドントケア状態に維持される。
【０４６６】
フラグＥＭＰＴＹは、メモリ領域ＭＲＧ１−ＭＲＧ３それぞれに対して設けられ、エントリ幅の空き領域が存在するときに、対応のフラグＥＭＰＴＹ（メモリ領域）がアサートされる。
【０４６７】
この演算子セルアレイへの被検索データパターンの書込時に、実施の形態１から４において示したようなマスク指示信号ＭＳＫ＜ｊ＞を利用する場合、メモリ領域ＭＲＧ１−ＭＲＧ３それぞれにおいてパターン長毎に空き領域フラグを生成して管理してマスク指示信号ＭＳＫ＜ｊ＞を生成する必要があり、マスク指示信号生成の管理および制御が少し煩雑となる。しかしながら、メモリ領域ＭＲＧ１−ＭＲＧ３それぞれに対して空き領域フラグを格納する空き領域フラグレジスタを設け、読出ポインタＲＰＩＮＴに従って、この空き領域フラグレジスタの内容を読出してマスク指示信号ＭＳＫ＜ｊ＞を生成してビット単位で書込にマスクをかけてもよい。
【０４６８】
しかしながら、以下の説明においては、マスク指示信号ＭＳＫ＜ｊ＞を用いずに被検索データパターンを書込む動作および構成について説明する。
【０４６９】
図７９は、この発明の実施の形態５に従う半導体信号処理装置における被検索データパターンの書込時の制御動作を示すフロー図である。以下、図７９を参照して、この被検索データ書込動作について説明する。
【０４７０】
半導体信号処理装置側においては、データ書込コマンドが与えられるのを待つ（ステップＳ１）。データ書込コマンドが与えられると、書込および読出アドレス（カウンタアドレス）を初期化するとともに、演算子セルアレイを初期化する（ステップＳ２）。この演算子アレイの初期化により、演算子セル（ＵＯＥ）の記憶ノードＳＮＡおよびＳＮＢはビット“１”および“０”をそれぞれ記憶する状態に初期設定される。
【０４７１】
次いで、書込データＢが入力される（ステップＳ３）。このとき、半導体信号処理装置側においては、ＥＭＰＴＹフラグがオンであるかを判定する（ステップＳ４）。フラグＥＭＰＴＹがオン状態のとき、フラグＥＭＰＴＹ（ＭＲＧｉ）の括弧内の領域指定フラグを見て、指定された領域に対する書込にマスクをかける（ステップＳ６）。すなわち、ＥＭＰＴＹ（ＭＲＧ１）等のＥＭＰＴＹフラグにおいて書込マスクが指定された領域（ＥＭＰＴＹフラグの括弧内において指定される）に対しては、データパスブロックの経路がセンスアンプ回路の出力信号を対応のグローバルＢポート書込データ線に伝達するように設定されて、内部の記憶データの読出および再書込（記憶ノードＳＮＢへの再書込）が実行される。
【０４７２】
一方、ＥＭＰＴＹフラグがオフ状態のときには、外部からの書込データが選択されて対応のグローバルＢポート書込データ線に伝達され、書込ワード線アドレスＷＡＤに従って書込Ｂポートワード線ＷＷＬＢを立上げてデータを書込む（ステップＳ５）。
【０４７３】
これらのステップＳ５およびＳ６において、書込が完了すると、この書込アドレスが最終アドレスであるかの判定が行なわれる（ステップＳ７）。まだ最終アドレスに到達していない場合には、アドレスを更新し（ステップＳ８）、ステップＳ３に戻り、次のデータＢを入力する。ここで、アドレス更新は、内部のアドレスカウンタのカウント値を増分することにより行なわれる。
【０４７４】
一方、ステップＳ７において最終アドレスで判定されると、データの書込が完了し、被検索データの書込動作が終了する。
【０４７５】
図８０は、この発明の実施の形態５に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。この図８０において、制御回路８０は、図３１に示す制御回路８０と同様、コマンドデコーダ８１、Ｂポート書込ワード線活性化回路８２、書込制御回路８３、Ａポート書込ワード線活性化回路８４、読出ワード線活性化回路８６を含む。コマンドデコーダ８１は、クロック信号ＣＬＫに同期してコマンドＣＭＤを取込んでデコードし、書込モード指示ＭＯＤＷおよび読出モード指示ＭＯＤＲをアサートする。
【０４７６】
書込制御回路８３は、書込モード指示ＭＯＤＷに従ってデータパスに含まれる書込回路（レベルシフタ）を活性化するデータパスイネーブル信号ＤＰＥＮを生成する。データパスは、図４９に示す構成であり、領域毎に、データ転送経路を入力切換回路により切換えることができる。
【０４７７】
Ｂポート書込ワード線活性化回路８２は、書込モード指示ＭＯＤＷのアサート時、ポートＢ書込ワード線活性化信号ＷＷＬＢＥＮを活性化する。Ａポート書込ワード線活性化回路８４は、検索モードを指示する読出モード指示ＭＯＤＲおよび初期化を指示するモード指示ＭＯＤＩの一方のアサート時、ポートＡ書込ワード線活性化信号ＷＷＬＡＥＮを活性化する。
【０４７８】
制御回路８０は、さらに、図３１に示す制御回路８０と同様、読出ワード線活性化回路８６およびアドレスカウンタ８７を含む。
【０４７９】
読出ワード線活性化回路８６は、読出モード指示信号ＭＯＤＲおよびフラグデコーダ４７４からのマスク書込指示フラグＲＧＭＳのアサート時、ポートＡ読出ワード線活性化信号ＲＷＬＥＮを活性化する。
【０４８０】
フラグデコーダ４７４は、データ書込時に与えられるフラグＥＭＰＴＹ＜ｋ：１＞をデコードし、データ再書込を指定する領域指定信号ＲＧＭＳ＜１＞−ＲＧＭＳ＜ｋ＞を生成する。エンプティフラグＥＭＰＴＹ＜ｋ：１＞は、先の図７８に示すフラグＥＭＰＴＹ（ＭＲＧ１）−ＥＭＰＴＹ（ＭＲＧｋ）に対応し、被検索パターンの非登録領域を示す。ここで、データ格納領域ＲＥＧＰ１−ＲＥＧＰｋに各サブブロックが分割されている場合を想定する。
【０４８１】
アドレスカウンタ８７は、データ書込モード時、カウント動作を行ない、ブロックアドレスＢＡＤおよびワード線アドレス（エントリアドレス）ＡＤ（＝ＷＡＤ）を生成する。データ読出時においては、アドレスカウンタ８７はカウント動作を停止される。これは、検索動作時、選択サブブロックにおいてワード線が、全て選択状態に設定されるためである。
【０４８２】
制御回路８０においては、さらに、読出制御回路４８５、カウンタ４７０、ブロックデコーダ４７２が設けられる。カウンタ４７０は、読出モード指示ＭＯＤＲのアサート時、カウント動作を行ない、カウント値ＣＮＴ＜Ｊ：１＞を生成する。ここで、カウント値Ｊは、データパターン長に応じてサブブロックの読出を行なう回数を示す。
【０４８３】
読出制御回路４８５は、データ書込時、マスク領域指示フラグＲＧＭＳのアサート時、読出ワード線活性化信号ＲＷＬＥＮの活性化に応答して、センスアンプ活性化信号ＳＡＥＮを活性化し、かつデータ線プリチャージ指示ＰＲＥＤＢを非活性化してグローバ読出データ線のプリチャージを停止させる。メインデータ線アンプ活性化信号ＭＡＰＥＮおよび一致判定信号プリチャージ指示信号ＺＰＲＥは、非活性状態のＨレベルに維持される。
【０４８４】
この読出制御回路４８５は、また、読出モード指示ＭＯＤＲのアサート時、読出ワード線活性化信号ＲＷＬＥＮの活性化に従って、センスアンプ活性化信号ＳＡＥＮ、メインでデータ線アンプ活性化信号ＭＡＰＥＮを活性化し、データプリチャージ指示信号ＰＲＥＤＢおよび一致判定信号プリチャージ指示信号を非活性化する。
【０４８５】
ブロックデコーダ４７２は、アドレスカウンタ８７からのブロックアドレスＢＡＤとカウンタ４７０からのカウント値ＣＮＴ＜Ｊ：１＞とを受け、ブロック選択信号ＢＳ＜１＞−ＢＳ＜ｎ＞を生成する。ブロックデコーダ４７２の構成については後に説明するが、データ書込時においては、アドレスカウンタ８７からのブロックアドレス信号ＢＡＤに従ってブロック選択信号ＢＳ＜１＞−ＢＳ＜ｎ＞が生成され、データ読出モード時にはカウンタ４７０からのカウント値ＣＮＴ＜Ｊ：１＞に従ってブロック選択信号ＢＳ＜１＞−ＢＳ＜ｎ＞が生成される。
【０４８６】
この制御回路８０においては、さらにブロック経路設定回路１２２およびローカル選択信号発生回路１８５が設けられる。ブロック経路設定回路１２２は、データ書込モード指示ＭＯＤＷおよびデータ読出モード指示ＭＯＤＲに従って、経路選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞を生成する。
【０４８７】
経路設定回路１２２の構成は、先の実施の形態２において図３１を参照して説明した経路設定回路１２２の構成と同じである。
【０４８８】
ローカル選択信号発生回路１８５は、選択信号ＳＥＬＡ＜１：０＞およびＳＥＬＢ＜１：０＞とフラグデコーダ４７４からの領域指定信号ＲＧＭＳ＜ｋ：１＞に従ってローカル選択信号ＬＳＬＢ１＜１：０＞−ＬＳＬＢｋ＜１：０＞を生成する。このローカル選択信号発生回路１８５の構成は、図５６および図５７に示す構成と同じである。領域指定信号としてフラグデコーダ４７４からの再書込領域指定信号ＲＧＭＳ＜ｋ：１＞が用いられる点が異なるだけである。
【０４８９】
図８１は、図８０に示すブロックデコーダ４７２の構成を概略的に示す図である。図８１において、ブロックデコーダ４７２は、アドレスカウンタ８７からのブロックアドレス信号ＢＡＤをデコードするブロックデコード回路４９０と、図８０に示すカウンタ４７０からのカウント値ＣＮＴ＜Ｊ：１＞とこのブロックデコード回路４９０からのデコードファースト信号ＦＢＳ＜ｎ：１＞とを受けてブロック選択信号ＢＳ＜ｎ：１＞を生成するゲート回路４９２を含む。
【０４９０】
データ書込時においては、ブロック選択信号ＢＳ＜ｎ：１＞は、ブロックアドレス信号ＢＡＤに従って生成される。一方、データ読出モード時（検索動作時）においては、検索回数を示すカウント値ＣＮＴ＜Ｊ：１＞に従ってブロック選択信号ＢＳ＜ｎ：１＞が生成される。
【０４９１】
図８２は、図８１に示すゲート回路４９２の構成の一例を概略的に示す図である。図８２において、ゲート回路４９２は、パターン長Ｌ／２に対応して設けられるＯＲゲートＯＧ（１）−ＯＧ（ｎ／２）と、パターン長Ｌ／４に対応して設けられるＯＲゲートＯＧ（ｎ／２＋１）−ＯＧ（３・ｎ／４）と、…、パターン長Ｌ／ｎに対応して設けられるＯＲゲートＯＧｎを含む。各パターン長に対応してＯＲゲートの組が設けられる。
【０４９２】
ＯＲゲートＯＧ（１）−ＯＧ（ｎ／２）は、ブロックデコード回路４９０からのデコードファースト信号ＦＢＳ＜１＞−ＦＢＳ＜ｎ／２＞とカウント値ＣＮＴ＜１＞とを受け、それぞれブロック選択信号ＢＳ＜１＞−ＢＳ＜ｎ／２＞を生成する。
【０４９３】
ＯＲゲートＯＧ（ｎ／２＋１）−ＯＧ（３・ｎ／４）は、それぞれ、デコードファースト信号ＦＢＳ＜ｎ／２＋１＞−ＦＢＳ＜ｎ／２＋ｎ／４＞とカウント値ＣＮＴ＜２＞とを受け、ブロック選択信号ＢＳ＜ｎ／２＋１＞−ＢＳ＜ｎ／２＋ｎ／４＞を生成する。ＯＲゲートＯＧｎは、カウント値ＣＮＴ＜Ｊ＞とデコード信号ＦＢＳ＜ｎ＞とを受け、ブロック選択信号ＢＳ＜ｎ＞を生成する。ここで、各カウント値およびブロックデコード回路４９０の出力信号ＦＢＳ＜ｎ＋１＞は、選択時Ｈレベルである場合を想定している。
【０４９４】
カウント値ＣＮＴ＜Ｊ：１＞は、Ｊビットのカウント値であり、各検索動作サイクル毎にそのカウント値が１シフト動作により増分されて、ｉ回目の検索サイクルに対応するカウント値ＣＮＴ＜ｉ＞がアサートされる。
【０４９５】
したがって、１回目の検索サイクル時においては、ＯＲゲートＯＧ（１）−ＯＧ（ｎ／２）により、パターン長Ｌ／２のデータパターンについての検索が行なわれ、２回目の検索サイクルにおいては、パターン長Ｌ／４のデータパターンについての検索が行なわれる。最後の検索サイクルにおいては、パターン長Ｌ／ｎのデータパターンについての検索が行なわれる。これにより、検索動作時、各パターン長に対応するサブブロックを選択して、検索動作を行なうことができる。
【０４９６】
図８３は、各サブブロックに対応して設けられるローカル行選択駆動回路の構成を概略的に示す図である。図８３に示すローカル行選択駆動回路４２５．ｉは、サブブロックＳＢｉに対応して設けられ、ローカルＢポート書込ワード線選択駆動回路７２、ローカルＡポート書込ワード線選択駆動回路１２６、およびローカル読出ワード線選択駆動回路４９５を含む。
【０４９７】
ローカルＢポート書込ワード線選択駆動回路７２は、ブロック選択信号ＢＳ＜ｉ＞のアサート時、与えられたアドレス信号ＡＤをデコードし、ポートＢ書込ワード線ＷＷＬＢ１−ＷＷＬＢｍのうちの対応の書込ワード線を選択状態に駆動する。
【０４９８】
ローカルＡポート書込ワード線選択駆動回路１２６は、ポートＡ書込ワード線活性化信号ＷＷＬＡＥＮのアサート時、ブロック選択信号ＢＳ＜ｉ＞が選択状態のときアドレス信号ＡＤをデコードし、ポートＡ書込ワード線ＷＷＬＡ１−ＷＷＬＡｍのうちのアドレス指定された書込ワード線を選択状態へ駆動する。
【０４９９】
ローカル読出ワード線選択駆動回路４９５は、読出ワード線活性化信号ＲＷＬＥＮの活性化時、ブロック選択信号ＢＳ＜ｉ＞とアドレス信号ＡＤに従ってダミー読出ワード線ＤＲＷＬと、ポートＡ読出ワード線ＲＷＬＡ１−ＲＷＬＡｍおよびポートＢ読出ワード線ＲＷＬＢ１−ＲＷＬＢｍを選択状態へ駆動する。すなわち、このローカル読出ワード線選択駆動回路４９５は、データ読出モード指示ＭＯＤＲのアサート時においては、ブロック選択信号ＢＳ＜ｉ＞が選択状態のとき、読出ワード線ＲＷＬＡ１，ＲＷＬＢ１−ＲＷＬＡｍ，ＲＷＬＢｍおよびＤＲＷＬをすべて選択状態に駆動する。これにより、選択されたサブブロックにおいて、検索動作時、すべての読出ワード線を選択状態へ駆動することができる。
【０５００】
データ読出モード指示ＭＯＤＲがネゲート状態であり、データ書込時においてブロック単位での再書込が行なわれる場合には、ローカル読出ワード線選択駆動回路４９５は、図８０に示す読出ワード線活性化回路８６が、読出ワード線活性化信号ＲＷＬＥＮをアサートするため、ブロック選択信号ＢＳ＜ｉ＞およびアドレス信号ＡＤに従って、書込が行なわれるエントリについてデータの再書込を行なう。この場合、データ書込が行われるエントリに対して配置されるポートＡおよびポートＢ読出ワード線ＲＷＬＡおよびＲＷＬＢを選択して、センスアンプ回路およびＢポートグローバル読出データ線を介して選択エントリのマスク領域の記憶ノードＳＮＢに読出データが転送されて、データの再書込が行なわれる。
【０５０１】
図８４は、各領域毎に対して設けられるローカル制御信号発生回路５００の構成を概略的に示す図である。この図８４において、ローカル制御回路５００は、ローカルセンスアンプ活性化信号ＳＡＥＮ＜ｎ：１＞を生成するゲート回路５０２と、データ線アンプ活性化信号ＡＰＥＮ＜ｋ−１：１＞を生成するゲート回路５０４と、読出データ線プリチャージ指示信号ＰＲＥＤＢ＜ｋ−１：１＞を生成するゲート回路５０６と、読出データ線プリチャージ指示信号ＰＲＥＤＢ＜ｋ＞を生成するゲート回路５０７と、データアンプ活性化信号ＡＰＥＮ＜ｋ＞を生成するゲート回路５０８を含む。
【０５０２】
データアンプ活性化信号ＡＰＥＮ＜ｋ＞はパターン長Ｌのデータ格納領域に対して配置されるデータアンプＡＭＰに対する活性化信号である。同様、読出データ線プリチャージ指示信号ＰＲＥＤＢ＜ｋ＞は、パターン長Ｌのデータが格納される領域に対して配置されるグローバル読出データ線のプリチャージゲートに対する指示信号である。
【０５０３】
ゲート回路５０２は、図８０に示す読出制御回路からのセンスアンプ活性化信号ＳＡＥＮとブロック選択信号ＢＳ＜ｎ：１＞とに従って選択されたサブブロックに対するセンスアンプ活性化信号ＳＡＥＮ＜ｎ：１＞を活性化する。
【０５０４】
ゲート回路５０４は、メインデータアンプ活性化信号ＭＡＰＥＮと書込マスク領域指示信号ＲＧＭＳ＜ｋ−１：１＞に従ってデータアンプ活性化信号ＡＰＥＮ＜ｋ−１：１＞を生成する。このゲート回路５０４は書込マスク指示信号ＲＧＭＳ＜ｋ−１：１＞においてアサートされているビットが存在するとき、メインデータアンプ活性化信号ＭＡＰＥＮに従って、データアンプ活性化信号ＡＰＥＮ＜ｋ−１：１＞の対応の活性化信号をアサートする。読出モード指示信号ＭＯＤＲがアサートされているときには、ゲート回路５０４は、メインデータアンプ活性化信号ＭＡＰＥＮに従ってデータアンプ活性化信号ＡＰＥＮ＜ｋ−１：１＞を活性化する。
【０５０５】
ゲート回路５０６は、図８０に示す読出制御回路４８５からのデータパスプリチャージ指示信号ＰＲＥＤＢに従って領域１から領域ｋ−１に対するデータパスプリチャージ指示信号ＰＲＥＤＢ＜ｋ−１：１＞を活性化する。これにより、パターン長Ｌが割当てられた領域以外の領域においては、各検索動作毎に、グローバル読出データ線（ＧＲＤ）が接地電圧レベルにプリチャージされる。
【０５０６】
ゲート回路５０７は、このデータパスプリチャージ指示信号ＰＲＥＤＢとカウント値ＣＮＴ＜Ｊ＞とに従ってデータパスプリチャージ指示信号ＰＲＥＤＢ＜ｋ＞を生成する。したがって、パターン長Ｌのデータ格納領域に対しては、その最終ブロックに対する検索が行なわれた後に、対応の読出データ線がプリチャージされ、それ以外の時には、対応のグローバル読出データ線がプリチャージされない。パターン長Ｌに対する領域ＲＥＧＰｋにおいては、書込時において領域マスクはかけられないため、再書き込みをする必要がなく、対応のグローバル読出データ線がプリチャージされなくても、特に問題が生じない。
【０５０７】
ゲート回路５０８は、カウント値ＣＮＴ＜Ｊ＞とメインデータアンプ活性化信号ＭＡＰＥＮとに従ってデータアンプ活性化信号ＡＰＥＮ＜ｋ＞を生成する。したがって、データ読出時（検索動作時）において、パターン長Ｌ格納領域の最終サブブロックについての検索結果が読出されたときに、領域ＲＥＧＰｋに対するデータアンプＡＭＰが活性化され、パターン長Ｌの検索結果が増幅されて対応の確定回路にラッチされる。この場合、パターン長Ｌの領域において、データの空き領域は存在せず、再書込は行なわれないため、領域指定信号ＲＧＭＳ＜ｋ＞は与えられなくても特に問題はない。
【０５０８】
一致信号確定回路ＭＳＬＴに対しては、プリチャージ指示信号ＺＰＲＥに従って、ゲート回路５０９により、プリチャージ指示信号ＺＰＲＥ＜ｋ：１＞が生成されて、各検索動作完了後に、一致信号確定回路ＭＳＬＴのプリチャージ（リセット）が実行される。
【０５０９】
以上のように、この発明の実施の形態５に従えば、演算子アレイをｋ個の領域に分割し、各分割領域にパターン長の異なるデータパターンを格納し、ある領域においては複数のデータパターンを格納可能としている。また、検索データパターンは領域の列方向に整列して配置されている。したがって、一度の検索サイクルで複数の被検索パターンとの一致／不一致を判定することができ、検索サイクルとして、パターン長の種類の数に応じたクロックサイクルで、全被検索データパターンに対する判定結果を得ることができる。
【産業上の利用可能性】
【０５１０】
この発明に従う半導体信号処理装置は、たとえば不正アクセスを行なうデータパケットなどの不正アクセスデータパターンを識別する侵入検知装置に対して適用することにより、効率的に被検索データパターンを格納して、検索動作を行なう小占有面積の不正パターン検出装置を実現することができる。
【０５１１】
また、この発明に従う半導体信号処理装置は、一般に、入力データパケットにおけるデータパターンの一致を識別する回路に対しても適用することができる。
【符号の説明】
【０５１２】
ＵＯＥ，ＵＯＥＬ，ＵＯＥＲ  演算子セル、ＳＵＴ  記憶単位、ＰＱＡＬ，ＰＱＢＬ，ＰＱＡＲ，ＰＱＢＲ  ＰチャネルＳＯＩトランジスタ、ＮＱＢＬ，ＮＱＡＬ，ＮＱＢＲ，ＮＱＡＲ  ＮチャネルＳＯＩトランジスタ、ＳＮＢＬ，ＳＮＡＬ，ＳＮＢＲ，ＳＮＡＲ，ＳＮＡ，ＳＮＢ  記憶ノード、ＳＡＫＬ，ＳＡＫＲ，ＳＡＫ  センスアンプ回路、ＭＬ  ローカルマッチ線、ＤＵＥ  ダミーセル、ＲＴＵ（１，１）−ＲＴＵ（１，２＾ｋ）−ＲＴＵ（ｎ，１）−ＲＴＵ（ｎ，２＾ｋ）  検索単位、ＳＢ１−ＳＢｎ  サブブロック、ＬＭＤ１−ＬＭＤｎ  ローカル一致判定回路、ＧＭＤ  グローバル一致判定回路、３０  パターン長レジスタ回路、ＭＬ１−ＭＬ２＾ｋ  ローカルマッチ線、ＥＲＹ１−ＥＲＹｍ  エントリ、ＳＡ♯Ａ−ＳＢ♯Ｃ  サブブロック、５２ａ  Ｌ選択マスク回路、５２ｂ  Ｒ選択マスク回路、５３  インバータ、５４ａ−５４ｄ  レベルシフト回路、６０  入力シフトレジスタ回路、ＡＭＰ，ＡＭＰ１−ＡＭＰ２＜ｋ  データ頒布、７０  ローカル行選択駆動回路、８０  制御回路、ＴＸ１１，ＴＸ１２，ＴＸ２１，ＴＸ２２  経路切換用スイッチングトランジスタ、１０２ａ−１０２ｄ  マルチプレクサ、１００Ｌ，１００Ｒ  データパスアンプ、１１０  読出ポインタ、１１２  書込ポインタ、１１４  ポインタ制御論理、ＳＡＢ  センスアンプ帯、ＴＸＧＢ  経路切換回路帯、１５０  データパスアンプ、１５２，１５４  マッチプレクサ、１６０  アドレス発生回路、ＩＳＫｊ，ＩＳＫｊｘ  入力切換回路、１８０  領域デコード回路、１８５  ローカル選択信号発生回路、２１０  ローカル一致フラグ格納回路、２１２ａ−２１２ｆ  インバータ、ＲＧＫｉ  レジスタ回路、２１４ａ−２１４ｆ  レジスタ、２２４ａ−２２４ｆ  アンプ、４００  Ｂポート書込回路、４１０  Ａポート書込回路、４２０  行選択駆動回路、４３０  一致判定回路、４２５．１−４２５．ｎ  ローカル行選択駆動回路、ＯＵＥＣＬ，ＯＵＥＣＲ  演算子セル列、ＡＭＰ１Ｌ，ＡＭＰ１Ｒ−ＡＭＰｋＬ，ＡＭＰｋＲ  データパスアンプ、ＮＧ１１，ＮＧ２１，ＮＧｋ１  ＮＯＲゲート、ＭＳＬＴ１１，ＭＳＬＴ２１，ＭＳＬＴｋ１，ＭＳＬＴ  判定信号確定回路、ＲＡＧＰ１−ＲＡＧＰｋ  領域、ＲＡＴＭ１，ＲＡＴＭ２  ｎビット検索単位、４７０  カウンタ、４７２  ブロックデコーダ、４７４  フラグデコーダ、４９０  ブロックデコード回路、４９２  ゲート回路、５００  ローカル読出制御信号発生回路。
【図１】
0005584895.tif 000002
【図２】
0005584895.tif 000003
【図３】
0005584895.tif 000004
【図４】
0005584895.tif 000005
【図５】
0005584895.tif 000006
【図６】
0005584895.tif 000007
【図７】
0005584895.tif 000008
【図８】
0005584895.tif 000009
【図９】
0005584895.tif 000010
【図１０】
0005584895.tif 000011
【図１１】
0005584895.tif 000012
【図１２】
0005584895.tif 000013
【図１３】
0005584895.tif 000014
【図１４】
0005584895.tif 000015
【図１５】
0005584895.tif 000016
【図１６】
0005584895.tif 000017
【図１７】
0005584895.tif 000018
【図１８】
0005584895.tif 000019
【図１９】
0005584895.tif 000020
【図２０】
0005584895.tif 000021
【図２１】
0005584895.tif 000022
【図２２】
0005584895.tif 000023
【図２３】
0005584895.tif 000024
【図２４】
0005584895.tif 000025
【図２５】
0005584895.tif 000026
【図２６】
0005584895.tif 000027
【図２７】
0005584895.tif 000028
【図２８】
0005584895.tif 000029
【図２９】
0005584895.tif 000030
【図３０】
0005584895.tif 000031
【図３１】
0005584895.tif 000032
【図３２】
0005584895.tif 000033
【図３３】
0005584895.tif 000034
【図３４】
0005584895.tif 000035
【図３５】
0005584895.tif 000036
【図３６】
0005584895.tif 000037
【図３７】
0005584895.tif 000038
【図３８】
0005584895.tif 000039
【図３９】
0005584895.tif 000040
【図４０】
0005584895.tif 000041
【図４１】
0005584895.tif 000042
【図４２】
0005584895.tif 000043
【図４３】
0005584895.tif 000044
【図４４】
0005584895.tif 000045
【図４５】
0005584895.tif 000046
【図４６】
0005584895.tif 000047
【図４７】
0005584895.tif 000048
【図４８】
0005584895.tif 000049
【図４９】
0005584895.tif 000050
【図５０】
0005584895.tif 000051
【図５１】
0005584895.tif 000052
【図５２】
0005584895.tif 000053
【図５３】
0005584895.tif 000054
【図５４】
0005584895.tif 000055
【図５５】
0005584895.tif 000056
【図５６】
0005584895.tif 000057
【図５７】
0005584895.tif 000058
【図５８】
0005584895.tif 000059
【図５９】
0005584895.tif 000060
【図６０】
0005584895.tif 000061
【図６１】
0005584895.tif 000062
【図６２】
0005584895.tif 000063
【図６３】
0005584895.tif 000064
【図６４】
0005584895.tif 000065
【図６５】
0005584895.tif 000066
【図６６】
0005584895.tif 000067
【図６７】
0005584895.tif 000068
【図６８】
0005584895.tif 000069
【図６９】
0005584895.tif 000070
【図７０】
0005584895.tif 000071
【図７１】
0005584895.tif 000072
【図７２】
0005584895.tif 000073
【図７３】
0005584895.tif 000074
【図７４】
0005584895.tif 000075
【図７５】
0005584895.tif 000076
【図７６】
0005584895.tif 000077
【図７７】
0005584895.tif 000078
【図７８】
0005584895.tif 000079
【図７９】
0005584895.tif 000080
【図８０】
0005584895.tif 000081
【図８１】
0005584895.tif 000082
【図８２】
0005584895.tif 000083
【図８３】
0005584895.tif 000084
【図８４】
0005584895.tif 000085