JP3597882B2 - Associative memory - Google Patents

Associative memory Download PDF

Info

Publication number
JP3597882B2
JP3597882B2 JP1676994A JP1676994A JP3597882B2 JP 3597882 B2 JP3597882 B2 JP 3597882B2 JP 1676994 A JP1676994 A JP 1676994A JP 1676994 A JP1676994 A JP 1676994A JP 3597882 B2 JP3597882 B2 JP 3597882B2
Authority
JP
Japan
Prior art keywords
data
stored
search
memory
flag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP1676994A
Other languages
Japanese (ja)
Other versions
JPH07226091A (en
Inventor
正人 米田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP1676994A priority Critical patent/JP3597882B2/en
Publication of JPH07226091A publication Critical patent/JPH07226091A/en
Application granted granted Critical
Publication of JP3597882B2 publication Critical patent/JP3597882B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、一致検索の行われるデータ幅を複数のワードに拡張する機能、すなわち、連続する複数回の検索でそれぞれ一致が検出された場合に全体としての一致が検出される機能を備えた連想メモリに関する。
【0002】
【従来の技術】
従来より、配列された複数の各メモリワードそれぞれに各ディジタルデータを記憶しておき、検索データを入力し、入力された検索データの全部もしくは所定の一部のビットパターンと一致するビットパターンを有するディジタルデータが記憶されたメモリワードを検索する連想メモリ(Associative Memory,内容アドレス式メモリ;Content Addressable Memory)が提案されている。
【0003】
図2は、連想メモリの一例を表わした回路ブロック図である。
この連想メモリ10には、mビットを1ワードとする、互いに図の横方向に並ぶmビットのメモリセルからなる多数のメモリワード11_1,11_2,…,11_nが備えられている。またこの連想メモリ10は、1ワードの検索データが入力されラッチされる検索データレジスタ12を備え、検索データレジスタ12にラッチされた検索データの全部もしくは所定の一部のビットパターンと、各メモリワード11_1,11_2,…,11_nに記憶された格納データのうち上記ビットパターンと対応する部分のビットパターンとの一致不一致が比較され、各メモリワード11_1,11_2,…,11_nのそれぞれに対応して備えられた一致線14_1,14_2,…,14_nのうちビットパターンが一致したメモリワード11_1,11_2,…,11_nに対応する一致線14_1,14_2,…,14_nに論理‘1’(ここでは5Vとする)の一致信号が出力される。それ以外の一致線14_1,14_2,…,14_nは論理‘0’(ここでは0Vとする)にとどまる。
【0004】
これらの一致線14_1,14_2,…,14_nに出力された信号は、各フラグレジスタ15_1,15_2,…,15_nに格納される。ここでは、一例として、図示のように、各フラグレジスタ15_1,15_2,…,15_nにそれぞれ‘0’,‘1’,‘1’,‘0’,…,‘0’,‘0’が格納されたものとする。これらのフラグレジスタ15_1,15_2,…,15_nに格納された信号はプライオリティエンコーダ16に入力される。プライオリティエンコーダ16には、エンコードパルスEPが入力され、エンコードパルスEPが入力される毎に、所定の優先順位づけに従って、論理‘1’の信号が格納されたフラグレジスタ(ここではフラグレジスタ15_2とフラグレジスタ15_3の2つ)のうちの優先度の高いフラグレジスタに対応するアドレス信号ADが順次出力される。ここでは、添字が若いほど優先順位が高いものとし、従ってエンコードパルスEPが1つだけ入力されると、フラグレジスタ15_2に対応するメモリアドレスが出力される。このプライオリティエンコーダ16から出力されたアドレス信号ADは、必要に応じてアドレスデコーダ17に入力される。アドレスデコーダ17ではこの入力されたアドレス信号ADをデコードして、各メモリワード11_1,11_2,…,11_nそれぞれに対応して備えられたワード線18_1,18_2,…,18_nのうちの入力されたアドレス信号ADに対応するいずれか1本のワード線(ここではワード線18_2)にアクセス信号(ここでは論理‘1’の信号)を出力する。これによりアクセス信号の出力されたワード線18_2に対応するメモリワード11_2に記憶されている格納データが出力レジスタ19に読み出される。
【0005】
次に、エンコードパルスEPがもう1つ入力されると、今度はフラグレジスタ15_3に対応するメモリワード11_3のアドレスを得ることができる。
上記のように、連想メモリ10は、検索データの全部もしくは所定の一部のデータを用いて多数のメモリワード11_1,11_2,…,11_nに記憶された格納データを検索し、一致する格納データを有するメモリワードのアドレスを得、必要に応じてそのメモリワードに記憶されたデータ全体を読み出すことができるように構成されたメモリである。
【0006】
上記のような基本構成を有する連想メモリにおいて、一致検索の対象となるデータ幅を2ワードもしくはそれ以上の複数ワードに拡張する技術が提案されている。
図3は、データ拡張機能を備えた連想メモリの一例を示すブロック図である。図2に示した連想メモリの構成要素と対応する構成要素には、図2に付した符号と同一の符号を付して示し、その要素についての重複説明は省略する。
【0007】
各メモリワード11_1,11_2,…から延びる各一致線14_1,14_2,…,は、各アンドゲート20_1,20_2,…の一方の入力端子に接続されている。また各アンドゲート20_1,20_2,…の他方の入力端子には各オアゲート21_2,21_3,…の出力端子が接続されており、各オアゲート21_2,21_3,…の一方の入力端子は、初回検索制御線22に接続されている。ただし図示の一番上のアンドゲート20_1に対応するオアゲートは省略されており、そのアンドゲート20_1の入力端子に初回検索御線22が直接接続されている。
【0008】
各アンドゲート20_1,20_2,…の出力端子は各第1のフラグレジスタ23_1,23_2,…のデータ入力端子に接続され、各第1のフラグレジスタ23_1,23_2,…の出力端子は各第2のフラグレジスタ24_1,24_2,…の入力端子に接続されている。各第2のフラグレジスタ24_1,24_2,…の出力端子は、図2に示すプライオリティエンコーダ16(図3では図示省略)に接続されるとともに、図3の下方に隣接するメモリワードに対応するオアゲート21_2,21_3,…の入力端子に接続されている。
【0009】
互いに対応する第1および第2のフラグレジスタ23_1,24_1,;23_2,24_2,…の各ペアが図2に示す各フラグレジスタ15_1,15_2,…に対応する。
第1のフラグレジスタ23_1,23_2,…と第2のフラグレジスタ24_1,24_2,…には、ともに、一致結果ラッチ制御線25に出力される一致結果ラッチ信号S1が入力され、その一致結果ラッチ信号S1により各データ入力端子から入力された入力データがラッチされるが、第1のフラグレジスタ23_1,23_2,…には、一致結果ラッチ信号51の立ち上がりaの時点における入力データがラッチされ、第2のフラグレジスタ24_1,24_2,…には、一致結果ラッチ信号S1の立ち下がりbの時点の入力データがラッチされる。
【0010】
以上のように構成された連想メモリにおいては、以下のようにして一致検索が行われる。尚、ここでは図示のように、各メモリワード11_1,11_2,11_3,11_4,11_5,11_6…には、各格納データA,B,C,D,C,F,…が格納されているものとする。
ここで、各格納データを単独に検索する際は、検索データREF_DATAを入力して検索を行う際に、初回検索制御線22に初回検索タイミング信号S2を出力する。ここでは、検索データREF_DATAとしてデータ‘B’を入力したものとすると、データ‘B’が格納されたメモリワード11_2に対応する一致線14_2に論理‘1’の一致信号が出力されてアンドゲート20_2に入力され、また、これとともに初回検索タイミング信号S2がオアゲート21_2を経由してアンドゲート20_2に入力されるため、アンドゲート20_2から論理‘1’の信号が出力される。またこのとき、他の一致線14_1;14_3,14_4,…には論理‘0’の信号が出力されるため、それに対応する他のアンドゲート20_1;20_3,20_4,…からは論理‘0’の信号が出力される。
【0011】
アンドゲート20_2から出力された論理‘1’の信号は、一致結果ラッチ制御線25に出力された一致結果ラッチ信号S1の立ち上がりaのタイミングで第1のフラグレジスタ23_2にラッチされ、それに引き続く一致結果ラッチ信号S1の立ち下がりbのタイミングで第2のフラグレジスタ24_2にラッチされる。
【0012】
また第1のフラグレジスタ23_2および第2のフラグレジスタ24_2に論理‘1’の信号がラッチされる各タイミングで、他の第1フラグレジスタ23_1;23_3,23_4,…、および他の第2のフラグレジスタ24_1;24_3,;24_4,…には論理‘0’の信号がラッチされる。
このようにして各第2のフラグレジスタ24_1,24_2,24_3,…にラッチされた論理‘0’,‘1’,‘0’,…の信号が図2に示すプライオリティエンコーダ16に入力され、メモリワード11_2のアドレス信号ADが得られる。
【0013】
次に、データ幅が拡張された検索を行う場合について説明する。ここでは、2ワードに拡張された、データ‘B’とデータ‘C’からなる2ワードデータを検索する場合について説明する。
この場合、先ず上記と同様にして、データ‘B’の検索を行う。これにより、メモリワード11_2に対応する第1および第2のフラグレジスタ23_2,24_2に論理‘1’の信号がラッチされる。次に検索データREF_DATAとしてデータ‘C’を入力して検索を行うが、このときは初回検索制御線22には初回検索タイミング信号S2は出力せずに、初回検索制御線22は論理‘0’の状態に保っておく。検索データREF_DATAとしてデータ‘C’を入力して検索を行うと、図示の2つのメモリワード11_3,11_5にそれぞれ対応する一致線14_3,14_5に論理‘1’の一致信号が出力されるが、オアゲート21_3には、第2のフラグレジスタ24_2にラッチされている論理‘1’の信号が入力されているため一致線14_3の一致信号はアンドゲート20_3を通過し、第1および第2のフラグレジスタ23_3,24_3に、一致を表わす論理‘1’の信号がラッチされる。一方オアゲート21_5には、第2のフラグレジスタ24_4にラッチされている論理‘0’の信号が入力されているため一致線14_5の一致信号はアンドゲート20_5で遮断され、第1および第2のフラグレジタ23_5,24_5には不一致を表わす論理‘0’の信号がラッチされることになる。このようにして、データ‘B’とデータ‘C’のペアからなる2ワードデータの一致検出が行われる。3ワード以上のデータの一致検出も同様にして行われる。
【0014】
ただし、図3に示す連想メモリは、データ幅拡張機能を備えてはいるが、2ワード,3ワード等に拡張されるデータは、互いに隣接したメモリワードに所定の順序で格納されている必要があり、検索しようとする複数のデータが互いに離れたメモリワードに格納されている場合や逆の順序、例えばデータ‘C’,データ‘B’の順序に格納されている場合には複数のデータを結合した一致検出を行うことはできない。
【0015】
このような検索が必要となる場合のデータ構造を、図4に示す。図4には、それぞれ属性I,II,III,IVが付された4つのデータがセットとなって1つのデータ群を構成しているデータ構造が示されている。データ群および属性の概念を明確にするために一例を挙げると、例えば各群番号1,2,3,4,…毎の各データ群は各個人に属するデータであり、属性Iはその人の氏名,属性IIはその人の生年月日、属性IIIは住所、……等を示している。
【0016】
このように各属性I,II,III,IVが付された複数のデータからなるデータ群を連想メモリに格納しておいて検索を行う場合に、例えば群番号1のデータ群を検索する場合を例に説明すると、データ‘A’の検索とデータ‘B’の検索をこの順に行って、一致するデータ群の残りのデータ‘C’,‘D’を読み出すことだけではなく、例えばデータ‘A’の検索とデータ‘D’の検索を行って残りのデータ‘B’,‘C’を読み出したい場合や、データ‘B’の検索を先に行い、次にデータ‘A’の検索を行いたい場合がある。
【0017】
しかし、上述したワード幅拡張機能を備えた連想メモリ(図3参照)では、このような検索は不可能である。また上述した連想メモリでは、データ‘A’とデータ‘B’の検索を行った場合に、図4に示す群番号1の欄にある属性Iの付されたデータ‘A’と属性IIの付されたデータ‘B’とのペアと、群番号4の欄にある属性IIの付されたデータ‘A’と属性IIIの付されたデータ‘B’とのペアとの区別をすることはできず、例えば、‘氏名’という属性Iと‘生年月日’という属性IIの情報を基にそれらが一致する特定の個人の属性III,IVの情報を知ろうとしても、属性IIと属性IIIのペアでも一致が検出される等必要な情報以外のノイズが混入してしまうことになる。
【0018】
このような問題を解決した連想メモリが、本願出願人により提案されている(特願平5−248121号参照)。以下この提案に係る連想メモリについて説明する。
図5は、上記提案に係る連想メモリの一例を示すブロック図である。図3に示す連想メモリの各構成要素と同一の構成要素には、図3に付した符号と同一の符号を付して示し、相違点についてのみ説明する。
【0019】
各メモリワード11_1,11_2,…は、属性を格納する属性格納部11_1_1,11_2_1,…とデータを格納するデータ格納部11_1_2,11_2_2,…とで構成されており、各メモリワード11_1,11_2,…には、互いに対応する属性とデータとのペアからなる格納データがそれぞれ格納されている。ここでは、図示のように、各メモリワード11_1,11_2,11_3,11_4には、それぞれ、図4に示す群番号1に属する、属性I,データ‘A’、属性II,データ‘B’、属性III,データ‘C’、属性IV,データ‘D’が格納されている。また各メモリワード11_5,11_6,…には、それぞれ、図4に示す群番号2に属する、属性I,データ‘C’、属性II,データ‘F’、……が格納されている。また検索にあたっては、属性とデータとのペアからなる検索データREF_DATAが入力される。
【0020】
各メモリワード11_1,11_2には、そこに記憶された格納データ(属性及びデータの双方)が、入力された検索データ(属性及びデータの双方)と一致しているときに一致信号が出力される一致線14_1,14_2,…のほか、属性のみの一致不一致の信号が出力される属性一致線30_1,30_2,…が備えられている。尚、属性のみの一致も、属性及びデータの双方の一致も、従来の一致検出回路と同様に構成され、従来の一致検出回路は連想メモリの分野において極めて一般的な技術であるため、ここでの図示および説明は省略する。
【0021】
各メモリワード11_1,11_2に対応して第3のフラグレジスタ31_1,31_2,…が備えられており、各属性一致線30_1,30_2,…は対応する第3のフラグレジスタ31_1,31_2,…のデータ入力端子に延びている。また、この連想メモリには、図4に示す各データ群に属するデータが格納された複数のメモリワードからなるメモリワード群それぞれについて1本ずつデータ線32_1,32_2,…が備えられており、またデータ線32_1,32_2,…と各第2のフラグレジスタ24_1,24_2,…の出力端子との間には各第1のスイッチ33_1,33_2,…が備えられている。これらの第1のスイッチ33_1,33_2,…は具体的にはトランジスタ等を用いて構成される。後述する他のスイッチについても同様である。各第1のスイッチ33_1,33_2,…は、対応する各第3のフラグレジスタ31_1,31_2,…に論理‘1’の信号がラッチされているときに導通され、論理‘0’の信号がラッチされているときには遮断される。各第3のフラグレジスタ31_1,31_2,…は、一致結果ラッチ制御線25に出力される一致結果ラッチ信号S1の立ち下がりbのタイミングで、対応する属性一致線30_1,30_2,…の信号をラッチする。
【0022】
またデータ線32_1,32_2,…と各オアゲート21_1,21_2,…の入力端子との間に各第2のスイッチ34_1,34_2,…が備えられており、これら各第2のスイッチ34_1,34_2,…は、対応する属性一致線30_1,30_2,…の信号により、その信号が一致を表わす論理‘1’のときに導通状態、不一致を表わす論理‘0’の時に遮断状態となるように制御される。尚、この図5に示す連想メモリには、図3に示す連想メモリと異なり、図示の最上段のメモリワード11_1に対応するアンドゲート20_1の前段にもオアゲート21_1が備えられている。
【0023】
以上のように構成された連想メモリにおいて、一致検索は以下のようにして行われる。
1ワード分の単独のデータ検索、および連続した複数ワードの検索のうち第1回目の検索は、図3に示した従来のワード拡張機能付連想メモリの場合と同じであるためここでは説明は省略し、ここでは第1回目の検索において属性IIとデータ‘B’とからなる検索データREF_DATAによってメモリワード11_2に対応する第1および第2のメモリワード23_2,24_2に論理‘1’がラッチされたものとする。このとき、属性の一致を受けてメモリワード11_2に対応する属性一致線30_2に論理‘1’の信号が出力され、これにより、対応する第3のフラグレジスタ31_2にも論理‘1’の信号がラッチされ、対応する第1のスイッチ33_2がオンし、対応する第2のフラグレジスタ24_2に格納された、属性及びデータ双方の一致を表わす論理‘1’の信号がデータ線32_1に出力される。またこれとともに、対応する第2のスイッチ34_2もオンするが、第1回目の検索においてはこれは無用の動作である。
【0024】
次に、属性IVとデータ‘D’からなる検索データREF_DATAを入力して検索を行うものとする。このときは、図3の連想メモリの場合と同様、初回検索制御線22は論理‘0’に保持されている。このとき、属性の一致を受けてメモリワード11_4に対応する属性一致線30_4に論理‘1’の信号が出力され、これにより対応する第2のスイッチ34_4がオンし、データ線32_1に出力されていた、メモリワード11_2に対応する第2のフラグレジスタ24_2の論理‘1’の信号がオアゲート21_4を経由してアンドゲート20_4に入力される。このため、メモリワード11_4で属性IVとデータ‘D’の双方の一致が検出されて一致線14_4に論理‘1’の一致信号が出力され、一致結果ラッチ制御線25に出力される一致結果ラッチ信号S1により、対応する第1および第2のフラグレジスタ23_4,24_4に論理‘1’の信号がラッチされる。またこのとき、属性一致線30_4に出力された論理‘1’の信号が、対応する第3のフラグレジスタ31_4にラッチされ、対応する第1のスイッチ33_4がオンし、第2のフラグレジスタ24_4の論理‘1’の信号がデータ線32_1に出力される。またこの2回目の検索では、メモリワード11_2に対応する属性一致線30_2には属性の不一致を表わす論理‘0が出力されるため、対応する第3のフラグレジスタ31_2には‘0’が格納され、メモリワード11_2に対応する第1のスイッチ33_2はオフする。
【0025】
これにより、メモリワード11_4に対応する第2のフラグレジスタ24_4の論理‘1’の信号がプライオリティエンコーダ16(図2参照)に入力され、メモリワード11_4のアドレスが得られることになるが、メモリワード11_4には属性IVが格納されていることは予め分かっており、同一群内の例えば属性IIIのデータを読み出したいときは、得られたアドレスから1を引いてメモリワード11_3のアドレスを求め、そのアドレスをアドレスデコーダ17に入力してメモリワード11_3の内容を読み出せばよい。
【0026】
一方、2回目の検索時に、属性IVとデータ‘D’とからなる検索データに代わり、例えば属性IVとデータ‘B’とからなる検索データで検索が行われた場合、メモリワード11_4については、属性は一致するため第2のスイッチ34_4がオンし、データ線32_1に出力されている論理‘1’の信号が取り込まれるが、データが異なるため一致線14_4には不一致を表わす論理‘0’が出力され、第1及び第2のフラグレジスタ23_4,24_4には一致が検出されなかったことを示す論理‘0’がラッチされる。また、データ‘B’が一致するメモリワード11_2については属性が一致せず、したがって属性及びデータの双方も一致しない。
【0027】
以上のようにして、図5に示す連想メモリでは、同一の群内においては、互いに離れたメモリワードに記憶されたデータであっても、もしくはデータの順序を逆にして検索した場合であっても、検索を行うことができる。
ここで、図5に示す連想メモリにおけるデータ線32_1,32_2,…,は、1つの群に属するデータの数が予め定まっているものとしてその長さが固定されたものであるが、このように固定長のデータ線を備えると、1つの群に属するデータの数の最大を見積もり、最大のデータ数に対応した長さのデータ線を備える必要がある。これではその最大よりも少ない数のデータによりデータ群が構成される場合に無駄なメモリワードが発生することになる。そこで、1つの群に属するデータの数に合せてデータ線を可変長とすることが好ましい。
【0028】
図6は、可変長のデータ線を実現する一つの方式を示した模式図である。
データ線32が複数のメモリワード11_1,11_2,11_3,…に亘って延び、そのデータ線32には、最上端のメモリワード11_1を除く他のメモリワード11_2,11_3,…それぞれに対応する各スイッチ40_1,40_2,40_3,…が互いにシリーズに配置されている。これらの各スイッチ40_2,40_3,40_4,…は、対応するメモリワード11_2,11_3,11_4,…と、その直ぐ上段に隣接するメモリワード11_1,11_2,11_3,…との間に配置されている。それらのスイッチ40_2,40_3,40_4,…のうちの1つおきのスイッチ40_2,40_4,40_6,…は第1制御線41に出力される第1のスイッチ制御信号によりオンし、3つおきのスイッチ40_3,40_7,…は第2制御線42に出力される第2のスイッチ制御信号によりオンし、残りのスイッチのうち8つおきのスイッチ40_5,…は第3制御線43に出力される第3のスイッチ制御信号によりオンされる。
【0029】
1つのデータ群を構成するデータの数が2の場合は、第1制御線41に第1のスイッチ制御信号を出力することにより1つおきのスイッチ40_2,40_4,40_6,…をオンさせる。これにより各2つのメモリワード11_1,11_2;11_3,11_4;11_5,11_6;…毎に切断されたデータ線が形成される。また、1つのデータ群を構成するデータの数が4の場合は、第1制御線41に第1のスイッチ制御信号を出力するとともに第2制御線42に第2のスイッチ制御信号を出力する。すると、各4つのメモリワード11_1,11_2,11_3,11_4;11_5,11_6,…毎に切断されたデータ線が形成される。同様にして、1つのデータ群を構成するデータの数が8の場合は、第1制御線41、第2制御線42にそれぞれ第1および第2のスイッチ制御信号を出力するとともに、第3制御線43に第3のスイッチ制御信号を出力する。これにより各8つのメモリワード11_1,…,11_8;11_9…毎に切断されたデータ線が形成される。
【0030】
この方式によれば、1つのデータ群を構成するデータの数が2の倍数の場合はメモリワードに空きは生じないが、2の倍数以外の、例えば3,5,9等の場合空きのメモリワードが生じてしまうことになる。この空きのメモリワードが生じないように多数のスイッチ40_2,40_3,…を任意にオン,オフできるように構成すると、制御線の本数が多数本となり、またそれらの制御線にスイッチ制御信号を出力する制御回路が複雑となる。したがって、図6に示す方式は、データ線の長さを完全に任意に制御するには不向きである。
【0031】
図7は、可変のデータ線を実現するもう一つの方式を示した模式図である。
多数のメモリワードに亘ってデータ線32が延び、そのデータ線32に互いにシリーズに接続された、最上端のメモリワードを除く他のメモリワードそれぞれに対応する各スイッチ40_2,40_3,40_4,…が備えられている点は図6の場合と同じである。各メモリワードには、各属性格納部11_1_1,11_2_1,11_3_1,…が備えられており、それら属性格納部11_1_1,11_2_1,11_3_1,…には、図示の各属性I,II,III,IVがそれぞれ格納されている。この例は、属性格納部11_1_1,11_2_1,11_3_1,…に格納された属性が属性Iかそれ以外の属性II,III,IVかに応じて、属性Iの場合は対応するスイッチをオフのままとし、それ以外の属性II,III,IVの場合は対応するスイッチをオンするように構成したものである。このように構成すると、1つのデータ群を構成するデータの数がいくつであっても、また、データ数の異なるデータ群が混在していても、各データ群の先頭に属性Iのデータを配置することにより、自動的に過不足ない数のメモリワード毎に切断されたデータ線が形成されることになる。
【0032】
図8は、属性がIかそれ以外かを判定する属性判定回路の一例を示す回路図である。
ここでは属性Iに‘000’が割り当てられており、属性格納部11_i_1に格納された属性が属性I(‘000’)の場合オアゲートから‘0’が出力され、したがってトランジスタ40で構成されたスイッチはオフ状態となり、そのトランジスタ40の両側のデータ線が電気的に切断される。属性格納部11_i_1に格納された属性が属性I以外の属性の場合はオアゲートから‘1’が出力され、トランジスタ40はオン状態となり、そのトランジスタの両側のデータ線が接続される。
【0033】
このように、図5に示す連想メモリにおいて、1つのデータ群を構成するデータの数に応じてデータ線32_1,32_2,…の長さを調整することもできる。もちろん、属性データを利用するのではなく、専用の制御線によってスイッチを制御することによりデータ線の長さを調整してもよい。
【0034】
【発明が解決しようとする課題】
上記提案に係る連想メモリは、上述したように、1つのデータ群が格納されたメモリワード群内の互いに離れたアドレスの複数のメモリワードに跨る検索や、順序が逆の検索を許容する点では従来の連想メモリと比べ極立って優れているが、図5に示す構成では、例えば
(AおよびB)又は(XおよびY) ……… (1)
に合致するデータ群が存在するか否かといった、アンド(および)とオア(又は)とが入り混った検索を行なうことはできない。例えば図5に示すようなデータが格納されていた場合に、先ず、初回検索タイミング信号S2を入力して、属性IとデータAで検索すると、第2のメモリワード24 1が論理‘1’となる。次に初回検索タイミング信号S2は入力せずに、属性IIとデータBで検索すると、第2のメモリワード24 2が論理‘1’となるとともに、第2のメモリワード24 2は論理‘0’にリセットされる。ここまではよいが、次に、属性III とデータXで検索すると、初回検索タイミング信号S2を入力しても入力しなくても、図5に図示のいずれの第2のメモリワード24 1,24 2,……も論理‘0’となり、上記(1)式の検索に失敗する結果となる。これを回避するために、外部の、例えばマイクロコンピュータ等で、一連の検索(例えば上記(1)式の最初から最後まで)の途中で中間的な検索結果を調べる必要があり、極めて複雑なシステム構成となってしまい、検索速度の低下も招くという問題がある。
【0035】
本発明は、上記事情に鑑み、例えば上記(1)式のような複雑な論理の検索を、その一連の検索の途中で、その途中までの検索結果を外部からアクセスすることなく、可能とする連想メモリを提供することを目的とする。
【0036】
【課題を解決するための手段】
上記目的を解決する本発明の連想メモリは、複数の格納データを記憶しておき、検索データが入力され、入力された検索データに対応する格納データを検索する連想メモリにおいて、
(1)複数の格納データを各格納データ毎に記憶する複数のメモリワード
(2)上記複数のメモリワードそれぞれに対応して備えられた、検索の際に、入力された検索データと、上記複数のメモリワードそれぞれに格納された各格納データとの間に対応関係が存在することが検出された場合にその対応関係の存在を表わすヒットフラグを格納する複数のフラグレジスタ
(3)上記の複数のフラグレジスタのいずれかにヒットフラグが格納されたか否かを、複数回の検索それぞれについて順次格納するヒット列レジスタ
を備えたことを特徴とする。
【0037】
ここで、上記本発明の連想メモリは、上記(1)〜(3)に加え、
(4)上記メモリワードが、それぞれが複数の格納データの集合からなる複数のデータ群を構成する各格納データを、各格納データ毎に記憶するものであり、
(5)所定のメモリワードに記憶された格納データと入力された検索データとの間に対応関係が存在することが検出されたときに、その所定のメモリワードに対応するフラグレジスタにその対応関係の存在を表わすヒットフラグを格納する第1のモードと、今回の検索時に所定の第1のメモリワードにおいて対応関係が検出され、かつ、その第1のメモリワードに記憶された格納データが属するデータ群を構成する各格納データそれぞれを記憶する複数のメモリワードからなるメモリワード群に属する、その第1のメモリワードを除く他の任意の第2のメモリワードに対応するフラグレジスタにヒットフラグが格納されていた場合に、上記第1のメモリワードに対応するフラグレジスタにヒットフラグを格納するとともに上記第2のメモリワードに対応するフラグレジスタに格納されていたヒットフラグをリセットする第2のモードとを有する一致検出回路
を備えることが好ましい。
【0038】
また、上記本発明の連想メモリは、1つのデータ群内の複数の格納データを互いに識別するための属性と属性が付されたデータとのペアからなる各格納データを上記複数のメモリワードそれぞれに記憶しておき、属性とデータとのペアからなる検索データを用いて検索を行なうものであってもよい。
【0039】
【作用】
本発明の連想メモリは、上記(3)のヒット列レジスタを備えたものであるため、そのヒット列レジスタに一連の検索の間の中間の検索結果が格納されることになり、種々の論理検索に対応できる連想メモリが実現する。
【0040】
【実施例】
以下、本発明の実施例について説明する。
図1は、本発明の連想メモリの一実施例の、本発明に特徴的な部分を示した回路ブロック図である。この回路ブロックには、図5に示す連想メモリをベースにして、その図5に示す連想メモリの一部と、図5に示す連想メモリに追加された部分が示されている。
【0041】
ここでは、図示のように、各メモリワード11 1,11 2,…,11 m,…,11 n,…に、それぞれ、各属性I〜IVと各データG,H,I,J,A,B,E,E,…,A,B,C,C,…,A,A,C,Fが格納されているものとする。この実施例では、属性レジスタ12 1に格納された属性データと、外部から入力され、入力データレジスタ12 2に格納された入力データとのペアを検索データとして各メモリワード11 1,11 2,…,11 m,…,11 n,…に入力して検索を行なう。
【0042】
この連想メモリには、検索モードレジスタ51が備えられており、この検索モードレジスタ51には、一連の検索(ここでは4回の検索とする)のうちの各検索において、初回検索タイミング信号S2を入力するか否かを定めるフラグが格納される。ここでは、後述する検索を行なうために、検索モードレジスタ51には、‘1,0,1,0’が格納されており、一連の4回の検索のうち、最初の検索では初回検索タイミング信号S2が入力され、2回目の検索では初回検索タイミング信号S2は入力されず、3回目の検索では、初回検索と見なされて、初回検索タイミング信号S2が入力され、4回目の検索では初回検索タイミング信号S2は入力されない。
【0043】
また、各メモリワード11 1,11 2,…,11 m,…,11 n,…に対応して、検索の際に各メモリワード11 1,11 2,…,11 m,…,11 n,…で一致が検出されたか否かを示すヒットフラグが格納されるフラグレジスタ24 1,24 2,…,24 m,…,24 n,…が備えられている。このフラグレジスタ24 1,24 2,…,24 m,…,24 n,…は、図5に示す連想メモリの第2のフラグレジスタ24 1,24 2,…に相当する。
【0044】
またこの連想メモリには、全てのメモリワード11 1,11 2,…,11
m,…,11 n…に跨って延びる検索線52が備えられている。
検索線52とグラウンドとの間には、各メモリワード11 1,11 2,…,11 m,…,11 n,…それぞれに対応して備えられた、互いに直列に接続された各2つのトランジスタ53 1,54 1;53 2,54 2;…;53 m,54 m;…;53 n,54 n;…が配置されている。各2つのトランジスタ53 1,54 1;53 2,54 2;…;53 m,54 m;…;53 n,54 n;…のうちの一方のトランジスタ53 1,53 2,…,53 m,…,53 n,…のゲートは、対応するフラグレジスタ24 1,24 2,…,24 m,…,24 n,…に接続されており、もう一方のトランジスタ54 1,54 2,…,54 m,…,54 n,…のゲートは、共通の一本の制御線55に接続されている。
【0045】
また、検索線51の、図1の下側の一端は、その検索線51の電荷のチャージの状態を検出して論理‘0’又は論理‘1’を検出するセンスアンプ56を構成するセンスアンプインバータ57の入力に接続されている。またこのセンスアンプ56には、センスアンプインバータ57の入力と電源VDDとの間に配置されゲートがセンスアンプインバータ57の出力と接続されたフィードバック用Pチャンネルトランジスタ58と、センスアンプインバータ57の入力と電源VDDとの間に配置されゲートが制御線55に接続されたプリチャージ用Pチャンネルトランジスタ59が備えられている。
【0046】
また、センスアンプインバータ57の出力は、ヒット列レジスタ60を構成する、この実施例では4つのフリップフロップ60 1,60 2,60 3,60 4に接続されている。各フリップフロップ60 1,60 2,60 3,60 4には、一連の検索を構成する各検索毎に、それぞれ、セットパルスS3,S4,S5,S6が入力され、センスアンプ56から出力された論理‘0’又は論理‘1’の信号がそれぞれ格納される。
【0047】
以上のような構成を備えた連想メモリを用いて、ここでは、
{(属性III にデータCが存在し)かつ(属性IVにデータDが存在する)}
もしくは
{(属性IにデータAが存在し)かつ(属性IIにデータBが存在する)}……(2)
の検索を行なうものとする。
先ず、属性レジスタ12 1に属性III がセットされ、入力レジスタ12 2にデータCがセットされ、属性III とデータCにより1回目の検索が行なわれる。このときには、初回検索タイミング信号S2が入力される。
【0048】
すると、メモリワード11 m+2とメモリワード11 n+2で一致が検出され、フラグレジスタ24 m+2とフラグレジスタ24 n+2に一致が検出されたことを示す論理‘1’がセットされる。他の全てのフラグレジスタは、もし論理‘1’が格納されていたとしても全て論理‘0’にリセットされる。
このとき、制御線55に論理‘0’の信号が印加されトランジスタ59を介して検索線52がプリチャージされており、フラグレジスタ24 1,24 2,…,24 m,…,24 n,…の論理が定まると制御線55が論理‘1’に変化し、プリチャージが終了するとともにトランジスタ54 1,54 2,54 m,…,54 n,…が‘オン’となり、フラグレジスタ24 1,24 2,…,24 m,…,24 m,…のいずれかに論理‘1’がセットされていると、トランジスタ53 1,53 2,…,53 m,…,53 n,…のうちの、論理‘1’のセットされたフラグレジスタ(上記の場合フラグレジスタ24 m+2とフラグレジスタ24 n+2)に対応するトランジスタ(上記の場合トランジスタ53 m+2とトランジスタ53 n+2)が‘オン’となり、検索線52の電荷がディスチャージされ、センスアンプインバータ57の出力が論理‘1’となる。このセンスアンプインバータ57の出力が確定した時点でセットパルスS3が入力され、これにより、ヒット列レジスタ60を構成する、図1の左端のフリップフロップ60 1に、1回目の検索で一致が検出されたことを示す論理‘1’がセットされる。
【0049】
次に、属性レジスタ12 1に属性IVがセットされ、入力レジスタ12 2にデータDがセットされ、属性IVとデータDにより2回目の検索が行なわれる。このときには、初回検索タイミング信号S2は入力されない。
この検索では一致は検出されず、全てのフラグレジスタ24 1,24 2,…,24 m,…,24 n,…が論理‘0’にリセットされる。すなわち、(2)式の前半の部分、
(属性III にデータCが存在し)かつ(属性IVにデータDが存在する)…(3)
というデータ群は検出されなかったことになる。
【0050】
全てのフラグレジスタ24 1,24 2,…,24 m,…,24 n,…が論理‘0’にリセットされているため、今度は検査線52はプリチャージされたままの状態にとどまり、センスアンプインバータ57からは論理‘0’が出力され、セットパルスS4が入力され、ヒット列レジスタ60の、図示の左から2番目のフリップフロップ60 2に論理‘0’が格納される。
【0051】
次に、属性IとデータAで検索が行なわれ、かつ初回検索タイミング信号S2が入力され、3つのメモリワード11 5,11 m,11 nで一致が検出されて、それぞれに対応するフラグレジスタ24 5,24 m,24 nが論理‘1’にセットされ、センスアンプインバータ57から論理‘1’が出力され、セットパルスS5の入力を受けて、ヒット列レジスタ60の、図示の左側から3番目のフリップフロップ60 3に論理‘1’がセットされる。
【0052】
次に属性IIとデータBで検索が行なわれ、アンド検索であるため、初回検索タイミング信号S2は入力されない。このとき、2つのメモリワード11 m+1,11 n+1で一致が検出され、対応するフラグレジスタ24 6,24 m+1に論理‘1’がセットされる。またこれとともに、フラグレジスタ24 5,24 m,24 nは論理‘0’にリセットされる。また、一致が検出されたことを受けてセンスアンプインバータ57から論理‘1’が出力され、セットパルスS6の入力を受けて、ヒット列レジスタ60の、図示の右端のフリップフロップ60 4に論理‘1’が格納される。
【0053】
ヒット列レジスタ60が備えられていない図5に示す連想メモリの場合、フラグレジスタ24 1,24 2,…,24 m,…,24 n,…には最終の検索結果しか残らないために、上記の(2)式のような検索では中間の結果を知ることはできない。(2)式の例では、(3)式の後に、
(属性IにデータAが存在し)かつ(属性IIにデータBが存在する)…(4)
を満足するデータ群が存在するために、図5に示す構成の連想メモリでも最終的に(4)式を満足したことが検出されるが、(4)式が先に来て次に(3)式が来る場合には、図5に示す構成の連想メモリでは、後半の(3)式の検索結果のミスヒットしか検出されないことになる。
【0054】
これに対し、図1に示す実施例ではヒット例レジスタ60を備えたため、一連の検索を構成する各回毎の検索の結果が保持され、したがって種々の検索条件に対応することができる。しかも、図1に示すように、連想メモリを構成する全てのメモリワードに跨って1系統だけヒット列レジスタ60およびそれに付属する回路を備えるだけで済み、連想メモリ全体としては極くわずかな要素の追加にとどめることができる。
【0055】
尚、上記実施例は、一連の検索として4回の検索を行なうことを例にして図示および説明を行なったが、本発明では、4回の検索を一連の検索とするものに限られないことはもちろん、ヒット列レジスタ60を構成するフリップフロップとして一連の検索を構成する検索の最大回数以上の数のフリップフロップに備えておき、一連の検索としての検索回数を可変に構成してもよい。
【0056】
【発明の効果】
以上説明したように、本発明の連想メモリは、複数のフラグレジスタのいずれかにヒットフラグが格納されたか否かを、複数回の検索をそれぞれについて順次格納するヒット列レジスタを備えたため、一連の検索を構成する複数回の各検索毎の中間的な検索結果を、その一連の検索が終了した後にまとめて知ることができ、システムの簡単化、検索連度の向上に寄与する。また、これに伴う回路要素の付加は連想メモリ全体として極くわずかで済む。
【図面の簡単な説明】
【図1】本発明の連想メモリの一実施例の、本発明に特徴的な部分を示した回路図である。
【図2】連想メモリの一例を表わした回路ブロック図である。
【図3】データ拡張機能を備えた連想メモリの一例を示すブロック図である。
【図4】群構造のデータの一例を示す図である。
【図5】連想メモリの一例を示すブロック図である。
【図6】可変長のデータ線を実現する一つの方式を示した模式図である。
【図7】可変のデータ線を実現するもう一つの方式を示した模式図である。
【図8】属性判定回路の一例を示す回路図である。
【符号の説明】
11_1,11_2,… メモリワード
11_1_1,11_2_1,… 属性格納部
11_1_2,11_2_2,… データ格納部
14_1,14_2,… 一致線
16 プライオリティエンコーダ
17 アドレスデコータ
18_1,18_2,… ワード線
20_1,20_2,… アンドゲート
21_1,21_2,… オアゲート
23_1,23_2,… 第1のフラグレジスタ
24_1,24_2,… 第2のフラグレジスタ
25 一致結果ラッチ制御線
30_1,30_2,… 属性一致線
31_1,31_2,… 第3のフラグレジスタ
32_1,32_2,… データ線
33_1,33_2,… 第1スイッチ
34_1,34_2,… 第2スイッチ
52 検索線
56 センスアンプ
60 ビット列レジスタ
[0001]
[Industrial applications]
The present invention provides an associative function having a function of extending the data width for performing a match search to a plurality of words, that is, a function of detecting a match as a whole when a match is detected in a plurality of successive searches. Regarding memory.
[0002]
[Prior art]
Conventionally, each digital data is stored in each of a plurality of arranged memory words, search data is input, and the input search data has a bit pattern that matches all or a predetermined part of the bit pattern. 2. Description of the Related Art An associative memory (Content Addressable Memory) for searching a memory word in which digital data is stored has been proposed.
[0003]
FIG. 2 is a circuit block diagram illustrating an example of the associative memory.
The associative memory 10 is provided with a large number of memory words 11_1, 11_2,..., 11_n composed of m-bit memory cells arranged in the horizontal direction in FIG. The associative memory 10 includes a search data register 12 into which one-word search data is input and latched. The bit pattern of all or a predetermined part of the search data latched in the search data register 12 and each memory word .., 11_n are compared with the bit patterns of the portions corresponding to the bit patterns in the stored data, and are provided corresponding to the respective memory words 11_1, 11_2,..., 11_n. , 14_n corresponding to the memory words 11_1, 11_2,..., 11_n having the same bit pattern as the logic lines “1”, 14_2,. ) Is output. The other matching lines 14_1, 14_2,..., 14_n remain at logic ‘0’ (here, 0V).
[0004]
The signals output to the match lines 14_1, 14_2,..., 14_n are stored in the flag registers 15_1, 15_2,. Here, as an example, as shown, '0', '1', '1', '0', ..., '0', '0' are stored in the flag registers 15_1, 15_2, ..., 15_n, respectively. It shall have been done. The signals stored in the flag registers 15_1, 15_2,..., 15_n are input to the priority encoder 16. The encode pulse EP is input to the priority encoder 16 and each time the encode pulse EP is input, a flag register (here, a flag register 15_2 and a flag register 15_2) storing a signal of logic '1' in accordance with a predetermined priority order. The address signal AD corresponding to the flag register having the higher priority among the two registers 15_3) is sequentially output. Here, the smaller the suffix, the higher the priority. Therefore, when only one encode pulse EP is input, the memory address corresponding to the flag register 15_2 is output. The address signal AD output from the priority encoder 16 is input to the address decoder 17 as needed. The address decoder 17 decodes the input address signal AD, and inputs the input address of the word lines 18_1, 18_2,..., 18_n provided corresponding to the respective memory words 11_1, 11_2,. An access signal (here, a logical “1” signal) is output to any one of the word lines (here, the word line 18_2) corresponding to the signal AD. Thereby, the stored data stored in the memory word 11_2 corresponding to the word line 18_2 to which the access signal has been output is read out to the output register 19.
[0005]
Next, when another encode pulse EP is input, the address of the memory word 11_3 corresponding to the flag register 15_3 can be obtained.
As described above, the associative memory 10 searches the stored data stored in the many memory words 11_1, 11_2,..., 11_n using all or a predetermined part of the search data, and This is a memory configured to be able to obtain the address of a memory word and to read out the entire data stored in the memory word as needed.
[0006]
In the associative memory having the basic configuration as described above, a technique has been proposed in which the data width to be searched for a match is extended to two or more words.
FIG. 3 is a block diagram illustrating an example of an associative memory having a data extension function. The components corresponding to the components of the associative memory shown in FIG. 2 are denoted by the same reference numerals as those in FIG. 2, and redundant description of the components will be omitted.
[0007]
Each of the match lines 14_1, 14_2,... Extending from each of the memory words 11_1, 11_2,... Is connected to one input terminal of each of the AND gates 20_1, 20_2,. Are connected to the other input terminals of the AND gates 20_1, 20_2,..., Respectively, and one input terminal of each OR gate 21_2, 21_3,. 22. However, the OR gate corresponding to the uppermost AND gate 20_1 in the drawing is omitted, and the first search control line 22 is directly connected to the input terminal of the AND gate 20_1.
[0008]
The output terminal of each AND gate 20_1, 20_2,... Is connected to the data input terminal of each first flag register 23_1, 23_2,..., And the output terminal of each first flag register 23_1, 23_2,. Are connected to the input terminals of the flag registers 24_1, 24_2,. The output terminals of the second flag registers 24_1, 24_2,... Are connected to the priority encoder 16 (not shown in FIG. 3) shown in FIG. 2, and the OR gate 21_2 corresponding to the memory word adjacent to the lower part in FIG. , 21_3,....
[0009]
Each pair of the first and second flag registers 23_1, 24_1, 23_2, 24_2,... Corresponds to each flag register 15_1, 15_2,.
The first flag registers 23_1, 23_2,... And the second flag registers 24_1, 24_2,... Both receive the match result latch signal S1 output to the match result latch control line 25, and the match result latch signal. The input data input from each data input terminal is latched by S1, but the first flag registers 23_1, 23_2,... Latch the input data at the time of the rising edge a of the match result latch signal 51, and the second flag register 23_1, 23_2,. The input data at the time of the falling b of the match result latch signal S1 is latched in the flag registers 24_1, 24_2,.
[0010]
In the associative memory configured as described above, a match search is performed as follows. Here, as shown in the figure, each of the memory words 11_1, 11_2, 11_3, 11_4, 11_5, 11_6,... Stores stored data A, B, C, D, C, F,. I do.
Here, when each stored data is searched independently, the first search timing signal S2 is output to the first search control line 22 when the search is performed by inputting the search data REF_DATA. Here, assuming that data 'B' is input as search data REF_DATA, a match signal of logic '1' is output to match line 14_2 corresponding to memory word 11_2 storing data 'B', and AND gate 20_2 is output. The first search timing signal S2 is also input to the AND gate 20_2 via the OR gate 21_2, so that a signal of logic “1” is output from the AND gate 20_2. Also, at this time, a signal of logic '0' is output to the other matching lines 14_1; 14_3, 14_4,..., And the corresponding AND gates 20_1; 20_3, 20_4,. A signal is output.
[0011]
The signal of logic “1” output from the AND gate 20_2 is latched by the first flag register 23_2 at the timing of the rising edge a of the match result latch signal S1 output to the match result latch control line 25, and the subsequent match result The signal is latched by the second flag register 24_2 at the timing of the falling b of the latch signal S1.
[0012]
Further, at each timing when the signal of logic '1' is latched in the first flag register 23_2 and the second flag register 24_2, the other first flag registers 23_1; 23_3, 23_4,. Registers 24_1; 24_3, 24_4,... Latch a signal of logic “0”.
The signals of logic '0', '1', '0',... Latched in the second flag registers 24_1, 24_2, 24_3,... Are input to the priority encoder 16 shown in FIG. The address signal AD of the word 11_2 is obtained.
[0013]
Next, a case in which a search with an extended data width is performed will be described. Here, a case will be described in which two-word data consisting of data "B" and data "C" expanded to two words is searched.
In this case, a search for data "B" is first performed in the same manner as described above. As a result, the signal of logic “1” is latched in the first and second flag registers 23_2 and 24_2 corresponding to the memory word 11_2. Next, a search is performed by inputting data 'C' as search data REF_DATA. At this time, the first search control line 22 does not output the first search timing signal S2, and the first search control line 22 has a logic '0'. Keep in the state. When data “C” is input as search data REF_DATA and a search is performed, a match signal of logic “1” is output to match lines 14_3 and 14_5 corresponding to the two memory words 11_3 and 11_5 shown in FIG. Since the signal of logic '1' latched in the second flag register 24_2 is input to 21_3, the match signal on the match line 14_3 passes through the AND gate 20_3, and the first and second flag registers 23_3 , 24_3, a signal of logic '1' indicating a match is latched. On the other hand, since the signal of logic '0' latched in the second flag register 24_4 is input to the OR gate 21_5, the match signal of the match line 14_5 is cut off by the AND gate 20_5, and the first and second flag registers 23_5 and 24_5 are latched with a signal of logic '0' indicating mismatch. In this way, two-word data consisting of a pair of data 'B' and data 'C' is detected as coincident. Match detection of data of three or more words is performed in the same manner.
[0014]
However, the associative memory shown in FIG. 3 has a data width extending function, but data expanded to two words, three words, etc., must be stored in a predetermined order in adjacent memory words. In the case where a plurality of data to be searched are stored in memory words separated from each other or in the reverse order, for example, in the order of data 'C' and data 'B', a plurality of data are stored. No combined match detection is possible.
[0015]
FIG. 4 shows a data structure when such a search is required. FIG. 4 shows a data structure in which four data to which attributes I, II, III, and IV are respectively provided as a set to form one data group. To clarify the concepts of the data group and the attribute, for example, each data group of each group number 1, 2, 3, 4,... Is data belonging to each individual, and the attribute I is The name and attribute II indicate the date of birth of the person, and the attribute III indicates the address,...
[0016]
When a data group consisting of a plurality of data to which the attributes I, II, III, and IV are assigned is stored in an associative memory and a search is performed, for example, a data group with a group number 1 is searched. For example, the search for the data "A" and the search for the data "B" are performed in this order, and not only the remaining data "C" and "D" of the matching data group are read, but also the data "A". If you want to read the remaining data 'B' and 'C' by searching for 'and data' D ', or search for data' B 'first, then search for data' A ' Sometimes you want to.
[0017]
However, such a search is impossible with the associative memory having the word width expansion function described above (see FIG. 3). Further, in the above-mentioned associative memory, when data "A" and data "B" are searched, data "A" and data II with attribute I in the column of group number 1 shown in FIG. Can be distinguished from the pair of the data "B" with the attribute II and the data "B" with the attribute II and the data "B" with the attribute III in the column of the group number 4. For example, based on the information of the attribute I of "name" and the information of attribute II of "date of birth", even if the user tries to know the information of the attributes III and IV of a specific individual matching them, Even in the case of a pair, noise other than necessary information is mixed, for example, a match is detected.
[0018]
An associative memory that solves such a problem has been proposed by the present applicant (see Japanese Patent Application No. 5-248121). Hereinafter, the associative memory according to this proposal will be described.
FIG. 5 is a block diagram showing an example of the associative memory according to the above proposal. The same components as those of the associative memory shown in FIG. 3 are denoted by the same reference numerals as those shown in FIG. 3, and only different points will be described.
[0019]
Each of the memory words 11_1, 11_2,... Includes an attribute storage unit 11_1_1, 11_2_1,... For storing attributes, and data storage units 11_1_2, 11_2_2,. Stores stored data composed of pairs of attributes and data corresponding to each other. Here, as shown in the figure, each of the memory words 11_1, 11_2, 11_3, and 11_4 has attribute I, data 'A', attribute II, data 'B', and attribute belonging to the group number 1 shown in FIG. III, data 'C', attribute IV, data 'D' are stored. Each of the memory words 11_5, 11_6,... Stores an attribute I, data “C”, an attribute II, data “F”,. In the search, search data REF_DATA including a pair of an attribute and data is input.
[0020]
A match signal is output to each of the memory words 11_1 and 11_2 when the stored data (both attributes and data) stored therein matches the input search data (both attributes and data). In addition to the matching lines 14_1, 14_2,..., There are provided attribute matching lines 30_1, 30_2,. Note that the matching of only the attribute and the matching of both the attribute and the data are configured in the same manner as the conventional match detection circuit, and the conventional match detection circuit is a very common technique in the field of associative memory. And illustration thereof will be omitted.
[0021]
There are provided third flag registers 31_1, 31_2,... Corresponding to the respective memory words 11_1, 11_2, and each attribute match line 30_1, 30_2,. Extends to the input terminal. Further, the associative memory is provided with one data line 32_1, 32_2,... For each of a memory word group including a plurality of memory words storing data belonging to each data group shown in FIG. The first switches 33_1, 33_2,... Are provided between the data lines 32_1, 32_2,... And the output terminals of the second flag registers 24_1, 24_2,. These first switches 33_1, 33_2,... Are specifically configured using transistors and the like. The same applies to other switches described later. Each of the first switches 33_1, 33_2,... Becomes conductive when the corresponding third flag register 31_1, 31_2,. It is shut off when it is done. The third flag registers 31_1, 31_2,... Latch the signals of the corresponding attribute match lines 30_1, 30_2,... At the falling edge b of the match result latch signal S1 output to the match result latch control line 25. I do.
[0022]
Are provided between the data lines 32_1, 32_2,... And the input terminals of the respective OR gates 21_1, 21_2,..., And the second switches 34_1, 34_2,. Are controlled by signals on the corresponding attribute match lines 30_1, 30_2,... So that the signal is in a conductive state when the signal is a logic “1” indicating a match, and is turned off in a logic “0” indicating a mismatch. . The associative memory shown in FIG. 5 differs from the associative memory shown in FIG. 3 in that an OR gate 21_1 is also provided before the AND gate 20_1 corresponding to the uppermost memory word 11_1 in the figure.
[0023]
In the associative memory configured as described above, the match search is performed as follows.
Since the single data search for one word and the first search among a plurality of continuous words are the same as those of the conventional associative memory with a word extension function shown in FIG. 3, the description is omitted here. Here, in the first search, logic “1” is latched in the first and second memory words 23_2 and 24_2 corresponding to the memory word 11_2 by the search data REF_DATA including the attribute II and the data “B”. Shall be. At this time, in response to the attribute match, a signal of logic '1' is output to the attribute match line 30_2 corresponding to the memory word 11_2, whereby the signal of logic '1' is also output to the corresponding third flag register 31_2. The signal is latched, the corresponding first switch 33_2 is turned on, and the signal of logic '1', which is stored in the corresponding second flag register 24_2 and indicates the coincidence of both the attribute and the data, is output to the data line 32_1. At the same time, the corresponding second switch 34_2 is also turned on, but this is an unnecessary operation in the first search.
[0024]
Next, it is assumed that search is performed by inputting search data REF_DATA including attribute IV and data 'D'. At this time, as in the case of the associative memory of FIG. 3, the initial search control line 22 is held at logic "0". At this time, in response to the attribute match, a signal of logic '1' is output to the attribute match line 30_4 corresponding to the memory word 11_4, whereby the corresponding second switch 34_4 is turned on and output to the data line 32_1. Further, a signal of logic '1' of the second flag register 24_2 corresponding to the memory word 11_2 is input to the AND gate 20_4 via the OR gate 21_4. Therefore, a match between the attribute IV and the data 'D' is detected in the memory word 11_4, a match signal of logic '1' is output to the match line 14_4, and the match result latch output to the match result latch control line 25 is output. The signal of logic “1” is latched in the corresponding first and second flag registers 23_4 and 24_4 by the signal S1. At this time, the signal of logic “1” output to the attribute match line 30_4 is latched by the corresponding third flag register 31_4, the corresponding first switch 33_4 is turned on, and the signal of the second flag register 24_4 is A signal of logic “1” is output to the data line 32_1. In the second search, a logic '0' indicating an attribute mismatch is output to the attribute match line 30_2 corresponding to the memory word 11_2, and '0' is stored in the corresponding third flag register 31_2. , The first switch 33_2 corresponding to the memory word 11_2 is turned off.
[0025]
As a result, the signal of logic '1' of the second flag register 24_4 corresponding to the memory word 11_4 is input to the priority encoder 16 (see FIG. 2), and the address of the memory word 11_4 is obtained. It is known in advance that attribute IV is stored in 11_4, and when it is desired to read, for example, data of attribute III in the same group, 1 is subtracted from the obtained address to obtain the address of memory word 11_3. What is necessary is just to input the address to the address decoder 17 and read out the contents of the memory word 11_3.
[0026]
On the other hand, at the time of the second search, if the search is performed using the search data including the attribute IV and the data “B” instead of the search data including the attribute IV and the data “D”, for the memory word 11_4, Since the attributes match, the second switch 34_4 is turned on, and the signal of logic “1” output to the data line 32_1 is taken in. However, since the data is different, the logic “0” indicating mismatch does not appear on the match line 14_4. The logic "0" is output and latched in the first and second flag registers 23_4 and 24_4 to indicate that no match was detected. Also, the attribute does not match for the memory word 11_2 to which the data 'B' matches, and therefore both the attribute and the data do not match.
[0027]
As described above, in the associative memory shown in FIG. 5, in the same group, even if data stored in memory words separated from each other is searched or data is searched in reverse order. Even a search can be performed.
Here, the data lines 32_1, 32_2,... In the associative memory shown in FIG. 5 have fixed lengths assuming that the number of data belonging to one group is predetermined. When a fixed-length data line is provided, it is necessary to estimate the maximum number of data belonging to one group and provide a data line having a length corresponding to the maximum number of data. In this case, useless memory words are generated when a data group is constituted by a smaller number of data than the maximum. Therefore, it is preferable that the data lines have a variable length according to the number of data belonging to one group.
[0028]
FIG. 6 is a schematic diagram showing one method for realizing a variable-length data line.
A data line 32 extends over a plurality of memory words 11_1, 11_2, 11_3,..., And the data line 32 has switches corresponding to the other memory words 11_2, 11_3,. 40_1, 40_2, 40_3,... Are arranged in series with each other. These switches 40_2, 40_3, 40_4,... Are arranged between the corresponding memory words 11_2, 11_3, 11_4,... And the memory words 11_1, 11_2, 11_3,. Each of the switches 40_2, 40_4, 40_6,... Among the switches 40_2, 40_3, 40_4,... Is turned on by the first switch control signal output to the first control line 41, and every third switch is turned on. , 40_3, 40_7,... Are turned on by the second switch control signal output to the second control line 42, and every third switch 40_5,. Is turned on by the switch control signal of.
[0029]
When the number of data constituting one data group is 2, a first switch control signal is output to the first control line 41 to turn on every other switch 40_2, 40_4, 40_6,. Thus, data lines cut for each of the two memory words 11_1, 11_2; 11_3, 11_4; 11_5, 11_6; are formed. When the number of data constituting one data group is 4, the first switch control signal is output to the first control line 41 and the second switch control signal is output to the second control line 42. Then, data lines cut for each of the four memory words 11_1, 11_2, 11_3, 11_4; 11_5, 11_6,... Are formed. Similarly, when the number of data constituting one data group is 8, the first and second switch control signals are output to the first control line 41 and the second control line 42, respectively, and the third control A third switch control signal is output on line 43. .., 11_8; 11_9,..., And data lines cut off for each of the eight memory words 11_1,.
[0030]
According to this method, when the number of data constituting one data group is a multiple of 2, no free space is generated in the memory word, but when the number of data other than a multiple of 2, for example, 3, 5, 9, or the like, an empty memory is used. Words will result. If a large number of switches 40_2, 40_3,... Can be turned on and off arbitrarily so as not to generate this empty memory word, the number of control lines becomes large and switch control signals are output to those control lines. A complicated control circuit is required. Therefore, the method shown in FIG. 6 is not suitable for completely arbitrarily controlling the length of the data line.
[0031]
FIG. 7 is a schematic diagram showing another method for realizing a variable data line.
A data line 32 extends over a number of memory words, and switches 40_2, 40_3, 40_4,... Corresponding to each of the other memory words except the uppermost memory word are connected to the data line 32 in series. The points provided are the same as those in FIG. Each memory word is provided with attribute storage units 11_1_1, 11_2_1, 11_3_1,..., And the attribute storage units 11_1_1, 11_2_1, 11_3_1,. Is stored. In this example, according to whether the attribute stored in the attribute storage units 11_1_1, 11_2_1, 11_3_1,... Is the attribute I or the other attributes II, III, IV, in the case of the attribute I, the corresponding switch is kept off. In the case of other attributes II, III and IV, the corresponding switches are turned on. With this configuration, the attribute I data is placed at the head of each data group, regardless of the number of data that constitutes one data group, and even if data groups with different numbers of data are mixed. As a result, automatically cut data lines are formed for every number of memory words equal to the number of memory words.
[0032]
FIG. 8 is a circuit diagram illustrating an example of an attribute determination circuit that determines whether an attribute is I or other.
Here, '000' is assigned to the attribute I, and when the attribute stored in the attribute storage unit 11_i_1 is the attribute I ('000'), '0' is output from the OR gate. Is turned off, and the data lines on both sides of the transistor 40 are electrically disconnected. If the attribute stored in the attribute storage unit 11_i_1 is an attribute other than the attribute I, "1" is output from the OR gate, the transistor 40 is turned on, and the data lines on both sides of the transistor are connected.
[0033]
Thus, in the associative memory shown in FIG. 5, the length of the data lines 32_1, 32_2,... Can be adjusted according to the number of data constituting one data group. Of course, instead of using the attribute data, the length of the data line may be adjusted by controlling the switch using a dedicated control line.
[0034]
[Problems to be solved by the invention]
The associative memory according to the above proposal is, as described above, in that a search over a plurality of memory words at addresses apart from each other in a memory word group in which one data group is stored and a search in a reverse order are allowed. Although it is extremely superior to the conventional associative memory, the configuration shown in FIG.
(A and B) or (X and Y) ... (1)
It is not possible to perform a mixed search of AND (or) and OR (or), such as whether or not there is a data group that matches. For example, when the data as shown in FIG. 5 is stored, first, when the first search timing signal S2 is input and the search is performed with the attribute I and the data A, the second memory word 24 1 becomes logic "1". Next, when the search is performed with the attribute II and the data B without inputting the first search timing signal S2, the second memory word 24 2 becomes logical "1" and the second memory word 24 2 is reset to logic '0'. Up to this point, next, when searching with the attribute III and the data X, whether or not the first search timing signal S2 is input, any of the second memory words 24 shown in FIG. 1,24 ,... Also become logical "0", which results in a failure in the search of the expression (1). In order to avoid this, it is necessary to examine an intermediate search result in the middle of a series of searches (for example, from the beginning to the end of the above formula (1)) by an external device such as a microcomputer. However, there is a problem that the search speed is reduced.
[0035]
In view of the above circumstances, the present invention makes it possible to perform a complicated logic search, for example, as in the above equation (1), without accessing the search results up to the middle during a series of searches. An object is to provide an associative memory.
[0036]
[Means for Solving the Problems]
The associative memory of the present invention that solves the above object stores a plurality of stored data, and the search data is input, and in the associative memory that searches the stored data corresponding to the input search data,
(1) A plurality of memory words for storing a plurality of stored data for each stored data
(2) There is a correspondence between search data input at the time of a search provided for each of the plurality of memory words and each of the stored data stored in each of the plurality of memory words. A plurality of flag registers for storing hit flags indicating the existence of the corresponding relationship when it is detected that
(3) A hit column register for sequentially storing whether a hit flag is stored in any of the plurality of flag registers for each of a plurality of searches.
It is characterized by having.
[0037]
Here, the associative memory of the present invention includes the above (1) to (3),
(4) The memory word stores, for each stored data, each stored data constituting a plurality of data groups each including a set of a plurality of stored data;
(5) When it is detected that a correspondence exists between the stored data stored in the predetermined memory word and the input search data, the correspondence is stored in the flag register corresponding to the predetermined memory word. And a first mode for storing a hit flag indicating the presence of a search flag, and a data to which a corresponding relationship is detected in a predetermined first memory word at the time of this search, and to which the stored data stored in the first memory word belongs. A hit flag is stored in a flag register corresponding to an arbitrary second memory word other than the first memory word belonging to a memory word group consisting of a plurality of memory words for storing respective stored data constituting the group. If so, the hit flag is stored in the flag register corresponding to the first memory word, and the second memory word is stored. Coincidence detecting circuit and a second mode to reset the hit flag stored in the flag register corresponding to the de
It is preferable to provide
[0038]
Also, the associative memory of the present invention stores each storage data consisting of a pair of an attribute for identifying a plurality of storage data in one data group from each other and data with the attribute to each of the plurality of memory words. The search may be performed by using stored search data including pairs of attributes and data.
[0039]
[Action]
Since the associative memory of the present invention includes the hit string register of the above (3), an intermediate search result during a series of searches is stored in the hit string register. Is realized.
[0040]
【Example】
Hereinafter, examples of the present invention will be described.
FIG. 1 is a circuit block diagram showing a characteristic part of the present invention in an embodiment of the associative memory of the present invention. This circuit block shows a part of the associative memory shown in FIG. 5 and a part added to the associative memory shown in FIG. 5, based on the associative memory shown in FIG.
[0041]
Here, as shown, each memory word 11 1,11 2, ..., 11 m, ..., 11 .., A, B, C, C,..., A, A, C, and F, respectively, with attributes I to IV and data G, H, I, J, A, B, E, E,. Is stored. In this embodiment, the attribute register 12 1 and the attribute data stored in the input data register 12 2 is used as a search data with a pair with the input data stored in the memory word 11. 1,11 2, ..., 11 m, ..., 11 Search is performed by inputting to n,.
[0042]
The associative memory is provided with a search mode register 51. The search mode register 51 stores an initial search timing signal S2 in each of a series of searches (here, four searches). A flag for determining whether to input is stored. Here, in order to perform a search described later, '1, 0, 1, 0' is stored in the search mode register 51, and in a series of four searches, an initial search timing signal is used in the first search. S2 is input, the first search timing signal S2 is not input in the second search, the first search is regarded as the first search in the third search, the first search timing signal S2 is input, and the first search timing is input in the fourth search. The signal S2 is not input.
[0043]
Also, each memory word 11 1,11 2, ..., 11 m, ..., 11 n,... corresponding to n,. 1,11 2, ..., 11 m, ..., 11 A flag register 24 storing a hit flag indicating whether a match is detected at n,. 1,24 2, ..., 24 m, ..., 24 ,... are provided. This flag register 24 1,24 2, ..., 24 m, ..., 24 , are the second flag registers 24 of the associative memory shown in FIG. 1,24 It corresponds to 2, ...
[0044]
This associative memory also contains all memory words 11 1,11 2, ..., 11
m, ..., 11 A search line 52 extending across n ... is provided.
Between the search line 52 and the ground, each memory word 11 1,11 2, ..., 11 m, ..., 11 n, two transistors 53 connected in series with each other 1,54 1:53 2,54 2; ...; 53 m, 54 m; ...; 53 n, 54 . are arranged. Two transistors 53 each 1,54 1:53 2,54 2; ...; 53 m, 54 m; ...; 53 n, 54 n; one of the transistors 53 1,53 2, ..., 53 m, ..., 53 The gates of n,... 1,24 2, ..., 24 m, ..., 24 n,... and the other transistor 54 1,54 2,…, 54 m, ..., 54 The gates of n,... are connected to one common control line 55.
[0045]
A lower end of the search line 51 shown in FIG. 1 is a sense amplifier constituting a sense amplifier 56 for detecting the state of charge of the search line 51 and detecting a logic “0” or a logic “1”. It is connected to the input of the inverter 57. The sense amplifier 56 has an input of a sense amplifier inverter 57 and a power supply V.DD, A feedback P-channel transistor 58 whose gate is connected to the output of the sense amplifier inverter 57, and the input of the sense amplifier inverter 57 and the power supply VDDAnd a precharge P-channel transistor 59 whose gate is connected to the control line 55.
[0046]
The output of the sense amplifier inverter 57 constitutes a hit column register 60. In this embodiment, four flip-flops 60 are provided. 1,60 2,60 3,60 4 is connected. Each flip-flop 60 1,60 2,60 3,60 4, the set pulses S3, S4, S5, and S6 are input for each search that constitutes a series of searches, respectively, and the logic “0” or logic “1” signal output from the sense amplifier 56 is input to each of them. Is stored.
[0047]
Using the associative memory having the above configuration, here,
{(Data C exists in attribute III) and (Data D exists in attribute IV)}
Or
{(Data A exists in attribute I) and (Data B exists in attribute II)} (2)
Shall be searched.
First, the attribute register 12 The attribute III is set to 1 and the input register 12 2 is set to data C, and a first search is performed using attribute III and data C. At this time, the first search timing signal S2 is input.
[0048]
Then, memory word 11 m + 2 and memory word 11 A match is detected at n + 2 and the flag register 24 m + 2 and flag register 24 A logic ‘1’ indicating that a match has been detected is set at n + 2. All other flag registers are reset to logic '0' even if logic '1' is stored.
At this time, a signal of logic “0” is applied to the control line 55 and the search line 52 is precharged through the transistor 59, and the flag register 24 1,24 2, ..., 24 m, ..., 24 When the logic of n,... is determined, the control line 55 changes to logic ‘1’, and the precharge ends and the transistor 54 1,54 2,54 m, ..., 54 are turned on, and the flag register 24 1,24 2, ..., 24 m, ..., 24 If logic “1” is set in any of m,. 1,53 2, ..., 53 m, ..., 53 n,... among the n,... m + 2 and flag register 24 n + 2) (the transistor 53 in the above case). m + 2 and transistor 53 n + 2) is turned on, the charge on the search line 52 is discharged, and the output of the sense amplifier inverter 57 becomes logic "1". When the output of the sense amplifier inverter 57 is determined, the set pulse S3 is input, whereby the flip-flop 60 on the left end of FIG. A logic "1" indicating that a match is detected in the first search is set to 1.
[0049]
Next, the attribute register 12 The attribute IV is set to 1 and the input register 12 2 is set to data D, and a second search is performed using the attribute IV and data D. At this time, the first search timing signal S2 is not input.
In this search, no match is detected, and all flag registers 24 1,24 2, ..., 24 m, ..., 24 are reset to logic "0". That is, the first half of equation (2),
(Data C exists in attribute III) and (Data D exists in attribute IV) (3)
Is not detected.
[0050]
All flag registers 24 1,24 2, ..., 24 m, ..., 24 Since n,... have been reset to logic '0', the inspection line 52 remains in a precharged state, and the logic '0' is output from the sense amplifier inverter 57, and the set pulse S4 is input. And the second flip-flop 60 from the left of the hit column register 60 shown in the figure. 2 is stored with logic ‘0’.
[0051]
Next, a search is performed with the attribute I and the data A, and an initial search timing signal S2 is input, and three memory words 11 5,11 m, 11 n, a match is detected, and the corresponding flag register 24 5,24 m, 24 n is set to logic "1", the logic "1" is output from the sense amplifier inverter 57, and the set pulse S5 is input, and the third flip-flop 60 in the hit column register 60 from the left in FIG. 3 is set to logic "1".
[0052]
Next, a search is performed using the attribute II and the data B, and since the AND search is performed, the first search timing signal S2 is not input. At this time, two memory words 11 m + 1,11 A match is detected at n + 1 and the corresponding flag register 24 6,24 The logic ‘1’ is set to m + 1. At the same time, the flag register 24 5,24 m, 24 n is reset to logic '0'. In addition, the logic "1" is output from the sense amplifier inverter 57 in response to the detection of the match, and the input of the set pulse S6, the right end flip-flop 60 4 stores the logic ‘1’.
[0053]
In the case of the associative memory shown in FIG. 1,24 2, ..., 24 m, ..., 24 Since only the final search result remains in n,..., it is not possible to know an intermediate result by the search as in the above equation (2). In the example of equation (2), after equation (3),
(Data A exists in attribute I) and (Data B exists in attribute II) (4)
Since there is a data group that satisfies the condition (1), it is finally detected that the expression (4) is satisfied even in the associative memory having the configuration shown in FIG. When the expression (3) comes, the associative memory having the configuration shown in FIG. 5 will detect only the mishit in the search result of the latter expression (3).
[0054]
On the other hand, in the embodiment shown in FIG. 1, since the hit example register 60 is provided, the result of each search constituting a series of searches is held, so that various search conditions can be handled. In addition, as shown in FIG. 1, only one system is required to provide the hit string register 60 and its associated circuit over all the memory words constituting the associative memory. Can be added.
[0055]
Although the above embodiment has been illustrated and described as an example of performing a search four times as a series of searches, the present invention is not limited to the case where the four searches are performed as a series of searches. Needless to say, flip-flops constituting the hit string register 60 may be provided in a number of flip-flops equal to or greater than the maximum number of searches constituting a series of searches, and the number of searches as a series of searches may be variably configured.
[0056]
【The invention's effect】
As described above, the associative memory of the present invention includes a hit string register that sequentially stores whether or not a hit flag is stored in any of a plurality of flag registers for each of a plurality of searches. Intermediate search results for each of a plurality of searches making up the search can be collectively known after the series of searches is completed, which contributes to simplification of the system and improvement of the degree of search. In addition, the addition of circuit elements accompanying this is extremely small for the entire associative memory.
[Brief description of the drawings]
FIG. 1 is a circuit diagram showing a characteristic portion of the present invention in one embodiment of an associative memory of the present invention.
FIG. 2 is a circuit block diagram illustrating an example of an associative memory.
FIG. 3 is a block diagram illustrating an example of an associative memory having a data extension function.
FIG. 4 is a diagram illustrating an example of data of a group structure.
FIG. 5 is a block diagram illustrating an example of an associative memory.
FIG. 6 is a schematic diagram showing one method for realizing a variable-length data line.
FIG. 7 is a schematic diagram showing another method for realizing a variable data line.
FIG. 8 is a circuit diagram illustrating an example of an attribute determination circuit.
[Explanation of symbols]
11_1, 11_2, ... memory words
11_1_1, 11_2_1,... Attribute storage unit
11_1_2, 11_2_2, ... Data storage unit
14_1, 14_2, ... Matching line
16 priority encoder
17 Address decoder
18_1, 18_2, ... word line
20_1, 20_2, ... AND gate
21_1, 21_2, ... or gate
23_1, 23_2,... First flag register
24_1, 24_2, ... second flag register
25 Match result latch control line
30_1, 30_2, ... attribute matching line
31_1, 31_2,... Third flag register
32_1, 32_2, ... data lines
33_1, 33_2, ... 1st switch
34_1, 34_2, ... 2nd switch
52 search line
56 sense amplifier
60-bit string register

