(57)【要約】  メモリセルを複数個用いて構成される半導体連想メモリ装置であって、メモリセルは、第１及び第２の入力端と出力端を有し、第１の入力端の入力データ及び記憶データの少なくとも一方が“１”で且つ第２の入力端の入力データが“１”の場合に“１”を出力し、それ以外の場合は“０”を出力する構成となっている。メモリセルの複数個を隣接するセル同士で第２の入力端と出力端を接続することにより、検索ワードストリングが構成されている。前記検索ワードストリングの複数個を同一列のメモリセルの第１の入力端を共有する形で接続することにより、検索ブロックが構成されている。
2011033667.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の入力端と出力端を有し、第１の入力端の入力データ及び記憶データの少なくとも一方が“１”で且つ第２の入力端の入力データが“１”の場合に“１”を出力し、それ以外の場合は“０”を出力するメモリセルと、
前記メモリセルの複数個を行方向に配列し、且つ隣接するメモリセル同士で前段のメモリセルの出力端と後段のメモリセルの第２の入力端を接続することにより構成された検索ワードストリングと、
前記検索ワードストリングの複数個を列方向に配列し、且つ同一列のメモリセルの第１の入力端を共通接続することにより構成された検索ブロックと、
を具備したことを特徴とする半導体連想メモリ装置。
【請求項２】
前記検索ワードストリングの各々は、検索対象ワードが記憶されるＤ領域と前記検索対象ワードの反転データが記憶されるＤｂ領域に分割され、前記検索ワードストリングの先頭のメモリセルの第２の入力端に“１”が入力され、前記Ｄｂ領域内の各メモリセルの第１の入力端に被検索ワードＩが入力され、前記Ｄ領域内の各メモリセルの第１の入力端に前記被検索ワードの反転データＩｂが入力されることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項３】
前記検索対象ワードは、論理値が“１”でも“０”でも許容されるドントケアビットを含み、該ビットに対しては前記Ｄ領域及び前記Ｄｂ領域共に“１”を記憶させることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項４】
前記被検索ワードは、論理値が“１”でも“０”でも許容されるドントケアビットを含み、該ビットに対しては前記被検索ワードＩ及び前記反転データＩｂ共に“１”にすることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項５】
前記検索ワードストリングの各々は、前記メモリセルの複数個を行方向に配列し、且つ隣接するメモリセル同士で前段のメモリセルの出力端と後段のメモリセルの第２の入力端を接続することにより構成された第１のストリングと、前記第１のストリングと同じ構成の第２のストリングと、前記第１及び第２のストリングのそれぞれの末尾のメモリセルの出力端を入力とする論理和ゲートと、を備えて構成され、
前記第１のストリングの各メモリセルに検索対象ワードが記憶され、前記第２のストリングの各メモリセルに前記検索対象ワードの反転データが記憶され、前記第１及び第２のストリングのそれぞれの先頭のメモリセルの第２の入力端に“１”が入力され、前記第２のストリングの各メモリセルの第１の入力端に被検索ワードＩが入力され、前記第１のストリングの各メモリセルの第１の入力端に前記被検索ワードＩの反転データＩｂが入力されることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項６】
請求項１に記載の検索ブロックを２つ用い、
第１の検索ブロックにおいては、前記検索ワードストリングはそれぞれ、第１の検索対象ワードが記憶されるＤ領域と該ワードの反転データが記憶されるＤｂ領域に分割され、前記検索ワードストリングの先頭のメモリセルの第２の入力端に“１”が入力され、前記Ｄｂ領域内の各メモリセルの第１の入力端に被検索ワードＩが入力され、前記Ｄ領域内の各メモリセルの第１の入力端に前記被検索ワードＩの反転データＩｂが入力され、
第２の検索ブロックにおいては、前記検索ワードストリングはそれぞれ、第２の検索対象ワードが記憶されるＤ領域と該ワードの反転データが記憶されるＤｂ領域に分割され、前記検索ワードストリングの先頭のメモリセルの第２の入力端に“１”が入力され、前記Ｄｂ領域内の各メモリセルの第１の入力端に前記第１の検索ブロックの出力が被検索ワードＪとして入力され、前記Ｄ領域内の各メモリセルの第１の入力端に前記被検索ワードＪの反転データＪｂが入力されることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項７】
前記検索ワードストリング毎に設けられ、該検索ワードストリングの末尾のメモリセルの出力を検出するセンスアンプと、前記各センスアンプの検出値を記憶するメモリブロックと、を更に具備したことを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項８】
前記メモリセルは、浮遊ゲートを備えたフラッシュメモリセルであり、該フラッシュメモリセルの制御ゲートが前記第１の入力端、ソースが前記第２の入力端、ドレインが前記出力端であることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項９】
前記メモリセルは、ソース同士及びドレイン同士が共通接続された第１及び第２のパストランジスタと、前記第２のパストランジスタのゲートに一端が接続された第１の可変抵抗素子と、前記第２のパストランジスタのゲートに一端が接続された第２の可変抵抗素子と、を備えて構成され、
前記第１のパストランジスタのゲートが前記第１の入力端、前記第１及び第２のパストランジスタの共通ソースが前記第２の入力端、前記第１及び第２のパストランジスタの共通ドレインが前記出力端であることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項１０】
前記メモリセルは、ソース同士及びドレイン同士が共通接続された第１及び第２のパストランジスタと、前記第２のパストランジスタのゲートに一端が接続された可変抵抗素子と、前記第２のパストランジスタのゲートに一端が接続されたダイオードと、を備えて構成され、
前記第１のパストランジスタのゲートが前記第１の入力端、前記第１及び第２のパストランジスタの共通ソースが前記第２の入力端、前記第１及び第２のパストランジスタの共通ドレインが前記出力端であることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項１１】
前記メモリセルは、ソース同士及びドレイン同士が共通接続された第１及び第２のパストランジスタと、前記第２のパストランジスタのゲートに一端が接続されたフラッシュメモリセルと、前記第２のパストランジスタのゲートに一端が接続されたダイオードと、を備えて構成され、
前記第１のパストランジスタのゲートが前記第１の入力端、前記第１及び第２のパストランジスタの共通ソースが前記第２の入力端、前記第１及び第２のパストランジスタの共通ドレインが前記出力端であることを特徴とする請求項１記載の半導体連想メモリ装置。
【請求項１２】
前記メモリセルは、ソース同士及びドレイン同士が共通接続された第１及び第２のパストランジスタと、前記第２のパストランジスタのゲートに一端が接続された第３のパストランジスタと、を備えて構成され、
前記第１のパストランジスタのゲートが前記第１の入力端、前記第１及び第２のパストランジスタの共通ソースが前記第２の入力端、前記第１及び第２のパストランジスタの共通ドレインが前記出力端であることを特徴とする請求項１記載の半導体連想メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定されたデータワードから該データワードに関連して連想されるデータを返す半導体連想メモリ装置に関する。
【背景技術】
【０００２】
半導体不揮発性メモリの一つとして、アドレスを指定して内容を読み書きする通常のメモリとは異なり、特定の内容を持つアドレスを検索する機能を持った、いわゆる連想メモリ（Content Addressable Memory：ＣＡＭ）が知られている。この連想メモリは、極めて高速であることとから、ＭＰＵのキャッシュ制御やインターネットのアドレスルックアップといった用途で広く使われている。【０００３】
しかし、この種の連想メモリの実装には、通常多くの素子が必要とされ、面積や消費電力を低減することが困難であり、用途が限られていた（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】K. Pagiamtzis, IEEE JOURNAL OF SOLID-STATE CIRCUITS 41, 712(2006)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、大容量かつ低消費電力なＣＡＭを実現できる半導体連想メモリを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様に係わる半導体連想メモリ装置は、第１及び第２の入力端と出力端を有し、第１の入力端の入力データ及び記憶データの少なくとも一方が“１”で且つ第２の入力端の入力データが“１”の場合に“１”を出力し、それ以外の場合は“０”を出力するメモリセルと、前記メモリセルの複数個を行方向に配列し、且つ隣接するメモリセル同士で前段のメモリセルの出力端と後段のメモリセルの第２の入力端を接続することにより構成された検索ワードストリングと、前記検索ワードストリングの複数個を列方向に配列し、且つ同一列のメモリセルの第１の入力端を共通接続することにより構成された検索ブロックと、を具備したことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、大容量かつ低消費電力なＣＡＭを実現することができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係わる連想メモリ装置の概略構成を示すブロック図。
【図２】第１の実施形態に用いた単位検索メモリセルの基本構成を示すブロック図。
【図３】第１の実施形態の連想メモリ装置で完全一致検索を行う場合のブロック図。
【図４】第１の実施形態の連想メモリ装置で部分一致検索を行う場合のブロック図。
【図５】第１の実施形態の連想メモリ装置で部分一致検索を行う場合のブロック図。
【図６】第２の実施形態に係わる連想メモリ装置の概略構成を示すブロック図。
【図７】第３の実施形態に係わる連想メモリ装置の概略構成を示すブロック図。
【図８】第４の実施形態に係わる連想メモリ装置の概略構成を示すブロック図。
【図９】単位検索メモリセルの具体的構成を示す回路図。
【図１０】単位検索メモリセルの具体的構成を示す回路図。
【図１１】単位検索メモリセルの具体的構成を示す回路図。
【図１２】単位検索メモリセルの具体的構成を示す回路図。
【図１３】図１２の単位検索メモリセルの素子構造を示す断面図。
【図１４】単位検索メモリセルの具体的構成を示す回路図。
【発明を実施するための形態】
【０００９】
以下、本発明の詳細を図示の実施形態によって説明する。
【００１０】
（第１の実施形態）
本実施形態の連想メモリ装置は、図１に示すように、単位検索メモリセル１００を行方向に複数個直列接続して検索ワードストリング２００を形成し、この検索ワードストリング２００を列方向に複数個配列して検索ブロック２０１を形成することにより構成されている。
【００１１】
単位検索メモリセル１００（ＭＣ）は、図２に示すように、“０”又は“１”に相当するデジタルデータを保持しており、第１のデータ入力端１０１から入力された信号と保持しているデジタルデータの何れか、若しくは両方が“１”の場合に、第２のデータ入力端１０２から入力されたものと同じ信号をデータ出力端１０３より出力する。即ち、第２の入力端１０２から入力された信号が“１”の場合には“１”を、“０”の場合には“０”を出力する。また、第１の入力端１０１から入力された信号と保持しているデジタルデータの両方が“０”の場合には、第２の入力端１０２からの入力信号によらず“０”或いは不定を出力するようになっている。なお、例えば“１”をＨレベルの信号、“０”をＬレベルの信号とすると、一般に不定はＨレベルよりもＬレベルの方に近くなるため、不定は“０”と見なすことができる。
【００１２】
検索ワードストリング２００は、図１に示すように、複数のメモリセル１００（１００ａ〜１００ｆ）を行方向に直列接続することにより構成され、メモリセル１００（ＭＣ）は隣接するセル同士で前段のメモリセルのデータ出力端１０３と後段のメモリセルのデータ入力端１０２が接続されている。検索ブロック２０１は、検索ワードストリング２００を列方向に離間して複数個配列することにより構成され、同一列の第１の入力端１０１（１０１ａ〜１０１ｆ）を共有する形で接続されている。
【００１３】
それぞれの検索ワードストリング２００の最初のデータ入力端をワード入力端子２０２とし、最後のデータ出力端をワード出力端子２０３とする。ワード入力端子２０２から入力された信号がワード出力端子２０３から出力されるかどうかをセンスアンプなどによって調べることで、その検索ワードストリングが現在の検索条件に一致するかどうかを判断できる。即ち、ワード入力端子２０２から入力された信号がワード出力端子２０３から出力されている検索ワードストリングは一致状態であり、そうでない検索ワードストリングは不一致状態となる。
【００１４】
次に、本実施形態の連想メモリ装置を用いた検索の例について説明する。
【００１５】
（完全一致検索）
本実施形態において、検索ブロック２０１内のデータの完全一致検索は、次のように行う。
【００１６】
まず、図３に示すように、検索ワードストリング２００（２００ａ〜２００ｃ）をそれぞれ、Ｄ領域とＤbar（以下Ｄｂと記す）領域の２つの領域に分割する。そして、検索ワードストリング２００毎に、分割したＤ領域とＤｂ領域にそれぞれに、保持させたいデータ（検索対象ワード）の各ビットとその反転ビットを予め保持させておく。図３には、保持したいデータが３ビットで構成されている場合を示す。この場合、Ｄ領域とＤｂ領域合わせて少なくとも６ビット分からなる検索ワードストリング２００を用いる必要がある。図中には６ビットからなる３つの検索ワードストリング２００がそれぞれ“１０１”，“００１”，“１１１”を保持している場合を例示した。
【００１７】
本検索メモリシステムは、検索ブロック２０１内の何れかの検索ワードストリング２００が所望の３ビットのデータを保持しているか否かを調べる、即ち検索させることができる。この場合、所望の検索させたいデータＩ（例では“００１”であり検索ワードストリング２００ｂの内容と一致する）と、その反転データＩbar（以下Ｉｂと記す）を、図３に示すように第１の入力端１０１（１０１ａ〜１０１ｆ）に入力する。即ち、入力端１０１ａ〜１０１ｃにデータＩｂを、入力端１０１ｄ〜１０１ｆにデータＩを入力する。この入力されるデータのことを「被検索ワード」と呼ぶ。このとき、それぞれの検索ワードストリングのワード入力端子２０２に“１”を入力すると、Ｄ領域の保持データとデータＩとが一致する検索ワードストリング、即ち検索ワードストリング２００ｂのワード出力端子２０３ｂのみに“１”が出力され、検索ブロック２０１内より、被検索ワードが含まれるワードストリングを特定することができる。
【００１８】
（部分一致検索）
本実施形態においては、前記のような完全一致検索のほかに、部分一致検索を行うこともできる。
【００１９】
部分一致検索とは、例えば“１０ｘ”という検索をする場合、“ｘ”については“１”でも“０”でも一致するとみなすもので、“ｘ”のことを「ドントケアビット：don’t care bit」と呼ぶ。このような部分一致検索においては、検索ワードストリング２００に部分一致を許すようにデータを保持させておく場合と、部分一致を許すような被検索ワードを入力して検索を行う場合の２通りが考えられる。
【００２０】
部分一致を許すデータを検索ワードストリング２００に保持する場合は、前記のようなデータ保持に加えて、ドントケアビットに対してはＤ領域、Ｄｂ領域共に“１”にする。即ち、“１０ｘ”の場合、Ｄ領域に“１０１”、Ｄｂ領域に“０１１”を保持させておけばよい。このようにして検索を行った例を、図４に示す。図４は図３と殆ど同じ状況を示しているが、検索ワードストリング２００ａ中のデータが“ｘ０１”となっている点が異なる（メモリセル１００ａと１００ｄのデータが反転になっておらず両方“１”）。
【００２１】
この場合、被検索ワードに“００１”を入力すると、完全一致する検索ワードストリング２００ｂのワード出力は前述の通り“１”であるが、検索ワードストリング２００ａのワード出力も“１”となる。即ち、検索ワードストリング２００ａにとってはメモリセル１００ａ及び１００ｄに対する入力がドントケアビットとなっており、検索ワードストリングが“００１”であっても“１０１”であっても一致とみなされる。
【００２２】
部分一致を許すような被検索ワードを入力して検索を行う場合は、ドントケアビットに対してはＩとＩｂ共に１を入力して検索する。即ち、“１０ｘ”の場合、Ｉとして“１０１”、Ｉｂとして“０１１”を入力すればよい。このようにして検索を行った例を、図５に示す。図５は図３と殆ど同じ状況を示しているが、被検索ワードが“ｘ０１”となっている（メモリセル１００ａと１００ｄの入力データが反転になっておらず両方“１”）。
【００２３】
この場合、検索ワードストリング中の入力端１０１ａ及び１０１ｄに接続されたメモリセル中のデータが“１”であっても“０”であっても、他のメモリセルのみで一致・不一致が判定される。即ち、入力端１０１ａ及び１０１ｄに対する入力がドントケアビットとなっており、検索ワードストリング２００が“００１”であっても“１０１”であっても一致とみなされる。
【００２４】
（本実施形態の応用例）
このようなＣＡＭの応用例としてはコンピュータのウィルススキャンハードウェアが考えられる。即ち、各検索ワードストリング中に複数のウィルスの定義情報を予め保持しておき、特定のファイル中に定義情報と一致する情報が存在するかどうかを調べることにより、そのファイルにウィルスが含まれるかどうかを判断させることができる。この検索はソフトウェア等を用いた同様の検索処理と比べて格段に高速であるため、ウィルス検索の速度を大幅に向上させることができる。また、本実施形態に係わるＣＡＭは他の方式と比べて、同じ面積でより大容量の情報を格納できるため、ウィルス定義ファイルのサイズが大きくとも問題なく格納することができる。
【００２５】
（第２の実施形態）
先に説明した第１の実施形態では、Ｄ領域とＤｂ領域の２つの領域が直列に接続されていたが、本実施形態では、図６に示すように、これらを別々の出力端子に接続し、それぞれの出力端子の出力のアンド演算をワード出力としている。なお、図１と同一部分には同一符号を付して、その詳しい説明は省略する。
【００２６】
本実施形態においては、検索ワードストリングは、メモリセル１００の複数個を隣接するセル同士で第２の入力端子と出力端を接続することで直列に接続された第１のストリング（Ｄ領域）２１０と、第１のストリング２１０と同じ構成の第２のストリング（Ｄｂ領域）２２０と、第１及び第２のストリング２１０，２２０のそれぞれの末尾のメモリセルの出力端を入力とする論理和ゲート２３０と、を備えて構成されている。このような検索ワードストリングを列方向に離間して複数個配列することにより検索ブロックが構成されている。
【００２７】
第１のストリング２１０（２１０ａ〜２１０ｃ）の各メモリセルに検索対象ワードが記憶され、第２のストリング２２０（２２０ａ〜２２０ｃ）の各メモリセルに検索対象ワードの反転データが記憶される。第１のストリング２１０のワード入力端２０２（２０２ａ〜２０２ｃ）及び第２のストリング２２０のワード入力端２０４（２０４ａ〜２０４ｃ）に“１”が入力され、第２のストリング２２０の各メモリセルの第１の入力端１０１ａ〜１０１ｃに検索すべき被検索ワードＩが入力され、第１のストリング２１０の各メモリセルの第１の入力端１０１ｅ〜１０１ｆに被検索ワードＩの反転データＩｂが入力される。
【００２８】
このような構成であっても第１の実施形態と同じ出力結果が得られる。従って、第１の実施形態と同様の検索を行うことが可能であるのは勿論のこと、それぞれの検索メモリセルの出力信号が行方向に伝搬する伝搬長を短くすることができ、より高速な検索が可能となる。即ち、行方向の伝搬長は、ワード入力端子２０２から論理和ゲート２３０までとなり、第１実施形態の半分で済むため、より高速な検索が可能となる。
【００２９】
（第３の実施形態）
図７は、本発明の第３の実施形態に係わる連想メモリ装置の概略構成を示すブロック図である。なお、図１と同一部分には同一符号を付して、その詳しい説明は省略する。また、検索ブロックの表現が簡易化されているが、機能は図１と同様である。
【００３０】
第１の検索ブロック５０１は、図１の検索ブロック２０１に加え、検索ストリング２００の各出力をセンスするセンスアンプ２５０（２５０ａ〜２５０ｃ）を設けたものである。第２の検索ブロック５０２は、基本的には第１の検索ブロック５０１と同様の構成である。第１の検索ブロック５０１の出力が第２の検索ブロック５０２のＤ領域及びＤｂ領域に入力する被検索ワードＩ，Ｉｂとして与えられるようになっている。なお、検索ブロック５０２のＩｂに付けられている丸印はデータを反転して入力することを意味している。
【００３１】
本実施形態では、第１の検索ブロック５０１の出力が第２の検索ブロック５０２に入力されている。このようにすることで、検索ブロック５０１に含まれている複数の検索対象ワードに対する一致・不一致を検索することができる。
【００３２】
より具体的には、例えば検索ブロック５０１中の検索ワードストリング２００ａと２００ｃの２つのみが一致信号を出していることを検出したい場合、全てのワード出力を被検索ワードとして検索ブロック５０２に入力し、ブロック５０２中の特定の行の検索ワードストリングに、検索ブロック５０１の１行目と３行目の出力のみが１であるか否かを判定させるようなデータを保持させておく（図５の場合は“１０１”）。このような検索法の方が、検索ブロック５０１の全てのワード出力を調べて、検索ワードストリング２００ａと検索ワードストリング２００ｃのみが“１”であることを判定するよりも簡単な場合が多い。これにより実施形態によれば、更なる検索速度の向上をはかることができる。
【００３３】
（第４実施形態）
図８は、本発明の第４の実施形態に係わる連想メモリ装置を示すブロック図である。なお、図１と同一部分には同一符号を付して、その詳しい説明は省略する。
【００３４】
本実施形態では、検索ブロック６０１は、図７の検索ブロック５０１と同様に、図１の検索ブロック２０１にセンスアンプ２５０（２５０ａ〜２５０Ｃ）を付加したものである。そして、センスアンプ２５０のセンス結果である検索ブロック６０１の出力は、メモリブロック６０２に入力されている。このようにすることで、検索ブロック６０１を構成している検索ワードストリングの長さによらず、任意長のデータに対する一致・不一致検索を行うことができる。
【００３５】
図８には、３ビットからなる検索ワードストリング２００（２００ａ〜２００ｃ）の３本によって構成された検索ブロックと、そのワード出力を保持できる、例えばＳＲＡＭやＤＲＡＭなどで構成されたメモリブロック６０２が例示されている。なお、メモリブロック６０２は、図８の例では検索ブロック６０１のワード数分のビット、即ち３ビット以上で構成されている。
【００３６】
ここで、検索対象ワードが、検索ブロック６０１の１ワードである３ビットを超えた５ビットの情報であり、これが“１１０１０”だとした場合、この情報を、例えば検索ブロック６０１の検索ワードストリング２００ｂと検索ワードストリング２００ｃとにそれぞれ分割して保持する。なおここで、第３ワードの最後の１ビットに関しては、前記のドントケアビットであり、検索ワードストリング２００ａには、別の検索対象ワードのデータ“１０１”が保持されている。
【００３７】
ここで、被検索ワードとして検索ブロック６０１に“１１０”が入力されると、検索ワードストリング２００ｂのワード出力が“１”となる。ここで、次の検索で検索ワードストリング２００ｃの出力が“１”となれば、“１１０１０”が入力されたと判断できる。このような検索方法は、任意の回数繰り返すことができるため、１ワードのビット数にはよらずに任意のビット幅のデータの検索をすることができる。
【００３８】
また、本実施形態を利用すると、任意のビット幅だけ離れた場所に、特定のビット列が存在するか否かを検索するような検索メモリも実現可能である。
【００３９】
即ち、前記の例で説明すれば、検索ブロック６０１の検索ワードストリング２００ｂの出力と検索ワードストリング２００ｃの出力がこの順番で「必ずしも連続せずに」“１”になることを確かめれば、“１１０＊１０ｘ”（ここで＊は任意のビット幅のデータ）に一致するデータかどうかの判断を行うことができる。
【００４０】
（第５実施形態）
次に、第１〜第４の実施形態に用いられる単位検索メモリセルの実現方法について説明する。
【００４１】
単位検索メモリセル１００としては、第１及び第２の２つの入力端１０１，１０２と１つの出力端１０３を持ち、“０”又は“１”に相当するデジタルデータを保持でき、入力された信号と、保持しているデジタルデータのどちらか若しくは両方が１で、且つもう一方の入力信号も“１”の場合に“１”を、それ以外の場合には“０”又は不定を出力するような任意の素子又は回路を用いることができる。単位検索メモリセル１００に用いることができる素子の例を以下に示す。
【００４２】
図９は、浮遊ゲートを備えたフラッシュメモリセルであり、制御ゲートが第１の入力端１０１、ソースが第２の入力端１０２、ドレインが出力端１０３に対応している。フラッシュメモリセルは、浮遊ゲートに蓄えた電荷によってトランジスタのＯＮ／ＯＦＦを制御できるため、ノーマリーＯＮとなるような電荷を浮遊ゲートに書き込んだ状態を“１”、ノーマリーＯＦＦとなるような電荷を浮遊ゲートに書き込んだ状態を“０”とする。さらに、第１の入力信号は、制御ゲートに対して、浮遊ゲートがノーマリーＯＦＦであるような状態でもチャネルをＯＮさせるのに十分な電位を与えた場合を“１”、浮遊ゲートがノーマリーＯＦＦである場合にＯＦＦの状態を保持する電位を与えた場合を“０”とすれば、チャネルのＯＮ／ＯＦＦがそれぞれ、第２の入力信号と出力信号の“１／０”を表すことになり、単位検索メモリセルとして用いることができる。
【００４３】
このような単位検索メモリセルは、素子としてのフットプリントが非常に小さいため、高密度で安価な検索メモリを実現するのに適している。
【００４４】
図１０は、２つの２つのパストランジスタ７０１，７０２と可変抵抗素子７０３，７０４からなる単位検索メモリセルである。第１及び第２の可変抵抗素子７０３，７０４が直接に接続され、第１及び第２のパストランジスタ７０１，７０２がソース及びドレインを共通にして並列接続されている。さらに、第１及び第２の可変抵抗素子７０３，７０４の接続点に、第２のパストランジスタ７０２のゲートが接続されている。そして、第１のパストランジスタ７０１のゲートが第１の入力端１０１、共通ソースが第２の入力端１０２、共通ドレインが出力端１０３に対応するものとなっている。
【００４５】
通常動作時は可変抵抗素子７０４にパストランジスタ７０２をＯＮするのに十分な電圧（以下Ｖdd）を、可変抵抗素子７０３には０Ｖを接続することで、可変抵抗値の大小によって、第２のパストランジスタ７０２のＯＮ／ＯＦＦを制御できる。なお、可変抵抗素子７０３，７０４の接続点と反対側の端子は、可変抵抗素子のプログラム用の端子としても用いる。
【００４６】
さらに、図１１のように、可変抵抗素子の一つ７０４をダイオード７０５で置き換えることもできる。可変抵抗素子としては、ＰＲＡＭ，ＲＲＡＭなどの２端子メモリが使用可能である。このような単位検索メモリセルでは、メモリ部分を配線層などに作ることにより、フットプリントを小さくできるため、高密度で安価な検索メモリを実現できる。さらに、メモリ部とトランジスタ部を別々に設計できるため、トランジスタの抵抗を最低限にでき、後述するような、検索メモリアレーを作成した際に、信号検出を容易にできるなどの利点がある。
【００４７】
また、図１２のようにフラッシュメモリセル７０６を可変抵抗素子７０３の代わりに使ったような検索メモリセルを使うこともできる。ここで、８０１はフラッシュメモリセル７０６の制御ゲートとなる。また、８０３に接続されたダイオード７０５は、実際にダイオード素子を作るのではなく、図１３に示したような断面構造とすることにより、付加構造を作り込むことなく実装可能である。
【００４８】
図１３中の９００は半導体基板、９０１は素子分離絶縁膜（ＳＴＩ）である。９１１はＨｆＳｉＯＮ等のゲート絶縁膜、９１２はゲート電極、９１３はｎ型ソース／ドレイン領域、９１４は側壁絶縁膜であり、これらから第２のパストランジスタ７０２が構成されている。９２１はＯＮＯ等のゲート絶縁膜、９２２はゲート電極、９２３はソース／ドレイン領域、９２４はゲート側壁絶縁膜であり、これらからフラッシュメモリセル７０６が構成されている。また、図１３中の９３３はダイオード８０２を形成するためのｐ型拡散層を示している。
【００４９】
このような回路を単位検索メモリセルとして用いるには次のようにする。即ち、予めフラッシュメモリセル７０６のコンダクタンスを十分高く、或いは低くなるように閾値設定をしておき、制御ゲート８０１にＶｄｄを、ソース端８０２に０Ｖを接続すると、コンダクタンスが十分低い場合には第２のパストランジスタ７０６がＯＦＦとなり、コンダクタンスが十分高ければ第２のパストランジスタ７０６がＯＮとなる。このような単位検索メモリセルを用いれば、フットプリントの増加は最小限に抑えつつ、トランジスタの抵抗も最小限に抑えることが可能となる。
【００５０】
図１４は、トランジスタ３つからなる単位検索メモリセルである。第１及び第２のパストランジスタ７０１，７０２が並列接続され、第２のパストランジスタ７０２のゲートに第３のパストランジスタ７０７のドレインが接続されている。
【００５１】
このような構成においては、第３のパストランジスタ７０７をＯＮにし、パストランジスタ７０７のソース（書き込み電極）に“０”又は“１”を入力することで、第２のパストランジスタ７０２のＯＮ／ＯＦＦを制御することができる。但し、書き込まれた情報は、第２のパストランジスタ７０２のリーク電流によって経時的に失われるため、定期的なリフレッシュが必要である。
【００５２】
（変形例）
なお、本発明は上述した各実施形態に限定されるものではない。単位検索メモリセルは、前記図９〜１２，１４に示した構成に限るものではなく、第１の入力端の入力データ及び記憶状態の少なくとも一方が“１”で且つ第２の入力端の入力データが“１”の場合に“１”を出力し、それ以外の場合は“０”を出力するものであればよい。また、検索ワードストリングのメモリセル数は、仕様に応じて適宜変更可能である。同様に、検索ブロックの検索ワードストリング数も、仕様に応じて適宜変更可能である。
【００５３】
その他、本発明の要旨を逸脱しない範囲で、種々変形して実施することができる。
【符号の説明】
【００５４】
１００…単位検索メモリセル
１０１…第１の入力端
１０２…第２の入力端
１０３…出力端
２００…検索ワードストリング
２０１，５０１，５０２，６０１…検索ブロック
２０２，２０４…ワード入力端子
２０３…ワード出力端子
２１０…第１のストリング
２２０…第２のストリング
２３０…論理ゲート
２５０…センスアンプ
６０２…メモリブロック
７０１，７０２，７０７…パストランジスタ
７０３，７０４…可変抵抗素子
７０５…ダイオード
７０６…フラッシュメモリセル
【図１】
2011033667.tif 000003
【図２】
2011033667.tif 000004
【図３】
2011033667.tif 000005
【図４】
2011033667.tif 000006
【図５】
2011033667.tif 000007
【図６】
2011033667.tif 000008
【図７】
2011033667.tif 000009
【図８】
2011033667.tif 000010
【図９】
2011033667.tif 000011
【図１０】
2011033667.tif 000012
【図１１】
2011033667.tif 000013
【図１２】
2011033667.tif 000014
【図１３】
2011033667.tif 000015
【図１４】
2011033667.tif 000016
【国際調査報告】
2011033667.tif 000017
2011033667.tif 000018
2011033667.tif 000019
2011033667.tif 000020