[実施の形態1]
図1は、この発明の実施の形態1に従う半導体信号処理装置において利用される基本構成要素の記憶単位の電気的等価回路を示す図である。図1において、記憶単位SUTは、2つの演算子セルUOELおよびUOERを含む。左側演算子セルUOELは、2つのPチャネル電界効果トランジスタPQALおよびPQBLと、2つのNチャネル電界効果トランジスタNQALおよびNQBLとを含む。
Nャネル電界効果トランジスタ(第1および第2のトランジスタ)NQALおよびNQBLは、SOI(Silicon On Insulator)トランジスタで構成され、ソース線SLとビット線BLLの間に直列に接続される。SOIトランジスタは、絶縁膜上に形成され、ボディ領域は、本発明においては、素子間で分離される。これらのSOIトランジスタNQALおよびNQBLそれぞれのボディ領域が、記憶ノードSNBLおよびSNALとして用いられる。すなわち、この記憶ノードSNALおよびSNBLの電位状態に応じて、これらのトランジスタNQALおよびNQBLのしきい値電圧が異なり、このしきい値電圧が記憶情報(データ)に対応付けられる。
Pチャネル電界効果トランジスタPQBLおよびPQALも、SOIトランジスタで構成される。PチャネルSOIトランジスタPQBLは、導通時、書込BポートWPRTBLから伝達される書込データ/Bを、NチャネルSOIトランジスタNQBLの記憶ノードSNBLへ伝達する。PチャネルSOIトランジスタPQALは、導通時、書込AポートWPRTALに与えられる書込データAを、NチャネルSOIトランジスタNQALの記憶ノードSNALへ伝達する。以下、演算子セルのトランジスタを、SOIトランジスタと称す。
右側演算子セルUOERは、左側演算子セルUOELと同様、2つのPチャネルSOIトランジスタPQARおよびPQBRと、2つのNチャネルSOIトランジスタNQARおよびNQBRとを含む。NチャネルSOIトランジスタNQARおよびNQBRは、ソース線SLとビット線BLRの間に直列に接続される。
PチャネルSOIトランジスタPQARは、導通時、書込AポートWPRTARに与えられる書込データ/AをNチャネルSOIトランジスタNQARの記憶ノードSNARに伝達する。PチャネルSOIトランジスタPQBRは、導通時、書込BポートBPRTBRに与えられる書込データBをNチャネルSOIトランジスタNQBRの記憶ノードSNBRに伝達する。
PチャネルSOIトランジスタPQALおよびPQARのゲートは、共通に、行方向に延在するAポート書込ワード線WWLAに結合され、PチャネルSOIトランジスタPQBLおよびPQBRのゲートが、共通に、行方向に延在するBポート書込ワード線WWLBに接続される。NチャネルSOIトランジスタNQBLおよびNQBRのゲートが、共通に、行方向に延在するBポート読出ワード線RWLBに結合され、NチャネルSOIトランジスタNQALおよびNQARのゲートが、共通に、行方向に延在するAポート読出ワード線RWLAに結合される。
書込ワード線WWLAおよびWWLBを選択的に選択状態に駆動することにより、ポートAからの書込データAおよび/A、およびポートBからの書込データ/BおよびBのそれぞれが、ポートA記憶ノードSNAL,SNARおよびポートB記憶ノードSNBL,SNBRに書込むことができる。
データ読出時においては、読出ワード線RWLBおよびRWLAをともに選択状態に駆動する。ソース線SLとビット線BLLの間およびソース線SLとビット線BLRの間に、演算子セルUOELおよびUOERの記憶データに応じた電流が流れる。ビット線BLLおよびBLRそれぞれの電流を図示しないセンスアンプ回路で検知して、演算子セルUOELおよびUOERのデータの読出を行う。
図2は、図1に示す記憶単位SUTの平面レイアウトを概略的に示す図である。図2において、演算子セルUOELの形成領域において、Y方向に長い矩形形状の活性領域1al、1blおよび1clが互いにY方向において位置をずれせかつ互いに隣接して配置される。活性領域1alおよび1clは、P型活性領域であり、活性領域1blは、N型活性領域である。N型活性領域1blが、P型活性領域1alおよび1clの間に配置されている。
右側演算子セルUOERの形成領域においても、同様、Y方向に長い矩形形状のP型活性領域1ar、N型活性領域1brおよびP型活性領域1crが互いにY方向において位置をずれさせ、かつX方向に互いに隣接して配置される。これらの演算子セルUOELおよびUOERは、同じレイアウトパターンを有する。ここで、P型活性領域1alおよび1arにおいて,N型活性領域1blおよび1brに隣接する領域の不純物濃度は低くされ(P−不純物領域が設けられ)、一方、コンタクト5al、5dl、5ar、および5drが形成される領域の不純物濃度は高くされる(P+不純物領域が設けられる)。
X方向に延在して活性領域1al,1ar,1bl,1brを横切るように導電線2aおよび2bが、互いに間をおいて配置される。これらの導電線2aおよび2bは、ポートB書込ワード線WWLBおよびポートB読出ワード線RWLBを構成する。この、導電線2aおよび2bの間にソース線SLを構成する導電線3が配置される。導電線3は、活性領域1blおよび1brに形成されるコンタクト5blおよび5brを介して活性領域1blおよび1brに電気的に接続される。
また、活性領域1cl,1bl,1crおよび1brを横切るようにX方向に連続的に延在してポートA読出ワード線RWLAを構成する導電線2cが配置され、また、活性領域1clおよび1crを横切るようにX方向に延在してかつ導電線2cと離れてポートA書込ワード線WWLAを構成する導電線2dが配置される。
活性領域1alおよび1arの書込ワード線WWLBの下部領域においては、N型ボディ領域が配置され、読出ワード線RWLB下部の領域においては、ボディ領域は設けられず、P−がた不純物領域が連続して延在して配置される。P型活性領域1alおよび1arは、それぞれ、PチャネルSOIトランジスタPQBLおよびPQBRを構成する。
活性領域1clおよび1crにおいては、ポートA書込ワード線WWLA下部の領域において、N型ボディ領域が形成され、ポートA読出ワード線下部の領域においては、P−型不純物領域が配置される。これらの活性領域1clおよび1crそれぞれに、PチャネルSOIトランジスタPQALおよびPQARが形成される。
活性領域1blに、N型SOIトランジスタNQBLおよびNQALが形成され、活性領域1brに、N型SOIトランジスタNQARおよびNQBRが形成される。活性領域1blおよび1brの読出ワード線RWLBおよびRWLAの下部の領域それぞれにおいては、P型ボディ領域が設けられ、これらのボディ領域が、隣接して配置されるP型活性領域1al、1ar、1cl、および1crのPー型不純物領域と電気的に接続されて、記憶ノードSNAL、SNBL、SNAR、およびSNBRをそれぞれ構成する。
導電線2cおよび2dの間に、活性領域1blおよび1brそれぞれに対しコンタクト5clおよび5crが設けられ、活性領域1clおよび1crのY方向の端部においてコンタクト5dlおよび5drがそれぞれ設けられる。
導電線2a−2dよりも上層の導電線6a−6fが、Y方向に連続的に延在してかつ互いに間をおいて配置される。導電線6aは、書込AポートWPRTALを構成し、コンタクト5dlを介して活性領域1clの高濃度P型不純物領域(P+型不純物領域)に結合される。導電線6bは、ビット線BLLを構成し、コンタクト5clを介して活性領域1blに電気的に結合される。導電線6cは、書込BポートWPRTBLを構成し、コンタクト5alを介して活性領域1alの高濃度P型不純物領域に結合される。導電線6dは、書込AポートWPRTARを構成し、コンタクト5drを介して活性領域1crに結合される。導電線6eは、ビット線BLRを構成し、コンタクト5crを介して活性領域1brに結合される。導電線6fは、書込BポートWPRTBRを構成し、コンタクト5arを介して活性領域1arの高濃度P型不純物領域に結合される。
図3は、図2に示す記憶単位SUTの演算子セルUOELおよびUOERにおける活性領域の不純物領域の配置を概略的に示す図である。これらの演算子セルUOELおよびUOERは、同一構造を有するため、図3においては、1つの演算子セルUOE(UOEL,UOER)の活性領域の平面レイアウトを概略的に示す。
図3において、活性領域1a(1ar,1al)は、高濃度P型不純物領域10aおよび低濃度P型不純物領域10bと、これらの不純物領域10aおよび10bの間のN型不純物領域11aを含み、SOIトランジスタPQB(PQBL、PQBR)を構成する。N型不純物領域11aと交差するように、書込Bポートワード線WWLBが配置され、N型不純物領域11aは、このSOIトランジスタPQB(PQBL、PQBR)のボディ領域を構成する。
活性領域1b(1br,1bl)は、互いに離れて配置されるN型不純物領域12a、12bおよび12cと、不純物領域12aおよび12bの間のP型ボディ領域13aと、不純物領域12bおよび12cの間のP型ボディ領域13bとを含む。このボディ領域13aが、記憶ノードSNBを構成し、ボディ領域13bが記憶ノードSNAを構成する。これらのボディ領域13aおよび13bと交差するように、読出ワード線RWLBおよびRWLAがそれぞれ配置される。活性領域1bにおいて、直列接続されるN型SOIトランジスタNQBおよびNQAが形成される。
N型不純物領域12aおよびP−型不純物領域10bは互いに隣接して配置されるものの、このN型不純物領域12aはソース線SLに結合され、例えば電源電圧レベルの所定の電圧レベルに維持され、不純物領域12aおよび10bの間のPN接合は非導通状態(逆バイアス状態)に維持される。N型不純物領域12bとP−型不純物領域10bが隣接する領域およびP−型不純物領域(ボディ領域)10bとN型不純物領域12bにおいては、書込データの電圧レベルが、それらの間のPN接合が逆バイアス状態となる電圧レベルに設定され、これらの間のPN接合が導通するのは防止される。
活性領域1c(1cr,1cl)は、互いに離れて配置されるP−型不純物領域10dおよび高濃度P+型不純物領域10cと、これらの不純物領域10cおよび10dの間のN型ボディ領域11bを含む。ボディ領域11bと交差するようにポートA書込ワード線WWLAが配設される。
この活性領域1cにおいても、P−型不純物領域10dが、N型不純物領域12bおよび12cと隣接して配置される。P型不純物領域10cが、書込AポートWPRTAに結合され、N型不純物領域12cがビット線BLに結合される。上述のように、書込AポートWPRTAから与えられる書込データのハイレベルは、P−型不純物領域10dおよびN型不純物領域12bおよび12cの間のPN接合を非導通状態に維持する電圧レベルである。
N型ボディ領域11b上に、書込Aポートワード線WWAが配設される。記憶ノードSNAおよびSNBを構成するボディ領域13bおよび13a上には、読出ワード線RWLAおよびRWLBがそれぞれ配設される。
これらの活性領域1a、1bおよび1cが、図示しない絶縁膜上に形成され、記憶ノードSNAおよびSNBをそれぞれ構成するボディ領域13aおよび13bには、電荷を蓄積することができる。SOIトランジスタのボディ領域は、通常のバルクMOSトランジスタ(半導体基板表面に形成されるMOSトランジスタ(絶縁ゲート型電界効果トランジスタ))の基板領域に対応する。したがって、SOIトランジスタNQA(NQAL,NQAR)およびNQB(NQBL,NQBR)において、それぞれのボディ領域13aおよび13bの電圧レベルに応じてそのしきい値電圧が異なる。
すなわち、NチャネルSOIトランジスタNQAおよびNQBにおいて、ボディ領域13aおよび13bの電位が高い場合、SOIトランジスタNQAおよびNQBのバックゲート−ソース間がPN接合のビルトイン電圧以下の電圧レベルで正方向にバイアスされ、これらのSOIトランジスタNQAおよびNQBのしきい値電圧が低くなる。一方、NチャネルSOIトランジスタNQAおよびNQBのボディ領域13aおよび13bの電位が低い場合には、それぞれのしきい値電圧が高くなる。
したがって、これらのSOIトランジスタNQAおよびNQBは、そのボディ領域13aおよび13bの電位に従って情報を記憶することができる。また、SOIトランジスタNQAおよびNQBのボディ領域13aおよび13bは、絶縁膜上に形成され、スタンバイ時において(書込ワード線WWA,WWBの非選択状態のとき)、他の領域から分離されており、電源遮断時においてもデータを記憶することができる。
SOIトランジスタPQAおよびPQBのボディ領域13aおよび13bの電位は、書込ポートWPRTBおよびWPRTAを介して与えられる書込データB(または/B)およびA(または/A)の電位レベルにより設定される。したがって、データを書込むライトドライバ(本図においては図示せず)の電源電圧等を調整することにより、これらの記憶ノードSNBおよびSNAの電位を、PN接合ビルトイン電圧以下のレベルになるように設定することができ、記憶データに応じて確実に、SOIトランジスタNQAおよびNQBのしきい値電圧を設定することができる。
また、P型不純物領域10bおよび10dの不純物濃度は、NチャネルSOIトランジスタNQAおよびNQBのボディ領域を構成するP型不純物領域13aおよび13bと同程度の不純物濃度に設定される。これにより、不純物領域12a、12bおよび10bの間のPN接合および不純物領域10および12b、12cの間のPN接合のリーク電流を低減して、記憶データの保持特性が劣化するのを防止する。
図4は、1つの演算子セルの書込データ(記憶データ)としきい値電圧とビット線読出電流の関係を一覧にして示す図である。図4においては、この記憶用SOIトランジスタが高しきい値電圧状態のときに、データ“0”が書込まれている状態に対応付ける。データ“1”が書込まれている場合、SOIトランジスタNQAおよびNQBのしきい値電圧は低い状態である。したがって、SOIトランジスタNQAおよびNQB各々のとる状態は、2つの状態が存在し、SOIトランジスタNQALおよびNQBLの状態の組合せとして合計4つ存在する。
読出ワード線RWLAおよびRWLBを並行して選択状態へ駆動した場合、ソース線SLからビット線BLに、SOIトランジスタNQAおよびNQBの記憶データに応じた電流が流れる。この場合、ソース線SLを例えば電源電圧レベルに設定した場合、SOIトランジスタNQAおよびNQBがともに低しきい値電圧状態のときにセル電流(ビット線読出電流)ICELが一番大きくなる。それ以外の状態においては、SOIトランジスタNQAおよびNQBの少なくとも一方が、高しきい値電圧状態であり、ソース線SLからビット線BLへ流れる電流は少なくなる。すなわち、ビット線BLへ流れるセル電流ICELが大きい状態をデータ“1”に対応付けると、演算子セルUOEにおいては、選択時、記憶ノードSNAおよびSNBの記憶データのAND演算結果を示す電流が流れる。
図5は、図1に示す記憶単位SUTの書込データ、記憶データおよびセル電流(ビット線読出電流)の関係を一覧にして示す図である。データAおよびBは、それぞれ“0”および“1”のいずれかをとる。記憶ノードSNALおよびSNBLには、それぞれデータAおよび/Bが格納され、記憶ノードSNARおよびSNBRには、データ/AおよびBがそれぞれ格納される。
図4に示す演算子セルUOEの状態の拡張により、演算子セルUOELのセル電流ICELLは、データAおよびBがそれぞれ“1”および“0”のときに大きくなり、それ以外のときには小さくなる。同様、演算子セルUOERにおいては、データAおよびBがそれぞれ“0”および“1”のときに、セル電流ICELRが大きくなり、それ以外のときには、セル電流ICELRは小さくなる。
したがって、データAおよびBの論理値が等しいときに、セル電流ICELLおよびICELRが、ともに最も小さい状態になる。データAおよびBが不一致のときには、演算子セルUOELおよびUOERの一方から大きな電流がビット線に供給される。したがって、2つの演算子セルを記憶単位として、対応するトランジスタに相補データを格納する。データを読出して、セル電流がICELLおよびICELRが、ともに小さいときに、データAおよびBが一致していると判定でき、たとえば、データBを被検索データ(登録データ)に対応付け、データAを検索データとすると、検索データと被検索データの一致/不一致を判定することができる。
図6は、この発明の実施の形態1に従う半導体信号処理装置の記憶単位の演算子セルのデータ読出に関連する部分の構成を概略的に示す図である。図6において、演算子セルアレイにおいて、記憶単位SUTが行列状に配列される。図6においては、1つの記憶単位SUTを代表的に示す。この記憶単位SUTは、前述のように、演算子セルUOELおよびUOERを含む。
演算子セルUOELおよびUOERが、それぞれ、ビット線BLLおよびBLRに結合される。ビット線BLLおよびBLRに対してセンスアンプ回路SAKLおよびSAKRがそれぞれ設けられる。センスアンプ回路SAKLおよびSAKRは、それぞれ対応して設けられるダミーセルDUEが供給する電流を参照電流として、対応のビット線BLLおよびBLRを流れる電流に応じた信号を生成する。このセンスアンプ回路SAKLおよびSAKRは、ビット線BLLおよびBLRを流れる電流が、ダミーセルDUEが供給する参照電流(Iref)より大きい場合に、対応して配置されるローカル読出データ線LRDLおよびLRDRに電流を供給し、そうでないときには、対応のローカル読出データ線LRDLおよびLRDRに対する電流供給を停止する。
これらのローカル読出データ線LRDLおよびLRDRは、演算子セルアレイに共通に設けられるローカルマッチ線MLにワイヤードOR接続される。ビット線BLLおよびBLRの読出電流はダミーセルDUEの供給する参照電流よりも大きい状態は、図5に示すように、データAおよびBが不一致の状態である。このときに、ローカル読出データ線LRDLおよびLRDRに電流を供給する。したがって、データAおよびBが不一致のときに、ローカルマッチ線MLは、対応のセンスアンプ回路から電流が供給されその電位レベルが上昇する。このローカルマッチ線MLの電位を検出して、データAおよびBの一致/不一致を検出する。
図7は、図6に示すダミーセルDUEの構成の一例を示す図である。図7において、ダミーセルDUEは、基準電源ノードVREFと参照ビット線BLBの間に直列に接続されるNチャネルSOIトランジスタNT1およびNT2と、ダミー書込ワード線DWWL上の信号に従って、SOIトランジスタNT1およびNT2のボディ領域に接地電圧(0V)を伝達するPチャネルSOIトランジスタPT1およびPT2を含む。参照ビット線BLBは、各ビット線に対応して設けられ、対応のセンスアンプ回路に結合される。
演算子セルUOELおよびUOERにおいて記憶ノードSNAおよびSNBの電位は、データ“0”を記憶する状態のときには負電圧レベルであり、一方、データ“1”を記憶する場合にはPN接合ビルトイン電圧よりも低い正の電圧である。ここで、NチャネルSOIトランジスタのしきい値電圧が高い状態をデータ“0”を記憶する状態に対応付け、しきい値電圧の低い状態をデータ“1”を記憶する状態に対応付ける。
ダミーセルDUEにおいては、SOIトランジスタNT1およびNT2のボディ領域の電位を接地電圧(0V)に設定する。ダミー読出ワード線DRWLの選択時、ダミーセルのSOIトランジスタNT1およびNT2を導通状態として、参照ビット線BLBに参照電流を供給する。基準電源ノードVREFから供給される参照電流Irefは、データ“0”および“1”記憶時の中間の参照電流レベルに設定される。参照電流Irefは、基準電圧源の基準電圧VREFの電圧レベルを調整することにより、正確に、演算子セルUOERおよびUOELの供給する電流の中間値に設定することができる。
図8は、図7に示すダミーセルDUEを用いた場合のビット線電流およびビット線読出電位を概略的に示す図である。ビット線BLには、演算子セルUOE(UOEL,UOER)からの読出電流(セル電流ICEL)が供給され、一方、参照ビット線BLBには、ダミーセルDUEからの参照電流Irefが供給される。参照電流Irefは、ダミーセルからのデータ“0”および“1”それぞれのセル電流ICELの中間の電流である。ビット線BLおよびBLBの電位または電流を、対応のセンスアンプ回路で比較するまたは差動増幅することにより、記憶ノードのデータが(1,1)場合とそれ以外の場合とを識別することができる。
すなわち、記憶ノードSNAおよびSNBにデータ“1”がそれぞれ格納されている場合およびデータ“0”が記憶されている場合、図5に示すように、データAおよびBは不一致である。記憶単位SUTにおいて2つの演算子セルUOELおよびUOERを利用して相補データを格納する。データAおよびBが不一致の場合、演算子セルUOELおよびUOERのいずれかが一致を示し、参照電流Irefよりも大きなセル電流を供給する。記憶単位SUTにおいては、演算A・/B+/A・Bの結果が、センスアンプ回路SAKLおよびSAKRを介して対応のローカルマッチ線LMに伝達される。この演算は、EXOR演算であり、データAおよびBの不一致検出処理と等価である。これにより、ローカルマッチ線LMの電位を識別することにより、正確に、データAおよびBの一致/不一致を識別することができる。
図9は、図6に示すセンスアンプ回路の構成の一例を概略的に示す図である。センスアンプ回路SAKLおよびSAKRは同一構成を有するため、図9においては、これらをセンスアンプ回路SAKで代表的に示す。
図9において、センスアンプ回路SAKは、ビット線BLおよびBLBの電流ICELおよびIrefを差動増幅する電流検出型センスアンプ20と、電流検出型センスアンプ20の出力信号を増幅するクロックカップル型2次センスアンプ22と、ドライバアンプ22の出力信号に従ってローカル読出データ線LRDに電流を供給する電流供給回路24を含む。
電流検出型センスアンプ20は、ビット線BLを流れるセル電流ICELのミラー電流を生成するカレントミラー段を構成するNチャネルMOSトランジスタNT10およびNT11と、参照ビット線BLBを流れる参照電流Irefのミラー電流を生成するカレントミラー段を構成するNチャネルMOSトランジスタNT13およびNT14と、MOSトランジスタNT11およびNT14それぞれに電流を供給するPチャネルMOSトランジスタPT10およびPT12と、MOSトランジスタPT10およびPT12それぞれとカレントミラー段を構成するPチャネルMOSトランジスタPT11およびPT13と、MOSトランジスタNT10およびNT13それぞれとカレントミラー段を構成するNチャネルMOSトランジスタNT12およびNT15と、ビット線BL及びBLBを流れる電流をそれぞれ調整するPチャネルMOSトランジスタPT14およびPT15と、電流検出型センスアンプ20をセンスアンプ活性化信号SAENに従って活性化するPチャネルMOSトランジスタPT16を含む。
MOSトランジスタNT10は、そのゲートおよびドレインが、MOSトランジスタPT14を介してビット線BLに結合され、カレントミラー段のマスタとして動作し、動作時、ビット線BLからMOSトランジスタPT14を介して供給されるセル電流ICELのミラー電流を、MOSトランジスタNT11に流す。MOSトランジスタNT12は、センスアンプ活性化信号SAENの活性化時、MOSトランジスタPT13から電流を供給される。
MOSトランジスタNT13は、ゲートおよびドレインが相互接続されるとともにMOSトランジスタPT15を介して参照ビット線BLBに結合され、カレントミラー段のマスタとして動作し、センスアンプ活性化信号SAENの活性化時、MOSトランジスタNT14に、MOSトランジスタPT15を介して与えられる参照電流Irefのミラー電流を流す。MOSトランジスタNT15は、センスアンプ活性化信号SAENの活性化時、MOSトランジスタPT11から電流を供給される。
MOSトランジスタPT11は、ソースが電源ノード(VCC)に結合され、そのゲートおよびドレインが、MOSトランジスタNT14のドレインに結合されて、カレントミラー段のマスタとして動作し、MOSトランジスタNT14を流れる電流のミラー電流をMOSトランジスタPT10に流す。MOSトランジスタPT10は、電源ノード(VCC)からMOSトランジスタNT11に電流を供給する。
MOSトランジスタPT14およびPT15は、ゲートに定電圧VPを受けて、ビット線電流ICELおよびIrefの急激な変化を抑制するとともに、ソースフォロア動作により、ビット線BLおよびBLBの電位が必要以上に上昇するのを防止する。
MOSトランジスタPT16は、センスアンプ活性化信号SAENの活性化時オン状態となり、電源ノードから電流をMOSトランジスタPT10−PT13に供給する。また、MOSトランジスタNT10−NT15は、それぞれのソースがロー側電源ノードVDDNに結合される。
電源ノードの電圧VDD2は調整可能な電圧レベルであり、また、センスアンプのロー側電源ノードに与えられる電圧VDDNも0V以下の調整可能な電圧レベルを有する。
これらの電圧VDD2、VDDNおよびVPを用いることにより、ビット線電流に応じてセンスアンプ20を飽和領域で確実に動作させる。すなわち、演算子セルに書込まれたデータの保持特性を改善するために、ソース線SLに中間電圧VDD/2を印加する場合が考えられる。この条件のときには、ロー側電源電圧VDDNをーVDD/2の負電圧、ハイ側電源電圧VDD2をVDD/2の正の中間電圧レベルに設定してセンスアンプ20を動作させてカレントミラー段の飽和領域動作を保障する。また、ビット線BLおよびBLBのプリチャージ電圧レベルを所望のレベル(例えば接地電圧)に設定することができる。
センスアンプ20の出力信号(中間センス信号)SOTおよび/SOTは、MOSトランジスタPT11およびNT15の接続ノードおよびMOSトランジスタPT13およびNT12の接続ノードから生成される。
2次センスアンプ22は、クロスカップル型センスアンプで構成され、センスアンプ20からの相補中間センス信号SOTおよび/SOTを反転差動増幅して、電源電圧VDDおよび接地電圧GNDレベルの相補最終センス信号SOUT信号および/SOUTを生成する。すなわち、2次センスアンプ22は、中間センス信号SOTが補の中間センス信号/SOTよりも高い場合には、最終センス信号SOUTをLレベルに設定し、逆の場合には、最終センス信号SOUTをHレベルに設定する。
電流供給回路24は、2次センスアンプ22の出力信号SOUTに従って電源ノードからローカル読出データ線LRDに電流ISAを供給するNチャネルMOSトランジスタNT16を含む。この電流供給回路24は、2次センスアンプ22の出力信号がHレベルのときに対応のローカル読出データ線LRDに電流を供給する。2次センスアンプ22は、センスアンプ回路SAKの非活性化時、その出力信号SOUTはLレベルに維持する。この状態においては、電流供給回路24のMOSトランジスタNT16は、オフ状態である。電流供給回路24の電源ノードVCCの電圧レベルは、電源電圧VDDまたはVDD2と同一電圧レベルであってもよく、また、異なる電圧レベルであってもよい。電流供給回路24におけるMOSトランジスタNT16がオン状態のときに供給する電流ISAの大きさに応じて、適切な電圧レベルに設定されればよい。
なお、2次センスアンプ22の最終センス信号SOUTが電流供給回路24に与えられ、補の最終センス信号/SOUTは利用されていない。2次センスアンプ22の出力負荷を信号SOUTおよび/SOUTについて同一とするために、補の最終センス信号/SOUTが、ダミーのNチャネルMOSトランジスタのゲートに与えられてもよい。
また、図9に示すセンスアンプ回路SAKにおいて、各トランジスタは、SOIトランジスタで構成されてもよく、また、バルクトランジスタで構成されてもよい。次に、センスアンプ回路SAKの動作について説明する。
スタンバイ状態時においては、ビット線BLおよびBLBならびにローカル読出データ線LRDは、図示しないプリチャージ回路により、接地電圧(GND:0V)レベルにプリチャージされる。センスアンプ活性化信号SAENは、Hレベルであり、MOSトランジスタPT16はオフ状態である。この状態においては、中間センス信号SOTおよび/SOTは、MOSトランジスタNT15およびNT12により、ともにロー側電源電圧VSSレベルに維持される。応じて、2次センスアンプ22の出力信号SOUTは、Lレベルであり、電流供給回路24のMOSトランジスタNT16が、オフ状態であり、ローカル読出データ線LRDには電流は供給されない。
なお、スタンバイ状態時において、最終センス信号SOUTを確実にLレベルに維持するために、2次センスアンプ22に対して最終センス活性化信号が与えられて、2次センスアンプ22をスタンバイ時には、Lレベルの信号を出力するように構成されてもよい。
読出動作が始まると、読出ワード線(RWLA、RWLB)が並行して選択状態に駆動される。応じて、ビット線BLおよびBLBにセル電流ICELおよび参照電流Irefがそれぞれ流れ、ビット線BLの電位がセル電流ICEL(ICELL,ICELR)に応じて変化する。
次いで、所定のタイミングで、センスアンプ活性化信号SAENが活性化される。応じて、MOSトランジスタPT16がオン状態に設定され、電流検出型センスアンプ20のセンス動作がイネーブルされる。センス動作時においては、MOSトランジスタNT11には、ビット線BLから供給されるセル電流ICELのミラー電流が流れ、MOSトランジスタNT14には、参照ビット線BLBを流れる参照電流Irefのミラー電流が流れる。ここで、電流検出型センスアンプ20において、カレントミラー段のミラー比は、全て1とする。また、センスアンプ20の活性化のタイミングは、ビット線にセル電流が読出される前のタイミングであってもよく、また、ビット線電流が安定化してからであってもよい。
MOSトランジスタPT10およびPT11においては、MOSトランジスタPT10がカレントミラー段のマスタとして動作する。MOSトランジスタPT10が、参照電流Irefのミラー電流をMOSトランジスタNT11へ供給しており、MOSトランジスタPT11には、従って、セル電流ICELのミラー電流が流れる。MOSトランジスタPT10が、参照電流Irefのミラー電流をMOSトランジスタNT11へ供給する。一方、MOSトランジスタPT12がMOSトランジスタNT14に対して参照電流Irefのミラー電流を供給している。したがって、MOSトランジスタPT13には、参照電流Irefのミラー電流が流れる。
MOSトランジスタNT12は、MOSトランジスタNT10とカレントミラー段を構成しており、セル電流ICELを流すことができる。しかしながら、MOSトランジスタNT12は、MOSトランジスタPT13から参照電流Irefのミラー電流を供給されている。従って、MOSトランジスタNT12には、セル電流ICELおよび参照電流Irefのうちの小さいほうの電流が流れる。
同様、MOSトランジスタNT15は、MOSトランジスタNT13とカレントミラー段を構成しており、参照電流Irefのミラー電流を流すことができる。このMOSトランジスタNT15には、MOSトランジスタPT11からセル電流ICELのミラー電流が供給される。従って、MOSトランジスタNT15においても、セル電流ICELおよび参照電流Irefのうちの小さいほうの電流が流れる。
従って、セル電流ICELが参照電流Irefよりも大きい場合には、MOSトランジスタNT12は、MOSトランジスタPT13から供給される電流Irefのミラー電流を全て放電し、中間センス信号SOTの電圧レベルがローレベルのままである。MOSトランジスタNT15は、MOSトランジスタPT11から供給されるセル電流ICELを全て放電することができず、中間センス信号/SOTの電圧レベルが上昇する。
2次センスアンプ22においては、中間センス信号SOTおよび/SOTを反転差動増幅しており、この状態においては、最終センス信号SOUTがHレベルとなり、電流供給回路24からローカル読出データ線LRD上に供給されるセンス電流ISAが、大きな値となる。
一方、セル電流ICELが参照電流Irefよりも小さい場合には、MOSトランジスタNT12が、MOSトランジスタPT13から供給される電流をすべて放電できず、中間センス信号SOTの電圧レベルが上昇する。一方、MOSトランジスタNT15は、MOSトランジスタPT11から供給される電流を全て放電し、中間センス信号/SOTは、ローレベルのままである。
2次センスアンプ22からの最終センス信号SOUTは、Lレベルを維持し、電流供給回路24からは対応のローカル読出線LRDには電流は供給されず、センス電流ISAは、ほぼ0である。この状態においては、ローカル読出データ線LRDは、プリチャージ状態の接地電圧(GND:0V)レベルに維持される。
以上のように、ローカル読出データ線LRDには、演算子セルの記憶ノードSNAおよびSNBの記憶データの組合せに応じた電流が供給される。すなわち、記憶ノードSNAおよびSNBの記憶データがともに“1”の場合には、セル電流ICELは参照電流Irefよりも大きくなり、ローカル読出データ線LRDには、電流供給回路24から電流が供給されて、その電圧レベルが上昇する。一方、記憶ノードSNAおよびSNBの記憶データの少なくとも一方が“0”のときには、セル電流ICELは、参照電流Irefよりも小さくなる。この状態においては、電流供給回路24はローカル読出データ線LRDに電流を供給せず、ローカル読出データ線LRDは、プリチャージ電圧の接地電圧レベルに維持される。
図10は、記憶単位SUTの記憶データとセル電流とセンス電流との対応を一覧にして示す図である。記憶単位は、図4に示す表と同様、演算子セルUOERおよびUOELとで構成される。図10に示すデータAおよびBと、記憶ノードSNAL、SNBL、SNAR、SNBRと、セル電流ICELL、ICELRとの対応は、図4に示す表と同じである。
図10に示すように、演算子セルUOELからのセル電流ICELLが大きくなるのは、記憶ノードSNALおよびSNBLにデータ“1”が格納されているときである。演算子セルUOERからのセル電流ICELRが大きくなるのは、記憶ノードSNBLおよびSNBRにデータ“1”が格納されているときである。セル電流ICELLおよびICELRが大きいときに、対応のセンス電流ISALおよびISARが大きくなる。
ローカル読出データ線LRDは、ローカルマッチ線に並列に結合され、行方向に整列して配置される記憶単位からの読出電流(センス電流)が並行してローカルマッチ線MLに供給され、ローカルマッチ線において、複数の記憶単位SUTの読出電流に対応する電流が、加算される。従って、以下に説明するように、行方向に整列して配置される記憶単位の記憶データ全体のデータパターンについて、ローカルマッチ線MLの電位により、一致/不一致を識別することができる。
いま、図10に示す標記において、データ/BおよびBを演算子セルUOELおよびUOERの記憶ノードSNBに予め格納する被検索データとして定義する。データAを、検索時に演算子アレイに供給される検索データとして定義する。検索時に、演算子セルUOELおよびUOERの記憶ノードSNALおよびSNARに検索データAおよび/Aを書込み、次いで、演算子セルUOEのSNAおよびSNBの記憶データを読出す。データAおよびBが一致している場合には、センス電流ICELLおよびICELRがともにほぼ0の小さいであり、対応のローカル読出データ線LRDの電圧レベルは上昇せず、プリチャージ電圧レベルに維持される。一方、データAおよびBが不一致のときには、センス電流ICELLおよびICELRの一方が大きい値となり、ローカル読出データ線LRDの電圧レベルが、上昇する。これにより、被検索データBおよび検索データAの一致/不一致を判定することができる。
ローカル読出データ線LRDは、対応のローカルマッチ線MLに並列に結合される。従って、ローカルマッチ線MLの電位が上昇したときには、データパターンにおいてデータの不一致が存在したことを示している。一方、ローカルマッチ線MLの電圧がプリチャージ電圧レベルに維持される場合には、データパターンの全データが一致していることを示している。従って、ローカルマッチ線MLの電位を検出することにより、検索データパターンと登録データパターン(被検索データパターン)との一致/不一致を検出することができる。
また、演算子セルUOELおよびUOERの記憶ノードSNBLおよびSNBRにデータ“0”を書込むと、検索データAの論理値に拘らず、セル電流ICELLおよびICELRは、共に、参照電流Irefよりも小さくなり、センス電流ICELLおよびICELRはともに小さい値となる。この状態においては、ローカル読出線LRDを介してローカルマッチ線MLへは電流は供給されず、ドント・ケア状態(“X”または“?”)を実現することができる。したがって、ユニット演算子セルUOELおよびUOERを記憶単位SUTとして利用することにより、3値判定を行なうTCAM演算を実現することができる。
なお、センスアンプ20としては、電流検出型センスアンプに代えて、交差結合されたPチャネルMOSトランジスタおよび交差結合されたNチャネルMOSトランジスタを用いたラッチ型センスアンプが用いられてもよい。この場合、ビット線電流は、ビット線BLおよびBLBに対応しており、ビット線BLの電位を、2次センスアンプ22で受けて、電流供給回路24を駆動する。
図11は、この発明の実施の形態1に従う半導体信号処理装置の演算子セルマットの構成を概略的に示す図である。図11において、演算子セルマットは、演算子セルアレイが複数のサブブロックSB1−SBnに分割される。これらのサブブロックSB1−SBnは、それぞれ(k+1)個の検索単位RTUに分割される。
たとえば、サブブロックSB1は、検索単位RTU(1,1)−RTU(1,2^k)に分割される。ここで、^は、べき乗を示す。サブブロックSB2は、検索単位RTU(2,1)−RTU(2,2^k)に分割され、サブブロックSBnは、検索単位RTU(n,1)−RTU(n,2^k)に分割される。検索単位は、各々が、Nバイト幅を有するm個のエントリで構成される。
サブブロックSB1−SBn各々においては、(k+1)個の検索単位RTU(i,1)−RTU(i,2^k)各々に対応して、ローカルマッチ線ML1、ML2…ML2^kが配置される。これらのローカルマッチ線ML1−ML2^kは、それぞれ、対応の検索単位RTU(i,1)−RTU(i,2^k)のセンスアンプ回路の出力を受けるローカル読出データ線にそれぞれ結合される。
サブブロックSB1−SBnそれぞれにおいて、ローカルマッチ線ML1−ML2^kの組に対応してローカル一致判定回路LMD1−LMDnが設けられる。このローカル一致判定回路LMD1−LMDnは、それぞれ、パターン長指示信号P<1>−P<n>に従って対応のローカルマッチ線の組を選択し、選択した組のローカルマッチ線の電位に従ってローカル一致判定信号LMCH<1>−LMCH<n>を生成する。
ローカル一致判定回路LMD1−LMDnに共通に、グローバル一致判定回路GMDが設けられる。このグローバル一致判定回路GMDは、ローカル一致判定回路LMD1−LMDnからのローカル一致判定信号LMCH<1>−LMCH<n>に従って最終一致判定信号FMCHを生成する。
サブブロックSB1−SBnそれぞれに格納される被検索データパターン(登録パターン)のパターン長は、それぞれ予め定められており、各サブブロックに格納される被検索パターン(以下登録パターンと称す)のパターン長は、パターン長レジスタ回路30に格納される。このパターン長レジスタ回路30からのパターン長指示信号P<1>−P<n>に従って、ローカル一致判定回路内での組合せ論理ゲートの信号パスが選択される。
図12は、図11に示すサブブロックの構成をより具体的に示す図である。図12において、サブブロックSBiは、(k+1)個の検索単位RUT(i,1)−RUT(i,2^k)を含む。検索単位RUT(i,1)−RUT(i,2^k)各々について、演算子セルUOELおよびUOERの列それぞれに対応してビット線BLが配置される。2つの演算子セルUOELおよびUOERにより記憶単位SUTが構成される。列方向において、検索単位RUT(i,1)−RUT(i,2^k)は、m個のエントリERY1−ERYmに分割される。
また、図12においては、この検索単位RUT(i,1)−RUT(i,2^k)各々は同一構成を有するため、検索単位RUT(i,1)に対して構成要素に対して参照符号を付す。
ビット線BLそれぞれに対応してセンスアンプ回路SAK(SAKL、SAKR)が設けられる。センスアンプ回路SAKそれぞれに対応してダミーセルDUEが配置される。センスアンプ回路SAKの出力信号が、それぞれ対応して設けられるローカル読出データ線LRDに伝達される。
検索単位RUT(i,1)−RUT(i,2^k)各々に対応してローカルマッチ線ML1−ML2^kが設けられる。ローカルマッチ線MLjに、対応の検索単位RUT(i,j)のローカル読出データ線LRDがワイヤードOR接続される。ここで、jは、1から2^kのいずれかである。
対応の検索単位RUT(i、j)のエントリに格納される登録データパターンと検索データパターンが不一致の場合には、ローカルマッチ線MLjの電圧レベルが上昇し、登録データパターンと検索データパターンとが一致している場合には、対応のローカルマッチ線MLjの電位はプリチャージ電圧レベルのLレベルに維持される。
図13は、図11に示すローカル一致判定回路の構成を概略的に示す図である。図13においては、サブブロックSBiに対応して配置されるローカル一致判定回路LMDiの構成を代表的に示す。図13を参照して、ローカル一致判定回路LMDiは、ローカルマッチ線ML1−ML2^kそれぞれに対応して設けられるマッチ線アンプAMP1−AMP2^kを含む。これらのマッチ線アンプAMP1−AMP2^kは、それぞれ活性化時、対応のマッチ線ML1−ML2^kの電位を増幅する。
ローカル一致判定回路LMDiは、さらに、マッチ線アンプAMP1−AMP2^kの出力ノードに対して設けられる全パターン長判定回路32、L/2パターン長判定回路34およびL/4パターン長判定回路36を一例として含む。
全パターン長判定回路32は、マッチ線アンプAMP1−AMP2^kの出力信号を全て受けるORゲートOGiを含む。
L/2パターン長判定回路34は、AND/OR複合ゲートで構成され、等価的に、マッチ線アンプAMP1−AMP2^(k−1)の出力信号を受けるORゲートOG2と、マッチ線アンプAMP2^((k−1)+1)−AMP2^kの出力信号を受けるORゲートOG3と、これらのORゲートOG2およびOG3の出力信号を受けるANDゲートAG1とを含む。
L/4パターン長判定回路は、AND/OR複合ゲートで構成され、等価的に、マッチ線アンプAMP1−AMP2^(k−3)の出力信号を受けるORゲートOG4と、マッチ線アンプAMP2^((k−3)+1)−AMP2^(k−2)の出力信号を受けるORゲートOG5と、マッチ線アンプAMP2^((k−2)+1)−AMP2^(k−1)の出力信号を受けるORゲートOG6と、マッチ線アンプAMP2^((k−1)+1)−AMP2^kの出力信号を受けるORゲートOG7と、これらのORゲートOG4−OG7の出力信号を受けるANDゲートAG2を含む。
このローカル一致判定回路LMDiにおいて、さらに、これらの判定回路32、34および36の出力信号をパターン長指示信号P<i>に従って選択して、ローカル一致判定信号LMCH<i>を生成するマルチプレクサ38が設けられる。
マッチ線アンプAMP1−AMP2^kは、それぞれ、対応のローカルマッチ線ML1−ML^kの出力信号を増幅する。ローカルマッチ線ML1−ML2^kの出力信号がすべてLレベルのときには、対応の検索単位RUT(i、1)−RUT(i、2^k)の同一エントリの登録データパターンが検索データパターンと一致していることを示している。このサブブロックの全パターン長L(=N・2^k)のパターンについて登録データパターンと検索データパターンとが一致している場合、全パターン長判定回路32の出力信号はLレベルとなる。
登録データパターン長がL/2の場合に、登録データパターンと検索データパターンが一致している場合、L/2パターン長判定回路34の出力信号は、ORゲートOG2およびOG3の一方の出力信号がLレベルとなるため、Lレベルとなる。これにより、検索データパターンが、パターン長L/2の登録データパターンと一致していることが検出される。
登録データパターン長がL/4の場合、検索時、L/4パターン長判定回路36において、ORゲートOG4−OG7の出力信号のいずれかがLレベルとなり、その出力信号がLレベルとなる。これにより、与えられた検索データパターンが、L/4のパターン長の登録データパターンと一致していることが識別される。
マルチプレクサ38において、パターン長指示信号P<i>に従ってこれらの判定回路32,34および36の出力信号を選択することにより、ローカル一致判定信号LLCH<i>の論理レベルを見ることにより、登録データパターン長がL、L/2およびL/4のいずれかにおいて、登録データパターンと検索パターンの一致/不一致を識別することができる。これにより、任意のパターン長の検索データについて登録データパターンとの一致検出を行なうことができる。
なお、上述の構成においては、パターン長が、L、L/2およびL/4の3種類の場合の構成が示される。パターン長の種類に応じて、判定回路の数は、変動する。最小データパターンがL/2^Mの場合、(M+1)個の判定回路が配置され、各判定回路において、2^M個のORゲートが設けられ、それぞれ、異なるローカルマッチ線の組に対応して配置されるマッチ線アンプの出力信号を受ける。ローカルマッチ線の各組は、2^k/2^M本のローカルマッチ線を含む。
図14は、1つのサブブロックにおける各エントリにマッピング可能な被検索データパターン(登録データパターン)を概略的に示す図である。図14において、サブブロック♯Aにおいては、登録データパターンAは、長さL(=N・2^kバイト)の長さを有し、1つのエントリに1つのパターンが格納される。
サブブロックSB♯Bにおいては、1エントリに、パターン長L/2のパターンB1およびB2が格納され、1エントリに2つの登録パターンが格納される。サブブロックSB♯Cにおいては、1エントリに、パターン長がL/4の登録パターンC1−C4がそれぞれ格納される。
したがって、1エントリに複数の被検索データパターンをマッピングすることができ、1エントリに1つの被検索データパターン(登録データパターン)をマッピングする場合に比べてエントリ数を大幅に低減することができる。
図15は、登録データパターンのマッピングの具体的例を示す図である。図15において、一例として、サブブロックSB♯Aに、パターン長Lが割当てられ、サブブロックSB♯Bに、パターン長L/2が割当てられる。サブブロックSB♯Cには、パターン長L/4が割当てられる。
サブブロックSB♯Aにおいて、エントリERYaにおいては、登録データパターンPAT1が、パターン長Lを有し、エントリERYa全体にわたって有効データが格納される。エントリERYbにマッピングされるパターンPAT2は、長さ7・L/8を有する。このエントリERYbにおいて、残りのL/8バイトの領域は、ドントケア(X)状態に設定される(演算子セルUOELおよびUOERの記憶ノードSNBにデータ“0”が格納される)。このドントケア状態の設定については、後に実施の形態3において説明する。エントリERYcにおいて、登録されるデータパターンPAT3は、長さ3・L/4を有し、残りのL/4バイト領域はドントケア状態に設定される。したがって、サブブロックSB♯Aにおいては、パターン長LからL/2の間の被検索データパターンをそれぞれ格納することができる。
サブブロックSB♯Bにおいて、エントリERYdには、それぞれパターン長L/2の被検索パターンPAT4およびPAT5がマッピングされる。エントリERYeにおいては、パターン長3・L/8の被検索パターンがマッピングされ、残りのL/8バイトの領域はドントケア状態に設定される。また、後半のL/2バイト領域においてパターン長3・L/8の被検索パターンPAT7がマッピングされ、残りのL/8バイト領域はドントケア状態に設定される。
サブブロックSB♯Cにおいて、エントリERYfには、それぞれパターン長L/4の被検索パターンPAT8−PAT11がそれぞれマッピングされる。エントリERYgにおいては、それぞれL/4バイト領域に、パターン長L/8の被検索パターンPAT12、PAT14、PAT15およびPAT16が格納される。残りのL/8のバイト領域は、ドントケア状態に設定される。したがって、サブブロックSB♯Cにおいては、パターン長L/4からL/8のパターンを格納することができる。
この図15に具体的に示すように、7エントリERYa−ERYgにおいて16個の被検索パターンPAT1−PAT16を格納することができる。これにより、1エントリに1被検索パターンを格納して、16個のエントリが必要とされる構成に比べて、大幅にエントリ数を低減することができる。
図16は、検索操作時における検索パターンの入力態様を概略的に示す図である。図16において、ペイロードに含まれるデータパケットPKTからLバイトのデータパターンを取込み、検索データとして各サブブロックに並列に与える。データパケットPKTは、検索動作毎に、たとえば1バイトずつシフトインかつシフトアウトする。したがって、この検索データパターンにおいて、先頭位置からL/2バイト離れた位置に、データパターンPAT10が含まれている場合、図15に示すエントリERYfにおいて一致を検出することができ、このデータパケットPKTにおいて登録パターンPAT10と同一パターンが含まれているのを検出することができ、このデータパケットは悪意のある不正アクセスデータパケットであると識別することができる。
図17(A)−(C)は、この発明の実施の形態1に従う半導体信号処理装置のデータ書込部の構成を概略的に示す図である。図17(A)において、サブブロックSB1−SBnに共通に、データパス50が設けられる。このデータパス50に対しては、入力シフトレジスタ回路60からのデータビットA<0>,B<0>,…,A<N>,B<N>,…,A<S>,B<S>…が与えられる。この入力シフトレジスタ回路60におけるシフト動作により、1バイト単位で入力パケットをシフトして、登録データパターンと入力データパターンの一致/不一致を検出する。
サブブロックSB1は、各々がNバイト幅の検索単位RUT(1,1)−RUT(1,s)に分割され、サブブロックSBmも同様、各々がNバイト幅の検索単位RUT(n,1)−RUT(n,s)に分割される。ここで、sは2^kである。
列方向に整列して配置される検索単位RUT(1,1)−RUT(n,1)に共通に、グローバル書込データ線GWDA0、ZGWDB0,ZGWDA0およびGWDB0が演算子セルUOELおよびUOERの記憶単位に対応して設けられる。グローバル書込データ線GWDA0は、左側演算子セルUOELの書込AポートWPRTAに結合され、グローバル書込データ線ZGWDB0は、左側演算子セルUOELの書込BポートWPRTBに結合される。グローバル書込データ線ZGWDA0は、右側演算子セルUOERの書込AポートWPRTAに結合され、グローバル書込データ線GWDB0は、右側演算子セルUOERの書込BポートWPRTBに結合される。
列方向に整列して配置される検索単位RUT(1,2)−RUT(n,2)に対し共通に、グローバル書込データ線GWDAN、ZGWDAN、ZGWDBN、およびGWDBNが設けられる。列方向に整列して配置される検索単位RUT(1,s)−RUT(n,s)に共通に、列方向に連続的に延在してグローバル書込データ線GWDAS,ZGWDAS,ZGWDBS,およびGWDBSが設けられる。グローバル書込データは、それぞれ対応の列の書込Aポートおよび書込Bポートに結合されるが、図17(A)においては、図面を簡略化するために、これらの検索単位列においては、明確には示していない。
データパス50においては、各検索単位列の記憶単位列それぞれに対応して個別構成の書込回路が設けられる。図17(A)においては、各検索単位列の記憶単位列に対応する構成要素においては同一参照番号を付す。
データパス50は、データビットA<0>を受けるバッファ51と、データビットB<0>を受けるL選択マスク回路52aと、データビットA<0>を受けるインバータ53と、データビットB<0>を受けるR選択マスク回路52bと、それぞれ与えられたデータビットをレベルシフトするレベルシフタ54a−54dとを含む。
L選択マスク回路52aは、図17(B)にその構成を示すように、データビットB<j>(=B<0>)を受けるインバータ56と、マスク指示信号MSK<j>(j=0)に従って接地電圧(GND)とインバータ56の出力信号の一方を選択的に通過させるマルチプレクサ57とを含む。マスク指示信号MSK<j>が例えば“1”でありデータ書込マスクを指示する場合には、マルチプレクサ57は、接地電圧を選択する。マスク指示信号MSK<j>が例えば“0”のノンマスクを指示する場合には、マルチプレクサ57はインバータ56からの反転データ/B<j>を選択する。
R選択マスク回路52bは、その構成の一例を図17(C)に示すように、マスク指示信号MSK<j>に従ってデータビットB<j>と接地電圧の一方を選択的に通過させるマルチプレクサ58を含む。このマルチプレクサ58は、マスク指示信号MSK<j>が書込マスクを指示する場合には、接地電圧を選択し、そうでないときには、データビットB<j>を選択する。
書込マスク時に接地電圧レベルのデータを転送することにより、対応の演算子セルにおいてデータ“0”が書込まれ、初期状態と同一の状態に設定される。記憶ノードSNBLおよびSNBRがともにデータ“0”を記憶する状態に設定され、等価的にデータ書込が禁止される。データパターンの登録時(被検索データパターンの書込時)に、被検索データの非書込領域に対してマスクをかけることにより、未登録領域をドントケア状態に設定して、検索動作に対して影響を及ぼすのを防止する。マスク指示信号MSK<j>は、各データビットB<j>毎に設定される。
レベルシフト回路54aは、バッファ51の出力信号(データビット)を受け、レベルシフト後の信号をグローバル書込データ線GWDA0へ転送する。レベルシフト回路54bは、L選択マスク回路52aの出力信号を受けて、レベル変換後の信号をグローバル書込データ線ZGWB0上に転送する。レベルシフト回路54cは、インバータ53の出力信号を受け、レベル変換後の信号をグローバル書込データ線ZGWDA0上に転送する。レベルシフト回路54dは、R選択マスク回路52bの出力信号を受け、レベル変換後の信号をグローバル書込データ線GWDB0上に転送する。
レベルシフト回路54a−54dは、そのハイ側電源電圧が電圧VHであり、ロー側電源電圧が電圧VLである。電圧VHは、SOIトランジスタのPN接合のビルトイン電圧よりも低い正の電圧であり、一方、電圧VLは、負電圧である。これにより、記憶ノード(SNA,SNB)の電圧レベルを“0”および“1”に設定するとももに、ボディ領域のPN接合の導通によるリークが生じ、記憶データの破壊が生じるのを防止する。
データビットA<N>およびB<N>に対しても、同様、バッファ51、インバータ53、選択マスク回路52aおよび52bと、レベルシフト回路54a−54dが設けられ、データビットA<S>,B<S>に対しても、同様、バッファ51、インバータ53、選択マスク回路52aおよび52bと、レベルシフト回路54a−54dが設けられる。
このデータパス50における書込回路の構成により、左側演算子セルUOELの記憶ノードSNALおよびSNBLにデータA,/Bが格納され、右側演算子セルUOERの記憶ノードSNBRおよびSNARに、データ/BおよびAが格納される。
なお、各サブブロックにおいて、登録データパターン長が、割当てられたパターン長よりも短い場合、有効データが格納されない領域は、上述のように書込マスクにより、ドントケア状態に設定される。初期状態においては、演算子セルUOEは、全てドントケア状態に設定される。被検索データパターンのマッピング時には、データ書込時に、この非書込領域に対してマスクをかける。マスク指示信号MSK<j>は、ビット単位で設定することができ、従って、登録データパターン長についても、ビット単位でパターン長を調整して種々のデータパターンを格納することができる。
ビット単位でマスク指示信号MSKを生成する構成としては、以下の構成を利用する。すなわち、入力シフトレジスタ回路60において、データパターンビットそれぞれに対応してマスクビットを転送する回路を設け、このマスクビット転送経路により、各ビットに対するマスク指示信号MSKを生成する。
図18は、1つの記憶単位SUTに対するデータの書込および読出の経路を概略的に示す図である。図18において、グローバル書込データ線GWDAおよびZGWDAは、それぞれ書込ポートWPRTAおよびWPRTBを介して左側演算子セルUOELの記憶ノードSNALおよびSNBLに、データAおよび/Bを伝達する。グローバル書込データ線ZGWDBおよびGWDBは、それぞれ書込ポートWPRTAおよびWPRTBを介して右側演算子セルUOERの記憶ノードSNARおよびSNBRにデータ/AおよびBを伝達する。
演算子セルUOELおよびUOERに共通に、書込ワード線WWLBおよびWWLAと読出ワード線RWLAおよびRWLBが設けられる。演算子セルUOELおよびUOERは、ビット線BLLおよびBLRにそれぞれ結合され、データ読出時(検索時)、データA・/Bおよび/A・Bに対応する電流を、それぞれ、ビット線BLLおよびBLRに伝達する。ビット線BLLおよびBLRは、センスアンプ回路SAKLおよびSAKRにそれぞれ結合される。センスアンプ回路SAKLおよびSAKRは、対応のローカル読出データ線LRDLおよびLRDRを介して対応のローカルマッチ線MLに検索結果に応じて、選択的に電流を供給する。ローカルマッチ線MLに対しマッチ線アンプAMPが設けられ、検索結果が増幅される。
ローカルマッチ線MLは、プリチャージトランジスタNT18により例えば接地電圧レベルにプリチャージされる。検索動作時においては、プリチャージ指示信号PREは、Lレベルに設定され、プリチャージトランジスタNT18は、オフ状態となり、ローカルマッチ線MLは、プリチャージ電圧レベルでフローティング状態とされる。このフローティング状態とされたローカルマッチ線MLに対して、検索結果に応じて選択的にセンスアンプ回路SAKLまたはSAKRから電流が供給されると、ローカルマッチ線MLの電位が上昇する。一方、検索データと被検索データとが一致している場合には、ローカルマッチ線MLに対しては電流は供給されず、ローカルマッチ線MLはプリチャージ電圧レベルを維持する。従って、ローカルマッチ線MLの電位がマッチ線アンプAMPにより増幅されて2値信号が生成される。これにより、一致時においては、マッチ線アンプAMPの出力信号がLレベルであり、一致発生を識別することができる。
したがって、この図18に示すメモリマット構の成において、サブブロックSB1−SBnそれぞれにおいてローカルマッチ線(ML1−ML2^k)が設けられており、並列に検索動作を実行することができる。サブブロックSB1−SBn各々においてmエントリを順次選択して検索を行う。1クロックサイクルにおいて1エントリについての検索を行うことより、mクロックサイクルで、検索データに対する検索結果を生成することができる。
図19は、被検索データのマッピング時の書込動作を示すタイミング図である。図19に示すように、被検索データの書込時においては、クロック信号CLKの立上がりに同期して、外部から被検索データDINBとしてデータB0、B1、およびB2をそれぞれ入力シフトレジスタ回路60に取込む。入力シフトレジスタ回路60からの書込データに従って、データパス50により各対応のグローバル書込データ線に書込データが伝達されると、ポートB書込ワード線WWLBを順次選択状態へ駆動し、データB0、B1、B2、…を、それぞれ、書込BポートWPRTBを介して演算子セルUOELおよびUOERの記憶ノードSNBLおよびSNBRに書込む。
書込ワード線WWLBの選択時において、1つのサブブロックにおける1つのエントリに対して検索データの書込が行なわれるため、ブロック選択信号に従って1つのサブブロックSBが選択され、選択サブブロックにおいてポートB書込ワード線が選択される。
このデータ書込時において、複数のデータパターンで入力データDINBが構成され、パターン長が1エントリサイズと異なる複数の被検索パターンが、対応のサブブロックの1エントリに並行して格納されてもよい。前述のように、パターン長が1エントリサイズと異なるデータパターンの登録時においては、非書込領域に対してマスク指示信号MSKにより、書込マスクがかけられ、ドントケア状態に維持される。
図20は、検索モード時の動作を示すタイミング図である。この検索モードにおいては、クロック信号CLKに同期して検索データDINAが、クロック信号CLKの立上がりエッジで入力シフトレジスタ回路に取り込まれる。このとき、入力シフトレジスタ回路においてシフトインおよびシフトアウト動作を行って、順次、検索データが抽出されて、データパス50へ与えられる。図20においては、検索データA0が与えられる場合を一例として示す。
この後、ポートA書込ワード線WWLAを選択状態へ駆動し、演算子セルUOELおよびUOERの記憶ノードSNALおよびSNARに、データA0についての相補ビットをそれぞれ書込む。この書込後、記憶ノードSNALおよびSNARの書込データが安定化した状態で、読出ワード線RWLAおよびRWLBを選択状態へ駆動する。読出時において書込ワード線WWLAを選択状態に維持することにより、書込ワード線WWLAの電位変化が容量結合により記憶ノードSNALおよびSNARの記憶データに対して悪影響を及ぼすのを防止して、安定かつ正確に書込データと登録データに対応したセル電流を対応のビット線BLLおよびBBLRに読出すことができる。
この検索時において、検索データA0が与えられた場合、書込ワード線WWLAおよび読出ワード線RWLAおよびRWLBの選択が、mエントリに対する検索が完了するまで繰返し異なるエントリに対して実行される(mエントリが、順次選択される)。
この検索動作時においては、検索が、サブブロックSB1−SBnにおいて並列に実行されるため、ポートA書込ワード線および読出ワード線RWLAおよびRWLBを選択するためのアドレス信号においては、サブブロックSBを指定する情報は含まれていない。これにより、各サブブロックにおいて異なるパターン長の登録パターンに対する検索を、並行して実行することができる。
図21は、各サブブロックに対応して設けられるローカル行選択駆動回路の構成を概略的に示す図である。図21において、ローカル行選択駆動回路70は、ローカルBポート書込ワード線選択駆動回路72と、ローカルAポート書込ワード線選択駆動回路74と、ローカル読出ワード線選択駆動回路76とを含む。ローカルBポート書込ワード線選択駆動回路72は、ブロック選択信号BSが対応のサブブロックを示すときにイネーブルされ、ポートB書込ワード線イネーブル信号WWBENの活性化に応答して書込アドレス信号WADをデコードして、ポートB書込ワード線WWLB1−WWLBmのうちの指定された行に対応するポートB書込ワード線を選択状態へ駆動する。ブロック選択信号BSは、サブブロックSB1−SBnのいずれかを指定する。これにより、選択されたサブブロックにおいて、グローバル書込ワード線を介して伝達される被検索データBを選択されたエントリに格納することができる。
ローカルAポート書込ワード線選択駆動回路74は、ポートA書込ワード線イネーブル信号WWAENの活性化に応答して与えられたワード線アドレス信号ADをデコードし、ポートA書込ワード線WWA1−WWAmのうちの指定された行に対応するポートA書込ワード線を選択状態へ駆動する。このローカルAポート書込ワード線選択駆動回路74に対しては、ブロック選択信号BSは与えられない。検索動作時において、複数のサブブロックSB1−SBnにおいて、並行してポートA書込ワード線が選択状態に駆動される。
ローカル読出ワード線選択駆動回路76は、読出ワード線イネーブル信号RWLENの活性化に応答してワード線アドレス信号ADをデコードし、読出ワード線RWLA1,RWLB1−RWLAm,RWLBmのうちの指定された行に対応する読出ワード線(AポートおよびBポート)を選択状態へ駆動する。
検索時のワード線アドレス信号ADは、書込ワード線アドレス信号WADに対応し、ローカルAポート書込ワード線選択駆動回路74と同様、ローカル読出ワード線選択駆動回路76へは、ブロック選択信号BSが与えられていない。したがって、サブブロックSB1−SBnにおいて同一行の位置のワード線(書込および読出ワード線)が選択状態へ駆動されて並列に、検索データの書込および検索結果の読出が行なわれる。
図22は、サブブロックSB1−SBnに共通に設けられる制御回路の構成を概略的に示す図である。図22において、制御回路80は、クロック信号CLKの立上がりに同期して、データとともに与えられるコマンドCMDをデコードするコマンドデコーダ81と、コマンドデコーダ81からの書込モード指示MODWに従ってイネーブルされる書込制御回路83およびBポート書込ワード線活性化回路82を含む。
書込制御回路83は、書込モード指示MODWの活性化時、所定のタイミングでデータパス50へデータパスイネーブル信号DPENを与え、データパス50に含まれるレベルシフト回路(54a−54d)、バッファ51およびインバータ53をイネーブルする(図17に示すデータパスの構成については、このデータパスイネーブル信号DPENは示していない)。Bポート書込ワード線活性化回路82は、書込モード指示MODWの活性化時、所定のタイミングでポートB書込ワード線イネーブル信号WWBENを所定期間アサート(活性化)する。
制御回路80は、さらに、コマンドデコーダ81からの読出モード指示MODRに従って活性化されるAポート書込ワード線活性化回路84、読出制御回路85、および読出ワード線活性化回路86を含む。Aポート書込ワード線活性化回路84は、活性化時、所定のタイミングでポートAワード線活性化信号WWLAENをアサートする。読出制御回路85は、読出モード指示MODRの活性化時、センスアンプ活性化信号SAENおよびマッチ線アンプイネーブル信号AMPENを所定のタイミングで活性化するとともにマッチ線プリチャージ指示信号PREを非活性化する。この読出制御回路85は、読出ワード線活性化回路86からの読出ワード線イネーブル信号RWENの活性化タイミングを基準として、センスアンプ活性化信号SAENおよびマッチ線アンプイネーブル信号AMPENを活性化する。これまでの図においては示していないが、ローカルマッチ線MLに対応して配置されるマッチ線アンプAMPは、このマッチ線アンプイネーブル信号AMPENのアサート時にイネーブルされ、対応のローカルマッチ線の電圧を増幅する。
なお、センスアンプ回路SAKに含まれる2次センスアンプ(22)の活性化をセンスアンプ活性化信号SAENの活性化に従って行う場合には、この読出制御回路85が2次センスアンプ(22)に対する活性化制御信号を生成する。
制御回路80は、さらに、アドレスカウンタ87と、アドレスカウンタ87の出力アドレス信号と外部からのアドレス信号EXADの一方を選択するマルチプレクサ88と、書込モード指示MODWの活性化時、マルチプレクサ88からのブロックアドレスBADをデコードするブロックデコーダ89とを含む。
アドレスカウンタ87は、コマンドデコーダ81からの内部アドレス発生指示MODIのアサート時イネーブルされ、クロック信号CLKに同期してカウント動作を行ない、そのカウント値をアドレスとして出力するとともに、カウント値がエントリ数mに等しくなるとカウントアップ信号CUPをアサートする。このアドレスカウンタ87からのカウントアップCUPがアサートされるまで、活性化回路84、85および86は、クロック信号CLKにトリガとしてイネーブルされ、それぞれ対応のイネーブル信号/活性化信号を所定のタイミングでアサートする。内部アドレス発生指示MODIは、被検索データの各エントリに対する順次書込時、および検索動作時にアサートされる。被検索データパターンの登録追加の時には、この内部アドレス発生指示MODIは、アサートされない。
マルチプレクサ88は、この内部アドレス発生モードMODIのアサート時、アドレスカウンタ87の出力アドレスを選択する。このアドレスカウンタ87からのカウンタアドレスは、サブブロックを指定するブロックアドレスおよびサブブロック内のエントリを指定するワード線アドレスを含む。選択回路88からのブロックアドレスBADがブロックデコーダ89へ与えられる。ブロックデコーダ89は、書込モード指示MODWのアサート時にイネーブルされ、与えられたブロックアドレス信号をデコードしてブロック選択信号BSを生成する。データ読出時においては、ブロックデコーダ89は、デコード動作は行わず、ブロック選択信号BSは生成されない。
カウンタ87からのカウンタアドレスの下位アドレスは、読出指示印加時の書込ワード線アドレスADおよび書込時の書込ワード線アドレスWADとして用いられる。ここで、ワード線アドレス信号として読出時に符号ADを用い、書込時に符号WADを用いているのは、読出時にはブロック選択信号が生成されず、書込時にはブロック選択信号が生成されることを示すためであり、これらは、同じワード線アドレス信号である。
外部アドレス信号EXADが用いられるのは、たとえば新たな被検索パターンを追加マッピングする場合、追加被検索パターンの登録先アドレスを、外部アドレス信号EXADに従って指定するためである。この外部アドレス信号EXADは、従って、ブロックアドレスを含む。内部モード指示MODIは、新たな被検索パターン登録追加の書込またはテスト時の特定のエントリ内容の読出す動作が実行される時にアサートされる。
コマンドCMDは、外部からのデータAまたはBと同期して与えられる。したがって、データ書込時、すなわち被検索パターンの書込時においては、書込制御回路83およびBポート書込ワード線活性化回路82が、このコマンドデコーダからの書込コマンドに従って生成された書込モード指示MODWに従ってそれぞれ活性化され、データパスイネーブル信号DPENおよびBポート書込ワード線イネーブル信号WWBENを活性化する。各サイクルにおいて、被検索データパターンを各エントリの記憶ノードSNBに書込むことができる。
一方、検索を行なうモード時においては、読出モード指示MODRがアサートされる。このときには、アドレスカウンタ87からのカウント値に従って各エントリが順次指定され、エントリERY1からERYmにおいて順次検索動作が行なわれる。最後のエントリERYmの検索が完了すると、アドレスカウンタ87のカウントアップ信号CUPがアサートされる。カウントアップ指示信号CUPがネゲート状態の間、Aポート書込ワード線活性化回路84、読出制御回路85および読出ワード線活性化回路86が、クロック信号CLKの立上がりをトリガとしてそれぞれ対応の制御信号をアサートする。これにより、1つの検索データDINAが与えられたときに、各エントリERY1からERYmにおいて順次検索動作が行なわれ、このm個のエントリにおける検索動作完了後に、カウントアップ信号CUPがアサートされ、各サブブロックのエントリに選択動作が停止する。この停止サイクルにおいて、また、新たな検索データが、読出コマンドとともに与えられる。新たな検索データについての検索動作が繰り返しmエントリに対して実行される。
なお、各サブブロックの登録データパターン長は、図11に示すパターン長レジスタ回路30に格納される。この場合、コマンドに従って、外部からの書込データをパターン長レジスタ回路へ順次転送されるか、または固定的に定められる場合には、ヒューズ素子などを用いて固定的にプログラムされる。
以上のように、この発明の実施の形態1に従えば、エントリに格納される被検索パターンのパターン長を変更可能とし、1つのエントリに複数の被検索データパターンを格納可能としている。これにより、エントリ数を増大させることなく、より多くの被検索データパターンを格納することができ、演算子セルアレイ占有面積を増大させることなく、多くのパターンの一致/不一致を検出することができる。本実施の形態1を適用することにより、NIDSなどにおいて、より信頼性の高いシステムを構築することができる。
なお、被検索データのパターン長は、前述のパターン長に限定されず、適用される用途に応じて、L/32などのさらに短いパターン長が用いられてもよい。パターン長に応じて、ローカル一致判定回路LMDi内の判定回路が各パターン長に応じて設けられればよい。
また、一致発生時に対応のエントリアドレス(アドレスカウンタから発生される)を装置外部へ読出すことにより、どのエントリにおいて一致が発生したかを識別することができる。1エントリにおいて複数のデータパターンが格納されている場合、一致データパターン候補を抽出することができる。
[実施の形態2]
図23は、この発明の実施の形態2に従う半導体信号処理装置の要部の構成を概略的に示す図である。図23に示す半導体信号処理装置においては、サブブロックSB1およびSB2…に共通にかつ各演算子セル列に対応して、グローバル読出データ線GRDが配置される。サブブロックSB1−SBnが配設されるが、図23においては、サブブロックSB1およびSB2を代表的に示す。
サブブロックSB1は、検索単位RUT(1,1)−RUT(1,s)に分割され、検索単位RUT(2,1)−RUT(2、s)に分割される。ここで、sは、2^kである(s=2^k)。サブブロックSB1およびSB2各々に対応して、ローカルマッチ線ML1−MLsが配置される。
各検索単位においては、センスアンプ回路SAKに対応してローカル読出データ線LRDが配置される。これらのローカル読出データ線LRDは、それぞれ、対応して配置されるローカルマッチ線ML(ML1−MLs)に結合される。
ローカル読出データ線LRDとグローバル読出データ線GRDに対するデータの読出経路を変更するために、読出経路変更用のスイッチングトランジスタTXi1およびTXi2が、それぞれセンスアンプ回路SAKに対して設けられる。サブブロックSB1においては、センスアンプ回路SAK各々に対応して、スイッチングトランジスタTX11およびTX12が設けられ、サブブロックSB2においては、センスアンプ回路SAK各々に対応して、読出経路切換用のスイッチングトランジスタTX21およびTX22が設けられる。一般に、サブブロックSBiにおいて、センスアンプ回路SAKの出力部にスイッチングトランジスタTXi1およびTXi2が設けられる。ここで、iは1からnのいずれかの整数である。
サブブロックSB1において、スイッチングトランジスタTX11は、TCAMモード指示信号MODTC<1>およびMODTC<2>それぞれに応答して導通し、対応のセンスアンプ回路SAKの出力を、対応のローカル読出データ線LRDに結合する。スイッチングトランジスタTX12は、メモリモード指示信号MODMC<1>に応答して導通しセンスアンプ回路SAKの出力をグローバル読出データ線GRDに結合する。サブブロックSB2において、メモリモード指示信号MODMC<2>に応答してスイッチングトランジスタTX22が、対応のセンスアンプ回路SAKの出力信号をグローバル読出データ線GRDに結合する。サブブロックSBi(iは1からnのいずれかの整数)においては、スイッチングトランジスタTXi1は、TCAMモード指示信号MODTC<i>に従って選択的に導通し、スイッチングトランジスタTXi2は、メモリモード指示信号MODMC<i>に従って選択的に導通する。
メモリモード指示信号MODMC<i>を用いることにより、サブブロック単位で、グローバル読出データ線GRDに対応のセンスアンプ回路の出力信号を伝達することができる。
図24は、この発明の実施の形態2に従う半導体信号処理装置のデータパスの構成を概略的に示す図である。図24において、サブブロックSB1−SBnに対して共通に、グローバル書込データ線GWDA(GWDA0,GWDAN、GWDAS)、ZGWDB(ZGWDB0,ZGWDBN,ZGWDBS)、ZGWDA(ZGWDA0,ZGWDAN,ZGWDAS)、およびGWDB(GWDB0,GWDBN,GWDBS)が設けられる。
これらのサブブロックSB1−SBn各々に対して、ローカルマッチ線ML1−MLs(s=2^k)を含むローカルマッチ線群MLGが設けられる。ローカルマッチ線群MLGに対応してローカル一致判定回路LMD(LMD1−LMDn)が設けられる。このローカル一致判定回路LMD1−LMDnは、各々、ローカルマッチ線に対応して設けられるマッチ線アンプAMPを含む。
サブブロックSB1−SBnに共通に、グローバル読出データ線GRDlおよびGRDrが設けられる。グローバル読出データ線GRDlには、左側演算子セル(UOEL)に対応して設けられるセンスアンプ回路の出力信号が伝達され、グローバル読出データ線GRDrには、右側演算子セル(UOER)に対して設けられるセンスアンプ回路の出力信号が伝達される。
サブブロックSB1−SBnに対して、センスアンプ回路の出力信号の伝達経路を切換えるために、モード指示信号MODTC<1>、MODMC<1>、…、MODTC<n>、およびMODMC<n>が与えられる。これらのモード指示信号は、それぞれ、サブブロックに対応して設けられるドライバにより、対応の経路切換え用のスイッチングトランジスタTXi1およびTXi2へ与えられる。図24においては、図面を簡略化するために、この経路切換え用のスイッチングトランジスタは示していない。
データパス50においては、グローバル読出データ線GRDlおよびGRDrそれぞれに対応してデータアンプ100lおよび100rが設けられる。グローバル書込データ線GWDA、ZGWDB、ZGWDAおよびGWDBそれぞれに対応してマルチプレクサ102a−102dが設けられる。図24においては、データパス50の各検索単位列の記憶単位列毎に対して設けられる構成要素に対しては同一参照番号を付す。
マルチプレクサ102aは、2ビット選択信号SELA<1:0>に従って対応のデータアンプ100lの出力信号と対応の入力データビットA<j>の一方を選択して対応のグローバル書込データ線GWDAjに伝達する。jは、1からN・2^kのいずれかの整数である。マルチプレクサ102aは、同じ信号を異なる入力に受けている。これは、他のマルチプレクサ102b−102dと同様に3入力マルチプレクス構成を実現して、マルチプレクサ102a−102dを、全て同一構造とするためである。
マルチプレクサ102bは、2ビット選択信号SELB<1:0>に従って、対応のデータアンプ100lの出力信号、入力書込データビットA<j>およびL選択マスク回路52aを介して与えられる反転被検索データビット/B<j>または接地電圧のうちの1つを選択してグローバル書込データ線ZGWDBjに伝達する。
マルチプレクサ102cは、選択信号SELA<1:0>に従って、対応のデータアンプ100rの出力信号とインバータ53を介して与えられる反転検索データビットA<i>とR選択マスク回路52bを介して与えられる書込データビットB<j>または接地電圧の1つを選択して対応のグローバル書込データ線ZGWDAj上に伝達する。マルチプレクサ102dは、2ビット選択信号SELB<1:0>に従って、対応のデータアンプ100rの出力信号とインバータ53を介して与えられる反転検索データビット/A<j>と、L選択マスク回路52bを介して与えられる書込被検索データビットB<j>または接地電圧のうちの1つを選択して対応のグローバル書込データ線GWDBi上に伝達する。
選択マスク回路52aおよび52bの構成は、図17(B)および図17(C)に示す構成と同じであり、マスク指示信号MSK<j>に従って反転被検索データビット/B<j>および被検索データビットB<j>または接地電圧(データ“0”)を選択的に伝達する。
また、データパス50において、マルチプレクサ102a−102dの出力部それぞれに対応して、図17に示すようなレベルシフト回路タ54a−54dがそれぞれ設けられる。しかしながら、図24においては、これらの書込データビットのHレベルおよびLレベルを規定する電圧を調整するレベルシフト回路は、図面を簡略化するために示していない。
図24に示すように、マルチプレクサ102a−102dを用いることにより、1つのサブブロックに対し、外部からの入力検索データAを書込み、再び、この1つのサブブロックに格納された検索データを読出して別のサブブロックへ伝達することができる。従って、所定数のサブブロックをFIFO(First-in First-out)領域として利用して検索動作を行なうことができる。これにより、半導体信号処理装置の検索動作レートが、入力データの転送レートよりも遅い場合においても、FIFO領域をバッファ領域として用いて入力検索データを待ち行列化することにより、入力データ転送速度を低下させることなく検索動作を行なうことができる。これにより、検索動作によりトラフィックに対してペナルティが生じるのを防止することができる。
図25は、この発明の実施の形態2に従う半導体信号処理装置の被検索データパターンの書込時のデータ転送経路を概略的に示す図である。図25において、被検索データパターンの書込時においては、2ビット選択信号SELB<1:0>を、マルチプレクサ102bおよび102dが、外部からのデータビットB<j>(B<0>、…、B<N>、…B<S>、…)を選択する状態に設定する。このとき、選択マスク回路52aおよび52bは、データパターン長に応じて、マスク指示信号MSK(=MSK<0>、MSK<N>、MSK<S>、…)が設定される。ノンマスクのメモリセルに対しては、外部からの書込データビットB<j>が、マルチプレクサ102bおよび102dを介してグローバル書込データ線ZGWDBおよびGWDB上に転送され、対応の記憶単位の記憶ノードSNBLおよびSNBRに、データビット/B<j>およびB<j>がそれぞれ格納される。書込がマスクされたメモリセルに対しては、データ“0”が記憶ノードSNBLおよびSNBRに転送されて書込まれ、ドントケア状態に設定される。
このときには、ポートA書込ワード線WWLAは非選択状態に維持されるため、選択信号SELA<1:0>の状態は任意である。
図26は、検索動作時におけるデータの転送経路を概略的に示す図である。図26においては、一例として、サブブロックSBnがFIFOバッファ領域として用いられ、外部から転送される検索対象のデータパケットが、順次格納される。
検索動作時においては、選択信号SELA<1:0>は、読出データを選択する状態に設定され、マルチプレクサ102aおよび102cは、対応のデータアンプ100lおよび100rの出力信号を選択して、対応のグローバル書込データ線GWDAおよびZGWDA上にそれぞれ転送する。
一方、マルチプレクサ102bおよび102dは、2ビット選択信号SELB<1:0>に従って外部からの検索データA<j>(A<0>、…、A<N>、…、A<S>、…)およびインバータ53からの反転検索データ/A<j>を選択するとともに、対応のグローバル書込データ線ZGWDBおよびGWDB上にそれぞれデータビットA<j>および/A<j>を転送する。
マルチプレクサ102bおよび102dにより選択されたデータは、FIFO領域として規定されるサブブロックSBnに格納される。一方、マルチプレクサ102aおよび102cにより選択されたデータは、他のTCAM領域として規定された、被検索データパターンを格納するサブブロック領域に転送されて記憶ノードSNALおよびSNARに格納される。次いで、このFIFO領域から転送されたデータが、各TCAMサブブロックにおいて、エントリERY1からERYmに登録されたデータパターンと順次比較される。
FIFO領域においては、後に説明するように、初期状態において記憶ノードSNALおよびSNARは、データ“1”が格納される。従って、検索データがこ記憶ノードSNBLおよびSNBRに格納されて、次いで、読出されるときには、センスアンプ回路からは、データ“1”と検索データビットA<j>とのAND結果およびデータ“1”と反転検索データビット/A<j>とのAND結果が出力される。すなわち、先に格納されたデータA<j>および/A<j>が読出されて転送される。これにより、正確に待ち行列化した検索データを読出してTCAM領域に転送することができる。
図27は、サブブロックに対する初期データの格納時のデータ転送経路を概略的に示す図である。各サブブロックに対して初期データを書込むときには、選択信号SELA<1:0>により、マルチプレクサ102aおよび102cに、それぞれ対応のデータビットA<j>、B<j>を選択させ、対応のグローバル書込データ線GWDAjおよびZGWDAjに、データビット“1”を転送する。これにより、FIFO領域の各サブブロックにおいては、演算子セルの記憶ノードSNALおよびSNARが、データ“1”を格納する状態に初期設定される。バッファ処理時には、このFIFO領域のサブブロックの演算子セルの記憶ノードSNBLおよびSNBRに検索データが格納される。従って、内部データ読出時においては、FIFO領域において、検索データをバッファ処理して読出してセンスアンプ回路を介して対応のグローバル書込データ線に転送することができる。
TCAM領域においては、マルチプレクサ102bおよび102dに対応のデータビットA<j>およびB<j>をそれぞれ選択させる。これにより、各サブブロックの演算子セルの記憶ノードSNBLおよびSNBRにデータ“0”が格納され、各演算子セルがドントケア状態に設定される。このとき、マスク指示信号MSK<j>を用いて、選択マスク回路52aおよび52bからデータビット“0”を生成し、このデータビット“0”をマルチプレクサ102bおよび102dを介してTCAM領域の演算子セルの記憶ノードSNBLおよびSNBRに転送するようにしてもよい。
上述のように、各動作モードに応じて内部データの転送経路を切換えている。これにより、データパケット転送時の入力データのバッファ処理時(待ち行列化時)に、転送パケットのデータを、FIFOバッファ領域の演算子セルの記憶ノードSNBLおよびSNBRにそれぞれ書込むとともに、バッファされたFIFO領域のデータAおよび/Aを読出して、検索データとしてTCAM領域に転送することができる。これにより、転送検索データのバッファ処理と検索動作とを並行して行なうことができ、パケット転送レートと検索動作レートの差を隠して、高速で検索動作を実行することができる。
図28は、この発明の実施の形態2に従う半導体信号処理装置の演算子セルアレイの構成を概略的に示す図である。図28において、演算子セルアレイは、複数のサブアレイブロックSBA1−SBAnに分割される。サブアレイブロックSBA1−SBAnは、それぞれ対応のローカルマッチ線群MLGとともに、サブブロックSB1−SBnを形成する。
サブアレイブロックSBA1−SBAnは、各々エントリERY1−ERYmを有する演算子セル領域と、センスアンプ回路が配置されるセンスアンプ帯SAKBと、経路切換え用のスイッチングトランジスタTX1およびTX2を含む経路切換回路帯TXGBとを有する。図28においては、サブアレイブロックSBA2におけるエントリおよびセンスアンプ帯、および経路切換回路帯の配置を代表的に示す。
サブアレイブロックSBA1−SBAKが、被検索データパターンを格納するTCAM領域として利用される。ローカルマッチ線群MLGそれぞれに対応して、ローカル一致判定回路LMD1−LMDKが設けられる。このTCAM領域においては、TCAMモード指示信号MODTC<K:1>は固定的にHレベルにアサートされ、メモリセルモード指示信号MODMC<K:1>は固定的にLレベルにネゲートされる。これにより、図23に示すように、センスアンプ回路SAKの出力信号が、スイッチングトランジスタTXi1(TX11,TX21…)により選択されて、対応のローカルマッチ線群MLGに含まれるローカルマッチ線に伝達される。
一方、転送データパケットの検索データパターンを格納するFIFO領域として、サブアレイブロックSBA(K+1)−SBAnが用いられる。このFIFO領域においては、サブアレイブロックSBA(K+1)−SBAnは、単に転送データパケットをバッファする一時格納領域として利用されるため、TCAMモード指示信号MODTC<K+1:n>は固定的にLレベルにネゲートされ、一方、メモリセルモード指示信号MODMC<K+1:n>は固定的にHレベルにアサートされる。これにより、センスアンプ回路(SAK)の出力信号は、グローバル読出データ線GRDlおよびGRDr上に伝達される。FIFO領域においては、演算子セルの記憶ノードSNARおよびSNAL(SNAR/L)は、それぞれデータ“1”を格納する状態に初期設定される(図27参照)。検索動作時に、記憶ノードSNBLおよびSNBRに格納されたバッファ処理された検索データを、グローバル書込データ線GWDAおよびZGWDAに転送することができる。
この図28に示すように、検索動作時においては、マルチプレクサ102aおよび102cにより、FIFO領域に格納されるバッファデータがグローバル書込データ線GWDAおよびZGWDA上に転送され、TCAM領域のサブアレイブロックSBA1−SBAKにおいて検索動作が実行される。この検索動作と並行して、外部からの入力データAが、マルチプレクサ102bおよび102dにより、FIFO領域の次のエントリ(図28においてはサブアレイブロックSBA(K+1)のエントリERY1)にグローバル書込データ線GWDBおよびZGWDBを介して転送されて、選択エントリの記憶ノードSNBLおよびSNBRへ格納される。
図29は、FIFO領域へのデータアクセスシーケンスの一例を概略的に示す図である。図29において、FIFO領域は、4つのサブブロックSBa−SBdを含む。サブブロックSBa−SBdは、各々、m個のエントリERY1−ERYmを含む。サブブロックSBaにおいては、エントリERY1が検索動作完了により、アクセスされて空(empty)状態である。残りのエントリERY2−ERYmは、未検索のデータ(A,/A)を格納する。
サブブロックSBbにおいては、エントリERY1−ERYmに、未検索データ(A,/A)が格納される。
サブブロックSBcにおいては、エントリERY1−ERY(m−1)に未検索データ(A,/A)が格納され、エントリERYmは、未書込状態であり空(empty)状態である。サブブロックSBdは、エントリERY1−ERYmは、空(empty)状態である。
これらのサブブロックSBa−SBdに対するデータの書込/読出のワード線を指定するために、読出ポインタ110、書込ポインタ112およびポインタ制御論理114が設けられる。読出ポインタ110は、これらのサブブロックSBa−SBdに含まれる読出ワード線RWLAおよびRWLBを指定するポインタを生成する。書込ポインタ112は、ポートB書込ワード線WWLBを指定するポインタを生成する。読出ポインタ110および書込ポインタ112の生成するポインタは、サイクリックにサブブロックSBa‐SBdのエントリを指定する。
ポインタ制御論理114は、読出ポインタ110および書込ポインタ112のポインタを順次インクリメントするとともに、読出ポインタ110および書込ポインタ112の生成するポインタをオーバフローおよびアンダフローが発生しないように調整する。すなわち、ポインタ制御論理114は、読出ポインタ110の生成する読出ポインタおよび書込ポインタ112の生成するポインタを検出する。読出ポインタが書込ポインタに追いついたときには、アンダーフローが発生する可能性があり、アンダーフロー指示を生成する。また、ポインタ制御論理114は、この書込ポインタ112が生成するポインタが、読出ポインタ110の生成するポインタに追いついた場合、オーバーフローが生じる可能性があるため、オーバーフロー指示を生成する。これにより、FIFO領域におけるデータのオーバーフローおよびアンダーフローが生じるのを防止する。
読出ポインタ110および書込ポインタ112は、サブブロックSBa‐SBdの合計4m個のエントリをサイクリックに指定するようにポインタを生成する。サブブロックSBa−SBdに対してブロックアドレスおよびエントリアドレスを割当て、最大値のブロックアドレスでエントリアドレスが最大値に到達した場合に、初期値にポインタ110および112の生成するポインタをリセットする構成が利用されればよい。
ポインタ110および112の生成するポインタのビット幅は、FIFO領域のFIFO深さ(合計エントリ数)により決定される。先に実施の形態1において示したように、入力シフトレジスタ回路により、データパケットが順次シフトインされて、入力シフトレジスタ回路の保持するデータが、FIFO領域へ検索データとして一時格納されるために書込まれる。この場合、最小データパターン長(例えばL/8)と、データパケットの転送レート(たとえばGBビット/sec)とTCAM領域およびFIFO領域のアクセス時間との関係から、適宜、FIFO深さが定められればよい。すなわち、1つの検索データパターンに対してm個のエントリについて検索動作が行なわれる。従って、FIFO深さは、演算子セルアレイのアクセス時間のm倍の時間とデータパケット転送レートとに応じて定められればよい。
図30は、この発明の実施の形態2に従う半導体信号処理装置の各サブブロックに対応して設けられるローカル行選択駆動回路の構成を概略的に示す図である。この図30に示すローカル行選択/駆動回路においては、ローカルBポート書込ワード線選択駆動回路72の前段に、マルチプレクサ120が設けられ、ローカルAポート書込ワード線選択駆動回路126の前段に、マルチプレクサ122が設けられる。ローカル読出ワード線選択駆動回路128の前段にマルチプレクサ124が設けられる。このサブ行選択駆動回路70の構成において、ローカルAポート書込ワード線選択駆動回路126およびローカル読出ワード線選択駆動回路128は、それぞれ、図21に示すローカルAポート書込ワード線選択駆動回路74およびローカル読出ワード線選択駆動回路76に対応する。
マルチプレクサ120は、サブブロック属性指示信号MODFT<i>に従って、アドレスカウンタからのブロック選択信号BSおよび書込ワード線アドレスWADの組と、書込ポインタ112からの書込ブロック選択信号PWBSおよび書込ワード線アドレス信号PWADの組の一方を選択する。サブブロック属性指示信号MODFT<i>は、対応のサブブロックSBiが、TCAM領域として用いられるかメモリ領域として用いられるかを指定する。
ローカルBポート書込ワード線選択駆動回路72は、マルチプレクサ120を介して与えられるブロック選択信号および書込ワード線アドレス信号に従ってポートB書込ワード線WWLB1−WWLBmの1つを選択状態へ駆動する。対応のサブブロックSB<i>がTCAM領域として利用されることを指定するときには、マルチプレクサ120は、アドレスカウンタからのブロック選択信号BSおよび書込ワード線アドレス信号WADを選択する。対応のサブブロックSB<i>がFIFO領域であるときには、マルチプレクサ120は、書込ポインタ112からのポインタブロック選択信号PWBSおよびポインタ書込ワード線アドレス信号PWADを選択する。
マルチプレクサ122は、ブロック属性指示信号MODFT<i>が、TCAM領域を指定するときには、アドレスカウンタからのアドレス信号ADを選択し、FIFO領域を指定するときには、書込ポインタからのポインタ書込ブロック選択信号PWBSおよびポインタ書込ワード線アドレス信号PWADを選択する。
ローカルAポート書込ワード線選択駆動回路126は、ブロック属性指示信号MODFT<i>がTCAM領域を指定するときには、ブロック選択信号にかかわらずワード線イネーブル信号WWLENに従って活性化されてマルチプレクサを介して与えられるカウンタアドレス信号ADに対するデコード動作を行って、ポートA書込ワード線WWLA1−WWLAmのいずれかを選択状態へ駆動する。一方、ブロック属性指示信号MODFT<i>が、FIFO領域を指定するときには、ローカルAポート書込ワード線選択駆動回路126は、マルチプレクサ122からのポインタ書込ブロックアドレス選択信号PWBSが対応のサブブロックを指定するときに活性化され、ポートA書込ワード線イネーブル信号WWLEに応答してポインタ書込アドレス信号PWADをデコードして、ポートA書込ワード線WWLA1−WWLAmのいずれかを選択状態に駆動する。
マルチプレクサ124は、ブロック属性指示信号MODFT<i>が、TCAM領域を指定するときには、アドレスカウンタからのアドレス信号ADを選択し、一方、FIFO領域を指定するときには、読出ポインタからのポインタ読出ブロック選択信号PRBSおよびポインタ読出アドレス信号PRADを選択する。
ローカル読出ワード線選択駆動回路128は、ブロック属性指示信号MODFT<i>がTCAM領域を指定するときには、読出ワード線イネーブル信号RWLENに従って活性化され、マルチプレクサ124を介して与えられたアドレス信号ADに従って読出ワード線RWLA1,RWLB1−RWLAm,RWLBmのいずれかの組およびダミー読出ワード線DRWLを選択状態へ駆動する。一方、ブロック属性指示信号MODFT<i>が、FIFO領域を指定するときには、ローカル読出ワード線選択駆動回路128は、マルチプレクサ124を介して与えられるポインタブロック選択信号PRBSが対応のサブブロックを指定するときに、ポインタ読出ワード線アドレス信号PRADに従って、ダミー読出ワード線DRWL、および読出ワード線RWLA1,RWAB1−RWLAm,RWLBmの組のいずれかを読出ワード線活性化信号RWENの活性化に従って選択状態へ駆動する。
図31は、この発明の実施の形態2に従う半導体信号処理装置の制御回路80の構成を概略的に示す図である。図31に示す制御回路80は、以下の点て、図22に示す制御回路80とその構成が異なる。すなわち、読出ポインタ110、書込ポインタ112およびポインタ制御論理114がさらに設けられるとともに、さらに、ブロック属性設定回路130が設けられる。ポインタ制御論理114は、コマンドデコーダ81からの読出モード指示MODRのアサートに従って、読出ポインタ110および書込ポインタ112のポインタを制御する。読出ポインタ110は、アドレスカウンタ87からのカウントアップ信号CUPに従ってそのポインタを1つ増分し、読出ポインタとして、読出サブブロック選択信号PRBSおよび読出サブブロックワード線アドレス信号PRADを生成する。これにより、mエントリについてTCAM領域について検索が完了した後に、次の待ち行列化された検索データを読出してTCAM領域へ転送することができる。
書込ポインタ112は、クロック信号CLKに同期して、ポインタ制御論理114の制御の下に、書込ポイントとして、書込ブロック選択信号PWBSおよび書込ワード線アドレス信号PWADを生成する。これにより、入力データパケットから所定ビット幅のデータパターンが抽出される毎にFIFO領域に書き込むことができる。
ポインタ制御論路114は、読出ワード線活性化回路86およびAポート書込ワード線活性化回路84と同期して、書込ポインタ112のポインタを更新する。
ブロック属性設定回路132は、各サブブロック毎に、そのブロックの属性を示すブロック属性指示信号MODST<n:1>、TCAMモード指定信号MODTC<n:1>およびメモリモード指示信号MODMC<n:1>を生成する。このブロック属性設定回路132は、たとえばヒューズプログラム回路で構成され、固定的に、各サブブロックの属性を設定するように構成されてもよい。また、ブロック属性設定回路132は、コマンドデコーダ81からのテストモード指示信号MODTSTに従って外部から、起動時に、各サブブロックの属性を示す信号が設定されてもよい(この場合、ブロック属性設定回路132は、レジスタ回路で構成される)。
なお、図31に示す構成においては、読出ポインタ110が、アドレスカウンタ81からのカウントアップ信号CUPに従ってポインタを増分している。しかしながら、このアドレスカウンタ87からのカウントアップ信号CUPは、ポインタ制御論理114へ与えられ、ポインタ制御論理114が、カウンタからのカウントアップ信号CUPに従って読出ポインタ110のポインタを更新してもよい。
また、ポインタ制御論理114は、先に説明したように、読出ポインタ110および書込ポインタ112のポインタをモニタし、FIFO領域における格納データのオーバーフローおよびアンダーフローが生じるのを防止する。アンダーフローまたはオーバーフローが発生したときには、オーバーフローまたはアンダーフロー指示信号を外部へ出力するように構成されてもよい。
また、ブロック経路設定回路132は、コマンドデコーダ81からのテストモード指示信号MODTSTに従って外部からのデータEXDATAに従って選択信号SELA<1:0>およびSELB<1:0>を生成する。この初期設定時においては、選択信号SELA<1:0>を、マルチプレクサ102aおよび102cが、それぞれ、外部からのデータAおよびBを選択して、グローバル書込データ線GWDAおよびZGEDAに伝達する状態に設定する。これにより、初期設定時、FIFO領域に設定されたサブブロックの記憶ノードSNALおよびSNARにデータビット“1”を設定することができる。
ブロック経路設定回路132は、またヒューズ素子を含み、初期設定後、ヒューズ素子のプログラムにより、各選択信号SELA<1:0>およびSELB<1:0>の状態が固定的に設定されてもよい。但し、この場合には、被検索データの追加登録を行うことはできず、検索動作のみが実行される(FIFO領域への書込、FIFO領域からTCAM領域への転送および演算子セルのデータの読出が行われる)。
また、ブロック属性設定回路130と同様、ブロック経路設定回路132は、外部に設けられるレジスタからの経路設定データを外部データEXDATAとして受けて、経路選択信号SELA<1:0>およびSELB<1:0>の状態が設定されてもよい。この場合、外部のレジスタは、固定的に経路設定情報を格納する。
この図31に示す制御回路の他の構成は、図22に示す制御回路の構成と同じであり、対応する部分には同一参照符号を付して、その詳細説明は省略する。
以上のように、この発明の実施の形態2に従えば、演算子セルアレイを、TCAM領域およびFIFO領域に分割し、外部からのデータパターンをFIFO領域に順次格納し、このFIFO領域に格納されたデータを順次TCAM領域へ転送してパターン一致検索を行なっている。これにより、外部に別途、転送データパケットを格納するためのFIFOメモリが不要となり、装置の占有面積を低減することができる。
また、この半導体信号処理装置の演算子セルアレイ内において内部データの転送およびパターンの一致検索を行なっており、高速のデータ転送を行なうことができ、一致判定に要する時間を短縮することができる。
また、FIFO領域の深さをサブブロック単位で任意に変更することができ、最適なFIFOバッファ容量を実現することができる。
なお、この本発明の半導体信号処理装置においては、高密度に被検索パターンのマッピングを行なうことができる。しかしながら、マッピングするパターン種によっては、必要とされるエントリ数も大きく変化する。したがって、TCAM領域に割当てられるサブブロックの大きさも、このマッピングするパターンに応じて最適化し、残りの領域(サブブロック)FIFOに割付ける。また、これに代えて、外部からの検索データの転送速度が速い場合には、被検索パターンすべてのマッピングを少し犠牲にし、TCAM領域をある程度制限し、この制限された領域をFIFO領域に用いてFIFO領域の容量を増大させることができる。これにより、演算子セルアレイのTCAM領域およびFIFO領域のコンフィギュレーションを最適化して、文字列パターン検索の効率化を実現することができる。
[実施の形態3]
図32は、この発明の実施の形態3に従う半導体信号処理装置の1つのサブブロックSBiの構成を概略的に示す図である。図32において、サブブロックSBiは、m個のエントリERY1−ERYmを含む。これらのエントリERY1−ERYmは、s(=2^k)個の検索単位RUT(i,1)−RUT(i,s)を含むデータパターン格納領域DPSGと、マッピングフラグメモリ領域MFLGとに分割される。
検索単位RUT(i,1)−RUT(i,s)は、各々Nバイト幅を有し、記憶単位SUTに相補登録パターンデータビットを各々格納する。マッピングフラグメモリ領域MFLGにおいては、対応のエントリに格納されるデータパターンのパターン長を示すデータを演算子セルUOEに格納する。サブブロックSBiのサブアレイブロックSBAiの外部にセンスアンプ帯SABおよび経路切換回路帯TXGBおよびローカルマッチ線ML1−MLsが設けられる。サブブロックSBiの内部構成は、先の実施の形態2において説明した構成と同じである。
図33は、この発明の実施の形態3における1つのエントリに格納可能なデータパターンを示す図である。図33において、データパターンPAT1は、パターン長L(=N・s=N・2^kバイト)を有する。データパターンPAT2は、パターン長L/2を有し、データパターンPAT3は、パターン長L/4を有し、データパターンPAT4は、パターン長L/8を有する。データパターンPAT5およびPAT6は、パターン長L/16を有する。パターン長L、L/2、L/4、L/8、およびL/16のデータパターンの1つのエントリ内における格納位置は予め定められる。これにより、各エントリ単位で、パターン長の異なる被検索データを格納することができる。
図34は、1つのサブブロックSBiにおける被検索データのマッピングの一例を示す図である。図34において、サブブロックSBiは、例示のために、6個のエントリERY1−ERY6を含む。データパターン格納領域DPSGは、夫々の位置が固定的に定められるデータ格納領域RG1−RG5に分割可能である。領域RG1は、パターン長L/2のデータパターンを格納する領域に割当てられる。領域RG2は、パターン長L/4のデータパターンを格納する領域に割当てられる。領域RG3は、パターン長L/8のデータパターンを格納する領域に割当てられる。領域RG4およびRG5は、それぞれパターン長L/16のデータパターンを格納する領域に割当てられる。領域RG1−RG5全体を用いて、パターン長Lのデータパターンが格納される。
図34において、エントリERY1においては、パターン長Lのデータパターン♯1が格納される。この場合、マッピングフラグメモリ領域MFLGにおいては、最上位ビットが“1”に設定され、パターン長Lの有効データパターンが格納されたことが示される。
エントリERY2においては、領域RG1にパターン長L/2のデータパターン♯2が格納される。この場合、パターン長L/2の有効データパターンが格納されたことを示すため、エントリERY2のマッピングフラグメモリ領域MFLGにおいて、2番目の上位ビットが“1”に設定される。残りのビットはすべて“0”である。
エントリERY3においては、領域RG1およびRG2に、それぞれパターン長L/2およびL/4のデータパターン♯3および♯4が格納される。マッピングフラグメモリ領域MFLGにおいて、対応のマッピングフラグビットの第2および第3上位ビットが“1”に設定され、残りのビットは“0”に設定される。これにより、領域RG2およびRG3に、それぞれデータパターン長L/2およびL/4の有効データパターンが格納されたことが示される。
エントリERY4においては、データ格納領域RG1、RG2、およびRG3に、パターン長L/2、L/4およびL/8のデータパターン♯5、♯6および♯7が、それぞれ格納される。この場合、対応のマッピングフラグビットにおいて、第2から第4上位ビットが“1”に設定され、領域RG1、RG2およびRG3に、それぞれパターン長L/2、L/4およびL/8の有効データがマッピングされたことが示される。
エントリERY5においては、パターン長L/2のデータパターン♯8、パターン長L/4のデータパターン♯9、パターン長L/8のデータパターン♯10およびパターン長L/16のデータパターン♯11が、それぞれ、データ格納領域RG1からRG4に格納される。対応のマッピングフラグビットにおいて、第2から第5ビットが“1”に設定され、最上位ビットおよび最下位フラグビットは“0”に設定される。これにより、領域RG1−RG4に、それぞれ、パターン長L/2、L/4、L/8およびL/16のデータパターンが格納されたことが示される。
エントリERY6においては、領域RG1、RG2、RG3、RG4およびRG5に、それぞれ、パターン長L/2のデータパターン♯12、パターン長L/4のデータパターン♯13、パターン長L/8のデータパターン♯14、およびパターン長L/16のデータパターン♯15および♯16がそれぞれ格納される。この場合、対応のマッピングフラグビットにおいて、最上位ビットを除くフラグビットがすべて“1”に設定される。これにより、領域RG1−RG5において、それぞれパターン長L/2、L/4、L/8、およびL/16、L/16の有効データパターンが格納されたことが示される。
この図34に示すように、データパターン格納領域DPSGにおいて、パターン長毎にエントリ内の格納位置を予め固定的に定め、各領域に有効データが格納される場合、対応のマッピングフラグビットに“1”に立てる。これにより、各エントリ毎に、複数のパターン長の異なるデータパターンをマッピングすることができる。
このとき、マスク指示信号MSKを利用することにより、指定されたパターン長内でビット単位で、被検索データパターン長を調整することができる。
図35は、この発明の実施の形態3に従う半導体信号処理装置の1つのサブブロックのローカルマッチ線と各検索単位との接続態様を概略的に示す図である。図35において、検索単位RUT(i,1)−RUT(i,2^k)それぞれに対応してローカルマッチ線ML1−ML2^kが設けられる。検索単位RUT(i,1)−RUT(i,2^k)のローカル読出データ線LRDが、それぞれ対応のローカルマッチ線ML1−ML2^kに結合される。
ローカル一致判定回路LMDiは、これらのローカルマッチ線ML1−ML2^kそれぞれに対応して設けられるマッチ線アンプAMP1−AMP2^kと、こららのマッチ線アンプAMP1−AMP2^kの出力信号に従って領域RG1−RG5個々に一致/不一致を判定しローカル一致判定信号LMCH<i>を生成するローカル一致判定部LMDTiとを含む。
図36は、図35に示す一致判定部LMDTiの構成を概略的に示す図である。図36において、一致判定部LMDTiは、マッチ線アンプAMP1−AMP2^kの出力信号を受けるORゲート140aと、領域RG1−RG5それぞれに対応して設けられるORゲート140b−140fと、これらのORゲート140a−140fの出力信号を受けてローカル一致判定信号LMCH<i>を生成するANDゲート142とを含む。
ORゲート140bは、マッチ線アンプAMP1−AMP^(k−1)の出力信号を受ける。ORゲート140cは、マッチ線アンプAMP(2^(k−1)+1)−AMP(3・2^(k−2)の出力信号を受ける。ORゲート140dは、マッチ線アンプAMP(3・2^(k−2)+1)−AMP(7・2^(k−3)+1)−AMP15・2^(k−4)の出力信号を受ける。ORゲート140fは、マッチ線アンプAMP1−AMP2^(k−1)の出力信号を受ける。ORゲート140cは、マッチ線アンプAMP(15・2^(k−4)+1)−AMP(2^k)の出力信号を受ける。
領域RG1−RG5と全領域とに対応して、マッチ線アンプAMP1−AMP2^kの出力信号をグループ化して受けることにより、あるエントリにおいていずれかの領域において生じた一致を識別することができる。すなわち、ある領域において一致判定の場合には、その領域に対応するマッチ線アンプの出力信号はすべてLレベルであり、対応のORゲートの出力信号もLレベルとなり、ANDゲート142からのローカル一致判定信号LMCH<i>もLレベルとなり、一致がいずれかのパターン長のデータパターンにおいて発生したことを識別することができる。一致検出時、エントリアドレスとともに対応のマッピングフラグビットを読出すことにより、各エントリにおいて種々のパターン長のデータが格納される場合においても、一致したデータパターンの候補を限定することができる。効率的に例えば不正アクセス対策を行なうことができる。
この場合、アドレスカウンタにより生成されるエントリアドレスを装置外部へ読出すことにより、いずれのエントリで一致が発生したかを識別することができる。
[マッチ線配置の変更例]
図37は、この発明の実施の形態3に従う半導体信号処理装置のローカルマッチ線の配置の変更例を概略的に示す図である。図37において、データパターン格納領域DPSGが、データパターン長に応じたデータ格納領域RG1−RG5に分割される。領域RG1−RG5それぞれに対応して、ローカルマッチ線ML1−ML5が設けられ、領域RG1−RG5に共通にローカルマッチ線ML0が設けられる。
領域RG1には、検索単位RUT(i,1)−RUT(i,2^(k−1))が配置され、各々のローカル読出データ線LRDが、ローカルマッチ線ML0およびML1に結合される。
領域RG2は、検索単位RUT(i,2^(k−1)+1)−RUT(i,3・2^(k−1))が配設され、各々のローカル読出データ線LRDが、ローカルマッチ線ML0およびML2に結合される。
領域RG3においては、検索単位RUT(i,3・2^(k−2)+1)−RUT(i,7・2^(k−3))が配設され、各々のローカル読出データ線LRDが、ローカルマッチ線ML0およびML3に結合される。
領域RG4は、検索単位RUT(i,7・2^(k−3)+1)−RUT(i,15・2^(k−4))を含み、各々のローカル読出データ線LRDが、ローカルマッチ線ML0およびML4に結合される。
領域RG5は、検索単位RUT(i,15・2^(k−4)+1)−RUT(i,2^k)を含み、各々のローカル読出データ線LRDが、ローカルマッチ線ML0およびML5に結合される。
ローカル一致判定回路LMDiにおいて、ローカルマッチ線ML0−ML5それぞれに対応してマッチ線アンプAMP0−AMP5が設けられる。マッチ線アンプAMP0−AMP5の出力信号が、6入力OR回路144へ与えられる。この6入力OR回路144は、マッチ線アンプAMP0−AMP5の出力信号がすべてLレベルのときに、対応のローカル一致判定信号LMCH<i>をLレベルに設定する。
この図37に示す構成の場合、データパターン長に応じてローカルマッチ線を設け、各データパターン長に割当てられた領域のセンスアンプ回路の出力信号を、対応のローカルマッチ線に結合している。これにより、ローカルマッチ線の数を増大させることなく、異なるパターン長のデータパターンについての一致/不一致判定結果を生成することができる。
図38から図44は、パターン長の異なる被検索データパターンの書込シーケンスの一例を概略的に示す図である。図38から図44においては、3つのエントリERYa−ERYcに対する被検索データパターンの書込動作シーケンスを一例として示す。
図38において、データパターン格納領域DPSGには、まだ被検索データパターンは登録されていない。この場合、記憶ノードSNARおよびSNALには、データ“1”が書込まれる。マッピングフラグ格納領域MFLGにおいても、その記憶ノードSNAに“1”が書込まれ、記憶ノードSNBにはデータビット“0”が書込まれる。これにより、マッピングフラグビットはすべて“0”の状態に設定される。フラグビットの更新は、記憶ノードSNBに対するデータ“1”の書込により行われる。
図39において、パターン長LのデータパターンPAT♯1がエントリERYaに格納される。このデータ格納時、先に実施の形態1および2において説明したように、記憶ノードSNBRおよびSNBLに被検索データパターンが書込まれる。この場合、エントリERYaのマッピングフラグメモリ領域MFLGにおいて、最上位ビットが“1”に設定される。
図40において、エントリERYbのデータ格納領域DPSGの領域RG1にパターン長L/2のデータパターンPAT♯2が書込まれる。このとき、マッピング格納領域MFLGにおいて、対応のビット(第2ビット)が“1”に設定される。
図41において、パターン長L/2のデータパターンPAT♯3の書込が行なわれる。この場合、パターン長L/2のデータを格納する領域RG1内の空き領域が存在するエントリは、エントリERYcである。したがって、エントリERYcの領域RG1に被検索データパターンPAT♯3が書込まれる。このとき、また、マッピングフラグメモリ領域MFLGにおいても、対応のエントリERYcの第2上位ビットが“1”に設定される。
図42において、パターン長L/4のデータパターンPAT♯4の書込が行なわれる。この場合、データパターン格納領域DPSGにおいては、エントリERYb内のパターン長L/4のデータ格納領域RG2が先頭空き領域であり、エントリERYbに対する書込が行われ、データパターンPAT♯4が領域RG2に格納される。応じて、マッピングフラグメモリ領域MFLGにおいても対応のマッピングフラグビット(第3上位ビット)が“1”に設定される。
図43において、パターン長L/8のデータパターンPAT♯5の書込が行なわれる。この場合、領域RG3において空き領域が存在する先頭エントリERYbの領域RG3に対し、データパターンPAT♯5が書込まれる。このデータパターンPAT♯5の書込と並行して、マッピングフラグメモリ領域MFLGのエントリERYbの対応のビット(第4上位ビット)が“1”に設定される。
図44において、パターン長L/8のデータパターンPAT♯6の書込が行なわれる。この場合、領域RG3に空き領域がある先頭エントリは、エントリERYcである。したがって、エントリERYcのデータパターン格納領域DPSGの領域RG3に、データパターンPAT♯6が書込まれる。このとき、マッピングフラグメモリ領域MFLGにおいてエントリERYcの対応のビットが“1”に設定される。
上述のように、書込データパターンのパターン長に応じて先頭空き領域に書込データを順次格納する。この場合、既に書込まれているデータパターンの書替えを防止するために、選択エントリの非書込領域においては、その記憶データを読出して再書込する動作を行なう。これにより、各エントリに順次データパターン長に応じて被検索データパターンを書込む場合においても、登録データパターンの破壊が防止される。この方式は、実施の形態1および2においてサブブロック単位でパターン長の異なる被検索データパターンの書込が行われる場合においても、同様の内部読出しおよび再書込みが、選択エントリの非書込領域に対して行われる。
図45は、この発明の実施の形態3におけるデータパスの構成およびマルチプレクサに対する経路選択信号の割当てを概略的に示す図である。図45において、データパターン格納領域DPSGが、領域RG1−RG5にそれぞれ分割される。データパス50も、これらの領域RG1−RG5に対応して、データパスブロックDPH1−DPH5にそれぞれ分割される。マッピングフラグメモリ領域MFLGに対して、データパスブロックDPH0が設けられる。データパス50の内部構成としては、図17および図24に示す構成と同様の構成が用いられる。図45においては、データパス50において代表的にマルチプレクサ102aー102dを示す。
演算子アレイの構成としては、実施の形態2のFIFO領域およびTCAM領域に分割可能な構成を用いる。センスアンプ回路の出力信号の伝播経路を切換えるスッチングトランジスタTXi1およびTXi2(図45においては示さず)について、マッピングフラグメモリ領域MFLGに対しては、選択信号MODFTC<n:1>およびMODFMC<n:1>が、それぞれTCAMモード指示信号およびメモリモード指示信号として与えられる。マッピングフラグメモリ領域MFLGに対しては、メモリモード指示信号MODFTC<n:1>およびMODFMC<n:1>は、メモリモードを指定する状態に設定される。従って、マッピングフラグメモリ領域MFLGにおいては、常時、センスアンプ回路の出力信号がグローバル読出データ線に伝達される。
データパターン格納領域DPSGに対しては、ブロックTCAMモード指示信号SMODTC<n:1>およびブロックメモリモード指示信号SMODMC<n:1>が与えられる。ブロックTCAMモード指示信号SMODTC<n:1>は、データ書込モード指示信号(MODW)と実施の形態2において利用されるTCAMモード指示信号MODTC<n:1>とに従って生成される。データ書込時においては、ブロックTCAMモード指示信号SMODTC<n:1>は、全てオフ状態に設定され、センスアンプ回路の出力とローカルマッチ線とは分離される。検索動作時においては、ブロックTCAMモード指示信号SMODTC<n:1>は、TCAMモード指示信号MODTC<n:1>に従って生成される。
このブロックTCAMモード指示信号SMODTC<n:1>は、書込モード指示信号(MODW)の反転信号とTCAMモード指示信号MODTC<n:1>との論理積演算により生成される。
ブロックメモリモード指示信号SMODMC<n:1>は、メモリモード指示信号MODMC<n:1>とブロック選択信号との論理和により生成される。TCAM領域として割当てられるかFIFO領域に割当てられるかに応じて、TCAMモード指示信号MODTC<n:1>およびメモリモード指示信号MODMC<n:1>の論理値が設定される。
このブロックメモリモード指示信号SMODMC<n:1>は、データ書込モード指示信号(MODW)とブロック選択信号とメモリモード指示信号MODMC<n:1>との論理和により生成される。データ書込時においては、ブロックメモリモード指示信号SMODMC<n:1>は、選択サブブロックを特定するブロック選択信号(BS)に従ってメモリモードに設定される。検索動作時においては、ブロック選択信号を無効として、メモリモード指示信号MODMC<n:1>に従ってブロックメモリモード指示信号SMODMC<n:1>が生成される。データ書込時において、データ書込対象のエントリを含むサブブロックにおいてセンスアンプ回路の出力信号が対応のグローバル読出データ線GRDに伝達される。これにより、データ書込時において選択エントリの非選択記憶単位に、記憶データの再書き込みを行う経路を確保する。
データパターン格納領域DPSGおよびマッピングフラグ格納領域MFLG個々にセンスアンプ回路の出力信号の伝播経路を設定する。これにより、被検索データ書込時および検索動作時において、マッピングフラグビットが書き換えられるのを防止する。
一方、データパスブロックDPH0−DPH5に共通に、選択信号SELA<1:0>が与えられる。データパスブロックDPH0においては、選択信号SELA<1:0>のうちの1ビットが与えられて、そのマルチプレクサ102aおよび102cの接続経路が設定される。一方、これらのデータパスブロックDPH1−DPH5においては、選択信号SELA<1:0>に従って、マルチプレクサ102aおよび102cの接続経路が共通に設定される。
また、データパスブロックDPH1−DPH5に対して、ローカル選択信号LSELB1<1:0>−LSELB5<1:0>がそれぞれ与えられる。ローカル選択信号LSELB1<1:0>により、領域RG1に対応して配置されるマルチプレクサ102bおよび102dの経路が設定される。残りのデータパスブロックDPH2−DPH5それぞれにおいても、ローカル選択信号LSELB2<1:0>−LSELB5<1:0>に応じて、マルチプレクサ102bおよび102dの経路が、個々に設定される。
マッピングフラグ格納領域MFLGに対して設けられるデータパスブロックDPH0においては、マッピングフラグメモリ領域MFLGの演算子セルUOEの列それぞれに対応してローカル選択信号LSELB0およびLSELB1<1:0>−LSELB5<1:0>のうちの1ビットがそれぞれ与えられる。これにより、マッピングフラグメモリ領域MFLGにおいては、1つのエントリに配置される演算子セルUOEに対するデータ書込経路が個々に設定される。
このデータパス構成により、被検索データパターンのマッピング時において、データ格納領域RG1−RG5単位で被検索データのパターンの書込を行なうことができ、また、マッピングフラグビットの値を、各データ格納領域に対応して個々に書込むことができる。また、検索時に、マッピングフラグビットを格納する演算子セルの記憶ノードSNAにデータ“1”を書込むことにより、マッピングフラグビットの書換えを防止する。
図46は、データパス構成におけるデータパスブロックDPH0の構成を概略的に示す図である。このデータパスブロックDPH0は、マッピングフラグメモリ領域の1エントリに配置される6個の演算子セルUOE0−UOE5に対応して6個の入力切換回路ISK0−ISK5を含む。入力切換回路ISK0−ISK5は、それぞれ同一構成を有し、データアンプ150と、切換回路152および154とを含む。
入力切換回路ISKi(i=0−5のいずれかの整数)のデータアンプ150は、対応のグローバル読出データ線FGRLi上の信号を増幅する。切換回路152は、選択信号SELA<1:0>の1ビットSELAに従ってデータアンプ150の出力信号と外部からの書込ビットFA<i>の一方を選択して対応のグローバル書込データ線FGWAiに伝達する。
切換回路154は、ローカル経路選択信号LSELBi<1:0>の1ビットLSELBiに従ってデータアンプ150の出力信号と与えられたフラグビットFB<i>の一方を選択して対応のグローバル書込データ線FGWBi上に伝達する。グローバル書込データ線FGWAi上のデータは、対応の列の演算子UOEiの記憶ノードSNAに書込まれる。グローバル書込データ線FGWBi上のデータは、対応の演算子の記憶ノードSNBに書込まれる。
図46に示すように、入力切換回路ISK0−ISK5それぞれにおいて個々に、選択信号LSELB0−LSELB5に従って、切換回路154の接続経路を設定することにより、1ビット単位で、フラグビットの書込を行なうことができる。
図47は、図46に示すマッピングフラグメモリ領域に対するデータパスブロックDPH0のマッピングフラグビット書替え時のデータの流れを概略的に示す図である。図47においては、データパターン長L/4の領域RG2への被検索データの書込が行なわれる場合のマッピングフラグビットの書込を一例として示す。
この場合、選択信号LSELB0−LSELB1およびLSELB3−LSELB5は、対応のデータパターン長の書込が対応の領域RG1、RG3−RG5に対して行なわれないことを示している。入力切換回路ISK0−ISK1およびISK3−ISK5において、マルチプレクサ154が対応のデータアンプ150の出力信号を選択してグローバル書込データ線FGWB0−FGWB1およびFGWB3−FGWB5上に転送する。一方、入力切換回路ISK2において切換回路154は、選択信号LSELB2が対応の領域へのデータ書込を示しており、マッピングフラグビットFB<2>を選択して、グローバル書込データ線FGWB2上に転送する。
演算子セルUOE0−UOE5においては、初期化時に記憶ノードSNAにはデータビット“1”が格納されている。したがって、入力切換回路ISK0、ISK1およびISK3−ISK4においては、これらの演算子セルの記憶ノードSNBに格納されたデータを記憶ノードSNBに再書込している。一方、演算子セルUOE2については、与えられたマッピングフラグビットFB<2>を演算子セルUOE2の記憶ノードSNBに書込み、記憶データを“1”に設定する。これにより、マッピングフラグビットのうち、書込を行なう領域のパターン長に応じたマッピングフラグビットの値のみを“1”に書替えることができる。この書込時においては、選択信号SELAの状態は、フラグビットFA<0>−FA<5>の書込は行なわれないため、任意である。
図48は、検索動作モードにおけるフラグビットの転送経路を概略的に示す図である。この検索モード時においては、フラグビットFA<5:0>が、全て“1”に設定される。マルチプレクサ152は、選択信号SELAに従って、フラグビットFA<5:0>を選択する状態に設定される。マルチプレクサ154は、特に限定されないが、選択信号LSELB<5:0>に従って、フラグビットFB<5:0>を選択して対応のグローバル書込データ線FGWB0−FGWB5に転送される。すなわち、検索動作時においては、検索対象のエントリにおいては、記憶ノードSNBへの書込は行われないため(ポートB書込ワード線WWLBは非選択状態)、マルチプレクサ154の接続経路は、任意の状態に設定することができる。
マッピングフラグメモリ領域においては、グローバル書込データ線FGWA0−FGWA5にデータ“1”が伝達される。検索時においては、ポートA書込ワード線WWLAが選択状態に駆動され、ポートB書込ワード線WWLBは、非選択状態である。従って、マッピングフラグメモリ領域においては、検索が行われるエントリの演算子セルUOEの記憶ノードSNAにデータ“1”が格納され、記憶ノードSNBに格納されるフラグビットの更新は行われない。これにより、検索動作時において、ポートA書込ワード線WWLAが選択されて検索データの書込が行われても、何ら問題は生じない。
また、FIFO領域から待ち行列化された検索データを読出して、各サブブロックへ転送する構成においても、FIFO領域に対応するマッピングフラグメモリ領域のフラグビットが転送されて書込まれることは防止される。この場合、FIFO領域に対応するフラグメモリ領域においてフラグビットFB<5:0>の書込が行われても、この領域のフラグビットが、TCAM領域に対応して配置されるマッピングフラグ格納エントリに対しては転送されないため、何ら問題は生じない。
図には示していないが、初期化時においては、マルチプレクサ150および152は、それぞれフラグビットFA<5:0>およびFB<5:0>を選択する状態に設定される。これにより、マッピングフラグメモリ領域において、記憶ノードSNAおよびSNBにデータ“1”および“0”を書込むことができる。
このマッピングフラグメモリ領域に対応して配置されるデータパスブロックDPH0の接続経路は、演算子アレイ構成としてサブブロックSB1−SBn全てがTCAM領域として利用される場合においても同様である。フラグビットFA<i>が“1”に設定され、選択エントリの演算子セルの記憶ノードSNAに対して書込が行われるだけである。従って、このデータパスブロックDPH0の接続経路は、演算子アレイがTCAM領域だけの場合、およびTCAM領域およびFIFO領域として利用される場合、いずれにおいても適用することができる。
図49は、データパス50におけるデータパスブロックDPHjおよびDPH(j+1)の構成を概略的に示す図である。データパスブロックDPHjは、入力切換回路ISKja−ISKjbを含み、データパスブロックDPH(j+1)は、入力切換回路ISK(j+1)c、…を含む。入力切換回路ISKja−ISKjbに対応して、データパターン格納領域DPSGにおいては記憶単位SUTa−SUTbが設けられ、入力切換回路ISK(j+1)cに対応して記憶単位SUTcが設けられる。
データパスブロックDPHj及びDPH(j+1)における入力切換回路ISKja−ISKjb、ISK(j+1)c…の構成は、図24に示すデータパスの構成と同じであり、データアンプ100lおよび100r、マルチプレクサ102a−102b、選択マスク回路52aおよび52b、およびインバータ53を含む。
データパスブロックDPHjにおいては、マルチプレクサ102bおよび102dに対し共通に、ローカル選択信号LSELBj<1:0>が与えられ、データパスブロックDPH(j+1)のマルチプレクサ102bおよび102dに対してはローカル選択信号LSELB(j+1)<1:0>が与えられる。
選択信号SELA<1:0>が、データパス50内のマルチプレクサ102aおよび102cに対しすべて共通に与えられる。
データパターン格納領域DPSGにおいては、記憶単位SUTaに対しグローバル読出データ線GRDla,GRDra、グローバル書込データ線GWDAa,ZGWDAa,ZGWDBaおよびGWDBaが設けられる。記憶単位SUTbに対しては、グローバル読出データ線GRDlb,GRDrb、グローバル書込データ線GWDAb,ZGWDBb,ZGWDAb,およびGWDBbが設けられる。記憶単位SUTcに対しては、グローバル読出データ線GRDlc,GRDrc、グローバル書込データ線GWDAc,ZGWDBc,ZGWDAc,およびGWDBcが設けられる。
この図48に示すデータパス50の構成においては、データパスブロックDPHjおよびDPH(j+1)それぞれにおいて、マルチプレクサ102bおよび102dの選択経路が個々に、ローカル選択信号LSELBj<1:0>およびローカル選択信号LSELB(j+1)<1:0>に従って設定される。
図50は、図49に示すデータパスブロックDPHjおよびDPH(j+1)におけるデータ書込時のデータ伝達経路を概略的に示す図である。この図50に示す伝達経路においては、データパスブロックDPHjへの被検索データパターンの書込は行なわれず、データパスブロックDPH(j+1)に対し被検索データパターンの書込が行なわれる。
この場合、ローカル選択信号LSELBj<1:0>により、データパスブロックDPHjのマルチプレクサ102bおよび102dを、対応のデータアンプ100lおよび100rの出力信号ををそれぞれ選択する状態に設定する。一方、ローカル選択信号LSELB(j+1)<1:0>は、データパスブロックDPH(j+1)のマルチプレクサ102bおよび102dが、それぞれ、外部からの書込データビットB<c>を受ける選択マスク回路52aおよび52bの出力信号を選択する状態に設定される。選択マスク回路52aおよび52bは、マスク指示信号MSK<c>に従って、データビット/B<c>およびB<c>を選択して伝達する。
この経路設定状態において、選択エントリにおいて読出ワード線RWLAおよびRWLBを選択状態へ駆動した後、ポートB書込ワード線WWLBを選択状態へ駆動する。したがって、データパスブロックDPHjに対して設けられる記憶単位SUTaおよびSUTbは、その記憶ノードSNBLおよびSNBRの記憶データが、それぞれ対応の記憶ノードSNBLおよびSNBRに再書込されるだけである。すなわち、記憶ノードSNA(SNAL、SNAR)には、初期状態においてデータ“1”が書込まれている。したがって、記憶単位SUTa−SUTbにおいては、記憶データの再書込が行なわれ、記憶データの破壊は生じない。
一方、データパスブロックDPH(j+1)においては、対応のマルチプレクサ102bおよび102dにより、選択マスク回路52aおよび52bからのデータビットB<c>の反転ビット/B<c>および書込ビットB<c>が選択され、それぞれ記憶単位SUTcの記憶ノードSNBLおよびSNBRへ格納される。このとき、記憶単位SUTcから、データアンプ100lおよび100rを介して記憶データの内部読出が行なわれるものの、その内部読出データは、ポートA書込ワード線WWLAは非選択状態であり、何ら影響は及ぼさない。
これにより、先に図38から図44を参照して説明したように、既登録データパターンの書換えを生じることなく、パターン長の異なるデータパターンを順次空き領域に、格納することができる。
検索動作時のデータ伝達経路は示していないが、図26に示すように、実施の形態2と同様に設定する。すなわち、データパスブロックDPH1−DPH5全てにおいてマルチプレクサ102aおよび102cが、対応のデータアンプ100lおよび100rの出力信号を選択する状態に設定される。一方、マルチプレクサ102bおよび102dが、外部からの検索データA<j>およびインバータ53からの反転検索データ/A<j>を選択する状態に設定される。これにより、与えられた検索データをマルチプレクサ102bおよび102dを介してFIFO領域に転送して格納して待ち行列化して、TCAM領域に待ち行列化された検索データをマルチプレクサ102aおよび102cを介して転送して、順次検索動作を実行することができる。
なお、サブブロックSB1−SBnが全てTCAM領域として利用される場合には、実施の形態1と同様、データパスブロックDPH1−DPH5全てにおいて検索データAおよび/Aを選択する状態に設定される。従って、アレイ構成に応じて選択信号の論理が決定されてマルチプレクサ102bおよび102dの接続経路が設定されればよい。
また、ローカル選択信号SELA<1:0>およびSELB<1:0>の設定をサブブロック毎に行って再書込みをサブブロック単位で実行することにより、サブブロック単位で異なるパターン長のデータを格納して、1エントリに複数のデータパターンを格納することができる。これにより、実施の形態1および2において、被検索データパターン登録時において、サブブロック単位でパターン長が異なる場合においても、先に登録された被検索データパターンの上書きを生じることなく、1エントリに複数のデータパターンをマッピングすることができる。また、いかに詳細に説明するように、データパターン格納領域DPSGにおいて空き領域をドントケア状態に維持することができる。
また、データパスブロックにおいてマスク指示信号MSK<j>を利用することによりビット単位で被検索データパターン長を設定することができる。
図51は、この発明の実施の形態3に従う半導体信号処理装置に対して供給される被検索データパターンの構造を概略的に示す図である。図51において、入力された書込データパケットは、ヘッダHEDと、データ領域DPQとを含む。ヘッダHEDには、データ領域DPQに格納されるデータのパターン長を指定するパターン長指示データPDが格納される。データ領域DPQに、書込データパターンが格納される。このデータ領域DPQは、演算子セルアレイの領域RG1−RG5それぞれに対応して領域に配置され、パターン長に応じた各対応の領域に、書込データパターンが格納される。ヘッダHEDに格納されるパターン長指示信号PDをデコードして、書込領域を特定して、書込データ転送経路を設定する。
図52は、この図51に示す書込データの構成の一具体例を示す図である。図52において、ヘッダHEDには、パターン長L/4を示すパターン長指示データPD(L/4)が格納される。データ領域DPQにおいては、データ格納領域RG2に対応する領域に、パターン長L/4の有効データが格納される。残りの領域RG1、およびRG3−RG5の格納データは任意(X)である。
この図51および図52に示すように、ヘッダHEDに含まれるパターン長指示データPDを抽出するとともに、データ領域DPQにおいて、データ格納領域RG1−RG5に対応する領域に書込データを配置することにより、以下に説明するように、書込データを演算子アレイのエントリのパターン長に応じたデータ格納領域に正確に書込むことができる。この有効データ領域内において各データビット毎に有効/無効ビット指示を連結するように生成することにより、各ビット毎にマスク指示信号MSK<j>を生成することができる。
図53は、この発明の実施の形態3に従う半導体信号処理装置における書込アドレス発生回路160の構成の一例を概略的に示す図である。図53において、書込アドレス発生回路160は、パターン長指示データPDをデコードするパターン長デコーダ170と、このパターン長デコーダ170のデコード信号に従って選択的にカウント動作を行なうアドレスカウンタ171−175と、パターン長デコーダ170からの多ビット選択信号PSELに従ってアドレスカウンタ171−175の出力アドレス信号の1つを選択し書込アドレスWADおよびブロックアドレス信号を生成する選択回路(MUX)176と、アドレスカウンタ175の最下位ビットLSBBをパターン長デコーダ170からの指示信号EN(L/16)に従って選択的に通過させ、領域指定信号RGS4/5を生成するバッファ177を含む。
パターン長デコーダ170は、ヘッダHEDに含まれるパターン長指示データPDをデコードし、そのデコード結果に従ってパターン長イネーブル信号EN(L)、EN(L/2)、EN(L/4)、EN(L/8)、およびEN(L/16)のいずれかを選択的にアサートする。パターン長イネーブル信号EN(L)は、パターン長指示データPDが、パターン長Lを指定するときにアサートされる。パターン長イネーブル信号EN(L/2)は、パターン長指示データPDがパターン長L/2を指示するときにアサートされる。パターン長イネーブル信号EN(L/4)は、パターン長指示データPDがパターン長L/4を指定するときにアサートされる。パターン長イネーブル信号EN(L/8)およびEN(L/16)は、このパターン長指示データPDが、パターン長L/8およびL/16を指定するときにそれぞれアサートされる。
Lアドレスカウンタ171は、パターン長イネーブル信号EN(L)のアサートに従ってカウント値を更新し、そのカウント値をパターン長Lのデータの書込アドレスを指定するアドレス信号として出力する。(L/2)アドレスカウンタ172は、パターン長イネーブル信号EN(L/2)のアサートに従ってカウント値を更新し、パターン長L/2の書込データの書込アドレスを生成する。
(L/4)アドレスカウンタ173は、パターン長イネーブル信号EN(L/4)のアサートに従ってカウント動作を行ない、そのカウント値をパターン長L/4の書込データの書込アドレスとして出力する。(L/8)アドレスカウンタ174は、パターン長イネーブル信号EN(L/8)のアサートに従ってカウント動作を行ない、そのカウント値によりパターン長L/8のデータの書込アドレスを生成する。(L/16)アドレスカウンタ175は、パターン長イネーブル信号EN(L/16)のアサートに従ってカウント動作を行ない、パターン長L/16のデータパターンの書込領域を最下位アドレスビットLSBBにより指定するとともに、残りの上位ビットにより、パターン長L/16のデータパターンの書込アドレス(エントリアドレス)を生成する。
選択回路176は、このパターン長デコーダ170からのパターン選択信号PSELに従って、アサートされたパターン長イネーブル信号に対応するアドレスカウンタ171−175の出力信号を選択し、パターン長書込アドレスWADおよび書込ブロックアドレスを生成する。
バッファ177は、パターン長デコーダ170からのパターン長イネーブル信号EN(L/16)のアサート時、(L/16)アドレスカウンタ175の最下位ビットLSBBをバッファ処理し、領域指定信号RGS4/5を生成する。この領域指定信号RGS4/5により、書込領域が領域RG4であるのか領域RG5であるのかが指定される。従って、(L/16)アドレスカウンタ175は、そのカウント値が、書込エントリおよび書込データ格納領域を共に指定するため、アドレスカウンタ171−174に比べて、そのカウント値が1ビット多くされ、最下位ビットLSBBが、領域RG4およびRG5のいずれかを指定する領域指定ビットとして用いられる。これにより、データパターン長L/16の書込データを、同一エントリの領域RG4およびRG5にそれぞれ格納することができる。
なお、領域指定信号RGS4/5は、領域RG4を指定する領域指定信号RGS4および領域RG5を指定する領域指定信号RGS5とに分離されて生成されてもよい。
(L/16)アドレスカウンタ175の最下位ビットLSBBを領域指定に用いるため、入力データパケットのデータ領域DPQにおける領域RG4およびRG5に対応する領域に対しては、交互にパターン長L/16のデータパターンが配置される。データ領域DPQにおいて領域RG4およびRG5に対応する領域に交互にパターン長L/16のデータパターンを配置するのは、装置外部で単にコンパイラ等を用いてデータパタン長に応じて位置を変更するようにされてもよい。また、これに代えて、図示しないバレルシフタなどのデータデータ列変換回路を用いて、パターン長指示データPDをデコードして、パターン長がL/16の時に、領域RG4およびRG5に相当する領域に交互にデータパターンが格納されてもよい。
図54は、入力切換回路ISKjおよびISKjxのBポートに対するマルチプレクサの入力とローカル選択信号との対応を概略的に示す図である。図54において、入力切換回路ISKjはマッピングフラグビットFB<j>に対応して設けられ、そのマルチプレクサ154は、ローカル選択信号LSELBjに従って入力I1に与えられるデータアンプ150の出力信号と入力I2に与えられるマッピングフラグビットFB<j>の一方を選択して、対応のグローバル書込データ線FGWBに伝達する。jは1から5のいずれかである。ローカル選択信号LSELBjは、2ビットローカル選択信号LSELBj<1:0>の下位ビットLSELBj<0>から生成される。最上位フラグビットに対して設けられるマルチプレクサ150は、後に説明する選択信号LSBL0に従ってその経路が設定される。この選択信号LSBL0は、領域指定信号RG1−RG5が全て選択状態のときに選択状態とされる。
被検索データビットに対して設けられる入力切換回路ISKjxにおいて、マルチプレクサ102bは、2ビットローカル選択信号LSELBj<1:0>に従って入力I3に与えられる対応のデータアンプ100lの出力信号、入力I4に与えられる検索データビットA、および入力I5に与えられる反転書込データビット(被検索データビット)/Bの1つを選択して対応のグローバル書込データ線ZGWDB上に伝達する。
マルチプレクサ102dは、同様、ローカル選択信号LSELBj<1:0>に従って入力I6に与えられる対応のデータアンプ100rの出力信号、入力I7に与えられる検索データビット/Aおよび入力I8に与えられる書込データビットBの1つを選択してグローバル書込データ線GWDB上に伝達する。
図54に示すように、この実施の形態3における半導体信号処理装置においては、演算子セルアレイは、実施の形態2において説明したTCAM領域およびFIFO領域を含む構成に対応する。しかしながら、FIFO領域は特に用いられなくてもよい。サブブロックSB1−SBnが全てTCAM領域として用いられてもよい。但し、センスアンプ回路に対してグローバル読出データ線および経路切換え用スイッチングトランジスタは設けられる。
以上の動作をまとめると、以下のようになる。マッピンフラグメモリ領域において、検索モード時においては、読出ワード線RWLAおよびRWLBをともに選択状態に駆動して記憶データをグローバル読出線に読出す。このときマルチプレクサ(152)によりデータ“1“が選択されて、グローバル書込データ線GWDAに伝達される。その後、検索動作、すなわち、選択エントリの記憶ノードSNAへのグローバル書込データ線FGWAおよびGWDA上のデータの書込および演算子セルの記憶データの読出が実行される。これにより、検索が行われるエントリにおいて、マッピングフラグビットが再書込みされるだけである。
データパターン格納領域においては、検索時、グローバル書込データ線GWDAにマルチプレクサ(102aおよび102c)により検索データが転送される。この後、TCAM領域における記憶ノードSNAに対する検索データの書込、演算子セルの記憶データの読出し、センスアンプ回路の出力信号の対応のローカルマッチ線への転送が実行される。検索データは外部からの検索データまたはFIFO領域において待ち行列化された検索データである。
データ書込時においては、グローバル書込データ線GWDBに書込みデータが転送されて選択エントリの記憶ノードSNBへの書込データの書込が行われる。この書込データは、選択エントリから読出された記憶データまたは外部からの書込データである。
図55は、図54に示す入力切換回路のマルチプレクサにおけるローカル選択信号の論理とそのときの選択入力との対応を一覧にして示す図である。検索モード時においては、ローカル選択信号LSELBj<1:0>は、(0,0)に設定される。jは、1から5の整数である。この場合、マルチプレクサ154は、入力I1に与えられデータアンプ150の出力信号を選択し、マルチプレクサ102bは、入力I4へ与えられる検索データAを選択し、マルチプレクサ102dは、入力I7へ与えられた補の検索データ/Aを選択する。この検索モード時、データアンプ150からの内部読出ビットが、外部へ読出されてもよい。このときには、マルチプレクサ(102a、102b)が、データアンプ100l、100rの出力信号を選択して図示しないグローバル書込データ線GWDAおよびZGWDAへ検索データを転送する。
外部データの書込時において、選択データパスブロックの場合、ローカル選択信号LSELBj(1,0)は(0,1)に設定される。この場合、マルチプレクサ154は、入力I2を選択し、外部からのマッピングフラグビットFB<j>を選択する。マルチプレクサ102bおよび102dは、それぞれ入力I5およびI8を選択し、外部からの書込データビット/BおよびBをそれぞれ選択する。
この外部書込モード時において非選択データパスブロックに対しては、ローカル選択信号LSELBj<1:0>は、(1,0)に設定される。この場合、マルチプレクサ154は、入力I1に与えられるデータアンプ150からの内部読出データを選択する。マルチプレクサ102bおよび102dは、それぞれ、対応のデータアンプ100lおよび100rからの内部読出データを選択する。
ローカル選択信号LSLBj<1:0>の(1,1)の状態は、未使用状態である。他のモード拡張に対応するために保存される。
この図54に一覧して示すように、検索モード時においては、マルチプレクサ102bおよび102dが、外部からの検索データビットAおよび/Aを選択し、これによりFIFO領域に対する検索データビットのバッファ書込が実現される。このとき、マッピングフラグビットに対する入力切換回路ISKjにおいては、内部で読出されたフラグビットが読出されてグローバル書込データ線ZGWBに伝達される。従って、検索動作時においては、フラグビットが読出されて再書込されるだけである(検索動作と並行して)。
選択信号SELA<1:0>については示していないが、以下の論理を満たす。検索動作時においては、マッピングフラグメモリ領域に対するマルチプレクサ152は、データアンプ150の出力信号を選択してグローバル書込データ線FGWAに伝達する。データパターン格納領域においては、マルチプレクサ102aおよび102bは、データアンプ100lおよび100rの出力信号を選択して対応のグローバル書込データ線GWDAに伝達する。
データ書込時(被検索データパターンの登録時)においては、これらのマルチプレクサ152,102aおよび102cの接続経路は任意である。データ書込時においては、ポートA書込ワード線WWLAは非選択状態に維持されるためである。
なお、上述の論理は、サブブロックがTCAM領域およびFIFO領域として利用される場合である。全サブブロックがTCAM領域として利用される場合には、検索動作時、マルチプレクサ102aおよび102cは、外部からの検索データAおよび/Aを選択する。マルチプレクサ152は、データアンプ150の出力信号を選択する。
演算子アレイの構成に応じて選択信号SELA<1:0>およびSELB<1:0>の論理が適宜設定されればよい。
なお、上述の構成に代えて、書込ワード線に対して階層ワード線構造を用いて、マッピングフラグメモリ領域とデータパターン格納領域とに対して、別々にローカル書込ワード線を配置しても良い。検索動作時においては、マッピングフラグ領域に対して設けられる書込ワード線WWLAおよびWWLBを常時非選択状態に設定し、データパターン格納領域において書込ワード線WWLAを、カウンタアドレス信号に従って選択状態に駆動する。この場合には、サブブロックSB1−SBnがTCAM領域とFIFO領域とに分割される構造であっても、検索動作時においてマッピングフラグの書換えは生じず、安定にマッピングフラグを維持することができる。
図56は、ローカル選択信号を発生する部分の構成の一例を概略的に示す図である。図56において、ローカル選択信号発生部は、パターン長選択信号PSEL(パターン長イネーブル信号EN(L)−EN(L/16)と領域指定信号RGS4/5とをデコードし、領域活性化信号RGEN1−RGEN5を生成する領域デコード回路180と、これらの領域活性化信号RGEN1−RGEN5とメイン選択信号SELB<1:0>とに従ってローカル選択信号LSELB1<1:0>−LSELB5<1:0>およびLSELB0を生成するローカル選択信号発生回路185を含む。
領域デコード回路180は、パターン長選択信号PSELが指定するデータパターン長に従って活性化すべき領域を指定する領域活性化信号RGEN1−RGEN3およびRGEN4およびRGEN5を活性化する。データパターン長がLのときには、領域活性化信号RGEN1−RGEN5がすべてアサートされる。パターン長がL/2の場合には、領域活性化信号RGEN1がアサートされ、データパスブロックDPH1が指定する。パターン長がL/4の場合には、領域活性化信号RGEN2がアサートされ、データパスブロックDPH2が指定される。データパターン長がL/8の場合には、領域活性化信号RGEN3が指定され、データパスブロックDPH3に対応する領域に対する外部からのデータ書込が行なわれる。パターン長がL/16の場合には、領域指定信号RGS4/5のビット値に従って領域活性化信号RGEN4およびRGEN5のいずれかがアサートされる。これにより、データパスブロックDPH4およびDPH5の一方がアサートされ、パターン長L/16のデータパターンの書込領域が特定される。
ローカル選択信号発生回路185は、領域活性化信号RGEN1−RGEN5に従って、選択データパスブロックおよび非選択データパスブロックに対応して、ローカル選択信号を生成する。ローカル選択信号LSELB0は、領域活性化信号RGEN1−RGEN5がすべてアサートされたときにアサートされる。
図57は、図56に示すローカル選択信号発生回路185の具体的構成の一例を概略的に示す図である。図57において、メイン選択信号のビットSELB<1>およびSELB<0>がそれぞれインバータ190aおよび190bによって反転され、相補データビット対が生成される。ローカル選択信号LSELB1<1:0>−LSELB5<1:0>それぞれに対応してセレクタ192a−192eが設けられる。セレクタ192aは、選択ビットSELB<1>およびSELB<0>とメイン選択信号ビット/SELB<1>および/SELB<0>を受け、領域活性化信号RGEN1に従って、相補ビット対の組の各々から一方の組のビットを選択し、2ビットローカル選択信号LSELB1<1:0>を生成する。
残りのセレクタ192b−192e各々においても、領域活性化信号RGEN2−RGEN5に従って相補ビットSELB<1>および/SELB<1>の組と相補ビットSELB<0>および/SELB<0>各々から1ビットの信号を選択して、ローカル選択信号LSELB2<1:0>−LSELB5<1:0>をそれぞれ生成する。
この図57に示す構成において、図54に示す論理テーブルから明らかなように、セレクタ192a−192eは、対応の領域活性化信号RGEN1−RGEN5がアサートされる場合には、選択ビットSELB<1>およびSELB<0>を選択して対応のローカル選択信号を生成する。一方、対応の領域活性化信号RGEN1−RGEN5が非選択状態を示すときには、インバータ190aおよび190bからの補の選択ビット/SELB<1>および/SELB<0>を選択して対応のローカル選択信号LSELB1<1:0>−LSELB5<1:0>を生成する。
領域活性化信号RGEN1−RGEN5を受けるゲート回路194により、マッピングフラグメモリ領域のマッピングフラグビットの最上位ビットに対する選択信号LSELB0が生成される。このゲート回路194は、領域活性化信号RGEN1−RGEN5がすべてアサートされている場合に、対応の領域選択信号LSELB0を“1”にアサートする。
図58は、この発明の実施の形態3に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。この図58に示す制御回路の構成は、以下の点で、図22に示す制御回路80とその構成が異なる。すなわち、アドレスカウンタ87および外部アドレス信号EXADとアドレス発生回路160からのアドレスのいずれかをモード指示信号MODIに従って選択するマルチプレクサ200が設けられる。アドレス発生回路160は、書込モード指示信号MODWのアサート時、アサートされ、図52に示すようにパターン長指示データPDに従って被検索データ書込アドレスを生成する。このときには、マルチプレクサ200が、アドレス発生回路160の出力信号を選択する。一方、検索モード時においては、マルチプレクサ200はアドレスカウンタ87の生成するアドレスカウント値を選択し、被検索データパターンの追加登録時には、外部アドレスEXADを選択する。
アドレス発生回路160からの内部アドレス信号が、書込ワード線アドレス信号WADおよび書込ブロックアドレス信号BADを含み、ブロックデコーダ89によりブロック選択信号BSが生成される。
ブロック属性設定回路130は、図31に示す構成と同様、メモリサブブロックそれぞれに対してモード指示信号MODTC<n:1>、MODMC<n:1>、MODFT<n:1>を固定的に生成する。属性修飾回路203は、ブロック選択信号BSと書込モード指示MODWとに従ってブロックTCAMモード指示信号SMODTC<n:1>およびブロックメモリモード指示信号SMODMC<n:1>を生成する。
属性修飾回路202は、ブロック属性設定回路130からのモード指示信号MODTC<n:1>およびMODMC<n:1>を、ブロック選択信号BSおよび書込モード指示信号MODWとに従って修飾して、ブロックTCAMモード指示信号SMODTC<n:1>およびブロックメモリモード指示信号SMODMC<n:1>を生成する。
フラグビット生成回路204は、領域デコーダ180からの領域活性化信号RGEN1−RGEN5に従って、フラグビットFB<5:0>を生成する。領域活性化信号RGEN1−RGEN5が全て活性状態のときには、最上位フラグビットFB<0>がセットされる。それ以外の時には、領域活性化信号RGEN1−RGEN5が指定する領域に対応するフラグビットFB<1>−FB<5>がセットされる。これにより、有効データの書込が行われた領域に対するフラグビットが“1”にセットされる。
ブロック経路設定回路132の生成する選択信号SELA<1:0>およびSELB<1:0>に従って、選択信号SELB<1:0>から、図56に示す領域デコード回路180およびローカル選択信号発生回路185により、ローカル選択信号LSELB1<1:0>−LSELB5<1:0>およびLSELB0が生成される。
この図57に示す制御回路80の他の構成は、図22に示す制御回路の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
TCAM領域およびFIFO領域にサブブロックSB1−SBnを分割することが可能である。従って、図58においては示していないが、制御回路80内において、図31に示す構成と同様、リードポインタ110、ライトポインタ112およびポインタ制御論理114が配置され、検索動作時にFIFO領域に対する読出および書込アドレスが生成される。
なお、マッピングフラグメモリ領域MFLGとデータパターン格納領域DPSGに対して別々にローカル書込ワード線WWLAおよびWWLBが配置され、これらの領域に共通にメイン書込ワード線MWLLAおよびMWWLBが配置される階層ワード線が利用される構成が用いられてもよい。
また、この発明の実施の形態3に従う演算子セルアレイの構成は、実施の形態1および2の構成に対しても適用することができる。これらの実施の形態1および2においては、サブブロック単位でパターン長が設定される。従って、これまで説明した実施の形態3に従う構成をそのまま適用することより、サブブロックにおいて、パターン長がエントリのビット幅よりも短いデータパターンを書込むときに、すでに書込まれた領域のデータが書き換えられるのを防止することができ、また、空き領域をドントケア状態に維持することができる。
この場合には、書込アドレス信号としてブロック選択信号とワード線アドレスを生成することにより、ブロック単位でパターン長の異なるデータパターンを書込むことができる。
なお、データ書込時において、データ書込が行なわれる領域に対して、センスアンプ回路および/またはデータアンプの動作を停止するように構成してもよい。領域活性化信号RGEN1−RGEN5とセンスアンプ活性化信号またはデータアンプ活性化信号とを組合せて各領域単位でセンスアンプ回路またはデータアンプの動作を制御するように構成すればよい。
以上のように、この発明の実施の形態3に従えば、エントリ単位で格納データパターン長を変更可能に設定し、1エントリに複数の被検索データパターンを格納している。これにより、サブブロックにおける空き領域を低減することができ、より効率的かつ高密度に被検索データパターンをマッピングすることができる。
なお、データパターン長の種類としては、最小パターン長が、検索単位のビット幅以上であれば、その数は任意である。
なお、実施の形態3においても、一致検出時、対応のエントリのアドレスを検出することにより、一致データパターンの候補を抽出することができる。
[実施の形態4]
図59は、この発明の実施の形態4に従う半導体信号処理装置の要部の構成を概略的に示す図である。この図59においては、図36に示すローカル一致判定回路LMDiに対し、一致パターン長判定回路210が設けられる。この一致パターン長判定回路210は、ORゲート140a−140fの出力信号をそれぞれ反転するインバータ212a−212fと、インバータ212a−212fそれぞれの出力信号を格納するレジスタ回路214とを含む。レジスタ回路214は、インバータ212a−212fそれぞれに対して設けられるレジスタ214a−214fを含む。
図59に示すローカル一致判定回路の構成は、図36に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
先に、実施の形態3において説明したように、ローカル一致判定回路LMDiにおいて、ORゲート140a−140fの出力信号は、それぞれ、パターン長が異なる被検索データパターンについての一致/不一致判定結果を示している。したがって、このレジスタ回路214において各ORゲート140a−140fの出力信号の反転信号を格納することにより、レジスタ214fの、格納値が“1”のときに、対応のパターン長の被検索データについて一致が検出されたことが示される。
これにより、1つのエントリに複数のパターン長の被検索データパターンが格納される場合において、ローカル一致判定信号LMCH<i>がLレベルとなり、一致を示しているときに、レジスタ回路214のレジスタ214a−214fの格納値を見ることにより、一致したデータパターンのパターン長を識別することができる。
図60は、一致パターンのパターン長を最終的に検出する部分の構成を概略的に示す図である。図60において、各サブブロックに対応して、一致パターン長判定回路が配置されるが、図60においては、レジスタ回路REGK1−REGKnを代表的に示す。これらのレジスタ回路REGK1−REGKnそれぞれに含まれるレジスタ214a−214fそれぞれに対応してパターン長一致検出線222a−222fが設けられる。このパターン長一致検出線222a−222fには、それぞれ、レジスタ回路REGK1−REGKnの対応のレジスタ214a−214fが、ワイヤードOR接続される。
パターン長一致検出線222a−222fに対して、初期化時に接地電圧レベルにプリチャージするプリチャージ回路220が一方側に設けられ、また、パターン長一致検出線222a−222fの他方側に、パターン長検出アンプ224a−224fが設けられる。
このパターン長検出アンプ224a−224fは、対応のパターン長一致検出線222aー222fの電位を増幅して、最終一致パターン長指示フラグFPa−FPfを出力する。
この図60に示す構成の場合、あるサブブロックにおいてパターン一致が検出された場合、レジスタ214a−214fの対応のレジスタの格納値がHレベル(“H”)となり、対応のパターン長一致検出線の電位レベルが上昇する。パターン長検出アンプ224a−224fで、これらのパターン長一致検出線222a−222fの電位を増幅することにより、最終一致パターン長指示フラグFPa−FPfのうちの対応のフラグがHレベル(“H”)となり、一致したデータパターンのパターン長を外部へ報知することができる。
なお、この最終一致パターン長指示フラグFPa−FPfは、並列に外部へ出力されてもよく、また、図示しないシフトレジスタを用いて1ビットずつ順次シフトアウトされてもよい。
また、図59に示す構成において、パターン長一致検出線222a−222fそれぞれに代えて、ORゲートが用いられてもよい。各ORゲートにおいて対応のレジスタの格納値のOR演算を行って、論理和信号により一致/不一致判定信号を生成する。このORゲートを用いる場合にはパターン長検出アンプは、特に設ける必要はない。
[変更例]
図61は、この発明の実施の形態4の変更例の構成を概略的に示す図である。この図61に示す構成においては、図37に示すローカルマッチ線の構成に対し、一致パターン長判定回路210が設けられる。すなわち、マッチ線アンプAMP0−AMP5の出力信号が、それぞれ、一致パターン長判定回路210のインバータ212a−212fへ与えられる。パターン長一致判定回路210の構成は、先の図59に示す構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
この図61に示す構成においても、マッチ線アンプAMP0−AMP5は、各パターン長に対応して設けられており、一致時にその出力信号がLレベルとなる。したがって、レジスタ回路REGKiのレジスタ214a−214fの格納ビットの論理値を見ることにより、一致データパターンのパターン長を識別することができる。
この図61に示すローカルマッチ線の構成においても、最終的な一致パターン長指示フラグを生成する構成としては、図60に示す構成を利用することができる。
以上のように、この発明の実施の形態4に従えば、各パターン長毎に一致判定結果を示すデータを格納しており、1エントリに複数のデータパターンが格納される場合においても、データパターン一致時における一致したパターン長を容易に識別することができる。これにより、一致エントリのアドレスと組合わせることにより、一致データパターンを識別することができる。したがって、たとえば一致パターン長の対応のデータパターンを識別することにより、たとえば不正アクセスのウイルスの種類などを同定することができる。
[実施の形態5]
図62は、この発明の実施の形態5に従う半導体信号処理装置の記憶単位SUTの電気的等価回路を示す図である。図62に示す記憶単位SUTは、以下の点で、図1に示す実施の形態1から4において用いられる記憶単位とその構成が異なる。すなわち、検索データAおよび/Aを伝達するポートA書込データ線WDAおよびZWDAが、ポートB書込データ線GWDBおよびZGWDBと直交するように配設される。すなわち、書込Bポートデータ線WPRTBLおよびWPRTBRに結合されるグローバル書込データ線ZGWDBおよびGWDBは、複数のサブブロックに共通に配設され、一方、書込Aポートデータ線WPRTALおよびWPRTARに結合されるポートA書込データ線WDAおよびZWDAは、各サブブロックにおいて演算子セルの行に対応してそれぞれ配置される。
本実施の形態5においては、エントリの配置がこれまでの実施の形態1から4と異なり列方向に整列する演算子セルでエントリが構成される。1つのサブブロックにおいては、全ワード線およびビット線を選択状態として、全エントリに置いて並行して検索動作(2次元的検索)を実行する。
記憶単位SUTは、演算子セルUOELおよびUOERを含む。これらの演算子セルUOELおよびUOERの構成は、図1に示す演算子セルUOELおよびUOERの構成と同じである。対応する部分には同一参照番号を付し、その詳細説明は省略する。
図63は、図62に示す記憶単位の平面レイアウトを概略的に示す図である。この図63に示す記憶単位SUTの平面レイアウトは、以下の点で、図2に示す記憶単位の平面レイアウトと異なる。すなわち、検索データAおよび/Aを伝達する書込データ線を構成する導電線300aおよび300bが、X方向に延在してかつ互いに離れて配置される。導電線300aは、分岐配線302aにビア304aを介して結合される。この分岐配線302aは、コンタクト/ビア5dlを介して、下層に形成されるP型活性領域1clに結合される。一方、導電線300bは、分岐配線302bにビア304bを介して電気的に接続される。分岐配線302bは、ビア/コンタクト5drを介して下層のP型活性領域1crに電気的に接続される。
これらのポートA書込データ線を構成する導電線300aおよび300bは、ソース線SLを構成する導電線3と同一配線層の配線である。分岐配線302aおよび302bは、ともに、ビット線およびBポートグローバル書込データを構成する導電線6b,6c,6eおよび6fと同一配線層の配線である。分岐配線302aおよび302bを利用することにより、ポートA書込ワード線WWLAを構成する導電線2dが設けられている場合においても、配線の衝突を生じさせることなく、ポートAおよびポートB書込データ線を直交配置する構造を実現することができる。
この図63に示す記憶単位の他の平面レイアウトは、図2に示す記憶単位の平面レイアウトと同じであり、対応する構成要素については、同一参照番号を付し、その詳細説明は省略する。従って、図63に示す記憶単位SUTの活性領域の3次元的配置は、図3に示す構造と同じとなる。従って、P型活性領域1ar、1al、1cr、および1clにおいて,N型活性領域と隣接する領域は、低濃度のP−型不純物領域で構成され、コンタクトが形成される領域は、高濃度のP+型不純物領域で構成される。
図64は、この発明の実施の形態5に従う半導体信号処理装置の全体の構成を概略的に示す図である。図64において、演算子セルアレイは、これまでの実施の形態1から4と同様、複数のサブブロックSB1−SBnに分割される。
サブブロックSB1−SBnに共通に、Bポート書込回路400が設けられる。Bポート書込回路400は、入力データ(被検索データ)DINBから内部書込データを生成し、グローバルBポート書込データ線GWDB1,ZGWDB1−GWDBV,ZGWDBV上に伝達する。ここで、Vは、登録データパターン(被検索データパターン)の数に応じて適宜定められる。
サブブロックSB1−SBnに対し、Aポート書込回路410と行選択駆動回路420とが設けられる。Aポート書込回路410は、サブブロックSB1−SBnそれぞれに対応して設けられるローカルAポート書込回路415.1−415.nを含む。これらのローカルAポート書込回路415.1−415.nから、ポートA書込データ線WDA1,ZWDA1−WDAN,ZWDANに検索データAが伝達される。図63においては、サブブロックSB1に対してのみ、ポートA書込データ線WDA,ZWDAを示し、残りのサブブロックSB2−SBnにおいては、図面を簡単にするために示していない。
行選択駆動回路420は、サブブロックSB1−SBnそれぞれに対応して設けられるローカル行選択駆動回路425.1−425.nを含む。これらのローカル行選択駆動回路425.1−425.nは、読出ワード線RWLA,RWLBおよび書込ワード線WWLA,WWLBを、図示しないアドレス信号に従って選択状態へ駆動する。図64においては、1エントリに対して設けられるワード線RWLA,RWLB,WWLA,WWLBの組を、単位ワード線群UWLGで示す。
サブブロックSB1−SBnに共通にグローバル読出データ線GRDL1,GRDR1−GRDLV,GRDRVが設けられる。これらのグローバル読出データ線GRDL1,GRDR1−GRDLV,GRDRVが、このサブブロックSB1−SBnそれぞれに含まれるブロック選択ゲートのオン/オフ状態に従って、選択的にサブブロックSB1−SBnそれぞれに含まれるセンスアンプ回路からの読出データを受ける。
グローバル読出データ線GRDL1,GRDR1−GRDLV,GRDRVに対し一致判定回路430が設けられる。一致判定回路430は、グローバル読出データ線線GRDL1,GRDR1−GRDLV,GRDRVそれぞれに対して設けられるローカル一致判定回路を含み、各記憶単位列毎に被検索データパターンと検索データパターンの一致/不一致を判定する。従って、グローバル読出データ線GRDL1,GRDR1−GRDLV、GRDRVの対がそれぞれ、マッチ線として利用される。
なお、図64においては、一致判定回路430が、Bポート書込回路400と対向して配置されるように示す。しかしながら、一致判定回路430がBポート書込回路400と隣接してまたは同一側に配置されてもよい。
図65は、この発明の実施の形態5に従う半導体信号処理装置における検索動作原理を示す図である。図65においては、1つのサブブロックSBiにおける構成を代表的に示す。列方向に演算子セルUOELが整列して配置され、左側演算子セル列OUECLが形成される。同様、列方向に整列して右側演算子セルUOERが整列して配置され、右側演算子セル列OUECRが形成される。
このサブブロックSBiにおいては、エントリERYjは、演算子セル列対OUECLおよびOUECRで構成される。サブブロックSBiにおいては、演算子セル行ROW1−ROWmが設けられる。演算子セル行ROWkに対応して、読出ワード線RWLAkおよびRWLBkが配置される。
左側演算子セル列OUECLおよび右側演算子セル列OUECRそれぞれに対応してセンスアンプ回路SAKLおよびSAKRが設けられる。センスアンプ回路SAKLおよびSAKRは、それぞれ、動作時、対応のダミー演算子セルDUEからの参照電流Irefと対応のビット線を流れるセル電流ICELおよびICERを差動増幅する。
センスアンプ回路SAKLおよびSAKRの動作時においては、エントリERY1−ERYmに対応して配置される読出ワード線RWLA1,RWLB1−RWLAm,RWLBmを並行に選択状態へ駆動する。この場合、図65においては示していないが、ポートA書込ワード線WWLA1−WWLAmも選択状態へ駆動される。
すなわち、演算子セルUOELおよびUOERの記憶ノードSNALおよびSNARには、検索データAおよび/Aが書き込まれた後に、読出ワード線RWLAおよびRWLBが選択状態に駆動される。応じて、演算子セル列OUECLおよびOUECRそれぞれにおいて、ビット線BLRおよびBLLに、それぞれ、エントリERYjの演算子セルUOELおよびUOERの記憶データに応じた電流が流れる。
図66は、このセンス動作時におけるビット線を流れるセル電流ICELおよびICERの関係を示す図である。演算子セルUOELおよびUOERは、それぞれ、データA、/Bおよび/A、Bを格納し、演算子セルUOELおよびUOERの選択時には、演算A・/Bおよび/A・Bの結果に応じた電流が対応のビット線に流れる。したがって、この演算子セル列OUECLおよびOUECRにおいて、多ビットデータAおよびBが一致している場合には、セル電流ICELおよびICERはほとんど流れず、図66において電流IC0で示す電流が流れる。一方、多ビットデータAおよびBにおいて1ビットが不一致の場合、演算子セル列OUECLまたはOUECRにおいて、この1つの不一致状態の演算子セルから電流が流れ、図66において、IC1で示す大きさの電流がセル電流ICELまたはICERとして流れる。
2つの演算子セルにおいて、記憶データビットと検索データビットとが不一致の場合、これらの2つの不一致状態の演算子セルからビット線に電流が流れ、IC2で示される電流がセル電流として流れる。同様、3つの演算子セルが不一致状態のときには、IC3で示される電流が流れる。したがって、演算子セル列OUECLまたはOUECRにおいてデータAおよびBが不一致の演算子セルの数が増大するにつれて、セル電流ICELおよびICERが増大する。
ダミー演算子セルDUEが供給する参照電流Irefとして、電流IC0およびIC1の間の電流を供給する。このダミーセルDUEは、先の図7において説明したものと同じ構成を備え、基準電圧VREFのレベルを調整することにより、参照電流Irefを所望のレベルに設定することができる。
したがって、本実施の形態5においては、検索データAと被検索データBは、列方向に延在するエントリにデータパターンが配列され、各記憶単位列において、データパターンの一致/不一致が判定される。
図67は、この発明の実施の形態5に従う半導体信号処理装置の要部の構成をより具体的に示す図である。図67において、mビット検索単位RUTM1−RUTM2…が設けられる。このmビット検索単位RUTM1、RUTM2…は、各々、演算子セル行ROW1−ROWmを含む。これらの検索単位RUTM1、RUTM2…は、サブブロックSB1、SB2、…に対応する。
これらの検索単位RUTM1−RUTM2、…は、各々、共通に領域REGP1、REGP2、…、REGPkに分割される。この検索単位における領域REGP1、REGP2、…RAGPk各々は、行列状に配列される記憶単位SUTを含み、この記憶単位SUTは、左側演算子セルUOELおよび右側演算子セルUOERを含む。演算子セルUOELおよびUOERに結合されるビット線BLLおよびBLRが、それぞれセンスアンプ回路SAKLおよびSAKRに接続される。mビット検索単位RUTM1、RUTM2、…全体にわたる記憶単位SUTの列により、エントリERYが構成される。
mビット検索単位RUTMiにおいては、センスアンプ回路SAKLおよびSAKRに対してブロック選択ゲートSGiが設けられる。ブロック選択ゲートSGiは、対応のブロック選択信号BS<i>に従って導通し、対応のセンスアンプ回路SAKLおよびSAKRの出力を、複数のmビット検索単位RUTM1−RUTM2、…に共通に列方向に延在して配置されるグローバル読出データ線GRDLに結合する。
ここで、図67において、領域REGP1においては、グローバル読出データ線GRDL11、GRDR11、…が設けられ、領域REGP2においては、グローバル読出データ線GRDL21,GRDR21、…が設けられる。領域REGPkにおいては、グローバル読出データ線GRDLk1,DRDRk1、…が設けられる。ここで、kは、先の実施の形態1における検索単位の数を示す2^kのkとは、特に関連性はない。
この領域REGP1、REGP2、…REGPkにおいて対応のエントリERYに格納される検索データパターンのパターン長が、予め固定的に定められる。
一致判定回路430は、それぞれ、グローバル読出データ線GRDLおよびGRDRに対して設けられるデータアンプAMPL、AMPRを含む。図67においては、グローバル読出データ線GRDL11,GRDR11、GRDL21,GRDR21、GRDLk1,GRDRk1それぞれに対して設けられるデータアンプAMP1R、AMP1L、AMP2L、AMP2R、およびデータアンプAMPkL,AMPkRを代表的に示す。
データアンプAMP1L,AMP1Rは、エントリに対応して対をなして配設され、データアンプイネーブル信号APEN<1>に応答して活性化されて、活性化時、対応のグローバル読出データ線上のデータを増幅する。
領域REGP2に対して設けられるデータアンプAMP2L,AMP2Rは、エントリに対応して対をなして配置され、データアンプイネーブル信号APEN<2>の活性化に応答して活性化され、アンプ基準電圧VREFapと対応のグローバル読出データ線上の電位とを差動増幅する。
領域REGPkに対して配置されるデータアンプAMPkL,AMPkRは、エントリに対応して対をなして配置され、データアンプイネーブル信号APEN<k>の活性化に応答して活性化され、活性化時、アンプ基準電圧VREFapと対応のグローバル読出データ線GRDLk1,GRDRk1上の電位を差動増幅する。
図示しないエントリに対してもデータアンプ対が配置され、それぞれ対応のデータアンプイネーブル信号APEN<*>に従って活性化され、対応のエントリに対して配置されるグローバル読出データ線上の電位とアンプ基準電圧VREFapとを差動増幅する。ここで、*は、1からkのいずれかである。
各領域に割当てられるデータパターン長が異なる。検索動作は2次元的に行われる、すなわち、演算子セル行ROW1−ROWmを並行して選択して列方向に演算子セルデータを読出される。検索動作時、領域REGP1−REGPk各々において、個々にデータアンプを活性化する。データパターン長が領域毎に異なる場合においても、正確に検索データパターンと被検索データパターンとの一致/不一致を判定することができる。この検索動作については、後に詳細に説明する。
これらのデータアンプの対AMP1L,AMP1R、AMP2L,AMP2R、…AMPkL,AMPkRの各記憶単位列(エントリ)に対して配置されるデータアンプ対に対してそれぞれNORゲートNG11、NG21、…NGk1が設けられる。これらのNORゲートNG11,NG21,NGk1は、それぞれ対応のデータアンプの対の出力信号がともにLレベルのときにHレベルの信号を出力する。すなわち、記憶単位列(エントリ)毎にデータAおよびBのパターンの一致/不一致が判定される。
NORゲートNG11、NG21、…NGk1、…に対して、それぞれ一致信号確定回路MSLT11、MSLT21、…MSLTk1、…が設けられる。一致信号確定回路MSLT11、MSLT21、MSLTk1は、それぞれ、プリチャージ指示信号ZPREに従って、選択的に動作し、動作時、対応のNORゲートNG11、NG21、…NGk1、…の出力信号に従って一致判定信号MACH<1>、MACH<j>、…MACH<l>、…を生成する。したがって、各領域REGP1、REGP2、…REGPk各々において、記憶単位列(エントリ)毎に被検索データBと検索データAのパターンの一致/不一致が判定され、各エントリ毎に一致/不一致の判定結果を示す信号MACH<i>が生成される。
グローバル読出データ線GRDLおよびGRDR各々に対してプリチャージゲートPRQTが設けられる。これらのプリチャージゲートPRQTは、領域REGP1−REGPkそれぞれにおいてプリチャージ指示信号PREDP<1>−PREDP<k>それぞれに従って選択的にオン状態とされて、対応のグローバル読出データ線GRDLおよびGRDRを接地電圧レベルにプリチャージする。従って、領域REGP1−REGPkおのおのにおいて、個々にグローバル読出データ線GRDLおよびGRDRのプリチャージを実行する。
図68は、図67に示す一致信号確定回路MSLT11、MSLT21、…MSLTk1…の構成の一例を示す図である。図68においては、一致信号確定回路を符号MSLTで代表的に示す。
図68において、一致信号確定回路MSLTは、プリチャージ指示信号ZPREをゲートに受けるPおよびNチャネルMOSトランジスタPT10およびNT10と、ゲートに対応のNORゲートNGの出力信号を受けるNチャネルMOSトランジスタNT11とを含む。PチャネルMOSトランジスタPT10のソースが電源ノードに結合され、MOSトランジスタNT10およびNT11がPチャネルMOSトランジスタPT10と接地ノードの間に直列に接続される。
この一致信号確定回路MSLTは、さらに、MOSトランジスタPT10およびNT10の接続ノードの信号を反転するインバータIV10と、インバータIV10の出力信号を反転してインバータIV10の入力に伝達するインバータIV11を含む。インバータIV10の出力駆動力は、インバータIV11よりも大きくされ、したがって、インバータIV10からの一致信号MACH<i>は、対応のNORゲートNGの出力信号に従って変化する(プリチャージ指示信号ZPREがHレベルのとき)。
一致信号確定回路MSLTは、プリチャージ指示信号ZPREがLレベルのときには、MOSトランジスタPT10が導通し、NチャネルMOSトランジスタNT10がオフ状態となり、インバータIV10からの一致判定信号MACH<i>はLレベルにプリチャージされる。プリチャージ指示信号ZPREがHレベルとなると、MOSトランジスタPT10がオフ状態となり、インバータIV10の出力ノードは電源ノードから分離される。このとき、対応のNORゲートNGの出力信号がHレベルとなり、一致を示すと、MOSトランジスタNT10およびNT11がともにオン状態となり、インバータIV10の入力が接地電圧レベルに放電される。応じて、一致判定信号MACH<i>がHレベルとなり、パターン一致を示す。
プリチャージ指示信号ZPREがHレベルであり検索動作を行なっているとき、一旦、NORゲートNGの出力信号が一致を示すと、その後、対応のNORゲート出力信号の論理レベルにかかわらず、一致判定信号MACH<i>は、一致状態を示す状態に維持される。
なお、一致信号確定回路MSLTは、MOSトランジスタで構成されるように図示されるが、この一致信号確定回路MSLTは、演算子セルを構成するトランジスタと同様、SOIトランジスタで構成される。しかしながら、この一致信号確定回路MSLTは、演算子セルアレイ外部においてバルクトランジスタで構成されてもよい。
図69は、この発明の実施の形態5におけるデータパターンの配列を概略的に示す図である。図69に示すように、サブブロックSB1−SBKは、それぞれ、mビット検索単位RUTM−RUTMKに分割される。mビット検索単位RUTM1−RUTMKは、それぞれ演算子セル行ROW1−ROWmを含む。
これらの検索単位RUTM1−RUTMKは、それぞれ領域REGP1、REGP2、…REGPkに分割される。これらの領域REGP1、REGP2、…、REGPk各々において、演算子セル列それぞれによりエントリERY1−ERYnが構成される。各領域のエントリERY1−ERYnに対応して、かつmビット検索単位RUTM1−RUTMKに共通にグローバル読出データ線GRD(GRDL、GRDR)が設けられる。このグローバル読出データ線GRDに、対応の演算子セル列(エントリ)のセンスアンプ回路の出力信号が並列に読出される。従って、センスアンプ回路SAK(SAKL,SAKR)の出力信号が対応のサブブロックにおける対応のエントリに格納される列方向に配列されるデータパターンの一致/不一致を示す。センスアンプ回路SAKL,SAKRの出力が、対応のグローバル読出データ線GRD(GRDL,GRDR)にワイヤードOR接続されるため、これらのグローバル読出データ線GRDの対は、各々、m・K(=L)ビット長のローカルマッチ線MLとして機能する。
この場合、データパターン長に応じて、領域REGP1−REGPkにおいて並列にデータAを与えて検索動作を実行する。データパターン長に応じてブロック選択信号BS<1>−BS<K>を選択的にオン状態に設定し、データパターン長に応じたパターンについての一致検索を実行する。
図70は、この図69に示す演算子セルアレイに格納されるデータパターンの格納例の一例を示す図である。図70においては、領域REGP1−REGP3が、各々サブブロックSB1−SB8がそれぞれ分割される。これらのサブブロックSB1−SB8は、mビット検索単位RUTM1−RUTM8に対応する。
サブブロックSB1−SB8は、それぞれブロック選択信号BS<1>−BS<8>に従って、対応のセンスアンプ回路の出力信号が対応のグローバル読出データ線GRD(GRDL、GRDR)に伝達される。従って、ブロック単位(mビット検索単位)でパターンの一致/不一致結果に応じた電流が、対応のグローバル読出データ線に伝達される。
図70を参照して、領域REGP3においては、パターン長L(=8・mビット)のデータパターンがマッピングされ、図70においてはパターンPATN1が格納される。
領域RAGP2においては、パターン長L/2のデータパターンがサブブロックSB1−SB4を用いて格納され、サブブロックSB5およびSB6に、パターン長L/4のデータパターンPATN4がマッピングされる。サブブロックSB7およびSB8それぞれにおいては、パターン長L/8のデータパターンPATN6およびPATN7がそれぞれマッピングされる。
領域REGP1においても、領域REGP2と同様、サブブロックSB1−SB4がパターン長L/2のデータパターンのマッピング領域として利用され、データパターンPATN3が格納される。サブブロックSB5およびSB6がパターン長L/4のデータパターンのマッピング領域として利用され、データパターンPATN5が格納される。この場合、領域REGP1においては、サブブロックSB7およびSB8も、それぞれ、データパターン格納領域として利用されるが、この場合、パターン長L/4のデータパターンのマッピング領域またはL/8のパターン長のデータのマッピング領域として利用される。
検索データパターンに対して、選択サブブロックの数を変更することにより、異なるパターン長のデータパターンに対して一致検索動作を行なうことができる。
なお、図70に示す被検索データパターンの格納態様は、単なる一例であり、用いられる被検索データパターン長の種類および数が異なれば、応じて、各領域REGPに対するパターン長の割当および数ならびに検索単位(サブブロック)の数も異なる。
図71は、この図70に示す構成におけるデータ検索動作シーケンスを示す図である。以下、図71を参照して、図70に示す被検索パターンに対する検索パターンの検索動作について説明する。
1検索サイクルは、パターン長の種類に応じて異なる。図70に示すパターン配置においては、パターン長が4種類存在するため、1検索サイクルは、クロック信号CLKの4サイクルで構成される。検索サイクルが始まると、サイクル♯1において、まず、プリチャージ指示信号ZPREがLレベルからHレベルとなり、一致信号確定回路MSLTの内部ノードのプリチャージ動作が完了する。また、データパスプリチャージ指示信号PREDB<3:1>をHレベルからLレベルに駆動して、グローバル読出データ線GRDの接地電圧レベルへのプリチャージを完了する。
ブロック選択信号BS<4:1>をアサートし、サブブロックSB1−SB4においてすべての読出ワード線RWLAおよびRWLBを、ポートA書込ワード線WWLAの活性化後、選択状態へ駆動する。ビット線BLLおよびBLRの電位が確定した後、所定のタイミングで、サブブロックSB1−SB4に対するセンスアンプ活性化信号SAEN<4:1>を活性化する。このとき、残りのセンスアンプ活性化信号<8:5>は非活性状態である。サブブロックSB1−SB4から、対応のグローバル読出データ線GRDにセンスアンプ回路の出力信号が伝達される。
グローバル読出データ線GRDの信号電位が確定すると、領域REGP1およびREGP2に対して設けられたデータアンプに対するデータアンプ活性化信号APEN<2:1>を活性化する。これにより、領域REGP1およびREGP2の各記憶単位列における検索結果に応じた結果が、対応の一致信号確定回路MSLTにラッチされる。
データパターンが一致している場合には、一致信号確定回路MSLTは、NORゲートNGの出力信号がHレベルとなるため、検索判定信号MACH<i>をHレベルに立上げる。一方、不一致のときには、グローバル読出データ線GRDには電流が流れ、その電位レベルが上昇するため、対応のデータアンプAMPiL,AMPiRの組の出力信号はいずれかがHレベルとなる。応じて、対応のNORゲートNGijの出力信号がLレベルとなり、一致信号確定回路MSLTからの検索判定信号MSLT<i>はプリチャージ状態のLレベルを維持する。
このサイクル♯1が完了すると、領域REGP1およびREGP2に対する読出データ線プリチャージ指示信号PREDB<2:1>をアサートし、これらの領域REGP1およびREGP2のグローバル読出データ線を接地電圧レベルにプリチャージする。一方、領域REGP3に対するデータパスプリチャージ指示信号PREDB<3>は、非活性状態に維持し、この領域RAGP3においては、グローバル読出データ線GRDは、サイクル♯1で読出された結果を維持する。
サイクル♯1において、サブブロックSB1−SB4に格納されたパターンPATAN2およびPATAN3に対するパターン長L/2のパターン検索サイクルが完了する。
次のサイクル♯2が始まると、ブロック選択信号BS<4:1>を非選択状態に設定し、ブロック選択信号BS<6:5>を選択状態に駆動する。ブロック選択信号BS<8:7>も同様、非選択状態に維持される。
データパスプリチャージ指示信号PREDB<2:1>を再び、Lレベルに設定し、領域REGP1およびREGP2のグローバル読出データ線GRDのプリチャージを完了する。サブブロックSB5およびSB6において、ポートA書込ワード線および読出ワード線RWLAおよびRWLBをすべて選択状態に駆動し、サブブロックSB5およびSB6において各記憶単位の演算子セルの記憶データの演算結果を対応のビット線BL(BLL、BLR)に読出す。
所定のタイミングで、サブブロックSB5およびSB6に対するセンスアンプ活性化信号SAEN<6:5>を活性化し、サブブロックSB5およびSB6の被検索パターンと検索パターンとの一致判定結果を対応のグローバル読出データ線に読出す。
このとき、領域REGP3においても、対応のグローバル読出データ線に新たな検索結果が伝達され、その電位が検索結果に応じて変化する。センスアンプ活性化信号SAEN<6:5>の活性化の後、所定のタイミングで、再び、領域RAGP1およびRAGP2に対するデータアンプ活性化信号APEN<2:1>を活性化する。このときまた、領域RAGP3に対する活性化信号APEN<3>は非活性状態に維持される。したがって、領域REGP1およびREGP2において検索結果が、一致信号確定回路MSLTに再び格納される。この場合、一致パターンが存在するときには、一致信号確定回路MSLTの出力する検索判定信号MACHは、Hレベルとなる。したがって、領域REGP1およびREGP2においてパターン長L/2のデータパターンおよびパターン長L/4のデータパターンのいずれかに対する一致が検出された場合、一致信号確定回路MSLTの出力信号がプリチャージ状態から変化する。
一方、領域REGP3においては、対応のグローバル読出データ線の電位が検索結果に応じて変化するだけであり、一致信号確定回路MSLTの出力信号は、初期設定されたLレベルに維持される。このとき、領域REGP3において、サブブロックSB1−SB6の領域に格納されるデータパターンが一致している場合には、対応のグローバル読出データ線GRDは、プリチャージ状態を維持する。少なくとも1つのサブブロックにおいて不一致が検出されると、対応のグローバル読出データ線GRDの電位が上昇する。
このサイクル♯2においてパターン長L/4のデータパターンの検索動作が完了すると、再びデータパスプリチャージ指示信号PREDB<2:1>をHレベルに設定し、領域REGP1およびREGP2のグローバル読出データ線GRDを接地電圧レベルにプリチャージする。このとき、また、領域REGP3においては、プリチャージ指示信号PREDB<3>は、非活性状態にあり、対応のグローバル読出データ線GRDは、L/2パターン検索動作およびL/4パターン長のパターン検索動作の検索結果に応じた電位に維持される。
サイクル♯3が始まると、再びブロック選択信号BS<7>を選択状態に駆動し、残りのブロック選択信号BS<8>およびBS<6:1>は非選択状態に維持する。データパスプリチャージ指示信号PREDB<2:1>を再び非活性状態に設定し、領域RAGP1およびRAGP2のグローバル読出データ線GRDに対するプリチャージ動作を完了する。
これにより、サブブロックSB7において、パターン長L/8に対するデータパターンに対する検索が行なわれる。サブブロックSB7に対するセンスアンプ活性化信号SAEN<7>を活性化し、サブブロックSB7における検索結果に応じた信号が、対応のグローバル読出データ線GRDに伝達される。グローバル読出データ線の電位が確定すると、データアンプ活性化信号APEN<2:1>を活性化する。対応の一致信号確定回路MSLTにより検索結果に応じた信号が保持される。
このとき、領域REGP3に対するアンプ活性化信号APEN<3>は非活性状態に維持され、対応のグローバル読出データ線GRDは、パターン長L/2、L/4およびL/8についての検索結果に応じた電位に保持される。
このパターン長L/8のデータパターンに対する検索動作が完了すると、再び、領域REGP1およびREGP2に対するデータパスプリチャージ指示信号PREDB<2:1>を活性化し、グローバル読出データ線GRDを接地電圧レベルにプリチャージする。領域REGP3においてはプリチャージ指示信号PRADB<3>は非活性状態に維持され、領域REGP3のグローバル読出データ線GRDは、サイクル♯1から♯3における検索結果に応じた電位に保持される。
サイクル♯4において、再び、データパスプリチャージ指示信号PREDB<2:1>を非活性状態に設定し、領域REGP1およびREGP2のグローバル読出データ線に対するプリチャージ動作を完了する。このサイクル♯4においては、ブロック選択信号BS<8>を選択状態に駆動し、サブブロックSB8に格納されるデータパターンについての検索が行なわれる。このサブブロックSB8において、全エントリのAポート書込ワード線WWLAおよび読出ワード線RWLAおよびRWLBの選択状態に駆動した後、センスアンプ活性化信号SAEN<8>を活性化し、サブブロックSB8のデータパターンに対する検索結果を対応のグローバル読出データ線GRD上に読出す。
この後、アンプ活性化信号AMPEN<2:1>およびAMPEN<3>をすべて活性化する。応じて、領域REGP1−REGP3において、検索結果に応じた信号が、対応の一致信号確定回路MSLTに格納され、サブブロックSB8に格納されるパターン長L/8のデータパターンに対する検索動作が完了する。
一方、このサイクル♯4において領域REGP3のデータアンプ活性化信号AMPEN<3>を活性化して、対応の一致信号確定回路MSLTに判定結果を格納することにより、パターン長Lのデータパターンについての検索結果がラッチされる。
図70に示すように、領域REGP1のサブブロックSB7およびSB8には、データパターンは登録されていない(被検索データはマッピングされていない)。検索データパターンの未登録領域においては、記憶ノードSNBRおよびSNBLにビット“1”を格納する(ドントケア状態に設定する)。したがって、この未登録領域においては、検索データとして任意のデータパターンが与えられても、対応のグローバル読出データ線上に電流が流れ(A,/Aに応じたデータがそれぞれグローバル読出データ線GRDLおよびGRDRに読出された)、したがって対応のNORゲートNGの出力信号はLレベルとなり、判定信号確定回路MSLTのラッチ状態は変化せず、誤判定は防止される。
一方、パターン長Lのデータパターンの検索については、たとえばサイクル♯1においてデータパターンが不一致であり、次のサイクル♯2においてデータパターンが一致することが考えられる。この場合、各サイクルにおいて、データアンプAMPを活性化した場合、一致信号確定回路MSLTのラッチ状態が、データパターンが不一致であるにもかかわらず、一致状態と示す状態に設定され、誤判定が生じる(パターン不一致の場合は、一致信号確定回路MSLTは、そのラッチ状態を変化しないため)。
したがって、パターン長Lのデータパターンについては、単に、各サイクルにおいて、その検索結果を対応のグローバル読出データ線に読出し、パターン長L/2、L/4、およびL/8のデータパターンの検索動作の結果をグローバル読出データ線において電流加算する。パターン長Lのデータパターンが一致している場合には、対応のグローバル読出データ線GRDLおよびGRDRは、ともにプリチャージ状態の接地電圧レベルであり、一方、不一致の場合には、対応のグローバル読出データ線GRDの電位は、接地電位よりも高い電位レベルである。このサイクルにおいてアンプ活性化信号AMPEN<3>を活性化することにより、正確にパターン長Lの検索結果を保持することができる。
以上のように、この発明の実施の形態5に従えば、演算子セルアレイにおいて被検索データパターンを列方向に配列し、検索パターンを列方向に整列させて演算子セルアレイに入力して検索動作を行なっている。これにより、各エントリERY1−ERYm毎に順次パターン検索を行なう必要がなく、複数のエントリにおいて並行してパターン検索を行なうことができる。従って、検索に要するサイクルは、被検索データパターンのパターン長の種類またはパターンマッピング領域の数に応じたサイクル数に低減することができ、検索動作を高速化することができる。すなわち、図70に示すパターン配列の場合、パターンマッピング領域の数は、5であり、1検索サイクルは、(5−1)クロックサイクル、すなわち4クロックサイクルとなる。
この実施の形態5においては、被検索パターンを、演算子セルアレイの列方向に整列して格納する必要がある。この場合、以下の手順で、通常の行方向に整列する被検索データパターンを列方向に変換する。データ配列変換は、半導体信号処理装置外部で行なわれればよいが、以下の手順でデータ列の変換を行なうことができる。以下、被検索データパターンのデータ列変換動作について簡単に説明する。
図72から図78は、データ配列変換シーケンスを概略的に示す図である。この図72から図78において、データ列変換のために、直交変換回路でたとえば構成されるデータ列変換回路450が用いられる。
図72は、パターン長Lのデータ入力時の動作を概略的に示す図である。データ列変換回路450は、直交変換メモリを含み、そのメモリ領域が、Y方向において、領域REGP1−REGP3に対応して領域MRG1−MRG3に分割される(図71に示す演算子セルアレイ構成に対応する場合)。パターン長LのデータパターンDPAT(L)を受けると、データ列変換回路450は、ポインタPOINT(L)に従ってX方向に整列するデータパターンDPAT(L)を、領域MRG3のポインタPOINT(L)が指定する領域に格納する。
この領域MRG3において順次パターン長LのデータDPAT(L)が格納されるとき、パターン長Lのデータの数が、この領域MRG3の行数よりも小さい場合には、その空き領域には、同じ被検索データパターンが繰返し格納される。これは、演算子セルアレイへの被検索データパターンの書込時に、空き領域にドントケア状態のデータ(“0”)をビット単位で書込む際の制御が困難なためである。勿論、実施の形態1等において示したように、マスク指示信号MSKを利用してビット単位でドントケア状態のデータ“0”が転送されてもよい。この場合、各領域MRG1−MRG3において空き領域を示すフラグを立てて、マスク指示信号MSKを空き領域フラグに従って生成する必要がある。
図73は、パターン長L/2のデータパターン書込時の態様を概略的に示す図である。データ列変換回路450は、X方向において長さL/2バイトの領域460Lおよび460Rに分割される。この場合、領域MRG2およびMRG1においてポインタPOINT(L/2)に従ってパターン長L/2のデータパターンDPAT(L/2)が領域460において格納される。この領域MRG2およびMRG1の残りの半分の領域460Rは、マスク信号MASK(L/2)により書込にマスクがかけられる。この場合、直交変換メモリとして、たとえばSRAM(スタティック・ランダム・アクセス・メモリ)またはDRAM(ダイナミック・ランダム・アクセス・メモリ)などのメモリ装置が用いられており、これらの通常のメモリにおけるマスク機能を利用し、データ書込にマスクをかける。これにより、領域MRG2およびMRG1のL/2バイト長領域460Lに、パターン長L/2のデータパターンが順次格納される。
図74は、パターン長L/4のデータパターンの書込態様を概略的に示す図である。この場合、データ列変換回路450におけるL/2バイト長領域460LおよびL/4バイト長領域462Rに対しマスク指示MASK(L/2)およびMASK(L/4)がそれぞれ与えられ、これらの領域460Lおよび462Rに対するデータ書込は、禁止される。パターン長L/4のデータパターンDPAT(L/4)が、ノンマスクの領域462LにポインタPOINT(L/4)に従って順次格納される。
図75は、パターン長L/8のデータ書込態様を概略的に示す図である。図75において、パターン長L/8のデータパターン書込時においては、データ列変換回路450の領域464および466Rは、マスク指示MASK(3L/4)およびMASK(L/8)により書込が禁止される。ポインタPOINT(L/8)に従って領域466Lに、パターン長L/8のデータパターンDPAT(L/8)Aが、メモリ領域MRG2の領域466Lにおいて順次格納される。
図76は、パターン長L/8のデータパターンの書込態様を概略的に示す図である。この図76においては、マスクMASK(7L/8)により、データ列変換回路450の3・L/4バイトの領域464およびL/8バイトの領域466Lに対し書込にマスクがかけられる。パターン長L/8のデータパターンDPAT(L/8)Bが、領域466Rのメモリ領域MRG2および順次ポインタPOINT(L/8)に従って順次格納される。
図75および図76に示すパターン長L/8のデータパターンDPAT(L/8)AおよびDPAT(L/8)Bは、交互に与えられてもよく、また、データパターンDPAT(L/8)Aの列およびDPAT(L/8)Bの列が、順次与えられてもよい。
メモリ領域MRG1のL/8バイト領域466Lおよび466Rは、データパターンは書込まれない。この場合、メモリ領域MRG1の領域466Lおよび466Rは、空領域であることを示す情報が、図示しないレジスタに格納される。
ポインタPOINT(L)、POINT(L/2)、POINT(L/4)、およびPOINT(L/8)は、このデータ長入力データのパターン長に応じて異なるポインタによりそれぞれ順次生成されてもよい。また、入力データに含まれるパターン長識別子に従って順次生成されてもよい(実施の形態4参照)。また、メモリ領域MRG3−MRG1に対し順次パターン長に従ってデータ書込が行なわれる場合、1つのポインタを用いてこれらの書込ポインタが形成されてもよい。半導体信号処理装置外部にデータ列変換回路450が設けられており、書込データの入力シーケンスに応じて適宜ポインタの発生態様が定められればよい。
図77および図78は、データ列変換回路450からY方向に整列するデータを読出して、この発明の実施の形態5に従う半導体信号処理装置に供給するデータ読出態様を概略的に示す図である。
まず、図77に示すように、読出ポインタRPINTに従って、データ列変換回路450のメモリ領域MRG1−MRG3にわたってY方向に整列するデータを読出す。メモリ領域MRG1−MRG3から読出されたデータは、半導体信号処理装置の領域REGP1−REGP3へそれぞれ与えられる。
図78に示すように、順次データを読出して、読出ポインタRPINTが更新され、読出ポインタRPINTが、メモリ領域MRG1の領域462Rの先頭を指定すると、フラグEMPTY(MRG1)をアサートする。読出ポインタRPINTに従って、メモリ領域MRG1−MRG3からY方向に整列するデータを読出して信号処理装置の領域REGP1−REGP3へそれぞれ与えるとともに、フラグEMPTY(MRG1)を並行して、半導体信号処理装置へ与える。半導体信号処理装置においては、メモリ領域MRG1の領域462Rのデータ書込時においては、フラグEMPTY(MRG1)に従って領域REGP1に対するデータ書込にマスクをかける。すなわち、半導体信号処理装置においては、実施の形態3において説明したように、内部でデータの再書込を実行する(記憶データの読出および読出データの再書込)。データパスの構成としては、先の実施の形態3において用いた構成を利用する(図49参照)。すなわち、領域REGP1、REGP2、およびREGP3それぞれに対してローカル選択信号SELB<1:0>を与える。これにより、演算子セルアレイの空き領域(図70のサブブロックSB7およびSB8の領域REGP1)は、ドントケア状態に維持される。
フラグEMPTYは、メモリ領域MRG1−MRG3それぞれに対して設けられ、エントリ幅の空き領域が存在するときに、対応のフラグEMPTY(メモリ領域)がアサートされる。
この演算子セルアレイへの被検索データパターンの書込時に、実施の形態1から4において示したようなマスク指示信号MSK<j>を利用する場合、メモリ領域MRG1−MRG3それぞれにおいてパターン長毎に空き領域フラグを生成して管理してマスク指示信号MSK<j>を生成する必要があり、マスク指示信号生成の管理および制御が少し煩雑となる。しかしながら、メモリ領域MRG1−MRG3それぞれに対して空き領域フラグを格納する空き領域フラグレジスタを設け、読出ポインタRPINTに従って、この空き領域フラグレジスタの内容を読出してマスク指示信号MSK<j>を生成してビット単位で書込にマスクをかけてもよい。
しかしながら、以下の説明においては、マスク指示信号MSK<j>を用いずに被検索データパターンを書込む動作および構成について説明する。
図79は、この発明の実施の形態5に従う半導体信号処理装置における被検索データパターンの書込時の制御動作を示すフロー図である。以下、図79を参照して、この被検索データ書込動作について説明する。
半導体信号処理装置側においては、データ書込コマンドが与えられるのを待つ(ステップS1)。データ書込コマンドが与えられると、書込および読出アドレス(カウンタアドレス)を初期化するとともに、演算子セルアレイを初期化する(ステップS2)。この演算子アレイの初期化により、演算子セル(UOE)の記憶ノードSNAおよびSNBはビット“1”および“0”をそれぞれ記憶する状態に初期設定される。
次いで、書込データBが入力される(ステップS3)。このとき、半導体信号処理装置側においては、EMPTYフラグがオンであるかを判定する(ステップS4)。フラグEMPTYがオン状態のとき、フラグEMPTY(MRGi)の括弧内の領域指定フラグを見て、指定された領域に対する書込にマスクをかける(ステップS6)。すなわち、EMPTY(MRG1)等のEMPTYフラグにおいて書込マスクが指定された領域(EMPTYフラグの括弧内において指定される)に対しては、データパスブロックの経路がセンスアンプ回路の出力信号を対応のグローバルBポート書込データ線に伝達するように設定されて、内部の記憶データの読出および再書込(記憶ノードSNBへの再書込)が実行される。
一方、EMPTYフラグがオフ状態のときには、外部からの書込データが選択されて対応のグローバルBポート書込データ線に伝達され、書込ワード線アドレスWADに従って書込Bポートワード線WWLBを立上げてデータを書込む(ステップS5)。
これらのステップS5およびS6において、書込が完了すると、この書込アドレスが最終アドレスであるかの判定が行なわれる(ステップS7)。まだ最終アドレスに到達していない場合には、アドレスを更新し(ステップS8)、ステップS3に戻り、次のデータBを入力する。ここで、アドレス更新は、内部のアドレスカウンタのカウント値を増分することにより行なわれる。
一方、ステップS7において最終アドレスで判定されると、データの書込が完了し、被検索データの書込動作が終了する。
図80は、この発明の実施の形態5に従う半導体信号処理装置の制御回路の構成を概略的に示す図である。この図80において、制御回路80は、図31に示す制御回路80と同様、コマンドデコーダ81、Bポート書込ワード線活性化回路82、書込制御回路83、Aポート書込ワード線活性化回路84、読出ワード線活性化回路86を含む。コマンドデコーダ81は、クロック信号CLKに同期してコマンドCMDを取込んでデコードし、書込モード指示MODWおよび読出モード指示MODRをアサートする。
書込制御回路83は、書込モード指示MODWに従ってデータパスに含まれる書込回路(レベルシフタ)を活性化するデータパスイネーブル信号DPENを生成する。データパスは、図49に示す構成であり、領域毎に、データ転送経路を入力切換回路により切換えることができる。
Bポート書込ワード線活性化回路82は、書込モード指示MODWのアサート時、ポートB書込ワード線活性化信号WWLBENを活性化する。Aポート書込ワード線活性化回路84は、検索モードを指示する読出モード指示MODRおよび初期化を指示するモード指示MODIの一方のアサート時、ポートA書込ワード線活性化信号WWLAENを活性化する。
制御回路80は、さらに、図31に示す制御回路80と同様、読出ワード線活性化回路86およびアドレスカウンタ87を含む。
読出ワード線活性化回路86は、読出モード指示信号MODRおよびフラグデコーダ474からのマスク書込指示フラグRGMSのアサート時、ポートA読出ワード線活性化信号RWLENを活性化する。
フラグデコーダ474は、データ書込時に与えられるフラグEMPTY<k:1>をデコードし、データ再書込を指定する領域指定信号RGMS<1>−RGMS<k>を生成する。エンプティフラグEMPTY<k:1>は、先の図78に示すフラグEMPTY(MRG1)−EMPTY(MRGk)に対応し、被検索パターンの非登録領域を示す。ここで、データ格納領域REGP1−REGPkに各サブブロックが分割されている場合を想定する。
アドレスカウンタ87は、データ書込モード時、カウント動作を行ない、ブロックアドレスBADおよびワード線アドレス(エントリアドレス)AD(=WAD)を生成する。データ読出時においては、アドレスカウンタ87はカウント動作を停止される。これは、検索動作時、選択サブブロックにおいてワード線が、全て選択状態に設定されるためである。
制御回路80においては、さらに、読出制御回路485、カウンタ470、ブロックデコーダ472が設けられる。カウンタ470は、読出モード指示MODRのアサート時、カウント動作を行ない、カウント値CNT<J:1>を生成する。ここで、カウント値Jは、データパターン長に応じてサブブロックの読出を行なう回数を示す。
読出制御回路485は、データ書込時、マスク領域指示フラグRGMSのアサート時、読出ワード線活性化信号RWLENの活性化に応答して、センスアンプ活性化信号SAENを活性化し、かつデータ線プリチャージ指示PREDBを非活性化してグローバ読出データ線のプリチャージを停止させる。メインデータ線アンプ活性化信号MAPENおよび一致判定信号プリチャージ指示信号ZPREは、非活性状態のHレベルに維持される。
この読出制御回路485は、また、読出モード指示MODRのアサート時、読出ワード線活性化信号RWLENの活性化に従って、センスアンプ活性化信号SAEN、メインでデータ線アンプ活性化信号MAPENを活性化し、データプリチャージ指示信号PREDBおよび一致判定信号プリチャージ指示信号を非活性化する。
ブロックデコーダ472は、アドレスカウンタ87からのブロックアドレスBADとカウンタ470からのカウント値CNT<J:1>とを受け、ブロック選択信号BS<1>−BS<n>を生成する。ブロックデコーダ472の構成については後に説明するが、データ書込時においては、アドレスカウンタ87からのブロックアドレス信号BADに従ってブロック選択信号BS<1>−BS<n>が生成され、データ読出モード時にはカウンタ470からのカウント値CNT<J:1>に従ってブロック選択信号BS<1>−BS<n>が生成される。
この制御回路80においては、さらにブロック経路設定回路122およびローカル選択信号発生回路185が設けられる。ブロック経路設定回路122は、データ書込モード指示MODWおよびデータ読出モード指示MODRに従って、経路選択信号SELA<1:0>およびSELB<1:0>を生成する。
経路設定回路122の構成は、先の実施の形態2において図31を参照して説明した経路設定回路122の構成と同じである。
ローカル選択信号発生回路185は、選択信号SELA<1:0>およびSELB<1:0>とフラグデコーダ474からの領域指定信号RGMS<k:1>に従ってローカル選択信号LSLB1<1:0>−LSLBk<1:0>を生成する。このローカル選択信号発生回路185の構成は、図56および図57に示す構成と同じである。領域指定信号としてフラグデコーダ474からの再書込領域指定信号RGMS<k:1>が用いられる点が異なるだけである。
図81は、図80に示すブロックデコーダ472の構成を概略的に示す図である。図81において、ブロックデコーダ472は、アドレスカウンタ87からのブロックアドレス信号BADをデコードするブロックデコード回路490と、図80に示すカウンタ470からのカウント値CNT<J:1>とこのブロックデコード回路490からのデコードファースト信号FBS<n:1>とを受けてブロック選択信号BS<n:1>を生成するゲート回路492を含む。
データ書込時においては、ブロック選択信号BS<n:1>は、ブロックアドレス信号BADに従って生成される。一方、データ読出モード時(検索動作時)においては、検索回数を示すカウント値CNT<J:1>に従ってブロック選択信号BS<n:1>が生成される。
図82は、図81に示すゲート回路492の構成の一例を概略的に示す図である。図82において、ゲート回路492は、パターン長L/2に対応して設けられるORゲートOG(1)−OG(n/2)と、パターン長L/4に対応して設けられるORゲートOG(n/2+1)−OG(3・n/4)と、…、パターン長L/nに対応して設けられるORゲートOGnを含む。各パターン長に対応してORゲートの組が設けられる。
ORゲートOG(1)−OG(n/2)は、ブロックデコード回路490からのデコードファースト信号FBS<1>−FBS<n/2>とカウント値CNT<1>とを受け、それぞれブロック選択信号BS<1>−BS<n/2>を生成する。
ORゲートOG(n/2+1)−OG(3・n/4)は、それぞれ、デコードファースト信号FBS<n/2+1>−FBS<n/2+n/4>とカウント値CNT<2>とを受け、ブロック選択信号BS<n/2+1>−BS<n/2+n/4>を生成する。ORゲートOGnは、カウント値CNT<J>とデコード信号FBS<n>とを受け、ブロック選択信号BS<n>を生成する。ここで、各カウント値およびブロックデコード回路490の出力信号FBS<n+1>は、選択時Hレベルである場合を想定している。
カウント値CNT<J:1>は、Jビットのカウント値であり、各検索動作サイクル毎にそのカウント値が1シフト動作により増分されて、i回目の検索サイクルに対応するカウント値CNT<i>がアサートされる。
したがって、1回目の検索サイクル時においては、ORゲートOG(1)−OG(n/2)により、パターン長L/2のデータパターンについての検索が行なわれ、2回目の検索サイクルにおいては、パターン長L/4のデータパターンについての検索が行なわれる。最後の検索サイクルにおいては、パターン長L/nのデータパターンについての検索が行なわれる。これにより、検索動作時、各パターン長に対応するサブブロックを選択して、検索動作を行なうことができる。
図83は、各サブブロックに対応して設けられるローカル行選択駆動回路の構成を概略的に示す図である。図83に示すローカル行選択駆動回路425.iは、サブブロックSBiに対応して設けられ、ローカルBポート書込ワード線選択駆動回路72、ローカルAポート書込ワード線選択駆動回路126、およびローカル読出ワード線選択駆動回路495を含む。
ローカルBポート書込ワード線選択駆動回路72は、ブロック選択信号BS<i>のアサート時、与えられたアドレス信号ADをデコードし、ポートB書込ワード線WWLB1−WWLBmのうちの対応の書込ワード線を選択状態に駆動する。
ローカルAポート書込ワード線選択駆動回路126は、ポートA書込ワード線活性化信号WWLAENのアサート時、ブロック選択信号BS<i>が選択状態のときアドレス信号ADをデコードし、ポートA書込ワード線WWLA1−WWLAmのうちのアドレス指定された書込ワード線を選択状態へ駆動する。
ローカル読出ワード線選択駆動回路495は、読出ワード線活性化信号RWLENの活性化時、ブロック選択信号BS<i>とアドレス信号ADに従ってダミー読出ワード線DRWLと、ポートA読出ワード線RWLA1−RWLAmおよびポートB読出ワード線RWLB1−RWLBmを選択状態へ駆動する。すなわち、このローカル読出ワード線選択駆動回路495は、データ読出モード指示MODRのアサート時においては、ブロック選択信号BS<i>が選択状態のとき、読出ワード線RWLA1,RWLB1−RWLAm,RWLBmおよびDRWLをすべて選択状態に駆動する。これにより、選択されたサブブロックにおいて、検索動作時、すべての読出ワード線を選択状態へ駆動することができる。
データ読出モード指示MODRがネゲート状態であり、データ書込時においてブロック単位での再書込が行なわれる場合には、ローカル読出ワード線選択駆動回路495は、図80に示す読出ワード線活性化回路86が、読出ワード線活性化信号RWLENをアサートするため、ブロック選択信号BS<i>およびアドレス信号ADに従って、書込が行なわれるエントリについてデータの再書込を行なう。この場合、データ書込が行われるエントリに対して配置されるポートAおよびポートB読出ワード線RWLAおよびRWLBを選択して、センスアンプ回路およびBポートグローバル読出データ線を介して選択エントリのマスク領域の記憶ノードSNBに読出データが転送されて、データの再書込が行なわれる。
図84は、各領域毎に対して設けられるローカル制御信号発生回路500の構成を概略的に示す図である。この図84において、ローカル制御回路500は、ローカルセンスアンプ活性化信号SAEN<n:1>を生成するゲート回路502と、データ線アンプ活性化信号APEN<k−1:1>を生成するゲート回路504と、読出データ線プリチャージ指示信号PREDB<k−1:1>を生成するゲート回路506と、読出データ線プリチャージ指示信号PREDB<k>を生成するゲート回路507と、データアンプ活性化信号APEN<k>を生成するゲート回路508を含む。
データアンプ活性化信号APEN<k>はパターン長Lのデータ格納領域に対して配置されるデータアンプAMPに対する活性化信号である。同様、読出データ線プリチャージ指示信号PREDB<k>は、パターン長Lのデータが格納される領域に対して配置されるグローバル読出データ線のプリチャージゲートに対する指示信号である。
ゲート回路502は、図80に示す読出制御回路からのセンスアンプ活性化信号SAENとブロック選択信号BS<n:1>とに従って選択されたサブブロックに対するセンスアンプ活性化信号SAEN<n:1>を活性化する。
ゲート回路504は、メインデータアンプ活性化信号MAPENと書込マスク領域指示信号RGMS<k−1:1>に従ってデータアンプ活性化信号APEN<k−1:1>を生成する。このゲート回路504は書込マスク指示信号RGMS<k−1:1>においてアサートされているビットが存在するとき、メインデータアンプ活性化信号MAPENに従って、データアンプ活性化信号APEN<k−1:1>の対応の活性化信号をアサートする。読出モード指示信号MODRがアサートされているときには、ゲート回路504は、メインデータアンプ活性化信号MAPENに従ってデータアンプ活性化信号APEN<k−1:1>を活性化する。
ゲート回路506は、図80に示す読出制御回路485からのデータパスプリチャージ指示信号PREDBに従って領域1から領域k−1に対するデータパスプリチャージ指示信号PREDB<k−1:1>を活性化する。これにより、パターン長Lが割当てられた領域以外の領域においては、各検索動作毎に、グローバル読出データ線(GRD)が接地電圧レベルにプリチャージされる。
ゲート回路507は、このデータパスプリチャージ指示信号PREDBとカウント値CNT<J>とに従ってデータパスプリチャージ指示信号PREDB<k>を生成する。したがって、パターン長Lのデータ格納領域に対しては、その最終ブロックに対する検索が行なわれた後に、対応の読出データ線がプリチャージされ、それ以外の時には、対応のグローバル読出データ線がプリチャージされない。パターン長Lに対する領域REGPkにおいては、書込時において領域マスクはかけられないため、再書き込みをする必要がなく、対応のグローバル読出データ線がプリチャージされなくても、特に問題が生じない。
ゲート回路508は、カウント値CNT<J>とメインデータアンプ活性化信号MAPENとに従ってデータアンプ活性化信号APEN<k>を生成する。したがって、データ読出時(検索動作時)において、パターン長L格納領域の最終サブブロックについての検索結果が読出されたときに、領域REGPkに対するデータアンプAMPが活性化され、パターン長Lの検索結果が増幅されて対応の確定回路にラッチされる。この場合、パターン長Lの領域において、データの空き領域は存在せず、再書込は行なわれないため、領域指定信号RGMS<k>は与えられなくても特に問題はない。
一致信号確定回路MSLTに対しては、プリチャージ指示信号ZPREに従って、ゲート回路509により、プリチャージ指示信号ZPRE<k:1>が生成されて、各検索動作完了後に、一致信号確定回路MSLTのプリチャージ(リセット)が実行される。
以上のように、この発明の実施の形態5に従えば、演算子アレイをk個の領域に分割し、各分割領域にパターン長の異なるデータパターンを格納し、ある領域においては複数のデータパターンを格納可能としている。また、検索データパターンは領域の列方向に整列して配置されている。したがって、一度の検索サイクルで複数の被検索パターンとの一致/不一致を判定することができ、検索サイクルとして、パターン長の種類の数に応じたクロックサイクルで、全被検索データパターンに対する判定結果を得ることができる。