(57)【特許請求の範囲】
【請求項１】
複数のデータ群それぞれに属する複数の格納データを各格納データ毎に記憶する複数のワードメモリを備え、複数の参照データが順次入力され、順次入力された各参照データそれぞれを用いた検索を複数回繰り返すことにより、所望のデータ群に属する複数の格納データが記憶された複数のワードメモリからなるワードメモリ群を検出する連想メモリにおいて、
前記複数のワードメモリそれぞれに対応して備えられ、対応するワードメモリが、検索の対象とされる有効データが記憶された第１の記憶状態にあるワードメモリであるか、あるいは前記有効データが記憶されておらずしたがって上書きが許容される第２の記憶状態にあるワードメモリであるかを示す第１のフラグが記憶される第１のフラグレジスタと、
前記複数のワードメモリそれぞれに対応して備えられ、対応する第１のフラグレジスタに前記第１の記憶状態を表わす第１のフラグが記憶されており、かつ対応するワードメモリが今回の検索により一致が検出されたワードメモリである場合に、該対応するワードメモリで一致が検出されたことを表わす一致フラグが記憶される第２のフラグレジスタと、
前記複数のワードメモリそれぞれに対応して備えられ、対応する第１のフラグレジスタに前記第２の記憶状態を表わす第１のフラグが記憶され、かつ対応する第２のフラグレジスタに前記一致フラグが記憶された状態で、検索動作が行われた場合に、該対応する第２のフラグレジスタに記憶されていた前記一致フラグを消去する一致消去回路とを備えたことを特徴とする連想メモリ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一致検索の行われるデータ幅を複数のワードに拡張する機能、すなわち、連続する複数回の検索でそれぞれ一致が検出された場合に全体としての一致が検出される機能を備えた連想メモリに関する。
【０００２】
【従来の技術】
従来より、配列された複数の各ワードメモリそれぞれに各ディジタルデータを記憶しておき、参照データを入力し、入力された参照データの全部もしくは所定の一部のビットパターンと一致するビットパターンを有するディジタルデータが記憶されたワードメモリを検索する連想メモリ（Ａｓｓｏｃｉａｔｉｖｅ  Ｍｅｍｏｒｙ，内容アドレス式メモリ；Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）が提案されている。
【０００３】
図８は、従来の連想メモリの一例を表わした回路ブロック図である。
この連想メモリ１０には、例えば３２ビットを１ワードとする、互いに図の横方向に並ぶ３２ビットのメモリセルからなる多数のワードメモリ１１＿１，１１＿２，…，１１＿ｎが備えられている。またこの連想メモリ１０は、１ワードの参照データが入力されラッチされる参照データレジスタ１２を備え、参照データレジスタ１２にラッチされた参照データの全部もしくは所定の一部のビットパターンと、各ワードメモリ１１＿１，１１＿２，…，１１＿ｎに記憶された格納データのうち上記ビットパターンと対応する部分のビットパターンとの一致不一致が比較され、各ワードメモリ１１＿１，１１＿２，…，１１＿ｎのそれぞれに対応して備えられた一致線１４＿１，１４＿２，…，１４＿ｎのうちビットパターンが一致したワードメモリ１１＿１，１１＿２，…，１１＿ｎに対応する一致線１４＿１，１４＿２，…，１４＿ｎに論理‘１’（ここでは５Ｖとする）の一致信号が出力される。それ以外の一致線１４＿１，１４＿２，…，１４＿ｎは論理‘０’（ここでは０Ｖとする）にとどまる。
【０００４】
これらの一致線１４＿１，１４＿２，…，１４＿ｎに出力された信号は、各フラグレジスタ１５＿１，１５＿２，…，１５＿ｎに格納される。ここでは、一例として、図示のように、各フラグレジスタ１５＿１，１５＿２，…，１５＿ｎにそれぞれ‘０’，‘１’，‘１’，‘０’，…，‘０’，‘０’が格納されたものとする。これらのフラグレジスタ１５＿１，１５＿２，…，１５＿ｎに格納された信号はプライオリティエンコーダ１６に入力され、このプライオリティエンコーダ１６からは論理‘１’の信号が格納されたフラグレジスタ（ここではフラグレジスタ１５＿２とフラグレジスタ１５＿３の２つのみとする）のうちの優先度の最も高いフラグレジスタに対応するアドレス信号ＡＤが出力される。ここでは、添字が若いほど優先順位が高いものとし、従ってここではフラグレジスタ１５＿２に対応するメモリアドレスが出力される。このプライオリティエンコーダ１６から出力されたアドレス信号ＡＤは、必要に応じてアドレスデコーダ１７に入力される。アドレスデコーダ１７ではこの入力されたアドレス信号ＡＤをデコードして、各ワードメモリ１１＿１，１１＿２，…，１１＿ｎそれぞれに対応して備えられたワード線１８＿１，１８＿２，…，１８＿ｎのうちの入力されたアドレス信号ＡＤに対応するいずれか１本のワード線（ここではワード線１８＿２）にアクセス信号（ここでは論理‘１’の信号）を出力する。これによりアクセス信号の出力されたワード線１８＿２に対応するワードメモリ１１＿２に記憶されている格納データが出力レジスタ１９に読み出される。
【０００５】
次に、フラグレジスタ１５＿２に格納された信号を‘０’に変更することにより、今度はフラグレジスタ１５＿３に対応するワードメモリ１１＿３のアドレスを得ることができる。
上記のように、連想メモリ１０は、参照データの全部もしくは所定の一部のデータを用いて多数のワードメモリ１１＿１，１１＿２，…，１１＿ｎに記憶された格納データを検索し、一致する格納データを有するワードメモリのアドレスを得、必要に応じてそのワードメモリに記憶されたデータ全体を読み出すことができるように構成されたメモリである。
【０００６】
上記のような基本構成を有する連想メモリにおいて、一致検索の対象となるデータ幅を２ワードもしくはそれ以上の複数ワードに拡張する技術が提案されている。
図９は、データ拡張機能を備えた連想メモリの一例を示すブロック図である。図８に示した連想メモリの構成要素と対応する構成要素には、図８に付した符号と同一の符号を付して示し、その要素についての重複説明は省略する。
【０００７】
各ワードメモリ１１＿１，１１＿２，…から延びる各一致線１４＿１，１４＿２，…，は、各アンドゲート２０＿１，２０＿２，…の一方の入力端子に接続されている。また各アンドゲート２０＿２，２０＿３，…の他方の入力端子には各オアゲート２１＿２，２１＿３，…の出力端子が接続されており、各オアゲート２１＿２，２１＿３，…の一方の入力端子は、初回検索制御線２２に接続されている。ただし図示の一番上のアンドゲート２０＿１に対応するオアゲートは省略されており、そのアンドゲート２０＿１の入力端子に初回検索御線２２が直接接続されている。
【０００８】
各アンドゲート２０＿１，２０＿２，…の出力端子は各第１のフラグレジスタ２３＿１，２３＿２，…のデータ入力端子に接続され、各第１のフラグレジスタ２３＿１，２３＿２，…の出力端子は各第２のフラグレジスタ２４＿１，２４＿２，…の出力端子に接続されている。各第２のフラグレジスタ２４＿１，２４＿２，…の出力端子は、図８に示すプライオリティエンコーダ１６（図９では図示省略）に接続されるとともに、図９の下方に隣接するワードメモリに対応するオアゲート２１＿２，２１＿３，…の入力端子に接続されている。
【０００９】
互いに対応する第１および第２のフラグレジスタ２３＿１，２４＿１，；２３＿２，２４＿２，…の各ペアが図８に示す各フラグレジスタ１５＿１，１５＿２，…に対応する。
第１のフラグレジスタ２３＿１，２３＿２，…と第２のフラグレジスタ２４＿１，２４＿２，…には、ともに、一致結果ラッチ制御線２５に出力される一致結果ラッチ信号Ｓ１が入力され、その一致結果ラッチ信号Ｓ１により各データ入力端子から入力された入力データがラッチされるが、第１のフラグレジスタ２３＿１，２３＿２，…には、一致結果ラッチ信号５１の立ち上がりａの時点における入力データがラッチされ、第２のフラグレジスタ２４＿１，２４＿２，…には、一致結果ラッチ信号Ｓ１の立ち下がりｂの時点の入力データがラッチされる。
【００１０】
以上のように構成された連想メモリにおいては、以下のようにして一致検索が行われる。尚、ここでは図示のように、各ワードメモリ１１＿１，１１＿２，１１＿３，１１＿４，１１＿５，１１＿６…には、各検索データＡ，Ｂ，Ｃ，Ｄ，Ｃ，Ｆ，…が格納されているものとする。
ここで、各検索データを単独で検索する際は、参照データＲＥＦ＿ＤＡＴＡを入力して検索を行う際に、初回検索制御線２２に初回検索タイミング信号Ｓ２を出力する。ここでは、参照データＲＥＦ＿ＤＡＴＡとしてデータ‘Ｂ’を入力したものとすると、データ‘Ｂ’が格納されたワードメモリ１１＿２に対応する一致線１４＿２に論理‘１’の一致信号が出力されてアンドゲート２０＿２に入力され、また、これとともに初回検索タイミング信号Ｓ２がオアゲート２１＿２を経由してアンドゲート２０＿２に入力されるため、アンドゲート２０＿２から論理‘１’の信号が出力される。またこのとき、他の一致線１４＿１；１４＿３，１４＿４，…には論理‘０’の信号が出力されるため、それに対応する他のアンドゲート２０＿１；２０＿３，２０＿４，…からは論理‘０’の信号が出力される。
【００１１】
アンドゲート２０＿２から出力された論理‘１’の信号は、一致結果ラッチ制御線２５に出力された一致結果ラッチ信号Ｓ１の立ち上がりａのタイミングで第１のフラグレジスタ２３＿２にラッチされ、それに引き続く一致結果ラッチ信号Ｓ１の立ち下がりｂのタイミングで第２のフラグレジスタ２４＿２にラッチされる。
【００１２】
また第１のフラグレジスタ２３＿２および第２のフラグレジスタ２４＿２に論理‘１’の信号がラッチされる各タイミングで、他の第１フラグレジスタ２３＿１；２３＿３，２３＿４，…、および他の第２のフラグレジスタ２４＿１；２４＿３，；２４＿４，…には論理‘０’の信号がラッチされる。
このようにして各第２のフラグレジスタ２４＿１，２４＿２，２４＿３，…にラッチされた論理‘０’，‘１’，‘０’，…の信号が図８に示すプライオリティエンコーダ１６に入力され、ワードメモリ１１＿２のアドレス信号ＡＤが得られる。
【００１３】
次に、データ幅が拡張された検索を行う場合について説明する。ここでは、２ワードに拡張された、データ‘Ｂ’とデータ‘Ｃ’からなる２ワードデータを検索する場合について説明する。
この場合、先ず上記と同様にして、データ‘Ｂ’の検索を行う。これにより、ワードメモリ１１＿２に対応する第１および第２のフラグレジスタ２３＿２，２４＿２に論理‘１’の信号がラッチされる。次に参照データＲＥＦ＿ＤＡＴＡとしてデータ‘Ｃ’を入力して検索を行うが、このときは初回検索制御線２２には初回検索タイミング信号Ｓ２は出力せずに、初回検索制御線２２は論理‘０’の状態に保っておく。参照データＲＥＦ＿ＤＡＴＡとしてデータ‘Ｃ’を入力して検索を行うと、図示の２つのワードメモリ１１＿３，１１＿５にそれぞれ対応する一致線１４＿３，１４＿５に論理‘１’の一致信号が出力されるが、オアゲート２１＿３には、第２のフラグレジスタ２４＿２にラッチされている論理‘１’の信号が入力されているため一致線１４＿３の一致信号はアンドゲート２０＿３を通過し、第１および第２のフラグレジスタ２３＿３，２４＿３に、一致を表わす論理‘１’の信号がラッチされる。一方オアゲート２１＿５には、第２のフラグレジスタ２４＿４にラッチされている論理‘０’の信号が入力されているため一致線１４＿５の一致信号はアンドゲート２０＿５で遮断され、第１および第２のフラグレジタ２３＿５，２４＿５には不一致を表わす論理‘０’の信号がラッチされることになる。このようにして、データ‘Ｂ’とデータ‘Ｃ’のペアからなる２ワードデータの一致検出が行われる。３ワード以上のデータの一致検出も同様にして行われる。
【００１４】
【発明が解決しようとする課題】
上記のようにして複数ワードに跨がる一致検索が行われて一致が検出されると、それに対応する一致信号が出力されて図８に示すプライオリティエンコーダ１６に入力され、プライオリティエンコーダ１６から、一致の検出されたワードメモリのアドレスが出力される。
【００１５】
一方、上述した図８，図９には示されていないが、連想メモリには、通常、連想メモリの各ワードメモリに対応して、そのワードメモリに有効なデータが記憶されているか、それとも、そのワードメモリには有効なデータは記憶されておらず、上書きが許容される空き状態にあるかを示すフラグを格納するフラグレジスタが備えられている。これは、有効なデータが記憶されていないワードメモリ中にたまたま格納されていた無効のデータが参照データと一致してしまい、一致信号が出力されるのを避けるためである。
【００１６】
ここで、上記のような複数ワードに跨がる一致検索の結果、かなり多数のワードメモリで一致が検出された場合を考える。このときには、図８に示すプライオリティエンコーダ１６からそれら多数の一致したワードメモリのアドレスが順次読み出されるが、多数一致していると、このアドレスの読み出しにもかなりの時間がかかることになる。
【００１７】
一方、連想メモリでは、不要になったデータは定期的もしくは不定期的に消去される。ここで、データを消去するとは、そのデータが格納されたワードメモリのデータを実際に消去するのではなく、通常、上述のフラグレジスタにそのワードメモリが空き状態にあることを示すフラグを格納することによって行われる。検索時に、空き状態にあるワードメモリに格納されたデータと参照データとがたまたま一致しても、一致とは見なさないよう回路上処置されている。
【００１８】
ところで、上述のように、一旦検索を行ない多数の一致が検出され、そのアドレスを順次読み出している途中でデータの消去が行なわれた場合、その消去の行なわれたデータが現在読み出しを行なっている今回の検索で一致が検出されたデータであった場合であっても、もはやその消去されたデータを読み出しても無駄であるにも拘らず、プライオリティエンコーダ１６からはそのデータの格納アドレスが順次出力されることになり無駄な動作を行なうことになることがある。
【００１９】
これを避けるために、一旦データの消去が行なわれたらその時点で再度検索をやり直すことも考えられる。ところが複数ワードに跨る検索の場合、その複数ワードが、例えば１００ワード等の多数ワードであった場合、新たに１００個の参照データを順次入力し直して１００個の検索動作を行なう必要があり、この検索のやり直しにも時間がかかってしまい、その間にまたデータの消去があるといつまでたっても検索データの読出しの動作が完了しないことも考えられる。
【００２０】
本発明は、上記事情に鑑み、複数のワードに跨る一致検索を行なう機能を備えた連想メモリにおいて、検索後データ読出しが完了する前にデータの消去が行なわれた場合に、僅かな動作で、その消去された結果をそのデータ消去の前に行なわれた検索結果に反映させることのできる機能を備えた連想メモリを提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記目的を達成する本発明の連想メモリは、複数のデータ群それぞれに属する複数の格納データを各格納データ毎に記憶する複数のワードメモリを備え、複数の参照データが順次入力され、順次入力された各参照データそれぞれを用いた検索を複数回繰り返すことにより、所望のデータ群に属する複数の格納データが記憶された複数のワードメモリからなるワードメモリ群を検出する連想メモリにおいて、
（１）上記複数のワードメモリそれぞれに対応して備えられ、対応するワードメモリが、検索の対象とされる有効データが記憶された第１の記憶状態にあるワードメモリであるか、あるいは有効データが記憶されておらずしたがって上書きが許容される第２の記憶状態にあるワードメモリであるかを示す第１のフラグが記憶される第１のフラグレジスタ
（２）上記複数のワードメモリそれぞれに対応して備えられ、対応する第１のフラグレジスタに前記第１の記憶状態を表わす第１のフラグが記憶されており、かつ対応するワードメモリが今回の検索により一致が検出されたワードメモリである場合に、その対応するワードメモリで一致が検出されたことを表わす一致フラグが記憶される第２のフラグレジスタ
（３）上記複数のワードメモリそれぞれに対応して備えられ、対応する第１のフラグレジスタに上記第２の記憶状態を表わす第１のフラグが記憶され、かつ対応する第２のフラグレジスタに一致フラグが記憶された状態で、検索動作が行われた場合に、対応する第２のフラグレジスタに記憶されていた一致フラグを消去する一致消去回路
を備えたことを特徴とする。
【００２２】
【作用】
本発明の連想メモリは、上記（３）の一致消去回路を備えたため、一致が検出されて第２のフラグレジスタに一致フラグが格納された後、それに対応するワードメモリが空き状態（上記第２の記憶状態）に変更された（即ちそのワードメモリに格納されたデータが消去された）場合に、そのワードメモリで一致が検出される参照データを入力して検索動作を一回行なうことによりそのワードメモリの対応する一致フラグが消去される。この場合において、例えば、もともとは１００ワードの参照データを順次入力して検索を行なった場合であっても、わずかな動作で、すなわち、その１００ワードのうちの最後の１つの参照データを用いた１回の検索動作だけで、そのデータが消去されたことが検索結果に反映される。
【００２３】
尚、このときの検索動作においては、最後の参照データに代わり、マスクされたビットは回路上一致したものとみなされるため、例えば全ビットをマスクした‘空’の検索動作を行なってもよい。
【００２４】
【実施例】
以下、本発明の実施例について説明する。
図１は、本発明の一実施例の連想メモリ中の１つのメモリワードを表わした詳細回路図である。
このワードメモリ１１は、同一構成の３２個のメモリセル１１＿１，１１＿２，…，１１＿３２から構成されている。各メモリセル１１＿１，１１＿２，…，１１＿３２には、互いの出力が互いの入力に接続された、第１インバータ５０＿１，５０＿２，…，５０＿３２と第２インバータ５１＿１，５１＿２，…，５１＿３２が備えられており、これらのインバータ５０＿１，５１＿１；５０＿２，５１＿２；…；５０＿３２，５１＿３２により各メモリセル１１＿１，１１＿２，…，１１＿３２に論理‘１’もしくは論理‘０’の１ビットの情報が記憶される。
【００２５】
また各メモリセル１１＿１，１１＿２，…，１１＿３２において、第１のインバータ５０＿１，５０＿２，…，５０＿３２の出力はトランジスタ５２＿１，５２＿２，…，５２＿３２を介してビット線５３＿１，５３＿２，…，５３＿３２と接続されており、このトランジスタ５２＿１，５２＿２，…，５２＿３２のゲートはワード線５４に接続されている。また第２のインバータ５１＿１，５１＿２，…，５１＿３２の出力はトランジスタ５５＿１，５５＿２，…，５５＿３２を介してビットバー線５６＿１，５６＿２，…，５６＿３２と接続されており、このトランジスタ５５＿１，５５＿２，…，５５＿３２のゲートもワード線２４に接続されている。さらに各メモリセル１１＿１，１１＿２，…，１１＿３２において、ビット線５３＿１，５３＿２，…，５３＿３２とビットバー線５６＿１，５６＿２，…，５６＿３２との間をつなぐように互いにシリーズに接続された２つのトランジスタ５７＿１，５８＿１；５７＿２，５８＿２；…；５７＿３２，５８＿３２が配置されており、これら２つのトランジスタ５７＿１，５８＿１；５７＿２，５８＿２；…；５７＿３２，５８＿３２のうちの一方のトランジスタ５７＿１，５７＿２，…，５７＿３２のゲートは第１のインバータ５０＿１，５０＿２，…，５０＿３２の出力、他方のトランジスタ５８＿１，５８＿２，…，５８＿３２のゲートは第２のインバータ５１＿１，５１＿２，…，５１＿３２の出力と接続されている。
【００２６】
また一致線１４０には、各メモリセル１１＿１，１１＿２，…，１１＿３２に対応して１つずつトランジスタ２９０＿１，２９０＿２，…，２９０＿３２が備えられており、それらのトランジスタ２９０＿１，２９０＿２，…，２９０＿３２は互いにシリーズに接続され、それらのトランジスタ２９０＿１，２９０＿２，…，２９０＿３２の各ゲートは、各２つのトランジスタ５７＿１，５８＿１；５７＿２，５８＿２；…；５７＿３２，５８＿３２の中点と接続されている。
【００２７】
またこの一致線１４０にはさらに２つのトランジスタ２９０＿Ａ，２９０＿Ｂがシリーズに接続されている。トランジスタ２９０＿Ａのゲートは、このワードメモリに有効データが格納されているか、それともこのワードメモリが空き状態にあるかを表わすフラグレジスタ６１のＱ出力と接続されている。このワードメモリ１１に有効なデータが格納されると、それを受けて生成されたパルス信号ＣＲがフラグレジスタ６１に入力され、このフラグレジスタ６１に、このフラグレジスタ６１に対応するワードメモリ１１１に有効なデータが格納されていることを表わす論理‘１’が格納される。また、このワードメモリ１１中のデータを消去する際は、リセット信号ＲＳＴ＿がフラグレジスタ６１に入力され、フラグレジスタ６１に、そのフラグレジスタ６１に対応するワードメモリ１１が空き状態にあることを表わす論理‘０’が入力される。
【００２８】
なお、本実施例ではワードメモリに有効なデータが格納されているかそれとも空きであるかを表わすフラグを、フラグレジスタ６１で実現しているが、対応するワードメモリのワード線に接続された一般的なメモリとしてそのメモリの内部ノード（インバータ５０＿１の出力に相当）を、トランジスタ２９０＿Ａのゲートに接続することによっても実現できる。
【００２９】
尚、このワードメモリ１１にデータを格納するには、通常のＳＲＡＭと同様に、ビット線５３＿１，５３＿２，…，５３＿３２に格納しようとするデータ、ビットバー線５６＿１，５６＿２，…，５６＿３２にそのデータの各ビットの論理を反転させたデータをのせ、ワード線５４を論理‘１’に立ち上げる。こうすることによりこのワードメモリ１１に所望のデータが格納される。
【００３０】
一致線１４０に接続されるもう１つのトランジスタ２９０＿Ｂは、この一致線１４０の、図１に左端とグラウンドとの間に配置されており、このトランジスタ２９０＿Ｂのゲートは制御線３００に接続されている。またこの一致線の図１の右側にはインバータ３１０が備えられており、一致線１４０はこのインバータ３１０の出力側にも延びて、このワードメモリ１１に対応する一致フラグレジスタ（図８に示す一致フラグレジスタ１５＿１，１５＿２，…，１５＿ｎのうちいずれか）と接続されている。このインバータ３１０の入力と電源ＶＤＤとの間には２つのＰ型トランジスタ３５０，３３０が備えられており、それらのうちの一方のＰ型トランジスタ３５０のゲートは制御線３００と接続され、他方のＰ型トランジスタ３３０のゲートはインバータ３１０の出力と接続されている。
【００３１】
このような構造のワードメモリ及びその周辺回路を備えた連想メモリにおいて、一致検索は以下のようにして行なわれる。尚、ここでは、ワードメモリ１１に有効なデータが格納されており、したがってフラグレジスタ６１には論理‘１’が格納され、トランジスタ２９０＿Ａは導通状態にあるものとする。
先ず制御線３００が論理‘０’となりＰ型トランジスタ３５０が導通状態となって一致線１４０がプリチャージされる。この際、トランジスタ２９０＿Ｂは非導通状態となって一致線１４０が確実に接地ラインから切り離され、これにより確実にプリチャージが行なわれる。このようにして一致線１４０が先ずプリチャージされた後検索が行なわれる。
【００３２】
ここで、メモリセル１１＿１には、論理‘１’の情報が記憶されているものとする。即ちこの場合第１のインバータ５０＿１の出力側が論理‘１’、第２のインバータ５１＿１の出力側が論理‘０’の状態にある。
このメモリセル１１＿１に対して論理‘１’の検索が行なわれるものとする。即ち、ビット線５３＿１が論理‘１’、ビットバー線５６＿１が論理‘０’とされる。ワード線５４は論理‘０’のままの状態に保持されている。また制御線３００が論理‘１’となり、トランジスタ２９０＿Ｂが導通状態となる。この場合トランジスタ５７＿１のゲートには論理‘１’の電圧が印加され、ビット線５３＿１の論理‘１’の信号がトランジスタ２９０＿１のゲートに印加され、これによりトランジスタ２９０＿１が導通状態となる。即ちメモリセル１１＿１に記憶されたビット情報とビット線５３＿１、ビットバー線５６＿１を経由して入力された検索データ中のビット情報が一致する場合に、対応するトランジスタ２９０＿１が導通状態となる。
【００３３】
また、メモリセル１１＿２には論理‘０’の情報が記憶されているものとする。この場合第１のインバータ５０＿２の出力側が論理‘０’、第２のインバータ５１＿２の出力側が論理‘１’の状態にある。
このメモリセル１１＿２に対してやはり論理‘１’の検索が行なわれるものとする。即ち、ビット線５３＿２が論理‘１’、ビットバー線５６＿２が論理‘０’とされ、制御線３００が論理‘１’とされる。この場合、トランジスタ５８＿２を経由して論理‘０’の状態にあるビットバー線５６＿２の信号がトランジスタ２９０＿２のゲートに印加され、したがってこのトランジスタ２９０＿２は非導通状態にととどまることになる。即ち不一致の場合、一致線１４０にプリチャージされていた電荷はディスチャージされない。
【００３４】
また、マスクをかけたビットについては、メモリセル１１＿３２に示すように、ビット線５３＿３２、ビットバー線５６＿３２の双方とも論理‘１’とされる。この場合このメモリセル１１＿３２に論理‘１’の情報が記憶されているか論理‘０’の情報が記憶されているかに応じてトランジスタ５７＿３２もしくはトランジスタ５８＿３２のいずれかが導通状態となり、いずれの場合もトランジスタ２９０＿３２は導通状態となる。
【００３５】
このように、図１に示すワードメモリでは、ワードメモリに記憶されたビットパターンとビット線５３＿１，５３＿２，…，５３＿３２、ビットバー線５６＿１，５６＿２，…，５６＿３２を経由して入力された検索データのビットパターンとが一致する（マスクのかけられたビットについては、上述のように一致しているものとみなされる）場合、一致線１４０にプリチャージされた電荷がトランジスタ２９０＿３２，…，２９０＿２，２９０＿１，２９０＿Ａ，２９０＿Ｂを経由して流れ出し、これにより一致線１４０がディスチャージされ、この一致線１４０のうち図３におけるインバータ３１０の左側の部分は論理‘０’の状態となる。この論理‘０’がインバータ３１０で反転され、論理‘１’の一致信号がこのインバータ３１０から出力され、各一致フラグレジスタ１５＿１，１５＿２，…，１５＿３２（図８参照）に入力される。
【００３６】
またワードメモリに記憶されたビットパターンとビット線５３＿１，５３＿２，…，５３＿３２、ビットバー線５６＿１，５６＿２，…，５６＿３２を経由して入力された検索データのビットパターンとが不一致の場合には、一致線１４０はプリチャージによる論理‘１’の状態にとどまり、この論理‘１’がインバータ３１０で反転され、論理‘０’の不一致信号が出力される。
【００３７】
このように、図１に示すワードメモリは、検索に先立って一致線１４０がＰ型トランジスタ３５０を経由してプリチャージされ、検索により一致した場合にだけトランジスタ２９０＿Ａ，２９０＿Ｂ，２９０＿１，２９０＿２，…，２９０＿３２を経由してディスチャージされるように構成したため、各検索毎にディスチャージされるのは、ほとんどの場合多数の一致線のうちの極く一部であって、大部分の一致線はプリチャージされた状態にとどまり、したがって次の検索に先立ってプリチャージする必要のある一致線の本数は少なくて済み、検索に伴う消費電力が低く押えられる。
【００３８】
尚、フラグレジスタ６１に、このワードメモリ１１が空き状態にあることを表わす論理‘０’が格納されていた場合、このワードメモリ１１に格納されている無効のデータと参照データとがたまたま一致したとしても、トランジスタ２９０＿Ａが遮断状態にあるため、一致線１４０の電荷はディスチャージされず、一致は検出されず、インバータ３１０の出力側は論理‘０’にとどまることになる。
【００３９】
図２は、本発明を、図９に示すデータ拡張機能を備えた連想メモリに適用した場合の実施例における、特徴部分を表わした部分回路図である。
ここには、図９に示す各オアゲート２１＿２，２１＿３に代わり、各オアゲート２１０＿２，２１０＿３、一方の入力の論理が反転された各２入力アンドゲート２１１＿２，２１１＿３、および通常の各２入力アンドゲート２１２＿２，２１２＿３が備えられており、さらに制御線２１３が追加されている。
【００４０】
ここで、通常の検索動作のときは、制御線２１３は論理‘０’に保たれており、この場合、各２つのアンドゲート２１１＿２，２１２＿２；２１１＿３，２１２＿３のうち、図２の上側のアンドゲート２１１＿２，２１１＿３がデータを通過できる状態にあり、この場合、この図２に示す回路は、図９に示す回路と全く同等の動作をする。ここで、図９を参照して説明したようにして、一連の複数回の検索の結果、最終的に、第１および第２のフラグレジスタ２３＿２，２４＿２に、それらに対応するワードメモリで一致が検出されたことを表わす論理‘１’が格納されたものとする。
【００４１】
その状態で、それらの第１および第２のフラグレジスタ２３＿２，２４＿２に対応するワードメモリが空き状態に変更されたものとする。すなわち、その対応するワードメモリのフラグレジスタ６１（図１参照）に論理‘０’が格納されたものとする。この場合、以下のようにして、その対応するワードメモリが空き状態に変更されたことが第１および第２のフラグレジスタ２３＿２，２４＿２に反映される。すなわち、図２に示す制御線２１３を論理‘１’にし、これによりアンドゲート２１１＿２，２１１＿３を無効にし、かつアンドゲート２１２＿２，２１２＿３を有効にしておいて、ここでは全ビットマスクしたダミーの検索を行なう。
【００４２】
制御線２１３を論理‘１’に変更すると、第２のフラグレジスタ２４＿２に格納された論理‘１’のデータは、アンドゲート２１２＿２を経由し、さらにオアゲート２１０＿２を経由してアンドゲート２０＿２の入力側に達するものの、ダミーの検索の結果、図１に示すフラグレジスタ６１に論理‘０’が格納されているワードメモリに対応する一致線１４＿２は論理‘０’になる。したがってアンドゲート２０＿２の出力は論理‘０’となり、第１および第２のフラグレジスタ２３＿２，２４＿２には論理‘０’が格納される。
【００４３】
一方、第１及び第２のフラグレジスタ２３＿３，２４＿３に対応するワードメモリは、引き続き、フラグレジスタ６１に、有効なデータが格納されていることを示す論理’１’が格納されているため、対応する一致線１４＿３は論理’１’となる。したがって、アンドゲート２１２＿３、オアゲート２１０＿３およびアンドゲート２０＿３を経由して、論理’１’が、第１及び第２のフラグレジスタ２３＿３，２４＿３に再びセットされることになる。
【００４４】
尚、第１および第２のフラグレジスタ２３＿２，２４＿２に、直前の一連の検索で一致があったことを表わす論理‘１’が格納されており、それらに対応するワードメモリ１１のフラグレジスタ６１（図１参照）に、そのメモリワード１１に有効データが格納されていることを表わす論理‘１’が引き続き格納されていた場合、今回のダミーの検索よってアンドゲート２０＿２の出力が論理‘１’となり、したがって第１および第２のフラグレジスタ２３＿２，２４＿２は、引き続き、一致を表わす論理‘１’の状態にとどまることになる。
【００４５】
また、第１および第２のフラグレジスタ２３＿２，２４＿２に、直前の一連の検索で不一致であったことを表わす論理‘０’が格納されていた場合、その論理‘０’の信号がアンドゲート２１２＿２，オアゲート２１０＿２を経由してアンドゲート２０＿２の一方の入力に伝達されているため、今回のダミーの検索で一致線１４＿２が論理‘１’となってもアンドゲート２０＿２の出力は論理‘０’にとどまり、第１および第２フラグレジスタ２３＿２，２４＿２は、論理‘０’が格納された、不一致を表わす状態にとどまる。
【００４６】
すなわち、アンドゲート２１２＿２，２１２＿３を介して直前の一連の検索の一致／不一致を、一致線１４＿２，１４＿３を介してメモリワードに格納されたデータの有効／無効（空き）を検出することによって、直前の一連の検索で一致しており、かつ有効なデータのまま生き残っている（消去されていない）ワードメモリに対応する第１、第２のフラグレジスタ２３＿２，２４＿２；２３＿３，２４＿３にのみ一致を表わす論理’１’が再びセットされることになる。
【００４７】
このように、検索動作を１回行なうだけで、データ消去結果を、そのデータ消去前に行なった検索の結果に反映させることができる。
次に他の実施例について説明するが、ここでは先ず、次の実施例の連想メモリで採用されるデータ構造について説明する。
図９ないし図２に示す連想メモリは、データ幅拡張機能を備えてはいるが、２ワード，３ワード等に拡張されるデータは、順次隣接したワードメモリに所定の順序で格納されている必要があり、互いに離れたワードメモリに格納されている場合や逆の順序、例えばデータ‘Ｃ’，データ‘Ｂ’の順序に格納されている場合には複数のデータを結合した一致検出を行うことはできない。
【００４８】
図３は、このような検索が必要となる場合のデータ構造を示す図である。
図３には、それぞれ属性Ｉ，ＩＩ，ＩＩＩ，ＩＶが付された４つのデータがセットとなって１つのデータ群を構成しているデータ構造が示されている。データ群および属性の概念を明確にするために一例を挙げると、例えば各群番号１，２，３，４，…毎の各データ群は各個人に属するデータであり、属性Ｉはその人の氏名，属性ＩＩはその人の生年月日、属性ＩＩＩは住所、……等を示している。
【００４９】
このように各属性Ｉ，ＩＩ，ＩＩＩ，ＩＶが付された複数のデータからなるデータ群を連想メモリに格納しておいて検索を行う場合に、例えば群番号１のデータを検索する場合を例に説明すると、データ‘Ａ’の検索とデータ‘Ｂ’の検索をこの順に行って一致するデータ群の残りのデータ‘Ｃ’，‘Ｄ’を読み出すことだけではなく、例えばデータ‘Ａ’の検索とデータ‘Ｄ’の検索を行って残りのデータ‘Ｂ’，‘Ｃ’を読み出したい場合や、データ‘Ｂ’の検索を先に行い、次にデータ‘Ａ’の検索を行いたい場合がある。
【００５０】
しかし、上述したワード幅拡張機能を備えた図９ないし図２に示す連想メモリでは、このような検索は不可能である。またそれらの連想メモリでは、データ‘Ａ’とデータ‘Ｂ’の検索を行った場合に、図３に示す群番号１の欄にある属性Ｉの付されたデータ‘Ａ’と属性ＩＩの付されたデータ‘Ｂ’とのペアと、群番号４の欄にある属性ＩＩの付されたデータ‘Ａ’と属性ＩＩＩの付されたデータ‘Ｂ’とのペアとの区別をすることはできず、例えば、‘氏名’という属性Ｉと‘生年月日’という属性ＩＩの情報を基にそれらが一致する特定の個人の属性ＩＩＩ，ＩＶの情報を知ろうとしても、属性ＩＩと属性ＩＩＩのペアでも一致が検出される等必要な情報以外のノイズが混入してしまうことになる。
【００５１】
以下に説明する実施例は、本発明を、例えば図３に示すような群構造を成すデータを格納しておいて、同一の群内の複数のデータの任意の組合わせによる検索を行うことのできる連想メモリに適用したものである。
図４は、本発明の連想メモリの一実施例を示すブロック図である。これまでの説明で参照した各図、特に図９に示す連想メモリの各構成要素と同一の構成要素には、それらの図に付した符号と同一の符号を付して示し、相違点についてのみ説明する。
【００５２】
各ワードメモリ１１＿１，１１＿２，…は、属性を格納する属性格納部１１＿１＿１，１１＿２＿１，…とデータを格納するデータ格納部１１＿１＿２，１１＿２＿２，…とで構成されており、各ワードメモリ１１＿１，１１＿２，…には、互いに対応する属性とデータとのペアからなる格納データがそれぞれ格納されている。ここでは、図示のように、各ワードメモリ１１＿１，１１＿２，１１＿３，１１＿４には、それぞれ、図３に示す群番号１に属する、属性Ｉ，データ‘Ａ’、属性ＩＩ，データ‘Ｂ’、属性ＩＩＩ，データ‘Ｃ’、属性ＩＶ，データ‘Ｄ’が格納されている。また各ワードメモリ１１＿５，１１＿６，…には、それぞれ、図７に示す群番号２に属する、属性Ｉ，データ‘Ｃ’、属性ＩＩ，データ‘Ｆ’、……が格納されている。また検索にあたっては、属性とデータとのペアからなる参照データＲＥＦ＿ＤＡＴＡが入力される。
【００５３】
各ワードメモリ１１＿１，１１＿２には、そこに記憶された格納データ（属性及びデータの双方）が、入力された参照データ（属性及びデータの双方）と一致しているときに一致信号が出力される従来の一致線１４＿１，１４＿２，…のほか、属性のみの一致不一致の信号が出力される属性一致線３０＿１，３０＿２，…が備えられている。ここでは、データの一致検出に、図１に示す、そのワードメモリに有効なデータが格納されているか否かを表わすフラグを格納するフラグレジスタが備えられており、そのワードメモリが空き状態にある場合は、データは不一致として検出される。
【００５４】
各ワードメモリ１１＿１，１１＿２に対応して第３のフラグレジスタ３１＿１，３１＿２，…が備えられており、各属性一致線３０＿１，３０＿２，…は対応する第３のフラグレジスタ３１＿１，３１＿２，…のデータ入力端子に延びている。また、この実施例の連想メモリには、図３に示す各データ群に属する各データが格納されたワードメモリからなるワードメモリ群それぞれについて１本ずつデータ線３２＿１，３２＿２，…が備えられており、またデータ線３２＿１，３２＿２，…と各第２のフラグレジスタ２４＿１，２４＿２，…の出力端子との間には各第１のスイッチ３３＿１，３３＿２，…が備えられている。これらの第１のスイッチ３３＿１，３３＿２，…は具体的にはトランジスタ等を用いて構成される。後述する他のスイッチについても同様である。各第１のスイッチ３３＿１，３３＿２，…は、対応する各第３のフラグレジスタ３１＿１，３１＿２，…に論理‘１’の信号がラッチされているときに導通され、論理‘０’の信号がラッチされているときには遮断される。各第３のフラグレジスタ３１＿１，３１＿２，…は、一致結果ラッチ制御線２５に出力される一致結果ラッチ信号Ｓ１の立ち下がりｂのタイミングで、対応する属性一致線３０＿１，３０＿２，…の信号をラッチする。
【００５５】
またデータ線３２＿１，３２＿２，…と各オアゲート２１＿１，２１＿２，…の入力端子との間に各第２のスイッチ３４＿１，３４＿２，…が備えられており、これら各第２のスイッチ３４＿１，３４＿２，…は、対応する属性一致線３０＿１，３０＿２，…の信号により、その信号が一致を表わす論理‘１’のときに導通状態、不一致を表わす論理‘０’の時に遮断状態となるように制御される。
【００５６】
以上のように構成された連想メモリにおいて、一致検索は以下のようにして行われる。１ワード分の単独のデータの検索、および第１回目の検索は、図９に示したワード拡張機能付連想メモリの場合と同じであるためここでは説明は省略し、ここでは第１回目の検索において属性ＩＩとデータ‘Ｂ’とからなる参照データＲＥＦ＿ＤＡＴＡによってワードメモリ１１＿２に対応する第１および第２のフラグレジスタ２３＿２，２４＿２に論理‘１’がラッチされたものとする。このとき、属性の一致を受けてワードメモリ１１＿２に対応する属性一致線３０＿２に論理‘１’の信号が出力され、これにより、対応する第３のフラグレジスタ３１＿２にも論理‘１’の信号がラッチされ、対応する第１のスイッチ３３＿２がオンし、対応する第２のフラグレジスタ２４＿２に格納された、属性及びデータ双方の一致を表わす論理‘１’の信号がデータ線３２＿１に出力される。またこれとともに、対応する第２のスイッチ３４＿２もオンするが、第１回目の検索においてはこれは無用の動作である。
【００５７】
次に、属性ＩＶとデータ‘Ｄ’からなる参照データＲＥＦ＿ＤＡＴＡを入力して検索を行うものとする。このときは、図９の連想メモリの場合と同様、初回検索制御線２２は論理‘０’に保持されている。このとき、属性の一致を受けてワードメモリ１１＿４に対応する属性一致線３０＿４に論理‘１’の信号が出力され、これにより対応する第２のスイッチ３４＿４がオンし、データ線３２＿１に出力されていた、ワードメモリ１１＿２に対応する第２のフラグレジスタ２４＿２の論理‘１’の信号がオアゲート２１＿４を経由してアンドゲート２０＿４に入力される。このため、ワードメモリ１１＿４で属性ＩＶとデータ‘Ｄ’の双方の一致が検出されて一致線１４＿４に論理‘１’の一致信号が出力されると、一致結果ラッチ制御線２５に出力される一致結果ラッチ信号Ｓ１により、対応する第１および第２のフラグレジスタ２３＿４，２４＿４に論理‘１’の信号がラッチされる。またこのとき、属性一致線３０＿４に出力された論理‘１’の信号が、対応する第３のフラグレジスタ３１＿４にラッチされ、対応する第１のスイッチ３３＿４がオンし、第２のフラグレジスタ２４＿４の論理‘１’の信号がデータ線３２＿１に出力される。またこの２回目の検索では、ワードメモリ１１＿２に対応する属性一致線３０＿２には属性の不一致を表わす論理‘０が出力されるため、対応する第３のフラグレジスタ３１＿２には‘０’が格納され、ワードメモリ１１＿２に対応する第１のスイッチ３３＿２はオフする。
【００５８】
これにより、ワードメモリ１１＿４に対応する第２のフラグレジスタ２４＿４の論理‘１’の信号がプライオリティエンコーダ１６（図８参照）に入力され、ワードメモリ１１＿４のアドレスが得られることになるが、ワードメモリ１１＿４には属性ＩＶが格納されていることは予め分かっており、同一群内の例えば属性ＩＩＩのデータを読み出したいときは、得られたアドレスから１を引いてワードメモリ１１＿３のアドレスを求め、そのアドレスをアドレスデコーダ１７に入力してワードメモリ１１＿３の内容を読み出せばよい。
【００５９】
尚、２回目の検索時に、属性ＩＶとデータ‘Ｄ’とからなる参照データに代わり、例えば属性ＩＶとデータ‘Ｂ’とからなる参照データで検索が行われた場合、ワードメモリ１１＿４については、属性は一致するため第２のスイッチ３４＿４がオンし、データ線３２＿１に出力されている論理‘１’の信号が取り込まれるが、データが異なるため一致線１４＿４には不一致を表わす論理‘０’が出力され、第１及び第２のフラグレジスタ２３＿４，２４＿４には一致が検出されなかったことを示す論理‘０’がラッチされる。また、データ‘Ｂ’が一致するワードメモリ１１＿２については属性が一致せず、したがって属性及びデータの双方も一致しない。
【００６０】
以上のようにして、図４に示す実施例では、同一の群内においては、互いに離れたワードメモリに記憶されたデータであっても、もしくはデータの順序を逆にして検索した場合であっても、検索を行うことができる。
ここで、複数回の一致検索の結果、最終的に、例えば図４の上から２番目のワードメモリ１１＿２で一致が検出され、第１および第２のフラグレジスタ２３＿２，２４＿２；に一致フラグ（論理‘１’）が格納されたものとし、その状態でワードメモリ１１＿２のデータが消去されたものとする。第２のフラグレジスタ２４＿２に格納されている論理‘１’のデータは、第３のフラグレジスタ３１＿２も論理‘１’のデータが格納されておりスイッチ３３＿２が導通状態にあるため、データ線３２＿１に出力されている。
【００６１】
その状態で、属性については適当な属性で、かつデータについては全ビットをマスクしてダミーの検索を行なうと、仮に属性の方で一致が検出され、データ線３２＿１に出力されている論理‘１’のデータがスイッチ３４＿２，オアゲート２１＿２を経由してアンドゲート２０＿２１に入力されたとしても、図１の実施例と同様にデータが消去されて空き状態になったことが検出され、一致線１４＿２は論理‘０’にとどまり、したがってアンドゲート２０＿２の出力は論理‘０’となり、第１および第２のフラグレジスタ２３＿２，２４＿２に、不一致を表わす論理‘０’が格納される。他の場合、例えば対応するワードメモリに引き続き有効データが格納されている場合等も、図２に示す実施例を参照して既に説明した内容から明らかであるため、ここではこれ以上の説明は省略する。
【００６２】
ここで、この実施例におけるデータ線３２＿１，３２＿２，…，は、１つの群に属するデータの数が予め定まっているものとしてその長さが固定されたものであるが、このように固定長のデータ線を備えると、１つの群に属するデータの数の最大を見積もり、最大のデータ数に対応した長さのデータ線を備える必要がある。これではその最大よりも少ない数のデータによりデータ群が構成される場合に無駄なワードメモリが発生することになる。そこで、１つの群に属するデータの数に合せてデータ線を可変長とすることが好ましいがデータ線の長さをいかにして可変長とするかが問題となる。
【００６３】
図５は、可変長のデータ線を実現する一つの方式を示した模式図である。
データ線３２が複数のワードメモリ１１＿１，１１＿２，１１＿３，…に亘って延び、そのデータ線３２には、最上端のワードメモリ１１＿１を除く他のワードメモリ１１＿２，１１＿３，…それぞれに対応する各スイッチ４０＿１，４０＿２，４０＿３，…が互いにシリーズに配置されている。これらの各スイッチ４０＿２，４０＿３，４０＿４，…は、対応するワードメモリ１１＿２，１１＿３，１１＿４，…と、その直ぐ上段に隣接するワードメモリ１１＿１，１１＿２，１１＿３，…との間に配置されている。それらのスイッチ４０＿２，４０＿３，４０＿４，…のうちの１つおきのスイッチ４０＿２，４０＿４，４０＿６，…は第１制御線４１に出力される第１のスイッチ制御信号によりオンし、３つおきのスイッチ４０＿３，４０＿７，…は第２制御線４２に出力される第２のスイッチ制御信号によりオンし、残りのスイッチのうち７つおきのスイッチ４０＿５，…は第３制御線４３に出力される第３のスイッチ制御信号によりオンされる。
【００６４】
１つのデータ群を構成するデータの数が２の場合は、第１制御線４１に第１のスイッチ制御信号を出力することにより１つおきのスイッチ４０＿２，４０＿４，４０＿６，…をオンさせる。これにより各２つのワードメモリ１１＿１，１１＿２；１１＿３，１１＿４；１１＿５，１１＿６；…毎に切断されたデータ線が形成される。また、１つのデータ群を構成するデータの数が４の場合は、第１制御線４１に第１のスイッチ制御信号を出力するとともに第２制御線４２に第２のスイッチ制御信号を出力する。すると、各４つのワードメモリ１１＿１，１１＿２，１１＿３，１１＿４；１１＿５，１１＿６，…毎に切断されたデータ線が形成される。同様にして、１つのデータ群を構成するデータの数が８の場合は、第１制御線４１、第２制御線４２にそれぞれ第１および第２のスイッチ制御信号を出力するとともに、第３制御線４３に第３のスイッチ制御信号を出力する。これにより各８つのワードメモリ１１＿１，…，１１＿８；１１＿９…毎に切断されたデータ線が形成される。
【００６５】
この方式によれば、１つのデータ群を構成するデータの数が２の倍数の場合はワードメモリに空きは生じないが、２の倍数以外の、例えば３，５，９等の場合空きのワードメモリが生じてしまうことになる。この空きのワードメモリが生じないように多数のスイッチ４０＿２，４０＿３，…を任意にオン，オフできるように構成すると、制御線の本数が多数本となり、またそれらの制御線にスイッチ制御信号を出力する制御回路が複雑となる。したがって、図５に示す方式は、データ線の長さを任意に制御するには不向きである。
【００６６】
図６は、可変のデータ線を実現するもう一つの方式を示した模式図である。
多数のワードメモリに亘ってデータ線３２が延び、そのデータ線３２に互いにシリーズに接続された、最上端のワードメモリを除く他のワードメモリそれぞれに対応する各スイッチ４０＿２，４０＿３，４０＿４，…が備えられている点は図２の場合と同じである。各ワードメモリには、各属性格納部１１＿１＿１，１１＿２＿１，１１＿３＿１，…が備えられており、それら属性格納部１１＿１＿１，１１＿２＿１，１１＿３＿１，…には、図示の各属性Ｉ，ＩＩ，ＩＩＩ，…がそれぞれ格納されている。この例は、属性格納部１１＿１＿１，１１＿２＿１，１１＿３＿１，…に格納された属性が属性Ｉかそれ以外の属性ＩＩ，ＩＩＩ，ＩＶかに応じて、属性Ｉの場合は対応するスイッチをオフのままとし、それ以外の属性ＩＩ，ＩＩＩ，ＩＶの場合は対応するスイッチをオンするように構成したものである。このように構成すると、１つのデータ群を構成するデータの数がいくつであっても、また、データ数の異なるデータ群が混在していても、各データ群の先頭に属性Ｉのデータを配置することにより、自動的に過不足ない数のワードメモリ毎に切断されたデータ線が形成されることになる。
【００６７】
図７は、属性がＩかそれ以外かを判定する属性判定回路の一例を示す回路図である。
ここでは属性Ｉに‘０００’が割り当てられており、属性格納部１１＿ｉ＿１に格納された属性が属性Ｉ（‘０００’）の場合オアゲートから‘０’が出力され、したがってトランジスタ４０で構成されたスイッチ４０’はオフ状態となり、そのトランジスタ４０’の両側のデータ線が電気的に切断される。属性格納部１１＿ｉ＿１に格納された属性が属性Ｉ以外の属性の場合はオアゲートから‘１’が出力され、トランジスタ４０はオン状態となり、そのトランジスタの両側のデータ線が接続される。
【００６８】
このように、図４に示す実施例において、１つのデータ群を構成するデータの数に応じてデータ線３２＿１，３２＿２，…の長さを調整することもできる。もちろん、属性データを利用するのではなく、専用の制御線によってスイッチを制御することによりデータ線の長さを調整してもよいことはいうまでもない。
【００６９】
【発明の効果】
以上説明したように、本発明の連想メモリによれば、複数ワードに拡張された検索を行なうことのできる連想メモリにおいて、僅かな動作で、検索結果に、その検索のあとでデータが消去された結果を反映させることができる。
【図面の簡単な説明】
【図１】本発明の一実施例の連想メモリ中の１つのワードメモリを表わした詳細回路図である。
【図２】本発明を、図９に示すデータ拡張機能を備えた連想メモリに適用した場合の実施例における、特徴部分を表わした部分回路図である。
【図３】群構造のデータの一例を示す図である。
【図４】本発明の連想メモリの一実施例を示すブロック図である。
【図５】可変長のデータ線を実現する一つの方式を示した模式図である。
【図６】可変のデータ線を実現するもう一つの方式を示した模式図である。
【図７】属性がＩかそれ以外かを判定する属性判定回路の一例の回路図である。
【図８】従来の連想メモリの一例を表わした回路ブロック図である。
【図９】データ拡張機能を備えた従来の連想メモリの一例を示すブロック図である。
【符号の説明】
１１＿１，１１＿２，…  ワードメモリ
１１＿１＿１，１１＿２＿１，…  属性格納部
１１＿１＿２，１１＿２＿２，…  データ格納部
１４＿１，１４＿２，…  一致線
１６  プライオリティエンコーダ
１７  アドレスデコータ
１８＿１，１８＿２，…  ワード線
２０＿１，２０＿２，…  アンドゲート
２１＿１，２１＿２，…  オアゲート
２３＿１，２３＿２，…  第１のフラグレジスタ
２４＿１，２４＿２，…  第２のフラグレジスタ
２５  一致結果ラッチ制御線
３０＿１，３０＿２，…  属性一致線
３１＿１，３１＿２，…  第３のフラグレジスタ
３２＿１，３２＿２，…  データ線
３３＿１，３３＿２，…  第１スイッチ
３４＿１，３４＿２，…  第２スイッチ
６１  フラグレジスタ
【図１】
0003597899.tif 000002
【図２】
0003597899.tif 000003
【図３】
0003597899.tif 000004
【図４】
0003597899.tif 000005
【図５】
0003597899.tif 000006
【図６】
0003597899.tif 000007
【図７】
0003597899.tif 000008
【図８】
0003597899.tif 000009
【図９】
0003597899.tif 000010