Claims (3)

複数の格納データを記憶しておき、検索データが入力され、入力された検索データに対応する格納データを検索する連想メモリにおいて、
複数の格納データを各格納データ毎に記憶する複数のメモリワードと、
前記複数のメモリワードそれぞれに対応して備えられた、検索の際に、入力された検索データと、前記複数のメモリワードそれぞれに格納された各格納データとの間に対応関係が存在することが検出された場合にその対応関係の存在を表わすヒットフラグを格納する複数のフラグレジスタと、
前記複数のフラグレジスタのいずれかに前記ピットフラグが格納されたか否かを、複数回の検索それぞれについて順次格納するヒット列レジスタとを備えたことを特徴とする連想メモリ。
In the associative memory for storing a plurality of stored data and receiving search data, and searching for stored data corresponding to the input search data,
A plurality of memory words for storing a plurality of stored data for each stored data;
At the time of a search provided corresponding to each of the plurality of memory words, there may be a corresponding relationship between the input search data and each of the stored data stored in each of the plurality of memory words. A plurality of flag registers for storing a hit flag indicating the existence of the corresponding relationship when detected;
A hit column register for sequentially storing whether or not the pit flag is stored in any of the plurality of flag registers for each of a plurality of searches.
複数の格納データを記憶しておき、検索データが入力され、入力された検索データに対応する格納データを検索する連想メモリにおいて、
それぞれが複数の格納データの集合からなる複数のデータ群を構成する各格納データを、該各格納データ毎に記憶する複数のメモリワードと、
前記複数のメモリワードそれぞれに対応して備えられた、検索の際に、入力された検索データと、前記複数のメモリワードそれぞれに格納された各格納データとの間に対応関係が存在することが検出された場合にその対応関係の存在を表わすヒットフラグを格納する複数のフラグレジスタと、
所定のメモリワードに記憶された格納データと入力された検索データとの間に対応関係が存在することが検出されたときに、該所定のメモリワードに対応する前記フラグレジスタに対応関係の存在を表わすヒットフラグを格納する第1のモードと、今回の検索時に所定の第1のメモリワードにおいて対応関係が検出され、かつ、前記第1のメモリワードに記憶された格納データが属するデータ群を構成する各格納データそれぞれを記憶する複数のメモリワードからなるメモリワード群に属する、前記第1のメモリワードを除く他の任意の第2のメモリワードに対応する前記フラグレジスタに前記ヒットフラグが格納されていた場合に、前記第1のメモリワードに対応する前記フラグレジスタに前記ヒットフラグを格納するとともに前記第2のメモリワードに対応する前記フラグレジスタに格納されていた前記ヒットフラグをリセットする第2のモードとを有する一致検出回路と、前記複数のフラグレジスタのいずれかに前記ヒットフラグが格納されたか否かを、複数回の検索それぞれについて順次格納するヒット列格納レジスタとを備えたことを特徴とする連想メモリ。
In the associative memory for storing a plurality of stored data and receiving search data, and searching for stored data corresponding to the input search data,
A plurality of storage words each storing a plurality of storage data, each of which forms a plurality of data groups each including a set of a plurality of storage data,
At the time of a search provided corresponding to each of the plurality of memory words, there may be a corresponding relationship between the input search data and each of the stored data stored in each of the plurality of memory words. A plurality of flag registers for storing a hit flag indicating the existence of the corresponding relationship when detected;
When it is detected that there is a correspondence between the stored data stored in the predetermined memory word and the inputted search data, the presence of the correspondence in the flag register corresponding to the predetermined memory word is determined. A first mode for storing a hit flag to be represented, and a data group to which a correspondence relationship is detected in a predetermined first memory word at the time of the current search and to which stored data stored in the first memory word belongs. The hit flag is stored in the flag register corresponding to an arbitrary second memory word other than the first memory word belonging to a memory word group including a plurality of memory words for storing respective stored data to be stored. The hit flag is stored in the flag register corresponding to the first memory word and the second A match detection circuit having a second mode for resetting the hit flag stored in the flag register corresponding to the memory word; and determining whether the hit flag is stored in any of the plurality of flag registers. A hit string storage register for sequentially storing a plurality of searches.
1つのデータ群内の複数の格納データを互いに識別するための属性と該属性が付されたデータとのペアからなる各格納データを前記複数のメモリワードそれぞれに記憶しておき、前記属性と前記データとのペアからなる検索データを用いて検索を行なうものであることを特徴とする請求項1又は2記載の連想メモリ。Each storage data comprising a pair of an attribute for identifying a plurality of stored data in one data group from each other and data to which the attribute is attached is stored in each of the plurality of memory words, and the attribute and the 3. The associative memory according to claim 1, wherein a search is performed using search data composed of a pair with data.
JP1676994A 1994-02-10 1994-02-10 Associative memory Expired - Fee Related JP3597882B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1676994A JP3597882B2 (en) 1994-02-10 1994-02-10 Associative memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1676994A JP3597882B2 (en) 1994-02-10 1994-02-10 Associative memory

