以下、実施形態、実施例、比較例および応用例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。なお、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
TCAMセルは、ビット線対BT,BB、サーチ線対ST,SB、マッチ線ML、およびワード線WLA,WLBと接続される。ビット線対BT,BBは、図3のTCAMセルアレイ20の列方向(Y方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。サーチ線対ST,SBは、TCAMセルアレイ20の列方向(Y方向)に延在し、列方向に配列された複数のTCAMセルによって共有される。
マッチ線MLは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。ワード線WLA,WLBは、TCAMセルアレイ20の行方向(X方向)に延在し、行方向に配列された複数のTCAMセルによって共有される。ワード線WLA,WLBは、第1ワード線、第2ワード線という事もできる。
Xセル11は、インバータINV1,INV2と、NチャネルMOS(Metal Oxide Semiconductor)トランジスタQ1,Q2とを含む。インバータINV1は、記憶ノードND1_nから記憶ノードND1へ向かう方向が順方向となるように、記憶ノードND1と記憶ノードND1_nの間に接続される。インバータINV2は、INV1と並列かつ逆方向に接続される。MOSトランジスタQ1は、記憶ノードND1とビット線BTとの間に接続される。MOSトランジスタQ2は、記憶ノードND1_nとビット線BBとの間に接続される。MOSトランジスタQ1,Q2のゲートは、ワード線WLAと接続される。
Yセル12は、インバータINV3,INV4と、MOS(Metal Oxide Semiconductor)トランジスタQ3,Q4とを含む。インバータINV3は、記憶ノードND2_nから記憶ノードND2に向かう方向が順方向となるように、記憶ノードND2と記憶ノードND2_nの間に接続される。インバータINV4は、INV3と並列かつ逆方向に接続される。MOSトランジスタQ3は、記憶ノードND2とビット線BTとの間に接続される。MOSトランジスタQ4は、記憶ノードND2_nとビット線BBとの間に接続される。MOSトランジスタQ3,Q4のゲートは、ワード線WLBと接続される。
データ比較部13は、NチャネルMOSトランジスタQ6〜Q9を含む。MOSトランジスタQ6,Q7はマッチ線MLとの接続点であるノードND3と接地ノードGNDとの間に直列に接続される。MOSトランジスタQ8,Q9は、ノードND3と接地ノードGNDとの間に直列に、かつ、直列接続されたMOSトランジスタQ6,Q7の全体と並列に接続される。MOSトランジスタQ6,Q8のゲートは、記憶ノードND1,ND2とそれぞれ接続される。MOSトランジスタQ7,Q9のゲートは、サーチ線ST,SBとそれぞれ接続される。
インバータINV1,INV2、INV3およびINV4のおのおのは、PチャネルMOSトランジスタとNチャネルMOSトランジスタとを有する。PチャネルMOSトランジスタのソースドレイン経路とNチャネルMOSトランジスタのソースドレイン経路とは、第1電源電位Vccと第2電源電位Vssとの間に、直列に接続されている。PチャネルMOSトランジスタのゲートとNチャネルMOSトランジスタのゲートは共通に接続されて、インバータの入力端子とされる。PチャネルMOSトランジスタのドレインとNチャネルMOSトランジスタのドレインとは共通に接続されて、インバータの入力端子とされる。
なお、BCAMのメモリセルは、例えば、図1において、ワード線WLB,Yセルを削除し、MOSトランジスタQ8のゲート電極を、Xセルの記憶ノードND1_nへ接続することで構成できる。
図1および図2を参照して、TCAMセルは、2ビットのSRAMセルを用いて、“0”、“1”、“x”(ドントケア:don't care)の3値を格納することができる。具体的に、Xセル11の記憶ノードND1に“1”が格納され、Yセル12の記憶ノードND2に“0”が格納されているとき、TCAMセルには“0”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル12の記憶ノードND2に“1”が格納されているとき、TCAMセルには“1”が格納されているとする。Xセル11の記憶ノードND1に“0”が格納され、Yセル12の記憶ノードND2に“0”が格納されているとき、TCAMセルには“x”(ドントケア)が格納されているとする。Xセル11の記憶ノードND1に“1”が格納され、Yセル12の記憶ノードND2に“1”が格納されている場合は使用しない。
上記のTCAMセルの構成によれば、サーチデータが“1”(すなわち、サーチ線STが“1”、かつ、サーチ線SBが“0”)であり、TCAMデータが“0”(記憶ノードND1が“1”、かつ、記憶ノードND2が“0”)である場合には、MOSトランジスタQ6,Q7がオン状態となるために、プリチャージされたマッチ線MLの電位が接地電位まで引き抜かれる。サーチデータが“0”(すなわち、サーチ線STが“0”、かつ、サーチ線SBが“1”)であり、TCAMデータが“1”(記憶ノードND1が“0”、かつ、記憶ノードND2が“1”)である場合には、MOSトランジスタQ8,Q9がオン状態となるために、プリチャージされたマッチ線MLの電位が接地電位まで引き抜かれる。すなわち、サーチデータとTCAMデータとが不一致の場合には、マッチ線MLの電位は接地電位まで引き抜かれる。
逆に、入力されたサーチデータが“1”であり、かつ、TCAMデータが“1”または“x”の場合、もしくは、サーチデータが“0”であり、かつ、TCAMデータが“0”または“X”の場合(すなわち、両者が一致する場合)、プリチャージされたマッチ線MLの電位(電源電位VDDレベル)は維持される。
上記のように、TCAMでは、1つのエントリ(行)に対応するマッチ線MLに接続された全てのTCAMセルのデータが入力サーチデータと一致しない限り、マッチ線MLに蓄えられた電荷が引き抜かれる。
セルアレイ20は、行列状(M+1行;n+1列)に配列された複数のTCAMセルMCを含む。セルアレイ20は、行数(エントリ数)がM+1(Mは、正の整数)であり、列数(エントリのビット数)がn+1(nは、正の整数)の場合が示されている。
セルアレイ20の各列に対応して、n+1個のビット線対(BT[0],BB[0]−BT[n],BB[n])と、n+1個のサーチ線対(ST[0],SB[0]−ST[n],SB[n])とが設けられる。セルアレイ20の各行に対応して、M+1本のマッチ線(ML[0]−ML[M])と、M+1本のXセル用のワード線(WLA[0]−WLA[M])と、M+1本のYセル用のワード線(WLB[0]−WLB[M])とが設けられている。ワード線(WLA[0]−WLA[M])は第1ワード線であり、ワード線(WLB[0]−WLB[M])は第2ワード線である。また、ビット線対(BT[0],BB[0]−BT[n],BB[n])は第1ビット線対であり、ビット線BT[0]−BT[n]は第1ビット線であり、ビット線BB[0]−BB[n]は第2ビット線である。サーチ線ST[0]−ST[n]は第1サーチ線であり、サーチ線SB[0]−SB[n]は第2サーチ線である。
書込みドライバおよび読み出し用センスアンプ21は、書込みドライバWDと、読み出し用センスアンプSAとを含む。書込みドライバWDは、書込み時に、ビット線対BT,BBを介して各TCAMセルに書込みデータを供給する。読み出し用センスアンプSAは、読み出し時に、ビット線対BT,BBを介して各TCAMセルから読み出されたデータを増幅して出力する。
制御論理回路25は、TACMマクロセル100全体の動作を制御する。たとえば、制御論理回路25は、検索時には、サーチコマンドを受け取り、サーチ線ドライバ22に制御信号を出力することによって、サーチ線ドライバ22の動作を制御する。制御論理回路25は、書込み時には、書込みドライバWDとワード線ドライバ(WLD)2とに制御信号を出力することによって、書込みドライバWDとワード線ドライバ(WLD)2との動作を制御する。また、制御論理回路250は、読み出し時には、ワード線ドライバ(WLD)2と読み出し用センスアンプSAとに制御信号を出力することによって、ワード線ドライバ(WLD)2と読み出し用センスアンプSAとの動作を制御する。
バリッドビット部23は、複数のバリッドセル(バリッドメモリセル)VC0−VCmを含む。複数のバリッドセルVC0−VCmのおのおのは、ビット対線VBT、VBBに接続される。ビット対線VBT、VBBは第2ビット線対であり、ビット線VBTは第3ビット線であり、ビット線VBBは第4ビット線である。1対のビット線VBT,VBBのおのおのは、書込みドライバVWDおよび読み出し用センスアンプVSAを含む入出力部VIOに接続される。複数のバリッドセルVC0−VCmのおのおののワード線は、対応するエントリの第1ワード線(WLA[0]−WLA[M])及び第2ワード線(WLB[0]−WLB[M])に、論理和回路(オア回路)OR[0]−OR[M]を介して接続される。また、複数のバリッドセルVC0−VCmのおのおのは、対応するエントリが有効か無効かを示すバリッドビット(VB0−VBm)を格納する。複数のバリッドセルVC0−VCmは、また、リセット信号RTが供給される配線に接続されており、リセット信号RTのハイレベルの様な活性化により、複数のバリッドセルVC0−VCmに記憶されたバリッドビット(VB0−VBm)をローレベルの様な無効を示すデータへ一括してセットすることが可能である。
複数のバリッドセルVC0−VCmは、対応するエントリの第1ワード線(WLA[0]−WLA[M])及び第2ワード線(WLB[0]−WLB[M])のいずれかが選択状態とされると、対応する論理和回路OR[0]−OR[M]の出力が選択状態とされるので、選択状態とされる。すなわち、論理和回路OR[0]−OR[M]は、第1ワード線および第2ワード線に接続され、第1ワード線または前記第2ワード線が選択状態とされることに従って、複数のバリッドセルVC0−VCmを選択状態とする選択回路である。これにより、バリッドビット(VB0−VBm)が、1対のビット線VBT、VBBを介して、選択状態のバリッドセル(VC0−VCm)に書き込まれる。
マッチ線出力回路部MO24は、セルアレイ20の行にそれぞれ対応する複数のマッチ線出力回路MO0−MOmを有する。マッチ線出力回路MO0−MOmのおのおのの入力は対応するマッチ線ML(ML[0]−ML[M])にそれぞれ接続され、マッチ線出力回路MO0−MOmのおのおの出力は対応するマッチ信号出力線(MLO0−MLOm)にそれぞれ接続される。マッチ線出力回路MO0−MOmのおのおのは、対応するバリッドセル(VC0−VCm)からバリッドビット(VB0−VBm)を受ける。マッチ線出力回路MO0−MOmの動作は、バリッドビット(VB0−VBm)の値により制御される。
マッチ線出力回路MO0−MOmは、検索時に、対応するマッチ線ML(ML[0]−ML[M])の電位に基づいて、対応するTCAMセルデータと入力サーチデータとが一致か不一致かの検出信号を生成して、対応するマッチ信号出力線MLO(MLO0−MLOm)へ出力する。バリッドビット(VB0−VBm)が有効を示す場合、マッチ信号出力線MLO(MLO0−MLOm)の信号レベルは、対応するTCAMセルデータと入力サーチデータとが一致か不一致かの検出信号のレベル(一致:ハイレベル、または、不一致:ローレベル)にされる。一方、バリッドビット(VB0−VBm)が無効を示す場合、マッチ信号出力線MLO(MLO0−MLOm)の信号レベルは、対応するTCAMセルデータと入力サーチデータの対応部分とが一致するか否かの検出信号に無関係に、例えば、不一致を示す信号レベル(ローレベル)とされる。
プライオリティエンコーダ(PREN)300は、検索時において、複数のマッチ信号出力線MLO0−MLOmの内の複数が一致を示す信号レベルとされた場合、所定の優先順位に従って、1つのマッチ信号出力線を選択するために設けられる。
TCAMセルMC00−MC0nは、ワード線WLA[0]、WLB[0]およびマッチ線ML[0]に接続される。TCAMセルMC00−MC0nのおのおのは、対応するビット線対(BT[0],BB[0]−BT[n],BB[n])と、対応するサーチ線対(ST[0],SB[0]−ST[n],SB[n])とにそれぞれ接続される。
バリッドセルVC0は、ワード線VWL(第3ワード線)[0]とビット線対VBT,VBBとを含む。バリッドセルVC0は、インバータIV1,IV2と、NチャネルMOS(Metal Oxide Semiconductor)トランジスタTM1,TM2と、インバータIV3と、を含む。インバータIV1は、記憶ノード(第1記憶ノード)VMTから記憶ノード(第2記憶ノード)VMBへ向かう方向が順方向となるように、記憶ノードVMTと記憶ノードVMBの間に接続される。インバータIV2は、IV1と並列かつ逆方向に接続される。転送MOSトランジスタ(アクセストランジスタ)TM1のソースドレイン経路は、記憶ノードVMTとビット線VBTとの間に接続される。転送MOSトランジスタ(アクセストランジスタ)TM2のソースドレイン経路は、記憶ノードVMBとビット線VBBとの間に接続される。MOSトランジスタTM1,TM2のゲートは、ワード線VWL[0]と接続される。記憶ノードVMTは、さらに、リセット信号RTをゲートに受けるリセットMOSトランジスタMRTのドレインが接続される。リセットMOSトランジスタMRTのソースは第2電源電位(接地電位)Vssに接続される。
なお、インバータIV1およびIV2のおのおのは、PチャネルMOSトランジスタとNチャネルMOSトランジスタとを有する。PチャネルMOSトランジスタのソースドレイン経路とNチャネルMOSトランジスタのソースドレイン経路とは、第1電源電位Vccと第2電源電位Vssとの間に、直列に接続されている。PチャネルMOSトランジスタのゲートとNチャネルMOSトランジスタのゲートは共通に接続されて、インバータの入力端子とされる。PチャネルMOSトランジスタのドレインとNチャネルMOSトランジスタのドレインとは共通に接続されて、インバータの入力端子とされる。
ワード線VWL[0]は、論理和回路OR[0]の出力に接続される。論理和回路OR[0]の入力は、ワード線WLA[0]、WLB[0]に接続される。すなわち、論理和回路OR[0]は、第1ワード線WLA[0]および第2ワード線WLB[0]に接続され、第1ワード線または第2ワード線が選択状態とされることに従って、第3ワード線VWL[0]を選択状態とする選択回路と見做すことが出来る。
バリッドセルVC0の記憶ノードVMBの値は、インバータIV3を介して、バリッドビットVB0として、マッチ線出力回路MO0へ供給される。インバータIV3は、記憶ノードVMBの出力回路と見做すことが出来る。
マッチ線出力回路MO0は、否定論理積回路NANDと、PMOSトランジスタPM0、NMOSトランジスタNM0と、インバータIV5、IV6、IV7と、を含む。否定論理積回路NANDの第1入力は、インバータIV3の出力に接続されて、バリッドビットVB0を受ける。否定論理積回路NANDの第2入力は、インバータIV4を介してプリチャージ信号PCを受ける。否定論理積回路NANDの出力は、PMOSトランジスタPM0のゲートに接続される。NMOSトランジスタNM0のゲートは、インバータIV5を介して、バリッドビットVB0の反転信号を受ける。PMOSトランジスタPM0のソースドレイン経路とNMOSトランジスタNM0のソースドレイン経路とは、第1電源電位Vccと第2電源電位(接地電位)Vssとの間位に接続される。マッチ線ML[0]は、PMOSトランジスタPM0及びNMOSトランジスタNM0のドレインに接続される。PMOSトランジスタPM0及びNMOSトランジスタNM0のドレインは、また、インバータIV6、IV7を介してマッチ信号出力線MLO0へ接続される。
TCAMセルMC00−MC0nへエントリデータを書き込む場合、ワード線WLA[0]あるいはワード線WLB[0]を選択状態として、ビット線対BT[0],BB[0]−BT[n],BB[n]に書込みデータを供給して書き込みが行われる。この時、論理和回路OR[0]ににより、バリッドセルVC0のワード線VWL[0]も選択状態とされる為、バリッドセルVC0にビット線対VBT,VBBを介して、書き込みデータを供給することにより、バリッドセルVC0へのバリッドビットの書き込みが可能である。バリッドセルVC0は、記憶ノードVMTおよびVMBがハイレベル(“H”)およびローレベル(“L”)の場合、すなわち、バリッドビットVB0がハイレベル(“H”)の場合、エントリが有効であることを示す。一方、バリッドセルVC0は、記憶ノードVMTおよびVMBがローレベル(“L”)およびハイレベル(“H”)の場合、すなわち、バリッドビットVB0がローレベル(“L”)の場合、エントリが無効で有効であることを示す。
TCAMセルMC00−MC0nに格納されたエントリデータとサーチデータとの比較動作は、サーチ線対(ST[0],SB[0]−ST[n],SB[n]にサーチデータを供給して行われる。
バリッドビットVB0がハイレベル(“H”)であり、プリチャージ信号PCがスタンバイ状態(ローレベル)の場合、PMOSトランジスタPM0がオン状態、NMOSトランジスタNM0がオフ状態である。したがって、マッチ線ML[0]はハイレベルにプリチャージされている。
バリッドビットVB0がハイレベル(“H”)であり、プリチャージ信号PCがアクティブ状態(ハイレベル)にされた場合、PMOSトランジスタPM0がオフ状態、NMOSトランジスタNM0がオフ状態である。そのため、マッチ線ML[0]はフローティング状態とされている。この状態において、エントリデータとサーチデータとが一致する場合、マッチ線ML[0]のプリチャージ電位がハイレベルに維持される。その結果、マッチ信号出力線MLO0は一致を示すハイレベルとされる。一方、エントリデータとサーチデータとが不一致の場合、マッチ線ML[0]のプリチャージ電位がローレベルに変化する。その結果、マッチ信号出力線MLO0は不一致を示すローレベルとされる。
一方、バリッドビットVB0がローレベル(“L”)の場合、PMOSトランジスタPM0がオフ状態、NMOSトランジスタNM0がオン状態である。そのため、マッチ線ML[0]の電位はローレベルとされ、マッチ信号出力線MLO0も不一致を示すローレベルとされる。
バリッドセルVC0の記憶内容をリセットする場合、リセット信号RTがハイレベルとされる。これにより、リセットMOSトランジスタMRTがオン状態とされるので、記憶ノードVMTがローレベル、記憶ノードVMBがハイレベルとされて、バリッドセルVC0には、無効を示すデータが格納される。この場合、図3で示されるように、複数のバリッドセルVC0−VCmはリセット信号RTが供給される配線に接続されており、リセット信号RTのハイレベルの様な活性化により、複数のバリッドセルVC0−VCmに記憶されたバリッドビット(VB0−VBm)をローレベルの様な無効を示すデータへ一括してセットすることが可能である。
図4では、1つのエントリに関して説明されたが、図3に示されるように、エントリ数がM+1とされると、複数のバリッドセルVC0―VCmが設けられので、ワード線VWL[0]−VWL[M]が設けられる。
図3および図4において、論理和回路OR[0]−OR[M]がバリッドセルVC0とメモリアレイ20またはTCAMセルMC0nとの間に設けられた構成の例が示されている。図5において、バリッドセルVC0aは、その内部に、論理和回路OR[0]を内蔵させた構成である。他の構成は、図3または図4と同一である。このような構成であっても、図3や図4と、同様な動作を行わせることが出来る。
図3、図4および図5において、選択回路である論理和回路OR[0]−OR[M]が、対応するエントリの第1ワード線(WLA[0]−WLA[M])及び第2ワード線(WLB[0]−WLB[M])に、接続される構成を示した。図6においては、バリッドセルVC0bは、論理和回路OR[0]が削除されており、その代わりとして、第1ワード線WLA[0]にゲートが接続される転送MOSトランジスタ(アクセストランジスタ)TM1a及びMT2aと、第1ワード線WLB[0]にゲートが接続される転送MOSトランジスタ(アクセストランジスタ)TM1b及びMT2bとがバリッドセルVC0bの内部に設けられる。転送MOSトランジスタ(アクセストランジスタ)TM1a、TM1bのソースドレイン経路はビット線VBTと記憶ノードVMTとの間に接続され、転送MOSトランジスタ(アクセストランジスタ)TM2a、TM2bのソースドレイン経路はビット線VBBと記憶ノードVMBとの間に接続される。すなわち、転送MOSトランジスタ(アクセストランジスタ)TM1a及びMT2a、及び、転送MOSトランジスタ(アクセストランジスタ)TM1b及びMT2bとは、第1ワード線WLA[0]または第2ワード線WLB[0]が選択状態とされた場合、論理和回路OR[0]と同様に、バリッドセルVC0bを選択状態とする選択回路と見做すことが出来る。他の構成は、図3または図4と同一である。このような構成であっても、図3や図4と、同様な動作を行わせることが出来る。
実施形態によれば、バリッドセルVC0のアクセス制御を、ワード線WLA[0]あるいはワード線WLB[0]の選択状態と同様なタイミングで行うことが出来る。そのため、バリッドセルVC0を制御する制御回路を備える必要がないので、上記制御回路の面積が不要である。したがって、面積が低減された内容参照メモリ(TCAMマクロセル)を提供すること可能である。
図7は、実施例1に係るTCAMマクロセル100のブロック図である。
TCAMマクロセル100は、Y方向の単位ユニットUY0−UY3と、X方向の単位ユニットUX0、UX1と、が描かれている。Y方向の単位ユニットを増加させることで、TCAMマクロセル100に含まれるワード線の数、すなわち、エントリの数を増加させること可能である。一方、X方向の単位ユニットを増加させることにより、ビット線対およびサーチ線対の数、すなわち、1エントリのビット数を増加させることが出来る。すなわち、TCAMマクロセル100は、コンパイルドTCAMとされている。
図7において、単位ユニットUY0は、ワード線WLA[0]およびWLB[0]と、メモリセルMC00と、論理和回路OR[0]と、バリッドセルVC0と、マッチ線出力回路MO0と、を有する。メモリセルMC00は、図1を参照できる。バリッドセルVC0及びマッチ線出力回路MO0は、図4を参照できる。
一方、単位ユニットUX0は、書込みドライバWDや読み出し用センスアンプSAを含むIO回路(IO)と、ビット線対BT[0],BB[0]、サーチ線対ST[0],SB[0]と、メモリセルMC00と、を有する。
なお、単位ユニットUY1−3は、詳細には描かれていないが、単位ユニットUY0と同様な構成とされる。また、単位ユニットUX1も、詳細には描かれていないが、単位ユニットUX0と同様な構成とされる。
ワード線ドライバ(WLD)2は、制御回路CTRLからプリデコード信号RA[3:0]およびRGA[1:0]を受けて、ワード線WLA[0]−WLA[3]、WLB[0]−WLB[3]を択一的に選択状態にする。
制御回路CTRLは、サーチイネーブル信号の供給されるサーチイネーブル端子CMP、2ビットのアドレス信号の供給されるアドレス端子A[1:0]、1ビットの選択信号の供給される選択端子DS、ライトイネーブル信号の供給されるライトイネーブル端子WEN、に接続される。制御回路CTRLは、さらに、チップイネーブル信号の供給されるチップイネーブル端子CEN、及び、動作クロックの供給されるクロック端子CLK、バリッドセルリセット信号の供給されるバリッドセルリセット端子VRTに接続される。制御回路CTRLは、プリデコード信号RA[3:0]およびRGA[1:0]、内部ライトイネーブル信号WTE,内部リードイネーブル信号RDE、バリッドセルの内部リセットイネーブル信号RTE、内部サーチラインイネーブル信号SLE、内部プリチャージカット信号PCEを生成する。
制御回路CTRLは、また、スキャンテストのため、スキャンモード信号の供給されるスキャンモード端子SP,テストデータの入力されるスキャン入力端子SIに接続され、スキャンインデータSICLMを生成する。
IO回路(IO)は、TCAMセルMCのための入出力回路であり、クロック端子CLK、TCAMセルMC(MC00)へのライトデータないしサーチデータの供給されるデータ端子Dと、ビットライトマスク端子BWNと、TCAMセルMC(MC00)からの読み出しデータの供給されるデータ出力端子Qに接続される。IO回路(IO)は、サーチ線対ST[0],SB[0]、および、ビット線対BT[0],BB[0]に接続される。IO回路(IO)は、また、制御回路CTRLから各信号(WTE,RDE、RTE、SLE)を受けるようにされ、制御回路CTRLからスキャンインデータSICLMを受けるスキャンインデータ端子SICLMと、スキャンアウトデータ端子SOCLMと、を有する。
VIO回路(VIO)は、バリッドセルVMCのための入出力回路であり、クロック端子CLK、バリッドセルVC(VC0)へのライトデータの供給されるデータ端子VBIと、ビットライトマスク端子VWNと、バリッドセルVC(VC0)からの読み出しデータの供給されるデータ出力端子VBOに接続される。VIO回路(VIO)は、制御回路CTRLから各信号(WTE,RDE、RTE)を受ける。VIO回路(VIO)は、また、ビット線対BT[0],BB[0]接続され、リセット信号RTを生成する。VIO回路(VIO)は、また、IO回路(IO)のスキャンアウトデータ端子SOCLMに接続されるスキャンインデータ端子VSICLMと、スキャンアウトデータ端子VSOCLMと、を有する。
IOエッジ回路IO_edgeは、入出力周辺回路であり、制御回路CTRLから内部プリチャージカット信号PCEを受け、マッチ線出力回路MO0へ供給される内部プリチャージ信号PCを生成する。IOエッジ回路IO_edgeは、また、スキャンアウトデータ端子SOCLMとスキャンアウト端子SOとを有する。
図7の制御回路CTRL、IO回路(IO)、VIO回路(VIO)、IOエッジ回路IO_edge、ワード線ドライバWLD等の詳細な説明は、後述する。
図7のTCAMマクロセル100は、図3および図4と同様に、バリッドセルVC0のワード線VWL[0]は、ワード線WLA[0]およびWLB[0]を入力とする論理和回路OR[0]の出力に接続されており、バリッドセルVC0のワード線VWL[0]の選択は、ワード線WLA[0]またはWLB[0]の選択レベルに従って、論理和回路OR[0]により行われる。したがって、バリッドセルVC0のワード線VWL[0]を選択するためのワードドライバや選択回路は不要であり、TCAMマクロセル100の面積は低減可能である。
[比較例]
図8は、比較例に係るTCAMマクロセルのブロック図である。図8は、本発明者らにより検討されたTCAMマクロセル110のブロック図であり、公知とされたものではない。図7のTCAMマクロセル100と図8のTCAMマクロセル110との異なる部分は、図8において、バリッドセルVC0制御のための制御回路VCTRLと、バリッドセルVC0のワード線VWL[0]の選択制御のためのワード線ドライバVWLDとが設けられている点である。これらの変更のため、図8のVIO回路(VIOb)及び制御回路(CTRLb)が図7に対して若干変更されている。すなわち、図8のVIO回路(VIOb)は、CLK端子ではなく、バリッドセルの制御のための動作クロックをための動作クロック端子VCLKに接続される。また、制御回路(CTRLb)は、バリッドセルリセット端子VRTが削除されており、代わりに、VRT端子は制御回路VCTRLに接続される。
制御回路VCTRLは、バリッドセルリセット端子VRTと、バリッドセルを選択するための2ビットのアドレスが供給されるアドレス端子VA[1:0]と、バリッドセルのチップイネーブル信号の供給されるチップイネーブル端子VCENと、バリッドセルのライトイネーブル信号の供給されるライトイネーブル端子VWENと、に接続される。
制御回路VCTRLは、ワード線ドライバVWLDに対してバリッドセルを選択するための4ビットのプリデコード信号VRA[3:0]を出力する。
制御回路VCTRLは、また、VIO回路(VIOb)に対して、バリッドセルのリードイネーブル信号VRDE、バリッドセルのライトイネーブル信号VWTE、バリッドセルのリセットイネーブル信号RTE,を出力する。制御回路VCTRLは、また、マッチ線ML(ML[0]−ML[3])に対するプリチャージカット信号PCEを、IOエッジ回路IO_edgeへ出力する。
ワード線ドライバVWLDは、制御回路VCTRLからのプリデコード信号VRA[3:0]にしたがって、バリッドセルのワード線(VWL[0]―VWL[3])から対応するワード線VWLを選択状態とする。これにより、バリッドセルVC0−VC3から所望のバリッドセルが選択状態にされる。この状態において、ライトイネーブル信号VWTEが書き込みを示す場合、データ端子VBIに供給されたライトデータが、VIO回路(VIOb)からビット線VBT,VBBを介して、バリッドセルVC(VC0)へ供給され、ライトデータが選択状態のバリッドセルVCへ書き込まれる。
図8の制御回路CTRLb、IO回路(IO)、VIO回路(VIOb)、IOエッジ回路IO_edge、ワード線ドライバVWLD等の詳細な説明は、後述する。
図8から理解されるように、TCAMセルのワード線(WLA[0],WLB[0]−WLA[3],WLB[3])を選択するためのワード線ドライバWLDおよび制御回路CTRLbと、バリッドセルのワード線(VWL[0]−VWL[3])を選択するためのワード線ドライバVWLDおよび制御回路VCTRLと、が別々に設けられる。すなわち、図8に示されるTCAMマクロセル110おいては、制御回路VCTRLおよびワード線ドライバVWLDが設けられている。そのため、図7に示されるTCAMマクロセル100の構成と比較し、制御回路VCTRLおよびワード線ドライバVWLDを形成するための面積が必要である。その結果、半導体装置への図8のTCAMマクロセル110の形成は、半導体装置への図7のTCAMマクロセル100の形成と比較して、面積的及びコスト的に不利となる虞がある。
[TCAMマクロセルの変形例1]
図9は、変形例1に係るTCAMマクロセルのブロック図である。図9のTCAMマクロセル100aと、図7のTCAMマクロセル100と異なる部分は、図9において、バリッドセルが図5に示されるバリッドセルVC0aまたは図6に示されるバリッドセルVC0bへ変更されている点である。他の構成は、図7と同じである。
[実施例1および比較例の詳細な回路の説明]
以下の説明では、図7及び図8等において説明された、サーチイネーブル端子CMP、アドレス端子A[1:0]、選択端子DS、ライトイネーブル端子WEN、チップイネーブル端子CEN、クロック端子CLK、バリッドセルリセット端子VRT等の各端子に供給される信号名は、各端子の参照記号と同じ記号を用いて説明することとする。また、以下で説明される図7の実施例1に係るTCAMマクロセルの具体的な回路構成は、図9の変形例に係るTCAMマクロセルに、適用可能である。
[実施例1の詳細な回路の説明]
図10は、図7の制御回路CTRLの回路例を示す図である。
制御回路CNTCは、フリップフロップFF1−FF5、アンド回路AN1−AN8、オア回路OR1、遅延回路DL1−DL3、インバータINV5、バッファアンプBF1,BF2、及び、プリデコーダPRIDECを含む。
ライトイネーブル信号WENは読み出し命令と書き込み命令を識別する制御信号であり、クロック信号CLKは読み書き動作の基準のクロック信号であり、チップイネーブル信号CENはクロック信号CLKの有効・無効を制御する制御信号である。サーチイネーブル信号CMPはサーチ動作を制御する制御信号であり、バリッドセルリセット信号VRTはバリッドセルのリセットを制御する制御信号である。
フリップフロップFF1は、2ビットのアドレス信号AD[1:0]および選択信号DSをクロック信号CLKに基づいて取り込み、内部アドレス信号ADL[1:0]および内部選択信号DSLを生成する。フリップフロップFF2は、ライトイネーブル信号WENをクロック信号CLKに基づいて取り込み、内部ライトイネーブル信号WENLを生成する。同様に、フリップフロップFF3、FF4及びFF5のそれぞれは、バリッドセルリセット信号VRT、サーチイネーブル信号CMPおよびチップイネーブル信号CENをクロック信号CLKに基づいて取り込む。
アンド回路AN1は、FF5により取り込まれたチップイネーブル信号CENの反転信号、クロック信号CLK、および、インバータINV5の出力信号を受けて、内部動作クロック信号CK1を生成する。インバータINV5の入力は、FF3により取り込まれたバリッドセルリセット信号VRTとFF4により取り込まれたサーチイネーブル信号CMPとが入力されたオア回路OR1の出力に接続される。
アンド回路AN2は、一方の入力端子に、内部動作クロック信号CK1を受けて、プリデコーダPRIDECの起動トリガー信号とされるデコード起動信号TDECRWを生成する。アンド回路AN2は、また、他方の入力端子に、デコード起動信号TDECRWが遅延回路DL1により遅延されたタイミング調整用信号BACKRWの反転信号を受けて、デコード起動信号TDECRWのレベルを変化させる。
アンド回路AN3は、デコード起動信号TDECRWおよび内部ライトイネーブル信号WENLの反転信号を受けて、ライトパルスとされる内部ライトイネーブル信号WTEを生成する。
アンド回路AN4は、デコード起動信号TDECRWおよび内部ライトイネーブル信号WENLを受けて、リードパルスとされる内部リードイネーブル信号RDEを生成する。
アンド回路AN5は、FF5により取り込まれたチップイネーブル信号CENの反転信号、クロック信号CLK、および、オア回路OR1の出力信号を受けて、内部動作クロック信号CK2を生成する。
アンド回路AN6は、一方の入力端子に、内部動作クロック信号CK2を受けて、起動信号TDECCMを生成する。アンド回路AN6は、また、他方の入力端子に、起動信号TDECCMが遅延回路DL2により遅延されたタイミング調整用信号BACKCMの反転信号を受けて、起動信号TDECCMのレベルを変化させる。
アンド回路AN7は、FF3により取り込まれたバリッドセルリセット信号VRTと起動信号TDECCMとにより、バリッドセルの内部リセットイネーブル信号RTEを生成する。
ノア回路NOR1は、FF3により取り込まれたバリッドセルリセット信号VRTとFF4により取り込まれたサーチイネーブル信号CMPの反転信号を受ける。ノア回路NOR1の出力端子は、アンド回路AN8の一方の入力端子に接続される。
アンド回路AN8の他方の入力端子は起動信号TDECCMを供給されおり、その出力端子はオア回路OR2の一方の入力端子に接続される。
オア回路OR2の他方の入力端子は、遅延素子DL3を介して、アンド回路AN8の出力信号を受け、内部サーチラインイネーブル信号SLEおよび内部プリチャージカット信号PCEを生成する。
プリデコーダPRIDECは、デコード起動信号TDECRWを受け、内部アドレス信号ADL[1:0]および内部選択信号DSLをデコードし、プリデコード信号として、4ビットの上位内部行アドレス信号RA[3:0]、2ビットの下位内部行アドレス信号RGA[1:0]を生成する。
制御回路CTRLは、また、バッファ回路BF1およびBF2を有する。バッファ回路BF1はスキャンモード信号SPを受けて、内部スキャンパスイネーブル信号SPEを生成する。バッファ回路BF2はテストデータSIを受けて、内部テストデータ信号を生成する。
図11は、図10のプリデコーダPRIDECの回路例を示す図である。
プリデコーダPRIDECは、4ビットの上位内部行アドレス信号RA[3]、「2」、「1」、[0]を生成する4つのAND回路AN9−AN12と、2ビットの下位内部行アドレス信号RGA「1」、[0]を生成する2つのAND回路AN13、AN14と、を有する。
AND回路AN9−AN12のそれぞれは、内部アドレス信号ADL[1]、[0]とデコード起動信号TDECRWとを受け、デコード起動信号TDECRWの活性化により、内部アドレス信号ADL[1]、[0]のデコードを行う。そのため、AND回路AN10は内部アドレス信号ADL[0]の反転信号を受け、AND回路AN11は内部アドレス信号ADL[1]の反転信号を受け、AND回路AN12は内部アドレス信号ADL[1]および[0]の反転信号を受ける。
AND回路AN13−AN14のそれぞれは、内部選択信号DSLとデコード起動信号TDECRWとを受ける様にされ、デコード起動信号TDECRWの活性化により、内部選択信号DSLのデコードを行う。AND回路AN14は内部選択信号DSLの反転信号を受けるようにされる。
図12は、図7のワード線ドライバWLDの回路例を示す図である。
ワード線ドライバWLDは、4ビットの上位内部行アドレス信号RA[3]、「2」、「1」、[0]と2ビットの下位内部アドレス信号RGA「1」、[0]との組み合わせにより、ワード線WLA[0]、WLB[0]、・・・、WLA[3]、WLB[3]の内の1つのワード線を選択する構成とされており、AND回路AN20−27を含む。AND回路AN20−27のそれぞれは、ワード線駆動回路(ワード線ドライバ)として機能する。
AND回路AN20は、内部アドレス信号RA[0]と内部アドレス信号RGA「0」とを受けて、ワード線WLA[0]の選択・非選択を制御する。AND回路AN21は、内部アドレス信号RA[0]と内部アドレス信号RGA「1」とを受けて、ワード線WLB[0]の選択・非選択を制御する。AND回路AN22は、内部アドレス信号RA[1]と内部アドレス信号RGA「0」とを受けて、ワード線WLA[1]の選択・非選択を制御する。AND回路AN23は、内部アドレス信号RA[1]と内部アドレス信号RGA「1」とを受けて、ワード線WLB[1]の選択・非選択を制御する。AND回路AN24は、内部アドレス信号RA[2]と内部アドレス信号RGA「0」とを受けて、ワード線WLA[2]の選択・非選択を制御する。
AND回路AN25は、内部アドレス信号RA[2]と内部アドレス信号RGA「1」とをうけて、ワード線WLB[3]の選択・非選択を制御する。AND回路AN26は、内部アドレス信号RA[3]と内部アドレス信号RGA「0」とを受けて、ワード線WLA[3]の選択・非選択を制御する。AND回路AN27は、内部アドレス信号RA[3]と内部アドレス信号RGA「1」とを受けて、ワード線WLB[3]の選択・非選択を制御する。
図13は、図7のIO回路IOの回路例を示す図である。
IO回路(IO)は、TCAMセルMCのための入出力回路であり、クロック端子CLK、TCAMセルMC(MC00)へのライトデータないしサーチデータの供給されるデータ端子Dと、ビットライトマスク端子BWNと、TCAMセルMC(MC00)からの読み出しデータの供給されるデータ出力端子Qに接続される。
IO回路(IO)は、また、制御回路CTRLから各信号(WTE,RDE、RTE、SLE、SPE)を受けるようにされ、制御回路CTRLからスキャンインデータSICLMを受けるスキャンインデータ端子SICLMと、スキャンアウトデータ端子SOCLMと、を有する。
IO回路(IO)は、サーチ線対ST[0],SB[0]、および、ビット線対BT[0],BB[0]に接続される。
サーチ線対ST[0],SB[0]は、サーチ線ドライバSDとされるNOR回路NR10及びNR11の出力端子におのおの接続される。NOR回路NR10及びNR11の一方の入力は、インバータ回路INV6を介して、サーチラインイネーブル信号SLEを受ける。NOR回路NR10及びNR11の他方の入力は、フリップフロップFF6及び選択回路SEL1を介して、データ端子Dに供給されるサーチデータが供給可能にされる。
サーチ線対ST[0],SB[0]へのサーチデータの供給は、以下のようにされる。この場合、サーチラインイネーブル信号SLEは、ハイレベルの様な選択レベルとされており、他の制御信号(SPE,RDE,WTE)はローレベルの様な非選択レベルにされているものとする。
データ端子Dに供給されるハイレベルのサーチデータは、選択回路SEL1により、フリップフロップFF6へ供給され、クロック信号CLKによって取り込まれる。フリップフロップFF6の出力は、NOR回路NR10及びNR11の他方の入力へ供給される。インバータ回路INV6の出力はローレベルとされており、NOR回路NR10及びNR11の出力端子は、ハイレベルおよびローレベルのデータが供給される。データ端子Dに供給されるローレベルのサーチデータの場合、NOR回路NR10及びNR11の出力端子には、ローレベルおよびハイレベルのデータが供給される。
ビット線対BT[0],BB[0]は、ライトドライバWDとされるNチャネルMOSトランジスタNQ1およびNQ2に接続される。NチャネルMOSトランジスタNQ1およびNQ2のゲートは、NOR回路NR12及びNR13の出力に接続される。NチャネルMOSトランジスタNQ1のソースドレイン経路はBB[0]と第2電源電位Vssとの間に接続され、NチャネルMOSトランジスタNQ2のソースドレイン経路はBT[0]と第2電源電位Vssとの間に接続される。
NOR回路NR12及びNR13の一方の入力は、フリップフロップFF6及び選択回路SEL1を介して、データ端子Dに供給される書き込みデータが供給可能にされる。NOR回路NR12及びNR13の他方の入力は、ナンド回路NA10の出力に接続される。ナンド回路NA10の一方の入力はライトイネーブル信号WTEに接続され、ナンド回路NA10の他方の入力はフリップフロップFF7を介して、ビットライトマスク信号BWNが供給可能にされている。
ビットライトマスク信号BWNがハイレベルの様な選択レベルとされると、ライトイネーブル信号WTEがハイレベルの様な選択レベルとされていても、NチャネルMOSトランジスタNQ1およびNQ2のゲートはローレベルとされ、データの書き込みがマスクされる。すなわち、データの書き込みが阻止される。
一方、ビットライトマスク信号BWNがローレベルの様な非選択レベルとされ、ライトイネーブル信号WTEがハイレベルの様な選択レベルとされると、NチャネルMOSトランジスタNQ1およびNQ2のゲートはNOR回路NR12及びNR13の出力により、ローレベルおよびハイレベル、または、ハイレベルおよびローレベルの様なレベルとされて、駆動される。これにより、ビット線対BT[0],BB[0]のレベルが書き込みデータに対応するレベルとされ、選択状態のワード線によって選択されているTCAMセル(MC00)へ書き込みデータが書き込まれる。
ビット線対BT[0]は、また、読み出し回路SAとされるインバータ回路INV7、ラッチ回路LT1およびインバータ回路INV8を介して、データ出力端子Qへ接続される。インバータ回路INV7およびラッチ回路LT1は、バッファ回路BF4を介して、リードイネーブル信号RDEを受ける。インバータ回路INV7およびラッチ回路LT1は、リードイネーブル信号RDEのハイレベルの様な選択レベルにより動作状態とされて、ビット線対BT[0]に読み出されたTCAMセル(MC00)の読み出しデータを、データ出力端子Qへ供給する。
ビット線対BT[0],BB[0]は、また、PチャネルMOSトランジスタから構成されるプリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2が接続される。プリチャージトランジスタPQ1、PQ3のソースドレイン経路は第1電源電位Vccとビット線対BT[0],BB[0]との間に接続される。イコライズトランジスタPQ2のソースドレイン経路はビット線BT[0]とビット線BB[0]との間に接続される。プリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2のおのおののゲートはリードイネーブル信号RDEに接続される。プリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2は、リードイネーブル信号RDEのローレベルの様な非選択レベルにより、動作状態とされる。
ビット線対BT[0],BB[0]は、また、PチャネルMOSトランジスタから構成されるプルアップトランジスタPQ4及びPQ5に接続される。プルアップトランジスタPQ4のソースドレイン経路は第1電源電位Vccとビット線BB[0]との間に接続され、そのゲートはビット線BT[0]に接続される。プルアップトランジスタPQ5のソースドレイン経路は第1電源電位Vccとビット線BT[0]との間に接続され、そのゲートはビット線BB[0]に接続される。
選択回路SEL1は、内部スキャンパスイネーブル信号SPEのハイレベルの様な選択レベルにより、制御回路CTRLからスキャンインデータSICLMを選択し、スキャンアウトデータ端子SOCLMへ接続する。
図14は、図7のVIO回路VIOの回路例を示す図である。
VIO回路VIOは、バリッドセルVMCのための入出力回路であり、クロック端子CLK、バリッドセルVC(VC0)へのライトデータの供給されるデータ端子VBIと、ビットライトマスク端子VWNと、バリッドセルVC(VC0)からの読み出しデータの供給されるデータ出力端子VBOに接続される。
VIO回路(VIO)は、制御回路CTRLから各制御信号(WTE,RDE、RTE、SPE)を受ける。VIO回路(VIO)は、また、ビット線対VBT[0],VBB[0]接続され、リセット信号RTを生成する。VIO回路(VIO)は、また、IO回路(IO)のスキャンアウトデータ端子SOCLMに接続されるスキャンインデータ端子VSICLMと、スキャンアウトデータ端子VSOCLMと、を有する。
ビット線対VBT[0],VBB[0]は、ライトドライバVWDとされるNチャネルMOSトランジスタNQ1vおよびNQ2vに接続される。NチャネルMOSトランジスタNQ1vおよびNQ2vのゲートは、NOR回路NR12v及びNR13vの出力に接続される。NチャネルMOSトランジスタNQ1vのソースドレイン経路はVBB[0]と第2電源電位Vssとの間に接続され、NチャネルMOSトランジスタNQ2vのソースドレイン経路はVBT[0]と第2電源電位Vssとの間に接続される。NOR回路NR12v及びNR13vの一方の入力は、フリップフロップFF8及び選択回路SEL1vを介して、データ端子VBIに供給される書き込みデータ(バリッドビットデータ)が供給可能にされる。
NOR回路NR12v及びNR13vの他方の入力は、ナンド回路NA10vの出力に接続される。ナンド回路NA10vの一方の入力はライトイネーブル信号WTEに接続され、ナンド回路NA10vの他方の入力はフリップフロップFF9を介して、ビットライトマスク信号VWNが供給可能にされている。
ビットライトマスク信号VWNがハイレベルの様な選択レベルとされると、ライトイネーブル信号WTEがハイレベルの様な選択レベルとされていても、NチャネルMOSトランジスタNQ1vおよびNQ2vのゲートはローレベルとされ、データの書き込みがマスクされる。すなわち、データの書き込みが阻止される。
一方、ビットライトマスク信号VWNがローレベルの様な非選択レベルとされ、ライトイネーブル信号WTEがハイレベルの様な選択レベルとされると、NチャネルMOSトランジスタNQ1vおよびNQ2vのゲートはNOR回路NR12v及びNR13vの出力により、ローレベルおよびハイレベル、または、ハイレベルおよびローレベルの様なレベルとされて、駆動される。これにより、ビット線対VBT[0],VBB[0]のレベルが書き込みデータに対応するレベルとされ、選択状態のワード線VWL[0]によって選択されているバリッドセルVC(VC0)へ書き込みデータが書き込まれる。
ビット線対VBT[0]は、また、読み出し回路VSAとされるインバータ回路INV7v、ラッチ回路LT1vおよびインバータ回路INV8vを介して、データ出力端子VBOへ接続される。インバータ回路INV7vおよびラッチ回路LT1vは、バッファ回路BF4vを介して、リードイネーブル信号RDEを受ける。インバータ回路INV7vおよびラッチ回路LT1vは、リードイネーブル信号RDEのハイレベルの様な選択レベルにより動作状態とされて、ビット線対VBT[0]に読み出されたバリッドセルVC(VC0)の読み出しデータを、データ出力端子VBOへ供給する。
ビット線対VBT[0],VBB[0]は、また、PチャネルMOSトランジスタから構成されるプリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vが接続される。プリチャージトランジスタPQ1v、PQ3vのソースドレイン経路は第1電源電位Vccとビット線対VBT[0],VBB[0]との間に接続される。イコライズトランジスタPQ2vのソースドレイン経路はビット線VBT[0]とビット線VBB[0]との間に接続される。プリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vのおのおののゲートはリードイネーブル信号RDEに接続される。プリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vは、リードイネーブル信号RDEのローレベルの様な非選択レベルにより、動作状態とされる。
ビット線対VBT[0],VBB[0]は、また、PチャネルMOSトランジスタから構成されるプルアップトランジスタPQ4v及びPQ5vに接続される。プルアップトランジスタPQ4vのソースドレイン経路は第1電源電位Vccとビット線VBB[0]との間に接続され、そのゲートはビット線VBT[0]に接続される。プルアップトランジスタPQ5vのソースドレイン経路は第1電源電位Vccとビット線VBT[0]との間に接続され、そのゲートはビット線VBB[0]に接続される。
選択回路SEL1vは、内部スキャンパスイネーブル信号SPEのハイレベルの様な選択レベルにより、制御回路CTRLからスキャンインデータVICLMを選択し、スキャンアウトデータ端子VSOCLMへ接続する。
VIO回路(VIO)は、また、リセットイネーブル信号RTEを受けるバッファ回路BF5を有し、バッファ回路BF5によりリセット信号RTをバリッドセルVC(VC0)へ出力する。
図15は、図7のIOエッジ回路IO_edgeの回路例を示す図である。
IOエッジ回路IO_edgeは、マッチ線ML[0]の内部プリチャージカット信号PCEを受けて、内部プリチャージ信号PCを生成するバッファ回路BF6と、スキャンアウトデータ端子SOCLMをスキャンアウト端子SOへ接続するバッファ回路BF7と、を有する。
[比較例の詳細な回路の説明]
図16は、図8の制御回路CTRLbの回路例を示す図である。制御回路CTRLbは、図10の制御回路CTRLの回路例から、VRT,FF3,OR1,NOR1およびAN8を削除した構成であり、他の構成は図10の制御回路CTRLの回路例と同じである。そのため、制御回路CTRLbの詳細な説明は、図10の制御回路CTRLの説明を参照可能であるため、省略する。また、図16に示されるプリデコーダPRIDECは、図11のプリデコーダPRIDECの回路例と同じである。
図17は、図8の制御回路VCTRLの回路例を示す図である。
制御回路VCNTCは、フリップフロップFF1v−FF3v、FF5v、アンド回路AN1v−AN6v、オア回路OR2v、遅延回路DL1v−DL3v、インバータINV5v、バッファアンプBFv、及び、プリデコーダPRIDECvを含む。
ライトイネーブル信号VWENは読み出し命令と書き込み命令を識別する制御信号であり、クロック信号VCLKは読み書き動作の基準のクロック信号であり、チップイネーブル信号VCENはクロック信号VCLKの有効・無効を制御する制御信号である。バリッドセルリセット信号VRTはバリッドセルのリセットを制御する制御信号である。
フリップフロップFF1vは、2ビットのアドレス信号VA[1:0]をクロック信号VCLKに基づいて取り込み、内部アドレス信号VADL[1:0]を生成する。フリップフロップFF2vは、ライトイネーブル信号VWENをクロック信号VCLKに基づいて取り込み、内部ライトイネーブル信号VWENLを生成する。同様に、フリップフロップFF3v及びFF5vのそれぞれは、バリッドセルリセット信号VRTおよびチップイネーブル信号VCENをクロック信号VCLKに基づいて取り込む。
アンド回路AN1vは、FF5vにより取り込まれたチップイネーブル信号VCENの反転信号、クロック信号VCLK、および、インバータINV5vの出力信号を受けて、内部動作クロック信号CK1vを生成する。インバータINV5vの入力は、FF3vにより取り込まれたバリッドセルリセット信号VRTに接続される。
アンド回路AN2vは、一方の入力端子に、内部動作クロック信号CK1vを受けて、プリデコーダPRIDECvの起動トリガー信号とされるデコード起動信号TDECVRWを生成する。アンド回路AN2vは、また、他方の入力端子に、デコード起動信号TDECVRWが遅延回路DL1vにより遅延されたタイミング調整用信号BACKVRWの反転信号を受けて、デコード起動信号TDECVRWのレベルを変化させる。
アンド回路AN3vは、デコード起動信号TDECVRWおよび内部ライトイネーブル信号VWENLの反転信号を受けて、ライトパルスとされる内部ライトイネーブル信号VWTEを生成する。
アンド回路AN4vは、デコード起動信号TDECVRWおよび内部ライトイネーブル信号VWENLを受けて、リードパルスとされる内部リードイネーブル信号VRDEを生成する。
アンド回路AN5vは、FF5vにより取り込まれたチップイネーブル信号VCENの反転信号、クロック信号VCLK、および、FF5vにより取り込まれたチップイネーブル信号VCENを受けて、内部動作クロック信号CK2vを生成する。
アンド回路AN6vは、一方の入力端子に、内部動作クロック信号CK2vを受けて、起動信号TDECRTを生成する。アンド回路AN6vは、また、他方の入力端子に、起動信号TDECRTが遅延回路DL2vにより遅延されたタイミング調整用信号BACKRTの反転信号を受けて、起動信号TDECRTのレベルを変化させる。
バッファ回路BF1vの入力は起動信号TDECRTを供給されおり、その出力からバリッドセルの内部リセットイネーブル信号RTEを生成する。
オア回路OR2vの一方の入力端子は起動信号TDECRTを供給されており、オア回路OR2vの他方の入力端子は起動信号TDECRTを供給される遅延素子DL3vを介して受けて、バリッドセルの内部プリチャージカット信号PCEを生成する。
図18は、図17のプリデコーダPRIDECvの回路例を示す図である。
プリデコーダPRIDECvは、デコード起動信号TDECVRWを受け、内部アドレス信号VADL[1:0]をデコードし、プリデコード信号として、4ビットの内部行アドレス信号VRA[3:0]を生成する。
プリデコーダPRIDECvは、4ビットの内部アドレス信号VRA[3]、「2」、「1」、[0]を生成する4つのAND回路AN9v−AN12vを有する。
AND回路AN9v−AN12vのそれぞれは、内部アドレス信号VADL[1]、[0]とデコード起動信号TDECVRWとを受け、デコード起動信号TDECVRWの活性化により、内部アドレス信号VADL[1]、[0]のデコードを行う。そのため、AND回路AN10vは内部アドレス信号VADL[0]の反転信号を受け、AND回路AN11vは内部アドレス信号AVDL[1]の反転信号を受け、AND回路AN12vは内部アドレス信号VADL[1]および[0]の反転信号を受ける。
図19は、図8のワード線ドライバVWLDの回路例を示す図である。
ワード線ドライバVWLDは、プリデコーダPRIDECvにより生成された4ビットのプリデコード信号VRA[3:0]にしたがって、バリッドセルVC0−VC3のワード線(VWL[0]―VWL[3])から対応するワード線VWLを選択状態とする。ワード線ドライバVWLDは、バッファ回路BF20v−BF23vを有し、バッファ回路BF2v−BF5vの入力のおのおのはプリデコード信号VRA[3],[2]、[1]、[0]をそれぞれ受け、バッファ回路BF20v−BF23vの出力のおのおのは、バリッドセルV0−VC3のワード線VWL[3],VWL[2]、VWL[1]、VWL[0]に接続される。
図20は、図8のVIO回路VIObの回路例を示す図である。
VIO回路VIObは、図14のVIO回路VIOから、SPE、SEL1v、VSICLM,VSOCLMを削除した構成であり、他の構成は図14のVIO回路VIOの回路例と同じである。そのため、VIO回路VIObの詳細な説明は、図14のVIO回路VIOの説明を参照可能であるため、省略する。
以上説明したように、図8に示される比較例に係るTCAMマクロセル110は、図7の実施例1に係るTCAMマクロセル100及び図9の変形例に係るTCAMマクロセル100aと比較し、図17の制御回路VCTRL、図18のプリデコーダPRIDECvおよび図19のワード線ドライバVWLDを必要とする。そのため、制御回路VCTRL、プリデコーダPRIDECvおよびワード線ドライバVWLDを形成するための面積が半導体チップや半導体装置に必要であるので、面積的及びコスト的に、不利となる虞がある。しかしながら、図7のTCAMマクロセル100や図9のTCAMマクロセル100aは、制御回路VCTRL、プリデコーダPRIDECvおよびワード線ドライバVWLDの追加が不要であり、面積的及びコスト的に、有利である。
[スキャンパスの構成]
図21は、実施例1に係るスキャンパスの構成を概念的に示す図である。
図21は、図7のTCAMマクロセル100および図9のTCAMマクロセル100aにおいて、制御回路CTRL,IO回路IO,VIO回路VIOおよびIOエッジ回路IO_edgeに設けられたスキャンパスの経路を示す。なお、図21には、IO回路IOを例示的に2つ示している。
制御回路CTRLは、スキャンモード信号の供給されるスキャンモード端子SP、テストデータの入力されるスキャン入力端子SI、及びスキャンテスト時の動作クロックの入力されるクロック端子CLKに接続される。制御回路CTRLは、スキャンモード信号SPを受けて、内部スキャンパスイネーブル信号SPEを生成する。
キャンパスイネーブル信号SPEがハイレベルの様な選択レベルとされると、IO回路およびVIO回路内の選択回路SEL1、SEL1vは、D端子、VBI端子からの入力に変えて、スキャンインデータ端子SICLM、VSICLMを選択する。これにより、選択回路SEL1、SEL1vの出力がフリップフロップFF6、FF8の入力に接続される。一方、フリップフロップFF6、FF8の出力は、スキャンアウトデータ端子SOCLM、VSOCLMに接続されており、次段のスキャンインデータ端子SICLM、VSICLMへ接続される。この様な構成により、IO回路IOおよびVIO回路VIOに、スキャンチェーンSCHAIN[0]−SCHAIN[n−1]が構成される。
VIO回路VIOのスキャンアウトデータ端子VSOCLMは、IOエッジ回路IO_edgeに設けられたスキャンアウトデータ端子SOCLMに接続されて、スキャンチェーンSCHAIN[n]が構成される。スキャンアウトデータ端子SOCLMは、VIO回路VIOのスキャンアウトデータ端子SOに接続され、端子SIから端子SOの間のスキャンパスが構成される。
キャンパスイネーブル信号SPEがローレベルの様な非選択レベルとされると、IO回路およびVIO回路内の選択回路SEL1、SEL1vは、D端子、VBI端子を選択する。この場合、スキャンパスは構成されない。
例えば、テストモードにおいて、キャンパスイネーブル信号SPEをローレベルとして、動作させると、フリップフロップFF6及びFF8は、前段に設けられた論理回路ブロックからの入力データを保持することになる。その後、キャンパスイネーブル信号SPEをハイレベルとして、スキャンパスを構成し、フリップフロップFF6及びFF8に格納されたデータを、スキャンアウトデータ端子SOから出力させ、例えば、テスタ等の検査装置により解析させることにより、前段に設けられた論理回路ブロックの不良ないし故障の検証を行うことが可能になる。
[配線レイアウトの構成]
図22は、実施例1に係る配線のレイアウト配置を概念的に示す断面図である。
図22は、図7のTCAMマクロセル100および図9のTCAMマクロセル100aにおけるメモリアレイ20の領域と周辺回路部40の領域との配線の配置を示している。メモリアレイ20の領域は、複数のTCAMセルが配置される領域である。周辺回路部40の領域は、制御回路CTRL、IO回路(IO)、VIO回路(VIO)及びIOエッジ回路IO_edgeが配置される領域である。
メモリアレイ20の領域には、複数のワード線WL(WLA,WLB)、複数のマッチ線ML(ML[0]−ML[m])、ビット線(BT,BB)、サーチ線(ST,SB)が描かれている。周辺回路部40の領域には、内部ライトイネーブル信号WTEの供給される配線(WTE),内部リードイネーブル信号RDEの供給される配線(RDE)、バリッドセルの内部リセットイネーブル信号RTEの供給される配線(RTE)、内部サーチラインイネーブル信号SLEの供給される配線(SLE)、内部プリチャージカット信号PCEの配線(PCE)、および、電源配線(Vcc,Vss)が描かれている。
メモリアレイ20の領域において、ビット線(BT,BB)及びサーチ線(ST,SB)は例えば、第1層目の配線層により形成され、紙面において、水平方向に沿って延在して配置される。複数のワード線WL(WLA、WLB)は、例えば、第1層目の配線層より上側に形成された第2層目の配線層により形成され、紙面において、表面に垂直方向に沿って延在して配置される。複数のマッチ線ML(ML[0]−ML[m])は、例えば、第2層目の配線層より上側に形成された第3層目の配線層により形成され、紙面において、表面に垂直方向に沿って延在して配置される。ビット線(BT,BB)及びサーチ線(ST,SB)と、複数のワード線WLおよび複数のマッチ線MLとは、上面から見た場合、垂直に交差するように配置されている。複数のワード線WLのおのおのは、第2層目の配線層において、ほぼ平行に配置される。同様に、複数のマッチ線MLのおのおのは、第3層目の配線層において、ほぼ平行に配置される。複数のワード線WLおよび複数のマッチ線MLは、ほぼ平行に配置される。
周辺回路部40の領域において、配線(WTE),配線(RDE)、配線(RTE)、配線(SLE)および配線(PCE)は、例えば、第2層目の配線層により形成され、紙面において、表面に垂直方向に沿って延在して配置される。配線(WTE),配線(RDE)、配線(RTE)、配線(SLE)および配線(PCE)は、複数のワード線WLとほぼ平行に配置される。電源配線(Vcc,Vss)は、例えば、第3層目の配線層により形成され、紙面において、水平方向に沿って延在して配置される。
図7および図9は、TCAMマクロセル100およびTCAMマクロセル100aの平面レイアウトを意識して描かれている。すなわち、複数のワード線WL(WLA[0]−WLA[M],WLB[0]−WLB[M])は、例えば、第2層目の配線層により形成され、X方向に沿って並行して延在して配置される。複数のマッチ線ML[0]−ML[m])は、例えば、第3層目の配線層により形成され、X方向に沿って並行して延在して配置される。ビット線対(BT,BB,BT[0],BB[0]−BT[n],BB[n])及びサーチ線対(ST,SB,ST[0]−ST[n])は、例えば、第1層目の配線層により形成され、Y方向に沿って並行して延在して配置される。バリッドセルのビット対線VBT、VBBおよびリセット信号配線RTは、例えば、第1層目の配線層により形成され、Y方向に沿って並行して延在して配置される。リセット信号配線RTは、ビット対線VBTとVBBとの間に配置される。バリッドセルのワード線VWL(VWL[0])は、例えば、第2層目の配線層により形成され、X方向に沿って延在して配置される。ただし、ワード線VWL(VWL[0])と複数のワード線WL(WLA[0]−WLA[M],WLB[0]−WLB[M])とは、Y方向において、並走することはない。
このように構成することにより、TCAMマクロセル100のX方向の単位ユニットUX0、UX1やY方向の単位ユニットUY0−UY3を、容易に増加ないし減少させることが可能になる。その結果、TCAMマクロセル100に含まれるワード線の数、すなわち、エントリの数の増減や1エントリのビット数の増減を、比較的簡単に変更できる。
[TCAMマクロセルの変形例2]
図23は、変形例2に係るTCAMマクロセルのブロック図である。図23のTCAMマクロセル100bと、図7のTCAMマクロセル100と異なる部分は、図23において、2ビットのカラムアドレスCA[1:0]によるTCAMセルの選択回路が設けられた点である。TCAMセルMC00とTCAMセルMC01のいずれか一方が、カラムアドレスCA[1:0]にしたがって選択される構成とされる。TCAMセルMC00が選択されと、バリッドセルVC0とマッチ線出力回路MO0とが選択される。TCAMセルMC01が選択されると、バリッドセルVC1とマッチ線出力回路MO1とが選択される。
[TCAMマクロセルの変形例3]
図24は、変形例3に係るTCAMマクロセルのブロック図である。図24のTCAMマクロセル100cと、図8のTCAMマクロセル100aと異なる部分は、図24において、2ビットのカラムアドレスCA[1:0]によるTCAMセルの選択回路が設けられた点である。他の構成は、図23の変形例2と同様である。
なお、変形例2及び変形例3のTCAMマクロセルの配線のレイアウト配置は、詳細に説明されないが、図22において説明された配線のレイアウト配置を適用できる。
[変形例2及び変形例3の詳細な回路の説明]
図23および図24の変形例2及び変形例3において、図7の実施例1の具体的な回路構成に対して変更される部分は、制御回路CTRLcとVIO回路VIOcである。以下、制御回路CTRLcとVIO回路VIOcに関して説明する。
図25は、制御回路CTRLcの回路例を示す図である。図25の制御回路CTRLcと図10の制御回路CTRLとの差異は、カラムアドレスCA[1:0]の生成のためのアドレス信号のビット数の変更と、プリデコーダPRIDECcの構成である。その他の構成は、図10と同じである。
すなわち、制御回路CTRLcは、アドレス信号A[0]を受けるフリップフロップFF1cが追加され、フリップフロップFF1の入力がアドレス信号A[2:1]および選択信号DSへ変更される。これに伴い、フリップフロップFF1cおよびフリップフロップFF1の出力がADL[0],ADL[2:1],DSLへ変更される。
図26は、図25のプリデコーダPRIDECcの回路例を示す図である。
プリデコーダPRIDECcは、2ビットの内部列アドレスCA[1:0]を生成するAND回路AN20、AN21と、ビットの上位内部行アドレス信号RA[3]、「2」、「1」、[0]を生成する4つのAND回路AN9−AN12と、2ビットの下位内部行アドレス信号RGA「1」、[0]を生成する2つのAND回路AN13、AN14と、を有する。
AND回路AN20、AN21のそれぞれは、内部アドレス信号ADL[0]とデコード起動信号TDECRWとを受け、デコード起動信号TDECRWの活性化により、内部アドレス信号ADL[0]のデコードを行う。そのため、AND回路AN21は、ADL[0]の反転信号を受ける。
AND回路AN9−AN12のそれぞれは、内部アドレス信号ADL[2]、[1]とデコード起動信号TDECRWとを受け、デコード起動信号TDECRWの活性化により、内部アドレス信号ADL[2]、[1]のデコードを行う。そのため、AND回路AN10は内部アドレス信号ADL[1]の反転信号を受け、AND回路AN11は内部アドレス信号ADL[2]の反転信号を受け、AND回路AN12は内部アドレス信号ADL[2]および[1]の反転信号を受ける。
AND回路AN13−AN14のそれぞれは、内部選択信号DSLとデコード起動信号TDECRWとを受ける様にされ、デコード起動信号TDECRWの活性化により、内部選択信号DSLのデコードを行う。AND回路AN14は内部選択信号DSLの反転信号を受けるようにされる。
図27は、IO回路IOcの回路例を示す図である。図27のIO回路IOcは、図13のIO回路IOに対して、カラム選択回路CSW[0]及びCSW[1]が設けられた点である。他の構成は、図13のIO回路IOと同じである。
カラム選択回路CSW[0]は、内部カラムアドレスCA[0]の選択レベルにより、ビット線対BT[0],BB[0]を選択する。一方、カラム選択回路CSW[1]は、内部カラムアドレスCA[1]の選択レベルにより、ビット線対BT[1],BB[1]を選択する。また、ビット線対BT[0],BB[0]に接続されるプリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2は、内部カラムアドレスCA[0]のレベルにより、その動作が制御される。同様に、ビット線対BT[1],BB[1]に接続されるプリチャージトランジスタPQ1、PQ3、および、イコライズトランジスタPQ2は、内部カラムアドレスCA[1]のレベルにより、その動作が制御される。
ライトドライバWDとされるNチャネルMOSトランジスタNQ1およびNQ2は、カラム選択回路CSW[0]またはCSW[1]により選択されたビット線対(BT[0],BB[0]またはBT[1],BB[1])に、選択的に接続される。
カラム選択回路CSW[0]及びCSW[1]のおのおのは、図示されるように、PMOSトランジスタおよびNMOSトランから構成されたCMOSスイッチを2つと、2つのインバータ回路と、を有している。一方のCMOSスイッチは、ビット線BB(BB[0]またはBB[1])とNチャネルMOSトランジスタNQ1のドレインとの間に、そのソースドレイン経路が接続される。他方のCMOSスイッチは、ビット線BT(BT[0]またはBT[1])とNチャネルMOSトランジスタNQ2のドレインとの間に、そのソースドレイン経路が接続される。
一方のインバータ回路の入力はCA[0]またはCA[1]接続され、一方のインバータ回路の出力はおのおののPMOSトランジスタのゲートに接続される。また、他方のインバータ回路の入力は、おのおののPMOSトランジスタのゲートに接続され、一方のインバータ回路の出力はおのおののNMOSトランジスタのゲートに接続される。
図28は、VIO回路VIOcの回路例を示す図である。図28のVIO回路VIOcは、図14のVIO回路VIOに対して、カラム選択回路CSWv[0]及びCSWv[1]が設けられた点である。他の構成は、図14のVIO回路VIOと同じである。
カラム選択回路CSWv[0]は、内部カラムアドレスCA[0]の選択レベルにより、ビット線対VBT[0],VBB[0]を選択する。一方、カラム選択回路CSWv[1]は、内部カラムアドレスCA[1]の選択レベルにより、ビット線対VBT[1],VBB[1]を選択する。また、ビット線対VBT[0],VBB[0]に接続されるプリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vは、内部カラムアドレスCA[0]のレベルにより、その動作が制御される。同様に、ビット線対VBT[1],VBB[1]に接続されるプリチャージトランジスタPQ1v、PQ3v、および、イコライズトランジスタPQ2vは、内部カラムアドレスCA[1]のレベルにより、その動作が制御される。
ライトドライバVWDとされるNチャネルMOSトランジスタNQ1vおよびNQ2vは、カラム選択回路CSWv[0]またはCSWv[1]により選択されたビット線対(VBT[0],VBB[0]またはVBT[1],VBB[1])に、選択的に接続される。
カラム選択回路CSWv[0]及びCSWv[1]のおのおのは、図示されるように、PMOSトランジスタおよびNMOSトランから構成されたCMOSスイッチを2つと、2つのインバータ回路と、を有している。一方のCMOSスイッチは、ビット線VBB(VBB[0]またはVBB[1])とNチャネルMOSトランジスタNQ1vのドレインとの間に、そのソースドレイン経路が接続される。他方のCMOSスイッチは、ビット線VBT(VBT[0]またはVBT[1])とNチャネルMOSトランジスタNQ2vのドレインとの間に、そのソースドレイン経路が接続される。
一方のインバータ回路の入力はCA[0]またはCA[1]接続され、一方のインバータ回路の出力はおのおののPMOSトランジスタのゲートに接続される。また、他方のインバータ回路の入力は、おのおののPMOSトランジスタのゲートに接続され、一方のインバータ回路の出力はおのおののNMOSトランジスタのゲートに接続される。
[応用例]
図29は、応用例に係る半導体装置のブロック図である。
半導体装置400は、一つの半導体チップの上に形成される。半導体装置400は、例えば、パケットルータの様なネットワーク向けのデータ処理装置の機能を有する。
半導体装置400は、入出力回路(I/O port)401と、プロセッサ(Processor)402と、パイプライン制御回路(Pipeline contol)403と、TCAM制御回路(TCAM contol)404、TCAMマクロセル100と、プライオリティエンコーダ(PREN)300と、メモリ装置であるSRAM405と、を含む。TCAMマクロセル100は、図3,図4、図7、図9、図23、または、図24に示される構成を適用可能である。
入出力回路(I/O port)401は、入出力バスBUS1を介して、半導体装置400の外部と接続される。入出力回路(I/O port)401は、また、内部バスBUS2を介して、プロセッサ402、TCAM制御回路404及びSRAM405と接続される。入出力回路(I/O port)401は、また、内部バスBUS3を介して、パイプライン制御回路403に接続される。パイプライン制御回路403は、内部バスBUS4を介してプロセッサ402、TCAM制御回路404に接続され、プロセッサ402、TCAM制御回路404の動作を制御する。プロセッサ402は、内部バスBUS5を介して、TCAM制御回路404に接続される。また、プライオリティエンコーダ(PREN)300は、内部バスBUS6を介してSRAM405に接続され、SRAM405は入出力バスBUS7を介して、半導体装置400の外部と接続される。
TCAM制御回路404は、TCAMマクロセル100の動作を制御し、エントリの格納ないし更新およびサーチ動作をTCAMマクロセル100に対して指示する。TCAM制御回路404は、サーチ動作に利用されるサーチキー(サーチデータ)を格納する。
プライオリティエンコーダ(PREN)300は、TCAMマクロセル100のサーチ結果を取り込み、決められた優先順に従って検索結果をSRAM405へ出力する。SRAM405は、プライオリティエンコーダ(PREN)300からの検索結果に従うアドレスによりアクセスされ、アクセス結果を、例えば、半導体装置400の外部へ入出力バスBUS7を介して出力する。
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は、上記実施形態および実施例、応用例に限定されるものではなく、種々変更可能であることはいうまでもない。