Publications (2)

Publication Number Publication Date
JPH07226091A JPH07226091A (en) 1995-08-22
JP3597882B2 true JP3597882B2 (en) 2004-12-08

Family

ID=11925431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1676994A Expired - Fee Related JP3597882B2 (en) 1994-02-10 1994-02-10 Associative memory

Country Status (1)

Country Link
JP (1) JP3597882B2 (en)

Also Published As

Publication number Publication date
JPH07226091A (en) 1995-08-22

Similar Documents

Publication Publication Date Title
US5852569A (en) Content addressable memory multiple match detection circuit
US6219748B1 (en) Method and apparatus for implementing a learn instruction in a content addressable memory device
US6240485B1 (en) Method and apparatus for implementing a learn instruction in a depth cascaded content addressable memory system
US6246601B1 (en) Method and apparatus for using an inter-row configurable content addressable memory
TW445410B (en) Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
JP3095064B2 (en) Associative memory
US20030131188A1 (en) Synchronous content addressable memory
JPS605498A (en) Associative memory device
US6252789B1 (en) Inter-row configurability of content addressable memory
US5592407A (en) Associative memory
JP2000353388A (en) Improvement of contents referable memory
US6618280B2 (en) Associative memory for accomplishing longest coincidence data detection by two comparing operations
US7095641B1 (en) Content addressable memory (CAM) devices having priority class detectors therein that perform local encoding of match line signals
US6868475B2 (en) Content addressable memory having data width extension capability
JP3597882B2 (en) Associative memory
US5465228A (en) Associative memory
JP3597899B2 (en) Associative memory
JP3130736B2 (en) Usage of associative memory and associative memory
JP2838034B2 (en) Content addressable memory
JP3063956B2 (en) Associative memory
JP3645293B2 (en) Associative memory
JP2741806B2 (en) Content addressable memory
JP3202899B2 (en) Associative memory
JP3597881B2 (en) Associative memory
JP3083064B2 (en) Associative memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040910

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080917

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080917

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090917

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100917

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees